diff --git a/binary_sdk/libmain/ets_timer.S b/binary_sdk/libmain/ets_timer.S index a81ad36..886fb05 100644 --- a/binary_sdk/libmain/ets_timer.S +++ b/binary_sdk/libmain/ets_timer.S @@ -4,6 +4,7 @@ .literal_position # 0: 00000000 # Function @ .text+0x4 + .balign 4 .Lfunc001: movi a5, .Ldata001 # 4: 51ffff l8ui a2, a5, 0 /* [.Ldata001] */ # 7: 220500 addi a3, a5, 32 /* .bss+0x20 */ # a: 32c520 @@ -37,6 +38,7 @@ # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .Lfunc002: addi sp, sp, -16 /* (local0) */ # 54: 12c1f0 s32i a0, sp, 8 /* a0 -> [(local2)] */ # 57: 0921 call0 .Lfunc001 # 59: 85faff @@ -94,6 +96,7 @@ sdk_debug_timerfn: # Function @ .irom0.text+0xc # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .Lfunc003: addi sp, sp, -16 /* (local0) */ # c: 12c1f0 s32i a0, sp, 0 /* a0 -> [(local0)] */ # f: 0901 call0 vPortEnterCritical # 11: 01fcffc0 @@ -111,6 +114,7 @@ sdk_debug_timerfn: .literal_position # 30: 00060060 # Function @ .irom0.text+0x34 + .balign 4 .Lfunc004: movi a3, 0x60000600 # 34: 31ffff memw # 37: c02000 s32i a2, a3, 48 /* arg0 -> [0x60000630] */ # 3a: 29c3 @@ -121,6 +125,7 @@ sdk_debug_timerfn: # Function @ .irom0.text+0x44 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .Lfunc005: addi sp, sp, -16 /* (local0) */ # 44: 12c1f0 s32i a0, sp, 0 /* a0 -> [(local0)] */ # 47: 0901 movi a4, 0x60000600 # 49: 41fdff @@ -143,6 +148,7 @@ sdk_debug_timerfn: .balign 4 # Function @ .irom0.text+0x7c + .balign 4 .global sdk_ets_timer_setfn .type sdk_ets_timer_setfn, @function sdk_ets_timer_setfn: @@ -164,6 +170,7 @@ sdk_ets_timer_setfn: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .Lfunc006: addi sp, sp, -16 /* (local0) */ # 9c: 12c1f0 movi a6, .Ldata001 # 9f: 61fbff s32i a0, sp, 4 /* a0 -> [(local1)] */ # a2: 0911 @@ -215,6 +222,7 @@ sdk_ets_timer_setfn: # (local1): word @ -0xc # (local2): word @ -0x8 # (local3): word @ -0x4 + .balign 4 .global sdk_ets_timer_arm_ms_us .type sdk_ets_timer_arm_ms_us, @function sdk_ets_timer_arm_ms_us: @@ -276,6 +284,7 @@ sdk_ets_timer_arm_ms_us: # Function @ .irom0.text+0x1a0 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_ets_timer_arm_us .type sdk_ets_timer_arm_us, @function sdk_ets_timer_arm_us: @@ -291,6 +300,7 @@ sdk_ets_timer_arm_us: # Function @ .irom0.text+0x1b4 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_ets_timer_arm .type sdk_ets_timer_arm, @function sdk_ets_timer_arm: @@ -310,6 +320,7 @@ sdk_ets_timer_arm: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_ets_timer_disarm .type sdk_ets_timer_disarm, @function sdk_ets_timer_disarm: @@ -353,6 +364,7 @@ sdk_ets_timer_disarm: # Function @ .irom0.text+0x22c # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_ets_timer_done .type sdk_ets_timer_done, @function sdk_ets_timer_done: @@ -387,6 +399,7 @@ sdk_ets_timer_done: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_ets_timer_handler_isr .type sdk_ets_timer_handler_isr, @function sdk_ets_timer_handler_isr: @@ -450,6 +463,7 @@ sdk_ets_timer_handler_isr: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .Lfunc007: addi sp, sp, -16 /* (local0) */ # 304: 12c1f0 s32i a12, sp, 8 /* a12 -> [(local2)] */ # 307: c921 movi a12, .Ldata001 # 309: c1fcff @@ -489,6 +503,7 @@ sdk_ets_timer_handler_isr: # (local1): word[3] @ -0x1c # (local2): word @ -0x10 # (local3): word[3] @ -0xc + .balign 4 .global sdk_ets_timer_init .type sdk_ets_timer_init, @function sdk_ets_timer_init: diff --git a/binary_sdk/libmain/misc.S b/binary_sdk/libmain/misc.S index ca95254..2933545 100644 --- a/binary_sdk/libmain/misc.S +++ b/binary_sdk/libmain/misc.S @@ -4,6 +4,7 @@ .literal_position # 0: 00000000 # Function @ .text+0x4 + .balign 4 .global sdk_os_get_cpu_frequency .type sdk_os_get_cpu_frequency, @function sdk_os_get_cpu_frequency: @@ -32,6 +33,7 @@ sdk__putc1: .word 0x00000000 # 0: 00000000 # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .global sdk_ets_delay_us .type sdk_ets_delay_us, @function sdk_ets_delay_us: @@ -62,6 +64,7 @@ sdk_os_delay_us: .literal_position # 40: 00000000 # Function @ .irom0.text+0x44 + .balign 4 .global sdk_ets_update_cpu_frequency .type sdk_ets_update_cpu_frequency, @function sdk_ets_update_cpu_frequency: @@ -75,6 +78,7 @@ sdk_os_update_cpu_frequency: .literal_position # 4c: 00000000 # Function @ .irom0.text+0x50 + .balign 4 .global sdk_os_install_putc1 .type sdk_os_install_putc1, @function sdk_os_install_putc1: @@ -87,6 +91,7 @@ sdk_os_install_putc1: # Function @ .irom0.text+0x5c # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_os_putc .type sdk_os_putc, @function sdk_os_putc: @@ -102,6 +107,7 @@ sdk_os_putc: .literal_position # 70: 00020060 # Function @ .irom0.text+0x74 + .balign 4 .global sdk_gpio_output_set .type sdk_gpio_output_set, @function sdk_gpio_output_set: @@ -120,6 +126,7 @@ sdk_gpio_output_set: # 98: ffffdfff # Function @ .irom0.text+0x9c + .balign 4 .global sdk_rtc_get_reset_reason .type sdk_rtc_get_reset_reason, @function sdk_rtc_get_reset_reason: diff --git a/binary_sdk/libmain/os_cpu_a.S b/binary_sdk/libmain/os_cpu_a.S index fc57d02..457fbf5 100644 --- a/binary_sdk/libmain/os_cpu_a.S +++ b/binary_sdk/libmain/os_cpu_a.S @@ -14,6 +14,7 @@ # (local2): word @ -0x48 # (local3): word @ -0x44 # (local4): word[16] @ -0x40 + .balign 4 .global vPortYield .type vPortYield, @function vPortYield: wsr a0, excsave1 # 14: 00d113 @@ -49,6 +50,7 @@ vPortYield: wsr a0, excsave1 # 14: 00d113 # 70: 00350c00 # Function @ .text+0x74 + .balign 4 .global sdk__xt_int_enter .type sdk__xt_int_enter, @function sdk__xt_int_enter: @@ -64,6 +66,7 @@ sdk__xt_int_enter: ret # 8a: 0df0 # Function @ .text+0x8c + .balign 4 .global sdk__xt_int_exit .type sdk__xt_int_exit, @function sdk__xt_int_exit: @@ -89,6 +92,7 @@ sdk__xt_int_exit: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .global sdk__xt_timer_int .type sdk__xt_timer_int, @function sdk__xt_timer_int: @@ -118,6 +122,7 @@ sdk__xt_timer_int: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .global sdk__xt_timer_int1 .type sdk__xt_timer_int1, @function sdk__xt_timer_int1: @@ -137,6 +142,7 @@ sdk__xt_timer_int1: # Function @ .text+0x104 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk__xt_tick_timer_init .type sdk__xt_tick_timer_init, @function sdk__xt_tick_timer_init: @@ -158,6 +164,7 @@ sdk__xt_tick_timer_init: # Function @ .text+0x128 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk__xt_isr_unmask .type sdk__xt_isr_unmask, @function sdk__xt_isr_unmask: @@ -175,6 +182,7 @@ sdk__xt_isr_unmask: # Function @ .text+0x140 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk__xt_isr_mask .type sdk__xt_isr_mask, @function sdk__xt_isr_mask: @@ -192,6 +200,7 @@ sdk__xt_isr_mask: # Function @ .text+0x158 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk__xt_read_ints .type sdk__xt_read_ints, @function sdk__xt_read_ints: @@ -206,6 +215,7 @@ sdk__xt_read_ints: # Function @ .text+0x168 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk__xt_clear_ints .type sdk__xt_clear_ints, @function sdk__xt_clear_ints: diff --git a/binary_sdk/libmain/spi_flash.S b/binary_sdk/libmain/spi_flash.S index 18bd0d2..afcfc45 100644 --- a/binary_sdk/libmain/spi_flash.S +++ b/binary_sdk/libmain/spi_flash.S @@ -17,6 +17,7 @@ # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_SPIReadModeCnfig .type sdk_SPIReadModeCnfig, @function sdk_SPIReadModeCnfig: @@ -92,6 +93,7 @@ sdk_SPIReadModeCnfig: # (local7): word @ -0x14 # (local8): word @ -0x10 # (local9): word[3] @ -0xc + .balign 4 .global sdk_SPIWrite .type sdk_SPIWrite, @function sdk_SPIWrite: @@ -187,6 +189,7 @@ sdk_SPIWrite: # Function @ .text+0x1b0 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_SPIRead .type sdk_SPIRead, @function sdk_SPIRead: @@ -219,6 +222,7 @@ sdk_SPIRead: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_SPIEraseSector .type sdk_SPIEraseSector, @function sdk_SPIEraseSector: @@ -264,6 +268,7 @@ sdk_SPIEraseSector: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_spi_flash_get_id .type sdk_spi_flash_get_id, @function sdk_spi_flash_get_id: @@ -319,6 +324,7 @@ sdk_spi_flash_get_id: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .global sdk_spi_flash_read_status .type sdk_spi_flash_read_status, @function sdk_spi_flash_read_status: @@ -359,6 +365,7 @@ sdk_spi_flash_read_status: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .global sdk_spi_flash_write_status .type sdk_spi_flash_write_status, @function sdk_spi_flash_write_status: @@ -397,6 +404,7 @@ sdk_spi_flash_write_status: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .global sdk_spi_flash_erase_sector .type sdk_spi_flash_erase_sector, @function sdk_spi_flash_erase_sector: @@ -434,6 +442,7 @@ sdk_spi_flash_erase_sector: # (local1): word @ -0xc # (local2): word @ -0x8 # (local3): word @ -0x4 + .balign 4 .global sdk_spi_flash_write .type sdk_spi_flash_write, @function sdk_spi_flash_write: @@ -486,6 +495,7 @@ sdk_spi_flash_write: # (local1): word @ -0xc # (local2): word @ -0x8 # (local3): word @ -0x4 + .balign 4 .global sdk_spi_flash_read .type sdk_spi_flash_read, @function sdk_spi_flash_read: diff --git a/binary_sdk/libmain/timers.S b/binary_sdk/libmain/timers.S index 0d687b0..47769ca 100644 --- a/binary_sdk/libmain/timers.S +++ b/binary_sdk/libmain/timers.S @@ -20,6 +20,7 @@ # (local3): word @ -0x14 # (local4): word @ -0x10 # (local5): word[3] @ -0xc + .balign 4 .global sdk_os_timer_setfn .type sdk_os_timer_setfn, @function sdk_os_timer_setfn: @@ -107,6 +108,7 @@ sdk_os_timer_setfn: # (local2): word @ -0x18 # (local3): word @ -0x14 # (local4): word[4] @ -0x10 + .balign 4 .global sdk_os_timer_arm .type sdk_os_timer_arm, @function sdk_os_timer_arm: @@ -187,6 +189,7 @@ sdk_os_timer_arm: # Function @ .irom0.text+0x180 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_os_timer_disarm .type sdk_os_timer_disarm, @function sdk_os_timer_disarm: diff --git a/binary_sdk/libmain/uart.S b/binary_sdk/libmain/uart.S index 01c67bc..406a4c6 100644 --- a/binary_sdk/libmain/uart.S +++ b/binary_sdk/libmain/uart.S @@ -2,6 +2,8 @@ .section .irom0.text, "ax", @progbits # Function @ .irom0.text+0x0 + .balign 4 + .literal_position .global sdk_uart_buff_switch .type sdk_uart_buff_switch, @function sdk_uart_buff_switch: @@ -13,6 +15,7 @@ sdk_uart_buff_switch: # 10: fffff9ff # Function @ .irom0.text+0x14 + .balign 4 .global sdk_uart_div_modify .type sdk_uart_div_modify, @function sdk_uart_div_modify: @@ -38,6 +41,7 @@ sdk_uart_div_modify: .balign 4 # Function @ .irom0.text+0x4c + .balign 4 .global sdk_Uart_Init .type sdk_Uart_Init, @function sdk_Uart_Init: diff --git a/binary_sdk/libmain/user_interface.S b/binary_sdk/libmain/user_interface.S index 4f9235d..4eecc65 100644 --- a/binary_sdk/libmain/user_interface.S +++ b/binary_sdk/libmain/user_interface.S @@ -15,6 +15,7 @@ # (local0): word[8] @ -0x30 # (local1): word @ -0x10 # (local2): word[3] @ -0xc + .balign 4 .global sdk_system_restart_in_nmi .type sdk_system_restart_in_nmi, @function sdk_system_restart_in_nmi: @@ -97,6 +98,7 @@ sdk_system_restart_in_nmi: .literal_position # ec: 000e0060 # Function @ .text+0xf0 + .balign 4 .global sdk_system_rtc_mem_write .type sdk_system_rtc_mem_write, @function sdk_system_rtc_mem_write: @@ -136,6 +138,7 @@ sdk_system_rtc_mem_write: .literal_position # 144: 000e0060 # Function @ .text+0x148 + .balign 4 .global sdk_system_rtc_mem_read .type sdk_system_rtc_mem_read, @function sdk_system_rtc_mem_read: @@ -236,6 +239,7 @@ sdk_promiscuous_cb: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .Lfunc001: addi sp, sp, -16 /* (local0) */ # 48: 12c1f0 s32i a2, sp, 0 /* arg0 -> [(local0)] */ # 4b: 2901 s32i a0, sp, 4 /* a0 -> [(local1)] */ # 4d: 0911 @@ -323,6 +327,7 @@ sdk_promiscuous_cb: # (local1): word @ -0xc # (local2): word @ -0x8 # (local3): word @ -0x4 + .balign 4 .Lfunc002: addi sp, sp, -16 /* (local0) */ # 128: 12c1f0 s32i a14, sp, 12 /* a14 -> [(local3)] */ # 12b: e931 s32i a0, sp, 0 /* a0 -> [(local0)] */ # 12d: 0901 @@ -408,6 +413,7 @@ sdk_promiscuous_cb: # Function @ .irom0.text+0x204 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_system_pp_recycle_rx_pkt .type sdk_system_pp_recycle_rx_pkt, @function sdk_system_pp_recycle_rx_pkt: @@ -424,6 +430,7 @@ sdk_system_pp_recycle_rx_pkt: # Function @ .irom0.text+0x21c # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_system_adc_read .type sdk_system_adc_read, @function sdk_system_adc_read: @@ -449,6 +456,7 @@ sdk_system_adc_read: # Function @ .irom0.text+0x254 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_system_restart .type sdk_system_restart, @function sdk_system_restart: @@ -494,6 +502,7 @@ sdk_system_restart: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_system_restore .type sdk_system_restore, @function sdk_system_restore: @@ -527,6 +536,7 @@ sdk_system_restore: .literal_position # 308: 00000000 # Function @ .irom0.text+0x30c + .balign 4 .global sdk_system_get_boot_version .type sdk_system_get_boot_version, @function sdk_system_get_boot_version: @@ -541,6 +551,7 @@ sdk_system_get_boot_version: # Function @ .irom0.text+0x320 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .Lfunc003: addi sp, sp, -16 /* (local0) */ # 320: 12c1f0 s32i a0, sp, 0 /* a0 -> [(local0)] */ # 323: 0901 call0 sdk_system_get_boot_version # 325: 050000 @@ -562,6 +573,7 @@ sdk_system_get_boot_version: # Function @ .irom0.text+0x34c # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_system_get_test_result .type sdk_system_get_test_result, @function sdk_system_get_test_result: @@ -588,6 +600,7 @@ sdk_system_get_test_result: # (local0): byte[5] @ -0xd # (local1): hword[2] @ -0x8 # (local2): word @ -0x4 + .balign 4 .global sdk_system_get_userbin_addr .type sdk_system_get_userbin_addr, @function sdk_system_get_userbin_addr: @@ -642,6 +655,7 @@ sdk_system_get_userbin_addr: .literal_position # 400: 00000000 # Function @ .irom0.text+0x404 + .balign 4 .global sdk_system_get_boot_mode .type sdk_system_get_boot_mode, @function sdk_system_get_boot_mode: @@ -674,6 +688,7 @@ sdk_system_get_boot_mode: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .global sdk_system_restart_enhance .type sdk_system_restart_enhance, @function sdk_system_restart_enhance: @@ -760,6 +775,7 @@ sdk_system_restart_enhance: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_system_upgrade_userbin_set .type sdk_system_upgrade_userbin_set, @function sdk_system_upgrade_userbin_set: @@ -795,6 +811,7 @@ sdk_system_upgrade_userbin_set: # Function @ .irom0.text+0x574 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_system_upgrade_userbin_check .type sdk_system_upgrade_userbin_check, @function sdk_system_upgrade_userbin_check: @@ -824,6 +841,7 @@ sdk_system_upgrade_userbin_check: .literal_position # 5b0: 00000000 # Function @ .irom0.text+0x5b4 + .balign 4 .global sdk_system_upgrade_flag_set .type sdk_system_upgrade_flag_set, @function sdk_system_upgrade_flag_set: @@ -839,6 +857,7 @@ sdk_system_upgrade_flag_set: .literal_position # 5c8: 00000000 # Function @ .irom0.text+0x5cc + .balign 4 .global sdk_system_upgrade_flag_check .type sdk_system_upgrade_flag_check, @function sdk_system_upgrade_flag_check: @@ -865,6 +884,7 @@ sdk_system_upgrade_flag_check: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .global sdk_system_upgrade_reboot .type sdk_system_upgrade_reboot, @function sdk_system_upgrade_reboot: @@ -974,6 +994,7 @@ sdk_system_upgrade_reboot: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .Lfunc004: movi a3, 0x000f4240 # 734: 31ecff addi sp, sp, -16 /* (local0) */ # 737: 12c1f0 s32i a13, sp, 8 /* a13 -> [(local2)] */ # 73a: d921 @@ -1130,6 +1151,7 @@ sdk_system_upgrade_reboot: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_system_deep_sleep .type sdk_system_deep_sleep, @function sdk_system_deep_sleep: @@ -1169,6 +1191,7 @@ sdk_system_deep_sleep: # Function @ .irom0.text+0x944 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_system_update_cpu_freq .type sdk_system_update_cpu_freq, @function sdk_system_update_cpu_freq: @@ -1210,6 +1233,7 @@ sdk_system_update_cpu_freq: # Function @ .irom0.text+0x9a0 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_system_get_cpu_freq .type sdk_system_get_cpu_freq, @function sdk_system_get_cpu_freq: @@ -1227,6 +1251,7 @@ sdk_system_get_cpu_freq: # Function @ .irom0.text+0x9bc # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_system_overclock .type sdk_system_overclock, @function sdk_system_overclock: @@ -1252,6 +1277,7 @@ sdk_system_overclock: # Function @ .irom0.text+0x9ec # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_system_restoreclock .type sdk_system_restoreclock, @function sdk_system_restoreclock: @@ -1278,6 +1304,7 @@ sdk_system_restoreclock: # a20: 000af23f # Function @ .irom0.text+0xa24 + .balign 4 .global sdk_system_get_time .type sdk_system_get_time, @function sdk_system_get_time: @@ -1292,6 +1319,7 @@ sdk_system_get_time: .literal_position # a38: 000af23f # Function @ .irom0.text+0xa3c + .balign 4 .global sdk_system_relative_time .type sdk_system_relative_time, @function sdk_system_relative_time: @@ -1322,6 +1350,7 @@ sdk_system_relative_time: # (local5): word @ -0x1c # (local6): word[2] @ -0x18 # (local7): word[4] @ -0x10 + .balign 4 .global sdk_system_station_got_ip_set .type sdk_system_station_got_ip_set, @function sdk_system_station_got_ip_set: @@ -1406,6 +1435,7 @@ sdk_system_station_got_ip_set: # Function @ .irom0.text+0xb5c # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_system_print_meminfo .type sdk_system_print_meminfo, @function sdk_system_print_meminfo: @@ -1453,6 +1483,7 @@ sdk_system_print_meminfo: # Function @ .irom0.text+0xbcc # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_system_get_free_heap_size .type sdk_system_get_free_heap_size, @function sdk_system_get_free_heap_size: @@ -1469,6 +1500,7 @@ sdk_system_get_free_heap_size: # be8: ffffff00 # Function @ .irom0.text+0xbec + .balign 4 .global sdk_system_get_chip_id .type sdk_system_get_chip_id, @function sdk_system_get_chip_id: @@ -1490,6 +1522,7 @@ sdk_system_get_chip_id: # Function @ .irom0.text+0xc14 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_system_rtc_clock_cali_proc .type sdk_system_rtc_clock_cali_proc, @function sdk_system_rtc_clock_cali_proc: @@ -1504,6 +1537,7 @@ sdk_system_rtc_clock_cali_proc: .literal_position # c28: 00060060 # Function @ .irom0.text+0xc2c + .balign 4 .global sdk_system_get_rtc_time .type sdk_system_get_rtc_time, @function sdk_system_get_rtc_time: @@ -1515,6 +1549,7 @@ sdk_system_get_rtc_time: .literal_position # c38: fc000000 # Function @ .irom0.text+0xc3c + .balign 4 .global sdk_system_get_rst_info .type sdk_system_get_rst_info, @function sdk_system_get_rst_info: @@ -1524,6 +1559,7 @@ sdk_system_get_rst_info: .literal_position # c44: 00000000 # Function @ .irom0.text+0xc48 + .balign 4 .Lfunc005: bltui a2, 2, .Lbr089 # c48: b62203 movi a2, 0 /* 0x00000000 */ # c4b: 0c02 ret /* 0x00000000 */ # c4d: 0df0 @@ -1547,6 +1583,7 @@ sdk_system_get_rst_info: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_wifi_station_dhcpc_start .type sdk_wifi_station_dhcpc_start, @function sdk_wifi_station_dhcpc_start: @@ -1595,6 +1632,7 @@ sdk_wifi_station_dhcpc_start: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_wifi_station_dhcpc_stop .type sdk_wifi_station_dhcpc_stop, @function sdk_wifi_station_dhcpc_stop: @@ -1627,6 +1665,7 @@ sdk_wifi_station_dhcpc_stop: .literal_position # d20: 00000000 # Function @ .irom0.text+0xd24 + .balign 4 .global sdk_wifi_station_dhcpc_status .type sdk_wifi_station_dhcpc_status, @function sdk_wifi_station_dhcpc_status: @@ -1642,6 +1681,7 @@ sdk_wifi_station_dhcpc_status: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .Lfunc006: addi sp, sp, -16 /* (local0) */ # d34: 12c1f0 s32i a13, sp, 8 /* a13 -> [(local2)] */ # d37: d921 s32i a12, sp, 4 /* a12 -> [(local1)] */ # d39: c911 @@ -1668,6 +1708,7 @@ sdk_wifi_station_dhcpc_status: # Function @ .irom0.text+0xd6c # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_wifi_get_opmode .type sdk_wifi_get_opmode, @function sdk_wifi_get_opmode: @@ -1683,6 +1724,7 @@ sdk_wifi_get_opmode: # Function @ .irom0.text+0xd80 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_wifi_get_opmode_default .type sdk_wifi_get_opmode_default, @function sdk_wifi_get_opmode_default: @@ -1707,6 +1749,7 @@ sdk_wifi_get_opmode_default: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .Lfunc007: addi sp, sp, -16 /* (local0) */ # db4: 12c1f0 s32i a12, sp, 4 /* a12 -> [(local1)] */ # db7: c911 s32i a0, sp, 0 /* a0 -> [(local0)] */ # db9: 0901 @@ -1763,6 +1806,7 @@ sdk_wifi_get_opmode_default: # (local1): word @ -0xc # (local2): word @ -0x8 # (local3): word @ -0x4 + .balign 4 .global sdk_wifi_set_opmode_local .type sdk_wifi_set_opmode_local, @function sdk_wifi_set_opmode_local: @@ -1804,6 +1848,7 @@ sdk_wifi_set_opmode_local: # Function @ .irom0.text+0xe90 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_wifi_set_opmode .type sdk_wifi_set_opmode, @function sdk_wifi_set_opmode: @@ -1819,6 +1864,7 @@ sdk_wifi_set_opmode: # Function @ .irom0.text+0xea4 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_wifi_set_opmode_current .type sdk_wifi_set_opmode_current, @function sdk_wifi_set_opmode_current: @@ -1834,6 +1880,7 @@ sdk_wifi_set_opmode_current: # Function @ .irom0.text+0xeb8 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_system_get_checksum .type sdk_system_get_checksum, @function sdk_system_get_checksum: @@ -1874,6 +1921,7 @@ sdk_system_get_checksum: # (local4): word @ -0x10 # (local5): word @ -0xc # (local6): word[2] @ -0x8 + .balign 4 .Lfunc008: addi sp, sp, -32 /* (local0) */ # f08: 12c1e0 s32i a13, sp, 8 /* a13 -> [(local2)] */ # f0b: d921 s32i a15, sp, 16 /* a15 -> [(local4)] */ # f0d: f941 @@ -1940,6 +1988,7 @@ sdk_system_get_checksum: # (local5): word @ -0xc # (local6): word @ -0x8 # (local7): word @ -0x4 + .balign 4 .global sdk_wifi_param_save_protect .type sdk_wifi_param_save_protect, @function sdk_wifi_param_save_protect: @@ -2018,6 +2067,7 @@ sdk_wifi_param_save_protect: # (local2): word @ -0x10 # (local3): word @ -0xc # (local4): word[2] @ -0x8 + .balign 4 .Lfunc009: movi a2, sdk_flashchip # 1038: 21fbff addi sp, sp, -48 /* (local0) */ # 103b: 12c1d0 s32i a12, sp, 32 /* a12 -> [(local2)] */ # 103e: c981 @@ -2074,6 +2124,7 @@ sdk_wifi_param_save_protect: # (local2): word @ -0x18 # (local3): word @ -0x14 # (local4): word[4] @ -0x10 + .balign 4 .Lfunc010: addi sp, sp, -32 /* (local0) */ # 10b8: 12c1e0 s32i a12, sp, 4 /* a12 -> [(local1)] */ # 10bb: c911 s32i a15, sp, 16 /* a15 -> [(local4)] */ # 10bd: f941 @@ -2140,6 +2191,7 @@ sdk_wifi_param_save_protect: # Function @ .irom0.text+0x1154 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_wifi_station_get_config .type sdk_wifi_station_get_config, @function sdk_wifi_station_get_config: @@ -2155,6 +2207,7 @@ sdk_wifi_station_get_config: # Function @ .irom0.text+0x1168 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_wifi_station_get_config_default .type sdk_wifi_station_get_config_default, @function sdk_wifi_station_get_config_default: @@ -2184,6 +2237,7 @@ sdk_wifi_station_get_config_default: # (local4): word @ -0x10 # (local5): word @ -0xc # (local6): word[2] @ -0x8 + .balign 4 .global sdk_wifi_station_get_ap_info .type sdk_wifi_station_get_ap_info, @function sdk_wifi_station_get_ap_info: @@ -2267,6 +2321,7 @@ sdk_wifi_station_get_ap_info: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_wifi_station_ap_number_set .type sdk_wifi_station_ap_number_set, @function sdk_wifi_station_ap_number_set: @@ -2321,6 +2376,7 @@ sdk_wifi_station_ap_number_set: # (local5): word @ -0xc # (local6): word @ -0x8 # (local7): word @ -0x4 + .balign 4 .Lfunc011: addi sp, sp, -32 /* (local0) */ # 12dc: 12c1e0 s32i a13, sp, 16 /* a13 -> [(local4)] */ # 12df: d941 s32i a4, sp, 0 /* arg2 -> [(local0)] */ # 12e1: 4901 @@ -2440,6 +2496,7 @@ sdk_wifi_station_ap_number_set: # (local6): word @ -0x18 # (local7): word @ -0x14 # (local8): word[4] @ -0x10 + .balign 4 .Lfunc012: addi sp, sp, -48 /* (local0) */ # 1400: 12c1d0 s32i a13, sp, 24 /* a13 -> [(local6)] */ # 1403: d961 s32i a15, sp, 32 /* a15 -> [(local8)] */ # 1405: f981 @@ -2558,6 +2615,7 @@ sdk_wifi_station_ap_number_set: # Function @ .irom0.text+0x1520 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_wifi_station_set_config .type sdk_wifi_station_set_config, @function sdk_wifi_station_set_config: @@ -2573,6 +2631,7 @@ sdk_wifi_station_set_config: # Function @ .irom0.text+0x1534 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_wifi_station_set_config_current .type sdk_wifi_station_set_config_current, @function sdk_wifi_station_set_config_current: @@ -2587,6 +2646,7 @@ sdk_wifi_station_set_config_current: .literal_position # 1548: 00000000 # Function @ .irom0.text+0x154c + .balign 4 .global sdk_wifi_station_get_current_ap_id .type sdk_wifi_station_get_current_ap_id, @function sdk_wifi_station_get_current_ap_id: @@ -2601,6 +2661,7 @@ sdk_wifi_station_get_current_ap_id: .literal_position # 1560: 00000000 # Function @ .irom0.text+0x1564 + .balign 4 .global sdk_wifi_station_ap_check .type sdk_wifi_station_ap_check, @function sdk_wifi_station_ap_check: @@ -2650,6 +2711,7 @@ sdk_wifi_station_ap_check: # (local3): word @ -0x14 # (local4): word @ -0x10 # (local5): word[3] @ -0xc + .balign 4 .global sdk_wifi_station_ap_change .type sdk_wifi_station_ap_change, @function sdk_wifi_station_ap_change: @@ -2750,6 +2812,7 @@ sdk_wifi_station_ap_change: # (local1): word @ -0xc # (local2): word @ -0x8 # (local3): word @ -0x4 + .balign 4 .global sdk_wifi_station_scan .type sdk_wifi_station_scan, @function sdk_wifi_station_scan: @@ -2782,6 +2845,7 @@ sdk_wifi_station_scan: .literal_position # 1708: 00000000 # Function @ .irom0.text+0x170c + .balign 4 .global sdk_wifi_station_get_auto_connect .type sdk_wifi_station_get_auto_connect, @function sdk_wifi_station_get_auto_connect: @@ -2800,6 +2864,7 @@ sdk_wifi_station_get_auto_connect: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_wifi_station_set_auto_connect .type sdk_wifi_station_set_auto_connect, @function sdk_wifi_station_set_auto_connect: @@ -2837,6 +2902,7 @@ sdk_wifi_station_set_auto_connect: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_wifi_station_connect .type sdk_wifi_station_connect, @function sdk_wifi_station_connect: @@ -2901,6 +2967,7 @@ sdk_wifi_station_connect: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_wifi_station_disconnect .type sdk_wifi_station_disconnect, @function sdk_wifi_station_disconnect: @@ -2951,6 +3018,7 @@ sdk_wifi_station_disconnect: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_wifi_station_get_connect_status .type sdk_wifi_station_get_connect_status, @function sdk_wifi_station_get_connect_status: @@ -2982,6 +3050,7 @@ sdk_wifi_station_get_connect_status: # (local2): word @ -0x18 # (local3): word @ -0x14 # (local4): word[4] @ -0x10 + .balign 4 .global sdk_wifi_softap_cacl_mac .type sdk_wifi_softap_cacl_mac, @function sdk_wifi_softap_cacl_mac: @@ -3040,6 +3109,7 @@ sdk_wifi_softap_cacl_mac: # (local1): byte @ -0xc # (local2): byte[3] @ -0xb # (local3): word[2] @ -0x8 + .balign 4 .global sdk_wifi_softap_set_default_ssid .type sdk_wifi_softap_set_default_ssid, @function sdk_wifi_softap_set_default_ssid: @@ -3098,6 +3168,7 @@ sdk_wifi_softap_set_default_ssid: # (local8): word @ -0x14 # (local9): word @ -0x10 # (local10): word[3] @ -0xc + .balign 4 .Lfunc013: addi sp, sp, -48 /* (FP)-0x30 */ # 19b4: 12c1d0 s32i a13, sp, 20 /* a13 -> [(local6)] */ # 19b7: d951 s32i a14, sp, 24 /* a14 -> [(local7)] */ # 19b9: e961 @@ -3220,6 +3291,7 @@ sdk_wifi_softap_set_default_ssid: # Function @ .irom0.text+0x1ae4 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_wifi_softap_get_config .type sdk_wifi_softap_get_config, @function sdk_wifi_softap_get_config: @@ -3235,6 +3307,7 @@ sdk_wifi_softap_get_config: # Function @ .irom0.text+0x1af8 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_wifi_softap_get_config_default .type sdk_wifi_softap_get_config_default, @function sdk_wifi_softap_get_config_default: @@ -3289,6 +3362,7 @@ sdk_wifi_softap_get_config_default: # (local6): word @ -0x18 # (local7): word @ -0x14 # (local8): word[4] @ -0x10 + .balign 4 .Lfunc014: addi sp, sp, -48 /* (local0) */ # 1b88: 12c1d0 s32i a14, sp, 24 /* a14 -> [(local6)] */ # 1b8b: e961 s32i a0, sp, 12 /* a0 -> [(local3)] */ # 1b8d: 0931 @@ -3502,6 +3576,7 @@ sdk_wifi_softap_get_config_default: # Function @ .irom0.text+0x1db4 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_wifi_softap_set_config .type sdk_wifi_softap_set_config, @function sdk_wifi_softap_set_config: @@ -3517,6 +3592,7 @@ sdk_wifi_softap_set_config: # Function @ .irom0.text+0x1dc8 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_wifi_softap_set_config_current .type sdk_wifi_softap_set_config_current, @function sdk_wifi_softap_set_config_current: @@ -3541,6 +3617,7 @@ sdk_wifi_softap_set_config_current: # (local4): word @ -0x10 # (local5): word @ -0xc # (local6): word[2] @ -0x8 + .balign 4 .global sdk_wifi_softap_set_station_info .type sdk_wifi_softap_set_station_info, @function sdk_wifi_softap_set_station_info: @@ -3600,6 +3677,7 @@ sdk_wifi_softap_set_station_info: # (local2): word @ -0x18 # (local3): word @ -0x14 # (local4): word[4] @ -0x10 + .balign 4 .global sdk_wifi_softap_get_station_info .type sdk_wifi_softap_get_station_info, @function sdk_wifi_softap_get_station_info: @@ -3670,6 +3748,7 @@ sdk_wifi_softap_get_station_info: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .global sdk_wifi_softap_free_station_info .type sdk_wifi_softap_free_station_info, @function sdk_wifi_softap_free_station_info: @@ -3712,6 +3791,7 @@ sdk_wifi_softap_free_station_info: # (local3): word @ -0x14 # (local4): word @ -0x10 # (local5): word[3] @ -0xc + .balign 4 .global sdk_wifi_softap_deauth .type sdk_wifi_softap_deauth, @function sdk_wifi_softap_deauth: @@ -3789,6 +3869,7 @@ sdk_wifi_softap_deauth: .literal_position # 2008: 00000000 # Function @ .irom0.text+0x200c + .balign 4 .global sdk_wifi_get_phy_mode .type sdk_wifi_get_phy_mode, @function sdk_wifi_get_phy_mode: @@ -3813,6 +3894,7 @@ sdk_wifi_get_phy_mode: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .global sdk_wifi_set_phy_mode .type sdk_wifi_set_phy_mode, @function sdk_wifi_set_phy_mode: @@ -3875,6 +3957,7 @@ sdk_wifi_set_phy_mode: # Function @ .irom0.text+0x20d8 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_wifi_set_sleep_type .type sdk_wifi_set_sleep_type, @function sdk_wifi_set_sleep_type: @@ -3893,6 +3976,7 @@ sdk_wifi_set_sleep_type: .balign 4 # Function @ .irom0.text+0x20f8 + .balign 4 .global sdk_wifi_get_sleep_type .type sdk_wifi_get_sleep_type, @function sdk_wifi_get_sleep_type: @@ -3903,6 +3987,7 @@ sdk_wifi_get_sleep_type: # Function @ .irom0.text+0x2100 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_wifi_get_channel .type sdk_wifi_get_channel, @function sdk_wifi_get_channel: @@ -3921,6 +4006,7 @@ sdk_wifi_get_channel: # Function @ .irom0.text+0x2120 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_wifi_set_channel .type sdk_wifi_set_channel, @function sdk_wifi_set_channel: @@ -3947,6 +4033,7 @@ sdk_wifi_set_channel: # Function @ .irom0.text+0x2154 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_wifi_promiscuous_set_mac .type sdk_wifi_promiscuous_set_mac, @function sdk_wifi_promiscuous_set_mac: @@ -3995,6 +4082,7 @@ sdk_wifi_promiscuous_set_mac: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_wifi_promiscuous_enable .type sdk_wifi_promiscuous_enable, @function sdk_wifi_promiscuous_enable: @@ -4070,6 +4158,7 @@ sdk_wifi_promiscuous_enable: .literal_position # 228c: 00000000 # Function @ .irom0.text+0x2290 + .balign 4 .global sdk_wifi_set_promiscuous_rx_cb .type sdk_wifi_set_promiscuous_rx_cb, @function sdk_wifi_set_promiscuous_rx_cb: @@ -4087,6 +4176,7 @@ sdk_wifi_set_promiscuous_rx_cb: # (local1): word @ -0xc # (local2): word @ -0x8 # (local3): word @ -0x4 + .balign 4 .global sdk_wifi_get_ip_info .type sdk_wifi_get_ip_info, @function sdk_wifi_get_ip_info: @@ -4154,6 +4244,7 @@ sdk_wifi_get_ip_info: # (local1): word @ -0xc # (local2): word @ -0x8 # (local3): word @ -0x4 + .balign 4 .global sdk_wifi_set_ip_info .type sdk_wifi_set_ip_info, @function sdk_wifi_set_ip_info: @@ -4235,6 +4326,7 @@ sdk_wifi_set_ip_info: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .global sdk_wifi_get_macaddr .type sdk_wifi_get_macaddr, @function sdk_wifi_get_macaddr: @@ -4295,6 +4387,7 @@ sdk_wifi_get_macaddr: # (local1): word @ -0xc # (local2): word @ -0x8 # (local3): word @ -0x4 + .balign 4 .global sdk_wifi_set_macaddr .type sdk_wifi_set_macaddr, @function sdk_wifi_set_macaddr: @@ -4373,6 +4466,7 @@ sdk_wifi_set_macaddr: .literal_position # 253c: 00000000 # Function @ .irom0.text+0x2540 + .balign 4 .global sdk_wifi_status_led_install .type sdk_wifi_status_led_install, @function sdk_wifi_status_led_install: @@ -4403,6 +4497,7 @@ sdk_wifi_status_led_install: # 2584: 00060060 # Function @ .irom0.text+0x2588 + .balign 4 .global sdk_system_uart_swap .type sdk_system_uart_swap, @function sdk_system_uart_swap: @@ -4448,6 +4543,7 @@ sdk_system_uart_swap: .literal_position # 25f8: 9c010000 # Function @ .irom0.text+0x25fc + .balign 4 .global sdk_system_get_sdk_version .type sdk_system_get_sdk_version, @function sdk_system_get_sdk_version: diff --git a/binary_sdk/libmain/xtensa_context.S b/binary_sdk/libmain/xtensa_context.S index 1fb41c3..d91fa84 100644 --- a/binary_sdk/libmain/xtensa_context.S +++ b/binary_sdk/libmain/xtensa_context.S @@ -2,6 +2,8 @@ .section .text, "ax", @progbits # Function @ .text+0x0 + .balign 4 + .literal_position .global sdk__xt_context_save .type sdk__xt_context_save, @function sdk__xt_context_save: @@ -20,6 +22,7 @@ sdk__xt_context_save: ret /* arg0 */ # 1a: 0df0 # Function @ .text+0x1c + .balign 4 .global sdk__xt_context_restore .type sdk__xt_context_restore, @function sdk__xt_context_restore: diff --git a/binary_sdk/libmain_stage1/ets_timer.S b/binary_sdk/libmain_stage1/ets_timer.S new file mode 100644 index 0000000..77ca2f7 --- /dev/null +++ b/binary_sdk/libmain_stage1/ets_timer.S @@ -0,0 +1,602 @@ + + .section .text, "ax", @progbits + + .literal_position # 0: 00000000 + +# Function @ .text+0x4 + .balign 4 +.Lfunc001: movi a5, .Ldata001 # 4: 51ffff + l8ui a2, a5, 0 /* [.Ldata001] */ # 7: 220500 + addi a3, a5, 32 /* .bss+0x20 */ # a: 32c520 + addi a2, a2, 1 /* [.Ldata001]+0x1 */ # d: 1b22 + extui a2, a2, 0, 8 # f: 202074 + bltui a2, 5, .Lbr001 # 12: b65208 + addi a3, a2, -1 # 15: 0b32 + s8i a3, a5, 0 /* a3 -> [.Ldata001] */ # 17: 324500 + movi a2, 0 /* 0x00000000 */ # 1a: 0c02 + ret /* 0x00000000 */ # 1c: 0df0 +.Lbr001: s8i a2, a5, 0 /* a2 -> [.Ldata001] */ # 1e: 224500 + l8ui a2, a5, 1 /* [.Ldata002] */ # 21: 220501 + addi a4, a2, 1 /* [.Ldata002]+0x1 */ # 24: 1b42 + addx8 a2, a2, a3 # 26: 3022b0 + extui a4, a4, 0, 8 # 29: 404074 + bltui a4, 4, .Lbr002 # 2c: b64401 + movi a4, 0 /* 0x00000000 */ # 2f: 0c04 +.Lbr002: s8i a4, a5, 1 /* a4 -> [.Ldata002] */ # 31: 424501 + ret # 34: 0df0 + + .literal_position # 38: 24000000 + # 3c: 00000000 + # 40: 30000000 + # 44: 00000000 + # 48: 00000000 + # 4c: 00000000 + # 50: 00000000 + +# Function @ .text+0x54 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 +.Lfunc002: addi sp, sp, -16 /* (local0) */ # 54: 12c1f0 + s32i a0, sp, 8 /* a0 -> [(local2)] */ # 57: 0921 + call0 .Lfunc001 # 59: 85faff + s32i a2, sp, 0 /* a2 -> [(local0)] */ # 5c: 2901 + bnez a2, .Lbr003 # 5e: cca2 + movi a2, .Lstr004 # 60: 21f6ff + call0 printf # 63: 01f8ffc0 + # 67: 0000 + j .Lbr005 # 69: 060b00 +.Lbr003: mov a3, sp /* (local0) */ # 6c: 3d01 + addi a4, sp, 4 /* (local1) */ # 6e: 4b41 + movi a5, 0 /* 0x00000000 */ # 70: 0c05 + s32i a5, a2, 0 # 72: 5902 + movi a2, .Ldata001 # 74: 21f2ff + s32i a5, sp, 4 /* 0x00000000 -> [(local1)] */ # 77: 5911 + l32i a2, a2, 16 /* [.Ldata004] */ # 79: 2842 + call0 xQueueGenericSendFromISR # 7b: 01f3ffc0 + # 7f: 0000 + mov a3, a2 # 81: 3d02 + beqi a2, 1, .Lbr004 # 83: 261208 + movi a2, .Lstr005 # 86: 21eeff + call0 printf # 89: 01f0ffc0 + # 8d: 0000 +.Lbr004: l32i a3, sp, 4 /* [(local1)] */ # 8f: 3811 + beqz a3, .Lbr005 # 91: 8c43 + call0 vTaskSwitchContext # 93: 01efffc0 + # 97: 0000 +.Lbr005: l32i a0, sp, 8 /* [(local2)] */ # 99: 0821 + addi sp, sp, 16 /* (top of frame) */ # 9b: 12c110 + ret # 9e: 0df0 + + .section .bss, "aw", @nobits + +.Ldata001: .byte 0x00 +.Ldata002: .byte 0x00 + .byte 0x00, 0x00 +.Ldata003: .word 0x00000000 # 4: 00000000 + .global debug_timer + .type debug_timer, @object +debug_timer: + .word 0x00000000 # 8: 00000000 + .global debug_timerfn + .type debug_timerfn, @object +debug_timerfn: + .word 0x00000000 # c: 00000000 +.Ldata004: .word 0x00000000 # 10: 00000000 + .space 44 + + .section .irom0.text, "ax", @progbits + + .literal_position # 0: 00000000 + # 4: 00000000 + # 8: 00000000 + +# Function @ .irom0.text+0xc +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 +.Lfunc003: addi sp, sp, -16 /* (local0) */ # c: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # f: 0901 + call0 vPortEnterCritical # 11: 01fcffc0 + # 15: 0000 + movi a2, .Ldata001 # 17: 21faff + l8ui a0, a2, 0 /* [.Ldata001] */ # 1a: 020200 + addi a0, a0, -1 /* [.Ldata001]-0x1 */ # 1d: 0b00 + s8i a0, a2, 0 /* [.Ldata001]-0x1 -> [.Ldata001] */ # 1f: 024200 + call0 vPortExitCritical # 22: 01f9ffc0 + # 26: 0000 + l32i a0, sp, 0 /* [(local0)] */ # 28: 0801 + addi sp, sp, 16 /* (top of frame) */ # 2a: 12c110 + ret # 2d: 0df0 + + .literal_position # 30: 00060060 + +# Function @ .irom0.text+0x34 + .balign 4 +.Lfunc004: movi a3, 0x60000600 # 34: 31ffff + memw # 37: c02000 + s32i a2, a3, 48 /* arg0 -> [0x60000630] */ # 3a: 29c3 + ret /* arg0 */ # 3c: 0df0 + + .literal_position # 40: 00060060 + +# Function @ .irom0.text+0x44 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 +.Lfunc005: addi sp, sp, -16 /* (local0) */ # 44: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 47: 0901 + movi a4, 0x60000600 # 49: 41fdff + memw # 4c: c02000 + l32i a4, a4, 36 /* [0x60000624] */ # 4f: 4894 + sub a0, a2, a4 # 51: 4002c0 + addi a3, a0, -40 # 54: 32c0d8 + bgei a3, 1, .Lbr007 # 57: e61314 + bgei a0, 1, .Lbr006 # 5a: e61008 + addi a2, a4, 40 /* [0x60000624]+0x28 */ # 5d: 22c428 + call0 .Lfunc004 # 60: 05fdff + j .Lbr008 # 63: c60200 +.Lbr006: addi a2, a2, 44 /* arg0+0x2c */ # 66: 22c22c + call0 .Lfunc004 # 69: 85fcff + j .Lbr008 # 6c: 860000 +.Lbr007: call0 .Lfunc004 # 6f: 45fcff +.Lbr008: l32i a0, sp, 0 /* [(local0)] */ # 72: 0801 + addi sp, sp, 16 /* (top of frame) */ # 74: 12c110 + ret # 77: 0df0 + + .balign 4 +# Function @ .irom0.text+0x7c + .balign 4 + .global ets_timer_setfn + .type ets_timer_setfn, @function +ets_timer_setfn: + s32i a3, a2, 16 /* arg1 -> [arg0+0x10] */ # 7c: 3942 + s32i a4, a2, 24 /* arg2 -> [arg0+0x18] */ # 7e: 4962 + movi a5, -1 /* 0xffffffff */ # 80: 7cf5 + movi a6, 0 /* 0x00000000 */ # 82: 0c06 + s32i a6, a2, 8 /* 0x00000000 -> [arg0+0x8] */ # 84: 6922 + s32i a6, a2, 12 /* 0x00000000 -> [arg0+0xc] */ # 86: 6932 + s32i a5, a2, 0 /* 0xffffffff -> [arg0] */ # 88: 5902 + ret /* arg0 */ # 8a: 0df0 + + .literal_position # 8c: 00000000 + # 90: 00000000 + # 94: 08000000 + # 98: 00000000 + +# Function @ .irom0.text+0x9c +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 +.Lfunc006: addi sp, sp, -16 /* (local0) */ # 9c: 12c1f0 + movi a6, .Ldata001 # 9f: 61fbff + s32i a0, sp, 4 /* a0 -> [(local1)] */ # a2: 0911 + l32i a0, a6, 4 /* [.Ldata003] */ # a4: 0816 + movi a5, 0 /* 0x00000000 */ # a6: 0c05 + beqz a0, .Lbr010 # a8: 9c00 +.Lbr009: l32i a4, a0, 8 # aa: 4820 + sub a4, a2, a4 # ac: 4042c0 + blti a4, 1, .Lbr011 # af: a6140b + mov a5, a0 # b2: 5d00 + l32i a0, a0, 0 # b4: 0800 + bnez a0, .Lbr009 # b6: 5600ff + j .Lbr011 # b9: 460000 +.Lbr010: movi a5, 0 /* 0x00000000 */ # bc: 0c05 +.Lbr011: s32i a3, sp, 0 /* arg1 -> [(local0)] */ # be: 3901 + s32i a0, a3, 0 /* a0 -> [arg1] */ # c0: 0903 + s32i a2, a3, 8 /* arg0 -> [arg1+0x8] */ # c2: 2923 + beqz a5, .Lbr012 # c4: 8c35 + s32i a3, a5, 0 # c6: 3905 + j .Lbr013 # c8: 060200 +.Lbr012: l32i a5, sp, 0 /* [(local0)] */ # cb: 5801 + s32i a5, a6, 4 /* [(local0)] -> [.Ldata003] */ # cd: 5916 + call0 .Lfunc005 # cf: 45f7ff + l32i a3, sp, 0 /* [(local0)] */ # d2: 3801 +.Lbr013: l32i a6, a3, 0 # d4: 6803 + l32i a0, sp, 4 /* [(local1)] */ # d6: 0811 + bne a6, a3, .Lbr015 # d8: 379611 + movi a2, .Lstr001 # db: 21edff + movi a3, .Lstr002 # de: 31edff + movi a4, 209 /* 0x000000d1 */ # e1: 42a0d1 + call0 ets_printf # e4: 01edffc0 + # e8: 0000 +.Lbr014: j .Lbr014 /* (halt) */ # ea: 06ffff +.Lbr015: addi sp, sp, 16 /* (top of frame) */ # ed: 12c110 + ret # f0: 0df0 + + .literal_position # f4: 14000000 + # f8: 404b4c00 + # fc: 40420f00 + # 100: 00060060 + # 104: 00000000 + # 108: 00000000 + # 10c: 00000000 + # 110: 00000000 + +# Function @ .irom0.text+0x114 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word @ -0x8 +# (local3): word @ -0x4 + .balign 4 + .global ets_timer_arm_ms_us + .type ets_timer_arm_ms_us, @function +ets_timer_arm_ms_us: + addi sp, sp, -16 /* (local0) */ # 114: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 117: c911 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 119: d921 + mov a12, a2 /* arg0 */ # 11b: cd02 + mov a2, a3 /* arg1 */ # 11d: 2d03 + mov a3, a4 /* arg2 */ # 11f: 3d04 + l32i a4, a12, 0 /* [arg0] */ # 121: 480c + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 123: 0901 + beqi a4, -1, .Lbr017 # 125: 26040d + movi a2, .Lstr003 # 128: 21f3ff + mov a3, a12 /* arg0 */ # 12b: 3d0c + call0 printf # 12d: 01f5ffc0 + # 131: 0000 +.Lbr016: j .Lbr016 /* (halt) */ # 133: 06ffff +.Lbr017: bnei a5, 1, .Lbr018 # 136: 661505 + movi a0, 1000 /* 0x000003e8 */ # 139: 02a3e8 + mull a2, a2, a0 # 13c: 002282 +.Lbr018: beqz a2, .Lbr020 # 13f: ace2 + s32i a3, sp, 12 /* arg2 -> [(local3)] */ # 141: 3931 + movi a4, 858 /* 0x0000035a */ # 143: 42a35a + bgeu a4, a2, .Lbr019 # 146: 27b411 + srli a13, a2, 2 # 149: 20d241 + extui a0, a2, 0, 2 # 14c: 200014 + addx4 a0, a0, a0 # 14f: 0000a0 + addx4 a13, a13, a13 # 152: d0dda0 + addx4 a13, a13, a0 # 155: 00dda0 + j .Lbr021 # 158: c60500 +.Lbr019: movi a4, 0x004c4b40 # 15b: 41e7ff + movi a3, 0x000f4240 # 15e: 31e7ff + mull a2, a2, a4 # 161: 402282 + call0 __udivsi3 # 164: 01e9ffc0 + # 168: 0000 + mov a13, a2 # 16a: dd02 + l32i a3, sp, 12 /* [(local3)] */ # 16c: 3831 + j .Lbr021 # 16e: 460000 +.Lbr020: movi a13, 0 /* 0x00000000 */ # 171: 0c0d +.Lbr021: beqz a3, .Lbr022 # 173: 8c03 + s32i a13, a12, 12 /* a13 -> [arg0+0xc] */ # 175: d93c +.Lbr022: call0 vPortEnterCritical # 177: 01e5ffc0 + # 17b: 0000 + mov a3, a12 /* arg0 */ # 17d: 3d0c + movi a2, 0x60000600 # 17f: 21e0ff + memw # 182: c02000 + l32i a2, a2, 36 /* [0x60000624] */ # 185: 2892 + add a2, a13, a2 # 187: 2a2d + call0 .Lfunc006 # 189: 05f1ff + call0 vPortExitCritical # 18c: 01e1ffc0 + # 190: 0000 + l32i a12, sp, 4 /* [(local1)] */ # 192: c811 + l32i a13, sp, 8 /* [(local2)] */ # 194: d821 + l32i a0, sp, 0 /* [(local0)] */ # 196: 0801 + addi sp, sp, 16 /* (top of frame) */ # 198: 12c110 + ret # 19b: 0df0 + + .balign 4 +# Function @ .irom0.text+0x1a0 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global ets_timer_arm_us + .type ets_timer_arm_us, @function +ets_timer_arm_us: + movi a5, 0 /* 0x00000000 */ # 1a0: 0c05 + addi sp, sp, -16 /* (local0) */ # 1a2: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1a5: 0901 + call0 ets_timer_arm_ms_us # 1a7: 050000 + l32i a0, sp, 0 /* [(local0)] */ # 1aa: 0801 + addi sp, sp, 16 /* (top of frame) */ # 1ac: 12c110 + ret # 1af: 0df0 + + .balign 4 +# Function @ .irom0.text+0x1b4 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global ets_timer_arm + .type ets_timer_arm, @function +ets_timer_arm: + movi a5, 1 /* 0x00000001 */ # 1b4: 0c15 + addi sp, sp, -16 /* (local0) */ # 1b6: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1b9: 0901 + call0 ets_timer_arm_ms_us # 1bb: 050000 + l32i a0, sp, 0 /* [(local0)] */ # 1be: 0801 + addi sp, sp, 16 /* (top of frame) */ # 1c0: 12c110 + ret # 1c3: 0df0 + + .literal_position # 1c8: 00000000 + # 1cc: 00000000 + # 1d0: 00000000 + +# Function @ .irom0.text+0x1d4 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global ets_timer_disarm + .type ets_timer_disarm, @function +ets_timer_disarm: + addi sp, sp, -16 /* (local0) */ # 1d4: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 1d7: c911 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1d9: 0901 + mov a12, a2 /* arg0 */ # 1db: cd02 + call0 vPortEnterCritical # 1dd: 01fbffc0 + # 1e1: 0000 + movi a5, .Ldata001 # 1e3: 51f9ff + l32i a0, a5, 4 /* [.Ldata003] */ # 1e6: 0815 + movi a2, 0 /* 0x00000000 */ # 1e8: 0c02 + beqz a0, .Lbr024 # 1ea: 8cb0 +.Lbr023: beq a12, a0, .Lbr025 # 1ec: 071c0b + mov a2, a0 # 1ef: 2d00 + l32i a0, a0, 0 # 1f1: 0800 + bnez a0, .Lbr023 # 1f3: 5650ff + j .Lbr027 # 1f6: 860300 +.Lbr024: movi a2, 0 /* 0x00000000 */ # 1f9: 0c02 +.Lbr025: beqz a0, .Lbr027 # 1fb: 8c90 + l32i a0, a0, 0 # 1fd: 0800 + bnez a2, .Lbr026 # 1ff: cc32 + s32i a0, a5, 4 /* a0 -> [.Ldata003] */ # 201: 0915 + j .Lbr027 # 203: 460000 +.Lbr026: s32i a0, a2, 0 # 206: 0902 +.Lbr027: call0 vPortExitCritical # 208: 01f2ffc0 + # 20c: 0000 + movi a0, 0 /* 0x00000000 */ # 20e: 0c00 + movi a2, -1 /* 0xffffffff */ # 210: 7cf2 + s32i a2, a12, 0 /* 0xffffffff -> [arg0] */ # 212: 290c + s32i a0, a12, 12 /* 0x00000000 -> [arg0+0xc] */ # 214: 093c + l32i a12, sp, 4 /* [(local1)] */ # 216: c811 + l32i a0, sp, 0 /* [(local0)] */ # 218: 0801 + addi sp, sp, 16 /* (top of frame) */ # 21a: 12c110 + ret /* 0xffffffff */ # 21d: 0df0 + + .literal_position # 220: 00000000 + # 224: 08000000 + # 228: 00000000 + +# Function @ .irom0.text+0x22c +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global ets_timer_done + .type ets_timer_done, @function +ets_timer_done: + addi sp, sp, -16 /* (local0) */ # 22c: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 22f: 0901 + l32i a0, a2, 0 /* [arg0] */ # 231: 0802 + beqi a0, -1, .Lbr029 # 233: 260011 + movi a2, .Lstr001 # 236: 21faff + movi a3, .Lstr002 # 239: 31faff + movi a4, 288 /* 0x00000120 */ # 23c: 42a120 + call0 ets_printf # 23f: 01faffc0 + # 243: 0000 +.Lbr028: j .Lbr028 /* (halt) */ # 245: 06ffff +.Lbr029: movi a3, 0 /* 0x00000000 */ # 248: 0c03 + movi a4, 0 /* 0x00000000 */ # 24a: 0c04 + call0 ets_timer_setfn # 24c: 050000 + l32i a0, sp, 0 /* [(local0)] */ # 24f: 0801 + addi sp, sp, 16 /* (top of frame) */ # 251: 12c110 + ret # 254: 0df0 + + .literal_position # 258: 00060060 + # 25c: 00000000 + # 260: 00000000 + # 264: 00000000 + # 268: 00060060 + # 26c: 00000000 + # 270: 00000000 + # 274: 00000000 + # 278: 00000000 + +# Function @ .irom0.text+0x27c +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global ets_timer_handler_isr + .type ets_timer_handler_isr, @function +ets_timer_handler_isr: + addi sp, sp, -16 /* (local0) */ # 27c: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 27f: c911 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 281: 0901 + call0 vPortEnterCritical # 283: 01faffc0 + # 287: 0000 + movi a3, 0x60000600 # 289: 31f3ff + memw # 28c: c02000 + movi a0, .Ldata001 # 28f: 01f3ff + l32i a5, a3, 36 /* [0x60000624] */ # 292: 5893 +.Lbr030: l32i a12, a0, 4 /* [.Ldata003] */ # 294: c810 + beqz a12, .Lbr033 # 296: 162c05 + l32i a2, a12, 8 /* [[.Ldata003]+0x8] */ # 299: 282c + sub a4, a2, a5 # 29b: 5042c0 + bgei a4, 1, .Lbr032 # 29e: e61445 + movi a5, -1 /* 0xffffffff */ # 2a1: 7cf5 + movi a7, .Ldata001 # 2a3: 71efff + l32i a8, a12, 16 /* [[.Ldata003]+0x10] */ # 2a6: 884c + s32i a8, a7, 12 /* [[.Ldata003]+0x10] -> [debug_timerfn] */ # 2a8: 8937 + s32i a12, a7, 8 /* [.Ldata003] -> [debug_timer] */ # 2aa: c927 + l32i a6, a12, 0 /* [[.Ldata003]] */ # 2ac: 680c + s32i a6, a7, 4 /* [[.Ldata003]] -> [.Ldata003] */ # 2ae: 6917 + s32i a5, a12, 0 /* 0xffffffff -> [[.Ldata003]] */ # 2b0: 590c + call0 vPortExitCritical # 2b2: 01efffc0 + # 2b6: 0000 + l32i a0, a12, 16 /* [[.Ldata003]+0x10] */ # 2b8: 084c + l32i a2, a12, 24 /* [[.Ldata003]+0x18] */ # 2ba: 286c + callx0 a0 /* [[.Ldata003]+0x10] */ # 2bc: c00000 + call0 vPortEnterCritical # 2bf: 01edffc0 + # 2c3: 0000 + l32i a2, a12, 0 /* [[.Ldata003]] */ # 2c5: 280c + l32i a0, a12, 12 /* [[.Ldata003]+0xc] */ # 2c7: 083c + bnei a2, -1, .Lbr031 # 2c9: 66020c + beqz a0, .Lbr031 # 2cc: 8c90 + l32i a2, a12, 8 /* [[.Ldata003]+0x8] */ # 2ce: 282c + mov a3, a12 /* [.Ldata003] */ # 2d0: 3d0c + add a2, a2, a0 # 2d2: 0a22 + s32i a2, a12, 8 /* a2 -> [[.Ldata003]+0x8] */ # 2d4: 292c + call0 .Lfunc006 # 2d6: 45dcff +.Lbr031: movi a0, .Ldata001 # 2d9: 01e2ff + memw # 2dc: c02000 + movi a3, 0x60000600 # 2df: 31e2ff + l32i a5, a3, 36 /* [0x60000624] */ # 2e2: 5893 + j .Lbr030 # 2e4: 06ebff +.Lbr032: beqz a12, .Lbr033 # 2e7: 8c1c + call0 .Lfunc005 # 2e9: 85d5ff +.Lbr033: call0 vPortExitCritical # 2ec: 01e3ffc0 + # 2f0: 0000 + l32i a12, sp, 4 /* [(local1)] */ # 2f2: c811 + l32i a0, sp, 0 /* [(local0)] */ # 2f4: 0801 + addi sp, sp, 16 /* (top of frame) */ # 2f6: 12c110 + ret # 2f9: 0df0 + + .literal_position # 2fc: 00000000 + # 300: 00000000 + +# Function @ .irom0.text+0x304 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 +.Lfunc007: addi sp, sp, -16 /* (local0) */ # 304: 12c1f0 + s32i a12, sp, 8 /* a12 -> [(local2)] */ # 307: c921 + movi a12, .Ldata001 # 309: c1fcff + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 30c: 0911 +.Lbr034: l32i a2, a12, 16 /* [.Ldata004] */ # 30e: 284c + mov a3, sp /* (local0) */ # 310: 3d01 + movi a4, -1 /* 0xffffffff */ # 312: 7cf4 + movi a5, 0 /* 0x00000000 */ # 314: 0c05 + call0 xQueueGenericReceive # 316: 01faffc0 + # 31a: 0000 + bnei a2, 1, .Lbr034 # 31c: 6612ee + l32i a0, sp, 0 /* [(local0)] */ # 31f: 0801 + l32i a0, a0, 0 /* [[(local0)]] */ # 321: 0800 + bnez a0, .Lbr035 # 323: cc30 + movi a2, 0 /* 0x00000000 */ # 325: 0c02 + call0 ets_timer_handler_isr # 327: 050000 +.Lbr035: call0 .Lfunc003 # 32a: 05ceff + j .Lbr034 # 32d: 46f7ff + + .literal_position # 330: 00000000 + # 334: 54000000 + # 338: 00000000 + # 33c: 40000000 + # 340: 04030000 + # 344: 50000000 + # 348: 00feef3f + # 34c: 00060060 + # 350: 00000000 + # 354: 00000000 + # 358: 00000000 + # 35c: 00000000 + # 360: 00000000 + +# Function @ .irom0.text+0x364 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word[3] @ -0x1c +# (local2): word @ -0x10 +# (local3): word[3] @ -0xc + .balign 4 + .global ets_timer_init + .type ets_timer_init, @function +ets_timer_init: + movi a3, .Lfunc002 # 364: 31f4ff + addi sp, sp, -32 /* (local0) */ # 367: 12c1e0 + movi a2, .Ldata001 # 36a: 21f1ff + s32i a0, sp, 20 /* a0 -> [(local3)] */ # 36d: 0951 + movi a0, 0 /* 0x00000000 */ # 36f: 0c00 + s32i a0, a2, 4 /* 0x00000000 -> [.Ldata003] */ # 371: 0912 + movi a2, 10 /* 0x0000000a */ # 373: 0ca2 + call0 _xt_isr_attach # 375: 01f6ffc0 + # 379: 0000 + movi a2, 4 /* 0x00000004 */ # 37b: 0c42 + movi a3, 4 /* 0x00000004 */ # 37d: 0c43 + movi a4, 0 /* 0x00000000 */ # 37f: 0c04 + call0 xQueueGenericCreate # 381: 01f4ffc0 + # 385: 0000 + movi a5, 0 /* 0x00000000 */ # 387: 0c05 + movi a6, 12 /* 0x0000000c */ # 389: 0cc6 + addi a7, sp, 16 /* (local2) */ # 38b: 72c110 + movi a4, .Ldata001 # 38e: 41eaff + movi a3, 0 /* 0x00000000 */ # 391: 0c03 + s32i a2, a4, 16 /* a2 -> [.Ldata004] */ # 393: 2944 + movi a4, 200 /* 0x000000c8 */ # 395: 42a0c8 + s32i a3, sp, 0 /* 0x00000000 -> [(local0)] */ # 398: 3901 + s32i a3, sp, 4 /* 0x00000000 -> [(local1)] */ # 39a: 3911 + movi a2, .Lfunc007 # 39c: 21e9ff + movi a3, .Lstr006 # 39f: 31e7ff + call0 xTaskGenericCreate # 3a2: 01edffc0 + # 3a6: 0000 + movi a2, .Lstr007 # 3a8: 21e7ff + l32i a3, sp, 16 /* [(local2)] */ # 3ab: 3841 + movi a4, 12 /* 0x0000000c */ # 3ad: 0cc4 + movi a5, 200 /* 0x000000c8 */ # 3af: 52a0c8 + call0 printf # 3b2: 01eaffc0 + # 3b6: 0000 + movi a6, 0x3feffe00 # 3b8: 61e4ff + movi a9, 0x60000600 # 3bb: 91e4ff + memw # 3be: c02000 + movi a8, 0 /* 0x00000000 */ # 3c1: 0c08 + s32i a8, a9, 48 /* 0x00000000 -> [0x60000630] */ # 3c3: 89c9 + movi a10, 132 /* 0x00000084 */ # 3c5: a2a084 + memw # 3c8: c02000 + s32i a10, a9, 40 /* 0x00000084 -> [0x60000628] */ # 3cb: a9a9 + memw # 3cd: c02000 + s32i a8, a9, 32 /* 0x00000000 -> [0x60000620] */ # 3d0: 8989 + movi a7, 4 /* 0x00000004 */ # 3d2: 0c47 + memw # 3d4: c02000 + l32i a5, a6, 0x204 /* [0x3ff00004] */ # 3d7: 522681 + or a5, a5, a7 # 3da: 705520 + memw # 3dd: c02000 + s32i a5, a6, 0x204 /* a5 -> [0x3ff00004] */ # 3e0: 526681 + movi a2, 1024 /* 0x00000400 */ # 3e3: 22a400 + call0 _xt_isr_unmask # 3e6: 01deffc0 + # 3ea: 0000 + l32i a0, sp, 20 /* [(local3)] */ # 3ec: 0851 + addi sp, sp, 32 /* (top of frame) */ # 3ee: 12c120 + ret # 3f1: 0df0 + + .section .rodata.str1.4, "MSa", @progbits, 1 + +.Lstr001: .asciz "%s %s \n" # 0: 25732025 + # 4: 73200a00 +.Lstr002: .asciz "ets_timer.c" # 8: 6574735f + # c: 74696d65 + # 10: 722e6300 +.Lstr003: .asciz "arm new %x %x\n" # 14: 61726d20 + # 18: 6e657720 + # 1c: 25782025 + # 20: 780a00 + .balign 4 +.Lstr004: .asciz "TIMQ_NUL\n" # 24: 54494d51 + # 28: 5f4e554c + # 2c: 0a00 + .balign 4 +.Lstr005: .asciz "TIMQ_FL:%d!!" # 30: 54494d51 + # 34: 5f464c3a + # 38: 25642121 + # 3c: 00 + .balign 4 +.Lstr006: .asciz "rtc_timer_task" # 40: 7274635f + # 44: 74696d65 + # 48: 725f7461 + # 4c: 736b00 + .balign 4 +.Lstr007: .asciz "frc2_timer_task_hdl:%x, prio:%d, stack:%d\n" # 50: 66726332 + # 54: 5f74696d + # 58: 65725f74 + # 5c: 61736b5f + # 60: 68646c3a + # 64: 25782c20 + # 68: 7072696f + # 6c: 3a25642c + # 70: 20737461 + # 74: 636b3a25 + # 78: 640a00 diff --git a/binary_sdk/libmain_stage1/misc.S b/binary_sdk/libmain_stage1/misc.S new file mode 100644 index 0000000..64210ce --- /dev/null +++ b/binary_sdk/libmain_stage1/misc.S @@ -0,0 +1,156 @@ + + .section .text, "ax", @progbits + + .literal_position # 0: 00000000 + +# Function @ .text+0x4 + .balign 4 + .global os_get_cpu_frequency + .type os_get_cpu_frequency, @function +os_get_cpu_frequency: + movi a2, .Ldata001 # 4: 21ffff + l32i a2, a2, 0 /* [.Ldata001] */ # 7: 2802 + ret /* [.Ldata001] */ # 9: 0df0 + + .section .data, "aw", @progbits + +.Ldata001: .word 0x00000050 # 0: 50000000 + + .section .bss, "aw", @nobits + + .global _putc1 + .type _putc1, @object +_putc1: .word 0x00000000 # 0: 00000000 + + .section .irom0.text, "ax", @progbits + + .literal_position # 0: 00000000 + # 4: 00000000 + # 8: 00000000 + +# Function @ .irom0.text+0xc +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 + .global ets_delay_us + .type ets_delay_us, @function +ets_delay_us: + .global os_delay_us + .type os_delay_us, @function +os_delay_us: + addi sp, sp, -16 /* (local0) */ # c: 12c1f0 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # f: d921 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 11: c911 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 13: 0901 + mov a12, a2 /* arg0 */ # 15: cd02 + call0 xthal_get_ccount # 17: 01fbffc0 + # 1b: 0000 + movi a0, .Ldata001 # 1d: 01f8ff + l32i a0, a0, 0 /* [.Ldata001] */ # 20: 0800 + mov a13, a2 # 22: dd02 + mull a12, a0, a12 # 24: c0c082 +.Lbr001: call0 xthal_get_ccount # 27: 01f8ffc0 + # 2b: 0000 + sub a3, a2, a13 # 2d: d032c0 + bltu a3, a12, .Lbr001 # 30: c733f3 + l32i a12, sp, 4 /* [(local1)] */ # 33: c811 + l32i a13, sp, 8 /* [(local2)] */ # 35: d821 + l32i a0, sp, 0 /* [(local0)] */ # 37: 0801 + addi sp, sp, 16 /* (top of frame) */ # 39: 12c110 + ret # 3c: 0df0 + + .literal_position # 40: 00000000 + +# Function @ .irom0.text+0x44 + .balign 4 + .global ets_update_cpu_frequency + .type ets_update_cpu_frequency, @function +ets_update_cpu_frequency: + .global os_update_cpu_frequency + .type os_update_cpu_frequency, @function +os_update_cpu_frequency: + movi a3, .Ldata001 # 44: 31ffff + s32i a2, a3, 0 /* arg0 -> [.Ldata001] */ # 47: 2903 + ret /* arg0 */ # 49: 0df0 + + .literal_position # 4c: 00000000 + +# Function @ .irom0.text+0x50 + .balign 4 + .global os_install_putc1 + .type os_install_putc1, @function +os_install_putc1: + movi a3, _putc1 # 50: 31ffff + s32i a2, a3, 0 /* arg0 -> [_putc1] */ # 53: 2903 + ret /* arg0 */ # 55: 0df0 + + .literal_position # 58: 00000000 + +# Function @ .irom0.text+0x5c +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global os_putc + .type os_putc, @function +os_putc: addi sp, sp, -16 /* (local0) */ # 5c: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 5f: 0901 + movi a0, _putc1 # 61: 01fdff + l32i a0, a0, 0 /* [_putc1] */ # 64: 0800 + callx0 a0 /* [_putc1] */ # 66: c00000 + l32i a0, sp, 0 /* [(local0)] */ # 69: 0801 + addi sp, sp, 16 /* (top of frame) */ # 6b: 12c110 + ret # 6e: 0df0 + + .literal_position # 70: 00020060 + +# Function @ .irom0.text+0x74 + .balign 4 + .global gpio_output_set + .type gpio_output_set, @function +gpio_output_set: + movi a6, 0x60000200 # 74: 61ffff + memw # 77: c02000 + s32i a2, a6, 0x104 /* arg0 -> [0x60000304] */ # 7a: 226641 + memw # 7d: c02000 + s32i a3, a6, 0x108 /* arg1 -> [0x60000308] */ # 80: 326642 + memw # 83: c02000 + s32i a4, a6, 0x110 /* arg2 -> [0x60000310] */ # 86: 426644 + memw # 89: c02000 + s32i a5, a6, 0x114 /* arg3 -> [0x60000314] */ # 8c: 526645 + ret /* arg0 */ # 8f: 0df0 + + .literal_position # 94: 00060060 + # 98: ffffdfff + +# Function @ .irom0.text+0x9c + .balign 4 + .global rtc_get_reset_reason + .type rtc_get_reset_reason, @function +rtc_get_reset_reason: + movi a4, 0x60000600 # 9c: 41feff + memw # 9f: c02000 + l32i a2, a4, 0x114 /* [0x60000714] */ # a2: 222445 + extui a2, a2, 0, 4 # a5: 202034 + bnei a2, 5, .Lbr003 # a8: 665224 + memw # ab: c02000 + l32i a3, a4, 0x118 /* [0x60000718] */ # ae: 322446 + extui a3, a3, 8, 6 # b1: 303854 + bnei a3, 1, .Lbr002 # b4: 661304 + movi a2, 6 /* 0x00000006 */ # b7: 0c62 + j .Lbr003 # b9: c60400 +.Lbr002: memw # bc: c02000 + l32i a6, a4, 0x118 /* [0x60000718] */ # bf: 622446 + movi a5, 0 /* 0x00000000 */ # c2: 0c05 + extui a6, a6, 8, 6 # c4: 606854 + addi a6, a6, -8 # c7: 62c6f8 + movnez a2, a5, a6 # ca: 602593 + extui a2, a2, 0, 8 # cd: 202074 +.Lbr003: movi a8, 0xffdfffff # d0: 81f2ff + memw # d3: c02000 + l32i a7, a4, 0x108 /* [0x60000708] */ # d6: 722442 + and a7, a7, a8 # d9: 807710 + memw # dc: c02000 + s32i a7, a4, 0x108 /* a7 -> [0x60000708] */ # df: 726442 + ret # e2: 0df0 diff --git a/binary_sdk/libmain_stage1/os_cpu_a.S b/binary_sdk/libmain_stage1/os_cpu_a.S new file mode 100644 index 0000000..f48d990 --- /dev/null +++ b/binary_sdk/libmain_stage1/os_cpu_a.S @@ -0,0 +1,227 @@ + + .section .text, "ax", @progbits + + .literal_position # 0: 00000000 + # 4: 00000000 + # 8: 00000000 + # c: 00000000 + # 10: 00000000 + +# Function @ .text+0x14 +# Local variables/stack: +# (local0): word @ -0x50 +# (local1): word @ -0x4c +# (local2): word @ -0x48 +# (local3): word @ -0x44 +# (local4): word[16] @ -0x40 + .balign 4 + .global vPortYield + .type vPortYield, @function +vPortYield: wsr a0, excsave1 # 14: 00d113 + addi sp, sp, -80 /* (local0) */ # 17: 12c1b0 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 1a: 0911 + addi a0, sp, 80 /* (top of frame) */ # 1c: 02c150 + s32i a0, sp, 16 /* (top of frame) -> [(local4)] */ # 1f: 0941 + rsr a0, ps # 21: 00e603 + s32i a0, sp, 8 /* a0 -> [(local2)] */ # 24: 0921 + rsr a0, excsave1 # 26: 00d103 + s32i a0, sp, 12 /* a0 -> [(local3)] */ # 29: 0931 + movi a0, _xt_user_exit # 2b: 01f5ff + s32i a0, sp, 0 /* _xt_user_exit -> [(local0)] */ # 2e: 0901 + call0 _xt_int_enter # 30: 050000 + call0 vPortEnterCritical # 33: 01f4ffc0 + # 37: 0000 + call0 vTaskSwitchContext # 39: 01f3ffc0 + # 3d: 0000 + call0 vPortExitCritical # 3f: 01f3ffc0 + # 43: 0000 + call0 _xt_int_exit # 45: 01f2ffc0 + # 49: 0000 + ret # 4b: 0df0 + + .literal_position # 50: 00000000 + # 54: 00000000 + # 58: 00000000 + # 5c: 00000000 + # 60: 00000000 + # 64: 00350c00 + # 68: 00000000 + # 6c: 00000000 + # 70: 00350c00 + +# Function @ .text+0x74 + .balign 4 + .global _xt_int_enter + .type _xt_int_enter, @function +_xt_int_enter: + s32i a12, sp, 60 /* a12 -> [(FP)+0x3c] */ # 74: c9f1 + s32i a13, sp, 64 /* a13 -> [(FP)+0x40] */ # 76: d26110 + mov a12, a0 # 79: cd00 + call0 _xt_context_save # 7b: 01f5ffc0 + # 7f: 0000 + movi a0, pxCurrentTCB # 81: 01f4ff + l32i a0, a0, 0 /* [pxCurrentTCB] */ # 84: 0800 + s32i sp, a0, 0 /* (top of frame) -> [[pxCurrentTCB]] */ # 86: 1900 + mov a0, a12 # 88: 0d0c + ret # 8a: 0df0 + +# Function @ .text+0x8c + .balign 4 + .global _xt_int_exit + .type _xt_int_exit, @function +_xt_int_exit: + s32i a14, sp, 68 /* a14 -> [(FP)+0x44] */ # 8c: e26111 + s32i a15, sp, 72 /* a15 -> [(FP)+0x48] */ # 8f: f26112 + movi sp, pxCurrentTCB # 92: 11f1ff + l32i sp, sp, 0 /* [pxCurrentTCB] */ # 95: 1801 + l32i sp, sp, 0 /* [[pxCurrentTCB]] */ # 97: 1801 + movi a14, pxCurrentTCB # 99: e1f0ff + l32i a14, a14, 0 /* [pxCurrentTCB] */ # 9c: e80e + addi a15, sp, 80 /* [[pxCurrentTCB]]+0x50 */ # 9e: f2c150 + s32i a15, a14, 0 /* [[pxCurrentTCB]]+0x50 -> [[pxCurrentTCB]] */ # a1: f90e + call0 _xt_context_restore # a3: 01efffc0 + # a7: 0000 + l32i a14, sp, 68 /* [[[pxCurrentTCB]]+0x44] */ # a9: e22111 + l32i a15, sp, 72 /* [[[pxCurrentTCB]]+0x48] */ # ac: f22112 + l32i a0, sp, 0 /* [[[pxCurrentTCB]]] */ # af: 0801 + ret # b1: 0df0 + + .balign 4 +# Function @ .text+0xb4 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 + .global _xt_timer_int + .type _xt_timer_int, @function +_xt_timer_int: + addi sp, sp, -16 /* (local0) */ # b4: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # b7: 0901 +.Lbr001: movi a2, 0x000c3500 # b9: 21eaff + rsr a3, ccompare0 # bc: 30f003 + add a4, a3, a2 # bf: 2a43 + wsr a4, ccompare0 # c1: 40f013 + esync # c4: 202000 + s32i a2, sp, 4 /* 0x000c3500 -> [(local1)] */ # c7: 2911 + s32i a3, sp, 8 /* a3 -> [(local2)] */ # c9: 3921 + call0 xPortSysTickHandle # cb: 01e7ffc0 + # cf: 0000 + l32i a2, sp, 4 /* [(local1)] */ # d1: 2811 + l32i a3, sp, 8 /* [(local2)] */ # d3: 3821 + esync # d5: 202000 + rsr a4, ccount # d8: 40ea03 + sub a4, a4, a3 # db: 3044c0 + blt a2, a4, .Lbr001 # de: 4722d7 + l32i a0, sp, 0 /* [(local0)] */ # e1: 0801 + addi sp, sp, 16 /* (top of frame) */ # e3: 12c110 + ret /* [(local1)] */ # e6: 0df0 + +# Function @ .text+0xe8 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 + .global _xt_timer_int1 + .type _xt_timer_int1, @function +_xt_timer_int1: + addi sp, sp, -16 /* (local0) */ # e8: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # eb: 0901 + s32i a2, sp, 4 /* arg0 -> [(local1)] */ # ed: 2911 + s32i a3, sp, 8 /* arg1 -> [(local2)] */ # ef: 3921 + call0 vTaskSwitchContext # f1: 01deffc0 + # f5: 0000 + l32i a2, sp, 4 /* [(local1)] */ # f7: 2811 + l32i a3, sp, 8 /* [(local2)] */ # f9: 3821 + l32i a0, sp, 0 /* [(local0)] */ # fb: 0801 + addi sp, sp, 16 /* (top of frame) */ # fd: 12c110 + ret /* [(local1)] */ # 100: 0df0 + + .balign 4 +# Function @ .text+0x104 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global _xt_tick_timer_init + .type _xt_tick_timer_init, @function +_xt_tick_timer_init: + addi sp, sp, -16 /* (local0) */ # 104: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 107: 0901 + movi a3, 0x000c3500 # 109: 31d9ff + rsr a2, ccount # 10c: 20ea03 + add a2, a2, a3 # 10f: 3a22 + wsr a2, ccompare0 # 111: 20f013 + movi a2, 0 /* 0x00000000 */ # 114: 0c02 + xsr a2, intenable # 116: 20e461 + movi a3, 64 /* 0x00000040 */ # 119: 4c03 + or a2, a2, a3 # 11b: 302220 + wsr a2, intenable # 11e: 20e413 + l32i a0, sp, 0 /* [(local0)] */ # 121: 0801 + addi sp, sp, 16 /* (top of frame) */ # 123: 12c110 + ret # 126: 0df0 + +# Function @ .text+0x128 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global _xt_isr_unmask + .type _xt_isr_unmask, @function +_xt_isr_unmask: + addi sp, sp, -16 /* (local0) */ # 128: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 12b: 0901 + movi a3, 0 /* 0x00000000 */ # 12d: 0c03 + xsr a3, intenable # 12f: 30e461 + or a3, a2, a3 # 132: 303220 + wsr a3, intenable # 135: 30e413 + l32i a0, sp, 0 /* [(local0)] */ # 138: 0801 + addi sp, sp, 16 /* (top of frame) */ # 13a: 12c110 + ret /* arg0 */ # 13d: 0df0 + + .balign 4 +# Function @ .text+0x140 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global _xt_isr_mask + .type _xt_isr_mask, @function +_xt_isr_mask: + addi sp, sp, -16 /* (local0) */ # 140: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 143: 0901 + movi a3, 0 /* 0x00000000 */ # 145: 0c03 + xsr a3, intenable # 147: 30e461 + and a3, a2, a3 # 14a: 303210 + wsr a3, intenable # 14d: 30e413 + l32i a0, sp, 0 /* [(local0)] */ # 150: 0801 + addi sp, sp, 16 /* (top of frame) */ # 152: 12c110 + ret /* arg0 */ # 155: 0df0 + + .balign 4 +# Function @ .text+0x158 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global _xt_read_ints + .type _xt_read_ints, @function +_xt_read_ints: + addi sp, sp, -16 /* (local0) */ # 158: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 15b: 0901 + rsr a2, interrupt # 15d: 20e203 + l32i a0, sp, 0 /* [(local0)] */ # 160: 0801 + addi sp, sp, 16 /* (top of frame) */ # 162: 12c110 + ret # 165: 0df0 + + .balign 4 +# Function @ .text+0x168 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global _xt_clear_ints + .type _xt_clear_ints, @function +_xt_clear_ints: + addi sp, sp, -16 /* (local0) */ # 168: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 16b: 0901 + wsr a2, intclear # 16d: 20e313 + l32i a0, sp, 0 /* [(local0)] */ # 170: 0801 + addi sp, sp, 16 /* (top of frame) */ # 172: 12c110 + ret # 175: 0df0 diff --git a/binary_sdk/libmain_stage1/spi_flash.S b/binary_sdk/libmain_stage1/spi_flash.S new file mode 100644 index 0000000..584c9f7 --- /dev/null +++ b/binary_sdk/libmain_stage1/spi_flash.S @@ -0,0 +1,545 @@ + + .section .text, "ax", @progbits + + .literal_position # 0: ff9f6ffe + # 4: 00020060 + # 8: 00200000 + # c: 00000000 + # 10: 00020060 + # 14: 00200001 + # 18: 00201000 + # 1c: 00208000 + # 20: 00600000 + # 24: 00000000 + # 28: 00000000 + +# Function @ .text+0x2c +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global SPIReadModeCnfig + .type SPIReadModeCnfig, @function +SPIReadModeCnfig: + addi sp, sp, -16 /* (local0) */ # 2c: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 2f: 0901 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 31: c911 + movi a4, 0xfe6f9fff # 33: 41f3ff + movi a3, 0x60000200 # 36: 31f3ff + memw # 39: c02000 + l32i a0, a3, 8 /* [0x60000208] */ # 3c: 0823 + and a0, a0, a4 # 3e: 400010 + memw # 41: c02000 + s32i a0, a3, 8 /* a0 -> [0x60000208] */ # 44: 0923 + movi a0, flashchip # 46: 01f1ff + beqz a2, .Lbr004 # 49: 166204 + beqi a2, 1, .Lbr005 # 4c: 261249 + beqi a2, 2, .Lbr006 # 4f: 26224c + beqi a2, 3, .Lbr007 # 52: 26324f + addi a6, a2, -4 /* arg0-0x4 */ # 55: 62c2fc + movi a5, 0x00002000 # 58: 51ecff + movi a12, 0 /* 0x00000000 */ # 5b: 0c0c + moveqz a12, a5, a6 # 5d: 60c583 +.Lbr001: beqz a2, .Lbr003 # 60: ac42 + beqi a2, 1, .Lbr003 # 62: 261222 + mov a2, a0 /* flashchip */ # 65: 2d00 + call0 Disable_QMode # 67: 01efffc0 + # 6b: 0000 +.Lbr002: memw # 6d: c02000 + movi a8, 0x60000200 # 70: 81e8ff + l32i a7, a8, 8 /* [0x60000208] */ # 73: 7828 + or a7, a7, a12 # 75: c07720 + memw # 78: c02000 + s32i a7, a8, 8 /* a7 -> [0x60000208] */ # 7b: 7928 + movi a2, 0 /* 0x00000000 */ # 7d: 0c02 + l32i a12, sp, 4 /* [(local1)] */ # 7f: c811 + l32i a0, sp, 0 /* [(local0)] */ # 81: 0801 + addi sp, sp, 16 /* (top of frame) */ # 83: 12c110 + ret /* 0x00000000 */ # 86: 0df0 +.Lbr003: mov a2, a0 /* flashchip */ # 88: 2d00 + call0 Enable_QMode # 8a: 01e7ffc0 + # 8e: 0000 + j .Lbr002 # 90: 46f6ff +.Lbr004: movi a12, 0x01002000 # 93: c1e0ff + j .Lbr001 # 96: 86f1ff +.Lbr005: movi a12, 0x00102000 # 99: c1dfff + j .Lbr001 # 9c: 06f0ff +.Lbr006: movi a12, 0x00802000 # 9f: c1dfff + j .Lbr001 # a2: 86eeff +.Lbr007: movi a12, 0x00006000 # a5: c1deff + j .Lbr001 # a8: 06edff + + .literal_position # ac: 00000000 + # b0: 00000000 + # b4: 00000000 + # b8: 00000000 + # bc: 00000000 + # c0: 00000000 + # c4: 00000000 + # c8: 00000000 + # cc: 00000000 + # d0: 00000000 + # d4: 00000000 + +# Function @ .text+0xd8 +# Local variables/stack: +# (local0): word @ -0x30 +# (local1): word @ -0x2c +# (local2): word @ -0x28 +# (local3): word @ -0x24 +# (local4): word @ -0x20 +# (local5): word @ -0x1c +# (local6): word @ -0x18 +# (local7): word @ -0x14 +# (local8): word @ -0x10 +# (local9): word[3] @ -0xc + .balign 4 + .global SPIWrite + .type SPIWrite, @function +SPIWrite: mov a5, a4 /* arg2 */ # d8: 5d04 + addi sp, sp, -48 /* (local0) */ # da: 12c1d0 + s32i a12, sp, 16 /* a12 -> [(local4)] */ # dd: c941 + s32i a14, sp, 24 /* a14 -> [(local6)] */ # df: e961 + s32i a3, sp, 36 /* arg1 -> [(local9)] */ # e1: 3991 + s32i a0, sp, 12 /* a0 -> [(local3)] */ # e3: 0931 + movi a4, flashchip # e5: 41f1ff + s32i a15, sp, 28 /* a15 -> [(local7)] */ # e8: f971 + s32i a13, sp, 20 /* a13 -> [(local5)] */ # ea: d951 + mov a15, a3 /* arg1 */ # ec: fd03 + mov a13, a2 /* arg0 */ # ee: dd02 + l32i a0, a4, 4 /* [.Ldata001] */ # f0: 0814 + add a2, a5, a2 # f2: 2a25 + bltu a0, a2, .Lbr008 # f4: 273002 + j .Lbr014 # f7: 462000 +.Lbr008: movi a2, 1 /* 0x00000001 */ # fa: 0c12 + j .Lbr013 # fc: 461b00 +.Lbr009: movi a2, flashchip # ff: 21ecff + mov a3, a13 /* arg0 */ # 102: 3d0d + mov a4, a15 /* arg1 */ # 104: 4d0f + mov a5, a12 # 106: 5d0c + call0 SPI_page_program # 108: 01eeffc0 + # 10c: 0000 + bnez a2, .Lbr008 # 10e: 5682fe + l32i a2, sp, 8 /* [(local2)] */ # 111: 2821 + mov a3, a14 /* [.Ldata003] */ # 113: 3d0e + sub a2, a2, a12 # 115: c022c0 + s32i a2, sp, 0 /* a2 -> [(local0)] */ # 118: 2901 + call0 __udivsi3 # 11a: 01eaffc0 + # 11e: 0000 + s32i a2, sp, 4 /* a2 -> [(local1)] */ # 120: 2911 + beqz a2, .Lbr011 # 122: acf2 + movi a3, 0 /* 0x00000000 */ # 124: 0c03 + s32i a3, sp, 32 /* 0x00000000 -> [(local8)] */ # 126: 3981 +.Lbr010: movi a2, flashchip # 128: 21e3ff + add a3, a13, a12 # 12b: ca3d + mov a5, a14 /* [.Ldata003] */ # 12d: 5d0e + srli a4, a12, 2 # 12f: c04241 + addx4 a4, a4, a15 # 132: f044a0 + call0 SPI_page_program # 135: 01e4ffc0 + # 139: 0000 + bnez a2, .Lbr008 # 13b: 56b2fb + add a12, a14, a12 # 13e: cace + l32i a6, sp, 32 /* [(local8)] */ # 140: 6881 + l32i a5, sp, 4 /* [(local1)] */ # 142: 5811 + addi a7, a6, 1 /* [(local8)]+0x1 */ # 144: 1b76 + extui a6, a7, 0, 8 # 146: 706074 + s32i a6, sp, 32 /* a6 -> [(local8)] */ # 149: 6981 + bne a5, a6, .Lbr010 # 14b: 6795d9 + l32i a8, sp, 8 /* [(local2)] */ # 14e: 8821 + sub a8, a8, a12 # 150: c088c0 + s32i a8, sp, 0 /* a8 -> [(local0)] */ # 153: 8901 +.Lbr011: add a3, a13, a12 # 155: ca3d + movi a2, flashchip # 157: 21d8ff + l32i a5, sp, 0 /* [(local0)] */ # 15a: 5801 + srli a4, a12, 2 # 15c: c04241 + addx4 a4, a4, a15 # 15f: f044a0 + call0 SPI_page_program # 162: 01daffc0 + # 166: 0000 + bnez a2, .Lbr008 # 168: 56e2f8 +.Lbr012: movi a2, 0 /* 0x00000000 */ # 16b: 0c02 +.Lbr013: l32i a12, sp, 16 /* [(local4)] */ # 16d: c841 + l32i a13, sp, 20 /* [(local5)] */ # 16f: d851 + l32i a14, sp, 24 /* [(local6)] */ # 171: e861 + l32i a15, sp, 28 /* [(local7)] */ # 173: f871 + l32i a0, sp, 12 /* [(local3)] */ # 175: 0831 + addi sp, sp, 48 /* (top of frame) */ # 177: 12c130 + ret # 17a: 0df0 +.Lbr014: mov a2, a13 /* arg0 */ # 17c: 2d0d + l32i a14, a4, 16 /* [.Ldata003] */ # 17e: e844 + s32i a5, sp, 8 /* arg2 -> [(local2)] */ # 180: 5921 + mov a3, a14 /* [.Ldata003] */ # 182: 3d0e + call0 __umodsi3 # 184: 01d3ffc0 + # 188: 0000 + l32i a5, sp, 8 /* [(local2)] */ # 18a: 5821 + sub a12, a14, a2 # 18c: 20cec0 + bltu a5, a12, .Lbr015 # 18f: c73502 + j .Lbr009 # 192: 46daff +.Lbr015: mov a4, a15 /* arg1 */ # 195: 4d0f + mov a3, a13 /* arg0 */ # 197: 3d0d + movi a2, flashchip # 199: 21c8ff + call0 SPI_page_program # 19c: 01ceffc0 + # 1a0: 0000 + bnez a2, .Lbr008 # 1a2: 5642f5 + j .Lbr012 # 1a5: 86f0ff + + .literal_position # 1a8: 00000000 + # 1ac: 00000000 + +# Function @ .text+0x1b0 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global SPIRead + .type SPIRead, @function +SPIRead: mov a5, a4 /* arg2 */ # 1b0: 5d04 + mov a7, a3 /* arg1 */ # 1b2: 7d03 + addi sp, sp, -16 /* (local0) */ # 1b4: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1b7: 0901 + mov a3, a2 /* arg0 */ # 1b9: 3d02 + mov a4, a7 /* arg1 */ # 1bb: 4d07 + movi a2, flashchip # 1bd: 21faff + call0 SPI_read_data # 1c0: 01fbffc0 + # 1c4: 0000 + movi a4, 0 /* 0x00000000 */ # 1c6: 0c04 + l32i a3, sp, 0 /* [(local0)] */ # 1c8: 3801 + movi a0, 1 /* 0x00000001 */ # 1ca: 0c10 + addi sp, sp, 16 /* (top of frame) */ # 1cc: 12c110 + moveqz a0, a4, a2 # 1cf: 200483 + mov a2, a0 # 1d2: 2d00 + mov a0, a3 /* [(local0)] */ # 1d4: 0d03 + ret # 1d6: 0df0 + + .literal_position # 1d8: 00000000 + # 1dc: 00000000 + # 1e0: 00000000 + # 1e4: 00000000 + # 1e8: 00000000 + # 1ec: 00000000 + +# Function @ .text+0x1f0 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global SPIEraseSector + .type SPIEraseSector, @function +SPIEraseSector: + addi sp, sp, -16 /* (local0) */ # 1f0: 12c1f0 + movi a3, flashchip # 1f3: 31f9ff + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 1f6: c911 + mov a12, a2 /* arg0 */ # 1f8: cd02 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1fa: 0901 + l32i a2, a3, 4 /* [.Ldata001] */ # 1fc: 2813 + l32i a3, a3, 12 /* [.Ldata002] */ # 1fe: 3833 + call0 __udivsi3 # 200: 01f9ffc0 + # 204: 0000 + bgeu a12, a2, .Lbr016 # 206: 27bc1f + movi a2, flashchip # 209: 21f4ff + call0 SPI_write_enable # 20c: 01f7ffc0 + # 210: 0000 + bnez a2, .Lbr016 # 212: dc32 + movi a2, flashchip # 214: 21f3ff + l32i a3, a2, 12 /* [.Ldata002] */ # 217: 3832 + mull a3, a3, a12 # 219: c03382 + call0 SPI_sector_erase # 21c: 01f4ffc0 + # 220: 0000 + bnez a2, .Lbr016 # 222: cc32 + movi a2, 0 /* 0x00000000 */ # 224: 0c02 + j .Lbr017 # 226: 460000 +.Lbr016: movi a2, 1 /* 0x00000001 */ # 229: 0c12 +.Lbr017: l32i a12, sp, 4 /* [(local1)] */ # 22b: c811 + l32i a0, sp, 0 /* [(local0)] */ # 22d: 0801 + addi sp, sp, 16 /* (top of frame) */ # 22f: 12c110 + ret # 232: 0df0 + + .literal_position # 234: 00000000 + # 238: 00020060 + # 23c: 00000010 + # 240: ffffff00 + # 244: 00000000 + # 248: 00000000 + # 24c: 00000000 + # 250: 00000000 + # 254: 00000000 + +# Function @ .text+0x258 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global spi_flash_get_id + .type spi_flash_get_id, @function +spi_flash_get_id: + addi sp, sp, -16 /* (local0) */ # 258: 12c1f0 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 25b: 0911 + call0 vPortEnterCritical # 25d: 01f9ffc0 + # 261: 0000 + call0 Cache_Read_Disable # 263: 01f9ffc0 + # 267: 0000 + movi a2, flashchip # 269: 21f2ff + call0 Wait_SPI_Idle # 26c: 01f8ffc0 + # 270: 0000 + movi a4, 0 /* 0x00000000 */ # 272: 0c04 + movi a0, 0x60000200 # 274: 01f1ff + memw # 277: c02000 + s32i a4, a0, 64 /* 0x00000000 -> [0x60000240] */ # 27a: 426010 + movi a3, 0x10000000 # 27d: 31efff + memw # 280: c02000 + s32i a3, a0, 0 /* 0x10000000 -> [0x60000200] */ # 283: 3900 + memw # 285: c02000 + l32i a2, a0, 0 /* [0x60000200] */ # 288: 2800 + beqz a2, .Lbr019 # 28a: 8c62 +.Lbr018: memw # 28c: c02000 + l32i a5, a0, 0 /* [0x60000200] */ # 28f: 5800 + bnez a5, .Lbr018 # 291: 5675ff +.Lbr019: movi a7, 0x00ffffff # 294: 71ebff + memw # 297: c02000 + movi a2, 0 /* 0x00000000 */ # 29a: 0c02 + movi a3, 0 /* 0x00000000 */ # 29c: 0c03 + l32i a6, a0, 64 /* [0x60000240] */ # 29e: 622010 + movi a4, 1 /* 0x00000001 */ # 2a1: 0c14 + and a6, a6, a7 # 2a3: 706610 + s32i a6, sp, 0 /* a6 -> [(local0)] */ # 2a6: 6901 + call0 Cache_Read_Enable # 2a8: 01eaffc0 + # 2ac: 0000 + call0 vPortExitCritical # 2ae: 01e9ffc0 + # 2b2: 0000 + l32i a8, sp, 4 /* [(local1)] */ # 2b4: 8811 + l32i a2, sp, 0 /* [(local0)] */ # 2b6: 2801 + mov a0, a8 /* [(local1)] */ # 2b8: 0d08 + addi sp, sp, 16 /* (top of frame) */ # 2ba: 12c110 + ret /* [(local0)] */ # 2bd: 0df0 + + .literal_position # 2c0: 00000000 + # 2c4: 00000000 + # 2c8: 00000000 + # 2cc: 00000000 + # 2d0: 00000000 + # 2d4: 00000000 + +# Function @ .text+0x2d8 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 + .global spi_flash_read_status + .type spi_flash_read_status, @function +spi_flash_read_status: + addi sp, sp, -16 /* (local0) */ # 2d8: 12c1f0 + s32i a2, sp, 0 /* arg0 -> [(local0)] */ # 2db: 2901 + s32i a0, sp, 8 /* a0 -> [(local2)] */ # 2dd: 0921 + call0 vPortEnterCritical # 2df: 01f9ffc0 + # 2e3: 0000 + call0 Cache_Read_Disable # 2e5: 01f8ffc0 + # 2e9: 0000 + movi a2, flashchip # 2eb: 21f5ff + l32i a3, sp, 0 /* [(local0)] */ # 2ee: 3801 + call0 SPI_read_status # 2f0: 01f7ffc0 + # 2f4: 0000 + movi a3, 0 /* 0x00000000 */ # 2f6: 0c03 + s32i a2, sp, 4 /* a2 -> [(local1)] */ # 2f8: 2911 + movi a4, 1 /* 0x00000001 */ # 2fa: 0c14 + movi a2, 0 /* 0x00000000 */ # 2fc: 0c02 + call0 Cache_Read_Enable # 2fe: 01f4ffc0 + # 302: 0000 + call0 vPortExitCritical # 304: 01f4ffc0 + # 308: 0000 + l32i a3, sp, 8 /* [(local2)] */ # 30a: 3821 + l32i a2, sp, 4 /* [(local1)] */ # 30c: 2811 + mov a0, a3 /* [(local2)] */ # 30e: 0d03 + addi sp, sp, 16 /* (top of frame) */ # 310: 12c110 + ret /* [(local1)] */ # 313: 0df0 + + .literal_position # 318: 00000000 + # 31c: 00000000 + # 320: 00000000 + # 324: 00000000 + # 328: 00000000 + # 32c: 00000000 + +# Function @ .text+0x330 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 + .global spi_flash_write_status + .type spi_flash_write_status, @function +spi_flash_write_status: + addi sp, sp, -16 /* (local0) */ # 330: 12c1f0 + s32i a2, sp, 0 /* arg0 -> [(local0)] */ # 333: 2901 + s32i a0, sp, 8 /* a0 -> [(local2)] */ # 335: 0921 + call0 vPortEnterCritical # 337: 01f9ffc0 + # 33b: 0000 + call0 Cache_Read_Disable # 33d: 01f8ffc0 + # 341: 0000 + movi a2, flashchip # 343: 21f5ff + l32i a3, sp, 0 /* [(local0)] */ # 346: 3801 + call0 SPI_write_status # 348: 01f7ffc0 + # 34c: 0000 + movi a3, 0 /* 0x00000000 */ # 34e: 0c03 + s32i a2, sp, 4 /* a2 -> [(local1)] */ # 350: 2911 + movi a4, 1 /* 0x00000001 */ # 352: 0c14 + movi a2, 0 /* 0x00000000 */ # 354: 0c02 + call0 Cache_Read_Enable # 356: 01f4ffc0 + # 35a: 0000 + call0 vPortExitCritical # 35c: 01f4ffc0 + # 360: 0000 + l32i a3, sp, 8 /* [(local2)] */ # 362: 3821 + l32i a2, sp, 4 /* [(local1)] */ # 364: 2811 + mov a0, a3 /* [(local2)] */ # 366: 0d03 + addi sp, sp, 16 /* (top of frame) */ # 368: 12c110 + ret /* [(local1)] */ # 36b: 0df0 + + .literal_position # 370: 00000000 + # 374: 00000000 + # 378: 00000000 + # 37c: 00000000 + +# Function @ .text+0x380 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 + .global spi_flash_erase_sector + .type spi_flash_erase_sector, @function +spi_flash_erase_sector: + addi sp, sp, -16 /* (local0) */ # 380: 12c1f0 + s32i a2, sp, 0 /* arg0 -> [(local0)] */ # 383: 2901 + s32i a0, sp, 8 /* a0 -> [(local2)] */ # 385: 0921 + call0 vPortEnterCritical # 387: 01faffc0 + # 38b: 0000 + call0 Cache_Read_Disable # 38d: 01f9ffc0 + # 391: 0000 + l32i a2, sp, 0 /* [(local0)] */ # 393: 2801 + call0 SPIEraseSector # 395: 050000 + movi a3, 0 /* 0x00000000 */ # 398: 0c03 + s32i a2, sp, 4 /* a2 -> [(local1)] */ # 39a: 2911 + movi a4, 1 /* 0x00000001 */ # 39c: 0c14 + movi a2, 0 /* 0x00000000 */ # 39e: 0c02 + call0 Cache_Read_Enable # 3a0: 01f6ffc0 + # 3a4: 0000 + call0 vPortExitCritical # 3a6: 01f5ffc0 + # 3aa: 0000 + l32i a3, sp, 8 /* [(local2)] */ # 3ac: 3821 + l32i a2, sp, 4 /* [(local1)] */ # 3ae: 2811 + mov a0, a3 /* [(local2)] */ # 3b0: 0d03 + addi sp, sp, 16 /* (top of frame) */ # 3b2: 12c110 + ret /* [(local1)] */ # 3b5: 0df0 + + .literal_position # 3b8: 00000000 + # 3bc: 00000000 + # 3c0: 00000000 + # 3c4: 00000000 + +# Function @ .text+0x3c8 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word @ -0x8 +# (local3): word @ -0x4 + .balign 4 + .global spi_flash_write + .type spi_flash_write, @function +spi_flash_write: + addi sp, sp, -16 /* (local0) */ # 3c8: 12c1f0 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 3cb: 0911 + s32i a13, sp, 12 /* a13 -> [(local3)] */ # 3cd: d931 + s32i a12, sp, 8 /* a12 -> [(local2)] */ # 3cf: c921 + mov a13, a3 /* arg1 */ # 3d1: dd03 + mov a12, a4 /* arg2 */ # 3d3: cd04 + bnez a3, .Lbr020 # 3d5: cc33 + movi a2, 1 /* 0x00000001 */ # 3d7: 0c12 + j .Lbr022 # 3d9: 460e00 +.Lbr020: s32i a2, sp, 0 /* arg0 -> [(local0)] */ # 3dc: 2901 + movi a0, 3 /* 0x00000003 */ # 3de: 0c30 + bnone a0, a4, .Lbr021 # 3e0: 470007 + movi a0, 4 /* 0x00000004 */ # 3e3: 0c40 + srli a12, a4, 2 # 3e5: 40c241 + addx4 a12, a12, a0 # 3e8: 00cca0 +.Lbr021: call0 vPortEnterCritical # 3eb: 01f3ffc0 + # 3ef: 0000 + call0 Cache_Read_Disable # 3f1: 01f2ffc0 + # 3f5: 0000 + mov a4, a12 # 3f7: 4d0c + mov a3, a13 /* arg1 */ # 3f9: 3d0d + l32i a2, sp, 0 /* [(local0)] */ # 3fb: 2801 + call0 SPIWrite # 3fd: 050000 + movi a3, 0 /* 0x00000000 */ # 400: 0c03 + mov a12, a2 # 402: cd02 + movi a4, 1 /* 0x00000001 */ # 404: 0c14 + movi a2, 0 /* 0x00000000 */ # 406: 0c02 + call0 Cache_Read_Enable # 408: 01eeffc0 + # 40c: 0000 + call0 vPortExitCritical # 40e: 01edffc0 + # 412: 0000 + mov a2, a12 # 414: 2d0c +.Lbr022: l32i a12, sp, 8 /* [(local2)] */ # 416: c821 + l32i a13, sp, 12 /* [(local3)] */ # 418: d831 + l32i a0, sp, 4 /* [(local1)] */ # 41a: 0811 + addi sp, sp, 16 /* (top of frame) */ # 41c: 12c110 + ret # 41f: 0df0 + + .literal_position # 424: 00000000 + # 428: 00000000 + # 42c: 00000000 + # 430: 00000000 + +# Function @ .text+0x434 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word @ -0x8 +# (local3): word @ -0x4 + .balign 4 + .global spi_flash_read + .type spi_flash_read, @function +spi_flash_read: + addi sp, sp, -16 /* (local0) */ # 434: 12c1f0 + s32i a0, sp, 8 /* a0 -> [(local2)] */ # 437: 0921 + s32i a4, sp, 0 /* arg2 -> [(local0)] */ # 439: 4901 + s32i a12, sp, 12 /* a12 -> [(local3)] */ # 43b: c931 + s32i a2, sp, 4 /* arg0 -> [(local1)] */ # 43d: 2911 + mov a12, a3 /* arg1 */ # 43f: cd03 + bnez a3, .Lbr023 # 441: cc33 + movi a2, 1 /* 0x00000001 */ # 443: 0c12 + j .Lbr024 # 445: 860a00 +.Lbr023: call0 vPortEnterCritical # 448: 01f7ffc0 + # 44c: 0000 + call0 Cache_Read_Disable # 44e: 01f6ffc0 + # 452: 0000 + mov a3, a12 /* arg1 */ # 454: 3d0c + l32i a2, sp, 4 /* [(local1)] */ # 456: 2811 + l32i a4, sp, 0 /* [(local0)] */ # 458: 4801 + call0 SPIRead # 45a: 050000 + movi a3, 0 /* 0x00000000 */ # 45d: 0c03 + mov a12, a2 # 45f: cd02 + movi a4, 1 /* 0x00000001 */ # 461: 0c14 + movi a2, 0 /* 0x00000000 */ # 463: 0c02 + call0 Cache_Read_Enable # 465: 01f1ffc0 + # 469: 0000 + call0 vPortExitCritical # 46b: 01f1ffc0 + # 46f: 0000 + mov a2, a12 # 471: 2d0c +.Lbr024: l32i a12, sp, 12 /* [(local3)] */ # 473: c831 + l32i a0, sp, 8 /* [(local2)] */ # 475: 0821 + addi sp, sp, 16 /* (top of frame) */ # 477: 12c110 + ret # 47a: 0df0 + + .section .data, "aw", @progbits + + .global flashchip + .type flashchip, @object +flashchip: .word 0x001640ef # 0: ef401600 +.Ldata001: .word 0x00400000 # 4: 00004000 + +# NOTE: The following is apparently unreferenced code/data + .word 0x00010000 # 8: 00000100 + +.Ldata002: .word 0x00001000 # c: 00100000 +.Ldata003: .word 0x00000100 # 10: 00010000 + +# NOTE: The following is apparently unreferenced code/data + .word 0x0000ffff # 14: ffff0000 diff --git a/binary_sdk/libmain_stage1/timers.S b/binary_sdk/libmain_stage1/timers.S new file mode 100644 index 0000000..db17583 --- /dev/null +++ b/binary_sdk/libmain_stage1/timers.S @@ -0,0 +1,232 @@ + + .section .bss, "aw", @nobits + +.Ldata001: .word 0x00000000 # 0: 00000000 +.Ldata002: .byte 0x00 + + .section .irom0.text, "ax", @progbits + + .literal_position # 0: 00000000 + # 4: 00000000 + # 8: 00000000 + # c: 00000000 + # 10: 00000000 + +# Function @ .irom0.text+0x14 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word @ -0x10 +# (local5): word[3] @ -0xc + .balign 4 + .global os_timer_setfn + .type os_timer_setfn, @function +os_timer_setfn: + addi sp, sp, -32 /* (local0) */ # 14: 12c1e0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 17: 0901 + s32i a14, sp, 12 /* a14 -> [(local3)] */ # 19: e931 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 1b: d921 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 1d: c911 + s32i a15, sp, 16 /* a15 -> [(local4)] */ # 1f: f941 + movi a15, .Ldata001 # 21: f1f7ff + mov a12, a2 /* arg0 */ # 24: cd02 + l32i a13, a15, 0 /* [.Ldata001] */ # 26: d80f + mov a14, a4 /* arg2 */ # 28: ed04 + beqz a13, .Lbr006 # 2a: 16fd04 +.Lbr001: l32i a0, a13, 4 # 2d: 081d + bne a0, a12, .Lbr005 # 2f: c79041 + l32i a2, a12, 24 /* [arg0+0x18] */ # 32: 286c + l32i a4, a12, 16 /* [arg0+0x10] */ # 34: 484c + bne a2, a14, .Lbr002 # 36: e79202 + beq a4, a3, .Lbr007 # 39: 37145f +.Lbr002: l32i a2, a12, 4 /* [arg0+0x4] */ # 3c: 281c + s32i a3, sp, 20 /* arg1 -> [(local5)] */ # 3e: 3951 + beqz a2, .Lbr004 # 40: ac32 + movi a3, 3 /* 0x00000003 */ # 42: 0c33 + movi a4, 0 /* 0x00000000 */ # 44: 0c04 + movi a5, 0 /* 0x00000000 */ # 46: 0c05 + movi a6, 50 /* 0x00000032 */ # 48: 3c26 + call0 xTimerGenericCommand # 4a: 01efffc0 + # 4e: 0000 + l32i a3, sp, 20 /* [(local5)] */ # 50: 3851 + bnez a2, .Lbr003 # 52: cc92 + movi a2, .Lstr001 # 54: 21ecff + call0 printf # 57: 01edffc0 + # 5b: 0000 + l32i a3, sp, 20 /* [(local5)] */ # 5d: 3851 +.Lbr003: l8ui a5, a15, 4 /* [.Ldata002] */ # 5f: 520f04 + addi a5, a5, -1 /* [.Ldata002]-0x1 */ # 62: 0b55 + s8i a5, a15, 4 /* [.Ldata002]-0x1 -> [.Ldata002] */ # 64: 524f04 +.Lbr004: s32i a3, a12, 16 /* a3 -> [arg0+0x10] */ # 67: 394c + s32i a14, a12, 24 /* arg2 -> [arg0+0x18] */ # 69: e96c + movi a6, 0 /* 0x00000000 */ # 6b: 0c06 + s32i a6, a12, 4 /* 0x00000000 -> [arg0+0x4] */ # 6d: 691c + s32i a6, a12, 12 /* 0x00000000 -> [arg0+0xc] */ # 6f: 693c + j .Lbr007 # 71: c60900 +.Lbr005: l32i a0, a13, 0 # 74: 080d + beqz a0, .Lbr006 # 76: 8c30 + mov a13, a0 # 78: dd00 + bnez a0, .Lbr001 # 7a: 56f0fa +.Lbr006: s32i a3, a12, 16 /* arg1 -> [arg0+0x10] */ # 7d: 394c + s32i a14, a12, 24 /* arg2 -> [arg0+0x18] */ # 7f: e96c + movi a2, 8 /* 0x00000008 */ # 81: 0c82 + movi a7, 0 /* 0x00000000 */ # 83: 0c07 + s32i a7, a12, 4 /* 0x00000000 -> [arg0+0x4] */ # 85: 791c + s32i a7, a12, 12 /* 0x00000000 -> [arg0+0xc] */ # 87: 793c + call0 pvPortMalloc # 89: 01e1ffc0 + # 8d: 0000 + s32i a12, a2, 4 # 8f: c912 + movi a9, 0 /* 0x00000000 */ # 91: 0c09 + l32i a8, a15, 0 /* [.Ldata001] */ # 93: 880f + s32i a9, a2, 0 # 95: 9902 + movnez a15, a13, a8 # 97: 80fd93 + s32i a2, a15, 0 # 9a: 290f +.Lbr007: l32i a12, sp, 4 /* [(local1)] */ # 9c: c811 + l32i a13, sp, 8 /* [(local2)] */ # 9e: d821 + l32i a14, sp, 12 /* [(local3)] */ # a0: e831 + l32i a15, sp, 16 /* [(local4)] */ # a2: f841 + l32i a0, sp, 0 /* [(local0)] */ # a4: 0801 + addi sp, sp, 32 /* (top of frame) */ # a6: 12c120 + ret # a9: 0df0 + + .literal_position # ac: 00000000 + # b0: 18000000 + # b4: 00000000 + # b8: 00000000 + # bc: 00000000 + # c0: 00000000 + # c4: 00000000 + # c8: 00000000 + # cc: 00000000 + +# Function @ .irom0.text+0xd0 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word[4] @ -0x10 + .balign 4 + .global os_timer_arm + .type os_timer_arm, @function +os_timer_arm: + addi sp, sp, -32 /* (local0) */ # d0: 12c1e0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # d3: 0901 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # d5: d921 + s32i a15, sp, 16 /* a15 -> [(local4)] */ # d7: f941 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # d9: c911 + s32i a14, sp, 12 /* a14 -> [(local3)] */ # db: e931 + mov a12, a2 /* arg0 */ # dd: cd02 + mov a14, a3 /* arg1 */ # df: ed03 + l32i a15, a2, 4 /* [arg0+0x4] */ # e1: f812 + mov a13, a4 /* arg2 */ # e3: dd04 + bnez a15, .Lbr008 # e5: ecff + s8i a4, a2, 20 /* arg2 -> [arg0+0x14] */ # e7: 424214 + s32i a3, a2, 12 /* arg1 -> [arg0+0xc] */ # ea: 3932 + mov a2, a3 /* arg1 */ # ec: 2d03 + movi a3, 10 /* 0x0000000a */ # ee: 0ca3 + call0 __udivsi3 # f0: 01f1ffc0 + # f4: 0000 + mov a4, a13 /* arg2 */ # f6: 4d0d + l32i a5, a12, 24 /* [arg0+0x18] */ # f8: 586c + mov a3, a2 # fa: 3d02 + l32i a6, a12, 16 /* [arg0+0x10] */ # fc: 684c + movi a2, 0 /* 0x00000000 */ # fe: 0c02 + call0 xTimerCreate # 100: 01eeffc0 + # 104: 0000 + movi a3, .Ldata001 # 106: 31e9ff + mov a15, a2 # 109: fd02 + l8ui a0, a3, 4 /* [.Ldata002] */ # 10b: 020304 + s32i a2, a12, 4 /* a2 -> [arg0+0x4] */ # 10e: 291c + addi a0, a0, 1 /* [.Ldata002]+0x1 */ # 110: 1b00 + s8i a0, a3, 4 /* [.Ldata002]+0x1 -> [.Ldata002] */ # 112: 024304 + beqz a2, .Lbr011 # 115: 16c204 +.Lbr008: l8ui a3, a12, 20 /* [arg0+0x14] */ # 118: 320c14 + beq a3, a13, .Lbr009 # 11b: d71304 + s8i a13, a12, 20 /* arg2 -> [arg0+0x14] */ # 11e: d24c14 + s32i a13, a15, 28 # 121: d97f +.Lbr009: l32i a4, a12, 12 /* [arg0+0xc] */ # 123: 483c + beq a4, a14, .Lbr010 # 125: e7141b + mov a2, a14 /* arg1 */ # 128: 2d0e + s32i a14, a12, 12 /* arg1 -> [arg0+0xc] */ # 12a: e93c + movi a3, 10 /* 0x0000000a */ # 12c: 0ca3 + call0 __udivsi3 # 12e: 01e3ffc0 + # 132: 0000 + movi a3, 2 /* 0x00000002 */ # 134: 0c23 + movi a5, 0 /* 0x00000000 */ # 136: 0c05 + mov a4, a2 # 138: 4d02 + movi a6, 10 /* 0x0000000a */ # 13a: 0ca6 + mov a2, a15 # 13c: 2d0f + call0 xTimerGenericCommand # 13e: 01e0ffc0 + # 142: 0000 +.Lbr010: call0 xTaskGetTickCount # 144: 01e0ffc0 + # 148: 0000 + movi a3, 0 /* 0x00000000 */ # 14a: 0c03 + movi a5, 0 /* 0x00000000 */ # 14c: 0c05 + mov a4, a2 # 14e: 4d02 + movi a6, 50 /* 0x00000032 */ # 150: 3c26 + l32i a2, a12, 4 /* [arg0+0x4] */ # 152: 281c + call0 xTimerGenericCommand # 154: 01ddffc0 + # 158: 0000 + bnez a2, .Lbr011 # 15a: cc72 + movi a2, .Lstr002 # 15c: 21d5ff + call0 printf # 15f: 01dbffc0 + # 163: 0000 +.Lbr011: l32i a12, sp, 4 /* [(local1)] */ # 165: c811 + l32i a13, sp, 8 /* [(local2)] */ # 167: d821 + l32i a14, sp, 12 /* [(local3)] */ # 169: e831 + l32i a15, sp, 16 /* [(local4)] */ # 16b: f841 + l32i a0, sp, 0 /* [(local0)] */ # 16d: 0801 + addi sp, sp, 32 /* (top of frame) */ # 16f: 12c120 + ret # 172: 0df0 + + .literal_position # 174: 2c000000 + # 178: 00000000 + # 17c: 00000000 + +# Function @ .irom0.text+0x180 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global os_timer_disarm + .type os_timer_disarm, @function +os_timer_disarm: + addi sp, sp, -16 /* (local0) */ # 180: 12c1f0 + l32i a2, a2, 4 /* [arg0+0x4] */ # 183: 2812 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 185: 0901 + beqz a2, .Lbr012 # 187: 9c72 + movi a3, 1 /* 0x00000001 */ # 189: 0c13 + movi a4, 0 /* 0x00000000 */ # 18b: 0c04 + movi a5, 0 /* 0x00000000 */ # 18d: 0c05 + movi a6, 50 /* 0x00000032 */ # 18f: 3c26 + call0 xTimerGenericCommand # 191: 01f9ffc0 + # 195: 0000 + bnez a2, .Lbr012 # 197: cc72 + movi a2, .Lstr003 # 199: 21f6ff + call0 printf # 19c: 01f8ffc0 + # 1a0: 0000 +.Lbr012: l32i a0, sp, 0 /* [(local0)] */ # 1a2: 0801 + addi sp, sp, 16 /* (top of frame) */ # 1a4: 12c110 + ret # 1a7: 0df0 + + .section .rodata.str1.4, "MSa", @progbits, 1 + +.Lstr001: .asciz "Timer Delete Failed\n" # 0: 54696d65 + # 4: 72204465 + # 8: 6c657465 + # c: 20466169 + # 10: 6c65640a + # 14: 00 + .balign 4 +.Lstr002: .asciz "Timer Start Failed\n" # 18: 54696d65 + # 1c: 72205374 + # 20: 61727420 + # 24: 4661696c + # 28: 65640a00 +.Lstr003: .asciz "Timer Stop Failed\n" # 2c: 54696d65 + # 30: 72205374 + # 34: 6f702046 + # 38: 61696c65 + # 3c: 640a00 diff --git a/binary_sdk/libmain_stage1/uart.S b/binary_sdk/libmain_stage1/uart.S new file mode 100644 index 0000000..483ad7e --- /dev/null +++ b/binary_sdk/libmain_stage1/uart.S @@ -0,0 +1,47 @@ + + .section .irom0.text, "ax", @progbits + +# Function @ .irom0.text+0x0 + .balign 4 + .literal_position + .global uart_buff_switch + .type uart_buff_switch, @function +uart_buff_switch: + ret /* arg0 */ # 0: 0df0 + + .literal_position # 4: 000f0000 + # 8: 00feff5f + # c: 00000600 + # 10: fffff9ff + +# Function @ .irom0.text+0x14 + .balign 4 + .global uart_div_modify + .type uart_div_modify, @function +uart_div_modify: + movi a5, 0x00000f00 # 14: 51fcff + movi a6, 0x5ffffe00 # 17: 61fcff + mul16s a5, a5, a2 # 1a: 2055d1 + add a5, a5, a6 # 1d: 6a55 + memw # 1f: c02000 + s32i a3, a5, 0x214 # 22: 326585 + movi a8, 0x00060000 # 25: 81f9ff + memw # 28: c02000 + l32i a7, a5, 0x220 # 2b: 722588 + or a7, a7, a8 # 2e: 807720 + memw # 31: c02000 + s32i a7, a5, 0x220 # 34: 726588 + movi a6, 0xfff9ffff # 37: 61f6ff + memw # 3a: c02000 + l32i a4, a5, 0x220 # 3d: 422588 + and a4, a4, a6 # 40: 604410 + memw # 43: c02000 + s32i a4, a5, 0x220 # 46: 426588 + ret /* arg0 */ # 49: 0df0 + + .balign 4 +# Function @ .irom0.text+0x4c + .balign 4 + .global Uart_Init + .type Uart_Init, @function +Uart_Init: ret /* arg0 */ # 4c: 0df0 diff --git a/binary_sdk/libmain_stage1/user_interface.S b/binary_sdk/libmain_stage1/user_interface.S new file mode 100644 index 0000000..cfe8ed9 --- /dev/null +++ b/binary_sdk/libmain_stage1/user_interface.S @@ -0,0 +1,4673 @@ + + .section .text, "ax", @progbits + + .literal_position # 0: 00000000 + # 4: 00feef3f + # 8: 000a0060 + # c: 80000040 + # 10: 00000000 + # 14: 00000000 + # 18: 00000000 + # 1c: 00000000 + +# Function @ .text+0x20 +# Local variables/stack: +# (local0): word[8] @ -0x30 +# (local1): word @ -0x10 +# (local2): word[3] @ -0xc + .balign 4 + .global system_restart_in_nmi + .type system_restart_in_nmi, @function +system_restart_in_nmi: + movi a2, 0 /* 0x00000000 */ # 20: 0c02 + movi a4, 32 /* 0x00000020 */ # 22: 2c04 + addi sp, sp, -48 /* (local0) */ # 24: 12c1d0 + s32i a12, sp, 36 /* a12 -> [(local2)] */ # 27: c991 + mov a3, sp /* (local0) */ # 29: 3d01 + s32i a0, sp, 32 /* a0 -> [(local1)] */ # 2b: 0981 + call0 system_rtc_mem_read # 2d: 050000 + l32i a0, sp, 0 /* [(local0)] */ # 30: 0801 + beqi a0, 2, .Lbr001 # 32: 26201b + mov a2, sp /* (local0) */ # 35: 2d01 + movi a3, 0 /* 0x00000000 */ # 37: 0c03 + movi a4, 32 /* 0x00000020 */ # 39: 2c04 + call0 memset # 3b: 01f5ffc0 + # 3f: 0000 + movi a2, 0 /* 0x00000000 */ # 41: 0c02 + movi a3, 3 /* 0x00000003 */ # 43: 0c33 + movi a4, 32 /* 0x00000020 */ # 45: 2c04 + s32i a3, sp, 0 /* 0x00000003 -> [(local0)] */ # 47: 3901 + mov a3, sp /* (local0) */ # 49: 3d01 + call0 system_rtc_mem_write # 4b: 01f2ffc0 + # 4f: 0000 +.Lbr001: movi a4, NMIIrqIsOn # 51: 41ebff + l8ui a4, a4, 0 /* [NMIIrqIsOn] */ # 54: 420400 + movi a12, 0x3feffe00 # 57: c1ebff + bnez a4, .Lbr003 # 5a: dce4 + call0 vPortEnterCritical # 5c: 01efffc0 + # 60: 0000 + movi a0, -32 /* 0xffffffe0 */ # 62: 6c00 +.Lbr002: memw # 64: c02000 + l32i a6, a12, 0x200 /* [0x3ff00000] */ # 67: 622c80 + and a6, a6, a0 # 6a: 006610 + memw # 6d: c02000 + s32i a6, a12, 0x200 /* a6 -> [0x3ff00000] */ # 70: 626c80 + memw # 73: c02000 + l32i a5, a12, 0x200 /* [0x3ff00000] */ # 76: 522c80 + bbsi a5, 0, .Lbr002 # 79: 07e5e7 +.Lbr003: movi a10, 0x60000a00 # 7c: a1e3ff + memw # 7f: c02000 + l32i a3, a10, 0x348 /* [0x60000d48] */ # 82: 322ad2 + movi a4, 3 /* 0x00000003 */ # 85: 0c34 + or a3, a3, a4 # 87: 403320 + memw # 8a: c02000 + s32i a3, a10, 0x348 /* a3 -> [0x60000d48] */ # 8d: 326ad2 + movi a2, 256 /* 0x00000100 */ # 90: 22a100 + memw # 93: c02000 + l32i a0, a12, 0x218 /* [0x3ff00018] */ # 96: 022c86 + or a0, a0, a2 # 99: 200020 + memw # 9c: c02000 + s32i a0, a12, 0x218 /* a0 -> [0x3ff00018] */ # 9f: 026c86 + movi a11, -4 /* 0xfffffffc */ # a2: 7ccb + memw # a4: c02000 + l32i a9, a10, 0x348 /* [0x60000d48] */ # a7: 922ad2 + and a9, a9, a11 # aa: b09910 + memw # ad: c02000 + s32i a9, a10, 0x348 /* a9 -> [0x60000d48] */ # b0: 926ad2 + movi a8, -257 /* 0xfffffeff */ # b3: 82aeff + memw # b6: c02000 + l32i a7, a12, 0x218 /* [0x3ff00018] */ # b9: 722c86 + and a7, a7, a8 # bc: 807710 + memw # bf: c02000 + s32i a7, a12, 0x218 /* a7 -> [0x3ff00018] */ # c2: 726c86 + call0 Cache_Read_Disable # c5: 01d5ffc0 + # c9: 0000 + movi a3, -25 /* 0xffffffe7 */ # cb: 6c73 + memw # cd: c02000 + l32i a2, a12, 0x224 /* [0x3ff00024] */ # d0: 222c89 + and a2, a2, a3 # d3: 302210 + memw # d6: c02000 + movi a0, 0x40000080 # d9: 01ccff + s32i a2, a12, 0x224 /* a2 -> [0x3ff00024] */ # dc: 226c89 + callx0 a0 /* 0x40000080 */ # df: c00000 + l32i a12, sp, 36 /* [(local2)] */ # e2: c891 + l32i a0, sp, 32 /* [(local1)] */ # e4: 0881 + addi sp, sp, 48 /* (top of frame) */ # e6: 12c130 + ret # e9: 0df0 + + .literal_position # ec: 000e0060 + +# Function @ .text+0xf0 + .balign 4 + .global system_rtc_mem_write + .type system_rtc_mem_write, @function +system_rtc_mem_write: + movi a5, 191 /* 0x000000bf */ # f0: 52a0bf + bltu a5, a2, .Lbr004 # f3: 273512 + movi a7, 3 /* 0x00000003 */ # f6: 0c37 + extui a6, a3, 0, 2 # f8: 306014 + bnez a6, .Lbr004 # fb: cca6 + slli a9, a2, 2 # fd: e09211 + movi a8, 768 /* 0x00000300 */ # 100: 82a300 + sub a8, a8, a9 # 103: 9088c0 + bge a8, a4, .Lbr005 # 106: 47a803 +.Lbr004: movi a2, 0 /* 0x00000000 */ # 109: 0c02 + ret /* 0x00000000 */ # 10b: 0df0 +.Lbr005: bnone a7, a4, .Lbr006 # 10d: 47070a + movi a5, 4 /* 0x00000004 */ # 110: 0c45 + srli a4, a4, 2 # 112: 404241 + addx4 a4, a4, a5 # 115: 5044a0 + extui a4, a4, 0, 16 # 118: 4040f4 +.Lbr006: srli a8, a4, 2 # 11b: 408241 + beqz a8, .Lbr008 # 11e: 9ce8 + movi a7, 0x60000e00 # 120: 71f3ff + movi a4, 0 /* 0x00000000 */ # 123: 0c04 +.Lbr007: add a6, a2, a4 # 125: 4a62 + addx4 a5, a4, a3 # 127: 3054a0 + addx4 a6, a6, a7 # 12a: 7066a0 + memw # 12d: c02000 + l32i a5, a5, 0 # 130: 5805 + memw # 132: c02000 + s32i a5, a6, 0x300 # 135: 5266c0 + addi a4, a4, 1 # 138: 1b44 + extui a4, a4, 0, 8 # 13a: 404074 + bltu a4, a8, .Lbr007 # 13d: 8734e4 +.Lbr008: movi a2, 1 /* 0x00000001 */ # 140: 0c12 + ret /* 0x00000001 */ # 142: 0df0 + + .literal_position # 144: 000e0060 + +# Function @ .text+0x148 + .balign 4 + .global system_rtc_mem_read + .type system_rtc_mem_read, @function +system_rtc_mem_read: + movi a5, 191 /* 0x000000bf */ # 148: 52a0bf + bltu a5, a2, .Lbr009 # 14b: 273512 + movi a7, 3 /* 0x00000003 */ # 14e: 0c37 + extui a6, a3, 0, 2 # 150: 306014 + bnez a6, .Lbr009 # 153: cca6 + slli a9, a2, 2 # 155: e09211 + movi a8, 768 /* 0x00000300 */ # 158: 82a300 + sub a8, a8, a9 # 15b: 9088c0 + bge a8, a4, .Lbr010 # 15e: 47a803 +.Lbr009: movi a2, 0 /* 0x00000000 */ # 161: 0c02 + ret /* 0x00000000 */ # 163: 0df0 +.Lbr010: bnone a7, a4, .Lbr011 # 165: 47070a + movi a5, 4 /* 0x00000004 */ # 168: 0c45 + srli a4, a4, 2 # 16a: 404241 + addx4 a4, a4, a5 # 16d: 5044a0 + extui a4, a4, 0, 16 # 170: 4040f4 +.Lbr011: srli a8, a4, 2 # 173: 408241 + beqz a8, .Lbr013 # 176: 9ce8 + movi a7, 0x60000e00 # 178: 71f3ff + movi a4, 0 /* 0x00000000 */ # 17b: 0c04 +.Lbr012: add a5, a2, a4 # 17d: 4a52 + addx4 a6, a4, a3 # 17f: 3064a0 + addx4 a5, a5, a7 # 182: 7055a0 + memw # 185: c02000 + l32i a5, a5, 0x300 # 188: 5225c0 + memw # 18b: c02000 + s32i a5, a6, 0 # 18e: 5906 + addi a4, a4, 1 # 190: 1b44 + extui a4, a4, 0, 8 # 192: 404074 + bltu a4, a8, .Lbr012 # 195: 8734e4 +.Lbr013: movi a2, 1 /* 0x00000001 */ # 198: 0c12 + ret /* 0x00000001 */ # 19a: 0df0 + + .section .data, "aw", @progbits + + .global dhcpc_flag + .type dhcpc_flag, @object +dhcpc_flag: .byte 0x01 + + .section .bss, "aw", @nobits + +.Ldata001: .byte 0x00 + .byte 0x00, 0x00, 0x00 +.Ldata002: .space 18 +.Label001: .space 8 +.Label002: .byte 0x00, 0x00 +.Ldata003: .byte 0x00 +.Ldata004: .byte 0x00 +.Ldata005: .byte 0x00 +.Ldata006: .space 103 +.Ldata007: .byte 0x00 + .byte 0x00 +.Ldata008: .space 15 +.Label003: .space 93 +.Ldata009: .byte 0x00 + .global cpu_overclock + .type cpu_overclock, @object +cpu_overclock: + .byte 0x00 + .byte 0x00, 0x00 + .global rst_if + .type rst_if, @object +rst_if: .space 32 + .global promiscuous_cb + .type promiscuous_cb, @object +promiscuous_cb: + .word 0x00000000 # 11c: 00000000 +.Ldata010: .space 10 + .space 6 +.Ldata011: .byte 0x00 + + .section .irom0.text, "ax", @progbits + + .literal_position # 0: 04000000 + # 4: 04000000 + # 8: 28010000 + # c: 00000000 + # 10: 1e000000 + # 14: 04000000 + # 18: 04000000 + # 1c: 1e000000 + # 20: 00000000 + # 24: 1e000000 + # 28: 9b000000 + # 2c: 00000000 + # 30: 00000000 + # 34: 00000000 + # 38: 00000000 + # 3c: 00000000 + # 40: 00000000 + # 44: 00000000 + +# Function @ .irom0.text+0x48 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 +.Lfunc001: addi sp, sp, -16 /* (local0) */ # 48: 12c1f0 + s32i a2, sp, 0 /* arg0 -> [(local0)] */ # 4b: 2901 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 4d: 0911 + call0 pm_is_open # 4f: 01f7ffc0 + # 53: 0000 + beqz a2, .Lbr015 # 55: bc02 + movi a3, .Ldata002 # 57: 31eaff + addi a3, a3, -4 /* .Ldata001 */ # 5a: 32c3fc + l8ui a3, a3, 0 /* [.Ldata001] */ # 5d: 320300 + bnez a3, .Lbr014 # 60: dc43 + movi a2, .Ldata002 # 62: 21e8ff + movi a3, .Lfunc002 # 65: 31e8ff + movi a4, 0 /* 0x00000000 */ # 68: 0c04 + call0 os_timer_setfn # 6a: 01f1ffc0 + # 6e: 0000 + movi a5, .Ldata001 # 70: 51e7ff + movi a4, 1 /* 0x00000001 */ # 73: 0c14 + s8i a4, a5, 0 /* 0x01 -> [.Ldata001] */ # 75: 424500 +.Lbr014: call0 pm_is_waked # 78: 01efffc0 + # 7c: 0000 + movi a5, .Label002 # 7e: 51e4ff + l8ui a0, a5, 2 /* [.Ldata003] */ # 81: 020502 + beqz a2, .Lbr019 # 84: 9c42 + beqi a0, 1, .Lbr019 # 86: 261012 +.Lbr015: movi a2, 0 /* 0x00000000 */ # 89: 0c02 + j .Lbr018 # 8b: 860100 +.Lbr016: l32i a6, sp, 0 /* [(local0)] */ # 8e: 6801 + s8i a6, a0, 132 # 90: 624084 +.Lbr017: movi a2, -1 /* 0xffffffff */ # 93: 7cf2 +.Lbr018: l32i a0, sp, 4 /* [(local1)] */ # 95: 0811 + addi sp, sp, 16 /* (top of frame) */ # 97: 12c110 + ret # 9a: 0df0 +.Lbr019: bnez a0, .Lbr020 # 9c: ec40 + movi a2, 1 /* 0x00000001 */ # 9e: 0c12 + call0 pm_post # a0: 01e6ffc0 + # a4: 0000 + movi a2, .Ldata002 # a6: 21dbff + call0 os_timer_disarm # a9: 01e4ffc0 + # ad: 0000 + movi a2, .Ldata002 # af: 21daff + movi a3, 10 /* 0x0000000a */ # b2: 0ca3 + movi a4, 0 /* 0x00000000 */ # b4: 0c04 + call0 os_timer_arm # b6: 01e2ffc0 + # ba: 0000 + movi a5, .Label002 # bc: 51d8ff + movi a7, 1 /* 0x00000001 */ # bf: 0c17 + s8i a7, a5, 2 /* 0x01 -> [.Ldata003] */ # c1: 724502 +.Lbr020: l8ui a0, a5, 3 /* [.Ldata004] */ # c4: 020503 + movi a8, 10 /* 0x0000000a */ # c7: 0ca8 + addi a0, a0, 1 /* [.Ldata004]+0x1 */ # c9: 1b00 + extui a0, a0, 0, 8 # cb: 000074 + s8i a0, a5, 3 /* a0 -> [.Ldata004] */ # ce: 024503 + bgeu a8, a0, .Lbr021 # d1: 07b810 + movi a2, .Lstr001 # d4: 21d3ff + call0 printf # d7: 01dbffc0 + # db: 0000 + movi a5, .Label002 # dd: 51d1ff + movi a0, 10 /* 0x0000000a */ # e0: 0ca0 + s8i a0, a5, 3 /* 0x0a -> [.Ldata004] */ # e2: 024503 +.Lbr021: l8ui a2, a5, 4 /* [.Ldata005] */ # e5: 220504 + movi a3, .Label003 # e8: 31d0ff + add a2, a2, a0 # eb: 0a22 + add a0, a2, a3 # ed: 3a02 + addi a2, a2, -1 # ef: 0b22 + blti a2, 10, .Lbr016 # f1: a69299 + l32i a3, sp, 0 /* [(local0)] */ # f4: 3801 + s8i a3, a0, 122 # f6: 32407a + j .Lbr017 # f9: 86e5ff + + .literal_position # fc: 16000000 + # 100: 20010000 + # 104: 8c000000 + # 108: 23000000 + # 10c: 04000000 + # 110: 00000000 + # 114: 00000000 + # 118: 00000000 + # 11c: 00000000 + # 120: 00000000 + # 124: 00000000 + +# Function @ .irom0.text+0x128 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word @ -0x8 +# (local3): word @ -0x4 + .balign 4 +.Lfunc002: addi sp, sp, -16 /* (local0) */ # 128: 12c1f0 + s32i a14, sp, 12 /* a14 -> [(local3)] */ # 12b: e931 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 12d: 0901 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 12f: d921 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 131: c911 + movi a12, .Label001 # 133: c1f2ff + movi a13, 0 /* 0x00000000 */ # 136: 0c0d + l8ui a0, a12, 11 /* [.Ldata004] */ # 138: 020c0b + s8i a13, a12, 10 /* 0x00 -> [.Ldata003] */ # 13b: d24c0a + beqz a0, .Lbr034 # 13e: 16f007 + movi a14, .Ldata010 # 141: e1efff +.Lbr022: call0 pm_is_waked # 144: 01f3ffc0 + # 148: 0000 + bnez a2, .Lbr023 # 14a: cc72 + call0 pm_is_open # 14c: 01f2ffc0 + # 150: 0000 + bnez a2, .Lbr033 # 152: 568206 +.Lbr023: l8ui a4, a12, 12 /* [.Ldata005] */ # 155: 420c0c + add a0, a4, a14 # 158: ea04 + l8ui a0, a0, 0 # 15a: 020000 + beqi a0, 1, .Lbr030 # 15d: 26104e + beqi a0, 2, .Lbr029 # 160: 262045 + beqi a0, 3, .Lbr028 # 163: 263039 + beqi a0, 4, .Lbr027 # 166: 264030 + beqi a0, 5, .Lbr026 # 169: 265024 + bnei a0, 6, .Lbr025 # 16c: 666008 + movi a2, .Ldata008 # 16f: 21e5ff + call0 wifi_softap_set_config # 172: 050000 +.Lbr024: l8ui a4, a12, 12 /* [.Ldata005] */ # 175: 420c0c +.Lbr025: l8ui a0, a12, 11 /* [.Ldata004] */ # 178: 020c0b + addi a4, a4, 1 /* [.Ldata005]+0x1 */ # 17b: 1b44 + extui a4, a4, 0, 8 # 17d: 404074 + addi a0, a0, -1 /* [.Ldata004]-0x1 */ # 180: 0b00 + extui a0, a0, 0, 8 # 182: 000074 + s8i a0, a12, 11 /* a0 -> [.Ldata004] */ # 185: 024c0b + bnei a4, 10, .Lbr031 # 188: 669429 + s8i a13, a12, 12 /* 0x00 -> [.Ldata005] */ # 18b: d24c0c + j .Lbr032 # 18e: 860900 +.Lbr026: l8ui a2, a12, 116 /* [.Ldata007] */ # 191: 220c74 + call0 wifi_set_opmode # 194: 050000 + j .Lbr024 # 197: 86f6ff +.Lbr027: call0 system_restart # 19a: 050000 + j .Lbr024 # 19d: 06f5ff +.Lbr028: movi a2, .Ldata006 # 1a0: 21daff + call0 wifi_station_set_config # 1a3: 050000 + j .Lbr024 # 1a6: c6f2ff +.Lbr029: call0 wifi_station_connect # 1a9: 050000 + j .Lbr024 # 1ac: 46f1ff +.Lbr030: call0 wifi_station_disconnect # 1af: 050000 + j .Lbr024 # 1b2: c6efff +.Lbr031: s8i a4, a12, 12 /* a4 -> [.Ldata005] */ # 1b5: 424c0c +.Lbr032: bnez a0, .Lbr022 # 1b8: 5680f8 + j .Lbr034 # 1bb: 860000 +.Lbr033: l8ui a0, a12, 11 /* [.Ldata004] */ # 1be: 020c0b +.Lbr034: movi a14, .Ldata002 # 1c1: e1d2ff + bnez a0, .Lbr036 # 1c4: dc60 + mov a2, a14 /* .Ldata002 */ # 1c6: 2d0e + call0 os_timer_disarm # 1c8: 01d4ffc0 + # 1cc: 0000 +.Lbr035: l32i a0, sp, 0 /* [(local0)] */ # 1ce: 0801 + s8i a13, a12, 10 /* a13 -> [.Ldata003] */ # 1d0: d24c0a + l32i a14, sp, 12 /* [(local3)] */ # 1d3: e831 + l32i a12, sp, 4 /* [(local1)] */ # 1d5: c811 + l32i a13, sp, 8 /* [(local2)] */ # 1d7: d821 + addi sp, sp, 16 /* (top of frame) */ # 1d9: 12c110 + ret # 1dc: 0df0 +.Lbr036: movi a2, 1 /* 0x00000001 */ # 1de: 0c12 + call0 pm_post # 1e0: 01cfffc0 + # 1e4: 0000 + mov a2, a14 /* .Ldata002 */ # 1e6: 2d0e + call0 os_timer_disarm # 1e8: 01ceffc0 + # 1ec: 0000 + mov a2, a14 /* .Ldata002 */ # 1ee: 2d0e + movi a3, 10 /* 0x0000000a */ # 1f0: 0ca3 + movi a4, 0 /* 0x00000000 */ # 1f2: 0c04 + call0 os_timer_arm # 1f4: 01ccffc0 + # 1f8: 0000 + movi a13, 1 /* 0x00000001 */ # 1fa: 0c1d + j .Lbr035 # 1fc: 86f3ff + + .literal_position # 200: 00000000 + +# Function @ .irom0.text+0x204 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global system_pp_recycle_rx_pkt + .type system_pp_recycle_rx_pkt, @function +system_pp_recycle_rx_pkt: + addi sp, sp, -16 /* (local0) */ # 204: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 207: 0901 + call0 ppRecycleRxPkt # 209: 01fdffc0 + # 20d: 0000 + l32i a0, sp, 0 /* [(local0)] */ # 20f: 0801 + addi sp, sp, 16 /* (top of frame) */ # 211: 12c110 + ret # 214: 0df0 + + .literal_position # 218: 00000000 + +# Function @ .irom0.text+0x21c +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global system_adc_read + .type system_adc_read, @function +system_adc_read: + movi a2, 0 /* 0x00000000 */ # 21c: 0c02 + addi sp, sp, -16 /* (local0) */ # 21e: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 221: 0901 + call0 test_tout # 223: 01fdffc0 + # 227: 0000 + extui a2, a2, 0, 16 # 229: 2020f4 + l32i a0, sp, 0 /* [(local0)] */ # 22c: 0801 + addi sp, sp, 16 /* (top of frame) */ # 22e: 12c110 + ret # 231: 0df0 + + .literal_position # 234: 00060060 + # 238: 00000000 + # 23c: 00000000 + # 240: 00000000 + # 244: 00000000 + # 248: 00000000 + # 24c: 00000000 + # 250: 00000000 + +# Function @ .irom0.text+0x254 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global system_restart + .type system_restart, @function +system_restart: + addi sp, sp, -16 /* (local0) */ # 254: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 257: 0901 + call0 wifi_get_opmode # 259: 050000 + beqi a2, 2, .Lbr037 # 25c: 262205 + call0 wifi_station_stop # 25f: 01f7ffc0 + # 263: 0000 +.Lbr037: call0 wifi_get_opmode # 265: 01f6ffc0 + # 269: 0000 + beqi a2, 1, .Lbr038 # 26b: 261205 + call0 wifi_softap_stop # 26e: 01f5ffc0 + # 272: 0000 +.Lbr038: movi a2, 6 /* 0x00000006 */ # 274: 0c62 + call0 vTaskDelay # 276: 01f4ffc0 + # 27a: 0000 + movi a4, 128 /* 0x00000080 */ # 27c: 42a080 + movi a3, 0x60000600 # 27f: 31edff + memw # 282: c02000 + l32i a2, a3, 0x204 /* [0x60000804] */ # 285: 222381 + or a2, a2, a4 # 288: 402220 + memw # 28b: c02000 + s32i a2, a3, 0x204 /* a2 -> [0x60000804] */ # 28e: 226381 + movi a2, system_restart_in_nmi # 291: 21e9ff + call0 wDev_MacTim1SetFunc # 294: 01eeffc0 + # 298: 0000 + movi a2, 3 /* 0x00000003 */ # 29a: 0c32 + call0 wDev_MacTim1Arm # 29c: 01edffc0 + # 2a0: 0000 + l32i a0, sp, 0 /* [(local0)] */ # 2a2: 0801 + addi sp, sp, 16 /* (top of frame) */ # 2a4: 12c110 + ret # 2a7: 0df0 + + .literal_position # 2ac: 00000000 + # 2b0: 00000000 + # 2b4: 00000000 + # 2b8: 00000000 + # 2bc: 00000000 + # 2c0: 00000000 + +# Function @ .irom0.text+0x2c4 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global system_restore + .type system_restore, @function +system_restore: + movi a2, 880 /* 0x00000370 */ # 2c4: 22a370 + addi sp, sp, -16 /* (local0) */ # 2c7: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 2ca: c911 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 2cc: 0901 + call0 malloc # 2ce: 01f8ffc0 + # 2d2: 0000 + mov a12, a2 # 2d4: cd02 + movi a3, 255 /* 0x000000ff */ # 2d6: 32a0ff + movi a4, 880 /* 0x00000370 */ # 2d9: 42a370 + call0 memset # 2dc: 01f6ffc0 + # 2e0: 0000 + mov a2, a12 # 2e2: 2d0c + movi a3, g_ic+0x1d8 # 2e4: 31f2ff + movi a4, 8 /* 0x00000008 */ # 2e7: 0c84 + call0 memcpy # 2e9: 01f3ffc0 + # 2ed: 0000 + mov a2, a12 # 2ef: 2d0c + call0 wifi_param_save_protect # 2f1: 01f2ffc0 + # 2f5: 0000 + mov a2, a12 # 2f7: 2d0c + call0 free # 2f9: 01f1ffc0 + # 2fd: 0000 + l32i a12, sp, 4 /* [(local1)] */ # 2ff: c811 + l32i a0, sp, 0 /* [(local0)] */ # 301: 0801 + addi sp, sp, 16 /* (top of frame) */ # 303: 12c110 + ret # 306: 0df0 + + .literal_position # 308: 00000000 + +# Function @ .irom0.text+0x30c + .balign 4 + .global system_get_boot_version + .type system_get_boot_version, @function +system_get_boot_version: + movi a2, g_ic+0x159 # 30c: 21ffff + l8ui a2, a2, 128 /* [g_ic+0x1d9] */ # 30f: 220280 + extui a2, a2, 0, 5 # 312: 202044 + ret # 315: 0df0 + + .literal_position # 318: 28000000 + # 31c: 00000000 + +# Function @ .irom0.text+0x320 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 +.Lfunc003: addi sp, sp, -16 /* (local0) */ # 320: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 323: 0901 + call0 system_get_boot_version # 325: 050000 + bltui a2, 3, .Lbr040 # 328: b6320d + movi a0, 31 /* 0x0000001f */ # 32b: 1cf0 + beq a2, a0, .Lbr040 # 32d: 071208 + movi a2, 1 /* 0x00000001 */ # 330: 0c12 +.Lbr039: l32i a0, sp, 0 /* [(local0)] */ # 332: 0801 + addi sp, sp, 16 /* (top of frame) */ # 334: 12c110 + ret # 337: 0df0 +.Lbr040: movi a2, .Lstr002 # 339: 21f7ff + call0 printf # 33c: 01f8ffc0 + # 340: 0000 + movi a2, 0 /* 0x00000000 */ # 342: 0c02 + j .Lbr039 # 344: 86faff + + .literal_position # 348: 00000000 + +# Function @ .irom0.text+0x34c +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global system_get_test_result + .type system_get_test_result, @function +system_get_test_result: + addi sp, sp, -16 /* (local0) */ # 34c: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 34f: 0901 + call0 .Lfunc003 # 351: c5fcff + movi a0, -1 /* 0xffffffff */ # 354: 7cf0 + movi a4, g_ic+0x159 # 356: 41fcff + l32i a3, sp, 0 /* [(local0)] */ # 359: 3801 + l8ui a4, a4, 128 /* [g_ic+0x1d9] */ # 35b: 420480 + addi sp, sp, 16 /* (top of frame) */ # 35e: 12c110 + extui a4, a4, 5, 1 # 361: 404504 + movnez a0, a4, a2 # 364: 200493 + mov a2, a0 # 367: 2d00 + mov a0, a3 /* [(local0)] */ # 369: 0d03 + ret # 36b: 0df0 + + .literal_position # 370: 00000000 + # 374: 00100000 + # 378: 00000000 + +# Function @ .irom0.text+0x37c +# Local variables/stack: +# (local0): byte[5] @ -0xd +# (local1): hword[2] @ -0x8 +# (local2): word @ -0x4 + .balign 4 + .global system_get_userbin_addr + .type system_get_userbin_addr, @function +system_get_userbin_addr: + addi sp, sp, -16 /* (FP)-0x10 */ # 37c: 12c1f0 + s32i a0, sp, 12 /* a0 -> [(local2)] */ # 37f: 0931 + movi a0, g_ic+0x159 # 381: 01fbff + l8ui a3, a0, 128 /* [g_ic+0x1d9] */ # 384: 320080 + l8ui a4, a0, 127 /* [g_ic+0x1d8] */ # 387: 42007f + srli a3, a3, 7 # 38a: 303741 + bnez a3, .Lbr041 # 38d: dc93 + bbci a4, 2, .Lbr046 # 38f: 276454 + l8ui a2, a0, 132 /* [g_ic+0x1dd] */ # 392: 220084 + l8ui a4, a0, 134 /* [g_ic+0x1df] */ # 395: 420086 + l8ui a3, a0, 133 /* [g_ic+0x1de] */ # 398: 320085 + slli a4, a4, 16 # 39b: 004411 + slli a3, a3, 8 # 39e: 803311 + or a3, a3, a4 # 3a1: 403320 + or a2, a2, a3 # 3a4: 302220 + j .Lbr045 # 3a7: 460d00 +.Lbr041: call0 system_upgrade_userbin_check # 3aa: 050000 + bnez a2, .Lbr042 # 3ad: cc42 + movi a2, 0x00001000 # 3af: 21f1ff + j .Lbr045 # 3b2: 860a00 +.Lbr042: movi a2, 0 /* 0x00000000 */ # 3b5: 0c02 + mov a3, sp /* (FP)-0x10 */ # 3b7: 3d01 + movi a4, 8 /* 0x00000008 */ # 3b9: 0c84 + call0 spi_flash_read # 3bb: 01efffc0 + # 3bf: 0000 + l8ui a0, sp, 3 /* [(local0)] */ # 3c1: 020103 + movi a2, 65 /* 0x00000041 */ # 3c4: 4c12 + srli a0, a0, 4 # 3c6: 000441 + blti a0, 2, .Lbr043 # 3c9: a62008 + bgei a0, 5, .Lbr043 # 3cc: e65005 + movi a0, 129 /* 0x00000081 */ # 3cf: 02a081 + j .Lbr044 # 3d2: c60100 +.Lbr043: addi a3, a0, -1 # 3d5: 0b30 + l16ui a0, sp, 8 /* [(local1)] */ # 3d7: 021104 + moveqz a0, a2, a3 # 3da: 300283 +.Lbr044: slli a2, a0, 12 # 3dd: 402011 +.Lbr045: l32i a0, sp, 12 /* [(local2)] */ # 3e0: 0831 + addi sp, sp, 16 /* (top of frame) */ # 3e2: 12c110 + ret # 3e5: 0df0 +.Lbr046: l8ui a2, a0, 129 /* [g_ic+0x1da] */ # 3e7: 220081 + l8ui a4, a0, 131 /* [g_ic+0x1dc] */ # 3ea: 420083 + l8ui a3, a0, 130 /* [g_ic+0x1db] */ # 3ed: 320082 + slli a4, a4, 16 # 3f0: 004411 + slli a3, a3, 8 # 3f3: 803311 + or a3, a3, a4 # 3f6: 403320 + or a2, a2, a3 # 3f9: 302220 + j .Lbr045 # 3fc: 06f8ff + + .literal_position # 400: 00000000 + +# Function @ .irom0.text+0x404 + .balign 4 + .global system_get_boot_mode + .type system_get_boot_mode, @function +system_get_boot_mode: + movi a5, g_ic+0x159 # 404: 51ffff + l8ui a5, a5, 128 /* [g_ic+0x1d9] */ # 407: 520580 + movi a6, 31 /* 0x0000001f */ # 40a: 1cf6 + extui a2, a5, 0, 5 # 40c: 502044 + blti a2, 3, .Lbr047 # 40f: a63207 + beq a2, a6, .Lbr047 # 412: 671204 + srli a2, a5, 7 # 415: 502741 + ret # 418: 0df0 +.Lbr047: movi a2, 1 /* 0x00000001 */ # 41a: 0c12 + ret /* 0x00000001 */ # 41c: 0df0 + + .literal_position # 420: 44000000 + # 424: 00000000 + # 428: 64000000 + # 42c: 9c000000 + # 430: 7c000000 + # 434: 00000000 + # 438: 00000000 + # 43c: 00000000 + # 440: 00000000 + # 444: 00000000 + # 448: 00000000 + # 44c: 00000000 + +# Function @ .irom0.text+0x450 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 + .global system_restart_enhance + .type system_restart_enhance, @function +system_restart_enhance: + addi sp, sp, -16 /* (local0) */ # 450: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 453: 0901 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 455: c911 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 457: d921 + mov a12, a2 /* arg0 */ # 459: cd02 + mov a13, a3 /* arg1 */ # 45b: dd03 + call0 .Lfunc003 # 45d: 05ecff + beqz a2, .Lbr050 # 460: 169207 + bnez a12, .Lbr048 # 463: 569c05 + call0 system_get_userbin_addr # 466: 050000 + mov a12, a2 # 469: cd02 + mov a3, a13 /* arg1 */ # 46b: 3d0d + movi a2, .Lstr003 # 46d: 21ecff + call0 printf # 470: 01f2ffc0 + # 474: 0000 + movi a4, 251 /* 0x000000fb */ # 476: 42a0fb + srli a6, a12, 8 # 479: c06841 + extui a7, a12, 16, 16 # 47c: c070f5 + srli a8, a13, 8 # 47f: d08841 + movi a3, g_ic+0x159 # 482: 31e8ff + extui a9, a13, 16, 16 # 485: d090f5 + s8i a13, a3, 132 /* arg1 -> [g_ic+0x1dd] */ # 488: d24384 + s8i a9, a3, 134 /* a9 -> [g_ic+0x1df] */ # 48b: 924386 + s8i a8, a3, 133 /* a8 -> [g_ic+0x1de] */ # 48e: 824385 + s8i a12, a3, 129 /* a12 -> [g_ic+0x1da] */ # 491: c24381 + s8i a7, a3, 131 /* a7 -> [g_ic+0x1dc] */ # 494: 724383 + s8i a6, a3, 130 /* a6 -> [g_ic+0x1db] */ # 497: 624382 + l8ui a2, a3, 127 /* [g_ic+0x1d8] */ # 49a: 22037f + l8ui a5, a3, 128 /* [g_ic+0x1d9] */ # 49d: 520380 + and a2, a2, a4 # 4a0: 402210 + extui a5, a5, 0, 7 # 4a3: 505064 + movi a4, 4 /* 0x00000004 */ # 4a6: 0c44 + s8i a5, a3, 128 /* a5 -> [g_ic+0x1d9] */ # 4a8: 524380 + or a2, a2, a4 # 4ab: 402220 + s8i a2, a3, 127 /* a2 -> [g_ic+0x1d8] */ # 4ae: 22437f + addi a2, a3, 127 /* g_ic+0x1d8 */ # 4b1: 22c37f + call0 wifi_param_save_protect # 4b4: 01e2ffc0 + # 4b8: 0000 + call0 system_restart # 4ba: 050000 + j .Lbr053 # 4bd: 861700 +.Lbr048: bnei a12, 1, .Lbr049 # 4c0: 661c10 + call0 system_get_test_result # 4c3: 050000 + bnez a2, .Lbr052 # 4c6: ec02 + movi a2, .Lstr004 # 4c8: 21d8ff + call0 printf # 4cb: 01ddffc0 + # 4cf: 0000 + j .Lbr050 # 4d1: 060200 +.Lbr049: movi a2, .Lstr006 # 4d4: 21d6ff + call0 printf # 4d7: 01dbffc0 + # 4db: 0000 +.Lbr050: movi a2, 0 /* 0x00000000 */ # 4dd: 0c02 +.Lbr051: l32i a12, sp, 4 /* [(local1)] */ # 4df: c811 + l32i a13, sp, 8 /* [(local2)] */ # 4e1: d821 + l32i a0, sp, 0 /* [(local0)] */ # 4e3: 0801 + addi sp, sp, 16 /* (top of frame) */ # 4e5: 12c110 + ret # 4e8: 0df0 +.Lbr052: movi a2, .Lstr005 # 4ea: 21d1ff + mov a3, a13 /* arg1 */ # 4ed: 3d0d + call0 printf # 4ef: 01d6ffc0 + # 4f3: 0000 + movi a12, 191 /* 0x000000bf */ # 4f5: c2a0bf + extui a2, a13, 16, 16 # 4f8: d020f5 + movi a11, g_ic+0x159 # 4fb: b1ceff + srli a0, a13, 8 # 4fe: d00841 + s8i a13, a11, 129 /* arg1 -> [g_ic+0x1da] */ # 501: d24b81 + s8i a0, a11, 130 /* a0 -> [g_ic+0x1db] */ # 504: 024b82 + s8i a2, a11, 131 /* a2 -> [g_ic+0x1dc] */ # 507: 224b83 + l8ui a10, a11, 128 /* [g_ic+0x1d9] */ # 50a: a20b80 + addi a2, a11, 127 /* g_ic+0x1d8 */ # 50d: 22cb7f + and a10, a10, a12 # 510: c0aa10 + s8i a10, a11, 128 /* a10 -> [g_ic+0x1d9] */ # 513: a24b80 + call0 wifi_param_save_protect # 516: 01cdffc0 + # 51a: 0000 + call0 system_restart # 51c: 050000 +.Lbr053: movi a2, 1 /* 0x00000001 */ # 51f: 0c12 + j .Lbr051 # 521: 86eeff + + .literal_position # 524: 00000000 + +# Function @ .irom0.text+0x528 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global system_upgrade_userbin_set + .type system_upgrade_userbin_set, @function +system_upgrade_userbin_set: + addi sp, sp, -16 /* (local0) */ # 528: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 52b: c911 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 52d: 0901 + mov a12, a2 /* arg0 */ # 52f: cd02 + call0 system_get_boot_version # 531: 050000 + bltui a12, 2, .Lbr054 # 534: b62c04 + movi a2, 0 /* 0x00000000 */ # 537: 0c02 + j .Lbr058 # 539: c60900 +.Lbr054: movi a5, g_ic+0x158 # 53c: 51faff + beqi a2, 2, .Lbr055 # 53f: 262204 + movi a0, 31 /* 0x0000001f */ # 542: 1cf0 + bne a2, a0, .Lbr056 # 544: 079208 +.Lbr055: extui a4, a12, 0, 4 # 547: c04034 + movi a0, 240 /* 0x000000f0 */ # 54a: 02a0f0 + j .Lbr057 # 54d: 460100 +.Lbr056: extui a4, a12, 0, 2 # 550: c04014 + movi a0, 252 /* 0x000000fc */ # 553: 02a0fc +.Lbr057: l8ui a3, a5, 128 /* [g_ic+0x1d8] */ # 556: 320580 + movi a2, 1 /* 0x00000001 */ # 559: 0c12 + and a3, a3, a0 # 55b: 003310 + or a3, a3, a4 # 55e: 403320 + s8i a3, a5, 128 /* a3 -> [g_ic+0x1d8] */ # 561: 324580 +.Lbr058: l32i a12, sp, 4 /* [(local1)] */ # 564: c811 + l32i a0, sp, 0 /* [(local0)] */ # 566: 0801 + addi sp, sp, 16 /* (top of frame) */ # 568: 12c110 + ret # 56b: 0df0 + + .literal_position # 570: 00000000 + +# Function @ .irom0.text+0x574 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global system_upgrade_userbin_check + .type system_upgrade_userbin_check, @function +system_upgrade_userbin_check: + addi sp, sp, -16 /* (local0) */ # 574: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 577: 0901 + call0 system_get_boot_version # 579: 050000 + movi a0, g_ic+0x158 # 57c: 01fdff + movi a3, 31 /* 0x0000001f */ # 57f: 1cf3 + beq a2, a3, .Lbr062 # 581: 37121d + beqi a2, 2, .Lbr062 # 584: 26221a + l8ui a0, a0, 128 /* [g_ic+0x1d8] */ # 587: 020080 + extui a4, a0, 0, 2 # 58a: 004014 + bnei a4, 1, .Lbr061 # 58d: 66140b + bbsi a0, 2, .Lbr063 # 590: 27e017 +.Lbr059: movi a2, 0 /* 0x00000000 */ # 593: 0c02 +.Lbr060: l32i a0, sp, 0 /* [(local0)] */ # 595: 0801 + addi sp, sp, 16 /* (top of frame) */ # 597: 12c110 + ret # 59a: 0df0 +.Lbr061: bbsi a0, 2, .Lbr059 # 59c: 27e0f3 + j .Lbr063 # 59f: 060200 +.Lbr062: l8ui a5, a0, 128 /* [g_ic+0x1d8] */ # 5a2: 520080 + extui a5, a5, 0, 4 # 5a5: 505034 + bnei a5, 1, .Lbr059 # 5a8: 6615e7 +.Lbr063: movi a2, 1 /* 0x00000001 */ # 5ab: 0c12 + j .Lbr060 # 5ad: 06f9ff + + .literal_position # 5b0: 00000000 + +# Function @ .irom0.text+0x5b4 + .balign 4 + .global system_upgrade_flag_set + .type system_upgrade_flag_set, @function +system_upgrade_flag_set: + bgeui a2, 3, .Lbr064 # 5b4: f6320a + movi a3, .Ldata001 # 5b7: 31feff + movi a4, 1 /* 0x00000001 */ # 5ba: 0c14 + s8i a2, a3, 248 /* arg0 -> [.Ldata009] */ # 5bc: 2243f8 + j .Lbr065 # 5bf: 460000 +.Lbr064: movi a4, 0 /* 0x00000000 */ # 5c2: 0c04 +.Lbr065: mov a2, a4 # 5c4: 2d04 + ret # 5c6: 0df0 + + .literal_position # 5c8: 00000000 + +# Function @ .irom0.text+0x5cc + .balign 4 + .global system_upgrade_flag_check + .type system_upgrade_flag_check, @function +system_upgrade_flag_check: + movi a2, .Ldata001 # 5cc: 21ffff + l8ui a2, a2, 248 /* [.Ldata009] */ # 5cf: 2202f8 + ret /* [.Ldata009] */ # 5d2: 0df0 + + .literal_position # 5d4: 00000000 + # 5d8: c4000000 + # 5dc: 00000000 + # 5e0: b4000000 + # 5e4: 00000000 + # 5e8: c4000000 + # 5ec: c8000000 + # 5f0: c8000000 + # 5f4: 00000000 + # 5f8: 00000000 + # 5fc: 00000000 + # 600: 00000000 + # 604: 00000000 + +# Function @ .irom0.text+0x608 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 + .global system_upgrade_reboot + .type system_upgrade_reboot, @function +system_upgrade_reboot: + addi sp, sp, -16 /* (local0) */ # 608: 12c1f0 + s32i a0, sp, 8 /* a0 -> [(local2)] */ # 60b: 0921 + call0 system_get_boot_version # 60d: 050000 + movi a0, .Ldata001 # 610: 01f1ff + s32i a2, sp, 4 /* a2 -> [(local1)] */ # 613: 2911 + l8ui a0, a0, 248 /* [.Ldata009] */ # 615: 0200f8 + movi a2, 0 /* 0x00000000 */ # 618: 0c02 + beqi a0, 2, .Lbr069 # 61a: 262038 + j .Lbr068 # 61d: 860b00 +.Lbr066: l8ui a2, a0, 128 /* [g_ic+0x1d8] */ # 620: 220080 + s32i a0, sp, 0 /* g_ic+0x158 -> [(local0)] */ # 623: 0901 + extui a2, a2, 0, 4 # 625: 202034 + addi a2, a2, -1 # 628: 0b22 + bnez a2, .Lbr071 # 62a: 569209 + movi a2, .Label004 # 62d: 21eaff + call0 printf # 630: 01f1ffc0 + # 634: 0000 + l32i a0, sp, 0 /* [(local0)] */ # 636: 0801 + l8ui a2, a0, 128 /* [[(local0)]+0x80] */ # 638: 220080 + movi a3, 240 /* 0x000000f0 */ # 63b: 32a0f0 + and a2, a2, a3 # 63e: 302210 +.Lbr067: s8i a2, a0, 128 /* a2 -> [[(local0)]+0x80] */ # 641: 224080 + movi a2, g_ic+0x1d8 # 644: 21e6ff + call0 wifi_param_save_protect # 647: 050000 + call0 system_restart # 64a: 050000 + movi a2, 1 /* 0x00000001 */ # 64d: 0c12 +.Lbr068: l32i a0, sp, 8 /* [(local2)] */ # 64f: 0821 + addi sp, sp, 16 /* (top of frame) */ # 651: 12c110 + ret # 654: 0df0 +.Lbr069: movi a2, .Lstr007 # 656: 21e2ff + call0 printf # 659: 01e7ffc0 + # 65d: 0000 + l32i a4, sp, 4 /* [(local1)] */ # 65f: 4811 + movi a0, g_ic+0x158 # 661: 01e0ff + beqi a4, 2, .Lbr066 # 664: 2624b8 + movi a6, 31 /* 0x0000001f */ # 667: 1cf6 + beq a4, a6, .Lbr066 # 669: 6714b3 + s32i a0, sp, 0 /* g_ic+0x158 -> [(local0)] */ # 66c: 0901 + movi a10, 128 /* 0x00000080 */ # 66e: a2a080 + movi a8, 4 /* 0x00000004 */ # 671: 0c48 + movi a11, 251 /* 0x000000fb */ # 673: b2a0fb + l8ui a9, a0, 129 /* [g_ic+0x1d9] */ # 676: 920081 + l8ui a7, a0, 128 /* [g_ic+0x1d8] */ # 679: 720080 + extui a9, a9, 0, 7 # 67c: 909064 + and a7, a7, a11 # 67f: b07710 + or a7, a7, a8 # 682: 807720 + or a9, a9, a10 # 685: a09920 + s8i a9, a0, 129 /* a9 -> [g_ic+0x1d9] */ # 688: 924081 + s8i a7, a0, 128 /* a7 -> [g_ic+0x1d8] */ # 68b: 724080 + extui a7, a7, 0, 2 # 68e: 707014 + bnei a7, 1, .Lbr070 # 691: 661716 + movi a2, .Label004 # 694: 21d5ff + call0 printf # 697: 01d9ffc0 + # 69b: 0000 + l32i a0, sp, 0 /* [(local0)] */ # 69d: 0801 + l8ui a2, a0, 128 /* [[(local0)]+0x80] */ # 69f: 220080 + movi a3, 252 /* 0x000000fc */ # 6a2: 32a0fc + and a2, a2, a3 # 6a5: 302210 + j .Lbr067 # 6a8: 46e5ff +.Lbr070: movi a2, .Label005 # 6ab: 21d0ff + call0 printf # 6ae: 01d4ffc0 + # 6b2: 0000 + l32i a0, sp, 0 /* [(local0)] */ # 6b4: 0801 + l8ui a2, a0, 128 /* [[(local0)]+0x80] */ # 6b6: 220080 + movi a3, 252 /* 0x000000fc */ # 6b9: 32a0fc + and a2, a2, a3 # 6bc: 302210 + movi a3, 1 /* 0x00000001 */ # 6bf: 0c13 + or a2, a2, a3 # 6c1: 302220 + j .Lbr067 # 6c4: 46deff +.Lbr071: movi a2, .Label005 # 6c7: 21caff + call0 printf # 6ca: 01ceffc0 + # 6ce: 0000 + l32i a0, sp, 0 /* [(local0)] */ # 6d0: 0801 + l8ui a2, a0, 128 /* [[(local0)]+0x80] */ # 6d2: 220080 + movi a3, 240 /* 0x000000f0 */ # 6d5: 32a0f0 + and a2, a2, a3 # 6d8: 302210 + movi a3, 1 /* 0x00000001 */ # 6db: 0c13 + or a2, a2, a3 # 6dd: 302220 + j .Lbr067 # 6e0: 46d7ff + + .literal_position # 6e4: 40420f00 + # 6e8: cc000000 + # 6ec: 0000ff00 + # 6f0: 00feff5f + # 6f4: 000e0060 + # 6f8: 00001000 + # 6fc: 00060060 + # 700: ffbfffff + # 704: 10000100 + # 708: ff01ffff + # 70c: 00fc0000 + # 710: c8400600 + # 714: 00feef3f + # 718: 00001000 + # 71c: 00000000 + # 720: 00000000 + # 724: 00000000 + # 728: 00000000 + # 72c: 00000000 + # 730: 00000000 + +# Function @ .irom0.text+0x734 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 +.Lfunc004: movi a3, 0x000f4240 # 734: 31ecff + addi sp, sp, -16 /* (local0) */ # 737: 12c1f0 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 73a: d921 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 73c: c911 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 73e: 0901 + mov a12, a2 /* arg0 */ # 740: cd02 + call0 __udivsi3 # 742: 01f6ffc0 + # 746: 0000 + mov a3, a2 # 748: 3d02 + movi a2, .Lstr008 # 74a: 21e7ff + call0 printf # 74d: 01f4ffc0 + # 751: 0000 + movi a0, 0x00ff0000 # 753: 01e6ff + movi a2, 0x5ffffe00 # 756: 21e6ff + memw # 759: c02000 + l32i a3, a2, 0x21c /* [0x6000001c] */ # 75c: 322287 + bnone a0, a3, .Lbr073 # 75f: 370008 +.Lbr072: memw # 762: c02000 + l32i a4, a2, 0x21c /* [0x6000001c] */ # 765: 422287 + bany a4, a0, .Lbr072 # 768: 0784f6 +.Lbr073: movi a2, 0x60000e00 # 76b: 21e2ff + memw # 76e: c02000 + l32i a5, a2, 0x11c /* [0x60000f1c] */ # 771: 522247 + bnone a0, a5, .Lbr075 # 774: 570008 +.Lbr074: memw # 777: c02000 + l32i a6, a2, 0x11c /* [0x60000f1c] */ # 77a: 622247 + bany a6, a0, .Lbr074 # 77d: 0786f6 +.Lbr075: movi a7, 0x00100000 # 780: 71deff + movi a3, 0 /* 0x00000000 */ # 783: 0c03 + movi a8, 8 /* 0x00000008 */ # 785: 0c88 + movi a13, 0x60000600 # 787: d1ddff + memw # 78a: c02000 + s32i a3, a13, 0x100 /* 0x00000000 -> [0x60000700] */ # 78d: 326d40 + movi a2, 0xffffbfff # 790: 21dcff + memw # 793: c02000 + l32i a0, a13, 0x100 /* [0x60000700] */ # 796: 022d40 + and a0, a0, a2 # 799: 200010 + memw # 79c: c02000 + s32i a0, a13, 0x100 /* a0 -> [0x60000700] */ # 79f: 026d40 + movi a11, 48 /* 0x00000030 */ # 7a2: 3c0b + memw # 7a4: c02000 + l32i a10, a13, 0x100 /* [0x60000700] */ # 7a7: a22d40 + or a10, a10, a11 # 7aa: b0aa20 + memw # 7ad: c02000 + s32i a10, a13, 0x100 /* a10 -> [0x60000700] */ # 7b0: a26d40 + movi a9, 4 /* 0x00000004 */ # 7b3: 0c49 + memw # 7b5: c02000 + s32i a9, a13, 0x144 /* 0x00000004 -> [0x60000744] */ # 7b8: 926d51 + movi a6, 0x00010010 # 7bb: 61d2ff + memw # 7be: c02000 + s32i a6, a13, 0x10c /* 0x00010010 -> [0x6000070c] */ # 7c1: 626d43 + movi a5, 0xffff01ff # 7c4: 51d1ff + movi a4, 0x0000fc00 # 7c7: 41d1ff + memw # 7ca: c02000 + l32i a3, a13, 0x148 /* [0x60000748] */ # 7cd: 322d52 + and a3, a3, a5 # 7d0: 503310 + or a3, a3, a4 # 7d3: 403320 + memw # 7d6: c02000 + s32i a3, a13, 0x148 /* a3 -> [0x60000748] */ # 7d9: 326d52 + movi a2, -512 /* 0xfffffe00 */ # 7dc: 22ae00 + movi a0, 128 /* 0x00000080 */ # 7df: 02a080 + memw # 7e2: c02000 + l32i a11, a13, 0x148 /* [0x60000748] */ # 7e5: b22d52 + and a11, a11, a2 # 7e8: 20bb10 + or a11, a11, a0 # 7eb: 00bb20 + memw # 7ee: c02000 + s32i a11, a13, 0x148 /* a11 -> [0x60000748] */ # 7f1: b26d52 + movi a10, 136 /* 0x00000088 */ # 7f4: a2a088 + memw # 7f7: c02000 + l32i a9, a13, 0x11c /* [0x6000071c] */ # 7fa: 922d47 + add a9, a9, a10 /* [0x6000071c]+0x88 */ # 7fd: aa99 + memw # 7ff: c02000 + s32i a9, a13, 0x104 /* [0x6000071c]+0x88 -> [0x60000704] */ # 802: 926d41 + memw # 805: c02000 + s32i a8, a13, 0x118 /* 0x00000008 -> [0x60000718] */ # 808: 826d46 + memw # 80b: c02000 + s32i a7, a13, 0x108 /* 0x00100000 -> [0x60000708] */ # 80e: 726d42 + movi a2, 200 /* 0x000000c8 */ # 811: 22a0c8 + call0 os_delay_us # 814: 01c4ffc0 + # 818: 0000 + movi a7, 3 /* 0x00000003 */ # 81a: 0c37 + movi a8, 17 /* 0x00000011 */ # 81c: 1c18 + memw # 81e: c02000 + s32i a8, a13, 0x19c /* 0x00000011 -> [0x6000079c] */ # 821: 826d67 + memw # 824: c02000 + s32i a7, a13, 0x1a0 /* 0x00000003 -> [0x600007a0] */ # 827: 726d68 + movi a6, 0x000640c8 # 82a: 61b9ff + memw # 82d: c02000 + s32i a6, a13, 0x10c /* 0x000640c8 -> [0x6000070c] */ # 830: 626d43 + movi a5, -49 /* 0xffffffcf */ # 833: 52afcf + memw # 836: c02000 + l32i a4, a13, 0x100 /* [0x60000700] */ # 839: 422d40 + and a4, a4, a5 # 83c: 504410 + memw # 83f: c02000 + s32i a4, a13, 0x100 /* a4 -> [0x60000700] */ # 842: 426d40 + call0 pm_rtc_clock_cali_proc # 845: 01b8ffc0 + # 849: 0000 + mov a2, a12 /* arg0 */ # 84b: 2d0c + call0 pm_set_sleep_time # 84d: 01b7ffc0 + # 851: 0000 + movi a10, 0x3feffe00 # 853: a1b0ff + memw # 856: c02000 + movi a2, 17 /* 0x00000011 */ # 859: 1c12 + s32i a2, a13, 0x19c /* 0x00000011 -> [0x6000079c] */ # 85b: 226d67 + memw # 85e: c02000 + movi a0, 3 /* 0x00000003 */ # 861: 0c30 + s32i a0, a13, 0x1a0 /* 0x00000003 -> [0x600007a0] */ # 863: 026d68 + movi a11, -2 /* 0xfffffffe */ # 866: 7ceb + memw # 868: c02000 + l32i a9, a10, 0x204 /* [0x3ff00004] */ # 86b: 922a81 + and a9, a9, a11 # 86e: b09910 + memw # 871: c02000 + s32i a9, a10, 0x204 /* a9 -> [0x3ff00004] */ # 874: 926a81 + movi a2, 256 /* 0x00000100 */ # 877: 22a100 + call0 _xt_isr_mask # 87a: 01adffc0 + # 87e: 0000 + movi a0, 0x00100000 # 880: 01a6ff + movi a4, -1 /* 0xffffffff */ # 883: 7cf4 + memw # 885: c02000 + s32i a4, a13, 0x140 /* 0xffffffff -> [0x60000740] */ # 888: 426d50 + movi a3, 32 /* 0x00000020 */ # 88b: 2c03 + memw # 88d: c02000 + s32i a3, a13, 0x144 /* 0x00000020 -> [0x60000744] */ # 890: 326d51 + memw # 893: c02000 + movi a2, 0 /* 0x00000000 */ # 896: 0c02 + s32i a2, a13, 0x110 /* 0x00000000 -> [0x60000710] */ # 898: 226d44 + bnez a12, .Lbr076 # 89b: cc7c + memw # 89d: c02000 + s32i a2, a13, 0x118 /* 0x00000000 -> [0x60000718] */ # 8a0: 226d46 + j .Lbr077 # 8a3: c60100 +.Lbr076: memw # 8a6: c02000 + movi a5, 8 /* 0x00000008 */ # 8a9: 0c85 + s32i a5, a13, 0x118 /* 0x00000008 -> [0x60000718] */ # 8ab: 526d46 +.Lbr077: memw # 8ae: c02000 + s32i a0, a13, 0x108 /* 0x00100000 -> [0x60000708] */ # 8b1: 026d42 + l32i a12, sp, 4 /* [(local1)] */ # 8b4: c811 + l32i a13, sp, 8 /* [(local2)] */ # 8b6: d821 + l32i a0, sp, 0 /* [(local0)] */ # 8b8: 0801 + addi sp, sp, 16 /* (top of frame) */ # 8ba: 12c110 + ret /* 0x00000000 */ # 8bd: 0df0 + + .literal_position # 8c0: 00000000 + # 8c4: 00000000 + # 8c8: 34070000 + # 8cc: 00000000 + # 8d0: 00000000 + # 8d4: 00000000 + # 8d8: 00000000 + # 8dc: 00000000 + # 8e0: 00000000 + # 8e4: 00000000 + +# Function @ .irom0.text+0x8e8 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global system_deep_sleep + .type system_deep_sleep, @function +system_deep_sleep: + addi sp, sp, -16 /* (local0) */ # 8e8: 12c1f0 + s32i a2, sp, 0 /* arg0 -> [(local0)] */ # 8eb: 2901 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 8ed: 0911 + call0 wifi_get_opmode # 8ef: 050000 + beqi a2, 2, .Lbr078 # 8f2: 262205 + call0 wifi_station_stop # 8f5: 01f6ffc0 + # 8f9: 0000 +.Lbr078: call0 wifi_get_opmode # 8fb: 01f6ffc0 + # 8ff: 0000 + beqi a2, 1, .Lbr079 # 901: 261205 + call0 wifi_softap_stop # 904: 01f5ffc0 + # 908: 0000 +.Lbr079: movi a2, sta_con_timer # 90a: 21edff + call0 os_timer_disarm # 90d: 01f3ffc0 + # 911: 0000 + movi a2, sta_con_timer # 913: 21ecff + movi a3, .Lfunc004 # 916: 31ecff + l32i a4, sp, 0 /* [(local0)] */ # 919: 4801 + call0 os_timer_setfn # 91b: 01f1ffc0 + # 91f: 0000 + movi a2, sta_con_timer # 921: 21eaff + movi a3, 100 /* 0x00000064 */ # 924: 32a064 + movi a4, 0 /* 0x00000000 */ # 927: 0c04 + call0 os_timer_arm # 929: 01eeffc0 + # 92d: 0000 + l32i a0, sp, 4 /* [(local1)] */ # 92f: 0811 + addi sp, sp, 16 /* (top of frame) */ # 931: 12c110 + ret # 934: 0df0 + + .literal_position # 938: 00feef3f + # 93c: 00000000 + # 940: 00000000 + +# Function @ .irom0.text+0x944 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global system_update_cpu_freq + .type system_update_cpu_freq, @function +system_update_cpu_freq: + addi sp, sp, -16 /* (local0) */ # 944: 12c1f0 + movi a5, 80 /* 0x00000050 */ # 947: 5c05 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 949: 0901 + movi a0, 0x3feffe00 # 94b: 01fbff + bne a2, a5, .Lbr080 # 94e: 57921b + movi a3, -2 /* 0xfffffffe */ # 951: 7ce3 + memw # 953: c02000 + l32i a2, a0, 0x214 /* [0x3ff00014] */ # 956: 222085 + and a2, a2, a3 # 959: 302210 + memw # 95c: c02000 + s32i a2, a0, 0x214 /* a2 -> [0x3ff00014] */ # 95f: 226085 + mov a2, a5 /* 0x00000050 */ # 962: 2d05 + call0 os_update_cpu_frequency # 964: 01f6ffc0 + # 968: 0000 + j .Lbr081 # 96a: 860700 +.Lbr080: movi a5, 160 /* 0x000000a0 */ # 96d: 52a0a0 + bne a2, a5, .Lbr082 # 970: 57921d + mov a2, a5 /* 0x000000a0 */ # 973: 2d05 + movi a6, 1 /* 0x00000001 */ # 975: 0c16 + memw # 977: c02000 + l32i a4, a0, 0x214 /* [0x3ff00014] */ # 97a: 422085 + or a4, a4, a6 # 97d: 604420 + memw # 980: c02000 + s32i a4, a0, 0x214 /* a4 -> [0x3ff00014] */ # 983: 426085 + call0 os_update_cpu_frequency # 986: 01eeffc0 + # 98a: 0000 +.Lbr081: movi a2, 1 /* 0x00000001 */ # 98c: 0c12 + j .Lbr083 # 98e: 460000 +.Lbr082: movi a2, 0 /* 0x00000000 */ # 991: 0c02 +.Lbr083: l32i a0, sp, 0 /* [(local0)] */ # 993: 0801 + addi sp, sp, 16 /* (top of frame) */ # 995: 12c110 + ret # 998: 0df0 + + .literal_position # 99c: 00000000 + +# Function @ .irom0.text+0x9a0 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global system_get_cpu_freq + .type system_get_cpu_freq, @function +system_get_cpu_freq: + addi sp, sp, -16 /* (local0) */ # 9a0: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 9a3: 0901 + call0 os_get_cpu_frequency # 9a5: 01fdffc0 + # 9a9: 0000 + extui a2, a2, 0, 8 # 9ab: 202074 + l32i a0, sp, 0 /* [(local0)] */ # 9ae: 0801 + addi sp, sp, 16 /* (top of frame) */ # 9b0: 12c110 + ret # 9b3: 0df0 + + .literal_position # 9b8: 00000000 + +# Function @ .irom0.text+0x9bc +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global system_overclock + .type system_overclock, @function +system_overclock: + addi sp, sp, -16 /* (local0) */ # 9bc: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 9bf: 0901 + call0 system_get_cpu_freq # 9c1: 050000 + movi a0, 80 /* 0x00000050 */ # 9c4: 5c00 + bne a2, a0, .Lbr084 # 9c6: 079212 + movi a3, .Ldata001 # 9c9: 31fbff + movi a2, 1 /* 0x00000001 */ # 9cc: 0c12 + s8i a2, a3, 249 /* 0x01 -> [cpu_overclock] */ # 9ce: 2243f9 + movi a2, 160 /* 0x000000a0 */ # 9d1: 22a0a0 + call0 system_update_cpu_freq # 9d4: 050000 + movi a2, 1 /* 0x00000001 */ # 9d7: 0c12 + j .Lbr085 # 9d9: 460000 +.Lbr084: movi a2, 0 /* 0x00000000 */ # 9dc: 0c02 +.Lbr085: l32i a0, sp, 0 /* [(local0)] */ # 9de: 0801 + addi sp, sp, 16 /* (top of frame) */ # 9e0: 12c110 + ret # 9e3: 0df0 + + .literal_position # 9e8: 00000000 + +# Function @ .irom0.text+0x9ec +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global system_restoreclock + .type system_restoreclock, @function +system_restoreclock: + addi sp, sp, -16 /* (local0) */ # 9ec: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 9ef: 0901 + call0 system_get_cpu_freq # 9f1: 050000 + movi a0, 160 /* 0x000000a0 */ # 9f4: 02a0a0 + bne a2, a0, .Lbr086 # 9f7: 079217 + movi a0, .Ldata001 # 9fa: 01fbff + l8ui a2, a0, 249 /* [cpu_overclock] */ # 9fd: 2200f9 + bnei a2, 1, .Lbr086 # a00: 66120e + movi a2, 80 /* 0x00000050 */ # a03: 5c02 + movi a3, 0 /* 0x00000000 */ # a05: 0c03 + s8i a3, a0, 249 /* 0x00 -> [cpu_overclock] */ # a07: 3240f9 + call0 system_update_cpu_freq # a0a: 050000 + movi a2, 1 /* 0x00000001 */ # a0d: 0c12 + j .Lbr087 # a0f: 460000 +.Lbr086: movi a2, 0 /* 0x00000000 */ # a12: 0c02 +.Lbr087: l32i a0, sp, 0 /* [(local0)] */ # a14: 0801 + addi sp, sp, 16 /* (top of frame) */ # a16: 12c110 + ret # a19: 0df0 + + .literal_position # a1c: 00000000 + # a20: 000af23f + +# Function @ .irom0.text+0xa24 + .balign 4 + .global system_get_time + .type system_get_time, @function +system_get_time: + movi a3, WdevTimOffSet # a24: 31feff + movi a2, 0x3ff20a00 # a27: 21feff + l32i a3, a3, 0 /* [WdevTimOffSet] */ # a2a: 3803 + memw # a2c: c02000 + l32i a2, a2, 0x200 /* [0x3ff20c00] */ # a2f: 222280 + add a2, a2, a3 # a32: 3a22 + ret # a34: 0df0 + + .literal_position # a38: 000af23f + +# Function @ .irom0.text+0xa3c + .balign 4 + .global system_relative_time + .type system_relative_time, @function +system_relative_time: + movi a3, 0x3ff20a00 # a3c: 31ffff + memw # a3f: c02000 + l32i a3, a3, 0x200 /* [0x3ff20c00] */ # a42: 322380 + sub a2, a3, a2 # a45: 2023c0 + ret # a48: 0df0 + + .literal_position # a4c: 00000000 + # a50: e0000000 + # a54: 10010000 + # a58: 00000000 + # a5c: 00000000 + # a60: 00000000 + # a64: 00000000 + # a68: 00000000 + # a6c: 00000000 + # a70: 00000000 + +# Function @ .irom0.text+0xa74 +# Local variables/stack: +# (local0): word @ -0x30 +# (local1): word @ -0x2c +# (local2): word @ -0x28 +# (local3): word @ -0x24 +# (local4): word @ -0x20 +# (local5): word @ -0x1c +# (local6): word[2] @ -0x18 +# (local7): word[4] @ -0x10 + .balign 4 + .global system_station_got_ip_set + .type system_station_got_ip_set, @function +system_station_got_ip_set: + mov a10, a3 /* arg1 */ # a74: ad03 + addi sp, sp, -48 /* (local0) */ # a76: 12c1d0 + mov a6, a2 /* arg0 */ # a79: 6d02 + mov a9, a4 /* arg2 */ # a7b: 9d04 + movi a2, .Lstr009 # a7d: 21f4ff + movi a4, g_ic # a80: 41f3ff + s32i a0, sp, 32 /* a0 -> [(local7)] */ # a83: 0981 + l32i a4, a4, 16 /* [g_ic+0x10] */ # a85: 4844 + movi a3, 5 /* 0x00000005 */ # a87: 0c53 + s8i a3, a4, 186 /* 0x05 -> [[g_ic+0x10]+0xba] */ # a89: 3244ba + l8ui a7, a10, 0 /* [arg1] */ # a8c: 720a00 + l8ui a3, a6, 0 /* [arg0] */ # a8f: 320600 + l8ui a4, a6, 1 /* [arg0+0x1] */ # a92: 420601 + l8ui a5, a6, 2 /* [arg0+0x2] */ # a95: 520602 + l8ui a0, a10, 1 /* [arg1+0x1] */ # a98: 020a01 + l8ui a6, a6, 3 /* [arg0+0x3] */ # a9b: 620603 + s32i a0, sp, 0 /* [arg1+0x1] -> [(local0)] */ # a9e: 0901 + l8ui a11, a10, 2 /* [arg1+0x2] */ # aa0: b20a02 + s32i a11, sp, 4 /* [arg1+0x2] -> [(local1)] */ # aa3: b911 + l8ui a8, a10, 3 /* [arg1+0x3] */ # aa5: 820a03 + s32i a8, sp, 8 /* [arg1+0x3] -> [(local2)] */ # aa8: 8921 + l8ui a0, a9, 0 /* [arg2] */ # aaa: 020900 + s32i a0, sp, 12 /* [arg2] -> [(local3)] */ # aad: 0931 + l8ui a11, a9, 1 /* [arg2+0x1] */ # aaf: b20901 + s32i a11, sp, 16 /* [arg2+0x1] -> [(local4)] */ # ab2: b941 + l8ui a8, a9, 2 /* [arg2+0x2] */ # ab4: 820902 + s32i a8, sp, 20 /* [arg2+0x2] -> [(local5)] */ # ab7: 8951 + l8ui a0, a9, 3 /* [arg2+0x3] */ # ab9: 020903 + s32i a0, sp, 24 /* [arg2+0x3] -> [(local6)] */ # abc: 0961 + call0 printf # abe: 01e9ffc0 + # ac2: 0000 + movi a2, .Label006 # ac4: 21e4ff + call0 printf # ac7: 01e8ffc0 + # acb: 0000 + movi a0, g_ic+0x180 # acd: 01e2ff + l8ui a5, a0, 97 /* [g_ic+0x1e1] */ # ad0: 520061 + l8ui a6, a0, 96 /* [g_ic+0x1e0] */ # ad3: 620060 + bnei a5, 1, .Lbr088 # ad6: 661525 + bnei a6, 1, .Lbr088 # ad9: 661622 + movi a2, sta_con_timer # adc: 21e0ff + call0 os_timer_disarm # adf: 01e3ffc0 + # ae3: 0000 + movi a2, 0 /* 0x00000000 */ # ae5: 0c02 + movi a6, g_ic+0x180 # ae7: 61deff + movi a5, 0 /* 0x00000000 */ # aea: 0c05 + l8ui a6, a6, 98 /* [g_ic+0x1e2] */ # aec: 620662 + movi a4, 1 /* 0x00000001 */ # aef: 0c14 + ssl a6 # af1: 001640 + sll a4, a4 # af4: 0044a1 + mov a3, a4 # af7: 3d04 + call0 gpio_output_set # af9: 01ddffc0 + # afd: 0000 +.Lbr088: l32i a0, sp, 32 /* [(local7)] */ # aff: 0881 + addi sp, sp, 48 /* (top of frame) */ # b01: 12c130 + ret # b04: 0df0 + + .literal_position # b08: 00000000 + # b0c: 00000000 + # b10: 14010000 + # b14: 30010000 + # b18: 00000000 + # b1c: 00000000 + # b20: 14010000 + # b24: 38010000 + # b28: 00000000 + # b2c: 00000000 + # b30: 14010000 + # b34: 40010000 + # b38: 00000000 + # b3c: 00c0ff3f + # b40: 14010000 + # b44: 48010000 + # b48: 00c0ff3f + # b4c: 00000000 + # b50: 00000000 + # b54: 00000000 + # b58: 00000000 + +# Function @ .irom0.text+0xb5c +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global system_print_meminfo + .type system_print_meminfo, @function +system_print_meminfo: + movi a2, .Lstr010 # b5c: 21edff + movi a3, .Lstr011 # b5f: 31edff + movi a5, _data_end # b62: 51eaff + movi a6, _data_start # b65: 61e8ff + addi sp, sp, -16 /* (local0) */ # b68: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # b6b: 0901 + mov a4, a6 /* _data_start */ # b6d: 4d06 + sub a6, a5, a6 # b6f: 6065c0 + call0 printf # b72: 01f6ffc0 + # b76: 0000 + movi a2, .Lstr010 # b78: 21eaff + movi a3, .Lstr012 # b7b: 31eaff + movi a6, _rodata_start # b7e: 61e6ff + movi a5, _rodata_end # b81: 51e6ff + mov a4, a6 /* _rodata_start */ # b84: 4d06 + sub a6, a5, a6 # b86: 6065c0 + call0 printf # b89: 01f1ffc0 + # b8d: 0000 + movi a2, .Lstr010 # b8f: 21e8ff + movi a3, .Lstr013 # b92: 31e8ff + movi a6, _bss_start # b95: 61e4ff + movi a5, _bss_end # b98: 51e5ff + mov a4, a6 /* _bss_start */ # b9b: 4d06 + sub a6, a5, a6 # b9d: 6065c0 + call0 printf # ba0: 01edffc0 + # ba4: 0000 + movi a2, .Lstr010 # ba6: 21e6ff + movi a3, .Lstr014 # ba9: 31e6ff + movi a5, 0x3fffc000 # bac: 51e7ff + movi a7, _heap_start # baf: 71e2ff + movi a6, 0x3fffc000 # bb2: 61e2ff + mov a4, a7 /* _heap_start */ # bb5: 4d07 + sub a6, a6, a7 # bb7: 7066c0 + call0 printf # bba: 01e7ffc0 + # bbe: 0000 + l32i a0, sp, 0 /* [(local0)] */ # bc0: 0801 + addi sp, sp, 16 /* (top of frame) */ # bc2: 12c110 + ret # bc5: 0df0 + + .literal_position # bc8: 00000000 + +# Function @ .irom0.text+0xbcc +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global system_get_free_heap_size + .type system_get_free_heap_size, @function +system_get_free_heap_size: + addi sp, sp, -16 /* (local0) */ # bcc: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # bcf: 0901 + call0 xPortGetFreeHeapSize # bd1: 01fdffc0 + # bd5: 0000 + l32i a0, sp, 0 /* [(local0)] */ # bd7: 0801 + addi sp, sp, 16 /* (top of frame) */ # bd9: 12c110 + ret # bdc: 0df0 + + .literal_position # be0: 000000ff + # be4: 00feef3f + # be8: ffffff00 + +# Function @ .irom0.text+0xbec + .balign 4 + .global system_get_chip_id + .type system_get_chip_id, @function +system_get_chip_id: + movi a4, 0xff000000 # bec: 41fdff + movi a2, 0x3feffe00 # bef: 21fdff + memw # bf2: c02000 + l32i a3, a2, 0x250 /* [0x3ff00050] */ # bf5: 322294 + and a3, a3, a4 # bf8: 403310 + movi a4, 0x00ffffff # bfb: 41fbff + memw # bfe: c02000 + l32i a2, a2, 0x254 /* [0x3ff00054] */ # c01: 222295 + ssai 24 # c04: 104840 + and a2, a2, a4 # c07: 402210 + src a2, a2, a3 # c0a: 302281 + ret # c0d: 0df0 + + .literal_position # c10: 00000000 + +# Function @ .irom0.text+0xc14 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global system_rtc_clock_cali_proc + .type system_rtc_clock_cali_proc, @function +system_rtc_clock_cali_proc: + addi sp, sp, -16 /* (local0) */ # c14: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # c17: 0901 + call0 pm_rtc_clock_cali_proc # c19: 01fdffc0 + # c1d: 0000 + l32i a0, sp, 0 /* [(local0)] */ # c1f: 0801 + addi sp, sp, 16 /* (top of frame) */ # c21: 12c110 + ret # c24: 0df0 + + .literal_position # c28: 00060060 + +# Function @ .irom0.text+0xc2c + .balign 4 + .global system_get_rtc_time + .type system_get_rtc_time, @function +system_get_rtc_time: + movi a2, 0x60000600 # c2c: 21ffff + memw # c2f: c02000 + l32i a2, a2, 0x11c /* [0x6000071c] */ # c32: 222247 + ret /* [0x6000071c] */ # c35: 0df0 + + .literal_position # c38: fc000000 + +# Function @ .irom0.text+0xc3c + .balign 4 + .global system_get_rst_info + .type system_get_rst_info, @function +system_get_rst_info: + movi a2, rst_if # c3c: 21ffff + ret /* rst_if */ # c3f: 0df0 + + .literal_position # c44: 00000000 + +# Function @ .irom0.text+0xc48 + .balign 4 +.Lfunc005: bltui a2, 2, .Lbr089 # c48: b62203 + movi a2, 0 /* 0x00000000 */ # c4b: 0c02 + ret /* 0x00000000 */ # c4d: 0df0 +.Lbr089: movi a4, g_ic # c4f: 41fdff + l32i a3, a4, 16 /* [g_ic+0x10] */ # c52: 3844 + l32i a4, a4, 20 /* [g_ic+0x14] */ # c54: 4854 + moveqz a4, a3, a2 # c56: 204383 + beqz a4, .Lbr090 # c59: 8c24 + l32i a2, a4, 0 # c5b: 2804 + ret # c5d: 0df0 +.Lbr090: movi a2, 0 /* 0x00000000 */ # c5f: 0c02 + ret /* 0x00000000 */ # c61: 0df0 + + .literal_position # c64: 00000000 + # c68: 00000000 + # c6c: 00000000 + # c70: 00000000 + # c74: 00000000 + +# Function @ .irom0.text+0xc78 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global wifi_station_dhcpc_start + .type wifi_station_dhcpc_start, @function +wifi_station_dhcpc_start: + movi a2, 0 /* 0x00000000 */ # c78: 0c02 + addi sp, sp, -16 /* (local0) */ # c7a: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # c7d: c911 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # c7f: 0901 + call0 .Lfunc005 # c81: 45fcff + mov a12, a2 # c84: cd02 + call0 wifi_get_opmode # c86: 050000 + beqi a2, 2, .Lbr093 # c89: 26223f + movi a0, dhcpc_flag # c8c: 01f6ff + beqz a12, .Lbr091 # c8f: acbc + l8ui a2, a0, 0 /* [dhcpc_flag] */ # c91: 220000 + bnez a2, .Lbr091 # c94: ec62 + mov a2, a12 # c96: 2d0c + movi a5, info # c98: 51f4ff + movi a6, 0 /* 0x00000000 */ # c9b: 0c06 + s32i a6, a5, 12 /* 0x00000000 -> [info+0xc] */ # c9d: 6935 + s32i a6, a5, 16 /* 0x00000000 -> [info+0x10] */ # c9f: 6945 + s32i a6, a5, 20 /* 0x00000000 -> [info+0x14] */ # ca1: 6955 + addi a3, a5, 12 /* info+0xc */ # ca3: cb35 + addi a4, a5, 16 /* info+0x10 */ # ca5: 42c510 + addi a5, a5, 20 /* info+0x14 */ # ca8: 52c514 + call0 netif_set_addr # cab: 01f1ffc0 + # caf: 0000 + mov a2, a12 # cb1: 2d0c + call0 dhcp_start # cb3: 01f0ffc0 + # cb7: 0000 + movi a0, dhcpc_flag # cb9: 01ecff + bnez a2, .Lbr093 # cbc: ccc2 +.Lbr091: movi a2, 1 /* 0x00000001 */ # cbe: 0c12 + s8i a2, a0, 0 /* 0x01 -> [dhcpc_flag] */ # cc0: 224000 +.Lbr092: l32i a12, sp, 4 /* [(local1)] */ # cc3: c811 + l32i a0, sp, 0 /* [(local0)] */ # cc5: 0801 + addi sp, sp, 16 /* (top of frame) */ # cc7: 12c110 + ret # cca: 0df0 +.Lbr093: movi a2, 0 /* 0x00000000 */ # ccc: 0c02 + j .Lbr092 # cce: 46fcff + + .literal_position # cd4: 00000000 + # cd8: 00000000 + # cdc: 00000000 + +# Function @ .irom0.text+0xce0 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global wifi_station_dhcpc_stop + .type wifi_station_dhcpc_stop, @function +wifi_station_dhcpc_stop: + movi a2, 0 /* 0x00000000 */ # ce0: 0c02 + addi sp, sp, -16 /* (local0) */ # ce2: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # ce5: c911 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # ce7: 0901 + call0 .Lfunc005 # ce9: c5f5ff + mov a12, a2 # cec: cd02 + call0 wifi_get_opmode # cee: 050000 + bnei a2, 2, .Lbr094 # cf1: 662204 + movi a2, 0 /* 0x00000000 */ # cf4: 0c02 + j .Lbr096 # cf6: 060700 +.Lbr094: movi a0, dhcpc_flag # cf9: 01f6ff + beqz a12, .Lbr095 # cfc: 8cfc + l8ui a2, a0, 0 /* [dhcpc_flag] */ # cfe: 220000 + bnei a2, 1, .Lbr095 # d01: 66120a + mov a2, a12 # d04: 2d0c + call0 dhcp_stop # d06: 01f5ffc0 + # d0a: 0000 + movi a0, dhcpc_flag # d0c: 01f3ff +.Lbr095: movi a2, 1 /* 0x00000001 */ # d0f: 0c12 + movi a3, 0 /* 0x00000000 */ # d11: 0c03 + s8i a3, a0, 0 /* 0x00 -> [dhcpc_flag] */ # d13: 324000 +.Lbr096: l32i a12, sp, 4 /* [(local1)] */ # d16: c811 + l32i a0, sp, 0 /* [(local0)] */ # d18: 0801 + addi sp, sp, 16 /* (top of frame) */ # d1a: 12c110 + ret # d1d: 0df0 + + .literal_position # d20: 00000000 + +# Function @ .irom0.text+0xd24 + .balign 4 + .global wifi_station_dhcpc_status + .type wifi_station_dhcpc_status, @function +wifi_station_dhcpc_status: + movi a2, dhcpc_flag # d24: 21ffff + l8ui a2, a2, 0 /* [dhcpc_flag] */ # d27: 220200 + ret /* [dhcpc_flag] */ # d2a: 0df0 + + .literal_position # d2c: 00000000 + # d30: 00000000 + +# Function @ .irom0.text+0xd34 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 +.Lfunc006: addi sp, sp, -16 /* (local0) */ # d34: 12c1f0 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # d37: d921 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # d39: c911 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # d3b: 0901 + mov a12, a2 /* arg0 */ # d3d: cd02 + bnei a2, 1, .Lbr097 # d3f: 661205 + movi a2, g_ic+0x1d8 # d42: 21faff + j .Lbr098 # d45: 860000 +.Lbr097: call0 .Lfunc009 # d48: c52e00 +.Lbr098: l8ui a13, a2, 8 # d4b: d20208 + bltui a13, 4, .Lbr099 # d4e: b64d01 + movi a13, 2 /* 0x00000002 */ # d51: 0c2d +.Lbr099: beqi a12, 1, .Lbr100 # d53: 261c05 + call0 free # d56: 01f6ffc0 + # d5a: 0000 +.Lbr100: l32i a0, sp, 0 /* [(local0)] */ # d5c: 0801 + extui a2, a13, 0, 8 # d5e: d02074 + l32i a12, sp, 4 /* [(local1)] */ # d61: c811 + l32i a13, sp, 8 /* [(local2)] */ # d63: d821 + addi sp, sp, 16 /* (top of frame) */ # d65: 12c110 + ret # d68: 0df0 + + .balign 4 +# Function @ .irom0.text+0xd6c +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global wifi_get_opmode + .type wifi_get_opmode, @function +wifi_get_opmode: + movi a2, 1 /* 0x00000001 */ # d6c: 0c12 + addi sp, sp, -16 /* (local0) */ # d6e: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # d71: 0901 + call0 .Lfunc006 # d73: 05fcff + l32i a0, sp, 0 /* [(local0)] */ # d76: 0801 + addi sp, sp, 16 /* (top of frame) */ # d78: 12c110 + ret # d7b: 0df0 + + .balign 4 +# Function @ .irom0.text+0xd80 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global wifi_get_opmode_default + .type wifi_get_opmode_default, @function +wifi_get_opmode_default: + movi a2, 0 /* 0x00000000 */ # d80: 0c02 + addi sp, sp, -16 /* (local0) */ # d82: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # d85: 0901 + call0 .Lfunc006 # d87: c5faff + l32i a0, sp, 0 /* [(local0)] */ # d8a: 0801 + addi sp, sp, 16 /* (top of frame) */ # d8c: 12c110 + ret # d8f: 0df0 + + .literal_position # d94: 00000000 + # d98: 00000000 + # d9c: 00000000 + # da0: 00000000 + # da4: 00000000 + # da8: 00000000 + # dac: 00000000 + # db0: 00000000 + +# Function @ .irom0.text+0xdb4 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 +.Lfunc007: addi sp, sp, -16 /* (local0) */ # db4: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # db7: c911 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # db9: 0901 + mov a12, a2 /* arg0 */ # dbb: cd02 + movi a0, 1 /* 0x00000001 */ # dbd: 0c10 + bgeui a2, 4, .Lbr101 # dbf: f64201 + movi a0, 0 /* 0x00000000 */ # dc2: 0c00 +.Lbr101: movi a2, 2 /* 0x00000002 */ # dc4: 0c22 + movnez a12, a2, a0 # dc6: 00c293 + beqi a12, 1, .Lbr102 # dc9: 261c01 + bnez a12, .Lbr103 # dcc: cc4c +.Lbr102: call0 wifi_softap_stop # dce: 01f2ffc0 + # dd2: 0000 +.Lbr103: beqi a12, 2, .Lbr104 # dd4: 262c01 + bnez a12, .Lbr105 # dd7: cc4c +.Lbr104: call0 wifi_station_stop # dd9: 01f0ffc0 + # ddd: 0000 +.Lbr105: mov a2, a12 # ddf: 2d0c + call0 wifi_mode_set # de1: 01efffc0 + # de5: 0000 + beqi a12, 1, .Lbr106 # de7: 261c02 + bnei a12, 3, .Lbr107 # dea: 663c05 +.Lbr106: call0 wifi_station_start # ded: 01edffc0 + # df1: 0000 +.Lbr107: beqi a12, 2, .Lbr108 # df3: 262c02 + bnei a12, 3, .Lbr109 # df6: 663c05 +.Lbr108: call0 wifi_softap_start # df9: 01ebffc0 + # dfd: 0000 +.Lbr109: beqz a12, .Lbr111 # dff: 9cbc + movi a0, g_ic # e01: 01e4ff + beqi a12, 1, .Lbr110 # e04: 261c0c + l32i a2, a0, 20 /* [g_ic+0x14] */ # e07: 2850 + l32i a2, a2, 0 /* [[g_ic+0x14]] */ # e09: 2802 + call0 netif_set_default # e0b: 01e8ffc0 + # e0f: 0000 + j .Lbr111 # e11: 460200 +.Lbr110: l32i a2, a0, 16 /* [g_ic+0x10] */ # e14: 2840 + l32i a2, a2, 0 /* [[g_ic+0x10]] */ # e16: 2802 + call0 netif_set_default # e18: 01e6ffc0 + # e1c: 0000 +.Lbr111: l32i a12, sp, 4 /* [(local1)] */ # e1e: c811 + l32i a0, sp, 0 /* [(local0)] */ # e20: 0801 + addi sp, sp, 16 /* (top of frame) */ # e22: 12c110 + ret # e25: 0df0 + + .literal_position # e28: 00000000 + # e2c: 00000000 + # e30: 00000000 + # e34: 00000000 + +# Function @ .irom0.text+0xe38 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word @ -0x8 +# (local3): word @ -0x4 + .balign 4 + .global wifi_set_opmode_local + .type wifi_set_opmode_local, @function +wifi_set_opmode_local: + addi sp, sp, -16 /* (local0) */ # e38: 12c1f0 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # e3b: 0911 + s32i a12, sp, 8 /* a12 -> [(local2)] */ # e3d: c921 + s32i a3, sp, 0 /* arg1 -> [(local0)] */ # e3f: 3901 + mov a12, a2 /* arg0 */ # e41: cd02 + bltui a2, 4, .Lbr116 # e43: b64238 + movi a2, 0 /* 0x00000000 */ # e46: 0c02 + j .Lbr115 # e48: 860a00 +.Lbr112: movi a0, g_ic+0x160 # e4b: 01f7ff + movi a3, user_init_flag # e4e: 31f7ff + l8ui a2, a0, 128 /* [g_ic+0x1e0] */ # e51: 220080 + l8ui a3, a3, 0 /* [user_init_flag] */ # e54: 320300 + beq a2, a12, .Lbr114 # e57: c71219 + s32i a0, sp, 12 /* g_ic+0x160 -> [(local3)] */ # e5a: 0931 + bnei a3, 1, .Lbr113 # e5c: 661306 + mov a2, a12 /* arg0 */ # e5f: 2d0c + call0 .Lfunc007 # e61: 05f5ff + l32i a0, sp, 12 /* [(local3)] */ # e64: 0831 +.Lbr113: l32i a4, sp, 0 /* [(local0)] */ # e66: 4801 + s8i a12, a0, 128 # e68: c24080 + bnei a4, 1, .Lbr114 # e6b: 661405 + movi a2, g_ic+0x1d8 # e6e: 21f0ff + call0 wifi_param_save_protect # e71: 050000 +.Lbr114: movi a2, 1 /* 0x00000001 */ # e74: 0c12 +.Lbr115: l32i a12, sp, 8 /* [(local2)] */ # e76: c821 + l32i a0, sp, 4 /* [(local1)] */ # e78: 0811 + addi sp, sp, 16 /* (top of frame) */ # e7a: 12c110 + ret # e7d: 0df0 +.Lbr116: movi a2, 5 /* 0x00000005 */ # e7f: 0c52 + call0 .Lfunc001 # e81: 451cff + bnei a2, -1, .Lbr112 # e84: 6602c3 + movi a5, .Ldata001 # e87: 51ebff + s8i a12, a5, 138 /* arg0 -> [.Ldata007] */ # e8a: c2458a + j .Lbr114 # e8d: c6f8ff + +# Function @ .irom0.text+0xe90 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global wifi_set_opmode + .type wifi_set_opmode, @function +wifi_set_opmode: + movi a3, 1 /* 0x00000001 */ # e90: 0c13 + addi sp, sp, -16 /* (local0) */ # e92: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # e95: 0901 + call0 wifi_set_opmode_local # e97: 050000 + l32i a0, sp, 0 /* [(local0)] */ # e9a: 0801 + addi sp, sp, 16 /* (top of frame) */ # e9c: 12c110 + ret # e9f: 0df0 + + .balign 4 +# Function @ .irom0.text+0xea4 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global wifi_set_opmode_current + .type wifi_set_opmode_current, @function +wifi_set_opmode_current: + movi a3, 0 /* 0x00000000 */ # ea4: 0c03 + addi sp, sp, -16 /* (local0) */ # ea6: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # ea9: 0901 + call0 wifi_set_opmode_local # eab: 050000 + l32i a0, sp, 0 /* [(local0)] */ # eae: 0801 + addi sp, sp, 16 /* (top of frame) */ # eb0: 12c110 + ret # eb3: 0df0 + + .balign 4 +# Function @ .irom0.text+0xeb8 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global system_get_checksum + .type system_get_checksum, @function +system_get_checksum: + addi sp, sp, -16 /* (local0) */ # eb8: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # ebb: 0901 + beqz a3, .Lbr118 # ebd: 9c93 + movi a0, 239 /* 0x000000ef */ # ebf: 02a0ef + movi a6, 0 /* 0x00000000 */ # ec2: 0c06 +.Lbr117: addi a5, a6, 1 # ec4: 1b56 + add a4, a2, a6 # ec6: 6a42 + l8ui a4, a4, 0 # ec8: 420400 + extui a6, a5, 0, 16 # ecb: 5060f4 + xor a0, a4, a0 # ece: 000430 + extui a0, a0, 0, 8 # ed1: 000074 + bne a3, a6, .Lbr117 # ed4: 6793ec + j .Lbr119 # ed7: 860000 +.Lbr118: movi a0, 239 /* 0x000000ef */ # eda: 02a0ef +.Lbr119: mov a2, a0 # edd: 2d00 + l32i a0, sp, 0 /* [(local0)] */ # edf: 0801 + addi sp, sp, 16 /* (top of frame) */ # ee1: 12c110 + ret # ee4: 0df0 + + .literal_position # ee8: 50010000 + # eec: 00000000 + # ef0: 00000000 + # ef4: 00000000 + # ef8: 00000000 + # efc: 00000000 + # f00: 00000000 + # f04: 00000000 + +# Function @ .irom0.text+0xf08 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word @ -0x10 +# (local5): word @ -0xc +# (local6): word[2] @ -0x8 + .balign 4 +.Lfunc008: addi sp, sp, -32 /* (local0) */ # f08: 12c1e0 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # f0b: d921 + s32i a15, sp, 16 /* a15 -> [(local4)] */ # f0d: f941 + s32i a4, sp, 24 /* arg2 -> [(local6)] */ # f0f: 4961 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # f11: 0901 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # f13: c911 + s32i a14, sp, 12 /* a14 -> [(local3)] */ # f15: e931 + s32i a2, sp, 20 /* arg0 -> [(local5)] */ # f17: 2951 + mov a14, a3 /* arg1 */ # f19: ed03 + mov a2, a5 /* arg3 */ # f1b: 2d05 + mov a12, a5 /* arg3 */ # f1d: cd05 + call0 malloc # f1f: 01f3ffc0 + # f23: 0000 + mov a13, a2 # f25: dd02 + l32i a0, sp, 20 /* [(local5)] */ # f27: 0851 + l32i a15, sp, 24 /* [(local6)] */ # f29: f861 + mull a14, a0, a14 # f2b: e0e082 + j .Lbr121 # f2e: 060200 +.Lbr120: movi a2, .Lstr015 # f31: 21edff + call0 printf # f34: 01efffc0 + # f38: 0000 +.Lbr121: l32i a2, sp, 20 /* [(local5)] */ # f3a: 2851 + call0 spi_flash_erase_sector # f3c: 01eeffc0 + # f40: 0000 + mov a2, a14 # f42: 2d0e + mov a3, a15 /* [(local6)] */ # f44: 3d0f + mov a4, a12 /* arg3 */ # f46: 4d0c + call0 spi_flash_write # f48: 01ecffc0 + # f4c: 0000 + mov a2, a14 # f4e: 2d0e + mov a3, a13 # f50: 3d0d + mov a4, a12 /* arg3 */ # f52: 4d0c + call0 spi_flash_read # f54: 01eaffc0 + # f58: 0000 + mov a2, a13 # f5a: 2d0d + mov a3, a15 /* [(local6)] */ # f5c: 3d0f + mov a4, a12 /* arg3 */ # f5e: 4d0c + call0 memcmp # f60: 01e8ffc0 + # f64: 0000 + bnez a2, .Lbr120 # f66: 5672fc + mov a2, a13 # f69: 2d0d + call0 free # f6b: 01e6ffc0 + # f6f: 0000 + l32i a12, sp, 4 /* [(local1)] */ # f71: c811 + l32i a13, sp, 8 /* [(local2)] */ # f73: d821 + l32i a14, sp, 12 /* [(local3)] */ # f75: e831 + l32i a15, sp, 16 /* [(local4)] */ # f77: f841 + l32i a0, sp, 0 /* [(local0)] */ # f79: 0801 + addi sp, sp, 32 /* (top of frame) */ # f7b: 12c120 + ret # f7e: 0df0 + + .literal_position # f80: 00000000 + # f84: aa55aa55 + # f88: 00000000 + # f8c: 00000000 + +# Function @ .irom0.text+0xf90 +# Local variables/stack: +# (local0): byte[4] @ -0x30 +# (local1): word @ -0x2c +# (local2): word[5] @ -0x28 +# (local3): word @ -0x14 +# (local4): word @ -0x10 +# (local5): word @ -0xc +# (local6): word @ -0x8 +# (local7): word @ -0x4 + .balign 4 + .global wifi_param_save_protect + .type wifi_param_save_protect, @function +wifi_param_save_protect: + addi sp, sp, -48 /* (local0) */ # f90: 12c1d0 + s32i a13, sp, 44 /* a13 -> [(local7)] */ # f93: d9b1 + s32i a12, sp, 40 /* a12 -> [(local6)] */ # f95: c9a1 + mov a13, a2 /* arg0 */ # f97: dd02 + movi a2, flashchip # f99: 21f9ff + s32i a0, sp, 36 /* a0 -> [(local5)] */ # f9c: 0991 + l32i a12, a2, 12 /* [flashchip+0xc] */ # f9e: c832 + l32i a2, a2, 4 /* [flashchip+0x4] */ # fa0: 2812 + mov a3, a12 /* [flashchip+0xc] */ # fa2: 3d0c + call0 __udivsi3 # fa4: 01f9ffc0 + # fa8: 0000 + movi a4, 28 /* 0x0000001c */ # faa: 1cc4 + addi a3, a2, -4 # fac: 32c2fc + s32i a3, sp, 28 /* a3 -> [(local3)] */ # faf: 3971 + addi a2, a2, -1 # fb1: 0b22 + s32i a2, sp, 32 /* a2 -> [(local4)] */ # fb3: 2981 + mov a3, sp /* (local0) */ # fb5: 3d01 + mull a2, a2, a12 # fb7: c02282 + call0 spi_flash_read # fba: 01f4ffc0 + # fbe: 0000 + l8ui a5, sp, 0 /* [(local0)] */ # fc0: 520100 + movi a4, 1 /* 0x00000001 */ # fc3: 0c14 + movi a3, 0 /* 0x00000000 */ # fc5: 0c03 + l32i a2, sp, 28 /* [(local3)] */ # fc7: 2871 + moveqz a3, a4, a5 # fc9: 503483 + mov a4, a13 /* arg0 */ # fcc: 4d0d + movi a5, 880 /* 0x00000370 */ # fce: 52a370 + s8i a3, sp, 0 /* a3 -> [(local0)] */ # fd1: 324100 + add a2, a2, a3 # fd4: 3a22 + addi a2, a2, 1 # fd6: 1b22 + mov a3, a12 /* [flashchip+0xc] */ # fd8: 3d0c + call0 .Lfunc008 # fda: c5f2ff + movi a4, 28 /* 0x0000001c */ # fdd: 1cc4 + movi a6, 1 /* 0x00000001 */ # fdf: 0c16 + l32i a7, sp, 8 /* [(local2)] */ # fe1: 7821 + l8ui a5, sp, 0 /* [(local0)] */ # fe3: 520100 + movi a8, 0x55aa55aa # fe6: 81e7ff + s32i a8, sp, 4 /* 0x55aa55aa -> [(local1)] */ # fe9: 8911 + addx4 a5, a5, sp # feb: 1055a0 + addi a7, a7, 1 /* [(local2)]+0x1 */ # fee: 1b77 + movnez a6, a7, a7 # ff0: 706793 + s32i a6, sp, 8 /* a6 -> [(local2)] */ # ff3: 6921 + s32i a4, a5, 12 # ff5: 4935 + l8ui a3, sp, 0 /* [(local0)] */ # ff7: 320100 + mov a2, a13 /* arg0 */ # ffa: 2d0d + addx4 a3, a3, sp # ffc: 1033a0 + l16ui a3, a3, 12 # fff: 321306 + call0 system_get_checksum # 1002: 050000 + mov a3, a12 /* [flashchip+0xc] */ # 1005: 3d0c + mov a4, sp /* (local0) */ # 1007: 4d01 + l8ui a9, sp, 0 /* [(local0)] */ # 1009: 920100 + movi a5, 28 /* 0x0000001c */ # 100c: 1cc5 + addx4 a9, a9, sp # 100e: 1099a0 + s32i a2, a9, 20 # 1011: 2959 + l32i a2, sp, 32 /* [(local4)] */ # 1013: 2881 + call0 .Lfunc008 # 1015: 05efff + l32i a12, sp, 40 /* [(local6)] */ # 1018: c8a1 + l32i a13, sp, 44 /* [(local7)] */ # 101a: d8b1 + l32i a0, sp, 36 /* [(local5)] */ # 101c: 0891 + addi sp, sp, 48 /* (top of frame) */ # 101e: 12c130 + ret # 1021: 0df0 + + .literal_position # 1024: 00000000 + # 1028: 00000000 + # 102c: 00000000 + # 1030: 00000000 + # 1034: 00000000 + +# Function @ .irom0.text+0x1038 +# Local variables/stack: +# (local0): byte[28] @ -0x30 +# (local1): word @ -0x14 +# (local2): word @ -0x10 +# (local3): word @ -0xc +# (local4): word[2] @ -0x8 + .balign 4 +.Lfunc009: movi a2, flashchip # 1038: 21fbff + addi sp, sp, -48 /* (local0) */ # 103b: 12c1d0 + s32i a12, sp, 32 /* a12 -> [(local2)] */ # 103e: c981 + s32i a13, sp, 36 /* a13 -> [(local3)] */ # 1040: d991 + s32i a14, sp, 40 /* a14 -> [(local4)] */ # 1042: e9a1 + s32i a0, sp, 28 /* a0 -> [(local1)] */ # 1044: 0971 + l32i a14, a2, 12 /* [flashchip+0xc] */ # 1046: e832 + l32i a2, a2, 4 /* [flashchip+0x4] */ # 1048: 2812 + mov a3, a14 /* [flashchip+0xc] */ # 104a: 3d0e + call0 __udivsi3 # 104c: 01f7ffc0 + # 1050: 0000 + addi a13, a2, -4 # 1052: d2c2fc + movi a2, 880 /* 0x00000370 */ # 1055: 22a370 + call0 malloc # 1058: 01f5ffc0 + # 105c: 0000 + mov a3, sp /* (local0) */ # 105e: 3d01 + mov a12, a2 # 1060: cd02 + movi a4, 28 /* 0x0000001c */ # 1062: 1cc4 + addi a2, a13, 3 # 1064: 3b2d + mull a2, a14, a2 # 1066: 202e82 + call0 spi_flash_read # 1069: 01f1ffc0 + # 106d: 0000 + movi a4, 880 /* 0x00000370 */ # 106f: 42a370 + l8ui a2, sp, 0 /* [(local0)] */ # 1072: 220100 + movi a3, 1 /* 0x00000001 */ # 1075: 0c13 + movnez a2, a3, a2 # 1077: 202393 + s8i a2, sp, 0 /* a2 -> [(local0)] */ # 107a: 224100 + mov a3, a12 # 107d: 3d0c + add a2, a13, a2 # 107f: 2a2d + addi a2, a2, 1 # 1081: 1b22 + mull a2, a14, a2 # 1083: 202e82 + call0 spi_flash_read # 1086: 01ebffc0 + # 108a: 0000 + l32i a0, sp, 28 /* [(local1)] */ # 108c: 0871 + l32i a13, sp, 36 /* [(local3)] */ # 108e: d891 + mov a2, a12 # 1090: 2d0c + l32i a14, sp, 40 /* [(local4)] */ # 1092: e8a1 + l32i a12, sp, 32 /* [(local2)] */ # 1094: c881 + addi sp, sp, 48 /* (top of frame) */ # 1096: 12c130 + ret # 1099: 0df0 + + .literal_position # 109c: 00000000 + # 10a0: 00000000 + # 10a4: 00000000 + # 10a8: 00000000 + # 10ac: 00000000 + # 10b0: 00000000 + # 10b4: 00000000 + +# Function @ .irom0.text+0x10b8 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word[4] @ -0x10 + .balign 4 +.Lfunc010: addi sp, sp, -32 /* (local0) */ # 10b8: 12c1e0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 10bb: c911 + s32i a15, sp, 16 /* a15 -> [(local4)] */ # 10bd: f941 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 10bf: 0901 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 10c1: d921 + s32i a14, sp, 12 /* a14 -> [(local3)] */ # 10c3: e931 + mov a13, a2 /* arg0 */ # 10c5: dd02 + mov a14, a3 /* arg1 */ # 10c7: ed03 + bnez a2, .Lbr122 # 10c9: cc32 + movi a2, 0 /* 0x00000000 */ # 10cb: 0c02 + j .Lbr128 # 10cd: 461c00 +.Lbr122: bnei a3, 1, .Lbr123 # 10d0: 661305 + movi a12, g_ic+0x1d8 # 10d3: c1f2ff + j .Lbr124 # 10d6: 060100 +.Lbr123: call0 .Lfunc009 # 10d9: c5f5ff + mov a12, a2 # 10dc: cd02 +.Lbr124: l32i a0, a12, 12 # 10de: 083c + addi a15, a12, 55 # 10e0: f2cc37 + bnei a0, -1, .Lbr125 # 10e3: 660013 + addi a2, a12, 12 # 10e6: cb2c + movi a3, 36 /* 0x00000024 */ # 10e8: 2c43 + call0 bzero # 10ea: 01edffc0 + # 10ee: 0000 + mov a2, a15 # 10f0: 2d0f + movi a3, 64 /* 0x00000040 */ # 10f2: 4c03 + call0 bzero # 10f4: 01ecffc0 + # 10f8: 0000 +.Lbr125: l8ui a2, a12, 169 # 10fa: 220ca9 + movi a3, 0 /* 0x00000000 */ # 10fd: 0c03 + bltui a2, 2, .Lbr126 # 10ff: b62202 + s8i a3, a12, 169 # 1102: 324ca9 +.Lbr126: mov a2, a13 /* arg0 */ # 1105: 2d0d + addi a3, a12, 16 # 1107: 32cc10 + movi a4, 32 /* 0x00000020 */ # 110a: 2c04 + call0 memcpy # 110c: 01e7ffc0 + # 1110: 0000 + mov a3, a15 # 1112: 3d0f + addi a2, a13, 32 /* arg0+0x20 */ # 1114: 22cd20 + movi a4, 64 /* 0x00000040 */ # 1117: 4c04 + call0 memcpy # 1119: 01e4ffc0 + # 111d: 0000 + addi a2, a13, 97 /* arg0+0x61 */ # 111f: 22cd61 + movi a3, 170 /* 0x000000aa */ # 1122: 32a0aa + l8ui a4, a12, 169 # 1125: 420ca9 + s8i a4, a13, 96 /* a4 -> [arg0+0x60] */ # 1128: 424d60 + add a3, a12, a3 # 112b: 3a3c + movi a4, 6 /* 0x00000006 */ # 112d: 0c64 + call0 memcpy # 112f: 01e0ffc0 + # 1133: 0000 + beqi a14, 1, .Lbr127 # 1135: 261e07 + mov a2, a12 # 1138: 2d0c + call0 free # 113a: 01deffc0 + # 113e: 0000 +.Lbr127: movi a2, 1 /* 0x00000001 */ # 1140: 0c12 +.Lbr128: l32i a12, sp, 4 /* [(local1)] */ # 1142: c811 + l32i a13, sp, 8 /* [(local2)] */ # 1144: d821 + l32i a14, sp, 12 /* [(local3)] */ # 1146: e831 + l32i a15, sp, 16 /* [(local4)] */ # 1148: f841 + l32i a0, sp, 0 /* [(local0)] */ # 114a: 0801 + addi sp, sp, 32 /* (top of frame) */ # 114c: 12c120 + ret # 114f: 0df0 + + .balign 4 +# Function @ .irom0.text+0x1154 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global wifi_station_get_config + .type wifi_station_get_config, @function +wifi_station_get_config: + movi a3, 1 /* 0x00000001 */ # 1154: 0c13 + addi sp, sp, -16 /* (local0) */ # 1156: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1159: 0901 + call0 .Lfunc010 # 115b: c5f5ff + l32i a0, sp, 0 /* [(local0)] */ # 115e: 0801 + addi sp, sp, 16 /* (top of frame) */ # 1160: 12c110 + ret # 1163: 0df0 + + .balign 4 +# Function @ .irom0.text+0x1168 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global wifi_station_get_config_default + .type wifi_station_get_config_default, @function +wifi_station_get_config_default: + movi a3, 0 /* 0x00000000 */ # 1168: 0c03 + addi sp, sp, -16 /* (local0) */ # 116a: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 116d: 0901 + call0 .Lfunc010 # 116f: 85f4ff + l32i a0, sp, 0 /* [(local0)] */ # 1172: 0801 + addi sp, sp, 16 /* (top of frame) */ # 1174: 12c110 + ret # 1177: 0df0 + + .literal_position # 117c: 00000000 + # 1180: 00000000 + # 1184: 00000000 + # 1188: 00000000 + # 118c: 00000000 + # 1190: 00000000 + # 1194: 00000000 + # 1198: 00000000 + +# Function @ .irom0.text+0x119c +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word @ -0x10 +# (local5): word @ -0xc +# (local6): word[2] @ -0x8 + .balign 4 + .global wifi_station_get_ap_info + .type wifi_station_get_ap_info, @function +wifi_station_get_ap_info: + movi a8, g_ic+0x280 # 119c: 81f8ff + addi sp, sp, -32 /* (local0) */ # 119f: 12c1e0 + s32i a13, sp, 12 /* a13 -> [(local3)] */ # 11a2: d931 + s32i a15, sp, 20 /* a15 -> [(local5)] */ # 11a4: f951 + s32i a14, sp, 16 /* a14 -> [(local4)] */ # 11a6: e941 + s32i a12, sp, 8 /* a12 -> [(local2)] */ # 11a8: c921 + s32i a8, sp, 24 /* g_ic+0x280 -> [(local6)] */ # 11aa: 8961 + l8ui a8, a8, 148 /* [g_ic+0x314] */ # 11ac: 820894 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 11af: 0911 + beqz a8, .Lbr131 # 11b1: 16a808 + movi a0, 255 /* 0x000000ff */ # 11b4: 02a0ff + movi a12, 0 /* 0x00000000 */ # 11b7: 0c0c + movi a14, 0 /* 0x00000000 */ # 11b9: 0c0e + s32i a2, sp, 0 /* arg0 -> [(local0)] */ # 11bb: 2901 + l32i a5, sp, 24 /* [(local6)] */ # 11bd: 5861 + movi a7, 100 /* 0x00000064 */ # 11bf: 72a064 + addi a5, a5, 28 /* [(local6)]+0x1c */ # 11c2: 52c51c +.Lbr129: mul16u a7, a12, a7 # 11c5: 707cc1 + add a9, a7, a5 # 11c8: 5a97 + l8ui a9, a9, 128 # 11ca: 920980 + beq a9, a0, .Lbr130 # 11cd: 071960 + movi a4, 32 /* 0x00000020 */ # 11d0: 2c04 + movi a3, 796 /* 0x0000031c */ # 11d2: 32a31c + movi a15, g_ic # 11d5: f1eaff + l32i a0, sp, 0 /* [(local0)] */ # 11d8: 0801 + movi a13, 103 /* 0x00000067 */ # 11da: d2a067 + mul16u a13, a14, a13 # 11dd: d0dec1 + add a13, a13, a0 # 11e0: 0add + add a15, a7, a15 # 11e2: faf7 + add a3, a15, a3 # 11e4: 3a3f + mov a2, a13 # 11e6: 2d0d + call0 memcpy # 11e8: 01eaffc0 + # 11ec: 0000 + addi a2, a13, 32 # 11ee: 22cd20 + movi a4, 64 /* 0x00000040 */ # 11f1: 4c04 + movi a3, 828 /* 0x0000033c */ # 11f3: 32a33c + add a3, a15, a3 # 11f6: 3a3f + call0 memcpy # 11f8: 01e7ffc0 + # 11fc: 0000 + addi a2, a13, 97 # 11fe: 22cd61 + subx8 a15, a12, a12 # 1201: c0fcf0 + movi a3, g_ic # 1204: 31e0ff + movi a4, 1313 /* 0x00000521 */ # 1207: 42a521 + add a3, a3, a4 /* g_ic+0x521 */ # 120a: 4a33 + add a3, a15, a3 # 120c: 3a3f + movi a4, 6 /* 0x00000006 */ # 120e: 0c64 + call0 memcpy # 1210: 01e2ffc0 + # 1214: 0000 + movi a0, 255 /* 0x000000ff */ # 1216: 02a0ff + movi a5, g_ic+0x29c # 1219: 51dbff + l32i a8, sp, 24 /* [(local6)] */ # 121c: 8861 + addi a14, a14, 1 # 121e: 1bee + movi a6, g_ic+0x4a0 # 1220: 61dbff + extui a14, a14, 0, 8 # 1223: e0e074 + add a2, a15, a6 # 1226: 6a2f + l8ui a2, a2, 128 # 1228: 220280 + s8i a2, a13, 96 # 122b: 224d60 + l8ui a8, a8, 148 /* [[(local6)]+0x94] */ # 122e: 820894 +.Lbr130: movi a7, 100 /* 0x00000064 */ # 1231: 72a064 + addi a12, a12, 1 # 1234: 1bcc + extui a12, a12, 0, 8 # 1236: c0c074 + bltu a12, a8, .Lbr129 # 1239: 873c88 + j .Lbr132 # 123c: 460000 +.Lbr131: movi a14, 0 /* 0x00000000 */ # 123f: 0c0e +.Lbr132: l32i a0, sp, 4 /* [(local1)] */ # 1241: 0811 + l32i a12, sp, 8 /* [(local2)] */ # 1243: c821 + l32i a13, sp, 12 /* [(local3)] */ # 1245: d831 + mov a2, a14 # 1247: 2d0e + l32i a15, sp, 20 /* [(local5)] */ # 1249: f851 + l32i a14, sp, 16 /* [(local4)] */ # 124b: e841 + addi sp, sp, 32 /* (top of frame) */ # 124d: 12c120 + ret # 1250: 0df0 + + .literal_position # 1254: 00000000 + # 1258: 00000000 + +# Function @ .irom0.text+0x125c +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global wifi_station_ap_number_set + .type wifi_station_ap_number_set, @function +wifi_station_ap_number_set: + addi sp, sp, -16 /* (local0) */ # 125c: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 125f: c911 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1261: 0901 + mov a12, a2 /* arg0 */ # 1263: cd02 + bgeui a2, 6, .Lbr135 # 1265: f66224 + beqz a2, .Lbr135 # 1268: ac12 + call0 wifi_get_opmode # 126a: 050000 + beqi a2, 2, .Lbr135 # 126d: 26221c + movi a0, g_ic+0x294 # 1270: 01f9ff + l8ui a2, a0, 128 /* [g_ic+0x314] */ # 1273: 220080 + beq a2, a12, .Lbr133 # 1276: c71208 + movi a2, g_ic+0x1d8 # 1279: 21f7ff + s8i a12, a0, 128 /* arg0 -> [g_ic+0x314] */ # 127c: c24080 + call0 wifi_param_save_protect # 127f: 050000 +.Lbr133: movi a2, 1 /* 0x00000001 */ # 1282: 0c12 +.Lbr134: l32i a12, sp, 4 /* [(local1)] */ # 1284: c811 + l32i a0, sp, 0 /* [(local0)] */ # 1286: 0801 + addi sp, sp, 16 /* (top of frame) */ # 1288: 12c110 + ret # 128b: 0df0 +.Lbr135: movi a2, 0 /* 0x00000000 */ # 128d: 0c02 + j .Lbr134 # 128f: 46fcff + + .literal_position # 1294: 00000000 + # 1298: 00000000 + # 129c: 00000000 + # 12a0: 00000000 + # 12a4: 00000000 + # 12a8: 00000100 + # 12ac: 000e0060 + # 12b0: 00000000 + # 12b4: 00000000 + # 12b8: 00000000 + # 12bc: 00000000 + # 12c0: 00000000 + # 12c4: 00000000 + # 12c8: 00000000 + # 12cc: 00000000 + # 12d0: 00000000 + # 12d4: 00000000 + # 12d8: 00000000 + +# Function @ .irom0.text+0x12dc +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word @ -0x10 +# (local5): word @ -0xc +# (local6): word @ -0x8 +# (local7): word @ -0x4 + .balign 4 +.Lfunc011: addi sp, sp, -32 /* (local0) */ # 12dc: 12c1e0 + s32i a13, sp, 16 /* a13 -> [(local4)] */ # 12df: d941 + s32i a4, sp, 0 /* arg2 -> [(local0)] */ # 12e1: 4901 + s32i a0, sp, 8 /* a0 -> [(local2)] */ # 12e3: 0921 + s32i a14, sp, 20 /* a14 -> [(local5)] */ # 12e5: e951 + s32i a12, sp, 12 /* a12 -> [(local3)] */ # 12e7: c931 + s32i a15, sp, 24 /* a15 -> [(local6)] */ # 12e9: f961 + mov a12, a2 /* arg0 */ # 12eb: cd02 + movi a15, g_ic+0x295 # 12ed: f1e9ff + mov a14, a3 /* arg1 */ # 12f0: ed03 + s8i a3, a15, 128 /* arg1 -> [g_ic+0x315] */ # 12f2: 324f80 + call0 strlen # 12f5: 01f2ffc0 + # 12f9: 0000 + movi a0, 32 /* 0x00000020 */ # 12fb: 2c00 + movi a3, g_ic # 12fd: 31e6ff + movi a13, 100 /* 0x00000064 */ # 1300: d2a064 + mul16s a13, a13, a14 # 1303: e0ddd1 + add a13, a3, a13 # 1306: dad3 + bltu a0, a2, .Lbr136 # 1308: 273001 + mov a0, a2 # 130b: 0d02 +.Lbr136: mov a3, a12 /* arg0 */ # 130d: 3d0c + movi a4, 32 /* 0x00000020 */ # 130f: 2c04 + s32i a0, a13, 0x318 # 1311: 026dc6 + movi a2, 796 /* 0x0000031c */ # 1314: 22a31c + add a2, a13, a2 # 1317: 2a2d + call0 memcpy # 1319: 01eaffc0 + # 131d: 0000 + movi a4, 64 /* 0x00000040 */ # 131f: 4c04 + addi a3, a12, 32 /* arg0+0x20 */ # 1321: 32cc20 + movi a2, 828 /* 0x0000033c */ # 1324: 22a33c + add a2, a13, a2 # 1327: 2a2d + s32i a3, sp, 4 /* arg0+0x20 -> [(local1)] */ # 1329: 3911 + call0 memcpy # 132b: 01e7ffc0 + # 132f: 0000 + movi a2, g_ic+0x1e8 # 1331: 21dbff + l32i a3, a13, 0x318 # 1334: 322dc6 + movi a4, g_ic+0xc0 # 1337: 41d9ff + s32i a4, sp, 28 /* g_ic+0xc0 -> [(local7)] */ # 133a: 4971 + s32i a3, a4, 0x124 /* a3 -> [g_ic+0x1e4] */ # 133c: 326449 + mov a3, a12 /* arg0 */ # 133f: 3d0c + movi a4, 32 /* 0x00000020 */ # 1341: 2c04 + call0 memcpy # 1343: 01e2ffc0 + # 1347: 0000 + l32i a3, sp, 4 /* [(local1)] */ # 1349: 3811 + movi a2, g_ic+0x20f # 134b: 21d6ff + movi a4, 64 /* 0x00000040 */ # 134e: 4c04 + l32i a13, sp, 28 /* [(local7)] */ # 1350: d871 + call0 memcpy # 1352: 01dfffc0 + # 1356: 0000 + addmi a6, a15, -256 /* g_ic+0x195 */ # 1358: 62dfff + movi a3, 0 /* 0x00000000 */ # 135b: 0c03 + addmi a7, a13, 256 /* [(local7)]+0x100 */ # 135d: 72dd01 + movi a2, 1 /* 0x00000001 */ # 1360: 0c12 + s8i a2, a7, 78 /* 0x01 -> [[(local7)]+0x14e] */ # 1362: 22474e + s8i a3, a6, 186 /* 0x00 -> [g_ic+0x24f] */ # 1365: 3246ba + movi a4, 0x00010000 # 1368: 41d0ff + movi a5, 0x60000e00 # 136b: 51d0ff + memw # 136e: c02000 + movi a0, g_ic+0x4a0 # 1371: 01cfff + subx8 a13, a14, a14 # 1374: e0def0 + s32i a4, a5, 0x3f4 /* 0x00010000 -> [0x600011f4] */ # 1377: 4265fd + l8ui a5, a12, 96 /* [arg0+0x60] */ # 137a: 520c60 + add a0, a13, a0 # 137d: 0a0d + bnei a5, 1, .Lbr137 # 137f: 66152f + movi a4, 6 /* 0x00000006 */ # 1382: 0c64 + addi a12, a12, 97 /* arg0+0x61 */ # 1384: c2cc61 + addmi a8, a15, -256 /* g_ic+0x195 */ # 1387: 82dfff + s8i a2, a8, 236 /* 0x01 -> [g_ic+0x281] */ # 138a: 2248ec + mov a3, a12 /* arg0+0x61 */ # 138d: 3d0c + s8i a2, a0, 128 # 138f: 224080 + movi a2, g_ic+0x282 # 1392: 21c8ff + call0 memcpy # 1395: 01cfffc0 + # 1399: 0000 + movi a3, 1313 /* 0x00000521 */ # 139b: 32a521 + movi a2, g_ic # 139e: 21c6ff + movi a4, 6 /* 0x00000006 */ # 13a1: 0c64 + add a2, a2, a3 /* g_ic+0x521 */ # 13a3: 3a22 + mov a3, a12 /* arg0+0x61 */ # 13a5: 3d0c + add a2, a13, a2 # 13a7: 2a2d + call0 memcpy # 13a9: 01cbffc0 + # 13ad: 0000 + j .Lbr138 # 13af: 060200 +.Lbr137: addmi a4, a15, -256 /* g_ic+0x195 */ # 13b2: 42dfff + s8i a3, a4, 236 /* 0x00 -> [g_ic+0x281] */ # 13b5: 3244ec + s8i a3, a0, 128 # 13b8: 324080 +.Lbr138: l32i a5, sp, 0 /* [(local0)] */ # 13bb: 5801 + bnei a5, 1, .Lbr139 # 13bd: 661505 + movi a2, g_ic+0x1d8 # 13c0: 21bfff + call0 wifi_param_save_protect # 13c3: 050000 +.Lbr139: l32i a12, sp, 12 /* [(local3)] */ # 13c6: c831 + l32i a13, sp, 16 /* [(local4)] */ # 13c8: d841 + l32i a14, sp, 20 /* [(local5)] */ # 13ca: e851 + l32i a15, sp, 24 /* [(local6)] */ # 13cc: f861 + l32i a0, sp, 8 /* [(local2)] */ # 13ce: 0821 + addi sp, sp, 32 /* (top of frame) */ # 13d0: 12c120 + ret # 13d3: 0df0 + + .literal_position # 13d8: 30010000 + # 13dc: 23000000 + # 13e0: 00000000 + # 13e4: 00000000 + # 13e8: 00000000 + # 13ec: 00000000 + # 13f0: 00000000 + # 13f4: 00000000 + # 13f8: 00000000 + # 13fc: 00000000 + +# Function @ .irom0.text+0x1400 +# Local variables/stack: +# (local0): word @ -0x30 +# (local1): word @ -0x2c +# (local2): word @ -0x28 +# (local3): word @ -0x24 +# (local4): word @ -0x20 +# (local5): word @ -0x1c +# (local6): word @ -0x18 +# (local7): word @ -0x14 +# (local8): word[4] @ -0x10 + .balign 4 +.Lfunc012: addi sp, sp, -48 /* (local0) */ # 1400: 12c1d0 + s32i a13, sp, 24 /* a13 -> [(local6)] */ # 1403: d961 + s32i a15, sp, 32 /* a15 -> [(local8)] */ # 1405: f981 + s32i a0, sp, 16 /* a0 -> [(local4)] */ # 1407: 0941 + s32i a12, sp, 20 /* a12 -> [(local5)] */ # 1409: c951 + s32i a14, sp, 28 /* a14 -> [(local7)] */ # 140b: e971 + mov a12, a3 /* arg1 */ # 140d: cd03 + mov a14, a2 /* arg0 */ # 140f: ed02 + beqz a2, .Lbr140 # 1411: 8c42 + call0 wifi_get_opmode # 1413: 050000 + bnei a2, 2, .Lbr145 # 1416: 662234 +.Lbr140: movi a2, 0 /* 0x00000000 */ # 1419: 0c02 + j .Lbr144 # 141b: 060800 +.Lbr141: movi a15, .Ldata011 # 141e: f1eeff + l8ui a3, a15, 0 /* [.Ldata011] */ # 1421: 320f00 + l32i a12, sp, 8 /* [(local2)] */ # 1424: c821 + bne a13, a3, .Lbr142 # 1426: 379d04 + movi a3, 0 /* 0x00000000 */ # 1429: 0c03 + s8i a3, a15, 0 /* 0x00 -> [.Ldata011] */ # 142b: 324f00 +.Lbr142: mov a4, a12 /* [(local2)] */ # 142e: 4d0c + mov a2, a14 /* arg0 */ # 1430: 2d0e + call0 .Lfunc011 # 1432: 85eaff + l8ui a0, a15, 0 /* [.Ldata011] */ # 1435: 020f00 + addi a0, a0, 1 /* [.Ldata011]+0x1 */ # 1438: 1b00 + s8i a0, a15, 0 /* [.Ldata011]+0x1 -> [.Ldata011] */ # 143a: 024f00 +.Lbr143: movi a2, 1 /* 0x00000001 */ # 143d: 0c12 +.Lbr144: l32i a12, sp, 20 /* [(local5)] */ # 143f: c851 + l32i a13, sp, 24 /* [(local6)] */ # 1441: d861 + l32i a14, sp, 28 /* [(local7)] */ # 1443: e871 + l32i a15, sp, 32 /* [(local8)] */ # 1445: f881 + l32i a0, sp, 16 /* [(local4)] */ # 1447: 0841 + addi sp, sp, 48 /* (top of frame) */ # 1449: 12c130 + ret # 144c: 0df0 +.Lbr145: movi a2, 3 /* 0x00000003 */ # 144e: 0c32 + call0 .Lfunc001 # 1450: 45bffe + bnei a2, -1, .Lbr146 # 1453: 660210 + mov a3, a14 /* arg0 */ # 1456: 3d0e + movi a2, .Ldata006 # 1458: 21e1ff + movi a4, 103 /* 0x00000067 */ # 145b: 42a067 + call0 memcpy # 145e: 01e4ffc0 + # 1462: 0000 + j .Lbr143 # 1464: 46f5ff +.Lbr146: movi a0, g_ic+0x294 # 1467: 01deff + l8ui a13, a0, 128 /* [g_ic+0x314] */ # 146a: d20080 + s32i a12, sp, 8 /* arg1 -> [(local2)] */ # 146d: c921 + beqz a13, .Lbr141 # 146f: 16bdfa + movi a12, 0 /* 0x00000000 */ # 1472: 0c0c + s32i a0, sp, 0 /* g_ic+0x294 -> [(local0)] */ # 1474: 0901 + addi a6, a14, 97 /* arg0+0x61 */ # 1476: 62ce61 + addi a7, a14, 32 /* arg0+0x20 */ # 1479: 72ce20 + s32i a7, sp, 12 /* arg0+0x20 -> [(local3)] */ # 147c: 7931 + s32i a6, sp, 4 /* arg0+0x61 -> [(local1)] */ # 147e: 6911 +.Lbr147: mov a3, a14 /* arg0 */ # 1480: 3d0e + movi a4, 32 /* 0x00000020 */ # 1482: 2c04 + movi a2, 796 /* 0x0000031c */ # 1484: 22a31c + movi a15, g_ic # 1487: f1d7ff + movi a0, 100 /* 0x00000064 */ # 148a: 02a064 + mul16u a0, a12, a0 # 148d: 000cc1 + add a15, a15, a0 # 1490: 0aff + add a2, a15, a2 # 1492: 2a2f + call0 memcmp # 1494: 01d8ffc0 + # 1498: 0000 + bnez a2, .Lbr149 # 149a: 569204 + l32i a3, sp, 12 /* [(local3)] */ # 149d: 3831 + movi a4, 64 /* 0x00000040 */ # 149f: 4c04 + movi a2, 828 /* 0x0000033c */ # 14a1: 22a33c + add a2, a15, a2 # 14a4: 2a2f + call0 memcmp # 14a6: 01d4ffc0 + # 14aa: 0000 + bnez a2, .Lbr149 # 14ac: fc72 + l8ui a3, a14, 96 /* [arg0+0x60] */ # 14ae: 320e60 + movi a0, 1 /* 0x00000001 */ # 14b1: 0c10 + bnei a3, 1, .Lbr148 # 14b3: 661320 + subx8 a3, a12, a12 # 14b6: c03cf0 + movi a2, g_ic # 14b9: 21cbff + movi a4, 6 /* 0x00000006 */ # 14bc: 0c64 + add a2, a2, a3 # 14be: 3a22 + movi a3, 1313 /* 0x00000521 */ # 14c0: 32a521 + add a2, a2, a3 # 14c3: 3a22 + l32i a3, sp, 4 /* [(local1)] */ # 14c5: 3811 + call0 memcmp # 14c7: 01cdffc0 + # 14cb: 0000 + movi a4, 1 /* 0x00000001 */ # 14cd: 0c14 + movi a0, 0 /* 0x00000000 */ # 14cf: 0c00 + moveqz a0, a4, a2 # 14d1: 200483 + j .Lbr148 # 14d4: c6ffff +.Lbr148: beqz a0, .Lbr149 # 14d7: 8cc0 + l32i a5, sp, 0 /* [(local0)] */ # 14d9: 5801 + l8ui a5, a5, 129 /* [[(local0)]+0x81] */ # 14db: 520581 + extui a6, a12, 0, 8 # 14de: c06074 + sub a5, a5, a6 # 14e1: 6055c0 + beqz a5, .Lbr143 # 14e4: 1655f5 +.Lbr149: addi a12, a12, 1 # 14e7: 1bcc + extui a12, a12, 0, 8 # 14e9: c0c074 + bne a13, a12, .Lbr147 # 14ec: c79d90 + beqz a13, .Lbr141 # 14ef: 16bdf2 + movi a0, 255 /* 0x000000ff */ # 14f2: 02a0ff + movi a2, g_ic+0x29c # 14f5: 21bdff + movi a12, 0 /* 0x00000000 */ # 14f8: 0c0c +.Lbr150: movi a15, 100 /* 0x00000064 */ # 14fa: f2a064 + mul16u a15, a12, a15 # 14fd: f0fcc1 + add a15, a2, a15 # 1500: faf2 + l8ui a15, a15, 128 # 1502: f20f80 + bne a15, a0, .Lbr151 # 1505: 079f0b + mov a3, a12 # 1508: 3d0c + mov a2, a14 /* arg0 */ # 150a: 2d0e + l32i a4, sp, 8 /* [(local2)] */ # 150c: 4821 + call0 .Lfunc011 # 150e: c5dcff + j .Lbr143 # 1511: 06caff +.Lbr151: addi a12, a12, 1 # 1514: 1bcc + extui a12, a12, 0, 8 # 1516: c0c074 + bne a13, a12, .Lbr150 # 1519: c79ddd + j .Lbr141 # 151c: 86bfff + + .balign 4 +# Function @ .irom0.text+0x1520 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global wifi_station_set_config + .type wifi_station_set_config, @function +wifi_station_set_config: + movi a3, 1 /* 0x00000001 */ # 1520: 0c13 + addi sp, sp, -16 /* (local0) */ # 1522: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1525: 0901 + call0 .Lfunc012 # 1527: 85edff + l32i a0, sp, 0 /* [(local0)] */ # 152a: 0801 + addi sp, sp, 16 /* (top of frame) */ # 152c: 12c110 + ret # 152f: 0df0 + + .balign 4 +# Function @ .irom0.text+0x1534 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global wifi_station_set_config_current + .type wifi_station_set_config_current, @function +wifi_station_set_config_current: + movi a3, 0 /* 0x00000000 */ # 1534: 0c03 + addi sp, sp, -16 /* (local0) */ # 1536: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1539: 0901 + call0 .Lfunc012 # 153b: 45ecff + l32i a0, sp, 0 /* [(local0)] */ # 153e: 0801 + addi sp, sp, 16 /* (top of frame) */ # 1540: 12c110 + ret # 1543: 0df0 + + .literal_position # 1548: 00000000 + +# Function @ .irom0.text+0x154c + .balign 4 + .global wifi_station_get_current_ap_id + .type wifi_station_get_current_ap_id, @function +wifi_station_get_current_ap_id: + movi a2, g_ic+0x295 # 154c: 21ffff + l8ui a2, a2, 128 /* [g_ic+0x315] */ # 154f: 220280 + movi a3, 255 /* 0x000000ff */ # 1552: 32a0ff + beq a2, a3, .Lbr152 # 1555: 371201 + ret /* [g_ic+0x315] */ # 1558: 0df0 +.Lbr152: movi a2, 0 /* 0x00000000 */ # 155a: 0c02 + ret /* 0x00000000 */ # 155c: 0df0 + + .literal_position # 1560: 00000000 + +# Function @ .irom0.text+0x1564 + .balign 4 + .global wifi_station_ap_check + .type wifi_station_ap_check, @function +wifi_station_ap_check: + blti a2, 1, .Lbr154 # 1564: a61222 + movi a8, 255 /* 0x000000ff */ # 1567: 82a0ff + movi a9, 200 /* 0x000000c8 */ # 156a: 92a0c8 + movi a6, 0 /* 0x00000000 */ # 156d: 0c06 + movi a5, g_ic+0x29c # 156f: 51fcff + movi a7, 100 /* 0x00000064 */ # 1572: 72a064 + mul16s a7, a7, a2 # 1575: 2077d1 + add a7, a7, a5 # 1578: 5a77 +.Lbr153: l8ui a10, a5, 128 # 157a: a20580 + addi a6, a6, 2 # 157d: 2b66 + bne a10, a8, .Lbr157 # 157f: 879a10 + add a5, a5, a9 # 1582: 9a55 + bltu a5, a7, .Lbr153 # 1584: 7735f2 + j .Lbr155 # 1587: 460000 +.Lbr154: movi a6, 0 /* 0x00000000 */ # 158a: 0c06 +.Lbr155: bne a6, a2, .Lbr156 # 158c: 279601 + movi a2, 0 /* 0x00000000 */ # 158f: 0c02 +.Lbr156: ret # 1591: 0df0 +.Lbr157: movi a2, 1 /* 0x00000001 */ # 1593: 0c12 + ret /* 0x00000001 */ # 1595: 0df0 + + .literal_position # 1598: 00000000 + # 159c: 00000000 + # 15a0: 64010000 + # 15a4: 00000000 + # 15a8: 00000000 + # 15ac: 00000000 + # 15b0: 00000000 + # 15b4: 00000100 + # 15b8: 000e0060 + # 15bc: 00000000 + # 15c0: 00000000 + # 15c4: 00000000 + # 15c8: 00000000 + # 15cc: 00000000 + # 15d0: 00000000 + # 15d4: 00000000 + +# Function @ .irom0.text+0x15d8 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word @ -0x10 +# (local5): word[3] @ -0xc + .balign 4 + .global wifi_station_ap_change + .type wifi_station_ap_change, @function +wifi_station_ap_change: + addi sp, sp, -32 /* (local0) */ # 15d8: 12c1e0 + s32i a0, sp, 8 /* a0 -> [(local2)] */ # 15db: 0921 + s32i a13, sp, 16 /* a13 -> [(local4)] */ # 15dd: d941 + s32i a14, sp, 20 /* a14 -> [(local5)] */ # 15df: e951 + s32i a12, sp, 12 /* a12 -> [(local3)] */ # 15e1: c931 + movi a14, g_ic+0x294 # 15e3: e1edff + mov a12, a2 /* arg0 */ # 15e6: cd02 + l8ui a13, a14, 128 /* [g_ic+0x314] */ # 15e8: d20e80 + call0 wifi_get_opmode # 15eb: 050000 + beqi a2, 2, .Lbr159 # 15ee: 262235 + bgeu a12, a13, .Lbr159 # 15f1: d7bc32 + mov a2, a13 /* [g_ic+0x314] */ # 15f4: 2d0d + call0 wifi_station_ap_check # 15f6: 050000 + beqz a2, .Lbr159 # 15f9: aca2 + movi a0, g_ic+0x29c # 15fb: 01e8ff + movi a13, 100 /* 0x00000064 */ # 15fe: d2a064 + mul16s a13, a13, a12 # 1601: c0ddd1 + s32i a13, sp, 4 /* a13 -> [(local1)] */ # 1604: d911 + add a13, a13, a0 # 1606: 0add + l8ui a0, a13, 128 # 1608: 020d80 + movi a2, 255 /* 0x000000ff */ # 160b: 22a0ff + beq a0, a2, .Lbr159 # 160e: 271015 + movi a2, .Lstr016 # 1611: 21e3ff + mov a3, a12 /* arg0 */ # 1614: 3d0c + call0 printf # 1616: 01ecffc0 + # 161a: 0000 + l8ui a0, a14, 129 /* [g_ic+0x315] */ # 161c: 020e81 + bne a0, a12, .Lbr161 # 161f: c79013 +.Lbr158: movi a2, 1 /* 0x00000001 */ # 1622: 0c12 + j .Lbr160 # 1624: 460000 +.Lbr159: movi a2, 0 /* 0x00000000 */ # 1627: 0c02 +.Lbr160: l32i a12, sp, 12 /* [(local3)] */ # 1629: c831 + l32i a13, sp, 16 /* [(local4)] */ # 162b: d841 + l32i a14, sp, 20 /* [(local5)] */ # 162d: e851 + l32i a0, sp, 8 /* [(local2)] */ # 162f: 0821 + addi sp, sp, 32 /* (top of frame) */ # 1631: 12c120 + ret # 1634: 0df0 +.Lbr161: movi a4, 32 /* 0x00000020 */ # 1636: 2c04 + movi a0, g_ic # 1638: 01dcff + s8i a12, a14, 129 /* arg0 -> [g_ic+0x315] */ # 163b: c24e81 + movi a3, g_ic+0xc0 # 163e: 31d9ff + s32i a3, sp, 0 /* g_ic+0xc0 -> [(local0)] */ # 1641: 3901 + l32i a2, a13, 124 # 1643: 222d1f + s32i a2, a3, 0x124 /* a2 -> [g_ic+0x1e4] */ # 1646: 226349 + l32i a13, sp, 4 /* [(local1)] */ # 1649: d811 + movi a2, g_ic+0x1e8 # 164b: 21d8ff + movi a3, 796 /* 0x0000031c */ # 164e: 32a31c + add a13, a13, a0 # 1651: 0add + add a3, a13, a3 # 1653: 3a3d + call0 memcpy # 1655: 01ddffc0 + # 1659: 0000 + movi a2, g_ic+0x20f # 165b: 21d5ff + movi a4, 64 /* 0x00000040 */ # 165e: 4c04 + movi a3, 828 /* 0x0000033c */ # 1660: 32a33c + add a3, a13, a3 # 1663: 3a3d + call0 memcpy # 1665: 01daffc0 + # 1669: 0000 + movi a11, 1 /* 0x00000001 */ # 166b: 0c1b + addmi a10, a14, -256 /* g_ic+0x194 */ # 166d: a2deff + l32i a13, sp, 0 /* [(local0)] */ # 1670: d801 + movi a9, 0 /* 0x00000000 */ # 1672: 0c09 + addmi a13, a13, 256 /* [(local0)]+0x100 */ # 1674: d2dd01 + s8i a9, a10, 187 /* 0x00 -> [g_ic+0x24f] */ # 1677: 924abb + s8i a11, a13, 78 /* 0x01 -> [[(local0)]+0x14e] */ # 167a: b24d4e + movi a7, 0x00010000 # 167d: 71cdff + movi a8, 0x60000e00 # 1680: 81ceff + memw # 1683: c02000 + movi a2, g_ic+0x282 # 1686: 21cfff + movi a6, g_ic+0x4a0 # 1689: 61ccff + subx8 a3, a12, a12 # 168c: c03cf0 + movi a5, 1313 /* 0x00000521 */ # 168f: 52a521 + s32i a7, a8, 0x3f4 /* 0x00010000 -> [0x600011f4] */ # 1692: 7268fd + movi a4, g_ic # 1695: 41caff + addmi a7, a14, -256 /* g_ic+0x194 */ # 1698: 72deff + add a4, a4, a5 /* g_ic+0x521 */ # 169b: 5a44 + add a6, a3, a6 # 169d: 6a63 + l8ui a6, a6, 128 # 169f: 620680 + add a3, a3, a4 # 16a2: 4a33 + s8i a6, a7, 237 /* a6 -> [g_ic+0x281] */ # 16a4: 6247ed + movi a4, 6 /* 0x00000006 */ # 16a7: 0c64 + call0 memcpy # 16a9: 01caffc0 + # 16ad: 0000 + call0 wifi_station_disconnect # 16af: 050000 + call0 wifi_station_connect # 16b2: 050000 + j .Lbr158 # 16b5: 46daff + + .literal_position # 16b8: 00000000 + # 16bc: 00000000 + # 16c0: 00000000 + # 16c4: 00000000 + +# Function @ .irom0.text+0x16c8 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word @ -0x8 +# (local3): word @ -0x4 + .balign 4 + .global wifi_station_scan + .type wifi_station_scan, @function +wifi_station_scan: + addi sp, sp, -16 /* (local0) */ # 16c8: 12c1f0 + s32i a0, sp, 12 /* a0 -> [(local3)] */ # 16cb: 0931 + s32i a2, sp, 0 /* arg0 -> [(local0)] */ # 16cd: 2901 + movi a0, g_ic # 16cf: 01faff + s32i a3, sp, 4 /* arg1 -> [(local1)] */ # 16d2: 3911 + l32i a0, a0, 16 /* [g_ic+0x10] */ # 16d4: 0840 + s32i a0, sp, 8 /* [g_ic+0x10] -> [(local2)] */ # 16d6: 0921 + call0 wifi_get_opmode # 16d8: 050000 + beqi a2, 2, .Lbr163 # 16db: 262221 + l32i a2, sp, 8 /* [(local2)] */ # 16de: 2821 + beqz a2, .Lbr163 # 16e0: 9cc2 + l32i a2, sp, 0 /* [(local0)] */ # 16e2: 2801 + movi a5, scannum # 16e4: 51f6ff + movi a4, 0 /* 0x00000000 */ # 16e7: 0c04 + l32i a3, sp, 4 /* [(local1)] */ # 16e9: 3811 + s16i a4, a5, 0 /* 0x0000 -> [scannum] */ # 16eb: 425500 + movi a4, g_ic+0x180 # 16ee: 41f4ff + call0 cnx_sta_scan_cmd # 16f1: 01f4ffc0 + # 16f5: 0000 + movi a2, 1 /* 0x00000001 */ # 16f7: 0c12 +.Lbr162: l32i a0, sp, 12 /* [(local3)] */ # 16f9: 0831 + addi sp, sp, 16 /* (top of frame) */ # 16fb: 12c110 + ret # 16fe: 0df0 +.Lbr163: movi a2, 0 /* 0x00000000 */ # 1700: 0c02 + j .Lbr162 # 1702: c6fcff + + .literal_position # 1708: 00000000 + +# Function @ .irom0.text+0x170c + .balign 4 + .global wifi_station_get_auto_connect + .type wifi_station_get_auto_connect, @function +wifi_station_get_auto_connect: + movi a3, g_ic+0x498 # 170c: 31ffff + l8ui a3, a3, 128 /* [g_ic+0x518] */ # 170f: 320380 + movi a4, 1 /* 0x00000001 */ # 1712: 0c14 + bgeui a3, 2, .Lbr164 # 1714: f62301 + mov a4, a3 /* [g_ic+0x518] */ # 1717: 4d03 +.Lbr164: extui a2, a4, 0, 8 # 1719: 402074 + ret # 171c: 0df0 + + .literal_position # 1720: 00000000 + # 1724: 00000000 + +# Function @ .irom0.text+0x1728 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global wifi_station_set_auto_connect + .type wifi_station_set_auto_connect, @function +wifi_station_set_auto_connect: + addi sp, sp, -16 /* (local0) */ # 1728: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 172b: c911 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 172d: 0901 + mov a12, a2 /* arg0 */ # 172f: cd02 + bgeui a2, 2, .Lbr165 # 1731: f62205 + call0 wifi_get_opmode # 1734: 050000 + bnei a2, 2, .Lbr166 # 1737: 662204 +.Lbr165: movi a2, 0 /* 0x00000000 */ # 173a: 0c02 + j .Lbr168 # 173c: c60400 +.Lbr166: movi a0, g_ic+0x498 # 173f: 01f8ff + l8ui a2, a0, 128 /* [g_ic+0x518] */ # 1742: 220080 + beq a2, a12, .Lbr167 # 1745: c71208 + movi a2, g_ic+0x1d8 # 1748: 21f7ff + s8i a12, a0, 128 /* arg0 -> [g_ic+0x518] */ # 174b: c24080 + call0 wifi_param_save_protect # 174e: 050000 +.Lbr167: movi a2, 1 /* 0x00000001 */ # 1751: 0c12 +.Lbr168: l32i a12, sp, 4 /* [(local1)] */ # 1753: c811 + l32i a0, sp, 0 /* [(local0)] */ # 1755: 0801 + addi sp, sp, 16 /* (top of frame) */ # 1757: 12c110 + ret # 175a: 0df0 + + .literal_position # 175c: 00000000 + # 1760: 00000000 + # 1764: 0000ffff + # 1768: 000e0060 + # 176c: 00000000 + # 1770: 00000000 + # 1774: 00000000 + # 1778: 00000000 + +# Function @ .irom0.text+0x177c +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global wifi_station_connect + .type wifi_station_connect, @function +wifi_station_connect: + addi sp, sp, -16 /* (local0) */ # 177c: 12c1f0 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 177f: 0911 + movi a0, g_ic # 1781: 01f6ff + l32i a0, a0, 16 /* [g_ic+0x10] */ # 1784: 0840 + s32i a0, sp, 0 /* [g_ic+0x10] -> [(local0)] */ # 1786: 0901 + call0 wifi_get_opmode # 1788: 050000 + beqi a2, 2, .Lbr169 # 178b: 262254 + l32i a2, sp, 0 /* [(local0)] */ # 178e: 2801 + beqz a2, .Lbr169 # 1790: 16f204 + movi a2, 2 /* 0x00000002 */ # 1793: 0c22 + call0 .Lfunc001 # 1795: 058bfe + beqi a2, -1, .Lbr171 # 1798: 260254 + movi a0, g_ic # 179b: 01f1ff + l32i a4, a0, 16 /* [g_ic+0x10] */ # 179e: 4840 + movi a2, 0 /* 0x00000000 */ # 17a0: 0c02 + s8i a2, a4, 184 /* 0x00 -> [[g_ic+0x10]+0xb8] */ # 17a2: 2244b8 + l32i a3, a0, 16 /* [g_ic+0x10] */ # 17a5: 3840 + s8i a2, a3, 185 /* 0x00 -> [[g_ic+0x10]+0xb9] */ # 17a7: 2243b9 + l32i a0, a0, 0x1e4 /* [g_ic+0x1e4] */ # 17aa: 022079 + beqi a0, -1, .Lbr171 # 17ad: 26003f + beqz a0, .Lbr171 # 17b0: bcc0 + movi a6, 0xffff0000 # 17b2: 61ecff + movi a3, 0x60000e00 # 17b5: 31ecff + memw # 17b8: c02000 + l32i a5, a3, 0x3f4 /* [0x600011f4] */ # 17bb: 5223fd + and a5, a5, a6 # 17be: 605510 + extui a5, a5, 16, 16 # 17c1: 5050f5 + memw # 17c4: c02000 + l32i a3, a3, 0x3f4 /* [0x600011f4] */ # 17c7: 3223fd + movi a2, g_ic+0x1d8 # 17ca: 21e8ff + extui a3, a3, 0, 8 # 17cd: 303074 + bnei a5, 1, .Lbr170 # 17d0: 661514 + movi a7, 13 /* 0x0000000d */ # 17d3: 0cd7 + bgeu a7, a3, .Lbr173 # 17d5: 37b720 + movi a3, 0 /* 0x00000000 */ # 17d8: 0c03 + call0 cnx_sta_connect_cmd # 17da: 01e5ffc0 + # 17de: 0000 + j .Lbr171 # 17e0: 060300 +.Lbr169: movi a2, 0 /* 0x00000000 */ # 17e3: 0c02 + j .Lbr172 # 17e5: 460200 +.Lbr170: movi a3, 0 /* 0x00000000 */ # 17e8: 0c03 + call0 cnx_sta_connect_cmd # 17ea: 01e2ffc0 + # 17ee: 0000 +.Lbr171: movi a2, 1 /* 0x00000001 */ # 17f0: 0c12 +.Lbr172: l32i a0, sp, 4 /* [(local1)] */ # 17f2: 0811 + addi sp, sp, 16 /* (top of frame) */ # 17f4: 12c110 + ret # 17f7: 0df0 +.Lbr173: call0 cnx_sta_connect_cmd # 17f9: 01dfffc0 + # 17fd: 0000 + j .Lbr171 # 17ff: 46fbff + + .literal_position # 1804: 00000000 + # 1808: 00000000 + # 180c: 00000000 + # 1810: 00000000 + # 1814: 00000000 + +# Function @ .irom0.text+0x1818 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global wifi_station_disconnect + .type wifi_station_disconnect, @function +wifi_station_disconnect: + addi sp, sp, -16 /* (local0) */ # 1818: 12c1f0 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 181b: 0911 + movi a0, g_ic # 181d: 01f9ff + l32i a0, a0, 16 /* [g_ic+0x10] */ # 1820: 0840 + s32i a0, sp, 0 /* [g_ic+0x10] -> [(local0)] */ # 1822: 0901 + call0 wifi_get_opmode # 1824: 050000 + beqi a2, 2, .Lbr174 # 1827: 262232 + l32i a2, sp, 0 /* [(local0)] */ # 182a: 2801 + beqz a2, .Lbr174 # 182c: acd2 + movi a2, 1 /* 0x00000001 */ # 182e: 0c12 + call0 .Lfunc001 # 1830: 4581fe + movi a0, g_ic # 1833: 01f5ff + beqi a2, -1, .Lbr176 # 1836: 260236 + l32i a7, a0, 16 /* [g_ic+0x10] */ # 1839: 7840 + movi a3, 0 /* 0x00000000 */ # 183b: 0c03 + s8i a3, a7, 184 /* 0x00 -> [[g_ic+0x10]+0xb8] */ # 183d: 3247b8 + l32i a6, a0, 16 /* [g_ic+0x10] */ # 1840: 6840 + s8i a3, a6, 186 /* 0x00 -> [[g_ic+0x10]+0xba] */ # 1842: 3246ba + l32i a5, a0, 16 /* [g_ic+0x10] */ # 1845: 5840 + s8i a3, a5, 185 /* 0x00 -> [[g_ic+0x10]+0xb9] */ # 1847: 3245b9 + l32i a2, a0, 16 /* [g_ic+0x10] */ # 184a: 2840 + l32i a4, a2, 60 /* [[g_ic+0x10]+0x3c] */ # 184c: 48f2 + beqz a4, .Lbr175 # 184e: 9c04 + movi a4, 0 /* 0x00000000 */ # 1850: 0c04 + mov a2, a0 /* g_ic */ # 1852: 2d00 + call0 ieee80211_sta_new_state # 1854: 01eeffc0 + # 1858: 0000 + j .Lbr176 # 185a: 860400 +.Lbr174: movi a2, 0 /* 0x00000000 */ # 185d: 0c02 + j .Lbr177 # 185f: c60300 +.Lbr175: addi a2, a2, 4 /* [g_ic+0x10]+0x4 */ # 1862: 4b22 + call0 os_timer_disarm # 1864: 01ebffc0 + # 1868: 0000 + call0 scan_cancel # 186a: 01eaffc0 + # 186e: 0000 +.Lbr176: movi a2, 1 /* 0x00000001 */ # 1870: 0c12 +.Lbr177: l32i a0, sp, 4 /* [(local1)] */ # 1872: 0811 + addi sp, sp, 16 /* (top of frame) */ # 1874: 12c110 + ret # 1877: 0df0 + + .literal_position # 187c: 00000000 + # 1880: 00000000 + +# Function @ .irom0.text+0x1884 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global wifi_station_get_connect_status + .type wifi_station_get_connect_status, @function +wifi_station_get_connect_status: + addi sp, sp, -16 /* (local0) */ # 1884: 12c1f0 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 1887: 0911 + movi a0, g_ic # 1889: 01fcff + l32i a0, a0, 16 /* [g_ic+0x10] */ # 188c: 0840 + s32i a0, sp, 0 /* [g_ic+0x10] -> [(local0)] */ # 188e: 0901 + call0 wifi_get_opmode # 1890: 050000 + l32i a0, sp, 4 /* [(local1)] */ # 1893: 0811 + beqi a2, 2, .Lbr179 # 1895: 262210 + l32i a2, sp, 0 /* [(local0)] */ # 1898: 2801 + beqz a2, .Lbr179 # 189a: 8cb2 + movi a2, g_ic # 189c: 21f9ff + l32i a2, a2, 16 /* [g_ic+0x10] */ # 189f: 2842 + l8ui a2, a2, 186 /* [[g_ic+0x10]+0xba] */ # 18a1: 2202ba +.Lbr178: addi sp, sp, 16 /* (top of frame) */ # 18a4: 12c110 + ret # 18a7: 0df0 +.Lbr179: movi a2, 255 /* 0x000000ff */ # 18a9: 22a0ff + j .Lbr178 # 18ac: 06fdff + + .literal_position # 18b0: 00000000 + # 18b4: 00000000 + +# Function @ .irom0.text+0x18b8 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word[4] @ -0x10 + .balign 4 + .global wifi_softap_cacl_mac + .type wifi_softap_cacl_mac, @function +wifi_softap_cacl_mac: + addi sp, sp, -32 /* (local0) */ # 18b8: 12c1e0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 18bb: c911 + s32i a15, sp, 16 /* a15 -> [(local4)] */ # 18bd: f941 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 18bf: 0901 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 18c1: d921 + s32i a14, sp, 12 /* a14 -> [(local3)] */ # 18c3: e931 + mov a13, a2 /* arg0 */ # 18c5: dd02 + mov a14, a3 /* arg1 */ # 18c7: ed03 + beqz a2, .Lbr183 # 18c9: 164204 + beqz a3, .Lbr183 # 18cc: 161304 + movi a4, 6 /* 0x00000006 */ # 18cf: 0c64 + call0 memcpy # 18d1: 01f7ffc0 + # 18d5: 0000 + movi a12, 0 /* 0x00000000 */ # 18d7: 0c0c + movi a15, 2 /* 0x00000002 */ # 18d9: 0c2f +.Lbr180: mov a2, a13 /* arg0 */ # 18db: 2d0d + mov a3, a14 /* arg1 */ # 18dd: 3d0e + movi a4, 6 /* 0x00000006 */ # 18df: 0c64 + l8ui a0, a14, 0 /* [arg1] */ # 18e1: 020e00 + slli a5, a12, 2 # 18e4: e05c11 + or a0, a0, a15 # 18e7: f00020 + xor a0, a0, a5 # 18ea: 500030 + s8i a0, a13, 0 /* a0 -> [arg0] */ # 18ed: 024d00 + call0 strncmp # 18f0: 01f1ffc0 + # 18f4: 0000 + bnez a2, .Lbr181 # 18f6: cc62 + addi a12, a12, 1 # 18f8: 1bcc + extui a12, a12, 0, 8 # 18fa: c0c074 + bnei a12, 64, .Lbr180 # 18fd: 66dcda +.Lbr181: movi a2, 1 /* 0x00000001 */ # 1900: 0c12 +.Lbr182: l32i a12, sp, 4 /* [(local1)] */ # 1902: c811 + l32i a13, sp, 8 /* [(local2)] */ # 1904: d821 + l32i a14, sp, 12 /* [(local3)] */ # 1906: e831 + l32i a15, sp, 16 /* [(local4)] */ # 1908: f841 + l32i a0, sp, 0 /* [(local0)] */ # 190a: 0801 + addi sp, sp, 32 /* (top of frame) */ # 190c: 12c120 + ret # 190f: 0df0 +.Lbr183: movi a2, 0 /* 0x00000000 */ # 1911: 0c02 + j .Lbr182 # 1913: c6faff + + .literal_position # 1918: 00000000 + # 191c: 00000000 + # 1920: 00000000 + # 1924: 00000000 + # 1928: 80010000 + # 192c: 00000000 + # 1930: 00000000 + # 1934: 00000000 + +# Function @ .irom0.text+0x1938 +# Local variables/stack: +# (local0): byte @ -0xd +# (local1): byte @ -0xc +# (local2): byte[3] @ -0xb +# (local3): word[2] @ -0x8 + .balign 4 + .global wifi_softap_set_default_ssid + .type wifi_softap_set_default_ssid, @function +wifi_softap_set_default_ssid: + movi a2, 1 /* 0x00000001 */ # 1938: 0c12 + addi sp, sp, -16 /* (FP)-0x10 */ # 193a: 12c1f0 + mov a3, sp /* (FP)-0x10 */ # 193d: 3d01 + s32i a0, sp, 8 /* a0 -> [(local3)] */ # 193f: 0921 + call0 wifi_get_macaddr # 1941: 050000 + movi a0, g_ic # 1944: 01f5ff + movi a2, g_ic+0x280 # 1947: 21f5ff + l32i a0, a0, 0x288 /* [g_ic+0x288] */ # 194a: 0220a2 + l8ui a2, a2, 12 /* [g_ic+0x28c] */ # 194d: 22020c + beqi a0, -1, .Lbr184 # 1950: 260005 + movi a3, 255 /* 0x000000ff */ # 1953: 32a0ff + bne a2, a3, .Lbr185 # 1956: 379227 +.Lbr184: movi a2, g_ic+0x288 # 1959: 21f1ff + movi a3, 36 /* 0x00000024 */ # 195c: 2c43 + call0 bzero # 195e: 01f4ffc0 + # 1962: 0000 + movi a2, g_ic+0x28c # 1964: 21f0ff + movi a3, .Lstr017 # 1967: 31f0ff + l8ui a4, sp, 3 /* [(local0)] */ # 196a: 420103 + l8ui a5, sp, 4 /* [(local1)] */ # 196d: 520104 + l8ui a6, sp, 5 /* [(local2)] */ # 1970: 620105 + call0 sprintf # 1973: 01f0ffc0 + # 1977: 0000 + movi a4, g_ic+0x100 # 1979: 41ecff + movi a3, 10 /* 0x0000000a */ # 197c: 0ca3 + s32i a3, a4, 0x188 /* 0x0000000a -> [g_ic+0x288] */ # 197e: 326462 +.Lbr185: movi a2, 1 /* 0x00000001 */ # 1981: 0c12 + l32i a0, sp, 8 /* [(local3)] */ # 1983: 0821 + addi sp, sp, 16 /* (top of frame) */ # 1985: 12c110 + ret /* 0x00000001 */ # 1988: 0df0 + + .literal_position # 198c: 00000000 + # 1990: 60ea0000 + # 1994: 80010000 + # 1998: 00000000 + # 199c: 00000000 + # 19a0: 00000000 + # 19a4: 00000000 + # 19a8: 00000000 + # 19ac: 00000000 + # 19b0: 00000000 + +# Function @ .irom0.text+0x19b4 +# Local variables/stack: +# (local0): byte @ -0x2d +# (local1): byte @ -0x2c +# (local2): byte[3] @ -0x2b +# (local3): word @ -0x28 +# (local4): word @ -0x24 +# (local5): word @ -0x20 +# (local6): word @ -0x1c +# (local7): word @ -0x18 +# (local8): word @ -0x14 +# (local9): word @ -0x10 +# (local10): word[3] @ -0xc + .balign 4 +.Lfunc013: addi sp, sp, -48 /* (FP)-0x30 */ # 19b4: 12c1d0 + s32i a13, sp, 20 /* a13 -> [(local6)] */ # 19b7: d951 + s32i a14, sp, 24 /* a14 -> [(local7)] */ # 19b9: e961 + s32i a15, sp, 28 /* a15 -> [(local8)] */ # 19bb: f971 + s32i a12, sp, 16 /* a12 -> [(local5)] */ # 19bd: c941 + s32i a0, sp, 12 /* a0 -> [(local4)] */ # 19bf: 0931 + mov a12, a2 /* arg0 */ # 19c1: cd02 + bnez a2, .Lbr186 # 19c3: cc32 + movi a2, 0 /* 0x00000000 */ # 19c5: 0c02 + j .Lbr202 # 19c7: 062f00 +.Lbr186: s32i a3, sp, 8 /* arg1 -> [(local3)] */ # 19ca: 3921 + bnei a3, 1, .Lbr187 # 19cc: 661305 + movi a13, g_ic+0x1d8 # 19cf: d1efff + j .Lbr188 # 19d2: 060100 +.Lbr187: call0 .Lfunc009 # 19d5: 0566ff + mov a13, a2 # 19d8: dd02 +.Lbr188: movi a15, 0 /* 0x00000000 */ # 19da: 0c0f + addi a14, a13, 116 # 19dc: e2cd74 + l8ui a0, a14, 194 # 19df: 020ec2 + movi a2, 212 /* 0x000000d4 */ # 19e2: 22a0d4 + bltui a0, 5, .Lbr189 # 19e5: b65002 + j .Lbr203 # 19e8: 862a00 +.Lbr189: addi a3, a0, -1 # 19eb: 0b30 + beqz a3, .Lbr203 # 19ed: 16530a + s32i a0, a12, 100 /* a0 -> [arg0+0x64] */ # 19f0: 026c19 + add a4, a13, a2 # 19f3: 2a4d + s32i a4, sp, 32 /* a4 -> [(local9)] */ # 19f5: 4981 +.Lbr190: l32i a6, a14, 60 # 19f7: 68fe + movi a5, 180 /* 0x000000b4 */ # 19f9: 52a0b4 + addi a6, a6, 1 # 19fc: 1b66 + beqz a6, .Lbr204 # 19fe: 16660a + l8ui a7, a14, 64 # 1a01: 720e40 + movi a8, 255 /* 0x000000ff */ # 1a04: 82a0ff + sub a7, a7, a8 # 1a07: 8077c0 + beqz a7, .Lbr204 # 1a0a: 16a709 + add a0, a13, a5 # 1a0d: 5a0d +.Lbr191: mov a2, a12 /* arg0 */ # 1a0f: 2d0c + movi a4, 32 /* 0x00000020 */ # 1a11: 2c04 + mov a3, a0 # 1a13: 3d00 + call0 memcpy # 1a15: 01e0ffc0 + # 1a19: 0000 + l32i a3, sp, 32 /* [(local9)] */ # 1a1b: 3881 + addi a2, a12, 32 /* arg0+0x20 */ # 1a1d: 22cc20 + movi a4, 64 /* 0x00000040 */ # 1a20: 4c04 + call0 memcpy # 1a22: 01deffc0 + # 1a26: 0000 + l32i a0, a14, 60 # 1a28: 08fe + movi a9, 32 /* 0x00000020 */ # 1a2a: 2c09 + blt a9, a0, .Lbr192 # 1a2c: 072902 + bgei a0, 1, .Lbr193 # 1a2f: e61005 +.Lbr192: s8i a15, a12, 96 /* 0x00 -> [arg0+0x60] */ # 1a32: f24c60 + j .Lbr194 # 1a35: 860000 +.Lbr193: s8i a0, a12, 96 /* a0 -> [arg0+0x60] */ # 1a38: 024c60 +.Lbr194: l8ui a0, a14, 193 # 1a3b: 020ec1 + movi a10, 14 /* 0x0000000e */ # 1a3e: 0cea + bltu a10, a0, .Lbr195 # 1a40: 073a01 + bnez a0, .Lbr196 # 1a43: cc00 +.Lbr195: movi a0, 1 /* 0x00000001 */ # 1a45: 0c10 +.Lbr196: s8i a0, a12, 97 /* a0 -> [arg0+0x61] */ # 1a47: 024c61 + l8ui a0, a14, 195 # 1a4a: 020ec3 + bgeui a0, 2, .Lbr197 # 1a4d: f62001 + mov a15, a0 # 1a50: fd00 +.Lbr197: s8i a15, a12, 104 /* a15 -> [arg0+0x68] */ # 1a52: f24c68 + l8ui a0, a14, 196 # 1a55: 020ec4 + movi a11, 0x0000ea60 # 1a58: b1ceff + bltui a0, 5, .Lbr198 # 1a5b: b65001 + movi a0, 4 /* 0x00000004 */ # 1a5e: 0c40 +.Lbr198: s8i a0, a12, 105 /* a0 -> [arg0+0x69] */ # 1a60: 024c69 + addmi a0, a13, 768 # 1a63: 02dd03 + l16ui a0, a0, 108 # 1a66: 021036 + l32i a3, sp, 8 /* [(local3)] */ # 1a69: 3821 + bltu a11, a0, .Lbr199 # 1a6b: 073b05 + movi a2, 99 /* 0x00000063 */ # 1a6e: 22a063 + bltu a2, a0, .Lbr200 # 1a71: 073202 +.Lbr199: movi a0, 100 /* 0x00000064 */ # 1a74: 02a064 +.Lbr200: s16i a0, a12, 106 /* a0 -> [arg0+0x6a] */ # 1a77: 025c35 + beqi a3, 1, .Lbr201 # 1a7a: 261307 + mov a2, a13 # 1a7d: 2d0d + call0 free # 1a7f: 01c8ffc0 + # 1a83: 0000 +.Lbr201: movi a2, 1 /* 0x00000001 */ # 1a85: 0c12 +.Lbr202: l32i a12, sp, 16 /* [(local5)] */ # 1a87: c841 + l32i a13, sp, 20 /* [(local6)] */ # 1a89: d851 + l32i a14, sp, 24 /* [(local7)] */ # 1a8b: e861 + l32i a15, sp, 28 /* [(local8)] */ # 1a8d: f871 + l32i a0, sp, 12 /* [(local4)] */ # 1a8f: 0831 + addi sp, sp, 48 /* (top of frame) */ # 1a91: 12c130 + ret # 1a94: 0df0 +.Lbr203: s32i a15, a12, 100 /* 0x00000000 -> [arg0+0x64] */ # 1a96: f26c19 + movi a3, 64 /* 0x00000040 */ # 1a99: 4c03 + add a2, a13, a2 # 1a9b: 2a2d + s32i a2, sp, 32 /* a2 -> [(local9)] */ # 1a9d: 2981 + call0 bzero # 1a9f: 01c1ffc0 + # 1aa3: 0000 + j .Lbr190 # 1aa5: 86d3ff +.Lbr204: movi a2, 1 /* 0x00000001 */ # 1aa8: 0c12 + mov a3, sp /* (FP)-0x30 */ # 1aaa: 3d01 + call0 wifi_get_macaddr # 1aac: 01bfffc0 + # 1ab0: 0000 + movi a3, 36 /* 0x00000024 */ # 1ab2: 2c43 + movi a2, 176 /* 0x000000b0 */ # 1ab4: 22a0b0 + add a2, a13, a2 # 1ab7: 2a2d + call0 bzero # 1ab9: 01bcffc0 + # 1abd: 0000 + movi a3, .Lstr017 # 1abf: 31b5ff + l8ui a4, sp, 3 /* [(local0)] */ # 1ac2: 420103 + l8ui a5, sp, 4 /* [(local1)] */ # 1ac5: 520104 + l8ui a6, sp, 5 /* [(local2)] */ # 1ac8: 620105 + movi a2, 180 /* 0x000000b4 */ # 1acb: 22a0b4 + add a2, a13, a2 # 1ace: 2a2d + s32i a2, sp, 36 /* a2 -> [(local10)] */ # 1ad0: 2991 + call0 sprintf # 1ad2: 01b7ffc0 + # 1ad6: 0000 + l32i a0, sp, 36 /* [(local10)] */ # 1ad8: 0891 + movi a3, 10 /* 0x0000000a */ # 1ada: 0ca3 + s32i a3, a14, 60 # 1adc: 39fe + j .Lbr191 # 1ade: 46cbff + + .balign 4 +# Function @ .irom0.text+0x1ae4 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global wifi_softap_get_config + .type wifi_softap_get_config, @function +wifi_softap_get_config: + movi a3, 1 /* 0x00000001 */ # 1ae4: 0c13 + addi sp, sp, -16 /* (local0) */ # 1ae6: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1ae9: 0901 + call0 .Lfunc013 # 1aeb: 85ecff + l32i a0, sp, 0 /* [(local0)] */ # 1aee: 0801 + addi sp, sp, 16 /* (top of frame) */ # 1af0: 12c110 + ret # 1af3: 0df0 + + .balign 4 +# Function @ .irom0.text+0x1af8 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global wifi_softap_get_config_default + .type wifi_softap_get_config_default, @function +wifi_softap_get_config_default: + movi a3, 0 /* 0x00000000 */ # 1af8: 0c03 + addi sp, sp, -16 /* (local0) */ # 1afa: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1afd: 0901 + call0 .Lfunc013 # 1aff: 45ebff + l32i a0, sp, 0 /* [(local0)] */ # 1b02: 0801 + addi sp, sp, 16 /* (top of frame) */ # 1b04: 12c110 + ret # 1b07: 0df0 + + .literal_position # 1b0c: 8c000000 + # 1b10: 00000000 + # 1b14: 60ea0000 + # 1b18: 00000000 + # 1b1c: 00900100 + # 1b20: 00000000 + # 1b24: 00100000 + # 1b28: 00000000 + # 1b2c: 00000000 + # 1b30: 00000000 + # 1b34: 00000000 + # 1b38: 00000000 + # 1b3c: 00000000 + # 1b40: 00000000 + # 1b44: 00000000 + # 1b48: 00000000 + # 1b4c: 00000000 + # 1b50: 00000000 + # 1b54: 00000000 + # 1b58: 00000000 + # 1b5c: 00000000 + # 1b60: 00000000 + # 1b64: 00000000 + # 1b68: 00000000 + # 1b6c: 00000000 + # 1b70: 00000000 + # 1b74: 00000000 + # 1b78: 00000000 + # 1b7c: 00000000 + # 1b80: 00000000 + # 1b84: 00000000 + +# Function @ .irom0.text+0x1b88 +# Local variables/stack: +# (local0): word @ -0x30 +# (local1): word @ -0x2c +# (local2): word @ -0x28 +# (local3): word @ -0x24 +# (local4): word @ -0x20 +# (local5): word @ -0x1c +# (local6): word @ -0x18 +# (local7): word @ -0x14 +# (local8): word[4] @ -0x10 + .balign 4 +.Lfunc014: addi sp, sp, -48 /* (local0) */ # 1b88: 12c1d0 + s32i a14, sp, 24 /* a14 -> [(local6)] */ # 1b8b: e961 + s32i a0, sp, 12 /* a0 -> [(local3)] */ # 1b8d: 0931 + s32i a13, sp, 20 /* a13 -> [(local5)] */ # 1b8f: d951 + s32i a12, sp, 16 /* a12 -> [(local4)] */ # 1b91: c941 + mov a13, a3 /* arg1 */ # 1b93: dd03 + mov a12, a2 /* arg0 */ # 1b95: cd02 + beqz a2, .Lbr206 # 1b97: bc12 + call0 wifi_get_opmode # 1b99: 050000 + beqi a2, 1, .Lbr206 # 1b9c: 26122c + movi a2, 6 /* 0x00000006 */ # 1b9f: 0c62 + call0 .Lfunc001 # 1ba1: 454afe + addi a0, a2, 1 # 1ba4: 1b02 + bnez a0, .Lbr219 # 1ba6: 56c00e + mov a3, a12 /* arg0 */ # 1ba9: 3d0c + movi a2, .Ldata008 # 1bab: 21d8ff + movi a4, 108 /* 0x0000006c */ # 1bae: 42a06c + call0 memcpy # 1bb1: 01e6ffc0 + # 1bb5: 0000 + j .Lbr217 # 1bb7: 063300 +.Lbr205: mov a2, a14 /* arg0+0x20 */ # 1bba: 2d0e + movi a3, g_ic+0x2ed # 1bbc: 31d5ff + movi a4, 32 /* 0x00000020 */ # 1bbf: 2c04 + call0 hexstr2bin # 1bc1: 01e3ffc0 + # 1bc5: 0000 + addi a2, a2, 1 # 1bc7: 1b22 + bnez a2, .Lbr223 # 1bc9: 567211 +.Lbr206: movi a2, 0 /* 0x00000000 */ # 1bcc: 0c02 + j .Lbr218 # 1bce: c62d00 +.Lbr207: s8i a8, a13, 160 /* [arg0+0x64] -> [g_ic+0x30e] */ # 1bd1: 824da0 +.Lbr208: l8ui a7, a12, 97 /* [arg0+0x61] */ # 1bd4: 720c61 + movi a3, 14 /* 0x0000000e */ # 1bd7: 0ce3 + bltu a3, a7, .Lbr209 # 1bd9: 773301 + bnez a7, .Lbr210 # 1bdc: cc07 +.Lbr209: movi a7, 1 /* 0x00000001 */ # 1bde: 0c17 +.Lbr210: s8i a7, a13, 159 /* a7 -> [g_ic+0x30d] */ # 1be0: 724d9f + l8ui a5, a12, 104 /* [arg0+0x68] */ # 1be3: 520c68 + bgeui a5, 2, .Lbr211 # 1be6: f62501 + mov a0, a5 /* [arg0+0x68] */ # 1be9: 0d05 +.Lbr211: s8i a0, a13, 161 /* a0 -> [g_ic+0x30f] */ # 1beb: 024da1 + l8ui a0, a12, 105 /* [arg0+0x69] */ # 1bee: 020c69 + movi a4, 0x0000ea60 # 1bf1: 41c8ff + bltui a0, 5, .Lbr212 # 1bf4: b65001 + movi a0, 4 /* 0x00000004 */ # 1bf7: 0c40 +.Lbr212: s8i a0, a13, 162 /* a0 -> [g_ic+0x310] */ # 1bf9: 024da2 + l16ui a2, a12, 106 /* [arg0+0x6a] */ # 1bfc: 221c35 + bltu a4, a2, .Lbr213 # 1bff: 273408 + movi a5, 99 /* 0x00000063 */ # 1c02: 52a063 + bgeu a5, a2, .Lbr213 # 1c05: 27b502 + j .Lbr229 # 1c08: 065200 +.Lbr213: movi a2, 100 /* 0x00000064 */ # 1c0b: 22a064 + movi a0, 100 /* 0x00000064 */ # 1c0e: 02a064 +.Lbr214: movi a6, g_ic+0x446 # 1c11: 61c1ff + movi a3, 100 /* 0x00000064 */ # 1c14: 32a064 + s16i a0, a6, 254 /* a0 -> [g_ic+0x544] */ # 1c17: 02567f + call0 __udivsi3 # 1c1a: 01ceffc0 + # 1c1e: 0000 + movi a3, 0x00019000 # 1c20: 31bfff + extui a2, a2, 0, 16 # 1c23: 2020f4 + mull a2, a2, a3 # 1c26: 302282 + call0 wDev_Set_Beacon_Int # 1c29: 01cbffc0 + # 1c2d: 0000 + l32i a4, a12, 100 /* [arg0+0x64] */ # 1c2f: 422c19 + bltui a4, 2, .Lbr215 # 1c32: b62433 + mov a2, a14 /* [(local7)] */ # 1c35: 2d0e + call0 strlen # 1c37: 01c9ffc0 + # 1c3b: 0000 + bgeui a2, 64, .Lbr215 # 1c3d: f6d228 + l32i a5, sp, 8 /* [(local2)] */ # 1c40: 5821 + bnei a5, 1, .Lbr215 # 1c42: 661523 + call0 system_overclock # 1c45: 050000 + mov a2, a14 /* [(local7)] */ # 1c48: 2d0e + l32i a3, sp, 4 /* [(local1)] */ # 1c4a: 3811 + movi a6, g_ic+0x2ed # 1c4c: 61b5ff + movi a7, 32 /* 0x00000020 */ # 1c4f: 2c07 + l16ui a4, a13, 28 /* [g_ic+0x28a] */ # 1c51: 421d0e + l16ui a5, a13, 26 /* [g_ic+0x288] */ # 1c54: 521d0d + slli a4, a4, 16 # 1c57: 004411 + or a4, a4, a5 # 1c5a: 504420 + movi a5, 0x00001000 # 1c5d: 51b1ff + call0 pbkdf2_sha1 # 1c60: 01c0ffc0 + # 1c64: 0000 + call0 system_restoreclock # 1c66: 050000 +.Lbr215: l32i a5, sp, 0 /* [(local0)] */ # 1c69: 5801 + bnei a5, 1, .Lbr216 # 1c6b: 661505 + movi a2, g_ic+0x1d8 # 1c6e: 21aeff + call0 wifi_param_save_protect # 1c71: 050000 +.Lbr216: movi a6, g_ic # 1c74: 61aeff + l32i a6, a6, 20 /* [g_ic+0x14] */ # 1c77: 6856 + beqz a6, .Lbr217 # 1c79: 8ca6 + call0 wifi_softap_stop # 1c7b: 01baffc0 + # 1c7f: 0000 + call0 wifi_softap_start # 1c81: 01b9ffc0 + # 1c85: 0000 +.Lbr217: movi a2, 1 /* 0x00000001 */ # 1c87: 0c12 +.Lbr218: l32i a12, sp, 16 /* [(local4)] */ # 1c89: c841 + l32i a13, sp, 20 /* [(local5)] */ # 1c8b: d851 + l32i a14, sp, 24 /* [(local6)] */ # 1c8d: e861 + l32i a0, sp, 12 /* [(local3)] */ # 1c8f: 0831 + addi sp, sp, 48 /* (top of frame) */ # 1c91: 12c130 + ret # 1c94: 0df0 +.Lbr219: mov a3, a12 /* arg0 */ # 1c96: 3d0c + movi a4, 32 /* 0x00000020 */ # 1c98: 2c04 + s32i a13, sp, 0 /* arg1 -> [(local0)] */ # 1c9a: d901 + movi a2, g_ic+0x28c # 1c9c: 21a5ff + s32i a2, sp, 4 /* g_ic+0x28c -> [(local1)] */ # 1c9f: 2911 + call0 memcmp # 1ca1: 01b2ffc0 + # 1ca5: 0000 + addi a14, a12, 32 /* arg0+0x20 */ # 1ca7: e2cc20 + l32i a13, a12, 100 /* [arg0+0x64] */ # 1caa: d22c19 + bnez a2, .Lbr220 # 1cad: dc02 + movi a2, g_ic+0x2ac # 1caf: 21a1ff + mov a3, a14 /* arg0+0x20 */ # 1cb2: 3d0e + movi a4, 64 /* 0x00000040 */ # 1cb4: 4c04 + call0 memcmp # 1cb6: 01aeffc0 + # 1cba: 0000 + s32i a13, sp, 32 /* [arg0+0x64] -> [(local8)] */ # 1cbc: d981 + beqz a2, .Lbr230 # 1cbe: 167209 +.Lbr220: movi a9, 1 /* 0x00000001 */ # 1cc1: 0c19 + s32i a9, sp, 8 /* 0x00000001 -> [(local2)] */ # 1cc3: 9921 +.Lbr221: bltui a13, 2, .Lbr223 # 1cc5: b62d1b + mov a2, a14 /* arg0+0x20 */ # 1cc8: 2d0e + call0 strlen # 1cca: 01aaffc0 + # 1cce: 0000 + bgeui a2, 8, .Lbr222 # 1cd0: f68202 + j .Lbr206 # 1cd3: 46bdff +.Lbr222: mov a2, a14 /* arg0+0x20 */ # 1cd6: 2d0e + call0 strlen # 1cd8: 01a8ffc0 + # 1cdc: 0000 + bltui a2, 64, .Lbr223 # 1cde: b6d202 + j .Lbr205 # 1ce1: 46b5ff +.Lbr223: l8ui a11, a12, 0 /* [arg0] */ # 1ce4: b20c00 + movi a0, 255 /* 0x000000ff */ # 1ce7: 02a0ff + bne a11, a0, .Lbr224 # 1cea: 079b0e + l8ui a13, a12, 1 /* [arg0+0x1] */ # 1ced: d20c01 + bne a13, a0, .Lbr224 # 1cf0: 079d08 + call0 wifi_softap_set_default_ssid # 1cf3: 050000 + movi a13, g_ic+0x26e # 1cf6: d190ff + j .Lbr227 # 1cf9: 060c00 +.Lbr224: l8ui a0, a12, 96 /* [arg0+0x60] */ # 1cfc: 020c60 + bnez a0, .Lbr225 # 1cff: cc90 + mov a2, a12 /* arg0 */ # 1d01: 2d0c + call0 strlen # 1d03: 019effc0 + # 1d07: 0000 + extui a0, a2, 0, 8 # 1d09: 200074 +.Lbr225: movi a13, g_ic+0x26e # 1d0c: d18cff + movi a8, 32 /* 0x00000020 */ # 1d0f: 2c08 + movi a2, 33 /* 0x00000021 */ # 1d11: 2c12 + bltu a0, a2, .Lbr226 # 1d13: 273001 + mov a0, a8 /* 0x00000020 */ # 1d16: 0d08 +.Lbr226: l32i a2, sp, 4 /* [(local1)] */ # 1d18: 2811 + movi a4, 32 /* 0x00000020 */ # 1d1a: 2c04 + extui a3, a0, 16, 16 # 1d1c: 0030f5 + s16i a0, a13, 26 /* a0 -> [g_ic+0x288] */ # 1d1f: 025d0d + s16i a3, a13, 28 /* a3 -> [g_ic+0x28a] */ # 1d22: 325d0e + mov a3, a12 /* arg0 */ # 1d25: 3d0c + call0 memcpy # 1d27: 0196ffc0 + # 1d2b: 0000 +.Lbr227: mov a3, a14 /* arg0+0x20 */ # 1d2d: 3d0e + movi a4, 64 /* 0x00000040 */ # 1d2f: 4c04 + movi a2, g_ic+0x2ac # 1d31: 2183ff + s32i a2, sp, 28 /* g_ic+0x2ac -> [(local7)] */ # 1d34: 2971 + call0 memcpy # 1d36: 0193ffc0 + # 1d3a: 0000 + movi a0, 0 /* 0x00000000 */ # 1d3c: 0c00 + s8i a0, a13, 126 /* 0x00 -> [g_ic+0x2ec] */ # 1d3e: 024d7e + l32i a8, a12, 100 /* [arg0+0x64] */ # 1d41: 822c19 + l32i a14, sp, 28 /* [(local7)] */ # 1d44: e871 + bgeui a8, 5, .Lbr228 # 1d46: f65804 + addi a5, a8, -1 /* [arg0+0x64]-0x1 */ # 1d49: 0b58 + bnez a5, .Lbr207 # 1d4b: 5625e8 +.Lbr228: s8i a0, a13, 160 /* 0x00 -> [g_ic+0x30e] */ # 1d4e: 024da0 + j .Lbr208 # 1d51: c69fff +.Lbr229: mov a0, a2 /* [arg0+0x6a] */ # 1d54: 0d02 + j .Lbr214 # 1d56: c6adff +.Lbr230: movi a13, g_ic+0x26e # 1d59: d17aff + l32i a8, sp, 32 /* [(local8)] */ # 1d5c: 8881 + l8ui a0, a13, 160 /* [g_ic+0x30e] */ # 1d5e: 020da0 + beq a8, a0, .Lbr232 # 1d61: 071813 + mov a13, a8 /* [(local8)] */ # 1d64: dd08 + bnez a0, .Lbr231 # 1d66: cc70 + beqi a8, 2, .Lbr234 # 1d68: 26283f + beqi a8, 3, .Lbr234 # 1d6b: 26383c + beqi a8, 4, .Lbr234 # 1d6e: 264839 +.Lbr231: movi a6, 0 /* 0x00000000 */ # 1d71: 0c06 + s32i a6, sp, 8 /* 0x00000000 -> [(local2)] */ # 1d73: 6921 + j .Lbr221 # 1d75: 06d3ff +.Lbr232: l8ui a9, a13, 159 /* [g_ic+0x30d] */ # 1d78: 920d9f + l8ui a7, a12, 97 /* [arg0+0x61] */ # 1d7b: 720c61 + bne a7, a9, .Lbr233 # 1d7e: 979720 + l8ui a11, a13, 162 /* [g_ic+0x310] */ # 1d81: b20da2 + l8ui a10, a12, 105 /* [arg0+0x69] */ # 1d84: a20c69 + bne a10, a11, .Lbr233 # 1d87: b79a17 + l8ui a2, a13, 161 /* [g_ic+0x30f] */ # 1d8a: 220da1 + l8ui a0, a12, 104 /* [arg0+0x68] */ # 1d8d: 020c68 + bne a0, a2, .Lbr233 # 1d90: 27900e + movi a4, g_ic+0x446 # 1d93: 416dff + l16ui a3, a12, 106 /* [arg0+0x6a] */ # 1d96: 321c35 + l16ui a4, a4, 254 /* [g_ic+0x544] */ # 1d99: 42147f + sub a3, a3, a4 # 1d9c: 4033c0 + beqz a3, .Lbr217 # 1d9f: 1643ee +.Lbr233: l32i a13, sp, 32 /* [(local8)] */ # 1da2: d881 + movi a5, 0 /* 0x00000000 */ # 1da4: 0c05 + s32i a5, sp, 8 /* 0x00000000 -> [(local2)] */ # 1da6: 5921 + j .Lbr221 # 1da8: 46c6ff +.Lbr234: movi a6, 1 /* 0x00000001 */ # 1dab: 0c16 + s32i a6, sp, 8 /* 0x00000001 -> [(local2)] */ # 1dad: 6921 + j .Lbr221 # 1daf: 86c4ff + + .balign 4 +# Function @ .irom0.text+0x1db4 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global wifi_softap_set_config + .type wifi_softap_set_config, @function +wifi_softap_set_config: + movi a3, 1 /* 0x00000001 */ # 1db4: 0c13 + addi sp, sp, -16 /* (local0) */ # 1db6: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1db9: 0901 + call0 .Lfunc014 # 1dbb: c5dcff + l32i a0, sp, 0 /* [(local0)] */ # 1dbe: 0801 + addi sp, sp, 16 /* (top of frame) */ # 1dc0: 12c110 + ret # 1dc3: 0df0 + + .balign 4 +# Function @ .irom0.text+0x1dc8 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global wifi_softap_set_config_current + .type wifi_softap_set_config_current, @function +wifi_softap_set_config_current: + movi a3, 0 /* 0x00000000 */ # 1dc8: 0c03 + addi sp, sp, -16 /* (local0) */ # 1dca: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1dcd: 0901 + call0 .Lfunc014 # 1dcf: 85dbff + l32i a0, sp, 0 /* [(local0)] */ # 1dd2: 0801 + addi sp, sp, 16 /* (top of frame) */ # 1dd4: 12c110 + ret # 1dd7: 0df0 + + .literal_position # 1ddc: 00000000 + # 1de0: 00000000 + # 1de4: 00000000 + +# Function @ .irom0.text+0x1de8 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word @ -0x10 +# (local5): word @ -0xc +# (local6): word[2] @ -0x8 + .balign 4 + .global wifi_softap_set_station_info + .type wifi_softap_set_station_info, @function +wifi_softap_set_station_info: + addi sp, sp, -32 /* (local0) */ # 1de8: 12c1e0 + s32i a13, sp, 16 /* a13 -> [(local4)] */ # 1deb: d941 + s32i a0, sp, 8 /* a0 -> [(local2)] */ # 1ded: 0921 + s32i a15, sp, 24 /* a15 -> [(local6)] */ # 1def: f961 + movi a15, g_ic+0x280 # 1df1: f1faff + s32i a12, sp, 12 /* a12 -> [(local3)] */ # 1df4: c931 + l8ui a15, a15, 144 /* [g_ic+0x310] */ # 1df6: f20f90 + s32i a14, sp, 20 /* a14 -> [(local5)] */ # 1df9: e951 + addi a15, a15, 2 /* [g_ic+0x310]+0x2 */ # 1dfb: 2bff + blti a15, 2, .Lbr237 # 1dfd: a62f34 + movi a12, 1 /* 0x00000001 */ # 1e00: 0c1c + movi a14, g_ic # 1e02: e1f7ff + s32i a3, sp, 4 /* arg1 -> [(local1)] */ # 1e05: 3911 + l32i a14, a14, 20 /* [g_ic+0x14] */ # 1e07: e85e + s32i a2, sp, 0 /* arg0 -> [(local0)] */ # 1e09: 2901 +.Lbr235: addx4 a13, a12, a14 # 1e0b: e0dca0 + l32i a13, a13, 144 # 1e0e: d22d24 + beqz a13, .Lbr236 # 1e11: 9c8d + l32i a2, sp, 0 /* [(local0)] */ # 1e13: 2801 + mov a3, a13 # 1e15: 3d0d + movi a4, 6 /* 0x00000006 */ # 1e17: 0c64 + call0 memcmp # 1e19: 01f2ffc0 + # 1e1d: 0000 + bnez a2, .Lbr236 # 1e1f: cca2 + l32i a14, sp, 4 /* [(local1)] */ # 1e21: e811 + movi a2, 1 /* 0x00000001 */ # 1e23: 0c12 + l32i a14, a14, 0 /* [[(local1)]] */ # 1e25: e80e + s32i a14, a13, 0x10c # 1e27: e26d43 + j .Lbr238 # 1e2a: 460200 +.Lbr236: addi a12, a12, 1 # 1e2d: 1bcc + extui a12, a12, 0, 8 # 1e2f: c0c074 + bne a15, a12, .Lbr235 # 1e32: c79fd5 +.Lbr237: movi a2, 0 /* 0x00000000 */ # 1e35: 0c02 +.Lbr238: l32i a12, sp, 12 /* [(local3)] */ # 1e37: c831 + l32i a13, sp, 16 /* [(local4)] */ # 1e39: d841 + l32i a14, sp, 20 /* [(local5)] */ # 1e3b: e851 + l32i a15, sp, 24 /* [(local6)] */ # 1e3d: f861 + l32i a0, sp, 8 /* [(local2)] */ # 1e3f: 0821 + addi sp, sp, 32 /* (top of frame) */ # 1e41: 12c120 + ret # 1e44: 0df0 + + .literal_position # 1e48: 00000000 + # 1e4c: 00000000 + # 1e50: 00000000 + # 1e54: 00000000 + # 1e58: 00000000 + # 1e5c: 00000000 + # 1e60: 00000000 + +# Function @ .irom0.text+0x1e64 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word[4] @ -0x10 + .balign 4 + .global wifi_softap_get_station_info + .type wifi_softap_get_station_info, @function +wifi_softap_get_station_info: + addi sp, sp, -32 /* (local0) */ # 1e64: 12c1e0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 1e67: c911 + s32i a14, sp, 12 /* a14 -> [(local3)] */ # 1e69: e931 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1e6b: 0901 + movi a0, g_ic # 1e6d: 01f6ff + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 1e70: d921 + l32i a13, a0, 20 /* [g_ic+0x14] */ # 1e72: d850 + s32i a15, sp, 16 /* a15 -> [(local4)] */ # 1e74: f941 + bnez a13, .Lbr239 # 1e76: cc3d + movi a2, 0 /* 0x00000000 */ # 1e78: 0c02 + j .Lbr243 # 1e7a: 461900 +.Lbr239: movi a2, g_ic+0x188 # 1e7d: 21f3ff + movi a5, g_ic+0x280 # 1e80: 51f4ff + s32i a2, a0, 0x18c /* g_ic+0x188 -> [g_ic+0x18c] */ # 1e83: 226063 + movi a2, 0 /* 0x00000000 */ # 1e86: 0c02 + l8ui a7, a5, 144 /* [g_ic+0x310] */ # 1e88: 720590 + s32i a2, a0, 0x188 /* 0x00000000 -> [g_ic+0x188] */ # 1e8b: 226062 + addi a6, a7, 2 /* [g_ic+0x310]+0x2 */ # 1e8e: 2b67 + blti a6, 2, .Lbr243 # 1e90: a6264f + movi a12, 1 /* 0x00000001 */ # 1e93: 0c1c +.Lbr240: addx4 a14, a12, a13 # 1e95: d0eca0 + l32i a4, a14, 144 # 1e98: 422e24 + beqz a4, .Lbr242 # 1e9b: bc94 + l32i a3, a4, 0x10c # 1e9d: 322443 + beqz a3, .Lbr241 # 1ea0: bc23 + movi a2, 16 /* 0x00000010 */ # 1ea2: 1c02 + call0 zalloc # 1ea4: 01eeffc0 + # 1ea8: 0000 + l32i a3, a14, 144 # 1eaa: 322e24 + mov a15, a2 # 1ead: fd02 + movi a4, 6 /* 0x00000006 */ # 1eaf: 0c64 + addi a2, a2, 4 # 1eb1: 4b22 + call0 memcpy # 1eb3: 01ebffc0 + # 1eb7: 0000 + movi a2, 0 /* 0x00000000 */ # 1eb9: 0c02 + l32i a5, a14, 144 # 1ebb: 522e24 + movi a0, g_ic # 1ebe: 01e5ff + l32i a5, a5, 0x10c # 1ec1: 522543 + l32i a4, a0, 0x18c /* [g_ic+0x18c] */ # 1ec4: 422063 + s32i a2, a15, 0 # 1ec7: 290f + s32i a5, a15, 12 # 1ec9: 593f + movi a5, g_ic+0x280 # 1ecb: 51e3ff + s32i a15, a4, 0 /* a15 -> [[g_ic+0x18c]] */ # 1ece: f904 + l8ui a7, a5, 144 /* [g_ic+0x310] */ # 1ed0: 720590 + s32i a15, a0, 0x18c /* a15 -> [g_ic+0x18c] */ # 1ed3: f26063 +.Lbr241: addi a6, a7, 2 /* [g_ic+0x310]+0x2 */ # 1ed6: 2b67 +.Lbr242: addi a12, a12, 1 # 1ed8: 1bcc + extui a12, a12, 0, 8 # 1eda: c0c074 + blt a12, a6, .Lbr240 # 1edd: 672cb4 + l32i a2, a0, 0x188 /* [g_ic+0x188] */ # 1ee0: 222062 +.Lbr243: l32i a12, sp, 4 /* [(local1)] */ # 1ee3: c811 + l32i a13, sp, 8 /* [(local2)] */ # 1ee5: d821 + l32i a14, sp, 12 /* [(local3)] */ # 1ee7: e831 + l32i a15, sp, 16 /* [(local4)] */ # 1ee9: f841 + l32i a0, sp, 0 /* [(local0)] */ # 1eeb: 0801 + addi sp, sp, 32 /* (top of frame) */ # 1eed: 12c120 + ret # 1ef0: 0df0 + + .literal_position # 1ef4: 00000000 + # 1ef8: 00000000 + # 1efc: 00000000 + +# Function @ .irom0.text+0x1f00 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 + .global wifi_softap_free_station_info + .type wifi_softap_free_station_info, @function +wifi_softap_free_station_info: + addi sp, sp, -16 /* (local0) */ # 1f00: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1f03: 0901 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 1f05: d921 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 1f07: c911 + movi a12, g_ic # 1f09: c1fbff + movi a13, g_ic+0x188 # 1f0c: d1faff +.Lbr244: l32i a2, a12, 0x188 /* [g_ic+0x188] */ # 1f0f: 222c62 + beqz a2, .Lbr246 # 1f12: 9c12 + l32i a0, a2, 0 /* [[g_ic+0x188]] */ # 1f14: 0802 + s32i a0, a12, 0x188 /* [[g_ic+0x188]] -> [g_ic+0x188] */ # 1f16: 026c62 + bnez a0, .Lbr245 # 1f19: cc10 + s32i a13, a12, 0x18c /* g_ic+0x188 -> [g_ic+0x18c] */ # 1f1b: d26c63 +.Lbr245: call0 free # 1f1e: 01f7ffc0 + # 1f22: 0000 + j .Lbr244 # 1f24: c6f9ff +.Lbr246: l32i a12, sp, 4 /* [(local1)] */ # 1f27: c811 + l32i a13, sp, 8 /* [(local2)] */ # 1f29: d821 + l32i a0, sp, 0 /* [(local0)] */ # 1f2b: 0801 + addi sp, sp, 16 /* (top of frame) */ # 1f2d: 12c110 + ret /* [g_ic+0x188] */ # 1f30: 0df0 + + .literal_position # 1f34: 00000000 + # 1f38: 94010000 + # 1f3c: 00000000 + # 1f40: 00000000 + # 1f44: 00000000 + # 1f48: 00000000 + # 1f4c: 00000000 + # 1f50: 00000000 + # 1f54: 00000000 + +# Function @ .irom0.text+0x1f58 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word @ -0x10 +# (local5): word[3] @ -0xc + .balign 4 + .global wifi_softap_deauth + .type wifi_softap_deauth, @function +wifi_softap_deauth: + addi sp, sp, -32 /* (local0) */ # 1f58: 12c1e0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 1f5b: c911 + s32i a15, sp, 16 /* a15 -> [(local4)] */ # 1f5d: f941 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1f5f: 0901 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 1f61: d921 + s32i a14, sp, 12 /* a14 -> [(local3)] */ # 1f63: e931 + movi a13, g_ic # 1f65: d1f3ff + mov a14, a2 /* arg0 */ # 1f68: ed02 + l32i a13, a13, 20 /* [g_ic+0x14] */ # 1f6a: d85d + call0 wifi_get_opmode # 1f6c: 050000 + addi a15, a2, -1 # 1f6f: 0bf2 + beqz a15, .Lbr255 # 1f71: 16cf08 + beqz a13, .Lbr255 # 1f74: 169d08 + addi a2, a13, 64 /* [g_ic+0x14]+0x40 */ # 1f77: 22cd40 + l32i a12, a13, 136 /* [[g_ic+0x14]+0x88] */ # 1f7a: c22d22 + l32i a0, a13, 144 /* [[g_ic+0x14]+0x90] */ # 1f7d: 022d24 + s32i a0, a13, 136 /* [[g_ic+0x14]+0x90] -> [[g_ic+0x14]+0x88] */ # 1f80: 026d22 + bnez a14, .Lbr247 # 1f83: ccce + movi a3, .Label007 # 1f85: 31ecff + movi a4, 6 /* 0x00000006 */ # 1f88: 0c64 + call0 memcpy # 1f8a: 01eeffc0 + # 1f8e: 0000 + j .Lbr248 # 1f90: 460200 +.Lbr247: mov a3, a14 /* arg0 */ # 1f93: 3d0e + movi a4, 6 /* 0x00000006 */ # 1f95: 0c64 + call0 memcpy # 1f97: 01ecffc0 + # 1f9b: 0000 +.Lbr248: mov a2, a13 /* [g_ic+0x14] */ # 1f9d: 2d0d + movi a3, 192 /* 0x000000c0 */ # 1f9f: 32a0c0 + movi a4, 2 /* 0x00000002 */ # 1fa2: 0c24 + call0 ieee80211_send_mgmt # 1fa4: 01eaffc0 + # 1fa8: 0000 + movi a0, g_ic+0x280 # 1faa: 01e4ff + s32i a12, a13, 136 /* [[g_ic+0x14]+0x88] -> [[g_ic+0x14]+0x88] */ # 1fad: c26d22 + l8ui a0, a0, 144 /* [g_ic+0x310] */ # 1fb0: 020090 + movi a12, 1 /* 0x00000001 */ # 1fb3: 0c1c + addi a2, a0, 2 /* [g_ic+0x310]+0x2 */ # 1fb5: 2b20 + blti a2, 2, .Lbr253 # 1fb7: a62235 +.Lbr249: addx4 a15, a12, a13 # 1fba: d0fca0 + l32i a15, a15, 144 # 1fbd: f22f24 + beqz a15, .Lbr252 # 1fc0: ac4f + s32i a0, sp, 20 /* a0 -> [(local5)] */ # 1fc2: 0951 + beqz a14, .Lbr250 # 1fc4: 8cee + mov a2, a14 /* arg0 */ # 1fc6: 2d0e + mov a3, a15 # 1fc8: 3d0f + movi a4, 6 /* 0x00000006 */ # 1fca: 0c64 + call0 memcmp # 1fcc: 01e1ffc0 + # 1fd0: 0000 + l32i a0, sp, 20 /* [(local5)] */ # 1fd2: 0851 + bnez a2, .Lbr251 # 1fd4: cce2 +.Lbr250: mov a3, a15 # 1fd6: 3d0f + mov a2, a13 /* [g_ic+0x14] */ # 1fd8: 2d0d + call0 cnx_node_leave # 1fda: 01deffc0 + # 1fde: 0000 + movi a0, g_ic+0x280 # 1fe0: 01d8ff + l8ui a0, a0, 144 /* [g_ic+0x310] */ # 1fe3: 020090 +.Lbr251: addi a2, a0, 2 # 1fe6: 2b20 +.Lbr252: addi a12, a12, 1 # 1fe8: 1bcc + extui a12, a12, 0, 8 # 1fea: c0c074 + blt a12, a2, .Lbr249 # 1fed: 272cc9 +.Lbr253: movi a2, 1 /* 0x00000001 */ # 1ff0: 0c12 +.Lbr254: l32i a12, sp, 4 /* [(local1)] */ # 1ff2: c811 + l32i a13, sp, 8 /* [(local2)] */ # 1ff4: d821 + l32i a14, sp, 12 /* [(local3)] */ # 1ff6: e831 + l32i a15, sp, 16 /* [(local4)] */ # 1ff8: f841 + l32i a0, sp, 0 /* [(local0)] */ # 1ffa: 0801 + addi sp, sp, 32 /* (top of frame) */ # 1ffc: 12c120 + ret # 1fff: 0df0 +.Lbr255: movi a2, 0 /* 0x00000000 */ # 2001: 0c02 + j .Lbr254 # 2003: c6faff + + .literal_position # 2008: 00000000 + +# Function @ .irom0.text+0x200c + .balign 4 + .global wifi_get_phy_mode + .type wifi_get_phy_mode, @function +wifi_get_phy_mode: + movi a2, g_ic+0x234 # 200c: 21ffff + l32i a2, a2, 0x2e8 /* [g_ic+0x51c] */ # 200f: 2222ba + ret /* [g_ic+0x51c] */ # 2012: 0df0 + + .literal_position # 2014: 00000000 + # 2018: 00000000 + # 201c: 00000000 + # 2020: 00000000 + # 2024: 00000000 + # 2028: 00000000 + # 202c: 00000000 + # 2030: 00000000 + # 2034: 00000000 + # 2038: 00000000 + # 203c: 00000000 + +# Function @ .irom0.text+0x2040 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 + .global wifi_set_phy_mode + .type wifi_set_phy_mode, @function +wifi_set_phy_mode: + addi sp, sp, -16 /* (local0) */ # 2040: 12c1f0 + s32i a12, sp, 8 /* a12 -> [(local2)] */ # 2043: c921 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 2045: 0911 + mov a12, a2 /* arg0 */ # 2047: cd02 + beqz a2, .Lbr263 # 2049: 160208 + bgeui a2, 4, .Lbr263 # 204c: f6427d + movi a0, g_ic+0x200 # 204f: 01f1ff + l32i a0, a0, 0x31c /* [g_ic+0x51c] */ # 2052: 0220c7 + beq a0, a2, .Lbr261 # 2055: 271069 + call0 wifi_get_opmode # 2058: 050000 + s32i a2, sp, 0 /* a2 -> [(local0)] */ # 205b: 2901 + movi a2, g_ic+0x200 # 205d: 21eeff + s32i a12, a2, 0x31c /* arg0 -> [g_ic+0x51c] */ # 2060: c262c7 + addi a2, a2, -40 /* g_ic+0x1d8 */ # 2063: 22c2d8 + call0 wifi_param_save_protect # 2066: 050000 + movi a3, user_init_flag # 2069: 31ecff + l8ui a3, a3, 0 /* [user_init_flag] */ # 206c: 320300 + bnei a3, 1, .Lbr256 # 206f: 66130b + call0 wifi_station_stop # 2072: 01edffc0 + # 2076: 0000 + call0 wifi_softap_stop # 2078: 01edffc0 + # 207c: 0000 +.Lbr256: mov a2, a12 /* arg0 */ # 207e: 2d0c + call0 ieee80211_phy_init # 2080: 01ecffc0 + # 2084: 0000 + movi a5, g_ic+0x200 # 2086: 51e6ff + movi a4, 0 /* 0x00000000 */ # 2089: 0c04 + s32i a4, a5, 0x30c /* 0x00000000 -> [g_ic+0x50c] */ # 208b: 4265c3 + bnei a12, 3, .Lbr257 # 208e: 663c08 + addmi a2, a5, -512 /* g_ic */ # 2091: 22d5fe + call0 ieee80211_ht_attach # 2094: 01e8ffc0 + # 2098: 0000 +.Lbr257: movi a6, user_init_flag # 209a: 61e2ff + l32i a7, sp, 0 /* [(local0)] */ # 209d: 7801 + l8ui a6, a6, 0 /* [user_init_flag] */ # 209f: 620600 + mov a12, a7 /* [(local0)] */ # 20a2: cd07 + bnei a6, 1, .Lbr261 # 20a4: 66161a + beqi a7, 1, .Lbr258 # 20a7: 261702 + bnei a7, 3, .Lbr259 # 20aa: 663708 +.Lbr258: call0 wifi_station_start # 20ad: 01e2ffc0 + # 20b1: 0000 + call0 wifi_station_connect # 20b3: 050000 +.Lbr259: beqi a12, 2, .Lbr260 # 20b6: 262c02 + bnei a12, 3, .Lbr261 # 20b9: 663c05 +.Lbr260: call0 wifi_softap_start # 20bc: 01e0ffc0 + # 20c0: 0000 +.Lbr261: movi a2, 1 /* 0x00000001 */ # 20c2: 0c12 +.Lbr262: l32i a12, sp, 8 /* [(local2)] */ # 20c4: c821 + l32i a0, sp, 4 /* [(local1)] */ # 20c6: 0811 + addi sp, sp, 16 /* (top of frame) */ # 20c8: 12c110 + ret # 20cb: 0df0 +.Lbr263: movi a2, 0 /* 0x00000000 */ # 20cd: 0c02 + j .Lbr262 # 20cf: 46fcff + + .literal_position # 20d4: 00000000 + +# Function @ .irom0.text+0x20d8 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global wifi_set_sleep_type + .type wifi_set_sleep_type, @function +wifi_set_sleep_type: + addi sp, sp, -16 /* (local0) */ # 20d8: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 20db: 0901 + bltui a2, 3, .Lbr264 # 20dd: b63204 + movi a2, 0 /* 0x00000000 */ # 20e0: 0c02 + j .Lbr265 # 20e2: 860200 +.Lbr264: extui a2, a2, 0, 8 # 20e5: 202074 + call0 pm_set_sleep_type_from_upper # 20e8: 01fbffc0 + # 20ec: 0000 + movi a2, 1 /* 0x00000001 */ # 20ee: 0c12 +.Lbr265: l32i a0, sp, 0 /* [(local0)] */ # 20f0: 0801 + addi sp, sp, 16 /* (top of frame) */ # 20f2: 12c110 + ret # 20f5: 0df0 + + .balign 4 +# Function @ .irom0.text+0x20f8 + .balign 4 + .global wifi_get_sleep_type + .type wifi_get_sleep_type, @function +wifi_get_sleep_type: + ret /* arg0 */ # 20f8: 0df0 + + .literal_position # 20fc: 00000000 + +# Function @ .irom0.text+0x2100 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global wifi_get_channel + .type wifi_get_channel, @function +wifi_get_channel: + addi sp, sp, -16 /* (local0) */ # 2100: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 2103: 0901 + call0 chm_get_current_channel # 2105: 01fdffc0 + # 2109: 0000 + l8ui a2, a2, 6 # 210b: 220206 + l32i a0, sp, 0 /* [(local0)] */ # 210e: 0801 + addi sp, sp, 16 /* (top of frame) */ # 2110: 12c110 + ret # 2113: 0df0 + + .literal_position # 2118: 00000000 + # 211c: 00000000 + +# Function @ .irom0.text+0x2120 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global wifi_set_channel + .type wifi_set_channel, @function +wifi_set_channel: + addi sp, sp, -16 /* (local0) */ # 2120: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 2123: 0901 + movi a0, 14 /* 0x0000000e */ # 2125: 0ce0 + bgeu a0, a2, .Lbr266 # 2127: 27b004 + movi a2, 0 /* 0x00000000 */ # 212a: 0c02 + j .Lbr267 # 212c: c60400 +.Lbr266: movi a3, g_ic # 212f: 31faff + addx2 a2, a2, a2 # 2132: 202290 + addx4 a2, a2, a3 # 2135: 3022a0 + addi a2, a2, 120 # 2138: 22c278 + call0 chm_set_current_channel # 213b: 01f8ffc0 + # 213f: 0000 + movi a2, 1 /* 0x00000001 */ # 2141: 0c12 +.Lbr267: l32i a0, sp, 0 /* [(local0)] */ # 2143: 0801 + addi sp, sp, 16 /* (top of frame) */ # 2145: 12c110 + ret # 2148: 0df0 + + .literal_position # 214c: 00fef13f + # 2150: 00000000 + +# Function @ .irom0.text+0x2154 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global wifi_promiscuous_set_mac + .type wifi_promiscuous_set_mac, @function +wifi_promiscuous_set_mac: + addi sp, sp, -16 /* (local0) */ # 2154: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 2157: 0901 + mov a3, a2 /* arg0 */ # 2159: 3d02 + movi a8, 1 /* 0x00000001 */ # 215b: 0c18 + movi a2, 0x3ff1fe00 # 215d: 21fbff + memw # 2160: c02000 + l32i a7, a2, 0x26c /* [0x3ff2006c] */ # 2163: 72229b + or a7, a7, a8 # 2166: 807720 + memw # 2169: c02000 + s32i a7, a2, 0x26c /* a7 -> [0x3ff2006c] */ # 216c: 72629b + movi a6, 2 /* 0x00000002 */ # 216f: 0c26 + memw # 2171: c02000 + l32i a5, a2, 0x26c /* [0x3ff2006c] */ # 2174: 52229b + or a5, a5, a6 # 2177: 605520 + memw # 217a: c02000 + s32i a5, a2, 0x26c /* a5 -> [0x3ff2006c] */ # 217d: 52629b + movi a4, 4 /* 0x00000004 */ # 2180: 0c44 + memw # 2182: c02000 + l32i a0, a2, 0x26c /* [0x3ff2006c] */ # 2185: 02229b + or a0, a0, a4 # 2188: 400020 + memw # 218b: c02000 + s32i a0, a2, 0x26c /* a0 -> [0x3ff2006c] */ # 218e: 02629b + movi a2, 0 /* 0x00000000 */ # 2191: 0c02 + call0 wDev_SetMacAddress # 2193: 01efffc0 + # 2197: 0000 + l32i a0, sp, 0 /* [(local0)] */ # 2199: 0801 + addi sp, sp, 16 /* (top of frame) */ # 219b: 12c110 + ret # 219e: 0df0 + + .literal_position # 21a0: 00fef13f + # 21a4: 00000000 + # 21a8: 00000000 + # 21ac: 00000000 + # 21b0: 00000000 + # 21b4: 00000000 + # 21b8: 00000000 + # 21bc: 00000000 + # 21c0: 00000000 + # 21c4: 00000000 + # 21c8: 00000000 + +# Function @ .irom0.text+0x21cc +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global wifi_promiscuous_enable + .type wifi_promiscuous_enable, @function +wifi_promiscuous_enable: + addi sp, sp, -16 /* (local0) */ # 21cc: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 21cf: c911 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 21d1: 0901 + movi a12, 0x3ff1fe00 # 21d3: c1f3ff + beqz a2, .Lbr268 # 21d6: 16f204 + call0 wDevDisableRx # 21d9: 01f5ffc0 + # 21dd: 0000 + movi a11, -2 /* 0xfffffffe */ # 21df: 7ceb + memw # 21e1: c02000 + l32i a10, a12, 0x26c /* [0x3ff2006c] */ # 21e4: a22c9b + and a10, a10, a11 # 21e7: b0aa10 + memw # 21ea: c02000 + s32i a10, a12, 0x26c /* a10 -> [0x3ff2006c] */ # 21ed: a26c9b + movi a9, -3 /* 0xfffffffd */ # 21f0: 7cd9 + memw # 21f2: c02000 + l32i a8, a12, 0x26c /* [0x3ff2006c] */ # 21f5: 822c9b + and a8, a8, a9 # 21f8: 908810 + memw # 21fb: c02000 + s32i a8, a12, 0x26c /* a8 -> [0x3ff2006c] */ # 21fe: 826c9b + movi a7, -5 /* 0xfffffffb */ # 2201: 7cb7 + memw # 2203: c02000 + l32i a6, a12, 0x26c /* [0x3ff2006c] */ # 2206: 622c9b + and a6, a6, a7 # 2209: 706610 + memw # 220c: c02000 + s32i a6, a12, 0x26c /* a6 -> [0x3ff2006c] */ # 220f: 626c9b + movi a5, g_ic+0x180 # 2212: 51e4ff + movi a4, 1 /* 0x00000001 */ # 2215: 0c14 + s8i a4, a5, 84 /* 0x01 -> [g_ic+0x1d4] */ # 2217: 424554 + call0 wdev_go_sniffer # 221a: 01e6ffc0 + # 221e: 0000 + call0 wDevEnableRx # 2220: 01e6ffc0 + # 2224: 0000 + j .Lbr269 # 2226: c61500 +.Lbr268: call0 wDevDisableRx # 2229: 01e4ffc0 + # 222d: 0000 + call0 wdev_exit_sniffer # 222f: 01e4ffc0 + # 2233: 0000 + memw # 2235: c02000 + l32i a5, a12, 0x26c /* [0x3ff2006c] */ # 2238: 522c9b + movi a6, 1 /* 0x00000001 */ # 223b: 0c16 + or a5, a5, a6 # 223d: 605520 + memw # 2240: c02000 + s32i a5, a12, 0x26c /* a5 -> [0x3ff2006c] */ # 2243: 526c9b + movi a4, 2 /* 0x00000002 */ # 2246: 0c24 + memw # 2248: c02000 + l32i a3, a12, 0x26c /* [0x3ff2006c] */ # 224b: 322c9b + or a3, a3, a4 # 224e: 403320 + memw # 2251: c02000 + s32i a3, a12, 0x26c /* a3 -> [0x3ff2006c] */ # 2254: 326c9b + movi a2, 4 /* 0x00000004 */ # 2257: 0c42 + memw # 2259: c02000 + l32i a0, a12, 0x26c /* [0x3ff2006c] */ # 225c: 022c9b + or a0, a0, a2 # 225f: 200020 + memw # 2262: c02000 + movi a2, 0 /* 0x00000000 */ # 2265: 0c02 + movi a3, info+0x1e # 2267: 31d0ff + s32i a0, a12, 0x26c /* a0 -> [0x3ff2006c] */ # 226a: 026c9b + call0 wDev_SetMacAddress # 226d: 01d5ffc0 + # 2271: 0000 + movi a8, g_ic+0x180 # 2273: 81ceff + movi a7, 0 /* 0x00000000 */ # 2276: 0c07 + s8i a7, a8, 84 /* 0x00 -> [g_ic+0x1d4] */ # 2278: 724854 + call0 wDevEnableRx # 227b: 01d3ffc0 + # 227f: 0000 +.Lbr269: l32i a12, sp, 4 /* [(local1)] */ # 2281: c811 + l32i a0, sp, 0 /* [(local0)] */ # 2283: 0801 + addi sp, sp, 16 /* (top of frame) */ # 2285: 12c110 + ret # 2288: 0df0 + + .literal_position # 228c: 00000000 + +# Function @ .irom0.text+0x2290 + .balign 4 + .global wifi_set_promiscuous_rx_cb + .type wifi_set_promiscuous_rx_cb, @function +wifi_set_promiscuous_rx_cb: + movi a3, .Ldata001 # 2290: 31ffff + s32i a2, a3, 0x11c /* arg0 -> [promiscuous_cb] */ # 2293: 226347 + ret /* arg0 */ # 2296: 0df0 + + .literal_position # 2298: 00000000 + # 229c: 00000000 + # 22a0: 00000000 + +# Function @ .irom0.text+0x22a4 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word @ -0x8 +# (local3): word @ -0x4 + .balign 4 + .global wifi_get_ip_info + .type wifi_get_ip_info, @function +wifi_get_ip_info: + addi sp, sp, -16 /* (local0) */ # 22a4: 12c1f0 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 22a7: d921 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 22a9: 0901 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 22ab: c911 + s32i a14, sp, 12 /* a14 -> [(local3)] */ # 22ad: e931 + mov a12, a3 /* arg1 */ # 22af: cd03 + mov a14, a2 /* arg0 */ # 22b1: ed02 + call0 .Lfunc005 # 22b3: 4599fe + mov a13, a2 # 22b6: dd02 + bgeui a14, 2, .Lbr273 # 22b8: f62e41 + beqz a12, .Lbr273 # 22bb: bcec + beqz a2, .Lbr270 # 22bd: ac52 + mov a2, a12 /* arg1 */ # 22bf: 2d0c + addi a3, a13, 4 # 22c1: 4b3d + movi a4, 4 /* 0x00000004 */ # 22c3: 0c44 + call0 memcpy # 22c5: 01f4ffc0 + # 22c9: 0000 + addi a2, a12, 4 /* arg1+0x4 */ # 22cb: 4b2c + addi a3, a13, 8 # 22cd: 8b3d + movi a4, 4 /* 0x00000004 */ # 22cf: 0c44 + call0 memcpy # 22d1: 01f2ffc0 + # 22d5: 0000 + addi a2, a12, 8 /* arg1+0x8 */ # 22d7: 8b2c + addi a3, a13, 12 # 22d9: cb3d + movi a4, 4 /* 0x00000004 */ # 22db: 0c44 + call0 memcpy # 22dd: 01f0ffc0 + # 22e1: 0000 + j .Lbr271 # 22e3: c60100 +.Lbr270: movi a0, 0 /* 0x00000000 */ # 22e6: 0c00 + s32i a0, a12, 0 /* 0x00000000 -> [arg1] */ # 22e8: 090c + s32i a0, a12, 4 /* 0x00000000 -> [arg1+0x4] */ # 22ea: 091c + s32i a0, a12, 8 /* 0x00000000 -> [arg1+0x8] */ # 22ec: 092c +.Lbr271: movi a2, 1 /* 0x00000001 */ # 22ee: 0c12 +.Lbr272: l32i a12, sp, 4 /* [(local1)] */ # 22f0: c811 + l32i a13, sp, 8 /* [(local2)] */ # 22f2: d821 + l32i a14, sp, 12 /* [(local3)] */ # 22f4: e831 + l32i a0, sp, 0 /* [(local0)] */ # 22f6: 0801 + addi sp, sp, 16 /* (top of frame) */ # 22f8: 12c110 + ret # 22fb: 0df0 +.Lbr273: movi a2, 0 /* 0x00000000 */ # 22fd: 0c02 + j .Lbr272 # 22ff: 46fbff + + .literal_position # 2304: 00000000 + # 2308: 00000000 + # 230c: 00000000 + # 2310: 00000000 + # 2314: 00000000 + # 2318: 00000000 + # 231c: 00000000 + # 2320: 00000000 + # 2324: 00000000 + # 2328: 00000000 + # 232c: 00000000 + # 2330: 00000000 + # 2334: 00000000 + # 2338: 00000000 + # 233c: 00000000 + +# Function @ .irom0.text+0x2340 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word @ -0x8 +# (local3): word @ -0x4 + .balign 4 + .global wifi_set_ip_info + .type wifi_set_ip_info, @function +wifi_set_ip_info: + addi sp, sp, -16 /* (local0) */ # 2340: 12c1f0 + s32i a14, sp, 12 /* a14 -> [(local3)] */ # 2343: e931 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 2345: 0901 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 2347: c911 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 2349: d921 + mov a12, a3 /* arg1 */ # 234b: cd03 + mov a13, a2 /* arg0 */ # 234d: dd02 + call0 .Lfunc005 # 234f: 858ffe + mov a14, a2 # 2352: ed02 + bgeui a13, 2, .Lbr274 # 2354: f62d15 + beqz a12, .Lbr274 # 2357: 9c2c + bnez a13, .Lbr275 # 2359: dc5d + movi a0, dhcpc_flag # 235b: 01eaff + movi a2, user_init_flag # 235e: 21eaff + l8ui a0, a0, 0 /* [dhcpc_flag] */ # 2361: 020000 + l8ui a2, a2, 0 /* [user_init_flag] */ # 2364: 220200 + bnei a0, 1, .Lbr279 # 2367: 66104d + bnei a2, 1, .Lbr279 # 236a: 66124a +.Lbr274: movi a2, 0 /* 0x00000000 */ # 236d: 0c02 + j .Lbr278 # 236f: 060e00 +.Lbr275: movi a2, info # 2372: 21e6ff + mov a3, a12 /* arg1 */ # 2375: 3d0c + movi a4, 4 /* 0x00000004 */ # 2377: 0c44 + call0 memcpy # 2379: 01eaffc0 + # 237d: 0000 + movi a2, info+0x4 # 237f: 21e4ff + addi a3, a12, 4 /* arg1+0x4 */ # 2382: 4b3c + movi a4, 4 /* 0x00000004 */ # 2384: 0c44 + call0 memcpy # 2386: 01e8ffc0 + # 238a: 0000 + movi a2, info+0x8 # 238c: 21e2ff + addi a3, a12, 8 /* arg1+0x8 */ # 238f: 8b3c + movi a4, 4 /* 0x00000004 */ # 2391: 0c44 + call0 memcpy # 2393: 01e6ffc0 + # 2397: 0000 +.Lbr276: beqz a14, .Lbr277 # 2399: 8cce + mov a2, a14 # 239b: 2d0e + mov a3, a12 /* arg1 */ # 239d: 3d0c + addi a4, a12, 4 /* arg1+0x4 */ # 239f: 4b4c + addi a5, a12, 8 /* arg1+0x8 */ # 23a1: 8b5c + call0 netif_set_addr # 23a3: 01e3ffc0 + # 23a7: 0000 +.Lbr277: movi a2, 1 /* 0x00000001 */ # 23a9: 0c12 +.Lbr278: l32i a12, sp, 4 /* [(local1)] */ # 23ab: c811 + l32i a13, sp, 8 /* [(local2)] */ # 23ad: d821 + l32i a14, sp, 12 /* [(local3)] */ # 23af: e831 + l32i a0, sp, 0 /* [(local0)] */ # 23b1: 0801 + addi sp, sp, 16 /* (top of frame) */ # 23b3: 12c110 + ret # 23b6: 0df0 +.Lbr279: bnez a13, .Lbr275 # 23b8: 566dfb + movi a2, info+0xc # 23bb: 21d7ff + mov a3, a12 /* arg1 */ # 23be: 3d0c + movi a4, 4 /* 0x00000004 */ # 23c0: 0c44 + call0 memcpy # 23c2: 01dcffc0 + # 23c6: 0000 + movi a2, info+0x10 # 23c8: 21d5ff + addi a3, a12, 4 /* arg1+0x4 */ # 23cb: 4b3c + movi a4, 4 /* 0x00000004 */ # 23cd: 0c44 + call0 memcpy # 23cf: 01daffc0 + # 23d3: 0000 + movi a2, info+0x14 # 23d5: 21d2ff + addi a3, a12, 8 /* arg1+0x8 */ # 23d8: 8b3c + movi a4, 4 /* 0x00000004 */ # 23da: 0c44 + call0 memcpy # 23dc: 01d8ffc0 + # 23e0: 0000 + j .Lbr276 # 23e2: c6ecff + + .literal_position # 23e8: 00000000 + # 23ec: 00000000 + # 23f0: 00000000 + # 23f4: 00000000 + # 23f8: 00000000 + +# Function @ .irom0.text+0x23fc +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 + .global wifi_get_macaddr + .type wifi_get_macaddr, @function +wifi_get_macaddr: + addi sp, sp, -16 /* (local0) */ # 23fc: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 23ff: 0901 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 2401: d921 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 2403: c911 + mov a13, a3 /* arg1 */ # 2405: dd03 + mov a12, a2 /* arg0 */ # 2407: cd02 + call0 .Lfunc005 # 2409: c583fe + mov a0, a2 # 240c: 0d02 + bgeui a12, 2, .Lbr280 # 240e: f62c13 + beqz a13, .Lbr280 # 2411: 9c0d + beqz a2, .Lbr284 # 2413: acd2 + mov a2, a13 /* arg1 */ # 2415: 2d0d + movi a4, 6 /* 0x00000006 */ # 2417: 0c64 + addi a3, a0, 41 # 2419: 32c029 + call0 memcpy # 241c: 01f5ffc0 + # 2420: 0000 + j .Lbr282 # 2422: 460400 +.Lbr280: movi a2, 0 /* 0x00000000 */ # 2425: 0c02 + j .Lbr283 # 2427: 860300 +.Lbr281: mov a2, a13 /* arg1 */ # 242a: 2d0d + movi a3, info+0x18 # 242c: 31efff + movi a4, 6 /* 0x00000006 */ # 242f: 0c64 + call0 memcpy # 2431: 01f0ffc0 + # 2435: 0000 +.Lbr282: movi a2, 1 /* 0x00000001 */ # 2437: 0c12 +.Lbr283: l32i a12, sp, 4 /* [(local1)] */ # 2439: c811 + l32i a13, sp, 8 /* [(local2)] */ # 243b: d821 + l32i a0, sp, 0 /* [(local0)] */ # 243d: 0801 + addi sp, sp, 16 /* (top of frame) */ # 243f: 12c110 + ret # 2442: 0df0 +.Lbr284: bnez a12, .Lbr281 # 2444: 562cfe + mov a2, a13 /* arg1 */ # 2447: 2d0d + movi a3, info+0x1e # 2449: 31e8ff + movi a4, 6 /* 0x00000006 */ # 244c: 0c64 + call0 memcpy # 244e: 01eaffc0 + # 2452: 0000 + j .Lbr282 # 2454: c6f7ff + + .literal_position # 2458: 00000000 + # 245c: 00000000 + # 2460: 00000000 + # 2464: 00000000 + # 2468: 00000000 + # 246c: 00000000 + # 2470: 00000000 + # 2474: 00000000 + # 2478: 00000000 + # 247c: 00000000 + # 2480: 00000000 + # 2484: 00000000 + +# Function @ .irom0.text+0x2488 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word @ -0x8 +# (local3): word @ -0x4 + .balign 4 + .global wifi_set_macaddr + .type wifi_set_macaddr, @function +wifi_set_macaddr: + addi sp, sp, -16 /* (local0) */ # 2488: 12c1f0 + s32i a14, sp, 12 /* a14 -> [(local3)] */ # 248b: e931 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 248d: 0901 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 248f: c911 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 2491: d921 + mov a12, a3 /* arg1 */ # 2493: cd03 + mov a13, a2 /* arg0 */ # 2495: dd02 + call0 .Lfunc005 # 2497: 057bfe + mov a14, a2 # 249a: ed02 + bgeui a13, 2, .Lbr285 # 249c: f62d09 + beqz a12, .Lbr285 # 249f: 8c6c + bnez a13, .Lbr287 # 24a1: dc3d + call0 wifi_get_opmode # 24a3: 050000 + bnei a2, 2, .Lbr289 # 24a6: 662251 +.Lbr285: movi a2, 0 /* 0x00000000 */ # 24a9: 0c02 +.Lbr286: l32i a12, sp, 4 /* [(local1)] */ # 24ab: c811 + l32i a13, sp, 8 /* [(local2)] */ # 24ad: d821 + l32i a14, sp, 12 /* [(local3)] */ # 24af: e831 + l32i a0, sp, 0 /* [(local0)] */ # 24b1: 0801 + addi sp, sp, 16 /* (top of frame) */ # 24b3: 12c110 + ret # 24b6: 0df0 +.Lbr287: call0 wifi_get_opmode # 24b8: 050000 + beqi a2, 1, .Lbr285 # 24bb: 2612ea + mov a3, a12 /* arg1 */ # 24be: 3d0c + movi a13, info+0x18 # 24c0: d1e6ff + movi a4, 6 /* 0x00000006 */ # 24c3: 0c64 + mov a2, a13 /* info+0x18 */ # 24c5: 2d0d + call0 memcmp # 24c7: 01e6ffc0 + # 24cb: 0000 + beqz a2, .Lbr288 # 24cd: ac52 + mov a2, a13 /* info+0x18 */ # 24cf: 2d0d + mov a3, a12 /* arg1 */ # 24d1: 3d0c + movi a4, 6 /* 0x00000006 */ # 24d3: 0c64 + call0 memcpy # 24d5: 01e3ffc0 + # 24d9: 0000 + beqz a14, .Lbr288 # 24db: 9c7e + mov a3, a12 /* arg1 */ # 24dd: 3d0c + addi a2, a14, 41 # 24df: 22ce29 + movi a4, 6 /* 0x00000006 */ # 24e2: 0c64 + call0 memcpy # 24e4: 01e1ffc0 + # 24e8: 0000 + call0 wifi_softap_stop # 24ea: 01e0ffc0 + # 24ee: 0000 + call0 wifi_softap_start # 24f0: 01e0ffc0 + # 24f4: 0000 +.Lbr288: movi a2, 1 /* 0x00000001 */ # 24f6: 0c12 + j .Lbr286 # 24f8: c6ebff +.Lbr289: mov a3, a12 /* arg1 */ # 24fb: 3d0c + movi a13, info+0x1e # 24fd: d1d7ff + movi a4, 6 /* 0x00000006 */ # 2500: 0c64 + mov a2, a13 /* info+0x1e */ # 2502: 2d0d + call0 memcmp # 2504: 01dcffc0 + # 2508: 0000 + beqz a2, .Lbr288 # 250a: 1682fe + mov a2, a13 /* info+0x1e */ # 250d: 2d0d + mov a3, a12 /* arg1 */ # 250f: 3d0c + movi a4, 6 /* 0x00000006 */ # 2511: 0c64 + call0 memcpy # 2513: 01d9ffc0 + # 2517: 0000 + beqz a14, .Lbr288 # 2519: 169efd + mov a3, a12 /* arg1 */ # 251c: 3d0c + addi a2, a14, 41 # 251e: 22ce29 + movi a4, 6 /* 0x00000006 */ # 2521: 0c64 + call0 memcpy # 2523: 01d6ffc0 + # 2527: 0000 + call0 wifi_station_stop # 2529: 01d5ffc0 + # 252d: 0000 + call0 wifi_station_start # 252f: 01d5ffc0 + # 2533: 0000 + call0 wifi_station_connect # 2535: 050000 + j .Lbr288 # 2538: 86eeff + + .literal_position # 253c: 00000000 + +# Function @ .irom0.text+0x2540 + .balign 4 + .global wifi_status_led_install + .type wifi_status_led_install, @function +wifi_status_led_install: + extui a6, a4, 0, 2 # 2540: 406014 + movi a8, 1 /* 0x00000001 */ # 2543: 0c18 + movi a9, g_ic+0x161 # 2545: 91fdff + movi a7, 4 /* 0x00000004 */ # 2548: 0c47 + and a7, a4, a7 # 254a: 707410 + s8i a2, a9, 129 /* arg0 -> [g_ic+0x1e2] */ # 254d: 224981 + s8i a8, a9, 130 /* 0x01 -> [g_ic+0x1e3] */ # 2550: 824982 + s8i a8, a9, 128 /* 0x01 -> [g_ic+0x1e1] */ # 2553: 824980 + slli a7, a7, 2 # 2556: e07711 + or a6, a6, a7 # 2559: 706620 + slli a6, a6, 4 # 255c: c06611 + movi a7, -305 /* 0xfffffecf */ # 255f: 72aecf + memw # 2562: c02000 + l32i a5, a3, 0 /* [arg1] */ # 2565: 5803 + and a5, a5, a7 # 2567: 705510 + or a5, a5, a6 # 256a: 605520 + memw # 256d: c02000 + s32i a5, a3, 0 /* a5 -> [arg1] */ # 2570: 5903 + ret /* arg0 */ # 2572: 0df0 + + .literal_position # 2574: 0000ff00 + # 2578: 00feff5f + # 257c: 000e0060 + # 2580: 00feef3f + # 2584: 00060060 + +# Function @ .irom0.text+0x2588 + .balign 4 + .global system_uart_swap + .type system_uart_swap, @function +system_uart_swap: + movi a4, 0x00ff0000 # 2588: 41fbff + movi a5, 0x5ffffe00 # 258b: 51fbff + memw # 258e: c02000 + l32i a2, a5, 0x21c /* [0x6000001c] */ # 2591: 222587 + bnone a4, a2, .Lbr291 # 2594: 270408 +.Lbr290: memw # 2597: c02000 + l32i a3, a5, 0x21c /* [0x6000001c] */ # 259a: 322587 + bany a3, a4, .Lbr290 # 259d: 4783f6 +.Lbr291: movi a5, 0x60000e00 # 25a0: 51f7ff + memw # 25a3: c02000 + l32i a6, a5, 0x11c /* [0x60000f1c] */ # 25a6: 622547 + bnone a4, a6, .Lbr293 # 25a9: 670408 +.Lbr292: memw # 25ac: c02000 + l32i a7, a5, 0x11c /* [0x60000f1c] */ # 25af: 722547 + bany a7, a4, .Lbr292 # 25b2: 4787f6 +.Lbr293: movi a9, 0x3feffe00 # 25b5: 91f2ff + movi a4, -305 /* 0xfffffecf */ # 25b8: 42aecf + movi a3, 256 /* 0x00000100 */ # 25bb: 32a100 + movi a2, 0x60000600 # 25be: 21f1ff + memw # 25c1: c02000 + l32i a5, a2, 0x208 /* [0x60000808] */ # 25c4: 522282 + and a5, a5, a4 # 25c7: 405510 + or a5, a5, a3 # 25ca: 305520 + memw # 25cd: c02000 + s32i a5, a2, 0x208 /* a5 -> [0x60000808] */ # 25d0: 526282 + memw # 25d3: c02000 + l32i a11, a2, 0x210 /* [0x60000810] */ # 25d6: b22284 + and a11, a11, a4 # 25d9: 40bb10 + or a11, a11, a3 # 25dc: 30bb20 + memw # 25df: c02000 + s32i a11, a2, 0x210 /* a11 -> [0x60000810] */ # 25e2: b26284 + movi a10, 4 /* 0x00000004 */ # 25e5: 0c4a + memw # 25e7: c02000 + l32i a8, a9, 0x228 /* [0x3ff00028] */ # 25ea: 82298a + or a8, a8, a10 # 25ed: a08820 + memw # 25f0: c02000 + s32i a8, a9, 0x228 /* a8 -> [0x3ff00028] */ # 25f3: 82698a + ret /* 0x60000600 */ # 25f6: 0df0 + + .literal_position # 25f8: 9c010000 + +# Function @ .irom0.text+0x25fc + .balign 4 + .global system_get_sdk_version + .type system_get_sdk_version, @function +system_get_sdk_version: + movi a2, .Lstr018 # 25fc: 21ffff + ret /* .Lstr018 */ # 25ff: 0df0 + + .section .rodata.str1.4, "MSa", @progbits, 1 + +.Lstr001: .asciz "DEFERRED FUNC NUMBER IS BIGGER THAN 10\n" # 0: 44454645 + # 4: 52524544 + # 8: 2046554e + # c: 43204e55 + # 10: 4d424552 + # 14: 20495320 + # 18: 42494747 + # 1c: 45522054 + # 20: 48414e20 + # 24: 31300a00 +.Lstr002: .asciz "failed: need boot >= 1.3\n" # 28: 6661696c + # 2c: 65643a20 + # 30: 6e656564 + # 34: 20626f6f + # 38: 74203e3d + # 3c: 20312e33 + # 40: 0a00 + .balign 4 +.Lstr003: .asciz "restart to use user bin @ %x\n" # 44: 72657374 + # 48: 61727420 + # 4c: 746f2075 + # 50: 73652075 + # 54: 73657220 + # 58: 62696e20 + # 5c: 40202578 + # 60: 0a00 + .balign 4 +.Lstr004: .asciz "test already passed.\n" # 64: 74657374 + # 68: 20616c72 + # 6c: 65616479 + # 70: 20706173 + # 74: 7365642e + # 78: 0a00 + .balign 4 +.Lstr005: .asciz "reboot to use test bin @ %x\n" # 7c: 7265626f + # 80: 6f742074 + # 84: 6f207573 + # 88: 65207465 + # 8c: 73742062 + # 90: 696e2040 + # 94: 2025780a + # 98: 00 + .balign 4 +.Lstr006: .asciz "don't supported type.\n" # 9c: 646f6e27 + # a0: 74207375 + # a4: 70706f72 + # a8: 74656420 + # ac: 74797065 + # b0: 2e0a00 + .balign 4 +.Lstr007: .asciz "reboot to use" # b4: 7265626f + # b8: 6f742074 + # bc: 6f207573 + # c0: 6500 + .balign 4 +.Label004: .word 0x00000a31 # c4: 310a0000 +.Label005: .word 0x00000a32 # c8: 320a0000 +.Lstr008: .asciz "deep sleep %ds\n\n" # cc: 64656570 + # d0: 20736c65 + # d4: 65702025 + # d8: 64730a0a + # dc: 00 + .balign 4 +.Lstr009: .asciz "ip:%d.%d.%d.%d,mask:%d.%d.%d.%d,gw:%d.%d.%d.%d" # e0: 69703a25 + # e4: 642e2564 + # e8: 2e25642e + # ec: 25642c6d + # f0: 61736b3a + # f4: 25642e25 + # f8: 642e2564 + # fc: 2e25642c + # 100: 67773a25 + # 104: 642e2564 + # 108: 2e25642e + # 10c: 256400 + .balign 4 +.Label006: .word 0x0000000a # 110: 0a000000 +.Lstr010: .asciz "%s: 0x%x ~ 0x%x, len: %d\n" # 114: 25733a20 + # 118: 30782578 + # 11c: 207e2030 + # 120: 7825782c + # 124: 206c656e + # 128: 3a202564 + # 12c: 0a00 + .balign 4 +.Lstr011: .asciz "data " # 130: 64617461 + # 134: 202000 + .balign 4 +.Lstr012: .asciz "rodata" # 138: 726f6461 + # 13c: 746100 + .balign 4 +.Lstr013: .asciz "bss " # 140: 62737320 + # 144: 202000 + .balign 4 +.Lstr014: .asciz "heap " # 148: 68656170 + # 14c: 202000 + .balign 4 +.Lstr015: .asciz "[W]sec %d error\n" # 150: 5b575d73 + # 154: 65632025 + # 158: 64206572 + # 15c: 726f720a + # 160: 00 + .balign 4 +.Lstr016: .asciz "current_router_id is %d\n" # 164: 63757272 + # 168: 656e745f + # 16c: 726f7574 + # 170: 65725f69 + # 174: 64206973 + # 178: 2025640a + # 17c: 00 + .balign 4 +.Lstr017: .asciz "ESP_%02X%02X%02X" # 180: 4553505f + # 184: 25303258 + # 188: 25303258 + # 18c: 25303258 + # 190: 00 + .balign 4 +.Label007: .byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00 +.Lstr018: .asciz "0.9.9" # 19c: 302e392e + # 1a0: 3900 diff --git a/binary_sdk/libmain_stage1/xtensa_context.S b/binary_sdk/libmain_stage1/xtensa_context.S new file mode 100644 index 0000000..37dec9d --- /dev/null +++ b/binary_sdk/libmain_stage1/xtensa_context.S @@ -0,0 +1,43 @@ + + .section .text, "ax", @progbits + +# Function @ .text+0x0 + .balign 4 + .literal_position + .global _xt_context_save + .type _xt_context_save, @function +_xt_context_save: + s32i a2, sp, 20 /* arg0 -> [(FP)+0x14] */ # 0: 2951 + s32i a3, sp, 24 /* arg1 -> [(FP)+0x18] */ # 2: 3961 + s32i a4, sp, 28 /* arg2 -> [(FP)+0x1c] */ # 4: 4971 + s32i a5, sp, 32 /* arg3 -> [(FP)+0x20] */ # 6: 5981 + s32i a6, sp, 36 /* arg4 -> [(FP)+0x24] */ # 8: 6991 + s32i a7, sp, 40 /* arg5 -> [(FP)+0x28] */ # a: 79a1 + s32i a8, sp, 44 /* a8 -> [(FP)+0x2c] */ # c: 89b1 + s32i a9, sp, 48 /* a9 -> [(FP)+0x30] */ # e: 99c1 + s32i a10, sp, 52 /* a10 -> [(FP)+0x34] */ # 10: a9d1 + s32i a11, sp, 56 /* a11 -> [(FP)+0x38] */ # 12: b9e1 + rsr a3, sar # 14: 300303 + s32i a3, sp, 76 /* a3 -> [(FP)+0x4c] */ # 17: 326113 + ret /* arg0 */ # 1a: 0df0 + +# Function @ .text+0x1c + .balign 4 + .global _xt_context_restore + .type _xt_context_restore, @function +_xt_context_restore: + l32i a3, sp, 76 /* [(FP)+0x4c] */ # 1c: 322113 + l32i a2, sp, 20 /* [(FP)+0x14] */ # 1f: 2851 + wsr a3, sar # 21: 300313 + l32i a3, sp, 24 /* [(FP)+0x18] */ # 24: 3861 + l32i a4, sp, 28 /* [(FP)+0x1c] */ # 26: 4871 + l32i a5, sp, 32 /* [(FP)+0x20] */ # 28: 5881 + l32i a6, sp, 36 /* [(FP)+0x24] */ # 2a: 6891 + l32i a7, sp, 40 /* [(FP)+0x28] */ # 2c: 78a1 + l32i a8, sp, 44 /* [(FP)+0x2c] */ # 2e: 88b1 + l32i a9, sp, 48 /* [(FP)+0x30] */ # 30: 98c1 + l32i a10, sp, 52 /* [(FP)+0x34] */ # 32: a8d1 + l32i a11, sp, 56 /* [(FP)+0x38] */ # 34: b8e1 + l32i a12, sp, 60 /* [(FP)+0x3c] */ # 36: c8f1 + l32i a13, sp, 64 /* [(FP)+0x40] */ # 38: d22110 + ret /* [(FP)+0x14] */ # 3b: 0df0 diff --git a/binary_sdk/libmain_stage1/xtensa_init.S b/binary_sdk/libmain_stage1/xtensa_init.S new file mode 100644 index 0000000..e69de29 diff --git a/binary_sdk/libnet80211/ieee80211.S b/binary_sdk/libnet80211/ieee80211.S index 7674b1f..18ec24a 100644 --- a/binary_sdk/libnet80211/ieee80211.S +++ b/binary_sdk/libnet80211/ieee80211.S @@ -31,6 +31,7 @@ sdk_xieee80211Queue: # (local4): word @ -0x10 # (local5): word @ -0xc # (local6): word[2] @ -0x8 + .balign 4 .Lfunc001: movi a5, 131 /* 0x00000083 */ # 10: 52a083 movi a6, 0x000009b4 # 13: 61fcff addi sp, sp, -32 /* (local0) */ # 16: 12c1e0 @@ -99,6 +100,7 @@ sdk_xieee80211Queue: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_ieee80211_ifattach .type sdk_ieee80211_ifattach, @function sdk_ieee80211_ifattach: @@ -145,6 +147,7 @@ sdk_ieee80211_ifattach: # Function @ .irom0.text+0x124 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_ieee80211_mhz2ieee .type sdk_ieee80211_mhz2ieee, @function sdk_ieee80211_mhz2ieee: @@ -185,6 +188,7 @@ sdk_ieee80211_mhz2ieee: .literal_position # 17c: ffff0000 # Function @ .irom0.text+0x180 + .balign 4 .global sdk_ieee80211_chan2ieee .type sdk_ieee80211_chan2ieee, @function sdk_ieee80211_chan2ieee: @@ -204,6 +208,7 @@ sdk_ieee80211_chan2ieee: # 1a4: b4090000 # Function @ .irom0.text+0x1a8 + .balign 4 .global sdk_ieee80211_ieee2mhz .type sdk_ieee80211_ieee2mhz, @function sdk_ieee80211_ieee2mhz: @@ -230,6 +235,7 @@ sdk_ieee80211_ieee2mhz: .balign 4 # Function @ .irom0.text+0x1e0 + .balign 4 .global sdk_ieee80211_find_channel .type sdk_ieee80211_find_channel, @function sdk_ieee80211_find_channel: @@ -250,6 +256,7 @@ sdk_ieee80211_find_channel: ret /* 0x00000000 */ # 206: 0df0 # Function @ .irom0.text+0x208 + .balign 4 .global sdk_ieee80211_find_channel_byieee .type sdk_ieee80211_find_channel_byieee, @function sdk_ieee80211_find_channel_byieee: @@ -305,6 +312,7 @@ sdk_ieee80211_find_channel_byieee: # (local0): word[4] @ -0x20 # (local1): word @ -0x10 # (local2): word[3] @ -0xc + .balign 4 .global sdk_wifi_mode_set .type sdk_wifi_mode_set, @function sdk_wifi_mode_set: diff --git a/binary_sdk/libnet80211/ieee80211_action.S b/binary_sdk/libnet80211/ieee80211_action.S index c04d55e..6431dfe 100644 --- a/binary_sdk/libnet80211/ieee80211_action.S +++ b/binary_sdk/libnet80211/ieee80211_action.S @@ -12,6 +12,8 @@ .section .irom0.text, "ax", @progbits # Function @ .irom0.text+0x0 + .balign 4 + .literal_position .Lfunc001: movi a2, -1 /* 0xffffffff */ # 0: 7cf2 ret /* 0xffffffff */ # 2: 0df0 @@ -20,6 +22,7 @@ # c: 08000000 # Function @ .irom0.text+0x10 + .balign 4 .global sdk_ieee80211_send_action_register .type sdk_ieee80211_send_action_register, @function sdk_ieee80211_send_action_register: @@ -47,6 +50,7 @@ sdk_ieee80211_send_action_register: # Function @ .irom0.text+0x44 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_ieee80211_send_action_unregister .type sdk_ieee80211_send_action_unregister, @function sdk_ieee80211_send_action_unregister: @@ -66,6 +70,7 @@ sdk_ieee80211_send_action_unregister: # Function @ .irom0.text+0x68 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_ieee80211_send_action .type sdk_ieee80211_send_action, @function sdk_ieee80211_send_action: @@ -103,6 +108,7 @@ sdk_ieee80211_send_action: .balign 4 # Function @ .irom0.text+0xbc + .balign 4 .Lfunc002: movi a2, -1 /* 0xffffffff */ # bc: 7cf2 ret /* 0xffffffff */ # be: 0df0 @@ -111,6 +117,7 @@ sdk_ieee80211_send_action: # c8: 14000000 # Function @ .irom0.text+0xcc + .balign 4 .global sdk_ieee80211_recv_action_register .type sdk_ieee80211_recv_action_register, @function sdk_ieee80211_recv_action_register: @@ -138,6 +145,7 @@ sdk_ieee80211_recv_action_register: # Function @ .irom0.text+0x100 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_ieee80211_recv_action_unregister .type sdk_ieee80211_recv_action_unregister, @function sdk_ieee80211_recv_action_unregister: @@ -157,6 +165,7 @@ sdk_ieee80211_recv_action_unregister: # Function @ .irom0.text+0x124 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_ieee80211_recv_action .type sdk_ieee80211_recv_action, @function sdk_ieee80211_recv_action: diff --git a/binary_sdk/libnet80211/ieee80211_crypto.S b/binary_sdk/libnet80211/ieee80211_crypto.S index 951a8da..4f863e0 100644 --- a/binary_sdk/libnet80211/ieee80211_crypto.S +++ b/binary_sdk/libnet80211/ieee80211_crypto.S @@ -2,6 +2,8 @@ .section .irom0.text, "ax", @progbits # Function @ .irom0.text+0x0 + .balign 4 + .literal_position .global sdk_ieee80211_crypto_attach .type sdk_ieee80211_crypto_attach, @function sdk_ieee80211_crypto_attach: @@ -9,6 +11,7 @@ sdk_ieee80211_crypto_attach: .balign 4 # Function @ .irom0.text+0x4 + .balign 4 .global sdk_ieee80211_crypto_available .type sdk_ieee80211_crypto_available, @function sdk_ieee80211_crypto_available: @@ -16,6 +19,7 @@ sdk_ieee80211_crypto_available: ret /* 0x00000000 */ # 6: 0df0 # Function @ .irom0.text+0x8 + .balign 4 .global sdk_ieee80211_crypto_setkey .type sdk_ieee80211_crypto_setkey, @function sdk_ieee80211_crypto_setkey: @@ -28,6 +32,7 @@ sdk_ieee80211_crypto_setkey: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_ieee80211_crypto_encap .type sdk_ieee80211_crypto_encap, @function sdk_ieee80211_crypto_encap: @@ -69,6 +74,7 @@ sdk_ieee80211_crypto_encap: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_ieee80211_crypto_decap .type sdk_ieee80211_crypto_decap, @function sdk_ieee80211_crypto_decap: diff --git a/binary_sdk/libnet80211/ieee80211_crypto_ccmp.S b/binary_sdk/libnet80211/ieee80211_crypto_ccmp.S index 360f2e9..46245a3 100644 --- a/binary_sdk/libnet80211/ieee80211_crypto_ccmp.S +++ b/binary_sdk/libnet80211/ieee80211_crypto_ccmp.S @@ -18,6 +18,7 @@ sdk_ccmp: .word 0x00000003 # 0: 03000000 .literal_position # 0: 00000000 # Function @ .irom0.text+0x4 + .balign 4 .Lfunc001: ssai 8 # 4: 004840 l32i a5, a2, 144 /* [arg0+0x90] */ # 7: 522224 l16ui a6, a3, 22 /* [arg1+0x16] */ # a: 62130b @@ -69,6 +70,7 @@ sdk_ccmp: .word 0x00000003 # 0: 03000000 # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .Lfunc002: addi sp, sp, -16 /* (local0) */ # 80: 12c1f0 l32i a8, a3, 4 /* [arg1+0x4] */ # 83: 8813 s32i a0, sp, 4 /* a0 -> [(local1)] */ # 85: 0911 diff --git a/binary_sdk/libnet80211/ieee80211_crypto_tkip.S b/binary_sdk/libnet80211/ieee80211_crypto_tkip.S index 7c780d9..53f1ee0 100644 --- a/binary_sdk/libnet80211/ieee80211_crypto_tkip.S +++ b/binary_sdk/libnet80211/ieee80211_crypto_tkip.S @@ -24,6 +24,7 @@ sdk_tkip: .word 0x00000002 # 0: 02000000 # 4: 00000000 # Function @ .irom0.text+0x8 + .balign 4 .Lfunc001: movi a5, sdk_g_ic # 8: 51feff ssai 8 # b: 004840 l32i a5, a5, 28 /* [sdk_g_ic+0x1c] */ # e: 5875 @@ -85,6 +86,7 @@ sdk_tkip: .word 0x00000002 # 0: 02000000 # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .Lfunc002: addi sp, sp, -16 /* (local0) */ # a0: 12c1f0 l32i a8, a3, 4 /* [arg1+0x4] */ # a3: 8813 s32i a0, sp, 4 /* a0 -> [(local1)] */ # a5: 0911 diff --git a/binary_sdk/libnet80211/ieee80211_crypto_wep.S b/binary_sdk/libnet80211/ieee80211_crypto_wep.S index 6d62ef3..072a743 100644 --- a/binary_sdk/libnet80211/ieee80211_crypto_wep.S +++ b/binary_sdk/libnet80211/ieee80211_crypto_wep.S @@ -18,6 +18,7 @@ sdk_wep: .word 0x00000001 # 0: 01000000 .literal_position # 0: 00000000 # Function @ .irom0.text+0x4 + .balign 4 .Lfunc001: bnez a3, .Lbr001 # 4: cc33 movi a3, 0 /* 0x00000000 */ # 6: 0c03 j .Lbr003 # 8: 461300 @@ -55,6 +56,7 @@ sdk_wep: .word 0x00000001 # 0: 01000000 .balign 4 # Function @ .irom0.text+0x60 + .balign 4 .Lfunc002: l32i a5, a2, 152 /* [arg0+0x98] */ # 60: 522226 l32i a8, a3, 4 /* [arg1+0x4] */ # 63: 8813 l16ui a2, a3, 22 /* [arg1+0x16] */ # 65: 22130b diff --git a/binary_sdk/libnet80211/ieee80211_ets.S b/binary_sdk/libnet80211/ieee80211_ets.S index 91ae448..8ce7df3 100644 --- a/binary_sdk/libnet80211/ieee80211_ets.S +++ b/binary_sdk/libnet80211/ieee80211_ets.S @@ -8,6 +8,7 @@ # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .global sdk_ieee80211_getmgtframe .type sdk_ieee80211_getmgtframe, @function sdk_ieee80211_getmgtframe: diff --git a/binary_sdk/libnet80211/ieee80211_hostap.S b/binary_sdk/libnet80211/ieee80211_hostap.S index c92dbde..6090d75 100644 --- a/binary_sdk/libnet80211/ieee80211_hostap.S +++ b/binary_sdk/libnet80211/ieee80211_hostap.S @@ -2,6 +2,8 @@ .section .text, "ax", @progbits # Function @ .text+0x0 + .balign 4 + .literal_position .Lfunc001: movi a4, 136 /* 0x00000088 */ # 0: 42a088 movi a6, 24 /* 0x00000018 */ # 3: 1c86 movi a5, 30 /* 0x0000001e */ # 5: 1ce5 @@ -64,6 +66,7 @@ sdk_PendFreeBcnEb: # (local4): word @ -0x10 # (local5): word @ -0xc # (local6): word[2] @ -0x8 + .balign 4 .Lfunc002: addi sp, sp, -32 /* (local0) */ # 4c: 12c1e0 s32i a0, sp, 8 /* a0 -> [(local2)] */ # 4f: 0921 s32i a14, sp, 20 /* a14 -> [(local5)] */ # 51: e951 @@ -190,6 +193,7 @@ sdk_PendFreeBcnEb: # Function @ .irom0.text+0x190 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .Lfunc003: movi a4, 254 /* 0x000000fe */ # 190: 42a0fe addi sp, sp, -16 /* (local0) */ # 193: 12c1f0 movi a2, .Ldata001 # 196: 21f8ff @@ -246,6 +250,7 @@ sdk_PendFreeBcnEb: # (local2): word @ -0x18 # (local3): word @ -0x14 # (local4): word[4] @ -0x10 + .balign 4 .Lfunc004: movi a2, 28 /* 0x0000001c */ # 224: 1cc2 addi sp, sp, -32 /* (local0) */ # 226: 12c1e0 s32i a13, sp, 12 /* a13 -> [(local3)] */ # 229: d931 @@ -368,6 +373,7 @@ sdk_PendFreeBcnEb: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .Lfunc005: addi sp, sp, -16 /* (local0) */ # 358: 12c1f0 movi a5, -17 /* 0xffffffef */ # 35b: 6cf5 s32i a12, sp, 4 /* a12 -> [(local1)] */ # 35d: c911 @@ -450,6 +456,7 @@ sdk_PendFreeBcnEb: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .global sdk_ieee80211_hostap_attach .type sdk_ieee80211_hostap_attach, @function sdk_ieee80211_hostap_attach: @@ -517,6 +524,7 @@ sdk_ieee80211_hostap_attach: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .Lfunc006: addi sp, sp, -16 /* (local0) */ # 4b8: 12c1f0 s32i a12, sp, 8 /* a12 -> [(local2)] */ # 4bb: c921 s32i a0, sp, 4 /* a0 -> [(local1)] */ # 4bd: 0911 @@ -559,6 +567,7 @@ sdk_ieee80211_hostap_attach: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .global sdk_hostap_handle_timer .type sdk_hostap_handle_timer, @function sdk_hostap_handle_timer: @@ -655,6 +664,7 @@ sdk_hostap_handle_timer: # (local12): word @ -0x10 # (local13): word @ -0xc # (local14): word[2] @ -0x8 + .balign 4 .global sdk_hostap_input .type sdk_hostap_input, @function sdk_hostap_input: @@ -994,6 +1004,7 @@ sdk_hostap_input: # (local3): word @ -0x14 # (local4): word @ -0x10 # (local5): word[3] @ -0xc + .balign 4 .Lfunc007: addi sp, sp, -32 /* (local0) */ # 964: 12c1e0 s32i a12, sp, 20 /* a12 -> [(local5)] */ # 967: c951 s32i a0, sp, 12 /* a0 -> [(local3)] */ # 969: 0931 @@ -1078,6 +1089,7 @@ sdk_hostap_input: .literal_position # a30: 00000000 # Function @ .irom0.text+0xa34 + .balign 4 .Lfunc008: bnez a3, .Lbr063 # a34: ec43 beqz a2, .Lbr063 # a36: ac22 l8ui a3, a2, 1 /* [arg0+0x1] */ # a38: 320201 @@ -1133,6 +1145,7 @@ sdk_hostap_input: # (local12): word @ -0x18 # (local13): word @ -0x14 # (local14): word[4] @ -0x10 + .balign 4 .Lfunc009: movi a10, sdk_g_ic # aa8: a1eeff movi a11, 50 /* 0x00000032 */ # aab: 3c2b movi a7, 144 /* 0x00000090 */ # aad: 72a090 @@ -1501,6 +1514,7 @@ sdk_hostap_input: # Function @ .irom0.text+0xe88 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .Lfunc010: addi sp, sp, -16 /* (local0) */ # e88: 12c1f0 s32i a0, sp, 0 /* a0 -> [(local0)] */ # e8b: 0901 beqi a4, 128, .Lbr114 # e8d: 26e408 @@ -1527,6 +1541,7 @@ sdk_hostap_input: # (local1): word @ -0xc # (local2): word @ -0x8 # (local3): word @ -0x4 + .balign 4 .Lfunc011: addi sp, sp, -16 /* (local0) */ # ec4: 12c1f0 l32i a6, a2, 136 /* [arg0+0x88] */ # ec7: 622222 s32i a0, sp, 4 /* a0 -> [(local1)] */ # eca: 0911 @@ -1644,6 +1659,7 @@ sdk_hostap_input: # (local3): word @ -0x18 # (local4): word @ -0x14 # (local5): word[4] @ -0x10 + .balign 4 .global sdk_wifi_softap_start .type sdk_wifi_softap_start, @function sdk_wifi_softap_start: @@ -1799,6 +1815,7 @@ sdk_wifi_softap_start: # (local3): word @ -0x14 # (local4): word @ -0x10 # (local5): word[3] @ -0xc + .balign 4 .global sdk_wifi_softap_stop .type sdk_wifi_softap_stop, @function sdk_wifi_softap_stop: diff --git a/binary_sdk/libnet80211/ieee80211_ht.S b/binary_sdk/libnet80211/ieee80211_ht.S index 6455a8e..eea05da 100644 --- a/binary_sdk/libnet80211/ieee80211_ht.S +++ b/binary_sdk/libnet80211/ieee80211_ht.S @@ -11,6 +11,7 @@ # Function @ .irom0.text+0x18 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_ieee80211_ht_attach .type sdk_ieee80211_ht_attach, @function sdk_ieee80211_ht_attach: @@ -51,6 +52,7 @@ sdk_ieee80211_ht_attach: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_ieee80211_ht_node_init .type sdk_ieee80211_ht_node_init, @function sdk_ieee80211_ht_node_init: @@ -82,6 +84,7 @@ sdk_ieee80211_ht_node_init: .balign 4 # Function @ .irom0.text+0xb0 + .balign 4 .global sdk_ieee80211_ht_node_cleanup .type sdk_ieee80211_ht_node_cleanup, @function sdk_ieee80211_ht_node_cleanup: @@ -99,6 +102,7 @@ sdk_ieee80211_ht_node_cleanup: # Function @ .irom0.text+0xcc # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .Lfunc001: addi sp, sp, -16 /* (local0) */ # cc: 12c1f0 movi a5, 0xfff8ffff # cf: 51fdff s32i a0, sp, 0 /* a0 -> [(local0)] */ # d2: 0901 @@ -113,6 +117,7 @@ sdk_ieee80211_ht_node_cleanup: ret # ea: 0df0 # Function @ .irom0.text+0xec + .balign 4 .global sdk_ieee80211_parse_htcap .type sdk_ieee80211_parse_htcap, @function sdk_ieee80211_parse_htcap: @@ -139,6 +144,7 @@ sdk_ieee80211_parse_htcap: .balign 4 # Function @ .irom0.text+0x128 + .balign 4 .Lfunc002: l8ui a7, a3, 2 /* [arg1+0x2] */ # 128: 720302 s8i a7, a2, 195 /* [arg1+0x2] -> [arg0+0xc3] */ # 12b: 7242c3 l8ui a6, a3, 3 /* [arg1+0x3] */ # 12e: 620303 @@ -165,6 +171,7 @@ sdk_ieee80211_parse_htcap: # (local1): word @ -0xc # (local2): word @ -0x8 # (local3): word @ -0x4 + .balign 4 .Lfunc003: movi a4, 0xfff8ffff # 164: 41faff addi sp, sp, -16 /* (local0) */ # 167: 12c1f0 s32i a14, sp, 12 /* a14 -> [(local3)] */ # 16a: e931 @@ -229,6 +236,7 @@ sdk_ieee80211_parse_htcap: # (local2): word @ -0x18 # (local3): word @ -0x14 # (local4): word[4] @ -0x10 + .balign 4 .global sdk_ieee80211_ht_updateparams .type sdk_ieee80211_ht_updateparams, @function sdk_ieee80211_ht_updateparams: @@ -349,6 +357,7 @@ sdk_ieee80211_ht_updateparams: # (local7): word @ -0x14 # (local8): word @ -0x10 # (local9): word[3] @ -0xc + .balign 4 .global sdk_ieee80211_setup_htrates .type sdk_ieee80211_setup_htrates, @function sdk_ieee80211_setup_htrates: @@ -447,6 +456,7 @@ sdk_ieee80211_setup_htrates: # (local3): word @ -0x14 # (local4): word @ -0x10 # (local5): word[3] @ -0xc + .balign 4 .global sdk_ieee80211_setup_basic_htrates .type sdk_ieee80211_setup_basic_htrates, @function sdk_ieee80211_setup_basic_htrates: @@ -516,6 +526,7 @@ sdk_ieee80211_setup_basic_htrates: # (local4): word @ -0x10 # (local5): word @ -0xc # (local6): word[2] @ -0x8 + .balign 4 .Lfunc004: movi a7, 1174 /* 0x00000496 */ # 494: 72a496 movi a5, 332 /* 0x0000014c */ # 497: 52a14c addi sp, sp, -32 /* (local0) */ # 49a: 12c1e0 @@ -689,6 +700,7 @@ sdk_ieee80211_setup_basic_htrates: # (local6): word @ -0x18 # (local7): word @ -0x14 # (local8): word[4] @ -0x10 + .balign 4 .Lfunc005: addi sp, sp, -48 /* (local0) */ # 644: 12c1d0 s32i a0, sp, 16 /* a0 -> [(local4)] */ # 647: 0941 s32i a14, sp, 28 /* a14 -> [(local7)] */ # 649: e971 @@ -824,6 +836,7 @@ sdk_ieee80211_setup_basic_htrates: # Function @ .irom0.text+0x7a0 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_ieee80211_add_htcap .type sdk_ieee80211_add_htcap, @function sdk_ieee80211_add_htcap: @@ -843,6 +856,7 @@ sdk_ieee80211_add_htcap: # Function @ .irom0.text+0x7bc # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_ieee80211_add_htcap_vendor .type sdk_ieee80211_add_htcap_vendor, @function sdk_ieee80211_add_htcap_vendor: @@ -876,6 +890,7 @@ sdk_ieee80211_add_htcap_vendor: # (local3): word @ -0x14 # (local4): word @ -0x10 # (local5): word[3] @ -0xc + .balign 4 .Lfunc006: addi sp, sp, -32 /* (local0) */ # 7f4: 12c1e0 s32i a15, sp, 20 /* a15 -> [(local5)] */ # 7f7: f951 s32i a0, sp, 4 /* a0 -> [(local1)] */ # 7f9: 0911 @@ -927,6 +942,7 @@ sdk_ieee80211_add_htcap_vendor: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .Lfunc007: movi a4, 22 /* 0x00000016 */ # 868: 1c64 addi sp, sp, -16 /* (local0) */ # 86a: 12c1f0 s32i a0, sp, 0 /* a0 -> [(local0)] */ # 86d: 0901 @@ -983,6 +999,7 @@ sdk_ieee80211_add_htcap_vendor: # Function @ .irom0.text+0x8ec # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_ieee80211_add_htinfo .type sdk_ieee80211_add_htinfo, @function sdk_ieee80211_add_htinfo: @@ -1002,6 +1019,7 @@ sdk_ieee80211_add_htinfo: # Function @ .irom0.text+0x908 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_ieee80211_add_htinfo_vendor .type sdk_ieee80211_add_htinfo_vendor, @function sdk_ieee80211_add_htinfo_vendor: @@ -1037,6 +1055,7 @@ sdk_ieee80211_add_htinfo_vendor: # (local3): hword @ -0x1a # (local4): hword[4] @ -0x18 # (local5): word[4] @ -0x10 + .balign 4 .Lfunc008: addi sp, sp, -32 /* (local0) */ # 948: 12c1e0 l8ui a5, a4, 2 /* [arg2+0x2] */ # 94b: 520402 s32i a0, sp, 16 /* a0 -> [(local5)] */ # 94e: 0941 @@ -1096,6 +1115,7 @@ sdk_ieee80211_add_htinfo_vendor: # (local4): word @ -0x10 # (local5): word @ -0xc # (local6): word[2] @ -0x8 + .balign 4 .Lfunc009: mov a7, a2 /* arg0 */ # 9d4: 7d02 mov a8, a3 /* arg1 */ # 9d6: 8d03 addi sp, sp, -32 /* (local0) */ # 9d8: 12c1e0 diff --git a/binary_sdk/libnet80211/ieee80211_input.S b/binary_sdk/libnet80211/ieee80211_input.S index beaa46d..d719bb4 100644 --- a/binary_sdk/libnet80211/ieee80211_input.S +++ b/binary_sdk/libnet80211/ieee80211_input.S @@ -10,6 +10,7 @@ # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .global sdk_ieee80211_deliver_data .type sdk_ieee80211_deliver_data, @function sdk_ieee80211_deliver_data: @@ -63,6 +64,7 @@ sdk_ieee80211_deliver_data: # (local1): word @ -0x10 # (local2): word @ -0xc # (local3): word[2] @ -0x8 + .balign 4 .global sdk_ieee80211_decap .type sdk_ieee80211_decap, @function sdk_ieee80211_decap: @@ -180,6 +182,7 @@ sdk_ieee80211_decap: # (local1): word @ -0xc # (local2): word @ -0x8 # (local3): word @ -0x4 + .balign 4 .global sdk_ieee80211_setup_rates .type sdk_ieee80211_setup_rates, @function sdk_ieee80211_setup_rates: @@ -233,6 +236,7 @@ sdk_ieee80211_setup_rates: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_ieee80211_alloc_challenge .type sdk_ieee80211_alloc_challenge, @function sdk_ieee80211_alloc_challenge: @@ -268,6 +272,7 @@ sdk_ieee80211_alloc_challenge: # (local3): word @ -0x14 # (local4): word @ -0x10 # (local5): word[3] @ -0xc + .balign 4 .global sdk_ieee80211_parse_beacon .type sdk_ieee80211_parse_beacon, @function sdk_ieee80211_parse_beacon: @@ -563,6 +568,7 @@ sdk_ieee80211_parse_beacon: # 55c: 0050f205 # Function @ .irom0.text+0x560 + .balign 4 .Lfunc001: movi a4, 0x00f25000 # 560: 41fbff l8ui a7, a2, 3 /* [arg0+0x3] */ # 563: 720203 l8ui a6, a2, 1 /* [arg0+0x1] */ # 566: 620201 @@ -606,6 +612,7 @@ sdk_ieee80211_parse_beacon: # 5cc: 0050f202 # Function @ .irom0.text+0x5d0 + .balign 4 .Lfunc002: movi a3, 0x00f25000 # 5d0: 31fdff l8ui a6, a2, 3 /* [arg0+0x3] */ # 5d3: 620203 l8ui a5, a2, 1 /* [arg0+0x1] */ # 5d6: 520201 @@ -637,6 +644,7 @@ sdk_ieee80211_parse_beacon: # 620: 000fac05 # Function @ .irom0.text+0x624 + .balign 4 .Lfunc003: movi a4, 0x00ac0f00 # 624: 41faff l8ui a7, a2, 3 /* [arg0+0x3] */ # 627: 720203 l8ui a6, a2, 1 /* [arg0+0x1] */ # 62a: 620201 @@ -684,6 +692,7 @@ sdk_ieee80211_parse_beacon: # 698: 000fac02 # Function @ .irom0.text+0x69c + .balign 4 .Lfunc004: movi a3, 0x00ac0f00 # 69c: 31fdff l8ui a6, a2, 3 /* [arg0+0x3] */ # 69f: 620203 l8ui a5, a2, 1 /* [arg0+0x1] */ # 6a2: 520201 @@ -719,6 +728,7 @@ sdk_ieee80211_parse_beacon: # (local5): word @ -0xc # (local6): word @ -0x8 # (local7): word @ -0x4 + .balign 4 .global sdk_ieee80211_parse_wpa .type sdk_ieee80211_parse_wpa, @function sdk_ieee80211_parse_wpa: @@ -845,6 +855,7 @@ sdk_ieee80211_parse_wpa: # (local5): word @ -0xc # (local6): word @ -0x8 # (local7): word @ -0x4 + .balign 4 .global sdk_ieee80211_parse_rsn .type sdk_ieee80211_parse_rsn, @function sdk_ieee80211_parse_rsn: @@ -948,6 +959,7 @@ sdk_ieee80211_parse_rsn: j .Lbr091 # 8f1: 46d0ff # Function @ .irom0.text+0x8f4 + .balign 4 .global sdk_ieee80211_parse_action .type sdk_ieee80211_parse_action, @function sdk_ieee80211_parse_action: @@ -986,6 +998,7 @@ sdk_ieee80211_parse_action: .balign 4 # Function @ .irom0.text+0x94c + .balign 4 .global sdk_ieee80211_setup_rateset .type sdk_ieee80211_setup_rateset, @function sdk_ieee80211_setup_rateset: diff --git a/binary_sdk/libnet80211/ieee80211_output.S b/binary_sdk/libnet80211/ieee80211_output.S index 8896b87..cfb79e8 100644 --- a/binary_sdk/libnet80211/ieee80211_output.S +++ b/binary_sdk/libnet80211/ieee80211_output.S @@ -30,6 +30,7 @@ # (local5): word @ -0xc # (local6): word @ -0x8 # (local7): word @ -0x4 + .balign 4 .global sdk_ieee80211_output_pbuf .type sdk_ieee80211_output_pbuf, @function sdk_ieee80211_output_pbuf: @@ -308,6 +309,7 @@ sdk_ieee80211_output_pbuf: # (local6): word @ -0x18 # (local7): word @ -0x14 # (local8): word[4] @ -0x10 + .balign 4 .global sdk_ieee80211_send_setup .type sdk_ieee80211_send_setup, @function sdk_ieee80211_send_setup: @@ -443,6 +445,7 @@ sdk_ieee80211_send_setup: # (local1): word @ -0x10 # (local2): word @ -0xc # (local3): word[2] @ -0x8 + .balign 4 .global sdk_ieee80211_mgmt_output .type sdk_ieee80211_mgmt_output, @function sdk_ieee80211_mgmt_output: @@ -541,6 +544,7 @@ sdk_ieee80211_mgmt_output: .balign 4 # Function @ .irom0.text+0x540 + .balign 4 .global sdk_ieee80211_tx_mgt_cb .type sdk_ieee80211_tx_mgt_cb, @function sdk_ieee80211_tx_mgt_cb: @@ -565,6 +569,7 @@ sdk_ieee80211_tx_mgt_cb: # (local6): word @ -0xc # (local7): word @ -0x8 # (local8): word @ -0x4 + .balign 4 .global sdk_ieee80211_send_nulldata .type sdk_ieee80211_send_nulldata, @function sdk_ieee80211_send_nulldata: @@ -727,6 +732,7 @@ sdk_ieee80211_send_nulldata: # (local9): word @ -0x14 # (local10): word @ -0x10 # (local11): word[3] @ -0xc + .balign 4 .Lfunc001: movi a4, 14 /* 0x0000000e */ # 6dc: 0ce4 addi sp, sp, -64 /* (local0) */ # 6de: 12c1c0 s32i a2, sp, 52 /* arg0 -> [(local11)] */ # 6e1: 29d1 @@ -999,6 +1005,7 @@ sdk_ieee80211_send_nulldata: # 980: 00000000 # Function @ .irom0.text+0x984 + .balign 4 .Lfunc002: l32i a6, a3, 4 /* [arg1+0x4] */ # 984: 6813 movi a4, 0x00008e88 # 986: 41fdff l8ui a5, a6, 13 /* [[arg1+0x4]+0xd] */ # 989: 52060d @@ -1045,6 +1052,7 @@ sdk_ieee80211_send_nulldata: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .global sdk_ieee80211_add_rates .type sdk_ieee80211_add_rates, @function sdk_ieee80211_add_rates: @@ -1080,6 +1088,7 @@ sdk_ieee80211_add_rates: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .global sdk_ieee80211_add_xrates .type sdk_ieee80211_add_xrates, @function sdk_ieee80211_add_xrates: @@ -1115,6 +1124,7 @@ sdk_ieee80211_add_xrates: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .Lfunc003: addi sp, sp, -16 /* (local0) */ # a6c: 12c1f0 s8i a4, a2, 1 /* arg2 -> [arg0+0x1] */ # a6f: 424201 s32i a0, sp, 0 /* a0 -> [(local0)] */ # a72: 0901 @@ -1138,6 +1148,7 @@ sdk_ieee80211_add_xrates: .balign 4 # Function @ .irom0.text+0xa9c + .balign 4 .Lfunc004: movi a5, 1 /* 0x00000001 */ # a9c: 0c15 movi a4, 42 /* 0x0000002a */ # a9e: 2ca4 s8i a4, a2, 0 /* 0x2a -> [arg0] */ # aa0: 424200 @@ -1180,6 +1191,7 @@ sdk_ieee80211_add_xrates: # (local9): word @ -0x10 # (local10): word @ -0xc # (local11): word[2] @ -0x8 + .balign 4 .global sdk_ieee80211_send_probereq .type sdk_ieee80211_send_probereq, @function sdk_ieee80211_send_probereq: @@ -1350,6 +1362,7 @@ sdk_ieee80211_send_probereq: .literal_position # c9c: 00000000 # Function @ .irom0.text+0xca0 + .balign 4 .global sdk_ieee80211_getcapinfo .type sdk_ieee80211_getcapinfo, @function sdk_ieee80211_getcapinfo: @@ -1439,6 +1452,7 @@ sdk_ieee80211_getcapinfo: # (local19): word @ -0x14 # (local20): word @ -0x10 # (local21): word[3] @ -0xc + .balign 4 .global sdk_ieee80211_send_mgmt .type sdk_ieee80211_send_mgmt, @function sdk_ieee80211_send_mgmt: @@ -1973,6 +1987,7 @@ sdk_ieee80211_send_mgmt: j .Lbr137 # 12bd: 86eeff # Function @ .irom0.text+0x12c0 + .balign 4 .Lfunc005: l8ui a2, a2, 24 /* [arg0+0x18] */ # 12c0: 220218 beqz a2, .Lbr141 # 12c3: 8c32 bnei a2, 1, .Lbr142 # 12c5: 661205 @@ -2012,6 +2027,7 @@ sdk_ieee80211_send_mgmt: # (local7): word @ -0x14 # (local8): word @ -0x10 # (local9): word[3] @ -0xc + .balign 4 .global sdk_ieee80211_alloc_proberesp .type sdk_ieee80211_alloc_proberesp, @function sdk_ieee80211_alloc_proberesp: @@ -2234,6 +2250,7 @@ sdk_ieee80211_alloc_proberesp: # (local3): word @ -0x18 # (local4): word @ -0x14 # (local5): word[4] @ -0x10 + .balign 4 .global sdk_ieee80211_send_proberesp .type sdk_ieee80211_send_proberesp, @function sdk_ieee80211_send_proberesp: @@ -2406,6 +2423,7 @@ sdk_ieee80211_send_proberesp: # (local8): word @ -0x10 # (local9): word @ -0xc # (local10): word[2] @ -0x8 + .balign 4 .Lfunc006: addi sp, sp, -48 /* (local0) */ # 16ec: 12c1d0 s32i a15, sp, 32 /* a15 -> [(local8)] */ # 16ef: f981 s32i a12, sp, 20 /* a12 -> [(local5)] */ # 16f1: c951 @@ -2611,6 +2629,7 @@ sdk_ieee80211_send_proberesp: # (local4): word @ -0x14 # (local5): word @ -0x10 # (local6): word[3] @ -0xc + .balign 4 .global sdk_ieee80211_beacon_alloc .type sdk_ieee80211_beacon_alloc, @function sdk_ieee80211_beacon_alloc: diff --git a/binary_sdk/libnet80211/ieee80211_phy.S b/binary_sdk/libnet80211/ieee80211_phy.S index 8f6abdc..78115e2 100644 --- a/binary_sdk/libnet80211/ieee80211_phy.S +++ b/binary_sdk/libnet80211/ieee80211_phy.S @@ -62,6 +62,7 @@ .literal_position # 0: 00000000 # Function @ .irom0.text+0x4 + .balign 4 .global sdk_ieee80211_get_11g_ratetable .type sdk_ieee80211_get_11g_ratetable, @function sdk_ieee80211_get_11g_ratetable: @@ -72,6 +73,7 @@ sdk_ieee80211_get_11g_ratetable: # 10: 00000000 # Function @ .irom0.text+0x14 + .balign 4 .global sdk_ieee80211_get_ratetable .type sdk_ieee80211_get_ratetable, @function sdk_ieee80211_get_ratetable: @@ -91,6 +93,7 @@ sdk_ieee80211_get_ratetable: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_ieee80211_phy_init .type sdk_ieee80211_phy_init, @function sdk_ieee80211_phy_init: @@ -118,6 +121,7 @@ sdk_ieee80211_phy_init: .literal_position # 64: 00000000 # Function @ .irom0.text+0x68 + .balign 4 .global sdk_ieee80211_phy_type_get .type sdk_ieee80211_phy_type_get, @function sdk_ieee80211_phy_type_get: @@ -133,6 +137,7 @@ sdk_ieee80211_phy_type_get: # 80: 00000000 # Function @ .irom0.text+0x84 + .balign 4 .global sdk_ieee80211_setup_ratetable .type sdk_ieee80211_setup_ratetable, @function sdk_ieee80211_setup_ratetable: @@ -165,6 +170,7 @@ sdk_ieee80211_setup_ratetable: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .global sdk_ieee80211_compute_duration .type sdk_ieee80211_compute_duration, @function sdk_ieee80211_compute_duration: @@ -221,6 +227,7 @@ sdk_ieee80211_compute_duration: .literal_position # 144: 00000000 # Function @ .irom0.text+0x148 + .balign 4 .global sdk_ieee80211_dot11Rate_rix .type sdk_ieee80211_dot11Rate_rix, @function sdk_ieee80211_dot11Rate_rix: diff --git a/binary_sdk/libnet80211/ieee80211_power.S b/binary_sdk/libnet80211/ieee80211_power.S index 2d7edb0..15ca878 100644 --- a/binary_sdk/libnet80211/ieee80211_power.S +++ b/binary_sdk/libnet80211/ieee80211_power.S @@ -2,6 +2,8 @@ .section .irom0.text, "ax", @progbits # Function @ .irom0.text+0x0 + .balign 4 + .literal_position .global sdk_ieee80211_psq_init .type sdk_ieee80211_psq_init, @function sdk_ieee80211_psq_init: @@ -19,6 +21,7 @@ sdk_ieee80211_psq_init: .balign 4 # Function @ .irom0.text+0x18 + .balign 4 .global sdk_ieee80211_psq_cleanup .type sdk_ieee80211_psq_cleanup, @function sdk_ieee80211_psq_cleanup: @@ -27,6 +30,7 @@ sdk_ieee80211_psq_cleanup: .literal_position # 1c: 00000000 # Function @ .irom0.text+0x20 + .balign 4 .global sdk_ieee80211_set_tim .type sdk_ieee80211_set_tim, @function sdk_ieee80211_set_tim: @@ -60,6 +64,7 @@ sdk_ieee80211_set_tim: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_ieee80211_pwrsave .type sdk_ieee80211_pwrsave, @function sdk_ieee80211_pwrsave: @@ -116,6 +121,7 @@ sdk_ieee80211_pwrsave: # (local1): word @ -0xc # (local2): word @ -0x8 # (local3): word @ -0x4 + .balign 4 .Lfunc001: addi sp, sp, -16 /* (local0) */ # e0: 12c1f0 s32i a0, sp, 0 /* a0 -> [(local0)] */ # e3: 0901 s32i a14, sp, 12 /* a14 -> [(local3)] */ # e5: e931 @@ -162,6 +168,7 @@ sdk_ieee80211_pwrsave: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_ieee80211_node_pwrsave .type sdk_ieee80211_node_pwrsave, @function sdk_ieee80211_node_pwrsave: diff --git a/binary_sdk/libnet80211/ieee80211_proto.S b/binary_sdk/libnet80211/ieee80211_proto.S index c9bc3d7..afb54c7 100644 --- a/binary_sdk/libnet80211/ieee80211_proto.S +++ b/binary_sdk/libnet80211/ieee80211_proto.S @@ -15,6 +15,7 @@ sdk_ieee80211_addr_bcast: # Function @ .irom0.text+0xc # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_ieee80211_proto_attach .type sdk_ieee80211_proto_attach, @function sdk_ieee80211_proto_attach: @@ -37,6 +38,7 @@ sdk_ieee80211_proto_attach: .balign 4 # Function @ .irom0.text+0x34 + .balign 4 .global sdk_ieee80211_set_shortslottime .type sdk_ieee80211_set_shortslottime, @function sdk_ieee80211_set_shortslottime: @@ -52,6 +54,7 @@ sdk_ieee80211_set_shortslottime: .literal_position # 4c: 00000000 # Function @ .irom0.text+0x50 + .balign 4 .global sdk_ieee80211_iserp_rateset .type sdk_ieee80211_iserp_rateset, @function sdk_ieee80211_iserp_rateset: @@ -82,6 +85,7 @@ sdk_ieee80211_iserp_rateset: # Function @ .irom0.text+0x88 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .Lfunc001: addi sp, sp, -16 /* (local0) */ # 88: 12c1f0 s32i a0, sp, 0 /* a0 -> [(local0)] */ # 8b: 0901 l8ui a0, a2, 0 /* [arg0] */ # 8d: 020200 @@ -122,6 +126,7 @@ sdk_ieee80211_iserp_rateset: # Function @ .irom0.text+0xe4 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_ieee80211_setbasicrates .type sdk_ieee80211_setbasicrates, @function sdk_ieee80211_setbasicrates: @@ -137,6 +142,7 @@ sdk_ieee80211_setbasicrates: # Function @ .irom0.text+0xf8 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_ieee80211_addbasicrates .type sdk_ieee80211_addbasicrates, @function sdk_ieee80211_addbasicrates: @@ -150,6 +156,7 @@ sdk_ieee80211_addbasicrates: .balign 4 # Function @ .irom0.text+0x10c + .balign 4 .global sdk_ieee80211_wme_initparams .type sdk_ieee80211_wme_initparams, @function sdk_ieee80211_wme_initparams: @@ -157,6 +164,7 @@ sdk_ieee80211_wme_initparams: .balign 4 # Function @ .irom0.text+0x110 + .balign 4 .global sdk_ieee80211_wme_updateparams .type sdk_ieee80211_wme_updateparams, @function sdk_ieee80211_wme_updateparams: @@ -173,6 +181,7 @@ sdk_ieee80211_wme_updateparams: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .global sdk_ieee80211_mlme_connect_bss .type sdk_ieee80211_mlme_connect_bss, @function sdk_ieee80211_mlme_connect_bss: diff --git a/binary_sdk/libnet80211/ieee80211_scan.S b/binary_sdk/libnet80211/ieee80211_scan.S index 0b0eb58..8efc3b9 100644 --- a/binary_sdk/libnet80211/ieee80211_scan.S +++ b/binary_sdk/libnet80211/ieee80211_scan.S @@ -59,6 +59,7 @@ sdk_scannum: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_ieee80211_scan_attach .type sdk_ieee80211_scan_attach, @function sdk_ieee80211_scan_attach: @@ -100,6 +101,7 @@ sdk_ieee80211_scan_attach: # Function @ .irom0.text+0x70 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .Lfunc001: movi a5, sdk_gScanStruct # 70: 51ffff addi sp, sp, -16 /* (local0) */ # 73: 12c1f0 s32i a0, sp, 0 /* a0 -> [(local0)] */ # 76: 0901 @@ -144,6 +146,7 @@ sdk_ieee80211_scan_attach: # (local2): word @ -0x18 # (local3): word @ -0x14 # (local4): word[4] @ -0x10 + .balign 4 .global sdk_scan_start .type sdk_scan_start, @function sdk_scan_start: @@ -251,6 +254,7 @@ sdk_scan_start: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_scan_pm_channel_op_cb .type sdk_scan_pm_channel_op_cb, @function sdk_scan_pm_channel_op_cb: @@ -276,6 +280,7 @@ sdk_scan_pm_channel_op_cb: # Function @ .irom0.text+0x224 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .Lfunc002: addi sp, sp, -16 /* (local0) */ # 224: 12c1f0 s32i a0, sp, 0 /* a0 -> [(local0)] */ # 227: 0901 call0 .Lfunc008 # 229: 454b00 @@ -298,6 +303,7 @@ sdk_scan_pm_channel_op_cb: # Function @ .irom0.text+0x258 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .Lfunc003: addi sp, sp, -16 /* (local0) */ # 258: 12c1f0 s32i a0, sp, 0 /* a0 -> [(local0)] */ # 25b: 0901 movi a0, sdk_gScanStruct # 25d: 01f9ff @@ -331,6 +337,7 @@ sdk_scan_pm_channel_op_cb: # Function @ .irom0.text+0x2a4 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .Lfunc004: movi a4, 2 /* 0x00000002 */ # 2a4: 0c24 movi a5, 247 /* 0x000000f7 */ # 2a6: 52a0f7 movi a6, sdk_gScanStruct # 2a9: 61fdff @@ -376,6 +383,7 @@ sdk_scan_pm_channel_op_cb: # (local1): word @ -0xc # (local2): word @ -0x8 # (local3): word @ -0x4 + .balign 4 .Lfunc005: addi sp, sp, -16 /* (local0) */ # 31c: 12c1f0 s32i a12, sp, 8 /* a12 -> [(local2)] */ # 31f: c921 movi a12, sdk_gScanStruct # 321: c1efff @@ -465,6 +473,7 @@ sdk_scan_pm_channel_op_cb: # Function @ .irom0.text+0x404 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_scan_cancel .type sdk_scan_cancel, @function sdk_scan_cancel: @@ -515,6 +524,7 @@ sdk_scan_cancel: # (local2): word @ -0x18 # (local3): word @ -0x14 # (local4): word[4] @ -0x10 + .balign 4 .Lfunc006: movi a2, .Lstr001 # 488: 21ecff addi sp, sp, -32 /* (local0) */ # 48b: 12c1e0 s32i a0, sp, 0 /* a0 -> [(local0)] */ # 48e: 0901 @@ -615,6 +625,7 @@ sdk_scan_cancel: # Function @ .irom0.text+0x584 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_scan_add_bssid .type sdk_scan_add_bssid, @function sdk_scan_add_bssid: @@ -635,6 +646,7 @@ sdk_scan_add_bssid: .literal_position # 5a8: 00000000 # Function @ .irom0.text+0x5ac + .balign 4 .global sdk_scan_remove_bssid .type sdk_scan_remove_bssid, @function sdk_scan_remove_bssid: @@ -646,6 +658,7 @@ sdk_scan_remove_bssid: .literal_position # 5b8: 00000000 # Function @ .irom0.text+0x5bc + .balign 4 .global sdk_scan_hidden_ssid .type sdk_scan_hidden_ssid, @function sdk_scan_hidden_ssid: @@ -662,6 +675,7 @@ sdk_scan_hidden_ssid: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .global sdk_scan_add_probe_ssid .type sdk_scan_add_probe_ssid, @function sdk_scan_add_probe_ssid: @@ -693,6 +707,7 @@ sdk_scan_add_probe_ssid: .literal_position # 610: 00000000 # Function @ .irom0.text+0x614 + .balign 4 .global sdk_scan_remove_probe_ssid .type sdk_scan_remove_probe_ssid, @function sdk_scan_remove_probe_ssid: @@ -717,6 +732,7 @@ sdk_scan_remove_probe_ssid: # (local0): word[4] @ -0x20 # (local1): word @ -0x10 # (local2): word[3] @ -0xc + .balign 4 .Lfunc007: movi a6, sdk_g_ic # 640: 61fbff addi sp, sp, -32 /* (local0) */ # 643: 12c1e0 s32i a0, sp, 16 /* a0 -> [(local1)] */ # 646: 0941 @@ -785,6 +801,7 @@ sdk_scan_remove_probe_ssid: # (local1): word @ -0xc # (local2): word @ -0x8 # (local3): word @ -0x4 + .balign 4 .Lfunc008: movi a2, 13 /* 0x0000000d */ # 6e0: 0cd2 movi a3, 0 /* 0x00000000 */ # 6e2: 0c03 movi a8, 132 /* 0x00000084 */ # 6e4: 82a084 @@ -843,6 +860,7 @@ sdk_scan_remove_probe_ssid: .literal_position # 770: 00000000 # Function @ .irom0.text+0x774 + .balign 4 .global sdk_scan_clear_channles .type sdk_scan_clear_channles, @function sdk_scan_clear_channles: @@ -864,6 +882,7 @@ sdk_scan_clear_channles: # Function @ .irom0.text+0x798 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .Lfunc009: addi sp, sp, -16 /* (local0) */ # 798: 12c1f0 s32i a0, sp, 0 /* a0 -> [(local0)] */ # 79b: 0901 call0 .Lfunc002 # 79d: 45a8ff @@ -878,6 +897,7 @@ sdk_scan_clear_channles: # Function @ .irom0.text+0x7b4 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .Lfunc010: addi sp, sp, -16 /* (local0) */ # 7b4: 12c1f0 movi a6, sdk_gScanStruct # 7b7: 61fcff s32i a0, sp, 0 /* a0 -> [(local0)] */ # 7ba: 0901 @@ -905,6 +925,7 @@ sdk_scan_clear_channles: .literal_position # 7f0: 00000000 # Function @ .irom0.text+0x7f4 + .balign 4 .global sdk_scan_set_desChan .type sdk_scan_set_desChan, @function sdk_scan_set_desChan: @@ -916,6 +937,7 @@ sdk_scan_set_desChan: .literal_position # 800: 00000000 # Function @ .irom0.text+0x804 + .balign 4 .global sdk_scan_get_type .type sdk_scan_get_type, @function sdk_scan_get_type: @@ -927,6 +949,7 @@ sdk_scan_get_type: # 810: ffbfffff # Function @ .irom0.text+0x814 + .balign 4 .global sdk_cannel_scan_connect_state .type sdk_cannel_scan_connect_state, @function sdk_cannel_scan_connect_state: @@ -949,6 +972,7 @@ sdk_cannel_scan_connect_state: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_scan_connect_state .type sdk_scan_connect_state, @function sdk_scan_connect_state: @@ -983,6 +1007,7 @@ sdk_scan_connect_state: .balign 4 # Function @ .irom0.text+0x888 + .balign 4 .global sdk_scan_check_hidden .type sdk_scan_check_hidden, @function sdk_scan_check_hidden: @@ -1035,6 +1060,7 @@ sdk_scan_check_hidden: # (local5): word @ -0xc # (local6): word @ -0x8 # (local7): word @ -0x4 + .balign 4 .global sdk_scan_profile_check .type sdk_scan_profile_check, @function sdk_scan_profile_check: @@ -1219,6 +1245,7 @@ sdk_scan_profile_check: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .Lfunc011: addi sp, sp, -16 /* (local0) */ # ad8: 12c1f0 s32i a0, sp, 0 /* a0 -> [(local0)] */ # adb: 0901 s32i a13, sp, 8 /* a13 -> [(local2)] */ # add: d921 @@ -1248,6 +1275,7 @@ sdk_scan_profile_check: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .Lfunc012: addi sp, sp, -16 /* (local0) */ # b14: 12c1f0 s32i a0, sp, 0 /* a0 -> [(local0)] */ # b17: 0901 s32i a13, sp, 8 /* a13 -> [(local2)] */ # b19: d921 @@ -1296,6 +1324,7 @@ sdk_scan_profile_check: # (local5): word @ -0xc # (local6): word @ -0x8 # (local7): word @ -0x4 + .balign 4 .Lfunc013: addi sp, sp, -80 /* (local0) */ # b7c: 12c1b0 s32i a0, sp, 64 /* a0 -> [(local4)] */ # b7f: 026110 s32i a14, sp, 76 /* a14 -> [(local7)] */ # b82: e26113 @@ -1464,6 +1493,7 @@ sdk_scan_profile_check: # (local9): word @ -0xc # (local10): word @ -0x8 # (local11): word @ -0x4 + .balign 4 .global sdk_scan_parse_beacon .type sdk_scan_parse_beacon, @function sdk_scan_parse_beacon: diff --git a/binary_sdk/libnet80211/ieee80211_sta.S b/binary_sdk/libnet80211/ieee80211_sta.S index 3b62612..d2cf62e 100644 --- a/binary_sdk/libnet80211/ieee80211_sta.S +++ b/binary_sdk/libnet80211/ieee80211_sta.S @@ -6,6 +6,7 @@ # Function @ .irom0.text+0x4 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .Lfunc001: addi sp, sp, -16 /* (local0) */ # 4: 12c1f0 s32i a0, sp, 0 /* a0 -> [(local0)] */ # 7: 0901 beqz a3, .Lbr002 # 9: 8ca3 @@ -24,6 +25,7 @@ .literal_position # 2c: 00000000 # Function @ .irom0.text+0x30 + .balign 4 .global sdk_sta_status_set .type sdk_sta_status_set, @function sdk_sta_status_set: @@ -80,6 +82,7 @@ sdk_sta_status_set: # (local2): word @ -0x18 # (local3): word @ -0x14 # (local4): word[4] @ -0x10 + .balign 4 .global sdk_ieee80211_sta_new_state .type sdk_ieee80211_sta_new_state, @function sdk_ieee80211_sta_new_state: @@ -297,6 +300,7 @@ sdk_ieee80211_sta_new_state: # (local10): word @ -0x18 # (local11): word @ -0x14 # (local12): word[4] @ -0x10 + .balign 4 .global sdk_sta_input .type sdk_sta_input, @function sdk_sta_input: @@ -531,6 +535,7 @@ sdk_sta_input: # Function @ .irom0.text+0x540 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .Lfunc002: addi sp, sp, -16 /* (local0) */ # 540: 12c1f0 s32i a0, sp, 0 /* a0 -> [(local0)] */ # 543: 0901 l32i a0, a2, 60 /* [arg0+0x3c] */ # 545: 08f2 @@ -577,6 +582,7 @@ sdk_sta_input: # (local2): word @ -0x18 # (local3): word @ -0x14 # (local4): word[4] @ -0x10 + .balign 4 .Lfunc003: addi sp, sp, -32 /* (local0) */ # 5ac: 12c1e0 l16ui a7, sp, 36 /* [(FP)+0x4] */ # 5af: 721112 s32i a0, sp, 8 /* a0 -> [(local2)] */ # 5b2: 0921 @@ -667,6 +673,7 @@ sdk_sta_input: .balign 4 # Function @ .irom0.text+0x690 + .balign 4 .global sdk_ieee80211_parse_wmeparams .type sdk_ieee80211_parse_wmeparams, @function sdk_ieee80211_parse_wmeparams: @@ -732,6 +739,7 @@ sdk_ieee80211_parse_wmeparams: # (local8): word @ -0x10 # (local9): word @ -0xc # (local10): word[2] @ -0x8 + .balign 4 .Lfunc004: addi sp, sp, -128 /* (local0) */ # 720: 12c180 s32i a14, sp, 112 /* a14 -> [(local8)] */ # 723: e2611c s32i a15, sp, 116 /* a15 -> [(local9)] */ # 726: f2611d @@ -949,6 +957,7 @@ sdk_ieee80211_parse_wmeparams: # (local7): word @ -0x14 # (local8): word @ -0x10 # (local9): word[3] @ -0xc + .balign 4 .Lfunc005: addi sp, sp, -48 /* (local0) */ # 96c: 12c1d0 s32i a14, sp, 24 /* a14 -> [(local6)] */ # 96f: e961 s32i a15, sp, 28 /* a15 -> [(local7)] */ # 971: f971 @@ -1224,6 +1233,7 @@ sdk_ieee80211_parse_wmeparams: # (local1): word @ -0x10 # (local2): word @ -0xc # (local3): word[2] @ -0x8 + .balign 4 .global sdk_wifi_station_start .type sdk_wifi_station_start, @function sdk_wifi_station_start: @@ -1291,6 +1301,7 @@ sdk_wifi_station_start: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_wifi_station_stop .type sdk_wifi_station_stop, @function sdk_wifi_station_stop: diff --git a/binary_sdk/libnet80211/wl_chm.S b/binary_sdk/libnet80211/wl_chm.S index 7b32607..aff1670 100644 --- a/binary_sdk/libnet80211/wl_chm.S +++ b/binary_sdk/libnet80211/wl_chm.S @@ -4,6 +4,7 @@ .literal_position # 0: 00000000 # Function @ .text+0x4 + .balign 4 .global sdk_chm_get_current_channel .type sdk_chm_get_current_channel, @function sdk_chm_get_current_channel: @@ -47,6 +48,7 @@ sdk_chm_get_current_channel: # (local2): word @ -0x18 # (local3): word @ -0x14 # (local4): word[4] @ -0x10 + .balign 4 .global sdk_chm_init .type sdk_chm_init, @function sdk_chm_init: @@ -126,6 +128,7 @@ sdk_chm_init: # (local1): word @ -0xc # (local2): word @ -0x8 # (local3): word @ -0x4 + .balign 4 .global sdk_chm_acquire_lock .type sdk_chm_acquire_lock, @function sdk_chm_acquire_lock: @@ -161,6 +164,7 @@ sdk_chm_acquire_lock: .literal_position # 128: 00000000 # Function @ .irom0.text+0x12c + .balign 4 .global sdk_chm_release_lock .type sdk_chm_release_lock, @function sdk_chm_release_lock: @@ -178,6 +182,7 @@ sdk_chm_release_lock: # Function @ .irom0.text+0x148 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_chm_start_op .type sdk_chm_start_op, @function sdk_chm_start_op: @@ -220,6 +225,7 @@ sdk_chm_start_op: # (local1): word @ -0xc # (local2): word @ -0x8 # (local3): word @ -0x4 + .balign 4 .Lfunc001: addi sp, sp, -16 /* (local0) */ # 1a0: 12c1f0 s32i a13, sp, 12 /* a13 -> [(local3)] */ # 1a3: d931 s32i a12, sp, 8 /* a12 -> [(local2)] */ # 1a5: c921 @@ -272,6 +278,7 @@ sdk_chm_start_op: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .global sdk_chm_end_op .type sdk_chm_end_op, @function sdk_chm_end_op: @@ -301,6 +308,7 @@ sdk_chm_end_op: # Function @ .irom0.text+0x248 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .Lfunc002: movi a2, 0 /* 0x00000000 */ # 248: 0c02 addi sp, sp, -16 /* (local0) */ # 24a: 12c1f0 s32i a0, sp, 0 /* a0 -> [(local0)] */ # 24d: 0901 @@ -316,6 +324,7 @@ sdk_chm_end_op: # Function @ .irom0.text+0x268 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_chm_cancel_op .type sdk_chm_cancel_op, @function sdk_chm_cancel_op: @@ -348,6 +357,7 @@ sdk_chm_cancel_op: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_chm_return_home_channel .type sdk_chm_return_home_channel, @function sdk_chm_return_home_channel: @@ -382,6 +392,7 @@ sdk_chm_return_home_channel: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .global sdk_chm_set_current_channel .type sdk_chm_set_current_channel, @function sdk_chm_set_current_channel: @@ -434,6 +445,7 @@ sdk_chm_set_current_channel: .literal_position # 36c: 00000000 # Function @ .irom0.text+0x370 + .balign 4 .global sdk_chm_freq2index .type sdk_chm_freq2index, @function sdk_chm_freq2index: @@ -462,6 +474,7 @@ sdk_chm_freq2index: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_chm_check_same_channel .type sdk_chm_check_same_channel, @function sdk_chm_check_same_channel: diff --git a/binary_sdk/libnet80211/wl_cnx.S b/binary_sdk/libnet80211/wl_cnx.S index 45061c1..7db8695 100644 --- a/binary_sdk/libnet80211/wl_cnx.S +++ b/binary_sdk/libnet80211/wl_cnx.S @@ -50,6 +50,7 @@ sdk_g_cnx_probe_rc_list_cb: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_cnx_attach .type sdk_cnx_attach, @function sdk_cnx_attach: @@ -86,6 +87,7 @@ sdk_cnx_attach: # Function @ .irom0.text+0x64 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_cnx_sta_connect_led_timer_cb .type sdk_cnx_sta_connect_led_timer_cb, @function sdk_cnx_sta_connect_led_timer_cb: @@ -139,6 +141,7 @@ sdk_cnx_sta_connect_led_timer_cb: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .global sdk_cnx_sta_connect_cmd .type sdk_cnx_sta_connect_cmd, @function sdk_cnx_sta_connect_cmd: @@ -241,6 +244,7 @@ sdk_cnx_sta_connect_cmd: # (local2): word @ -0x18 # (local3): word @ -0x14 # (local4): word[4] @ -0x10 + .balign 4 .global sdk_cnx_sta_scan_cmd .type sdk_cnx_sta_scan_cmd, @function sdk_cnx_sta_scan_cmd: @@ -349,6 +353,7 @@ sdk_cnx_sta_scan_cmd: # Function @ .irom0.text+0x2fc # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .Lfunc001: addi sp, sp, -16 /* (local0) */ # 2fc: 12c1f0 movi a5, sdk_g_ic # 2ff: 51faff s32i a0, sp, 0 /* a0 -> [(local0)] */ # 302: 0901 @@ -389,6 +394,7 @@ sdk_cnx_sta_scan_cmd: # Function @ .irom0.text+0x35c # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .Lfunc002: movi a3, .Lfunc005 # 35c: 31faff movi a4, 0 /* 0x00000000 */ # 35f: 0c04 addi sp, sp, -16 /* (local0) */ # 361: 12c1f0 @@ -431,6 +437,7 @@ sdk_cnx_sta_scan_cmd: # (local1): word @ -0x10 # (local2): word @ -0xc # (local3): word[2] @ -0x8 + .balign 4 .Lfunc003: addi sp, sp, -32 /* (local0) */ # 3bc: 12c1e0 s32i a0, sp, 20 /* a0 -> [(local2)] */ # 3bf: 0951 movi a0, sdk_g_ic # 3c1: 01f8ff @@ -473,6 +480,7 @@ sdk_cnx_sta_scan_cmd: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .Lfunc004: addi sp, sp, -16 /* (local0) */ # 418: 12c1f0 s32i a12, sp, 4 /* a12 -> [(local1)] */ # 41b: c911 mov a12, a2 /* arg0 */ # 41d: cd02 @@ -513,6 +521,7 @@ sdk_cnx_sta_scan_cmd: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .Lfunc005: addi sp, sp, -16 /* (local0) */ # 470: 12c1f0 s32i a3, sp, 0 /* arg1 -> [(local0)] */ # 473: 3901 s32i a12, sp, 8 /* a12 -> [(local2)] */ # 475: c921 @@ -548,6 +557,7 @@ sdk_cnx_sta_scan_cmd: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_cnx_connect_timeout .type sdk_cnx_connect_timeout, @function sdk_cnx_connect_timeout: @@ -594,6 +604,7 @@ sdk_cnx_connect_timeout: # Function @ .irom0.text+0x52c # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_cnx_start_handoff_cb .type sdk_cnx_start_handoff_cb, @function sdk_cnx_start_handoff_cb: @@ -630,6 +641,7 @@ sdk_cnx_start_handoff_cb: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .Lfunc006: movi a3, 16 /* 0x00000010 */ # 58c: 1c03 movi a2, .Ldata001 # 58e: 21ecff addi sp, sp, -16 /* (local0) */ # 591: 12c1f0 @@ -731,6 +743,7 @@ sdk_cnx_start_handoff_cb: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .Lfunc007: addi sp, sp, -16 /* (local0) */ # 69c: 12c1f0 s32i a0, sp, 0 /* a0 -> [(local0)] */ # 69f: 0901 movi a0, .Ldata006 # 6a1: 01edff @@ -854,6 +867,7 @@ sdk_cnx_start_handoff_cb: # (local4): word @ -0x14 # (local5): word @ -0x10 # (local6): word[3] @ -0xc + .balign 4 .Lfunc008: movi a4, 8 /* 0x00000008 */ # 7e8: 0c84 addi sp, sp, -48 /* (local0) */ # 7ea: 12c1d0 s32i a0, sp, 32 /* a0 -> [(local5)] */ # 7ed: 0981 @@ -1010,6 +1024,7 @@ sdk_cnx_start_handoff_cb: # (local4): word @ -0x10 # (local5): word @ -0xc # (local6): word[2] @ -0x8 + .balign 4 .Lfunc009: addi sp, sp, -32 /* (local0) */ # 95c: 12c1e0 s32i a12, sp, 4 /* a12 -> [(local1)] */ # 95f: c911 s32i a15, sp, 16 /* a15 -> [(local4)] */ # 961: f941 @@ -1074,6 +1089,7 @@ sdk_cnx_start_handoff_cb: .literal_position # 9f4: 88060000 # Function @ .irom0.text+0x9f8 + .balign 4 .Lfunc010: movi a5, .Ldata003 # 9f8: 51ffff l8ui a5, a5, 0 /* [.Ldata003] */ # 9fb: 520500 bbci a5, 0, .Lbr068 # 9fe: 07651a @@ -1116,6 +1132,7 @@ sdk_cnx_start_handoff_cb: # (local3): word @ -0x14 # (local4): word @ -0x10 # (local5): word[3] @ -0xc + .balign 4 .global sdk_cnx_bss_alloc .type sdk_cnx_bss_alloc, @function sdk_cnx_bss_alloc: @@ -1200,6 +1217,7 @@ sdk_cnx_bss_alloc: # (local2): word @ -0x18 # (local3): word @ -0x14 # (local4): word[4] @ -0x10 + .balign 4 .global sdk_cnx_rc_search .type sdk_cnx_rc_search, @function sdk_cnx_rc_search: @@ -1252,6 +1270,7 @@ sdk_cnx_rc_search: # b8c: 8a060000 # Function @ .irom0.text+0xb90 + .balign 4 .Lfunc011: movi a6, .Ldata005 # b90: 61fdff l8ui a5, a6, 0 /* [.Ldata005] */ # b93: 520600 addi a6, a6, -1 /* .Ldata004 */ # b96: 0b66 @@ -1287,6 +1306,7 @@ sdk_cnx_rc_search: # bec: 89060000 # Function @ .irom0.text+0xbf0 + .balign 4 .global sdk_cnx_add_rc .type sdk_cnx_add_rc, @function sdk_cnx_add_rc: @@ -1385,6 +1405,7 @@ sdk_cnx_add_rc: # (local1): word @ -0xc # (local2): word @ -0x8 # (local3): word @ -0x4 + .balign 4 .global sdk_cnx_remove_rc .type sdk_cnx_remove_rc, @function sdk_cnx_remove_rc: @@ -1469,6 +1490,7 @@ sdk_cnx_remove_rc: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_cnx_rc_update_rssi .type sdk_cnx_rc_update_rssi, @function sdk_cnx_rc_update_rssi: @@ -1528,6 +1550,7 @@ sdk_cnx_rc_update_rssi: # Function @ .irom0.text+0xe50 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_cnx_rc_update_state_metric .type sdk_cnx_rc_update_state_metric, @function sdk_cnx_rc_update_state_metric: @@ -1576,6 +1599,7 @@ sdk_cnx_rc_update_state_metric: # Function @ .irom0.text+0xebc # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_cnx_rc_update_age .type sdk_cnx_rc_update_age, @function sdk_cnx_rc_update_age: @@ -1602,6 +1626,7 @@ sdk_cnx_rc_update_age: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .global sdk_cnx_update_bss .type sdk_cnx_update_bss, @function sdk_cnx_update_bss: @@ -1653,6 +1678,7 @@ sdk_cnx_update_bss: # (local2): word @ -0x18 # (local3): word @ -0x14 # (local4): word[4] @ -0x10 + .balign 4 .global sdk_cnx_update_bss_more .type sdk_cnx_update_bss_more, @function sdk_cnx_update_bss_more: @@ -1813,6 +1839,7 @@ sdk_cnx_update_bss_more: .balign 4 # Function @ .irom0.text+0x1100 + .balign 4 .Lfunc012: ret /* arg0 */ # 1100: 0df0 .literal_position # 1104: 00000000 @@ -1838,6 +1865,7 @@ sdk_cnx_update_bss_more: # (local3): word @ -0xc # (local4): word @ -0x8 # (local5): word @ -0x4 + .balign 4 .global sdk_cnx_sta_leave .type sdk_cnx_sta_leave, @function sdk_cnx_sta_leave: @@ -1943,6 +1971,7 @@ sdk_cnx_sta_leave: # Function @ .irom0.text+0x123c # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .Lfunc013: movi a2, .Lstr003 # 123c: 21fbff addi sp, sp, -16 /* (local0) */ # 123f: 12c1f0 s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1242: 0901 @@ -1984,6 +2013,7 @@ sdk_cnx_sta_leave: # (local3): word @ -0xc # (local4): word @ -0x8 # (local5): word @ -0x4 + .balign 4 .global sdk_cnx_sta_associated .type sdk_cnx_sta_associated, @function sdk_cnx_sta_associated: @@ -2031,6 +2061,7 @@ sdk_cnx_sta_associated: .balign 4 # Function @ .irom0.text+0x1300 + .balign 4 .Lfunc014: ret /* arg0 */ # 1300: 0df0 .literal_position # 1304: 00000000 @@ -2044,6 +2075,7 @@ sdk_cnx_sta_associated: # (local1): word @ -0xc # (local2): word @ -0x8 # (local3): word @ -0x4 + .balign 4 .global sdk_cnx_node_alloc .type sdk_cnx_node_alloc, @function sdk_cnx_node_alloc: @@ -2099,6 +2131,7 @@ sdk_cnx_node_alloc: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .global sdk_cnx_node_remove .type sdk_cnx_node_remove, @function sdk_cnx_node_remove: @@ -2158,6 +2191,7 @@ sdk_cnx_node_remove: # (local3): word @ -0x14 # (local4): word @ -0x10 # (local5): word[3] @ -0xc + .balign 4 .global sdk_cnx_node_search .type sdk_cnx_node_search, @function sdk_cnx_node_search: @@ -2216,6 +2250,7 @@ sdk_cnx_node_search: # (local3): word @ -0x10 # (local4): word @ -0xc # (local5): word[2] @ -0x8 + .balign 4 .global sdk_cnx_node_leave .type sdk_cnx_node_leave, @function sdk_cnx_node_leave: @@ -2323,6 +2358,7 @@ sdk_cnx_node_leave: # (local5): word @ -0x18 # (local6): word @ -0x14 # (local7): word[4] @ -0x10 + .balign 4 .global sdk_cnx_node_join .type sdk_cnx_node_join, @function sdk_cnx_node_join: diff --git a/binary_sdk/libnet80211_stage1/ieee80211.S b/binary_sdk/libnet80211_stage1/ieee80211.S new file mode 100644 index 0000000..f785cc5 --- /dev/null +++ b/binary_sdk/libnet80211_stage1/ieee80211.S @@ -0,0 +1,443 @@ + + .section .bss, "aw", @nobits + + .global g_ic + .type g_ic, @object +g_ic: .space 16 +.Ldata001: .word 0x00000000 # 10: 00000000 +.Ldata002: .word 0x00000000 # 14: 00000000 + +# NOTE: 1328 non-alignment zero bytes skipped. + + .skip 1328 + .global xieee80211Queue + .type xieee80211Queue, @object +xieee80211Queue: + .word 0x00000000 # 548: 00000000 + + .section .irom0.text, "ax", @progbits + + .literal_position # 0: 6c090000 + # 4: b4090000 + # 8: b4090000 + # c: 00000000 + +# Function @ .irom0.text+0x10 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word @ -0x10 +# (local5): word @ -0xc +# (local6): word[2] @ -0x8 + .balign 4 +.Lfunc001: movi a5, 131 /* 0x00000083 */ # 10: 52a083 + movi a6, 0x000009b4 # 13: 61fcff + addi sp, sp, -32 /* (local0) */ # 16: 12c1e0 + s32i a2, sp, 24 /* arg0 -> [(local6)] */ # 19: 2961 + s32i a15, sp, 16 /* a15 -> [(local4)] */ # 1b: f941 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1d: 0901 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 1f: c911 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 21: d921 + s32i a14, sp, 12 /* a14 -> [(local3)] */ # 23: e931 + movi a13, 0x0000096c # 25: d1f6ff + movi a14, 0 /* 0x00000000 */ # 28: 0c0e + mov a12, a2 /* arg0 */ # 2a: cd02 + movi a0, 156 /* 0x0000009c */ # 2c: 02a09c + mov a15, a2 /* arg0 */ # 2f: fd02 + add a0, a15, a0 /* arg0+0x9c */ # 31: 0a0f + movi a2, 14 /* 0x0000000e */ # 33: 0ce2 + s32i a2, a15, 128 /* 0x0000000e -> [arg0+0x80] */ # 35: 226f20 +.Lbr001: s32i a5, a12, 132 # 38: 526c21 + l8ui a3, a12, 138 # 3b: 320c8a + s32i a0, sp, 20 /* a0 -> [(local5)] */ # 3e: 0951 + bltu a0, a12, .Lbr002 # 40: c73008 + s16i a13, a12, 136 # 43: d25c44 + bne a12, a0, .Lbr002 # 46: 079c02 + s16i a6, a12, 136 # 49: 625c44 +.Lbr002: bnez a3, .Lbr003 # 4c: dc23 + l16ui a2, a12, 136 # 4e: 221c44 + movi a3, 131 /* 0x00000083 */ # 51: 32a083 + call0 ieee80211_mhz2ieee # 54: 050000 + l32i a0, sp, 20 /* [(local5)] */ # 57: 0851 + movi a5, 131 /* 0x00000083 */ # 59: 52a083 + movi a6, 0x000009b4 # 5c: 61ebff + s8i a2, a12, 138 # 5f: 224c8a +.Lbr003: addi a13, a13, 5 # 62: 5bdd + l8ui a4, a12, 139 # 64: 420c8b + addi a14, a14, 1 # 67: 1bee + bnez a4, .Lbr004 # 69: ccd4 + l8ui a7, a12, 141 # 6b: 720c8d + slli a7, a7, 24 # 6e: 807701 + srai a7, a7, 24 # 71: 707831 + slli a7, a7, 1 # 74: f07711 + s8i a7, a12, 139 # 77: 724c8b +.Lbr004: l32i a8, a15, 128 /* [arg0+0x80] */ # 7a: 822f20 + addi a12, a12, 12 # 7d: cbcc + blt a14, a8, .Lbr001 # 7f: 872eb5 + movi a2, 132 /* 0x00000084 */ # 82: 22a084 + add a2, a15, a2 /* arg0+0x84 */ # 85: 2a2f + call0 ieee80211_get_ratetable # 87: 01e1ffc0 + # 8b: 0000 + l32i a0, sp, 0 /* [(local0)] */ # 8d: 0801 + l32i a12, sp, 4 /* [(local1)] */ # 8f: c811 + l32i a13, sp, 8 /* [(local2)] */ # 91: d821 + s32i a2, a15, 0x150 /* a2 -> [arg0+0x150] */ # 93: 226f54 + l32i a14, sp, 12 /* [(local3)] */ # 96: e831 + l32i a15, sp, 16 /* [(local4)] */ # 98: f841 + addi sp, sp, 32 /* (top of frame) */ # 9a: 12c120 + ret # 9d: 0df0 + + .literal_position # a0: 00000000 + # a4: 00000000 + # a8: 00000000 + # ac: 00000000 + # b0: 00000000 + # b4: 00000000 + +# Function @ .irom0.text+0xb8 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global ieee80211_ifattach + .type ieee80211_ifattach, @function +ieee80211_ifattach: + addi sp, sp, -16 /* (local0) */ # b8: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # bb: c911 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # bd: 0901 + mov a12, a2 /* arg0 */ # bf: cd02 + call0 .Lfunc001 # c1: c5f4ff + mov a2, a12 /* arg0 */ # c4: 2d0c + movi a0, 100 /* 0x00000064 */ # c6: 02a064 + s16i a0, a12, 40 /* 0x0064 -> [arg0+0x28] */ # c9: 025c14 + call0 ieee80211_crypto_attach # cc: 01f6ffc0 + # d0: 0000 + mov a2, a12 /* arg0 */ # d2: 2d0c + call0 ieee80211_proto_attach # d4: 01f5ffc0 + # d8: 0000 + movi a3, 0 /* 0x00000000 */ # da: 0c03 + addmi a4, a12, 1280 /* arg0+0x500 */ # dc: 42dc05 + l32i a2, a4, 28 /* [arg0+0x51c] */ # df: 2874 + s32i a3, a4, 12 /* 0x00000000 -> [arg0+0x50c] */ # e1: 3934 + bnei a2, 3, .Lbr005 # e3: 663207 + mov a2, a12 /* arg0 */ # e6: 2d0c + call0 ieee80211_ht_attach # e8: 01f1ffc0 + # ec: 0000 +.Lbr005: movi a2, g_ic # ee: 21ecff + call0 chm_init # f1: 01efffc0 + # f5: 0000 + mov a2, a12 /* arg0 */ # f7: 2d0c + call0 ieee80211_scan_attach # f9: 01eeffc0 + # fd: 0000 + l32i a12, sp, 4 /* [(local1)] */ # ff: c811 + l32i a0, sp, 0 /* [(local0)] */ # 101: 0801 + addi sp, sp, 16 /* (top of frame) */ # 103: 12c110 + ret # 106: 0df0 + + .literal_position # 108: b4090000 + # 10c: b3090000 + # 110: 99f6ffff + # 114: 30f6ffff + # 118: 00000000 + # 11c: 00000000 + # 120: 00000000 + +# Function @ .irom0.text+0x124 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global ieee80211_mhz2ieee + .type ieee80211_mhz2ieee, @function +ieee80211_mhz2ieee: + movi a6, 0x000009b3 # 124: 61faff + movi a7, 0xfffff699 # 127: 71faff + addi sp, sp, -16 /* (local0) */ # 12a: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 12d: 0901 + movi a0, 0x000009b4 # 12f: 01f6ff + bbci a3, 7, .Lbr006 # 132: 776312 + beq a2, a0, .Lbr010 # 135: 07123d + bltu a6, a2, .Lbr009 # 138: 273628 + add a2, a2, a7 /* arg0+0xfffff699 */ # 13b: 7a22 + movi a3, 5 /* 0x00000005 */ # 13d: 0c53 + call0 __divsi3 # 13f: 01f6ffc0 + # 143: 0000 + j .Lbr008 # 145: 060500 +.Lbr006: beq a2, a0, .Lbr010 # 148: 07122a + bltu a6, a2, .Lbr007 # 14b: 27360c + add a2, a2, a7 /* arg0+0xfffff699 */ # 14e: 7a22 + movi a3, 5 /* 0x00000005 */ # 150: 0c53 + call0 __divsi3 # 152: 01f2ffc0 + # 156: 0000 + j .Lbr008 # 158: 460000 +.Lbr007: movi a2, -1 /* 0xffffffff */ # 15b: 7cf2 +.Lbr008: l32i a0, sp, 0 /* [(local0)] */ # 15d: 0801 + addi sp, sp, 16 /* (top of frame) */ # 15f: 12c110 + ret # 162: 0df0 +.Lbr009: movi a0, 0xfffff630 # 164: 01ecff + movi a3, 20 /* 0x00000014 */ # 167: 1c43 + add a2, a2, a0 /* arg0+0xfffff630 */ # 169: 0a22 + call0 __udivsi3 # 16b: 01edffc0 + # 16f: 0000 + addi a2, a2, 15 # 171: fb22 + j .Lbr008 # 173: 86f9ff +.Lbr010: movi a2, 14 /* 0x0000000e */ # 176: 0ce2 + j .Lbr008 # 178: 46f8ff + + .literal_position # 17c: ffff0000 + +# Function @ .irom0.text+0x180 + .balign 4 + .global ieee80211_chan2ieee + .type ieee80211_chan2ieee, @function +ieee80211_chan2ieee: + bnez a2, .Lbr011 # 180: cc22 + movi a2, 0 /* 0x00000000 */ # 182: 0c02 + ret /* 0x00000000 */ # 184: 0df0 +.Lbr011: movi a5, 0x0000ffff # 186: 51fdff + beq a2, a5, .Lbr012 # 189: 571204 + l8ui a2, a2, 6 /* [arg0+0x6] */ # 18c: 220206 + ret /* [arg0+0x6] */ # 18f: 0df0 +.Lbr012: mov a2, a5 /* 0x0000ffff */ # 191: 2d05 + ret /* 0x0000ffff */ # 193: 0df0 + + .literal_position # 198: 67090000 + # 19c: a4080000 + # 1a0: 88130000 + # 1a4: b4090000 + +# Function @ .irom0.text+0x1a8 + .balign 4 + .global ieee80211_ieee2mhz + .type ieee80211_ieee2mhz, @function +ieee80211_ieee2mhz: + movi a7, 14 /* 0x0000000e */ # 1a8: 0ce7 + movi a8, 13 /* 0x0000000d */ # 1aa: 0cd8 + movi a6, 0x00000967 # 1ac: 61fbff + movi a9, 0x000008a4 # 1af: 91fbff + bbci a3, 7, .Lbr014 # 1b2: 77630d + beq a2, a7, .Lbr016 # 1b5: 77121f + bgeu a8, a2, .Lbr015 # 1b8: 27b815 +.Lbr013: addx4 a2, a2, a2 # 1bb: 2022a0 + addx4 a2, a2, a9 # 1be: 9022a0 + ret # 1c1: 0df0 +.Lbr014: beq a2, a7, .Lbr016 # 1c3: 771211 + bgeu a8, a2, .Lbr015 # 1c6: 27b807 + movi a3, 26 /* 0x0000001a */ # 1c9: 1ca3 + bgeu a3, a2, .Lbr013 # 1cb: 27b3ec + movi a6, 0x00001388 # 1ce: 61f4ff +.Lbr015: addx4 a2, a2, a2 # 1d1: 2022a0 + add a2, a2, a6 # 1d4: 6a22 + ret # 1d6: 0df0 +.Lbr016: movi a2, 0x000009b4 # 1d8: 21f3ff + ret /* 0x000009b4 */ # 1db: 0df0 + + .balign 4 +# Function @ .irom0.text+0x1e0 + .balign 4 + .global ieee80211_find_channel + .type ieee80211_find_channel, @function +ieee80211_find_channel: + l32i a6, a2, 128 /* [arg0+0x80] */ # 1e0: 622220 + blti a6, 1, .Lbr019 # 1e3: a6161d + addx2 a7, a6, a6 # 1e6: 607690 + addx4 a7, a7, a2 # 1e9: 2077a0 +.Lbr017: l16ui a8, a2, 136 # 1ec: 821244 + l32i a9, a2, 132 # 1ef: 922221 + bne a3, a8, .Lbr018 # 1f2: 879309 + bnone a9, a4, .Lbr018 # 1f5: 470906 + movi a10, 132 /* 0x00000084 */ # 1f8: a2a084 + add a2, a2, a10 # 1fb: aa22 + ret # 1fd: 0df0 +.Lbr018: addi a2, a2, 12 # 1ff: cb22 + bne a2, a7, .Lbr017 # 201: 7792e7 +.Lbr019: movi a2, 0 /* 0x00000000 */ # 204: 0c02 + ret /* 0x00000000 */ # 206: 0df0 + +# Function @ .irom0.text+0x208 + .balign 4 + .global ieee80211_find_channel_byieee + .type ieee80211_find_channel_byieee, @function +ieee80211_find_channel_byieee: + l32i a6, a2, 128 /* [arg0+0x80] */ # 208: 622220 + blti a6, 1, .Lbr022 # 20b: a6161d + addx2 a7, a6, a6 # 20e: 607690 + addx4 a7, a7, a2 # 211: 2077a0 +.Lbr020: l8ui a8, a2, 138 # 214: 82028a + l32i a9, a2, 132 # 217: 922221 + bne a3, a8, .Lbr021 # 21a: 879309 + bnone a9, a4, .Lbr021 # 21d: 470906 + movi a10, 132 /* 0x00000084 */ # 220: a2a084 + add a2, a2, a10 # 223: aa22 + ret # 225: 0df0 +.Lbr021: addi a2, a2, 12 # 227: cb22 + bne a2, a7, .Lbr020 # 229: 7792e7 +.Lbr022: movi a2, 0 /* 0x00000000 */ # 22c: 0c02 + ret /* 0x00000000 */ # 22e: 0df0 + + .literal_position # 230: 00000000 + # 234: 10000000 + # 238: 00000000 + # 23c: 14000000 + # 240: 00000000 + # 244: 00000000 + # 248: 00000000 + # 24c: 34000000 + # 250: 3c000000 + # 254: 00000000 + # 258: 40000000 + # 25c: 00000000 + # 260: 14000000 + # 264: 34000000 + # 268: 08000000 + # 26c: 48000000 + # 270: 00000000 + # 274: 00000000 + # 278: 00000000 + # 27c: 00000000 + # 280: 00000000 + # 284: 00000000 + # 288: 00000000 + # 28c: 00000000 + # 290: 00000000 + # 294: 00000000 + # 298: 00000000 + # 29c: 00000000 + # 2a0: 00000000 + # 2a4: 00000000 + +# Function @ .irom0.text+0x2a8 +# Local variables/stack: +# (local0): word[4] @ -0x20 +# (local1): word @ -0x10 +# (local2): word[3] @ -0xc + .balign 4 + .global wifi_mode_set + .type wifi_mode_set, @function +wifi_mode_set: + addi sp, sp, -32 /* (local0) */ # 2a8: 12c1e0 + s32i a12, sp, 20 /* a12 -> [(local2)] */ # 2ab: c951 + s32i a0, sp, 16 /* a0 -> [(local1)] */ # 2ad: 0941 + mov a12, a2 /* arg0 */ # 2af: cd02 + movi a2, .Lstr001 # 2b1: 21dfff + call0 printf # 2b4: 01efffc0 + # 2b8: 0000 + beqz a12, .Lbr026 # 2ba: 164c0d + beqi a12, 1, .Lbr023 # 2bd: 261c08 + beqi a12, 2, .Lbr025 # 2c0: 262c72 + addi a0, a12, -3 /* arg0-0x3 */ # 2c3: 02ccfd + bnez a0, .Lbr027 # 2c6: 56100d +.Lbr023: movi a2, .Label001 # 2c9: 21daff + call0 printf # 2cc: 01eaffc0 + # 2d0: 0000 + movi a2, info # 2d2: 21d9ff + l8ui a7, a2, 34 /* [info+0x22] */ # 2d5: 720222 + l8ui a6, a2, 33 /* [info+0x21] */ # 2d8: 620221 + l8ui a5, a2, 32 /* [info+0x20] */ # 2db: 520220 + l8ui a4, a2, 31 /* [info+0x1f] */ # 2de: 42021f + l8ui a3, a2, 30 /* [info+0x1e] */ # 2e1: 32021e + l8ui a2, a2, 35 /* [info+0x23] */ # 2e4: 220223 + s32i a2, sp, 0 /* [info+0x23] -> [(local0)] */ # 2e7: 2901 + movi a2, .Lstr003 # 2e9: 21d4ff + call0 printf # 2ec: 01e3ffc0 + # 2f0: 0000 + movi a3, g_ic # 2f2: 31d3ff + l32i a3, a3, 16 /* [.Ldata001] */ # 2f5: 3843 + bnez a3, .Lbr024 # 2f7: ecf3 + movi a2, 648 /* 0x00000288 */ # 2f9: 22a288 + call0 zalloc # 2fc: 01e0ffc0 + # 300: 0000 + movi a5, g_ic # 302: 51d0ff + movi a4, 0 /* 0x00000000 */ # 305: 0c04 + s32i a2, a5, 16 /* a2 -> [.Ldata001] */ # 307: 2945 + s32i a4, a2, 176 # 309: 42622c + s32i a4, a2, 60 # 30c: 49f2 + movi a2, 272 /* 0x00000110 */ # 30e: 22a110 + call0 zalloc # 311: 01dbffc0 + # 315: 0000 + movi a6, g_ic # 317: 61ccff + movi a3, .Label002 # 31a: 31ccff + l32i a6, a6, 16 /* [.Ldata001] */ # 31d: 6846 + movi a4, 6 /* 0x00000006 */ # 31f: 0c64 + s32i a2, a6, 140 /* a2 -> [[.Ldata001]+0x8c] */ # 321: 226623 + call0 memcpy # 324: 01d8ffc0 + # 328: 0000 +.Lbr024: beqi a12, 1, .Lbr027 # 32a: 261c6d + movi a2, .Label003 # 32d: 21c8ff + call0 printf # 330: 01d6ffc0 + # 334: 0000 +.Lbr025: movi a12, g_ic # 336: c1c7ff + movi a2, .Lstr004 # 339: 21c7ff + call0 printf # 33c: 01d4ffc0 + # 340: 0000 + movi a8, info # 342: 81c6ff + movi a2, .Lstr003 # 345: 21c6ff + l8ui a7, a8, 28 /* [info+0x1c] */ # 348: 72081c + l8ui a6, a8, 27 /* [info+0x1b] */ # 34b: 62081b + l8ui a5, a8, 26 /* [info+0x1a] */ # 34e: 52081a + l8ui a4, a8, 25 /* [info+0x19] */ # 351: 420819 + l8ui a3, a8, 24 /* [info+0x18] */ # 354: 320818 + l8ui a8, a8, 29 /* [info+0x1d] */ # 357: 82081d + s32i a8, sp, 0 /* [info+0x1d] -> [(local0)] */ # 35a: 8901 + call0 printf # 35c: 01cdffc0 + # 360: 0000 + l32i a9, a12, 20 /* [.Ldata002] */ # 362: 985c + bnez a9, .Lbr027 # 364: fc39 + movi a2, 648 /* 0x00000288 */ # 366: 22a288 + call0 zalloc # 369: 01caffc0 + # 36d: 0000 + s32i a2, a12, 20 /* a2 -> [.Ldata002] */ # 36f: 295c + movi a10, 1 /* 0x00000001 */ # 371: 0c1a + s32i a10, a2, 176 # 373: a2622c + movi a2, 272 /* 0x00000110 */ # 376: 22a110 + call0 zalloc # 379: 01c7ffc0 + # 37d: 0000 + movi a3, .Label002 # 37f: 31b9ff + l32i a11, a12, 20 /* [.Ldata002] */ # 382: b85c + movi a4, 6 /* 0x00000006 */ # 384: 0c64 + s32i a2, a11, 144 /* a2 -> [[.Ldata002]+0x90] */ # 386: 226b24 + call0 memcpy # 389: 01c4ffc0 + # 38d: 0000 + j .Lbr027 # 38f: 060200 +.Lbr026: movi a2, .Lstr002 # 392: 21b5ff + call0 printf # 395: 01c2ffc0 + # 399: 0000 +.Lbr027: movi a2, .Label004 # 39b: 21b4ff + call0 printf # 39e: 01c1ffc0 + # 3a2: 0000 + movi a2, 1 /* 0x00000001 */ # 3a4: 0c12 + l32i a12, sp, 20 /* [(local2)] */ # 3a6: c851 + l32i a0, sp, 16 /* [(local1)] */ # 3a8: 0841 + addi sp, sp, 32 /* (top of frame) */ # 3aa: 12c120 + ret /* 0x00000001 */ # 3ad: 0df0 + + .section .rodata, "a", @progbits + + .global ieee80211_opcap + .type ieee80211_opcap, @object +ieee80211_opcap: + .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00 + + .section .rodata.str1.4, "MSa", @progbits, 1 + +.Lstr001: .asciz "mode : " # 0: 6d6f6465 + # 4: 203a2000 +.Lstr002: .asciz "null" # 8: 6e756c6c + # c: 00 + .balign 4 +.Label001: .word 0x00617473 # 10: 73746100 +.Lstr003: .asciz "(%02x:%02x:%02x:%02x:%02x:%02x)" # 14: 28253032 + # 18: 783a2530 + # 1c: 32783a25 + # 20: 3032783a + # 24: 25303278 + # 28: 3a253032 + # 2c: 783a2530 + # 30: 32782900 +.Label002: .byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00 +.Label003: .word 0x00202b20 # 3c: 202b2000 +.Lstr004: .asciz "softAP" # 40: 736f6674 + # 44: 415000 + .balign 4 +.Label004: .byte 0x0a, 0x00 diff --git a/binary_sdk/libnet80211_stage1/ieee80211_action.S b/binary_sdk/libnet80211_stage1/ieee80211_action.S new file mode 100644 index 0000000..82a2d45 --- /dev/null +++ b/binary_sdk/libnet80211_stage1/ieee80211_action.S @@ -0,0 +1,206 @@ + + .section .data, "aw", @progbits + +.Lrel001: .word .irom0.text # 0: 00000000 +.Lrel002: .word .irom0.text # 4: 00000000 +.Lrel003: .word .irom0.text # 8: 00000000 +.Lrel004: .word .irom0.text # c: 00000000 +.Lrel005: .word .Lfunc002 # 10: bc000000 +.Lrel006: .word .Lfunc002 # 14: bc000000 +.Lrel007: .word .Lfunc002 # 18: bc000000 + + .section .irom0.text, "ax", @progbits + +# Function @ .irom0.text+0x0 + .balign 4 + .literal_position +.Lfunc001: movi a2, -1 /* 0xffffffff */ # 0: 7cf2 + ret /* 0xffffffff */ # 2: 0df0 + + .literal_position # 4: 0c000000 + # 8: 00000000 + # c: 08000000 + +# Function @ .irom0.text+0x10 + .balign 4 + .global ieee80211_send_action_register + .type ieee80211_send_action_register, @function +ieee80211_send_action_register: + beqi a2, 3, .Lbr003 # 10: 26321a + beqi a2, 7, .Lbr004 # 13: 267220 + movi a5, 127 /* 0x0000007f */ # 16: 52a07f + bne a2, a5, .Lbr002 # 19: 57920d + bnez a3, .Lbr002 # 1c: cca3 + movi a2, .Lrel004 # 1e: 21f9ff +.Lbr001: addx4 a6, a3, a2 # 21: 2063a0 + s32i a4, a6, 0 # 24: 4906 + movi a2, 0 /* 0x00000000 */ # 26: 0c02 + ret /* 0x00000000 */ # 28: 0df0 +.Lbr002: movi a2, -1 /* 0xffffffff */ # 2a: 7cf2 + ret /* 0xffffffff */ # 2c: 0df0 +.Lbr003: bgeui a3, 2, .Lbr002 # 2e: f623f8 + movi a2, .Lrel001 # 31: 21f5ff + j .Lbr001 # 34: 46faff +.Lbr004: bnez a3, .Lbr002 # 37: 56f3fe + movi a2, .Lrel003 # 3a: 21f4ff + j .Lbr001 # 3d: 06f8ff + + .literal_position # 40: 00000000 + +# Function @ .irom0.text+0x44 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global ieee80211_send_action_unregister + .type ieee80211_send_action_unregister, @function +ieee80211_send_action_unregister: + movi a4, .Lfunc001 # 44: 41ffff + addi sp, sp, -16 /* (local0) */ # 47: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 4a: 0901 + call0 ieee80211_send_action_register # 4c: 050000 + l32i a0, sp, 0 /* [(local0)] */ # 4f: 0801 + addi sp, sp, 16 /* (top of frame) */ # 51: 12c110 + ret # 54: 0df0 + + .literal_position # 58: 00000000 + # 5c: 0c000000 + # 60: 08000000 + # 64: 00000000 + +# Function @ .irom0.text+0x68 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global ieee80211_send_action + .type ieee80211_send_action, @function +ieee80211_send_action: + addi sp, sp, -16 /* (local0) */ # 68: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 6b: 0901 + movi a0, .Lfunc001 # 6d: 01faff + beqi a3, 3, .Lbr005 # 70: 263315 + beqi a3, 7, .Lbr009 # 73: 267326 + movi a6, 127 /* 0x0000007f */ # 76: 62a07f + bne a3, a6, .Lbr006 # 79: 67930f + bnez a4, .Lbr008 # 7c: dc84 + movi a7, .Lrel004 # 7e: 71f7ff + addx4 a7, a4, a7 # 81: 7074a0 + l32i a7, a7, 0 # 84: 7807 + j .Lbr007 # 86: 060100 +.Lbr005: bltui a4, 2, .Lbr011 # 89: b62422 +.Lbr006: mov a7, a0 /* .Lfunc001 */ # 8c: 7d00 +.Lbr007: callx0 a7 # 8e: c00700 + l32i a0, sp, 0 /* [(local0)] */ # 91: 0801 + addi sp, sp, 16 /* (top of frame) */ # 93: 12c110 + ret # 96: 0df0 +.Lbr008: mov a7, a0 /* .Lfunc001 */ # 98: 7d00 + j .Lbr007 # 9a: 06fcff +.Lbr009: bnez a4, .Lbr010 # 9d: cc94 + movi a7, .Lrel003 # 9f: 71f0ff + addx4 a7, a4, a7 # a2: 7074a0 + l32i a7, a7, 0 # a5: 7807 + j .Lbr007 # a7: c6f8ff +.Lbr010: mov a7, a0 /* .Lfunc001 */ # aa: 7d00 + j .Lbr007 # ac: 86f7ff +.Lbr011: movi a7, .Lrel001 # af: 71edff + addx4 a7, a4, a7 # b2: 7074a0 + l32i a7, a7, 0 # b5: 7807 + j .Lbr007 # b7: c6f4ff + + .balign 4 +# Function @ .irom0.text+0xbc + .balign 4 +.Lfunc002: movi a2, -1 /* 0xffffffff */ # bc: 7cf2 + ret /* 0xffffffff */ # be: 0df0 + + .literal_position # c0: 18000000 + # c4: 10000000 + # c8: 14000000 + +# Function @ .irom0.text+0xcc + .balign 4 + .global ieee80211_recv_action_register + .type ieee80211_recv_action_register, @function +ieee80211_recv_action_register: + beqi a2, 3, .Lbr014 # cc: 26321a + beqi a2, 7, .Lbr015 # cf: 267220 + movi a5, 127 /* 0x0000007f */ # d2: 52a07f + bne a2, a5, .Lbr013 # d5: 57920d + bnez a3, .Lbr013 # d8: cca3 + movi a2, .Lrel007 # da: 21f9ff +.Lbr012: addx4 a6, a3, a2 # dd: 2063a0 + s32i a4, a6, 0 # e0: 4906 + movi a2, 0 /* 0x00000000 */ # e2: 0c02 + ret /* 0x00000000 */ # e4: 0df0 +.Lbr013: movi a2, -1 /* 0xffffffff */ # e6: 7cf2 + ret /* 0xffffffff */ # e8: 0df0 +.Lbr014: bnez a3, .Lbr013 # ea: 5683ff + movi a2, .Lrel005 # ed: 21f5ff + j .Lbr012 # f0: 46faff +.Lbr015: bnez a3, .Lbr013 # f3: 56f3fe + movi a2, .Lrel006 # f6: 21f4ff + j .Lbr012 # f9: 06f8ff + + .literal_position # fc: bc000000 + +# Function @ .irom0.text+0x100 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global ieee80211_recv_action_unregister + .type ieee80211_recv_action_unregister, @function +ieee80211_recv_action_unregister: + movi a4, .Lfunc002 # 100: 41ffff + addi sp, sp, -16 /* (local0) */ # 103: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 106: 0901 + call0 ieee80211_recv_action_register # 108: 050000 + l32i a0, sp, 0 /* [(local0)] */ # 10b: 0801 + addi sp, sp, 16 /* (top of frame) */ # 10d: 12c110 + ret # 110: 0df0 + + .literal_position # 114: bc000000 + # 118: 18000000 + # 11c: 14000000 + # 120: 10000000 + +# Function @ .irom0.text+0x124 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global ieee80211_recv_action + .type ieee80211_recv_action, @function +ieee80211_recv_action: + addi sp, sp, -16 /* (local0) */ # 124: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 127: 0901 + l8ui a0, a4, 0 /* [arg2] */ # 129: 020400 + movi a8, .Lfunc002 # 12c: 81faff + beqi a0, 3, .Lbr016 # 12f: 26301a + beqi a0, 7, .Lbr020 # 132: 26702b + movi a6, 127 /* 0x0000007f */ # 135: 62a07f + bne a0, a6, .Lbr017 # 138: 679016 + l8ui a0, a4, 1 /* [arg2+0x1] */ # 13b: 020401 + mov a7, a8 /* .Lfunc002 */ # 13e: 7d08 + bnez a0, .Lbr019 # 140: dca0 + movi a7, .Lrel007 # 142: 71f5ff + addx4 a7, a0, a7 # 145: 7070a0 + l32i a7, a7, 0 # 148: 7807 + j .Lbr018 # 14a: 860100 +.Lbr016: l8ui a0, a4, 1 /* [arg2+0x1] */ # 14d: 020401 + beqz a0, .Lbr022 # 150: ac20 +.Lbr017: mov a7, a8 /* .Lfunc002 */ # 152: 7d08 +.Lbr018: callx0 a7 # 154: c00700 + l32i a0, sp, 0 /* [(local0)] */ # 157: 0801 + addi sp, sp, 16 /* (top of frame) */ # 159: 12c110 + ret # 15c: 0df0 +.Lbr019: j .Lbr018 # 15e: 86fcff +.Lbr020: l8ui a0, a4, 1 /* [arg2+0x1] */ # 161: 020401 + mov a7, a8 /* .Lfunc002 */ # 164: 7d08 + bnez a0, .Lbr021 # 166: cc90 + movi a7, .Lrel006 # 168: 71edff + addx4 a7, a0, a7 # 16b: 7070a0 + l32i a7, a7, 0 # 16e: 7807 + j .Lbr018 # 170: 06f8ff +.Lbr021: j .Lbr018 # 173: 46f7ff +.Lbr022: movi a7, .Lrel005 # 176: 71eaff + addx4 a7, a0, a7 # 179: 7070a0 + l32i a7, a7, 0 # 17c: 7807 + j .Lbr018 # 17e: 86f4ff diff --git a/binary_sdk/libnet80211_stage1/ieee80211_crypto.S b/binary_sdk/libnet80211_stage1/ieee80211_crypto.S new file mode 100644 index 0000000..00d66bb --- /dev/null +++ b/binary_sdk/libnet80211_stage1/ieee80211_crypto.S @@ -0,0 +1,115 @@ + + .section .irom0.text, "ax", @progbits + +# Function @ .irom0.text+0x0 + .balign 4 + .literal_position + .global ieee80211_crypto_attach + .type ieee80211_crypto_attach, @function +ieee80211_crypto_attach: + ret /* arg0 */ # 0: 0df0 + + .balign 4 +# Function @ .irom0.text+0x4 + .balign 4 + .global ieee80211_crypto_available + .type ieee80211_crypto_available, @function +ieee80211_crypto_available: + movi a2, 0 /* 0x00000000 */ # 4: 0c02 + ret /* 0x00000000 */ # 6: 0df0 + +# Function @ .irom0.text+0x8 + .balign 4 + .global ieee80211_crypto_setkey + .type ieee80211_crypto_setkey, @function +ieee80211_crypto_setkey: + movi a2, 0 /* 0x00000000 */ # 8: 0c02 + ret /* 0x00000000 */ # a: 0df0 + + .literal_position # c: 00000000 + +# Function @ .irom0.text+0x10 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global ieee80211_crypto_encap + .type ieee80211_crypto_encap, @function +ieee80211_crypto_encap: + addi sp, sp, -16 /* (local0) */ # 10: 12c1f0 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 13: 0911 + l32i a4, a3, 32 /* [arg1+0x20] */ # 15: 4883 + l32i a0, a2, 136 /* [arg0+0x88] */ # 17: 022222 + l32i a4, a4, 0 /* [[arg1+0x20]] */ # 1a: 4804 + movi a2, g_ic # 1c: 21fcff + bbci a4, 7, .Lbr003 # 1f: 776434 + l8ui a0, a0, 233 /* [[arg0+0x88]+0xe9] */ # 22: 0200e9 + bltui a0, 2, .Lbr001 # 25: b62004 + addi a6, a0, -1 /* [[arg0+0x88]+0xe9]-0x1 */ # 28: 0b60 + j .Lbr002 # 2a: 460000 +.Lbr001: mov a6, a0 /* [[arg0+0x88]+0xe9] */ # 2d: 6d00 +.Lbr002: addx4 a2, a0, a2 # 2f: 2020a0 + l32i a2, a2, 0x190 # 32: 222264 + slli a4, a6, 6 # 35: a04611 + l32i a0, a2, 152 # 38: 022226 + extui a4, a4, 0, 8 # 3b: 404074 + l32i a0, a0, 16 # 3e: 0840 + s32i a2, sp, 0 /* a2 -> [(local0)] */ # 40: 2901 + callx0 a0 # 42: c00000 + l32i a4, sp, 0 /* [(local0)] */ # 45: 4801 + l32i a3, sp, 4 /* [(local1)] */ # 47: 3811 + movi a0, 0 /* 0x00000000 */ # 49: 0c00 + addi sp, sp, 16 /* (top of frame) */ # 4b: 12c110 + movnez a0, a4, a2 # 4e: 200493 + mov a2, a0 # 51: 2d00 + mov a0, a3 /* [(local1)] */ # 53: 0d03 + ret # 55: 0df0 +.Lbr003: movi a6, 0 /* 0x00000000 */ # 57: 0c06 + l8ui a0, a0, 232 /* [[arg0+0x88]+0xe8] */ # 59: 0200e8 + j .Lbr002 # 5c: c6f3ff + + .literal_position # 60: 00000000 + +# Function @ .irom0.text+0x64 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global ieee80211_crypto_decap + .type ieee80211_crypto_decap, @function +ieee80211_crypto_decap: + addi sp, sp, -16 /* (local0) */ # 64: 12c1f0 + l16ui a5, a3, 22 /* [arg1+0x16] */ # 67: 52130b + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 6a: 0911 + l16ui a0, a3, 20 /* [arg1+0x14] */ # 6c: 02130a + movi a6, g_ic # 6f: 61fcff + add a0, a0, a5 # 72: 5a00 + bltui a0, 32, .Lbr005 # 74: b6c020 + l32i a0, a3, 4 /* [arg1+0x4] */ # 77: 0813 + l32i a0, a0, 4 /* [[arg1+0x4]+0x4] */ # 79: 0810 + l8ui a7, a0, 4 /* [[[arg1+0x4]+0x4]+0x4] */ # 7b: 720004 + add a0, a4, a0 # 7e: 0a04 + bbci a7, 0, .Lbr008 # 80: 076731 + l8ui a0, a0, 3 # 83: 020003 + extui a0, a0, 6, 2 # 86: 000614 + addi a0, a0, -1 # 89: 0b00 + extui a0, a0, 0, 8 # 8b: 000074 +.Lbr004: addx4 a2, a0, a6 # 8e: 6020a0 + l32i a2, a2, 0x190 # 91: 222264 + s32i a2, sp, 0 /* a2 -> [(local0)] */ # 94: 2901 + bnez a2, .Lbr006 # 96: cc32 +.Lbr005: movi a2, 0 /* 0x00000000 */ # 98: 0c02 + j .Lbr007 # 9a: 060400 +.Lbr006: l32i a0, a2, 152 # 9d: 022226 + l32i a0, a0, 20 # a0: 0850 + callx0 a0 # a2: c00000 + mov a4, a2 # a5: 4d02 + l32i a3, sp, 0 /* [(local0)] */ # a7: 3801 + movi a2, 0 /* 0x00000000 */ # a9: 0c02 + movnez a2, a3, a4 # ab: 402393 +.Lbr007: l32i a0, sp, 4 /* [(local1)] */ # ae: 0811 + addi sp, sp, 16 /* (top of frame) */ # b0: 12c110 + ret # b3: 0df0 +.Lbr008: l32i a0, a2, 136 /* [arg0+0x88] */ # b5: 022222 + l8ui a0, a0, 232 /* [[arg0+0x88]+0xe8] */ # b8: 0200e8 + j .Lbr004 # bb: c6f3ff diff --git a/binary_sdk/libnet80211_stage1/ieee80211_crypto_ccmp.S b/binary_sdk/libnet80211_stage1/ieee80211_crypto_ccmp.S new file mode 100644 index 0000000..9f149d7 --- /dev/null +++ b/binary_sdk/libnet80211_stage1/ieee80211_crypto_ccmp.S @@ -0,0 +1,142 @@ + + .section .data, "aw", @progbits + + .global ccmp + .type ccmp, @object +ccmp: .word 0x00000003 # 0: 03000000 +.Ldata001: .word 0x00000008 # 4: 08000000 + +# NOTE: The following is apparently unreferenced code/data + .word 0x00000008 # 8: 08000000 + .word 0x00000000 # c: 00000000 + +.Lrel001: .word .Lfunc001 # 10: 04000000 +.Lrel002: .word .Lfunc002 # 14: 80000000 + + .section .irom0.text, "ax", @progbits + + .literal_position # 0: 00000000 + +# Function @ .irom0.text+0x4 + .balign 4 +.Lfunc001: ssai 8 # 4: 004840 + l32i a5, a2, 144 /* [arg0+0x90] */ # 7: 522224 + l16ui a6, a3, 22 /* [arg1+0x16] */ # a: 62130b + movi a7, ccmp # d: 71fcff + l32i a9, a3, 4 /* [arg1+0x4] */ # 10: 9813 + l32i a10, a7, 4 /* [.Ldata001] */ # 12: a817 + l32i a7, a7, 4 /* [.Ldata001] */ # 14: 7817 + l32i a8, a9, 4 /* [[arg1+0x4]+0x4] */ # 16: 8819 + add a6, a6, a7 # 18: 7a66 + sub a8, a8, a10 # 1a: a088c0 + addi a7, a5, 1 /* [arg0+0x90]+0x1 */ # 1d: 1b75 + s32i a8, a9, 4 /* a8 -> [[arg1+0x4]+0x4] */ # 1f: 8919 + s16i a6, a3, 22 /* a6 -> [arg1+0x16] */ # 21: 62530b + movi a9, 32 /* 0x00000020 */ # 24: 2c09 + or a11, a4, a9 # 26: 90b420 + s32i a7, a2, 144 /* [arg0+0x90]+0x1 -> [arg0+0x90] */ # 29: 726224 + l32i a3, a2, 148 /* [arg0+0x94] */ # 2c: 322225 + bgeu a7, a5, .Lbr001 # 2f: 57b701 + addi a3, a3, 1 /* [arg0+0x94]+0x1 */ # 32: 1b33 +.Lbr001: movi a5, 0 /* 0x00000000 */ # 34: 0c05 + s32i a3, a2, 148 /* a3 -> [arg0+0x94] */ # 36: 326225 + s8i a7, a8, 0 # 39: 724800 + l32i a6, a2, 148 /* [arg0+0x94] */ # 3c: 622225 + l32i a10, a2, 144 /* [arg0+0x90] */ # 3f: a22224 + s8i a5, a8, 2 # 42: 524802 + s8i a11, a8, 3 # 45: b24803 + src a6, a6, a10 # 48: a06681 + s8i a6, a8, 1 # 4b: 624801 + l32i a11, a2, 144 /* [arg0+0x90] */ # 4e: b22224 + l32i a10, a2, 148 /* [arg0+0x94] */ # 51: a22225 + ssai 16 # 54: 104040 + src a10, a10, a11 # 57: b0aa81 + s8i a10, a8, 4 # 5a: a24804 + l32i a6, a2, 144 /* [arg0+0x90] */ # 5d: 622224 + l32i a5, a2, 148 /* [arg0+0x94] */ # 60: 522225 + ssai 24 # 63: 104840 + src a5, a5, a6 # 66: 605581 + s8i a5, a8, 5 # 69: 524805 + l32i a11, a2, 148 /* [arg0+0x94] */ # 6c: b22225 + s8i a11, a8, 6 # 6f: b24806 + l32i a10, a2, 148 /* [arg0+0x94] */ # 72: a22225 + movi a2, 1 /* 0x00000001 */ # 75: 0c12 + srli a10, a10, 8 # 77: a0a841 + s8i a10, a8, 7 # 7a: a24807 + ret /* 0x00000001 */ # 7d: 0df0 + + .balign 4 +# Function @ .irom0.text+0x80 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 +.Lfunc002: addi sp, sp, -16 /* (local0) */ # 80: 12c1f0 + l32i a8, a3, 4 /* [arg1+0x4] */ # 83: 8813 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 85: 0911 + l32i a0, a8, 4 /* [[arg1+0x4]+0x4] */ # 87: 0818 + add a7, a4, a0 # 89: 0a74 + l8ui a5, a7, 3 # 8b: 520703 + movi a9, 140 /* 0x0000008c */ # 8e: 92a08c + extui a5, a5, 5, 1 # 91: 505504 + beqz a5, .Lbr006 # 94: 169508 + l8ui a5, a7, 6 # 97: 520706 + l8ui a11, a7, 7 # 9a: b20707 + l8ui a6, a0, 0 /* [[[arg1+0x4]+0x4]] */ # 9d: 620000 + slli a11, a11, 8 # a0: 80bb11 + and a6, a6, a9 # a3: 906610 + or a11, a11, a5 # a6: 50bb20 + l8ui a5, a7, 4 # a9: 520704 + movi a9, 136 /* 0x00000088 */ # ac: 92a088 + slli a5, a5, 16 # af: 005511 + bne a6, a9, .Lbr002 # b2: 979611 + l8ui a10, a0, 1 /* [[[arg1+0x4]+0x4]+0x1] */ # b5: a20001 + extui a10, a10, 0, 2 # b8: a0a014 + addi a10, a10, -3 # bb: a2cafd + bnez a10, .Lbr008 # be: 56aa06 + l8ui a0, a0, 30 /* [[[arg1+0x4]+0x4]+0x1e] */ # c1: 02001e + j .Lbr009 # c4: c61900 +.Lbr002: movi a0, 16 /* 0x00000010 */ # c7: 1c00 +.Lbr003: l8ui a9, a7, 0 # c9: 920700 + l8ui a10, a7, 5 # cc: a20705 + l8ui a6, a7, 1 # cf: 620701 + slli a10, a10, 24 # d2: 80aa01 + slli a6, a6, 8 # d5: 806611 + or a6, a6, a9 # d8: 906620 + extui a7, a11, 0, 16 # db: b070f4 + addx8 a9, a0, a2 # de: 2090b0 + or a5, a5, a6 # e1: 605520 + movi a0, 0 /* 0x00000000 */ # e4: 0c00 + s32i a9, sp, 0 /* a9 -> [(local0)] */ # e6: 9901 + l32i a11, a9, 8 # e8: b829 + l32i a9, a9, 12 # ea: 9839 + or a10, a10, a5 # ec: 50aa20 + bltu a9, a7, .Lbr005 # ef: 773907 + bne a9, a7, .Lbr004 # f2: 779902 + bltu a11, a10, .Lbr005 # f5: a73b01 +.Lbr004: movi a0, 1 /* 0x00000001 */ # f8: 0c10 +.Lbr005: bnez a0, .Lbr006 # fa: ec30 + l32i a11, sp, 0 /* [(local0)] */ # fc: b801 + l16ui a9, a3, 22 /* [arg1+0x16] */ # fe: 92130b + s32i a10, a11, 8 /* a10 -> [[(local0)]+0x8] */ # 101: a92b + s32i a7, a11, 12 /* a7 -> [[(local0)]+0xc] */ # 103: 793b + l32i a11, a2, 152 /* [arg0+0x98] */ # 105: b22226 + l32i a5, a8, 4 /* [[arg1+0x4]+0x4] */ # 108: 5818 + l32i a0, a11, 4 /* [[arg0+0x98]+0x4] */ # 10a: 081b + l32i a11, a11, 8 /* [[arg0+0x98]+0x8] */ # 10c: b82b + add a6, a4, a0 # 10e: 0a64 + add a11, a11, a0 # 110: 0abb + add a5, a5, a6 # 112: 6a55 + movi a0, 1 /* 0x00000001 */ # 114: 0c10 + s32i a5, a8, 4 /* a5 -> [[arg1+0x4]+0x4] */ # 116: 5918 + sub a9, a9, a11 # 118: b099c0 + s16i a9, a3, 22 /* a9 -> [arg1+0x16] */ # 11b: 92530b + j .Lbr007 # 11e: 460000 +.Lbr006: movi a0, 0 /* 0x00000000 */ # 121: 0c00 +.Lbr007: mov a2, a0 # 123: 2d00 + l32i a0, sp, 4 /* [(local1)] */ # 125: 0811 + addi sp, sp, 16 /* (top of frame) */ # 127: 12c110 + ret # 12a: 0df0 +.Lbr008: l8ui a0, a0, 24 /* [[[arg1+0x4]+0x4]+0x18] */ # 12c: 020018 +.Lbr009: extui a0, a0, 0, 4 # 12f: 000034 + j .Lbr003 # 132: c6e4ff diff --git a/binary_sdk/libnet80211_stage1/ieee80211_crypto_tkip.S b/binary_sdk/libnet80211_stage1/ieee80211_crypto_tkip.S new file mode 100644 index 0000000..cf30e82 --- /dev/null +++ b/binary_sdk/libnet80211_stage1/ieee80211_crypto_tkip.S @@ -0,0 +1,165 @@ + + .section .data, "aw", @progbits + + .global tkip + .type tkip, @object +tkip: .word 0x00000002 # 0: 02000000 +.Ldata001: .word 0x00000008 # 4: 08000000 + +# NOTE: The following is apparently unreferenced code/data + .word 0x0000000c # 8: 0c000000 + .word 0x00000008 # c: 08000000 + +.Lrel001: .word .Lfunc001 # 10: 08000000 +.Lrel002: .word .Lfunc002 # 14: a0000000 + + .section .bss, "aw", @nobits + +.Ldata002: .word 0x00000000 # 0: 00000000 +.Ldata003: .word 0x00000000 # 4: 00000000 + + .section .irom0.text, "ax", @progbits + + .literal_position # 0: 00000000 + # 4: 00000000 + +# Function @ .irom0.text+0x8 + .balign 4 +.Lfunc001: movi a5, g_ic # 8: 51feff + ssai 8 # b: 004840 + l32i a5, a5, 28 /* [g_ic+0x1c] */ # e: 5875 + movi a11, tkip # 10: b1fdff + bbci a5, 26, .Lbr001 # 13: a77503 + movi a2, 0 /* 0x00000000 */ # 16: 0c02 + ret /* 0x00000000 */ # 18: 0df0 +.Lbr001: l32i a7, a2, 148 /* [arg0+0x94] */ # 1a: 722225 + l16ui a10, a3, 22 /* [arg1+0x16] */ # 1d: a2130b + l32i a5, a3, 4 /* [arg1+0x4] */ # 20: 5813 + l32i a9, a11, 4 /* [.Ldata001] */ # 22: 981b + l32i a8, a5, 4 /* [[arg1+0x4]+0x4] */ # 24: 8815 + l32i a11, a11, 4 /* [.Ldata001] */ # 26: b81b + sub a8, a8, a9 # 28: 9088c0 + l32i a9, a2, 144 /* [arg0+0x90] */ # 2b: 922224 + add a10, a10, a11 # 2e: baaa + src a7, a7, a9 # 30: 907781 + movi a9, 95 /* 0x0000005f */ # 33: 5cf9 + s32i a8, a5, 4 /* a8 -> [[arg1+0x4]+0x4] */ # 35: 8915 + s16i a10, a3, 22 /* a10 -> [arg1+0x16] */ # 37: a2530b + and a9, a7, a9 # 3a: 909710 + movi a10, 32 /* 0x00000020 */ # 3d: 2c0a + or a6, a4, a10 # 3f: a06420 + s8i a7, a8, 0 # 42: 724800 + or a9, a9, a10 # 45: a09920 + s8i a9, a8, 1 # 48: 924801 + l32i a5, a2, 144 /* [arg0+0x90] */ # 4b: 522224 + s8i a6, a8, 3 # 4e: 624803 + s8i a5, a8, 2 # 51: 524802 + l32i a4, a2, 144 /* [arg0+0x90] */ # 54: 422224 + l32i a3, a2, 148 /* [arg0+0x94] */ # 57: 322225 + ssai 16 # 5a: 104040 + src a3, a3, a4 # 5d: 403381 + s8i a3, a8, 4 # 60: 324804 + l32i a11, a2, 144 /* [arg0+0x90] */ # 63: b22224 + l32i a10, a2, 148 /* [arg0+0x94] */ # 66: a22225 + ssai 24 # 69: 104840 + src a10, a10, a11 # 6c: b0aa81 + s8i a10, a8, 5 # 6f: a24805 + l32i a9, a2, 148 /* [arg0+0x94] */ # 72: 922225 + s8i a9, a8, 6 # 75: 924806 + l32i a7, a2, 148 /* [arg0+0x94] */ # 78: 722225 + srli a7, a7, 8 # 7b: 707841 + s8i a7, a8, 7 # 7e: 724807 + l32i a6, a2, 144 /* [arg0+0x90] */ # 81: 622224 + l32i a3, a2, 148 /* [arg0+0x94] */ # 84: 322225 + addi a4, a6, 1 /* [arg0+0x90]+0x1 */ # 87: 1b46 + bgeu a4, a6, .Lbr002 # 89: 67b401 + addi a3, a3, 1 /* [arg0+0x94]+0x1 */ # 8c: 1b33 +.Lbr002: s32i a3, a2, 148 /* a3 -> [arg0+0x94] */ # 8e: 326225 + s32i a4, a2, 144 /* [arg0+0x90]+0x1 -> [arg0+0x90] */ # 91: 426224 + movi a2, 1 /* 0x00000001 */ # 94: 0c12 + ret /* 0x00000001 */ # 96: 0df0 + + .literal_position # 98: 00000000 + # 9c: 00000000 + +# Function @ .irom0.text+0xa0 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 +.Lfunc002: addi sp, sp, -16 /* (local0) */ # a0: 12c1f0 + l32i a8, a3, 4 /* [arg1+0x4] */ # a3: 8813 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # a5: 0911 + l32i a0, a8, 4 /* [[arg1+0x4]+0x4] */ # a7: 0818 + movi a6, g_ic # a9: 61fbff + add a7, a4, a0 # ac: 0a74 + l8ui a5, a7, 3 # ae: 520703 + l32i a6, a6, 28 /* [g_ic+0x1c] */ # b1: 6876 + extui a5, a5, 5, 1 # b3: 505504 + beqz a5, .Lbr007 # b6: 169509 + extui a6, a6, 26, 1 # b9: 606a05 + bnez a6, .Lbr007 # bc: 563609 + l8ui a6, a7, 6 # bf: 620706 + l8ui a5, a7, 7 # c2: 520707 + l8ui a9, a0, 0 /* [[[arg1+0x4]+0x4]] */ # c5: 920000 + movi a10, 140 /* 0x0000008c */ # c8: a2a08c + and a9, a9, a10 # cb: a09910 + slli a5, a5, 8 # ce: 805511 + or a5, a5, a6 # d1: 605520 + movi a10, 136 /* 0x00000088 */ # d4: a2a088 + l8ui a6, a7, 0 # d7: 620700 + bne a9, a10, .Lbr003 # da: a79911 + l8ui a11, a0, 1 /* [[[arg1+0x4]+0x4]+0x1] */ # dd: b20001 + extui a11, a11, 0, 2 # e0: b0b014 + addi a11, a11, -3 # e3: b2cbfd + bnez a11, .Lbr009 # e6: 564b07 + l8ui a0, a0, 30 /* [[[arg1+0x4]+0x4]+0x1e] */ # e9: 02001e + j .Lbr010 # ec: 461c00 +.Lbr003: movi a0, 16 /* 0x00000010 */ # ef: 1c00 +.Lbr004: slli a6, a6, 8 # f1: 806611 + l8ui a9, a7, 2 # f4: 920702 + l8ui a10, a7, 5 # f7: a20705 + l8ui a11, a7, 4 # fa: b20704 + slli a10, a10, 24 # fd: 80aa01 + slli a11, a11, 16 # 100: 00bb11 + extui a7, a5, 0, 16 # 103: 5070f4 + or a6, a6, a9 # 106: 906620 + or a11, a11, a6 # 109: 60bb20 + addx8 a9, a0, a2 # 10c: 2090b0 + or a10, a10, a11 # 10f: b0aa20 + movi a11, .Ldata002 # 112: b1e2ff + s32i a9, sp, 0 /* a9 -> [(local0)] */ # 115: 9901 + s32i a7, a11, 4 /* a7 -> [.Ldata003] */ # 117: 791b + s32i a10, a11, 0 /* a10 -> [.Ldata002] */ # 119: a90b + l32i a11, a9, 8 # 11b: b829 + l32i a9, a9, 12 # 11d: 9839 + movi a0, 0 /* 0x00000000 */ # 11f: 0c00 + bltu a9, a7, .Lbr006 # 121: 773907 + bne a9, a7, .Lbr005 # 124: 779902 + bltu a11, a10, .Lbr006 # 127: a73b01 +.Lbr005: movi a0, 1 /* 0x00000001 */ # 12a: 0c10 +.Lbr006: bnez a0, .Lbr007 # 12c: ec30 + l32i a0, sp, 0 /* [(local0)] */ # 12e: 0801 + l16ui a11, a3, 22 /* [arg1+0x16] */ # 130: b2130b + s32i a10, a0, 8 /* a10 -> [[(local0)]+0x8] */ # 133: a920 + s32i a7, a0, 12 /* a7 -> [[(local0)]+0xc] */ # 135: 7930 + l32i a0, a2, 152 /* [arg0+0x98] */ # 137: 022226 + l32i a6, a8, 4 /* [[arg1+0x4]+0x4] */ # 13a: 6818 + l32i a5, a0, 4 /* [[arg0+0x98]+0x4] */ # 13c: 5810 + l32i a0, a0, 8 /* [[arg0+0x98]+0x8] */ # 13e: 0820 + add a9, a4, a5 # 140: 5a94 + add a6, a6, a9 # 142: 9a66 + add a0, a0, a5 # 144: 5a00 + sub a11, a11, a0 # 146: 00bbc0 + s32i a6, a8, 4 /* a6 -> [[arg1+0x4]+0x4] */ # 149: 6918 + movi a0, 1 /* 0x00000001 */ # 14b: 0c10 + s16i a11, a3, 22 /* a11 -> [arg1+0x16] */ # 14d: b2530b + j .Lbr008 # 150: 460000 +.Lbr007: movi a0, 0 /* 0x00000000 */ # 153: 0c00 +.Lbr008: mov a2, a0 # 155: 2d00 + l32i a0, sp, 4 /* [(local1)] */ # 157: 0811 + addi sp, sp, 16 /* (top of frame) */ # 159: 12c110 + ret # 15c: 0df0 +.Lbr009: l8ui a0, a0, 24 /* [[[arg1+0x4]+0x4]+0x18] */ # 15e: 020018 +.Lbr010: extui a0, a0, 0, 4 # 161: 000034 + j .Lbr004 # 164: 46e2ff diff --git a/binary_sdk/libnet80211_stage1/ieee80211_crypto_wep.S b/binary_sdk/libnet80211_stage1/ieee80211_crypto_wep.S new file mode 100644 index 0000000..08981c0 --- /dev/null +++ b/binary_sdk/libnet80211_stage1/ieee80211_crypto_wep.S @@ -0,0 +1,73 @@ + + .section .data, "aw", @progbits + + .global wep + .type wep, @object +wep: .word 0x00000001 # 0: 01000000 +.Ldata001: .word 0x00000004 # 4: 04000000 + +# NOTE: The following is apparently unreferenced code/data + .word 0x00000004 # 8: 04000000 + .word 0x00000000 # c: 00000000 + +.Lrel001: .word .Lfunc001 # 10: 04000000 +.Lrel002: .word .Lfunc002 # 14: 60000000 + + .section .irom0.text, "ax", @progbits + + .literal_position # 0: 00000000 + +# Function @ .irom0.text+0x4 + .balign 4 +.Lfunc001: bnez a3, .Lbr001 # 4: cc33 + movi a3, 0 /* 0x00000000 */ # 6: 0c03 + j .Lbr003 # 8: 461300 +.Lbr001: l32i a5, a2, 144 /* [arg0+0x90] */ # b: 522224 + l16ui a6, a3, 22 /* [arg1+0x16] */ # e: 62130b + movi a7, wep # 11: 71fbff + l32i a8, a3, 4 /* [arg1+0x4] */ # 14: 8813 + l32i a10, a7, 4 /* [.Ldata001] */ # 16: a817 + l32i a7, a7, 4 /* [.Ldata001] */ # 18: 7817 + l32i a9, a8, 4 /* [[arg1+0x4]+0x4] */ # 1a: 9818 + add a6, a6, a7 # 1c: 7a66 + sub a9, a9, a10 # 1e: a099c0 + l32i a7, a2, 148 /* [arg0+0x94] */ # 21: 722225 + s32i a9, a8, 4 /* a9 -> [[arg1+0x4]+0x4] */ # 24: 9918 + s16i a6, a3, 22 /* a6 -> [arg1+0x16] */ # 26: 62530b + addi a8, a5, 1 /* [arg0+0x90]+0x1 */ # 29: 1b85 + bgeu a8, a5, .Lbr002 # 2b: 57b801 + addi a7, a7, 1 /* [arg0+0x94]+0x1 */ # 2e: 1b77 +.Lbr002: movi a3, 1 /* 0x00000001 */ # 30: 0c13 + s32i a7, a2, 148 /* a7 -> [arg0+0x94] */ # 32: 726225 + s32i a8, a2, 144 /* [arg0+0x90]+0x1 -> [arg0+0x90] */ # 35: 826224 + ssai 16 # 38: 104040 + src a6, a7, a8 # 3b: 806781 + s8i a6, a9, 2 # 3e: 624902 + l32i a5, a2, 144 /* [arg0+0x90] */ # 41: 522224 + l32i a11, a2, 148 /* [arg0+0x94] */ # 44: b22225 + ssai 8 # 47: 004840 + src a11, a11, a5 # 4a: 50bb81 + s8i a11, a9, 1 # 4d: b24901 + l32i a10, a2, 144 /* [arg0+0x90] */ # 50: a22224 + s8i a10, a9, 0 # 53: a24900 + s8i a4, a9, 3 # 56: 424903 +.Lbr003: mov a2, a3 # 59: 2d03 + ret # 5b: 0df0 + + .balign 4 +# Function @ .irom0.text+0x60 + .balign 4 +.Lfunc002: l32i a5, a2, 152 /* [arg0+0x98] */ # 60: 522226 + l32i a8, a3, 4 /* [arg1+0x4] */ # 63: 8813 + l16ui a2, a3, 22 /* [arg1+0x16] */ # 65: 22130b + l32i a7, a8, 4 /* [[arg1+0x4]+0x4] */ # 68: 7818 + l32i a6, a5, 4 /* [[arg0+0x98]+0x4] */ # 6a: 6815 + l32i a5, a5, 8 /* [[arg0+0x98]+0x8] */ # 6c: 5825 + add a9, a4, a6 # 6e: 6a94 + add a7, a7, a9 # 70: 9a77 + add a5, a5, a6 # 72: 6a55 + sub a2, a2, a5 # 74: 5022c0 + s32i a7, a8, 4 /* a7 -> [[arg1+0x4]+0x4] */ # 77: 7918 + s16i a2, a3, 22 /* a2 -> [arg1+0x16] */ # 79: 22530b + movi a2, 1 /* 0x00000001 */ # 7c: 0c12 + ret /* 0x00000001 */ # 7e: 0df0 diff --git a/binary_sdk/libnet80211_stage1/ieee80211_ets.S b/binary_sdk/libnet80211_stage1/ieee80211_ets.S new file mode 100644 index 0000000..6401aa1 --- /dev/null +++ b/binary_sdk/libnet80211_stage1/ieee80211_ets.S @@ -0,0 +1,44 @@ + + .section .irom0.text, "ax", @progbits + + .literal_position # 0: 00000000 + +# Function @ .irom0.text+0x4 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 + .global ieee80211_getmgtframe + .type ieee80211_getmgtframe, @function +ieee80211_getmgtframe: + movi a5, -4 /* 0xfffffffc */ # 4: 7cc5 + addi sp, sp, -16 /* (local0) */ # 6: 12c1f0 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 9: 0911 + s32i a12, sp, 8 /* a12 -> [(local2)] */ # b: c921 + movi a0, 256 /* 0x00000100 */ # d: 02a100 + mov a12, a3 /* arg1 */ # 10: cd03 + add a3, a3, a4 # 12: 4a33 + addi a3, a3, 3 # 14: 3b33 + and a4, a3, a5 # 16: 504310 + bgeu a0, a4, .Lbr001 # 19: 47b004 + movi a2, 0 /* 0x00000000 */ # 1c: 0c02 + j .Lbr003 # 1e: 860700 +.Lbr001: movi a3, 4 /* 0x00000004 */ # 21: 0c43 + s32i a2, sp, 0 /* arg0 -> [(local0)] */ # 23: 2901 + movi a5, 65 /* 0x00000041 */ # 25: 4c15 + bgeu a4, a5, .Lbr002 # 27: 57b401 + movi a3, 5 /* 0x00000005 */ # 2a: 0c53 +.Lbr002: movi a2, 0 /* 0x00000000 */ # 2c: 0c02 + call0 esf_buf_alloc # 2e: 01f4ffc0 + # 32: 0000 + beqz a2, .Lbr003 # 34: 8c82 + l32i a6, a2, 4 # 36: 6812 + l32i a6, a6, 4 # 38: 6816 + l32i a7, sp, 0 /* [(local0)] */ # 3a: 7801 + add a6, a12, a6 # 3c: 6a6c + s32i a6, a7, 0 /* a6 -> [[(local0)]] */ # 3e: 6907 +.Lbr003: l32i a12, sp, 8 /* [(local2)] */ # 40: c821 + l32i a0, sp, 4 /* [(local1)] */ # 42: 0811 + addi sp, sp, 16 /* (top of frame) */ # 44: 12c110 + ret # 47: 0df0 diff --git a/binary_sdk/libnet80211_stage1/ieee80211_hostap.S b/binary_sdk/libnet80211_stage1/ieee80211_hostap.S new file mode 100644 index 0000000..571bee2 --- /dev/null +++ b/binary_sdk/libnet80211_stage1/ieee80211_hostap.S @@ -0,0 +1,1910 @@ + + .section .text, "ax", @progbits + +# Function @ .text+0x0 + .balign 4 + .literal_position +.Lfunc001: movi a4, 136 /* 0x00000088 */ # 0: 42a088 + movi a6, 24 /* 0x00000018 */ # 3: 1c86 + movi a5, 30 /* 0x0000001e */ # 5: 1ce5 + l8ui a7, a2, 1 /* [arg0+0x1] */ # 7: 720201 + l8ui a3, a2, 0 /* [arg0] */ # a: 320200 + movi a8, 140 /* 0x0000008c */ # d: 82a08c + and a3, a3, a8 # 10: 803310 + extui a7, a7, 0, 2 # 13: 707014 + addi a7, a7, -3 # 16: 72c7fd + movnez a5, a6, a7 # 19: 705693 + bne a3, a4, .Lbr001 # 1c: 479301 + addi a5, a5, 2 # 1f: 2b55 +.Lbr001: mov a2, a5 # 21: 2d05 + ret # 23: 0df0 + + .section .bss, "aw", @nobits + +.Ldata001: .byte 0x00 + .byte 0x00, 0x00, 0x00 +.Ldata002: .space 28 + .global TmpSTAAPCloseAP + .type TmpSTAAPCloseAP, @object +TmpSTAAPCloseAP: + .byte 0x00 + .global PendFreeBcnEb + .type PendFreeBcnEb, @object +PendFreeBcnEb: + .byte 0x00 + .byte 0x00, 0x00 +.Ldata003: .word 0x00000000 # 24: 00000000 + + .section .irom0.text, "ax", @progbits + + .literal_position # 0: 00000000 + # 4: 00000000 + # 8: 00000000 + # c: 00000000 + # 10: 00000000 + # 14: 00000000 + # 18: 000af23f + # 1c: 00000000 + # 20: 04000000 + # 24: 00000000 + # 28: 00000000 + # 2c: 00000000 + # 30: 00000000 + # 34: 00000000 + # 38: 00000000 + # 3c: 00000000 + # 40: 00000000 + # 44: 00000000 + # 48: 00000000 + +# Function @ .irom0.text+0x4c +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word @ -0x10 +# (local5): word @ -0xc +# (local6): word[2] @ -0x8 + .balign 4 +.Lfunc002: addi sp, sp, -32 /* (local0) */ # 4c: 12c1e0 + s32i a0, sp, 8 /* a0 -> [(local2)] */ # 4f: 0921 + s32i a14, sp, 20 /* a14 -> [(local5)] */ # 51: e951 + s32i a15, sp, 24 /* a15 -> [(local6)] */ # 53: f961 + s32i a13, sp, 16 /* a13 -> [(local4)] */ # 55: d941 + movi a15, g_ic # 57: f1eaff + s32i a12, sp, 12 /* a12 -> [(local3)] */ # 5a: c931 + l32i a13, a15, 20 /* [g_ic+0x14] */ # 5c: d85f + mov a12, a2 /* arg0 */ # 5e: cd02 + l32i a13, a13, 144 /* [[g_ic+0x14]+0x90] */ # 60: d22d24 + s32i a13, sp, 0 /* [[g_ic+0x14]+0x90] -> [(local0)] */ # 63: d901 + l16ui a13, a13, 156 /* [[[g_ic+0x14]+0x90]+0x9c] */ # 65: d21d4e + l32i a14, a2, 16 /* [arg0+0x10] */ # 68: e842 + addi a13, a13, -1 /* [[[g_ic+0x14]+0x90]+0x9c]-0x1 */ # 6a: 0bdd + call0 wifi_get_phy_mode # 6c: 01eeffc0 + # 70: 0000 + movi a0, g_ic+0x180 # 72: 01e4ff + movi a6, 23 /* 0x00000017 */ # 75: 1c76 + movi a5, 27 /* 0x0000001b */ # 77: 1cb5 + addi a7, a2, -1 # 79: 0b72 + l32i a3, sp, 0 /* [(local0)] */ # 7b: 3801 + l32i a4, a15, 0x288 /* [g_ic+0x288] */ # 7d: 422fa2 + slli a8, a13, 4 # 80: c08d11 + s16i a8, a14, 22 /* a8 -> [[arg0+0x10]+0x16] */ # 83: 825e0b + l16ui a2, a3, 156 /* [[(local0)]+0x9c] */ # 86: 22134e + moveqz a5, a6, a7 # 89: 705683 + add a13, a14, a5 # 8c: 5ade + s32i a13, sp, 4 /* a13 -> [(local1)] */ # 8e: d911 + addi a2, a2, 1 /* [[(local0)]+0x9c]+0x1 */ # 90: 1b22 + add a13, a4, a13 # 92: dad4 + s16i a2, a3, 156 /* [[(local0)]+0x9c]+0x1 -> [[(local0)]+0x9c] */ # 94: 22534e + l8ui a0, a0, 97 /* [g_ic+0x1e1] */ # 97: 020061 + addi a13, a13, 24 # 9a: d2cd18 + bnei a0, 1, .Lbr002 # 9d: 661039 + movi a4, 1 /* 0x00000001 */ # a0: 0c14 + movi a2, g_ic+0x180 # a2: 21d9ff + movi a3, 0 /* 0x00000000 */ # a5: 0c03 + l8ui a5, a2, 98 /* [g_ic+0x1e2] */ # a7: 520262 + l8ui a2, a2, 99 /* [g_ic+0x1e3] */ # aa: 220263 + ssl a5 # ad: 001540 + extui a6, a2, 0, 1 # b0: 206004 + movi a5, 0 /* 0x00000000 */ # b3: 0c05 + sll a2, a2 # b5: 0022a1 + moveqz a3, a4, a6 # b8: 603483 + sll a3, a3 # bb: 0033a1 + sll a4, a4 # be: 0044a1 + call0 gpio_output_set # c1: 01d9ffc0 + # c5: 0000 + movi a4, g_ic+0x180 # c7: 41d1ff + movi a5, 1 /* 0x00000001 */ # ca: 0c15 + l8ui a6, a4, 99 /* [g_ic+0x1e3] */ # cc: 620463 + movi a3, 0 /* 0x00000000 */ # cf: 0c03 + extui a6, a6, 0, 1 # d1: 606004 + moveqz a3, a5, a6 # d4: 603583 + s8i a3, a4, 99 /* a3 -> [g_ic+0x1e3] */ # d7: 324463 +.Lbr002: addi a2, a13, 5 # da: 5b2d + movi a3, g_ic+0x1d2 # dc: 31cdff + movi a4, 1 /* 0x00000001 */ # df: 0c14 + call0 memcpy # e1: 01d2ffc0 + # e5: 0000 + l8ui a0, a13, 2 # e7: 020d02 + bnez a0, .Lbr003 # ea: cc10 + l8ui a0, a13, 3 # ec: 020d03 +.Lbr003: addi a7, a0, -1 # ef: 0b70 + s8i a7, a13, 2 # f1: 724d02 + l32i a2, a15, 0x14c /* [g_ic+0x14c] */ # f4: 222f53 + call0 ieee80211_chan2ieee # f7: 01ceffc0 + # fb: 0000 + l32i a9, sp, 4 /* [(local1)] */ # fd: 9811 + l32i a8, a15, 0x288 /* [g_ic+0x288] */ # ff: 822fa2 + add a8, a8, a9 # 102: 9a88 + s8i a2, a8, 23 # 104: 224817 + l32i a2, a15, 0x14c /* [g_ic+0x14c] */ # 107: 222f53 + call0 ieee80211_chan2ieee # 10a: 01caffc0 + # 10e: 0000 + movi a13, g_ic+0x300 # 110: d1c1ff + s8i a2, a13, 13 /* a2 -> [g_ic+0x30d] */ # 113: 224d0d + movi a11, 0x3ff20a00 # 116: b1c0ff + memw # 119: c02000 + movi a10, 0 /* 0x00000000 */ # 11c: 0c0a + l32i a13, a12, 32 /* [arg0+0x20] */ # 11e: d88c + l32i a11, a11, 0x200 /* [0x3ff20c00] */ # 120: b22b80 + s32i a11, a13, 16 /* [0x3ff20c00] -> [[arg0+0x20]+0x10] */ # 123: b94d + s32i a11, a14, 24 /* [0x3ff20c00] -> [[arg0+0x10]+0x18] */ # 125: b96e + s32i a10, a14, 28 /* 0x00000000 -> [[arg0+0x10]+0x1c] */ # 127: a97e + call0 chm_check_same_channel # 129: 01c3ffc0 + # 12d: 0000 + beqz a2, .Lbr004 # 12f: 9c72 + movi a15, .Ldata001 # 131: f1baff + mov a2, a12 /* arg0 */ # 134: 2d0c + l8ui a14, a15, 0 /* [.Ldata001] */ # 136: e20f00 + movi a0, 1 /* 0x00000001 */ # 139: 0c10 + or a14, a14, a0 # 13b: 00ee20 + s8i a14, a15, 0 /* a14 -> [.Ldata001] */ # 13e: e24f00 + call0 ppTxPkt # 141: 01beffc0 + # 145: 0000 + j .Lbr005 # 147: 060700 +.Lbr004: movi a12, .Ldata002 # 14a: c1b5ff + mov a2, a12 /* .Ldata002 */ # 14d: 2d0c + call0 ets_timer_disarm # 14f: 01bcffc0 + # 153: 0000 + call0 wDev_Get_Next_TBTT # 155: 01bbffc0 + # 159: 0000 + mov a3, a2 # 15b: 3d02 + movi a4, 0 /* 0x00000000 */ # 15d: 0c04 + mov a2, a12 /* .Ldata002 */ # 15f: 2d0c + call0 ets_timer_arm # 161: 01b9ffc0 + # 165: 0000 +.Lbr005: l32i a12, sp, 12 /* [(local3)] */ # 167: c831 + l32i a13, sp, 16 /* [(local4)] */ # 169: d841 + l32i a14, sp, 20 /* [(local5)] */ # 16b: e851 + l32i a15, sp, 24 /* [(local6)] */ # 16d: f861 + l32i a0, sp, 8 /* [(local2)] */ # 16f: 0821 + addi sp, sp, 32 /* (top of frame) */ # 171: 12c120 + ret # 174: 0df0 + + .literal_position # 178: 00000000 + # 17c: 04000000 + # 180: 00000000 + # 184: 00000000 + # 188: 00000000 + # 18c: 00000000 + +# Function @ .irom0.text+0x190 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 +.Lfunc003: movi a4, 254 /* 0x000000fe */ # 190: 42a0fe + addi sp, sp, -16 /* (local0) */ # 193: 12c1f0 + movi a2, .Ldata001 # 196: 21f8ff + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 199: 0901 + l8ui a0, a2, 0 /* [.Ldata001] */ # 19b: 020200 + l8ui a3, a2, 32 /* [TmpSTAAPCloseAP] */ # 19e: 320220 + and a0, a0, a4 # 1a1: 400010 + bnez a3, .Lbr006 # 1a4: dcf3 + s8i a0, a2, 0 /* a0 -> [.Ldata001] */ # 1a6: 024200 + addi a2, a2, 4 /* .Ldata002 */ # 1a9: 4b22 + call0 ets_timer_disarm # 1ab: 01f5ffc0 + # 1af: 0000 + call0 wDev_Get_Next_TBTT # 1b1: 01f4ffc0 + # 1b5: 0000 + mov a3, a2 # 1b7: 3d02 + movi a4, 0 /* 0x00000000 */ # 1b9: 0c04 + movi a2, .Ldata002 # 1bb: 21f0ff + call0 ets_timer_arm # 1be: 01f2ffc0 + # 1c2: 0000 + j .Lbr008 # 1c4: 060700 +.Lbr006: movi a5, 1 /* 0x00000001 */ # 1c7: 0c15 + s8i a5, a2, 33 /* 0x01 -> [PendFreeBcnEb] */ # 1c9: 524221 + bbci a0, 1, .Lbr007 # 1cc: 176011 + movi a6, 253 /* 0x000000fd */ # 1cf: 62a0fd + and a6, a0, a6 # 1d2: 606010 + s8i a6, a2, 0 /* a6 -> [.Ldata001] */ # 1d5: 624200 + call0 wifi_softap_start # 1d8: 01edffc0 + # 1dc: 0000 + j .Lbr008 # 1de: 860000 +.Lbr007: s8i a0, a2, 0 /* a0 -> [.Ldata001] */ # 1e1: 024200 +.Lbr008: l32i a0, sp, 0 /* [(local0)] */ # 1e4: 0801 + addi sp, sp, 16 /* (top of frame) */ # 1e6: 12c110 + ret # 1e9: 0df0 + + .literal_position # 1ec: 00000000 + # 1f0: 00000000 + # 1f4: 00000000 + # 1f8: 00000000 + # 1fc: 00000000 + # 200: 00000000 + # 204: 00000000 + # 208: 00000000 + # 20c: 00000000 + # 210: 00000000 + # 214: 00000000 + # 218: 00000000 + # 21c: 00000000 + # 220: 00000000 + +# Function @ .irom0.text+0x224 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word[4] @ -0x10 + .balign 4 +.Lfunc004: movi a2, 28 /* 0x0000001c */ # 224: 1cc2 + addi sp, sp, -32 /* (local0) */ # 226: 12c1e0 + s32i a13, sp, 12 /* a13 -> [(local3)] */ # 229: d931 + s32i a14, sp, 16 /* a14 -> [(local4)] */ # 22b: e941 + s32i a12, sp, 8 /* a12 -> [(local2)] */ # 22d: c921 + movi a12, g_ic # 22f: c1efff + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 232: 0911 + l32i a12, a12, 20 /* [g_ic+0x14] */ # 234: c85c + call0 zalloc # 236: 01f1ffc0 + # 23a: 0000 + s32i a2, a12, 180 /* a2 -> [[g_ic+0x14]+0xb4] */ # 23c: 226c2d + movi a2, 204 /* 0x000000cc */ # 23f: 22a0cc + call0 zalloc # 242: 01efffc0 + # 246: 0000 + l32i a13, a12, 180 /* [[g_ic+0x14]+0xb4] */ # 248: d22c2d + s32i a2, a13, 4 /* a2 -> [[[g_ic+0x14]+0xb4]+0x4] */ # 24b: 291d + movi a2, 76 /* 0x0000004c */ # 24d: 4cc2 + call0 zalloc # 24f: 01edffc0 + # 253: 0000 + movi a14, g_ic+0x28e # 255: e1e6ff + l8ui a0, a14, 128 /* [g_ic+0x30e] */ # 258: 020e80 + mov a13, a2 # 25b: dd02 + bnei a0, 2, .Lbr009 # 25d: 662006 + movi a3, 1 /* 0x00000001 */ # 260: 0c13 + s32i a3, a2, 0 # 262: 3902 + l8ui a0, a14, 128 /* [g_ic+0x30e] */ # 264: 020e80 +.Lbr009: movi a2, 2 /* 0x00000002 */ # 267: 0c22 + bnei a0, 3, .Lbr010 # 269: 663004 + s32i a2, a13, 0 # 26c: 290d + l8ui a0, a14, 128 /* [g_ic+0x30e] */ # 26e: 020e80 +.Lbr010: bnei a0, 4, .Lbr011 # 271: 664003 + movi a5, 3 /* 0x00000003 */ # 274: 0c35 + s32i a5, a13, 0 # 276: 590d +.Lbr011: movi a3, g_ic+0x28c # 278: 31dfff + addi a5, a14, -6 /* g_ic+0x288 */ # 27b: 52cefa + s32i a2, a13, 40 # 27e: 29ad + s32i a2, a13, 4 # 280: 291d + s32i a2, a13, 12 # 282: 293d + movi a6, 10 /* 0x0000000a */ # 284: 0ca6 + s32i a6, a13, 8 # 286: 692d + l32i a2, a12, 180 /* [[g_ic+0x14]+0xb4] */ # 288: 222c2d + s32i a6, a13, 32 # 28b: 698d + l32i a2, a2, 4 /* [[[g_ic+0x14]+0xb4]+0x4] */ # 28d: 2812 + l16ui a4, a5, 2 /* [g_ic+0x28a] */ # 28f: 421501 + addi a2, a2, 16 /* [[[g_ic+0x14]+0xb4]+0x4]+0x10 */ # 292: 22c210 + l16ui a5, a5, 0 /* [g_ic+0x288] */ # 295: 521500 + slli a4, a4, 16 # 298: 004411 + or a4, a4, a5 # 29b: 504420 + call0 memcpy # 29e: 01daffc0 + # 2a2: 0000 + movi a2, 64 /* 0x00000040 */ # 2a4: 4c02 + addi a7, a14, -6 /* g_ic+0x288 */ # 2a6: 72cefa + l32i a8, a12, 180 /* [[g_ic+0x14]+0xb4] */ # 2a9: 822c2d + l16ui a9, a7, 0 /* [g_ic+0x288] */ # 2ac: 921700 + l16ui a7, a7, 2 /* [g_ic+0x28a] */ # 2af: 721701 + l32i a8, a8, 4 /* [[[g_ic+0x14]+0xb4]+0x4] */ # 2b2: 8818 + slli a7, a7, 16 # 2b4: 007711 + or a7, a7, a9 # 2b7: 907720 + s32i a7, a8, 48 /* a7 -> [[[[g_ic+0x14]+0xb4]+0x4]+0x30] */ # 2ba: 79c8 + call0 zalloc # 2bc: 01d4ffc0 + # 2c0: 0000 + l32i a8, a12, 180 /* [[g_ic+0x14]+0xb4] */ # 2c2: 822c2d + s32i a2, sp, 0 /* a2 -> [(local0)] */ # 2c5: 2901 + l32i a8, a8, 4 /* [[[g_ic+0x14]+0xb4]+0x4] */ # 2c7: 8818 + movi a14, g_ic+0x2ac # 2c9: e1cbff + s32i a2, a8, 60 /* a2 -> [[[[g_ic+0x14]+0xb4]+0x4]+0x3c] */ # 2cc: 29f8 + mov a2, a14 /* g_ic+0x2ac */ # 2ce: 2d0e + call0 strlen # 2d0: 01d0ffc0 + # 2d4: 0000 + mov a4, a2 # 2d6: 4d02 + mov a3, a14 /* g_ic+0x2ac */ # 2d8: 3d0e + l32i a2, sp, 0 /* [(local0)] */ # 2da: 2801 + call0 memcpy # 2dc: 01ceffc0 + # 2e0: 0000 + movi a0, 16 /* 0x00000010 */ # 2e2: 1c00 + movi a3, 3 /* 0x00000003 */ # 2e4: 0c33 + l32i a2, a12, 180 /* [[g_ic+0x14]+0xb4] */ # 2e6: 222c2d + l32i a10, a12, 144 /* [[g_ic+0x14]+0x90] */ # 2e9: a22c24 + l32i a2, a2, 4 /* [[[g_ic+0x14]+0xb4]+0x4] */ # 2ec: 2812 + movi a4, 300 /* 0x0000012c */ # 2ee: 42a12c + s32i a4, a2, 180 /* 0x0000012c -> [[[[g_ic+0x14]+0xb4]+0x4]+0xb4] */ # 2f1: 42622d + l32i a14, a12, 72 /* [[g_ic+0x14]+0x48] */ # 2f4: e22c12 + s8i a3, a12, 76 /* 0x03 -> [[g_ic+0x14]+0x4c] */ # 2f7: 324c4c + or a14, a14, a0 # 2fa: 00ee20 + s32i a14, a12, 72 /* a14 -> [[g_ic+0x14]+0x48] */ # 2fd: e26c12 + l32i a9, a10, 8 /* [[[g_ic+0x14]+0x90]+0x8] */ # 300: 982a + movi a11, 1 /* 0x00000001 */ # 302: 0c1b + or a9, a9, a11 # 304: b09920 + s32i a9, a10, 8 /* a9 -> [[[g_ic+0x14]+0x90]+0x8] */ # 307: 992a + call0 hostapd_setup_wpa_psk # 309: 01c3ffc0 + # 30d: 0000 + mov a3, a13 # 30f: 3d0d + l32i a2, a12, 0 /* [[g_ic+0x14]] */ # 311: 280c + movi a4, 0 /* 0x00000000 */ # 313: 0c04 + addi a2, a2, 41 /* [[g_ic+0x14]]+0x29 */ # 315: 22c229 + call0 wpa_init # 318: 01c1ffc0 + # 31c: 0000 + l32i a3, a12, 180 /* [[g_ic+0x14]+0xb4] */ # 31e: 322c2d + s32i a2, a3, 24 /* a2 -> [[[g_ic+0x14]+0xb4]+0x18] */ # 321: 2963 + mov a2, a13 # 323: 2d0d + call0 free # 325: 01beffc0 + # 329: 0000 + l32i a12, sp, 8 /* [(local2)] */ # 32b: c821 + l32i a13, sp, 12 /* [(local3)] */ # 32d: d831 + l32i a14, sp, 16 /* [(local4)] */ # 32f: e841 + l32i a0, sp, 4 /* [(local1)] */ # 331: 0811 + addi sp, sp, 32 /* (top of frame) */ # 333: 12c120 + ret # 336: 0df0 + + .literal_position # 338: 00000000 + # 33c: 00000000 + # 340: 00000000 + # 344: 00000000 + # 348: 00000000 + # 34c: 00000000 + # 350: 00000000 + # 354: 00000000 + +# Function @ .irom0.text+0x358 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 +.Lfunc005: addi sp, sp, -16 /* (local0) */ # 358: 12c1f0 + movi a5, -17 /* 0xffffffef */ # 35b: 6cf5 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 35d: c911 + movi a12, g_ic # 35f: c1f6ff + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 362: 0901 + l32i a12, a12, 20 /* [g_ic+0x14] */ # 364: c85c + movi a0, 0 /* 0x00000000 */ # 366: 0c00 + l32i a2, a12, 180 /* [[g_ic+0x14]+0xb4] */ # 368: 222c2d + s8i a0, a12, 76 /* 0x00 -> [[g_ic+0x14]+0x4c] */ # 36b: 024c4c + l32i a4, a12, 72 /* [[g_ic+0x14]+0x48] */ # 36e: 422c12 + l32i a3, a12, 144 /* [[g_ic+0x14]+0x90] */ # 371: 322c24 + and a4, a4, a5 # 374: 504410 + s32i a4, a12, 72 /* a4 -> [[g_ic+0x14]+0x48] */ # 377: 426c12 + s32i a0, a3, 8 /* 0x00000000 -> [[[g_ic+0x14]+0x90]+0x8] */ # 37a: 0923 + beqz a2, .Lbr018 # 37c: 16f206 + l32i a4, a2, 24 /* [[[g_ic+0x14]+0xb4]+0x18] */ # 37f: 4862 + l32i a5, a4, 80 /* [[[[g_ic+0x14]+0xb4]+0x18]+0x50] */ # 381: 522414 + beqz a5, .Lbr012 # 384: 8cb5 + mov a2, a5 /* [[[[g_ic+0x14]+0xb4]+0x18]+0x50] */ # 386: 2d05 + call0 free # 388: 01edffc0 + # 38c: 0000 + l32i a2, a12, 180 /* [[g_ic+0x14]+0xb4] */ # 38e: 222c2d + l32i a4, a2, 24 /* [[[g_ic+0x14]+0xb4]+0x18] */ # 391: 4862 +.Lbr012: l32i a0, a4, 0 /* [[[[g_ic+0x14]+0xb4]+0x18]] */ # 393: 0804 + beqz a0, .Lbr013 # 395: 8cb0 + mov a2, a0 /* [[[[g_ic+0x14]+0xb4]+0x18]] */ # 397: 2d00 + call0 free # 399: 01e9ffc0 + # 39d: 0000 + l32i a2, a12, 180 /* [[g_ic+0x14]+0xb4] */ # 39f: 222c2d + l32i a4, a2, 24 /* [[[g_ic+0x14]+0xb4]+0x18] */ # 3a2: 4862 +.Lbr013: beqz a4, .Lbr014 # 3a4: 8c94 + mov a2, a4 /* [[[g_ic+0x14]+0xb4]+0x18] */ # 3a6: 2d04 + call0 free # 3a8: 01e7ffc0 + # 3ac: 0000 + l32i a2, a12, 180 /* [[g_ic+0x14]+0xb4] */ # 3ae: 222c2d +.Lbr014: l32i a0, a2, 4 /* [[[g_ic+0x14]+0xb4]+0x4] */ # 3b1: 0812 + l32i a4, a0, 56 /* [[[[g_ic+0x14]+0xb4]+0x4]+0x38] */ # 3b3: 48e0 + beqz a4, .Lbr015 # 3b5: 8cb4 + mov a2, a4 /* [[[[g_ic+0x14]+0xb4]+0x4]+0x38] */ # 3b7: 2d04 + call0 free # 3b9: 01e3ffc0 + # 3bd: 0000 + l32i a2, a12, 180 /* [[g_ic+0x14]+0xb4] */ # 3bf: 222c2d + l32i a0, a2, 4 /* [[[g_ic+0x14]+0xb4]+0x4] */ # 3c2: 0812 +.Lbr015: l32i a4, a0, 60 /* [[[[g_ic+0x14]+0xb4]+0x4]+0x3c] */ # 3c4: 48f0 + beqz a4, .Lbr016 # 3c6: 8cb4 + mov a2, a4 /* [[[[g_ic+0x14]+0xb4]+0x4]+0x3c] */ # 3c8: 2d04 + call0 free # 3ca: 01e0ffc0 + # 3ce: 0000 + l32i a2, a12, 180 /* [[g_ic+0x14]+0xb4] */ # 3d0: 222c2d + l32i a0, a2, 4 /* [[[g_ic+0x14]+0xb4]+0x4] */ # 3d3: 0812 +.Lbr016: beqz a0, .Lbr017 # 3d5: 8c90 + mov a2, a0 /* [[[g_ic+0x14]+0xb4]+0x4] */ # 3d7: 2d00 + call0 free # 3d9: 01ddffc0 + # 3dd: 0000 + l32i a2, a12, 180 /* [[g_ic+0x14]+0xb4] */ # 3df: 222c2d +.Lbr017: beqz a2, .Lbr018 # 3e2: 8c92 + call0 free # 3e4: 01dcffc0 + # 3e8: 0000 + movi a0, 0 /* 0x00000000 */ # 3ea: 0c00 + s32i a0, a12, 180 /* 0x00000000 -> [[g_ic+0x14]+0xb4] */ # 3ec: 026c2d +.Lbr018: l32i a12, sp, 4 /* [(local1)] */ # 3ef: c811 + l32i a0, sp, 0 /* [(local0)] */ # 3f1: 0801 + addi sp, sp, 16 /* (top of frame) */ # 3f3: 12c110 + ret # 3f6: 0df0 + + .literal_position # 3f8: 90010000 + # 3fc: 04000000 + # 400: 4c000000 + # 404: 00000000 + # 408: 00000000 + # 40c: 00000000 + # 410: 00000000 + # 414: 00000000 + # 418: 00000000 + # 41c: 00000000 + # 420: 00000000 + +# Function @ .irom0.text+0x424 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 + .global ieee80211_hostap_attach + .type ieee80211_hostap_attach, @function +ieee80211_hostap_attach: + addi sp, sp, -64 /* (FP)-0x40 */ # 424: 12c1c0 + s32i a13, sp, 56 /* a13 -> [(local2)] */ # 427: d9e1 + s32i a12, sp, 52 /* a12 -> [(local1)] */ # 429: c9d1 + s32i a0, sp, 48 /* a0 -> [(local0)] */ # 42b: 09c1 + mov a12, a2 /* arg0 */ # 42d: cd02 + addmi a0, a2, 768 /* arg0+0x300 */ # 42f: 02d203 + l8ui a0, a0, 14 /* [arg0+0x30e] */ # 432: 02000e + l32i a13, a2, 20 /* [arg0+0x14] */ # 435: d852 + bgei a0, 5, .Lbr019 # 437: e65005 + blti a0, 2, .Lbr019 # 43a: a62002 + call0 .Lfunc004 # 43d: 45deff +.Lbr019: movi a2, 1 /* 0x00000001 */ # 440: 0c12 + movi a4, 2 /* 0x00000002 */ # 442: 0c24 + l32i a3, a13, 0 /* [[arg0+0x14]] */ # 444: 380d + movi a5, 100 /* 0x00000064 */ # 446: 52a064 + addi a3, a3, 41 /* [[arg0+0x14]]+0x29 */ # 449: 32c329 + call0 ic_bss_info_update # 44c: 01eeffc0 + # 450: 0000 + movi a2, .Lfunc003 # 452: 21e9ff + movi a3, 4 /* 0x00000004 */ # 455: 0c43 + movi a4, 5 /* 0x00000005 */ # 457: 0c54 + movi a5, 0 /* 0x00000000 */ # 459: 0c05 + s16i a5, a12, 0x1d0 /* 0x0000 -> [arg0+0x1d0] */ # 45b: 525ce8 + s32i a4, a13, 60 /* 0x00000005 -> [[arg0+0x14]+0x3c] */ # 45e: 49fd + call0 ppRegisterTxCallback # 460: 01eaffc0 + # 464: 0000 + mov a2, a13 /* [arg0+0x14] */ # 466: 2d0d + mov a3, sp /* (FP)-0x40 */ # 468: 3d01 + call0 ieee80211_beacon_alloc # 46a: 01e8ffc0 + # 46e: 0000 + movi a12, .Ldata002 # 470: c1e3ff + s32i a2, a12, 32 /* a2 -> [.Ldata003] */ # 473: 298c + addi a13, a12, -4 /* .Ldata001 */ # 475: d2ccfc + mov a2, a12 /* .Ldata002 */ # 478: 2d0c + call0 ets_timer_disarm # 47a: 01e5ffc0 + # 47e: 0000 + l32i a4, a13, 36 /* [.Ldata003] */ # 480: 489d + mov a2, a12 /* .Ldata002 */ # 482: 2d0c + movi a3, .Lfunc002 # 484: 31dfff + call0 ets_timer_setfn # 487: 01e3ffc0 + # 48b: 0000 + call0 wDev_Reset_TBTT # 48d: 01e2ffc0 + # 491: 0000 + call0 wDev_Get_Next_TBTT # 493: 01e2ffc0 + # 497: 0000 + mov a3, a2 # 499: 3d02 + movi a4, 0 /* 0x00000000 */ # 49b: 0c04 + mov a2, a12 /* .Ldata002 */ # 49d: 2d0c + call0 ets_timer_arm # 49f: 01e0ffc0 + # 4a3: 0000 + l32i a12, sp, 52 /* [(local1)] */ # 4a5: c8d1 + l32i a13, sp, 56 /* [(local2)] */ # 4a7: d8e1 + l32i a0, sp, 48 /* [(local0)] */ # 4a9: 08c1 + addi sp, sp, 64 /* (top of frame) */ # 4ab: 12c140 + ret # 4ae: 0df0 + + .literal_position # 4b0: 00000000 + # 4b4: 00000000 + +# Function @ .irom0.text+0x4b8 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 +.Lfunc006: addi sp, sp, -16 /* (local0) */ # 4b8: 12c1f0 + s32i a12, sp, 8 /* a12 -> [(local2)] */ # 4bb: c921 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 4bd: 0911 + mov a12, a3 /* arg1 */ # 4bf: cd03 + l32i a0, a2, 0 /* [arg0] */ # 4c1: 0802 + s32i a0, sp, 0 /* [arg0] -> [(local0)] */ # 4c3: 0901 + beqz a3, .Lbr020 # 4c5: 9cf3 + movi a2, 3 /* 0x00000003 */ # 4c7: 0c32 + l16ui a3, a3, 22 /* [arg1+0x16] */ # 4c9: 32130b + movi a4, 2 /* 0x00000002 */ # 4cc: 0c24 + call0 pbuf_alloc # 4ce: 01f8ffc0 + # 4d2: 0000 + l32i a4, a12, 4 /* [arg1+0x4] */ # 4d4: 481c + mov a3, a2 # 4d6: 3d02 + l32i a2, a4, 4 /* [[arg1+0x4]+0x4] */ # 4d8: 2814 + s32i a2, a3, 4 # 4da: 2913 + l32i a2, sp, 0 /* [(local0)] */ # 4dc: 2801 + s32i a3, a12, 0 /* a3 -> [arg1] */ # 4de: 390c + s32i a12, a3, 16 # 4e0: c943 + call0 ethernetif_input # 4e2: 01f4ffc0 + # 4e6: 0000 +.Lbr020: l32i a12, sp, 8 /* [(local2)] */ # 4e8: c821 + l32i a0, sp, 4 /* [(local1)] */ # 4ea: 0811 + addi sp, sp, 16 /* (top of frame) */ # 4ec: 12c110 + ret # 4ef: 0df0 + + .literal_position # 4f4: 00060060 + # 4f8: df930400 + # 4fc: 00000000 + # 500: 00000000 + # 504: 00000000 + # 508: 00000000 + # 50c: 00000000 + # 510: 00000000 + # 514: 00000000 + # 518: 00000000 + +# Function @ .irom0.text+0x51c +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 + .global hostap_handle_timer + .type hostap_handle_timer, @function +hostap_handle_timer: + addi sp, sp, -16 /* (local0) */ # 51c: 12c1f0 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 51f: 0911 + s32i a12, sp, 8 /* a12 -> [(local2)] */ # 521: c921 + mov a12, a2 /* arg0 */ # 523: cd02 + movi a2, 0x60000600 # 525: 21f3ff + memw # 528: c02000 + l32i a0, a12, 0x108 /* [arg0+0x108] */ # 52b: 022c42 + l32i a2, a2, 36 /* [0x60000624] */ # 52e: 2892 + bltu a2, a0, .Lbr021 # 530: 07320e + movi a3, 312 /* 0x00000138 */ # 533: 32a138 + sub a2, a2, a0 # 536: 0022c0 + call0 __udivsi3 # 539: 01f3ffc0 + # 53d: 0000 + j .Lbr022 # 53f: 460400 +.Lbr021: movi a3, -1 /* 0xffffffff */ # 542: 7cf3 + xor a3, a0, a3 # 544: 303030 + add a2, a2, a3 # 547: 3a22 + addi a2, a2, 1 # 549: 1b22 + movi a3, 312 /* 0x00000138 */ # 54b: 32a138 + call0 __udivsi3 # 54e: 01efffc0 + # 552: 0000 +.Lbr022: movi a4, 0x000493df # 554: 41e9ff + bgeu a4, a2, .Lbr023 # 557: 27b43b + movi a3, 160 /* 0x000000a0 */ # 55a: 32a0a0 + movi a2, g_ic # 55d: 21e7ff + movi a4, 4 /* 0x00000004 */ # 560: 0c44 + l32i a5, a2, 20 /* [g_ic+0x14] */ # 562: 5852 + l32i a2, a2, 20 /* [g_ic+0x14] */ # 564: 2852 + l32i a6, a5, 136 /* [[g_ic+0x14]+0x88] */ # 566: 622522 + s32i a6, sp, 0 /* [[g_ic+0x14]+0x88] -> [(local0)] */ # 569: 6901 + s32i a12, a5, 136 /* arg0 -> [[g_ic+0x14]+0x88] */ # 56b: c26522 + call0 ieee80211_send_mgmt # 56e: 01e8ffc0 + # 572: 0000 + movi a3, 192 /* 0x000000c0 */ # 574: 32a0c0 + movi a2, g_ic # 577: 21e2ff + movi a4, 2 /* 0x00000002 */ # 57a: 0c24 + l32i a2, a2, 20 /* [g_ic+0x14] */ # 57c: 2852 + call0 ieee80211_send_mgmt # 57e: 01e5ffc0 + # 582: 0000 + movi a2, g_ic # 584: 21e0ff + l32i a2, a2, 20 /* [g_ic+0x14] */ # 587: 2852 + l32i a3, sp, 0 /* [(local0)] */ # 589: 3801 + s32i a3, a2, 136 /* [(local0)] -> [[g_ic+0x14]+0x88] */ # 58b: 326222 + mov a3, a12 /* arg0 */ # 58e: 3d0c + call0 cnx_node_leave # 590: 01e2ffc0 + # 594: 0000 +.Lbr023: l32i a12, sp, 8 /* [(local2)] */ # 596: c821 + l32i a0, sp, 4 /* [(local1)] */ # 598: 0811 + addi sp, sp, 16 /* (top of frame) */ # 59a: 12c110 + ret # 59d: 0df0 + + .literal_position # 5a0: 00000000 + # 5a4: 00000000 + # 5a8: 00060060 + # 5ac: 00000000 + # 5b0: 888e0000 + # 5b4: 00000000 + # 5b8: 00000000 + # 5bc: 00000000 + # 5c0: 00000000 + # 5c4: 00000000 + # 5c8: 00000000 + # 5cc: 00000000 + # 5d0: 00000000 + # 5d4: 00000000 + # 5d8: 00000000 + # 5dc: 880e0000 + # 5e0: 00000000 + # 5e4: 00000000 + # 5e8: a80a0000 + # 5ec: 00000000 + # 5f0: 00000000 + # 5f4: 00000000 + # 5f8: 00000000 + # 5fc: 00000000 + +# Function @ .irom0.text+0x600 +# Local variables/stack: +# (local0): word @ -0x40 +# (local1): word @ -0x3c +# (local2): word @ -0x38 +# (local3): word @ -0x34 +# (local4): word @ -0x30 +# (local5): word @ -0x2c +# (local6): word @ -0x28 +# (local7): word @ -0x24 +# (local8): word @ -0x20 +# (local9): word @ -0x1c +# (local10): word @ -0x18 +# (local11): word @ -0x14 +# (local12): word @ -0x10 +# (local13): word @ -0xc +# (local14): word[2] @ -0x8 + .balign 4 + .global hostap_input + .type hostap_input, @function +hostap_input: + mov a11, a4 /* arg2 */ # 600: bd04 + addi sp, sp, -64 /* (local0) */ # 602: 12c1c0 + s32i a15, sp, 44 /* a15 -> [(local11)] */ # 605: f9b1 + s32i a14, sp, 40 /* a14 -> [(local10)] */ # 607: e9a1 + s32i a0, sp, 28 /* a0 -> [(local7)] */ # 609: 0971 + s32i a13, sp, 36 /* a13 -> [(local9)] */ # 60b: d991 + s32i a12, sp, 32 /* a12 -> [(local8)] */ # 60d: c981 + mov a13, a2 /* arg0 */ # 60f: dd02 + mov a12, a3 /* arg1 */ # 611: cd03 + l32i a0, a12, 16 /* [arg1+0x10] */ # 613: 084c + l32i a2, a2, 0 /* [arg0] */ # 615: 2802 + l8ui a4, a0, 1 /* [[arg1+0x10]+0x1] */ # 617: 420001 + mov a3, a5 /* arg3 */ # 61a: 3d05 + srli a4, a4, 6 # 61c: 404641 + bnez a4, .Lbr024 # 61f: cc74 + l16ui a0, a0, 2 /* [[arg1+0x10]+0x2] */ # 621: 021001 + extui a0, a0, 0, 12 # 624: 0000b4 + j .Lbr025 # 627: 860300 +.Lbr024: l16ui a5, a0, 6 /* [[arg1+0x10]+0x6] */ # 62a: 521003 + l16ui a4, a0, 4 /* [[arg1+0x10]+0x4] */ # 62d: 421002 + slli a0, a5, 16 # 630: 000511 + or a0, a0, a4 # 633: 400020 + srli a0, a0, 8 # 636: 000841 +.Lbr025: extui a0, a0, 0, 16 # 639: 0000f4 + bltui a0, 16, .Lbr027 # 63c: b6b03a + l32i a14, a12, 4 /* [arg1+0x4] */ # 63f: e81c + l32i a14, a14, 4 /* [[arg1+0x4]+0x4] */ # 641: e81e + l8ui a4, a14, 0 /* [[[arg1+0x4]+0x4]] */ # 643: 420e00 + movi a15, 255 /* 0x000000ff */ # 646: f2a0ff + extui a6, a4, 0, 2 # 649: 406014 + bnez a6, .Lbr031 # 64c: 568604 + movi a9, 23 /* 0x00000017 */ # 64f: 1c79 + s32i a11, sp, 16 /* arg2 -> [(local4)] */ # 651: b941 + s32i a3, sp, 12 /* arg3 -> [(local3)] */ # 653: 3931 + s32i a2, sp, 8 /* [arg0] -> [(local2)] */ # 655: 2921 + l8ui a5, a14, 1 /* [[[arg1+0x4]+0x4]+0x1] */ # 657: 520e01 + movi a6, 240 /* 0x000000f0 */ # 65a: 62a0f0 + movi a15, 12 /* 0x0000000c */ # 65d: 0ccf + and a15, a4, a15 # 65f: f0f410 + and a6, a4, a6 # 662: 606410 + s32i a6, sp, 52 /* a6 -> [(local13)] */ # 665: 69d1 + extui a5, a5, 0, 2 # 667: 505014 + s32i a5, sp, 24 /* a5 -> [(local6)] */ # 66a: 5961 + bnez a5, .Lbr026 # 66c: cc15 + bnei a15, 4, .Lbr032 # 66e: 664f29 +.Lbr026: s32i a0, sp, 4 /* a0 -> [(local1)] */ # 671: 0911 + addi a2, a14, 4 /* [[arg1+0x4]+0x4]+0x4 */ # 673: 4b2e + s32i a2, sp, 56 /* [[arg1+0x4]+0x4]+0x4 -> [(local14)] */ # 675: 29e1 + j .Lbr033 # 677: 860a00 +.Lbr027: movi a15, 255 /* 0x000000ff */ # 67a: f2a0ff +.Lbr028: beqz a12, .Lbr029 # 67d: 8c6c + mov a2, a12 # 67f: 2d0c + call0 ppRecycleRxPkt # 681: 01ccffc0 + # 685: 0000 +.Lbr029: mov a2, a15 # 687: 2d0f +.Lbr030: l32i a12, sp, 32 /* [(local8)] */ # 689: c881 + l32i a13, sp, 36 /* [(local9)] */ # 68b: d891 + l32i a14, sp, 40 /* [(local10)] */ # 68d: e8a1 + l32i a15, sp, 44 /* [(local11)] */ # 68f: f8b1 + l32i a0, sp, 28 /* [(local7)] */ # 691: 0871 + addi sp, sp, 64 /* (top of frame) */ # 693: 12c140 + ret # 696: 0df0 +.Lbr031: j .Lbr028 # 698: 46f8ff +.Lbr032: bgeu a9, a0, .Lbr028 # 69b: 07b9de + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 69e: 0911 + addi a3, a14, 16 /* [[arg1+0x4]+0x4]+0x10 */ # 6a0: 32ce10 + s32i a3, sp, 56 /* [[arg1+0x4]+0x4]+0x10 -> [(local14)] */ # 6a3: 39e1 +.Lbr033: addi a2, a14, 10 /* [[arg1+0x4]+0x4]+0xa */ # 6a5: ab2e + s32i a2, sp, 20 /* [[arg1+0x4]+0x4]+0xa -> [(local5)] */ # 6a7: 2951 + call0 cnx_node_search # 6a9: 01c3ffc0 + # 6ad: 0000 + movi a8, ieee80211_addr_bcast # 6af: 81bcff + bnez a2, .Lbr035 # 6b2: ece2 + l32i a2, sp, 56 /* [(local14)] */ # 6b4: 28e1 + mov a3, a8 /* ieee80211_addr_bcast */ # 6b6: 3d08 + movi a4, 6 /* 0x00000006 */ # 6b8: 0c64 + call0 memcmp # 6ba: 01c0ffc0 + # 6be: 0000 + beqz a2, .Lbr034 # 6c0: 9c02 + l32i a2, sp, 56 /* [(local14)] */ # 6c2: 28e1 + l32i a3, sp, 8 /* [(local2)] */ # 6c4: 3821 + movi a4, 6 /* 0x00000006 */ # 6c6: 0c64 + addi a3, a3, 41 /* [(local2)]+0x29 */ # 6c8: 32c329 + call0 memcmp # 6cb: 01bdffc0 + # 6cf: 0000 + bnez a2, .Lbr028 # 6d1: 5682fa +.Lbr034: movi a2, ieee80211_addr_bcast # 6d4: 21b4ff + call0 cnx_node_search # 6d7: 01bbffc0 + # 6db: 0000 + s32i a2, sp, 48 /* a2 -> [(local12)] */ # 6dd: 29c1 + bnez a2, .Lbr036 # 6df: cce2 + j .Lbr028 # 6e1: 06e6ff +.Lbr035: s32i a2, sp, 48 /* a2 -> [(local12)] */ # 6e4: 29c1 + movi a4, 0x60000600 # 6e6: 41b0ff + memw # 6e9: c02000 + l32i a4, a4, 36 /* [0x60000624] */ # 6ec: 4894 + s32i a4, a2, 0x108 # 6ee: 426242 +.Lbr036: l32i a5, sp, 48 /* [(local12)] */ # 6f1: 58c1 + s32i a5, a13, 136 /* [(local12)] -> [arg0+0x88] */ # 6f3: 526d22 + bnez a15, .Lbr037 # 6f6: cc3f + l32i a6, sp, 52 /* [(local13)] */ # 6f8: 68d1 + beqi a6, 64, .Lbr038 # 6fa: 26d620 +.Lbr037: l32i a2, sp, 56 /* [(local14)] */ # 6fd: 28e1 + l32i a3, sp, 8 /* [(local2)] */ # 6ff: 3821 + movi a4, 6 /* 0x00000006 */ # 701: 0c64 + addi a3, a3, 41 /* [(local2)]+0x29 */ # 703: 32c329 + call0 memcmp # 706: 01b0ffc0 + # 70a: 0000 + beqz a2, .Lbr038 # 70c: 8ce2 + l32i a2, sp, 56 /* [(local14)] */ # 70e: 28e1 + movi a3, ieee80211_addr_bcast # 710: 31a7ff + movi a4, 6 /* 0x00000006 */ # 713: 0c64 + call0 memcmp # 715: 01adffc0 + # 719: 0000 + bnez a2, .Lbr028 # 71b: 56e2f5 +.Lbr038: l32i a4, sp, 12 /* [(local3)] */ # 71e: 4831 + s8i a4, a13, 168 /* [(local3)] -> [arg0+0xa8] */ # 720: 424da8 + bbsi a15, 2, .Lbr042 # 723: 27ef3e + l32i a5, sp, 52 /* [(local13)] */ # 726: 58d1 + beqi a5, 64, .Lbr042 # 728: 26d539 + l8ui a0, a14, 1 /* [[[arg1+0x4]+0x4]+0x1] */ # 72b: 020e01 + l8ui a6, a14, 0 /* [[[arg1+0x4]+0x4]] */ # 72e: 620e00 + movi a7, 140 /* 0x0000008c */ # 731: 72a08c + and a6, a6, a7 # 734: 706610 + movi a7, 136 /* 0x00000088 */ # 737: 72a088 + bne a6, a7, .Lbr039 # 73a: 77960b + extui a8, a0, 0, 2 # 73d: 008014 + bnei a8, 3, .Lbr044 # 740: 663877 + l8ui a8, a14, 30 /* [[[arg1+0x4]+0x4]+0x1e] */ # 743: 820e1e + j .Lbr045 # 746: 061d00 +.Lbr039: movi a8, 16 /* 0x00000010 */ # 749: 1c08 +.Lbr040: l32i a9, sp, 48 /* [(local12)] */ # 74b: 98c1 + addx2 a8, a8, a9 # 74d: 908890 + l16ui a9, a14, 22 /* [[[arg1+0x4]+0x4]+0x16] */ # 750: 921e0b + bbci a0, 3, .Lbr041 # 753: 37600b + l16ui a10, a8, 158 # 756: a2184f + sub a10, a9, a10 # 759: a0a9c0 + bgei a10, 1, .Lbr041 # 75c: e61a02 + j .Lbr028 # 75f: 86c6ff +.Lbr041: s16i a9, a8, 158 # 762: 92584f +.Lbr042: l32i a3, sp, 20 /* [(local5)] */ # 765: 3851 + addi a2, a13, 64 /* arg0+0x40 */ # 767: 22cd40 + movi a4, 6 /* 0x00000006 */ # 76a: 0c64 + call0 memcpy # 76c: 0199ffc0 + # 770: 0000 + beqz a15, .Lbr047 # 772: 16df05 + beqi a15, 4, .Lbr046 # 775: 264f4b + addi a11, a15, -8 # 778: b2cff8 + bnez a11, .Lbr028 # 77b: 56ebef + mov a2, a14 /* [[arg1+0x4]+0x4] */ # 77e: 2d0e + call0 .Lfunc001 # 780: 0195ffc0 + # 784: 0000 + mov a5, a2 # 786: 5d02 + l32i a0, sp, 4 /* [(local1)] */ # 788: 0811 + s16i a2, a12, 20 /* a2 -> [arg1+0x14] */ # 78a: 225c0a + sub a2, a0, a2 # 78d: 2020c0 + addi a2, a2, -4 # 790: 22c2fc + s16i a2, a12, 22 /* a2 -> [arg1+0x16] */ # 793: 225c0b + bge a0, a5, .Lbr043 # 796: 57a002 + j .Lbr028 # 799: 06b8ff +.Lbr043: l32i a3, sp, 24 /* [(local6)] */ # 79c: 3861 + addi a3, a3, -1 /* [(local6)]-0x1 */ # 79e: 0b33 + bnez a3, .Lbr028 # 7a0: 5693ed + l32i a4, sp, 48 /* [(local12)] */ # 7a3: 48c1 + l16ui a4, a4, 26 /* [[(local12)]+0x1a] */ # 7a5: 42140d + bnez a4, .Lbr051 # 7a8: 56140a + mov a2, a13 /* arg0 */ # 7ab: 2d0d + movi a3, 160 /* 0x000000a0 */ # 7ad: 32a0a0 + movi a4, 7 /* 0x00000007 */ # 7b0: 0c74 + call0 ieee80211_send_mgmt # 7b2: 0189ffc0 + # 7b6: 0000 + j .Lbr028 # 7b8: 46b0ff +.Lbr044: l8ui a8, a14, 24 /* [[[arg1+0x4]+0x4]+0x18] */ # 7bb: 820e18 +.Lbr045: extui a8, a8, 0, 4 # 7be: 808034 + j .Lbr040 # 7c1: 86e1ff +.Lbr046: mov a2, a13 /* arg0 */ # 7c4: 2d0d + mov a3, a12 /* arg1 */ # 7c6: 3d0c + l32i a4, sp, 52 /* [(local13)] */ # 7c8: 48d1 + call0 .Lfunc010 # 7ca: 0184ffc0 + # 7ce: 0000 + j .Lbr028 # 7d0: 46aaff +.Lbr047: mov a2, a14 /* [[arg1+0x4]+0x4] */ # 7d3: 2d0e + call0 .Lfunc001 # 7d5: 0182ffc0 + # 7d9: 0000 + mov a4, a2 # 7db: 4d02 + s16i a2, a12, 20 /* a2 -> [arg1+0x14] */ # 7dd: 225c0a + l32i a0, sp, 4 /* [(local1)] */ # 7e0: 0811 + l32i a5, sp, 24 /* [(local6)] */ # 7e2: 5861 + sub a6, a0, a2 # 7e4: 2060c0 + addi a6, a6, -4 # 7e7: 62c6fc + s16i a6, a12, 22 /* a6 -> [arg1+0x16] */ # 7ea: 625c0b + bnez a5, .Lbr028 # 7ed: 56c5e8 + movi a7, 23 /* 0x00000017 */ # 7f0: 1c77 + bltu a7, a0, .Lbr048 # 7f2: 073702 + j .Lbr028 # 7f5: 06a1ff +.Lbr048: l8ui a8, a14, 10 /* [[[arg1+0x4]+0x4]+0xa] */ # 7f8: 820e0a + extui a8, a8, 0, 1 # 7fb: 808004 + bnez a8, .Lbr028 # 7fe: 56b8e7 + l8ui a9, a14, 1 /* [[[arg1+0x4]+0x4]+0x1] */ # 801: 920e01 + bbci a9, 6, .Lbr050 # 804: 676932 + l32i a10, sp, 52 /* [(local13)] */ # 807: a8d1 + movi a11, 176 /* 0x000000b0 */ # 809: b2a0b0 + sub a10, a10, a11 /* [(local13)]-0xb0 */ # 80c: b0aac0 + bnez a10, .Lbr028 # 80f: 56aae6 + l32i a14, a13, 72 /* [arg0+0x48] */ # 812: e22d12 + movi a0, 16 /* 0x00000010 */ # 815: 1c00 + bany a14, a0, .Lbr049 # 817: 078e02 + j .Lbr028 # 81a: c697ff +.Lbr049: mov a2, a13 /* arg0 */ # 81d: 2d0d + mov a3, a12 /* arg1 */ # 81f: 3d0c + call0 ieee80211_crypto_decap # 821: 0170ffc0 + # 825: 0000 + beqz a2, .Lbr028 # 827: 1622e5 + l32i a3, a12, 4 /* [arg1+0x4] */ # 82a: 381c + l32i a3, a3, 4 /* [[arg1+0x4]+0x4] */ # 82c: 3813 + l8ui a2, a3, 1 /* [[[arg1+0x4]+0x4]+0x1] */ # 82e: 220301 + movi a4, 191 /* 0x000000bf */ # 831: 42a0bf + and a2, a2, a4 # 834: 402210 + s8i a2, a3, 1 /* a2 -> [[[arg1+0x4]+0x4]+0x1] */ # 837: 224301 +.Lbr050: mov a2, a13 /* arg0 */ # 83a: 2d0d + mov a3, a12 /* arg1 */ # 83c: 3d0c + l32i a4, sp, 52 /* [(local13)] */ # 83e: 48d1 + l32i a5, sp, 16 /* [(local4)] */ # 840: 5841 + l32i a6, sp, 12 /* [(local3)] */ # 842: 6831 + call0 .Lfunc009 # 844: 0169ffc0 + # 848: 0000 + j .Lbr028 # 84a: c68bff +.Lbr051: s32i a5, sp, 0 /* a5 -> [(local0)] */ # 84d: 5901 + l32i a4, sp, 48 /* [(local12)] */ # 84f: 48c1 + movi a3, 16 /* 0x00000010 */ # 851: 1c03 + l32i a4, a4, 8 /* [[(local12)]+0x8] */ # 853: 4824 + l8ui a0, a14, 1 /* [[[arg1+0x4]+0x4]+0x1] */ # 855: 020e01 + and a4, a4, a3 # 858: 304410 + and a3, a0, a3 # 85b: 303010 + beq a3, a4, .Lbr052 # 85e: 47130a + l32i a2, sp, 48 /* [(local12)] */ # 861: 28c1 + call0 ieee80211_node_pwrsave # 863: 0162ffc0 + # 867: 0000 + l8ui a0, a14, 1 /* [[[arg1+0x4]+0x4]+0x1] */ # 869: 020e01 +.Lbr052: bbci a0, 6, .Lbr054 # 86c: 676028 + l32i a5, a13, 72 /* [arg0+0x48] */ # 86f: 522d12 + movi a6, 16 /* 0x00000010 */ # 872: 1c06 + bany a5, a6, .Lbr053 # 874: 678502 + j .Lbr028 # 877: 8680ff +.Lbr053: mov a2, a13 /* arg0 */ # 87a: 2d0d + mov a3, a12 /* arg1 */ # 87c: 3d0c + l32i a4, sp, 0 /* [(local0)] */ # 87e: 4801 + call0 ieee80211_crypto_decap # 880: 015cffc0 + # 884: 0000 + beqz a2, .Lbr028 # 886: 1632df + l8ui a7, a14, 1 /* [[[arg1+0x4]+0x4]+0x1] */ # 889: 720e01 + movi a8, 191 /* 0x000000bf */ # 88c: 82a0bf + and a7, a7, a8 # 88f: 807710 + s8i a7, a14, 1 /* a7 -> [[[arg1+0x4]+0x4]+0x1] */ # 892: 724e01 + j .Lbr055 # 895: 860200 +.Lbr054: l32i a10, a12, 4 /* [arg1+0x4] */ # 898: a81c + l16ui a9, a12, 20 /* [arg1+0x14] */ # 89a: 921c0a + l32i a11, a10, 4 /* [[arg1+0x4]+0x4] */ # 89d: b81a + add a9, a9, a11 # 89f: ba99 + s32i a9, a10, 4 /* a9 -> [[arg1+0x4]+0x4] */ # 8a1: 991a +.Lbr055: mov a3, a14 /* [[arg1+0x4]+0x4] */ # 8a3: 3d0e + mov a2, a12 /* arg1 */ # 8a5: 2d0c + l32i a4, sp, 4 /* [(local1)] */ # 8a7: 4811 + l32i a5, sp, 0 /* [(local0)] */ # 8a9: 5801 + call0 ieee80211_decap # 8ab: 0152ffc0 + # 8af: 0000 + mov a3, a2 # 8b1: 3d02 + mov a12, a2 # 8b3: cd02 + beqz a2, .Lbr028 # 8b5: 1642dc + movi a4, 0x00008e88 # 8b8: 413eff + l32i a14, sp, 48 /* [(local12)] */ # 8bb: e8c1 + l32i a0, a2, 4 # 8bd: 0812 + l32i a14, a14, 8 /* [[(local12)]+0x8] */ # 8bf: e82e + l32i a0, a0, 4 # 8c1: 0810 + bbsi a14, 0, .Lbr056 # 8c3: 07ee35 + l32i a2, sp, 48 /* [(local12)] */ # 8c6: 28c1 + l8ui a2, a2, 24 /* [[(local12)]+0x18] */ # 8c8: 220218 + bnei a2, 1, .Lbr057 # 8cb: 66125a + l8ui a5, a0, 13 # 8ce: 52000d + l8ui a6, a0, 12 # 8d1: 62000c + slli a5, a5, 8 # 8d4: 805511 + or a5, a5, a6 # 8d7: 605520 + sub a5, a5, a4 # 8da: 4055c0 + bnez a5, .Lbr028 # 8dd: 56c5d9 + addi a4, a0, 14 # 8e0: eb40 + l16ui a5, a3, 22 # 8e2: 52130b + l32i a2, a13, 180 /* [arg0+0xb4] */ # 8e5: 222d2d + l32i a3, a13, 136 /* [arg0+0x88] */ # 8e8: 322d22 + l32i a2, a2, 24 /* [[arg0+0xb4]+0x18] */ # 8eb: 2862 + addi a5, a5, -14 # 8ed: 52c5f2 + l32i a3, a3, 228 /* [[arg0+0x88]+0xe4] */ # 8f0: 322339 + call0 wpa_receive # 8f3: 0141ffc0 + # 8f7: 0000 + j .Lbr028 # 8f9: 0660ff +.Lbr056: l8ui a5, a0, 13 # 8fc: 52000d + l8ui a6, a0, 12 # 8ff: 62000c + slli a5, a5, 8 # 902: 805511 + or a5, a5, a6 # 905: 605520 + bne a5, a4, .Lbr057 # 908: 47951d + l32i a2, a13, 180 /* [arg0+0xb4] */ # 90b: 222d2d + beqz a2, .Lbr057 # 90e: 9c72 + l32i a2, a2, 24 /* [[arg0+0xb4]+0x18] */ # 910: 2862 + addi a4, a0, 14 # 912: eb40 + l16ui a5, a3, 22 # 914: 52130b + l32i a6, a13, 136 /* [arg0+0x88] */ # 917: 622d22 + addi a5, a5, -14 # 91a: 52c5f2 + l32i a3, a6, 228 /* [[arg0+0x88]+0xe4] */ # 91d: 322639 + call0 wpa_receive # 920: 0137ffc0 + # 924: 0000 + j .Lbr028 # 926: c654ff +.Lbr057: mov a2, a13 /* arg0 */ # 929: 2d0d + call0 .Lfunc006 # 92b: c5b8ff + movi a2, 8 /* 0x00000008 */ # 92e: 0c82 + j .Lbr030 # 930: 4655ff + + .literal_position # 934: 00000000 + # 938: 10270000 + # 93c: 00000200 + # 940: 00000000 + # 944: 00000000 + # 948: 00000000 + # 94c: 00000000 + # 950: 00000000 + # 954: 00000000 + # 958: 00000000 + # 95c: 00000000 + # 960: 00000000 + +# Function @ .irom0.text+0x964 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word @ -0x10 +# (local5): word[3] @ -0xc + .balign 4 +.Lfunc007: addi sp, sp, -32 /* (local0) */ # 964: 12c1e0 + s32i a12, sp, 20 /* a12 -> [(local5)] */ # 967: c951 + s32i a0, sp, 12 /* a0 -> [(local3)] */ # 969: 0931 + l8ui a0, a2, 76 /* [arg0+0x4c] */ # 96b: 02024c + mov a12, a2 /* arg0 */ # 96e: cd02 + bnei a0, 2, .Lbr059 # 970: 662018 + l32i a2, a2, 84 /* [arg0+0x54] */ # 973: 222215 + beqz a2, .Lbr058 # 976: 8c92 + call0 free # 978: 01f2ffc0 + # 97c: 0000 + movi a2, 0 /* 0x00000000 */ # 97e: 0c02 + s32i a2, a12, 84 /* 0x00000000 -> [arg0+0x54] */ # 980: 226c15 +.Lbr058: l32i a12, sp, 20 /* [(local5)] */ # 983: c851 + l32i a0, sp, 12 /* [(local3)] */ # 985: 0831 + addi sp, sp, 32 /* (top of frame) */ # 987: 12c120 + ret # 98a: 0df0 +.Lbr059: s32i a3, sp, 8 /* arg1 -> [(local2)] */ # 98c: 3921 + bnei a6, 1, .Lbr058 # 98e: 6616f1 + addi a4, a6, 1 /* arg4+0x1 */ # 991: 1b46 + movi a3, 176 /* 0x000000b0 */ # 993: 32a0b0 + call0 ieee80211_send_mgmt # 996: 01ebffc0 + # 99a: 0000 + l32i a2, sp, 8 /* [(local2)] */ # 99c: 2821 + addi a2, a2, 10 /* [(local2)]+0xa */ # 99e: ab22 + s32i a2, sp, 4 /* [(local2)]+0xa -> [(local1)] */ # 9a0: 2911 + call0 cnx_node_search # 9a2: 01e9ffc0 + # 9a6: 0000 + s32i a2, sp, 16 /* a2 -> [(local4)] */ # 9a8: 2941 + bnez a2, .Lbr060 # 9aa: ccb2 + l32i a2, sp, 4 /* [(local1)] */ # 9ac: 2811 + call0 cnx_node_alloc # 9ae: 01e7ffc0 + # 9b2: 0000 + s32i a2, sp, 16 /* a2 -> [(local4)] */ # 9b4: 2941 + beqz a2, .Lbr058 # 9b6: 1692fc +.Lbr060: l32i a3, sp, 4 /* [(local1)] */ # 9b9: 3811 + l32i a2, sp, 16 /* [(local4)] */ # 9bb: 2841 + movi a4, 6 /* 0x00000006 */ # 9bd: 0c64 + call0 memcpy # 9bf: 01e4ffc0 + # 9c3: 0000 + l32i a2, sp, 16 /* [(local4)] */ # 9c5: 2841 + movi a3, 192 /* 0x000000c0 */ # 9c7: 32a0c0 + add a2, a2, a3 /* [(local4)]+0xc0 */ # 9ca: 3a22 + movi a3, 0 /* 0x00000000 */ # 9cc: 0c03 + call0 ieee80211_psq_init # 9ce: 01e1ffc0 + # 9d2: 0000 + l32i a2, sp, 16 /* [(local4)] */ # 9d4: 2841 + movi a3, 236 /* 0x000000ec */ # 9d6: 32a0ec + add a2, a2, a3 /* [(local4)]+0xec */ # 9d9: 3a22 + s32i a2, sp, 0 /* [(local4)]+0xec -> [(local0)] */ # 9db: 2901 + call0 os_timer_disarm # 9dd: 01deffc0 + # 9e1: 0000 + l32i a2, sp, 0 /* [(local0)] */ # 9e3: 2801 + movi a3, hostap_handle_timer # 9e5: 31d3ff + l32i a4, sp, 16 /* [(local4)] */ # 9e8: 4841 + call0 os_timer_setfn # 9ea: 01dcffc0 + # 9ee: 0000 + l32i a2, sp, 0 /* [(local0)] */ # 9f0: 2801 + movi a3, 0x00002710 # 9f2: 31d1ff + movi a4, 1 /* 0x00000001 */ # 9f5: 0c14 + call0 os_timer_arm # 9f7: 01daffc0 + # 9fb: 0000 + l32i a9, sp, 16 /* [(local4)] */ # 9fd: 9841 + movi a11, -17 /* 0xffffffef */ # 9ff: 6cfb + movi a10, -2 /* 0xfffffffe */ # a01: 7cea + movi a3, 1 /* 0x00000001 */ # a03: 0c13 + l32i a2, sp, 16 /* [(local4)] */ # a05: 2841 + movi a7, 0x00020000 # a07: 71cdff + l32i a6, a2, 8 /* [[(local4)]+0x8] */ # a0a: 6822 + movi a8, 32 /* 0x00000020 */ # a0c: 2c08 + or a6, a6, a8 # a0e: 806620 + or a6, a6, a7 # a11: 706620 + or a3, a6, a3 # a14: 303620 + and a10, a6, a10 # a17: a0a610 + s32i a6, a2, 8 /* a6 -> [[(local4)]+0x8] */ # a1a: 6922 + l8ui a0, a12, 76 /* [arg0+0x4c] */ # a1c: 020c4c + and a10, a10, a11 # a1f: b0aa10 + addi a0, a0, -3 /* [arg0+0x4c]-0x3 */ # a22: 02c0fd + moveqz a3, a10, a0 # a25: 003a83 + s32i a3, a9, 8 /* a3 -> [[(local4)]+0x8] */ # a28: 3929 + j .Lbr058 # a2a: 46d5ff + + .literal_position # a30: 00000000 + +# Function @ .irom0.text+0xa34 + .balign 4 +.Lfunc008: bnez a3, .Lbr063 # a34: ec43 + beqz a2, .Lbr063 # a36: ac22 + l8ui a3, a2, 1 /* [arg0+0x1] */ # a38: 320201 + movi a6, .Ldata004 # a3b: 61fdff + blti a3, 1, .Lbr062 # a3e: a61316 + l32i a6, a6, 0 /* [.Ldata004] */ # a41: 6806 + movi a8, 22 /* 0x00000016 */ # a43: 1c68 + add a7, a3, a2 # a45: 2a73 +.Lbr061: l8ui a3, a2, 2 # a47: 320202 + extui a3, a3, 0, 7 # a4a: 303064 + blt a8, a3, .Lbr063 # a4d: 37280b + bbc a6, a3, .Lbr063 # a50: 375608 + addi a2, a2, 1 # a53: 1b22 + bne a2, a7, .Lbr061 # a55: 7792ee +.Lbr062: movi a2, 1 /* 0x00000001 */ # a58: 0c12 + ret /* 0x00000001 */ # a5a: 0df0 +.Lbr063: movi a2, 0 /* 0x00000000 */ # a5c: 0c02 + ret /* 0x00000000 */ # a5e: 0df0 + + .literal_position # a60: 00000000 + # a64: 00000000 + # a68: 00000000 + # a6c: 0050f201 + # a70: 00000000 + # a74: 00000000 + # a78: 00000000 + # a7c: 00000000 + # a80: 00000000 + # a84: 00000000 + # a88: 00000000 + # a8c: 00000000 + # a90: 00000000 + # a94: 00000000 + # a98: 00000000 + # a9c: 00000000 + # aa0: 00000000 + # aa4: 00000000 + +# Function @ .irom0.text+0xaa8 +# Local variables/stack: +# (local0): word @ -0x48 +# (local1): word @ -0x44 +# (local2): word @ -0x40 +# (local3): word @ -0x3c +# (local4): word @ -0x38 +# (local5): word @ -0x34 +# (local6): word @ -0x30 +# (local7): word @ -0x2c +# (local8): word @ -0x28 +# (local9): word @ -0x24 +# (local10): word @ -0x20 +# (local11): word @ -0x1c +# (local12): word @ -0x18 +# (local13): word @ -0x14 +# (local14): word[4] @ -0x10 + .balign 4 +.Lfunc009: movi a10, g_ic # aa8: a1eeff + movi a11, 50 /* 0x00000032 */ # aab: 3c2b + movi a7, 144 /* 0x00000090 */ # aad: 72a090 + sub sp, sp, a7 /* (FP)-0x90 */ # ab0: 7011c0 + s32i a0, sp, 100 /* a0 -> [(local7)] */ # ab3: 026119 + l32i a7, a2, 0 /* [arg0] */ # ab6: 7802 + s32i a15, sp, 116 /* a15 -> [(local11)] */ # ab8: f2611d + s32i a13, sp, 108 /* a13 -> [(local9)] */ # abb: d2611b + s32i a12, sp, 104 /* a12 -> [(local8)] */ # abe: c2611a + s32i a14, sp, 112 /* a14 -> [(local10)] */ # ac1: e2611c + mov a12, a2 /* arg0 */ # ac4: cd02 + l32i a14, a2, 136 /* [arg0+0x88] */ # ac6: e22222 + mov a13, a4 /* arg2 */ # ac9: dd04 + l32i a15, a3, 4 /* [arg1+0x4] */ # acb: f813 + mov a4, a5 /* arg3 */ # acd: 4d05 + movi a5, 48 /* 0x00000030 */ # acf: 3c05 + l32i a15, a15, 4 /* [[arg1+0x4]+0x4] */ # ad1: f81f + l16ui a2, a3, 22 /* [arg1+0x16] */ # ad3: 22130b + addi a0, a15, 24 /* [[arg1+0x4]+0x4]+0x18 */ # ad6: 02cf18 + add a2, a2, a15 # ad9: fa22 + addi a2, a2, 24 # adb: 22c218 + beqz a13, .Lbr066 # ade: 167d04 + beqi a13, 16, .Lbr065 # ae1: 26bd2e + beqi a13, 32, .Lbr066 # ae4: 26cd41 + beq a13, a5, .Lbr065 # ae7: 571d28 + bnei a13, 64, .Lbr064 # aea: 66dd02 + j .Lbr068 # aed: 062500 +.Lbr064: movi a5, 80 /* 0x00000050 */ # af0: 5c05 + addi a8, a13, -80 /* arg2-0x50 */ # af2: 82cdb0 + beqz a8, .Lbr075 # af5: 16580d + addi a9, a13, -128 /* arg2-0x80 */ # af8: 92cd80 + beqz a9, .Lbr076 # afb: 16490d + movi a11, 160 /* 0x000000a0 */ # afe: b2a0a0 + beq a13, a11, .Lbr067 # b01: b71d4d + movi a3, 176 /* 0x000000b0 */ # b04: 32a0b0 + sub a3, a13, a3 /* arg2-0xb0 */ # b07: 303dc0 + beqz a3, .Lbr079 # b0a: 16f30d + movi a4, 192 /* 0x000000c0 */ # b0d: 42a0c0 + beq a13, a4, .Lbr067 # b10: 471d3e +.Lbr065: l32i a12, sp, 104 /* [(local8)] */ # b13: c2211a + l32i a13, sp, 108 /* [(local9)] */ # b16: d2211b + l32i a14, sp, 112 /* [(local10)] */ # b19: e2211c + l32i a15, sp, 116 /* [(local11)] */ # b1c: f2211d + movi a2, 144 /* 0x00000090 */ # b1f: 22a090 + l32i a0, sp, 100 /* [(local7)] */ # b22: 022119 + add sp, sp, a2 /* (top of frame) */ # b25: 2a11 + ret /* 0x00000090 */ # b27: 0df0 +.Lbr066: l32i a5, a12, 60 /* [arg0+0x3c] */ # b29: 58fc + s32i a2, sp, 80 /* a2 -> [(local2)] */ # b2b: 226114 + bnei a5, 5, .Lbr065 # b2e: 6655e1 + addi a3, a7, 41 /* [arg0]+0x29 */ # b31: 32c729 + addi a2, a15, 16 /* [[arg1+0x4]+0x4]+0x10 */ # b34: 22cf10 + movi a4, 6 /* 0x00000006 */ # b37: 0c64 + call0 memcmp # b39: 01d0ffc0 + # b3d: 0000 + bnez a2, .Lbr065 # b3f: 5602fd + addi a6, a13, -32 /* arg2-0x20 */ # b42: 62cde0 + bnez a6, .Lbr086 # b45: 56a614 + movi a0, 1 /* 0x00000001 */ # b48: 0c10 + movi a7, 48 /* 0x00000030 */ # b4a: 3c07 + s32i a7, sp, 88 /* 0x00000030 -> [(local4)] */ # b4c: 726116 + j .Lbr087 # b4f: c65100 +.Lbr067: s32i a2, sp, 80 /* a2 -> [(local2)] */ # b52: 226114 + l32i a8, a12, 60 /* [arg0+0x3c] */ # b55: 88fc + s32i a0, sp, 128 /* [[arg1+0x4]+0x4]+0x18 -> [(local14)] */ # b57: 026120 + bnei a8, 5, .Lbr065 # b5a: 6658b5 + addi a2, a15, 4 /* [[arg1+0x4]+0x4]+0x4 */ # b5d: 4b2f + addi a3, a7, 41 /* [arg0]+0x29 */ # b5f: 32c729 + movi a4, 6 /* 0x00000006 */ # b62: 0c64 + mov a13, a0 /* [[arg1+0x4]+0x4]+0x18 */ # b64: dd00 + call0 memcmp # b66: 01c6ffc0 + # b6a: 0000 + bnez a2, .Lbr065 # b6c: 5632fa + l32i a9, sp, 80 /* [(local2)] */ # b6f: 922114 + sub a9, a9, a13 # b72: d099c0 + blti a9, 2, .Lbr065 # b75: a6299a + mov a3, a14 /* [arg0+0x88] */ # b78: 3d0e + mov a2, a12 /* arg0 */ # b7a: 2d0c + call0 cnx_node_leave # b7c: 01c2ffc0 + # b80: 0000 + j .Lbr065 # b82: 46e3ff +.Lbr068: l32i a13, a12, 60 /* [arg0+0x3c] */ # b85: d8fc + sub a14, a2, a15 # b87: f0e2c0 + bnei a13, 5, .Lbr065 # b8a: 665d85 + addi a14, a14, -24 # b8d: e2cee8 + bgei a14, 2, .Lbr069 # b90: e62e02 + j .Lbr081 # b93: c62e00 +.Lbr069: movi a13, 0 /* 0x00000000 */ # b96: 0c0d + movi a3, 0 /* 0x00000000 */ # b98: 0c03 + sub a6, a2, a0 # b9a: 0062c0 + movi a14, 0 /* 0x00000000 */ # b9d: 0c0e +.Lbr070: l8ui a5, a0, 1 # b9f: 520001 + addi a4, a5, 2 # ba2: 2b45 + bge a6, a4, .Lbr071 # ba4: 47a602 + j .Lbr065 # ba7: 06daff +.Lbr071: l8ui a4, a0, 0 # baa: 420000 + beqz a4, .Lbr073 # bad: 8ce4 + beqi a4, 1, .Lbr072 # baf: 261407 + bne a4, a11, .Lbr074 # bb2: b7940b + mov a14, a0 # bb5: ed00 + j .Lbr074 # bb7: 860100 +.Lbr072: mov a13, a0 # bba: dd00 + j .Lbr074 # bbc: 460000 +.Lbr073: mov a3, a0 # bbf: 3d00 +.Lbr074: add a0, a5, a0 # bc1: 0a05 + addi a0, a0, 2 # bc3: 2b00 + sub a6, a2, a0 # bc5: 0062c0 + bgei a6, 2, .Lbr070 # bc8: e626d3 + j .Lbr082 # bcb: 462200 +.Lbr075: movi a4, 1 /* 0x00000001 */ # bce: 0c14 + j .Lbr077 # bd0: 460000 +.Lbr076: movi a4, 0 /* 0x00000000 */ # bd3: 0c04 +.Lbr077: l32i a2, a10, 28 /* [g_ic+0x1c] */ # bd5: 287a + sub a6, a13, a5 /* arg2-0x50 */ # bd7: 506dc0 + bbsi a2, 7, .Lbr078 # bda: 77e202 + beqz a6, .Lbr065 # bdd: 1626f3 +.Lbr078: mov a2, a3 /* arg1 */ # be0: 2d03 + mov a3, sp /* (FP)-0x90 */ # be2: 3d01 + call0 ieee80211_parse_beacon # be4: 01a9ffc0 + # be8: 0000 + j .Lbr065 # bea: 46c9ff +.Lbr079: s32i a4, sp, 96 /* arg3 -> [(local6)] */ # bed: 426118 + s32i a6, sp, 92 /* arg4 -> [(local5)] */ # bf0: 626117 + s32i a2, sp, 80 /* a2 -> [(local2)] */ # bf3: 226114 + l32i a8, a12, 60 /* [arg0+0x3c] */ # bf6: 88fc + s32i a0, sp, 128 /* [[arg1+0x4]+0x4]+0x18 -> [(local14)] */ # bf8: 026120 + addi a8, a8, -5 /* [arg0+0x3c]-0x5 */ # bfb: 82c8fb + bnez a8, .Lbr065 # bfe: 5618f1 + addi a3, a7, 41 /* [arg0]+0x29 */ # c01: 32c729 + addi a2, a15, 16 /* [[arg1+0x4]+0x4]+0x10 */ # c04: 22cf10 + movi a4, 6 /* 0x00000006 */ # c07: 0c64 + mov a13, a0 /* [[arg1+0x4]+0x4]+0x18 */ # c09: dd00 + call0 memcmp # c0b: 01a0ffc0 + # c0f: 0000 + bnez a2, .Lbr065 # c11: 56e2ef + l32i a9, sp, 80 /* [(local2)] */ # c14: 922114 + sub a9, a9, a13 # c17: d099c0 + bgei a9, 6, .Lbr080 # c1a: e66902 + j .Lbr065 # c1d: 86bcff +.Lbr080: l16ui a0, a13, 0 /* [[[arg1+0x4]+0x4]+0x18] */ # c20: 021d00 + movi a10, g_ic # c23: a190ff + l16ui a6, a13, 2 /* [[[arg1+0x4]+0x4]+0x1a] */ # c26: 621d01 + l32i a10, a10, 28 /* [g_ic+0x1c] */ # c29: a87a + l16ui a7, a13, 4 /* [[[arg1+0x4]+0x4]+0x1c] */ # c2b: 721d02 + extui a10, a10, 26, 1 # c2e: a0aa05 + bnez a10, .Lbr065 # c31: 56eaed + addi a11, a0, -1 /* [[[arg1+0x4]+0x4]+0x18]-0x1 */ # c34: 0bb0 + l32i a13, a12, 144 /* [arg0+0x90] */ # c36: d22c24 + s32i a13, a12, 136 /* [arg0+0x90] -> [arg0+0x88] */ # c39: d26c22 + beqz a11, .Lbr065 # c3c: 163bed + bnez a0, .Lbr065 # c3f: 5600ed + mov a3, a15 /* [[arg1+0x4]+0x4] */ # c42: 3d0f + mov a2, a12 /* arg0 */ # c44: 2d0c + l32i a4, sp, 96 /* [(local6)] */ # c46: 422118 + l32i a5, sp, 92 /* [(local5)] */ # c49: 522117 + call0 .Lfunc007 # c4c: 45d1ff + j .Lbr065 # c4f: 06b0ff +.Lbr081: movi a3, 0 /* 0x00000000 */ # c52: 0c03 + movi a13, 0 /* 0x00000000 */ # c54: 0c0d + movi a14, 0 /* 0x00000000 */ # c56: 0c0e +.Lbr082: beqz a13, .Lbr065 # c58: 167deb + l8ui a2, a13, 1 # c5b: 220d01 + bltui a2, 16, .Lbr083 # c5e: b6b202 + j .Lbr065 # c61: 86abff +.Lbr083: beqz a14, .Lbr084 # c64: 8cce + l8ui a4, a14, 1 # c66: 420e01 + movi a0, 15 /* 0x0000000f */ # c69: 0cf0 + sub a0, a0, a2 # c6b: 2000c0 + bge a0, a4, .Lbr084 # c6e: 47a002 + j .Lbr065 # c71: 86a7ff +.Lbr084: beqz a3, .Lbr065 # c74: 16b3e9 + l8ui a0, a3, 1 # c77: 020301 + movi a2, 32 /* 0x00000020 */ # c7a: 2c02 + bgeu a2, a0, .Lbr085 # c7c: 07b202 + j .Lbr065 # c7f: 06a4ff +.Lbr085: movi a4, g_ic+0x280 # c82: 4179ff + l8ui a4, a4, 143 /* [g_ic+0x30f] */ # c85: 42048f + addi a4, a4, -1 /* [g_ic+0x30f]-0x1 */ # c88: 0b44 + bnez a4, .Lbr103 # c8a: 569411 + bnez a0, .Lbr104 # c8d: 568011 + j .Lbr065 # c90: c69fff +.Lbr086: movi a0, 0 /* 0x00000000 */ # c93: 0c00 + movi a5, 16 /* 0x00000010 */ # c95: 1c05 + s32i a5, sp, 88 /* 0x00000010 -> [(local4)] */ # c97: 526116 +.Lbr087: movi a8, 10 /* 0x0000000a */ # c9a: 0ca8 + movi a7, 4 /* 0x00000004 */ # c9c: 0c47 + l32i a6, sp, 80 /* [(local2)] */ # c9e: 622114 + movnez a7, a8, a0 # ca1: 007893 + sub a6, a6, a15 # ca4: f066c0 + addi a6, a6, -24 # ca7: 62c6e8 + bge a6, a7, .Lbr088 # caa: 77a602 + j .Lbr065 # cad: 8698ff +.Lbr088: movi a11, 221 /* 0x000000dd */ # cb0: b2a0dd + l32i a6, sp, 80 /* [(local2)] */ # cb3: 622114 + addi a7, a15, 34 /* [[arg1+0x4]+0x4]+0x22 */ # cb6: 72cf22 + addi a13, a15, 28 /* [[arg1+0x4]+0x4]+0x1c */ # cb9: d2cf1c + movnez a13, a7, a0 # cbc: 00d793 + sub a6, a6, a13 # cbf: d066c0 + bgei a6, 2, .Lbr089 # cc2: e62602 + j .Lbr107 # cc5: c64b00 +.Lbr089: movi a0, 0 /* 0x00000000 */ # cc8: 0c00 + movi a7, 0 /* 0x00000000 */ # cca: 0c07 + addi a15, a14, 39 /* [arg0+0x88]+0x27 */ # ccc: f2ce27 + movi a10, 0 /* 0x00000000 */ # ccf: 0c0a + s32i a10, sp, 72 /* 0x00000000 -> [(local0)] */ # cd1: a26112 + s32i a15, sp, 84 /* [arg0+0x88]+0x27 -> [(local3)] */ # cd4: f26115 + movi a15, 0 /* 0x00000000 */ # cd7: 0c0f +.Lbr090: l8ui a5, a13, 1 # cd9: 520d01 + l8ui a3, a13, 0 # cdc: 320d00 + addi a10, a5, 2 # cdf: 2ba5 + bge a6, a10, .Lbr091 # ce1: a7a602 + j .Lbr065 # ce4: c68aff +.Lbr091: beqz a3, .Lbr100 # ce7: 16630a + bnei a3, 1, .Lbr092 # cea: 661302 + j .Lbr099 # ced: c62600 +.Lbr092: movi a2, 45 /* 0x0000002d */ # cf0: 2cd2 + bne a3, a2, .Lbr093 # cf2: 279302 + j .Lbr098 # cf5: 862300 +.Lbr093: s32i a7, sp, 120 /* a7 -> [(local12)] */ # cf8: 72611e + s32i a0, sp, 124 /* a0 -> [(local13)] */ # cfb: 02611f + movi a4, 48 /* 0x00000030 */ # cfe: 3c04 + beq a3, a4, .Lbr097 # d00: 471363 + movi a6, 50 /* 0x00000032 */ # d03: 3c26 + beq a3, a6, .Lbr096 # d05: 671359 + beq a3, a11, .Lbr094 # d08: b71302 + j .Lbr101 # d0b: 462100 +.Lbr094: movi a3, 0 /* 0x00000000 */ # d0e: 0c03 + bltui a5, 4, .Lbr095 # d10: b64525 + l8ui a2, a13, 5 # d13: 220d05 + l8ui a9, a13, 3 # d16: 920d03 + l8ui a8, a13, 2 # d19: 820d02 + slli a9, a9, 8 # d1c: 809911 + or a8, a8, a9 # d1f: 908820 + l8ui a9, a13, 4 # d22: 920d04 + slli a2, a2, 24 # d25: 802201 + slli a9, a9, 16 # d28: 009911 + or a9, a9, a2 # d2b: 209920 + or a8, a8, a9 # d2e: 908820 + movi a9, 0x01f25000 # d31: 914eff + bne a8, a9, .Lbr095 # d34: 979801 + movi a3, 1 /* 0x00000001 */ # d37: 0c13 +.Lbr095: s32i a7, sp, 120 /* a7 -> [(local12)] */ # d39: 72611e + s32i a0, sp, 124 /* a0 -> [(local13)] */ # d3c: 02611f + beqz a3, .Lbr101 # d3f: 161305 + l32i a2, sp, 84 /* [(local3)] */ # d42: 222115 + mov a3, a13 # d45: 3d0d + extui a4, a10, 0, 8 # d47: a04074 + s8i a4, a14, 38 /* a4 -> [[arg0+0x88]+0x26] */ # d4a: 424e26 + call0 memcpy # d4d: 0150ffc0 + # d51: 0000 + l32i a0, sp, 124 /* [(local13)] */ # d53: 02211f + l32i a7, sp, 120 /* [(local12)] */ # d56: 72211e + movi a11, 221 /* 0x000000dd */ # d59: b2a0dd + l8ui a5, a13, 1 # d5c: 520d01 + j .Lbr101 # d5f: 460c00 +.Lbr096: mov a15, a13 # d62: fd0d + j .Lbr101 # d64: 060b00 +.Lbr097: l32i a2, sp, 84 /* [(local3)] */ # d67: 222115 + mov a3, a13 # d6a: 3d0d + extui a4, a10, 0, 8 # d6c: a04074 + s8i a4, a14, 38 /* a4 -> [[arg0+0x88]+0x26] */ # d6f: 424e26 + call0 memcpy # d72: 0148ffc0 + # d76: 0000 + l32i a0, sp, 124 /* [(local13)] */ # d78: 02211f + l32i a7, sp, 120 /* [(local12)] */ # d7b: 72211e + movi a11, 221 /* 0x000000dd */ # d7e: b2a0dd + l8ui a5, a13, 1 # d81: 520d01 + j .Lbr101 # d84: 060300 +.Lbr098: mov a7, a13 # d87: 7d0d + j .Lbr101 # d89: c60100 +.Lbr099: mov a0, a13 # d8c: 0d0d + j .Lbr101 # d8e: 860000 +.Lbr100: s32i a13, sp, 72 /* a13 -> [(local0)] */ # d91: d26112 +.Lbr101: l32i a6, sp, 80 /* [(local2)] */ # d94: 622114 + add a13, a5, a13 # d97: dad5 + addi a13, a13, 2 # d99: 2bdd + sub a6, a6, a13 # d9b: d066c0 + blti a6, 2, .Lbr102 # d9e: a62602 + j .Lbr090 # da1: 06cdff +.Lbr102: j .Lbr108 # da4: c61600 +.Lbr103: beqz a0, .Lbr105 # da7: ac40 +.Lbr104: s32i a0, sp, 76 /* a0 -> [(local1)] */ # da9: 026113 + l32i a2, a10, 0x288 /* [g_ic+0x288] */ # dac: 222aa2 + s32i a3, sp, 72 /* a3 -> [(local0)] */ # daf: 326112 + sub a2, a2, a0 # db2: 0022c0 + bnez a2, .Lbr065 # db5: 56a2d5 + addi a2, a3, 2 # db8: 2b23 + l32i a4, sp, 76 /* [(local1)] */ # dba: 422113 + movi a3, g_ic+0x28c # dbd: 312cff + call0 memcmp # dc0: 0136ffc0 + # dc4: 0000 + movi a10, g_ic # dc6: a12bff + l32i a0, sp, 76 /* [(local1)] */ # dc9: 022113 + bnez a2, .Lbr065 # dcc: 5632d4 +.Lbr105: l32i a3, a10, 28 /* [g_ic+0x1c] */ # dcf: 387a + bbci a3, 27, .Lbr106 # dd1: b77302 + beqz a0, .Lbr065 # dd4: 16b0d3 +.Lbr106: mov a3, a14 # dd7: 3d0e + mov a2, a13 # dd9: 2d0d + l32i a4, a12, 144 /* [arg0+0x90] */ # ddb: 422c24 + s32i a4, a12, 136 /* [arg0+0x90] -> [arg0+0x88] */ # dde: 426c22 + call0 .Lfunc008 # de1: 05c5ff + addi a3, a15, 10 /* [[arg1+0x4]+0x4]+0xa */ # de4: ab3f + mov a4, a2 # de6: 4d02 + movi a5, 1 /* 0x00000001 */ # de8: 0c15 + mov a2, a12 /* arg0 */ # dea: 2d0c + movnez a4, a5, a4 # dec: 404593 + call0 ieee80211_send_proberesp # def: 012bffc0 + # df3: 0000 + j .Lbr065 # df5: 8646ff +.Lbr107: movi a0, 0 /* 0x00000000 */ # df8: 0c00 + movi a15, 0 /* 0x00000000 */ # dfa: 0c0f + movi a7, 0 /* 0x00000000 */ # dfc: 0c07 + movi a6, 0 /* 0x00000000 */ # dfe: 0c06 + s32i a6, sp, 72 /* 0x00000000 -> [(local0)] */ # e00: 626112 +.Lbr108: beqz a0, .Lbr065 # e03: 16c0d0 + l8ui a2, a0, 1 # e06: 220001 + bltui a2, 16, .Lbr109 # e09: b6b202 + j .Lbr065 # e0c: c640ff +.Lbr109: beqz a15, .Lbr110 # e0f: 8ccf + l8ui a9, a15, 1 # e11: 920f01 + movi a8, 15 /* 0x0000000f */ # e14: 0cf8 + sub a8, a8, a2 # e16: 2088c0 + bge a8, a9, .Lbr110 # e19: 97a802 + j .Lbr065 # e1c: c63cff +.Lbr110: l32i a9, sp, 72 /* [(local0)] */ # e1f: 922112 + beqz a9, .Lbr065 # e22: 16d9ce + l8ui a13, a9, 1 /* [[(local0)]+0x1] */ # e25: d20901 + movi a10, 32 /* 0x00000020 */ # e28: 2c0a + bgeu a10, a13, .Lbr111 # e2a: d7ba02 + j .Lbr065 # e2d: 8638ff +.Lbr111: beqz a7, .Lbr112 # e30: 9c47 + l8ui a2, a7, 1 # e32: 220701 + movi a4, 30 /* 0x0000001e */ # e35: 1ce4 + l8ui a5, a7, 0 # e37: 520700 + movi a3, 26 /* 0x0000001a */ # e3a: 1ca3 + sub a5, a5, a11 # e3c: b055c0 + moveqz a3, a4, a5 # e3f: 503483 + bgeu a2, a3, .Lbr112 # e42: 37b202 + j .Lbr065 # e45: 8632ff +.Lbr112: mov a4, a15 # e48: 4d0f + mov a2, a14 /* [arg0+0x88] */ # e4a: 2d0e + movi a5, 15 /* 0x0000000f */ # e4c: 0cf5 + mov a3, a0 # e4e: 3d00 + call0 ieee80211_setup_rates # e50: 0114ffc0 + # e54: 0000 + extui a0, a2, 0, 8 # e56: 200074 + extui a6, a2, 7, 1 # e59: 206704 + bnez a6, .Lbr065 # e5c: 5636cb + movi a7, g_ic # e5f: 7106ff + l32i a7, a7, 28 /* [g_ic+0x1c] */ # e62: 7877 + bbci a7, 5, .Lbr113 # e64: 576707 + movi a8, 47 /* 0x0000002f */ # e67: 2cf8 + bltu a8, a0, .Lbr113 # e69: 073802 + j .Lbr065 # e6c: c628ff +.Lbr113: mov a3, a14 /* [arg0+0x88] */ # e6f: 3d0e + mov a2, a12 /* arg0 */ # e71: 2d0c + l32i a4, sp, 88 /* [(local4)] */ # e73: 422116 + l32i a9, a12, 144 /* [arg0+0x90] */ # e76: 922c24 + s32i a9, a12, 136 /* [arg0+0x90] -> [arg0+0x88] */ # e79: 926c22 + call0 cnx_node_join # e7c: 010affc0 + # e80: 0000 + j .Lbr065 # e82: 4623ff + + .balign 4 +# Function @ .irom0.text+0xe88 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 +.Lfunc010: addi sp, sp, -16 /* (local0) */ # e88: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # e8b: 0901 + beqi a4, 128, .Lbr114 # e8d: 26e408 + movi a0, 160 /* 0x000000a0 */ # e90: 02a0a0 + bne a4, a0, .Lbr114 # e93: 079402 + call0 .Lfunc011 # e96: c50200 +.Lbr114: l32i a0, sp, 0 /* [(local0)] */ # e99: 0801 + addi sp, sp, 16 /* (top of frame) */ # e9b: 12c110 + ret # e9e: 0df0 + + .literal_position # ea0: ff3fffff + # ea4: 00000100 + # ea8: 00000000 + # eac: 00000000 + # eb0: 00000000 + # eb4: 00000000 + # eb8: 00000000 + # ebc: 00000000 + # ec0: 00000000 + +# Function @ .irom0.text+0xec4 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word @ -0x8 +# (local3): word @ -0x4 + .balign 4 +.Lfunc011: addi sp, sp, -16 /* (local0) */ # ec4: 12c1f0 + l32i a6, a2, 136 /* [arg0+0x88] */ # ec7: 622222 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # eca: 0911 + s32i a12, sp, 8 /* a12 -> [(local2)] */ # ecc: c921 + l32i a0, a3, 4 /* [arg1+0x4] */ # ece: 0813 + mov a12, a3 /* arg1 */ # ed0: cd03 + l32i a0, a0, 4 /* [[arg1+0x4]+0x4] */ # ed2: 0810 + beqz a6, .Lbr124 # ed4: 16360b + movi a5, 0xffff3fff # ed7: 51f2ff + l16ui a4, a6, 26 /* [[arg0+0x88]+0x1a] */ # eda: 42160d + and a3, a4, a5 # edd: 503410 + bany a4, a5, .Lbr115 # ee0: 578402 + j .Lbr124 # ee3: 062900 +.Lbr115: l16ui a7, a0, 2 /* [[[arg1+0x4]+0x4]+0x2] */ # ee6: 721001 + extui a7, a7, 0, 14 # ee9: 7070d4 + beq a3, a7, .Lbr116 # eec: 771302 + j .Lbr123 # eef: c62300 +.Lbr116: l32i a0, a6, 204 /* [[arg0+0x88]+0xcc] */ # ef2: 022633 + s32i a6, sp, 12 /* [arg0+0x88] -> [(local3)] */ # ef5: 6931 + bnez a0, .Lbr117 # ef7: dc30 + mov a12, a6 /* [arg0+0x88] */ # ef9: cd06 + call0 ieee80211_send_nulldata # efb: 01ecffc0 + # eff: 0000 + mov a2, a12 /* [arg0+0x88] */ # f01: 2d0c + movi a3, 0 /* 0x00000000 */ # f03: 0c03 + call0 ieee80211_set_tim # f05: 01eaffc0 + # f09: 0000 + j .Lbr123 # f0b: c61c00 +.Lbr117: movi a3, 0 /* 0x00000000 */ # f0e: 0c03 + s32i a0, sp, 0 /* [[arg0+0x88]+0xcc] -> [(local0)] */ # f10: 0901 + s32i a6, sp, 12 /* [arg0+0x88] -> [(local3)] */ # f12: 6931 + l32i a8, a6, 212 /* [[arg0+0x88]+0xd4] */ # f14: 822635 + l32i a5, a6, 192 /* [[arg0+0x88]+0xc0] */ # f17: 522630 + addi a8, a8, -1 /* [[arg0+0x88]+0xd4]-0x1 */ # f1a: 0b88 + addi a5, a5, -1 /* [[arg0+0x88]+0xc0]-0x1 */ # f1c: 0b55 + s32i a5, a6, 192 /* [[arg0+0x88]+0xc0]-0x1 -> [[arg0+0x88]+0xc0] */ # f1e: 526630 + bnez a5, .Lbr118 # f21: cc75 + s32i a3, a6, 208 /* 0x00000000 -> [[arg0+0x88]+0xd0] */ # f23: 326634 + s32i a3, a6, 204 /* 0x00000000 -> [[arg0+0x88]+0xcc] */ # f26: 326633 + j .Lbr119 # f29: 860100 +.Lbr118: s32i a0, sp, 0 /* [[arg0+0x88]+0xcc] -> [(local0)] */ # f2c: 0901 + l32i a7, a0, 28 /* [[[arg0+0x88]+0xcc]+0x1c] */ # f2e: 7870 + s32i a7, a6, 204 /* [[[arg0+0x88]+0xcc]+0x1c] -> [[arg0+0x88]+0xcc] */ # f30: 726633 +.Lbr119: s32i a8, a6, 212 /* [[arg0+0x88]+0xd4]-0x1 -> [[arg0+0x88]+0xd4] */ # f33: 826635 + beqz a5, .Lbr120 # f36: 9c95 + l32i a10, a12, 32 /* [arg1+0x20] */ # f38: a88c + l32i a11, a10, 0 /* [[arg1+0x20]] */ # f3a: b80a + movi a0, 0x00010000 # f3c: 01daff + extui a9, a11, 0, 6 # f3f: b09054 + srli a11, a11, 6 # f42: b0b641 + or a11, a11, a0 # f45: 00bb20 + slli a11, a11, 6 # f48: a0bb11 + or a9, a9, a11 # f4b: b09920 + s32i a9, a10, 0 /* a9 -> [[arg1+0x20]] */ # f4e: 990a + j .Lbr121 # f50: 460200 +.Lbr120: l32i a2, sp, 12 /* [(local3)] */ # f53: 2831 + movi a3, 0 /* 0x00000000 */ # f55: 0c03 + call0 ieee80211_set_tim # f57: 01d7ffc0 + # f5b: 0000 +.Lbr121: call0 chm_check_same_channel # f5d: 01d6ffc0 + # f61: 0000 + beqz a2, .Lbr122 # f63: 8c92 + l32i a2, sp, 0 /* [(local0)] */ # f65: 2801 + call0 ppTxPkt # f67: 01d5ffc0 + # f6b: 0000 + j .Lbr123 # f6d: 460400 +.Lbr122: addi a0, a12, 28 /* arg1+0x1c */ # f70: 02cc1c + movi a2, g_ic # f73: 21cdff + movi a4, 0 /* 0x00000000 */ # f76: 0c04 + l32i a3, a2, 0x1c4 /* [g_ic+0x1c4] */ # f78: 322271 + s32i a4, a12, 28 /* 0x00000000 -> [arg1+0x1c] */ # f7b: 497c + s32i a12, a3, 0 /* arg1 -> [[g_ic+0x1c4]] */ # f7d: c903 + s32i a0, a2, 0x1c4 /* arg1+0x1c -> [g_ic+0x1c4] */ # f7f: 026271 +.Lbr123: l32i a12, sp, 8 /* [(local2)] */ # f82: c821 + l32i a0, sp, 4 /* [(local1)] */ # f84: 0811 + addi sp, sp, 16 /* (top of frame) */ # f86: 12c110 + ret # f89: 0df0 +.Lbr124: movi a3, 192 /* 0x000000c0 */ # f8b: 32a0c0 + movi a4, 7 /* 0x00000007 */ # f8e: 0c74 + call0 ieee80211_send_mgmt # f90: 01ccffc0 + # f94: 0000 + j .Lbr123 # f96: 06faff + + .literal_position # f9c: 00000000 + # fa0: 00000000 + # fa4: 00000000 + # fa8: 00000000 + # fac: 00000000 + # fb0: 00000000 + # fb4: 00000000 + # fb8: 00000000 + # fbc: 00000000 + # fc0: 00feef3f + # fc4: 00000000 + # fc8: 00000000 + # fcc: 00000000 + # fd0: 00feef3f + # fd4: 00000000 + # fd8: 00000000 + # fdc: 00000000 + # fe0: 00000000 + # fe4: 00000000 + # fe8: 00000000 + # fec: 00000000 + # ff0: 00000000 + # ff4: 00000000 + # ff8: 00000000 + # ffc: 00000000 + +# Function @ .irom0.text+0x1000 +# Local variables/stack: +# (local0): word[4] @ -0x30 +# (local1): word @ -0x20 +# (local2): word @ -0x1c +# (local3): word @ -0x18 +# (local4): word @ -0x14 +# (local5): word[4] @ -0x10 + .balign 4 + .global wifi_softap_start + .type wifi_softap_start, @function +wifi_softap_start: + addi sp, sp, -48 /* (local0) */ # 1000: 12c1d0 + s32i a0, sp, 20 /* a0 -> [(local2)] */ # 1003: 0951 + movi a0, g_ic # 1005: 01e5ff + s32i a12, sp, 24 /* a12 -> [(local3)] */ # 1008: c961 + l32i a12, a0, 20 /* [g_ic+0x14] */ # 100a: c850 + movi a2, 0 /* 0x00000000 */ # 100c: 0c02 + bnez a12, .Lbr125 # 100e: cc1c + j .Lbr137 # 1010: 064c00 +.Lbr125: l8ui a2, a12, 187 /* [[g_ic+0x14]+0xbb] */ # 1013: 220cbb + movi a6, .Ldata001 # 1016: 61e2ff + addi a2, a2, -1 /* [[g_ic+0x14]+0xbb]-0x1 */ # 1019: 0b22 + beqz a2, .Lbr136 # 101b: 163212 + l8ui a3, a6, 0 /* [.Ldata001] */ # 101e: 320600 + movi a0, 1 /* 0x00000001 */ # 1021: 0c10 + bbci a3, 0, .Lbr126 # 1023: 07630c + mov a2, a0 /* 0x00000001 */ # 1026: 2d00 + movi a4, 2 /* 0x00000002 */ # 1028: 0c24 + or a4, a3, a4 # 102a: 404320 + s8i a4, a6, 0 /* a4 -> [.Ldata001] */ # 102d: 424600 + j .Lbr137 # 1030: 064400 +.Lbr126: movi a3, info+0x18 # 1033: 31dcff + l32i a5, a12, 0 /* [[g_ic+0x14]] */ # 1036: 580c + s32i a3, sp, 16 /* info+0x18 -> [(local1)] */ # 1038: 3941 + bnez a5, .Lbr127 # 103a: fc05 + movi a2, 52 /* 0x00000034 */ # 103c: 3c42 + call0 malloc # 103e: 01e7ffc0 + # 1042: 0000 + l32i a3, sp, 16 /* [(local1)] */ # 1044: 3841 + s32i a2, a12, 0 /* a2 -> [[g_ic+0x14]] */ # 1046: 290c + movi a4, 6 /* 0x00000006 */ # 1048: 0c64 + addi a2, a2, 41 # 104a: 22c229 + call0 memcpy # 104d: 01e4ffc0 + # 1051: 0000 + mov a6, a12 /* [g_ic+0x14] */ # 1053: 6d0c + movi a7, ethernetif_init # 1055: 71d4ff + l32i a2, a12, 0 /* [[g_ic+0x14]] */ # 1058: 280c + movi a3, info # 105a: 31d4ff + movi a8, tcpip_input # 105d: 81d4ff + addi a4, a3, 4 /* info+0x4 */ # 1060: 4b43 + addi a5, a3, 8 /* info+0x8 */ # 1062: 8b53 + s32i a8, sp, 0 /* tcpip_input -> [(local0)] */ # 1064: 8901 + call0 netif_add # 1066: 01dfffc0 + # 106a: 0000 + l32i a3, sp, 16 /* [(local1)] */ # 106c: 3841 +.Lbr127: movi a2, 1 /* 0x00000001 */ # 106e: 0c12 + movi a5, 1 /* 0x00000001 */ # 1070: 0c15 + movi a6, 0 /* 0x00000000 */ # 1072: 0c06 + mov a4, a3 # 1074: 4d03 + movi a3, 1 /* 0x00000001 */ # 1076: 0c13 + call0 ic_set_vif # 1078: 01dcffc0 + # 107c: 0000 + l32i a2, a12, 0 /* [[g_ic+0x14]] */ # 107e: 280c + call0 netif_set_up # 1080: 01dbffc0 + # 1084: 0000 + call0 wifi_get_opmode # 1086: 01daffc0 + # 108a: 0000 + movi a0, g_ic # 108c: 01caff + bnei a2, 3, .Lbr129 # 108f: 663211 + l32i a3, a0, 16 /* [g_ic+0x10] */ # 1092: 3840 + beqz a3, .Lbr138 # 1094: 16530b + l32i a9, a3, 60 /* [[g_ic+0x10]+0x3c] */ # 1097: 98f3 + movi a3, 0 /* 0x00000000 */ # 1099: 0c03 + bgeui a9, 2, .Lbr128 # 109b: f62902 + j .Lbr138 # 109e: c62a00 +.Lbr128: j .Lbr130 # 10a1: 460000 +.Lbr129: movi a3, 1 /* 0x00000001 */ # 10a4: 0c13 +.Lbr130: beqi a3, 1, .Lbr131 # 10a6: 261302 + j .Lbr135 # 10a9: c62000 +.Lbr131: movi a6, g_ic+0x280 # 10ac: 61c3ff + movi a4, NMIIrqIsOn # 10af: 41c3ff + l8ui a6, a6, 141 /* [g_ic+0x30d] */ # 10b2: 62068d + l8ui a4, a4, 0 /* [NMIIrqIsOn] */ # 10b5: 420400 + addi a6, a6, -1 /* [g_ic+0x30d]-0x1 */ # 10b8: 0b66 + extui a6, a6, 0, 8 # 10ba: 606074 + s32i a6, sp, 28 /* a6 -> [(local4)] */ # 10bd: 6971 + bnez a4, .Lbr133 # 10bf: ecc4 + call0 vPortEnterCritical # 10c1: 01ccffc0 + # 10c5: 0000 + movi a3, 0x3feffe00 # 10c7: 31beff + movi a8, -32 /* 0xffffffe0 */ # 10ca: 6c08 +.Lbr132: memw # 10cc: c02000 + l32i a9, a3, 0x200 /* [0x3ff00000] */ # 10cf: 922380 + and a9, a9, a8 # 10d2: 809910 + memw # 10d5: c02000 + s32i a9, a3, 0x200 /* a9 -> [0x3ff00000] */ # 10d8: 926380 + memw # 10db: c02000 + l32i a7, a3, 0x200 /* [0x3ff00000] */ # 10de: 722380 + bbsi a7, 0, .Lbr132 # 10e1: 07e7e7 + movi a0, g_ic # 10e4: 01b8ff + movi a4, NMIIrqIsOn # 10e7: 41b8ff + l32i a6, sp, 28 /* [(local4)] */ # 10ea: 6871 + l8ui a4, a4, 0 /* [NMIIrqIsOn] */ # 10ec: 420400 +.Lbr133: movi a5, g_ic+0x100 # 10ef: 51b7ff + movi a7, 132 /* 0x00000084 */ # 10f2: 72a084 + addx2 a6, a6, a6 # 10f5: 606690 + addx4 a6, a6, a0 # 10f8: 0066a0 + add a6, a6, a7 # 10fb: 7a66 + s32i a6, sp, 32 /* a6 -> [(local5)] */ # 10fd: 6981 + s32i a6, a5, 76 /* a6 -> [g_ic+0x14c] */ # 10ff: 626513 + bnez a4, .Lbr134 # 1102: dcf4 + memw # 1104: c02000 + movi a8, 0x3feffe00 # 1107: 81b2ff + l32i a7, a8, 0x200 /* [0x3ff00000] */ # 110a: 722880 + movi a9, -32 /* 0xffffffe0 */ # 110d: 6c09 + and a7, a7, a9 # 110f: 907710 + movi a9, 1 /* 0x00000001 */ # 1112: 0c19 + or a7, a7, a9 # 1114: 907720 + memw # 1117: c02000 + s32i a7, a8, 0x200 /* a7 -> [0x3ff00000] */ # 111a: 726880 + call0 vPortExitCritical # 111d: 01b6ffc0 + # 1121: 0000 + l32i a6, sp, 32 /* [(local5)] */ # 1123: 6881 +.Lbr134: mov a2, a6 # 1125: 2d06 + call0 chm_set_current_channel # 1127: 01b5ffc0 + # 112b: 0000 + movi a0, g_ic # 112d: 01a9ff +.Lbr135: mov a2, a0 /* g_ic */ # 1130: 2d00 + call0 ieee80211_hostap_attach # 1132: 050000 + movi a10, 1 /* 0x00000001 */ # 1135: 0c1a + movi a0, .Ldata001 # 1137: 01a8ff + movi a11, 0 /* 0x00000000 */ # 113a: 0c0b + s8i a11, a0, 32 /* 0x00 -> [TmpSTAAPCloseAP] */ # 113c: b24020 + s8i a10, a12, 187 /* 0x01 -> [[g_ic+0x14]+0xbb] */ # 113f: a24cbb +.Lbr136: movi a2, 1 /* 0x00000001 */ # 1142: 0c12 +.Lbr137: l32i a12, sp, 24 /* [(local3)] */ # 1144: c861 + l32i a0, sp, 20 /* [(local2)] */ # 1146: 0851 + addi sp, sp, 48 /* (top of frame) */ # 1148: 12c130 + ret # 114b: 0df0 +.Lbr138: movi a3, 1 /* 0x00000001 */ # 114d: 0c13 + j .Lbr130 # 114f: c6d4ff + + .literal_position # 1154: 00000000 + # 1158: 00000000 + # 115c: 00000000 + # 1160: 00000000 + # 1164: 00000000 + # 1168: 00000000 + # 116c: 00000000 + # 1170: 00000000 + # 1174: 00000000 + # 1178: 00000000 + # 117c: 00000000 + # 1180: 00000000 + +# Function @ .irom0.text+0x1184 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word @ -0x10 +# (local5): word[3] @ -0xc + .balign 4 + .global wifi_softap_stop + .type wifi_softap_stop, @function +wifi_softap_stop: + addi sp, sp, -32 /* (local0) */ # 1184: 12c1e0 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 1187: d921 + s32i a14, sp, 12 /* a14 -> [(local3)] */ # 1189: e931 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 118b: c911 + movi a12, g_ic # 118d: c1f1ff + s32i a15, sp, 16 /* a15 -> [(local4)] */ # 1190: f941 + l32i a12, a12, 20 /* [g_ic+0x14] */ # 1192: c85c + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1194: 0901 + bnez a12, .Lbr139 # 1196: cc3c + movi a2, 0 /* 0x00000000 */ # 1198: 0c02 + j .Lbr141 # 119a: 460200 +.Lbr139: l8ui a13, a12, 187 /* [[g_ic+0x14]+0xbb] */ # 119d: d20cbb + movi a0, g_ic+0x280 # 11a0: 01eeff + bnez a13, .Lbr142 # 11a3: ccfd +.Lbr140: movi a2, 1 /* 0x00000001 */ # 11a5: 0c12 +.Lbr141: l32i a12, sp, 4 /* [(local1)] */ # 11a7: c811 + l32i a13, sp, 8 /* [(local2)] */ # 11a9: d821 + l32i a14, sp, 12 /* [(local3)] */ # 11ab: e831 + l32i a15, sp, 16 /* [(local4)] */ # 11ad: f841 + l32i a0, sp, 0 /* [(local0)] */ # 11af: 0801 + addi sp, sp, 32 /* (top of frame) */ # 11b1: 12c120 + ret # 11b4: 0df0 +.Lbr142: s32i a0, sp, 20 /* g_ic+0x280 -> [(local5)] */ # 11b6: 0951 + l8ui a0, a0, 144 /* [g_ic+0x310] */ # 11b8: 020090 + movi a13, 1 /* 0x00000001 */ # 11bb: 0c1d + addi a0, a0, 2 /* [g_ic+0x310]+0x2 */ # 11bd: 2b00 + blti a0, 2, .Lbr145 # 11bf: a62044 +.Lbr143: addx4 a14, a13, a12 # 11c2: c0eda0 + l32i a2, a14, 144 # 11c5: 222e24 + beqz a2, .Lbr144 # 11c8: bc32 + movi a3, 160 /* 0x000000a0 */ # 11ca: 32a0a0 + l32i a15, a12, 136 /* [[g_ic+0x14]+0x88] */ # 11cd: f22c22 + movi a4, 4 /* 0x00000004 */ # 11d0: 0c44 + s32i a2, a12, 136 /* a2 -> [[g_ic+0x14]+0x88] */ # 11d2: 226c22 + mov a2, a12 /* [g_ic+0x14] */ # 11d5: 2d0c + call0 ieee80211_send_mgmt # 11d7: 01e3ffc0 + # 11db: 0000 + mov a2, a12 /* [g_ic+0x14] */ # 11dd: 2d0c + movi a3, 192 /* 0x000000c0 */ # 11df: 32a0c0 + movi a4, 2 /* 0x00000002 */ # 11e2: 0c24 + call0 ieee80211_send_mgmt # 11e4: 01e1ffc0 + # 11e8: 0000 + mov a2, a12 /* [g_ic+0x14] */ # 11ea: 2d0c + s32i a15, a12, 136 /* [[g_ic+0x14]+0x88] -> [[g_ic+0x14]+0x88] */ # 11ec: f26c22 + l32i a3, a14, 144 # 11ef: 322e24 + call0 cnx_node_leave # 11f2: 01deffc0 + # 11f6: 0000 + l32i a0, sp, 20 /* [(local5)] */ # 11f8: 0851 + l8ui a0, a0, 144 /* [[(local5)]+0x90] */ # 11fa: 020090 + addi a0, a0, 2 /* [[(local5)]+0x90]+0x2 */ # 11fd: 2b00 +.Lbr144: addi a13, a13, 1 # 11ff: 1bdd + extui a13, a13, 0, 8 # 1201: d0d074 + blt a13, a0, .Lbr143 # 1204: 072dba +.Lbr145: l32i a2, a12, 0 /* [[g_ic+0x14]] */ # 1207: 280c + call0 netif_set_down # 1209: 01d9ffc0 + # 120d: 0000 + movi a13, .Ldata001 # 120f: d1d3ff + movi a14, 1 /* 0x00000001 */ # 1212: 0c1e + s8i a14, a13, 32 /* 0x01 -> [TmpSTAAPCloseAP] */ # 1214: e24d20 + addi a2, a13, 4 /* .Ldata002 */ # 1217: 4b2d + call0 ets_timer_disarm # 1219: 01d6ffc0 + # 121d: 0000 + movi a2, 1 /* 0x00000001 */ # 121f: 0c12 + movi a3, info+0x18 # 1221: 31cfff + movi a4, 2 /* 0x00000002 */ # 1224: 0c24 + movi a5, 0 /* 0x00000000 */ # 1226: 0c05 + call0 ic_bss_info_update # 1228: 01d4ffc0 + # 122c: 0000 + movi a2, 1 /* 0x00000001 */ # 122e: 0c12 + movi a3, 0 /* 0x00000000 */ # 1230: 0c03 + movi a4, 0 /* 0x00000000 */ # 1232: 0c04 + movi a5, 1 /* 0x00000001 */ # 1234: 0c15 + movi a6, 0 /* 0x00000000 */ # 1236: 0c06 + call0 ic_set_vif # 1238: 01d1ffc0 + # 123c: 0000 + call0 .Lfunc005 # 123e: 8511ff + l8ui a15, a13, 0 /* [.Ldata001] */ # 1241: f20d00 + bbsi a15, 0, .Lbr146 # 1244: 07ef09 + l32i a2, a13, 36 /* [.Ldata003] */ # 1247: 289d + movi a3, 4 /* 0x00000004 */ # 1249: 0c43 + call0 esf_buf_recycle # 124b: 01cdffc0 + # 124f: 0000 +.Lbr146: movi a0, 0 /* 0x00000000 */ # 1251: 0c00 + s8i a0, a12, 187 /* 0x00 -> [[g_ic+0x14]+0xbb] */ # 1253: 024cbb + j .Lbr140 # 1256: c6d2ff + + .section .rodata, "a", @progbits + +.Ldata004: .word 0x00400814 # 0: 14084000 diff --git a/binary_sdk/libnet80211_stage1/ieee80211_ht.S b/binary_sdk/libnet80211_stage1/ieee80211_ht.S new file mode 100644 index 0000000..6d22746 --- /dev/null +++ b/binary_sdk/libnet80211_stage1/ieee80211_ht.S @@ -0,0 +1,1280 @@ + + .section .irom0.text, "ax", @progbits + + .literal_position # 0: 00000804 + # 4: 0c110000 + # 8: 48090000 + # c: d4090000 + # 10: 00000000 + # 14: 00000000 + +# Function @ .irom0.text+0x18 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global ieee80211_ht_attach + .type ieee80211_ht_attach, @function +ieee80211_ht_attach: + movi a3, 0 /* 0x00000000 */ # 18: 0c03 + movi a7, 28 /* 0x0000001c */ # 1a: 1cc7 + movi a6, 0x04080000 # 1c: 61f9ff + movi a5, 700 /* 0x000002bc */ # 1f: 52a2bc + addi sp, sp, -16 /* (local0) */ # 22: 12c1f0 + movi a4, 1174 /* 0x00000496 */ # 25: 42a496 + add a4, a2, a4 /* arg0+0x496 */ # 28: 4a42 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 2a: 0901 + add a5, a2, a5 /* arg0+0x2bc */ # 2c: 5a52 + movi a0, 1 /* 0x00000001 */ # 2e: 0c10 + s32i a6, a5, 0x250 /* 0x04080000 -> [arg0+0x50c] */ # 30: 626594 + movi a2, 3 /* 0x00000003 */ # 33: 0c32 + movi a6, 0x0000110c # 35: 61f3ff + addmi a5, a5, 512 /* arg0+0x4bc */ # 38: 52d502 + s16i a7, a5, 86 /* 0x001c -> [arg0+0x512] */ # 3b: 72552b + s16i a3, a5, 88 /* 0x0000 -> [arg0+0x514] */ # 3e: 32552c + s16i a6, a5, 84 /* 0x110c -> [arg0+0x510] */ # 41: 62552a + s8i a0, a4, 128 /* 0x01 -> [arg0+0x516] */ # 44: 024480 + s8i a0, a4, 129 /* 0x01 -> [arg0+0x517] */ # 47: 024481 + movi a4, .Lfunc008 # 4a: 41efff + call0 ieee80211_recv_action_register # 4d: 01f0ffc0 + # 51: 0000 + movi a2, 3 /* 0x00000003 */ # 53: 0c32 + movi a3, 1 /* 0x00000001 */ # 55: 0c13 + movi a4, .Lfunc009 # 57: 41edff + call0 ieee80211_send_action_register # 5a: 01eeffc0 + # 5e: 0000 + l32i a0, sp, 0 /* [(local0)] */ # 60: 0801 + addi sp, sp, 16 /* (top of frame) */ # 62: 12c110 + ret # 65: 0df0 + + .literal_position # 68: 400c0000 + +# Function @ .irom0.text+0x6c +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global ieee80211_ht_node_init + .type ieee80211_ht_node_init, @function +ieee80211_ht_node_init: + addi sp, sp, -16 /* (local0) */ # 6c: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 6f: c911 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 71: 0901 + l32i a0, a2, 72 /* [arg0+0x48] */ # 73: 022212 + mov a12, a2 /* arg0 */ # 76: cd02 + bbci a0, 6, .Lbr001 # 78: 676002 + call0 ieee80211_ht_node_cleanup # 7b: 050000 +.Lbr001: movi a0, 0 /* 0x00000000 */ # 7e: 0c00 + extui a4, a12, 16, 16 # 80: c040f5 + movi a2, 206 /* 0x000000ce */ # 83: 22a0ce + add a2, a12, a2 /* arg0+0xce */ # 86: 2a2c +.Lbr002: s16i a12, a2, 122 # 88: c2523d + s16i a4, a2, 124 # 8b: 42523e + s8i a0, a2, 128 # 8e: 024280 + addi a2, a2, 80 # 91: 22c250 + addi a0, a0, 1 # 94: 1b00 + bnei a0, 4, .Lbr002 # 96: 6640ee + movi a4, 0x00000c40 # 99: 41f3ff + l32i a3, a12, 72 /* [arg0+0x48] */ # 9c: 322c12 + l32i a0, sp, 0 /* [(local0)] */ # 9f: 0801 + or a3, a3, a4 # a1: 403320 + s32i a3, a12, 72 /* a3 -> [arg0+0x48] */ # a4: 326c12 + l32i a12, sp, 4 /* [(local1)] */ # a7: c811 + addi sp, sp, 16 /* (top of frame) */ # a9: 12c110 + ret # ac: 0df0 + + .balign 4 +# Function @ .irom0.text+0xb0 + .balign 4 + .global ieee80211_ht_node_cleanup + .type ieee80211_ht_node_cleanup, @function +ieee80211_ht_node_cleanup: + movi a5, -65 /* 0xffffffbf */ # b0: 52afbf + l32i a4, a2, 72 /* [arg0+0x48] */ # b3: 422212 + movi a3, 0 /* 0x00000000 */ # b6: 0c03 + s16i a3, a2, 192 /* 0x0000 -> [arg0+0xc0] */ # b8: 325260 + and a4, a4, a5 # bb: 504410 + s32i a4, a2, 72 /* a4 -> [arg0+0x48] */ # be: 426212 + ret /* arg0 */ # c1: 0df0 + + .literal_position # c4: fffff8ff + # c8: 00000000 + +# Function @ .irom0.text+0xcc +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 +.Lfunc001: addi sp, sp, -16 /* (local0) */ # cc: 12c1f0 + movi a5, 0xfff8ffff # cf: 51fdff + s32i a0, sp, 0 /* a0 -> [(local0)] */ # d2: 0901 + l32i a0, a3, 0 /* [arg1] */ # d4: 0803 + l16ui a3, a3, 4 /* [arg1+0x4] */ # d6: 321302 + and a0, a0, a5 # d9: 500010 + or a4, a4, a0 # dc: 004420 + call0 ieee80211_find_channel # df: 01faffc0 + # e3: 0000 + l32i a0, sp, 0 /* [(local0)] */ # e5: 0801 + addi sp, sp, 16 /* (top of frame) */ # e7: 12c110 + ret # ea: 0df0 + +# Function @ .irom0.text+0xec + .balign 4 + .global ieee80211_parse_htcap + .type ieee80211_parse_htcap, @function +ieee80211_parse_htcap: + l32i a6, a2, 72 /* [arg0+0x48] */ # ec: 622212 + l8ui a4, a3, 0 /* [arg1] */ # ef: 420300 + movi a5, 221 /* 0x000000dd */ # f2: 52a0dd + bne a4, a5, .Lbr003 # f5: 57940d + addi a3, a3, 4 /* arg1+0x4 */ # f8: 4b33 + movi a7, 128 /* 0x00000080 */ # fa: 72a080 + or a7, a6, a7 # fd: 707620 + s32i a7, a2, 72 /* a7 -> [arg0+0x48] */ # 100: 726212 + j .Lbr004 # 103: c60100 +.Lbr003: movi a8, 64 /* 0x00000040 */ # 106: 4c08 + or a8, a6, a8 # 108: 808620 + s32i a8, a2, 72 /* a8 -> [arg0+0x48] */ # 10b: 826212 +.Lbr004: l8ui a11, a3, 3 # 10e: b20303 + l8ui a10, a3, 2 # 111: a20302 + slli a11, a11, 8 # 114: 80bb11 + or a10, a10, a11 # 117: b0aa20 + s16i a10, a2, 192 /* a10 -> [arg0+0xc0] */ # 11a: a25260 + l8ui a9, a3, 4 # 11d: 920304 + s8i a9, a2, 194 /* a9 -> [arg0+0xc2] */ # 120: 9242c2 + ret /* arg0 */ # 123: 0df0 + + .balign 4 +# Function @ .irom0.text+0x128 + .balign 4 +.Lfunc002: l8ui a7, a3, 2 /* [arg1+0x2] */ # 128: 720302 + s8i a7, a2, 195 /* [arg1+0x2] -> [arg0+0xc3] */ # 12b: 7242c3 + l8ui a6, a3, 3 /* [arg1+0x3] */ # 12e: 620303 + extui a6, a6, 0, 2 # 131: 606014 + s8i a6, a2, 196 /* a6 -> [arg0+0xc4] */ # 134: 6242c4 + l8ui a5, a3, 4 /* [arg1+0x4] */ # 137: 520304 + extui a5, a5, 0, 2 # 13a: 505014 + s8i a5, a2, 197 /* a5 -> [arg0+0xc5] */ # 13d: 5242c5 + l8ui a4, a3, 6 /* [arg1+0x6] */ # 140: 420306 + extui a4, a4, 0, 7 # 143: 404064 + s8i a4, a2, 198 /* a4 -> [arg0+0xc6] */ # 146: 4242c6 + ret /* arg0 */ # 149: 0df0 + + .literal_position # 14c: fffff8ff + # 150: 00000600 + # 154: 00000000 + # 158: 00000000 + # 15c: 00000100 + # 160: 00000000 + +# Function @ .irom0.text+0x164 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word @ -0x8 +# (local3): word @ -0x4 + .balign 4 +.Lfunc003: movi a4, 0xfff8ffff # 164: 41faff + addi sp, sp, -16 /* (local0) */ # 167: 12c1f0 + s32i a14, sp, 12 /* a14 -> [(local3)] */ # 16a: e931 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 16c: c911 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 16e: d921 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 170: 0901 + mov a13, a3 /* arg1 */ # 172: dd03 + l32i a0, a2, 188 /* [arg0+0xbc] */ # 174: 02222f + mov a12, a2 /* arg0 */ # 177: cd02 + l32i a2, a0, 0 /* [[arg0+0xbc]] */ # 179: 2800 + movi a14, 0x00060000 # 17b: e1f5ff + and a4, a2, a4 # 17e: 404210 + or a4, a3, a4 # 181: 404320 + beq a4, a2, .Lbr007 # 184: 27142b + movi a2, g_ic # 187: 21f3ff + l16ui a3, a0, 4 /* [[arg0+0xbc]+0x4] */ # 18a: 321002 + call0 ieee80211_find_channel # 18d: 01f4ffc0 + # 191: 0000 + bnez a2, .Lbr005 # 193: ccd2 + bnone a14, a13, .Lbr005 # 195: d70e0b + movi a2, g_ic # 198: 21f0ff + l32i a3, a12, 188 /* [arg0+0xbc] */ # 19b: 322c2f + movi a4, 0x00010000 # 19e: 41efff + call0 .Lfunc001 # 1a1: 85f2ff +.Lbr005: l32i a0, a12, 188 /* [arg0+0xbc] */ # 1a4: 022c2f + beqz a2, .Lbr006 # 1a7: 8c62 + beq a0, a2, .Lbr006 # 1a9: 271004 + mov a0, a2 # 1ac: 0d02 + s32i a2, a12, 188 /* a2 -> [arg0+0xbc] */ # 1ae: 226c2f +.Lbr006: l32i a2, a0, 0 # 1b1: 2800 +.Lbr007: l32i a0, sp, 0 /* [(local0)] */ # 1b3: 0801 + l32i a13, sp, 8 /* [(local2)] */ # 1b5: d821 + movi a6, 40 /* 0x00000028 */ # 1b7: 2c86 + movi a5, 20 /* 0x00000014 */ # 1b9: 1c45 + and a7, a2, a14 # 1bb: e07210 + movnez a5, a6, a7 # 1be: 705693 + l32i a14, sp, 12 /* [(local3)] */ # 1c1: e831 + s8i a5, a12, 199 /* a5 -> [arg0+0xc7] */ # 1c3: 524cc7 + l32i a12, sp, 4 /* [(local1)] */ # 1c6: c811 + addi sp, sp, 16 /* (top of frame) */ # 1c8: 12c110 + ret # 1cb: 0df0 + + .literal_position # 1d0: 00000000 + # 1d4: 00100000 + # 1d8: ffdfffff + # 1dc: ffefffff + # 1e0: ff7ffeff + # 1e4: 00000000 + # 1e8: 00800000 + # 1ec: 00000100 + # 1f0: 00000200 + # 1f4: 00000400 + # 1f8: fffff8ff + # 1fc: 00400000 + # 200: ffbfffff + # 204: 00200000 + +# Function @ .irom0.text+0x208 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word[4] @ -0x10 + .balign 4 + .global ieee80211_ht_updateparams + .type ieee80211_ht_updateparams, @function +ieee80211_ht_updateparams: + addi sp, sp, -32 /* (local0) */ # 208: 12c1e0 + s32i a14, sp, 12 /* a14 -> [(local3)] */ # 20b: e931 + s32i a15, sp, 16 /* a15 -> [(local4)] */ # 20d: f941 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 20f: 0901 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 211: d921 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 213: c911 + mov a13, a4 /* arg2 */ # 215: dd04 + mov a12, a2 /* arg0 */ # 217: cd02 + call0 ieee80211_parse_htcap # 219: 050000 + l32i a0, a12, 72 /* [arg0+0x48] */ # 21c: 022c12 + movi a14, g_ic+0x238 # 21f: e1ecff + l16ui a2, a12, 192 /* [arg0+0xc0] */ # 222: 221c60 + addmi a3, a14, 512 /* g_ic+0x438 */ # 225: 32de02 + l16ui a3, a3, 216 /* [g_ic+0x510] */ # 228: 32136c + movi a8, 12 /* 0x0000000c */ # 22b: 0cc8 + bnone a8, a3, .Lbr010 # 22d: 370823 + movi a4, 0x00001000 # 230: 41e9ff + movi a3, 0xffffdfff # 233: 31e9ff + and a7, a2, a8 # 236: 807210 + bany a2, a8, .Lbr008 # 239: 878202 + j .Lbr018 # 23c: c63100 +.Lbr008: addi a5, a7, -4 # 23f: 52c7fc + beqz a5, .Lbr019 # 242: 16a50c + movi a4, 0xffffefff # 245: 41e5ff + and a0, a0, a4 # 248: 400010 + s32i a0, a12, 72 /* a0 -> [arg0+0x48] */ # 24b: 026c12 + and a0, a0, a3 # 24e: 300010 +.Lbr009: s32i a0, a12, 72 /* a0 -> [arg0+0x48] */ # 251: 026c12 +.Lbr010: movi a15, 0x00010000 # 254: f1e6ff + movi a5, 0xfffe7fff # 257: 51e2ff + movi a3, g_ic+0x200 # 25a: 31e2ff + and a0, a0, a5 # 25d: 500010 + s32i a0, a12, 72 /* a0 -> [arg0+0x48] */ # 260: 026c12 + bbci a2, 5, .Lbr011 # 263: 57620e + l32i a6, a3, 0x30c /* [g_ic+0x50c] */ # 266: 6223c3 + movi a7, 0x00008000 # 269: 71dfff + bbci a6, 26, .Lbr011 # 26c: a77605 + or a0, a0, a7 # 26f: 700020 + s32i a0, a12, 72 /* a0 -> [arg0+0x48] */ # 272: 026c12 +.Lbr011: bbci a2, 6, .Lbr012 # 275: 67620b + l32i a8, a3, 0x30c /* [g_ic+0x50c] */ # 278: 8223c3 + or a9, a0, a15 # 27b: f09020 + bbci a8, 27, .Lbr012 # 27e: b77802 + s32i a9, a12, 72 /* a9 -> [arg0+0x48] */ # 281: 926c12 +.Lbr012: l8ui a10, a13, 0 /* [arg2] */ # 284: a20d00 + movi a11, 221 /* 0x000000dd */ # 287: b2a0dd + bne a10, a11, .Lbr013 # 28a: b79a01 + addi a13, a13, 4 /* arg2+0x4 */ # 28d: 4bdd +.Lbr013: mov a2, a12 /* arg0 */ # 28f: 2d0c + mov a3, a13 # 291: 3d0d + call0 .Lfunc002 # 293: 45e9ff + l8ui a2, a13, 3 # 296: 220d03 + l32i a0, a14, 0x2d4 /* [g_ic+0x50c] */ # 299: 022eb5 + movi a3, 0 /* 0x00000000 */ # 29c: 0c03 + extui a4, a0, 19, 1 # 29e: 004305 + movnez a3, a15, a4 # 2a1: 403f93 + bbci a2, 2, .Lbr015 # 2a4: 276217 + bbci a0, 24, .Lbr015 # 2a7: 877014 + l8ui a0, a12, 196 /* [arg0+0xc4] */ # 2aa: 020cc4 + movi a5, 0x00040000 # 2ad: 51d1ff + bnei a0, 1, .Lbr014 # 2b0: 661005 + movi a3, 0x00020000 # 2b3: 31cfff + j .Lbr015 # 2b6: 460100 +.Lbr014: addi a6, a0, -3 /* [arg0+0xc4]-0x3 */ # 2b9: 62c0fd + moveqz a3, a5, a6 # 2bc: 603583 +.Lbr015: l32i a8, a12, 188 /* [arg0+0xbc] */ # 2bf: 822c2f + movi a9, 0xfff8ffff # 2c2: 91cdff + l32i a7, a8, 0 /* [[arg0+0xbc]] */ # 2c5: 7808 + mov a2, a12 /* arg0 */ # 2c7: 2d0c + and a7, a7, a9 # 2c9: 907710 + or a7, a3, a7 # 2cc: 707320 + s32i a7, a8, 0 /* a7 -> [[arg0+0xbc]] */ # 2cf: 7908 + call0 .Lfunc003 # 2d1: 05e9ff + l32i a15, sp, 16 /* [(local4)] */ # 2d4: f841 + l8ui a10, a13, 3 # 2d6: a20d03 + l32i a13, sp, 8 /* [(local2)] */ # 2d9: d821 + bbci a10, 3, .Lbr017 # 2db: 376a1c + l32i a11, a14, 0x2d4 /* [g_ic+0x50c] */ # 2de: b22eb5 + movi a2, 0x00004000 # 2e1: 21c6ff + bbci a11, 29, .Lbr017 # 2e4: d77b13 + l32i a0, a12, 72 /* [arg0+0x48] */ # 2e7: 022c12 + or a0, a0, a2 # 2ea: 200020 +.Lbr016: s32i a0, a12, 72 /* a0 -> [arg0+0x48] */ # 2ed: 026c12 + l32i a14, sp, 12 /* [(local3)] */ # 2f0: e831 + l32i a12, sp, 4 /* [(local1)] */ # 2f2: c811 + l32i a0, sp, 0 /* [(local0)] */ # 2f4: 0801 + addi sp, sp, 32 /* (top of frame) */ # 2f6: 12c120 + ret # 2f9: 0df0 +.Lbr017: movi a2, 0xffffbfff # 2fb: 21c1ff + l32i a0, a12, 72 /* [arg0+0x48] */ # 2fe: 022c12 + and a0, a0, a2 # 301: 200010 + j .Lbr016 # 304: 46f9ff +.Lbr018: or a0, a0, a4 # 307: 400020 + and a0, a0, a3 # 30a: 300010 + j .Lbr009 # 30d: 06d0ff +.Lbr019: movi a3, 0x00002000 # 310: 31bdff + or a0, a0, a4 # 313: 400020 + or a0, a0, a3 # 316: 300020 + j .Lbr009 # 319: 06cdff + + .literal_position # 31c: 00000000 + # 320: 00000001 + # 324: 00000000 + # 328: 00000000 + +# Function @ .irom0.text+0x32c +# Local variables/stack: +# (local0): word @ -0x30 +# (local1): word @ -0x2c +# (local2): word @ -0x28 +# (local3): word @ -0x24 +# (local4): word @ -0x20 +# (local5): word @ -0x1c +# (local6): word @ -0x18 +# (local7): word @ -0x14 +# (local8): word @ -0x10 +# (local9): word[3] @ -0xc + .balign 4 + .global ieee80211_setup_htrates + .type ieee80211_setup_htrates, @function +ieee80211_setup_htrates: + addi sp, sp, -48 /* (local0) */ # 32c: 12c1d0 + s32i a12, sp, 8 /* a12 -> [(local2)] */ # 32f: c921 + s32i a13, sp, 12 /* a13 -> [(local3)] */ # 331: d931 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 333: 0911 + s32i a2, sp, 36 /* arg0 -> [(local9)] */ # 335: 2991 + s32i a14, sp, 16 /* a14 -> [(local4)] */ # 337: e941 + s32i a15, sp, 20 /* a15 -> [(local5)] */ # 339: f951 + mov a14, a3 /* arg1 */ # 33b: ed03 + mov a15, a2 /* arg0 */ # 33d: fd02 + movi a3, -1 /* 0xffffffff */ # 33f: 7cf3 + movi a2, g_ic+0x14c # 341: 21f6ff + s32i a2, sp, 24 /* g_ic+0x14c -> [(local6)] */ # 344: 2961 + l8ui a0, a2, 130 /* [g_ic+0x1ce] */ # 346: 020282 + l32i a2, a2, 124 /* [g_ic+0x1c8] */ # 349: 22221f + addx8 a3, a0, a3 # 34c: 3030b0 + s32i a3, sp, 32 /* a3 -> [(local8)] */ # 34f: 3981 + bbci a2, 23, .Lbr022 # 351: 77721b + movi a3, 38 /* 0x00000026 */ # 354: 2c63 + l32i a2, sp, 0 /* [(local0)] */ # 356: 2801 + bgeui a0, 2, .Lbr020 # 358: f62001 + mov a3, a2 /* [(local0)] */ # 35b: 3d02 +.Lbr020: movi a2, 52 /* 0x00000034 */ # 35d: 3c42 + bgeui a0, 3, .Lbr021 # 35f: f63001 + mov a2, a3 # 362: 2d03 +.Lbr021: movi a3, 76 /* 0x0000004c */ # 364: 4cc3 + s32i a3, sp, 28 /* 0x0000004c -> [(local7)] */ # 366: 3971 + bgeui a0, 4, .Lbr023 # 368: f64008 + s32i a2, sp, 28 /* a2 -> [(local7)] */ # 36b: 2971 + j .Lbr023 # 36d: c60000 +.Lbr022: movi a5, 0 /* 0x00000000 */ # 370: 0c05 + s32i a5, sp, 28 /* 0x00000000 -> [(local7)] */ # 372: 5971 +.Lbr023: movi a3, 0 /* 0x00000000 */ # 374: 0c03 + movi a4, 128 /* 0x00000080 */ # 376: 42a080 + movi a2, 200 /* 0x000000c8 */ # 379: 22a0c8 + add a2, a15, a2 /* arg0+0xc8 */ # 37c: 2a2f + call0 memset # 37e: 01e9ffc0 + # 382: 0000 + beqz a14, .Lbr030 # 384: 164e06 + movi a12, 0 /* 0x00000000 */ # 387: 0c0c + l8ui a3, a14, 0 /* [arg1] */ # 389: 320e00 + movi a4, 221 /* 0x000000dd */ # 38c: 42a0dd + bne a3, a4, .Lbr024 # 38f: 479301 + addi a14, a14, 4 /* arg1+0x4 */ # 392: 4bee +.Lbr024: movi a13, 127 /* 0x0000007f */ # 394: d2a07f +.Lbr025: mov a2, a12 # 397: 2d0c + movi a3, 8 /* 0x00000008 */ # 399: 0c83 + call0 __modsi3 # 39b: 01e3ffc0 + # 39f: 0000 + addi a6, a12, 7 # 3a1: 7b6c + movgez a6, a12, a12 # 3a3: c06cb3 + srai a6, a6, 3 # 3a6: 606321 + add a6, a14, a6 # 3a9: 6a6e + l8ui a6, a6, 5 # 3ab: 620605 + ssr a2 # 3ae: 000240 + sra a6, a6 # 3b1: 6060b1 + bbci a6, 0, .Lbr029 # 3b4: 07662f + l8ui a0, a15, 200 /* [arg0+0xc8] */ # 3b7: 020fc8 + beq a0, a13, .Lbr030 # 3ba: d7102e + bgei a12, 32, .Lbr026 # 3bd: e6cc04 + l32i a7, sp, 32 /* [(local8)] */ # 3c0: 7881 + blt a7, a12, .Lbr029 # 3c2: c72721 +.Lbr026: bnei a12, 32, .Lbr027 # 3c5: 66cc0a + l32i a8, sp, 24 /* [(local6)] */ # 3c8: 8861 + movi a9, 0x01000000 # 3ca: 91d5ff + l32i a8, a8, 124 /* [[(local6)]+0x7c] */ # 3cd: 82281f + bnone a8, a9, .Lbr029 # 3d0: 970813 +.Lbr027: movi a9, 32 /* 0x00000020 */ # 3d3: 2c09 + bge a9, a12, .Lbr028 # 3d5: c7a904 + l32i a10, sp, 28 /* [(local7)] */ # 3d8: a871 + blt a10, a12, .Lbr029 # 3da: c72a09 +.Lbr028: add a11, a0, a15 # 3dd: fab0 + addi a2, a0, 1 /* [arg0+0xc8]+0x1 */ # 3df: 1b20 + s8i a2, a15, 200 /* [arg0+0xc8]+0x1 -> [arg0+0xc8] */ # 3e1: 224fc8 + s8i a12, a11, 201 # 3e4: c24bc9 +.Lbr029: addi a12, a12, 1 # 3e7: 1bcc + bne a12, a13, .Lbr025 # 3e9: d79caa +.Lbr030: movi a2, 0 /* 0x00000000 */ # 3ec: 0c02 + l32i a12, sp, 8 /* [(local2)] */ # 3ee: c821 + l32i a13, sp, 12 /* [(local3)] */ # 3f0: d831 + l32i a14, sp, 16 /* [(local4)] */ # 3f2: e841 + l32i a15, sp, 20 /* [(local5)] */ # 3f4: f851 + l32i a0, sp, 4 /* [(local1)] */ # 3f6: 0811 + addi sp, sp, 48 /* (top of frame) */ # 3f8: 12c130 + ret /* 0x00000000 */ # 3fb: 0df0 + + .literal_position # 400: 00000000 + +# Function @ .irom0.text+0x404 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word @ -0x10 +# (local5): word[3] @ -0xc + .balign 4 + .global ieee80211_setup_basic_htrates + .type ieee80211_setup_basic_htrates, @function +ieee80211_setup_basic_htrates: + addi sp, sp, -32 /* (local0) */ # 404: 12c1e0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 407: c911 + s32i a14, sp, 12 /* a14 -> [(local3)] */ # 409: e931 + s32i a15, sp, 16 /* a15 -> [(local4)] */ # 40b: f941 + s32i a3, sp, 20 /* arg1 -> [(local5)] */ # 40d: 3951 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 40f: d921 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 411: 0901 + mov a13, a2 /* arg0 */ # 413: dd02 + l8ui a0, a3, 0 /* [arg1] */ # 415: 020300 + movi a2, 221 /* 0x000000dd */ # 418: 22a0dd + bne a0, a2, .Lbr031 # 41b: 279003 + addi a2, a3, 4 /* arg1+0x4 */ # 41e: 4b23 + s32i a2, sp, 20 /* arg1+0x4 -> [(local5)] */ # 420: 2951 +.Lbr031: l8ui a12, a13, 200 /* [arg0+0xc8] */ # 422: c20dc8 + beqz a12, .Lbr036 # 425: 16cc04 + movi a14, 0 /* 0x00000000 */ # 428: 0c0e + movi a15, 128 /* 0x00000080 */ # 42a: f2a080 +.Lbr032: mov a2, a14 # 42d: 2d0e + movi a3, 8 /* 0x00000008 */ # 42f: 0c83 + call0 __modsi3 # 431: 01f3ffc0 + # 435: 0000 + movi a0, 127 /* 0x0000007f */ # 437: 02a07f + l32i a4, sp, 20 /* [(local5)] */ # 43a: 4851 + addi a5, a14, 7 # 43c: 7b5e + movgez a5, a14, a14 # 43e: e05eb3 + srai a5, a5, 3 # 441: 505321 + add a4, a4, a5 # 444: 5a44 + l8ui a4, a4, 8 # 446: 420408 + ssr a2 # 449: 000240 + sra a4, a4 # 44c: 4040b1 + bbci a4, 0, .Lbr035 # 44f: 07641d + blti a12, 1, .Lbr035 # 452: a61c1a + movi a2, 0 /* 0x00000000 */ # 455: 0c02 +.Lbr033: add a7, a2, a13 # 457: da72 + l8ui a6, a7, 201 # 459: 6207c9 + addi a2, a2, 1 # 45c: 1b22 + extui a8, a6, 0, 7 # 45e: 608064 + bne a14, a8, .Lbr034 # 461: 879e08 + or a9, a6, a15 # 464: f09620 + s8i a9, a7, 201 # 467: 9247c9 + l8ui a12, a13, 200 /* [arg0+0xc8] */ # 46a: c20dc8 +.Lbr034: blt a2, a12, .Lbr033 # 46d: c722e6 +.Lbr035: addi a14, a14, 1 # 470: 1bee + bne a14, a0, .Lbr032 # 472: 079eb7 +.Lbr036: l32i a12, sp, 4 /* [(local1)] */ # 475: c811 + l32i a13, sp, 8 /* [(local2)] */ # 477: d821 + l32i a14, sp, 12 /* [(local3)] */ # 479: e831 + l32i a15, sp, 16 /* [(local4)] */ # 47b: f841 + l32i a0, sp, 0 /* [(local0)] */ # 47d: 0801 + addi sp, sp, 32 /* (top of frame) */ # 47f: 12c120 + ret # 482: 0df0 + + .literal_position # 484: 00000000 + # 488: 00000000 + # 48c: 00000000 + # 490: 00000000 + +# Function @ .irom0.text+0x494 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word @ -0x10 +# (local5): word @ -0xc +# (local6): word[2] @ -0x8 + .balign 4 +.Lfunc004: movi a7, 1174 /* 0x00000496 */ # 494: 72a496 + movi a5, 332 /* 0x0000014c */ # 497: 52a14c + addi sp, sp, -32 /* (local0) */ # 49a: 12c1e0 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 49d: d921 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 49f: c911 + s32i a15, sp, 16 /* a15 -> [(local4)] */ # 4a1: f941 + s32i a14, sp, 12 /* a14 -> [(local3)] */ # 4a3: e931 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 4a5: 0901 + add a5, a2, a5 /* arg0+0x14c */ # 4a7: 5a52 + s32i a5, sp, 20 /* arg0+0x14c -> [(local5)] */ # 4a9: 5951 + movi a0, 1 /* 0x00000001 */ # 4ab: 0c10 + mov a14, a3 /* arg1 */ # 4ad: ed03 + movi a15, 384 /* 0x00000180 */ # 4af: f2a180 + add a15, a2, a15 /* arg0+0x180 */ # 4b2: faf2 + add a2, a2, a7 /* arg0+0x496 */ # 4b4: 7a22 + l8ui a6, a2, 128 /* [arg0+0x516] */ # 4b6: 620280 + s8i a6, a5, 130 /* [arg0+0x516] -> [arg0+0x1ce] */ # 4b9: 624582 + l8ui a4, a2, 129 /* [arg0+0x517] */ # 4bc: 420281 + s8i a4, a5, 129 /* [arg0+0x517] -> [arg0+0x1cd] */ # 4bf: 424581 + l8ui a3, a15, 77 /* [arg0+0x1cd] */ # 4c2: 320f4d + s32i a2, sp, 24 /* arg0+0x496 -> [(local6)] */ # 4c5: 2961 + slli a3, a3, 3 # 4c7: d03311 + blti a3, 1, .Lbr038 # 4ca: a61333 + movi a12, 0 /* 0x00000000 */ # 4cd: 0c0c +.Lbr037: mov a2, a12 # 4cf: 2d0c + movi a3, 8 /* 0x00000008 */ # 4d1: 0c83 + addi a13, a12, 7 # 4d3: 7bdc + movgez a13, a12, a12 # 4d5: c0dcb3 + srai a13, a13, 3 # 4d8: d0d321 + add a13, a14, a13 # 4db: dade + call0 __modsi3 # 4dd: 01e9ffc0 + # 4e1: 0000 + l8ui a3, a13, 0 # 4e3: 320d00 + ssl a2 # 4e6: 001240 + movi a0, 1 /* 0x00000001 */ # 4e9: 0c10 + sll a4, a0 # 4eb: 0040a1 + or a3, a3, a4 # 4ee: 403320 + s8i a3, a13, 0 # 4f1: 324d00 + l8ui a2, a15, 77 /* [arg0+0x1cd] */ # 4f4: 220f4d + addi a12, a12, 1 # 4f7: 1bcc + slli a2, a2, 3 # 4f9: d02211 + blt a12, a2, .Lbr037 # 4fc: 272ccf + l32i a2, sp, 24 /* [(local6)] */ # 4ff: 2861 +.Lbr038: l16ui a5, a2, 120 # 501: 52123c + l16ui a6, a2, 118 # 504: 62123b + slli a5, a5, 16 # 507: 005511 + l32i a2, sp, 20 /* [(local5)] */ # 50a: 2851 + or a5, a5, a6 # 50c: 605520 + l32i a2, a2, 124 /* [[(local5)]+0x7c] */ # 50f: 22221f + bbci a5, 24, .Lbr039 # 512: 877510 + bbci a2, 22, .Lbr039 # 515: 67720d + l8ui a3, a14, 4 /* [arg1+0x4] */ # 518: 320e04 + l32i a2, sp, 20 /* [(local5)] */ # 51b: 2851 + or a3, a3, a0 # 51d: 003320 + s8i a3, a14, 4 /* a3 -> [arg1+0x4] */ # 520: 324e04 + l32i a2, a2, 124 /* [[(local5)]+0x7c] */ # 523: 22221f +.Lbr039: extui a4, a2, 21, 1 # 526: 204505 + beqz a4, .Lbr045 # 529: 16940a + l32i a2, sp, 20 /* [(local5)] */ # 52c: 2851 + movi a12, 33 /* 0x00000021 */ # 52e: 2c1c + l8ui a2, a2, 129 /* [[(local5)]+0x81] */ # 530: 220281 + movi a15, 39 /* 0x00000027 */ # 533: 2c7f + bltui a2, 2, .Lbr041 # 535: b6222e +.Lbr040: mov a2, a12 # 538: 2d0c + movi a3, 8 /* 0x00000008 */ # 53a: 0c83 + addi a13, a12, 7 # 53c: 7bdc + movgez a13, a12, a12 # 53e: c0dcb3 + srai a13, a13, 3 # 541: d0d321 + add a13, a14, a13 # 544: dade + call0 __modsi3 # 546: 01d0ffc0 + # 54a: 0000 + addi a12, a12, 1 # 54c: 1bcc + ssl a2 # 54e: 001240 + movi a0, 1 /* 0x00000001 */ # 551: 0c10 + l8ui a2, a13, 0 # 553: 220d00 + sll a3, a0 # 556: 0030a1 + or a2, a2, a3 # 559: 302220 + s8i a2, a13, 0 # 55c: 224d00 + bne a12, a15, .Lbr040 # 55f: f79cd5 + l32i a2, sp, 20 /* [(local5)] */ # 562: 2851 + l8ui a2, a2, 129 /* [[(local5)]+0x81] */ # 564: 220281 +.Lbr041: bltui a2, 3, .Lbr043 # 567: b6322d + movi a15, 53 /* 0x00000035 */ # 56a: 3c5f + movi a12, 39 /* 0x00000027 */ # 56c: 2c7c +.Lbr042: mov a2, a12 # 56e: 2d0c + movi a3, 8 /* 0x00000008 */ # 570: 0c83 + addi a13, a12, 7 # 572: 7bdc + movgez a13, a12, a12 # 574: c0dcb3 + srai a13, a13, 3 # 577: d0d321 + add a13, a14, a13 # 57a: dade + call0 __modsi3 # 57c: 01c4ffc0 + # 580: 0000 + addi a12, a12, 1 # 582: 1bcc + ssl a2 # 584: 001240 + movi a0, 1 /* 0x00000001 */ # 587: 0c10 + l8ui a2, a13, 0 # 589: 220d00 + sll a3, a0 # 58c: 0030a1 + or a2, a2, a3 # 58f: 302220 + s8i a2, a13, 0 # 592: 224d00 + bne a12, a15, .Lbr042 # 595: f79cd5 +.Lbr043: l32i a2, sp, 20 /* [(local5)] */ # 598: 2851 + l8ui a2, a2, 130 /* [[(local5)]+0x82] */ # 59a: 220282 + bltui a2, 4, .Lbr046 # 59d: b6423a + movi a12, 53 /* 0x00000035 */ # 5a0: 3c5c + movi a15, 77 /* 0x0000004d */ # 5a2: 4cdf +.Lbr044: mov a2, a12 # 5a4: 2d0c + movi a3, 8 /* 0x00000008 */ # 5a6: 0c83 + addi a13, a12, 7 # 5a8: 7bdc + movgez a13, a12, a12 # 5aa: c0dcb3 + srai a13, a13, 3 # 5ad: d0d321 + add a13, a14, a13 # 5b0: dade + call0 __modsi3 # 5b2: 01b7ffc0 + # 5b6: 0000 + addi a12, a12, 1 # 5b8: 1bcc + ssl a2 # 5ba: 001240 + l8ui a0, a13, 0 # 5bd: 020d00 + movi a2, 1 /* 0x00000001 */ # 5c0: 0c12 + sll a2, a2 # 5c2: 0022a1 + or a0, a0, a2 # 5c5: 200020 + s8i a0, a13, 0 # 5c8: 024d00 + bne a12, a15, .Lbr044 # 5cb: f79cd5 + l32i a2, sp, 20 /* [(local5)] */ # 5ce: 2851 + l8ui a2, a2, 130 /* [[(local5)]+0x82] */ # 5d0: 220282 + j .Lbr046 # 5d3: 060100 +.Lbr045: l32i a2, sp, 20 /* [(local5)] */ # 5d6: 2851 + l8ui a2, a2, 130 /* [[(local5)]+0x82] */ # 5d8: 220282 +.Lbr046: l32i a12, sp, 4 /* [(local1)] */ # 5db: c811 + l32i a0, sp, 20 /* [(local5)] */ # 5dd: 0851 + l32i a13, sp, 8 /* [(local2)] */ # 5df: d821 + l8ui a3, a0, 129 /* [[(local5)]+0x81] */ # 5e1: 320081 + l32i a15, sp, 16 /* [(local4)] */ # 5e4: f841 + beq a3, a2, .Lbr047 # 5e6: 271317 + l32i a4, a0, 124 /* [[(local5)]+0x7c] */ # 5e9: 42201f + movi a3, 3 /* 0x00000003 */ # 5ec: 0c33 + addi a0, a2, -1 /* [[(local5)]+0x82]-0x1 */ # 5ee: 0b02 + slli a0, a0, 2 # 5f0: e00011 + or a0, a0, a3 # 5f3: 300020 + bbci a4, 23, .Lbr048 # 5f6: 777409 + movi a2, 16 /* 0x00000010 */ # 5f9: 1c02 + or a0, a0, a2 # 5fb: 200020 + j .Lbr048 # 5fe: 460000 +.Lbr047: movi a0, 1 /* 0x00000001 */ # 601: 0c10 +.Lbr048: s8i a0, a14, 12 /* a0 -> [arg1+0xc] */ # 603: 024e0c + l32i a14, sp, 12 /* [(local3)] */ # 606: e831 + l32i a0, sp, 0 /* [(local0)] */ # 608: 0801 + addi sp, sp, 32 /* (top of frame) */ # 60a: 12c120 + ret # 60d: 0df0 + + .literal_position # 610: 00000000 + # 614: 00000000 + # 618: 00000400 + # 61c: 00000100 + # 620: 00000200 + # 624: fdff0000 + # 628: dfff0000 + # 62c: bfff0000 + # 630: ffff0000 + # 634: 00000200 + # 638: 00000400 + # 63c: fdff0000 + # 640: 00000000 + +# Function @ .irom0.text+0x644 +# Local variables/stack: +# (local0): word @ -0x30 +# (local1): word @ -0x2c +# (local2): word @ -0x28 +# (local3): word @ -0x24 +# (local4): word @ -0x20 +# (local5): word @ -0x1c +# (local6): word @ -0x18 +# (local7): word @ -0x14 +# (local8): word[4] @ -0x10 + .balign 4 +.Lfunc005: addi sp, sp, -48 /* (local0) */ # 644: 12c1d0 + s32i a0, sp, 16 /* a0 -> [(local4)] */ # 647: 0941 + s32i a14, sp, 28 /* a14 -> [(local7)] */ # 649: e971 + s32i a12, sp, 20 /* a12 -> [(local5)] */ # 64b: c951 + s32i a13, sp, 24 /* a13 -> [(local6)] */ # 64d: d961 + movi a12, g_ic # 64f: c1f1ff + mov a13, a2 /* arg0 */ # 652: dd02 + movi a14, g_ic+0x23c # 654: e1efff + mov a2, a3 /* arg1 */ # 657: 2d03 + l32i a5, a14, 0x2d0 /* [g_ic+0x50c] */ # 659: 522eb4 + addmi a0, a14, 512 /* g_ic+0x43c */ # 65c: 02de02 + l16ui a0, a0, 212 /* [g_ic+0x510] */ # 65f: 02106a + extui a6, a5, 20, 2 # 662: 506415 + bbci a5, 19, .Lbr049 # 665: 37750b + movi a4, 0x00040000 # 668: 41ecff + l32i a3, a12, 0x1c8 /* [g_ic+0x1c8] */ # 66b: 322c72 + or a3, a3, a4 # 66e: 403320 + s32i a3, a12, 0x1c8 /* a3 -> [g_ic+0x1c8] */ # 671: 326c72 +.Lbr049: extui a9, a5, 22, 2 # 674: 509615 + beqz a6, .Lbr050 # 677: 8ca6 + movi a8, 0x00010000 # 679: 81e8ff + l32i a7, a12, 0x1c8 /* [g_ic+0x1c8] */ # 67c: 722c72 + or a7, a7, a8 # 67f: 807720 + s32i a7, a12, 0x1c8 /* a7 -> [g_ic+0x1c8] */ # 682: 726c72 +.Lbr050: movi a7, 0x0000fffd # 685: 71e7ff + l32i a3, a2, 188 /* [arg1+0xbc] */ # 688: 32222f + beqz a9, .Lbr051 # 68b: 8ca9 + movi a11, 0x00020000 # 68d: b1e4ff + l32i a10, a12, 0x1c8 /* [g_ic+0x1c8] */ # 690: a22c72 + or a10, a10, a11 # 693: b0aa20 + s32i a10, a12, 0x1c8 /* a10 -> [g_ic+0x1c8] */ # 696: a26c72 +.Lbr051: l32i a4, a2, 176 /* [arg1+0xb0] */ # 699: 42222c + movi a10, 2 /* 0x00000002 */ # 69c: 0c2a + bnez a4, .Lbr052 # 69e: dc04 + extui a6, a5, 24, 1 # 6a0: 506805 + addmi a8, a14, 512 /* g_ic+0x43c */ # 6a3: 82de02 + l16ui a8, a8, 214 /* [g_ic+0x512] */ # 6a6: 82186b + beqz a6, .Lbr058 # 6a9: 160609 + or a0, a0, a10 # 6ac: a00020 + j .Lbr059 # 6af: 462300 +.Lbr052: movi a6, 0 /* 0x00000000 */ # 6b2: 0c06 + movi a2, 0 /* 0x00000000 */ # 6b4: 0c02 + and a8, a0, a7 # 6b6: 708010 + l32i a11, a3, 0 /* [[arg1+0xbc]] */ # 6b9: b803 + or a0, a0, a10 # 6bb: a00020 + extui a11, a11, 17, 2 # 6be: b0b115 + moveqz a0, a8, a11 # 6c1: b00883 +.Lbr053: movi a3, 28 /* 0x0000001c */ # 6c4: 1cc3 + bbsi a5, 26, .Lbr054 # 6c6: a7f508 + movi a4, 0x0000ffdf # 6c9: 41d7ff + and a0, a0, a4 # 6cc: 400010 + j .Lbr055 # 6cf: 060100 +.Lbr054: movi a7, 32 /* 0x00000020 */ # 6d2: 2c07 + or a0, a0, a7 # 6d4: 700020 +.Lbr055: bbci a5, 27, .Lbr057 # 6d7: b77557 + bbci a0, 1, .Lbr057 # 6da: 176054 + movi a8, 64 /* 0x00000040 */ # 6dd: 4c08 + or a0, a0, a8 # 6df: 800020 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 6e2: 0901 +.Lbr056: movi a4, 23 /* 0x00000017 */ # 6e4: 1c74 + extui a9, a2, 0, 2 # 6e6: 209014 + slli a10, a6, 2 # 6e9: e0a611 + l32i a11, sp, 0 /* [(local0)] */ # 6ec: b801 + s8i a11, a13, 0 /* [(local0)] -> [arg0] */ # 6ee: b24d00 + and a10, a10, a3 # 6f1: 30aa10 + addi a2, a13, 3 /* arg0+0x3 */ # 6f4: 3b2d + movi a3, 0 /* 0x00000000 */ # 6f6: 0c03 + s32i a2, sp, 12 /* arg0+0x3 -> [(local3)] */ # 6f8: 2931 + or a9, a9, a10 # 6fa: a09920 + srli a11, a11, 8 # 6fd: b0b841 + s8i a11, a13, 1 /* a11 -> [arg0+0x1] */ # 700: b24d01 + s8i a9, a13, 2 /* a9 -> [arg0+0x2] */ # 703: 924d02 + call0 memset # 706: 01ceffc0 + # 70a: 0000 + mov a2, a12 /* g_ic */ # 70c: 2d0c + l32i a3, sp, 12 /* [(local3)] */ # 70e: 3831 + call0 .Lfunc004 # 710: 05d8ff + l32i a0, sp, 16 /* [(local4)] */ # 713: 0841 + addi a2, a13, 26 /* arg0+0x1a */ # 715: 22cd1a + addmi a12, a14, 512 /* g_ic+0x43c */ # 718: c2de02 + l16ui a12, a12, 216 /* [g_ic+0x514] */ # 71b: c21c6c + s8i a12, a13, 19 /* [g_ic+0x514] -> [arg0+0x13] */ # 71e: c24d13 + l32i a14, sp, 28 /* [(local7)] */ # 721: e871 + srli a12, a12, 8 # 723: c0c841 + s8i a12, a13, 20 /* a12 -> [arg0+0x14] */ # 726: c24d14 + l32i a12, sp, 20 /* [(local5)] */ # 729: c851 + l32i a13, sp, 24 /* [(local6)] */ # 72b: d861 + addi sp, sp, 48 /* (top of frame) */ # 72d: 12c130 + ret /* arg0+0x1a */ # 730: 0df0 +.Lbr057: movi a4, 0x0000ffbf # 732: 41beff + and a0, a0, a4 # 735: 400010 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 738: 0901 + j .Lbr056 # 73a: 86e9ff +.Lbr058: and a0, a0, a7 # 73d: 700010 +.Lbr059: srli a11, a8, 2 # 740: 80b241 + l8ui a6, a2, 194 /* [arg1+0xc2] */ # 743: 6202c2 + extui a9, a8, 0, 2 # 746: 809014 + srli a4, a6, 2 # 749: 604241 + extui a5, a6, 0, 2 # 74c: 605014 + s32i a5, sp, 8 /* a5 -> [(local2)] */ # 74f: 5921 + bge a9, a5, .Lbr060 # 751: 57a901 + s32i a9, sp, 8 /* a9 -> [(local2)] */ # 754: 9921 +.Lbr060: s32i a0, sp, 0 /* a0 -> [(local0)] */ # 756: 0901 + s32i a2, sp, 4 /* arg1 -> [(local1)] */ # 758: 2911 + movi a5, 28 /* 0x0000001c */ # 75a: 1cc5 + and a4, a4, a5 # 75c: 504410 + and a11, a11, a5 # 75f: 50bb10 + blt a11, a4, .Lbr061 # 762: 472b01 + mov a6, a8 /* [g_ic+0x512] */ # 765: 6d08 +.Lbr061: extui a8, a6, 2, 3 # 767: 608224 + movi a5, 0x0000ffff # 76a: 51b1ff + s32i a8, sp, 32 /* a8 -> [(local8)] */ # 76d: 8981 + beq a3, a5, .Lbr062 # 76f: 571323 + mov a2, a12 /* g_ic */ # 772: 2d0c + movi a4, 0x00020000 # 774: 41b0ff + call0 .Lfunc001 # 777: 4595ff + l32i a0, sp, 0 /* [(local0)] */ # 77a: 0801 + bnez a2, .Lbr062 # 77c: dc62 + mov a2, a12 /* g_ic */ # 77e: 2d0c + l32i a3, sp, 4 /* [(local1)] */ # 780: 3811 + movi a4, 0x00040000 # 782: 41adff + l32i a3, a3, 188 /* [[(local1)]+0xbc] */ # 785: 32232f + call0 .Lfunc001 # 788: 0594ff + movi a4, 0x0000fffd # 78b: 41acff + l32i a0, sp, 0 /* [(local0)] */ # 78e: 0801 + and a4, a0, a4 # 790: 404010 + moveqz a0, a4, a2 # 793: 200483 +.Lbr062: l32i a2, sp, 8 /* [(local2)] */ # 796: 2821 + l32i a6, sp, 32 /* [(local8)] */ # 798: 6881 + l32i a5, a14, 0x2d0 /* [g_ic+0x50c] */ # 79a: 522eb4 + j .Lbr053 # 79d: c6c8ff + +# Function @ .irom0.text+0x7a0 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global ieee80211_add_htcap + .type ieee80211_add_htcap, @function +ieee80211_add_htcap: + addi sp, sp, -16 /* (local0) */ # 7a0: 12c1f0 + movi a4, 45 /* 0x0000002d */ # 7a3: 2cd4 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 7a5: 0901 + movi a0, 26 /* 0x0000001a */ # 7a7: 1ca0 + s8i a4, a2, 0 /* 0x2d -> [arg0] */ # 7a9: 424200 + s8i a0, a2, 1 /* 0x1a -> [arg0+0x1] */ # 7ac: 024201 + addi a2, a2, 2 /* arg0+0x2 */ # 7af: 2b22 + call0 .Lfunc005 # 7b1: 05e9ff + l32i a0, sp, 0 /* [(local0)] */ # 7b4: 0801 + addi sp, sp, 16 /* (top of frame) */ # 7b6: 12c110 + ret # 7b9: 0df0 + + .balign 4 +# Function @ .irom0.text+0x7bc +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global ieee80211_add_htcap_vendor + .type ieee80211_add_htcap_vendor, @function +ieee80211_add_htcap_vendor: + movi a4, 76 /* 0x0000004c */ # 7bc: 4cc4 + movi a5, -112 /* 0xffffff90 */ # 7be: 52af90 + movi a6, 0 /* 0x00000000 */ # 7c1: 0c06 + movi a7, 30 /* 0x0000001e */ # 7c3: 1ce7 + movi a8, -35 /* 0xffffffdd */ # 7c5: 82afdd + addi sp, sp, -16 /* (local0) */ # 7c8: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 7cb: 0901 + s8i a8, a2, 0 /* 0xdd -> [arg0] */ # 7cd: 824200 + s8i a7, a2, 1 /* 0x1e -> [arg0+0x1] */ # 7d0: 724201 + s8i a6, a2, 2 /* 0x00 -> [arg0+0x2] */ # 7d3: 624202 + s8i a5, a2, 3 /* 0x90 -> [arg0+0x3] */ # 7d6: 524203 + movi a0, 51 /* 0x00000033 */ # 7d9: 3c30 + s8i a4, a2, 4 /* 0x4c -> [arg0+0x4] */ # 7db: 424204 + s8i a0, a2, 5 /* 0x33 -> [arg0+0x5] */ # 7de: 024205 + addi a2, a2, 6 /* arg0+0x6 */ # 7e1: 6b22 + call0 .Lfunc005 # 7e3: 05e6ff + l32i a0, sp, 0 /* [(local0)] */ # 7e6: 0801 + addi sp, sp, 16 /* (top of frame) */ # 7e8: 12c110 + ret # 7eb: 0df0 + + .literal_position # 7f0: 00000000 + +# Function @ .irom0.text+0x7f4 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word @ -0x10 +# (local5): word[3] @ -0xc + .balign 4 +.Lfunc006: addi sp, sp, -32 /* (local0) */ # 7f4: 12c1e0 + s32i a15, sp, 20 /* a15 -> [(local5)] */ # 7f7: f951 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 7f9: 0911 + s32i a13, sp, 12 /* a13 -> [(local3)] */ # 7fb: d931 + s32i a12, sp, 8 /* a12 -> [(local2)] */ # 7fd: c921 + mov a13, a3 /* arg1 */ # 7ff: dd03 + l8ui a3, a3, 0 /* [arg1] */ # 801: 320300 + s32i a14, sp, 16 /* a14 -> [(local4)] */ # 804: e941 + blti a3, 1, .Lbr065 # 806: a61341 + movi a14, 126 /* 0x0000007e */ # 809: e2a07e + movi a12, 0 /* 0x00000000 */ # 80c: 0c0c + s32i a2, sp, 0 /* arg0 -> [(local0)] */ # 80e: 2901 +.Lbr063: add a4, a12, a13 # 810: da4c + l8ui a4, a4, 1 # 812: 420401 + extui a2, a4, 0, 7 # 815: 402064 + bbci a4, 7, .Lbr064 # 818: 77642a + blt a14, a2, .Lbr064 # 81b: 272e27 + movi a3, 8 /* 0x00000008 */ # 81e: 0c83 + l32i a15, sp, 0 /* [(local0)] */ # 820: f801 + addi a0, a2, 7 # 822: 7b02 + movgez a0, a2, a2 # 824: 2002b3 + srai a0, a0, 3 # 827: 000321 + add a15, a15, a0 # 82a: 0aff + call0 __modsi3 # 82c: 01f1ffc0 + # 830: 0000 + movi a0, 1 /* 0x00000001 */ # 832: 0c10 + ssl a2 # 834: 001240 + l8ui a2, a15, 0 # 837: 220f00 + sll a3, a0 # 83a: 0030a1 + or a2, a2, a3 # 83d: 302220 + s8i a2, a15, 0 # 840: 224f00 + l8ui a3, a13, 0 /* [arg1] */ # 843: 320d00 +.Lbr064: addi a12, a12, 1 # 846: 1bcc + blt a12, a3, .Lbr063 # 848: 372cc4 +.Lbr065: l32i a12, sp, 8 /* [(local2)] */ # 84b: c821 + l32i a13, sp, 12 /* [(local3)] */ # 84d: d831 + l32i a14, sp, 16 /* [(local4)] */ # 84f: e841 + l32i a15, sp, 20 /* [(local5)] */ # 851: f851 + l32i a0, sp, 4 /* [(local1)] */ # 853: 0811 + addi sp, sp, 32 /* (top of frame) */ # 855: 12c120 + ret # 858: 0df0 + + .literal_position # 85c: 00000000 + # 860: 00000000 + # 864: 00000000 + +# Function @ .irom0.text+0x868 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 +.Lfunc007: movi a4, 22 /* 0x00000016 */ # 868: 1c64 + addi sp, sp, -16 /* (local0) */ # 86a: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 86d: 0901 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 86f: d921 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 871: c911 + mov a13, a3 /* arg1 */ # 873: dd03 + mov a12, a2 /* arg0 */ # 875: cd02 + movi a3, 0 /* 0x00000000 */ # 877: 0c03 + call0 memset # 879: 01f9ffc0 + # 87d: 0000 + l32i a2, a13, 188 /* [arg1+0xbc] */ # 87f: 222d2f + call0 ieee80211_chan2ieee # 882: 01f8ffc0 + # 886: 0000 + movi a0, g_ic+0x224 # 888: 01f5ff + s8i a2, a12, 0 /* a2 -> [arg0] */ # 88b: 224c00 + l32i a0, a0, 0x2e8 /* [g_ic+0x50c] */ # 88e: 0220ba + movi a2, 8 /* 0x00000008 */ # 891: 0c82 + bbci a0, 29, .Lbr070 # 893: d77044 + movi a0, 8 /* 0x00000008 */ # 896: 0c80 +.Lbr066: s8i a2, a12, 1 /* a2 -> [arg0+0x1] */ # 898: 224c01 + l32i a2, a13, 188 /* [arg1+0xbc] */ # 89b: 222d2f + l32i a2, a2, 0 /* [[arg1+0xbc]] */ # 89e: 2802 + bbci a2, 17, .Lbr071 # 8a0: 17723e + movi a2, 1 /* 0x00000001 */ # 8a3: 0c12 +.Lbr067: or a0, a0, a2 # 8a5: 200020 +.Lbr068: s8i a0, a12, 1 /* a0 -> [arg0+0x1] */ # 8a8: 024c01 + l32i a3, a13, 188 /* [arg1+0xbc] */ # 8ab: 322d2f + movi a4, 4 /* 0x00000004 */ # 8ae: 0c44 + l32i a3, a3, 0 /* [[arg1+0xbc]] */ # 8b0: 3803 + or a4, a0, a4 # 8b2: 404020 + extui a3, a3, 17, 2 # 8b5: 303115 + beqz a3, .Lbr069 # 8b8: 8c13 + s8i a4, a12, 1 /* a4 -> [arg0+0x1] */ # 8ba: 424c01 +.Lbr069: addi a2, a12, 6 /* arg0+0x6 */ # 8bd: 6b2c + movi a3, 200 /* 0x000000c8 */ # 8bf: 32a0c8 + l8ui a4, a13, 197 /* [arg1+0xc5] */ # 8c2: 420dc5 + s8i a4, a12, 2 /* [arg1+0xc5] -> [arg0+0x2] */ # 8c5: 424c02 + add a3, a13, a3 /* arg1+0xc8 */ # 8c8: 3a3d + call0 .Lfunc006 # 8ca: 85f2ff + l32i a0, sp, 0 /* [(local0)] */ # 8cd: 0801 + addi a2, a12, 22 /* arg0+0x16 */ # 8cf: 22cc16 + l32i a13, sp, 8 /* [(local2)] */ # 8d2: d821 + l32i a12, sp, 4 /* [(local1)] */ # 8d4: c811 + addi sp, sp, 16 /* (top of frame) */ # 8d6: 12c110 + ret /* arg0+0x16 */ # 8d9: 0df0 +.Lbr070: movi a0, 0 /* 0x00000000 */ # 8db: 0c00 + movi a2, 0 /* 0x00000000 */ # 8dd: 0c02 + j .Lbr066 # 8df: 46edff +.Lbr071: bbci a2, 18, .Lbr068 # 8e2: 2772c2 + movi a2, 3 /* 0x00000003 */ # 8e5: 0c32 + j .Lbr067 # 8e7: 86eeff + + .balign 4 +# Function @ .irom0.text+0x8ec +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global ieee80211_add_htinfo + .type ieee80211_add_htinfo, @function +ieee80211_add_htinfo: + addi sp, sp, -16 /* (local0) */ # 8ec: 12c1f0 + movi a4, 61 /* 0x0000003d */ # 8ef: 3cd4 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 8f1: 0901 + movi a0, 22 /* 0x00000016 */ # 8f3: 1c60 + s8i a4, a2, 0 /* 0x3d -> [arg0] */ # 8f5: 424200 + s8i a0, a2, 1 /* 0x16 -> [arg0+0x1] */ # 8f8: 024201 + addi a2, a2, 2 /* arg0+0x2 */ # 8fb: 2b22 + call0 .Lfunc007 # 8fd: 85f6ff + l32i a0, sp, 0 /* [(local0)] */ # 900: 0801 + addi sp, sp, 16 /* (top of frame) */ # 902: 12c110 + ret # 905: 0df0 + + .balign 4 +# Function @ .irom0.text+0x908 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global ieee80211_add_htinfo_vendor + .type ieee80211_add_htinfo_vendor, @function +ieee80211_add_htinfo_vendor: + movi a4, 76 /* 0x0000004c */ # 908: 4cc4 + movi a5, -112 /* 0xffffff90 */ # 90a: 52af90 + movi a6, 0 /* 0x00000000 */ # 90d: 0c06 + movi a7, 26 /* 0x0000001a */ # 90f: 1ca7 + movi a8, -35 /* 0xffffffdd */ # 911: 82afdd + addi sp, sp, -16 /* (local0) */ # 914: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 917: 0901 + s8i a8, a2, 0 /* 0xdd -> [arg0] */ # 919: 824200 + s8i a7, a2, 1 /* 0x1a -> [arg0+0x1] */ # 91c: 724201 + s8i a6, a2, 2 /* 0x00 -> [arg0+0x2] */ # 91f: 624202 + s8i a5, a2, 3 /* 0x90 -> [arg0+0x3] */ # 922: 524203 + movi a0, 52 /* 0x00000034 */ # 925: 3c40 + s8i a4, a2, 4 /* 0x4c -> [arg0+0x4] */ # 927: 424204 + s8i a0, a2, 5 /* 0x34 -> [arg0+0x5] */ # 92a: 024205 + addi a2, a2, 6 /* arg0+0x6 */ # 92d: 6b22 + call0 .Lfunc007 # 92f: 85f3ff + l32i a0, sp, 0 /* [(local0)] */ # 932: 0801 + addi sp, sp, 16 /* (top of frame) */ # 934: 12c110 + ret # 937: 0df0 + + .literal_position # 93c: 00000000 + # 940: c0ff0000 + # 944: 00000000 + +# Function @ .irom0.text+0x948 +# Local variables/stack: +# (local0): hword @ -0x20 +# (local1): hword @ -0x1e +# (local2): hword @ -0x1c +# (local3): hword @ -0x1a +# (local4): hword[4] @ -0x18 +# (local5): word[4] @ -0x10 + .balign 4 +.Lfunc008: addi sp, sp, -32 /* (local0) */ # 948: 12c1e0 + l8ui a5, a4, 2 /* [arg2+0x2] */ # 94b: 520402 + s32i a0, sp, 16 /* a0 -> [(local5)] */ # 94e: 0941 + l8ui a3, a4, 4 /* [arg2+0x4] */ # 950: 320404 + l8ui a0, a4, 3 /* [arg2+0x3] */ # 953: 020403 + slli a3, a3, 8 # 956: 803311 + movi a4, 0 /* 0x00000000 */ # 959: 0c04 + or a0, a0, a3 # 95b: 300020 + l32i a3, a2, 72 /* [arg0+0x48] */ # 95e: 322212 + s16i a5, sp, 0 /* [arg2+0x2] -> [(local0)] */ # 961: 525100 + bbci a3, 10, .Lbr072 # 964: a7630e + movi a5, g_ic+0x224 # 967: 51f5ff + l32i a5, a5, 0x2e8 /* [g_ic+0x50c] */ # 96a: 5225ba + bbci a5, 21, .Lbr072 # 96d: 577505 + s16i a4, sp, 2 /* 0x0000 -> [(local1)] */ # 970: 425101 + j .Lbr073 # 973: 060100 +.Lbr072: movi a6, 37 /* 0x00000025 */ # 976: 2c56 + s16i a6, sp, 2 /* 0x0025 -> [(local1)] */ # 978: 625101 +.Lbr073: movi a3, 3 /* 0x00000003 */ # 97b: 0c33 + mov a5, sp /* (local0) */ # 97d: 5d01 + s16i a4, sp, 6 /* 0x0000 -> [(local3)] */ # 97f: 425103 + s16i a4, sp, 8 /* 0x0000 -> [(local4)] */ # 982: 425104 + movi a9, 0x0000ffc0 # 985: 91eeff + extui a8, a0, 6, 10 # 988: 008694 + extui a7, a0, 2, 4 # 98b: 007234 + slli a7, a7, 2 # 98e: e07711 + slli a8, a8, 6 # 991: a08811 + and a8, a8, a9 # 994: 908810 + movi a4, 1 /* 0x00000001 */ # 997: 0c14 + movi a9, 60 /* 0x0000003c */ # 999: 3cc9 + and a7, a7, a9 # 99b: 907710 + or a7, a7, a8 # 99e: 807720 + movi a8, 2 /* 0x00000002 */ # 9a1: 0c28 + or a7, a7, a8 # 9a3: 807720 + s16i a7, sp, 4 /* a7 -> [(local2)] */ # 9a6: 725102 + call0 ieee80211_send_action # 9a9: 01e6ffc0 + # 9ad: 0000 + movi a2, 0 /* 0x00000000 */ # 9af: 0c02 + l32i a0, sp, 16 /* [(local5)] */ # 9b1: 0841 + addi sp, sp, 32 /* (top of frame) */ # 9b3: 12c120 + ret /* 0x00000000 */ # 9b6: 0df0 + + .literal_position # 9b8: 000af23f + # 9bc: 00000000 + # 9c0: 00000000 + # 9c4: 00000000 + # 9c8: 00000000 + # 9cc: 00000000 + # 9d0: 00000000 + +# Function @ .irom0.text+0x9d4 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word @ -0x10 +# (local5): word @ -0xc +# (local6): word[2] @ -0x8 + .balign 4 +.Lfunc009: mov a7, a2 /* arg0 */ # 9d4: 7d02 + mov a8, a3 /* arg1 */ # 9d6: 8d03 + addi sp, sp, -32 /* (local0) */ # 9d8: 12c1e0 + s32i a12, sp, 16 /* a12 -> [(local4)] */ # 9db: c941 + movi a3, 24 /* 0x00000018 */ # 9dd: 1c83 + s32i a0, sp, 12 /* a0 -> [(local3)] */ # 9df: 0931 + s32i a13, sp, 20 /* a13 -> [(local5)] */ # 9e1: d951 + s32i a14, sp, 24 /* a14 -> [(local6)] */ # 9e3: e961 + mov a13, a5 /* arg3 */ # 9e5: dd05 + mov a2, sp /* (local0) */ # 9e7: 2d01 + s32i a8, sp, 8 /* arg1 -> [(local2)] */ # 9e9: 8921 + mov a14, a4 /* arg2 */ # 9eb: ed04 + s32i a7, sp, 4 /* arg0 -> [(local1)] */ # 9ed: 7911 + movi a4, 9 /* 0x00000009 */ # 9ef: 0c94 + call0 ieee80211_getmgtframe # 9f1: 01f4ffc0 + # 9f5: 0000 + mov a12, a2 # 9f7: cd02 + beqz a2, .Lbr078 # 9f9: 16f213 + l32i a7, sp, 0 /* [(local0)] */ # 9fc: 7801 + l32i a6, sp, 8 /* [(local2)] */ # 9fe: 6821 + s8i a6, a7, 0 /* [(local2)] -> [[(local0)]] */ # a00: 624700 + l32i a4, sp, 0 /* [(local0)] */ # a03: 4801 + addi a5, a4, 1 /* [(local0)]+0x1 */ # a05: 1b54 + s32i a5, sp, 0 /* [(local0)]+0x1 -> [(local0)] */ # a07: 5901 + s8i a14, a4, 1 /* arg2 -> [[(local0)]+0x1] */ # a09: e24401 + l32i a2, sp, 0 /* [(local0)] */ # a0c: 2801 + l16ui a0, a13, 0 /* [arg3] */ # a0e: 021d00 + addi a3, a2, 1 /* [(local0)]+0x1 */ # a11: 1b32 + s32i a3, sp, 0 /* [(local0)]+0x1 -> [(local0)] */ # a13: 3901 + s8i a0, a2, 1 /* [arg3] -> [[(local0)]+0x1] */ # a15: 024201 + l32i a3, sp, 0 /* [(local0)] */ # a18: 3801 + addi a0, a3, 1 /* [(local0)]+0x1 */ # a1a: 1b03 + s32i a0, sp, 0 /* [(local0)]+0x1 -> [(local0)] */ # a1c: 0901 + bnei a14, 1, .Lbr074 # a1e: 661e16 + l16ui a4, a13, 2 /* [arg3+0x2] */ # a21: 421d01 + s8i a4, a3, 1 /* [arg3+0x2] -> [[(local0)]+0x1] */ # a24: 424301 + l16ui a2, a13, 2 /* [arg3+0x2] */ # a27: 221d01 + l32i a4, sp, 0 /* [(local0)] */ # a2a: 4801 + srli a2, a2, 8 # a2c: 202841 + s8i a2, a4, 1 /* a2 -> [[(local0)]+0x1] */ # a2f: 224401 + l32i a0, sp, 0 /* [(local0)] */ # a32: 0801 + addi a0, a0, 2 /* [(local0)]+0x2 */ # a34: 2b00 + s32i a0, sp, 0 /* [(local0)]+0x2 -> [(local0)] */ # a36: 0901 +.Lbr074: movi a11, 1 /* 0x00000001 */ # a38: 0c1b + l16ui a10, a13, 4 /* [arg3+0x4] */ # a3a: a21d02 + s8i a10, a0, 0 # a3d: a24000 + l16ui a9, a13, 4 /* [arg3+0x4] */ # a40: 921d02 + l32i a10, sp, 0 /* [(local0)] */ # a43: a801 + srli a9, a9, 8 # a45: 909841 + s8i a9, a10, 1 /* a9 -> [[(local0)]+0x1] */ # a48: 924a01 + movi a10, 0x3ff20a00 # a4b: a1dbff + movi a9, 24 /* 0x00000018 */ # a4e: 1c89 + l32i a7, sp, 0 /* [(local0)] */ # a50: 7801 + l16ui a6, a13, 6 /* [arg3+0x6] */ # a52: 621d03 + addi a8, a7, 2 /* [(local0)]+0x2 */ # a55: 2b87 + s32i a8, sp, 0 /* [(local0)]+0x2 -> [(local0)] */ # a57: 8901 + s8i a6, a7, 2 /* [arg3+0x6] -> [[(local0)]+0x2] */ # a59: 624702 + l16ui a5, a13, 6 /* [arg3+0x6] */ # a5c: 521d03 + l32i a6, sp, 0 /* [(local0)] */ # a5f: 6801 + srli a5, a5, 8 # a61: 505841 + s8i a5, a6, 1 /* a5 -> [[(local0)]+0x1] */ # a64: 524601 + movi a5, 7 /* 0x00000007 */ # a67: 0c75 + l32i a3, sp, 0 /* [(local0)] */ # a69: 3801 + movi a6, 16 /* 0x00000010 */ # a6b: 1c06 + addi a0, a3, 2 /* [(local0)]+0x2 */ # a6d: 2b03 + s32i a0, sp, 0 /* [(local0)]+0x2 -> [(local0)] */ # a6f: 0901 + bnez a14, .Lbr075 # a71: dc5e + l16ui a4, a13, 8 /* [arg3+0x8] */ # a73: 421d04 + s8i a4, a3, 2 /* [arg3+0x8] -> [[(local0)]+0x2] */ # a76: 424302 + l16ui a2, a13, 8 /* [arg3+0x8] */ # a79: 221d04 + l32i a4, sp, 0 /* [(local0)] */ # a7c: 4801 + srli a2, a2, 8 # a7e: 202841 + s8i a2, a4, 1 /* a2 -> [[(local0)]+0x1] */ # a81: 224401 + l32i a0, sp, 0 /* [(local0)] */ # a84: 0801 + addi a0, a0, 2 /* [(local0)]+0x2 */ # a86: 2b00 + s32i a0, sp, 0 /* [(local0)]+0x2 -> [(local0)] */ # a88: 0901 +.Lbr075: movi a14, 143 /* 0x0000008f */ # a8a: e2a08f + l32i a3, a12, 4 # a8d: 381c + movi a13, g_ic # a8f: d1cbff + l32i a8, a12, 32 # a92: 888c + l32i a2, a13, 16 /* [g_ic+0x10] */ # a94: 284d + l32i a4, a8, 0 # a96: 4808 + l32i a3, a3, 4 # a98: 3813 + extui a7, a4, 0, 6 # a9a: 407054 + sub a3, a0, a3 # a9d: 3030c0 + s16i a9, a12, 20 # aa0: 925c0a + addi a3, a3, -24 # aa3: 32c3e8 + srli a4, a4, 6 # aa6: 404641 + or a0, a4, a6 # aa9: 600420 + s16i a3, a12, 22 # aac: 325c0b + l8ui a9, a8, 6 # aaf: 920806 + slli a0, a0, 6 # ab2: a00011 + or a7, a7, a0 # ab5: 007720 + and a9, a9, a14 # ab8: e09910 + s8i a9, a8, 6 # abb: 924806 + l32i a4, a12, 32 # abe: 488c + s32i a7, a8, 0 # ac0: 7908 + l8ui a3, a4, 4 # ac2: 320404 + movi a6, 240 /* 0x000000f0 */ # ac5: 62a0f0 + and a3, a3, a6 # ac8: 603310 + or a3, a3, a5 # acb: 503320 + l32i a5, sp, 4 /* [(local1)] */ # ace: 5811 + s8i a3, a4, 4 # ad0: 324404 + sub a2, a2, a5 # ad3: 5022c0 + movnez a2, a11, a2 # ad6: 202b93 + l32i a11, a12, 32 # ad9: b88c + memw # adb: c02000 + movi a9, 253 /* 0x000000fd */ # ade: 92a0fd + extui a8, a2, 0, 1 # ae1: 208004 + l32i a10, a10, 0x200 /* [0x3ff20c00] */ # ae4: a22a80 + l8ui a14, a11, 0 # ae7: e20b00 + movi a0, 254 /* 0x000000fe */ # aea: 02a0fe + and a14, a14, a0 # aed: 00ee10 + s8i a14, a11, 0 # af0: e24b00 + l32i a7, a12, 32 # af3: 788c + s32i a10, a11, 16 # af5: a94b + l8ui a6, a7, 0 # af7: 620700 + slli a8, a8, 1 # afa: f08811 + and a6, a6, a9 # afd: 906610 + or a6, a6, a8 # b00: 806620 + s8i a6, a7, 0 # b03: 624700 + l32i a5, a5, 136 /* [[(local1)]+0x88] */ # b06: 522522 + l16ui a5, a5, 26 /* [[[(local1)]+0x88]+0x1a] */ # b09: 52150d + l32i a0, a12, 32 # b0c: 088c + beqz a5, .Lbr076 # b0e: 9c05 + l32i a4, a0, 0 # b10: 4800 + bbsi a4, 7, .Lbr076 # b12: 77e40c + call0 rc_get_trc_by_index # b15: 01acffc0 + # b19: 0000 + s32i a2, a12, 24 # b1b: 296c + l32i a0, a12, 32 # b1d: 088c + j .Lbr077 # b1f: c60000 +.Lbr076: movi a5, 0 /* 0x00000000 */ # b22: 0c05 + s32i a5, a12, 24 # b24: 596c +.Lbr077: mov a3, a12 # b26: 3d0c + l32i a2, sp, 4 /* [(local1)] */ # b28: 2811 + movi a4, 208 /* 0x000000d0 */ # b2a: 42a0d0 + l8ui a6, a13, 125 /* [g_ic+0x7d] */ # b2d: 620d7d + s8i a6, a0, 8 # b30: 624008 + call0 ieee80211_mgmt_output # b33: 01a6ffc0 + # b37: 0000 + j .Lbr079 # b39: 860200 +.Lbr078: movi a2, .Lstr001 # b3c: 21a1ff + call0 printf # b3f: 01a4ffc0 + # b43: 0000 + movi a2, 1 /* 0x00000001 */ # b45: 0c12 +.Lbr079: l32i a12, sp, 16 /* [(local4)] */ # b47: c841 + l32i a13, sp, 20 /* [(local5)] */ # b49: d851 + l32i a14, sp, 24 /* [(local6)] */ # b4b: e861 + l32i a0, sp, 12 /* [(local3)] */ # b4d: 0831 + addi sp, sp, 32 /* (top of frame) */ # b4f: 12c120 + ret # b52: 0df0 + + .section .rodata.str1.4, "MSa", @progbits, 1 + +.Lstr001: .asciz "no buf for action frame\n" # 0: 6e6f2062 + # 4: 75662066 + # 8: 6f722061 + # c: 6374696f + # 10: 6e206672 + # 14: 616d650a + # 18: 00 diff --git a/binary_sdk/libnet80211_stage1/ieee80211_hwmp.S b/binary_sdk/libnet80211_stage1/ieee80211_hwmp.S new file mode 100644 index 0000000..e69de29 diff --git a/binary_sdk/libnet80211_stage1/ieee80211_input.S b/binary_sdk/libnet80211_stage1/ieee80211_input.S new file mode 100644 index 0000000..68f16dc --- /dev/null +++ b/binary_sdk/libnet80211_stage1/ieee80211_input.S @@ -0,0 +1,1006 @@ + + .section .irom0.text, "ax", @progbits + + .literal_position # 0: 00000000 + # 4: 00000000 + # 8: 00000000 + +# Function @ .irom0.text+0xc +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 + .global ieee80211_deliver_data + .type ieee80211_deliver_data, @function +ieee80211_deliver_data: + addi sp, sp, -16 /* (local0) */ # c: 12c1f0 + s32i a0, sp, 8 /* a0 -> [(local2)] */ # f: 0921 + l32i a0, a2, 0 /* [arg0] */ # 11: 0802 + s32i a0, sp, 0 /* [arg0] -> [(local0)] */ # 13: 0901 + l8ui a0, a0, 47 /* [[arg0]+0x2f] */ # 15: 02002f + s32i a3, sp, 4 /* arg1 -> [(local1)] */ # 18: 3911 + bbsi a0, 4, .Lbr001 # 1a: 47e00e + s32i a3, sp, 4 /* arg1 -> [(local1)] */ # 1d: 3911 + beqz a3, .Lbr002 # 1f: acc3 + mov a2, a3 /* arg1 */ # 21: 2d03 + call0 ppRecycleRxPkt # 23: 01f7ffc0 + # 27: 0000 + j .Lbr002 # 29: 860800 +.Lbr001: movi a2, 3 /* 0x00000003 */ # 2c: 0c32 + l16ui a3, a3, 22 /* [arg1+0x16] */ # 2e: 32130b + movi a4, 2 /* 0x00000002 */ # 31: 0c24 + call0 pbuf_alloc # 33: 01f4ffc0 + # 37: 0000 + l32i a4, sp, 4 /* [(local1)] */ # 39: 4811 + l32i a5, a4, 4 /* [[(local1)]+0x4] */ # 3b: 5814 + mov a3, a2 # 3d: 3d02 + l32i a5, a5, 4 /* [[[(local1)]+0x4]+0x4] */ # 3f: 5815 + s32i a5, a2, 4 # 41: 5912 + s32i a2, a4, 0 /* a2 -> [[(local1)]] */ # 43: 2904 + s32i a4, a2, 16 # 45: 4942 + l32i a2, sp, 0 /* [(local0)] */ # 47: 2801 + call0 ethernetif_input # 49: 01efffc0 + # 4d: 0000 +.Lbr002: l32i a0, sp, 8 /* [(local2)] */ # 4f: 0821 + addi sp, sp, 16 /* (top of frame) */ # 51: 12c110 + ret # 54: 0df0 + + .literal_position # 58: 80f30000 + # 5c: 81370000 + # 60: f8ff0000 + # 64: 00000000 + # 68: 00000000 + # 6c: 00000000 + # 70: 00000000 + # 74: 00000000 + # 78: 00000000 + # 7c: 00000000 + # 80: 00000000 + +# Function @ .irom0.text+0x84 +# Local variables/stack: +# (local0): byte[31] @ -0x2f +# (local1): word @ -0x10 +# (local2): word @ -0xc +# (local3): word[2] @ -0x8 + .balign 4 + .global ieee80211_decap + .type ieee80211_decap, @function +ieee80211_decap: + addi sp, sp, -48 /* (FP)-0x30 */ # 84: 12c1d0 + s32i a12, sp, 40 /* a12 -> [(local3)] */ # 87: c9a1 + s32i a0, sp, 36 /* a0 -> [(local2)] */ # 89: 0991 + mov a12, a2 /* arg0 */ # 8b: cd02 + addi a0, a5, 14 /* arg3+0xe */ # 8d: eb05 + bgeu a4, a0, .Lbr003 # 8f: 07b40a + call0 ppRecycleRxPkt # 92: 01f4ffc0 + # 96: 0000 + movi a12, 0 /* 0x00000000 */ # 98: 0c0c + j .Lbr008 # 9a: 063100 +.Lbr003: mov a4, a5 /* arg3 */ # 9d: 4d05 + mov a2, sp /* (FP)-0x30 */ # 9f: 2d01 + call0 memcpy # a1: 01f1ffc0 + # a5: 0000 + l32i a3, a12, 4 /* [arg0+0x4] */ # a7: 381c + l32i a0, a3, 4 /* [[arg0+0x4]+0x4] */ # a9: 0813 + movi a2, 170 /* 0x000000aa */ # ab: 22a0aa + l8ui a4, a0, 0 /* [[[arg0+0x4]+0x4]] */ # ae: 420000 + l8ui a5, a0, 1 /* [[[arg0+0x4]+0x4]+0x1] */ # b1: 520001 + bne a4, a2, .Lbr004 # b4: 27942f + bne a5, a2, .Lbr004 # b7: 27952c + l8ui a6, a0, 2 /* [[[arg0+0x4]+0x4]+0x2] */ # ba: 620002 + bnei a6, 3, .Lbr004 # bd: 663626 + l8ui a7, a0, 3 /* [[[arg0+0x4]+0x4]+0x3] */ # c0: 720003 + bnez a7, .Lbr004 # c3: ec07 + l8ui a8, a0, 4 /* [[[arg0+0x4]+0x4]+0x4] */ # c5: 820004 + bnez a8, .Lbr004 # c8: dcb8 + l8ui a9, a0, 5 /* [[[arg0+0x4]+0x4]+0x5] */ # ca: 920005 + bnez a9, .Lbr004 # cd: dc69 + movi a10, 0x0000f380 # cf: a1e2ff + l8ui a4, a0, 7 /* [[[arg0+0x4]+0x4]+0x7] */ # d2: 420007 + l8ui a5, a0, 6 /* [[[arg0+0x4]+0x4]+0x6] */ # d5: 520006 + slli a4, a4, 8 # d8: 804411 + or a4, a4, a5 # db: 504420 + beq a4, a10, .Lbr004 # de: a71405 + movi a5, 0x00003781 # e1: 51deff + bne a4, a5, .Lbr005 # e4: 579413 +.Lbr004: l16ui a6, a12, 22 /* [arg0+0x16] */ # e7: 621c0b + l32i a7, a3, 4 /* [[arg0+0x4]+0x4] */ # ea: 7813 + s32i a7, sp, 32 /* [[arg0+0x4]+0x4] -> [(local1)] */ # ec: 7981 + addi a6, a6, 14 /* [arg0+0x16]+0xe */ # ee: eb66 + addi a7, a7, -14 /* [[arg0+0x4]+0x4]-0xe */ # f0: 72c7f2 + s32i a7, a3, 4 /* [[arg0+0x4]+0x4]-0xe -> [[arg0+0x4]+0x4] */ # f3: 7913 + s16i a6, a12, 22 /* [arg0+0x16]+0xe -> [arg0+0x16] */ # f5: 625c0b + j .Lbr006 # f8: 060800 +.Lbr005: srli a8, a4, 8 # fb: 408841 + movi a10, 0x0000fff8 # fe: a1d8ff + l16ui a9, a12, 22 /* [arg0+0x16] */ # 101: 921c0b + addi a2, a0, 8 /* [[arg0+0x4]+0x4]+0x8 */ # 104: 8b20 + addi a11, a0, -6 /* [[arg0+0x4]+0x4]-0x6 */ # 106: b2c0fa + s32i a11, sp, 32 /* [[arg0+0x4]+0x4]-0x6 -> [(local1)] */ # 109: b981 + s32i a2, a3, 4 /* [[arg0+0x4]+0x4]+0x8 -> [[arg0+0x4]+0x4] */ # 10b: 2913 + s32i a11, a3, 4 /* [[arg0+0x4]+0x4]-0x6 -> [[arg0+0x4]+0x4] */ # 10d: b913 + add a9, a9, a10 /* [arg0+0x16]+0xfff8 */ # 10f: aa99 + addi a9, a9, 14 /* [arg0+0x16]+0x10006 */ # 111: eb99 + s16i a9, a12, 22 /* [arg0+0x16]+0x10006 -> [arg0+0x16] */ # 113: 925c0b + s8i a4, a0, 6 /* a4 -> [[[arg0+0x4]+0x4]+0x6] */ # 116: 424006 + s8i a8, a0, 7 /* a8 -> [[[arg0+0x4]+0x4]+0x7] */ # 119: 824007 +.Lbr006: l8ui a0, sp, 1 /* [(local0)] */ # 11c: 020101 + extui a0, a0, 0, 2 # 11f: 000014 + beqz a0, .Lbr007 # 122: ac20 + beqi a0, 1, .Lbr009 # 124: 261045 + bnei a0, 2, .Lbr008 # 127: 662037 + l32i a2, sp, 32 /* [(local1)] */ # 12a: 2881 + addi a3, sp, 4 /* (FP)-0x2c */ # 12c: 4b31 + movi a4, 6 /* 0x00000006 */ # 12e: 0c64 + call0 memcpy # 130: 01cfffc0 + # 134: 0000 + addi a3, sp, 16 /* (FP)-0x20 */ # 136: 32c110 + l32i a2, sp, 32 /* [(local1)] */ # 139: 2881 + movi a4, 6 /* 0x00000006 */ # 13b: 0c64 + addi a2, a2, 6 /* [(local1)]+0x6 */ # 13d: 6b22 + call0 memcpy # 13f: 01ccffc0 + # 143: 0000 + j .Lbr008 # 145: 460600 +.Lbr007: l32i a2, sp, 32 /* [(local1)] */ # 148: 2881 + addi a3, sp, 4 /* (FP)-0x2c */ # 14a: 4b31 + movi a4, 6 /* 0x00000006 */ # 14c: 0c64 + call0 memcpy # 14e: 01c9ffc0 + # 152: 0000 + addi a3, sp, 10 /* (FP)-0x26 */ # 154: ab31 + l32i a2, sp, 32 /* [(local1)] */ # 156: 2881 + movi a4, 6 /* 0x00000006 */ # 158: 0c64 + addi a2, a2, 6 /* [(local1)]+0x6 */ # 15a: 6b22 + call0 memcpy # 15c: 01c7ffc0 + # 160: 0000 +.Lbr008: mov a2, a12 # 162: 2d0c + l32i a0, sp, 36 /* [(local2)] */ # 164: 0891 + l32i a12, sp, 40 /* [(local3)] */ # 166: c8a1 + addi sp, sp, 48 /* (top of frame) */ # 168: 12c130 + ret # 16b: 0df0 +.Lbr009: l32i a2, sp, 32 /* [(local1)] */ # 16d: 2881 + addi a3, sp, 16 /* (FP)-0x20 */ # 16f: 32c110 + movi a4, 6 /* 0x00000006 */ # 172: 0c64 + call0 memcpy # 174: 01c2ffc0 + # 178: 0000 + addi a3, sp, 10 /* (FP)-0x26 */ # 17a: ab31 + l32i a2, sp, 32 /* [(local1)] */ # 17c: 2881 + movi a4, 6 /* 0x00000006 */ # 17e: 0c64 + addi a2, a2, 6 /* [(local1)]+0x6 */ # 180: 6b22 + call0 memcpy # 182: 01bfffc0 + # 186: 0000 + j .Lbr008 # 188: 86f5ff + + .literal_position # 18c: 00000000 + # 190: 00000000 + # 194: 00000000 + +# Function @ .irom0.text+0x198 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word @ -0x8 +# (local3): word @ -0x4 + .balign 4 + .global ieee80211_setup_rates + .type ieee80211_setup_rates, @function +ieee80211_setup_rates: + addi sp, sp, -16 /* (local0) */ # 198: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 19b: 0901 + s32i a14, sp, 12 /* a14 -> [(local3)] */ # 19d: e931 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 19f: d921 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 1a1: c911 + mov a13, a4 /* arg2 */ # 1a3: dd04 + mov a12, a2 /* arg0 */ # 1a5: cd02 + mov a14, a3 /* arg1 */ # 1a7: ed03 + addi a2, a2, 71 /* arg0+0x47 */ # 1a9: 22c247 + movi a3, 0 /* 0x00000000 */ # 1ac: 0c03 + movi a4, 16 /* 0x00000010 */ # 1ae: 1c04 + call0 memset # 1b0: 01f7ffc0 + # 1b4: 0000 + addi a3, a14, 2 /* arg1+0x2 */ # 1b6: 2b3e + addi a2, a12, 72 /* arg0+0x48 */ # 1b8: 22cc48 + l8ui a4, a14, 1 /* [arg1+0x1] */ # 1bb: 420e01 + s8i a4, a12, 71 /* [arg1+0x1] -> [arg0+0x47] */ # 1be: 424c47 + call0 memcpy # 1c1: 01f3ffc0 + # 1c5: 0000 + beqz a13, .Lbr011 # 1c7: ac8d + l8ui a0, a12, 71 /* [arg0+0x47] */ # 1c9: 020c47 + l8ui a14, a13, 1 /* [arg2+0x1] */ # 1cc: e20d01 + add a2, a14, a0 # 1cf: 0a2e + blti a2, 16, .Lbr010 # 1d1: a6b207 + movi a14, 15 /* 0x0000000f */ # 1d4: 0cfe + sub a14, a14, a0 # 1d6: 00eec0 + extui a14, a14, 0, 8 # 1d9: e0e074 +.Lbr010: addi a3, a13, 2 /* arg2+0x2 */ # 1dc: 2b3d + mov a4, a14 # 1de: 4d0e + add a2, a0, a12 # 1e0: ca20 + addi a2, a2, 72 # 1e2: 22c248 + call0 memcpy # 1e5: 01ebffc0 + # 1e9: 0000 + l8ui a3, a12, 71 /* [arg0+0x47] */ # 1eb: 320c47 + add a3, a3, a14 # 1ee: ea33 + s8i a3, a12, 71 /* a3 -> [arg0+0x47] */ # 1f0: 324c47 +.Lbr011: movi a2, 0 /* 0x00000000 */ # 1f3: 0c02 + l32i a12, sp, 4 /* [(local1)] */ # 1f5: c811 + l32i a13, sp, 8 /* [(local2)] */ # 1f7: d821 + l32i a14, sp, 12 /* [(local3)] */ # 1f9: e831 + l32i a0, sp, 0 /* [(local0)] */ # 1fb: 0801 + addi sp, sp, 16 /* (top of frame) */ # 1fd: 12c110 + ret /* 0x00000000 */ # 200: 0df0 + + .literal_position # 204: 00000000 + +# Function @ .irom0.text+0x208 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global ieee80211_alloc_challenge + .type ieee80211_alloc_challenge, @function +ieee80211_alloc_challenge: + addi sp, sp, -16 /* (local0) */ # 208: 12c1f0 + s32i a2, sp, 0 /* arg0 -> [(local0)] */ # 20b: 2901 + l32i a2, a2, 84 /* [arg0+0x54] */ # 20d: 222215 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 210: 0911 + bnez a2, .Lbr012 # 212: ccc2 + movi a2, 128 /* 0x00000080 */ # 214: 22a080 + call0 malloc # 217: 01fbffc0 + # 21b: 0000 + l32i a0, sp, 0 /* [(local0)] */ # 21d: 0801 + s32i a2, a0, 84 /* a2 -> [[(local0)]+0x54] */ # 21f: 226015 +.Lbr012: l32i a0, sp, 4 /* [(local1)] */ # 222: 0811 + movi a3, 1 /* 0x00000001 */ # 224: 0c13 + movnez a2, a3, a2 # 226: 202393 + addi sp, sp, 16 /* (top of frame) */ # 229: 12c110 + ret # 22c: 0df0 + + .literal_position # 230: 00000000 + # 234: 0050f202 + # 238: 0050f201 + # 23c: 00904c33 + # 240: 00904c34 + # 244: 00000000 + # 248: 00000000 + +# Function @ .irom0.text+0x24c +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word @ -0x10 +# (local5): word[3] @ -0xc + .balign 4 + .global ieee80211_parse_beacon + .type ieee80211_parse_beacon, @function +ieee80211_parse_beacon: + addi sp, sp, -32 /* (local0) */ # 24c: 12c1e0 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 24f: 0911 + s32i a12, sp, 8 /* a12 -> [(local2)] */ # 251: c921 + s32i a15, sp, 20 /* a15 -> [(local5)] */ # 253: f951 + s32i a14, sp, 16 /* a14 -> [(local4)] */ # 255: e941 + s32i a13, sp, 12 /* a13 -> [(local3)] */ # 257: d931 + mov a14, a2 /* arg0 */ # 259: ed02 + l32i a13, a2, 4 /* [arg0+0x4] */ # 25b: d812 + l16ui a15, a2, 22 /* [arg0+0x16] */ # 25d: f2120b + l32i a13, a13, 4 /* [[arg0+0x4]+0x4] */ # 260: d81d + mov a12, a3 /* arg1 */ # 262: cd03 + add a15, a15, a13 # 264: daff + addi a15, a15, 24 # 266: f2cf18 + sub a5, a15, a13 # 269: d05fc0 + addi a0, a5, -24 # 26c: 02c5e8 + bgei a0, 12, .Lbr013 # 26f: e6a002 + j .Lbr044 # 272: 068d00 +.Lbr013: mov a2, a3 /* arg1 */ # 275: 2d03 + s32i a5, sp, 0 /* a5 -> [(local0)] */ # 277: 5901 + movi a3, 72 /* 0x00000048 */ # 279: 4c83 + call0 bzero # 27b: 01f2ffc0 + # 27f: 0000 + addi a5, a13, 24 /* [[arg0+0x4]+0x4]+0x18 */ # 281: 52cd18 + l16ui a4, a13, 32 /* [[[arg0+0x4]+0x4]+0x20] */ # 284: 421d10 + s16i a4, a12, 6 /* [[[arg0+0x4]+0x4]+0x20] -> [arg1+0x6] */ # 287: 425c03 + l16ui a3, a13, 34 /* [[[arg0+0x4]+0x4]+0x22] */ # 28a: 321d11 + s32i a5, a12, 24 /* [[arg0+0x4]+0x4]+0x18 -> [arg1+0x18] */ # 28d: 596c + addi a13, a13, 36 /* [[arg0+0x4]+0x4]+0x24 */ # 28f: d2cd24 + l32i a2, a14, 32 /* [arg0+0x20] */ # 292: 288e + s16i a3, a12, 2 /* [[[arg0+0x4]+0x4]+0x22] -> [arg1+0x2] */ # 294: 325c01 + l32i a2, a2, 8 /* [[arg0+0x20]+0x8] */ # 297: 2822 + call0 ieee80211_chan2ieee # 299: 01ebffc0 + # 29d: 0000 + s32i a13, a12, 12 /* [[arg0+0x4]+0x4]+0x24 -> [arg1+0xc] */ # 29f: d93c + movi a6, 221 /* 0x000000dd */ # 2a1: 62a0dd + s8i a2, a12, 1 /* a2 -> [arg1+0x1] */ # 2a4: 224c01 + l32i a7, sp, 0 /* [(local0)] */ # 2a7: 7801 + extui a3, a2, 0, 8 # 2a9: 203074 + s8i a3, a12, 0 /* a3 -> [arg1] */ # 2ac: 324c00 + addi a7, a7, -36 /* [(local0)]-0x24 */ # 2af: 72c7dc + s32i a7, a12, 16 /* [(local0)]-0x24 -> [arg1+0x10] */ # 2b2: 794c + bgei a7, 2, .Lbr014 # 2b4: e62702 + j .Lbr045 # 2b7: 067d00 +.Lbr014: movi a8, 0x02f25000 # 2ba: 81deff + movi a10, 50 /* 0x00000032 */ # 2bd: 3c2a + movi a11, 45 /* 0x0000002d */ # 2bf: 2cdb + movi a9, g_ic+0x1d8 # 2c1: 91dbff + sub a2, a15, a13 # 2c4: d02fc0 +.Lbr015: l8ui a0, a13, 1 # 2c7: 020d01 + mov a7, a13 # 2ca: 7d0d + addi a4, a0, 2 # 2cc: 2b40 + bge a2, a4, .Lbr016 # 2ce: 47a202 + j .Lbr044 # 2d1: 467500 +.Lbr016: l8ui a2, a13, 0 # 2d4: 220d00 + movi a5, 32 /* 0x00000020 */ # 2d7: 2c05 + bgei a2, 32, .Lbr017 # 2d9: e6c202 + j .Lbr037 # 2dc: 065e00 +.Lbr017: bge a5, a2, .Lbr020 # 2df: 27a50d + bge a2, a10, .Lbr018 # 2e2: a7a202 + j .Lbr034 # 2e5: c64f00 +.Lbr018: blt a10, a2, .Lbr021 # 2e8: 272a11 + s32i a13, a12, 40 /* a13 -> [arg1+0x28] */ # 2eb: d9ac +.Lbr019: l8ui a0, a7, 1 # 2ed: 020701 +.Lbr020: add a13, a0, a7 # 2f0: 7ad0 + addi a13, a13, 2 # 2f2: 2bdd + sub a2, a15, a13 # 2f4: d02fc0 + bgei a2, 2, .Lbr015 # 2f7: e622cc + j .Lbr045 # 2fa: 466c00 +.Lbr021: bge a2, a6, .Lbr022 # 2fd: 67a202 + j .Lbr033 # 300: 064600 +.Lbr022: blt a6, a2, .Lbr020 # 303: 2726e9 + movi a2, 0 /* 0x00000000 */ # 306: 0c02 + bltui a0, 4, .Lbr023 # 308: b64025 + l8ui a5, a13, 3 # 30b: 520d03 + l8ui a4, a13, 2 # 30e: 420d02 + slli a5, a5, 8 # 311: 805511 + l8ui a13, a13, 5 # 314: d20d05 + or a4, a4, a5 # 317: 504420 + l8ui a5, a7, 4 # 31a: 520704 + slli a13, a13, 24 # 31d: 80dd01 + slli a5, a5, 16 # 320: 005511 + or a5, a5, a13 # 323: d05520 + or a4, a4, a5 # 326: 504420 + movi a5, 0x01f25000 # 329: 51c3ff + bne a4, a5, .Lbr023 # 32c: 579401 + movi a2, 1 /* 0x00000001 */ # 32f: 0c12 +.Lbr023: beqz a2, .Lbr025 # 331: 8c62 + s32i a7, a12, 48 /* a7 -> [arg1+0x30] */ # 333: 79cc +.Lbr024: l8ui a0, a7, 1 # 335: 020701 + j .Lbr020 # 338: 06edff +.Lbr025: movi a2, 0 /* 0x00000000 */ # 33b: 0c02 + bltui a0, 6, .Lbr026 # 33d: b66028 + l8ui a5, a7, 5 # 340: 520705 + l8ui a4, a7, 3 # 343: 420703 + l8ui a13, a7, 2 # 346: d20702 + slli a4, a4, 8 # 349: 804411 + or a13, a13, a4 # 34c: 40dd20 + l8ui a4, a7, 4 # 34f: 420704 + slli a5, a5, 24 # 352: 805501 + slli a4, a4, 16 # 355: 004411 + or a4, a4, a5 # 358: 504420 + or a13, a13, a4 # 35b: 40dd20 + bne a13, a8, .Lbr026 # 35e: 879d07 + l8ui a5, a7, 6 # 361: 520706 + bnei a5, 1, .Lbr026 # 364: 661501 + movi a2, 1 /* 0x00000001 */ # 367: 0c12 +.Lbr026: bnez a2, .Lbr028 # 369: ece2 + movi a2, 0 /* 0x00000000 */ # 36b: 0c02 + bltui a0, 6, .Lbr027 # 36d: b66028 + l8ui a5, a7, 5 # 370: 520705 + l8ui a4, a7, 3 # 373: 420703 + l8ui a13, a7, 2 # 376: d20702 + slli a4, a4, 8 # 379: 804411 + or a13, a13, a4 # 37c: 40dd20 + l8ui a4, a7, 4 # 37f: 420704 + slli a5, a5, 24 # 382: 805501 + slli a4, a4, 16 # 385: 004411 + or a4, a4, a5 # 388: 504420 + or a13, a13, a4 # 38b: 40dd20 + bne a13, a8, .Lbr027 # 38e: 879d07 + l8ui a13, a7, 6 # 391: d20706 + movi a5, 1 /* 0x00000001 */ # 394: 0c15 + moveqz a2, a5, a13 # 396: d02583 +.Lbr027: beqz a2, .Lbr029 # 399: 8c32 +.Lbr028: s32i a7, a12, 56 /* a7 -> [arg1+0x38] */ # 39b: 79ec + j .Lbr024 # 39d: 06e5ff +.Lbr029: l32i a2, a9, 0x334 /* [g_ic+0x50c] */ # 3a0: 2229cd + extui a2, a2, 28, 1 # 3a3: 202c05 + beqz a2, .Lbr020 # 3a6: 1662f4 + movi a2, 0 /* 0x00000000 */ # 3a9: 0c02 + bltui a0, 4, .Lbr030 # 3ab: b64025 + l8ui a13, a7, 5 # 3ae: d20705 + l8ui a5, a7, 3 # 3b1: 520703 + l8ui a4, a7, 2 # 3b4: 420702 + slli a5, a5, 8 # 3b7: 805511 + or a4, a4, a5 # 3ba: 504420 + l8ui a5, a7, 4 # 3bd: 520704 + slli a13, a13, 24 # 3c0: 80dd01 + slli a5, a5, 16 # 3c3: 005511 + or a5, a5, a13 # 3c6: d05520 + or a4, a4, a5 # 3c9: 504420 + movi a5, 0x334c9000 # 3cc: 519cff + bne a4, a5, .Lbr030 # 3cf: 579401 + movi a2, 1 /* 0x00000001 */ # 3d2: 0c12 +.Lbr030: beqz a2, .Lbr031 # 3d4: 8cb2 + l32i a13, a12, 60 /* [arg1+0x3c] */ # 3d6: d8fc + bnez a13, .Lbr020 # 3d8: 564df1 + s32i a7, a12, 60 /* a7 -> [arg1+0x3c] */ # 3db: 79fc + l8ui a0, a7, 1 # 3dd: 020701 + j .Lbr020 # 3e0: 06c3ff +.Lbr031: movi a2, 0 /* 0x00000000 */ # 3e3: 0c02 + bltui a0, 4, .Lbr032 # 3e5: b64025 + l8ui a13, a7, 5 # 3e8: d20705 + l8ui a5, a7, 3 # 3eb: 520703 + l8ui a4, a7, 2 # 3ee: 420702 + slli a5, a5, 8 # 3f1: 805511 + or a4, a4, a5 # 3f4: 504420 + l8ui a5, a7, 4 # 3f7: 520704 + slli a13, a13, 24 # 3fa: 80dd01 + slli a5, a5, 16 # 3fd: 005511 + or a5, a5, a13 # 400: d05520 + or a4, a4, a5 # 403: 504420 + movi a5, 0x344c9000 # 406: 518eff + bne a4, a5, .Lbr032 # 409: 579401 + movi a2, 1 /* 0x00000001 */ # 40c: 0c12 +.Lbr032: beqz a2, .Lbr020 # 40e: 16e2ed + l32i a13, a12, 64 /* [arg1+0x40] */ # 411: d22c10 + bnez a13, .Lbr020 # 414: 568ded + s32i a7, a12, 60 /* a7 -> [arg1+0x3c] */ # 417: 79fc + j .Lbr024 # 419: 06c6ff +.Lbr033: addi a4, a2, -61 # 41c: 42c2c3 + bnez a4, .Lbr020 # 41f: 56d4ec + s32i a13, a12, 64 /* a13 -> [arg1+0x40] */ # 422: d26c10 + j .Lbr019 # 425: 06b1ff +.Lbr034: blt a2, a11, .Lbr036 # 428: b72212 + blt a11, a2, .Lbr035 # 42b: 272b04 + s32i a13, a12, 60 /* a13 -> [arg1+0x3c] */ # 42e: d9fc + j .Lbr019 # 430: 46aeff +.Lbr035: addi a5, a2, -48 # 433: 52c2d0 + bnez a5, .Lbr020 # 436: 5665eb + s32i a13, a12, 52 /* a13 -> [arg1+0x34] */ # 439: d9dc + j .Lbr019 # 43b: 86abff +.Lbr036: addi a13, a2, -42 # 43e: d2c2d6 + bnez a13, .Lbr020 # 441: 56bdea + addi a2, a0, -1 # 444: 0b20 + bnez a2, .Lbr020 # 446: 5662ea + l8ui a4, a7, 2 # 449: 420702 + movi a5, 256 /* 0x00000100 */ # 44c: 52a100 + or a4, a4, a5 # 44f: 504420 + s16i a4, a12, 4 /* a4 -> [arg1+0x4] */ # 452: 425c02 + j .Lbr019 # 455: 06a5ff +.Lbr037: blti a2, 4, .Lbr041 # 458: a6422c + bgei a2, 5, .Lbr038 # 45b: e65202 + j .Lbr020 # 45e: 86a3ff +.Lbr038: blti a2, 6, .Lbr040 # 461: a66210 + bgei a2, 7, .Lbr039 # 464: e67202 + j .Lbr020 # 467: 46a1ff +.Lbr039: addi a13, a2, -7 # 46a: d2c2f9 + bnez a13, .Lbr020 # 46d: 56fde7 + s32i a7, a12, 28 /* a7 -> [arg1+0x1c] */ # 470: 797c + j .Lbr019 # 472: c69dff +.Lbr040: addi a4, a2, -5 # 475: 42c2fb + bnez a4, .Lbr020 # 478: 5644e7 + s32i a13, a12, 20 /* a13 -> [arg1+0x14] */ # 47b: d95c + l32i a5, a14, 16 /* [arg0+0x10] */ # 47d: 584e + sub a5, a13, a5 # 47f: 505dc0 + s8i a5, a12, 8 /* a5 -> [arg1+0x8] */ # 482: 524c08 + j .Lbr019 # 485: 0699ff +.Lbr041: blti a2, 1, .Lbr043 # 488: a61216 + bgei a2, 2, .Lbr042 # 48b: e62204 + s32i a13, a12, 36 /* a13 -> [arg1+0x24] */ # 48e: d99c + j .Lbr019 # 490: 4696ff +.Lbr042: addi a13, a2, -3 # 493: d2c2fd + bnez a13, .Lbr020 # 496: 566de5 + l8ui a3, a7, 2 # 499: 320702 + s8i a3, a12, 0 /* a3 -> [arg1] */ # 49c: 324c00 + j .Lbr019 # 49f: 8692ff +.Lbr043: bnez a2, .Lbr020 # 4a2: 56a2e4 + s32i a13, a12, 32 /* a13 -> [arg1+0x20] */ # 4a5: d98c + j .Lbr019 # 4a7: 8690ff +.Lbr044: movi a2, 1 /* 0x00000001 */ # 4aa: 0c12 + j .Lbr054 # 4ac: 862100 +.Lbr045: l32i a0, a12, 36 /* [arg1+0x24] */ # 4af: 089c + l32i a7, a12, 40 /* [arg1+0x28] */ # 4b1: 78ac + beqz a0, .Lbr055 # 4b3: 16e008 + l8ui a14, a0, 1 /* [[arg1+0x24]+0x1] */ # 4b6: e20001 + bltui a14, 16, .Lbr046 # 4b9: b6be02 + j .Lbr055 # 4bc: 462100 +.Lbr046: movi a2, 0 /* 0x00000000 */ # 4bf: 0c02 +.Lbr047: beqz a0, .Lbr048 # 4c1: 9c30 + beqz a7, .Lbr048 # 4c3: 9c17 + l8ui a4, a7, 1 /* [[arg1+0x28]+0x1] */ # 4c5: 420701 + l8ui a5, a0, 1 /* [[arg1+0x24]+0x1] */ # 4c8: 520001 + movi a15, 15 /* 0x0000000f */ # 4cb: 0cff + sub a15, a15, a5 # 4cd: 50ffc0 + bge a15, a4, .Lbr048 # 4d0: 47af04 + movi a7, 4 /* 0x00000004 */ # 4d3: 0c47 + or a2, a2, a7 # 4d5: 702220 +.Lbr048: movi a7, 8 /* 0x00000008 */ # 4d8: 0c87 + l32i a0, a12, 32 /* [arg1+0x20] */ # 4da: 088c + l8ui a10, a12, 1 /* [arg1+0x1] */ # 4dc: a20c01 + beqz a0, .Lbr049 # 4df: 8c60 + l8ui a9, a0, 1 /* [[arg1+0x20]+0x1] */ # 4e1: 920001 + movi a8, 32 /* 0x00000020 */ # 4e4: 2c08 + bgeu a8, a9, .Lbr050 # 4e6: 97b802 +.Lbr049: or a2, a2, a7 # 4e9: 702220 +.Lbr050: l32i a0, a12, 28 /* [arg1+0x1c] */ # 4ec: 087c + beq a10, a3, .Lbr051 # 4ee: 371a04 + movi a11, 32 /* 0x00000020 */ # 4f1: 2c0b + or a2, a2, a11 # 4f3: b02220 +.Lbr051: movi a3, 0 /* 0x00000000 */ # 4f6: 0c03 + beqz a0, .Lbr052 # 4f8: 8c60 + l8ui a13, a0, 1 /* [[arg1+0x1c]+0x1] */ # 4fa: d20001 + bgeui a13, 3, .Lbr052 # 4fd: f63d01 + s32i a3, a12, 28 /* 0x00000000 -> [arg1+0x1c] */ # 500: 397c +.Lbr052: l32i a0, a12, 60 /* [arg1+0x3c] */ # 502: 08fc + movi a8, 26 /* 0x0000001a */ # 504: 1ca8 + beqz a0, .Lbr053 # 506: 9c30 + l8ui a14, a0, 1 /* [[arg1+0x3c]+0x1] */ # 508: e20001 + movi a4, 30 /* 0x0000001e */ # 50b: 1ce4 + l8ui a5, a0, 0 /* [[arg1+0x3c]] */ # 50d: 520000 + mov a15, a8 /* 0x0000001a */ # 510: fd08 + sub a5, a5, a6 /* [[arg1+0x3c]]-0xdd */ # 512: 6055c0 + moveqz a15, a4, a5 # 515: 50f483 + bgeu a14, a15, .Lbr053 # 518: f7be01 + s32i a3, a12, 60 /* 0x00000000 -> [arg1+0x3c] */ # 51b: 39fc +.Lbr053: l32i a0, a12, 64 /* [arg1+0x40] */ # 51d: 022c10 + movi a9, 22 /* 0x00000016 */ # 520: 1c69 + beqz a0, .Lbr054 # 522: 9c00 + l8ui a10, a0, 0 /* [[arg1+0x40]] */ # 524: a20000 + l8ui a7, a0, 1 /* [[arg1+0x40]+0x1] */ # 527: 720001 + sub a10, a10, a6 /* [[arg1+0x40]]-0xdd */ # 52a: 60aac0 + moveqz a9, a8, a10 # 52d: a09883 + bgeu a7, a9, .Lbr054 # 530: 97b702 + s32i a3, a12, 64 /* 0x00000000 -> [arg1+0x40] */ # 533: 326c10 +.Lbr054: l32i a12, sp, 8 /* [(local2)] */ # 536: c821 + l32i a13, sp, 12 /* [(local3)] */ # 538: d831 + l32i a14, sp, 16 /* [(local4)] */ # 53a: e841 + l32i a15, sp, 20 /* [(local5)] */ # 53c: f851 + l32i a0, sp, 4 /* [(local1)] */ # 53e: 0811 + addi sp, sp, 32 /* (top of frame) */ # 540: 12c120 + ret # 543: 0df0 +.Lbr055: movi a2, 2 /* 0x00000002 */ # 545: 0c22 + j .Lbr047 # 547: 86ddff + + .literal_position # 54c: 0050f200 + # 550: 0050f201 + # 554: 0050f202 + # 558: 0050f204 + # 55c: 0050f205 + +# Function @ .irom0.text+0x560 + .balign 4 +.Lfunc001: movi a4, 0x00f25000 # 560: 41fbff + l8ui a7, a2, 3 /* [arg0+0x3] */ # 563: 720203 + l8ui a6, a2, 1 /* [arg0+0x1] */ # 566: 620201 + l8ui a5, a2, 0 /* [arg0] */ # 569: 520200 + slli a6, a6, 8 # 56c: 806611 + or a5, a5, a6 # 56f: 605520 + l8ui a6, a2, 2 /* [arg0+0x2] */ # 572: 620202 + slli a7, a7, 24 # 575: 807701 + slli a6, a6, 16 # 578: 006611 + or a6, a6, a7 # 57b: 706620 + or a2, a5, a6 # 57e: 602520 + beq a2, a4, .Lbr059 # 581: 471231 + movi a7, 0x01f25000 # 584: 71f3ff + movi a8, 0x02f25000 # 587: 81f3ff + beq a2, a7, .Lbr058 # 58a: 77121d + beq a2, a8, .Lbr060 # 58d: 871229 + movi a9, 0x04f25000 # 590: 91f2ff + movi a10, 0x05f25000 # 593: a1f2ff + beq a2, a9, .Lbr061 # 596: 971224 + beq a2, a10, .Lbr056 # 599: a71203 + movi a2, 32 /* 0x00000020 */ # 59c: 2c02 + ret /* 0x00000020 */ # 59e: 0df0 +.Lbr056: beqz a3, .Lbr057 # 5a0: 8c33 + movi a11, 13 /* 0x0000000d */ # 5a2: 0cdb + s8i a11, a3, 0 /* 0x0d -> [arg1] */ # 5a4: b24300 +.Lbr057: movi a2, 6 /* 0x00000006 */ # 5a7: 0c62 + ret /* 0x00000006 */ # 5a9: 0df0 +.Lbr058: beqz a3, .Lbr057 # 5ab: 1683ff + movi a2, 5 /* 0x00000005 */ # 5ae: 0c52 + s8i a2, a3, 0 /* 0x05 -> [arg1] */ # 5b0: 224300 + j .Lbr057 # 5b3: 06fcff +.Lbr059: movi a2, 0 /* 0x00000000 */ # 5b6: 0c02 + ret /* 0x00000000 */ # 5b8: 0df0 +.Lbr060: movi a2, 1 /* 0x00000001 */ # 5ba: 0c12 + ret /* 0x00000001 */ # 5bc: 0df0 +.Lbr061: movi a2, 3 /* 0x00000003 */ # 5be: 0c32 + ret /* 0x00000003 */ # 5c0: 0df0 + + .literal_position # 5c4: 0050f200 + # 5c8: 0050f201 + # 5cc: 0050f202 + +# Function @ .irom0.text+0x5d0 + .balign 4 +.Lfunc002: movi a3, 0x00f25000 # 5d0: 31fdff + l8ui a6, a2, 3 /* [arg0+0x3] */ # 5d3: 620203 + l8ui a5, a2, 1 /* [arg0+0x1] */ # 5d6: 520201 + l8ui a4, a2, 0 /* [arg0] */ # 5d9: 420200 + slli a5, a5, 8 # 5dc: 805511 + or a4, a4, a5 # 5df: 504420 + l8ui a5, a2, 2 /* [arg0+0x2] */ # 5e2: 520202 + slli a6, a6, 24 # 5e5: 806601 + slli a5, a5, 16 # 5e8: 005511 + or a5, a5, a6 # 5eb: 605520 + or a2, a4, a5 # 5ee: 502420 + beq a2, a3, .Lbr062 # 5f1: 37120b + movi a6, 0x01f25000 # 5f4: 61f5ff + movi a7, 0x02f25000 # 5f7: 71f5ff + beq a2, a6, .Lbr064 # 5fa: 67120a + beq a2, a7, .Lbr063 # 5fd: 771203 +.Lbr062: movi a2, 0 /* 0x00000000 */ # 600: 0c02 + ret /* 0x00000000 */ # 602: 0df0 +.Lbr063: movi a2, 2 /* 0x00000002 */ # 604: 0c22 + ret /* 0x00000002 */ # 606: 0df0 +.Lbr064: movi a2, 1 /* 0x00000001 */ # 608: 0c12 + ret /* 0x00000001 */ # 60a: 0df0 + + .literal_position # 60c: 000fac00 + # 610: 000fac01 + # 614: 000fac02 + # 618: 000fac03 + # 61c: 000fac04 + # 620: 000fac05 + +# Function @ .irom0.text+0x624 + .balign 4 +.Lfunc003: movi a4, 0x00ac0f00 # 624: 41faff + l8ui a7, a2, 3 /* [arg0+0x3] */ # 627: 720203 + l8ui a6, a2, 1 /* [arg0+0x1] */ # 62a: 620201 + l8ui a5, a2, 0 /* [arg0] */ # 62d: 520200 + slli a6, a6, 8 # 630: 806611 + or a5, a5, a6 # 633: 605520 + l8ui a6, a2, 2 /* [arg0+0x2] */ # 636: 620202 + slli a7, a7, 24 # 639: 807701 + slli a6, a6, 16 # 63c: 006611 + or a6, a6, a7 # 63f: 706620 + or a2, a5, a6 # 642: 602520 + beq a2, a4, .Lbr068 # 645: 471237 + movi a7, 0x01ac0f00 # 648: 71f2ff + movi a8, 0x02ac0f00 # 64b: 81f2ff + beq a2, a7, .Lbr067 # 64e: 771223 + beq a2, a8, .Lbr069 # 651: 87122f + movi a9, 0x03ac0f00 # 654: 91f1ff + movi a10, 0x04ac0f00 # 657: a1f1ff + beq a2, a9, .Lbr070 # 65a: 97122a + beq a2, a10, .Lbr071 # 65d: a7122b + movi a11, 0x05ac0f00 # 660: b1f0ff + beq a2, a11, .Lbr065 # 663: b71203 + movi a2, 32 /* 0x00000020 */ # 666: 2c02 + ret /* 0x00000020 */ # 668: 0df0 +.Lbr065: beqz a3, .Lbr066 # 66a: 8c33 + movi a2, 13 /* 0x0000000d */ # 66c: 0cd2 + s8i a2, a3, 0 /* 0x0d -> [arg1] */ # 66e: 224300 +.Lbr066: movi a2, 6 /* 0x00000006 */ # 671: 0c62 + ret /* 0x00000006 */ # 673: 0df0 +.Lbr067: beqz a3, .Lbr066 # 675: 1683ff + movi a4, 5 /* 0x00000005 */ # 678: 0c54 + s8i a4, a3, 0 /* 0x05 -> [arg1] */ # 67a: 424300 + j .Lbr066 # 67d: 06fcff +.Lbr068: movi a2, 0 /* 0x00000000 */ # 680: 0c02 + ret /* 0x00000000 */ # 682: 0df0 +.Lbr069: movi a2, 1 /* 0x00000001 */ # 684: 0c12 + ret /* 0x00000001 */ # 686: 0df0 +.Lbr070: movi a2, 2 /* 0x00000002 */ # 688: 0c22 + ret /* 0x00000002 */ # 68a: 0df0 +.Lbr071: movi a2, 3 /* 0x00000003 */ # 68c: 0c32 + ret /* 0x00000003 */ # 68e: 0df0 + + .literal_position # 690: 000fac00 + # 694: 000fac01 + # 698: 000fac02 + +# Function @ .irom0.text+0x69c + .balign 4 +.Lfunc004: movi a3, 0x00ac0f00 # 69c: 31fdff + l8ui a6, a2, 3 /* [arg0+0x3] */ # 69f: 620203 + l8ui a5, a2, 1 /* [arg0+0x1] */ # 6a2: 520201 + l8ui a4, a2, 0 /* [arg0] */ # 6a5: 420200 + slli a5, a5, 8 # 6a8: 805511 + or a4, a4, a5 # 6ab: 504420 + l8ui a5, a2, 2 /* [arg0+0x2] */ # 6ae: 520202 + slli a6, a6, 24 # 6b1: 806601 + slli a5, a5, 16 # 6b4: 005511 + or a5, a5, a6 # 6b7: 605520 + or a2, a4, a5 # 6ba: 502420 + beq a2, a3, .Lbr072 # 6bd: 37120b + movi a6, 0x01ac0f00 # 6c0: 61f5ff + movi a7, 0x02ac0f00 # 6c3: 71f5ff + beq a2, a6, .Lbr074 # 6c6: 67120a + beq a2, a7, .Lbr073 # 6c9: 771203 +.Lbr072: movi a2, 0 /* 0x00000000 */ # 6cc: 0c02 + ret /* 0x00000000 */ # 6ce: 0df0 +.Lbr073: movi a2, 2 /* 0x00000002 */ # 6d0: 0c22 + ret /* 0x00000002 */ # 6d2: 0df0 +.Lbr074: movi a2, 1 /* 0x00000001 */ # 6d4: 0c12 + ret /* 0x00000001 */ # 6d6: 0df0 + + .literal_position # 6d8: 00000000 + +# Function @ .irom0.text+0x6dc +# Local variables/stack: +# (local0): byte[4] @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word @ -0x10 +# (local5): word @ -0xc +# (local6): word @ -0x8 +# (local7): word @ -0x4 + .balign 4 + .global ieee80211_parse_wpa + .type ieee80211_parse_wpa, @function +ieee80211_parse_wpa: + movi a5, 0 /* 0x00000000 */ # 6dc: 0c05 + addi sp, sp, -32 /* (local0) */ # 6de: 12c1e0 + s32i a0, sp, 24 /* a0 -> [(local6)] */ # 6e1: 0961 + s8i a5, sp, 0 /* 0x00 -> [(local0)] */ # 6e3: 524100 + l32i a0, a2, 48 /* [arg0+0x30] */ # 6e6: 08c2 + beqz a0, .Lbr075 # 6e8: 9c50 + s32i a0, sp, 16 /* [arg0+0x30] -> [(local4)] */ # 6ea: 0941 + l8ui a3, a0, 7 /* [[arg0+0x30]+0x7] */ # 6ec: 320007 + l8ui a2, a0, 6 /* [[arg0+0x30]+0x6] */ # 6ef: 220006 + slli a3, a3, 8 # 6f2: 803311 + or a2, a2, a3 # 6f5: 302220 + slli a2, a2, 16 # 6f8: 002211 + srai a2, a2, 16 # 6fb: 202031 + beqi a2, 1, .Lbr078 # 6fe: 261210 +.Lbr075: mov a2, a5 /* 0x00000000 */ # 701: 2d05 + j .Lbr077 # 703: 060100 +.Lbr076: bltz a0, .Lbr087 # 706: 96300e + movi a2, 1 /* 0x00000001 */ # 709: 0c12 +.Lbr077: l32i a0, sp, 24 /* [(local6)] */ # 70b: 0861 + addi sp, sp, 32 /* (top of frame) */ # 70d: 12c120 + ret # 710: 0df0 +.Lbr078: mov a3, sp /* (local0) */ # 712: 3d01 + addi a2, a0, 8 /* [arg0+0x30]+0x8 */ # 714: 8b20 + movi a4, 3 /* 0x00000003 */ # 716: 0c34 + l8ui a6, a0, 1 /* [[arg0+0x30]+0x1] */ # 718: 620001 + movi a5, g_ic+0x188 # 71b: 51efff + s32i a5, sp, 20 /* g_ic+0x188 -> [(local5)] */ # 71e: 5951 + addi a6, a6, -6 /* [[arg0+0x30]+0x1]-0x6 */ # 720: 62c6fa + s32i a6, sp, 4 /* [[arg0+0x30]+0x1]-0x6 -> [(local1)] */ # 723: 6911 + s8i a4, a5, 128 /* 0x03 -> [g_ic+0x208] */ # 725: 424580 + call0 .Lfunc001 # 728: 45e3ff + movi a5, 0 /* 0x00000000 */ # 72b: 0c05 + l32i a6, sp, 16 /* [(local4)] */ # 72d: 6841 + l32i a0, sp, 4 /* [(local1)] */ # 72f: 0811 + l32i a7, sp, 20 /* [(local5)] */ # 731: 7851 + addi a0, a0, -6 /* [(local1)]-0x6 */ # 733: 02c0fa + s8i a2, a7, 132 /* a2 -> [[(local5)]+0x84] */ # 736: 224784 + l8ui a7, a6, 13 /* [[(local4)]+0xd] */ # 739: 72060d + l8ui a6, a6, 12 /* [[(local4)]+0xc] */ # 73c: 62060c + slli a7, a7, 8 # 73f: 807711 + or a6, a6, a7 # 742: 706620 + extui a6, a6, 0, 16 # 745: 6060f4 +.Lbr079: beqz a0, .Lbr082 # 748: bc80 + s32i a5, sp, 12 /* a5 -> [(local3)] */ # 74a: 5931 + s32i a6, sp, 28 /* a6 -> [(local7)] */ # 74c: 6971 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 74e: 0911 + extui a8, a5, 0, 16 # 750: 5080f4 + bgeu a8, a6, .Lbr082 # 753: 67b82d + l32i a3, sp, 16 /* [(local4)] */ # 756: 3841 + l32i a2, sp, 12 /* [(local3)] */ # 758: 2831 + addx4 a2, a2, a3 # 75a: 3022a0 + addi a2, a2, 14 # 75d: eb22 + mov a3, sp /* (local0) */ # 75f: 3d01 + call0 .Lfunc001 # 761: c5dfff + l32i a0, sp, 20 /* [(local5)] */ # 764: 0851 + l32i a6, sp, 28 /* [(local7)] */ # 766: 6871 + l8ui a0, a0, 130 /* [[(local5)]+0x82] */ # 768: 020082 + l32i a5, sp, 12 /* [(local3)] */ # 76b: 5831 + beqz a0, .Lbr080 # 76d: 8c10 + bnei a0, 1, .Lbr081 # 76f: 661004 +.Lbr080: l32i a3, sp, 20 /* [(local5)] */ # 772: 3851 + s8i a2, a3, 130 /* a2 -> [[(local5)]+0x82] */ # 774: 224382 +.Lbr081: l32i a0, sp, 4 /* [(local1)] */ # 777: 0811 + addi a4, a5, 1 /* [(local3)]+0x1 */ # 779: 1b45 + extui a5, a4, 0, 8 # 77b: 405074 + addi a0, a0, -4 /* [(local1)]-0x4 */ # 77e: 02c0fc + j .Lbr079 # 781: c6f0ff +.Lbr082: blti a0, 1, .Lbr087 # 784: a61065 + movi a5, 0 /* 0x00000000 */ # 787: 0c05 + l32i a7, sp, 16 /* [(local4)] */ # 789: 7841 + addi a0, a0, -2 # 78b: 02c0fe + addx4 a6, a6, a7 # 78e: 7066a0 + addi a2, a6, 16 # 791: 22c610 + l8ui a7, a6, 15 # 794: 72060f + l8ui a6, a6, 14 # 797: 62060e + slli a7, a7, 8 # 79a: 807711 + or a6, a6, a7 # 79d: 706620 + extui a6, a6, 0, 16 # 7a0: 6060f4 +.Lbr083: beqz a0, .Lbr076 # 7a3: 16f0f5 + s32i a6, sp, 28 /* a6 -> [(local7)] */ # 7a6: 6971 + s32i a5, sp, 12 /* a5 -> [(local3)] */ # 7a8: 5931 + s32i a2, sp, 8 /* a2 -> [(local2)] */ # 7aa: 2921 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 7ac: 0911 + extui a9, a5, 0, 16 # 7ae: 5090f4 + bltu a9, a6, .Lbr084 # 7b1: 673902 + j .Lbr076 # 7b4: 86d3ff +.Lbr084: l32i a2, sp, 8 /* [(local2)] */ # 7b7: 2821 + call0 .Lfunc002 # 7b9: 45e1ff + bnei a2, 1, .Lbr085 # 7bc: 661209 + l32i a11, sp, 20 /* [(local5)] */ # 7bf: b851 + movi a10, 2 /* 0x00000002 */ # 7c1: 0c2a + s8i a10, a11, 129 /* 0x02 -> [[(local5)]+0x81] */ # 7c3: a24b81 + j .Lbr086 # 7c6: 860300 +.Lbr085: l32i a2, sp, 8 /* [(local2)] */ # 7c9: 2821 + call0 .Lfunc002 # 7cb: 45e0ff + bnei a2, 2, .Lbr086 # 7ce: 662206 + l32i a2, sp, 20 /* [(local5)] */ # 7d1: 2851 + movi a0, 3 /* 0x00000003 */ # 7d3: 0c30 + s8i a0, a2, 129 /* 0x03 -> [[(local5)]+0x81] */ # 7d5: 024281 +.Lbr086: l32i a6, sp, 28 /* [(local7)] */ # 7d8: 6871 + l32i a5, sp, 12 /* [(local3)] */ # 7da: 5831 + l32i a2, sp, 8 /* [(local2)] */ # 7dc: 2821 + l32i a0, sp, 4 /* [(local1)] */ # 7de: 0811 + addi a2, a2, 4 /* [(local2)]+0x4 */ # 7e0: 4b22 + addi a0, a0, -4 /* [(local1)]-0x4 */ # 7e2: 02c0fc + addi a3, a5, 1 /* [(local3)]+0x1 */ # 7e5: 1b35 + extui a5, a3, 0, 8 # 7e7: 305074 + j .Lbr083 # 7ea: 46edff +.Lbr087: movi a2, 0 /* 0x00000000 */ # 7ed: 0c02 + j .Lbr077 # 7ef: 06c6ff + + .literal_position # 7f4: 00000000 + +# Function @ .irom0.text+0x7f8 +# Local variables/stack: +# (local0): byte[4] @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word @ -0x10 +# (local5): word @ -0xc +# (local6): word @ -0x8 +# (local7): word @ -0x4 + .balign 4 + .global ieee80211_parse_rsn + .type ieee80211_parse_rsn, @function +ieee80211_parse_rsn: + movi a4, 0 /* 0x00000000 */ # 7f8: 0c04 + addi sp, sp, -32 /* (local0) */ # 7fa: 12c1e0 + s32i a13, sp, 16 /* a13 -> [(local4)] */ # 7fd: d941 + s32i a14, sp, 20 /* a14 -> [(local5)] */ # 7ff: e951 + s32i a15, sp, 24 /* a15 -> [(local6)] */ # 801: f961 + s32i a12, sp, 12 /* a12 -> [(local3)] */ # 803: c931 + s8i a4, sp, 0 /* 0x00 -> [(local0)] */ # 805: 424100 + l32i a12, a2, 52 /* [arg0+0x34] */ # 808: c8d2 + s32i a0, sp, 8 /* a0 -> [(local2)] */ # 80a: 0921 + beqz a12, .Lbr088 # 80c: 9c9c + l8ui a5, a12, 1 /* [[arg0+0x34]+0x1] */ # 80e: 520c01 + l8ui a2, a12, 3 /* [[arg0+0x34]+0x3] */ # 811: 220c03 + blti a5, 10, .Lbr088 # 814: a69511 + l8ui a0, a12, 2 /* [[arg0+0x34]+0x2] */ # 817: 020c02 + slli a2, a2, 8 # 81a: 802211 + or a0, a0, a2 # 81d: 200020 + slli a0, a0, 16 # 820: 000011 + srai a0, a0, 16 # 823: 000031 + beqi a0, 1, .Lbr092 # 826: 26101b +.Lbr088: mov a2, a4 /* 0x00000000 */ # 829: 2d04 + j .Lbr091 # 82b: c60100 +.Lbr089: bgei a13, 2, .Lbr090 # 82e: e62d02 + j .Lbr101 # 831: 862e00 +.Lbr090: movi a2, 1 /* 0x00000001 */ # 834: 0c12 +.Lbr091: l32i a12, sp, 12 /* [(local3)] */ # 836: c831 + l32i a13, sp, 16 /* [(local4)] */ # 838: d841 + l32i a14, sp, 20 /* [(local5)] */ # 83a: e851 + l32i a15, sp, 24 /* [(local6)] */ # 83c: f861 + l32i a0, sp, 8 /* [(local2)] */ # 83e: 0821 + addi sp, sp, 32 /* (top of frame) */ # 840: 12c120 + ret # 843: 0df0 +.Lbr092: addi a2, a12, 4 /* [arg0+0x34]+0x4 */ # 845: 4b2c + movi a15, g_ic+0x188 # 847: f1ebff + movi a3, 3 /* 0x00000003 */ # 84a: 0c33 + s32i a5, sp, 28 /* [[arg0+0x34]+0x1] -> [(local7)] */ # 84c: 5971 + s8i a3, a15, 128 /* 0x03 -> [g_ic+0x208] */ # 84e: 324f80 + mov a3, sp /* (local0) */ # 851: 3d01 + call0 .Lfunc003 # 853: 05ddff + movi a14, 0 /* 0x00000000 */ # 856: 0c0e + l32i a13, sp, 28 /* [(local7)] */ # 858: d871 + s8i a2, a15, 132 /* a2 -> [g_ic+0x20c] */ # 85a: 224f84 + l8ui a4, a12, 8 /* [[arg0+0x34]+0x8] */ # 85d: 420c08 + l8ui a5, a12, 9 /* [[arg0+0x34]+0x9] */ # 860: 520c09 + addi a13, a13, -8 /* [(local7)]-0x8 */ # 863: d2cdf8 + addi a12, a12, 10 /* [arg0+0x34]+0xa */ # 866: abcc + slli a5, a5, 8 # 868: 805511 + or a4, a4, a5 # 86b: 504420 + extui a4, a4, 0, 16 # 86e: 4040f4 + s32i a4, sp, 4 /* a4 -> [(local1)] */ # 871: 4911 +.Lbr093: l32i a2, sp, 4 /* [(local1)] */ # 873: 2811 + extui a0, a14, 0, 16 # 875: e000f4 + bgeu a0, a2, .Lbr096 # 878: 27b020 + beqz a13, .Lbr096 # 87b: 9cdd + mov a2, a12 # 87d: 2d0c + mov a3, sp /* (local0) */ # 87f: 3d01 + call0 .Lfunc003 # 881: 05daff + addi a13, a13, -4 # 884: d2cdfc + l8ui a0, a15, 130 /* [g_ic+0x20a] */ # 887: 020f82 + addi a12, a12, 4 # 88a: 4bcc + beqz a0, .Lbr094 # 88c: 8c10 + bnei a0, 1, .Lbr095 # 88e: 661002 +.Lbr094: s8i a2, a15, 130 /* a2 -> [g_ic+0x20a] */ # 891: 224f82 +.Lbr095: addi a14, a14, 1 # 894: 1bee + extui a14, a14, 0, 8 # 896: e0e074 + j .Lbr093 # 899: 86f5ff +.Lbr096: blti a13, 1, .Lbr101 # 89c: a61d4f + movi a14, 0 /* 0x00000000 */ # 89f: 0c0e + addi a13, a13, -2 # 8a1: d2cdfe + l8ui a0, a12, 0 # 8a4: 020c00 + l8ui a2, a12, 1 # 8a7: 220c01 + addi a12, a12, 2 # 8aa: 2bcc + slli a2, a2, 8 # 8ac: 802211 + or a0, a0, a2 # 8af: 200020 + extui a0, a0, 0, 16 # 8b2: 0000f4 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 8b5: 0911 +.Lbr097: beqz a13, .Lbr089 # 8b7: 163df7 + l32i a6, sp, 4 /* [(local1)] */ # 8ba: 6811 + extui a5, a14, 0, 16 # 8bc: e050f4 + bltu a5, a6, .Lbr098 # 8bf: 673502 + j .Lbr089 # 8c2: 06daff +.Lbr098: mov a2, a12 # 8c5: 2d0c + call0 .Lfunc004 # 8c7: 45ddff + bnei a2, 1, .Lbr099 # 8ca: 661207 + movi a7, 4 /* 0x00000004 */ # 8cd: 0c47 + s8i a7, a15, 129 /* 0x04 -> [g_ic+0x209] */ # 8cf: 724f81 + j .Lbr100 # 8d2: 060300 +.Lbr099: mov a2, a12 # 8d5: 2d0c + call0 .Lfunc004 # 8d7: 45dcff + bnei a2, 2, .Lbr100 # 8da: 662204 + movi a8, 5 /* 0x00000005 */ # 8dd: 0c58 + s8i a8, a15, 129 /* 0x05 -> [g_ic+0x209] */ # 8df: 824f81 +.Lbr100: addi a12, a12, 4 # 8e2: 4bcc + addi a13, a13, -4 # 8e4: d2cdfc + addi a14, a14, 1 # 8e7: 1bee + extui a14, a14, 0, 8 # 8e9: e0e074 + j .Lbr097 # 8ec: c6f1ff +.Lbr101: movi a2, 0 /* 0x00000000 */ # 8ef: 0c02 + j .Lbr091 # 8f1: 46d0ff + +# Function @ .irom0.text+0x8f4 + .balign 4 + .global ieee80211_parse_action + .type ieee80211_parse_action, @function +ieee80211_parse_action: + l32i a4, a3, 4 /* [arg1+0x4] */ # 8f4: 4813 + l16ui a2, a3, 22 /* [arg1+0x16] */ # 8f6: 22130b + l32i a3, a4, 4 /* [[arg1+0x4]+0x4] */ # 8f9: 3814 + add a2, a2, a3 # 8fb: 3a22 + addi a2, a2, 24 # 8fd: 22c218 + sub a2, a2, a3 # 900: 3022c0 + addi a2, a2, -24 # 903: 22c2e8 + bltui a2, 2, .Lbr104 # 906: b6221c + l8ui a5, a3, 24 /* [[[arg1+0x4]+0x4]+0x18] */ # 909: 520318 + beqi a5, 3, .Lbr105 # 90c: 26351a + bnei a5, 7, .Lbr102 # 90f: 66750a + l8ui a3, a3, 25 /* [[[arg1+0x4]+0x4]+0x19] */ # 912: 320319 + beqz a3, .Lbr106 # 915: ac33 + bnei a3, 1, .Lbr102 # 917: 661302 + bltui a2, 3, .Lbr104 # 91a: b63208 +.Lbr102: movi a2, 0 /* 0x00000000 */ # 91d: 0c02 + ret /* 0x00000000 */ # 91f: 0df0 +.Lbr103: movi a5, 8 /* 0x00000008 */ # 921: 0c85 + bltu a5, a2, .Lbr102 # 923: 2735f6 +.Lbr104: movi a2, -1 /* 0xffffffff */ # 926: 7cf2 + ret /* 0xffffffff */ # 928: 0df0 +.Lbr105: l8ui a3, a3, 25 /* [[[arg1+0x4]+0x4]+0x19] */ # 92a: 320319 + beqz a3, .Lbr103 # 92d: 1603ff + beqi a3, 1, .Lbr107 # 930: 26130e + bnei a3, 2, .Lbr102 # 933: 6623e6 + bltui a2, 6, .Lbr104 # 936: b662ec + j .Lbr102 # 939: 06f8ff +.Lbr106: bltui a2, 3, .Lbr104 # 93c: b632e6 + j .Lbr102 # 93f: 86f6ff +.Lbr107: movi a6, 8 /* 0x00000008 */ # 942: 0c86 + bgeu a6, a2, .Lbr104 # 944: 27b6de + j .Lbr102 # 947: 86f4ff + + .balign 4 +# Function @ .irom0.text+0x94c + .balign 4 + .global ieee80211_setup_rateset + .type ieee80211_setup_rateset, @function +ieee80211_setup_rateset: + movi a2, 0 /* 0x00000000 */ # 94c: 0c02 + ret /* 0x00000000 */ # 94e: 0df0 diff --git a/binary_sdk/libnet80211_stage1/ieee80211_mesh.S b/binary_sdk/libnet80211_stage1/ieee80211_mesh.S new file mode 100644 index 0000000..e69de29 diff --git a/binary_sdk/libnet80211_stage1/ieee80211_node.S b/binary_sdk/libnet80211_stage1/ieee80211_node.S new file mode 100644 index 0000000..e69de29 diff --git a/binary_sdk/libnet80211_stage1/ieee80211_output.S b/binary_sdk/libnet80211_stage1/ieee80211_output.S new file mode 100644 index 0000000..83c0f7b --- /dev/null +++ b/binary_sdk/libnet80211_stage1/ieee80211_output.S @@ -0,0 +1,2780 @@ + + .section .irom0.text, "ax", @progbits + + .literal_position # 0: 8e880000 + # 4: 00000000 + # 8: 000af23f + # c: ff0f00ff + # 10: 00000000 + # 14: 00060060 + # 18: 00000000 + # 1c: 00000000 + # 20: c0120000 + # 24: 84090000 + # 28: 00000000 + # 2c: dc060000 + # 30: 00000000 + # 34: 00000000 + # 38: 00000000 + # 3c: 00000000 + # 40: 00000000 + # 44: 00000000 + +# Function @ .irom0.text+0x48 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word @ -0x10 +# (local5): word @ -0xc +# (local6): word @ -0x8 +# (local7): word @ -0x4 + .balign 4 + .global ieee80211_output_pbuf + .type ieee80211_output_pbuf, @function +ieee80211_output_pbuf: + addi sp, sp, -32 /* (local0) */ # 48: 12c1e0 + s32i a12, sp, 20 /* a12 -> [(local5)] */ # 4b: c951 + s32i a14, sp, 28 /* a14 -> [(local7)] */ # 4d: e971 + s32i a13, sp, 24 /* a13 -> [(local6)] */ # 4f: d961 + l32i a13, a2, 28 /* [arg0+0x1c] */ # 51: d872 + s32i a0, sp, 16 /* a0 -> [(local4)] */ # 53: 0941 + l32i a0, a13, 60 /* [[arg0+0x1c]+0x3c] */ # 55: 08fd + mov a14, a3 /* arg1 */ # 57: ed03 + addi a0, a0, -5 /* [[arg0+0x1c]+0x3c]-0x5 */ # 59: 02c0fb + bnez a0, .Lbr005 # 5c: 56c00b + beqz a3, .Lbr005 # 5f: 16930b + l32i a2, a14, 4 /* [arg1+0x4] */ # 62: 281e + l32i a3, a13, 176 /* [[arg0+0x1c]+0xb0] */ # 64: 322d2c + s32i a2, sp, 8 /* [arg1+0x4] -> [(local2)] */ # 67: 2921 + bnez a3, .Lbr001 # 69: cc43 + l32i a12, a13, 136 /* [[arg0+0x1c]+0x88] */ # 6b: c22d22 + j .Lbr002 # 6e: 460200 +.Lbr001: s32i a2, sp, 8 /* [arg1+0x4] -> [(local2)] */ # 71: 2921 + call0 cnx_node_search # 73: 01eaffc0 + # 77: 0000 + mov a12, a2 # 79: cd02 +.Lbr002: beqz a12, .Lbr005 # 7b: 16dc09 + l16ui a4, a12, 26 # 7e: 421c0d + bnez a4, .Lbr003 # 81: cc64 + l32i a5, a12, 8 # 83: 582c + extui a5, a5, 17, 1 # 85: 505105 + bnez a5, .Lbr005 # 88: 560509 +.Lbr003: mov a2, a12 # 8b: 2d0c + movi a6, 1 /* 0x00000001 */ # 8d: 0c16 + l32i a9, sp, 8 /* [(local2)] */ # 8f: 9821 + movi a3, 0 /* 0x00000000 */ # 91: 0c03 + l8ui a8, a9, 13 /* [[(local2)]+0xd] */ # 93: 82090d + l8ui a9, a9, 12 /* [[(local2)]+0xc] */ # 96: 92090c + slli a8, a8, 8 # 99: 808811 + or a8, a8, a9 # 9c: 908820 + extui a7, a8, 8, 8 # 9f: 807874 + extui a8, a8, 0, 8 # a2: 808074 + slli a8, a8, 8 # a5: 808811 + or a7, a7, a8 # a8: 807720 + movi a8, 0x0000888e # ab: 81d5ff + extui a7, a7, 0, 16 # ae: 7070f4 + sub a7, a7, a8 # b1: 8077c0 + moveqz a3, a6, a7 # b4: 703683 + s32i a3, sp, 4 /* a3 -> [(local1)] */ # b7: 3911 + call0 .Lfunc005 # b9: 01d9ffc0 + # bd: 0000 + beqz a2, .Lbr005 # bf: 169205 + s32i a12, a13, 136 /* a12 -> [[arg0+0x1c]+0x88] */ # c2: c26d22 + mov a2, a12 # c5: 2d0c + mov a3, a14 /* arg1 */ # c7: 3d0e + call0 .Lfunc002 # c9: 01d6ffc0 + # cd: 0000 + movi a3, 1 /* 0x00000001 */ # cf: 0c13 + s32i a2, sp, 0 /* a2 -> [(local0)] */ # d1: 2901 + movi a4, 0 /* 0x00000000 */ # d3: 0c04 + mov a2, a14 /* arg1 */ # d5: 2d0e + call0 esf_buf_alloc # d7: 01d4ffc0 + # db: 0000 + mov a3, a2 # dd: 3d02 + beqz a2, .Lbr005 # df: bc92 + movi a5, 4 /* 0x00000004 */ # e1: 0c45 + l32i a10, sp, 4 /* [(local1)] */ # e3: a811 + movi a0, 8 /* 0x00000008 */ # e5: 0c80 + beqz a10, .Lbr004 # e7: 9cba + l32i a2, a2, 32 # e9: 2882 + l32i a4, a2, 0 # eb: 4802 + srli a6, a4, 6 # ed: 406641 + extui a4, a4, 0, 6 # f0: 404054 + or a6, a6, a5 # f3: 506620 + slli a6, a6, 6 # f6: a06611 + or a4, a4, a6 # f9: 604420 + s32i a4, a2, 0 # fc: 4902 + l32i a11, a13, 176 /* [[arg0+0x1c]+0xb0] */ # fe: b22d2c + bnez a11, .Lbr004 # 101: cc1b + s8i a0, a2, 14 # 103: 02420e +.Lbr004: mov a2, a13 /* [arg0+0x1c] */ # 106: 2d0d + call0 .Lfunc001 # 108: 01c9ffc0 + # 10c: 0000 + l32i a5, sp, 0 /* [(local0)] */ # 10e: 5801 + s32i a2, sp, 12 /* a2 -> [(local3)] */ # 110: 2931 + bnez a2, .Lbr007 # 112: dc52 + movi a3, 1 /* 0x00000001 */ # 114: 0c13 + call0 esf_buf_recycle # 116: 01c6ffc0 + # 11a: 0000 +.Lbr005: movi a2, 1 /* 0x00000001 */ # 11c: 0c12 +.Lbr006: l32i a12, sp, 20 /* [(local5)] */ # 11e: c851 + l32i a13, sp, 24 /* [(local6)] */ # 120: d861 + l32i a14, sp, 28 /* [(local7)] */ # 122: e871 + l32i a0, sp, 16 /* [(local4)] */ # 124: 0841 + addi sp, sp, 32 /* (top of frame) */ # 126: 12c120 + ret # 129: 0df0 +.Lbr007: s32i a2, sp, 12 /* a2 -> [(local3)] */ # 12b: 2931 + movi a11, 8 /* 0x00000008 */ # 12d: 0c8b + movi a3, 1 /* 0x00000001 */ # 12f: 0c13 + l32i a7, a2, 32 # 131: 7882 + movi a8, g_ic # 133: 81b4ff + l32i a10, a7, 0 # 136: a807 + l32i a6, a8, 16 /* [g_ic+0x10] */ # 138: 6848 + extui a9, a10, 0, 6 # 13a: a09054 + sub a6, a6, a13 # 13d: d066c0 + movnez a6, a3, a6 # 140: 606393 + srli a10, a10, 6 # 143: a0a641 + or a10, a10, a11 # 146: b0aa20 + movi a3, 143 /* 0x0000008f */ # 149: 32a08f + l8ui a11, a7, 6 # 14c: b20706 + slli a10, a10, 6 # 14f: a0aa11 + or a9, a9, a10 # 152: a09920 + and a11, a11, a3 # 155: 30bb10 + s32i a9, a7, 0 # 158: 9907 + extui a3, a5, 0, 3 # 15a: 503024 + bnez a6, .Lbr008 # 15d: cc36 + movi a0, 0 /* 0x00000000 */ # 15f: 0c00 + j .Lbr009 # 161: 860000 +.Lbr008: l16ui a0, a12, 26 # 164: 021c0d +.Lbr009: l32i a10, sp, 12 /* [(local3)] */ # 167: a831 + slli a3, a3, 4 # 169: c03311 + or a11, a11, a3 # 16c: 30bb20 + s8i a11, a7, 6 # 16f: b24706 + beqz a5, .Lbr011 # 172: 9c35 + bnei a5, 1, .Lbr010 # 174: 661504 + movi a5, 5 /* 0x00000005 */ # 177: 0c55 + j .Lbr012 # 179: 860300 +.Lbr010: addi a7, a5, -3 /* [(local0)]-0x3 */ # 17c: 72c5fd + movi a4, 1 /* 0x00000001 */ # 17f: 0c14 + movi a5, 0 /* 0x00000000 */ # 181: 0c05 + moveqz a5, a4, a7 # 183: 705483 + j .Lbr012 # 186: 460000 +.Lbr011: movi a5, 6 /* 0x00000006 */ # 189: 0c65 +.Lbr012: l32i a9, a10, 32 /* [[(local3)]+0x20] */ # 18b: 988a + extui a11, a5, 0, 4 # 18d: 50b034 + l8ui a8, a9, 4 /* [[[(local3)]+0x20]+0x4] */ # 190: 820904 + movi a3, 240 /* 0x000000f0 */ # 193: 32a0f0 + and a8, a8, a3 # 196: 308810 + or a8, a8, a11 # 199: b08820 + s8i a8, a9, 4 /* a8 -> [[[(local3)]+0x20]+0x4] */ # 19c: 824904 + movi a7, 0x3ff20a00 # 19f: 719aff + movi a5, 0 /* 0x00000000 */ # 1a2: 0c05 + l32i a3, a10, 32 /* [[(local3)]+0x20] */ # 1a4: 388a + memw # 1a6: c02000 + movi a4, 254 /* 0x000000fe */ # 1a9: 42a0fe + l8ui a11, a3, 0 /* [[[(local3)]+0x20]] */ # 1ac: b20300 + l32i a7, a7, 0x200 /* [0x3ff20c00] */ # 1af: 722780 + s32i a7, a3, 16 /* [0x3ff20c00] -> [[[(local3)]+0x20]+0x10] */ # 1b2: 7943 + and a11, a11, a4 # 1b4: 40bb10 + s8i a11, a3, 0 /* a11 -> [[[(local3)]+0x20]] */ # 1b7: b24300 + movi a3, 253 /* 0x000000fd */ # 1ba: 32a0fd + l32i a10, a10, 32 /* [[(local3)]+0x20] */ # 1bd: a88a + extui a11, a6, 0, 1 # 1bf: 60b004 + l8ui a9, a10, 0 /* [[[(local3)]+0x20]] */ # 1c2: 920a00 + slli a11, a11, 1 # 1c5: f0bb11 + and a9, a9, a3 # 1c8: 309910 + or a9, a9, a11 # 1cb: b09920 + s8i a9, a10, 0 /* a9 -> [[[(local3)]+0x20]] */ # 1ce: 924a00 + l16ui a8, a12, 26 # 1d1: 821c0d + beqz a8, .Lbr019 # 1d4: 16280f + l32i a4, sp, 12 /* [(local3)] */ # 1d7: 4831 + l32i a4, a4, 32 /* [[(local3)]+0x20] */ # 1d9: 4884 + l32i a4, a4, 0 /* [[[(local3)]+0x20]] */ # 1db: 4804 + extui a4, a4, 7, 1 # 1dd: 404704 + bnez a4, .Lbr019 # 1e0: 56640e + extui a2, a0, 0, 8 # 1e3: 002074 + call0 rc_get_trc_by_index # 1e6: 0193ffc0 + # 1ea: 0000 + movi a5, 0 /* 0x00000000 */ # 1ec: 0c05 +.Lbr013: l32i a6, sp, 12 /* [(local3)] */ # 1ee: 6831 + l16ui a10, a6, 22 /* [[(local3)]+0x16] */ # 1f0: a2160b + l16ui a9, a6, 20 /* [[(local3)]+0x14] */ # 1f3: 92160a + s32i a2, a6, 24 /* a2 -> [[(local3)]+0x18] */ # 1f6: 2966 + add a9, a9, a10 # 1f8: aa99 + l32i a8, a6, 4 /* [[(local3)]+0x4] */ # 1fa: 8816 + movi a10, 128 /* 0x00000080 */ # 1fc: a2a080 + memw # 1ff: c02000 + l8ui a7, a8, 3 /* [[[(local3)]+0x4]+0x3] */ # 202: 720803 + extui a7, a7, 0, 7 # 205: 707064 + or a7, a7, a10 # 208: a07720 + memw # 20b: c02000 + s8i a7, a8, 3 /* a7 -> [[[(local3)]+0x4]+0x3] */ # 20e: 724803 + movi a4, 191 /* 0x000000bf */ # 211: 42a0bf + movi a3, 64 /* 0x00000040 */ # 214: 4c03 + memw # 216: c02000 + l8ui a0, a8, 3 /* [[[(local3)]+0x4]+0x3] */ # 219: 020803 + and a0, a0, a4 # 21c: 400010 + or a0, a0, a3 # 21f: 300020 + memw # 222: c02000 + s8i a0, a8, 3 /* a0 -> [[[(local3)]+0x4]+0x3] */ # 225: 024803 + movi a11, 223 /* 0x000000df */ # 228: b2a0df + memw # 22b: c02000 + l8ui a10, a8, 3 /* [[[(local3)]+0x4]+0x3] */ # 22e: a20803 + and a10, a10, a11 # 231: b0aa10 + or a10, a10, a5 # 234: 50aa20 + memw # 237: c02000 + s8i a10, a8, 3 /* a10 -> [[[(local3)]+0x4]+0x3] */ # 23a: a24803 + extui a9, a9, 0, 12 # 23d: 9090b4 + slli a9, a9, 12 # 240: 409911 + movi a10, 0xff000fff # 243: a172ff + memw # 246: c02000 + l16ui a7, a8, 2 /* [[[(local3)]+0x4]+0x2] */ # 249: 721801 + slli a7, a7, 16 # 24c: 007711 + memw # 24f: c02000 + l16ui a11, a8, 0 /* [[[(local3)]+0x4]] */ # 252: b21800 + or a7, a7, a11 # 255: b07720 + and a7, a7, a10 # 258: a07710 + or a7, a7, a9 # 25b: 907720 + memw # 25e: c02000 + s16i a7, a8, 0 /* a7 -> [[[(local3)]+0x4]] */ # 261: 725800 + extui a7, a7, 16, 16 # 264: 7070f5 + memw # 267: c02000 + l32i a6, a6, 32 /* [[(local3)]+0x20] */ # 26a: 6886 + l32i a6, a6, 0 /* [[[(local3)]+0x20]] */ # 26c: 6806 + s16i a7, a8, 2 /* a7 -> [[[(local3)]+0x4]+0x2] */ # 26e: 725801 + bbsi a6, 8, .Lbr014 # 271: 87e607 + mov a2, a14 /* arg1 */ # 274: 2d0e + call0 pbuf_ref # 276: 0170ffc0 + # 27a: 0000 +.Lbr014: l32i a11, a12, 8 # 27c: b82c + bbci a11, 4, .Lbr016 # 27e: 476b14 + l32i a14, a13, 176 /* [[arg0+0x1c]+0xb0] */ # 281: e22d2c + bnei a14, 1, .Lbr016 # 284: 661e0e + mov a2, a12 # 287: 2d0c + l32i a3, sp, 12 /* [(local3)] */ # 289: 3831 + call0 ieee80211_pwrsave # 28b: 016cffc0 + # 28f: 0000 +.Lbr015: movi a2, 0 /* 0x00000000 */ # 291: 0c02 + j .Lbr006 # 293: c6a1ff +.Lbr016: call0 chm_check_same_channel # 296: 016affc0 + # 29a: 0000 + beqz a2, .Lbr017 # 29c: 8c92 + l32i a2, sp, 12 /* [(local3)] */ # 29e: 2831 + call0 ppTxPkt # 2a0: 0169ffc0 + # 2a4: 0000 + j .Lbr018 # 2a6: 460500 +.Lbr017: movi a2, 0 /* 0x00000000 */ # 2a9: 0c02 + movi a6, 0 /* 0x00000000 */ # 2ab: 0c06 + l32i a4, sp, 12 /* [(local3)] */ # 2ad: 4831 + movi a3, g_ic # 2af: 3158ff + addi a0, a4, 28 /* [(local3)]+0x1c */ # 2b2: 02c41c + l32i a5, a3, 0x1c4 /* [g_ic+0x1c4] */ # 2b5: 522371 + s32i a6, a4, 28 /* 0x00000000 -> [[(local3)]+0x1c] */ # 2b8: 6974 + s32i a4, a5, 0 /* [(local3)] -> [[g_ic+0x1c4]] */ # 2ba: 4905 + s32i a0, a3, 0x1c4 /* [(local3)]+0x1c -> [g_ic+0x1c4] */ # 2bc: 026371 +.Lbr018: beqz a2, .Lbr020 # 2bf: 8cc2 + slli a2, a2, 24 # 2c1: 802201 + srai a2, a2, 24 # 2c4: 202831 + j .Lbr006 # 2c7: c694ff +.Lbr019: mov a2, a5 /* 0x00000000 */ # 2ca: 2d05 + j .Lbr013 # 2cc: 86c7ff +.Lbr020: movi a3, 0x60000600 # 2cf: 3151ff + memw # 2d2: c02000 + movi a4, g_ic # 2d5: 4150ff + l32i a3, a3, 36 /* [0x60000624] */ # 2d8: 3893 + s32i a3, a4, 0x164 /* [0x60000624] -> [g_ic+0x164] */ # 2da: 326459 + j .Lbr015 # 2dd: 06ecff + + .literal_position # 2e0: 00000000 + # 2e4: 00000000 + # 2e8: 00000000 + # 2ec: 00000000 + # 2f0: 00000000 + # 2f4: 00000000 + # 2f8: 00000000 + # 2fc: 00000000 + # 300: 00000000 + # 304: 00000000 + +# Function @ .irom0.text+0x308 +# Local variables/stack: +# (local0): word @ -0x30 +# (local1): word @ -0x2c +# (local2): word @ -0x28 +# (local3): word @ -0x24 +# (local4): word @ -0x20 +# (local5): word @ -0x1c +# (local6): word @ -0x18 +# (local7): word @ -0x14 +# (local8): word[4] @ -0x10 + .balign 4 + .global ieee80211_send_setup + .type ieee80211_send_setup, @function +ieee80211_send_setup: + movi a9, 1 /* 0x00000001 */ # 308: 0c19 + addi sp, sp, -48 /* (local0) */ # 30a: 12c1d0 + s32i a5, sp, 4 /* arg3 -> [(local1)] */ # 30d: 5911 + s32i a12, sp, 12 /* a12 -> [(local3)] */ # 30f: c931 + s32i a15, sp, 24 /* a15 -> [(local6)] */ # 311: f961 + s32i a0, sp, 8 /* a0 -> [(local2)] */ # 313: 0921 + s32i a3, sp, 32 /* arg1 -> [(local8)] */ # 315: 3981 + s32i a13, sp, 16 /* a13 -> [(local4)] */ # 317: d941 + s32i a14, sp, 20 /* a14 -> [(local5)] */ # 319: e951 + mov a13, a7 /* arg5 */ # 31b: dd07 + mov a14, a2 /* arg0 */ # 31d: ed02 + movi a3, 12 /* 0x0000000c */ # 31f: 0cc3 + and a3, a4, a3 # 321: 303410 + l8ui a0, a14, 176 /* [arg0+0xb0] */ # 324: 020eb0 + l32i a15, sp, 32 /* [(local8)] */ # 327: f881 + mov a2, a6 /* arg4 */ # 329: 2d06 + l32i a8, a14, 136 /* [arg0+0x88] */ # 32b: 822e22 + s32i a8, sp, 28 /* [arg0+0x88] -> [(local7)] */ # 32e: 8971 + s32i a2, sp, 0 /* arg4 -> [(local0)] */ # 330: 2901 + l32i a12, a15, 16 /* [[(local8)]+0x10] */ # 332: c84f + slli a7, a0, 24 # 334: 807001 + s8i a4, a12, 0 /* arg2 -> [[[(local8)]+0x10]] */ # 337: 424c00 + srai a4, a7, 24 # 33a: 704831 + bnei a3, 8, .Lbr021 # 33d: 668332 + beqz a0, .Lbr026 # 340: 16300c + bnei a4, 1, .Lbr023 # 343: 66145d + addi a2, a12, 4 /* [[(local8)]+0x10]+0x4 */ # 346: 4b2c + movi a4, 2 /* 0x00000002 */ # 348: 0c24 + mov a3, a13 /* arg5 */ # 34a: 3d0d + s8i a4, a12, 1 /* 0x02 -> [[[(local8)]+0x10]+0x1] */ # 34c: 424c01 + movi a4, 6 /* 0x00000006 */ # 34f: 0c64 + call0 memcpy # 351: 01e4ffc0 + # 355: 0000 + addi a2, a12, 10 /* [[(local8)]+0x10]+0xa */ # 357: ab2c + movi a4, 6 /* 0x00000006 */ # 359: 0c64 + l32i a3, sp, 48 /* [(local9)] */ # 35b: 38c1 + call0 memcpy # 35d: 01e2ffc0 + # 361: 0000 + l32i a3, sp, 0 /* [(local0)] */ # 363: 3801 + addi a2, a12, 16 /* [[(local8)]+0x10]+0x10 */ # 365: 22cc10 + movi a4, 6 /* 0x00000006 */ # 368: 0c64 + call0 memcpy # 36a: 01e0ffc0 + # 36e: 0000 + j .Lbr023 # 370: 060c00 +.Lbr021: bnez a0, .Lbr022 # 373: cc30 + l32i a4, a14, 140 /* [arg0+0x8c] */ # 375: 422e23 + s32i a4, sp, 28 /* [arg0+0x8c] -> [(local7)] */ # 378: 4971 +.Lbr022: addi a2, a12, 4 /* [[(local8)]+0x10]+0x4 */ # 37a: 4b2c + mov a3, a13 /* arg5 */ # 37c: 3d0d + movi a4, 6 /* 0x00000006 */ # 37e: 0c64 + movi a5, 0 /* 0x00000000 */ # 380: 0c05 + s8i a5, a12, 1 /* 0x00 -> [[[(local8)]+0x10]+0x1] */ # 382: 524c01 + call0 memcpy # 385: 01daffc0 + # 389: 0000 + l32i a3, sp, 0 /* [(local0)] */ # 38b: 3801 + addi a2, a12, 10 /* [[(local8)]+0x10]+0xa */ # 38d: ab2c + movi a4, 6 /* 0x00000006 */ # 38f: 0c64 + call0 memcpy # 391: 01d8ffc0 + # 395: 0000 + addi a2, a12, 16 /* [[(local8)]+0x10]+0x10 */ # 397: 22cc10 + movi a4, 6 /* 0x00000006 */ # 39a: 0c64 + l32i a3, sp, 48 /* [(local9)] */ # 39c: 38c1 + call0 memcpy # 39e: 01d6ffc0 + # 3a2: 0000 +.Lbr023: movi a4, 0 /* 0x00000000 */ # 3a4: 0c04 + s16i a4, a12, 2 /* 0x0000 -> [[[(local8)]+0x10]+0x2] */ # 3a6: 425c01 + beqz a14, .Lbr024 # 3a9: 9c3e + l32i a8, sp, 28 /* [(local7)] */ # 3ab: 8871 + l32i a7, sp, 4 /* [(local1)] */ # 3ad: 7811 + addx2 a7, a7, a8 # 3af: 807790 + l16ui a5, a7, 124 # 3b2: 52173e + addi a6, a5, 1 # 3b5: 1b65 + s16i a6, a7, 124 # 3b7: 62573e + slli a5, a5, 4 # 3ba: c05511 + s16i a5, a12, 22 /* a5 -> [[[(local8)]+0x10]+0x16] */ # 3bd: 525c0b +.Lbr024: l32i a0, a15, 32 /* [[(local8)]+0x20] */ # 3c0: 088f + l8ui a9, a13, 0 /* [arg5] */ # 3c2: 920d00 + l32i a15, sp, 24 /* [(local6)] */ # 3c5: f861 + bbci a9, 0, .Lbr025 # 3c7: 076926 + movi a12, 1024 /* 0x00000400 */ # 3ca: c2a400 + l32i a13, a0, 0 /* [[[(local8)]+0x20]] */ # 3cd: d800 + movi a14, 2 /* 0x00000002 */ # 3cf: 0c2e + extui a11, a13, 0, 6 # 3d1: d0b054 + srli a13, a13, 6 # 3d4: d0d641 + or a13, a13, a14 # 3d7: e0dd20 + slli a13, a13, 6 # 3da: a0dd11 + or a11, a11, a13 # 3dd: d0bb20 + extui a10, a11, 0, 6 # 3e0: b0a054 + srli a11, a11, 6 # 3e3: b0b641 + or a11, a11, a12 # 3e6: c0bb20 + slli a11, a11, 6 # 3e9: a0bb11 + or a10, a10, a11 # 3ec: b0aa20 + s32i a10, a0, 0 /* a10 -> [[[(local8)]+0x20]] */ # 3ef: a900 +.Lbr025: l32i a12, sp, 12 /* [(local3)] */ # 3f1: c831 + movi a14, g_ic # 3f3: e1bbff + l32i a13, sp, 16 /* [(local4)] */ # 3f6: d841 + l8ui a14, a14, 125 /* [g_ic+0x7d] */ # 3f8: e20e7d + s8i a14, a0, 8 /* [g_ic+0x7d] -> [[[(local8)]+0x20]+0x8] */ # 3fb: e24008 + l32i a14, sp, 20 /* [(local5)] */ # 3fe: e851 + l32i a0, sp, 8 /* [(local2)] */ # 400: 0821 + addi sp, sp, 48 /* (local9) */ # 402: 12c130 + ret # 405: 0df0 +.Lbr026: s8i a9, a12, 1 /* 0x01 -> [[[(local8)]+0x10]+0x1] */ # 407: 924c01 + l32i a3, sp, 48 /* [(local9)] */ # 40a: 38c1 + addi a2, a12, 4 /* [[(local8)]+0x10]+0x4 */ # 40c: 4b2c + movi a4, 6 /* 0x00000006 */ # 40e: 0c64 + call0 memcpy # 410: 01bbffc0 + # 414: 0000 + l32i a3, sp, 0 /* [(local0)] */ # 416: 3801 + addi a2, a12, 10 /* [[(local8)]+0x10]+0xa */ # 418: ab2c + movi a4, 6 /* 0x00000006 */ # 41a: 0c64 + call0 memcpy # 41c: 01b9ffc0 + # 420: 0000 + addi a2, a12, 16 /* [[(local8)]+0x10]+0x10 */ # 422: 22cc10 + mov a3, a13 /* arg5 */ # 425: 3d0d + movi a4, 6 /* 0x00000006 */ # 427: 0c64 + call0 memcpy # 429: 01b6ffc0 + # 42d: 0000 + j .Lbr023 # 42f: 46dcff + + .literal_position # 434: ff0f00ff + # 438: ff3fffff + # 43c: 00000000 + # 440: 00000000 + # 444: 00000000 + +# Function @ .irom0.text+0x448 +# Local variables/stack: +# (local0): word[4] @ -0x20 +# (local1): word @ -0x10 +# (local2): word @ -0xc +# (local3): word[2] @ -0x8 + .balign 4 + .global ieee80211_mgmt_output + .type ieee80211_mgmt_output, @function +ieee80211_mgmt_output: + movi a9, 64 /* 0x00000040 */ # 448: 4c09 + addi sp, sp, -32 /* (local0) */ # 44a: 12c1e0 + movi a8, 128 /* 0x00000080 */ # 44d: 82a080 + l32i a6, a2, 0 /* [arg0] */ # 450: 6802 + l32i a7, a2, 136 /* [arg0+0x88] */ # 452: 722222 + s32i a12, sp, 24 /* a12 -> [(local3)] */ # 455: c961 + s32i a0, sp, 20 /* a0 -> [(local2)] */ # 457: 0951 + mov a12, a3 /* arg1 */ # 459: cd03 + l16ui a3, a3, 22 /* [arg1+0x16] */ # 45b: 32130b + l16ui a0, a12, 20 /* [arg1+0x14] */ # 45e: 021c0a + l32i a11, a12, 4 /* [arg1+0x4] */ # 461: b81c + add a0, a0, a3 # 463: 3a00 + memw # 465: c02000 + l8ui a5, a11, 3 /* [[arg1+0x4]+0x3] */ # 468: 520b03 + extui a5, a5, 0, 7 # 46b: 505064 + or a5, a5, a8 # 46e: 805520 + memw # 471: c02000 + s8i a5, a11, 3 /* a5 -> [[arg1+0x4]+0x3] */ # 474: 524b03 + movi a3, 191 /* 0x000000bf */ # 477: 32a0bf + memw # 47a: c02000 + l8ui a8, a11, 3 /* [[arg1+0x4]+0x3] */ # 47d: 820b03 + and a8, a8, a3 # 480: 308810 + or a8, a8, a9 # 483: 908820 + memw # 486: c02000 + s8i a8, a11, 3 /* a8 -> [[arg1+0x4]+0x3] */ # 489: 824b03 + movi a5, 223 /* 0x000000df */ # 48c: 52a0df + memw # 48f: c02000 + l8ui a3, a11, 3 /* [[arg1+0x4]+0x3] */ # 492: 320b03 + and a3, a3, a5 # 495: 503310 + memw # 498: c02000 + s8i a3, a11, 3 /* a3 -> [[arg1+0x4]+0x3] */ # 49b: 324b03 + extui a0, a0, 0, 12 # 49e: 0000b4 + movi a3, 0xff000fff # 4a1: 31e4ff + slli a0, a0, 12 # 4a4: 400011 + memw # 4a7: c02000 + l16ui a8, a11, 2 /* [[arg1+0x4]+0x2] */ # 4aa: 821b01 + slli a8, a8, 16 # 4ad: 008811 + memw # 4b0: c02000 + l16ui a5, a11, 0 /* [[arg1+0x4]] */ # 4b3: 521b00 + or a8, a8, a5 # 4b6: 508820 + and a8, a8, a3 # 4b9: 308810 + or a8, a8, a0 # 4bc: 008820 + memw # 4bf: c02000 + s16i a8, a11, 0 /* a8 -> [[arg1+0x4]] */ # 4c2: 825b00 + extui a8, a8, 16, 16 # 4c5: 8080f5 + memw # 4c8: c02000 + addi a6, a6, 41 /* [arg0]+0x29 */ # 4cb: 62c629 + l32i a0, a2, 176 /* [arg0+0xb0] */ # 4ce: 02222c + l32i a3, a12, 16 /* [arg1+0x10] */ # 4d1: 384c + s32i a3, sp, 16 /* [arg1+0x10] -> [(local1)] */ # 4d3: 3941 + s16i a8, a11, 2 /* a8 -> [[arg1+0x4]+0x2] */ # 4d5: 825b01 + bnez a0, .Lbr027 # 4d8: cca0 + s32i a7, sp, 0 /* [arg0+0x88] -> [(local0)] */ # 4da: 7901 + mov a3, a12 /* arg1 */ # 4dc: 3d0c + movi a5, 16 /* 0x00000010 */ # 4de: 1c05 + call0 ieee80211_send_setup # 4e0: 050000 + j .Lbr029 # 4e3: 060500 +.Lbr027: movi a8, 0xffff3fff # 4e6: 81d4ff + l16ui a5, a7, 26 /* [[arg0+0x88]+0x1a] */ # 4e9: 52170d + bany a5, a8, .Lbr028 # 4ec: 878502 + addi a7, a2, 64 /* arg0+0x40 */ # 4ef: 72c240 +.Lbr028: s32i a6, sp, 0 /* [arg0]+0x29 -> [(local0)] */ # 4f2: 6901 + mov a3, a12 /* arg1 */ # 4f4: 3d0c + movi a5, 16 /* 0x00000010 */ # 4f6: 1c05 + call0 ieee80211_send_setup # 4f8: 050000 +.Lbr029: l32i a9, a12, 32 /* [arg1+0x20] */ # 4fb: 988c + l32i a11, sp, 16 /* [(local1)] */ # 4fd: b841 + l32i a9, a9, 0 /* [[arg1+0x20]] */ # 4ff: 9809 + movi a0, 64 /* 0x00000040 */ # 501: 4c00 + bbci a9, 6, .Lbr030 # 503: 676908 + l8ui a10, a11, 1 /* [[(local1)]+0x1] */ # 506: a20b01 + or a10, a10, a0 # 509: 00aa20 + s8i a10, a11, 1 /* a10 -> [[(local1)]+0x1] */ # 50c: a24b01 +.Lbr030: call0 chm_check_same_channel # 50f: 01ccffc0 + # 513: 0000 + beqz a2, .Lbr031 # 515: 8c92 + mov a2, a12 /* arg1 */ # 517: 2d0c + call0 ppTxPkt # 519: 01caffc0 + # 51d: 0000 + j .Lbr032 # 51f: c60400 +.Lbr031: movi a2, 0 /* 0x00000000 */ # 522: 0c02 + addi a3, a12, 28 /* arg1+0x1c */ # 524: 32cc1c + movi a4, g_ic # 527: 41c5ff + movi a6, 0 /* 0x00000000 */ # 52a: 0c06 + l32i a5, a4, 0x1c4 /* [g_ic+0x1c4] */ # 52c: 522471 + s32i a6, a12, 28 /* 0x00000000 -> [arg1+0x1c] */ # 52f: 697c + s32i a12, a5, 0 /* arg1 -> [[g_ic+0x1c4]] */ # 531: c905 + s32i a3, a4, 0x1c4 /* arg1+0x1c -> [g_ic+0x1c4] */ # 533: 326471 +.Lbr032: l32i a12, sp, 24 /* [(local3)] */ # 536: c861 + l32i a0, sp, 20 /* [(local2)] */ # 538: 0851 + addi sp, sp, 32 /* (top of frame) */ # 53a: 12c120 + ret # 53d: 0df0 + + .balign 4 +# Function @ .irom0.text+0x540 + .balign 4 + .global ieee80211_tx_mgt_cb + .type ieee80211_tx_mgt_cb, @function +ieee80211_tx_mgt_cb: + ret /* arg0 */ # 540: 0df0 + + .literal_position # 544: 00000000 + # 548: 000af23f + # 54c: 00000000 + # 550: 00000000 + # 554: 00000000 + # 558: 00000000 + # 55c: 00000000 + +# Function @ .irom0.text+0x560 +# Local variables/stack: +# (local0): word[4] @ -0x30 +# (local1): word @ -0x20 +# (local2): word @ -0x1c +# (local3): word @ -0x18 +# (local4): word @ -0x14 +# (local5): word @ -0x10 +# (local6): word @ -0xc +# (local7): word @ -0x8 +# (local8): word @ -0x4 + .balign 4 + .global ieee80211_send_nulldata + .type ieee80211_send_nulldata, @function +ieee80211_send_nulldata: + movi a3, 24 /* 0x00000018 */ # 560: 1c83 + movi a5, 66 /* 0x00000042 */ # 562: 4c25 + addi sp, sp, -48 /* (local0) */ # 564: 12c1d0 + s32i a12, sp, 32 /* a12 -> [(local5)] */ # 567: c981 + s32i a15, sp, 44 /* a15 -> [(local8)] */ # 569: f9b1 + s32i a0, sp, 28 /* a0 -> [(local4)] */ # 56b: 0971 + s32i a13, sp, 36 /* a13 -> [(local6)] */ # 56d: d991 + s32i a14, sp, 40 /* a14 -> [(local7)] */ # 56f: e9a1 + l32i a13, a2, 136 /* [arg0+0x88] */ # 571: d22222 + mov a14, a2 /* arg0 */ # 574: ed02 + l32i a0, a14, 0 /* [arg0] */ # 576: 080e + s32i a0, sp, 20 /* [arg0] -> [(local2)] */ # 578: 0951 + l32i a4, a13, 8 /* [[arg0+0x88]+0x8] */ # 57a: 482d + movi a2, 26 /* 0x0000001a */ # 57c: 1ca2 + and a4, a4, a5 # 57e: 504410 + movnez a3, a2, a4 # 581: 403293 + s32i a3, sp, 24 /* a3 -> [(local3)] */ # 584: 3961 + addi a2, sp, 16 /* (local1) */ # 586: 22c110 + movi a4, 0 /* 0x00000000 */ # 589: 0c04 + s32i a4, sp, 16 /* 0x00000000 -> [(local1)] */ # 58b: 4941 + call0 ieee80211_getmgtframe # 58d: 01f0ffc0 + # 591: 0000 + mov a12, a2 # 593: cd02 + bnez a2, .Lbr033 # 595: cc32 + movi a2, 1 /* 0x00000001 */ # 597: 0c12 + j .Lbr042 # 599: 063f00 +.Lbr033: l32i a15, a2, 16 # 59c: f842 + l32i a6, sp, 20 /* [(local2)] */ # 59e: 6851 + l32i a8, a13, 8 /* [[arg0+0x88]+0x8] */ # 5a0: 882d + l32i a7, sp, 24 /* [(local3)] */ # 5a2: 7861 + s16i a7, a2, 20 # 5a4: 72520a + addi a6, a6, 41 /* [(local2)]+0x29 */ # 5a7: 62c629 + addi a7, a14, 64 /* arg0+0x40 */ # 5aa: 72ce40 + bbci a8, 1, .Lbr035 # 5ad: 176822 + s32i a13, sp, 0 /* [arg0+0x88] -> [(local0)] */ # 5b0: d901 + mov a2, a14 /* arg0 */ # 5b2: 2d0e + mov a3, a12 # 5b4: 3d0c + movi a4, 200 /* 0x000000c8 */ # 5b6: 42a0c8 + movi a5, 0 /* 0x00000000 */ # 5b9: 0c05 + call0 ieee80211_send_setup # 5bb: 050000 + movi a2, 0 /* 0x00000000 */ # 5be: 0c02 + s8i a2, a15, 24 # 5c0: 224f18 + l8ui a8, a13, 105 /* [[arg0+0x88]+0x69] */ # 5c3: 820d69 + movi a0, 32 /* 0x00000020 */ # 5c6: 2c00 + beqz a8, .Lbr034 # 5c8: 8c18 + s8i a0, a15, 24 # 5ca: 024f18 +.Lbr034: s8i a2, a15, 25 # 5cd: 224f19 + j .Lbr036 # 5d0: 860300 +.Lbr035: s32i a13, sp, 0 /* [arg0+0x88] -> [(local0)] */ # 5d3: d901 + mov a2, a14 /* arg0 */ # 5d5: 2d0e + mov a3, a12 # 5d7: 3d0c + movi a4, 72 /* 0x00000048 */ # 5d9: 4c84 + movi a5, 16 /* 0x00000010 */ # 5db: 1c05 + call0 ieee80211_send_setup # 5dd: 050000 + movi a0, 32 /* 0x00000020 */ # 5e0: 2c00 +.Lbr036: movi a3, 16 /* 0x00000010 */ # 5e2: 1c03 + l32i a9, a13, 8 /* [[arg0+0x88]+0x8] */ # 5e4: 982d + movi a4, g_ic # 5e6: 41d7ff + bbci a9, 4, .Lbr037 # 5e9: 476908 + l8ui a10, a15, 1 # 5ec: a20f01 + or a10, a10, a3 # 5ef: 30aa20 + s8i a10, a15, 1 # 5f2: a24f01 +.Lbr037: movi a15, 0 /* 0x00000000 */ # 5f5: 0c0f + movi a11, 1 /* 0x00000001 */ # 5f7: 0c1b + l32i a7, a12, 32 # 5f9: 788c + l32i a2, a4, 16 /* [g_ic+0x10] */ # 5fb: 2844 + l8ui a6, a7, 6 # 5fd: 620706 + sub a2, a2, a14 # 600: e022c0 + movnez a2, a11, a2 # 603: 202b93 + bnez a2, .Lbr038 # 606: cc32 + movi a3, 0 /* 0x00000000 */ # 608: 0c03 + j .Lbr039 # 60a: 860000 +.Lbr038: l16ui a3, a13, 26 /* [[arg0+0x88]+0x1a] */ # 60d: 321d0d +.Lbr039: movi a8, 143 /* 0x0000008f */ # 610: 82a08f + and a6, a6, a8 # 613: 806610 + or a6, a6, a0 # 616: 006620 + s8i a6, a7, 6 # 619: 624706 + l32i a4, a12, 32 # 61c: 488c + l8ui a14, a4, 4 # 61e: e20404 + movi a5, 240 /* 0x000000f0 */ # 621: 52a0f0 + and a14, a14, a5 # 624: 50ee10 + s8i a14, a4, 4 # 627: e24404 + movi a11, 0x3ff20a00 # 62a: b1c7ff + l32i a9, a12, 32 # 62d: 988c + memw # 62f: c02000 + l32i a11, a11, 0x200 /* [0x3ff20c00] */ # 632: b22b80 + movi a10, 254 /* 0x000000fe */ # 635: a2a0fe + extui a7, a2, 0, 1 # 638: 207004 + l8ui a8, a9, 0 # 63b: 820900 + slli a7, a7, 1 # 63e: f07711 + and a8, a8, a10 # 641: a08810 + s8i a8, a9, 0 # 644: 824900 + l32i a6, a12, 32 # 647: 688c + s32i a11, a9, 16 # 649: b949 + l8ui a5, a6, 0 # 64b: 520600 + movi a8, 253 /* 0x000000fd */ # 64e: 82a0fd + and a5, a5, a8 # 651: 805510 + or a5, a5, a7 # 654: 705520 + s8i a5, a6, 0 # 657: 524600 + l16ui a4, a13, 26 /* [[arg0+0x88]+0x1a] */ # 65a: 421d0d + mov a2, a15 /* 0x00000000 */ # 65d: 2d0f + beqz a4, .Lbr043 # 65f: 165404 + l32i a9, a12, 32 # 662: 988c + l32i a9, a9, 0 # 664: 9809 + bbsi a9, 7, .Lbr043 # 666: 77e93e + extui a2, a3, 0, 8 # 669: 302074 + call0 rc_get_trc_by_index # 66c: 01baffc0 + # 670: 0000 +.Lbr040: s32i a2, a12, 24 # 672: 296c + call0 chm_check_same_channel # 674: 01b9ffc0 + # 678: 0000 + beqz a2, .Lbr041 # 67a: 8c92 + mov a2, a12 # 67c: 2d0c + call0 ppTxPkt # 67e: 01b7ffc0 + # 682: 0000 + j .Lbr042 # 684: 460400 +.Lbr041: movi a2, 0 /* 0x00000000 */ # 687: 0c02 + movi a11, g_ic # 689: b1b0ff + addi a10, a12, 28 # 68c: a2cc1c + l32i a13, a11, 0x1c4 /* [g_ic+0x1c4] */ # 68f: d22b71 + s32i a15, a12, 28 # 692: f97c + s32i a12, a13, 0 /* a12 -> [[g_ic+0x1c4]] */ # 694: c90d + s32i a10, a11, 0x1c4 /* a10 -> [g_ic+0x1c4] */ # 696: a26b71 +.Lbr042: l32i a12, sp, 32 /* [(local5)] */ # 699: c881 + l32i a13, sp, 36 /* [(local6)] */ # 69b: d891 + l32i a14, sp, 40 /* [(local7)] */ # 69d: e8a1 + l32i a15, sp, 44 /* [(local8)] */ # 69f: f8b1 + l32i a0, sp, 28 /* [(local4)] */ # 6a1: 0871 + addi sp, sp, 48 /* (top of frame) */ # 6a3: 12c130 + ret # 6a6: 0df0 +.Lbr043: j .Lbr040 # 6a8: 86f1ff + + .literal_position # 6ac: f2ff0000 + # 6b0: e8ff0000 + # 6b4: 00000000 + # 6b8: 00000000 + # 6bc: 00000000 + # 6c0: 00000000 + # 6c4: 00000000 + # 6c8: 00000000 + # 6cc: 00000000 + # 6d0: 00000000 + # 6d4: 00000000 + # 6d8: 00000000 + +# Function @ .irom0.text+0x6dc +# Local variables/stack: +# (local0): byte[12] @ -0x40 +# (local1): hword[2] @ -0x34 +# (local2): word @ -0x30 +# (local3): word @ -0x2c +# (local4): word @ -0x28 +# (local5): word @ -0x24 +# (local6): word @ -0x20 +# (local7): word @ -0x1c +# (local8): word @ -0x18 +# (local9): word @ -0x14 +# (local10): word @ -0x10 +# (local11): word[3] @ -0xc + .balign 4 +.Lfunc001: movi a4, 14 /* 0x0000000e */ # 6dc: 0ce4 + addi sp, sp, -64 /* (local0) */ # 6de: 12c1c0 + s32i a2, sp, 52 /* arg0 -> [(local11)] */ # 6e1: 29d1 + s32i a0, sp, 20 /* a0 -> [(local3)] */ # 6e3: 0951 + s32i a12, sp, 36 /* a12 -> [(local7)] */ # 6e5: c991 + s32i a14, sp, 44 /* a14 -> [(local9)] */ # 6e7: e9b1 + s32i a15, sp, 48 /* a15 -> [(local10)] */ # 6e9: f9c1 + s32i a13, sp, 40 /* a13 -> [(local8)] */ # 6eb: d9a1 + mov a15, a2 /* arg0 */ # 6ed: fd02 + l32i a13, a2, 136 /* [arg0+0x88] */ # 6ef: d22222 + l8ui a14, a2, 176 /* [arg0+0xb0] */ # 6f2: e202b0 + mov a12, a3 /* arg1 */ # 6f5: cd03 + l32i a0, a2, 0 /* [arg0] */ # 6f7: 0802 + s32i a0, sp, 16 /* [arg0] -> [(local2)] */ # 6f9: 0941 + l32i a3, a3, 4 /* [arg1+0x4] */ # 6fb: 3813 + slli a14, a14, 24 # 6fd: 80ee01 + l32i a3, a3, 4 /* [[arg1+0x4]+0x4] */ # 700: 3813 + srai a14, a14, 24 # 702: e0e831 + mov a2, sp /* (local0) */ # 705: 2d01 + call0 memcpy # 707: 01ecffc0 + # 70b: 0000 + movi a7, 2 /* 0x00000002 */ # 70d: 0c27 + movi a6, 0x0000fff2 # 70f: 61e7ff + l32i a3, a12, 4 /* [arg1+0x4] */ # 712: 381c + l16ui a4, a12, 22 /* [arg1+0x16] */ # 714: 421c0b + l32i a5, a3, 4 /* [[arg1+0x4]+0x4] */ # 717: 5813 + add a4, a4, a6 /* [arg1+0x16]+0xfff2 */ # 719: 6a44 + addi a5, a5, 14 /* [[arg1+0x4]+0x4]+0xe */ # 71b: eb55 + s32i a5, a3, 4 /* [[arg1+0x4]+0x4]+0xe -> [[arg1+0x4]+0x4] */ # 71d: 5913 + s16i a4, a12, 22 /* [arg1+0x16]+0xfff2 -> [arg1+0x16] */ # 71f: 425c0b + movi a4, 0 /* 0x00000000 */ # 722: 0c04 + bnei a14, 1, .Lbr044 # 724: 661e1a + l8ui a9, sp, 0 /* [(local0)] */ # 727: 920100 + bbci a9, 0, .Lbr044 # 72a: 076914 + l32i a11, a12, 32 /* [arg1+0x20] */ # 72d: b88c + l32i a0, a11, 0 /* [[arg1+0x20]] */ # 72f: 080b + extui a10, a0, 0, 6 # 731: 00a054 + srli a0, a0, 6 # 734: 000641 + or a0, a0, a7 # 737: 700020 + slli a0, a0, 6 # 73a: a00011 + or a10, a10, a0 # 73d: 00aa20 + s32i a10, a11, 0 /* a10 -> [[arg1+0x20]] */ # 740: a90b +.Lbr044: movi a0, 0 /* 0x00000000 */ # 742: 0c00 + movi a11, -86 /* 0xffffffaa */ # 744: b2afaa + movi a9, 26 /* 0x0000001a */ # 747: 1ca9 + movi a8, 24 /* 0x00000018 */ # 749: 1c88 + s32i a4, sp, 32 /* 0x00000000 -> [(local6)] */ # 74b: 4981 + l32i a2, a13, 8 /* [[arg0+0x88]+0x8] */ # 74d: 282d + movi a4, 170 /* 0x000000aa */ # 74f: 42a0aa + bbci a2, 1, .Lbr045 # 752: 17620a + l32i a5, a12, 32 /* [arg1+0x20] */ # 755: 588c + l32i a5, a5, 0 /* [[arg1+0x20]] */ # 757: 5805 + movi a6, 1 /* 0x00000001 */ # 759: 0c16 + bbsi a5, 8, .Lbr045 # 75b: 87e501 + s32i a6, sp, 32 /* 0x00000001 -> [(local6)] */ # 75e: 6981 +.Lbr045: movi a5, 3 /* 0x00000003 */ # 760: 0c35 + l32i a10, sp, 32 /* [(local6)] */ # 762: a881 + l16ui a6, a12, 22 /* [arg1+0x16] */ # 764: 621c0b + movnez a8, a9, a10 # 767: a08993 + addi a6, a6, 8 /* [arg1+0x16]+0x8 */ # 76a: 8b66 + l32i a10, a3, 4 /* [[arg1+0x4]+0x4] */ # 76c: a813 + s16i a8, a12, 20 /* a8 -> [arg1+0x14] */ # 76e: 825c0a + addi a2, a10, -8 /* [[arg1+0x4]+0x4]-0x8 */ # 771: 22caf8 + s32i a2, a3, 4 /* [[arg1+0x4]+0x4]-0x8 -> [[arg1+0x4]+0x4] */ # 774: 2913 + addi a10, a10, -2 /* [[arg1+0x4]+0x4]-0x2 */ # 776: a2cafe + s16i a6, a12, 22 /* [arg1+0x16]+0x8 -> [arg1+0x16] */ # 779: 625c0b + movi a6, 8 /* 0x00000008 */ # 77c: 0c86 + s8i a11, a2, 1 /* 0xaa -> [[[arg1+0x4]+0x4]-0x7] */ # 77e: b24201 + s8i a4, a2, 0 /* 0xaa -> [[[arg1+0x4]+0x4]-0x8] */ # 781: 424200 + s8i a5, a2, 2 /* 0x03 -> [[[arg1+0x4]+0x4]-0x6] */ # 784: 524202 + s8i a0, a2, 3 /* 0x00 -> [[[arg1+0x4]+0x4]-0x5] */ # 787: 024203 + s8i a0, a2, 4 /* 0x00 -> [[[arg1+0x4]+0x4]-0x4] */ # 78a: 024204 + s8i a0, a2, 5 /* 0x00 -> [[[arg1+0x4]+0x4]-0x3] */ # 78d: 024205 + l32i a8, a13, 8 /* [[arg0+0x88]+0x8] */ # 790: 882d + l16ui a9, sp, 12 /* [(local1)] */ # 792: 921106 + s8i a9, a10, 0 /* [(local1)] -> [[[arg1+0x4]+0x4]-0x2] */ # 795: 924a00 + srli a9, a9, 8 # 798: 909841 + s8i a9, a10, 1 /* a9 -> [[[arg1+0x4]+0x4]-0x1] */ # 79b: 924a01 + bbci a8, 0, .Lbr046 # 79e: 076820 + l32i a11, a15, 72 /* [arg0+0x48] */ # 7a1: b22f12 + bbci a11, 4, .Lbr046 # 7a4: 476b1a + l32i a2, a12, 32 /* [arg1+0x20] */ # 7a7: 288c + l32i a2, a2, 0 /* [[arg1+0x20]] */ # 7a9: 2802 + bbci a2, 8, .Lbr050 # 7ab: 87625e + l32i a3, a12, 4 /* [arg1+0x4] */ # 7ae: 381c + l32i a4, a3, 4 /* [[arg1+0x4]+0x4] */ # 7b0: 4813 + memw # 7b2: c02000 + l8ui a4, a4, 14 /* [[[arg1+0x4]+0x4]+0xe] */ # 7b5: 42040e + movi a5, 0 /* 0x00000000 */ # 7b8: 0c05 + bbci a4, 3, .Lbr050 # 7ba: 37644f + s32i a5, sp, 28 /* 0x00000000 -> [(local5)] */ # 7bd: 5971 + j .Lbr047 # 7bf: c60000 +.Lbr046: s32i a0, sp, 28 /* 0x00000000 -> [(local5)] */ # 7c2: 0971 + l32i a3, a12, 4 /* [arg1+0x4] */ # 7c4: 381c +.Lbr047: movi a2, 0x0000ffe8 # 7c6: 21baff + l16ui a10, a12, 22 /* [arg1+0x16] */ # 7c9: a21c0b + l32i a11, a3, 4 /* [[arg1+0x4]+0x4] */ # 7cc: b813 + addi a10, a10, 24 /* [arg1+0x16]+0x18 */ # 7ce: a2ca18 + add a10, a10, a2 /* [arg1+0x16]+0x10000 */ # 7d1: 2aaa + addi a11, a11, -24 /* [[arg1+0x4]+0x4]-0x18 */ # 7d3: b2cbe8 + s32i a11, a3, 4 /* [[arg1+0x4]+0x4]-0x18 -> [[arg1+0x4]+0x4] */ # 7d6: b913 + s32i a11, a12, 16 /* [[arg1+0x4]+0x4]-0x18 -> [arg1+0x10] */ # 7d8: b94c + l32i a9, a3, 4 /* [[arg1+0x4]+0x4] */ # 7da: 9813 + s32i a9, sp, 24 /* [[arg1+0x4]+0x4] -> [(local4)] */ # 7dc: 9961 + s16i a10, a12, 22 /* [arg1+0x16]+0x10000 -> [arg1+0x16] */ # 7de: a25c0b + s8i a6, a9, 0 /* 0x08 -> [[[arg1+0x4]+0x4]] */ # 7e1: 624900 + s16i a0, a9, 2 /* 0x0000 -> [[[arg1+0x4]+0x4]+0x2] */ # 7e4: 025901 + beqz a14, .Lbr051 # 7e7: bc9e + addi a2, a14, -1 # 7e9: 0b2e + beqz a2, .Lbr061 # 7eb: 16c213 + beqz a12, .Lbr048 # 7ee: 8c8c + mov a2, a12 /* arg1 */ # 7f0: 2d0c + movi a3, 1 /* 0x00000001 */ # 7f2: 0c13 + call0 esf_buf_recycle # 7f4: 01b2ffc0 + # 7f8: 0000 +.Lbr048: movi a12, 0 /* 0x00000000 */ # 7fa: 0c0c +.Lbr049: l32i a0, sp, 20 /* [(local3)] */ # 7fc: 0851 + l32i a13, sp, 40 /* [(local8)] */ # 7fe: d8a1 + l32i a14, sp, 44 /* [(local9)] */ # 800: e8b1 + mov a2, a12 # 802: 2d0c + l32i a15, sp, 48 /* [(local10)] */ # 804: f8c1 + l32i a12, sp, 36 /* [(local7)] */ # 806: c891 + addi sp, sp, 64 /* (top of frame) */ # 808: 12c140 + ret # 80b: 0df0 +.Lbr050: mov a2, a15 /* arg0 */ # 80d: 2d0f + mov a3, a12 /* arg1 */ # 80f: 3d0c + call0 ieee80211_crypto_encap # 811: 01abffc0 + # 815: 0000 + movi a0, 0 /* 0x00000000 */ # 817: 0c00 + movi a6, 8 /* 0x00000008 */ # 819: 0c86 + movi a7, 2 /* 0x00000002 */ # 81b: 0c27 + s32i a2, sp, 28 /* a2 -> [(local5)] */ # 81d: 2971 + l32i a3, a12, 4 /* [arg1+0x4] */ # 81f: 381c + j .Lbr047 # 821: 46e8ff +.Lbr051: movi a14, 0 /* 0x00000000 */ # 824: 0c0e + l32i a2, sp, 24 /* [(local4)] */ # 826: 2861 + movi a3, 1 /* 0x00000001 */ # 828: 0c13 + movi a4, 6 /* 0x00000006 */ # 82a: 0c64 + s8i a3, a2, 1 /* 0x01 -> [[(local4)]+0x1] */ # 82c: 324201 + addi a2, a2, 4 /* [(local4)]+0x4 */ # 82f: 4b22 + mov a3, a13 /* [arg0+0x88] */ # 831: 3d0d + call0 memcpy # 833: 01a4ffc0 + # 837: 0000 + addi a3, sp, 6 /* (FP)-0x3a */ # 839: 6b31 + l32i a2, sp, 24 /* [(local4)] */ # 83b: 2861 + movi a4, 6 /* 0x00000006 */ # 83d: 0c64 + addi a2, a2, 10 /* [(local4)]+0xa */ # 83f: ab22 + call0 memcpy # 841: 01a1ffc0 + # 845: 0000 + mov a3, sp /* (local0) */ # 847: 3d01 + l32i a2, sp, 24 /* [(local4)] */ # 849: 2861 + movi a4, 6 /* 0x00000006 */ # 84b: 0c64 + addi a2, a2, 16 /* [(local4)]+0x10 */ # 84d: 22c210 + call0 memcpy # 850: 019fffc0 + # 854: 0000 +.Lbr052: l32i a3, a12, 32 /* [arg1+0x20] */ # 856: 388c + movi a6, 32 /* 0x00000020 */ # 858: 2c06 + l32i a3, a3, 0 /* [[arg1+0x20]] */ # 85a: 3803 + movi a8, 128 /* 0x00000080 */ # 85c: 82a080 + bbci a3, 22, .Lbr053 # 85f: 67730a + l32i a5, sp, 24 /* [(local4)] */ # 862: 5861 + l8ui a4, a5, 1 /* [[(local4)]+0x1] */ # 864: 420501 + or a4, a4, a6 # 867: 604420 + s8i a4, a5, 1 /* a4 -> [[(local4)]+0x1] */ # 86a: 424501 +.Lbr053: l32i a5, sp, 32 /* [(local6)] */ # 86d: 5881 + beqz a5, .Lbr064 # 86f: 16e50f + l32i a0, a12, 32 /* [arg1+0x20] */ # 872: 088c + l8ui a0, a0, 6 /* [[arg1+0x20]+0x6] */ # 874: 020006 + extui a0, a0, 4, 3 # 877: 000424 + beqz a0, .Lbr055 # 87a: 9c30 + bnei a0, 1, .Lbr054 # 87c: 661004 + movi a3, 5 /* 0x00000005 */ # 87f: 0c53 + j .Lbr056 # 881: 860300 +.Lbr054: addi a4, a0, -3 # 884: 42c0fd + movi a2, 1 /* 0x00000001 */ # 887: 0c12 + movi a3, 0 /* 0x00000000 */ # 889: 0c03 + moveqz a3, a2, a4 # 88b: 403283 + j .Lbr056 # 88e: 460000 +.Lbr055: movi a3, 6 /* 0x00000006 */ # 891: 0c63 +.Lbr056: addx2 a5, a0, a0 # 893: 005090 + addx2 a5, a5, a13 # 896: d05590 + extui a0, a3, 0, 4 # 899: 300034 + s8i a0, a14, 0 /* a0 -> [0x00000000] */ # 89c: 024e00 + l8ui a5, a5, 93 # 89f: 52055d + beqz a5, .Lbr057 # 8a2: 8c45 + or a7, a0, a6 # 8a4: 607020 + s8i a7, a14, 0 /* a7 -> [0x00000000] */ # 8a7: 724e00 +.Lbr057: l32i a0, sp, 24 /* [(local4)] */ # 8aa: 0861 + s8i a14, a14, 1 /* 0x00 -> [0x00000001] */ # 8ac: e24e01 + l8ui a11, a0, 0 /* [[(local4)]] */ # 8af: b20000 + addx2 a10, a3, a13 # 8b2: d0a390 + or a11, a11, a8 # 8b5: 80bb20 + s8i a11, a0, 0 /* a11 -> [[(local4)]] */ # 8b8: b24000 + l16ui a3, a10, 124 # 8bb: 321a3e + addi a9, a3, 1 # 8be: 1b93 + s16i a9, a10, 124 # 8c0: 925a3e +.Lbr058: movi a9, 240 /* 0x000000f0 */ # 8c3: 92a0f0 + l32i a13, sp, 28 /* [(local5)] */ # 8c6: d871 + slli a14, a3, 4 # 8c8: c0e311 + l32i a0, sp, 24 /* [(local4)] */ # 8cb: 0861 + movi a3, g_ic # 8cd: 3179ff + s16i a14, a0, 22 /* a14 -> [[(local4)]+0x16] */ # 8d0: e2500b + beqz a13, .Lbr063 # 8d3: 16fd08 + movi a6, 1 /* 0x00000001 */ # 8d6: 0c16 + l32i a11, sp, 24 /* [(local4)] */ # 8d8: b861 + l32i a7, sp, 28 /* [(local5)] */ # 8da: 7871 + l8ui a10, a11, 1 /* [[(local4)]+0x1] */ # 8dc: a20b01 + movi a13, 64 /* 0x00000040 */ # 8df: 4c0d + or a10, a10, a13 # 8e1: d0aa20 + s8i a10, a11, 1 /* a10 -> [[(local4)]+0x1] */ # 8e4: a24b01 + l32i a0, a12, 32 /* [arg1+0x20] */ # 8e7: 088c + l32i a2, a3, 20 /* [g_ic+0x14] */ # 8e9: 2853 + l32i a5, a0, 0 /* [[arg1+0x20]] */ # 8eb: 5800 + l16ui a7, a7, 0 /* [[(local5)]] */ # 8ed: 721700 + extui a4, a5, 0, 6 # 8f0: 504054 + srli a5, a5, 6 # 8f3: 505641 + or a5, a5, a6 # 8f6: 605520 + slli a5, a5, 6 # 8f9: a05511 + or a4, a4, a5 # 8fc: 504420 + s32i a4, a0, 0 /* a4 -> [[arg1+0x20]] */ # 8ff: 4900 + bne a2, a15, .Lbr062 # 901: f7925c + or a5, a7, a8 # 904: 805720 +.Lbr059: l32i a4, sp, 28 /* [(local5)] */ # 907: 4871 + s8i a5, a0, 12 /* a5 -> [[arg1+0x20]+0xc] */ # 909: 52400c + l32i a4, a4, 152 /* [[(local5)]+0x98] */ # 90c: 422426 + l8ui a2, a0, 13 /* [[arg1+0x20]+0xd] */ # 90f: 22000d + l32i a4, a4, 0 /* [[[(local5)]+0x98]] */ # 912: 4804 + and a2, a2, a9 # 914: 902210 + extui a4, a4, 0, 4 # 917: 404034 + or a2, a2, a4 # 91a: 402220 +.Lbr060: s8i a2, a0, 13 /* a2 -> [[arg1+0x20]+0xd] */ # 91d: 22400d + l32i a6, a12, 32 /* [arg1+0x20] */ # 920: 688c + l8ui a5, a3, 124 /* [g_ic+0x7c] */ # 922: 52037c + s8i a5, a6, 8 /* [g_ic+0x7c] -> [[arg1+0x20]+0x8] */ # 925: 524608 + j .Lbr049 # 928: 06b4ff +.Lbr061: l32i a14, sp, 16 /* [(local2)] */ # 92b: e841 + mov a3, sp /* (local0) */ # 92d: 3d01 + l32i a2, sp, 24 /* [(local4)] */ # 92f: 2861 + movi a4, 6 /* 0x00000006 */ # 931: 0c64 + s8i a7, a2, 1 /* 0x02 -> [[(local4)]+0x1] */ # 933: 724201 + addi a2, a2, 4 /* [(local4)]+0x4 */ # 936: 4b22 + call0 memcpy # 938: 0166ffc0 + # 93c: 0000 + addi a3, a14, 41 /* [(local2)]+0x29 */ # 93e: 32ce29 + l32i a2, sp, 24 /* [(local4)] */ # 941: 2861 + movi a4, 6 /* 0x00000006 */ # 943: 0c64 + addi a2, a2, 10 /* [(local4)]+0xa */ # 945: ab22 + call0 memcpy # 947: 0163ffc0 + # 94b: 0000 + movi a14, 0 /* 0x00000000 */ # 94d: 0c0e + addi a3, sp, 6 /* (FP)-0x3a */ # 94f: 6b31 + l32i a2, sp, 24 /* [(local4)] */ # 951: 2861 + movi a4, 6 /* 0x00000006 */ # 953: 0c64 + addi a2, a2, 16 /* [(local4)]+0x10 */ # 955: 22c210 + call0 memcpy # 958: 0160ffc0 + # 95c: 0000 + j .Lbr052 # 95e: 06bdff +.Lbr062: mov a5, a7 /* [[(local5)]] */ # 961: 5d07 + j .Lbr059 # 963: 06e8ff +.Lbr063: l32i a0, a12, 32 /* [arg1+0x20] */ # 966: 088c + l8ui a2, a0, 13 /* [[arg1+0x20]+0xd] */ # 968: 22000d + and a2, a2, a9 # 96b: 902210 + j .Lbr060 # 96e: c6eaff +.Lbr064: l16ui a3, a13, 156 /* [[arg0+0x88]+0x9c] */ # 971: 321d4e + addi a4, a3, 1 /* [[arg0+0x88]+0x9c]+0x1 */ # 974: 1b43 + s16i a4, a13, 156 /* [[arg0+0x88]+0x9c]+0x1 -> [[arg0+0x88]+0x9c] */ # 976: 425d4e + j .Lbr058 # 979: 86d1ff + + .literal_position # 97c: 888e0000 + # 980: 00000000 + +# Function @ .irom0.text+0x984 + .balign 4 +.Lfunc002: l32i a6, a3, 4 /* [arg1+0x4] */ # 984: 6813 + movi a4, 0x00008e88 # 986: 41fdff + l8ui a5, a6, 13 /* [[arg1+0x4]+0xd] */ # 989: 52060d + l8ui a7, a6, 12 /* [[arg1+0x4]+0xc] */ # 98c: 72060c + slli a5, a5, 8 # 98f: 805511 + or a3, a5, a7 # 992: 703520 + bne a3, a4, .Lbr065 # 995: 479304 + movi a3, 0 /* 0x00000000 */ # 998: 0c03 + j .Lbr066 # 99a: 860100 +.Lbr065: l32i a7, a2, 8 /* [arg0+0x8] */ # 99d: 7822 + bbsi a7, 1, .Lbr067 # 99f: 17e705 + movi a3, 2 /* 0x00000002 */ # 9a2: 0c23 +.Lbr066: mov a2, a3 # 9a4: 2d03 + ret # 9a6: 0df0 +.Lbr067: bnei a3, 8, .Lbr068 # 9a8: 668317 + l8ui a5, a6, 14 /* [[arg1+0x4]+0xe] */ # 9ab: 52060e + srli a5, a5, 5 # 9ae: 505541 + beqz a5, .Lbr072 # 9b1: acf5 + beqi a5, 3, .Lbr072 # 9b3: 26352d + bltui a5, 3, .Lbr071 # 9b6: b63525 + movi a3, 1 /* 0x00000001 */ # 9b9: 0c13 + bltui a5, 6, .Lbr069 # 9bb: b66506 + movi a3, 0 /* 0x00000000 */ # 9be: 0c03 + j .Lbr069 # 9c0: 460000 +.Lbr068: movi a3, 2 /* 0x00000002 */ # 9c3: 0c23 +.Lbr069: movi a5, .Ldata001 # 9c5: 51eeff +.Lbr070: beqi a3, 3, .Lbr066 # 9c8: 2633d8 + addx2 a6, a3, a3 # 9cb: 306390 + addx2 a6, a6, a2 # 9ce: 206690 + l8ui a6, a6, 88 # 9d1: 620658 + beqz a6, .Lbr066 # 9d4: 16c6fc + add a3, a3, a5 # 9d7: 5a33 + l8ui a3, a3, 0 # 9d9: 320300 + j .Lbr070 # 9dc: 06faff +.Lbr071: movi a3, 3 /* 0x00000003 */ # 9df: 0c33 + j .Lbr069 # 9e1: 06f8ff +.Lbr072: movi a3, 2 /* 0x00000002 */ # 9e4: 0c23 + j .Lbr069 # 9e6: c6f6ff + + .literal_position # 9ec: 00000000 + +# Function @ .irom0.text+0x9f0 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 + .global ieee80211_add_rates + .type ieee80211_add_rates, @function +ieee80211_add_rates: + addi sp, sp, -16 /* (local0) */ # 9f0: 12c1f0 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 9f3: d921 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 9f5: c911 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 9f7: 0901 + mov a12, a2 /* arg0 */ # 9f9: cd02 + movi a0, 1 /* 0x00000001 */ # 9fb: 0c10 + s8i a0, a2, 0 /* 0x01 -> [arg0] */ # 9fd: 024200 + l8ui a0, a3, 0 /* [arg1] */ # a00: 020300 + movi a13, 8 /* 0x00000008 */ # a03: 0c8d + blt a13, a0, .Lbr073 # a05: 072d01 + mov a13, a0 /* [arg1] */ # a08: dd00 +.Lbr073: s8i a13, a12, 1 /* a13 -> [arg0+0x1] */ # a0a: d24c01 + addi a3, a3, 1 /* arg1+0x1 */ # a0d: 1b33 + addi a2, a12, 2 /* arg0+0x2 */ # a0f: 2b2c + mov a4, a13 # a11: 4d0d + call0 memcpy # a13: 01f6ffc0 + # a17: 0000 + add a2, a13, a12 # a19: ca2d + l32i a0, sp, 0 /* [(local0)] */ # a1b: 0801 + l32i a12, sp, 4 /* [(local1)] */ # a1d: c811 + l32i a13, sp, 8 /* [(local2)] */ # a1f: d821 + addi a2, a2, 2 # a21: 2b22 + addi sp, sp, 16 /* (top of frame) */ # a23: 12c110 + ret # a26: 0df0 + + .literal_position # a28: 00000000 + +# Function @ .irom0.text+0xa2c +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 + .global ieee80211_add_xrates + .type ieee80211_add_xrates, @function +ieee80211_add_xrates: + addi sp, sp, -16 /* (local0) */ # a2c: 12c1f0 + s32i a12, sp, 8 /* a12 -> [(local2)] */ # a2f: c921 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # a31: 0911 + mov a12, a2 /* arg0 */ # a33: cd02 + l8ui a0, a3, 0 /* [arg1] */ # a35: 020300 + movi a2, 8 /* 0x00000008 */ # a38: 0c82 + bgeu a2, a0, .Lbr074 # a3a: 07b21c + addi a3, a3, 9 /* arg1+0x9 */ # a3d: 9b33 + addi a2, a12, 2 /* arg0+0x2 */ # a3f: 2b2c + movi a5, 50 /* 0x00000032 */ # a41: 3c25 + addi a4, a0, -8 /* [arg1]-0x8 */ # a43: 42c0f8 + s32i a4, sp, 0 /* [arg1]-0x8 -> [(local0)] */ # a46: 4901 + s8i a5, a12, 0 /* 0x32 -> [arg0] */ # a48: 524c00 + s8i a4, a12, 1 /* [arg1]-0x8 -> [arg0+0x1] */ # a4b: 424c01 + call0 memcpy # a4e: 01f6ffc0 + # a52: 0000 + l32i a0, sp, 0 /* [(local0)] */ # a54: 0801 + add a12, a0, a12 # a56: cac0 + addi a12, a12, 2 # a58: 2bcc +.Lbr074: mov a2, a12 # a5a: 2d0c + l32i a0, sp, 4 /* [(local1)] */ # a5c: 0811 + l32i a12, sp, 8 /* [(local2)] */ # a5e: c821 + addi sp, sp, 16 /* (top of frame) */ # a60: 12c110 + ret # a63: 0df0 + + .literal_position # a68: 00000000 + +# Function @ .irom0.text+0xa6c +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 +.Lfunc003: addi sp, sp, -16 /* (local0) */ # a6c: 12c1f0 + s8i a4, a2, 1 /* arg2 -> [arg0+0x1] */ # a6f: 424201 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # a72: 0901 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # a74: d921 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # a76: c911 + mov a13, a2 /* arg0 */ # a78: dd02 + mov a12, a4 /* arg2 */ # a7a: cd04 + movi a0, 0 /* 0x00000000 */ # a7c: 0c00 + s8i a0, a2, 0 /* 0x00 -> [arg0] */ # a7e: 024200 + beqz a4, .Lbr075 # a81: 8c64 + addi a2, a2, 2 /* arg0+0x2 */ # a83: 2b22 + call0 memcpy # a85: 01f8ffc0 + # a89: 0000 +.Lbr075: add a2, a13, a12 # a8b: ca2d + l32i a0, sp, 0 /* [(local0)] */ # a8d: 0801 + l32i a12, sp, 4 /* [(local1)] */ # a8f: c811 + l32i a13, sp, 8 /* [(local2)] */ # a91: d821 + addi a2, a2, 2 # a93: 2b22 + addi sp, sp, 16 /* (top of frame) */ # a95: 12c110 + ret # a98: 0df0 + + .balign 4 +# Function @ .irom0.text+0xa9c + .balign 4 +.Lfunc004: movi a5, 1 /* 0x00000001 */ # a9c: 0c15 + movi a4, 42 /* 0x0000002a */ # a9e: 2ca4 + s8i a4, a2, 0 /* 0x2a -> [arg0] */ # aa0: 424200 + s8i a5, a2, 1 /* 0x01 -> [arg0+0x1] */ # aa3: 524201 + l32i a5, a3, 28 /* [arg1+0x1c] */ # aa6: 5873 + movi a3, 2 /* 0x00000002 */ # aa8: 0c23 + bbci a5, 20, .Lbr076 # aaa: 477502 + j .Lbr077 # aad: 460000 +.Lbr076: movi a3, 0 /* 0x00000000 */ # ab0: 0c03 +.Lbr077: bbci a5, 21, .Lbr078 # ab2: 577504 + movi a6, 4 /* 0x00000004 */ # ab5: 0c46 + or a3, a3, a6 # ab7: 603320 +.Lbr078: s8i a3, a2, 2 /* a3 -> [arg0+0x2] */ # aba: 324202 + addi a2, a2, 3 /* arg0+0x3 */ # abd: 3b22 + ret /* arg0+0x3 */ # abf: 0df0 + + .literal_position # ac4: 00000000 + # ac8: 00000000 + # acc: 00000000 + # ad0: 00000000 + # ad4: ff0f00ff + # ad8: 000af23f + # adc: 00000000 + # ae0: 00000000 + # ae4: 00000000 + # ae8: 00000000 + # aec: 00000000 + +# Function @ .irom0.text+0xaf0 +# Local variables/stack: +# (local0): word[4] @ -0x40 +# (local1): word @ -0x30 +# (local2): word @ -0x2c +# (local3): word @ -0x28 +# (local4): word @ -0x24 +# (local5): word @ -0x20 +# (local6): word @ -0x1c +# (local7): word @ -0x18 +# (local8): word @ -0x14 +# (local9): word @ -0x10 +# (local10): word @ -0xc +# (local11): word[2] @ -0x8 + .balign 4 + .global ieee80211_send_probereq + .type ieee80211_send_probereq, @function +ieee80211_send_probereq: + addi sp, sp, -64 /* (local0) */ # af0: 12c1c0 + s32i a12, sp, 52 /* a12 -> [(local10)] */ # af3: c9d1 + s32i a3, sp, 36 /* arg1 -> [(local6)] */ # af5: 3991 + s32i a5, sp, 28 /* arg3 -> [(local4)] */ # af7: 5971 + s32i a6, sp, 24 /* arg4 -> [(local3)] */ # af9: 6961 + s32i a7, sp, 20 /* arg5 -> [(local2)] */ # afb: 7951 + s32i a0, sp, 48 /* a0 -> [(local9)] */ # afd: 09c1 + movi a0, g_ic # aff: 01f1ff + s32i a4, sp, 32 /* arg2 -> [(local5)] */ # b02: 4981 + l32i a2, a0, 0x168 /* [g_ic+0x168] */ # b04: 22205a + l32i a9, a0, 16 /* [g_ic+0x10] */ # b07: 9840 + bnez a2, .Lbr079 # b09: cc32 + movi a4, 53 /* 0x00000035 */ # b0b: 3c54 + j .Lbr080 # b0d: 460100 +.Lbr079: l16ui a4, a2, 0 /* [[g_ic+0x168]] */ # b10: 421200 + addi a4, a4, 53 /* [[g_ic+0x168]]+0x35 */ # b13: 42c435 +.Lbr080: addi a2, sp, 16 /* (local1) */ # b16: 22c110 + movi a3, 24 /* 0x00000018 */ # b19: 1c83 + s32i a9, sp, 44 /* [g_ic+0x10] -> [(local8)] */ # b1b: 99b1 + call0 ieee80211_getmgtframe # b1d: 01f0ffc0 + # b21: 0000 + mov a12, a2 # b23: cd02 + bnez a2, .Lbr083 # b25: dcc2 + movi a2, g_ic # b27: 21e8ff + l32i a2, a2, 0x168 /* [g_ic+0x168] */ # b2a: 22225a + movi a3, 0 /* 0x00000000 */ # b2d: 0c03 + bnez a2, .Lbr081 # b2f: cc12 + j .Lbr082 # b31: 860000 +.Lbr081: l16ui a3, a2, 0 /* [[g_ic+0x168]] */ # b34: 321200 +.Lbr082: movi a2, .Lstr001 # b37: 21e5ff + call0 printf # b3a: 01eaffc0 + # b3e: 0000 + movi a2, 1 /* 0x00000001 */ # b40: 0c12 + j .Lbr085 # b42: 464f00 +.Lbr083: movi a3, 24 /* 0x00000018 */ # b45: 1c83 + l32i a4, sp, 20 /* [(local2)] */ # b47: 4851 + s16i a3, a2, 20 # b49: 32520a + l32i a2, sp, 16 /* [(local1)] */ # b4c: 2841 + l32i a3, sp, 24 /* [(local3)] */ # b4e: 3861 + call0 .Lfunc003 # b50: 85f1ff + s32i a2, sp, 16 /* a2 -> [(local1)] */ # b53: 2941 + movi a3, g_ic+0x2c # b55: 31deff + s32i a3, sp, 40 /* g_ic+0x2c -> [(local7)] */ # b58: 39a1 + call0 ieee80211_add_rates # b5a: 050000 + s32i a2, sp, 16 /* a2 -> [(local1)] */ # b5d: 2941 + l32i a3, sp, 40 /* [(local7)] */ # b5f: 38a1 + call0 ieee80211_add_xrates # b61: 050000 + l16ui a8, a12, 20 # b64: 821c0a + s32i a2, sp, 16 /* a2 -> [(local1)] */ # b67: 2941 + l32i a7, a12, 4 # b69: 781c + movi a4, 0 /* 0x00000000 */ # b6b: 0c04 + l32i a9, a7, 4 # b6d: 9817 + s32i a4, sp, 56 /* 0x00000000 -> [(local11)] */ # b6f: 49e1 + add a9, a8, a9 # b71: 9a98 + sub a9, a2, a9 # b73: 9092c0 + s16i a9, a12, 22 # b76: 925c0b + movi a3, 128 /* 0x00000080 */ # b79: 32a080 + add a8, a8, a9 # b7c: 9a88 + memw # b7e: c02000 + l8ui a2, a7, 3 # b81: 220703 + extui a2, a2, 0, 7 # b84: 202064 + or a2, a2, a3 # b87: 302220 + memw # b8a: c02000 + s8i a2, a7, 3 # b8d: 224703 + movi a0, 191 /* 0x000000bf */ # b90: 02a0bf + movi a4, 64 /* 0x00000040 */ # b93: 4c04 + memw # b95: c02000 + l8ui a11, a7, 3 # b98: b20703 + and a11, a11, a0 # b9b: 00bb10 + or a11, a11, a4 # b9e: 40bb20 + memw # ba1: c02000 + s8i a11, a7, 3 # ba4: b24703 + movi a10, 223 /* 0x000000df */ # ba7: a2a0df + memw # baa: c02000 + l8ui a9, a7, 3 # bad: 920703 + and a9, a9, a10 # bb0: a09910 + memw # bb3: c02000 + s8i a9, a7, 3 # bb6: 924703 + extui a8, a8, 0, 12 # bb9: 8080b4 + slli a8, a8, 12 # bbc: 408811 + movi a9, 0xff000fff # bbf: 91c5ff + memw # bc2: c02000 + l16ui a6, a7, 2 # bc5: 621701 + slli a6, a6, 16 # bc8: 006611 + memw # bcb: c02000 + l16ui a10, a7, 0 # bce: a21700 + or a6, a6, a10 # bd1: a06620 + and a6, a6, a9 # bd4: 906610 + or a6, a6, a8 # bd7: 806620 + memw # bda: c02000 + s16i a6, a7, 0 # bdd: 625700 + extui a6, a6, 16, 16 # be0: 6060f5 + memw # be3: c02000 + l32i a2, sp, 44 /* [(local8)] */ # be6: 28b1 + mov a3, a12 # be8: 3d0c + s16i a6, a7, 2 # bea: 625701 + l32i a5, sp, 28 /* [(local4)] */ # bed: 5871 + l32i a6, sp, 36 /* [(local6)] */ # bef: 6891 + l32i a7, sp, 32 /* [(local5)] */ # bf1: 7881 + s32i a5, sp, 0 /* [(local4)] -> [(local0)] */ # bf3: 5901 + movi a5, 16 /* 0x00000010 */ # bf5: 1c05 + call0 ieee80211_send_setup # bf7: 050000 + movi a7, 7 /* 0x00000007 */ # bfa: 0c77 + movi a3, 16 /* 0x00000010 */ # bfc: 1c03 + l32i a10, a12, 32 # bfe: a88c + movi a4, 143 /* 0x0000008f */ # c00: 42a08f + l32i a11, a10, 0 # c03: b80a + l8ui a2, a10, 6 # c05: 220a06 + extui a9, a11, 0, 6 # c08: b09054 + and a2, a2, a4 # c0b: 402210 + srli a11, a11, 6 # c0e: b0b641 + s8i a2, a10, 6 # c11: 224a06 + l32i a6, a12, 32 # c14: 688c + or a11, a11, a3 # c16: 30bb20 + slli a11, a11, 6 # c19: a0bb11 + or a9, a9, a11 # c1c: b09920 + s32i a9, a10, 0 # c1f: 990a + l8ui a5, a6, 4 # c21: 520604 + movi a8, 240 /* 0x000000f0 */ # c24: 82a0f0 + and a5, a5, a8 # c27: 805510 + or a5, a5, a7 # c2a: 705520 + s8i a5, a6, 4 # c2d: 524604 + l32i a0, sp, 56 /* [(local11)] */ # c30: 08e1 + movi a4, 0x3ff20a00 # c32: 41a9ff + l32i a5, a12, 32 # c35: 588c + memw # c37: c02000 + l32i a4, a4, 0x200 /* [0x3ff20c00] */ # c3a: 422480 + l8ui a6, a5, 0 # c3d: 620500 + movi a7, 254 /* 0x000000fe */ # c40: 72a0fe + and a6, a6, a7 # c43: 706610 + s8i a6, a5, 0 # c46: 624500 + l32i a2, a12, 32 # c49: 288c + s32i a4, a5, 16 # c4b: 4945 + l8ui a11, a2, 0 # c4d: b20200 + movi a3, 253 /* 0x000000fd */ # c50: 32a0fd + and a11, a11, a3 # c53: 30bb10 + s8i a11, a2, 0 # c56: b24200 + l32i a2, a12, 32 # c59: 288c + l32i a10, a2, 0 # c5b: a802 + bbci a10, 7, .Lbr086 # c5d: 776a2b +.Lbr084: movi a5, 1 /* 0x00000001 */ # c60: 0c15 + l8ui a6, sp, 64 /* [(local12)] */ # c62: 620140 + movi a7, g_ic # c65: 719dff + s32i a0, a12, 24 # c68: 096c + l8ui a7, a7, 125 /* [g_ic+0x7d] */ # c6a: 72077d + ssl a6 # c6d: 001640 + sll a5, a5 # c70: 0055a1 + s8i a7, a2, 8 # c73: 724208 + s8i a5, a2, 14 # c76: 52420e + mov a2, a12 # c79: 2d0c + call0 ppTxPkt # c7b: 019bffc0 + # c7f: 0000 + movi a2, 0 /* 0x00000000 */ # c81: 0c02 +.Lbr085: l32i a12, sp, 52 /* [(local10)] */ # c83: c8d1 + l32i a0, sp, 48 /* [(local9)] */ # c85: 08c1 + addi sp, sp, 64 /* (local12) */ # c87: 12c140 + ret # c8a: 0df0 +.Lbr086: movi a2, 0 /* 0x00000000 */ # c8c: 0c02 + call0 rc_get_trc_by_index # c8e: 0197ffc0 + # c92: 0000 + mov a0, a2 # c94: 0d02 + l32i a2, a12, 32 # c96: 288c + j .Lbr084 # c98: 06f1ff + + .literal_position # c9c: 00000000 + +# Function @ .irom0.text+0xca0 + .balign 4 + .global ieee80211_getcapinfo + .type ieee80211_getcapinfo, @function +ieee80211_getcapinfo: + movi a7, 16 /* 0x00000010 */ # ca0: 1c07 + l32i a2, a2, 0 /* [arg0] */ # ca2: 2802 + movi a5, g_ic # ca4: 51feff + movi a3, 1 /* 0x00000001 */ # ca7: 0c13 + l32i a5, a5, 20 /* [g_ic+0x14] */ # ca9: 5855 + movi a4, 0 /* 0x00000000 */ # cab: 0c04 + l32i a6, a5, 176 /* [[g_ic+0x14]+0xb0] */ # cad: 62252c + l32i a5, a5, 72 /* [[g_ic+0x14]+0x48] */ # cb0: 522512 + addi a6, a6, -1 /* [[g_ic+0x14]+0xb0]-0x1 */ # cb3: 0b66 + moveqz a4, a3, a6 # cb5: 604383 + bbci a5, 4, .Lbr087 # cb8: 476505 + or a4, a4, a7 # cbb: 704420 + extui a4, a4, 0, 16 # cbe: 4040f4 +.Lbr087: bbci a5, 18, .Lbr088 # cc1: 27750a + bbci a2, 7, .Lbr088 # cc4: 776207 + movi a6, 32 /* 0x00000020 */ # cc7: 2c06 + or a4, a4, a6 # cc9: 604420 + extui a4, a4, 0, 16 # ccc: 4040f4 +.Lbr088: movi a6, 1024 /* 0x00000400 */ # ccf: 62a400 + bbci a5, 10, .Lbr089 # cd2: a76505 + or a4, a4, a6 # cd5: 604420 + extui a4, a4, 0, 16 # cd8: 4040f4 +.Lbr089: movi a6, 256 /* 0x00000100 */ # cdb: 62a100 + bbci a2, 8, .Lbr090 # cde: 876208 + bbci a5, 30, .Lbr090 # ce1: e77505 + or a4, a4, a6 # ce4: 604420 + extui a4, a4, 0, 16 # ce7: 4040f4 +.Lbr090: mov a2, a4 # cea: 2d04 + ret # cec: 0df0 + + .literal_position # cf0: 00000000 + # cf4: 00000000 + # cf8: 00000000 + # cfc: 00000000 + # d00: 000af23f + # d04: 00000000 + # d08: 00000000 + # d0c: 00000000 + # d10: 10800000 + # d14: 20000000 + # d18: 00000000 + # d1c: 00000000 + # d20: 00000000 + # d24: 00000000 + # d28: 00000000 + # d2c: 00000000 + # d30: 00000000 + # d34: 00000000 + # d38: 00000000 + # d3c: 00000000 + # d40: 00000000 + # d44: 00000000 + # d48: 00000000 + # d4c: 00000000 + # d50: 00000000 + # d54: 00000000 + # d58: 00000000 + # d5c: 00000000 + # d60: 00000000 + # d64: 00000000 + # d68: 00000000 + +# Function @ .irom0.text+0xd6c +# Local variables/stack: +# (local0): word @ -0x60 +# (local1): word @ -0x5c +# (local2): word @ -0x58 +# (local3): word @ -0x54 +# (local4): word @ -0x50 +# (local5): word @ -0x4c +# (local6): word @ -0x48 +# (local7): word @ -0x44 +# (local8): word @ -0x40 +# (local9): word @ -0x3c +# (local10): word @ -0x38 +# (local11): word @ -0x34 +# (local12): word @ -0x30 +# (local13): word @ -0x2c +# (local14): word @ -0x28 +# (local15): word @ -0x24 +# (local16): word @ -0x20 +# (local17): word @ -0x1c +# (local18): word @ -0x18 +# (local19): word @ -0x14 +# (local20): word @ -0x10 +# (local21): word[3] @ -0xc + .balign 4 + .global ieee80211_send_mgmt + .type ieee80211_send_mgmt, @function +ieee80211_send_mgmt: + movi a8, 192 /* 0x000000c0 */ # d6c: 82a0c0 + movi a10, g_ic+0x18a # d6f: a1e0ff + movi a9, 24 /* 0x00000018 */ # d72: 1c89 + movi a6, g_ic+0x2c # d74: 61e0ff + mov a7, a4 /* arg2 */ # d77: 7d04 + addi sp, sp, -96 /* (local0) */ # d79: 12c1a0 + s32i a13, sp, 60 /* a13 -> [(local15)] */ # d7c: d9f1 + s32i a0, sp, 52 /* a0 -> [(local13)] */ # d7e: 09d1 + movi a4, 2 /* 0x00000002 */ # d80: 0c24 + s32i a15, sp, 68 /* a15 -> [(local17)] */ # d82: f26111 + s32i a12, sp, 56 /* a12 -> [(local14)] */ # d85: c9e1 + s32i a14, sp, 64 /* a14 -> [(local16)] */ # d87: e26110 + mov a12, a2 /* arg0 */ # d8a: cd02 + mov a14, a3 /* arg1 */ # d8c: ed03 + addi a15, a6, -44 /* g_ic */ # d8e: f2c6d4 + l32i a3, a2, 136 /* [arg0+0x88] */ # d91: 322222 + s32i a3, sp, 76 /* [arg0+0x88] -> [(local19)] */ # d94: 326113 + beqz a14, .Lbr100 # d97: 168e0b + addi a5, a14, -16 /* arg1-0x10 */ # d9a: 52cef0 + beqz a5, .Lbr105 # d9d: 16d50d + addi a11, a14, -32 /* arg1-0x20 */ # da0: b2cee0 + beqz a11, .Lbr100 # da3: 16cb0a + addi a13, a14, -48 /* arg1-0x30 */ # da6: d2ced0 + beqz a13, .Lbr105 # da9: 161d0d + movi a0, 160 /* 0x000000a0 */ # dac: 02a0a0 + sub a0, a14, a0 /* arg1-0xa0 */ # daf: 000ec0 + beqz a0, .Lbr139 # db2: 16704d + movi a2, 176 /* 0x000000b0 */ # db5: 22a0b0 + sub a2, a14, a2 /* arg1-0xb0 */ # db8: 202ec0 + beqz a2, .Lbr126 # dbb: 16323b + bne a14, a8, .Lbr093 # dbe: 879e48 + mov a3, a9 /* 0x00000018 */ # dc1: 3d09 + mov a2, sp /* (local0) */ # dc3: 2d01 + s32i a7, sp, 8 /* arg2 -> [(local2)] */ # dc5: 7921 + call0 ieee80211_getmgtframe # dc7: 01d4ffc0 + # dcb: 0000 + mov a13, a2 # dcd: dd02 + beqz a2, .Lbr096 # dcf: 167205 + s32i a12, sp, 44 /* arg0 -> [(local11)] */ # dd2: c9b1 + movi a5, -2 /* 0xfffffffe */ # dd4: 7ce5 + movi a6, 2 /* 0x00000002 */ # dd6: 0c26 + l32i a7, sp, 8 /* [(local2)] */ # dd8: 7821 + l32i a8, sp, 0 /* [(local0)] */ # dda: 8801 + l32i a4, sp, 76 /* [(local19)] */ # ddc: 422113 + movi a9, 24 /* 0x00000018 */ # ddf: 1c89 + l32i a3, a4, 8 /* [[(local19)]+0x8] */ # de1: 3824 + s16i a9, a2, 20 # de3: 92520a + s16i a7, a8, 0 /* [(local2)] -> [[(local0)]] */ # de6: 725800 + s16i a6, a2, 22 # de9: 62520b + and a3, a3, a5 # dec: 503310 + s32i a3, a4, 8 /* a3 -> [[(local19)]+0x8] */ # def: 3924 + j .Lbr113 # df1: 065e00 +.Lbr091: l16ui a0, a0, 0 /* [[g_ic+0x16c]] */ # df4: 021000 +.Lbr092: add a4, a2, a4 # df7: 4a42 + movi a3, 24 /* 0x00000018 */ # df9: 1c83 + mov a2, sp /* (local0) */ # dfb: 2d01 + add a4, a0, a4 # dfd: 4a40 + call0 ieee80211_getmgtframe # dff: 01c7ffc0 + # e03: 0000 + mov a13, a2 # e05: dd02 + bnez a2, .Lbr114 # e07: 56f21d +.Lbr093: beqz a13, .Lbr096 # e0a: 9ccd + l32i a0, a13, 32 # e0c: 088d + movi a3, 4 /* 0x00000004 */ # e0e: 0c43 + l32i a0, a0, 0 # e10: 0800 + movi a2, 5 /* 0x00000005 */ # e12: 0c52 + bbci a0, 20, .Lbr094 # e14: 477002 + j .Lbr095 # e17: c60100 +.Lbr094: l32i a3, sp, 4 /* [(local1)] */ # e1a: 3811 + extui a4, a0, 21, 1 # e1c: 004505 + movnez a3, a2, a4 # e1f: 403293 +.Lbr095: mov a2, a13 # e22: 2d0d + call0 esf_buf_recycle # e24: 01bfffc0 + # e28: 0000 +.Lbr096: movi a2, 1 /* 0x00000001 */ # e2a: 0c12 + j .Lbr099 # e2c: 860400 +.Lbr097: movi a5, 0 /* 0x00000000 */ # e2f: 0c05 + s32i a5, a13, 24 # e31: 596d +.Lbr098: mov a4, a14 /* arg1 */ # e33: 4d0e + mov a3, a13 # e35: 3d0d + mov a2, a12 /* [(local11)] */ # e37: 2d0c + l8ui a6, a15, 125 /* [g_ic+0x7d] */ # e39: 620f7d + s8i a6, a0, 8 # e3c: 624008 + call0 ieee80211_mgmt_output # e3f: 050000 +.Lbr099: l32i a12, sp, 56 /* [(local14)] */ # e42: c8e1 + l32i a13, sp, 60 /* [(local15)] */ # e44: d8f1 + l32i a14, sp, 64 /* [(local16)] */ # e46: e22110 + l32i a15, sp, 68 /* [(local17)] */ # e49: f22111 + l32i a0, sp, 52 /* [(local13)] */ # e4c: 08d1 + addi sp, sp, 96 /* (top of frame) */ # e4e: 12c160 + ret # e51: 0df0 +.Lbr100: l32i a0, a15, 0x174 /* [g_ic+0x174] */ # e53: 022f5d + bnez a0, .Lbr101 # e56: cc40 + movi a2, 164 /* 0x000000a4 */ # e58: 22a0a4 + j .Lbr102 # e5b: c60100 +.Lbr101: l16ui a2, a0, 0 /* [[g_ic+0x174]] */ # e5e: 221000 + movi a3, 164 /* 0x000000a4 */ # e61: 32a0a4 + add a2, a2, a3 /* [[g_ic+0x174]]+0xa4 */ # e64: 3a22 +.Lbr102: l32i a0, a15, 0x178 /* [g_ic+0x178] */ # e66: 022f5e + bnez a0, .Lbr103 # e69: cc30 + movi a4, 0 /* 0x00000000 */ # e6b: 0c04 + j .Lbr104 # e6d: 860000 +.Lbr103: l16ui a4, a0, 0 /* [[g_ic+0x178]] */ # e70: 421000 +.Lbr104: l32i a0, a15, 0x16c /* [g_ic+0x16c] */ # e73: 022f5b + bnez a0, .Lbr091 # e76: 56a0f7 + movi a0, 0 /* 0x00000000 */ # e79: 0c00 + j .Lbr092 # e7b: 06deff +.Lbr105: l32i a0, a15, 0x170 /* [g_ic+0x170] */ # e7e: 022f5c + bnez a0, .Lbr106 # e81: cc40 + movi a4, 111 /* 0x0000006f */ # e83: 42a06f + j .Lbr107 # e86: 460100 +.Lbr106: l16ui a4, a0, 0 /* [[g_ic+0x170]] */ # e89: 421000 + addi a4, a4, 111 /* [[g_ic+0x170]]+0x6f */ # e8c: 42c46f +.Lbr107: mov a2, sp /* (local0) */ # e8f: 2d01 + movi a3, 24 /* 0x00000018 */ # e91: 1c83 + s32i a7, sp, 8 /* arg2 -> [(local2)] */ # e93: 7921 + call0 ieee80211_getmgtframe # e95: 01a3ffc0 + # e99: 0000 + s32i a2, sp, 48 /* a2 -> [(local12)] */ # e9b: 29c1 + mov a13, a2 # e9d: dd02 + beqz a2, .Lbr093 # e9f: 1672f6 + movi a3, g_ic+0x280 # ea2: 3195ff + movi a4, 24 /* 0x00000018 */ # ea5: 1c84 + s16i a4, a2, 20 # ea7: 42520a + l8ui a2, a3, 141 /* [g_ic+0x30d] */ # eaa: 22038d + l8ui a3, a3, 141 /* [g_ic+0x30d] */ # ead: 32038d + addx2 a2, a2, a3 # eb0: 302290 + addx4 a2, a2, a15 # eb3: f022a0 + addi a2, a2, 120 # eb6: 22c278 + call0 ieee80211_getcapinfo # eb9: 050000 + l32i a0, sp, 0 /* [(local0)] */ # ebc: 0801 + l32i a5, sp, 8 /* [(local2)] */ # ebe: 5821 + s16i a2, a0, 0 /* a2 -> [[(local0)]] */ # ec0: 225000 + s16i a5, a0, 2 /* [(local2)] -> [[(local0)]+0x2] */ # ec3: 525001 + addi a2, a0, 4 /* [(local0)]+0x4 */ # ec6: 4b20 + s32i a2, sp, 0 /* [(local0)]+0x4 -> [(local0)] */ # ec8: 2901 + bnez a5, .Lbr108 # eca: cc75 + l32i a6, sp, 76 /* [(local19)] */ # ecc: 622113 + l16ui a6, a6, 26 /* [[(local19)]+0x1a] */ # ecf: 62160d + s16i a6, a0, 4 /* [[(local19)]+0x1a] -> [[(local0)]+0x4] */ # ed2: 625002 +.Lbr108: movi a3, g_ic+0x2c # ed5: 3189ff + addi a2, a2, 2 /* [(local0)]+0x6 */ # ed8: 2b22 + s32i a2, sp, 0 /* [(local0)]+0x6 -> [(local0)] */ # eda: 2901 + s32i a3, sp, 40 /* g_ic+0x2c -> [(local10)] */ # edc: 39a1 + call0 ieee80211_add_rates # ede: 050000 + s32i a2, sp, 0 /* a2 -> [(local0)] */ # ee1: 2901 + l32i a3, sp, 40 /* [(local10)] */ # ee3: 38a1 + s32i a12, sp, 44 /* arg0 -> [(local11)] */ # ee5: c9b1 + call0 ieee80211_add_xrates # ee7: 050000 + mov a12, a2 # eea: cd02 + l32i a0, sp, 76 /* [(local19)] */ # eec: 022113 + movi a3, 192 /* 0x000000c0 */ # eef: 32a0c0 + l32i a0, a0, 8 /* [[(local19)]+0x8] */ # ef2: 0820 + s32i a2, sp, 0 /* a2 -> [(local0)] */ # ef4: 2901 + and a0, a0, a3 # ef6: 300010 + bnei a0, 64, .Lbr109 # ef9: 66d020 + l32i a3, sp, 44 /* [(local11)] */ # efc: 38b1 + call0 ieee80211_add_htcap # efe: 018affc0 + # f02: 0000 + s32i a2, sp, 0 /* a2 -> [(local0)] */ # f04: 2901 + l32i a3, sp, 44 /* [(local11)] */ # f06: 38b1 + call0 ieee80211_add_htinfo # f08: 0189ffc0 + # f0c: 0000 + l32i a0, sp, 76 /* [(local19)] */ # f0e: 022113 + mov a12, a2 # f11: cd02 + l32i a0, a0, 8 /* [[(local19)]+0x8] */ # f13: 0820 + s32i a2, sp, 0 /* a2 -> [(local0)] */ # f15: 2901 + movi a2, 192 /* 0x000000c0 */ # f17: 22a0c0 + and a0, a0, a2 # f1a: 200010 +.Lbr109: movi a2, 192 /* 0x000000c0 */ # f1d: 22a0c0 + bne a0, a2, .Lbr110 # f20: 279017 + mov a2, a12 # f23: 2d0c + l32i a3, sp, 44 /* [(local11)] */ # f25: 38b1 + call0 ieee80211_add_htcap_vendor # f27: 0182ffc0 + # f2b: 0000 + s32i a2, sp, 0 /* a2 -> [(local0)] */ # f2d: 2901 + l32i a3, sp, 44 /* [(local11)] */ # f2f: 38b1 + call0 ieee80211_add_htinfo_vendor # f31: 0180ffc0 + # f35: 0000 + mov a12, a2 # f37: cd02 + s32i a2, sp, 0 /* a2 -> [(local0)] */ # f39: 2901 +.Lbr110: l32i a3, a15, 0x170 /* [g_ic+0x170] */ # f3b: 322f5c + s32i a3, sp, 36 /* [g_ic+0x170] -> [(local9)] */ # f3e: 3991 + beqz a3, .Lbr111 # f40: 9c63 + mov a4, a3 /* [g_ic+0x170] */ # f42: 4d03 + mov a2, a12 # f44: 2d0c + addi a3, a3, 2 /* [g_ic+0x170]+0x2 */ # f46: 2b33 + l16ui a4, a4, 0 /* [[g_ic+0x170]] */ # f48: 421400 + call0 memcpy # f4b: 017bffc0 + # f4f: 0000 + l32i a5, sp, 36 /* [(local9)] */ # f51: 5891 + l16ui a5, a5, 0 /* [[(local9)]] */ # f53: 521500 + add a12, a5, a12 # f56: cac5 + s32i a12, sp, 0 /* a12 -> [(local0)] */ # f58: c901 +.Lbr111: l32i a0, sp, 48 /* [(local12)] */ # f5a: 08c1 + l32i a4, a0, 4 /* [[(local12)]+0x4] */ # f5c: 4810 + l16ui a0, a0, 20 /* [[(local12)]+0x14] */ # f5e: 02100a +.Lbr112: l32i a2, a4, 4 # f61: 2814 + l32i a3, sp, 48 /* [(local12)] */ # f63: 38c1 + add a2, a0, a2 # f65: 2a20 + sub a2, a12, a2 # f67: 202cc0 + s16i a2, a3, 22 /* a2 -> [[(local12)]+0x16] */ # f6a: 22530b +.Lbr113: movi a8, 0x3ff20a00 # f6d: 8164ff + movi a5, 7 /* 0x00000007 */ # f70: 0c75 + movi a6, 240 /* 0x000000f0 */ # f72: 62a0f0 + l32i a9, a13, 32 # f75: 988d + l32i a2, a15, 16 /* [g_ic+0x10] */ # f77: 284f + l8ui a7, a9, 6 # f79: 720906 + movi a10, 143 /* 0x0000008f */ # f7c: a2a08f + and a7, a7, a10 # f7f: a07710 + s8i a7, a9, 6 # f82: 724906 + l32i a4, a13, 32 # f85: 488d + l32i a12, sp, 44 /* [(local11)] */ # f87: c8b1 + l8ui a3, a4, 4 # f89: 320404 + sub a2, a2, a12 # f8c: c022c0 + and a3, a3, a6 # f8f: 603310 + or a3, a3, a5 # f92: 503320 + s8i a3, a4, 4 # f95: 324404 + movi a9, 1 /* 0x00000001 */ # f98: 0c19 + movnez a2, a9, a2 # f9a: 202993 + l32i a9, a13, 32 # f9d: 988d + memw # f9f: c02000 + l32i a3, sp, 76 /* [(local19)] */ # fa2: 322113 + movi a7, 253 /* 0x000000fd */ # fa5: 72a0fd + extui a6, a2, 0, 1 # fa8: 206004 + l32i a8, a8, 0x200 /* [0x3ff20c00] */ # fab: 822880 + l8ui a10, a9, 0 # fae: a20900 + movi a11, 254 /* 0x000000fe */ # fb1: b2a0fe + and a10, a10, a11 # fb4: b0aa10 + s8i a10, a9, 0 # fb7: a24900 + l32i a5, a13, 32 # fba: 588d + s32i a8, a9, 16 # fbc: 8949 + l8ui a4, a5, 0 # fbe: 420500 + slli a6, a6, 1 # fc1: f06611 + and a4, a4, a7 # fc4: 704410 + or a4, a4, a6 # fc7: 604420 + s8i a4, a5, 0 # fca: 424500 + l16ui a3, a3, 26 /* [[(local19)]+0x1a] */ # fcd: 32130d + l32i a0, a13, 32 # fd0: 088d + beqz a3, .Lbr097 # fd2: 1693e5 + l32i a11, a0, 0 # fd5: b800 + extui a11, a11, 7, 1 # fd7: b0b704 + bnez a11, .Lbr097 # fda: 561be5 + call0 rc_get_trc_by_index # fdd: 0157ffc0 + # fe1: 0000 + s32i a2, a13, 24 # fe3: 296d + l32i a0, a13, 32 # fe5: 088d + j .Lbr098 # fe7: 0692ff +.Lbr114: movi a5, 1 /* 0x00000001 */ # fea: 0c15 + movi a0, 17 /* 0x00000011 */ # fec: 1c10 + l32i a4, sp, 76 /* [(local19)] */ # fee: 422113 + movi a6, g_ic+0x18a # ff1: 6144ff + movi a8, 24 /* 0x00000018 */ # ff4: 1c88 + s16i a8, a2, 20 # ff6: 82520a + s32i a6, sp, 72 /* g_ic+0x18a -> [(local18)] */ # ff9: 626112 + l32i a2, a15, 28 /* [g_ic+0x1c] */ # ffc: 287f + l32i a4, a4, 120 /* [[(local19)]+0x78] */ # ffe: 42241e + l8ui a6, a6, 128 /* [g_ic+0x20a] */ # 1001: 620680 + l32i a4, a4, 0 /* [[[(local19)]+0x78]] */ # 1004: 4804 + moveqz a0, a5, a6 # 1006: 600583 + bbci a2, 18, .Lbr115 # 1009: 277207 + bbci a4, 7, .Lbr115 # 100c: 776404 + movi a9, 32 /* 0x00000020 */ # 100f: 2c09 + or a0, a0, a9 # 1011: 900020 +.Lbr115: movi a10, 192 /* 0x000000c0 */ # 1014: a2a0c0 + ball a4, a10, .Lbr116 # 1017: a74405 + movi a11, 1152 /* 0x00000480 */ # 101a: b2a480 + bnall a4, a11, .Lbr117 # 101d: b7c40a +.Lbr116: l32i a2, a15, 32 /* [g_ic+0x20] */ # 1020: 288f + bbci a2, 14, .Lbr117 # 1022: e76205 + movi a3, 1024 /* 0x00000400 */ # 1025: 32a400 + or a0, a0, a3 # 1028: 300020 +.Lbr117: l32i a2, sp, 0 /* [(local0)] */ # 102b: 2801 + l32i a3, sp, 76 /* [(local19)] */ # 102d: 322113 + addi a4, a2, 2 /* [(local0)]+0x2 */ # 1030: 2b42 + s16i a0, a2, 0 /* a0 -> [[(local0)]] */ # 1032: 025200 + l16ui a3, a3, 28 /* [[(local19)]+0x1c] */ # 1035: 32130e + s32i a4, sp, 0 /* [(local0)]+0x2 -> [(local0)] */ # 1038: 4901 + s16i a3, a2, 2 /* [[(local19)]+0x1c] -> [[(local0)]+0x2] */ # 103a: 325201 + addi a2, a2, 4 /* [(local0)]+0x4 */ # 103d: 4b22 + s32i a2, sp, 0 /* [(local0)]+0x4 -> [(local0)] */ # 103f: 2901 + bnei a14, 32, .Lbr118 # 1041: 66ce10 + l32i a3, sp, 76 /* [(local19)] */ # 1044: 322113 + movi a4, 6 /* 0x00000006 */ # 1047: 0c64 + call0 memcpy # 1049: 013dffc0 + # 104d: 0000 + l32i a2, sp, 0 /* [(local0)] */ # 104f: 2801 + addi a2, a2, 6 /* [(local0)]+0x6 */ # 1051: 6b22 + s32i a2, sp, 0 /* [(local0)]+0x6 -> [(local0)] */ # 1053: 2901 +.Lbr118: l32i a5, sp, 72 /* [(local18)] */ # 1055: 522112 + movi a3, g_ic+0x1e8 # 1058: 312cff + l16ui a4, a5, 92 /* [[(local18)]+0x5c] */ # 105b: 42152e + l16ui a5, a5, 90 /* [[(local18)]+0x5a] */ # 105e: 52152d + slli a4, a4, 16 # 1061: 004411 + or a4, a4, a5 # 1064: 504420 + call0 .Lfunc003 # 1067: 45a0ff + s32i a2, sp, 0 /* a2 -> [(local0)] */ # 106a: 2901 + movi a3, g_ic+0x2c # 106c: 3128ff + s32i a3, sp, 40 /* g_ic+0x2c -> [(local10)] */ # 106f: 39a1 + call0 ieee80211_add_rates # 1071: 050000 + l32i a0, sp, 72 /* [(local18)] */ # 1074: 022112 + mov a4, a2 # 1077: 4d02 + l8ui a0, a0, 127 /* [[(local18)]+0x7f] */ # 1079: 02007f + s32i a2, sp, 0 /* a2 -> [(local0)] */ # 107c: 2901 + beqi a0, 4, .Lbr119 # 107e: 264005 + beqi a0, 5, .Lbr119 # 1081: 265002 + bnei a0, 7, .Lbr120 # 1084: 667024 +.Lbr119: l32i a0, a15, 0x178 /* [g_ic+0x178] */ # 1087: 022f5e + s32i a4, sp, 28 /* a4 -> [(local7)] */ # 108a: 4971 + beqz a0, .Lbr120 # 108c: 9cc0 + l32i a2, sp, 28 /* [(local7)] */ # 108e: 2871 + l8ui a4, a0, 3 /* [[g_ic+0x178]+0x3] */ # 1090: 420003 + addi a3, a0, 2 /* [g_ic+0x178]+0x2 */ # 1093: 2b30 + s32i a3, sp, 20 /* [g_ic+0x178]+0x2 -> [(local5)] */ # 1095: 3951 + addi a4, a4, 2 /* [[g_ic+0x178]+0x3]+0x2 */ # 1097: 2b44 + call0 memcpy # 1099: 012affc0 + # 109d: 0000 + l32i a2, sp, 20 /* [(local5)] */ # 109f: 2851 + l32i a3, sp, 28 /* [(local7)] */ # 10a1: 3871 + l8ui a2, a2, 1 /* [[(local5)]+0x1] */ # 10a3: 220201 + add a2, a2, a3 # 10a6: 3a22 + addi a2, a2, 2 # 10a8: 2b22 + s32i a2, sp, 0 /* a2 -> [(local0)] */ # 10aa: 2901 +.Lbr120: l32i a3, sp, 40 /* [(local10)] */ # 10ac: 38a1 + s32i a12, sp, 44 /* arg0 -> [(local11)] */ # 10ae: c9b1 + call0 ieee80211_add_xrates # 10b0: 050000 + s32i a2, sp, 0 /* a2 -> [(local0)] */ # 10b3: 2901 + l32i a4, sp, 72 /* [(local18)] */ # 10b5: 422112 + mov a12, a2 # 10b8: cd02 + addmi a4, a4, 768 /* [(local18)]+0x300 */ # 10ba: 42d403 + addi a4, a4, 127 /* [(local18)]+0x37f */ # 10bd: 42c47f + addi a4, a4, 3 /* [(local18)]+0x382 */ # 10c0: 3b44 + l16ui a3, a4, 2 /* [[(local18)]+0x384] */ # 10c2: 321401 + l16ui a4, a4, 0 /* [[(local18)]+0x382] */ # 10c5: 421400 + slli a3, a3, 16 # 10c8: 003311 + or a3, a3, a4 # 10cb: 403320 + bbci a3, 19, .Lbr121 # 10ce: 377316 + l32i a6, sp, 44 /* [(local11)] */ # 10d1: 68b1 + l32i a6, a6, 72 /* [[(local11)]+0x48] */ # 10d3: 622612 + movi a5, 192 /* 0x000000c0 */ # 10d6: 52a0c0 + bnone a5, a6, .Lbr121 # 10d9: 67050b + l32i a3, sp, 44 /* [(local11)] */ # 10dc: 38b1 + call0 ieee80211_add_htcap # 10de: 011affc0 + # 10e2: 0000 + mov a12, a2 # 10e4: cd02 + s32i a2, sp, 0 /* a2 -> [(local0)] */ # 10e6: 2901 +.Lbr121: l32i a0, sp, 72 /* [(local18)] */ # 10e8: 022112 + l8ui a0, a0, 127 /* [[(local18)]+0x7f] */ # 10eb: 02007f + beqi a0, 2, .Lbr122 # 10ee: 262005 + beqi a0, 3, .Lbr122 # 10f1: 263002 + bnei a0, 6, .Lbr123 # 10f4: 666020 +.Lbr122: l32i a0, a15, 0x174 /* [g_ic+0x174] */ # 10f7: 022f5d + beqz a0, .Lbr123 # 10fa: 9ca0 + mov a2, a12 # 10fc: 2d0c + l8ui a4, a0, 3 /* [[g_ic+0x174]+0x3] */ # 10fe: 420003 + addi a3, a0, 2 /* [g_ic+0x174]+0x2 */ # 1101: 2b30 + s32i a3, sp, 24 /* [g_ic+0x174]+0x2 -> [(local6)] */ # 1103: 3961 + addi a4, a4, 2 /* [[g_ic+0x174]+0x3]+0x2 */ # 1105: 2b44 + call0 memcpy # 1107: 0111ffc0 + # 110b: 0000 + l32i a0, sp, 24 /* [(local6)] */ # 110d: 0861 + l8ui a0, a0, 1 /* [[(local6)]+0x1] */ # 110f: 020001 + add a12, a0, a12 # 1112: cac0 + addi a12, a12, 2 # 1114: 2bcc + s32i a12, sp, 0 /* a12 -> [(local0)] */ # 1116: c901 +.Lbr123: l32i a3, sp, 72 /* [(local18)] */ # 1118: 322112 + addmi a3, a3, 768 /* [(local18)]+0x300 */ # 111b: 32d303 + addi a3, a3, 127 /* [(local18)]+0x37f */ # 111e: 32c37f + addi a3, a3, 3 /* [(local18)]+0x382 */ # 1121: 3b33 + l16ui a2, a3, 2 /* [[(local18)]+0x384] */ # 1123: 221301 + l16ui a3, a3, 0 /* [[(local18)]+0x382] */ # 1126: 321300 + slli a2, a2, 16 # 1129: 002211 + or a2, a2, a3 # 112c: 302220 + bbci a2, 28, .Lbr124 # 112f: c77218 + l32i a5, sp, 44 /* [(local11)] */ # 1132: 58b1 + l32i a5, a5, 72 /* [[(local11)]+0x48] */ # 1134: 522512 + movi a4, 192 /* 0x000000c0 */ # 1137: 42a0c0 + bnone a4, a5, .Lbr124 # 113a: 57040d + mov a2, a12 # 113d: 2d0c + l32i a3, sp, 44 /* [(local11)] */ # 113f: 38b1 + call0 ieee80211_add_htcap_vendor # 1141: 0103ffc0 + # 1145: 0000 + mov a12, a2 # 1147: cd02 + s32i a2, sp, 0 /* a2 -> [(local0)] */ # 1149: 2901 +.Lbr124: l32i a6, a15, 0x16c /* [g_ic+0x16c] */ # 114b: 622f5b + s32i a6, sp, 32 /* [g_ic+0x16c] -> [(local8)] */ # 114e: 6981 + beqz a6, .Lbr125 # 1150: 9c46 + mov a2, a12 # 1152: 2d0c + addi a3, a6, 2 /* [g_ic+0x16c]+0x2 */ # 1154: 2b36 + l16ui a4, a6, 0 /* [[g_ic+0x16c]] */ # 1156: 421600 + call0 memcpy # 1159: 01fefec0 + # 115d: 0000 + l32i a5, sp, 32 /* [(local8)] */ # 115f: 5881 + l16ui a5, a5, 0 /* [[(local8)]] */ # 1161: 521500 + add a12, a5, a12 # 1164: cac5 + s32i a12, sp, 0 /* a12 -> [(local0)] */ # 1166: c901 +.Lbr125: s32i a13, sp, 48 /* a13 -> [(local12)] */ # 1168: d9c1 + l32i a4, a13, 4 # 116a: 481d + l16ui a0, a13, 20 # 116c: 021d0a + j .Lbr112 # 116f: 867bff +.Lbr126: movi a6, 0 /* 0x00000000 */ # 1172: 0c06 + extui a0, a7, 0, 16 # 1174: 7000f4 + beqi a0, 2, .Lbr127 # 1177: 262002 + bnei a0, 3, .Lbr128 # 117a: 663007 +.Lbr127: l32i a11, a12, 84 /* [arg0+0x54] */ # 117d: b22c15 + movi a8, 1 /* 0x00000001 */ # 1180: 0c18 + movnez a6, a8, a11 # 1182: b06893 +.Lbr128: movi a8, 1 /* 0x00000001 */ # 1185: 0c18 + bnez a6, .Lbr131 # 1187: cce6 + bgei a0, 3, .Lbr130 # 1189: e6300a + bnei a0, 1, .Lbr129 # 118c: 661005 + l8ui a13, a10, 126 /* [g_ic+0x208] */ # 118f: d20a7e + beqi a13, 2, .Lbr130 # 1192: 262d01 +.Lbr129: movi a8, 0 /* 0x00000000 */ # 1195: 0c08 +.Lbr130: beqz a6, .Lbr132 # 1197: 8c86 +.Lbr131: srai a0, a7, 16 # 1199: 700031 + bnez a0, .Lbr132 # 119c: cc30 + movi a3, 28 /* 0x0000001c */ # 119e: 1cc3 + j .Lbr133 # 11a0: 460000 +.Lbr132: movi a3, 24 /* 0x00000018 */ # 11a3: 1c83 +.Lbr133: beqz a6, .Lbr134 # 11a5: 8c96 + srai a2, a7, 16 # 11a7: 702031 + bnez a2, .Lbr134 # 11aa: cc42 + movi a4, 136 /* 0x00000088 */ # 11ac: 42a088 + j .Lbr135 # 11af: 460000 +.Lbr134: movi a4, 6 /* 0x00000006 */ # 11b2: 0c64 +.Lbr135: mov a2, sp /* (local0) */ # 11b4: 2d01 + s32i a8, sp, 16 /* a8 -> [(local4)] */ # 11b6: 8941 + s32i a6, sp, 12 /* a6 -> [(local3)] */ # 11b8: 6931 + s32i a7, sp, 8 /* arg2 -> [(local2)] */ # 11ba: 7921 + call0 ieee80211_getmgtframe # 11bc: 01e7fec0 + # 11c0: 0000 + mov a0, a2 # 11c2: 0d02 + mov a13, a2 # 11c4: dd02 + beqz a2, .Lbr093 # 11c6: 1602c4 + l32i a3, sp, 12 /* [(local3)] */ # 11c9: 3831 + l32i a4, sp, 8 /* [(local2)] */ # 11cb: 4821 + movi a6, 1 /* 0x00000001 */ # 11cd: 0c16 + movi a7, 24 /* 0x00000018 */ # 11cf: 1c87 + l32i a5, sp, 16 /* [(local4)] */ # 11d1: 5841 + s16i a7, a2, 20 # 11d3: 72520a + l32i a2, sp, 0 /* [(local0)] */ # 11d6: 2801 + movnez a5, a6, a5 # 11d8: 505693 + s16i a4, a2, 2 /* [(local2)] -> [[(local0)]+0x2] */ # 11db: 425201 + s16i a5, a2, 0 /* a5 -> [[(local0)]] */ # 11de: 525200 + srai a4, a4, 16 # 11e1: 404031 + s16i a4, a2, 4 /* a4 -> [[(local0)]+0x4] */ # 11e4: 425202 + beqz a3, .Lbr138 # 11e7: 168309 + s32i a0, sp, 84 /* a0 -> [(local21)] */ # 11ea: 026115 + bnez a4, .Lbr138 # 11ed: 562409 + l32i a3, a12, 84 /* [arg0+0x54] */ # 11f0: 322c15 + movi a4, 128 /* 0x00000080 */ # 11f3: 42a080 + movi a8, 0x00008010 # 11f6: 81c6fe + mov a13, a0 # 11f9: dd00 + s16i a8, a2, 6 /* 0x8010 -> [[(local0)]+0x6] */ # 11fb: 825203 + addi a2, a2, 8 /* [(local0)]+0x8 */ # 11fe: 8b22 + call0 memcpy # 1200: 01d7fec0 + # 1204: 0000 + mov a2, a12 /* arg0 */ # 1206: 2d0c + mov a3, a13 # 1208: 3d0d + l32i a10, a13, 4 # 120a: a81d + movi a11, 136 /* 0x00000088 */ # 120c: b2a088 + l32i a9, a10, 4 # 120f: 981a + s16i a11, a13, 22 # 1211: b25d0b + addi a9, a9, 28 # 1214: 92c91c + s32i a9, a10, 4 # 1217: 991a + call0 ieee80211_crypto_encap # 1219: 01d1fec0 + # 121d: 0000 + l16ui a3, a13, 22 # 121f: 321d0b + l32i a4, a13, 4 # 1222: 481d + s32i a2, sp, 80 /* a2 -> [(local20)] */ # 1224: 226114 + l32i a0, a4, 4 # 1227: 0814 + movi a2, .Lstr002 # 1229: 21bafe + addi a0, a0, -24 # 122c: 02c0e8 + s32i a0, a4, 4 # 122f: 0914 + s32i a0, a13, 16 # 1231: 094d + call0 printf # 1233: 01ccfec0 + # 1237: 0000 + l32i a4, sp, 80 /* [(local20)] */ # 1239: 422114 + l32i a0, a13, 32 # 123c: 088d + beqz a4, .Lbr140 # 123e: 162407 + l32i a3, a15, 20 /* [g_ic+0x14] */ # 1241: 385f + l16ui a2, a4, 0 /* [[(local20)]] */ # 1243: 221400 + l32i a6, a0, 0 # 1246: 6800 + movi a7, 1 /* 0x00000001 */ # 1248: 0c17 + extui a5, a6, 0, 6 # 124a: 605054 + srli a6, a6, 6 # 124d: 606641 + or a6, a6, a7 # 1250: 706620 + slli a6, a6, 6 # 1253: a06611 + or a5, a5, a6 # 1256: 605520 + s32i a5, a0, 0 # 1259: 5900 + bne a3, a12, .Lbr136 # 125b: c79305 + movi a7, 128 /* 0x00000080 */ # 125e: 72a080 + or a2, a2, a7 # 1261: 702220 +.Lbr136: movi a5, 240 /* 0x000000f0 */ # 1264: 52a0f0 + s8i a2, a0, 12 # 1267: 22400c + l32i a3, a4, 152 /* [[(local20)]+0x98] */ # 126a: 322426 + l8ui a2, a0, 13 # 126d: 22000d + l32i a3, a3, 0 /* [[[(local20)]+0x98]] */ # 1270: 3803 + and a2, a2, a5 # 1272: 502210 + extui a3, a3, 0, 4 # 1275: 303034 + or a2, a2, a3 # 1278: 302220 +.Lbr137: s8i a2, a0, 13 # 127b: 22400d + s32i a12, sp, 44 /* arg0 -> [(local11)] */ # 127e: c9b1 + j .Lbr113 # 1280: 463aff +.Lbr138: s32i a12, sp, 44 /* arg0 -> [(local11)] */ # 1283: c9b1 + movi a4, 6 /* 0x00000006 */ # 1285: 0c64 + s16i a4, a0, 22 # 1287: 42500b + j .Lbr113 # 128a: c637ff +.Lbr139: mov a3, a9 /* 0x00000018 */ # 128d: 3d09 + mov a2, sp /* (local0) */ # 128f: 2d01 + s32i a7, sp, 8 /* arg2 -> [(local2)] */ # 1291: 7921 + call0 ieee80211_getmgtframe # 1293: 01b5fec0 + # 1297: 0000 + mov a13, a2 # 1299: dd02 + beqz a2, .Lbr096 # 129b: 16b2b8 + s32i a12, sp, 44 /* arg0 -> [(local11)] */ # 129e: c9b1 + movi a5, 2 /* 0x00000002 */ # 12a0: 0c25 + l32i a6, sp, 8 /* [(local2)] */ # 12a2: 6821 + l32i a7, sp, 0 /* [(local0)] */ # 12a4: 7801 + movi a8, 24 /* 0x00000018 */ # 12a6: 1c88 + s16i a8, a2, 20 # 12a8: 82520a + s16i a6, a7, 0 /* [(local2)] -> [[(local0)]] */ # 12ab: 625700 + s16i a5, a2, 22 # 12ae: 52520b + j .Lbr113 # 12b1: 062eff +.Lbr140: l8ui a2, a0, 13 # 12b4: 22000d + movi a3, 240 /* 0x000000f0 */ # 12b7: 32a0f0 + and a2, a2, a3 # 12ba: 302210 + j .Lbr137 # 12bd: 86eeff + +# Function @ .irom0.text+0x12c0 + .balign 4 +.Lfunc005: l8ui a2, a2, 24 /* [arg0+0x18] */ # 12c0: 220218 + beqz a2, .Lbr141 # 12c3: 8c32 + bnei a2, 1, .Lbr142 # 12c5: 661205 + beqz a3, .Lbr142 # 12c8: 8c23 +.Lbr141: movi a2, 1 /* 0x00000001 */ # 12ca: 0c12 + ret /* 0x00000001 */ # 12cc: 0df0 +.Lbr142: movi a2, 0 /* 0x00000000 */ # 12ce: 0c02 + ret /* 0x00000000 */ # 12d0: 0df0 + + .literal_position # 12d4: 00000000 + # 12d8: 00000000 + # 12dc: 00000000 + # 12e0: 00000000 + # 12e4: 80080000 + # 12e8: 00000700 + # 12ec: 00000700 + # 12f0: 00000000 + # 12f4: 00000000 + # 12f8: 00000000 + # 12fc: 00000000 + # 1300: 00000000 + # 1304: 00000000 + # 1308: 00000000 + # 130c: 00000000 + # 1310: 00000000 + # 1314: 00000000 + +# Function @ .irom0.text+0x1318 +# Local variables/stack: +# (local0): word @ -0x30 +# (local1): word @ -0x2c +# (local2): word @ -0x28 +# (local3): word @ -0x24 +# (local4): word @ -0x20 +# (local5): word @ -0x1c +# (local6): word @ -0x18 +# (local7): word @ -0x14 +# (local8): word @ -0x10 +# (local9): word[3] @ -0xc + .balign 4 + .global ieee80211_alloc_proberesp + .type ieee80211_alloc_proberesp, @function +ieee80211_alloc_proberesp: + addi sp, sp, -48 /* (local0) */ # 1318: 12c1d0 + s32i a15, sp, 36 /* a15 -> [(local9)] */ # 131b: f991 + s32i a3, sp, 8 /* arg1 -> [(local2)] */ # 131d: 3921 + s32i a0, sp, 20 /* a0 -> [(local5)] */ # 131f: 0951 + s32i a14, sp, 32 /* a14 -> [(local8)] */ # 1321: e981 + s32i a13, sp, 28 /* a13 -> [(local7)] */ # 1323: d971 + s32i a12, sp, 24 /* a12 -> [(local6)] */ # 1325: c961 + mov a13, a2 /* arg0 */ # 1327: dd02 + movi a12, 132 /* 0x00000084 */ # 1329: c2a084 + movi a14, g_ic+0x28d # 132c: e1eaff + movi a0, g_ic # 132f: 01eaff + l8ui a6, a14, 128 /* [g_ic+0x30d] */ # 1332: 620e80 + l32i a5, a0, 0x16c /* [g_ic+0x16c] */ # 1335: 52205b + addi a6, a6, -1 /* [g_ic+0x30d]-0x1 */ # 1338: 0b66 + extui a6, a6, 0, 8 # 133a: 606074 + addx2 a6, a6, a6 # 133d: 606690 + addx4 a6, a6, a0 # 1340: 0066a0 + add a12, a6, a12 # 1343: cac6 + s32i a12, a2, 188 /* a12 -> [arg0+0xbc] */ # 1345: c2622f + bnez a5, .Lbr143 # 1348: cc35 + movi a2, 0 /* 0x00000000 */ # 134a: 0c02 + j .Lbr144 # 134c: 860000 +.Lbr143: l16ui a2, a5, 0 /* [[g_ic+0x16c]] */ # 134f: 221500 +.Lbr144: movi a3, 24 /* 0x00000018 */ # 1352: 1c83 + s32i a6, sp, 12 /* a6 -> [(local3)] */ # 1354: 6931 + addi a5, a14, -5 /* g_ic+0x288 */ # 1356: 52cefb + l8ui a4, a5, 3 /* [g_ic+0x28b] */ # 1359: 420503 + l8ui a7, a5, 2 /* [g_ic+0x28a] */ # 135c: 720502 + slli a4, a4, 8 # 135f: 804411 + or a4, a4, a7 # 1362: 704420 + slli a4, a4, 8 # 1365: 804411 + l8ui a7, a5, 1 /* [g_ic+0x289] */ # 1368: 720501 + l8ui a5, a5, 0 /* [g_ic+0x288] */ # 136b: 520500 + or a4, a4, a7 # 136e: 704420 + slli a4, a4, 8 # 1371: 804411 + or a4, a4, a5 # 1374: 504420 + add a4, a4, a2 # 1377: 2a44 + movi a5, 206 /* 0x000000ce */ # 1379: 52a0ce + mov a2, sp /* (local0) */ # 137c: 2d01 + add a4, a4, a5 # 137e: 5a44 + call0 ieee80211_getmgtframe # 1380: 01ddffc0 + # 1384: 0000 + mov a15, a2 # 1386: fd02 + bnez a2, .Lbr145 # 1388: cc32 + movi a2, 0 /* 0x00000000 */ # 138a: 0c02 + j .Lbr151 # 138c: c65f00 +.Lbr145: movi a3, 0 /* 0x00000000 */ # 138f: 0c03 + movi a5, 24 /* 0x00000018 */ # 1391: 1c85 + movi a4, 8 /* 0x00000008 */ # 1393: 0c84 + s16i a5, a2, 20 # 1395: 52520a + l32i a2, sp, 0 /* [(local0)] */ # 1398: 2801 + call0 memset # 139a: 01d7ffc0 + # 139e: 0000 + l32i a6, sp, 0 /* [(local0)] */ # 13a0: 6801 + movi a7, 100 /* 0x00000064 */ # 13a2: 72a064 + mov a2, a12 # 13a5: 2d0c + s16i a7, a6, 8 /* 0x0064 -> [[(local0)]+0x8] */ # 13a7: 725604 + addi a6, a6, 10 /* [(local0)]+0xa */ # 13aa: ab66 + s32i a6, sp, 0 /* [(local0)]+0xa -> [(local0)] */ # 13ac: 6901 + call0 ieee80211_getcapinfo # 13ae: 050000 + addi a5, a14, -5 /* g_ic+0x288 */ # 13b1: 52cefb + l8ui a4, a5, 3 /* [g_ic+0x28b] */ # 13b4: 420503 + l8ui a6, a5, 2 /* [g_ic+0x28a] */ # 13b7: 620502 + slli a4, a4, 8 # 13ba: 804411 + or a4, a4, a6 # 13bd: 604420 + l8ui a6, a5, 1 /* [g_ic+0x289] */ # 13c0: 620501 + slli a4, a4, 8 # 13c3: 804411 + l8ui a5, a5, 0 /* [g_ic+0x288] */ # 13c6: 520500 + or a4, a4, a6 # 13c9: 604420 + slli a4, a4, 8 # 13cc: 804411 + or a4, a4, a5 # 13cf: 504420 + l32i a5, sp, 0 /* [(local0)] */ # 13d2: 5801 + movi a3, g_ic+0x28c # 13d4: 31c2ff + s16i a2, a5, 0 /* a2 -> [[(local0)]] */ # 13d7: 225500 + addi a2, a5, 2 /* [(local0)]+0x2 */ # 13da: 2b25 + s32i a2, sp, 0 /* [(local0)]+0x2 -> [(local0)] */ # 13dc: 2901 + call0 .Lfunc003 # 13de: c568ff + s32i a2, sp, 0 /* a2 -> [(local0)] */ # 13e1: 2901 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 13e3: c911 + movi a3, g_ic+0x2c # 13e5: 31beff + s32i a3, sp, 16 /* g_ic+0x2c -> [(local4)] */ # 13e8: 3941 + call0 ieee80211_add_rates # 13ea: 050000 + mov a12, a2 # 13ed: cd02 + l32i a5, sp, 12 /* [(local3)] */ # 13ef: 5831 + movi a6, 0x00000880 # 13f1: 61bcff + l32i a5, a5, 132 /* [[(local3)]+0x84] */ # 13f4: 522521 + s32i a2, sp, 0 /* a2 -> [(local0)] */ # 13f7: 2901 + ball a5, a6, .Lbr146 # 13f9: 674528 + movi a10, 3 /* 0x00000003 */ # 13fc: 0c3a + s8i a10, a2, 0 # 13fe: a24200 + l32i a8, sp, 0 /* [(local0)] */ # 1401: 8801 + movi a7, 1 /* 0x00000001 */ # 1403: 0c17 + addi a9, a8, 1 /* [(local0)]+0x1 */ # 1405: 1b98 + s32i a9, sp, 0 /* [(local0)]+0x1 -> [(local0)] */ # 1407: 9901 + s8i a7, a8, 1 /* 0x01 -> [[(local0)]+0x1] */ # 1409: 724801 + l32i a6, sp, 0 /* [(local0)] */ # 140c: 6801 + l32i a2, sp, 4 /* [(local1)] */ # 140e: 2811 + addi a6, a6, 1 /* [(local0)]+0x1 */ # 1410: 1b66 + s32i a6, sp, 0 /* [(local0)]+0x1 -> [(local0)] */ # 1412: 6901 + call0 ieee80211_chan2ieee # 1414: 01baffc0 + # 1418: 0000 + l32i a0, sp, 0 /* [(local0)] */ # 141a: 0801 + s8i a2, a0, 0 /* a2 -> [[(local0)]] */ # 141c: 224000 + l32i a12, sp, 0 /* [(local0)] */ # 141f: c801 + addi a12, a12, 1 /* [(local0)]+0x1 */ # 1421: 1bcc + s32i a12, sp, 0 /* [(local0)]+0x1 -> [(local0)] */ # 1423: c901 +.Lbr146: mov a2, a12 # 1425: 2d0c + l32i a3, sp, 16 /* [(local4)] */ # 1427: 3841 + call0 ieee80211_add_xrates # 1429: 050000 + s32i a2, sp, 0 /* a2 -> [(local0)] */ # 142c: 2901 + l32i a0, a13, 180 /* [arg0+0xb4] */ # 142e: 022d2d + mov a12, a2 # 1431: cd02 + beqz a0, .Lbr147 # 1433: 9cc0 + l32i a0, a0, 24 /* [[arg0+0xb4]+0x18] */ # 1435: 0860 + l32i a3, a0, 80 /* [[[arg0+0xb4]+0x18]+0x50] */ # 1437: 322014 + beqz a3, .Lbr147 # 143a: 9c53 + l32i a4, a0, 84 /* [[[arg0+0xb4]+0x18]+0x54] */ # 143c: 422015 + call0 memcpy # 143f: 01b0ffc0 + # 1443: 0000 + l32i a12, a13, 180 /* [arg0+0xb4] */ # 1445: c22d2d + l32i a12, a12, 24 /* [[arg0+0xb4]+0x18] */ # 1448: c86c + l32i a0, sp, 0 /* [(local0)] */ # 144a: 0801 + l32i a12, a12, 84 /* [[[arg0+0xb4]+0x18]+0x54] */ # 144c: c22c15 + add a12, a12, a0 # 144f: 0acc + s32i a12, sp, 0 /* a12 -> [(local0)] */ # 1451: c901 +.Lbr147: l32i a3, a13, 188 /* [arg0+0xbc] */ # 1453: 322d2f + movi a6, 0x00070000 # 1456: 61a4ff + l32i a3, a3, 0 /* [[arg0+0xbc]] */ # 1459: 3803 + movi a0, 192 /* 0x000000c0 */ # 145b: 02a0c0 + and a2, a3, a6 # 145e: 602310 + bnone a3, a6, .Lbr148 # 1461: 670330 + l32i a4, sp, 8 /* [(local2)] */ # 1464: 4821 + beqi a4, 1, .Lbr148 # 1466: 26142b + l32i a5, a13, 72 /* [arg0+0x48] */ # 1469: 522d12 + bnone a0, a5, .Lbr148 # 146c: 570025 + mov a2, a12 # 146f: 2d0c + mov a3, a13 /* arg0 */ # 1471: 3d0d + call0 ieee80211_add_htcap # 1473: 01a4ffc0 + # 1477: 0000 + s32i a2, sp, 0 /* a2 -> [(local0)] */ # 1479: 2901 + mov a3, a13 /* arg0 */ # 147b: 3d0d + call0 ieee80211_add_htinfo # 147d: 01a2ffc0 + # 1481: 0000 + mov a12, a2 # 1483: cd02 + s32i a2, sp, 0 /* a2 -> [(local0)] */ # 1485: 2901 + l32i a2, a13, 188 /* [arg0+0xbc] */ # 1487: 222d2f + movi a3, 0x00070000 # 148a: 3198ff + l32i a2, a2, 0 /* [[arg0+0xbc]] */ # 148d: 2802 + movi a0, 192 /* 0x000000c0 */ # 148f: 02a0c0 + and a2, a2, a3 # 1492: 302210 +.Lbr148: beqz a2, .Lbr149 # 1495: 166204 + addmi a4, a14, 512 /* g_ic+0x48d */ # 1498: 42de02 + l8ui a3, a4, 130 /* [g_ic+0x50f] */ # 149b: 320482 + l8ui a5, a4, 129 /* [g_ic+0x50e] */ # 149e: 520481 + slli a3, a3, 8 # 14a1: 803311 + or a3, a3, a5 # 14a4: 503320 + slli a3, a3, 8 # 14a7: 803311 + l8ui a5, a4, 128 /* [g_ic+0x50d] */ # 14aa: 520480 + l8ui a4, a4, 127 /* [g_ic+0x50c] */ # 14ad: 42047f + or a3, a3, a5 # 14b0: 503320 + slli a3, a3, 8 # 14b3: 803311 + or a3, a3, a4 # 14b6: 403320 + bbci a3, 28, .Lbr149 # 14b9: c77322 + l32i a4, sp, 8 /* [(local2)] */ # 14bc: 4821 + beqi a4, 1, .Lbr149 # 14be: 26141d + l32i a5, a13, 72 /* [arg0+0x48] */ # 14c1: 522d12 + bnone a0, a5, .Lbr149 # 14c4: 570017 + mov a2, a12 # 14c7: 2d0c + mov a3, a13 /* arg0 */ # 14c9: 3d0d + call0 ieee80211_add_htcap_vendor # 14cb: 0190ffc0 + # 14cf: 0000 + mov a3, a13 /* arg0 */ # 14d1: 3d0d + s32i a2, sp, 0 /* a2 -> [(local0)] */ # 14d3: 2901 + call0 ieee80211_add_htinfo_vendor # 14d5: 018effc0 + # 14d9: 0000 + mov a12, a2 # 14db: cd02 + s32i a2, sp, 0 /* a2 -> [(local0)] */ # 14dd: 2901 +.Lbr149: movi a13, g_ic # 14df: d184ff + l32i a13, a13, 0x16c /* [g_ic+0x16c] */ # 14e2: d22d5b + beqz a13, .Lbr150 # 14e5: 9c2d + mov a2, a12 # 14e7: 2d0c + addi a3, a13, 2 /* [g_ic+0x16c]+0x2 */ # 14e9: 2b3d + l16ui a4, a13, 0 /* [[g_ic+0x16c]] */ # 14eb: 421d00 + call0 memcpy # 14ee: 0189ffc0 + # 14f2: 0000 + l16ui a14, a13, 0 /* [[g_ic+0x16c]] */ # 14f4: e21d00 + add a12, a14, a12 # 14f7: cace + s32i a12, sp, 0 /* a12 -> [(local0)] */ # 14f9: c901 +.Lbr150: mov a2, a15 # 14fb: 2d0f + l32i a0, a15, 4 # 14fd: 081f + movi a3, 24 /* 0x00000018 */ # 14ff: 1c83 + l32i a0, a0, 4 # 1501: 0810 + s16i a3, a15, 20 # 1503: 325f0a + sub a0, a12, a0 # 1506: 000cc0 + addi a0, a0, -24 # 1509: 02c0e8 + s16i a0, a15, 22 # 150c: 025f0b +.Lbr151: l32i a12, sp, 24 /* [(local6)] */ # 150f: c861 + l32i a13, sp, 28 /* [(local7)] */ # 1511: d871 + l32i a14, sp, 32 /* [(local8)] */ # 1513: e881 + l32i a15, sp, 36 /* [(local9)] */ # 1515: f891 + l32i a0, sp, 20 /* [(local5)] */ # 1517: 0851 + addi sp, sp, 48 /* (top of frame) */ # 1519: 12c130 + ret # 151c: 0df0 + + .literal_position # 1520: 00000000 + # 1524: ff0f00ff + # 1528: 000af23f + # 152c: 00000000 + # 1530: 00000000 + # 1534: 00000000 + +# Function @ .irom0.text+0x1538 +# Local variables/stack: +# (local0): word[4] @ -0x30 +# (local1): word @ -0x20 +# (local2): word @ -0x1c +# (local3): word @ -0x18 +# (local4): word @ -0x14 +# (local5): word[4] @ -0x10 + .balign 4 + .global ieee80211_send_proberesp + .type ieee80211_send_proberesp, @function +ieee80211_send_proberesp: + mov a6, a3 /* arg1 */ # 1538: 6d03 + addi sp, sp, -48 /* (local0) */ # 153a: 12c1d0 + s32i a12, sp, 28 /* a12 -> [(local4)] */ # 153d: c971 + mov a3, a4 /* arg2 */ # 153f: 3d04 + s32i a13, sp, 32 /* a13 -> [(local5)] */ # 1541: d981 + s32i a0, sp, 24 /* a0 -> [(local3)] */ # 1543: 0961 + mov a13, a2 /* arg0 */ # 1545: dd02 + s32i a6, sp, 16 /* arg1 -> [(local1)] */ # 1547: 6941 + l32i a0, a2, 0 /* [arg0] */ # 1549: 0802 + s32i a0, sp, 20 /* [arg0] -> [(local2)] */ # 154b: 0951 + call0 ieee80211_alloc_proberesp # 154d: 050000 + mov a12, a2 # 1550: cd02 + bnez a2, .Lbr154 # 1552: ec22 + movi a2, 1 /* 0x00000001 */ # 1554: 0c12 + j .Lbr153 # 1556: c60400 +.Lbr152: movi a2, 0 /* 0x00000000 */ # 1559: 0c02 + addi a3, a12, 28 # 155b: 32cc1c + movi a4, g_ic # 155e: 41f0ff + movi a6, 0 /* 0x00000000 */ # 1561: 0c06 + l32i a5, a4, 0x1c4 /* [g_ic+0x1c4] */ # 1563: 522471 + s32i a6, a12, 28 # 1566: 697c + s32i a12, a5, 0 /* a12 -> [[g_ic+0x1c4]] */ # 1568: c905 + s32i a3, a4, 0x1c4 /* a3 -> [g_ic+0x1c4] */ # 156a: 326471 +.Lbr153: l32i a12, sp, 28 /* [(local4)] */ # 156d: c871 + l32i a13, sp, 32 /* [(local5)] */ # 156f: d881 + l32i a0, sp, 24 /* [(local3)] */ # 1571: 0861 + addi sp, sp, 48 /* (top of frame) */ # 1573: 12c130 + ret # 1576: 0df0 +.Lbr154: movi a7, 128 /* 0x00000080 */ # 1578: 72a080 + l16ui a0, a2, 22 # 157b: 02120b + l16ui a11, a2, 20 # 157e: b2120a + l32i a10, a2, 4 # 1581: a812 + add a11, a11, a0 # 1583: 0abb + memw # 1585: c02000 + l8ui a6, a10, 3 # 1588: 620a03 + extui a6, a6, 0, 7 # 158b: 606064 + or a6, a6, a7 # 158e: 706620 + memw # 1591: c02000 + s8i a6, a10, 3 # 1594: 624a03 + movi a4, 64 /* 0x00000040 */ # 1597: 4c04 + movi a5, 191 /* 0x000000bf */ # 1599: 52a0bf + memw # 159c: c02000 + l8ui a3, a10, 3 # 159f: 320a03 + and a3, a3, a5 # 15a2: 503310 + or a3, a3, a4 # 15a5: 403320 + memw # 15a8: c02000 + s8i a3, a10, 3 # 15ab: 324a03 + movi a2, 223 /* 0x000000df */ # 15ae: 22a0df + memw # 15b1: c02000 + l8ui a0, a10, 3 # 15b4: 020a03 + and a0, a0, a2 # 15b7: 200010 + memw # 15ba: c02000 + s8i a0, a10, 3 # 15bd: 024a03 + extui a11, a11, 0, 12 # 15c0: b0b0b4 + movi a0, 0xff000fff # 15c3: 01d8ff + slli a11, a11, 12 # 15c6: 40bb11 + memw # 15c9: c02000 + l16ui a9, a10, 2 # 15cc: 921a01 + slli a9, a9, 16 # 15cf: 009911 + memw # 15d2: c02000 + l16ui a2, a10, 0 # 15d5: 221a00 + or a9, a9, a2 # 15d8: 209920 + and a9, a9, a0 # 15db: 009910 + or a9, a9, a11 # 15de: b09920 + memw # 15e1: c02000 + s16i a9, a10, 0 # 15e4: 925a00 + extui a9, a9, 16, 16 # 15e7: 9090f5 + memw # 15ea: c02000 + l32i a7, sp, 16 /* [(local1)] */ # 15ed: 7841 + mov a2, a13 /* arg0 */ # 15ef: 2d0d + mov a3, a12 # 15f1: 3d0c + movi a4, 80 /* 0x00000050 */ # 15f3: 5c04 + movi a5, 16 /* 0x00000010 */ # 15f5: 1c05 + l32i a8, sp, 20 /* [(local2)] */ # 15f7: 8851 + s16i a9, a10, 2 # 15f9: 925a01 + addi a8, a8, 41 /* [(local2)]+0x29 */ # 15fc: 82c829 + mov a6, a8 /* [(local2)]+0x29 */ # 15ff: 6d08 + s32i a8, sp, 0 /* [(local2)]+0x29 -> [(local0)] */ # 1601: 8901 + call0 ieee80211_send_setup # 1603: 050000 + l32i a0, a13, 136 /* [arg0+0x88] */ # 1606: 022d22 + l32i a4, a12, 32 # 1609: 488c + movi a7, 143 /* 0x0000008f */ # 160b: 72a08f + l32i a5, a4, 0 # 160e: 5804 + l8ui a6, a4, 6 # 1610: 620406 + extui a3, a5, 0, 6 # 1613: 503054 + and a6, a6, a7 # 1616: 706610 + srli a5, a5, 6 # 1619: 505641 + s8i a6, a4, 6 # 161c: 624406 + l32i a10, a12, 32 # 161f: a88c + movi a6, 16 /* 0x00000010 */ # 1621: 1c06 + or a5, a5, a6 # 1623: 605520 + slli a5, a5, 6 # 1626: a05511 + or a3, a3, a5 # 1629: 503320 + s32i a3, a4, 0 # 162c: 3904 + l8ui a9, a10, 4 # 162e: 920a04 + movi a11, 240 /* 0x000000f0 */ # 1631: b2a0f0 + and a9, a9, a11 # 1634: b09910 + movi a11, 7 /* 0x00000007 */ # 1637: 0c7b + or a9, a9, a11 # 1639: b09920 + s8i a9, a10, 4 # 163c: 924a04 + movi a8, 0x3ff20a00 # 163f: 81baff + movi a6, 2 /* 0x00000002 */ # 1642: 0c26 + l32i a9, a12, 32 # 1644: 988c + memw # 1646: c02000 + l32i a8, a8, 0x200 /* [0x3ff20c00] */ # 1649: 822880 + l8ui a10, a9, 0 # 164c: a20900 + movi a11, 254 /* 0x000000fe */ # 164f: b2a0fe + and a10, a10, a11 # 1652: b0aa10 + s8i a10, a9, 0 # 1655: a24900 + l32i a5, a12, 32 # 1658: 588c + s32i a8, a9, 16 # 165a: 8949 + l8ui a4, a5, 0 # 165c: 420500 + movi a7, 253 /* 0x000000fd */ # 165f: 72a0fd + and a4, a4, a7 # 1662: 704410 + or a4, a4, a6 # 1665: 604420 + s8i a4, a5, 0 # 1668: 424500 + l32i a3, a12, 32 # 166b: 388c + l32i a3, a3, 0 # 166d: 3803 + movi a8, 0 /* 0x00000000 */ # 166f: 0c08 + bbsi a3, 7, .Lbr155 # 1671: 77e304 + l16ui a0, a0, 26 /* [[arg0+0x88]+0x1a] */ # 1674: 02100d + bnez a0, .Lbr156 # 1677: cc30 +.Lbr155: s32i a8, a12, 24 # 1679: 896c + j .Lbr157 # 167b: 860200 +.Lbr156: extui a2, a0, 0, 8 # 167e: 002074 + call0 rc_get_trc_by_index # 1681: 01aaffc0 + # 1685: 0000 + s32i a2, a12, 24 # 1687: 296c +.Lbr157: call0 chm_check_same_channel # 1689: 01a9ffc0 + # 168d: 0000 + beqz a2, .Lbr152 # 168f: 1662ec + mov a2, a12 # 1692: 2d0c + call0 ppTxPkt # 1694: 01a8ffc0 + # 1698: 0000 + j .Lbr153 # 169a: c6b3ff + + .literal_position # 16a0: 00000000 + # 16a4: 00000000 + # 16a8: 00000000 + # 16ac: 00000000 + # 16b0: 00000000 + # 16b4: 00000000 + # 16b8: 80080000 + # 16bc: 00000000 + # 16c0: 00000700 + # 16c4: 00000000 + # 16c8: 00000000 + # 16cc: 00000000 + # 16d0: 00000000 + # 16d4: 00000000 + # 16d8: 00000000 + # 16dc: 00000000 + # 16e0: 00000000 + # 16e4: 00000000 + # 16e8: 00000000 + +# Function @ .irom0.text+0x16ec +# Local variables/stack: +# (local0): word @ -0x30 +# (local1): word @ -0x2c +# (local2): word @ -0x28 +# (local3): word @ -0x24 +# (local4): word @ -0x20 +# (local5): word @ -0x1c +# (local6): word @ -0x18 +# (local7): word @ -0x14 +# (local8): word @ -0x10 +# (local9): word @ -0xc +# (local10): word[2] @ -0x8 + .balign 4 +.Lfunc006: addi sp, sp, -48 /* (local0) */ # 16ec: 12c1d0 + s32i a15, sp, 32 /* a15 -> [(local8)] */ # 16ef: f981 + s32i a12, sp, 20 /* a12 -> [(local5)] */ # 16f1: c951 + s32i a13, sp, 24 /* a13 -> [(local6)] */ # 16f3: d961 + s32i a14, sp, 28 /* a14 -> [(local7)] */ # 16f5: e971 + s32i a0, sp, 16 /* a0 -> [(local4)] */ # 16f7: 0941 + s32i a2, sp, 8 /* arg0 -> [(local2)] */ # 16f9: 2921 + movi a0, 132 /* 0x00000084 */ # 16fb: 02a084 + mov a2, a4 /* arg2 */ # 16fe: 2d04 + mov a14, a4 /* arg2 */ # 1700: ed04 + mov a13, a5 /* arg3 */ # 1702: dd05 + mov a12, a3 /* arg1 */ # 1704: cd03 + movi a15, g_ic+0x26e # 1706: f1e6ff + movi a3, 0 /* 0x00000000 */ # 1709: 0c03 + s32i a15, sp, 36 /* g_ic+0x26e -> [(local9)] */ # 170b: f991 + movi a5, g_ic # 170d: 51e5ff + l8ui a15, a15, 159 /* [g_ic+0x30d] */ # 1710: f20f9f + movi a4, 48 /* 0x00000030 */ # 1713: 3c04 + addi a15, a15, -1 /* [g_ic+0x30d]-0x1 */ # 1715: 0bff + extui a15, a15, 0, 8 # 1717: f0f074 + addx2 a15, a15, a15 # 171a: f0ff90 + addx4 a15, a15, a5 # 171d: 50ffa0 + add a0, a15, a0 # 1720: 0a0f + s32i a0, sp, 40 /* a0 -> [(local10)] */ # 1722: 09a1 + s32i a0, a13, 188 /* a0 -> [arg3+0xbc] */ # 1724: 026d2f + call0 memset # 1727: 01e7ffc0 + # 172b: 0000 + mov a2, a12 /* arg1 */ # 172d: 2d0c + movi a3, 0 /* 0x00000000 */ # 172f: 0c03 + movi a4, 8 /* 0x00000008 */ # 1731: 0c84 + call0 memset # 1733: 01e5ffc0 + # 1737: 0000 + l32i a2, sp, 40 /* [(local10)] */ # 1739: 28a1 + movi a0, g_ic+0x446 # 173b: 01dbff + s32i a0, sp, 4 /* g_ic+0x446 -> [(local1)] */ # 173e: 0911 + l16ui a0, a0, 254 /* [g_ic+0x544] */ # 1740: 02107f + s16i a0, a12, 8 /* [g_ic+0x544] -> [arg1+0x8] */ # 1743: 025c04 + call0 ieee80211_getcapinfo # 1746: 050000 + movi a5, g_ic # 1749: 51d8ff + movi a7, 0 /* 0x00000000 */ # 174c: 0c07 + addi a4, a12, 10 /* arg1+0xa */ # 174e: ab4c + s32i a4, a14, 4 /* arg1+0xa -> [arg2+0x4] */ # 1750: 491e + s8i a7, a12, 12 /* 0x00 -> [arg1+0xc] */ # 1752: 724c0c + l32i a3, a5, 28 /* [g_ic+0x1c] */ # 1755: 3875 + s16i a2, a12, 10 /* a2 -> [arg1+0xa] */ # 1757: 225c05 + bbsi a3, 27, .Lbr158 # 175a: b7f32f + l32i a6, sp, 36 /* [(local9)] */ # 175d: 6891 + addi a2, a12, 14 /* arg1+0xe */ # 175f: eb2c + l16ui a8, a6, 28 /* [[(local9)]+0x1c] */ # 1761: 82160e + l16ui a9, a6, 26 /* [[(local9)]+0x1a] */ # 1764: 92160d + slli a8, a8, 16 # 1767: 008811 + or a8, a8, a9 # 176a: 908820 + s8i a8, a12, 13 /* a8 -> [arg1+0xd] */ # 176d: 824c0d + l16ui a4, a6, 28 /* [[(local9)]+0x1c] */ # 1770: 42160e + l16ui a8, a6, 26 /* [[(local9)]+0x1a] */ # 1773: 82160d + slli a4, a4, 16 # 1776: 004411 + l8ui a6, a6, 161 /* [[(local9)]+0xa1] */ # 1779: 6206a1 + or a4, a4, a8 # 177c: 804420 + bnei a6, 1, .Lbr159 # 177f: 661612 + movi a3, 0 /* 0x00000000 */ # 1782: 0c03 + call0 memset # 1784: 01d2ffc0 + # 1788: 0000 + j .Lbr160 # 178a: 060400 +.Lbr158: mov a0, a12 /* arg1 */ # 178d: 0d0c + s8i a7, a12, 13 /* 0x00 -> [arg1+0xd] */ # 178f: 724c0d + j .Lbr161 # 1792: 060600 +.Lbr159: movi a3, g_ic+0x28c # 1795: 31c6ff + call0 memcpy # 1798: 01ceffc0 + # 179c: 0000 +.Lbr160: l32i a2, sp, 36 /* [(local9)] */ # 179e: 2891 + l16ui a0, a2, 28 /* [[(local9)]+0x1c] */ # 17a0: 02120e + l16ui a2, a2, 26 /* [[(local9)]+0x1a] */ # 17a3: 22120d + slli a0, a0, 16 # 17a6: 000011 + or a0, a0, a2 # 17a9: 200020 + add a0, a0, a12 # 17ac: ca00 +.Lbr161: addi a2, a0, 14 # 17ae: eb20 + movi a3, g_ic+0x2c # 17b0: 31c1ff + s32i a3, sp, 12 /* g_ic+0x2c -> [(local3)] */ # 17b3: 3931 + call0 ieee80211_add_rates # 17b5: 050000 + mov a12, a2 # 17b8: cd02 + movi a4, 0x00000880 # 17ba: 41bfff + l32i a3, a15, 132 # 17bd: 322f21 + s32i a2, sp, 0 /* a2 -> [(local0)] */ # 17c0: 2901 + ball a3, a4, .Lbr162 # 17c2: 474318 + movi a6, 3 /* 0x00000003 */ # 17c5: 0c36 + movi a8, 1 /* 0x00000001 */ # 17c7: 0c18 + s8i a8, a2, 1 # 17c9: 824201 + s8i a6, a2, 0 # 17cc: 624200 + l32i a2, sp, 40 /* [(local10)] */ # 17cf: 28a1 + call0 ieee80211_chan2ieee # 17d1: 01c0ffc0 + # 17d5: 0000 + l32i a9, sp, 0 /* [(local0)] */ # 17d7: 9801 + addi a12, a9, 3 /* [(local0)]+0x3 */ # 17d9: 3bc9 + s8i a2, a9, 2 /* a2 -> [[(local0)]+0x2] */ # 17db: 224902 +.Lbr162: movi a5, 192 /* 0x000000c0 */ # 17de: 52a0c0 + l32i a10, a13, 176 /* [arg3+0xb0] */ # 17e1: a22d2c + s32i a12, a14, 12 /* a12 -> [arg2+0xc] */ # 17e4: c93e + bnei a10, 1, .Lbr163 # 17e6: 661a20 + movi a11, 1 /* 0x00000001 */ # 17e9: 0c1b + movi a4, 0 /* 0x00000000 */ # 17eb: 0c04 + movi a3, 2 /* 0x00000002 */ # 17ed: 0c23 + movi a2, 4 /* 0x00000004 */ # 17ef: 0c42 + movi a0, 5 /* 0x00000005 */ # 17f1: 0c50 + s8i a0, a12, 0 # 17f3: 024c00 + s8i a2, a12, 1 # 17f6: 224c01 + s8i a3, a12, 3 # 17f9: 324c03 + s8i a4, a12, 2 # 17fc: 424c02 + s8i a4, a12, 4 # 17ff: 424c04 + s8i a4, a12, 5 # 1802: 424c05 + s16i a11, a14, 24 /* 0x0001 -> [arg2+0x18] */ # 1805: b25e0c + addi a12, a12, 6 # 1808: 6bcc +.Lbr163: l32i a0, a15, 132 # 180a: 022f21 + s32i a12, a14, 20 /* a12 -> [arg2+0x14] */ # 180d: c95e + ball a0, a5, .Lbr164 # 180f: 574005 + movi a6, 1152 /* 0x00000480 */ # 1812: 62a480 + bnall a0, a6, .Lbr165 # 1815: 67c00b +.Lbr164: mov a2, a12 # 1818: 2d0c + s32i a12, a14, 28 /* a12 -> [arg2+0x1c] */ # 181a: c97e + movi a3, g_ic # 181c: 31a8ff + call0 .Lfunc004 # 181f: c527ff + mov a12, a2 # 1822: cd02 +.Lbr165: mov a2, a12 # 1824: 2d0c + l32i a3, sp, 12 /* [(local3)] */ # 1826: 3831 + call0 ieee80211_add_xrates # 1828: 050000 + mov a15, a2 # 182b: fd02 + l32i a0, a13, 180 /* [arg3+0xb4] */ # 182d: 022d2d + mov a12, a2 # 1830: cd02 + beqz a0, .Lbr166 # 1832: 9c80 + l32i a0, a0, 24 /* [[arg3+0xb4]+0x18] */ # 1834: 0860 + l32i a3, a0, 80 /* [[[arg3+0xb4]+0x18]+0x50] */ # 1836: 322014 + beqz a3, .Lbr166 # 1839: 9c13 + l32i a4, a0, 84 /* [[[arg3+0xb4]+0x18]+0x54] */ # 183b: 422015 + call0 memcpy # 183e: 01a6ffc0 + # 1842: 0000 + l32i a12, a13, 180 /* [arg3+0xb4] */ # 1844: c22d2d + l32i a12, a12, 24 /* [[arg3+0xb4]+0x18] */ # 1847: c86c + l32i a12, a12, 84 /* [[[arg3+0xb4]+0x18]+0x54] */ # 1849: c22c15 + add a12, a12, a15 # 184c: facc +.Lbr166: l32i a2, a13, 188 /* [arg3+0xbc] */ # 184e: 222d2f + movi a15, 0x00070000 # 1851: f19bff + l32i a2, a2, 0 /* [[arg3+0xbc]] */ # 1854: 2802 + and a0, a2, a15 # 1856: f00210 + bnone a2, a15, .Lbr167 # 1859: f7021d + mov a2, a12 # 185c: 2d0c + mov a3, a13 /* arg3 */ # 185e: 3d0d + call0 ieee80211_add_htcap # 1860: 019fffc0 + # 1864: 0000 + s32i a2, a14, 32 /* a2 -> [arg2+0x20] */ # 1866: 298e + mov a3, a13 /* arg3 */ # 1868: 3d0d + call0 ieee80211_add_htinfo # 186a: 019dffc0 + # 186e: 0000 + l32i a0, a13, 188 /* [arg3+0xbc] */ # 1870: 022d2f + l32i a0, a0, 0 /* [[arg3+0xbc]] */ # 1873: 0800 + mov a12, a2 # 1875: cd02 + and a0, a0, a15 # 1877: f00010 +.Lbr167: beqz a0, .Lbr168 # 187a: ac90 + l32i a3, sp, 4 /* [(local1)] */ # 187c: 3811 + addi a3, a3, 127 /* [(local1)]+0x7f */ # 187e: 32c37f + addi a3, a3, 71 /* [(local1)]+0xc6 */ # 1881: 32c347 + l16ui a2, a3, 2 /* [[(local1)]+0xc8] */ # 1884: 221301 + l16ui a3, a3, 0 /* [[(local1)]+0xc6] */ # 1887: 321300 + slli a2, a2, 16 # 188a: 002211 + or a2, a2, a3 # 188d: 302220 + bbci a2, 28, .Lbr168 # 1890: c77213 + mov a2, a12 # 1893: 2d0c + mov a3, a13 /* arg3 */ # 1895: 3d0d + call0 ieee80211_add_htcap_vendor # 1897: 0193ffc0 + # 189b: 0000 + mov a3, a13 /* arg3 */ # 189d: 3d0d + call0 ieee80211_add_htinfo_vendor # 189f: 0192ffc0 + # 18a3: 0000 + mov a12, a2 # 18a5: cd02 +.Lbr168: l32i a0, sp, 16 /* [(local4)] */ # 18a7: 0841 + l32i a13, sp, 24 /* [(local6)] */ # 18a9: d861 + l32i a15, sp, 32 /* [(local8)] */ # 18ab: f881 + l32i a5, sp, 8 /* [(local2)] */ # 18ad: 5821 + l32i a7, a14, 20 /* [arg2+0x14] */ # 18af: 785e + l32i a6, a5, 4 /* [[(local2)]+0x4] */ # 18b1: 6815 + sub a7, a12, a7 # 18b3: 707cc0 + l32i a6, a6, 4 /* [[[(local2)]+0x4]+0x4] */ # 18b6: 6816 + s16i a7, a14, 26 /* a7 -> [arg2+0x1a] */ # 18b8: 725e0d + l16ui a4, a5, 20 /* [[(local2)]+0x14] */ # 18bb: 42150a + l32i a14, sp, 28 /* [(local7)] */ # 18be: e871 + add a4, a4, a6 # 18c0: 6a44 + sub a4, a12, a4 # 18c2: 404cc0 + s16i a4, a5, 22 /* a4 -> [[(local2)]+0x16] */ # 18c5: 42550b + l32i a12, sp, 20 /* [(local5)] */ # 18c8: c851 + addi sp, sp, 48 /* (top of frame) */ # 18ca: 12c130 + ret # 18cd: 0df0 + + .literal_position # 18d0: 00000000 + # 18d4: ff0f00ff + # 18d8: 28000000 + # 18dc: 000af23f + # 18e0: 00000000 + +# Function @ .irom0.text+0x18e4 +# Local variables/stack: +# (local0): word[4] @ -0x30 +# (local1): word @ -0x20 +# (local2): word @ -0x1c +# (local3): word @ -0x18 +# (local4): word @ -0x14 +# (local5): word @ -0x10 +# (local6): word[3] @ -0xc + .balign 4 + .global ieee80211_beacon_alloc + .type ieee80211_beacon_alloc, @function +ieee80211_beacon_alloc: + movi a4, g_ic # 18e4: 41fbff + mov a10, a3 /* arg1 */ # 18e7: ad03 + addi sp, sp, -48 /* (local0) */ # 18e9: 12c1d0 + s32i a13, sp, 36 /* a13 -> [(local6)] */ # 18ec: d991 + movi a3, 24 /* 0x00000018 */ # 18ee: 1c83 + s32i a0, sp, 28 /* a0 -> [(local4)] */ # 18f0: 0971 + l32i a5, a2, 0 /* [arg0] */ # 18f2: 5802 + s32i a12, sp, 32 /* a12 -> [(local5)] */ # 18f4: c981 + s32i a10, sp, 20 /* arg1 -> [(local2)] */ # 18f6: a951 + l32i a4, a4, 0x288 /* [g_ic+0x288] */ # 18f8: 4224a2 + mov a12, a2 /* arg0 */ # 18fb: cd02 + s32i a5, sp, 24 /* [arg0] -> [(local3)] */ # 18fd: 5961 + addi a2, sp, 16 /* (local1) */ # 18ff: 22c110 + movi a5, 141 /* 0x0000008d */ # 1902: 52a08d + add a4, a4, a5 /* [g_ic+0x288]+0x8d */ # 1905: 5a44 + call0 ieee80211_getmgtframe # 1907: 01f6ffc0 + # 190b: 0000 + mov a13, a2 # 190d: dd02 + bnez a2, .Lbr169 # 190f: cc32 + movi a13, 0 /* 0x00000000 */ # 1911: 0c0d + j .Lbr170 # 1913: c64200 +.Lbr169: l32i a4, sp, 20 /* [(local2)] */ # 1916: 4851 + mov a5, a12 /* arg0 */ # 1918: 5d0c + l32i a3, sp, 16 /* [(local1)] */ # 191a: 3841 + movi a6, 24 /* 0x00000018 */ # 191c: 1c86 + s16i a6, a2, 20 # 191e: 62520a + call0 .Lfunc006 # 1921: 85dcff + movi a4, 128 /* 0x00000080 */ # 1924: 42a080 + l16ui a0, a13, 22 # 1927: 021d0b + l16ui a11, a13, 20 # 192a: b21d0a + l32i a10, a13, 4 # 192d: a81d + add a11, a11, a0 # 192f: 0abb + memw # 1931: c02000 + l8ui a7, a10, 3 # 1934: 720a03 + extui a7, a7, 0, 7 # 1937: 707064 + or a7, a7, a4 # 193a: 407720 + memw # 193d: c02000 + s8i a7, a10, 3 # 1940: 724a03 + movi a5, 64 /* 0x00000040 */ # 1943: 4c05 + movi a6, 191 /* 0x000000bf */ # 1945: 62a0bf + memw # 1948: c02000 + l8ui a3, a10, 3 # 194b: 320a03 + and a3, a3, a6 # 194e: 603310 + or a3, a3, a5 # 1951: 503320 + memw # 1954: c02000 + s8i a3, a10, 3 # 1957: 324a03 + movi a2, 223 /* 0x000000df */ # 195a: 22a0df + memw # 195d: c02000 + l8ui a0, a10, 3 # 1960: 020a03 + and a0, a0, a2 # 1963: 200010 + memw # 1966: c02000 + s8i a0, a10, 3 # 1969: 024a03 + extui a11, a11, 0, 12 # 196c: b0b0b4 + movi a0, 0xff000fff # 196f: 01d9ff + slli a11, a11, 12 # 1972: 40bb11 + memw # 1975: c02000 + l16ui a9, a10, 2 # 1978: 921a01 + slli a9, a9, 16 # 197b: 009911 + memw # 197e: c02000 + l16ui a2, a10, 0 # 1981: 221a00 + or a9, a9, a2 # 1984: 209920 + and a9, a9, a0 # 1987: 009910 + or a9, a9, a11 # 198a: b09920 + memw # 198d: c02000 + s16i a9, a10, 0 # 1990: 925a00 + extui a9, a9, 16, 16 # 1993: 9090f5 + memw # 1996: c02000 + mov a2, a12 /* arg0 */ # 1999: 2d0c + mov a3, a13 # 199b: 3d0d + movi a5, 16 /* 0x00000010 */ # 199d: 1c05 + movi a7, .Label001 # 199f: 71ceff + s16i a9, a10, 2 # 19a2: 925a01 + l32i a8, sp, 24 /* [(local3)] */ # 19a5: 8861 + l32i a9, a12, 144 /* [arg0+0x90] */ # 19a7: 922c24 + s32i a9, a12, 136 /* [arg0+0x90] -> [arg0+0x88] */ # 19aa: 926c22 + addi a8, a8, 41 /* [(local3)]+0x29 */ # 19ad: 82c829 + mov a6, a8 /* [(local3)]+0x29 */ # 19b0: 6d08 + s32i a8, sp, 0 /* [(local3)]+0x29 -> [(local0)] */ # 19b2: 8901 + call0 ieee80211_send_setup # 19b4: 050000 + l32i a6, a13, 32 # 19b7: 688d + l8ui a5, a6, 6 # 19b9: 520606 + movi a7, 143 /* 0x0000008f */ # 19bc: 72a08f + and a5, a5, a7 # 19bf: 705510 + s8i a5, a6, 6 # 19c2: 524606 + l32i a2, a13, 32 # 19c5: 288d + movi a3, 7 /* 0x00000007 */ # 19c7: 0c73 + l8ui a0, a2, 4 # 19c9: 020204 + movi a4, 240 /* 0x000000f0 */ # 19cc: 42a0f0 + and a0, a0, a4 # 19cf: 400010 + or a0, a0, a3 # 19d2: 300020 + s8i a0, a2, 4 # 19d5: 024204 + movi a12, 0x3ff20a00 # 19d8: c1c1ff + movi a6, 16 /* 0x00000010 */ # 19db: 1c06 + l32i a0, a13, 32 # 19dd: 088d + memw # 19df: c02000 + movi a7, 0 /* 0x00000000 */ # 19e2: 0c07 + movi a10, 2 /* 0x00000002 */ # 19e4: 0c2a + l32i a12, a12, 0x200 /* [0x3ff20c00] */ # 19e6: c22c80 + l8ui a2, a0, 0 # 19e9: 220000 + movi a3, 254 /* 0x000000fe */ # 19ec: 32a0fe + and a2, a2, a3 # 19ef: 302210 + s8i a2, a0, 0 # 19f2: 224000 + l32i a9, a13, 32 # 19f5: 988d + s32i a12, a0, 16 # 19f7: c940 + l8ui a8, a9, 0 # 19f9: 820900 + movi a11, 253 /* 0x000000fd */ # 19fc: b2a0fd + and a8, a8, a11 # 19ff: b08810 + or a8, a8, a10 # 1a02: a08820 + s8i a8, a9, 0 # 1a05: 824900 + l32i a4, a13, 32 # 1a08: 488d + s32i a7, a13, 24 # 1a0a: 796d + l32i a5, a4, 0 # 1a0c: 5804 + s8i a6, a4, 14 # 1a0e: 62440e + extui a3, a5, 0, 6 # 1a11: 503054 + srli a5, a5, 6 # 1a14: 505641 + or a5, a5, a6 # 1a17: 605520 + slli a5, a5, 6 # 1a1a: a05511 + or a3, a3, a5 # 1a1d: 503320 + s32i a3, a4, 0 # 1a20: 3904 +.Lbr170: l32i a0, sp, 28 /* [(local4)] */ # 1a22: 0871 + mov a2, a13 # 1a24: 2d0d + l32i a12, sp, 32 /* [(local5)] */ # 1a26: c881 + l32i a13, sp, 36 /* [(local6)] */ # 1a28: d891 + addi sp, sp, 48 /* (top of frame) */ # 1a2a: 12c130 + ret # 1a2d: 0df0 + + .section .rodata, "a", @progbits + +.Ldata001: .word 0x01020303 # 0: 03030201 + + .section .rodata.str1.4, "MSa", @progbits, 1 + +.Lstr001: .asciz "no buf for probe, ie len %d\n" # 0: 6e6f2062 + # 4: 75662066 + # 8: 6f722070 + # c: 726f6265 + # 10: 2c206965 + # 14: 206c656e + # 18: 2025640a + # 1c: 00 + .balign 4 +.Lstr002: .asciz "eb %d\n" # 20: 65622025 + # 24: 640a00 + .balign 4 +.Label001: .byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00 diff --git a/binary_sdk/libnet80211_stage1/ieee80211_phy.S b/binary_sdk/libnet80211_stage1/ieee80211_phy.S new file mode 100644 index 0000000..688bc82 --- /dev/null +++ b/binary_sdk/libnet80211_stage1/ieee80211_phy.S @@ -0,0 +1,248 @@ + + .section .data, "aw", @progbits + +.Ldata001: .byte 0x0c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + .word 0x00000000 # 14: 00000000 + .byte 0xe8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x82, 0x00 + .byte 0x3a, 0x01, 0x3a, 0x01, 0x00, 0x00, 0x00, 0x00 + .byte 0xd0, 0x07, 0x00, 0x00, 0x04, 0x01, 0x84, 0x01 + .byte 0x02, 0x01, 0xa2, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x7c, 0x15, 0x00, 0x00, 0x04, 0x02, 0x8b, 0x02 + .byte 0xdf, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0xf8, 0x2a, 0x00, 0x00, 0x04, 0x03, 0x96, 0x03 + .byte 0xd5, 0x00, 0x75, 0x00, 0x01, 0x00, 0x00, 0x00 + .byte 0x70, 0x17, 0x00, 0x00, 0x00, 0x0b, 0x0c, 0x04 + .byte 0x3c, 0x00, 0x3c, 0x00, 0x01, 0x00, 0x00, 0x00 + .byte 0x28, 0x23, 0x00, 0x00, 0x00, 0x0f, 0x12, 0x04 + .byte 0x3c, 0x00, 0x3c, 0x00, 0x01, 0x00, 0x00, 0x00 + .byte 0xe0, 0x2e, 0x00, 0x00, 0x00, 0x0a, 0x18, 0x06 + .byte 0x30, 0x00, 0x30, 0x00, 0x01, 0x00, 0x00, 0x00 + .byte 0x50, 0x46, 0x00, 0x00, 0x00, 0x0e, 0x24, 0x06 + .byte 0x30, 0x00, 0x30, 0x00, 0x01, 0x00, 0x00, 0x00 + .byte 0xc0, 0x5d, 0x00, 0x00, 0x00, 0x09, 0x30, 0x08 + .byte 0x2c, 0x00, 0x2c, 0x00, 0x01, 0x00, 0x00, 0x00 + .byte 0xa0, 0x8c, 0x00, 0x00, 0x00, 0x0d, 0x48, 0x08 + .byte 0x2c, 0x00, 0x2c, 0x00, 0x01, 0x00, 0x00, 0x00 + .byte 0x80, 0xbb, 0x00, 0x00, 0x00, 0x08, 0x60, 0x08 + .byte 0x2c, 0x00, 0x2c, 0x00, 0x01, 0x00, 0x00, 0x00 + .byte 0xf0, 0xd2, 0x00, 0x00, 0x00, 0x0c, 0x6c, 0x08 + .byte 0x2c, 0x00, 0x2c, 0x00 +.Label001: .byte 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0xe8, 0x03, 0x00, 0x00, 0x00, 0x00, 0x82, 0x00 + .byte 0x3a, 0x01, 0x3a, 0x01, 0x00, 0x00, 0x00, 0x00 + .byte 0xd0, 0x07, 0x00, 0x00, 0x04, 0x01, 0x84, 0x01 + .byte 0x02, 0x01, 0xa2, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x7c, 0x15, 0x00, 0x00, 0x04, 0x02, 0x8b, 0x01 + .byte 0xdf, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0xf8, 0x2a, 0x00, 0x00, 0x04, 0x03, 0x96, 0x01 + .byte 0xd5, 0x00, 0x75, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + + .section .irom0.text, "ax", @progbits + + .literal_position # 0: 00000000 + +# Function @ .irom0.text+0x4 + .balign 4 + .global ieee80211_get_11g_ratetable + .type ieee80211_get_11g_ratetable, @function +ieee80211_get_11g_ratetable: + movi a2, .Ldata001 # 4: 21ffff + ret /* .Ldata001 */ # 7: 0df0 + + .literal_position # c: d4000000 + # 10: 00000000 + +# Function @ .irom0.text+0x14 + .balign 4 + .global ieee80211_get_ratetable + .type ieee80211_get_ratetable, @function +ieee80211_get_ratetable: + l32i a2, a2, 0 /* [arg0] */ # 14: 2802 + movi a3, 192 /* 0x000000c0 */ # 16: 32a0c0 + ball a2, a3, .Lbr001 # 19: 37420a + movi a4, 1152 /* 0x00000480 */ # 1c: 42a480 + ball a2, a4, .Lbr001 # 1f: 474204 + movi a2, .Label001 # 22: 21faff + ret /* .Label001 */ # 25: 0df0 +.Lbr001: movi a2, .Ldata001 # 27: 21faff + ret /* .Ldata001 */ # 2a: 0df0 + + .literal_position # 2c: 00000000 + +# Function @ .irom0.text+0x30 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global ieee80211_phy_init + .type ieee80211_phy_init, @function +ieee80211_phy_init: + addi sp, sp, -16 /* (local0) */ # 30: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 33: c911 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 35: 0901 + mov a12, a2 /* arg0 */ # 37: cd02 + call0 ieee80211_setup_ratetable # 39: 050000 + movi a3, 12 /* 0x0000000c */ # 3c: 0cc3 + movi a0, 3 /* 0x00000003 */ # 3e: 0c30 + movi a5, 4 /* 0x00000004 */ # 40: 0c45 + movi a2, g_ic # 42: 21faff + addi a4, a12, -1 /* arg0-0x1 */ # 45: 0b4c + movi a6, 0 /* 0x00000000 */ # 47: 0c06 + l32i a12, sp, 4 /* [(local1)] */ # 49: c811 + s8i a6, a2, 125 /* 0x00 -> [g_ic+0x7d] */ # 4b: 62427d + s8i a6, a2, 126 /* 0x00 -> [g_ic+0x7e] */ # 4e: 62427e + s8i a5, a2, 127 /* 0x04 -> [g_ic+0x7f] */ # 51: 52427f + movnez a0, a3, a4 # 54: 400393 + s8i a0, a2, 124 /* a0 -> [g_ic+0x7c] */ # 57: 02427c + l32i a0, sp, 0 /* [(local0)] */ # 5a: 0801 + addi sp, sp, 16 /* (top of frame) */ # 5c: 12c110 + ret /* g_ic */ # 5f: 0df0 + + .literal_position # 64: 00000000 + +# Function @ .irom0.text+0x68 + .balign 4 + .global ieee80211_phy_type_get + .type ieee80211_phy_type_get, @function +ieee80211_phy_type_get: + movi a2, g_ic+0x200 # 68: 21ffff + l32i a2, a2, 0x31c /* [g_ic+0x51c] */ # 6b: 2222c7 + movi a3, 1 /* 0x00000001 */ # 6e: 0c13 + addi a2, a2, -1 /* [g_ic+0x51c]-0x1 */ # 70: 0b22 + movnez a2, a3, a2 # 72: 202393 + ret # 75: 0df0 + + .literal_position # 78: 00000000 + # 7c: d4000000 + # 80: 00000000 + +# Function @ .irom0.text+0x84 + .balign 4 + .global ieee80211_setup_ratetable + .type ieee80211_setup_ratetable, @function +ieee80211_setup_ratetable: + movi a4, .Ldata001 # 84: 41fdff + movi a5, .Label001 # 87: 51fdff + addi a6, a2, -1 /* arg0-0x1 */ # 8a: 0b62 + movnez a5, a4, a6 # 8c: 605493 + movi a6, g_ic # 8f: 61fcff + l8ui a3, a5, 0 # 92: 320500 + s8i a3, a6, 44 /* a3 -> [g_ic+0x2c] */ # 95: 32462c + beqz a3, .Lbr003 # 98: 9c83 + movi a2, 0 /* 0x00000000 */ # 9a: 0c02 +.Lbr002: add a4, a2, a6 # 9c: 6a42 + slli a3, a2, 4 # 9e: c03211 + add a3, a5, a3 # a1: 3a35 + addi a2, a2, 1 # a3: 1b22 + l8ui a3, a3, 30 # a5: 32031e + s8i a3, a4, 45 # a8: 32442d + l8ui a7, a6, 44 /* [g_ic+0x2c] */ # ab: 72062c + extui a2, a2, 0, 8 # ae: 202074 + bltu a2, a7, .Lbr002 # b1: 7732e7 +.Lbr003: ret # b4: 0df0 + + .literal_position # b8: 00000000 + # bc: 00000000 + # c0: 00000000 + +# Function @ .irom0.text+0xc4 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 + .global ieee80211_compute_duration + .type ieee80211_compute_duration, @function +ieee80211_compute_duration: + addi sp, sp, -16 /* (local0) */ # c4: 12c1f0 + s32i a0, sp, 8 /* a0 -> [(local2)] */ # c7: 0921 + add a0, a4, a2 # c9: 2a04 + l8ui a0, a0, 4 # cb: 020004 + mov a7, a3 /* arg1 */ # ce: 7d03 + slli a0, a0, 4 # d0: c00011 + add a0, a2, a0 # d3: 0a02 + l32i a3, a0, 24 # d5: 3860 + l8ui a2, a0, 20 # d7: 220014 + bnez a3, .Lbr004 # da: cc33 + movi a2, 0 /* 0x00000000 */ # dc: 0c02 + j .Lbr008 # de: 061400 +.Lbr004: s32i a7, sp, 4 /* arg1 -> [(local1)] */ # e1: 7911 + beqz a2, .Lbr005 # e3: ac52 + bnei a2, 1, .Lbr007 # e5: 661246 + slli a2, a3, 2 # e8: e02311 + movi a3, 1000 /* 0x000003e8 */ # eb: 32a3e8 + call0 __udivsi3 # ee: 01f2ffc0 + # f2: 0000 + mov a3, a2 # f4: 3d02 + l32i a2, sp, 4 /* [(local1)] */ # f6: 2811 + addx8 a2, a2, a3 # f8: 3022b0 + addi a2, a2, 21 # fb: 22c215 + call0 __udivsi3 # fe: 01efffc0 + # 102: 0000 + movi a0, 36 /* 0x00000024 */ # 104: 2c40 + addx4 a0, a2, a0 # 106: 0002a0 + j .Lbr007 # 109: 860800 +.Lbr005: beqz a5, .Lbr009 # 10c: ac95 + l8ui a2, a0, 28 # 10e: 22001c + movi a4, 96 /* 0x00000060 */ # 111: 42a060 + beqz a2, .Lbr009 # 114: ac12 + s32i a4, sp, 0 /* 0x00000060 -> [(local0)] */ # 116: 4901 +.Lbr006: l32i a2, sp, 4 /* [(local1)] */ # 118: 2811 + movi a4, 1000 /* 0x000003e8 */ # 11a: 42a3e8 + slli a2, a2, 3 # 11d: d02211 + mull a2, a2, a4 # 120: 402282 + call0 __udivsi3 # 123: 01e7ffc0 + # 127: 0000 + l32i a0, sp, 0 /* [(local0)] */ # 129: 0801 + add a0, a0, a2 # 12b: 2a00 + addi a0, a0, 10 # 12d: ab00 +.Lbr007: extui a2, a0, 0, 16 # 12f: 0020f4 +.Lbr008: l32i a0, sp, 8 /* [(local2)] */ # 132: 0821 + addi sp, sp, 16 /* (top of frame) */ # 134: 12c110 + ret # 137: 0df0 +.Lbr009: movi a2, 192 /* 0x000000c0 */ # 139: 22a0c0 + s32i a2, sp, 0 /* 0x000000c0 -> [(local0)] */ # 13c: 2901 + j .Lbr006 # 13e: 86f5ff + + .literal_position # 144: 00000000 + +# Function @ .irom0.text+0x148 + .balign 4 + .global ieee80211_dot11Rate_rix + .type ieee80211_dot11Rate_rix, @function +ieee80211_dot11Rate_rix: + movi a6, 0 /* 0x00000000 */ # 148: 0c06 + movi a8, .Ldata001 # 14a: 81feff +.Lbr010: slli a7, a6, 4 # 14d: c07611 + add a7, a8, a7 # 150: 7a78 + l8ui a4, a7, 30 # 152: 42071e + bne a4, a2, .Lbr011 # 155: 279409 + mov a2, a6 # 158: 2d06 + l8ui a8, a7, 29 # 15a: 82071d + s8i a8, a3, 0 /* a8 -> [arg1] */ # 15d: 824300 + ret # 160: 0df0 +.Lbr011: addi a6, a6, 1 # 162: 1b66 + extui a6, a6, 0, 8 # 164: 606074 + bnei a6, 12, .Lbr010 # 167: 66a6e2 + movi a2, 255 /* 0x000000ff */ # 16a: 22a0ff + ret /* 0x000000ff */ # 16d: 0df0 diff --git a/binary_sdk/libnet80211_stage1/ieee80211_power.S b/binary_sdk/libnet80211_stage1/ieee80211_power.S new file mode 100644 index 0000000..a86529f --- /dev/null +++ b/binary_sdk/libnet80211_stage1/ieee80211_power.S @@ -0,0 +1,196 @@ + + .section .irom0.text, "ax", @progbits + +# Function @ .irom0.text+0x0 + .balign 4 + .literal_position + .global ieee80211_psq_init + .type ieee80211_psq_init, @function +ieee80211_psq_init: + movi a6, 0 /* 0x00000000 */ # 0: 0c06 + movi a5, 0 /* 0x00000000 */ # 2: 0c05 + movi a4, 1 /* 0x00000001 */ # 4: 0c14 +.Lbr001: addi a4, a4, -1 # 6: 0b44 + add a3, a5, a2 # 8: 2a35 + s32i a6, a3, 0 # a: 6903 + addi a5, a5, 4 # c: 4b55 + bgei a4, 1, .Lbr001 # e: e614f4 + movi a4, 10 /* 0x0000000a */ # 11: 0ca4 + s32i a4, a2, 4 /* 0x0000000a -> [arg0+0x4] */ # 13: 4912 + ret /* arg0 */ # 15: 0df0 + + .balign 4 +# Function @ .irom0.text+0x18 + .balign 4 + .global ieee80211_psq_cleanup + .type ieee80211_psq_cleanup, @function +ieee80211_psq_cleanup: + ret /* arg0 */ # 18: 0df0 + + .literal_position # 1c: 00000000 + +# Function @ .irom0.text+0x20 + .balign 4 + .global ieee80211_set_tim + .type ieee80211_set_tim, @function +ieee80211_set_tim: + movi a10, 1 /* 0x00000001 */ # 20: 0c1a + l16ui a6, a2, 26 /* [arg0+0x1a] */ # 22: 62120d + movi a8, g_ic+0x152 # 25: 81fdff + extui a7, a6, 0, 3 # 28: 607024 + extui a6, a6, 3, 11 # 2b: 6063a4 + add a6, a6, a8 # 2e: 8a66 + l8ui a5, a6, 128 # 30: 520680 + ssr a7 # 33: 000740 + sra a4, a5 # 36: 5040b1 + extui a4, a4, 0, 1 # 39: 404004 + sub a2, a3, a4 # 3c: 4023c0 + movnez a2, a10, a2 # 3f: 202a93 + beqz a2, .Lbr002 # 42: 9c52 + movi a11, -1 /* 0xffffffff */ # 44: 7cfb + ssl a7 # 46: 001740 + sll a9, a10 # 49: 009aa1 + or a8, a9, a5 # 4c: 508920 + xor a9, a9, a11 # 4f: b09930 + and a9, a5, a9 # 52: 909510 + moveqz a8, a9, a3 # 55: 308983 + s8i a8, a6, 128 # 58: 824680 +.Lbr002: ret # 5b: 0df0 + + .literal_position # 60: 00000000 + # 64: 00000000 + +# Function @ .irom0.text+0x68 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global ieee80211_pwrsave + .type ieee80211_pwrsave, @function +ieee80211_pwrsave: + mov a6, a2 /* arg0 */ # 68: 6d02 + addi sp, sp, -16 /* (local0) */ # 6a: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 6d: c911 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 6f: 0901 + l32i a2, a2, 196 /* [arg0+0xc4] */ # 71: 222231 + l32i a0, a6, 192 /* [arg0+0xc0] */ # 74: 022630 + mov a12, a3 /* arg1 */ # 77: cd03 + blt a0, a2, .Lbr003 # 79: 27201e + l32i a3, a6, 200 /* [arg0+0xc8] */ # 7c: 322632 + l32i a2, a12, 0 /* [arg1] */ # 7f: 280c + addi a3, a3, 1 /* [arg0+0xc8]+0x1 */ # 81: 1b33 + s32i a3, a6, 200 /* [arg0+0xc8]+0x1 -> [arg0+0xc8] */ # 83: 326632 + call0 pbuf_free # 86: 01f6ffc0 + # 8a: 0000 + mov a2, a12 /* arg1 */ # 8c: 2d0c + movi a3, 1 /* 0x00000001 */ # 8e: 0c13 + call0 esf_buf_recycle # 90: 01f5ffc0 + # 94: 0000 + movi a2, 1 /* 0x00000001 */ # 96: 0c12 + j .Lbr007 # 98: 060b00 +.Lbr003: addi a4, a0, 1 /* [arg0+0xc0]+0x1 */ # 9b: 1b40 + movi a7, 0 /* 0x00000000 */ # 9d: 0c07 + l32i a5, a6, 212 /* [arg0+0xd4] */ # 9f: 522635 + l32i a2, a6, 208 /* [arg0+0xd0] */ # a2: 222634 + addi a5, a5, 1 /* [arg0+0xd4]+0x1 */ # a5: 1b55 + bnez a2, .Lbr004 # a7: cc42 + s32i a3, a6, 204 /* arg1 -> [arg0+0xcc] */ # a9: 326633 + j .Lbr005 # ac: 460000 +.Lbr004: s32i a3, a2, 28 /* arg1 -> [[arg0+0xd0]+0x1c] */ # af: 3972 +.Lbr005: s32i a7, a12, 28 /* 0x00000000 -> [arg1+0x1c] */ # b1: 797c + s32i a12, a6, 208 /* arg1 -> [arg0+0xd0] */ # b3: c26634 + s32i a4, a6, 192 /* [arg0+0xc0]+0x1 -> [arg0+0xc0] */ # b6: 426630 + s32i a5, a6, 212 /* [arg0+0xd4]+0x1 -> [arg0+0xd4] */ # b9: 526635 + bnei a4, 1, .Lbr006 # bc: 661406 + mov a2, a6 /* arg0 */ # bf: 2d06 + movi a3, 1 /* 0x00000001 */ # c1: 0c13 + call0 ieee80211_set_tim # c3: 050000 +.Lbr006: movi a2, 0 /* 0x00000000 */ # c6: 0c02 +.Lbr007: l32i a12, sp, 4 /* [(local1)] */ # c8: c811 + l32i a0, sp, 0 /* [(local0)] */ # ca: 0801 + addi sp, sp, 16 /* (top of frame) */ # cc: 12c110 + ret # cf: 0df0 + + .literal_position # d4: 00000000 + # d8: 00000000 + # dc: 00000000 + +# Function @ .irom0.text+0xe0 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word @ -0x8 +# (local3): word @ -0x4 + .balign 4 +.Lfunc001: addi sp, sp, -16 /* (local0) */ # e0: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # e3: 0901 + s32i a14, sp, 12 /* a14 -> [(local3)] */ # e5: e931 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # e7: c911 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # e9: d921 + mov a12, a2 /* arg0 */ # eb: cd02 + l32i a13, a2, 204 /* [arg0+0xcc] */ # ed: d22233 + movi a14, 0 /* 0x00000000 */ # f0: 0c0e + bnez a13, .Lbr008 # f2: cc1d + j .Lbr012 # f4: 061000 +.Lbr008: l32i a2, a13, 28 /* [[arg0+0xcc]+0x1c] */ # f7: 287d + s32i a2, a12, 204 /* [[arg0+0xcc]+0x1c] -> [arg0+0xcc] */ # f9: 226c33 + call0 chm_check_same_channel # fc: 01f7ffc0 + # 100: 0000 + beqz a2, .Lbr009 # 102: 8c92 + mov a2, a13 /* [arg0+0xcc] */ # 104: 2d0d + call0 ppTxPkt # 106: 01f5ffc0 + # 10a: 0000 + j .Lbr010 # 10c: c60300 +.Lbr009: movi a5, g_ic # 10f: 51f1ff + addi a4, a13, 28 /* [arg0+0xcc]+0x1c */ # 112: 42cd1c + l32i a6, a5, 0x1c4 /* [g_ic+0x1c4] */ # 115: 622571 + s32i a14, a13, 28 /* 0x00000000 -> [[arg0+0xcc]+0x1c] */ # 118: e97d + s32i a13, a6, 0 /* [arg0+0xcc] -> [[g_ic+0x1c4]] */ # 11a: d906 + s32i a4, a5, 0x1c4 /* [arg0+0xcc]+0x1c -> [g_ic+0x1c4] */ # 11c: 426571 +.Lbr010: l32i a7, a12, 192 /* [arg0+0xc0] */ # 11f: 722c30 + l32i a13, a12, 204 /* [arg0+0xcc] */ # 122: d22c33 + addi a7, a7, -1 /* [arg0+0xc0]-0x1 */ # 125: 0b77 + s32i a7, a12, 192 /* [arg0+0xc0]-0x1 -> [arg0+0xc0] */ # 127: 726c30 + beqz a13, .Lbr011 # 12a: 8c1d + j .Lbr008 # 12c: c6f1ff +.Lbr011: s32i a14, a12, 208 /* 0x00000000 -> [arg0+0xd0] */ # 12f: e26c34 + s32i a14, a12, 204 /* 0x00000000 -> [arg0+0xcc] */ # 132: e26c33 + s32i a14, a12, 212 /* 0x00000000 -> [arg0+0xd4] */ # 135: e26c35 +.Lbr012: l32i a0, sp, 0 /* [(local0)] */ # 138: 0801 + s32i a14, a12, 192 /* 0x00000000 -> [arg0+0xc0] */ # 13a: e26c30 + l32i a13, sp, 8 /* [(local2)] */ # 13d: d821 + l32i a12, sp, 4 /* [(local1)] */ # 13f: c811 + l32i a14, sp, 12 /* [(local3)] */ # 141: e831 + addi sp, sp, 16 /* (top of frame) */ # 143: 12c110 + ret # 146: 0df0 + +# Function @ .irom0.text+0x148 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global ieee80211_node_pwrsave + .type ieee80211_node_pwrsave, @function +ieee80211_node_pwrsave: + addi sp, sp, -16 /* (local0) */ # 148: 12c1f0 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 14b: 0911 + s32i a2, sp, 0 /* arg0 -> [(local0)] */ # 14d: 2901 + l32i a0, a2, 8 /* [arg0+0x8] */ # 14f: 0822 + beqz a3, .Lbr013 # 151: 8c83 + movi a3, 16 /* 0x00000010 */ # 153: 1c03 + or a3, a0, a3 # 155: 303020 + s32i a3, a2, 8 /* a3 -> [arg0+0x8] */ # 158: 3922 + j .Lbr014 # 15a: c60500 +.Lbr013: movi a3, 0 /* 0x00000000 */ # 15d: 0c03 + movi a4, -17 /* 0xffffffef */ # 15f: 6cf4 + and a4, a0, a4 # 161: 404010 + s32i a4, a2, 8 /* a4 -> [arg0+0x8] */ # 164: 4922 + call0 ieee80211_set_tim # 166: 050000 + l32i a0, sp, 0 /* [(local0)] */ # 169: 0801 + l32i a5, a0, 192 /* [[(local0)]+0xc0] */ # 16b: 522030 + beqz a5, .Lbr014 # 16e: 8c35 + mov a2, a0 /* [(local0)] */ # 170: 2d00 + call0 .Lfunc001 # 172: c5f6ff +.Lbr014: l32i a0, sp, 4 /* [(local1)] */ # 175: 0811 + addi sp, sp, 16 /* (top of frame) */ # 177: 12c110 + ret # 17a: 0df0 diff --git a/binary_sdk/libnet80211_stage1/ieee80211_proto.S b/binary_sdk/libnet80211_stage1/ieee80211_proto.S new file mode 100644 index 0000000..bf30e08 --- /dev/null +++ b/binary_sdk/libnet80211_stage1/ieee80211_proto.S @@ -0,0 +1,236 @@ + + .section .data, "aw", @progbits + + .global ieee80211_addr_bcast + .type ieee80211_addr_bcast, @object +ieee80211_addr_bcast: + .byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff + + .section .irom0.text, "ax", @progbits + + .literal_position # 0: 00000000 + # 4: 00000400 + # 8: 00000000 + +# Function @ .irom0.text+0xc +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global ieee80211_proto_attach + .type ieee80211_proto_attach, @function +ieee80211_proto_attach: + movi a3, 2 /* 0x00000002 */ # c: 0c23 + movi a4, 0x00040000 # e: 41fdff + movi a6, 1 /* 0x00000001 */ # 11: 0c16 + mov a5, a2 /* arg0 */ # 13: 5d02 + addi sp, sp, -16 /* (local0) */ # 15: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 18: 0901 + movi a2, ieee80211_tx_mgt_cb # 1a: 21f9ff + l32i a0, a5, 28 /* [arg0+0x1c] */ # 1d: 0875 + s32i a6, a5, 12 /* 0x00000001 -> [arg0+0xc] */ # 1f: 6935 + or a0, a0, a4 # 21: 400020 + s32i a0, a5, 28 /* a0 -> [arg0+0x1c] */ # 24: 0975 + call0 ppRegisterTxCallback # 26: 01f8ffc0 + # 2a: 0000 + l32i a0, sp, 0 /* [(local0)] */ # 2c: 0801 + addi sp, sp, 16 /* (top of frame) */ # 2e: 12c110 + ret # 31: 0df0 + + .balign 4 +# Function @ .irom0.text+0x34 + .balign 4 + .global ieee80211_set_shortslottime + .type ieee80211_set_shortslottime, @function +ieee80211_set_shortslottime: + movi a6, 1024 /* 0x00000400 */ # 34: 62a400 + l32i a5, a2, 28 /* [arg0+0x1c] */ # 37: 5872 + movi a4, -1025 /* 0xfffffbff */ # 39: 42abff + and a4, a5, a4 # 3c: 404510 + or a5, a5, a6 # 3f: 605520 + moveqz a5, a4, a3 # 42: 305483 + s32i a5, a2, 28 /* a5 -> [arg0+0x1c] */ # 45: 5972 + ret /* arg0 */ # 47: 0df0 + + .literal_position # 4c: 00000000 + +# Function @ .irom0.text+0x50 + .balign 4 + .global ieee80211_iserp_rateset + .type ieee80211_iserp_rateset, @function +ieee80211_iserp_rateset: + l8ui a8, a2, 0 /* [arg0] */ # 50: 820200 + bltui a8, 7, .Lbr003 # 53: b6781e + movi a9, .Ldata001 # 56: 91fdff + movi a10, 0 /* 0x00000000 */ # 59: 0c0a +.Lbr001: blti a8, 1, .Lbr003 # 5b: a61816 + movi a5, 0 /* 0x00000000 */ # 5e: 0c05 + l32i a6, a9, 0 # 60: 6809 +.Lbr002: add a7, a5, a2 # 62: 2a75 + l8ui a7, a7, 1 # 64: 720701 + extui a7, a7, 0, 7 # 67: 707064 + beq a6, a7, .Lbr004 # 6a: 77160b + blt a6, a7, .Lbr003 # 6d: 772604 + addi a5, a5, 1 # 70: 1b55 + bne a5, a8, .Lbr002 # 72: 8795ec +.Lbr003: movi a2, 0 /* 0x00000000 */ # 75: 0c02 + ret /* 0x00000000 */ # 77: 0df0 +.Lbr004: addi a9, a9, 4 # 79: 4b99 + addi a10, a10, 1 # 7b: 1baa + bnei a10, 7, .Lbr001 # 7d: 667ada + movi a2, 1 /* 0x00000001 */ # 80: 0c12 + ret /* 0x00000001 */ # 82: 0df0 + + .literal_position # 84: 20000000 + +# Function @ .irom0.text+0x88 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 +.Lfunc001: addi sp, sp, -16 /* (local0) */ # 88: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 8b: 0901 + l8ui a0, a2, 0 /* [arg0] */ # 8d: 020200 + beqz a0, .Lbr009 # 90: bcf0 + movi a9, 0 /* 0x00000000 */ # 92: 0c09 + movi a11, 128 /* 0x00000080 */ # 94: b2a080 + movi a8, .Ldata002 # 97: 81fbff + slli a10, a3, 4 # 9a: c0a311 + add a8, a8, a10 # 9d: aa88 + l8ui a7, a8, 0 # 9f: 720800 +.Lbr005: bnez a4, .Lbr006 # a2: cc94 + add a3, a2, a9 # a4: 9a32 + l8ui a0, a3, 1 # a6: 020301 + extui a0, a0, 0, 7 # a9: 000064 + s8i a0, a3, 1 # ac: 024301 +.Lbr006: beqz a7, .Lbr008 # af: 9c57 + movi a0, 0 /* 0x00000000 */ # b1: 0c00 + add a10, a2, a9 # b3: 9aa2 + l8ui a3, a10, 1 # b5: 320a01 +.Lbr007: add a5, a8, a0 # b8: 0a58 + l8ui a5, a5, 1 # ba: 520501 + addi a0, a0, 1 # bd: 1b00 + bne a5, a3, .Lbr010 # bf: 379517 + or a6, a3, a11 # c2: b06320 + s8i a6, a10, 1 # c5: 624a01 +.Lbr008: l8ui a10, a2, 0 /* [arg0] */ # c8: a20200 + addi a9, a9, 1 # cb: 1b99 + extui a9, a9, 0, 8 # cd: 909074 + bltu a9, a10, .Lbr005 # d0: a739ce +.Lbr009: l32i a0, sp, 0 /* [(local0)] */ # d3: 0801 + addi sp, sp, 16 /* (top of frame) */ # d5: 12c110 + ret /* arg0 */ # d8: 0df0 +.Lbr010: extui a0, a0, 0, 8 # da: 000074 + bne a7, a0, .Lbr007 # dd: 0797d7 + j .Lbr008 # e0: 06f9ff + + .balign 4 +# Function @ .irom0.text+0xe4 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global ieee80211_setbasicrates + .type ieee80211_setbasicrates, @function +ieee80211_setbasicrates: + movi a4, 0 /* 0x00000000 */ # e4: 0c04 + addi sp, sp, -16 /* (local0) */ # e6: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # e9: 0901 + call0 .Lfunc001 # eb: c5f9ff + l32i a0, sp, 0 /* [(local0)] */ # ee: 0801 + addi sp, sp, 16 /* (top of frame) */ # f0: 12c110 + ret # f3: 0df0 + + .balign 4 +# Function @ .irom0.text+0xf8 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global ieee80211_addbasicrates + .type ieee80211_addbasicrates, @function +ieee80211_addbasicrates: + movi a4, 1 /* 0x00000001 */ # f8: 0c14 + addi sp, sp, -16 /* (local0) */ # fa: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # fd: 0901 + call0 .Lfunc001 # ff: 85f8ff + l32i a0, sp, 0 /* [(local0)] */ # 102: 0801 + addi sp, sp, 16 /* (top of frame) */ # 104: 12c110 + ret # 107: 0df0 + + .balign 4 +# Function @ .irom0.text+0x10c + .balign 4 + .global ieee80211_wme_initparams + .type ieee80211_wme_initparams, @function +ieee80211_wme_initparams: + ret /* arg0 */ # 10c: 0df0 + + .balign 4 +# Function @ .irom0.text+0x110 + .balign 4 + .global ieee80211_wme_updateparams + .type ieee80211_wme_updateparams, @function +ieee80211_wme_updateparams: + ret /* arg0 */ # 110: 0df0 + + .literal_position # 114: 00000000 + # 118: 00000000 + # 11c: 00000000 + # 120: 00000000 + # 124: 00000000 + +# Function @ .irom0.text+0x128 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 + .global ieee80211_mlme_connect_bss + .type ieee80211_mlme_connect_bss, @function +ieee80211_mlme_connect_bss: + mov a3, a2 /* arg0 */ # 128: 3d02 + addi sp, sp, -16 /* (local0) */ # 12a: 12c1f0 + s32i a5, sp, 4 /* arg3 -> [(local1)] */ # 12d: 5911 + s32i a0, sp, 8 /* a0 -> [(local2)] */ # 12f: 0921 + movi a2, g_ic # 131: 21f8ff + s32i a4, sp, 0 /* arg2 -> [(local0)] */ # 134: 4901 + l32i a2, a2, 16 /* [g_ic+0x10] */ # 136: 2842 + movi a4, 6 /* 0x00000006 */ # 138: 0c64 + s32i a3, a2, 136 /* arg0 -> [[g_ic+0x10]+0x88] */ # 13a: 326222 + addi a2, a2, 64 /* [g_ic+0x10]+0x40 */ # 13d: 22c240 + call0 memcpy # 140: 01f7ffc0 + # 144: 0000 + l32i a3, sp, 4 /* [(local1)] */ # 146: 3811 + movi a0, g_ic # 148: 01f4ff + beqz a3, .Lbr011 # 14b: 8ce3 + movi a3, 2 /* 0x00000002 */ # 14d: 0c23 + movi a4, 176 /* 0x000000b0 */ # 14f: 42a0b0 + mov a2, a0 /* g_ic */ # 152: 2d00 + call0 ieee80211_sta_new_state # 154: 01f3ffc0 + # 158: 0000 + j .Lbr012 # 15a: 860400 +.Lbr011: movi a3, 3 /* 0x00000003 */ # 15d: 0c33 + mov a2, a0 /* g_ic */ # 15f: 2d00 + l32i a6, sp, 0 /* [(local0)] */ # 161: 6801 + movi a5, 32 /* 0x00000020 */ # 163: 2c05 + movi a4, 0 /* 0x00000000 */ # 165: 0c04 + movnez a4, a5, a6 # 167: 604593 + call0 ieee80211_sta_new_state # 16a: 01eeffc0 + # 16e: 0000 +.Lbr012: l32i a0, sp, 8 /* [(local2)] */ # 170: 0821 + addi sp, sp, 16 /* (top of frame) */ # 172: 12c110 + ret # 175: 0df0 + + .section .rodata, "a", @progbits + +.Ldata001: .byte 0x02, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00 + .byte 0x0b, 0x00, 0x00, 0x00, 0x16, 0x00, 0x00, 0x00 + .byte 0x0c, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x00 + .byte 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +.Ldata002: .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x02, 0x02, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x04, 0x02, 0x04, 0x0b, 0x16, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 diff --git a/binary_sdk/libnet80211_stage1/ieee80211_scan.S b/binary_sdk/libnet80211_stage1/ieee80211_scan.S new file mode 100644 index 0000000..9e9d49e --- /dev/null +++ b/binary_sdk/libnet80211_stage1/ieee80211_scan.S @@ -0,0 +1,1789 @@ + + .section .bss, "aw", @nobits + + .global gScanStruct + .type gScanStruct, @object +gScanStruct: + .word 0x00000000 # 0: 00000000 +.Ldata001: .word 0x00000000 # 4: 00000000 +.Label001: .space 28 +.Label002: .space 28 +.Ldata002: .word 0x00000000 # 40: 00000000 +.Ldata003: .word 0x00000000 # 44: 00000000 +.Ldata004: .word 0x00000000 # 48: 00000000 +.Ldata005: .word 0x00000000 # 4c: 00000000 + +# NOTE: 4 non-alignment zero bytes skipped. + + .skip 4 +.Ldata006: .word 0x00000000 # 54: 00000000 +.Ldata007: .word 0x00000000 # 58: 00000000 +.Ldata008: .byte 0x00 +.Ldata009: .byte 0x00 + +# NOTE: 73 non-alignment zero bytes skipped. + + .skip 75 +.Ldata010: .byte 0x00 +.Ldata011: .byte 0x00 +.Ldata012: .byte 0x00 +.Label003: .space 6 +.Ldata013: .byte 0x00 +.Ldata014: .byte 0x00 +.Ldata015: .word 0x00000000 # b4: 00000000 +.Ldata016: .byte 0x00 + .byte 0x00, 0x00, 0x00 +.Ldata017: .word 0x00000000 # bc: 00000000 +.Ldata018: .word 0x00000000 # c0: 00000000 + .global auth_type + .type auth_type, @object +auth_type: .byte 0x00 + .byte 0x00 + .global scannum + .type scannum, @object +scannum: .hword 0x0000 # c6: 0000 +.Ldata019: .space 28 + + .section .irom0.text, "ax", @progbits + + .literal_position # 0: 00000000 + # 4: b4070000 + # 8: 24000000 + # c: 98070000 + # 10: 00000000 + # 14: 00000000 + +# Function @ .irom0.text+0x18 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global ieee80211_scan_attach + .type ieee80211_scan_attach, @function +ieee80211_scan_attach: + movi a4, 255 /* 0x000000ff */ # 18: 42a0ff + movi a3, 360 /* 0x00000168 */ # 1b: 32a168 + movi a5, 120 /* 0x00000078 */ # 1e: 52a078 + addi sp, sp, -16 /* (local0) */ # 21: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 24: c911 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 26: 0901 + mov a12, a2 /* arg0 */ # 28: cd02 + movi a2, gScanStruct # 2a: 21f5ff + s32i a2, a12, 4 /* gScanStruct -> [arg0+0x4] */ # 2d: 291c + s32i a5, a2, 68 /* 0x00000078 -> [.Ldata003] */ # 2f: 526211 + s32i a5, a2, 72 /* 0x00000078 -> [.Ldata004] */ # 32: 526212 + s32i a3, a2, 76 /* 0x00000168 -> [.Ldata005] */ # 35: 326213 + s8i a4, a2, 171 /* 0xff -> [.Ldata012] */ # 38: 4242ab + movi a3, .Lfunc010 # 3b: 31f2ff + movi a4, 0 /* 0x00000000 */ # 3e: 0c04 + addi a2, a2, 8 /* .Label001 */ # 40: 8b22 + call0 os_timer_setfn # 42: 01f3ffc0 + # 46: 0000 + movi a2, .Label002 # 48: 21f0ff + movi a3, .Lfunc009 # 4b: 31f0ff + movi a4, 0 /* 0x00000000 */ # 4e: 0c04 + call0 os_timer_setfn # 50: 01f1ffc0 + # 54: 0000 + l32i a0, sp, 0 /* [(local0)] */ # 56: 0801 + movi a6, 0 /* 0x00000000 */ # 58: 0c06 + movi a7, 448 /* 0x000001c0 */ # 5a: 72a1c0 + add a7, a12, a7 /* arg0+0x1c0 */ # 5d: 7a7c + s32i a6, a12, 0x1c0 /* 0x00000000 -> [arg0+0x1c0] */ # 5f: 626c70 + s32i a7, a12, 0x1c4 /* arg0+0x1c0 -> [arg0+0x1c4] */ # 62: 726c71 + l32i a12, sp, 4 /* [(local1)] */ # 65: c811 + addi sp, sp, 16 /* (top of frame) */ # 67: 12c110 + ret # 6a: 0df0 + + .literal_position # 6c: 00000000 + +# Function @ .irom0.text+0x70 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 +.Lfunc001: movi a5, gScanStruct # 70: 51ffff + addi sp, sp, -16 /* (local0) */ # 73: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 76: 0901 + l32i a2, a5, 180 /* [.Ldata015] */ # 78: 22252d + l8ui a3, a5, 184 /* [.Ldata016] */ # 7b: 3205b8 + l32i a4, a5, 188 /* [.Ldata017] */ # 7e: 42252f + l32i a5, a5, 192 /* [.Ldata018] */ # 81: 522530 + call0 scan_start # 84: 050000 + l32i a0, sp, 0 /* [(local0)] */ # 87: 0801 + addi sp, sp, 16 /* (top of frame) */ # 89: 12c110 + ret # 8c: 0df0 + + .literal_position # 90: c8000000 + # 94: c8000000 + # 98: 70000000 + # 9c: c8000000 + # a0: 00000000 + # a4: c8000000 + # a8: 00000000 + # ac: 00fef13f + # b0: 88040000 + # b4: 00000000 + # b8: 00000000 + # bc: 00000000 + # c0: 00000000 + # c4: 00000000 + # c8: 00000000 + # cc: 00000000 + # d0: 00000000 + # d4: 00000000 + # d8: 00000000 + # dc: 00000000 + # e0: 00000000 + # e4: 00000000 + # e8: d80a0000 + # ec: b4070000 + +# Function @ .irom0.text+0xf0 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word[4] @ -0x10 + .balign 4 + .global scan_start + .type scan_start, @function +scan_start: addi sp, sp, -32 /* (local0) */ # f0: 12c1e0 + s32i a4, sp, 16 /* arg2 -> [(local4)] */ # f3: 4941 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # f5: 0901 + s32i a14, sp, 12 /* a14 -> [(local3)] */ # f7: e931 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # f9: d921 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # fb: c911 + mov a13, a3 /* arg1 */ # fd: dd03 + mov a12, a2 /* arg0 */ # ff: cd02 + mov a14, a5 /* arg3 */ # 101: ed05 + movi a2, .Ldata019 # 103: 21e3ff + call0 os_timer_disarm # 106: 01edffc0 + # 10a: 0000 + movi a2, .Ldata019 # 10c: 21e2ff + movi a3, .Lfunc001 # 10f: 31e2ff + movi a4, 0 /* 0x00000000 */ # 112: 0c04 + call0 os_timer_setfn # 114: 01ebffc0 + # 118: 0000 + call0 pm_is_open # 11a: 01eaffc0 + # 11e: 0000 + beqz a2, .Lbr003 # 120: 161204 + call0 pm_is_waked # 123: 01e9ffc0 + # 127: 0000 + bnez a2, .Lbr002 # 129: fc22 + movi a2, 1 /* 0x00000001 */ # 12b: 0c12 + call0 pm_post # 12d: 01e7ffc0 + # 131: 0000 + movi a2, .Ldata019 # 133: 21daff + call0 os_timer_disarm # 136: 01e6ffc0 + # 13a: 0000 + movi a2, .Ldata019 # 13c: 21daff + movi a3, 10 /* 0x0000000a */ # 13f: 0ca3 + movi a4, gScanStruct # 141: 41d7ff + l32i a5, sp, 16 /* [(local4)] */ # 144: 5841 + s32i a12, a4, 180 /* arg0 -> [.Ldata015] */ # 146: c2642d + s8i a13, a4, 184 /* arg1 -> [.Ldata016] */ # 149: d244b8 + s32i a5, a4, 188 /* [(local4)] -> [.Ldata017] */ # 14c: 52642f + s32i a14, a4, 192 /* arg3 -> [.Ldata018] */ # 14f: e26430 + movi a4, 0 /* 0x00000000 */ # 152: 0c04 + call0 os_timer_arm # 154: 01e0ffc0 + # 158: 0000 +.Lbr001: movi a2, -1 /* 0xffffffff */ # 15a: 7cf2 + j .Lbr006 # 15c: 861f00 +.Lbr002: call0 pm_scan_lock # 15f: 01deffc0 + # 163: 0000 +.Lbr003: movi a2, g_ic # 165: 21d0ff + l32i a2, a2, 16 /* [g_ic+0x10] */ # 168: 2842 + addi a2, a2, 4 /* [g_ic+0x10]+0x4 */ # 16a: 4b22 + call0 os_timer_disarm # 16c: 01dcffc0 + # 170: 0000 + call0 scan_cancel # 172: 01dbffc0 + # 176: 0000 + mov a2, a13 /* arg1 */ # 178: 2d0d + movi a5, 16 /* 0x00000010 */ # 17a: 1c05 + movi a4, 0x3ff1fe00 # 17c: 41ccff + memw # 17f: c02000 + l32i a3, a4, 0x26c /* [0x3ff2006c] */ # 182: 32249b + or a3, a3, a5 # 185: 503320 + memw # 188: c02000 + s32i a3, a4, 0x26c /* a3 -> [0x3ff2006c] */ # 18b: 32649b + movi a3, .Lfunc006 # 18e: 31c8ff + movi a4, 0 /* 0x00000000 */ # 191: 0c04 + call0 chm_acquire_lock # 193: 01d4ffc0 + # 197: 0000 + beqi a2, 3, .Lbr001 # 199: 2632bd + movi a6, 1 /* 0x00000001 */ # 19c: 0c16 + movi a7, gScanStruct # 19e: 71c5ff + l32i a8, sp, 16 /* [(local4)] */ # 1a1: 8841 + s32i a14, a7, 88 /* arg3 -> [.Ldata007] */ # 1a3: e26716 + s32i a12, a7, 4 /* arg0 -> [.Ldata001] */ # 1a6: c917 + s32i a8, a7, 84 /* [(local4)] -> [.Ldata006] */ # 1a8: 826715 + s8i a6, a7, 93 /* 0x01 -> [.Ldata009] */ # 1ab: 62475d + bbsi a12, 12, .Lbr004 # 1ae: c7ec12 + movi a11, 0 /* 0x00000000 */ # 1b1: 0c0b + movi a13, 256 /* 0x00000100 */ # 1b3: d2a100 + mov a10, a7 /* gScanStruct */ # 1b6: ad07 + l8ui a9, a10, 171 /* [.Ldata012] */ # 1b8: 920aab + and a13, a12, a13 # 1bb: d0dc10 + movnez a9, a11, a13 # 1be: d09b93 + s8i a9, a10, 92 /* a9 -> [.Ldata008] */ # 1c1: 924a5c +.Lbr004: movi a12, g_ic # 1c4: c1bdff + call0 .Lfunc011 # 1c7: 01c8ffc0 + # 1cb: 0000 + l32i a14, a12, 0 /* [g_ic] */ # 1cd: e80c + l32i a14, a14, 0 /* [[g_ic]] */ # 1cf: e80e + bbci a14, 1, .Lbr005 # 1d1: 176e07 + movi a2, 0 /* 0x00000000 */ # 1d4: 0c02 + call0 .Lfunc010 # 1d6: 01c5ffc0 + # 1da: 0000 +.Lbr005: movi a2, 0 /* 0x00000000 */ # 1dc: 0c02 +.Lbr006: l32i a12, sp, 4 /* [(local1)] */ # 1de: c811 + l32i a13, sp, 8 /* [(local2)] */ # 1e0: d821 + l32i a14, sp, 12 /* [(local3)] */ # 1e2: e831 + l32i a0, sp, 0 /* [(local0)] */ # 1e4: 0801 + addi sp, sp, 32 /* (top of frame) */ # 1e6: 12c120 + ret # 1e9: 0df0 + + .literal_position # 1ec: 00000000 + # 1f0: 00000000 + # 1f4: 00000000 + +# Function @ .irom0.text+0x1f8 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global scan_pm_channel_op_cb + .type scan_pm_channel_op_cb, @function +scan_pm_channel_op_cb: + addi sp, sp, -16 /* (local0) */ # 1f8: 12c1f0 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 1fb: 0911 + movi a0, gScanStruct # 1fd: 01fbff + l8ui a2, a0, 93 /* [.Ldata009] */ # 200: 22005d + bbci a2, 0, .Lbr007 # 203: 076215 + addi a2, a0, 8 /* .Label001 */ # 206: 8b20 + s32i a2, sp, 0 /* .Label001 -> [(local0)] */ # 208: 2901 + call0 os_timer_disarm # 20a: 01f9ffc0 + # 20e: 0000 + l32i a2, sp, 0 /* [(local0)] */ # 210: 2801 + movi a3, 0 /* 0x00000000 */ # 212: 0c03 + movi a4, 0 /* 0x00000000 */ # 214: 0c04 + call0 os_timer_arm # 216: 01f7ffc0 + # 21a: 0000 +.Lbr007: l32i a0, sp, 4 /* [(local1)] */ # 21c: 0811 + addi sp, sp, 16 /* (top of frame) */ # 21e: 12c110 + ret # 221: 0df0 + + .balign 4 +# Function @ .irom0.text+0x224 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 +.Lfunc002: addi sp, sp, -16 /* (local0) */ # 224: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 227: 0901 + call0 .Lfunc008 # 229: 454b00 + beqz a2, .Lbr008 # 22c: 8c42 + call0 .Lfunc003 # 22e: 850200 + j .Lbr009 # 231: 860100 +.Lbr008: movi a2, 0 /* 0x00000000 */ # 234: 0c02 + movi a3, 0 /* 0x00000000 */ # 236: 0c03 + call0 .Lfunc006 # 238: c52400 +.Lbr009: l32i a0, sp, 0 /* [(local0)] */ # 23b: 0801 + addi sp, sp, 16 /* (top of frame) */ # 23d: 12c110 + ret # 240: 0df0 + + .literal_position # 244: 00000000 + # 248: 00000000 + # 24c: a4020000 + # 250: 1c030000 + # 254: 00000000 + +# Function @ .irom0.text+0x258 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 +.Lfunc003: addi sp, sp, -16 /* (local0) */ # 258: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 25b: 0901 + movi a0, gScanStruct # 25d: 01f9ff + mov a6, a2 /* arg0 */ # 260: 6d02 + l32i a2, a0, 4 /* [.Ldata001] */ # 262: 2810 + movi a5, g_ic # 264: 51f9ff + bbsi a2, 14, .Lbr010 # 267: e7e212 + l32i a5, a5, 16 /* [g_ic+0x10] */ # 26a: 5845 + l32i a4, a0, 72 /* [.Ldata004] */ # 26c: 422012 + l32i a5, a5, 60 /* [[g_ic+0x10]+0x3c] */ # 26f: 58f5 + l32i a3, a0, 68 /* [.Ldata003] */ # 271: 322011 + addi a5, a5, -5 /* [[g_ic+0x10]+0x3c]-0x5 */ # 274: 52c5fb + moveqz a3, a4, a5 # 277: 503483 + j .Lbr011 # 27a: 860000 +.Lbr010: l32i a3, a0, 76 /* [.Ldata005] */ # 27d: 322013 +.Lbr011: mov a2, a6 /* arg0 */ # 280: 2d06 + movi a4, .Lfunc004 # 282: 41f2ff + movi a5, .Lfunc005 # 285: 51f2ff + l8ui a7, a0, 93 /* [.Ldata009] */ # 288: 72005d + movi a8, 8 /* 0x00000008 */ # 28b: 0c88 + or a7, a7, a8 # 28d: 807720 + s8i a7, a0, 93 /* a7 -> [.Ldata009] */ # 290: 72405d + call0 chm_start_op # 293: 01f0ffc0 + # 297: 0000 + l32i a0, sp, 0 /* [(local0)] */ # 299: 0801 + addi sp, sp, 16 /* (top of frame) */ # 29b: 12c110 + ret # 29e: 0df0 + + .literal_position # 2a0: 00000000 + +# Function @ .irom0.text+0x2a4 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 +.Lfunc004: movi a4, 2 /* 0x00000002 */ # 2a4: 0c24 + movi a5, 247 /* 0x000000f7 */ # 2a6: 52a0f7 + movi a6, gScanStruct # 2a9: 61fdff + addi sp, sp, -16 /* (local0) */ # 2ac: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 2af: 0901 + l8ui a3, a6, 93 /* [.Ldata009] */ # 2b1: 32065d + l32i a0, a6, 4 /* [.Ldata001] */ # 2b4: 0816 + and a3, a3, a5 # 2b6: 503310 + s8i a3, a6, 93 /* a3 -> [.Ldata009] */ # 2b9: 32465d + or a3, a3, a4 # 2bc: 403320 + s8i a3, a6, 93 /* a3 -> [.Ldata009] */ # 2bf: 32465d + bbsi a0, 14, .Lbr012 # 2c2: e7e012 + l32i a7, a2, 0 /* [arg0] */ # 2c5: 7802 + bbsi a7, 9, .Lbr012 # 2c7: 97e70d + extui a8, a0, 13, 1 # 2ca: 008d04 + movi a9, 0 /* 0x00000000 */ # 2cd: 0c09 + s8i a9, a6, 170 /* 0x00 -> [.Ldata011] */ # 2cf: 9246aa + s8i a8, a6, 170 /* a8 -> [.Ldata011] */ # 2d2: 8246aa + call0 .Lfunc007 # 2d5: 853600 +.Lbr012: l32i a0, sp, 0 /* [(local0)] */ # 2d8: 0801 + addi sp, sp, 16 /* (top of frame) */ # 2da: 12c110 + ret # 2dd: 0df0 + + .literal_position # 2e0: 00000000 + # 2e4: 08000000 + # 2e8: 00000000 + # 2ec: 24000000 + # 2f0: 00000000 + # 2f4: 88040000 + # 2f8: 00000000 + # 2fc: 88040000 + # 300: 00000000 + # 304: 00000000 + # 308: 00000000 + # 30c: 00000000 + # 310: 88040000 + # 314: 00000000 + # 318: 00000000 + +# Function @ .irom0.text+0x31c +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word @ -0x8 +# (local3): word @ -0x4 + .balign 4 +.Lfunc005: addi sp, sp, -16 /* (local0) */ # 31c: 12c1f0 + s32i a12, sp, 8 /* a12 -> [(local2)] */ # 31f: c921 + movi a12, gScanStruct # 321: c1efff + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 324: 0911 + l8ui a0, a12, 93 /* [.Ldata009] */ # 326: 020c5d + s32i a13, sp, 12 /* a13 -> [(local3)] */ # 329: d931 + extui a2, a0, 3, 1 # 32b: 002304 + beqz a2, .Lbr021 # 32e: 165209 + movi a2, 247 /* 0x000000f7 */ # 331: 22a0f7 +.Lbr013: and a0, a0, a2 # 334: 200010 + s8i a0, a12, 93 /* a0 -> [.Ldata009] */ # 337: 024c5d +.Lbr014: bbci a0, 2, .Lbr015 # 33a: 27600c + movi a2, 0 /* 0x00000000 */ # 33d: 0c02 + movi a3, 0 /* 0x00000000 */ # 33f: 0c03 + call0 .Lfunc006 # 341: 01ecffc0 + # 345: 0000 + j .Lbr020 # 347: 461c00 +.Lbr015: movi a2, .Label001 # 34a: 21e6ff + beqz a3, .Lbr016 # 34d: 9cd3 + call0 os_timer_disarm # 34f: 01eaffc0 + # 353: 0000 + movi a4, 251 /* 0x000000fb */ # 355: 42a0fb + l8ui a3, a12, 93 /* [.Ldata009] */ # 358: 320c5d + movi a2, 0 /* 0x00000000 */ # 35b: 0c02 + and a3, a3, a4 # 35d: 403310 + s8i a3, a12, 93 /* a3 -> [.Ldata009] */ # 360: 324c5d + movi a3, 1 /* 0x00000001 */ # 363: 0c13 + call0 .Lfunc006 # 365: 01e5ffc0 + # 369: 0000 + j .Lbr020 # 36b: 461300 +.Lbr016: l32i a0, a12, 4 /* [.Ldata001] */ # 36e: 081c + movi a12, g_ic # 370: c1deff + bbci a0, 8, .Lbr022 # 373: 87605c + call0 os_timer_disarm # 376: 01e2ffc0 + # 37a: 0000 + call0 chm_return_home_channel # 37c: 01e2ffc0 + # 380: 0000 + movi a2, .Label002 # 382: 21daff + movi a3, 30 /* 0x0000001e */ # 385: 1ce3 + movi a4, 0 /* 0x00000000 */ # 387: 0c04 + call0 os_timer_arm # 389: 01dfffc0 + # 38d: 0000 + movi a13, 0 /* 0x00000000 */ # 38f: 0c0d + movi a5, g_ic+0x1c0 # 391: 51d7ff + s32i a5, sp, 0 /* g_ic+0x1c0 -> [(local0)] */ # 394: 5901 +.Lbr017: l32i a2, a12, 0x1c0 /* [g_ic+0x1c0] */ # 396: 222c70 + beqz a2, .Lbr020 # 399: 9cf2 + l32i a6, a2, 28 /* [[g_ic+0x1c0]+0x1c] */ # 39b: 6872 + s32i a6, a12, 0x1c0 /* [[g_ic+0x1c0]+0x1c] -> [g_ic+0x1c0] */ # 39d: 626c70 + bnez a6, .Lbr018 # 3a0: cc36 + l32i a7, sp, 0 /* [(local0)] */ # 3a2: 7801 + s32i a7, a12, 0x1c4 /* [(local0)] -> [g_ic+0x1c4] */ # 3a4: 726c71 +.Lbr018: s32i a13, a2, 28 /* 0x00000000 -> [[g_ic+0x1c0]+0x1c] */ # 3a7: d972 + call0 ppTxPkt # 3a9: 01d8ffc0 + # 3ad: 0000 + j .Lbr017 # 3af: c6f8ff +.Lbr019: movi a2, 0 /* 0x00000000 */ # 3b2: 0c02 + movi a3, 0 /* 0x00000000 */ # 3b4: 0c03 + call0 .Lfunc006 # 3b6: 01d6ffc0 + # 3ba: 0000 +.Lbr020: l32i a12, sp, 8 /* [(local2)] */ # 3bc: c821 + l32i a13, sp, 12 /* [(local3)] */ # 3be: d831 + l32i a0, sp, 4 /* [(local1)] */ # 3c0: 0811 + addi sp, sp, 16 /* (top of frame) */ # 3c2: 12c110 + ret # 3c5: 0df0 +.Lbr021: extui a8, a0, 1, 1 # 3c7: 008104 + beqz a8, .Lbr014 # 3ca: 16c8f6 + movi a2, 253 /* 0x000000fd */ # 3cd: 22a0fd + j .Lbr013 # 3d0: 06d8ff +.Lbr022: bbsi a0, 9, .Lbr023 # 3d3: 97e005 + call0 os_timer_disarm # 3d6: 01cfffc0 + # 3da: 0000 +.Lbr023: l32i a9, a12, 0 /* [g_ic] */ # 3dc: 980c + l32i a9, a9, 0 /* [[g_ic]] */ # 3de: 9809 + bbci a9, 0, .Lbr019 # 3e0: 0769ce + call0 chm_return_home_channel # 3e3: 01cdffc0 + # 3e7: 0000 + j .Lbr020 # 3e9: c6f3ff + + .literal_position # 3ec: 00000000 + # 3f0: 24000000 + # 3f4: 08000000 + # 3f8: 00000000 + # 3fc: 00000000 + # 400: 00000000 + +# Function @ .irom0.text+0x404 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global scan_cancel + .type scan_cancel, @function +scan_cancel: + addi sp, sp, -16 /* (local0) */ # 404: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 407: 0901 + movi a0, gScanStruct # 409: 01f8ff + l8ui a2, a0, 93 /* [.Ldata009] */ # 40c: 22005d + bbci a2, 0, .Lbr024 # 40f: 07621c + movi a3, 0 /* 0x00000000 */ # 412: 0c03 + s8i a3, a0, 93 /* 0x00 -> [.Ldata009] */ # 414: 32405d + call0 chm_cancel_op # 417: 01f8ffc0 + # 41b: 0000 + movi a2, .Label002 # 41d: 21f4ff + call0 os_timer_disarm # 420: 01f7ffc0 + # 424: 0000 + movi a2, .Label001 # 426: 21f3ff + call0 os_timer_disarm # 429: 01f5ffc0 + # 42d: 0000 +.Lbr024: l32i a0, sp, 0 /* [(local0)] */ # 42f: 0801 + addi sp, sp, 16 /* (top of frame) */ # 431: 12c110 + ret # 434: 0df0 + + .literal_position # 438: 00000000 + # 43c: 00000000 + # 440: 00000000 + # 444: 00fef13f + # 448: 08000000 + # 44c: 00000000 + # 450: 00000000 + # 454: 00000000 + # 458: 00000000 + # 45c: 00000000 + # 460: 00000000 + # 464: 00000000 + # 468: 00000000 + # 46c: 00000000 + # 470: d80a0000 + # 474: 00000000 + # 478: 00000000 + # 47c: 00000000 + # 480: 00000000 + # 484: 00000000 + +# Function @ .irom0.text+0x488 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word[4] @ -0x10 + .balign 4 +.Lfunc006: movi a2, .Lstr001 # 488: 21ecff + addi sp, sp, -32 /* (local0) */ # 48b: 12c1e0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 48e: 0901 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 490: d921 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 492: c911 + s32i a14, sp, 12 /* a14 -> [(local3)] */ # 494: e931 + s32i a15, sp, 16 /* a15 -> [(local4)] */ # 496: f941 + mov a14, a3 /* arg1 */ # 498: ed03 + movi a15, gScanStruct # 49a: f1e8ff + movi a12, g_ic # 49d: c1e8ff + l32i a13, a15, 84 /* [.Ldata006] */ # 4a0: d22f15 + l32i a12, a12, 16 /* [g_ic+0x10] */ # 4a3: c84c + call0 printf # 4a5: 01ecffc0 + # 4a9: 0000 + movi a3, -17 /* 0xffffffef */ # 4ab: 6cf3 + movi a2, 0x3ff1fe00 # 4ad: 21e5ff + memw # 4b0: c02000 + l32i a0, a2, 0x26c /* [0x3ff2006c] */ # 4b3: 02229b + and a0, a0, a3 # 4b6: 300010 + memw # 4b9: c02000 + s32i a0, a2, 0x26c /* a0 -> [0x3ff2006c] */ # 4bc: 02629b + call0 chm_return_home_channel # 4bf: 01e7ffc0 + # 4c3: 0000 + call0 chm_release_lock # 4c5: 01e6ffc0 + # 4c9: 0000 + movi a2, .Label001 # 4cb: 21dfff + movi a6, 250 /* 0x000000fa */ # 4ce: 62a0fa + l8ui a5, a15, 93 /* [.Ldata009] */ # 4d1: 520f5d + movi a4, 0 /* 0x00000000 */ # 4d4: 0c04 + s32i a4, a15, 4 /* 0x00000000 -> [.Ldata001] */ # 4d6: 491f + and a5, a5, a6 # 4d8: 605510 + s8i a5, a15, 93 /* a5 -> [.Ldata009] */ # 4db: 524f5d + call0 os_timer_disarm # 4de: 01e1ffc0 + # 4e2: 0000 + movi a8, 0 /* 0x00000000 */ # 4e4: 0c08 + l32i a7, a12, 60 /* [[g_ic+0x10]+0x3c] */ # 4e6: 78fc + s32i a8, a15, 84 /* 0x00000000 -> [.Ldata006] */ # 4e8: 826f15 + bnei a7, 5, .Lbr025 # 4eb: 665717 + movi a4, g_ic # 4ee: 41d7ff + movi a2, 2 /* 0x00000002 */ # 4f1: 0c22 + l32i a4, a4, 0 /* [g_ic] */ # 4f3: 4804 + movi a3, 0 /* 0x00000000 */ # 4f5: 0c03 + addmi a4, a4, 1536 /* [g_ic]+0x600 */ # 4f7: 42d406 + l32i a4, a4, 140 /* [[g_ic]+0x68c] */ # 4fa: 422423 + call0 wDev_SetRxPolicy # 4fd: 01daffc0 + # 501: 0000 + j .Lbr026 # 503: c60200 +.Lbr025: movi a2, 0 /* 0x00000000 */ # 506: 0c02 + movi a3, 0 /* 0x00000000 */ # 508: 0c03 + movi a4, 0 /* 0x00000000 */ # 50a: 0c04 + call0 wDev_SetRxPolicy # 50c: 01d8ffc0 + # 510: 0000 +.Lbr026: beqz a13, .Lbr029 # 512: 165d04 + l32i a2, a15, 88 /* [.Ldata007] */ # 515: 222f16 + mov a3, a14 /* arg1 */ # 518: 3d0e + callx0 a13 /* [.Ldata006] */ # 51a: c00d00 + movi a13, g_ic # 51d: d1ccff + call0 .Lfunc011 # 520: 01d4ffc0 + # 524: 0000 + l32i a0, a13, 16 /* [g_ic+0x10] */ # 526: 084d + l8ui a0, a0, 184 /* [[g_ic+0x10]+0xb8] */ # 528: 0200b8 + beqi a0, 1, .Lbr027 # 52b: 261002 + bnei a0, 3, .Lbr029 # 52e: 663029 +.Lbr027: bnez a14, .Lbr029 # 531: ec6e + addi a13, a12, 4 /* [g_ic+0x10]+0x4 */ # 533: 4bdc + mov a2, a13 /* [g_ic+0x10]+0x4 */ # 535: 2d0d + call0 os_timer_disarm # 537: 01cfffc0 + # 53b: 0000 + l32i a2, a12, 20 /* [[g_ic+0x10]+0x14] */ # 53d: 285c + bnez a2, .Lbr028 # 53f: ccb2 + mov a2, a13 /* [g_ic+0x10]+0x4 */ # 541: 2d0d + movi a3, cnx_connect_timeout # 543: 31c4ff + movi a4, 0 /* 0x00000000 */ # 546: 0c04 + call0 os_timer_setfn # 548: 01ccffc0 + # 54c: 0000 +.Lbr028: mov a2, a13 /* [g_ic+0x10]+0x4 */ # 54e: 2d0d + movi a3, 1000 /* 0x000003e8 */ # 550: 32a3e8 + movi a4, 0 /* 0x00000000 */ # 553: 0c04 + call0 os_timer_arm # 555: 01c9ffc0 + # 559: 0000 +.Lbr029: call0 pm_is_open # 55b: 01c9ffc0 + # 55f: 0000 + beqz a2, .Lbr030 # 561: 8c42 + call0 pm_force_scan_unlock # 563: 01c8ffc0 + # 567: 0000 +.Lbr030: l32i a12, sp, 4 /* [(local1)] */ # 569: c811 + l32i a13, sp, 8 /* [(local2)] */ # 56b: d821 + l32i a14, sp, 12 /* [(local3)] */ # 56d: e831 + l32i a15, sp, 16 /* [(local4)] */ # 56f: f841 + l32i a0, sp, 0 /* [(local0)] */ # 571: 0801 + addi sp, sp, 32 /* (top of frame) */ # 573: 12c120 + ret # 576: 0df0 + + .literal_position # 578: ac000000 + # 57c: 00000000 + # 580: 00000000 + +# Function @ .irom0.text+0x584 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global scan_add_bssid + .type scan_add_bssid, @function +scan_add_bssid: + movi a4, 6 /* 0x00000006 */ # 584: 0c64 + mov a3, a2 /* arg0 */ # 586: 3d02 + addi sp, sp, -16 /* (local0) */ # 588: 12c1f0 + movi a2, .Label003 # 58b: 21fbff + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 58e: 0901 + call0 memcpy # 590: 01fcffc0 + # 594: 0000 + movi a2, gScanStruct # 596: 21f9ff + movi a0, 1 /* 0x00000001 */ # 599: 0c10 + s8i a0, a2, 178 /* 0x01 -> [.Ldata013] */ # 59b: 0242b2 + l32i a0, sp, 0 /* [(local0)] */ # 59e: 0801 + addi sp, sp, 16 /* (top of frame) */ # 5a0: 12c110 + ret /* gScanStruct */ # 5a3: 0df0 + + .literal_position # 5a8: 00000000 + +# Function @ .irom0.text+0x5ac + .balign 4 + .global scan_remove_bssid + .type scan_remove_bssid, @function +scan_remove_bssid: + movi a3, gScanStruct # 5ac: 31ffff + movi a2, 0 /* 0x00000000 */ # 5af: 0c02 + s8i a2, a3, 178 /* 0x00 -> [.Ldata013] */ # 5b1: 2243b2 + ret /* 0x00000000 */ # 5b4: 0df0 + + .literal_position # 5b8: 00000000 + +# Function @ .irom0.text+0x5bc + .balign 4 + .global scan_hidden_ssid + .type scan_hidden_ssid, @function +scan_hidden_ssid: + movi a3, gScanStruct # 5bc: 31ffff + s8i a2, a3, 179 /* arg0 -> [.Ldata014] */ # 5bf: 2243b3 + ret /* arg0 */ # 5c2: 0df0 + + .literal_position # 5c4: 00000000 + # 5c8: 00000000 + # 5cc: 00000000 + +# Function @ .irom0.text+0x5d0 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 + .global scan_add_probe_ssid + .type scan_add_probe_ssid, @function +scan_add_probe_ssid: + addi sp, sp, -16 /* (local0) */ # 5d0: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 5d3: 0901 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 5d5: c911 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 5d7: d921 + mov a12, a2 /* arg0 */ # 5d9: cd02 + mov a13, a5 /* arg3 */ # 5db: dd05 + bgeui a2, 3, .Lbr032 # 5dd: f63221 + movi a0, gScanStruct # 5e0: 01f9ff + bnei a5, 1, .Lbr031 # 5e3: 661516 + mov a5, a0 /* gScanStruct */ # 5e6: 5d00 + addx8 a2, a2, a2 # 5e8: 2022b0 + addx4 a2, a2, a5 # 5eb: 5022a0 + s32i a4, a2, 96 # 5ee: 426218 + addi a2, a2, 100 # 5f1: 22c264 + call0 memcpy # 5f4: 01f6ffc0 + # 5f8: 0000 + movi a0, gScanStruct # 5fa: 01f3ff +.Lbr031: add a6, a12, a0 # 5fd: 0a6c + s8i a13, a6, 168 # 5ff: d246a8 +.Lbr032: l32i a12, sp, 4 /* [(local1)] */ # 602: c811 + l32i a13, sp, 8 /* [(local2)] */ # 604: d821 + l32i a0, sp, 0 /* [(local0)] */ # 606: 0801 + addi sp, sp, 16 /* (top of frame) */ # 608: 12c110 + ret # 60b: 0df0 + + .literal_position # 610: 00000000 + +# Function @ .irom0.text+0x614 + .balign 4 + .global scan_remove_probe_ssid + .type scan_remove_probe_ssid, @function +scan_remove_probe_ssid: + bgeui a2, 3, .Lbr033 # 614: f63212 + movi a3, 0 /* 0x00000000 */ # 617: 0c03 + movi a5, gScanStruct # 619: 51fdff + addx8 a4, a2, a2 # 61c: 2042b0 + addx4 a4, a4, a5 # 61f: 5044a0 + add a5, a2, a5 # 622: 5a52 + s8i a3, a5, 168 # 624: 3245a8 + s32i a3, a4, 96 # 627: 326418 +.Lbr033: ret /* arg0 */ # 62a: 0df0 + + .literal_position # 62c: 00000000 + # 630: 00000000 + # 634: 00000000 + # 638: 00000000 + # 63c: 00000000 + +# Function @ .irom0.text+0x640 +# Local variables/stack: +# (local0): word[4] @ -0x20 +# (local1): word @ -0x10 +# (local2): word[3] @ -0xc + .balign 4 +.Lfunc007: movi a6, g_ic # 640: 61fbff + addi sp, sp, -32 /* (local0) */ # 643: 12c1e0 + s32i a0, sp, 16 /* a0 -> [(local1)] */ # 646: 0941 + s32i a12, sp, 20 /* a12 -> [(local2)] */ # 648: c951 + movi a12, gScanStruct # 64a: c1f9ff + l32i a6, a6, 16 /* [g_ic+0x10] */ # 64d: 6846 + l8ui a0, a12, 170 /* [.Ldata011] */ # 64f: 020caa + l32i a6, a6, 0 /* [[g_ic+0x10]] */ # 652: 6806 + bgeui a0, 2, .Lbr036 # 654: f62016 +.Lbr034: add a7, a0, a12 # 657: ca70 + l8ui a7, a7, 168 # 659: 7207a8 + beqz a7, .Lbr035 # 65c: 8c37 + movi a3, 1 /* 0x00000001 */ # 65e: 0c13 + j .Lbr037 # 660: 060300 +.Lbr035: addi a0, a0, 1 # 663: 1b00 + extui a0, a0, 0, 8 # 665: 000074 + s8i a0, a12, 170 /* a0 -> [.Ldata011] */ # 668: 024caa + bnei a0, 2, .Lbr034 # 66b: 6620e8 +.Lbr036: movi a3, 0 /* 0x00000000 */ # 66e: 0c03 +.Lbr037: beqz a3, .Lbr040 # 670: 16f304 + add a3, a0, a12 # 673: ca30 + l8ui a3, a3, 168 # 675: 3203a8 + movi a5, ieee80211_addr_bcast # 678: 51efff + bnei a3, 2, .Lbr038 # 67b: 662317 + mov a4, a5 /* ieee80211_addr_bcast */ # 67e: 4d05 + movi a2, 0 /* 0x00000000 */ # 680: 0c02 + addi a3, a6, 41 /* [[g_ic+0x10]]+0x29 */ # 682: 32c629 + movi a7, 0 /* 0x00000000 */ # 685: 0c07 + movi a6, 1 /* 0x00000001 */ # 687: 0c16 + s32i a6, sp, 0 /* 0x00000001 -> [(local0)] */ # 689: 6901 + movi a6, 0 /* 0x00000000 */ # 68b: 0c06 + call0 ieee80211_send_probereq # 68d: 01eaffc0 + # 691: 0000 + j .Lbr039 # 693: 060900 +.Lbr038: bnei a3, 1, .Lbr039 # 696: 661321 + addx8 a7, a0, a0 # 699: 0070b0 + addx4 a7, a7, a12 # 69c: c077a0 + l32i a0, a7, 96 # 69f: 022718 + beqz a0, .Lbr039 # 6a2: 9c50 + mov a4, a5 /* ieee80211_addr_bcast */ # 6a4: 4d05 + movi a2, 0 /* 0x00000000 */ # 6a6: 0c02 + addi a3, a6, 41 /* [[g_ic+0x10]]+0x29 */ # 6a8: 32c629 + movi a8, 1 /* 0x00000001 */ # 6ab: 0c18 + addi a6, a7, 100 # 6ad: 62c764 + s32i a8, sp, 0 /* 0x00000001 -> [(local0)] */ # 6b0: 8901 + extui a7, a0, 0, 8 # 6b2: 007074 + call0 ieee80211_send_probereq # 6b5: 01e1ffc0 + # 6b9: 0000 +.Lbr039: l8ui a9, a12, 170 /* [.Ldata011] */ # 6bb: 920caa + addi a9, a9, 1 /* [.Ldata011]+0x1 */ # 6be: 1b99 + s8i a9, a12, 170 /* [.Ldata011]+0x1 -> [.Ldata011] */ # 6c0: 924caa +.Lbr040: l32i a12, sp, 20 /* [(local2)] */ # 6c3: c851 + l32i a0, sp, 16 /* [(local1)] */ # 6c5: 0841 + addi sp, sp, 32 /* (top of frame) */ # 6c7: 12c120 + ret # 6ca: 0df0 + + .literal_position # 6cc: 00000000 + # 6d0: 00000000 + # 6d4: 00000100 + # 6d8: 00080000 + # 6dc: 00800000 + +# Function @ .irom0.text+0x6e0 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word @ -0x8 +# (local3): word @ -0x4 + .balign 4 +.Lfunc008: movi a2, 13 /* 0x0000000d */ # 6e0: 0cd2 + movi a3, 0 /* 0x00000000 */ # 6e2: 0c03 + movi a8, 132 /* 0x00000084 */ # 6e4: 82a084 + movi a7, g_ic # 6e7: 71faff + movi a5, 255 /* 0x000000ff */ # 6ea: 52a0ff + movi a6, gScanStruct # 6ed: 61f7ff + addi sp, sp, -16 /* (local0) */ # 6f0: 12c1f0 + s32i a14, sp, 12 /* a14 -> [(local3)] */ # 6f3: e931 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 6f5: c911 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 6f7: d921 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 6f9: 0901 + l8ui a4, a6, 171 /* [.Ldata012] */ # 6fb: 4206ab + l8ui a0, a6, 92 /* [.Ldata008] */ # 6fe: 02065c + addx2 a13, a4, a4 # 701: 40d490 + sub a4, a4, a5 /* [.Ldata012]-0xff */ # 704: 5044c0 + addx4 a13, a13, a7 # 707: 70dda0 + add a13, a13, a8 # 70a: 8add + moveqz a13, a3, a4 # 70c: 40d383 + bltu a2, a0, .Lbr043 # 70f: 073239 + l32i a11, a7, 0x14c /* [g_ic+0x14c] */ # 712: b22753 + movi a9, 14 /* 0x0000000e */ # 715: 0ce9 + movi a2, 0x00010000 # 717: 21efff + movi a12, 0x00008000 # 71a: c1f0ff + l32i a14, a6, 4 /* [.Ldata001] */ # 71d: e816 + movi a10, 0x00000800 # 71f: a1eeff + and a12, a14, a12 # 722: c0ce10 + and a10, a14, a10 # 725: a0ae10 + and a14, a14, a2 # 728: 20ee10 +.Lbr041: addx2 a2, a0, a0 # 72b: 002090 + addx4 a2, a2, a7 # 72e: 7022a0 + l32i a5, a2, 132 # 731: 522221 + add a2, a2, a8 # 734: 8a22 + bbci a5, 0, .Lbr042 # 736: 076507 + bbci a5, 1, .Lbr042 # 739: 176504 + beqz a10, .Lbr045 # 73c: 9cba + bne a2, a11, .Lbr045 # 73e: b79219 +.Lbr042: addi a0, a0, 1 # 741: 1b00 + extui a0, a0, 0, 8 # 743: 000074 + s8i a0, a6, 92 /* a0 -> [.Ldata008] */ # 746: 02465c + bne a0, a9, .Lbr041 # 749: 9790de +.Lbr043: movi a2, 0 /* 0x00000000 */ # 74c: 0c02 +.Lbr044: l32i a12, sp, 4 /* [(local1)] */ # 74e: c811 + l32i a13, sp, 8 /* [(local2)] */ # 750: d821 + l32i a14, sp, 12 /* [(local3)] */ # 752: e831 + l32i a0, sp, 0 /* [(local0)] */ # 754: 0801 + addi sp, sp, 16 /* (top of frame) */ # 756: 12c110 + ret # 759: 0df0 +.Lbr045: beqz a12, .Lbr046 # 75b: 8c1c + bne a2, a13, .Lbr042 # 75d: d792e0 +.Lbr046: beqz a14, .Lbr047 # 760: 8c1e + bbsi a5, 9, .Lbr042 # 762: 97e5db +.Lbr047: addi a3, a0, 1 # 765: 1b30 + s8i a3, a6, 92 /* a3 -> [.Ldata008] */ # 767: 32465c + j .Lbr044 # 76a: 06f8ff + + .literal_position # 770: 00000000 + +# Function @ .irom0.text+0x774 + .balign 4 + .global scan_clear_channles + .type scan_clear_channles, @function +scan_clear_channles: + movi a4, 0 /* 0x00000000 */ # 774: 0c04 + movi a7, g_ic # 776: 71feff + movi a6, -3 /* 0xfffffffd */ # 779: 7cd6 + movi a5, 14 /* 0x0000000e */ # 77b: 0ce5 +.Lbr048: addi a8, a4, 1 # 77d: 1b84 + addx2 a3, a4, a4 # 77f: 403490 + addx4 a3, a3, a7 # 782: 7033a0 + l32i a2, a3, 132 # 785: 222321 + extui a4, a8, 0, 8 # 788: 804074 + and a2, a2, a6 # 78b: 602210 + s32i a2, a3, 132 # 78e: 226321 + bne a4, a5, .Lbr048 # 791: 5794e8 + ret # 794: 0df0 + + .balign 4 +# Function @ .irom0.text+0x798 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 +.Lfunc009: addi sp, sp, -16 /* (local0) */ # 798: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 79b: 0901 + call0 .Lfunc002 # 79d: 45a8ff + l32i a0, sp, 0 /* [(local0)] */ # 7a0: 0801 + addi sp, sp, 16 /* (top of frame) */ # 7a2: 12c110 + ret # 7a5: 0df0 + + .literal_position # 7a8: 00000000 + # 7ac: 00000000 + # 7b0: 00000000 + +# Function @ .irom0.text+0x7b4 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 +.Lfunc010: addi sp, sp, -16 /* (local0) */ # 7b4: 12c1f0 + movi a6, gScanStruct # 7b7: 61fcff + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 7ba: 0901 + l8ui a0, a6, 93 /* [.Ldata009] */ # 7bc: 02065d + addi a2, a6, 8 /* .Label001 */ # 7bf: 8b26 + bbci a0, 0, .Lbr051 # 7c1: 076024 + movi a3, 10 /* 0x0000000a */ # 7c4: 0ca3 + bnone a3, a0, .Lbr049 # 7c6: 07030c + movi a3, 0 /* 0x00000000 */ # 7c9: 0c03 + movi a4, 0 /* 0x00000000 */ # 7cb: 0c04 + call0 os_timer_arm # 7cd: 01f7ffc0 + # 7d1: 0000 + j .Lbr051 # 7d3: 860400 +.Lbr049: l32i a4, a6, 4 /* [.Ldata001] */ # 7d6: 4816 + bbci a4, 9, .Lbr050 # 7d8: 97640a + l32i a3, a6, 64 /* [.Ldata002] */ # 7db: 322610 + movi a4, 0 /* 0x00000000 */ # 7de: 0c04 + call0 os_timer_arm # 7e0: 01f4ffc0 + # 7e4: 0000 +.Lbr050: call0 .Lfunc002 # 7e6: c5a3ff +.Lbr051: l32i a0, sp, 0 /* [(local0)] */ # 7e9: 0801 + addi sp, sp, 16 /* (top of frame) */ # 7eb: 12c110 + ret # 7ee: 0df0 + + .literal_position # 7f0: 00000000 + +# Function @ .irom0.text+0x7f4 + .balign 4 + .global scan_set_desChan + .type scan_set_desChan, @function +scan_set_desChan: + movi a4, gScanStruct # 7f4: 41ffff + addi a3, a2, -1 /* arg0-0x1 */ # 7f7: 0b32 + s8i a3, a4, 171 /* arg0-0x1 -> [.Ldata012] */ # 7f9: 3244ab + ret /* arg0 */ # 7fc: 0df0 + + .literal_position # 800: 00000000 + +# Function @ .irom0.text+0x804 + .balign 4 + .global scan_get_type + .type scan_get_type, @function +scan_get_type: + movi a2, gScanStruct # 804: 21ffff + l32i a2, a2, 4 /* [.Ldata001] */ # 807: 2812 + ret /* [.Ldata001] */ # 809: 0df0 + + .literal_position # 80c: 00000000 + # 810: ffbfffff + +# Function @ .irom0.text+0x814 + .balign 4 + .global cannel_scan_connect_state + .type cannel_scan_connect_state, @function +cannel_scan_connect_state: + movi a4, g_ic # 814: 41feff + l32i a3, a4, 28 /* [g_ic+0x1c] */ # 817: 3874 + movi a2, 0xffffbfff # 819: 21fdff + bbci a3, 14, .Lbr052 # 81c: e76304 + and a2, a3, a2 # 81f: 202310 + s32i a2, a4, 28 /* a2 -> [g_ic+0x1c] */ # 822: 2974 +.Lbr052: ret # 824: 0df0 + + .literal_position # 828: 00000000 + # 82c: ffbfffff + # 830: 0c000000 + # 834: 00400000 + # 838: 00000000 + # 83c: 00000000 + +# Function @ .irom0.text+0x840 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global scan_connect_state + .type scan_connect_state, @function +scan_connect_state: + addi sp, sp, -16 /* (local0) */ # 840: 12c1f0 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 843: 0911 + l32i a0, a2, 0 /* [arg0] */ # 845: 0802 + movi a2, 1 /* 0x00000001 */ # 847: 0c12 + s32i a0, sp, 0 /* [arg0] -> [(local0)] */ # 849: 0901 + call0 ppCheckTxIdle # 84b: 01fbffc0 + # 84f: 0000 + movi a4, g_ic # 851: 41f5ff + movi a5, 0x00004000 # 854: 51f8ff + l32i a0, a4, 28 /* [g_ic+0x1c] */ # 857: 0874 + bnez a2, .Lbr053 # 859: dcd2 + movi a3, 0xffffbfff # 85b: 31f4ff + movi a2, .Label004 # 85e: 21f4ff + and a3, a0, a3 # 861: 303010 + s32i a3, a4, 28 /* a3 -> [g_ic+0x1c] */ # 864: 3974 + call0 ets_printf # 866: 01f5ffc0 + # 86a: 0000 + l32i a2, sp, 0 /* [(local0)] */ # 86c: 2801 + movi a3, 3 /* 0x00000003 */ # 86e: 0c33 + movi a4, 0 /* 0x00000000 */ # 870: 0c04 + movi a5, 0 /* 0x00000000 */ # 872: 0c05 + call0 scan_start # 874: 050000 + j .Lbr054 # 877: 060100 +.Lbr053: or a5, a0, a5 # 87a: 505020 + s32i a5, a4, 28 /* a5 -> [g_ic+0x1c] */ # 87d: 5974 +.Lbr054: l32i a0, sp, 4 /* [(local1)] */ # 87f: 0811 + addi sp, sp, 16 /* (top of frame) */ # 881: 12c110 + ret # 884: 0df0 + + .balign 4 +# Function @ .irom0.text+0x888 + .balign 4 + .global scan_check_hidden + .type scan_check_hidden, @function +scan_check_hidden: + l8ui a6, a2, 1 /* [arg0+0x1] */ # 888: 620201 + movi a5, 0 /* 0x00000000 */ # 88b: 0c05 + beqz a6, .Lbr057 # 88d: 9c16 +.Lbr055: add a3, a2, a5 # 88f: 5a32 + l8ui a3, a3, 2 # 891: 320302 + addi a5, a5, 1 # 894: 1b55 + beqz a3, .Lbr056 # 896: 8c23 + movi a2, 0 /* 0x00000000 */ # 898: 0c02 + ret /* 0x00000000 */ # 89a: 0df0 +.Lbr056: extui a5, a5, 0, 8 # 89c: 505074 + bne a6, a5, .Lbr055 # 89f: 5796ec +.Lbr057: movi a2, 1 /* 0x00000001 */ # 8a2: 0c12 + ret /* 0x00000001 */ # 8a4: 0df0 + + .literal_position # 8a8: 00000000 + # 8ac: 00000000 + # 8b0: 00000000 + # 8b4: 00000000 + # 8b8: 00000000 + # 8bc: 00000000 + # 8c0: 00000000 + # 8c4: 00000000 + # 8c8: 00000000 + # 8cc: 10000000 + # 8d0: 00000000 + # 8d4: 00000000 + # 8d8: 00000000 + # 8dc: 00000000 + # 8e0: 00000000 + # 8e4: 00000000 + # 8e8: 00000000 + # 8ec: 00000000 + # 8f0: 00000000 + # 8f4: 00000000 + # 8f8: 00000000 + # 8fc: 00000000 + # 900: 00000000 + # 904: 00000000 + +# Function @ .irom0.text+0x908 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word @ -0x10 +# (local5): word @ -0xc +# (local6): word @ -0x8 +# (local7): word @ -0x4 + .balign 4 + .global scan_profile_check + .type scan_profile_check, @function +scan_profile_check: + addi sp, sp, -32 /* (local0) */ # 908: 12c1e0 + s32i a0, sp, 24 /* a0 -> [(local6)] */ # 90b: 0961 + movi a0, g_ic # 90d: 01e6ff + s32i a12, sp, 28 /* a12 -> [(local7)] */ # 910: c971 + l32i a4, a0, 16 /* [g_ic+0x10] */ # 912: 4840 + mov a12, a3 /* arg1 */ # 914: cd03 + l32i a3, a4, 72 /* [[g_ic+0x10]+0x48] */ # 916: 322412 + movi a5, -17 /* 0xffffffef */ # 919: 6cf5 + and a3, a3, a5 # 91b: 503310 + s32i a3, a4, 72 /* a3 -> [[g_ic+0x10]+0x48] */ # 91e: 326412 + l8ui a0, a0, 24 /* [g_ic+0x18] */ # 921: 020018 + s32i a2, sp, 16 /* arg0 -> [(local4)] */ # 924: 2941 + addi a0, a0, -2 /* [g_ic+0x18]-0x2 */ # 926: 02c0fe + beqz a0, .Lbr063 # 929: 16d00c + l32i a2, a12, 32 /* [arg1+0x20] */ # 92c: 288c + call0 scan_check_hidden # 92e: 050000 + movi a0, g_ic+0x201 # 931: 01deff + bnez a2, .Lbr059 # 934: fcf2 + s32i a0, sp, 8 /* g_ic+0x201 -> [(local2)] */ # 936: 0921 + l32i a3, a12, 32 /* [arg1+0x20] */ # 938: 388c + addi a5, a0, -29 /* g_ic+0x1e4 */ # 93a: 52c0e3 + l8ui a4, a5, 3 /* [g_ic+0x1e7] */ # 93d: 420503 + l8ui a6, a5, 2 /* [g_ic+0x1e6] */ # 940: 620502 + slli a4, a4, 8 # 943: 804411 + or a4, a4, a6 # 946: 604420 + slli a4, a4, 8 # 949: 804411 + l8ui a6, a5, 1 /* [g_ic+0x1e5] */ # 94c: 620501 + l8ui a5, a5, 0 /* [g_ic+0x1e4] */ # 94f: 520500 + or a4, a4, a6 # 952: 604420 + l8ui a6, a3, 1 /* [[arg1+0x20]+0x1] */ # 955: 620301 + slli a4, a4, 8 # 958: 804411 + or a4, a4, a5 # 95b: 504420 + bne a4, a6, .Lbr058 # 95e: 679410 + addi a3, a3, 2 /* [arg1+0x20]+0x2 */ # 961: 2b33 + mov a2, a0 /* g_ic+0x201 */ # 963: 2d00 + addi a2, a2, -25 /* g_ic+0x1e8 */ # 965: 22c2e7 + call0 memcmp # 968: 01deffc0 + # 96c: 0000 + l32i a0, sp, 8 /* [(local2)] */ # 96e: 0821 + beqz a2, .Lbr059 # 970: 8c32 +.Lbr058: movi a2, 0 /* 0x00000000 */ # 972: 0c02 + j .Lbr064 # 974: 062100 +.Lbr059: l8ui a3, a0, 128 # 977: 320080 + bnei a3, 1, .Lbr060 # 97a: 661319 + s32i a0, sp, 8 /* a0 -> [(local2)] */ # 97d: 0921 + beqz a3, .Lbr058 # 97f: 16f3fe + movi a2, g_ic+0x282 # 982: 21cbff + l32i a3, sp, 16 /* [(local4)] */ # 985: 3841 + movi a4, 6 /* 0x00000006 */ # 987: 0c64 + addi a3, a3, 16 /* [(local4)]+0x10 */ # 989: 32c310 + call0 memcmp # 98c: 01d6ffc0 + # 990: 0000 + l32i a0, sp, 8 /* [(local2)] */ # 992: 0821 + bnez a2, .Lbr058 # 994: 56a2fd +.Lbr060: l16ui a4, a12, 2 /* [arg1+0x2] */ # 997: 421c01 + movi a3, 240 /* 0x000000f0 */ # 99a: 32a0f0 + bbsi a4, 1, .Lbr058 # 99d: 17e4d1 + movi a2, gScanStruct # 9a0: 21c5ff + movi a8, 0 /* 0x00000000 */ # 9a3: 0c08 + s8i a8, a0, 12 # 9a5: 82400c + s8i a8, a0, 11 # 9a8: 82400b + s8i a8, a0, 10 # 9ab: 82400a + l8ui a7, a2, 196 /* [auth_type] */ # 9ae: 7202c4 + s8i a8, a0, 9 # 9b1: 824009 + extui a7, a7, 0, 4 # 9b4: 707034 + slli a8, a7, 4 # 9b7: c08711 + or a7, a7, a8 # 9ba: 807720 + s8i a7, a2, 196 /* a7 -> [auth_type] */ # 9bd: 7242c4 + movi a8, 1 /* 0x00000001 */ # 9c0: 0c18 + s8i a8, a0, 8 # 9c2: 824008 + s8i a8, a0, 7 # 9c5: 824007 + l32i a5, a12, 52 /* [arg1+0x34] */ # 9c8: 58dc + s32i a8, sp, 20 /* 0x00000001 -> [(local5)] */ # 9ca: 8951 + beqz a5, .Lbr065 # 9cc: bc55 + movi a10, g_ic # 9ce: a1baff + l32i a10, a10, 16 /* [g_ic+0x10] */ # 9d1: a84a + mov a2, a12 /* arg1 */ # 9d3: 2d0c + l32i a9, a10, 72 /* [[g_ic+0x10]+0x48] */ # 9d5: 922a12 + movi a11, 16 /* 0x00000010 */ # 9d8: 1c0b + or a9, a9, a11 # 9da: b09920 + s32i a9, a10, 72 /* a9 -> [[g_ic+0x10]+0x48] */ # 9dd: 926a12 + call0 ieee80211_parse_rsn # 9e0: 01c2ffc0 + # 9e4: 0000 + movi a2, gScanStruct # 9e6: 21b5ff +.Lbr061: l8ui a0, a2, 196 /* [auth_type] */ # 9e9: 0202c4 + movi a3, 240 /* 0x000000f0 */ # 9ec: 32a0f0 + and a0, a0, a3 # 9ef: 300010 + l32i a3, sp, 20 /* [(local5)] */ # 9f2: 3851 + or a0, a0, a3 # 9f4: 300020 +.Lbr062: s8i a0, a2, 196 /* a0 -> [auth_type] */ # 9f7: 0242c4 +.Lbr063: movi a2, 1 /* 0x00000001 */ # 9fa: 0c12 +.Lbr064: l32i a12, sp, 28 /* [(local7)] */ # 9fc: c871 + l32i a0, sp, 24 /* [(local6)] */ # 9fe: 0861 + addi sp, sp, 32 /* (top of frame) */ # a00: 12c120 + ret # a03: 0df0 +.Lbr065: l32i a5, a12, 48 /* [arg1+0x30] */ # a05: 58cc + beqz a5, .Lbr066 # a07: ac05 + movi a7, g_ic # a09: 71adff + l32i a7, a7, 16 /* [g_ic+0x10] */ # a0c: 7847 + mov a2, a12 /* arg1 */ # a0e: 2d0c + l32i a6, a7, 72 /* [[g_ic+0x10]+0x48] */ # a10: 622712 + movi a8, 16 /* 0x00000010 */ # a13: 1c08 + or a6, a6, a8 # a15: 806620 + s32i a6, a7, 72 /* a6 -> [[g_ic+0x10]+0x48] */ # a18: 626712 + call0 ieee80211_parse_wpa # a1b: 01b4ffc0 + # a1f: 0000 + movi a2, gScanStruct # a21: 21a8ff + movi a8, 2 /* 0x00000002 */ # a24: 0c28 + s32i a8, sp, 20 /* 0x00000002 -> [(local5)] */ # a26: 8951 + j .Lbr061 # a28: 46efff +.Lbr066: l16ui a9, a12, 2 /* [arg1+0x2] */ # a2b: 921c01 + s32i a0, sp, 8 /* a0 -> [(local2)] */ # a2e: 0921 + bbci a9, 4, .Lbr067 # a30: 476934 + movi a12, g_ic+0x20f # a33: c1a5ff + mov a2, a12 /* g_ic+0x20f */ # a36: 2d0c + call0 strlen # a38: 01aeffc0 + # a3c: 0000 + s32i a12, sp, 12 /* g_ic+0x20f -> [(local3)] */ # a3e: c931 + s32i a2, sp, 0 /* a2 -> [(local0)] */ # a40: 2901 + mov a3, sp /* (local0) */ # a42: 3d01 + mov a2, a12 /* g_ic+0x20f */ # a44: 2d0c + call0 wpa_config_parse_string # a46: 01abffc0 + # a4a: 0000 + mov a12, a2 # a4c: cd02 + bnez a2, .Lbr068 # a4e: dcc2 + movi a2, .Lstr002 # a50: 219fff + l32i a3, sp, 12 /* [(local3)] */ # a53: 3831 + call0 printf # a55: 01a8ffc0 + # a59: 0000 + movi a11, g_ic # a5b: b19dff + l32i a11, a11, 16 /* [g_ic+0x10] */ # a5e: b84b + movi a10, 2 /* 0x00000002 */ # a60: 0c2a + s8i a10, a11, 186 /* 0x02 -> [[g_ic+0x10]+0xba] */ # a62: a24bba + j .Lbr058 # a65: 46c2ff +.Lbr067: and a0, a7, a3 # a68: 300710 + j .Lbr062 # a6b: 06e2ff +.Lbr068: l32i a0, sp, 0 /* [(local0)] */ # a6e: 0801 + bnei a0, 5, .Lbr071 # a70: 66504b + movi a0, 7 /* 0x00000007 */ # a73: 0c70 +.Lbr069: l32i a2, sp, 8 /* [(local2)] */ # a75: 2821 + s8i a0, a2, 9 /* a0 -> [[(local2)]+0x9] */ # a77: 024209 +.Lbr070: movi a3, 16 /* 0x00000010 */ # a7a: 1c03 + movi a2, g_ic+0x271 # a7c: 2196ff + s32i a2, sp, 4 /* g_ic+0x271 -> [(local1)] */ # a7f: 2911 + call0 bzero # a81: 019effc0 + # a85: 0000 + l32i a2, sp, 4 /* [(local1)] */ # a87: 2811 + mov a3, a12 # a89: 3d0c + l32i a4, sp, 0 /* [(local0)] */ # a8b: 4801 + call0 memcpy # a8d: 019cffc0 + # a91: 0000 + mov a2, a12 # a93: 2d0c + call0 free # a95: 019bffc0 + # a99: 0000 + movi a6, g_ic # a9b: 618fff + movi a3, 3 /* 0x00000003 */ # a9e: 0c33 + l32i a6, a6, 16 /* [g_ic+0x10] */ # aa0: 6846 + movi a2, gScanStruct # aa2: 218eff + l32i a5, a6, 72 /* [[g_ic+0x10]+0x48] */ # aa5: 522612 + movi a7, 16 /* 0x00000010 */ # aa8: 1c07 + or a5, a5, a7 # aaa: 705520 + s32i a5, a6, 72 /* a5 -> [[g_ic+0x10]+0x48] */ # aad: 526612 + l8ui a0, a2, 196 /* [auth_type] */ # ab0: 0202c4 + movi a4, 240 /* 0x000000f0 */ # ab3: 42a0f0 + and a0, a0, a4 # ab6: 400010 + or a0, a0, a3 # ab9: 300020 + j .Lbr062 # abc: c6cdff +.Lbr071: movi a7, 13 /* 0x0000000d */ # abf: 0cd7 + bne a0, a7, .Lbr070 # ac1: 7790b5 + movi a0, 8 /* 0x00000008 */ # ac4: 0c80 + j .Lbr069 # ac6: c6eaff + + .literal_position # acc: 00000000 + # ad0: 00000000 + # ad4: 00000000 + +# Function @ .irom0.text+0xad8 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 +.Lfunc011: addi sp, sp, -16 /* (local0) */ # ad8: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # adb: 0901 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # add: d921 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # adf: c911 + movi a12, g_ic # ae1: c1fbff + movi a13, g_ic+0x180 # ae4: d1faff +.Lbr072: l32i a2, a12, 0x180 /* [g_ic+0x180] */ # ae7: 222c60 + beqz a2, .Lbr074 # aea: 9c12 + l32i a0, a2, 0 /* [[g_ic+0x180]] */ # aec: 0802 + s32i a0, a12, 0x180 /* [[g_ic+0x180]] -> [g_ic+0x180] */ # aee: 026c60 + bnez a0, .Lbr073 # af1: cc10 + s32i a13, a12, 0x184 /* g_ic+0x180 -> [g_ic+0x184] */ # af3: d26c61 +.Lbr073: call0 vPortFree # af6: 01f7ffc0 + # afa: 0000 + j .Lbr072 # afc: c6f9ff +.Lbr074: l32i a12, sp, 4 /* [(local1)] */ # aff: c811 + l32i a13, sp, 8 /* [(local2)] */ # b01: d821 + l32i a0, sp, 0 /* [(local0)] */ # b03: 0801 + addi sp, sp, 16 /* (top of frame) */ # b05: 12c110 + ret /* [g_ic+0x180] */ # b08: 0df0 + + .literal_position # b0c: 00000000 + # b10: 00000000 + +# Function @ .irom0.text+0xb14 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 +.Lfunc012: addi sp, sp, -16 /* (local0) */ # b14: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # b17: 0901 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # b19: d921 + movi a13, g_ic # b1b: d1fcff + s32i a12, sp, 4 /* a12 -> [(local1)] */ # b1e: c911 + l32i a13, a13, 0x180 /* [g_ic+0x180] */ # b20: d22d60 + mov a12, a2 /* arg0 */ # b23: cd02 + beqz a13, .Lbr077 # b25: 9c6d +.Lbr075: mov a3, a12 /* arg0 */ # b27: 3d0c + addi a2, a13, 4 # b29: 4b2d + movi a4, 6 /* 0x00000006 */ # b2b: 0c64 + call0 memcmp # b2d: 01f8ffc0 + # b31: 0000 + bnez a2, .Lbr076 # b33: cc32 + movi a2, 1 /* 0x00000001 */ # b35: 0c12 + j .Lbr078 # b37: 860100 +.Lbr076: l32i a13, a13, 0 # b3a: d80d + bnez a13, .Lbr075 # b3c: 567dfe +.Lbr077: movi a2, 0 /* 0x00000000 */ # b3f: 0c02 +.Lbr078: l32i a12, sp, 4 /* [(local1)] */ # b41: c811 + l32i a13, sp, 8 /* [(local2)] */ # b43: d821 + l32i a0, sp, 0 /* [(local0)] */ # b45: 0801 + addi sp, sp, 16 /* (top of frame) */ # b47: 12c110 + ret # b4a: 0df0 + + .literal_position # b4c: 00000000 + # b50: 00feef3f + # b54: 00000000 + # b58: 00000000 + # b5c: 00000000 + # b60: 00000000 + # b64: 00000000 + # b68: 00000000 + # b6c: 00000000 + # b70: 00000000 + # b74: 00000000 + # b78: 00000000 + +# Function @ .irom0.text+0xb7c +# Local variables/stack: +# (local0): word[3] @ -0x50 +# (local1): word[5] @ -0x44 +# (local2): word[3] @ -0x30 +# (local3): word[5] @ -0x24 +# (local4): word @ -0x10 +# (local5): word @ -0xc +# (local6): word @ -0x8 +# (local7): word @ -0x4 + .balign 4 +.Lfunc013: addi sp, sp, -80 /* (local0) */ # b7c: 12c1b0 + s32i a0, sp, 64 /* a0 -> [(local4)] */ # b7f: 026110 + s32i a14, sp, 76 /* a14 -> [(local7)] */ # b82: e26113 + s32i a12, sp, 68 /* a12 -> [(local5)] */ # b85: c26111 + s32i a13, sp, 72 /* a13 -> [(local6)] */ # b88: d26112 + mov a12, a3 /* arg1 */ # b8b: cd03 + mov a13, a2 /* arg0 */ # b8d: dd02 + mov a14, a4 /* arg2 */ # b8f: ed04 + movi a2, 52 /* 0x00000034 */ # b91: 3c42 + call0 zalloc # b93: 01f3ffc0 + # b97: 0000 + addi a3, a13, 10 /* arg0+0xa */ # b99: ab3d + movi a4, 6 /* 0x00000006 */ # b9b: 0c64 + mov a13, a2 # b9d: dd02 + addi a2, a2, 4 # b9f: 4b22 + call0 memcpy # ba1: 01f0ffc0 + # ba5: 0000 + l32i a2, a12, 32 /* [arg1+0x20] */ # ba7: 288c + call0 scan_check_hidden # ba9: 050000 + movi a0, 1 /* 0x00000001 */ # bac: 0c10 + bnei a2, 1, .Lbr079 # bae: 661205 + s8i a0, a13, 48 # bb1: 024d30 + j .Lbr080 # bb4: c60400 +.Lbr079: movi a5, 0 /* 0x00000000 */ # bb7: 0c05 + s8i a5, a13, 48 # bb9: 524d30 + l32i a4, a12, 32 /* [arg1+0x20] */ # bbc: 488c + addi a2, a13, 10 # bbe: ab2d + addi a3, a4, 2 /* [arg1+0x20]+0x2 */ # bc0: 2b34 + l8ui a4, a4, 1 /* [[arg1+0x20]+0x1] */ # bc2: 420401 + call0 strncpy # bc5: 01e8ffc0 + # bc9: 0000 +.Lbr080: l8ui a6, a12, 0 /* [arg1] */ # bcb: 620c00 + s8i a6, a13, 42 # bce: 624d2a + s8i a14, a13, 43 # bd1: e24d2b + l32i a2, a12, 48 /* [arg1+0x30] */ # bd4: 28cc + movi a14, 0 /* 0x00000000 */ # bd6: 0c0e + beqz a2, .Lbr081 # bd8: 9c22 + l8ui a3, a2, 1 /* [[arg1+0x30]+0x1] */ # bda: 320201 + mov a4, sp /* (local0) */ # bdd: 4d01 + addi a3, a3, 2 /* [[arg1+0x30]+0x1]+0x2 */ # bdf: 2b33 + call0 wpa_parse_wpa_ie # be1: 01e2ffc0 + # be5: 0000 + l32i a14, sp, 0 /* [(local0)] */ # be7: e801 + l32i a0, sp, 12 /* [(local1)] */ # be9: 0831 + j .Lbr082 # beb: 460000 +.Lbr081: movi a0, 0 /* 0x00000000 */ # bee: 0c00 +.Lbr082: l32i a2, a12, 52 /* [arg1+0x34] */ # bf0: 28dc + beqz a2, .Lbr083 # bf2: 9c32 + l8ui a3, a2, 1 /* [[arg1+0x34]+0x1] */ # bf4: 320201 + addi a4, sp, 32 /* (local2) */ # bf7: 42c120 + addi a3, a3, 2 /* [[arg1+0x34]+0x1]+0x2 */ # bfa: 2b33 + call0 wpa_parse_wpa_ie # bfc: 01ddffc0 + # c00: 0000 + l32i a4, sp, 32 /* [(local2)] */ # c02: 4881 + l32i a0, sp, 44 /* [(local3)] */ # c04: 08b1 + or a14, a4, a14 # c06: e0e420 +.Lbr083: beqz a0, .Lbr088 # c09: 16a007 + beqi a0, 2, .Lbr088 # c0c: 262077 +.Lbr084: movi a0, NMIIrqIsOn # c0f: 01cfff + movi a14, -32 /* 0xffffffe0 */ # c12: 6c0e + l8ui a5, a0, 0 /* [NMIIrqIsOn] */ # c14: 520000 + movi a12, 0x3feffe00 # c17: c1ceff + bnez a5, .Lbr086 # c1a: dcf5 + call0 vPortEnterCritical # c1c: 01d6ffc0 + # c20: 0000 +.Lbr085: memw # c22: c02000 + l32i a7, a12, 0x200 /* [0x3ff00000] */ # c25: 722c80 + and a7, a7, a14 # c28: e07710 + memw # c2b: c02000 + s32i a7, a12, 0x200 /* a7 -> [0x3ff00000] */ # c2e: 726c80 + memw # c31: c02000 + l32i a6, a12, 0x200 /* [0x3ff00000] */ # c34: 622c80 + bbsi a6, 0, .Lbr085 # c37: 07e6e7 + movi a0, NMIIrqIsOn # c3a: 01c6ff +.Lbr086: movi a3, 0 /* 0x00000000 */ # c3d: 0c03 + movi a10, gScanStruct # c3f: a1c6ff + movi a11, g_ic # c42: b1c6ff + l16ui a9, a10, 198 /* [scannum] */ # c45: 921a63 + l32i a2, a11, 0x184 /* [g_ic+0x184] */ # c48: 222b61 + addi a9, a9, 1 /* [scannum]+0x1 */ # c4b: 1b99 + s32i a3, a13, 0 # c4d: 390d + s32i a13, a2, 0 /* a13 -> [[g_ic+0x184]] */ # c4f: d902 + s32i a13, a11, 0x184 /* a13 -> [g_ic+0x184] */ # c51: d26b61 + l8ui a8, a0, 0 /* [NMIIrqIsOn] */ # c54: 820000 + s16i a9, a10, 198 /* [scannum]+0x1 -> [scannum] */ # c57: 925a63 + bnez a8, .Lbr087 # c5a: dc88 + memw # c5c: c02000 + l32i a4, a12, 0x200 /* [0x3ff00000] */ # c5f: 422c80 + movi a5, 1 /* 0x00000001 */ # c62: 0c15 + and a4, a4, a14 # c64: e04410 + or a4, a4, a5 # c67: 504420 + memw # c6a: c02000 + s32i a4, a12, 0x200 /* a4 -> [0x3ff00000] */ # c6d: 426c80 + call0 vPortExitCritical # c70: 01c2ffc0 + # c74: 0000 +.Lbr087: l32i a12, sp, 68 /* [(local5)] */ # c76: c22111 + l32i a13, sp, 72 /* [(local6)] */ # c79: d22112 + l32i a14, sp, 76 /* [(local7)] */ # c7c: e22113 + l32i a0, sp, 64 /* [(local4)] */ # c7f: 022110 + addi sp, sp, 80 /* (top of frame) */ # c82: 12c150 + ret # c85: 0df0 +.Lbr088: beqz a14, .Lbr091 # c87: 9c1e + beqi a14, 1, .Lbr092 # c89: 261e1a + beqi a14, 2, .Lbr093 # c8c: 262e1c + beqi a14, 3, .Lbr089 # c8f: 263e02 + j .Lbr084 # c92: 46deff +.Lbr089: movi a0, 4 /* 0x00000004 */ # c95: 0c40 +.Lbr090: s32i a0, a13, 44 # c97: 09bd + j .Lbr084 # c99: 86dcff +.Lbr091: l16ui a5, a12, 2 /* [arg1+0x2] */ # c9c: 521c01 + bbci a5, 4, .Lbr094 # c9f: 47650e + movi a0, 1 /* 0x00000001 */ # ca2: 0c10 + j .Lbr090 # ca4: c6fbff +.Lbr092: movi a0, 2 /* 0x00000002 */ # ca7: 0c20 + j .Lbr090 # ca9: 86faff +.Lbr093: movi a0, 3 /* 0x00000003 */ # cac: 0c30 + j .Lbr090 # cae: 46f9ff +.Lbr094: movi a0, 0 /* 0x00000000 */ # cb1: 0c00 + j .Lbr090 # cb3: 06f8ff + + .literal_position # cb8: 00000000 + # cbc: ac000000 + # cc0: ac000000 + # cc4: 00000000 + # cc8: 00000000 + # ccc: 00000000 + # cd0: 00000000 + # cd4: 00000000 + # cd8: 00000000 + # cdc: ac000000 + # ce0: 00000000 + # ce4: 00000000 + # ce8: 00000000 + # cec: 00000000 + # cf0: 00000000 + # cf4: 00000000 + # cf8: 00000000 + # cfc: 00000000 + # d00: 00000000 + # d04: 00000000 + # d08: 00000000 + # d0c: 00000000 + # d10: 00000000 + # d14: 00000000 + # d18: 00000000 + # d1c: 00000000 + # d20: 00000000 + # d24: 00000000 + # d28: 00000000 + # d2c: 00000000 + # d30: 00000000 + # d34: 00000000 + # d38: 00000000 + +# Function @ .irom0.text+0xd3c +# Local variables/stack: +# (local0): word @ -0x30 +# (local1): word @ -0x2c +# (local2): word @ -0x28 +# (local3): word @ -0x24 +# (local4): word @ -0x20 +# (local5): word @ -0x1c +# (local6): word @ -0x18 +# (local7): word @ -0x14 +# (local8): word @ -0x10 +# (local9): word @ -0xc +# (local10): word @ -0x8 +# (local11): word @ -0x4 + .balign 4 + .global scan_parse_beacon + .type scan_parse_beacon, @function +scan_parse_beacon: + addi sp, sp, -96 /* (FP)-0x60 */ # d3c: 12c1a0 + s32i a2, sp, 60 /* arg0 -> [(local3)] */ # d3f: 29f1 + s32i a4, sp, 68 /* arg2 -> [(local5)] */ # d41: 426111 + s32i a0, sp, 72 /* a0 -> [(local6)] */ # d44: 026112 + s32i a14, sp, 84 /* a14 -> [(local9)] */ # d47: e26115 + s32i a13, sp, 80 /* a13 -> [(local8)] */ # d4a: d26114 + s32i a12, sp, 76 /* a12 -> [(local7)] */ # d4d: c26113 + s32i a15, sp, 88 /* a15 -> [(local10)] */ # d50: f26116 + mov a12, a3 /* arg1 */ # d53: cd03 + movi a15, gScanStruct # d55: f1d8ff + l32i a13, a2, 32 /* [arg0+0x20] */ # d58: d882 + l32i a14, a2, 16 /* [arg0+0x10] */ # d5a: e842 + l32i a13, a13, 8 /* [[arg0+0x20]+0x8] */ # d5c: d82d + l8ui a14, a14, 0 /* [[arg0+0x10]] */ # d5e: e20e00 + l8ui a0, a15, 179 /* [.Ldata014] */ # d61: 020fb3 + slli a14, a14, 24 # d64: 80ee01 + srai a14, a14, 24 # d67: e0e831 + bnez a0, .Lbr095 # d6a: ccc0 + l32i a0, a3, 32 /* [arg1+0x20] */ # d6c: 0883 + l8ui a2, a0, 1 /* [[arg1+0x20]+0x1] */ # d6e: 220001 + l8ui a3, a0, 2 /* [[arg1+0x20]+0x2] */ # d71: 320002 + beqz a2, .Lbr102 # d74: 165212 + beqz a3, .Lbr102 # d77: 162312 +.Lbr095: mov a2, a13 /* [[arg0+0x20]+0x8] */ # d7a: 2d0d + call0 ieee80211_chan2ieee # d7c: 01d9ffc0 + # d80: 0000 + l8ui a4, a12, 0 /* [arg1] */ # d82: 420c00 + s32i a14, sp, 56 /* a14 -> [(local2)] */ # d85: e9e1 + beq a2, a4, .Lbr096 # d87: 471204 + movi a2, -1 /* 0xffffffff */ # d8a: 7cf2 + j .Lbr103 # d8c: c64300 +.Lbr096: l32i a14, sp, 60 /* [(local3)] */ # d8f: e8f1 + l32i a14, a14, 4 /* [[(local3)]+0x4] */ # d91: e81e + l32i a5, a15, 84 /* [.Ldata006] */ # d93: 522f15 + l32i a14, a14, 4 /* [[[(local3)]+0x4]+0x4] */ # d96: e81e + beqz a5, .Lbr098 # d98: 166507 + l32i a0, a15, 88 /* [.Ldata007] */ # d9b: 022f16 + beqz a0, .Lbr098 # d9e: 160007 + addi a2, a14, 10 /* [[[(local3)]+0x4]+0x4]+0xa */ # da1: ab2e + s32i a2, sp, 48 /* [[[(local3)]+0x4]+0x4]+0xa -> [(local0)] */ # da3: 29c1 + call0 .Lfunc012 # da5: c5d6ff + bnez a2, .Lbr098 # da8: 566206 + l8ui a2, a15, 93 /* [.Ldata009] */ # dab: 220f5d + bbci a2, 0, .Lbr098 # dae: 076260 + movi a0, .Label003 # db1: 01c2ff + l8ui a6, a15, 169 /* [.Ldata010] */ # db4: 620fa9 + addi a2, a0, -36 /* .bss+0x88 */ # db7: 22c0dc + addi a3, a6, -1 /* [.Ldata010]-0x1 */ # dba: 0b36 + bnez a3, .Lbr110 # dbc: 56e320 + l8ui a4, a15, 178 /* [.Ldata013] */ # dbf: 420fb2 + addi a4, a4, -1 /* [.Ldata013]-0x1 */ # dc2: 0b44 + bnez a4, .Lbr111 # dc4: 566423 + l32i a4, a12, 32 /* [arg1+0x20] */ # dc7: 488c + addi a3, a4, 2 /* [arg1+0x20]+0x2 */ # dc9: 2b34 + l8ui a4, a4, 1 /* [[arg1+0x20]+0x1] */ # dcb: 420401 + call0 strncmp # dce: 01c5ffc0 + # dd2: 0000 + bnez a2, .Lbr098 # dd4: fca2 + movi a2, .Label003 # dd6: 21baff + l32i a3, sp, 48 /* [(local0)] */ # dd9: 38c1 + movi a4, 6 /* 0x00000006 */ # ddb: 0c64 + call0 memcmp # ddd: 01c2ffc0 + # de1: 0000 + bnez a2, .Lbr098 # de3: ecb2 + mov a2, a14 /* [[[(local3)]+0x4]+0x4] */ # de5: 2d0e + mov a3, a12 /* arg1 */ # de7: 3d0c + l32i a4, sp, 56 /* [(local2)] */ # de9: 48e1 + l16ui a5, a13, 4 /* [[[arg0+0x20]+0x8]+0x4] */ # deb: 521d02 + addi a4, a4, -96 /* [(local2)]-0x60 */ # dee: 42c4a0 + slli a4, a4, 24 # df1: 804401 + srai a4, a4, 24 # df4: 404831 + call0 .Lfunc013 # df7: 45d8ff + j .Lbr098 # dfa: 060500 +.Lbr097: mov a2, a14 /* [[[(local3)]+0x4]+0x4] */ # dfd: 2d0e + mov a3, a12 /* arg1 */ # dff: 3d0c + l32i a4, sp, 56 /* [(local2)] */ # e01: 48e1 + l16ui a5, a13, 4 /* [[[arg0+0x20]+0x8]+0x4] */ # e03: 521d02 + addi a4, a4, -96 /* [(local2)]-0x60 */ # e06: 42c4a0 + slli a4, a4, 24 # e09: 804401 + srai a4, a4, 24 # e0c: 404831 + call0 .Lfunc013 # e0f: c5d6ff +.Lbr098: movi a5, g_ic+0x180 # e12: 51acff + movi a0, g_ic # e15: 01acff + l8ui a5, a5, 84 /* [g_ic+0x1d4] */ # e18: 520554 + l32i a6, a0, 0x1e4 /* [g_ic+0x1e4] */ # e1b: 622079 + beqi a5, 1, .Lbr102 # e1e: 26157b + beqz a6, .Lbr100 # e21: 169604 + l32i a8, a12, 32 /* [arg1+0x20] */ # e24: 888c + beqz a8, .Lbr100 # e26: 164804 + addi a2, a14, 16 /* [[[(local3)]+0x4]+0x4]+0x10 */ # e29: 22ce10 + s32i a2, sp, 52 /* [[[(local3)]+0x4]+0x4]+0x10 -> [(local1)] */ # e2c: 29d1 + call0 cnx_rc_search # e2e: 01afffc0 + # e32: 0000 + s32i a2, sp, 92 /* a2 -> [(local11)] */ # e34: 226117 + bnez a2, .Lbr105 # e37: 563208 + l32i a0, a12, 32 /* [arg1+0x20] */ # e3a: 088c + movi a9, g_ic # e3c: 91a4ff + l8ui a4, a0, 1 /* [[arg1+0x20]+0x1] */ # e3f: 420001 + l32i a9, a9, 0x1e4 /* [g_ic+0x1e4] */ # e42: 922979 + bne a9, a4, .Lbr099 # e45: 47990d + movi a2, g_ic+0x1e8 # e48: 21a2ff + addi a3, a0, 2 /* [arg1+0x20]+0x2 */ # e4b: 2b30 + call0 memcmp # e4d: 01a8ffc0 + # e51: 0000 + beqz a2, .Lbr105 # e53: 167206 +.Lbr099: movi a10, g_ic+0x201 # e56: a19fff + l8ui a10, a10, 128 /* [g_ic+0x281] */ # e59: a20a80 + beqz a10, .Lbr100 # e5c: 8cea + movi a2, g_ic+0x282 # e5e: 219eff + l32i a3, sp, 52 /* [(local1)] */ # e61: 38d1 + movi a4, 6 /* 0x00000006 */ # e63: 0c64 + call0 memcmp # e65: 01a3ffc0 + # e69: 0000 + beqz a2, .Lbr105 # e6b: 16f204 +.Lbr100: movi a14, 0 /* 0x00000000 */ # e6e: 0c0e +.Lbr101: addx8 a2, a14, a14 # e70: e02eb0 + addx4 a2, a2, a15 # e73: f022a0 + l32i a4, a2, 96 # e76: 422218 + beqz a4, .Lbr104 # e79: bc64 + l32i a0, a12, 32 /* [arg1+0x20] */ # e7b: 088c + beqz a0, .Lbr104 # e7d: bc20 + l8ui a3, a0, 1 /* [[arg1+0x20]+0x1] */ # e7f: 320001 + bne a4, a3, .Lbr104 # e82: 37942d + addi a2, a2, 100 # e85: 22c264 + addi a3, a0, 2 /* [arg1+0x20]+0x2 */ # e88: 2b30 + call0 memcmp # e8a: 019bffc0 + # e8e: 0000 + bnez a2, .Lbr104 # e90: dcf2 + l8ui a4, a13, 8 /* [[[arg0+0x20]+0x8]+0x8] */ # e92: 420d08 + movi a5, 4 /* 0x00000004 */ # e95: 0c45 + or a4, a4, a5 # e97: 504420 + s8i a4, a13, 8 /* a4 -> [[[arg0+0x20]+0x8]+0x8] */ # e9a: 424d08 +.Lbr102: movi a2, 0 /* 0x00000000 */ # e9d: 0c02 +.Lbr103: l32i a12, sp, 76 /* [(local7)] */ # e9f: c22113 + l32i a13, sp, 80 /* [(local8)] */ # ea2: d22114 + l32i a14, sp, 84 /* [(local9)] */ # ea5: e22115 + l32i a15, sp, 88 /* [(local10)] */ # ea8: f22116 + l32i a0, sp, 72 /* [(local6)] */ # eab: 022112 + addi sp, sp, 96 /* (top of frame) */ # eae: 12c160 + ret # eb1: 0df0 +.Lbr104: addi a14, a14, 1 # eb3: 1bee + extui a14, a14, 0, 8 # eb5: e0e074 + bnei a14, 2, .Lbr101 # eb8: 662eb4 + j .Lbr102 # ebb: 86f7ff +.Lbr105: mov a2, a14 /* [[[(local3)]+0x4]+0x4] */ # ebe: 2d0e + mov a3, a12 /* arg1 */ # ec0: 3d0c + l32i a4, sp, 68 /* [(local5)] */ # ec2: 422111 + call0 scan_profile_check # ec5: 050000 + beqz a2, .Lbr109 # ec8: 16120f + l32i a4, a12, 32 /* [arg1+0x20] */ # ecb: 488c + mov a2, sp /* (FP)-0x60 */ # ecd: 2d01 + addi a3, a4, 2 /* [arg1+0x20]+0x2 */ # ecf: 2b34 + l8ui a4, a4, 1 /* [[arg1+0x20]+0x1] */ # ed1: 420401 + call0 strncpy # ed4: 018affc0 + # ed8: 0000 + l32i a7, a12, 32 /* [arg1+0x20] */ # eda: 788c + l32i a5, sp, 92 /* [(local11)] */ # edc: 522117 + l8ui a7, a7, 1 /* [[arg1+0x20]+0x1] */ # edf: 720701 + movi a6, 0 /* 0x00000000 */ # ee2: 0c06 + add a7, a7, sp # ee4: 1a77 + s8i a6, a7, 0 # ee6: 624700 + bnez a5, .Lbr106 # ee9: 560507 + l32i a2, sp, 52 /* [(local1)] */ # eec: 28d1 + call0 cnx_bss_alloc # eee: 0184ffc0 + # ef2: 0000 + s32i a2, sp, 64 /* a2 -> [(local4)] */ # ef4: 226110 + movi a3, 272 /* 0x00000110 */ # ef7: 32a110 + call0 bzero # efa: 0182ffc0 + # efe: 0000 + l32i a3, sp, 56 /* [(local2)] */ # f00: 38e1 + movi a4, 2 /* 0x00000002 */ # f02: 0c24 + l32i a2, sp, 64 /* [(local4)] */ # f04: 222110 + l8ui a8, a13, 8 /* [[[arg0+0x20]+0x8]+0x8] */ # f07: 820d08 + movi a9, 8 /* 0x00000008 */ # f0a: 0c89 + or a8, a8, a9 # f0c: 908820 + s8i a8, a13, 8 /* a8 -> [[[arg0+0x20]+0x8]+0x8] */ # f0f: 824d08 + s32i a13, a2, 120 /* [[arg0+0x20]+0x8] -> [[(local4)]+0x78] */ # f12: d2621e + call0 cnx_rc_update_rssi # f15: 017cffc0 + # f19: 0000 + l32i a2, sp, 64 /* [(local4)] */ # f1b: 222110 + movi a3, 10 /* 0x0000000a */ # f1e: 0ca3 + movi a4, 0 /* 0x00000000 */ # f20: 0c04 + call0 cnx_rc_update_state_metric # f22: 017affc0 + # f26: 0000 + l32i a2, sp, 64 /* [(local4)] */ # f28: 222110 + movi a3, 5 /* 0x00000005 */ # f2b: 0c53 + movi a4, 0 /* 0x00000000 */ # f2d: 0c04 + call0 cnx_rc_update_age # f2f: 0178ffc0 + # f33: 0000 + mov a4, a14 /* [[[(local3)]+0x4]+0x4] */ # f35: 4d0e + l32i a2, sp, 64 /* [(local4)] */ # f37: 222110 + mov a3, a12 /* arg1 */ # f3a: 3d0c + call0 cnx_update_bss # f3c: 0176ffc0 + # f40: 0000 + mov a3, a12 /* arg1 */ # f42: 3d0c + l32i a14, sp, 64 /* [(local4)] */ # f44: e22110 + l32i a4, sp, 68 /* [(local5)] */ # f47: 422111 + mov a2, a14 /* [(local4)] */ # f4a: 2d0e + call0 cnx_update_bss_more # f4c: 0173ffc0 + # f50: 0000 + mov a2, a14 /* [(local4)] */ # f52: 2d0e + call0 cnx_add_rc # f54: 0172ffc0 + # f58: 0000 + j .Lbr108 # f5a: 461200 +.Lbr106: mov a2, a5 /* [(local11)] */ # f5d: 2d05 + s32i a13, a5, 120 /* [[arg0+0x20]+0x8] -> [[(local11)]+0x78] */ # f5f: d2651e + l32i a3, sp, 56 /* [(local2)] */ # f62: 38e1 + movi a4, 2 /* 0x00000002 */ # f64: 0c24 + call0 cnx_rc_update_rssi # f66: 016effc0 + # f6a: 0000 + l32i a2, sp, 92 /* [(local11)] */ # f6c: 222117 + movi a3, 6 /* 0x00000006 */ # f6f: 0c63 + movi a4, 1 /* 0x00000001 */ # f71: 0c14 + call0 cnx_rc_update_state_metric # f73: 016cffc0 + # f77: 0000 + l32i a2, sp, 92 /* [(local11)] */ # f79: 222117 + movi a3, 5 /* 0x00000005 */ # f7c: 0c53 + movi a4, 0 /* 0x00000000 */ # f7e: 0c04 + call0 cnx_rc_update_age # f80: 016affc0 + # f84: 0000 + l32i a0, a12, 20 /* [arg1+0x14] */ # f86: 085c + beqz a0, .Lbr107 # f88: 8cd0 + l32i a11, sp, 92 /* [(local11)] */ # f8a: b22117 + l8ui a14, a0, 2 /* [[arg1+0x14]+0x2] */ # f8d: e20002 + s8i a14, a11, 37 /* [[arg1+0x14]+0x2] -> [[(local11)]+0x25] */ # f90: e24b25 + l8ui a10, a0, 3 /* [[arg1+0x14]+0x3] */ # f93: a20003 + s8i a10, a11, 36 /* [[arg1+0x14]+0x3] -> [[(local11)]+0x24] */ # f96: a24b24 +.Lbr107: l32i a2, sp, 92 /* [(local11)] */ # f99: 222117 + mov a3, a12 /* arg1 */ # f9c: 3d0c + l32i a4, sp, 68 /* [(local5)] */ # f9e: 422111 + call0 cnx_update_bss_more # fa1: 0162ffc0 + # fa5: 0000 +.Lbr108: l32i a0, a15, 4 /* [.Ldata001] */ # fa7: 081f + extui a0, a0, 10, 1 # fa9: 000a04 + beqz a0, .Lbr100 # fac: 16e0eb + l8ui a2, a15, 93 /* [.Ldata009] */ # faf: 220f5d + movi a3, 4 /* 0x00000004 */ # fb2: 0c43 + or a2, a2, a3 # fb4: 302220 + s8i a2, a15, 93 /* a2 -> [.Ldata009] */ # fb7: 224f5d + j .Lbr100 # fba: 06acff +.Lbr109: l32i a4, sp, 92 /* [(local11)] */ # fbd: 422117 + beqz a4, .Lbr100 # fc0: 16a4ea + mov a2, a4 /* [(local11)] */ # fc3: 2d04 + call0 cnx_remove_rc # fc5: 015affc0 + # fc9: 0000 + j .Lbr100 # fcb: c6a7ff +.Lbr110: l8ui a5, a15, 178 /* [.Ldata013] */ # fce: 520fb2 + addi a5, a5, -1 /* [.Ldata013]-0x1 */ # fd1: 0b55 + bnez a5, .Lbr097 # fd3: 5665e2 + movi a2, .Label003 # fd6: 2141ff + l32i a3, sp, 48 /* [(local0)] */ # fd9: 38c1 + movi a4, 6 /* 0x00000006 */ # fdb: 0c64 + call0 memcmp # fdd: 0155ffc0 + # fe1: 0000 + bnez a2, .Lbr098 # fe3: 56b2e2 + mov a2, a14 /* [[[(local3)]+0x4]+0x4] */ # fe6: 2d0e + mov a3, a12 /* arg1 */ # fe8: 3d0c + l32i a4, sp, 56 /* [(local2)] */ # fea: 48e1 + l16ui a5, a13, 4 /* [[[arg0+0x20]+0x8]+0x4] */ # fec: 521d02 + addi a4, a4, -96 /* [(local2)]-0x60 */ # fef: 42c4a0 + slli a4, a4, 24 # ff2: 804401 + srai a4, a4, 24 # ff5: 404831 + call0 .Lfunc013 # ff8: 05b8ff + j .Lbr098 # ffb: c684ff +.Lbr111: bnei a6, 1, .Lbr110 # ffe: 6616cc + l32i a4, a12, 32 /* [arg1+0x20] */ # 1001: 488c + addi a3, a4, 2 /* [arg1+0x20]+0x2 */ # 1003: 2b34 + l8ui a4, a4, 1 /* [[arg1+0x20]+0x1] */ # 1005: 420401 + call0 strncmp # 1008: 014cffc0 + # 100c: 0000 + bnez a2, .Lbr098 # 100e: 5602e0 + mov a2, a14 /* [[[(local3)]+0x4]+0x4] */ # 1011: 2d0e + mov a3, a12 /* arg1 */ # 1013: 3d0c + l32i a4, sp, 56 /* [(local2)] */ # 1015: 48e1 + l16ui a5, a13, 4 /* [[[arg0+0x20]+0x8]+0x4] */ # 1017: 521d02 + addi a4, a4, -96 /* [(local2)]-0x60 */ # 101a: 42c4a0 + slli a4, a4, 24 # 101d: 804401 + srai a4, a4, 24 # 1020: 404831 + call0 .Lfunc013 # 1023: 85b5ff + j .Lbr098 # 1026: 067aff + + .section .rodata.str1.4, "MSa", @progbits, 1 + +.Lstr001: .asciz "scandone\n" # 0: 7363616e + # 4: 646f6e65 + # 8: 0a00 + .balign 4 +.Label004: .word 0x000a6762 # c: 62670a00 +.Lstr002: .asciz "Invalid WEP key %s\n" # 10: 496e7661 + # 14: 6c696420 + # 18: 57455020 + # 1c: 6b657920 + # 20: 25730a00 diff --git a/binary_sdk/libnet80211_stage1/ieee80211_sta.S b/binary_sdk/libnet80211_stage1/ieee80211_sta.S new file mode 100644 index 0000000..6e1abc4 --- /dev/null +++ b/binary_sdk/libnet80211_stage1/ieee80211_sta.S @@ -0,0 +1,1336 @@ + + .section .irom0.text, "ax", @progbits + + .literal_position # 0: 00000000 + +# Function @ .irom0.text+0x4 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 +.Lfunc001: addi sp, sp, -16 /* (local0) */ # 4: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 7: 0901 + beqz a3, .Lbr002 # 9: 8ca3 + beqi a3, 4, .Lbr002 # b: 264308 + bgei a3, 10, .Lbr001 # e: e69302 + bgei a3, 6, .Lbr002 # 11: e66302 +.Lbr001: bnei a3, 16, .Lbr003 # 14: 66b30a +.Lbr002: movi a3, 176 /* 0x000000b0 */ # 17: 32a0b0 + movi a4, 1 /* 0x00000001 */ # 1a: 0c14 + call0 ieee80211_send_mgmt # 1c: 01f9ffc0 + # 20: 0000 +.Lbr003: l32i a0, sp, 0 /* [(local0)] */ # 22: 0801 + addi sp, sp, 16 /* (top of frame) */ # 24: 12c110 + ret # 27: 0df0 + + .literal_position # 2c: 00000000 + +# Function @ .irom0.text+0x30 + .balign 4 + .global sta_status_set + .type sta_status_set, @function +sta_status_set: + movi a7, g_ic # 30: 71ffff + l32i a5, a7, 16 /* [g_ic+0x10] */ # 33: 5847 + l8ui a6, a5, 184 /* [[g_ic+0x10]+0xb8] */ # 35: 6205b8 + l8ui a10, a5, 185 /* [[g_ic+0x10]+0xb9] */ # 38: a205b9 + beqi a6, 1, .Lbr005 # 3b: 261615 + beq a2, a6, .Lbr005 # 3e: 671212 + movi a6, 0 /* 0x00000000 */ # 41: 0c06 + s8i a6, a5, 185 /* 0x00 -> [[g_ic+0x10]+0xb9] */ # 43: 6245b9 + l32i a4, a7, 16 /* [g_ic+0x10] */ # 46: 4847 + movi a3, 1 /* 0x00000001 */ # 48: 0c13 + s8i a3, a4, 186 /* 0x01 -> [[g_ic+0x10]+0xba] */ # 4a: 3244ba +.Lbr004: l32i a8, a7, 16 /* [g_ic+0x10] */ # 4d: 8847 + s8i a2, a8, 184 /* arg0 -> [[g_ic+0x10]+0xb8] */ # 4f: 2248b8 + ret /* arg0 */ # 52: 0df0 +.Lbr005: addi a10, a10, 1 /* [[g_ic+0x10]+0xb9]+0x1 */ # 54: 1baa + s8i a10, a5, 185 /* [[g_ic+0x10]+0xb9]+0x1 -> [[g_ic+0x10]+0xb9] */ # 56: a245b9 + l32i a5, a7, 16 /* [g_ic+0x10] */ # 59: 5847 + l8ui a9, a5, 185 /* [[g_ic+0x10]+0xb9] */ # 5b: 9205b9 + bnei a9, 3, .Lbr004 # 5e: 6639eb + s8i a2, a5, 186 /* arg0 -> [[g_ic+0x10]+0xba] */ # 61: 2245ba + j .Lbr004 # 64: 46f9ff + + .literal_position # 68: 00000000 + # 6c: 00000000 + # 70: 00000000 + # 74: 00000000 + # 78: 00000000 + # 7c: 00000000 + # 80: 00000000 + # 84: 00000000 + # 88: 00000000 + # 8c: 00000000 + # 90: 00000000 + # 94: 00000000 + # 98: 00000000 + # 9c: 00000000 + # a0: 00000000 + # a4: 00000000 + # a8: 00000000 + # ac: 00000000 + # b0: 00000000 + # b4: 00000000 + # b8: 00000000 + # bc: 00000000 + # c0: 00000000 + +# Function @ .irom0.text+0xc4 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word[4] @ -0x10 + .balign 4 + .global ieee80211_sta_new_state + .type ieee80211_sta_new_state, @function +ieee80211_sta_new_state: + addi sp, sp, -32 /* (local0) */ # c4: 12c1e0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # c7: 0901 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # c9: c911 + s32i a14, sp, 12 /* a14 -> [(local3)] */ # cb: e931 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # cd: d921 + mov a14, a2 /* arg0 */ # cf: ed02 + l32i a13, a2, 0 /* [arg0] */ # d1: d802 + l32i a12, a2, 16 /* [arg0+0x10] */ # d3: c842 + addmi a13, a13, 1536 /* [arg0]+0x600 */ # d5: d2dd06 + l32i a0, a12, 60 /* [[arg0+0x10]+0x3c] */ # d8: 08fc + s32i a3, a12, 60 /* arg1 -> [[arg0+0x10]+0x3c] */ # da: 39fc + l32i a13, a13, 140 /* [[arg0]+0x68c] */ # dc: d22d23 + beqz a3, .Lbr010 # df: 16e305 + bnei a3, 2, .Lbr006 # e2: 662302 + j .Lbr013 # e5: 062500 +.Lbr006: beqi a3, 3, .Lbr007 # e8: 263331 + bnei a3, 5, .Lbr009 # eb: 665343 + bgeui a0, 4, .Lbr009 # ee: f64040 + bltui a0, 2, .Lbr009 # f1: b6203d + mov a3, a13 /* [[arg0]+0x68c] */ # f4: 3d0d + addi a2, a4, -16 /* arg2-0x10 */ # f6: 22c4f0 + movi a0, 1 /* 0x00000001 */ # f9: 0c10 + movi a4, 0 /* 0x00000000 */ # fb: 0c04 + moveqz a4, a0, a2 # fd: 204083 + mov a2, a12 /* [arg0+0x10] */ # 100: 2d0c + call0 cnx_sta_associated # 102: 01dbffc0 + # 106: 0000 + addmi a3, a14, 512 /* arg0+0x200 */ # 108: 32de02 + l8ui a3, a3, 8 /* [arg0+0x208] */ # 10b: 320308 + addi a3, a3, -3 /* [arg0+0x208]-0x3 */ # 10e: 32c3fd + beqz a3, .Lbr020 # 111: 166311 + call0 eagle_auth_done # 114: 01d8ffc0 + # 118: 0000 + j .Lbr009 # 11a: 060500 +.Lbr007: bgeui a0, 4, .Lbr008 # 11d: f64005 + bltui a0, 2, .Lbr008 # 120: b62002 + j .Lbr024 # 123: c65700 +.Lbr008: addi a4, a0, -5 /* [[arg0+0x10]+0x3c]-0x5 */ # 126: 42c0fb + beqz a4, .Lbr023 # 129: 16a414 + addi a5, a0, -7 /* [[arg0+0x10]+0x3c]-0x7 */ # 12c: 52c0f9 + beqz a5, .Lbr023 # 12f: 164514 +.Lbr009: movi a2, 0 /* 0x00000000 */ # 132: 0c02 + l32i a12, sp, 4 /* [(local1)] */ # 134: c811 + l32i a13, sp, 8 /* [(local2)] */ # 136: d821 + l32i a14, sp, 12 /* [(local3)] */ # 138: e831 + l32i a0, sp, 0 /* [(local0)] */ # 13a: 0801 + addi sp, sp, 32 /* (top of frame) */ # 13c: 12c120 + ret /* 0x00000000 */ # 13f: 0df0 +.Lbr010: addi a6, a0, -2 /* [[arg0+0x10]+0x3c]-0x2 */ # 141: 62c0fe + beqz a6, .Lbr021 # 144: 16b60e + addi a7, a0, -3 /* [[arg0+0x10]+0x3c]-0x3 */ # 147: 72c0fd + beqz a7, .Lbr022 # 14a: 16b70f + beqi a0, 5, .Lbr011 # 14d: 265002 + bnei a0, 7, .Lbr009 # 150: 6670de +.Lbr011: extui a8, a4, 0, 8 # 153: 408074 + bnei a8, 1, .Lbr012 # 156: 661802 + j .Lbr017 # 159: 062600 +.Lbr012: addi a2, a12, 4 /* [arg0+0x10]+0x4 */ # 15c: 4b2c + call0 os_timer_disarm # 15e: 01c6ffc0 + # 162: 0000 + addi a2, a12, 32 /* [arg0+0x10]+0x20 */ # 164: 22cc20 + call0 os_timer_disarm # 167: 01c5ffc0 + # 16b: 0000 + mov a2, a12 /* [arg0+0x10] */ # 16d: 2d0c + movi a3, 160 /* 0x000000a0 */ # 16f: 32a0a0 + movi a4, 8 /* 0x00000008 */ # 172: 0c84 + call0 ieee80211_send_mgmt # 174: 01c3ffc0 + # 178: 0000 + j .Lbr018 # 17a: 462200 +.Lbr013: bgeui a0, 2, .Lbr014 # 17d: f6200f + mov a2, a12 /* [arg0+0x10] */ # 180: 2d0c + movi a3, 176 /* 0x000000b0 */ # 182: 32a0b0 + movi a4, 1 /* 0x00000001 */ # 185: 0c14 + call0 ieee80211_send_mgmt # 187: 01bfffc0 + # 18b: 0000 + j .Lbr009 # 18d: 46e8ff +.Lbr014: movi a3, 176 /* 0x000000b0 */ # 190: 32a0b0 + movi a7, 192 /* 0x000000c0 */ # 193: 72a0c0 + bgeui a0, 4, .Lbr015 # 196: f64002 + bgeui a0, 2, .Lbr019 # 199: f62077 +.Lbr015: bnei a0, 5, .Lbr009 # 19c: 665092 + movi a9, 160 /* 0x000000a0 */ # 19f: 92a0a0 + extui a2, a4, 0, 8 # 1a2: 402074 + beq a2, a9, .Lbr016 # 1a5: 97120d + s32i a0, sp, 16 /* [[arg0+0x10]+0x3c] -> [(local4)] */ # 1a8: 0941 + sub a10, a2, a3 # 1aa: 30a2c0 + beqz a10, .Lbr026 # 1ad: 161a0f + beq a2, a7, .Lbr016 # 1b0: 771202 + j .Lbr009 # 1b3: c6deff +.Lbr016: movi a2, 2 /* 0x00000002 */ # 1b6: 0c22 + call0 sta_status_set # 1b8: 050000 + addi a2, a12, 32 /* [arg0+0x10]+0x20 */ # 1bb: 22cc20 + call0 os_timer_disarm # 1be: 01b2ffc0 + # 1c2: 0000 + addi a14, a12, 4 /* [arg0+0x10]+0x4 */ # 1c4: 4bec + mov a2, a14 /* [arg0+0x10]+0x4 */ # 1c6: 2d0e + call0 os_timer_disarm # 1c8: 01b1ffc0 + # 1cc: 0000 + mov a2, a14 /* [arg0+0x10]+0x4 */ # 1ce: 2d0e + movi a3, cnx_connect_timeout # 1d0: 31a6ff + movi a4, 0 /* 0x00000000 */ # 1d3: 0c04 + call0 os_timer_setfn # 1d5: 01aeffc0 + # 1d9: 0000 + mov a2, a14 /* [arg0+0x10]+0x4 */ # 1db: 2d0e + movi a3, 1000 /* 0x000003e8 */ # 1dd: 32a3e8 + movi a4, 0 /* 0x00000000 */ # 1e0: 0c04 + call0 os_timer_arm # 1e2: 01acffc0 + # 1e6: 0000 + mov a3, a13 /* [[arg0]+0x68c] */ # 1e8: 3d0d + mov a2, a12 /* [arg0+0x10] */ # 1ea: 2d0c + call0 cnx_sta_leave # 1ec: 01abffc0 + # 1f0: 0000 + j .Lbr009 # 1f2: 06cfff +.Lbr017: movi a2, 4 /* 0x00000004 */ # 1f5: 0c42 + call0 sta_status_set # 1f7: 050000 + mov a2, a12 /* [arg0+0x10] */ # 1fa: 2d0c + movi a3, 160 /* 0x000000a0 */ # 1fc: 32a0a0 + movi a4, 4 /* 0x00000004 */ # 1ff: 0c44 + call0 ieee80211_send_mgmt # 201: 01a6ffc0 + # 205: 0000 +.Lbr018: mov a3, a13 /* [[arg0]+0x68c] */ # 207: 3d0d + mov a2, a12 /* [arg0+0x10] */ # 209: 2d0c + call0 cnx_sta_leave # 20b: 01a5ffc0 + # 20f: 0000 + j .Lbr009 # 211: 46c7ff +.Lbr019: extui a2, a4, 0, 8 # 214: 402074 + beq a2, a3, .Lbr025 # 217: 37127a + sub a11, a2, a7 # 21a: 70b2c0 + bnez a11, .Lbr009 # 21d: 561bf1 + mov a2, a12 /* [arg0+0x10] */ # 220: 2d0c + srai a3, a4, 8 # 222: 403821 + call0 .Lfunc001 # 225: c5ddff + j .Lbr009 # 228: 86c1ff +.Lbr020: movi a12, 1 /* 0x00000001 */ # 22b: 0c1c + s8i a12, a13, 24 /* 0x01 -> [[[arg0]+0x68c]+0x18] */ # 22d: c24d18 + j .Lbr009 # 230: 86bfff +.Lbr021: movi a13, g_ic # 233: d18eff + l32i a13, a13, 16 /* [g_ic+0x10] */ # 236: d84d + l8ui a13, a13, 184 /* [[g_ic+0x10]+0xb8] */ # 238: d20db8 + addi a13, a13, -2 /* [[g_ic+0x10]+0xb8]-0x2 */ # 23b: d2cdfe + beqz a13, .Lbr009 # 23e: 160def + movi a2, 4 /* 0x00000004 */ # 241: 0c42 + call0 sta_status_set # 243: 050000 + j .Lbr009 # 246: 06baff +.Lbr022: mov a2, a12 /* [arg0+0x10] */ # 249: 2d0c + movi a3, 192 /* 0x000000c0 */ # 24b: 32a0c0 + movi a4, 3 /* 0x00000003 */ # 24e: 0c34 + call0 ieee80211_send_mgmt # 250: 0195ffc0 + # 254: 0000 + beqz a13, .Lbr009 # 256: 168ded + addi a2, a12, 4 /* [arg0+0x10]+0x4 */ # 259: 4b2c + call0 os_timer_disarm # 25b: 0193ffc0 + # 25f: 0000 + addi a2, a12, 32 /* [arg0+0x10]+0x20 */ # 261: 22cc20 + call0 os_timer_disarm # 264: 0192ffc0 + # 268: 0000 + mov a3, a13 /* [[arg0]+0x68c] */ # 26a: 3d0d + mov a2, a12 /* [arg0+0x10] */ # 26c: 2d0c + call0 cnx_sta_leave # 26e: 0190ffc0 + # 272: 0000 + j .Lbr009 # 274: 86aeff +.Lbr023: mov a2, a12 /* [arg0+0x10] */ # 277: 2d0c + movi a3, 32 /* 0x00000020 */ # 279: 2c03 + movi a4, 0 /* 0x00000000 */ # 27b: 0c04 + call0 ieee80211_send_mgmt # 27d: 018dffc0 + # 281: 0000 + j .Lbr009 # 283: c6aaff +.Lbr024: mov a2, a12 /* [arg0+0x10] */ # 286: 2d0c + movi a3, 0 /* 0x00000000 */ # 288: 0c03 + movi a4, 0 /* 0x00000000 */ # 28a: 0c04 + call0 ieee80211_send_mgmt # 28c: 018bffc0 + # 290: 0000 + j .Lbr009 # 292: 06a7ff +.Lbr025: mov a2, a12 /* [arg0+0x10] */ # 295: 2d0c + movi a4, 2 /* 0x00000002 */ # 297: 0c24 + call0 ieee80211_send_mgmt # 299: 0188ffc0 + # 29d: 0000 + j .Lbr009 # 29f: c6a3ff +.Lbr026: mov a2, a12 /* [arg0+0x10] */ # 2a2: 2d0c + movi a3, 176 /* 0x000000b0 */ # 2a4: 32a0b0 + movi a4, 2 /* 0x00000002 */ # 2a7: 0c24 + mov a13, a0 /* [[arg0+0x10]+0x3c] */ # 2a9: dd00 + call0 ieee80211_send_mgmt # 2ab: 0185ffc0 + # 2af: 0000 + s32i a13, a12, 60 /* [[arg0+0x10]+0x3c] -> [[arg0+0x10]+0x3c] */ # 2b1: d9fc + j .Lbr009 # 2b3: c69eff + + .literal_position # 2b8: 00000000 + # 2bc: 00000000 + # 2c0: 888e0000 + # 2c4: 00000000 + # 2c8: 00000000 + # 2cc: 00000000 + # 2d0: 20070000 + # 2d4: 00000000 + # 2d8: 00000000 + # 2dc: 00000000 + # 2e0: 00000000 + +# Function @ .irom0.text+0x2e4 +# Local variables/stack: +# (local0): byte[4] @ -0x40 +# (local1): word @ -0x3c +# (local2): word @ -0x38 +# (local3): word @ -0x34 +# (local4): word @ -0x30 +# (local5): word @ -0x2c +# (local6): word @ -0x28 +# (local7): word @ -0x24 +# (local8): word @ -0x20 +# (local9): word @ -0x1c +# (local10): word @ -0x18 +# (local11): word @ -0x14 +# (local12): word[4] @ -0x10 + .balign 4 + .global sta_input + .type sta_input, @function +sta_input: movi a6, g_ic+0x180 # 2e4: 61f5ff + addi sp, sp, -64 /* (local0) */ # 2e7: 12c1c0 + s32i a14, sp, 32 /* a14 -> [(local8)] */ # 2ea: e981 + s32i a15, sp, 36 /* a15 -> [(local9)] */ # 2ec: f991 + s32i a0, sp, 20 /* a0 -> [(local5)] */ # 2ee: 0951 + s32i a12, sp, 24 /* a12 -> [(local6)] */ # 2f0: c961 + s32i a13, sp, 28 /* a13 -> [(local7)] */ # 2f2: d971 + l8ui a6, a6, 84 /* [g_ic+0x1d4] */ # 2f4: 620654 + mov a13, a2 /* arg0 */ # 2f7: dd02 + mov a12, a3 /* arg1 */ # 2f9: cd03 + l32i a0, a12, 16 /* [arg1+0x10] */ # 2fb: 084c + mov a3, a4 /* arg2 */ # 2fd: 3d04 + l8ui a4, a0, 1 /* [[arg1+0x10]+0x1] */ # 2ff: 420001 + mov a2, a5 /* arg3 */ # 302: 2d05 + srli a4, a4, 6 # 304: 404641 + bnez a4, .Lbr027 # 307: cc74 + l16ui a0, a0, 2 /* [[arg1+0x10]+0x2] */ # 309: 021001 + extui a0, a0, 0, 12 # 30c: 0000b4 + j .Lbr028 # 30f: 860300 +.Lbr027: l16ui a5, a0, 6 /* [[arg1+0x10]+0x6] */ # 312: 521003 + l16ui a4, a0, 4 /* [[arg1+0x10]+0x4] */ # 315: 421002 + slli a0, a5, 16 # 318: 000511 + or a0, a0, a4 # 31b: 400020 + srli a0, a0, 8 # 31e: 000841 +.Lbr028: bnei a6, 1, .Lbr029 # 321: 661602 + j .Lbr032 # 324: 062400 +.Lbr029: beqz a13, .Lbr032 # 327: 16dd08 + l32i a15, a13, 136 /* [arg0+0x88] */ # 32a: f22d22 + extui a9, a0, 0, 16 # 32d: 0090f4 + bgeui a9, 16, .Lbr030 # 330: f6b902 + j .Lbr036 # 333: c62700 +.Lbr030: l32i a0, a12, 4 /* [arg1+0x4] */ # 336: 081c + l32i a0, a0, 4 /* [[arg1+0x4]+0x4] */ # 338: 0810 + l8ui a4, a0, 0 /* [[[arg1+0x4]+0x4]] */ # 33a: 420000 + movi a14, 255 /* 0x000000ff */ # 33d: e2a0ff + extui a7, a4, 0, 2 # 340: 407014 + bnez a7, .Lbr037 # 343: 565709 + s32i a3, sp, 12 /* arg2 -> [(local3)] */ # 346: 3931 + s32i a2, sp, 8 /* arg3 -> [(local2)] */ # 348: 2921 + l8ui a10, a0, 1 /* [[[arg1+0x4]+0x4]+0x1] */ # 34a: a20001 + movi a11, 240 /* 0x000000f0 */ # 34d: b2a0f0 + movi a14, 12 /* 0x0000000c */ # 350: 0cce + and a14, a4, a14 # 352: e0e410 + and a11, a4, a11 # 355: b0b410 + extui a10, a10, 0, 2 # 358: a0a014 + beqz a15, .Lbr031 # 35b: ac5f + s32i a11, sp, 40 /* a11 -> [(local10)] */ # 35d: b9a1 + s32i a10, sp, 44 /* a10 -> [(local11)] */ # 35f: a9b1 + movi a2, gScanStruct # 361: 21d6ff + s32i a9, sp, 48 /* a9 -> [(local12)] */ # 364: 99c1 + l8ui a2, a2, 93 /* [gScanStruct+0x5d] */ # 366: 22025d + s32i a0, sp, 4 /* [[arg1+0x4]+0x4] -> [(local1)] */ # 369: 0911 + bbsi a2, 0, .Lbr031 # 36b: 07e215 + mov a3, a15 /* [arg0+0x88] */ # 36e: 3d0f + movi a4, 6 /* 0x00000006 */ # 370: 0c64 + addi a2, a0, 10 /* [[arg1+0x4]+0x4]+0xa */ # 372: ab20 + call0 memcmp # 374: 01d4ffc0 + # 378: 0000 + l32i a0, sp, 4 /* [(local1)] */ # 37a: 0811 + l32i a9, sp, 48 /* [(local12)] */ # 37c: 98c1 + l32i a10, sp, 44 /* [(local11)] */ # 37e: a8b1 + l32i a11, sp, 40 /* [(local10)] */ # 380: b8a1 + bnez a2, .Lbr033 # 382: fc52 +.Lbr031: movi a5, 140 /* 0x0000008c */ # 384: 52a08c + movi a6, 136 /* 0x00000088 */ # 387: 62a088 + movi a4, 64 /* 0x00000040 */ # 38a: 4c04 + l32i a3, sp, 8 /* [(local2)] */ # 38c: 3821 + s8i a3, a13, 168 /* [(local2)] -> [arg0+0xa8] */ # 38e: 324da8 + bbsi a14, 2, .Lbr040 # 391: 27ee50 + l8ui a7, a0, 4 # 394: 720004 + bbsi a7, 0, .Lbr040 # 397: 07e74a + l8ui a8, a0, 0 # 39a: 820000 + and a8, a8, a5 # 39d: 508810 + sub a8, a8, a6 # 3a0: 6088c0 + bnez a8, .Lbr042 # 3a3: 56c809 + l8ui a2, a0, 1 # 3a6: 220001 + extui a2, a2, 0, 2 # 3a9: 202014 + addi a2, a2, -3 # 3ac: 22c2fd + bnez a2, .Lbr049 # 3af: 56820e + l8ui a2, a0, 30 # 3b2: 22001e + j .Lbr050 # 3b5: 463900 +.Lbr032: l8ui a14, sp, 0 /* [(local0)] */ # 3b8: e20100 +.Lbr033: beqz a12, .Lbr034 # 3bb: 8c6c + mov a2, a12 # 3bd: 2d0c + call0 ppRecycleRxPkt # 3bf: 01c2ffc0 + # 3c3: 0000 +.Lbr034: mov a2, a14 # 3c5: 2d0e +.Lbr035: l32i a12, sp, 24 /* [(local6)] */ # 3c7: c861 + l32i a13, sp, 28 /* [(local7)] */ # 3c9: d871 + l32i a14, sp, 32 /* [(local8)] */ # 3cb: e881 + l32i a15, sp, 36 /* [(local9)] */ # 3cd: f891 + l32i a0, sp, 20 /* [(local5)] */ # 3cf: 0851 + addi sp, sp, 64 /* (top of frame) */ # 3d1: 12c140 + ret # 3d4: 0df0 +.Lbr036: movi a14, 255 /* 0x000000ff */ # 3d6: e2a0ff + j .Lbr033 # 3d9: 86f7ff +.Lbr037: j .Lbr033 # 3dc: c6f6ff +.Lbr038: addx2 a2, a2, a13 # 3df: d02290 +.Lbr039: s16i a8, a2, 88 # 3e2: 82522c +.Lbr040: movi a4, 24 /* 0x00000018 */ # 3e5: 1c84 + movi a2, 30 /* 0x0000001e */ # 3e7: 1ce2 + l8ui a3, a0, 0 # 3e9: 320000 + l8ui a7, a0, 1 # 3ec: 720001 + and a3, a3, a5 # 3ef: 503310 + extui a7, a7, 0, 2 # 3f2: 707014 + addi a7, a7, -3 # 3f5: 72c7fd + movnez a2, a4, a7 # 3f8: 702493 + bne a3, a6, .Lbr041 # 3fb: 679301 + addi a2, a2, 2 # 3fe: 2b22 +.Lbr041: s16i a2, a12, 20 /* a2 -> [arg1+0x14] */ # 400: 225c0a + sub a4, a9, a2 # 403: 2049c0 + addi a4, a4, -4 # 406: 42c4fc + s16i a4, a12, 22 /* a4 -> [arg1+0x16] */ # 409: 425c0b + beqz a14, .Lbr046 # 40c: 164e06 + beqi a14, 4, .Lbr033 # 40f: 264ea8 + bnei a14, 8, .Lbr033 # 412: 668ea5 + l32i a5, a13, 136 /* [arg0+0x88] */ # 415: 522d22 + beqz a5, .Lbr033 # 418: 16f5f9 + blt a9, a2, .Lbr033 # 41b: 27299c + bnei a10, 2, .Lbr033 # 41e: 662a99 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 421: 0911 + s32i a9, sp, 48 /* a9 -> [(local12)] */ # 423: 99c1 + l8ui a6, a0, 1 # 425: 620001 + s32i a2, sp, 16 /* a2 -> [(local4)] */ # 428: 2941 + bbci a6, 6, .Lbr051 # 42a: 676676 + mov a2, a13 /* arg0 */ # 42d: 2d0d + mov a3, a12 /* arg1 */ # 42f: 3d0c + l32i a4, sp, 16 /* [(local4)] */ # 431: 4841 + call0 ieee80211_crypto_decap # 433: 01a6ffc0 + # 437: 0000 + l32i a0, sp, 4 /* [(local1)] */ # 439: 0811 + l32i a9, sp, 48 /* [(local12)] */ # 43b: 98c1 + bnez a2, .Lbr052 # 43d: 560207 + j .Lbr033 # 440: c6ddff +.Lbr042: movi a2, 16 /* 0x00000010 */ # 443: 1c02 +.Lbr043: l16ui a8, a0, 22 # 445: 82100b + l32i a3, a13, 72 /* [arg0+0x48] */ # 448: 322d12 + beqz a15, .Lbr048 # 44b: 163f04 + l32i a7, a15, 8 /* [[arg0+0x88]+0x8] */ # 44e: 782f + and a7, a7, a4 # 450: 407710 + or a3, a3, a7 # 453: 703320 +.Lbr044: s32i a3, a13, 72 /* a3 -> [arg0+0x48] */ # 456: 326d12 + bbsi a3, 6, .Lbr038 # 459: 67e382 + l8ui a3, a0, 1 # 45c: 320001 + addx2 a2, a2, a13 # 45f: d02290 + bbsi a3, 3, .Lbr045 # 462: 37e302 + j .Lbr039 # 465: 46deff +.Lbr045: l16ui a4, a2, 88 # 468: 42122c + sub a4, a4, a8 # 46b: 8044c0 + beqz a4, .Lbr033 # 46e: 1694f4 + j .Lbr039 # 471: 46dbff +.Lbr046: bnez a10, .Lbr033 # 474: 563af4 + movi a5, 23 /* 0x00000017 */ # 477: 1c75 + bltu a5, a9, .Lbr047 # 479: 973502 + j .Lbr033 # 47c: c6ceff +.Lbr047: mov a4, a11 # 47f: 4d0b + mov a2, a13 /* arg0 */ # 481: 2d0d + mov a3, a12 /* arg1 */ # 483: 3d0c + l32i a5, sp, 12 /* [(local3)] */ # 485: 5831 + l32i a6, sp, 8 /* [(local2)] */ # 487: 6821 + call0 .Lfunc004 # 489: 0191ffc0 + # 48d: 0000 + j .Lbr033 # 48f: 06caff +.Lbr048: movi a7, -65 /* 0xffffffbf */ # 492: 72afbf + and a3, a3, a7 # 495: 703310 + j .Lbr044 # 498: 86eeff +.Lbr049: l8ui a2, a0, 24 # 49b: 220018 +.Lbr050: extui a2, a2, 0, 4 # 49e: 202034 + j .Lbr043 # 4a1: 06e8ff +.Lbr051: l32i a10, a12, 4 /* [arg1+0x4] */ # 4a4: a81c + s32i a2, sp, 16 /* a2 -> [(local4)] */ # 4a6: 2941 + l32i a8, a10, 4 /* [[arg1+0x4]+0x4] */ # 4a8: 881a + extui a11, a2, 0, 16 # 4aa: 20b0f4 + add a8, a8, a11 # 4ad: ba88 + s32i a8, a10, 4 /* a8 -> [[arg1+0x4]+0x4] */ # 4af: 891a +.Lbr052: mov a4, a9 # 4b1: 4d09 + mov a2, a12 /* arg1 */ # 4b3: 2d0c + l32i a5, sp, 16 /* [(local4)] */ # 4b5: 5841 + mov a3, a0 # 4b7: 3d00 + call0 ieee80211_decap # 4b9: 0186ffc0 + # 4bd: 0000 + mov a3, a2 # 4bf: 3d02 + mov a12, a2 # 4c1: cd02 + beqz a2, .Lbr033 # 4c3: 1642ef + l32i a0, a2, 4 # 4c6: 0812 + l32i a4, a13, 136 /* [arg0+0x88] */ # 4c8: 422d22 + movi a2, 0x00008e88 # 4cb: 217dff + l32i a4, a4, 8 /* [[arg0+0x88]+0x8] */ # 4ce: 4824 + l32i a0, a0, 4 # 4d0: 0810 + bbsi a4, 0, .Lbr053 # 4d2: 07e42a + l8ui a4, a15, 24 /* [[arg0+0x88]+0x18] */ # 4d5: 420f18 + bnei a4, 1, .Lbr054 # 4d8: 661446 + l8ui a5, a0, 13 # 4db: 52000d + l8ui a6, a0, 12 # 4de: 62000c + slli a5, a5, 8 # 4e1: 805511 + or a5, a5, a6 # 4e4: 605520 + sub a5, a5, a2 # 4e7: 2055c0 + bnez a5, .Lbr033 # 4ea: 56d5ec + addi a2, a0, 6 # 4ed: 6b20 + l16ui a4, a3, 22 # 4ef: 42130b + addi a3, a0, 14 # 4f2: eb30 + addi a4, a4, -14 # 4f4: 42c4f2 + call0 wpa_sm_rx_eapol # 4f7: 0178ffc0 + # 4fb: 0000 + j .Lbr033 # 4fd: 86aeff +.Lbr053: l8ui a5, a0, 13 # 500: 52000d + l8ui a6, a0, 12 # 503: 62000c + slli a5, a5, 8 # 506: 805511 + or a5, a5, a6 # 509: 605520 + bne a5, a2, .Lbr054 # 50c: 279512 + addi a2, a0, 6 # 50f: 6b20 + l16ui a4, a3, 22 # 511: 42130b + addi a3, a0, 14 # 514: eb30 + addi a4, a4, -14 # 516: 42c4f2 + call0 wpa_sm_rx_eapol # 519: 0170ffc0 + # 51d: 0000 + j .Lbr033 # 51f: 06a6ff +.Lbr054: mov a2, a13 /* arg0 */ # 522: 2d0d + call0 ieee80211_deliver_data # 524: 016fffc0 + # 528: 0000 + movi a2, 8 /* 0x00000008 */ # 52a: 0c82 + j .Lbr035 # 52c: c6a5ff + + .literal_position # 530: 00000000 + # 534: 00000000 + # 538: 00000000 + # 53c: 00000000 + +# Function @ .irom0.text+0x540 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 +.Lfunc002: addi sp, sp, -16 /* (local0) */ # 540: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 543: 0901 + l32i a0, a2, 60 /* [arg0+0x3c] */ # 545: 08f2 + bnei a0, 2, .Lbr057 # 547: 662037 + bnei a6, 2, .Lbr057 # 54a: 662634 + movi a3, 13 /* 0x0000000d */ # 54d: 0cd3 + bne a7, a3, .Lbr055 # 54f: 379715 + movi a5, g_ic+0x188 # 552: 51f7ff + movi a4, 2 /* 0x00000002 */ # 555: 0c24 + movi a3, 176 /* 0x000000b0 */ # 557: 32a0b0 + s8i a4, a5, 128 /* 0x02 -> [g_ic+0x208] */ # 55a: 424580 + movi a4, 1 /* 0x00000001 */ # 55d: 0c14 + call0 ieee80211_send_mgmt # 55f: 01f7ffc0 + # 563: 0000 + j .Lbr057 # 565: 460600 +.Lbr055: movi a0, g_ic # 568: 01f3ff + beqz a7, .Lbr056 # 56b: 8ca7 + movi a3, 0 /* 0x00000000 */ # 56d: 0c03 + movi a4, 2 /* 0x00000002 */ # 56f: 0c24 + mov a2, a0 /* g_ic */ # 571: 2d00 + call0 ieee80211_sta_new_state # 573: 050000 + movi a0, g_ic # 576: 01f0ff +.Lbr056: movi a3, 3 /* 0x00000003 */ # 579: 0c33 + movi a4, 0 /* 0x00000000 */ # 57b: 0c04 + mov a2, a0 /* g_ic */ # 57d: 2d00 + call0 ieee80211_sta_new_state # 57f: 050000 +.Lbr057: l32i a0, sp, 0 /* [(local0)] */ # 582: 0801 + addi sp, sp, 16 /* (top of frame) */ # 584: 12c110 + ret # 587: 0df0 + + .literal_position # 58c: 00000000 + # 590: 00000000 + # 594: 00000000 + # 598: 00000000 + # 59c: 00000000 + # 5a0: 00000000 + # 5a4: 00000000 + # 5a8: 00000000 + +# Function @ .irom0.text+0x5ac +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word[4] @ -0x10 + .balign 4 +.Lfunc003: addi sp, sp, -32 /* (local0) */ # 5ac: 12c1e0 + l16ui a7, sp, 36 /* [(FP)+0x4] */ # 5af: 721112 + s32i a0, sp, 8 /* a0 -> [(local2)] */ # 5b2: 0921 + s32i a12, sp, 12 /* a12 -> [(local3)] */ # 5b4: c931 + movi a0, g_ic+0x188 # 5b6: 01f5ff + mov a12, a2 /* arg0 */ # 5b9: cd02 + movi a2, 13 /* 0x0000000d */ # 5bb: 0cd2 + bne a7, a2, .Lbr058 # 5bd: 279714 + mov a2, a12 /* arg0 */ # 5c0: 2d0c + movi a3, 176 /* 0x000000b0 */ # 5c2: 32a0b0 + movi a4, 1 /* 0x00000001 */ # 5c5: 0c14 + movi a8, 2 /* 0x00000002 */ # 5c7: 0c28 + s8i a8, a0, 128 /* 0x02 -> [g_ic+0x208] */ # 5c9: 824080 + call0 ieee80211_send_mgmt # 5cc: 01f3ffc0 + # 5d0: 0000 + j .Lbr061 # 5d2: 461200 +.Lbr058: l32i a9, a12, 72 /* [arg0+0x48] */ # 5d5: 922c12 + l8ui a0, a0, 128 /* [g_ic+0x208] */ # 5d8: 020080 + bbci a9, 4, .Lbr059 # 5db: 476905 + beqi a0, 4, .Lbr062 # 5de: 264046 + beqi a0, 2, .Lbr062 # 5e1: 262043 +.Lbr059: l32i a10, a12, 60 /* [arg0+0x3c] */ # 5e4: a8fc + bnei a10, 2, .Lbr061 # 5e6: 662a35 + movi a2, g_ic # 5e9: 21e9ff + movi a3, 1 /* 0x00000001 */ # 5ec: 0c13 + movi a4, 2 /* 0x00000002 */ # 5ee: 0c24 + call0 ieee80211_sta_new_state # 5f0: 050000 + j .Lbr061 # 5f3: 060a00 +.Lbr060: mov a2, a12 /* arg0 */ # 5f6: 2d0c + call0 ieee80211_alloc_challenge # 5f8: 01e9ffc0 + # 5fc: 0000 + beqz a2, .Lbr061 # 5fe: 9cd2 + l32i a4, sp, 4 /* [(local1)] */ # 600: 4811 + l32i a2, a12, 84 /* [arg0+0x54] */ # 602: 222c15 + addi a3, a4, 2 /* [(local1)]+0x2 */ # 605: 2b34 + l8ui a4, a4, 1 /* [[(local1)]+0x1] */ # 607: 420401 + call0 memcpy # 60a: 01e5ffc0 + # 60e: 0000 + mov a2, a12 /* arg0 */ # 610: 2d0c + l32i a4, sp, 0 /* [(local0)] */ # 612: 4801 + movi a3, 176 /* 0x000000b0 */ # 614: 32a0b0 + addi a4, a4, 1 /* [(local0)]+0x1 */ # 617: 1b44 + call0 ieee80211_send_mgmt # 619: 01e2ffc0 + # 61d: 0000 +.Lbr061: l32i a12, sp, 12 /* [(local3)] */ # 61f: c831 + l32i a0, sp, 8 /* [(local2)] */ # 621: 0821 + addi sp, sp, 32 /* (local5) */ # 623: 12c120 + ret # 626: 0df0 +.Lbr062: movi a8, 0 /* 0x00000000 */ # 628: 0c08 + addi a6, a4, 1 /* arg2+0x1 */ # 62a: 1b64 + bgeu a6, a5, .Lbr063 # 62c: 57b618 + l8ui a10, a4, 1 /* [arg2+0x1] */ # 62f: a20401 + sub a9, a5, a4 # 632: 4095c0 + addi a10, a10, 2 /* [arg2+0x1]+0x2 */ # 635: 2baa + blt a9, a10, .Lbr059 # 637: a729a9 + l8ui a11, a4, 0 /* [arg2] */ # 63a: b20400 + addi a11, a11, -16 /* [arg2]-0x10 */ # 63d: b2cbf0 + moveqz a8, a4, a11 # 640: b08483 + mov a5, a8 # 643: 5d08 + j .Lbr064 # 645: 460000 +.Lbr063: mov a5, a8 /* 0x00000000 */ # 648: 5d08 +.Lbr064: l16ui a0, sp, 32 /* [(local5)] */ # 64a: 021110 + bgei a0, 4, .Lbr065 # 64d: e6400b + blti a0, 2, .Lbr065 # 650: a62008 + beqz a5, .Lbr059 # 653: 16d5f8 + l8ui a3, a5, 1 # 656: 320501 + bnei a3, 128, .Lbr059 # 659: 66e387 +.Lbr065: l32i a4, a12, 60 /* [arg0+0x3c] */ # 65c: 48fc + bnei a4, 2, .Lbr061 # 65e: 6624bd + s32i a0, sp, 0 /* [(local5)] -> [(local0)] */ # 661: 0901 + s32i a5, sp, 4 /* a5 -> [(local1)] */ # 663: 5911 + beqi a0, 2, .Lbr060 # 665: 26208d + bnei a0, 4, .Lbr061 # 668: 6640b3 + l32i a2, a12, 84 /* [arg0+0x54] */ # 66b: 222c15 + s32i a7, sp, 16 /* [(FP)+0x4] -> [(local4)] */ # 66e: 7941 + beqz a2, .Lbr066 # 670: 8cb2 + call0 free # 672: 01cdffc0 + # 676: 0000 + l32i a7, sp, 16 /* [(local4)] */ # 678: 7841 + movi a5, 0 /* 0x00000000 */ # 67a: 0c05 + s32i a5, a12, 84 /* 0x00000000 -> [arg0+0x54] */ # 67c: 526c15 +.Lbr066: bnez a7, .Lbr061 # 67f: 56c7f9 + movi a2, g_ic # 682: 21c4ff + movi a3, 3 /* 0x00000003 */ # 685: 0c33 + movi a4, 0 /* 0x00000000 */ # 687: 0c04 + call0 ieee80211_sta_new_state # 689: 050000 + j .Lbr061 # 68c: c6e3ff + + .balign 4 +# Function @ .irom0.text+0x690 + .balign 4 + .global ieee80211_parse_wmeparams + .type ieee80211_parse_wmeparams, @function +ieee80211_parse_wmeparams: + l8ui a5, a3, 1 /* [arg1+0x1] */ # 690: 520301 + movi a4, 23 /* 0x00000017 */ # 693: 1c74 + bltu a4, a5, .Lbr067 # 695: 573403 + movi a2, -1 /* 0xffffffff */ # 698: 7cf2 + ret /* 0xffffffff */ # 69a: 0df0 +.Lbr067: l8ui a7, a3, 8 /* [arg1+0x8] */ # 69c: 720308 + l8ui a8, a2, 87 /* [arg0+0x57] */ # 69f: 820257 + extui a6, a7, 0, 4 # 6a2: 706034 + bne a8, a6, .Lbr068 # 6a5: 679803 + movi a2, 0 /* 0x00000000 */ # 6a8: 0c02 + ret /* 0x00000000 */ # 6aa: 0df0 +.Lbr068: addi a3, a3, 10 /* arg1+0xa */ # 6ac: ab33 + s8i a6, a2, 87 /* a6 -> [arg0+0x57] */ # 6ae: 624257 + movi a9, 128 /* 0x00000080 */ # 6b1: 92a080 + addi a6, a2, 24 /* arg0+0x18 */ # 6b4: 62c218 + and a9, a7, a9 # 6b7: 909710 + s8i a9, a2, 12 /* a9 -> [arg0+0xc] */ # 6ba: 92420c +.Lbr069: l8ui a7, a3, 0 # 6bd: 720300 + extui a7, a7, 4, 1 # 6c0: 707404 + s8i a7, a2, 88 # 6c3: 724258 + l8ui a5, a3, 0 # 6c6: 520300 + extui a5, a5, 0, 4 # 6c9: 505034 + s8i a5, a2, 89 # 6cc: 524259 + l8ui a4, a3, 1 # 6cf: 420301 + extui a4, a4, 0, 4 # 6d2: 404034 + s8i a4, a2, 90 # 6d5: 42425a + l8ui a11, a3, 1 # 6d8: b20301 + addi a2, a2, 6 # 6db: 6b22 + extui a11, a11, 4, 4 # 6dd: b0b434 + s8i a11, a2, 85 # 6e0: b24255 + l8ui a10, a3, 2 # 6e3: a20302 + s8i a10, a2, 86 # 6e6: a24256 + addi a3, a3, 4 # 6e9: 4b33 + bne a2, a6, .Lbr069 # 6eb: 6792ce + movi a2, 1 /* 0x00000001 */ # 6ee: 0c12 + ret /* 0x00000001 */ # 6f0: 0df0 + + .literal_position # 6f4: 00000000 + # 6f8: 00000000 + # 6fc: 00000000 + # 700: 6c090000 + # 704: 00000000 + # 708: 00000000 + # 70c: 00000000 + # 710: 00000000 + # 714: 00000000 + # 718: 00000000 + # 71c: 00000000 + +# Function @ .irom0.text+0x720 +# Local variables/stack: +# (local0): word @ -0x80 +# (local1): word[21] @ -0x7c +# (local2): word @ -0x28 +# (local3): word @ -0x24 +# (local4): word @ -0x20 +# (local5): word @ -0x1c +# (local6): word @ -0x18 +# (local7): word @ -0x14 +# (local8): word @ -0x10 +# (local9): word @ -0xc +# (local10): word[2] @ -0x8 + .balign 4 +.Lfunc004: addi sp, sp, -128 /* (local0) */ # 720: 12c180 + s32i a14, sp, 112 /* a14 -> [(local8)] */ # 723: e2611c + s32i a15, sp, 116 /* a15 -> [(local9)] */ # 726: f2611d + s32i a5, sp, 92 /* arg3 -> [(local3)] */ # 729: 526117 + s32i a6, sp, 88 /* arg4 -> [(local2)] */ # 72c: 626116 + s32i a0, sp, 100 /* a0 -> [(local5)] */ # 72f: 026119 + s32i a13, sp, 108 /* a13 -> [(local7)] */ # 732: d2611b + s32i a12, sp, 104 /* a12 -> [(local6)] */ # 735: c2611a + s32i a3, sp, 120 /* arg1 -> [(local10)] */ # 738: 32611e + mov a12, a4 /* arg2 */ # 73b: cd04 + movi a3, 72 /* 0x00000048 */ # 73d: 4c83 + mov a13, a2 /* arg0 */ # 73f: dd02 + l32i a0, a2, 0 /* [arg0] */ # 741: 0802 + s32i a0, sp, 96 /* [arg0] -> [(local4)] */ # 743: 026118 + addi a2, sp, 16 /* (FP)-0x70 */ # 746: 22c110 + call0 bzero # 749: 01ecffc0 + # 74d: 0000 + l32i a15, sp, 120 /* [(local10)] */ # 74f: f2211e + l32i a14, a15, 4 /* [[(local10)]+0x4] */ # 752: e81f + l16ui a15, a15, 22 /* [[(local10)]+0x16] */ # 754: f21f0b + l32i a14, a14, 4 /* [[[(local10)]+0x4]+0x4] */ # 757: e81e + movi a0, 80 /* 0x00000050 */ # 759: 5c00 + add a15, a15, a14 # 75b: eaff + addi a15, a15, 24 # 75d: f2cf18 + blt a12, a0, .Lbr070 # 760: 072c07 + blt a0, a12, .Lbr074 # 763: c72052 + movi a12, 1 /* 0x00000001 */ # 766: 0c1c + j .Lbr078 # 768: 462400 +.Lbr070: blti a12, 32, .Lbr072 # 76b: a6cc2c + movi a0, 32 /* 0x00000020 */ # 76e: 2c00 + bge a0, a12, .Lbr073 # 770: c7a02f + bgei a12, 64, .Lbr073 # 773: e6dc2c + movi a2, 48 /* 0x00000030 */ # 776: 3c02 + bne a12, a2, .Lbr073 # 778: 279c27 +.Lbr071: l32i a3, a13, 60 /* [arg0+0x3c] */ # 77b: 38fd + bnei a3, 3, .Lbr073 # 77d: 663322 + sub a4, a15, a14 # 780: e04fc0 + addi a4, a4, -24 # 783: 42c4e8 + blti a4, 6, .Lbr073 # 786: a66419 + mov a5, a12 /* arg2 */ # 789: 5d0c + mov a4, a15 # 78b: 4d0f + mov a2, a13 /* arg0 */ # 78d: 2d0d + addi a3, a14, 24 /* [[[(local10)]+0x4]+0x4]+0x18 */ # 78f: 32ce18 + call0 .Lfunc005 # 792: 01dbffc0 + # 796: 0000 + j .Lbr073 # 798: c60100 +.Lbr072: blti a12, 16, .Lbr073 # 79b: a6bc04 + movi a5, 16 /* 0x00000010 */ # 79e: 1c05 + bge a5, a12, .Lbr071 # 7a0: c7a5d7 +.Lbr073: l32i a12, sp, 104 /* [(local6)] */ # 7a3: c2211a + l32i a13, sp, 108 /* [(local7)] */ # 7a6: d2211b + l32i a14, sp, 112 /* [(local8)] */ # 7a9: e2211c + l32i a15, sp, 116 /* [(local9)] */ # 7ac: f2211d + movi a2, 128 /* 0x00000080 */ # 7af: 22a080 + l32i a0, sp, 100 /* [(local5)] */ # 7b2: 022119 + add sp, sp, a2 /* (top of frame) */ # 7b5: 2a11 + ret /* 0x00000080 */ # 7b7: 0df0 +.Lbr074: movi a10, 176 /* 0x000000b0 */ # 7b9: a2a0b0 + bge a12, a10, .Lbr075 # 7bc: a7ac02 + j .Lbr080 # 7bf: 862200 +.Lbr075: bge a10, a12, .Lbr076 # 7c2: c7aa02 + j .Lbr084 # 7c5: 063500 +.Lbr076: sub a6, a15, a14 # 7c8: e06fc0 + addi a6, a6, -24 # 7cb: 62c6e8 + blti a6, 6, .Lbr073 # 7ce: a666d1 + l16ui a6, a14, 26 /* [[[[(local10)]+0x4]+0x4]+0x1a] */ # 7d1: 621e0d + l16ui a0, a14, 24 /* [[[[(local10)]+0x4]+0x4]+0x18] */ # 7d4: 021e0c + l16ui a7, a14, 28 /* [[[[(local10)]+0x4]+0x4]+0x1c] */ # 7d7: 721e0e + addi a8, a0, -1 /* [[[[(local10)]+0x4]+0x4]+0x18]-0x1 */ # 7da: 0b80 + bnez a8, .Lbr086 # 7dc: 56180f + mov a5, a15 # 7df: 5d0f + mov a2, a13 /* arg0 */ # 7e1: 2d0d + mov a3, a14 /* [[[(local10)]+0x4]+0x4] */ # 7e3: 3d0e + addi a4, a14, 30 /* [[[(local10)]+0x4]+0x4]+0x1e */ # 7e5: 42ce1e + s32i a6, sp, 0 /* [[[[(local10)]+0x4]+0x4]+0x1a] -> [(local0)] */ # 7e8: 6901 + s32i a7, sp, 4 /* [[[[(local10)]+0x4]+0x4]+0x1c] -> [(local1)] */ # 7ea: 7911 + l32i a6, sp, 92 /* [(local3)] */ # 7ec: 622117 + l32i a7, sp, 88 /* [(local2)] */ # 7ef: 722116 + call0 .Lfunc003 # 7f2: 85dbff + j .Lbr073 # 7f5: 86eaff +.Lbr077: bnei a12, 128, .Lbr073 # 7f8: 66eca7 + movi a12, 0 /* 0x00000000 */ # 7fb: 0c0c +.Lbr078: l32i a2, sp, 120 /* [(local10)] */ # 7fd: 22211e + addi a3, sp, 16 /* (FP)-0x70 */ # 800: 32c110 + mov a4, a12 # 803: 4d0c + call0 ieee80211_parse_beacon # 805: 01bfffc0 + # 809: 0000 + bnez a2, .Lbr073 # 80b: 5642f9 + mov a4, a12 # 80e: 4d0c + l32i a2, sp, 120 /* [(local10)] */ # 810: 22211e + addi a3, sp, 16 /* (FP)-0x70 */ # 813: 32c110 + call0 scan_parse_beacon # 816: 01bcffc0 + # 81a: 0000 + l32i a9, a13, 136 /* [arg0+0x88] */ # 81c: 922d22 + beqz a9, .Lbr073 # 81f: 1609f8 + l32i a10, a13, 60 /* [arg0+0x3c] */ # 822: a8fd + beqi a10, 5, .Lbr079 # 824: 265a02 + j .Lbr073 # 827: 06deff +.Lbr079: addi a12, a13, 32 /* arg0+0x20 */ # 82a: c2cd20 + mov a2, a12 /* arg0+0x20 */ # 82d: 2d0c + call0 os_timer_disarm # 82f: 01b7ffc0 + # 833: 0000 + l32i a4, a13, 136 /* [arg0+0x88] */ # 835: 422d22 + movi a3, 30 /* 0x0000001e */ # 838: 1ce3 + l16ui a4, a4, 28 /* [[arg0+0x88]+0x1c] */ # 83a: 42140e + mov a2, a12 /* arg0+0x20 */ # 83d: 2d0c + mul16u a3, a3, a4 # 83f: 4033c1 + movi a4, 0 /* 0x00000000 */ # 842: 0c04 + call0 os_timer_arm # 844: 01b3ffc0 + # 848: 0000 + j .Lbr073 # 84a: 46d5ff +.Lbr080: movi a0, 160 /* 0x000000a0 */ # 84d: 02a0a0 + blt a12, a0, .Lbr077 # 850: 072ca4 + bge a0, a12, .Lbr081 # 853: c7a002 + j .Lbr073 # 856: 46d2ff +.Lbr081: l32i a0, a13, 60 /* [arg0+0x3c] */ # 859: 08fd + beqi a0, 5, .Lbr082 # 85b: 265008 + beqi a0, 3, .Lbr082 # 85e: 263005 + addi a5, a0, -2 /* [arg0+0x3c]-0x2 */ # 861: 52c0fe + bnez a5, .Lbr073 # 864: 56b5f3 +.Lbr082: addi a2, a14, 4 /* [[[(local10)]+0x4]+0x4]+0x4 */ # 867: 4b2e + l32i a3, sp, 96 /* [(local4)] */ # 869: 322118 + movi a4, 6 /* 0x00000006 */ # 86c: 0c64 + addi a3, a3, 41 /* [(local4)]+0x29 */ # 86e: 32c329 + call0 memcmp # 871: 01a8ffc0 + # 875: 0000 + bnez a2, .Lbr073 # 877: 5682f2 + sub a4, a15, a14 # 87a: e04fc0 + addi a4, a4, -24 # 87d: 42c4e8 + bgei a4, 2, .Lbr083 # 880: e62402 + j .Lbr073 # 883: 06c7ff +.Lbr083: movi a2, g_ic # 886: 219bff + movi a3, 2 /* 0x00000002 */ # 889: 0c23 + l16ui a4, a14, 24 /* [[[[(local10)]+0x4]+0x4]+0x18] */ # 88b: 421e0c + movi a5, 160 /* 0x000000a0 */ # 88e: 52a0a0 + slli a4, a4, 8 # 891: 804411 + or a4, a4, a5 # 894: 504420 + call0 ieee80211_sta_new_state # 897: 050000 + j .Lbr073 # 89a: 46c1ff +.Lbr084: movi a0, 208 /* 0x000000d0 */ # 89d: 02a0d0 + blt a12, a0, .Lbr087 # 8a0: 072c40 + bge a0, a12, .Lbr085 # 8a3: c7a002 + j .Lbr073 # 8a6: 46beff +.Lbr085: l32i a5, a13, 60 /* [arg0+0x3c] */ # 8a9: 58fd + addi a5, a5, -5 /* [arg0+0x3c]-0x5 */ # 8ab: 52c5fb + bnez a5, .Lbr073 # 8ae: 5615ef + mov a2, a13 /* arg0 */ # 8b1: 2d0d + l32i a3, sp, 120 /* [(local10)] */ # 8b3: 32211e + call0 ieee80211_parse_action # 8b6: 0198ffc0 + # 8ba: 0000 + bnez a2, .Lbr073 # 8bc: 5632ee + mov a5, a15 # 8bf: 5d0f + mov a2, a13 /* arg0 */ # 8c1: 2d0d + mov a3, a14 /* [[[(local10)]+0x4]+0x4] */ # 8c3: 3d0e + addi a4, a14, 24 /* [[[(local10)]+0x4]+0x4]+0x18 */ # 8c5: 42ce18 + call0 ieee80211_recv_action # 8c8: 0195ffc0 + # 8cc: 0000 + j .Lbr073 # 8ce: 46b4ff +.Lbr086: bnez a0, .Lbr073 # 8d1: 56e0ec + mov a3, a14 /* [[[(local10)]+0x4]+0x4] */ # 8d4: 3d0e + mov a2, a13 /* arg0 */ # 8d6: 2d0d + l32i a4, sp, 92 /* [(local3)] */ # 8d8: 422117 + l32i a5, sp, 88 /* [(local2)] */ # 8db: 522116 + call0 .Lfunc002 # 8de: 05c6ff + j .Lbr073 # 8e1: 86afff +.Lbr087: movi a0, 192 /* 0x000000c0 */ # 8e4: 02a0c0 + sub a6, a12, a0 /* arg2-0xc0 */ # 8e7: 006cc0 + bnez a6, .Lbr073 # 8ea: 5656eb + sub a7, a15, a14 # 8ed: e07fc0 + addi a7, a7, -24 # 8f0: 72c7e8 + bgei a7, 2, .Lbr088 # 8f3: e62702 + j .Lbr073 # 8f6: 46aaff +.Lbr088: l32i a8, a13, 60 /* [arg0+0x3c] */ # 8f9: 88fd + addi a8, a8, -5 /* [arg0+0x3c]-0x5 */ # 8fb: 82c8fb + bnez a8, .Lbr073 # 8fe: 5618ea + movi a2, g_ic # 901: 217dff + l16ui a4, a14, 24 /* [[[[(local10)]+0x4]+0x4]+0x18] */ # 904: 421e0c + movi a3, 2 /* 0x00000002 */ # 907: 0c23 + slli a4, a4, 8 # 909: 804411 + or a4, a4, a0 # 90c: 004420 + call0 ieee80211_sta_new_state # 90f: 050000 + j .Lbr073 # 912: 46a3ff + + .literal_position # 918: 00000000 + # 91c: 00000000 + # 920: 00000400 + # 924: ffffdfff + # 928: 00001000 + # 92c: 0050f202 + # 930: 00000000 + # 934: 00904c33 + # 938: 00904c34 + # 93c: 00060060 + # 940: ffffefff + # 944: fffffbff + # 948: 00002000 + # 94c: 00000000 + # 950: 00000000 + # 954: 00000000 + # 958: 00000000 + # 95c: 00000000 + # 960: 00000000 + # 964: 00000000 + # 968: 00000000 + +# Function @ .irom0.text+0x96c +# Local variables/stack: +# (local0): word @ -0x30 +# (local1): word @ -0x2c +# (local2): word @ -0x28 +# (local3): word @ -0x24 +# (local4): word @ -0x20 +# (local5): word @ -0x1c +# (local6): word @ -0x18 +# (local7): word @ -0x14 +# (local8): word @ -0x10 +# (local9): word[3] @ -0xc + .balign 4 +.Lfunc005: addi sp, sp, -48 /* (local0) */ # 96c: 12c1d0 + s32i a14, sp, 24 /* a14 -> [(local6)] */ # 96f: e961 + s32i a15, sp, 28 /* a15 -> [(local7)] */ # 971: f971 + s32i a0, sp, 12 /* a0 -> [(local3)] */ # 973: 0931 + s32i a12, sp, 16 /* a12 -> [(local4)] */ # 975: c941 + s32i a13, sp, 20 /* a13 -> [(local5)] */ # 977: d951 + mov a13, a2 /* arg0 */ # 979: dd02 + l32i a12, a13, 136 /* [arg0+0x88] */ # 97b: c22d22 + mov a2, a5 /* arg3 */ # 97e: 2d05 + bnez a12, .Lbr097 # 980: 567c0c +.Lbr089: movi a2, -1 /* 0xffffffff */ # 983: 7cf2 + j .Lbr096 # 985: c62c00 +.Lbr090: l32i a2, a12, 8 /* [[arg0+0x88]+0x8] */ # 988: 282c + movi a3, -3 /* 0xfffffffd */ # 98a: 7cd3 + and a2, a2, a3 # 98c: 302210 + s32i a2, a12, 8 /* a2 -> [[arg0+0x88]+0x8] */ # 98f: 292c +.Lbr091: beqz a14, .Lbr092 # 991: bc3e + beqz a15, .Lbr092 # 993: bc1f + movi a4, g_ic+0x200 # 995: 41e0ff + l32i a4, a4, 0x30c /* [g_ic+0x50c] */ # 998: 4224c3 + bbci a4, 19, .Lbr092 # 99b: 377429 + mov a2, a13 /* arg0 */ # 99e: 2d0d + call0 ieee80211_ht_node_init # 9a0: 01ebffc0 + # 9a4: 0000 + mov a2, a13 /* arg0 */ # 9a6: 2d0d + mov a3, a14 # 9a8: 3d0e + mov a4, a15 # 9aa: 4d0f + call0 ieee80211_ht_updateparams # 9ac: 01e9ffc0 + # 9b0: 0000 + mov a3, a14 # 9b2: 3d0e + mov a2, a13 /* arg0 */ # 9b4: 2d0d + movi a4, 48 /* 0x00000030 */ # 9b6: 3c04 + call0 ieee80211_setup_htrates # 9b8: 01e7ffc0 + # 9bc: 0000 + mov a3, a15 # 9be: 3d0f + mov a2, a13 /* arg0 */ # 9c0: 2d0d + call0 ieee80211_setup_basic_htrates # 9c2: 01e5ffc0 + # 9c6: 0000 +.Lbr092: movi a13, g_ic # 9c8: d1d5ff + l16ui a2, a12, 30 /* [[arg0+0x88]+0x1e] */ # 9cb: 221c0f + l32i a0, a13, 28 /* [g_ic+0x1c] */ # 9ce: 087d + extui a5, a2, 5, 1 # 9d0: 205504 + beqz a5, .Lbr118 # 9d3: 16c521 + movi a4, 0x00040000 # 9d6: 41d2ff + movi a3, 0xffdfffff # 9d9: 31d2ff + or a0, a0, a4 # 9dc: 400020 + s32i a0, a13, 28 /* a0 -> [g_ic+0x1c] */ # 9df: 097d + and a0, a0, a3 # 9e1: 300010 +.Lbr093: movi a3, 1024 /* 0x00000400 */ # 9e4: 32a400 + s32i a0, a13, 28 /* a0 -> [g_ic+0x1c] */ # 9e7: 097d + and a3, a2, a3 # 9e9: 303210 + mov a2, a13 /* g_ic */ # 9ec: 2d0d + call0 ieee80211_set_shortslottime # 9ee: 01dbffc0 + # 9f2: 0000 + l32i a0, a12, 120 /* [[arg0+0x88]+0x78] */ # 9f4: 022c1e + l32i a0, a0, 0 /* [[[arg0+0x88]+0x78]] */ # 9f7: 0800 + movi a4, 192 /* 0x000000c0 */ # 9f9: 42a0c0 + ball a0, a4, .Lbr094 # 9fc: 474008 + movi a2, 1152 /* 0x00000480 */ # 9ff: 22a480 + ball a0, a2, .Lbr094 # a02: 274002 + j .Lbr117 # a05: c67700 +.Lbr094: l16ui a3, a12, 34 /* [[arg0+0x88]+0x22] */ # a08: 321c11 + extui a3, a3, 1, 1 # a0b: 303104 + beqz a3, .Lbr117 # a0e: 16631d + movi a2, 0x00100000 # a11: 21c5ff + l32i a0, a13, 28 /* [g_ic+0x1c] */ # a14: 087d + or a0, a0, a2 # a16: 200020 +.Lbr095: mov a2, a13 /* g_ic */ # a19: 2d0d + l32i a4, sp, 0 /* [(local0)] */ # a1b: 4801 + l32i a3, a13, 0 /* [g_ic] */ # a1d: 380d + s32i a0, a13, 28 /* a0 -> [g_ic+0x1c] */ # a1f: 097d + addmi a3, a3, 1536 /* [g_ic]+0x600 */ # a21: 32d306 + s32i a12, a3, 140 /* [arg0+0x88] -> [[g_ic]+0x68c] */ # a24: c26323 + movi a3, 5 /* 0x00000005 */ # a27: 0c53 + call0 ieee80211_sta_new_state # a29: 050000 + mov a3, a12 /* [arg0+0x88] */ # a2c: 3d0c + movi a2, 0 /* 0x00000000 */ # a2e: 0c02 + movi a4, 1 /* 0x00000001 */ # a30: 0c14 + movi a5, 0 /* 0x00000000 */ # a32: 0c05 + call0 ic_bss_info_update # a34: 01cbffc0 + # a38: 0000 + movi a2, 0 /* 0x00000000 */ # a3a: 0c02 +.Lbr096: l32i a12, sp, 16 /* [(local4)] */ # a3c: c841 + l32i a13, sp, 20 /* [(local5)] */ # a3e: d851 + l32i a14, sp, 24 /* [(local6)] */ # a40: e861 + l32i a15, sp, 28 /* [(local7)] */ # a42: f871 + l32i a0, sp, 12 /* [(local3)] */ # a44: 0831 + addi sp, sp, 48 /* (top of frame) */ # a46: 12c130 + ret # a49: 0df0 +.Lbr097: l16ui a5, a3, 2 /* [arg1+0x2] */ # a4b: 521301 + l16ui a0, a3, 0 /* [arg1] */ # a4e: 021300 + bnez a5, .Lbr089 # a51: 56e5f2 + s32i a0, sp, 4 /* [arg1] -> [(local1)] */ # a54: 0911 + s32i a2, sp, 0 /* arg3 -> [(local0)] */ # a56: 2901 + l16ui a6, a3, 4 /* [arg1+0x4] */ # a58: 621302 + s32i a6, sp, 8 /* [arg1+0x4] -> [(local2)] */ # a5b: 6921 + addi a3, a3, 6 /* arg1+0x6 */ # a5d: 6b33 + sub a9, a4, a3 # a5f: 3094c0 + bgei a9, 2, .Lbr098 # a62: e62902 + j .Lbr112 # a65: 464200 +.Lbr098: movi a5, 50 /* 0x00000032 */ # a68: 3c25 + movi a11, 45 /* 0x0000002d */ # a6a: 2cdb + movi a10, 0 /* 0x00000000 */ # a6c: 0c0a + movi a2, 0 /* 0x00000000 */ # a6e: 0c02 + movi a0, 0 /* 0x00000000 */ # a70: 0c00 + movi a15, 0 /* 0x00000000 */ # a72: 0c0f + movi a14, 0 /* 0x00000000 */ # a74: 0c0e +.Lbr099: l8ui a8, a3, 1 # a76: 820301 + l8ui a7, a3, 0 # a79: 720300 + addi a6, a8, 2 # a7c: 2b68 + bge a9, a6, .Lbr100 # a7e: 67a902 + j .Lbr089 # a81: 86bfff +.Lbr100: addi a9, a7, -1 # a84: 0b97 + beqz a9, .Lbr109 # a86: 16690d + sub a6, a7, a11 # a89: b067c0 + beqz a6, .Lbr108 # a8c: 16b60c + sub a9, a7, a5 # a8f: 5097c0 + beqz a9, .Lbr107 # a92: 16090c + addi a6, a7, -61 # a95: 62c7c3 + beqz a6, .Lbr106 # a98: 16560b + movi a9, 221 /* 0x000000dd */ # a9b: 92a0dd + sub a9, a7, a9 # a9e: 9097c0 + bnez a9, .Lbr110 # aa1: 56d90b + movi a9, 0 /* 0x00000000 */ # aa4: 0c09 + bltui a8, 4, .Lbr101 # aa6: b64829 + l8ui a6, a3, 2 # aa9: 620302 + s32i a0, sp, 36 /* a0 -> [(local9)] */ # aac: 0991 + l8ui a7, a3, 3 # aae: 720303 + l8ui a0, a3, 5 # ab1: 020305 + slli a7, a7, 8 # ab4: 807711 + or a6, a6, a7 # ab7: 706620 + l8ui a7, a3, 4 # aba: 720304 + slli a0, a0, 24 # abd: 800001 + slli a7, a7, 16 # ac0: 007711 + or a7, a7, a0 # ac3: 007720 + or a6, a6, a7 # ac6: 706620 + movi a7, 0x02f25000 # ac9: 7198ff + l32i a0, sp, 36 /* [(local9)] */ # acc: 0891 + bne a6, a7, .Lbr101 # ace: 779601 + movi a9, 1 /* 0x00000001 */ # ad1: 0c19 +.Lbr101: beqz a9, .Lbr102 # ad3: 8c39 + mov a10, a3 # ad5: ad03 + j .Lbr110 # ad7: c62100 +.Lbr102: movi a9, g_ic+0x200 # ada: 9195ff + l32i a9, a9, 0x30c /* [g_ic+0x50c] */ # add: 9229c3 + bbci a9, 28, .Lbr110 # ae0: c7797e + movi a9, 0 /* 0x00000000 */ # ae3: 0c09 + bltui a8, 4, .Lbr103 # ae5: b64829 + l8ui a6, a3, 2 # ae8: 620302 + s32i a0, sp, 36 /* a0 -> [(local9)] */ # aeb: 0991 + l8ui a7, a3, 3 # aed: 720303 + l8ui a0, a3, 5 # af0: 020305 + slli a7, a7, 8 # af3: 807711 + or a6, a6, a7 # af6: 706620 + l8ui a7, a3, 4 # af9: 720304 + slli a0, a0, 24 # afc: 800001 + slli a7, a7, 16 # aff: 007711 + or a7, a7, a0 # b02: 007720 + or a6, a6, a7 # b05: 706620 + movi a7, 0x334c9000 # b08: 718bff + l32i a0, sp, 36 /* [(local9)] */ # b0b: 0891 + bne a6, a7, .Lbr103 # b0d: 779601 + movi a9, 1 /* 0x00000001 */ # b10: 0c19 +.Lbr103: beqz a9, .Lbr104 # b12: 8c49 + moveqz a14, a3, a14 # b14: e0e383 + j .Lbr110 # b17: c61100 +.Lbr104: movi a9, 0 /* 0x00000000 */ # b1a: 0c09 + bltui a8, 4, .Lbr105 # b1c: b64829 + l8ui a6, a3, 2 # b1f: 620302 + s32i a0, sp, 36 /* a0 -> [(local9)] */ # b22: 0991 + l8ui a7, a3, 3 # b24: 720303 + l8ui a0, a3, 5 # b27: 020305 + slli a7, a7, 8 # b2a: 807711 + or a6, a6, a7 # b2d: 706620 + l8ui a7, a3, 4 # b30: 720304 + slli a0, a0, 24 # b33: 800001 + slli a7, a7, 16 # b36: 007711 + or a7, a7, a0 # b39: 007720 + or a6, a6, a7 # b3c: 706620 + movi a7, 0x344c9000 # b3f: 717eff + l32i a0, sp, 36 /* [(local9)] */ # b42: 0891 + bne a6, a7, .Lbr105 # b44: 779601 + movi a9, 1 /* 0x00000001 */ # b47: 0c19 +.Lbr105: beqz a9, .Lbr110 # b49: 9c59 + moveqz a14, a3, a15 # b4b: f0e383 + j .Lbr110 # b4e: 060400 +.Lbr106: mov a15, a3 # b51: fd03 + j .Lbr110 # b53: c60200 +.Lbr107: mov a2, a3 # b56: 2d03 + j .Lbr110 # b58: 860100 +.Lbr108: mov a14, a3 # b5b: ed03 + j .Lbr110 # b5d: 460000 +.Lbr109: mov a0, a3 # b60: 0d03 +.Lbr110: add a3, a8, a3 # b62: 3a38 + addi a3, a3, 2 # b64: 2b33 + sub a9, a4, a3 # b66: 3094c0 + blti a9, 2, .Lbr111 # b69: a62902 + j .Lbr099 # b6c: 86c1ff +.Lbr111: j .Lbr113 # b6f: 460200 +.Lbr112: movi a14, 0 /* 0x00000000 */ # b72: 0c0e + movi a15, 0 /* 0x00000000 */ # b74: 0c0f + movi a0, 0 /* 0x00000000 */ # b76: 0c00 + movi a2, 0 /* 0x00000000 */ # b78: 0c02 + movi a10, 0 /* 0x00000000 */ # b7a: 0c0a +.Lbr113: beqz a0, .Lbr089 # b7c: 1630e0 + l8ui a3, a0, 1 # b7f: 320001 + bltui a3, 16, .Lbr114 # b82: b6b302 + j .Lbr089 # b85: 867eff +.Lbr114: s32i a10, sp, 32 /* a10 -> [(local8)] */ # b88: a981 + beqz a2, .Lbr115 # b8a: 8ce2 + s32i a10, sp, 32 /* a10 -> [(local8)] */ # b8c: a981 + l8ui a5, a2, 1 # b8e: 520201 + movi a4, 15 /* 0x0000000f */ # b91: 0cf4 + sub a4, a4, a3 # b93: 3044c0 + bge a4, a5, .Lbr115 # b96: 57a402 + j .Lbr089 # b99: 8679ff +.Lbr115: movi a5, 47 /* 0x0000002f */ # b9c: 2cf5 + mov a4, a2 # b9e: 4d02 + mov a3, a0 # ba0: 3d00 + mov a2, a12 /* [arg0+0x88] */ # ba2: 2d0c + call0 ieee80211_setup_rates # ba4: 0170ffc0 + # ba8: 0000 + l32i a3, sp, 32 /* [(local8)] */ # baa: 3881 + l32i a6, sp, 8 /* [(local2)] */ # bac: 6821 + l32i a5, a13, 80 /* [arg0+0x50] */ # bae: 522d14 + l32i a7, sp, 4 /* [(local1)] */ # bb1: 7811 + s16i a7, a12, 30 /* [(local1)] -> [[arg0+0x88]+0x1e] */ # bb3: 725c0f + s16i a6, a12, 26 /* [(local2)] -> [[arg0+0x88]+0x1a] */ # bb6: 625c0d + bnez a5, .Lbr116 # bb9: cc95 + movi a8, 0x60000600 # bbb: 8160ff + memw # bbe: c02000 + l32i a8, a8, 36 /* [0x60000624] */ # bc1: 8898 + s32i a8, a13, 80 /* [0x60000624] -> [arg0+0x50] */ # bc3: 826d14 +.Lbr116: beqz a3, .Lbr090 # bc6: 16e3db + mov a2, a12 /* [arg0+0x88] */ # bc9: 2d0c + call0 ieee80211_parse_wmeparams # bcb: 050000 + bltz a2, .Lbr090 # bce: 9662db + mov a2, a12 /* [arg0+0x88] */ # bd1: 2d0c + addi a3, a12, 87 /* [arg0+0x88]+0x57 */ # bd3: 32cc57 + l32i a10, a12, 8 /* [[arg0+0x88]+0x8] */ # bd6: a82c + movi a11, -3 /* 0xfffffffd */ # bd8: 7cdb + and a10, a10, a11 # bda: b0aa10 + s32i a10, a12, 8 /* a10 -> [[arg0+0x88]+0x8] */ # bdd: a92c + call0 ieee80211_wme_updateparams # bdf: 0162ffc0 + # be3: 0000 + j .Lbr091 # be5: 066aff +.Lbr117: movi a2, 0xffefffff # be8: 2156ff + l32i a0, a13, 28 /* [g_ic+0x1c] */ # beb: 087d + and a0, a0, a2 # bed: 200010 + j .Lbr095 # bf0: 4689ff +.Lbr118: movi a4, 0xfffbffff # bf3: 4154ff + movi a3, 0x00200000 # bf6: 3154ff + and a0, a0, a4 # bf9: 400010 + s32i a0, a13, 28 /* a0 -> [g_ic+0x1c] */ # bfc: 097d + or a0, a0, a3 # bfe: 300020 + j .Lbr093 # c01: c677ff + + .literal_position # c04: 00000000 + # c08: 00000000 + # c0c: 00000000 + # c10: 00000000 + # c14: 00000000 + # c18: 00000000 + # c1c: 00000000 + # c20: 00000000 + # c24: 00000000 + # c28: 00000000 + # c2c: 00000000 + +# Function @ .irom0.text+0xc30 +# Local variables/stack: +# (local0): word[4] @ -0x20 +# (local1): word @ -0x10 +# (local2): word @ -0xc +# (local3): word[2] @ -0x8 + .balign 4 + .global wifi_station_start + .type wifi_station_start, @function +wifi_station_start: + addi sp, sp, -32 /* (local0) */ # c30: 12c1e0 + s32i a0, sp, 20 /* a0 -> [(local2)] */ # c33: 0951 + movi a0, g_ic # c35: 01f3ff + s32i a12, sp, 24 /* a12 -> [(local3)] */ # c38: c961 + l32i a12, a0, 16 /* [g_ic+0x10] */ # c3a: c840 + movi a2, 0 /* 0x00000000 */ # c3c: 0c02 + bnez a12, .Lbr119 # c3e: cc1c + j .Lbr122 # c40: c61a00 +.Lbr119: l8ui a2, a12, 187 /* [[g_ic+0x10]+0xbb] */ # c43: 220cbb + movi a0, info+0x1e # c46: 01f0ff + bnei a2, 1, .Lbr120 # c49: 661204 + movi a2, 1 /* 0x00000001 */ # c4c: 0c12 + j .Lbr122 # c4e: 461700 +.Lbr120: l32i a3, a12, 0 /* [[g_ic+0x10]] */ # c51: 380c + s32i a0, sp, 16 /* info+0x1e -> [(local1)] */ # c53: 0941 + bnez a3, .Lbr121 # c55: fc93 + movi a2, 52 /* 0x00000034 */ # c57: 3c42 + call0 malloc # c59: 01f0ffc0 + # c5d: 0000 + l32i a3, sp, 16 /* [(local1)] */ # c5f: 3841 + s32i a2, a12, 0 /* a2 -> [[g_ic+0x10]] */ # c61: 290c + movi a4, 6 /* 0x00000006 */ # c63: 0c64 + addi a2, a2, 41 # c65: 22c229 + call0 memcpy # c68: 01eeffc0 + # c6c: 0000 + mov a6, a12 /* [g_ic+0x10] */ # c6e: 6d0c + movi a7, ethernetif_init # c70: 71e7ff + l32i a2, a12, 0 /* [[g_ic+0x10]] */ # c73: 280c + movi a3, info+0xc # c75: 31e6ff + movi a8, tcpip_input # c78: 81e7ff + addi a4, a3, 4 /* info+0x10 */ # c7b: 4b43 + addi a5, a3, 8 /* info+0x14 */ # c7d: 8b53 + s32i a8, sp, 0 /* tcpip_input -> [(local0)] */ # c7f: 8901 + call0 netif_add # c81: 01e8ffc0 + # c85: 0000 + movi a2, g_ic # c87: 21e4ff + call0 wpa_attach # c8a: 01e7ffc0 + # c8e: 0000 + l32i a0, sp, 16 /* [(local1)] */ # c90: 0841 +.Lbr121: movi a2, 0 /* 0x00000000 */ # c92: 0c02 + movi a3, 1 /* 0x00000001 */ # c94: 0c13 + movi a5, 0 /* 0x00000000 */ # c96: 0c05 + movi a6, 0 /* 0x00000000 */ # c98: 0c06 + mov a4, a0 # c9a: 4d00 + call0 ic_set_vif # c9c: 01e4ffc0 + # ca0: 0000 + movi a2, 1 /* 0x00000001 */ # ca2: 0c12 + movi a9, 0 /* 0x00000000 */ # ca4: 0c09 + s8i a9, a12, 184 /* 0x00 -> [[g_ic+0x10]+0xb8] */ # ca6: 924cb8 + s8i a9, a12, 185 /* 0x00 -> [[g_ic+0x10]+0xb9] */ # ca9: 924cb9 + s8i a2, a12, 187 /* 0x01 -> [[g_ic+0x10]+0xbb] */ # cac: 224cbb +.Lbr122: l32i a12, sp, 24 /* [(local3)] */ # caf: c861 + l32i a0, sp, 20 /* [(local2)] */ # cb1: 0851 + addi sp, sp, 32 /* (top of frame) */ # cb3: 12c120 + ret # cb6: 0df0 + + .literal_position # cb8: 00000000 + # cbc: 00000000 + # cc0: 00000000 + +# Function @ .irom0.text+0xcc4 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global wifi_station_stop + .type wifi_station_stop, @function +wifi_station_stop: + addi sp, sp, -16 /* (local0) */ # cc4: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # cc7: c911 + movi a12, g_ic # cc9: c1fbff + movi a2, 0 /* 0x00000000 */ # ccc: 0c02 + l32i a12, a12, 16 /* [g_ic+0x10] */ # cce: c84c + s32i a0, sp, 0 /* a0 -> [(local0)] */ # cd0: 0901 + bnez a12, .Lbr123 # cd2: cc1c + j .Lbr125 # cd4: 860100 +.Lbr123: l8ui a0, a12, 187 /* [[g_ic+0x10]+0xbb] */ # cd7: 020cbb + bnez a0, .Lbr126 # cda: cc90 +.Lbr124: movi a2, 1 /* 0x00000001 */ # cdc: 0c12 +.Lbr125: l32i a12, sp, 4 /* [(local1)] */ # cde: c811 + l32i a0, sp, 0 /* [(local0)] */ # ce0: 0801 + addi sp, sp, 16 /* (top of frame) */ # ce2: 12c110 + ret # ce5: 0df0 +.Lbr126: movi a2, 0 /* 0x00000000 */ # ce7: 0c02 + s8i a2, a12, 184 /* 0x00 -> [[g_ic+0x10]+0xb8] */ # ce9: 224cb8 + s8i a2, a12, 185 /* 0x00 -> [[g_ic+0x10]+0xb9] */ # cec: 224cb9 + call0 wifi_station_disconnect # cef: 01f3ffc0 + # cf3: 0000 + movi a2, 0 /* 0x00000000 */ # cf5: 0c02 + movi a3, 0 /* 0x00000000 */ # cf7: 0c03 + movi a4, 0 /* 0x00000000 */ # cf9: 0c04 + movi a5, 0 /* 0x00000000 */ # cfb: 0c05 + movi a6, 0 /* 0x00000000 */ # cfd: 0c06 + call0 ic_set_vif # cff: 01f0ffc0 + # d03: 0000 + movi a3, 0 /* 0x00000000 */ # d05: 0c03 + s8i a3, a12, 187 /* 0x00 -> [[g_ic+0x10]+0xbb] */ # d07: 324cbb + j .Lbr124 # d0a: 86f3ff diff --git a/binary_sdk/libnet80211_stage1/if_eagle.S b/binary_sdk/libnet80211_stage1/if_eagle.S new file mode 100644 index 0000000..e69de29 diff --git a/binary_sdk/libnet80211_stage1/wl_chm.S b/binary_sdk/libnet80211_stage1/wl_chm.S new file mode 100644 index 0000000..65f8b82 --- /dev/null +++ b/binary_sdk/libnet80211_stage1/wl_chm.S @@ -0,0 +1,497 @@ + + .section .text, "ax", @progbits + + .literal_position # 0: 00000000 + +# Function @ .text+0x4 + .balign 4 + .global chm_get_current_channel + .type chm_get_current_channel, @function +chm_get_current_channel: + movi a2, .Ldata001 # 4: 21ffff + l32i a2, a2, 60 /* [.Ldata009] */ # 7: 28f2 + ret /* [.Ldata009] */ # 9: 0df0 + + .section .bss, "aw", @nobits + +.Ldata001: .word 0x00000000 # 0: 00000000 +.Ldata002: .word 0x00000000 # 4: 00000000 +.Ldata003: .word 0x00000000 # 8: 00000000 +.Ldata004: .word 0x00000000 # c: 00000000 +.Ldata005: .word 0x00000000 # 10: 00000000 +.Ldata006: .word 0x00000000 # 14: 00000000 +.Ldata007: .word 0x00000000 # 18: 00000000 +.Ldata008: .word 0x00000000 # 1c: 00000000 +.Label001: .space 28 +.Ldata009: .word 0x00000000 # 3c: 00000000 +.Ldata010: .byte 0x00 +.Ldata011: .byte 0x00 + + .section .irom0.text, "ax", @progbits + + .literal_position # 0: 00feef3f + # 4: 00000000 + # 8: 00000000 + # c: 00000000 + # 10: 00000000 + # 14: 20000000 + # 18: 48020000 + # 1c: 00000000 + # 20: 00000000 + # 24: 00000000 + # 28: 00000000 + +# Function @ .irom0.text+0x2c +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word[4] @ -0x10 + .balign 4 + .global chm_init + .type chm_init, @function +chm_init: movi a4, -32 /* 0xffffffe0 */ # 2c: 6c04 + movi a5, NMIIrqIsOn # 2e: 51f7ff + movi a3, g_ic+0x180 # 31: 31f4ff + movi a6, .Ldata001 # 34: 61f5ff + addi sp, sp, -32 /* (local0) */ # 37: 12c1e0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 3a: c911 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 3c: d921 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 3e: 0901 + movi a13, 0x3feffe00 # 40: d1f0ff + movi a0, 0 /* 0x00000000 */ # 43: 0c00 + s32i a2, a6, 0 /* arg0 -> [.Ldata001] */ # 45: 2906 + mov a12, a2 /* arg0 */ # 47: cd02 + l8ui a6, a3, 96 /* [g_ic+0x1e0] */ # 49: 620360 + l8ui a2, a5, 0 /* [NMIIrqIsOn] */ # 4c: 220500 + addmi a3, a3, 256 /* g_ic+0x280 */ # 4f: 32d301 + l8ui a3, a3, 141 /* [g_ic+0x30d] */ # 52: 32038d + addi a6, a6, -1 /* [g_ic+0x1e0]-0x1 */ # 55: 0b66 + addi a3, a3, -1 /* [g_ic+0x30d]-0x1 */ # 57: 0b33 + extui a3, a3, 0, 8 # 59: 303074 + movnez a0, a3, a6 # 5c: 600393 + s32i a0, sp, 16 /* a0 -> [(local4)] */ # 5f: 0941 + bnez a2, .Lbr002 # 61: ec32 + call0 vPortEnterCritical # 63: 01eeffc0 + # 67: 0000 + movi a4, -32 /* 0xffffffe0 */ # 69: 6c04 +.Lbr001: memw # 6b: c02000 + l32i a9, a13, 0x200 /* [0x3ff00000] */ # 6e: 922d80 + and a9, a9, a4 # 71: 409910 + memw # 74: c02000 + s32i a9, a13, 0x200 /* a9 -> [0x3ff00000] */ # 77: 926d80 + memw # 7a: c02000 + l32i a8, a13, 0x200 /* [0x3ff00000] */ # 7d: 822d80 + bbsi a8, 0, .Lbr001 # 80: 07e8e7 + l32i a0, sp, 16 /* [(local4)] */ # 83: 0841 + movi a5, NMIIrqIsOn # 85: 51e2ff +.Lbr002: movi a2, 132 /* 0x00000084 */ # 88: 22a084 + addx2 a0, a0, a0 # 8b: 000090 + addx4 a0, a0, a12 # 8e: c000a0 + add a0, a0, a2 # 91: 2a00 + s32i a0, a12, 0x14c /* a0 -> [arg0+0x14c] */ # 93: 026c53 + l8ui a10, a5, 0 /* [NMIIrqIsOn] */ # 96: a20500 + s32i a0, sp, 12 /* a0 -> [(local3)] */ # 99: 0931 + bnez a10, .Lbr003 # 9b: dcaa + memw # 9d: c02000 + l32i a2, a13, 0x200 /* [0x3ff00000] */ # a0: 222d80 + movi a3, 1 /* 0x00000001 */ # a3: 0c13 + and a2, a2, a4 # a5: 402210 + or a2, a2, a3 # a8: 302220 + memw # ab: c02000 + s32i a2, a13, 0x200 /* a2 -> [0x3ff00000] */ # ae: 226d80 + call0 vPortExitCritical # b1: 01dbffc0 + # b5: 0000 + l32i a0, sp, 12 /* [(local3)] */ # b7: 0831 +.Lbr003: mov a2, a0 # b9: 2d00 + call0 chm_set_current_channel # bb: 01daffc0 + # bf: 0000 + movi a2, .Label001 # c1: 21d4ff + movi a3, .Lfunc002 # c4: 31d5ff + movi a4, 0 /* 0x00000000 */ # c7: 0c04 + call0 os_timer_setfn # c9: 01d7ffc0 + # cd: 0000 + l32i a12, sp, 4 /* [(local1)] */ # cf: c811 + l32i a13, sp, 8 /* [(local2)] */ # d1: d821 + l32i a0, sp, 0 /* [(local0)] */ # d3: 0801 + addi sp, sp, 32 /* (top of frame) */ # d5: 12c120 + ret # d8: 0df0 + + .literal_position # dc: 00000000 + # e0: 00000000 + +# Function @ .irom0.text+0xe4 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word @ -0x8 +# (local3): word @ -0x4 + .balign 4 + .global chm_acquire_lock + .type chm_acquire_lock, @function +chm_acquire_lock: + addi sp, sp, -16 /* (local0) */ # e4: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # e7: c911 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # e9: 0901 + mov a12, a2 /* arg0 */ # eb: cd02 + movi a0, .Ldata001 # ed: 01fbff + mov a2, a4 /* arg2 */ # f0: 2d04 + l8ui a4, a0, 64 /* [.Ldata010] */ # f2: 420040 + l8ui a5, a0, 65 /* [.Ldata011] */ # f5: 520041 + beqz a4, .Lbr005 # f8: 9c44 + s32i a2, sp, 12 /* arg2 -> [(local3)] */ # fa: 2931 + s32i a3, sp, 8 /* arg1 -> [(local2)] */ # fc: 3921 + bgeu a5, a12, .Lbr004 # fe: c7b504 + movi a2, 3 /* 0x00000003 */ # 101: 0c32 + j .Lbr006 # 103: c60500 +.Lbr004: call0 chm_cancel_op # 106: 050000 + l32i a2, sp, 12 /* [(local3)] */ # 109: 2831 + movi a0, .Ldata001 # 10b: 01f5ff + l32i a3, sp, 8 /* [(local2)] */ # 10e: 3821 +.Lbr005: s8i a12, a0, 65 /* arg0 -> [.Ldata011] */ # 110: c24041 + s32i a3, a0, 24 /* a3 -> [.Ldata007] */ # 113: 3960 + s32i a2, a0, 28 /* a2 -> [.Ldata008] */ # 115: 2970 + movi a6, 1 /* 0x00000001 */ # 117: 0c16 + movi a2, 0 /* 0x00000000 */ # 119: 0c02 + s8i a6, a0, 64 /* 0x01 -> [.Ldata010] */ # 11b: 624040 +.Lbr006: l32i a12, sp, 4 /* [(local1)] */ # 11e: c811 + l32i a0, sp, 0 /* [(local0)] */ # 120: 0801 + addi sp, sp, 16 /* (top of frame) */ # 122: 12c110 + ret # 125: 0df0 + + .literal_position # 128: 00000000 + +# Function @ .irom0.text+0x12c + .balign 4 + .global chm_release_lock + .type chm_release_lock, @function +chm_release_lock: + movi a3, .Ldata001 # 12c: 31ffff + movi a2, 0 /* 0x00000000 */ # 12f: 0c02 + s32i a2, a3, 28 /* 0x00000000 -> [.Ldata008] */ # 131: 2973 + s32i a2, a3, 24 /* 0x00000000 -> [.Ldata007] */ # 133: 2963 + s8i a2, a3, 64 /* 0x00 -> [.Ldata010] */ # 135: 224340 + s8i a2, a3, 65 /* 0x00 -> [.Ldata011] */ # 138: 224341 + ret /* 0x00000000 */ # 13b: 0df0 + + .literal_position # 140: 00000000 + # 144: 00000000 + +# Function @ .irom0.text+0x148 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global chm_start_op + .type chm_start_op, @function +chm_start_op: + addi sp, sp, -16 /* (local0) */ # 148: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 14b: 0901 + movi a0, .Ldata001 # 14d: 01fcff + l32i a7, a0, 4 /* [.Ldata002] */ # 150: 7810 + beqz a7, .Lbr010 # 152: 8cf7 + movi a2, 3 /* 0x00000003 */ # 154: 0c32 + j .Lbr009 # 156: 060100 +.Lbr007: call0 .Lfunc001 # 159: 450400 +.Lbr008: movi a2, 0 /* 0x00000000 */ # 15c: 0c02 +.Lbr009: l32i a0, sp, 0 /* [(local0)] */ # 15e: 0801 + addi sp, sp, 16 /* (top of frame) */ # 160: 12c110 + ret # 163: 0df0 +.Lbr010: s32i a2, a0, 4 /* arg0 -> [.Ldata002] */ # 165: 2910 + s32i a4, a0, 16 /* arg2 -> [.Ldata005] */ # 167: 4940 + movi a8, g_ic # 169: 81f6ff + s32i a5, a0, 20 /* arg3 -> [.Ldata006] */ # 16c: 5950 + l32i a8, a8, 0 /* [g_ic] */ # 16e: 8808 + s32i a3, a0, 8 /* arg1 -> [.Ldata003] */ # 170: 3920 + l32i a8, a8, 0 /* [[g_ic]] */ # 172: 8808 + s32i a6, a0, 12 /* arg4 -> [.Ldata004] */ # 174: 6930 + bbci a8, 1, .Lbr007 # 176: 1768df + call0 .Lfunc001 # 179: 450200 + j .Lbr008 # 17c: 06f7ff + + .literal_position # 180: 00000000 + # 184: 04000000 + # 188: 20000000 + # 18c: 00000000 + # 190: 00000000 + # 194: 00000000 + # 198: 00000000 + # 19c: 00000000 + +# Function @ .irom0.text+0x1a0 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word @ -0x8 +# (local3): word @ -0x4 + .balign 4 +.Lfunc001: addi sp, sp, -16 /* (local0) */ # 1a0: 12c1f0 + s32i a13, sp, 12 /* a13 -> [(local3)] */ # 1a3: d931 + s32i a12, sp, 8 /* a12 -> [(local2)] */ # 1a5: c921 + movi a13, .Ldata001 # 1a7: d1f6ff + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 1aa: 0911 + l32i a12, a13, 16 /* [.Ldata005] */ # 1ac: c84d + l32i a0, a13, 12 /* [.Ldata004] */ # 1ae: 083d + s32i a0, sp, 0 /* [.Ldata004] -> [(local0)] */ # 1b0: 0901 + call0 chm_get_current_channel # 1b2: 01f6ffc0 + # 1b6: 0000 + mov a3, a2 # 1b8: 3d02 + l32i a2, a13, 4 /* [.Ldata002] */ # 1ba: 281d + l16ui a3, a3, 4 # 1bc: 321302 + l16ui a4, a2, 4 /* [[.Ldata002]+0x4] */ # 1bf: 421202 + beq a3, a4, .Lbr011 # 1c2: 471305 + call0 chm_set_current_channel # 1c5: 01f2ffc0 + # 1c9: 0000 +.Lbr011: beqz a12, .Lbr012 # 1cb: 8c5c + l32i a2, sp, 0 /* [(local0)] */ # 1cd: 2801 + movi a3, 0 /* 0x00000000 */ # 1cf: 0c03 + callx0 a12 /* [.Ldata005] */ # 1d1: c00c00 +.Lbr012: l32i a4, a13, 8 /* [.Ldata003] */ # 1d4: 482d + bnez a4, .Lbr013 # 1d6: ccc4 + movi a2, .Ldata002 # 1d8: 21ebff + movi a3, 20 /* 0x00000014 */ # 1db: 1c43 + call0 bzero # 1dd: 01edffc0 + # 1e1: 0000 + j .Lbr014 # 1e3: 860500 +.Lbr013: movi a12, .Label001 # 1e6: c1e8ff + mov a2, a12 /* .Label001 */ # 1e9: 2d0c + call0 os_timer_disarm # 1eb: 01ebffc0 + # 1ef: 0000 + mov a2, a12 /* .Label001 */ # 1f1: 2d0c + l32i a3, a13, 8 /* [.Ldata003] */ # 1f3: 382d + movi a4, 0 /* 0x00000000 */ # 1f5: 0c04 + call0 os_timer_arm # 1f7: 01e9ffc0 + # 1fb: 0000 +.Lbr014: l32i a12, sp, 8 /* [(local2)] */ # 1fd: c821 + l32i a13, sp, 12 /* [(local3)] */ # 1ff: d831 + l32i a0, sp, 4 /* [(local1)] */ # 201: 0811 + addi sp, sp, 16 /* (top of frame) */ # 203: 12c110 + ret # 206: 0df0 + + .literal_position # 208: 00000000 + # 20c: 00000000 + # 210: 00000000 + +# Function @ .irom0.text+0x214 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 + .global chm_end_op + .type chm_end_op, @function +chm_end_op: movi a3, -4 /* 0xfffffffc */ # 214: 7cc3 + addi sp, sp, -16 /* (local0) */ # 216: 12c1f0 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 219: 0911 + movi a0, .Ldata001 # 21b: 01fbff + s32i a2, sp, 0 /* arg0 -> [(local0)] */ # 21e: 2901 + beq a0, a3, .Lbr015 # 220: 37101d + mov a2, a0 /* .Ldata001 */ # 223: 2d00 + l32i a3, a2, 20 /* [.Ldata006] */ # 225: 3852 + s32i a3, sp, 8 /* [.Ldata006] -> [(local2)] */ # 227: 3921 + addi a2, a2, 4 /* .Ldata002 */ # 229: 4b22 + movi a3, 20 /* 0x00000014 */ # 22b: 1c43 + call0 bzero # 22d: 01f8ffc0 + # 231: 0000 + l32i a5, sp, 8 /* [(local2)] */ # 233: 5821 + beqz a5, .Lbr015 # 235: 8c85 + movi a2, .Ldata001 # 237: 21f5ff + l32i a3, sp, 0 /* [(local0)] */ # 23a: 3801 + l32i a2, a2, 12 /* [.Ldata004] */ # 23c: 2832 + callx0 a5 /* [(local2)] */ # 23e: c00500 +.Lbr015: l32i a0, sp, 4 /* [(local1)] */ # 241: 0811 + addi sp, sp, 16 /* (top of frame) */ # 243: 12c110 + ret # 246: 0df0 + +# Function @ .irom0.text+0x248 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 +.Lfunc002: movi a2, 0 /* 0x00000000 */ # 248: 0c02 + addi sp, sp, -16 /* (local0) */ # 24a: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 24d: 0901 + call0 chm_end_op # 24f: 050000 + l32i a0, sp, 0 /* [(local0)] */ # 252: 0801 + addi sp, sp, 16 /* (top of frame) */ # 254: 12c110 + ret # 257: 0df0 + + .literal_position # 25c: 00000000 + # 260: 00000000 + # 264: 00000000 + +# Function @ .irom0.text+0x268 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global chm_cancel_op + .type chm_cancel_op, @function +chm_cancel_op: + addi sp, sp, -16 /* (local0) */ # 268: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 26b: 0901 + movi a0, .Ldata001 # 26d: 01fbff + l32i a2, a0, 4 /* [.Ldata002] */ # 270: 2810 + beqz a2, .Lbr016 # 272: 9c12 + mov a2, a0 /* .Ldata001 */ # 274: 2d00 + addi a2, a2, 32 /* .Label001 */ # 276: 22c220 + call0 os_timer_disarm # 279: 01faffc0 + # 27d: 0000 + movi a2, 4 /* 0x00000004 */ # 27f: 0c42 + call0 chm_end_op # 281: 050000 + movi a0, .Ldata001 # 284: 01f7ff +.Lbr016: l32i a5, a0, 24 /* [.Ldata007] */ # 287: 5860 + beqz a5, .Lbr017 # 289: 8c55 + movi a3, 4 /* 0x00000004 */ # 28b: 0c43 + l32i a2, a0, 28 /* [.Ldata008] */ # 28d: 2870 + callx0 a5 /* [.Ldata007] */ # 28f: c00500 +.Lbr017: l32i a0, sp, 0 /* [(local0)] */ # 292: 0801 + addi sp, sp, 16 /* (top of frame) */ # 294: 12c110 + ret # 297: 0df0 + + .literal_position # 29c: 00000000 + # 2a0: 00000000 + # 2a4: 00000000 + +# Function @ .irom0.text+0x2a8 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global chm_return_home_channel + .type chm_return_home_channel, @function +chm_return_home_channel: + addi sp, sp, -16 /* (local0) */ # 2a8: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 2ab: c911 + movi a12, g_ic # 2ad: c1fbff + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 2b0: 0901 + l32i a12, a12, 0x14c /* [g_ic+0x14c] */ # 2b2: c22c53 + call0 chm_get_current_channel # 2b5: 01faffc0 + # 2b9: 0000 + l16ui a0, a2, 4 # 2bb: 021202 + l16ui a2, a12, 4 /* [[g_ic+0x14c]+0x4] */ # 2be: 221c02 + beq a0, a2, .Lbr018 # 2c1: 271007 + mov a2, a12 /* [g_ic+0x14c] */ # 2c4: 2d0c + call0 chm_set_current_channel # 2c6: 01f7ffc0 + # 2ca: 0000 +.Lbr018: l32i a12, sp, 4 /* [(local1)] */ # 2cc: c811 + l32i a0, sp, 0 /* [(local0)] */ # 2ce: 0801 + addi sp, sp, 16 /* (top of frame) */ # 2d0: 12c110 + ret # 2d3: 0df0 + + .literal_position # 2d8: 00000000 + # 2dc: 00feef3f + # 2e0: 00000000 + # 2e4: 00000000 + # 2e8: 00000000 + # 2ec: 00000000 + # 2f0: 00000000 + +# Function @ .irom0.text+0x2f4 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 + .global chm_set_current_channel + .type chm_set_current_channel, @function +chm_set_current_channel: + movi a3, 1 /* 0x00000001 */ # 2f4: 0c13 + movi a4, 0 /* 0x00000000 */ # 2f6: 0c04 + addi sp, sp, -16 /* (local0) */ # 2f8: 12c1f0 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 2fb: d921 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 2fd: c911 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 2ff: 0901 + mov a12, a2 /* arg0 */ # 301: cd02 + l16ui a2, a2, 4 /* [arg0+0x4] */ # 303: 221202 + call0 phy_change_channel # 306: 01f8ffc0 + # 30a: 0000 + movi a2, NMIIrqIsOn # 30c: 21f3ff + movi a0, -32 /* 0xffffffe0 */ # 30f: 6c00 + l8ui a2, a2, 0 /* [NMIIrqIsOn] */ # 311: 220200 + movi a13, 0x3feffe00 # 314: d1f2ff + bnez a2, .Lbr020 # 317: ec42 + call0 vPortEnterCritical # 319: 01f4ffc0 + # 31d: 0000 + movi a0, -32 /* 0xffffffe0 */ # 31f: 6c00 +.Lbr019: memw # 321: c02000 + l32i a5, a13, 0x200 /* [0x3ff00000] */ # 324: 522d80 + and a5, a5, a0 # 327: 005510 + memw # 32a: c02000 + s32i a5, a13, 0x200 /* a5 -> [0x3ff00000] */ # 32d: 526d80 + memw # 330: c02000 + l32i a4, a13, 0x200 /* [0x3ff00000] */ # 333: 422d80 + bbsi a4, 0, .Lbr019 # 336: 07e4e7 + movi a2, NMIIrqIsOn # 339: 21e9ff + l8ui a2, a2, 0 /* [NMIIrqIsOn] */ # 33c: 220200 +.Lbr020: movi a3, .Ldata001 # 33f: 31e9ff + s32i a12, a3, 60 /* arg0 -> [.Ldata009] */ # 342: c9f3 + bnez a2, .Lbr021 # 344: dc82 + memw # 346: c02000 + l32i a4, a13, 0x200 /* [0x3ff00000] */ # 349: 422d80 + movi a5, 1 /* 0x00000001 */ # 34c: 0c15 + and a4, a4, a0 # 34e: 004410 + or a4, a4, a5 # 351: 504420 + memw # 354: c02000 + s32i a4, a13, 0x200 /* a4 -> [0x3ff00000] */ # 357: 426d80 + call0 vPortExitCritical # 35a: 01e5ffc0 + # 35e: 0000 +.Lbr021: l32i a12, sp, 4 /* [(local1)] */ # 360: c811 + l32i a13, sp, 8 /* [(local2)] */ # 362: d821 + l32i a0, sp, 0 /* [(local0)] */ # 364: 0801 + addi sp, sp, 16 /* (top of frame) */ # 366: 12c110 + ret # 369: 0df0 + + .literal_position # 36c: 00000000 + +# Function @ .irom0.text+0x370 + .balign 4 + .global chm_freq2index + .type chm_freq2index, @function +chm_freq2index: + movi a5, 0 /* 0x00000000 */ # 370: 0c05 + movi a6, .Ldata001 # 372: 61feff + movi a7, 14 /* 0x0000000e */ # 375: 0ce7 + l32i a6, a6, 0 /* [.Ldata001] */ # 377: 6806 +.Lbr022: addx2 a8, a5, a5 # 379: 508590 + addx4 a8, a8, a6 # 37c: 6088a0 + l16ui a8, a8, 136 # 37f: 821844 + bne a8, a2, .Lbr023 # 382: 279803 + mov a2, a5 # 385: 2d05 + ret # 387: 0df0 +.Lbr023: addi a5, a5, 1 # 389: 1b55 + extui a5, a5, 0, 8 # 38b: 505074 + bne a5, a7, .Lbr022 # 38e: 7795e7 + movi a2, 255 /* 0x000000ff */ # 391: 22a0ff + ret /* 0x000000ff */ # 394: 0df0 + + .literal_position # 398: 00000000 + # 39c: 00000000 + # 3a0: 00000000 + # 3a4: 00000000 + +# Function @ .irom0.text+0x3a8 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global chm_check_same_channel + .type chm_check_same_channel, @function +chm_check_same_channel: + movi a2, g_ic # 3a8: 21fcff + addi sp, sp, -16 /* (local0) */ # 3ab: 12c1f0 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 3ae: 0911 + l32i a2, a2, 0x14c /* [g_ic+0x14c] */ # 3b0: 222253 + call0 ieee80211_chan2ieee # 3b3: 01faffc0 + # 3b7: 0000 + s32i a2, sp, 0 /* a2 -> [(local0)] */ # 3b9: 2901 + call0 chm_get_current_channel # 3bb: 01f9ffc0 + # 3bf: 0000 + call0 ieee80211_chan2ieee # 3c1: 01f8ffc0 + # 3c5: 0000 + movi a3, 0 /* 0x00000000 */ # 3c7: 0c03 + l32i a4, sp, 0 /* [(local0)] */ # 3c9: 4801 + l32i a0, sp, 4 /* [(local1)] */ # 3cb: 0811 + sub a4, a4, a2 # 3cd: 2044c0 + addi sp, sp, 16 /* (top of frame) */ # 3d0: 12c110 + movi a2, 1 /* 0x00000001 */ # 3d3: 0c12 + movnez a2, a3, a4 # 3d5: 402393 + ret # 3d8: 0df0 diff --git a/binary_sdk/libnet80211_stage1/wl_cnx.S b/binary_sdk/libnet80211_stage1/wl_cnx.S new file mode 100644 index 0000000..1be33e6 --- /dev/null +++ b/binary_sdk/libnet80211_stage1/wl_cnx.S @@ -0,0 +1,2572 @@ + + .section .bss, "aw", @nobits + +.Ldata001: .word 0x00000000 # 0: 00000000 +.Ldata002: .word 0x00000000 # 4: 00000000 + +# NOTE: 1128 non-alignment zero bytes skipped. + + .skip 1128 +.Label001: .word 0x00000000 # 470: 00000000 +.Label002: .space 268 +.Label003: .space 140 +.Label004: .space 124 +.Ldata003: .byte 0x00 +.Ldata004: .byte 0x00 +.Ldata005: .byte 0x00 + .balign 4 +.Ldata006: .word 0x00000000 # 68c: 00000000 +.Ldata007: .word 0x00000000 # 690: 00000000 +.Ldata008: .word 0x00000000 # 694: 00000000 +.Ldata009: .word 0x00000000 # 698: 00000000 + +# NOTE: 176 non-alignment zero bytes skipped. + + .skip 176 +.Ldata010: .byte 0x00 + +# NOTE: 16 non-alignment zero bytes skipped. + + .skip 19 + .global sta_con_timer + .type sta_con_timer, @object +sta_con_timer: + .space 28 + .global g_cnx_probe_rc_list_cb + .type g_cnx_probe_rc_list_cb, @object +g_cnx_probe_rc_list_cb: + .word 0x00000000 # 77c: 00000000 + + .section .irom0.text, "ax", @progbits + + .literal_position # 0: 00000000 + # 4: 00000000 + # 8: 88060000 + # c: 18040000 + # 10: 00000000 + # 14: 00000000 + +# Function @ .irom0.text+0x18 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global cnx_attach + .type cnx_attach, @function +cnx_attach: movi a3, 1888 /* 0x00000760 */ # 18: 32a760 + addi sp, sp, -16 /* (local0) */ # 1b: 12c1f0 + s32i a2, sp, 0 /* arg0 -> [(local0)] */ # 1e: 2901 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 20: 0911 + movi a2, .Ldata001 # 22: 21f7ff + call0 bzero # 25: 01faffc0 + # 29: 0000 + movi a2, .Ldata003 # 2b: 21f7ff + movi a0, 15 /* 0x0000000f */ # 2e: 0cf0 + l32i a7, sp, 0 /* [(local0)] */ # 30: 7801 + movi a4, .Ldata001 # 32: 41f4ff + movi a5, 2 /* 0x00000002 */ # 35: 0c25 + l32i a3, a4, 0 /* [.Ldata001] */ # 37: 3804 + mov a6, a4 /* .Ldata001 */ # 39: 6d04 + or a3, a3, a5 # 3b: 503320 + s32i a6, a7, 0 /* .Ldata001 -> [[(local0)]] */ # 3e: 6907 + s8i a0, a2, 0 /* 0x0f -> [.Ldata003] */ # 40: 024200 + s32i a3, a4, 0 /* a3 -> [.Ldata001] */ # 43: 3904 + movi a2, .Lfunc004 # 45: 21f1ff + movi a3, 0 /* 0x00000000 */ # 48: 0c03 + call0 ppRegisterTxCallback # 4a: 01f2ffc0 + # 4e: 0000 + l32i a0, sp, 4 /* [(local1)] */ # 50: 0811 + addi sp, sp, 16 /* (top of frame) */ # 52: 12c110 + ret # 55: 0df0 + + .literal_position # 58: 00000000 + # 5c: 00000000 + # 60: 00000000 + +# Function @ .irom0.text+0x64 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global cnx_sta_connect_led_timer_cb + .type cnx_sta_connect_led_timer_cb, @function +cnx_sta_connect_led_timer_cb: + movi a4, 1 /* 0x00000001 */ # 64: 0c14 + movi a3, 0 /* 0x00000000 */ # 66: 0c03 + movi a5, g_ic+0x180 # 68: 51fcff + addi sp, sp, -16 /* (local0) */ # 6b: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 6e: 0901 + l8ui a2, a5, 99 /* [g_ic+0x1e3] */ # 70: 220563 + l8ui a5, a5, 98 /* [g_ic+0x1e2] */ # 73: 520562 + extui a6, a2, 0, 1 # 76: 206004 + moveqz a3, a4, a6 # 79: 603483 + ssl a5 # 7c: 001540 + sll a2, a2 # 7f: 0022a1 + movi a5, 0 /* 0x00000000 */ # 82: 0c05 + sll a4, a4 # 84: 0044a1 + sll a3, a3 # 87: 0033a1 + call0 gpio_output_set # 8a: 01f5ffc0 + # 8e: 0000 + movi a8, 1 /* 0x00000001 */ # 90: 0c18 + movi a6, 0 /* 0x00000000 */ # 92: 0c06 + movi a7, g_ic+0x180 # 94: 71f2ff + l32i a0, sp, 0 /* [(local0)] */ # 97: 0801 + l8ui a9, a7, 99 /* [g_ic+0x1e3] */ # 99: 920763 + addi sp, sp, 16 /* (top of frame) */ # 9c: 12c110 + extui a9, a9, 0, 1 # 9f: 909004 + moveqz a6, a8, a9 # a2: 906883 + s8i a6, a7, 99 /* a6 -> [g_ic+0x1e3] */ # a5: 624763 + ret # a8: 0df0 + + .literal_position # ac: 00000000 + # b0: 60070000 + # b4: 60070000 + # b8: 00000000 + # bc: 60070000 + # c0: 00fef13f + # c4: 00840000 + # c8: 04000000 + # cc: 00c00000 + # d0: 00000000 + # d4: 00000000 + # d8: 00000000 + # dc: 00000000 + # e0: 00000000 + # e4: 00000000 + # e8: 00000000 + # ec: 00000000 + +# Function @ .irom0.text+0xf0 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 + .global cnx_sta_connect_cmd + .type cnx_sta_connect_cmd, @function +cnx_sta_connect_cmd: + addi sp, sp, -16 /* (local0) */ # f0: 12c1f0 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # f3: d921 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # f5: c911 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # f7: 0901 + movi a0, g_ic+0x180 # f9: 01ecff + mov a12, a2 /* arg0 */ # fc: cd02 + l8ui a2, a0, 97 /* [g_ic+0x1e1] */ # fe: 220061 + mov a13, a3 /* arg1 */ # 101: dd03 + bnei a2, 1, .Lbr001 # 103: 661229 + l8ui a3, a0, 96 /* [g_ic+0x1e0] */ # 106: 320060 + bnei a3, 1, .Lbr001 # 109: 661323 + movi a2, sta_con_timer # 10c: 21e9ff + call0 os_timer_disarm # 10f: 01f0ffc0 + # 113: 0000 + movi a2, sta_con_timer # 115: 21e7ff + movi a3, cnx_sta_connect_led_timer_cb # 118: 31e8ff + movi a4, 0 /* 0x00000000 */ # 11b: 0c04 + call0 os_timer_setfn # 11d: 01edffc0 + # 121: 0000 + movi a2, sta_con_timer # 123: 21e6ff + movi a3, 50 /* 0x00000032 */ # 126: 3c23 + movi a4, 1 /* 0x00000001 */ # 128: 0c14 + call0 os_timer_arm # 12a: 01ebffc0 + # 12e: 0000 +.Lbr001: movi a7, 16 /* 0x00000010 */ # 130: 1c07 + movi a6, 0x3ff1fe00 # 132: 61e3ff + memw # 135: c02000 + l32i a5, a6, 0x26c /* [0x3ff2006c] */ # 138: 52269b + or a5, a5, a7 # 13b: 705520 + memw # 13e: c02000 + s32i a5, a6, 0x26c /* a5 -> [0x3ff2006c] */ # 141: 52669b + l8ui a4, a12, 169 /* [arg0+0xa9] */ # 144: 420ca9 + beqz a4, .Lbr002 # 147: 9c04 + movi a2, 2 /* 0x00000002 */ # 149: 0c22 + movi a3, 0 /* 0x00000000 */ # 14b: 0c03 + movi a4, 170 /* 0x000000aa */ # 14d: 42a0aa + add a4, a12, a4 /* arg0+0xaa */ # 150: 4a4c + call0 wDev_SetRxPolicy # 152: 01e2ffc0 + # 156: 0000 + j .Lbr003 # 158: c60200 +.Lbr002: movi a2, 0 /* 0x00000000 */ # 15b: 0c02 + movi a3, 0 /* 0x00000000 */ # 15d: 0c03 + movi a4, 0 /* 0x00000000 */ # 15f: 0c04 + call0 wDev_SetRxPolicy # 161: 01dfffc0 + # 165: 0000 +.Lbr003: call0 scan_remove_bssid # 167: 01dfffc0 + # 16b: 0000 + beqz a13, .Lbr004 # 16d: 8ccd + mov a2, a13 /* arg1 */ # 16f: 2d0d + call0 scan_set_desChan # 171: 01ddffc0 + # 175: 0000 + movi a13, 0x00008400 # 177: d1d3ff + j .Lbr005 # 17a: 860000 +.Lbr004: movi a13, 1295 /* 0x0000050f */ # 17d: d2a50f +.Lbr005: movi a5, .Ldata002 # 180: 51d2ff + l32i a5, a5, 0 /* [.Ldata002] */ # 183: 5805 + movi a6, 0x0000c000 # 185: 61d1ff + bbci a5, 0, .Lbr006 # 188: 076505 + or a13, a13, a6 # 18b: 60dd20 + j .Lbr007 # 18e: c60300 +.Lbr006: addi a3, a12, 16 /* arg0+0x10 */ # 191: 32cc10 + l8ui a4, a12, 12 /* [arg0+0xc] */ # 194: 420c0c + movi a2, 0 /* 0x00000000 */ # 197: 0c02 + movi a5, 1 /* 0x00000001 */ # 199: 0c15 + call0 scan_add_probe_ssid # 19b: 01d4ffc0 + # 19f: 0000 +.Lbr007: mov a2, a13 # 1a1: 2d0d + call0 .Lfunc001 # 1a3: 851500 + l32i a12, sp, 4 /* [(local1)] */ # 1a6: c811 + l32i a13, sp, 8 /* [(local2)] */ # 1a8: d821 + l32i a0, sp, 0 /* [(local0)] */ # 1aa: 0801 + addi sp, sp, 16 /* (top of frame) */ # 1ac: 12c110 + ret # 1af: 0df0 + + .literal_position # 1b4: 00000000 + # 1b8: 00000000 + # 1bc: 00800000 + # 1c0: 00000000 + # 1c4: 00000000 + # 1c8: 00000000 + # 1cc: 00000000 + # 1d0: 00000000 + # 1d4: 00000000 + # 1d8: 00000000 + # 1dc: 00000000 + # 1e0: 00000000 + # 1e4: 00000000 + # 1e8: 00000000 + # 1ec: 00000000 + # 1f0: 00000000 + # 1f4: 00000000 + +# Function @ .irom0.text+0x1f8 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word[4] @ -0x10 + .balign 4 + .global cnx_sta_scan_cmd + .type cnx_sta_scan_cmd, @function +cnx_sta_scan_cmd: + addi sp, sp, -32 /* (local0) */ # 1f8: 12c1e0 + s32i a13, sp, 12 /* a13 -> [(local3)] */ # 1fb: d931 + s32i a3, sp, 0 /* arg1 -> [(local0)] */ # 1fd: 3901 + s32i a12, sp, 8 /* a12 -> [(local2)] */ # 1ff: c921 + s32i a14, sp, 16 /* a14 -> [(local4)] */ # 201: e941 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 203: 0911 + movi a0, gScanStruct # 205: 01ebff + mov a14, a4 /* arg2 */ # 208: ed04 + l8ui a0, a0, 93 /* [gScanStruct+0x5d] */ # 20a: 02005d + mov a12, a2 /* arg0 */ # 20d: cd02 + bbci a0, 0, .Lbr008 # 20f: 07600d + movi a2, g_ic # 212: 21e9ff + l32i a2, a2, 16 /* [g_ic+0x10] */ # 215: 2842 + l8ui a2, a2, 184 /* [[g_ic+0x10]+0xb8] */ # 217: 2202b8 + addi a2, a2, -5 /* [[g_ic+0x10]+0xb8]-0x5 */ # 21a: 22c2fb + beqz a2, .Lbr018 # 21d: 16920b +.Lbr008: bnez a12, .Lbr009 # 220: fc8c + movi a2, 1 /* 0x00000001 */ # 222: 0c12 + movi a3, 0 /* 0x00000000 */ # 224: 0c03 + movi a4, 0 /* 0x00000000 */ # 226: 0c04 + movi a5, 2 /* 0x00000002 */ # 228: 0c25 + call0 scan_add_probe_ssid # 22a: 01e5ffc0 + # 22e: 0000 + call0 scan_remove_bssid # 230: 01e5ffc0 + # 234: 0000 + movi a2, 0 /* 0x00000000 */ # 236: 0c02 + call0 scan_hidden_ssid # 238: 01e4ffc0 + # 23c: 0000 + movi a2, 0 /* 0x00000000 */ # 23e: 0c02 + movi a3, 0 /* 0x00000000 */ # 240: 0c03 + movi a4, 0 /* 0x00000000 */ # 242: 0c04 + call0 wDev_SetRxPolicy # 244: 01e2ffc0 + # 248: 0000 + mov a5, a14 /* arg2 */ # 24a: 5d0e + movi a2, 271 /* 0x0000010f */ # 24c: 22a10f + movi a3, 3 /* 0x00000003 */ # 24f: 0c33 + l32i a4, sp, 0 /* [(local0)] */ # 251: 4801 + call0 scan_start # 253: 01dfffc0 + # 257: 0000 + j .Lbr018 # 259: 461f00 +.Lbr009: l32i a13, a12, 0 /* [arg0] */ # 25c: d80c + beqz a13, .Lbr010 # 25e: 9c8d + mov a2, a13 /* [arg0] */ # 260: 2d0d + call0 strlen # 262: 01dcffc0 + # 266: 0000 + mov a3, a13 /* [arg0] */ # 268: 3d0d + extui a4, a2, 0, 8 # 26a: 204074 + movi a5, 1 /* 0x00000001 */ # 26d: 0c15 + movi a2, 1 /* 0x00000001 */ # 26f: 0c12 + call0 scan_add_probe_ssid # 271: 01d9ffc0 + # 275: 0000 + j .Lbr011 # 277: 460300 +.Lbr010: movi a2, 1 /* 0x00000001 */ # 27a: 0c12 + movi a3, 0 /* 0x00000000 */ # 27c: 0c03 + movi a4, 0 /* 0x00000000 */ # 27e: 0c04 + movi a5, 2 /* 0x00000002 */ # 280: 0c25 + call0 scan_add_probe_ssid # 282: 01d6ffc0 + # 286: 0000 +.Lbr011: l32i a2, a12, 4 /* [arg0+0x4] */ # 288: 281c + beqz a2, .Lbr012 # 28a: 8c72 + call0 scan_add_bssid # 28c: 01d5ffc0 + # 290: 0000 + j .Lbr013 # 292: 460100 +.Lbr012: call0 scan_remove_bssid # 295: 01d3ffc0 + # 299: 0000 +.Lbr013: l8ui a2, a12, 8 /* [arg0+0x8] */ # 29b: 220c08 + movi a3, 13 /* 0x0000000d */ # 29e: 0cd3 + beqz a2, .Lbr014 # 2a0: 8cd2 + bltu a3, a2, .Lbr014 # 2a2: 27330b + call0 scan_set_desChan # 2a5: 01d0ffc0 + # 2a9: 0000 + movi a13, 0x00008000 # 2ab: d1c4ff + j .Lbr015 # 2ae: 860000 +.Lbr014: movi a13, 271 /* 0x0000010f */ # 2b1: d2a10f +.Lbr015: l8ui a4, a12, 9 /* [arg0+0x9] */ # 2b4: 420c09 + beqz a4, .Lbr016 # 2b7: 8c94 + movi a2, 1 /* 0x00000001 */ # 2b9: 0c12 + call0 scan_hidden_ssid # 2bb: 01ccffc0 + # 2bf: 0000 + j .Lbr017 # 2c1: c60100 +.Lbr016: movi a2, 0 /* 0x00000000 */ # 2c4: 0c02 + call0 scan_hidden_ssid # 2c6: 01caffc0 + # 2ca: 0000 +.Lbr017: mov a5, a14 /* arg2 */ # 2cc: 5d0e + mov a2, a13 # 2ce: 2d0d + movi a3, 3 /* 0x00000003 */ # 2d0: 0c33 + l32i a4, sp, 0 /* [(local0)] */ # 2d2: 4801 + call0 scan_start # 2d4: 01c8ffc0 + # 2d8: 0000 +.Lbr018: l32i a12, sp, 8 /* [(local2)] */ # 2da: c821 + l32i a13, sp, 12 /* [(local3)] */ # 2dc: d831 + l32i a14, sp, 16 /* [(local4)] */ # 2de: e841 + l32i a0, sp, 4 /* [(local1)] */ # 2e0: 0811 + addi sp, sp, 32 /* (top of frame) */ # 2e2: 12c120 + ret # 2e5: 0df0 + + .literal_position # 2e8: 00000000 + # 2ec: 00000000 + # 2f0: 00000000 + # 2f4: 00000000 + # 2f8: 5c030000 + +# Function @ .irom0.text+0x2fc +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 +.Lfunc001: addi sp, sp, -16 /* (local0) */ # 2fc: 12c1f0 + movi a5, g_ic # 2ff: 51faff + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 302: 0901 + l32i a0, a5, 16 /* [g_ic+0x10] */ # 304: 0845 + movi a4, 1 /* 0x00000001 */ # 306: 0c14 + l8ui a3, a0, 185 /* [[g_ic+0x10]+0xb9] */ # 308: 3200b9 + movi a6, 16 /* 0x00000010 */ # 30b: 1c06 + bnez a3, .Lbr019 # 30d: cc33 + s8i a4, a0, 186 /* 0x01 -> [[g_ic+0x10]+0xba] */ # 30f: 4240ba + l32i a0, a5, 16 /* [g_ic+0x10] */ # 312: 0845 +.Lbr019: movi a5, .Ldata001 # 314: 51f6ff + s8i a4, a0, 184 /* 0x01 -> [[g_ic+0x10]+0xb8] */ # 317: 4240b8 + l32i a4, a5, 0 /* [.Ldata001] */ # 31a: 4805 + or a4, a4, a6 # 31c: 604420 + s32i a4, a5, 0 /* a4 -> [.Ldata001] */ # 31f: 4905 + movi a4, cnx_start_handoff_cb # 321: 41f3ff + beqz a2, .Lbr020 # 324: 8cb2 + movi a3, 2 /* 0x00000002 */ # 326: 0c23 + movi a5, 0 /* 0x00000000 */ # 328: 0c05 + call0 scan_start # 32a: 01f2ffc0 + # 32e: 0000 + j .Lbr021 # 330: 460200 +.Lbr020: mov a2, a4 /* cnx_start_handoff_cb */ # 333: 2d04 + movi a3, 0 /* 0x00000000 */ # 335: 0c03 + call0 .Lfunc002 # 337: 01f0ffc0 + # 33b: 0000 +.Lbr021: l32i a0, sp, 0 /* [(local0)] */ # 33d: 0801 + addi sp, sp, 16 /* (top of frame) */ # 33f: 12c110 + ret # 342: 0df0 + + .literal_position # 344: 70040000 + # 348: 80050000 + # 34c: 00000000 + # 350: 70040000 + # 354: 900b0000 + # 358: bc030000 + +# Function @ .irom0.text+0x35c +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 +.Lfunc002: movi a3, .Lfunc005 # 35c: 31faff + movi a4, 0 /* 0x00000000 */ # 35f: 0c04 + addi sp, sp, -16 /* (local0) */ # 361: 12c1f0 + mov a6, a2 /* arg0 */ # 364: 6d02 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 366: 0901 + movi a0, .Label003 # 368: 01f8ff + movi a2, 2 /* 0x00000002 */ # 36b: 0c22 + s32i a6, a0, 0x1fc /* arg0 -> [g_cnx_probe_rc_list_cb] */ # 36d: 62607f + call0 chm_acquire_lock # 370: 01f7ffc0 + # 374: 0000 + beqz a2, .Lbr025 # 376: 9c62 + movi a2, 1 /* 0x00000001 */ # 378: 0c12 + j .Lbr024 # 37a: c60200 +.Lbr022: movi a2, 0 /* 0x00000000 */ # 37d: 0c02 + movi a3, 0 /* 0x00000000 */ # 37f: 0c03 + call0 .Lfunc005 # 381: 01f3ffc0 + # 385: 0000 +.Lbr023: movi a2, 2 /* 0x00000002 */ # 387: 0c22 +.Lbr024: l32i a0, sp, 0 /* [(local0)] */ # 389: 0801 + addi sp, sp, 16 /* (top of frame) */ # 38b: 12c110 + ret # 38e: 0df0 +.Lbr025: call0 .Lfunc011 # 390: 01f1ffc0 + # 394: 0000 + beqz a2, .Lbr022 # 396: 1632fe + movi a3, 0 /* 0x00000000 */ # 399: 0c03 + call0 .Lfunc003 # 39b: 01efffc0 + # 39f: 0000 + j .Lbr023 # 3a1: 86f8ff + + .literal_position # 3a4: 00000000 + # 3a8: bc030000 + # 3ac: 00000000 + # 3b0: 00000000 + # 3b4: 00000000 + # 3b8: 00000000 + +# Function @ .irom0.text+0x3bc +# Local variables/stack: +# (local0): word[4] @ -0x20 +# (local1): word @ -0x10 +# (local2): word @ -0xc +# (local3): word[2] @ -0x8 + .balign 4 +.Lfunc003: addi sp, sp, -32 /* (local0) */ # 3bc: 12c1e0 + s32i a0, sp, 20 /* a0 -> [(local2)] */ # 3bf: 0951 + movi a0, g_ic # 3c1: 01f8ff + s32i a12, sp, 24 /* a12 -> [(local3)] */ # 3c4: c961 + l32i a0, a0, 16 /* [g_ic+0x10] */ # 3c6: 0840 + mov a12, a2 /* arg0 */ # 3c8: cd02 + l32i a0, a0, 0 /* [[g_ic+0x10]] */ # 3ca: 0800 + s32i a0, sp, 16 /* [[g_ic+0x10]] -> [(local1)] */ # 3cc: 0941 + call0 chm_get_current_channel # 3ce: 01f8ffc0 + # 3d2: 0000 + l32i a0, a12, 120 /* [arg0+0x78] */ # 3d4: 022c1e + beq a2, a0, .Lbr026 # 3d7: 071213 + mov a6, a12 /* arg0 */ # 3da: 6d0c + movi a3, 0 /* 0x00000000 */ # 3dc: 0c03 + movi a4, .Lfunc003 # 3de: 41f2ff + movi a5, 0 /* 0x00000000 */ # 3e1: 0c05 + mov a2, a0 /* [arg0+0x78] */ # 3e3: 2d00 + call0 chm_start_op # 3e5: 01f3ffc0 + # 3e9: 0000 + j .Lbr027 # 3eb: 460700 +.Lbr026: mov a5, a12 /* arg0 */ # 3ee: 5d0c + mov a2, a12 /* arg0 */ # 3f0: 2d0c + mov a4, a12 /* arg0 */ # 3f2: 4d0c + movi a8, 0 /* 0x00000000 */ # 3f4: 0c08 + l32i a3, sp, 16 /* [(local1)] */ # 3f6: 3841 + movi a6, g_ic+0x1e8 # 3f8: 61edff + addi a3, a3, 41 /* [(local1)]+0x29 */ # 3fb: 32c329 + addi a7, a6, -104 /* g_ic+0x180 */ # 3fe: 72c698 + l8ui a7, a7, 100 /* [g_ic+0x1e4] */ # 401: 720764 + s32i a8, sp, 0 /* 0x00000000 -> [(local0)] */ # 404: 8901 + call0 ieee80211_send_probereq # 406: 01ecffc0 + # 40a: 0000 +.Lbr027: l32i a12, sp, 24 /* [(local3)] */ # 40c: c861 + l32i a0, sp, 20 /* [(local2)] */ # 40e: 0851 + addi sp, sp, 32 /* (top of frame) */ # 410: 12c120 + ret # 413: 0df0 + + .balign 4 +# Function @ .irom0.text+0x418 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 +.Lfunc004: addi sp, sp, -16 /* (local0) */ # 418: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 41b: c911 + mov a12, a2 /* arg0 */ # 41d: cd02 + l32i a2, a2, 16 /* [arg0+0x10] */ # 41f: 2842 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 421: 0901 + addi a2, a2, 16 /* [arg0+0x10]+0x10 */ # 423: 22c210 + call0 cnx_rc_search # 426: 050000 + beqz a2, .Lbr029 # 429: 9c72 + l32i a3, a12, 32 /* [arg0+0x20] */ # 42b: 388c + l8ui a3, a3, 15 /* [[arg0+0x20]+0xf] */ # 42d: 32030f + bnei a3, 1, .Lbr028 # 430: 661309 + movi a3, 5 /* 0x00000005 */ # 433: 0c53 + movi a4, 0 /* 0x00000000 */ # 435: 0c04 + call0 cnx_rc_update_age # 437: 050000 + j .Lbr029 # 43a: 860100 +.Lbr028: movi a3, -3 /* 0xfffffffd */ # 43d: 7cd3 + movi a4, 1 /* 0x00000001 */ # 43f: 0c14 + call0 cnx_rc_update_state_metric # 441: 050000 +.Lbr029: call0 .Lfunc011 # 444: 857400 + beqz a2, .Lbr030 # 447: 8c62 + movi a3, 0 /* 0x00000000 */ # 449: 0c03 + call0 .Lfunc003 # 44b: 05f7ff + j .Lbr031 # 44e: 860100 +.Lbr030: movi a2, 0 /* 0x00000000 */ # 451: 0c02 + movi a3, 0 /* 0x00000000 */ # 453: 0c03 + call0 .Lfunc005 # 455: 850100 +.Lbr031: l32i a12, sp, 4 /* [(local1)] */ # 458: c811 + l32i a0, sp, 0 /* [(local0)] */ # 45a: 0801 + addi sp, sp, 16 /* (top of frame) */ # 45c: 12c110 + ret # 45f: 0df0 + + .literal_position # 464: 0c060000 + # 468: 00000000 + # 46c: 00000000 + +# Function @ .irom0.text+0x470 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 +.Lfunc005: addi sp, sp, -16 /* (local0) */ # 470: 12c1f0 + s32i a3, sp, 0 /* arg1 -> [(local0)] */ # 473: 3901 + s32i a12, sp, 8 /* a12 -> [(local2)] */ # 475: c921 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 477: 0911 + movi a12, .Label004 # 479: c1faff + movi a0, 0 /* 0x00000000 */ # 47c: 0c00 + s8i a0, a12, 126 /* 0x00 -> [.Ldata005] */ # 47e: 024c7e + l32i a12, a12, 0x170 /* [g_cnx_probe_rc_list_cb] */ # 481: c22c5c + call0 chm_return_home_channel # 484: 01f9ffc0 + # 488: 0000 + call0 chm_release_lock # 48a: 01f8ffc0 + # 48e: 0000 + beqz a12, .Lbr032 # 490: 8c7c + l32i a3, sp, 0 /* [(local0)] */ # 492: 3801 + l32i a0, a12, 0 /* [[g_cnx_probe_rc_list_cb]] */ # 494: 080c + movi a2, 0 /* 0x00000000 */ # 496: 0c02 + callx0 a0 /* [[g_cnx_probe_rc_list_cb]] */ # 498: c00000 +.Lbr032: l32i a12, sp, 8 /* [(local2)] */ # 49b: c821 + l32i a0, sp, 4 /* [(local1)] */ # 49d: 0811 + addi sp, sp, 16 /* (top of frame) */ # 49f: 12c110 + ret # 4a2: 0df0 + + .literal_position # 4a4: 00000000 + # 4a8: 00000000 + # 4ac: 00000000 + # 4b0: 0000ffff + # 4b4: 000e0060 + # 4b8: 00000000 + # 4bc: 00000000 + # 4c0: 00000000 + +# Function @ .irom0.text+0x4c4 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global cnx_connect_timeout + .type cnx_connect_timeout, @function +cnx_connect_timeout: + addi sp, sp, -16 /* (local0) */ # 4c4: 12c1f0 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 4c7: 0911 + movi a0, g_ic # 4c9: 01f6ff + movi a2, .Lstr001 # 4cc: 21f7ff + l32i a0, a0, 16 /* [g_ic+0x10] */ # 4cf: 0840 + s32i a0, sp, 0 /* [g_ic+0x10] -> [(local0)] */ # 4d1: 0901 + call0 printf # 4d3: 01faffc0 + # 4d7: 0000 + l32i a2, sp, 0 /* [(local0)] */ # 4d9: 2801 + l32i a2, a2, 60 /* [[(local0)]+0x3c] */ # 4db: 28f2 + beqz a2, .Lbr033 # 4dd: 8cb2 + movi a2, g_ic # 4df: 21f3ff + movi a3, 0 /* 0x00000000 */ # 4e2: 0c03 + movi a4, 1 /* 0x00000001 */ # 4e4: 0c14 + call0 ieee80211_sta_new_state # 4e6: 01f6ffc0 + # 4ea: 0000 +.Lbr033: movi a5, 0xffff0000 # 4ec: 51f1ff + movi a3, 0x60000e00 # 4ef: 31f1ff + memw # 4f2: c02000 + l32i a4, a3, 0x3f4 /* [0x600011f4] */ # 4f5: 4223fd + and a4, a4, a5 # 4f8: 504410 + extui a4, a4, 16, 16 # 4fb: 4040f5 + memw # 4fe: c02000 + l32i a3, a3, 0x3f4 /* [0x600011f4] */ # 501: 3223fd + movi a2, g_ic+0x1d8 # 504: 21edff + extui a3, a3, 0, 8 # 507: 303074 + bnei a4, 1, .Lbr034 # 50a: 66140c + movi a6, 13 /* 0x0000000d */ # 50d: 0cd6 + bgeu a6, a3, .Lbr036 # 50f: 37b613 + movi a3, 0 /* 0x00000000 */ # 512: 0c03 + call0 cnx_sta_connect_cmd # 514: 050000 + j .Lbr035 # 517: 060100 +.Lbr034: movi a3, 0 /* 0x00000000 */ # 51a: 0c03 + call0 cnx_sta_connect_cmd # 51c: 050000 +.Lbr035: l32i a0, sp, 4 /* [(local1)] */ # 51f: 0811 + addi sp, sp, 16 /* (top of frame) */ # 521: 12c110 + ret # 524: 0df0 +.Lbr036: call0 cnx_sta_connect_cmd # 526: 050000 + j .Lbr035 # 529: 86fcff + +# Function @ .irom0.text+0x52c +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global cnx_start_handoff_cb + .type cnx_start_handoff_cb, @function +cnx_start_handoff_cb: + addi sp, sp, -16 /* (local0) */ # 52c: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 52f: 0901 + bnez a3, .Lbr037 # 531: cc13 + call0 .Lfunc006 # 533: 850500 +.Lbr037: l32i a0, sp, 0 /* [(local0)] */ # 536: 0801 + addi sp, sp, 16 /* (top of frame) */ # 538: 12c110 + ret # 53b: 0df0 + + .literal_position # 540: 00000000 + # 544: 00000000 + # 548: 00000000 + # 54c: 00000000 + # 550: 0c000000 + # 554: 00000000 + # 558: 00000100 + # 55c: 000e0060 + # 560: 00000000 + # 564: 00000000 + # 568: 98060000 + # 56c: 00000000 + # 570: 00000000 + # 574: 00000000 + # 578: 00000000 + # 57c: 00000000 + # 580: 00000000 + # 584: 00000000 + # 588: 00000000 + +# Function @ .irom0.text+0x58c +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 +.Lfunc006: movi a3, 16 /* 0x00000010 */ # 58c: 1c03 + movi a2, .Ldata001 # 58e: 21ecff + addi sp, sp, -16 /* (local0) */ # 591: 12c1f0 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 594: d921 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 596: c911 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 598: 0901 + movi a12, g_ic # 59a: c1eaff + l32i a0, a2, 0 /* [.Ldata001] */ # 59d: 0802 + l32i a12, a12, 16 /* [g_ic+0x10] */ # 59f: c84c + or a0, a0, a3 # 5a1: 300020 + s32i a0, a2, 0 /* a0 -> [.Ldata001] */ # 5a4: 0902 + call0 .Lfunc009 # 5a6: 453b00 + addi a12, a12, 4 /* [g_ic+0x10]+0x4 */ # 5a9: 4bcc + movi a13, cnx_connect_timeout # 5ab: d1e7ff + bnez a2, .Lbr039 # 5ae: 560205 + movi a0, g_ic # 5b1: 01e6ff + l32i a0, a0, 16 /* [g_ic+0x10] */ # 5b4: 0840 + l8ui a0, a0, 186 /* [[g_ic+0x10]+0xba] */ # 5b6: 0200ba + beqi a0, 2, .Lbr038 # 5b9: 262013 + movi a2, 3 /* 0x00000003 */ # 5bc: 0c32 + call0 sta_status_set # 5be: 01ebffc0 + # 5c2: 0000 + movi a2, .Lstr002 # 5c4: 21e3ff + movi a3, g_ic+0x1e8 # 5c7: 31e3ff + call0 printf # 5ca: 01e9ffc0 + # 5ce: 0000 +.Lbr038: movi a2, 0x00010000 # 5d0: 21e2ff + movi a3, 0x60000e00 # 5d3: 31e2ff + memw # 5d6: c02000 + s32i a2, a3, 0x3f4 /* 0x00010000 -> [0x600011f4] */ # 5d9: 2263fd + mov a2, a12 /* [g_ic+0x10]+0x4 */ # 5dc: 2d0c + call0 os_timer_disarm # 5de: 01e5ffc0 + # 5e2: 0000 + mov a3, a13 /* cnx_connect_timeout */ # 5e4: 3d0d + mov a2, a12 /* [g_ic+0x10]+0x4 */ # 5e6: 2d0c + movi a4, 0 /* 0x00000000 */ # 5e8: 0c04 + call0 os_timer_setfn # 5ea: 01e3ffc0 + # 5ee: 0000 + mov a2, a12 /* [g_ic+0x10]+0x4 */ # 5f0: 2d0c + movi a3, 1000 /* 0x000003e8 */ # 5f2: 32a3e8 + movi a4, 0 /* 0x00000000 */ # 5f5: 0c04 + call0 os_timer_arm # 5f7: 01e1ffc0 + # 5fb: 0000 + movi a2, 0 /* 0x00000000 */ # 5fd: 0c02 + j .Lbr042 # 5ff: 860d00 +.Lbr039: call0 .Lfunc007 # 602: 850900 + mov a13, a2 # 605: dd02 + mov a2, a12 /* [g_ic+0x10]+0x4 */ # 607: 2d0c + call0 os_timer_disarm # 609: 01ddffc0 + # 60d: 0000 + movi a3, cnx_connect_timeout # 60f: 31d4ff + mov a2, a12 /* [g_ic+0x10]+0x4 */ # 612: 2d0c + movi a4, 0 /* 0x00000000 */ # 614: 0c04 + call0 os_timer_setfn # 616: 01dbffc0 + # 61a: 0000 + mov a2, a12 /* [g_ic+0x10]+0x4 */ # 61c: 2d0c + movi a3, 1000 /* 0x000003e8 */ # 61e: 32a3e8 + movi a4, 0 /* 0x00000000 */ # 621: 0c04 + call0 os_timer_arm # 623: 01d9ffc0 + # 627: 0000 + bnez a13, .Lbr043 # 629: dc7d + movi a2, .Ldata001 # 62b: 21ceff + l32i a0, a2, 0 /* [.Ldata001] */ # 62e: 0802 + movi a3, -17 /* 0xffffffef */ # 630: 6cf3 + and a0, a0, a3 # 632: 300010 +.Lbr040: s32i a0, a2, 0 # 635: 0902 +.Lbr041: mov a2, a13 # 637: 2d0d +.Lbr042: l32i a12, sp, 4 /* [(local1)] */ # 639: c811 + l32i a13, sp, 8 /* [(local2)] */ # 63b: d821 + l32i a0, sp, 0 /* [(local0)] */ # 63d: 0801 + addi sp, sp, 16 /* (top of frame) */ # 63f: 12c110 + ret # 642: 0df0 +.Lbr043: bnei a13, 1, .Lbr041 # 644: 661def + movi a2, .Ldata009 # 647: 21c8ff + l32i a0, a2, 0 /* [.Ldata009] */ # 64a: 0802 + movi a3, 320 /* 0x00000140 */ # 64c: 32a140 + or a0, a0, a3 # 64f: 300020 + j .Lbr040 # 652: c6f7ff + + .literal_position # 658: 8c060000 + # 65c: 98060000 + # 660: 00000000 + # 664: 00feef3f + # 668: 00000000 + # 66c: 00000000 + # 670: 00feef3f + # 674: 00060060 + # 678: 94060000 + # 67c: e8070000 + # 680: e8070000 + # 684: 00000000 + # 688: 00000000 + # 68c: 00000000 + # 690: 00000000 + # 694: 00000000 + # 698: 00000000 + +# Function @ .irom0.text+0x69c +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 +.Lfunc007: addi sp, sp, -16 /* (local0) */ # 69c: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 69f: 0901 + movi a0, .Ldata006 # 6a1: 01edff + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 6a4: c911 + l32i a0, a0, 0 /* [.Ldata006] */ # 6a6: 0800 + mov a12, a2 /* arg0 */ # 6a8: cd02 + beqz a0, .Lbr044 # 6aa: 9cf0 + bne a2, a0, .Lbr044 # 6ac: 07921d + call0 chm_get_current_channel # 6af: 01f5ffc0 + # 6b3: 0000 + l32i a3, a12, 120 /* [arg0+0x78] */ # 6b5: 322c1e + bne a3, a2, .Lbr044 # 6b8: 279311 + movi a6, .Ldata009 # 6bb: 61e8ff + movi a2, 0 /* 0x00000000 */ # 6be: 0c02 + l32i a5, a6, 0 /* [.Ldata009] */ # 6c0: 5806 + movi a7, 320 /* 0x00000140 */ # 6c2: 72a140 + or a5, a5, a7 # 6c5: 705520 + s32i a5, a6, 0 /* a5 -> [.Ldata009] */ # 6c8: 5906 + j .Lbr049 # 6ca: 462400 +.Lbr044: beqz a12, .Lbr048 # 6cd: 16cc08 + movi a0, NMIIrqIsOn # 6d0: 01e4ff + movi a3, 4 /* 0x00000004 */ # 6d3: 0c43 + s8i a3, a12, 232 /* 0x04 -> [arg0+0xe8] */ # 6d5: 324ce8 + l8ui a0, a0, 0 /* [NMIIrqIsOn] */ # 6d8: 020000 + bnez a0, .Lbr046 # 6db: ec70 + call0 vPortEnterCritical # 6dd: 01eaffc0 + # 6e1: 0000 + movi a2, 0x3feffe00 # 6e3: 21e0ff + movi a4, -32 /* 0xffffffe0 */ # 6e6: 6c04 +.Lbr045: memw # 6e8: c02000 + l32i a6, a2, 0x200 /* [0x3ff00000] */ # 6eb: 622280 + and a6, a6, a4 # 6ee: 406610 + memw # 6f1: c02000 + s32i a6, a2, 0x200 /* a6 -> [0x3ff00000] */ # 6f4: 626280 + memw # 6f7: c02000 + l32i a5, a2, 0x200 /* [0x3ff00000] */ # 6fa: 522280 + bbsi a5, 0, .Lbr045 # 6fd: 07e5e7 + movi a0, NMIIrqIsOn # 700: 01daff + l8ui a0, a0, 0 /* [NMIIrqIsOn] */ # 703: 020000 +.Lbr046: movi a5, g_ic+0x100 # 706: 51d9ff + l32i a3, a12, 120 /* [arg0+0x78] */ # 709: 322c1e + s32i a3, a5, 76 /* [arg0+0x78] -> [g_ic+0x14c] */ # 70c: 326513 + bnez a0, .Lbr047 # 70f: dcd0 + memw # 711: c02000 + movi a7, 0x3feffe00 # 714: 71d7ff + l32i a6, a7, 0x200 /* [0x3ff00000] */ # 717: 622780 + movi a8, -32 /* 0xffffffe0 */ # 71a: 6c08 + and a6, a6, a8 # 71c: 806610 + movi a8, 1 /* 0x00000001 */ # 71f: 0c18 + or a6, a6, a8 # 721: 806620 + memw # 724: c02000 + s32i a6, a7, 0x200 /* a6 -> [0x3ff00000] */ # 727: 626780 + call0 vPortExitCritical # 72a: 01d8ffc0 + # 72e: 0000 +.Lbr047: movi a9, 0x60000600 # 730: 91d1ff + memw # 733: c02000 + movi a10, .Ldata008 # 736: a1d0ff + l32i a9, a9, 36 /* [0x60000624] */ # 739: 9899 + s32i a9, a10, 0 /* [0x60000624] -> [.Ldata008] */ # 73b: 990a + call0 chm_get_current_channel # 73d: 01d4ffc0 + # 741: 0000 + l32i a10, a12, 120 /* [arg0+0x78] */ # 743: a22c1e + beq a10, a2, .Lbr050 # 746: 271a1e + movi a3, .Lfunc008 # 749: 31ccff + movi a2, 3 /* 0x00000003 */ # 74c: 0c32 + mov a4, a12 /* arg0 */ # 74e: 4d0c + call0 chm_acquire_lock # 750: 01d1ffc0 + # 754: 0000 + beqz a2, .Lbr052 # 756: 9ca2 + movi a2, 1 /* 0x00000001 */ # 758: 0c12 + j .Lbr049 # 75a: 460000 +.Lbr048: movi a2, 1 /* 0x00000001 */ # 75d: 0c12 +.Lbr049: l32i a12, sp, 4 /* [(local1)] */ # 75f: c811 + l32i a0, sp, 0 /* [(local0)] */ # 761: 0801 + addi sp, sp, 16 /* (top of frame) */ # 763: 12c110 + ret # 766: 0df0 +.Lbr050: mov a2, a12 /* arg0 */ # 768: 2d0c + movi a3, 0 /* 0x00000000 */ # 76a: 0c03 + call0 .Lfunc008 # 76c: 850700 +.Lbr051: movi a2, 2 /* 0x00000002 */ # 76f: 0c22 + j .Lbr049 # 771: 86faff +.Lbr052: mov a6, a12 /* arg0 */ # 774: 6d0c + l32i a2, a12, 120 /* [arg0+0x78] */ # 776: 222c1e + movi a5, .Lfunc008 # 779: 51c1ff + movi a3, 0 /* 0x00000000 */ # 77c: 0c03 + mov a4, a5 /* .Lfunc008 */ # 77e: 4d05 + call0 chm_start_op # 780: 01c6ffc0 + # 784: 0000 + j .Lbr051 # 786: 46f9ff + + .literal_position # 78c: 00000000 + # 790: 00000000 + # 794: 00000000 + # 798: 00000000 + # 79c: 90060000 + # 7a0: 00000000 + # 7a4: 4c070000 + # 7a8: 00000000 + # 7ac: 00000000 + # 7b0: 00000000 + # 7b4: 00000000 + # 7b8: 00000000 + # 7bc: 00000000 + # 7c0: 00000000 + # 7c4: 00000000 + # 7c8: 00000000 + # 7cc: 00000000 + # 7d0: 00000000 + # 7d4: 00000000 + # 7d8: 00000000 + # 7dc: 00000000 + # 7e0: 00000000 + # 7e4: 00000000 + +# Function @ .irom0.text+0x7e8 +# Local variables/stack: +# (local0): word @ -0x30 +# (local1): word @ -0x2c +# (local2): word[4] @ -0x28 +# (local3): word @ -0x18 +# (local4): word @ -0x14 +# (local5): word @ -0x10 +# (local6): word[3] @ -0xc + .balign 4 +.Lfunc008: movi a4, 8 /* 0x00000008 */ # 7e8: 0c84 + addi sp, sp, -48 /* (local0) */ # 7ea: 12c1d0 + s32i a0, sp, 32 /* a0 -> [(local5)] */ # 7ed: 0981 + s32i a12, sp, 36 /* a12 -> [(local6)] */ # 7ef: c991 + s32i a3, sp, 28 /* arg1 -> [(local4)] */ # 7f1: 3971 + mov a12, a2 /* arg0 */ # 7f3: cd02 + movi a3, .Ldata011 # 7f5: 31e5ff + addi a2, sp, 16 /* (FP)-0x20 */ # 7f8: 22c110 + call0 memcpy # 7fb: 01ecffc0 + # 7ff: 0000 + call0 chm_release_lock # 801: 01ebffc0 + # 805: 0000 + l32i a0, sp, 28 /* [(local4)] */ # 807: 0871 + bnez a0, .Lbr057 # 809: 56a008 + movi a2, 6 /* 0x00000006 */ # 80c: 0c62 + call0 wDev_remove_KeyEntry # 80e: 01e9ffc0 + # 812: 0000 + movi a2, 7 /* 0x00000007 */ # 814: 0c72 + call0 wDev_remove_KeyEntry # 816: 01e8ffc0 + # 81a: 0000 + movi a2, 8 /* 0x00000008 */ # 81c: 0c82 + call0 wDev_remove_KeyEntry # 81e: 01e7ffc0 + # 822: 0000 + movi a2, 9 /* 0x00000009 */ # 824: 0c92 + call0 wDev_remove_KeyEntry # 826: 01e6ffc0 + # 82a: 0000 + movi a0, g_ic+0x180 # 82c: 01d9ff + l8ui a2, a0, 137 /* [g_ic+0x209] */ # 82f: 220089 + movi a3, g_ic+0x271 # 832: 31ddff + beqi a2, 1, .Lbr058 # 835: 261267 + movi a2, g_ic # 838: 21d7ff + call0 wpa_config_profile # 83b: 01e2ffc0 + # 83f: 0000 + movi a2, g_ic # 841: 21d5ff + mov a3, a12 /* arg0 */ # 844: 3d0c + call0 wpa_config_bss # 846: 01e0ffc0 + # 84a: 0000 +.Lbr053: call0 scan_get_type # 84c: 01e0ffc0 + # 850: 0000 + movi a0, .Ldata007 # 852: 01d2ff + l32i a0, a0, 0 /* [.Ldata007] */ # 855: 0800 + beqz a0, .Lbr054 # 857: 9cc0 + l8ui a2, a0, 0 /* [[.Ldata007]] */ # 859: 220000 + bnez a2, .Lbr055 # 85c: dcc2 + l8ui a3, a0, 1 /* [[.Ldata007]+0x1] */ # 85e: 320001 + bnez a3, .Lbr055 # 861: dc73 + l8ui a4, a0, 2 /* [[.Ldata007]+0x2] */ # 863: 420002 + bnez a4, .Lbr055 # 866: dc24 + l8ui a5, a0, 3 /* [[.Ldata007]+0x3] */ # 868: 520003 + bnez a5, .Lbr055 # 86b: ccd5 + l8ui a6, a0, 4 /* [[.Ldata007]+0x4] */ # 86d: 620004 + bnez a6, .Lbr055 # 870: cc86 + l8ui a7, a0, 5 /* [[.Ldata007]+0x5] */ # 872: 720005 + bnez a7, .Lbr055 # 875: cc37 +.Lbr054: movi a4, 0 /* 0x00000000 */ # 877: 0c04 + j .Lbr056 # 879: 460000 +.Lbr055: movi a4, 1 /* 0x00000001 */ # 87c: 0c14 +.Lbr056: movi a3, g_ic+0x1d8 # 87e: 31c8ff + beqz a4, .Lbr061 # 881: 16c40a + movi a8, .Ldata010 # 884: 81c8ff + l8ui a8, a8, 0 /* [.Ldata010] */ # 887: 820800 + beqz a8, .Lbr061 # 88a: 16380a + mov a2, a12 /* arg0 */ # 88d: 2d0c + movi a5, 0 /* 0x00000000 */ # 88f: 0c05 + call0 ieee80211_mlme_connect_bss # 891: 01cfffc0 + # 895: 0000 +.Lbr057: l32i a12, sp, 36 /* [(local6)] */ # 897: c891 + l32i a0, sp, 32 /* [(local5)] */ # 899: 0881 + addi sp, sp, 48 /* (top of frame) */ # 89b: 12c130 + ret # 89e: 0df0 +.Lbr058: l8ui a2, a0, 138 /* [g_ic+0x20a] */ # 8a0: 22008a + bnei a2, 7, .Lbr060 # 8a3: 667243 + movi a2, 1 /* 0x00000001 */ # 8a6: 0c12 + movi a4, 0 /* 0x00000000 */ # 8a8: 0c04 + movi a5, 1 /* 0x00000001 */ # 8aa: 0c15 + addi a6, sp, 16 /* (FP)-0x20 */ # 8ac: 62c110 + movi a7, 8 /* 0x00000008 */ # 8af: 0c87 + s32i a3, sp, 0 /* g_ic+0x271 -> [(local0)] */ # 8b1: 3901 + s32i a3, sp, 24 /* g_ic+0x271 -> [(local3)] */ # 8b3: 3961 + movi a9, 5 /* 0x00000005 */ # 8b5: 0c59 + s32i a9, sp, 4 /* 0x00000005 -> [(local1)] */ # 8b7: 9911 + s32i a9, sp, 8 /* 0x00000005 -> [(local2)] */ # 8b9: 9921 + mov a3, a12 /* arg0 */ # 8bb: 3d0c + call0 ppInstallKey # 8bd: 01c5ffc0 + # 8c1: 0000 + movi a2, 1 /* 0x00000001 */ # 8c3: 0c12 + mov a3, a12 /* arg0 */ # 8c5: 3d0c + movi a4, 1 /* 0x00000001 */ # 8c7: 0c14 + movi a5, 1 /* 0x00000001 */ # 8c9: 0c15 + addi a6, sp, 16 /* (FP)-0x20 */ # 8cb: 62c110 + movi a7, 8 /* 0x00000008 */ # 8ce: 0c87 + l32i a0, sp, 24 /* [(local3)] */ # 8d0: 0861 + movi a10, 6 /* 0x00000006 */ # 8d2: 0c6a + movi a11, 5 /* 0x00000005 */ # 8d4: 0c5b + s32i a11, sp, 4 /* 0x00000005 -> [(local1)] */ # 8d6: b911 + s32i a10, sp, 8 /* 0x00000006 -> [(local2)] */ # 8d8: a921 + s32i a0, sp, 0 /* [(local3)] -> [(local0)] */ # 8da: 0901 + call0 ppInstallKey # 8dc: 01bfffc0 + # 8e0: 0000 +.Lbr059: movi a2, 5 /* 0x00000005 */ # 8e2: 0c52 + s8i a2, a12, 233 /* 0x05 -> [arg0+0xe9] */ # 8e4: 224ce9 + j .Lbr053 # 8e7: 46d8ff +.Lbr060: addi a4, a2, -8 /* [g_ic+0x20a]-0x8 */ # 8ea: 42c2f8 + bnez a4, .Lbr053 # 8ed: 56b4f5 + movi a2, 5 /* 0x00000005 */ # 8f0: 0c52 + movi a4, 0 /* 0x00000000 */ # 8f2: 0c04 + movi a7, 8 /* 0x00000008 */ # 8f4: 0c87 + s32i a3, sp, 0 /* g_ic+0x271 -> [(local0)] */ # 8f6: 3901 + s32i a3, sp, 24 /* g_ic+0x271 -> [(local3)] */ # 8f8: 3961 + movi a5, 5 /* 0x00000005 */ # 8fa: 0c55 + movi a6, 13 /* 0x0000000d */ # 8fc: 0cd6 + s32i a6, sp, 4 /* 0x0000000d -> [(local1)] */ # 8fe: 6911 + s32i a5, sp, 8 /* 0x00000005 -> [(local2)] */ # 900: 5921 + mov a3, a12 /* arg0 */ # 902: 3d0c + movi a5, 1 /* 0x00000001 */ # 904: 0c15 + addi a6, sp, 16 /* (FP)-0x20 */ # 906: 62c110 + call0 ppInstallKey # 909: 01b4ffc0 + # 90d: 0000 + movi a2, 5 /* 0x00000005 */ # 90f: 0c52 + mov a3, a12 /* arg0 */ # 911: 3d0c + movi a4, 1 /* 0x00000001 */ # 913: 0c14 + movi a5, 1 /* 0x00000001 */ # 915: 0c15 + addi a6, sp, 16 /* (FP)-0x20 */ # 917: 62c110 + movi a8, 13 /* 0x0000000d */ # 91a: 0cd8 + movi a7, 6 /* 0x00000006 */ # 91c: 0c67 + l32i a9, sp, 24 /* [(local3)] */ # 91e: 9861 + s32i a9, sp, 0 /* [(local3)] -> [(local0)] */ # 920: 9901 + s32i a7, sp, 8 /* 0x00000006 -> [(local2)] */ # 922: 7921 + s32i a8, sp, 4 /* 0x0000000d -> [(local1)] */ # 924: 8911 + movi a7, 8 /* 0x00000008 */ # 926: 0c87 + call0 ppInstallKey # 928: 01aeffc0 + # 92c: 0000 + j .Lbr059 # 92e: 06ecff +.Lbr061: mov a2, a12 /* arg0 */ # 931: 2d0c + movi a5, 1 /* 0x00000001 */ # 933: 0c15 + call0 ieee80211_mlme_connect_bss # 935: 01abffc0 + # 939: 0000 + j .Lbr057 # 93b: 06d6ff + + .literal_position # 940: 89060000 + # 944: 00000000 + # 948: 00000000 + # 94c: 74040000 + # 950: 74040000 + # 954: 89060000 + # 958: 00000000 + +# Function @ .irom0.text+0x95c +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word @ -0x10 +# (local5): word @ -0xc +# (local6): word[2] @ -0x8 + .balign 4 +.Lfunc009: addi sp, sp, -32 /* (local0) */ # 95c: 12c1e0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 95f: c911 + s32i a15, sp, 16 /* a15 -> [(local4)] */ # 961: f941 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 963: 0901 + movi a0, .Ldata004 # 965: 01f6ff + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 968: d921 + l8ui a0, a0, 0 /* [.Ldata004] */ # 96a: 020000 + s32i a14, sp, 12 /* a14 -> [(local3)] */ # 96d: e931 + beqz a0, .Lbr065 # 96f: 169006 + movi a14, 0 /* 0x00000000 */ # 972: 0c0e + movi a13, 0 /* 0x00000000 */ # 974: 0c0d + movi a15, g_ic+0x201 # 976: f1f3ff + movi a0, .Label002 # 979: 01f4ff + movi a2, 0 /* 0x00000000 */ # 97c: 0c02 + movi a3, g_ic+0x282 # 97e: 31f2ff + s32i a3, sp, 24 /* g_ic+0x282 -> [(local6)] */ # 981: 3961 + s32i a2, sp, 20 /* 0x00000000 -> [(local5)] */ # 983: 2951 +.Lbr062: l8ui a4, a15, 128 /* [g_ic+0x281] */ # 985: 420f80 + addx4 a2, a13, a0 # 988: 002da0 + addmi a2, a2, 256 # 98b: 22d201 + l8ui a12, a2, 255 # 98e: c202ff + l8ui a3, a2, 254 # 991: 3202fe + slli a12, a12, 8 # 994: 80cc11 + or a12, a12, a3 # 997: 30cc20 + slli a12, a12, 8 # 99a: 80cc11 + l8ui a3, a2, 253 # 99d: 3202fd + l8ui a2, a2, 252 # 9a0: 2202fc + or a12, a12, a3 # 9a3: 30cc20 + slli a12, a12, 8 # 9a6: 80cc11 + or a12, a12, a2 # 9a9: 20cc20 + beqz a4, .Lbr063 # 9ac: 8cc4 + l32i a2, sp, 24 /* [(local6)] */ # 9ae: 2861 + mov a3, a12 # 9b0: 3d0c + movi a4, 6 /* 0x00000006 */ # 9b2: 0c64 + call0 memcmp # 9b4: 01e9ffc0 + # 9b8: 0000 + beqz a2, .Lbr067 # 9ba: ac42 +.Lbr063: mov a2, a12 # 9bc: 2d0c + call0 .Lfunc010 # 9be: 850300 + movi a0, .Label002 # 9c1: 01e3ff + movi a4, .Ldata004 # 9c4: 41e4ff + addi a13, a13, 1 # 9c7: 1bdd + extui a13, a13, 0, 8 # 9c9: d0d074 + l8ui a4, a4, 0 /* [.Ldata004] */ # 9cc: 420400 + bgeu a14, a2, .Lbr064 # 9cf: 27be03 + mov a14, a2 # 9d2: ed02 + s32i a12, sp, 20 /* a12 -> [(local5)] */ # 9d4: c951 +.Lbr064: bltu a13, a4, .Lbr062 # 9d6: 473dab + j .Lbr066 # 9d9: c60000 +.Lbr065: movi a5, 0 /* 0x00000000 */ # 9dc: 0c05 + s32i a5, sp, 20 /* 0x00000000 -> [(local5)] */ # 9de: 5951 +.Lbr066: l32i a12, sp, 20 /* [(local5)] */ # 9e0: c851 +.Lbr067: l32i a0, sp, 0 /* [(local0)] */ # 9e2: 0801 + l32i a13, sp, 8 /* [(local2)] */ # 9e4: d821 + l32i a14, sp, 12 /* [(local3)] */ # 9e6: e831 + mov a2, a12 # 9e8: 2d0c + l32i a15, sp, 16 /* [(local4)] */ # 9ea: f841 + l32i a12, sp, 4 /* [(local1)] */ # 9ec: c811 + addi sp, sp, 32 /* (top of frame) */ # 9ee: 12c120 + ret # 9f1: 0df0 + + .literal_position # 9f4: 88060000 + +# Function @ .irom0.text+0x9f8 + .balign 4 +.Lfunc010: movi a5, .Ldata003 # 9f8: 51ffff + l8ui a5, a5, 0 /* [.Ldata003] */ # 9fb: 520500 + bbci a5, 0, .Lbr068 # 9fe: 07651a + l8ui a4, a2, 115 /* [arg0+0x73] */ # a01: 420273 + l8ui a6, a2, 112 /* [arg0+0x70] */ # a04: 620270 + slli a4, a4, 24 # a07: 804401 + srai a4, a4, 24 # a0a: 404831 + bbci a5, 1, .Lbr070 # a0d: 17651c + slli a6, a6, 24 # a10: 806601 + srai a6, a6, 24 # a13: 606831 + mul16s a4, a4, a6 # a16: 6044d1 + j .Lbr070 # a19: 060400 +.Lbr068: bbci a5, 1, .Lbr069 # a1c: 17650b + l8ui a4, a2, 112 /* [arg0+0x70] */ # a1f: 420270 + slli a4, a4, 24 # a22: 804401 + srai a4, a4, 24 # a25: 404831 + j .Lbr070 # a28: 460000 +.Lbr069: movi a4, 0 /* 0x00000000 */ # a2b: 0c04 +.Lbr070: bbci a5, 2, .Lbr071 # a2d: 276509 + beqz a4, .Lbr071 # a30: 8c64 + l8ui a7, a2, 113 /* [arg0+0x71] */ # a32: 720271 + addi a6, a4, 2 # a35: 2b64 + movnez a4, a6, a7 # a37: 704693 +.Lbr071: bbci a5, 3, .Lbr072 # a3a: 376508 + l8ui a9, a2, 118 /* [arg0+0x76] */ # a3d: 920276 + slli a8, a4, 1 # a40: f08411 + movnez a4, a8, a9 # a43: 904893 +.Lbr072: mov a2, a4 # a46: 2d04 + ret # a48: 0df0 + + .literal_position # a4c: 00000000 + # a50: 8c060000 + # a54: 00000000 + +# Function @ .irom0.text+0xa58 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word @ -0x10 +# (local5): word[3] @ -0xc + .balign 4 + .global cnx_bss_alloc + .type cnx_bss_alloc, @function +cnx_bss_alloc: + addi sp, sp, -32 /* (local0) */ # a58: 12c1e0 + s32i a14, sp, 12 /* a14 -> [(local3)] */ # a5b: e931 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # a5d: 0901 + s32i a15, sp, 16 /* a15 -> [(local4)] */ # a5f: f941 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # a61: c911 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # a63: d921 + movi a12, 0 /* 0x00000000 */ # a65: 0c0c + movi a13, 0 /* 0x00000000 */ # a67: 0c0d + movi a15, .Ldata001 # a69: f1f8ff + movi a0, -1 /* 0xffffffff */ # a6c: 7cf0 + s32i a0, sp, 20 /* 0xffffffff -> [(local5)] */ # a6e: 0951 +.Lbr073: movi a0, 272 /* 0x00000110 */ # a70: 02a110 + mul16u a0, a12, a0 # a73: 000cc1 + add a0, a15, a0 # a76: 0a0f + l8ui a2, a0, 16 # a78: 220010 + addi a14, a0, 16 # a7b: e2c010 + bnez a2, .Lbr077 # a7e: 562206 + l8ui a2, a0, 17 # a81: 220011 + l8ui a3, a0, 18 # a84: 320012 + bnez a2, .Lbr077 # a87: 569205 + bnez a3, .Lbr077 # a8a: 566305 + l8ui a4, a0, 19 # a8d: 420013 + bnez a4, .Lbr077 # a90: 560405 + l8ui a5, a0, 20 # a93: 520014 + bnez a5, .Lbr077 # a96: 56a504 + l8ui a6, a0, 21 # a99: 620015 + bnez a6, .Lbr077 # a9c: 564604 + addi a13, a0, 16 # a9f: d2c010 +.Lbr074: l8ui a7, a13, 0 # aa2: 720d00 + l8ui a8, a13, 1 # aa5: 820d01 + bnez a7, .Lbr075 # aa8: dc47 + bnez a8, .Lbr075 # aaa: dc28 + l8ui a9, a13, 2 # aac: 920d02 + l8ui a10, a13, 3 # aaf: a20d03 + bnez a9, .Lbr075 # ab2: cca9 + bnez a10, .Lbr075 # ab4: cc8a + l8ui a11, a13, 4 # ab6: b20d04 + l8ui a12, a13, 5 # ab9: c20d05 + bnez a11, .Lbr075 # abc: cc0b + beqz a12, .Lbr076 # abe: 8c6c +.Lbr075: mov a2, a13 # ac0: 2d0d + call0 cnx_remove_rc # ac2: 01e4ffc0 + # ac6: 0000 +.Lbr076: l32i a0, sp, 0 /* [(local0)] */ # ac8: 0801 + l32i a12, sp, 4 /* [(local1)] */ # aca: c811 + mov a2, a13 # acc: 2d0d + l8ui a14, a13, 6 # ace: e20d06 + movi a15, 1 /* 0x00000001 */ # ad1: 0c1f + or a14, a14, a15 # ad3: f0ee20 + s8i a14, a13, 6 # ad6: e24d06 + l32i a15, sp, 16 /* [(local4)] */ # ad9: f841 + l32i a13, sp, 8 /* [(local2)] */ # adb: d821 + l32i a14, sp, 12 /* [(local3)] */ # add: e831 + addi sp, sp, 32 /* (top of frame) */ # adf: 12c120 + ret # ae2: 0df0 +.Lbr077: movi a2, .Ldata006 # ae4: 21dbff + l32i a2, a2, 0 /* [.Ldata006] */ # ae7: 2802 + beq a2, a14, .Lbr078 # ae9: e7120d + mov a2, a14 # aec: 2d0e + call0 .Lfunc010 # aee: 85f0ff + l32i a3, sp, 20 /* [(local5)] */ # af1: 3851 + bgeu a2, a3, .Lbr078 # af3: 37b203 + mov a13, a14 # af6: dd0e + s32i a2, sp, 20 /* a2 -> [(local5)] */ # af8: 2951 +.Lbr078: addi a12, a12, 1 # afa: 1bcc + extui a12, a12, 0, 8 # afc: c0c074 + addi a5, a12, -6 # aff: 52ccfa + bnez a5, .Lbr073 # b02: 56a5f6 + j .Lbr074 # b05: 46e6ff + + .literal_position # b08: 89060000 + # b0c: 74040000 + # b10: 00000000 + +# Function @ .irom0.text+0xb14 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word[4] @ -0x10 + .balign 4 + .global cnx_rc_search + .type cnx_rc_search, @function +cnx_rc_search: + addi sp, sp, -32 /* (local0) */ # b14: 12c1e0 + s32i a15, sp, 16 /* a15 -> [(local4)] */ # b17: f941 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # b19: 0901 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # b1b: c911 + s32i a14, sp, 12 /* a14 -> [(local3)] */ # b1d: e931 + movi a14, .Ldata004 # b1f: e1faff + s32i a13, sp, 8 /* a13 -> [(local2)] */ # b22: d921 + l8ui a14, a14, 0 /* [.Ldata004] */ # b24: e20e00 + mov a13, a2 /* arg0 */ # b27: dd02 + beqz a14, .Lbr081 # b29: 163e04 + movi a12, 0 /* 0x00000000 */ # b2c: 0c0c +.Lbr079: mov a3, a13 /* arg0 */ # b2e: 3d0d + movi a0, .Label002 # b30: 01f7ff + movi a4, 6 /* 0x00000006 */ # b33: 0c64 + addx4 a0, a12, a0 # b35: 000ca0 + addmi a0, a0, 256 # b38: 02d001 + l8ui a15, a0, 255 # b3b: f200ff + l8ui a2, a0, 254 # b3e: 2200fe + slli a15, a15, 8 # b41: 80ff11 + or a15, a15, a2 # b44: 20ff20 + slli a15, a15, 8 # b47: 80ff11 + l8ui a2, a0, 253 # b4a: 2200fd + l8ui a0, a0, 252 # b4d: 0200fc + or a15, a15, a2 # b50: 20ff20 + slli a15, a15, 8 # b53: 80ff11 + or a15, a15, a0 # b56: 00ff20 + mov a2, a15 # b59: 2d0f + call0 memcmp # b5b: 01edffc0 + # b5f: 0000 + bnez a2, .Lbr080 # b61: cc32 + mov a2, a15 # b63: 2d0f + j .Lbr082 # b65: 460200 +.Lbr080: addi a12, a12, 1 # b68: 1bcc + extui a12, a12, 0, 8 # b6a: c0c074 + bne a14, a12, .Lbr079 # b6d: c79ebd +.Lbr081: movi a2, 0 /* 0x00000000 */ # b70: 0c02 +.Lbr082: l32i a12, sp, 4 /* [(local1)] */ # b72: c811 + l32i a13, sp, 8 /* [(local2)] */ # b74: d821 + l32i a14, sp, 12 /* [(local3)] */ # b76: e831 + l32i a15, sp, 16 /* [(local4)] */ # b78: f841 + l32i a0, sp, 0 /* [(local0)] */ # b7a: 0801 + addi sp, sp, 32 /* (top of frame) */ # b7c: 12c120 + ret # b7f: 0df0 + + .literal_position # b84: 8a060000 + # b88: 74040000 + # b8c: 8a060000 + +# Function @ .irom0.text+0xb90 + .balign 4 +.Lfunc011: movi a6, .Ldata005 # b90: 61fdff + l8ui a5, a6, 0 /* [.Ldata005] */ # b93: 520600 + addi a6, a6, -1 /* .Ldata004 */ # b96: 0b66 + l8ui a6, a6, 0 /* [.Ldata004] */ # b98: 620600 + movi a7, .Label002 # b9b: 71fbff + bgeu a5, a6, .Lbr084 # b9e: 67b539 +.Lbr083: movi a9, .Ldata005 # ba1: 91faff + addx4 a3, a5, a7 # ba4: 7035a0 + addmi a3, a3, 256 # ba7: 32d301 + addi a5, a5, 1 # baa: 1b55 + extui a5, a5, 0, 8 # bac: 505074 + l8ui a2, a3, 255 # baf: 2203ff + l8ui a4, a3, 254 # bb2: 4203fe + slli a2, a2, 8 # bb5: 802211 + or a2, a2, a4 # bb8: 402220 + slli a2, a2, 8 # bbb: 802211 + l8ui a4, a3, 253 # bbe: 4203fd + l8ui a3, a3, 252 # bc1: 3203fc + s8i a5, a9, 0 /* a5 -> [.Ldata005] */ # bc4: 524900 + or a2, a2, a4 # bc7: 402220 + slli a2, a2, 8 # bca: 802211 + or a2, a2, a3 # bcd: 302220 + l32i a8, a2, 120 # bd0: 82221e + l32i a8, a8, 0 # bd3: 8808 + bbci a8, 9, .Lbr085 # bd5: 976804 + bne a5, a6, .Lbr083 # bd8: 6795c5 +.Lbr084: movi a2, 0 /* 0x00000000 */ # bdb: 0c02 +.Lbr085: ret # bdd: 0df0 + + .literal_position # be0: 89060000 + # be4: 74040000 + # be8: 70040000 + # bec: 89060000 + +# Function @ .irom0.text+0xbf0 + .balign 4 + .global cnx_add_rc + .type cnx_add_rc, @function +cnx_add_rc: movi a6, .Ldata004 # bf0: 61fcff + l8ui a6, a6, 0 /* [.Ldata004] */ # bf3: 620600 + movi a10, .Label002 # bf6: a1fbff + bltui a6, 6, .Lbr086 # bf9: b66603 + movi a2, -1 /* 0xffffffff */ # bfc: 7cf2 + ret /* 0xffffffff */ # bfe: 0df0 +.Lbr086: bltui a6, 2, .Lbr087 # c00: b62602 + j .Lbr094 # c03: 462500 +.Lbr087: srli a7, a2, 8 # c06: 207841 + addx4 a8, a6, a10 # c09: a086a0 + addmi a8, a8, 256 # c0c: 82d801 + s8i a7, a8, 253 # c0f: 7248fd + s8i a2, a8, 252 # c12: 2248fc + srli a7, a7, 8 # c15: 707841 + s8i a7, a8, 254 # c18: 7248fe + srli a7, a7, 8 # c1b: 707841 + s8i a7, a8, 255 # c1e: 7248ff + j .Lbr093 # c21: 061a00 +.Lbr088: movi a5, 0 /* 0x00000000 */ # c24: 0c05 +.Lbr089: addx4 a8, a5, a10 # c26: a085a0 +.Lbr090: addi a9, a5, 1 # c29: 1b95 + bge a9, a6, .Lbr092 # c2b: 67a946 + movi a10, .Label001 # c2e: a1eeff +.Lbr091: addx4 a11, a6, a10 # c31: a0b6a0 + addmi a3, a11, 256 # c34: 32db01 + addi a6, a6, -1 # c37: 0b66 + extui a6, a6, 0, 8 # c39: 606074 + addmi a11, a11, 512 # c3c: b2db02 + l8ui a7, a3, 255 # c3f: 7203ff + l8ui a4, a3, 254 # c42: 4203fe + slli a7, a7, 8 # c45: 807711 + or a7, a7, a4 # c48: 407720 + l8ui a4, a3, 253 # c4b: 4203fd + slli a7, a7, 8 # c4e: 807711 + or a7, a7, a4 # c51: 407720 + l8ui a3, a3, 252 # c54: 3203fc + slli a7, a7, 8 # c57: 807711 + or a7, a7, a3 # c5a: 307720 + s8i a7, a11, 0 # c5d: 724b00 + srli a7, a7, 8 # c60: 707841 + s8i a7, a11, 1 # c63: 724b01 + srli a7, a7, 8 # c66: 707841 + s8i a7, a11, 2 # c69: 724b02 + srli a7, a7, 8 # c6c: 707841 + s8i a7, a11, 3 # c6f: 724b03 + blt a9, a6, .Lbr091 # c72: 6729bb +.Lbr092: srli a9, a2, 8 # c75: 209841 + addmi a10, a8, 512 # c78: a2d802 + s8i a2, a10, 0 # c7b: 224a00 + s8i a9, a10, 1 # c7e: 924a01 + srli a9, a9, 8 # c81: 909841 + s8i a9, a10, 2 # c84: 924a02 + srli a9, a9, 8 # c87: 909841 + s8i a9, a10, 3 # c8a: 924a03 +.Lbr093: movi a11, .Ldata004 # c8d: b1d7ff + l8ui a10, a11, 0 /* [.Ldata004] */ # c90: a20b00 + movi a2, 0 /* 0x00000000 */ # c93: 0c02 + addi a10, a10, 1 /* [.Ldata004]+0x1 */ # c95: 1baa + s8i a10, a11, 0 /* [.Ldata004]+0x1 -> [.Ldata004] */ # c97: a24b00 + ret /* 0x00000000 */ # c9a: 0df0 +.Lbr094: beqz a6, .Lbr088 # c9c: 1646f8 + movi a5, 0 /* 0x00000000 */ # c9f: 0c05 + l32i a9, a2, 120 /* [arg0+0x78] */ # ca1: 92221e +.Lbr095: addx4 a8, a5, a10 # ca4: a085a0 + addmi a3, a8, 256 # ca7: 32d801 + l8ui a11, a3, 255 # caa: b203ff + l8ui a4, a3, 254 # cad: 4203fe + slli a11, a11, 8 # cb0: 80bb11 + or a11, a11, a4 # cb3: 40bb20 + slli a11, a11, 8 # cb6: 80bb11 + l8ui a4, a3, 253 # cb9: 4203fd + l8ui a3, a3, 252 # cbc: 3203fc + or a11, a11, a4 # cbf: 40bb20 + slli a11, a11, 8 # cc2: 80bb11 + or a11, a11, a3 # cc5: 30bb20 + l32i a11, a11, 120 # cc8: b22b1e + sub a11, a11, a9 # ccb: 90bbc0 + beqz a11, .Lbr090 # cce: 167bf5 + addi a5, a5, 1 # cd1: 1b55 + extui a5, a5, 0, 8 # cd3: 505074 + bne a5, a6, .Lbr095 # cd6: 6795ca + j .Lbr089 # cd9: 46d2ff + + .literal_position # cdc: 89060000 + # ce0: 74040000 + # ce4: 89060000 + # ce8: 89060000 + # cec: 00000000 + +# Function @ .irom0.text+0xcf0 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word @ -0x8 +# (local3): word @ -0x4 + .balign 4 + .global cnx_remove_rc + .type cnx_remove_rc, @function +cnx_remove_rc: + movi a5, .Ldata004 # cf0: 51fbff + addi sp, sp, -16 /* (local0) */ # cf3: 12c1f0 + s32i a14, sp, 12 /* a14 -> [(local3)] */ # cf6: e931 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # cf8: 0901 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # cfa: c911 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # cfc: d921 + l8ui a5, a5, 0 /* [.Ldata004] */ # cfe: 520500 + movi a13, .Label002 # d01: d1f7ff + beqz a5, .Lbr098 # d04: 160506 + movi a12, 0 /* 0x00000000 */ # d07: 0c0c +.Lbr096: addx4 a14, a12, a13 # d09: d0eca0 + addmi a7, a14, 256 # d0c: 72de01 + l8ui a6, a7, 255 # d0f: 6207ff + l8ui a8, a7, 254 # d12: 8207fe + slli a6, a6, 8 # d15: 806611 + or a6, a6, a8 # d18: 806620 + slli a6, a6, 8 # d1b: 806611 + l8ui a8, a7, 253 # d1e: 8207fd + l8ui a7, a7, 252 # d21: 7207fc + or a6, a6, a8 # d24: 806620 + slli a6, a6, 8 # d27: 806611 + or a6, a6, a7 # d2a: 706620 + bne a6, a2, .Lbr097 # d2d: 27962c + movi a3, 272 /* 0x00000110 */ # d30: 32a110 + call0 bzero # d33: 01eeffc0 + # d37: 0000 + movi a7, .Ldata004 # d39: 71eaff + movi a6, 0 /* 0x00000000 */ # d3c: 0c06 + addmi a8, a14, 256 # d3e: 82de01 + movi a9, 0 /* 0x00000000 */ # d41: 0c09 + s8i a9, a8, 254 # d43: 9248fe + s8i a9, a8, 253 # d46: 9248fd + s8i a9, a8, 252 # d49: 9248fc + s8i a6, a8, 255 # d4c: 6248ff + l8ui a5, a7, 0 /* [.Ldata004] */ # d4f: 520700 + addi a5, a5, -1 /* [.Ldata004]-0x1 */ # d52: 0b55 + extui a5, a5, 0, 8 # d54: 505074 + s8i a5, a7, 0 /* a5 -> [.Ldata004] */ # d57: 524700 + j .Lbr099 # d5a: 060300 +.Lbr097: addi a12, a12, 1 # d5d: 1bcc + extui a12, a12, 0, 8 # d5f: c0c074 + bne a5, a12, .Lbr096 # d62: c795a3 + j .Lbr099 # d65: 460000 +.Lbr098: movi a12, 0 /* 0x00000000 */ # d68: 0c0c +.Lbr099: bgeu a12, a5, .Lbr101 # d6a: 57bc49 + movi a5, .Ldata004 # d6d: 51deff +.Lbr100: addx4 a0, a12, a13 # d70: d00ca0 + addmi a2, a0, 512 # d73: 22d002 + addi a12, a12, 1 # d76: 1bcc + addmi a0, a0, 256 # d78: 02d001 + l8ui a14, a2, 3 # d7b: e20203 + l8ui a3, a2, 2 # d7e: 320202 + slli a14, a14, 8 # d81: 80ee11 + or a14, a14, a3 # d84: 30ee20 + l8ui a3, a2, 1 # d87: 320201 + slli a14, a14, 8 # d8a: 80ee11 + l8ui a2, a2, 0 # d8d: 220200 + or a14, a14, a3 # d90: 30ee20 + slli a14, a14, 8 # d93: 80ee11 + or a14, a14, a2 # d96: 20ee20 + s8i a14, a0, 252 # d99: e240fc + srli a14, a14, 8 # d9c: e0e841 + s8i a14, a0, 253 # d9f: e240fd + srli a14, a14, 8 # da2: e0e841 + s8i a14, a0, 254 # da5: e240fe + srli a14, a14, 8 # da8: e0e841 + s8i a14, a0, 255 # dab: e240ff + l8ui a14, a5, 0 /* [.Ldata004] */ # dae: e20500 + extui a12, a12, 0, 8 # db1: c0c074 + bltu a12, a14, .Lbr100 # db4: e73cb8 +.Lbr101: l32i a12, sp, 4 /* [(local1)] */ # db7: c811 + l32i a13, sp, 8 /* [(local2)] */ # db9: d821 + l32i a14, sp, 12 /* [(local3)] */ # dbb: e831 + l32i a0, sp, 0 /* [(local0)] */ # dbd: 0801 + addi sp, sp, 16 /* (top of frame) */ # dbf: 12c110 + ret # dc2: 0df0 + +# Function @ .irom0.text+0xdc4 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global cnx_rc_update_rssi + .type cnx_rc_update_rssi, @function +cnx_rc_update_rssi: + addi sp, sp, -16 /* (local0) */ # dc4: 12c1f0 + s8i a3, a2, 114 /* arg1 -> [arg0+0x72] */ # dc7: 324272 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # dca: c911 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # dcc: 0901 + mov a12, a2 /* arg0 */ # dce: cd02 + l8ui a0, a2, 112 /* [arg0+0x70] */ # dd0: 020270 + bnez a4, .Lbr102 # dd3: cc34 + mov a2, a3 /* arg1 */ # dd5: 2d03 + j .Lbr103 # dd7: c60600 +.Lbr102: slli a5, a0, 24 # dda: 805001 + addx2 a6, a3, a3 # ddd: 306390 + addi a4, a6, 15 # de0: fb46 + srai a5, a5, 24 # de2: 505831 + addx2 a2, a5, a5 # de5: 502590 + movgez a4, a6, a6 # de8: 6046b3 + srai a4, a4, 4 # deb: 404421 + addx4 a2, a2, a5 # dee: 5022a0 + add a2, a2, a4 # df1: 4a22 + moveqz a2, a3, a0 # df3: 002383 +.Lbr103: beqz a0, .Lbr104 # df6: ac70 + sub a7, a2, a0 # df8: 0072c0 + l8ui a9, a12, 113 /* [arg0+0x71] */ # dfb: 920c71 + slli a11, a0, 24 # dfe: 80b001 + srai a11, a11, 24 # e01: b0b831 + addx4 a8, a9, a9 # e04: 9089a0 + sub a11, a2, a11 # e07: b0b2c0 + addx2 a11, a11, a11 # e0a: b0bb90 + slli a11, a11, 1 # e0d: f0bb11 + addi a10, a11, 15 # e10: fbab + movgez a10, a11, a11 # e12: b0abb3 + srai a10, a10, 4 # e15: a0a421 + addx2 a8, a8, a10 # e18: a08890 + movnez a7, a8, a9 # e1b: 907893 + s8i a7, a12, 113 /* a7 -> [arg0+0x71] */ # e1e: 724c71 +.Lbr104: s8i a2, a12, 112 /* a2 -> [arg0+0x70] */ # e21: 224c70 + extui a0, a2, 0, 8 # e24: 200074 + bnez a0, .Lbr105 # e27: cc50 + mov a2, a12 /* arg0 */ # e29: 2d0c + movi a3, 4 /* 0x00000004 */ # e2b: 0c43 + call0 .Lfunc014 # e2d: 054d00 +.Lbr105: l8ui a2, a12, 113 /* [arg0+0x71] */ # e30: 220c71 + bbci a2, 7, .Lbr106 # e33: 776206 + mov a2, a12 /* arg0 */ # e36: 2d0c + movi a3, 8 /* 0x00000008 */ # e38: 0c83 + call0 .Lfunc014 # e3a: 454c00 +.Lbr106: l32i a12, sp, 4 /* [(local1)] */ # e3d: c811 + l32i a0, sp, 0 /* [(local0)] */ # e3f: 0801 + addi sp, sp, 16 /* (top of frame) */ # e41: 12c110 + ret # e44: 0df0 + + .literal_position # e48: 8c060000 + # e4c: 8c060000 + +# Function @ .irom0.text+0xe50 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global cnx_rc_update_state_metric + .type cnx_rc_update_state_metric, @function +cnx_rc_update_state_metric: + addi sp, sp, -16 /* (local0) */ # e50: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # e53: 0901 + bnei a4, 1, .Lbr108 # e55: 661410 + l8ui a4, a2, 115 /* [arg0+0x73] */ # e58: 420273 + add a4, a3, a4 # e5b: 4a43 + slli a0, a4, 24 # e5d: 800401 +.Lbr107: s8i a4, a2, 115 /* a4 -> [arg0+0x73] */ # e60: 424273 + srai a0, a0, 24 # e63: 000831 + j .Lbr110 # e66: 860400 +.Lbr108: bnez a4, .Lbr109 # e69: cc64 + slli a0, a3, 24 # e6b: 800301 + mov a4, a3 /* arg1 */ # e6e: 4d03 + j .Lbr107 # e70: 06fbff +.Lbr109: l8ui a0, a2, 115 /* [arg0+0x73] */ # e73: 020273 + slli a0, a0, 24 # e76: 800001 + srai a0, a0, 24 # e79: 000831 +.Lbr110: movi a5, .Ldata006 # e7c: 51f3ff + movi a4, 15 /* 0x0000000f */ # e7f: 0cf4 + bgez a0, .Lbr111 # e81: d66000 + movi a0, 0 /* 0x00000000 */ # e84: 0c00 + movi a3, 0 /* 0x00000000 */ # e86: 0c03 + s8i a3, a2, 115 /* 0x00 -> [arg0+0x73] */ # e88: 324273 +.Lbr111: l32i a5, a5, 0 /* [.Ldata006] */ # e8b: 5805 + movi a3, 10 /* 0x0000000a */ # e8d: 0ca3 + sub a5, a5, a2 # e8f: 2055c0 + moveqz a3, a4, a5 # e92: 503483 + bge a3, a0, .Lbr112 # e95: 07a304 + mov a0, a3 # e98: 0d03 + s8i a3, a2, 115 /* a3 -> [arg0+0x73] */ # e9a: 324273 +.Lbr112: extui a6, a0, 0, 8 # e9d: 006074 + bnez a6, .Lbr114 # ea0: dc16 + movi a7, .Ldata006 # ea2: 71eaff + l32i a7, a7, 0 /* [.Ldata006] */ # ea5: 7807 + bne a7, a2, .Lbr113 # ea7: 279707 + movi a3, 2 /* 0x00000002 */ # eaa: 0c23 + call0 .Lfunc014 # eac: 054500 + j .Lbr114 # eaf: 860000 +.Lbr113: call0 cnx_remove_rc # eb2: 050000 +.Lbr114: l32i a0, sp, 0 /* [(local0)] */ # eb5: 0801 + addi sp, sp, 16 /* (top of frame) */ # eb7: 12c110 + ret # eba: 0df0 + +# Function @ .irom0.text+0xebc +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global cnx_rc_update_age + .type cnx_rc_update_age, @function +cnx_rc_update_age: + addi sp, sp, -16 /* (local0) */ # ebc: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # ebf: 0901 + beqz a4, .Lbr115 # ec1: 8c64 + l8ui a0, a2, 117 /* [arg0+0x75] */ # ec3: 020275 + bnei a4, 1, .Lbr116 # ec6: 661407 + add a3, a3, a0 # ec9: 0a33 +.Lbr115: extui a0, a3, 0, 8 # ecb: 300074 + s8i a0, a2, 117 /* a0 -> [arg0+0x75] */ # ece: 024275 +.Lbr116: bnez a0, .Lbr117 # ed1: cc30 + movi a3, 1 /* 0x00000001 */ # ed3: 0c13 + call0 .Lfunc014 # ed5: 854200 +.Lbr117: l32i a0, sp, 0 /* [(local0)] */ # ed8: 0801 + addi sp, sp, 16 /* (top of frame) */ # eda: 12c110 + ret # edd: 0df0 + + .literal_position # ee0: 00000000 + # ee4: 00000000 + +# Function @ .irom0.text+0xee8 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 + .global cnx_update_bss + .type cnx_update_bss, @function +cnx_update_bss: + addi sp, sp, -16 /* (local0) */ # ee8: 12c1f0 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # eeb: 0911 + s32i a3, sp, 0 /* arg1 -> [(local0)] */ # eed: 3901 + s32i a12, sp, 8 /* a12 -> [(local2)] */ # eef: c921 + addi a3, a4, 16 /* arg2+0x10 */ # ef1: 32c410 + mov a12, a2 /* arg0 */ # ef4: cd02 + movi a4, 6 /* 0x00000006 */ # ef6: 0c64 + call0 memcpy # ef8: 01faffc0 + # efc: 0000 + addi a2, a12, 71 /* arg0+0x47 */ # efe: 22cc47 + l32i a4, sp, 0 /* [(local0)] */ # f01: 4801 + movi a5, 15 /* 0x0000000f */ # f03: 0cf5 + l32i a3, a4, 36 /* [[(local0)]+0x24] */ # f05: 3894 + l32i a4, a4, 40 /* [[(local0)]+0x28] */ # f07: 48a4 + call0 ieee80211_setup_rateset # f09: 01f6ffc0 + # f0d: 0000 + l32i a12, sp, 8 /* [(local2)] */ # f0f: c821 + l32i a0, sp, 4 /* [(local1)] */ # f11: 0811 + addi sp, sp, 16 /* (top of frame) */ # f13: 12c110 + ret # f16: 0df0 + + .literal_position # f18: 8c060000 + # f1c: 00000000 + # f20: 00000000 + # f24: 00000000 + # f28: 00000000 + # f2c: 00000000 + # f30: 00000000 + # f34: 00000000 + # f38: 00000000 + # f3c: 00000000 + # f40: 00000000 + # f44: 00000000 + # f48: 00000000 + # f4c: 00000000 + # f50: 00000000 + # f54: 00000000 + # f58: 00000000 + # f5c: 00000000 + # f60: 00000000 + +# Function @ .irom0.text+0xf64 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word[4] @ -0x10 + .balign 4 + .global cnx_update_bss_more + .type cnx_update_bss_more, @function +cnx_update_bss_more: + movi a5, .Ldata006 # f64: 51edff + addi sp, sp, -32 /* (local0) */ # f67: 12c1e0 + s32i a15, sp, 16 /* a15 -> [(local4)] */ # f6a: f941 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # f6c: c911 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # f6e: 0901 + s32i a14, sp, 12 /* a14 -> [(local3)] */ # f70: e931 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # f72: d921 + movi a14, 0 /* 0x00000000 */ # f74: 0c0e + mov a13, a3 /* arg1 */ # f76: dd03 + l16ui a0, a3, 6 /* [arg1+0x6] */ # f78: 021303 + mov a12, a2 /* arg0 */ # f7b: cd02 + l32i a5, a5, 0 /* [.Ldata006] */ # f7d: 5805 + l16ui a2, a2, 28 /* [arg0+0x1c] */ # f7f: 22120e + sub a5, a5, a12 # f82: c055c0 + movi a3, 1 /* 0x00000001 */ # f85: 0c13 + moveqz a14, a3, a5 # f87: 50e383 + beq a2, a0, .Lbr118 # f8a: 071202 + s16i a0, a12, 28 /* [arg1+0x6] -> [arg0+0x1c] */ # f8d: 025c0e +.Lbr118: bnez a4, .Lbr120 # f90: dc74 + l32i a3, a13, 20 /* [arg1+0x14] */ # f92: 385d + beqz a3, .Lbr120 # f94: 9c33 + beqz a14, .Lbr119 # f96: 8c5e + mov a2, a12 /* arg0 */ # f98: 2d0c + call0 .Lfunc012 # f9a: 451600 + l32i a3, a13, 20 /* [arg1+0x14] */ # f9d: 385d +.Lbr119: l8ui a7, a3, 2 /* [[arg1+0x14]+0x2] */ # f9f: 720302 + s8i a7, a12, 37 /* [[arg1+0x14]+0x2] -> [arg0+0x25] */ # fa2: 724c25 + l8ui a6, a3, 3 /* [[arg1+0x14]+0x3] */ # fa5: 620303 + s8i a6, a12, 36 /* [[arg1+0x14]+0x3] -> [arg0+0x24] */ # fa8: 624c24 +.Lbr120: addi a2, a12, 16 /* arg0+0x10 */ # fab: 22cc10 + movi a4, 8 /* 0x00000008 */ # fae: 0c84 + l32i a3, a13, 24 /* [arg1+0x18] */ # fb0: 386d + l16ui a8, a13, 4 /* [arg1+0x4] */ # fb2: 821d02 + s16i a8, a12, 34 /* [arg1+0x4] -> [arg0+0x22] */ # fb5: 825c11 + call0 memcpy # fb8: 01e0ffc0 + # fbc: 0000 + movi a2, 1024 /* 0x00000400 */ # fbe: 22a400 + l16ui a0, a13, 2 /* [arg1+0x2] */ # fc1: 021d01 + l16ui a9, a12, 30 /* [arg0+0x1e] */ # fc4: 921c0f + movi a15, g_ic # fc7: f1d5ff + xor a9, a9, a0 # fca: 009930 + bbci a9, 10, .Lbr121 # fcd: a7690f + beqz a14, .Lbr121 # fd0: 8cce + and a3, a0, a2 # fd2: 203010 + mov a2, a15 /* g_ic */ # fd5: 2d0f + call0 ieee80211_set_shortslottime # fd7: 01d9ffc0 + # fdb: 0000 + l16ui a0, a13, 2 /* [arg1+0x2] */ # fdd: 021d01 +.Lbr121: l32i a3, a13, 56 /* [arg1+0x38] */ # fe0: 38ed + s16i a0, a12, 30 /* [arg1+0x2] -> [arg0+0x1e] */ # fe2: 025c0f + beqz a3, .Lbr122 # fe5: 9c93 + mov a2, a12 /* arg0 */ # fe7: 2d0c + call0 ieee80211_parse_wmeparams # fe9: 01d5ffc0 + # fed: 0000 + blti a2, 1, .Lbr123 # fef: a6121f + beqz a14, .Lbr123 # ff2: 9cce + mov a2, a12 /* arg0 */ # ff4: 2d0c + addi a3, a12, 87 /* arg0+0x57 */ # ff6: 32cc57 + call0 ieee80211_wme_updateparams # ff9: 01d2ffc0 + # ffd: 0000 + j .Lbr123 # fff: c60300 +.Lbr122: l8ui a10, a12, 87 /* [arg0+0x57] */ # 1002: a20c57 + beqz a10, .Lbr123 # 1005: 8c9a + addi a2, a12, 87 /* arg0+0x57 */ # 1007: 22cc57 + movi a3, 25 /* 0x00000019 */ # 100a: 1c93 + call0 bzero # 100c: 01cfffc0 + # 1010: 0000 +.Lbr123: l32i a3, a13, 52 /* [arg1+0x34] */ # 1012: 38dd + movi a15, g_ic+0x189 # 1014: f1c3ff + beqz a3, .Lbr124 # 1017: 8ca3 + l8ui a0, a15, 128 /* [g_ic+0x209] */ # 1019: 020f80 + beqi a0, 4, .Lbr126 # 101c: 264023 + beqi a0, 5, .Lbr126 # 101f: 265020 + beqi a0, 7, .Lbr126 # 1022: 26701d +.Lbr124: l32i a3, a13, 48 /* [arg1+0x30] */ # 1025: 38cd + l8ui a0, a15, 128 /* [g_ic+0x209] */ # 1027: 020f80 + beqz a3, .Lbr125 # 102a: 9c03 + addi a11, a0, -2 /* [g_ic+0x209]-0x2 */ # 102c: b2c0fe + beqz a11, .Lbr130 # 102f: 164b0b + addi a14, a0, -3 /* [g_ic+0x209]-0x3 */ # 1032: e2c0fd + beqz a14, .Lbr130 # 1035: 16ee0a + addi a2, a0, -6 /* [g_ic+0x209]-0x6 */ # 1038: 22c0fa + beqz a2, .Lbr130 # 103b: 16820a +.Lbr125: movi a14, 0 /* 0x00000000 */ # 103e: 0c0e + j .Lbr127 # 1040: 860400 +.Lbr126: l8ui a14, a3, 1 /* [[arg1+0x34]+0x1] */ # 1043: e20301 + addi a2, a12, 39 /* arg0+0x27 */ # 1046: 22cc27 + addi a14, a14, 2 /* [[arg1+0x34]+0x1]+0x2 */ # 1049: 2bee + extui a14, a14, 0, 8 # 104b: e0e074 + mov a4, a14 # 104e: 4d0e + call0 memcpy # 1050: 01bfffc0 + # 1054: 0000 +.Lbr127: s8i a14, a12, 38 /* a14 -> [arg0+0x26] */ # 1056: e24c26 + l32i a3, a13, 60 /* [arg1+0x3c] */ # 1059: 38fd + l32i a4, a13, 64 /* [arg1+0x40] */ # 105b: 422d10 + beqz a3, .Lbr128 # 105e: bc53 + beqz a4, .Lbr128 # 1060: bc34 + addmi a2, a15, 768 /* g_ic+0x489 */ # 1062: 22df03 + l8ui a0, a2, 134 /* [g_ic+0x50f] */ # 1065: 020286 + l8ui a5, a2, 133 /* [g_ic+0x50e] */ # 1068: 520285 + slli a0, a0, 8 # 106b: 800011 + or a0, a0, a5 # 106e: 500020 + slli a0, a0, 8 # 1071: 800011 + l8ui a5, a2, 132 /* [g_ic+0x50d] */ # 1074: 520284 + l8ui a2, a2, 131 /* [g_ic+0x50c] */ # 1077: 220283 + or a0, a0, a5 # 107a: 500020 + slli a0, a0, 8 # 107d: 800011 + or a0, a0, a2 # 1080: 200020 + bbci a0, 19, .Lbr128 # 1083: 377010 + movi a2, g_ic # 1086: 21a7ff + l32i a2, a2, 16 /* [g_ic+0x10] */ # 1089: 2842 + l32i a5, a12, 120 /* [arg0+0x78] */ # 108b: 522c1e + s32i a5, a2, 188 /* [arg0+0x78] -> [[g_ic+0x10]+0xbc] */ # 108e: 52622f + call0 ieee80211_ht_updateparams # 1091: 01afffc0 + # 1095: 0000 +.Lbr128: movi a3, gScanStruct # 1097: 31a4ff + movi a4, auth_type # 109a: 41a4ff + l8ui a3, a3, 93 /* [gScanStruct+0x5d] */ # 109d: 32035d + l8ui a4, a4, 0 /* [auth_type] */ # 10a0: 420400 + bbsi a3, 0, .Lbr129 # 10a3: 07e331 + extui a5, a4, 4, 4 # 10a6: 405434 + extui a4, a4, 0, 4 # 10a9: 404034 + beq a4, a5, .Lbr129 # 10ac: 571428 + movi a12, g_ic # 10af: c1a0ff + l32i a12, a12, 16 /* [g_ic+0x10] */ # 10b2: c84c + addi a12, a12, 4 /* [g_ic+0x10]+0x4 */ # 10b4: 4bcc + mov a2, a12 /* [g_ic+0x10]+0x4 */ # 10b6: 2d0c + call0 os_timer_disarm # 10b8: 01a7ffc0 + # 10bc: 0000 + mov a2, a12 /* [g_ic+0x10]+0x4 */ # 10be: 2d0c + movi a3, cnx_connect_timeout # 10c0: 319dff + movi a4, 0 /* 0x00000000 */ # 10c3: 0c04 + call0 os_timer_setfn # 10c5: 01a4ffc0 + # 10c9: 0000 + mov a2, a12 /* [g_ic+0x10]+0x4 */ # 10cb: 2d0c + movi a3, 1000 /* 0x000003e8 */ # 10cd: 32a3e8 + movi a4, 0 /* 0x00000000 */ # 10d0: 0c04 + call0 os_timer_arm # 10d2: 01a2ffc0 + # 10d6: 0000 +.Lbr129: l32i a12, sp, 4 /* [(local1)] */ # 10d8: c811 + l32i a13, sp, 8 /* [(local2)] */ # 10da: d821 + l32i a14, sp, 12 /* [(local3)] */ # 10dc: e831 + l32i a15, sp, 16 /* [(local4)] */ # 10de: f841 + l32i a0, sp, 0 /* [(local0)] */ # 10e0: 0801 + addi sp, sp, 32 /* (top of frame) */ # 10e2: 12c120 + ret # 10e5: 0df0 +.Lbr130: l8ui a14, a3, 1 /* [[arg1+0x30]+0x1] */ # 10e7: e20301 + addi a2, a12, 39 /* arg0+0x27 */ # 10ea: 22cc27 + addi a14, a14, 2 /* [[arg1+0x30]+0x1]+0x2 */ # 10ed: 2bee + extui a14, a14, 0, 8 # 10ef: e0e074 + mov a4, a14 # 10f2: 4d0e + call0 memcpy # 10f4: 019bffc0 + # 10f8: 0000 + j .Lbr127 # 10fa: 06d6ff + + .balign 4 +# Function @ .irom0.text+0x1100 + .balign 4 +.Lfunc012: ret /* arg0 */ # 1100: 0df0 + + .literal_position # 1104: 00000000 + # 1108: 00000000 + # 110c: 90060000 + # 1110: 8c060000 + # 1114: 00000000 + # 1118: 00000000 + # 111c: 00000000 + # 1120: 00000000 + # 1124: 00000000 + # 1128: 00000000 + # 112c: 00000000 + # 1130: 00000000 + # 1134: 00000000 + # 1138: 00000000 + +# Function @ .irom0.text+0x113c +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word[3] @ -0x1c +# (local2): word @ -0x10 +# (local3): word @ -0xc +# (local4): word @ -0x8 +# (local5): word @ -0x4 + .balign 4 + .global cnx_sta_leave + .type cnx_sta_leave, @function +cnx_sta_leave: + addi sp, sp, -32 /* (local0) */ # 113c: 12c1e0 + s32i a0, sp, 16 /* a0 -> [(local2)] */ # 113f: 0941 + s32i a13, sp, 24 /* a13 -> [(local4)] */ # 1141: d961 + s32i a12, sp, 20 /* a12 -> [(local3)] */ # 1143: c951 + s32i a14, sp, 28 /* a14 -> [(local5)] */ # 1145: e971 + mov a12, a3 /* arg1 */ # 1147: cd03 + mov a14, a2 /* arg0 */ # 1149: ed02 + l32i a13, a2, 0 /* [arg0] */ # 114b: d802 + call0 ieee80211_phy_type_get # 114d: 01f1ffc0 + # 1151: 0000 + movi a3, 0 /* 0x00000000 */ # 1153: 0c03 + mov a4, a12 /* arg1 */ # 1155: 4d0c + movi a5, 0 /* 0x00000000 */ # 1157: 0c05 + l16ui a6, a12, 26 /* [arg1+0x1a] */ # 1159: 621c0d + movi a7, 0 /* 0x00000000 */ # 115c: 0c07 + s32i a7, sp, 0 /* 0x00000000 -> [(local0)] */ # 115e: 7901 + s32i a7, sp, 4 /* 0x00000000 -> [(local1)] */ # 1160: 7911 + extui a6, a6, 0, 12 # 1162: 6060b4 + mov a7, a2 # 1165: 7d02 + movi a2, 0 /* 0x00000000 */ # 1167: 0c02 + call0 ic_set_sta # 1169: 01ebffc0 + # 116d: 0000 + mov a2, a13 /* [arg0] */ # 116f: 2d0d + call0 netif_set_down # 1171: 01eaffc0 + # 1175: 0000 + l8ui a8, a13, 47 /* [[arg0]+0x2f] */ # 1177: 820d2f + bbci a8, 3, .Lbr131 # 117a: 37680f + mov a2, a13 /* [arg0] */ # 117d: 2d0d + call0 dhcp_release # 117f: 01e8ffc0 + # 1183: 0000 + mov a2, a13 /* [arg0] */ # 1185: 2d0d + call0 dhcp_stop # 1187: 01e7ffc0 + # 118b: 0000 +.Lbr131: movi a13, g_ic # 118d: d1ddff + l8ui a2, a12, 232 /* [arg1+0xe8] */ # 1190: 220ce8 + addx4 a2, a2, a13 # 1193: d022a0 + l32i a2, a2, 0x190 # 1196: 222264 + call0 free # 1199: 01e3ffc0 + # 119d: 0000 + l8ui a3, a12, 232 /* [arg1+0xe8] */ # 119f: 320ce8 + movi a0, 0 /* 0x00000000 */ # 11a2: 0c00 + addx4 a3, a3, a13 # 11a4: d033a0 + s32i a0, a3, 0x190 # 11a7: 026364 + l32i a2, a13, 0x190 /* [g_ic+0x190] */ # 11aa: 222d64 + beqz a2, .Lbr132 # 11ad: 8c92 + call0 free # 11af: 01dfffc0 + # 11b3: 0000 + movi a0, 0 /* 0x00000000 */ # 11b5: 0c00 + s32i a0, a13, 0x190 /* 0x00000000 -> [g_ic+0x190] */ # 11b7: 026d64 +.Lbr132: l32i a2, a13, 0x194 /* [g_ic+0x194] */ # 11ba: 222d65 + beqz a2, .Lbr133 # 11bd: 8c92 + call0 free # 11bf: 01dcffc0 + # 11c3: 0000 + movi a4, 0 /* 0x00000000 */ # 11c5: 0c04 + s32i a4, a13, 0x194 /* 0x00000000 -> [g_ic+0x194] */ # 11c7: 426d65 +.Lbr133: call0 scan_cancel # 11ca: 01daffc0 + # 11ce: 0000 + movi a2, 0 /* 0x00000000 */ # 11d0: 0c02 + movi a3, 0 /* 0x00000000 */ # 11d2: 0c03 + movi a4, 0 /* 0x00000000 */ # 11d4: 0c04 + call0 wDev_SetRxPolicy # 11d6: 01d8ffc0 + # 11da: 0000 + movi a6, .Ldata001 # 11dc: 61cbff + movi a5, 2 /* 0x00000002 */ # 11df: 0c25 + s32i a5, a6, 0 /* 0x00000002 -> [.Ldata001] */ # 11e1: 5906 + l8ui a0, a12, 6 /* [arg1+0x6] */ # 11e3: 020c06 + bbci a0, 1, .Lbr134 # 11e6: 176016 + mov a2, a12 /* arg1 */ # 11e9: 2d0c + movi a3, -7 /* 0xfffffff9 */ # 11eb: 7c93 + movi a4, 1 /* 0x00000001 */ # 11ed: 0c14 + movi a7, 253 /* 0x000000fd */ # 11ef: 72a0fd + and a7, a0, a7 # 11f2: 707010 + s8i a7, a12, 6 /* a7 -> [arg1+0x6] */ # 11f5: 724c06 + call0 cnx_rc_update_state_metric # 11f8: 050000 + movi a8, .Ldata007 # 11fb: 81c4ff + s32i a12, a8, 0 /* arg1 -> [.Ldata007] */ # 11fe: c908 +.Lbr134: movi a13, 0 /* 0x00000000 */ # 1200: 0c0d + mov a2, a12 /* arg1 */ # 1202: 2d0c + call0 cnx_remove_rc # 1204: 050000 + l32i a0, sp, 16 /* [(local2)] */ # 1207: 0841 + movi a11, .Ldata006 # 1209: b1c1ff + l32i a9, a12, 8 /* [arg1+0x8] */ # 120c: 982c + movi a10, -2 /* 0xfffffffe */ # 120e: 7cea + and a9, a9, a10 # 1210: a09910 + s32i a13, a11, 0 /* 0x00000000 -> [.Ldata006] */ # 1213: d90b + s32i a9, a12, 8 /* a9 -> [arg1+0x8] */ # 1215: 992c + s32i a13, a14, 136 /* 0x00000000 -> [arg0+0x88] */ # 1217: d26e22 + l32i a12, sp, 20 /* [(local3)] */ # 121a: c851 + l32i a13, sp, 24 /* [(local4)] */ # 121c: d861 + l32i a14, sp, 28 /* [(local5)] */ # 121e: e871 + addi sp, sp, 32 /* (top of frame) */ # 1220: 12c120 + ret # 1223: 0df0 + + .literal_position # 1228: 30000000 + # 122c: 00000000 + # 1230: 00000000 + # 1234: 00000000 + # 1238: 00000000 + +# Function @ .irom0.text+0x123c +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 +.Lfunc013: movi a2, .Lstr003 # 123c: 21fbff + addi sp, sp, -16 /* (local0) */ # 123f: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1242: 0901 + call0 printf # 1244: 01fcffc0 + # 1248: 0000 + movi a2, g_ic # 124a: 21f8ff + l32i a7, a2, 16 /* [g_ic+0x10] */ # 124d: 7842 + movi a0, 0 /* 0x00000000 */ # 124f: 0c00 + s8i a0, a7, 184 /* 0x00 -> [[g_ic+0x10]+0xb8] */ # 1251: 0247b8 + l32i a6, a2, 16 /* [g_ic+0x10] */ # 1254: 6842 + movi a4, 1 /* 0x00000001 */ # 1256: 0c14 + s8i a0, a6, 186 /* 0x00 -> [[g_ic+0x10]+0xba] */ # 1258: 0246ba + l32i a5, a2, 16 /* [g_ic+0x10] */ # 125b: 5842 + mov a3, a0 /* 0x00000000 */ # 125d: 3d00 + s8i a0, a5, 185 /* 0x00 -> [[g_ic+0x10]+0xb9] */ # 125f: 0245b9 + call0 ieee80211_sta_new_state # 1262: 01f5ffc0 + # 1266: 0000 + movi a2, g_ic+0x1d8 # 1268: 21f2ff + movi a3, 0 /* 0x00000000 */ # 126b: 0c03 + call0 cnx_sta_connect_cmd # 126d: 050000 + l32i a0, sp, 0 /* [(local0)] */ # 1270: 0801 + addi sp, sp, 16 /* (top of frame) */ # 1272: 12c110 + ret # 1275: 0df0 + + .literal_position # 1278: 3c120000 + # 127c: 10270000 + # 1280: 00000000 + # 1284: 00000000 + # 1288: 00000000 + # 128c: 00000000 + # 1290: 00000000 + # 1294: 00000000 + +# Function @ .irom0.text+0x1298 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word[3] @ -0x1c +# (local2): word @ -0x10 +# (local3): word @ -0xc +# (local4): word @ -0x8 +# (local5): word @ -0x4 + .balign 4 + .global cnx_sta_associated + .type cnx_sta_associated, @function +cnx_sta_associated: + addi sp, sp, -32 /* (local0) */ # 1298: 12c1e0 + s32i a3, sp, 16 /* arg1 -> [(local2)] */ # 129b: 3941 + s32i a12, sp, 28 /* a12 -> [(local5)] */ # 129d: c971 + s32i a0, sp, 24 /* a0 -> [(local4)] */ # 129f: 0961 + mov a12, a2 /* arg0 */ # 12a1: cd02 + call0 ieee80211_phy_type_get # 12a3: 01f7ffc0 + # 12a7: 0000 + movi a3, 1 /* 0x00000001 */ # 12a9: 0c13 + movi a5, 0 /* 0x00000000 */ # 12ab: 0c05 + l32i a4, sp, 16 /* [(local2)] */ # 12ad: 4841 + movi a7, 0 /* 0x00000000 */ # 12af: 0c07 + l16ui a6, a4, 26 /* [[(local2)]+0x1a] */ # 12b1: 62140d + s32i a7, sp, 0 /* 0x00000000 -> [(local0)] */ # 12b4: 7901 + s32i a7, sp, 4 /* 0x00000000 -> [(local1)] */ # 12b6: 7911 + extui a6, a6, 0, 12 # 12b8: 6060b4 + mov a7, a2 # 12bb: 7d02 + movi a2, 0 /* 0x00000000 */ # 12bd: 0c02 + call0 ic_set_sta # 12bf: 01f1ffc0 + # 12c3: 0000 + addi a2, a12, 32 /* arg0+0x20 */ # 12c5: 22cc20 + s32i a2, sp, 20 /* arg0+0x20 -> [(local3)] */ # 12c8: 2951 + call0 os_timer_disarm # 12ca: 01efffc0 + # 12ce: 0000 + l32i a2, sp, 20 /* [(local3)] */ # 12d0: 2851 + movi a3, .Lfunc013 # 12d2: 31e9ff + movi a4, 0 /* 0x00000000 */ # 12d5: 0c04 + call0 os_timer_setfn # 12d7: 01edffc0 + # 12db: 0000 + addi a12, a12, 4 /* arg0+0x4 */ # 12dd: 4bcc + mov a2, a12 /* arg0+0x4 */ # 12df: 2d0c + call0 os_timer_disarm # 12e1: 01ebffc0 + # 12e5: 0000 + mov a2, a12 /* arg0+0x4 */ # 12e7: 2d0c + movi a3, 0x00002710 # 12e9: 31e4ff + movi a4, 0 /* 0x00000000 */ # 12ec: 0c04 + call0 os_timer_arm # 12ee: 01e9ffc0 + # 12f2: 0000 + l32i a12, sp, 28 /* [(local5)] */ # 12f4: c871 + l32i a0, sp, 24 /* [(local4)] */ # 12f6: 0861 + addi sp, sp, 32 /* (top of frame) */ # 12f8: 12c120 + ret # 12fb: 0df0 + + .balign 4 +# Function @ .irom0.text+0x1300 + .balign 4 +.Lfunc014: ret /* arg0 */ # 1300: 0df0 + + .literal_position # 1304: 00000000 + # 1308: 00000000 + # 130c: 00000000 + # 1310: 00000000 + +# Function @ .irom0.text+0x1314 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word @ -0x8 +# (local3): word @ -0x4 + .balign 4 + .global cnx_node_alloc + .type cnx_node_alloc, @function +cnx_node_alloc: + movi a6, g_ic+0x280 # 1314: 61fcff + addi sp, sp, -16 /* (local0) */ # 1317: 12c1f0 + s32i a13, sp, 12 /* a13 -> [(local3)] */ # 131a: d931 + s32i a12, sp, 8 /* a12 -> [(local2)] */ # 131c: c921 + l8ui a6, a6, 144 /* [g_ic+0x310] */ # 131e: 620690 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 1321: 0911 + addi a6, a6, 2 /* [g_ic+0x310]+0x2 */ # 1323: 2b66 + blti a6, 2, .Lbr137 # 1325: a6263b + movi a0, g_ic # 1328: 01f8ff + movi a12, 1 /* 0x00000001 */ # 132b: 0c1c + l32i a0, a0, 20 /* [g_ic+0x14] */ # 132d: 0850 + s32i a2, sp, 0 /* arg0 -> [(local0)] */ # 132f: 2901 +.Lbr135: addx4 a13, a12, a0 # 1331: 00dca0 + l32i a2, a13, 144 # 1334: 222d24 + bnez a2, .Lbr136 # 1337: ec12 + movi a2, 272 /* 0x00000110 */ # 1339: 22a110 + call0 zalloc # 133c: 01f4ffc0 + # 1340: 0000 + movi a4, 6 /* 0x00000006 */ # 1342: 0c64 + addi a3, a12, 7 # 1344: 7b3c + s32i a2, a13, 144 # 1346: 226d24 + mov a12, a2 # 1349: cd02 + s8i a3, a2, 232 # 134b: 3242e8 + l32i a3, sp, 0 /* [(local0)] */ # 134e: 3801 + l32i a2, a13, 144 # 1350: 222d24 + call0 memcpy # 1353: 01efffc0 + # 1357: 0000 + j .Lbr138 # 1359: 460200 +.Lbr136: addi a12, a12, 1 # 135c: 1bcc + extui a12, a12, 0, 8 # 135e: c0c074 + bne a6, a12, .Lbr135 # 1361: c796cc +.Lbr137: movi a12, 0 /* 0x00000000 */ # 1364: 0c0c +.Lbr138: l32i a0, sp, 4 /* [(local1)] */ # 1366: 0811 + mov a2, a12 # 1368: 2d0c + l32i a13, sp, 12 /* [(local3)] */ # 136a: d831 + l32i a12, sp, 8 /* [(local2)] */ # 136c: c821 + addi sp, sp, 16 /* (top of frame) */ # 136e: 12c110 + ret # 1371: 0df0 + + .literal_position # 1374: 00000000 + # 1378: 00000000 + # 137c: 00000000 + # 1380: 00000000 + # 1384: 00000000 + # 1388: 00000000 + # 138c: 00000000 + +# Function @ .irom0.text+0x1390 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 + .global cnx_node_remove + .type cnx_node_remove, @function +cnx_node_remove: + movi a6, g_ic+0x280 # 1390: 61f9ff + addi sp, sp, -16 /* (local0) */ # 1393: 12c1f0 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 1396: d921 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1398: 0901 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 139a: c911 + l8ui a6, a6, 144 /* [g_ic+0x310] */ # 139c: 620690 + mov a12, a2 /* arg0 */ # 139f: cd02 + addi a6, a6, 2 /* [g_ic+0x310]+0x2 */ # 13a1: 2b66 + blti a6, 2, .Lbr140 # 13a3: a62647 + movi a0, g_ic # 13a6: 01f4ff + l32i a5, a0, 20 /* [g_ic+0x14] */ # 13a9: 5850 + movi a2, 1 /* 0x00000001 */ # 13ab: 0c12 +.Lbr139: addx4 a13, a2, a5 # 13ad: 50d2a0 + l32i a7, a13, 144 # 13b0: 722d24 + addi a2, a2, 1 # 13b3: 1b22 + bne a7, a12, .Lbr141 # 13b5: c79740 + l32i a2, a12, 228 /* [arg0+0xe4] */ # 13b8: 222c39 + call0 wpa_auth_sta_deinit # 13bb: 01f2ffc0 + # 13bf: 0000 + movi a3, g_ic # 13c1: 31eeff + l8ui a2, a12, 232 /* [arg0+0xe8] */ # 13c4: 220ce8 + addx4 a2, a2, a3 # 13c7: 3022a0 + l32i a2, a2, 0x190 # 13ca: 222264 + call0 free # 13cd: 01eeffc0 + # 13d1: 0000 + mov a2, a12 /* arg0 */ # 13d3: 2d0c + movi a6, g_ic # 13d5: 61eaff + l8ui a5, a12, 232 /* [arg0+0xe8] */ # 13d8: 520ce8 + movi a4, 0 /* 0x00000000 */ # 13db: 0c04 + addx4 a5, a5, a6 # 13dd: 6055a0 + s32i a4, a5, 0x190 # 13e0: 426564 + call0 free # 13e3: 01eaffc0 + # 13e7: 0000 + movi a7, 0 /* 0x00000000 */ # 13e9: 0c07 + s32i a7, a13, 144 # 13eb: 726d24 +.Lbr140: l32i a12, sp, 4 /* [(local1)] */ # 13ee: c811 + l32i a13, sp, 8 /* [(local2)] */ # 13f0: d821 + l32i a0, sp, 0 /* [(local0)] */ # 13f2: 0801 + addi sp, sp, 16 /* (top of frame) */ # 13f4: 12c110 + ret # 13f7: 0df0 +.Lbr141: extui a2, a2, 0, 8 # 13f9: 202074 + bne a6, a2, .Lbr139 # 13fc: 2796ad + j .Lbr140 # 13ff: c6faff + + .literal_position # 1404: 00000000 + # 1408: 00000000 + # 140c: 00000000 + +# Function @ .irom0.text+0x1410 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word @ -0x10 +# (local5): word[3] @ -0xc + .balign 4 + .global cnx_node_search + .type cnx_node_search, @function +cnx_node_search: + addi sp, sp, -32 /* (local0) */ # 1410: 12c1e0 + s32i a13, sp, 12 /* a13 -> [(local3)] */ # 1413: d931 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 1415: 0911 + s32i a15, sp, 20 /* a15 -> [(local5)] */ # 1417: f951 + movi a15, g_ic+0x280 # 1419: f1faff + s32i a12, sp, 8 /* a12 -> [(local2)] */ # 141c: c921 + l8ui a15, a15, 144 /* [g_ic+0x310] */ # 141e: f20f90 + s32i a14, sp, 16 /* a14 -> [(local4)] */ # 1421: e941 + addi a15, a15, 2 /* [g_ic+0x310]+0x2 */ # 1423: 2bff + blti a15, 1, .Lbr144 # 1425: a61f26 + movi a14, g_ic # 1428: e1f8ff + movi a12, 0 /* 0x00000000 */ # 142b: 0c0c + l32i a14, a14, 20 /* [g_ic+0x14] */ # 142d: e85e + s32i a2, sp, 0 /* arg0 -> [(local0)] */ # 142f: 2901 +.Lbr142: addx4 a13, a12, a14 # 1431: e0dca0 + l32i a13, a13, 144 # 1434: d22d24 + beqz a13, .Lbr143 # 1437: 8ccd + l32i a2, sp, 0 /* [(local0)] */ # 1439: 2801 + mov a3, a13 # 143b: 3d0d + movi a4, 6 /* 0x00000006 */ # 143d: 0c64 + call0 memcmp # 143f: 01f3ffc0 + # 1443: 0000 + beqz a2, .Lbr145 # 1445: 8c82 +.Lbr143: addi a12, a12, 1 # 1447: 1bcc + extui a12, a12, 0, 8 # 1449: c0c074 + bne a15, a12, .Lbr142 # 144c: c79fe1 +.Lbr144: movi a13, 0 /* 0x00000000 */ # 144f: 0c0d +.Lbr145: l32i a0, sp, 4 /* [(local1)] */ # 1451: 0811 + l32i a12, sp, 8 /* [(local2)] */ # 1453: c821 + l32i a14, sp, 16 /* [(local4)] */ # 1455: e841 + mov a2, a13 # 1457: 2d0d + l32i a15, sp, 20 /* [(local5)] */ # 1459: f851 + l32i a13, sp, 12 /* [(local3)] */ # 145b: d831 + addi sp, sp, 32 /* (top of frame) */ # 145d: 12c120 + ret # 1460: 0df0 + + .literal_position # 1464: ff3fffff + # 1468: 78000000 + # 146c: 40000000 + # 1470: 80000000 + # 1474: 00000000 + # 1478: 00000000 + # 147c: 00000000 + # 1480: 00000000 + # 1484: 00000000 + # 1488: 00000000 + +# Function @ .irom0.text+0x148c +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word[2] @ -0x18 +# (local3): word @ -0x10 +# (local4): word @ -0xc +# (local5): word[2] @ -0x8 + .balign 4 + .global cnx_node_leave + .type cnx_node_leave, @function +cnx_node_leave: + addi sp, sp, -32 /* (local0) */ # 148c: 12c1e0 + s32i a0, sp, 20 /* a0 -> [(local4)] */ # 148f: 0951 + s32i a12, sp, 24 /* a12 -> [(local5)] */ # 1491: c961 + s32i a2, sp, 16 /* arg0 -> [(local3)] */ # 1493: 2941 + mov a12, a3 /* arg1 */ # 1495: cd03 + movi a2, 236 /* 0x000000ec */ # 1497: 22a0ec + add a2, a3, a2 /* arg1+0xec */ # 149a: 2a23 + call0 os_timer_disarm # 149c: 01f7ffc0 + # 14a0: 0000 + l32i a3, sp, 16 /* [(local3)] */ # 14a2: 3841 + l32i a3, a3, 144 /* [[(local3)]+0x90] */ # 14a4: 322324 + movi a5, 0xffff3fff # 14a7: 51efff + sub a3, a3, a12 # 14aa: c033c0 + beqz a3, .Lbr149 # 14ad: 169308 + l16ui a4, a12, 26 /* [arg1+0x1a] */ # 14b0: 421c0d + and a0, a4, a5 # 14b3: 500410 + bnone a4, a5, .Lbr146 # 14b6: 570426 + movi a2, .Lstr004 # 14b9: 21ecff + movi a8, .Lstr005 # 14bc: 81ebff + l8ui a7, a12, 4 /* [arg1+0x4] */ # 14bf: 720c04 + l8ui a6, a12, 3 /* [arg1+0x3] */ # 14c2: 620c03 + l8ui a5, a12, 2 /* [arg1+0x2] */ # 14c5: 520c02 + l8ui a4, a12, 1 /* [arg1+0x1] */ # 14c8: 420c01 + l8ui a3, a12, 0 /* [arg1] */ # 14cb: 320c00 + l8ui a9, a12, 5 /* [arg1+0x5] */ # 14ce: 920c05 + s32i a9, sp, 0 /* [arg1+0x5] -> [(local0)] */ # 14d1: 9901 + s32i a0, sp, 8 /* a0 -> [(local2)] */ # 14d3: 0921 + s32i a8, sp, 4 /* .Lstr005 -> [(local1)] */ # 14d5: 8911 + call0 printf # 14d7: 01e9ffc0 + # 14db: 0000 + j .Lbr147 # 14dd: 060200 +.Lbr146: movi a2, .Lstr006 # 14e0: 21e4ff + call0 printf # 14e3: 01e7ffc0 + # 14e7: 0000 +.Lbr147: l16ui a10, a12, 26 /* [arg1+0x1a] */ # 14e9: a21c0d + beqz a10, .Lbr148 # 14ec: 165a04 + call0 ieee80211_phy_type_get # 14ef: 01e5ffc0 + # 14f3: 0000 + movi a3, 0 /* 0x00000000 */ # 14f5: 0c03 + mov a4, a12 /* arg1 */ # 14f7: 4d0c + l16ui a6, a12, 26 /* [arg1+0x1a] */ # 14f9: 621c0d + movi a7, 0 /* 0x00000000 */ # 14fc: 0c07 + s32i a7, sp, 0 /* 0x00000000 -> [(local0)] */ # 14fe: 7901 + s32i a7, sp, 4 /* 0x00000000 -> [(local1)] */ # 1500: 7911 + extui a6, a6, 0, 12 # 1502: 6060b4 + mov a5, a6 # 1505: 5d06 + mov a7, a2 # 1507: 7d02 + movi a2, 1 /* 0x00000001 */ # 1509: 0c12 + call0 ic_set_sta # 150b: 01dfffc0 + # 150f: 0000 + movi a8, 0 /* 0x00000000 */ # 1511: 0c08 + movi a0, -1 /* 0xffffffff */ # 1513: 7cf0 + movi a11, 1 /* 0x00000001 */ # 1515: 0c1b + movi a10, g_ic # 1517: a1d7ff + l16ui a2, a12, 26 /* [arg1+0x1a] */ # 151a: 221c0d + l16ui a9, a10, 0x1d0 /* [g_ic+0x1d0] */ # 151d: 921ae8 + extui a2, a2, 0, 5 # 1520: 202044 + ssl a2 # 1523: 001240 + sll a11, a11 # 1526: 00bba1 + xor a11, a11, a0 # 1529: 00bb30 + and a9, a9, a11 # 152c: b09910 + s16i a9, a10, 0x1d0 /* a9 -> [g_ic+0x1d0] */ # 152f: 925ae8 + s16i a8, a12, 26 /* 0x0000 -> [arg1+0x1a] */ # 1532: 825c0d +.Lbr148: mov a2, a12 /* arg1 */ # 1535: 2d0c + call0 cnx_node_remove # 1537: 050000 +.Lbr149: l32i a12, sp, 24 /* [(local5)] */ # 153a: c861 + l32i a0, sp, 20 /* [(local4)] */ # 153c: 0851 + addi sp, sp, 32 /* (top of frame) */ # 153e: 12c120 + ret # 1541: 0df0 + + .literal_position # 1544: 00000000 + # 1548: 80000000 + # 154c: 00000000 + # 1550: 00000000 + # 1554: 00c00000 + # 1558: 40000000 + # 155c: 94000000 + # 1560: ff3fffff + # 1564: 00000000 + # 1568: 00000000 + # 156c: 00000000 + # 1570: 00000000 + # 1574: 00000000 + # 1578: 00000000 + # 157c: 00000000 + # 1580: 00000000 + # 1584: 00000000 + # 1588: 00000000 + # 158c: 00000000 + # 1590: 00000000 + # 1594: 00000000 + # 1598: 00000000 + # 159c: 00000000 + +# Function @ .irom0.text+0x15a0 +# Local variables/stack: +# (local0): word @ -0x30 +# (local1): word @ -0x2c +# (local2): word[2] @ -0x28 +# (local3): word @ -0x20 +# (local4): word @ -0x1c +# (local5): word @ -0x18 +# (local6): word @ -0x14 +# (local7): word[4] @ -0x10 + .balign 4 + .global cnx_node_join + .type cnx_node_join, @function +cnx_node_join: + addi sp, sp, -48 /* (local0) */ # 15a0: 12c1d0 + s32i a0, sp, 20 /* a0 -> [(local4)] */ # 15a3: 0951 + s32i a12, sp, 24 /* a12 -> [(local5)] */ # 15a5: c961 + s32i a13, sp, 28 /* a13 -> [(local6)] */ # 15a7: d971 + s32i a14, sp, 32 /* a14 -> [(local7)] */ # 15a9: e981 + mov a13, a3 /* arg1 */ # 15ab: dd03 + mov a14, a2 /* arg0 */ # 15ad: ed02 + mov a12, a4 /* arg2 */ # 15af: cd04 + mov a2, a3 /* arg1 */ # 15b1: 2d03 + movi a4, 6 /* 0x00000006 */ # 15b3: 0c64 + movi a3, ieee80211_addr_bcast # 15b5: 31e3ff + call0 memcmp # 15b8: 01ecffc0 + # 15bc: 0000 + bnez a2, .Lbr150 # 15be: dcd2 + mov a3, a12 /* arg2 */ # 15c0: 3d0c + mov a2, a14 /* arg0 */ # 15c2: 2d0e + movi a4, 17 /* 0x00000011 */ # 15c4: 1c14 + call0 ieee80211_send_mgmt # 15c6: 01e9ffc0 + # 15ca: 0000 + movi a2, .Lstr006 # 15cc: 21dfff + call0 printf # 15cf: 01e8ffc0 + # 15d3: 0000 + mov a3, a13 /* arg1 */ # 15d5: 3d0d + mov a2, a14 /* arg0 */ # 15d7: 2d0e + call0 cnx_node_leave # 15d9: 050000 + j .Lbr157 # 15dc: 064c00 +.Lbr150: l16ui a9, a13, 26 /* [arg1+0x1a] */ # 15df: 921d0d + movi a0, 1 /* 0x00000001 */ # 15e2: 0c10 + bnez a9, .Lbr155 # 15e4: 567907 + s32i a12, sp, 16 /* arg2 -> [(local3)] */ # 15e7: c941 + movi a6, g_ic # 15e9: 61d9ff + movi a5, g_ic+0x280 # 15ec: 51d8ff + movi a4, g_ic+0x290 # 15ef: 41ddff + l8ui a5, a5, 144 /* [g_ic+0x310] */ # 15f2: 520590 + l8ui a4, a4, 128 /* [g_ic+0x310] */ # 15f5: 420480 + addi a5, a5, 1 /* [g_ic+0x310]+0x1 */ # 15f8: 1b55 + bgei a5, 2, .Lbr151 # 15fa: e62502 + j .Lbr158 # 15fd: 064700 +.Lbr151: l16ui a2, a6, 0x1d0 /* [g_ic+0x1d0] */ # 1600: 2216e8 + mov a12, a0 /* 0x00000001 */ # 1603: cd00 +.Lbr152: extui a8, a12, 0, 5 # 1605: c08044 + ssr a8 # 1608: 000840 + sra a7, a2 # 160b: 2070b1 + bbsi a7, 0, .Lbr153 # 160e: 07e702 + j .Lbr159 # 1611: 864200 +.Lbr153: addi a12, a12, 1 # 1614: 1bcc + extui a12, a12, 0, 16 # 1616: c0c0f4 + bne a5, a12, .Lbr152 # 1619: c795e8 + j .Lbr159 # 161c: c63f00 +.Lbr154: movi a3, 0x0000c000 # 161f: 31cdff + movi a2, 1 /* 0x00000001 */ # 1622: 0c12 + or a3, a12, a3 # 1624: 303c20 + s16i a3, a13, 26 /* a3 -> [arg1+0x1a] */ # 1627: 325d0d + l16ui a0, a6, 0x1d0 /* [g_ic+0x1d0] */ # 162a: 0216e8 + extui a3, a3, 0, 5 # 162d: 303044 + ssl a3 # 1630: 001340 + sll a2, a2 # 1633: 0022a1 + or a0, a0, a2 # 1636: 200020 + s16i a0, a6, 0x1d0 /* a0 -> [g_ic+0x1d0] */ # 1639: 0256e8 + call0 ieee80211_phy_type_get # 163c: 01ceffc0 + # 1640: 0000 + mov a6, a12 # 1642: 6d0c + mov a5, a12 # 1644: 5d0c + movi a3, 1 /* 0x00000001 */ # 1646: 0c13 + mov a7, a2 # 1648: 7d02 + movi a4, 0 /* 0x00000000 */ # 164a: 0c04 + s32i a4, sp, 0 /* 0x00000000 -> [(local0)] */ # 164c: 4901 + s32i a4, sp, 4 /* 0x00000000 -> [(local1)] */ # 164e: 4911 + movi a2, 1 /* 0x00000001 */ # 1650: 0c12 + mov a4, a13 /* arg1 */ # 1652: 4d0d + call0 ic_set_sta # 1654: 01c9ffc0 + # 1658: 0000 + l32i a12, sp, 16 /* [(local3)] */ # 165a: c841 + l16ui a9, a13, 26 /* [arg1+0x1a] */ # 165c: 921d0d +.Lbr155: movi a2, .Lstr004 # 165f: 21beff + movi a8, .Lstr007 # 1662: 81beff + l8ui a3, a13, 0 /* [arg1] */ # 1665: 320d00 + l8ui a4, a13, 1 /* [arg1+0x1] */ # 1668: 420d01 + l8ui a5, a13, 2 /* [arg1+0x2] */ # 166b: 520d02 + l8ui a6, a13, 3 /* [arg1+0x3] */ # 166e: 620d03 + l8ui a7, a13, 4 /* [arg1+0x4] */ # 1671: 720d04 + movi a11, 0xffff3fff # 1674: b1bbff + l8ui a10, a13, 5 /* [arg1+0x5] */ # 1677: a20d05 + and a9, a9, a11 # 167a: b09910 + s32i a10, sp, 0 /* [arg1+0x5] -> [(local0)] */ # 167d: a901 + s32i a9, sp, 8 /* a9 -> [(local2)] */ # 167f: 9921 + s32i a8, sp, 4 /* .Lstr007 -> [(local1)] */ # 1681: 8911 + call0 printf # 1683: 01beffc0 + # 1687: 0000 + l32i a2, a14, 136 /* [arg0+0x88] */ # 1689: 222e22 + mov a3, a13 /* arg1 */ # 168c: 3d0d + movi a4, 6 /* 0x00000006 */ # 168e: 0c64 + call0 memcpy # 1690: 01bcffc0 + # 1694: 0000 + mov a3, a12 # 1696: 3d0c + l32i a2, a14, 136 /* [arg0+0x88] */ # 1698: 222e22 + l16ui a0, a13, 26 /* [arg1+0x1a] */ # 169b: 021d0d + movi a4, 0 /* 0x00000000 */ # 169e: 0c04 + s16i a0, a2, 26 /* [arg1+0x1a] -> [[arg0+0x88]+0x1a] */ # 16a0: 02520d + mov a2, a14 /* arg0 */ # 16a3: 2d0e + call0 ieee80211_send_mgmt # 16a5: 01b7ffc0 + # 16a9: 0000 + l32i a2, a14, 136 /* [arg0+0x88] */ # 16ab: 222e22 + movi a3, 255 /* 0x000000ff */ # 16ae: 32a0ff + movi a4, 6 /* 0x00000006 */ # 16b1: 0c64 + call0 memset # 16b3: 01b5ffc0 + # 16b7: 0000 + l32i a4, a14, 136 /* [arg0+0x88] */ # 16b9: 422e22 + movi a3, 0 /* 0x00000000 */ # 16bc: 0c03 + l32i a0, a14, 180 /* [arg0+0xb4] */ # 16be: 022e2d + s16i a3, a4, 26 /* 0x0000 -> [[arg0+0x88]+0x1a] */ # 16c1: 32540d + beqz a0, .Lbr157 # 16c4: 168004 + l32i a2, a0, 24 /* [[arg0+0xb4]+0x18] */ # 16c7: 2860 + l32i a5, a2, 4 /* [[[arg0+0xb4]+0x18]+0x4] */ # 16c9: 5812 + beqz a5, .Lbr156 # 16cb: bc35 + l32i a2, a13, 228 /* [arg1+0xe4] */ # 16cd: 222d39 + call0 wpa_auth_sta_deinit # 16d0: 01afffc0 + # 16d4: 0000 + l32i a2, a14, 180 /* [arg0+0xb4] */ # 16d6: 222e2d + mov a3, a13 /* arg1 */ # 16d9: 3d0d + l32i a2, a2, 24 /* [[arg0+0xb4]+0x18] */ # 16db: 2862 + call0 wpa_auth_sta_init # 16dd: 01acffc0 + # 16e1: 0000 + s32i a2, a13, 228 /* a2 -> [arg1+0xe4] */ # 16e3: 226d39 + beqz a2, .Lbr157 # 16e6: ac62 + mov a3, a2 # 16e8: 3d02 + l32i a4, a14, 180 /* [arg0+0xb4] */ # 16ea: 422e2d + l8ui a5, a13, 38 /* [arg1+0x26] */ # 16ed: 520d26 + l32i a2, a4, 24 /* [[arg0+0xb4]+0x18] */ # 16f0: 2864 + addi a4, a13, 39 /* arg1+0x27 */ # 16f2: 42cd27 + call0 wpa_validate_wpa_ie # 16f5: 01a7ffc0 + # 16f9: 0000 + bnez a2, .Lbr157 # 16fb: dc12 + l32i a2, a14, 180 /* [arg0+0xb4] */ # 16fd: 222e2d + l32i a2, a2, 24 /* [[arg0+0xb4]+0x18] */ # 1700: 2862 +.Lbr156: l32i a3, a13, 228 /* [arg1+0xe4] */ # 1702: 322d39 + call0 wpa_auth_sta_associated # 1705: 01a4ffc0 + # 1709: 0000 + movi a3, 1 /* 0x00000001 */ # 170b: 0c13 + s8i a3, a13, 24 /* 0x01 -> [arg1+0x18] */ # 170d: 324d18 +.Lbr157: l32i a12, sp, 24 /* [(local5)] */ # 1710: c861 + l32i a13, sp, 28 /* [(local6)] */ # 1712: d871 + l32i a14, sp, 32 /* [(local7)] */ # 1714: e881 + l32i a0, sp, 20 /* [(local4)] */ # 1716: 0851 + addi sp, sp, 48 /* (top of frame) */ # 1718: 12c130 + ret # 171b: 0df0 +.Lbr158: mov a12, a0 /* 0x00000001 */ # 171d: cd00 +.Lbr159: addi a4, a4, 1 /* [g_ic+0x310]+0x1 */ # 171f: 1b44 + bge a12, a4, .Lbr160 # 1721: 47ac02 + j .Lbr154 # 1724: c6bdff +.Lbr160: l32i a3, sp, 16 /* [(local3)] */ # 1727: 3841 + mov a2, a14 /* arg0 */ # 1729: 2d0e + movi a4, 17 /* 0x00000011 */ # 172b: 1c14 + call0 ieee80211_send_mgmt # 172d: 019bffc0 + # 1731: 0000 + mov a3, a13 /* arg1 */ # 1733: 3d0d + mov a2, a14 /* arg0 */ # 1735: 2d0e + call0 cnx_node_leave # 1737: 050000 + j .Lbr157 # 173a: 86f4ff + + .section .rodata.str1.4, "MSa", @progbits, 1 + +.Lstr001: .asciz "reconnect\n" # 0: 7265636f + # 4: 6e6e6563 + # 8: 740a00 + .balign 4 +.Lstr002: .asciz "no %s found, reconnect after 1s\n" # c: 6e6f2025 + # 10: 7320666f + # 14: 756e642c + # 18: 20726563 + # 1c: 6f6e6e65 + # 20: 63742061 + # 24: 66746572 + # 28: 2031730a + # 2c: 00 + .balign 4 +.Lstr003: .asciz "beacon timeout\n" # 30: 62656163 + # 34: 6f6e2074 + # 38: 696d656f + # 3c: 75740a00 +.Lstr004: .asciz "station: %02x:%02x:%02x:%02x:%02x:%02x %s, AID = %d\n" # 40: 73746174 + # 44: 696f6e3a + # 48: 20253032 + # 4c: 783a2530 + # 50: 32783a25 + # 54: 3032783a + # 58: 25303278 + # 5c: 3a253032 + # 60: 783a2530 + # 64: 32782025 + # 68: 732c2041 + # 6c: 4944203d + # 70: 2025640a + # 74: 00 + .balign 4 +.Lstr005: .asciz "leave" # 78: 6c656176 + # 7c: 6500 + .balign 4 +.Lstr006: .asciz "max connection!\n" # 80: 6d617820 + # 84: 636f6e6e + # 88: 65637469 + # 8c: 6f6e210a + # 90: 00 + .balign 4 +.Lstr007: .asciz "join" # 94: 6a6f696e + # 98: 00 + + .section .rodata, "a", @progbits + +.Ldata011: .space 8 diff --git a/binary_sdk/libphy/ate_test.o b/binary_sdk/libphy/ate_test.o new file mode 100644 index 0000000..9033285 Binary files /dev/null and b/binary_sdk/libphy/ate_test.o differ diff --git a/binary_sdk/libphy/phy.S b/binary_sdk/libphy/phy.S index a2e20a7..2a6ff49 100644 --- a/binary_sdk/libphy/phy.S +++ b/binary_sdk/libphy/phy.S @@ -7,6 +7,7 @@ # Function @ .text+0x8 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_register_phy_ops .type sdk_register_phy_ops, @function sdk_register_phy_ops: @@ -28,6 +29,7 @@ sdk_register_phy_ops: # Function @ .text+0x2c # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_phy_change_channel .type sdk_phy_change_channel, @function sdk_phy_change_channel: @@ -45,6 +47,7 @@ sdk_phy_change_channel: .literal_position # 44: 000af23f # Function @ .text+0x48 + .balign 4 .global sdk_phy_get_mactime .type sdk_phy_get_mactime, @function sdk_phy_get_mactime: @@ -64,6 +67,7 @@ sdk_phy_get_mactime: # Function @ .irom0.text+0x4 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_rf_init .type sdk_rf_init, @function sdk_rf_init: @@ -84,6 +88,7 @@ sdk_rf_init: # Function @ .irom0.text+0x24 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_bb_init .type sdk_bb_init, @function sdk_bb_init: @@ -104,6 +109,7 @@ sdk_bb_init: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_phy_init .type sdk_phy_init, @function sdk_phy_init: @@ -133,6 +139,7 @@ sdk_phy_init: # Function @ .irom0.text+0x78 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_RFChannelSel .type sdk_RFChannelSel, @function sdk_RFChannelSel: @@ -153,6 +160,7 @@ sdk_RFChannelSel: # Function @ .irom0.text+0x98 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_phy_delete_channel .type sdk_phy_delete_channel, @function sdk_phy_delete_channel: @@ -171,6 +179,7 @@ sdk_phy_delete_channel: # Function @ .irom0.text+0xb4 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_phy_enable_agc .type sdk_phy_enable_agc, @function sdk_phy_enable_agc: @@ -189,6 +198,7 @@ sdk_phy_enable_agc: # Function @ .irom0.text+0xd0 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_phy_disable_agc .type sdk_phy_disable_agc, @function sdk_phy_disable_agc: @@ -207,6 +217,7 @@ sdk_phy_disable_agc: # Function @ .irom0.text+0xec # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_phy_initialize_bb .type sdk_phy_initialize_bb, @function sdk_phy_initialize_bb: @@ -225,6 +236,7 @@ sdk_phy_initialize_bb: # Function @ .irom0.text+0x108 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_phy_set_sense .type sdk_phy_set_sense, @function sdk_phy_set_sense: diff --git a/binary_sdk/libphy/phy.o b/binary_sdk/libphy/phy.o new file mode 100644 index 0000000..f533c50 Binary files /dev/null and b/binary_sdk/libphy/phy.o differ diff --git a/binary_sdk/libphy/phy_chip_v5_ana_romfunc.S b/binary_sdk/libphy/phy_chip_v5_ana_romfunc.S index ce057f2..d34eb3a 100644 --- a/binary_sdk/libphy/phy_chip_v5_ana_romfunc.S +++ b/binary_sdk/libphy/phy_chip_v5_ana_romfunc.S @@ -10,6 +10,7 @@ # (local2): word @ -0x18 # (local3): word @ -0x14 # (local4): word[4] @ -0x10 + .balign 4 .global sdk_rom_ana_inf_gating_en .type sdk_rom_ana_inf_gating_en, @function sdk_rom_ana_inf_gating_en: @@ -199,6 +200,7 @@ sdk_rom_ana_inf_gating_en: # (local9): word @ -0x14 # (local10): word @ -0x10 # (local11): word[3] @ -0xc + .balign 4 .global sdk_rom_set_channel_freq .type sdk_rom_set_channel_freq, @function sdk_rom_set_channel_freq: @@ -531,6 +533,7 @@ sdk_rom_set_channel_freq: # (local5): word @ -0xc # (local6): word @ -0x8 # (local7): word @ -0x4 + .balign 4 .global sdk_rom_chip_50_set_channel .type sdk_rom_chip_50_set_channel, @function sdk_rom_chip_50_set_channel: @@ -727,6 +730,7 @@ sdk_rom_chip_50_set_channel: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_rom_chip_v5_rx_init .type sdk_rom_chip_v5_rx_init, @function sdk_rom_chip_v5_rx_init: @@ -780,6 +784,7 @@ sdk_rom_chip_v5_rx_init: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_rom_chip_v5_tx_init .type sdk_rom_chip_v5_tx_init, @function sdk_rom_chip_v5_tx_init: @@ -872,6 +877,7 @@ sdk_rom_chip_v5_tx_init: .literal_position # 86c: 000a0060 # Function @ .irom0.text+0x870 + .balign 4 .global sdk_rom_i2c_readReg .type sdk_rom_i2c_readReg, @function sdk_rom_i2c_readReg: @@ -900,6 +906,7 @@ sdk_rom_i2c_readReg: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .global sdk_rom_i2c_readReg_Mask .type sdk_rom_i2c_readReg_Mask, @function sdk_rom_i2c_readReg_Mask: @@ -931,6 +938,7 @@ sdk_rom_i2c_readReg_Mask: # 8e8: 000a0060 # Function @ .irom0.text+0x8ec + .balign 4 .global sdk_rom_i2c_writeReg .type sdk_rom_i2c_writeReg, @function sdk_rom_i2c_writeReg: @@ -965,6 +973,7 @@ sdk_rom_i2c_writeReg: # (local4): word @ -0x10 # (local5): word @ -0xc # (local6): word[2] @ -0x8 + .balign 4 .global sdk_rom_i2c_writeReg_Mask .type sdk_rom_i2c_writeReg_Mask, @function sdk_rom_i2c_writeReg_Mask: @@ -1028,6 +1037,7 @@ sdk_rom_i2c_writeReg_Mask: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .global sdk_rom_pbus_debugmode .type sdk_rom_pbus_debugmode, @function sdk_rom_pbus_debugmode: @@ -1094,6 +1104,7 @@ sdk_rom_pbus_debugmode: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_rom_pbus_enter_debugmode .type sdk_rom_pbus_enter_debugmode, @function sdk_rom_pbus_enter_debugmode: @@ -1125,6 +1136,7 @@ sdk_rom_pbus_enter_debugmode: # Function @ .irom0.text+0xa90 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_rom_pbus_exit_debugmode .type sdk_rom_pbus_exit_debugmode, @function sdk_rom_pbus_exit_debugmode: @@ -1150,6 +1162,7 @@ sdk_rom_pbus_exit_debugmode: # ac4: 00020060 # Function @ .irom0.text+0xac8 + .balign 4 .global sdk_rom_pbus_force_test .type sdk_rom_pbus_force_test, @function sdk_rom_pbus_force_test: @@ -1192,6 +1205,7 @@ sdk_rom_pbus_force_test: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .global sdk_rom_pbus_rd .type sdk_rom_pbus_rd, @function sdk_rom_pbus_rd: @@ -1248,6 +1262,7 @@ sdk_rom_pbus_rd: # (local3): word @ -0x14 # (local4): word @ -0x10 # (local5): word[3] @ -0xc + .balign 4 .global sdk_rom_pbus_set_rxgain .type sdk_rom_pbus_set_rxgain, @function sdk_rom_pbus_set_rxgain: @@ -1332,6 +1347,7 @@ sdk_rom_pbus_set_rxgain: # Function @ .irom0.text+0xc64 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_rom_pbus_set_txgain .type sdk_rom_pbus_set_txgain, @function sdk_rom_pbus_set_txgain: @@ -1363,6 +1379,7 @@ sdk_rom_pbus_set_txgain: # Function @ .irom0.text+0xca8 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_rom_pbus_workmode .type sdk_rom_pbus_workmode, @function sdk_rom_pbus_workmode: @@ -1397,6 +1414,7 @@ sdk_rom_pbus_workmode: # Function @ .irom0.text+0xcf4 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_rom_pbus_xpd_rx_off .type sdk_rom_pbus_xpd_rx_off, @function sdk_rom_pbus_xpd_rx_off: @@ -1435,6 +1453,7 @@ sdk_rom_pbus_xpd_rx_off: # Function @ .irom0.text+0xd44 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_rom_pbus_xpd_rx_on .type sdk_rom_pbus_xpd_rx_on, @function sdk_rom_pbus_xpd_rx_on: @@ -1465,6 +1484,7 @@ sdk_rom_pbus_xpd_rx_on: # Function @ .irom0.text+0xd80 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_rom_pbus_xpd_tx_off .type sdk_rom_pbus_xpd_tx_off, @function sdk_rom_pbus_xpd_tx_off: @@ -1502,6 +1522,7 @@ sdk_rom_pbus_xpd_tx_off: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .global sdk_rom_pbus_xpd_tx_on .type sdk_rom_pbus_xpd_tx_on, @function sdk_rom_pbus_xpd_tx_on: @@ -1552,6 +1573,7 @@ sdk_rom_pbus_xpd_tx_on: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .global sdk_rom_pbus_xpd_tx_on__low_gain .type sdk_rom_pbus_xpd_tx_on__low_gain, @function sdk_rom_pbus_xpd_tx_on__low_gain: @@ -1599,6 +1621,7 @@ sdk_rom_pbus_xpd_tx_on__low_gain: # e8c: 00060060 # Function @ .irom0.text+0xe90 + .balign 4 .global sdk_rom_phy_reset_req .type sdk_rom_phy_reset_req, @function sdk_rom_phy_reset_req: @@ -1618,6 +1641,7 @@ sdk_rom_phy_reset_req: # Function @ .irom0.text+0xeb4 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_rom_restart_cal .type sdk_rom_restart_cal, @function sdk_rom_restart_cal: @@ -1657,6 +1681,7 @@ sdk_rom_restart_cal: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_rom_rfpll_reset .type sdk_rom_rfpll_reset, @function sdk_rom_rfpll_reset: @@ -1711,6 +1736,7 @@ sdk_rom_rfpll_reset: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .global sdk_rom_write_rfpll_sdm .type sdk_rom_write_rfpll_sdm, @function sdk_rom_write_rfpll_sdm: @@ -1793,6 +1819,7 @@ sdk_rom_write_rfpll_sdm: # (local2): word @ -0x18 # (local3): word @ -0x14 # (local4): word[4] @ -0x10 + .balign 4 .global sdk_rom_rfpll_set_freq .type sdk_rom_rfpll_set_freq, @function sdk_rom_rfpll_set_freq: diff --git a/binary_sdk/libphy/phy_chip_v5_ana_romfunc.o b/binary_sdk/libphy/phy_chip_v5_ana_romfunc.o new file mode 100644 index 0000000..0755793 Binary files /dev/null and b/binary_sdk/libphy/phy_chip_v5_ana_romfunc.o differ diff --git a/binary_sdk/libphy/phy_chip_v5_cal_romfunc.S b/binary_sdk/libphy/phy_chip_v5_cal_romfunc.S index 3e09e40..837b972 100644 --- a/binary_sdk/libphy/phy_chip_v5_cal_romfunc.S +++ b/binary_sdk/libphy/phy_chip_v5_cal_romfunc.S @@ -33,6 +33,7 @@ # (local9): word @ -0xc # (local10): word @ -0x8 # (local11): word @ -0x4 + .balign 4 .global sdk_rom_cal_tos_v50 .type sdk_rom_cal_tos_v50, @function sdk_rom_cal_tos_v50: @@ -237,6 +238,7 @@ sdk_rom_cal_tos_v50: # (local25): word @ -0x14 # (local26): word @ -0x10 # (local27): word[3] @ -0xc + .balign 4 .global sdk_rom_pbus_dco___SA2 .type sdk_rom_pbus_dco___SA2, @function sdk_rom_pbus_dco___SA2: @@ -533,6 +535,7 @@ sdk_rom_pbus_dco___SA2: # (local20): word @ -0xc # (local21): word @ -0x8 # (local22): word @ -0x4 + .balign 4 .global sdk_rom_rfcal_pwrctrl .type sdk_rom_rfcal_pwrctrl, @function sdk_rom_rfcal_pwrctrl: @@ -718,6 +721,7 @@ sdk_rom_rfcal_pwrctrl: # (local19): word @ -0xc # (local20): word @ -0x8 # (local21): word @ -0x4 + .balign 4 .global sdk_rom_rfcal_rxiq .type sdk_rom_rfcal_rxiq, @function sdk_rom_rfcal_rxiq: @@ -954,6 +958,7 @@ sdk_rom_rfcal_rxiq: # (local4): word @ -0x10 # (local5): word @ -0xc # (local6): word[2] @ -0x8 + .balign 4 .global sdk_rom_rfcal_rxiq_set_reg .type sdk_rom_rfcal_rxiq_set_reg, @function sdk_rom_rfcal_rxiq_set_reg: @@ -1100,6 +1105,7 @@ sdk_rom_rfcal_rxiq_set_reg: # (local14): word @ -0x14 # (local15): word @ -0x10 # (local16): word[3] @ -0xc + .balign 4 .global sdk_rom_rfcal_txcap .type sdk_rom_rfcal_txcap, @function sdk_rom_rfcal_txcap: @@ -1381,6 +1387,7 @@ sdk_rom_rfcal_txcap: # (local14): word @ -0xc # (local15): word @ -0x8 # (local16): word @ -0x4 + .balign 4 .global sdk_rom_rfcal_txiq .type sdk_rom_rfcal_txiq, @function sdk_rom_rfcal_txiq: @@ -1621,6 +1628,7 @@ sdk_rom_rfcal_txiq: .balign 4 # Function @ .irom0.text+0xe88 + .balign 4 .global sdk_rom_rfcal_txiq_cover .type sdk_rom_rfcal_txiq_cover, @function sdk_rom_rfcal_txiq_cover: @@ -1638,6 +1646,7 @@ sdk_rom_rfcal_txiq_cover: # (local3): word @ -0x14 # (local4): word @ -0x10 # (local5): word[3] @ -0xc + .balign 4 .global sdk_rom_rfcal_txiq_set_reg .type sdk_rom_rfcal_txiq_set_reg, @function sdk_rom_rfcal_txiq_set_reg: @@ -1754,6 +1763,7 @@ sdk_rom_rfcal_txiq_set_reg: # (local17): word @ -0xc # (local18): word @ -0x8 # (local19): word @ -0x4 + .balign 4 .global sdk_rom_rxiq_cover_mg_mp .type sdk_rom_rxiq_cover_mg_mp, @function sdk_rom_rxiq_cover_mg_mp: @@ -1904,6 +1914,7 @@ sdk_rom_rxiq_cover_mg_mp: # (local4): word @ -0x10 # (local5): word @ -0xc # (local6): word[2] @ -0x8 + .balign 4 .global sdk_rom_set_txbb_atten .type sdk_rom_set_txbb_atten, @function sdk_rom_set_txbb_atten: @@ -1996,6 +2007,7 @@ sdk_rom_set_txbb_atten: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_rom_set_txiq_cal .type sdk_rom_set_txiq_cal, @function sdk_rom_set_txiq_cal: diff --git a/binary_sdk/libphy/phy_chip_v5_cal_romfunc.o b/binary_sdk/libphy/phy_chip_v5_cal_romfunc.o new file mode 100644 index 0000000..f26db48 Binary files /dev/null and b/binary_sdk/libphy/phy_chip_v5_cal_romfunc.o differ diff --git a/binary_sdk/libphy/phy_chip_v5_romfunc.S b/binary_sdk/libphy/phy_chip_v5_romfunc.S index b2bc8c2..ce226b5 100644 --- a/binary_sdk/libphy/phy_chip_v5_romfunc.S +++ b/binary_sdk/libphy/phy_chip_v5_romfunc.S @@ -4,6 +4,7 @@ .literal_position # 0: 00000000 # Function @ .text+0x4 + .balign 4 .global sdk_phy_get_romfuncs .type sdk_phy_get_romfuncs, @function sdk_phy_get_romfuncs: @@ -99,6 +100,7 @@ sdk_g_phyFuns_instance: .section .irom0.text, "ax", @progbits # Function @ .irom0.text+0x0 + .balign 4 .global sdk_rom_abs_temp .type sdk_rom_abs_temp, @function sdk_rom_abs_temp: @@ -111,6 +113,7 @@ sdk_rom_abs_temp: # 10: 009a0060 # Function @ .irom0.text+0x14 + .balign 4 .global sdk_rom_chip_v5_disable_cca .type sdk_rom_chip_v5_disable_cca, @function sdk_rom_chip_v5_disable_cca: @@ -127,6 +130,7 @@ sdk_rom_chip_v5_disable_cca: # 30: 009a0060 # Function @ .irom0.text+0x34 + .balign 4 .global sdk_rom_chip_v5_enable_cca .type sdk_rom_chip_v5_enable_cca, @function sdk_rom_chip_v5_enable_cca: @@ -144,6 +148,7 @@ sdk_rom_chip_v5_enable_cca: # 54: 009a0060 # Function @ .irom0.text+0x58 + .balign 4 .global sdk_rom_chip_v5_sense_backoff .type sdk_rom_chip_v5_sense_backoff, @function sdk_rom_chip_v5_sense_backoff: @@ -185,6 +190,7 @@ sdk_rom_chip_v5_sense_backoff: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .global sdk_rom_dc_iq_est .type sdk_rom_dc_iq_est, @function sdk_rom_dc_iq_est: @@ -234,6 +240,7 @@ sdk_rom_dc_iq_est: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_rom_en_pwdet .type sdk_rom_en_pwdet, @function sdk_rom_en_pwdet: @@ -280,6 +287,7 @@ sdk_rom_en_pwdet: .balign 4 # Function @ .irom0.text+0x198 + .balign 4 .global sdk_rom_get_bb_atten .type sdk_rom_get_bb_atten, @function sdk_rom_get_bb_atten: @@ -301,6 +309,7 @@ sdk_rom_get_bb_atten: .literal_position # 1c0: 00020060 # Function @ .irom0.text+0x1c4 + .balign 4 .global sdk_rom_get_corr_power .type sdk_rom_get_corr_power, @function sdk_rom_get_corr_power: @@ -364,6 +373,7 @@ sdk_rom_get_corr_power: # (local8): word @ -0xc # (local9): word @ -0x8 # (local10): word @ -0x4 + .balign 4 .global sdk_rom_get_fm_sar_dout .type sdk_rom_get_fm_sar_dout, @function sdk_rom_get_fm_sar_dout: @@ -429,6 +439,7 @@ sdk_rom_get_fm_sar_dout: .literal_position # 2e4: 009a0060 # Function @ .irom0.text+0x2e8 + .balign 4 .global sdk_rom_get_noisefloor .type sdk_rom_get_noisefloor, @function sdk_rom_get_noisefloor: @@ -453,6 +464,7 @@ sdk_rom_get_noisefloor: # (local2): word @ -0xc # (local3): word @ -0x8 # (local4): word @ -0x4 + .balign 4 .global sdk_rom_get_power_db .type sdk_rom_get_power_db, @function sdk_rom_get_power_db: @@ -493,6 +505,7 @@ sdk_rom_get_power_db: # 364: 00020060 # Function @ .irom0.text+0x368 + .balign 4 .global sdk_rom_iq_est_disable .type sdk_rom_iq_est_disable, @function sdk_rom_iq_est_disable: @@ -517,6 +530,7 @@ sdk_rom_iq_est_disable: # 39c: 0100faff # Function @ .irom0.text+0x3a0 + .balign 4 .global sdk_rom_iq_est_enable .type sdk_rom_iq_est_enable, @function sdk_rom_iq_est_enable: @@ -556,6 +570,7 @@ sdk_rom_iq_est_enable: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .global sdk_rom_linear_to_db .type sdk_rom_linear_to_db, @function sdk_rom_linear_to_db: @@ -613,6 +628,7 @@ sdk_rom_linear_to_db: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_rom_set_txclk_en .type sdk_rom_set_txclk_en, @function sdk_rom_set_txclk_en: @@ -652,6 +668,7 @@ sdk_rom_set_txclk_en: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_rom_set_rxclk_en .type sdk_rom_set_rxclk_en, @function sdk_rom_set_rxclk_en: @@ -695,6 +712,7 @@ sdk_rom_set_rxclk_en: # Function @ .irom0.text+0x524 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_rom_mhz2ieee .type sdk_rom_mhz2ieee, @function sdk_rom_mhz2ieee: @@ -753,6 +771,7 @@ sdk_rom_mhz2ieee: # (local8): word @ -0x10 # (local9): word @ -0xc # (local10): word[2] @ -0x8 + .balign 4 .global sdk_rom_rxiq_get_mis .type sdk_rom_rxiq_get_mis, @function sdk_rom_rxiq_get_mis: @@ -880,6 +899,7 @@ sdk_rom_rxiq_get_mis: # Function @ .irom0.text+0x6d0 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_rom_sar_init .type sdk_rom_sar_init, @function sdk_rom_sar_init: @@ -922,6 +942,7 @@ sdk_rom_sar_init: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_rom_set_ana_inf_tx_scale .type sdk_rom_set_ana_inf_tx_scale, @function sdk_rom_set_ana_inf_tx_scale: @@ -960,6 +981,7 @@ sdk_rom_set_ana_inf_tx_scale: # (local3): word @ -0x14 # (local4): word @ -0x10 # (local5): word[3] @ -0xc + .balign 4 .global sdk_rom_set_loopback_gain .type sdk_rom_set_loopback_gain, @function sdk_rom_set_loopback_gain: @@ -1010,6 +1032,7 @@ sdk_rom_set_loopback_gain: # 7d0: fd7ffdff # Function @ .irom0.text+0x7d4 + .balign 4 .global sdk_rom_set_noise_floor .type sdk_rom_set_noise_floor, @function sdk_rom_set_noise_floor: @@ -1039,6 +1062,7 @@ sdk_rom_set_noise_floor: # 818: 02800200 # Function @ .irom0.text+0x81c + .balign 4 .global sdk_rom_start_noisefloor .type sdk_rom_start_noisefloor, @function sdk_rom_start_noisefloor: @@ -1076,6 +1100,7 @@ sdk_rom_start_noisefloor: # (local4): word @ -0x10 # (local5): word @ -0xc # (local6): word[2] @ -0x8 + .balign 4 .global sdk_rom_start_tx_tone .type sdk_rom_start_tx_tone, @function sdk_rom_start_tx_tone: @@ -1161,6 +1186,7 @@ sdk_rom_start_tx_tone: # Function @ .irom0.text+0x938 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_rom_stop_tx_tone .type sdk_rom_stop_tx_tone, @function sdk_rom_stop_tx_tone: @@ -1226,6 +1252,7 @@ sdk_rom_stop_tx_tone: # (local5): word @ -0x10 # (local6): word @ -0xc # (local7): word[2] @ -0x8 + .balign 4 .global sdk_rom_txtone_linear_pwr .type sdk_rom_txtone_linear_pwr, @function sdk_rom_txtone_linear_pwr: @@ -1277,6 +1304,7 @@ sdk_rom_txtone_linear_pwr: # a38: 0000807f # Function @ .irom0.text+0xa3c + .balign 4 .global sdk_rom_tx_mac_disable .type sdk_rom_tx_mac_disable, @function sdk_rom_tx_mac_disable: @@ -1305,6 +1333,7 @@ sdk_rom_tx_mac_disable: # a7c: 0000807f # Function @ .irom0.text+0xa80 + .balign 4 .global sdk_rom_tx_mac_enable .type sdk_rom_tx_mac_enable, @function sdk_rom_tx_mac_enable: diff --git a/binary_sdk/libphy/phy_chip_v5_romfunc.o b/binary_sdk/libphy/phy_chip_v5_romfunc.o new file mode 100644 index 0000000..ced45e3 Binary files /dev/null and b/binary_sdk/libphy/phy_chip_v5_romfunc.o differ diff --git a/binary_sdk/libphy/phy_chip_v6.S b/binary_sdk/libphy/phy_chip_v6.S index 7c4d135..f0303c6 100644 --- a/binary_sdk/libphy/phy_chip_v6.S +++ b/binary_sdk/libphy/phy_chip_v6.S @@ -2,6 +2,8 @@ .section .text, "ax", @progbits # Function @ .text+0x0 + .balign 4 + .literal_position .global sdk_ram_tx_mac_disable .type sdk_ram_tx_mac_disable, @function sdk_ram_tx_mac_disable: @@ -288,6 +290,7 @@ sdk_tx_pwctrl_atten_init: .section .irom0.text, "ax", @progbits # Function @ .irom0.text+0x0 + .balign 4 .global sdk_ram_tx_mac_enable .type sdk_ram_tx_mac_enable, @function sdk_ram_tx_mac_enable: @@ -296,6 +299,7 @@ sdk_ram_tx_mac_enable: .literal_position # 4: 000e0060 # Function @ .irom0.text+0x8 + .balign 4 .global sdk_rtc_mem_backup .type sdk_rtc_mem_backup, @function sdk_rtc_mem_backup: @@ -321,6 +325,7 @@ sdk_rtc_mem_backup: .literal_position # 38: 000e0060 # Function @ .irom0.text+0x3c + .balign 4 .global sdk_rtc_mem_recovery .type sdk_rtc_mem_recovery, @function sdk_rtc_mem_recovery: @@ -353,6 +358,7 @@ sdk_rtc_mem_recovery: # (local2): word @ -0x18 # (local3): word @ -0x14 # (local4): word[4] @ -0x10 + .balign 4 .global sdk_set_cal_rxdc .type sdk_set_cal_rxdc, @function sdk_set_cal_rxdc: @@ -469,6 +475,7 @@ sdk_set_cal_rxdc: # (local19): word @ -0xc # (local20): word @ -0x8 # (local21): word @ -0x4 + .balign 4 .global sdk_set_rx_gain_cal_iq .type sdk_set_rx_gain_cal_iq, @function sdk_set_rx_gain_cal_iq: @@ -824,6 +831,7 @@ sdk_set_rx_gain_cal_iq: # (local10): word @ -0x18 # (local11): word @ -0x14 # (local12): word[4] @ -0x10 + .balign 4 .global sdk_gen_rx_gain_table .type sdk_gen_rx_gain_table, @function sdk_gen_rx_gain_table: @@ -961,6 +969,7 @@ sdk_gen_rx_gain_table: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_pbus_set_rxbbgain .type sdk_pbus_set_rxbbgain, @function sdk_pbus_set_rxbbgain: @@ -1045,6 +1054,7 @@ sdk_pbus_set_rxbbgain: # (local17): word @ -0x18 # (local18): word @ -0x14 # (local19): word[4] @ -0x10 + .balign 4 .global sdk_set_rx_gain_testchip_50 .type sdk_set_rx_gain_testchip_50, @function sdk_set_rx_gain_testchip_50: @@ -1374,6 +1384,7 @@ sdk_set_rx_gain_testchip_50: # (local10): word @ -0x18 # (local11): word @ -0x14 # (local12): word[4] @ -0x10 + .balign 4 .global sdk_ram_get_corr_power .type sdk_ram_get_corr_power, @function sdk_ram_get_corr_power: @@ -1478,6 +1489,7 @@ sdk_ram_get_corr_power: .literal_position # ae0: 00000000 # Function @ .irom0.text+0xae4 + .balign 4 .global sdk_check_data_func .type sdk_check_data_func, @function sdk_check_data_func: @@ -1496,6 +1508,7 @@ sdk_check_data_func: # b04: fd7ffdff # Function @ .irom0.text+0xb08 + .balign 4 .global sdk_do_noisefloor_lsleep_v50 .type sdk_do_noisefloor_lsleep_v50, @function sdk_do_noisefloor_lsleep_v50: @@ -1531,6 +1544,7 @@ sdk_do_noisefloor_lsleep_v50: # (local3): word @ -0x14 # (local4): word @ -0x10 # (local5): word[3] @ -0xc + .balign 4 .global sdk_do_noisefloor .type sdk_do_noisefloor, @function sdk_do_noisefloor: @@ -1582,6 +1596,7 @@ sdk_do_noisefloor: # bc0: 009a0060 # Function @ .irom0.text+0xbc4 + .balign 4 .global sdk_start_dig_rx .type sdk_start_dig_rx, @function sdk_start_dig_rx: @@ -1613,6 +1628,7 @@ sdk_start_dig_rx: # c0c: fffff7ff # Function @ .irom0.text+0xc10 + .balign 4 .global sdk_stop_dig_rx .type sdk_stop_dig_rx, @function sdk_stop_dig_rx: @@ -1639,6 +1655,7 @@ sdk_stop_dig_rx: # Function @ .irom0.text+0xc44 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_chip_v6_set_chanfreq .type sdk_chip_v6_set_chanfreq, @function sdk_chip_v6_set_chanfreq: @@ -1694,6 +1711,7 @@ sdk_chip_v6_set_chanfreq: # (local9): word @ -0x14 # (local10): word @ -0x10 # (local11): word[3] @ -0xc + .balign 4 .global sdk_tx_cap_init .type sdk_tx_cap_init, @function sdk_tx_cap_init: @@ -1875,6 +1893,7 @@ sdk_tx_cap_init: .balign 4 # Function @ .irom0.text+0xe88 + .balign 4 .global sdk_target_power_add_backoff .type sdk_target_power_add_backoff, @function sdk_target_power_add_backoff: @@ -1931,6 +1950,7 @@ sdk_target_power_add_backoff: # (local5): word @ -0xc # (local6): word @ -0x8 # (local7): word @ -0x4 + .balign 4 .global sdk_tx_pwctrl_init_cal .type sdk_tx_pwctrl_init_cal, @function sdk_tx_pwctrl_init_cal: @@ -2111,6 +2131,7 @@ sdk_tx_pwctrl_init_cal: # (local10): word @ -0x18 # (local11): word @ -0x14 # (local12): word[4] @ -0x10 + .balign 4 .global sdk_tx_atten_set_interp .type sdk_tx_atten_set_interp, @function sdk_tx_atten_set_interp: @@ -2367,6 +2388,7 @@ sdk_tx_atten_set_interp: # (local4): word @ -0x14 # (local5): word @ -0x10 # (local6): word[3] @ -0xc + .balign 4 .global sdk_tx_pwctrl_init .type sdk_tx_pwctrl_init, @function sdk_tx_pwctrl_init: @@ -2474,6 +2496,7 @@ sdk_tx_pwctrl_init: .literal_position # 1474: 009a0060 # Function @ .irom0.text+0x1478 + .balign 4 .global sdk_ram_get_noisefloor .type sdk_ram_get_noisefloor, @function sdk_ram_get_noisefloor: @@ -2493,6 +2516,7 @@ sdk_ram_get_noisefloor: # Function @ .irom0.text+0x1498 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_get_noisefloor_sat .type sdk_get_noisefloor_sat, @function sdk_get_noisefloor_sat: @@ -2519,6 +2543,7 @@ sdk_get_noisefloor_sat: # 14cc: fd7ffdff # Function @ .irom0.text+0x14d0 + .balign 4 .global sdk_ram_set_noise_floor .type sdk_ram_set_noise_floor, @function sdk_ram_set_noise_floor: @@ -2557,6 +2582,7 @@ sdk_ram_set_noise_floor: # 152c: 02800200 # Function @ .irom0.text+0x1530 + .balign 4 .global sdk_ram_start_noisefloor .type sdk_ram_start_noisefloor, @function sdk_ram_start_noisefloor: @@ -2587,6 +2613,7 @@ sdk_ram_start_noisefloor: # 1578: 00960060 # Function @ .irom0.text+0x157c + .balign 4 .global sdk_read_hw_noisefloor .type sdk_read_hw_noisefloor, @function sdk_read_hw_noisefloor: @@ -2620,6 +2647,7 @@ sdk_read_hw_noisefloor: # (local1): word @ -0xc # (local2): word @ -0x8 # (local3): word @ -0x4 + .balign 4 .global sdk_noise_check_loop .type sdk_noise_check_loop, @function sdk_noise_check_loop: @@ -2790,6 +2818,7 @@ sdk_noise_check_loop: # (local11): word @ -0x14 # (local12): word @ -0x10 # (local13): word[3] @ -0xc + .balign 4 .global sdk_noise_init .type sdk_noise_init, @function sdk_noise_init: @@ -3000,6 +3029,7 @@ sdk_noise_init: # Local variables/stack: # (local0): word @ -0x8 # (local1): word @ -0x4 + .balign 4 .global sdk_target_power_backoff .type sdk_target_power_backoff, @function sdk_target_power_backoff: @@ -3048,6 +3078,7 @@ sdk_target_power_backoff: # (local2): word @ -0x18 # (local3): word @ -0x14 # (local4): word[4] @ -0x10 + .balign 4 .global sdk_sdt_on_noise_start .type sdk_sdt_on_noise_start, @function sdk_sdt_on_noise_start: @@ -3121,6 +3152,7 @@ sdk_sdt_on_noise_start: # (local5): word @ -0x14 # (local6): word @ -0x10 # (local7): word[3] @ -0xc + .balign 4 .global sdk_chip_v6_set_chan_rx_cmp .type sdk_chip_v6_set_chan_rx_cmp, @function sdk_chip_v6_set_chan_rx_cmp: @@ -3283,6 +3315,7 @@ sdk_chip_v6_set_chan_rx_cmp: # Local variables/stack: # (local0): word @ -0x8 # (local1): word @ -0x4 + .balign 4 .global sdk_chip_v6_set_chan_misc .type sdk_chip_v6_set_chan_misc, @function sdk_chip_v6_set_chan_misc: @@ -3408,6 +3441,7 @@ sdk_chip_v6_set_chan_misc: # (local17): word @ -0xc # (local18): word @ -0x8 # (local19): word @ -0x4 + .balign 4 .global sdk_phy_dig_spur_set .type sdk_phy_dig_spur_set, @function sdk_phy_dig_spur_set: @@ -3756,6 +3790,7 @@ sdk_phy_dig_spur_set: # (local1): byte[3] @ -0xf # (local2): word @ -0xc # (local3): word[2] @ -0x8 + .balign 4 .global sdk_phy_dig_spur_prot .type sdk_phy_dig_spur_prot, @function sdk_phy_dig_spur_prot: @@ -3974,6 +4009,7 @@ sdk_phy_dig_spur_prot: # Function @ .irom0.text+0x2358 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_chip_v6_rxmax_ext_dig .type sdk_chip_v6_rxmax_ext_dig, @function sdk_chip_v6_rxmax_ext_dig: @@ -4011,6 +4047,7 @@ sdk_chip_v6_rxmax_ext_dig: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_chip_v6_rxmax_ext .type sdk_chip_v6_rxmax_ext, @function sdk_chip_v6_rxmax_ext: @@ -4091,6 +4128,7 @@ sdk_chip_v6_rxmax_ext: # (local4): word @ -0x10 # (local5): word @ -0xc # (local6): word[2] @ -0x8 + .balign 4 .global sdk_phy_bb_rx_cfg .type sdk_phy_bb_rx_cfg, @function sdk_phy_bb_rx_cfg: @@ -4435,6 +4473,7 @@ sdk_phy_bb_rx_cfg: # Function @ .irom0.text+0x2860 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_uart_wait_idle .type sdk_uart_wait_idle, @function sdk_uart_wait_idle: @@ -4461,6 +4500,7 @@ sdk_uart_wait_idle: # 28a0: ff00ffff # Function @ .irom0.text+0x28a4 + .balign 4 .global sdk_phy_pbus_soc_cfg .type sdk_phy_pbus_soc_cfg, @function sdk_phy_pbus_soc_cfg: @@ -4549,6 +4589,7 @@ sdk_phy_pbus_soc_cfg: # Function @ .irom0.text+0x29ac # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_phy_gpio_cfg .type sdk_phy_gpio_cfg, @function sdk_phy_gpio_cfg: @@ -4859,6 +4900,7 @@ sdk_phy_gpio_cfg: # Function @ .irom0.text+0x2d10 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_tx_cont_en .type sdk_tx_cont_en, @function sdk_tx_cont_en: @@ -4931,6 +4973,7 @@ sdk_tx_cont_en: # Function @ .irom0.text+0x2dc8 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_tx_cont_dis .type sdk_tx_cont_dis, @function sdk_tx_cont_dis: @@ -4969,6 +5012,7 @@ sdk_tx_cont_dis: # Function @ .irom0.text+0x2e1c # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_tx_cont_cfg .type sdk_tx_cont_cfg, @function sdk_tx_cont_cfg: @@ -5014,6 +5058,7 @@ sdk_tx_cont_cfg: # (local1): word[3] @ -0x1c # (local2): word @ -0x10 # (local3): word[3] @ -0xc + .balign 4 .global sdk_chip_v6_initialize_bb .type sdk_chip_v6_initialize_bb, @function sdk_chip_v6_initialize_bb: @@ -5205,6 +5250,7 @@ sdk_chip_v6_initialize_bb: # (local6): word @ -0x18 # (local7): word @ -0x14 # (local8): word[4] @ -0x10 + .balign 4 .global sdk_periodic_cal .type sdk_periodic_cal, @function sdk_periodic_cal: @@ -5329,6 +5375,7 @@ sdk_periodic_cal: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_bbpll_cal .type sdk_bbpll_cal, @function sdk_bbpll_cal: @@ -5396,6 +5443,7 @@ sdk_bbpll_cal: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_periodic_cal_top .type sdk_periodic_cal_top, @function sdk_periodic_cal_top: @@ -5439,6 +5487,7 @@ sdk_periodic_cal_top: # 32b8: ec010000 # Function @ .irom0.text+0x32bc + .balign 4 .global sdk_register_chipv6_phy_init_param .type sdk_register_chipv6_phy_init_param, @function sdk_register_chipv6_phy_init_param: @@ -5686,6 +5735,7 @@ sdk_register_chipv6_phy_init_param: # (local1): word @ -0xc # (local2): word @ -0x8 # (local3): word @ -0x4 + .balign 4 .global sdk_change_bbpll160_sleep .type sdk_change_bbpll160_sleep, @function sdk_change_bbpll160_sleep: @@ -5787,6 +5837,7 @@ sdk_change_bbpll160_sleep: # Function @ .irom0.text+0x3660 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_change_bbpll160 .type sdk_change_bbpll160, @function sdk_change_bbpll160: @@ -5819,6 +5870,7 @@ sdk_change_bbpll160: # Function @ .irom0.text+0x36a8 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_set_crystal_uart .type sdk_set_crystal_uart, @function sdk_set_crystal_uart: @@ -5866,6 +5918,7 @@ sdk_set_crystal_uart: # 3724: 04040401 # Function @ .irom0.text+0x3728 + .balign 4 .global sdk_ant_switch_init .type sdk_ant_switch_init, @function sdk_ant_switch_init: @@ -5966,6 +6019,7 @@ sdk_ant_switch_init: # (local3): word @ -0x14 # (local4): word @ -0x10 # (local5): word[3] @ -0xc + .balign 4 .global sdk_register_chipv6_phy .type sdk_register_chipv6_phy, @function sdk_register_chipv6_phy: diff --git a/binary_sdk/libphy/phy_chip_v6.o b/binary_sdk/libphy/phy_chip_v6.o new file mode 100644 index 0000000..cd917ff Binary files /dev/null and b/binary_sdk/libphy/phy_chip_v6.o differ diff --git a/binary_sdk/libphy/phy_chip_v6_ana.S b/binary_sdk/libphy/phy_chip_v6_ana.S index 8177e0a..b36f68f 100644 --- a/binary_sdk/libphy/phy_chip_v6_ana.S +++ b/binary_sdk/libphy/phy_chip_v6_ana.S @@ -10,6 +10,7 @@ # (local2): word @ -0x18 # (local3): word @ -0x14 # (local4): word[4] @ -0x10 + .balign 4 .global sdk_ram_pbus_set_rxgain .type sdk_ram_pbus_set_rxgain, @function sdk_ram_pbus_set_rxgain: @@ -104,6 +105,7 @@ sdk_ram_pbus_set_rxgain: # (local2): word @ -0x18 # (local3): word @ -0x14 # (local4): word[4] @ -0x10 + .balign 4 .global sdk_ram_pbus_debugmode .type sdk_ram_pbus_debugmode, @function sdk_ram_pbus_debugmode: @@ -182,6 +184,7 @@ sdk_ram_pbus_debugmode: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .global sdk_ram_pbus_xpd_tx_on .type sdk_ram_pbus_xpd_tx_on, @function sdk_ram_pbus_xpd_tx_on: @@ -241,6 +244,7 @@ sdk_ram_pbus_xpd_tx_on: # (local1): word @ -0x18 # (local2): word @ -0x14 # (local3): word[4] @ -0x10 + .balign 4 .global sdk_set_rf_freq_offset .type sdk_set_rf_freq_offset, @function sdk_set_rf_freq_offset: @@ -297,6 +301,7 @@ sdk_set_rf_freq_offset: # (local2): word @ -0x18 # (local3): word @ -0x14 # (local4): word[4] @ -0x10 + .balign 4 .global sdk_chip_v6_rxmax_ext_ana .type sdk_chip_v6_rxmax_ext_ana, @function sdk_chip_v6_rxmax_ext_ana: @@ -442,6 +447,7 @@ sdk_chip_v6_rxmax_ext_ana: # Function @ .irom0.text+0x3f0 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_ram_chip_v6_rx_init .type sdk_ram_chip_v6_rx_init, @function sdk_ram_chip_v6_rx_init: @@ -473,6 +479,7 @@ sdk_ram_chip_v6_rx_init: # Function @ .irom0.text+0x438 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_tsen_meas .type sdk_tsen_meas, @function sdk_tsen_meas: @@ -555,6 +562,7 @@ sdk_tsen_meas: # (local3): word @ -0x14 # (local4): word @ -0x10 # (local5): word[3] @ -0xc + .balign 4 .global sdk_readvdd33 .type sdk_readvdd33, @function sdk_readvdd33: @@ -730,6 +738,7 @@ sdk_readvdd33: # (local2): word @ -0x18 # (local3): word @ -0x14 # (local4): word[4] @ -0x10 + .balign 4 .global sdk_txpwr_offset .type sdk_txpwr_offset, @function sdk_txpwr_offset: @@ -809,6 +818,7 @@ sdk_txpwr_offset: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .global sdk_set_txcap_reg .type sdk_set_txcap_reg, @function sdk_set_txcap_reg: @@ -871,6 +881,7 @@ sdk_set_txcap_reg: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_ram_restart_cal .type sdk_ram_restart_cal, @function sdk_ram_restart_cal: @@ -931,6 +942,7 @@ sdk_ram_restart_cal: # (local2): word @ -0x18 # (local3): word @ -0x14 # (local4): word[4] @ -0x10 + .balign 4 .global sdk_wait_rfpll_cal_end .type sdk_wait_rfpll_cal_end, @function sdk_wait_rfpll_cal_end: @@ -1001,6 +1013,7 @@ sdk_wait_rfpll_cal_end: # (local2): word @ -0x18 # (local3): word @ -0x14 # (local4): word[4] @ -0x10 + .balign 4 .global sdk_ram_rfpll_set_freq .type sdk_ram_rfpll_set_freq, @function sdk_ram_rfpll_set_freq: @@ -1116,6 +1129,7 @@ sdk_ram_rfpll_set_freq: # (local8): word @ -0x18 # (local9): word @ -0x14 # (local10): word[4] @ -0x10 + .balign 4 .global sdk_ram_set_channel_freq .type sdk_ram_set_channel_freq, @function sdk_ram_set_channel_freq: @@ -1418,6 +1432,7 @@ sdk_ram_set_channel_freq: # (local0): word[4] @ -0x20 # (local1): word @ -0x10 # (local2): word[3] @ -0xc + .balign 4 .global sdk_chip_60_set_channel .type sdk_chip_60_set_channel, @function sdk_chip_60_set_channel: @@ -1519,6 +1534,7 @@ sdk_chip_60_set_channel: # (local2): word @ -0x10 # (local3): word @ -0xc # (local4): word[2] @ -0x8 + .balign 4 .global sdk_chip_v6_set_chan_offset .type sdk_chip_v6_set_chan_offset, @function sdk_chip_v6_set_chan_offset: @@ -1584,6 +1600,7 @@ sdk_chip_v6_set_chan_offset: # (local2): word @ -0x10 # (local3): word @ -0xc # (local4): word[2] @ -0x8 + .balign 4 .global sdk_chip_v6_set_chan .type sdk_chip_v6_set_chan, @function sdk_chip_v6_set_chan: @@ -1650,6 +1667,7 @@ sdk_chip_v6_set_chan: # (local1): word[5] @ -0x1c # (local2): word @ -0x8 # (local3): word @ -0x4 + .balign 4 .global sdk_chip_v6_set_chan_wakeup .type sdk_chip_v6_set_chan_wakeup, @function sdk_chip_v6_set_chan_wakeup: @@ -1713,6 +1731,7 @@ sdk_chip_v6_set_chan_wakeup: # (local1): word @ -0xc # (local2): word @ -0x8 # (local3): word @ -0x4 + .balign 4 .global sdk_chip_v6_rf_init .type sdk_chip_v6_rf_init, @function sdk_chip_v6_rf_init: @@ -1923,6 +1942,7 @@ sdk_chip_v6_rf_init: # 1218: 00000000 # Function @ .irom0.text+0x121c + .balign 4 .global sdk_low_power_set .type sdk_low_power_set, @function sdk_low_power_set: @@ -1994,6 +2014,7 @@ sdk_low_power_set: # (local6): word @ -0x18 # (local7): word @ -0x14 # (local8): word[4] @ -0x10 + .balign 4 .global sdk_test_tout .type sdk_test_tout, @function sdk_test_tout: @@ -2208,6 +2229,7 @@ sdk_test_tout: .balign 4 # Function @ .irom0.text+0x1508 + .balign 4 .global sdk_check_data_flag .type sdk_check_data_flag, @function sdk_check_data_flag: @@ -2237,6 +2259,7 @@ sdk_check_data_flag: # (local3): word @ -0x14 # (local4): word @ -0x10 # (local5): word[3] @ -0xc + .balign 4 .global sdk_get_check_flag .type sdk_get_check_flag, @function sdk_get_check_flag: diff --git a/binary_sdk/libphy/phy_chip_v6_cal.S b/binary_sdk/libphy/phy_chip_v6_cal.S index 812a15e..7a84970 100644 --- a/binary_sdk/libphy/phy_chip_v6_cal.S +++ b/binary_sdk/libphy/phy_chip_v6_cal.S @@ -52,6 +52,8 @@ sdk_rxiq_cover_fail_num: .section .irom0.text, "ax", @progbits # Function @ .irom0.text+0x0 + .balign 4 + .literal_position .global sdk_txbbgain2dcoindex .type sdk_txbbgain2dcoindex, @function sdk_txbbgain2dcoindex: @@ -71,6 +73,7 @@ sdk_txbbgain2dcoindex: ret /* 0x00000002 */ # 1e: 0df0 # Function @ .irom0.text+0x20 + .balign 4 .global sdk_dcoindex2txbbgain .type sdk_dcoindex2txbbgain, @function sdk_dcoindex2txbbgain: @@ -103,6 +106,7 @@ sdk_dcoindex2txbbgain: # (local4): word @ -0x14 # (local5): word @ -0x10 # (local6): word[3] @ -0xc + .balign 4 .global sdk_init_cal_dcoffset .type sdk_init_cal_dcoffset, @function sdk_init_cal_dcoffset: @@ -190,6 +194,7 @@ sdk_init_cal_dcoffset: # (local1): word @ -0xc # (local2): word @ -0x8 # (local3): word @ -0x4 + .balign 4 .global sdk_set_rfanagain_dc_reg .type sdk_set_rfanagain_dc_reg, @function sdk_set_rfanagain_dc_reg: @@ -258,6 +263,7 @@ sdk_set_rfanagain_dc_reg: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .global sdk_set_txdc_pbus .type sdk_set_txdc_pbus, @function sdk_set_txdc_pbus: @@ -304,6 +310,7 @@ sdk_set_txdc_pbus: .balign 4 # Function @ .irom0.text+0x230 + .balign 4 .global sdk_get_rf_gain_qdb .type sdk_get_rf_gain_qdb, @function sdk_get_rf_gain_qdb: @@ -333,6 +340,7 @@ sdk_get_rf_gain_qdb: # (local3): word @ -0x14 # (local4): word @ -0x10 # (local5): word[3] @ -0xc + .balign 4 .global sdk_correct_rf_ana_gain .type sdk_correct_rf_ana_gain, @function sdk_correct_rf_ana_gain: @@ -449,6 +457,7 @@ sdk_correct_rf_ana_gain: # (local8): word @ -0xc # (local9): word @ -0x8 # (local10): word @ -0x4 + .balign 4 .global sdk_get_sar_dout .type sdk_get_sar_dout, @function sdk_get_sar_dout: @@ -524,6 +533,7 @@ sdk_get_sar_dout: # (local2): byte[2] @ -0xe # (local3): word @ -0xc # (local4): word[2] @ -0x8 + .balign 4 .global sdk_cal_rf_ana_gain .type sdk_cal_rf_ana_gain, @function sdk_cal_rf_ana_gain: @@ -620,6 +630,7 @@ sdk_cal_rf_ana_gain: # (local4): word @ -0xc # (local5): word @ -0x8 # (local6): word @ -0x4 + .balign 4 .global sdk_meas_tone_pwr_db .type sdk_meas_tone_pwr_db, @function sdk_meas_tone_pwr_db: @@ -689,6 +700,7 @@ sdk_meas_tone_pwr_db: # (local11): word @ -0xc # (local12): word @ -0x8 # (local13): word @ -0x4 + .balign 4 .global sdk_tx_pwr_backoff .type sdk_tx_pwr_backoff, @function sdk_tx_pwr_backoff: @@ -825,6 +837,7 @@ sdk_tx_pwr_backoff: # 6bc: 00000000 # Function @ .irom0.text+0x6c0 + .balign 4 .global sdk_get_fcc_1m2m_pwr_offset .type sdk_get_fcc_1m2m_pwr_offset, @function sdk_get_fcc_1m2m_pwr_offset: @@ -863,6 +876,7 @@ sdk_get_fcc_1m2m_pwr_offset: # (local6): word @ -0x18 # (local7): word @ -0x14 # (local8): word[4] @ -0x10 + .balign 4 .global sdk_ram_set_txbb_atten .type sdk_ram_set_txbb_atten, @function sdk_ram_set_txbb_atten: @@ -935,6 +949,7 @@ sdk_ram_set_txbb_atten: # (local1): word @ -0xc # (local2): word @ -0x8 # (local3): word @ -0x4 + .balign 4 .global sdk_txiq_get_mis_pwr .type sdk_txiq_get_mis_pwr, @function sdk_txiq_get_mis_pwr: @@ -1030,6 +1045,7 @@ sdk_txiq_get_mis_pwr: # (local15): word @ -0x18 # (local16): word @ -0x14 # (local17): word[4] @ -0x10 + .balign 4 .global sdk_txiq_cover .type sdk_txiq_cover, @function sdk_txiq_cover: @@ -1268,6 +1284,7 @@ sdk_txiq_cover: # (local12): word @ -0x14 # (local13): word @ -0x10 # (local14): word[3] @ -0xc + .balign 4 .global sdk_ram_rfcal_txiq .type sdk_ram_rfcal_txiq, @function sdk_ram_rfcal_txiq: @@ -1535,6 +1552,7 @@ sdk_ram_rfcal_txiq: # (local1): word @ -0xc # (local2): word @ -0x8 # (local3): word @ -0x4 + .balign 4 .global sdk_rc_cal .type sdk_rc_cal, @function sdk_rc_cal: addi sp, sp, -16 /* (local0) */ # d3c: 12c1f0 @@ -1726,6 +1744,7 @@ sdk_rc_cal: addi sp, sp, -16 /* (local0) */ # d3c: 12c1f0 # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .global sdk_get_target_power_offset .type sdk_get_target_power_offset, @function sdk_get_target_power_offset: @@ -1819,6 +1838,7 @@ sdk_get_target_power_offset: .balign 4 # Function @ .irom0.text+0xff8 + .balign 4 .global sdk_get_pwctrl_correct .type sdk_get_pwctrl_correct, @function sdk_get_pwctrl_correct: @@ -1899,6 +1919,7 @@ sdk_get_pwctrl_correct: # (local20): word @ -0x10 # (local21): word @ -0xc # (local22): word[2] @ -0x8 + .balign 4 .global sdk_tx_pwctrl_cal .type sdk_tx_pwctrl_cal, @function sdk_tx_pwctrl_cal: @@ -2213,6 +2234,7 @@ sdk_tx_pwctrl_cal: # 13ec: ffff7fff # Function @ .irom0.text+0x13f0 + .balign 4 .global sdk_tx_pwctrl_bg_init .type sdk_tx_pwctrl_bg_init, @function sdk_tx_pwctrl_bg_init: @@ -2285,6 +2307,7 @@ sdk_tx_pwctrl_bg_init: # (local3): word @ -0xc # (local4): word @ -0x8 # (local5): word @ -0x4 + .balign 4 .global sdk_tx_pwctrl_background .type sdk_tx_pwctrl_background, @function sdk_tx_pwctrl_background: @@ -2408,6 +2431,7 @@ sdk_tx_pwctrl_background: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .global sdk_read_sar_dout .type sdk_read_sar_dout, @function sdk_read_sar_dout: @@ -2465,6 +2489,7 @@ sdk_read_sar_dout: # (local7): word @ -0x10 # (local8): word @ -0xc # (local9): word[2] @ -0x8 + .balign 4 .global sdk_ram_get_fm_sar_dout .type sdk_ram_get_fm_sar_dout, @function sdk_ram_get_fm_sar_dout: @@ -2552,6 +2577,7 @@ sdk_ram_get_fm_sar_dout: # (local11): word @ -0x14 # (local12): word @ -0x10 # (local13): word[3] @ -0xc + .balign 4 .global sdk_ram_cal_tos_v60 .type sdk_ram_cal_tos_v60, @function sdk_ram_cal_tos_v60: @@ -2748,6 +2774,7 @@ sdk_ram_cal_tos_v60: .balign 4 # Function @ .irom0.text+0x18fc + .balign 4 .global sdk_ram_get_bb_atten .type sdk_ram_get_bb_atten, @function sdk_ram_get_bb_atten: @@ -2799,6 +2826,7 @@ sdk_ram_get_bb_atten: # (local13): word @ -0x18 # (local14): word @ -0x14 # (local15): word[4] @ -0x10 + .balign 4 .global sdk_ram_rfcal_txcap .type sdk_ram_rfcal_txcap, @function sdk_ram_rfcal_txcap: @@ -3021,6 +3049,7 @@ sdk_ram_rfcal_txcap: # (local18): word @ -0x14 # (local19): word @ -0x10 # (local20): word[3] @ -0xc + .balign 4 .global sdk_ram_rfcal_pwrctrl .type sdk_ram_rfcal_pwrctrl, @function sdk_ram_rfcal_pwrctrl: @@ -3268,6 +3297,7 @@ sdk_ram_rfcal_pwrctrl: # (local19): word @ -0x14 # (local20): word @ -0x10 # (local21): word[3] @ -0xc + .balign 4 .global sdk_ram_rxiq_get_mis .type sdk_ram_rxiq_get_mis, @function sdk_ram_rxiq_get_mis: @@ -3478,6 +3508,7 @@ sdk_ram_rxiq_get_mis: # (local17): word @ -0xc # (local18): word @ -0x8 # (local19): word @ -0x4 + .balign 4 .global sdk_ram_rxiq_cover_mg_mp .type sdk_ram_rxiq_cover_mg_mp, @function sdk_ram_rxiq_cover_mg_mp: @@ -3672,6 +3703,7 @@ sdk_ram_rxiq_cover_mg_mp: # (local19): word @ -0xc # (local20): word @ -0x8 # (local21): word @ -0x4 + .balign 4 .global sdk_ram_rfcal_rxiq .type sdk_ram_rfcal_rxiq, @function sdk_ram_rfcal_rxiq: @@ -3901,6 +3933,7 @@ sdk_ram_rfcal_rxiq: # Function @ .irom0.text+0x2320 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_dpd_scale_set .type sdk_dpd_scale_set, @function sdk_dpd_scale_set: @@ -3938,6 +3971,7 @@ sdk_dpd_scale_set: # (local1): word @ -0xc # (local2): word @ -0x8 # (local3): word @ -0x4 + .balign 4 .global sdk_dpd_mem_write .type sdk_dpd_mem_write, @function sdk_dpd_mem_write: @@ -4036,6 +4070,7 @@ sdk_dpd_mem_write: # (local19): word @ -0x10 # (local20): word @ -0xc # (local21): word[2] @ -0x8 + .balign 4 .global sdk_dpd_init .type sdk_dpd_init, @function sdk_dpd_init: diff --git a/binary_sdk/libphy/phy_chip_v6_cal.o b/binary_sdk/libphy/phy_chip_v6_cal.o new file mode 100644 index 0000000..3574f58 Binary files /dev/null and b/binary_sdk/libphy/phy_chip_v6_cal.o differ diff --git a/binary_sdk/libphy/phy_chip_v6_unused.S b/binary_sdk/libphy/phy_chip_v6_unused.S index 19471dd..bda3c9e 100644 --- a/binary_sdk/libphy/phy_chip_v6_unused.S +++ b/binary_sdk/libphy/phy_chip_v6_unused.S @@ -2,6 +2,8 @@ .section .irom0.text, "ax", @progbits # Function @ .irom0.text+0x0 + .balign 4 + .literal_position .global sdk_chip_v6_set_sense .type sdk_chip_v6_set_sense, @function sdk_chip_v6_set_sense: @@ -9,6 +11,7 @@ sdk_chip_v6_set_sense: .balign 4 # Function @ .irom0.text+0x4 + .balign 4 .global sdk_chip_v6_get_sense .type sdk_chip_v6_get_sense, @function sdk_chip_v6_get_sense: @@ -16,6 +19,7 @@ sdk_chip_v6_get_sense: .balign 4 # Function @ .irom0.text+0x8 + .balign 4 .global sdk_chip_v6_unset_chanfreq .type sdk_chip_v6_unset_chanfreq, @function sdk_chip_v6_unset_chanfreq: @@ -41,6 +45,7 @@ sdk_chip_v6_unset_chanfreq: # (local4): word @ -0x10 # (local5): word @ -0xc # (local6): word[2] @ -0x8 + .balign 4 .global sdk_data_collect .type sdk_data_collect, @function sdk_data_collect: @@ -142,6 +147,7 @@ sdk_data_collect: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .global sdk_operation_test .type sdk_operation_test, @function sdk_operation_test: @@ -193,6 +199,7 @@ sdk_operation_test: .literal_position # 198: 00060060 # Function @ .irom0.text+0x19c + .balign 4 .global sdk_slop_wdt_feed .type sdk_slop_wdt_feed, @function sdk_slop_wdt_feed: @@ -223,6 +230,7 @@ sdk_slop_wdt_feed: # (local2): word @ -0x18 # (local3): word @ -0x14 # (local4): word[4] @ -0x10 + .balign 4 .global sdk_slop_test .type sdk_slop_test, @function sdk_slop_test: @@ -309,6 +317,7 @@ sdk_slop_test: # Function @ .irom0.text+0x2b4 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_wd_reset_cnt .type sdk_wd_reset_cnt, @function sdk_wd_reset_cnt: diff --git a/binary_sdk/libphy/phy_chip_v6_unused.o b/binary_sdk/libphy/phy_chip_v6_unused.o new file mode 100644 index 0000000..07eb826 Binary files /dev/null and b/binary_sdk/libphy/phy_chip_v6_unused.o differ diff --git a/binary_sdk/libphy/phy_sleep.S b/binary_sdk/libphy/phy_sleep.S index f56bb4b..8bd06be 100644 --- a/binary_sdk/libphy/phy_sleep.S +++ b/binary_sdk/libphy/phy_sleep.S @@ -14,6 +14,7 @@ # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .global sdk_pm_rtc_clock_cali .type sdk_pm_rtc_clock_cali, @function sdk_pm_rtc_clock_cali: @@ -87,6 +88,7 @@ sdk_pm_rtc_clock_cali: .literal_position # d4: 00feef3f # Function @ .text+0xd8 + .balign 4 .global sdk_clockgate_watchdog .type sdk_clockgate_watchdog, @function sdk_clockgate_watchdog: @@ -143,6 +145,7 @@ sdk_hardware_reject: # Function @ .irom0.text+0x10 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_pm_usec2rtc .type sdk_pm_usec2rtc, @function sdk_pm_usec2rtc: @@ -167,6 +170,7 @@ sdk_pm_usec2rtc: ret # 42: 0df0 # Function @ .irom0.text+0x44 + .balign 4 .global sdk_pm_rtc2usec .type sdk_pm_rtc2usec, @function sdk_pm_rtc2usec: @@ -179,6 +183,7 @@ sdk_pm_rtc2usec: # 54: 88130000 # Function @ .irom0.text+0x58 + .balign 4 .global sdk_pm_set_sleep_cycles .type sdk_pm_set_sleep_cycles, @function sdk_pm_set_sleep_cycles: @@ -214,6 +219,7 @@ sdk_pm_set_sleep_cycles: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_pm_sleep_opt .type sdk_pm_sleep_opt, @function sdk_pm_sleep_opt: @@ -310,6 +316,7 @@ sdk_pm_sleep_opt: .literal_position # 1a0: 00060060 # Function @ .irom0.text+0x1a4 + .balign 4 .global sdk_pm_wakeup_opt .type sdk_pm_wakeup_opt, @function sdk_pm_wakeup_opt: @@ -336,6 +343,7 @@ sdk_pm_wakeup_opt: # 1e0: 00feef3f # Function @ .irom0.text+0x1e4 + .balign 4 .global sdk_get_chip_version .type sdk_get_chip_version, @function sdk_get_chip_version: @@ -368,6 +376,7 @@ sdk_get_chip_version: # Function @ .irom0.text+0x230 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_pm_sleep_opt_bb_off .type sdk_pm_sleep_opt_bb_off, @function sdk_pm_sleep_opt_bb_off: @@ -404,6 +413,7 @@ sdk_pm_sleep_opt_bb_off: # Function @ .irom0.text+0x280 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_pm_sleep_opt_bb_on .type sdk_pm_sleep_opt_bb_on, @function sdk_pm_sleep_opt_bb_on: @@ -441,6 +451,7 @@ sdk_pm_sleep_opt_bb_on: # Function @ .irom0.text+0x2d4 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_pm_set_pll_xtal_wait_time .type sdk_pm_set_pll_xtal_wait_time, @function sdk_pm_set_pll_xtal_wait_time: @@ -474,6 +485,7 @@ sdk_pm_set_pll_xtal_wait_time: # 320: 00060060 # Function @ .irom0.text+0x324 + .balign 4 .global sdk_pm_prepare_to_sleep .type sdk_pm_prepare_to_sleep, @function sdk_pm_prepare_to_sleep: @@ -496,6 +508,7 @@ sdk_pm_prepare_to_sleep: # 354: 000a0060 # Function @ .irom0.text+0x358 + .balign 4 .global sdk_pm_sdio_nidle .type sdk_pm_sdio_nidle, @function sdk_pm_sdio_nidle: @@ -550,6 +563,7 @@ sdk_pm_sdio_nidle: # Function @ .irom0.text+0x3e4 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_pm_goto_sleep .type sdk_pm_goto_sleep, @function sdk_pm_goto_sleep: @@ -602,6 +616,7 @@ sdk_pm_goto_sleep: # 464: 00060060 # Function @ .irom0.text+0x468 + .balign 4 .global sdk_pm_wait4wakeup .type sdk_pm_wait4wakeup, @function sdk_pm_wait4wakeup: @@ -633,6 +648,7 @@ sdk_pm_wait4wakeup: # 4b0: fffffcff # Function @ .irom0.text+0x4b4 + .balign 4 .global sdk_pm_open_rf .type sdk_pm_open_rf, @function sdk_pm_open_rf: @@ -669,6 +685,7 @@ sdk_pm_open_rf: # 514: ffffff7f # Function @ .irom0.text+0x518 + .balign 4 .global sdk_pm_sleep_set_mac .type sdk_pm_sleep_set_mac, @function sdk_pm_sleep_set_mac: @@ -730,6 +747,7 @@ sdk_pm_sleep_set_mac: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_pm_set_wakeup_mac .type sdk_pm_set_wakeup_mac, @function sdk_pm_set_wakeup_mac: @@ -798,6 +816,7 @@ sdk_pm_set_wakeup_mac: # (local2): word @ -0x18 # (local3): word @ -0x14 # (local4): word[4] @ -0x10 + .balign 4 .global sdk_pm_check_mac_idle .type sdk_pm_check_mac_idle, @function sdk_pm_check_mac_idle: @@ -847,6 +866,7 @@ sdk_pm_check_mac_idle: # Function @ .irom0.text+0x6d4 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_pm_set_sleep_btco .type sdk_pm_set_sleep_btco, @function sdk_pm_set_sleep_btco: @@ -925,6 +945,7 @@ sdk_pm_set_sleep_btco: # Function @ .irom0.text+0x79c # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_pm_set_wakeup_btco .type sdk_pm_set_wakeup_btco, @function sdk_pm_set_wakeup_btco: @@ -1049,6 +1070,7 @@ sdk_pm_set_wakeup_btco: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_pm_set_sleep_mode .type sdk_pm_set_sleep_mode, @function sdk_pm_set_sleep_mode: @@ -1128,6 +1150,7 @@ sdk_pm_set_sleep_mode: # 9b0: 30330040 # Function @ .irom0.text+0x9b4 + .balign 4 .global sdk_pm_unmask_bt .type sdk_pm_unmask_bt, @function sdk_pm_unmask_bt: @@ -1202,6 +1225,7 @@ sdk_pm_unmask_bt: # (local1): word @ -0xc # (local2): word @ -0x8 # (local3): word @ -0x4 + .balign 4 .global sdk_pm_wakeup_init .type sdk_pm_wakeup_init, @function sdk_pm_wakeup_init: @@ -1393,6 +1417,7 @@ sdk_pm_wakeup_init: .literal_position # c88: 00060060 # Function @ .irom0.text+0xc8c + .balign 4 .global sdk_sleep_opt_8266 .type sdk_sleep_opt_8266, @function sdk_sleep_opt_8266: @@ -1414,6 +1439,7 @@ sdk_sleep_opt_8266: # Function @ .irom0.text+0xcb4 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_sleep_opt_bb_on_8266 .type sdk_sleep_opt_bb_on_8266, @function sdk_sleep_opt_bb_on_8266: @@ -1447,6 +1473,7 @@ sdk_sleep_opt_bb_on_8266: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_sleep_reset_analog_rtcreg_8266 .type sdk_sleep_reset_analog_rtcreg_8266, @function sdk_sleep_reset_analog_rtcreg_8266: diff --git a/binary_sdk/libphy/phy_sleep.o b/binary_sdk/libphy/phy_sleep.o new file mode 100644 index 0000000..c195729 Binary files /dev/null and b/binary_sdk/libphy/phy_sleep.o differ diff --git a/binary_sdk/libphy_stage1/ate_test.S b/binary_sdk/libphy_stage1/ate_test.S new file mode 100644 index 0000000..e69de29 diff --git a/binary_sdk/libphy_stage1/phy.S b/binary_sdk/libphy_stage1/phy.S new file mode 100644 index 0000000..238530f --- /dev/null +++ b/binary_sdk/libphy_stage1/phy.S @@ -0,0 +1,248 @@ + + .section .text, "ax", @progbits + + .literal_position # 0: 00000000 + # 4: 00000000 + +# Function @ .text+0x8 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global register_phy_ops + .type register_phy_ops, @function +register_phy_ops: + movi a3, 0 /* 0x00000000 */ # 8: 0c03 + addi sp, sp, -16 /* (local0) */ # a: 12c1f0 + mov a5, a2 /* arg0 */ # d: 5d02 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # f: 0901 + movi a0, .Ldata001 # 11: 01fbff + movi a2, 1 /* 0x00000001 */ # 14: 0c12 + s32i a5, a0, 0 /* arg0 -> [.Ldata001] */ # 16: 5900 + call0 phy_init # 18: 01fbffc0 + # 1c: 0000 + l32i a0, sp, 0 /* [(local0)] */ # 1e: 0801 + addi sp, sp, 16 /* (top of frame) */ # 20: 12c110 + ret # 23: 0df0 + + .literal_position # 28: 00000000 + +# Function @ .text+0x2c +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global phy_change_channel + .type phy_change_channel, @function +phy_change_channel: + addi sp, sp, -16 /* (local0) */ # 2c: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 2f: 0901 + movi a0, .Ldata001 # 31: 01fdff + l32i a0, a0, 0 /* [.Ldata001] */ # 34: 0800 + l32i a0, a0, 4 /* [[.Ldata001]+0x4] */ # 36: 0810 + callx0 a0 /* [[.Ldata001]+0x4] */ # 38: c00000 + movi a2, 0 /* 0x00000000 */ # 3b: 0c02 + l32i a0, sp, 0 /* [(local0)] */ # 3d: 0801 + addi sp, sp, 16 /* (top of frame) */ # 3f: 12c110 + ret /* 0x00000000 */ # 42: 0df0 + + .literal_position # 44: 000af23f + +# Function @ .text+0x48 + .balign 4 + .global phy_get_mactime + .type phy_get_mactime, @function +phy_get_mactime: + movi a2, 0x3ff20a00 # 48: 21ffff + memw # 4b: c02000 + l32i a2, a2, 0x200 /* [0x3ff20c00] */ # 4e: 222280 + ret /* [0x3ff20c00] */ # 51: 0df0 + + .section .bss, "aw", @nobits + +.Ldata001: .word 0x00000000 # 0: 00000000 + + .section .irom0.text, "ax", @progbits + + .literal_position # 0: 00000000 + +# Function @ .irom0.text+0x4 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global rf_init + .type rf_init, @function +rf_init: addi sp, sp, -16 /* (local0) */ # 4: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 7: 0901 + movi a0, .Ldata001 # 9: 01fdff + l32i a0, a0, 0 /* [.Ldata001] */ # c: 0800 + slli a4, a2, 24 # e: 804201 + l32i a0, a0, 0 /* [[.Ldata001]] */ # 11: 0800 + srai a2, a4, 24 # 13: 402831 + callx0 a0 /* [[.Ldata001]] */ # 16: c00000 + l32i a0, sp, 0 /* [(local0)] */ # 19: 0801 + addi sp, sp, 16 /* (top of frame) */ # 1b: 12c110 + ret # 1e: 0df0 + + .literal_position # 20: 00000000 + +# Function @ .irom0.text+0x24 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global bb_init + .type bb_init, @function +bb_init: addi sp, sp, -16 /* (local0) */ # 24: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 27: 0901 + movi a0, .Ldata001 # 29: 01fdff + l32i a0, a0, 0 /* [.Ldata001] */ # 2c: 0800 + l32i a0, a0, 24 /* [[.Ldata001]+0x18] */ # 2e: 0860 + callx0 a0 /* [[.Ldata001]+0x18] */ # 30: c00000 + l32i a0, sp, 0 /* [(local0)] */ # 33: 0801 + addi sp, sp, 16 /* (top of frame) */ # 35: 12c110 + ret # 38: 0df0 + + .literal_position # 3c: 00000000 + # 40: 00000000 + +# Function @ .irom0.text+0x44 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global phy_init + .type phy_init, @function +phy_init: addi sp, sp, -16 /* (local0) */ # 44: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 47: c911 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 49: 0901 + mov a12, a3 /* arg1 */ # 4b: cd03 + movi a0, .Ldata001 # 4d: 01fbff + slli a3, a2, 24 # 50: 803201 + l32i a0, a0, 0 /* [.Ldata001] */ # 53: 0800 + srai a2, a3, 24 # 55: 302831 + l32i a0, a0, 0 /* [[.Ldata001]] */ # 58: 0800 + mov a3, a12 /* arg1 */ # 5a: 3d0c + callx0 a0 /* [[.Ldata001]] */ # 5c: c00000 + movi a0, .Ldata001 # 5f: 01f8ff + l32i a0, a0, 0 /* [.Ldata001] */ # 62: 0800 + l32i a0, a0, 24 /* [[.Ldata001]+0x18] */ # 64: 0860 + mov a2, a12 /* arg1 */ # 66: 2d0c + callx0 a0 /* [[.Ldata001]+0x18] */ # 68: c00000 + l32i a12, sp, 4 /* [(local1)] */ # 6b: c811 + l32i a0, sp, 0 /* [(local0)] */ # 6d: 0801 + addi sp, sp, 16 /* (top of frame) */ # 6f: 12c110 + ret # 72: 0df0 + + .literal_position # 74: 00000000 + +# Function @ .irom0.text+0x78 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global RFChannelSel + .type RFChannelSel, @function +RFChannelSel: + addi sp, sp, -16 /* (local0) */ # 78: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 7b: 0901 + movi a0, .Ldata001 # 7d: 01fdff + l32i a0, a0, 0 /* [.Ldata001] */ # 80: 0800 + slli a3, a2, 24 # 82: 803201 + l32i a0, a0, 8 /* [[.Ldata001]+0x8] */ # 85: 0820 + srai a2, a3, 24 # 87: 302831 + callx0 a0 /* [[.Ldata001]+0x8] */ # 8a: c00000 + l32i a0, sp, 0 /* [(local0)] */ # 8d: 0801 + addi sp, sp, 16 /* (top of frame) */ # 8f: 12c110 + ret # 92: 0df0 + + .literal_position # 94: 00000000 + +# Function @ .irom0.text+0x98 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global phy_delete_channel + .type phy_delete_channel, @function +phy_delete_channel: + addi sp, sp, -16 /* (local0) */ # 98: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 9b: 0901 + movi a0, .Ldata001 # 9d: 01fdff + l32i a0, a0, 0 /* [.Ldata001] */ # a0: 0800 + l32i a0, a0, 12 /* [[.Ldata001]+0xc] */ # a2: 0830 + callx0 a0 /* [[.Ldata001]+0xc] */ # a4: c00000 + l32i a0, sp, 0 /* [(local0)] */ # a7: 0801 + addi sp, sp, 16 /* (top of frame) */ # a9: 12c110 + ret # ac: 0df0 + + .literal_position # b0: 00000000 + +# Function @ .irom0.text+0xb4 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global phy_enable_agc + .type phy_enable_agc, @function +phy_enable_agc: + addi sp, sp, -16 /* (local0) */ # b4: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # b7: 0901 + movi a0, .Ldata001 # b9: 01fdff + l32i a0, a0, 0 /* [.Ldata001] */ # bc: 0800 + l32i a0, a0, 16 /* [[.Ldata001]+0x10] */ # be: 0840 + callx0 a0 /* [[.Ldata001]+0x10] */ # c0: c00000 + l32i a0, sp, 0 /* [(local0)] */ # c3: 0801 + addi sp, sp, 16 /* (top of frame) */ # c5: 12c110 + ret # c8: 0df0 + + .literal_position # cc: 00000000 + +# Function @ .irom0.text+0xd0 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global phy_disable_agc + .type phy_disable_agc, @function +phy_disable_agc: + addi sp, sp, -16 /* (local0) */ # d0: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # d3: 0901 + movi a0, .Ldata001 # d5: 01fdff + l32i a0, a0, 0 /* [.Ldata001] */ # d8: 0800 + l32i a0, a0, 20 /* [[.Ldata001]+0x14] */ # da: 0850 + callx0 a0 /* [[.Ldata001]+0x14] */ # dc: c00000 + l32i a0, sp, 0 /* [(local0)] */ # df: 0801 + addi sp, sp, 16 /* (top of frame) */ # e1: 12c110 + ret # e4: 0df0 + + .literal_position # e8: 00000000 + +# Function @ .irom0.text+0xec +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global phy_initialize_bb + .type phy_initialize_bb, @function +phy_initialize_bb: + addi sp, sp, -16 /* (local0) */ # ec: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # ef: 0901 + movi a0, .Ldata001 # f1: 01fdff + l32i a0, a0, 0 /* [.Ldata001] */ # f4: 0800 + l32i a0, a0, 24 /* [[.Ldata001]+0x18] */ # f6: 0860 + callx0 a0 /* [[.Ldata001]+0x18] */ # f8: c00000 + l32i a0, sp, 0 /* [(local0)] */ # fb: 0801 + addi sp, sp, 16 /* (top of frame) */ # fd: 12c110 + ret # 100: 0df0 + + .literal_position # 104: 00000000 + +# Function @ .irom0.text+0x108 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global phy_set_sense + .type phy_set_sense, @function +phy_set_sense: + addi sp, sp, -16 /* (local0) */ # 108: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 10b: 0901 + movi a0, .Ldata001 # 10d: 01fdff + l32i a0, a0, 0 /* [.Ldata001] */ # 110: 0800 + l32i a0, a0, 28 /* [[.Ldata001]+0x1c] */ # 112: 0870 + callx0 a0 /* [[.Ldata001]+0x1c] */ # 114: c00000 + l32i a0, sp, 0 /* [(local0)] */ # 117: 0801 + addi sp, sp, 16 /* (top of frame) */ # 119: 12c110 + ret # 11c: 0df0 diff --git a/binary_sdk/libphy_stage1/phy_chip_v5_ana_romfunc.S b/binary_sdk/libphy_stage1/phy_chip_v5_ana_romfunc.S new file mode 100644 index 0000000..6e3fa68 --- /dev/null +++ b/binary_sdk/libphy_stage1/phy_chip_v5_ana_romfunc.S @@ -0,0 +1,1915 @@ + + .section .irom0.text, "ax", @progbits + + .literal_position # 0: 00000000 + +# Function @ .irom0.text+0x4 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word[4] @ -0x10 + .balign 4 + .global rom_ana_inf_gating_en + .type rom_ana_inf_gating_en, @function +rom_ana_inf_gating_en: + addi sp, sp, -32 /* (local0) */ # 4: 12c1e0 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 7: 0911 + s32i a3, sp, 0 /* arg1 -> [(local0)] */ # 9: 3901 + s32i a12, sp, 8 /* a12 -> [(local2)] */ # b: c921 + s32i a13, sp, 12 /* a13 -> [(local3)] */ # d: d931 + s32i a14, sp, 16 /* a14 -> [(local4)] */ # f: e941 + mov a13, a2 /* arg0 */ # 11: dd02 + mov a14, a4 /* arg2 */ # 13: ed04 + movi a12, g_phyFuns # 15: c1faff + beqz a2, .Lbr001 # 18: 16220f + movi a2, 119 /* 0x00000077 */ # 1b: 22a077 + movi a3, 0 /* 0x00000000 */ # 1e: 0c03 + movi a4, 28 /* 0x0000001c */ # 20: 1cc4 + movi a5, 0 /* 0x00000000 */ # 22: 0c05 + l32i a0, a12, 0 /* [g_phyFuns] */ # 24: 080c + movi a6, 0 /* 0x00000000 */ # 26: 0c06 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 28: 022027 + movi a7, 0 /* 0x00000000 */ # 2b: 0c07 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 2d: c00000 + movi a2, 119 /* 0x00000077 */ # 30: 22a077 + movi a3, 0 /* 0x00000000 */ # 33: 0c03 + movi a4, 26 /* 0x0000001a */ # 35: 1ca4 + movi a5, 4 /* 0x00000004 */ # 37: 0c45 + l32i a0, a12, 0 /* [g_phyFuns] */ # 39: 080c + movi a6, 4 /* 0x00000004 */ # 3b: 0c46 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 3d: 022027 + movi a7, 0 /* 0x00000000 */ # 40: 0c07 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 42: c00000 + movi a2, 119 /* 0x00000077 */ # 45: 22a077 + movi a3, 0 /* 0x00000000 */ # 48: 0c03 + movi a4, 26 /* 0x0000001a */ # 4a: 1ca4 + movi a5, 4 /* 0x00000004 */ # 4c: 0c45 + l32i a0, a12, 0 /* [g_phyFuns] */ # 4e: 080c + movi a6, 4 /* 0x00000004 */ # 50: 0c46 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 52: 022027 + movi a7, 1 /* 0x00000001 */ # 55: 0c17 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 57: c00000 + movi a2, 119 /* 0x00000077 */ # 5a: 22a077 + movi a3, 0 /* 0x00000000 */ # 5d: 0c03 + movi a4, 26 /* 0x0000001a */ # 5f: 1ca4 + movi a5, 5 /* 0x00000005 */ # 61: 0c55 + l32i a0, a12, 0 /* [g_phyFuns] */ # 63: 080c + movi a6, 5 /* 0x00000005 */ # 65: 0c56 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 67: 022027 + movi a7, 0 /* 0x00000000 */ # 6a: 0c07 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 6c: c00000 + movi a2, 119 /* 0x00000077 */ # 6f: 22a077 + movi a3, 0 /* 0x00000000 */ # 72: 0c03 + movi a4, 26 /* 0x0000001a */ # 74: 1ca4 + movi a5, 5 /* 0x00000005 */ # 76: 0c55 + l32i a0, a12, 0 /* [g_phyFuns] */ # 78: 080c + movi a6, 5 /* 0x00000005 */ # 7a: 0c56 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 7c: 022027 + movi a7, 1 /* 0x00000001 */ # 7f: 0c17 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 81: c00000 + movi a2, 119 /* 0x00000077 */ # 84: 22a077 + movi a3, 0 /* 0x00000000 */ # 87: 0c03 + movi a4, 0 /* 0x00000000 */ # 89: 0c04 + movi a5, 7 /* 0x00000007 */ # 8b: 0c75 + movi a6, 0 /* 0x00000000 */ # 8d: 0c06 + l32i a0, a12, 0 /* [g_phyFuns] */ # 8f: 080c + l32i a7, sp, 0 /* [(local0)] */ # 91: 7801 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 93: 022027 + extui a7, a7, 12, 8 # 96: 707c74 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 99: c00000 + movi a2, 119 /* 0x00000077 */ # 9c: 22a077 + movi a3, 0 /* 0x00000000 */ # 9f: 0c03 + movi a4, 1 /* 0x00000001 */ # a1: 0c14 + movi a5, 7 /* 0x00000007 */ # a3: 0c75 + movi a6, 0 /* 0x00000000 */ # a5: 0c06 + l32i a0, a12, 0 /* [g_phyFuns] */ # a7: 080c + l32i a7, sp, 0 /* [(local0)] */ # a9: 7801 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # ab: 022027 + extui a7, a7, 4, 8 # ae: 707474 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # b1: c00000 + movi a2, 119 /* 0x00000077 */ # b4: 22a077 + movi a3, 0 /* 0x00000000 */ # b7: 0c03 + movi a4, 2 /* 0x00000002 */ # b9: 0c24 + movi a5, 3 /* 0x00000003 */ # bb: 0c35 + movi a6, 0 /* 0x00000000 */ # bd: 0c06 + l32i a0, a12, 0 /* [g_phyFuns] */ # bf: 080c + l32i a7, sp, 0 /* [(local0)] */ # c1: 7801 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # c3: 022027 + extui a7, a7, 0, 4 # c6: 707034 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # c9: c00000 + movi a2, 119 /* 0x00000077 */ # cc: 22a077 + movi a3, 0 /* 0x00000000 */ # cf: 0c03 + movi a4, 4 /* 0x00000004 */ # d1: 0c44 + movi a5, 7 /* 0x00000007 */ # d3: 0c75 + l32i a0, a12, 0 /* [g_phyFuns] */ # d5: 080c + movi a6, 0 /* 0x00000000 */ # d7: 0c06 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # d9: 022027 + extui a7, a14, 0, 8 # dc: e07074 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # df: c00000 + movi a2, 119 /* 0x00000077 */ # e2: 22a077 + movi a3, 0 /* 0x00000000 */ # e5: 0c03 + movi a4, 3 /* 0x00000003 */ # e7: 0c34 + movi a5, 7 /* 0x00000007 */ # e9: 0c75 + l32i a0, a12, 0 /* [g_phyFuns] */ # eb: 080c + movi a6, 0 /* 0x00000000 */ # ed: 0c06 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # ef: 022027 + extui a7, a14, 8, 8 # f2: e07874 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # f5: c00000 + extui a7, a14, 16, 4 # f8: e07035 + movi a2, 119 /* 0x00000077 */ # fb: 22a077 + movi a3, 0 /* 0x00000000 */ # fe: 0c03 + movi a4, 2 /* 0x00000002 */ # 100: 0c24 + l32i a0, a12, 0 /* [g_phyFuns] */ # 102: 080c + movi a5, 7 /* 0x00000007 */ # 104: 0c75 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 106: 022027 + movi a6, 4 /* 0x00000004 */ # 109: 0c46 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 10b: c00000 +.Lbr001: movi a4, 15 /* 0x0000000f */ # 10e: 0cf4 + movi a5, 3 /* 0x00000003 */ # 110: 0c35 + movi a6, 3 /* 0x00000003 */ # 112: 0c36 + extui a3, a13, 0, 1 # 114: d03004 + movi a2, 1 /* 0x00000001 */ # 117: 0c12 + l32i a0, a12, 0 /* [g_phyFuns] */ # 119: 080c + movi a14, 0 /* 0x00000000 */ # 11b: 0c0e + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 11d: 022027 + moveqz a14, a2, a3 # 120: 30e283 + mov a7, a14 # 123: 7d0e + movi a2, 119 /* 0x00000077 */ # 125: 22a077 + movi a3, 0 /* 0x00000000 */ # 128: 0c03 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 12a: c00000 + mov a7, a14 # 12d: 7d0e + movi a2, 119 /* 0x00000077 */ # 12f: 22a077 + movi a3, 0 /* 0x00000000 */ # 132: 0c03 + movi a4, 24 /* 0x00000018 */ # 134: 1c84 + l32i a0, a12, 0 /* [g_phyFuns] */ # 136: 080c + movi a5, 0 /* 0x00000000 */ # 138: 0c05 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 13a: 022027 + movi a6, 0 /* 0x00000000 */ # 13d: 0c06 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 13f: c00000 + mov a7, a13 /* arg0 */ # 142: 7d0d + movi a2, 119 /* 0x00000077 */ # 144: 22a077 + movi a3, 0 /* 0x00000000 */ # 147: 0c03 + movi a4, 28 /* 0x0000001c */ # 149: 1cc4 + l32i a0, a12, 0 /* [g_phyFuns] */ # 14b: 080c + movi a5, 0 /* 0x00000000 */ # 14d: 0c05 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 14f: 022027 + movi a6, 0 /* 0x00000000 */ # 152: 0c06 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 154: c00000 + l32i a12, sp, 8 /* [(local2)] */ # 157: c821 + l32i a13, sp, 12 /* [(local3)] */ # 159: d831 + l32i a14, sp, 16 /* [(local4)] */ # 15b: e841 + l32i a0, sp, 4 /* [(local1)] */ # 15d: 0811 + addi sp, sp, 32 /* (top of frame) */ # 15f: 12c120 + ret # 162: 0df0 + + .literal_position # 164: 00000000 + # 168: fe010000 + # 16c: b4090000 + # 170: 62020000 + # 174: 00000000 + # 178: 00000000 + # 17c: 6c090000 + # 180: a8090000 + # 184: a3090000 + # 188: 9e090000 + # 18c: 99090000 + # 190: 94090000 + # 194: 8f090000 + # 198: 8a090000 + # 19c: 85090000 + # 1a0: 80090000 + # 1a4: 7b090000 + # 1a8: 76090000 + # 1ac: 71090000 + # 1b0: c3030000 + # 1b4: 00000000 + +# Function @ .irom0.text+0x1b8 +# Local variables/stack: +# (local0): byte @ -0x30 +# (local1): byte @ -0x2f +# (local2): byte[2] @ -0x2e +# (local3): word @ -0x2c +# (local4): word @ -0x28 +# (local5): word @ -0x24 +# (local6): word @ -0x20 +# (local7): word @ -0x1c +# (local8): word @ -0x18 +# (local9): word @ -0x14 +# (local10): word @ -0x10 +# (local11): word[3] @ -0xc + .balign 4 + .global rom_set_channel_freq + .type rom_set_channel_freq, @function +rom_set_channel_freq: + addi sp, sp, -48 /* (local0) */ # 1b8: 12c1d0 + s32i a12, sp, 20 /* a12 -> [(local7)] */ # 1bb: c951 + s32i a3, sp, 12 /* arg1 -> [(local5)] */ # 1bd: 3931 + s32i a6, sp, 8 /* arg4 -> [(local4)] */ # 1bf: 6921 + s32i a7, sp, 32 /* arg5 -> [(local10)] */ # 1c1: 7981 + s32i a5, sp, 4 /* arg3 -> [(local3)] */ # 1c3: 5911 + s32i a0, sp, 16 /* a0 -> [(local6)] */ # 1c5: 0941 + s32i a13, sp, 24 /* a13 -> [(local8)] */ # 1c7: d961 + s32i a14, sp, 28 /* a14 -> [(local9)] */ # 1c9: e971 + mov a13, a2 /* arg0 */ # 1cb: dd02 + blti a2, 1, .Lbr002 # 1cd: a6120c + movi a0, 13 /* 0x0000000d */ # 1d0: 0cd0 + blt a0, a2, .Lbr002 # 1d2: 272007 + addi a14, a2, -1 /* arg0-0x1 */ # 1d5: 0be2 + extui a14, a14, 0, 8 # 1d7: e0e074 + j .Lbr003 # 1da: 460000 +.Lbr002: movi a14, 13 /* 0x0000000d */ # 1dd: 0cde +.Lbr003: movi a12, g_phyFuns # 1df: c1e1ff + l32i a0, a12, 0 /* [g_phyFuns] */ # 1e2: 080c + l32i a0, a0, 220 /* [[g_phyFuns]+0xdc] */ # 1e4: 022037 + s32i a4, sp, 36 /* arg2 -> [(local11)] */ # 1e7: 4991 + callx0 a0 /* [[g_phyFuns]+0xdc] */ # 1e9: c00000 + l32i a0, sp, 36 /* [(local11)] */ # 1ec: 0891 + movi a2, 14 /* 0x0000000e */ # 1ee: 0ce2 + bgeu a13, a2, .Lbr004 # 1f0: 27bd34 + movi a4, .Lfunc001 # 1f3: 41ddff + addx2 a3, a13, a13 # 1f6: d03d90 + add a3, a3, a4 # 1f9: 4a33 + jx a3 # 1fb: a00300 +.Lfunc001: j .Lbr004 # 1fe: 860900 + j .Lbr016 # 201: 465300 + j .Lbr028 # 204: 866400 + j .Lbr027 # 207: 466200 + j .Lbr026 # 20a: 066000 + j .Lbr025 # 20d: c65d00 + j .Lbr024 # 210: 865b00 + j .Lbr023 # 213: 465900 + j .Lbr022 # 216: 065700 + j .Lbr021 # 219: c65400 + j .Lbr020 # 21c: 865200 + j .Lbr019 # 21f: 465000 + j .Lbr018 # 222: 064e00 + j .Lbr017 # 225: c64b00 +.Lbr004: movi a12, 0x000009b4 # 228: c1d1ff +.Lbr005: addx2 a4, a14, a0 # 22b: 004e90 + l16si a4, a4, 0 # 22e: 429400 + ssr a14 # 231: 000e40 + bnez a4, .Lbr007 # 234: 564405 + l32i a5, sp, 12 /* [(local5)] */ # 237: 5831 + movi a0, 59 /* 0x0000003b */ # 239: 3cb0 + beqz a5, .Lbr029 # 23b: 161516 + movi a6, 91 /* 0x0000005b */ # 23e: 5cb6 + movi a10, 93 /* 0x0000005d */ # 240: 5cda + movi a3, 94 /* 0x0000005e */ # 242: 5ce3 + movi a11, 118 /* 0x00000076 */ # 244: b2a076 + movi a14, -125 /* 0xffffff83 */ # 247: e2af83 + movi a4, -73 /* 0xffffffb7 */ # 24a: 42afb7 + movi a5, 92 /* 0x0000005c */ # 24d: 5cc5 + movi a7, 14 /* 0x0000000e */ # 24f: 0ce7 + bltu a13, a7, .Lbr006 # 251: 773d02 + j .Lbr013 # 254: 863300 +.Lbr006: movi a9, .Lfunc002 # 257: 91c6ff + addx2 a8, a13, a13 # 25a: d08d90 + add a8, a8, a9 # 25d: 9a88 + jx a8 # 25f: a00800 +.Lfunc002: j .Lbr013 # 262: 063000 + j .Lbr009 # 265: c62000 + j .Lbr014 # 268: 863200 + j .Lbr047 # 26b: c68200 + j .Lbr046 # 26e: 467f00 + j .Lbr045 # 271: 867b00 + j .Lbr015 # 274: 063300 + j .Lbr044 # 277: 067800 + j .Lbr042 # 27a: c67300 + j .Lbr041 # 27d: c66f00 + j .Lbr039 # 280: 466c00 + j .Lbr038 # 283: 066800 + j .Lbr037 # 286: 866400 + j .Lbr036 # 289: 066100 +.Lbr007: l32i a10, sp, 4 /* [(local3)] */ # 28c: a811 + l32i a13, sp, 8 /* [(local4)] */ # 28e: d821 + l32i a10, a10, 0 /* [[(local3)]] */ # 290: a80a + addx4 a13, a14, a13 # 292: d0dea0 + srl a10, a10 # 295: a0a091 + bbsi a10, 0, .Lbr008 # 298: 07ea3b + movi a0, g_phyFuns # 29b: 01b6ff + l32i a3, sp, 12 /* [(local5)] */ # 29e: 3831 + l32i a0, a0, 0 /* [g_phyFuns] */ # 2a0: 0800 + mov a2, a12 /* 0x000009b4 */ # 2a2: 2d0c + l32i a0, a0, 228 /* [[g_phyFuns]+0xe4] */ # 2a4: 022039 + mov a5, sp /* (local0) */ # 2a7: 5d01 + callx0 a0 /* [[g_phyFuns]+0xe4] */ # 2a9: c00000 + ssl a14 # 2ac: 001e40 + movi a4, 1 /* 0x00000001 */ # 2af: 0c14 + l32i a3, sp, 4 /* [(local3)] */ # 2b1: 3811 + l8ui a5, sp, 2 /* [(local2)] */ # 2b3: 520102 + l8ui a7, sp, 1 /* [(local1)] */ # 2b6: 720101 + l8ui a6, sp, 0 /* [(local0)] */ # 2b9: 620100 + slli a7, a7, 8 # 2bc: 807711 + slli a6, a6, 16 # 2bf: 006611 + or a6, a6, a7 # 2c2: 706620 + or a5, a5, a6 # 2c5: 605520 + s32i a5, a13, 0 # 2c8: 590d + l32i a2, a3, 0 /* [[(local3)]] */ # 2ca: 2803 + sll a4, a4 # 2cc: 0044a1 + or a2, a2, a4 # 2cf: 402220 + s32i a2, a3, 0 /* a2 -> [[(local3)]] */ # 2d2: 2903 + j .Lbr012 # 2d4: 060800 +.Lbr008: l32i a9, a13, 0 # 2d7: 980d + extui a9, a9, 16, 16 # 2d9: 9090f5 + s8i a9, sp, 0 /* a9 -> [(local0)] */ # 2dc: 924100 + l32i a8, a13, 0 # 2df: 880d + srli a8, a8, 8 # 2e1: 808841 + s8i a8, sp, 1 /* a8 -> [(local1)] */ # 2e4: 824101 + l32i a0, a13, 0 # 2e7: 080d + j .Lbr011 # 2e9: 060200 +.Lbr009: s8i a6, sp, 0 # 2ec: 624100 + movi a3, -79 # 2ef: 32afb1 +.Lbr010: s8i a3, sp, 1 # 2f2: 324101 +.Lbr011: s8i a0, sp, 2 /* a0 -> [(local2)] */ # 2f5: 024102 +.Lbr012: movi a14, g_phyFuns # 2f8: e1a0ff + l32i a0, a14, 0 /* [g_phyFuns] */ # 2fb: 080e + l32i a0, a0, 224 /* [[g_phyFuns]+0xe0] */ # 2fd: 022038 + mov a2, sp /* (local0) */ # 300: 2d01 + callx0 a0 /* [[g_phyFuns]+0xe0] */ # 302: c00000 + l32i a0, a14, 0 /* [g_phyFuns] */ # 305: 080e + l32i a0, a0, 216 /* [[g_phyFuns]+0xd8] */ # 307: 022036 + l32i a13, sp, 32 /* [(local10)] */ # 30a: d881 + callx0 a0 /* [[g_phyFuns]+0xd8] */ # 30c: c00000 + mov a2, a13 /* [(local10)] */ # 30f: 2d0d + call0 ets_delay_us # 311: 01a8ffc0 + # 315: 0000 + l32i a0, sp, 16 /* [(local6)] */ # 317: 0841 + l32i a13, sp, 24 /* [(local8)] */ # 319: d861 + mov a2, a12 /* 0x000009b4 */ # 31b: 2d0c + l32i a14, sp, 28 /* [(local9)] */ # 31d: e871 + l32i a12, sp, 20 /* [(local7)] */ # 31f: c851 + addi sp, sp, 48 /* (top of frame) */ # 321: 12c130 + ret /* 0x000009b4 */ # 324: 0df0 +.Lbr013: mov a0, a11 /* 0x00000076 */ # 326: 0d0b + movi a3, 95 /* 0x0000005f */ # 328: 5cf3 + movi a2, 98 /* 0x00000062 */ # 32a: 22a062 + s8i a2, sp, 1 /* 0x62 -> [(local1)] */ # 32d: 224101 + s8i a3, sp, 0 /* 0x5f -> [(local0)] */ # 330: 324100 + j .Lbr011 # 333: 86efff +.Lbr014: s8i a6, sp, 0 # 336: 624100 + movi a0, -33 # 339: 02afdf + movi a4, -14 # 33c: 7c24 + s8i a4, sp, 1 # 33e: 424101 + j .Lbr011 # 341: 06ecff +.Lbr015: s8i a5, sp, 0 # 344: 524100 + movi a0, 111 # 347: 02a06f + movi a6, -7 # 34a: 7c96 + s8i a6, sp, 1 # 34c: 624101 + j .Lbr011 # 34f: 86e8ff +.Lbr016: movi a12, None # 352: c18aff + j .Lbr005 # 355: 86b4ff +.Lbr017: movi a12, None # 358: c18aff + j .Lbr005 # 35b: 06b3ff +.Lbr018: movi a12, None # 35e: c189ff + j .Lbr005 # 361: 86b1ff +.Lbr019: movi a12, None # 364: c189ff + j .Lbr005 # 367: 06b0ff +.Lbr020: movi a12, None # 36a: c188ff + j .Lbr005 # 36d: 86aeff +.Lbr021: movi a12, None # 370: c188ff + j .Lbr005 # 373: 06adff +.Lbr022: movi a12, None # 376: c187ff + j .Lbr005 # 379: 86abff +.Lbr023: movi a12, None # 37c: c187ff + j .Lbr005 # 37f: 06aaff +.Lbr024: movi a12, None # 382: c186ff + j .Lbr005 # 385: 86a8ff +.Lbr025: movi a12, None # 388: c186ff + j .Lbr005 # 38b: 06a7ff +.Lbr026: movi a12, None # 38e: c185ff + j .Lbr005 # 391: 86a5ff +.Lbr027: movi a12, None # 394: c185ff + j .Lbr005 # 397: 06a4ff +.Lbr028: movi a12, None # 39a: c184ff + j .Lbr005 # 39d: 86a2ff +.Lbr029: movi a6, 17 /* 0x00000011 */ # 3a0: 1c16 + movi a10, -26 /* 0xffffffe6 */ # 3a2: 6c6a + movi a5, -69 /* 0xffffffbb */ # 3a4: 52afbb + movi a14, -111 /* 0xffffff91 */ # 3a7: e2af91 + movi a3, 102 /* 0x00000066 */ # 3aa: 32a066 + movi a7, 50 /* 0x00000032 */ # 3ad: 3c27 + movi a11, 49 /* 0x00000031 */ # 3af: 3c1b + movi a4, 48 /* 0x00000030 */ # 3b1: 3c04 + movi a8, 14 /* 0x0000000e */ # 3b3: 0ce8 + bgeu a13, a8, .Lbr030 # 3b5: 87bd34 + movi a2, .Lfunc003 # 3b8: 217eff + addx2 a9, a13, a13 # 3bb: d09d90 + add a9, a9, a2 # 3be: 2a99 + jx a9 # 3c0: a00900 +.Lfunc003: j .Lbr030 # 3c3: 860900 + j .Lbr034 # 3c6: 060f00 + j .Lbr031 # 3c9: c60900 + j .Lbr053 # 3cc: 463500 + j .Lbr054 # 3cf: 863500 + j .Lbr056 # 3d2: c63800 + j .Lbr032 # 3d5: 460800 + j .Lbr048 # 3d8: c62a00 + j .Lbr049 # 3db: 062b00 + j .Lbr055 # 3de: 063400 + j .Lbr050 # 3e1: 862a00 + j .Lbr051 # 3e4: c62b00 + j .Lbr052 # 3e7: 062c00 + j .Lbr033 # 3ea: 860500 +.Lbr030: mov a4, a7 /* 0x00000032 */ # 3ed: 4d07 + movi a6, -52 /* 0xffffffcc */ # 3ef: 62afcc + mov a14, a6 /* 0xffffffcc */ # 3f2: ed06 +.Lbr031: mov a5, a6 /* 0xffffffcc */ # 3f4: 5d06 + mov a0, a14 /* 0xffffffcc */ # 3f6: 0d0e + mov a11, a4 /* 0x00000032 */ # 3f8: bd04 +.Lbr032: mov a3, a5 /* 0xffffffcc */ # 3fa: 3d05 + mov a4, a11 /* 0x00000032 */ # 3fc: 4d0b + s8i a0, sp, 1 /* 0xcc -> [(local1)] */ # 3fe: 024101 + j .Lbr035 # 401: 060100 +.Lbr033: mov a4, a7 # 404: 4d07 +.Lbr034: s8i a3, sp, 1 # 406: 324101 +.Lbr035: mov a0, a3 /* 0xffffffcc */ # 409: 0d03 + s8i a4, sp, 0 /* 0x32 -> [(local0)] */ # 40b: 424100 + j .Lbr011 # 40e: c6b8ff +.Lbr036: s8i a3, sp, 0 # 411: 324100 + movi a0, -20 # 414: 6cc0 + movi a3, -60 # 416: 32afc4 + j .Lbr010 # 419: 46b5ff +.Lbr037: s8i a3, sp, 0 # 41c: 324100 + s8i a14, sp, 1 # 41f: e24101 + movi a0, 72 # 422: 4c80 + j .Lbr011 # 424: 46b3ff +.Lbr038: s8i a3, sp, 0 # 427: 324100 + movi a0, -92 # 42a: 02afa4 + movi a4, 65 # 42d: 4c14 + s8i a4, sp, 1 # 42f: 424101 + j .Lbr011 # 432: c6afff +.Lbr039: movi a0, 0 # 435: 0c00 + s8i a0, sp, 1 # 437: 024101 +.Lbr040: s8i a3, sp, 0 # 43a: 324100 + j .Lbr011 # 43d: 06adff +.Lbr041: mov a0, a6 # 440: 0d06 + mov a3, a10 # 442: 3d0a + movi a5, -66 # 444: 52afbe + s8i a5, sp, 1 # 447: 524101 + j .Lbr040 # 44a: 06fbff +.Lbr042: s8i a10, sp, 0 # 44d: a24100 + movi a0, 124 # 450: 02a07c +.Lbr043: s8i a0, sp, 1 # 453: 024101 + mov a0, a4 # 456: 0d04 + j .Lbr011 # 458: 46a6ff +.Lbr044: s8i a10, sp, 0 # 45b: a24100 + movi a4, 19 # 45e: 1c34 + j .Lbr043 # 460: c6fbff +.Lbr045: s8i a5, sp, 0 # 463: 524100 + s8i a4, sp, 1 # 466: 424101 + movi a0, -53 # 469: 02afcb + j .Lbr011 # 46c: 46a1ff +.Lbr046: s8i a5, sp, 0 # 46f: 524100 + s8i a11, sp, 1 # 472: b24101 + movi a0, 39 # 475: 2c70 + j .Lbr011 # 477: 869eff +.Lbr047: mov a0, a14 # 47a: 0d0e + s8i a5, sp, 0 # 47c: 524100 + movi a6, 52 # 47f: 3c46 + s8i a6, sp, 1 # 481: 624101 + j .Lbr011 # 484: 469bff +.Lbr048: mov a6, a3 # 487: 6d03 + mov a14, a6 # 489: ed06 +.Lbr049: mov a3, a6 # 48b: 3d06 + mov a10, a14 # 48d: ad0e +.Lbr050: mov a4, a11 # 48f: 4d0b + s8i a10, sp, 1 # 491: a24101 + j .Lbr035 # 494: 46dcff +.Lbr051: mov a5, a6 # 497: 5d06 + mov a0, a5 # 499: 0d05 +.Lbr052: mov a3, a5 # 49b: 3d05 + mov a4, a7 # 49d: 4d07 + s8i a0, sp, 1 # 49f: 024101 + j .Lbr035 # 4a2: c6d8ff +.Lbr053: mov a3, a5 # 4a5: 3d05 + mov a10, a3 # 4a7: ad03 +.Lbr054: mov a5, a3 # 4a9: 5d03 + mov a0, a10 # 4ab: 0d0a + mov a11, a4 # 4ad: bd04 + j .Lbr032 # 4af: c6d1ff +.Lbr055: mov a3, a5 # 4b2: 3d05 + mov a10, a3 # 4b4: ad03 + j .Lbr050 # 4b6: 46f5ff +.Lbr056: mov a5, a6 # 4b9: 5d06 + mov a0, a5 # 4bb: 0d05 + j .Lbr032 # 4bd: 46ceff + + .literal_position # 4c0: 00000000 + # 4c4: 5d050000 + # 4c8: 000af23f + # 4cc: 00000000 + # 4d0: 60090000 + # 4d4: 00000000 + # 4d8: 009a0060 + # 4dc: 08520000 + # 4e0: 00600000 + # 4e4: 0000e03f + # 4e8: 99994940 + # 4ec: 9a999999 + # 4f0: 9999e940 + # 4f4: 9a999999 + # 4f8: 00960060 + # 4fc: ffff0f00 + # 500: 000000c0 + # 504: 00000000 + # 508: 00000000 + # 50c: 00000000 + # 510: 00000000 + # 514: 00000000 + # 518: 00000000 + # 51c: 00000000 + # 520: 00000000 + +# Function @ .irom0.text+0x524 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word @ -0x10 +# (local5): word @ -0xc +# (local6): word @ -0x8 +# (local7): word @ -0x4 + .balign 4 + .global rom_chip_50_set_channel + .type rom_chip_50_set_channel, @function +rom_chip_50_set_channel: + addi sp, sp, -32 /* (local0) */ # 524: 12c1e0 + s32i a0, sp, 8 /* a0 -> [(local2)] */ # 527: 0921 + s32i a13, sp, 16 /* a13 -> [(local4)] */ # 529: d941 + s32i a12, sp, 12 /* a12 -> [(local3)] */ # 52b: c931 + s32i a14, sp, 20 /* a14 -> [(local5)] */ # 52d: e951 + mov a12, a2 /* arg0 */ # 52f: cd02 + mov a14, a4 /* arg2 */ # 531: ed04 + movi a13, g_phyFuns # 533: d1e3ff + mov a4, a5 /* arg3 */ # 536: 4d05 + s32i a14, sp, 28 /* arg2 -> [(local7)] */ # 538: e971 + mov a5, a6 /* arg4 */ # 53a: 5d06 + l32i a0, a13, 0 /* [g_phyFuns] */ # 53c: 080d + mov a6, a7 /* arg5 */ # 53e: 6d07 + l32i a0, a0, 128 /* [[g_phyFuns]+0x80] */ # 540: 022020 + l16ui a7, sp, 32 /* [(local8)] */ # 543: 721110 + callx0 a0 /* [[g_phyFuns]+0x80] */ # 546: c00000 + mov a3, a2 # 549: 3d02 + l32i a0, sp, 28 /* [(local7)] */ # 54b: 0871 + movi a8, 14 /* 0x0000000e */ # 54d: 0ce8 + bgeu a12, a8, .Lbr057 # 54f: 87bc34 + movi a10, .Lfunc004 # 552: a1dcff + addx2 a9, a12, a12 # 555: c09c90 + add a9, a9, a10 # 558: aa99 + jx a9 # 55a: a00900 +.Lfunc004: j .Lbr057 # 55d: 860900 + j .Lbr066 # 560: c65200 + j .Lbr078 # 563: 066d00 + j .Lbr077 # 566: 066a00 + j .Lbr076 # 569: 066700 + j .Lbr075 # 56c: 066400 + j .Lbr074 # 56f: 066100 + j .Lbr073 # 572: 065e00 + j .Lbr072 # 575: 065b00 + j .Lbr071 # 578: 065800 + j .Lbr070 # 57b: 065500 + j .Lbr069 # 57e: 065200 + j .Lbr068 # 581: 064f00 + j .Lbr067 # 584: 064c00 +.Lbr057: movi a13, 106 /* 0x0000006a */ # 587: d2a06a + movi a14, 264 /* 0x00000108 */ # 58a: e2a108 +.Lbr058: beqz a0, .Lbr060 # 58d: 161004 + movi a11, 0x3ff20a00 # 590: b1ceff + memw # 593: c02000 + l32i a11, a11, 0x270 /* [0x3ff20c70] */ # 596: b22b9c + s32i a3, sp, 24 /* a3 -> [(local6)] */ # 599: 3961 + bbsi a11, 1, .Lbr059 # 59b: 17eb15 + movi a2, 103 /* 0x00000067 */ # 59e: 22a067 + movi a0, g_phyFuns # 5a1: 01caff + movi a3, 4 /* 0x00000004 */ # 5a4: 0c43 + l32i a0, a0, 0 /* [g_phyFuns] */ # 5a6: 0800 + movi a4, 7 /* 0x00000007 */ # 5a8: 0c74 + l32i a0, a0, 152 /* [[g_phyFuns]+0x98] */ # 5aa: 022026 + movi a5, 4 /* 0x00000004 */ # 5ad: 0c45 + callx0 a0 /* [[g_phyFuns]+0x98] */ # 5af: c00000 + l32i a3, sp, 24 /* [(local6)] */ # 5b2: 3861 +.Lbr059: movi a2, 1 /* 0x00000001 */ # 5b4: 0c12 + movi a0, g_phyFuns # 5b6: 01c7ff + movi a4, 0x00000960 # 5b9: 41c5ff + l32i a0, a0, 0 /* [g_phyFuns] */ # 5bc: 0800 + mull a3, a3, a14 # 5be: e03382 + l32i a0, a0, 124 /* [[g_phyFuns]+0x7c] */ # 5c1: 02201f + mul16u a4, a14, a4 # 5c4: 404ec1 + callx0 a0 /* [[g_phyFuns]+0x7c] */ # 5c7: c00000 + movi a2, 5 /* 0x00000005 */ # 5ca: 0c52 + call0 ets_delay_us # 5cc: 01ceffc0 + # 5d0: 0000 +.Lbr060: movi a5, 0x60009a00 # 5d2: 51c1ff + movi a7, 0x00005208 # 5d5: 71c1ff + movi a6, 0x00006000 # 5d8: 61c2ff + add a7, a13, a7 /* 0x00005272 */ # 5db: 7a7d + slli a7, a7, 17 # 5dd: f07701 + memw # 5e0: c02000 + l32i a4, a5, 0x114 /* [0x60009b14] */ # 5e3: 422545 + extui a4, a4, 0, 13 # 5e6: 4040c4 + or a4, a4, a7 # 5e9: 704420 + or a4, a4, a6 # 5ec: 604420 + memw # 5ef: c02000 + s32i a4, a5, 0x114 /* a4 -> [0x60009b14] */ # 5f2: 426545 + addi a2, a12, -5 /* arg0-0x5 */ # 5f5: 22ccfb + beqz a2, .Lbr063 # 5f8: 16420a + beqi a12, 6, .Lbr061 # 5fb: 266c1e + addi a8, a12, -7 /* arg0-0x7 */ # 5fe: 82ccf9 + beqz a8, .Lbr064 # 601: 16080a + addi a9, a12, -8 /* arg0-0x8 */ # 604: 92ccf8 + beqz a9, .Lbr065 # 607: 16f909 + addi a10, a12, -13 /* arg0-0xd */ # 60a: a2ccf3 + beqz a10, .Lbr063 # 60d: 16fa08 + addi a13, a12, -14 /* arg0-0xe */ # 610: d2ccf2 + movi a11, -4 /* 0xfffffffc */ # 613: 7ccb + movi a2, 0 /* 0x00000000 */ # 615: 0c02 + moveqz a2, a11, a13 # 617: d02b83 + j .Lbr062 # 61a: 460000 +.Lbr061: movi a2, 3 /* 0x00000003 */ # 61d: 0c32 +.Lbr062: movi a13, 0x3fe00000 # 61f: d1b1ff + movi a12, 0 /* 0x00000000 */ # 622: 0c0c + call0 __floatsidf # 624: 01b9ffc0 + # 628: 0000 + s32i a2, sp, 4 /* a2 -> [(local1)] */ # 62a: 2911 + s32i a3, sp, 0 /* a3 -> [(local0)] */ # 62c: 3901 + movi a5, 0x40499999 # 62e: 51aeff + movi a4, 0x9999999a # 631: 41aeff + call0 __muldf3 # 634: 01b6ffc0 + # 638: 0000 + mov a5, a13 /* 0x3fe00000 */ # 63a: 5d0d + mov a4, a12 /* 0x00000000 */ # 63c: 4d0c + call0 __adddf3 # 63e: 01b4ffc0 + # 642: 0000 + call0 __fixdfsi # 644: 01b4ffc0 + # 648: 0000 + l32i a3, sp, 0 /* [(local0)] */ # 64a: 3801 + movi a5, 0x40e99999 # 64c: 51a9ff + mov a14, a2 # 64f: ed02 + movi a4, 0x9999999a # 651: 41a8ff + l32i a2, sp, 4 /* [(local1)] */ # 654: 2811 + call0 __muldf3 # 656: 01b0ffc0 + # 65a: 0000 + mov a4, a12 /* 0x00000000 */ # 65c: 4d0c + mov a5, a13 /* 0x3fe00000 */ # 65e: 5d0d + call0 __adddf3 # 660: 01afffc0 + # 664: 0000 + movi a12, 0x60009600 # 666: c1a4ff + call0 __fixdfsi # 669: 01adffc0 + # 66d: 0000 + movi a0, 0x000fffff # 66f: 01a3ff + extui a3, a14, 0, 10 # 672: e03094 + and a0, a2, a0 # 675: 000210 + slli a3, a3, 20 # 678: c03301 + movi a2, 0xc0000000 # 67b: 21a1ff + memw # 67e: c02000 + l32i a14, a12, 0x2a0 /* [0x600098a0] */ # 681: e22ca8 + and a14, a14, a2 # 684: 20ee10 + or a14, a14, a3 # 687: 30ee20 + or a14, a14, a0 # 68a: 00ee20 + memw # 68d: c02000 + s32i a14, a12, 0x2a0 /* a14 -> [0x600098a0] */ # 690: e26ca8 + l32i a13, sp, 16 /* [(local4)] */ # 693: d841 + l32i a12, sp, 12 /* [(local3)] */ # 695: c831 + l32i a14, sp, 20 /* [(local5)] */ # 697: e851 + l32i a0, sp, 8 /* [(local2)] */ # 699: 0821 + addi sp, sp, 32 /* (local8) */ # 69b: 12c120 + ret /* 0xc0000000 */ # 69e: 0df0 +.Lbr063: movi a2, 8 /* 0x00000008 */ # 6a0: 0c82 + j .Lbr062 # 6a2: 46deff +.Lbr064: movi a2, -2 /* 0xfffffffe */ # 6a5: 7ce2 + j .Lbr062 # 6a7: 06ddff +.Lbr065: movi a2, -7 /* 0xfffffff9 */ # 6aa: 7c92 + j .Lbr062 # 6ac: c6dbff +.Lbr066: movi a14, 265 # 6af: e2a109 + movi a13, 737 # 6b2: d2a2e1 + j .Lbr058 # 6b5: 06b5ff +.Lbr067: movi a14, 264 # 6b8: e2a108 + movi a13, 209 # 6bb: d2a0d1 + j .Lbr058 # 6be: c6b2ff +.Lbr068: movi a14, 264 # 6c1: e2a108 + movi a13, 252 # 6c4: d2a0fc + j .Lbr058 # 6c7: 86b0ff +.Lbr069: movi a14, 258 # 6ca: e2a102 + movi a13, 295 # 6cd: d2a127 + j .Lbr058 # 6d0: 46aeff +.Lbr070: movi a14, 257 # 6d3: e2a101 + movi a13, 339 # 6d6: d2a153 + j .Lbr058 # 6d9: 06acff +.Lbr071: movi a14, 264 # 6dc: e2a108 + movi a13, 382 # 6df: d2a17e + j .Lbr058 # 6e2: c6a9ff +.Lbr072: movi a14, 283 # 6e5: e2a11b + movi a13, 426 # 6e8: d2a1aa + j .Lbr058 # 6eb: 86a7ff +.Lbr073: movi a14, 255 # 6ee: e2a0ff + movi a13, 470 # 6f1: d2a1d6 + j .Lbr058 # 6f4: 46a5ff +.Lbr074: movi a14, 269 # 6f7: e2a10d + movi a13, 514 # 6fa: d2a202 + j .Lbr058 # 6fd: 06a3ff +.Lbr075: movi a14, 265 # 700: e2a109 + movi a13, 558 # 703: d2a22e + j .Lbr058 # 706: c6a0ff +.Lbr076: movi a14, 265 # 709: e2a109 + movi a13, 602 # 70c: d2a25a + j .Lbr058 # 70f: 869eff +.Lbr077: movi a14, 264 # 712: e2a108 + movi a13, 647 # 715: d2a287 + j .Lbr058 # 718: 469cff +.Lbr078: movi a14, 261 # 71b: e2a105 + movi a13, 692 # 71e: d2a2b4 + j .Lbr058 # 721: 069aff + + .literal_position # 724: 00000000 + +# Function @ .irom0.text+0x728 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global rom_chip_v5_rx_init + .type rom_chip_v5_rx_init, @function +rom_chip_v5_rx_init: + movi a2, 97 /* 0x00000061 */ # 728: 22a061 + movi a3, 1 /* 0x00000001 */ # 72b: 0c13 + addi sp, sp, -16 /* (local0) */ # 72d: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 730: c911 + movi a12, g_phyFuns # 732: c1fcff + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 735: 0901 + l32i a0, a12, 0 /* [g_phyFuns] */ # 737: 080c + movi a4, 8 /* 0x00000008 */ # 739: 0c84 + l32i a0, a0, 152 /* [[g_phyFuns]+0x98] */ # 73b: 022026 + movi a5, 17 /* 0x00000011 */ # 73e: 1c15 + callx0 a0 /* [[g_phyFuns]+0x98] */ # 740: c00000 + movi a2, 97 /* 0x00000061 */ # 743: 22a061 + movi a3, 1 /* 0x00000001 */ # 746: 0c13 + l32i a0, a12, 0 /* [g_phyFuns] */ # 748: 080c + movi a4, 6 /* 0x00000006 */ # 74a: 0c64 + l32i a0, a0, 152 /* [[g_phyFuns]+0x98] */ # 74c: 022026 + movi a5, 21 /* 0x00000015 */ # 74f: 1c55 + callx0 a0 /* [[g_phyFuns]+0x98] */ # 751: c00000 + movi a2, 97 /* 0x00000061 */ # 754: 22a061 + movi a3, 1 /* 0x00000001 */ # 757: 0c13 + l32i a0, a12, 0 /* [g_phyFuns] */ # 759: 080c + movi a4, 7 /* 0x00000007 */ # 75b: 0c74 + l32i a0, a0, 152 /* [[g_phyFuns]+0x98] */ # 75d: 022026 + movi a5, 81 /* 0x00000051 */ # 760: 5c15 + callx0 a0 /* [[g_phyFuns]+0x98] */ # 762: c00000 + movi a2, 100 /* 0x00000064 */ # 765: 22a064 + movi a3, 0 /* 0x00000000 */ # 768: 0c03 + l32i a0, a12, 0 /* [g_phyFuns] */ # 76a: 080c + movi a4, 4 /* 0x00000004 */ # 76c: 0c44 + l32i a0, a0, 152 /* [[g_phyFuns]+0x98] */ # 76e: 022026 + movi a5, 121 /* 0x00000079 */ # 771: 52a079 + callx0 a0 /* [[g_phyFuns]+0x98] */ # 774: c00000 + movi a2, 100 /* 0x00000064 */ # 777: 22a064 + movi a3, 0 /* 0x00000000 */ # 77a: 0c03 + l32i a0, a12, 0 /* [g_phyFuns] */ # 77c: 080c + movi a4, 7 /* 0x00000007 */ # 77e: 0c74 + l32i a0, a0, 152 /* [[g_phyFuns]+0x98] */ # 780: 022026 + movi a5, 123 /* 0x0000007b */ # 783: 52a07b + callx0 a0 /* [[g_phyFuns]+0x98] */ # 786: c00000 + l32i a12, sp, 4 /* [(local1)] */ # 789: c811 + l32i a0, sp, 0 /* [(local0)] */ # 78b: 0801 + addi sp, sp, 16 /* (top of frame) */ # 78d: 12c110 + ret # 790: 0df0 + + .literal_position # 794: 00000000 + +# Function @ .irom0.text+0x798 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global rom_chip_v5_tx_init + .type rom_chip_v5_tx_init, @function +rom_chip_v5_tx_init: + movi a2, 107 /* 0x0000006b */ # 798: 22a06b + movi a3, 2 /* 0x00000002 */ # 79b: 0c23 + addi sp, sp, -16 /* (local0) */ # 79d: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 7a0: c911 + movi a12, g_phyFuns # 7a2: c1fcff + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 7a5: 0901 + l32i a0, a12, 0 /* [g_phyFuns] */ # 7a7: 080c + movi a4, 1 /* 0x00000001 */ # 7a9: 0c14 + l32i a0, a0, 152 /* [[g_phyFuns]+0x98] */ # 7ab: 022026 + movi a5, 104 /* 0x00000068 */ # 7ae: 52a068 + callx0 a0 /* [[g_phyFuns]+0x98] */ # 7b1: c00000 + movi a2, 107 /* 0x0000006b */ # 7b4: 22a06b + movi a3, 2 /* 0x00000002 */ # 7b7: 0c23 + l32i a0, a12, 0 /* [g_phyFuns] */ # 7b9: 080c + movi a4, 2 /* 0x00000002 */ # 7bb: 0c24 + l32i a0, a0, 152 /* [[g_phyFuns]+0x98] */ # 7bd: 022026 + movi a5, 15 /* 0x0000000f */ # 7c0: 0cf5 + callx0 a0 /* [[g_phyFuns]+0x98] */ # 7c2: c00000 + movi a2, 107 /* 0x0000006b */ # 7c5: 22a06b + movi a3, 2 /* 0x00000002 */ # 7c8: 0c23 + l32i a0, a12, 0 /* [g_phyFuns] */ # 7ca: 080c + movi a4, 3 /* 0x00000003 */ # 7cc: 0c34 + l32i a0, a0, 152 /* [[g_phyFuns]+0x98] */ # 7ce: 022026 + movi a5, 168 /* 0x000000a8 */ # 7d1: 52a0a8 + callx0 a0 /* [[g_phyFuns]+0x98] */ # 7d4: c00000 + movi a2, 107 /* 0x0000006b */ # 7d7: 22a06b + movi a3, 2 /* 0x00000002 */ # 7da: 0c23 + l32i a0, a12, 0 /* [g_phyFuns] */ # 7dc: 080c + movi a4, 4 /* 0x00000004 */ # 7de: 0c44 + l32i a0, a0, 152 /* [[g_phyFuns]+0x98] */ # 7e0: 022026 + movi a5, 6 /* 0x00000006 */ # 7e3: 0c65 + callx0 a0 /* [[g_phyFuns]+0x98] */ # 7e5: c00000 + movi a2, 107 /* 0x0000006b */ # 7e8: 22a06b + movi a3, 2 /* 0x00000002 */ # 7eb: 0c23 + l32i a0, a12, 0 /* [g_phyFuns] */ # 7ed: 080c + movi a4, 5 /* 0x00000005 */ # 7ef: 0c54 + l32i a0, a0, 152 /* [[g_phyFuns]+0x98] */ # 7f1: 022026 + movi a5, 8 /* 0x00000008 */ # 7f4: 0c85 + callx0 a0 /* [[g_phyFuns]+0x98] */ # 7f6: c00000 + movi a2, 107 /* 0x0000006b */ # 7f9: 22a06b + movi a3, 2 /* 0x00000002 */ # 7fc: 0c23 + l32i a0, a12, 0 /* [g_phyFuns] */ # 7fe: 080c + movi a4, 6 /* 0x00000006 */ # 800: 0c64 + l32i a0, a0, 152 /* [[g_phyFuns]+0x98] */ # 802: 022026 + movi a5, 184 /* 0x000000b8 */ # 805: 52a0b8 + callx0 a0 /* [[g_phyFuns]+0x98] */ # 808: c00000 + movi a2, 107 /* 0x0000006b */ # 80b: 22a06b + movi a3, 2 /* 0x00000002 */ # 80e: 0c23 + l32i a0, a12, 0 /* [g_phyFuns] */ # 810: 080c + movi a4, 7 /* 0x00000007 */ # 812: 0c74 + l32i a0, a0, 152 /* [[g_phyFuns]+0x98] */ # 814: 022026 + movi a5, 91 /* 0x0000005b */ # 817: 5cb5 + callx0 a0 /* [[g_phyFuns]+0x98] */ # 819: c00000 + movi a2, 107 /* 0x0000006b */ # 81c: 22a06b + movi a3, 2 /* 0x00000002 */ # 81f: 0c23 + l32i a0, a12, 0 /* [g_phyFuns] */ # 821: 080c + movi a4, 8 /* 0x00000008 */ # 823: 0c84 + l32i a0, a0, 152 /* [[g_phyFuns]+0x98] */ # 825: 022026 + movi a5, 4 /* 0x00000004 */ # 828: 0c45 + callx0 a0 /* [[g_phyFuns]+0x98] */ # 82a: c00000 + movi a2, 107 /* 0x0000006b */ # 82d: 22a06b + movi a3, 2 /* 0x00000002 */ # 830: 0c23 + l32i a0, a12, 0 /* [g_phyFuns] */ # 832: 080c + movi a4, 9 /* 0x00000009 */ # 834: 0c94 + l32i a0, a0, 152 /* [[g_phyFuns]+0x98] */ # 836: 022026 + movi a5, 0 /* 0x00000000 */ # 839: 0c05 + callx0 a0 /* [[g_phyFuns]+0x98] */ # 83b: c00000 + movi a2, 107 /* 0x0000006b */ # 83e: 22a06b + movi a3, 2 /* 0x00000002 */ # 841: 0c23 + l32i a0, a12, 0 /* [g_phyFuns] */ # 843: 080c + movi a4, 10 /* 0x0000000a */ # 845: 0ca4 + l32i a0, a0, 152 /* [[g_phyFuns]+0x98] */ # 847: 022026 + movi a5, 116 /* 0x00000074 */ # 84a: 52a074 + callx0 a0 /* [[g_phyFuns]+0x98] */ # 84d: c00000 + movi a2, 107 /* 0x0000006b */ # 850: 22a06b + movi a3, 2 /* 0x00000002 */ # 853: 0c23 + l32i a0, a12, 0 /* [g_phyFuns] */ # 855: 080c + movi a4, 11 /* 0x0000000b */ # 857: 0cb4 + l32i a0, a0, 152 /* [[g_phyFuns]+0x98] */ # 859: 022026 + movi a5, 7 /* 0x00000007 */ # 85c: 0c75 + callx0 a0 /* [[g_phyFuns]+0x98] */ # 85e: c00000 + l32i a12, sp, 4 /* [(local1)] */ # 861: c811 + l32i a0, sp, 0 /* [(local0)] */ # 863: 0801 + addi sp, sp, 16 /* (top of frame) */ # 865: 12c110 + ret # 868: 0df0 + + .literal_position # 86c: 000a0060 + +# Function @ .irom0.text+0x870 + .balign 4 + .global rom_i2c_readReg + .type rom_i2c_readReg, @function +rom_i2c_readReg: + movi a8, 0x60000a00 # 870: 81ffff + slli a6, a4, 8 # 873: 806411 + slli a7, a3, 2 # 876: e07311 + or a6, a2, a6 # 879: 606220 + add a2, a7, a8 # 87c: 8a27 + memw # 87e: c02000 + s32i a6, a2, 0x300 # 881: 6262c0 + memw # 884: c02000 + l32i a5, a2, 0x300 # 887: 5222c0 + bbci a5, 25, .Lbr080 # 88a: 977508 +.Lbr079: memw # 88d: c02000 + l32i a7, a2, 0x300 # 890: 7222c0 + bbsi a7, 25, .Lbr079 # 893: 97f7f6 +.Lbr080: memw # 896: c02000 + l32i a2, a2, 0x300 # 899: 2222c0 + extui a2, a2, 16, 8 # 89c: 202075 + ret # 89f: 0df0 + + .literal_position # 8a4: 00000000 + +# Function @ .irom0.text+0x8a8 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 + .global rom_i2c_readReg_Mask + .type rom_i2c_readReg_Mask, @function +rom_i2c_readReg_Mask: + addi sp, sp, -16 /* (local0) */ # 8a8: 12c1f0 + s32i a0, sp, 8 /* a0 -> [(local2)] */ # 8ab: 0921 + movi a0, g_phyFuns # 8ad: 01fdff + l32i a0, a0, 0 /* [g_phyFuns] */ # 8b0: 0800 + s32i a5, sp, 0 /* arg3 -> [(local0)] */ # 8b2: 5901 + l32i a0, a0, 144 /* [[g_phyFuns]+0x90] */ # 8b4: 022024 + s32i a6, sp, 4 /* arg4 -> [(local1)] */ # 8b7: 6911 + callx0 a0 /* [[g_phyFuns]+0x90] */ # 8b9: c00000 + l32i a4, sp, 0 /* [(local0)] */ # 8bc: 4801 + l32i a5, sp, 4 /* [(local1)] */ # 8be: 5811 + l32i a0, sp, 8 /* [(local2)] */ # 8c0: 0821 + ssr a5 # 8c2: 000540 + addi sp, sp, 16 /* (top of frame) */ # 8c5: 12c110 + sra a3, a2 # 8c8: 2030b1 + sub a4, a4, a5 # 8cb: 5044c0 + movi a2, 1 /* 0x00000001 */ # 8ce: 0c12 + addi a4, a4, 1 # 8d0: 1b44 + ssl a4 # 8d2: 001440 + sll a2, a2 # 8d5: 0022a1 + addi a2, a2, -1 # 8d8: 0b22 + and a2, a2, a3 # 8da: 302210 + extui a2, a2, 0, 8 # 8dd: 202074 + ret # 8e0: 0df0 + + .literal_position # 8e4: 00000001 + # 8e8: 000a0060 + +# Function @ .irom0.text+0x8ec + .balign 4 + .global rom_i2c_writeReg + .type rom_i2c_writeReg, @function +rom_i2c_writeReg: + slli a8, a5, 16 # 8ec: 008511 + slli a7, a4, 8 # 8ef: 807411 + movi a9, 0x60000a00 # 8f2: 91fdff + or a7, a7, a8 # 8f5: 807720 + movi a8, 0x01000000 # 8f8: 81fbff + or a7, a2, a7 # 8fb: 707220 + or a7, a7, a8 # 8fe: 807720 + slli a8, a3, 2 # 901: e08311 + add a2, a8, a9 # 904: 9a28 + memw # 906: c02000 + s32i a7, a2, 0x300 # 909: 7262c0 + memw # 90c: c02000 + l32i a6, a2, 0x300 # 90f: 6222c0 + bbci a6, 25, .Lbr082 # 912: 977608 +.Lbr081: memw # 915: c02000 + l32i a9, a2, 0x300 # 918: 9222c0 + bbsi a9, 25, .Lbr081 # 91b: 97f9f6 +.Lbr082: ret # 91e: 0df0 + + .literal_position # 920: 00000000 + # 924: 00000000 + +# Function @ .irom0.text+0x928 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word @ -0x10 +# (local5): word @ -0xc +# (local6): word[2] @ -0x8 + .balign 4 + .global rom_i2c_writeReg_Mask + .type rom_i2c_writeReg_Mask, @function +rom_i2c_writeReg_Mask: + addi sp, sp, -32 /* (local0) */ # 928: 12c1e0 + s32i a5, sp, 0 /* arg3 -> [(local0)] */ # 92b: 5901 + s32i a6, sp, 4 /* arg4 -> [(local1)] */ # 92d: 6911 + s32i a7, sp, 8 /* arg5 -> [(local2)] */ # 92f: 7921 + s32i a12, sp, 16 /* a12 -> [(local4)] */ # 931: c941 + s32i a13, sp, 20 /* a13 -> [(local5)] */ # 933: d951 + s32i a14, sp, 24 /* a14 -> [(local6)] */ # 935: e961 + s32i a0, sp, 12 /* a0 -> [(local3)] */ # 937: 0931 + movi a0, g_phyFuns # 939: 01f9ff + mov a14, a2 /* arg0 */ # 93c: ed02 + l32i a0, a0, 0 /* [g_phyFuns] */ # 93e: 0800 + mov a13, a3 /* arg1 */ # 940: dd03 + l32i a0, a0, 144 /* [[g_phyFuns]+0x90] */ # 942: 022024 + mov a12, a4 /* arg2 */ # 945: cd04 + callx0 a0 /* [[g_phyFuns]+0x90] */ # 947: c00000 + mov a4, a12 /* arg2 */ # 94a: 4d0c + mov a3, a13 /* arg1 */ # 94c: 3d0d + movi a5, 1 /* 0x00000001 */ # 94e: 0c15 + l32i a8, sp, 0 /* [(local0)] */ # 950: 8801 + l32i a6, sp, 8 /* [(local2)] */ # 952: 6821 + movi a0, g_phyFuns # 954: 01f4ff + l32i a7, sp, 4 /* [(local1)] */ # 957: 7811 + l32i a0, a0, 0 /* [g_phyFuns] */ # 959: 0800 + ssl a7 # 95b: 001740 + sll a6, a6 # 95e: 0066a1 + sub a8, a8, a7 # 961: 7088c0 + addi a8, a8, 1 # 964: 1b88 + l32i a0, a0, 152 /* [[g_phyFuns]+0x98] */ # 966: 022026 + ssl a8 # 969: 001840 + sll a5, a5 # 96c: 0055a1 + ssl a7 # 96f: 001740 + addi a5, a5, -1 # 972: 0b55 + movi a7, -1 /* 0xffffffff */ # 974: 7cf7 + sll a5, a5 # 976: 0055a1 + xor a5, a5, a7 # 979: 705530 + and a5, a2, a5 # 97c: 505210 + mov a2, a14 /* arg0 */ # 97f: 2d0e + or a5, a5, a6 # 981: 605520 + extui a5, a5, 0, 8 # 984: 505074 + callx0 a0 /* [[g_phyFuns]+0x98] */ # 987: c00000 + l32i a12, sp, 16 /* [(local4)] */ # 98a: c841 + l32i a13, sp, 20 /* [(local5)] */ # 98c: d851 + l32i a14, sp, 24 /* [(local6)] */ # 98e: e861 + l32i a0, sp, 12 /* [(local3)] */ # 990: 0831 + addi sp, sp, 32 /* (top of frame) */ # 992: 12c120 + ret # 995: 0df0 + + .literal_position # 998: 00020060 + # 99c: 000af23f + # 9a0: 00000000 + # 9a4: 00000008 + # 9a8: 009a0060 + # 9ac: 00020060 + # 9b0: 00000000 + +# Function @ .irom0.text+0x9b4 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 + .global rom_pbus_debugmode + .type rom_pbus_debugmode, @function +rom_pbus_debugmode: + addi sp, sp, -16 /* (local0) */ # 9b4: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 9b7: 0901 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 9b9: d921 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 9bb: c911 + mov a5, a0 # 9bd: 5d00 + movi a2, 0x60000200 # 9bf: 21f6ff + memw # 9c2: c02000 + l32i a2, a2, 0x394 /* [0x60000594] */ # 9c5: 2222e5 + movi a6, 0x3ff20a00 # 9c8: 61f5ff + bbsi a2, 0, .Lbr084 # 9cb: 07e241 + memw # 9ce: c02000 + l32i a6, a6, 0x270 /* [0x3ff20c70] */ # 9d1: 62269c + bbci a6, 1, .Lbr084 # 9d4: 176638 + movi a12, g_phyFuns # 9d7: c1f2ff + l32i a0, a12, 0 /* [g_phyFuns] */ # 9da: 080c + l32i a0, a0, 116 /* [[g_phyFuns]+0x74] */ # 9dc: 02201d + callx0 a0 /* [[g_phyFuns]+0x74] */ # 9df: c00000 + movi a2, 5 /* 0x00000005 */ # 9e2: 0c52 + call0 ets_delay_us # 9e4: 01f3ffc0 + # 9e8: 0000 + movi a13, 388 /* 0x00000184 */ # 9ea: d2a184 +.Lbr083: l32i a0, a12, 0 /* [g_phyFuns] */ # 9ed: 080c + movi a2, 2 /* 0x00000002 */ # 9ef: 0c22 + l32i a0, a0, 176 /* [[g_phyFuns]+0xb0] */ # 9f1: 02202c + movi a3, 1 /* 0x00000001 */ # 9f4: 0c13 + callx0 a0 /* [[g_phyFuns]+0xb0] */ # 9f6: c00000 + bnall a2, a13, .Lbr083 # 9f9: d7c2f0 + l32i a0, a12, 0 /* [g_phyFuns] */ # 9fc: 080c + movi a2, 3 /* 0x00000003 */ # 9fe: 0c32 + l32i a0, a0, 176 /* [[g_phyFuns]+0xb0] */ # a00: 02202c + movi a3, 2 /* 0x00000002 */ # a03: 0c23 + callx0 a0 /* [[g_phyFuns]+0xb0] */ # a05: c00000 + movi a3, 6 /* 0x00000006 */ # a08: 0c63 + and a2, a2, a3 # a0a: 302210 + bnei a2, 6, .Lbr083 # a0d: 6662dc +.Lbr084: movi a9, 0x08000000 # a10: 91e5ff + movi a8, 0x60009a00 # a13: 81e5ff + memw # a16: c02000 + l32i a7, a8, 0x108 /* [0x60009b08] */ # a19: 722842 + or a7, a7, a9 # a1c: 907720 + memw # a1f: c02000 + s32i a7, a8, 0x108 /* a7 -> [0x60009b08] */ # a22: 726842 + memw # a25: c02000 + movi a5, 0x60000200 # a28: 51e1ff + l32i a4, a5, 0x394 /* [0x60000594] */ # a2b: 4225e5 + movi a6, 1 /* 0x00000001 */ # a2e: 0c16 + or a4, a4, a6 # a30: 604420 + memw # a33: c02000 + s32i a4, a5, 0x394 /* a4 -> [0x60000594] */ # a36: 4265e5 + l32i a12, sp, 4 /* [(local1)] */ # a39: c811 + l32i a13, sp, 8 /* [(local2)] */ # a3b: d821 + l32i a0, sp, 0 /* [(local0)] */ # a3d: 0801 + addi sp, sp, 16 /* (top of frame) */ # a3f: 12c110 + ret # a42: 0df0 + + .literal_position # a44: 00000000 + # a48: 00000000 + # a4c: 00000000 + +# Function @ .irom0.text+0xa50 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global rom_pbus_enter_debugmode + .type rom_pbus_enter_debugmode, @function +rom_pbus_enter_debugmode: + addi sp, sp, -16 /* (local0) */ # a50: 12c1f0 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # a53: 0911 + movi a0, g_phyFuns # a55: 01fbff + l32i a0, a0, 0 /* [g_phyFuns] */ # a58: 0800 + l32i a0, a0, 160 /* [[g_phyFuns]+0xa0] */ # a5a: 022028 + s32i a2, sp, 0 /* arg0 -> [(local0)] */ # a5d: 2901 + callx0 a0 /* [[g_phyFuns]+0xa0] */ # a5f: c00000 + movi a0, g_phyFuns # a62: 01f9ff + l32i a0, a0, 0 /* [g_phyFuns] */ # a65: 0800 + l32i a0, a0, 192 /* [[g_phyFuns]+0xc0] */ # a67: 022030 + movi a2, 1 /* 0x00000001 */ # a6a: 0c12 + callx0 a0 /* [[g_phyFuns]+0xc0] */ # a6c: c00000 + movi a0, g_phyFuns # a6f: 01f7ff + l32i a0, a0, 0 /* [g_phyFuns] */ # a72: 0800 + l32i a0, a0, 208 /* [[g_phyFuns]+0xd0] */ # a74: 022034 + l32i a2, sp, 0 /* [(local0)] */ # a77: 2801 + callx0 a0 /* [[g_phyFuns]+0xd0] */ # a79: c00000 + l32i a0, sp, 4 /* [(local1)] */ # a7c: 0811 + addi sp, sp, 16 /* (top of frame) */ # a7e: 12c110 + ret # a81: 0df0 + + .literal_position # a84: 00000000 + # a88: 00000000 + # a8c: 00000000 + +# Function @ .irom0.text+0xa90 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global rom_pbus_exit_debugmode + .type rom_pbus_exit_debugmode, @function +rom_pbus_exit_debugmode: + addi sp, sp, -16 /* (local0) */ # a90: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # a93: 0901 + movi a0, g_phyFuns # a95: 01fbff + l32i a0, a0, 0 /* [g_phyFuns] */ # a98: 0800 + l32i a0, a0, 200 /* [[g_phyFuns]+0xc8] */ # a9a: 022032 + callx0 a0 /* [[g_phyFuns]+0xc8] */ # a9d: c00000 + movi a0, g_phyFuns # aa0: 01faff + l32i a0, a0, 0 /* [g_phyFuns] */ # aa3: 0800 + l32i a0, a0, 196 /* [[g_phyFuns]+0xc4] */ # aa5: 022031 + callx0 a0 /* [[g_phyFuns]+0xc4] */ # aa8: c00000 + movi a0, g_phyFuns # aab: 01f8ff + l32i a0, a0, 0 /* [g_phyFuns] */ # aae: 0800 + l32i a0, a0, 188 /* [[g_phyFuns]+0xbc] */ # ab0: 02202f + callx0 a0 /* [[g_phyFuns]+0xbc] */ # ab3: c00000 + l32i a0, sp, 0 /* [(local0)] */ # ab6: 0801 + addi sp, sp, 16 /* (top of frame) */ # ab8: 12c110 + ret # abb: 0df0 + + .literal_position # ac0: 0100ffff + # ac4: 00020060 + +# Function @ .irom0.text+0xac8 + .balign 4 + .global rom_pbus_force_test + .type rom_pbus_force_test, @function +rom_pbus_force_test: + slli a9, a3, 14 # ac8: 209311 + movi a10, 0xffff0001 # acb: a1fdff + movi a8, 2 /* 0x00000002 */ # ace: 0c28 + slli a7, a2, 2 # ad0: e07211 + or a7, a7, a8 # ad3: 807720 + movi a2, 0x60000200 # ad6: 21fbff + slli a8, a4, 5 # ad9: b08411 + memw # adc: c02000 + l32i a6, a2, 0x394 /* [0x60000594] */ # adf: 6222e5 + and a6, a6, a10 # ae2: a06610 + or a6, a6, a9 # ae5: 906620 + or a6, a6, a8 # ae8: 806620 + or a6, a6, a7 # aeb: 706620 + memw # aee: c02000 + s32i a6, a2, 0x394 /* a6 -> [0x60000594] */ # af1: 6262e5 + memw # af4: c02000 + l32i a5, a2, 0x3a0 /* [0x600005a0] */ # af7: 5222e8 + bgez a5, .Lbr086 # afa: d68500 +.Lbr085: memw # afd: c02000 + l32i a9, a2, 0x3a0 /* [0x600005a0] */ # b00: 9222e8 + bltz a9, .Lbr085 # b03: 9669ff +.Lbr086: movi a11, -3 /* 0xfffffffd */ # b06: 7cdb + memw # b08: c02000 + l32i a10, a2, 0x394 /* [0x60000594] */ # b0b: a222e5 + and a10, a10, a11 # b0e: b0aa10 + memw # b11: c02000 + s32i a10, a2, 0x394 /* a10 -> [0x60000594] */ # b14: a262e5 + ret /* 0x60000200 */ # b17: 0df0 + + .literal_position # b1c: 00000000 + # b20: a4050060 + # b24: 00000000 + # b28: 00000000 + +# Function @ .irom0.text+0xb2c +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 + .global rom_pbus_rd + .type rom_pbus_rd, @function +rom_pbus_rd: + addi a4, a3, -4 /* arg1-0x4 */ # b2c: 42c3fc + addi sp, sp, -16 /* (local0) */ # b2f: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # b32: c911 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # b34: 0901 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # b36: d921 + movi a0, 2 /* 0x00000002 */ # b38: 0c20 + movi a13, .Ldata001 # b3a: d1f8ff + addi a12, a3, -1 /* arg1-0x1 */ # b3d: 0bc3 + add a13, a2, a13 # b3f: dad2 + l8ui a13, a13, 0 # b41: d20d00 + moveqz a12, a0, a4 # b44: 40c083 + add a12, a12, a13 # b47: dacc + extui a12, a12, 0, 8 # b49: c0c074 + beqi a12, 12, .Lbr087 # b4c: 26ac17 + mov a2, a12 # b4f: 2d0c + movi a3, 3 /* 0x00000003 */ # b51: 0c33 + call0 __umodsi3 # b53: 01f4ffc0 + # b57: 0000 + movi a13, 18 /* 0x00000012 */ # b59: 1c2d + extui a0, a2, 0, 8 # b5b: 200074 + addx8 a0, a0, a0 # b5e: 0000b0 + sub a13, a13, a0 # b61: 00ddc0 + j .Lbr088 # b64: 460000 +.Lbr087: movi a13, 0 /* 0x00000000 */ # b67: 0c0d +.Lbr088: mov a2, a12 # b69: 2d0c + movi a3, 3 /* 0x00000003 */ # b6b: 0c33 + call0 __udivsi3 # b6d: 01eeffc0 + # b71: 0000 + extui a2, a2, 0, 8 # b73: 202074 + movi a3, 0x600005a4 # b76: 31eaff + slli a2, a2, 2 # b79: e02211 + add a2, a2, a3 # b7c: 3a22 + memw # b7e: c02000 + l32i a0, sp, 0 /* [(local0)] */ # b81: 0801 + l32i a12, sp, 4 /* [(local1)] */ # b83: c811 + ssr a13 # b85: 000d40 + l32i a2, a2, 0 # b88: 2802 + l32i a13, sp, 8 /* [(local2)] */ # b8a: d821 + srl a2, a2 # b8c: 202091 + extui a2, a2, 0, 9 # b8f: 202084 + addi sp, sp, 16 /* (top of frame) */ # b92: 12c110 + ret # b95: 0df0 + + .literal_position # b98: 00000000 + +# Function @ .irom0.text+0xb9c +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word @ -0x10 +# (local5): word[3] @ -0xc + .balign 4 + .global rom_pbus_set_rxgain + .type rom_pbus_set_rxgain, @function +rom_pbus_set_rxgain: + movi a3, 2 /* 0x00000002 */ # b9c: 0c23 + addi sp, sp, -32 /* (local0) */ # b9e: 12c1e0 + s32i a12, sp, 16 /* a12 -> [(local4)] */ # ba1: c941 + s32i a13, sp, 20 /* a13 -> [(local5)] */ # ba3: d951 + movi a13, g_phyFuns # ba5: d1fcff + s32i a0, sp, 12 /* a0 -> [(local3)] */ # ba8: 0931 + l32i a0, a13, 0 /* [g_phyFuns] */ # baa: 080d + mov a12, a2 /* arg0 */ # bac: cd02 + l32i a0, a0, 176 /* [[g_phyFuns]+0xb0] */ # bae: 02202c + movi a2, 3 /* 0x00000003 */ # bb1: 0c32 + callx0 a0 /* [[g_phyFuns]+0xb0] */ # bb3: c00000 + movi a3, 1 /* 0x00000001 */ # bb6: 0c13 + l32i a0, a13, 0 /* [g_phyFuns] */ # bb8: 080d + s32i a2, sp, 0 /* a2 -> [(local0)] */ # bba: 2901 + l32i a0, a0, 176 /* [[g_phyFuns]+0xb0] */ # bbc: 02202c + movi a2, 2 /* 0x00000002 */ # bbf: 0c22 + callx0 a0 /* [[g_phyFuns]+0xb0] */ # bc1: c00000 + movi a3, 1 /* 0x00000001 */ # bc4: 0c13 + l32i a0, a13, 0 /* [g_phyFuns] */ # bc6: 080d + extui a6, a12, 6, 1 # bc8: c06604 + extui a7, a12, 7, 1 # bcb: c07704 + extui a4, a12, 8, 1 # bce: c04804 + s32i a2, sp, 4 /* a2 -> [(local1)] */ # bd1: 2911 + extui a5, a12, 3, 1 # bd3: c05304 + movi a2, 3 /* 0x00000003 */ # bd6: 0c32 + slli a5, a5, 6 # bd8: a05511 + slli a4, a4, 1 # bdb: f04411 + slli a7, a7, 2 # bde: e07711 + slli a6, a6, 3 # be1: d06611 + l32i a0, a0, 172 /* [[g_phyFuns]+0xac] */ # be4: 02202b + or a6, a6, a7 # be7: 706620 + s32i a4, sp, 8 /* a4 -> [(local2)] */ # bea: 4921 + extui a7, a12, 4, 1 # bec: c07404 + slli a7, a7, 5 # bef: b07711 + or a5, a5, a7 # bf2: 705520 + extui a7, a12, 5, 1 # bf5: c07504 + slli a7, a7, 4 # bf8: c07711 + or a5, a5, a7 # bfb: 705520 + or a5, a5, a6 # bfe: 605520 + extui a6, a12, 9, 1 # c01: c06904 + or a4, a4, a6 # c04: 604420 + or a4, a4, a5 # c07: 504420 + extui a4, a4, 0, 16 # c0a: 4040f4 + callx0 a0 /* [[g_phyFuns]+0xac] */ # c0d: c00000 + movi a2, 3 /* 0x00000003 */ # c10: 0c32 + movi a3, 2 /* 0x00000002 */ # c12: 0c23 + l32i a0, a13, 0 /* [g_phyFuns] */ # c14: 080d + l32i a4, sp, 0 /* [(local0)] */ # c16: 4801 + movi a5, 455 /* 0x000001c7 */ # c18: 52a1c7 + and a4, a4, a5 # c1b: 504410 + l32i a0, a0, 172 /* [[g_phyFuns]+0xac] */ # c1e: 02202b + extui a5, a12, 0, 3 # c21: c05024 + slli a5, a5, 3 # c24: d05511 + or a4, a4, a5 # c27: 504420 + extui a4, a4, 0, 16 # c2a: 4040f4 + callx0 a0 /* [[g_phyFuns]+0xac] */ # c2d: c00000 + movi a2, 2 /* 0x00000002 */ # c30: 0c22 + movi a3, 1 /* 0x00000001 */ # c32: 0c13 + l32i a4, sp, 8 /* [(local2)] */ # c34: 4821 + movi a7, 389 /* 0x00000185 */ # c36: 72a185 + l32i a5, sp, 4 /* [(local1)] */ # c39: 5811 + l32i a0, a13, 0 /* [g_phyFuns] */ # c3b: 080d + extui a6, a12, 11, 4 # c3d: c06b34 + slli a6, a6, 3 # c40: d06611 + l32i a0, a0, 172 /* [[g_phyFuns]+0xac] */ # c43: 02202b + and a5, a5, a7 # c46: 705510 + or a5, a5, a6 # c49: 605520 + or a4, a4, a5 # c4c: 504420 + extui a4, a4, 0, 16 # c4f: 4040f4 + callx0 a0 /* [[g_phyFuns]+0xac] */ # c52: c00000 + l32i a12, sp, 16 /* [(local4)] */ # c55: c841 + l32i a13, sp, 20 /* [(local5)] */ # c57: d851 + l32i a0, sp, 12 /* [(local3)] */ # c59: 0831 + addi sp, sp, 32 /* (top of frame) */ # c5b: 12c120 + ret # c5e: 0df0 + + .literal_position # c60: 00000000 + +# Function @ .irom0.text+0xc64 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global rom_pbus_set_txgain + .type rom_pbus_set_txgain, @function +rom_pbus_set_txgain: + movi a3, 1 /* 0x00000001 */ # c64: 0c13 + extui a4, a2, 7, 2 # c66: 204714 + extui a5, a2, 0, 5 # c69: 205044 + addi sp, sp, -16 /* (local0) */ # c6c: 12c1f0 + extui a6, a2, 5, 2 # c6f: 206514 + slli a6, a6, 2 # c72: e06611 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # c75: 0901 + slli a5, a5, 4 # c77: c05511 + movi a0, g_phyFuns # c7a: 01f9ff + movi a2, 4 /* 0x00000004 */ # c7d: 0c42 + or a5, a5, a6 # c7f: 605520 + l32i a0, a0, 0 /* [g_phyFuns] */ # c82: 0800 + or a4, a4, a5 # c84: 504420 + l32i a0, a0, 172 /* [[g_phyFuns]+0xac] */ # c87: 02202b + extui a4, a4, 0, 16 # c8a: 4040f4 + callx0 a0 /* [[g_phyFuns]+0xac] */ # c8d: c00000 + l32i a0, sp, 0 /* [(local0)] */ # c90: 0801 + addi sp, sp, 16 /* (top of frame) */ # c92: 12c110 + ret # c95: 0df0 + + .literal_position # c98: 009a0060 + # c9c: 00020060 + # ca0: fffffff7 + # ca4: 00000000 + +# Function @ .irom0.text+0xca8 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global rom_pbus_workmode + .type rom_pbus_workmode, @function +rom_pbus_workmode: + addi sp, sp, -16 /* (local0) */ # ca8: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # cab: 0901 + movi a7, -2 /* 0xfffffffe */ # cad: 7ce7 + movi a3, 0x60009a00 # caf: 31faff + movi a6, 0x60000200 # cb2: 61faff + memw # cb5: c02000 + l32i a5, a6, 0x394 /* [0x60000594] */ # cb8: 5226e5 + and a5, a5, a7 # cbb: 705510 + memw # cbe: c02000 + s32i a5, a6, 0x394 /* a5 -> [0x60000594] */ # cc1: 5266e5 + movi a4, 0xf7ffffff # cc4: 41f7ff + memw # cc7: c02000 + l32i a2, a3, 0x108 /* [0x60009b08] */ # cca: 222342 + and a2, a2, a4 # ccd: 402210 + memw # cd0: c02000 + movi a0, g_phyFuns # cd3: 01f4ff + l32i a0, a0, 0 /* [g_phyFuns] */ # cd6: 0800 + l32i a0, a0, 120 /* [[g_phyFuns]+0x78] */ # cd8: 02201e + s32i a2, a3, 0x108 /* a2 -> [0x60009b08] */ # cdb: 226342 + callx0 a0 /* [[g_phyFuns]+0x78] */ # cde: c00000 + l32i a0, sp, 0 /* [(local0)] */ # ce1: 0801 + addi sp, sp, 16 /* (top of frame) */ # ce3: 12c110 + ret # ce6: 0df0 + + .literal_position # ce8: 00000000 + # cec: 00000000 + # cf0: 00000000 + +# Function @ .irom0.text+0xcf4 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global rom_pbus_xpd_rx_off + .type rom_pbus_xpd_rx_off, @function +rom_pbus_xpd_rx_off: + movi a3, 1 /* 0x00000001 */ # cf4: 0c13 + movi a4, 128 /* 0x00000080 */ # cf6: 42a080 + addi sp, sp, -16 /* (local0) */ # cf9: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # cfc: 0901 + movi a0, g_phyFuns # cfe: 01faff + add a4, a2, a4 /* arg0+0x80 */ # d01: 4a42 + l32i a0, a0, 0 /* [g_phyFuns] */ # d03: 0800 + extui a4, a4, 0, 16 # d05: 4040f4 + l32i a0, a0, 172 /* [[g_phyFuns]+0xac] */ # d08: 02202b + movi a2, 2 /* 0x00000002 */ # d0b: 0c22 + callx0 a0 /* [[g_phyFuns]+0xac] */ # d0d: c00000 + movi a0, g_phyFuns # d10: 01f7ff + movi a2, 3 /* 0x00000003 */ # d13: 0c32 + l32i a0, a0, 0 /* [g_phyFuns] */ # d15: 0800 + movi a3, 1 /* 0x00000001 */ # d17: 0c13 + l32i a0, a0, 172 /* [[g_phyFuns]+0xac] */ # d19: 02202b + movi a4, 0 /* 0x00000000 */ # d1c: 0c04 + callx0 a0 /* [[g_phyFuns]+0xac] */ # d1e: c00000 + movi a0, g_phyFuns # d21: 01f3ff + movi a2, 3 /* 0x00000003 */ # d24: 0c32 + l32i a0, a0, 0 /* [g_phyFuns] */ # d26: 0800 + movi a3, 2 /* 0x00000002 */ # d28: 0c23 + l32i a0, a0, 172 /* [[g_phyFuns]+0xac] */ # d2a: 02202b + movi a4, 0 /* 0x00000000 */ # d2d: 0c04 + callx0 a0 /* [[g_phyFuns]+0xac] */ # d2f: c00000 + l32i a0, sp, 0 /* [(local0)] */ # d32: 0801 + addi sp, sp, 16 /* (top of frame) */ # d34: 12c110 + ret # d37: 0df0 + + .literal_position # d3c: 00000000 + # d40: 00000000 + +# Function @ .irom0.text+0xd44 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global rom_pbus_xpd_rx_on + .type rom_pbus_xpd_rx_on, @function +rom_pbus_xpd_rx_on: + addi sp, sp, -16 /* (local0) */ # d44: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # d47: 0901 + movi a0, g_phyFuns # d49: 01fcff + movi a2, 2 /* 0x00000002 */ # d4c: 0c22 + l32i a0, a0, 0 /* [g_phyFuns] */ # d4e: 0800 + movi a3, 1 /* 0x00000001 */ # d50: 0c13 + l32i a0, a0, 172 /* [[g_phyFuns]+0xac] */ # d52: 02202b + movi a4, 388 /* 0x00000184 */ # d55: 42a184 + callx0 a0 /* [[g_phyFuns]+0xac] */ # d58: c00000 + movi a0, g_phyFuns # d5b: 01f9ff + movi a2, 3 /* 0x00000003 */ # d5e: 0c32 + l32i a0, a0, 0 /* [g_phyFuns] */ # d60: 0800 + movi a3, 2 /* 0x00000002 */ # d62: 0c23 + l32i a0, a0, 172 /* [[g_phyFuns]+0xac] */ # d64: 02202b + movi a4, 6 /* 0x00000006 */ # d67: 0c64 + callx0 a0 /* [[g_phyFuns]+0xac] */ # d69: c00000 + l32i a0, sp, 0 /* [(local0)] */ # d6c: 0801 + addi sp, sp, 16 /* (top of frame) */ # d6e: 12c110 + ret # d71: 0df0 + + .literal_position # d74: 00000000 + # d78: 00000000 + # d7c: 00000000 + +# Function @ .irom0.text+0xd80 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global rom_pbus_xpd_tx_off + .type rom_pbus_xpd_tx_off, @function +rom_pbus_xpd_tx_off: + addi sp, sp, -16 /* (local0) */ # d80: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # d83: 0901 + movi a0, g_phyFuns # d85: 01fbff + movi a2, 6 /* 0x00000006 */ # d88: 0c62 + l32i a0, a0, 0 /* [g_phyFuns] */ # d8a: 0800 + movi a3, 1 /* 0x00000001 */ # d8c: 0c13 + l32i a0, a0, 172 /* [[g_phyFuns]+0xac] */ # d8e: 02202b + movi a4, 0 /* 0x00000000 */ # d91: 0c04 + callx0 a0 /* [[g_phyFuns]+0xac] */ # d93: c00000 + movi a0, g_phyFuns # d96: 01f8ff + movi a2, 1 /* 0x00000001 */ # d99: 0c12 + l32i a0, a0, 0 /* [g_phyFuns] */ # d9b: 0800 + movi a3, 1 /* 0x00000001 */ # d9d: 0c13 + l32i a0, a0, 172 /* [[g_phyFuns]+0xac] */ # d9f: 02202b + movi a4, 12 /* 0x0000000c */ # da2: 0cc4 + callx0 a0 /* [[g_phyFuns]+0xac] */ # da4: c00000 + movi a0, g_phyFuns # da7: 01f5ff + movi a2, 2 /* 0x00000002 */ # daa: 0c22 + l32i a0, a0, 0 /* [g_phyFuns] */ # dac: 0800 + movi a3, 1 /* 0x00000001 */ # dae: 0c13 + l32i a0, a0, 172 /* [[g_phyFuns]+0xac] */ # db0: 02202b + movi a4, 128 /* 0x00000080 */ # db3: 42a080 + callx0 a0 /* [[g_phyFuns]+0xac] */ # db6: c00000 + l32i a0, sp, 0 /* [(local0)] */ # db9: 0801 + addi sp, sp, 16 /* (top of frame) */ # dbb: 12c110 + ret # dbe: 0df0 + + .literal_position # dc0: 00000000 + +# Function @ .irom0.text+0xdc4 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 + .global rom_pbus_xpd_tx_on + .type rom_pbus_xpd_tx_on, @function +rom_pbus_xpd_tx_on: + movi a3, 1 /* 0x00000001 */ # dc4: 0c13 + movi a4, 129 /* 0x00000081 */ # dc6: 42a081 + addi sp, sp, -16 /* (local0) */ # dc9: 12c1f0 + s32i a12, sp, 8 /* a12 -> [(local2)] */ # dcc: c921 + movi a12, g_phyFuns # dce: c1fcff + s32i a0, sp, 4 /* a0 -> [(local1)] */ # dd1: 0911 + l32i a0, a12, 0 /* [g_phyFuns] */ # dd3: 080c + s32i a2, sp, 0 /* arg0 -> [(local0)] */ # dd5: 2901 + l32i a0, a0, 172 /* [[g_phyFuns]+0xac] */ # dd7: 02202b + movi a2, 2 /* 0x00000002 */ # dda: 0c22 + callx0 a0 /* [[g_phyFuns]+0xac] */ # ddc: c00000 + movi a2, 7 /* 0x00000007 */ # ddf: 0c72 + l32i a0, a12, 0 /* [g_phyFuns] */ # de1: 080c + movi a3, 1 /* 0x00000001 */ # de3: 0c13 + l32i a0, a0, 172 /* [[g_phyFuns]+0xac] */ # de5: 02202b + movi a4, 95 /* 0x0000005f */ # de8: 5cf4 + callx0 a0 /* [[g_phyFuns]+0xac] */ # dea: c00000 + l32i a4, sp, 0 /* [(local0)] */ # ded: 4801 + l32i a0, a12, 0 /* [g_phyFuns] */ # def: 080c + movi a2, 0 /* 0x00000000 */ # df1: 0c02 + l32i a0, a0, 172 /* [[g_phyFuns]+0xac] */ # df3: 02202b + movi a3, 1 /* 0x00000001 */ # df6: 0c13 + callx0 a0 /* [[g_phyFuns]+0xac] */ # df8: c00000 + movi a2, 1 /* 0x00000001 */ # dfb: 0c12 + l32i a0, a12, 0 /* [g_phyFuns] */ # dfd: 080c + movi a3, 1 /* 0x00000001 */ # dff: 0c13 + l32i a0, a0, 172 /* [[g_phyFuns]+0xac] */ # e01: 02202b + movi a4, 127 /* 0x0000007f */ # e04: 42a07f + callx0 a0 /* [[g_phyFuns]+0xac] */ # e07: c00000 + movi a2, 6 /* 0x00000006 */ # e0a: 0c62 + l32i a0, a12, 0 /* [g_phyFuns] */ # e0c: 080c + movi a3, 1 /* 0x00000001 */ # e0e: 0c13 + l32i a0, a0, 172 /* [[g_phyFuns]+0xac] */ # e10: 02202b + movi a4, 127 /* 0x0000007f */ # e13: 42a07f + callx0 a0 /* [[g_phyFuns]+0xac] */ # e16: c00000 + l32i a12, sp, 8 /* [(local2)] */ # e19: c821 + l32i a0, sp, 4 /* [(local1)] */ # e1b: 0811 + addi sp, sp, 16 /* (top of frame) */ # e1d: 12c110 + ret # e20: 0df0 + + .literal_position # e24: 00000000 + +# Function @ .irom0.text+0xe28 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 + .global rom_pbus_xpd_tx_on__low_gain + .type rom_pbus_xpd_tx_on__low_gain, @function +rom_pbus_xpd_tx_on__low_gain: + movi a3, 1 /* 0x00000001 */ # e28: 0c13 + movi a4, 129 /* 0x00000081 */ # e2a: 42a081 + addi sp, sp, -16 /* (local0) */ # e2d: 12c1f0 + s32i a12, sp, 8 /* a12 -> [(local2)] */ # e30: c921 + movi a12, g_phyFuns # e32: c1fcff + s32i a0, sp, 4 /* a0 -> [(local1)] */ # e35: 0911 + l32i a0, a12, 0 /* [g_phyFuns] */ # e37: 080c + s32i a2, sp, 0 /* arg0 -> [(local0)] */ # e39: 2901 + l32i a0, a0, 172 /* [[g_phyFuns]+0xac] */ # e3b: 02202b + movi a2, 2 /* 0x00000002 */ # e3e: 0c22 + callx0 a0 /* [[g_phyFuns]+0xac] */ # e40: c00000 + movi a2, 7 /* 0x00000007 */ # e43: 0c72 + l32i a0, a12, 0 /* [g_phyFuns] */ # e45: 080c + movi a3, 1 /* 0x00000001 */ # e47: 0c13 + l32i a0, a0, 172 /* [[g_phyFuns]+0xac] */ # e49: 02202b + movi a4, 0 /* 0x00000000 */ # e4c: 0c04 + callx0 a0 /* [[g_phyFuns]+0xac] */ # e4e: c00000 + l32i a4, sp, 0 /* [(local0)] */ # e51: 4801 + l32i a0, a12, 0 /* [g_phyFuns] */ # e53: 080c + movi a2, 0 /* 0x00000000 */ # e55: 0c02 + l32i a0, a0, 172 /* [[g_phyFuns]+0xac] */ # e57: 02202b + movi a3, 1 /* 0x00000001 */ # e5a: 0c13 + callx0 a0 /* [[g_phyFuns]+0xac] */ # e5c: c00000 + movi a2, 1 /* 0x00000001 */ # e5f: 0c12 + l32i a0, a12, 0 /* [g_phyFuns] */ # e61: 080c + movi a3, 1 /* 0x00000001 */ # e63: 0c13 + l32i a0, a0, 172 /* [[g_phyFuns]+0xac] */ # e65: 02202b + movi a4, 127 /* 0x0000007f */ # e68: 42a07f + callx0 a0 /* [[g_phyFuns]+0xac] */ # e6b: c00000 + movi a2, 6 /* 0x00000006 */ # e6e: 0c62 + l32i a0, a12, 0 /* [g_phyFuns] */ # e70: 080c + movi a3, 1 /* 0x00000001 */ # e72: 0c13 + l32i a0, a0, 172 /* [[g_phyFuns]+0xac] */ # e74: 02202b + movi a4, 127 /* 0x0000007f */ # e77: 42a07f + callx0 a0 /* [[g_phyFuns]+0xac] */ # e7a: c00000 + l32i a12, sp, 8 /* [(local2)] */ # e7d: c821 + l32i a0, sp, 4 /* [(local1)] */ # e7f: 0811 + addi sp, sp, 16 /* (top of frame) */ # e81: 12c110 + ret # e84: 0df0 + + .literal_position # e88: ffffffc3 + # e8c: 00060060 + +# Function @ .irom0.text+0xe90 + .balign 4 + .global rom_phy_reset_req + .type rom_phy_reset_req, @function +rom_phy_reset_req: + movi a4, 0xc3ffffff # e90: 41feff + movi a3, 0x60000600 # e93: 31feff + memw # e96: c02000 + l32i a2, a3, 0x110 /* [0x60000710] */ # e99: 222344 + and a2, a2, a4 # e9c: 402210 + memw # e9f: c02000 + s32i a2, a3, 0x110 /* a2 -> [0x60000710] */ # ea2: 226344 + ret # ea5: 0df0 + + .literal_position # ea8: 00000000 + # eac: 00000000 + # eb0: 00000000 + +# Function @ .irom0.text+0xeb4 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global rom_restart_cal + .type rom_restart_cal, @function +rom_restart_cal: + movi a2, 98 /* 0x00000062 */ # eb4: 22a062 + addi sp, sp, -16 /* (local0) */ # eb7: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # eba: 0901 + movi a0, g_phyFuns # ebc: 01fbff + movi a3, 1 /* 0x00000001 */ # ebf: 0c13 + l32i a0, a0, 0 /* [g_phyFuns] */ # ec1: 0800 + movi a4, 0 /* 0x00000000 */ # ec3: 0c04 + l32i a0, a0, 152 /* [[g_phyFuns]+0x98] */ # ec5: 022026 + movi a5, 95 /* 0x0000005f */ # ec8: 5cf5 + callx0 a0 /* [[g_phyFuns]+0x98] */ # eca: c00000 + movi a2, 98 /* 0x00000062 */ # ecd: 22a062 + movi a0, g_phyFuns # ed0: 01f7ff + movi a3, 1 /* 0x00000001 */ # ed3: 0c13 + l32i a0, a0, 0 /* [g_phyFuns] */ # ed5: 0800 + movi a4, 0 /* 0x00000000 */ # ed7: 0c04 + l32i a0, a0, 152 /* [[g_phyFuns]+0x98] */ # ed9: 022026 + movi a5, 127 /* 0x0000007f */ # edc: 52a07f + callx0 a0 /* [[g_phyFuns]+0x98] */ # edf: c00000 + movi a2, 98 /* 0x00000062 */ # ee2: 22a062 + movi a0, g_phyFuns # ee5: 01f2ff + movi a3, 1 /* 0x00000001 */ # ee8: 0c13 + l32i a0, a0, 0 /* [g_phyFuns] */ # eea: 0800 + movi a4, 0 /* 0x00000000 */ # eec: 0c04 + l32i a0, a0, 152 /* [[g_phyFuns]+0x98] */ # eee: 022026 + movi a5, 63 /* 0x0000003f */ # ef1: 3cf5 + callx0 a0 /* [[g_phyFuns]+0x98] */ # ef3: c00000 + l32i a0, sp, 0 /* [(local0)] */ # ef6: 0801 + addi sp, sp, 16 /* (top of frame) */ # ef8: 12c110 + ret # efb: 0df0 + + .literal_position # f00: 00000000 + +# Function @ .irom0.text+0xf04 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global rom_rfpll_reset + .type rom_rfpll_reset, @function +rom_rfpll_reset: + movi a2, 98 /* 0x00000062 */ # f04: 22a062 + movi a3, 1 /* 0x00000001 */ # f07: 0c13 + addi sp, sp, -16 /* (local0) */ # f09: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # f0c: c911 + movi a12, g_phyFuns # f0e: c1fcff + s32i a0, sp, 0 /* a0 -> [(local0)] */ # f11: 0901 + l32i a0, a12, 0 /* [g_phyFuns] */ # f13: 080c + movi a4, 10 /* 0x0000000a */ # f15: 0ca4 + l32i a0, a0, 152 /* [[g_phyFuns]+0x98] */ # f17: 022026 + movi a5, 166 /* 0x000000a6 */ # f1a: 52a0a6 + callx0 a0 /* [[g_phyFuns]+0x98] */ # f1d: c00000 + movi a2, 98 /* 0x00000062 */ # f20: 22a062 + movi a3, 1 /* 0x00000001 */ # f23: 0c13 + l32i a0, a12, 0 /* [g_phyFuns] */ # f25: 080c + movi a4, 10 /* 0x0000000a */ # f27: 0ca4 + l32i a0, a0, 152 /* [[g_phyFuns]+0x98] */ # f29: 022026 + movi a5, 167 /* 0x000000a7 */ # f2c: 52a0a7 + callx0 a0 /* [[g_phyFuns]+0x98] */ # f2f: c00000 + movi a2, 98 /* 0x00000062 */ # f32: 22a062 + movi a3, 1 /* 0x00000001 */ # f35: 0c13 + l32i a0, a12, 0 /* [g_phyFuns] */ # f37: 080c + movi a4, 10 /* 0x0000000a */ # f39: 0ca4 + l32i a0, a0, 152 /* [[g_phyFuns]+0x98] */ # f3b: 022026 + movi a5, 165 /* 0x000000a5 */ # f3e: 52a0a5 + callx0 a0 /* [[g_phyFuns]+0x98] */ # f41: c00000 + movi a2, 99 /* 0x00000063 */ # f44: 22a063 + movi a3, 0 /* 0x00000000 */ # f47: 0c03 + l32i a0, a12, 0 /* [g_phyFuns] */ # f49: 080c + movi a4, 1 /* 0x00000001 */ # f4b: 0c14 + l32i a0, a0, 152 /* [[g_phyFuns]+0x98] */ # f4d: 022026 + movi a5, 243 /* 0x000000f3 */ # f50: 52a0f3 + callx0 a0 /* [[g_phyFuns]+0x98] */ # f53: c00000 + movi a2, 98 /* 0x00000062 */ # f56: 22a062 + movi a3, 1 /* 0x00000001 */ # f59: 0c13 + l32i a0, a12, 0 /* [g_phyFuns] */ # f5b: 080c + movi a4, 11 /* 0x0000000b */ # f5d: 0cb4 + l32i a0, a0, 152 /* [[g_phyFuns]+0x98] */ # f5f: 022026 + movi a5, 192 /* 0x000000c0 */ # f62: 52a0c0 + callx0 a0 /* [[g_phyFuns]+0x98] */ # f65: c00000 + l32i a12, sp, 4 /* [(local1)] */ # f68: c811 + l32i a0, sp, 0 /* [(local0)] */ # f6a: 0801 + addi sp, sp, 16 /* (top of frame) */ # f6c: 12c110 + ret # f6f: 0df0 + + .literal_position # f74: 00000000 + +# Function @ .irom0.text+0xf78 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 + .global rom_write_rfpll_sdm + .type rom_write_rfpll_sdm, @function +rom_write_rfpll_sdm: + movi a3, 0 /* 0x00000000 */ # f78: 0c03 + movi a4, 0 /* 0x00000000 */ # f7a: 0c04 + movi a5, 7 /* 0x00000007 */ # f7c: 0c75 + addi sp, sp, -16 /* (local0) */ # f7e: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # f81: c911 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # f83: d921 + movi a13, g_phyFuns # f85: d1fbff + s32i a0, sp, 0 /* a0 -> [(local0)] */ # f88: 0901 + l32i a0, a13, 0 /* [g_phyFuns] */ # f8a: 080d + mov a12, a2 /* arg0 */ # f8c: cd02 + l32i a0, a0, 152 /* [[g_phyFuns]+0x98] */ # f8e: 022026 + movi a2, 99 /* 0x00000063 */ # f91: 22a063 + callx0 a0 /* [[g_phyFuns]+0x98] */ # f94: c00000 + movi a2, 99 /* 0x00000063 */ # f97: 22a063 + movi a3, 0 /* 0x00000000 */ # f9a: 0c03 + l32i a0, a13, 0 /* [g_phyFuns] */ # f9c: 080d + movi a4, 3 /* 0x00000003 */ # f9e: 0c34 + l32i a0, a0, 152 /* [[g_phyFuns]+0x98] */ # fa0: 022026 + l8ui a5, a12, 0 /* [arg0] */ # fa3: 520c00 + callx0 a0 /* [[g_phyFuns]+0x98] */ # fa6: c00000 + movi a2, 99 /* 0x00000063 */ # fa9: 22a063 + movi a3, 0 /* 0x00000000 */ # fac: 0c03 + l32i a0, a13, 0 /* [g_phyFuns] */ # fae: 080d + movi a4, 4 /* 0x00000004 */ # fb0: 0c44 + l32i a0, a0, 152 /* [[g_phyFuns]+0x98] */ # fb2: 022026 + l8ui a5, a12, 1 /* [arg0+0x1] */ # fb5: 520c01 + callx0 a0 /* [[g_phyFuns]+0x98] */ # fb8: c00000 + l8ui a5, a12, 2 /* [arg0+0x2] */ # fbb: 520c02 + movi a2, 99 /* 0x00000063 */ # fbe: 22a063 + l32i a0, a13, 0 /* [g_phyFuns] */ # fc1: 080d + movi a3, 0 /* 0x00000000 */ # fc3: 0c03 + l32i a0, a0, 152 /* [[g_phyFuns]+0x98] */ # fc5: 022026 + movi a4, 5 /* 0x00000005 */ # fc8: 0c54 + callx0 a0 /* [[g_phyFuns]+0x98] */ # fca: c00000 + movi a2, 99 /* 0x00000063 */ # fcd: 22a063 + movi a3, 0 /* 0x00000000 */ # fd0: 0c03 + l32i a0, a13, 0 /* [g_phyFuns] */ # fd2: 080d + movi a4, 0 /* 0x00000000 */ # fd4: 0c04 + l32i a0, a0, 152 /* [[g_phyFuns]+0x98] */ # fd6: 022026 + movi a5, 23 /* 0x00000017 */ # fd9: 1c75 + callx0 a0 /* [[g_phyFuns]+0x98] */ # fdb: c00000 + l32i a12, sp, 4 /* [(local1)] */ # fde: c811 + l32i a13, sp, 8 /* [(local2)] */ # fe0: d821 + l32i a0, sp, 0 /* [(local0)] */ # fe2: 0801 + addi sp, sp, 16 /* (top of frame) */ # fe4: 12c110 + ret # fe7: 0df0 + + .literal_position # fec: 000040c0 + # ff0: 00000840 + # ff4: 0000da40 + # ff8: 0000e440 + # ffc: 00008043 + # 1000: 00000000 + # 1004: 00000000 + # 1008: 00000000 + # 100c: 00000000 + # 1010: 00000000 + # 1014: 00000000 + # 1018: 00000000 + # 101c: 00000000 + # 1020: 00000000 + # 1024: 00000000 + # 1028: 00000000 + # 102c: 00000000 + # 1030: 00000000 + # 1034: 00000000 + # 1038: 00000000 + # 103c: 00000000 + # 1040: 00000000 + # 1044: 00000000 + # 1048: 00000000 + +# Function @ .irom0.text+0x104c +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word[4] @ -0x10 + .balign 4 + .global rom_rfpll_set_freq + .type rom_rfpll_set_freq, @function +rom_rfpll_set_freq: + addi sp, sp, -32 /* (local0) */ # 104c: 12c1e0 + s32i a3, sp, 0 /* arg1 -> [(local0)] */ # 104f: 3901 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 1051: 0911 + s32i a13, sp, 12 /* a13 -> [(local3)] */ # 1053: d931 + s32i a12, sp, 8 /* a12 -> [(local2)] */ # 1055: c921 + s32i a14, sp, 16 /* a14 -> [(local4)] */ # 1057: e941 + mov a12, a5 /* arg3 */ # 1059: cd05 + movi a14, 0xc0400000 # 105b: e1e4ff + movi a13, 0 /* 0x00000000 */ # 105e: 0c0d + slli a0, a2, 10 # 1060: 600211 + add a0, a4, a0 # 1063: 0a04 + slli a2, a0, 2 # 1065: e02011 + call0 __floatunsidf # 1068: 01e6ffc0 + # 106c: 0000 + movi a5, 0x40080000 # 106e: 51e0ff + movi a4, 0 /* 0x00000000 */ # 1071: 0c04 + call0 __divdf3 # 1073: 01e4ffc0 + # 1077: 0000 + call0 __truncdfsf2 # 1079: 01e3ffc0 + # 107d: 0000 + call0 __extendsfdf2 # 107f: 01e3ffc0 + # 1083: 0000 + l32i a4, sp, 0 /* [(local0)] */ # 1085: 4801 + beqz a4, .Lbr089 # 1087: 9ce4 + movi a5, 0x40da0000 # 1089: 51daff + movi a4, 0 /* 0x00000000 */ # 108c: 0c04 + call0 __divdf3 # 108e: 01e0ffc0 + # 1092: 0000 + mov a4, a13 /* 0x00000000 */ # 1094: 4d0d + mov a5, a14 /* 0xc0400000 */ # 1096: 5d0e + call0 __adddf3 # 1098: 01dfffc0 + # 109c: 0000 + call0 __truncdfsf2 # 109e: 01deffc0 + # 10a2: 0000 + mov a14, a2 # 10a4: ed02 + j .Lbr090 # 10a6: 060700 +.Lbr089: movi a5, 0x40e40000 # 10a9: 51d3ff + movi a4, 0 /* 0x00000000 */ # 10ac: 0c04 + call0 __divdf3 # 10ae: 01dbffc0 + # 10b2: 0000 + mov a4, a13 /* 0x00000000 */ # 10b4: 4d0d + mov a5, a14 /* 0xc0400000 */ # 10b6: 5d0e + call0 __adddf3 # 10b8: 01daffc0 + # 10bc: 0000 + call0 __truncdfsf2 # 10be: 01d9ffc0 + # 10c2: 0000 + mov a14, a2 # 10c4: ed02 +.Lbr090: movi a13, 0x43800000 # 10c6: d1cdff + mov a2, a14 # 10c9: 2d0e + call0 __fixunssfsi # 10cb: 01d7ffc0 + # 10cf: 0000 + s8i a2, a12, 0 /* a2 -> [arg3] */ # 10d1: 224c00 + extui a2, a2, 0, 8 # 10d4: 202074 + call0 __floatsisf # 10d7: 01d5ffc0 + # 10db: 0000 + mov a3, a2 # 10dd: 3d02 + mov a2, a14 # 10df: 2d0e + call0 __subsf3 # 10e1: 01d3ffc0 + # 10e5: 0000 + mov a3, a13 /* 0x43800000 */ # 10e7: 3d0d + call0 __mulsf3 # 10e9: 01d2ffc0 + # 10ed: 0000 + mov a14, a2 # 10ef: ed02 + call0 __fixunssfsi # 10f1: 01d1ffc0 + # 10f5: 0000 + s8i a2, a12, 1 /* a2 -> [arg3+0x1] */ # 10f7: 224c01 + extui a2, a2, 0, 8 # 10fa: 202074 + call0 __floatsisf # 10fd: 01cfffc0 + # 1101: 0000 + mov a3, a2 # 1103: 3d02 + mov a2, a14 # 1105: 2d0e + call0 __subsf3 # 1107: 01ceffc0 + # 110b: 0000 + mov a3, a13 /* 0x43800000 */ # 110d: 3d0d + call0 __mulsf3 # 110f: 01cdffc0 + # 1113: 0000 + call0 __fixunssfsi # 1115: 01ccffc0 + # 1119: 0000 + l32i a0, sp, 4 /* [(local1)] */ # 111b: 0811 + l32i a13, sp, 12 /* [(local3)] */ # 111d: d831 + s8i a2, a12, 2 /* a2 -> [arg3+0x2] */ # 111f: 224c02 + l32i a14, sp, 16 /* [(local4)] */ # 1122: e841 + l32i a12, sp, 8 /* [(local2)] */ # 1124: c821 + addi sp, sp, 32 /* (top of frame) */ # 1126: 12c120 + ret # 1129: 0df0 + + .section .rodata, "a", @progbits + +.Ldata001: .byte 0x00, 0x02, 0x04, 0x05, 0x07, 0x09, 0x0b, 0x0c + .byte 0x00, 0x00, 0x80, 0x43 diff --git a/binary_sdk/libphy_stage1/phy_chip_v5_cal_romfunc.S b/binary_sdk/libphy_stage1/phy_chip_v5_cal_romfunc.S new file mode 100644 index 0000000..de53718 --- /dev/null +++ b/binary_sdk/libphy_stage1/phy_chip_v5_cal_romfunc.S @@ -0,0 +1,2136 @@ + + .section .data, "aw", @progbits + +.Lstr001: .ascii "iVPH@72" # 0: 69565048 + # 4: 403732 + + .section .irom0.text, "ax", @progbits + + .literal_position # 0: 00000000 + # 4: 000a0060 + # 8: 00000000 + # c: 00000000 + # 10: f13c1101 + # 14: f33c1101 + # 18: 00000040 + # 1c: 00000000 + # 20: f03c1101 + # 24: ffff0300 + # 28: 00960060 + # 2c: 00000000 + +# Function @ .irom0.text+0x30 +# Local variables/stack: +# (local0): word @ -0x30 +# (local1): word @ -0x2c +# (local2): word @ -0x28 +# (local3): word @ -0x24 +# (local4): word @ -0x20 +# (local5): word @ -0x1c +# (local6): word @ -0x18 +# (local7): word @ -0x14 +# (local8): word @ -0x10 +# (local9): word @ -0xc +# (local10): word @ -0x8 +# (local11): word @ -0x4 + .balign 4 + .global rom_cal_tos_v50 + .type rom_cal_tos_v50, @function +rom_cal_tos_v50: + mov a8, a4 /* arg2 */ # 30: 8d04 + addi sp, sp, -48 /* (local0) */ # 32: 12c1d0 + s32i a13, sp, 28 /* a13 -> [(local7)] */ # 35: d971 + s32i a5, sp, 44 /* arg3 -> [(local11)] */ # 37: 59b1 + s32i a6, sp, 16 /* arg4 -> [(local4)] */ # 39: 6941 + extui a4, a3, 0, 16 # 3b: 3040f4 + s32i a0, sp, 20 /* a0 -> [(local5)] */ # 3e: 0951 + s32i a2, sp, 12 /* arg0 -> [(local3)] */ # 40: 2931 + s32i a12, sp, 24 /* a12 -> [(local6)] */ # 42: c961 + s32i a15, sp, 36 /* a15 -> [(local9)] */ # 44: f991 + s32i a14, sp, 32 /* a14 -> [(local8)] */ # 46: e981 + movi a15, 64 /* 0x00000040 */ # 48: 4c0f + movi a14, 64 /* 0x00000040 */ # 4a: 4c0e + movi a12, g_phyFuns # 4c: c1edff + movi a2, 0 /* 0x00000000 */ # 4f: 0c02 + l32i a0, a12, 0 /* [g_phyFuns] */ # 51: 080c + movi a3, 1 /* 0x00000001 */ # 53: 0c13 + l32i a0, a0, 172 /* [[g_phyFuns]+0xac] */ # 55: 02202b + s32i a8, sp, 40 /* arg2 -> [(local10)] */ # 58: 89a1 + callx0 a0 /* [[g_phyFuns]+0xac] */ # 5a: c00000 + l32i a2, sp, 44 /* [(local11)] */ # 5d: 28b1 + movi a13, 0x60000a00 # 5f: d1e9ff + beqz a2, .Lbr007 # 62: 16920d + movi a12, 20 /* 0x00000014 */ # 65: 1c4c + movi a8, 0 /* 0x00000000 */ # 67: 0c08 + s32i a8, sp, 8 /* 0x00000000 -> [(local2)] */ # 69: 8921 +.Lbr001: movi a0, g_phyFuns # 6b: 01e7ff + movi a2, 1 /* 0x00000001 */ # 6e: 0c12 + l32i a0, a0, 0 /* [g_phyFuns] */ # 70: 0800 + movi a3, 2 /* 0x00000002 */ # 72: 0c23 + l32i a0, a0, 172 /* [[g_phyFuns]+0xac] */ # 74: 02202b + extui a4, a14, 0, 16 # 77: e040f4 + callx0 a0 /* [[g_phyFuns]+0xac] */ # 7a: c00000 + movi a0, g_phyFuns # 7d: 01e3ff + movi a2, 0 /* 0x00000000 */ # 80: 0c02 + l32i a0, a0, 0 /* [g_phyFuns] */ # 82: 0800 + movi a3, 2 /* 0x00000002 */ # 84: 0c23 + l32i a0, a0, 172 /* [[g_phyFuns]+0xac] */ # 86: 02202b + extui a4, a15, 0, 16 # 89: f040f4 + callx0 a0 /* [[g_phyFuns]+0xac] */ # 8c: c00000 + memw # 8f: c02000 + movi a3, 0x01113cf1 # 92: 31dfff + s32i a3, a13, 0x34c /* 0x01113cf1 -> [0x60000d4c] */ # 95: 326dd3 + memw # 98: c02000 + movi a2, 0x01113cf3 # 9b: 21deff + s32i a2, a13, 0x34c /* 0x01113cf3 -> [0x60000d4c] */ # 9e: 226dd3 + l32i a2, sp, 40 /* [(local10)] */ # a1: 28a1 + call0 ets_delay_us # a3: 01e2ffc0 + # a7: 0000 + l32i a0, sp, 8 /* [(local2)] */ # a9: 0821 + movi a9, 127 /* 0x0000007f */ # ab: 92a07f + memw # ae: c02000 + l32i a4, a13, 0x34c /* [0x60000d4c] */ # b1: 422dd3 + movi a5, 1 /* 0x00000001 */ # b4: 0c15 + extui a4, a4, 31, 1 # b6: 404f05 + xor a4, a4, a5 # b9: 504430 + memw # bc: c02000 + movi a3, 0x40000000 # bf: 31d6ff + l32i a6, a13, 0x34c /* [0x60000d4c] */ # c2: 622dd3 + movi a11, 0 /* 0x00000000 */ # c5: 0c0b + and a6, a6, a3 # c7: 306610 + moveqz a11, a5, a6 # ca: 60b583 + beqz a4, .Lbr005 # cd: 16c404 + mov a10, a9 /* 0x0000007f */ # d0: ad09 + add a15, a12, a15 # d2: fafc + slli a15, a15, 24 # d4: 80ff01 + srai a15, a15, 24 # d7: f0f831 + blt a9, a15, .Lbr002 # da: f72901 + mov a10, a15 # dd: ad0f +.Lbr002: l32i a2, sp, 44 /* [(local11)] */ # df: 28b1 + addi a0, a0, 1 /* [(local2)]+0x1 */ # e1: 1b00 + slli a15, a10, 24 # e3: 80fa01 + srai a15, a15, 24 # e6: f0f831 + extui a0, a0, 0, 8 # e9: 000074 + beqz a11, .Lbr006 # ec: bceb + mov a3, a9 /* 0x0000007f */ # ee: 3d09 + add a10, a12, a14 # f0: eaac + slli a10, a10, 24 # f2: 80aa01 + srai a10, a10, 24 # f5: a0a831 + blt a9, a10, .Lbr003 # f8: a72901 + mov a3, a10 # fb: 3d0a +.Lbr003: slli a14, a3, 24 # fd: 80e301 + srai a14, a14, 24 # 100: e0e831 + beqi a12, 1, .Lbr004 # 103: 261c08 + srai a12, a12, 1 # 106: c0c121 + slli a12, a12, 24 # 109: 80cc01 + srai a12, a12, 24 # 10c: c0c831 +.Lbr004: s32i a0, sp, 8 /* a0 -> [(local2)] */ # 10f: 0921 + sub a2, a2, a0 # 111: 0022c0 + bnez a2, .Lbr001 # 114: 5632f5 + movi a12, g_phyFuns # 117: c1c1ff + j .Lbr007 # 11a: 460800 +.Lbr005: movi a10, 0 /* 0x00000000 */ # 11d: 0c0a + sub a2, a15, a12 # 11f: c02fc0 + slli a2, a2, 24 # 122: 802201 + srai a2, a2, 24 # 125: 202831 + movgez a10, a2, a2 # 128: 20a2b3 + j .Lbr002 # 12b: 06ecff +.Lbr006: movi a3, 0 /* 0x00000000 */ # 12e: 0c03 + sub a4, a14, a12 # 130: c04ec0 + slli a4, a4, 24 # 133: 804401 + srai a4, a4, 24 # 136: 404831 + movgez a3, a4, a4 # 139: 4034b3 + j .Lbr003 # 13c: 46efff +.Lbr007: movi a2, 1 /* 0x00000001 */ # 13f: 0c12 + movi a3, 2 /* 0x00000002 */ # 141: 0c23 + l32i a0, a12, 0 /* [g_phyFuns] */ # 143: 080c + slli a4, a14, 24 # 145: 804e01 + srai a4, a4, 24 # 148: 404831 + s32i a4, sp, 0 /* a4 -> [(local0)] */ # 14b: 4901 + l32i a0, a0, 172 /* [[g_phyFuns]+0xac] */ # 14d: 02202b + extui a4, a4, 0, 16 # 150: 4040f4 + callx0 a0 /* [[g_phyFuns]+0xac] */ # 153: c00000 + movi a2, 0 /* 0x00000000 */ # 156: 0c02 + movi a3, 2 /* 0x00000002 */ # 158: 0c23 + l32i a0, a12, 0 /* [g_phyFuns] */ # 15a: 080c + slli a4, a15, 24 # 15c: 804f01 + srai a4, a4, 24 # 15f: 404831 + s32i a4, sp, 4 /* a4 -> [(local1)] */ # 162: 4911 + l32i a0, a0, 172 /* [[g_phyFuns]+0xac] */ # 164: 02202b + extui a4, a4, 0, 16 # 167: 4040f4 + callx0 a0 /* [[g_phyFuns]+0xac] */ # 16a: c00000 + movi a2, 1 /* 0x00000001 */ # 16d: 0c12 + l32i a0, a12, 0 /* [g_phyFuns] */ # 16f: 080c + movi a3, 1 /* 0x00000001 */ # 171: 0c13 + l32i a0, a0, 172 /* [[g_phyFuns]+0xac] */ # 173: 02202b + movi a4, 127 /* 0x0000007f */ # 176: 42a07f + callx0 a0 /* [[g_phyFuns]+0xac] */ # 179: c00000 + movi a4, 0x01113cf0 # 17c: 41a9ff + memw # 17f: c02000 + l32i a2, sp, 12 /* [(local3)] */ # 182: 2831 + l32i a3, sp, 16 /* [(local4)] */ # 184: 3841 + s32i a4, a13, 0x34c /* 0x01113cf0 -> [0x60000d4c] */ # 186: 426dd3 + s8i a15, a3, 0 /* a15 -> [[(local4)]] */ # 189: f24300 + s8i a14, a3, 1 /* a14 -> [[(local4)]+0x1] */ # 18c: e24301 + beqz a2, .Lbr008 # 18f: ac32 + movi a6, 0x60009600 # 191: 61a5ff + movi a9, 0x0003ffff # 194: 91a4ff + l32i a7, sp, 4 /* [(local1)] */ # 197: 7811 + l32i a8, sp, 0 /* [(local0)] */ # 199: 8801 + slli a7, a7, 18 # 19b: e07701 + slli a8, a8, 25 # 19e: 708801 + memw # 1a1: c02000 + l32i a5, a6, 0x264 /* [0x60009864] */ # 1a4: 522699 + and a5, a5, a9 # 1a7: 905510 + or a5, a5, a8 # 1aa: 805520 + or a5, a5, a7 # 1ad: 705520 + memw # 1b0: c02000 + s32i a5, a6, 0x264 /* a5 -> [0x60009864] */ # 1b3: 526699 +.Lbr008: l32i a12, sp, 24 /* [(local6)] */ # 1b6: c861 + l32i a13, sp, 28 /* [(local7)] */ # 1b8: d871 + l32i a14, sp, 32 /* [(local8)] */ # 1ba: e881 + l32i a15, sp, 36 /* [(local9)] */ # 1bc: f891 + l32i a0, sp, 20 /* [(local5)] */ # 1be: 0851 + addi sp, sp, 48 /* (top of frame) */ # 1c0: 12c130 + ret /* [(local3)] */ # 1c3: 0df0 + + .literal_position # 1c8: 00000000 + # 1cc: 00000000 + # 1d0: 00000000 + # 1d4: 0c000000 + # 1d8: 14000000 + # 1dc: 50000000 + # 1e0: 50000000 + # 1e4: 00000000 + # 1e8: 00000000 + # 1ec: 00000000 + # 1f0: 00000000 + # 1f4: 00000000 + # 1f8: 00000000 + +# Function @ .irom0.text+0x1fc +# Local variables/stack: +# (local0): word @ -0x80 +# (local1): word[3] @ -0x7c +# (local2): word @ -0x70 +# (local3): word @ -0x6c +# (local4): word @ -0x68 +# (local5): word @ -0x64 +# (local6): word @ -0x60 +# (local7): word @ -0x5c +# (local8): word @ -0x58 +# (local9): word @ -0x54 +# (local10): word @ -0x50 +# (local11): word @ -0x4c +# (local12): word @ -0x48 +# (local13): word @ -0x44 +# (local14): word @ -0x40 +# (local15): word @ -0x3c +# (local16): word @ -0x38 +# (local17): word @ -0x34 +# (local18): word @ -0x30 +# (local19): word @ -0x2c +# (local20): word @ -0x28 +# (local21): word @ -0x24 +# (local22): word @ -0x20 +# (local23): word @ -0x1c +# (local24): word @ -0x18 +# (local25): word @ -0x14 +# (local26): word @ -0x10 +# (local27): word[3] @ -0xc + .balign 4 + .global rom_pbus_dco___SA2 + .type rom_pbus_dco___SA2, @function +rom_pbus_dco___SA2: + mov a8, a2 /* arg0 */ # 1fc: 8d02 + addi sp, sp, -128 /* (local0) */ # 1fe: 12c180 + s32i a12, sp, 32 /* a12 -> [(local6)] */ # 201: c981 + s32i a13, sp, 36 /* a13 -> [(local7)] */ # 203: d991 + s32i a15, sp, 44 /* a15 -> [(local9)] */ # 205: f9b1 + s32i a5, sp, 68 /* arg3 -> [(local15)] */ # 207: 526111 + s32i a6, sp, 96 /* arg4 -> [(local22)] */ # 20a: 626118 + movi a2, 3 /* 0x00000003 */ # 20d: 0c32 + s32i a4, sp, 88 /* arg2 -> [(local20)] */ # 20f: 426116 + s32i a3, sp, 52 /* arg1 -> [(local11)] */ # 212: 39d1 + s32i a14, sp, 40 /* a14 -> [(local8)] */ # 214: e9a1 + movi a14, g_phyFuns # 216: e1ecff + s32i a0, sp, 28 /* a0 -> [(local5)] */ # 219: 0971 + l32i a0, a14, 0 /* [g_phyFuns] */ # 21b: 080e + movi a3, 1 /* 0x00000001 */ # 21d: 0c13 + l32i a0, a0, 176 /* [[g_phyFuns]+0xb0] */ # 21f: 02202c + s32i a8, sp, 92 /* arg0 -> [(local21)] */ # 222: 826117 + callx0 a0 /* [[g_phyFuns]+0xb0] */ # 225: c00000 + s32i a2, sp, 84 /* a2 -> [(local19)] */ # 228: 226115 + movi a3, 124 /* 0x0000007c */ # 22b: 32a07c + and a4, a2, a3 # 22e: 304210 + s32i a4, sp, 108 /* a4 -> [(local25)] */ # 231: 42611b + bnone a3, a2, .Lbr010 # 234: 270318 + movi a12, 0 /* 0x00000000 */ # 237: 0c0c +.Lbr009: l32i a5, sp, 108 /* [(local25)] */ # 239: 52211b + extui a13, a5, 0, 1 # 23c: 50d004 + add a12, a12, a13 # 23f: dacc + srli a5, a5, 1 # 241: 505141 + s32i a5, sp, 108 /* a5 -> [(local25)] */ # 244: 52611b + extui a12, a12, 0, 8 # 247: c0c074 + bnez a5, .Lbr009 # 24a: 56b5fe + j .Lbr011 # 24d: 460000 +.Lbr010: movi a12, 0 /* 0x00000000 */ # 250: 0c0c +.Lbr011: l32i a0, a14, 0 /* [g_phyFuns] */ # 252: 080e + movi a2, 3 /* 0x00000003 */ # 254: 0c32 + l32i a0, a0, 176 /* [[g_phyFuns]+0xb0] */ # 256: 02202c + movi a3, 2 /* 0x00000002 */ # 259: 0c23 + callx0 a0 /* [[g_phyFuns]+0xb0] */ # 25b: c00000 + movi a3, 2 /* 0x00000002 */ # 25e: 0c23 + movi a4, 256 /* 0x00000100 */ # 260: 42a100 + l32i a0, a14, 0 /* [g_phyFuns] */ # 263: 080e + mov a13, a2 # 265: dd02 + l32i a0, a0, 172 /* [[g_phyFuns]+0xac] */ # 267: 02202b + movi a2, 4 /* 0x00000004 */ # 26a: 0c42 + callx0 a0 /* [[g_phyFuns]+0xac] */ # 26c: c00000 + movi a2, 5 /* 0x00000005 */ # 26f: 0c52 + l32i a0, a14, 0 /* [g_phyFuns] */ # 271: 080e + movi a3, 2 /* 0x00000002 */ # 273: 0c23 + l32i a0, a0, 172 /* [[g_phyFuns]+0xac] */ # 275: 02202b + movi a4, 256 /* 0x00000100 */ # 278: 42a100 + callx0 a0 /* [[g_phyFuns]+0xac] */ # 27b: c00000 + addi a2, a12, 6 # 27e: 6b2c + movi a0, 1 /* 0x00000001 */ # 280: 0c10 + s32i a2, sp, 80 /* a2 -> [(local18)] */ # 282: 226114 + extui a2, a2, 0, 8 # 285: 202074 + s32i a2, sp, 108 /* a2 -> [(local25)] */ # 288: 22611b + bltui a12, 4, .Lbr012 # 28b: b64c01 + movi a0, 0 /* 0x00000000 */ # 28e: 0c00 +.Lbr012: bltui a12, 3, .Lbr013 # 290: b63c09 + movi a4, 5 /* 0x00000005 */ # 293: 0c54 + movi a8, 10 /* 0x0000000a */ # 295: 0ca8 + movnez a8, a4, a0 # 297: 008493 + j .Lbr014 # 29a: 460000 +.Lbr013: movi a8, 2 /* 0x00000002 */ # 29d: 0c28 +.Lbr014: movi a6, 0 /* 0x00000000 */ # 29f: 0c06 + movi a2, .Lstr001 # 2a1: 21caff + movi a3, 5 /* 0x00000005 */ # 2a4: 0c53 + l32i a11, sp, 80 /* [(local18)] */ # 2a6: b22114 + s32i a12, sp, 24 /* a12 -> [(local4)] */ # 2a9: c961 + extui a15, a13, 3, 8 # 2ab: d0f374 + movi a5, 2 /* 0x00000002 */ # 2ae: 0c25 + movi a10, 0 /* 0x00000000 */ # 2b0: 0c0a + extui a4, a8, 0, 8 # 2b2: 804074 + s32i a4, sp, 104 /* a4 -> [(local24)] */ # 2b5: 42611a + s32i a10, sp, 100 /* 0x00000000 -> [(local23)] */ # 2b8: a26119 + s32i a5, sp, 72 /* 0x00000002 -> [(local16)] */ # 2bb: 526112 + movi a13, 512 /* 0x00000200 */ # 2be: d2a200 + movi a12, 512 /* 0x00000200 */ # 2c1: c2a200 + s32i a15, sp, 48 /* a15 -> [(local10)] */ # 2c4: f9c1 + extui a11, a11, 0, 8 # 2c6: b0b074 + movnez a3, a5, a0 # 2c9: 003593 + s32i a3, sp, 56 /* a3 -> [(local12)] */ # 2cc: 39e1 + s32i a11, sp, 60 /* a11 -> [(local13)] */ # 2ce: b9f1 + add a15, a15, a2 # 2d0: 2aff + s32i a15, sp, 64 /* a15 -> [(local14)] */ # 2d2: f26110 +.Lbr015: l32i a15, sp, 52 /* [(local11)] */ # 2d5: f8d1 + l32i a5, sp, 100 /* [(local23)] */ # 2d7: 522119 + s32i a6, sp, 112 /* 0x00000000 -> [(local26)] */ # 2da: 62611c + addx4 a15, a5, a15 # 2dd: f0f5a0 + addi a5, a5, 1 /* [(local23)]+0x1 */ # 2e0: 1b55 + s32i a5, sp, 76 /* [(local23)]+0x1 -> [(local17)] */ # 2e2: 526113 + extui a5, a5, 0, 8 # 2e5: 505074 + s32i a5, sp, 116 /* a5 -> [(local27)] */ # 2e8: 52611d +.Lbr016: movi a2, 4 /* 0x00000004 */ # 2eb: 0c42 + l32i a3, sp, 116 /* [(local27)] */ # 2ed: 32211d + l32i a0, a14, 0 /* [g_phyFuns] */ # 2f0: 080e + addi a4, a12, 1 # 2f2: 1b4c + srai a5, a4, 1 # 2f4: 405121 + s16i a5, a15, 0 # 2f7: 525f00 + l32i a0, a0, 172 /* [[g_phyFuns]+0xac] */ # 2fa: 02202b + extui a4, a4, 1, 16 # 2fd: 4041f4 + callx0 a0 /* [[g_phyFuns]+0xac] */ # 300: c00000 + movi a2, 5 /* 0x00000005 */ # 303: 0c52 + l32i a3, sp, 116 /* [(local27)] */ # 305: 32211d + l32i a0, a14, 0 /* [g_phyFuns] */ # 308: 080e + addi a4, a13, 1 # 30a: 1b4d + srai a5, a4, 1 # 30c: 405121 + s16i a5, a15, 2 # 30f: 525f01 + l32i a0, a0, 172 /* [[g_phyFuns]+0xac] */ # 312: 02202b + extui a4, a4, 1, 16 # 315: 4041f4 + callx0 a0 /* [[g_phyFuns]+0xac] */ # 318: c00000 + l32i a2, sp, 88 /* [(local20)] */ # 31b: 222116 + call0 ets_delay_us # 31e: 01b1ffc0 + # 322: 0000 + movi a2, 1 /* 0x00000001 */ # 324: 0c12 + l32i a0, a14, 0 /* [g_phyFuns] */ # 326: 080e + l32i a3, sp, 92 /* [(local21)] */ # 328: 322117 + l32i a0, a0, 16 /* [[g_phyFuns]+0x10] */ # 32b: 0840 + addi a4, sp, 16 /* (local2) */ # 32d: 42c110 + callx0 a0 /* [[g_phyFuns]+0x10] */ # 330: c00000 + l32i a2, sp, 96 /* [(local22)] */ # 333: 222118 + beqz a2, .Lbr017 # 336: 9c82 + movi a2, .Lstr002 # 338: 21a6ff + mov a3, a12 # 33b: 3d0c + mov a4, a13 # 33d: 4d0d + call0 ets_printf # 33f: 01aaffc0 + # 343: 0000 + movi a2, .Lstr003 # 345: 21a3ff + l32i a3, sp, 16 /* [(local2)] */ # 348: 3841 + l32i a4, sp, 20 /* [(local3)] */ # 34a: 4851 + call0 ets_printf # 34c: 01a8ffc0 + # 350: 0000 +.Lbr017: l32i a0, a14, 0 /* [g_phyFuns] */ # 352: 080e + l32i a0, a0, 0 /* [[g_phyFuns]] */ # 354: 0800 + l32i a2, sp, 16 /* [(local2)] */ # 356: 2841 + callx0 a0 /* [[g_phyFuns]] */ # 358: c00000 + movi a0, 0 /* 0x00000000 */ # 35b: 0c00 + l32i a3, sp, 104 /* [(local24)] */ # 35d: 32211a + movi a9, 1023 /* 0x000003ff */ # 360: 92a3ff + blt a3, a2, .Lbr018 # 363: 272316 + l32i a0, a14, 0 /* [g_phyFuns] */ # 366: 080e + l32i a0, a0, 0 /* [[g_phyFuns]] */ # 368: 0800 + l32i a2, sp, 20 /* [(local3)] */ # 36a: 2851 + callx0 a0 /* [[g_phyFuns]] */ # 36c: c00000 + movi a0, 0 /* 0x00000000 */ # 36f: 0c00 + l32i a3, sp, 104 /* [(local24)] */ # 371: 32211a + movi a9, 1023 /* 0x000003ff */ # 374: 92a3ff + blt a3, a2, .Lbr018 # 377: 272302 + j .Lbr023 # 37a: 462500 +.Lbr018: l32i a10, sp, 20 /* [(local3)] */ # 37d: a851 + l32i a4, sp, 100 /* [(local23)] */ # 37f: 422119 + l32i a8, sp, 16 /* [(local2)] */ # 382: 8841 + bnez a4, .Lbr020 # 384: 569404 + l32i a2, sp, 80 /* [(local18)] */ # 387: 222114 + l32i a11, sp, 64 /* [(local14)] */ # 38a: b22110 + extui a2, a2, 0, 8 # 38d: 202074 + l8ui a11, a11, 0 /* [[(local14)]] */ # 390: b20b00 + s32i a2, sp, 108 /* a2 -> [(local25)] */ # 393: 22611b + l32i a2, sp, 60 /* [(local13)] */ # 396: 28f1 + mull a10, a10, a11 # 398: b0aa82 + ssr a2 # 39b: 000240 + sra a10, a10 # 39e: a0a0b1 + mull a2, a8, a11 # 3a1: b02882 + sra a2, a2 # 3a4: 2020b1 + sub a12, a12, a2 # 3a7: 20ccc0 + slli a12, a12, 16 # 3aa: 00cc11 + srai a12, a12, 16 # 3ad: c0c031 +.Lbr019: sub a13, a13, a10 # 3b0: a0ddc0 + l32i a2, sp, 112 /* [(local26)] */ # 3b3: 22211c + mov a10, a9 /* 0x000003ff */ # 3b6: ad09 + slli a13, a13, 16 # 3b8: 00dd11 + addi a3, a2, 1 /* [(local26)]+0x1 */ # 3bb: 1b32 + srai a13, a13, 16 # 3bd: d0d031 + extui a2, a3, 0, 8 # 3c0: 302074 + s32i a2, sp, 112 /* a2 -> [(local26)] */ # 3c3: 22611c + addi a2, a2, -12 # 3c6: 22c2f4 + blt a9, a12, .Lbr021 # 3c9: c72928 + mov a10, a12 # 3cc: ad0c + j .Lbr021 # 3ce: c60800 +.Lbr020: l32i a11, sp, 108 /* [(local25)] */ # 3d1: b2211b + addx4 a10, a10, a10 # 3d4: a0aaa0 + addx4 a2, a8, a8 # 3d7: 8028a0 + slli a2, a2, 3 # 3da: d02211 + slli a10, a10, 3 # 3dd: d0aa11 + ssr a11 # 3e0: 000b40 + sra a10, a10 # 3e3: a0a0b1 + sra a2, a2 # 3e6: 2020b1 + sub a12, a12, a2 # 3e9: 20ccc0 + slli a12, a12, 16 # 3ec: 00cc11 + srai a12, a12, 16 # 3ef: c0c031 + j .Lbr019 # 3f2: 86eeff +.Lbr021: mov a12, a0 /* 0x00000000 */ # 3f5: cd00 + movgez a12, a10, a10 # 3f7: a0cab3 + mov a10, a9 /* 0x000003ff */ # 3fa: ad09 + slli a12, a12, 16 # 3fc: 00cc11 + srai a12, a12, 16 # 3ff: c0c031 + blt a9, a13, .Lbr022 # 402: d72901 + mov a10, a13 # 405: ad0d +.Lbr022: movgez a0, a10, a10 # 407: a00ab3 + slli a13, a0, 16 # 40a: 00d011 + srai a13, a13, 16 # 40d: d0d031 + bnez a2, .Lbr016 # 410: 5672ed +.Lbr023: l32i a9, sp, 68 /* [(local15)] */ # 413: 922111 + l32i a4, sp, 84 /* [(local19)] */ # 416: 422115 + l32i a5, sp, 56 /* [(local12)] */ # 419: 58e1 + extui a7, a4, 4, 1 # 41b: 407404 + extui a6, a4, 2, 2 # 41e: 406214 + extui a5, a5, 0, 8 # 421: 505074 + s32i a5, sp, 104 /* a5 -> [(local24)] */ # 424: 52611a + add a6, a6, a7 # 427: 7a66 + extui a4, a6, 0, 8 # 429: 604074 + s32i a4, sp, 84 /* a4 -> [(local19)] */ # 42c: 426115 + beqz a4, .Lbr024 # 42f: 8cb4 + l32i a8, sp, 84 /* [(local19)] */ # 431: 822115 + movi a0, 5 /* 0x00000005 */ # 434: 0c50 + bltui a8, 2, .Lbr025 # 436: b62806 + movi a0, 6 /* 0x00000006 */ # 439: 0c60 + j .Lbr025 # 43b: 460000 +.Lbr024: movi a0, 4 /* 0x00000004 */ # 43e: 0c40 +.Lbr025: extui a10, a0, 0, 8 # 440: 00a074 + s32i a10, sp, 108 /* a10 -> [(local25)] */ # 443: a2611b + beqz a9, .Lbr026 # 446: 9cc9 + movi a2, .Lstr004 # 448: 2164ff + l32i a3, sp, 76 /* [(local17)] */ # 44b: 322113 + l32i a4, sp, 24 /* [(local4)] */ # 44e: 4861 + l32i a5, sp, 48 /* [(local10)] */ # 450: 58c1 + l32i a7, sp, 20 /* [(local3)] */ # 452: 7851 + l32i a6, sp, 16 /* [(local2)] */ # 454: 6841 + l16si a12, a15, 0 # 456: c29f00 + s32i a12, sp, 0 /* a12 -> [(local0)] */ # 459: c901 + l16si a11, a15, 2 # 45b: b29f01 + s32i a11, sp, 4 /* a11 -> [(local1)] */ # 45e: b911 + call0 ets_printf # 460: 0164ffc0 + # 464: 0000 +.Lbr026: l32i a13, sp, 96 /* [(local22)] */ # 466: d22118 + beqz a13, .Lbr027 # 469: 8c7d + movi a2, .Label001 # 46b: 215cff + call0 ets_printf # 46e: 0161ffc0 + # 472: 0000 +.Lbr027: movi a13, 512 /* 0x00000200 */ # 474: d2a200 + movi a12, 512 /* 0x00000200 */ # 477: c2a200 + movi a6, 0 /* 0x00000000 */ # 47a: 0c06 + l32i a15, sp, 72 /* [(local16)] */ # 47c: f22112 + l32i a0, sp, 76 /* [(local17)] */ # 47f: 022113 + addi a15, a15, -1 /* [(local16)]-0x1 */ # 482: 0bff + extui a0, a0, 0, 8 # 484: 000074 + s32i a0, sp, 100 /* a0 -> [(local23)] */ # 487: 026119 + s32i a15, sp, 72 /* [(local16)]-0x1 -> [(local16)] */ # 48a: f26112 + bnez a15, .Lbr015 # 48d: 564fe4 + l32i a2, sp, 68 /* [(local15)] */ # 490: 222111 + beqz a2, .Lbr028 # 493: 8c72 + movi a2, .Label001 # 495: 2152ff + call0 ets_printf # 498: 0158ffc0 + # 49c: 0000 +.Lbr028: l32i a12, sp, 32 /* [(local6)] */ # 49e: c881 + l32i a13, sp, 36 /* [(local7)] */ # 4a0: d891 + l32i a14, sp, 40 /* [(local8)] */ # 4a2: e8a1 + l32i a15, sp, 44 /* [(local9)] */ # 4a4: f8b1 + movi a2, 128 /* 0x00000080 */ # 4a6: 22a080 + l32i a0, sp, 28 /* [(local5)] */ # 4a9: 0871 + add sp, sp, a2 /* (top of frame) */ # 4ab: 2a11 + ret /* 0x00000080 */ # 4ad: 0df0 + + .literal_position # 4b0: 00000000 + # 4b4: 54000000 + # 4b8: 00000000 + # 4bc: 00000000 + +# Function @ .irom0.text+0x4c0 +# Local variables/stack: +# (local0): word @ -0x60 +# (local1): word @ -0x5c +# (local2): word[2] @ -0x58 +# (local3): word @ -0x50 +# (local4): word @ -0x4c +# (local5): word @ -0x48 +# (local6): word @ -0x44 +# (local7): word @ -0x40 +# (local8): word @ -0x3c +# (local9): word @ -0x38 +# (local10): word @ -0x34 +# (local11): word @ -0x30 +# (local12): word @ -0x2c +# (local13): word @ -0x28 +# (local14): word @ -0x24 +# (local15): word @ -0x20 +# (local16): word @ -0x1c +# (local17): word @ -0x18 +# (local18): word @ -0x14 +# (local19): word @ -0x10 +# (local20): word @ -0xc +# (local21): word @ -0x8 +# (local22): word @ -0x4 + .balign 4 + .global rom_rfcal_pwrctrl + .type rom_rfcal_pwrctrl, @function +rom_rfcal_pwrctrl: + addi sp, sp, -96 /* (local0) */ # 4c0: 12c1a0 + s32i a15, sp, 32 /* a15 -> [(local7)] */ # 4c3: f981 + s32i a3, sp, 48 /* arg1 -> [(local11)] */ # 4c5: 39c1 + s32i a4, sp, 56 /* arg2 -> [(local13)] */ # 4c7: 49e1 + s32i a5, sp, 64 /* arg3 -> [(local15)] */ # 4c9: 526110 + s32i a7, sp, 52 /* arg5 -> [(local12)] */ # 4cc: 79d1 + s32i a14, sp, 28 /* a14 -> [(local6)] */ # 4ce: e971 + s32i a13, sp, 24 /* a13 -> [(local5)] */ # 4d0: d961 + s32i a12, sp, 20 /* a12 -> [(local4)] */ # 4d2: c951 + movi a12, g_phyFuns # 4d4: c1f7ff + s32i a0, sp, 16 /* a0 -> [(local3)] */ # 4d7: 0941 + l32i a0, a12, 0 /* [g_phyFuns] */ # 4d9: 080c + mov a13, a6 /* arg4 */ # 4db: dd06 + l32i a0, a0, 160 /* [[g_phyFuns]+0xa0] */ # 4dd: 022028 + mov a14, a2 /* arg0 */ # 4e0: ed02 + callx0 a0 /* [[g_phyFuns]+0xa0] */ # 4e2: c00000 + l32i a0, a12, 0 /* [g_phyFuns] */ # 4e5: 080c + l32i a0, a0, 192 /* [[g_phyFuns]+0xc0] */ # 4e7: 022030 + movi a2, 1 /* 0x00000001 */ # 4ea: 0c12 + callx0 a0 /* [[g_phyFuns]+0xc0] */ # 4ec: c00000 + l32i a0, a12, 0 /* [g_phyFuns] */ # 4ef: 080c + l32i a0, a0, 204 /* [[g_phyFuns]+0xcc] */ # 4f1: 022033 + extui a2, a13, 0, 5 # 4f4: d02044 + callx0 a0 /* [[g_phyFuns]+0xcc] */ # 4f7: c00000 + l32i a0, a12, 0 /* [g_phyFuns] */ # 4fa: 080c + l32i a0, a0, 24 /* [[g_phyFuns]+0x18] */ # 4fc: 0860 + movi a2, 0 /* 0x00000000 */ # 4fe: 0c02 + callx0 a0 /* [[g_phyFuns]+0x18] */ # 500: c00000 + l32i a2, sp, 56 /* [(local13)] */ # 503: 28e1 + s32i a13, sp, 92 /* arg4 -> [(local22)] */ # 505: d26117 + beqz a2, .Lbr036 # 508: 16b210 + movi a13, 0 /* 0x00000000 */ # 50b: 0c0d + s32i a14, sp, 40 /* arg0 -> [(local9)] */ # 50d: e9a1 + l32i a7, sp, 92 /* [(local22)] */ # 50f: 722117 + l16ui a3, sp, 96 /* [(local23)] */ # 512: 321130 + l8ui a4, sp, 104 /* [(FP)+0x8] */ # 515: 420168 + l16ui a5, sp, 100 /* [(FP)+0x4] */ # 518: 521132 + s32i a5, sp, 36 /* [(FP)+0x4] -> [(local8)] */ # 51b: 5991 + s32i a4, sp, 44 /* [(FP)+0x8] -> [(local10)] */ # 51d: 49b1 + s32i a3, sp, 88 /* [(local23)] -> [(local21)] */ # 51f: 326116 + extui a8, a7, 0, 3 # 522: 708024 + extui a7, a7, 3, 2 # 525: 707314 + addx2 a7, a7, a7 # 528: 707790 + addx2 a7, a7, a8 # 52b: 807790 + extui a7, a7, 0, 8 # 52e: 707074 + s32i a7, sp, 60 /* a7 -> [(local14)] */ # 531: 79f1 +.Lbr029: movi a14, 0 /* 0x00000000 */ # 533: 0c0e + movi a15, 0 /* 0x00000000 */ # 535: 0c0f + l32i a8, sp, 48 /* [(local11)] */ # 537: 88c1 + l32i a9, sp, 64 /* [(local15)] */ # 539: 922110 + add a8, a8, a13 # 53c: da88 + l8ui a8, a8, 0 # 53e: 820800 + s32i a8, sp, 80 /* a8 -> [(local19)] */ # 541: 826114 + sub a8, a8, a9 # 544: 9088c0 + s32i a8, sp, 72 /* a8 -> [(local17)] */ # 547: 826112 +.Lbr030: l32i a2, sp, 60 /* [(local14)] */ # 54a: 28f1 + l32i a3, sp, 72 /* [(local17)] */ # 54c: 322112 + l32i a0, a12, 0 /* [g_phyFuns] */ # 54f: 080c + sub a3, a3, a14 # 551: e033c0 + l32i a0, a0, 28 /* [[g_phyFuns]+0x1c] */ # 554: 0870 + extui a3, a3, 0, 8 # 556: 303074 + callx0 a0 /* [[g_phyFuns]+0x1c] */ # 559: c00000 + s32i a2, sp, 68 /* a2 -> [(local16)] */ # 55c: 226111 + l32i a0, a12, 0 /* [g_phyFuns] */ # 55f: 080c + extui a2, a2, 0, 8 # 561: 202074 + l32i a0, a0, 80 /* [[g_phyFuns]+0x50] */ # 564: 022014 + s32i a2, sp, 76 /* a2 -> [(local18)] */ # 567: 226113 + callx0 a0 /* [[g_phyFuns]+0x50] */ # 56a: c00000 + movi a5, 0 /* 0x00000000 */ # 56d: 0c05 + movi a6, 0 /* 0x00000000 */ # 56f: 0c06 + movi a7, 0 /* 0x00000000 */ # 571: 0c07 + mov a4, a2 # 573: 4d02 + movi a3, 0 /* 0x00000000 */ # 575: 0c03 + s32i a3, sp, 8 /* 0x00000000 -> [(local2)] */ # 577: 3921 + s32i a3, sp, 4 /* 0x00000000 -> [(local1)] */ # 579: 3911 + s32i a3, sp, 0 /* 0x00000000 -> [(local0)] */ # 57b: 3901 + l32i a0, a12, 0 /* [g_phyFuns] */ # 57d: 080c + movi a2, 1 /* 0x00000001 */ # 57f: 0c12 + l32i a0, a0, 104 /* [[g_phyFuns]+0x68] */ # 581: 02201a + l32i a3, sp, 40 /* [(local9)] */ # 584: 38a1 + callx0 a0 /* [[g_phyFuns]+0x68] */ # 586: c00000 + bnez a13, .Lbr031 # 589: cc8d + bnez a15, .Lbr031 # 58b: cc6f + l32i a2, sp, 36 /* [(local8)] */ # 58d: 2891 + call0 ets_delay_us # 58f: 01caffc0 + # 593: 0000 +.Lbr031: l32i a0, a12, 0 /* [g_phyFuns] */ # 595: 080c + l32i a0, a0, 44 /* [[g_phyFuns]+0x2c] */ # 597: 08b0 + l32i a2, sp, 88 /* [(local21)] */ # 599: 222116 + callx0 a0 /* [[g_phyFuns]+0x2c] */ # 59c: c00000 + l32i a0, a12, 0 /* [g_phyFuns] */ # 59f: 080c + s32i a2, sp, 84 /* a2 -> [(local20)] */ # 5a1: 226115 + l32i a0, a0, 44 /* [[g_phyFuns]+0x2c] */ # 5a4: 08b0 + l32i a2, sp, 88 /* [(local21)] */ # 5a6: 222116 + callx0 a0 /* [[g_phyFuns]+0x2c] */ # 5a9: c00000 + l32i a0, sp, 84 /* [(local20)] */ # 5ac: 022115 + l32i a6, sp, 80 /* [(local19)] */ # 5af: 622114 + add a0, a0, a2 # 5b2: 2a00 + slli a0, a0, 16 # 5b4: 000011 + srai a0, a0, 16 # 5b7: 000031 + addi a0, a0, 4 # 5ba: 4b00 + srai a0, a0, 3 # 5bc: 000321 + sub a6, a0, a6 # 5bf: 6060c0 + slli a6, a6, 16 # 5c2: 006611 + srai a6, a6, 16 # 5c5: 606031 + beqz a6, .Lbr032 # 5c8: 8cb6 + add a14, a6, a14 # 5ca: eae6 + addi a15, a15, 1 # 5cc: 1bff + extui a15, a15, 0, 8 # 5ce: f0f074 + addi a2, a15, -4 # 5d1: 22cffc + bnez a2, .Lbr030 # 5d4: 5622f7 +.Lbr032: l32i a8, sp, 44 /* [(local10)] */ # 5d7: 88b1 + l32i a3, sp, 64 /* [(local15)] */ # 5d9: 322110 + l32i a9, sp, 52 /* [(local12)] */ # 5dc: 98d1 + l32i a2, sp, 76 /* [(local18)] */ # 5de: 222113 + add a9, a9, a13 # 5e1: da99 + bltu a2, a3, .Lbr033 # 5e3: 373208 + l32i a6, sp, 68 /* [(local16)] */ # 5e6: 622111 + sub a6, a6, a3 # 5e9: 3066c0 + j .Lbr034 # 5ec: 460000 +.Lbr033: movi a6, 0 /* 0x00000000 */ # 5ef: 0c06 +.Lbr034: s8i a6, a9, 0 # 5f1: 624900 + beqz a8, .Lbr035 # 5f4: 9c28 + l32i a4, sp, 80 /* [(local19)] */ # 5f6: 422114 + movi a2, .Lstr005 # 5f9: 21aeff + mov a3, a13 # 5fc: 3d0d + slli a5, a0, 24 # 5fe: 805001 + srai a5, a5, 24 # 601: 505831 + call0 ets_printf # 604: 01aeffc0 + # 608: 0000 +.Lbr035: l32i a6, sp, 56 /* [(local13)] */ # 60a: 68e1 + addi a13, a13, 1 # 60c: 1bdd + extui a13, a13, 0, 8 # 60e: d0d074 + sub a6, a6, a13 # 611: d066c0 + bnez a6, .Lbr029 # 614: 56b6f1 +.Lbr036: l32i a0, a12, 0 /* [g_phyFuns] */ # 617: 080c + l32i a0, a0, 108 /* [[g_phyFuns]+0x6c] */ # 619: 02201b + movi a2, 1 /* 0x00000001 */ # 61c: 0c12 + callx0 a0 /* [[g_phyFuns]+0x6c] */ # 61e: c00000 + l32i a0, a12, 0 /* [g_phyFuns] */ # 621: 080c + l32i a0, a0, 200 /* [[g_phyFuns]+0xc8] */ # 623: 022032 + callx0 a0 /* [[g_phyFuns]+0xc8] */ # 626: c00000 + l32i a0, a12, 0 /* [g_phyFuns] */ # 629: 080c + l32i a0, a0, 196 /* [[g_phyFuns]+0xc4] */ # 62b: 022031 + callx0 a0 /* [[g_phyFuns]+0xc4] */ # 62e: c00000 + l32i a0, a12, 0 /* [g_phyFuns] */ # 631: 080c + l32i a0, a0, 188 /* [[g_phyFuns]+0xbc] */ # 633: 02202f + callx0 a0 /* [[g_phyFuns]+0xbc] */ # 636: c00000 + l32i a12, sp, 20 /* [(local4)] */ # 639: c851 + l32i a13, sp, 24 /* [(local5)] */ # 63b: d861 + l32i a14, sp, 28 /* [(local6)] */ # 63d: e871 + l32i a15, sp, 32 /* [(local7)] */ # 63f: f881 + l32i a0, sp, 16 /* [(local3)] */ # 641: 0841 + addi sp, sp, 96 /* (local23) */ # 643: 12c160 + ret # 646: 0df0 + + .literal_position # 648: 00000000 + +# Function @ .irom0.text+0x64c +# Local variables/stack: +# (local0): word @ -0x50 +# (local1): word @ -0x4c +# (local2): word[2] @ -0x48 +# (local3): byte @ -0x40 +# (local4): byte @ -0x3f +# (local5): byte @ -0x3e +# (local6): byte @ -0x3d +# (local7): word @ -0x3c +# (local8): word @ -0x38 +# (local9): word @ -0x34 +# (local10): word @ -0x30 +# (local11): word @ -0x2c +# (local12): word @ -0x28 +# (local13): word @ -0x24 +# (local14): word @ -0x20 +# (local15): word @ -0x1c +# (local16): word @ -0x18 +# (local17): word @ -0x14 +# (local18): word @ -0x10 +# (local19): word @ -0xc +# (local20): word @ -0x8 +# (local21): word @ -0x4 + .balign 4 + .global rom_rfcal_rxiq + .type rom_rfcal_rxiq, @function +rom_rfcal_rxiq: + mov a9, a5 /* arg3 */ # 64c: 9d05 + mov a10, a3 /* arg1 */ # 64e: ad03 + addi sp, sp, -80 /* (local0) */ # 650: 12c1b0 + s32i a13, sp, 56 /* a13 -> [(local16)] */ # 653: d9e1 + s32i a14, sp, 60 /* a14 -> [(local17)] */ # 655: e9f1 + s32i a7, sp, 32 /* arg5 -> [(local10)] */ # 657: 7981 + movi a3, 0 /* 0x00000000 */ # 659: 0c03 + movi a5, 0 /* 0x00000000 */ # 65b: 0c05 + s32i a15, sp, 64 /* a15 -> [(local18)] */ # 65d: f26110 + s32i a0, sp, 48 /* a0 -> [(local14)] */ # 660: 09c1 + s32i a12, sp, 52 /* a12 -> [(local15)] */ # 662: c9d1 + s32i a6, sp, 76 /* arg4 -> [(local21)] */ # 664: 626113 + s32i a2, sp, 20 /* arg0 -> [(local7)] */ # 667: 2951 + s32i a4, sp, 24 /* arg2 -> [(local8)] */ # 669: 4961 + movi a2, 119 /* 0x00000077 */ # 66b: 22a077 + movi a4, 16 /* 0x00000010 */ # 66e: 1c04 + movi a6, 0 /* 0x00000000 */ # 670: 0c06 + movi a12, g_phyFuns # 672: c1f5ff + s32i a10, sp, 68 /* arg1 -> [(local19)] */ # 675: a26111 + l32i a0, a12, 0 /* [g_phyFuns] */ # 678: 080c + s32i a9, sp, 72 /* arg3 -> [(local20)] */ # 67a: 926112 + l32i a0, a0, 148 /* [[g_phyFuns]+0x94] */ # 67d: 022025 + l32i a15, sp, 76 /* [(local21)] */ # 680: f22113 + callx0 a0 /* [[g_phyFuns]+0x94] */ # 683: c00000 + movi a3, 0 /* 0x00000000 */ # 686: 0c03 + movi a4, 15 /* 0x0000000f */ # 688: 0cf4 + movi a5, 6 /* 0x00000006 */ # 68a: 0c65 + movi a6, 6 /* 0x00000006 */ # 68c: 0c66 + l32i a0, a12, 0 /* [g_phyFuns] */ # 68e: 080c + mov a14, a2 # 690: ed02 + l32i a0, a0, 148 /* [[g_phyFuns]+0x94] */ # 692: 022025 + movi a2, 119 /* 0x00000077 */ # 695: 22a077 + callx0 a0 /* [[g_phyFuns]+0x94] */ # 698: c00000 + movi a3, 0 /* 0x00000000 */ # 69b: 0c03 + movi a4, 24 /* 0x00000018 */ # 69d: 1c84 + movi a5, 5 /* 0x00000005 */ # 69f: 0c55 + movi a6, 5 /* 0x00000005 */ # 6a1: 0c56 + l32i a0, a12, 0 /* [g_phyFuns] */ # 6a3: 080c + mov a13, a2 # 6a5: dd02 + l32i a0, a0, 148 /* [[g_phyFuns]+0x94] */ # 6a7: 022025 + movi a2, 119 /* 0x00000077 */ # 6aa: 22a077 + callx0 a0 /* [[g_phyFuns]+0x94] */ # 6ad: c00000 + movi a3, 0 /* 0x00000000 */ # 6b0: 0c03 + movi a4, 24 /* 0x00000018 */ # 6b2: 1c84 + movi a5, 3 /* 0x00000003 */ # 6b4: 0c35 + movi a6, 3 /* 0x00000003 */ # 6b6: 0c36 + l32i a0, a12, 0 /* [g_phyFuns] */ # 6b8: 080c + s32i a2, sp, 36 /* a2 -> [(local11)] */ # 6ba: 2991 + l32i a0, a0, 148 /* [[g_phyFuns]+0x94] */ # 6bc: 022025 + movi a2, 119 /* 0x00000077 */ # 6bf: 22a077 + callx0 a0 /* [[g_phyFuns]+0x94] */ # 6c2: c00000 + movi a3, 0 /* 0x00000000 */ # 6c5: 0c03 + movi a4, 9 /* 0x00000009 */ # 6c7: 0c94 + movi a5, 7 /* 0x00000007 */ # 6c9: 0c75 + movi a6, 0 /* 0x00000000 */ # 6cb: 0c06 + l32i a0, a12, 0 /* [g_phyFuns] */ # 6cd: 080c + s32i a2, sp, 40 /* a2 -> [(local12)] */ # 6cf: 29a1 + l32i a0, a0, 148 /* [[g_phyFuns]+0x94] */ # 6d1: 022025 + movi a2, 119 /* 0x00000077 */ # 6d4: 22a077 + callx0 a0 /* [[g_phyFuns]+0x94] */ # 6d7: c00000 + l32i a0, a12, 0 /* [g_phyFuns] */ # 6da: 080c + s32i a2, sp, 28 /* a2 -> [(local9)] */ # 6dc: 2971 + l32i a0, a0, 64 /* [[g_phyFuns]+0x40] */ # 6de: 022010 + movi a2, 1 /* 0x00000001 */ # 6e1: 0c12 + callx0 a0 /* [[g_phyFuns]+0x40] */ # 6e3: c00000 + s8i a14, sp, 16 /* a14 -> [(local3)] */ # 6e6: e24110 + s8i a13, sp, 17 /* a13 -> [(local4)] */ # 6e9: d24111 + beqz a15, .Lbr037 # 6ec: 8ccf + l32i a0, a12, 0 /* [g_phyFuns] */ # 6ee: 080c + addi a2, sp, 16 /* (local3) */ # 6f0: 22c110 + l32i a0, a0, 0x114 /* [[g_phyFuns]+0x114] */ # 6f3: 022045 + addi a3, sp, 17 /* (local4) */ # 6f6: 32c111 + callx0 a0 /* [[g_phyFuns]+0x114] */ # 6f9: c00000 +.Lbr037: movi a2, 119 /* 0x00000077 */ # 6fc: 22a077 + movi a3, 0 /* 0x00000000 */ # 6ff: 0c03 + movi a4, 16 /* 0x00000010 */ # 701: 1c04 + movi a5, 2 /* 0x00000002 */ # 703: 0c25 + l32i a0, a12, 0 /* [g_phyFuns] */ # 705: 080c + movi a6, 2 /* 0x00000002 */ # 707: 0c26 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 709: 022027 + movi a7, 1 /* 0x00000001 */ # 70c: 0c17 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 70e: c00000 + s32i a14, sp, 44 /* a14 -> [(local13)] */ # 711: e9b1 + movi a2, 119 /* 0x00000077 */ # 713: 22a077 + movi a3, 0 /* 0x00000000 */ # 716: 0c03 + movi a4, 24 /* 0x00000018 */ # 718: 1c84 + movi a5, 7 /* 0x00000007 */ # 71a: 0c75 + l32i a0, a12, 0 /* [g_phyFuns] */ # 71c: 080c + movi a7, 1 /* 0x00000001 */ # 71e: 0c17 + l8ui a9, sp, 16 /* [(local3)] */ # 720: 920110 + l8ui a8, sp, 17 /* [(local4)] */ # 723: 820111 + sub a9, a9, a14 # 726: e099c0 + sub a8, a8, a13 # 729: d088c0 + movnez a8, a7, a8 # 72c: 808793 + movnez a9, a7, a9 # 72f: 909793 + s8i a9, sp, 16 /* a9 -> [(local3)] */ # 732: 924110 + s8i a8, sp, 17 /* a8 -> [(local4)] */ # 735: 824111 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 738: 022027 + movi a6, 7 /* 0x00000007 */ # 73b: 0c76 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 73d: c00000 + l32i a0, a12, 0 /* [g_phyFuns] */ # 740: 080c + l32i a14, sp, 68 /* [(local19)] */ # 742: e22111 + l32i a0, a0, 80 /* [[g_phyFuns]+0x50] */ # 745: 022014 + l32i a2, sp, 24 /* [(local8)] */ # 748: 2861 + callx0 a0 /* [[g_phyFuns]+0x50] */ # 74a: c00000 + movi a5, 0 /* 0x00000000 */ # 74d: 0c05 + movi a6, 0 /* 0x00000000 */ # 74f: 0c06 + movi a7, 0 /* 0x00000000 */ # 751: 0c07 + mov a4, a2 # 753: 4d02 + movi a3, 0 /* 0x00000000 */ # 755: 0c03 + s32i a3, sp, 8 /* 0x00000000 -> [(local2)] */ # 757: 3921 + s32i a3, sp, 4 /* 0x00000000 -> [(local1)] */ # 759: 3911 + s32i a3, sp, 0 /* 0x00000000 -> [(local0)] */ # 75b: 3901 + l32i a0, a12, 0 /* [g_phyFuns] */ # 75d: 080c + movi a2, 1 /* 0x00000001 */ # 75f: 0c12 + l32i a0, a0, 104 /* [[g_phyFuns]+0x68] */ # 761: 02201a + mov a3, a14 /* [(local19)] */ # 764: 3d0e + callx0 a0 /* [[g_phyFuns]+0x68] */ # 766: c00000 + l32i a2, sp, 20 /* [(local7)] */ # 769: 2851 + l32i a7, sp, 32 /* [(local10)] */ # 76b: 7881 + addi a6, sp, 19 /* (local6) */ # 76d: 62c113 + l8ui a4, sp, 17 /* [(local4)] */ # 770: 420111 + l32i a5, sp, 36 /* [(local11)] */ # 773: 5891 + l8ui a3, sp, 16 /* [(local3)] */ # 775: 320110 + mov a14, a5 /* [(local11)] */ # 778: ed05 + s32i a15, sp, 4 /* [(local21)] -> [(local1)] */ # 77a: f911 + s32i a6, sp, 0 /* (local6) -> [(local0)] */ # 77c: 6901 + s32i a7, sp, 8 /* [(local10)] -> [(local2)] */ # 77e: 7921 + addi a7, sp, 18 /* (local5) */ # 780: 72c112 + l32i a0, a12, 0 /* [g_phyFuns] */ # 783: 080c + l32i a6, sp, 40 /* [(local12)] */ # 785: 68a1 + l32i a0, a0, 0x10c /* [[g_phyFuns]+0x10c] */ # 787: 022043 + mov a15, a6 /* [(local12)] */ # 78a: fd06 + callx0 a0 /* [[g_phyFuns]+0x10c] */ # 78c: c00000 + l32i a0, a12, 0 /* [g_phyFuns] */ # 78f: 080c + l32i a0, a0, 108 /* [[g_phyFuns]+0x6c] */ # 791: 02201b + movi a2, 1 /* 0x00000001 */ # 794: 0c12 + callx0 a0 /* [[g_phyFuns]+0x6c] */ # 796: c00000 + l32i a7, sp, 44 /* [(local13)] */ # 799: 78b1 + movi a2, 119 /* 0x00000077 */ # 79b: 22a077 + movi a3, 0 /* 0x00000000 */ # 79e: 0c03 + movi a4, 16 /* 0x00000010 */ # 7a0: 1c04 + l32i a0, a12, 0 /* [g_phyFuns] */ # 7a2: 080c + movi a5, 0 /* 0x00000000 */ # 7a4: 0c05 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 7a6: 022027 + movi a6, 0 /* 0x00000000 */ # 7a9: 0c06 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 7ab: c00000 + mov a7, a13 # 7ae: 7d0d + movi a2, 119 /* 0x00000077 */ # 7b0: 22a077 + movi a3, 0 /* 0x00000000 */ # 7b3: 0c03 + movi a4, 15 /* 0x0000000f */ # 7b5: 0cf4 + l32i a0, a12, 0 /* [g_phyFuns] */ # 7b7: 080c + movi a5, 6 /* 0x00000006 */ # 7b9: 0c65 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 7bb: 022027 + movi a6, 6 /* 0x00000006 */ # 7be: 0c66 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 7c0: c00000 + mov a7, a14 /* [(local11)] */ # 7c3: 7d0e + movi a2, 119 /* 0x00000077 */ # 7c5: 22a077 + movi a3, 0 /* 0x00000000 */ # 7c8: 0c03 + movi a4, 24 /* 0x00000018 */ # 7ca: 1c84 + l32i a0, a12, 0 /* [g_phyFuns] */ # 7cc: 080c + movi a5, 5 /* 0x00000005 */ # 7ce: 0c55 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 7d0: 022027 + movi a6, 5 /* 0x00000005 */ # 7d3: 0c56 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 7d5: c00000 + mov a7, a15 /* [(local12)] */ # 7d8: 7d0f + movi a2, 119 /* 0x00000077 */ # 7da: 22a077 + movi a3, 0 /* 0x00000000 */ # 7dd: 0c03 + movi a4, 24 /* 0x00000018 */ # 7df: 1c84 + movi a5, 3 /* 0x00000003 */ # 7e1: 0c35 + l32i a0, a12, 0 /* [g_phyFuns] */ # 7e3: 080c + movi a6, 3 /* 0x00000003 */ # 7e5: 0c36 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 7e7: 022027 + l32i a13, sp, 28 /* [(local9)] */ # 7ea: d871 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 7ec: c00000 + mov a7, a13 /* [(local9)] */ # 7ef: 7d0d + movi a2, 119 /* 0x00000077 */ # 7f1: 22a077 + movi a3, 0 /* 0x00000000 */ # 7f4: 0c03 + movi a4, 9 /* 0x00000009 */ # 7f6: 0c94 + l32i a0, a12, 0 /* [g_phyFuns] */ # 7f8: 080c + movi a5, 7 /* 0x00000007 */ # 7fa: 0c75 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 7fc: 022027 + movi a6, 0 /* 0x00000000 */ # 7ff: 0c06 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 801: c00000 + movi a2, 119 /* 0x00000077 */ # 804: 22a077 + movi a3, 0 /* 0x00000000 */ # 807: 0c03 + movi a4, 24 /* 0x00000018 */ # 809: 1c84 + movi a5, 7 /* 0x00000007 */ # 80b: 0c75 + l32i a0, a12, 0 /* [g_phyFuns] */ # 80d: 080c + movi a6, 7 /* 0x00000007 */ # 80f: 0c76 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 811: 022027 + movi a7, 0 /* 0x00000000 */ # 814: 0c07 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 816: c00000 + movi a2, 119 /* 0x00000077 */ # 819: 22a077 + movi a3, 0 /* 0x00000000 */ # 81c: 0c03 + movi a4, 16 /* 0x00000010 */ # 81e: 1c04 + movi a5, 2 /* 0x00000002 */ # 820: 0c25 + l32i a0, a12, 0 /* [g_phyFuns] */ # 822: 080c + movi a6, 2 /* 0x00000002 */ # 824: 0c26 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 826: 022027 + movi a7, 0 /* 0x00000000 */ # 829: 0c07 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 82b: c00000 + l32i a0, a12, 0 /* [g_phyFuns] */ # 82e: 080c + l32i a13, sp, 72 /* [(local20)] */ # 830: d22112 + l32i a0, a0, 64 /* [[g_phyFuns]+0x40] */ # 833: 022010 + movi a2, 0 /* 0x00000000 */ # 836: 0c02 + callx0 a0 /* [[g_phyFuns]+0x40] */ # 838: c00000 + l32i a0, sp, 48 /* [(local14)] */ # 83b: 08c1 + l32i a12, sp, 52 /* [(local15)] */ # 83d: c8d1 + l32i a14, sp, 60 /* [(local17)] */ # 83f: e8f1 + l8ui a3, sp, 18 /* [(local5)] */ # 841: 320112 + l32i a15, sp, 64 /* [(local18)] */ # 844: f22110 + s8i a3, a13, 0 /* [(local5)] -> [[(local20)]] */ # 847: 324d00 + l8ui a2, sp, 19 /* [(local6)] */ # 84a: 220113 + s8i a2, a13, 1 /* [(local6)] -> [[(local20)]+0x1] */ # 84d: 224d01 + l32i a13, sp, 56 /* [(local16)] */ # 850: d8e1 + addi sp, sp, 80 /* (top of frame) */ # 852: 12c150 + ret /* [(local6)] */ # 855: 0df0 + + .literal_position # 858: 00000000 + # 85c: 00000000 + # 860: 00000000 + # 864: 00000000 + +# Function @ .irom0.text+0x868 +# Local variables/stack: +# (local0): byte[4] @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word @ -0x10 +# (local5): word @ -0xc +# (local6): word[2] @ -0x8 + .balign 4 + .global rom_rfcal_rxiq_set_reg + .type rom_rfcal_rxiq_set_reg, @function +rom_rfcal_rxiq_set_reg: + addi sp, sp, -32 /* (local0) */ # 868: 12c1e0 + s32i a12, sp, 8 /* a12 -> [(local2)] */ # 86b: c921 + s32i a13, sp, 12 /* a13 -> [(local3)] */ # 86d: d931 + s32i a4, sp, 24 /* arg2 -> [(local6)] */ # 86f: 4961 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 871: 0911 + s32i a14, sp, 16 /* a14 -> [(local4)] */ # 873: e941 + s32i a15, sp, 20 /* a15 -> [(local5)] */ # 875: f951 + mov a14, a5 /* arg3 */ # 877: ed05 + mov a15, a4 /* arg2 */ # 879: fd04 + movi a0, 15 /* 0x0000000f */ # 87b: 0cf0 + beqz a5, .Lbr040 # 87d: 9c95 + bgez a2, .Lbr038 # 87f: d6d200 + movi a13, 1 /* 0x00000001 */ # 882: 0c1d + neg a12, a2 # 884: 20c060 + slli a12, a12, 24 # 887: 80cc01 + srai a12, a12, 24 # 88a: c0c831 + j .Lbr039 # 88d: c60000 +.Lbr038: movi a13, 0 /* 0x00000000 */ # 890: 0c0d + mov a12, a2 /* arg0 */ # 892: cd02 +.Lbr039: s8i a13, a3, 0 /* a13 -> [arg1] */ # 894: d24300 + j .Lbr041 # 897: 060100 +.Lbr040: mov a12, a2 /* arg0 */ # 89a: cd02 + l8ui a13, sp, 0 /* [(local0)] */ # 89c: d20100 +.Lbr041: movi a2, 31 /* 0x0000001f */ # 89f: 1cf2 + movnez a2, a0, a15 # 8a1: f02093 + movi a0, g_phyFuns # 8a4: 01edff + beqz a14, .Lbr047 # 8a7: 167e08 + bge a12, a2, .Lbr042 # 8aa: 27ac01 + mov a2, a12 # 8ad: 2d0c +.Lbr042: l32i a9, a0, 0 /* [g_phyFuns] */ # 8af: 9800 + slli a12, a2, 24 # 8b1: 80c201 + srai a12, a12, 24 # 8b4: c0c831 + l32i a9, a9, 156 /* [[g_phyFuns]+0x9c] */ # 8b7: 922927 + beqz a15, .Lbr049 # 8ba: 160f08 + movi a2, 119 /* 0x00000077 */ # 8bd: 22a077 + movi a3, 0 /* 0x00000000 */ # 8c0: 0c03 + movi a4, 24 /* 0x00000018 */ # 8c2: 1c84 + movi a5, 5 /* 0x00000005 */ # 8c4: 0c55 + movi a6, 5 /* 0x00000005 */ # 8c6: 0c56 + mov a7, a13 # 8c8: 7d0d + callx0 a9 /* [[g_phyFuns]+0x9c] */ # 8ca: c00900 + movi a0, g_phyFuns # 8cd: 01e3ff +.Lbr043: l32i a9, a0, 0 /* [g_phyFuns] */ # 8d0: 9800 + l32i a9, a9, 156 /* [[g_phyFuns]+0x9c] */ # 8d2: 922927 + beqz a15, .Lbr044 # 8d5: 9c2f + extui a7, a12, 0, 5 # 8d7: c07044 + movi a2, 119 /* 0x00000077 */ # 8da: 22a077 + movi a3, 0 /* 0x00000000 */ # 8dd: 0c03 + movi a4, 25 /* 0x00000019 */ # 8df: 1c94 + movi a5, 4 /* 0x00000004 */ # 8e1: 0c45 + movi a6, 0 /* 0x00000000 */ # 8e3: 0c06 + callx0 a9 /* [[g_phyFuns]+0x9c] */ # 8e5: c00900 + j .Lbr045 # 8e8: 460a00 +.Lbr044: movi a2, 119 /* 0x00000077 */ # 8eb: 22a077 + movi a3, 0 /* 0x00000000 */ # 8ee: 0c03 + movi a4, 25 /* 0x00000019 */ # 8f0: 1c94 + movi a5, 7 /* 0x00000007 */ # 8f2: 0c75 + movi a6, 5 /* 0x00000005 */ # 8f4: 0c56 + extui a7, a12, 3, 3 # 8f6: c07324 + callx0 a9 /* [[g_phyFuns]+0x9c] */ # 8f9: c00900 + extui a7, a12, 0, 3 # 8fc: c07024 + movi a2, 119 /* 0x00000077 */ # 8ff: 22a077 + movi a3, 0 /* 0x00000000 */ # 902: 0c03 + movi a0, g_phyFuns # 904: 01d7ff + movi a4, 26 /* 0x0000001a */ # 907: 1ca4 + l32i a0, a0, 0 /* [g_phyFuns] */ # 909: 0800 + movi a5, 2 /* 0x00000002 */ # 90b: 0c25 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 90d: 022027 + movi a6, 0 /* 0x00000000 */ # 910: 0c06 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 912: c00000 +.Lbr045: l32i a0, sp, 4 /* [(local1)] */ # 915: 0811 + l32i a15, sp, 20 /* [(local5)] */ # 917: f851 + bnone a13, a14, .Lbr046 # 919: e70d08 + neg a12, a12 # 91c: c0c060 + slli a12, a12, 24 # 91f: 80cc01 + srai a12, a12, 24 # 922: c0c831 +.Lbr046: l32i a13, sp, 12 /* [(local3)] */ # 925: d831 + mov a2, a12 # 927: 2d0c + l32i a14, sp, 16 /* [(local4)] */ # 929: e841 + l32i a12, sp, 8 /* [(local2)] */ # 92b: c821 + addi sp, sp, 32 /* (top of frame) */ # 92d: 12c120 + ret # 930: 0df0 +.Lbr047: bge a2, a12, .Lbr050 # 932: c7a21e +.Lbr048: slli a12, a2, 24 # 935: 80c201 + srai a12, a12, 24 # 938: c0c831 + j .Lbr043 # 93b: 46e4ff +.Lbr049: movi a2, 119 /* 0x00000077 */ # 93e: 22a077 + movi a3, 0 /* 0x00000000 */ # 941: 0c03 + movi a4, 24 /* 0x00000018 */ # 943: 1c84 + movi a5, 3 /* 0x00000003 */ # 945: 0c35 + movi a6, 3 /* 0x00000003 */ # 947: 0c36 + mov a7, a13 # 949: 7d0d + callx0 a9 /* [[g_phyFuns]+0x9c] */ # 94b: c00900 + movi a0, g_phyFuns # 94e: 01c5ff + j .Lbr043 # 951: c6deff +.Lbr050: neg a2, a2 # 954: 202060 + bge a12, a2, .Lbr051 # 957: 27ac01 + mov a12, a2 # 95a: cd02 +.Lbr051: mov a2, a12 # 95c: 2d0c + j .Lbr048 # 95e: c6f4ff + + .literal_position # 964: 00000000 + # 968: 00000000 + # 96c: 00000000 + # 970: 00000000 + # 974: 00000000 + # 978: 00000000 + # 97c: 00000000 + # 980: 00000000 + # 984: 00000000 + # 988: 00000000 + # 98c: 8c000000 + # 990: a8000000 + # 994: 00000000 + # 998: 00000000 + # 99c: 00000000 + # 9a0: 00000400 + # 9a4: 00000000 + # 9a8: 00000000 + # 9ac: 00000000 + # 9b0: 00000000 + # 9b4: 00000000 + # 9b8: 00000000 + +# Function @ .irom0.text+0x9bc +# Local variables/stack: +# (local0): word @ -0x50 +# (local1): word @ -0x4c +# (local2): word[2] @ -0x48 +# (local3): byte[4] @ -0x40 +# (local4): word @ -0x3c +# (local5): word @ -0x38 +# (local6): word @ -0x34 +# (local7): word @ -0x30 +# (local8): word @ -0x2c +# (local9): word @ -0x28 +# (local10): word @ -0x24 +# (local11): word @ -0x20 +# (local12): word @ -0x1c +# (local13): word @ -0x18 +# (local14): word @ -0x14 +# (local15): word @ -0x10 +# (local16): word[3] @ -0xc + .balign 4 + .global rom_rfcal_txcap + .type rom_rfcal_txcap, @function +rom_rfcal_txcap: + mov a9, a2 /* arg0 */ # 9bc: 9d02 + addi sp, sp, -80 /* (local0) */ # 9be: 12c1b0 + s32i a15, sp, 36 /* a15 -> [(local8)] */ # 9c1: f991 + s32i a3, sp, 48 /* arg1 -> [(local11)] */ # 9c3: 39c1 + s32i a7, sp, 56 /* arg5 -> [(local13)] */ # 9c5: 79e1 + s32i a0, sp, 20 /* a0 -> [(local4)] */ # 9c7: 0951 + s32i a14, sp, 32 /* a14 -> [(local7)] */ # 9c9: e981 + s32i a12, sp, 24 /* a12 -> [(local5)] */ # 9cb: c961 + s32i a13, sp, 28 /* a13 -> [(local6)] */ # 9cd: d971 + mov a12, a6 /* arg4 */ # 9cf: cd06 + mov a13, a5 /* arg3 */ # 9d1: dd05 + mov a14, a4 /* arg2 */ # 9d3: ed04 + movi a0, g_phyFuns # 9d5: 01e3ff + l32i a2, a2, 0 /* [arg0] */ # 9d8: 2802 + l32i a0, a0, 0 /* [g_phyFuns] */ # 9da: 0800 + extui a2, a2, 18, 1 # 9dc: 202205 + bnez a2, .Lbr065 # 9df: 56921b + s32i a9, sp, 68 /* arg0 -> [(local16)] */ # 9e2: 926111 + l32i a3, sp, 48 /* [(local11)] */ # 9e5: 38c1 + movi a2, 0 /* 0x00000000 */ # 9e7: 0c02 + l32i a0, a0, 160 /* [[g_phyFuns]+0xa0] */ # 9e9: 022028 + s32i a2, a3, 0 /* 0x00000000 -> [[(local11)]] */ # 9ec: 2903 + callx0 a0 /* [[g_phyFuns]+0xa0] */ # 9ee: c00000 + movi a0, g_phyFuns # 9f1: 01ddff + l32i a0, a0, 0 /* [g_phyFuns] */ # 9f4: 0800 + l32i a0, a0, 192 /* [[g_phyFuns]+0xc0] */ # 9f6: 022030 + movi a2, 1 /* 0x00000001 */ # 9f9: 0c12 + callx0 a0 /* [[g_phyFuns]+0xc0] */ # 9fb: c00000 + movi a0, g_phyFuns # 9fe: 01dbff + l32i a0, a0, 0 /* [g_phyFuns] */ # a01: 0800 + l32i a0, a0, 204 /* [[g_phyFuns]+0xcc] */ # a03: 022033 + extui a2, a14, 0, 5 # a06: e02044 + callx0 a0 /* [[g_phyFuns]+0xcc] */ # a09: c00000 + movi a0, g_phyFuns # a0c: 01d9ff + l32i a0, a0, 0 /* [g_phyFuns] */ # a0f: 0800 + l32i a0, a0, 24 /* [[g_phyFuns]+0x18] */ # a11: 0860 + movi a2, 0 /* 0x00000000 */ # a13: 0c02 + callx0 a0 /* [[g_phyFuns]+0x18] */ # a15: c00000 + movi a0, g_phyFuns # a18: 01d7ff + l32i a0, a0, 0 /* [g_phyFuns] */ # a1b: 0800 + l32i a0, a0, 80 /* [[g_phyFuns]+0x50] */ # a1d: 022014 + mov a2, a12 /* arg4 */ # a20: 2d0c + callx0 a0 /* [[g_phyFuns]+0x50] */ # a22: c00000 + movi a5, 0 /* 0x00000000 */ # a25: 0c05 + movi a6, 0 /* 0x00000000 */ # a27: 0c06 + movi a7, 0 /* 0x00000000 */ # a29: 0c07 + mov a4, a2 # a2b: 4d02 + movi a0, g_phyFuns # a2d: 01d2ff + movi a3, 0 /* 0x00000000 */ # a30: 0c03 + s32i a3, sp, 0 /* 0x00000000 -> [(local0)] */ # a32: 3901 + s32i a3, sp, 4 /* 0x00000000 -> [(local1)] */ # a34: 3911 + s32i a3, sp, 8 /* 0x00000000 -> [(local2)] */ # a36: 3921 + l32i a0, a0, 0 /* [g_phyFuns] */ # a38: 0800 + movi a2, 1 /* 0x00000001 */ # a3a: 0c12 + l32i a0, a0, 104 /* [[g_phyFuns]+0x68] */ # a3c: 02201a + mov a3, a13 /* arg3 */ # a3f: 3d0d + callx0 a0 /* [[g_phyFuns]+0x68] */ # a41: c00000 + movi a13, 0 /* 0x00000000 */ # a44: 0c0d + l8ui a4, sp, 80 /* [(local17)] */ # a46: 420150 + movi a5, 3 /* 0x00000003 */ # a49: 0c35 + l8ui a6, sp, 16 /* [(local3)] */ # a4b: 620110 + s32i a6, sp, 40 /* [(local3)] -> [(local9)] */ # a4e: 69a1 + s32i a5, sp, 44 /* 0x00000003 -> [(local10)] */ # a50: 59b1 + s32i a4, sp, 64 /* [(local17)] -> [(local15)] */ # a52: 426110 +.Lbr052: beqz a13, .Lbr053 # a55: 8cbd + beqi a13, 1, .Lbr053 # a57: 261d09 + bnei a13, 2, .Lbr054 # a5a: 662d0a + movi a7, 7 /* 0x00000007 */ # a5d: 0c77 + s32i a7, sp, 40 /* 0x00000007 -> [(local9)] */ # a5f: 79a1 + j .Lbr054 # a61: c60000 +.Lbr053: movi a8, 15 /* 0x0000000f */ # a64: 0cf8 + s32i a8, sp, 40 /* 0x0000000f -> [(local9)] */ # a66: 89a1 +.Lbr054: movi a15, 0 /* 0x00000000 */ # a68: 0c0f + movi a12, 0 /* 0x00000000 */ # a6a: 0c0c + movi a9, 0 /* 0x00000000 */ # a6c: 0c09 + l32i a10, sp, 40 /* [(local9)] */ # a6e: a8a1 + s32i a9, sp, 52 /* 0x00000000 -> [(local12)] */ # a70: 99d1 + addi a10, a10, 1 /* [(local9)]+0x1 */ # a72: 1baa + s32i a10, sp, 60 /* [(local9)]+0x1 -> [(local14)] */ # a74: a9f1 +.Lbr055: beqz a13, .Lbr057 # a76: bcad + beqi a13, 1, .Lbr056 # a78: 261d1d + bnei a13, 2, .Lbr058 # a7b: 662d4d + movi a2, 107 /* 0x0000006b */ # a7e: 22a06b + movi a3, 2 /* 0x00000002 */ # a81: 0c23 + movi a4, 2 /* 0x00000002 */ # a83: 0c24 + movi a0, g_phyFuns # a85: 01bdff + movi a5, 6 /* 0x00000006 */ # a88: 0c65 + l32i a0, a0, 0 /* [g_phyFuns] */ # a8a: 0800 + movi a6, 4 /* 0x00000004 */ # a8c: 0c46 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # a8e: 022027 + mov a7, a12 # a91: 7d0c + callx0 a0 /* [[g_phyFuns]+0x9c] */ # a93: c00000 + j .Lbr058 # a96: 860c00 +.Lbr056: movi a2, 107 /* 0x0000006b */ # a99: 22a06b + movi a3, 2 /* 0x00000002 */ # a9c: 0c23 + movi a4, 2 /* 0x00000002 */ # a9e: 0c24 + movi a0, g_phyFuns # aa0: 01b8ff + movi a5, 3 /* 0x00000003 */ # aa3: 0c35 + l32i a0, a0, 0 /* [g_phyFuns] */ # aa5: 0800 + movi a6, 0 /* 0x00000000 */ # aa7: 0c06 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # aa9: 022027 + mov a7, a12 # aac: 7d0c + callx0 a0 /* [[g_phyFuns]+0x9c] */ # aae: c00000 + j .Lbr058 # ab1: c60500 +.Lbr057: movi a2, 107 /* 0x0000006b */ # ab4: 22a06b + movi a3, 2 /* 0x00000002 */ # ab7: 0c23 + movi a4, 1 /* 0x00000001 */ # ab9: 0c14 + movi a0, g_phyFuns # abb: 01b2ff + movi a5, 3 /* 0x00000003 */ # abe: 0c35 + l32i a0, a0, 0 /* [g_phyFuns] */ # ac0: 0800 + movi a6, 0 /* 0x00000000 */ # ac2: 0c06 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # ac4: 022027 + mov a7, a12 # ac7: 7d0c + callx0 a0 /* [[g_phyFuns]+0x9c] */ # ac9: c00000 +.Lbr058: movi a0, g_phyFuns # acc: 01afff + l32i a0, a0, 0 /* [g_phyFuns] */ # acf: 0800 + l32i a2, sp, 56 /* [(local13)] */ # ad1: 28e1 + l32i a0, a0, 112 /* [[g_phyFuns]+0x70] */ # ad3: 02201c + movi a3, 10 /* 0x0000000a */ # ad6: 0ca3 + callx0 a0 /* [[g_phyFuns]+0x70] */ # ad8: c00000 + mov a14, a2 # adb: ed02 + l32i a2, sp, 64 /* [(local15)] */ # add: 222110 + beqz a2, .Lbr059 # ae0: 8cb2 + movi a2, .Lstr006 # ae2: 21aaff + mov a3, a12 # ae5: 3d0c + mov a4, a14 # ae7: 4d0e + call0 ets_printf # ae9: 01b2ffc0 + # aed: 0000 +.Lbr059: l32i a4, sp, 60 /* [(local14)] */ # aef: 48f1 + bge a15, a14, .Lbr060 # af1: e7af03 + mov a15, a14 # af4: fd0e + s32i a12, sp, 52 /* a12 -> [(local12)] */ # af6: c9d1 +.Lbr060: addi a12, a12, 1 # af8: 1bcc + extui a12, a12, 0, 8 # afa: c0c074 + beq a4, a12, .Lbr061 # afd: c71402 + j .Lbr055 # b00: 86dcff +.Lbr061: l32i a14, sp, 64 /* [(local15)] */ # b03: e22110 + beqz a14, .Lbr062 # b06: 8cbe + movi a2, .Lstr007 # b08: 21a2ff + mov a3, a13 # b0b: 3d0d + l32i a4, sp, 52 /* [(local12)] */ # b0d: 48d1 + call0 ets_printf # b0f: 01aaffc0 + # b13: 0000 +.Lbr062: beqz a13, .Lbr063 # b15: ac1d + addi a15, a13, -1 # b17: 0bfd + beqz a15, .Lbr067 # b19: 16ef0d + bnei a13, 2, .Lbr064 # b1c: 662d32 + movi a2, 107 /* 0x0000006b */ # b1f: 22a06b + movi a3, 2 /* 0x00000002 */ # b22: 0c23 + movi a4, 2 /* 0x00000002 */ # b24: 0c24 + movi a0, g_phyFuns # b26: 019bff + movi a5, 6 /* 0x00000006 */ # b29: 0c65 + l32i a0, a0, 0 /* [g_phyFuns] */ # b2b: 0800 + movi a6, 4 /* 0x00000004 */ # b2d: 0c46 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # b2f: 022027 + l32i a7, sp, 52 /* [(local12)] */ # b32: 78d1 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # b34: c00000 + j .Lbr064 # b37: c60500 +.Lbr063: movi a2, 107 /* 0x0000006b */ # b3a: 22a06b + movi a3, 2 /* 0x00000002 */ # b3d: 0c23 + movi a4, 1 /* 0x00000001 */ # b3f: 0c14 + movi a0, g_phyFuns # b41: 0195ff + movi a5, 3 /* 0x00000003 */ # b44: 0c35 + l32i a0, a0, 0 /* [g_phyFuns] */ # b46: 0800 + movi a6, 0 /* 0x00000000 */ # b48: 0c06 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # b4a: 022027 + l32i a7, sp, 52 /* [(local12)] */ # b4d: 78d1 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # b4f: c00000 +.Lbr064: l32i a14, sp, 52 /* [(local12)] */ # b52: e8d1 + l32i a15, sp, 48 /* [(local11)] */ # b54: f8c1 + slli a2, a13, 3 # b56: d02d11 + ssl a2 # b59: 001240 + addi a13, a13, 1 # b5c: 1bdd + extui a13, a13, 0, 8 # b5e: d0d074 + l32i a0, a15, 0 /* [[(local11)]] */ # b61: 080f + l32i a2, sp, 44 /* [(local10)] */ # b63: 28b1 + sll a0, a0 # b65: 0000a1 + addi a2, a2, -1 /* [(local10)]-0x1 */ # b68: 0b22 + s32i a2, sp, 44 /* [(local10)]-0x1 -> [(local10)] */ # b6a: 29b1 + or a14, a14, a0 # b6c: 00ee20 + s32i a14, a15, 0 /* a14 -> [[(local11)]] */ # b6f: e90f + bnez a2, .Lbr052 # b71: 5602ee + movi a0, g_phyFuns # b74: 018aff + l32i a0, a0, 0 /* [g_phyFuns] */ # b77: 0800 + l32i a0, a0, 108 /* [[g_phyFuns]+0x6c] */ # b79: 02201b + movi a2, 1 /* 0x00000001 */ # b7c: 0c12 + callx0 a0 /* [[g_phyFuns]+0x6c] */ # b7e: c00000 + movi a0, g_phyFuns # b81: 0188ff + l32i a0, a0, 0 /* [g_phyFuns] */ # b84: 0800 + movi a12, 0x00040000 # b86: c186ff + l32i a0, a0, 168 /* [[g_phyFuns]+0xa8] */ # b89: 02202a + l32i a13, sp, 68 /* [(local16)] */ # b8c: d22111 + callx0 a0 /* [[g_phyFuns]+0xa8] */ # b8f: c00000 + l32i a2, a13, 0 /* [[(local16)]] */ # b92: 280d + or a2, a2, a12 # b94: c02220 + s32i a2, a13, 0 /* a2 -> [[(local16)]] */ # b97: 290d + j .Lbr066 # b99: c61300 +.Lbr065: movi a2, 107 /* 0x0000006b */ # b9c: 22a06b + movi a3, 2 /* 0x00000002 */ # b9f: 0c23 + movi a4, 1 /* 0x00000001 */ # ba1: 0c14 + movi a5, 3 /* 0x00000003 */ # ba3: 0c35 + l32i a7, sp, 48 /* [(local11)] */ # ba5: 78c1 + movi a6, 0 /* 0x00000000 */ # ba7: 0c06 + l32i a7, a7, 0 /* [[(local11)]] */ # ba9: 7807 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # bab: 022027 + extui a7, a7, 16, 8 # bae: 707075 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # bb1: c00000 + movi a2, 107 /* 0x0000006b */ # bb4: 22a06b + movi a3, 2 /* 0x00000002 */ # bb7: 0c23 + movi a4, 2 /* 0x00000002 */ # bb9: 0c24 + movi a5, 3 /* 0x00000003 */ # bbb: 0c35 + movi a6, 0 /* 0x00000000 */ # bbd: 0c06 + movi a0, g_phyFuns # bbf: 017aff + l32i a7, sp, 48 /* [(local11)] */ # bc2: 78c1 + l32i a0, a0, 0 /* [g_phyFuns] */ # bc4: 0800 + l32i a7, a7, 0 /* [[(local11)]] */ # bc6: 7807 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # bc8: 022027 + extui a7, a7, 8, 8 # bcb: 707874 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # bce: c00000 + movi a2, 107 /* 0x0000006b */ # bd1: 22a06b + movi a3, 2 /* 0x00000002 */ # bd4: 0c23 + movi a4, 2 /* 0x00000002 */ # bd6: 0c24 + movi a5, 6 /* 0x00000006 */ # bd8: 0c65 + movi a0, g_phyFuns # bda: 0174ff + movi a6, 4 /* 0x00000004 */ # bdd: 0c46 + l32i a0, a0, 0 /* [g_phyFuns] */ # bdf: 0800 + l32i a7, sp, 48 /* [(local11)] */ # be1: 78c1 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # be3: 022027 + l8ui a7, a7, 0 /* [[(local11)]] */ # be6: 720700 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # be9: c00000 +.Lbr066: l32i a12, sp, 24 /* [(local5)] */ # bec: c861 + l32i a13, sp, 28 /* [(local6)] */ # bee: d871 + l32i a14, sp, 32 /* [(local7)] */ # bf0: e881 + l32i a15, sp, 36 /* [(local8)] */ # bf2: f891 + l32i a0, sp, 20 /* [(local4)] */ # bf4: 0851 + addi sp, sp, 80 /* (local17) */ # bf6: 12c150 + ret # bf9: 0df0 +.Lbr067: movi a2, 107 /* 0x0000006b */ # bfb: 22a06b + movi a3, 2 /* 0x00000002 */ # bfe: 0c23 + movi a4, 2 /* 0x00000002 */ # c00: 0c24 + movi a0, g_phyFuns # c02: 016bff + movi a5, 3 /* 0x00000003 */ # c05: 0c35 + l32i a0, a0, 0 /* [g_phyFuns] */ # c07: 0800 + movi a6, 0 /* 0x00000000 */ # c09: 0c06 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # c0b: 022027 + l32i a7, sp, 52 /* [(local12)] */ # c0e: 78d1 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # c10: c00000 + j .Lbr064 # c13: c6ceff + + .literal_position # c18: 00960060 + # c1c: 00000000 + # c20: c0000000 + # c24: 009a0060 + # c28: 00000300 + # c2c: ffff00e0 + # c30: 00000200 + # c34: 00000000 + # c38: 00000000 + +# Function @ .irom0.text+0xc3c +# Local variables/stack: +# (local0): byte @ -0x40 +# (local1): byte[3] @ -0x3f +# (local2): word @ -0x3c +# (local3): word @ -0x38 +# (local4): word @ -0x34 +# (local5): word @ -0x30 +# (local6): word @ -0x2c +# (local7): word @ -0x28 +# (local8): word @ -0x24 +# (local9): word @ -0x20 +# (local10): word @ -0x1c +# (local11): word @ -0x18 +# (local12): word @ -0x14 +# (local13): word @ -0x10 +# (local14): word @ -0xc +# (local15): word @ -0x8 +# (local16): word @ -0x4 + .balign 4 + .global rom_rfcal_txiq + .type rom_rfcal_txiq, @function +rom_rfcal_txiq: + mov a9, a3 /* arg1 */ # c3c: 9d03 + addi sp, sp, -64 /* (local0) */ # c3e: 12c1c0 + s32i a12, sp, 40 /* a12 -> [(local11)] */ # c41: c9a1 + s32i a15, sp, 52 /* a15 -> [(local14)] */ # c43: f9d1 + s32i a4, sp, 60 /* arg2 -> [(local16)] */ # c45: 49f1 + s32i a5, sp, 24 /* arg3 -> [(local7)] */ # c47: 5961 + s32i a7, sp, 20 /* arg5 -> [(local6)] */ # c49: 7951 + s32i a0, sp, 36 /* a0 -> [(local10)] */ # c4b: 0991 + s32i a14, sp, 48 /* a14 -> [(local13)] */ # c4d: e9c1 + s32i a13, sp, 44 /* a13 -> [(local12)] */ # c4f: d9b1 + movi a14, 0x60009600 # c51: e1f1ff + s32i a9, sp, 12 /* arg1 -> [(local4)] */ # c54: 9931 + mov a13, a2 /* arg0 */ # c56: dd02 + mov a2, a6 /* arg4 */ # c58: 2d06 + l32i a0, a13, 0 /* [arg0] */ # c5a: 080d + s32i a2, sp, 16 /* arg4 -> [(local5)] */ # c5c: 2941 + extui a0, a0, 17, 1 # c5e: 000105 + bnez a0, .Lbr073 # c61: 568019 + l32i a15, sp, 60 /* [(local16)] */ # c64: f8f1 + movi a2, 119 /* 0x00000077 */ # c66: 22a077 + movi a3, 0 /* 0x00000000 */ # c69: 0c03 + movi a12, g_phyFuns # c6b: c1ecff + movi a4, 16 /* 0x00000010 */ # c6e: 1c04 + l32i a0, a12, 0 /* [g_phyFuns] */ # c70: 080c + movi a5, 0 /* 0x00000000 */ # c72: 0c05 + l32i a0, a0, 148 /* [[g_phyFuns]+0x94] */ # c74: 022025 + movi a6, 0 /* 0x00000000 */ # c77: 0c06 + callx0 a0 /* [[g_phyFuns]+0x94] */ # c79: c00000 + movi a3, 0 /* 0x00000000 */ # c7c: 0c03 + movi a4, 15 /* 0x0000000f */ # c7e: 0cf4 + movi a5, 6 /* 0x00000006 */ # c80: 0c65 + movi a6, 6 /* 0x00000006 */ # c82: 0c66 + l32i a0, a12, 0 /* [g_phyFuns] */ # c84: 080c + s32i a2, sp, 8 /* a2 -> [(local3)] */ # c86: 2921 + l32i a0, a0, 148 /* [[g_phyFuns]+0x94] */ # c88: 022025 + movi a2, 119 /* 0x00000077 */ # c8b: 22a077 + callx0 a0 /* [[g_phyFuns]+0x94] */ # c8e: c00000 + movi a3, 0 /* 0x00000000 */ # c91: 0c03 + movi a4, 9 /* 0x00000009 */ # c93: 0c94 + movi a5, 7 /* 0x00000007 */ # c95: 0c75 + movi a6, 0 /* 0x00000000 */ # c97: 0c06 + l32i a0, a12, 0 /* [g_phyFuns] */ # c99: 080c + s32i a2, sp, 28 /* a2 -> [(local8)] */ # c9b: 2971 + l32i a0, a0, 148 /* [[g_phyFuns]+0x94] */ # c9d: 022025 + movi a2, 119 /* 0x00000077 */ # ca0: 22a077 + callx0 a0 /* [[g_phyFuns]+0x94] */ # ca3: c00000 + l32i a0, a12, 0 /* [g_phyFuns] */ # ca6: 080c + l32i a0, a0, 160 /* [[g_phyFuns]+0xa0] */ # ca8: 022028 + s32i a2, sp, 4 /* a2 -> [(local2)] */ # cab: 2911 + callx0 a0 /* [[g_phyFuns]+0xa0] */ # cad: c00000 + l32i a0, a12, 0 /* [g_phyFuns] */ # cb0: 080c + l32i a0, a0, 192 /* [[g_phyFuns]+0xc0] */ # cb2: 022030 + movi a2, 1 /* 0x00000001 */ # cb5: 0c12 + callx0 a0 /* [[g_phyFuns]+0xc0] */ # cb7: c00000 + l32i a0, a12, 0 /* [g_phyFuns] */ # cba: 080c + l32i a0, a0, 204 /* [[g_phyFuns]+0xcc] */ # cbc: 022033 + extui a2, a15, 0, 5 # cbf: f02044 + callx0 a0 /* [[g_phyFuns]+0xcc] */ # cc2: c00000 + l32i a0, a12, 0 /* [g_phyFuns] */ # cc5: 080c + l32i a0, a0, 24 /* [[g_phyFuns]+0x18] */ # cc7: 0860 + movi a2, 0 /* 0x00000000 */ # cc9: 0c02 + callx0 a0 /* [[g_phyFuns]+0x18] */ # ccb: c00000 + l32i a0, a12, 0 /* [g_phyFuns] */ # cce: 080c + l32i a0, a0, 60 /* [[g_phyFuns]+0x3c] */ # cd0: 08f0 + movi a2, 1 /* 0x00000001 */ # cd2: 0c12 + callx0 a0 /* [[g_phyFuns]+0x3c] */ # cd4: c00000 + movi a2, 119 /* 0x00000077 */ # cd7: 22a077 + movi a3, 0 /* 0x00000000 */ # cda: 0c03 + movi a4, 16 /* 0x00000010 */ # cdc: 1c04 + movi a5, 2 /* 0x00000002 */ # cde: 0c25 + l32i a0, a12, 0 /* [g_phyFuns] */ # ce0: 080c + movi a6, 2 /* 0x00000002 */ # ce2: 0c26 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # ce4: 022027 + movi a7, 1 /* 0x00000001 */ # ce7: 0c17 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # ce9: c00000 + l8ui a15, sp, 64 /* [(local17)] */ # cec: f20140 + beqz a15, .Lbr068 # cef: 8c9f + movi a2, .Lstr008 # cf1: 21cbff + l32i a3, sp, 16 /* [(local5)] */ # cf4: 3841 + call0 ets_printf # cf6: 01cfffc0 + # cfa: 0000 +.Lbr068: mov a6, a15 /* [(local17)] */ # cfc: 6d0f + l32i a2, sp, 16 /* [(local5)] */ # cfe: 2841 + l32i a3, sp, 24 /* [(local7)] */ # d00: 3861 + l32i a5, sp, 20 /* [(local6)] */ # d02: 5851 + l8ui a7, sp, 68 /* [(FP)+0x4] */ # d04: 720144 + mov a4, sp /* (local0) */ # d07: 4d01 + call0 txiq_cover # d09: 01cbffc0 + # d0d: 0000 + l32i a0, a12, 0 /* [g_phyFuns] */ # d0f: 080c + movi a2, 1 /* 0x00000001 */ # d11: 0c12 + l32i a0, a0, 108 /* [[g_phyFuns]+0x6c] */ # d13: 02201b + l32i a15, sp, 8 /* [(local3)] */ # d16: f821 + callx0 a0 /* [[g_phyFuns]+0x6c] */ # d18: c00000 + mov a7, a15 /* [(local3)] */ # d1b: 7d0f + movi a2, 119 /* 0x00000077 */ # d1d: 22a077 + movi a3, 0 /* 0x00000000 */ # d20: 0c03 + movi a4, 16 /* 0x00000010 */ # d22: 1c04 + l32i a0, a12, 0 /* [g_phyFuns] */ # d24: 080c + movi a5, 0 /* 0x00000000 */ # d26: 0c05 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # d28: 022027 + movi a6, 0 /* 0x00000000 */ # d2b: 0c06 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # d2d: c00000 + l32i a7, sp, 28 /* [(local8)] */ # d30: 7871 + movi a2, 119 /* 0x00000077 */ # d32: 22a077 + movi a3, 0 /* 0x00000000 */ # d35: 0c03 + movi a4, 15 /* 0x0000000f */ # d37: 0cf4 + movi a5, 6 /* 0x00000006 */ # d39: 0c65 + l32i a0, a12, 0 /* [g_phyFuns] */ # d3b: 080c + movi a6, 6 /* 0x00000006 */ # d3d: 0c66 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # d3f: 022027 + l32i a15, sp, 4 /* [(local2)] */ # d42: f811 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # d44: c00000 + mov a7, a15 /* [(local2)] */ # d47: 7d0f + movi a2, 119 /* 0x00000077 */ # d49: 22a077 + movi a3, 0 /* 0x00000000 */ # d4c: 0c03 + movi a4, 9 /* 0x00000009 */ # d4e: 0c94 + l32i a0, a12, 0 /* [g_phyFuns] */ # d50: 080c + movi a5, 7 /* 0x00000007 */ # d52: 0c75 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # d54: 022027 + movi a6, 0 /* 0x00000000 */ # d57: 0c06 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # d59: c00000 + movi a2, 119 /* 0x00000077 */ # d5c: 22a077 + movi a3, 0 /* 0x00000000 */ # d5f: 0c03 + movi a4, 16 /* 0x00000010 */ # d61: 1c04 + movi a5, 2 /* 0x00000002 */ # d63: 0c25 + l32i a0, a12, 0 /* [g_phyFuns] */ # d65: 080c + movi a6, 2 /* 0x00000002 */ # d67: 0c26 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # d69: 022027 + movi a7, 0 /* 0x00000000 */ # d6c: 0c07 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # d6e: c00000 + movi a5, 32 /* 0x00000020 */ # d71: 2c05 + movi a11, 0x60009a00 # d73: b1acff + memw # d76: c02000 + l32i a10, a11, 40 /* [0x60009a28] */ # d79: a8ab + or a10, a10, a5 # d7b: 50aa20 + memw # d7e: c02000 + s32i a10, a11, 40 /* a10 -> [0x60009a28] */ # d81: a9ab + movi a8, 2 /* 0x00000002 */ # d83: 0c28 + movi a9, -16 /* 0xfffffff0 */ # d85: 7c09 + memw # d87: c02000 + l32i a7, a14, 0x23c /* [0x6000983c] */ # d8a: 722e8f + and a7, a7, a9 # d8d: 907710 + or a7, a7, a8 # d90: 807720 + memw # d93: c02000 + s32i a7, a14, 0x23c /* a7 -> [0x6000983c] */ # d96: 726e8f + movi a4, 1 /* 0x00000001 */ # d99: 0c14 + movi a6, -498 /* 0xfffffe0e */ # d9b: 62ae0e + memw # d9e: c02000 + l32i a3, a14, 0x264 /* [0x60009864] */ # da1: 322e99 + and a3, a3, a6 # da4: 603310 + or a3, a3, a4 # da7: 403320 + memw # daa: c02000 + movi a4, 15 /* 0x0000000f */ # dad: 0cf4 + s32i a3, a14, 0x264 /* a3 -> [0x60009864] */ # daf: 326e99 + l8ui a2, sp, 0 /* [(local0)] */ # db2: 220100 + movi a0, -15 /* 0xfffffff1 */ # db5: 7c10 + slli a2, a2, 24 # db7: 802201 + srai a2, a2, 24 # dba: 202831 + blt a2, a0, .Lbr069 # dbd: 072201 + mov a0, a2 # dc0: 0d02 +.Lbr069: movi a2, -31 /* 0xffffffe1 */ # dc2: 6c12 + blt a4, a0, .Lbr070 # dc4: 072401 + mov a4, a0 # dc7: 4d00 +.Lbr070: movi a3, 31 /* 0x0000001f */ # dc9: 1cf3 + s8i a4, sp, 0 /* a4 -> [(local0)] */ # dcb: 424100 + slli a0, a4, 24 # dce: 800401 + l8ui a4, sp, 1 /* [(local1)] */ # dd1: 420101 + srai a0, a0, 24 # dd4: 000831 + slli a4, a4, 24 # dd7: 804401 + srai a4, a4, 24 # dda: 404831 + blt a4, a2, .Lbr071 # ddd: 272401 + mov a2, a4 # de0: 2d04 +.Lbr071: mov a4, a3 /* 0x0000001f */ # de2: 4d03 + bgei a2, 32, .Lbr072 # de4: e6c201 + mov a4, a2 # de7: 4d02 +.Lbr072: s8i a4, sp, 1 /* a4 -> [(local1)] */ # de9: 424101 + slli a2, a4, 24 # dec: 802401 + srai a2, a2, 24 # def: 202831 + bgei a0, 1, .Lbr075 # df2: e61045 + neg a3, a0 # df5: 003060 + s32i a3, sp, 56 /* a3 -> [(local15)] */ # df8: 39e1 + j .Lbr076 # dfa: 861000 +.Lbr073: l32i a12, a3, 0 /* [arg1] */ # dfd: c803 + srli a15, a12, 8 # dff: c0f841 + slli a12, a12, 24 # e02: 80cc01 + srai a12, a12, 24 # e05: c0c831 +.Lbr074: slli a0, a15, 24 # e08: 800f01 + movi a2, 0x00030000 # e0b: 2187ff + slli a15, a12, 18 # e0e: e0fc01 + or a15, a15, a2 # e11: 20ff20 + movi a2, 0xe000ffff # e14: 2186ff + memw # e17: c02000 + l32i a13, a14, 0x260 /* [0x60009860] */ # e1a: d22e98 + and a13, a13, a2 # e1d: 20dd10 + or a13, a13, a0 # e20: 00dd20 + or a13, a13, a15 # e23: f0dd20 + memw # e26: c02000 + l32i a12, sp, 40 /* [(local11)] */ # e29: c8a1 + s32i a13, a14, 0x260 /* a13 -> [0x60009860] */ # e2b: d26e98 + l32i a15, sp, 52 /* [(local14)] */ # e2e: f8d1 + l32i a13, sp, 44 /* [(local12)] */ # e30: d8b1 + l32i a14, sp, 48 /* [(local13)] */ # e32: e8c1 + l32i a0, sp, 36 /* [(local10)] */ # e34: 0891 + addi sp, sp, 64 /* (local17) */ # e36: 12c140 + ret /* 0xe000ffff */ # e39: 0df0 +.Lbr075: sub a3, a5, a0 # e3b: 0035c0 + s32i a3, sp, 56 /* a3 -> [(local15)] */ # e3e: 39e1 +.Lbr076: l32i a15, sp, 56 /* [(local15)] */ # e40: f8e1 + l32i a0, a12, 0 /* [g_phyFuns] */ # e42: 080c + addi a12, a2, 64 # e44: c2c240 + l32i a0, a0, 168 /* [[g_phyFuns]+0xa8] */ # e47: 02202a + slli a15, a15, 24 # e4a: 80ff01 + movgez a12, a2, a2 # e4d: 20c2b3 + s32i a12, sp, 32 /* a12 -> [(local9)] */ # e50: c981 + srai a15, a15, 24 # e52: f0f831 + slli a12, a12, 24 # e55: 80cc01 + srai a12, a12, 24 # e58: c0c831 + callx0 a0 /* [[g_phyFuns]+0xa8] */ # e5b: c00000 + l32i a4, sp, 32 /* [(local9)] */ # e5e: 4881 + l32i a5, sp, 56 /* [(local15)] */ # e60: 58e1 + slli a4, a4, 24 # e62: 804401 + slli a5, a5, 24 # e65: 805501 + srai a5, a5, 24 # e68: 505831 + srai a4, a4, 24 # e6b: 404831 + slli a5, a5, 8 # e6e: 805511 + or a4, a4, a5 # e71: 504420 + l32i a5, sp, 12 /* [(local4)] */ # e74: 5831 + movi a3, 0x00020000 # e76: 316eff + s32i a4, a5, 0 /* a4 -> [[(local4)]] */ # e79: 4905 + l32i a2, a13, 0 /* [arg0] */ # e7b: 280d + or a2, a2, a3 # e7d: 302220 + s32i a2, a13, 0 /* a2 -> [arg0] */ # e80: 290d + j .Lbr074 # e82: 86e0ff + + .balign 4 +# Function @ .irom0.text+0xe88 + .balign 4 + .global rom_rfcal_txiq_cover + .type rom_rfcal_txiq_cover, @function +rom_rfcal_txiq_cover: + ret /* arg0 */ # e88: 0df0 + + .literal_position # e8c: 00000000 + # e90: 00000000 + # e94: 00000000 + +# Function @ .irom0.text+0xe98 +# Local variables/stack: +# (local0): byte[4] @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word @ -0x10 +# (local5): word[3] @ -0xc + .balign 4 + .global rom_rfcal_txiq_set_reg + .type rom_rfcal_txiq_set_reg, @function +rom_rfcal_txiq_set_reg: + addi sp, sp, -32 /* (local0) */ # e98: 12c1e0 + s32i a12, sp, 8 /* a12 -> [(local2)] */ # e9b: c921 + s32i a15, sp, 20 /* a15 -> [(local5)] */ # e9d: f951 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # e9f: 0911 + s32i a14, sp, 16 /* a14 -> [(local4)] */ # ea1: e941 + s32i a13, sp, 12 /* a13 -> [(local3)] */ # ea3: d931 + mov a14, a3 /* arg1 */ # ea5: ed03 + mov a13, a4 /* arg2 */ # ea7: dd04 + movi a0, 15 /* 0x0000000f */ # ea9: 0cf0 + beqz a4, .Lbr077 # eab: 8c84 + bltz a2, .Lbr086 # ead: 961209 + movi a15, 0 /* 0x00000000 */ # eb0: 0c0f + mov a12, a2 /* arg0 */ # eb2: cd02 + j .Lbr078 # eb4: 060100 +.Lbr077: mov a12, a2 /* arg0 */ # eb7: cd02 + l8ui a15, sp, 0 /* [(local0)] */ # eb9: f20100 +.Lbr078: movi a2, 31 /* 0x0000001f */ # ebc: 1cf2 + movnez a2, a0, a14 # ebe: e02093 + movi a0, g_phyFuns # ec1: 01f2ff + beqz a13, .Lbr084 # ec4: 16ed06 + bge a12, a2, .Lbr079 # ec7: 27ac01 + mov a2, a12 # eca: 2d0c +.Lbr079: l32i a9, a0, 0 /* [g_phyFuns] */ # ecc: 9800 + slli a12, a2, 24 # ece: 80c201 + srai a12, a12, 24 # ed1: c0c831 + l32i a9, a9, 156 /* [[g_phyFuns]+0x9c] */ # ed4: 922927 + beqz a14, .Lbr087 # ed7: 165e07 + movi a2, 119 /* 0x00000077 */ # eda: 22a077 + movi a3, 0 /* 0x00000000 */ # edd: 0c03 + movi a4, 16 /* 0x00000010 */ # edf: 1c04 + movi a5, 0 /* 0x00000000 */ # ee1: 0c05 + movi a6, 0 /* 0x00000000 */ # ee3: 0c06 + mov a7, a15 # ee5: 7d0f + callx0 a9 /* [[g_phyFuns]+0x9c] */ # ee7: c00900 + movi a0, g_phyFuns # eea: 01e9ff +.Lbr080: l32i a9, a0, 0 /* [g_phyFuns] */ # eed: 9800 + l32i a9, a9, 156 /* [[g_phyFuns]+0x9c] */ # eef: 922927 + beqz a14, .Lbr081 # ef2: 9c2e + extui a7, a12, 0, 5 # ef4: c07044 + movi a2, 119 /* 0x00000077 */ # ef7: 22a077 + movi a3, 0 /* 0x00000000 */ # efa: 0c03 + movi a4, 16 /* 0x00000010 */ # efc: 1c04 + movi a5, 7 /* 0x00000007 */ # efe: 0c75 + movi a6, 3 /* 0x00000003 */ # f00: 0c36 + callx0 a9 /* [[g_phyFuns]+0x9c] */ # f02: c00900 + j .Lbr082 # f05: 060400 +.Lbr081: extui a7, a12, 0, 6 # f08: c07054 + movi a2, 119 /* 0x00000077 */ # f0b: 22a077 + movi a3, 0 /* 0x00000000 */ # f0e: 0c03 + movi a4, 17 /* 0x00000011 */ # f10: 1c14 + movi a5, 5 /* 0x00000005 */ # f12: 0c55 + movi a6, 0 /* 0x00000000 */ # f14: 0c06 + callx0 a9 /* [[g_phyFuns]+0x9c] */ # f16: c00900 +.Lbr082: l32i a0, sp, 4 /* [(local1)] */ # f19: 0811 + l32i a14, sp, 16 /* [(local4)] */ # f1b: e841 + bnone a15, a13, .Lbr083 # f1d: d70f08 + neg a12, a12 # f20: c0c060 + slli a12, a12, 24 # f23: 80cc01 + srai a12, a12, 24 # f26: c0c831 +.Lbr083: l32i a13, sp, 12 /* [(local3)] */ # f29: d831 + mov a2, a12 # f2b: 2d0c + l32i a15, sp, 20 /* [(local5)] */ # f2d: f851 + l32i a12, sp, 8 /* [(local2)] */ # f2f: c821 + addi sp, sp, 32 /* (top of frame) */ # f31: 12c120 + ret # f34: 0df0 +.Lbr084: bge a2, a12, .Lbr088 # f36: c7a22c +.Lbr085: slli a12, a2, 24 # f39: 80c201 + srai a12, a12, 24 # f3c: c0c831 + j .Lbr080 # f3f: 86eaff +.Lbr086: movi a15, 1 /* 0x00000001 */ # f42: 0c1f + neg a12, a2 # f44: 20c060 + slli a12, a12, 24 # f47: 80cc01 + srai a12, a12, 24 # f4a: c0c831 + j .Lbr078 # f4d: c6daff +.Lbr087: movi a2, 119 /* 0x00000077 */ # f50: 22a077 + movi a3, 0 /* 0x00000000 */ # f53: 0c03 + movi a4, 15 /* 0x0000000f */ # f55: 0cf4 + movi a5, 6 /* 0x00000006 */ # f57: 0c65 + movi a6, 6 /* 0x00000006 */ # f59: 0c66 + mov a7, a15 # f5b: 7d0f + callx0 a9 /* [[g_phyFuns]+0x9c] */ # f5d: c00900 + movi a0, g_phyFuns # f60: 01cdff + j .Lbr080 # f63: 86e1ff +.Lbr088: neg a2, a2 # f66: 202060 + bge a12, a2, .Lbr089 # f69: 27ac01 + mov a12, a2 # f6c: cd02 +.Lbr089: mov a2, a12 # f6e: 2d0c + j .Lbr085 # f70: 46f1ff + + .literal_position # f74: 00000000 + +# Function @ .irom0.text+0xf78 +# Local variables/stack: +# (local0): word[4] @ -0x50 +# (local1): byte @ -0x40 +# (local2): byte @ -0x3f +# (local3): byte @ -0x3e +# (local4): byte @ -0x3d +# (local5): word @ -0x3c +# (local6): word @ -0x38 +# (local7): word @ -0x34 +# (local8): word @ -0x30 +# (local9): word @ -0x2c +# (local10): word @ -0x28 +# (local11): word @ -0x24 +# (local12): word @ -0x20 +# (local13): word @ -0x1c +# (local14): word @ -0x18 +# (local15): word @ -0x14 +# (local16): word @ -0x10 +# (local17): word @ -0xc +# (local18): word @ -0x8 +# (local19): word @ -0x4 + .balign 4 + .global rom_rxiq_cover_mg_mp + .type rom_rxiq_cover_mg_mp, @function +rom_rxiq_cover_mg_mp: + addi sp, sp, -80 /* (local0) */ # f78: 12c1b0 + s32i a3, sp, 44 /* arg1 -> [(local11)] */ # f7b: 39b1 + s32i a4, sp, 48 /* arg2 -> [(local12)] */ # f7d: 49c1 + s32i a5, sp, 52 /* arg3 -> [(local13)] */ # f7f: 59d1 + s32i a6, sp, 56 /* arg4 -> [(local14)] */ # f81: 69e1 + s32i a7, sp, 20 /* arg5 -> [(local5)] */ # f83: 7951 + s32i a0, sp, 24 /* a0 -> [(local6)] */ # f85: 0961 + s32i a2, sp, 72 /* arg0 -> [(local18)] */ # f87: 226112 + s32i a15, sp, 40 /* a15 -> [(local10)] */ # f8a: f9a1 + s32i a14, sp, 36 /* a14 -> [(local9)] */ # f8c: e991 + s32i a13, sp, 32 /* a13 -> [(local8)] */ # f8e: d981 + s32i a12, sp, 28 /* a12 -> [(local7)] */ # f90: c971 + movi a13, 0 /* 0x00000000 */ # f92: 0c0d + movi a12, 0 /* 0x00000000 */ # f94: 0c0c + movi a14, g_phyFuns # f96: e1f7ff + l8ui a15, sp, 84 /* [(FP)+0x4] */ # f99: f20154 + movi a2, 2 /* 0x00000002 */ # f9c: 0c22 + s32i a2, sp, 76 /* 0x00000002 -> [(local19)] */ # f9e: 226113 + l32i a0, sp, 72 /* [(local18)] */ # fa1: 022112 + movi a2, 1 /* 0x00000001 */ # fa4: 0c12 + ssl a0 # fa6: 001040 + sll a2, a2 # fa9: 0022a1 + l8ui a0, sp, 88 /* [(FP)+0x8] */ # fac: 020158 + s32i a0, sp, 64 /* [(FP)+0x8] -> [(local16)] */ # faf: 026110 + extui a2, a2, 0, 16 # fb2: 2020f4 + s32i a2, sp, 60 /* a2 -> [(local15)] */ # fb5: 29f1 +.Lbr090: mov a2, a12 # fb7: 2d0c + addi a3, sp, 16 /* (local1) */ # fb9: 32c110 + l32i a0, a14, 0 /* [g_phyFuns] */ # fbc: 080e + movi a4, 1 /* 0x00000001 */ # fbe: 0c14 + l32i a0, a0, 248 /* [[g_phyFuns]+0xf8] */ # fc0: 02203e + mov a5, a15 /* [(FP)+0x4] */ # fc3: 5d0f + callx0 a0 /* [[g_phyFuns]+0xf8] */ # fc5: c00000 + addi a3, sp, 17 /* (local2) */ # fc8: 32c111 + movi a4, 0 /* 0x00000000 */ # fcb: 0c04 + mov a5, a15 /* [(FP)+0x4] */ # fcd: 5d0f + l32i a0, a14, 0 /* [g_phyFuns] */ # fcf: 080e + s32i a2, sp, 68 /* a2 -> [(local17)] */ # fd1: 226111 + l32i a0, a0, 248 /* [[g_phyFuns]+0xf8] */ # fd4: 02203e + mov a2, a13 # fd7: 2d0d + callx0 a0 /* [[g_phyFuns]+0xf8] */ # fd9: c00000 + l32i a3, sp, 60 /* [(local15)] */ # fdc: 38f1 + l32i a0, a14, 0 /* [g_phyFuns] */ # fde: 080e + mov a12, a2 # fe0: cd02 + l32i a0, a0, 52 /* [[g_phyFuns]+0x34] */ # fe2: 08d0 + movi a2, 1 /* 0x00000001 */ # fe4: 0c12 + callx0 a0 /* [[g_phyFuns]+0x34] */ # fe6: c00000 + l32i a2, sp, 72 /* [(local18)] */ # fe9: 222112 + l32i a3, sp, 44 /* [(local11)] */ # fec: 38b1 + l8ui a5, sp, 17 /* [(local2)] */ # fee: 520111 + l32i a8, sp, 52 /* [(local13)] */ # ff1: 88d1 + l8ui a6, sp, 16 /* [(local1)] */ # ff3: 620110 + movi a9, 1 /* 0x00000001 */ # ff6: 0c19 + sub a6, a6, a8 # ff8: 8066c0 + l32i a8, sp, 56 /* [(local14)] */ # ffb: 88e1 + movnez a6, a9, a6 # ffd: 606993 + s8i a6, sp, 16 /* a6 -> [(local1)] */ # 1000: 624110 + sub a5, a5, a8 # 1003: 8055c0 + l32i a8, sp, 64 /* [(local16)] */ # 1006: 822110 + movnez a5, a9, a5 # 1009: 505993 + s8i a5, sp, 17 /* a5 -> [(local2)] */ # 100c: 524111 + s32i a8, sp, 0 /* [(local16)] -> [(local0)] */ # 100f: 8901 + l32i a0, a14, 0 /* [g_phyFuns] */ # 1011: 080e + l32i a4, sp, 48 /* [(local12)] */ # 1013: 48c1 + l32i a0, a0, 72 /* [[g_phyFuns]+0x48] */ # 1015: 022012 + addi a7, sp, 18 /* (local3) */ # 1018: 72c112 + callx0 a0 /* [[g_phyFuns]+0x48] */ # 101b: c00000 + l32i a3, sp, 68 /* [(local17)] */ # 101e: 322111 + l8ui a13, sp, 19 /* [(local4)] */ # 1021: d20113 + l32i a0, a14, 0 /* [g_phyFuns] */ # 1024: 080e + l8ui a2, sp, 18 /* [(local3)] */ # 1026: 220112 + l32i a0, a0, 48 /* [[g_phyFuns]+0x30] */ # 1029: 08c0 + slli a2, a2, 24 # 102b: 802201 + slli a13, a13, 24 # 102e: 80dd01 + srai a13, a13, 24 # 1031: d0d831 + srai a2, a2, 24 # 1034: 202831 + add a2, a2, a3 # 1037: 3a22 + sub a13, a12, a13 # 1039: d0dcc0 + slli a13, a13, 24 # 103c: 80dd01 + srai a13, a13, 24 # 103f: d0d831 + slli a12, a2, 24 # 1042: 80c201 + srai a12, a12, 24 # 1045: c0c831 + callx0 a0 /* [[g_phyFuns]+0x30] */ # 1048: c00000 + l32i a2, sp, 76 /* [(local19)] */ # 104b: 222113 + addi a2, a2, -1 /* [(local19)]-0x1 */ # 104e: 0b22 + s32i a2, sp, 76 /* [(local19)]-0x1 -> [(local19)] */ # 1050: 226113 + bnez a2, .Lbr090 # 1053: 5602f6 + movi a2, 15 /* 0x0000000f */ # 1056: 0cf2 + movi a0, -15 /* 0xfffffff1 */ # 1058: 7c10 + blt a12, a0, .Lbr091 # 105a: 072c01 + mov a0, a12 # 105d: 0d0c +.Lbr091: blt a2, a0, .Lbr092 # 105f: 072201 + mov a2, a0 # 1062: 2d00 +.Lbr092: movi a0, -31 /* 0xffffffe1 */ # 1064: 6c10 + slli a12, a2, 24 # 1066: 80c201 + srai a12, a12, 24 # 1069: c0c831 + movi a2, 31 /* 0x0000001f */ # 106c: 1cf2 + blt a13, a0, .Lbr093 # 106e: 072d01 + mov a0, a13 # 1071: 0d0d +.Lbr093: blt a2, a0, .Lbr094 # 1073: 072201 + mov a2, a0 # 1076: 2d00 +.Lbr094: addi a3, sp, 16 /* (local1) */ # 1078: 32c110 + movi a4, 1 /* 0x00000001 */ # 107b: 0c14 + mov a5, a15 /* [(FP)+0x4] */ # 107d: 5d0f + slli a13, a2, 24 # 107f: 80d201 + l32i a0, a14, 0 /* [g_phyFuns] */ # 1082: 080e + srai a13, a13, 24 # 1084: d0d831 + l32i a0, a0, 248 /* [[g_phyFuns]+0xf8] */ # 1087: 02203e + mov a2, a12 # 108a: 2d0c + callx0 a0 /* [[g_phyFuns]+0xf8] */ # 108c: c00000 + mov a5, a15 /* [(FP)+0x4] */ # 108f: 5d0f + mov a2, a13 # 1091: 2d0d + l32i a0, a14, 0 /* [g_phyFuns] */ # 1093: 080e + addi a3, sp, 17 /* (local2) */ # 1095: 32c111 + l32i a0, a0, 248 /* [[g_phyFuns]+0xf8] */ # 1098: 02203e + movi a4, 0 /* 0x00000000 */ # 109b: 0c04 + callx0 a0 /* [[g_phyFuns]+0xf8] */ # 109d: c00000 + l32i a0, sp, 24 /* [(local6)] */ # 10a0: 0861 + l32i a14, sp, 36 /* [(local9)] */ # 10a2: e891 + l32i a15, sp, 40 /* [(local10)] */ # 10a4: f8a1 + l32i a3, sp, 20 /* [(local5)] */ # 10a6: 3851 + l32i a2, sp, 80 /* [(local20)] */ # 10a8: 222114 + s8i a12, a3, 0 /* a12 -> [[(local5)]] */ # 10ab: c24300 + s8i a13, a2, 0 /* a13 -> [[(local20)]] */ # 10ae: d24200 + l32i a12, sp, 28 /* [(local7)] */ # 10b1: c871 + l32i a13, sp, 32 /* [(local8)] */ # 10b3: d881 + addi sp, sp, 80 /* (local20) */ # 10b5: 12c150 + ret /* [(local20)] */ # 10b8: 0df0 + + .literal_position # 10bc: d8000000 + # 10c0: e0000000 + # 10c4: 50000000 + # 10c8: 00000000 + # 10cc: 00020060 + # 10d0: 00000000 + # 10d4: 00000000 + # 10d8: 00000000 + +# Function @ .irom0.text+0x10dc +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word @ -0x10 +# (local5): word @ -0xc +# (local6): word[2] @ -0x8 + .balign 4 + .global rom_set_txbb_atten + .type rom_set_txbb_atten, @function +rom_set_txbb_atten: + addi sp, sp, -32 /* (local0) */ # 10dc: 12c1e0 + s32i a15, sp, 16 /* a15 -> [(local4)] */ # 10df: f941 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 10e1: 0901 + s32i a2, sp, 20 /* arg0 -> [(local5)] */ # 10e3: 2951 + s32i a14, sp, 12 /* a14 -> [(local3)] */ # 10e5: e931 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 10e7: c911 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 10e9: d921 + mov a12, a4 /* arg2 */ # 10eb: cd04 + mov a13, a5 /* arg3 */ # 10ed: dd05 + mov a14, a3 /* arg1 */ # 10ef: ed03 + beqz a6, .Lbr097 # 10f1: bc66 + movi a2, .Lstr009 # 10f3: 21f2ff + call0 ets_printf # 10f6: 01f6ffc0 + # 10fa: 0000 + s32i a13, sp, 24 /* arg3 -> [(local6)] */ # 10fc: d961 + beqz a14, .Lbr096 # 10fe: ac0e + mov a15, a13 /* arg3 */ # 1100: fd0d + movi a13, 0 /* 0x00000000 */ # 1102: 0c0d +.Lbr095: add a3, a12, a13 # 1104: da3c + add a4, a15, a13 # 1106: da4f + l8ui a4, a4, 0 # 1108: 420400 + l8ui a3, a3, 0 # 110b: 320300 + movi a2, .Lstr010 # 110e: 21ecff + sub a3, a3, a4 # 1111: 4033c0 + call0 ets_printf # 1114: 01f0ffc0 + # 1118: 0000 + addi a13, a13, 1 # 111a: 1bdd + extui a13, a13, 0, 8 # 111c: d0d074 + bne a14, a13, .Lbr095 # 111f: d79ee1 +.Lbr096: movi a2, .Label001 # 1122: 21e8ff + call0 ets_printf # 1125: 01ecffc0 + # 1129: 0000 +.Lbr097: movi a2, 119 /* 0x00000077 */ # 112b: 22a077 + movi a3, 0 /* 0x00000000 */ # 112e: 0c03 + movi a4, 9 /* 0x00000009 */ # 1130: 0c94 + movi a0, g_phyFuns # 1132: 01e5ff + movi a5, 7 /* 0x00000007 */ # 1135: 0c75 + l32i a0, a0, 0 /* [g_phyFuns] */ # 1137: 0800 + movi a6, 0 /* 0x00000000 */ # 1139: 0c06 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 113b: 022027 + movi a7, 0 /* 0x00000000 */ # 113e: 0c07 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 1140: c00000 + l32i a0, sp, 20 /* [(local5)] */ # 1143: 0851 + movi a13, 0 /* 0x00000000 */ # 1145: 0c0d + movi a9, 24 /* 0x00000018 */ # 1147: 1c89 + movi a6, 256 /* 0x00000100 */ # 1149: 62a100 + movi a5, -256 /* 0xffffff00 */ # 114c: 52af00 + movi a3, 0x60000200 # 114f: 31dfff + movi a10, -134 /* 0xffffff7a */ # 1152: a2af7a +.Lbr098: addx4 a15, a13, a3 # 1155: 30fda0 + bgeui a13, 8, .Lbr099 # 1158: f68d0a + l8ui a4, a12, 0 /* [arg2] */ # 115b: 420c00 + l8ui a2, a0, 0 /* [[(local5)]] */ # 115e: 220000 + add a2, a2, a4 # 1161: 4a22 + j .Lbr100 # 1163: c60200 +.Lbr099: add a2, a0, a13 # 1166: da20 + add a2, a2, a10 # 1168: aa22 + l8ui a2, a2, 127 # 116a: 22027f + add a2, a2, a12 # 116d: ca22 + l8ui a2, a2, 0 # 116f: 220200 +.Lbr100: sub a4, a6, a2 # 1172: 2046c0 + extui a4, a4, 0, 8 # 1175: 404074 + memw # 1178: c02000 + l32i a14, a15, 0x304 # 117b: e22fc1 + and a14, a14, a5 # 117e: 50ee10 + or a14, a14, a4 # 1181: 40ee20 + memw # 1184: c02000 + s32i a14, a15, 0x304 # 1187: e26fc1 + addi a13, a13, 1 # 118a: 1bdd + extui a13, a13, 0, 8 # 118c: d0d074 + bne a13, a9, .Lbr098 # 118f: 979dc2 + l32i a12, sp, 4 /* [(local1)] */ # 1192: c811 + l32i a13, sp, 8 /* [(local2)] */ # 1194: d821 + l32i a14, sp, 12 /* [(local3)] */ # 1196: e831 + l32i a15, sp, 16 /* [(local4)] */ # 1198: f841 + l32i a0, sp, 0 /* [(local0)] */ # 119a: 0801 + addi sp, sp, 32 /* (top of frame) */ # 119c: 12c120 + ret # 119f: 0df0 + + .literal_position # 11a4: 0000001f + # 11a8: 00960060 + # 11ac: 0000fc00 + # 11b0: 00000000 + # 11b4: 00000000 + +# Function @ .irom0.text+0x11b8 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global rom_set_txiq_cal + .type rom_set_txiq_cal, @function +rom_set_txiq_cal: + addi sp, sp, -16 /* (local0) */ # 11b8: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 11bb: 0901 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 11bd: c911 + movi a5, 0x1f000000 # 11bf: 51f9ff + mov a12, a3 /* arg1 */ # 11c2: cd03 + movi a0, 0x60009600 # 11c4: 01f9ff + memw # 11c7: c02000 + l32i a3, a0, 0x260 /* [0x60009860] */ # 11ca: 322098 + movi a4, 0x00fc0000 # 11cd: 41f7ff + and a3, a3, a5 # 11d0: 503310 + extui a3, a3, 24, 8 # 11d3: 303875 + slli a3, a3, 24 # 11d6: 803301 + srai a3, a3, 24 # 11d9: 303831 + memw # 11dc: c02000 + l32i a0, a0, 0x260 /* [0x60009860] */ # 11df: 022098 + and a0, a0, a4 # 11e2: 400010 + extui a0, a0, 18, 14 # 11e5: 0002d5 + slli a0, a0, 24 # 11e8: 800001 + srai a0, a0, 24 # 11eb: 000831 + blti a3, 16, .Lbr101 # 11ee: a6b302 + addi a3, a3, -32 # 11f1: 32c3e0 +.Lbr101: blti a0, 32, .Lbr102 # 11f4: a6c008 + addi a0, a0, -64 # 11f7: 02c0c0 + slli a0, a0, 24 # 11fa: 800001 + srai a0, a0, 24 # 11fd: 000831 +.Lbr102: movi a5, 0 /* 0x00000000 */ # 1200: 0c05 + neg a4, a3 # 1202: 304060 + movi a6, 0 /* 0x00000000 */ # 1205: 0c06 + extui a3, a0, 31, 1 # 1207: 003f05 + extui a4, a4, 7, 1 # 120a: 404704 + s8i a4, a2, 0 /* a4 -> [arg0] */ # 120d: 424200 + movi a0, g_phyFuns # 1210: 01e8ff + movi a4, 16 /* 0x00000010 */ # 1213: 1c04 + s8i a3, a12, 0 /* a3 -> [arg1] */ # 1215: 324c00 + movi a3, 0 /* 0x00000000 */ # 1218: 0c03 + l32i a0, a0, 0 /* [g_phyFuns] */ # 121a: 0800 + l8ui a7, a2, 0 /* [arg0] */ # 121c: 720200 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 121f: 022027 + movi a2, 119 /* 0x00000077 */ # 1222: 22a077 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 1225: c00000 + l8ui a7, a12, 0 /* [arg1] */ # 1228: 720c00 + movi a2, 119 /* 0x00000077 */ # 122b: 22a077 + movi a3, 0 /* 0x00000000 */ # 122e: 0c03 + movi a0, g_phyFuns # 1230: 01e1ff + movi a4, 15 /* 0x0000000f */ # 1233: 0cf4 + l32i a0, a0, 0 /* [g_phyFuns] */ # 1235: 0800 + movi a5, 6 /* 0x00000006 */ # 1237: 0c65 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 1239: 022027 + movi a6, 6 /* 0x00000006 */ # 123c: 0c66 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 123e: c00000 + l32i a12, sp, 4 /* [(local1)] */ # 1241: c811 + l32i a0, sp, 0 /* [(local0)] */ # 1243: 0801 + addi sp, sp, 16 /* (top of frame) */ # 1245: 12c110 + ret # 1248: 0df0 + + .section .rodata.str1.4, "MSa", @progbits, 1 + +.Lstr002: .asciz " (%d,%d) " # 0: 20282564 + # 4: 2c256429 + # 8: 2000 + .balign 4 +.Lstr003: .asciz "%d,%d " # c: 25642c25 + # 10: 642000 + .balign 4 +.Lstr004: .asciz "stage %d: CGAIN=%d FGAIN=%d, DC_OS=(%d,%d), DAC=(%d,%d) \n" # 14: 73746167 + # 18: 65202564 + # 1c: 3a204347 + # 20: 41494e3d + # 24: 25642046 + # 28: 4741494e + # 2c: 3d25642c + # 30: 2044435f + # 34: 4f533d28 + # 38: 25642c25 + # 3c: 64292c20 + # 40: 4441433d + # 44: 2825642c + # 48: 25642920 + # 4c: 0a00 + .balign 4 +.Label001: .word 0x0000000a # 50: 0a000000 +.Lstr005: .asciz "pwctrl: rate_i=%d, target_power=%d, detect_power=%d\n" # 54: 70776374 + # 58: 726c3a20 + # 5c: 72617465 + # 60: 5f693d25 + # 64: 642c2074 + # 68: 61726765 + # 6c: 745f706f + # 70: 7765723d + # 74: 25642c20 + # 78: 64657465 + # 7c: 63745f70 + # 80: 6f776572 + # 84: 3d25640a + # 88: 00 + .balign 4 +.Lstr006: .asciz "num_k=%d, power_out=%d, " # 8c: 6e756d5f + # 90: 6b3d2564 + # 94: 2c20706f + # 98: 7765725f + # 9c: 6f75743d + # a0: 25642c20 + # a4: 00 + .balign 4 +.Lstr007: .asciz "reg_i=%d, indata=%d\n" # a8: 7265675f + # ac: 693d2564 + # b0: 2c20696e + # b4: 64617461 + # b8: 3d25640a + # bc: 00 + .balign 4 +.Lstr008: .asciz "txiq: tone_atten=%d\n" # c0: 74786971 + # c4: 3a20746f + # c8: 6e655f61 + # cc: 7474656e + # d0: 3d25640a + # d4: 00 + .balign 4 +.Lstr009: .asciz "bt, " # d8: 62742c20 + # dc: 00 + .balign 4 +.Lstr010: .asciz "%d, " # e0: 25642c20 + # e4: 00 diff --git a/binary_sdk/libphy_stage1/phy_chip_v5_romfunc.S b/binary_sdk/libphy_stage1/phy_chip_v5_romfunc.S new file mode 100644 index 0000000..7a44d2d --- /dev/null +++ b/binary_sdk/libphy_stage1/phy_chip_v5_romfunc.S @@ -0,0 +1,1373 @@ + + .section .text, "ax", @progbits + + .literal_position # 0: 00000000 + +# Function @ .text+0x4 + .balign 4 + .global phy_get_romfuncs + .type phy_get_romfuncs, @function +phy_get_romfuncs: + movi a2, g_phyFuns # 4: 21ffff + l32i a2, a2, 0 /* [g_phyFuns] */ # 7: 2802 + ret /* [g_phyFuns] */ # 9: 0df0 + + .section .data, "aw", @progbits + + .global g_phyFuns + .type g_phyFuns, @object +g_phyFuns: .word g_phyFuns_instance # 0: 00000000 + .global g_phyFuns_instance + .type g_phyFuns_instance, @object +g_phyFuns_instance: + .word rom_abs_temp # 4: 00000000 +.Lrel002: .word rom_chip_v5_disable_cca # 8: 00000000 +.Lrel003: .word rom_chip_v5_enable_cca # c: 00000000 +.Lrel004: .word rom_chip_v5_sense_backoff # 10: 00000000 +.Lrel005: .word rom_dc_iq_est # 14: 00000000 + +# NOTE: 4 non-alignment zero bytes skipped. + + .skip 4 +.Lrel006: .word rom_en_pwdet # 1c: 00000000 +.Lrel007: .word rom_get_bb_atten # 20: 00000000 +.Lrel008: .word rom_get_corr_power # 24: 00000000 +.Lrel009: .word rom_get_fm_sar_dout # 28: 00000000 +.Lrel010: .word rom_get_noisefloor # 2c: 00000000 +.Lrel011: .word rom_get_power_db # 30: 00000000 +.Lrel012: .word rom_iq_est_disable # 34: 00000000 +.Lrel013: .word rom_iq_est_enable # 38: 00000000 +.Lrel014: .word rom_linear_to_db # 3c: 00000000 +.Lrel015: .word rom_set_txclk_en # 40: 00000000 +.Lrel016: .word rom_set_rxclk_en # 44: 00000000 +.Lrel017: .word rom_mhz2ieee # 48: 00000000 +.Lrel018: .word rom_rxiq_get_mis # 4c: 00000000 +.Lrel019: .word rom_sar_init # 50: 00000000 +.Lrel020: .word rom_set_ana_inf_tx_scale # 54: 00000000 +.Lrel021: .word rom_set_loopback_gain # 58: 00000000 +.Lrel022: .word rom_set_noise_floor # 5c: 00000000 + +# NOTE: 8 non-alignment zero bytes skipped. + + .skip 8 +.Lrel023: .word rom_start_noisefloor # 68: 00000000 +.Lrel024: .word rom_start_tx_tone # 6c: 00000000 +.Lrel025: .word rom_stop_tx_tone # 70: 00000000 +.Lrel026: .word rom_txtone_linear_pwr # 74: 00000000 +.Lrel027: .word rom_tx_mac_disable # 78: 00000000 +.Lrel028: .word rom_tx_mac_enable # 7c: 00000000 +.Lrel029: .word rom_ana_inf_gating_en # 80: 00000000 +.Lrel030: .word rom_set_channel_freq # 84: 00000000 +.Lrel031: .word rom_chip_50_set_channel # 88: 00000000 +.Lrel032: .word rom_chip_v5_rx_init # 8c: 00000000 +.Lrel033: .word rom_chip_v5_tx_init # 90: 00000000 +.Lrel034: .word rom_i2c_readReg # 94: 00000000 +.Lrel035: .word rom_i2c_readReg_Mask # 98: 00000000 +.Lrel036: .word rom_i2c_writeReg # 9c: 00000000 +.Lrel037: .word rom_i2c_writeReg_Mask # a0: 00000000 +.Lrel038: .word rom_pbus_debugmode # a4: 00000000 +.Lrel039: .word rom_pbus_enter_debugmode # a8: 00000000 +.Lrel040: .word rom_pbus_exit_debugmode # ac: 00000000 +.Lrel041: .word rom_pbus_force_test # b0: 00000000 +.Lrel042: .word rom_pbus_rd # b4: 00000000 +.Lrel043: .word rom_pbus_set_rxgain # b8: 00000000 +.Lrel044: .word rom_pbus_set_txgain # bc: 00000000 +.Lrel045: .word rom_pbus_workmode # c0: 00000000 +.Lrel046: .word rom_pbus_xpd_rx_off # c4: 00000000 +.Lrel047: .word rom_pbus_xpd_rx_on # c8: 00000000 +.Lrel048: .word rom_pbus_xpd_tx_off # cc: 00000000 +.Lrel049: .word rom_pbus_xpd_tx_on # d0: 00000000 +.Lrel050: .word rom_pbus_xpd_tx_on__low_gain # d4: 00000000 +.Lrel051: .word rom_phy_reset_req # d8: 00000000 +.Lrel052: .word rom_restart_cal # dc: 00000000 +.Lrel053: .word rom_rfpll_reset # e0: 00000000 +.Lrel054: .word rom_write_rfpll_sdm # e4: 00000000 +.Lrel055: .word rom_rfpll_set_freq # e8: 00000000 +.Lrel056: .word rom_cal_tos_v50 # ec: 00000000 +.Lrel057: .word rom_pbus_dco___SA2 # f0: 00000000 +.Lrel058: .word rom_rfcal_pwrctrl # f4: 00000000 +.Lrel059: .word rom_rfcal_rxiq # f8: 00000000 +.Lrel060: .word rom_rfcal_rxiq_set_reg # fc: 00000000 +.Lrel061: .word rom_rfcal_txcap # 100: 00000000 +.Lrel062: .word rom_rfcal_txiq # 104: 00000000 +.Lrel063: .word rom_rfcal_txiq_cover # 108: 00000000 +.Lrel064: .word rom_rfcal_txiq_set_reg # 10c: 00000000 +.Lrel065: .word rom_rxiq_cover_mg_mp # 110: 00000000 +.Lrel066: .word rom_set_txbb_atten # 114: 00000000 +.Lrel067: .word rom_set_txiq_cal # 118: 00000000 + + .section .irom0.text, "ax", @progbits + +# Function @ .irom0.text+0x0 + .balign 4 + .global rom_abs_temp + .type rom_abs_temp, @function +rom_abs_temp: + neg a4, a2 # 0: 204060 + movgez a4, a2, a2 # 3: 2042b3 + mov a2, a4 # 6: 2d04 + ret # 8: 0df0 + + .literal_position # c: 00000010 + # 10: 009a0060 + +# Function @ .irom0.text+0x14 + .balign 4 + .global rom_chip_v5_disable_cca + .type rom_chip_v5_disable_cca, @function +rom_chip_v5_disable_cca: + movi a4, 0x10000000 # 14: 41feff + movi a3, 0x60009a00 # 17: 31feff + memw # 1a: c02000 + l32i a2, a3, 0x100 /* [0x60009b00] */ # 1d: 222340 + or a2, a2, a4 # 20: 402220 + memw # 23: c02000 + s32i a2, a3, 0x100 /* a2 -> [0x60009b00] */ # 26: 226340 + ret # 29: 0df0 + + .literal_position # 2c: ffffffef + # 30: 009a0060 + +# Function @ .irom0.text+0x34 + .balign 4 + .global rom_chip_v5_enable_cca + .type rom_chip_v5_enable_cca, @function +rom_chip_v5_enable_cca: + movi a4, 0xefffffff # 34: 41feff + movi a3, 0x60009a00 # 37: 31feff + memw # 3a: c02000 + l32i a2, a3, 0x100 /* [0x60009b00] */ # 3d: 222340 + and a2, a2, a4 # 40: 402210 + memw # 43: c02000 + s32i a2, a3, 0x100 /* a2 -> [0x60009b00] */ # 46: 226340 + ret # 49: 0df0 + + .literal_position # 4c: 00fc0100 + # 50: ff03feff + # 54: 009a0060 + +# Function @ .irom0.text+0x58 + .balign 4 + .global rom_chip_v5_sense_backoff + .type rom_chip_v5_sense_backoff, @function +rom_chip_v5_sense_backoff: + movi a3, 0xfffe03ff # 58: 31feff + movi a7, 0x60009a00 # 5b: 71feff + slli a5, a2, 24 # 5e: 805201 + srai a5, a5, 24 # 61: 505831 + bbsi a2, 7, .Lbr001 # 64: 77e205 + slli a4, a2, 10 # 67: 604211 + j .Lbr002 # 6a: 860000 +.Lbr001: movi a4, 0x0001fc00 # 6d: 41f7ff +.Lbr002: memw # 70: c02000 + l32i a11, a7, 0x228 /* [0x60009c28] */ # 73: b2278a + and a11, a11, a3 # 76: 30bb10 + or a11, a11, a4 # 79: 40bb20 + memw # 7c: c02000 + s32i a11, a7, 0x228 /* a11 -> [0x60009c28] */ # 7f: b2678a + movi a10, 254 /* 0x000000fe */ # 82: a2a0fe + slli a8, a2, 1 # 85: f08211 + movi a9, -255 /* 0xffffff01 */ # 88: 92af01 + movltz a8, a10, a5 # 8b: 508aa3 + memw # 8e: c02000 + l32i a6, a7, 0x324 /* [0x60009d24] */ # 91: 6227c9 + and a6, a6, a9 # 94: 906610 + or a6, a6, a8 # 97: 806620 + memw # 9a: c02000 + s32i a6, a7, 0x324 /* a6 -> [0x60009d24] */ # 9d: 6267c9 + ret /* arg0 */ # a0: 0df0 + + .literal_position # a4: 00000000 + # a8: 00020060 + # ac: 00020060 + # b0: 00000000 + # b4: 00000000 + # b8: 00000000 + +# Function @ .irom0.text+0xbc +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 + .global rom_dc_iq_est + .type rom_dc_iq_est, @function +rom_dc_iq_est: + addi sp, sp, -16 /* (local0) */ # bc: 12c1f0 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # bf: d921 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # c1: 0901 + movi a0, g_phyFuns # c3: 01f8ff + s32i a12, sp, 4 /* a12 -> [(local1)] */ # c6: c911 + l32i a0, a0, 0 /* [g_phyFuns] */ # c8: 0800 + mov a12, a4 /* arg2 */ # ca: cd04 + l32i a0, a0, 52 /* [[g_phyFuns]+0x34] */ # cc: 08d0 + mov a13, a3 /* arg1 */ # ce: dd03 + callx0 a0 /* [[g_phyFuns]+0x34] */ # d0: c00000 + addi a13, a13, 1 /* arg1+0x1 */ # d3: 1bdd + movi a2, 0x60000200 # d5: 21f4ff + memw # d8: c02000 + l32i a2, a2, 0x3dc /* [0x600005dc] */ # db: 2222f7 + mov a3, a13 /* arg1+0x1 */ # de: 3d0d + srai a2, a2, 6 # e0: 202621 + call0 __divsi3 # e3: 01f4ffc0 + # e7: 0000 + s32i a2, a12, 0 /* a2 -> [arg2] */ # e9: 290c + mov a3, a13 /* arg1+0x1 */ # eb: 3d0d + memw # ed: c02000 + movi a2, 0x60000200 # f0: 21efff + l32i a2, a2, 0x3e0 /* [0x600005e0] */ # f3: 2222f8 + srai a2, a2, 6 # f6: 202621 + call0 __divsi3 # f9: 01efffc0 + # fd: 0000 + movi a0, g_phyFuns # ff: 01ecff + l32i a0, a0, 0 /* [g_phyFuns] */ # 102: 0800 + l32i a0, a0, 48 /* [[g_phyFuns]+0x30] */ # 104: 08c0 + s32i a2, a12, 4 /* a2 -> [arg2+0x4] */ # 106: 291c + callx0 a0 /* [[g_phyFuns]+0x30] */ # 108: c00000 + l32i a12, sp, 4 /* [(local1)] */ # 10b: c811 + l32i a13, sp, 8 /* [(local2)] */ # 10d: d821 + l32i a0, sp, 0 /* [(local0)] */ # 10f: 0801 + addi sp, sp, 16 /* (top of frame) */ # 111: 12c110 + ret # 114: 0df0 + + .literal_position # 118: 00000000 + # 11c: ffffdfff + # 120: 000a0060 + # 124: ffff7fff + +# Function @ .irom0.text+0x128 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global rom_en_pwdet + .type rom_en_pwdet, @function +rom_en_pwdet: + addi sp, sp, -16 /* (local0) */ # 128: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 12b: 0901 + movi a0, g_phyFuns # 12d: 01faff + l32i a0, a0, 0 /* [g_phyFuns] */ # 130: 0800 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 132: c911 + l32i a0, a0, 76 /* [[g_phyFuns]+0x4c] */ # 134: 022013 + mov a12, a2 /* arg0 */ # 137: cd02 + callx0 a0 /* [[g_phyFuns]+0x4c] */ # 139: c00000 + movi a6, 0xffdfffff # 13c: 61f8ff + movi a2, 0x60000a00 # 13f: 21f8ff + memw # 142: c02000 + l32i a5, a2, 0x35c /* [0x60000d5c] */ # 145: 5222d7 + and a5, a5, a6 # 148: 605510 + memw # 14b: c02000 + s32i a5, a2, 0x35c /* a5 -> [0x60000d5c] */ # 14e: 5262d7 + movi a4, 0xff7fffff # 151: 41f4ff + memw # 154: c02000 + l32i a3, a2, 0x35c /* [0x60000d5c] */ # 157: 3222d7 + and a3, a3, a4 # 15a: 403310 + memw # 15d: c02000 + s32i a3, a2, 0x35c /* a3 -> [0x60000d5c] */ # 160: 3262d7 + bnez a12, .Lbr003 # 163: dc2c + movi a8, -2 /* 0xfffffffe */ # 165: 7ce8 + memw # 167: c02000 + l32i a7, a2, 0x350 /* [0x60000d50] */ # 16a: 7222d4 + and a7, a7, a8 # 16d: 807710 + memw # 170: c02000 + s32i a7, a2, 0x350 /* a7 -> [0x60000d50] */ # 173: 7262d4 + j .Lbr004 # 176: c60400 +.Lbr003: bnei a12, 1, .Lbr004 # 179: 661c10 + movi a10, 1 /* 0x00000001 */ # 17c: 0c1a + memw # 17e: c02000 + l32i a9, a2, 0x350 /* [0x60000d50] */ # 181: 9222d4 + or a9, a9, a10 # 184: a09920 + memw # 187: c02000 + s32i a9, a2, 0x350 /* a9 -> [0x60000d50] */ # 18a: 9262d4 +.Lbr004: l32i a12, sp, 4 /* [(local1)] */ # 18d: c811 + l32i a0, sp, 0 /* [(local0)] */ # 18f: 0801 + addi sp, sp, 16 /* (top of frame) */ # 191: 12c110 + ret /* 0x60000a00 */ # 194: 0df0 + + .balign 4 +# Function @ .irom0.text+0x198 + .balign 4 + .global rom_get_bb_atten + .type rom_get_bb_atten, @function +rom_get_bb_atten: + movi a4, 0 /* 0x00000000 */ # 198: 0c04 + addi a5, a2, 8 /* arg0+0x8 */ # 19a: 8b52 + movi a2, 127 /* 0x0000007f */ # 19c: 22a07f + subx4 a5, a5, a3 # 19f: 3055e0 + slli a5, a5, 16 # 1a2: 005511 + srai a5, a5, 16 # 1a5: 505031 + movgez a4, a5, a5 # 1a8: 5045b3 + slli a4, a4, 16 # 1ab: 004411 + srai a3, a4, 16 # 1ae: 403031 + bgei a3, 128, .Lbr005 # 1b1: e6e301 + mov a2, a3 # 1b4: 2d03 +.Lbr005: slli a2, a2, 24 # 1b6: 802201 + srai a2, a2, 24 # 1b9: 202831 + ret # 1bc: 0df0 + + .literal_position # 1c0: 00020060 + +# Function @ .irom0.text+0x1c4 + .balign 4 + .global rom_get_corr_power + .type rom_get_corr_power, @function +rom_get_corr_power: + movi a7, 0x60000200 # 1c4: 71ffff + memw # 1c7: c02000 + l32i a4, a7, 0x380 /* [0x60000580] */ # 1ca: 4227e0 + srai a4, a4, 18 # 1cd: 404231 + memw # 1d0: c02000 + l32i a5, a7, 0x384 /* [0x60000584] */ # 1d3: 5227e1 + srai a5, a5, 18 # 1d6: 505231 + memw # 1d9: c02000 + l32i a10, a7, 0x388 /* [0x60000588] */ # 1dc: a227e2 + srai a10, a10, 18 # 1df: a0a231 + memw # 1e2: c02000 + l32i a11, a7, 0x38c /* [0x6000058c] */ # 1e5: b227e3 + addi a8, a3, -2 /* arg1-0x2 */ # 1e8: 82c3fe + srai a11, a11, 18 # 1eb: b0b231 + memw # 1ee: c02000 + l32i a6, a7, 0x3dc /* [0x600005dc] */ # 1f1: 6227f7 + ssr a8 # 1f4: 000840 + sra a6, a6 # 1f7: 6060b1 + memw # 1fa: c02000 + l32i a9, a7, 0x3e0 /* [0x600005e0] */ # 1fd: 9227f8 + ssr a8 # 200: 000840 + sra a9, a9 # 203: 9090b1 + memw # 206: c02000 + ssr a8 # 209: 000840 + l32i a7, a7, 0x3e4 /* [0x600005e4] */ # 20c: 7227f9 + mull a9, a9, a9 # 20f: 909982 + mull a6, a6, a6 # 212: 606682 + add a4, a4, a11 # 215: ba44 + sub a5, a5, a10 # 217: a055c0 + mull a5, a5, a5 # 21a: 505582 + mull a4, a4, a4 # 21d: 404482 + add a6, a6, a9 # 220: 9a66 + sra a7, a7 # 222: 7070b1 + s32i a7, a2, 0 /* a7 -> [arg0] */ # 225: 7902 + add a4, a4, a5 # 227: 5a44 + srai a6, a6, 16 # 229: 606031 + s32i a6, a2, 8 /* a6 -> [arg0+0x8] */ # 22c: 6922 + movi a5, -22 /* 0xffffffea */ # 22e: 6ca5 + addx2 a5, a3, a5 # 230: 505390 + ssr a5 # 233: 000540 + sra a4, a4 # 236: 4040b1 + s32i a4, a2, 4 /* a4 -> [arg0+0x4] */ # 239: 4912 + ret /* arg0 */ # 23b: 0df0 + + .literal_position # 240: 000a0060 + # 244: 00000000 + +# Function @ .irom0.text+0x248 +# Local variables/stack: +# (local0): hword @ -0x1e +# (local1): hword @ -0x1c +# (local2): hword @ -0x1a +# (local3): hword @ -0x18 +# (local4): hword @ -0x16 +# (local5): hword @ -0x14 +# (local6): hword @ -0x12 +# (local7): word @ -0x10 +# (local8): word @ -0xc +# (local9): word @ -0x8 +# (local10): word @ -0x4 + .balign 4 + .global rom_get_fm_sar_dout + .type rom_get_fm_sar_dout, @function +rom_get_fm_sar_dout: + addi sp, sp, -32 /* (FP)-0x20 */ # 248: 12c1e0 + s32i a0, sp, 16 /* a0 -> [(local7)] */ # 24b: 0941 + s32i a12, sp, 20 /* a12 -> [(local8)] */ # 24d: c951 + mov a5, a2 /* arg0 */ # 24f: 5d02 + movi a6, -3 /* 0xfffffffd */ # 251: 7cd6 + movi a12, 0x60000a00 # 253: c1fbff + memw # 256: c02000 + l32i a4, a12, 0x350 /* [0x60000d50] */ # 259: 422cd4 + and a4, a4, a6 # 25c: 604410 + memw # 25f: c02000 + s32i a4, a12, 0x350 /* a4 -> [0x60000d50] */ # 262: 426cd4 + movi a2, 2 /* 0x00000002 */ # 265: 0c22 + memw # 267: c02000 + l32i a0, a12, 0x350 /* [0x60000d50] */ # 26a: 022cd4 + or a0, a0, a2 # 26d: 200020 + memw # 270: c02000 + movi a2, 25 /* 0x00000019 */ # 273: 1c92 + s32i a5, sp, 24 /* arg0 -> [(local9)] */ # 275: 5961 + s32i a3, sp, 28 /* arg1 -> [(local10)] */ # 277: 3971 + s32i a0, a12, 0x350 /* a0 -> [0x60000d50] */ # 279: 026cd4 + call0 ets_delay_us # 27c: 01f2ffc0 + # 280: 0000 + l32i a0, sp, 28 /* [(local10)] */ # 282: 0871 + l32i a2, sp, 24 /* [(local9)] */ # 284: 2861 + movi a3, 0 /* 0x00000000 */ # 286: 0c03 + mov a6, sp /* (FP)-0x20 */ # 288: 6d01 +.Lbr006: addx4 a7, a3, a12 # 28a: c073a0 + addx2 a8, a3, a6 # 28d: 608390 + memw # 290: c02000 + l32i a7, a7, 0x380 # 293: 7227e0 + addi a3, a3, 1 # 296: 1b33 + extui a3, a3, 0, 8 # 298: 303074 + extui a7, a7, 0, 12 # 29b: 7070b4 + neg a7, a7 # 29e: 707060 + addmi a7, a7, 2048 # 2a1: 72d708 + s16i a7, a8, 0 # 2a4: 725800 + bnei a3, 8, .Lbr006 # 2a7: 6683df + l16ui a8, sp, 8 /* [(local3)] */ # 2aa: 821104 + l16ui a11, sp, 6 /* [(local2)] */ # 2ad: b21103 + l16ui a10, sp, 14 /* [(local6)] */ # 2b0: a21107 + l16ui a3, sp, 4 /* [(local1)] */ # 2b3: 321102 + l16ui a12, sp, 2 /* [(local0)] */ # 2b6: c21101 + l16ui a9, sp, 12 /* [(local5)] */ # 2b9: 921106 + add a12, a12, a3 # 2bc: 3acc + add a9, a9, a10 # 2be: aa99 + addx2 a9, a9, a9 # 2c0: 909990 + add a11, a11, a12 # 2c3: cabb + l16ui a10, sp, 10 /* [(local4)] */ # 2c5: a21105 + l32i a12, sp, 20 /* [(local8)] */ # 2c8: c851 + add a8, a8, a10 # 2ca: aa88 + subx2 a11, a11, a9 # 2cc: 90bbd0 + s16i a11, a2, 0 /* a11 -> [[(local9)]] */ # 2cf: b25200 + addx2 a8, a8, a8 # 2d2: 808890 + sub a8, a8, a9 # 2d5: 9088c0 + s16i a8, a0, 0 /* a8 -> [[(local10)]] */ # 2d8: 825000 + l32i a0, sp, 16 /* [(local7)] */ # 2db: 0841 + addi sp, sp, 32 /* (top of frame) */ # 2dd: 12c120 + ret /* [(local9)] */ # 2e0: 0df0 + + .literal_position # 2e4: 009a0060 + +# Function @ .irom0.text+0x2e8 + .balign 4 + .global rom_get_noisefloor + .type rom_get_noisefloor, @function +rom_get_noisefloor: + movi a2, 0x60009a00 # 2e8: 21ffff + memw # 2eb: c02000 + l32i a2, a2, 0x164 /* [0x60009b64] */ # 2ee: 222259 + extui a2, a2, 20, 12 # 2f1: 2024b5 + srli a2, a2, 3 # 2f4: 202341 + addmi a2, a2, -512 # 2f7: 22d2fe + slli a2, a2, 16 # 2fa: 002211 + srai a2, a2, 16 # 2fd: 202031 + ret # 300: 0df0 + + .literal_position # 304: 00000000 + # 308: 00000000 + # 30c: 00000000 + +# Function @ .irom0.text+0x310 +# Local variables/stack: +# (local0): hword @ -0x10 +# (local1): hword @ -0xe +# (local2): word @ -0xc +# (local3): word @ -0x8 +# (local4): word @ -0x4 + .balign 4 + .global rom_get_power_db + .type rom_get_power_db, @function +rom_get_power_db: + addi sp, sp, -16 /* (local0) */ # 310: 12c1f0 + s32i a0, sp, 12 /* a0 -> [(local4)] */ # 313: 0931 + movi a0, g_phyFuns # 315: 01fbff + addi a3, sp, 2 /* (local1) */ # 318: 2b31 + l32i a0, a0, 0 /* [g_phyFuns] */ # 31a: 0800 + s32i a2, sp, 4 /* arg0 -> [(local2)] */ # 31c: 2911 + l32i a0, a0, 36 /* [[g_phyFuns]+0x24] */ # 31e: 0890 + mov a2, sp /* (local0) */ # 320: 2d01 + callx0 a0 /* [[g_phyFuns]+0x24] */ # 322: c00000 + movi a0, g_phyFuns # 325: 01f8ff + l32i a0, a0, 0 /* [g_phyFuns] */ # 328: 0800 + l16si a2, sp, 0 /* [(local0)] */ # 32a: 229100 + l32i a0, a0, 56 /* [[g_phyFuns]+0x38] */ # 32d: 08e0 + movi a3, 3 /* 0x00000003 */ # 32f: 0c33 + callx0 a0 /* [[g_phyFuns]+0x38] */ # 331: c00000 + movi a0, g_phyFuns # 334: 01f6ff + movi a3, 3 /* 0x00000003 */ # 337: 0c33 + l32i a0, a0, 0 /* [g_phyFuns] */ # 339: 0800 + s32i a2, sp, 8 /* a2 -> [(local3)] */ # 33b: 2921 + l32i a0, a0, 56 /* [[g_phyFuns]+0x38] */ # 33d: 08e0 + l16si a2, sp, 2 /* [(local1)] */ # 33f: 229101 + callx0 a0 /* [[g_phyFuns]+0x38] */ # 342: c00000 + l32i a3, sp, 8 /* [(local3)] */ # 345: 3821 + l32i a0, sp, 12 /* [(local4)] */ # 347: 0831 + sub a3, a3, a2 # 349: 2033c0 + l32i a2, sp, 4 /* [(local2)] */ # 34c: 2811 + addi sp, sp, 16 /* (top of frame) */ # 34e: 12c110 + add a2, a2, a3 # 351: 3a22 + slli a2, a2, 16 # 353: 002211 + srai a2, a2, 16 # 356: 202031 + ret # 359: 0df0 + + .literal_position # 35c: 0100faff + # 360: 00100000 + # 364: 00020060 + +# Function @ .irom0.text+0x368 + .balign 4 + .global rom_iq_est_disable + .type rom_iq_est_disable, @function +rom_iq_est_disable: + movi a7, 0xfffa0001 # 368: 71fdff + movi a6, 0x00001000 # 36b: 61fdff + movi a3, 0x60000200 # 36e: 31fdff + memw # 371: c02000 + l32i a5, a3, 0x37c /* [0x6000057c] */ # 374: 5223df + and a5, a5, a7 # 377: 705510 + or a5, a5, a6 # 37a: 605520 + memw # 37d: c02000 + s32i a5, a3, 0x37c /* a5 -> [0x6000057c] */ # 380: 5263df + movi a4, -2 /* 0xfffffffe */ # 383: 7ce4 + memw # 385: c02000 + l32i a2, a3, 0x37c /* [0x6000057c] */ # 388: 2223df + and a2, a2, a4 # 38b: 402210 + memw # 38e: c02000 + s32i a2, a3, 0x37c /* a2 -> [0x6000057c] */ # 391: 2263df + ret # 394: 0df0 + + .literal_position # 398: 00020060 + # 39c: 0100faff + +# Function @ .irom0.text+0x3a0 + .balign 4 + .global rom_iq_est_enable + .type rom_iq_est_enable, @function +rom_iq_est_enable: + movi a9, 1 /* 0x00000001 */ # 3a0: 0c19 + movi a5, 0x60000200 # 3a2: 51fdff + memw # 3a5: c02000 + l32i a8, a5, 0x37c /* [0x6000057c] */ # 3a8: 8225df + or a8, a8, a9 # 3ab: 908820 + memw # 3ae: c02000 + s32i a8, a5, 0x37c /* a8 -> [0x6000057c] */ # 3b1: 8265df + extui a7, a3, 0, 15 # 3b4: 3070e4 + movi a8, 2 /* 0x00000002 */ # 3b7: 0c28 + slli a7, a7, 2 # 3b9: e07711 + movi a9, 0xfffa0001 # 3bc: 91f8ff + or a7, a7, a8 # 3bf: 807720 + slli a8, a2, 18 # 3c2: e08201 + memw # 3c5: c02000 + l32i a6, a5, 0x37c /* [0x6000057c] */ # 3c8: 6225df + and a6, a6, a9 # 3cb: 906610 + or a6, a6, a8 # 3ce: 806620 + or a6, a6, a7 # 3d1: 706620 + memw # 3d4: c02000 + s32i a6, a5, 0x37c /* a6 -> [0x6000057c] */ # 3d7: 6265df + memw # 3da: c02000 + l32i a4, a5, 0x37c /* [0x6000057c] */ # 3dd: 4225df + bltz a4, .Lbr008 # 3e0: 968400 +.Lbr007: memw # 3e3: c02000 + l32i a10, a5, 0x37c /* [0x6000057c] */ # 3e6: a225df + bgez a10, .Lbr007 # 3e9: d66aff +.Lbr008: ret /* arg0 */ # 3ec: 0df0 + + .literal_position # 3f0: 00000000 + # 3f4: 00000000 + +# Function @ .irom0.text+0x3f8 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 + .global rom_linear_to_db + .type rom_linear_to_db, @function +rom_linear_to_db: + movi a4, 16 /* 0x00000010 */ # 3f8: 1c04 + addi sp, sp, -32 /* (FP)-0x20 */ # 3fa: 12c1e0 + s32i a0, sp, 16 /* a0 -> [(local0)] */ # 3fd: 0941 + s32i a13, sp, 24 /* a13 -> [(local2)] */ # 3ff: d961 + s32i a12, sp, 20 /* a12 -> [(local1)] */ # 401: c951 + mov a13, a2 /* arg0 */ # 403: dd02 + mov a12, a3 /* arg1 */ # 405: cd03 + mov a2, sp /* (FP)-0x20 */ # 407: 2d01 + movi a3, .Ldata001 # 409: 31f9ff + call0 memcpy # 40c: 01faffc0 + # 410: 0000 + bgeui a12, 3, .Lbr009 # 412: f63c0d + movi a0, 3 /* 0x00000003 */ # 415: 0c30 + sub a0, a0, a12 # 417: c000c0 + ssl a0 # 41a: 001040 + sll a0, a13 # 41d: 000da1 + j .Lbr010 # 420: 060200 +.Lbr009: addi a2, a12, -3 /* arg1-0x3 */ # 423: 22ccfd + ssr a2 # 426: 000240 + sra a0, a13 # 429: d000b1 +.Lbr010: l32i a12, sp, 20 /* [(local1)] */ # 42c: c851 + l32i a13, sp, 24 /* [(local2)] */ # 42e: d861 + nsau a3, a0 # 430: 30f040 + movi a2, 28 /* 0x0000001c */ # 433: 1cc2 + sub a2, a2, a3 # 435: 3022c0 + slli a2, a2, 24 # 438: 802201 + srai a2, a2, 24 # 43b: 202831 + bgei a2, 1, .Lbr011 # 43e: e61207 + extui a0, a0, 0, 4 # 441: 000034 + movi a2, 0 /* 0x00000000 */ # 444: 0c02 + j .Lbr012 # 446: 860200 +.Lbr011: addi a3, a2, -1 # 449: 0b32 + ssr a3 # 44b: 000340 + sra a0, a0 # 44e: 0000b1 + extui a0, a0, 0, 4 # 451: 000034 +.Lbr012: slli a4, a2, 5 # 454: b04211 + add a5, a0, sp # 457: 1a50 + slli a3, a2, 4 # 459: c03211 + l32i a0, sp, 16 /* [(local0)] */ # 45c: 0841 + add a3, a3, a4 # 45e: 4a33 + l8ui a2, a5, 0 # 460: 220500 + addi sp, sp, 32 /* (top of frame) */ # 463: 12c120 + add a2, a2, a3 # 466: 3a22 + slli a2, a2, 16 # 468: 002211 + srai a2, a2, 16 # 46b: 202031 + ret # 46e: 0df0 + + .literal_position # 470: 00000000 + # 474: 00000000 + +# Function @ .irom0.text+0x478 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global rom_set_txclk_en + .type rom_set_txclk_en, @function +rom_set_txclk_en: + movi a3, 0 /* 0x00000000 */ # 478: 0c03 + movi a4, 28 /* 0x0000001c */ # 47a: 1cc4 + movi a5, 6 /* 0x00000006 */ # 47c: 0c65 + movi a6, 6 /* 0x00000006 */ # 47e: 0c66 + addi sp, sp, -16 /* (local0) */ # 480: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 483: c911 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 485: 0901 + movi a0, g_phyFuns # 487: 01faff + mov a12, a2 /* arg0 */ # 48a: cd02 + l32i a0, a0, 0 /* [g_phyFuns] */ # 48c: 0800 + movi a2, 119 /* 0x00000077 */ # 48e: 22a077 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 491: 022027 + mov a7, a12 /* arg0 */ # 494: 7d0c + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 496: c00000 + mov a7, a12 /* arg0 */ # 499: 7d0c + movi a2, 124 /* 0x0000007c */ # 49b: 22a07c + movi a3, 1 /* 0x00000001 */ # 49e: 0c13 + movi a0, g_phyFuns # 4a0: 01f5ff + movi a4, 21 /* 0x00000015 */ # 4a3: 1c54 + l32i a0, a0, 0 /* [g_phyFuns] */ # 4a5: 0800 + movi a5, 0 /* 0x00000000 */ # 4a7: 0c05 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 4a9: 022027 + movi a6, 0 /* 0x00000000 */ # 4ac: 0c06 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 4ae: c00000 + l32i a12, sp, 4 /* [(local1)] */ # 4b1: c811 + l32i a0, sp, 0 /* [(local0)] */ # 4b3: 0801 + addi sp, sp, 16 /* (top of frame) */ # 4b5: 12c110 + ret # 4b8: 0df0 + + .literal_position # 4bc: 00000000 + # 4c0: 00000000 + +# Function @ .irom0.text+0x4c4 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global rom_set_rxclk_en + .type rom_set_rxclk_en, @function +rom_set_rxclk_en: + movi a3, 0 /* 0x00000000 */ # 4c4: 0c03 + movi a4, 28 /* 0x0000001c */ # 4c6: 1cc4 + movi a5, 5 /* 0x00000005 */ # 4c8: 0c55 + movi a6, 5 /* 0x00000005 */ # 4ca: 0c56 + addi sp, sp, -16 /* (local0) */ # 4cc: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 4cf: c911 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 4d1: 0901 + movi a0, g_phyFuns # 4d3: 01faff + mov a12, a2 /* arg0 */ # 4d6: cd02 + l32i a0, a0, 0 /* [g_phyFuns] */ # 4d8: 0800 + movi a2, 119 /* 0x00000077 */ # 4da: 22a077 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 4dd: 022027 + mov a7, a12 /* arg0 */ # 4e0: 7d0c + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 4e2: c00000 + mov a7, a12 /* arg0 */ # 4e5: 7d0c + movi a2, 124 /* 0x0000007c */ # 4e7: 22a07c + movi a3, 1 /* 0x00000001 */ # 4ea: 0c13 + movi a0, g_phyFuns # 4ec: 01f5ff + movi a4, 21 /* 0x00000015 */ # 4ef: 1c54 + l32i a0, a0, 0 /* [g_phyFuns] */ # 4f1: 0800 + movi a5, 1 /* 0x00000001 */ # 4f3: 0c15 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 4f5: 022027 + movi a6, 1 /* 0x00000001 */ # 4f8: 0c16 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 4fa: c00000 + l32i a12, sp, 4 /* [(local1)] */ # 4fd: c811 + l32i a0, sp, 0 /* [(local0)] */ # 4ff: 0801 + addi sp, sp, 16 /* (top of frame) */ # 501: 12c110 + ret # 504: 0df0 + + .literal_position # 508: b4090000 + # 50c: b3090000 + # 510: 99f6ffff + # 514: 30f6ffff + # 518: 00000000 + # 51c: 00000000 + # 520: 00000000 + +# Function @ .irom0.text+0x524 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global rom_mhz2ieee + .type rom_mhz2ieee, @function +rom_mhz2ieee: + movi a6, 0x000009b3 # 524: 61faff + movi a7, 0xfffff699 # 527: 71faff + addi sp, sp, -16 /* (local0) */ # 52a: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 52d: 0901 + movi a0, 0x000009b4 # 52f: 01f6ff + bbci a3, 7, .Lbr016 # 532: 776321 + beq a2, a0, .Lbr018 # 535: 071243 + bltu a6, a2, .Lbr017 # 538: 27362e + add a2, a2, a7 /* arg0+0xfffff699 */ # 53b: 7a22 + movi a3, 5 /* 0x00000005 */ # 53d: 0c53 + call0 __divsi3 # 53f: 01f6ffc0 + # 543: 0000 +.Lbr013: slli a2, a2, 24 # 545: 802201 + srai a2, a2, 24 # 548: 202831 + j .Lbr015 # 54b: 460000 +.Lbr014: movi a2, -1 /* 0xffffffff */ # 54e: 7cf2 +.Lbr015: l32i a0, sp, 0 /* [(local0)] */ # 550: 0801 + addi sp, sp, 16 /* (top of frame) */ # 552: 12c110 + ret # 555: 0df0 +.Lbr016: beq a2, a0, .Lbr018 # 557: 071221 + bltu a6, a2, .Lbr014 # 55a: 2736f0 + add a2, a2, a7 /* arg0+0xfffff699 */ # 55d: 7a22 + movi a3, 5 /* 0x00000005 */ # 55f: 0c53 + call0 __divsi3 # 561: 01eeffc0 + # 565: 0000 + j .Lbr013 # 567: 86f6ff +.Lbr017: movi a4, 0xfffff630 # 56a: 41eaff + movi a3, 20 /* 0x00000014 */ # 56d: 1c43 + add a2, a2, a4 /* arg0+0xfffff630 */ # 56f: 4a22 + call0 __divsi3 # 571: 01ebffc0 + # 575: 0000 + addi a2, a2, 15 # 577: fb22 + j .Lbr013 # 579: 06f2ff +.Lbr018: movi a2, 14 /* 0x0000000e */ # 57c: 0ce2 + j .Lbr015 # 57e: 86f3ff + + .literal_position # 584: 00020060 + # 588: 00000000 + # 58c: 00000000 + # 590: 00000000 + # 594: 00000000 + +# Function @ .irom0.text+0x598 +# Local variables/stack: +# (local0): word @ -0x30 +# (local1): word @ -0x2c +# (local2): word @ -0x28 +# (local3): word @ -0x24 +# (local4): word @ -0x20 +# (local5): word @ -0x1c +# (local6): word @ -0x18 +# (local7): word @ -0x14 +# (local8): word @ -0x10 +# (local9): word @ -0xc +# (local10): word[2] @ -0x8 + .balign 4 + .global rom_rxiq_get_mis + .type rom_rxiq_get_mis, @function +rom_rxiq_get_mis: + addi sp, sp, -48 /* (local0) */ # 598: 12c1d0 + s32i a12, sp, 8 /* a12 -> [(local2)] */ # 59b: c921 + s32i a13, sp, 12 /* a13 -> [(local3)] */ # 59d: d931 + s32i a14, sp, 16 /* a14 -> [(local4)] */ # 59f: e941 + s32i a15, sp, 20 /* a15 -> [(local5)] */ # 5a1: f951 + s32i a5, sp, 24 /* arg3 -> [(local6)] */ # 5a3: 5961 + s32i a7, sp, 32 /* arg5 -> [(local8)] */ # 5a5: 7981 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 5a7: 0911 + s32i a6, sp, 28 /* arg4 -> [(local7)] */ # 5a9: 6971 + addi a6, a2, -2 /* arg0-0x2 */ # 5ab: 62c2fe + movi a0, 0x60000200 # 5ae: 01f5ff + memw # 5b1: c02000 + l32i a7, a0, 0x380 /* [0x60000580] */ # 5b4: 7220e0 + ssr a6 # 5b7: 000640 + sra a7, a7 # 5ba: 7070b1 + memw # 5bd: c02000 + l32i a8, a0, 0x38c /* [0x6000058c] */ # 5c0: 8220e3 + ssr a6 # 5c3: 000640 + sra a8, a8 # 5c6: 8080b1 + sub a15, a7, a8 # 5c9: 80f7c0 + memw # 5cc: c02000 + l32i a5, a0, 0x388 /* [0x60000588] */ # 5cf: 5220e2 + ssr a6 # 5d2: 000640 + sra a5, a5 # 5d5: 5050b1 + memw # 5d8: c02000 + movi a9, 0 /* 0x00000000 */ # 5db: 0c09 + l32i a0, a0, 0x384 /* [0x60000584] */ # 5dd: 0220e1 + ssr a6 # 5e0: 000640 + add a2, a7, a8 # 5e3: 8a27 + mov a13, a2 # 5e5: dd02 + movi a8, 0 /* 0x00000000 */ # 5e7: 0c08 + l32i a7, sp, 28 /* [(local7)] */ # 5e9: 7871 + l32i a6, sp, 24 /* [(local6)] */ # 5eb: 6861 + sra a0, a0 # 5ed: 0000b1 + add a14, a5, a0 # 5f0: 0ae5 + xor a6, a6, a7 # 5f2: 706630 + sub a0, a0, a5 # 5f5: 5000c0 + mov a12, a0 # 5f8: cd00 + xor a5, a3, a4 # 5fa: 405330 + xor a5, a5, a6 # 5fd: 605530 + extui a5, a5, 0, 8 # 600: 505074 + beqz a5, .Lbr019 # 603: 8c65 + mov a12, a14 # 605: cd0e + mov a13, a15 # 607: dd0f + mov a14, a0 # 609: ed00 + mov a15, a2 # 60b: fd02 +.Lbr019: movi a0, 1 /* 0x00000001 */ # 60d: 0c10 + mull a11, a12, a12 # 60f: c0bc82 + mull a10, a13, a13 # 612: d0ad82 + add a10, a10, a11 # 615: baaa + s32i a10, sp, 40 /* a10 -> [(local10)] */ # 617: a9a1 + moveqz a9, a0, a10 # 619: a09083 + srai a10, a10, 31 # 61c: a0af31 + s32i a10, sp, 36 /* a10 -> [(local9)] */ # 61f: a991 + moveqz a8, a0, a10 # 621: a08083 + bnone a8, a9, .Lbr020 # 624: 970805 + s32i a0, sp, 40 /* 0x00000001 -> [(local10)] */ # 627: 09a1 + movi a2, 0 /* 0x00000000 */ # 629: 0c02 + s32i a2, sp, 36 /* 0x00000000 -> [(local9)] */ # 62b: 2991 +.Lbr020: l32i a5, sp, 36 /* [(local9)] */ # 62d: 5891 + mull a4, a14, a12 # 62f: c04e82 + mull a3, a15, a13 # 632: d03f82 + sub a3, a3, a4 # 635: 4033c0 + slli a2, a3, 9 # 638: 702311 + l32i a4, sp, 40 /* [(local10)] */ # 63b: 48a1 + srai a3, a3, 23 # 63d: 303731 + call0 __divdi3 # 640: 01d3ffc0 + # 644: 0000 + l32i a7, sp, 28 /* [(local7)] */ # 646: 7871 + mull a4, a14, a13 # 648: d04e82 + mull a3, a15, a12 # 64b: c03f82 + slli a6, a2, 24 # 64e: 806201 + srai a6, a6, 24 # 651: 606831 + add a3, a3, a4 # 654: 4a33 + addi a6, a6, 1 # 656: 1b66 + l32i a4, sp, 40 /* [(local10)] */ # 658: 48a1 + slli a2, a3, 9 # 65a: 702311 + srai a6, a6, 1 # 65d: 606121 + neg a5, a6 # 660: 605060 + srai a3, a3, 23 # 663: 303731 + moveqz a5, a6, a7 # 666: 705683 + l32i a6, sp, 32 /* [(local8)] */ # 669: 6881 + s32i a5, sp, 0 /* a5 -> [(local0)] */ # 66b: 5901 + s8i a5, a6, 0 /* a5 -> [[(local8)]] */ # 66d: 524600 + l32i a5, sp, 36 /* [(local9)] */ # 670: 5891 + call0 __divdi3 # 672: 01c7ffc0 + # 676: 0000 + slli a8, a2, 24 # 678: 808201 + l32i a9, sp, 24 /* [(local6)] */ # 67b: 9861 + srai a8, a8, 24 # 67d: 808831 + addi a8, a8, 1 # 680: 1b88 + srai a8, a8, 1 # 682: 808121 + neg a0, a8 # 685: 800060 + moveqz a0, a8, a9 # 688: 900883 + l32i a8, sp, 32 /* [(local8)] */ # 68b: 8881 + l8ui a7, sp, 48 /* [(local11)] */ # 68d: 720130 + s8i a0, a8, 1 /* a0 -> [[(local8)]+0x1] */ # 690: 024801 + beqz a7, .Lbr021 # 693: 9c97 + l32i a5, sp, 36 /* [(local9)] */ # 695: 5891 + l32i a4, sp, 40 /* [(local10)] */ # 697: 48a1 + movi a2, .Lstr001 # 699: 21bbff + l32i a6, sp, 0 /* [(local0)] */ # 69c: 6801 + slli a7, a0, 24 # 69e: 807001 + srai a7, a7, 24 # 6a1: 707831 + slli a6, a6, 24 # 6a4: 806601 + srai a6, a6, 24 # 6a7: 606831 + call0 ets_printf # 6aa: 01baffc0 + # 6ae: 0000 +.Lbr021: l32i a12, sp, 8 /* [(local2)] */ # 6b0: c821 + l32i a13, sp, 12 /* [(local3)] */ # 6b2: d831 + l32i a14, sp, 16 /* [(local4)] */ # 6b4: e841 + l32i a15, sp, 20 /* [(local5)] */ # 6b6: f851 + l32i a0, sp, 4 /* [(local1)] */ # 6b8: 0811 + addi sp, sp, 48 /* (local11) */ # 6ba: 12c130 + ret # 6bd: 0df0 + + .literal_position # 6c0: 00000002 + # 6c4: 00000000 + # 6c8: 00060060 + # 6cc: 00000000 + +# Function @ .irom0.text+0x6d0 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global rom_sar_init + .type rom_sar_init, @function +rom_sar_init: + addi sp, sp, -16 /* (local0) */ # 6d0: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 6d3: 0901 + movi a4, 0x02000000 # 6d5: 41faff + movi a3, 0x60000600 # 6d8: 31fcff + movi a0, g_phyFuns # 6db: 01faff + memw # 6de: c02000 + l32i a2, a3, 0x110 /* [0x60000710] */ # 6e1: 222344 + or a2, a2, a4 # 6e4: 402220 + memw # 6e7: c02000 + movi a4, 0 /* 0x00000000 */ # 6ea: 0c04 + movi a5, 4 /* 0x00000004 */ # 6ec: 0c45 + movi a6, 4 /* 0x00000004 */ # 6ee: 0c46 + movi a7, 1 /* 0x00000001 */ # 6f0: 0c17 + l32i a0, a0, 0 /* [g_phyFuns] */ # 6f2: 0800 + s32i a2, a3, 0x110 /* a2 -> [0x60000710] */ # 6f4: 226344 + movi a2, 108 /* 0x0000006c */ # 6f7: 22a06c + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 6fa: 022027 + movi a3, 2 /* 0x00000002 */ # 6fd: 0c23 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 6ff: c00000 + movi a2, 108 /* 0x0000006c */ # 702: 22a06c + movi a3, 2 /* 0x00000002 */ # 705: 0c23 + movi a4, 1 /* 0x00000001 */ # 707: 0c14 + movi a0, g_phyFuns # 709: 01f0ff + movi a5, 1 /* 0x00000001 */ # 70c: 0c15 + l32i a0, a0, 0 /* [g_phyFuns] */ # 70e: 0800 + movi a6, 0 /* 0x00000000 */ # 710: 0c06 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 712: 022027 + movi a7, 2 /* 0x00000002 */ # 715: 0c27 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 717: c00000 + l32i a0, sp, 0 /* [(local0)] */ # 71a: 0801 + addi sp, sp, 16 /* (top of frame) */ # 71c: 12c110 + ret # 71f: 0df0 + + .literal_position # 724: 00000000 + +# Function @ .irom0.text+0x728 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global rom_set_ana_inf_tx_scale + .type rom_set_ana_inf_tx_scale, @function +rom_set_ana_inf_tx_scale: + addi sp, sp, -16 /* (local0) */ # 728: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 72b: c911 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 72d: 0901 + bltui a2, 64, .Lbr022 # 72f: b6d20a + movi a12, 63 /* 0x0000003f */ # 732: 3cfc + sub a7, a12, a2 # 734: 207cc0 + extui a7, a7, 0, 8 # 737: 707074 + j .Lbr023 # 73a: c60000 +.Lbr022: movi a7, 0 /* 0x00000000 */ # 73d: 0c07 + mov a12, a2 /* arg0 */ # 73f: cd02 +.Lbr023: movi a2, 119 /* 0x00000077 */ # 741: 22a077 + movi a3, 0 /* 0x00000000 */ # 744: 0c03 + movi a0, g_phyFuns # 746: 01f7ff + movi a4, 9 /* 0x00000009 */ # 749: 0c94 + l32i a0, a0, 0 /* [g_phyFuns] */ # 74b: 0800 + movi a5, 7 /* 0x00000007 */ # 74d: 0c75 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 74f: 022027 + movi a6, 0 /* 0x00000000 */ # 752: 0c06 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 754: c00000 + mov a2, a12 # 757: 2d0c + l32i a0, sp, 0 /* [(local0)] */ # 759: 0801 + l32i a12, sp, 4 /* [(local1)] */ # 75b: c811 + addi sp, sp, 16 /* (top of frame) */ # 75d: 12c110 + ret # 760: 0df0 + + .literal_position # 764: 00000000 + +# Function @ .irom0.text+0x768 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word @ -0x10 +# (local5): word[3] @ -0xc + .balign 4 + .global rom_set_loopback_gain + .type rom_set_loopback_gain, @function +rom_set_loopback_gain: + addi sp, sp, -32 /* (local0) */ # 768: 12c1e0 + s32i a5, sp, 12 /* arg3 -> [(local3)] */ # 76b: 5931 + s32i a4, sp, 8 /* arg2 -> [(local2)] */ # 76d: 4921 + s32i a3, sp, 4 /* arg1 -> [(local1)] */ # 76f: 3911 + s32i a0, sp, 16 /* a0 -> [(local4)] */ # 771: 0941 + s32i a2, sp, 0 /* arg0 -> [(local0)] */ # 773: 2901 + s32i a12, sp, 20 /* a12 -> [(local5)] */ # 775: c951 + movi a12, g_phyFuns # 777: c1fbff + movi a2, 2 /* 0x00000002 */ # 77a: 0c22 + l32i a0, a12, 0 /* [g_phyFuns] */ # 77c: 080c + movi a3, 1 /* 0x00000001 */ # 77e: 0c13 + l32i a0, a0, 172 /* [[g_phyFuns]+0xac] */ # 780: 02202b + movi a4, 389 /* 0x00000185 */ # 783: 42a185 + callx0 a0 /* [[g_phyFuns]+0xac] */ # 786: c00000 + l32i a4, sp, 0 /* [(local0)] */ # 789: 4801 + l32i a0, a12, 0 /* [g_phyFuns] */ # 78b: 080c + movi a2, 7 /* 0x00000007 */ # 78d: 0c72 + l32i a0, a0, 172 /* [[g_phyFuns]+0xac] */ # 78f: 02202b + movi a3, 1 /* 0x00000001 */ # 792: 0c13 + callx0 a0 /* [[g_phyFuns]+0xac] */ # 794: c00000 + l32i a4, sp, 4 /* [(local1)] */ # 797: 4811 + l32i a0, a12, 0 /* [g_phyFuns] */ # 799: 080c + movi a2, 2 /* 0x00000002 */ # 79b: 0c22 + l32i a0, a0, 172 /* [[g_phyFuns]+0xac] */ # 79d: 02202b + movi a3, 1 /* 0x00000001 */ # 7a0: 0c13 + callx0 a0 /* [[g_phyFuns]+0xac] */ # 7a2: c00000 + l32i a4, sp, 8 /* [(local2)] */ # 7a5: 4821 + l32i a0, a12, 0 /* [g_phyFuns] */ # 7a7: 080c + movi a2, 3 /* 0x00000003 */ # 7a9: 0c32 + l32i a0, a0, 172 /* [[g_phyFuns]+0xac] */ # 7ab: 02202b + movi a3, 1 /* 0x00000001 */ # 7ae: 0c13 + callx0 a0 /* [[g_phyFuns]+0xac] */ # 7b0: c00000 + l32i a4, sp, 12 /* [(local3)] */ # 7b3: 4831 + l32i a0, a12, 0 /* [g_phyFuns] */ # 7b5: 080c + movi a2, 3 /* 0x00000003 */ # 7b7: 0c32 + l32i a0, a0, 172 /* [[g_phyFuns]+0xac] */ # 7b9: 02202b + movi a3, 2 /* 0x00000002 */ # 7bc: 0c23 + callx0 a0 /* [[g_phyFuns]+0xac] */ # 7be: c00000 + l32i a12, sp, 20 /* [(local5)] */ # 7c1: c851 + l32i a0, sp, 16 /* [(local4)] */ # 7c3: 0841 + addi sp, sp, 32 /* (top of frame) */ # 7c5: 12c120 + ret # 7c8: 0df0 + + .literal_position # 7cc: 009a0060 + # 7d0: fd7ffdff + +# Function @ .irom0.text+0x7d4 + .balign 4 + .global rom_set_noise_floor + .type rom_set_noise_floor, @function +rom_set_noise_floor: + movi a9, -512 /* 0xfffffe00 */ # 7d4: 92ae00 + slli a8, a2, 1 # 7d7: f08211 + movi a4, 0x60009a00 # 7da: 41fcff + addmi a8, a8, 512 # 7dd: 82d802 + extui a8, a8, 0, 9 # 7e0: 808084 + memw # 7e3: c02000 + l32i a7, a4, 0x164 /* [0x60009b64] */ # 7e6: 722459 + and a7, a7, a9 # 7e9: 907710 + or a7, a7, a8 # 7ec: 807720 + memw # 7ef: c02000 + s32i a7, a4, 0x164 /* a7 -> [0x60009b64] */ # 7f2: 726459 + movi a6, 0xfffd7ffd # 7f5: 61f6ff + movi a5, 2 /* 0x00000002 */ # 7f8: 0c25 + memw # 7fa: c02000 + l32i a3, a4, 0x160 /* [0x60009b60] */ # 7fd: 322458 + and a3, a3, a6 # 800: 603310 + or a3, a3, a5 # 803: 503320 + memw # 806: c02000 + s32i a3, a4, 0x160 /* a3 -> [0x60009b60] */ # 809: 326458 + ret /* arg0 */ # 80c: 0df0 + + .literal_position # 810: 00f0ffff + # 814: 009a0060 + # 818: 02800200 + +# Function @ .irom0.text+0x81c + .balign 4 + .global rom_start_noisefloor + .type rom_start_noisefloor, @function +rom_start_noisefloor: + movi a9, 0xfffff000 # 81c: 91fdff + movi a7, 416 /* 0x000001a0 */ # 81f: 72a1a0 + extui a8, a2, 0, 3 # 822: 208024 + movi a4, 0x60009a00 # 825: 41fbff + slli a8, a8, 9 # 828: 708811 + memw # 82b: c02000 + l32i a6, a4, 0x164 /* [0x60009b64] */ # 82e: 622459 + and a6, a6, a9 # 831: 906610 + or a6, a6, a8 # 834: 806620 + or a6, a6, a7 # 837: 706620 + memw # 83a: c02000 + s32i a6, a4, 0x164 /* a6 -> [0x60009b64] */ # 83d: 626459 + movi a5, 0x00028002 # 840: 51f6ff + memw # 843: c02000 + l32i a3, a4, 0x160 /* [0x60009b60] */ # 846: 322458 + or a3, a3, a5 # 849: 503320 + memw # 84c: c02000 + s32i a3, a4, 0x160 /* a3 -> [0x60009b60] */ # 84f: 326458 + ret /* arg0 */ # 852: 0df0 + + .literal_position # 854: 00000000 + # 858: 00020060 + # 85c: 000000f0 + # 860: 000000e0 + +# Function @ .irom0.text+0x864 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word @ -0x10 +# (local5): word @ -0xc +# (local6): word[2] @ -0x8 + .balign 4 + .global rom_start_tx_tone + .type rom_start_tx_tone, @function +rom_start_tx_tone: + addi sp, sp, -32 /* (local0) */ # 864: 12c1e0 + s32i a3, sp, 0 /* arg1 -> [(local0)] */ # 867: 3901 + s32i a4, sp, 4 /* arg2 -> [(local1)] */ # 869: 4911 + s32i a6, sp, 8 /* arg4 -> [(local2)] */ # 86b: 6921 + s32i a7, sp, 12 /* arg5 -> [(local3)] */ # 86d: 7931 + s32i a13, sp, 24 /* a13 -> [(local6)] */ # 86f: d961 + s32i a12, sp, 20 /* a12 -> [(local5)] */ # 871: c951 + s32i a0, sp, 16 /* a0 -> [(local4)] */ # 873: 0941 + movi a0, g_phyFuns # 875: 01f7ff + mov a12, a5 /* arg3 */ # 878: cd05 + l32i a0, a0, 0 /* [g_phyFuns] */ # 87a: 0800 + mov a13, a2 /* arg0 */ # 87c: dd02 + l32i a0, a0, 60 /* [[g_phyFuns]+0x3c] */ # 87e: 08f0 + movi a2, 1 /* 0x00000001 */ # 880: 0c12 + callx0 a0 /* [[g_phyFuns]+0x3c] */ # 882: c00000 + movi a11, 0 /* 0x00000000 */ # 885: 0c0b + movi a5, 256 /* 0x00000100 */ # 887: 52a100 + movi a0, 0x60000200 # 88a: 01f3ff + movi a2, 0xf0000000 # 88d: 21f3ff + beqz a13, .Lbr024 # 890: ac6d + l32i a6, sp, 4 /* [(local1)] */ # 892: 6811 + l32i a4, sp, 0 /* [(local0)] */ # 894: 4801 + sub a6, a5, a6 # 896: 6065c0 + extui a6, a6, 0, 8 # 899: 606074 + slli a6, a6, 10 # 89c: 606611 + or a4, a4, a6 # 89f: 604420 + slli a6, a13, 18 # 8a2: e06d01 + memw # 8a5: c02000 + l32i a3, a0, 0x3b8 /* [0x600005b8] */ # 8a8: 3220ee + and a3, a3, a2 # 8ab: 203310 + or a3, a3, a6 # 8ae: 603320 + or a3, a3, a4 # 8b1: 403320 + memw # 8b4: c02000 + s32i a3, a0, 0x3b8 /* a3 -> [0x600005b8] */ # 8b7: 3260ee +.Lbr024: beqz a12, .Lbr025 # 8ba: ac9c + l32i a9, sp, 12 /* [(local3)] */ # 8bc: 9831 + l32i a8, sp, 8 /* [(local2)] */ # 8be: 8821 + sub a9, a5, a9 # 8c0: 9095c0 + extui a9, a9, 0, 8 # 8c3: 909074 + slli a9, a9, 10 # 8c6: 609911 + or a8, a8, a9 # 8c9: 908820 + slli a9, a12, 18 # 8cc: e09c01 + memw # 8cf: c02000 + l32i a7, a0, 0x3bc /* [0x600005bc] */ # 8d2: 7220ef + and a7, a7, a2 # 8d5: 207710 + or a7, a7, a11 # 8d8: b07720 + or a7, a7, a9 # 8db: 907720 + or a7, a7, a8 # 8de: 807720 + memw # 8e1: c02000 + s32i a7, a0, 0x3bc /* a7 -> [0x600005bc] */ # 8e4: 7260ef +.Lbr025: l8ui a2, sp, 32 /* [(local7)] */ # 8e7: 220120 + movi a8, 0xe0000000 # 8ea: 81ddff + beqz a2, .Lbr026 # 8ed: ace2 + slli a7, a2, 28 # 8ef: 407201 + slli a6, a2, 18 # 8f2: e06201 + l8ui a9, sp, 40 /* [(FP)+0x8] */ # 8f5: 920128 + l16si a4, sp, 36 /* [(FP)+0x4] */ # 8f8: 429112 + sub a9, a5, a9 # 8fb: 9095c0 + extui a9, a9, 0, 8 # 8fe: 909074 + slli a9, a9, 10 # 901: 609911 + or a4, a4, a9 # 904: 904420 + memw # 907: c02000 + l32i a3, a0, 0x3c4 /* [0x600005c4] */ # 90a: 3220f1 + and a3, a3, a8 # 90d: 803310 + or a3, a3, a7 # 910: 703320 + or a3, a3, a6 # 913: 603320 + or a3, a3, a4 # 916: 403320 + memw # 919: c02000 + s32i a3, a0, 0x3c4 /* a3 -> [0x600005c4] */ # 91c: 3260f1 +.Lbr026: l32i a12, sp, 20 /* [(local5)] */ # 91f: c851 + l32i a13, sp, 24 /* [(local6)] */ # 921: d861 + l32i a0, sp, 16 /* [(local4)] */ # 923: 0841 + addi sp, sp, 32 /* (local7) */ # 925: 12c120 + ret /* [(local7)] */ # 928: 0df0 + + .literal_position # 92c: fffffbff + # 930: 00020060 + # 934: 00000000 + +# Function @ .irom0.text+0x938 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global rom_stop_tx_tone + .type rom_stop_tx_tone, @function +rom_stop_tx_tone: + addi sp, sp, -16 /* (local0) */ # 938: 12c1f0 + movi a4, 0xfffbffff # 93b: 41fcff + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 93e: 0901 + movi a0, 0x60000200 # 940: 01fcff + beqi a2, 1, .Lbr027 # 943: 261235 + beqi a2, 2, .Lbr030 # 946: 262266 + beqi a2, 3, .Lbr029 # 949: 263251 + memw # 94c: c02000 + l32i a5, a0, 0x3b8 /* [0x600005b8] */ # 94f: 5220ee + and a5, a5, a4 # 952: 405510 + memw # 955: c02000 + s32i a5, a0, 0x3b8 /* a5 -> [0x600005b8] */ # 958: 5260ee + memw # 95b: c02000 + l32i a3, a0, 0x3bc /* [0x600005bc] */ # 95e: 3220ef + and a3, a3, a4 # 961: 403310 + memw # 964: c02000 + s32i a3, a0, 0x3bc /* a3 -> [0x600005bc] */ # 967: 3260ef + memw # 96a: c02000 + l32i a2, a0, 0x3c4 /* [0x600005c4] */ # 96d: 2220f1 + and a2, a2, a4 # 970: 402210 + memw # 973: c02000 + s32i a2, a0, 0x3c4 /* a2 -> [0x600005c4] */ # 976: 2260f1 + j .Lbr028 # 979: 860300 +.Lbr027: memw # 97c: c02000 + l32i a6, a0, 0x3b8 /* [0x600005b8] */ # 97f: 6220ee + and a6, a6, a4 # 982: 406610 + memw # 985: c02000 + s32i a6, a0, 0x3b8 /* a6 -> [0x600005b8] */ # 988: 6260ee +.Lbr028: movi a0, g_phyFuns # 98b: 01eaff + l32i a0, a0, 0 /* [g_phyFuns] */ # 98e: 0800 + l32i a0, a0, 60 /* [[g_phyFuns]+0x3c] */ # 990: 08f0 + movi a2, 0 /* 0x00000000 */ # 992: 0c02 + callx0 a0 /* [[g_phyFuns]+0x3c] */ # 994: c00000 + l32i a0, sp, 0 /* [(local0)] */ # 997: 0801 + addi sp, sp, 16 /* (top of frame) */ # 999: 12c110 + ret # 99c: 0df0 +.Lbr029: memw # 99e: c02000 + l32i a2, a0, 0x3c4 /* [0x600005c4] */ # 9a1: 2220f1 + and a2, a2, a4 # 9a4: 402210 + memw # 9a7: c02000 + s32i a2, a0, 0x3c4 /* a2 -> [0x600005c4] */ # 9aa: 2260f1 + j .Lbr028 # 9ad: 86f6ff +.Lbr030: memw # 9b0: c02000 + l32i a3, a0, 0x3bc /* [0x600005bc] */ # 9b3: 3220ef + and a3, a3, a4 # 9b6: 403310 + memw # 9b9: c02000 + s32i a3, a0, 0x3bc /* a3 -> [0x600005bc] */ # 9bc: 3260ef + j .Lbr028 # 9bf: 06f2ff + + .literal_position # 9c4: 00000000 + # 9c8: 00000000 + +# Function @ .irom0.text+0x9cc +# Local variables/stack: +# (local0): hword @ -0x20 +# (local1): hword @ -0x1e +# (local2): word @ -0x1c +# (local3): word @ -0x18 +# (local4): word @ -0x14 +# (local5): word @ -0x10 +# (local6): word @ -0xc +# (local7): word[2] @ -0x8 + .balign 4 + .global rom_txtone_linear_pwr + .type rom_txtone_linear_pwr, @function +rom_txtone_linear_pwr: + addi sp, sp, -32 /* (local0) */ # 9cc: 12c1e0 + s32i a0, sp, 4 /* a0 -> [(local2)] */ # 9cf: 0911 + s32i a3, sp, 24 /* arg1 -> [(local7)] */ # 9d1: 3961 + s32i a15, sp, 20 /* a15 -> [(local6)] */ # 9d3: f951 + s32i a13, sp, 12 /* a13 -> [(local4)] */ # 9d5: d931 + s32i a14, sp, 16 /* a14 -> [(local5)] */ # 9d7: e941 + s32i a12, sp, 8 /* a12 -> [(local3)] */ # 9d9: c921 + mov a14, a2 /* arg0 */ # 9db: ed02 + beqz a2, .Lbr032 # 9dd: bcf2 + movi a12, 0 /* 0x00000000 */ # 9df: 0c0c + movi a13, 0 /* 0x00000000 */ # 9e1: 0c0d + mov a15, a3 /* arg1 */ # 9e3: fd03 +.Lbr031: movi a0, g_phyFuns # 9e5: 01f7ff + l32i a0, a0, 0 /* [g_phyFuns] */ # 9e8: 0800 + mov a2, sp /* (local0) */ # 9ea: 2d01 + l32i a0, a0, 36 /* [[g_phyFuns]+0x24] */ # 9ec: 0890 + addi a3, sp, 2 /* (local1) */ # 9ee: 2b31 + callx0 a0 /* [[g_phyFuns]+0x24] */ # 9f0: c00000 + movi a4, 1 /* 0x00000001 */ # 9f3: 0c14 + l16si a3, sp, 2 /* [(local1)] */ # 9f5: 329101 + l16si a2, sp, 0 /* [(local0)] */ # 9f8: 229100 + ssl a15 # 9fb: 001f40 + sll a2, a2 # 9fe: 0022a1 + moveqz a3, a4, a3 # a01: 303483 + s16i a3, sp, 2 /* a3 -> [(local1)] */ # a04: 325101 + call0 __divsi3 # a07: 01f0ffc0 + # a0b: 0000 + add a12, a12, a2 # a0d: 2acc + addi a13, a13, 1 # a0f: 1bdd + extui a13, a13, 0, 8 # a11: d0d074 + slli a12, a12, 16 # a14: 00cc11 + srai a12, a12, 16 # a17: c0c031 + bne a14, a13, .Lbr031 # a1a: d79ec7 + j .Lbr033 # a1d: 460000 +.Lbr032: movi a12, 0 /* 0x00000000 */ # a20: 0c0c +.Lbr033: l32i a0, sp, 4 /* [(local2)] */ # a22: 0811 + l32i a13, sp, 12 /* [(local4)] */ # a24: d831 + l32i a14, sp, 16 /* [(local5)] */ # a26: e841 + mov a2, a12 # a28: 2d0c + l32i a15, sp, 20 /* [(local6)] */ # a2a: f851 + l32i a12, sp, 8 /* [(local3)] */ # a2c: c821 + addi sp, sp, 32 /* (top of frame) */ # a2e: 12c120 + ret # a31: 0df0 + + .literal_position # a34: 000af23f + # a38: 0000807f + +# Function @ .irom0.text+0xa3c + .balign 4 + .global rom_tx_mac_disable + .type rom_tx_mac_disable, @function +rom_tx_mac_disable: + movi a3, 0x3ff20a00 # a3c: 31feff + memw # a3f: c02000 + l32i a5, a3, 0x3e0 /* [0x3ff20de0] */ # a42: 5223f8 + movi a7, 0x7f800000 # a45: 71fcff + srli a6, a5, 1 # a48: 506141 + and a6, a6, a7 # a4b: 706610 + movi a7, 252 /* 0x000000fc */ # a4e: 72a0fc + and a5, a5, a7 # a51: 705510 + or a5, a5, a6 # a54: 605520 + movi a6, 3 /* 0x00000003 */ # a57: 0c36 + or a5, a5, a6 # a59: 605520 + memw # a5c: c02000 + s32i a5, a3, 0x3e0 /* a5 -> [0x3ff20de0] */ # a5f: 5263f8 + movi a4, -2 /* 0xfffffffe */ # a62: 7ce4 + memw # a64: c02000 + l32i a2, a3, 0x294 /* [0x3ff20c94] */ # a67: 2223a5 + and a2, a2, a4 # a6a: 402210 + memw # a6d: c02000 + s32i a2, a3, 0x294 /* a2 -> [0x3ff20c94] */ # a70: 2263a5 + ret # a73: 0df0 + + .literal_position # a78: 000af23f + # a7c: 0000807f + +# Function @ .irom0.text+0xa80 + .balign 4 + .global rom_tx_mac_enable + .type rom_tx_mac_enable, @function +rom_tx_mac_enable: + movi a3, 0x3ff20a00 # a80: 31feff + memw # a83: c02000 + l32i a5, a3, 0x3e0 /* [0x3ff20de0] */ # a86: 5223f8 + movi a7, 0x7f800000 # a89: 71fcff + srli a6, a5, 1 # a8c: 506141 + and a6, a6, a7 # a8f: 706610 + movi a7, 252 /* 0x000000fc */ # a92: 72a0fc + and a5, a5, a7 # a95: 705510 + or a5, a5, a6 # a98: 605520 + memw # a9b: c02000 + s32i a5, a3, 0x3e0 /* a5 -> [0x3ff20de0] */ # a9e: 5263f8 + movi a4, 1 /* 0x00000001 */ # aa1: 0c14 + memw # aa3: c02000 + l32i a2, a3, 0x294 /* [0x3ff20c94] */ # aa6: 2223a5 + or a2, a2, a4 # aa9: 402220 + memw # aac: c02000 + s32i a2, a3, 0x294 /* a2 -> [0x3ff20c94] */ # aaf: 2263a5 + ret # ab2: 0df0 + + .section .rodata, "a", @progbits + +.Ldata001: .byte 0x00, 0x04, 0x08, 0x0c, 0x10, 0x13, 0x16, 0x19 + .byte 0x1c, 0x1f, 0x22, 0x24, 0x27, 0x29, 0x2c, 0x2e + + .section .rodata.str1.4, "MSa", @progbits, 1 + +.Lstr001: .asciz "rxiq_get_mis: s_pwr=%lld, %d-%d, " # 0: 72786971 + # 4: 5f676574 + # 8: 5f6d6973 + # c: 3a20735f + # 10: 7077723d + # 14: 256c6c64 + # 18: 2c202564 + # 1c: 2d25642c + # 20: 2000 diff --git a/binary_sdk/libphy_stage1/phy_chip_v6.S b/binary_sdk/libphy_stage1/phy_chip_v6.S new file mode 100644 index 0000000..281cd8a --- /dev/null +++ b/binary_sdk/libphy_stage1/phy_chip_v6.S @@ -0,0 +1,6277 @@ + + .section .text, "ax", @progbits + +# Function @ .text+0x0 + .balign 4 + .literal_position + .global ram_tx_mac_disable + .type ram_tx_mac_disable, @function +ram_tx_mac_disable: + ret /* arg0 */ # 0: 0df0 + + .section .data, "aw", @progbits + +.Ldata001: .byte 0x55 + +# NOTE: 1 non-alignment zero bytes skipped. + + .skip 1 + .global tx_rf_ana_gain + .type tx_rf_ana_gain, @object +tx_rf_ana_gain: + .hword 0x0bf0 # 2: f00b +.Lrel001: .word chip_v6_rf_init # 4: 00000000 +.Lrel002: .word chip_v6_set_chanfreq # 8: 00000000 +.Lrel003: .word chip_v6_set_chan # c: 00000000 +.Lrel004: .word chip_v6_unset_chanfreq # 10: 00000000 +.Lrel005: .word rom_chip_v5_enable_cca # 14: 00000000 +.Lrel006: .word rom_chip_v5_disable_cca # 18: 00000000 +.Lrel007: .word chip_v6_initialize_bb # 1c: 00000000 +.Lrel008: .word chip_v6_set_sense # 20: 00000000 + .global tx_pwctrl_atten_init_en + .type tx_pwctrl_atten_init_en, @object +tx_pwctrl_atten_init_en: + .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + .global rx_gain_swp + .type rx_gain_swp, @object +rx_gain_swp: + .byte 0x00, 0x00, 0x00, 0x04, 0x00, 0x20, 0x00, 0x24 + .byte 0x00, 0x28, 0x00, 0x2c, 0x00, 0x30, 0x00, 0x34 + .byte 0x00, 0x40, 0x00, 0x60, 0x00, 0x64, 0x00, 0x68 + .byte 0x00, 0x70, 0x00, 0x74, 0x00, 0x78, 0x00, 0x7c + +# NOTE: The following is apparently unreferenced code/data + .global test_rffreq_txcap + .type test_rffreq_txcap, @object +test_rffreq_txcap: + .byte 0x07 # 50: 07 + .byte 0x03 # 51: 03 + .byte 0x03 # 52: 03 + + .section .bss, "aw", @nobits + + .global rxiq_compute_num + .type rxiq_compute_num, @object +rxiq_compute_num: + .word 0x00000000 # 0: 00000000 + .global rxdc_init_flag + .type rxdc_init_flag, @object +rxdc_init_flag: + .byte 0x00 + .byte 0x00, 0x00, 0x00 + .global check_result + .type check_result, @object +check_result: + .word 0x00000000 # 8: 00000000 + .global chip6_sleep_params + .type chip6_sleep_params, @object +chip6_sleep_params: + .word 0x00000000 # c: 00000000 +.Label001: .space 25 +.Label002: .space 47 +.Ldata002: .hword 0x0000 # 58: 0000 +.Ldata003: .byte 0x00 +.Ldata004: .byte 0x00 +.Ldata005: .byte 0x00 + +# NOTE: 1 non-alignment zero bytes skipped. + + .skip 1 +.Ldata006: .byte 0x00 + +# NOTE: 2 non-alignment zero bytes skipped. + + .skip 3 +.Ldata007: .byte 0x00 + +# NOTE: 4 non-alignment zero bytes skipped. + + .skip 5 +.Ldata008: .byte 0x00 + +# NOTE: 1 non-alignment zero bytes skipped. + + .skip 1 +.Ldata009: .byte 0x00 + +# NOTE: 2 non-alignment zero bytes skipped. + + .skip 3 +.Ldata010: .byte 0x00 + +# NOTE: 3 non-alignment zero bytes skipped. + + .skip 4 +.Ldata011: .byte 0x00 +.Ldata012: .byte 0x00 +.Ldata013: .byte 0x00 + +# NOTE: 2 non-alignment zero bytes skipped. + + .skip 4 +.Ldata014: .byte 0x00 + .balign 4 +.Label003: .word 0x00000000 # 7c: 00000000 +.Ldata015: .hword 0x0000 # 80: 0000 +.Ldata016: .hword 0x0000 # 82: 0000 +.Ldata017: .byte 0x00 +.Ldata018: .byte 0x00 + .balign 4 +.Label004: .space 206 +.Label005: .space 15 +.Label006: .space 19 +.Label007: .byte 0x00, 0x00 +.Label008: .space 12 +.Label009: .space 17 +.Label010: .byte 0x00, 0x00, 0x00 +.Label011: .byte 0x00 +.Label012: .byte 0x00, 0x00, 0x00 +.Label013: .space 41 +.Label014: .space 5 +.Ldata019: .word 0x00000000 # 1cc: 00000000 + +# NOTE: 6 non-alignment zero bytes skipped. + + .skip 6 +.Ldata020: .byte 0x00 + .balign 4 +.Ldata021: .hword 0x0000 # 1d8: 0000 + .balign 4 +.Ldata022: .word 0x00000000 # 1dc: 00000000 + +# NOTE: 4 non-alignment zero bytes skipped. +.Label015 = .-3 ### WARNING: label not on instruction boundary! + + .skip 4 + .global chip6_phy_init_ctrl + .type chip6_phy_init_ctrl, @object +chip6_phy_init_ctrl: + .byte 0x00 +.Ldata023: .byte 0x00 +.Ldata024: .byte 0x00 +.Label016: .byte 0x00 +.Label017: .byte 0x00, 0x00 +.Label018: .byte 0x00, 0x00 +.Label019: .space 10 +.Ldata025: .byte 0x00 +.Ldata026: .byte 0x00 +.Ldata027: .byte 0x00 +.Ldata028: .byte 0x00 +.Ldata029: .byte 0x00 +.Ldata030: .byte 0x00 +.Ldata031: .byte 0x00 +.Ldata032: .byte 0x00 +.Ldata033: .byte 0x00 + .balign 4 +.Ldata034: .byte 0x00 +.Ldata035: .byte 0x00 +.Ldata036: .hword 0x0000 # 202: 0000 + +# NOTE: 10 non-alignment zero bytes skipped. + + .skip 10 +.Label020: .space 9 +.Ldata037: .byte 0x00 +.Ldata038: .byte 0x00 +.Ldata039: .byte 0x00 +.Ldata040: .byte 0x00 +.Ldata041: .byte 0x00 +.Ldata042: .byte 0x00 +.Ldata043: .byte 0x00 +.Ldata044: .byte 0x00 +.Ldata045: .byte 0x00 +.Ldata046: .byte 0x00 + +# NOTE: 1 non-alignment zero bytes skipped. + + .skip 1 +.Ldata047: .hword 0x0000 # 222: 0000 +.Ldata048: .byte 0x00 +.Ldata049: .byte 0x00 +.Ldata050: .hword 0x0000 # 226: 0000 +.Ldata051: .hword 0x0000 # 228: 0000 +.Ldata052: .byte 0x00 +.Ldata053: .byte 0x00 +.Ldata054: .byte 0x00 +.Ldata055: .byte 0x00 +.Ldata056: .byte 0x00 +.Ldata057: .byte 0x00 +.Ldata058: .byte 0x00 +.Ldata059: .byte 0x00 +.Ldata060: .byte 0x00 +.Ldata061: .byte 0x00 +.Ldata062: .byte 0x00 +.Ldata063: .byte 0x00 +.Ldata064: .byte 0x00 +.Ldata065: .byte 0x00 +.Ldata066: .byte 0x00 +.Ldata067: .byte 0x00 +.Ldata068: .byte 0x00 +.Ldata069: .byte 0x00 +.Ldata070: .byte 0x00 +.Ldata071: .byte 0x00 +.Ldata072: .byte 0x00 +.Ldata073: .byte 0x00 +.Ldata074: .byte 0x00 +.Ldata075: .byte 0x00 +.Ldata076: .byte 0x00 +.Ldata077: .byte 0x00 +.Ldata078: .byte 0x00 +.Ldata079: .byte 0x00 +.Ldata080: .byte 0x00 +.Ldata081: .byte 0x00 +.Ldata082: .byte 0x00 +.Ldata083: .byte 0x00 +.Ldata084: .byte 0x00 +.Ldata085: .byte 0x00 +.Ldata086: .byte 0x00 +.Ldata087: .byte 0x00 +.Ldata088: .byte 0x00 +.Ldata089: .byte 0x00 +.Ldata090: .byte 0x00 +.Ldata091: .byte 0x00 + .global phy_freq_offset + .type phy_freq_offset, @object +phy_freq_offset: + .hword 0x0000 # 252: 0000 + .global do_pwctrl_flag + .type do_pwctrl_flag, @object +do_pwctrl_flag: + .byte 0x00 + .global pwctrl_debug + .type pwctrl_debug, @object +pwctrl_debug: + .byte 0x00 + .global txbk_dpdby_flag + .type txbk_dpdby_flag, @object +txbk_dpdby_flag: + .byte 0x00 +.Ldata092: .byte 0x00 + .global sw_scan_mode + .type sw_scan_mode, @object +sw_scan_mode: + .byte 0x00 + .byte 0x00, 0x00, 0x00 +.Ldata093: .word 0x00000000 # 25c: 00000000 +.Ldata094: .word 0x00000000 # 260: 00000000 +.Ldata095: .word 0x00000000 # 264: 00000000 +.Ldata096: .word 0x00000000 # 268: 00000000 + .global periodic_cal_dc_num + .type periodic_cal_dc_num, @object +periodic_cal_dc_num: + .word 0x00000000 # 26c: 00000000 + .global periodic_cal_flag + .type periodic_cal_flag, @object +periodic_cal_flag: + .byte 0x00 + .global bbpll_cal_flag + .type bbpll_cal_flag, @object +bbpll_cal_flag: + .byte 0x00 + .global deep_sleep_en + .type deep_sleep_en, @object +deep_sleep_en: + .byte 0x00 + .space 5 + .global noise_array + .type noise_array, @object +noise_array: + .space 8 +.Ldata097: .space 256 + .global tx_pwctrl_atten_init + .type tx_pwctrl_atten_init, @object +tx_pwctrl_atten_init: + .space 6 + .byte 0x00, 0x00 +.Ldata098: .hword 0x0000 # 388: 0000 +.Ldata099: .byte 0x00 + + .section .irom0.text, "ax", @progbits + +# Function @ .irom0.text+0x0 + .balign 4 + .global ram_tx_mac_enable + .type ram_tx_mac_enable, @function +ram_tx_mac_enable: + ret /* arg0 */ # 0: 0df0 + + .literal_position # 4: 000e0060 + +# Function @ .irom0.text+0x8 + .balign 4 + .global rtc_mem_backup + .type rtc_mem_backup, @function +rtc_mem_backup: + sub a9, a3, a2 # 8: 2093c0 + addi a8, a9, 3 # b: 3b89 + movgez a8, a9, a9 # d: 9089b3 + srai a8, a8, 2 # 10: 808221 + addi a8, a8, 1 # 13: 1b88 + beqz a8, .Lbr002 # 15: 9c88 + movi a3, 0x60000e00 # 17: 31fbff + addx4 a7, a8, a2 # 1a: 2078a0 + add a3, a4, a3 /* arg2+0x60000e00 */ # 1d: 3a34 +.Lbr001: memw # 1f: c02000 + l32i a4, a2, 0 # 22: 4802 + memw # 24: c02000 + s32i a4, a3, 0x200 # 27: 426380 + addi a2, a2, 4 # 2a: 4b22 + addi a3, a3, 4 # 2c: 4b33 + bne a2, a7, .Lbr001 # 2e: 7792ed +.Lbr002: slli a2, a8, 2 # 31: e02811 + ret # 34: 0df0 + + .literal_position # 38: 000e0060 + +# Function @ .irom0.text+0x3c + .balign 4 + .global rtc_mem_recovery + .type rtc_mem_recovery, @function +rtc_mem_recovery: + sub a8, a3, a2 # 3c: 2083c0 + addi a7, a8, 3 # 3f: 3b78 + movgez a7, a8, a8 # 41: 8078b3 + srai a7, a7, 2 # 44: 707221 + addi a7, a7, 1 # 47: 1b77 + beqz a7, .Lbr004 # 49: 9ca7 + movi a10, 0x60000e00 # 4b: a1fbff + addx4 a9, a7, a4 # 4e: 4097a0 + add a3, a4, a10 /* arg2+0x60000e00 */ # 51: aa34 + add a4, a9, a10 # 53: aa49 +.Lbr003: memw # 55: c02000 + l32i a11, a3, 0x200 # 58: b22380 + memw # 5b: c02000 + s32i a11, a2, 0 # 5e: b902 + addi a3, a3, 4 # 60: 4b33 + addi a2, a2, 4 # 62: 4b22 + bne a3, a4, .Lbr003 # 64: 4793ed +.Lbr004: slli a2, a7, 2 # 67: e02711 + ret # 6a: 0df0 + + .literal_position # 6c: 00000000 + +# Function @ .irom0.text+0x70 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word[4] @ -0x10 + .balign 4 + .global set_cal_rxdc + .type set_cal_rxdc, @function +set_cal_rxdc: + extui a7, a2, 3, 1 # 70: 207304 + extui a6, a2, 1, 1 # 73: 206104 + extui a5, a2, 0, 1 # 76: 205004 + addi sp, sp, -32 /* (local0) */ # 79: 12c1e0 + s32i a0, sp, 12 /* a0 -> [(local3)] */ # 7c: 0931 + s32i a12, sp, 16 /* a12 -> [(local4)] */ # 7e: c941 + add a5, a5, a6 # 80: 6a55 + movi a12, g_phyFuns # 82: c1faff + extui a6, a2, 2, 1 # 85: 206204 + add a6, a6, a7 # 88: 7a66 + extui a0, a2, 5, 1 # 8a: 200504 + extui a7, a2, 6, 1 # 8d: 207604 + add a0, a0, a7 # 90: 7a00 + extui a7, a2, 4, 1 # 92: 207404 + add a0, a0, a7 # 95: 7a00 + add a0, a0, a6 # 97: 6a00 + add a0, a0, a5 # 99: 5a00 + extui a5, a3, 3, 3 # 9b: 305324 + extui a2, a0, 0, 8 # 9e: 002074 + movi a0, 4 /* 0x00000004 */ # a1: 0c40 + bgeui a2, 5, .Lbr005 # a3: f65201 + mov a0, a2 # a6: 0d02 +.Lbr005: addx2 a2, a0, a0 # a8: 002090 + movi a0, 29 /* 0x0000001d */ # ab: 1cd0 + addx2 a2, a2, a5 # ad: 502290 + extui a2, a2, 0, 8 # b0: 202074 + bltu a0, a2, .Lbr006 # b3: 273001 + mov a0, a2 # b6: 0d02 +.Lbr006: movi a2, 4 /* 0x00000004 */ # b8: 0c42 + extui a5, a0, 0, 8 # ba: 005074 + movi a3, 1 /* 0x00000001 */ # bd: 0c13 + l32i a0, a12, 0 /* [g_phyFuns] */ # bf: 080c + addx8 a4, a5, a4 # c1: 4045b0 + l32i a6, a4, 4 # c4: 6814 + l32i a0, a0, 172 /* [[g_phyFuns]+0xac] */ # c6: 02202b + l32i a4, a4, 0 # c9: 4804 + extui a7, a6, 9, 9 # cb: 607984 + s32i a7, sp, 4 /* a7 -> [(local1)] */ # ce: 7911 + extui a5, a4, 0, 9 # d0: 405084 + extui a6, a6, 0, 9 # d3: 606084 + s32i a6, sp, 8 /* a6 -> [(local2)] */ # d6: 6921 + s32i a5, sp, 0 /* a5 -> [(local0)] */ # d8: 5901 + extui a4, a4, 9, 9 # da: 404984 + callx0 a0 /* [[g_phyFuns]+0xac] */ # dd: c00000 + l32i a4, sp, 4 /* [(local1)] */ # e0: 4811 + l32i a0, a12, 0 /* [g_phyFuns] */ # e2: 080c + movi a2, 5 /* 0x00000005 */ # e4: 0c52 + l32i a0, a0, 172 /* [[g_phyFuns]+0xac] */ # e6: 02202b + movi a3, 1 /* 0x00000001 */ # e9: 0c13 + callx0 a0 /* [[g_phyFuns]+0xac] */ # eb: c00000 + l32i a4, sp, 0 /* [(local0)] */ # ee: 4801 + l32i a0, a12, 0 /* [g_phyFuns] */ # f0: 080c + movi a2, 4 /* 0x00000004 */ # f2: 0c42 + l32i a0, a0, 172 /* [[g_phyFuns]+0xac] */ # f4: 02202b + movi a3, 2 /* 0x00000002 */ # f7: 0c23 + callx0 a0 /* [[g_phyFuns]+0xac] */ # f9: c00000 + l32i a4, sp, 8 /* [(local2)] */ # fc: 4821 + l32i a0, a12, 0 /* [g_phyFuns] */ # fe: 080c + movi a2, 5 /* 0x00000005 */ # 100: 0c52 + l32i a0, a0, 172 /* [[g_phyFuns]+0xac] */ # 102: 02202b + movi a3, 2 /* 0x00000002 */ # 105: 0c23 + callx0 a0 /* [[g_phyFuns]+0xac] */ # 107: c00000 + l32i a12, sp, 16 /* [(local4)] */ # 10a: c841 + l32i a0, sp, 12 /* [(local3)] */ # 10c: 0831 + addi sp, sp, 32 /* (top of frame) */ # 10e: 12c120 + ret # 111: 0df0 + + .literal_position # 114: 00000000 + # 118: 00020060 + # 11c: 00000000 + # 120: 00000000 + # 124: 00000000 + # 128: 00020060 + # 12c: 58000000 + # 130: 00800000 + # 134: 00008000 + # 138: 74000000 + # 13c: 00000000 + # 140: 00000000 + # 144: 80000000 + # 148: 00000000 + # 14c: 00000000 + # 150: 00020060 + # 154: 00000000 + # 158: 00000000 + # 15c: 00000000 + # 160: 00000000 + # 164: 00000000 + +# Function @ .irom0.text+0x168 +# Local variables/stack: +# (local0): word @ -0x50 +# (local1): word @ -0x4c +# (local2): word[2] @ -0x48 +# (local3): byte @ -0x40 +# (local4): byte @ -0x3f +# (local5): byte @ -0x3e +# (local6): byte @ -0x3d +# (local7): word @ -0x3c +# (local8): word @ -0x38 +# (local9): word @ -0x34 +# (local10): word @ -0x30 +# (local11): word @ -0x2c +# (local12): word @ -0x28 +# (local13): word @ -0x24 +# (local14): word @ -0x20 +# (local15): word @ -0x1c +# (local16): word @ -0x18 +# (local17): word @ -0x14 +# (local18): word @ -0x10 +# (local19): word @ -0xc +# (local20): word @ -0x8 +# (local21): word @ -0x4 + .balign 4 + .global set_rx_gain_cal_iq + .type set_rx_gain_cal_iq, @function +set_rx_gain_cal_iq: + mov a10, a5 /* arg3 */ # 168: ad05 + mov a9, a6 /* arg4 */ # 16a: 9d06 + addi sp, sp, -80 /* (local0) */ # 16c: 12c1b0 + s32i a2, sp, 52 /* arg0 -> [(local15)] */ # 16f: 29d1 + s32i a0, sp, 20 /* a0 -> [(local7)] */ # 171: 0951 + s32i a15, sp, 36 /* a15 -> [(local11)] */ # 173: f991 + s32i a12, sp, 24 /* a12 -> [(local8)] */ # 175: c961 + s32i a3, sp, 60 /* arg1 -> [(local17)] */ # 177: 39f1 + s32i a14, sp, 32 /* a14 -> [(local10)] */ # 179: e981 + s32i a13, sp, 28 /* a13 -> [(local9)] */ # 17b: d971 + s32i a4, sp, 40 /* arg2 -> [(local12)] */ # 17d: 49a1 + movi a13, g_phyFuns # 17f: d1e5ff + movi a4, -17 /* 0xffffffef */ # 182: 6cf4 + mov a14, a7 /* arg5 */ # 184: ed07 + movi a3, 0x60000200 # 186: 31e4ff + memw # 189: c02000 + l32i a2, a3, 0x390 /* [0x60000590] */ # 18c: 2223e4 + and a2, a2, a4 # 18f: 402210 + memw # 192: c02000 + movi a4, 18 /* 0x00000012 */ # 195: 1c24 + movi a5, 7 /* 0x00000007 */ # 197: 0c75 + movi a6, 0 /* 0x00000000 */ # 199: 0c06 + movi a7, 0 /* 0x00000000 */ # 19b: 0c07 + s32i a10, sp, 44 /* arg3 -> [(local13)] */ # 19d: a9b1 + s32i a9, sp, 56 /* arg4 -> [(local16)] */ # 19f: 99e1 + l32i a0, a13, 0 /* [g_phyFuns] */ # 1a1: 080d + s32i a2, a3, 0x390 /* a2 -> [0x60000590] */ # 1a3: 2263e4 + movi a2, 119 /* 0x00000077 */ # 1a6: 22a077 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 1a9: 022027 + movi a3, 0 /* 0x00000000 */ # 1ac: 0c03 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 1ae: c00000 + movi a2, 119 /* 0x00000077 */ # 1b1: 22a077 + movi a3, 0 /* 0x00000000 */ # 1b4: 0c03 + movi a4, 9 /* 0x00000009 */ # 1b6: 0c94 + movi a5, 7 /* 0x00000007 */ # 1b8: 0c75 + l32i a0, a13, 0 /* [g_phyFuns] */ # 1ba: 080d + movi a6, 0 /* 0x00000000 */ # 1bc: 0c06 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 1be: 022027 + movi a7, 0 /* 0x00000000 */ # 1c1: 0c07 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 1c3: c00000 + movi a3, 1 /* 0x00000001 */ # 1c6: 0c13 + movi a2, 5 /* 0x00000005 */ # 1c8: 0c52 + movi a15, 0 /* 0x00000000 */ # 1ca: 0c0f + l32i a4, sp, 52 /* [(local15)] */ # 1cc: 48d1 + s32i a15, sp, 76 /* 0x00000000 -> [(local21)] */ # 1ce: f26113 + movnez a2, a3, a4 # 1d1: 402393 + s32i a2, sp, 48 /* a2 -> [(local14)] */ # 1d4: 29c1 +.Lbr007: l32i a2, sp, 48 /* [(local14)] */ # 1d6: 28c1 + l32i a0, sp, 76 /* [(local21)] */ # 1d8: 022113 + blt a0, a2, .Lbr008 # 1db: 272002 + j .Lbr033 # 1de: c6a700 +.Lbr008: beqz a0, .Lbr030 # 1e1: 167028 + addi a4, a0, -1 /* [(local21)]-0x1 */ # 1e4: 0b40 + beqz a4, .Lbr031 # 1e6: 167428 + addi a5, a0, -2 /* [(local21)]-0x2 */ # 1e9: 52c0fe + beqz a5, .Lbr032 # 1ec: 166528 + addi a6, a0, -3 /* [(local21)]-0x3 */ # 1ef: 62c0fd + beqz a6, .Lbr034 # 1f2: 16e62a + addi a7, a0, -4 /* [(local21)]-0x4 */ # 1f5: 72c0fc + beqz a7, .Lbr035 # 1f8: 16372b + movi a12, 0 /* 0x00000000 */ # 1fb: 0c0c +.Lbr009: movi a8, 0 /* 0x00000000 */ # 1fd: 0c08 + s32i a8, sp, 64 /* 0x00000000 -> [(local18)] */ # 1ff: 826110 +.Lbr010: l32i a3, sp, 76 /* [(local21)] */ # 202: 322113 + movi a2, 8 /* 0x00000008 */ # 205: 0c82 + l32i a0, a13, 0 /* [g_phyFuns] */ # 207: 080d + movi a15, 0 /* 0x00000000 */ # 209: 0c0f + l32i a0, a0, 208 /* [[g_phyFuns]+0xd0] */ # 20b: 022034 + moveqz a15, a2, a3 # 20e: 30f283 + mov a2, a15 # 211: 2d0f + callx0 a0 /* [[g_phyFuns]+0xd0] */ # 213: c00000 + l32i a4, sp, 76 /* [(local21)] */ # 216: 422113 + bgeui a4, 2, .Lbr011 # 219: f62413 + movi a2, 0 /* 0x00000000 */ # 21c: 0c02 + mov a3, a15 # 21e: 3d0f + movi a4, 500 /* 0x000001f4 */ # 220: 42a1f4 + l32i a0, a13, 0 /* [g_phyFuns] */ # 223: 080d + movi a5, 12 /* 0x0000000c */ # 225: 0cc5 + l32i a0, a0, 232 /* [[g_phyFuns]+0xe8] */ # 227: 02203a + addi a6, sp, 16 /* (local3) */ # 22a: 62c110 + callx0 a0 /* [[g_phyFuns]+0xe8] */ # 22d: c00000 +.Lbr011: movi a2, 0 /* 0x00000000 */ # 230: 0c02 + movi a13, g_phyFuns # 232: d1baff + movi a3, 260 /* 0x00000104 */ # 235: 32a104 + l32i a0, a13, 0 /* [g_phyFuns] */ # 238: 080d + mov a4, a12 # 23a: 4d0c + l32i a0, a0, 84 /* [[g_phyFuns]+0x54] */ # 23c: 022015 + movi a5, 22 /* 0x00000016 */ # 23f: 1c65 + callx0 a0 /* [[g_phyFuns]+0x54] */ # 241: c00000 + mov a2, a12 # 244: 2d0c + movi a3, 22 /* 0x00000016 */ # 246: 1c63 + l32i a4, sp, 44 /* [(local13)] */ # 248: 48b1 + call0 set_cal_rxdc # 24a: 050000 + beqz a14, .Lbr012 # 24d: acde + mov a7, a12 # 24f: 7d0c + mov a6, a15 # 251: 6d0f + movi a2, .Lstr001 # 253: 21b3ff + movi a3, 0 /* 0x00000000 */ # 256: 0c03 + movi a10, 22 /* 0x00000016 */ # 258: 1c6a + s32i a10, sp, 0 /* 0x00000016 -> [(local0)] */ # 25a: a901 + l8ui a9, sp, 16 /* [(local3)] */ # 25c: 920110 + movi a4, 260 /* 0x00000104 */ # 25f: 42a104 + slli a9, a9, 24 # 262: 809901 + srai a9, a9, 24 # 265: 909831 + s32i a9, sp, 4 /* a9 -> [(local1)] */ # 268: 9911 + l8ui a8, sp, 17 /* [(local4)] */ # 26a: 820111 + l32i a5, sp, 64 /* [(local18)] */ # 26d: 522110 + slli a8, a8, 24 # 270: 808801 + srai a8, a8, 24 # 273: 808831 + s32i a8, sp, 8 /* a8 -> [(local2)] */ # 276: 8921 + call0 ets_printf # 278: 01b7ffc0 + # 27c: 0000 +.Lbr012: movi a13, g_phyFuns # 27e: d1a9ff + l32i a0, a13, 0 /* [g_phyFuns] */ # 281: 080d + l32i a0, a0, 64 /* [[g_phyFuns]+0x40] */ # 283: 022010 + movi a2, 1 /* 0x00000001 */ # 286: 0c12 + callx0 a0 /* [[g_phyFuns]+0x40] */ # 288: c00000 + movi a15, 0 /* 0x00000000 */ # 28b: 0c0f +.Lbr013: movi a2, 1 /* 0x00000001 */ # 28d: 0c12 + l32i a3, sp, 60 /* [(local17)] */ # 28f: 38f1 + l32i a4, sp, 64 /* [(local18)] */ # 291: 422110 + movi a5, 0 /* 0x00000000 */ # 294: 0c05 + movi a6, 0 /* 0x00000000 */ # 296: 0c06 + s32i a6, sp, 0 /* 0x00000000 -> [(local0)] */ # 298: 6901 + s32i a6, sp, 4 /* 0x00000000 -> [(local1)] */ # 29a: 6911 + s32i a6, sp, 8 /* 0x00000000 -> [(local2)] */ # 29c: 6921 + l32i a0, a13, 0 /* [g_phyFuns] */ # 29e: 080d + movi a7, 0 /* 0x00000000 */ # 2a0: 0c07 + l32i a0, a0, 104 /* [[g_phyFuns]+0x68] */ # 2a2: 02201a + movi a6, 0 /* 0x00000000 */ # 2a5: 0c06 + callx0 a0 /* [[g_phyFuns]+0x68] */ # 2a7: c00000 + l32i a0, a13, 0 /* [g_phyFuns] */ # 2aa: 080d + movi a2, 1 /* 0x00000001 */ # 2ac: 0c12 + l32i a0, a0, 52 /* [[g_phyFuns]+0x34] */ # 2ae: 08d0 + movi a3, 1024 /* 0x00000400 */ # 2b0: 32a400 + callx0 a0 /* [[g_phyFuns]+0x34] */ # 2b3: c00000 + memw # 2b6: c02000 + l32i a0, a13, 0 /* [g_phyFuns] */ # 2b9: 080d + movi a12, 0x60000200 # 2bb: c19bff + l32i a0, a0, 48 /* [[g_phyFuns]+0x30] */ # 2be: 08c0 + l32i a12, a12, 0x3e4 /* [0x600005e4] */ # 2c0: c22cf9 + callx0 a0 /* [[g_phyFuns]+0x30] */ # 2c3: c00000 + beqz a14, .Lbr014 # 2c6: 8cde + movi a2, .Lstr002 # 2c8: 2199ff + srai a3, a12, 8 # 2cb: c03821 + movi a4, 0x00008000 # 2ce: 4198ff + call0 ets_printf # 2d1: 01a1ffc0 + # 2d5: 0000 +.Lbr014: movi a2, 0x00800000 # 2d7: 2197ff + l32i a0, sp, 64 /* [(local18)] */ # 2da: 022110 + bge a2, a12, .Lbr015 # 2dd: c7a210 + addi a2, a0, 24 /* [(local18)]+0x18 */ # 2e0: 22c018 + addi a15, a15, 1 # 2e3: 1bff + extui a15, a15, 0, 8 # 2e5: f0f074 + extui a0, a2, 0, 8 # 2e8: 200074 + s32i a0, sp, 64 /* a0 -> [(local18)] */ # 2eb: 026110 + bnei a15, 2, .Lbr013 # 2ee: 662f9b +.Lbr015: l32i a0, a13, 0 /* [g_phyFuns] */ # 2f1: 080d + l32i a0, a0, 108 /* [[g_phyFuns]+0x6c] */ # 2f3: 02201b + movi a2, 1 /* 0x00000001 */ # 2f6: 0c12 + callx0 a0 /* [[g_phyFuns]+0x6c] */ # 2f8: c00000 + movi a12, 0 /* 0x00000000 */ # 2fb: 0c0c + movi a15, 0 /* 0x00000000 */ # 2fd: 0c0f + movi a13, 0 /* 0x00000000 */ # 2ff: 0c0d + movi a2, 0 /* 0x00000000 */ # 301: 0c02 + movi a3, 0 /* 0x00000000 */ # 303: 0c03 + s32i a3, sp, 68 /* 0x00000000 -> [(local19)] */ # 305: 326111 + s32i a2, sp, 72 /* 0x00000000 -> [(local20)] */ # 308: 226112 +.Lbr016: movi a2, 14 /* 0x0000000e */ # 30b: 0ce2 + l32i a3, sp, 60 /* [(local17)] */ # 30d: 38f1 + l32i a4, sp, 64 /* [(local18)] */ # 30f: 422110 + addi a5, sp, 18 /* (local5) */ # 312: 52c112 + l32i a6, sp, 56 /* [(local16)] */ # 315: 68e1 + mov a7, a14 /* arg5 */ # 317: 7d0e + call0 ram_rfcal_rxiq # 319: 0190ffc0 + # 31d: 0000 + beqz a14, .Lbr017 # 31f: 9cbe + movi a2, .Lstr003 # 321: 2185ff + mov a3, a12 # 324: 3d0c + l8ui a5, sp, 19 /* [(local6)] */ # 326: 520113 + l8ui a4, sp, 18 /* [(local5)] */ # 329: 420112 + slli a5, a5, 24 # 32c: 805501 + slli a4, a4, 24 # 32f: 804401 + srai a4, a4, 24 # 332: 404831 + srai a5, a5, 24 # 335: 505831 + call0 ets_printf # 338: 018affc0 + # 33c: 0000 +.Lbr017: beqz a12, .Lbr018 # 33e: bc0c + l8ui a2, sp, 18 /* [(local5)] */ # 340: 220112 + movi a0, g_phyFuns # 343: 017eff + slli a2, a2, 24 # 346: 802201 + l32i a0, a0, 0 /* [g_phyFuns] */ # 349: 0800 + srai a2, a2, 24 # 34b: 202831 + l32i a0, a0, 0 /* [[g_phyFuns]] */ # 34e: 0800 + sub a2, a13, a2 # 350: 202dc0 + callx0 a0 /* [[g_phyFuns]] */ # 353: c00000 + bgei a2, 2, .Lbr018 # 356: e62218 + l8ui a2, sp, 19 /* [(local6)] */ # 359: 220113 + movi a0, g_phyFuns # 35c: 0179ff + slli a2, a2, 24 # 35f: 802201 + l32i a0, a0, 0 /* [g_phyFuns] */ # 362: 0800 + srai a2, a2, 24 # 364: 202831 + l32i a0, a0, 0 /* [[g_phyFuns]] */ # 367: 0800 + sub a2, a15, a2 # 369: 202fc0 + callx0 a0 /* [[g_phyFuns]] */ # 36c: c00000 + blti a2, 2, .Lbr020 # 36f: a62231 +.Lbr018: l32i a3, sp, 72 /* [(local20)] */ # 372: 322112 + l32i a2, sp, 68 /* [(local19)] */ # 375: 222111 + l8ui a13, sp, 18 /* [(local5)] */ # 378: d20112 + l8ui a15, sp, 19 /* [(local6)] */ # 37b: f20113 + addi a12, a12, 1 # 37e: 1bcc + extui a12, a12, 0, 8 # 380: c0c074 + slli a15, a15, 24 # 383: 80ff01 + slli a13, a13, 24 # 386: 80dd01 + srai a13, a13, 24 # 389: d0d831 + srai a15, a15, 24 # 38c: f0f831 + add a2, a15, a2 # 38f: 2a2f + add a3, a13, a3 # 391: 3a3d + s32i a3, sp, 72 /* a3 -> [(local20)] */ # 393: 326112 + s32i a2, sp, 68 /* a2 -> [(local19)] */ # 396: 226111 + beqi a12, 4, .Lbr019 # 399: 264c02 + j .Lbr016 # 39c: c6daff +.Lbr019: movi a0, 0 /* 0x00000000 */ # 39f: 0c00 + j .Lbr021 # 3a1: 460000 +.Lbr020: movi a0, 1 /* 0x00000001 */ # 3a4: 0c10 +.Lbr021: movi a3, -31 /* 0xffffffe1 */ # 3a6: 6c13 + bnez a0, .Lbr029 # 3a8: 567009 + l32i a13, sp, 72 /* [(local20)] */ # 3ab: d22112 + l32i a0, sp, 68 /* [(local19)] */ # 3ae: 022111 + addi a13, a13, 2 /* [(local20)]+0x2 */ # 3b1: 2bdd + addi a0, a0, 2 /* [(local19)]+0x2 */ # 3b3: 2b00 + srai a0, a0, 2 # 3b5: 000221 + srai a13, a13, 2 # 3b8: d0d221 + slli a13, a13, 24 # 3bb: 80dd01 + srai a13, a13, 24 # 3be: d0d831 +.Lbr022: movi a2, -15 /* 0xfffffff1 */ # 3c1: 7c12 + slli a15, a0, 24 # 3c3: 80f001 + srai a15, a15, 24 # 3c6: f0f831 + mov a0, a2 /* 0xfffffff1 */ # 3c9: 0d02 + blt a13, a2, .Lbr023 # 3cb: 272d01 + mov a0, a13 # 3ce: 0d0d +.Lbr023: movi a2, 15 /* 0x0000000f */ # 3d0: 0cf2 + mov a7, a2 /* 0x0000000f */ # 3d2: 7d02 + bgei a0, 16, .Lbr024 # 3d4: e6b001 + mov a7, a0 # 3d7: 7d00 +.Lbr024: mov a0, a3 /* 0xffffffe1 */ # 3d9: 0d03 + slli a13, a7, 24 # 3db: 80d701 + srai a13, a13, 24 # 3de: d0d831 + blt a15, a3, .Lbr025 # 3e1: 372f01 + mov a0, a15 # 3e4: 0d0f +.Lbr025: movi a15, 31 /* 0x0000001f */ # 3e6: 1cff + mov a7, a15 /* 0x0000001f */ # 3e8: 7d0f + bgei a0, 32, .Lbr026 # 3ea: e6c001 + mov a7, a0 # 3ed: 7d00 +.Lbr026: slli a15, a7, 24 # 3ef: 80f701 + l32i a0, sp, 52 /* [(local15)] */ # 3f2: 08d1 + srai a15, a15, 24 # 3f4: f0f831 + bnez a0, .Lbr027 # 3f7: dc50 + l32i a3, sp, 40 /* [(local12)] */ # 3f9: 38a1 + extui a0, a7, 0, 6 # 3fb: 700054 + extui a2, a13, 0, 5 # 3fe: d02044 + slli a2, a2, 6 # 401: a02211 + or a0, a0, a2 # 404: 200020 + l32i a2, sp, 76 /* [(local21)] */ # 407: 222113 + addx2 a2, a2, a3 # 40a: 302290 + s16i a0, a2, 0 # 40d: 025200 +.Lbr027: beqz a14, .Lbr028 # 410: 8cee + mov a5, a15 # 412: 5d0f + mov a4, a13 # 414: 4d0d + movi a2, .Lstr004 # 416: 214bff + l32i a3, sp, 76 /* [(local21)] */ # 419: 322113 + call0 ets_printf # 41c: 0152ffc0 + # 420: 0000 +.Lbr028: movi a13, g_phyFuns # 422: d149ff + extui a5, a12, 0, 2 # 425: c05014 + movi a6, rxiq_compute_num # 428: 6149ff + l32i a3, sp, 76 /* [(local21)] */ # 42b: 322113 + l32i a7, a6, 0 /* [rxiq_compute_num] */ # 42e: 7806 + addi a4, a3, 1 /* [(local21)]+0x1 */ # 430: 1b43 + extui a3, a4, 0, 8 # 432: 403074 + s32i a3, sp, 76 /* a3 -> [(local21)] */ # 435: 326113 + slli a7, a7, 2 # 438: e07711 + or a5, a5, a7 # 43b: 705520 + s32i a5, a6, 0 /* a5 -> [rxiq_compute_num] */ # 43e: 5906 + j .Lbr007 # 440: 8664ff +.Lbr029: l8ui a0, sp, 19 /* [(local6)] */ # 443: 020113 + l8ui a2, sp, 18 /* [(local5)] */ # 446: 220112 + slli a0, a0, 24 # 449: 800001 + slli a2, a2, 24 # 44c: 802201 + srai a2, a2, 24 # 44f: 202831 + srai a0, a0, 24 # 452: 000831 + add a0, a0, a15 # 455: fa00 + add a13, a2, a13 # 457: dad2 + addi a13, a13, 1 # 459: 1bdd + addi a0, a0, 1 # 45b: 1b00 + srai a0, a0, 1 # 45d: 000121 + srai a13, a13, 1 # 460: d0d121 + slli a13, a13, 24 # 463: 80dd01 + srai a13, a13, 24 # 466: d0d831 + j .Lbr022 # 469: 06d5ff +.Lbr030: movi a12, 0 /* 0x00000000 */ # 46c: 0c0c + j .Lbr009 # 46e: c662ff +.Lbr031: movi a12, 64 /* 0x00000040 */ # 471: 4c0c + j .Lbr009 # 473: 8661ff +.Lbr032: movi a12, 96 /* 0x00000060 */ # 476: c2a060 + movi a2, 15 /* 0x0000000f */ # 479: 0cf2 + s32i a2, sp, 64 /* 0x0000000f -> [(local18)] */ # 47b: 226110 + j .Lbr010 # 47e: 0660ff +.Lbr033: movi a5, 16 /* 0x00000010 */ # 481: 1c05 + memw # 483: c02000 + movi a4, 0x60000200 # 486: 4132ff + l32i a3, a4, 0x390 /* [0x60000590] */ # 489: 3224e4 + or a3, a3, a5 # 48c: 503320 + memw # 48f: c02000 + s32i a3, a4, 0x390 /* a3 -> [0x60000590] */ # 492: 3264e4 + l32i a12, sp, 24 /* [(local8)] */ # 495: c861 + l32i a13, sp, 28 /* [(local9)] */ # 497: d871 + l32i a14, sp, 32 /* [(local10)] */ # 499: e881 + l32i a15, sp, 36 /* [(local11)] */ # 49b: f891 + l32i a0, sp, 20 /* [(local7)] */ # 49d: 0851 + addi sp, sp, 80 /* (top of frame) */ # 49f: 12c150 + ret /* [(local14)] */ # 4a2: 0df0 +.Lbr034: movi a12, 112 /* 0x00000070 */ # 4a4: c2a070 + movi a6, 40 /* 0x00000028 */ # 4a7: 2c86 + s32i a6, sp, 64 /* 0x00000028 -> [(local18)] */ # 4a9: 626110 + j .Lbr010 # 4ac: 8654ff +.Lbr035: movi a12, 120 /* 0x00000078 */ # 4af: c2a078 + movi a7, 65 /* 0x00000041 */ # 4b2: 4c17 + s32i a7, sp, 64 /* 0x00000041 -> [(local18)] */ # 4b4: 726110 + j .Lbr010 # 4b7: c651ff + + .literal_position # 4bc: a4000000 + # 4c0: 00000000 + # 4c4: 00000000 + # 4c8: 00000000 + # 4cc: 00000000 + +# Function @ .irom0.text+0x4d0 +# Local variables/stack: +# (local0): word @ -0x40 +# (local1): word @ -0x3c +# (local2): word @ -0x38 +# (local3): word @ -0x34 +# (local4): word @ -0x30 +# (local5): word @ -0x2c +# (local6): word @ -0x28 +# (local7): word @ -0x24 +# (local8): word @ -0x20 +# (local9): word @ -0x1c +# (local10): word @ -0x18 +# (local11): word @ -0x14 +# (local12): word[4] @ -0x10 + .balign 4 + .global gen_rx_gain_table + .type gen_rx_gain_table, @function +gen_rx_gain_table: + addi sp, sp, -64 /* (local0) */ # 4d0: 12c1c0 + s32i a12, sp, 8 /* a12 -> [(local2)] */ # 4d3: c921 + s32i a13, sp, 12 /* a13 -> [(local3)] */ # 4d5: d931 + s32i a14, sp, 16 /* a14 -> [(local4)] */ # 4d7: e941 + s32i a15, sp, 20 /* a15 -> [(local5)] */ # 4d9: f951 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 4db: 0911 + s32i a5, sp, 40 /* arg3 -> [(local10)] */ # 4dd: 59a1 + s32i a7, sp, 36 /* arg5 -> [(local9)] */ # 4df: 7991 + s32i a2, sp, 28 /* arg0 -> [(local7)] */ # 4e1: 2971 + s32i a4, sp, 32 /* arg2 -> [(local8)] */ # 4e3: 4981 + movi a2, 127 /* 0x0000007f */ # 4e5: 22a07f + slli a4, a3, 24 # 4e8: 804301 + srai a4, a4, 24 # 4eb: 404831 + movltz a3, a2, a4 # 4ee: 4032a3 + s32i a3, sp, 24 /* a3 -> [(local6)] */ # 4f1: 3961 + bgei a3, 1, .Lbr036 # 4f3: e61302 + j .Lbr047 # 4f6: 464100 +.Lbr036: movi a12, 0 /* 0x00000000 */ # 4f9: 0c0c + movi a0, 0 /* 0x00000000 */ # 4fb: 0c00 + movi a15, 0 /* 0x00000000 */ # 4fd: 0c0f + l32i a5, sp, 40 /* [(local10)] */ # 4ff: 58a1 + addi a7, a6, -1 /* arg4-0x1 */ # 501: 0b76 + mov a13, a5 /* [(local10)] */ # 503: dd05 + add a5, a5, a7 # 505: 7a55 + s32i a5, sp, 44 /* a5 -> [(local11)] */ # 507: 59b1 +.Lbr037: movi a3, 24 /* 0x00000018 */ # 509: 1c83 + l8ui a10, a13, 0 # 50b: a20d00 + sub a6, a12, a15 # 50e: f06cc0 + slli a14, a6, 24 # 511: 80e601 + srai a14, a14, 24 # 514: e0e831 + slli a10, a10, 24 # 517: 80aa01 + srai a10, a10, 24 # 51a: a0a831 + blt a14, a10, .Lbr040 # 51d: a72e3e +.Lbr038: slli a6, a6, 24 # 520: 806601 + l32i a2, sp, 44 /* [(local11)] */ # 523: 28b1 + srai a6, a6, 24 # 525: 606831 + bge a13, a2, .Lbr040 # 528: 27ad33 + extui a7, a10, 0, 8 # 52b: a07074 + bnez a7, .Lbr039 # 52e: cca7 + l8ui a8, a13, 1 # 530: 820d01 + slli a8, a8, 24 # 533: 808801 + srai a8, a8, 24 # 536: 808831 + blt a6, a8, .Lbr040 # 539: 872622 +.Lbr039: l32i a13, sp, 40 /* [(local10)] */ # 53c: d8a1 + addi a0, a0, 1 # 53e: 1b00 + extui a2, a10, 0, 8 # 540: a02074 + add a15, a15, a2 # 543: 2aff + extui a0, a0, 0, 8 # 545: 000074 + add a13, a13, a0 # 548: 0add + sub a6, a12, a15 # 54a: f06cc0 + slli a14, a6, 24 # 54d: 80e601 + l8ui a10, a13, 0 # 550: a20d00 + srai a14, a14, 24 # 553: e0e831 + slli a10, a10, 24 # 556: 80aa01 + srai a10, a10, 24 # 559: a0a831 + bge a14, a10, .Lbr038 # 55c: a7aec0 +.Lbr040: s32i a0, sp, 48 /* a0 -> [(local12)] */ # 55f: 09c1 + blt a14, a3, .Lbr041 # 561: 372e0d + addi a6, a14, -24 # 564: 62cee8 + movi a14, 15 /* 0x0000000f */ # 567: 0cfe + slli a6, a6, 24 # 569: 806601 + srai a6, a6, 24 # 56c: 606831 + j .Lbr042 # 56f: 860a00 +.Lbr041: mov a2, a14 # 572: 2d0e + movi a3, 6 /* 0x00000006 */ # 574: 0c63 + call0 __divsi3 # 576: 01d3ffc0 + # 57a: 0000 + mov a0, a2 # 57c: 0d02 + movi a3, 6 /* 0x00000006 */ # 57e: 0c63 + mov a2, a14 # 580: 2d0e + ssl a0 # 582: 001040 + movi a14, 1 /* 0x00000001 */ # 585: 0c1e + sll a14, a14 # 587: 00eea1 + addi a14, a14, -1 # 58a: 0bee + extui a14, a14, 0, 16 # 58c: e0e0f4 + call0 __modsi3 # 58f: 01ceffc0 + # 593: 0000 + l32i a0, sp, 48 /* [(local12)] */ # 595: 08c1 + slli a6, a2, 24 # 597: 806201 + srai a6, a6, 24 # 59a: 606831 +.Lbr042: blti a6, 5, .Lbr043 # 59d: a65604 + movi a6, 5 /* 0x00000005 */ # 5a0: 0c56 + j .Lbr044 # 5a2: 860000 +.Lbr043: extui a6, a6, 0, 16 # 5a5: 6060f4 +.Lbr044: s32i a0, sp, 48 /* a0 -> [(local12)] */ # 5a8: 09c1 + s32i a6, sp, 0 /* a6 -> [(local0)] */ # 5aa: 6901 + l32i a7, sp, 36 /* [(local9)] */ # 5ac: 7891 + l32i a9, sp, 32 /* [(local8)] */ # 5ae: 9881 + l32i a8, sp, 28 /* [(local7)] */ # 5b0: 8871 + addx2 a9, a0, a9 # 5b2: 909090 + l16ui a4, a9, 0 # 5b5: 421900 + addx2 a8, a12, a8 # 5b8: 808c90 + addx8 a4, a14, a4 # 5bb: 404eb0 + add a4, a6, a4 # 5be: 4a46 + extui a4, a4, 0, 16 # 5c0: 4040f4 + s16i a4, a8, 0 # 5c3: 425800 + beqz a7, .Lbr045 # 5c6: 9c47 + l16ui a5, a9, 0 # 5c8: 521900 + movi a2, .Lstr005 # 5cb: 21bcff + mov a3, a12 # 5ce: 3d0c + mov a6, a14 # 5d0: 6d0e + l32i a7, sp, 0 /* [(local0)] */ # 5d2: 7801 + call0 ets_printf # 5d4: 01beffc0 + # 5d8: 0000 + l32i a0, sp, 48 /* [(local12)] */ # 5da: 08c1 + l32i a6, sp, 0 /* [(local0)] */ # 5dc: 6801 +.Lbr045: movi a10, 15 /* 0x0000000f */ # 5de: 0cfa + bne a14, a10, .Lbr046 # 5e0: a79e0b + bnei a6, 5, .Lbr046 # 5e3: 665608 + movi a11, .Ldata001 # 5e6: b1b6ff + s8i a12, a11, 0 /* a12 -> [.Ldata001] */ # 5e9: c24b00 + j .Lbr047 # 5ec: c60300 +.Lbr046: l32i a14, sp, 24 /* [(local6)] */ # 5ef: e861 + addi a12, a12, 1 # 5f1: 1bcc + slli a12, a12, 24 # 5f3: 80cc01 + srai a12, a12, 24 # 5f6: c0c831 + sub a14, a12, a14 # 5f9: e0ecc0 + bnez a14, .Lbr037 # 5fc: 569ef0 +.Lbr047: l32i a12, sp, 8 /* [(local2)] */ # 5ff: c821 + l32i a13, sp, 12 /* [(local3)] */ # 601: d831 + l32i a14, sp, 16 /* [(local4)] */ # 603: e841 + l32i a15, sp, 20 /* [(local5)] */ # 605: f851 + l32i a0, sp, 4 /* [(local1)] */ # 607: 0811 + addi sp, sp, 64 /* (top of frame) */ # 609: 12c140 + ret # 60c: 0df0 + + .literal_position # 610: 00000000 + # 614: 00000000 + # 618: 00000000 + +# Function @ .irom0.text+0x61c +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global pbus_set_rxbbgain + .type pbus_set_rxbbgain, @function +pbus_set_rxbbgain: + addi sp, sp, -16 /* (local0) */ # 61c: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 61f: c911 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 621: 0901 + mov a12, a2 /* arg0 */ # 623: cd02 + movi a0, 23 /* 0x00000017 */ # 625: 1c70 + blt a0, a2, .Lbr050 # 627: 27201d + movi a2, 17 /* 0x00000011 */ # 62a: 1c12 + blt a2, a12, .Lbr049 # 62c: c72212 + bgei a12, 12, .Lbr048 # 62f: e6ac09 + movi a0, 64 /* 0x00000040 */ # 632: 4c00 + bgei a12, 6, .Lbr051 # 634: e66c13 + movi a0, 0 /* 0x00000000 */ # 637: 0c00 + j .Lbr051 # 639: 860300 +.Lbr048: movi a0, 96 /* 0x00000060 */ # 63c: 02a060 + j .Lbr051 # 63f: 060200 +.Lbr049: movi a0, 112 /* 0x00000070 */ # 642: 02a070 + j .Lbr051 # 645: 860000 +.Lbr050: movi a0, 120 /* 0x00000078 */ # 648: 02a078 +.Lbr051: movi a2, g_phyFuns # 64b: 21f1ff + extui a4, a0, 0, 16 # 64e: 0040f4 + l32i a0, a2, 0 /* [g_phyFuns] */ # 651: 0802 + movi a3, 1 /* 0x00000001 */ # 653: 0c13 + l32i a0, a0, 172 /* [[g_phyFuns]+0xac] */ # 655: 02202b + movi a2, 3 /* 0x00000003 */ # 658: 0c32 + callx0 a0 /* [[g_phyFuns]+0xac] */ # 65a: c00000 + mov a2, a12 /* arg0 */ # 65d: 2d0c + movi a3, 6 /* 0x00000006 */ # 65f: 0c63 + call0 __modsi3 # 661: 01edffc0 + # 665: 0000 + movi a3, 2 /* 0x00000002 */ # 667: 0c23 + movi a5, 6 /* 0x00000006 */ # 669: 0c65 + slli a4, a2, 3 # 66b: d04211 + movi a0, g_phyFuns # 66e: 01e9ff + movi a2, 3 /* 0x00000003 */ # 671: 0c32 + l32i a0, a0, 0 /* [g_phyFuns] */ # 673: 0800 + or a4, a4, a5 # 675: 504420 + l32i a0, a0, 172 /* [[g_phyFuns]+0xac] */ # 678: 02202b + extui a4, a4, 0, 16 # 67b: 4040f4 + callx0 a0 /* [[g_phyFuns]+0xac] */ # 67e: c00000 + l32i a12, sp, 4 /* [(local1)] */ # 681: c811 + l32i a0, sp, 0 /* [(local0)] */ # 683: 0801 + addi sp, sp, 16 /* (top of frame) */ # 685: 12c110 + ret # 688: 0df0 + + .literal_position # 68c: 009a0060 + # 690: 00000000 + # 694: 00000300 + # 698: 00000000 + # 69c: 00020060 + # 6a0: a00f0000 + # 6a4: 00000000 + # 6a8: 00000000 + # 6ac: fffffcff + # 6b0: 00020060 + # 6b4: 00000000 + # 6b8: 00000100 + # 6bc: 009e0060 + # 6c0: 00000000 + +# Function @ .irom0.text+0x6c4 +# Local variables/stack: +# (local0): word[4] @ -0x60 +# (local1): hword @ -0x50 +# (local2): hword @ -0x4e +# (local3): hword @ -0x4c +# (local4): hword @ -0x4a +# (local5): word @ -0x48 +# (local6): word @ -0x44 +# (local7): word @ -0x40 +# (local8): word @ -0x3c +# (local9): word @ -0x38 +# (local10): word @ -0x34 +# (local11): word @ -0x30 +# (local12): word @ -0x2c +# (local13): word @ -0x28 +# (local14): word @ -0x24 +# (local15): word @ -0x20 +# (local16): word @ -0x1c +# (local17): word @ -0x18 +# (local18): word @ -0x14 +# (local19): word[4] @ -0x10 + .balign 4 + .global set_rx_gain_testchip_50 + .type set_rx_gain_testchip_50, @function +set_rx_gain_testchip_50: + mov a4, a6 /* arg4 */ # 6c4: 4d06 + movi a9, rxiq_compute_num # 6c6: 91f2ff + addi sp, sp, -96 /* (local0) */ # 6c9: 12c1a0 + s32i a12, sp, 44 /* a12 -> [(local10)] */ # 6cc: c9b1 + s32i a15, sp, 56 /* a15 -> [(local13)] */ # 6ce: f9e1 + s32i a0, sp, 40 /* a0 -> [(local9)] */ # 6d0: 09a1 + s32i a2, sp, 28 /* arg0 -> [(local6)] */ # 6d2: 2971 + s32i a3, sp, 32 /* arg1 -> [(local7)] */ # 6d4: 3981 + s32i a5, sp, 68 /* arg3 -> [(local16)] */ # 6d6: 526111 + s32i a14, sp, 52 /* a14 -> [(local12)] */ # 6d9: e9d1 + s32i a13, sp, 48 /* a13 -> [(local11)] */ # 6db: d9c1 + mov a14, a7 /* arg5 */ # 6dd: ed07 + movi a13, 0x60009a00 # 6df: d1ebff + l8ui a5, a9, 4 /* [rxdc_init_flag] */ # 6e2: 520904 + s32i a4, sp, 24 /* arg4 -> [(local5)] */ # 6e5: 4961 + beqz a5, .Lbr052 # 6e7: 8c85 + l32i a10, a3, 0 /* [arg1] */ # 6e9: a803 + s32i a3, sp, 32 /* arg1 -> [(local7)] */ # 6eb: 3981 + extui a10, a10, 16, 1 # 6ed: a0a005 + bnez a10, .Lbr059 # 6f0: 56ea1e +.Lbr052: movi a4, 0x00030000 # 6f3: 41e8ff + movi a15, g_phyFuns # 6f6: f1e8ff + movi a3, 0x60000200 # 6f9: 31e8ff + memw # 6fc: c02000 + l32i a2, a3, 0x3c8 /* [0x600005c8] */ # 6ff: 2223f2 + or a2, a2, a4 # 702: 402220 + memw # 705: c02000 + s32i a2, a3, 0x3c8 /* a2 -> [0x600005c8] */ # 708: 2263f2 + memw # 70b: c02000 + l32i a0, a15, 0 /* [g_phyFuns] */ # 70e: 080f + movi a12, 480 /* 0x000001e0 */ # 710: c2a1e0 + l32i a0, a0, 160 /* [[g_phyFuns]+0xa0] */ # 713: 022028 + s32i a12, a13, 104 /* 0x000001e0 -> [0x60009a68] */ # 716: c26d1a + callx0 a0 /* [[g_phyFuns]+0xa0] */ # 719: c00000 + movi a2, 119 /* 0x00000077 */ # 71c: 22a077 + movi a3, 0 /* 0x00000000 */ # 71f: 0c03 + movi a4, 18 /* 0x00000012 */ # 721: 1c24 + l32i a0, a15, 0 /* [g_phyFuns] */ # 723: 080f + movi a5, 7 /* 0x00000007 */ # 725: 0c75 + l32i a0, a0, 148 /* [[g_phyFuns]+0x94] */ # 727: 022025 + movi a6, 0 /* 0x00000000 */ # 72a: 0c06 + callx0 a0 /* [[g_phyFuns]+0x94] */ # 72c: c00000 + movi a3, 0 /* 0x00000000 */ # 72f: 0c03 + movi a4, 24 /* 0x00000018 */ # 731: 1c84 + movi a5, 5 /* 0x00000005 */ # 733: 0c55 + movi a6, 5 /* 0x00000005 */ # 735: 0c56 + l32i a0, a15, 0 /* [g_phyFuns] */ # 737: 080f + s32i a2, sp, 36 /* a2 -> [(local8)] */ # 739: 2991 + l32i a0, a0, 148 /* [[g_phyFuns]+0x94] */ # 73b: 022025 + movi a2, 119 /* 0x00000077 */ # 73e: 22a077 + callx0 a0 /* [[g_phyFuns]+0x94] */ # 741: c00000 + movi a3, 0 /* 0x00000000 */ # 744: 0c03 + movi a4, 24 /* 0x00000018 */ # 746: 1c84 + movi a5, 5 /* 0x00000005 */ # 748: 0c55 + movi a6, 5 /* 0x00000005 */ # 74a: 0c56 + movi a7, 0 /* 0x00000000 */ # 74c: 0c07 + l32i a0, a15, 0 /* [g_phyFuns] */ # 74e: 080f + mov a12, a2 # 750: cd02 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 752: 022027 + movi a2, 119 /* 0x00000077 */ # 755: 22a077 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 758: c00000 + movi a2, 119 /* 0x00000077 */ # 75b: 22a077 + movi a3, 0 /* 0x00000000 */ # 75e: 0c03 + movi a4, 18 /* 0x00000012 */ # 760: 1c24 + movi a5, 7 /* 0x00000007 */ # 762: 0c75 + l32i a0, a15, 0 /* [g_phyFuns] */ # 764: 080f + movi a6, 0 /* 0x00000000 */ # 766: 0c06 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 768: 022027 + movi a7, 0 /* 0x00000000 */ # 76b: 0c07 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 76d: c00000 + s32i a12, sp, 72 /* a12 -> [(local17)] */ # 770: c26112 + beqz a14, .Lbr057 # 773: 168e0d + movi a5, 0 /* 0x00000000 */ # 776: 0c05 + movi a12, 0 /* 0x00000000 */ # 778: 0c0c + l8ui a2, sp, 108 /* [(FP)+0xc] */ # 77a: 22016c + l32i a15, sp, 96 /* [(local20)] */ # 77d: f22118 + s32i a2, sp, 60 /* [(FP)+0xc] -> [(local14)] */ # 780: 29f1 + addx2 a6, a12, a15 # 782: f06c90 +.Lbr053: l16ui a6, a6, 0 # 785: 621600 + movi a4, 4 /* 0x00000004 */ # 788: 0c44 + mov a0, a4 /* 0x00000004 */ # 78a: 0d04 + extui a10, a6, 0, 15 # 78c: 60a0e4 + extui a2, a6, 4, 1 # 78f: 602404 + extui a8, a6, 7, 1 # 792: 608704 + extui a11, a6, 6, 1 # 795: 60b604 + extui a7, a6, 5, 1 # 798: 607504 + extui a9, a6, 9, 1 # 79b: 609904 + extui a3, a6, 8, 1 # 79e: 603804 + add a3, a3, a9 # 7a1: 9a33 + add a7, a7, a11 # 7a3: ba77 + add a3, a3, a8 # 7a5: 8a33 + add a3, a3, a7 # 7a7: 7a33 + movi a7, 29 /* 0x0000001d */ # 7a9: 1cd7 + extui a6, a6, 3, 1 # 7ab: 606304 + add a6, a6, a2 # 7ae: 2a66 + add a3, a3, a6 # 7b0: 6a33 + extui a3, a3, 0, 8 # 7b2: 303074 + bgeui a3, 5, .Lbr054 # 7b5: f65301 + mov a0, a3 # 7b8: 0d03 +.Lbr054: extui a11, a0, 0, 8 # 7ba: 00b074 + s32i a5, sp, 76 /* a5 -> [(local18)] */ # 7bd: 526113 + extui a0, a10, 0, 3 # 7c0: a00024 + addx2 a11, a11, a11 # 7c3: b0bb90 + addx2 a11, a11, a0 # 7c6: 00bb90 + mov a0, a7 /* 0x0000001d */ # 7c9: 0d07 + extui a11, a11, 0, 16 # 7cb: b0b0f4 + bltu a7, a11, .Lbr055 # 7ce: b73701 + mov a0, a11 # 7d1: 0d0b +.Lbr055: extui a3, a0, 0, 16 # 7d3: 0030f4 + s32i a3, sp, 64 /* a3 -> [(local15)] */ # 7d6: 326110 + ssr a3 # 7d9: 000340 + srl a2, a5 # 7dc: 502091 + bbsi a2, 0, .Lbr056 # 7df: 07e25e + extui a2, a10, 0, 12 # 7e2: a020b4 + call0 ram_pbus_set_rxgain # 7e5: 01b6ffc0 + # 7e9: 0000 + movi a2, 0x00000fa0 # 7eb: 21adff + addi a3, sp, 16 /* (local1) */ # 7ee: 32c110 + movi a0, g_phyFuns # 7f1: 01acff + movi a4, 10 /* 0x0000000a */ # 7f4: 0ca4 + l32i a0, a0, 0 /* [g_phyFuns] */ # 7f6: 0800 + l32i a5, sp, 60 /* [(local14)] */ # 7f8: 58f1 + l32i a0, a0, 236 /* [[g_phyFuns]+0xec] */ # 7fa: 02203b + movi a6, 0 /* 0x00000000 */ # 7fd: 0c06 + callx0 a0 /* [[g_phyFuns]+0xec] */ # 7ff: c00000 + l32i a5, sp, 76 /* [(local18)] */ # 802: 522113 + movi a8, 1 /* 0x00000001 */ # 805: 0c18 + l32i a3, sp, 68 /* [(local16)] */ # 807: 322111 + l16si a4, sp, 16 /* [(local1)] */ # 80a: 429108 + l16si a2, sp, 18 /* [(local2)] */ # 80d: 229109 + l32i a9, sp, 64 /* [(local15)] */ # 810: 922110 + l16si a6, sp, 20 /* [(local3)] */ # 813: 62910a + l16si a7, sp, 22 /* [(local4)] */ # 816: 72910b + extui a6, a6, 0, 9 # 819: 606084 + extui a7, a7, 0, 9 # 81c: 707084 + ssl a9 # 81f: 001940 + extui a2, a2, 0, 9 # 822: 202084 + extui a4, a4, 0, 9 # 825: 404084 + addx8 a3, a9, a3 # 828: 3039b0 + slli a4, a4, 9 # 82b: 704411 + slli a2, a2, 9 # 82e: 702211 + sll a8, a8 # 831: 0088a1 + or a5, a5, a8 # 834: 805520 + or a2, a2, a7 # 837: 702220 + or a4, a4, a6 # 83a: 604420 + s32i a4, a3, 0 # 83d: 4903 + s32i a2, a3, 4 # 83f: 2913 +.Lbr056: addi a12, a12, 1 # 841: 1bcc + extui a12, a12, 0, 8 # 843: c0c074 + addx2 a6, a12, a15 # 846: f06c90 + sub a4, a14, a12 # 849: c04ec0 + bnez a4, .Lbr053 # 84c: 5654f3 +.Lbr057: l32i a0, sp, 32 /* [(local7)] */ # 84f: 0881 + movi a15, g_phyFuns # 851: f195ff + l32i a0, a0, 0 /* [[(local7)]] */ # 854: 0800 + l32i a12, sp, 72 /* [(local17)] */ # 856: c22112 + bbsi a0, 16, .Lbr058 # 859: 07f01a + l32i a2, sp, 28 /* [(local6)] */ # 85c: 2871 + beqz a2, .Lbr058 # 85e: 9c52 + movi a2, 0 /* 0x00000000 */ # 860: 0c02 + movi a3, 8 /* 0x00000008 */ # 862: 0c83 + l32i a4, sp, 24 /* [(local5)] */ # 864: 4861 + l32i a5, sp, 68 /* [(local16)] */ # 866: 522111 + l8ui a6, sp, 100 /* [(FP)+0x4] */ # 869: 620164 + l8ui a7, sp, 104 /* [(FP)+0x8] */ # 86c: 720168 + l8ui a8, sp, 108 /* [(FP)+0xc] */ # 86f: 82016c + s32i a8, sp, 0 /* [(FP)+0xc] -> [(local0)] */ # 872: 8901 + call0 set_rx_gain_cal_iq # 874: 050000 +.Lbr058: mov a7, a12 /* [(local17)] */ # 877: 7d0c + movi a4, 0xfffcffff # 879: 418cff + memw # 87c: c02000 + movi a3, 0x60000200 # 87f: 318cff + l32i a2, a3, 0x3c8 /* [0x600005c8] */ # 882: 2223f2 + and a2, a2, a4 # 885: 402210 + memw # 888: c02000 + movi a4, 24 /* 0x00000018 */ # 88b: 1c84 + movi a5, 5 /* 0x00000005 */ # 88d: 0c55 + movi a6, 5 /* 0x00000005 */ # 88f: 0c56 + s32i a2, a3, 0x3c8 /* a2 -> [0x600005c8] */ # 891: 2263f2 + l32i a0, a15, 0 /* [g_phyFuns] */ # 894: 080f + movi a2, 119 /* 0x00000077 */ # 896: 22a077 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 899: 022027 + movi a3, 0 /* 0x00000000 */ # 89c: 0c03 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 89e: c00000 + l32i a7, sp, 36 /* [(local8)] */ # 8a1: 7891 + movi a2, 119 /* 0x00000077 */ # 8a3: 22a077 + movi a3, 0 /* 0x00000000 */ # 8a6: 0c03 + movi a4, 18 /* 0x00000012 */ # 8a8: 1c24 + l32i a0, a15, 0 /* [g_phyFuns] */ # 8aa: 080f + movi a5, 7 /* 0x00000007 */ # 8ac: 0c75 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 8ae: 022027 + movi a6, 0 /* 0x00000000 */ # 8b1: 0c06 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 8b3: c00000 + l32i a0, a15, 0 /* [g_phyFuns] */ # 8b6: 080f + l32i a0, a0, 200 /* [[g_phyFuns]+0xc8] */ # 8b8: 022032 + callx0 a0 /* [[g_phyFuns]+0xc8] */ # 8bb: c00000 + l32i a0, a15, 0 /* [g_phyFuns] */ # 8be: 080f + l32i a0, a0, 196 /* [[g_phyFuns]+0xc4] */ # 8c0: 022031 + callx0 a0 /* [[g_phyFuns]+0xc4] */ # 8c3: c00000 + l32i a0, a15, 0 /* [g_phyFuns] */ # 8c6: 080f + l32i a0, a0, 188 /* [[g_phyFuns]+0xbc] */ # 8c8: 02202f + movi a12, rxiq_compute_num # 8cb: c17aff + callx0 a0 /* [[g_phyFuns]+0xbc] */ # 8ce: c00000 + l32i a4, sp, 32 /* [(local7)] */ # 8d1: 4881 + movi a5, 0x00010000 # 8d3: 5179ff + l32i a3, a4, 0 /* [[(local7)]] */ # 8d6: 3804 + movi a2, 1 /* 0x00000001 */ # 8d8: 0c12 + or a3, a3, a5 # 8da: 503320 + s32i a3, a4, 0 /* a3 -> [[(local7)]] */ # 8dd: 3904 + s8i a2, a12, 4 /* 0x01 -> [rxdc_init_flag] */ # 8df: 224c04 +.Lbr059: beqz a14, .Lbr063 # 8e2: 16fe0d + l32i a15, sp, 96 /* [(local20)] */ # 8e5: f22118 + movi a6, 0x60009e00 # 8e8: 6175ff + movi a12, 0 /* 0x00000000 */ # 8eb: 0c0c + l32i a2, sp, 24 /* [(local5)] */ # 8ed: 2861 + l32i a0, sp, 68 /* [(local16)] */ # 8ef: 022111 + movi a5, 4 /* 0x00000004 */ # 8f2: 0c45 +.Lbr060: addx2 a10, a12, a15 # 8f4: f0ac90 + l16ui a10, a10, 0 # 8f7: a21a00 + mov a3, a5 /* 0x00000004 */ # 8fa: 3d05 + extui a7, a10, 8, 1 # 8fc: a07804 + extui a9, a10, 4, 1 # 8ff: a09404 + extui a8, a10, 3, 1 # 902: a08304 + add a8, a8, a9 # 905: 9a88 + extui a11, a10, 6, 1 # 907: a0b604 + extui a9, a10, 5, 1 # 90a: a09504 + add a9, a9, a11 # 90d: ba99 + extui a11, a10, 9, 1 # 90f: a0b904 + add a7, a7, a11 # 912: ba77 + extui a11, a10, 7, 1 # 914: a0b704 + add a7, a7, a11 # 917: ba77 + extui a10, a10, 0, 15 # 919: a0a0e4 + movi a11, 29 /* 0x0000001d */ # 91c: 1cdb + add a7, a7, a9 # 91e: 9a77 + add a7, a7, a8 # 920: 8a77 + extui a8, a10, 0, 3 # 922: a08024 + extui a7, a7, 0, 8 # 925: 707074 + bgeui a7, 5, .Lbr061 # 928: f65701 + mov a3, a7 # 92b: 3d07 +.Lbr061: extui a4, a3, 0, 8 # 92d: 304074 + mov a3, a11 /* 0x0000001d */ # 930: 3d0b + addx2 a7, a4, a4 # 932: 407490 + addx2 a7, a7, a8 # 935: 807790 + extui a7, a7, 0, 16 # 938: 7070f4 + bltu a11, a7, .Lbr062 # 93b: 773b01 + mov a3, a7 # 93e: 3d07 +.Lbr062: extui a11, a3, 0, 16 # 940: 30b0f4 + addx8 a11, a11, a0 # 943: 00bbb0 + l32i a8, a11, 4 # 946: 881b + l32i a11, a11, 0 # 948: b80b + extui a3, a8, 9, 9 # 94a: 803984 + extui a7, a11, 0, 9 # 94d: b07084 + extui a8, a8, 0, 9 # 950: 808084 + extui a11, a11, 9, 9 # 953: b0b984 + memw # 956: c02000 + slli a11, a11, 8 # 959: 80bb11 + slli a9, a10, 17 # 95c: f09a01 + movi a5, 30 /* 0x0000001e */ # 95f: 1ce5 + s32i a5, a13, 104 /* 0x0000001e -> [0x60009a68] */ # 961: 526d1a + add a9, a9, a11 # 964: ba99 + srli a11, a7, 1 # 966: 70b141 + addx4 a5, a12, a6 # 969: 605ca0 + add a9, a9, a11 # 96c: ba99 + memw # 96e: c02000 + s32i a9, a5, 0 # 971: 9905 + memw # 973: c02000 + movi a11, 31 /* 0x0000001f */ # 976: 1cfb + s32i a11, a13, 104 /* 0x0000001f -> [0x60009a68] */ # 978: b26d1a + memw # 97b: c02000 + slli a7, a7, 31 # 97e: 107701 + slli a3, a3, 22 # 981: a03301 + s32i a9, a5, 0 # 984: 9905 + add a3, a3, a7 # 986: 7a33 + addx2 a7, a4, a2 # 988: 207490 + l16ui a7, a7, 0 # 98b: 721700 + slli a8, a8, 13 # 98e: 308811 + extui a7, a7, 0, 11 # 991: 7070a4 + addx4 a7, a7, a8 # 994: 8077a0 + add a3, a3, a7 # 997: 7a33 + memw # 999: c02000 + movi a8, 480 /* 0x000001e0 */ # 99c: 82a1e0 + s32i a8, a13, 104 /* 0x000001e0 -> [0x60009a68] */ # 99f: 826d1a + memw # 9a2: c02000 + s32i a3, a5, 0 # 9a5: 3905 + memw # 9a7: c02000 + movi a7, 481 /* 0x000001e1 */ # 9aa: 72a1e1 + s32i a7, a13, 104 /* 0x000001e1 -> [0x60009a68] */ # 9ad: 726d1a + memw # 9b0: c02000 + s32i a3, a5, 0 # 9b3: 3905 + addi a12, a12, 1 # 9b5: 1bcc + l32i a3, sp, 80 /* [(local19)] */ # 9b7: 322114 + movi a5, 4 /* 0x00000004 */ # 9ba: 0c45 + extui a12, a12, 0, 8 # 9bc: c0c074 + sub a8, a14, a12 # 9bf: c08ec0 + bnez a8, .Lbr060 # 9c2: 56e8f2 +.Lbr063: l32i a12, sp, 44 /* [(local10)] */ # 9c5: c8b1 + l32i a13, sp, 48 /* [(local11)] */ # 9c7: d8c1 + l32i a14, sp, 52 /* [(local12)] */ # 9c9: e8d1 + l32i a15, sp, 56 /* [(local13)] */ # 9cb: f8e1 + l32i a0, sp, 40 /* [(local9)] */ # 9cd: 08a1 + addi sp, sp, 96 /* (local20) */ # 9cf: 12c160 + ret # 9d2: 0df0 + + .literal_position # 9d4: 00020060 + # 9d8: 00000000 + # 9dc: 00000000 + # 9e0: 00000000 + # 9e4: 00000000 + # 9e8: 00000000 + # 9ec: 00000000 + +# Function @ .irom0.text+0x9f0 +# Local variables/stack: +# (local0): word @ -0x40 +# (local1): word @ -0x3c +# (local2): word @ -0x38 +# (local3): word @ -0x34 +# (local4): word @ -0x30 +# (local5): word @ -0x2c +# (local6): word @ -0x28 +# (local7): word @ -0x24 +# (local8): word @ -0x20 +# (local9): word @ -0x1c +# (local10): word @ -0x18 +# (local11): word @ -0x14 +# (local12): word[4] @ -0x10 + .balign 4 + .global ram_get_corr_power + .type ram_get_corr_power, @function +ram_get_corr_power: + addi sp, sp, -64 /* (local0) */ # 9f0: 12c1c0 + s32i a13, sp, 48 /* a13 -> [(local12)] */ # 9f3: d9c1 + s32i a12, sp, 44 /* a12 -> [(local11)] */ # 9f5: c9b1 + s32i a0, sp, 40 /* a0 -> [(local10)] */ # 9f7: 09a1 + mov a12, a2 /* arg0 */ # 9f9: cd02 + movi a2, 0x60000200 # 9fb: 21f6ff + memw # 9fe: c02000 + l32i a5, a2, 0x38c /* [0x6000058c] */ # a01: 5222e3 + srai a5, a5, 9 # a04: 505921 + memw # a07: c02000 + l32i a4, a2, 0x380 /* [0x60000580] */ # a0a: 4222e0 + srai a4, a4, 9 # a0d: 404921 + add a4, a4, a5 # a10: 5a44 + memw # a12: c02000 + l32i a5, a2, 0x388 /* [0x60000588] */ # a15: 5222e2 + srai a5, a5, 9 # a18: 505921 + memw # a1b: c02000 + l32i a0, a2, 0x384 /* [0x60000584] */ # a1e: 0222e1 + srai a0, a0, 9 # a21: 000921 + sub a0, a0, a5 # a24: 5000c0 + s32i a0, sp, 12 /* a0 -> [(local3)] */ # a27: 0931 + memw # a29: c02000 + l32i a6, a2, 0x3dc /* [0x600005dc] */ # a2c: 6222f7 + srai a6, a6, 8 # a2f: 606821 + s32i a6, sp, 0 /* a6 -> [(local0)] */ # a32: 6901 + memw # a34: c02000 + l32i a5, a2, 0x3e0 /* [0x600005e0] */ # a37: 5222f8 + srai a5, a5, 8 # a3a: 505821 + s32i a5, sp, 4 /* a5 -> [(local1)] */ # a3d: 5911 + memw # a3f: c02000 + l32i a2, a2, 0x3e4 /* [0x600005e4] */ # a42: 2222f9 + movi a13, -4 /* 0xfffffffc */ # a45: 7ccd + addi a5, a3, -2 /* arg1-0x2 */ # a47: 52c3fe + srai a0, a0, 31 # a4a: 000f31 + s32i a0, sp, 8 /* a0 -> [(local2)] */ # a4d: 0921 + ssr a5 # a4f: 000540 + addx2 a13, a3, a13 # a52: d0d390 + srai a5, a4, 31 # a55: 405f31 + sra a2, a2 # a58: 2020b1 + s32i a2, a12, 0 /* a2 -> [arg0] */ # a5b: 290c + mov a3, a5 # a5d: 3d05 + mov a2, a4 # a5f: 2d04 + call0 __muldi3 # a61: 01ddffc0 + # a65: 0000 + s32i a2, sp, 20 /* a2 -> [(local5)] */ # a67: 2951 + s32i a3, sp, 16 /* a3 -> [(local4)] */ # a69: 3941 + l32i a5, sp, 8 /* [(local2)] */ # a6b: 5821 + l32i a4, sp, 12 /* [(local3)] */ # a6d: 4831 + mov a3, a5 /* [(local2)] */ # a6f: 3d05 + mov a2, a4 /* [(local3)] */ # a71: 2d04 + call0 __muldi3 # a73: 01daffc0 + # a77: 0000 + mov a4, a3 # a79: 4d03 + l32i a6, sp, 20 /* [(local5)] */ # a7b: 6851 + l32i a3, sp, 16 /* [(local4)] */ # a7d: 3841 + add a2, a6, a2 # a7f: 2a26 + add a3, a3, a4 # a81: 4a33 + bgeu a2, a6, .Lbr064 # a83: 67b201 + addi a3, a3, 1 # a86: 1b33 +.Lbr064: mov a4, a13 # a88: 4d0d + call0 __ashrdi3 # a8a: 01d5ffc0 + # a8e: 0000 + s32i a2, a12, 4 /* a2 -> [arg0+0x4] */ # a90: 291c + l32i a4, sp, 0 /* [(local0)] */ # a92: 4801 + l32i a6, sp, 4 /* [(local1)] */ # a94: 6811 + s32i a6, sp, 28 /* [(local1)] -> [(local7)] */ # a96: 6971 + srai a5, a4, 31 # a98: 405f31 + srai a6, a6, 31 # a9b: 606f31 + s32i a6, sp, 24 /* a6 -> [(local6)] */ # a9e: 6961 + mov a3, a5 # aa0: 3d05 + mov a2, a4 /* [(local0)] */ # aa2: 2d04 + call0 __muldi3 # aa4: 01d0ffc0 + # aa8: 0000 + s32i a2, sp, 36 /* a2 -> [(local9)] */ # aaa: 2991 + s32i a3, sp, 32 /* a3 -> [(local8)] */ # aac: 3981 + l32i a5, sp, 24 /* [(local6)] */ # aae: 5861 + l32i a4, sp, 28 /* [(local7)] */ # ab0: 4871 + mov a3, a5 /* [(local6)] */ # ab2: 3d05 + mov a2, a4 /* [(local7)] */ # ab4: 2d04 + call0 __muldi3 # ab6: 01ccffc0 + # aba: 0000 + mov a4, a3 # abc: 4d03 + l32i a8, sp, 36 /* [(local9)] */ # abe: 8891 + l32i a3, sp, 32 /* [(local8)] */ # ac0: 3881 + add a2, a8, a2 # ac2: 2a28 + add a3, a3, a4 # ac4: 4a33 + bgeu a2, a8, .Lbr065 # ac6: 87b201 + addi a3, a3, 1 # ac9: 1b33 +.Lbr065: mov a4, a13 # acb: 4d0d + call0 __ashrdi3 # acd: 01c7ffc0 + # ad1: 0000 + l32i a0, sp, 40 /* [(local10)] */ # ad3: 08a1 + s32i a2, a12, 8 /* a2 -> [arg0+0x8] */ # ad5: 292c + l32i a13, sp, 48 /* [(local12)] */ # ad7: d8c1 + l32i a12, sp, 44 /* [(local11)] */ # ad9: c8b1 + addi sp, sp, 64 /* (top of frame) */ # adb: 12c140 + ret # ade: 0df0 + + .literal_position # ae0: 00000000 + +# Function @ .irom0.text+0xae4 + .balign 4 + .global check_data_func + .type check_data_func, @function +check_data_func: + blt a2, a3, .Lbr066 # ae4: 372202 + bge a4, a2, .Lbr067 # ae7: 27a411 +.Lbr066: ssl a5 # aea: 001540 + movi a3, rxiq_compute_num # aed: 31fcff + movi a4, 1 /* 0x00000001 */ # af0: 0c14 + l32i a2, a3, 8 /* [check_result] */ # af2: 2823 + sll a4, a4 # af4: 0044a1 + or a2, a2, a4 # af7: 402220 + s32i a2, a3, 8 /* a2 -> [check_result] */ # afa: 2923 +.Lbr067: ret # afc: 0df0 + + .literal_position # b00: 009a0060 + # b04: fd7ffdff + +# Function @ .irom0.text+0xb08 + .balign 4 + .global do_noisefloor_lsleep_v50 + .type do_noisefloor_lsleep_v50, @function +do_noisefloor_lsleep_v50: + movi a8, -512 /* 0xfffffe00 */ # b08: 82ae00 + movi a7, 322 /* 0x00000142 */ # b0b: 72a142 + movi a3, 0x60009a00 # b0e: 31fcff + memw # b11: c02000 + l32i a6, a3, 0x164 /* [0x60009b64] */ # b14: 622359 + and a6, a6, a8 # b17: 806610 + or a6, a6, a7 # b1a: 706620 + memw # b1d: c02000 + s32i a6, a3, 0x164 /* a6 -> [0x60009b64] */ # b20: 626359 + movi a5, 0xfffd7ffd # b23: 51f8ff + movi a4, 2 /* 0x00000002 */ # b26: 0c24 + memw # b28: c02000 + l32i a2, a3, 0x160 /* [0x60009b60] */ # b2b: 222358 + and a2, a2, a5 # b2e: 502210 + or a2, a2, a4 # b31: 402220 + memw # b34: c02000 + s32i a2, a3, 0x160 /* a2 -> [0x60009b60] */ # b37: 226358 + ret # b3a: 0df0 + + .literal_position # b3c: 000af23f + # b40: 009a0060 + # b44: 00000000 + # b48: 00000000 + +# Function @ .irom0.text+0xb4c +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word @ -0x10 +# (local5): word[3] @ -0xc + .balign 4 + .global do_noisefloor + .type do_noisefloor, @function +do_noisefloor: + addi sp, sp, -32 /* (local0) */ # b4c: 12c1e0 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # b4f: 0911 + s32i a2, sp, 0 /* arg0 -> [(local0)] */ # b51: 2901 + s32i a13, sp, 12 /* a13 -> [(local3)] */ # b53: d931 + s32i a14, sp, 16 /* a14 -> [(local4)] */ # b55: e941 + s32i a12, sp, 8 /* a12 -> [(local2)] */ # b57: c921 + mov a14, a5 /* arg3 */ # b59: ed05 + movi a12, 0x60009a00 # b5b: c1f9ff + movi a13, 0x3ff20a00 # b5e: d1f7ff +.Lbr068: memw # b61: c02000 + l32i a0, a12, 0x160 /* [0x60009b60] */ # b64: 022c58 + s32i a4, sp, 20 /* arg2 -> [(local5)] */ # b67: 4951 + bbsi a0, 1, .Lbr070 # b69: 17e024 + mov a2, a3 /* arg1 */ # b6c: 2d03 + call0 ets_delay_us # b6e: 01f6ffc0 + # b72: 0000 + movi a0, g_phyFuns # b74: 01f4ff + l32i a0, a0, 0 /* [g_phyFuns] */ # b77: 0800 + l32i a0, a0, 100 /* [[g_phyFuns]+0x64] */ # b79: 022019 + l32i a2, sp, 0 /* [(local0)] */ # b7c: 2801 + callx0 a0 /* [[g_phyFuns]+0x64] */ # b7e: c00000 + l32i a0, sp, 20 /* [(local5)] */ # b81: 0851 +.Lbr069: memw # b83: c02000 + l32i a2, a12, 0x160 /* [0x60009b60] */ # b86: 222c58 + bbsi a2, 1, .Lbr071 # b89: 17e213 + movi a2, 0 /* 0x00000000 */ # b8c: 0c02 + j .Lbr073 # b8e: 060700 +.Lbr070: memw # b91: c02000 + l32i a5, a13, 0x200 /* [0x3ff20c00] */ # b94: 522d80 + sub a5, a5, a4 # b97: 4055c0 + bgeu a14, a5, .Lbr068 # b9a: 57bec3 + j .Lbr072 # b9d: c60200 +.Lbr071: memw # ba0: c02000 + l32i a6, a13, 0x200 /* [0x3ff20c00] */ # ba3: 622d80 + sub a6, a6, a0 # ba6: 0066c0 + bgeu a14, a6, .Lbr069 # ba9: 67bed6 +.Lbr072: movi a2, 1 /* 0x00000001 */ # bac: 0c12 +.Lbr073: l32i a12, sp, 8 /* [(local2)] */ # bae: c821 + l32i a13, sp, 12 /* [(local3)] */ # bb0: d831 + l32i a14, sp, 16 /* [(local4)] */ # bb2: e841 + l32i a0, sp, 4 /* [(local1)] */ # bb4: 0811 + addi sp, sp, 32 /* (top of frame) */ # bb6: 12c120 + ret # bb9: 0df0 + + .literal_position # bbc: fffffff7 + # bc0: 009a0060 + +# Function @ .irom0.text+0xbc4 + .balign 4 + .global start_dig_rx + .type start_dig_rx, @function +start_dig_rx: + movi a9, 0xf7ffffff # bc4: 91feff + movi a3, 0x60009a00 # bc7: 31feff + memw # bca: c02000 + l32i a8, a3, 0x108 /* [0x60009b08] */ # bcd: 822342 + and a8, a8, a9 # bd0: 908810 + memw # bd3: c02000 + s32i a8, a3, 0x108 /* a8 -> [0x60009b08] */ # bd6: 826342 + movi a7, 1 /* 0x00000001 */ # bd9: 0c17 + memw # bdb: c02000 + l32i a6, a3, 0x160 /* [0x60009b60] */ # bde: 622358 + or a6, a6, a7 # be1: 706620 + memw # be4: c02000 + s32i a6, a3, 0x160 /* a6 -> [0x60009b60] */ # be7: 626358 + movi a5, -2 /* 0xfffffffe */ # bea: 7ce5 + memw # bec: c02000 + l32i a4, a3, 0x160 /* [0x60009b60] */ # bef: 422358 + and a4, a4, a5 # bf2: 504410 + memw # bf5: c02000 + s32i a4, a3, 0x160 /* a4 -> [0x60009b60] */ # bf8: 426358 + memw # bfb: c02000 + s32i a2, a3, 44 /* arg0 -> [0x60009a2c] */ # bfe: 29b3 + ret /* arg0 */ # c00: 0df0 + + .literal_position # c04: 009a0060 + # c08: 00000008 + # c0c: fffff7ff + +# Function @ .irom0.text+0xc10 + .balign 4 + .global stop_dig_rx + .type stop_dig_rx, @function +stop_dig_rx: + movi a4, 0x60009a00 # c10: 41fdff + memw # c13: c02000 + movi a7, 0x08000000 # c16: 71fcff + l32i a2, a4, 44 /* [0x60009a2c] */ # c19: 28b4 + memw # c1b: c02000 + l32i a6, a4, 0x108 /* [0x60009b08] */ # c1e: 622442 + or a6, a6, a7 # c21: 706620 + memw # c24: c02000 + s32i a6, a4, 0x108 /* a6 -> [0x60009b08] */ # c27: 626442 + movi a5, 0xfff7ffff # c2a: 51f8ff + memw # c2d: c02000 + l32i a3, a4, 44 /* [0x60009a2c] */ # c30: 38b4 + and a3, a3, a5 # c32: 503310 + memw # c35: c02000 + s32i a3, a4, 44 /* a3 -> [0x60009a2c] */ # c38: 39b4 + ret /* [0x60009a2c] */ # c3a: 0df0 + + .literal_position # c3c: 00000000 + # c40: 00000000 + +# Function @ .irom0.text+0xc44 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global chip_v6_set_chanfreq + .type chip_v6_set_chanfreq, @function +chip_v6_set_chanfreq: + addi sp, sp, -16 /* (local0) */ # c44: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # c47: 0901 + movi a0, g_phyFuns # c49: 01fcff + l32i a0, a0, 0 /* [g_phyFuns] */ # c4c: 0800 + l32i a0, a0, 68 /* [[g_phyFuns]+0x44] */ # c4e: 022011 + movi a3, 128 /* 0x00000080 */ # c51: 32a080 + callx0 a0 /* [[g_phyFuns]+0x44] */ # c54: c00000 + call0 chip_v6_set_chan # c57: 01faffc0 + # c5b: 0000 + movi a2, 0 /* 0x00000000 */ # c5d: 0c02 + l32i a0, sp, 0 /* [(local0)] */ # c5f: 0801 + addi sp, sp, 16 /* (top of frame) */ # c61: 12c110 + ret /* 0x00000000 */ # c64: 0df0 + + .literal_position # c68: 00000000 + # c6c: 00000000 + # c70: 00000000 + # c74: 78010000 + # c78: 58000000 + # c7c: 65010000 + # c80: 0c000000 + # c84: 0c000000 + # c88: 0c000000 + # c8c: 0c000000 + # c90: 0c000000 + # c94: 00000000 + # c98: 00000000 + # c9c: 00000000 + # ca0: 00000400 + # ca4: 00000000 + # ca8: 00000000 + # cac: 00000000 + # cb0: 00000000 + # cb4: 00000000 + # cb8: 00000000 + # cbc: 00000000 + # cc0: 00000000 + +# Function @ .irom0.text+0xcc4 +# Local variables/stack: +# (local0): word @ -0x40 +# (local1): word[3] @ -0x3c +# (local2): byte[2] @ -0x2e +# (local3): word @ -0x2c +# (local4): word @ -0x28 +# (local5): word @ -0x24 +# (local6): word @ -0x20 +# (local7): word @ -0x1c +# (local8): word @ -0x18 +# (local9): word @ -0x14 +# (local10): word @ -0x10 +# (local11): word[3] @ -0xc + .balign 4 + .global tx_cap_init + .type tx_cap_init, @function +tx_cap_init: + addi sp, sp, -64 /* (local0) */ # cc4: 12c1c0 + s32i a12, sp, 24 /* a12 -> [(local4)] */ # cc7: c961 + s32i a15, sp, 36 /* a15 -> [(local7)] */ # cc9: f991 + s32i a14, sp, 32 /* a14 -> [(local6)] */ # ccb: e981 + s32i a13, sp, 28 /* a13 -> [(local5)] */ # ccd: d971 + movi a13, rxiq_compute_num # ccf: d1e6ff + s32i a0, sp, 20 /* a0 -> [(local3)] */ # cd2: 0951 + l32i a0, a13, 12 /* [chip6_sleep_params] */ # cd4: 083d + addi a14, a13, 41 /* .Label002 */ # cd6: e2cd29 + extui a0, a0, 18, 1 # cd9: 000205 + bnez a0, .Lbr084 # cdc: 56b017 + movi a12, g_phyFuns # cdf: c1e3ff + l32i a0, a12, 0 /* [g_phyFuns] */ # ce2: 080c + l32i a0, a0, 160 /* [[g_phyFuns]+0xa0] */ # ce4: 022028 + callx0 a0 /* [[g_phyFuns]+0xa0] */ # ce7: c00000 + l32i a0, a12, 0 /* [g_phyFuns] */ # cea: 080c + l32i a0, a0, 192 /* [[g_phyFuns]+0xc0] */ # cec: 022030 + movi a2, 1 /* 0x00000001 */ # cef: 0c12 + callx0 a0 /* [[g_phyFuns]+0xc0] */ # cf1: c00000 + movi a15, .Ldata001 # cf4: f1dfff + l16ui a2, a15, 2 /* [tx_rf_ana_gain] */ # cf7: 221f01 + extui a2, a2, 0, 12 # cfa: 2020b4 + call0 ram_pbus_xpd_tx_on # cfd: 01e9ffc0 + # d01: 0000 + l16ui a2, a15, 2 /* [tx_rf_ana_gain] */ # d03: 221f01 + addi a3, sp, 16 /* (FP)-0x30 */ # d06: 32c110 + movi a4, 1 /* 0x00000001 */ # d09: 0c14 + call0 set_txdc_pbus # d0b: 01e7ffc0 + # d0f: 0000 + l32i a0, a12, 0 /* [g_phyFuns] */ # d11: 080c + l32i a0, a0, 24 /* [[g_phyFuns]+0x18] */ # d13: 0860 + movi a2, 0 /* 0x00000000 */ # d15: 0c02 + callx0 a0 /* [[g_phyFuns]+0x18] */ # d17: c00000 + l8ui a13, sp, 18 /* [(local2)] */ # d1a: d20112 + movi a12, 0 /* 0x00000000 */ # d1d: 0c0c + movi a15, .Label007 # d1f: f1d5ff +.Lbr074: beqz a12, .Lbr077 # d22: 9c6c + beqi a12, 1, .Lbr076 # d24: 261c0f + beqi a12, 2, .Lbr075 # d27: 262c07 + bnei a12, 3, .Lbr078 # d2a: 663c10 + movi a13, 14 /* 0x0000000e */ # d2d: 0ced + j .Lbr078 # d2f: c60200 +.Lbr075: movi a13, 11 /* 0x0000000b */ # d32: 0cbd + j .Lbr078 # d34: 860100 +.Lbr076: movi a13, 6 /* 0x00000006 */ # d37: 0c6d + j .Lbr078 # d39: 460000 +.Lbr077: movi a13, 1 /* 0x00000001 */ # d3c: 0c1d +.Lbr078: mov a7, a15 /* .Label007 */ # d3e: 7d0f + movi a6, 100 /* 0x00000064 */ # d40: 62a064 + movi a4, 1 /* 0x00000001 */ # d43: 0c14 + movi a3, .Label006 # d45: 31cdff + movi a5, .Ldata002 # d48: 51ccff + slli a2, a13, 24 # d4b: 802d01 + srai a2, a2, 24 # d4e: 202831 + l16si a5, a5, 0x1fa /* [phy_freq_offset] */ # d51: 5295fd + l8ui a3, a3, 128 /* [.Ldata023] */ # d54: 320380 + s32i a4, sp, 4 /* 0x00000001 -> [(local1)] */ # d57: 4911 + s32i a6, sp, 0 /* 0x00000064 -> [(local0)] */ # d59: 6901 + movi a4, 0 /* 0x00000000 */ # d5b: 0c04 + movi a6, chip6_sleep_params # d5d: 61c8ff + call0 chip_60_set_channel # d60: 01d3ffc0 + # d64: 0000 + movi a2, 64 /* 0x00000040 */ # d66: 4c02 + movi a3, 40 /* 0x00000028 */ # d68: 2c83 + movi a4, 2 /* 0x00000002 */ # d6a: 0c24 + movi a5, 0 /* 0x00000000 */ # d6c: 0c05 + addx2 a6, a13, a13 # d6e: d06d90 + add a6, a14, a6 # d71: 6a6e + call0 ram_rfcal_txcap # d73: 01cfffc0 + # d77: 0000 + addi a12, a12, 1 # d79: 1bcc + extui a12, a12, 0, 8 # d7b: c0c074 + bnei a12, 4, .Lbr074 # d7e: 664ca0 + movi a12, 0 /* 0x00000000 */ # d81: 0c0c + movi a15, 0 /* 0x00000000 */ # d83: 0c0f + movi a13, 3 /* 0x00000003 */ # d85: 0c3d + movi a0, chip6_sleep_params # d87: 01bfff + s32i a13, sp, 40 /* 0x00000003 -> [(local8)] */ # d8a: d9a1 + add a14, a15, a0 /* chip6_sleep_params */ # d8c: 0aef +.Lbr079: movi a13, 14 /* 0x0000000e */ # d8e: 0ced +.Lbr080: bgeui a12, 6, .Lbr081 # d90: f66c23 + mov a2, a12 # d93: 2d0c + movi a3, 5 /* 0x00000005 */ # d95: 0c53 + l8ui a0, a14, 32 # d97: 020e20 + s32i a0, sp, 52 /* a0 -> [(local11)] */ # d9a: 09d1 + call0 __udivsi3 # d9c: 01c6ffc0 + # da0: 0000 + mov a3, a2 # da2: 3d02 + l8ui a4, a14, 47 # da4: 420e2f + l32i a2, sp, 52 /* [(local11)] */ # da7: 28d1 + movi a0, chip6_sleep_params # da9: 01b7ff + sub a4, a4, a2 # dac: 2044c0 + mull a3, a3, a4 # daf: 403382 + add a2, a2, a3 # db2: 3a22 + j .Lbr083 # db4: c61300 +.Lbr081: movi a5, 10 /* 0x0000000a */ # db7: 0ca5 + bltu a5, a12, .Lbr082 # db9: c73522 + movi a3, 5 /* 0x00000005 */ # dbc: 0c53 + addi a2, a12, -5 # dbe: 22ccfb + l8ui a4, a14, 62 # dc1: 420e3e + l8ui a5, a14, 47 # dc4: 520e2f + s32i a5, sp, 48 /* a5 -> [(local10)] */ # dc7: 59c1 + sub a4, a4, a5 # dc9: 5044c0 + mull a2, a2, a4 # dcc: 402282 + call0 __divsi3 # dcf: 01baffc0 + # dd3: 0000 + l32i a6, sp, 48 /* [(local10)] */ # dd5: 68c1 + movi a0, chip6_sleep_params # dd7: 01adff + add a2, a2, a6 # dda: 6a22 + j .Lbr083 # ddc: c60900 +.Lbr082: l8ui a2, a14, 71 # ddf: 220e47 + movi a7, 12 /* 0x0000000c */ # de2: 0cc7 + bltu a7, a12, .Lbr083 # de4: c7371f + addx4 a8, a12, a12 # de7: c08ca0 + l8ui a3, a14, 62 # dea: 320e3e + s32i a3, sp, 44 /* a3 -> [(local9)] */ # ded: 39b1 + addi a8, a8, -50 # def: 82c8ce + sub a2, a2, a3 # df2: 3022c0 + mull a2, a8, a2 # df5: 202882 + movi a3, 22 /* 0x00000016 */ # df8: 1c63 + call0 __divsi3 # dfa: 01b0ffc0 + # dfe: 0000 + l32i a9, sp, 44 /* [(local9)] */ # e00: 98b1 + movi a0, chip6_sleep_params # e02: 01a3ff + add a2, a2, a9 # e05: 9a22 +.Lbr083: addi a13, a13, -1 # e07: 0bdd + addx2 a3, a12, a12 # e09: c03c90 + add a3, a15, a3 # e0c: 3a3f + addi a12, a12, 1 # e0e: 1bcc + extui a12, a12, 0, 8 # e10: c0c074 + add a3, a0, a3 # e13: 3a30 + s8i a2, a3, 32 # e15: 224320 + bnez a13, .Lbr080 # e18: 564df7 + movi a12, 0 /* 0x00000000 */ # e1b: 0c0c + l32i a4, sp, 40 /* [(local8)] */ # e1d: 48a1 + addi a15, a15, 1 # e1f: 1bff + extui a15, a15, 0, 8 # e21: f0f074 + add a14, a15, a0 # e24: 0aef + addi a4, a4, -1 /* [(local8)]-0x1 */ # e26: 0b44 + s32i a4, sp, 40 /* [(local8)]-0x1 -> [(local8)] */ # e28: 49a1 + bnez a4, .Lbr079 # e2a: 5604f6 + movi a0, g_phyFuns # e2d: 0199ff + l32i a0, a0, 0 /* [g_phyFuns] */ # e30: 0800 + l32i a0, a0, 200 /* [[g_phyFuns]+0xc8] */ # e32: 022032 + callx0 a0 /* [[g_phyFuns]+0xc8] */ # e35: c00000 + movi a12, g_phyFuns # e38: c198ff + l32i a0, a12, 0 /* [g_phyFuns] */ # e3b: 080c + l32i a0, a0, 196 /* [[g_phyFuns]+0xc4] */ # e3d: 022031 + callx0 a0 /* [[g_phyFuns]+0xc4] */ # e40: c00000 + l32i a0, a12, 0 /* [g_phyFuns] */ # e43: 080c + movi a13, rxiq_compute_num # e45: d195ff + l32i a0, a0, 188 /* [[g_phyFuns]+0xbc] */ # e48: 02202f + movi a14, 0x00040000 # e4b: e195ff + callx0 a0 /* [[g_phyFuns]+0xbc] */ # e4e: c00000 + l32i a2, a13, 12 /* [chip6_sleep_params] */ # e51: 283d + or a2, a2, a14 # e53: e02220 + s32i a2, a13, 12 /* a2 -> [chip6_sleep_params] */ # e56: 293d + j .Lbr085 # e58: 060700 +.Lbr084: l8ui a2, a13, 90 /* [.Ldata003] */ # e5b: 220d5a + l8ui a3, a13, 90 /* [.Ldata003] */ # e5e: 320d5a + slli a2, a2, 24 # e61: 802201 + srai a2, a2, 24 # e64: 202831 + slli a3, a3, 24 # e67: 803301 + srai a3, a3, 24 # e6a: 303831 + addx2 a2, a2, a3 # e6d: 302290 + add a2, a14, a2 # e70: 2a2e + call0 set_txcap_reg # e72: 0193ffc0 + # e76: 0000 +.Lbr085: l32i a12, sp, 24 /* [(local4)] */ # e78: c861 + l32i a13, sp, 28 /* [(local5)] */ # e7a: d871 + l32i a14, sp, 32 /* [(local6)] */ # e7c: e881 + l32i a15, sp, 36 /* [(local7)] */ # e7e: f891 + l32i a0, sp, 20 /* [(local3)] */ # e80: 0851 + addi sp, sp, 64 /* (top of frame) */ # e82: 12c140 + ret # e85: 0df0 + + .balign 4 +# Function @ .irom0.text+0xe88 + .balign 4 + .global target_power_add_backoff + .type target_power_add_backoff, @function +target_power_add_backoff: + movi a8, 16 /* 0x00000010 */ # e88: 1c08 + l8ui a6, a3, 0 /* [arg1] */ # e8a: 620300 + movi a5, 28 /* 0x0000001c */ # e8d: 1cc5 + bge a5, a4, .Lbr086 # e8f: 47a504 + movi a7, 12 /* 0x0000000c */ # e92: 0cc7 + j .Lbr088 # e94: 860200 +.Lbr086: bge a8, a4, .Lbr087 # e97: 47a805 + addi a7, a4, -16 /* arg2-0x10 */ # e9a: 72c4f0 + j .Lbr088 # e9d: 460000 +.Lbr087: movi a7, 0 /* 0x00000000 */ # ea0: 0c07 +.Lbr088: sub a6, a6, a7 # ea2: 7066c0 + s8i a6, a2, 0 /* a6 -> [arg0] */ # ea5: 624200 + mov a7, a8 /* 0x00000010 */ # ea8: 7d08 + blt a8, a4, .Lbr089 # eaa: 472801 + mov a7, a4 /* arg2 */ # ead: 7d04 +.Lbr089: movi a4, 1 /* 0x00000001 */ # eaf: 0c14 +.Lbr090: add a9, a2, a4 # eb1: 4a92 + addi a10, a4, 1 # eb3: 1ba4 + add a8, a3, a4 # eb5: 4a83 + l8ui a8, a8, 0 # eb7: 820800 + extui a4, a10, 0, 8 # eba: a04074 + sub a8, a8, a7 # ebd: 7088c0 + s8i a8, a9, 0 # ec0: 824900 + bnei a4, 6, .Lbr090 # ec3: 6664ea + ret /* arg0 */ # ec6: 0df0 + + .literal_position # ec8: 9e010000 + # ecc: 0c000000 + # ed0: 29000000 + # ed4: 74000000 + # ed8: 0c000000 + # edc: 00020060 + # ee0: 00000000 + # ee4: 5c000000 + # ee8: 0c000000 + # eec: 00000000 + # ef0: 00000020 + # ef4: 00000000 + # ef8: 00000000 + # efc: 00000000 + # f00: 00000000 + # f04: 00000000 + +# Function @ .irom0.text+0xf08 +# Local variables/stack: +# (local0): word @ -0x30 +# (local1): word[5] @ -0x2c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word @ -0x10 +# (local5): word @ -0xc +# (local6): word @ -0x8 +# (local7): word @ -0x4 + .balign 4 + .global tx_pwctrl_init_cal + .type tx_pwctrl_init_cal, @function +tx_pwctrl_init_cal: + movi a6, 100 /* 0x00000064 */ # f08: 62a064 + movi a4, 1 /* 0x00000001 */ # f0b: 0c14 + addi sp, sp, -48 /* (local0) */ # f0d: 12c1d0 + s32i a14, sp, 40 /* a14 -> [(local6)] */ # f10: e9a1 + s32i a0, sp, 28 /* a0 -> [(local3)] */ # f12: 0971 + s32i a15, sp, 44 /* a15 -> [(local7)] */ # f14: f9b1 + s32i a13, sp, 36 /* a13 -> [(local5)] */ # f16: d991 + s32i a12, sp, 32 /* a12 -> [(local4)] */ # f18: c981 + mov a13, a3 /* arg1 */ # f1a: dd03 + mov a12, a2 /* arg0 */ # f1c: cd02 + movi a15, .Label013 # f1e: f1eaff + slli a2, a2, 24 # f21: 802201 + srai a2, a2, 24 # f24: 202831 + addi a7, a15, -38 /* .Label007 */ # f27: 72cfda + l16si a5, a15, 180 /* [phy_freq_offset] */ # f2a: 529f5a + l8ui a3, a15, 71 /* [.Ldata023] */ # f2d: 320f47 + s32i a4, sp, 4 /* 0x00000001 -> [(local1)] */ # f30: 4911 + s32i a6, sp, 0 /* 0x00000064 -> [(local0)] */ # f32: 6901 + movi a4, 0 /* 0x00000000 */ # f34: 0c04 + movi a6, chip6_sleep_params # f36: 61e5ff + call0 chip_60_set_channel # f39: 01eeffc0 + # f3d: 0000 + movi a3, .Label002 # f3f: 31e4ff + addx2 a2, a12, a12 # f42: c02c90 + add a2, a2, a3 # f45: 3a22 + call0 set_txcap_reg # f47: 01ecffc0 + # f4b: 0000 + l8ui a4, a15, 182 /* [do_pwctrl_flag] */ # f4d: 420fb6 + bnez a4, .Lbr091 # f50: cc74 + bnei a12, 6, .Lbr091 # f52: 666c05 + call0 cal_rf_ana_gain # f55: 01e9ffc0 + # f59: 0000 +.Lbr091: movi a14, .Ldata012 # f5b: e1deff + bnei a13, 1, .Lbr093 # f5e: 661d34 + movi a13, 0 /* 0x00000000 */ # f61: 0c0d + movi a5, 0 /* 0x00000000 */ # f63: 0c05 + s32i a5, sp, 24 /* 0x00000000 -> [(local2)] */ # f65: 5961 +.Lbr092: mov a2, a14 /* .Ldata012 */ # f67: 2d0e + call0 tx_pwr_backoff # f69: 01e5ffc0 + # f6d: 0000 + l32i a6, sp, 24 /* [(local2)] */ # f6f: 6861 + add a13, a2, a13 # f71: dad2 + slli a13, a13, 16 # f73: 00dd11 + srai a13, a13, 16 # f76: d0d031 + addi a0, a6, 1 /* [(local2)]+0x1 */ # f79: 1b06 + extui a6, a0, 0, 8 # f7b: 006074 + s32i a6, sp, 24 /* a6 -> [(local2)] */ # f7e: 6961 + bnei a6, 4, .Lbr092 # f80: 6646e3 + addi a0, a13, 2 # f83: 2b0d + addi a13, a13, 5 # f85: 5bdd + movgez a13, a0, a0 # f87: 00d0b3 + srai a13, a13, 2 # f8a: d0d221 + slli a13, a13, 16 # f8d: 00dd11 + srai a13, a13, 16 # f90: d0d031 + j .Lbr094 # f93: 460000 +.Lbr093: movi a13, 0 /* 0x00000000 */ # f96: 0c0d +.Lbr094: mov a3, a14 /* .Ldata012 */ # f98: 3d0e + addi a2, sp, 16 /* (FP)-0x20 */ # f9a: 22c110 + mov a4, a13 # f9d: 4d0d + call0 target_power_add_backoff # f9f: 050000 + beqi a12, 1, .Lbr095 # fa2: 261c12 + addi a2, a12, -6 /* arg0-0x6 */ # fa5: 22ccfa + beqz a2, .Lbr099 # fa8: 16c20b + addi a4, a12, -11 /* arg0-0xb */ # fab: 42ccf5 + movi a3, 2 /* 0x00000002 */ # fae: 0c23 + movi a0, 3 /* 0x00000003 */ # fb0: 0c30 + moveqz a0, a3, a4 # fb2: 400383 + j .Lbr096 # fb5: 460000 +.Lbr095: movi a0, 0 /* 0x00000000 */ # fb8: 0c00 +.Lbr096: movi a3, 0x60000200 # fba: 31c8ff + movi a6, -1 /* 0xffffffff */ # fbd: 7cf6 + extui a4, a13, 0, 8 # fbf: d04074 + slli a5, a0, 3 # fc2: d05011 + movi a14, chip6_sleep_params # fc5: e1c4ff + ssl a5 # fc8: 001540 + movi a5, 255 /* 0x000000ff */ # fcb: 52a0ff + addx2 a14, a0, a14 # fce: e0e090 + s16i a13, a14, 12 # fd1: d25e06 + sll a5, a5 # fd4: 0055a1 + sll a4, a4 # fd7: 0044a1 + xor a5, a5, a6 # fda: 605530 + memw # fdd: c02000 + l32i a2, a3, 0x3fc /* [0x600005fc] */ # fe0: 2223ff + and a2, a2, a5 # fe3: 502210 + or a2, a2, a4 # fe6: 402220 + memw # fe9: c02000 + movi a4, 6 /* 0x00000006 */ # fec: 0c64 + movi a5, 31 /* 0x0000001f */ # fee: 1cf5 + movi a9, 312 /* 0x00000138 */ # ff0: 92a138 + movi a6, .Ldata001 # ff3: 61bbff + movi a7, .Ldata005 # ff6: 71bbff + s32i a2, a3, 0x3fc /* a2 -> [0x600005fc] */ # ff9: 2263ff + addx2 a12, a0, a0 # ffc: 00c090 + movi a2, 64 /* 0x00000040 */ # fff: 4c02 + addi a3, sp, 16 /* (FP)-0x20 */ # 1001: 32c110 + slli a12, a12, 1 # 1004: f0cc11 + add a7, a12, a7 # 1007: 7a7c + l16ui a6, a6, 2 /* [tx_rf_ana_gain] */ # 1009: 621601 + s32i a9, sp, 0 /* 0x00000138 -> [(local0)] */ # 100c: 9901 + l8ui a8, a15, 183 /* [pwctrl_debug] */ # 100e: 820fb7 + s32i a8, sp, 4 /* [pwctrl_debug] -> [(local1)] */ # 1011: 8911 + call0 ram_rfcal_pwrctrl # 1013: 01bcffc0 + # 1017: 0000 + movi a3, rxiq_compute_num # 1019: 31b4ff + movi a5, chip6_sleep_params # 101c: 51b3ff + l8ui a4, a3, 117 /* [.Ldata013] */ # 101f: 420375 + l8ui a0, a3, 116 /* [.Ldata012] */ # 1022: 020374 + add a5, a12, a5 # 1025: 5a5c + l8ui a2, a5, 81 # 1027: 220551 + l8ui a5, a5, 80 # 102a: 520550 + slli a2, a2, 24 # 102d: 802201 + sub a0, a0, a4 # 1030: 4000c0 + addi a0, a0, 4 # 1033: 4b00 + srai a2, a2, 24 # 1035: 202831 + slli a5, a5, 24 # 1038: 805501 + srai a5, a5, 24 # 103b: 505831 + sub a2, a2, a5 # 103e: 5022c0 + bge a0, a2, .Lbr097 # 1041: 27a009 + movi a7, 0x20000000 # 1044: 71abff + l32i a6, a3, 12 /* [chip6_sleep_params] */ # 1047: 6833 + or a6, a6, a7 # 1049: 706620 + s32i a6, a3, 12 /* a6 -> [chip6_sleep_params] */ # 104c: 6933 +.Lbr097: l32i a12, sp, 32 /* [(local4)] */ # 104e: c881 + l32i a13, sp, 36 /* [(local5)] */ # 1050: d891 + l32i a0, sp, 28 /* [(local3)] */ # 1052: 0871 + l16si a8, a14, 12 # 1054: 829e06 + l32i a14, sp, 40 /* [(local6)] */ # 1057: e8a1 + blti a8, 5, .Lbr098 # 1059: a65804 + movi a9, 1 /* 0x00000001 */ # 105c: 0c19 + s8i a9, a15, 184 /* 0x01 -> [txbk_dpdby_flag] */ # 105e: 924fb8 +.Lbr098: l32i a15, sp, 44 /* [(local7)] */ # 1061: f8b1 + addi sp, sp, 48 /* (top of frame) */ # 1063: 12c130 + ret # 1066: 0df0 +.Lbr099: movi a0, 1 /* 0x00000001 */ # 1068: 0c10 + j .Lbr096 # 106a: 06d3ff + + .literal_position # 1070: 0c000000 + # 1074: 00000000 + # 1078: 00000000 + # 107c: 00000000 + # 1080: 00000000 + # 1084: c7010000 + # 1088: 0e020000 + # 108c: 0c000000 + # 1090: 0c000000 + # 1094: 00000000 + # 1098: 00000000 + # 109c: 0c000000 + # 10a0: 00000000 + # 10a4: 00000000 + # 10a8: 00000000 + # 10ac: 0c000000 + # 10b0: 00000000 + # 10b4: 00000000 + # 10b8: 00000000 + # 10bc: 00000000 + # 10c0: 00000000 + # 10c4: 00000000 + # 10c8: 00000000 + # 10cc: 00000000 + # 10d0: 00000000 + +# Function @ .irom0.text+0x10d4 +# Local variables/stack: +# (local0): word @ -0x40 +# (local1): word @ -0x3c +# (local2): word @ -0x38 +# (local3): word @ -0x34 +# (local4): word @ -0x30 +# (local5): word @ -0x2c +# (local6): word @ -0x28 +# (local7): word @ -0x24 +# (local8): word @ -0x20 +# (local9): word @ -0x1c +# (local10): word @ -0x18 +# (local11): word @ -0x14 +# (local12): word[4] @ -0x10 + .balign 4 + .global tx_atten_set_interp + .type tx_atten_set_interp, @function +tx_atten_set_interp: + addi a4, a2, -6 /* arg0-0x6 */ # 10d4: 42c2fa + addx4 a5, a2, a2 # 10d7: 2052a0 + addi sp, sp, -64 /* (local0) */ # 10da: 12c1c0 + s32i a13, sp, 20 /* a13 -> [(local5)] */ # 10dd: d951 + s32i a3, sp, 48 /* arg1 -> [(local12)] */ # 10df: 39c1 + s32i a0, sp, 12 /* a0 -> [(local3)] */ # 10e1: 0931 + s32i a14, sp, 24 /* a14 -> [(local6)] */ # 10e3: e961 + s32i a15, sp, 28 /* a15 -> [(local7)] */ # 10e5: f971 + s32i a12, sp, 16 /* a12 -> [(local4)] */ # 10e7: c941 + addi a5, a5, -55 # 10e9: 52c5c9 + mov a12, a2 /* arg0 */ # 10ec: cd02 + s32i a5, sp, 8 /* a5 -> [(local2)] */ # 10ee: 5921 + s32i a4, sp, 32 /* arg0-0x6 -> [(local8)] */ # 10f0: 4981 + movi a15, 0 /* 0x00000000 */ # 10f2: 0c0f + movi a14, 6 /* 0x00000006 */ # 10f4: 0c6e + movi a0, chip6_sleep_params # 10f6: 01deff + addi a3, a2, -1 /* arg0-0x1 */ # 10f9: 0b32 + s32i a3, sp, 44 /* arg0-0x1 -> [(local11)] */ # 10fb: 39b1 + mov a13, a0 /* chip6_sleep_params */ # 10fd: dd00 + addi a0, a0, -12 /* rxiq_compute_num */ # 10ff: 02c0f4 +.Lbr100: bgeui a12, 7, .Lbr101 # 1102: f67c2d + movi a3, 5 /* 0x00000005 */ # 1105: 0c53 + l32i a2, sp, 44 /* [(local11)] */ # 1107: 28b1 + l8ui a4, a13, 86 # 1109: 420d56 + l8ui a5, a13, 80 # 110c: 520d50 + s32i a5, sp, 40 /* a5 -> [(local10)] */ # 110f: 59a1 + slli a4, a4, 24 # 1111: 804401 + slli a5, a5, 24 # 1114: 805501 + srai a5, a5, 24 # 1117: 505831 + srai a4, a4, 24 # 111a: 404831 + sub a4, a4, a5 # 111d: 5044c0 + mull a2, a2, a4 # 1120: 402282 + call0 __divsi3 # 1123: 01e3ffc0 + # 1127: 0000 + l32i a5, sp, 40 /* [(local10)] */ # 1129: 58a1 + movi a0, rxiq_compute_num # 112b: 01d2ff + add a2, a2, a5 # 112e: 5a22 + j .Lbr103 # 1130: 061800 +.Lbr101: bgeui a12, 12, .Lbr102 # 1133: f6ac2d + movi a3, 5 /* 0x00000005 */ # 1136: 0c53 + l32i a2, sp, 32 /* [(local8)] */ # 1138: 2881 + l8ui a4, a13, 92 # 113a: 420d5c + l8ui a5, a13, 86 # 113d: 520d56 + s32i a5, sp, 36 /* a5 -> [(local9)] */ # 1140: 5991 + slli a4, a4, 24 # 1142: 804401 + slli a5, a5, 24 # 1145: 805501 + srai a5, a5, 24 # 1148: 505831 + srai a4, a4, 24 # 114b: 404831 + sub a4, a4, a5 # 114e: 5044c0 + mull a2, a2, a4 # 1151: 402282 + call0 __divsi3 # 1154: 01d8ffc0 + # 1158: 0000 + l32i a5, sp, 36 /* [(local9)] */ # 115a: 5891 + movi a0, rxiq_compute_num # 115c: 01c7ff + add a2, a2, a5 # 115f: 5a22 + j .Lbr103 # 1161: c60b00 +.Lbr102: l8ui a2, a13, 98 # 1164: 220d62 + movi a6, 13 /* 0x0000000d */ # 1167: 0cd6 + slli a2, a2, 24 # 1169: 802201 + srai a2, a2, 24 # 116c: 202831 + bltu a6, a12, .Lbr103 # 116f: c73621 + l8ui a4, a13, 92 # 1172: 420d5c + s32i a4, sp, 4 /* a4 -> [(local1)] */ # 1175: 4911 + slli a4, a4, 24 # 1177: 804401 + srai a4, a4, 24 # 117a: 404831 + sub a4, a2, a4 # 117d: 4042c0 + l32i a2, sp, 8 /* [(local2)] */ # 1180: 2821 + movi a3, 22 /* 0x00000016 */ # 1182: 1c63 + mull a2, a2, a4 # 1184: 402282 + call0 __divsi3 # 1187: 01ccffc0 + # 118b: 0000 + l32i a5, sp, 4 /* [(local1)] */ # 118d: 5811 + movi a0, rxiq_compute_num # 118f: 01bbff + add a2, a2, a5 # 1192: 5a22 +.Lbr103: addi a13, a13, 1 # 1194: 1bdd + addi a14, a14, -1 # 1196: 0bee + l32i a7, sp, 48 /* [(local12)] */ # 1198: 78c1 + l8ui a6, a0, 132 /* [.Ldata017] */ # 119a: 620084 + add a7, a15, a7 # 119d: 7a7f + slli a6, a6, 24 # 119f: 806601 + addi a15, a15, 1 # 11a2: 1bff + srai a6, a6, 24 # 11a4: 606831 + add a6, a6, a2 # 11a7: 2a66 + s8i a6, a7, 0 # 11a9: 624700 + bnez a14, .Lbr100 # 11ac: 562ef5 + movi a2, .Label014 # 11af: 21b5ff + movi a9, loop_pwctrl_correct_atten_high_power # 11b2: 91b3ff + l32i a10, sp, 48 /* [(local12)] */ # 11b5: a8c1 + l8ui a9, a9, 0 /* [loop_pwctrl_correct_atten_high_power] */ # 11b7: 920900 + l8ui a11, a10, 0 /* [[(local12)]] */ # 11ba: b20a00 + slli a9, a9, 24 # 11bd: 809901 + srai a9, a9, 24 # 11c0: 909831 + add a9, a9, a11 # 11c3: ba99 + s8i a9, a10, 0 /* a9 -> [[(local12)]] */ # 11c5: 924a00 + l8ui a8, a2, 108 /* [.Ldata061] */ # 11c8: 82026c + l8ui a10, a2, 144 /* [.Ldata092] */ # 11cb: a20290 + beqi a8, 1, .Lbr105 # 11ce: 26182b + beqi a10, 1, .Lbr105 # 11d1: 261a28 + movi a5, 0 /* 0x00000000 */ # 11d4: 0c05 + movi a13, -128 /* 0xffffff80 */ # 11d6: d2af80 +.Lbr104: mov a6, a13 # 11d9: 6d0d + movi a2, .Label020 # 11db: 21abff + movi a3, 13 /* 0x0000000d */ # 11de: 0cd3 + l32i a4, sp, 48 /* [(local12)] */ # 11e0: 48c1 + s8i a13, a0, 91 /* a13 -> [.Ldata004] */ # 11e2: d2405b + s8i a5, a0, 122 /* a5 -> [.Ldata014] */ # 11e5: 52407a + call0 ram_set_txbb_atten # 11e8: 01b5ffc0 + # 11ec: 0000 + l32i a12, sp, 16 /* [(local4)] */ # 11ee: c841 + l32i a13, sp, 20 /* [(local5)] */ # 11f0: d851 + l32i a14, sp, 24 /* [(local6)] */ # 11f2: e861 + l32i a15, sp, 28 /* [(local7)] */ # 11f4: f871 + l32i a0, sp, 12 /* [(local3)] */ # 11f6: 0831 + addi sp, sp, 64 /* (top of frame) */ # 11f8: 12c140 + ret # 11fb: 0df0 +.Lbr105: l8ui a11, a2, 99 /* [.Ldata052] */ # 11fd: b20263 + l8ui a14, a2, 103 /* [.Ldata056] */ # 1200: e20267 + bnez a11, .Lbr108 # 1203: dc5b + bltui a12, 3, .Lbr106 # 1205: b63c02 + j .Lbr114 # 1208: 864700 +.Lbr106: movi a2, chip6_sleep_params # 120b: 21a0ff + l8ui a2, a2, 82 /* [.Ldata006] */ # 120e: 220252 +.Lbr107: movi a5, 1 /* 0x00000001 */ # 1211: 0c15 + slli a13, a2, 24 # 1213: 80d201 + srai a13, a13, 24 # 1216: d0d831 + j .Lbr104 # 1219: 06efff +.Lbr108: bltu a14, a12, .Lbr110 # 121c: c73e61 + movi a15, chip6_sleep_params # 121f: f19cff + l8ui a13, a2, 101 /* [.Ldata054] */ # 1222: d20265 + add a13, a13, a15 # 1225: fadd + l8ui a13, a13, 80 # 1227: d20d50 + l8ui a15, a2, 104 /* [.Ldata057] */ # 122a: f20268 + slli a13, a13, 24 # 122d: 80dd01 + srai a13, a13, 24 # 1230: d0d831 + bnei a15, 1, .Lbr109 # 1233: 661f45 + movi a12, rxiq_compute_num # 1236: c197ff + movi a3, 5 /* 0x00000005 */ # 1239: 0c53 + l8ui a2, a12, 98 /* [.Ldata007] */ # 123b: 220c62 + l8ui a12, a12, 92 /* [.Ldata005] */ # 123e: c20c5c + slli a2, a2, 24 # 1241: 802201 + srai a2, a2, 24 # 1244: 202831 + slli a12, a12, 24 # 1247: 80cc01 + srai a12, a12, 24 # 124a: c0c831 + sub a2, a2, a12 # 124d: c022c0 + mull a2, a14, a2 # 1250: 202e82 + call0 __divsi3 # 1253: 019bffc0 + # 1257: 0000 + add a3, a12, a2 # 1259: 2a3c + slli a3, a3, 24 # 125b: 803301 + l32i a2, sp, 44 /* [(local11)] */ # 125e: 28b1 + srai a3, a3, 24 # 1260: 303831 + sub a3, a3, a13 # 1263: d033c0 + mull a2, a2, a3 # 1266: 302282 + mov a3, a14 /* [.Ldata056] */ # 1269: 3d0e + call0 __divsi3 # 126b: 0196ffc0 + # 126f: 0000 + movi a0, rxiq_compute_num # 1271: 0189ff + add a13, a13, a2 # 1274: 2add + slli a13, a13, 24 # 1276: 80dd01 + srai a13, a13, 24 # 1279: d0d831 +.Lbr109: movi a5, 1 /* 0x00000001 */ # 127c: 0c15 + j .Lbr104 # 127e: c6d5ff +.Lbr110: l8ui a3, a2, 102 /* [.Ldata055] */ # 1281: 320266 + movi a15, 15 /* 0x0000000f */ # 1284: 0cff + sub a15, a15, a3 # 1286: 30ffc0 + blt a12, a15, .Lbr111 # 1289: f72c4a + movi a15, chip6_sleep_params # 128c: f184ff + l8ui a13, a2, 100 /* [.Ldata053] */ # 128f: d20264 + add a13, a13, a15 # 1292: fadd + l8ui a13, a13, 98 # 1294: d20d62 + l8ui a4, a2, 104 /* [.Ldata057] */ # 1297: 420268 + slli a13, a13, 24 # 129a: 80dd01 + srai a13, a13, 24 # 129d: d0d831 + bnei a4, 1, .Lbr109 # 12a0: 6614d8 + l8ui a15, a0, 104 /* [.Ldata008] */ # 12a3: f20068 + slli a15, a15, 24 # 12a6: 80ff01 + srai a15, a15, 24 # 12a9: f0f831 + bgeui a12, 12, .Lbr112 # 12ac: f6ac2f + movi a2, rxiq_compute_num # 12af: 217cff + movi a3, 8 /* 0x00000008 */ # 12b2: 0c83 + l8ui a2, a2, 98 /* [.Ldata007] */ # 12b4: 220262 + sub a3, a3, a14 # 12b7: e033c0 + slli a2, a2, 24 # 12ba: 802201 + srai a2, a2, 24 # 12bd: 202831 + s32i a2, sp, 0 /* a2 -> [(local0)] */ # 12c0: 2901 + sub a2, a15, a2 # 12c2: 202fc0 + mull a2, a2, a3 # 12c5: 302282 + movi a3, 5 /* 0x00000005 */ # 12c8: 0c53 + call0 __divsi3 # 12ca: 017fffc0 + # 12ce: 0000 + l32i a0, sp, 0 /* [(local0)] */ # 12d0: 0801 + add a0, a0, a2 # 12d2: 2a00 + j .Lbr113 # 12d4: c60a00 +.Lbr111: movi a5, 0 /* 0x00000000 */ # 12d7: 0c05 + movi a13, -128 /* 0xffffff80 */ # 12d9: d2af80 + j .Lbr104 # 12dc: 46beff +.Lbr112: movi a2, rxiq_compute_num # 12df: 2171ff + movi a3, 3 /* 0x00000003 */ # 12e2: 0c33 + l8ui a2, a2, 110 /* [.Ldata010] */ # 12e4: 22026e + sub a3, a3, a14 # 12e7: e033c0 + slli a2, a2, 24 # 12ea: 802201 + srai a2, a2, 24 # 12ed: 202831 + sub a2, a2, a15 # 12f0: f022c0 + mull a2, a2, a3 # 12f3: 302282 + addx4 a2, a2, a2 # 12f6: 2022a0 + movi a3, 22 /* 0x00000016 */ # 12f9: 1c63 + call0 __divsi3 # 12fb: 0174ffc0 + # 12ff: 0000 + add a0, a15, a2 # 1301: 2a0f +.Lbr113: movi a3, 14 /* 0x0000000e */ # 1303: 0ce3 + slli a2, a0, 24 # 1305: 802001 + srai a2, a2, 24 # 1308: 202831 + sub a3, a3, a12 # 130b: c033c0 + sub a2, a2, a13 # 130e: d022c0 + mull a2, a2, a3 # 1311: 302282 + mov a3, a14 /* [.Ldata056] */ # 1314: 3d0e + call0 __divsi3 # 1316: 016effc0 + # 131a: 0000 + movi a0, rxiq_compute_num # 131c: 0163ff + add a13, a13, a2 # 131f: 2add + slli a13, a13, 24 # 1321: 80dd01 + srai a13, a13, 24 # 1324: d0d831 + j .Lbr109 # 1327: 46d4ff +.Lbr114: bltui a12, 10, .Lbr115 # 132a: b69c08 + movi a2, chip6_sleep_params # 132d: 215fff + l8ui a2, a2, 94 /* [.Ldata009] */ # 1330: 22025e + j .Lbr107 # 1333: 86b6ff +.Lbr115: movi a13, -128 /* 0xffffff80 */ # 1336: d2af80 + movi a5, 0 /* 0x00000000 */ # 1339: 0c05 + j .Lbr104 # 133b: 86a6ff + + .literal_position # 1340: 00000000 + # 1344: 00000000 + # 1348: 00000000 + # 134c: 00000000 + # 1350: 56010000 + # 1354: 00000000 + # 1358: 00000000 + # 135c: 00001000 + # 1360: 00000000 + # 1364: 00000000 + # 1368: 00000000 + # 136c: 00000000 + +# Function @ .irom0.text+0x1370 +# Local variables/stack: +# (local0): byte[14] @ -0x2e +# (local1): word @ -0x20 +# (local2): word @ -0x1c +# (local3): word @ -0x18 +# (local4): word @ -0x14 +# (local5): word @ -0x10 +# (local6): word[3] @ -0xc + .balign 4 + .global tx_pwctrl_init + .type tx_pwctrl_init, @function +tx_pwctrl_init: + addi sp, sp, -48 /* (FP)-0x30 */ # 1370: 12c1d0 + s32i a14, sp, 28 /* a14 -> [(local4)] */ # 1373: e971 + s32i a2, sp, 36 /* arg0 -> [(local6)] */ # 1375: 2991 + s32i a12, sp, 20 /* a12 -> [(local2)] */ # 1377: c951 + s32i a0, sp, 16 /* a0 -> [(local1)] */ # 1379: 0941 + s32i a15, sp, 32 /* a15 -> [(local5)] */ # 137b: f981 + s32i a13, sp, 24 /* a13 -> [(local3)] */ # 137d: d961 + movi a13, rxiq_compute_num # 137f: d1f0ff + mov a15, a2 /* arg0 */ # 1382: fd02 + l32i a0, a13, 12 /* [chip6_sleep_params] */ # 1384: 083d + movi a12, .Ldata001 # 1386: c1efff + extui a0, a0, 20, 1 # 1389: 000405 + bnez a0, .Lbr121 # 138c: 56b00a + movi a14, g_phyFuns # 138f: e1eeff + l32i a0, a14, 0 /* [g_phyFuns] */ # 1392: 080e + l32i a0, a0, 160 /* [[g_phyFuns]+0xa0] */ # 1394: 022028 + callx0 a0 /* [[g_phyFuns]+0xa0] */ # 1397: c00000 + l32i a0, a14, 0 /* [g_phyFuns] */ # 139a: 080e + l32i a0, a0, 192 /* [[g_phyFuns]+0xc0] */ # 139c: 022030 + movi a2, 1 /* 0x00000001 */ # 139f: 0c12 + callx0 a0 /* [[g_phyFuns]+0xc0] */ # 13a1: c00000 + l16ui a2, a12, 2 /* [tx_rf_ana_gain] */ # 13a4: 221c01 + extui a2, a2, 0, 12 # 13a7: 2020b4 + call0 ram_pbus_xpd_tx_on # 13aa: 01edffc0 + # 13ae: 0000 + l16ui a2, a12, 2 /* [tx_rf_ana_gain] */ # 13b0: 221c01 + mov a3, sp /* (FP)-0x30 */ # 13b3: 3d01 + movi a4, 1 /* 0x00000001 */ # 13b5: 0c14 + call0 set_txdc_pbus # 13b7: 01ebffc0 + # 13bb: 0000 + l32i a0, a14, 0 /* [g_phyFuns] */ # 13bd: 080e + l32i a0, a0, 24 /* [[g_phyFuns]+0x18] */ # 13bf: 0860 + movi a2, 0 /* 0x00000000 */ # 13c1: 0c02 + callx0 a0 /* [[g_phyFuns]+0x18] */ # 13c3: c00000 + l8ui a13, sp, 2 /* [(local0)] */ # 13c6: d20102 + movi a12, 0 /* 0x00000000 */ # 13c9: 0c0c +.Lbr116: beqz a12, .Lbr119 # 13cb: 9c6c + beqi a12, 1, .Lbr118 # 13cd: 261c0f + beqi a12, 2, .Lbr117 # 13d0: 262c07 + bnei a12, 3, .Lbr120 # 13d3: 663c10 + movi a13, 14 /* 0x0000000e */ # 13d6: 0ced + j .Lbr120 # 13d8: c60200 +.Lbr117: movi a13, 11 /* 0x0000000b */ # 13db: 0cbd + j .Lbr120 # 13dd: 860100 +.Lbr118: movi a13, 1 /* 0x00000001 */ # 13e0: 0c1d + j .Lbr120 # 13e2: 460000 +.Lbr119: movi a13, 6 /* 0x00000006 */ # 13e5: 0c6d +.Lbr120: mov a3, a15 /* arg0 */ # 13e7: 3d0f + mov a2, a13 # 13e9: 2d0d + call0 tx_pwctrl_init_cal # 13eb: 050000 + addi a12, a12, 1 # 13ee: 1bcc + extui a12, a12, 0, 8 # 13f0: c0c074 + bnei a12, 4, .Lbr116 # 13f3: 664cd4 + l32i a0, a14, 0 /* [g_phyFuns] */ # 13f6: 080e + l32i a0, a0, 200 /* [[g_phyFuns]+0xc8] */ # 13f8: 022032 + callx0 a0 /* [[g_phyFuns]+0xc8] */ # 13fb: c00000 + l32i a0, a14, 0 /* [g_phyFuns] */ # 13fe: 080e + l32i a0, a0, 196 /* [[g_phyFuns]+0xc4] */ # 1400: 022031 + movi a13, rxiq_compute_num # 1403: d1d2ff + callx0 a0 /* [[g_phyFuns]+0xc4] */ # 1406: c00000 + l32i a0, a14, 0 /* [g_phyFuns] */ # 1409: 080e + l32i a0, a0, 188 /* [[g_phyFuns]+0xbc] */ # 140b: 02202f + callx0 a0 /* [[g_phyFuns]+0xbc] */ # 140e: c00000 + movi a2, 0x00100000 # 1411: 21d2ff + l32i a0, a13, 12 /* [chip6_sleep_params] */ # 1414: 083d + movi a4, loop_pwctrl_pwdet_error_accum_high_power # 1416: 41d0ff + movi a5, loop_pwctrl_correct_atten_high_power # 1419: 51ceff + movi a6, .Label005 # 141c: 61cdff + movi a3, 0 /* 0x00000000 */ # 141f: 0c03 + s8i a3, a13, 133 /* 0x00 -> [.Ldata018] */ # 1421: 324d85 + s8i a3, a13, 132 /* 0x00 -> [.Ldata017] */ # 1424: 324d84 + s16i a3, a6, 130 /* 0x0000 -> [.Ldata021] */ # 1427: 325641 + s8i a3, a6, 128 /* 0x00 -> [.Ldata020] */ # 142a: 324680 + s8i a3, a5, 0 /* 0x00 -> [loop_pwctrl_correct_atten_high_power] */ # 142d: 324500 + s16i a3, a4, 0 /* 0x0000 -> [loop_pwctrl_pwdet_error_accum_high_power] */ # 1430: 325400 + or a0, a0, a2 # 1433: 200020 + s32i a0, a13, 12 /* a0 -> [chip6_sleep_params] */ # 1436: 093d + j .Lbr122 # 1438: 060700 +.Lbr121: mov a3, sp /* (FP)-0x30 */ # 143b: 3d01 + movi a4, 0 /* 0x00000000 */ # 143d: 0c04 + l16ui a2, a13, 130 /* [.Ldata016] */ # 143f: 221d41 + s16i a2, a12, 2 /* [.Ldata016] -> [tx_rf_ana_gain] */ # 1442: 225c01 + call0 set_txdc_pbus # 1445: 01c8ffc0 + # 1449: 0000 + l16ui a2, a12, 2 /* [tx_rf_ana_gain] */ # 144b: 221c01 + mov a3, sp /* (FP)-0x30 */ # 144e: 3d01 + call0 set_rfanagain_dc_reg # 1450: 01c7ffc0 + # 1454: 0000 + l32i a0, a13, 12 /* [chip6_sleep_params] */ # 1456: 083d +.Lbr122: bbsi a0, 27, .Lbr123 # 1458: b7f007 + l8ui a2, a13, 90 /* [.Ldata003] */ # 145b: 220d5a + addi a3, sp, 8 /* (FP)-0x28 */ # 145e: 8b31 + call0 tx_atten_set_interp # 1460: 050000 +.Lbr123: l32i a12, sp, 20 /* [(local2)] */ # 1463: c851 + l32i a13, sp, 24 /* [(local3)] */ # 1465: d861 + l32i a14, sp, 28 /* [(local4)] */ # 1467: e871 + l32i a15, sp, 32 /* [(local5)] */ # 1469: f881 + l32i a0, sp, 16 /* [(local1)] */ # 146b: 0841 + addi sp, sp, 48 /* (top of frame) */ # 146d: 12c130 + ret # 1470: 0df0 + + .literal_position # 1474: 009a0060 + +# Function @ .irom0.text+0x1478 + .balign 4 + .global ram_get_noisefloor + .type ram_get_noisefloor, @function +ram_get_noisefloor: + movi a2, 0x60009a00 # 1478: 21ffff + memw # 147b: c02000 + l32i a2, a2, 0x164 /* [0x60009b64] */ # 147e: 222259 + extui a2, a2, 20, 12 # 1481: 2024b5 + addi a2, a2, 1 # 1484: 1b22 + srli a2, a2, 1 # 1486: 202141 + addmi a2, a2, -2048 # 1489: 22d2f8 + slli a2, a2, 16 # 148c: 002211 + srai a2, a2, 16 # 148f: 202031 + ret # 1492: 0df0 + + .literal_position # 1494: 00000000 + +# Function @ .irom0.text+0x1498 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global get_noisefloor_sat + .type get_noisefloor_sat, @function +get_noisefloor_sat: + addi sp, sp, -16 /* (local0) */ # 1498: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 149b: 0901 + movi a0, g_phyFuns # 149d: 01fdff + l32i a0, a0, 0 /* [g_phyFuns] */ # 14a0: 0800 + l32i a0, a0, 40 /* [[g_phyFuns]+0x28] */ # 14a2: 08a0 + callx0 a0 /* [[g_phyFuns]+0x28] */ # 14a4: c00000 + movi a5, -340 /* 0xfffffeac */ # 14a7: 52aeac + movi a0, -392 /* 0xfffffe78 */ # 14aa: 02ae78 + blt a2, a0, .Lbr124 # 14ad: 072201 + mov a0, a2 # 14b0: 0d02 +.Lbr124: mov a2, a5 /* 0xfffffeac */ # 14b2: 2d05 + blt a5, a0, .Lbr125 # 14b4: 072501 + mov a2, a0 # 14b7: 2d00 +.Lbr125: l32i a0, sp, 0 /* [(local0)] */ # 14b9: 0801 + slli a2, a2, 16 # 14bb: 002211 + srai a2, a2, 16 # 14be: 202031 + addi sp, sp, 16 /* (top of frame) */ # 14c1: 12c110 + ret # 14c4: 0df0 + + .literal_position # 14c8: 009a0060 + # 14cc: fd7ffdff + +# Function @ .irom0.text+0x14d0 + .balign 4 + .global ram_set_noise_floor + .type ram_set_noise_floor, @function +ram_set_noise_floor: + movi a10, -3 /* 0xfffffffd */ # 14d0: 7cda + movi a4, 0x60009a00 # 14d2: 41fdff + memw # 14d5: c02000 + l32i a9, a4, 0x160 /* [0x60009b60] */ # 14d8: 922458 + and a9, a9, a10 # 14db: a09910 + memw # 14de: c02000 + s32i a9, a4, 0x160 /* a9 -> [0x60009b60] */ # 14e1: 926458 + addi a10, a2, 1 /* arg0+0x1 */ # 14e4: 1ba2 + addi a8, a2, 2 /* arg0+0x2 */ # 14e6: 2b82 + movgez a8, a10, a10 # 14e8: a08ab3 + srai a8, a8, 1 # 14eb: 808121 + movi a9, -512 /* 0xfffffe00 */ # 14ee: 92ae00 + addmi a8, a8, 512 # 14f1: 82d802 + extui a8, a8, 0, 9 # 14f4: 808084 + memw # 14f7: c02000 + l32i a7, a4, 0x164 /* [0x60009b64] */ # 14fa: 722459 + and a7, a7, a9 # 14fd: 907710 + or a7, a7, a8 # 1500: 807720 + memw # 1503: c02000 + s32i a7, a4, 0x164 /* a7 -> [0x60009b64] */ # 1506: 726459 + movi a6, 0xfffd7ffd # 1509: 61f0ff + movi a5, 2 /* 0x00000002 */ # 150c: 0c25 + memw # 150e: c02000 + l32i a3, a4, 0x160 /* [0x60009b60] */ # 1511: 322458 + and a3, a3, a6 # 1514: 603310 + or a3, a3, a5 # 1517: 503320 + memw # 151a: c02000 + s32i a3, a4, 0x160 /* a3 -> [0x60009b60] */ # 151d: 326458 + ret /* arg0 */ # 1520: 0df0 + + .literal_position # 1524: 009a0060 + # 1528: 00f0ffff + # 152c: 02800200 + +# Function @ .irom0.text+0x1530 + .balign 4 + .global ram_start_noisefloor + .type ram_start_noisefloor, @function +ram_start_noisefloor: + movi a7, 0x60009a00 # 1530: 71fdff + memw # 1533: c02000 + l32i a3, a7, 0x160 /* [0x60009b60] */ # 1536: 322758 + movi a8, 416 /* 0x000001a0 */ # 1539: 82a1a0 + bbsi a3, 1, .Lbr126 # 153c: 17e32f + extui a9, a2, 0, 3 # 153f: 209024 + movi a10, 0xfffff000 # 1542: a1f9ff + slli a9, a9, 9 # 1545: 709911 + memw # 1548: c02000 + l32i a6, a7, 0x164 /* [0x60009b64] */ # 154b: 622759 + and a6, a6, a10 # 154e: a06610 + or a6, a6, a9 # 1551: 906620 + or a6, a6, a8 # 1554: 806620 + memw # 1557: c02000 + s32i a6, a7, 0x164 /* a6 -> [0x60009b64] */ # 155a: 626759 + movi a5, 0x00028002 # 155d: 51f3ff + memw # 1560: c02000 + l32i a4, a7, 0x160 /* [0x60009b60] */ # 1563: 422758 + or a4, a4, a5 # 1566: 504420 + memw # 1569: c02000 + s32i a4, a7, 0x160 /* a4 -> [0x60009b60] */ # 156c: 426758 +.Lbr126: ret /* arg0 */ # 156f: 0df0 + + .literal_position # 1574: 01f0ffff + # 1578: 00960060 + +# Function @ .irom0.text+0x157c + .balign 4 + .global read_hw_noisefloor + .type read_hw_noisefloor, @function +read_hw_noisefloor: + movi a3, 0xfffff001 # 157c: 31feff + movi a2, 0x60009600 # 157f: 21feff + memw # 1582: c02000 + l32i a2, a2, 0x224 /* [0x60009824] */ # 1585: 222289 + extui a2, a2, 0, 12 # 1588: 2020b4 + add a2, a2, a3 # 158b: 3a22 + srli a2, a2, 1 # 158d: 202141 + slli a2, a2, 16 # 1590: 002211 + srai a2, a2, 16 # 1593: 202031 + ret # 1596: 0df0 + + .literal_position # 1598: fff1ffff + # 159c: 00000000 + # 15a0: 00000000 + # 15a4: 009a0060 + # 15a8: 88030000 + # 15ac: 7c000000 + # 15b0: 00000000 + # 15b4: 88030000 + # 15b8: d8010000 + # 15bc: 00000000 + # 15c0: 00000000 + # 15c4: 88030000 + +# Function @ .irom0.text+0x15c8 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word @ -0x8 +# (local3): word @ -0x4 + .balign 4 + .global noise_check_loop + .type noise_check_loop, @function +noise_check_loop: + movi a7, 0x60009a00 # 15c8: 71f7ff + movi a6, 512 /* 0x00000200 */ # 15cb: 62a200 + movi a8, 0xfffff1ff # 15ce: 81f2ff + addi sp, sp, -16 /* (local0) */ # 15d1: 12c1f0 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 15d4: d921 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 15d6: 0901 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 15d8: c911 + movi a12, rxiq_compute_num # 15da: c1f1ff + movi a0, g_phyFuns # 15dd: 01efff + mov a13, a2 /* arg0 */ # 15e0: dd02 + memw # 15e2: c02000 + l32i a5, a7, 0x164 /* [0x60009b64] */ # 15e5: 522759 + and a5, a5, a8 # 15e8: 805510 + or a5, a5, a6 # 15eb: 605520 + memw # 15ee: c02000 + s32i a5, a7, 0x164 /* a5 -> [0x60009b64] */ # 15f1: 526759 + movi a5, 5 /* 0x00000005 */ # 15f4: 0c55 + memw # 15f6: c02000 + l32i a4, a7, 0x160 /* [0x60009b60] */ # 15f9: 422758 + movi a6, .Ldata098 # 15fc: 61ebff + srli a4, a4, 15 # 15ff: 404f41 + and a4, a4, a5 # 1602: 504410 + beqi a4, 5, .Lbr127 # 1605: 26540a + l32i a0, a0, 0 /* [g_phyFuns] */ # 1608: 0800 + l32i a0, a0, 100 /* [[g_phyFuns]+0x64] */ # 160a: 022019 + callx0 a0 /* [[g_phyFuns]+0x64] */ # 160d: c00000 + j .Lbr129 # 1610: c60400 +.Lbr127: l16ui a2, a6, 0 /* [.Ldata098] */ # 1613: 221600 + memw # 1616: c02000 + l32i a4, a7, 0x160 /* [0x60009b60] */ # 1619: 422758 + bbci a4, 1, .Lbr130 # 161c: 17641d + bgeui a2, 10, .Lbr131 # 161f: f6921f + addi a0, a2, 1 /* [.Ldata098]+0x1 */ # 1622: 1b02 +.Lbr128: s16i a0, a6, 0 /* a0 -> [.Ldata098] */ # 1624: 025600 +.Lbr129: movi a2, .Label003 # 1627: 21e1ff + l32i a4, a12, 0x1dc /* [.Ldata022] */ # 162a: 422c77 + addi a3, a2, 9 /* .Ldata018 */ # 162d: 9b32 + call0 rtc_mem_backup # 162f: 050000 + l32i a12, sp, 4 /* [(local1)] */ # 1632: c811 + l32i a13, sp, 8 /* [(local2)] */ # 1634: d821 + l32i a0, sp, 0 /* [(local0)] */ # 1636: 0801 + addi sp, sp, 16 /* (top of frame) */ # 1638: 12c110 + ret # 163b: 0df0 +.Lbr130: s32i a3, sp, 12 /* arg1 -> [(local3)] */ # 163d: 3931 + bltui a2, 10, .Lbr132 # 163f: b69205 +.Lbr131: movi a2, -336 /* 0xfffffeb0 */ # 1642: 22aeb0 + j .Lbr133 # 1645: 860300 +.Lbr132: movi a0, g_phyFuns # 1648: 01daff + l32i a0, a0, 0 /* [g_phyFuns] */ # 164b: 0800 + l32i a0, a0, 40 /* [[g_phyFuns]+0x28] */ # 164d: 08a0 + callx0 a0 /* [[g_phyFuns]+0x28] */ # 164f: c00000 + l32i a3, sp, 12 /* [(local3)] */ # 1652: 3831 + movi a6, .Ldata098 # 1654: 61d8ff +.Lbr133: movi a4, -404 /* 0xfffffe6c */ # 1657: 42ae6c + bge a4, a2, .Lbr141 # 165a: 27a472 + l16ui a5, a6, 0 /* [.Ldata098] */ # 165d: 521600 + movi a7, -340 /* 0xfffffeac */ # 1660: 72aeac + bgeui a5, 10, .Lbr136 # 1663: f69514 + movi a0, -392 /* 0xfffffe78 */ # 1666: 02ae78 + blt a2, a0, .Lbr134 # 1669: 072201 + mov a0, a2 # 166c: 0d02 +.Lbr134: mov a2, a7 /* 0xfffffeac */ # 166e: 2d07 + blt a7, a0, .Lbr135 # 1670: 072701 + mov a2, a0 # 1673: 2d00 +.Lbr135: slli a2, a2, 16 # 1675: 002211 + srai a2, a2, 16 # 1678: 202031 +.Lbr136: l16si a0, a12, 128 /* [.Ldata015] */ # 167b: 029c40 + bge a0, a2, .Lbr144 # 167e: 27a06d + addx2 a0, a0, a0 # 1681: 000090 + add a0, a2, a0 # 1684: 0a02 + addi a4, a0, -2 # 1686: 42c0fe + addi a0, a0, 1 # 1689: 1b00 + movgez a0, a4, a4 # 168b: 4004b3 + srai a0, a0, 2 # 168e: 000221 +.Lbr137: slli a0, a0, 16 # 1691: 000011 + srai a0, a0, 16 # 1694: 000031 + s16i a0, a12, 128 /* a0 -> [.Ldata015] */ # 1697: 025c40 +.Lbr138: movi a2, .Ldata021 # 169a: 21c7ff + l8ui a2, a2, 128 /* [sw_scan_mode] */ # 169d: 220280 + beqz a2, .Lbr145 # 16a0: 16a205 + movi a2, -388 /* 0xfffffe7c */ # 16a3: 22ae7c + bge a2, a0, .Lbr142 # 16a6: 07a23b + add a4, a0, a2 # 16a9: 2a40 + addi a2, a4, 1 # 16ab: 1b24 + movgez a2, a4, a4 # 16ad: 4024b3 + srai a2, a2, 1 # 16b0: 202121 + slli a2, a2, 16 # 16b3: 002211 + srai a2, a2, 16 # 16b6: 202031 + s16i a2, a12, 88 /* a2 -> [.Ldata002] */ # 16b9: 225c2c + j .Lbr143 # 16bc: 860a00 +.Lbr139: movi a0, 0 /* 0x00000000 */ # 16bf: 0c00 +.Lbr140: beqz a3, .Lbr141 # 16c1: 8cb3 + beqz a0, .Lbr141 # 16c3: 8c90 + movi a0, g_phyFuns # 16c5: 01bdff + l32i a0, a0, 0 /* [g_phyFuns] */ # 16c8: 0800 + l32i a0, a0, 88 /* [[g_phyFuns]+0x58] */ # 16ca: 022016 + callx0 a0 /* [[g_phyFuns]+0x58] */ # 16cd: c00000 +.Lbr141: movi a0, g_phyFuns # 16d0: 01bcff + l32i a0, a0, 0 /* [g_phyFuns] */ # 16d3: 0800 + l32i a0, a0, 100 /* [[g_phyFuns]+0x64] */ # 16d5: 022019 + mov a2, a13 /* arg0 */ # 16d8: 2d0d + callx0 a0 /* [[g_phyFuns]+0x64] */ # 16da: c00000 + movi a6, .Ldata098 # 16dd: 61b9ff + movi a0, 0 /* 0x00000000 */ # 16e0: 0c00 + j .Lbr128 # 16e2: 86cfff +.Lbr142: mov a2, a0 # 16e5: 2d00 + s16i a0, a12, 88 /* a0 -> [.Ldata002] */ # 16e7: 025c2c +.Lbr143: movi a0, 1 /* 0x00000001 */ # 16ea: 0c10 + j .Lbr140 # 16ec: 46f4ff +.Lbr144: bge a2, a0, .Lbr138 # 16ef: 07a2a7 + addi a4, a0, -16 /* [.Ldata015]-0x10 */ # 16f2: 42c0f0 + bge a2, a4, .Lbr147 # 16f5: 47a21b + addi a0, a0, -12 /* [.Ldata015]-0xc */ # 16f8: 02c0f4 + j .Lbr137 # 16fb: 86e4ff +.Lbr145: l16si a2, a12, 88 /* [.Ldata002] */ # 16fe: 229c2c + addi a5, a2, 8 /* [.Ldata002]+0x8 */ # 1701: 8b52 + blt a5, a0, .Lbr146 # 1703: 072505 + addi a7, a2, -8 /* [.Ldata002]-0x8 */ # 1706: 72c2f8 + bge a0, a7, .Lbr139 # 1709: 77a0b2 +.Lbr146: mov a2, a0 # 170c: 2d00 + s16i a0, a12, 88 /* a0 -> [.Ldata002] */ # 170e: 025c2c + j .Lbr143 # 1711: 46f5ff +.Lbr147: addx2 a4, a2, a2 # 1714: 204290 + add a0, a0, a4 # 1717: 4a00 + addi a4, a0, -2 # 1719: 42c0fe + addi a0, a0, 1 # 171c: 1b00 + movgez a0, a4, a4 # 171e: 4004b3 + srai a0, a0, 2 # 1721: 000221 + j .Lbr137 # 1724: 46daff + + .literal_position # 1728: 00000000 + # 172c: 00000000 + # 1730: 009a0060 + # 1734: 78020000 + # 1738: 009a0060 + # 173c: ffffffbf + # 1740: 000af23f + # 1744: 009a0060 + # 1748: 78020000 + # 174c: 009a0060 + # 1750: 000af23f + # 1754: 009a0060 + # 1758: 78020000 + # 175c: 00000000 + # 1760: 00000000 + # 1764: 00000000 + # 1768: 00000000 + # 176c: 00002000 + # 1770: 009a0060 + # 1774: 00000000 + +# Function @ .irom0.text+0x1778 +# Local variables/stack: +# (local0): word @ -0x40 +# (local1): word @ -0x3c +# (local2): word @ -0x38 +# (local3): word @ -0x34 +# (local4): word @ -0x30 +# (local5): word @ -0x2c +# (local6): word @ -0x28 +# (local7): word @ -0x24 +# (local8): word @ -0x20 +# (local9): word @ -0x1c +# (local10): word @ -0x18 +# (local11): word @ -0x14 +# (local12): word @ -0x10 +# (local13): word[3] @ -0xc + .balign 4 + .global noise_init + .type noise_init, @function +noise_init: mov a8, a2 /* arg0 */ # 1778: 8d02 + movi a9, g_phyFuns # 177a: 91ecff + addi sp, sp, -64 /* (local0) */ # 177d: 12c1c0 + s32i a0, sp, 20 /* a0 -> [(local5)] */ # 1780: 0951 + s32i a12, sp, 24 /* a12 -> [(local6)] */ # 1782: c961 + s32i a14, sp, 32 /* a14 -> [(local8)] */ # 1784: e981 + s32i a15, sp, 36 /* a15 -> [(local9)] */ # 1786: f991 + s32i a13, sp, 28 /* a13 -> [(local7)] */ # 1788: d971 + movi a15, -1024 /* 0xfffffc00 */ # 178a: f2ac00 + movi a13, rxiq_compute_num # 178d: d1e6ff + mov a14, a3 /* arg1 */ # 1790: ed03 + movi a12, 201 /* 0x000000c9 */ # 1792: c2a0c9 + mov a3, a4 /* arg2 */ # 1795: 3d04 + l32i a4, sp, 64 /* [(local14)] */ # 1797: 422110 + l32i a9, a9, 0 /* [g_phyFuns] */ # 179a: 9809 + l32i a0, a4, 0 /* [[(local14)]] */ # 179c: 0804 + l32i a9, a9, 88 /* [[g_phyFuns]+0x58] */ # 179e: 922916 + extui a0, a0, 21, 1 # 17a1: 000505 + bnez a0, .Lbr158 # 17a4: 562019 + movi a2, -388 /* 0xfffffe7c */ # 17a7: 22ae7c + s32i a6, sp, 4 /* arg4 -> [(local1)] */ # 17aa: 6911 + s32i a4, sp, 0 /* [(local14)] -> [(local0)] */ # 17ac: 4901 + s32i a8, sp, 52 /* arg0 -> [(local13)] */ # 17ae: 89d1 + s32i a3, sp, 48 /* arg2 -> [(local12)] */ # 17b0: 39c1 + s32i a5, sp, 44 /* arg3 -> [(local11)] */ # 17b2: 59b1 + callx0 a9 /* [[g_phyFuns]+0x58] */ # 17b4: c00900 + movi a9, -388 /* 0xfffffe7c */ # 17b7: 92ae7c + memw # 17ba: c02000 + movi a10, 0x60009a00 # 17bd: a1dcff + l32i a3, a10, 52 /* [0x60009a34] */ # 17c0: 38da + and a3, a3, a15 # 17c2: f03310 + or a3, a3, a12 # 17c5: c03320 + memw # 17c8: c02000 + s32i a3, a10, 52 /* a3 -> [0x60009a34] */ # 17cb: 39da + memw # 17cd: c02000 + l32i a0, a10, 52 /* [0x60009a34] */ # 17d0: 08da + movi a2, -2 /* 0xfffffffe */ # 17d2: 7ce2 + and a0, a0, a2 # 17d4: 200010 + memw # 17d7: c02000 + s32i a0, a10, 52 /* a0 -> [0x60009a34] */ # 17da: 09da + memw # 17dc: c02000 + movi a0, noise_array # 17df: 01d5ff + movi a8, -340 /* 0xfffffeac */ # 17e2: 82aeac + l32i a10, a10, 0x160 /* [0x60009b60] */ # 17e5: a22a58 + movi a11, 0 /* 0x00000000 */ # 17e8: 0c0b + s32i a11, sp, 40 /* 0x00000000 -> [(local10)] */ # 17ea: b9a1 + s16i a9, a13, 88 /* 0xfe7c -> [.Ldata002] */ # 17ec: 925d2c +.Lbr148: l32i a4, sp, 40 /* [(local10)] */ # 17ef: 48a1 + addi a5, a4, 1 /* [(local10)]+0x1 */ # 17f1: 1b54 + addx2 a6, a4, a0 # 17f3: 006490 + s16i a8, a6, 0 # 17f6: 825600 + extui a4, a5, 0, 8 # 17f9: 504074 + s32i a4, sp, 40 /* a4 -> [(local10)] */ # 17fc: 49a1 + bnei a4, 4, .Lbr148 # 17fe: 6644ed + memw # 1801: c02000 + movi a9, 0x60009a00 # 1804: 91cdff + l32i a3, a9, 44 /* [0x60009a2c] */ # 1807: 38b9 + s32i a3, sp, 8 /* [0x60009a2c] -> [(local2)] */ # 1809: 3921 + memw # 180b: c02000 + l32i a2, a9, 0x320 /* [0x60009d20] */ # 180e: 2229c8 + s32i a2, sp, 12 /* [0x60009d20] -> [(local3)] */ # 1811: 2931 + memw # 1813: c02000 + l32i a15, a9, 0x340 /* [0x60009d40] */ # 1816: f229d0 + s32i a15, sp, 16 /* [0x60009d40] -> [(local4)] */ # 1819: f941 + memw # 181b: c02000 + l32i a11, a9, 44 /* [0x60009a2c] */ # 181e: b8b9 + movi a12, -2 /* 0xfffffffe */ # 1820: 7cec + and a11, a11, a12 # 1822: c0bb10 + memw # 1825: c02000 + s32i a11, a9, 44 /* a11 -> [0x60009a2c] */ # 1828: b9b9 + movi a10, 0xbfffffff # 182a: a1c4ff + memw # 182d: c02000 + l32i a8, a9, 0x320 /* [0x60009d20] */ # 1830: 8229c8 + and a8, a8, a10 # 1833: a08810 + memw # 1836: c02000 + s32i a8, a9, 0x320 /* a8 -> [0x60009d20] */ # 1839: 8269c8 + movi a12, 0x3ff20a00 # 183c: c1c1ff + movi a7, 0 /* 0x00000000 */ # 183f: 0c07 + s32i a7, sp, 40 /* 0x00000000 -> [(local10)] */ # 1841: 79a1 +.Lbr149: memw # 1843: c02000 + l32i a15, a12, 0x200 /* [0x3ff20c00] */ # 1846: f22c80 + l32i a4, sp, 40 /* [(local10)] */ # 1849: 48a1 + movi a2, 14 /* 0x0000000e */ # 184b: 0ce2 + addx4 a3, a4, a4 # 184d: 4034a0 + addi a4, a4, -3 /* [(local10)]-0x3 */ # 1850: 42c4fd + addi a3, a3, 1 # 1853: 1b33 + movnez a2, a3, a4 # 1855: 402393 + slli a2, a2, 24 # 1858: 802201 + srai a2, a2, 24 # 185b: 202831 + call0 chip_v6_set_chan # 185e: 01c5ffc0 + # 1862: 0000 + memw # 1864: c02000 + movi a0, 0x60009a00 # 1867: 01b7ff + l32i a13, sp, 40 /* [(local10)] */ # 186a: d8a1 + l32i a4, a0, 0x160 /* [0x60009b60] */ # 186c: 422058 + beqz a14, .Lbr153 # 186f: acde + movi a0, noise_array # 1871: 01b5ff + movi a12, 0 /* 0x00000000 */ # 1874: 0c0c + addx2 a13, a13, a0 # 1876: 00dd90 +.Lbr150: mov a4, a15 /* [0x3ff20c00] */ # 1879: 4d0f + l32i a2, sp, 52 /* [(local13)] */ # 187b: 28d1 + l32i a3, sp, 48 /* [(local12)] */ # 187d: 38c1 + l32i a5, sp, 44 /* [(local11)] */ # 187f: 58b1 + call0 do_noisefloor # 1881: 050000 + bnez a2, .Lbr152 # 1884: dc22 + call0 get_noisefloor_sat # 1886: 050000 + l16si a4, a13, 0 # 1889: 429d00 + addi a12, a12, 1 # 188c: 1bcc + bge a2, a4, .Lbr151 # 188e: 47a202 + s16i a2, a13, 0 # 1891: 225d00 +.Lbr151: extui a12, a12, 0, 8 # 1894: c0c074 + bne a14, a12, .Lbr150 # 1897: c79ede +.Lbr152: movi a0, 0x60009a00 # 189a: 01acff + movi a12, 0x3ff20a00 # 189d: c1acff +.Lbr153: memw # 18a0: c02000 + l32i a2, a0, 52 /* [0x60009a34] */ # 18a3: 28d0 + movi a3, -2 /* 0xfffffffe */ # 18a5: 7ce3 + and a2, a2, a3 # 18a7: 302210 + memw # 18aa: c02000 + l32i a13, sp, 40 /* [(local10)] */ # 18ad: d8a1 + s32i a2, a0, 52 /* a2 -> [0x60009a34] */ # 18af: 29d0 + addi a15, a13, 1 /* [(local10)]+0x1 */ # 18b1: 1bfd + extui a13, a15, 0, 8 # 18b3: f0d074 + s32i a13, sp, 40 /* a13 -> [(local10)] */ # 18b6: d9a1 + bnei a13, 4, .Lbr149 # 18b8: 664d87 + memw # 18bb: c02000 + movi a6, 0x60009a00 # 18be: 61a5ff + l32i a8, sp, 8 /* [(local2)] */ # 18c1: 8821 + s32i a8, a6, 44 /* [(local2)] -> [0x60009a2c] */ # 18c3: 89b6 + memw # 18c5: c02000 + l32i a7, sp, 12 /* [(local3)] */ # 18c8: 7831 + s32i a7, a6, 0x320 /* [(local3)] -> [0x60009d20] */ # 18ca: 7266c8 + memw # 18cd: c02000 + l32i a5, sp, 16 /* [(local4)] */ # 18d0: 5841 + l32i a4, sp, 4 /* [(local1)] */ # 18d2: 4811 + s32i a5, a6, 0x340 /* [(local4)] -> [0x60009d40] */ # 18d4: 5266d0 + beqz a4, .Lbr156 # 18d7: bce4 + movi a0, noise_array # 18d9: 019fff + movi a2, -40 /* 0xffffffd8 */ # 18dc: 22afd8 + movi a9, 0 /* 0x00000000 */ # 18df: 0c09 + s32i a9, sp, 40 /* 0x00000000 -> [(local10)] */ # 18e1: 99a1 + slli a10, a2, 16 # 18e3: 00a211 +.Lbr154: srai a10, a10, 16 # 18e6: a0a031 + l32i a3, sp, 40 /* [(local10)] */ # 18e9: 38a1 + l32i a4, sp, 40 /* [(local10)] */ # 18eb: 48a1 + addx2 a3, a3, a0 # 18ed: 003390 + addi a5, a4, 1 /* [(local10)]+0x1 */ # 18f0: 1b54 + extui a4, a5, 0, 8 # 18f2: 504074 + l16si a3, a3, 0 # 18f5: 329300 + s32i a4, sp, 40 /* a4 -> [(local10)] */ # 18f8: 49a1 + bge a3, a10, .Lbr155 # 18fa: a7a301 + mov a2, a3 # 18fd: 2d03 +.Lbr155: slli a10, a2, 16 # 18ff: 00a211 + bnei a4, 4, .Lbr154 # 1902: 6644e0 + movi a0, g_phyFuns # 1905: 0195ff + l32i a0, a0, 0 /* [g_phyFuns] */ # 1908: 0800 + movi a3, rxiq_compute_num # 190a: 3195ff + l32i a0, a0, 88 /* [[g_phyFuns]+0x58] */ # 190d: 022016 + s16i a2, a3, 88 /* a2 -> [.Ldata002] */ # 1910: 22532c + callx0 a0 /* [[g_phyFuns]+0x58] */ # 1913: c00000 + j .Lbr157 # 1916: 060200 +.Lbr156: movi a3, rxiq_compute_num # 1919: 3192ff + movi a2, -388 /* 0xfffffe7c */ # 191c: 22ae7c + s16i a2, a3, 88 /* 0xfe7c -> [.Ldata002] */ # 191f: 22532c +.Lbr157: movi a8, 0x00200000 # 1922: 8192ff + l32i a7, sp, 0 /* [(local0)] */ # 1925: 7801 + movi a5, rxiq_compute_num # 1927: 5190ff + l32i a6, a7, 0 /* [[(local0)]] */ # 192a: 6807 + l16si a4, a5, 88 /* [.Ldata002] */ # 192c: 42952c + or a6, a6, a8 # 192f: 806620 + s32i a6, a7, 0 /* a6 -> [[(local0)]] */ # 1932: 6907 + s16i a4, a5, 128 /* [.Ldata002] -> [.Ldata015] */ # 1934: 425540 + j .Lbr159 # 1937: 460b00 +.Lbr158: l16si a2, a13, 88 /* [.Ldata002] */ # 193a: 229d2c + callx0 a9 /* [[g_phyFuns]+0x58] */ # 193d: c00900 + memw # 1940: c02000 + movi a9, 0x60009a00 # 1943: 918bff + l32i a13, a9, 52 /* [0x60009a34] */ # 1946: d8d9 + and a13, a13, a15 # 1948: f0dd10 + or a13, a13, a12 # 194b: c0dd20 + memw # 194e: c02000 + s32i a13, a9, 52 /* a13 -> [0x60009a34] */ # 1951: d9d9 + memw # 1953: c02000 + l32i a10, a9, 52 /* [0x60009a34] */ # 1956: a8d9 + movi a11, -2 /* 0xfffffffe */ # 1958: 7ceb + and a10, a10, a11 # 195a: b0aa10 + memw # 195d: c02000 + s32i a10, a9, 52 /* a10 -> [0x60009a34] */ # 1960: a9d9 + memw # 1962: c02000 + l32i a9, a9, 0x160 /* [0x60009b60] */ # 1965: 922958 +.Lbr159: l32i a12, sp, 24 /* [(local6)] */ # 1968: c861 + l32i a13, sp, 28 /* [(local7)] */ # 196a: d871 + l32i a14, sp, 32 /* [(local8)] */ # 196c: e881 + l32i a15, sp, 36 /* [(local9)] */ # 196e: f891 + l32i a0, sp, 20 /* [(local5)] */ # 1970: 0851 + addi sp, sp, 64 /* (local14) */ # 1972: 12c140 + ret # 1975: 0df0 + + .literal_position # 1978: 00000000 + # 197c: 00000000 + # 1980: 0e020000 + # 1984: 00000000 + +# Function @ .irom0.text+0x1988 +# Local variables/stack: +# (local0): word @ -0x8 +# (local1): word @ -0x4 + .balign 4 + .global target_power_backoff + .type target_power_backoff, @function +target_power_backoff: + addi sp, sp, -16 /* (FP)-0x10 */ # 1988: 12c1f0 + s32i a12, sp, 12 /* a12 -> [(local1)] */ # 198b: c931 + mov a3, sp /* (FP)-0x10 */ # 198d: 3d01 + mov a12, a2 /* arg0 */ # 198f: cd02 + movi a2, rxiq_compute_num # 1991: 21f9ff + s32i a0, sp, 8 /* a0 -> [(local0)] */ # 1994: 0921 + l8ui a2, a2, 90 /* [.Ldata003] */ # 1996: 22025a + call0 tx_atten_set_interp # 1999: 050000 + movi a0, rxiq_compute_num # 199c: 01f8ff + movi a2, 0 /* 0x00000000 */ # 199f: 0c02 + mov a5, sp /* (FP)-0x10 */ # 19a1: 5d01 +.Lbr160: addi a6, a2, 1 # 19a3: 1b62 + add a4, a2, a5 # 19a5: 5a42 + l8ui a3, a4, 0 # 19a7: 320400 + extui a2, a6, 0, 8 # 19aa: 602074 + add a3, a3, a12 # 19ad: ca33 + s8i a3, a4, 0 # 19af: 324400 + bnei a2, 6, .Lbr160 # 19b2: 6662ed + movi a2, .Label020 # 19b5: 21f2ff + movi a3, 13 /* 0x0000000d */ # 19b8: 0cd3 + mov a4, sp /* (FP)-0x10 */ # 19ba: 4d01 + l8ui a6, a0, 91 /* [.Ldata004] */ # 19bc: 62005b + l8ui a5, a0, 122 /* [.Ldata014] */ # 19bf: 52007a + slli a6, a6, 24 # 19c2: 806601 + srai a6, a6, 24 # 19c5: 606831 + call0 ram_set_txbb_atten # 19c8: 01efffc0 + # 19cc: 0000 + l32i a12, sp, 12 /* [(local1)] */ # 19ce: c831 + l32i a0, sp, 8 /* [(local0)] */ # 19d0: 0821 + addi sp, sp, 16 /* (top of frame) */ # 19d2: 12c110 + ret # 19d5: 0df0 + + .literal_position # 19d8: cc000000 + # 19dc: 009a0060 + # 19e0: 00000000 + # 19e4: 00000000 + # 19e8: 00000000 + +# Function @ .irom0.text+0x19ec +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word[4] @ -0x10 + .balign 4 + .global sdt_on_noise_start + .type sdt_on_noise_start, @function +sdt_on_noise_start: + mov a7, a2 /* arg0 */ # 19ec: 7d02 + addi sp, sp, -32 /* (local0) */ # 19ee: 12c1e0 + s32i a3, sp, 0 /* arg1 -> [(local0)] */ # 19f1: 3901 + movi a2, .Label021 # 19f3: 21f9ff + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 19f6: 0911 + s32i a12, sp, 8 /* a12 -> [(local2)] */ # 19f8: c921 + s32i a13, sp, 12 /* a13 -> [(local3)] */ # 19fa: d931 + mov a12, a5 /* arg3 */ # 19fc: cd05 + mov a13, a4 /* arg2 */ # 19fe: dd04 + s32i a7, sp, 16 /* arg0 -> [(local4)] */ # 1a00: 7941 + call0 ets_printf # 1a02: 01f8ffc0 + # 1a06: 0000 + l32i a0, sp, 16 /* [(local4)] */ # 1a08: 0841 +.Lbr161: memw # 1a0a: c02000 + l32i a2, a13, 0 /* [arg2] */ # 1a0d: 280d + bne a2, a12, .Lbr161 # 1a0f: c792f7 + mov a2, a0 /* [(local4)] */ # 1a12: 2d00 + call0 ets_delay_us # 1a14: 01f5ffc0 + # 1a18: 0000 + l32i a0, sp, 0 /* [(local0)] */ # 1a1a: 0801 + movi a4, 5 /* 0x00000005 */ # 1a1c: 0c54 + movi a2, 0x60009a00 # 1a1e: 21efff + memw # 1a21: c02000 + l32i a3, a2, 0x160 /* [0x60009b60] */ # 1a24: 322258 + srli a3, a3, 15 # 1a27: 303f41 + and a3, a3, a4 # 1a2a: 403310 + bnei a3, 5, .Lbr162 # 1a2d: 665313 + movi a5, -3 /* 0xfffffffd */ # 1a30: 7cd5 + memw # 1a32: c02000 + l32i a4, a2, 0x160 /* [0x60009b60] */ # 1a35: 422258 + and a4, a4, a5 # 1a38: 504410 + memw # 1a3b: c02000 + s32i a4, a2, 0x160 /* a4 -> [0x60009b60] */ # 1a3e: 426258 + j .Lbr163 # 1a41: 460100 +.Lbr162: memw # 1a44: c02000 + l32i a6, a2, 0x160 /* [0x60009b60] */ # 1a47: 622258 +.Lbr163: movi a7, g_phyFuns # 1a4a: 71e5ff + l32i a7, a7, 0 /* [g_phyFuns] */ # 1a4d: 7807 + l32i a7, a7, 100 /* [[g_phyFuns]+0x64] */ # 1a4f: 722719 + extui a2, a0, 0, 8 # 1a52: 002074 + callx0 a7 /* [[g_phyFuns]+0x64] */ # 1a55: c00700 + l32i a12, sp, 8 /* [(local2)] */ # 1a58: c821 + l32i a13, sp, 12 /* [(local3)] */ # 1a5a: d831 + l32i a0, sp, 4 /* [(local1)] */ # 1a5c: 0811 + addi sp, sp, 32 /* (top of frame) */ # 1a5e: 12c120 + ret # 1a61: 0df0 + + .literal_position # 1a64: 00000000 + # 1a68: 7a010000 + # 1a6c: 7a010000 + # 1a70: ff03fcff + # 1a74: 009a0060 + # 1a78: 7a010000 + # 1a7c: 00000000 + # 1a80: 00000000 + # 1a84: 00000000 + # 1a88: 00000000 + # 1a8c: 00000000 + # 1a90: 00000000 + +# Function @ .irom0.text+0x1a94 +# Local variables/stack: +# (local0): byte @ -0x20 +# (local1): byte @ -0x1f +# (local2): byte[2] @ -0x1e +# (local3): word @ -0x1c +# (local4): word @ -0x18 +# (local5): word @ -0x14 +# (local6): word @ -0x10 +# (local7): word[3] @ -0xc + .balign 4 + .global chip_v6_set_chan_rx_cmp + .type chip_v6_set_chan_rx_cmp, @function +chip_v6_set_chan_rx_cmp: + movi a4, 0 /* 0x00000000 */ # 1a94: 0c04 + addi sp, sp, -32 /* (local0) */ # 1a96: 12c1e0 + s32i a14, sp, 20 /* a14 -> [(local7)] */ # 1a99: e951 + s32i a13, sp, 16 /* a13 -> [(local6)] */ # 1a9b: d941 + s32i a0, sp, 8 /* a0 -> [(local4)] */ # 1a9d: 0921 + s32i a12, sp, 12 /* a12 -> [(local5)] */ # 1a9f: c931 + movi a0, .Label008 # 1aa1: 01f1ff + mov a12, a2 /* arg0 */ # 1aa4: cd02 + mov a13, a3 /* arg1 */ # 1aa6: dd03 + movi a2, 2 /* 0x00000002 */ # 1aa8: 0c22 + movi a3, .Ldata100 # 1aaa: 31eeff + l8ui a14, a0, 125 /* [.Ldata026] */ # 1aad: e2007d + add a4, a4, a3 /* .Ldata100 */ # 1ab0: 3a44 + slli a14, a14, 24 # 1ab2: 80ee01 + add a2, a2, a3 /* .Ldata101 */ # 1ab5: 3a22 + l16ui a4, a4, 0 /* [.Ldata100] */ # 1ab7: 421400 + s16i a4, sp, 0 /* [.Ldata100] -> [(local0)] */ # 1aba: 425100 + l8ui a2, a2, 0 /* [.Ldata101] */ # 1abd: 220200 + srai a14, a14, 24 # 1ac0: e0e831 + s8i a2, sp, 2 /* [.Ldata101] -> [(local2)] */ # 1ac3: 224102 + movi a2, 13 /* 0x0000000d */ # 1ac6: 0cd2 + bgei a12, 7, .Lbr164 # 1ac8: e67c23 + movi a3, 5 /* 0x00000005 */ # 1acb: 0c53 + mov a4, a0 /* .Label008 */ # 1acd: 4d00 + l8ui a4, a4, 124 /* [.Ldata025] */ # 1acf: 42047c + addi a2, a12, -1 /* arg0-0x1 */ # 1ad2: 0b2c + slli a4, a4, 24 # 1ad4: 804401 + srai a4, a4, 24 # 1ad7: 404831 + s32i a4, sp, 4 /* a4 -> [(local3)] */ # 1ada: 4911 + sub a4, a14, a4 # 1adc: 404ec0 + mull a2, a2, a4 # 1adf: 402282 + call0 __divsi3 # 1ae2: 01e6ffc0 + # 1ae6: 0000 + l32i a14, sp, 4 /* [(local3)] */ # 1ae8: e811 + add a14, a14, a2 # 1aea: 2aee + j .Lbr167 # 1aec: 460800 +.Lbr164: l8ui a3, a0, 126 /* [.Ldata027] */ # 1aef: 32007e + slli a3, a3, 24 # 1af2: 803301 + srai a3, a3, 24 # 1af5: 303831 + sub a3, a3, a14 # 1af8: e033c0 + bge a2, a12, .Lbr165 # 1afb: c7a202 + j .Lbr177 # 1afe: 464200 +.Lbr165: addi a2, a12, -6 /* arg0-0x6 */ # 1b01: 22ccfa + mull a2, a3, a2 # 1b04: 202382 + movi a3, 5 /* 0x00000005 */ # 1b07: 0c53 + call0 __divsi3 # 1b09: 01ddffc0 + # 1b0d: 0000 +.Lbr166: add a14, a14, a2 # 1b0f: 2aee +.Lbr167: bnei a13, 1, .Lbr168 # 1b11: 661d0a + movi a13, -6 /* 0xfffffffa */ # 1b14: 7cad + s8i a13, sp, 0 /* 0xfa -> [(local0)] */ # 1b16: d24100 + s8i a13, sp, 2 /* 0xfa -> [(local2)] */ # 1b19: d24102 + j .Lbr171 # 1b1c: c60800 +.Lbr168: addi a3, a13, -2 /* arg1-0x2 */ # 1b1f: 32cdfe + bnez a3, .Lbr175 # 1b22: 56930b + movi a0, .Label008 # 1b25: 01d1ff + l8ui a3, a0, 127 /* [.Ldata028] */ # 1b28: 32007f + s8i a3, sp, 0 /* [.Ldata028] -> [(local0)] */ # 1b2b: 324100 + l8ui a2, a0, 128 /* [.Ldata029] */ # 1b2e: 220080 + s8i a2, sp, 1 /* [.Ldata029] -> [(local1)] */ # 1b31: 224101 + l8ui a0, a0, 129 /* [.Ldata030] */ # 1b34: 020081 +.Lbr169: s8i a0, sp, 2 /* a0 -> [(local2)] */ # 1b37: 024102 +.Lbr170: l8ui a13, sp, 1 /* [(local1)] */ # 1b3a: d20101 + slli a13, a13, 24 # 1b3d: 80dd01 + srai a13, a13, 24 # 1b40: d0d831 +.Lbr171: bgei a12, 7, .Lbr172 # 1b43: e67c2c + l8ui a3, sp, 0 /* [(local0)] */ # 1b46: 320100 + addi a2, a12, -1 /* arg0-0x1 */ # 1b49: 0b2c + slli a3, a3, 24 # 1b4b: 803301 + srai a3, a3, 24 # 1b4e: 303831 + slli a3, a3, 24 # 1b51: 803301 + srai a3, a3, 24 # 1b54: 303831 + sub a3, a13, a3 # 1b57: 303dc0 + mull a2, a2, a3 # 1b5a: 302282 + movi a3, 5 /* 0x00000005 */ # 1b5d: 0c53 + call0 __divsi3 # 1b5f: 01c9ffc0 + # 1b63: 0000 + l8ui a0, sp, 0 /* [(local0)] */ # 1b65: 020100 + slli a0, a0, 24 # 1b68: 800001 + srai a0, a0, 24 # 1b6b: 000831 + add a0, a0, a2 # 1b6e: 2a00 + j .Lbr174 # 1b70: 060800 +.Lbr172: l8ui a0, sp, 2 /* [(local2)] */ # 1b73: 020102 + movi a2, 13 /* 0x0000000d */ # 1b76: 0cd2 + slli a0, a0, 24 # 1b78: 800001 + srai a0, a0, 24 # 1b7b: 000831 + sub a0, a0, a13 # 1b7e: d000c0 + blt a2, a12, .Lbr176 # 1b81: c72275 + movi a3, 5 /* 0x00000005 */ # 1b84: 0c53 + addi a2, a12, -6 /* arg0-0x6 */ # 1b86: 22ccfa + mull a2, a0, a2 # 1b89: 202082 + call0 __divsi3 # 1b8c: 01bfffc0 + # 1b90: 0000 +.Lbr173: add a0, a2, a13 # 1b92: da02 +.Lbr174: movi a10, 0xfffc03ff # 1b94: a1b7ff + add a9, a14, a0 # 1b97: 0a9e + movi a4, 0x60009a00 # 1b99: 41b6ff + extui a9, a9, 0, 8 # 1b9c: 909074 + slli a9, a9, 10 # 1b9f: 609911 + memw # 1ba2: c02000 + l32i a8, a4, 0x368 /* [0x60009d68] */ # 1ba5: 8224da + and a8, a8, a10 # 1ba8: a08810 + or a8, a8, a9 # 1bab: 908820 + memw # 1bae: c02000 + s32i a8, a4, 0x368 /* a8 -> [0x60009d68] */ # 1bb1: 8264da + movi a7, 1 /* 0x00000001 */ # 1bb4: 0c17 + memw # 1bb6: c02000 + l32i a6, a4, 52 /* [0x60009a34] */ # 1bb9: 68d4 + or a6, a6, a7 # 1bbb: 706620 + memw # 1bbe: c02000 + s32i a6, a4, 52 /* a6 -> [0x60009a34] */ # 1bc1: 69d4 + movi a5, -2 /* 0xfffffffe */ # 1bc3: 7ce5 + memw # 1bc5: c02000 + l32i a3, a4, 52 /* [0x60009a34] */ # 1bc8: 38d4 + and a3, a3, a5 # 1bca: 503310 + memw # 1bcd: c02000 + s32i a3, a4, 52 /* a3 -> [0x60009a34] */ # 1bd0: 39d4 + l32i a12, sp, 12 /* [(local5)] */ # 1bd2: c831 + l32i a13, sp, 16 /* [(local6)] */ # 1bd4: d841 + l32i a14, sp, 20 /* [(local7)] */ # 1bd6: e851 + l32i a0, sp, 8 /* [(local4)] */ # 1bd8: 0821 + addi sp, sp, 32 /* (top of frame) */ # 1bda: 12c120 + ret # 1bdd: 0df0 +.Lbr175: addi a10, a13, -3 /* arg1-0x3 */ # 1bdf: a2cdfd + bnez a10, .Lbr170 # 1be2: 564af5 + movi a0, .Label008 # 1be5: 01a4ff + l8ui a3, a0, 130 /* [.Ldata031] */ # 1be8: 320082 + s8i a3, sp, 0 /* [.Ldata031] -> [(local0)] */ # 1beb: 324100 + l8ui a2, a0, 131 /* [.Ldata032] */ # 1bee: 220083 + s8i a2, sp, 1 /* [.Ldata032] -> [(local1)] */ # 1bf1: 224101 + l8ui a0, a0, 132 /* [.Ldata033] */ # 1bf4: 020084 + j .Lbr169 # 1bf7: 06cfff +.Lbr176: movi a3, 5 /* 0x00000005 */ # 1bfa: 0c53 + addi a2, a12, -2 /* arg0-0x2 */ # 1bfc: 22ccfe + mull a2, a0, a2 # 1bff: 202082 + call0 __divsi3 # 1c02: 01a2ffc0 + # 1c06: 0000 + j .Lbr173 # 1c08: 86e1ff +.Lbr177: addi a2, a12, -2 /* arg0-0x2 */ # 1c0b: 22ccfe + mull a2, a3, a2 # 1c0e: 202382 + movi a3, 5 /* 0x00000005 */ # 1c11: 0c53 + call0 __divsi3 # 1c13: 019fffc0 + # 1c17: 0000 + j .Lbr166 # 1c19: 86bcff + + .literal_position # 1c1c: 00000000 + # 1c20: 00000000 + # 1c24: 000af23f + # 1c28: 00000000 + # 1c2c: 00000000 + # 1c30: 00000000 + # 1c34: 00000000 + # 1c38: 00000000 + # 1c3c: 00000000 + +# Function @ .irom0.text+0x1c40 +# Local variables/stack: +# (local0): word @ -0x8 +# (local1): word @ -0x4 + .balign 4 + .global chip_v6_set_chan_misc + .type chip_v6_set_chan_misc, @function +chip_v6_set_chan_misc: + addi sp, sp, -16 /* (FP)-0x10 */ # 1c40: 12c1f0 + s32i a0, sp, 12 /* a0 -> [(local1)] */ # 1c43: 0931 + movi a0, rxiq_compute_num # 1c45: 01f5ff + l32i a0, a0, 12 /* [chip6_sleep_params] */ # 1c48: 0830 + s32i a2, sp, 8 /* arg0 -> [(local0)] */ # 1c4a: 2921 + bbci a0, 18, .Lbr178 # 1c4c: 277012 + movi a3, rxiq_compute_num # 1c4f: 31f4ff + addx2 a2, a2, a2 # 1c52: 202290 + addi a3, a3, 41 /* .Label002 */ # 1c55: 32c329 + add a2, a2, a3 # 1c58: 3a22 + call0 set_txcap_reg # 1c5a: 01f5ffc0 + # 1c5e: 0000 + l32i a2, sp, 8 /* [(local0)] */ # 1c60: 2821 +.Lbr178: movi a4, 0x3ff20a00 # 1c62: 41f0ff + memw # 1c65: c02000 + l32i a4, a4, 0x270 /* [0x3ff20c70] */ # 1c68: 42249c + bbci a4, 1, .Lbr179 # 1c6b: 17642e + extui a2, a2, 0, 8 # 1c6e: 202074 + mov a3, sp /* (FP)-0x10 */ # 1c71: 3d01 + call0 tx_atten_set_interp # 1c73: 050000 + call0 dpd_scale_set # 1c76: 01efffc0 + # 1c7a: 0000 + movi a2, 0 /* 0x00000000 */ # 1c7c: 0c02 + call0 chip_v6_rxmax_ext # 1c7e: 01eeffc0 + # 1c82: 0000 + movi a0, g_phyFuns # 1c84: 01e9ff + l32i a0, a0, 0 /* [g_phyFuns] */ # 1c87: 0800 + movi a2, rxiq_compute_num # 1c89: 21e8ff + l32i a0, a0, 88 /* [[g_phyFuns]+0x58] */ # 1c8c: 022016 + l16si a2, a2, 88 /* [.Ldata002] */ # 1c8f: 22922c + callx0 a0 /* [[g_phyFuns]+0x58] */ # 1c92: c00000 + movi a2, 30 /* 0x0000001e */ # 1c95: 1ce2 + call0 ets_delay_us # 1c97: 01e9ffc0 + # 1c9b: 0000 +.Lbr179: l32i a0, sp, 12 /* [(local1)] */ # 1c9d: 0831 + addi sp, sp, 16 /* (top of frame) */ # 1c9f: 12c110 + ret # 1ca2: 0df0 + + .literal_position # 1ca4: 86010000 + # 1ca8: 04000000 + # 1cac: 04000000 + # 1cb0: c05d0000 + # 1cb4: 00000000 + # 1cb8: c05d0000 + # 1cbc: 00000000 + # 1cc0: 04000000 + # 1cc4: 04000000 + # 1cc8: 00002440 + # 1ccc: 99994940 + # 1cd0: 9a999999 + # 1cd4: 9999e940 + # 1cd8: 9a999999 + # 1cdc: 00960060 + # 1ce0: ffff0f00 + # 1ce4: 000000c0 + # 1ce8: 00000000 + # 1cec: 00000000 + # 1cf0: 00000000 + # 1cf4: 00000000 + # 1cf8: 00000000 + # 1cfc: 00000000 + # 1d00: 00000000 + # 1d04: 00000000 + # 1d08: 00000000 + # 1d0c: 00000000 + # 1d10: 00000000 + # 1d14: 00000000 + # 1d18: 00000000 + # 1d1c: 00000000 + # 1d20: 00000000 + # 1d24: 00000000 + # 1d28: 00000000 + # 1d2c: 00000000 + # 1d30: 00000000 + # 1d34: 00000000 + # 1d38: 00000000 + # 1d3c: 00000000 + # 1d40: 00000000 + # 1d44: 00000000 + # 1d48: 00000000 + # 1d4c: 00000000 + # 1d50: 00000000 + # 1d54: 00000000 + # 1d58: 00000000 + # 1d5c: 00000000 + # 1d60: 00000000 + # 1d64: 00000000 + # 1d68: 00000000 + # 1d6c: 00000000 + # 1d70: 00000000 + # 1d74: 00000000 + # 1d78: 00000000 + # 1d7c: 00000000 + # 1d80: 00000000 + # 1d84: 00000000 + # 1d88: 00000000 + # 1d8c: 00000000 + # 1d90: 00000000 + # 1d94: 00000000 + +# Function @ .irom0.text+0x1d98 +# Local variables/stack: +# (local0): word @ -0x50 +# (local1): word @ -0x4c +# (local2): word @ -0x48 +# (local3): word @ -0x44 +# (local4): word @ -0x40 +# (local5): word @ -0x3c +# (local6): word @ -0x38 +# (local7): word @ -0x34 +# (local8): word @ -0x30 +# (local9): word @ -0x2c +# (local10): word @ -0x28 +# (local11): word @ -0x24 +# (local12): word @ -0x20 +# (local13): word @ -0x1c +# (local14): word @ -0x18 +# (local15): word @ -0x14 +# (local16): word @ -0x10 +# (local17): word @ -0xc +# (local18): word @ -0x8 +# (local19): word @ -0x4 + .balign 4 + .global phy_dig_spur_set + .type phy_dig_spur_set, @function +phy_dig_spur_set: + addi sp, sp, -80 /* (local0) */ # 1d98: 12c1b0 + s32i a14, sp, 52 /* a14 -> [(local13)] */ # 1d9b: e9d1 + s32i a15, sp, 56 /* a15 -> [(local14)] */ # 1d9d: f9e1 + s32i a2, sp, 28 /* arg0 -> [(local7)] */ # 1d9f: 2971 + s32i a13, sp, 48 /* a13 -> [(local12)] */ # 1da1: d9c1 + s32i a12, sp, 44 /* a12 -> [(local11)] */ # 1da3: c9b1 + movi a12, .Label009 # 1da5: c1bfff + s32i a0, sp, 40 /* a0 -> [(local10)] */ # 1da8: 09a1 + l8ui a0, a12, 95 /* [.Ldata023] */ # 1daa: 020c5f + mov a13, a3 /* arg1 */ # 1dad: dd03 + bnez a0, .Lbr180 # 1daf: cc30 + movi a14, 40 /* 0x00000028 */ # 1db1: 2c8e + j .Lbr182 # 1db3: 460400 +.Lbr180: bnei a0, 1, .Lbr181 # 1db6: 661004 + movi a14, 26 /* 0x0000001a */ # 1db9: 1cae + j .Lbr182 # 1dbb: 460200 +.Lbr181: addi a3, a0, -2 /* [.Ldata023]-0x2 */ # 1dbe: 32c0fe + movi a2, 24 /* 0x00000018 */ # 1dc1: 1c82 + movi a14, 40 /* 0x00000028 */ # 1dc3: 2c8e + moveqz a14, a2, a3 # 1dc5: 30e283 +.Lbr182: mov a2, a13 /* arg1 */ # 1dc8: 2d0d + mov a3, a14 # 1dca: 3d0e + call0 __modsi3 # 1dcc: 01c7ffc0 + # 1dd0: 0000 + bgei a2, 10, .Lbr184 # 1dd2: e6921a + mov a2, a13 /* arg1 */ # 1dd5: 2d0d + mov a3, a14 # 1dd7: 3d0e + call0 __divsi3 # 1dd9: 01c4ffc0 + # 1ddd: 0000 + mull a0, a14, a2 # 1ddf: 200e82 + sub a0, a0, a13 # 1de2: d000c0 + addx4 a0, a0, a0 # 1de5: 0000a0 +.Lbr183: slli a2, a0, 1 # 1de8: f02011 + s32i a2, sp, 24 /* a2 -> [(local6)] */ # 1deb: 2961 + j .Lbr186 # 1ded: 460800 +.Lbr184: sub a4, a14, a2 # 1df0: 204ec0 + bgei a4, 10, .Lbr185 # 1df3: e69417 + mov a2, a13 /* arg1 */ # 1df6: 2d0d + mov a3, a14 # 1df8: 3d0e + call0 __divsi3 # 1dfa: 01bdffc0 + # 1dfe: 0000 + addi a0, a2, 1 # 1e00: 1b02 + mull a0, a14, a0 # 1e02: 000e82 + sub a0, a0, a13 # 1e05: d000c0 + addx4 a0, a0, a0 # 1e08: 0000a0 + j .Lbr183 # 1e0b: 46f6ff +.Lbr185: movi a2, 0 /* 0x00000000 */ # 1e0e: 0c02 + s32i a2, sp, 24 /* 0x00000000 -> [(local6)] */ # 1e10: 2961 +.Lbr186: l8ui a3, a12, 123 /* [.Ldata035] */ # 1e12: 320c7b + l8ui a2, a12, 158 /* [.Ldata048] */ # 1e15: 220c9e + beqz a3, .Lbr189 # 1e18: 164308 + s32i a3, sp, 20 /* [.Ldata035] -> [(local5)] */ # 1e1b: 3951 + l8ui a15, a12, 122 /* [.Ldata034] */ # 1e1d: f20c7a + slli a2, a2, 8 # 1e20: 802211 + add a15, a15, a2 # 1e23: 2aff + beqz a15, .Lbr189 # 1e25: 167f07 + mov a2, a3 /* [.Ldata035] */ # 1e28: 2d03 + movi a14, -10 /* 0xfffffff6 */ # 1e2a: 7c6e + mull a14, a14, a13 # 1e2c: d0ee82 + mul16u a2, a2, a13 # 1e2f: d022c1 + addx4 a3, a3, a3 # 1e32: 3033a0 + slli a3, a3, 1 # 1e35: f03311 + s32i a2, sp, 64 /* a2 -> [(local16)] */ # 1e38: 226110 + s32i a3, sp, 72 /* a3 -> [(local18)] */ # 1e3b: 326112 + mov a3, a15 # 1e3e: 3d0f + call0 __modsi3 # 1e40: 01adffc0 + # 1e44: 0000 + l32i a0, sp, 72 /* [(local18)] */ # 1e46: 022112 + l32i a4, sp, 64 /* [(local16)] */ # 1e49: 422110 + blt a2, a0, .Lbr187 # 1e4c: 072202 + j .Lbr199 # 1e4f: c65400 +.Lbr187: mov a2, a4 /* [(local16)] */ # 1e52: 2d04 + mov a3, a15 # 1e54: 3d0f + call0 __divsi3 # 1e56: 01a8ffc0 + # 1e5a: 0000 + call0 __floatsisf # 1e5c: 01a8ffc0 + # 1e60: 0000 + s32i a2, sp, 8 /* a2 -> [(local2)] */ # 1e62: 2921 + mov a2, a15 # 1e64: 2d0f + call0 __floatsisf # 1e66: 01a6ffc0 + # 1e6a: 0000 + mov a15, a2 # 1e6c: fd02 + l32i a2, sp, 20 /* [(local5)] */ # 1e6e: 2851 + call0 __floatunsisf # 1e70: 01a5ffc0 + # 1e74: 0000 + mov a3, a2 # 1e76: 3d02 + mov a2, a15 # 1e78: 2d0f + call0 __divsf3 # 1e7a: 01a3ffc0 + # 1e7e: 0000 + mov a3, a2 # 1e80: 3d02 + l32i a2, sp, 8 /* [(local2)] */ # 1e82: 2821 + call0 __mulsf3 # 1e84: 01a2ffc0 + # 1e88: 0000 + movi a15, .Ldata102 # 1e8a: f187ff + l32i a3, a15, 0 /* [.Ldata102] */ # 1e8d: 380f + call0 __mulsf3 # 1e8f: 01a0ffc0 + # 1e93: 0000 + call0 __fixsfsi # 1e95: 019fffc0 + # 1e99: 0000 +.Lbr188: add a15, a14, a2 # 1e9b: 2afe + j .Lbr190 # 1e9d: 860100 +.Lbr189: movi a15, 0 /* 0x00000000 */ # 1ea0: 0c0f + movi a14, -10 /* 0xfffffff6 */ # 1ea2: 7c6e + mull a14, a14, a13 # 1ea4: d0ee82 +.Lbr190: l8ui a0, a12, 154 /* [.Ldata046] */ # 1ea7: 020c9a + s32i a15, sp, 76 /* a15 -> [(local19)] */ # 1eaa: f26113 + beqz a0, .Lbr193 # 1ead: 161008 + s32i a0, sp, 16 /* [.Ldata046] -> [(local4)] */ # 1eb0: 0941 + l8ui a2, a12, 159 /* [.Ldata049] */ # 1eb2: 220c9f + l8ui a15, a12, 153 /* [.Ldata045] */ # 1eb5: f20c99 + slli a2, a2, 8 # 1eb8: 802211 + add a15, a15, a2 # 1ebb: 2aff + beqz a15, .Lbr193 # 1ebd: 161f07 + mov a3, a15 # 1ec0: 3d0f + mul16u a2, a0, a13 # 1ec2: d020c1 + s32i a2, sp, 68 /* a2 -> [(local17)] */ # 1ec5: 226111 + addx4 a13, a0, a0 # 1ec8: 00d0a0 + slli a13, a13, 1 # 1ecb: f0dd11 + call0 __modsi3 # 1ece: 0192ffc0 + # 1ed2: 0000 + l32i a0, sp, 68 /* [(local17)] */ # 1ed4: 022111 + blt a2, a13, .Lbr191 # 1ed7: d72202 + j .Lbr201 # 1eda: 464800 +.Lbr191: mov a3, a15 # 1edd: 3d0f + mov a2, a0 /* [(local17)] */ # 1edf: 2d00 + call0 __divsi3 # 1ee1: 018effc0 + # 1ee5: 0000 + call0 __floatsisf # 1ee7: 018effc0 + # 1eeb: 0000 + s32i a2, sp, 12 /* a2 -> [(local3)] */ # 1eed: 2931 + l32i a13, sp, 16 /* [(local4)] */ # 1eef: d841 + mov a2, a15 # 1ef1: 2d0f + call0 __floatsisf # 1ef3: 018cffc0 + # 1ef7: 0000 + mov a15, a2 # 1ef9: fd02 + mov a2, a13 /* [(local4)] */ # 1efb: 2d0d + call0 __floatunsisf # 1efd: 018affc0 + # 1f01: 0000 + mov a3, a2 # 1f03: 3d02 + l32i a13, sp, 12 /* [(local3)] */ # 1f05: d831 + mov a2, a15 # 1f07: 2d0f + call0 __divsf3 # 1f09: 0188ffc0 + # 1f0d: 0000 + mov a3, a2 # 1f0f: 3d02 + mov a2, a13 /* [(local3)] */ # 1f11: 2d0d + call0 __mulsf3 # 1f13: 0187ffc0 + # 1f17: 0000 + movi a3, .Ldata102 # 1f19: 3164ff + l32i a3, a3, 0 /* [.Ldata102] */ # 1f1c: 3803 + call0 __mulsf3 # 1f1e: 0185ffc0 + # 1f22: 0000 + call0 __fixsfsi # 1f24: 0185ffc0 + # 1f28: 0000 +.Lbr192: l32i a15, sp, 76 /* [(local19)] */ # 1f2a: f22113 + add a3, a14, a2 # 1f2d: 2a3e + j .Lbr194 # 1f2f: 060100 +.Lbr193: l32i a15, sp, 76 /* [(local19)] */ # 1f32: f22113 + movi a3, 0 /* 0x00000000 */ # 1f35: 0c03 +.Lbr194: s32i a3, sp, 60 /* a3 -> [(local15)] */ # 1f37: 39f1 + movi a2, 0x00005dc0 # 1f39: 215dff + l16ui a13, a12, 160 /* [.Ldata050] */ # 1f3c: d21c50 + movi a0, g_phyFuns # 1f3f: 015dff + add a13, a14, a13 # 1f42: dade + l32i a0, a0, 0 /* [g_phyFuns] */ # 1f44: 0800 + add a13, a13, a2 # 1f46: 2add + l32i a0, a0, 0 /* [[g_phyFuns]] */ # 1f48: 0800 + mov a2, a13 # 1f4a: 2d0d + callx0 a0 /* [[g_phyFuns]] */ # 1f4c: c00000 + movi a0, 0x00005dc0 # 1f4f: 015aff + movi a4, g_phyFuns # 1f52: 415aff + movi a3, 0 /* 0x00000000 */ # 1f55: 0c03 + movi a5, 100 /* 0x00000064 */ # 1f57: 52a064 + blt a2, a5, .Lbr195 # 1f5a: 572201 + mov a13, a3 /* 0x00000000 */ # 1f5d: dd03 +.Lbr195: l16ui a3, a12, 162 /* [.Ldata051] */ # 1f5f: 321c51 + l32i a2, a4, 0 /* [g_phyFuns] */ # 1f62: 2804 + add a14, a14, a3 # 1f64: 3aee + add a14, a14, a0 # 1f66: 0aee + l32i a0, a2, 0 /* [[g_phyFuns]] */ # 1f68: 0802 + mov a2, a14 # 1f6a: 2d0e + callx0 a0 /* [[g_phyFuns]] */ # 1f6c: c00000 + l32i a3, sp, 60 /* [(local15)] */ # 1f6f: 38f1 + l32i a0, sp, 28 /* [(local7)] */ # 1f71: 0871 + l16ui a4, a12, 124 /* [.Ldata036] */ # 1f73: 421c3e + addi a0, a0, -1 /* [(local7)]-0x1 */ # 1f76: 0b00 + ssr a0 # 1f78: 000040 + sra a4, a4 # 1f7b: 4040b1 + bbci a4, 0, .Lbr196 # 1f7e: 076402 + bnez a15, .Lbr205 # 1f81: 56af15 +.Lbr196: l16ui a4, a12, 156 /* [.Ldata047] */ # 1f84: 421c4e + ssr a0 # 1f87: 000040 + sra a4, a4 # 1f8a: 4040b1 + bbci a4, 0, .Lbr197 # 1f8d: 076402 + bnez a3, .Lbr208 # 1f90: 56d315 +.Lbr197: bnez a13, .Lbr203 # 1f93: 56fd0b + movi a5, 100 /* 0x00000064 */ # 1f96: 52a064 + blt a2, a5, .Lbr198 # 1f99: 572201 + movi a14, 0 /* 0x00000000 */ # 1f9c: 0c0e +.Lbr198: l32i a12, sp, 24 /* [(local6)] */ # 1f9e: c861 + movnez a12, a14, a14 # 1fa0: e0ce93 + j .Lbr204 # 1fa3: 462c00 +.Lbr199: sub a6, a15, a2 # 1fa6: 206fc0 + blt a6, a0, .Lbr200 # 1fa9: 072602 + j .Lbr206 # 1fac: 064d00 +.Lbr200: mov a2, a4 /* [(local16)] */ # 1faf: 2d04 + mov a3, a15 # 1fb1: 3d0f + call0 __divsi3 # 1fb3: 0162ffc0 + # 1fb7: 0000 + addi a2, a2, 1 # 1fb9: 1b22 + call0 __floatsisf # 1fbb: 0161ffc0 + # 1fbf: 0000 + s32i a2, sp, 0 /* a2 -> [(local0)] */ # 1fc1: 2901 + mov a2, a15 # 1fc3: 2d0f + call0 __floatsisf # 1fc5: 015fffc0 + # 1fc9: 0000 + s32i a2, sp, 4 /* a2 -> [(local1)] */ # 1fcb: 2911 + l32i a2, sp, 20 /* [(local5)] */ # 1fcd: 2851 + call0 __floatunsisf # 1fcf: 015effc0 + # 1fd3: 0000 + mov a3, a2 # 1fd5: 3d02 + l32i a15, sp, 0 /* [(local0)] */ # 1fd7: f801 + l32i a2, sp, 4 /* [(local1)] */ # 1fd9: 2811 + call0 __divsf3 # 1fdb: 015cffc0 + # 1fdf: 0000 + mov a3, a2 # 1fe1: 3d02 + mov a2, a15 /* [(local0)] */ # 1fe3: 2d0f + call0 __mulsf3 # 1fe5: 015affc0 + # 1fe9: 0000 + movi a3, .Ldata102 # 1feb: 3135ff + l32i a3, a3, 0 /* [.Ldata102] */ # 1fee: 3803 + call0 __mulsf3 # 1ff0: 0159ffc0 + # 1ff4: 0000 + call0 __fixsfsi # 1ff6: 0158ffc0 + # 1ffa: 0000 + j .Lbr188 # 1ffc: c6a6ff +.Lbr201: sub a4, a15, a2 # 1fff: 204fc0 + blt a4, a13, .Lbr202 # 2002: d72402 + j .Lbr207 # 2005: 063800 +.Lbr202: mov a3, a15 # 2008: 3d0f + mov a2, a0 /* [(local17)] */ # 200a: 2d00 + call0 __divsi3 # 200c: 0154ffc0 + # 2010: 0000 + addi a2, a2, 1 # 2012: 1b22 + call0 __floatsisf # 2014: 0153ffc0 + # 2018: 0000 + mov a13, a2 # 201a: dd02 + mov a2, a15 # 201c: 2d0f + call0 __floatsisf # 201e: 0151ffc0 + # 2022: 0000 + mov a15, a2 # 2024: fd02 + l32i a2, sp, 16 /* [(local4)] */ # 2026: 2841 + call0 __floatunsisf # 2028: 0150ffc0 + # 202c: 0000 + mov a3, a2 # 202e: 3d02 + mov a2, a15 # 2030: 2d0f + call0 __divsf3 # 2032: 014effc0 + # 2036: 0000 + mov a3, a2 # 2038: 3d02 + mov a2, a13 # 203a: 2d0d + call0 __mulsf3 # 203c: 014dffc0 + # 2040: 0000 + movi a3, .Ldata102 # 2042: 3120ff + l32i a3, a3, 0 /* [.Ldata102] */ # 2045: 3803 + call0 __mulsf3 # 2047: 014bffc0 + # 204b: 0000 + call0 __fixsfsi # 204d: 014affc0 + # 2051: 0000 + j .Lbr192 # 2053: c6b4ff +.Lbr203: mov a12, a13 # 2056: cd0d +.Lbr204: movi a14, 0x40240000 # 2058: e11cff + movi a13, 0 /* 0x00000000 */ # 205b: 0c0d + mov a2, a12 # 205d: 2d0c + call0 __floatsidf # 205f: 0147ffc0 + # 2063: 0000 + s32i a2, sp, 36 /* a2 -> [(local9)] */ # 2065: 2991 + s32i a3, sp, 32 /* a3 -> [(local8)] */ # 2067: 3981 + movi a5, 0x40499999 # 2069: 5118ff + movi a4, 0x9999999a # 206c: 4119ff + call0 __muldf3 # 206f: 0144ffc0 + # 2073: 0000 + mov a5, a14 /* 0x40240000 */ # 2075: 5d0e + mov a4, a13 /* 0x00000000 */ # 2077: 4d0d + call0 __divdf3 # 2079: 0142ffc0 + # 207d: 0000 + call0 __fixdfsi # 207f: 0142ffc0 + # 2083: 0000 + l32i a3, sp, 32 /* [(local8)] */ # 2085: 3881 + movi a5, 0x40e99999 # 2087: 5113ff + mov a15, a2 # 208a: fd02 + movi a4, 0x9999999a # 208c: 4113ff + l32i a2, sp, 36 /* [(local9)] */ # 208f: 2891 + call0 __muldf3 # 2091: 013effc0 + # 2095: 0000 + mov a4, a13 /* 0x00000000 */ # 2097: 4d0d + mov a5, a14 /* 0x40240000 */ # 2099: 5d0e + call0 __divdf3 # 209b: 013dffc0 + # 209f: 0000 + movi a13, 0x60009600 # 20a1: d10eff + call0 __fixdfsi # 20a4: 013cffc0 + # 20a8: 0000 + movi a7, 0xc0000000 # 20aa: 710eff + movi a5, 0x000fffff # 20ad: 510cff + extui a6, a15, 0, 10 # 20b0: f06094 + and a5, a2, a5 # 20b3: 505210 + slli a6, a6, 20 # 20b6: c06601 + mov a2, a12 # 20b9: 2d0c + memw # 20bb: c02000 + l32i a4, a13, 0x2a0 /* [0x600098a0] */ # 20be: 422da8 + and a4, a4, a7 # 20c1: 704410 + or a4, a4, a6 # 20c4: 604420 + or a4, a4, a5 # 20c7: 504420 + memw # 20ca: c02000 + l32i a12, sp, 44 /* [(local11)] */ # 20cd: c8b1 + l32i a14, sp, 52 /* [(local13)] */ # 20cf: e8d1 + s32i a4, a13, 0x2a0 /* a4 -> [0x600098a0] */ # 20d1: 426da8 + l32i a15, sp, 56 /* [(local14)] */ # 20d4: f8e1 + l32i a13, sp, 48 /* [(local12)] */ # 20d6: d8c1 + l32i a0, sp, 40 /* [(local10)] */ # 20d8: 08a1 + addi sp, sp, 80 /* (top of frame) */ # 20da: 12c150 + ret # 20dd: 0df0 +.Lbr205: mov a12, a15 /* [(local19)] */ # 20df: cd0f + j .Lbr204 # 20e1: c6dcff +.Lbr206: movi a15, 0 /* 0x00000000 */ # 20e4: 0c0f + j .Lbr190 # 20e6: 466fff +.Lbr207: l32i a15, sp, 76 /* [(local19)] */ # 20e9: f22113 + movi a3, 0 /* 0x00000000 */ # 20ec: 0c03 + j .Lbr194 # 20ee: 4691ff +.Lbr208: mov a12, a3 /* [(local15)] */ # 20f1: cd03 + j .Lbr204 # 20f3: 46d8ff + + .literal_position # 20f8: 00960060 + # 20fc: 009a0060 + # 2100: 00000000 + # 2104: 00000000 + # 2108: 00000000 + # 210c: 00000000 + # 2110: 00000000 + # 2114: 00000000 + +# Function @ .irom0.text+0x2118 +# Local variables/stack: +# (local0): byte @ -0x10 +# (local1): byte[3] @ -0xf +# (local2): word @ -0xc +# (local3): word[2] @ -0x8 + .balign 4 + .global phy_dig_spur_prot + .type phy_dig_spur_prot, @function +phy_dig_spur_prot: + addi sp, sp, -16 /* (local0) */ # 2118: 12c1f0 + s32i a12, sp, 8 /* a12 -> [(local3)] */ # 211b: c921 + s32i a0, sp, 4 /* a0 -> [(local2)] */ # 211d: 0911 + bnez a2, .Lbr209 # 211f: cc52 + movi a0, 0 /* 0x00000000 */ # 2121: 0c00 + movi a12, 0 /* 0x00000000 */ # 2123: 0c0c + j .Lbr213 # 2125: 861200 +.Lbr209: bgei a2, 1, .Lbr210 # 2128: e61202 + j .Lbr240 # 212b: c67200 +.Lbr210: movi a3, 100 /* 0x00000064 */ # 212e: 32a064 + slli a12, a2, 5 # 2131: b0c211 + mov a2, a12 # 2134: 2d0c + call0 __divsi3 # 2136: 01f2ffc0 + # 213a: 0000 + mov a0, a2 # 213c: 0d02 + movi a3, 10 /* 0x0000000a */ # 213e: 0ca3 + mov a2, a12 # 2140: 2d0c + slli a12, a0, 24 # 2142: 80c001 + srai a12, a12, 24 # 2145: c0c831 + call0 __divsi3 # 2148: 01efffc0 + # 214c: 0000 + movi a3, 10 /* 0x0000000a */ # 214e: 0ca3 + call0 __modsi3 # 2150: 01eeffc0 + # 2154: 0000 + blti a2, 2, .Lbr211 # 2156: a62202 + j .Lbr241 # 2159: 067500 +.Lbr211: movi a0, 1 /* 0x00000001 */ # 215c: 0c10 + j .Lbr213 # 215e: 460400 +.Lbr212: l8ui a12, sp, 1 /* [(local1)] */ # 2161: c20101 + l8ui a0, sp, 0 /* [(local0)] */ # 2164: 020100 + slli a12, a12, 24 # 2167: 80cc01 + slli a0, a0, 24 # 216a: 800001 + srai a0, a0, 24 # 216d: 000831 + srai a12, a12, 24 # 2170: c0c831 +.Lbr213: bgei a12, 1, .Lbr214 # 2173: e61c05 + srai a4, a0, 1 # 2176: 004121 + j .Lbr215 # 2179: c60100 +.Lbr214: addi a2, a12, -1 # 217c: 0b2c + ssl a2 # 217e: 001240 + sll a4, a0 # 2181: 0040a1 +.Lbr215: movi a2, 0x60009600 # 2184: 21ddff + memw # 2187: c02000 + s32i a4, a2, 0x2d4 /* a4 -> [0x600098d4] */ # 218a: 4262b5 + addi a6, a12, 30 # 218d: 62cc1e + movi a5, 0 /* 0x00000000 */ # 2190: 0c05 + ssl a6 # 2192: 001640 + sll a3, a0 # 2195: 0030a1 + movgez a3, a5, a12 # 2198: c035b3 + memw # 219b: c02000 + s32i a3, a2, 0x29c /* a3 -> [0x6000989c] */ # 219e: 3262a7 + bgei a12, 1, .Lbr216 # 21a1: e61c05 + srai a4, a0, 1 # 21a4: 004121 + j .Lbr217 # 21a7: c60100 +.Lbr216: addi a7, a12, -1 # 21aa: 0b7c + ssl a7 # 21ac: 001740 + sll a4, a0 # 21af: 0040a1 +.Lbr217: memw # 21b2: c02000 + movi a6, 0 /* 0x00000000 */ # 21b5: 0c06 + s32i a4, a2, 0x3b0 /* a4 -> [0x600099b0] */ # 21b7: 4262ec + addi a10, a12, 30 # 21ba: a2cc1e + movi a9, 0 /* 0x00000000 */ # 21bd: 0c09 + ssl a10 # 21bf: 001a40 + sll a8, a0 # 21c2: 0080a1 + movgez a8, a9, a12 # 21c5: c089b3 + memw # 21c8: c02000 + s32i a8, a2, 0x284 /* a8 -> [0x60009884] */ # 21cb: 8262a1 + beqi a0, 1, .Lbr219 # 21ce: 261014 + bnei a0, 2, .Lbr218 # 21d1: 662004 + movi a5, 8 /* 0x00000008 */ # 21d4: 0c85 + j .Lbr220 # 21d6: 860300 +.Lbr218: addi a3, a0, -3 # 21d9: 32c0fd + movi a11, 10 /* 0x0000000a */ # 21dc: 0cab + mov a5, a6 /* 0x00000000 */ # 21de: 5d06 + moveqz a5, a11, a3 # 21e0: 305b83 + j .Lbr220 # 21e3: 460000 +.Lbr219: movi a5, 2 /* 0x00000002 */ # 21e6: 0c25 +.Lbr220: blti a12, 16, .Lbr221 # 21e8: a6bc0d + movi a4, -32 /* 0xffffffe0 */ # 21eb: 6c04 + addx2 a4, a12, a4 # 21ed: 404c90 + ssl a4 # 21f0: 001440 + sll a4, a5 # 21f3: 0045a1 + j .Lbr222 # 21f6: 460000 +.Lbr221: movi a4, 0 /* 0x00000000 */ # 21f9: 0c04 +.Lbr222: memw # 21fb: c02000 + s32i a4, a2, 0x28c /* a4 -> [0x6000988c] */ # 21fe: 4262a3 + movi a11, -16 /* 0xfffffff0 */ # 2201: 7c0b + blti a12, 1, .Lbr223 # 2203: a61c10 + bgei a12, 16, .Lbr223 # 2206: e6bc0d + movi a7, -2 /* 0xfffffffe */ # 2209: 7ce7 + addx2 a7, a12, a7 # 220b: 707c90 + ssl a7 # 220e: 001740 + sll a7, a5 # 2211: 0075a1 + j .Lbr224 # 2214: c60100 +.Lbr223: movi a8, 0 /* 0x00000000 */ # 2217: 0c08 + srai a7, a5, 2 # 2219: 507221 + movnez a7, a8, a12 # 221c: c07893 +.Lbr224: memw # 221f: c02000 + movi a10, -31 /* 0xffffffe1 */ # 2222: 6c1a + s32i a7, a2, 0x288 /* a7 -> [0x60009888] */ # 2224: 7262a2 + movi a8, 0x60009a00 # 2227: 81b5ff + bge a11, a12, .Lbr225 # 222a: c7ab10 + bgez a12, .Lbr225 # 222d: d6dc00 + movi a9, 30 /* 0x0000001e */ # 2230: 1ce9 + addx2 a9, a12, a9 # 2232: 909c90 + ssl a9 # 2235: 001940 + sll a7, a5 # 2238: 0075a1 + j .Lbr226 # 223b: 460000 +.Lbr225: movi a7, 0 /* 0x00000000 */ # 223e: 0c07 +.Lbr226: movi a9, -15 /* 0xfffffff1 */ # 2240: 7c19 + memw # 2242: c02000 + s32i a7, a8, 0x30c /* a7 -> [0x60009d0c] */ # 2245: 7268c3 + bge a10, a12, .Lbr227 # 2248: c7aa10 + bge a12, a9, .Lbr227 # 224b: 97ac0d + movi a3, 60 /* 0x0000003c */ # 224e: 3cc3 + addx2 a3, a12, a3 # 2250: 303c90 + ssl a3 # 2253: 001340 + sll a4, a5 # 2256: 0045a1 + j .Lbr228 # 2259: 460000 +.Lbr227: movi a4, 0 /* 0x00000000 */ # 225c: 0c04 +.Lbr228: memw # 225e: c02000 + s32i a4, a8, 0x308 /* a4 -> [0x60009d08] */ # 2261: 4268c2 + beqi a0, 1, .Lbr230 # 2264: 261014 + bnei a0, 2, .Lbr229 # 2267: 662004 + movi a0, 4 /* 0x00000004 */ # 226a: 0c40 + j .Lbr231 # 226c: 860300 +.Lbr229: addi a5, a0, -3 # 226f: 52c0fd + movi a4, 5 /* 0x00000005 */ # 2272: 0c54 + moveqz a6, a4, a5 # 2274: 506483 + mov a0, a6 # 2277: 0d06 + j .Lbr231 # 2279: 460000 +.Lbr230: movi a0, 1 /* 0x00000001 */ # 227c: 0c10 +.Lbr231: blti a12, 16, .Lbr232 # 227e: a6bc0d + movi a6, -32 /* 0xffffffe0 */ # 2281: 6c06 + addx2 a6, a12, a6 # 2283: 606c90 + ssl a6 # 2286: 001640 + sll a4, a0 # 2289: 0040a1 + j .Lbr233 # 228c: 460000 +.Lbr232: movi a4, 0 /* 0x00000000 */ # 228f: 0c04 +.Lbr233: memw # 2291: c02000 + s32i a4, a2, 0x3bc /* a4 -> [0x600099bc] */ # 2294: 4262ef + blti a12, 1, .Lbr234 # 2297: a61c10 + bgei a12, 16, .Lbr234 # 229a: e6bc0d + movi a7, -2 /* 0xfffffffe */ # 229d: 7ce7 + addx2 a7, a12, a7 # 229f: 707c90 + ssl a7 # 22a2: 001740 + sll a5, a0 # 22a5: 0050a1 + j .Lbr235 # 22a8: c60100 +.Lbr234: movi a8, 0 /* 0x00000000 */ # 22ab: 0c08 + srai a5, a0, 2 # 22ad: 005221 + movnez a5, a8, a12 # 22b0: c05893 +.Lbr235: memw # 22b3: c02000 + s32i a5, a2, 0x3b8 /* a5 -> [0x600099b8] */ # 22b6: 5262ee + bge a11, a12, .Lbr236 # 22b9: c7ab10 + bgez a12, .Lbr236 # 22bc: d6dc00 + movi a11, 30 /* 0x0000001e */ # 22bf: 1ceb + addx2 a11, a12, a11 # 22c1: b0bc90 + ssl a11 # 22c4: 001b40 + sll a5, a0 # 22c7: 0050a1 + j .Lbr237 # 22ca: 460000 +.Lbr236: movi a5, 0 /* 0x00000000 */ # 22cd: 0c05 +.Lbr237: memw # 22cf: c02000 + s32i a5, a2, 0x3ac /* a5 -> [0x600099ac] */ # 22d2: 5262eb + bge a10, a12, .Lbr238 # 22d5: c7aa10 + bge a12, a9, .Lbr238 # 22d8: 97ac0d + movi a3, 60 /* 0x0000003c */ # 22db: 3cc3 + addx2 a3, a12, a3 # 22dd: 303c90 + ssl a3 # 22e0: 001340 + sll a0, a0 # 22e3: 0000a1 + j .Lbr239 # 22e6: 460000 +.Lbr238: movi a0, 0 /* 0x00000000 */ # 22e9: 0c00 +.Lbr239: memw # 22eb: c02000 + l32i a12, sp, 8 /* [(local3)] */ # 22ee: c821 + s32i a0, a2, 0x3a8 /* a0 -> [0x600099a8] */ # 22f0: 0262ea + l32i a0, sp, 4 /* [(local2)] */ # 22f3: 0811 + addi sp, sp, 16 /* (top of frame) */ # 22f5: 12c110 + ret /* 0x60009600 */ # 22f8: 0df0 +.Lbr240: bgez a2, .Lbr212 # 22fa: d632e6 + movi a3, 100 /* 0x00000064 */ # 22fd: 32a064 + slli a12, a2, 5 # 2300: b0c211 + mov a2, a12 # 2303: 2d0c + call0 __divsi3 # 2305: 0181ffc0 + # 2309: 0000 + mov a0, a2 # 230b: 0d02 + movi a3, 10 /* 0x0000000a */ # 230d: 0ca3 + mov a2, a12 # 230f: 2d0c + addi a12, a0, -1 # 2311: 0bc0 + slli a12, a12, 24 # 2313: 80cc01 + srai a12, a12, 24 # 2316: c0c831 + call0 __divsi3 # 2319: 017dffc0 + # 231d: 0000 + movi a3, 10 /* 0x0000000a */ # 231f: 0ca3 + call0 __modsi3 # 2321: 017cffc0 + # 2325: 0000 + movi a3, -8 /* 0xfffffff8 */ # 2327: 7c83 + bge a2, a3, .Lbr243 # 2329: 37a211 + movi a0, 1 /* 0x00000001 */ # 232c: 0c10 + j .Lbr213 # 232e: 4690ff +.Lbr241: movi a0, 3 /* 0x00000003 */ # 2331: 0c30 + bgei a2, 8, .Lbr242 # 2333: e68202 + j .Lbr213 # 2336: 468eff +.Lbr242: movi a0, 2 /* 0x00000002 */ # 2339: 0c20 + j .Lbr213 # 233b: 068dff +.Lbr243: movi a0, 3 /* 0x00000003 */ # 233e: 0c30 + movi a4, -2 /* 0xfffffffe */ # 2340: 7ce4 + bge a2, a4, .Lbr244 # 2342: 47a202 + j .Lbr213 # 2345: 868aff +.Lbr244: movi a0, 2 /* 0x00000002 */ # 2348: 0c20 + j .Lbr213 # 234a: 4689ff + + .literal_position # 2350: 00020060 + # 2354: 00000000 + +# Function @ .irom0.text+0x2358 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global chip_v6_rxmax_ext_dig + .type chip_v6_rxmax_ext_dig, @function +chip_v6_rxmax_ext_dig: + addi sp, sp, -16 /* (local0) */ # 2358: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 235b: 0901 + movi a0, 0x60000200 # 235d: 01fcff + bnez a2, .Lbr245 # 2360: dc22 + movi a4, 16 /* 0x00000010 */ # 2362: 1c04 + memw # 2364: c02000 + l32i a3, a0, 0x390 /* [0x60000590] */ # 2367: 3220e4 + or a3, a3, a4 # 236a: 403320 + memw # 236d: c02000 + s32i a3, a0, 0x390 /* a3 -> [0x60000590] */ # 2370: 3260e4 + j .Lbr246 # 2373: 060400 +.Lbr245: movi a6, -17 /* 0xffffffef */ # 2376: 6cf6 + memw # 2378: c02000 + l32i a5, a0, 0x390 /* [0x60000590] */ # 237b: 5220e4 + and a5, a5, a6 # 237e: 605510 + memw # 2381: c02000 + s32i a5, a0, 0x390 /* a5 -> [0x60000590] */ # 2384: 5260e4 +.Lbr246: movi a4, rxiq_compute_num # 2387: 41f3ff + slli a3, a2, 24 # 238a: 803201 + l8ui a2, a4, 90 /* [.Ldata003] */ # 238d: 22045a + srai a3, a3, 24 # 2390: 303831 + slli a2, a2, 24 # 2393: 802201 + srai a2, a2, 24 # 2396: 202831 + call0 chip_v6_set_chan_rx_cmp # 2399: 050000 + l32i a0, sp, 0 /* [(local0)] */ # 239c: 0801 + addi sp, sp, 16 /* (top of frame) */ # 239e: 12c110 + ret # 23a1: 0df0 + + .literal_position # 23a4: 00000000 + +# Function @ .irom0.text+0x23a8 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global chip_v6_rxmax_ext + .type chip_v6_rxmax_ext, @function +chip_v6_rxmax_ext: + addi sp, sp, -16 /* (local0) */ # 23a8: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 23ab: c911 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 23ad: 0901 + mov a12, a2 /* arg0 */ # 23af: cd02 + call0 chip_v6_rxmax_ext_ana # 23b1: 01fcffc0 + # 23b5: 0000 + mov a2, a12 /* arg0 */ # 23b7: 2d0c + call0 chip_v6_rxmax_ext_dig # 23b9: 050000 + l32i a12, sp, 4 /* [(local1)] */ # 23bc: c811 + l32i a0, sp, 0 /* [(local0)] */ # 23be: 0801 + addi sp, sp, 16 /* (top of frame) */ # 23c0: 12c110 + ret # 23c3: 0df0 + + .literal_position # 23c8: 00140000 + # 23cc: 00000010 + # 23d0: 00000000 + # 23d4: 000af23f + # 23d8: 00960060 + # 23dc: 009a0060 + # 23e0: ffff7f80 + # 23e4: 81bc1409 + # 23e8: 9841c65a + # 23ec: ffffff7f + # 23f0: ffff00fc + # 23f4: 00009001 + # 23f8: fffffffb + # 23fc: ffffff00 + # 2400: 00000018 + # 2404: ffffff80 + # 2408: 000000c0 + # 240c: ff0ff0ff + # 2410: 00200200 + # 2414: 00f0ffff + # 2418: a60f0000 + # 241c: 0000c0ff + # 2420: 54583800 + # 2424: 00ff0ff0 + # 2428: e600200b + # 242c: 3ff0ffdf + # 2430: 400c0020 + # 2434: ffff80ff + # 2438: 00001300 + # 243c: 3ff0ffff + # 2440: 800d0000 + # 2444: 000000fc + # 2448: 2401fe03 + # 244c: ffffff0f + # 2450: 000000b0 + # 2454: 00000004 + # 2458: ffff0bff + # 245c: 00002400 + # 2460: ffffbfff + # 2464: 00000000 + # 2468: 00020060 + # 246c: 00feef3f + # 2470: ff0f0000 + # 2474: 83008000 + # 2478: 009a0060 + # 247c: fff7ffff + # 2480: 00000000 + # 2484: 80020000 + # 2488: 30000000 + # 248c: e7010000 + # 2490: 80020000 + # 2494: 00000000 + # 2498: 00000000 + # 249c: 0c000000 + +# Function @ .irom0.text+0x24a0 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word @ -0x10 +# (local5): word @ -0xc +# (local6): word[2] @ -0x8 + .balign 4 + .global phy_bb_rx_cfg + .type phy_bb_rx_cfg, @function +phy_bb_rx_cfg: + movi a6, 0x00001400 # 24a0: 61caff + movi a11, 0x10000000 # 24a3: b1caff + movi a4, .Ldata001 # 24a6: 41caff + movi a5, 0x3ff20a00 # 24a9: 51caff + addi sp, sp, -32 /* (local0) */ # 24ac: 12c1e0 + s32i a12, sp, 20 /* a12 -> [(local5)] */ # 24af: c951 + s32i a0, sp, 16 /* a0 -> [(local4)] */ # 24b1: 0941 + s32i a13, sp, 24 /* a13 -> [(local6)] */ # 24b3: d961 + movi a8, -128 /* 0xffffff80 */ # 24b5: 82af80 + movi a2, 0x60009a00 # 24b8: 21c9ff + movi a13, 0x60009600 # 24bb: d1c7ff + memw # 24be: c02000 + l32i a3, a2, 0x160 /* [0x60009b60] */ # 24c1: 322258 + or a3, a3, a6 # 24c4: 603320 + memw # 24c7: c02000 + s32i a3, a2, 0x160 /* a3 -> [0x60009b60] */ # 24ca: 326258 + memw # 24cd: c02000 + l32i a0, a2, 0x10c /* [0x60009b0c] */ # 24d0: 022243 + or a0, a0, a11 # 24d3: b00020 + memw # 24d6: c02000 + s32i a0, a2, 0x10c /* a0 -> [0x60009b0c] */ # 24d9: 026243 + movi a12, 0x807fffff # 24dc: c1c1ff + memw # 24df: c02000 + l32i a10, a2, 0x340 /* [0x60009d40] */ # 24e2: a222d0 + and a10, a10, a12 # 24e5: c0aa10 + or a10, a10, a11 # 24e8: b0aa20 + memw # 24eb: c02000 + s32i a10, a2, 0x340 /* a10 -> [0x60009d40] */ # 24ee: a262d0 + movi a9, 0x0914bc81 # 24f1: 91bcff + memw # 24f4: c02000 + s32i a9, a2, 0x16c /* 0x0914bc81 -> [0x60009b6c] */ # 24f7: 92625b + movi a7, 0x5ac64198 # 24fa: 71bbff + memw # 24fd: c02000 + s32i a7, a2, 0x168 /* 0x5ac64198 -> [0x60009b68] */ # 2500: 72625a + movi a6, 0x7fffffff # 2503: 61baff + memw # 2506: c02000 + l32i a3, a2, 0x150 /* [0x60009b50] */ # 2509: 322254 + and a3, a3, a6 # 250c: 603310 + memw # 250f: c02000 + s32i a3, a2, 0x150 /* a3 -> [0x60009b50] */ # 2512: 326254 + memw # 2515: c02000 + movi a12, 400 /* 0x00000190 */ # 2518: c2a190 + l32i a0, a2, 0x318 /* [0x60009d18] */ # 251b: 0222c6 + memw # 251e: c02000 + s32i a12, a2, 0x318 /* 0x00000190 -> [0x60009d18] */ # 2521: c262c6 + movi a11, 0xfc00ffff # 2524: b1b3ff + movi a10, 0x01900000 # 2527: a1b3ff + memw # 252a: c02000 + l32i a9, a13, 0x2ec /* [0x600098ec] */ # 252d: 922dbb + and a9, a9, a11 # 2530: b09910 + or a9, a9, a10 # 2533: a09920 + memw # 2536: c02000 + s32i a9, a13, 0x2ec /* a9 -> [0x600098ec] */ # 2539: 926dbb + movi a7, 0xfbffffff # 253c: 71afff + memw # 253f: c02000 + l32i a6, a13, 0x388 /* [0x60009988] */ # 2542: 622de2 + and a6, a6, a7 # 2545: 706610 + memw # 2548: c02000 + s32i a6, a13, 0x388 /* a6 -> [0x60009988] */ # 254b: 626de2 + l8ui a4, a4, 0 /* [.Ldata001] */ # 254e: 420400 + addi a4, a4, -15 /* [.Ldata001]-0xf */ # 2551: 42c4f1 + memw # 2554: c02000 + l32i a3, a2, 0x148 /* [0x60009b48] */ # 2557: 322252 + and a3, a3, a8 # 255a: 803310 + or a3, a3, a4 # 255d: 403320 + memw # 2560: c02000 + s32i a3, a2, 0x148 /* a3 -> [0x60009b48] */ # 2563: 326252 + movi a0, 0x00ffffff # 2566: 01a5ff + movi a12, 0x18000000 # 2569: c1a5ff + memw # 256c: c02000 + l32i a11, a2, 0x128 /* [0x60009b28] */ # 256f: b2224a + and a11, a11, a0 # 2572: 00bb10 + or a11, a11, a12 # 2575: c0bb20 + memw # 2578: c02000 + s32i a11, a2, 0x128 /* a11 -> [0x60009b28] */ # 257b: b2624a + movi a10, 0x80ffffff # 257e: a1a1ff + memw # 2581: c02000 + l32i a9, a2, 52 /* [0x60009a34] */ # 2584: 98d2 + and a9, a9, a10 # 2586: a09910 + memw # 2589: c02000 + s32i a9, a2, 52 /* a9 -> [0x60009a34] */ # 258c: 99d2 + movi a7, 38 /* 0x00000026 */ # 258e: 2c67 + memw # 2590: c02000 + l32i a6, a2, 0x144 /* [0x60009b44] */ # 2593: 622251 + and a6, a6, a8 # 2596: 806610 + or a6, a6, a7 # 2599: 706620 + memw # 259c: c02000 + s32i a6, a2, 0x144 /* a6 -> [0x60009b44] */ # 259f: 626251 + movi a4, -64 /* 0xffffffc0 */ # 25a2: 42afc0 + movi a3, 17 /* 0x00000011 */ # 25a5: 1c13 + memw # 25a7: c02000 + l32i a0, a2, 0x370 /* [0x60009d70] */ # 25aa: 0222dc + and a0, a0, a4 # 25ad: 400010 + or a0, a0, a3 # 25b0: 300020 + memw # 25b3: c02000 + s32i a0, a2, 0x370 /* a0 -> [0x60009d70] */ # 25b6: 0262dc + movi a12, 0xc0000000 # 25b9: c193ff + memw # 25bc: c02000 + l32i a11, a13, 0x2a0 /* [0x600098a0] */ # 25bf: b22da8 + or a11, a11, a12 # 25c2: c0bb20 + memw # 25c5: c02000 + s32i a11, a13, 0x2a0 /* a11 -> [0x600098a0] */ # 25c8: b26da8 + movi a10, 0xfff00fff # 25cb: a190ff + movi a9, 0x00022000 # 25ce: 9190ff + memw # 25d1: c02000 + l32i a8, a2, 0x164 /* [0x60009b64] */ # 25d4: 822259 + and a8, a8, a10 # 25d7: a08810 + or a8, a8, a9 # 25da: 908820 + memw # 25dd: c02000 + s32i a8, a2, 0x164 /* a8 -> [0x60009b64] */ # 25e0: 826259 + movi a7, 0xfffff000 # 25e3: 718cff + movi a6, 0x00000fa6 # 25e6: 618cff + memw # 25e9: c02000 + l32i a4, a2, 0x164 /* [0x60009b64] */ # 25ec: 422259 + and a4, a4, a7 # 25ef: 704410 + or a4, a4, a6 # 25f2: 604420 + memw # 25f5: c02000 + s32i a4, a2, 0x164 /* a4 -> [0x60009b64] */ # 25f8: 426259 + movi a3, 0xffc00000 # 25fb: 3188ff + movi a0, 0x00385854 # 25fe: 0188ff + memw # 2601: c02000 + l32i a12, a2, 0x15c /* [0x60009b5c] */ # 2604: c22257 + and a12, a12, a3 # 2607: 30cc10 + or a12, a12, a0 # 260a: 00cc20 + memw # 260d: c02000 + s32i a12, a2, 0x15c /* a12 -> [0x60009b5c] */ # 2610: c26257 + movi a11, 0xf00fff00 # 2613: b184ff + movi a10, 0x0b2000e6 # 2616: a184ff + memw # 2619: c02000 + l32i a9, a2, 0x150 /* [0x60009b50] */ # 261c: 922254 + and a9, a9, a11 # 261f: b09910 + or a9, a9, a10 # 2622: a09920 + memw # 2625: c02000 + s32i a9, a2, 0x150 /* a9 -> [0x60009b50] */ # 2628: 926254 + memw # 262b: c02000 + movi a7, 128 /* 0x00000080 */ # 262e: 72a080 + l32i a8, a2, 0x318 /* [0x60009d18] */ # 2631: 8222c6 + memw # 2634: c02000 + s32i a7, a2, 0x318 /* 0x00000080 -> [0x60009d18] */ # 2637: 7262c6 + movi a6, 4 /* 0x00000004 */ # 263a: 0c46 + memw # 263c: c02000 + l32i a4, a2, 0x310 /* [0x60009d10] */ # 263f: 4222c4 + or a4, a4, a6 # 2642: 604420 + memw # 2645: c02000 + s32i a4, a2, 0x310 /* a4 -> [0x60009d10] */ # 2648: 4262c4 + movi a3, 0xdffff03f # 264b: 3178ff + movi a0, 0x20000c40 # 264e: 0178ff + memw # 2651: c02000 + l32i a12, a2, 0x370 /* [0x60009d70] */ # 2654: c222dc + and a12, a12, a3 # 2657: 30cc10 + or a12, a12, a0 # 265a: 00cc20 + memw # 265d: c02000 + s32i a12, a2, 0x370 /* a12 -> [0x60009d70] */ # 2660: c262dc + movi a11, 0xff80ffff # 2663: b174ff + movi a10, 0x00130000 # 2666: a174ff + memw # 2669: c02000 + l32i a9, a2, 0x324 /* [0x60009d24] */ # 266c: 9222c9 + and a9, a9, a11 # 266f: b09910 + or a9, a9, a10 # 2672: a09920 + memw # 2675: c02000 + s32i a9, a2, 0x324 /* a9 -> [0x60009d24] */ # 2678: 9262c9 + movi a8, 0xfffff03f # 267b: 8170ff + movi a7, 0x00000d80 # 267e: 7170ff + memw # 2681: c02000 + l32i a6, a2, 0x158 /* [0x60009b58] */ # 2684: 622256 + and a6, a6, a8 # 2687: 806610 + or a6, a6, a7 # 268a: 706620 + memw # 268d: c02000 + s32i a6, a2, 0x158 /* a6 -> [0x60009b58] */ # 2690: 626256 + movi a4, 0xfc000000 # 2693: 416cff + movi a3, 0x03fe0124 # 2696: 316cff + memw # 2699: c02000 + l32i a0, a2, 0x34c /* [0x60009d4c] */ # 269c: 0222d3 + and a0, a0, a4 # 269f: 400010 + or a0, a0, a3 # 26a2: 300020 + memw # 26a5: c02000 + s32i a0, a2, 0x34c /* a0 -> [0x60009d4c] */ # 26a8: 0262d3 + movi a12, 0x0fffffff # 26ab: c168ff + movi a11, 0xb0000000 # 26ae: b168ff + memw # 26b1: c02000 + l32i a10, a2, 0x320 /* [0x60009d20] */ # 26b4: a222c8 + and a10, a10, a12 # 26b7: c0aa10 + or a10, a10, a11 # 26ba: b0aa20 + memw # 26bd: c02000 + s32i a10, a2, 0x320 /* a10 -> [0x60009d20] */ # 26c0: a262c8 + movi a9, 0x04000000 # 26c3: 9164ff + memw # 26c6: c02000 + l32i a8, a13, 0x388 /* [0x60009988] */ # 26c9: 822de2 + or a8, a8, a9 # 26cc: 908820 + memw # 26cf: c02000 + s32i a8, a13, 0x388 /* a8 -> [0x60009988] */ # 26d2: 826de2 + movi a7, 0xff0bffff # 26d5: 7160ff + movi a6, 0x00240000 # 26d8: 6161ff + memw # 26db: c02000 + l32i a4, a5, 0x270 /* [0x3ff20c70] */ # 26de: 42259c + and a4, a4, a7 # 26e1: 704410 + or a4, a4, a6 # 26e4: 604420 + memw # 26e7: c02000 + s32i a4, a5, 0x270 /* a4 -> [0x3ff20c70] */ # 26ea: 42659c + movi a3, 0xffbfffff # 26ed: 315cff + memw # 26f0: c02000 + l32i a0, a2, 0x344 /* [0x60009d44] */ # 26f3: 0222d1 + and a0, a0, a3 # 26f6: 300010 + memw # 26f9: c02000 + s32i a0, a2, 0x344 /* a0 -> [0x60009d44] */ # 26fc: 0262d1 + movi a2, 0 /* 0x00000000 */ # 26ff: 0c02 + call0 chip_v6_rxmax_ext_dig # 2701: 050000 + movi a12, g_phyFuns # 2704: c158ff + l32i a0, a12, 0 /* [g_phyFuns] */ # 2707: 080c + l32i a0, a0, 12 /* [[g_phyFuns]+0xc] */ # 2709: 0830 + movi a2, 0 /* 0x00000000 */ # 270b: 0c02 + callx0 a0 /* [[g_phyFuns]+0xc] */ # 270d: c00000 + movi a11, -49 /* 0xffffffcf */ # 2710: b2afcf + movi a10, 32 /* 0x00000020 */ # 2713: 2c0a + movi a3, 0x60000200 # 2715: 3154ff + movi a6, 0x3feffe00 # 2718: 6155ff + movi a2, 0x00000fff # 271b: 2155ff + memw # 271e: c02000 + l32i a9, a13, 0x238 /* [0x60009838] */ # 2721: 922d8e + and a9, a9, a11 # 2724: b09910 + or a9, a9, a10 # 2727: a09920 + memw # 272a: c02000 + s32i a9, a13, 0x238 /* a9 -> [0x60009838] */ # 272d: 926d8e + memw # 2730: c02000 + movi a10, 0x60009a00 # 2733: a151ff + movi a7, 0x00800083 # 2736: 714fff + l32i a8, a10, 0x248 /* [0x60009c48] */ # 2739: 822a92 + memw # 273c: c02000 + s32i a7, a10, 0x248 /* 0x00800083 -> [0x60009c48] */ # 273f: 726a92 + movi a5, 6 /* 0x00000006 */ # 2742: 0c65 + memw # 2744: c02000 + l32i a4, a10, 0x24c /* [0x60009c4c] */ # 2747: 422a93 + or a4, a4, a5 # 274a: 504420 + memw # 274d: c02000 + s32i a4, a10, 0x24c /* a4 -> [0x60009c4c] */ # 2750: 426a93 + memw # 2753: c02000 + s32i a2, a10, 0x31c /* 0x00000fff -> [0x60009d1c] */ # 2756: 226ac7 + memw # 2759: c02000 + l32i a0, a10, 0x31c /* [0x60009d1c] */ # 275c: 022ac7 + or a0, a0, a2 # 275f: 200020 + memw # 2762: c02000 + s32i a0, a10, 0x31c /* a0 -> [0x60009d1c] */ # 2765: 026ac7 + movi a11, 0xfffff7ff # 2768: b145ff + memw # 276b: c02000 + l32i a9, a10, 40 /* [0x60009a28] */ # 276e: 98aa + and a9, a9, a11 # 2770: b09910 + memw # 2773: c02000 + s32i a9, a10, 40 /* a9 -> [0x60009a28] */ # 2776: 99aa + movi a8, -7 /* 0xfffffff9 */ # 2778: 7c98 + movi a7, 2 /* 0x00000002 */ # 277a: 0c27 + memw # 277c: c02000 + l32i a5, a6, 0x224 /* [0x3ff00024] */ # 277f: 522689 + and a5, a5, a8 # 2782: 805510 + or a5, a5, a7 # 2785: 705520 + memw # 2788: c02000 + s32i a5, a6, 0x224 /* a5 -> [0x3ff00024] */ # 278b: 526689 + movi a4, -2 /* 0xfffffffe */ # 278e: 7ce4 + memw # 2790: c02000 + l32i a2, a3, 0x3c0 /* [0x600005c0] */ # 2793: 2223f0 + and a2, a2, a4 # 2796: 402210 + memw # 2799: c02000 + l32i a0, a12, 0 /* [g_phyFuns] */ # 279c: 080c + l32i a0, a0, 160 /* [[g_phyFuns]+0xa0] */ # 279e: 022028 + s32i a2, a3, 0x3c0 /* a2 -> [0x600005c0] */ # 27a1: 2263f0 + callx0 a0 /* [[g_phyFuns]+0xa0] */ # 27a4: c00000 + movi a2, 1 /* 0x00000001 */ # 27a7: 0c12 + l32i a0, a12, 0 /* [g_phyFuns] */ # 27a9: 080c + movi a3, 1 /* 0x00000001 */ # 27ab: 0c13 + l32i a0, a0, 172 /* [[g_phyFuns]+0xac] */ # 27ad: 02202b + movi a4, 12 /* 0x0000000c */ # 27b0: 0cc4 + callx0 a0 /* [[g_phyFuns]+0xac] */ # 27b2: c00000 + movi a2, 2 /* 0x00000002 */ # 27b5: 0c22 + l32i a0, a12, 0 /* [g_phyFuns] */ # 27b7: 080c + movi a3, 1 /* 0x00000001 */ # 27b9: 0c13 + l32i a0, a0, 172 /* [[g_phyFuns]+0xac] */ # 27bb: 02202b + movi a4, 388 /* 0x00000184 */ # 27be: 42a184 + callx0 a0 /* [[g_phyFuns]+0xac] */ # 27c1: c00000 + movi a2, 3 /* 0x00000003 */ # 27c4: 0c32 + l32i a0, a12, 0 /* [g_phyFuns] */ # 27c6: 080c + movi a3, 2 /* 0x00000002 */ # 27c8: 0c23 + l32i a0, a0, 172 /* [[g_phyFuns]+0xac] */ # 27ca: 02202b + movi a4, 6 /* 0x00000006 */ # 27cd: 0c64 + callx0 a0 /* [[g_phyFuns]+0xac] */ # 27cf: c00000 + l32i a0, a12, 0 /* [g_phyFuns] */ # 27d2: 080c + l32i a0, a0, 188 /* [[g_phyFuns]+0xbc] */ # 27d4: 02202f + callx0 a0 /* [[g_phyFuns]+0xbc] */ # 27d7: c00000 + movi a2, rxiq_compute_num # 27da: 2129ff + l32i a3, a2, 12 /* [chip6_sleep_params] */ # 27dd: 3832 + movi a0, .Ldata097 # 27df: 0129ff + bbsi a3, 27, .Lbr247 # 27e2: b7f317 + movi a3, 127 /* 0x0000007f */ # 27e5: 32a07f + movi a4, rx_gain_swp # 27e8: 4128ff + movi a5, .Label016 # 27eb: 5128ff + movi a6, 16 /* 0x00000010 */ # 27ee: 1c06 + movi a7, 0 /* 0x00000000 */ # 27f0: 0c07 + mov a2, a0 /* .Ldata097 */ # 27f2: 2d00 + call0 gen_rx_gain_table # 27f4: 050000 + movi a0, .Ldata097 # 27f7: 0126ff + movi a2, rxiq_compute_num # 27fa: 2126ff +.Lbr247: movi a8, 0 /* 0x00000000 */ # 27fd: 0c08 + movi a7, .Ldata001 # 27ff: 7126ff + movi a3, chip6_sleep_params # 2802: 3126ff + l32i a4, a2, 0x1cc /* [.Ldata019] */ # 2805: 422273 + movi a2, 1 /* 0x00000001 */ # 2808: 0c12 + addi a5, a3, 124 /* .Label004 */ # 280a: 52c37c + addi a6, a3, 22 /* .bss+0x22 */ # 280d: 62c316 + l8ui a7, a7, 0 /* [.Ldata001] */ # 2810: 720700 + s32i a8, sp, 4 /* 0x00000000 -> [(local1)] */ # 2813: 8911 + s32i a8, sp, 8 /* 0x00000000 -> [(local2)] */ # 2815: 8921 + s32i a8, sp, 12 /* 0x00000000 -> [(local3)] */ # 2817: 8931 + s32i a0, sp, 0 /* .Ldata097 -> [(local0)] */ # 2819: 0901 + addi a7, a7, 1 /* [.Ldata001]+0x1 */ # 281b: 1b77 + extui a7, a7, 0, 8 # 281d: 707074 + call0 set_rx_gain_testchip_50 # 2820: 050000 + movi a2, 119 /* 0x00000077 */ # 2823: 22a077 + movi a3, 0 /* 0x00000000 */ # 2826: 0c03 + movi a4, 18 /* 0x00000012 */ # 2828: 1c24 + movi a5, 7 /* 0x00000007 */ # 282a: 0c75 + l32i a0, a12, 0 /* [g_phyFuns] */ # 282c: 080c + movi a6, 0 /* 0x00000000 */ # 282e: 0c06 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 2830: 022027 + movi a7, 232 /* 0x000000e8 */ # 2833: 72a0e8 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 2836: c00000 + movi a3, 1 /* 0x00000001 */ # 2839: 0c13 + memw # 283b: c02000 + l32i a2, a13, 0x260 /* [0x60009860] */ # 283e: 222d98 + or a2, a2, a3 # 2841: 302220 + memw # 2844: c02000 + s32i a2, a13, 0x260 /* a2 -> [0x60009860] */ # 2847: 226d98 + l32i a12, sp, 20 /* [(local5)] */ # 284a: c851 + l32i a13, sp, 24 /* [(local6)] */ # 284c: d861 + l32i a0, sp, 16 /* [(local4)] */ # 284e: 0841 + addi sp, sp, 32 /* (top of frame) */ # 2850: 12c120 + ret # 2853: 0df0 + + .literal_position # 2858: 00000000 + # 285c: 00000000 + +# Function @ .irom0.text+0x2860 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global uart_wait_idle + .type uart_wait_idle, @function +uart_wait_idle: + addi sp, sp, -16 /* (local0) */ # 2860: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 2863: 0901 + call0 uart_tx_flush # 2865: 01fcffc0 + # 2869: 0000 + movi a2, 100 /* 0x00000064 */ # 286b: 22a064 + call0 ets_delay_us # 286e: 01fbffc0 + # 2872: 0000 + l32i a0, sp, 0 /* [(local0)] */ # 2874: 0801 + addi sp, sp, 16 /* (top of frame) */ # 2876: 12c110 + ret # 2879: 0df0 + + .literal_position # 287c: ffff1ff0 + # 2880: 00008001 + # 2884: 00020060 + # 2888: ffffff1f + # 288c: 000000c0 + # 2890: ff3fe0ff + # 2894: 00401f00 + # 2898: ffff00ff + # 289c: 0000ab00 + # 28a0: ff00ffff + +# Function @ .irom0.text+0x28a4 + .balign 4 + .global phy_pbus_soc_cfg + .type phy_pbus_soc_cfg, @function +phy_pbus_soc_cfg: + movi a11, 0xf01fffff # 28a4: b1f6ff + movi a10, 0x01800000 # 28a7: a1f6ff + movi a3, 0x60000200 # 28aa: 31f6ff + memw # 28ad: c02000 + l32i a2, a3, 0x398 /* [0x60000598] */ # 28b0: 2223e6 + and a2, a2, a11 # 28b3: b02210 + or a2, a2, a10 # 28b6: a02220 + memw # 28b9: c02000 + s32i a2, a3, 0x398 /* a2 -> [0x60000598] */ # 28bc: 2263e6 + memw # 28bf: c02000 + l32i a9, a3, 0x39c /* [0x6000059c] */ # 28c2: 9223e7 + and a9, a9, a11 # 28c5: b09910 + or a9, a9, a10 # 28c8: a09920 + memw # 28cb: c02000 + s32i a9, a3, 0x39c /* a9 -> [0x6000059c] */ # 28ce: 9263e7 + movi a8, 0x1fffffff # 28d1: 81edff + movi a7, 0xc0000000 # 28d4: 71eeff + memw # 28d7: c02000 + l32i a6, a3, 0x394 /* [0x60000594] */ # 28da: 6223e5 + and a6, a6, a8 # 28dd: 806610 + or a6, a6, a7 # 28e0: 706620 + memw # 28e3: c02000 + s32i a6, a3, 0x394 /* a6 -> [0x60000594] */ # 28e6: 6263e5 + movi a5, 0xffe03fff # 28e9: 51e9ff + movi a4, 0x001f4000 # 28ec: 41eaff + memw # 28ef: c02000 + l32i a2, a3, 0x398 /* [0x60000598] */ # 28f2: 2223e6 + and a2, a2, a5 # 28f5: 502210 + or a2, a2, a4 # 28f8: 402220 + memw # 28fb: c02000 + s32i a2, a3, 0x398 /* a2 -> [0x60000598] */ # 28fe: 2263e6 + movi a11, 0xff00ffff # 2901: b1e5ff + movi a10, 0x00ab0000 # 2904: a1e6ff + memw # 2907: c02000 + l32i a9, a3, 0x3a0 /* [0x600005a0] */ # 290a: 9223e8 + and a9, a9, a11 # 290d: b09910 + or a9, a9, a10 # 2910: a09920 + memw # 2913: c02000 + s32i a9, a3, 0x3a0 /* a9 -> [0x600005a0] */ # 2916: 9263e8 + movi a8, 0xffff00ff # 2919: 81e1ff + movi a7, 256 /* 0x00000100 */ # 291c: 72a100 + memw # 291f: c02000 + l32i a6, a3, 0x3c8 /* [0x600005c8] */ # 2922: 6223f2 + and a6, a6, a8 # 2925: 806610 + or a6, a6, a7 # 2928: 706620 + memw # 292b: c02000 + s32i a6, a3, 0x3c8 /* a6 -> [0x600005c8] */ # 292e: 6263f2 + movi a5, -128 /* 0xffffff80 */ # 2931: 52af80 + movi a4, 71 /* 0x00000047 */ # 2934: 4c74 + memw # 2936: c02000 + l32i a2, a3, 0x398 /* [0x60000598] */ # 2939: 2223e6 + and a2, a2, a5 # 293c: 502210 + or a2, a2, a4 # 293f: 402220 + memw # 2942: c02000 + s32i a2, a3, 0x398 /* a2 -> [0x60000598] */ # 2945: 2263e6 + ret # 2948: 0df0 + + .literal_position # 294c: 9b010000 + # 2950: 00060060 + # 2954: 00060060 + # 2958: 00060060 + # 295c: 9b010000 + # 2960: 00020060 + # 2964: 9b010000 + # 2968: 000a0060 + # 296c: ff0fffff + # 2970: 00100000 + # 2974: 00200000 + # 2978: 00000e01 + # 297c: 00000d01 + # 2980: 0000de03 + # 2984: 0000ed03 + # 2988: 00000000 + # 298c: 00000000 + # 2990: 00000000 + # 2994: 00000000 + # 2998: 00000000 + # 299c: 00000000 + # 29a0: 00000000 + # 29a4: 00000000 + # 29a8: 00000000 + +# Function @ .irom0.text+0x29ac +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global phy_gpio_cfg + .type phy_gpio_cfg, @function +phy_gpio_cfg: + addi sp, sp, -16 /* (local0) */ # 29ac: 12c1f0 + movi a4, .Label012 # 29af: 41e7ff + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 29b2: 0901 + l8ui a2, a4, 130 /* [.Ldata043] */ # 29b4: 220482 + movi a0, 0x60000600 # 29b7: 01e6ff + bnei a2, 2, .Lbr248 # 29ba: 662217 + movi a5, 105 /* 0x00000069 */ # 29bd: 52a069 + movi a6, -108 /* 0xffffff94 */ # 29c0: 62af94 + memw # 29c3: c02000 + l32i a3, a0, 0x1a0 /* [0x600007a0] */ # 29c6: 322068 + and a3, a3, a6 # 29c9: 603310 + or a3, a3, a5 # 29cc: 503320 + memw # 29cf: c02000 + s32i a3, a0, 0x1a0 /* a3 -> [0x600007a0] */ # 29d2: 326068 +.Lbr248: l8ui a3, a4, 131 /* [.Ldata044] */ # 29d5: 320483 + beqi a3, 1, .Lbr249 # 29d8: 261302 + bnei a3, 3, .Lbr250 # 29db: 66332a +.Lbr249: movi a10, 1 /* 0x00000001 */ # 29de: 0c1a + movi a11, -68 /* 0xffffffbc */ # 29e0: b2afbc + memw # 29e3: c02000 + l32i a9, a0, 0x1a0 /* [0x600007a0] */ # 29e6: 922068 + and a9, a9, a11 # 29e9: b09910 + or a9, a9, a10 # 29ec: a09920 + memw # 29ef: c02000 + s32i a9, a0, 0x1a0 /* a9 -> [0x600007a0] */ # 29f2: 926068 + movi a8, -2 /* 0xfffffffe */ # 29f5: 7ce8 + memw # 29f7: c02000 + l32i a7, a0, 0x174 /* [0x60000774] */ # 29fa: 72205d + and a7, a7, a8 # 29fd: 807710 + memw # 2a00: c02000 + s32i a7, a0, 0x174 /* a7 -> [0x60000774] */ # 2a03: 72605d + l8ui a3, a4, 131 /* [.Ldata044] */ # 2a06: 320483 +.Lbr250: movi a5, -257 /* 0xfffffeff */ # 2a09: 52aeff + beqi a3, 2, .Lbr251 # 2a0c: 262302 + bnei a3, 3, .Lbr252 # 2a0f: 66332b +.Lbr251: memw # 2a12: c02000 + movi a2, 0x60000600 # 2a15: 21cfff + l32i a0, a2, 0x234 /* [0x60000834] */ # 2a18: 02228d + movi a3, -257 /* 0xfffffeff */ # 2a1b: 32aeff + and a0, a0, a3 # 2a1e: 300010 + memw # 2a21: c02000 + movi a3, 0 /* 0x00000000 */ # 2a24: 0c03 + movi a4, 0 /* 0x00000000 */ # 2a26: 0c04 + s32i a0, a2, 0x234 /* a0 -> [0x60000834] */ # 2a28: 02628d + movi a5, 1 /* 0x00000001 */ # 2a2b: 0c15 + movi a2, 0 /* 0x00000000 */ # 2a2d: 0c02 + call0 gpio_output_set # 2a2f: 01d6ffc0 + # 2a33: 0000 + movi a0, 0x60000600 # 2a35: 01c8ff + movi a4, .Label012 # 2a38: 41c9ff + movi a5, -257 /* 0xfffffeff */ # 2a3b: 52aeff +.Lbr252: l8ui a3, a4, 124 /* [.Ldata037] */ # 2a3e: 32047c + beqi a3, 1, .Lbr253 # 2a41: 261311 + memw # 2a44: c02000 + l32i a6, a0, 0x234 /* [0x60000834] */ # 2a47: 62208d + and a6, a6, a5 # 2a4a: 506610 + memw # 2a4d: c02000 + s32i a6, a0, 0x234 /* a6 -> [0x60000834] */ # 2a50: 62608d + l8ui a3, a4, 124 /* [.Ldata037] */ # 2a53: 32047c +.Lbr253: bnei a3, 2, .Lbr254 # 2a56: 662311 + movi a8, 256 /* 0x00000100 */ # 2a59: 82a100 + memw # 2a5c: c02000 + l32i a7, a0, 0x214 /* [0x60000814] */ # 2a5f: 722085 + or a7, a7, a8 # 2a62: 807720 + memw # 2a65: c02000 + s32i a7, a0, 0x214 /* a7 -> [0x60000814] */ # 2a68: 726085 +.Lbr254: movi a6, -305 /* 0xfffffecf */ # 2a6b: 62aecf + l8ui a3, a4, 129 /* [.Ldata042] */ # 2a6e: 320481 + movi a7, 48 /* 0x00000030 */ # 2a71: 3c07 + bnei a3, 1, .Lbr255 # 2a73: 661314 + memw # 2a76: c02000 + l32i a9, a0, 0x218 /* [0x60000818] */ # 2a79: 922086 + and a9, a9, a6 # 2a7c: 609910 + or a9, a9, a7 # 2a7f: 709920 + memw # 2a82: c02000 + s32i a9, a0, 0x218 /* a9 -> [0x60000818] */ # 2a85: 926086 + j .Lbr257 # 2a88: 460d00 +.Lbr255: bnei a3, 2, .Lbr256 # 2a8b: 662311 + memw # 2a8e: c02000 + l32i a10, a0, 0x238 /* [0x60000838] */ # 2a91: a2208e + and a10, a10, a5 # 2a94: 50aa10 + memw # 2a97: c02000 + s32i a10, a0, 0x238 /* a10 -> [0x60000838] */ # 2a9a: a2608e + j .Lbr257 # 2a9d: 060800 +.Lbr256: memw # 2aa0: c02000 + l32i a2, a0, 0x218 /* [0x60000818] */ # 2aa3: 222086 + and a2, a2, a6 # 2aa6: 602210 + or a2, a2, a7 # 2aa9: 702220 + memw # 2aac: c02000 + s32i a2, a0, 0x218 /* a2 -> [0x60000818] */ # 2aaf: 226086 + memw # 2ab2: c02000 + l32i a11, a0, 0x238 /* [0x60000838] */ # 2ab5: b2208e + and a11, a11, a5 # 2ab8: 50bb10 + memw # 2abb: c02000 + s32i a11, a0, 0x238 /* a11 -> [0x60000838] */ # 2abe: b2608e +.Lbr257: l8ui a3, a4, 126 /* [.Ldata039] */ # 2ac1: 32047e + movi a8, 32 /* 0x00000020 */ # 2ac4: 2c08 + beqi a3, 1, .Lbr258 # 2ac6: 261326 + beqi a3, 3, .Lbr258 # 2ac9: 263323 + beqi a3, 4, .Lbr258 # 2acc: 264320 + beqi a3, 5, .Lbr258 # 2acf: 26531d + l8ui a3, a4, 128 /* [.Ldata041] */ # 2ad2: 320480 + addi a5, a3, -3 /* [.Ldata041]-0x3 */ # 2ad5: 52c3fd + bnez a5, .Lbr267 # 2ad8: 562510 + memw # 2adb: c02000 + l32i a7, a0, 0x234 /* [0x60000834] */ # 2ade: 72208d + and a7, a7, a6 # 2ae1: 607710 + or a7, a7, a8 # 2ae4: 807720 + memw # 2ae7: c02000 + s32i a7, a0, 0x234 /* a7 -> [0x60000834] */ # 2aea: 72608d + j .Lbr264 # 2aed: c62a00 +.Lbr258: movi a5, 0x60000200 # 2af0: 519cff + movi a9, 0 /* 0x00000000 */ # 2af3: 0c09 + addi a10, a3, -1 /* [.Ldata039]-0x1 */ # 2af5: 0ba3 + beqz a10, .Lbr268 # 2af7: 16ba0f + addi a11, a3, -4 /* [.Ldata039]-0x4 */ # 2afa: b2c3fc + beqz a11, .Lbr268 # 2afd: 165b0f + addi a2, a3, -3 /* [.Ldata039]-0x3 */ # 2b00: 22c3fd + beqz a2, .Lbr272 # 2b03: 167215 + addi a10, a3, -5 /* [.Ldata039]-0x5 */ # 2b06: a2c3fb + beqz a10, .Lbr272 # 2b09: 161a15 +.Lbr259: movi a3, -497 /* 0xfffffe0f */ # 2b0c: 32ae0f + memw # 2b0f: c02000 + l32i a5, a0, 0x208 /* [0x60000808] */ # 2b12: 522082 + and a5, a5, a3 # 2b15: 305510 + or a5, a5, a7 # 2b18: 705520 + memw # 2b1b: c02000 + s32i a5, a0, 0x208 /* a5 -> [0x60000808] */ # 2b1e: 526082 + memw # 2b21: c02000 + l32i a2, a0, 0x20c /* [0x6000080c] */ # 2b24: 222083 + and a2, a2, a3 # 2b27: 302210 + or a2, a2, a7 # 2b2a: 702220 + memw # 2b2d: c02000 + s32i a2, a0, 0x20c /* a2 -> [0x6000080c] */ # 2b30: 226083 + l8ui a11, a4, 127 /* [.Ldata040] */ # 2b33: b2047f + bltui a11, 2, .Lbr260 # 2b36: b62b26 + memw # 2b39: c02000 + l32i a9, a0, 0x214 /* [0x60000814] */ # 2b3c: 922085 + and a9, a9, a6 # 2b3f: 609910 + or a9, a9, a8 # 2b42: 809920 + memw # 2b45: c02000 + s32i a9, a0, 0x214 /* a9 -> [0x60000814] */ # 2b48: 926085 + memw # 2b4b: c02000 + l32i a7, a0, 0x234 /* [0x60000834] */ # 2b4e: 72208d + and a7, a7, a6 # 2b51: 607710 + or a7, a7, a8 # 2b54: 807720 + memw # 2b57: c02000 + s32i a7, a0, 0x234 /* a7 -> [0x60000834] */ # 2b5a: 72608d + j .Lbr261 # 2b5d: 060800 +.Lbr260: memw # 2b60: c02000 + l32i a11, a0, 0x214 /* [0x60000814] */ # 2b63: b22085 + and a11, a11, a6 # 2b66: 60bb10 + or a11, a11, a7 # 2b69: 70bb20 + memw # 2b6c: c02000 + s32i a11, a0, 0x214 /* a11 -> [0x60000814] */ # 2b6f: b26085 + memw # 2b72: c02000 + l32i a10, a0, 0x234 /* [0x60000834] */ # 2b75: a2208d + and a10, a10, a6 # 2b78: 60aa10 + memw # 2b7b: c02000 + s32i a10, a0, 0x234 /* a10 -> [0x60000834] */ # 2b7e: a2608d +.Lbr261: l8ui a3, a4, 126 /* [.Ldata039] */ # 2b81: 32047e + bnei a3, 1, .Lbr262 # 2b84: 661302 + j .Lbr270 # 2b87: 062300 +.Lbr262: bnei a3, 3, .Lbr263 # 2b8a: 663302 + j .Lbr270 # 2b8d: 862100 +.Lbr263: addi a0, a3, -4 /* [.Ldata039]-0x4 */ # 2b90: 02c3fc + beqz a0, .Lbr273 # 2b93: 16f00d + addi a2, a3, -5 /* [.Ldata039]-0x5 */ # 2b96: 22c3fb + beqz a2, .Lbr273 # 2b99: 16920d +.Lbr264: movi a0, .Label012 # 2b9c: 0172ff + movi a4, 0x60000a00 # 2b9f: 4172ff + l8ui a0, a0, 125 /* [.Ldata038] */ # 2ba2: 02007d + movi a3, 0xffff0fff # 2ba5: 3171ff + bnei a0, 1, .Lbr265 # 2ba8: 661015 + movi a5, 0x00001000 # 2bab: 5171ff + memw # 2bae: c02000 + l32i a2, a4, 4 /* [0x60000a04] */ # 2bb1: 2814 + and a2, a2, a3 # 2bb3: 302210 + or a2, a2, a5 # 2bb6: 502220 + memw # 2bb9: c02000 + s32i a2, a4, 4 /* a2 -> [0x60000a04] */ # 2bbc: 2914 + j .Lbr266 # 2bbe: 460500 +.Lbr265: bnei a0, 2, .Lbr266 # 2bc1: 662012 + movi a6, 0x00002000 # 2bc4: 616cff + memw # 2bc7: c02000 + l32i a5, a4, 4 /* [0x60000a04] */ # 2bca: 5814 + and a5, a5, a3 # 2bcc: 305510 + or a5, a5, a6 # 2bcf: 605520 + memw # 2bd2: c02000 + s32i a5, a4, 4 /* a5 -> [0x60000a04] */ # 2bd5: 5914 +.Lbr266: l32i a0, sp, 0 /* [(local0)] */ # 2bd7: 0801 + addi sp, sp, 16 /* (top of frame) */ # 2bd9: 12c110 + ret # 2bdc: 0df0 +.Lbr267: bnei a3, 2, .Lbr264 # 2bde: 6623ba + memw # 2be1: c02000 + l32i a7, a0, 0x214 /* [0x60000814] */ # 2be4: 722085 + and a7, a7, a6 # 2be7: 607710 + or a7, a7, a8 # 2bea: 807720 + memw # 2bed: c02000 + s32i a7, a0, 0x214 /* a7 -> [0x60000814] */ # 2bf0: 726085 + j .Lbr264 # 2bf3: 46e9ff +.Lbr268: l8ui a3, a4, 127 /* [.Ldata040] */ # 2bf6: 32047f + addi a10, a3, -3 /* [.Ldata040]-0x3 */ # 2bf9: a2c3fd + beqz a10, .Lbr277 # 2bfc: 16fa0c + addi a11, a3, -5 /* [.Ldata040]-0x5 */ # 2bff: b2c3fb + beqz a11, .Lbr277 # 2c02: 169b0c + bgeui a3, 2, .Lbr269 # 2c05: f62302 + j .Lbr275 # 2c08: 462c00 +.Lbr269: movi a2, 0x010e0000 # 2c0b: 215bff + memw # 2c0e: c02000 + s32i a2, a5, 0x100 /* 0x010e0000 -> [0x60000300] */ # 2c11: 226540 + j .Lbr259 # 2c14: 06bdff +.Lbr270: l8ui a3, a4, 127 /* [.Ldata040] */ # 2c17: 32047f + bnei a3, 1, .Lbr271 # 2c1a: 66131e + movi a2, 1 /* 0x00000001 */ # 2c1d: 0c12 + movi a3, 0 /* 0x00000000 */ # 2c1f: 0c03 + movi a4, 1 /* 0x00000001 */ # 2c21: 0c14 + movi a5, 0 /* 0x00000000 */ # 2c23: 0c05 + call0 gpio_output_set # 2c25: 0159ffc0 + # 2c29: 0000 + movi a2, 0 /* 0x00000000 */ # 2c2b: 0c02 + movi a3, 8 /* 0x00000008 */ # 2c2d: 0c83 + movi a4, 8 /* 0x00000008 */ # 2c2f: 0c84 + movi a5, 0 /* 0x00000000 */ # 2c31: 0c05 + call0 gpio_output_set # 2c33: 0157ffc0 + # 2c37: 0000 + j .Lbr264 # 2c39: c6d7ff +.Lbr271: bnez a3, .Lbr264 # 2c3c: 56c3f5 + movi a2, 0 /* 0x00000000 */ # 2c3f: 0c02 + movi a3, 1 /* 0x00000001 */ # 2c41: 0c13 + movi a4, 1 /* 0x00000001 */ # 2c43: 0c14 + movi a5, 0 /* 0x00000000 */ # 2c45: 0c05 + call0 gpio_output_set # 2c47: 0153ffc0 + # 2c4b: 0000 + movi a2, 8 /* 0x00000008 */ # 2c4d: 0c82 + movi a3, 0 /* 0x00000000 */ # 2c4f: 0c03 + movi a4, 8 /* 0x00000008 */ # 2c51: 0c84 + movi a5, 0 /* 0x00000000 */ # 2c53: 0c05 + call0 gpio_output_set # 2c55: 0150ffc0 + # 2c59: 0000 + j .Lbr264 # 2c5b: 46cfff +.Lbr272: l8ui a3, a4, 127 /* [.Ldata040] */ # 2c5e: 32047f + beqi a3, 3, .Lbr278 # 2c61: 263376 + beqi a3, 5, .Lbr278 # 2c64: 265373 + bltui a3, 2, .Lbr276 # 2c67: b6235b + movi a3, 0x010d0000 # 2c6a: 3144ff + memw # 2c6d: c02000 + s32i a3, a5, 0x100 /* 0x010d0000 -> [0x60000300] */ # 2c70: 326540 + j .Lbr259 # 2c73: 46a5ff +.Lbr273: l8ui a3, a4, 127 /* [.Ldata040] */ # 2c76: 32047f + bnei a3, 1, .Lbr274 # 2c79: 66131e + movi a2, 0 /* 0x00000000 */ # 2c7c: 0c02 + movi a3, 1 /* 0x00000001 */ # 2c7e: 0c13 + movi a4, 1 /* 0x00000001 */ # 2c80: 0c14 + movi a5, 0 /* 0x00000000 */ # 2c82: 0c05 + call0 gpio_output_set # 2c84: 0146ffc0 + # 2c88: 0000 + movi a2, 8 /* 0x00000008 */ # 2c8a: 0c82 + movi a3, 0 /* 0x00000000 */ # 2c8c: 0c03 + movi a4, 8 /* 0x00000008 */ # 2c8e: 0c84 + movi a5, 0 /* 0x00000000 */ # 2c90: 0c05 + call0 gpio_output_set # 2c92: 0143ffc0 + # 2c96: 0000 + j .Lbr264 # 2c98: 06c0ff +.Lbr274: bnez a3, .Lbr264 # 2c9b: 56d3ef + movi a2, 1 /* 0x00000001 */ # 2c9e: 0c12 + movi a3, 0 /* 0x00000000 */ # 2ca0: 0c03 + movi a4, 1 /* 0x00000001 */ # 2ca2: 0c14 + movi a5, 0 /* 0x00000000 */ # 2ca4: 0c05 + call0 gpio_output_set # 2ca6: 013fffc0 + # 2caa: 0000 + movi a2, 0 /* 0x00000000 */ # 2cac: 0c02 + movi a3, 8 /* 0x00000008 */ # 2cae: 0c83 + movi a4, 8 /* 0x00000008 */ # 2cb0: 0c84 + movi a5, 0 /* 0x00000000 */ # 2cb2: 0c05 + call0 gpio_output_set # 2cb4: 013dffc0 + # 2cb8: 0000 + j .Lbr264 # 2cba: 86b7ff +.Lbr275: memw # 2cbd: c02000 + s32i a9, a5, 0x100 /* 0x00000000 -> [0x60000300] */ # 2cc0: 926540 + j .Lbr259 # 2cc3: 4691ff +.Lbr276: memw # 2cc6: c02000 + s32i a9, a5, 0x100 /* 0x00000000 -> [0x60000300] */ # 2cc9: 926540 + j .Lbr259 # 2ccc: 068fff +.Lbr277: movi a9, 0x03de0000 # 2ccf: 912cff + memw # 2cd2: c02000 + s32i a9, a5, 0x100 /* 0x03de0000 -> [0x60000300] */ # 2cd5: 926540 + j .Lbr259 # 2cd8: 068cff +.Lbr278: movi a10, 0x03ed0000 # 2cdb: a12aff + memw # 2cde: c02000 + s32i a10, a5, 0x100 /* 0x03ed0000 -> [0x60000300] */ # 2ce1: a26540 + j .Lbr259 # 2ce4: 0689ff + + .literal_position # 2ce8: d8010000 + # 2cec: 00000000 + # 2cf0: d8010000 + # 2cf4: 00020060 + # 2cf8: 00000000 + # 2cfc: d8010000 + # 2d00: 803fe00f + # 2d04: 00020060 + # 2d08: ffffff0f + # 2d0c: ffffcfff + +# Function @ .irom0.text+0x2d10 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global tx_cont_en + .type tx_cont_en, @function +tx_cont_en: addi sp, sp, -16 /* (local0) */ # 2d10: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 2d13: 0901 + movi a0, .Ldata021 # 2d15: 01f4ff + l8ui a2, a0, 127 /* [.Ldata092] */ # 2d18: 22007f + bnez a2, .Lbr279 # 2d1b: 569208 + movi a0, g_phyFuns # 2d1e: 01f3ff + movi a2, 102 /* 0x00000066 */ # 2d21: 22a066 + l32i a0, a0, 0 /* [g_phyFuns] */ # 2d24: 0800 + movi a3, 3 /* 0x00000003 */ # 2d26: 0c33 + l32i a0, a0, 144 /* [[g_phyFuns]+0x90] */ # 2d28: 022024 + movi a4, 1 /* 0x00000001 */ # 2d2b: 0c14 + callx0 a0 /* [[g_phyFuns]+0x90] */ # 2d2d: c00000 + movi a3, .Ldata021 # 2d30: 31f0ff + s32i a2, a3, 132 /* a2 -> [.Ldata093] */ # 2d33: 226321 + movi a2, 0x60000200 # 2d36: 21efff + memw # 2d39: c02000 + l32i a5, a2, 0x394 /* [0x60000594] */ # 2d3c: 5222e5 + s32i a5, a3, 136 /* [0x60000594] -> [.Ldata094] */ # 2d3f: 526322 + memw # 2d42: c02000 + l32i a4, a2, 0x398 /* [0x60000598] */ # 2d45: 4222e6 + s32i a4, a3, 140 /* [0x60000598] -> [.Ldata095] */ # 2d48: 426323 + memw # 2d4b: c02000 + movi a4, 1 /* 0x00000001 */ # 2d4e: 0c14 + movi a5, 5 /* 0x00000005 */ # 2d50: 0c55 + movi a6, 0 /* 0x00000000 */ # 2d52: 0c06 + movi a7, 60 /* 0x0000003c */ # 2d54: 3cc7 + l32i a2, a2, 0x39c /* [0x6000059c] */ # 2d56: 2222e7 + movi a0, g_phyFuns # 2d59: 01e7ff + s32i a2, a3, 144 /* [0x6000059c] -> [.Ldata096] */ # 2d5c: 226324 + l32i a0, a0, 0 /* [g_phyFuns] */ # 2d5f: 0800 + movi a2, 102 /* 0x00000066 */ # 2d61: 22a066 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 2d64: 022027 + movi a3, 3 /* 0x00000003 */ # 2d67: 0c33 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 2d69: c00000 + movi a0, .Ldata021 # 2d6c: 01e4ff + movi a2, 0x0fe03f80 # 2d6f: 21e4ff + memw # 2d72: c02000 + movi a7, 0x60000200 # 2d75: 71e3ff + l32i a11, a7, 0x39c /* [0x6000059c] */ # 2d78: b227e7 + or a11, a11, a2 # 2d7b: 20bb20 + memw # 2d7e: c02000 + s32i a11, a7, 0x39c /* a11 -> [0x6000059c] */ # 2d81: b267e7 + movi a10, 0x0fffffff # 2d84: a1e1ff + memw # 2d87: c02000 + l32i a9, a7, 0x398 /* [0x60000598] */ # 2d8a: 9227e6 + or a9, a9, a10 # 2d8d: a09920 + memw # 2d90: c02000 + s32i a9, a7, 0x398 /* a9 -> [0x60000598] */ # 2d93: 9267e6 + movi a8, 0xffcfffff # 2d96: 81ddff + memw # 2d99: c02000 + l32i a6, a7, 0x394 /* [0x60000594] */ # 2d9c: 6227e5 + and a6, a6, a8 # 2d9f: 806610 + memw # 2da2: c02000 + s32i a6, a7, 0x394 /* a6 -> [0x60000594] */ # 2da5: 6267e5 +.Lbr279: movi a3, 1 /* 0x00000001 */ # 2da8: 0c13 + s8i a3, a0, 127 /* 0x01 -> [.Ldata092] */ # 2daa: 32407f + l32i a0, sp, 0 /* [(local0)] */ # 2dad: 0801 + addi sp, sp, 16 /* (top of frame) */ # 2daf: 12c110 + ret # 2db2: 0df0 + + .literal_position # 2db4: dc010000 + # 2db8: 00000000 + # 2dbc: dc010000 + # 2dc0: 00020060 + # 2dc4: dc010000 + +# Function @ .irom0.text+0x2dc8 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global tx_cont_dis + .type tx_cont_dis, @function +tx_cont_dis: + addi sp, sp, -16 /* (local0) */ # 2dc8: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 2dcb: 0901 + movi a0, .Ldata022 # 2dcd: 01f9ff + l8ui a2, a0, 123 /* [.Ldata092] */ # 2dd0: 22007b + bnei a2, 1, .Lbr280 # 2dd3: 661238 + movi a2, 102 /* 0x00000066 */ # 2dd6: 22a066 + movi a3, 3 /* 0x00000003 */ # 2dd9: 0c33 + movi a0, g_phyFuns # 2ddb: 01f7ff + movi a4, 1 /* 0x00000001 */ # 2dde: 0c14 + l32i a0, a0, 0 /* [g_phyFuns] */ # 2de0: 0800 + movi a5, .Ldata022 # 2de2: 51f6ff + l32i a0, a0, 152 /* [[g_phyFuns]+0x98] */ # 2de5: 022026 + l8ui a5, a5, 128 /* [.Ldata093] */ # 2de8: 520580 + callx0 a0 /* [[g_phyFuns]+0x98] */ # 2deb: c00000 + movi a0, .Ldata022 # 2dee: 01f5ff + movi a3, 0x60000200 # 2df1: 31f3ff + l32i a5, a0, 132 /* [.Ldata094] */ # 2df4: 522021 + memw # 2df7: c02000 + s32i a5, a3, 0x394 /* [.Ldata094] -> [0x60000594] */ # 2dfa: 5263e5 + l32i a4, a0, 136 /* [.Ldata095] */ # 2dfd: 422022 + memw # 2e00: c02000 + s32i a4, a3, 0x398 /* [.Ldata095] -> [0x60000598] */ # 2e03: 4263e6 + l32i a2, a0, 140 /* [.Ldata096] */ # 2e06: 222023 + memw # 2e09: c02000 + s32i a2, a3, 0x39c /* [.Ldata096] -> [0x6000059c] */ # 2e0c: 2263e7 +.Lbr280: movi a6, 0 /* 0x00000000 */ # 2e0f: 0c06 + s8i a6, a0, 123 /* 0x00 -> [.Ldata092] */ # 2e11: 62407b + l32i a0, sp, 0 /* [(local0)] */ # 2e14: 0801 + addi sp, sp, 16 /* (top of frame) */ # 2e16: 12c110 + ret # 2e19: 0df0 + + .balign 4 +# Function @ .irom0.text+0x2e1c +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global tx_cont_cfg + .type tx_cont_cfg, @function +tx_cont_cfg: + addi sp, sp, -16 /* (local0) */ # 2e1c: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 2e1f: 0901 + bnei a2, 1, .Lbr281 # 2e21: 661205 + call0 tx_cont_en # 2e24: 050000 + j .Lbr282 # 2e27: 860000 +.Lbr281: call0 tx_cont_dis # 2e2a: 050000 +.Lbr282: l32i a0, sp, 0 /* [(local0)] */ # 2e2d: 0801 + addi sp, sp, 16 /* (top of frame) */ # 2e2f: 12c110 + ret # 2e32: 0df0 + + .literal_position # 2e34: 00000000 + # 2e38: 00feef3f + # 2e3c: 00000000 + # 2e40: 0c000000 + # 2e44: 00000000 + # 2e48: 00004000 + # 2e4c: cc010000 + # 2e50: 0c000000 + # 2e54: 00000000 + # 2e58: 000af23f + # 2e5c: 0c000000 + # 2e60: 00780000 + # 2e64: 000a0060 + # 2e68: 00000000 + # 2e6c: cc010000 + # 2e70: 00000000 + # 2e74: 00000000 + # 2e78: 00000000 + # 2e7c: 00000000 + # 2e80: 00000000 + # 2e84: 00000000 + # 2e88: 00000000 + # 2e8c: 00000000 + # 2e90: 00000000 + # 2e94: 00000000 + +# Function @ .irom0.text+0x2e98 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word[3] @ -0x1c +# (local2): word @ -0x10 +# (local3): word[3] @ -0xc + .balign 4 + .global chip_v6_initialize_bb + .type chip_v6_initialize_bb, @function +chip_v6_initialize_bb: + addi sp, sp, -32 /* (local0) */ # 2e98: 12c1e0 + s32i a12, sp, 20 /* a12 -> [(local3)] */ # 2e9b: c951 + s32i a0, sp, 16 /* a0 -> [(local2)] */ # 2e9d: 0941 + movi a2, 0x3feffe00 # 2e9f: 21e6ff + movi a0, g_phyFuns # 2ea2: 01e4ff + memw # 2ea5: c02000 + l32i a4, a2, 0x25c /* [0x3ff0005c] */ # 2ea8: 422297 + memw # 2eab: c02000 + l32i a3, a2, 0x258 /* [0x3ff00058] */ # 2eae: 322296 + memw # 2eb1: c02000 + ssai 24 # 2eb4: 104840 + movi a3, 1 /* 0x00000001 */ # 2eb7: 0c13 + movi a4, 7 /* 0x00000007 */ # 2eb9: 0c74 + movi a5, 3 /* 0x00000003 */ # 2ebb: 0c35 + movi a6, 2 /* 0x00000002 */ # 2ebd: 0c26 + movi a7, 0 /* 0x00000000 */ # 2ebf: 0c07 + l32i a0, a0, 0 /* [g_phyFuns] */ # 2ec1: 0800 + l32i a2, a2, 0x25c /* [0x3ff0005c] */ # 2ec3: 222297 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 2ec6: 022027 + movi a2, 97 /* 0x00000061 */ # 2ec9: 22a061 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 2ecc: c00000 + call0 phy_pbus_soc_cfg # 2ecf: 050000 + movi a2, 119 /* 0x00000077 */ # 2ed2: 22a077 + movi a3, 0 /* 0x00000000 */ # 2ed5: 0c03 + movi a4, 16 /* 0x00000010 */ # 2ed7: 1c04 + movi a0, g_phyFuns # 2ed9: 01d8ff + movi a5, 0 /* 0x00000000 */ # 2edc: 0c05 + l32i a0, a0, 0 /* [g_phyFuns] */ # 2ede: 0800 + movi a6, 0 /* 0x00000000 */ # 2ee0: 0c06 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 2ee2: 022027 + movi a7, 1 /* 0x00000001 */ # 2ee5: 0c17 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 2ee7: c00000 + call0 rc_cal # 2eea: 01e2ffc0 + # 2eee: 0000 + movi a3, chip6_sleep_params # 2ef0: 31d4ff + mov a2, a3 /* chip6_sleep_params */ # 2ef3: 2d03 + addi a3, a3, 4 /* .Label001 */ # 2ef5: 4b33 + call0 init_cal_dcoffset # 2ef7: 01e0ffc0 + # 2efb: 0000 + movi a12, rxiq_compute_num # 2efd: c1d1ff + l32i a4, a12, 12 /* [chip6_sleep_params] */ # 2f00: 483c + bbsi a4, 22, .Lbr283 # 2f02: 67f411 + movi a2, 0 /* 0x00000000 */ # 2f05: 0c02 + call0 txpwr_offset # 2f07: 01ddffc0 + # 2f0b: 0000 + movi a7, 0x00400000 # 2f0d: 71ceff + l32i a6, a12, 12 /* [chip6_sleep_params] */ # 2f10: 683c + or a6, a6, a7 # 2f12: 706620 + s32i a6, a12, 12 /* a6 -> [chip6_sleep_params] */ # 2f15: 693c +.Lbr283: call0 tx_cap_init # 2f17: 050000 + movi a8, .Ldata019 # 2f1a: 81ccff + l8ui a8, a8, 118 /* [.Ldata076] */ # 2f1d: 820876 + beqz a8, .Lbr284 # 2f20: 8c68 + movi a2, 0 /* 0x00000000 */ # 2f22: 0c02 + call0 tx_pwctrl_init # 2f24: 050000 + j .Lbr285 # 2f27: 060100 +.Lbr284: movi a2, 1 /* 0x00000001 */ # 2f2a: 0c12 + call0 tx_pwctrl_init # 2f2c: 050000 +.Lbr285: movi a5, 64 /* 0x00000040 */ # 2f2f: 4c05 + movi a7, 0 /* 0x00000000 */ # 2f31: 0c07 + movi a6, 0 /* 0x00000000 */ # 2f33: 0c06 + movi a9, 1 /* 0x00000001 */ # 2f35: 0c19 + movi a10, 0 /* 0x00000000 */ # 2f37: 0c0a + movi a4, .Ldata001 # 2f39: 41c6ff + movi a2, chip6_sleep_params # 2f3c: 21c5ff + l8ui a8, a12, 115 /* [.Ldata011] */ # 2f3f: 820c73 + addi a3, a2, 20 /* .bss+0x20 */ # 2f42: 32c214 + slli a8, a8, 24 # 2f45: 808801 + l16ui a4, a4, 2 /* [tx_rf_ana_gain] */ # 2f48: 421401 + s32i a10, sp, 0 /* 0x00000000 -> [(local0)] */ # 2f4b: a901 + s32i a9, sp, 4 /* 0x00000001 -> [(local1)] */ # 2f4d: 9911 + srai a8, a8, 24 # 2f4f: 808831 + addi a8, a8, 31 # 2f52: 82c81f + slli a8, a8, 24 # 2f55: 808801 + srai a8, a8, 24 # 2f58: 808831 + movgez a6, a8, a8 # 2f5b: 8068b3 + extui a6, a6, 0, 8 # 2f5e: 606074 + call0 ram_rfcal_txiq # 2f61: 01c7ffc0 + # 2f65: 0000 + l32i a9, a12, 12 /* [chip6_sleep_params] */ # 2f67: 983c + bbsi a9, 27, .Lbr286 # 2f69: b7f907 + movi a2, 6 /* 0x00000006 */ # 2f6c: 0c62 + call0 chip_v6_set_chan # 2f6e: 01c5ffc0 + # 2f72: 0000 +.Lbr286: movi a2, 0 /* 0x00000000 */ # 2f74: 0c02 + call0 dpd_init # 2f76: 01c4ffc0 + # 2f7a: 0000 + call0 phy_bb_rx_cfg # 2f7c: 050000 + movi a2, 2 /* 0x00000002 */ # 2f7f: 0c22 + movi a0, 0x3ff20a00 # 2f81: 01b5ff + memw # 2f84: c02000 + l32i a11, a0, 0x270 /* [0x3ff20c70] */ # 2f87: b2209c + or a11, a11, a2 # 2f8a: 20bb20 + memw # 2f8d: c02000 + movi a2, 1 /* 0x00000001 */ # 2f90: 0c12 + movi a3, 7 /* 0x00000007 */ # 2f92: 0c73 + movi a4, 5 /* 0x00000005 */ # 2f94: 0c54 + movi a5, 0x00007800 # 2f96: 51b2ff + movi a6, 1 /* 0x00000001 */ # 2f99: 0c16 + movi a7, 0 /* 0x00000000 */ # 2f9b: 0c07 + s32i a11, a0, 0x270 /* a11 -> [0x3ff20c70] */ # 2f9d: b2609c + movi a10, chip6_sleep_params # 2fa0: a1afff + s32i a10, sp, 0 /* chip6_sleep_params -> [(local0)] */ # 2fa3: a901 + call0 noise_init # 2fa5: 050000 + call0 tx_pwctrl_bg_init # 2fa8: 01b9ffc0 + # 2fac: 0000 + l32i a3, a12, 12 /* [chip6_sleep_params] */ # 2fae: 383c + bbci a3, 27, .Lbr287 # 2fb0: b7732d + call0 wait_rfpll_cal_end # 2fb3: 01b7ffc0 + # 2fb7: 0000 + movi a6, -1025 /* 0xfffffbff */ # 2fb9: 62abff + movi a5, 0x60000a00 # 2fbc: 51aaff + memw # 2fbf: c02000 + l32i a4, a5, 0x340 /* [0x60000d40] */ # 2fc2: 4225d0 + and a4, a4, a6 # 2fc5: 604410 + memw # 2fc8: c02000 + s32i a4, a5, 0x340 /* a4 -> [0x60000d40] */ # 2fcb: 4265d0 + movi a2, 0 /* 0x00000000 */ # 2fce: 0c02 + call0 chip_v6_rxmax_ext # 2fd0: 050000 + movi a0, g_phyFuns # 2fd3: 01a5ff + l32i a0, a0, 0 /* [g_phyFuns] */ # 2fd6: 0800 + l32i a0, a0, 88 /* [[g_phyFuns]+0x58] */ # 2fd8: 022016 + l16si a2, a12, 88 /* [.Ldata002] */ # 2fdb: 229c2c + callx0 a0 /* [[g_phyFuns]+0x58] */ # 2fde: c00000 +.Lbr287: movi a5, 1 /* 0x00000001 */ # 2fe1: 0c15 + movi a12, .Ldata019 # 2fe3: c1a2ff + movi a9, g_phyFuns # 2fe6: 91a2ff + l8ui a2, a12, 118 /* [.Ldata076] */ # 2fe9: 220c76 + l8ui a3, a12, 138 /* [txbk_dpdby_flag] */ # 2fec: 320c8a + l32i a9, a9, 0 /* [g_phyFuns] */ # 2fef: 9809 + l8ui a4, a12, 133 /* [.Ldata091] */ # 2ff1: 420c85 + l32i a9, a9, 156 /* [[g_phyFuns]+0x9c] */ # 2ff4: 922927 + movnez a4, a5, a4 # 2ff7: 404593 + or a3, a3, a4 # 2ffa: 403320 + or a2, a2, a3 # 2ffd: 302220 + beqz a2, .Lbr288 # 3000: 8cf2 + movi a2, 119 /* 0x00000077 */ # 3002: 22a077 + movi a3, 0 /* 0x00000000 */ # 3005: 0c03 + movi a4, 15 /* 0x0000000f */ # 3007: 0cf4 + movi a6, 1 /* 0x00000001 */ # 3009: 0c16 + movi a7, 1 /* 0x00000001 */ # 300b: 0c17 + callx0 a9 /* [[g_phyFuns]+0x9c] */ # 300d: c00900 + j .Lbr289 # 3010: 460400 +.Lbr288: movi a2, 119 /* 0x00000077 */ # 3013: 22a077 + movi a3, 0 /* 0x00000000 */ # 3016: 0c03 + movi a4, 15 /* 0x0000000f */ # 3018: 0cf4 + l8ui a7, a12, 117 /* [.Ldata075] */ # 301a: 720c75 + movi a6, 1 /* 0x00000001 */ # 301d: 0c16 + extui a7, a7, 0, 1 # 301f: 707004 + callx0 a9 /* [[g_phyFuns]+0x9c] */ # 3022: c00900 +.Lbr289: l8ui a2, a12, 118 /* [.Ldata076] */ # 3025: 220c76 + l8ui a3, a12, 119 /* [.Ldata077] */ # 3028: 320c77 + l8ui a4, a12, 120 /* [.Ldata078] */ # 302b: 420c78 + call0 low_power_set # 302e: 0199ffc0 + # 3032: 0000 + movi a2, 0 /* 0x00000000 */ # 3034: 0c02 + l32i a12, sp, 20 /* [(local3)] */ # 3036: c851 + l32i a0, sp, 16 /* [(local2)] */ # 3038: 0841 + addi sp, sp, 32 /* (top of frame) */ # 303a: 12c120 + ret /* 0x00000000 */ # 303d: 0df0 + + .literal_position # 3040: 28020000 + # 3044: 10000000 + # 3048: 00000000 + # 304c: 00000000 + # 3050: 00000000 + # 3054: ffffefff + # 3058: 00000000 + # 305c: 28020000 + # 3060: 80020000 + # 3064: 88000000 + # 3068: 00000000 + # 306c: 0c000000 + # 3070: 7c000000 + # 3074: 00000000 + # 3078: 00000000 + +# Function @ .irom0.text+0x307c +# Local variables/stack: +# (local0): word @ -0x30 +# (local1): word @ -0x2c +# (local2): word @ -0x28 +# (local3): word @ -0x24 +# (local4): word @ -0x20 +# (local5): word @ -0x1c +# (local6): word @ -0x18 +# (local7): word @ -0x14 +# (local8): word[4] @ -0x10 + .balign 4 + .global periodic_cal + .type periodic_cal, @function +periodic_cal: + movi a5, .Ldata051 # 307c: 51f1ff + addi sp, sp, -48 /* (local0) */ # 307f: 12c1d0 + s32i a12, sp, 28 /* a12 -> [(local7)] */ # 3082: c971 + s32i a13, sp, 32 /* a13 -> [(local8)] */ # 3084: d981 + s32i a0, sp, 24 /* a0 -> [(local6)] */ # 3086: 0961 + l8ui a2, a5, 39 /* [.Ldata089] */ # 3088: 220527 + l32i a3, a5, 68 /* [periodic_cal_dc_num] */ # 308b: 322511 + movi a0, 0 /* 0x00000000 */ # 308e: 0c00 + s32i a0, sp, 16 /* 0x00000000 -> [(local4)] */ # 3090: 0941 + addi a3, a3, 1 /* [periodic_cal_dc_num]+0x1 */ # 3092: 1b33 + s32i a3, a5, 68 /* [periodic_cal_dc_num]+0x1 -> [periodic_cal_dc_num] */ # 3094: 326511 + bne a2, a3, .Lbr290 # 3097: 379207 + movi a13, 1 /* 0x00000001 */ # 309a: 0c1d + s32i a0, a5, 68 /* 0x00000000 -> [periodic_cal_dc_num] */ # 309c: 026511 + j .Lbr291 # 309f: 460000 +.Lbr290: mov a13, a0 /* 0x00000000 */ # 30a2: dd00 +.Lbr291: s8i a13, a5, 44 /* a13 -> [do_pwctrl_flag] */ # 30a4: d2452c + addi a2, sp, 16 /* (local4) */ # 30a7: 22c110 + movi a3, .Label001 # 30aa: 31e6ff + call0 init_cal_dcoffset # 30ad: 01f1ffc0 + # 30b1: 0000 + movi a12, rxiq_compute_num # 30b3: c1e5ff + beqz a13, .Lbr294 # 30b6: 162d08 + movi a2, 119 /* 0x00000077 */ # 30b9: 22a077 + movi a3, 0 /* 0x00000000 */ # 30bc: 0c03 + movi a4, 15 /* 0x0000000f */ # 30be: 0cf4 + movi a5, 1 /* 0x00000001 */ # 30c0: 0c15 + movi a6, 1 /* 0x00000001 */ # 30c2: 0c16 + movi a0, g_phyFuns # 30c4: 01e2ff + l8ui a13, a12, 90 /* [.Ldata003] */ # 30c7: d20c5a + l32i a0, a0, 0 /* [g_phyFuns] */ # 30ca: 0800 + slli a13, a13, 24 # 30cc: 80dd01 + l32i a0, a0, 148 /* [[g_phyFuns]+0x94] */ # 30cf: 022025 + srai a13, a13, 24 # 30d2: d0d831 + callx0 a0 /* [[g_phyFuns]+0x94] */ # 30d5: c00000 + movi a3, 0 /* 0x00000000 */ # 30d8: 0c03 + movi a4, 15 /* 0x0000000f */ # 30da: 0cf4 + movi a5, 1 /* 0x00000001 */ # 30dc: 0c15 + movi a6, 1 /* 0x00000001 */ # 30de: 0c16 + movi a0, g_phyFuns # 30e0: 01dcff + movi a7, 1 /* 0x00000001 */ # 30e3: 0c17 + l32i a0, a0, 0 /* [g_phyFuns] */ # 30e5: 0800 + s32i a2, sp, 20 /* a2 -> [(local5)] */ # 30e7: 2951 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 30e9: 022027 + movi a2, 119 /* 0x00000077 */ # 30ec: 22a077 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 30ef: c00000 + movi a4, 0xffefffff # 30f2: 41d8ff + l32i a3, a12, 12 /* [chip6_sleep_params] */ # 30f5: 383c + movi a2, 1 /* 0x00000001 */ # 30f7: 0c12 + and a3, a3, a4 # 30f9: 403310 + s32i a3, a12, 12 /* a3 -> [chip6_sleep_params] */ # 30fc: 393c + call0 tx_pwctrl_init # 30fe: 050000 + movi a9, g_phyFuns # 3101: 91d5ff + movi a5, .Ldata051 # 3104: 51d6ff + l32i a9, a9, 0 /* [g_phyFuns] */ # 3107: 9809 + l8ui a5, a5, 46 /* [txbk_dpdby_flag] */ # 3109: 52052e + l32i a9, a9, 156 /* [[g_phyFuns]+0x9c] */ # 310c: 922927 + beqz a5, .Lbr292 # 310f: 9c15 + movi a2, 119 /* 0x00000077 */ # 3111: 22a077 + movi a3, 0 /* 0x00000000 */ # 3114: 0c03 + movi a4, 15 /* 0x0000000f */ # 3116: 0cf4 + movi a5, 1 /* 0x00000001 */ # 3118: 0c15 + movi a6, 1 /* 0x00000001 */ # 311a: 0c16 + movi a7, 1 /* 0x00000001 */ # 311c: 0c17 + callx0 a9 /* [[g_phyFuns]+0x9c] */ # 311e: c00900 + j .Lbr293 # 3121: c60300 +.Lbr292: movi a2, 119 /* 0x00000077 */ # 3124: 22a077 + movi a3, 0 /* 0x00000000 */ # 3127: 0c03 + movi a4, 15 /* 0x0000000f */ # 3129: 0cf4 + movi a5, 1 /* 0x00000001 */ # 312b: 0c15 + movi a6, 1 /* 0x00000001 */ # 312d: 0c16 + l32i a7, sp, 20 /* [(local5)] */ # 312f: 7851 + callx0 a9 /* [[g_phyFuns]+0x9c] */ # 3131: c00900 +.Lbr293: mov a2, a13 # 3134: 2d0d + call0 chip_v6_set_chan # 3136: 01d0ffc0 + # 313a: 0000 +.Lbr294: movi a2, 0 /* 0x00000000 */ # 313c: 0c02 + addi a3, sp, 16 /* (local4) */ # 313e: 32c110 + movi a8, .Ldata097 # 3141: 81c7ff + l32i a4, a12, 0x1cc /* [.Ldata019] */ # 3144: 422c73 + movi a9, 0 /* 0x00000000 */ # 3147: 0c09 + movi a5, .Label004 # 3149: 51c6ff + movi a7, .Ldata001 # 314c: 71c7ff + addi a6, a5, -102 /* .bss+0x22 */ # 314f: 62c59a + l8ui a7, a7, 0 /* [.Ldata001] */ # 3152: 720700 + s32i a9, sp, 4 /* 0x00000000 -> [(local1)] */ # 3155: 9911 + s32i a9, sp, 8 /* 0x00000000 -> [(local2)] */ # 3157: 9921 + s32i a9, sp, 12 /* 0x00000000 -> [(local3)] */ # 3159: 9931 + s32i a8, sp, 0 /* .Ldata097 -> [(local0)] */ # 315b: 8901 + addi a7, a7, 1 /* [.Ldata001]+0x1 */ # 315d: 1b77 + extui a7, a7, 0, 8 # 315f: 707074 + call0 set_rx_gain_testchip_50 # 3162: 050000 + movi a2, chip6_sleep_params # 3165: 21c1ff + movi a4, 0 /* 0x00000000 */ # 3168: 0c04 + addi a3, a2, 111 /* .bss+0x7b */ # 316a: 32c26f + call0 rtc_mem_backup # 316d: 050000 + mov a4, a2 # 3170: 4d02 + movi a2, .Label003 # 3172: 21bfff + s32i a4, a12, 0x1dc /* a4 -> [.Ldata022] */ # 3175: 426c77 + addi a3, a2, 9 /* .Ldata018 */ # 3178: 9b32 + call0 rtc_mem_backup # 317a: 050000 + l32i a12, sp, 28 /* [(local7)] */ # 317d: c871 + l32i a13, sp, 32 /* [(local8)] */ # 317f: d881 + l32i a0, sp, 24 /* [(local6)] */ # 3181: 0861 + addi sp, sp, 48 /* (top of frame) */ # 3183: 12c130 + ret # 3186: 0df0 + + .literal_position # 3188: 00feef3f + # 318c: 000a0060 + # 3190: 000a0060 + # 3194: 00feef3f + # 3198: 00000000 + # 319c: 00000000 + # 31a0: 00000000 + # 31a4: 00000000 + # 31a8: 00000000 + +# Function @ .irom0.text+0x31ac +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global bbpll_cal + .type bbpll_cal, @function +bbpll_cal: addi sp, sp, -16 /* (local0) */ # 31ac: 12c1f0 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 31af: 0911 + movi a2, 0x3feffe00 # 31b1: 21f5ff + memw # 31b4: c02000 + l32i a4, a2, 0x214 /* [0x3ff00014] */ # 31b7: 422285 + s32i a4, sp, 0 /* [0x3ff00014] -> [(local0)] */ # 31ba: 4901 + movi a3, -2 /* 0xfffffffe */ # 31bc: 7ce3 + memw # 31be: c02000 + l32i a0, a2, 0x214 /* [0x3ff00014] */ # 31c1: 022285 + and a0, a0, a3 # 31c4: 300010 + memw # 31c7: c02000 + s32i a0, a2, 0x214 /* a0 -> [0x3ff00014] */ # 31ca: 026285 + movi a2, 80 /* 0x00000050 */ # 31cd: 5c02 + call0 ets_update_cpu_frequency # 31cf: 01f2ffc0 + # 31d3: 0000 + movi a2, 1 /* 0x00000001 */ # 31d5: 0c12 + call0 ets_delay_us # 31d7: 01f1ffc0 + # 31db: 0000 + movi a7, 8 /* 0x00000008 */ # 31dd: 0c87 + movi a8, -13 /* 0xfffffff3 */ # 31df: 7c38 + movi a6, 0x60000a00 # 31e1: 61eaff + memw # 31e4: c02000 + l32i a5, a6, 0x340 /* [0x60000d40] */ # 31e7: 5226d0 + and a5, a5, a8 # 31ea: 805510 + or a5, a5, a7 # 31ed: 705520 + memw # 31f0: c02000 + s32i a5, a6, 0x340 /* a5 -> [0x60000d40] */ # 31f3: 5266d0 + movi a2, 1000 /* 0x000003e8 */ # 31f6: 22a3e8 + call0 ets_delay_us # 31f9: 01e9ffc0 + # 31fd: 0000 + movi a11, 4 /* 0x00000004 */ # 31ff: 0c4b + memw # 3201: c02000 + movi a10, 0x60000a00 # 3204: a1e3ff + l32i a9, a10, 0x340 /* [0x60000d40] */ # 3207: 922ad0 + movi a0, -13 /* 0xfffffff3 */ # 320a: 7c30 + and a9, a9, a0 # 320c: 009910 + or a9, a9, a11 # 320f: b09920 + memw # 3212: c02000 + s32i a9, a10, 0x340 /* a9 -> [0x60000d40] */ # 3215: 926ad0 + movi a2, 1 /* 0x00000001 */ # 3218: 0c12 + call0 ets_delay_us # 321a: 01e2ffc0 + # 321e: 0000 + memw # 3220: c02000 + movi a3, 0x3feffe00 # 3223: 31dcff + l32i a2, sp, 0 /* [(local0)] */ # 3226: 2801 + s32i a2, a3, 0x214 /* [(local0)] -> [0x3ff00014] */ # 3228: 226385 + bbci a2, 0, .Lbr295 # 322b: 076208 + movi a2, 160 /* 0x000000a0 */ # 322e: 22a0a0 + call0 ets_update_cpu_frequency # 3231: 01ddffc0 + # 3235: 0000 +.Lbr295: l32i a0, sp, 4 /* [(local1)] */ # 3237: 0811 + addi sp, sp, 16 /* (top of frame) */ # 3239: 12c110 + ret # 323c: 0df0 + + .literal_position # 3240: dd010000 + # 3244: dd010000 + # 3248: dd010000 + # 324c: 00000000 + # 3250: 00000000 + +# Function @ .irom0.text+0x3254 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global periodic_cal_top + .type periodic_cal_top, @function +periodic_cal_top: + addi sp, sp, -16 /* (local0) */ # 3254: 12c1f0 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 3257: 0911 + movi a0, .Label015 # 3259: 01f9ff + movi a6, 0 /* 0x00000000 */ # 325c: 0c06 + l8ui a3, a0, 147 /* [periodic_cal_flag] */ # 325e: 320093 + l8ui a5, a0, 107 /* [.Ldata082] */ # 3261: 52006b + bnez a3, .Lbr296 # 3264: cc63 + movi a4, 1 /* 0x00000001 */ # 3266: 0c14 + s8i a4, a0, 147 /* 0x01 -> [periodic_cal_flag] */ # 3268: 424093 + j .Lbr298 # 326b: 460c00 +.Lbr296: s32i a2, sp, 0 /* arg0 -> [(local0)] */ # 326e: 2901 + s8i a6, a0, 147 /* 0x00 -> [periodic_cal_flag] */ # 3270: 624093 + bbsi a5, 1, .Lbr298 # 3273: 17e529 + movi a2, 4 /* 0x00000004 */ # 3276: 0c42 + call0 pm_set_sleep_mode # 3278: 01f5ffc0 + # 327c: 0000 + movi a0, .Label015 # 327e: 01f1ff + l8ui a7, a0, 148 /* [bbpll_cal_flag] */ # 3281: 720094 + bnez a7, .Lbr297 # 3284: cc47 + call0 bbpll_cal # 3286: 050000 + movi a0, .Label015 # 3289: 01efff +.Lbr297: l32i a2, sp, 0 /* [(local0)] */ # 328c: 2801 + movi a8, 0 /* 0x00000000 */ # 328e: 0c08 + s8i a8, a0, 148 /* 0x00 -> [bbpll_cal_flag] */ # 3290: 824094 + call0 periodic_cal # 3293: 050000 + movi a2, 4 /* 0x00000004 */ # 3296: 0c42 + movi a3, 0 /* 0x00000000 */ # 3298: 0c03 + call0 pm_wakeup_init # 329a: 01edffc0 + # 329e: 0000 +.Lbr298: l32i a0, sp, 4 /* [(local1)] */ # 32a0: 0811 + addi sp, sp, 16 /* (top of frame) */ # 32a2: 12c110 + ret # 32a5: 0df0 + + .literal_position # 32a8: e4010000 + # 32ac: e7010000 + # 32b0: e8010000 + # 32b4: ea010000 + # 32b8: ec010000 + +# Function @ .irom0.text+0x32bc + .balign 4 + .global register_chipv6_phy_init_param + .type register_chipv6_phy_init_param, @function +register_chipv6_phy_init_param: + movi a6, 0 /* 0x00000000 */ # 32bc: 0c06 + movi a9, chip6_phy_init_ctrl # 32be: 91faff + l8ui a4, a2, 0 /* [arg0] */ # 32c1: 420200 + mov a5, a9 /* chip6_phy_init_ctrl */ # 32c4: 5d09 + addi a8, a9, -64 /* .bss+0x1a4 */ # 32c6: 82c9c0 + s8i a4, a9, 0 /* [arg0] -> [chip6_phy_init_ctrl] */ # 32c9: 424900 + l8ui a3, a2, 1 /* [arg0+0x1] */ # 32cc: 320201 + addi a7, a9, 15 /* .bss+0x1f3 */ # 32cf: fb79 + extui a3, a3, 1, 1 # 32d1: 303104 + s8i a3, a9, 2 /* a3 -> [.Ldata024] */ # 32d4: 324902 +.Lbr299: add a10, a6, a2 # 32d7: 2aa6 + addi a6, a6, 1 # 32d9: 1b66 + l8ui a10, a10, 2 # 32db: a20a02 + s8i a10, a5, 3 # 32de: a24503 + addi a5, a5, 1 # 32e1: 1b55 + bne a5, a7, .Lbr299 # 32e3: 7795f0 + mov a5, a9 /* chip6_phy_init_ctrl */ # 32e6: 5d09 + movi a10, .Label016 # 32e8: a1f1ff + movi a6, 0 /* 0x00000000 */ # 32eb: 0c06 +.Lbr300: add a3, a6, a2 # 32ed: 2a36 + addi a5, a5, 1 # 32ef: 1b55 + addi a6, a6, 1 # 32f1: 1b66 + l8ui a4, a3, 17 # 32f3: 420311 + s8i a4, a5, 17 # 32f6: 424511 + l8ui a7, a3, 20 # 32f9: 720314 + slli a11, a4, 24 # 32fc: 80b401 + add a4, a4, a7 # 32ff: 7a44 + s8i a4, a5, 20 # 3301: 424514 + l8ui a3, a3, 23 # 3304: 320317 + srai a11, a11, 24 # 3307: b0b831 + add a11, a11, a3 # 330a: 3abb + s8i a11, a5, 23 # 330c: b24517 + bne a5, a10, .Lbr300 # 330f: a795da + mov a5, a9 /* chip6_phy_init_ctrl */ # 3312: 5d09 + movi a7, .Label017 # 3314: 71e7ff + movi a10, 0 /* 0x00000000 */ # 3317: 0c0a + movi a6, 0 /* 0x00000000 */ # 3319: 0c06 + l8ui a11, a2, 26 /* [arg0+0x1a] */ # 331b: b2021a + s8i a11, a8, 92 /* [arg0+0x1a] -> [.Ldata034] */ # 331e: b2485c + l8ui a4, a2, 27 /* [arg0+0x1b] */ # 3321: 42021b + s8i a4, a8, 93 /* [arg0+0x1b] -> [.Ldata035] */ # 3324: 42485d + add a4, a6, a2 /* arg0 */ # 3327: 2a46 + l8ui a3, a2, 28 /* [arg0+0x1c] */ # 3329: 32021c + l8ui a11, a2, 29 /* [arg0+0x1d] */ # 332c: b2021d + extui a3, a3, 0, 6 # 332f: 303054 + slli a3, a3, 8 # 3332: 803311 + or a11, a11, a3 # 3335: 30bb20 + s16i a11, a8, 94 /* a11 -> [.Ldata036] */ # 3338: b2582f +.Lbr301: addi a6, a6, 1 # 333b: 1b66 + l8ui a4, a4, 30 # 333d: 42041e + s8i a4, a5, 32 # 3340: 424520 + slli a3, a4, 24 # 3343: 803401 + srai a3, a3, 24 # 3346: 303831 + bgei a3, 6, .Lbr302 # 3349: e66302 + bbci a4, 7, .Lbr303 # 334c: 776402 +.Lbr302: s8i a10, a5, 32 # 334f: a24520 +.Lbr303: add a4, a6, a2 # 3352: 2a46 + addi a5, a5, 1 # 3354: 1b55 + bne a5, a7, .Lbr301 # 3356: 7795e1 + mov a5, a9 /* chip6_phy_init_ctrl */ # 3359: 5d09 + movi a7, .Label018 # 335b: 71d6ff + movi a6, 0 /* 0x00000000 */ # 335e: 0c06 +.Lbr304: add a10, a6, a2 # 3360: 2aa6 + addi a6, a6, 1 # 3362: 1b66 + l8ui a10, a10, 34 # 3364: a20a22 + s8i a10, a5, 36 # 3367: a24524 + addi a5, a5, 1 # 336a: 1b55 + bne a5, a7, .Lbr304 # 336c: 7795f0 + mov a5, a9 /* chip6_phy_init_ctrl */ # 336f: 5d09 + movi a7, .Label019 # 3371: 71d1ff + movi a6, 0 /* 0x00000000 */ # 3374: 0c06 +.Lbr305: add a11, a6, a2 # 3376: 2ab6 + addi a6, a6, 1 # 3378: 1b66 + l8ui a11, a11, 40 # 337a: b20b28 + s8i a11, a5, 42 # 337d: b2452a + addi a5, a5, 1 # 3380: 1b55 + bne a5, a7, .Lbr305 # 3382: 7795f0 + movi a5, 5 /* 0x00000005 */ # 3385: 0c55 + l8ui a3, a2, 48 /* [arg0+0x30] */ # 3387: 320230 + s8i a3, a8, 65 /* [arg0+0x30] -> [.Ldata023] */ # 338a: 324841 + l8ui a11, a2, 49 /* [arg0+0x31] */ # 338d: b20231 + s8i a11, a8, 115 /* [arg0+0x31] -> [.Ldata037] */ # 3390: b24873 + l8ui a10, a2, 50 /* [arg0+0x32] */ # 3393: a20232 + s8i a10, a8, 116 /* [arg0+0x32] -> [.Ldata038] */ # 3396: a24874 + l8ui a9, a2, 51 /* [arg0+0x33] */ # 3399: 920233 + s8i a9, a8, 117 /* [arg0+0x33] -> [.Ldata039] */ # 339c: 924875 + l8ui a7, a2, 52 /* [arg0+0x34] */ # 339f: 720234 + s8i a7, a8, 118 /* [arg0+0x34] -> [.Ldata040] */ # 33a2: 724876 + l8ui a6, a2, 53 /* [arg0+0x35] */ # 33a5: 620235 + s8i a6, a8, 119 /* [arg0+0x35] -> [.Ldata041] */ # 33a8: 624877 + l8ui a4, a2, 54 /* [arg0+0x36] */ # 33ab: 420236 + s8i a4, a8, 120 /* [arg0+0x36] -> [.Ldata042] */ # 33ae: 424878 + l8ui a3, a2, 55 /* [arg0+0x37] */ # 33b1: 320237 + s8i a3, a8, 121 /* [arg0+0x37] -> [.Ldata043] */ # 33b4: 324879 + l8ui a11, a2, 56 /* [arg0+0x38] */ # 33b7: b20238 + s8i a11, a8, 122 /* [arg0+0x38] -> [.Ldata044] */ # 33ba: b2487a + l8ui a10, a2, 64 /* [arg0+0x40] */ # 33bd: a20240 + s8i a10, a8, 123 /* [arg0+0x40] -> [.Ldata045] */ # 33c0: a2487b + l8ui a9, a2, 65 /* [arg0+0x41] */ # 33c3: 920241 + s8i a9, a8, 124 /* [arg0+0x41] -> [.Ldata046] */ # 33c6: 92487c + l8ui a7, a2, 66 /* [arg0+0x42] */ # 33c9: 720242 + l8ui a6, a2, 67 /* [arg0+0x43] */ # 33cc: 620243 + extui a7, a7, 0, 6 # 33cf: 707054 + slli a7, a7, 8 # 33d2: 807711 + or a6, a6, a7 # 33d5: 706620 + s16i a6, a8, 126 /* a6 -> [.Ldata047] */ # 33d8: 62583f + l8ui a4, a2, 68 /* [arg0+0x44] */ # 33db: 420244 + s8i a4, a8, 128 /* [arg0+0x44] -> [.Ldata048] */ # 33de: 424880 + l8ui a3, a2, 69 /* [arg0+0x45] */ # 33e1: 320245 + s8i a3, a8, 129 /* [arg0+0x45] -> [.Ldata049] */ # 33e4: 324881 + l8ui a11, a2, 71 /* [arg0+0x47] */ # 33e7: b20247 + l8ui a10, a2, 70 /* [arg0+0x46] */ # 33ea: a20246 + slli a11, a11, 24 # 33ed: 80bb01 + slli a10, a10, 24 # 33f0: 80aa01 + srai a10, a10, 24 # 33f3: a0a831 + srai a11, a11, 24 # 33f6: b0b831 + slli a11, a11, 8 # 33f9: 80bb11 + or a10, a10, a11 # 33fc: b0aa20 + s16i a10, a8, 130 /* a10 -> [.Ldata050] */ # 33ff: a25841 + l8ui a9, a2, 73 /* [arg0+0x49] */ # 3402: 920249 + l8ui a7, a2, 72 /* [arg0+0x48] */ # 3405: 720248 + slli a9, a9, 24 # 3408: 809901 + slli a7, a7, 24 # 340b: 807701 + srai a7, a7, 24 # 340e: 707831 + srai a9, a9, 24 # 3411: 909831 + slli a9, a9, 8 # 3414: 809911 + or a7, a7, a9 # 3417: 907720 + s16i a7, a8, 132 /* a7 -> [.Ldata051] */ # 341a: 725842 + l8ui a6, a2, 74 /* [arg0+0x4a] */ # 341d: 62024a + s8i a6, a8, 134 /* [arg0+0x4a] -> [.Ldata052] */ # 3420: 624886 + l8ui a4, a2, 75 /* [arg0+0x4b] */ # 3423: 42024b + mov a6, a5 /* 0x00000005 */ # 3426: 6d05 + extui a4, a4, 0, 4 # 3428: 404034 + s8i a4, a8, 136 /* a4 -> [.Ldata054] */ # 342b: 424888 + bgeui a4, 6, .Lbr306 # 342e: f66401 + mov a6, a4 # 3431: 6d04 +.Lbr306: s8i a6, a8, 136 /* a6 -> [.Ldata054] */ # 3433: 624888 + l8ui a9, a2, 75 /* [arg0+0x4b] */ # 3436: 92024b + extui a9, a9, 4, 3 # 3439: 909424 + s8i a9, a8, 138 /* a9 -> [.Ldata056] */ # 343c: 92488a + l8ui a7, a2, 75 /* [arg0+0x4b] */ # 343f: 72024b + extui a7, a7, 7, 1 # 3442: 707704 + s8i a7, a8, 140 /* a7 -> [.Ldata058] */ # 3445: 72488c + l8ui a6, a2, 76 /* [arg0+0x4c] */ # 3448: 62024c + extui a6, a6, 0, 4 # 344b: 606034 + s8i a6, a8, 135 /* a6 -> [.Ldata053] */ # 344e: 624887 + bltu a5, a6, .Lbr307 # 3451: 673501 + mov a5, a6 # 3454: 5d06 +.Lbr307: s8i a5, a8, 135 /* a5 -> [.Ldata053] */ # 3456: 524887 + l8ui a9, a2, 76 /* [arg0+0x4c] */ # 3459: 92024c + extui a9, a9, 4, 3 # 345c: 909424 + s8i a9, a8, 137 /* a9 -> [.Ldata055] */ # 345f: 924889 + l8ui a7, a2, 76 /* [arg0+0x4c] */ # 3462: 72024c + extui a7, a7, 7, 1 # 3465: 707704 + s8i a7, a8, 139 /* a7 -> [.Ldata057] */ # 3468: 72488b + l8ui a6, a2, 77 /* [arg0+0x4d] */ # 346b: 62024d + extui a6, a6, 0, 4 # 346e: 606034 + s8i a6, a8, 142 /* a6 -> [.Ldata060] */ # 3471: 62488e + l8ui a4, a2, 77 /* [arg0+0x4d] */ # 3474: 42024d + extui a4, a4, 4, 4 # 3477: 404434 + s8i a4, a8, 141 /* a4 -> [.Ldata059] */ # 347a: 42488d + l8ui a3, a2, 78 /* [arg0+0x4e] */ # 347d: 32024e + s8i a3, a8, 143 /* [arg0+0x4e] -> [.Ldata061] */ # 3480: 32488f + l8ui a11, a2, 79 /* [arg0+0x4f] */ # 3483: b2024f + s8i a11, a8, 144 /* [arg0+0x4f] -> [.Ldata062] */ # 3486: b24890 + l8ui a10, a2, 80 /* [arg0+0x50] */ # 3489: a20250 + s8i a10, a8, 145 /* [arg0+0x50] -> [.Ldata063] */ # 348c: a24891 + l8ui a9, a2, 81 /* [arg0+0x51] */ # 348f: 920251 + s8i a9, a8, 146 /* [arg0+0x51] -> [.Ldata064] */ # 3492: 924892 + l8ui a7, a2, 82 /* [arg0+0x52] */ # 3495: 720252 + s8i a7, a8, 147 /* [arg0+0x52] -> [.Ldata065] */ # 3498: 724893 + l8ui a6, a2, 83 /* [arg0+0x53] */ # 349b: 620253 + s8i a6, a8, 148 /* [arg0+0x53] -> [.Ldata066] */ # 349e: 624894 + l8ui a4, a2, 84 /* [arg0+0x54] */ # 34a1: 420254 + s8i a4, a8, 149 /* [arg0+0x54] -> [.Ldata067] */ # 34a4: 424895 + l8ui a3, a2, 85 /* [arg0+0x55] */ # 34a7: 320255 + s8i a3, a8, 150 /* [arg0+0x55] -> [.Ldata068] */ # 34aa: 324896 + l8ui a11, a2, 86 /* [arg0+0x56] */ # 34ad: b20256 + s8i a11, a8, 151 /* [arg0+0x56] -> [.Ldata069] */ # 34b0: b24897 + l8ui a10, a2, 87 /* [arg0+0x57] */ # 34b3: a20257 + s8i a10, a8, 152 /* [arg0+0x57] -> [.Ldata070] */ # 34b6: a24898 + l8ui a9, a2, 88 /* [arg0+0x58] */ # 34b9: 920258 + s8i a9, a8, 153 /* [arg0+0x58] -> [.Ldata071] */ # 34bc: 924899 + l8ui a7, a2, 89 /* [arg0+0x59] */ # 34bf: 720259 + s8i a7, a8, 154 /* [arg0+0x59] -> [.Ldata072] */ # 34c2: 72489a + l8ui a6, a2, 90 /* [arg0+0x5a] */ # 34c5: 62025a + s8i a6, a8, 155 /* [arg0+0x5a] -> [.Ldata073] */ # 34c8: 62489b + l8ui a4, a2, 91 /* [arg0+0x5b] */ # 34cb: 42025b + s8i a4, a8, 156 /* [arg0+0x5b] -> [.Ldata074] */ # 34ce: 42489c + l8ui a3, a2, 92 /* [arg0+0x5c] */ # 34d1: 32025c + s8i a3, a8, 157 /* [arg0+0x5c] -> [.Ldata075] */ # 34d4: 32489d + l8ui a11, a2, 93 /* [arg0+0x5d] */ # 34d7: b2025d + s8i a11, a8, 158 /* [arg0+0x5d] -> [.Ldata076] */ # 34da: b2489e + l8ui a10, a2, 94 /* [arg0+0x5e] */ # 34dd: a2025e + s8i a10, a8, 159 /* [arg0+0x5e] -> [.Ldata077] */ # 34e0: a2489f + l8ui a9, a2, 95 /* [arg0+0x5f] */ # 34e3: 92025f + s8i a9, a8, 160 /* [arg0+0x5f] -> [.Ldata078] */ # 34e6: 9248a0 + l8ui a7, a2, 96 /* [arg0+0x60] */ # 34e9: 720260 + s8i a7, a8, 161 /* [arg0+0x60] -> [.Ldata079] */ # 34ec: 7248a1 + l8ui a6, a2, 97 /* [arg0+0x61] */ # 34ef: 620261 + s8i a6, a8, 162 /* [arg0+0x61] -> [.Ldata080] */ # 34f2: 6248a2 + l8ui a4, a2, 98 /* [arg0+0x62] */ # 34f5: 420262 + s8i a4, a8, 163 /* [arg0+0x62] -> [.Ldata081] */ # 34f8: 4248a3 + l8ui a3, a2, 99 /* [arg0+0x63] */ # 34fb: 320263 + s8i a3, a8, 164 /* [arg0+0x63] -> [.Ldata082] */ # 34fe: 3248a4 + l8ui a11, a2, 100 /* [arg0+0x64] */ # 3501: b20264 + s8i a11, a8, 165 /* [arg0+0x64] -> [.Ldata083] */ # 3504: b248a5 + l8ui a10, a2, 101 /* [arg0+0x65] */ # 3507: a20265 + s8i a10, a8, 166 /* [arg0+0x65] -> [.Ldata084] */ # 350a: a248a6 + l8ui a9, a2, 102 /* [arg0+0x66] */ # 350d: 920266 + s8i a9, a8, 167 /* [arg0+0x66] -> [.Ldata085] */ # 3510: 9248a7 + l8ui a7, a2, 103 /* [arg0+0x67] */ # 3513: 720267 + s8i a7, a8, 168 /* [arg0+0x67] -> [.Ldata086] */ # 3516: 7248a8 + l8ui a6, a2, 104 /* [arg0+0x68] */ # 3519: 620268 + s8i a6, a8, 169 /* [arg0+0x68] -> [.Ldata087] */ # 351c: 6248a9 + l8ui a4, a2, 105 /* [arg0+0x69] */ # 351f: 420269 + s8i a4, a8, 170 /* [arg0+0x69] -> [.Ldata088] */ # 3522: 4248aa + l8ui a3, a2, 106 /* [arg0+0x6a] */ # 3525: 32026a + s8i a3, a8, 171 /* [arg0+0x6a] -> [.Ldata089] */ # 3528: 3248ab + l8ui a11, a2, 107 /* [arg0+0x6b] */ # 352b: b2026b + s8i a11, a8, 172 /* [arg0+0x6b] -> [.Ldata090] */ # 352e: b248ac + l8ui a10, a2, 108 /* [arg0+0x6c] */ # 3531: a2026c + s8i a10, a8, 173 /* [arg0+0x6c] -> [.Ldata091] */ # 3534: a248ad + movi a2, 0 /* 0x00000000 */ # 3537: 0c02 + ret /* 0x00000000 */ # 3539: 0df0 + + .literal_position # 353c: 00060060 + # 3540: 00000000 + # 3544: 70008000 + # 3548: 00001000 + # 354c: 65010000 + # 3550: 00000000 + # 3554: 00000000 + # 3558: 00000000 + # 355c: 00000000 + # 3560: 00000000 + # 3564: 00000000 + +# Function @ .irom0.text+0x3568 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word @ -0x8 +# (local3): word @ -0x4 + .balign 4 + .global change_bbpll160_sleep + .type change_bbpll160_sleep, @function +change_bbpll160_sleep: + addi sp, sp, -16 /* (local0) */ # 3568: 12c1f0 + s32i a0, sp, 8 /* a0 -> [(local2)] */ # 356b: 0921 + s32i a12, sp, 12 /* a12 -> [(local3)] */ # 356d: c931 + movi a2, -1 /* 0xffffffff */ # 356f: 7cf2 + movi a12, 0x60000600 # 3571: c1f2ff + movi a0, g_phyFuns # 3574: 01f3ff + memw # 3577: c02000 + movi a3, 2 /* 0x00000002 */ # 357a: 0c23 + movi a4, 8 /* 0x00000008 */ # 357c: 0c84 + movi a5, 0 /* 0x00000000 */ # 357e: 0c05 + l32i a0, a0, 0 /* [g_phyFuns] */ # 3580: 0800 + s32i a2, a12, 0x124 /* 0xffffffff -> [0x60000724] */ # 3582: 226c49 + l32i a0, a0, 152 /* [[g_phyFuns]+0x98] */ # 3585: 022026 + movi a2, 106 /* 0x0000006a */ # 3588: 22a06a + callx0 a0 /* [[g_phyFuns]+0x98] */ # 358b: c00000 + movi a2, 0 /* 0x00000000 */ # 358e: 0c02 + memw # 3590: c02000 + s32i a2, a12, 0x10c /* 0x00000000 -> [0x6000070c] */ # 3593: 226c43 + movi a2, 3 /* 0x00000003 */ # 3596: 0c32 + call0 pm_set_sleep_cycles # 3598: 01f1ffc0 + # 359c: 0000 + memw # 359e: c02000 + movi a7, 0 /* 0x00000000 */ # 35a1: 0c07 + s32i a7, a12, 0x140 /* 0x00000000 -> [0x60000740] */ # 35a3: 726c50 + memw # 35a6: c02000 + s32i a7, a12, 0x144 /* 0x00000000 -> [0x60000744] */ # 35a9: 726c51 + movi a6, -2 /* 0xfffffffe */ # 35ac: 7ce6 + memw # 35ae: c02000 + l32i a5, a12, 0x1a8 /* [0x600007a8] */ # 35b1: 522c6a + and a5, a5, a6 # 35b4: 605510 + memw # 35b7: c02000 + s32i a5, a12, 0x1a8 /* a5 -> [0x600007a8] */ # 35ba: 526c6a + memw # 35bd: c02000 + l32i a4, a12, 0x100 /* [0x60000700] */ # 35c0: 422c40 + s32i a4, sp, 4 /* [0x60000700] -> [(local1)] */ # 35c3: 4911 + movi a3, 0x00800070 # 35c5: 31dfff + memw # 35c8: c02000 + s32i a3, a12, 0x100 /* 0x00800070 -> [0x60000700] */ # 35cb: 326c40 + movi a2, 8 /* 0x00000008 */ # 35ce: 0c82 + movi a3, 0 /* 0x00000000 */ # 35d0: 0c03 + call0 pm_wakeup_opt # 35d2: 01e3ffc0 + # 35d6: 0000 + movi a9, 0x00100000 # 35d8: 91dcff + memw # 35db: c02000 + l32i a8, a12, 0x108 /* [0x60000708] */ # 35de: 822c42 + movi a0, .Label006 # 35e1: 01daff + or a8, a8, a9 # 35e4: 908820 + l8ui a0, a0, 128 /* [.Ldata023] */ # 35e7: 020080 + s32i a8, sp, 0 /* a8 -> [(local0)] */ # 35ea: 8901 + bnei a0, 1, .Lbr308 # 35ec: 66102c + movi a2, 103 /* 0x00000067 */ # 35ef: 22a067 + movi a0, g_phyFuns # 35f2: 01d7ff + movi a3, 4 /* 0x00000004 */ # 35f5: 0c43 + l32i a0, a0, 0 /* [g_phyFuns] */ # 35f7: 0800 + movi a4, 1 /* 0x00000001 */ # 35f9: 0c14 + l32i a0, a0, 152 /* [[g_phyFuns]+0x98] */ # 35fb: 022026 + movi a5, 136 /* 0x00000088 */ # 35fe: 52a088 + callx0 a0 /* [[g_phyFuns]+0x98] */ # 3601: c00000 + movi a2, 103 /* 0x00000067 */ # 3604: 22a067 + movi a0, g_phyFuns # 3607: 01d3ff + movi a3, 4 /* 0x00000004 */ # 360a: 0c43 + l32i a0, a0, 0 /* [g_phyFuns] */ # 360c: 0800 + movi a4, 2 /* 0x00000002 */ # 360e: 0c24 + l32i a0, a0, 152 /* [[g_phyFuns]+0x98] */ # 3610: 022026 + movi a5, 145 /* 0x00000091 */ # 3613: 52a091 + callx0 a0 /* [[g_phyFuns]+0x98] */ # 3616: c00000 + j .Lbr309 # 3619: 860600 +.Lbr308: bnei a0, 2, .Lbr309 # 361c: 662017 + movi a2, 103 /* 0x00000067 */ # 361f: 22a067 + movi a3, 4 /* 0x00000004 */ # 3622: 0c43 + movi a4, 2 /* 0x00000002 */ # 3624: 0c24 + movi a0, g_phyFuns # 3626: 01ccff + movi a5, 7 /* 0x00000007 */ # 3629: 0c75 + l32i a0, a0, 0 /* [g_phyFuns] */ # 362b: 0800 + movi a6, 5 /* 0x00000005 */ # 362d: 0c56 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 362f: 022027 + movi a7, 2 /* 0x00000002 */ # 3632: 0c27 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 3634: c00000 +.Lbr309: memw # 3637: c02000 + l32i a2, sp, 0 /* [(local0)] */ # 363a: 2801 + s32i a2, a12, 0x108 /* [(local0)] -> [0x60000708] */ # 363c: 226c42 + movi a2, 1 /* 0x00000001 */ # 363f: 0c12 + call0 pm_wait4wakeup # 3641: 01c8ffc0 + # 3645: 0000 + memw # 3647: c02000 + l32i a3, sp, 4 /* [(local1)] */ # 364a: 3811 + l32i a0, sp, 8 /* [(local2)] */ # 364c: 0821 + s32i a3, a12, 0x100 /* [(local1)] -> [0x60000700] */ # 364e: 326c40 + l32i a12, sp, 12 /* [(local3)] */ # 3651: c831 + addi sp, sp, 16 /* (top of frame) */ # 3653: 12c110 + ret # 3656: 0df0 + + .literal_position # 3658: 97010000 + # 365c: 00000000 + +# Function @ .irom0.text+0x3660 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global change_bbpll160 + .type change_bbpll160, @function +change_bbpll160: + addi sp, sp, -16 /* (local0) */ # 3660: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 3663: 0901 + call0 get_chip_version # 3665: 01fdffc0 + # 3669: 0000 + movi a0, .Label010 # 366b: 01fbff + l8ui a3, a0, 78 /* [.Ldata023] */ # 366e: 32004e + l8ui a0, a0, 178 /* [.Ldata083] */ # 3671: 0200b2 + beqz a3, .Lbr311 # 3674: 9c13 + bnei a0, 1, .Lbr310 # 3676: 661005 + call0 change_bbpll160_sleep # 3679: 050000 + j .Lbr311 # 367c: 460200 +.Lbr310: bnez a0, .Lbr311 # 367f: cc60 + beqi a2, 1, .Lbr311 # 3681: 261204 + beqz a2, .Lbr311 # 3684: 8c12 + call0 change_bbpll160_sleep # 3686: 050000 +.Lbr311: l32i a0, sp, 0 /* [(local0)] */ # 3689: 0801 + addi sp, sp, 16 /* (top of frame) */ # 368b: 12c110 + ret # 368e: 0df0 + + .literal_position # 3690: 65010000 + # 3694: 00000000 + # 3698: 00020060 + # 369c: 00060060 + # 36a0: 00000000 + # 36a4: 00000000 + +# Function @ .irom0.text+0x36a8 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global set_crystal_uart + .type set_crystal_uart, @function +set_crystal_uart: + addi sp, sp, -16 /* (local0) */ # 36a8: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 36ab: 0901 + movi a0, .Label006 # 36ad: 01f8ff + movi a2, rxiq_compute_num # 36b0: 21f9ff + l8ui a0, a0, 128 /* [.Ldata023] */ # 36b3: 020080 + l32i a2, a2, 12 /* [chip6_sleep_params] */ # 36b6: 2832 + beqz a0, .Lbr312 # 36b8: bc80 + bbsi a2, 27, .Lbr312 # 36ba: b7f236 + call0 change_bbpll160_sleep # 36bd: 050000 + movi a0, 0x60000200 # 36c0: 01f6ff + memw # 36c3: c02000 + l32i a3, a0, 0x118 /* [0x60000318] */ # 36c6: 322046 + bbci a3, 18, .Lbr312 # 36c9: 277327 + memw # 36cc: c02000 + l32i a4, a0, 0x118 /* [0x60000318] */ # 36cf: 422046 + extui a4, a4, 29, 3 # 36d2: 404d25 + bnei a4, 2, .Lbr312 # 36d5: 66241b + movi a5, 0x60000600 # 36d8: 51f1ff + memw # 36db: c02000 + l32i a5, a5, 0x220 /* [0x60000820] */ # 36de: 522588 + bbci a5, 8, .Lbr312 # 36e1: 87650f + movi a2, 1 /* 0x00000001 */ # 36e4: 0c12 + call0 Uart_Init # 36e6: 01eeffc0 + # 36ea: 0000 + movi a2, 1 /* 0x00000001 */ # 36ec: 0c12 + call0 uart_buff_switch # 36ee: 01edffc0 + # 36f2: 0000 +.Lbr312: l32i a0, sp, 0 /* [(local0)] */ # 36f4: 0801 + addi sp, sp, 16 /* (top of frame) */ # 36f6: 12c110 + ret # 36f9: 0df0 + + .literal_position # 36fc: 9a010000 + # 3700: 009a0060 + # 3704: 01010101 + # 3708: 04040404 + # 370c: 04010104 + # 3710: 01040401 + # 3714: 00008000 + # 3718: ffc3ffff + # 371c: 00080000 + # 3720: 01010104 + # 3724: 04040401 + +# Function @ .irom0.text+0x3728 + .balign 4 + .global ant_switch_init + .type ant_switch_init, @function +ant_switch_init: + movi a7, .Label011 # 3728: 71f5ff + movi a3, 0x60009a00 # 372b: 31f5ff + l8ui a4, a7, 127 /* [.Ldata039] */ # 372e: 42077f + movi a5, 0x01010101 # 3731: 51f4ff + beqi a4, 1, .Lbr315 # 3734: 261468 + beqi a4, 3, .Lbr315 # 3737: 263465 + movi a6, 0x04040404 # 373a: 61f3ff + beqi a4, 4, .Lbr316 # 373d: 264471 + beqi a4, 5, .Lbr316 # 3740: 26546e + l8ui a4, a7, 129 /* [.Ldata041] */ # 3743: 420781 + bnei a4, 2, .Lbr313 # 3746: 662411 + movi a2, 0x04010104 # 3749: 21f0ff + memw # 374c: c02000 + s32i a2, a3, 0x360 /* 0x04010104 -> [0x60009d60] */ # 374f: 2263d8 + memw # 3752: c02000 + s32i a6, a3, 0x364 /* 0x04040404 -> [0x60009d64] */ # 3755: 6263d9 + j .Lbr314 # 3758: 460400 +.Lbr313: bnei a4, 3, .Lbr314 # 375b: 66340e + movi a4, 0x01040401 # 375e: 41ecff + memw # 3761: c02000 + s32i a4, a3, 0x360 /* 0x01040401 -> [0x60009d60] */ # 3764: 4263d8 + memw # 3767: c02000 + s32i a5, a3, 0x364 /* 0x01010101 -> [0x60009d64] */ # 376a: 5263d9 +.Lbr314: movi a10, 0x00800000 # 376d: a1e9ff + memw # 3770: c02000 + l32i a9, a3, 0x100 /* [0x60009b00] */ # 3773: 922340 + or a9, a9, a10 # 3776: a09920 + memw # 3779: c02000 + s32i a9, a3, 0x100 /* a9 -> [0x60009b00] */ # 377c: 926340 + movi a8, 0xffffc3ff # 377f: 81e6ff + movi a7, 0x00000800 # 3782: 71e6ff + memw # 3785: c02000 + l32i a6, a3, 0x108 /* [0x60009b08] */ # 3788: 622342 + and a6, a6, a8 # 378b: 806610 + or a6, a6, a7 # 378e: 706620 + memw # 3791: c02000 + s32i a6, a3, 0x108 /* a6 -> [0x60009b08] */ # 3794: 626342 + movi a5, 2 /* 0x00000002 */ # 3797: 0c25 + memw # 3799: c02000 + s32i a5, a3, 40 /* 0x00000002 -> [0x60009a28] */ # 379c: 59a3 + ret # 379e: 0df0 +.Lbr315: memw # 37a0: c02000 + s32i a5, a3, 0x360 /* 0x01010101 -> [0x60009d60] */ # 37a3: 5263d8 + movi a11, 0x04010101 # 37a6: b1deff + memw # 37a9: c02000 + s32i a11, a3, 0x364 /* 0x04010101 -> [0x60009d64] */ # 37ac: b263d9 + j .Lbr314 # 37af: 86eeff +.Lbr316: memw # 37b2: c02000 + s32i a6, a3, 0x360 /* 0x04040404 -> [0x60009d60] */ # 37b5: 6263d8 + movi a2, 0x01040404 # 37b8: 21dbff + memw # 37bb: c02000 + s32i a2, a3, 0x364 /* 0x01040404 -> [0x60009d64] */ # 37be: 2263d9 + j .Lbr314 # 37c1: 06eaff + + .literal_position # 37c4: 00060060 + # 37c8: d6010000 + # 37cc: 000e0060 + # 37d0: 8a030000 + # 37d4: d6010000 + # 37d8: 0c000000 + # 37dc: 0c000000 + # 37e0: 7c000000 + # 37e4: ffffff1f + # 37e8: 0000ff12 + # 37ec: 000a0060 + # 37f0: 00000000 + # 37f4: 00000000 + # 37f8: 00000000 + # 37fc: 00000000 + # 3800: 00000000 + # 3804: 00000000 + # 3808: 00000000 + # 380c: 00000000 + # 3810: 00000000 + # 3814: 00000000 + # 3818: 00000000 + # 381c: 00000000 + # 3820: 00000000 + # 3824: 04000000 + # 3828: 0c000000 + # 382c: 00000002 + # 3830: 7c000000 + # 3834: 00001101 + # 3838: d6010000 + # 383c: d6010000 + # 3840: 0000ffff + # 3844: 00000000 + # 3848: 00000000 + +# Function @ .irom0.text+0x384c +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word @ -0x10 +# (local5): word[3] @ -0xc + .balign 4 + .global register_chipv6_phy + .type register_chipv6_phy, @function +register_chipv6_phy: + movi a5, 0x60000600 # 384c: 51deff + movi a3, .Ldata020 # 384f: 31deff + addi sp, sp, -32 /* (local0) */ # 3852: 12c1e0 + s32i a12, sp, 8 /* a12 -> [(local2)] */ # 3855: c921 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 3857: 0911 + s32i a15, sp, 20 /* a15 -> [(local5)] */ # 3859: f951 + s32i a13, sp, 12 /* a13 -> [(local3)] */ # 385b: d931 + s32i a14, sp, 16 /* a14 -> [(local4)] */ # 385d: e941 + mov a14, a2 /* arg0 */ # 385f: ed02 + movi a13, 0x60000e00 # 3861: d1daff + movi a15, .Ldata099 # 3864: f1dbff + memw # 3867: c02000 + l8ui a0, a15, 0 /* [.Ldata099] */ # 386a: 020f00 + movi a4, 1 /* 0x00000001 */ # 386d: 0c14 + l32i a5, a5, 0x114 /* [0x60000714] */ # 386f: 522545 + movi a2, 0 /* 0x00000000 */ # 3872: 0c02 + extui a5, a5, 0, 3 # 3874: 505024 + addi a5, a5, -2 # 3877: 52c5fe + moveqz a2, a4, a5 # 387a: 502483 + s8i a2, a3, 156 /* a2 -> [deep_sleep_en] */ # 387d: 22439c + bnez a0, .Lbr317 # 3880: ec00 + beqz a2, .Lbr326 # 3882: 16521a + movi a3, .Ldata020 # 3885: 31d3ff + l8ui a3, a3, 123 /* [.Ldata091] */ # 3888: 32037b + beqz a3, .Lbr326 # 388b: 16c319 + memw # 388e: c02000 + l32i a2, a13, 0x27c /* [0x6000107c] */ # 3891: 222d9f + extui a2, a2, 0, 16 # 3894: 2020f4 + sub a4, a3, a2 # 3897: 2043c0 + bnez a4, .Lbr328 # 389a: 56941a + movi a2, 0 /* 0x00000000 */ # 389d: 0c02 + movi a5, 0 /* 0x00000000 */ # 389f: 0c05 + j .Lbr327 # 38a1: 866200 +.Lbr317: movi a5, 0 /* 0x00000000 */ # 38a4: 0c05 +.Lbr318: movi a3, chip6_sleep_params # 38a6: 31ccff + addi a12, a3, -12 /* rxiq_compute_num */ # 38a9: c2c3f4 + addi a3, a3, 111 /* .bss+0x7b */ # 38ac: 32c36f + beqz a5, .Lbr320 # 38af: ac85 + movi a2, chip6_sleep_params # 38b1: 21caff + movi a4, 0 /* 0x00000000 */ # 38b4: 0c04 + call0 rtc_mem_recovery # 38b6: 050000 + mov a4, a2 # 38b9: 4d02 + s32i a2, a12, 0x1dc /* a2 -> [.Ldata022] */ # 38bb: 226c77 + movi a2, .Label003 # 38be: 21c8ff + addi a3, a2, 9 /* .Ldata018 */ # 38c1: 9b32 + call0 rtc_mem_recovery # 38c3: 050000 + movi a9, 0x1fffffff # 38c6: 91c7ff + l32i a7, a12, 12 /* [chip6_sleep_params] */ # 38c9: 783c + movi a8, 0x12ff0000 # 38cb: 81c7ff + and a7, a7, a9 # 38ce: 907710 + beq a7, a8, .Lbr319 # 38d1: 871703 + movi a10, 0 /* 0x00000000 */ # 38d4: 0c0a + s32i a10, a12, 12 /* 0x00000000 -> [chip6_sleep_params] */ # 38d6: a93c +.Lbr319: l8ui a0, a15, 0 /* [.Ldata099] */ # 38d8: 020f00 +.Lbr320: movi a7, 1 /* 0x00000001 */ # 38db: 0c17 + movi a4, 0x60000a00 # 38dd: 41c3ff + memw # 38e0: c02000 + l32i a6, a4, 0x348 /* [0x60000d48] */ # 38e3: 6224d2 + or a6, a6, a7 # 38e6: 706620 + memw # 38e9: c02000 + s32i a6, a4, 0x348 /* a6 -> [0x60000d48] */ # 38ec: 6264d2 + movi a5, -2 /* 0xfffffffe */ # 38ef: 7ce5 + memw # 38f1: c02000 + l32i a3, a4, 0x348 /* [0x60000d48] */ # 38f4: 3224d2 + and a3, a3, a5 # 38f7: 503310 + memw # 38fa: c02000 + movi a11, ram_cal_tos_v60 # 38fd: b1bfff + movi a9, ram_chip_v6_rx_init # 3900: 91c1ff + movi a10, ram_pbus_debugmode # 3903: a1bfff + movi a8, ram_get_noisefloor # 3906: 81c0ff + movi a7, ram_set_noise_floor # 3909: 71c0ff + movi a6, ram_start_noisefloor # 390c: 61c1ff + movi a5, ram_get_fm_sar_dout # 390f: 51c1ff + s32i a3, a4, 0x348 /* a3 -> [0x60000d48] */ # 3912: 3264d2 + movi a2, g_phyFuns # 3915: 21b6ff + movi a3, ram_rxiq_get_mis # 3918: 31b8ff + l32i a2, a2, 0 /* [g_phyFuns] */ # 391b: 2802 + movi a4, ram_rxiq_cover_mg_mp # 391d: 41b5ff + s32i a5, a2, 36 /* ram_get_fm_sar_dout -> [[g_phyFuns]+0x24] */ # 3920: 5992 + s32i a6, a2, 100 /* ram_start_noisefloor -> [[g_phyFuns]+0x64] */ # 3922: 626219 + s32i a7, a2, 88 /* ram_set_noise_floor -> [[g_phyFuns]+0x58] */ # 3925: 726216 + s32i a8, a2, 40 /* ram_get_noisefloor -> [[g_phyFuns]+0x28] */ # 3928: 89a2 + s32i a10, a2, 160 /* ram_pbus_debugmode -> [[g_phyFuns]+0xa0] */ # 392a: a26228 + s32i a9, a2, 136 /* ram_chip_v6_rx_init -> [[g_phyFuns]+0x88] */ # 392d: 926222 + s32i a11, a2, 232 /* ram_cal_tos_v60 -> [[g_phyFuns]+0xe8] */ # 3930: b2623a + s32i a4, a2, 0x10c /* ram_rxiq_cover_mg_mp -> [[g_phyFuns]+0x10c] */ # 3933: 426243 + s32i a3, a2, 72 /* ram_rxiq_get_mis -> [[g_phyFuns]+0x48] */ # 3936: 326212 + movi a4, ram_restart_cal # 3939: 41b7ff + movi a3, ram_tx_mac_enable # 393c: 31b8ff + movi a11, ram_tx_mac_disable # 393f: b1b8ff + s32i a11, a2, 116 /* ram_tx_mac_disable -> [[g_phyFuns]+0x74] */ # 3942: b2621d + s32i a3, a2, 120 /* ram_tx_mac_enable -> [[g_phyFuns]+0x78] */ # 3945: 32621e + s32i a4, a2, 216 /* ram_restart_cal -> [[g_phyFuns]+0xd8] */ # 3948: 426236 + bnez a0, .Lbr321 # 394b: ccc0 + mov a2, a14 /* arg0 */ # 394d: 2d0e + call0 register_chipv6_phy_init_param # 394f: 050000 + mov a14, a2 # 3952: ed02 + movi a8, 14 /* 0x0000000e */ # 3954: 0ce8 + s32i a8, sp, 0 /* 0x0000000e -> [(local0)] */ # 3956: 8901 + j .Lbr322 # 3958: 060300 +.Lbr321: l8ui a9, a12, 90 /* [.Ldata003] */ # 395b: 920c5a + movi a14, 0 /* 0x00000000 */ # 395e: 0c0e + slli a9, a9, 24 # 3960: 809901 + srai a9, a9, 24 # 3963: 909831 + s32i a9, sp, 0 /* a9 -> [(local0)] */ # 3966: 9901 +.Lbr322: call0 set_crystal_uart # 3968: 050000 + call0 ant_switch_init # 396b: 050000 + call0 phy_gpio_cfg # 396e: 050000 + call0 tx_cont_dis # 3971: 050000 + movi a2, .Lrel001 # 3974: 21acff + call0 register_phy_ops # 3977: 01b3ffc0 + # 397b: 0000 + l8ui a10, a15, 0 /* [.Ldata099] */ # 397d: a20f00 + l32i a0, a12, 12 /* [chip6_sleep_params] */ # 3980: 083c + bnei a10, 1, .Lbr323 # 3982: 661a0d + bbsi a0, 27, .Lbr324 # 3985: b7f02a + l32i a2, sp, 0 /* [(local0)] */ # 3988: 2801 + call0 chip_v6_set_chan # 398a: 01afffc0 + # 398e: 0000 + j .Lbr324 # 3990: c60700 +.Lbr323: movi a4, 0 /* 0x00000000 */ # 3993: 0c04 + movi a2, chip6_sleep_params # 3995: 21a4ff + movi a11, 0x02000000 # 3998: b1a5ff + addi a3, a2, 111 /* .bss+0x7b */ # 399b: 32c26f + or a11, a0, a11 # 399e: b0b020 + s32i a11, a12, 12 /* a11 -> [chip6_sleep_params] */ # 39a1: b93c + call0 rtc_mem_backup # 39a3: 050000 + mov a4, a2 # 39a6: 4d02 + s32i a2, a12, 0x1dc /* a2 -> [.Ldata022] */ # 39a8: 226c77 + movi a2, .Label003 # 39ab: 21a1ff + addi a3, a2, 9 /* .Ldata018 */ # 39ae: 9b32 + call0 rtc_mem_backup # 39b0: 050000 +.Lbr324: movi a2, 0x01110000 # 39b3: 21a0ff + memw # 39b6: c02000 + l32i a0, a13, 0x27c /* [0x6000107c] */ # 39b9: 022d9f + extui a0, a0, 0, 16 # 39bc: 0000f4 + or a0, a0, a2 # 39bf: 200020 + memw # 39c2: c02000 + movi a12, .Ldata020 # 39c5: c19cff + s32i a0, a13, 0x27c /* a0 -> [0x6000107c] */ # 39c8: 026d9f + l8ui a12, a12, 103 /* [.Ldata071] */ # 39cb: c20c67 + bnei a12, 2, .Lbr325 # 39ce: 662c43 + movi a5, .Ldata020 # 39d1: 519aff + l8ui a6, a5, 102 /* [.Ldata070] */ # 39d4: 620566 + l8ui a4, a5, 100 /* [.Ldata068] */ # 39d7: 420564 + l8ui a3, a5, 99 /* [.Ldata067] */ # 39da: 320563 + slli a4, a4, 8 # 39dd: 804411 + or a3, a3, a4 # 39e0: 403320 + l8ui a4, a5, 117 /* [.Ldata085] */ # 39e3: 420575 + l8ui a2, a5, 116 /* [.Ldata084] */ # 39e6: 220574 + slli a4, a4, 8 # 39e9: 804411 + or a2, a2, a4 # 39ec: 402220 + l8ui a4, a5, 101 /* [.Ldata069] */ # 39ef: 420565 + slli a6, a6, 24 # 39f2: 806601 + slli a4, a4, 16 # 39f5: 004411 + or a4, a4, a6 # 39f8: 604420 + or a3, a3, a4 # 39fb: 403320 + l8ui a6, a5, 119 /* [.Ldata087] */ # 39fe: 620577 + l8ui a5, a5, 118 /* [.Ldata086] */ # 3a01: 520576 + slli a6, a6, 24 # 3a04: 806601 + slli a5, a5, 16 # 3a07: 005511 + or a5, a5, a6 # 3a0a: 605520 + or a2, a2, a5 # 3a0d: 502220 + memw # 3a10: c02000 + s32i a2, a3, 0 # 3a13: 2903 +.Lbr325: l32i a0, sp, 4 /* [(local1)] */ # 3a15: 0811 + l32i a12, sp, 8 /* [(local2)] */ # 3a17: c821 + l32i a13, sp, 12 /* [(local3)] */ # 3a19: d831 + mov a2, a14 # 3a1b: 2d0e + movi a5, 1 /* 0x00000001 */ # 3a1d: 0c15 + s8i a5, a15, 0 /* 0x01 -> [.Ldata099] */ # 3a1f: 524f00 + l32i a14, sp, 16 /* [(local4)] */ # 3a22: e841 + l32i a15, sp, 20 /* [(local5)] */ # 3a24: f851 + addi sp, sp, 32 /* (top of frame) */ # 3a26: 12c120 + ret # 3a29: 0df0 +.Lbr326: movi a2, 0 /* 0x00000000 */ # 3a2b: 0c02 + movi a5, 0 /* 0x00000000 */ # 3a2d: 0c05 +.Lbr327: movi a7, 0xffff0000 # 3a2f: 7184ff + memw # 3a32: c02000 + l32i a6, a13, 0x27c /* [0x6000107c] */ # 3a35: 622d9f + and a6, a6, a7 # 3a38: 706610 + or a6, a6, a2 # 3a3b: 206620 + memw # 3a3e: c02000 + s32i a6, a13, 0x27c /* a6 -> [0x6000107c] */ # 3a41: 626d9f + j .Lbr318 # 3a44: 8697ff +.Lbr328: movi a5, 1 /* 0x00000001 */ # 3a47: 0c15 + addi a2, a2, 1 # 3a49: 1b22 + extui a2, a2, 0, 16 # 3a4b: 2020f4 + j .Lbr327 # 3a4e: 46f7ff + + .section .rodata.str1.4, "MSa", @progbits, 1 + +.Lstr001: .asciz "set_rx_gain: rftx=%x, rfrx=x%x, att=%d, txbb=0x%x, bbrx1=0x%x, bbrx2=0x%x, tdc:%d,%d\n" # 0: 7365745f + # 4: 72785f67 + # 8: 61696e3a + # c: 20726674 + # 10: 783d2578 + # 14: 2c207266 + # 18: 72783d78 + # 1c: 25782c20 + # 20: 6174743d + # 24: 25642c20 + # 28: 74786262 + # 2c: 3d307825 + # 30: 782c2062 + # 34: 62727831 + # 38: 3d307825 + # 3c: 782c2062 + # 40: 62727832 + # 44: 3d307825 + # 48: 782c2074 + # 4c: 64633a25 + # 50: 642c2564 + # 54: 0a00 + .balign 4 +.Lstr002: .asciz "total_pwr=%ld, max=%ld, \n" # 58: 746f7461 + # 5c: 6c5f7077 + # 60: 723d256c + # 64: 642c206d + # 68: 61783d25 + # 6c: 6c642c20 + # 70: 0a00 + .balign 4 +.Lstr003: .asciz "%d_%d_%d\n" # 74: 25645f25 + # 78: 645f2564 + # 7c: 0a00 + .balign 4 +.Lstr004: .asciz "rxiq_reg: i=%d, a_mis=%d, p_mis=%d\n" # 80: 72786971 + # 84: 5f726567 + # 88: 3a20693d + # 8c: 25642c20 + # 90: 615f6d69 + # 94: 733d2564 + # 98: 2c20705f + # 9c: 6d69733d + # a0: 25640a00 +.Lstr005: .asciz "index: %d value: 0x%x 0x%x 0x%x 0x%x\n" # a4: 696e6465 + # a8: 783a2025 + # ac: 64207661 + # b0: 6c75653a + # b4: 20307825 + # b8: 78203078 + # bc: 25782030 + # c0: 78257820 + # c4: 30782578 + # c8: 0a00 + .balign 4 +.Label021: .byte 0x0a, 0x00 + + .section .rodata, "a", @progbits + +.Ldata100: .hword 0x0000 # 0: 0000 +.Ldata101: .byte 0x00 + .balign 4 +.Ldata102: .word 0x41200000 # 4: 00002041 diff --git a/binary_sdk/libphy_stage1/phy_chip_v6_ana.S b/binary_sdk/libphy_stage1/phy_chip_v6_ana.S new file mode 100644 index 0000000..55b2ada --- /dev/null +++ b/binary_sdk/libphy_stage1/phy_chip_v6_ana.S @@ -0,0 +1,2425 @@ + + .section .irom0.text, "ax", @progbits + + .literal_position # 0: 00000000 + +# Function @ .irom0.text+0x4 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word[4] @ -0x10 + .balign 4 + .global ram_pbus_set_rxgain + .type ram_pbus_set_rxgain, @function +ram_pbus_set_rxgain: + movi a3, 2 /* 0x00000002 */ # 4: 0c23 + addi sp, sp, -32 /* (local0) */ # 6: 12c1e0 + s32i a12, sp, 12 /* a12 -> [(local3)] */ # 9: c931 + s32i a13, sp, 16 /* a13 -> [(local4)] */ # b: d941 + movi a13, g_phyFuns # d: d1fcff + s32i a0, sp, 8 /* a0 -> [(local2)] */ # 10: 0921 + l32i a0, a13, 0 /* [g_phyFuns] */ # 12: 080d + mov a12, a2 /* arg0 */ # 14: cd02 + l32i a0, a0, 176 /* [[g_phyFuns]+0xb0] */ # 16: 02202c + movi a2, 3 /* 0x00000003 */ # 19: 0c32 + callx0 a0 /* [[g_phyFuns]+0xb0] */ # 1b: c00000 + movi a3, 1 /* 0x00000001 */ # 1e: 0c13 + l32i a0, a13, 0 /* [g_phyFuns] */ # 20: 080d + s32i a2, sp, 0 /* a2 -> [(local0)] */ # 22: 2901 + l32i a0, a0, 176 /* [[g_phyFuns]+0xb0] */ # 24: 02202c + movi a2, 2 /* 0x00000002 */ # 27: 0c22 + callx0 a0 /* [[g_phyFuns]+0xb0] */ # 29: c00000 + movi a3, 1 /* 0x00000001 */ # 2c: 0c13 + extui a4, a12, 9, 1 # 2e: c04904 + l32i a0, a13, 0 /* [g_phyFuns] */ # 31: 080d + extui a5, a12, 8, 1 # 33: c05804 + extui a6, a12, 6, 1 # 36: c06604 + s32i a2, sp, 4 /* a2 -> [(local1)] */ # 39: 2911 + extui a7, a12, 7, 1 # 3b: c07704 + movi a2, 3 /* 0x00000003 */ # 3e: 0c32 + slli a7, a7, 2 # 40: e07711 + slli a6, a6, 3 # 43: d06611 + slli a5, a5, 1 # 46: f05511 + l32i a0, a0, 172 /* [[g_phyFuns]+0xac] */ # 49: 02202b + or a4, a4, a5 # 4c: 504420 + or a6, a6, a7 # 4f: 706620 + extui a5, a12, 3, 1 # 52: c05304 + extui a7, a12, 4, 1 # 55: c07404 + slli a5, a5, 6 # 58: a05511 + slli a7, a7, 5 # 5b: b07711 + or a5, a5, a7 # 5e: 705520 + extui a7, a12, 5, 1 # 61: c07504 + slli a7, a7, 4 # 64: c07711 + or a5, a5, a7 # 67: 705520 + or a5, a5, a6 # 6a: 605520 + or a4, a4, a5 # 6d: 504420 + extui a4, a4, 0, 16 # 70: 4040f4 + callx0 a0 /* [[g_phyFuns]+0xac] */ # 73: c00000 + movi a2, 3 /* 0x00000003 */ # 76: 0c32 + movi a3, 2 /* 0x00000002 */ # 78: 0c23 + l32i a0, a13, 0 /* [g_phyFuns] */ # 7a: 080d + l32i a4, sp, 0 /* [(local0)] */ # 7c: 4801 + movi a5, 455 /* 0x000001c7 */ # 7e: 52a1c7 + and a4, a4, a5 # 81: 504410 + l32i a0, a0, 172 /* [[g_phyFuns]+0xac] */ # 84: 02202b + extui a5, a12, 0, 3 # 87: c05024 + slli a5, a5, 3 # 8a: d05511 + or a4, a4, a5 # 8d: 504420 + extui a4, a4, 0, 16 # 90: 4040f4 + callx0 a0 /* [[g_phyFuns]+0xac] */ # 93: c00000 + movi a2, 2 /* 0x00000002 */ # 96: 0c22 + movi a3, 1 /* 0x00000001 */ # 98: 0c13 + l32i a0, a13, 0 /* [g_phyFuns] */ # 9a: 080d + l32i a4, sp, 4 /* [(local1)] */ # 9c: 4811 + movi a5, 389 /* 0x00000185 */ # 9e: 52a185 + and a4, a4, a5 # a1: 504410 + l32i a0, a0, 172 /* [[g_phyFuns]+0xac] */ # a4: 02202b + extui a5, a12, 11, 4 # a7: c05b34 + slli a5, a5, 3 # aa: d05511 + or a4, a4, a5 # ad: 504420 + extui a5, a12, 10, 1 # b0: c05a04 + slli a5, a5, 1 # b3: f05511 + or a4, a4, a5 # b6: 504420 + extui a4, a4, 0, 16 # b9: 4040f4 + callx0 a0 /* [[g_phyFuns]+0xac] */ # bc: c00000 + l32i a12, sp, 12 /* [(local3)] */ # bf: c831 + l32i a13, sp, 16 /* [(local4)] */ # c1: d841 + l32i a0, sp, 8 /* [(local2)] */ # c3: 0821 + addi sp, sp, 32 /* (top of frame) */ # c5: 12c120 + ret # c8: 0df0 + + .literal_position # cc: 000af23f + # d0: 00020060 + # d4: 00000000 + # d8: 00000008 + # dc: 009a0060 + # e0: 00000040 + # e4: 00000000 + +# Function @ .irom0.text+0xe8 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word[4] @ -0x10 + .balign 4 + .global ram_pbus_debugmode + .type ram_pbus_debugmode, @function +ram_pbus_debugmode: + addi sp, sp, -32 /* (local0) */ # e8: 12c1e0 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # eb: d921 + s32i a14, sp, 12 /* a14 -> [(local3)] */ # ed: e931 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # ef: 0901 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # f1: c911 + s32i a15, sp, 16 /* a15 -> [(local4)] */ # f3: f941 + mov a4, a0 # f5: 4d00 + movi a15, 0x3ff20a00 # f7: f1f5ff + movi a12, 0x60000200 # fa: c1f5ff + memw # fd: c02000 + l32i a2, a12, 0x394 /* [0x60000594] */ # 100: 222ce5 + bbsi a2, 0, .Lbr002 # 103: 07e241 + memw # 106: c02000 + l32i a5, a15, 0x270 /* [0x3ff20c70] */ # 109: 522f9c + bbci a5, 1, .Lbr002 # 10c: 176538 + movi a13, g_phyFuns # 10f: d1f1ff + l32i a0, a13, 0 /* [g_phyFuns] */ # 112: 080d + l32i a0, a0, 116 /* [[g_phyFuns]+0x74] */ # 114: 02201d + callx0 a0 /* [[g_phyFuns]+0x74] */ # 117: c00000 + movi a2, 5 /* 0x00000005 */ # 11a: 0c52 + call0 ets_delay_us # 11c: 01f2ffc0 + # 120: 0000 + movi a14, 388 /* 0x00000184 */ # 122: e2a184 +.Lbr001: l32i a0, a13, 0 /* [g_phyFuns] */ # 125: 080d + movi a2, 2 /* 0x00000002 */ # 127: 0c22 + l32i a0, a0, 176 /* [[g_phyFuns]+0xb0] */ # 129: 02202c + movi a3, 1 /* 0x00000001 */ # 12c: 0c13 + callx0 a0 /* [[g_phyFuns]+0xb0] */ # 12e: c00000 + bnall a2, a14, .Lbr001 # 131: e7c2f0 + l32i a0, a13, 0 /* [g_phyFuns] */ # 134: 080d + movi a2, 3 /* 0x00000003 */ # 136: 0c32 + l32i a0, a0, 176 /* [[g_phyFuns]+0xb0] */ # 138: 02202c + movi a3, 2 /* 0x00000002 */ # 13b: 0c23 + callx0 a0 /* [[g_phyFuns]+0xb0] */ # 13d: c00000 + movi a3, 6 /* 0x00000006 */ # 140: 0c63 + and a2, a2, a3 # 142: 302210 + bnei a2, 6, .Lbr001 # 145: 6662dc +.Lbr002: movi a9, 0x08000000 # 148: 91e4ff + movi a8, 0x60009a00 # 14b: 81e4ff + memw # 14e: c02000 + l32i a7, a8, 0x108 /* [0x60009b08] */ # 151: 722842 + or a7, a7, a9 # 154: 907720 + memw # 157: c02000 + s32i a7, a8, 0x108 /* a7 -> [0x60009b08] */ # 15a: 726842 + memw # 15d: c02000 + l32i a5, a12, 0x394 /* [0x60000594] */ # 160: 522ce5 + movi a6, 1 /* 0x00000001 */ # 163: 0c16 + or a5, a5, a6 # 165: 605520 + memw # 168: c02000 + s32i a5, a12, 0x394 /* a5 -> [0x60000594] */ # 16b: 526ce5 + memw # 16e: c02000 + l32i a4, a15, 0x270 /* [0x3ff20c70] */ # 171: 422f9c + movi a0, 0x40000000 # 174: 01dbff + bbci a4, 1, .Lbr004 # 177: 176411 + memw # 17a: c02000 + l32i a10, a12, 0x3a0 /* [0x600005a0] */ # 17d: a22ce8 + bbsi a10, 30, .Lbr004 # 180: e7fa08 +.Lbr003: memw # 183: c02000 + l32i a11, a12, 0x3a0 /* [0x600005a0] */ # 186: b22ce8 + bnone a11, a0, .Lbr003 # 189: 070bf6 +.Lbr004: l32i a12, sp, 4 /* [(local1)] */ # 18c: c811 + l32i a13, sp, 8 /* [(local2)] */ # 18e: d821 + l32i a14, sp, 12 /* [(local3)] */ # 190: e831 + l32i a15, sp, 16 /* [(local4)] */ # 192: f841 + l32i a0, sp, 0 /* [(local0)] */ # 194: 0801 + addi sp, sp, 32 /* (top of frame) */ # 196: 12c120 + ret # 199: 0df0 + + .literal_position # 19c: 00000000 + +# Function @ .irom0.text+0x1a0 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 + .global ram_pbus_xpd_tx_on + .type ram_pbus_xpd_tx_on, @function +ram_pbus_xpd_tx_on: + movi a3, 1 /* 0x00000001 */ # 1a0: 0c13 + movi a4, 129 /* 0x00000081 */ # 1a2: 42a081 + addi sp, sp, -16 /* (local0) */ # 1a5: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 1a8: c911 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 1aa: d921 + movi a13, g_phyFuns # 1ac: d1fcff + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1af: 0901 + l32i a0, a13, 0 /* [g_phyFuns] */ # 1b1: 080d + mov a12, a2 /* arg0 */ # 1b3: cd02 + l32i a0, a0, 172 /* [[g_phyFuns]+0xac] */ # 1b5: 02202b + movi a2, 2 /* 0x00000002 */ # 1b8: 0c22 + callx0 a0 /* [[g_phyFuns]+0xac] */ # 1ba: c00000 + movi a2, 7 /* 0x00000007 */ # 1bd: 0c72 + l32i a0, a13, 0 /* [g_phyFuns] */ # 1bf: 080d + movi a3, 1 /* 0x00000001 */ # 1c1: 0c13 + l32i a0, a0, 172 /* [[g_phyFuns]+0xac] */ # 1c3: 02202b + srli a4, a12, 5 # 1c6: c04541 + callx0 a0 /* [[g_phyFuns]+0xac] */ # 1c9: c00000 + extui a4, a12, 0, 5 # 1cc: c04044 + l32i a0, a13, 0 /* [g_phyFuns] */ # 1cf: 080d + movi a2, 0 /* 0x00000000 */ # 1d1: 0c02 + l32i a0, a0, 172 /* [[g_phyFuns]+0xac] */ # 1d3: 02202b + movi a3, 1 /* 0x00000001 */ # 1d6: 0c13 + callx0 a0 /* [[g_phyFuns]+0xac] */ # 1d8: c00000 + movi a2, 1 /* 0x00000001 */ # 1db: 0c12 + l32i a0, a13, 0 /* [g_phyFuns] */ # 1dd: 080d + movi a3, 1 /* 0x00000001 */ # 1df: 0c13 + l32i a0, a0, 172 /* [[g_phyFuns]+0xac] */ # 1e1: 02202b + movi a4, 127 /* 0x0000007f */ # 1e4: 42a07f + callx0 a0 /* [[g_phyFuns]+0xac] */ # 1e7: c00000 + movi a2, 6 /* 0x00000006 */ # 1ea: 0c62 + l32i a0, a13, 0 /* [g_phyFuns] */ # 1ec: 080d + movi a3, 1 /* 0x00000001 */ # 1ee: 0c13 + l32i a0, a0, 172 /* [[g_phyFuns]+0xac] */ # 1f0: 02202b + movi a4, 127 /* 0x0000007f */ # 1f3: 42a07f + callx0 a0 /* [[g_phyFuns]+0xac] */ # 1f6: c00000 + l32i a12, sp, 4 /* [(local1)] */ # 1f9: c811 + l32i a13, sp, 8 /* [(local2)] */ # 1fb: d821 + l32i a0, sp, 0 /* [(local0)] */ # 1fd: 0801 + addi sp, sp, 16 /* (top of frame) */ # 1ff: 12c110 + ret # 202: 0df0 + + .literal_position # 204: 0000f000 + # 208: 00000000 + # 20c: 00020060 + # 210: 00000000 + # 214: 00000000 + # 218: ffff0fff + # 21c: 00020060 + +# Function @ .irom0.text+0x220 +# Local variables/stack: +# (local0): word @ -0x1c +# (local1): word @ -0x18 +# (local2): word @ -0x14 +# (local3): word[4] @ -0x10 + .balign 4 + .global set_rf_freq_offset + .type set_rf_freq_offset, @function +set_rf_freq_offset: + addi sp, sp, -32 /* (FP)-0x20 */ # 220: 12c1e0 + s32i a2, sp, 4 /* arg0 -> [(local0)] */ # 223: 2911 + s32i a3, sp, 8 /* arg1 -> [(local1)] */ # 225: 3921 + s32i a0, sp, 16 /* a0 -> [(local3)] */ # 227: 0941 + s32i a4, sp, 12 /* arg2 -> [(local2)] */ # 229: 4931 + movi a4, 0x00f00000 # 22b: 41f6ff + movi a0, g_phyFuns # 22e: 01f6ff + movi a3, 0x60000200 # 231: 31f6ff + memw # 234: c02000 + l32i a2, a3, 0x3c8 /* [0x600005c8] */ # 237: 2223f2 + or a2, a2, a4 # 23a: 402220 + memw # 23d: c02000 + l32i a0, a0, 0 /* [g_phyFuns] */ # 240: 0800 + l32i a0, a0, 220 /* [[g_phyFuns]+0xdc] */ # 242: 022037 + s32i a2, a3, 0x3c8 /* a2 -> [0x600005c8] */ # 245: 2263f2 + callx0 a0 /* [[g_phyFuns]+0xdc] */ # 248: c00000 + l32i a2, sp, 8 /* [(local1)] */ # 24b: 2821 + l32i a3, sp, 4 /* [(local0)] */ # 24d: 3811 + l32i a4, sp, 12 /* [(local2)] */ # 24f: 4831 + mov a5, sp /* (FP)-0x20 */ # 251: 5d01 + call0 ram_rfpll_set_freq # 253: 050000 + movi a0, g_phyFuns # 256: 01eeff + l32i a0, a0, 0 /* [g_phyFuns] */ # 259: 0800 + l32i a0, a0, 224 /* [[g_phyFuns]+0xe0] */ # 25b: 022038 + mov a2, sp /* (FP)-0x20 */ # 25e: 2d01 + callx0 a0 /* [[g_phyFuns]+0xe0] */ # 260: c00000 + movi a0, g_phyFuns # 263: 01ecff + l32i a0, a0, 0 /* [g_phyFuns] */ # 266: 0800 + l32i a0, a0, 216 /* [[g_phyFuns]+0xd8] */ # 268: 022036 + callx0 a0 /* [[g_phyFuns]+0xd8] */ # 26b: c00000 + call0 wait_rfpll_cal_end # 26e: 050000 + movi a4, 0xff0fffff # 271: 41e9ff + memw # 274: c02000 + movi a3, 0x60000200 # 277: 31e9ff + l32i a2, a3, 0x3c8 /* [0x600005c8] */ # 27a: 2223f2 + and a2, a2, a4 # 27d: 402210 + memw # 280: c02000 + s32i a2, a3, 0x3c8 /* a2 -> [0x600005c8] */ # 283: 2263f2 + l32i a0, sp, 16 /* [(local3)] */ # 286: 0841 + addi sp, sp, 32 /* (top of frame) */ # 288: 12c120 + ret # 28b: 0df0 + + .literal_position # 290: 00000000 + # 294: 00000000 + # 298: 00000000 + +# Function @ .irom0.text+0x29c +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word[4] @ -0x10 + .balign 4 + .global chip_v6_rxmax_ext_ana + .type chip_v6_rxmax_ext_ana, @function +chip_v6_rxmax_ext_ana: + movi a3, 1 /* 0x00000001 */ # 29c: 0c13 + movi a4, 5 /* 0x00000005 */ # 29e: 0c54 + movi a5, 7 /* 0x00000007 */ # 2a0: 0c75 + movi a6, 0 /* 0x00000000 */ # 2a2: 0c06 + addi sp, sp, -32 /* (local0) */ # 2a4: 12c1e0 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 2a7: d921 + s32i a15, sp, 16 /* a15 -> [(local4)] */ # 2a9: f941 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 2ab: c911 + s32i a14, sp, 12 /* a14 -> [(local3)] */ # 2ad: e931 + movi a14, g_phyFuns # 2af: e1f8ff + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 2b2: 0901 + l32i a0, a14, 0 /* [g_phyFuns] */ # 2b4: 080e + mov a12, a2 /* arg0 */ # 2b6: cd02 + l32i a0, a0, 148 /* [[g_phyFuns]+0x94] */ # 2b8: 022025 + movi a2, 98 /* 0x00000062 */ # 2bb: 22a062 + callx0 a0 /* [[g_phyFuns]+0x94] */ # 2be: c00000 + movi a13, 0 /* 0x00000000 */ # 2c1: 0c0d + mov a15, a2 # 2c3: fd02 + movi a3, -340 /* 0xfffffeac */ # 2c5: 32aeac + addx2 a2, a2, a2 # 2c8: 202290 + addx8 a2, a2, a3 # 2cb: 3022b0 + movi a3, 227 /* 0x000000e3 */ # 2ce: 32a0e3 + call0 __divsi3 # 2d1: 01f0ffc0 + # 2d5: 0000 + slli a5, a2, 16 # 2d7: 005211 + movi a4, 15 /* 0x0000000f */ # 2da: 0cf4 + mov a0, a4 /* 0x0000000f */ # 2dc: 0d04 + srai a5, a5, 16 # 2de: 505031 + mov a2, a13 /* 0x00000000 */ # 2e1: 2d0d + movgez a2, a5, a5 # 2e3: 5025b3 + bgei a2, 16, .Lbr005 # 2e6: e6b201 + mov a0, a2 # 2e9: 0d02 +.Lbr005: movi a3, 207 /* 0x000000cf */ # 2eb: 32a0cf + addx2 a2, a15, a15 # 2ee: f02f90 + subx8 a2, a2, a15 # 2f1: f022f0 + addi a2, a2, 29 # 2f4: 22c21d + slli a15, a0, 16 # 2f7: 00f011 + srai a15, a15, 16 # 2fa: f0f031 + call0 __divsi3 # 2fd: 01e6ffc0 + # 301: 0000 + l32i a9, a14, 0 /* [g_phyFuns] */ # 303: 980e + slli a4, a2, 16 # 305: 004211 + movi a3, 15 /* 0x0000000f */ # 308: 0cf3 + mov a0, a3 /* 0x0000000f */ # 30a: 0d03 + srai a4, a4, 16 # 30c: 404031 + l32i a9, a9, 156 /* [[g_phyFuns]+0x9c] */ # 30f: 922927 + movgez a13, a4, a4 # 312: 40d4b3 + bgei a13, 16, .Lbr006 # 315: e6bd01 + mov a0, a13 # 318: 0d0d +.Lbr006: slli a13, a0, 16 # 31a: 00d011 + srai a13, a13, 16 # 31d: d0d031 + bltui a12, 3, .Lbr008 # 320: b63c1c + movi a2, 8 /* 0x00000008 */ # 323: 0c82 + blti a15, 8, .Lbr007 # 325: a68f01 + movi a2, -8 /* 0xfffffff8 */ # 328: 7c82 +.Lbr007: movi a3, 0 /* 0x00000000 */ # 32a: 0c03 + movi a4, 4 /* 0x00000004 */ # 32c: 0c44 + movi a5, 3 /* 0x00000003 */ # 32e: 0c35 + movi a6, 0 /* 0x00000000 */ # 330: 0c06 + add a7, a15, a2 # 332: 2a7f + extui a7, a7, 0, 8 # 334: 707074 + movi a2, 100 /* 0x00000064 */ # 337: 22a064 + callx0 a9 /* [[g_phyFuns]+0x9c] */ # 33a: c00900 + j .Lbr009 # 33d: 060400 +.Lbr008: extui a7, a15, 0, 8 # 340: f07074 + movi a2, 100 /* 0x00000064 */ # 343: 22a064 + movi a3, 0 /* 0x00000000 */ # 346: 0c03 + movi a4, 4 /* 0x00000004 */ # 348: 0c44 + movi a5, 3 /* 0x00000003 */ # 34a: 0c35 + movi a6, 0 /* 0x00000000 */ # 34c: 0c06 + callx0 a9 /* [[g_phyFuns]+0x9c] */ # 34e: c00900 +.Lbr009: l32i a9, a14, 0 /* [g_phyFuns] */ # 351: 980e + movi a0, 8 /* 0x00000008 */ # 353: 0c80 + l32i a9, a9, 156 /* [[g_phyFuns]+0x9c] */ # 355: 922927 + bltui a12, 2, .Lbr011 # 358: b62c1a + blti a13, 8, .Lbr010 # 35b: a68d01 + movi a0, -8 /* 0xfffffff8 */ # 35e: 7c80 +.Lbr010: movi a2, 100 /* 0x00000064 */ # 360: 22a064 + movi a3, 0 /* 0x00000000 */ # 363: 0c03 + movi a4, 7 /* 0x00000007 */ # 365: 0c74 + movi a5, 3 /* 0x00000003 */ # 367: 0c35 + movi a6, 0 /* 0x00000000 */ # 369: 0c06 + add a7, a13, a0 # 36b: 0a7d + extui a7, a7, 0, 8 # 36d: 707074 + callx0 a9 /* [[g_phyFuns]+0x9c] */ # 370: c00900 + j .Lbr012 # 373: 060400 +.Lbr011: extui a7, a13, 0, 8 # 376: d07074 + movi a2, 100 /* 0x00000064 */ # 379: 22a064 + movi a3, 0 /* 0x00000000 */ # 37c: 0c03 + movi a4, 7 /* 0x00000007 */ # 37e: 0c74 + movi a5, 3 /* 0x00000003 */ # 380: 0c35 + movi a6, 0 /* 0x00000000 */ # 382: 0c06 + callx0 a9 /* [[g_phyFuns]+0x9c] */ # 384: c00900 +.Lbr012: l32i a9, a14, 0 /* [g_phyFuns] */ # 387: 980e + l32i a9, a9, 156 /* [[g_phyFuns]+0x9c] */ # 389: 922927 + beqz a12, .Lbr013 # 38c: ac6c + movi a2, 97 /* 0x00000061 */ # 38e: 22a061 + movi a3, 1 /* 0x00000001 */ # 391: 0c13 + movi a4, 5 /* 0x00000005 */ # 393: 0c54 + movi a5, 3 /* 0x00000003 */ # 395: 0c35 + movi a6, 2 /* 0x00000002 */ # 397: 0c26 + movi a7, 3 /* 0x00000003 */ # 399: 0c37 + callx0 a9 /* [[g_phyFuns]+0x9c] */ # 39b: c00900 + movi a2, 97 /* 0x00000061 */ # 39e: 22a061 + movi a3, 1 /* 0x00000001 */ # 3a1: 0c13 + movi a4, 5 /* 0x00000005 */ # 3a3: 0c54 + movi a5, 1 /* 0x00000001 */ # 3a5: 0c15 + l32i a0, a14, 0 /* [g_phyFuns] */ # 3a7: 080e + movi a6, 0 /* 0x00000000 */ # 3a9: 0c06 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 3ab: 022027 + movi a7, 3 /* 0x00000003 */ # 3ae: 0c37 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 3b0: c00000 + j .Lbr014 # 3b3: 060900 +.Lbr013: movi a2, 97 /* 0x00000061 */ # 3b6: 22a061 + movi a3, 1 /* 0x00000001 */ # 3b9: 0c13 + movi a4, 5 /* 0x00000005 */ # 3bb: 0c54 + movi a5, 3 /* 0x00000003 */ # 3bd: 0c35 + movi a6, 2 /* 0x00000002 */ # 3bf: 0c26 + movi a7, 0 /* 0x00000000 */ # 3c1: 0c07 + callx0 a9 /* [[g_phyFuns]+0x9c] */ # 3c3: c00900 + movi a2, 97 /* 0x00000061 */ # 3c6: 22a061 + movi a3, 1 /* 0x00000001 */ # 3c9: 0c13 + movi a4, 5 /* 0x00000005 */ # 3cb: 0c54 + movi a5, 1 /* 0x00000001 */ # 3cd: 0c15 + l32i a0, a14, 0 /* [g_phyFuns] */ # 3cf: 080e + movi a6, 0 /* 0x00000000 */ # 3d1: 0c06 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 3d3: 022027 + movi a7, 0 /* 0x00000000 */ # 3d6: 0c07 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 3d8: c00000 +.Lbr014: l32i a12, sp, 4 /* [(local1)] */ # 3db: c811 + l32i a13, sp, 8 /* [(local2)] */ # 3dd: d821 + l32i a14, sp, 12 /* [(local3)] */ # 3df: e831 + l32i a15, sp, 16 /* [(local4)] */ # 3e1: f841 + l32i a0, sp, 0 /* [(local0)] */ # 3e3: 0801 + addi sp, sp, 32 /* (top of frame) */ # 3e5: 12c120 + ret # 3e8: 0df0 + + .literal_position # 3ec: 00000000 + +# Function @ .irom0.text+0x3f0 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global ram_chip_v6_rx_init + .type ram_chip_v6_rx_init, @function +ram_chip_v6_rx_init: + movi a2, 97 /* 0x00000061 */ # 3f0: 22a061 + addi sp, sp, -16 /* (local0) */ # 3f3: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 3f6: 0901 + movi a0, g_phyFuns # 3f8: 01fdff + movi a3, 1 /* 0x00000001 */ # 3fb: 0c13 + l32i a0, a0, 0 /* [g_phyFuns] */ # 3fd: 0800 + movi a4, 8 /* 0x00000008 */ # 3ff: 0c84 + l32i a0, a0, 152 /* [[g_phyFuns]+0x98] */ # 401: 022026 + movi a5, 17 /* 0x00000011 */ # 404: 1c15 + callx0 a0 /* [[g_phyFuns]+0x98] */ # 406: c00000 + movi a2, 0 /* 0x00000000 */ # 409: 0c02 + call0 chip_v6_rxmax_ext_ana # 40b: 050000 + l32i a0, sp, 0 /* [(local0)] */ # 40e: 0801 + addi sp, sp, 16 /* (top of frame) */ # 410: 12c110 + ret # 413: 0df0 + + .literal_position # 418: 000a0060 + # 41c: 00002000 + # 420: ffff7fff + # 424: 00000000 + # 428: 00000000 + # 42c: 000a0060 + # 430: 00000000 + # 434: 00000000 + +# Function @ .irom0.text+0x438 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global tsen_meas + .type tsen_meas, @function +tsen_meas: addi sp, sp, -16 /* (local0) */ # 438: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 43b: 0901 + movi a7, -33 /* 0xffffffdf */ # 43d: 72afdf + movi a2, 0x60000a00 # 440: 21f6ff + memw # 443: c02000 + l32i a6, a2, 0x350 /* [0x60000d50] */ # 446: 6222d4 + and a6, a6, a7 # 449: 706610 + memw # 44c: c02000 + s32i a6, a2, 0x350 /* a6 -> [0x60000d50] */ # 44f: 6262d4 + movi a5, 0x00200000 # 452: 51f2ff + memw # 455: c02000 + l32i a4, a2, 0x35c /* [0x60000d5c] */ # 458: 4222d7 + or a4, a4, a5 # 45b: 504420 + memw # 45e: c02000 + s32i a4, a2, 0x35c /* a4 -> [0x60000d5c] */ # 461: 4262d7 + movi a3, 0xff7fffff # 464: 31efff + memw # 467: c02000 + l32i a0, a2, 0x35c /* [0x60000d5c] */ # 46a: 0222d7 + and a0, a0, a3 # 46d: 300010 + memw # 470: c02000 + s32i a0, a2, 0x35c /* a0 -> [0x60000d5c] */ # 473: 0262d7 + movi a2, 200 /* 0x000000c8 */ # 476: 22a0c8 + call0 ets_delay_us # 479: 01eeffc0 + # 47d: 0000 + movi a2, 108 /* 0x0000006c */ # 47f: 22a06c + movi a3, 2 /* 0x00000002 */ # 482: 0c23 + movi a4, 0 /* 0x00000000 */ # 484: 0c04 + movi a0, g_phyFuns # 486: 01e7ff + movi a5, 6 /* 0x00000006 */ # 489: 0c65 + l32i a0, a0, 0 /* [g_phyFuns] */ # 48b: 0800 + movi a6, 6 /* 0x00000006 */ # 48d: 0c66 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 48f: 022027 + movi a7, 0 /* 0x00000000 */ # 492: 0c07 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 494: c00000 + movi a2, 108 /* 0x0000006c */ # 497: 22a06c + movi a3, 2 /* 0x00000002 */ # 49a: 0c23 + movi a4, 0 /* 0x00000000 */ # 49c: 0c04 + movi a0, g_phyFuns # 49e: 01e2ff + movi a5, 6 /* 0x00000006 */ # 4a1: 0c65 + l32i a0, a0, 0 /* [g_phyFuns] */ # 4a3: 0800 + movi a6, 6 /* 0x00000006 */ # 4a5: 0c66 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 4a7: 022027 + movi a7, 1 /* 0x00000001 */ # 4aa: 0c17 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 4ac: c00000 + movi a4, 32 /* 0x00000020 */ # 4af: 2c04 + memw # 4b1: c02000 + movi a3, 0x60000a00 # 4b4: 31deff + l32i a2, a3, 0x350 /* [0x60000d50] */ # 4b7: 2223d4 + or a2, a2, a4 # 4ba: 402220 + memw # 4bd: c02000 + movi a4, 2 /* 0x00000002 */ # 4c0: 0c24 + movi a5, 7 /* 0x00000007 */ # 4c2: 0c75 + movi a0, g_phyFuns # 4c4: 01dbff + movi a6, 0 /* 0x00000000 */ # 4c7: 0c06 + l32i a0, a0, 0 /* [g_phyFuns] */ # 4c9: 0800 + s32i a2, a3, 0x350 /* a2 -> [0x60000d50] */ # 4cb: 2263d4 + movi a2, 108 /* 0x0000006c */ # 4ce: 22a06c + l32i a0, a0, 148 /* [[g_phyFuns]+0x94] */ # 4d1: 022025 + movi a3, 2 /* 0x00000002 */ # 4d4: 0c23 + callx0 a0 /* [[g_phyFuns]+0x94] */ # 4d6: c00000 + l32i a0, sp, 0 /* [(local0)] */ # 4d9: 0801 + addi sp, sp, 16 /* (top of frame) */ # 4db: 12c110 + ret # 4de: 0df0 + + .literal_position # 4e0: 00000000 + # 4e4: 00008000 + # 4e8: 000a0060 + # 4ec: ffffdfff + # 4f0: 00000000 + # 4f4: 00000000 + +# Function @ .irom0.text+0x4f8 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word @ -0x10 +# (local5): word[3] @ -0xc + .balign 4 + .global readvdd33 + .type readvdd33, @function +readvdd33: addi sp, sp, -48 /* (FP)-0x30 */ # 4f8: 12c1d0 + s32i a13, sp, 28 /* a13 -> [(local3)] */ # 4fb: d971 + movi a13, g_phyFuns # 4fd: d1f8ff + s32i a0, sp, 20 /* a0 -> [(local1)] */ # 500: 0951 + l32i a0, a13, 0 /* [g_phyFuns] */ # 502: 080d + s32i a12, sp, 24 /* a12 -> [(local2)] */ # 504: c961 + l32i a0, a0, 160 /* [[g_phyFuns]+0xa0] */ # 506: 022028 + s32i a14, sp, 32 /* a14 -> [(local4)] */ # 509: e981 + callx0 a0 /* [[g_phyFuns]+0xa0] */ # 50b: c00000 + l32i a0, a13, 0 /* [g_phyFuns] */ # 50e: 080d + movi a2, 6 /* 0x00000006 */ # 510: 0c62 + l32i a0, a0, 176 /* [[g_phyFuns]+0xb0] */ # 512: 02202c + movi a3, 1 /* 0x00000001 */ # 515: 0c13 + callx0 a0 /* [[g_phyFuns]+0xb0] */ # 517: c00000 + movi a3, 2 /* 0x00000002 */ # 51a: 0c23 + movi a4, 9 /* 0x00000009 */ # 51c: 0c94 + movi a5, 2 /* 0x00000002 */ # 51e: 0c25 + movi a6, 0 /* 0x00000000 */ # 520: 0c06 + l32i a0, a13, 0 /* [g_phyFuns] */ # 522: 080d + mov a14, a2 # 524: ed02 + l32i a0, a0, 148 /* [[g_phyFuns]+0x94] */ # 526: 022025 + movi a2, 107 /* 0x0000006b */ # 529: 22a06b + callx0 a0 /* [[g_phyFuns]+0x94] */ # 52c: c00000 + movi a3, 2 /* 0x00000002 */ # 52f: 0c23 + movi a4, 0 /* 0x00000000 */ # 531: 0c04 + movi a5, 5 /* 0x00000005 */ # 533: 0c55 + movi a6, 5 /* 0x00000005 */ # 535: 0c56 + l32i a0, a13, 0 /* [g_phyFuns] */ # 537: 080d + s32i a2, sp, 16 /* a2 -> [(local0)] */ # 539: 2941 + l32i a0, a0, 148 /* [[g_phyFuns]+0x94] */ # 53b: 022025 + movi a2, 108 /* 0x0000006c */ # 53e: 22a06c + callx0 a0 /* [[g_phyFuns]+0x94] */ # 541: c00000 + movi a3, 1 /* 0x00000001 */ # 544: 0c13 + l32i a0, a13, 0 /* [g_phyFuns] */ # 546: 080d + mov a12, a2 # 548: cd02 + movi a4, 2 /* 0x00000002 */ # 54a: 0c24 + movi a2, 6 /* 0x00000006 */ # 54c: 0c62 + or a4, a14, a4 # 54e: 404e20 + l32i a0, a0, 172 /* [[g_phyFuns]+0xac] */ # 551: 02202b + extui a4, a4, 0, 16 # 554: 4040f4 + callx0 a0 /* [[g_phyFuns]+0xac] */ # 557: c00000 + movi a2, 107 /* 0x0000006b */ # 55a: 22a06b + movi a3, 2 /* 0x00000002 */ # 55d: 0c23 + movi a4, 9 /* 0x00000009 */ # 55f: 0c94 + movi a5, 7 /* 0x00000007 */ # 561: 0c75 + movi a6, 7 /* 0x00000007 */ # 563: 0c76 + l32i a0, a13, 0 /* [g_phyFuns] */ # 565: 080d + movi a7, 1 /* 0x00000001 */ # 567: 0c17 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 569: 022027 + s32i a12, sp, 36 /* a12 -> [(local5)] */ # 56c: c991 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 56e: c00000 + movi a2, 107 /* 0x0000006b */ # 571: 22a06b + movi a3, 2 /* 0x00000002 */ # 574: 0c23 + movi a4, 9 /* 0x00000009 */ # 576: 0c94 + movi a5, 2 /* 0x00000002 */ # 578: 0c25 + l32i a0, a13, 0 /* [g_phyFuns] */ # 57a: 080d + movi a6, 0 /* 0x00000000 */ # 57c: 0c06 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 57e: 022027 + movi a7, 0 /* 0x00000000 */ # 581: 0c07 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 583: c00000 + movi a12, 2 /* 0x00000002 */ # 586: 0c2c + movi a2, 108 /* 0x0000006c */ # 588: 22a06c + movi a3, 2 /* 0x00000002 */ # 58b: 0c23 + movi a4, 0 /* 0x00000000 */ # 58d: 0c04 + movi a5, 5 /* 0x00000005 */ # 58f: 0c55 + l32i a0, a13, 0 /* [g_phyFuns] */ # 591: 080d + movi a6, 5 /* 0x00000005 */ # 593: 0c56 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 595: 022027 + movi a7, 1 /* 0x00000001 */ # 598: 0c17 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 59a: c00000 + movi a9, 0x00800000 # 59d: 91d1ff + movi a3, 0x60000a00 # 5a0: 31d2ff + memw # 5a3: c02000 + l32i a8, a3, 0x35c /* [0x60000d5c] */ # 5a6: 8223d7 + or a8, a8, a9 # 5a9: 908820 + memw # 5ac: c02000 + s32i a8, a3, 0x35c /* a8 -> [0x60000d5c] */ # 5af: 8263d7 + movi a7, 0xffdfffff # 5b2: 71ceff + memw # 5b5: c02000 + l32i a6, a3, 0x35c /* [0x60000d5c] */ # 5b8: 6223d7 + and a6, a6, a7 # 5bb: 706610 + memw # 5be: c02000 + s32i a6, a3, 0x35c /* a6 -> [0x60000d5c] */ # 5c1: 6263d7 + movi a5, -3 /* 0xfffffffd */ # 5c4: 7cd5 + memw # 5c6: c02000 + l32i a4, a3, 0x350 /* [0x60000d50] */ # 5c9: 4223d4 + and a4, a4, a5 # 5cc: 504410 + memw # 5cf: c02000 + s32i a4, a3, 0x350 /* a4 -> [0x60000d50] */ # 5d2: 4263d4 + memw # 5d5: c02000 + l32i a2, a3, 0x350 /* [0x60000d50] */ # 5d8: 2223d4 + or a2, a2, a12 # 5db: c02220 + memw # 5de: c02000 + s32i a2, a3, 0x350 /* a2 -> [0x60000d50] */ # 5e1: 2263d4 + movi a2, 25 /* 0x00000019 */ # 5e4: 1c92 + call0 ets_delay_us # 5e6: 01c2ffc0 + # 5ea: 0000 + mov a2, sp /* (FP)-0x30 */ # 5ec: 2d01 + call0 read_sar_dout # 5ee: 01c1ffc0 + # 5f2: 0000 + movi a0, 0 /* 0x00000000 */ # 5f4: 0c00 + movi a12, 0 /* 0x00000000 */ # 5f6: 0c0c + mov a2, sp /* (FP)-0x30 */ # 5f8: 2d01 +.Lbr015: addi a4, a0, 1 # 5fa: 1b40 + addx2 a3, a0, a2 # 5fc: 203090 + l16ui a3, a3, 0 # 5ff: 321300 + extui a0, a4, 0, 8 # 602: 400074 + add a12, a3, a12 # 605: cac3 + extui a12, a12, 0, 16 # 607: c0c0f4 + bnei a0, 8, .Lbr015 # 60a: 6680ec + extui a4, a14, 0, 16 # 60d: e040f4 + l32i a0, a13, 0 /* [g_phyFuns] */ # 610: 080d + movi a2, 6 /* 0x00000006 */ # 612: 0c62 + l32i a0, a0, 172 /* [[g_phyFuns]+0xac] */ # 614: 02202b + movi a3, 1 /* 0x00000001 */ # 617: 0c13 + callx0 a0 /* [[g_phyFuns]+0xac] */ # 619: c00000 + movi a2, 107 /* 0x0000006b */ # 61c: 22a06b + movi a3, 2 /* 0x00000002 */ # 61f: 0c23 + movi a4, 9 /* 0x00000009 */ # 621: 0c94 + movi a5, 7 /* 0x00000007 */ # 623: 0c75 + l32i a0, a13, 0 /* [g_phyFuns] */ # 625: 080d + movi a6, 7 /* 0x00000007 */ # 627: 0c76 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 629: 022027 + movi a7, 0 /* 0x00000000 */ # 62c: 0c07 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 62e: c00000 + l32i a14, sp, 36 /* [(local5)] */ # 631: e891 + movi a2, 107 /* 0x0000006b */ # 633: 22a06b + movi a3, 2 /* 0x00000002 */ # 636: 0c23 + movi a4, 9 /* 0x00000009 */ # 638: 0c94 + movi a5, 2 /* 0x00000002 */ # 63a: 0c25 + movi a6, 0 /* 0x00000000 */ # 63c: 0c06 + l32i a0, a13, 0 /* [g_phyFuns] */ # 63e: 080d + l32i a7, sp, 16 /* [(local0)] */ # 640: 7841 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 642: 022027 + extui a7, a7, 0, 8 # 645: 707074 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 648: c00000 + extui a7, a14, 0, 8 # 64b: e07074 + movi a2, 108 /* 0x0000006c */ # 64e: 22a06c + movi a3, 2 /* 0x00000002 */ # 651: 0c23 + movi a4, 0 /* 0x00000000 */ # 653: 0c04 + l32i a0, a13, 0 /* [g_phyFuns] */ # 655: 080d + movi a5, 5 /* 0x00000005 */ # 657: 0c55 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 659: 022027 + movi a6, 5 /* 0x00000005 */ # 65c: 0c56 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 65e: c00000 + l32i a0, a13, 0 /* [g_phyFuns] */ # 661: 080d + l32i a0, a0, 188 /* [[g_phyFuns]+0xbc] */ # 663: 02202f + callx0 a0 /* [[g_phyFuns]+0xbc] */ # 666: c00000 + l32i a0, sp, 20 /* [(local1)] */ # 669: 0851 + l32i a13, sp, 28 /* [(local3)] */ # 66b: d871 + slli a2, a12, 10 # 66d: 602c11 + l32i a14, sp, 32 /* [(local4)] */ # 670: e881 + l32i a12, sp, 24 /* [(local2)] */ # 672: c861 + addmi a2, a2, 2048 # 674: 22d208 + extui a2, a2, 12, 16 # 677: 202cf4 + addi sp, sp, 48 /* (top of frame) */ # 67a: 12c130 + ret # 67d: 0df0 + + .literal_position # 680: 330d0000 + # 684: 00000000 + # 688: 330d0000 + # 68c: 00000000 + # 690: 330d0000 + # 694: 00000000 + +# Function @ .irom0.text+0x698 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word[4] @ -0x10 + .balign 4 + .global txpwr_offset + .type txpwr_offset, @function +txpwr_offset: + movi a3, 0x00000d33 # 698: 31fcff + addi sp, sp, -32 /* (local0) */ # 69b: 12c1e0 + s32i a2, sp, 0 /* arg0 -> [(local0)] */ # 69e: 2901 + s32i a12, sp, 8 /* a12 -> [(local2)] */ # 6a0: c921 + s32i a14, sp, 16 /* a14 -> [(local4)] */ # 6a2: e941 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 6a4: 0911 + s32i a13, sp, 12 /* a13 -> [(local3)] */ # 6a6: d931 + movi a13, chip6_phy_init_ctrl # 6a8: d1f7ff + movi a0, 0x00000d33 # 6ab: 01f5ff + l8ui a4, a13, 108 /* [chip6_phy_init_ctrl+0x6c] */ # 6ae: 420d6c + movi a14, 102 /* 0x00000066 */ # 6b1: e2a066 + mul16s a14, a4, a14 # 6b4: e0e4d1 + extui a14, a14, 0, 16 # 6b7: e0e0f4 + moveqz a14, a3, a4 # 6ba: 40e383 + bltu a14, a0, .Lbr016 # 6bd: 073e04 + movi a12, 0 /* 0x00000000 */ # 6c0: 0c0c + j .Lbr017 # 6c2: 060b00 +.Lbr016: movi a12, g_phyFuns # 6c5: c1f1ff + l32i a0, a12, 0 /* [g_phyFuns] */ # 6c8: 080c + mov a2, a14 # 6ca: 2d0e + l32i a0, a0, 56 /* [[g_phyFuns]+0x38] */ # 6cc: 08e0 + movi a3, 3 /* 0x00000003 */ # 6ce: 0c33 + callx0 a0 /* [[g_phyFuns]+0x38] */ # 6d0: c00000 + movi a3, 3 /* 0x00000003 */ # 6d3: 0c33 + l32i a0, a12, 0 /* [g_phyFuns] */ # 6d5: 080c + mov a12, a2 # 6d7: cd02 + l32i a0, a0, 56 /* [[g_phyFuns]+0x38] */ # 6d9: 08e0 + movi a2, 0x00000d33 # 6db: 21edff + callx0 a0 /* [[g_phyFuns]+0x38] */ # 6de: c00000 + sub a12, a12, a2 # 6e1: 20ccc0 + slli a12, a12, 1 # 6e4: f0cc11 + slli a12, a12, 16 # 6e7: 00cc11 + srai a12, a12, 16 # 6ea: c0c031 + addi a12, a12, 2 # 6ed: 2bcc + srai a12, a12, 2 # 6ef: c0c221 +.Lbr017: call0 tsen_meas # 6f2: 050000 + movi a0, 0 /* 0x00000000 */ # 6f5: 0c00 + l32i a3, sp, 0 /* [(local0)] */ # 6f7: 3801 + movi a5, chip6_sleep_params # 6f9: 51e6ff + add a12, a3, a12 # 6fc: cac3 + slli a12, a12, 16 # 6fe: 00cc11 + srai a12, a12, 16 # 701: c0c031 +.Lbr018: add a6, a0, a5 # 704: 5a60 + addi a7, a0, 1 # 706: 1b70 + add a4, a0, a13 # 708: da40 + l8ui a4, a4, 36 # 70a: 420424 + extui a0, a7, 0, 8 # 70d: 700074 + add a4, a12, a4 # 710: 4a4c + s8i a4, a6, 104 # 712: 424668 + bnei a0, 6, .Lbr018 # 715: 6660eb + l32i a13, sp, 12 /* [(local3)] */ # 718: d831 + movi a0, -127 /* 0xffffff81 */ # 71a: 02af81 + slli a7, a14, 16 # 71d: 007e11 + slli a6, a2, 8 # 720: 806211 + l32i a14, sp, 16 /* [(local4)] */ # 723: e841 + mov a2, a12 # 725: 2d0c + add a6, a6, a7 # 727: 7a66 + blt a12, a0, .Lbr019 # 729: 072c01 + mov a0, a12 # 72c: 0d0c +.Lbr019: extui a7, a0, 0, 8 # 72e: 007074 + l32i a12, sp, 8 /* [(local2)] */ # 731: c821 + l32i a0, sp, 4 /* [(local1)] */ # 733: 0811 + add a6, a6, a7 # 735: 7a66 + s32i a6, a5, 112 /* a6 -> [chip6_sleep_params+0x70] */ # 737: 62651c + addi sp, sp, 32 /* (top of frame) */ # 73a: 12c120 + ret # 73d: 0df0 + + .literal_position # 740: 00000000 + # 744: 00000000 + # 748: 00000000 + +# Function @ .irom0.text+0x74c +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 + .global set_txcap_reg + .type set_txcap_reg, @function +set_txcap_reg: + addi sp, sp, -16 /* (local0) */ # 74c: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 74f: 0901 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 751: c911 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 753: d921 + mov a12, a2 /* arg0 */ # 755: cd02 + movi a13, 0 /* 0x00000000 */ # 757: 0c0d +.Lbr020: beqz a13, .Lbr022 # 759: 161d04 + beqi a13, 1, .Lbr021 # 75c: 261d20 + bnei a13, 2, .Lbr023 # 75f: 662d56 + movi a2, 107 /* 0x0000006b */ # 762: 22a06b + movi a3, 2 /* 0x00000002 */ # 765: 0c23 + movi a4, 2 /* 0x00000002 */ # 767: 0c24 + movi a5, 6 /* 0x00000006 */ # 769: 0c65 + movi a0, g_phyFuns # 76b: 01f5ff + movi a6, 4 /* 0x00000004 */ # 76e: 0c46 + l32i a0, a0, 0 /* [g_phyFuns] */ # 770: 0800 + add a7, a12, a13 # 772: da7c + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 774: 022027 + l8ui a7, a7, 0 # 777: 720700 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 77a: c00000 + j .Lbr023 # 77d: 060e00 +.Lbr021: movi a2, 107 /* 0x0000006b */ # 780: 22a06b + movi a3, 2 /* 0x00000002 */ # 783: 0c23 + movi a4, 2 /* 0x00000002 */ # 785: 0c24 + movi a5, 3 /* 0x00000003 */ # 787: 0c35 + movi a0, g_phyFuns # 789: 01eeff + movi a6, 0 /* 0x00000000 */ # 78c: 0c06 + l32i a0, a0, 0 /* [g_phyFuns] */ # 78e: 0800 + add a7, a12, a13 # 790: da7c + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 792: 022027 + l8ui a7, a7, 0 # 795: 720700 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 798: c00000 + j .Lbr023 # 79b: 860600 +.Lbr022: movi a2, 107 /* 0x0000006b */ # 79e: 22a06b + movi a3, 2 /* 0x00000002 */ # 7a1: 0c23 + movi a4, 1 /* 0x00000001 */ # 7a3: 0c14 + movi a5, 3 /* 0x00000003 */ # 7a5: 0c35 + movi a0, g_phyFuns # 7a7: 01e8ff + movi a6, 0 /* 0x00000000 */ # 7aa: 0c06 + l32i a0, a0, 0 /* [g_phyFuns] */ # 7ac: 0800 + add a7, a12, a13 # 7ae: da7c + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 7b0: 022027 + l8ui a7, a7, 0 # 7b3: 720700 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 7b6: c00000 +.Lbr023: addi a13, a13, 1 # 7b9: 1bdd + extui a13, a13, 0, 8 # 7bb: d0d074 + bnei a13, 3, .Lbr020 # 7be: 663d97 + l32i a12, sp, 4 /* [(local1)] */ # 7c1: c811 + l32i a13, sp, 8 /* [(local2)] */ # 7c3: d821 + l32i a0, sp, 0 /* [(local0)] */ # 7c5: 0801 + addi sp, sp, 16 /* (top of frame) */ # 7c7: 12c110 + ret # 7ca: 0df0 + + .literal_position # 7cc: 00000000 + +# Function @ .irom0.text+0x7d0 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global ram_restart_cal + .type ram_restart_cal, @function +ram_restart_cal: + movi a2, 98 /* 0x00000062 */ # 7d0: 22a062 + movi a3, 1 /* 0x00000001 */ # 7d3: 0c13 + movi a4, 0 /* 0x00000000 */ # 7d5: 0c04 + movi a5, 6 /* 0x00000006 */ # 7d7: 0c65 + addi sp, sp, -16 /* (local0) */ # 7d9: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 7dc: c911 + movi a12, g_phyFuns # 7de: c1fbff + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 7e1: 0901 + l32i a0, a12, 0 /* [g_phyFuns] */ # 7e3: 080c + movi a6, 6 /* 0x00000006 */ # 7e5: 0c66 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 7e7: 022027 + movi a7, 1 /* 0x00000001 */ # 7ea: 0c17 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 7ec: c00000 + movi a2, 98 /* 0x00000062 */ # 7ef: 22a062 + movi a3, 1 /* 0x00000001 */ # 7f2: 0c13 + movi a4, 0 /* 0x00000000 */ # 7f4: 0c04 + movi a5, 5 /* 0x00000005 */ # 7f6: 0c55 + l32i a0, a12, 0 /* [g_phyFuns] */ # 7f8: 080c + movi a6, 5 /* 0x00000005 */ # 7fa: 0c56 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 7fc: 022027 + movi a7, 0 /* 0x00000000 */ # 7ff: 0c07 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 801: c00000 + movi a2, 98 /* 0x00000062 */ # 804: 22a062 + movi a3, 1 /* 0x00000001 */ # 807: 0c13 + movi a4, 0 /* 0x00000000 */ # 809: 0c04 + movi a5, 5 /* 0x00000005 */ # 80b: 0c55 + l32i a0, a12, 0 /* [g_phyFuns] */ # 80d: 080c + movi a6, 5 /* 0x00000005 */ # 80f: 0c56 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 811: 022027 + movi a7, 1 /* 0x00000001 */ # 814: 0c17 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 816: c00000 + movi a2, 98 /* 0x00000062 */ # 819: 22a062 + movi a3, 1 /* 0x00000001 */ # 81c: 0c13 + movi a4, 0 /* 0x00000000 */ # 81e: 0c04 + movi a5, 6 /* 0x00000006 */ # 820: 0c65 + l32i a0, a12, 0 /* [g_phyFuns] */ # 822: 080c + movi a6, 6 /* 0x00000006 */ # 824: 0c66 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 826: 022027 + movi a7, 0 /* 0x00000000 */ # 829: 0c07 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 82b: c00000 + l32i a12, sp, 4 /* [(local1)] */ # 82e: c811 + l32i a0, sp, 0 /* [(local0)] */ # 830: 0801 + addi sp, sp, 16 /* (top of frame) */ # 832: 12c110 + ret # 835: 0df0 + + .literal_position # 838: 00000000 + # 83c: 00000000 + # 840: 00000000 + # 844: 00000000 + +# Function @ .irom0.text+0x848 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word[4] @ -0x10 + .balign 4 + .global wait_rfpll_cal_end + .type wait_rfpll_cal_end, @function +wait_rfpll_cal_end: + addi sp, sp, -32 /* (local0) */ # 848: 12c1e0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 84b: 0901 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 84d: d921 + s32i a14, sp, 12 /* a14 -> [(local3)] */ # 84f: e931 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 851: c911 + s32i a15, sp, 16 /* a15 -> [(local4)] */ # 853: f941 + movi a12, 0 /* 0x00000000 */ # 855: 0c0c + movi a15, 99 /* 0x00000063 */ # 857: f2a063 + movi a14, 100 /* 0x00000064 */ # 85a: e2a064 + movi a13, g_phyFuns # 85d: d1f6ff +.Lbr024: movi a2, 20 /* 0x00000014 */ # 860: 1c42 + call0 ets_delay_us # 862: 01f7ffc0 + # 866: 0000 + movi a2, 98 /* 0x00000062 */ # 868: 22a062 + movi a3, 1 /* 0x00000001 */ # 86b: 0c13 + movi a4, 7 /* 0x00000007 */ # 86d: 0c74 + l32i a0, a13, 0 /* [g_phyFuns] */ # 86f: 080d + movi a5, 7 /* 0x00000007 */ # 871: 0c75 + l32i a0, a0, 148 /* [[g_phyFuns]+0x94] */ # 873: 022025 + movi a6, 7 /* 0x00000007 */ # 876: 0c76 + callx0 a0 /* [[g_phyFuns]+0x94] */ # 878: c00000 + bnez a2, .Lbr026 # 87b: dc22 + bne a12, a15, .Lbr025 # 87d: f79c08 + movi a2, .Lstr001 # 880: 21efff + call0 ets_printf # 883: 01f0ffc0 + # 887: 0000 +.Lbr025: addi a12, a12, 1 # 889: 1bcc + extui a12, a12, 0, 8 # 88b: c0c074 + bne a12, a14, .Lbr024 # 88e: e79cce +.Lbr026: l32i a12, sp, 4 /* [(local1)] */ # 891: c811 + l32i a13, sp, 8 /* [(local2)] */ # 893: d821 + l32i a14, sp, 12 /* [(local3)] */ # 895: e831 + l32i a15, sp, 16 /* [(local4)] */ # 897: f841 + l32i a0, sp, 0 /* [(local0)] */ # 899: 0801 + addi sp, sp, 32 /* (top of frame) */ # 89b: 12c120 + ret # 89e: 0df0 + + .literal_position # 8a0: 00002042 + # 8a4: 0000c041 + # 8a8: 0000d041 + # 8ac: 00008043 + # 8b0: 00000840 + # 8b4: 00008044 + # 8b8: 000000c2 + # 8bc: 00000000 + # 8c0: 00000000 + # 8c4: 00000000 + # 8c8: 00000000 + # 8cc: 00000000 + # 8d0: 00000000 + # 8d4: 00000000 + # 8d8: 00000000 + # 8dc: 00000000 + # 8e0: 00000000 + # 8e4: 00000000 + # 8e8: 00000000 + # 8ec: 00000000 + # 8f0: 00000000 + # 8f4: 00000000 + +# Function @ .irom0.text+0x8f8 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word[4] @ -0x10 + .balign 4 + .global ram_rfpll_set_freq + .type ram_rfpll_set_freq, @function +ram_rfpll_set_freq: + addi sp, sp, -32 /* (local0) */ # 8f8: 12c1e0 + s32i a13, sp, 12 /* a13 -> [(local3)] */ # 8fb: d931 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 8fd: 0911 + s32i a12, sp, 8 /* a12 -> [(local2)] */ # 8ff: c921 + s32i a14, sp, 16 /* a14 -> [(local4)] */ # 901: e941 + mov a12, a5 /* arg3 */ # 903: cd05 + movi a14, 0x42200000 # 905: e1e6ff + beqz a3, .Lbr028 # 908: 8cd3 + beqi a3, 1, .Lbr027 # 90a: 261308 + bnei a3, 2, .Lbr028 # 90d: 662308 + movi a14, 0x41c00000 # 910: e1e5ff + j .Lbr028 # 913: 860000 +.Lbr027: movi a14, 0x41d00000 # 916: e1e4ff +.Lbr028: movi a13, 0x43800000 # 919: d1e4ff + slli a2, a2, 10 # 91c: 602211 + add a2, a4, a2 # 91f: 2a24 + slli a2, a2, 2 # 921: e02211 + call0 __floatunsidf # 924: 01e6ffc0 + # 928: 0000 + movi a5, 0x40080000 # 92a: 51e1ff + movi a4, 0 /* 0x00000000 */ # 92d: 0c04 + call0 __divdf3 # 92f: 01e4ffc0 + # 933: 0000 + call0 __truncdfsf2 # 935: 01e3ffc0 + # 939: 0000 + s32i a2, sp, 0 /* a2 -> [(local0)] */ # 93b: 2901 + movi a3, 0x44800000 # 93d: 31ddff + mov a2, a14 # 940: 2d0e + call0 __mulsf3 # 942: 01e1ffc0 + # 946: 0000 + mov a3, a2 # 948: 3d02 + l32i a2, sp, 0 /* [(local0)] */ # 94a: 2801 + call0 __divsf3 # 94c: 01e0ffc0 + # 950: 0000 + movi a3, 0xc2000000 # 952: 31d9ff + call0 __addsf3 # 955: 01deffc0 + # 959: 0000 + mov a14, a2 # 95b: ed02 + call0 __fixunssfsi # 95d: 01ddffc0 + # 961: 0000 + s8i a2, a12, 0 /* a2 -> [arg3] */ # 963: 224c00 + extui a2, a2, 0, 8 # 966: 202074 + call0 __floatsisf # 969: 01dbffc0 + # 96d: 0000 + mov a3, a2 # 96f: 3d02 + mov a2, a14 # 971: 2d0e + call0 __subsf3 # 973: 01daffc0 + # 977: 0000 + mov a3, a13 /* 0x43800000 */ # 979: 3d0d + call0 __mulsf3 # 97b: 01d9ffc0 + # 97f: 0000 + mov a14, a2 # 981: ed02 + call0 __fixunssfsi # 983: 01d8ffc0 + # 987: 0000 + s8i a2, a12, 1 /* a2 -> [arg3+0x1] */ # 989: 224c01 + extui a2, a2, 0, 8 # 98c: 202074 + call0 __floatsisf # 98f: 01d6ffc0 + # 993: 0000 + mov a3, a2 # 995: 3d02 + mov a2, a14 # 997: 2d0e + call0 __subsf3 # 999: 01d4ffc0 + # 99d: 0000 + mov a3, a13 /* 0x43800000 */ # 99f: 3d0d + call0 __mulsf3 # 9a1: 01d3ffc0 + # 9a5: 0000 + call0 __fixunssfsi # 9a7: 01d3ffc0 + # 9ab: 0000 + l32i a0, sp, 4 /* [(local1)] */ # 9ad: 0811 + l32i a13, sp, 12 /* [(local3)] */ # 9af: d831 + s8i a2, a12, 2 /* a2 -> [arg3+0x2] */ # 9b1: 224c02 + l32i a14, sp, 16 /* [(local4)] */ # 9b4: e841 + l32i a12, sp, 8 /* [(local2)] */ # 9b6: c821 + addi sp, sp, 32 /* (top of frame) */ # 9b8: 12c120 + ret # 9bb: 0df0 + + .literal_position # 9c0: 0000f000 + # 9c4: 00000000 + # 9c8: 00020060 + # 9cc: 790a0000 + # 9d0: b4090000 + # 9d4: d70a0000 + # 9d8: 00000000 + # 9dc: ffff0fff + # 9e0: 00020060 + # 9e4: 900b0000 + # 9e8: 6c090000 + # 9ec: a8090000 + # 9f0: a3090000 + # 9f4: 9e090000 + # 9f8: 99090000 + # 9fc: 94090000 + # a00: 8f090000 + # a04: 8a090000 + # a08: 85090000 + # a0c: 80090000 + # a10: 7b090000 + # a14: 76090000 + # a18: 71090000 + +# Function @ .irom0.text+0xa1c +# Local variables/stack: +# (local0): byte @ -0x30 +# (local1): byte @ -0x2f +# (local2): byte[2] @ -0x2e +# (local3): word @ -0x2c +# (local4): word @ -0x28 +# (local5): word @ -0x24 +# (local6): word @ -0x20 +# (local7): word @ -0x1c +# (local8): word @ -0x18 +# (local9): word @ -0x14 +# (local10): word[4] @ -0x10 + .balign 4 + .global ram_set_channel_freq + .type ram_set_channel_freq, @function +ram_set_channel_freq: + addi sp, sp, -48 /* (local0) */ # a1c: 12c1d0 + s32i a12, sp, 16 /* a12 -> [(local6)] */ # a1f: c941 + s32i a4, sp, 32 /* arg2 -> [(local10)] */ # a21: 4981 + s32i a6, sp, 8 /* arg4 -> [(local4)] */ # a23: 6921 + s32i a0, sp, 12 /* a0 -> [(local5)] */ # a25: 0931 + s32i a15, sp, 28 /* a15 -> [(local9)] */ # a27: f971 + s32i a13, sp, 20 /* a13 -> [(local7)] */ # a29: d951 + s32i a14, sp, 24 /* a14 -> [(local8)] */ # a2b: e961 + mov a13, a2 /* arg0 */ # a2d: dd02 + mov a14, a3 /* arg1 */ # a2f: ed03 + mov a15, a4 /* arg2 */ # a31: fd04 + blti a2, 1, .Lbr029 # a33: a6120e + movi a0, 13 /* 0x0000000d */ # a36: 0cd0 + blt a0, a2, .Lbr029 # a38: 272009 + addi a2, a2, -1 /* arg0-0x1 */ # a3b: 0b22 + extui a2, a2, 0, 8 # a3d: 202074 + s32i a2, sp, 4 /* a2 -> [(local3)] */ # a40: 2911 + j .Lbr030 # a42: c60000 +.Lbr029: movi a3, 13 /* 0x0000000d */ # a45: 0cd3 + s32i a3, sp, 4 /* 0x0000000d -> [(local3)] */ # a47: 3911 +.Lbr030: movi a4, 0x00f00000 # a49: 41ddff + movi a12, g_phyFuns # a4c: c1deff + movi a3, 0x60000200 # a4f: 31deff + memw # a52: c02000 + l32i a2, a3, 0x3c8 /* [0x600005c8] */ # a55: 2223f2 + or a2, a2, a4 # a58: 402220 + memw # a5b: c02000 + l32i a0, a12, 0 /* [g_phyFuns] */ # a5e: 080c + l32i a0, a0, 220 /* [[g_phyFuns]+0xdc] */ # a60: 022037 + s32i a2, a3, 0x3c8 /* a2 -> [0x600005c8] */ # a63: 2263f2 + callx0 a0 /* [[g_phyFuns]+0xdc] */ # a66: c00000 + movi a5, 14 /* 0x0000000e */ # a69: 0ce5 + bgeu a13, a5, .Lbr031 # a6b: 57bd34 + movi a7, .Lfunc001 # a6e: 71d7ff + addx2 a6, a13, a13 # a71: d06d90 + add a6, a6, a7 # a74: 7a66 + jx a6 # a76: a00600 +.Lfunc001: j .Lbr031 # a79: 860900 + j .Lbr047 # a7c: 465b00 + j .Lbr059 # a7f: 866c00 + j .Lbr058 # a82: 466a00 + j .Lbr057 # a85: 066800 + j .Lbr056 # a88: c66500 + j .Lbr055 # a8b: 866300 + j .Lbr054 # a8e: 466100 + j .Lbr053 # a91: 065f00 + j .Lbr052 # a94: c65c00 + j .Lbr051 # a97: 865a00 + j .Lbr050 # a9a: 465800 + j .Lbr049 # a9d: 065600 + j .Lbr048 # aa0: c65300 +.Lbr031: movi a12, 0x000009b4 # aa3: c1cbff +.Lbr032: bnez a15, .Lbr034 # aa6: 567f05 + bgeui a14, 2, .Lbr034 # aa9: f62e54 + movi a0, 59 /* 0x0000003b */ # aac: 3cb0 + addi a8, a14, -1 /* arg1-0x1 */ # aae: 0b8e + bnez a8, .Lbr037 # ab0: 56980b + movi a4, -73 /* 0xffffffb7 */ # ab3: 42afb7 + movi a11, -125 /* 0xffffff83 */ # ab6: b2af83 + movi a10, 118 /* 0x00000076 */ # ab9: a2a076 + movi a3, 94 /* 0x0000005e */ # abc: 5ce3 + movi a9, 93 /* 0x0000005d */ # abe: 5cd9 + movi a6, 92 /* 0x0000005c */ # ac0: 5cc6 + movi a8, 91 /* 0x0000005b */ # ac2: 5cb8 + movi a14, 14 /* 0x0000000e */ # ac4: 0cee + bltu a13, a14, .Lbr033 # ac6: e73d02 + j .Lbr063 # ac9: 865f00 +.Lbr033: movi a2, .Lfunc002 # acc: 21c2ff + addx2 a15, a13, a13 # acf: d0fd90 + add a15, a15, a2 # ad2: 2aff + jx a15 # ad4: a00f00 +.Lfunc002: j .Lbr063 # ad7: 065c00 + j .Lbr044 # ada: 064000 + j .Lbr064 # add: 865e00 + j .Lbr083 # ae0: 468900 + j .Lbr082 # ae3: c68500 + j .Lbr081 # ae6: 068200 + j .Lbr065 # ae9: 065f00 + j .Lbr080 # aec: 867e00 + j .Lbr078 # aef: 467a00 + j .Lbr077 # af2: 467600 + j .Lbr075 # af5: c67200 + j .Lbr074 # af8: 866e00 + j .Lbr073 # afb: 066b00 + j .Lbr072 # afe: 866700 +.Lbr034: mov a4, a15 /* arg2 */ # b01: 4d0f + mov a3, a14 /* arg1 */ # b03: 3d0e + l32i a13, sp, 4 /* [(local3)] */ # b05: d811 + mov a2, a12 /* 0x000009b4 */ # b07: 2d0c + mov a5, sp /* (local0) */ # b09: 5d01 + call0 ram_rfpll_set_freq # b0b: 050000 + l8ui a3, sp, 2 /* [(local2)] */ # b0e: 320102 + l8ui a5, sp, 0 /* [(local0)] */ # b11: 520100 + l32i a4, sp, 8 /* [(local4)] */ # b14: 4821 + l8ui a6, sp, 1 /* [(local1)] */ # b16: 620101 + addx4 a4, a13, a4 # b19: 404da0 + slli a6, a6, 8 # b1c: 806611 + slli a5, a5, 16 # b1f: 005511 + or a5, a5, a6 # b22: 605520 + or a3, a3, a5 # b25: 503320 + s32i a3, a4, 0 # b28: 3904 +.Lbr035: movi a13, g_phyFuns # b2a: d1abff + l32i a0, a13, 0 /* [g_phyFuns] */ # b2d: 080d + l32i a0, a0, 224 /* [[g_phyFuns]+0xe0] */ # b2f: 022038 + mov a2, sp /* (local0) */ # b32: 2d01 + callx0 a0 /* [[g_phyFuns]+0xe0] */ # b34: c00000 + l32i a0, a13, 0 /* [g_phyFuns] */ # b37: 080d + l32i a0, a0, 216 /* [[g_phyFuns]+0xd8] */ # b39: 022036 + callx0 a0 /* [[g_phyFuns]+0xd8] */ # b3c: c00000 + l8ui a2, sp, 48 /* [(local11)] */ # b3f: 220130 + beqz a2, .Lbr036 # b42: 8c12 + call0 wait_rfpll_cal_end # b44: 050000 +.Lbr036: mov a2, a12 /* 0x000009b4 */ # b47: 2d0c + movi a5, 0xff0fffff # b49: 51a4ff + memw # b4c: c02000 + movi a4, 0x60000200 # b4f: 41a4ff + l32i a3, a4, 0x3c8 /* [0x600005c8] */ # b52: 3224f2 + and a3, a3, a5 # b55: 503310 + memw # b58: c02000 + s32i a3, a4, 0x3c8 /* a3 -> [0x600005c8] */ # b5b: 3264f2 + l32i a12, sp, 16 /* [(local6)] */ # b5e: c841 + l32i a13, sp, 20 /* [(local7)] */ # b60: d851 + l32i a14, sp, 24 /* [(local8)] */ # b62: e861 + l32i a15, sp, 28 /* [(local9)] */ # b64: f871 + l32i a0, sp, 12 /* [(local5)] */ # b66: 0831 + addi sp, sp, 48 /* (local11) */ # b68: 12c130 + ret /* 0x000009b4 */ # b6b: 0df0 +.Lbr037: movi a4, 48 /* 0x00000030 */ # b6d: 3c04 + movi a10, 49 /* 0x00000031 */ # b6f: 3c1a + movi a2, 50 /* 0x00000032 */ # b71: 3c22 + movi a3, 102 /* 0x00000066 */ # b73: 32a066 + movi a11, -111 /* 0xffffff91 */ # b76: b2af91 + movi a6, -69 /* 0xffffffbb */ # b79: 62afbb + movi a9, -26 /* 0xffffffe6 */ # b7c: 6c69 + movi a8, 17 /* 0x00000011 */ # b7e: 1c18 + movi a7, 14 /* 0x0000000e */ # b80: 0ce7 + bgeu a13, a7, .Lbr038 # b82: 77bd34 + movi a15, .Lfunc003 # b85: f197ff + addx2 a14, a13, a13 # b88: d0ed90 + add a14, a14, a15 # b8b: faee + jx a14 # b8d: a00e00 +.Lfunc003: j .Lbr038 # b90: 860900 + j .Lbr042 # b93: 060f00 + j .Lbr039 # b96: c60900 + j .Lbr068 # b99: 063a00 + j .Lbr069 # b9c: 463a00 + j .Lbr071 # b9f: 863d00 + j .Lbr040 # ba2: 460800 + j .Lbr060 # ba5: 862400 + j .Lbr061 # ba8: c62400 + j .Lbr070 # bab: c63800 + j .Lbr062 # bae: 462400 + j .Lbr066 # bb1: 863000 + j .Lbr067 # bb4: c63000 + j .Lbr041 # bb7: 860500 +.Lbr038: mov a4, a2 /* 0x00000032 */ # bba: 4d02 + movi a8, -52 /* 0xffffffcc */ # bbc: 82afcc + mov a11, a8 /* 0xffffffcc */ # bbf: bd08 +.Lbr039: mov a6, a8 /* 0xffffffcc */ # bc1: 6d08 + mov a0, a11 /* 0xffffffcc */ # bc3: 0d0b + mov a10, a4 /* 0x00000032 */ # bc5: ad04 +.Lbr040: mov a3, a6 /* 0xffffffcc */ # bc7: 3d06 + mov a4, a10 /* 0x00000032 */ # bc9: 4d0a + s8i a0, sp, 1 /* 0xcc -> [(local1)] */ # bcb: 024101 + j .Lbr043 # bce: 060100 +.Lbr041: mov a4, a2 # bd1: 4d02 +.Lbr042: s8i a3, sp, 1 # bd3: 324101 +.Lbr043: mov a0, a3 /* 0xffffffcc */ # bd6: 0d03 + s8i a4, sp, 0 /* 0x32 -> [(local0)] */ # bd8: 424100 + j .Lbr046 # bdb: 060200 +.Lbr044: s8i a8, sp, 0 # bde: 824100 + movi a2, -79 # be1: 22afb1 +.Lbr045: s8i a2, sp, 1 # be4: 224101 +.Lbr046: s8i a0, sp, 2 /* a0 -> [(local2)] */ # be7: 024102 + j .Lbr035 # bea: 06cfff +.Lbr047: movi a12, None # bed: c17eff + j .Lbr032 # bf0: 86acff +.Lbr048: movi a12, None # bf3: c17eff + j .Lbr032 # bf6: 06abff +.Lbr049: movi a12, None # bf9: c17dff + j .Lbr032 # bfc: 86a9ff +.Lbr050: movi a12, None # bff: c17dff + j .Lbr032 # c02: 06a8ff +.Lbr051: movi a12, None # c05: c17cff + j .Lbr032 # c08: 86a6ff +.Lbr052: movi a12, None # c0b: c17cff + j .Lbr032 # c0e: 06a5ff +.Lbr053: movi a12, None # c11: c17bff + j .Lbr032 # c14: 86a3ff +.Lbr054: movi a12, None # c17: c17bff + j .Lbr032 # c1a: 06a2ff +.Lbr055: movi a12, None # c1d: c17aff + j .Lbr032 # c20: 86a0ff +.Lbr056: movi a12, None # c23: c17aff + j .Lbr032 # c26: 069fff +.Lbr057: movi a12, None # c29: c179ff + j .Lbr032 # c2c: 869dff +.Lbr058: movi a12, None # c2f: c179ff + j .Lbr032 # c32: 069cff +.Lbr059: movi a12, None # c35: c178ff + j .Lbr032 # c38: 869aff +.Lbr060: mov a8, a3 # c3b: 8d03 + mov a11, a8 # c3d: bd08 +.Lbr061: mov a3, a8 # c3f: 3d08 + mov a9, a11 # c41: 9d0b +.Lbr062: mov a4, a10 # c43: 4d0a + s8i a9, sp, 1 # c45: 924101 + j .Lbr043 # c48: 86e2ff +.Lbr063: mov a0, a10 /* 0x00000076 */ # c4b: 0d0a + movi a2, 98 /* 0x00000062 */ # c4d: 22a062 + movi a3, 95 /* 0x0000005f */ # c50: 5cf3 + s8i a3, sp, 0 /* 0x5f -> [(local0)] */ # c52: 324100 + s8i a2, sp, 1 /* 0x62 -> [(local1)] */ # c55: 224101 + j .Lbr046 # c58: c6e2ff +.Lbr064: s8i a8, sp, 0 # c5b: 824100 + movi a0, -33 # c5e: 02afdf + movi a4, -14 # c61: 7c24 + s8i a4, sp, 1 # c63: 424101 + j .Lbr046 # c66: 46dfff +.Lbr065: s8i a6, sp, 0 # c69: 624100 + movi a0, 111 # c6c: 02a06f + movi a5, -7 # c6f: 7c95 + s8i a5, sp, 1 # c71: 524101 + j .Lbr046 # c74: c6dbff +.Lbr066: mov a6, a8 # c77: 6d08 + mov a0, a6 # c79: 0d06 +.Lbr067: mov a3, a6 # c7b: 3d06 + mov a4, a2 # c7d: 4d02 + s8i a0, sp, 1 # c7f: 024101 + j .Lbr043 # c82: 06d4ff +.Lbr068: mov a3, a6 # c85: 3d06 + mov a9, a3 # c87: 9d03 +.Lbr069: mov a6, a3 # c89: 6d03 + mov a0, a9 # c8b: 0d09 + mov a10, a4 # c8d: ad04 + j .Lbr040 # c8f: 06cdff +.Lbr070: mov a3, a6 # c92: 3d06 + mov a9, a3 # c94: 9d03 + j .Lbr062 # c96: 46eaff +.Lbr071: mov a6, a8 # c99: 6d08 + mov a0, a6 # c9b: 0d06 + j .Lbr040 # c9d: 86c9ff +.Lbr072: s8i a3, sp, 0 # ca0: 324100 + movi a2, -60 # ca3: 22afc4 + movi a0, -20 # ca6: 6cc0 + j .Lbr045 # ca8: 06ceff +.Lbr073: s8i a3, sp, 0 # cab: 324100 + s8i a11, sp, 1 # cae: b24101 + movi a0, 72 # cb1: 4c80 + j .Lbr046 # cb3: 06ccff +.Lbr074: s8i a3, sp, 0 # cb6: 324100 + movi a0, -92 # cb9: 02afa4 + movi a6, 65 # cbc: 4c16 + s8i a6, sp, 1 # cbe: 624101 + j .Lbr046 # cc1: 86c8ff +.Lbr075: movi a0, 0 # cc4: 0c00 + s8i a0, sp, 1 # cc6: 024101 +.Lbr076: s8i a3, sp, 0 # cc9: 324100 + j .Lbr046 # ccc: c6c5ff +.Lbr077: mov a0, a8 # ccf: 0d08 + mov a3, a9 # cd1: 3d09 + movi a7, -66 # cd3: 72afbe + s8i a7, sp, 1 # cd6: 724101 + j .Lbr076 # cd9: 06fbff +.Lbr078: s8i a9, sp, 0 # cdc: 924100 + movi a0, 124 # cdf: 02a07c +.Lbr079: s8i a0, sp, 1 # ce2: 024101 + mov a0, a4 # ce5: 0d04 + j .Lbr046 # ce7: 06bfff +.Lbr080: s8i a9, sp, 0 # cea: 924100 + movi a4, 19 # ced: 1c34 + j .Lbr079 # cef: c6fbff +.Lbr081: s8i a6, sp, 0 # cf2: 624100 + s8i a4, sp, 1 # cf5: 424101 + movi a0, -53 # cf8: 02afcb + j .Lbr046 # cfb: 06baff +.Lbr082: s8i a6, sp, 0 # cfe: 624100 + s8i a10, sp, 1 # d01: a24101 + movi a0, 39 # d04: 2c70 + j .Lbr046 # d06: 46b7ff +.Lbr083: mov a0, a11 # d09: 0d0b + s8i a6, sp, 0 # d0b: 624100 + movi a8, 52 # d0e: 3c48 + s8i a8, sp, 1 # d10: 824101 + j .Lbr046 # d13: 06b4ff + + .literal_position # d18: 00000000 + # d1c: 660d0000 + # d20: 08520000 + # d24: 00600000 + # d28: 009a0060 + # d2c: 00000000 + # d30: 00000000 + +# Function @ .irom0.text+0xd34 +# Local variables/stack: +# (local0): word[4] @ -0x20 +# (local1): word @ -0x10 +# (local2): word[3] @ -0xc + .balign 4 + .global chip_60_set_channel + .type chip_60_set_channel, @function +chip_60_set_channel: + movi a8, chip6_sleep_params # d34: 81f9ff + mov a4, a5 /* arg3 */ # d37: 4d05 + addi sp, sp, -32 /* (local0) */ # d39: 12c1e0 + s32i a0, sp, 16 /* a0 -> [(local1)] */ # d3c: 0941 + s32i a12, sp, 20 /* a12 -> [(local2)] */ # d3e: c951 + mov a5, a6 /* arg4 */ # d40: 5d06 + mov a12, a2 /* arg0 */ # d42: cd02 + s8i a2, a8, 78 /* arg0 -> [chip6_sleep_params+0x4e] */ # d44: 22484e + mov a6, a7 /* arg5 */ # d47: 6d07 + l8ui a0, sp, 36 /* [(FP)+0x4] */ # d49: 020124 + l16ui a7, sp, 32 /* [(local3)] */ # d4c: 721110 + s32i a0, sp, 0 /* [(FP)+0x4] -> [(local0)] */ # d4f: 0901 + call0 ram_set_channel_freq # d51: 050000 + mov a3, a2 # d54: 3d02 + movi a9, 14 /* 0x0000000e */ # d56: 0ce9 + bgeu a12, a9, .Lbr084 # d58: 97bc34 + movi a11, .Lfunc004 # d5b: b1f0ff + addx2 a10, a12, a12 # d5e: c0ac90 + add a10, a10, a11 # d61: baaa + jx a10 # d63: a00a00 +.Lfunc004: j .Lbr084 # d66: 860900 + j .Lbr086 # d69: 061800 + j .Lbr098 # d6c: 462900 + j .Lbr097 # d6f: 062700 + j .Lbr096 # d72: c62400 + j .Lbr095 # d75: 862200 + j .Lbr094 # d78: 462000 + j .Lbr093 # d7b: 061e00 + j .Lbr092 # d7e: c61b00 + j .Lbr091 # d81: 861900 + j .Lbr090 # d84: 461700 + j .Lbr089 # d87: 061500 + j .Lbr088 # d8a: c61200 + j .Lbr087 # d8d: 861000 +.Lbr084: movi a0, 106 /* 0x0000006a */ # d90: 02a06a +.Lbr085: movi a4, 0x00006000 # d93: 41e4ff + movi a5, 0x00005208 # d96: 51e2ff + movi a2, 0x60009a00 # d99: 21e3ff + add a5, a0, a5 /* 0x00005272 */ # d9c: 5a50 + slli a5, a5, 17 # d9e: f05501 + memw # da1: c02000 + l32i a0, a2, 0x114 /* [0x60009b14] */ # da4: 022245 + extui a0, a0, 0, 13 # da7: 0000c4 + or a0, a0, a5 # daa: 500020 + or a0, a0, a4 # dad: 400020 + memw # db0: c02000 + s32i a0, a2, 0x114 /* a0 -> [0x60009b14] */ # db3: 026245 + mov a2, a12 /* arg0 */ # db6: 2d0c + call0 phy_dig_spur_set # db8: 01ddffc0 + # dbc: 0000 + call0 phy_dig_spur_prot # dbe: 01dcffc0 + # dc2: 0000 + l32i a12, sp, 20 /* [(local2)] */ # dc4: c851 + l32i a0, sp, 16 /* [(local1)] */ # dc6: 0841 + addi sp, sp, 32 /* (local3) */ # dc8: 12c120 + ret # dcb: 0df0 +.Lbr086: movi a0, 737 # dcd: 02a2e1 + j .Lbr085 # dd0: c6efff +.Lbr087: movi a0, 209 # dd3: 02a0d1 + j .Lbr085 # dd6: 46eeff +.Lbr088: movi a0, 252 # dd9: 02a0fc + j .Lbr085 # ddc: c6ecff +.Lbr089: movi a0, 295 # ddf: 02a127 + j .Lbr085 # de2: 46ebff +.Lbr090: movi a0, 339 # de5: 02a153 + j .Lbr085 # de8: c6e9ff +.Lbr091: movi a0, 382 # deb: 02a17e + j .Lbr085 # dee: 46e8ff +.Lbr092: movi a0, 426 # df1: 02a1aa + j .Lbr085 # df4: c6e6ff +.Lbr093: movi a0, 470 # df7: 02a1d6 + j .Lbr085 # dfa: 46e5ff +.Lbr094: movi a0, 514 # dfd: 02a202 + j .Lbr085 # e00: c6e3ff +.Lbr095: movi a0, 558 # e03: 02a22e + j .Lbr085 # e06: 46e2ff +.Lbr096: movi a0, 602 # e09: 02a25a + j .Lbr085 # e0c: c6e0ff +.Lbr097: movi a0, 647 # e0f: 02a287 + j .Lbr085 # e12: 46dfff +.Lbr098: movi a0, 692 # e15: 02a2b4 + j .Lbr085 # e18: c6ddff + + .literal_position # e1c: 00000000 + # e20: 20000000 + # e24: 00000000 + # e28: 00000000 + # e2c: 00000000 + # e30: 00000000 + # e34: 00000000 + +# Function @ .irom0.text+0xe38 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word[3] @ -0x1c +# (local2): word @ -0x10 +# (local3): word @ -0xc +# (local4): word[2] @ -0x8 + .balign 4 + .global chip_v6_set_chan_offset + .type chip_v6_set_chan_offset, @function +chip_v6_set_chan_offset: + addi a4, a2, -1 /* arg0-0x1 */ # e38: 0b42 + addi sp, sp, -32 /* (local0) */ # e3a: 12c1e0 + s32i a0, sp, 16 /* a0 -> [(local2)] */ # e3d: 0941 + s32i a13, sp, 24 /* a13 -> [(local4)] */ # e3f: d961 + ssl a4 # e41: 001440 + s32i a12, sp, 20 /* a12 -> [(local3)] */ # e44: c951 + movi a4, -1 /* 0xffffffff */ # e46: 7cf4 + mov a12, a2 /* arg0 */ # e48: cd02 + mov a13, a3 /* arg1 */ # e4a: dd03 + movi a2, chip6_sleep_params # e4c: 21f4ff + movi a3, 1 /* 0x00000001 */ # e4f: 0c13 + sll a3, a3 # e51: 0033a1 + xor a3, a3, a4 # e54: 403330 + l32i a0, a2, 0 /* [chip6_sleep_params] */ # e57: 0802 + mov a4, a13 /* arg1 */ # e59: 4d0d + and a0, a0, a3 # e5b: 300010 + s32i a0, a2, 0 /* a0 -> [chip6_sleep_params] */ # e5e: 0902 + mov a3, a12 /* arg0 */ # e60: 3d0c + movi a2, .Lstr002 # e62: 21efff + call0 ets_printf # e65: 01f2ffc0 + # e69: 0000 + mov a5, a13 /* arg1 */ # e6b: 5d0d + movi a6, chip6_sleep_params # e6d: 61eeff + mov a2, a12 /* arg0 */ # e70: 2d0c + movi a4, 0 /* 0x00000000 */ # e72: 0c04 + movi a8, 100 /* 0x00000064 */ # e74: 82a064 + movi a3, chip6_phy_init_ctrl # e77: 31ebff + movi a7, 1 /* 0x00000001 */ # e7a: 0c17 + l8ui a3, a3, 1 /* [chip6_phy_init_ctrl+0x1] */ # e7c: 320301 + s32i a7, sp, 4 /* 0x00000001 -> [(local1)] */ # e7f: 7911 + s32i a8, sp, 0 /* 0x00000064 -> [(local0)] */ # e81: 8901 + movi a7, chip6_sleep_params+0x16c # e83: 71eaff + call0 chip_60_set_channel # e86: 050000 + mov a2, a12 /* arg0 */ # e89: 2d0c + call0 chip_v6_set_chan_misc # e8b: 01eaffc0 + # e8f: 0000 + l32i a12, sp, 20 /* [(local3)] */ # e91: c851 + l32i a13, sp, 24 /* [(local4)] */ # e93: d861 + l32i a0, sp, 16 /* [(local2)] */ # e95: 0841 + addi sp, sp, 32 /* (top of frame) */ # e97: 12c120 + ret # e9a: 0df0 + + .literal_position # e9c: 00000000 + # ea0: 00000000 + # ea4: 00000000 + # ea8: 00000000 + # eac: 00000000 + # eb0: 00000000 + # eb4: 00000000 + # eb8: 00000000 + # ebc: 00000000 + # ec0: 00000000 + # ec4: 00000000 + # ec8: 00000000 + +# Function @ .irom0.text+0xecc +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word[3] @ -0x1c +# (local2): word @ -0x10 +# (local3): word @ -0xc +# (local4): word[2] @ -0x8 + .balign 4 + .global chip_v6_set_chan + .type chip_v6_set_chan, @function +chip_v6_set_chan: + movi a4, tx_pwctrl_set_chan_flag # ecc: 41f4ff + movi a3, 1 /* 0x00000001 */ # ecf: 0c13 + addi sp, sp, -32 /* (local0) */ # ed1: 12c1e0 + s32i a12, sp, 24 /* a12 -> [(local4)] */ # ed4: c961 + s32i a0, sp, 20 /* a0 -> [(local3)] */ # ed6: 0951 + movi a0, chip6_sleep_params # ed8: 01f2ff + mov a12, a2 /* arg0 */ # edb: cd02 + l32i a0, a0, 0 /* [chip6_sleep_params] */ # edd: 0800 + s8i a3, a4, 0 /* 0x01 -> [tx_pwctrl_set_chan_flag] */ # edf: 324400 + bbci a0, 21, .Lbr099 # ee2: 57700a + movi a2, 4 /* 0x00000004 */ # ee5: 0c42 + call0 pm_set_sleep_mode # ee7: 01f4ffc0 + # eeb: 0000 + j .Lbr100 # eed: c60100 +.Lbr099: call0 stop_dig_rx # ef0: 01f3ffc0 + # ef4: 0000 + s32i a2, sp, 16 /* a2 -> [(local2)] */ # ef6: 2941 +.Lbr100: movi a6, chip6_sleep_params # ef8: 61edff + movi a7, chip6_sleep_params+0x16c # efb: 71edff + movi a4, 100 /* 0x00000064 */ # efe: 42a064 + movi a2, 1 /* 0x00000001 */ # f01: 0c12 + movi a5, phy_freq_offset # f03: 51e8ff + movi a3, chip6_phy_init_ctrl # f06: 31e8ff + l16si a5, a5, 0 /* [phy_freq_offset] */ # f09: 529500 + l8ui a3, a3, 1 /* [chip6_phy_init_ctrl+0x1] */ # f0c: 320301 + s32i a2, sp, 4 /* 0x00000001 -> [(local1)] */ # f0f: 2911 + s32i a4, sp, 0 /* 0x00000064 -> [(local0)] */ # f11: 4901 + mov a2, a12 /* arg0 */ # f13: 2d0c + movi a4, 0 /* 0x00000000 */ # f15: 0c04 + call0 chip_60_set_channel # f17: 050000 + mov a2, a12 /* arg0 */ # f1a: 2d0c + call0 chip_v6_set_chan_misc # f1c: 01e9ffc0 + # f20: 0000 + movi a6, chip6_sleep_params # f22: 61e4ff + l32i a6, a6, 0 /* [chip6_sleep_params] */ # f25: 6806 + bbci a6, 21, .Lbr101 # f27: 57760c + movi a2, 4 /* 0x00000004 */ # f2a: 0c42 + movi a3, 0 /* 0x00000000 */ # f2c: 0c03 + call0 pm_wakeup_init # f2e: 01e5ffc0 + # f32: 0000 + j .Lbr102 # f34: c60100 +.Lbr101: l32i a2, sp, 16 /* [(local2)] */ # f37: 2841 + call0 start_dig_rx # f39: 01e3ffc0 + # f3d: 0000 +.Lbr102: l32i a12, sp, 24 /* [(local4)] */ # f3f: c861 + l32i a0, sp, 20 /* [(local3)] */ # f41: 0851 + addi sp, sp, 32 /* (top of frame) */ # f43: 12c120 + ret # f46: 0df0 + + .literal_position # f48: 000a0060 + # f4c: 00000000 + # f50: 00000000 + # f54: 00000000 + # f58: 00000000 + # f5c: 00000000 + # f60: 00000000 + +# Function @ .irom0.text+0xf64 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word[5] @ -0x1c +# (local2): word @ -0x8 +# (local3): word @ -0x4 + .balign 4 + .global chip_v6_set_chan_wakeup + .type chip_v6_set_chan_wakeup, @function +chip_v6_set_chan_wakeup: + addi sp, sp, -32 /* (local0) */ # f64: 12c1e0 + s32i a0, sp, 24 /* a0 -> [(local2)] */ # f67: 0961 + s32i a12, sp, 28 /* a12 -> [(local3)] */ # f69: c971 + movi a8, 1024 /* 0x00000400 */ # f6b: 82a400 + movi a7, 0x60000a00 # f6e: 71f6ff + mov a12, a2 /* arg0 */ # f71: cd02 + memw # f73: c02000 + l32i a6, a7, 0x340 /* [0x60000d40] */ # f76: 6227d0 + or a6, a6, a8 # f79: 806620 + memw # f7c: c02000 + movi a4, 0 /* 0x00000000 */ # f7f: 0c04 + movi a0, 0 /* 0x00000000 */ # f81: 0c00 + movi a2, 100 /* 0x00000064 */ # f83: 22a064 + movi a3, chip6_phy_init_ctrl # f86: 31f2ff + s32i a6, a7, 0x340 /* a6 -> [0x60000d40] */ # f89: 6267d0 + movi a5, phy_freq_offset # f8c: 51f0ff + movi a6, chip6_sleep_params # f8f: 61f1ff + movi a7, chip6_sleep_params+0x16c # f92: 71f1ff + l16si a5, a5, 0 /* [phy_freq_offset] */ # f95: 529500 + l8ui a3, a3, 1 /* [chip6_phy_init_ctrl+0x1] */ # f98: 320301 + s32i a2, sp, 0 /* 0x00000064 -> [(local0)] */ # f9b: 2901 + s32i a0, sp, 4 /* 0x00000000 -> [(local1)] */ # f9d: 0911 + mov a2, a12 /* arg0 */ # f9f: 2d0c + call0 chip_60_set_channel # fa1: 050000 + movi a3, chip6_sleep_params+0x1d # fa4: 31eeff + addx2 a2, a12, a12 # fa7: c02c90 + add a2, a2, a3 # faa: 3a22 + call0 set_txcap_reg # fac: 050000 + extui a2, a12, 0, 8 # faf: c02074 + addi a3, sp, 16 /* (FP)-0x10 */ # fb2: 32c110 + call0 tx_atten_set_interp # fb5: 01eaffc0 + # fb9: 0000 + l32i a12, sp, 28 /* [(local3)] */ # fbb: c871 + l32i a0, sp, 24 /* [(local2)] */ # fbd: 0861 + addi sp, sp, 32 /* (top of frame) */ # fbf: 12c120 + ret # fc2: 0df0 + + .literal_position # fc4: fffffff7 + # fc8: 00060060 + # fcc: 00000000 + # fd0: 00020060 + # fd4: 00000002 + # fd8: 00000030 + # fdc: 000af23f + # fe0: ffffffe0 + # fe4: 0000001c + # fe8: 00020060 + # fec: ffffffcf + # ff0: 00000010 + # ff4: 0000000c + # ff8: 000a0060 + # ffc: 00000000 + # 1000: 00000000 + +# Function @ .irom0.text+0x1004 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word @ -0x8 +# (local3): word @ -0x4 + .balign 4 + .global chip_v6_rf_init + .type chip_v6_rf_init, @function +chip_v6_rf_init: + movi a6, 0xf7ffffff # 1004: 61f0ff + addi sp, sp, -16 /* (local0) */ # 1007: 12c1f0 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 100a: 0911 + s32i a2, sp, 0 /* arg0 -> [(local0)] */ # 100c: 2901 + s32i a12, sp, 8 /* a12 -> [(local2)] */ # 100e: c921 + s32i a13, sp, 12 /* a13 -> [(local3)] */ # 1010: d931 + movi a5, 0x60000200 # 1012: 51efff + movi a13, 0x60000600 # 1015: d1ecff + movi a12, g_phyFuns # 1018: c1edff + memw # 101b: c02000 + l32i a4, a5, 0x3e8 /* [0x600005e8] */ # 101e: 4225fa + and a4, a4, a6 # 1021: 604410 + memw # 1024: c02000 + s32i a4, a5, 0x3e8 /* a4 -> [0x600005e8] */ # 1027: 4265fa + movi a3, 0x02000000 # 102a: 31eaff + memw # 102d: c02000 + l32i a2, a13, 0x110 /* [0x60000710] */ # 1030: 222d44 + or a2, a2, a3 # 1033: 302220 + memw # 1036: c02000 + movi a3, 2 /* 0x00000002 */ # 1039: 0c23 + movi a4, 0 /* 0x00000000 */ # 103b: 0c04 + movi a5, 39 /* 0x00000027 */ # 103d: 2c75 + l32i a0, a12, 0 /* [g_phyFuns] */ # 103f: 080c + s32i a2, a13, 0x110 /* a2 -> [0x60000710] */ # 1041: 226d44 + l32i a0, a0, 152 /* [[g_phyFuns]+0x98] */ # 1044: 022026 + movi a2, 106 /* 0x0000006a */ # 1047: 22a06a + callx0 a0 /* [[g_phyFuns]+0x98] */ # 104a: c00000 + movi a7, 0x30000000 # 104d: 71e2ff + movi a8, 0x3ff20a00 # 1050: 81e3ff + memw # 1053: c02000 + l32i a6, a13, 0x110 /* [0x60000710] */ # 1056: 622d44 + or a6, a6, a7 # 1059: 706620 + memw # 105c: c02000 + s32i a6, a13, 0x110 /* a6 -> [0x60000710] */ # 105f: 626d44 + movi a5, 0xe0ffffff # 1062: 51dfff + movi a4, 0x1c000000 # 1065: 41dfff + memw # 1068: c02000 + movi a11, 0x60000200 # 106b: b1dfff + l32i a3, a11, 0x3a0 /* [0x600005a0] */ # 106e: 322be8 + and a3, a3, a5 # 1071: 503310 + or a3, a3, a4 # 1074: 403320 + memw # 1077: c02000 + s32i a3, a11, 0x3a0 /* a3 -> [0x600005a0] */ # 107a: 326be8 + movi a2, 0xcfffffff # 107d: 21dbff + movi a0, 0x10000000 # 1080: 01dcff + memw # 1083: c02000 + l32i a10, a11, 0x398 /* [0x60000598] */ # 1086: a22be6 + and a10, a10, a2 # 1089: 20aa10 + or a10, a10, a0 # 108c: 00aa20 + memw # 108f: c02000 + s32i a10, a11, 0x398 /* a10 -> [0x60000598] */ # 1092: a26be6 + movi a9, -3 /* 0xfffffffd */ # 1095: 7cd9 + memw # 1097: c02000 + l32i a7, a8, 0x270 /* [0x3ff20c70] */ # 109a: 72289c + and a7, a7, a9 # 109d: 907710 + memw # 10a0: c02000 + s32i a7, a8, 0x270 /* a7 -> [0x3ff20c70] */ # 10a3: 72689c + movi a2, 2 /* 0x00000002 */ # 10a6: 0c22 + call0 ets_delay_us # 10a8: 01d6ffc0 + # 10ac: 0000 + l32i a0, a12, 0 /* [g_phyFuns] */ # 10ae: 080c + l32i a0, a0, 160 /* [[g_phyFuns]+0xa0] */ # 10b0: 022028 + callx0 a0 /* [[g_phyFuns]+0xa0] */ # 10b3: c00000 + movi a2, 2 /* 0x00000002 */ # 10b6: 0c22 + l32i a0, a12, 0 /* [g_phyFuns] */ # 10b8: 080c + movi a3, 1 /* 0x00000001 */ # 10ba: 0c13 + l32i a0, a0, 172 /* [[g_phyFuns]+0xac] */ # 10bc: 02202b + movi a4, 129 /* 0x00000081 */ # 10bf: 42a081 + callx0 a0 /* [[g_phyFuns]+0xac] */ # 10c2: c00000 + movi a3, 0x0c000000 # 10c5: 31cbff + memw # 10c8: c02000 + l32i a2, a13, 0x110 /* [0x60000710] */ # 10cb: 222d44 + or a2, a2, a3 # 10ce: 302220 + memw # 10d1: c02000 + l32i a0, a12, 0 /* [g_phyFuns] */ # 10d4: 080c + l32i a0, a0, 200 /* [[g_phyFuns]+0xc8] */ # 10d6: 022032 + s32i a2, a13, 0x110 /* a2 -> [0x60000710] */ # 10d9: 226d44 + callx0 a0 /* [[g_phyFuns]+0xc8] */ # 10dc: c00000 + movi a2, 106 /* 0x0000006a */ # 10df: 22a06a + movi a3, 2 /* 0x00000002 */ # 10e2: 0c23 + l32i a0, a12, 0 /* [g_phyFuns] */ # 10e4: 080c + movi a4, 0 /* 0x00000000 */ # 10e6: 0c04 + l32i a0, a0, 152 /* [[g_phyFuns]+0x98] */ # 10e8: 022026 + movi a5, 36 /* 0x00000024 */ # 10eb: 2c45 + callx0 a0 /* [[g_phyFuns]+0x98] */ # 10ed: c00000 + l32i a0, a12, 0 /* [g_phyFuns] */ # 10f0: 080c + l32i a0, a0, 196 /* [[g_phyFuns]+0xc4] */ # 10f2: 022031 + callx0 a0 /* [[g_phyFuns]+0xc4] */ # 10f5: c00000 + movi a2, 106 /* 0x0000006a */ # 10f8: 22a06a + movi a3, 2 /* 0x00000002 */ # 10fb: 0c23 + l32i a0, a12, 0 /* [g_phyFuns] */ # 10fd: 080c + movi a4, 0 /* 0x00000000 */ # 10ff: 0c04 + l32i a0, a0, 152 /* [[g_phyFuns]+0x98] */ # 1101: 022026 + movi a5, 37 /* 0x00000025 */ # 1104: 2c55 + callx0 a0 /* [[g_phyFuns]+0x98] */ # 1106: c00000 + l32i a0, a12, 0 /* [g_phyFuns] */ # 1109: 080c + l32i a0, a0, 188 /* [[g_phyFuns]+0xbc] */ # 110b: 02202f + callx0 a0 /* [[g_phyFuns]+0xbc] */ # 110e: c00000 + movi a4, -1537 /* 0xfffff9ff */ # 1111: 42a9ff + movi a3, 0x60000a00 # 1114: 31b9ff + memw # 1117: c02000 + l32i a2, a3, 0x340 /* [0x60000d40] */ # 111a: 2223d0 + and a2, a2, a4 # 111d: 402210 + memw # 1120: c02000 + movi a4, 0 /* 0x00000000 */ # 1123: 0c04 + movi a5, 4 /* 0x00000004 */ # 1125: 0c45 + movi a6, 0 /* 0x00000000 */ # 1127: 0c06 + movi a7, 8 /* 0x00000008 */ # 1129: 0c87 + l32i a0, a12, 0 /* [g_phyFuns] */ # 112b: 080c + s32i a2, a3, 0x340 /* a2 -> [0x60000d40] */ # 112d: 2263d0 + movi a2, 98 /* 0x00000062 */ # 1130: 22a062 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 1133: 022027 + movi a3, 1 /* 0x00000001 */ # 1136: 0c13 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 1138: c00000 + movi a0, chip6_sleep_params # 113b: 01b0ff + l32i a5, a0, 0 /* [chip6_sleep_params] */ # 113e: 5800 + bbsi a5, 27, .Lbr103 # 1140: b7f507 + l32i a2, sp, 0 /* [(local0)] */ # 1143: 2801 + call0 chip_v6_set_chan # 1145: 050000 + j .Lbr104 # 1148: c60200 +.Lbr103: l8ui a2, a0, 78 /* [chip6_sleep_params+0x4e] */ # 114b: 22004e + slli a2, a2, 24 # 114e: 802201 + srai a2, a2, 24 # 1151: 202831 + call0 chip_v6_set_chan_wakeup # 1154: 050000 +.Lbr104: l32i a0, a12, 0 /* [g_phyFuns] */ # 1157: 080c + l32i a0, a0, 140 /* [[g_phyFuns]+0x8c] */ # 1159: 022023 + callx0 a0 /* [[g_phyFuns]+0x8c] */ # 115c: c00000 + movi a2, 107 /* 0x0000006b */ # 115f: 22a06b + movi a3, 2 /* 0x00000002 */ # 1162: 0c23 + l32i a0, a12, 0 /* [g_phyFuns] */ # 1164: 080c + movi a4, 1 /* 0x00000001 */ # 1166: 0c14 + l32i a0, a0, 152 /* [[g_phyFuns]+0x98] */ # 1168: 022026 + movi a5, 72 /* 0x00000048 */ # 116b: 4c85 + callx0 a0 /* [[g_phyFuns]+0x98] */ # 116d: c00000 + l32i a0, a12, 0 /* [g_phyFuns] */ # 1170: 080c + l32i a0, a0, 136 /* [[g_phyFuns]+0x88] */ # 1172: 022022 + callx0 a0 /* [[g_phyFuns]+0x88] */ # 1175: c00000 + movi a2, 108 /* 0x0000006c */ # 1178: 22a06c + movi a3, 2 /* 0x00000002 */ # 117b: 0c23 + movi a4, 0 /* 0x00000000 */ # 117d: 0c04 + movi a5, 0 /* 0x00000000 */ # 117f: 0c05 + l32i a0, a12, 0 /* [g_phyFuns] */ # 1181: 080c + movi a6, 0 /* 0x00000000 */ # 1183: 0c06 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 1185: 022027 + movi a7, 1 /* 0x00000001 */ # 1188: 0c17 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 118a: c00000 + movi a2, 108 /* 0x0000006c */ # 118d: 22a06c + movi a3, 2 /* 0x00000002 */ # 1190: 0c23 + movi a4, 0 /* 0x00000000 */ # 1192: 0c04 + movi a5, 2 /* 0x00000002 */ # 1194: 0c25 + l32i a0, a12, 0 /* [g_phyFuns] */ # 1196: 080c + movi a6, 2 /* 0x00000002 */ # 1198: 0c26 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 119a: 022027 + movi a7, 1 /* 0x00000001 */ # 119d: 0c17 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 119f: c00000 + l32i a0, a12, 0 /* [g_phyFuns] */ # 11a2: 080c + l32i a0, a0, 76 /* [[g_phyFuns]+0x4c] */ # 11a4: 022013 + callx0 a0 /* [[g_phyFuns]+0x4c] */ # 11a7: c00000 + movi a2, 119 /* 0x00000077 */ # 11aa: 22a077 + movi a3, 0 /* 0x00000000 */ # 11ad: 0c03 + movi a4, 26 /* 0x0000001a */ # 11af: 1ca4 + movi a5, 4 /* 0x00000004 */ # 11b1: 0c45 + l32i a0, a12, 0 /* [g_phyFuns] */ # 11b3: 080c + movi a6, 4 /* 0x00000004 */ # 11b5: 0c46 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 11b7: 022027 + movi a7, 0 /* 0x00000000 */ # 11ba: 0c07 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 11bc: c00000 + movi a2, 119 /* 0x00000077 */ # 11bf: 22a077 + movi a3, 0 /* 0x00000000 */ # 11c2: 0c03 + movi a4, 26 /* 0x0000001a */ # 11c4: 1ca4 + movi a5, 5 /* 0x00000005 */ # 11c6: 0c55 + l32i a0, a12, 0 /* [g_phyFuns] */ # 11c8: 080c + movi a6, 5 /* 0x00000005 */ # 11ca: 0c56 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 11cc: 022027 + movi a7, 0 /* 0x00000000 */ # 11cf: 0c07 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 11d1: c00000 + movi a2, 119 /* 0x00000077 */ # 11d4: 22a077 + movi a3, 0 /* 0x00000000 */ # 11d7: 0c03 + movi a4, 26 /* 0x0000001a */ # 11d9: 1ca4 + movi a5, 4 /* 0x00000004 */ # 11db: 0c45 + l32i a0, a12, 0 /* [g_phyFuns] */ # 11dd: 080c + movi a6, 4 /* 0x00000004 */ # 11df: 0c46 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 11e1: 022027 + movi a7, 1 /* 0x00000001 */ # 11e4: 0c17 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 11e6: c00000 + movi a2, 119 /* 0x00000077 */ # 11e9: 22a077 + movi a3, 0 /* 0x00000000 */ # 11ec: 0c03 + movi a4, 26 /* 0x0000001a */ # 11ee: 1ca4 + movi a5, 5 /* 0x00000005 */ # 11f0: 0c55 + l32i a0, a12, 0 /* [g_phyFuns] */ # 11f2: 080c + movi a6, 5 /* 0x00000005 */ # 11f4: 0c56 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 11f6: 022027 + movi a7, 1 /* 0x00000001 */ # 11f9: 0c17 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 11fb: c00000 + movi a2, 0 /* 0x00000000 */ # 11fe: 0c02 + l32i a12, sp, 8 /* [(local2)] */ # 1200: c821 + l32i a13, sp, 12 /* [(local3)] */ # 1202: d831 + l32i a0, sp, 4 /* [(local1)] */ # 1204: 0811 + addi sp, sp, 16 /* (top of frame) */ # 1206: 12c110 + ret /* 0x00000000 */ # 1209: 0df0 + + .literal_position # 120c: 00000000 + # 1210: 00020060 + # 1214: 001ffeff + # 1218: 00000000 + +# Function @ .irom0.text+0x121c + .balign 4 + .global low_power_set + .type low_power_set, @function +low_power_set: + movi a6, chip6_sleep_params # 121c: 61fcff + movi a11, 24 /* 0x00000018 */ # 121f: 1c8b + l8ui a9, a6, 120 /* [chip6_sleep_params+0x78] */ # 1221: 920678 + movi a7, 0x60000200 # 1224: 71fbff + slli a9, a9, 24 # 1227: 809901 + srai a9, a9, 24 # 122a: 909831 + sub a9, a4, a9 # 122d: 9094c0 + beqz a2, .Lbr106 # 1230: bc22 + movi a2, 0 /* 0x00000000 */ # 1232: 0c02 + slli a10, a3, 13 # 1234: 30a311 + movi a3, 0xfffe1f00 # 1237: 31f7ff +.Lbr105: addx4 a6, a2, a7 # 123a: 7062a0 + memw # 123d: c02000 + l32i a8, a6, 0x304 # 1240: 8226c1 + and a5, a8, a3 # 1243: 305810 + sub a8, a8, a9 # 1246: 9088c0 + or a5, a10, a5 # 1249: 505a20 + extui a8, a8, 0, 8 # 124c: 808074 + or a5, a5, a8 # 124f: 805520 + memw # 1252: c02000 + s32i a5, a6, 0x304 # 1255: 5266c1 + addi a2, a2, 1 # 1258: 1b22 + extui a2, a2, 0, 8 # 125a: 202074 + bne a2, a11, .Lbr105 # 125d: b792d9 + movi a9, chip6_sleep_params # 1260: 91eeff + s8i a4, a9, 120 /* arg2 -> [chip6_sleep_params+0x78] */ # 1263: 424978 +.Lbr106: ret # 1266: 0df0 + + .literal_position # 1268: 00020060 + # 126c: 00feef3f + # 1270: 000000fe + # 1274: 00060060 + # 1278: 00008f03 + # 127c: 000000fe + # 1280: 00000000 + # 1284: 00000000 + # 1288: 00008001 + # 128c: 00000000 + # 1290: 00002000 + # 1294: 000a0060 + # 1298: 40000000 + # 129c: 00000000 + # 12a0: 000000fe + # 12a4: ffffdfff + # 12a8: ffff7ffe + # 12ac: 00008000 + # 12b0: 00020060 + # 12b4: 00060060 + # 12b8: 00feef3f + # 12bc: 00000000 + # 12c0: 00000000 + # 12c4: 00000000 + # 12c8: 00000000 + # 12cc: 00000000 + # 12d0: 00000000 + # 12d4: 00000000 + +# Function @ .irom0.text+0x12d8 +# Local variables/stack: +# (local0): word @ -0x30 +# (local1): word @ -0x2c +# (local2): word @ -0x28 +# (local3): word @ -0x24 +# (local4): word @ -0x20 +# (local5): word @ -0x1c +# (local6): word @ -0x18 +# (local7): word @ -0x14 +# (local8): word[4] @ -0x10 + .balign 4 + .global test_tout + .type test_tout, @function +test_tout: addi sp, sp, -64 /* (FP)-0x40 */ # 12d8: 12c1c0 + s32i a13, sp, 36 /* a13 -> [(local5)] */ # 12db: d991 + s32i a14, sp, 40 /* a14 -> [(local6)] */ # 12dd: e9a1 + s32i a0, sp, 28 /* a0 -> [(local3)] */ # 12df: 0971 + s32i a15, sp, 44 /* a15 -> [(local7)] */ # 12e1: f9b1 + s32i a12, sp, 32 /* a12 -> [(local4)] */ # 12e3: c981 + movi a15, 0x60000200 # 12e5: f1e0ff + movi a12, 0x3feffe00 # 12e8: c1e1ff + movi a0, 0xfe000000 # 12eb: 01e1ff + movi a14, 0x60000600 # 12ee: e1e1ff + memw # 12f1: c02000 + l32i a13, a14, 0x110 /* [0x60000710] */ # 12f4: d22e44 + s32i a2, sp, 48 /* arg0 -> [(local8)] */ # 12f7: 29c1 + and a3, a13, a0 # 12f9: 003d10 + s32i a3, sp, 24 /* a3 -> [(local2)] */ # 12fc: 3961 + ball a13, a0, .Lbr107 # 12fe: 074d6d + memw # 1301: c02000 + l32i a5, a12, 0x218 /* [0x3ff00018] */ # 1304: 522c86 + s32i a5, sp, 16 /* [0x3ff00018] -> [(local0)] */ # 1307: 5941 + movi a4, 0x038f0000 # 1309: 41dbff + memw # 130c: c02000 + l32i a3, a12, 0x218 /* [0x3ff00018] */ # 130f: 322c86 + or a3, a3, a4 # 1312: 403320 + memw # 1315: c02000 + s32i a3, a12, 0x218 /* a3 -> [0x3ff00018] */ # 1318: 326c86 + movi a2, 0xfe000000 # 131b: 21d8ff + or a2, a13, a2 # 131e: 202d20 + memw # 1321: c02000 + movi a3, 1 /* 0x00000001 */ # 1324: 0c13 + movi a4, 3 /* 0x00000003 */ # 1326: 0c34 + movi a5, 7 /* 0x00000007 */ # 1328: 0c75 + movi a6, 4 /* 0x00000004 */ # 132a: 0c46 + movi a0, g_phyFuns # 132c: 01d5ff + movi a7, 15 /* 0x0000000f */ # 132f: 0cf7 + l32i a0, a0, 0 /* [g_phyFuns] */ # 1331: 0800 + s32i a2, a14, 0x110 /* a2 -> [0x60000710] */ # 1333: 226e44 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 1336: 022027 + movi a2, 98 /* 0x00000062 */ # 1339: 22a062 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 133c: c00000 + movi a0, g_phyFuns # 133f: 01d1ff + l32i a0, a0, 0 /* [g_phyFuns] */ # 1342: 0800 + l32i a0, a0, 76 /* [[g_phyFuns]+0x4c] */ # 1344: 022013 + callx0 a0 /* [[g_phyFuns]+0x4c] */ # 1347: c00000 + movi a2, 2 /* 0x00000002 */ # 134a: 0c22 + call0 ets_delay_us # 134c: 01dcffc0 + # 1350: 0000 + movi a3, 0x01800000 # 1352: 31cdff + memw # 1355: c02000 + l32i a2, a15, 0x3e8 /* [0x600005e8] */ # 1358: 222ffa + or a2, a2, a3 # 135b: 302220 + memw # 135e: c02000 + s32i a2, a15, 0x3e8 /* a2 -> [0x600005e8] */ # 1361: 226ffa + movi a2, 2 /* 0x00000002 */ # 1364: 0c22 + call0 ets_delay_us # 1366: 01d6ffc0 + # 136a: 0000 + j .Lbr108 # 136c: c60100 +.Lbr107: movi a2, 4 /* 0x00000004 */ # 136f: 0c42 + call0 pm_set_sleep_mode # 1371: 01d4ffc0 + # 1375: 0000 +.Lbr108: movi a2, 108 /* 0x0000006c */ # 1377: 22a06c + movi a3, 2 /* 0x00000002 */ # 137a: 0c23 + movi a4, 0 /* 0x00000000 */ # 137c: 0c04 + movi a0, g_phyFuns # 137e: 01c3ff + movi a5, 5 /* 0x00000005 */ # 1381: 0c55 + l32i a0, a0, 0 /* [g_phyFuns] */ # 1383: 0800 + movi a6, 5 /* 0x00000005 */ # 1385: 0c56 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 1387: 022027 + movi a7, 1 /* 0x00000001 */ # 138a: 0c17 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 138c: c00000 + movi a5, 0x00200000 # 138f: 51c0ff + movi a2, 7 /* 0x00000007 */ # 1392: 0c72 + movi a12, 0x60000a00 # 1394: c1c0ff + memw # 1397: c02000 + l32i a4, a12, 0x35c /* [0x60000d5c] */ # 139a: 422cd7 + or a4, a4, a5 # 139d: 504420 + memw # 13a0: c02000 + s32i a4, a12, 0x35c /* a4 -> [0x60000d5c] */ # 13a3: 426cd7 + memw # 13a6: c02000 + l32i a3, a12, 0x350 /* [0x60000d50] */ # 13a9: 322cd4 + extui a3, a3, 24, 8 # 13ac: 303875 + bnone a2, a3, .Lbr110 # 13af: 37020b +.Lbr109: memw # 13b2: c02000 + l32i a6, a12, 0x350 /* [0x60000d50] */ # 13b5: 622cd4 + extui a6, a6, 24, 3 # 13b8: 606825 + bnez a6, .Lbr109 # 13bb: 5636ff +.Lbr110: movi a9, -3 /* 0xfffffffd */ # 13be: 7cd9 + memw # 13c0: c02000 + l32i a8, a12, 0x350 /* [0x60000d50] */ # 13c3: 822cd4 + and a8, a8, a9 # 13c6: 908810 + memw # 13c9: c02000 + s32i a8, a12, 0x350 /* a8 -> [0x60000d50] */ # 13cc: 826cd4 + movi a2, 2 /* 0x00000002 */ # 13cf: 0c22 + memw # 13d1: c02000 + l32i a7, a12, 0x350 /* [0x60000d50] */ # 13d4: 722cd4 + or a7, a7, a2 # 13d7: 207720 + memw # 13da: c02000 + s32i a7, a12, 0x350 /* a7 -> [0x60000d50] */ # 13dd: 726cd4 + call0 ets_delay_us # 13e0: 01baffc0 + # 13e4: 0000 + memw # 13e6: c02000 + l32i a11, a12, 0x350 /* [0x60000d50] */ # 13e9: b22cd4 + movi a10, 7 /* 0x00000007 */ # 13ec: 0c7a + extui a11, a11, 24, 8 # 13ee: b0b875 + bnone a10, a11, .Lbr112 # 13f1: b70a0b +.Lbr111: memw # 13f4: c02000 + l32i a0, a12, 0x350 /* [0x60000d50] */ # 13f7: 022cd4 + extui a0, a0, 24, 3 # 13fa: 000825 + bnez a0, .Lbr111 # 13fd: 5630ff +.Lbr112: mov a2, sp /* (FP)-0x40 */ # 1400: 2d01 + s32i a13, sp, 20 /* [0x60000710] -> [(local1)] */ # 1402: d951 + call0 read_sar_dout # 1404: 01b2ffc0 + # 1408: 0000 + l32i a15, sp, 48 /* [(local8)] */ # 140a: f8c1 + movi a13, 0 /* 0x00000000 */ # 140c: 0c0d + movi a14, 0 /* 0x00000000 */ # 140e: 0c0e + mov a0, sp /* (FP)-0x40 */ # 1410: 0d01 +.Lbr113: addx2 a3, a13, a0 # 1412: 003d90 + l16ui a3, a3, 0 # 1415: 321300 + add a14, a3, a14 # 1418: eae3 + extui a14, a14, 0, 16 # 141a: e0e0f4 + beqz a15, .Lbr114 # 141d: 8c9f + movi a2, .Lstr003 # 141f: 219eff + call0 ets_printf # 1422: 01abffc0 + # 1426: 0000 + mov a0, sp /* (FP)-0x40 */ # 1428: 0d01 +.Lbr114: addi a13, a13, 1 # 142a: 1bdd + extui a13, a13, 0, 8 # 142c: d0d074 + bnei a13, 8, .Lbr113 # 142f: 668ddf + movi a2, 108 /* 0x0000006c */ # 1432: 22a06c + movi a3, 2 /* 0x00000002 */ # 1435: 0c23 + movi a4, 0 /* 0x00000000 */ # 1437: 0c04 + movi a13, g_phyFuns # 1439: d198ff + movi a5, 5 /* 0x00000005 */ # 143c: 0c55 + l32i a0, a13, 0 /* [g_phyFuns] */ # 143e: 080d + movi a6, 5 /* 0x00000005 */ # 1440: 0c56 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 1442: 022027 + movi a7, 0 /* 0x00000000 */ # 1445: 0c07 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 1447: c00000 + movi a0, 0xfe000000 # 144a: 0195ff + l32i a2, sp, 24 /* [(local2)] */ # 144d: 2861 + memw # 144f: c02000 + l32i a4, a12, 0x350 /* [0x60000d50] */ # 1452: 422cd4 + movi a3, 7 /* 0x00000007 */ # 1455: 0c73 + extui a4, a4, 24, 8 # 1457: 404875 + bnone a3, a4, .Lbr116 # 145a: 47030b +.Lbr115: memw # 145d: c02000 + l32i a5, a12, 0x350 /* [0x60000d50] */ # 1460: 522cd4 + extui a5, a5, 24, 3 # 1463: 505825 + bnez a5, .Lbr115 # 1466: 5635ff +.Lbr116: movi a11, 0xffdfffff # 1469: b18eff + memw # 146c: c02000 + l32i a10, a12, 0x35c /* [0x60000d5c] */ # 146f: a22cd7 + and a10, a10, a11 # 1472: b0aa10 + memw # 1475: c02000 + s32i a10, a12, 0x35c /* a10 -> [0x60000d5c] */ # 1478: a26cd7 + movi a9, -2 /* 0xfffffffe */ # 147b: 7ce9 + memw # 147d: c02000 + l32i a8, a12, 0x360 /* [0x60000d60] */ # 1480: 822cd8 + and a8, a8, a9 # 1483: 908810 + memw # 1486: c02000 + s32i a8, a12, 0x360 /* a8 -> [0x60000d60] */ # 1489: 826cd8 + movi a7, 1 /* 0x00000001 */ # 148c: 0c17 + memw # 148e: c02000 + l32i a6, a12, 0x360 /* [0x60000d60] */ # 1491: 622cd8 + or a6, a6, a7 # 1494: 706620 + memw # 1497: c02000 + s32i a6, a12, 0x360 /* a6 -> [0x60000d60] */ # 149a: 626cd8 + beq a2, a0, .Lbr117 # 149d: 071248 + l32i a12, sp, 16 /* [(local0)] */ # 14a0: c841 + movi a5, 0xfe7fffff # 14a2: 5181ff + movi a4, 0x00800000 # 14a5: 4181ff + memw # 14a8: c02000 + movi a3, 0x60000200 # 14ab: 3181ff + l32i a2, a3, 0x3e8 /* [0x600005e8] */ # 14ae: 2223fa + and a2, a2, a5 # 14b1: 502210 + or a2, a2, a4 # 14b4: 402220 + memw # 14b7: c02000 + movi a4, 3 /* 0x00000003 */ # 14ba: 0c34 + movi a5, 7 /* 0x00000007 */ # 14bc: 0c75 + movi a6, 4 /* 0x00000004 */ # 14be: 0c46 + movi a7, 0 /* 0x00000000 */ # 14c0: 0c07 + l32i a0, a13, 0 /* [g_phyFuns] */ # 14c2: 080d + s32i a2, a3, 0x3e8 /* a2 -> [0x600005e8] */ # 14c4: 2263fa + movi a2, 98 /* 0x00000062 */ # 14c7: 22a062 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 14ca: 022027 + movi a3, 1 /* 0x00000001 */ # 14cd: 0c13 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 14cf: c00000 + memw # 14d2: c02000 + movi a8, 0x60000600 # 14d5: 8177ff + l32i a7, sp, 20 /* [(local1)] */ # 14d8: 7851 + s32i a7, a8, 0x110 /* [(local1)] -> [0x60000710] */ # 14da: 726844 + memw # 14dd: c02000 + movi a6, 0x3feffe00 # 14e0: 6176ff + s32i a12, a6, 0x218 /* [(local0)] -> [0x3ff00018] */ # 14e3: c26686 + j .Lbr118 # 14e6: 460200 +.Lbr117: movi a2, 4 /* 0x00000004 */ # 14e9: 0c42 + movi a3, 0 /* 0x00000000 */ # 14eb: 0c03 + call0 pm_wakeup_init # 14ed: 0179ffc0 + # 14f1: 0000 +.Lbr118: l32i a0, sp, 28 /* [(local3)] */ # 14f3: 0871 + l32i a12, sp, 32 /* [(local4)] */ # 14f5: c881 + l32i a13, sp, 36 /* [(local5)] */ # 14f7: d891 + addi a2, a14, 8 # 14f9: 8b2e + l32i a15, sp, 44 /* [(local7)] */ # 14fb: f8b1 + l32i a14, sp, 40 /* [(local6)] */ # 14fd: e8a1 + extui a2, a2, 4, 16 # 14ff: 2024f4 + addi sp, sp, 64 /* (top of frame) */ # 1502: 12c140 + ret # 1505: 0df0 + + .balign 4 +# Function @ .irom0.text+0x1508 + .balign 4 + .global check_data_flag + .type check_data_flag, @function +check_data_flag: + mov a9, a2 /* arg0 */ # 1508: 9d02 + mov a2, a5 /* arg3 */ # 150a: 2d05 + blt a9, a3, .Lbr119 # 150c: 372902 + bge a4, a9, .Lbr120 # 150f: 97a40a +.Lbr119: ssl a6 # 1512: 001640 + movi a3, 1 /* 0x00000001 */ # 1515: 0c13 + sll a3, a3 # 1517: 0033a1 + or a2, a2, a3 # 151a: 302220 +.Lbr120: ret # 151d: 0df0 + + .literal_position # 1520: 00000000 + # 1524: 00000000 + # 1528: f40f0000 + # 152c: f40f0000 + # 1530: 00000000 + # 1534: 00000000 + # 1538: 00000000 + +# Function @ .irom0.text+0x153c +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word @ -0x10 +# (local5): word[3] @ -0xc + .balign 4 + .global get_check_flag + .type get_check_flag, @function +get_check_flag: + movi a5, 0 /* 0x00000000 */ # 153c: 0c05 + addi sp, sp, -32 /* (local0) */ # 153e: 12c1e0 + s32i a15, sp, 16 /* a15 -> [(local4)] */ # 1541: f941 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1543: 0901 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 1545: d921 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 1547: c911 + movi a13, chip6_sleep_params # 1549: d1f5ff + s32i a14, sp, 12 /* a14 -> [(local3)] */ # 154c: e931 + mov a12, a13 /* chip6_sleep_params */ # 154e: cd0d + addi a14, a13, 8 /* chip6_sleep_params+0x8 */ # 1550: 8bed +.Lbr121: movi a3, 0 /* 0x00000000 */ # 1552: 0c03 + movi a4, 12 /* 0x0000000c */ # 1554: 0cc4 + movi a6, 0 /* 0x00000000 */ # 1556: 0c06 + l16si a2, a12, 12 # 1558: 229c06 + call0 check_data_flag # 155b: 050000 + mov a5, a2 # 155e: 5d02 + addi a12, a12, 2 # 1560: 2bcc + bne a12, a14, .Lbr121 # 1562: e79cec + movi a13, 1 /* 0x00000001 */ # 1565: 0c1d + movi a0, 0x00000ff4 # 1567: 01f0ff + movi a7, chip6_sleep_params # 156a: 71eeff + movi a6, 996 /* 0x000003e4 */ # 156d: 62a3e4 + l16ui a15, a7, 118 /* [chip6_sleep_params+0x76] */ # 1570: f2173b + addi a12, a7, 6 /* chip6_sleep_params+0x6 */ # 1573: 6bc7 +.Lbr122: beq a15, a6, .Lbr123 # 1575: 671f02 + bne a15, a0, .Lbr124 # 1578: 079f1c +.Lbr123: movi a3, 12 /* 0x0000000c */ # 157b: 0cc3 + movi a4, 60 /* 0x0000003c */ # 157d: 3cc4 + l8ui a2, a12, 79 # 157f: 220c4f + movi a6, 1 /* 0x00000001 */ # 1582: 0c16 + slli a2, a2, 24 # 1584: 802201 + srai a2, a2, 24 # 1587: 202831 + call0 check_data_flag # 158a: 050000 + mov a5, a2 # 158d: 5d02 + movi a0, 0x00000ff4 # 158f: 01e7ff + movi a6, 996 /* 0x000003e4 */ # 1592: 62a3e4 + movi a7, chip6_sleep_params # 1595: 71e6ff +.Lbr124: addi a12, a12, 6 # 1598: 6bcc + addi a13, a13, 1 # 159a: 1bdd + bnei a13, 5, .Lbr122 # 159c: 665dd5 + l16ui a0, a7, 20 /* [chip6_sleep_params+0x14] */ # 159f: 02170a + extui a4, a0, 8, 8 # 15a2: 004874 + mov a2, a4 # 15a5: 2d04 + extui a0, a0, 0, 8 # 15a7: 000074 + mov a13, a0 # 15aa: dd00 + blti a4, 16, .Lbr125 # 15ac: a6b402 + addi a2, a4, -32 # 15af: 22c4e0 +.Lbr125: blti a0, 32, .Lbr126 # 15b2: a6c002 + addi a13, a0, -64 # 15b5: d2c0c0 +.Lbr126: movi a3, -13 /* 0xfffffff3 */ # 15b8: 7c33 + movi a4, 13 /* 0x0000000d */ # 15ba: 0cd4 + movi a6, 2 /* 0x00000002 */ # 15bc: 0c26 + call0 check_data_flag # 15be: 050000 + movi a3, -27 /* 0xffffffe5 */ # 15c1: 6c53 + movi a4, 27 /* 0x0000001b */ # 15c3: 1cb4 + mov a5, a2 # 15c5: 5d02 + movi a6, 2 /* 0x00000002 */ # 15c7: 0c26 + mov a2, a13 # 15c9: 2d0d + call0 check_data_flag # 15cb: 050000 + movi a15, chip6_sleep_params # 15ce: f1d9ff + mov a5, a2 # 15d1: 5d02 + mov a12, a15 /* chip6_sleep_params */ # 15d3: cd0f + addi a3, a15, 10 /* chip6_sleep_params+0xa */ # 15d5: ab3f + s32i a3, sp, 20 /* chip6_sleep_params+0xa -> [(local5)] */ # 15d7: 3951 +.Lbr127: l16ui a0, a12, 22 # 15d9: 021c0b + extui a4, a0, 6, 5 # 15dc: 004644 + mov a2, a4 # 15df: 2d04 + extui a0, a0, 0, 6 # 15e1: 000054 + mov a13, a0 # 15e4: dd00 + blti a4, 16, .Lbr128 # 15e6: a6b402 + addi a2, a4, -32 # 15e9: 22c4e0 +.Lbr128: blti a0, 32, .Lbr129 # 15ec: a6c002 + addi a13, a0, -64 # 15ef: d2c0c0 +.Lbr129: movi a3, -13 /* 0xfffffff3 */ # 15f2: 7c33 + movi a4, 13 /* 0x0000000d */ # 15f4: 0cd4 + movi a6, 3 /* 0x00000003 */ # 15f6: 0c36 + call0 check_data_flag # 15f8: 050000 + movi a3, -27 /* 0xffffffe5 */ # 15fb: 6c53 + movi a4, 27 /* 0x0000001b */ # 15fd: 1cb4 + mov a5, a2 # 15ff: 5d02 + movi a6, 3 /* 0x00000003 */ # 1601: 0c36 + mov a2, a13 # 1603: 2d0d + call0 check_data_flag # 1605: 050000 + mov a5, a2 # 1608: 5d02 + l32i a4, sp, 20 /* [(local5)] */ # 160a: 4851 + addi a12, a12, 2 # 160c: 2bcc + bne a12, a4, .Lbr127 # 160e: 479cc7 + mov a12, a15 /* chip6_sleep_params */ # 1611: cd0f +.Lbr130: movi a3, 3 /* 0x00000003 */ # 1613: 0c33 + movi a4, 124 /* 0x0000007c */ # 1615: 42a07c + l16ui a2, a12, 4 # 1618: 221c02 + movi a6, 4 /* 0x00000004 */ # 161b: 0c46 + extui a13, a2, 8, 8 # 161d: 20d874 + extui a2, a2, 0, 8 # 1620: 202074 + call0 check_data_flag # 1623: 050000 + movi a3, 3 /* 0x00000003 */ # 1626: 0c33 + movi a4, 124 /* 0x0000007c */ # 1628: 42a07c + mov a5, a2 # 162b: 5d02 + movi a6, 4 /* 0x00000004 */ # 162d: 0c46 + mov a2, a13 # 162f: 2d0d + call0 check_data_flag # 1631: 050000 + mov a5, a2 # 1634: 5d02 + addi a12, a12, 2 # 1636: 2bcc + bne a12, a14, .Lbr130 # 1638: e79cd7 + mov a12, a15 /* chip6_sleep_params */ # 163b: cd0f + movi a14, chip6_sleep_params+0xf0 # 163d: e1beff +.Lbr131: movi a3, 128 /* 0x00000080 */ # 1640: 32a080 + movi a4, 384 /* 0x00000180 */ # 1643: 42a180 + l32i a2, a12, 124 # 1646: 222c1f + movi a6, 5 /* 0x00000005 */ # 1649: 0c56 + extui a13, a2, 0, 9 # 164b: 20d084 + extui a2, a2, 9, 9 # 164e: 202984 + call0 check_data_flag # 1651: 050000 + movi a3, 128 /* 0x00000080 */ # 1654: 32a080 + movi a4, 384 /* 0x00000180 */ # 1657: 42a180 + mov a5, a2 # 165a: 5d02 + movi a6, 5 /* 0x00000005 */ # 165c: 0c56 + mov a2, a13 # 165e: 2d0d + call0 check_data_flag # 1660: 050000 + mov a5, a2 # 1663: 5d02 + addi a12, a12, 4 # 1665: 4bcc + bne a12, a14, .Lbr131 # 1667: e79cd5 + extui a2, a2, 0, 16 # 166a: 2020f4 + l32i a0, sp, 0 /* [(local0)] */ # 166d: 0801 + l32i a12, sp, 4 /* [(local1)] */ # 166f: c811 + l32i a13, sp, 8 /* [(local2)] */ # 1671: d821 + l32i a14, sp, 12 /* [(local3)] */ # 1673: e831 + l8ui a3, a15, 121 /* [chip6_sleep_params+0x79] */ # 1675: 320f79 + l32i a15, sp, 16 /* [(local4)] */ # 1678: f841 + slli a3, a3, 24 # 167a: 803301 + srai a3, a3, 24 # 167d: 303831 + srai a3, a3, 3 # 1680: 303321 + addi sp, sp, 32 /* (top of frame) */ # 1683: 12c120 + slli a3, a3, 16 # 1686: 003311 + or a2, a2, a3 # 1689: 302220 + ret # 168c: 0df0 + + .section .rodata.str1.4, "MSa", @progbits, 1 + +.Lstr001: .asciz "error: pll_cal exceeds 2ms!!!\n" # 0: 6572726f + # 4: 723a2070 + # 8: 6c6c5f63 + # c: 616c2065 + # 10: 78636565 + # 14: 64732032 + # 18: 6d732121 + # 1c: 210a00 + .balign 4 +.Lstr002: .asciz "channel=%d, freq_offset=%d, " # 20: 6368616e + # 24: 6e656c3d + # 28: 25642c20 + # 2c: 66726571 + # 30: 5f6f6666 + # 34: 7365743d + # 38: 25642c20 + # 3c: 00 + .balign 4 +.Lstr003: .asciz "%d, " # 40: 25642c20 + # 44: 00 + + .section .rodata, "a", @progbits + + .byte 0x00, 0x00, 0x20, 0x42, 0x00, 0x00, 0x80, 0x43 diff --git a/binary_sdk/libphy_stage1/phy_chip_v6_cal.S b/binary_sdk/libphy_stage1/phy_chip_v6_cal.S new file mode 100644 index 0000000..4382ad8 --- /dev/null +++ b/binary_sdk/libphy_stage1/phy_chip_v6_cal.S @@ -0,0 +1,4532 @@ + + .section .data, "aw", @progbits + + .global dpd_index + .type dpd_index, @object +dpd_index: .byte 0xff, 0xf0, 0xe3, 0xd6, 0xca, 0xbf, 0xb4, 0xaa + .byte 0xa1, 0x98, 0x8f, 0x87, 0x80, 0x78, 0x72, 0x6b + .byte 0x65, 0x60, 0x5a, 0x55, 0x51, 0x4c, 0x48, 0x44 + .byte 0x40, 0x3c, 0x39, 0x36, 0x33, 0x30, 0x2d, 0x2b + .byte 0x28, 0x26, 0x24, 0x22, 0x20, 0x1e, 0x1d, 0x1b + .byte 0x19, 0x18, 0x17, 0x15, 0x14, 0x13, 0x12, 0x11 + .byte 0x10, 0x0f, 0x0e, 0x0e, 0x0d, 0x0c, 0x0b, 0x0b + .byte 0x0a, 0x0a, 0x09, 0x09, 0x08, 0x08, 0x07, 0x07 + .byte 0x06, 0x06, 0x06, 0x05, 0x05, 0x05, 0x05, 0x04 + .byte 0x04, 0x04, 0x04, 0x03, 0x03, 0x03, 0x03, 0x03 + .byte 0x03, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02 + .byte 0x02, 0x02, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01 + .global dpd_db2linear + .type dpd_db2linear, @object +dpd_db2linear: + .byte 0x00, 0x04, 0x0f, 0x04, 0x1e, 0x04, 0x2d, 0x04 + .byte 0x3d, 0x04, 0x4c, 0x04, 0x5c, 0x04, 0x6d, 0x04 + .byte 0x7d, 0x04, 0x8e, 0x04, 0x9e, 0x04, 0xb0, 0x04 + .byte 0xc1, 0x04, 0xd3, 0x04, 0xe5, 0x04, 0xf7, 0x04 + .byte 0x09, 0x05, 0x1c, 0x05, 0x2f, 0x05, 0x42, 0x05 + .byte 0x56, 0x05, 0x69, 0x05, 0x7d, 0x05, 0x92, 0x05 + + .section .bss, "aw", @nobits + + .global loop_pwctrl_pwdet_error_accum_high_power + .type loop_pwctrl_pwdet_error_accum_high_power, @object +loop_pwctrl_pwdet_error_accum_high_power: + .hword 0x0000 # 0: 0000 + .global tx_pwctrl_pk_num + .type tx_pwctrl_pk_num, @object +tx_pwctrl_pk_num: + .byte 0x00 + .global loop_pwctrl_correct_atten_high_power + .type loop_pwctrl_correct_atten_high_power, @object +loop_pwctrl_correct_atten_high_power: + .byte 0x00 + .global tx_pwctrl_set_chan_flag + .type tx_pwctrl_set_chan_flag, @object +tx_pwctrl_set_chan_flag: + .byte 0x00 + .global rxiq_cover_fail_num + .type rxiq_cover_fail_num, @object +rxiq_cover_fail_num: + .byte 0x00 + + .section .irom0.text, "ax", @progbits + +# Function @ .irom0.text+0x0 + .balign 4 + .literal_position + .global txbbgain2dcoindex + .type txbbgain2dcoindex, @function +txbbgain2dcoindex: + beqi a2, 4, .Lbr003 # 0: 264214 + beqi a2, 16, .Lbr001 # 3: 26b209 + movi a3, 18 /* 0x00000012 */ # 6: 1c23 + beq a2, a3, .Lbr004 # 8: 371210 + movi a4, 20 /* 0x00000014 */ # b: 1c44 + beq a2, a4, .Lbr002 # d: 471203 +.Lbr001: movi a2, 1 /* 0x00000001 */ # 10: 0c12 + ret /* 0x00000001 */ # 12: 0df0 +.Lbr002: movi a2, 3 /* 0x00000003 */ # 14: 0c32 + ret /* 0x00000003 */ # 16: 0df0 +.Lbr003: movi a2, 0 /* 0x00000000 */ # 18: 0c02 + ret /* 0x00000000 */ # 1a: 0df0 +.Lbr004: movi a2, 2 /* 0x00000002 */ # 1c: 0c22 + ret /* 0x00000002 */ # 1e: 0df0 + +# Function @ .irom0.text+0x20 + .balign 4 + .global dcoindex2txbbgain + .type dcoindex2txbbgain, @function +dcoindex2txbbgain: + beqz a2, .Lbr007 # 20: 8cf2 + beqi a2, 1, .Lbr005 # 22: 261205 + beqi a2, 2, .Lbr008 # 25: 26220e + beqi a2, 3, .Lbr006 # 28: 263203 +.Lbr005: movi a2, 16 /* 0x00000010 */ # 2b: 1c02 + ret /* 0x00000010 */ # 2d: 0df0 +.Lbr006: movi a2, 20 /* 0x00000014 */ # 2f: 1c42 + ret /* 0x00000014 */ # 31: 0df0 +.Lbr007: movi a2, 4 /* 0x00000004 */ # 33: 0c42 + ret /* 0x00000004 */ # 35: 0df0 +.Lbr008: movi a2, 18 /* 0x00000012 */ # 37: 1c22 + ret /* 0x00000012 */ # 39: 0df0 + + .literal_position # 3c: 00000000 + # 40: 00000000 + # 44: 00000000 + # 48: 00000000 + # 4c: 00000800 + # 50: 00000000 + +# Function @ .irom0.text+0x54 +# Local variables/stack: +# (local0): byte @ -0x20 +# (local1): byte[3] @ -0x1f +# (local2): word @ -0x1c +# (local3): word @ -0x18 +# (local4): word @ -0x14 +# (local5): word @ -0x10 +# (local6): word[3] @ -0xc + .balign 4 + .global init_cal_dcoffset + .type init_cal_dcoffset, @function +init_cal_dcoffset: + addi sp, sp, -32 /* (local0) */ # 54: 12c1e0 + s32i a13, sp, 12 /* a13 -> [(local4)] */ # 57: d931 + s32i a15, sp, 20 /* a15 -> [(local6)] */ # 59: f951 + s32i a12, sp, 8 /* a12 -> [(local3)] */ # 5b: c921 + s32i a14, sp, 16 /* a14 -> [(local5)] */ # 5d: e941 + s32i a0, sp, 4 /* a0 -> [(local2)] */ # 5f: 0911 + mov a14, a3 /* arg1 */ # 61: ed03 + l32i a0, a2, 0 /* [arg0] */ # 63: 0802 + mov a12, a2 /* arg0 */ # 65: cd02 + extui a0, a0, 19, 1 # 67: 000305 + bnez a0, .Lbr010 # 6a: 56e008 + movi a15, g_phyFuns # 6d: f1f3ff + movi a2, tx_rf_ana_gain # 70: 21f4ff + l32i a0, a15, 0 /* [g_phyFuns] */ # 73: 080f + l16ui a2, a2, 0 /* [tx_rf_ana_gain] */ # 75: 221200 + l32i a0, a0, 164 /* [[g_phyFuns]+0xa4] */ # 78: 022029 + extui a2, a2, 0, 5 # 7b: 202044 + callx0 a0 /* [[g_phyFuns]+0xa4] */ # 7e: c00000 + movi a2, 1 /* 0x00000001 */ # 81: 0c12 + l32i a0, a15, 0 /* [g_phyFuns] */ # 83: 080f + movi a3, 1 /* 0x00000001 */ # 85: 0c13 + l32i a0, a0, 172 /* [[g_phyFuns]+0xac] */ # 87: 02202b + movi a4, 31 /* 0x0000001f */ # 8a: 1cf4 + callx0 a0 /* [[g_phyFuns]+0xac] */ # 8c: c00000 + movi a13, 0 /* 0x00000000 */ # 8f: 0c0d +.Lbr009: mov a2, a13 # 91: 2d0d + call0 dcoindex2txbbgain # 93: 050000 + movi a4, 500 /* 0x000001f4 */ # 96: 42a1f4 + movi a5, 12 /* 0x0000000c */ # 99: 0cc5 + mov a6, sp /* (local0) */ # 9b: 6d01 + l32i a0, a15, 0 /* [g_phyFuns] */ # 9d: 080f + mov a3, a2 # 9f: 3d02 + l32i a0, a0, 232 /* [[g_phyFuns]+0xe8] */ # a1: 02203a + movi a2, 0 /* 0x00000000 */ # a4: 0c02 + callx0 a0 /* [[g_phyFuns]+0xe8] */ # a6: c00000 + l8ui a0, sp, 0 /* [(local0)] */ # a9: 020100 + l8ui a2, sp, 1 /* [(local1)] */ # ac: 220101 + slli a0, a0, 24 # af: 800001 + slli a2, a2, 24 # b2: 802201 + srai a2, a2, 24 # b5: 202831 + srai a0, a0, 24 # b8: 000831 + slli a2, a2, 8 # bb: 802211 + or a0, a0, a2 # be: 200020 + addx2 a2, a13, a14 # c1: e02d90 + s16i a0, a2, 0 # c4: 025200 + addi a13, a13, 1 # c7: 1bdd + extui a13, a13, 0, 8 # c9: d0d074 + bnei a13, 4, .Lbr009 # cc: 664dc1 + mov a3, sp /* (local0) */ # cf: 3d01 + movi a2, tx_rf_ana_gain # d1: 21dcff + movi a4, 1 /* 0x00000001 */ # d4: 0c14 + l16ui a2, a2, 0 /* [tx_rf_ana_gain] */ # d6: 221200 + call0 set_txdc_pbus # d9: 01ddffc0 + # dd: 0000 + movi a2, tx_rf_ana_gain # df: 21daff + mov a3, sp /* (local0) */ # e2: 3d01 + l16ui a2, a2, 0 /* [tx_rf_ana_gain] */ # e4: 221200 + call0 set_rfanagain_dc_reg # e7: 050000 + l32i a0, a15, 0 /* [g_phyFuns] */ # ea: 080f + l32i a0, a0, 168 /* [[g_phyFuns]+0xa8] */ # ec: 02202a + movi a13, 0x00080000 # ef: d1d7ff + callx0 a0 /* [[g_phyFuns]+0xa8] */ # f2: c00000 + l32i a2, a12, 0 /* [arg0] */ # f5: 280c + or a2, a2, a13 # f7: d02220 + s32i a2, a12, 0 /* a2 -> [arg0] */ # fa: 290c +.Lbr010: l32i a12, sp, 8 /* [(local3)] */ # fc: c821 + l32i a13, sp, 12 /* [(local4)] */ # fe: d831 + l32i a14, sp, 16 /* [(local5)] */ # 100: e841 + l32i a15, sp, 20 /* [(local6)] */ # 102: f851 + l32i a0, sp, 4 /* [(local2)] */ # 104: 0811 + addi sp, sp, 32 /* (top of frame) */ # 106: 12c120 + ret # 109: 0df0 + + .literal_position # 10c: ff00f0ff + # 110: 00020060 + # 114: ff3f00f0 + # 118: 00c0ffff + +# Function @ .irom0.text+0x11c +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word @ -0x8 +# (local3): word @ -0x4 + .balign 4 + .global set_rfanagain_dc_reg + .type set_rfanagain_dc_reg, @function +set_rfanagain_dc_reg: + slli a9, a2, 8 # 11c: 809211 + movi a8, 0xfff000ff # 11f: 81fbff + movi a7, 0x60000200 # 122: 71fbff + movi a11, 0xf0003fff # 125: b1fbff + movi a10, 0xffffc000 # 128: a1fcff + addi sp, sp, -16 /* (local0) */ # 12b: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 12e: c911 + s32i a14, sp, 12 /* a14 -> [(local3)] */ # 130: e931 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 132: 0901 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 134: d921 + movi a0, 0 /* 0x00000000 */ # 136: 0c00 + movi a13, 24 /* 0x00000018 */ # 138: 1c8d +.Lbr011: addx4 a5, a0, a7 # 13a: 7050a0 + memw # 13d: c02000 + l32i a4, a5, 0x304 # 140: 4225c1 + and a4, a4, a8 # 143: 804410 + or a4, a4, a9 # 146: 904420 + memw # 149: c02000 + s32i a4, a5, 0x304 # 14c: 4265c1 + srli a2, a0, 1 # 14f: 002141 + addx4 a2, a2, a7 # 152: 7022a0 + l8ui a6, a3, 1 /* [arg1+0x1] */ # 155: 620301 + l8ui a5, a3, 0 /* [arg1] */ # 158: 520300 + slli a6, a6, 24 # 15b: 806601 + slli a5, a5, 24 # 15e: 805501 + srai a5, a5, 24 # 161: 505831 + srai a6, a6, 24 # 164: 606831 + bbci a0, 0, .Lbr012 # 167: 07601d + slli a14, a5, 14 # 16a: 20e511 + slli a4, a6, 21 # 16d: b04601 + memw # 170: c02000 + l32i a12, a2, 0x204 # 173: c22281 + and a12, a12, a11 # 176: b0cc10 + or a12, a12, a4 # 179: 40cc20 + or a12, a12, a14 # 17c: e0cc20 + memw # 17f: c02000 + s32i a12, a2, 0x204 # 182: c26281 + j .Lbr013 # 185: c60500 +.Lbr012: slli a4, a6, 7 # 188: 904611 + memw # 18b: c02000 + l32i a14, a2, 0x204 # 18e: e22281 + and a14, a14, a10 # 191: a0ee10 + or a14, a14, a4 # 194: 40ee20 + or a14, a14, a5 # 197: 50ee20 + memw # 19a: c02000 + s32i a14, a2, 0x204 # 19d: e26281 +.Lbr013: addi a0, a0, 1 # 1a0: 1b00 + extui a0, a0, 0, 8 # 1a2: 000074 + bne a0, a13, .Lbr011 # 1a5: d79091 + l32i a12, sp, 4 /* [(local1)] */ # 1a8: c811 + l32i a13, sp, 8 /* [(local2)] */ # 1aa: d821 + l32i a14, sp, 12 /* [(local3)] */ # 1ac: e831 + l32i a0, sp, 0 /* [(local0)] */ # 1ae: 0801 + addi sp, sp, 16 /* (top of frame) */ # 1b0: 12c110 + ret # 1b3: 0df0 + + .literal_position # 1b8: 00000000 + # 1bc: 00000000 + # 1c0: 00000000 + +# Function @ .irom0.text+0x1c4 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 + .global set_txdc_pbus + .type set_txdc_pbus, @function +set_txdc_pbus: + extui a2, a2, 0, 5 # 1c4: 202044 + addi sp, sp, -16 /* (local0) */ # 1c7: 12c1f0 + s32i a4, sp, 0 /* arg2 -> [(local0)] */ # 1ca: 4901 + s32i a12, sp, 8 /* a12 -> [(local2)] */ # 1cc: c921 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 1ce: 0911 + mov a12, a3 /* arg1 */ # 1d0: cd03 + call0 txbbgain2dcoindex # 1d2: 050000 + movi a4, chip6_sleep_params # 1d5: 41f8ff + addx2 a2, a2, a4 # 1d8: 402290 + l16ui a3, a2, 4 # 1db: 321202 + s8i a3, a12, 0 /* a3 -> [arg1] */ # 1de: 324c00 + l16ui a2, a2, 4 # 1e1: 221202 + l32i a0, sp, 0 /* [(local0)] */ # 1e4: 0801 + srli a2, a2, 8 # 1e6: 202841 + s8i a2, a12, 1 /* a2 -> [arg1+0x1] */ # 1e9: 224c01 + beqz a0, .Lbr014 # 1ec: bc40 + movi a2, 0 /* 0x00000000 */ # 1ee: 0c02 + movi a3, 2 /* 0x00000002 */ # 1f0: 0c23 + l8ui a4, a12, 0 /* [arg1] */ # 1f2: 420c00 + movi a0, g_phyFuns # 1f5: 01f1ff + slli a4, a4, 24 # 1f8: 804401 + l32i a0, a0, 0 /* [g_phyFuns] */ # 1fb: 0800 + srai a4, a4, 24 # 1fd: 404831 + l32i a0, a0, 172 /* [[g_phyFuns]+0xac] */ # 200: 02202b + extui a4, a4, 0, 16 # 203: 4040f4 + callx0 a0 /* [[g_phyFuns]+0xac] */ # 206: c00000 + movi a2, 1 /* 0x00000001 */ # 209: 0c12 + movi a3, 2 /* 0x00000002 */ # 20b: 0c23 + l8ui a4, a12, 1 /* [arg1+0x1] */ # 20d: 420c01 + movi a0, g_phyFuns # 210: 01ecff + slli a4, a4, 24 # 213: 804401 + l32i a0, a0, 0 /* [g_phyFuns] */ # 216: 0800 + srai a4, a4, 24 # 218: 404831 + l32i a0, a0, 172 /* [[g_phyFuns]+0xac] */ # 21b: 02202b + extui a4, a4, 0, 16 # 21e: 4040f4 + callx0 a0 /* [[g_phyFuns]+0xac] */ # 221: c00000 +.Lbr014: l32i a12, sp, 8 /* [(local2)] */ # 224: c821 + l32i a0, sp, 4 /* [(local1)] */ # 226: 0811 + addi sp, sp, 16 /* (top of frame) */ # 228: 12c110 + ret # 22b: 0df0 + + .balign 4 +# Function @ .irom0.text+0x230 + .balign 4 + .global get_rf_gain_qdb + .type get_rf_gain_qdb, @function +get_rf_gain_qdb: + beqi a2, 1, .Lbr015 # 230: 261214 + beqi a2, 2, .Lbr016 # 233: 262215 + beqi a2, 3, .Lbr017 # 236: 263216 + beqi a2, 4, .Lbr018 # 239: 264217 + addi a4, a2, -5 /* arg0-0x5 */ # 23c: 42c2fb + movi a3, 6 /* 0x00000006 */ # 23f: 0c63 + movi a2, 5 /* 0x00000005 */ # 241: 0c52 + moveqz a2, a3, a4 # 243: 402383 + ret # 246: 0df0 +.Lbr015: movi a2, 14 /* 0x0000000e */ # 248: 0ce2 + ret /* 0x0000000e */ # 24a: 0df0 +.Lbr016: movi a2, 10 /* 0x0000000a */ # 24c: 0ca2 + ret /* 0x0000000a */ # 24e: 0df0 +.Lbr017: movi a2, 8 /* 0x00000008 */ # 250: 0c82 + ret /* 0x00000008 */ # 252: 0df0 +.Lbr018: movi a2, 7 /* 0x00000007 */ # 254: 0c72 + ret /* 0x00000007 */ # 256: 0df0 + +# Function @ .irom0.text+0x258 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word @ -0x10 +# (local5): word[3] @ -0xc + .balign 4 + .global correct_rf_ana_gain + .type correct_rf_ana_gain, @function +correct_rf_ana_gain: + addi sp, sp, -32 /* (local0) */ # 258: 12c1e0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 25b: 0901 + s32i a3, sp, 20 /* arg1 -> [(local5)] */ # 25d: 3951 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 25f: c911 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 261: d921 + s32i a15, sp, 16 /* a15 -> [(local4)] */ # 263: f941 + s32i a14, sp, 12 /* a14 -> [(local3)] */ # 265: e931 + mov a15, a3 /* arg1 */ # 267: fd03 + mov a14, a2 /* arg0 */ # 269: ed02 + l16ui a13, a3, 0 /* [arg1] */ # 26b: d21300 + l8ui a2, a2, 0 /* [arg0] */ # 26e: 220200 + extui a12, a13, 9, 3 # 271: d0c924 + extui a3, a13, 0, 4 # 274: d03034 + slli a0, a2, 24 # 277: 800201 + srai a0, a0, 24 # 27a: 000831 + extui a13, a13, 4, 1 # 27d: d0d404 + addx2 a13, a13, a13 # 280: d0dd90 + addx2 a13, a13, a3 # 283: 30dd90 + extui a13, a13, 0, 8 # 286: d0d074 + blti a0, 1, .Lbr025 # 289: a6107c + bnei a13, 4, .Lbr019 # 28c: 664d10 + addi a0, a0, -8 # 28f: 02c0f8 + addi a13, a13, 2 # 292: 2bdd + extui a13, a13, 0, 8 # 294: d0d074 + s8i a0, a14, 0 /* a0 -> [arg0] */ # 297: 024e00 + slli a0, a0, 24 # 29a: 800001 + srai a0, a0, 24 # 29d: 000831 +.Lbr019: blti a0, 1, .Lbr023 # 2a0: a6103e + bgeui a12, 7, .Lbr021 # 2a3: f67c1e +.Lbr020: mov a2, a12 # 2a6: 2d0c + call0 get_rf_gain_qdb # 2a8: 050000 + l8ui a0, a14, 0 /* [arg0] */ # 2ab: 020e00 + addi a12, a12, 1 # 2ae: 1bcc + extui a12, a12, 0, 8 # 2b0: c0c074 + sub a0, a0, a2 # 2b3: 2000c0 + s8i a0, a14, 0 /* a0 -> [arg0] */ # 2b6: 024e00 + slli a0, a0, 24 # 2b9: 800001 + srai a0, a0, 24 # 2bc: 000831 + blti a0, 1, .Lbr023 # 2bf: a6101f + bnei a12, 7, .Lbr020 # 2c2: 667ce0 +.Lbr021: blti a0, 1, .Lbr023 # 2c5: a61019 + bgeui a13, 10, .Lbr023 # 2c8: f69d16 +.Lbr022: addi a0, a0, -8 # 2cb: 02c0f8 + addi a13, a13, 2 # 2ce: 2bdd + extui a13, a13, 0, 8 # 2d0: d0d074 + s8i a0, a14, 0 /* a0 -> [arg0] */ # 2d3: 024e00 + slli a0, a0, 24 # 2d6: 800001 + srai a0, a0, 24 # 2d9: 000831 + blti a0, 1, .Lbr023 # 2dc: a61002 + bltui a13, 10, .Lbr022 # 2df: b69de8 +.Lbr023: slli a14, a12, 4 # 2e2: c0ec11 + l32i a0, sp, 0 /* [(local0)] */ # 2e5: 0801 + l32i a12, sp, 4 /* [(local1)] */ # 2e7: c811 + addi a14, a14, 15 # 2e9: fbee + extui a14, a14, 0, 8 # 2eb: e0e074 + slli a14, a14, 5 # 2ee: b0ee11 + bltui a13, 6, .Lbr024 # 2f1: b66d04 + addi a13, a13, 10 # 2f4: abdd + extui a13, a13, 0, 8 # 2f6: d0d074 +.Lbr024: add a14, a13, a14 # 2f9: eaed + s16i a14, a15, 0 /* a14 -> [arg1] */ # 2fb: e25f00 + l32i a13, sp, 8 /* [(local2)] */ # 2fe: d821 + l32i a14, sp, 12 /* [(local3)] */ # 300: e831 + l32i a15, sp, 16 /* [(local4)] */ # 302: f841 + addi sp, sp, 32 /* (top of frame) */ # 304: 12c120 + ret # 307: 0df0 +.Lbr025: bbci a2, 7, .Lbr023 # 309: 7762d5 + bltui a13, 7, .Lbr027 # 30c: b67d16 +.Lbr026: addi a13, a13, -2 # 30f: d2cdfe + addi a2, a0, 8 # 312: 8b20 + s8i a2, a14, 0 /* a2 -> [arg0] */ # 314: 224e00 + extui a13, a13, 0, 8 # 317: d0d074 + slli a0, a2, 24 # 31a: 800201 + srai a0, a0, 24 # 31d: 000831 + bbci a2, 7, .Lbr027 # 320: 776202 + bgeui a13, 7, .Lbr026 # 323: f67de8 +.Lbr027: bgez a0, .Lbr023 # 326: d680fb + bltui a12, 2, .Lbr029 # 329: b62c1d +.Lbr028: addi a12, a12, -1 # 32c: 0bcc + extui a12, a12, 0, 8 # 32e: c0c074 + mov a2, a12 # 331: 2d0c + call0 get_rf_gain_qdb # 333: 050000 + l8ui a3, a14, 0 /* [arg0] */ # 336: 320e00 + add a2, a3, a2 # 339: 2a23 + s8i a2, a14, 0 /* a2 -> [arg0] */ # 33b: 224e00 + slli a0, a2, 24 # 33e: 800201 + srai a0, a0, 24 # 341: 000831 + bbci a2, 7, .Lbr029 # 344: 776202 + bnei a12, 1, .Lbr028 # 347: 661ce1 +.Lbr029: bgez a0, .Lbr023 # 34a: d640f9 + bnei a13, 6, .Lbr023 # 34d: 666d91 + addi a13, a13, -2 # 350: d2cdfe + addi a2, a0, 8 # 353: 8b20 + s8i a2, a14, 0 /* a2 -> [arg0] */ # 355: 224e00 + extui a13, a13, 0, 8 # 358: d0d074 + j .Lbr023 # 35b: c6e0ff + + .literal_position # 360: 00000000 + # 364: 00000000 + +# Function @ .irom0.text+0x368 +# Local variables/stack: +# (local0): hword @ -0x1e +# (local1): hword @ -0x1c +# (local2): hword @ -0x1a +# (local3): hword @ -0x18 +# (local4): hword @ -0x16 +# (local5): hword @ -0x14 +# (local6): hword @ -0x12 +# (local7): word @ -0x10 +# (local8): word @ -0xc +# (local9): word @ -0x8 +# (local10): word @ -0x4 + .balign 4 + .global get_sar_dout + .type get_sar_dout, @function +get_sar_dout: + addi sp, sp, -32 /* (FP)-0x20 */ # 368: 12c1e0 + s32i a2, sp, 16 /* arg0 -> [(local7)] */ # 36b: 2941 + s32i a0, sp, 28 /* a0 -> [(local10)] */ # 36d: 0971 + mov a2, sp /* (FP)-0x20 */ # 36f: 2d01 + call0 read_sar_dout # 371: 050000 + movi a3, 3 /* 0x00000003 */ # 374: 0c33 + l16ui a5, sp, 6 /* [(local2)] */ # 376: 521103 + l16ui a11, sp, 4 /* [(local1)] */ # 379: b21102 + l16ui a8, sp, 2 /* [(local0)] */ # 37c: 821101 + l16ui a10, sp, 14 /* [(local6)] */ # 37f: a21107 + l16ui a7, sp, 12 /* [(local5)] */ # 382: 721106 + l16ui a9, sp, 10 /* [(local4)] */ # 385: 921105 + l16ui a6, sp, 8 /* [(local3)] */ # 388: 621104 + movi a0, g_phyFuns # 38b: 01f5ff + movi a4, 0 /* 0x00000000 */ # 38e: 0c04 + mov a2, a4 /* 0x00000000 */ # 390: 2d04 + l32i a0, a0, 0 /* [g_phyFuns] */ # 392: 0800 + add a6, a6, a9 # 394: 9a66 + add a7, a7, a10 # 396: aa77 + add a8, a8, a11 # 398: ba88 + l32i a0, a0, 56 /* [[g_phyFuns]+0x38] */ # 39a: 08e0 + add a5, a5, a8 # 39c: 8a55 + addx2 a7, a7, a7 # 39e: 707790 + addx2 a6, a6, a6 # 3a1: 606690 + sub a6, a6, a7 # 3a4: 7066c0 + subx2 a5, a5, a7 # 3a7: 7055d0 + slli a5, a5, 16 # 3aa: 005511 + slli a6, a6, 16 # 3ad: 006611 + srai a6, a6, 16 # 3b0: 606031 + srai a5, a5, 16 # 3b3: 505031 + movgez a2, a5, a5 # 3b6: 5025b3 + movgez a4, a6, a6 # 3b9: 6046b3 + slli a4, a4, 16 # 3bc: 004411 + slli a2, a2, 16 # 3bf: 002211 + srai a2, a2, 16 # 3c2: 202031 + srai a4, a4, 16 # 3c5: 404031 + s32i a4, sp, 20 /* a4 -> [(local8)] */ # 3c8: 4951 + callx0 a0 /* [[g_phyFuns]+0x38] */ # 3ca: c00000 + movi a0, g_phyFuns # 3cd: 01e5ff + movi a3, 3 /* 0x00000003 */ # 3d0: 0c33 + l32i a0, a0, 0 /* [g_phyFuns] */ # 3d2: 0800 + s32i a2, sp, 24 /* a2 -> [(local9)] */ # 3d4: 2961 + l32i a0, a0, 56 /* [[g_phyFuns]+0x38] */ # 3d6: 08e0 + l32i a2, sp, 20 /* [(local8)] */ # 3d8: 2851 + callx0 a0 /* [[g_phyFuns]+0x38] */ # 3da: c00000 + l32i a3, sp, 24 /* [(local9)] */ # 3dd: 3861 + l32i a0, sp, 28 /* [(local10)] */ # 3df: 0871 + sub a3, a3, a2 # 3e1: 2033c0 + l32i a2, sp, 16 /* [(local7)] */ # 3e4: 2841 + addi sp, sp, 32 /* (top of frame) */ # 3e6: 12c120 + add a2, a2, a3 # 3e9: 3a22 + slli a2, a2, 16 # 3eb: 002211 + srai a2, a2, 16 # 3ee: 202031 + ret # 3f1: 0df0 + + .literal_position # 3f4: 00000000 + # 3f8: 00000000 + # 3fc: f00b0000 + # 400: 00000000 + # 404: 00000000 + # 408: 00000000 + # 40c: 00000000 + # 410: 00000000 + # 414: 00000000 + +# Function @ .irom0.text+0x418 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word[3] @ -0x1c +# (local2): byte[2] @ -0xe +# (local3): word @ -0xc +# (local4): word[2] @ -0x8 + .balign 4 + .global cal_rf_ana_gain + .type cal_rf_ana_gain, @function +cal_rf_ana_gain: + movi a3, 1 /* 0x00000001 */ # 418: 0c13 + movi a4, 95 /* 0x0000005f */ # 41a: 5cf4 + movi a2, 0x00000bf0 # 41c: 21f8ff + addi sp, sp, -32 /* (local0) */ # 41f: 12c1e0 + s32i a12, sp, 24 /* a12 -> [(local4)] */ # 422: c961 + s32i a0, sp, 20 /* a0 -> [(local3)] */ # 424: 0951 + movi a12, tx_rf_ana_gain # 426: c1f4ff + movi a0, g_phyFuns # 429: 01f2ff + s16i a2, a12, 0 /* 0x0bf0 -> [tx_rf_ana_gain] */ # 42c: 225c00 + l32i a0, a0, 0 /* [g_phyFuns] */ # 42f: 0800 + s16i a2, a12, 0 /* 0x0bf0 -> [tx_rf_ana_gain] */ # 431: 225c00 + l32i a0, a0, 172 /* [[g_phyFuns]+0xac] */ # 434: 02202b + movi a2, 7 /* 0x00000007 */ # 437: 0c72 + callx0 a0 /* [[g_phyFuns]+0xac] */ # 439: c00000 + movi a2, 0 /* 0x00000000 */ # 43c: 0c02 + movi a0, g_phyFuns # 43e: 01f0ff + movi a3, 1 /* 0x00000001 */ # 441: 0c13 + l32i a0, a0, 0 /* [g_phyFuns] */ # 443: 0800 + l16ui a4, a12, 0 /* [tx_rf_ana_gain] */ # 445: 421c00 + l32i a0, a0, 172 /* [[g_phyFuns]+0xac] */ # 448: 02202b + extui a4, a4, 0, 5 # 44b: 404044 + callx0 a0 /* [[g_phyFuns]+0xac] */ # 44e: c00000 + l16ui a2, a12, 0 /* [tx_rf_ana_gain] */ # 451: 221c00 + addi a3, sp, 16 /* (FP)-0x10 */ # 454: 32c110 + movi a4, 1 /* 0x00000001 */ # 457: 0c14 + call0 set_txdc_pbus # 459: 050000 + movi a2, 64 /* 0x00000040 */ # 45c: 4c02 + movi a3, chip6_sleep_params+0x6d # 45e: 31e9ff + movi a4, 1 /* 0x00000001 */ # 461: 0c14 + movi a5, 31 /* 0x0000001f */ # 463: 1cf5 + addi a7, sp, 18 /* (local2) */ # 465: 72c112 + movi a8, pwctrl_debug # 468: 81e8ff + l16ui a6, a12, 0 /* [tx_rf_ana_gain] */ # 46b: 621c00 + movi a9, 312 /* 0x00000138 */ # 46e: 92a138 + extui a6, a6, 0, 5 # 471: 606044 + s32i a9, sp, 0 /* 0x00000138 -> [(local0)] */ # 474: 9901 + l8ui a8, a8, 0 /* [pwctrl_debug] */ # 476: 820800 + s32i a8, sp, 4 /* [pwctrl_debug] -> [(local1)] */ # 479: 8911 + call0 ram_rfcal_pwrctrl # 47b: 050000 + l8ui a0, sp, 18 /* [(local2)] */ # 47e: 020112 + movi a7, 36 /* 0x00000024 */ # 481: 2c47 + slli a0, a0, 24 # 483: 800001 + srai a0, a0, 24 # 486: 000831 + blt a7, a0, .Lbr030 # 489: 072702 + bgei a0, 12, .Lbr031 # 48c: e6a039 +.Lbr030: movi a2, 24 /* 0x00000018 */ # 48f: 1c82 + mov a3, a12 /* tx_rf_ana_gain */ # 491: 3d0c + sub a2, a2, a0 # 493: 0022c0 + s8i a2, sp, 18 /* a2 -> [(local2)] */ # 496: 224112 + addi a2, sp, 18 /* (local2) */ # 499: 22c112 + call0 correct_rf_ana_gain # 49c: 050000 + movi a2, 7 /* 0x00000007 */ # 49f: 0c72 + movi a0, g_phyFuns # 4a1: 01daff + movi a3, 1 /* 0x00000001 */ # 4a4: 0c13 + l32i a0, a0, 0 /* [g_phyFuns] */ # 4a6: 0800 + l16ui a4, a12, 0 /* [tx_rf_ana_gain] */ # 4a8: 421c00 + l32i a0, a0, 172 /* [[g_phyFuns]+0xac] */ # 4ab: 02202b + srli a4, a4, 5 # 4ae: 404541 + callx0 a0 /* [[g_phyFuns]+0xac] */ # 4b1: c00000 + movi a2, 0 /* 0x00000000 */ # 4b4: 0c02 + movi a0, g_phyFuns # 4b6: 01d6ff + movi a3, 1 /* 0x00000001 */ # 4b9: 0c13 + l32i a0, a0, 0 /* [g_phyFuns] */ # 4bb: 0800 + l16ui a4, a12, 0 /* [tx_rf_ana_gain] */ # 4bd: 421c00 + l32i a0, a0, 172 /* [[g_phyFuns]+0xac] */ # 4c0: 02202b + extui a4, a4, 0, 5 # 4c3: 404044 + callx0 a0 /* [[g_phyFuns]+0xac] */ # 4c6: c00000 +.Lbr031: l16ui a2, a12, 0 /* [tx_rf_ana_gain] */ # 4c9: 221c00 + addi a3, sp, 16 /* (FP)-0x10 */ # 4cc: 32c110 + movi a4, 1 /* 0x00000001 */ # 4cf: 0c14 + call0 set_txdc_pbus # 4d1: 050000 + l16ui a2, a12, 0 /* [tx_rf_ana_gain] */ # 4d4: 221c00 + addi a3, sp, 16 /* (FP)-0x10 */ # 4d7: 32c110 + call0 set_rfanagain_dc_reg # 4da: 050000 + l32i a0, sp, 20 /* [(local3)] */ # 4dd: 0851 + l16ui a2, a12, 0 /* [tx_rf_ana_gain] */ # 4df: 221c00 + movi a3, chip6_sleep_params # 4e2: 31ccff + l32i a12, sp, 24 /* [(local4)] */ # 4e5: c861 + s16i a2, a3, 118 /* [tx_rf_ana_gain] -> [chip6_sleep_params+0x76] */ # 4e7: 22533b + addi sp, sp, 32 /* (top of frame) */ # 4ea: 12c120 + ret /* [tx_rf_ana_gain] */ # 4ed: 0df0 + + .literal_position # 4f0: 00000000 + +# Function @ .irom0.text+0x4f4 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word[2] @ -0x18 +# (local3): word @ -0x10 +# (local4): word @ -0xc +# (local5): word @ -0x8 +# (local6): word @ -0x4 + .balign 4 + .global meas_tone_pwr_db + .type meas_tone_pwr_db, @function +meas_tone_pwr_db: + movi a5, 0 /* 0x00000000 */ # 4f4: 0c05 + movi a6, 0 /* 0x00000000 */ # 4f6: 0c06 + movi a7, 0 /* 0x00000000 */ # 4f8: 0c07 + extui a4, a2, 0, 8 # 4fa: 204074 + movi a3, 0 /* 0x00000000 */ # 4fd: 0c03 + addi sp, sp, -32 /* (local0) */ # 4ff: 12c1e0 + s32i a12, sp, 20 /* a12 -> [(local4)] */ # 502: c951 + s32i a13, sp, 24 /* a13 -> [(local5)] */ # 504: d961 + s32i a0, sp, 16 /* a0 -> [(local3)] */ # 506: 0941 + s32i a14, sp, 28 /* a14 -> [(local6)] */ # 508: e971 + s32i a3, sp, 8 /* 0x00000000 -> [(local2)] */ # 50a: 3921 + s32i a3, sp, 4 /* 0x00000000 -> [(local1)] */ # 50c: 3911 + movi a14, g_phyFuns # 50e: e1f8ff + s32i a3, sp, 0 /* 0x00000000 -> [(local0)] */ # 511: 3901 + l32i a0, a14, 0 /* [g_phyFuns] */ # 513: 080e + movi a2, 1 /* 0x00000001 */ # 515: 0c12 + l32i a0, a0, 104 /* [[g_phyFuns]+0x68] */ # 517: 02201a + movi a3, 64 /* 0x00000040 */ # 51a: 4c03 + callx0 a0 /* [[g_phyFuns]+0x68] */ # 51c: c00000 + movi a13, 0 /* 0x00000000 */ # 51f: 0c0d + movi a12, 0 /* 0x00000000 */ # 521: 0c0c +.Lbr032: l32i a0, a14, 0 /* [g_phyFuns] */ # 523: 080e + l32i a0, a0, 44 /* [[g_phyFuns]+0x2c] */ # 525: 08b0 + movi a2, 312 /* 0x00000138 */ # 527: 22a138 + callx0 a0 /* [[g_phyFuns]+0x2c] */ # 52a: c00000 + addi a13, a13, 1 # 52d: 1bdd + add a12, a2, a12 # 52f: cac2 + slli a12, a12, 16 # 531: 00cc11 + srai a12, a12, 16 # 534: c0c031 + bnei a13, 4, .Lbr032 # 537: 664de8 + l32i a0, a14, 0 /* [g_phyFuns] */ # 53a: 080e + l32i a0, a0, 108 /* [[g_phyFuns]+0x6c] */ # 53c: 02201b + movi a2, 1 /* 0x00000001 */ # 53f: 0c12 + callx0 a0 /* [[g_phyFuns]+0x6c] */ # 541: c00000 + l32i a0, sp, 16 /* [(local3)] */ # 544: 0841 + l32i a13, sp, 24 /* [(local5)] */ # 546: d861 + addi a3, a12, 4 # 548: 4b3c + addi a2, a12, 11 # 54a: bb2c + l32i a14, sp, 28 /* [(local6)] */ # 54c: e871 + l32i a12, sp, 20 /* [(local4)] */ # 54e: c851 + movgez a2, a3, a3 # 550: 3023b3 + srai a2, a2, 3 # 553: 202321 + addi sp, sp, 32 /* (top of frame) */ # 556: 12c120 + slli a2, a2, 16 # 559: 002211 + srai a2, a2, 16 # 55c: 202031 + ret # 55f: 0df0 + + .literal_position # 564: 00000000 + # 568: 00000000 + +# Function @ .irom0.text+0x56c +# Local variables/stack: +# (local0): word @ -0x40 +# (local1): word[3] @ -0x3c +# (local2): byte[4] @ -0x30 +# (local3): word @ -0x2c +# (local4): word @ -0x28 +# (local5): word @ -0x24 +# (local6): word @ -0x20 +# (local7): word @ -0x1c +# (local8): word @ -0x18 +# (local9): word @ -0x14 +# (local10): word @ -0x10 +# (local11): word @ -0xc +# (local12): word @ -0x8 +# (local13): word @ -0x4 + .balign 4 + .global tx_pwr_backoff + .type tx_pwr_backoff, @function +tx_pwr_backoff: + movi a4, 1 /* 0x00000001 */ # 56c: 0c14 + movi a5, 31 /* 0x0000001f */ # 56e: 1cf5 + movi a8, 312 /* 0x00000138 */ # 570: 82a138 + movi a6, tx_rf_ana_gain # 573: 61fdff + addi sp, sp, -64 /* (local0) */ # 576: 12c1c0 + s32i a12, sp, 24 /* a12 -> [(local4)] */ # 579: c961 + s32i a13, sp, 28 /* a13 -> [(local5)] */ # 57b: d971 + s32i a14, sp, 32 /* a14 -> [(local6)] */ # 57d: e981 + s32i a15, sp, 36 /* a15 -> [(local7)] */ # 57f: f991 + addi a7, sp, 16 /* (local2) */ # 581: 72c110 + s32i a2, sp, 48 /* arg0 -> [(local10)] */ # 584: 29c1 + s32i a0, sp, 20 /* a0 -> [(local3)] */ # 586: 0951 + movi a2, 64 /* 0x00000040 */ # 588: 4c02 + l32i a3, sp, 48 /* [(local10)] */ # 58a: 38c1 + movi a0, pwctrl_debug # 58c: 01f6ff + l16ui a6, a6, 0 /* [tx_rf_ana_gain] */ # 58f: 621600 + s32i a8, sp, 0 /* 0x00000138 -> [(local0)] */ # 592: 8901 + extui a6, a6, 0, 5 # 594: 606044 + l8ui a0, a0, 0 /* [pwctrl_debug] */ # 597: 020000 + s32i a0, sp, 4 /* [pwctrl_debug] -> [(local1)] */ # 59a: 0911 + call0 ram_rfcal_pwrctrl # 59c: 050000 + movi a14, 0 /* 0x00000000 */ # 59f: 0c0e + movi a0, 0 /* 0x00000000 */ # 5a1: 0c00 + movi a15, 111 /* 0x0000006f */ # 5a3: f2a06f + l8ui a7, sp, 16 /* [(local2)] */ # 5a6: 720110 + l32i a6, sp, 48 /* [(local10)] */ # 5a9: 68c1 + movi a10, 0 /* 0x00000000 */ # 5ab: 0c0a + s32i a10, sp, 52 /* 0x00000000 -> [(local11)] */ # 5ad: a9d1 + l8ui a8, a6, 5 /* [[(local10)]+0x5] */ # 5af: 820605 + slli a7, a7, 24 # 5b2: 807701 + l8ui a6, a6, 0 /* [[(local10)]] */ # 5b5: 620600 + srai a7, a7, 24 # 5b8: 707831 + addi a7, a7, 31 # 5bb: 72c71f + s8i a7, sp, 16 /* a7 -> [(local2)] */ # 5be: 724110 + sub a6, a6, a8 # 5c1: 8066c0 + slli a6, a6, 16 # 5c4: 006611 + srai a6, a6, 16 # 5c7: 606031 + slli a7, a6, 1 # 5ca: f07611 + addi a8, a7, -7 # 5cd: 82c7f9 + s32i a8, sp, 44 /* a8 -> [(local9)] */ # 5d0: 89b1 + addi a7, a7, -8 # 5d2: 72c7f8 + slli a7, a7, 16 # 5d5: 007711 + srai a7, a7, 16 # 5d8: 707031 + s32i a7, sp, 40 /* a7 -> [(local8)] */ # 5db: 79a1 +.Lbr033: l8ui a3, sp, 16 /* [(local2)] */ # 5dd: 320110 + mov a2, a15 /* 0x0000006f */ # 5e0: 2d0f + slli a3, a3, 24 # 5e2: 803301 + srai a3, a3, 24 # 5e5: 303831 + add a0, a3, a0 # 5e8: 0a03 + s8i a0, sp, 16 /* a0 -> [(local2)] */ # 5ea: 024110 + add a12, a6, a0 # 5ed: 0ac6 + slli a0, a0, 24 # 5ef: 800001 + srai a0, a0, 24 # 5f2: 000831 + blt a15, a0, .Lbr034 # 5f5: 072f01 + mov a2, a0 # 5f8: 2d00 +.Lbr034: s8i a2, sp, 16 /* a2 -> [(local2)] */ # 5fa: 224110 + s32i a6, sp, 60 /* a6 -> [(local13)] */ # 5fd: 69f1 + call0 meas_tone_pwr_db # 5ff: 050000 + slli a4, a12, 24 # 602: 804c01 + mov a13, a2 # 605: dd02 + movi a12, 1 /* 0x00000001 */ # 607: 0c1c + srai a4, a4, 24 # 609: 404831 + s32i a4, sp, 56 /* a4 -> [(local12)] */ # 60c: 49e1 + blt a15, a4, .Lbr035 # 60e: 472f01 + movi a12, 0 /* 0x00000000 */ # 611: 0c0c +.Lbr035: l32i a2, sp, 56 /* [(local12)] */ # 613: 28e1 + movnez a2, a15, a12 # 615: c02f93 + call0 meas_tone_pwr_db # 618: 050000 + l32i a5, sp, 44 /* [(local9)] */ # 61b: 58b1 + sub a7, a13, a2 # 61d: 207dc0 + slli a0, a7, 16 # 620: 000711 + srai a0, a0, 16 # 623: 000031 + blt a0, a5, .Lbr036 # 626: 572005 + movi a3, 168 /* 0x000000a8 */ # 629: 32a0a8 + bge a3, a13, .Lbr039 # 62c: d7a351 +.Lbr036: beqz a14, .Lbr037 # 62f: 8cee + l32i a4, sp, 52 /* [(local11)] */ # 631: 48d1 + l32i a5, sp, 40 /* [(local8)] */ # 633: 58a1 + blt a4, a0, .Lbr037 # 635: 072408 + blt a0, a5, .Lbr037 # 638: 572005 + movi a6, 168 /* 0x000000a8 */ # 63b: 62a0a8 + bge a6, a13, .Lbr039 # 63e: d7a63f +.Lbr037: movi a8, 80 /* 0x00000050 */ # 641: 5c08 + blt a2, a8, .Lbr039 # 643: 87223a + l32i a9, sp, 56 /* [(local12)] */ # 646: 98e1 + l32i a6, sp, 60 /* [(local13)] */ # 648: 68f1 + movnez a9, a15, a12 # 64a: c09f93 + beq a9, a15, .Lbr039 # 64d: f71930 + addi a14, a14, 1 # 650: 1bee + slli a2, a7, 16 # 652: 002711 + movi a10, 2 /* 0x00000002 */ # 655: 0c2a + addi a9, a0, 1 # 657: 1b90 + addi a8, a0, 2 # 659: 2b80 + movgez a8, a9, a9 # 65b: 9089b3 + mov a0, a10 /* 0x00000002 */ # 65e: 0d0a + srai a8, a8, 1 # 660: 808121 + sub a8, a6, a8 # 663: 8086c0 + addi a8, a8, -1 # 666: 0b88 + slli a8, a8, 24 # 668: 808801 + srai a8, a8, 24 # 66b: 808831 + blti a8, 2, .Lbr038 # 66e: a62801 + mov a0, a8 # 671: 0d08 +.Lbr038: extui a14, a14, 0, 8 # 673: e0e074 + srai a2, a2, 16 # 676: 202031 + s32i a2, sp, 52 /* a2 -> [(local11)] */ # 679: 29d1 + addi a10, a14, -10 # 67b: a2cef6 + bnez a10, .Lbr033 # 67e: 56baf5 +.Lbr039: l32i a0, sp, 48 /* [(local10)] */ # 681: 08c1 + l32i a12, sp, 24 /* [(local4)] */ # 683: c861 + l8ui a0, a0, 0 /* [[(local10)]] */ # 685: 020000 + l32i a15, sp, 36 /* [(local7)] */ # 688: f891 + slli a3, a0, 1 # 68a: f03011 + bge a13, a3, .Lbr041 # 68d: 37ad1f + beqz a14, .Lbr041 # 690: 9cce + subx2 a2, a0, a13 # 692: d020d0 + addi a3, a2, 1 # 695: 1b32 + addi a2, a2, 2 # 697: 2b22 + movgez a2, a3, a3 # 699: 3023b3 + srai a2, a2, 1 # 69c: 202121 + slli a2, a2, 16 # 69f: 002211 + srai a2, a2, 16 # 6a2: 202031 +.Lbr040: l32i a13, sp, 28 /* [(local5)] */ # 6a5: d871 + l32i a14, sp, 32 /* [(local6)] */ # 6a7: e881 + l32i a0, sp, 20 /* [(local3)] */ # 6a9: 0851 + addi sp, sp, 64 /* (top of frame) */ # 6ab: 12c140 + ret # 6ae: 0df0 +.Lbr041: movi a2, 0 /* 0x00000000 */ # 6b0: 0c02 + j .Lbr040 # 6b2: c6fbff + + .literal_position # 6b8: 00000000 + # 6bc: 00000000 + +# Function @ .irom0.text+0x6c0 + .balign 4 + .global get_fcc_1m2m_pwr_offset + .type get_fcc_1m2m_pwr_offset, @function +get_fcc_1m2m_pwr_offset: + beqz a2, .Lbr042 # 6c0: 8ca2 + beqi a3, 2, .Lbr044 # 6c2: 26230c + beqi a3, 3, .Lbr044 # 6c5: 263309 + beqi a3, 6, .Lbr044 # 6c8: 266306 + beqi a3, 7, .Lbr044 # 6cb: 267303 +.Lbr042: movi a2, 0 /* 0x00000000 */ # 6ce: 0c02 +.Lbr043: ret # 6d0: 0df0 +.Lbr044: movi a2, chip6_phy_init_ctrl # 6d2: 21f9ff + movi a4, chip6_sleep_params # 6d5: 41f9ff + l8ui a3, a2, 78 /* [chip6_phy_init_ctrl+0x4e] */ # 6d8: 32024e + l8ui a4, a4, 78 /* [chip6_sleep_params+0x4e] */ # 6db: 42044e + l8ui a2, a2, 77 /* [chip6_phy_init_ctrl+0x4d] */ # 6de: 22024d + slli a4, a4, 24 # 6e1: 804401 + slli a3, a3, 24 # 6e4: 803301 + srai a3, a3, 24 # 6e7: 303831 + srai a4, a4, 24 # 6ea: 404831 + slli a2, a2, 24 # 6ed: 802201 + srai a2, a2, 24 # 6f0: 202831 + bgei a4, 7, .Lbr043 # 6f3: e674d9 + mov a2, a3 # 6f6: 2d03 + ret # 6f8: 0df0 + + .literal_position # 6fc: 00020060 + +# Function @ .irom0.text+0x700 +# Local variables/stack: +# (local0): word @ -0x30 +# (local1): word @ -0x2c +# (local2): word @ -0x28 +# (local3): word @ -0x24 +# (local4): word @ -0x20 +# (local5): word @ -0x1c +# (local6): word @ -0x18 +# (local7): word @ -0x14 +# (local8): word[4] @ -0x10 + .balign 4 + .global ram_set_txbb_atten + .type ram_set_txbb_atten, @function +ram_set_txbb_atten: + addi sp, sp, -48 /* (local0) */ # 700: 12c1d0 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 703: 0911 + s32i a3, sp, 24 /* arg1 -> [(local6)] */ # 705: 3961 + s32i a6, sp, 28 /* arg4 -> [(local7)] */ # 707: 6971 + s32i a2, sp, 0 /* arg0 -> [(local0)] */ # 709: 2901 + s32i a4, sp, 32 /* arg2 -> [(local8)] */ # 70b: 4981 + s32i a15, sp, 20 /* a15 -> [(local5)] */ # 70d: f951 + s32i a13, sp, 12 /* a13 -> [(local3)] */ # 70f: d931 + s32i a12, sp, 8 /* a12 -> [(local2)] */ # 711: c921 + s32i a14, sp, 16 /* a14 -> [(local4)] */ # 713: e941 + movi a12, 0 /* 0x00000000 */ # 715: 0c0c + movi a14, 24 /* 0x00000018 */ # 717: 1c8e + movi a13, 0x60000200 # 719: d1f8ff + l32i a15, sp, 32 /* [(local8)] */ # 71c: f881 +.Lbr045: mov a2, a12 # 71e: 2d0c + l32i a3, sp, 0 /* [(local0)] */ # 720: 3801 + call0 get_target_power_offset # 722: 050000 + add a0, a2, a15 # 725: fa02 + l8ui a0, a0, 0 # 727: 020000 + l32i a4, sp, 24 /* [(local6)] */ # 72a: 4861 + slli a0, a0, 24 # 72c: 800001 + srai a0, a0, 24 # 72f: 000831 + bgeui a12, 8, .Lbr046 # 732: f68c04 + add a4, a0, a4 # 735: 4a40 + j .Lbr047 # 737: 060200 +.Lbr046: l32i a5, sp, 28 /* [(local7)] */ # 73a: 5871 + mov a4, a5 /* [(local7)] */ # 73c: 4d05 + bge a5, a0, .Lbr047 # 73e: 07a501 + mov a4, a0 # 741: 4d00 +.Lbr047: movi a0, -256 /* 0xffffff00 */ # 743: 02af00 + addx4 a3, a12, a13 # 746: d03ca0 + neg a8, a4 # 749: 408060 + mov a4, a14 /* 0x00000018 */ # 74c: 4d0e + slli a8, a8, 24 # 74e: 808801 + srai a8, a8, 24 # 751: 808831 + blt a14, a8, .Lbr048 # 754: 872e01 + mov a4, a8 # 757: 4d08 +.Lbr048: extui a5, a4, 0, 8 # 759: 405074 + memw # 75c: c02000 + l32i a2, a3, 0x304 # 75f: 2223c1 + and a2, a2, a0 # 762: 002210 + or a2, a2, a5 # 765: 502220 + memw # 768: c02000 + s32i a2, a3, 0x304 # 76b: 2263c1 + addi a12, a12, 1 # 76e: 1bcc + extui a12, a12, 0, 8 # 770: c0c074 + bne a12, a14, .Lbr045 # 773: e79ca7 + l32i a12, sp, 8 /* [(local2)] */ # 776: c821 + l32i a13, sp, 12 /* [(local3)] */ # 778: d831 + l32i a14, sp, 16 /* [(local4)] */ # 77a: e841 + l32i a15, sp, 20 /* [(local5)] */ # 77c: f851 + l32i a0, sp, 4 /* [(local1)] */ # 77e: 0811 + addi sp, sp, 48 /* (top of frame) */ # 780: 12c130 + ret # 783: 0df0 + + .literal_position # 788: 00002c00 + # 78c: 000000f0 + # 790: 00000000 + # 794: 00020060 + # 798: fffffff0 + # 79c: 00020060 + # 7a0: 00000000 + +# Function @ .irom0.text+0x7a4 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word @ -0x8 +# (local3): word @ -0x4 + .balign 4 + .global txiq_get_mis_pwr + .type txiq_get_mis_pwr, @function +txiq_get_mis_pwr: + movi a9, 0xf0000000 # 7a4: 91faff + slli a8, a2, 26 # 7a7: 608201 + addi sp, sp, -16 /* (local0) */ # 7aa: 12c1f0 + movi a7, 256 /* 0x00000100 */ # 7ad: 72a100 + sub a7, a7, a3 # 7b0: 3077c0 + s32i a6, sp, 4 /* arg4 -> [(local1)] */ # 7b3: 6911 + s32i a5, sp, 0 /* arg3 -> [(local0)] */ # 7b5: 5901 + s32i a12, sp, 12 /* a12 -> [(local3)] */ # 7b7: c931 + s32i a0, sp, 8 /* a0 -> [(local2)] */ # 7b9: 0921 + mov a12, a2 /* arg0 */ # 7bb: cd02 + movi a0, g_phyFuns # 7bd: 01f4ff + movi a5, 0x60000200 # 7c0: 51f5ff + movi a6, 0x002c0000 # 7c3: 61f1ff + extui a7, a7, 0, 8 # 7c6: 707074 + slli a7, a7, 10 # 7c9: 607711 + or a6, a4, a6 # 7cc: 606420 + memw # 7cf: c02000 + l32i a2, a5, 0x3b8 /* [0x600005b8] */ # 7d2: 2225ee + and a2, a2, a9 # 7d5: 902210 + or a2, a2, a8 # 7d8: 802220 + or a2, a2, a7 # 7db: 702220 + or a2, a2, a6 # 7de: 602220 + memw # 7e1: c02000 + movi a3, 10 /* 0x0000000a */ # 7e4: 0ca3 + l32i a0, a0, 0 /* [g_phyFuns] */ # 7e6: 0800 + s32i a2, a5, 0x3b8 /* a2 -> [0x600005b8] */ # 7e8: 2265ee + l32i a0, a0, 112 /* [[g_phyFuns]+0x70] */ # 7eb: 02201c + movi a2, 4 /* 0x00000004 */ # 7ee: 0c42 + callx0 a0 /* [[g_phyFuns]+0x70] */ # 7f0: c00000 + slli a5, a12, 3 # 7f3: d05c11 + extui a7, a12, 0, 1 # 7f6: c07004 + movi a6, 1 /* 0x00000001 */ # 7f9: 0c16 + l32i a8, sp, 0 /* [(local0)] */ # 7fb: 8801 + movi a4, 0 /* 0x00000000 */ # 7fd: 0c04 + s16i a2, a8, 0 /* a2 -> [[(local0)]] */ # 7ff: 225800 + moveqz a4, a6, a7 # 802: 704683 + or a4, a4, a5 # 805: 504420 + slli a4, a4, 24 # 808: 804401 + movi a5, 0xf0ffffff # 80b: 51e3ff + memw # 80e: c02000 + movi a3, 0x60000200 # 811: 31e2ff + l32i a2, a3, 0x3b8 /* [0x600005b8] */ # 814: 2223ee + and a2, a2, a5 # 817: 502210 + or a2, a2, a4 # 81a: 402220 + memw # 81d: c02000 + movi a0, g_phyFuns # 820: 01e0ff + l32i a0, a0, 0 /* [g_phyFuns] */ # 823: 0800 + s32i a2, a3, 0x3b8 /* a2 -> [0x600005b8] */ # 825: 2263ee + movi a2, 4 /* 0x00000004 */ # 828: 0c42 + l32i a0, a0, 112 /* [[g_phyFuns]+0x70] */ # 82a: 02201c + movi a3, 10 /* 0x0000000a */ # 82d: 0ca3 + callx0 a0 /* [[g_phyFuns]+0x70] */ # 82f: c00000 + l32i a0, sp, 8 /* [(local2)] */ # 832: 0821 + l32i a9, sp, 4 /* [(local1)] */ # 834: 9811 + l32i a12, sp, 12 /* [(local3)] */ # 836: c831 + s16i a2, a9, 0 /* a2 -> [[(local1)]] */ # 838: 225900 + addi sp, sp, 16 /* (top of frame) */ # 83b: 12c110 + ret # 83e: 0df0 + + .literal_position # 840: 00000000 + # 844: 00000000 + # 848: 00000000 + # 84c: 00000000 + # 850: 00000000 + # 854: 00200000 + # 858: 00000000 + # 85c: 00000000 + # 860: 00000000 + # 864: 00000000 + # 868: 00000000 + # 86c: 00000000 + +# Function @ .irom0.text+0x870 +# Local variables/stack: +# (local0): hword @ -0x50 +# (local1): hword @ -0x4e +# (local2): word @ -0x4c +# (local3): word @ -0x48 +# (local4): word @ -0x44 +# (local5): word @ -0x40 +# (local6): word @ -0x3c +# (local7): word @ -0x38 +# (local8): word @ -0x34 +# (local9): word @ -0x30 +# (local10): word @ -0x2c +# (local11): word @ -0x28 +# (local12): word @ -0x24 +# (local13): word @ -0x20 +# (local14): word @ -0x1c +# (local15): word @ -0x18 +# (local16): word @ -0x14 +# (local17): word[4] @ -0x10 + .balign 4 + .global txiq_cover + .type txiq_cover, @function +txiq_cover: mov a9, a3 /* arg1 */ # 870: 9d03 + movi a11, 0 /* 0x00000000 */ # 872: 0c0b + addi sp, sp, -80 /* (local0) */ # 874: 12c1b0 + s32i a6, sp, 36 /* arg4 -> [(local10)] */ # 877: 6991 + s32i a5, sp, 64 /* arg3 -> [(local17)] */ # 879: 526110 + s32i a15, sp, 24 /* a15 -> [(local7)] */ # 87c: f961 + s32i a2, sp, 48 /* arg0 -> [(local13)] */ # 87e: 29c1 + s32i a0, sp, 8 /* a0 -> [(local3)] */ # 880: 0921 + s32i a12, sp, 12 /* a12 -> [(local4)] */ # 882: c931 + s32i a13, sp, 16 /* a13 -> [(local5)] */ # 884: d941 + s32i a14, sp, 20 /* a14 -> [(local6)] */ # 886: e951 + mov a13, a4 /* arg2 */ # 888: dd04 + movi a14, 0 /* 0x00000000 */ # 88a: 0c0e + movi a12, 0 /* 0x00000000 */ # 88c: 0c0c + s32i a11, sp, 56 /* 0x00000000 -> [(local15)] */ # 88e: b9e1 + s32i a9, sp, 4 /* arg1 -> [(local2)] */ # 890: 9911 + movi a0, 0 /* 0x00000000 */ # 892: 0c00 + movi a2, 0 /* 0x00000000 */ # 894: 0c02 + l32i a15, sp, 64 /* [(local17)] */ # 896: f22110 + l32i a3, sp, 48 /* [(local13)] */ # 899: 38c1 + s32i a2, sp, 60 /* 0x00000000 -> [(local16)] */ # 89b: 29f1 + s32i a0, sp, 52 /* 0x00000000 -> [(local14)] */ # 89d: 09d1 + movi a2, 7 /* 0x00000007 */ # 89f: 0c72 + movi a0, 3 /* 0x00000003 */ # 8a1: 0c30 + addi a3, a3, -12 /* [(local13)]-0xc */ # 8a3: 32c3f4 + movnez a0, a2, a7 # 8a6: 700293 + extui a3, a3, 0, 8 # 8a9: 303074 + s32i a3, sp, 44 /* a3 -> [(local12)] */ # 8ac: 39b1 + s32i a0, sp, 40 /* a0 -> [(local11)] */ # 8ae: 09a1 +.Lbr049: bgeui a12, 3, .Lbr050 # 8b0: f63c45 + mov a4, a15 /* [(local17)] */ # 8b3: 4d0f + movi a0, g_phyFuns # 8b5: 01e2ff + movi a3, 128 /* 0x00000080 */ # 8b8: 32a080 + mul16s a2, a14, a14 # 8bb: e02ed1 + add a2, a2, a3 # 8be: 3a22 + l32i a0, a0, 0 /* [g_phyFuns] */ # 8c0: 0800 + l32i a3, sp, 60 /* [(local16)] */ # 8c2: 38f1 + srai a2, a2, 8 # 8c4: 202821 + s32i a2, sp, 32 /* a2 -> [(local9)] */ # 8c7: 2981 + l32i a0, a0, 0x108 /* [[g_phyFuns]+0x108] */ # 8c9: 022042 + add a2, a2, a3 # 8cc: 3a22 + movi a3, 1 /* 0x00000001 */ # 8ce: 0c13 + slli a2, a2, 24 # 8d0: 802201 + srai a2, a2, 24 # 8d3: 202831 + callx0 a0 /* [[g_phyFuns]+0x108] */ # 8d6: c00000 + mov a4, a15 /* [(local17)] */ # 8d9: 4d0f + l32i a3, sp, 32 /* [(local9)] */ # 8db: 3881 + movi a0, g_phyFuns # 8dd: 01d9ff + sub a3, a2, a3 # 8e0: 3032c0 + l32i a0, a0, 0 /* [g_phyFuns] */ # 8e3: 0800 + mov a2, a14 # 8e5: 2d0e + slli a3, a3, 24 # 8e7: 803301 + srai a3, a3, 24 # 8ea: 303831 + s32i a3, sp, 60 /* a3 -> [(local16)] */ # 8ed: 39f1 + l32i a0, a0, 0x108 /* [[g_phyFuns]+0x108] */ # 8ef: 022042 + movi a3, 0 /* 0x00000000 */ # 8f2: 0c03 + callx0 a0 /* [[g_phyFuns]+0x108] */ # 8f4: c00000 + mov a14, a2 # 8f7: ed02 +.Lbr050: movi a2, 1 /* 0x00000001 */ # 8f9: 0c12 + l32i a3, sp, 44 /* [(local12)] */ # 8fb: 38b1 + l32i a4, sp, 4 /* [(local2)] */ # 8fd: 4811 + mov a5, sp /* (local0) */ # 8ff: 5d01 + addi a6, sp, 2 /* (local1) */ # 901: 2b61 + call0 txiq_get_mis_pwr # 903: 050000 + l16si a7, sp, 2 /* [(local1)] */ # 906: 729101 + l16si a5, sp, 0 /* [(local0)] */ # 909: 529100 + mov a0, a7 /* [(local1)] */ # 90c: 0d07 + bge a5, a7, .Lbr051 # 90e: 77a501 + mov a0, a5 /* [(local0)] */ # 911: 0d05 +.Lbr051: movi a4, 1 /* 0x00000001 */ # 913: 0c14 + slli a3, a0, 16 # 915: 003011 + sub a2, a7, a5 # 918: 5027c0 + slli a2, a2, 11 # 91b: 502211 + srai a3, a3, 16 # 91e: 303031 + moveqz a3, a4, a0 # 921: 003483 + call0 __divsi3 # 924: 01d0ffc0 + # 928: 0000 + addi a0, a2, 16 # 92a: 02c210 + srai a0, a0, 5 # 92d: 000521 + s8i a0, a13, 0 /* a0 -> [arg2] */ # 930: 024d00 + beqz a15, .Lbr052 # 933: 8c9f + l32i a2, sp, 60 /* [(local16)] */ # 935: 28f1 + bgez a2, .Lbr052 # 937: d65200 + neg a3, a0 # 93a: 003060 + s8i a3, a13, 0 /* a3 -> [arg2] */ # 93d: 324d00 +.Lbr052: movi a2, 0 /* 0x00000000 */ # 940: 0c02 + l32i a3, sp, 48 /* [(local13)] */ # 942: 38c1 + l32i a4, sp, 4 /* [(local2)] */ # 944: 4811 + mov a5, sp /* (local0) */ # 946: 5d01 + addi a6, sp, 2 /* (local1) */ # 948: 2b61 + call0 txiq_get_mis_pwr # 94a: 050000 + l16si a3, sp, 2 /* [(local1)] */ # 94d: 329101 + l16si a4, sp, 0 /* [(local0)] */ # 950: 429100 + sub a2, a4, a3 # 953: 3024c0 + add a3, a3, a4 # 956: 4a33 + slli a2, a2, 12 # 958: 402211 + movi a4, 1 /* 0x00000001 */ # 95b: 0c14 + slli a3, a3, 16 # 95d: 003311 + srai a3, a3, 16 # 960: 303031 + moveqz a3, a4, a3 # 963: 303483 + call0 __divsi3 # 966: 01c0ffc0 + # 96a: 0000 + addi a5, a2, 16 # 96c: 52c210 + srai a5, a5, 5 # 96f: 505521 + s8i a5, a13, 1 /* a5 -> [arg2+0x1] */ # 972: 524d01 + beqz a15, .Lbr053 # 975: 8c7f + bgez a14, .Lbr053 # 977: d65e00 + neg a5, a5 # 97a: 505060 + s8i a5, a13, 1 /* a5 -> [arg2+0x1] */ # 97d: 524d01 +.Lbr053: l8ui a0, a13, 0 /* [arg2] */ # 980: 020d00 + l32i a2, sp, 60 /* [(local16)] */ # 983: 28f1 + slli a0, a0, 24 # 985: 800001 + srai a0, a0, 24 # 988: 000831 + bgeui a12, 3, .Lbr054 # 98b: f63c16 + sub a14, a14, a5 # 98e: 50eec0 + sub a3, a2, a0 # 991: 0032c0 + slli a3, a3, 24 # 994: 803301 + slli a14, a14, 24 # 997: 80ee01 + srai a14, a14, 24 # 99a: e0e831 + srai a2, a3, 24 # 99d: 302831 + s32i a2, sp, 60 /* a2 -> [(local16)] */ # 9a0: 29f1 + j .Lbr056 # 9a2: 461a00 +.Lbr054: l32i a2, sp, 52 /* [(local14)] */ # 9a5: 28d1 + l32i a4, sp, 56 /* [(local15)] */ # 9a7: 48e1 + add a3, a5, a2 # 9a9: 2a35 + add a6, a0, a4 # 9ab: 4a60 + slli a6, a6, 24 # 9ad: 806601 + slli a3, a3, 24 # 9b0: 803301 + srai a2, a3, 24 # 9b3: 302831 + srai a4, a6, 24 # 9b6: 604831 + s32i a4, sp, 56 /* a4 -> [(local15)] */ # 9b9: 49e1 + s32i a2, sp, 52 /* a2 -> [(local14)] */ # 9bb: 29d1 + bnei a12, 6, .Lbr056 # 9bd: 666c4e + l32i a3, sp, 60 /* [(local16)] */ # 9c0: 38f1 + l32i a2, sp, 56 /* [(local15)] */ # 9c2: 28e1 + movi a0, g_phyFuns # 9c4: 01a1ff + addi a2, a2, 2 /* [(local15)]+0x2 */ # 9c7: 2b22 + l32i a0, a0, 0 /* [g_phyFuns] */ # 9c9: 0800 + srai a2, a2, 2 # 9cb: 202221 + sub a4, a3, a2 # 9ce: 2043c0 + slli a4, a4, 24 # 9d1: 804401 + srai a3, a4, 24 # 9d4: 403831 + s32i a3, sp, 60 /* a3 -> [(local16)] */ # 9d7: 39f1 + l32i a3, sp, 52 /* [(local14)] */ # 9d9: 38d1 + l32i a0, a0, 0 /* [[g_phyFuns]] */ # 9db: 0800 + addi a3, a3, 2 /* [(local14)]+0x2 */ # 9dd: 2b33 + srai a3, a3, 2 # 9df: 303221 + s32i a3, sp, 28 /* a3 -> [(local8)] */ # 9e2: 3971 + sub a14, a14, a3 # 9e4: 30eec0 + slli a14, a14, 24 # 9e7: 80ee01 + srai a14, a14, 24 # 9ea: e0e831 + callx0 a0 /* [[g_phyFuns]] */ # 9ed: c00000 + bgei a2, 5, .Lbr055 # 9f0: e6520e + movi a0, g_phyFuns # 9f3: 0196ff + l32i a0, a0, 0 /* [g_phyFuns] */ # 9f6: 0800 + l32i a0, a0, 0 /* [[g_phyFuns]] */ # 9f8: 0800 + l32i a2, sp, 28 /* [(local8)] */ # 9fa: 2871 + callx0 a0 /* [[g_phyFuns]] */ # 9fc: c00000 + blti a2, 5, .Lbr056 # 9ff: a6520c +.Lbr055: movi a3, check_result # a02: 3193ff + movi a4, 0x00002000 # a05: 4193ff + l32i a2, a3, 0 /* [check_result] */ # a08: 2803 + or a2, a2, a4 # a0a: 402220 + s32i a2, a3, 0 /* a2 -> [check_result] */ # a0d: 2903 +.Lbr056: l32i a5, sp, 36 /* [(local10)] */ # a0f: 5891 + beqz a5, .Lbr057 # a11: 9c95 + movi a2, .Lstr001 # a13: 2191ff + l8ui a4, a13, 1 /* [arg2+0x1] */ # a16: 420d01 + l8ui a3, a13, 0 /* [arg2] */ # a19: 320d00 + slli a4, a4, 24 # a1c: 804401 + slli a3, a3, 24 # a1f: 803301 + srai a3, a3, 24 # a22: 303831 + srai a4, a4, 24 # a25: 404831 + call0 ets_printf # a28: 0191ffc0 + # a2c: 0000 +.Lbr057: l32i a5, sp, 40 /* [(local11)] */ # a2e: 58a1 + addi a12, a12, 1 # a30: 1bcc + extui a12, a12, 0, 8 # a32: c0c074 + sub a5, a5, a12 # a35: c055c0 + bnez a5, .Lbr049 # a38: 5645e7 + movi a3, 1 /* 0x00000001 */ # a3b: 0c13 + mov a4, a15 /* [(local17)] */ # a3d: 4d0f + movi a0, g_phyFuns # a3f: 0187ff + l32i a2, sp, 60 /* [(local16)] */ # a42: 28f1 + l32i a0, a0, 0 /* [g_phyFuns] */ # a44: 0800 + slli a2, a2, 24 # a46: 802201 + l32i a0, a0, 0x108 /* [[g_phyFuns]+0x108] */ # a49: 022042 + srai a2, a2, 24 # a4c: 202831 + callx0 a0 /* [[g_phyFuns]+0x108] */ # a4f: c00000 + mov a4, a15 /* [(local17)] */ # a52: 4d0f + movi a0, g_phyFuns # a54: 0183ff + movi a3, 0 /* 0x00000000 */ # a57: 0c03 + l32i a0, a0, 0 /* [g_phyFuns] */ # a59: 0800 + slli a2, a14, 24 # a5b: 802e01 + l32i a0, a0, 0x108 /* [[g_phyFuns]+0x108] */ # a5e: 022042 + srai a2, a2, 24 # a61: 202831 + callx0 a0 /* [[g_phyFuns]+0x108] */ # a64: c00000 + l32i a0, sp, 8 /* [(local3)] */ # a67: 0821 + l32i a12, sp, 12 /* [(local4)] */ # a69: c831 + l32i a15, sp, 24 /* [(local7)] */ # a6b: f861 + s8i a14, a13, 1 /* a14 -> [arg2+0x1] */ # a6d: e24d01 + l32i a2, sp, 60 /* [(local16)] */ # a70: 28f1 + s8i a2, a13, 0 /* [(local16)] -> [arg2] */ # a72: 224d00 + l32i a14, sp, 20 /* [(local6)] */ # a75: e851 + l32i a13, sp, 16 /* [(local5)] */ # a77: d841 + addi sp, sp, 80 /* (top of frame) */ # a79: 12c150 + ret /* [(local16)] */ # a7c: 0df0 + + .literal_position # a80: 00000000 + # a84: 0c000000 + # a88: 00000300 + # a8c: ffff00e0 + # a90: 009a0060 + # a94: 00960060 + # a98: 00000200 + # a9c: 00000000 + # aa0: 00000000 + +# Function @ .irom0.text+0xaa4 +# Local variables/stack: +# (local0): byte @ -0x3e +# (local1): byte @ -0x3d +# (local2): word @ -0x3c +# (local3): word @ -0x38 +# (local4): word @ -0x34 +# (local5): word @ -0x30 +# (local6): word @ -0x2c +# (local7): word @ -0x28 +# (local8): word @ -0x24 +# (local9): word @ -0x20 +# (local10): word @ -0x1c +# (local11): word @ -0x18 +# (local12): word @ -0x14 +# (local13): word @ -0x10 +# (local14): word[3] @ -0xc + .balign 4 + .global ram_rfcal_txiq + .type ram_rfcal_txiq, @function +ram_rfcal_txiq: + mov a9, a3 /* arg1 */ # aa4: 9d03 + addi sp, sp, -64 /* (FP)-0x40 */ # aa6: 12c1c0 + s32i a12, sp, 36 /* a12 -> [(local10)] */ # aa9: c991 + s32i a15, sp, 48 /* a15 -> [(local13)] */ # aab: f9c1 + s32i a5, sp, 52 /* arg3 -> [(local14)] */ # aad: 59d1 + s32i a6, sp, 12 /* arg4 -> [(local4)] */ # aaf: 6931 + s32i a4, sp, 8 /* arg2 -> [(local3)] */ # ab1: 4921 + s32i a0, sp, 32 /* a0 -> [(local9)] */ # ab3: 0981 + s32i a13, sp, 40 /* a13 -> [(local11)] */ # ab5: d9a1 + s32i a14, sp, 44 /* a14 -> [(local12)] */ # ab7: e9b1 + mov a13, a2 /* arg0 */ # ab9: dd02 + mov a14, a7 /* arg5 */ # abb: ed07 + l32i a0, a2, 0 /* [arg0] */ # abd: 0802 + s32i a9, sp, 4 /* arg1 -> [(local2)] */ # abf: 9911 + extui a0, a0, 17, 1 # ac1: 000105 + bnez a0, .Lbr064 # ac4: 56d018 + l32i a15, sp, 52 /* [(local14)] */ # ac7: f8d1 + movi a2, 119 /* 0x00000077 */ # ac9: 22a077 + movi a3, 0 /* 0x00000000 */ # acc: 0c03 + movi a12, g_phyFuns # ace: c1ecff + movi a4, 16 /* 0x00000010 */ # ad1: 1c04 + l32i a0, a12, 0 /* [g_phyFuns] */ # ad3: 080c + movi a5, 0 /* 0x00000000 */ # ad5: 0c05 + l32i a0, a0, 148 /* [[g_phyFuns]+0x94] */ # ad7: 022025 + movi a6, 0 /* 0x00000000 */ # ada: 0c06 + callx0 a0 /* [[g_phyFuns]+0x94] */ # adc: c00000 + movi a3, 0 /* 0x00000000 */ # adf: 0c03 + movi a4, 15 /* 0x0000000f */ # ae1: 0cf4 + movi a5, 6 /* 0x00000006 */ # ae3: 0c65 + movi a6, 6 /* 0x00000006 */ # ae5: 0c66 + l32i a0, a12, 0 /* [g_phyFuns] */ # ae7: 080c + s32i a2, sp, 20 /* a2 -> [(local6)] */ # ae9: 2951 + l32i a0, a0, 148 /* [[g_phyFuns]+0x94] */ # aeb: 022025 + movi a2, 119 /* 0x00000077 */ # aee: 22a077 + callx0 a0 /* [[g_phyFuns]+0x94] */ # af1: c00000 + movi a3, 0 /* 0x00000000 */ # af4: 0c03 + movi a4, 9 /* 0x00000009 */ # af6: 0c94 + movi a5, 7 /* 0x00000007 */ # af8: 0c75 + movi a6, 0 /* 0x00000000 */ # afa: 0c06 + l32i a0, a12, 0 /* [g_phyFuns] */ # afc: 080c + s32i a2, sp, 24 /* a2 -> [(local7)] */ # afe: 2961 + l32i a0, a0, 148 /* [[g_phyFuns]+0x94] */ # b00: 022025 + movi a2, 119 /* 0x00000077 */ # b03: 22a077 + callx0 a0 /* [[g_phyFuns]+0x94] */ # b06: c00000 + l32i a0, a12, 0 /* [g_phyFuns] */ # b09: 080c + l32i a0, a0, 160 /* [[g_phyFuns]+0xa0] */ # b0b: 022028 + s32i a2, sp, 28 /* a2 -> [(local8)] */ # b0e: 2971 + callx0 a0 /* [[g_phyFuns]+0xa0] */ # b10: c00000 + l32i a0, a12, 0 /* [g_phyFuns] */ # b13: 080c + l32i a0, a0, 192 /* [[g_phyFuns]+0xc0] */ # b15: 022030 + movi a2, 1 /* 0x00000001 */ # b18: 0c12 + callx0 a0 /* [[g_phyFuns]+0xc0] */ # b1a: c00000 + l32i a2, sp, 8 /* [(local3)] */ # b1d: 2821 + extui a2, a2, 0, 12 # b1f: 2020b4 + call0 ram_pbus_xpd_tx_on # b22: 01deffc0 + # b26: 0000 + l32i a2, sp, 8 /* [(local3)] */ # b28: 2821 + mov a3, sp /* (FP)-0x40 */ # b2a: 3d01 + movi a4, 1 /* 0x00000001 */ # b2c: 0c14 + call0 set_txdc_pbus # b2e: 050000 + l32i a0, a12, 0 /* [g_phyFuns] */ # b31: 080c + l32i a0, a0, 24 /* [[g_phyFuns]+0x18] */ # b33: 0860 + movi a2, 0 /* 0x00000000 */ # b35: 0c02 + callx0 a0 /* [[g_phyFuns]+0x18] */ # b37: c00000 + l32i a0, a12, 0 /* [g_phyFuns] */ # b3a: 080c + l32i a0, a0, 60 /* [[g_phyFuns]+0x3c] */ # b3c: 08f0 + movi a2, 1 /* 0x00000001 */ # b3e: 0c12 + callx0 a0 /* [[g_phyFuns]+0x3c] */ # b40: c00000 + movi a2, 119 /* 0x00000077 */ # b43: 22a077 + movi a3, 0 /* 0x00000000 */ # b46: 0c03 + movi a4, 9 /* 0x00000009 */ # b48: 0c94 + movi a5, 7 /* 0x00000007 */ # b4a: 0c75 + l32i a0, a12, 0 /* [g_phyFuns] */ # b4c: 080c + movi a6, 0 /* 0x00000000 */ # b4e: 0c06 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # b50: 022027 + movi a7, 0 /* 0x00000000 */ # b53: 0c07 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # b55: c00000 + movi a2, 119 /* 0x00000077 */ # b58: 22a077 + movi a3, 0 /* 0x00000000 */ # b5b: 0c03 + movi a4, 16 /* 0x00000010 */ # b5d: 1c04 + movi a5, 2 /* 0x00000002 */ # b5f: 0c25 + l32i a0, a12, 0 /* [g_phyFuns] */ # b61: 080c + movi a6, 2 /* 0x00000002 */ # b63: 0c26 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # b65: 022027 + movi a7, 1 /* 0x00000001 */ # b68: 0c17 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # b6a: c00000 + l32i a2, sp, 12 /* [(local4)] */ # b6d: 2831 + l8ui a7, sp, 68 /* [(FP)+0x4] */ # b6f: 720144 + mov a3, a15 /* [(local14)] */ # b72: 3d0f + addi a4, sp, 2 /* (local0) */ # b74: 2b41 + l8ui a15, sp, 64 /* [(local15)] */ # b76: f20140 + mov a5, a14 /* arg5 */ # b79: 5d0e + mov a6, a15 /* [(local15)] */ # b7b: 6d0f + call0 txiq_cover # b7d: 050000 + l32i a0, a12, 0 /* [g_phyFuns] */ # b80: 080c + l32i a0, a0, 108 /* [[g_phyFuns]+0x6c] */ # b82: 02201b + movi a2, 1 /* 0x00000001 */ # b85: 0c12 + callx0 a0 /* [[g_phyFuns]+0x6c] */ # b87: c00000 + movi a2, 119 /* 0x00000077 */ # b8a: 22a077 + movi a3, 0 /* 0x00000000 */ # b8d: 0c03 + movi a4, 16 /* 0x00000010 */ # b8f: 1c04 + movi a5, 0 /* 0x00000000 */ # b91: 0c05 + movi a6, 0 /* 0x00000000 */ # b93: 0c06 + l32i a0, a12, 0 /* [g_phyFuns] */ # b95: 080c + l32i a7, sp, 20 /* [(local6)] */ # b97: 7851 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # b99: 022027 + s32i a7, sp, 16 /* [(local6)] -> [(local5)] */ # b9c: 7941 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # b9e: c00000 + l32i a7, sp, 24 /* [(local7)] */ # ba1: 7861 + movi a2, 119 /* 0x00000077 */ # ba3: 22a077 + movi a3, 0 /* 0x00000000 */ # ba6: 0c03 + movi a4, 15 /* 0x0000000f */ # ba8: 0cf4 + l32i a0, a12, 0 /* [g_phyFuns] */ # baa: 080c + movi a5, 6 /* 0x00000006 */ # bac: 0c65 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # bae: 022027 + movi a6, 6 /* 0x00000006 */ # bb1: 0c66 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # bb3: c00000 + l32i a7, sp, 28 /* [(local8)] */ # bb6: 7871 + movi a2, 119 /* 0x00000077 */ # bb8: 22a077 + movi a3, 0 /* 0x00000000 */ # bbb: 0c03 + movi a4, 9 /* 0x00000009 */ # bbd: 0c94 + l32i a0, a12, 0 /* [g_phyFuns] */ # bbf: 080c + movi a5, 7 /* 0x00000007 */ # bc1: 0c75 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # bc3: 022027 + movi a6, 0 /* 0x00000000 */ # bc6: 0c06 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # bc8: c00000 + movi a2, 119 /* 0x00000077 */ # bcb: 22a077 + movi a3, 0 /* 0x00000000 */ # bce: 0c03 + movi a4, 16 /* 0x00000010 */ # bd0: 1c04 + movi a5, 2 /* 0x00000002 */ # bd2: 0c25 + l32i a0, a12, 0 /* [g_phyFuns] */ # bd4: 080c + movi a6, 2 /* 0x00000002 */ # bd6: 0c26 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # bd8: 022027 + movi a7, 0 /* 0x00000000 */ # bdb: 0c07 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # bdd: c00000 + movi a2, 15 /* 0x0000000f */ # be0: 0cf2 + l8ui a4, sp, 2 /* [(local0)] */ # be2: 420102 + movi a0, -15 /* 0xfffffff1 */ # be5: 7c10 + slli a4, a4, 24 # be7: 804401 + srai a4, a4, 24 # bea: 404831 + blt a4, a0, .Lbr058 # bed: 072401 + mov a0, a4 # bf0: 0d04 +.Lbr058: l8ui a4, sp, 3 /* [(local1)] */ # bf2: 420103 + blt a2, a0, .Lbr059 # bf5: 072201 + mov a2, a0 # bf8: 2d00 +.Lbr059: movi a0, -31 /* 0xffffffe1 */ # bfa: 6c10 + s8i a2, sp, 2 /* a2 -> [(local0)] */ # bfc: 224102 + slli a4, a4, 24 # bff: 804401 + slli a3, a2, 24 # c02: 803201 + srai a3, a3, 24 # c05: 303831 + srai a4, a4, 24 # c08: 404831 + movi a2, 31 /* 0x0000001f */ # c0b: 1cf2 + blt a4, a0, .Lbr060 # c0d: 072401 + mov a0, a4 # c10: 0d04 +.Lbr060: blt a2, a0, .Lbr061 # c12: 072201 + mov a2, a0 # c15: 2d00 +.Lbr061: s8i a2, sp, 3 /* a2 -> [(local1)] */ # c17: 224103 + slli a4, a2, 24 # c1a: 804201 + srai a4, a4, 24 # c1d: 404831 + beqz a14, .Lbr062 # c20: 8cee + l32i a5, sp, 16 /* [(local5)] */ # c22: 5841 + beqz a5, .Lbr062 # c24: 8ca5 + neg a3, a3 # c26: 303060 + s8i a3, sp, 2 /* a3 -> [(local0)] */ # c29: 324102 + slli a3, a3, 24 # c2c: 803301 + srai a3, a3, 24 # c2f: 303831 +.Lbr062: beqz a15, .Lbr063 # c32: 8cdf + movi a2, .Lstr002 # c34: 2194ff + call0 ets_printf # c37: 019affc0 + # c3b: 0000 + l8ui a4, sp, 3 /* [(local1)] */ # c3d: 420103 + l8ui a3, sp, 2 /* [(local0)] */ # c40: 320102 +.Lbr063: extui a5, a3, 7, 1 # c43: 305704 + slli a14, a3, 24 # c46: 80e301 + srai a14, a14, 24 # c49: e0e831 + beqz a5, .Lbr066 # c4c: 166508 + addi a14, a3, 32 # c4f: e2c320 + j .Lbr066 # c52: 062000 +.Lbr064: l16ui a12, a3, 0 /* [arg1] */ # c55: c21300 + srli a14, a12, 8 # c58: c0e841 + slli a12, a12, 24 # c5b: 80cc01 + srai a12, a12, 24 # c5e: c0c831 +.Lbr065: movi a6, 0x60009a00 # c61: 618bff + slli a10, a14, 24 # c64: 80ae01 + movi a11, 0x00030000 # c67: b188ff + slli a9, a12, 18 # c6a: e09c01 + or a9, a9, a11 # c6d: b09920 + movi a14, 0x60009600 # c70: e189ff + movi a11, 0xe000ffff # c73: b186ff + memw # c76: c02000 + l32i a8, a14, 0x260 /* [0x60009860] */ # c79: 822e98 + and a8, a8, a11 # c7c: b08810 + or a8, a8, a10 # c7f: a08820 + or a8, a8, a9 # c82: 908820 + memw # c85: c02000 + s32i a8, a14, 0x260 /* a8 -> [0x60009860] */ # c88: 826e98 + movi a7, 32 /* 0x00000020 */ # c8b: 2c07 + memw # c8d: c02000 + l32i a5, a6, 40 /* [0x60009a28] */ # c90: 58a6 + or a5, a5, a7 # c92: 705520 + memw # c95: c02000 + s32i a5, a6, 40 /* a5 -> [0x60009a28] */ # c98: 59a6 + movi a4, -16 /* 0xfffffff0 */ # c9a: 7c04 + movi a3, 2 /* 0x00000002 */ # c9c: 0c23 + memw # c9e: c02000 + l32i a2, a14, 0x23c /* [0x6000983c] */ # ca1: 222e8f + and a2, a2, a4 # ca4: 402210 + or a2, a2, a3 # ca7: 302220 + memw # caa: c02000 + s32i a2, a14, 0x23c /* a2 -> [0x6000983c] */ # cad: 226e8f + movi a0, -498 /* 0xfffffe0e */ # cb0: 02ae0e + movi a15, 1 /* 0x00000001 */ # cb3: 0c1f + memw # cb5: c02000 + l32i a13, a14, 0x264 /* [0x60009864] */ # cb8: d22e99 + and a13, a13, a0 # cbb: 00dd10 + or a13, a13, a15 # cbe: f0dd20 + memw # cc1: c02000 + l32i a12, sp, 36 /* [(local10)] */ # cc4: c891 + s32i a13, a14, 0x264 /* a13 -> [0x60009864] */ # cc6: d26e99 + l32i a15, sp, 48 /* [(local13)] */ # cc9: f8c1 + l32i a13, sp, 40 /* [(local11)] */ # ccb: d8a1 + l32i a14, sp, 44 /* [(local12)] */ # ccd: e8b1 + l32i a0, sp, 32 /* [(local9)] */ # ccf: 0881 + addi sp, sp, 64 /* (local15) */ # cd1: 12c140 + ret # cd4: 0df0 +.Lbr066: slli a15, a4, 24 # cd6: 80f401 + srai a15, a15, 24 # cd9: f0f831 + bbci a4, 7, .Lbr067 # cdc: 776402 + addi a15, a4, 64 # cdf: f2c440 +.Lbr067: l32i a0, a12, 0 /* [g_phyFuns] */ # ce2: 080c + slli a12, a15, 24 # ce4: 80cf01 + l32i a0, a0, 168 /* [[g_phyFuns]+0xa8] */ # ce7: 02202a + srai a12, a12, 24 # cea: c0c831 + callx0 a0 /* [[g_phyFuns]+0xa8] */ # ced: c00000 + movi a3, 0x00020000 # cf0: 316aff + l32i a2, a13, 0 /* [arg0] */ # cf3: 280d + slli a4, a15, 24 # cf5: 804f01 + slli a5, a14, 8 # cf8: 805e11 + srai a4, a4, 24 # cfb: 404831 + or a4, a4, a5 # cfe: 504420 + l32i a5, sp, 4 /* [(local2)] */ # d01: 5811 + or a2, a2, a3 # d03: 302220 + s16i a4, a5, 0 /* a4 -> [[(local2)]] */ # d06: 425500 + s32i a2, a13, 0 /* a2 -> [arg0] */ # d09: 290d + j .Lbr065 # d0b: 86d4ff + + .literal_position # d10: 00000000 + # d14: 00000000 + # d18: 00000000 + # d1c: 00000000 + # d20: 00000000 + # d24: 00000001 + # d28: 00008000 + # d2c: 00000000 + # d30: 00000000 + # d34: 00000000 + # d38: 00000000 + +# Function @ .irom0.text+0xd3c +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word @ -0x8 +# (local3): word @ -0x4 + .balign 4 + .global rc_cal + .type rc_cal, @function +rc_cal: addi sp, sp, -16 /* (local0) */ # d3c: 12c1f0 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # d3f: d921 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # d41: c911 + s32i a14, sp, 12 /* a14 -> [(local3)] */ # d43: e931 + movi a14, chip6_sleep_params # d45: e1f2ff + s32i a0, sp, 0 /* a0 -> [(local0)] */ # d48: 0901 + l32i a0, a14, 0 /* [chip6_sleep_params] */ # d4a: 080e + movi a12, g_phyFuns # d4c: c1f2ff + bbsi a0, 23, .Lbr068 # d4f: 77f035 + movi a2, 106 /* 0x0000006a */ # d52: 22a06a + movi a3, 2 /* 0x00000002 */ # d55: 0c23 + movi a4, 0 /* 0x00000000 */ # d57: 0c04 + movi a5, 5 /* 0x00000005 */ # d59: 0c55 + l32i a0, a12, 0 /* [g_phyFuns] */ # d5b: 080c + movi a6, 4 /* 0x00000004 */ # d5d: 0c46 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # d5f: 022027 + movi a7, 0 /* 0x00000000 */ # d62: 0c07 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # d64: c00000 + movi a9, chip6_phy_init_ctrl # d67: 91ecff + l32i a10, a12, 0 /* [g_phyFuns] */ # d6a: a80c + l8ui a2, a9, 1 /* [chip6_phy_init_ctrl+0x1] */ # d6c: 220901 + l32i a10, a10, 156 /* [[g_phyFuns]+0x9c] */ # d6f: a22a27 + beqz a2, .Lbr070 # d72: 16d204 + movi a2, 106 /* 0x0000006a */ # d75: 22a06a + movi a3, 2 /* 0x00000002 */ # d78: 0c23 + movi a4, 4 /* 0x00000004 */ # d7a: 0c44 + movi a5, 7 /* 0x00000007 */ # d7c: 0c75 + movi a6, 4 /* 0x00000004 */ # d7e: 0c46 + movi a7, 1 /* 0x00000001 */ # d80: 0c17 + callx0 a10 /* [[g_phyFuns]+0x9c] */ # d82: c00a00 + j .Lbr071 # d85: 861200 +.Lbr068: l8ui a13, a14, 74 /* [chip6_sleep_params+0x4a] */ # d88: d20e4a +.Lbr069: movi a2, 97 /* 0x00000061 */ # d8b: 22a061 + movi a3, 1 /* 0x00000001 */ # d8e: 0c13 + movi a4, 2 /* 0x00000002 */ # d90: 0c24 + movi a5, 4 /* 0x00000004 */ # d92: 0c45 + l32i a0, a12, 0 /* [g_phyFuns] */ # d94: 080c + movi a6, 0 /* 0x00000000 */ # d96: 0c06 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # d98: 022027 + mov a7, a13 # d9b: 7d0d + callx0 a0 /* [[g_phyFuns]+0x9c] */ # d9d: c00000 + l8ui a7, a14, 75 /* [chip6_sleep_params+0x4b] */ # da0: 720e4b + movi a2, 102 /* 0x00000066 */ # da3: 22a066 + movi a3, 3 /* 0x00000003 */ # da6: 0c33 + movi a4, 1 /* 0x00000001 */ # da8: 0c14 + l32i a0, a12, 0 /* [g_phyFuns] */ # daa: 080c + movi a5, 5 /* 0x00000005 */ # dac: 0c55 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # dae: 022027 + movi a6, 0 /* 0x00000000 */ # db1: 0c06 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # db3: c00000 + l32i a12, sp, 4 /* [(local1)] */ # db6: c811 + l32i a13, sp, 8 /* [(local2)] */ # db8: d821 + l32i a14, sp, 12 /* [(local3)] */ # dba: e831 + l32i a0, sp, 0 /* [(local0)] */ # dbc: 0801 + addi sp, sp, 16 /* (top of frame) */ # dbe: 12c110 + ret # dc1: 0df0 +.Lbr070: movi a2, 106 /* 0x0000006a */ # dc3: 22a06a + movi a3, 2 /* 0x00000002 */ # dc6: 0c23 + movi a4, 4 /* 0x00000004 */ # dc8: 0c44 + movi a5, 7 /* 0x00000007 */ # dca: 0c75 + movi a6, 4 /* 0x00000004 */ # dcc: 0c46 + movi a7, 2 /* 0x00000002 */ # dce: 0c27 + callx0 a10 /* [[g_phyFuns]+0x9c] */ # dd0: c00a00 +.Lbr071: movi a2, 104 /* 0x00000068 */ # dd3: 22a068 + movi a3, 3 /* 0x00000003 */ # dd6: 0c33 + movi a4, 1 /* 0x00000001 */ # dd8: 0c14 + movi a5, 0 /* 0x00000000 */ # dda: 0c05 + l32i a0, a12, 0 /* [g_phyFuns] */ # ddc: 080c + movi a6, 0 /* 0x00000000 */ # dde: 0c06 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # de0: 022027 + movi a7, 1 /* 0x00000001 */ # de3: 0c17 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # de5: c00000 + movi a2, 106 /* 0x0000006a */ # de8: 22a06a + movi a3, 2 /* 0x00000002 */ # deb: 0c23 + movi a4, 6 /* 0x00000006 */ # ded: 0c64 + movi a5, 4 /* 0x00000004 */ # def: 0c45 + l32i a0, a12, 0 /* [g_phyFuns] */ # df1: 080c + movi a6, 0 /* 0x00000000 */ # df3: 0c06 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # df5: 022027 + movi a7, 8 /* 0x00000008 */ # df8: 0c87 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # dfa: c00000 + movi a2, 106 /* 0x0000006a */ # dfd: 22a06a + movi a3, 2 /* 0x00000002 */ # e00: 0c23 + movi a4, 4 /* 0x00000004 */ # e02: 0c44 + movi a5, 0 /* 0x00000000 */ # e04: 0c05 + l32i a0, a12, 0 /* [g_phyFuns] */ # e06: 080c + movi a6, 0 /* 0x00000000 */ # e08: 0c06 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # e0a: 022027 + movi a7, 1 /* 0x00000001 */ # e0d: 0c17 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # e0f: c00000 + movi a2, 106 /* 0x0000006a */ # e12: 22a06a + movi a3, 2 /* 0x00000002 */ # e15: 0c23 + movi a4, 3 /* 0x00000003 */ # e17: 0c34 + movi a5, 6 /* 0x00000006 */ # e19: 0c65 + l32i a0, a12, 0 /* [g_phyFuns] */ # e1b: 080c + movi a6, 6 /* 0x00000006 */ # e1d: 0c66 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # e1f: 022027 + movi a7, 1 /* 0x00000001 */ # e22: 0c17 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # e24: c00000 + movi a2, 106 /* 0x0000006a */ # e27: 22a06a + movi a3, 2 /* 0x00000002 */ # e2a: 0c23 + movi a4, 4 /* 0x00000004 */ # e2c: 0c44 + movi a5, 3 /* 0x00000003 */ # e2e: 0c35 + l32i a0, a12, 0 /* [g_phyFuns] */ # e30: 080c + movi a6, 3 /* 0x00000003 */ # e32: 0c36 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # e34: 022027 + movi a7, 0 /* 0x00000000 */ # e37: 0c07 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # e39: c00000 + movi a2, 106 /* 0x0000006a */ # e3c: 22a06a + movi a3, 2 /* 0x00000002 */ # e3f: 0c23 + movi a4, 4 /* 0x00000004 */ # e41: 0c44 + movi a5, 3 /* 0x00000003 */ # e43: 0c35 + l32i a0, a12, 0 /* [g_phyFuns] */ # e45: 080c + movi a6, 3 /* 0x00000003 */ # e47: 0c36 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # e49: 022027 + movi a7, 1 /* 0x00000001 */ # e4c: 0c17 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # e4e: c00000 + movi a2, 100 /* 0x00000064 */ # e51: 22a064 + call0 ets_delay_us # e54: 01b6ffc0 + # e58: 0000 + movi a2, 106 /* 0x0000006a */ # e5a: 22a06a + movi a3, 2 /* 0x00000002 */ # e5d: 0c23 + movi a4, 5 /* 0x00000005 */ # e5f: 0c54 + l32i a0, a12, 0 /* [g_phyFuns] */ # e61: 080c + movi a5, 5 /* 0x00000005 */ # e63: 0c55 + l32i a0, a0, 148 /* [[g_phyFuns]+0x94] */ # e65: 022025 + movi a6, 0 /* 0x00000000 */ # e68: 0c06 + callx0 a0 /* [[g_phyFuns]+0x94] */ # e6a: c00000 + movi a3, 3 /* 0x00000003 */ # e6d: 0c33 + movi a4, 1 /* 0x00000001 */ # e6f: 0c14 + movi a5, 0 /* 0x00000000 */ # e71: 0c05 + movi a6, 0 /* 0x00000000 */ # e73: 0c06 + movi a7, 0 /* 0x00000000 */ # e75: 0c07 + l32i a0, a12, 0 /* [g_phyFuns] */ # e77: 080c + mov a13, a2 # e79: dd02 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # e7b: 022027 + movi a2, 104 /* 0x00000068 */ # e7e: 22a068 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # e81: c00000 + movi a0, chip6_phy_init_ctrl # e84: 01a6ff + movi a4, check_result # e87: 41a6ff + l8ui a6, a0, 1 /* [chip6_phy_init_ctrl+0x1] */ # e8a: 620001 + bltui a13, 3, .Lbr072 # e8d: b63d04 + movi a2, 60 /* 0x0000003c */ # e90: 3cc2 + bgeu a2, a13, .Lbr073 # e92: d7b209 +.Lbr072: movi a5, 0x01000000 # e95: 51a3ff + l32i a3, a4, 0 /* [check_result] */ # e98: 3804 + or a3, a3, a5 # e9a: 503320 + s32i a3, a4, 0 /* a3 -> [check_result] */ # e9d: 3904 +.Lbr073: beqz a6, .Lbr075 # e9f: bcb6 + movi a3, 30 /* 0x0000001e */ # ea1: 1ce3 + slli a2, a13, 4 # ea3: c02d11 + addi a2, a2, -39 # ea6: 22c2d9 + call0 __divsi3 # ea9: 01a1ffc0 + # ead: 0000 +.Lbr074: subx8 a3, a13, a13 # eaf: d03df0 + extui a13, a2, 0, 8 # eb2: 20d074 + s8i a13, a14, 74 /* a13 -> [chip6_sleep_params+0x4a] */ # eb5: d24e4a + slli a2, a3, 2 # eb8: e02311 + extui a2, a2, 0, 16 # ebb: 2020f4 + movi a3, 9 /* 0x00000009 */ # ebe: 0c93 + call0 __udivsi3 # ec0: 019dffc0 + # ec4: 0000 + movi a6, 0x00800000 # ec6: 6198ff + l32i a5, a14, 0 /* [chip6_sleep_params] */ # ec9: 580e + extui a4, a2, 0, 8 # ecb: 204074 + addi a4, a4, 2 # ece: 2b44 + srai a4, a4, 2 # ed0: 404221 + s8i a4, a14, 75 /* a4 -> [chip6_sleep_params+0x4b] */ # ed3: 424e4b + or a5, a5, a6 # ed6: 605520 + s32i a5, a14, 0 /* a5 -> [chip6_sleep_params] */ # ed9: 590e + j .Lbr069 # edb: 06abff +.Lbr075: movi a3, 20 /* 0x00000014 */ # ede: 1c43 + addx4 a2, a13, a13 # ee0: d02da0 + addx2 a2, a2, a13 # ee3: d02290 + addi a2, a2, -14 # ee6: 22c2f2 + call0 __divsi3 # ee9: 0193ffc0 + # eed: 0000 + j .Lbr074 # eef: 06efff + + .literal_position # ef4: 00000000 + # ef8: 00000000 + # efc: 00000000 + # f00: 300f0000 + +# Function @ .irom0.text+0xf04 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 + .global get_target_power_offset + .type get_target_power_offset, @function +get_target_power_offset: + addi sp, sp, -16 /* (local0) */ # f04: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # f07: 0901 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # f09: c911 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # f0b: d921 + mov a12, a2 /* arg0 */ # f0d: cd02 + mov a13, a3 /* arg1 */ # f0f: dd03 + movi a2, chip6_sleep_params # f11: 21f8ff + mov a3, a12 /* arg0 */ # f14: 3d0c + l8ui a2, a2, 110 /* [chip6_sleep_params+0x6e] */ # f16: 22026e + call0 get_fcc_1m2m_pwr_offset # f19: 050000 + movi a0, chip6_sleep_params # f1c: 01f7ff + movi a6, chip6_phy_init_ctrl # f1f: 61f7ff + bgeui a12, 16, .Lbr076 # f22: f6bc3a + movi a4, .Lfunc001 # f25: 41f6ff + addx2 a3, a12, a12 # f28: c03c90 + add a3, a3, a4 # f2b: 4a33 + jx a3 # f2d: a00300 +.Lfunc001: j .Lbr085 # f30: 462300 + j .Lbr085 # f33: 862200 + j .Lbr093 # f36: c62d00 + j .Lbr093 # f39: 062d00 + j .Lbr085 # f3c: 462000 + j .Lbr085 # f3f: 861f00 + j .Lbr093 # f42: c62a00 + j .Lbr093 # f45: 062a00 + j .Lbr092 # f48: c62700 + j .Lbr091 # f4b: 862500 + j .Lbr090 # f4e: 462300 + j .Lbr086 # f51: 861c00 + j .Lbr089 # f54: 462000 + j .Lbr088 # f57: 061e00 + j .Lbr087 # f5a: c61b00 + j .Lbr086 # f5d: 861900 +.Lbr076: add a3, a12, a13 # f60: da3c + addmi a3, a3, -256 # f62: 32d3ff + l8ui a3, a3, 240 # f65: 3203f0 +.Lbr077: l8ui a0, a0, 78 /* [chip6_sleep_params+0x4e] */ # f68: 02004e + bgeui a12, 8, .Lbr078 # f6b: f68c0a + l8ui a4, a6, 97 /* [chip6_phy_init_ctrl+0x61] */ # f6e: 420661 + bnez a4, .Lbr082 # f71: fcb4 + l8ui a3, a13, 0 /* [arg1] */ # f73: 320d00 + j .Lbr082 # f76: 860d00 +.Lbr078: slli a0, a0, 24 # f79: 800001 + srai a0, a0, 24 # f7c: 000831 + beqi a0, 1, .Lbr079 # f7f: 261017 + movi a2, 11 /* 0x0000000b */ # f82: 0cb2 + beq a0, a2, .Lbr083 # f84: 27102d + movi a4, 13 /* 0x0000000d */ # f87: 0cd4 + beq a0, a4, .Lbr084 # f89: 47102e + addi a7, a0, -14 # f8c: 72c0f2 + l8ui a5, a6, 35 /* [chip6_phy_init_ctrl+0x23] */ # f8f: 520623 + movi a2, 0 /* 0x00000000 */ # f92: 0c02 + moveqz a2, a5, a7 # f94: 702583 + j .Lbr080 # f97: 860000 +.Lbr079: l8ui a2, a6, 32 /* [chip6_phy_init_ctrl+0x20] */ # f9a: 220620 +.Lbr080: l32i a12, sp, 4 /* [(local1)] */ # f9d: c811 + l32i a13, sp, 8 /* [(local2)] */ # f9f: d821 + extui a0, a3, 0, 8 # fa1: 300074 + bgeu a2, a0, .Lbr081 # fa4: 07b201 + mov a2, a0 # fa7: 2d00 +.Lbr081: l32i a0, sp, 0 /* [(local0)] */ # fa9: 0801 + addi sp, sp, 16 /* (top of frame) */ # fab: 12c110 + ret # fae: 0df0 +.Lbr082: add a3, a2, a3 # fb0: 3a32 + j .Lbr078 # fb2: c6f0ff +.Lbr083: l8ui a2, a6, 33 /* [chip6_phy_init_ctrl+0x21] */ # fb5: 220621 + j .Lbr080 # fb8: 46f8ff +.Lbr084: l8ui a2, a6, 34 /* [chip6_phy_init_ctrl+0x22] */ # fbb: 220622 + j .Lbr080 # fbe: c6f6ff +.Lbr085: l8ui a3, a6, 99 # fc1: 320663 + j .Lbr077 # fc4: 06e8ff +.Lbr086: l8ui a3, a13, 0 # fc7: 320d00 + j .Lbr077 # fca: 86e6ff +.Lbr087: l8ui a3, a13, 2 # fcd: 320d02 + j .Lbr077 # fd0: 06e5ff +.Lbr088: l8ui a3, a13, 4 # fd3: 320d04 + j .Lbr077 # fd6: 86e3ff +.Lbr089: l8ui a3, a13, 6 # fd9: 320d06 + j .Lbr077 # fdc: 06e2ff +.Lbr090: l8ui a3, a13, 1 # fdf: 320d01 + j .Lbr077 # fe2: 86e0ff +.Lbr091: l8ui a3, a13, 3 # fe5: 320d03 + j .Lbr077 # fe8: 06dfff +.Lbr092: l8ui a3, a13, 5 # feb: 320d05 + j .Lbr077 # fee: 86ddff +.Lbr093: l8ui a3, a6, 98 # ff1: 320662 + j .Lbr077 # ff4: 06dcff + + .balign 4 +# Function @ .irom0.text+0xff8 + .balign 4 + .global get_pwctrl_correct + .type get_pwctrl_correct, @function +get_pwctrl_correct: + addi a6, a4, 2 /* arg2+0x2 */ # ff8: 2b64 + l16si a8, a3, 0 /* [arg1] */ # ffa: 829300 + ssr a4 # ffd: 000440 + sra a9, a8 # 1000: 8090b1 + sub a8, a8, a9 # 1003: 9088c0 + ssl a6 # 1006: 001640 + add a8, a2, a8 # 1009: 8a82 + sll a2, a5 # 100b: 0025a1 + slli a8, a8, 16 # 100e: 008811 + srai a8, a8, 16 # 1011: 808031 + s16i a8, a3, 0 /* a8 -> [arg1] */ # 1014: 825300 + blt a8, a2, .Lbr096 # 1017: 272814 + sub a4, a8, a2 # 101a: 2048c0 + neg a2, a5 # 101d: 502060 + slli a2, a2, 24 # 1020: 802201 + srai a2, a2, 24 # 1023: 202831 +.Lbr094: s16i a4, a3, 0 /* a4 -> [arg1] */ # 1026: 425300 + ret # 1029: 0df0 +.Lbr095: movi a2, 0 /* 0x00000000 */ # 102b: 0c02 + ret /* 0x00000000 */ # 102d: 0df0 +.Lbr096: neg a4, a2 # 102f: 204060 + blt a4, a8, .Lbr095 # 1032: 8724f5 + add a4, a8, a2 # 1035: 2a48 + slli a2, a5, 24 # 1037: 802501 + srai a2, a2, 24 # 103a: 202831 + j .Lbr094 # 103d: 46f9ff + + .literal_position # 1040: 000a0060 + # 1044: 00000000 + # 1048: 00000000 + # 104c: 00020060 + # 1050: 2c000000 + # 1054: 00000000 + # 1058: 00000000 + # 105c: f30f0000 + # 1060: 00000000 + # 1064: 00000000 + # 1068: 00000000 + # 106c: 00000000 + # 1070: 00000000 + # 1074: 00000000 + # 1078: 00000000 + # 107c: 4c000000 + # 1080: 00000000 + # 1084: 00020060 + # 1088: 00000000 + # 108c: 00000000 + # 1090: 00000000 + # 1094: 00000000 + # 1098: 00000000 + # 109c: 00000000 + +# Function @ .irom0.text+0x10a0 +# Local variables/stack: +# (local0): word @ -0x70 +# (local1): word @ -0x6c +# (local2): word @ -0x68 +# (local3): word @ -0x64 +# (local4): word @ -0x60 +# (local5): word @ -0x5c +# (local6): word[2] @ -0x58 +# (local7): byte[16] @ -0x50 +# (local8): word @ -0x40 +# (local9): word @ -0x3c +# (local10): word @ -0x38 +# (local11): word @ -0x34 +# (local12): word @ -0x30 +# (local13): word @ -0x2c +# (local14): word @ -0x28 +# (local15): word @ -0x24 +# (local16): word @ -0x20 +# (local17): word @ -0x1c +# (local18): word @ -0x18 +# (local19): word @ -0x14 +# (local20): word @ -0x10 +# (local21): word @ -0xc +# (local22): word[2] @ -0x8 + .balign 4 + .global tx_pwctrl_cal + .type tx_pwctrl_cal, @function +tx_pwctrl_cal: + addi sp, sp, -112 /* (local0) */ # 10a0: 12c190 + s32i a15, sp, 96 /* a15 -> [(local20)] */ # 10a3: f26118 + s32i a0, sp, 80 /* a0 -> [(local16)] */ # 10a6: 026114 + s32i a2, sp, 68 /* arg0 -> [(local13)] */ # 10a9: 226111 + s32i a5, sp, 72 /* arg3 -> [(local14)] */ # 10ac: 526112 + s32i a6, sp, 100 /* arg4 -> [(local21)] */ # 10af: 626119 + s32i a12, sp, 84 /* a12 -> [(local17)] */ # 10b2: c26115 + s32i a14, sp, 92 /* a14 -> [(local19)] */ # 10b5: e26117 + s32i a13, sp, 88 /* a13 -> [(local18)] */ # 10b8: d26116 + mov a13, a4 /* arg2 */ # 10bb: dd04 + mov a14, a3 /* arg1 */ # 10bd: ed03 + movi a12, 0x60000a00 # 10bf: c1e0ff + memw # 10c2: c02000 + l32i a12, a12, 0x360 /* [0x60000d60] */ # 10c5: c22cd8 + movi a2, 312 /* 0x00000138 */ # 10c8: 22a138 + extui a12, a12, 24, 5 # 10cb: c0c845 + call0 get_sar_dout # 10ce: 050000 + s32i a2, sp, 76 /* a2 -> [(local15)] */ # 10d1: 226113 + bgeui a12, 8, .Lbr097 # 10d4: f68c0a + movi a2, -1 /* 0xffffffff */ # 10d7: 7cf2 + xor a2, a12, a2 # 10d9: 202c30 + extui a2, a2, 0, 3 # 10dc: 202024 + j .Lbr098 # 10df: 460000 +.Lbr097: mov a2, a12 # 10e2: 2d0c +.Lbr098: mov a3, a14 /* arg1 */ # 10e4: 3d0e + call0 get_target_power_offset # 10e6: 050000 + movi a15, loop_pwctrl_pwdet_error_accum_high_power # 10e9: f1d6ff + movi a14, chip6_sleep_params # 10ec: e1d7ff + movi a3, -32 /* 0xffffffe0 */ # 10ef: 6c03 + l32i a4, sp, 76 /* [(local15)] */ # 10f1: 422113 + mov a0, a2 # 10f4: 0d02 + l32i a5, sp, 68 /* [(local13)] */ # 10f6: 522111 + movi a10, 32 /* 0x00000020 */ # 10f9: 2c0a + add a5, a2, a5 # 10fb: 5a52 + s32i a5, sp, 64 /* a5 -> [(local12)] */ # 10fd: 526110 + l8ui a5, a5, 0 # 1100: 520500 + mov a2, a10 /* 0x00000020 */ # 1103: 2d0a + slli a5, a5, 2 # 1105: e05511 + sub a4, a4, a5 # 1108: 5044c0 + slli a4, a4, 16 # 110b: 004411 + srai a4, a4, 16 # 110e: 404031 + blt a4, a3, .Lbr099 # 1111: 372401 + mov a3, a4 # 1114: 3d04 +.Lbr099: s32i a0, sp, 56 /* a0 -> [(local10)] */ # 1116: 09e1 + l32i a6, a14, 0 /* [chip6_sleep_params] */ # 1118: 680e + blt a10, a3, .Lbr100 # 111a: 372a01 + mov a2, a3 # 111d: 2d03 +.Lbr100: slli a8, a2, 16 # 111f: 008211 + srai a8, a8, 16 # 1122: 808031 + bbci a6, 29, .Lbr101 # 1125: d77619 + s32i a0, sp, 56 /* a0 -> [(local10)] */ # 1128: 09e1 + bnez a0, .Lbr101 # 112a: dc40 + mov a2, a8 # 112c: 2d08 + s32i a8, sp, 48 /* a8 -> [(local8)] */ # 112e: 89c1 + mov a3, a15 /* loop_pwctrl_pwdet_error_accum_high_power */ # 1130: 3d0f + movi a4, 4 /* 0x00000004 */ # 1132: 0c44 + movi a5, 2 /* 0x00000002 */ # 1134: 0c25 + s32i a13, sp, 52 /* arg2 -> [(local9)] */ # 1136: d9d1 + call0 get_pwctrl_correct # 1138: 050000 + mov a0, a2 # 113b: 0d02 + movi a13, 0 /* 0x00000000 */ # 113d: 0c0d + j .Lbr106 # 113f: 061100 +.Lbr101: mov a3, a13 /* arg2 */ # 1142: 3d0d + mov a2, a8 # 1144: 2d08 + s32i a8, sp, 48 /* a8 -> [(local8)] */ # 1146: 89c1 + s32i a13, sp, 52 /* arg2 -> [(local9)] */ # 1148: d9d1 + movi a4, 4 /* 0x00000004 */ # 114a: 0c44 + movi a5, 2 /* 0x00000002 */ # 114c: 0c25 + call0 get_pwctrl_correct # 114e: 050000 + l32i a9, sp, 56 /* [(local10)] */ # 1151: 98e1 + mov a13, a2 # 1153: dd02 + bnez a9, .Lbr117 # 1155: 564919 + l32i a10, sp, 48 /* [(local8)] */ # 1158: a8c1 + bgei a10, 1, .Lbr102 # 115a: e61a02 + j .Lbr117 # 115d: 066300 +.Lbr102: blti a10, 16, .Lbr103 # 1160: a6ba02 + j .Lbr117 # 1163: 866100 +.Lbr103: bnez a2, .Lbr117 # 1166: 563218 + l8ui a0, a15, 2 /* [tx_pwctrl_pk_num] */ # 1169: 020f02 + addi a0, a0, 1 /* [tx_pwctrl_pk_num]+0x1 */ # 116c: 1b00 + extui a0, a0, 0, 8 # 116e: 000074 +.Lbr104: s8i a0, a15, 2 /* a0 -> [tx_pwctrl_pk_num] */ # 1171: 024f02 + movi a2, 20 /* 0x00000014 */ # 1174: 1c42 + bne a0, a2, .Lbr105 # 1176: 27900b + movi a13, -2 /* 0xfffffffe */ # 1179: 7ced + l32i a4, sp, 52 /* [(local9)] */ # 117b: 48d1 + movi a3, 0 /* 0x00000000 */ # 117d: 0c03 + s8i a3, a15, 2 /* 0x00 -> [tx_pwctrl_pk_num] */ # 117f: 324f02 + s16i a3, a4, 0 /* 0x0000 -> [[(local9)]] */ # 1182: 325400 +.Lbr105: movi a0, 0 /* 0x00000000 */ # 1185: 0c00 +.Lbr106: l32i a6, sp, 100 /* [(local21)] */ # 1187: 622119 + beqz a13, .Lbr107 # 118a: 8c6d + movi a5, 0 /* 0x00000000 */ # 118c: 0c05 + s8i a5, a15, 3 /* 0x00 -> [loop_pwctrl_correct_atten_high_power] */ # 118e: 524f03 + s16i a5, a15, 0 /* 0x0000 -> [loop_pwctrl_pwdet_error_accum_high_power] */ # 1191: 525f00 +.Lbr107: s32i a0, sp, 104 /* a0 -> [(local22)] */ # 1194: 02611a + beqz a6, .Lbr108 # 1197: bc36 + movi a2, .Lstr003 # 1199: 21adff + mov a3, a12 # 119c: 3d0c + l32i a4, sp, 48 /* [(local8)] */ # 119e: 48c1 + l16si a6, a15, 0 /* [loop_pwctrl_pwdet_error_accum_high_power] */ # 11a0: 629f00 + movi a7, 0x60000200 # 11a3: 71aaff + l32i a5, sp, 52 /* [(local9)] */ # 11a6: 58d1 + addx4 a7, a12, a7 # 11a8: 707ca0 + l16si a5, a5, 0 /* [[(local9)]] */ # 11ab: 529500 + memw # 11ae: c02000 + l8ui a8, a14, 78 /* [chip6_sleep_params+0x4e] */ # 11b1: 820e4e + l32i a7, a7, 0x304 # 11b4: 7227c1 + slli a8, a8, 24 # 11b7: 808801 + slli a7, a7, 24 # 11ba: 807701 + srai a7, a7, 24 # 11bd: 707831 + srai a8, a8, 24 # 11c0: 808831 + s32i a8, sp, 0 /* a8 -> [(local0)] */ # 11c3: 8901 + call0 ets_printf # 11c5: 01b2ffc0 + # 11c9: 0000 + l32i a0, sp, 104 /* [(local22)] */ # 11cb: 02211a +.Lbr108: l32i a6, sp, 72 /* [(local14)] */ # 11ce: 622112 + beqz a6, .Lbr116 # 11d1: 164610 + s32i a12, sp, 60 /* a12 -> [(local11)] */ # 11d4: c9f1 + bnez a13, .Lbr109 # 11d6: cc3d + s32i a12, sp, 60 /* a12 -> [(local11)] */ # 11d8: c9f1 + beqz a0, .Lbr116 # 11da: 16b00f +.Lbr109: movi a5, 0 /* 0x00000000 */ # 11dd: 0c05 + mov a15, a13 # 11df: fd0d + movi a10, loop_pwctrl_pwdet_error_accum_high_power # 11e1: a19cff + l8ui a2, a14, 120 /* [chip6_sleep_params+0x78] */ # 11e4: 220e78 + movi a12, 127 /* 0x0000007f */ # 11e7: c2a07f + slli a2, a2, 24 # 11ea: 802201 + srai a2, a2, 24 # 11ed: 202831 +.Lbr110: addx2 a9, a5, a5 # 11f0: 509590 + slli a7, a12, 24 # 11f3: 807c01 + srai a7, a7, 24 # 11f6: 707831 + addi a5, a5, 1 # 11f9: 1b55 + addx2 a9, a9, a14 # 11fb: e09990 + l8ui a9, a9, 85 # 11fe: 920955 + extui a5, a5, 0, 8 # 1201: 505074 + slli a9, a9, 24 # 1204: 809901 + srai a9, a9, 24 # 1207: 909831 + bge a9, a7, .Lbr111 # 120a: 77a901 + mov a12, a9 # 120d: cd09 +.Lbr111: bnei a5, 4, .Lbr110 # 120f: 6645dd + movi a5, tx_rf_ana_gain # 1212: 5191ff + add a12, a2, a12 # 1215: cac2 + slli a12, a12, 24 # 1217: 80cc01 + srai a12, a12, 24 # 121a: c0c831 + beqz a13, .Lbr114 # 121d: 168d09 + movi a4, 36 /* 0x00000024 */ # 1220: 2c44 + sub a9, a12, a13 # 1222: d09cc0 + slli a9, a9, 24 # 1225: 809901 + srai a9, a9, 24 # 1228: 909831 + bge a4, a9, .Lbr112 # 122b: 97a40b + s32i a0, sp, 104 /* a0 -> [(local22)] */ # 122e: 02611a + l16ui a2, a5, 0 /* [tx_rf_ana_gain] */ # 1231: 221500 + movi a11, 996 /* 0x000003e4 */ # 1234: b2a3e4 + bltu a11, a2, .Lbr113 # 1237: 273b0e +.Lbr112: bgei a9, 12, .Lbr114 # 123a: e6a97b + l16ui a4, a5, 0 /* [tx_rf_ana_gain] */ # 123d: 421500 + movi a3, 0x00000ff3 # 1240: 3187ff + s32i a0, sp, 104 /* a0 -> [(local22)] */ # 1243: 02611a + bltu a3, a4, .Lbr114 # 1246: 47336f +.Lbr113: addi a2, sp, 32 /* (local7) */ # 1249: 22c120 + movi a3, tx_rf_ana_gain # 124c: 3185ff + movi a5, 24 /* 0x00000018 */ # 124f: 1c85 + sub a5, a5, a9 # 1251: 9055c0 + s8i a5, sp, 32 /* a5 -> [(local7)] */ # 1254: 524120 + call0 correct_rf_ana_gain # 1257: 050000 + l8ui a6, a14, 121 /* [chip6_sleep_params+0x79] */ # 125a: 620e79 + l8ui a7, sp, 32 /* [(local7)] */ # 125d: 720120 + movi a4, chip6_sleep_params+0x180 # 1260: 4181ff + movi a2, tx_rf_ana_gain # 1263: 2181ff + sub a8, a13, a12 # 1266: c08dc0 + addi a8, a8, 24 # 1269: 82c818 + l16ui a2, a2, 0 /* [tx_rf_ana_gain] */ # 126c: 221200 + l8ui a3, a4, 74 /* [chip6_sleep_params+0x1ca] */ # 126f: 32044a + slli a7, a7, 24 # 1272: 807701 + slli a6, a6, 24 # 1275: 806601 + srai a6, a6, 24 # 1278: 606831 + srai a7, a7, 24 # 127b: 707831 + slli a3, a3, 24 # 127e: 803301 + sub a5, a8, a7 # 1281: 7058c0 + add a6, a6, a5 # 1284: 5a66 + srai a3, a3, 24 # 1286: 303831 + sub a7, a7, a8 # 1289: 8077c0 + add a15, a15, a7 # 128c: 7aff + add a3, a3, a5 # 128e: 5a33 + s8i a6, a14, 121 /* a6 -> [chip6_sleep_params+0x79] */ # 1290: 624e79 + s8i a3, a4, 74 /* a3 -> [chip6_sleep_params+0x1ca] */ # 1293: 32444a + addi a3, sp, 34 /* (FP)-0x4e */ # 1296: 32c122 + movi a4, 0 /* 0x00000000 */ # 1299: 0c04 + call0 set_txdc_pbus # 129b: 050000 + movi a2, tx_rf_ana_gain # 129e: 2173ff + addi a3, sp, 34 /* (FP)-0x4e */ # 12a1: 32c122 + l16ui a2, a2, 0 /* [tx_rf_ana_gain] */ # 12a4: 221200 + call0 set_rfanagain_dc_reg # 12a7: 050000 + l32i a0, sp, 104 /* [(local22)] */ # 12aa: 02211a + movi a5, tx_rf_ana_gain # 12ad: 5171ff + movi a10, loop_pwctrl_pwdet_error_accum_high_power # 12b0: a170ff + l16ui a3, a5, 0 /* [tx_rf_ana_gain] */ # 12b3: 321500 + s16i a3, a14, 118 /* [tx_rf_ana_gain] -> [chip6_sleep_params+0x76] */ # 12b6: 325e3b +.Lbr114: sub a9, a12, a15 # 12b9: f09cc0 + movnez a15, a0, a0 # 12bc: 00f093 + slli a9, a9, 24 # 12bf: 809901 + srai a9, a9, 24 # 12c2: 909831 + slli a4, a15, 24 # 12c5: 804f01 + srai a15, a4, 24 # 12c8: 40f831 + bgez a15, .Lbr115 # 12cb: d64f00 + movi a11, 70 /* 0x00000046 */ # 12ce: 4c6b + bge a11, a9, .Lbr118 # 12d0: 97ab1e +.Lbr115: blti a15, 1, .Lbr116 # 12d3: a61f02 + bgei a9, 12, .Lbr118 # 12d6: e6a918 +.Lbr116: l32i a12, sp, 84 /* [(local17)] */ # 12d9: c22115 + l32i a13, sp, 88 /* [(local18)] */ # 12dc: d22116 + l32i a14, sp, 92 /* [(local19)] */ # 12df: e22117 + l32i a15, sp, 96 /* [(local20)] */ # 12e2: f22118 + l32i a0, sp, 80 /* [(local16)] */ # 12e5: 022114 + addi sp, sp, 112 /* (top of frame) */ # 12e8: 12c170 + ret # 12eb: 0df0 +.Lbr117: movi a0, 0 /* 0x00000000 */ # 12ed: 0c00 + j .Lbr104 # 12ef: 869fff +.Lbr118: beqz a0, .Lbr121 # 12f2: ac90 + movi a13, 8 /* 0x00000008 */ # 12f4: 0c8d + l8ui a11, a10, 3 /* [loop_pwctrl_correct_atten_high_power] */ # 12f6: b20a03 + movi a9, -8 /* 0xfffffff8 */ # 12f9: 7c89 + slli a11, a11, 24 # 12fb: 80bb01 + srai a11, a11, 24 # 12fe: b0b831 + sub a11, a11, a0 # 1301: 00bbc0 + s8i a11, a10, 3 /* a11 -> [loop_pwctrl_correct_atten_high_power] */ # 1304: b24a03 + slli a11, a11, 24 # 1307: 80bb01 + srai a11, a11, 24 # 130a: b0b831 + blt a11, a9, .Lbr119 # 130d: 972b01 + mov a9, a11 # 1310: 9d0b +.Lbr119: mov a0, a13 /* 0x00000008 */ # 1312: 0d0d + blt a13, a9, .Lbr120 # 1314: 972d01 + mov a0, a9 # 1317: 0d09 +.Lbr120: s8i a0, a10, 3 /* a0 -> [loop_pwctrl_correct_atten_high_power] */ # 1319: 024a03 + j .Lbr122 # 131c: 460b00 +.Lbr121: l8ui a3, a14, 120 /* [chip6_sleep_params+0x78] */ # 131f: 320e78 + movi a0, chip6_sleep_params+0x180 # 1322: 0155ff + l8ui a2, a14, 121 /* [chip6_sleep_params+0x79] */ # 1325: 220e79 + l8ui a13, a0, 74 /* [chip6_sleep_params+0x1ca] */ # 1328: d2004a + slli a2, a2, 24 # 132b: 802201 + slli a3, a3, 24 # 132e: 803301 + srai a3, a3, 24 # 1331: 303831 + srai a2, a2, 24 # 1334: 202831 + slli a13, a13, 24 # 1337: 80dd01 + add a2, a2, a15 # 133a: fa22 + sub a3, a3, a15 # 133c: f033c0 + s8i a3, a14, 120 /* a3 -> [chip6_sleep_params+0x78] */ # 133f: 324e78 + s8i a2, a14, 121 /* a2 -> [chip6_sleep_params+0x79] */ # 1342: 224e79 + srai a13, a13, 24 # 1345: d0d831 + add a13, a13, a15 # 1348: fadd + s8i a13, a0, 74 /* a13 -> [chip6_sleep_params+0x1ca] */ # 134a: d2404a +.Lbr122: l8ui a2, a14, 78 /* [chip6_sleep_params+0x4e] */ # 134d: 220e4e + addi a3, sp, 40 /* (FP)-0x48 */ # 1350: 32c128 + call0 tx_atten_set_interp # 1353: 0150ffc0 + # 1357: 0000 + call0 dpd_scale_set # 1359: 014fffc0 + # 135d: 0000 + l32i a15, sp, 100 /* [(local21)] */ # 135f: f22119 + beqz a15, .Lbr116 # 1362: 163ff7 + movi a2, .Lstr004 # 1365: 2145ff + l8ui a5, a14, 120 /* [chip6_sleep_params+0x78] */ # 1368: 520e78 + l8ui a3, a14, 121 /* [chip6_sleep_params+0x79] */ # 136b: 320e79 + movi a4, chip6_sleep_params+0x180 # 136e: 4144ff + slli a3, a3, 24 # 1371: 803301 + l8ui a4, a4, 74 /* [chip6_sleep_params+0x1ca] */ # 1374: 42044a + slli a5, a5, 24 # 1377: 805501 + srai a5, a5, 24 # 137a: 505831 + slli a4, a4, 24 # 137d: 804401 + srai a3, a3, 24 # 1380: 303831 + srai a4, a4, 24 # 1383: 404831 + memw # 1386: c02000 + l32i a8, sp, 60 /* [(local11)] */ # 1389: 88f1 + l32i a11, sp, 64 /* [(local12)] */ # 138b: b22110 + l32i a13, sp, 48 /* [(local8)] */ # 138e: d8c1 + movi a7, tx_rf_ana_gain # 1390: 713eff + movi a10, 0x60000200 # 1393: a13cff + l16ui a7, a7, 0 /* [tx_rf_ana_gain] */ # 1396: 721700 + l32i a6, a10, 0x360 /* [0x60000560] */ # 1399: 622ad8 + s32i a13, sp, 0 /* [(local8)] -> [(local0)] */ # 139c: d901 + l8ui a11, a11, 0 /* [[(local12)]] */ # 139e: b20b00 + s32i a11, sp, 4 /* [[(local12)]] -> [(local1)] */ # 13a1: b911 + s32i a8, sp, 8 /* [(local11)] -> [(local2)] */ # 13a3: 8921 + l8ui a9, a14, 78 /* [chip6_sleep_params+0x4e] */ # 13a5: 920e4e + slli a6, a6, 24 # 13a8: 806601 + slli a9, a9, 24 # 13ab: 809901 + srai a9, a9, 24 # 13ae: 909831 + s32i a9, sp, 12 /* a9 -> [(local3)] */ # 13b1: 9931 + srai a6, a6, 24 # 13b3: 606831 + neg a6, a6 # 13b6: 606060 + addx4 a8, a8, a10 # 13b9: a088a0 + memw # 13bc: c02000 + l32i a8, a8, 0x304 # 13bf: 8228c1 + movi a0, loop_pwctrl_pwdet_error_accum_high_power # 13c2: 0132ff + slli a8, a8, 24 # 13c5: 808801 + srai a8, a8, 24 # 13c8: 808831 + s32i a8, sp, 16 /* a8 -> [(local4)] */ # 13cb: 8941 + l8ui a0, a0, 3 /* [loop_pwctrl_correct_atten_high_power] */ # 13cd: 020003 + s32i a12, sp, 24 /* a12 -> [(local6)] */ # 13d0: c961 + slli a0, a0, 24 # 13d2: 800001 + srai a0, a0, 24 # 13d5: 000831 + s32i a0, sp, 20 /* a0 -> [(local5)] */ # 13d8: 0951 + call0 ets_printf # 13da: 0130ffc0 + # 13de: 0000 + j .Lbr116 # 13e0: 46bdff + + .literal_position # 13e4: ffffdfff + # 13e8: 000a0060 + # 13ec: ffff7fff + +# Function @ .irom0.text+0x13f0 + .balign 4 + .global tx_pwctrl_bg_init + .type tx_pwctrl_bg_init, @function +tx_pwctrl_bg_init: + movi a4, 0xffdfffff # 13f0: 41fdff + movi a6, -2 /* 0xfffffffe */ # 13f3: 7ce6 + movi a3, 0x60000a00 # 13f5: 31fcff + memw # 13f8: c02000 + l32i a2, a3, 0x35c /* [0x60000d5c] */ # 13fb: 2223d7 + and a2, a2, a4 # 13fe: 402210 + memw # 1401: c02000 + s32i a2, a3, 0x35c /* a2 -> [0x60000d5c] */ # 1404: 2263d7 + movi a11, 0xff7fffff # 1407: b1f9ff + memw # 140a: c02000 + l32i a10, a3, 0x35c /* [0x60000d5c] */ # 140d: a223d7 + and a10, a10, a11 # 1410: b0aa10 + memw # 1413: c02000 + s32i a10, a3, 0x35c /* a10 -> [0x60000d5c] */ # 1416: a263d7 + memw # 1419: c02000 + l32i a9, a3, 0x350 /* [0x60000d50] */ # 141c: 9223d4 + and a9, a9, a6 # 141f: 609910 + memw # 1422: c02000 + s32i a9, a3, 0x350 /* a9 -> [0x60000d50] */ # 1425: 9263d4 + movi a8, 2 /* 0x00000002 */ # 1428: 0c28 + memw # 142a: c02000 + l32i a7, a3, 0x360 /* [0x60000d60] */ # 142d: 7223d8 + or a7, a7, a8 # 1430: 807720 + memw # 1433: c02000 + s32i a7, a3, 0x360 /* a7 -> [0x60000d60] */ # 1436: 7263d8 + memw # 1439: c02000 + l32i a5, a3, 0x360 /* [0x60000d60] */ # 143c: 5223d8 + and a5, a5, a6 # 143f: 605510 + memw # 1442: c02000 + s32i a5, a3, 0x360 /* a5 -> [0x60000d60] */ # 1445: 5263d8 + movi a4, 1 /* 0x00000001 */ # 1448: 0c14 + memw # 144a: c02000 + l32i a2, a3, 0x360 /* [0x60000d60] */ # 144d: 2223d8 + or a2, a2, a4 # 1450: 402220 + memw # 1453: c02000 + s32i a2, a3, 0x360 /* a2 -> [0x60000d60] */ # 1456: 2263d8 + ret # 1459: 0df0 + + .literal_position # 145c: 00000000 + # 1460: 00000000 + # 1464: 000a0060 + # 1468: 00000000 + # 146c: 00000000 + # 1470: 00000000 + # 1474: 00000000 + # 1478: 00000000 + # 147c: 00000000 + # 1480: 00000000 + # 1484: 00000000 + # 1488: 00000000 + # 148c: 00000000 + # 1490: b0000000 + # 1494: 00000000 + # 1498: 00000000 + # 149c: 00000000 + # 14a0: 00000000 + # 14a4: 00000000 + # 14a8: 00000000 + # 14ac: 00000000 + # 14b0: 00000000 + +# Function @ .irom0.text+0x14b4 +# Local variables/stack: +# (local0): word @ -0x18 +# (local1): word @ -0x14 +# (local2): word @ -0x10 +# (local3): word @ -0xc +# (local4): word @ -0x8 +# (local5): word @ -0x4 + .balign 4 + .global tx_pwctrl_background + .type tx_pwctrl_background, @function +tx_pwctrl_background: + addi sp, sp, -32 /* (FP)-0x20 */ # 14b4: 12c1e0 + s32i a0, sp, 28 /* a0 -> [(local5)] */ # 14b7: 0971 + movi a0, chip6_phy_init_ctrl # 14b9: 01e8ff + l8ui a0, a0, 100 /* [chip6_phy_init_ctrl+0x64] */ # 14bc: 020064 + movi a5, 0x60000a00 # 14bf: 51e9ff + extui a0, a0, 0, 1 # 14c2: 000004 + bnez a0, .Lbr127 # 14c5: 56d00b + movi a0, chip6_sleep_params # 14c8: 01e6ff + memw # 14cb: c02000 + l32i a4, a5, 0x350 /* [0x60000d50] */ # 14ce: 4225d4 + s32i a3, sp, 20 /* arg1 -> [(local3)] */ # 14d1: 3951 + bbsi a4, 31, .Lbr126 # 14d3: f7f463 + memw # 14d6: c02000 + l32i a6, a5, 0x350 /* [0x60000d50] */ # 14d9: 6225d4 + movi a7, loop_pwctrl_pwdet_error_accum_high_power # 14dc: 71e3ff + extui a6, a6, 24, 3 # 14df: 606825 + bnez a6, .Lbr126 # 14e2: 564605 + l8ui a7, a7, 4 /* [tx_pwctrl_set_chan_flag] */ # 14e5: 720704 + bnez a7, .Lbr126 # 14e8: 56e704 + l8ui a8, a0, 78 /* [chip6_sleep_params+0x4e] */ # 14eb: 82004e + s32i a2, sp, 24 /* arg0 -> [(local4)] */ # 14ee: 2961 + bltui a8, 7, .Lbr123 # 14f0: b67802 + j .Lbr128 # 14f3: 862500 +.Lbr123: movi a3, chip6_sleep_params # 14f6: 31ddff + addi a2, a8, -1 /* [chip6_sleep_params+0x4e]-0x1 */ # 14f9: 0b28 + l16si a4, a3, 12 /* [chip6_sleep_params+0xc] */ # 14fb: 429306 + l16si a3, a3, 14 /* [chip6_sleep_params+0xe] */ # 14fe: 329307 + s32i a4, sp, 16 /* [chip6_sleep_params+0xc] -> [(local2)] */ # 1501: 4941 + sub a3, a3, a4 # 1503: 4033c0 + mull a2, a2, a3 # 1506: 302282 + movi a3, 5 /* 0x00000005 */ # 1509: 0c53 + call0 __divsi3 # 150b: 01e4ffc0 + # 150f: 0000 + l32i a0, sp, 16 /* [(local2)] */ # 1511: 0841 + add a0, a0, a2 # 1513: 2a00 + j .Lbr125 # 1515: 460000 +.Lbr124: mov a0, a9 /* [chip6_sleep_params+0x12] */ # 1518: 0d09 +.Lbr125: mov a2, sp /* (FP)-0x20 */ # 151a: 2d01 + movi a3, chip6_sleep_params+0x68 # 151c: 31d5ff + slli a4, a0, 16 # 151f: 004011 + srai a4, a4, 16 # 1522: 404031 + call0 target_power_add_backoff # 1525: 01deffc0 + # 1529: 0000 + mov a2, sp /* (FP)-0x20 */ # 152b: 2d01 + movi a3, chip6_phy_init_ctrl+0x2a # 152d: 31d1ff + movi a4, chip6_sleep_params+0x1cc # 1530: 41d2ff + l32i a5, sp, 24 /* [(local4)] */ # 1533: 5861 + l32i a6, sp, 20 /* [(local3)] */ # 1535: 6851 + call0 tx_pwctrl_cal # 1537: 050000 +.Lbr126: call0 tx_pwctrl_bg_init # 153a: 050000 + movi a3, loop_pwctrl_pwdet_error_accum_high_power # 153d: 31cfff + movi a2, 0 /* 0x00000000 */ # 1540: 0c02 + movi a0, g_phyFuns # 1542: 01cfff + s8i a2, a3, 4 /* 0x00 -> [tx_pwctrl_set_chan_flag] */ # 1545: 224304 + movi a2, chip6_sleep_params+0x180 # 1548: 21cfff + l32i a0, a0, 0 /* [g_phyFuns] */ # 154b: 0800 + l8ui a2, a2, 74 /* [chip6_sleep_params+0x1ca] */ # 154d: 22024a + l32i a0, a0, 0 /* [[g_phyFuns]] */ # 1550: 0800 + slli a2, a2, 24 # 1552: 802201 + srai a2, a2, 24 # 1555: 202831 + callx0 a0 /* [[g_phyFuns]] */ # 1558: c00000 + blti a2, 8, .Lbr127 # 155b: a68227 + movi a2, 0 /* 0x00000000 */ # 155e: 0c02 + movi a5, chip6_sleep_params+0x180 # 1560: 51caff + movi a4, 0 /* 0x00000000 */ # 1563: 0c04 + s8i a4, a5, 74 /* 0x00 -> [chip6_sleep_params+0x1ca] */ # 1565: 42454a + call0 periodic_cal_top # 1568: 01cfffc0 + # 156c: 0000 + movi a7, chip6_sleep_params # 156e: 71c7ff + l32i a3, a7, 0x1d4 /* [chip6_sleep_params+0x1d4] */ # 1571: 322775 + l32i a6, sp, 20 /* [(local3)] */ # 1574: 6851 + addi a3, a3, 1 /* [chip6_sleep_params+0x1d4]+0x1 */ # 1576: 1b33 + s32i a3, a7, 0x1d4 /* [chip6_sleep_params+0x1d4]+0x1 -> [chip6_sleep_params+0x1d4] */ # 1578: 326775 + beqz a6, .Lbr127 # 157b: 8c76 + movi a2, .Lstr005 # 157d: 21c4ff + call0 ets_printf # 1580: 01caffc0 + # 1584: 0000 +.Lbr127: l32i a0, sp, 28 /* [(local5)] */ # 1586: 0871 + addi sp, sp, 32 /* (top of frame) */ # 1588: 12c120 + ret # 158b: 0df0 +.Lbr128: bgeui a8, 12, .Lbr129 # 158d: f6a822 + movi a3, chip6_sleep_params # 1590: 31c1ff + addi a2, a8, -6 /* [chip6_sleep_params+0x4e]-0x6 */ # 1593: 22c8fa + l16si a4, a3, 14 /* [chip6_sleep_params+0xe] */ # 1596: 429307 + l16si a3, a3, 16 /* [chip6_sleep_params+0x10] */ # 1599: 329308 + s32i a4, sp, 12 /* [chip6_sleep_params+0xe] -> [(local1)] */ # 159c: 4931 + sub a3, a3, a4 # 159e: 4033c0 + mull a2, a2, a3 # 15a1: 302282 + movi a3, 5 /* 0x00000005 */ # 15a4: 0c53 + call0 __divsi3 # 15a6: 01c1ffc0 + # 15aa: 0000 + l32i a0, sp, 12 /* [(local1)] */ # 15ac: 0831 + add a0, a0, a2 # 15ae: 2a00 + j .Lbr125 # 15b0: 86d9ff +.Lbr129: l16si a9, a0, 18 /* [chip6_sleep_params+0x12] */ # 15b3: 929009 + movi a2, 13 /* 0x0000000d */ # 15b6: 0cd2 + bgeu a2, a8, .Lbr130 # 15b8: 87b202 + j .Lbr124 # 15bb: 46d6ff +.Lbr130: movi a3, chip6_sleep_params # 15be: 31b6ff + addx4 a2, a8, a8 # 15c1: 8028a0 + addi a2, a2, -55 # 15c4: 22c2c9 + l16si a3, a3, 16 /* [chip6_sleep_params+0x10] */ # 15c7: 329308 + s32i a3, sp, 8 /* [chip6_sleep_params+0x10] -> [(local0)] */ # 15ca: 3921 + sub a3, a9, a3 # 15cc: 3039c0 + mull a2, a2, a3 # 15cf: 302282 + movi a3, 22 /* 0x00000016 */ # 15d2: 1c63 + call0 __divsi3 # 15d4: 01b7ffc0 + # 15d8: 0000 + l32i a0, sp, 8 /* [(local0)] */ # 15da: 0821 + add a0, a0, a2 # 15dc: 2a00 + j .Lbr125 # 15de: 06ceff + + .literal_position # 15e4: 000a0060 + # 15e8: 000f0000 + +# Function @ .irom0.text+0x15ec +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 + .global read_sar_dout + .type read_sar_dout, @function +read_sar_dout: + movi a9, 0x60000a00 # 15ec: 91feff + movi a8, 0x00000f00 # 15ef: 81feff + movi a11, 0 /* 0x00000000 */ # 15f2: 0c0b + addi sp, sp, -16 /* (local0) */ # 15f4: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 15f7: c911 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 15f9: 0901 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 15fb: d921 + movi a0, 0 /* 0x00000000 */ # 15fd: 0c00 + movi a13, 255 /* 0x000000ff */ # 15ff: d2a0ff + movi a12, -1 /* 0xffffffff */ # 1602: 7cfc +.Lbr131: addx4 a6, a0, a9 # 1604: 9060a0 + addx2 a7, a0, a2 # 1607: 207090 + mov a5, a13 /* 0x000000ff */ # 160a: 5d0d + mov a10, a11 /* 0x00000000 */ # 160c: ad0b + memw # 160e: c02000 + movi a3, 279 /* 0x00000117 */ # 1611: 32a117 + l32i a6, a6, 0x380 # 1614: 6226e0 + addi a0, a0, 1 # 1617: 1b00 + extui a0, a0, 0, 8 # 1619: 000074 + xor a6, a6, a12 # 161c: c06630 + extui a4, a6, 0, 8 # 161f: 604074 + addi a4, a4, -21 # 1622: 42c4eb + extui a6, a6, 0, 11 # 1625: 6060a4 + s16i a6, a7, 0 # 1628: 625700 + movgez a10, a4, a4 # 162b: 40a4b3 + mull a10, a10, a3 # 162e: 30aa82 + and a3, a6, a8 # 1631: 803610 + srai a10, a10, 8 # 1634: a0a821 + blt a13, a10, .Lbr132 # 1637: a72d01 + mov a5, a10 # 163a: 5d0a +.Lbr132: add a3, a5, a3 # 163c: 3a35 + s16i a3, a7, 0 # 163e: 325700 + bnei a0, 8, .Lbr131 # 1641: 6680bf + l32i a12, sp, 4 /* [(local1)] */ # 1644: c811 + l32i a13, sp, 8 /* [(local2)] */ # 1646: d821 + l32i a0, sp, 0 /* [(local0)] */ # 1648: 0801 + addi sp, sp, 16 /* (top of frame) */ # 164a: 12c110 + ret /* arg0 */ # 164d: 0df0 + + .literal_position # 1650: 000a0060 + # 1654: 00000000 + +# Function @ .irom0.text+0x1658 +# Local variables/stack: +# (local0): hword @ -0x1e +# (local1): hword @ -0x1c +# (local2): hword @ -0x1a +# (local3): hword @ -0x18 +# (local4): hword @ -0x16 +# (local5): hword @ -0x14 +# (local6): hword @ -0x12 +# (local7): word @ -0x10 +# (local8): word @ -0xc +# (local9): word[2] @ -0x8 + .balign 4 + .global ram_get_fm_sar_dout + .type ram_get_fm_sar_dout, @function +ram_get_fm_sar_dout: + addi sp, sp, -32 /* (FP)-0x20 */ # 1658: 12c1e0 + s32i a0, sp, 24 /* a0 -> [(local9)] */ # 165b: 0961 + s32i a3, sp, 16 /* arg1 -> [(local7)] */ # 165d: 3941 + s32i a2, sp, 20 /* arg0 -> [(local8)] */ # 165f: 2951 + movi a5, -3 /* 0xfffffffd */ # 1661: 7cd5 + movi a2, 0x60000a00 # 1663: 21fbff + memw # 1666: c02000 + l32i a4, a2, 0x350 /* [0x60000d50] */ # 1669: 4222d4 + and a4, a4, a5 # 166c: 504410 + memw # 166f: c02000 + s32i a4, a2, 0x350 /* a4 -> [0x60000d50] */ # 1672: 4262d4 + movi a3, 2 /* 0x00000002 */ # 1675: 0c23 + memw # 1677: c02000 + l32i a0, a2, 0x350 /* [0x60000d50] */ # 167a: 0222d4 + or a0, a0, a3 # 167d: 300020 + memw # 1680: c02000 + s32i a0, a2, 0x350 /* a0 -> [0x60000d50] */ # 1683: 0262d4 + movi a2, 25 /* 0x00000019 */ # 1686: 1c92 + call0 ets_delay_us # 1688: 01f3ffc0 + # 168c: 0000 + mov a2, sp /* (FP)-0x20 */ # 168e: 2d01 + call0 read_sar_dout # 1690: 050000 + l32i a2, sp, 20 /* [(local8)] */ # 1693: 2851 + l16ui a0, sp, 6 /* [(local2)] */ # 1695: 021103 + l16ui a4, sp, 4 /* [(local1)] */ # 1698: 421102 + l16ui a3, sp, 2 /* [(local0)] */ # 169b: 321101 + l16ui a9, sp, 14 /* [(local6)] */ # 169e: 921107 + l16ui a7, sp, 10 /* [(local4)] */ # 16a1: 721105 + l16ui a6, sp, 8 /* [(local3)] */ # 16a4: 621104 + l16ui a8, sp, 12 /* [(local5)] */ # 16a7: 821106 + add a6, a6, a7 # 16aa: 7a66 + add a8, a8, a9 # 16ac: 9a88 + add a3, a3, a4 # 16ae: 4a33 + add a0, a0, a3 # 16b0: 3a00 + addx2 a8, a8, a8 # 16b2: 808890 + addx2 a6, a6, a6 # 16b5: 606690 + extui a6, a6, 0, 16 # 16b8: 6060f4 + extui a7, a8, 0, 16 # 16bb: 8070f4 + slli a9, a0, 1 # 16be: f09011 + extui a9, a9, 0, 16 # 16c1: 9090f4 + bltu a9, a7, .Lbr133 # 16c4: 773905 + subx2 a8, a0, a8 # 16c7: 8080d0 + j .Lbr134 # 16ca: 460000 +.Lbr133: movi a8, 0 /* 0x00000000 */ # 16cd: 0c08 +.Lbr134: s16i a8, a2, 0 /* a8 -> [[(local8)]] */ # 16cf: 825200 + l32i a0, sp, 16 /* [(local7)] */ # 16d2: 0841 + bltu a6, a7, .Lbr135 # 16d4: 773605 + sub a2, a6, a7 # 16d7: 7026c0 + j .Lbr136 # 16da: 460000 +.Lbr135: movi a2, 0 /* 0x00000000 */ # 16dd: 0c02 +.Lbr136: s16i a2, a0, 0 /* a2 -> [[(local7)]] */ # 16df: 225000 + l32i a0, sp, 24 /* [(local9)] */ # 16e2: 0861 + addi sp, sp, 32 /* (top of frame) */ # 16e4: 12c120 + ret # 16e7: 0df0 + + .literal_position # 16ec: 00000000 + # 16f0: 000a0060 + # 16f4: 00000000 + # 16f8: 00000000 + # 16fc: f13c1101 + # 1700: f33c1101 + # 1704: 00000040 + # 1708: 00000000 + # 170c: f03c1101 + # 1710: ffff0300 + # 1714: 00960060 + # 1718: 00000000 + +# Function @ .irom0.text+0x171c +# Local variables/stack: +# (local0): word @ -0x40 +# (local1): word @ -0x3c +# (local2): word @ -0x38 +# (local3): word @ -0x34 +# (local4): word @ -0x30 +# (local5): word @ -0x2c +# (local6): word @ -0x28 +# (local7): word @ -0x24 +# (local8): word @ -0x20 +# (local9): word @ -0x1c +# (local10): word @ -0x18 +# (local11): word @ -0x14 +# (local12): word @ -0x10 +# (local13): word[3] @ -0xc + .balign 4 + .global ram_cal_tos_v60 + .type ram_cal_tos_v60, @function +ram_cal_tos_v60: + extui a4, a3, 0, 16 # 171c: 3040f4 + addi sp, sp, -64 /* (local0) */ # 171f: 12c1c0 + s32i a12, sp, 24 /* a12 -> [(local6)] */ # 1722: c961 + s32i a14, sp, 32 /* a14 -> [(local8)] */ # 1724: e981 + s32i a15, sp, 36 /* a15 -> [(local9)] */ # 1726: f991 + s32i a5, sp, 52 /* arg3 -> [(local13)] */ # 1728: 59d1 + s32i a6, sp, 16 /* arg4 -> [(local4)] */ # 172a: 6941 + movi a3, 1 /* 0x00000001 */ # 172c: 0c13 + s32i a13, sp, 28 /* a13 -> [(local7)] */ # 172e: d971 + movi a13, g_phyFuns # 1730: d1efff + s32i a0, sp, 20 /* a0 -> [(local5)] */ # 1733: 0951 + l32i a0, a13, 0 /* [g_phyFuns] */ # 1735: 080d + s32i a2, sp, 12 /* arg0 -> [(local3)] */ # 1737: 2931 + l32i a0, a0, 172 /* [[g_phyFuns]+0xac] */ # 1739: 02202b + movi a2, 0 /* 0x00000000 */ # 173c: 0c02 + callx0 a0 /* [[g_phyFuns]+0xac] */ # 173e: c00000 + l32i a2, sp, 52 /* [(local13)] */ # 1741: 28d1 + movi a12, 0x60000a00 # 1743: c1ebff + beqz a2, .Lbr146 # 1746: 165212 + movi a15, 64 /* 0x00000040 */ # 1749: 4c0f + movi a14, 1 /* 0x00000001 */ # 174b: 0c1e + addi a13, a2, -4 /* [(local13)]-0x4 */ # 174d: d2c2fc + movi a7, 64 /* 0x00000040 */ # 1750: 4c07 + movi a8, 28 /* 0x0000001c */ # 1752: 1cc8 + movi a9, 0 /* 0x00000000 */ # 1754: 0c09 + movi a10, 0 /* 0x00000000 */ # 1756: 0c0a + movi a11, 0 /* 0x00000000 */ # 1758: 0c0b + s32i a11, sp, 8 /* 0x00000000 -> [(local2)] */ # 175a: b921 + s32i a10, sp, 44 /* 0x00000000 -> [(local11)] */ # 175c: a9b1 + s32i a9, sp, 48 /* 0x00000000 -> [(local12)] */ # 175e: 99c1 + s32i a8, sp, 4 /* 0x0000001c -> [(local1)] */ # 1760: 8911 + s32i a7, sp, 0 /* 0x00000040 -> [(local0)] */ # 1762: 7901 + s32i a13, sp, 40 /* [(local13)]-0x4 -> [(local10)] */ # 1764: d9a1 + movi a13, 0 /* 0x00000000 */ # 1766: 0c0d +.Lbr137: movi a2, 1 /* 0x00000001 */ # 1768: 0c12 + movi a0, g_phyFuns # 176a: 01e2ff + movi a3, 2 /* 0x00000002 */ # 176d: 0c23 + l32i a0, a0, 0 /* [g_phyFuns] */ # 176f: 0800 + l32i a4, sp, 0 /* [(local0)] */ # 1771: 4801 + l32i a0, a0, 172 /* [[g_phyFuns]+0xac] */ # 1773: 02202b + extui a4, a4, 0, 16 # 1776: 4040f4 + callx0 a0 /* [[g_phyFuns]+0xac] */ # 1779: c00000 + movi a0, g_phyFuns # 177c: 01dfff + movi a2, 0 /* 0x00000000 */ # 177f: 0c02 + l32i a0, a0, 0 /* [g_phyFuns] */ # 1781: 0800 + movi a3, 2 /* 0x00000002 */ # 1783: 0c23 + l32i a0, a0, 172 /* [[g_phyFuns]+0xac] */ # 1785: 02202b + extui a4, a15, 0, 16 # 1788: f040f4 + callx0 a0 /* [[g_phyFuns]+0xac] */ # 178b: c00000 + memw # 178e: c02000 + movi a3, 0x01113cf1 # 1791: 31daff + s32i a3, a12, 0x34c /* 0x01113cf1 -> [0x60000d4c] */ # 1794: 326cd3 + memw # 1797: c02000 + movi a2, 0x01113cf3 # 179a: 21d9ff + s32i a2, a12, 0x34c /* 0x01113cf3 -> [0x60000d4c] */ # 179d: 226cd3 + movi a2, 2 /* 0x00000002 */ # 17a0: 0c22 + call0 ets_delay_us # 17a2: 01ddffc0 + # 17a6: 0000 + l32i a0, sp, 0 /* [(local0)] */ # 17a8: 0801 + l32i a3, sp, 4 /* [(local1)] */ # 17aa: 3811 + l32i a8, sp, 8 /* [(local2)] */ # 17ac: 8821 + movi a7, 0x40000000 # 17ae: 71d5ff + movi a5, 127 /* 0x0000007f */ # 17b1: 52a07f +.Lbr138: mov a4, a13 /* 0x00000000 */ # 17b4: 4d0d + memw # 17b6: c02000 + l32i a6, a12, 0x34c /* [0x60000d4c] */ # 17b9: 622cd3 + extui a6, a6, 24, 8 # 17bc: 606875 + moveqz a4, a14, a6 # 17bf: 604e83 + bnez a4, .Lbr138 # 17c2: 56e4fe + memw # 17c5: c02000 + l32i a9, a12, 0x34c /* [0x60000d4c] */ # 17c8: 922cd3 + movi a11, 1 /* 0x00000001 */ # 17cb: 0c1b + extui a9, a9, 31, 1 # 17cd: 909f05 + xor a9, a9, a11 # 17d0: b09930 + memw # 17d3: c02000 + l32i a2, a12, 0x34c /* [0x60000d4c] */ # 17d6: 222cd3 + movi a10, 0 /* 0x00000000 */ # 17d9: 0c0a + and a2, a2, a7 # 17db: 702210 + moveqz a10, a11, a2 # 17de: 20ab83 + beqz a9, .Lbr140 # 17e1: 9c29 + mov a9, a5 /* 0x0000007f */ # 17e3: 9d05 + add a15, a3, a15 # 17e5: faf3 + slli a15, a15, 16 # 17e7: 00ff11 + srai a15, a15, 16 # 17ea: f0f031 + blt a5, a15, .Lbr139 # 17ed: f72501 + mov a9, a15 # 17f0: 9d0f +.Lbr139: mov a15, a9 # 17f2: fd09 + j .Lbr141 # 17f4: 460300 +.Lbr140: sub a2, a15, a3 # 17f7: 302fc0 + mov a15, a13 /* 0x00000000 */ # 17fa: fd0d + slli a2, a2, 16 # 17fc: 002211 + srai a2, a2, 16 # 17ff: 202031 + movgez a15, a2, a2 # 1802: 20f2b3 +.Lbr141: beqz a10, .Lbr143 # 1805: 9c2a + mov a9, a5 /* 0x0000007f */ # 1807: 9d05 + add a0, a3, a0 # 1809: 0a03 + slli a0, a0, 16 # 180b: 000011 + srai a0, a0, 16 # 180e: 000031 + blt a5, a0, .Lbr142 # 1811: 072501 + mov a9, a0 # 1814: 9d00 +.Lbr142: mov a0, a9 # 1816: 0d09 + j .Lbr144 # 1818: 460300 +.Lbr143: sub a2, a0, a3 # 181b: 3020c0 + mov a0, a13 /* 0x00000000 */ # 181e: 0d0d + slli a2, a2, 16 # 1820: 002211 + srai a2, a2, 16 # 1823: 202031 + movgez a0, a2, a2 # 1826: 2002b3 +.Lbr144: s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1829: 0901 + l32i a4, sp, 40 /* [(local10)] */ # 182b: 48a1 + addi a7, a3, -2 /* [(local1)]-0x2 */ # 182d: 72c3fe + srai a6, a3, 1 # 1830: 306121 + addi a6, a6, 1 # 1833: 1b66 + movi a3, 1 /* 0x00000001 */ # 1835: 0c13 + slli a6, a6, 24 # 1837: 806601 + srai a6, a6, 24 # 183a: 606831 + movnez a3, a6, a7 # 183d: 703693 + s32i a3, sp, 4 /* a3 -> [(local1)] */ # 1840: 3911 + blt a8, a4, .Lbr145 # 1842: 472817 + l32i a7, sp, 44 /* [(local11)] */ # 1845: 78b1 + l32i a10, sp, 48 /* [(local12)] */ # 1847: a8c1 + add a9, a7, a0 # 1849: 0a97 + add a11, a10, a15 # 184b: faba + slli a11, a11, 16 # 184d: 00bb11 + slli a9, a9, 16 # 1850: 009911 + srai a7, a9, 16 # 1853: 907031 + srai a10, a11, 16 # 1856: b0a031 + s32i a10, sp, 48 /* a10 -> [(local12)] */ # 1859: a9c1 + s32i a7, sp, 44 /* a7 -> [(local11)] */ # 185b: 79b1 +.Lbr145: l32i a10, sp, 52 /* [(local13)] */ # 185d: a8d1 + addi a8, a8, 1 /* [(local2)]+0x1 */ # 185f: 1b88 + extui a8, a8, 0, 8 # 1861: 808074 + s32i a8, sp, 8 /* a8 -> [(local2)] */ # 1864: 8921 + sub a10, a10, a8 # 1866: 80aac0 + bnez a10, .Lbr137 # 1869: 56baef + j .Lbr147 # 186c: c60100 +.Lbr146: movi a9, 0 /* 0x00000000 */ # 186f: 0c09 + movi a10, 0 /* 0x00000000 */ # 1871: 0c0a + s32i a10, sp, 44 /* 0x00000000 -> [(local11)] */ # 1873: a9b1 + s32i a9, sp, 48 /* 0x00000000 -> [(local12)] */ # 1875: 99c1 +.Lbr147: movi a2, 1 /* 0x00000001 */ # 1877: 0c12 + movi a3, 2 /* 0x00000002 */ # 1879: 0c23 + l32i a15, sp, 44 /* [(local11)] */ # 187b: f8b1 + movi a13, g_phyFuns # 187d: d1a2ff + addi a15, a15, 2 /* [(local11)]+0x2 */ # 1880: 2bff + l32i a0, a13, 0 /* [g_phyFuns] */ # 1882: 080d + extui a4, a15, 2, 16 # 1884: f042f4 + l32i a0, a0, 172 /* [[g_phyFuns]+0xac] */ # 1887: 02202b + srai a15, a15, 2 # 188a: f0f221 + callx0 a0 /* [[g_phyFuns]+0xac] */ # 188d: c00000 + movi a2, 0 /* 0x00000000 */ # 1890: 0c02 + movi a3, 2 /* 0x00000002 */ # 1892: 0c23 + l32i a14, sp, 48 /* [(local12)] */ # 1894: e8c1 + l32i a0, a13, 0 /* [g_phyFuns] */ # 1896: 080d + addi a14, a14, 2 /* [(local12)]+0x2 */ # 1898: 2bee + extui a4, a14, 2, 16 # 189a: e042f4 + l32i a0, a0, 172 /* [[g_phyFuns]+0xac] */ # 189d: 02202b + srai a14, a14, 2 # 18a0: e0e221 + callx0 a0 /* [[g_phyFuns]+0xac] */ # 18a3: c00000 + movi a2, 1 /* 0x00000001 */ # 18a6: 0c12 + l32i a0, a13, 0 /* [g_phyFuns] */ # 18a8: 080d + movi a3, 1 /* 0x00000001 */ # 18aa: 0c13 + l32i a0, a0, 172 /* [[g_phyFuns]+0xac] */ # 18ac: 02202b + movi a4, 127 /* 0x0000007f */ # 18af: 42a07f + callx0 a0 /* [[g_phyFuns]+0xac] */ # 18b2: c00000 + movi a4, 0x01113cf0 # 18b5: 4195ff + memw # 18b8: c02000 + l32i a2, sp, 12 /* [(local3)] */ # 18bb: 2831 + l32i a3, sp, 16 /* [(local4)] */ # 18bd: 3841 + s32i a4, a12, 0x34c /* 0x01113cf0 -> [0x60000d4c] */ # 18bf: 426cd3 + s8i a14, a3, 0 /* a14 -> [[(local4)]] */ # 18c2: e24300 + s8i a15, a3, 1 /* a15 -> [[(local4)]+0x1] */ # 18c5: f24301 + beqz a2, .Lbr148 # 18c8: 9cf2 + movi a9, 0x0003ffff # 18ca: 9191ff + slli a7, a14, 18 # 18cd: e07e01 + slli a8, a15, 25 # 18d0: 708f01 + movi a6, 0x60009600 # 18d3: 6190ff + memw # 18d6: c02000 + l32i a5, a6, 0x264 /* [0x60009864] */ # 18d9: 522699 + and a5, a5, a9 # 18dc: 905510 + or a5, a5, a8 # 18df: 805520 + or a5, a5, a7 # 18e2: 705520 + memw # 18e5: c02000 + s32i a5, a6, 0x264 /* a5 -> [0x60009864] */ # 18e8: 526699 +.Lbr148: l32i a12, sp, 24 /* [(local6)] */ # 18eb: c861 + l32i a13, sp, 28 /* [(local7)] */ # 18ed: d871 + l32i a14, sp, 32 /* [(local8)] */ # 18ef: e881 + l32i a15, sp, 36 /* [(local9)] */ # 18f1: f891 + l32i a0, sp, 20 /* [(local5)] */ # 18f3: 0851 + addi sp, sp, 64 /* (top of frame) */ # 18f5: 12c140 + ret /* [(local3)] */ # 18f8: 0df0 + + .balign 4 +# Function @ .irom0.text+0x18fc + .balign 4 + .global ram_get_bb_atten + .type ram_get_bb_atten, @function +ram_get_bb_atten: + movi a4, 0 /* 0x00000000 */ # 18fc: 0c04 + addi a5, a2, 8 /* arg0+0x8 */ # 18fe: 8b52 + movi a2, 127 /* 0x0000007f */ # 1900: 22a07f + subx4 a5, a5, a3 # 1903: 3055e0 + slli a5, a5, 16 # 1906: 005511 + srai a5, a5, 16 # 1909: 505031 + movgez a4, a5, a5 # 190c: 5045b3 + slli a4, a4, 16 # 190f: 004411 + srai a3, a4, 16 # 1912: 403031 + bgei a3, 128, .Lbr149 # 1915: e6e301 + mov a2, a3 # 1918: 2d03 +.Lbr149: slli a2, a2, 24 # 191a: 802201 + srai a2, a2, 24 # 191d: 202831 + ret # 1920: 0df0 + + .literal_position # 1924: 00000000 + # 1928: 00000000 + # 192c: 00000000 + # 1930: 00000000 + # 1934: 00000000 + # 1938: 00000000 + # 193c: c8000000 + # 1940: e4000000 + # 1944: 00000000 + # 1948: 00000000 + # 194c: 00000000 + # 1950: 00000000 + # 1954: 00000000 + # 1958: 00000000 + +# Function @ .irom0.text+0x195c +# Local variables/stack: +# (local0): word @ -0x50 +# (local1): word @ -0x4c +# (local2): word[2] @ -0x48 +# (local3): byte[4] @ -0x40 +# (local4): word @ -0x3c +# (local5): word @ -0x38 +# (local6): word @ -0x34 +# (local7): word @ -0x30 +# (local8): word @ -0x2c +# (local9): word @ -0x28 +# (local10): word @ -0x24 +# (local11): word @ -0x20 +# (local12): word @ -0x1c +# (local13): word @ -0x18 +# (local14): word @ -0x14 +# (local15): word[4] @ -0x10 + .balign 4 + .global ram_rfcal_txcap + .type ram_rfcal_txcap, @function +ram_rfcal_txcap: + movi a7, 0 /* 0x00000000 */ # 195c: 0c07 + addi sp, sp, -80 /* (local0) */ # 195e: 12c1b0 + s32i a14, sp, 32 /* a14 -> [(local7)] */ # 1961: e981 + s32i a15, sp, 36 /* a15 -> [(local8)] */ # 1963: f991 + s32i a13, sp, 28 /* a13 -> [(local6)] */ # 1965: d971 + s32i a0, sp, 20 /* a0 -> [(local4)] */ # 1967: 0951 + s32i a12, sp, 24 /* a12 -> [(local5)] */ # 1969: c961 + s32i a6, sp, 40 /* arg4 -> [(local9)] */ # 196b: 69a1 + s32i a4, sp, 56 /* arg2 -> [(local13)] */ # 196d: 49e1 + s32i a5, sp, 64 /* arg3 -> [(local15)] */ # 196f: 526110 + movi a4, 9 /* 0x00000009 */ # 1972: 0c94 + movi a5, 7 /* 0x00000007 */ # 1974: 0c75 + movi a6, 0 /* 0x00000000 */ # 1976: 0c06 + mov a12, a3 /* arg1 */ # 1978: cd03 + movi a0, g_phyFuns # 197a: 01eaff + mov a13, a2 /* arg0 */ # 197d: dd02 + l32i a0, a0, 0 /* [g_phyFuns] */ # 197f: 0800 + movi a2, 119 /* 0x00000077 */ # 1981: 22a077 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 1984: 022027 + movi a3, 0 /* 0x00000000 */ # 1987: 0c03 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 1989: c00000 + mov a4, a12 /* arg1 */ # 198c: 4d0c + mov a3, a13 /* arg0 */ # 198e: 3d0d + movi a5, 0 /* 0x00000000 */ # 1990: 0c05 + movi a6, 0 /* 0x00000000 */ # 1992: 0c06 + movi a0, g_phyFuns # 1994: 01e5ff + movi a2, 0 /* 0x00000000 */ # 1997: 0c02 + s32i a2, sp, 0 /* 0x00000000 -> [(local0)] */ # 1999: 2901 + s32i a2, sp, 4 /* 0x00000000 -> [(local1)] */ # 199b: 2911 + s32i a2, sp, 8 /* 0x00000000 -> [(local2)] */ # 199d: 2921 + l32i a0, a0, 0 /* [g_phyFuns] */ # 199f: 0800 + movi a7, 0 /* 0x00000000 */ # 19a1: 0c07 + l32i a0, a0, 104 /* [[g_phyFuns]+0x68] */ # 19a3: 02201a + movi a2, 1 /* 0x00000001 */ # 19a6: 0c12 + callx0 a0 /* [[g_phyFuns]+0x68] */ # 19a8: c00000 + movi a12, 0 /* 0x00000000 */ # 19ab: 0c0c + movi a3, 3 /* 0x00000003 */ # 19ad: 0c33 + l8ui a5, sp, 16 /* [(local3)] */ # 19af: 520110 + s32i a5, sp, 44 /* [(local3)] -> [(local10)] */ # 19b2: 59b1 + s32i a3, sp, 48 /* 0x00000003 -> [(local11)] */ # 19b4: 39c1 +.Lbr150: movi a13, 0 /* 0x00000000 */ # 19b6: 0c0d + movi a15, 0 /* 0x00000000 */ # 19b8: 0c0f + l32i a9, sp, 40 /* [(local9)] */ # 19ba: 98a1 + movi a8, 0 /* 0x00000000 */ # 19bc: 0c08 + beqz a12, .Lbr151 # 19be: 8c4c + beqi a12, 1, .Lbr152 # 19c0: 261c09 + bnei a12, 2, .Lbr153 # 19c3: 662c0a +.Lbr151: movi a6, 7 /* 0x00000007 */ # 19c6: 0c76 + s32i a6, sp, 44 /* 0x00000007 -> [(local10)] */ # 19c8: 69b1 + j .Lbr153 # 19ca: c60000 +.Lbr152: movi a7, 15 /* 0x0000000f */ # 19cd: 0cf7 + s32i a7, sp, 44 /* 0x0000000f -> [(local10)] */ # 19cf: 79b1 +.Lbr153: l32i a10, sp, 44 /* [(local10)] */ # 19d1: a8b1 + add a9, a9, a12 # 19d3: ca99 + s32i a9, sp, 52 /* a9 -> [(local12)] */ # 19d5: 99d1 + s8i a8, a9, 0 # 19d7: 824900 + addi a10, a10, 1 /* [(local10)]+0x1 */ # 19da: 1baa + s32i a10, sp, 60 /* [(local10)]+0x1 -> [(local14)] */ # 19dc: a9f1 +.Lbr154: beqz a12, .Lbr156 # 19de: bcac + beqi a12, 1, .Lbr155 # 19e0: 261c1d + bnei a12, 2, .Lbr157 # 19e3: 662c53 + movi a2, 107 /* 0x0000006b */ # 19e6: 22a06b + movi a3, 2 /* 0x00000002 */ # 19e9: 0c23 + movi a4, 2 /* 0x00000002 */ # 19eb: 0c24 + movi a0, g_phyFuns # 19ed: 01cfff + movi a5, 6 /* 0x00000006 */ # 19f0: 0c65 + l32i a0, a0, 0 /* [g_phyFuns] */ # 19f2: 0800 + movi a6, 4 /* 0x00000004 */ # 19f4: 0c46 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 19f6: 022027 + mov a7, a13 # 19f9: 7d0d + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 19fb: c00000 + j .Lbr157 # 19fe: 060e00 +.Lbr155: movi a2, 107 /* 0x0000006b */ # 1a01: 22a06b + movi a3, 2 /* 0x00000002 */ # 1a04: 0c23 + movi a4, 2 /* 0x00000002 */ # 1a06: 0c24 + movi a0, g_phyFuns # 1a08: 01caff + movi a5, 3 /* 0x00000003 */ # 1a0b: 0c35 + l32i a0, a0, 0 /* [g_phyFuns] */ # 1a0d: 0800 + movi a6, 0 /* 0x00000000 */ # 1a0f: 0c06 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 1a11: 022027 + mov a7, a13 # 1a14: 7d0d + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 1a16: c00000 + j .Lbr157 # 1a19: 460700 +.Lbr156: movi a2, 107 /* 0x0000006b */ # 1a1c: 22a06b + movi a3, 2 /* 0x00000002 */ # 1a1f: 0c23 + movi a4, 1 /* 0x00000001 */ # 1a21: 0c14 + movi a5, 3 /* 0x00000003 */ # 1a23: 0c35 + movi a6, 0 /* 0x00000000 */ # 1a25: 0c06 + movi a0, g_phyFuns # 1a27: 01c3ff + movi a7, 1 /* 0x00000001 */ # 1a2a: 0c17 + l32i a0, a0, 0 /* [g_phyFuns] */ # 1a2c: 0800 + addx2 a7, a13, a7 # 1a2e: 707d90 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 1a31: 022027 + extui a7, a7, 0, 8 # 1a34: 707074 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 1a37: c00000 +.Lbr157: movi a0, g_phyFuns # 1a3a: 01bfff + l32i a0, a0, 0 /* [g_phyFuns] */ # 1a3d: 0800 + l32i a2, sp, 56 /* [(local13)] */ # 1a3f: 28e1 + l32i a0, a0, 112 /* [[g_phyFuns]+0x70] */ # 1a41: 02201c + movi a3, 10 /* 0x0000000a */ # 1a44: 0ca3 + callx0 a0 /* [[g_phyFuns]+0x70] */ # 1a46: c00000 + mov a14, a2 # 1a49: ed02 + l32i a2, sp, 64 /* [(local15)] */ # 1a4b: 222110 + beqz a2, .Lbr158 # 1a4e: 8cb2 + movi a2, .Lstr006 # 1a50: 21bbff + mov a3, a13 # 1a53: 3d0d + mov a4, a14 # 1a55: 4d0e + call0 ets_printf # 1a57: 01bfffc0 + # 1a5b: 0000 +.Lbr158: bge a15, a14, .Lbr159 # 1a5d: e7af0e + mov a15, a14 # 1a60: fd0e + l32i a4, sp, 52 /* [(local12)] */ # 1a62: 48d1 + movi a3, 1 /* 0x00000001 */ # 1a64: 0c13 + addx2 a3, a13, a3 # 1a66: 303d90 + movnez a3, a13, a12 # 1a69: c03d93 + s8i a3, a4, 0 /* a3 -> [[(local12)]] */ # 1a6c: 324400 +.Lbr159: l32i a4, sp, 60 /* [(local14)] */ # 1a6f: 48f1 + addi a13, a13, 1 # 1a71: 1bdd + extui a13, a13, 0, 8 # 1a73: d0d074 + sub a4, a4, a13 # 1a76: d044c0 + bnez a4, .Lbr154 # 1a79: 5614f6 + l32i a14, sp, 64 /* [(local15)] */ # 1a7c: e22110 + beqz a14, .Lbr160 # 1a7f: 8cee + movi a2, .Lstr007 # 1a81: 21afff + l32i a4, sp, 52 /* [(local12)] */ # 1a84: 48d1 + mov a3, a12 # 1a86: 3d0c + l8ui a4, a4, 0 /* [[(local12)]] */ # 1a88: 420400 + call0 ets_printf # 1a8b: 01b3ffc0 + # 1a8f: 0000 +.Lbr160: beqz a12, .Lbr161 # 1a91: ac2c + beqi a12, 1, .Lbr163 # 1a93: 261c65 + bnei a12, 2, .Lbr162 # 1a96: 662c38 + movi a2, 107 /* 0x0000006b */ # 1a99: 22a06b + movi a3, 2 /* 0x00000002 */ # 1a9c: 0c23 + movi a4, 2 /* 0x00000002 */ # 1a9e: 0c24 + movi a5, 6 /* 0x00000006 */ # 1aa0: 0c65 + movi a0, g_phyFuns # 1aa2: 01a8ff + movi a6, 4 /* 0x00000004 */ # 1aa5: 0c46 + l32i a0, a0, 0 /* [g_phyFuns] */ # 1aa7: 0800 + l32i a7, sp, 52 /* [(local12)] */ # 1aa9: 78d1 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 1aab: 022027 + l8ui a7, a7, 0 /* [[(local12)]] */ # 1aae: 720700 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 1ab1: c00000 + j .Lbr162 # 1ab4: 860600 +.Lbr161: movi a2, 107 /* 0x0000006b */ # 1ab7: 22a06b + movi a3, 2 /* 0x00000002 */ # 1aba: 0c23 + movi a4, 1 /* 0x00000001 */ # 1abc: 0c14 + movi a5, 3 /* 0x00000003 */ # 1abe: 0c35 + movi a0, g_phyFuns # 1ac0: 01a2ff + movi a6, 0 /* 0x00000000 */ # 1ac3: 0c06 + l32i a0, a0, 0 /* [g_phyFuns] */ # 1ac5: 0800 + l32i a7, sp, 52 /* [(local12)] */ # 1ac7: 78d1 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 1ac9: 022027 + l8ui a7, a7, 0 /* [[(local12)]] */ # 1acc: 720700 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 1acf: c00000 +.Lbr162: l32i a2, sp, 48 /* [(local11)] */ # 1ad2: 28c1 + addi a12, a12, 1 # 1ad4: 1bcc + extui a12, a12, 0, 8 # 1ad6: c0c074 + addi a2, a2, -1 /* [(local11)]-0x1 */ # 1ad9: 0b22 + s32i a2, sp, 48 /* [(local11)]-0x1 -> [(local11)] */ # 1adb: 29c1 + bnez a2, .Lbr150 # 1add: 5652ed + movi a0, g_phyFuns # 1ae0: 019bff + l32i a0, a0, 0 /* [g_phyFuns] */ # 1ae3: 0800 + l32i a0, a0, 108 /* [[g_phyFuns]+0x6c] */ # 1ae5: 02201b + movi a2, 1 /* 0x00000001 */ # 1ae8: 0c12 + callx0 a0 /* [[g_phyFuns]+0x6c] */ # 1aea: c00000 + l32i a12, sp, 24 /* [(local5)] */ # 1aed: c861 + l32i a13, sp, 28 /* [(local6)] */ # 1aef: d871 + l32i a14, sp, 32 /* [(local7)] */ # 1af1: e881 + l32i a15, sp, 36 /* [(local8)] */ # 1af3: f891 + l32i a0, sp, 20 /* [(local4)] */ # 1af5: 0851 + addi sp, sp, 80 /* (top of frame) */ # 1af7: 12c150 + ret # 1afa: 0df0 +.Lbr163: movi a2, 107 /* 0x0000006b */ # 1afc: 22a06b + movi a3, 2 /* 0x00000002 */ # 1aff: 0c23 + movi a4, 2 /* 0x00000002 */ # 1b01: 0c24 + movi a5, 3 /* 0x00000003 */ # 1b03: 0c35 + movi a0, g_phyFuns # 1b05: 0192ff + movi a6, 0 /* 0x00000000 */ # 1b08: 0c06 + l32i a0, a0, 0 /* [g_phyFuns] */ # 1b0a: 0800 + l32i a7, sp, 52 /* [(local12)] */ # 1b0c: 78d1 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 1b0e: 022027 + l8ui a7, a7, 0 /* [[(local12)]] */ # 1b11: 720700 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 1b14: c00000 + j .Lbr162 # 1b17: c6edff + + .literal_position # 1b1c: 00000000 + # 1b20: 00000000 + # 1b24: 00000000 + # 1b28: 00000000 + # 1b2c: fc000000 + # 1b30: 00000000 + # 1b34: 00000000 + # 1b38: 00000000 + # 1b3c: 00000000 + +# Function @ .irom0.text+0x1b40 +# Local variables/stack: +# (local0): word @ -0x60 +# (local1): word @ -0x5c +# (local2): word[2] @ -0x58 +# (local3): word @ -0x50 +# (local4): word @ -0x4c +# (local5): word @ -0x48 +# (local6): word @ -0x44 +# (local7): word @ -0x40 +# (local8): word @ -0x3c +# (local9): word @ -0x38 +# (local10): word @ -0x34 +# (local11): word @ -0x30 +# (local12): word @ -0x2c +# (local13): word @ -0x28 +# (local14): word @ -0x24 +# (local15): word @ -0x20 +# (local16): word @ -0x1c +# (local17): word @ -0x18 +# (local18): word @ -0x14 +# (local19): word @ -0x10 +# (local20): word[3] @ -0xc + .balign 4 + .global ram_rfcal_pwrctrl + .type ram_rfcal_pwrctrl, @function +ram_rfcal_pwrctrl: + addi sp, sp, -96 /* (local0) */ # 1b40: 12c1a0 + s32i a15, sp, 32 /* a15 -> [(local7)] */ # 1b43: f981 + s32i a0, sp, 16 /* a0 -> [(local3)] */ # 1b45: 0941 + s32i a13, sp, 24 /* a13 -> [(local5)] */ # 1b47: d961 + s32i a12, sp, 20 /* a12 -> [(local4)] */ # 1b49: c951 + s32i a14, sp, 28 /* a14 -> [(local6)] */ # 1b4b: e971 + s32i a7, sp, 52 /* arg5 -> [(local12)] */ # 1b4d: 79d1 + s32i a5, sp, 56 /* arg3 -> [(local13)] */ # 1b4f: 59e1 + s32i a3, sp, 44 /* arg1 -> [(local10)] */ # 1b51: 39b1 + s32i a4, sp, 48 /* arg2 -> [(local11)] */ # 1b53: 49c1 + movi a3, 0 /* 0x00000000 */ # 1b55: 0c03 + movi a4, 9 /* 0x00000009 */ # 1b57: 0c94 + movi a5, 7 /* 0x00000007 */ # 1b59: 0c75 + movi a7, 0 /* 0x00000000 */ # 1b5b: 0c07 + mov a14, a6 /* arg4 */ # 1b5d: ed06 + movi a12, g_phyFuns # 1b5f: c1efff + mov a13, a2 /* arg0 */ # 1b62: dd02 + l32i a0, a12, 0 /* [g_phyFuns] */ # 1b64: 080c + movi a2, 119 /* 0x00000077 */ # 1b66: 22a077 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 1b69: 022027 + movi a6, 0 /* 0x00000000 */ # 1b6c: 0c06 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 1b6e: c00000 + l32i a2, sp, 48 /* [(local11)] */ # 1b71: 28c1 + beqz a2, .Lbr174 # 1b73: 167215 + movi a15, -128 /* 0xffffff80 */ # 1b76: f2af80 + movi a11, 0 /* 0x00000000 */ # 1b79: 0c0b + extui a6, a14, 0, 3 # 1b7b: e06024 + extui a5, a14, 3, 2 # 1b7e: e05314 + s32i a13, sp, 36 /* arg0 -> [(local8)] */ # 1b81: d991 + l16ui a3, sp, 96 /* [(local21)] */ # 1b83: 321130 + l8ui a4, sp, 100 /* [(FP)+0x4] */ # 1b86: 420164 + movi a8, 0 /* 0x00000000 */ # 1b89: 0c08 + s32i a8, sp, 84 /* 0x00000000 -> [(local20)] */ # 1b8b: 826115 + s32i a4, sp, 40 /* [(FP)+0x4] -> [(local9)] */ # 1b8e: 49a1 + s32i a3, sp, 80 /* [(local21)] -> [(local19)] */ # 1b90: 326114 + movi a13, 127 /* 0x0000007f */ # 1b93: d2a07f + addx2 a5, a5, a5 # 1b96: 505590 + movi a14, 0 /* 0x00000000 */ # 1b99: 0c0e + addx2 a5, a5, a6 # 1b9b: 605590 + extui a5, a5, 0, 8 # 1b9e: 505074 + s32i a5, sp, 60 /* a5 -> [(local14)] */ # 1ba1: 59f1 +.Lbr164: l32i a10, sp, 84 /* [(local20)] */ # 1ba3: a22115 + l32i a9, sp, 44 /* [(local10)] */ # 1ba6: 98b1 + s32i a11, sp, 72 /* 0x00000000 -> [(local17)] */ # 1ba8: b26112 + add a9, a9, a10 # 1bab: aa99 + l32i a10, sp, 56 /* [(local13)] */ # 1bad: a8e1 + l8ui a9, a9, 0 # 1baf: 920900 + s32i a9, sp, 68 /* a9 -> [(local16)] */ # 1bb2: 926111 + sub a9, a9, a10 # 1bb5: a099c0 + s32i a9, sp, 64 /* a9 -> [(local15)] */ # 1bb8: 926110 +.Lbr165: l32i a3, sp, 64 /* [(local15)] */ # 1bbb: 322110 + l32i a2, sp, 60 /* [(local14)] */ # 1bbe: 28f1 + sub a3, a3, a14 # 1bc0: e033c0 + slli a3, a3, 24 # 1bc3: 803301 + srai a3, a3, 24 # 1bc6: 303831 + call0 ram_get_bb_atten # 1bc9: 050000 + movi a0, 0 /* 0x00000000 */ # 1bcc: 0c00 + movgez a0, a2, a2 # 1bce: 2002b3 + slli a12, a0, 24 # 1bd1: 80c001 + srai a12, a12, 24 # 1bd4: c0c831 + bge a13, a12, .Lbr166 # 1bd7: c7ad04 + addi a12, a13, -1 # 1bda: 0bcd + j .Lbr167 # 1bdc: 060100 +.Lbr166: bge a12, a15, .Lbr167 # 1bdf: f7ac01 + addi a12, a15, 1 # 1be2: 1bcf +.Lbr167: movi a2, 1 /* 0x00000001 */ # 1be4: 0c12 + l32i a3, sp, 36 /* [(local8)] */ # 1be6: 3891 + extui a4, a12, 0, 8 # 1be8: c04074 + movi a5, 0 /* 0x00000000 */ # 1beb: 0c05 + movi a0, g_phyFuns # 1bed: 01ccff + movi a6, 0 /* 0x00000000 */ # 1bf0: 0c06 + s32i a6, sp, 0 /* 0x00000000 -> [(local0)] */ # 1bf2: 6901 + s32i a6, sp, 4 /* 0x00000000 -> [(local1)] */ # 1bf4: 6911 + s32i a6, sp, 8 /* 0x00000000 -> [(local2)] */ # 1bf6: 6921 + l32i a0, a0, 0 /* [g_phyFuns] */ # 1bf8: 0800 + movi a7, 0 /* 0x00000000 */ # 1bfa: 0c07 + l32i a0, a0, 104 /* [[g_phyFuns]+0x68] */ # 1bfc: 02201a + movi a6, 0 /* 0x00000000 */ # 1bff: 0c06 + callx0 a0 /* [[g_phyFuns]+0x68] */ # 1c01: c00000 + movi a0, g_phyFuns # 1c04: 01c8ff + l32i a0, a0, 0 /* [g_phyFuns] */ # 1c07: 0800 + l32i a0, a0, 44 /* [[g_phyFuns]+0x2c] */ # 1c09: 08b0 + l32i a2, sp, 80 /* [(local19)] */ # 1c0b: 222114 + callx0 a0 /* [[g_phyFuns]+0x2c] */ # 1c0e: c00000 + movi a0, g_phyFuns # 1c11: 01c5ff + l32i a0, a0, 0 /* [g_phyFuns] */ # 1c14: 0800 + s32i a2, sp, 76 /* a2 -> [(local18)] */ # 1c16: 226113 + l32i a0, a0, 44 /* [[g_phyFuns]+0x2c] */ # 1c19: 08b0 + l32i a2, sp, 80 /* [(local19)] */ # 1c1b: 222114 + callx0 a0 /* [[g_phyFuns]+0x2c] */ # 1c1e: c00000 + l32i a0, sp, 76 /* [(local18)] */ # 1c21: 022113 + l32i a6, sp, 68 /* [(local16)] */ # 1c24: 622111 + add a0, a0, a2 # 1c27: 2a00 + slli a0, a0, 16 # 1c29: 000011 + srai a0, a0, 16 # 1c2c: 000031 + addi a0, a0, 4 # 1c2f: 4b00 + srai a0, a0, 3 # 1c31: 000321 + sub a6, a0, a6 # 1c34: 6060c0 + slli a6, a6, 16 # 1c37: 006611 + srai a6, a6, 16 # 1c3a: 606031 + bgei a6, 1, .Lbr168 # 1c3d: e61608 + slli a13, a12, 24 # 1c40: 80dc01 + srai a13, a13, 24 # 1c43: d0d831 + j .Lbr169 # 1c46: 460100 +.Lbr168: slli a15, a12, 24 # 1c49: 80fc01 + srai a15, a15, 24 # 1c4c: f0f831 +.Lbr169: beqz a6, .Lbr171 # 1c4f: ac46 + beqi a6, -1, .Lbr171 # 1c51: 260622 + slli a2, a12, 24 # 1c54: 802c01 + srai a2, a2, 24 # 1c57: 202831 + bnez a2, .Lbr170 # 1c5a: cc12 + bltz a6, .Lbr171 # 1c5c: 967601 +.Lbr170: addi a3, a15, 1 # 1c5f: 1b3f + beq a13, a3, .Lbr171 # 1c61: 371d12 + l32i a4, sp, 72 /* [(local17)] */ # 1c64: 422112 + add a14, a6, a14 # 1c67: eae6 + addi a5, a4, 1 /* [(local17)]+0x1 */ # 1c69: 1b54 + extui a4, a5, 0, 8 # 1c6b: 504074 + s32i a4, sp, 72 /* a4 -> [(local17)] */ # 1c6e: 426112 + addi a4, a4, -10 # 1c71: 42c4f6 + bnez a4, .Lbr165 # 1c74: 5634f4 +.Lbr171: l32i a9, sp, 40 /* [(local9)] */ # 1c77: 98a1 + l32i a11, sp, 84 /* [(local20)] */ # 1c79: b22115 + l32i a7, sp, 56 /* [(local13)] */ # 1c7c: 78e1 + l32i a10, sp, 52 /* [(local12)] */ # 1c7e: a8d1 + sub a7, a12, a7 # 1c80: 707cc0 + add a10, a10, a11 # 1c83: baaa + slli a6, a7, 24 # 1c85: 806701 + srai a6, a6, 24 # 1c88: 606831 + s8i a7, a10, 0 # 1c8b: 724a00 + movi a7, -24 /* 0xffffffe8 */ # 1c8e: 6c87 + bge a6, a7, .Lbr172 # 1c90: 77a606 + movi a6, -24 /* 0xffffffe8 */ # 1c93: 6c86 + movi a8, -24 /* 0xffffffe8 */ # 1c95: 6c88 + s8i a8, a10, 0 # 1c97: 824a00 +.Lbr172: beqz a9, .Lbr173 # 1c9a: 9c39 + l32i a4, sp, 68 /* [(local16)] */ # 1c9c: 422111 + movi a2, .Lstr008 # 1c9f: 21a3ff + l32i a3, sp, 84 /* [(local20)] */ # 1ca2: 322115 + slli a5, a0, 24 # 1ca5: 805001 + srai a5, a5, 24 # 1ca8: 505831 + call0 ets_printf # 1cab: 01a4ffc0 + # 1caf: 0000 +.Lbr173: movi a15, -128 /* 0xffffff80 */ # 1cb1: f2af80 + movi a13, 127 /* 0x0000007f */ # 1cb4: d2a07f + movi a14, 0 /* 0x00000000 */ # 1cb7: 0c0e + movi a11, 0 /* 0x00000000 */ # 1cb9: 0c0b + l32i a7, sp, 84 /* [(local20)] */ # 1cbb: 722115 + l32i a6, sp, 48 /* [(local11)] */ # 1cbe: 68c1 + addi a8, a7, 1 /* [(local20)]+0x1 */ # 1cc0: 1b87 + extui a7, a8, 0, 8 # 1cc2: 807074 + s32i a7, sp, 84 /* a7 -> [(local20)] */ # 1cc5: 726115 + sub a6, a6, a7 # 1cc8: 7066c0 + bnez a6, .Lbr164 # 1ccb: 5646ed +.Lbr174: movi a12, g_phyFuns # 1cce: c198ff + movi a9, 50 /* 0x00000032 */ # 1cd1: 3c29 + l32i a3, sp, 52 /* [(local12)] */ # 1cd3: 38d1 + l32i a2, sp, 48 /* [(local11)] */ # 1cd5: 28c1 + l8ui a10, a3, 0 /* [[(local12)]] */ # 1cd7: a20300 + add a2, a2, a3 # 1cda: 3a22 + slli a10, a10, 24 # 1cdc: 80aa01 + addi a2, a2, -128 # 1cdf: 22c280 + l8ui a0, a2, 127 # 1ce2: 02027f + srai a10, a10, 24 # 1ce5: a0a831 + slli a0, a0, 24 # 1ce8: 800001 + srai a0, a0, 24 # 1ceb: 000831 + sub a10, a0, a10 # 1cee: a0a0c0 + bge a9, a10, .Lbr175 # 1cf1: a7a905 + addi a4, a0, -50 # 1cf4: 42c0ce + s8i a4, a3, 0 /* a4 -> [[(local12)]] */ # 1cf7: 424300 +.Lbr175: movi a6, chip6_phy_init_ctrl # 1cfa: 618eff + l8ui a6, a6, 94 /* [chip6_phy_init_ctrl+0x5e] */ # 1cfd: 62065e + beqz a6, .Lbr177 # 1d00: bc66 + l32i a5, sp, 48 /* [(local11)] */ # 1d02: 58c1 + addi a5, a5, -1 /* [(local11)]-0x1 */ # 1d04: 0b55 + blti a5, 1, .Lbr177 # 1d06: a61530 + movi a6, chip6_sleep_params # 1d09: 618bff + movi a7, 0 /* 0x00000000 */ # 1d0c: 0c07 + l32i a4, sp, 48 /* [(local11)] */ # 1d0e: 48c1 + s32i a7, sp, 84 /* 0x00000000 -> [(local20)] */ # 1d10: 726115 + add a4, a4, a6 # 1d13: 6a44 +.Lbr176: l32i a8, sp, 84 /* [(local20)] */ # 1d15: 822115 + l8ui a11, a4, 103 # 1d18: b20467 + add a13, a8, a6 # 1d1b: 6ad8 + l8ui a13, a13, 104 # 1d1d: d20d68 + l8ui a10, a2, 127 # 1d20: a2027f + sub a11, a11, a13 # 1d23: d0bbc0 + add a10, a10, a11 # 1d26: baaa + l32i a11, sp, 52 /* [(local12)] */ # 1d28: b8d1 + addi a9, a8, 1 /* [(local20)]+0x1 */ # 1d2a: 1b98 + add a11, a11, a8 # 1d2c: 8abb + s8i a10, a11, 0 # 1d2e: a24b00 + extui a8, a9, 0, 8 # 1d31: 908074 + s32i a8, sp, 84 /* a8 -> [(local20)] */ # 1d34: 826115 + bne a5, a8, .Lbr176 # 1d37: 8795da +.Lbr177: l32i a0, a12, 0 /* [g_phyFuns] */ # 1d3a: 080c + l32i a0, a0, 108 /* [[g_phyFuns]+0x6c] */ # 1d3c: 02201b + movi a2, 1 /* 0x00000001 */ # 1d3f: 0c12 + callx0 a0 /* [[g_phyFuns]+0x6c] */ # 1d41: c00000 + l32i a12, sp, 20 /* [(local4)] */ # 1d44: c851 + l32i a13, sp, 24 /* [(local5)] */ # 1d46: d861 + l32i a14, sp, 28 /* [(local6)] */ # 1d48: e871 + l32i a15, sp, 32 /* [(local7)] */ # 1d4a: f881 + l32i a0, sp, 16 /* [(local3)] */ # 1d4c: 0841 + addi sp, sp, 96 /* (local21) */ # 1d4e: 12c160 + ret # 1d51: 0df0 + + .literal_position # 1d54: 00020060 + # 1d58: 44010000 + # 1d5c: 00020060 + # 1d60: 00000000 + # 1d64: 00000000 + # 1d68: 00000000 + # 1d6c: 00000000 + # 1d70: 00000000 + # 1d74: 00000000 + # 1d78: 00000000 + # 1d7c: 00000000 + # 1d80: 00000000 + +# Function @ .irom0.text+0x1d84 +# Local variables/stack: +# (local0): word @ -0x60 +# (local1): word @ -0x5c +# (local2): word @ -0x58 +# (local3): word @ -0x54 +# (local4): word @ -0x50 +# (local5): word @ -0x4c +# (local6): word @ -0x48 +# (local7): word @ -0x44 +# (local8): word @ -0x40 +# (local9): word @ -0x3c +# (local10): word @ -0x38 +# (local11): word @ -0x34 +# (local12): word @ -0x30 +# (local13): word @ -0x2c +# (local14): word @ -0x28 +# (local15): word @ -0x24 +# (local16): word @ -0x20 +# (local17): word @ -0x1c +# (local18): word @ -0x18 +# (local19): word @ -0x14 +# (local20): word @ -0x10 +# (local21): word[3] @ -0xc + .balign 4 + .global ram_rxiq_get_mis + .type ram_rxiq_get_mis, @function +ram_rxiq_get_mis: + addi a8, a2, -2 /* arg0-0x2 */ # 1d84: 82c2fe + addi sp, sp, -96 /* (local0) */ # 1d87: 12c1a0 + s32i a12, sp, 40 /* a12 -> [(local10)] */ # 1d8a: c9a1 + s32i a14, sp, 48 /* a14 -> [(local12)] */ # 1d8c: e9c1 + s32i a15, sp, 52 /* a15 -> [(local13)] */ # 1d8e: f9d1 + s32i a0, sp, 36 /* a0 -> [(local9)] */ # 1d90: 0991 + s32i a6, sp, 56 /* arg4 -> [(local14)] */ # 1d92: 69e1 + s32i a5, sp, 76 /* arg3 -> [(local19)] */ # 1d94: 526113 + s32i a13, sp, 44 /* a13 -> [(local11)] */ # 1d97: d9b1 + s32i a8, sp, 4 /* arg0-0x2 -> [(local1)] */ # 1d99: 8911 + movi a13, 0x60000200 # 1d9b: d1eeff + memw # 1d9e: c02000 + l32i a9, a13, 0x380 /* [0x60000580] */ # 1da1: 922de0 + ssr a8 # 1da4: 000840 + sra a9, a9 # 1da7: 9090b1 + memw # 1daa: c02000 + l32i a10, a13, 0x38c /* [0x6000058c] */ # 1dad: a22de3 + ssr a8 # 1db0: 000840 + sra a10, a10 # 1db3: a0a0b1 + sub a15, a9, a10 # 1db6: a0f9c0 + memw # 1db9: c02000 + l32i a6, a13, 0x388 /* [0x60000588] */ # 1dbc: 622de2 + ssr a8 # 1dbf: 000840 + sra a6, a6 # 1dc2: 6060b1 + memw # 1dc5: c02000 + s32i a7, sp, 0 /* arg5 -> [(local0)] */ # 1dc8: 7901 + l32i a0, a13, 0x384 /* [0x60000584] */ # 1dca: 022de1 + ssr a8 # 1dcd: 000840 + add a9, a9, a10 # 1dd0: aa99 + mov a2, a9 # 1dd2: 2d09 + l32i a8, sp, 56 /* [(local14)] */ # 1dd4: 88e1 + sra a0, a0 # 1dd6: 0000b1 + add a14, a6, a0 # 1dd9: 0ae6 + xor a8, a5, a8 # 1ddb: 808530 + sub a0, a0, a6 # 1dde: 6000c0 + mov a12, a0 # 1de1: cd00 + xor a6, a3, a4 # 1de3: 406330 + xor a6, a6, a8 # 1de6: 806630 + extui a6, a6, 0, 8 # 1de9: 606074 + beqz a6, .Lbr178 # 1dec: 8c66 + mov a12, a14 # 1dee: cd0e + mov a2, a15 # 1df0: 2d0f + mov a14, a0 # 1df2: ed00 + mov a15, a9 # 1df4: fd09 +.Lbr178: s32i a2, sp, 64 /* a2 -> [(local16)] */ # 1df6: 226110 + srai a13, a12, 31 # 1df9: c0df31 + mov a4, a2 # 1dfc: 4d02 + srai a5, a2, 31 # 1dfe: 205f31 + s32i a5, sp, 60 /* a5 -> [(local15)] */ # 1e01: 59f1 + mov a3, a5 # 1e03: 3d05 + call0 __muldi3 # 1e05: 01d6ffc0 + # 1e09: 0000 + mov a5, a13 # 1e0b: 5d0d + mov a4, a12 # 1e0d: 4d0c + s32i a3, sp, 12 /* a3 -> [(local3)] */ # 1e0f: 3931 + s32i a2, sp, 16 /* a2 -> [(local4)] */ # 1e11: 2941 + mov a3, a13 # 1e13: 3d0d + mov a2, a12 # 1e15: 2d0c + call0 __muldi3 # 1e17: 01d3ffc0 + # 1e1b: 0000 + movi a6, 0 /* 0x00000000 */ # 1e1d: 0c06 + movi a0, 1 /* 0x00000001 */ # 1e1f: 0c10 + movi a7, 0 /* 0x00000000 */ # 1e21: 0c07 + l32i a5, sp, 12 /* [(local3)] */ # 1e23: 5831 + l32i a11, sp, 16 /* [(local4)] */ # 1e25: b841 + add a5, a5, a3 # 1e27: 3a55 + add a4, a11, a2 # 1e29: 2a4b + moveqz a7, a0, a4 # 1e2b: 407083 + bgeu a4, a11, .Lbr179 # 1e2e: b7b401 + addi a5, a5, 1 # 1e31: 1b55 +.Lbr179: mov a11, a4 # 1e33: bd04 + mov a10, a5 # 1e35: ad05 + moveqz a6, a0, a5 # 1e37: 506083 + bnone a6, a7, .Lbr180 # 1e3a: 770603 + mov a11, a0 /* 0x00000001 */ # 1e3d: bd00 + movi a10, 0 /* 0x00000000 */ # 1e3f: 0c0a +.Lbr180: mov a4, a15 # 1e41: 4d0f + s32i a15, sp, 24 /* a15 -> [(local6)] */ # 1e43: f961 + s32i a14, sp, 72 /* a14 -> [(local18)] */ # 1e45: e26112 + l32i a3, sp, 60 /* [(local15)] */ # 1e48: 38f1 + l32i a2, sp, 64 /* [(local16)] */ # 1e4a: 222110 + s32i a10, sp, 80 /* a10 -> [(local20)] */ # 1e4d: a26114 + s32i a11, sp, 84 /* a11 -> [(local21)] */ # 1e50: b26115 + srai a8, a14, 31 # 1e53: e08f31 + srai a5, a15, 31 # 1e56: f05f31 + s32i a5, sp, 20 /* a5 -> [(local5)] */ # 1e59: 5951 + s32i a8, sp, 68 /* a8 -> [(local17)] */ # 1e5b: 826111 + call0 __muldi3 # 1e5e: 01c2ffc0 + # 1e62: 0000 + l32i a14, sp, 84 /* [(local21)] */ # 1e64: e22115 + l32i a15, sp, 80 /* [(local20)] */ # 1e67: f22114 + l32i a5, sp, 68 /* [(local17)] */ # 1e6a: 522111 + l32i a4, sp, 72 /* [(local18)] */ # 1e6d: 422112 + s32i a3, sp, 28 /* a3 -> [(local7)] */ # 1e70: 3971 + s32i a2, sp, 32 /* a2 -> [(local8)] */ # 1e72: 2981 + mov a3, a13 # 1e74: 3d0d + mov a2, a12 # 1e76: 2d0c + call0 __muldi3 # 1e78: 01bdffc0 + # 1e7c: 0000 + l32i a0, sp, 28 /* [(local7)] */ # 1e7e: 0871 + sub a0, a0, a3 # 1e80: 3000c0 + l32i a3, sp, 32 /* [(local8)] */ # 1e83: 3881 + sub a10, a3, a2 # 1e85: 20a3c0 + bgeu a3, a10, .Lbr181 # 1e88: a7b301 + addi a0, a0, -1 # 1e8b: 0b00 +.Lbr181: slli a2, a10, 9 # 1e8d: 702a11 + mov a5, a15 /* [(local20)] */ # 1e90: 5d0f + mov a4, a14 /* [(local21)] */ # 1e92: 4d0e + ssai 23 # 1e94: 104740 + src a3, a0, a10 # 1e97: a03081 + call0 __divdi3 # 1e9a: 01b5ffc0 + # 1e9e: 0000 + l32i a3, sp, 0 /* [(local0)] */ # 1ea0: 3801 + slli a4, a2, 24 # 1ea2: 804201 + l32i a5, sp, 56 /* [(local14)] */ # 1ea5: 58e1 + srai a4, a4, 24 # 1ea7: 404831 + addi a4, a4, 1 # 1eaa: 1b44 + srai a4, a4, 1 # 1eac: 404121 + neg a2, a4 # 1eaf: 402060 + moveqz a2, a4, a5 # 1eb2: 502483 + l32i a5, sp, 20 /* [(local5)] */ # 1eb5: 5851 + l32i a4, sp, 24 /* [(local6)] */ # 1eb7: 4861 + s8i a2, a3, 0 /* a2 -> [[(local0)]] */ # 1eb9: 224300 + s32i a2, sp, 8 /* a2 -> [(local2)] */ # 1ebc: 2921 + mov a3, a13 # 1ebe: 3d0d + mov a2, a12 # 1ec0: 2d0c + call0 __muldi3 # 1ec2: 01acffc0 + # 1ec6: 0000 + l32i a5, sp, 68 /* [(local17)] */ # 1ec8: 522111 + l32i a4, sp, 72 /* [(local18)] */ # 1ecb: 422112 + mov a13, a3 # 1ece: dd03 + mov a12, a2 # 1ed0: cd02 + l32i a3, sp, 60 /* [(local15)] */ # 1ed2: 38f1 + l32i a2, sp, 64 /* [(local16)] */ # 1ed4: 222110 + call0 __muldi3 # 1ed7: 01a8ffc0 + # 1edb: 0000 + add a0, a13, a3 # 1edd: 3a0d + add a2, a12, a2 # 1edf: 2a2c + bgeu a2, a12, .Lbr182 # 1ee1: c7b201 + addi a0, a0, 1 # 1ee4: 1b00 +.Lbr182: mov a4, a14 /* [(local21)] */ # 1ee6: 4d0e + mov a5, a15 /* [(local20)] */ # 1ee8: 5d0f + l32i a12, sp, 0 /* [(local0)] */ # 1eea: c801 + ssai 23 # 1eec: 104740 + l32i a13, sp, 76 /* [(local19)] */ # 1eef: d22113 + src a3, a0, a2 # 1ef2: 203081 + slli a2, a2, 9 # 1ef5: 702211 + call0 __divdi3 # 1ef8: 01a1ffc0 + # 1efc: 0000 + l8ui a5, sp, 96 /* [(local22)] */ # 1efe: 520160 + slli a6, a2, 24 # 1f01: 806201 + srai a6, a6, 24 # 1f04: 606831 + addi a6, a6, 1 # 1f07: 1b66 + srai a6, a6, 1 # 1f09: 606121 + neg a0, a6 # 1f0c: 600060 + moveqz a0, a6, a13 # 1f0f: d00683 + s8i a0, a12, 1 /* a0 -> [[(local0)]+0x1] */ # 1f12: 024c01 + beqz a5, .Lbr183 # 1f15: ac65 + movi a2, .Lstr009 # 1f17: 2190ff + memw # 1f1a: c02000 + movi a3, 0x60000200 # 1f1d: 318fff + l32i a4, sp, 4 /* [(local1)] */ # 1f20: 4811 + slli a5, a0, 24 # 1f22: 805001 + srai a5, a5, 24 # 1f25: 505831 + ssr a4 # 1f28: 000440 + l32i a3, a3, 0x3e4 /* [0x600005e4] */ # 1f2b: 3223f9 + l32i a4, sp, 8 /* [(local2)] */ # 1f2e: 4821 + sra a3, a3 # 1f30: 3030b1 + slli a4, a4, 24 # 1f33: 804401 + srai a4, a4, 24 # 1f36: 404831 + call0 ets_printf # 1f39: 0191ffc0 + # 1f3d: 0000 +.Lbr183: l32i a12, sp, 40 /* [(local10)] */ # 1f3f: c8a1 + l32i a13, sp, 44 /* [(local11)] */ # 1f41: d8b1 + l32i a14, sp, 48 /* [(local12)] */ # 1f43: e8c1 + l32i a15, sp, 52 /* [(local13)] */ # 1f45: f8d1 + l32i a0, sp, 36 /* [(local9)] */ # 1f47: 0891 + addi sp, sp, 96 /* (local22) */ # 1f49: 12c160 + ret # 1f4c: 0df0 + + .literal_position # 1f50: 00000000 + # 1f54: 00400000 + # 1f58: 00000000 + # 1f5c: 00000000 + +# Function @ .irom0.text+0x1f60 +# Local variables/stack: +# (local0): word[4] @ -0x50 +# (local1): byte @ -0x40 +# (local2): byte @ -0x3f +# (local3): byte @ -0x3e +# (local4): byte @ -0x3d +# (local5): word @ -0x3c +# (local6): word @ -0x38 +# (local7): word @ -0x34 +# (local8): word @ -0x30 +# (local9): word @ -0x2c +# (local10): word @ -0x28 +# (local11): word @ -0x24 +# (local12): word @ -0x20 +# (local13): word @ -0x1c +# (local14): word @ -0x18 +# (local15): word @ -0x14 +# (local16): word @ -0x10 +# (local17): word @ -0xc +# (local18): word @ -0x8 +# (local19): word @ -0x4 + .balign 4 + .global ram_rxiq_cover_mg_mp + .type ram_rxiq_cover_mg_mp, @function +ram_rxiq_cover_mg_mp: + mov a9, a3 /* arg1 */ # 1f60: 9d03 + addi sp, sp, -80 /* (local0) */ # 1f62: 12c1b0 + s32i a7, sp, 28 /* arg5 -> [(local7)] */ # 1f65: 7971 + s32i a4, sp, 20 /* arg2 -> [(local5)] */ # 1f67: 4951 + s32i a6, sp, 72 /* arg4 -> [(local18)] */ # 1f69: 626112 + s32i a5, sp, 68 /* arg3 -> [(local17)] */ # 1f6c: 526111 + s32i a0, sp, 32 /* a0 -> [(local8)] */ # 1f6f: 0981 + s32i a2, sp, 64 /* arg0 -> [(local16)] */ # 1f71: 226110 + s32i a15, sp, 48 /* a15 -> [(local12)] */ # 1f74: f9c1 + s32i a13, sp, 40 /* a13 -> [(local10)] */ # 1f76: d9a1 + s32i a14, sp, 44 /* a14 -> [(local11)] */ # 1f78: e9b1 + s32i a12, sp, 36 /* a12 -> [(local9)] */ # 1f7a: c991 + movi a14, 0 /* 0x00000000 */ # 1f7c: 0c0e + movi a12, 0 /* 0x00000000 */ # 1f7e: 0c0c + movi a13, g_phyFuns # 1f80: d1f4ff + l8ui a15, sp, 84 /* [(FP)+0x4] */ # 1f83: f20154 + s32i a9, sp, 24 /* arg1 -> [(local6)] */ # 1f86: 9961 + movi a2, 2 /* 0x00000002 */ # 1f88: 0c22 + l32i a0, sp, 64 /* [(local16)] */ # 1f8a: 022110 + s32i a2, sp, 76 /* 0x00000002 -> [(local19)] */ # 1f8d: 226113 + l32i a5, sp, 72 /* [(local18)] */ # 1f90: 522112 + l32i a6, sp, 68 /* [(local17)] */ # 1f93: 622111 + s8i a6, sp, 16 /* [(local17)] -> [(local1)] */ # 1f96: 624110 + s8i a5, sp, 17 /* [(local18)] -> [(local2)] */ # 1f99: 524111 + movi a2, 1 /* 0x00000001 */ # 1f9c: 0c12 + ssl a0 # 1f9e: 001040 + sll a2, a2 # 1fa1: 0022a1 + l8ui a0, sp, 88 /* [(FP)+0x8] */ # 1fa4: 020158 + s32i a0, sp, 56 /* [(FP)+0x8] -> [(local14)] */ # 1fa7: 09e1 + extui a2, a2, 0, 16 # 1fa9: 2020f4 + s32i a2, sp, 52 /* a2 -> [(local13)] */ # 1fac: 29d1 +.Lbr184: movi a4, 1 /* 0x00000001 */ # 1fae: 0c14 + mov a5, a15 /* [(FP)+0x4] */ # 1fb0: 5d0f + movi a3, 128 /* 0x00000080 */ # 1fb2: 32a080 + l32i a0, a13, 0 /* [g_phyFuns] */ # 1fb5: 080d + mul16s a2, a12, a12 # 1fb7: c02cd1 + l32i a0, a0, 248 /* [[g_phyFuns]+0xf8] */ # 1fba: 02203e + add a2, a2, a3 # 1fbd: 3a22 + srai a2, a2, 8 # 1fbf: 202821 + addi a3, sp, 16 /* (local1) */ # 1fc2: 32c110 + s32i a2, sp, 60 /* a2 -> [(local15)] */ # 1fc5: 29f1 + sub a2, a14, a2 # 1fc7: 202ec0 + slli a2, a2, 24 # 1fca: 802201 + srai a2, a2, 24 # 1fcd: 202831 + callx0 a0 /* [[g_phyFuns]+0xf8] */ # 1fd0: c00000 + addi a3, sp, 17 /* (local2) */ # 1fd3: 32c111 + movi a4, 0 /* 0x00000000 */ # 1fd6: 0c04 + mov a5, a15 /* [(FP)+0x4] */ # 1fd8: 5d0f + l32i a0, a13, 0 /* [g_phyFuns] */ # 1fda: 080d + mov a14, a2 # 1fdc: ed02 + l32i a0, a0, 248 /* [[g_phyFuns]+0xf8] */ # 1fde: 02203e + mov a2, a12 # 1fe1: 2d0c + callx0 a0 /* [[g_phyFuns]+0xf8] */ # 1fe3: c00000 + l32i a3, sp, 52 /* [(local13)] */ # 1fe6: 38d1 + l32i a0, a13, 0 /* [g_phyFuns] */ # 1fe8: 080d + mov a12, a2 # 1fea: cd02 + l32i a0, a0, 52 /* [[g_phyFuns]+0x34] */ # 1fec: 08d0 + movi a2, 1 /* 0x00000001 */ # 1fee: 0c12 + callx0 a0 /* [[g_phyFuns]+0x34] */ # 1ff0: c00000 + l32i a2, sp, 64 /* [(local16)] */ # 1ff3: 222110 + l32i a3, sp, 24 /* [(local6)] */ # 1ff6: 3861 + l8ui a5, sp, 17 /* [(local2)] */ # 1ff8: 520111 + l32i a8, sp, 68 /* [(local17)] */ # 1ffb: 822111 + l8ui a6, sp, 16 /* [(local1)] */ # 1ffe: 620110 + movi a9, 1 /* 0x00000001 */ # 2001: 0c19 + sub a6, a6, a8 # 2003: 8066c0 + l32i a8, sp, 72 /* [(local18)] */ # 2006: 822112 + movnez a6, a9, a6 # 2009: 606993 + s8i a6, sp, 16 /* a6 -> [(local1)] */ # 200c: 624110 + sub a5, a5, a8 # 200f: 8055c0 + l32i a8, sp, 56 /* [(local14)] */ # 2012: 88e1 + movnez a5, a9, a5 # 2014: 505993 + s8i a5, sp, 17 /* a5 -> [(local2)] */ # 2017: 524111 + s32i a8, sp, 0 /* [(local14)] -> [(local0)] */ # 201a: 8901 + l32i a0, a13, 0 /* [g_phyFuns] */ # 201c: 080d + l32i a4, sp, 20 /* [(local5)] */ # 201e: 4851 + l32i a0, a0, 72 /* [[g_phyFuns]+0x48] */ # 2020: 022012 + addi a7, sp, 18 /* (local3) */ # 2023: 72c112 + callx0 a0 /* [[g_phyFuns]+0x48] */ # 2026: c00000 + l32i a2, sp, 60 /* [(local15)] */ # 2029: 28f1 + l8ui a0, sp, 18 /* [(local3)] */ # 202b: 020112 + add a2, a14, a2 # 202e: 2a2e + slli a14, a0, 24 # 2030: 80e001 + l8ui a0, sp, 19 /* [(local4)] */ # 2033: 020113 + srai a14, a14, 24 # 2036: e0e831 + add a14, a14, a2 # 2039: 2aee + slli a0, a0, 24 # 203b: 800001 + slli a14, a14, 24 # 203e: 80ee01 + srai a14, a14, 24 # 2041: e0e831 + srai a0, a0, 24 # 2044: 000831 + sub a12, a12, a0 # 2047: 00ccc0 + l32i a0, a13, 0 /* [g_phyFuns] */ # 204a: 080d + slli a12, a12, 24 # 204c: 80cc01 + l32i a0, a0, 48 /* [[g_phyFuns]+0x30] */ # 204f: 08c0 + srai a12, a12, 24 # 2051: c0c831 + callx0 a0 /* [[g_phyFuns]+0x30] */ # 2054: c00000 + l32i a3, sp, 76 /* [(local19)] */ # 2057: 322113 + addi a3, a3, -1 /* [(local19)]-0x1 */ # 205a: 0b33 + s32i a3, sp, 76 /* [(local19)]-0x1 -> [(local19)] */ # 205c: 326113 + bnez a3, .Lbr184 # 205f: 56b3f4 + l8ui a2, sp, 18 /* [(local3)] */ # 2062: 220112 + l32i a0, a13, 0 /* [g_phyFuns] */ # 2065: 080d + slli a2, a2, 24 # 2067: 802201 + l32i a0, a0, 0 /* [[g_phyFuns]] */ # 206a: 0800 + srai a2, a2, 24 # 206c: 202831 + callx0 a0 /* [[g_phyFuns]] */ # 206f: c00000 + bgei a2, 5, .Lbr185 # 2072: e65212 + l8ui a2, sp, 19 /* [(local4)] */ # 2075: 220113 + l32i a0, a13, 0 /* [g_phyFuns] */ # 2078: 080d + slli a2, a2, 24 # 207a: 802201 + l32i a0, a0, 0 /* [[g_phyFuns]] */ # 207d: 0800 + srai a2, a2, 24 # 207f: 202831 + callx0 a0 /* [[g_phyFuns]] */ # 2082: c00000 + blti a2, 5, .Lbr186 # 2085: a65217 +.Lbr185: movi a7, 0x00004000 # 2088: 71b3ff + movi a4, check_result # 208b: 41b3ff + movi a6, loop_pwctrl_pwdet_error_accum_high_power # 208e: 61b3ff + l32i a3, a4, 0 /* [check_result] */ # 2091: 3804 + l8ui a5, a6, 5 /* [rxiq_cover_fail_num] */ # 2093: 520605 + or a3, a3, a7 # 2096: 703320 + addi a5, a5, 1 /* [rxiq_cover_fail_num]+0x1 */ # 2099: 1b55 + s8i a5, a6, 5 /* [rxiq_cover_fail_num]+0x1 -> [rxiq_cover_fail_num] */ # 209b: 524605 + s32i a3, a4, 0 /* a3 -> [check_result] */ # 209e: 3904 +.Lbr186: movi a2, 15 /* 0x0000000f */ # 20a0: 0cf2 + movi a0, -15 /* 0xfffffff1 */ # 20a2: 7c10 + blt a14, a0, .Lbr187 # 20a4: 072e01 + mov a0, a14 # 20a7: 0d0e +.Lbr187: blt a2, a0, .Lbr188 # 20a9: 072201 + mov a2, a0 # 20ac: 2d00 +.Lbr188: movi a0, -31 /* 0xffffffe1 */ # 20ae: 6c10 + slli a14, a2, 24 # 20b0: 80e201 + srai a14, a14, 24 # 20b3: e0e831 + movi a2, 31 /* 0x0000001f */ # 20b6: 1cf2 + blt a12, a0, .Lbr189 # 20b8: 072c01 + mov a0, a12 # 20bb: 0d0c +.Lbr189: blt a2, a0, .Lbr190 # 20bd: 072201 + mov a2, a0 # 20c0: 2d00 +.Lbr190: addi a3, sp, 16 /* (local1) */ # 20c2: 32c110 + movi a4, 1 /* 0x00000001 */ # 20c5: 0c14 + mov a5, a15 /* [(FP)+0x4] */ # 20c7: 5d0f + slli a12, a2, 24 # 20c9: 80c201 + l32i a0, a13, 0 /* [g_phyFuns] */ # 20cc: 080d + srai a12, a12, 24 # 20ce: c0c831 + l32i a0, a0, 248 /* [[g_phyFuns]+0xf8] */ # 20d1: 02203e + mov a2, a14 # 20d4: 2d0e + callx0 a0 /* [[g_phyFuns]+0xf8] */ # 20d6: c00000 + mov a5, a15 /* [(FP)+0x4] */ # 20d9: 5d0f + mov a2, a12 # 20db: 2d0c + l32i a0, a13, 0 /* [g_phyFuns] */ # 20dd: 080d + addi a3, sp, 17 /* (local2) */ # 20df: 32c111 + l32i a0, a0, 248 /* [[g_phyFuns]+0xf8] */ # 20e2: 02203e + movi a4, 0 /* 0x00000000 */ # 20e5: 0c04 + callx0 a0 /* [[g_phyFuns]+0xf8] */ # 20e7: c00000 + l32i a0, sp, 32 /* [(local8)] */ # 20ea: 0881 + l32i a13, sp, 40 /* [(local10)] */ # 20ec: d8a1 + l32i a15, sp, 48 /* [(local12)] */ # 20ee: f8c1 + l32i a3, sp, 28 /* [(local7)] */ # 20f0: 3871 + l32i a2, sp, 80 /* [(local20)] */ # 20f2: 222114 + s8i a14, a3, 0 /* a14 -> [[(local7)]] */ # 20f5: e24300 + s8i a12, a2, 0 /* a12 -> [[(local20)]] */ # 20f8: c24200 + l32i a14, sp, 44 /* [(local11)] */ # 20fb: e8b1 + l32i a12, sp, 36 /* [(local9)] */ # 20fd: c891 + addi sp, sp, 80 /* (local20) */ # 20ff: 12c150 + ret /* [(local20)] */ # 2102: 0df0 + + .literal_position # 2104: 00000000 + +# Function @ .irom0.text+0x2108 +# Local variables/stack: +# (local0): word @ -0x50 +# (local1): word @ -0x4c +# (local2): word[2] @ -0x48 +# (local3): byte @ -0x40 +# (local4): byte @ -0x3f +# (local5): byte @ -0x3e +# (local6): byte @ -0x3d +# (local7): word @ -0x3c +# (local8): word @ -0x38 +# (local9): word @ -0x34 +# (local10): word @ -0x30 +# (local11): word @ -0x2c +# (local12): word @ -0x28 +# (local13): word @ -0x24 +# (local14): word @ -0x20 +# (local15): word @ -0x1c +# (local16): word @ -0x18 +# (local17): word @ -0x14 +# (local18): word @ -0x10 +# (local19): word @ -0xc +# (local20): word @ -0x8 +# (local21): word @ -0x4 + .balign 4 + .global ram_rfcal_rxiq + .type ram_rfcal_rxiq, @function +ram_rfcal_rxiq: + mov a9, a5 /* arg3 */ # 2108: 9d05 + mov a10, a3 /* arg1 */ # 210a: ad03 + addi sp, sp, -80 /* (local0) */ # 210c: 12c1b0 + s32i a13, sp, 56 /* a13 -> [(local16)] */ # 210f: d9e1 + s32i a14, sp, 60 /* a14 -> [(local17)] */ # 2111: e9f1 + s32i a7, sp, 32 /* arg5 -> [(local10)] */ # 2113: 7981 + movi a3, 0 /* 0x00000000 */ # 2115: 0c03 + movi a5, 0 /* 0x00000000 */ # 2117: 0c05 + s32i a15, sp, 64 /* a15 -> [(local18)] */ # 2119: f26110 + s32i a0, sp, 48 /* a0 -> [(local14)] */ # 211c: 09c1 + s32i a12, sp, 52 /* a12 -> [(local15)] */ # 211e: c9d1 + s32i a6, sp, 76 /* arg4 -> [(local21)] */ # 2120: 626113 + s32i a2, sp, 20 /* arg0 -> [(local7)] */ # 2123: 2951 + s32i a4, sp, 24 /* arg2 -> [(local8)] */ # 2125: 4961 + movi a2, 119 /* 0x00000077 */ # 2127: 22a077 + movi a4, 16 /* 0x00000010 */ # 212a: 1c04 + movi a6, 0 /* 0x00000000 */ # 212c: 0c06 + movi a12, g_phyFuns # 212e: c1f5ff + s32i a10, sp, 68 /* arg1 -> [(local19)] */ # 2131: a26111 + l32i a0, a12, 0 /* [g_phyFuns] */ # 2134: 080c + s32i a9, sp, 72 /* arg3 -> [(local20)] */ # 2136: 926112 + l32i a0, a0, 148 /* [[g_phyFuns]+0x94] */ # 2139: 022025 + l32i a15, sp, 76 /* [(local21)] */ # 213c: f22113 + callx0 a0 /* [[g_phyFuns]+0x94] */ # 213f: c00000 + movi a3, 0 /* 0x00000000 */ # 2142: 0c03 + movi a4, 15 /* 0x0000000f */ # 2144: 0cf4 + movi a5, 6 /* 0x00000006 */ # 2146: 0c65 + movi a6, 6 /* 0x00000006 */ # 2148: 0c66 + l32i a0, a12, 0 /* [g_phyFuns] */ # 214a: 080c + mov a14, a2 # 214c: ed02 + l32i a0, a0, 148 /* [[g_phyFuns]+0x94] */ # 214e: 022025 + movi a2, 119 /* 0x00000077 */ # 2151: 22a077 + callx0 a0 /* [[g_phyFuns]+0x94] */ # 2154: c00000 + movi a3, 0 /* 0x00000000 */ # 2157: 0c03 + movi a4, 24 /* 0x00000018 */ # 2159: 1c84 + movi a5, 5 /* 0x00000005 */ # 215b: 0c55 + movi a6, 5 /* 0x00000005 */ # 215d: 0c56 + l32i a0, a12, 0 /* [g_phyFuns] */ # 215f: 080c + mov a13, a2 # 2161: dd02 + l32i a0, a0, 148 /* [[g_phyFuns]+0x94] */ # 2163: 022025 + movi a2, 119 /* 0x00000077 */ # 2166: 22a077 + callx0 a0 /* [[g_phyFuns]+0x94] */ # 2169: c00000 + movi a3, 0 /* 0x00000000 */ # 216c: 0c03 + movi a4, 24 /* 0x00000018 */ # 216e: 1c84 + movi a5, 3 /* 0x00000003 */ # 2170: 0c35 + movi a6, 3 /* 0x00000003 */ # 2172: 0c36 + l32i a0, a12, 0 /* [g_phyFuns] */ # 2174: 080c + s32i a2, sp, 36 /* a2 -> [(local11)] */ # 2176: 2991 + l32i a0, a0, 148 /* [[g_phyFuns]+0x94] */ # 2178: 022025 + movi a2, 119 /* 0x00000077 */ # 217b: 22a077 + callx0 a0 /* [[g_phyFuns]+0x94] */ # 217e: c00000 + movi a3, 0 /* 0x00000000 */ # 2181: 0c03 + movi a4, 9 /* 0x00000009 */ # 2183: 0c94 + movi a5, 7 /* 0x00000007 */ # 2185: 0c75 + movi a6, 0 /* 0x00000000 */ # 2187: 0c06 + l32i a0, a12, 0 /* [g_phyFuns] */ # 2189: 080c + s32i a2, sp, 40 /* a2 -> [(local12)] */ # 218b: 29a1 + l32i a0, a0, 148 /* [[g_phyFuns]+0x94] */ # 218d: 022025 + movi a2, 119 /* 0x00000077 */ # 2190: 22a077 + callx0 a0 /* [[g_phyFuns]+0x94] */ # 2193: c00000 + l32i a0, a12, 0 /* [g_phyFuns] */ # 2196: 080c + s32i a2, sp, 28 /* a2 -> [(local9)] */ # 2198: 2971 + l32i a0, a0, 64 /* [[g_phyFuns]+0x40] */ # 219a: 022010 + movi a2, 1 /* 0x00000001 */ # 219d: 0c12 + callx0 a0 /* [[g_phyFuns]+0x40] */ # 219f: c00000 + s8i a14, sp, 16 /* a14 -> [(local3)] */ # 21a2: e24110 + s8i a13, sp, 17 /* a13 -> [(local4)] */ # 21a5: d24111 + beqz a15, .Lbr191 # 21a8: 8ccf + l32i a0, a12, 0 /* [g_phyFuns] */ # 21aa: 080c + addi a2, sp, 16 /* (local3) */ # 21ac: 22c110 + l32i a0, a0, 0x114 /* [[g_phyFuns]+0x114] */ # 21af: 022045 + addi a3, sp, 17 /* (local4) */ # 21b2: 32c111 + callx0 a0 /* [[g_phyFuns]+0x114] */ # 21b5: c00000 +.Lbr191: movi a2, 119 /* 0x00000077 */ # 21b8: 22a077 + movi a3, 0 /* 0x00000000 */ # 21bb: 0c03 + movi a4, 16 /* 0x00000010 */ # 21bd: 1c04 + movi a5, 2 /* 0x00000002 */ # 21bf: 0c25 + l32i a0, a12, 0 /* [g_phyFuns] */ # 21c1: 080c + movi a6, 2 /* 0x00000002 */ # 21c3: 0c26 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 21c5: 022027 + movi a7, 1 /* 0x00000001 */ # 21c8: 0c17 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 21ca: c00000 + s32i a14, sp, 44 /* a14 -> [(local13)] */ # 21cd: e9b1 + movi a2, 119 /* 0x00000077 */ # 21cf: 22a077 + movi a3, 0 /* 0x00000000 */ # 21d2: 0c03 + movi a4, 24 /* 0x00000018 */ # 21d4: 1c84 + movi a5, 7 /* 0x00000007 */ # 21d6: 0c75 + l32i a0, a12, 0 /* [g_phyFuns] */ # 21d8: 080c + movi a7, 1 /* 0x00000001 */ # 21da: 0c17 + l8ui a9, sp, 16 /* [(local3)] */ # 21dc: 920110 + l8ui a8, sp, 17 /* [(local4)] */ # 21df: 820111 + sub a9, a9, a14 # 21e2: e099c0 + sub a8, a8, a13 # 21e5: d088c0 + movnez a8, a7, a8 # 21e8: 808793 + movnez a9, a7, a9 # 21eb: 909793 + s8i a9, sp, 16 /* a9 -> [(local3)] */ # 21ee: 924110 + s8i a8, sp, 17 /* a8 -> [(local4)] */ # 21f1: 824111 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 21f4: 022027 + movi a6, 7 /* 0x00000007 */ # 21f7: 0c76 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 21f9: c00000 + l32i a0, a12, 0 /* [g_phyFuns] */ # 21fc: 080c + l32i a14, sp, 68 /* [(local19)] */ # 21fe: e22111 + l32i a0, a0, 80 /* [[g_phyFuns]+0x50] */ # 2201: 022014 + l32i a2, sp, 24 /* [(local8)] */ # 2204: 2861 + callx0 a0 /* [[g_phyFuns]+0x50] */ # 2206: c00000 + movi a5, 0 /* 0x00000000 */ # 2209: 0c05 + movi a6, 0 /* 0x00000000 */ # 220b: 0c06 + movi a7, 0 /* 0x00000000 */ # 220d: 0c07 + mov a4, a2 # 220f: 4d02 + movi a3, 0 /* 0x00000000 */ # 2211: 0c03 + s32i a3, sp, 8 /* 0x00000000 -> [(local2)] */ # 2213: 3921 + s32i a3, sp, 4 /* 0x00000000 -> [(local1)] */ # 2215: 3911 + s32i a3, sp, 0 /* 0x00000000 -> [(local0)] */ # 2217: 3901 + l32i a0, a12, 0 /* [g_phyFuns] */ # 2219: 080c + movi a2, 1 /* 0x00000001 */ # 221b: 0c12 + l32i a0, a0, 104 /* [[g_phyFuns]+0x68] */ # 221d: 02201a + mov a3, a14 /* [(local19)] */ # 2220: 3d0e + callx0 a0 /* [[g_phyFuns]+0x68] */ # 2222: c00000 + l32i a2, sp, 20 /* [(local7)] */ # 2225: 2851 + l32i a7, sp, 32 /* [(local10)] */ # 2227: 7881 + addi a6, sp, 19 /* (local6) */ # 2229: 62c113 + l8ui a4, sp, 17 /* [(local4)] */ # 222c: 420111 + l32i a5, sp, 36 /* [(local11)] */ # 222f: 5891 + l8ui a3, sp, 16 /* [(local3)] */ # 2231: 320110 + mov a14, a5 /* [(local11)] */ # 2234: ed05 + s32i a15, sp, 4 /* [(local21)] -> [(local1)] */ # 2236: f911 + s32i a6, sp, 0 /* (local6) -> [(local0)] */ # 2238: 6901 + s32i a7, sp, 8 /* [(local10)] -> [(local2)] */ # 223a: 7921 + addi a7, sp, 18 /* (local5) */ # 223c: 72c112 + l32i a0, a12, 0 /* [g_phyFuns] */ # 223f: 080c + l32i a6, sp, 40 /* [(local12)] */ # 2241: 68a1 + l32i a0, a0, 0x10c /* [[g_phyFuns]+0x10c] */ # 2243: 022043 + mov a15, a6 /* [(local12)] */ # 2246: fd06 + callx0 a0 /* [[g_phyFuns]+0x10c] */ # 2248: c00000 + l32i a0, a12, 0 /* [g_phyFuns] */ # 224b: 080c + l32i a0, a0, 108 /* [[g_phyFuns]+0x6c] */ # 224d: 02201b + movi a2, 1 /* 0x00000001 */ # 2250: 0c12 + callx0 a0 /* [[g_phyFuns]+0x6c] */ # 2252: c00000 + l32i a7, sp, 44 /* [(local13)] */ # 2255: 78b1 + movi a2, 119 /* 0x00000077 */ # 2257: 22a077 + movi a3, 0 /* 0x00000000 */ # 225a: 0c03 + movi a4, 16 /* 0x00000010 */ # 225c: 1c04 + l32i a0, a12, 0 /* [g_phyFuns] */ # 225e: 080c + movi a5, 0 /* 0x00000000 */ # 2260: 0c05 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 2262: 022027 + movi a6, 0 /* 0x00000000 */ # 2265: 0c06 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 2267: c00000 + mov a7, a13 # 226a: 7d0d + movi a2, 119 /* 0x00000077 */ # 226c: 22a077 + movi a3, 0 /* 0x00000000 */ # 226f: 0c03 + movi a4, 15 /* 0x0000000f */ # 2271: 0cf4 + l32i a0, a12, 0 /* [g_phyFuns] */ # 2273: 080c + movi a5, 6 /* 0x00000006 */ # 2275: 0c65 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 2277: 022027 + movi a6, 6 /* 0x00000006 */ # 227a: 0c66 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 227c: c00000 + mov a7, a14 /* [(local11)] */ # 227f: 7d0e + movi a2, 119 /* 0x00000077 */ # 2281: 22a077 + movi a3, 0 /* 0x00000000 */ # 2284: 0c03 + movi a4, 24 /* 0x00000018 */ # 2286: 1c84 + l32i a0, a12, 0 /* [g_phyFuns] */ # 2288: 080c + movi a5, 5 /* 0x00000005 */ # 228a: 0c55 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 228c: 022027 + movi a6, 5 /* 0x00000005 */ # 228f: 0c56 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 2291: c00000 + mov a7, a15 /* [(local12)] */ # 2294: 7d0f + movi a2, 119 /* 0x00000077 */ # 2296: 22a077 + movi a3, 0 /* 0x00000000 */ # 2299: 0c03 + movi a4, 24 /* 0x00000018 */ # 229b: 1c84 + movi a5, 3 /* 0x00000003 */ # 229d: 0c35 + l32i a0, a12, 0 /* [g_phyFuns] */ # 229f: 080c + movi a6, 3 /* 0x00000003 */ # 22a1: 0c36 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 22a3: 022027 + l32i a13, sp, 28 /* [(local9)] */ # 22a6: d871 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 22a8: c00000 + mov a7, a13 /* [(local9)] */ # 22ab: 7d0d + movi a2, 119 /* 0x00000077 */ # 22ad: 22a077 + movi a3, 0 /* 0x00000000 */ # 22b0: 0c03 + movi a4, 9 /* 0x00000009 */ # 22b2: 0c94 + l32i a0, a12, 0 /* [g_phyFuns] */ # 22b4: 080c + movi a5, 7 /* 0x00000007 */ # 22b6: 0c75 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 22b8: 022027 + movi a6, 0 /* 0x00000000 */ # 22bb: 0c06 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 22bd: c00000 + movi a2, 119 /* 0x00000077 */ # 22c0: 22a077 + movi a3, 0 /* 0x00000000 */ # 22c3: 0c03 + movi a4, 24 /* 0x00000018 */ # 22c5: 1c84 + movi a5, 7 /* 0x00000007 */ # 22c7: 0c75 + l32i a0, a12, 0 /* [g_phyFuns] */ # 22c9: 080c + movi a6, 7 /* 0x00000007 */ # 22cb: 0c76 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 22cd: 022027 + movi a7, 0 /* 0x00000000 */ # 22d0: 0c07 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 22d2: c00000 + movi a2, 119 /* 0x00000077 */ # 22d5: 22a077 + movi a3, 0 /* 0x00000000 */ # 22d8: 0c03 + movi a4, 16 /* 0x00000010 */ # 22da: 1c04 + movi a5, 2 /* 0x00000002 */ # 22dc: 0c25 + l32i a0, a12, 0 /* [g_phyFuns] */ # 22de: 080c + movi a6, 2 /* 0x00000002 */ # 22e0: 0c26 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 22e2: 022027 + movi a7, 0 /* 0x00000000 */ # 22e5: 0c07 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 22e7: c00000 + l32i a0, a12, 0 /* [g_phyFuns] */ # 22ea: 080c + l32i a13, sp, 72 /* [(local20)] */ # 22ec: d22112 + l32i a0, a0, 64 /* [[g_phyFuns]+0x40] */ # 22ef: 022010 + movi a2, 0 /* 0x00000000 */ # 22f2: 0c02 + callx0 a0 /* [[g_phyFuns]+0x40] */ # 22f4: c00000 + l32i a0, sp, 48 /* [(local14)] */ # 22f7: 08c1 + l32i a12, sp, 52 /* [(local15)] */ # 22f9: c8d1 + l32i a14, sp, 60 /* [(local17)] */ # 22fb: e8f1 + l8ui a3, sp, 18 /* [(local5)] */ # 22fd: 320112 + l32i a15, sp, 64 /* [(local18)] */ # 2300: f22110 + s8i a3, a13, 0 /* [(local5)] -> [[(local20)]] */ # 2303: 324d00 + l8ui a2, sp, 19 /* [(local6)] */ # 2306: 220113 + s8i a2, a13, 1 /* [(local6)] -> [[(local20)]+0x1] */ # 2309: 224d01 + l32i a13, sp, 56 /* [(local16)] */ # 230c: d8e1 + addi sp, sp, 80 /* (top of frame) */ # 230e: 12c150 + ret /* [(local6)] */ # 2311: 0df0 + + .literal_position # 2314: 00020060 + # 2318: 00000000 + # 231c: 00000000 + +# Function @ .irom0.text+0x2320 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global dpd_scale_set + .type dpd_scale_set, @function +dpd_scale_set: + addi sp, sp, -16 /* (local0) */ # 2320: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 2323: 0901 + movi a5, 0x60000200 # 2325: 51fbff + memw # 2328: c02000 + movi a2, 119 /* 0x00000077 */ # 232b: 22a077 + movi a3, 0 /* 0x00000000 */ # 232e: 0c03 + movi a4, 8 /* 0x00000008 */ # 2330: 0c84 + l32i a5, a5, 0x360 /* [0x60000560] */ # 2332: 5225d8 + movi a6, chip6_sleep_params # 2335: 61f8ff + movi a0, g_phyFuns # 2338: 01f9ff + l8ui a6, a6, 111 /* [chip6_sleep_params+0x6f] */ # 233b: 62066f + l32i a0, a0, 0 /* [g_phyFuns] */ # 233e: 0800 + neg a5, a5 # 2340: 505060 + slli a5, a5, 24 # 2343: 805501 + l32i a0, a0, 152 /* [[g_phyFuns]+0x98] */ # 2346: 022026 + srai a5, a5, 24 # 2349: 505831 + slli a6, a6, 24 # 234c: 806601 + srai a6, a6, 24 # 234f: 606831 + sub a5, a5, a6 # 2352: 6055c0 + addi a5, a5, -24 # 2355: 52c5e8 + extui a5, a5, 0, 8 # 2358: 505074 + callx0 a0 /* [[g_phyFuns]+0x98] */ # 235b: c00000 + l32i a0, sp, 0 /* [(local0)] */ # 235e: 0801 + addi sp, sp, 16 /* (top of frame) */ # 2360: 12c110 + ret # 2363: 0df0 + + .literal_position # 2368: 00000000 + +# Function @ .irom0.text+0x236c +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word @ -0x8 +# (local3): word @ -0x4 + .balign 4 + .global dpd_mem_write + .type dpd_mem_write, @function +dpd_mem_write: + mov a5, a3 /* arg1 */ # 236c: 5d03 + addi sp, sp, -16 /* (local0) */ # 236e: 12c1f0 + movi a3, 0 /* 0x00000000 */ # 2371: 0c03 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 2373: 0901 + s32i a14, sp, 12 /* a14 -> [(local3)] */ # 2375: e931 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 2377: d921 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 2379: c911 + mov a13, a4 /* arg2 */ # 237b: dd04 + movi a12, g_phyFuns # 237d: c1faff + mov a14, a2 /* arg0 */ # 2380: ed02 + l32i a0, a12, 0 /* [g_phyFuns] */ # 2382: 080c + movi a2, 119 /* 0x00000077 */ # 2384: 22a077 + l32i a0, a0, 152 /* [[g_phyFuns]+0x98] */ # 2387: 022026 + movi a4, 27 /* 0x0000001b */ # 238a: 1cb4 + callx0 a0 /* [[g_phyFuns]+0x98] */ # 238c: c00000 + movi a2, 119 /* 0x00000077 */ # 238f: 22a077 + movi a3, 0 /* 0x00000000 */ # 2392: 0c03 + l32i a0, a12, 0 /* [g_phyFuns] */ # 2394: 080c + movi a4, 5 /* 0x00000005 */ # 2396: 0c54 + l32i a0, a0, 152 /* [[g_phyFuns]+0x98] */ # 2398: 022026 + extui a5, a14, 4, 8 # 239b: e05474 + callx0 a0 /* [[g_phyFuns]+0x98] */ # 239e: c00000 + extui a5, a14, 0, 4 # 23a1: e05034 + movi a2, 119 /* 0x00000077 */ # 23a4: 22a077 + l32i a0, a12, 0 /* [g_phyFuns] */ # 23a7: 080c + movi a3, 0 /* 0x00000000 */ # 23a9: 0c03 + l32i a0, a0, 152 /* [[g_phyFuns]+0x98] */ # 23ab: 022026 + movi a4, 6 /* 0x00000006 */ # 23ae: 0c64 + callx0 a0 /* [[g_phyFuns]+0x98] */ # 23b0: c00000 + movi a2, 119 /* 0x00000077 */ # 23b3: 22a077 + movi a3, 0 /* 0x00000000 */ # 23b6: 0c03 + movi a4, 15 /* 0x0000000f */ # 23b8: 0cf4 + movi a5, 4 /* 0x00000004 */ # 23ba: 0c45 + l32i a0, a12, 0 /* [g_phyFuns] */ # 23bc: 080c + or a5, a13, a5 # 23be: 505d20 + l32i a0, a0, 152 /* [[g_phyFuns]+0x98] */ # 23c1: 022026 + extui a5, a5, 0, 8 # 23c4: 505074 + callx0 a0 /* [[g_phyFuns]+0x98] */ # 23c7: c00000 + mov a5, a13 /* arg2 */ # 23ca: 5d0d + movi a2, 119 /* 0x00000077 */ # 23cc: 22a077 + l32i a0, a12, 0 /* [g_phyFuns] */ # 23cf: 080c + movi a3, 0 /* 0x00000000 */ # 23d1: 0c03 + l32i a0, a0, 152 /* [[g_phyFuns]+0x98] */ # 23d3: 022026 + movi a4, 15 /* 0x0000000f */ # 23d6: 0cf4 + callx0 a0 /* [[g_phyFuns]+0x98] */ # 23d8: c00000 + l32i a12, sp, 4 /* [(local1)] */ # 23db: c811 + l32i a13, sp, 8 /* [(local2)] */ # 23dd: d821 + l32i a14, sp, 12 /* [(local3)] */ # 23df: e831 + l32i a0, sp, 0 /* [(local0)] */ # 23e1: 0801 + addi sp, sp, 16 /* (top of frame) */ # 23e3: 12c110 + ret # 23e6: 0df0 + + .literal_position # 23e8: 000af23f + # 23ec: 00000000 + # 23f0: 00000000 + # 23f4: 00000000 + # 23f8: 00020060 + # 23fc: 68010000 + # 2400: 00000000 + # 2404: 00000000 + # 2408: 60000000 + # 240c: 00000000 + # 2410: 00000000 + # 2414: 00000000 + # 2418: 00000010 + # 241c: 00000000 + # 2420: 00000000 + # 2424: 00000000 + # 2428: 00000000 + # 242c: 00000000 + +# Function @ .irom0.text+0x2430 +# Local variables/stack: +# (local0): hword @ -0x82 +# (local1): byte[47] @ -0x80 +# (local2): byte @ -0x51 +# (local3): hword[2] @ -0x50 +# (local4): word @ -0x4c +# (local5): word @ -0x48 +# (local6): word @ -0x44 +# (local7): word @ -0x40 +# (local8): word @ -0x3c +# (local9): word @ -0x38 +# (local10): word @ -0x34 +# (local11): word @ -0x30 +# (local12): word @ -0x2c +# (local13): word @ -0x28 +# (local14): word @ -0x24 +# (local15): word @ -0x20 +# (local16): word @ -0x1c +# (local17): word @ -0x18 +# (local18): word @ -0x14 +# (local19): word @ -0x10 +# (local20): word @ -0xc +# (local21): word[2] @ -0x8 + .balign 4 + .global dpd_init + .type dpd_init, @function +dpd_init: movi a3, 240 /* 0x000000f0 */ # 2430: 32a0f0 + sub sp, sp, a3 /* (FP)-0xf0 */ # 2433: 3011c0 + s32i a0, sp, 172 /* a0 -> [(local6)] */ # 2436: 02612b + s32i a14, sp, 184 /* a14 -> [(local9)] */ # 2439: e2612e + s32i a13, sp, 180 /* a13 -> [(local8)] */ # 243c: d2612d + s32i a15, sp, 188 /* a15 -> [(local10)] */ # 243f: f2612f + s32i a2, sp, 192 /* arg0 -> [(local11)] */ # 2442: 226130 + s32i a12, sp, 176 /* a12 -> [(local7)] */ # 2445: c2612c + movi a12, g_phyFuns # 2448: c1e9ff + movi a2, 0x3ff20a00 # 244b: 21e7ff + movi a15, chip6_sleep_params # 244e: f1e8ff + memw # 2451: c02000 + l32i a0, a15, 0 /* [chip6_sleep_params] */ # 2454: 080f + l32i a2, a2, 0x200 /* [0x3ff20c00] */ # 2456: 222280 + extui a0, a0, 28, 1 # 2459: 000c05 + bnez a0, .Lbr206 # 245c: 568026 + movi a2, 6 /* 0x00000006 */ # 245f: 0c62 + mov a3, sp /* (FP)-0xf0 */ # 2461: 3d01 + call0 tx_atten_set_interp # 2463: 01efffc0 + # 2467: 0000 + movi a2, 119 /* 0x00000077 */ # 2469: 22a077 + movi a3, 0 /* 0x00000000 */ # 246c: 0c03 + movi a4, 15 /* 0x0000000f */ # 246e: 0cf4 + movi a5, 1 /* 0x00000001 */ # 2470: 0c15 + l32i a0, a12, 0 /* [g_phyFuns] */ # 2472: 080c + movi a6, 1 /* 0x00000001 */ # 2474: 0c16 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 2476: 022027 + movi a7, 1 /* 0x00000001 */ # 2479: 0c17 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 247b: c00000 + movi a2, 107 /* 0x0000006b */ # 247e: 22a06b + movi a3, 2 /* 0x00000002 */ # 2481: 0c23 + movi a4, 10 /* 0x0000000a */ # 2483: 0ca4 + l32i a0, a12, 0 /* [g_phyFuns] */ # 2485: 080c + movi a5, 5 /* 0x00000005 */ # 2487: 0c55 + l32i a0, a0, 148 /* [[g_phyFuns]+0x94] */ # 2489: 022025 + movi a6, 4 /* 0x00000004 */ # 248c: 0c46 + callx0 a0 /* [[g_phyFuns]+0x94] */ # 248e: c00000 + movi a3, 2 /* 0x00000002 */ # 2491: 0c23 + movi a4, 10 /* 0x0000000a */ # 2493: 0ca4 + movi a5, 5 /* 0x00000005 */ # 2495: 0c55 + movi a6, 4 /* 0x00000004 */ # 2497: 0c46 + movi a7, 2 /* 0x00000002 */ # 2499: 0c27 + l32i a0, a12, 0 /* [g_phyFuns] */ # 249b: 080c + s32i a2, sp, 168 /* a2 -> [(local5)] */ # 249d: 22612a + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 24a0: 022027 + movi a2, 107 /* 0x0000006b */ # 24a3: 22a06b + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 24a6: c00000 + l32i a0, a12, 0 /* [g_phyFuns] */ # 24a9: 080c + l32i a0, a0, 160 /* [[g_phyFuns]+0xa0] */ # 24ab: 022028 + callx0 a0 /* [[g_phyFuns]+0xa0] */ # 24ae: c00000 + l32i a0, a12, 0 /* [g_phyFuns] */ # 24b1: 080c + l32i a0, a0, 192 /* [[g_phyFuns]+0xc0] */ # 24b3: 022030 + movi a2, 1 /* 0x00000001 */ # 24b6: 0c12 + callx0 a0 /* [[g_phyFuns]+0xc0] */ # 24b8: c00000 + movi a2, tx_rf_ana_gain # 24bb: 21ceff + l16ui a2, a2, 0 /* [tx_rf_ana_gain] */ # 24be: 221200 + call0 ram_pbus_xpd_tx_on # 24c1: 01d8ffc0 + # 24c5: 0000 + l32i a0, a12, 0 /* [g_phyFuns] */ # 24c7: 080c + l32i a0, a0, 24 /* [[g_phyFuns]+0x18] */ # 24c9: 0860 + movi a2, 0 /* 0x00000000 */ # 24cb: 0c02 + callx0 a0 /* [[g_phyFuns]+0x18] */ # 24cd: c00000 + movi a13, 0x60000200 # 24d0: d1caff + memw # 24d3: c02000 + addi a14, sp, 112 /* (local1) */ # 24d6: e2c170 + movi a4, 95 /* 0x0000005f */ # 24d9: 5cf4 + l32i a13, a13, 0x360 /* [0x60000560] */ # 24db: d22dd8 + movi a2, 48 /* 0x00000030 */ # 24de: 3c02 + movi a8, 0 /* 0x00000000 */ # 24e0: 0c08 + movi a9, 0 /* 0x00000000 */ # 24e2: 0c09 + addmi a12, sp, -256 /* (FP)-0x1f0 */ # 24e4: c2d1ff + addi a12, a12, 16 /* (FP)-0x1e0 */ # 24e7: c2cc10 + s32i a9, sp, 200 /* 0x00000000 -> [(local13)] */ # 24ea: 926132 + s32i a8, sp, 204 /* 0x00000000 -> [(local14)] */ # 24ed: 826133 + s32i a2, sp, 212 /* 0x00000030 -> [(local16)] */ # 24f0: 226135 + neg a13, a13 # 24f3: d0d060 + s8i a13, a15, 111 /* a13 -> [chip6_sleep_params+0x6f] */ # 24f6: d24f6f + addi a13, a13, 31 # 24f9: d2cd1f + slli a13, a13, 24 # 24fc: 80dd01 + srai a13, a13, 24 # 24ff: d0d831 + s32i a13, sp, 208 /* a13 -> [(local15)] */ # 2502: d26134 + movi a13, 0 /* 0x00000000 */ # 2505: 0c0d +.Lbr192: l32i a3, sp, 208 /* [(local15)] */ # 2507: 322134 + mov a0, a4 /* 0x0000005f */ # 250a: 0d04 + sub a3, a3, a13 # 250c: d033c0 + slli a3, a3, 24 # 250f: 803301 + srai a3, a3, 24 # 2512: 303831 + blt a4, a3, .Lbr193 # 2515: 372401 + mov a0, a3 # 2518: 0d03 +.Lbr193: movi a2, 0 /* 0x00000000 */ # 251a: 0c02 + movgez a2, a0, a0 # 251c: 0020b3 + slli a2, a2, 24 # 251f: 802201 + srai a2, a2, 24 # 2522: 202831 + s32i a2, sp, 216 /* a2 -> [(local17)] */ # 2525: 226136 + call0 meas_tone_pwr_db # 2528: 050000 + mov a4, a2 # 252b: 4d02 + l32i a0, sp, 208 /* [(local15)] */ # 252d: 022134 + l32i a2, sp, 216 /* [(local17)] */ # 2530: 222136 + addx2 a15, a13, a12 # 2533: c0fd90 + sub a0, a0, a2 # 2536: 2000c0 + slli a0, a0, 1 # 2539: f00011 + bgeui a13, 4, .Lbr194 # 253c: f64d18 + s16i a4, a15, 0x100 # 253f: 425f80 + l32i a3, sp, 204 /* [(local14)] */ # 2542: 322133 + sub a5, a4, a0 # 2545: 0054c0 + add a5, a3, a5 # 2548: 5a53 + slli a5, a5, 16 # 254a: 005511 + srai a3, a5, 16 # 254d: 503031 + s32i a3, sp, 204 /* a3 -> [(local14)] */ # 2550: 326133 + mov a5, a4 # 2553: 5d04 + j .Lbr196 # 2555: 460800 +.Lbr194: bnei a13, 4, .Lbr195 # 2558: 664d10 + l32i a6, sp, 204 /* [(local14)] */ # 255b: 622133 + addi a7, a6, 2 /* [(local14)]+0x2 */ # 255e: 2b76 + srai a7, a7, 2 # 2560: 707221 + slli a7, a7, 16 # 2563: 007711 + srai a6, a7, 16 # 2566: 706031 + s32i a6, sp, 204 /* a6 -> [(local14)] */ # 2569: 626133 +.Lbr195: l32i a5, sp, 204 /* [(local14)] */ # 256c: 522133 + add a5, a0, a5 # 256f: 5a50 + slli a5, a5, 16 # 2571: 005511 + srai a5, a5, 16 # 2574: 505031 + s16i a5, a15, 0x100 # 2577: 525f80 +.Lbr196: l32i a6, sp, 200 /* [(local13)] */ # 257a: 622132 + sub a0, a5, a4 # 257d: 4005c0 + bnez a6, .Lbr197 # 2580: dc16 + slli a6, a0, 16 # 2582: 006011 + srai a6, a6, 16 # 2585: 606031 + blti a6, 2, .Lbr197 # 2588: a62609 + movi a7, 1 /* 0x00000001 */ # 258b: 0c17 + addi a8, a6, -1 # 258d: 0b86 + s32i a8, sp, 196 /* a8 -> [(local12)] */ # 258f: 826131 + s32i a7, sp, 200 /* 0x00000001 -> [(local13)] */ # 2592: 726132 +.Lbr197: l32i a7, sp, 192 /* [(local11)] */ # 2595: 722130 + movi a2, 0 /* 0x00000000 */ # 2598: 0c02 + l32i a6, sp, 196 /* [(local12)] */ # 259a: 622131 + movi a9, 8 /* 0x00000008 */ # 259d: 0c89 + sub a6, a0, a6 # 259f: 6060c0 + mov a0, a9 /* 0x00000008 */ # 25a2: 0d09 + slli a6, a6, 16 # 25a4: 006611 + srai a6, a6, 16 # 25a7: 606031 + blt a9, a6, .Lbr198 # 25aa: 672901 + mov a0, a6 # 25ad: 0d06 +.Lbr198: movgez a2, a0, a0 # 25af: 0020b3 + slli a0, a2, 16 # 25b2: 000211 + srai a0, a0, 16 # 25b5: 000031 + s32i a0, sp, 164 /* a0 -> [(local4)] */ # 25b8: 026129 + beqz a7, .Lbr199 # 25bb: 8cf7 + movi a2, .Lstr010 # 25bd: 218fff + l32i a3, sp, 216 /* [(local17)] */ # 25c0: 322136 + mov a6, a0 # 25c3: 6d00 + call0 ets_printf # 25c5: 0198ffc0 + # 25c9: 0000 + l32i a0, sp, 164 /* [(local4)] */ # 25cb: 022129 +.Lbr199: s16i a0, a15, 0x100 # 25ce: 025f80 + movi a3, dpd_index # 25d1: 318bff + l32i a2, sp, 216 /* [(local17)] */ # 25d4: 222136 + movi a4, 95 /* 0x0000005f */ # 25d7: 5cf4 + add a2, a2, a3 # 25d9: 3a22 + add a3, a13, a14 # 25db: ea3d + l8ui a2, a2, 0 # 25dd: 220200 + addi a13, a13, 1 # 25e0: 1bdd + s8i a2, a3, 0 # 25e2: 224300 + l32i a3, sp, 212 /* [(local16)] */ # 25e5: 322135 + extui a13, a13, 0, 16 # 25e8: d0d0f4 + addi a3, a3, -1 /* [(local16)]-0x1 */ # 25eb: 0b33 + s32i a3, sp, 212 /* [(local16)]-0x1 -> [(local16)] */ # 25ed: 326135 + bnez a3, .Lbr192 # 25f0: 5633f1 + j .Lbr213 # 25f3: c66a00 +.Lbr200: addi a6, a13, 1 # 25f6: 1b6d + addx2 a5, a13, a12 # 25f8: c05d90 + l16si a4, a5, 0x100 # 25fb: 429580 + extui a13, a6, 0, 16 # 25fe: 60d0f4 + addx2 a4, a4, a2 # 2601: 204490 + l16si a4, a4, 0 # 2604: 429400 + s16i a4, a5, 0x100 # 2607: 425580 + bne a13, a0, .Lbr200 # 260a: 079de8 + movi a2, 119 /* 0x00000077 */ # 260d: 22a077 + movi a3, 0 /* 0x00000000 */ # 2610: 0c03 + movi a4, 15 /* 0x0000000f */ # 2612: 0cf4 + movi a5, 1 /* 0x00000001 */ # 2614: 0c15 + l32i a0, a15, 0 /* [g_phyFuns] */ # 2616: 080f + movi a6, 1 /* 0x00000001 */ # 2618: 0c16 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 261a: 022027 + movi a7, 0 /* 0x00000000 */ # 261d: 0c07 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 261f: c00000 + movi a2, 119 /* 0x00000077 */ # 2622: 22a077 + movi a3, 0 /* 0x00000000 */ # 2625: 0c03 + l32i a0, a15, 0 /* [g_phyFuns] */ # 2627: 080f + movi a4, 7 /* 0x00000007 */ # 2629: 0c74 + l32i a0, a0, 152 /* [[g_phyFuns]+0x98] */ # 262b: 022026 + movi a5, 0 /* 0x00000000 */ # 262e: 0c05 + callx0 a0 /* [[g_phyFuns]+0x98] */ # 2630: c00000 + movi a2, 119 /* 0x00000077 */ # 2633: 22a077 + l32i a0, a15, 0 /* [g_phyFuns] */ # 2636: 080f + movi a3, 0 /* 0x00000000 */ # 2638: 0c03 + l32i a0, a0, 144 /* [[g_phyFuns]+0x90] */ # 263a: 022024 + movi a4, 15 /* 0x0000000f */ # 263d: 0cf4 + callx0 a0 /* [[g_phyFuns]+0x90] */ # 263f: c00000 + l16ui a15, sp, 160 /* [(local3)] */ # 2642: f21150 + movi a12, 0 /* 0x00000000 */ # 2645: 0c0c + movi a13, 0 /* 0x00000000 */ # 2647: 0c0d + movi a3, 251 /* 0x000000fb */ # 2649: 32a0fb + movi a4, 256 /* 0x00000100 */ # 264c: 42a100 + l8ui a10, sp, 112 /* [(local1)] */ # 264f: a20170 + s32i a10, sp, 220 /* [(local1)] -> [(local18)] */ # 2652: a26137 + s32i a4, sp, 228 /* 0x00000100 -> [(local20)] */ # 2655: 426139 + and a2, a2, a3 # 2658: 302210 + s32i a2, sp, 224 /* a2 -> [(local19)] */ # 265b: 226138 +.Lbr201: l32i a11, sp, 220 /* [(local18)] */ # 265e: b22137 + l8ui a2, sp, 159 /* [(local2)] */ # 2661: 22019f + bltu a13, a11, .Lbr202 # 2664: b73d02 + j .Lbr207 # 2667: 462800 +.Lbr202: movi a15, 1024 /* 0x00000400 */ # 266a: f2a400 +.Lbr203: movi a0, 1024 /* 0x00000400 */ # 266d: 02a400 + movi a2, 2047 /* 0x000007ff */ # 2670: 22a7ff + mov a5, a2 /* 0x000007ff */ # 2673: 5d02 + mov a3, a0 /* 0x00000400 */ # 2675: 3d00 + bltu a2, a15, .Lbr204 # 2677: f73201 + mov a5, a15 # 267a: 5d0f +.Lbr204: bltu a5, a0, .Lbr205 # 267c: 073501 + mov a3, a5 # 267f: 3d05 +.Lbr205: extui a15, a3, 0, 16 # 2681: 30f0f4 + l32i a4, sp, 224 /* [(local19)] */ # 2684: 422138 + extui a3, a13, 0, 8 # 2687: d03074 + mov a2, a15 # 268a: 2d0f + call0 dpd_mem_write # 268c: 050000 + l32i a0, sp, 228 /* [(local20)] */ # 268f: 022139 + addi a13, a13, 1 # 2692: 1bdd + extui a13, a13, 0, 16 # 2694: d0d0f4 + addi a0, a0, -1 /* [(local20)]-0x1 */ # 2697: 0b00 + s32i a0, sp, 228 /* [(local20)]-0x1 -> [(local20)] */ # 2699: 026139 + bnez a0, .Lbr201 # 269c: 56e0fb + l32i a7, sp, 168 /* [(local5)] */ # 269f: 72212a + movi a2, 107 /* 0x0000006b */ # 26a2: 22a06b + movi a3, 2 /* 0x00000002 */ # 26a5: 0c23 + movi a0, g_phyFuns # 26a7: 0159ff + movi a4, 10 /* 0x0000000a */ # 26aa: 0ca4 + l32i a0, a0, 0 /* [g_phyFuns] */ # 26ac: 0800 + movi a5, 5 /* 0x00000005 */ # 26ae: 0c55 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 26b0: 022027 + movi a6, 4 /* 0x00000004 */ # 26b3: 0c46 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 26b5: c00000 + movi a3, chip6_sleep_params # 26b8: 3157ff + movi a4, 0x10000000 # 26bb: 4157ff + l32i a2, a3, 0 /* [chip6_sleep_params] */ # 26be: 2803 + movi a12, g_phyFuns # 26c0: c154ff + or a2, a2, a4 # 26c3: 402220 + s32i a2, a3, 0 /* a2 -> [chip6_sleep_params] */ # 26c6: 2903 +.Lbr206: movi a2, 119 /* 0x00000077 */ # 26c8: 22a077 + movi a3, 0 /* 0x00000000 */ # 26cb: 0c03 + movi a4, 15 /* 0x0000000f */ # 26cd: 0cf4 + movi a5, 1 /* 0x00000001 */ # 26cf: 0c15 + l32i a0, a12, 0 /* [g_phyFuns] */ # 26d1: 080c + movi a6, 1 /* 0x00000001 */ # 26d3: 0c16 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 26d5: 022027 + movi a7, 0 /* 0x00000000 */ # 26d8: 0c07 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 26da: c00000 + call0 dpd_scale_set # 26dd: 050000 + movi a2, 119 /* 0x00000077 */ # 26e0: 22a077 + movi a3, 0 /* 0x00000000 */ # 26e3: 0c03 + movi a4, 27 /* 0x0000001b */ # 26e5: 1cb4 + movi a5, 7 /* 0x00000007 */ # 26e7: 0c75 + l32i a0, a12, 0 /* [g_phyFuns] */ # 26e9: 080c + movi a6, 0 /* 0x00000000 */ # 26eb: 0c06 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 26ed: 022027 + movi a7, 255 /* 0x000000ff */ # 26f0: 72a0ff + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 26f3: c00000 + l32i a12, sp, 176 /* [(local7)] */ # 26f6: c2212c + l32i a13, sp, 180 /* [(local8)] */ # 26f9: d2212d + l32i a14, sp, 184 /* [(local9)] */ # 26fc: e2212e + l32i a15, sp, 188 /* [(local10)] */ # 26ff: f2212f + movi a2, 240 /* 0x000000f0 */ # 2702: 22a0f0 + l32i a0, sp, 172 /* [(local6)] */ # 2705: 02212b + add sp, sp, a2 /* (top of frame) */ # 2708: 2a11 + ret /* 0x000000f0 */ # 270a: 0df0 +.Lbr207: bgeu a2, a13, .Lbr208 # 270c: d7b205 + l16ui a15, sp, 110 /* [(local0)] */ # 270f: f21137 + j .Lbr203 # 2712: c6d5ff +.Lbr208: addi a2, sp, -16 /* (FP)-0x100 */ # 2715: 22c1f0 + add a2, a12, a2 # 2718: 2a2c + l8ui a0, a2, 128 # 271a: 020280 + add a3, a12, a14 # 271d: ea3c + bgeu a0, a13, .Lbr210 # 271f: d7b01d + l8ui a3, a3, 0 # 2722: 320300 + bgeu a3, a13, .Lbr211 # 2725: d7b357 +.Lbr209: addi a12, a12, 1 # 2728: 1bcc + extui a12, a12, 0, 8 # 272a: c0c074 + add a4, a12, a14 # 272d: ea4c + l8ui a4, a4, 0 # 272f: 420400 + bltu a4, a13, .Lbr209 # 2732: d734f2 + addi a0, sp, -16 /* (FP)-0x100 */ # 2735: 02c1f0 + add a0, a12, a0 # 2738: 0a0c + l8ui a0, a0, 128 # 273a: 020080 + j .Lbr211 # 273d: c60f00 +.Lbr210: s32i a0, sp, 232 /* a0 -> [(local21)] */ # 2740: 02613a + bgeu a13, a0, .Lbr211 # 2743: 07bd39 + movi a5, 1 /* 0x00000001 */ # 2746: 0c15 + l8ui a4, a2, 127 # 2748: 42027f + addmi a2, sp, -256 /* (FP)-0x1f0 */ # 274b: 22d1ff + sub a3, a0, a4 # 274e: 4030c0 + addi a2, a2, 16 /* (FP)-0x1e0 */ # 2751: 22c210 + sub a4, a13, a4 # 2754: 404dc0 + addx2 a2, a12, a2 # 2757: 202c90 + extui a3, a3, 0, 8 # 275a: 303074 + l16si a15, a2, 254 # 275d: f2927f + l16si a2, a2, 0x100 # 2760: 229280 + moveqz a3, a5, a3 # 2763: 303583 + sub a2, a2, a15 # 2766: f022c0 + slli a2, a2, 16 # 2769: 002211 + srai a2, a2, 16 # 276c: 202031 + mull a2, a2, a4 # 276f: 402282 + call0 __divsi3 # 2772: 012effc0 + # 2776: 0000 + l32i a0, sp, 232 /* [(local21)] */ # 2778: 02213a + add a15, a15, a2 # 277b: 2aff + extui a15, a15, 0, 16 # 277d: f0f0f4 +.Lbr211: sub a2, a0, a13 # 2780: d020c0 + bnez a2, .Lbr203 # 2783: 5662ee + movi a3, 46 /* 0x0000002e */ # 2786: 2ce3 + addmi a15, sp, -256 /* (FP)-0x1f0 */ # 2788: f2d1ff + addi a15, a15, 16 /* (FP)-0x1e0 */ # 278b: f2cf10 + addx2 a15, a12, a15 # 278e: f0fc90 + l16ui a15, a15, 0x100 # 2791: f21f80 + bgeu a3, a12, .Lbr212 # 2794: c7b302 + j .Lbr203 # 2797: 86b4ff +.Lbr212: addi a12, a12, 1 # 279a: 1bcc + extui a12, a12, 0, 8 # 279c: c0c074 + j .Lbr203 # 279f: 86b2ff +.Lbr213: movi a15, g_phyFuns # 27a2: f11eff + l32i a0, a15, 0 /* [g_phyFuns] */ # 27a5: 080f + l32i a0, a0, 200 /* [[g_phyFuns]+0xc8] */ # 27a7: 022032 + callx0 a0 /* [[g_phyFuns]+0xc8] */ # 27aa: c00000 + l32i a0, a15, 0 /* [g_phyFuns] */ # 27ad: 080f + l32i a0, a0, 196 /* [[g_phyFuns]+0xc4] */ # 27af: 022031 + callx0 a0 /* [[g_phyFuns]+0xc4] */ # 27b2: c00000 + l32i a0, a15, 0 /* [g_phyFuns] */ # 27b5: 080f + l32i a0, a0, 188 /* [[g_phyFuns]+0xbc] */ # 27b7: 02202f + callx0 a0 /* [[g_phyFuns]+0xbc] */ # 27ba: c00000 + movi a13, 47 /* 0x0000002f */ # 27bd: 2cfd +.Lbr214: addx2 a15, a13, a12 # 27bf: c0fd90 + l16si a2, a15, 254 # 27c2: 229f7f + addi a13, a13, -1 # 27c5: 0bdd + l16si a5, a15, 0x100 # 27c7: 529f80 + extui a13, a13, 0, 16 # 27ca: d0d0f4 + bge a5, a2, .Lbr215 # 27cd: 27a502 + s16i a5, a15, 254 # 27d0: 525f7f +.Lbr215: bnez a13, .Lbr214 # 27d3: 568dfe + movi a0, 48 /* 0x00000030 */ # 27d6: 3c00 + movi a15, g_phyFuns # 27d8: f10bff + movi a13, 0 /* 0x00000000 */ # 27db: 0c0d + movi a2, dpd_db2linear # 27dd: 210aff + j .Lbr200 # 27e0: 8684ff + + .section .rodata.str1.4, "MSa", @progbits, 1 + +.Lstr001: .asciz "%3d,%3d; " # 0: 2533642c + # 4: 2533643b + # 8: 2000 + .balign 4 +.Lstr002: .asciz "txiq_gain=%d, txiq_phase=%d\n" # c: 74786971 + # 10: 5f676169 + # 14: 6e3d2564 + # 18: 2c207478 + # 1c: 69715f70 + # 20: 68617365 + # 24: 3d25640a + # 28: 00 + .balign 4 +.Lstr003: .asciz "TXPW1, %d, %d, %d, %d, %d, %d\n" # 2c: 54585057 + # 30: 312c2025 + # 34: 642c2025 + # 38: 642c2025 + # 3c: 642c2025 + # 40: 642c2025 + # 44: 642c2025 + # 48: 640a00 + .balign 4 +.Lstr004: .asciz "TX_PWCTRL, tot_p=%d, docal_p=%d, coatt=%d, att=%d, rf_g=%x, error=%d, %d, %d, %d, %d, hpc=%d, %d\n" # 4c: 54585f50 + # 50: 57435452 + # 54: 4c2c2074 + # 58: 6f745f70 + # 5c: 3d25642c + # 60: 20646f63 + # 64: 616c5f70 + # 68: 3d25642c + # 6c: 20636f61 + # 70: 74743d25 + # 74: 642c2061 + # 78: 74743d25 + # 7c: 642c2072 + # 80: 665f673d + # 84: 25782c20 + # 88: 6572726f + # 8c: 723d2564 + # 90: 2c202564 + # 94: 2c202564 + # 98: 2c202564 + # 9c: 2c202564 + # a0: 2c206870 + # a4: 633d2564 + # a8: 2c202564 + # ac: 0a00 + .balign 4 +.Lstr005: .asciz "periodic_cal num: %d\n" # b0: 70657269 + # b4: 6f646963 + # b8: 5f63616c + # bc: 206e756d + # c0: 3a202564 + # c4: 0a00 + .balign 4 +.Lstr006: .asciz "num_k=%d, power_out=%d, " # c8: 6e756d5f + # cc: 6b3d2564 + # d0: 2c20706f + # d4: 7765725f + # d8: 6f75743d + # dc: 25642c20 + # e0: 00 + .balign 4 +.Lstr007: .asciz "reg_i=%d, indata=%d, " # e4: 7265675f + # e8: 693d2564 + # ec: 2c20696e + # f0: 64617461 + # f4: 3d25642c + # f8: 2000 + .balign 4 +.Lstr008: .asciz "pwctrl: rate_i=%d, target_power=%d, detect_power=%d, rate_atten=%d, " # fc: 70776374 + # 100: 726c3a20 + # 104: 72617465 + # 108: 5f693d25 + # 10c: 642c2074 + # 110: 61726765 + # 114: 745f706f + # 118: 7765723d + # 11c: 25642c20 + # 120: 64657465 + # 124: 63745f70 + # 128: 6f776572 + # 12c: 3d25642c + # 130: 20726174 + # 134: 655f6174 + # 138: 74656e3d + # 13c: 25642c20 + # 140: 00 + .balign 4 +.Lstr009: .asciz "rxiq_get_mis: total_pwr=%d, %d-%d, " # 144: 72786971 + # 148: 5f676574 + # 14c: 5f6d6973 + # 150: 3a20746f + # 154: 74616c5f + # 158: 7077723d + # 15c: 25642c20 + # 160: 25642d25 + # 164: 642c2000 +.Lstr010: .asciz "%d, %d, %d, %d, " # 168: 25642c20 + # 16c: 25642c20 + # 170: 25642c20 + # 174: 25642c20 + # 178: 00 diff --git a/binary_sdk/libphy_stage1/phy_chip_v6_unused.S b/binary_sdk/libphy_stage1/phy_chip_v6_unused.S new file mode 100644 index 0000000..e7f3279 --- /dev/null +++ b/binary_sdk/libphy_stage1/phy_chip_v6_unused.S @@ -0,0 +1,360 @@ + + .section .irom0.text, "ax", @progbits + +# Function @ .irom0.text+0x0 + .balign 4 + .literal_position + .global chip_v6_set_sense + .type chip_v6_set_sense, @function +chip_v6_set_sense: + ret /* arg0 */ # 0: 0df0 + + .balign 4 +# Function @ .irom0.text+0x4 + .balign 4 + .global chip_v6_get_sense + .type chip_v6_get_sense, @function +chip_v6_get_sense: + ret /* arg0 */ # 4: 0df0 + + .balign 4 +# Function @ .irom0.text+0x8 + .balign 4 + .global chip_v6_unset_chanfreq + .type chip_v6_unset_chanfreq, @function +chip_v6_unset_chanfreq: + movi a2, 0 /* 0x00000000 */ # 8: 0c02 + ret /* 0x00000000 */ # a: 0df0 + + .literal_position # c: 00000000 + # 10: 00000000 + # 14: 00000000 + # 18: 00000000 + # 1c: 000e0060 + # 20: 00000000 + # 24: 00000000 + # 28: 00000000 + # 2c: 00000000 + +# Function @ .irom0.text+0x30 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word @ -0x10 +# (local5): word @ -0xc +# (local6): word[2] @ -0x8 + .balign 4 + .global data_collect + .type data_collect, @function +data_collect: + movi a2, .Label001 # 30: 21f7ff + addi sp, sp, -32 /* (local0) */ # 33: 12c1e0 + s32i a12, sp, 20 /* a12 -> [(local5)] */ # 36: c951 + s32i a13, sp, 24 /* a13 -> [(local6)] */ # 38: d961 + s32i a0, sp, 16 /* a0 -> [(local4)] */ # 3a: 0941 + call0 ets_printf # 3c: 01f9ffc0 + # 40: 0000 + movi a2, chip6_sleep_params # 42: 21f3ff + movi a3, chip6_sleep_params+0x168 # 45: 31f3ff + movi a4, 0 /* 0x00000000 */ # 48: 0c04 + call0 rtc_mem_backup # 4a: 01f6ffc0 + # 4e: 0000 + movi a3, 1 /* 0x00000001 */ # 50: 0c13 + movi a4, 5 /* 0x00000005 */ # 52: 0c54 + movi a5, 7 /* 0x00000007 */ # 54: 0c75 + movi a13, g_phyFuns # 56: d1f0ff + movi a6, 0 /* 0x00000000 */ # 59: 0c06 + l32i a0, a13, 0 /* [g_phyFuns] */ # 5b: 080d + mov a12, a2 # 5d: cd02 + l32i a0, a0, 148 /* [[g_phyFuns]+0x94] */ # 5f: 022025 + movi a2, 98 /* 0x00000062 */ # 62: 22a062 + callx0 a0 /* [[g_phyFuns]+0x94] */ # 65: c00000 + movi a3, 1 /* 0x00000001 */ # 68: 0c13 + movi a4, 6 /* 0x00000006 */ # 6a: 0c64 + movi a5, 4 /* 0x00000004 */ # 6c: 0c45 + movi a6, 0 /* 0x00000000 */ # 6e: 0c06 + l32i a0, a13, 0 /* [g_phyFuns] */ # 70: 080d + s32i a2, sp, 8 /* a2 -> [(local2)] */ # 72: 2921 + l32i a0, a0, 148 /* [[g_phyFuns]+0x94] */ # 74: 022025 + movi a2, 98 /* 0x00000062 */ # 77: 22a062 + callx0 a0 /* [[g_phyFuns]+0x94] */ # 7a: c00000 + movi a3, 4 /* 0x00000004 */ # 7d: 0c43 + movi a4, 3 /* 0x00000003 */ # 7f: 0c34 + movi a5, 4 /* 0x00000004 */ # 81: 0c45 + movi a6, 0 /* 0x00000000 */ # 83: 0c06 + l32i a0, a13, 0 /* [g_phyFuns] */ # 85: 080d + s32i a2, sp, 12 /* a2 -> [(local3)] */ # 87: 2931 + l32i a0, a0, 148 /* [[g_phyFuns]+0x94] */ # 89: 022025 + movi a2, 103 /* 0x00000067 */ # 8c: 22a067 + callx0 a0 /* [[g_phyFuns]+0x94] */ # 8f: c00000 + movi a3, 1 /* 0x00000001 */ # 92: 0c13 + movi a4, 2 /* 0x00000002 */ # 94: 0c24 + movi a5, 4 /* 0x00000004 */ # 96: 0c45 + movi a6, 0 /* 0x00000000 */ # 98: 0c06 + l32i a0, a13, 0 /* [g_phyFuns] */ # 9a: 080d + mov a13, a2 # 9c: dd02 + l32i a0, a0, 148 /* [[g_phyFuns]+0x94] */ # 9e: 022025 + movi a2, 97 /* 0x00000061 */ # a1: 22a061 + callx0 a0 /* [[g_phyFuns]+0x94] */ # a4: c00000 + slli a4, a2, 24 # a7: 804201 + slli a3, a13, 16 # aa: 003d11 + l32i a2, sp, 8 /* [(local2)] */ # ad: 2821 + or a3, a3, a4 # af: 403320 + l32i a4, sp, 12 /* [(local3)] */ # b2: 4831 + extui a2, a2, 0, 8 # b4: 202074 + extui a4, a4, 0, 8 # b7: 404074 + slli a4, a4, 8 # ba: 804411 + or a2, a2, a4 # bd: 402220 + mov a4, a12 # c0: 4d0c + or a2, a2, a3 # c2: 302220 + s32i a2, sp, 0 /* a2 -> [(local0)] */ # c5: 2901 + mov a3, sp /* (local0) */ # c7: 3d01 + mov a2, sp /* (local0) */ # c9: 2d01 + call0 rtc_mem_backup # cb: 01d7ffc0 + # cf: 0000 + movi a5, 0x60000e00 # d1: 51d2ff + memw # d4: c02000 + addi a3, sp, 4 /* (local1) */ # d7: 4b31 + add a12, a12, a2 # d9: 2acc + l32i a5, a5, 0x3fc /* [0x600011fc] */ # db: 5225ff + s32i a5, sp, 4 /* [0x600011fc] -> [(local1)] */ # de: 5911 + addi a2, sp, 4 /* (local1) */ # e0: 4b21 + mov a4, a12 # e2: 4d0c + call0 rtc_mem_backup # e4: 01d2ffc0 + # e8: 0000 + l32i a0, sp, 16 /* [(local4)] */ # ea: 0841 + add a2, a2, a12 # ec: ca22 + l32i a13, sp, 24 /* [(local6)] */ # ee: d861 + l32i a12, sp, 20 /* [(local5)] */ # f0: c851 + addi sp, sp, 32 /* (top of frame) */ # f2: 12c120 + ret # f5: 0df0 + + .literal_position # f8: 000af23f + # fc: aa5555aa + # 100: 890f0000 + # 104: ac540000 + # 108: 20110000 + # 10c: 6c0d0000 + # 110: 00000000 + # 114: 00000000 + # 118: 00000000 + # 11c: 00000000 + +# Function @ .irom0.text+0x120 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 + .global operation_test + .type operation_test, @function +operation_test: + addi sp, sp, -16 /* (local0) */ # 120: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 123: c911 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 125: d921 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 127: 0901 + movi a2, 0x3ff20a00 # 129: 21f3ff + memw # 12c: c02000 + movi a3, 0x00000f89 # 12f: 31f4ff + movi a4, 1234 /* 0x000004d2 */ # 132: 42a4d2 + l32i a2, a2, 0x200 /* [0x3ff20c00] */ # 135: 222280 + movi a5, 0xaa5555aa # 138: 51f1ff + add a4, a2, a4 /* [0x3ff20c00]+0x4d2 */ # 13b: 4a42 + xor a4, a4, a5 # 13d: 504430 + mull a2, a2, a4 # 140: 402282 + mull a2, a2, a3 # 143: 302282 + movi a3, 0x000054ac # 146: 31efff + call0 __udivsi3 # 149: 01f1ffc0 + # 14d: 0000 + movi a3, 0x00001120 # 14f: 31eeff + mull a2, a2, a3 # 152: 302282 + movi a3, 0x00000d6c # 155: 31edff + call0 __udivsi3 # 158: 01efffc0 + # 15c: 0000 + movi a12, 0 /* 0x00000000 */ # 15e: 0c0c + movi a13, 1000 /* 0x000003e8 */ # 160: d2a3e8 +.Lbr001: movi a3, 999 /* 0x000003e7 */ # 163: 32a3e7 + call0 __udivsi3 # 166: 01ecffc0 + # 16a: 0000 + addi a12, a12, 1 # 16c: 1bcc + movi a4, 1120 /* 0x00000460 */ # 16e: 42a460 + mull a2, a2, a4 # 171: 402282 + bne a12, a13, .Lbr001 # 174: d79ceb + movi a12, 0 /* 0x00000000 */ # 177: 0c0c +.Lbr002: movi a3, 985 /* 0x000003d9 */ # 179: 32a3d9 + movi a5, 860 /* 0x0000035c */ # 17c: 52a35c + mull a2, a2, a5 # 17f: 502282 + call0 __udivsi3 # 182: 01e6ffc0 + # 186: 0000 + addi a12, a12, 1 # 188: 1bcc + bne a12, a13, .Lbr002 # 18a: d79ceb + l32i a12, sp, 4 /* [(local1)] */ # 18d: c811 + l32i a13, sp, 8 /* [(local2)] */ # 18f: d821 + l32i a0, sp, 0 /* [(local0)] */ # 191: 0801 + addi sp, sp, 16 /* (top of frame) */ # 193: 12c110 + ret # 196: 0df0 + + .literal_position # 198: 00060060 + +# Function @ .irom0.text+0x19c + .balign 4 + .global slop_wdt_feed + .type slop_wdt_feed, @function +slop_wdt_feed: + movi a2, 115 /* 0x00000073 */ # 19c: 22a073 + movi a3, 0x60000600 # 19f: 31feff + memw # 1a2: c02000 + s32i a2, a3, 0x314 /* 0x00000073 -> [0x60000914] */ # 1a5: 2263c5 + ret /* 0x00000073 */ # 1a8: 0df0 + + .literal_position # 1ac: 04000000 + # 1b0: 00feef3f + # 1b4: 00000000 + # 1b8: 000af23f + # 1bc: 00060060 + # 1c0: 00000000 + # 1c4: 00000000 + # 1c8: 00000000 + # 1cc: 00000000 + # 1d0: 00000000 + # 1d4: 00000000 + # 1d8: 00000000 + # 1dc: 00000000 + +# Function @ .irom0.text+0x1e0 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word[4] @ -0x10 + .balign 4 + .global slop_test + .type slop_test, @function +slop_test: movi a2, .Lstr001 # 1e0: 21f3ff + addi sp, sp, -32 /* (local0) */ # 1e3: 12c1e0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 1e6: c911 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 1e8: d921 + s32i a14, sp, 12 /* a14 -> [(local3)] */ # 1ea: e931 + s32i a15, sp, 16 /* a15 -> [(local4)] */ # 1ec: f941 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1ee: 0901 + call0 ets_printf # 1f0: 01f4ffc0 + # 1f4: 0000 + movi a10, 1 /* 0x00000001 */ # 1f6: 0c1a + movi a9, 0x3feffe00 # 1f8: 91eeff + memw # 1fb: c02000 + l32i a8, a9, 0x214 /* [0x3ff00014] */ # 1fe: 822985 + or a8, a8, a10 # 201: a08820 + memw # 204: c02000 + movi a2, 106 /* 0x0000006a */ # 207: 22a06a + movi a3, 2 /* 0x00000002 */ # 20a: 0c23 + movi a4, 8 /* 0x00000008 */ # 20c: 0c84 + movi a5, 4 /* 0x00000004 */ # 20e: 0c45 + movi a0, g_phyFuns # 210: 01e9ff + movi a6, 0 /* 0x00000000 */ # 213: 0c06 + l32i a0, a0, 0 /* [g_phyFuns] */ # 215: 0800 + movi a7, 0 /* 0x00000000 */ # 217: 0c07 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 219: 022027 + s32i a8, a9, 0x214 /* a8 -> [0x3ff00014] */ # 21c: 826985 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 21f: c00000 + movi a12, 0x3ff20a00 # 222: c1e5ff + memw # 225: c02000 + l32i a11, a12, 0x200 /* [0x3ff20c00] */ # 228: b22c80 + movi a2, 14 /* 0x0000000e */ # 22b: 0ce2 + call0 RFChannelSel # 22d: 01e5ffc0 + # 231: 0000 + movi a13, 0 /* 0x00000000 */ # 233: 0c0d + movi a14, 0x60000600 # 235: e1e1ff + movi a15, 200 /* 0x000000c8 */ # 238: f2a0c8 +.Lbr003: call0 slop_wdt_feed # 23b: 050000 + call0 operation_test # 23e: 050000 + memw # 241: c02000 + s32i a2, a14, 0x138 /* a2 -> [0x60000738] */ # 244: 226e4e + movi a2, 2 /* 0x00000002 */ # 247: 0c22 + call0 pm_set_sleep_mode # 249: 01dfffc0 + # 24d: 0000 + movi a2, 8 /* 0x00000008 */ # 24f: 0c82 + movi a3, 0 /* 0x00000000 */ # 251: 0c03 + call0 pm_wakeup_opt # 253: 01deffc0 + # 257: 0000 + movi a2, 170 /* 0x000000aa */ # 259: 22a0aa + call0 pm_set_sleep_cycles # 25c: 01ddffc0 + # 260: 0000 + memw # 262: c02000 + movi a2, 2 /* 0x00000002 */ # 265: 0c22 + l32i a0, a12, 0x200 /* [0x3ff20c00] */ # 267: 022c80 + call0 pm_goto_sleep # 26a: 01daffc0 + # 26e: 0000 + movi a2, 2 /* 0x00000002 */ # 270: 0c22 + call0 pm_wait4wakeup # 272: 01d9ffc0 + # 276: 0000 + movi a2, 2 /* 0x00000002 */ # 278: 0c22 + movi a3, 0 /* 0x00000000 */ # 27a: 0c03 + call0 pm_wakeup_init # 27c: 01d8ffc0 + # 280: 0000 + memw # 282: c02000 + l32i a3, a12, 0x200 /* [0x3ff20c00] */ # 285: 322c80 + addi a13, a13, 1 # 288: 1bdd + bne a13, a15, .Lbr003 # 28a: f79dad + l32i a12, sp, 4 /* [(local1)] */ # 28d: c811 + l32i a13, sp, 8 /* [(local2)] */ # 28f: d821 + l32i a14, sp, 12 /* [(local3)] */ # 291: e831 + l32i a15, sp, 16 /* [(local4)] */ # 293: f841 + l32i a0, sp, 0 /* [(local0)] */ # 295: 0801 + addi sp, sp, 32 /* (top of frame) */ # 297: 12c120 + ret # 29a: 0df0 + + .literal_position # 29c: 000e0060 + # 2a0: 10000000 + # 2a4: 10000000 + # 2a8: 00000000 + # 2ac: 00000000 + # 2b0: 00000000 + +# Function @ .irom0.text+0x2b4 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global wd_reset_cnt + .type wd_reset_cnt, @function +wd_reset_cnt: + addi sp, sp, -16 /* (local0) */ # 2b4: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 2b7: 0901 + call0 rtc_get_reset_reason # 2b9: 01fbffc0 + # 2bd: 0000 + movi a0, 0x60000e00 # 2bf: 01f7ff + bnei a2, 4, .Lbr004 # 2c2: 664219 + memw # 2c5: c02000 + l32i a3, a0, 0x3fc /* [0x600011fc] */ # 2c8: 3220ff + addi a3, a3, 1 /* [0x600011fc]+0x1 */ # 2cb: 1b33 + memw # 2cd: c02000 + movi a2, .Lstr002 # 2d0: 21f4ff + s32i a3, a0, 0x3fc /* [0x600011fc]+0x1 -> [0x600011fc] */ # 2d3: 3260ff + call0 ets_printf # 2d6: 01f5ffc0 + # 2da: 0000 + j .Lbr006 # 2dc: 860500 +.Lbr004: beqi a2, 2, .Lbr005 # 2df: 262202 + bnei a2, 1, .Lbr006 # 2e2: 661210 +.Lbr005: movi a3, 0 /* 0x00000000 */ # 2e5: 0c03 + memw # 2e7: c02000 + movi a2, .Lstr002 # 2ea: 21eeff + s32i a3, a0, 0x3fc /* 0x00000000 -> [0x600011fc] */ # 2ed: 3260ff + call0 ets_printf # 2f0: 01f0ffc0 + # 2f4: 0000 +.Lbr006: l32i a0, sp, 0 /* [(local0)] */ # 2f6: 0801 + addi sp, sp, 16 /* (top of frame) */ # 2f8: 12c110 + ret # 2fb: 0df0 + + .section .rodata.str1.4, "MSa", @progbits, 1 + +.Label001: .word 0x000a6364 # 0: 64630a00 +.Lstr001: .asciz "slop_test\n" # 4: 736c6f70 + # 8: 5f746573 + # c: 740a00 + .balign 4 +.Lstr002: .asciz "wd_reset %d\n" # 10: 77645f72 + # 14: 65736574 + # 18: 2025640a + # 1c: 00 diff --git a/binary_sdk/libphy_stage1/phy_sleep.S b/binary_sdk/libphy_stage1/phy_sleep.S new file mode 100644 index 0000000..7e06398 --- /dev/null +++ b/binary_sdk/libphy_stage1/phy_sleep.S @@ -0,0 +1,1568 @@ + + .section .text, "ax", @progbits + + .literal_position # 0: ffffff7f + # 4: 00020060 + # 8: 00000080 + # c: ffffff0f + # 10: 00000000 + # 14: 00000000 + # 18: 00000000 + +# Function @ .text+0x1c +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 + .global pm_rtc_clock_cali + .type pm_rtc_clock_cali, @function +pm_rtc_clock_cali: + addi sp, sp, -16 /* (local0) */ # 1c: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1f: 0901 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 21: d921 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 23: c911 + movi a5, 0x7fffffff # 25: 51f6ff + mov a12, a2 /* arg0 */ # 28: cd02 + movi a13, 0x60000200 # 2a: d1f6ff + memw # 2d: c02000 + l32i a4, a13, 0x170 /* [0x60000370] */ # 30: 422d5c + and a4, a4, a5 # 33: 504410 + memw # 36: c02000 + s32i a4, a13, 0x170 /* a4 -> [0x60000370] */ # 39: 426d5c + movi a3, 257 /* 0x00000101 */ # 3c: 32a101 + memw # 3f: c02000 + s32i a3, a13, 0x16c /* 0x00000101 -> [0x6000036c] */ # 42: 326d5b + movi a2, 0x80000000 # 45: 21f0ff + memw # 48: c02000 + l32i a0, a13, 0x16c /* [0x6000036c] */ # 4b: 022d5b + or a0, a0, a2 # 4e: 200020 + memw # 51: c02000 + movi a2, 100 /* 0x00000064 */ # 54: 22a064 + s32i a0, a13, 0x16c /* a0 -> [0x6000036c] */ # 57: 026d5b + call0 ets_delay_us # 5a: 01eeffc0 + # 5e: 0000 + memw # 60: c02000 + l32i a6, a13, 0x170 /* [0x60000370] */ # 63: 622d5c + bltz a6, .Lbr002 # 66: 968600 +.Lbr001: memw # 69: c02000 + l32i a7, a13, 0x170 /* [0x60000370] */ # 6c: 722d5c + bgez a7, .Lbr001 # 6f: d667ff +.Lbr002: movi a3, 0x0fffffff # 72: 31e6ff + memw # 75: c02000 + movi a0, chip6_phy_init_ctrl # 78: 01e6ff + l32i a2, a13, 0x170 /* [0x60000370] */ # 7b: 222d5c + l8ui a0, a0, 1 /* [chip6_phy_init_ctrl+0x1] */ # 7e: 020001 + and a2, a2, a3 # 81: 302210 + beqz a0, .Lbr003 # 84: 8c40 + beqi a0, 1, .Lbr004 # 86: 261007 + beqi a0, 2, .Lbr010 # 89: 26203f +.Lbr003: movi a3, 40 /* 0x00000028 */ # 8c: 2c83 + j .Lbr005 # 8e: 460000 +.Lbr004: movi a3, 26 /* 0x0000001a */ # 91: 1ca3 +.Lbr005: slli a2, a2, 4 # 93: c02211 + call0 __udivsi3 # 96: 01e0ffc0 + # 9a: 0000 + l32i a13, sp, 8 /* [(local2)] */ # 9c: d821 + beqz a2, .Lbr009 # 9e: ac12 + l32i a0, a12, 4 /* [arg0+0x4] */ # a0: 081c + beqz a0, .Lbr008 # a2: 9cb0 + movi a4, 511 /* 0x000001ff */ # a4: 42a1ff + bgeu a0, a2, .Lbr006 # a7: 27b005 + sub a3, a2, a0 # aa: 0032c0 + j .Lbr007 # ad: 860000 +.Lbr006: sub a3, a0, a2 # b0: 2030c0 +.Lbr007: bltu a4, a3, .Lbr009 # b3: 37340c + addx4 a3, a2, a2 # b6: 2032a0 + addx2 a2, a0, a0 # b9: 002090 + add a2, a2, a3 # bc: 3a22 + srli a2, a2, 3 # be: 202341 +.Lbr008: s32i a2, a12, 4 /* a2 -> [arg0+0x4] */ # c1: 291c +.Lbr009: l32i a12, sp, 4 /* [(local1)] */ # c3: c811 + l32i a0, sp, 0 /* [(local0)] */ # c5: 0801 + addi sp, sp, 16 /* (top of frame) */ # c7: 12c110 + ret # ca: 0df0 +.Lbr010: movi a3, 24 /* 0x00000018 */ # cc: 1c83 + j .Lbr005 # ce: 46f0ff + + .literal_position # d4: 00feef3f + +# Function @ .text+0xd8 + .balign 4 + .global clockgate_watchdog + .type clockgate_watchdog, @function +clockgate_watchdog: + movi a4, 0x3feffe00 # d8: 41ffff + beqz a2, .Lbr011 # db: 9c12 + movi a6, -9 /* 0xfffffff7 */ # dd: 7c76 + memw # df: c02000 + l32i a5, a4, 0x218 /* [0x3ff00018] */ # e2: 522486 + and a5, a5, a6 # e5: 605510 + memw # e8: c02000 + s32i a5, a4, 0x218 /* a5 -> [0x3ff00018] */ # eb: 526486 + ret /* arg0 */ # ee: 0df0 +.Lbr011: movi a3, 8 /* 0x00000008 */ # f0: 0c83 + memw # f2: c02000 + l32i a2, a4, 0x218 /* [0x3ff00018] */ # f5: 222486 + or a2, a2, a3 # f8: 302220 + memw # fb: c02000 + s32i a2, a4, 0x218 /* a2 -> [0x3ff00018] */ # fe: 226486 + ret # 101: 0df0 + + .section .data, "aw", @progbits + + .global chip_version + .type chip_version, @object +chip_version: + .word 0xffffffff # 0: ffffffff + + .section .bss, "aw", @nobits + + .global periodic_cal_sat + .type periodic_cal_sat, @object +periodic_cal_sat: + .byte 0x00 + .global software_slp_reject + .type software_slp_reject, @object +software_slp_reject: + .byte 0x00 + .global SDIO_slp_reject + .type SDIO_slp_reject, @object +SDIO_slp_reject: + .byte 0x00 + .global hardware_reject + .type hardware_reject, @object +hardware_reject: + .byte 0x00 + + .section .irom0.text, "ax", @progbits + + .literal_position # 0: ffff0f00 + # 4: 00000000 + # 8: 00000000 + # c: 00000000 + +# Function @ .irom0.text+0x10 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global pm_usec2rtc + .type pm_usec2rtc, @function +pm_usec2rtc: + addi sp, sp, -16 /* (local0) */ # 10: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 13: 0901 + bnez a3, .Lbr012 # 15: cc93 + movi a3, 5 /* 0x00000005 */ # 17: 0c53 + call0 __udivsi3 # 19: 01faffc0 + # 1d: 0000 + j .Lbr014 # 1f: 860600 +.Lbr012: movi a0, 0x000fffff # 22: 01f7ff + bgeu a0, a2, .Lbr013 # 25: 27b00b + call0 __udivsi3 # 28: 01f8ffc0 + # 2c: 0000 + slli a2, a2, 12 # 2e: 402211 + j .Lbr014 # 31: 060200 +.Lbr013: slli a2, a2, 12 # 34: 402211 + call0 __udivsi3 # 37: 01f5ffc0 + # 3b: 0000 +.Lbr014: l32i a0, sp, 0 /* [(local0)] */ # 3d: 0801 + addi sp, sp, 16 /* (top of frame) */ # 3f: 12c110 + ret # 42: 0df0 + +# Function @ .irom0.text+0x44 + .balign 4 + .global pm_rtc2usec + .type pm_rtc2usec, @function +pm_rtc2usec: + mull a2, a2, a3 # 44: 302282 + srli a2, a2, 12 # 47: 202c41 + ret # 4a: 0df0 + + .literal_position # 4c: 00060060 + # 50: 00000000 + # 54: 88130000 + +# Function @ .irom0.text+0x58 + .balign 4 + .global pm_set_sleep_cycles + .type pm_set_sleep_cycles, @function +pm_set_sleep_cycles: + movi a5, 0x60000600 # 58: 51fdff + memw # 5b: c02000 + l32i a4, a5, 0x11c /* [0x6000071c] */ # 5e: 422547 + add a4, a2, a4 # 61: 4a42 + memw # 63: c02000 + movi a6, periodic_cal_sat # 66: 61faff + s32i a4, a5, 0x104 /* a4 -> [0x60000704] */ # 69: 426541 + movi a3, 0x00001388 # 6c: 31faff + movi a5, 1 /* 0x00000001 */ # 6f: 0c15 + bltu a3, a2, .Lbr015 # 71: 273301 + movi a5, 0 /* 0x00000000 */ # 74: 0c05 +.Lbr015: s8i a5, a6, 0 /* a5 -> [periodic_cal_sat] */ # 76: 524600 + ret /* arg0 */ # 79: 0df0 + + .literal_position # 7c: 00000000 + # 80: 00060060 + # 84: 00000000 + # 88: fffffcff + # 8c: 00000100 + # 90: 00020060 + # 94: 00000000 + # 98: ffff7ffe + # 9c: 00008000 + # a0: 00020060 + # a4: 00000000 + # a8: 00000050 + # ac: 00000000 + +# Function @ .irom0.text+0xb0 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global pm_sleep_opt + .type pm_sleep_opt, @function +pm_sleep_opt: + addi sp, sp, -16 /* (local0) */ # b0: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # b3: 0901 + movi a0, chip6_phy_init_ctrl # b5: 01f1ff + s32i a12, sp, 4 /* a12 -> [(local1)] */ # b8: c911 + l8ui a0, a0, 57 /* [chip6_phy_init_ctrl+0x39] */ # ba: 020039 + movi a12, 0x60000600 # bd: c1f0ff + bnez a0, .Lbr016 # c0: dc20 + movi a5, -4 /* 0xfffffffc */ # c2: 7cc5 + memw # c4: c02000 + l32i a3, a12, 0x164 /* [0x60000764] */ # c7: 322c59 + and a3, a3, a5 # ca: 503310 + memw # cd: c02000 + s32i a3, a12, 0x164 /* a3 -> [0x60000764] */ # d0: 326c59 + j .Lbr018 # d3: 860700 +.Lbr016: bnei a0, 1, .Lbr017 # d6: 661007 + movi a6, 32 /* 0x00000020 */ # d9: 2c06 + or a4, a4, a6 # db: 604420 + j .Lbr018 # de: c60400 +.Lbr017: bnei a0, 2, .Lbr018 # e1: 662010 + movi a8, 3 /* 0x00000003 */ # e4: 0c38 + memw # e6: c02000 + l32i a7, a12, 0x164 /* [0x60000764] */ # e9: 722c59 + or a7, a7, a8 # ec: 807720 + memw # ef: c02000 + s32i a7, a12, 0x164 /* a7 -> [0x60000764] */ # f2: 726c59 +.Lbr018: movi a3, 0 /* 0x00000000 */ # f5: 0c03 + movi a0, g_phyFuns # f7: 01e3ff + memw # fa: c02000 + s32i a3, a12, 0x140 /* 0x00000000 -> [0x60000740] */ # fd: 326c50 + memw # 100: c02000 + s32i a2, a12, 0x144 /* arg0 -> [0x60000744] */ # 103: 226c51 + memw # 106: c02000 + movi a2, 119 /* 0x00000077 */ # 109: 22a077 + movi a5, 5 /* 0x00000005 */ # 10c: 0c55 + movi a6, 5 /* 0x00000005 */ # 10e: 0c56 + movi a7, 1 /* 0x00000001 */ # 110: 0c17 + l32i a0, a0, 0 /* [g_phyFuns] */ # 112: 0800 + s32i a4, a12, 0x100 /* a4 -> [0x60000700] */ # 114: 426c40 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 117: 022027 + movi a4, 28 /* 0x0000001c */ # 11a: 1cc4 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 11c: c00000 + movi a5, 0xfffcffff # 11f: 51daff + movi a4, 0x00010000 # 122: 41daff + movi a3, 0x60000200 # 125: 31daff + memw # 128: c02000 + l32i a2, a3, 0x3c8 /* [0x600005c8] */ # 12b: 2223f2 + and a2, a2, a5 # 12e: 502210 + or a2, a2, a4 # 131: 402220 + memw # 134: c02000 + s32i a2, a3, 0x3c8 /* a2 -> [0x600005c8] */ # 137: 2263f2 + movi a2, 1 /* 0x00000001 */ # 13a: 0c12 + call0 ets_delay_us # 13c: 01dcffc0 + # 140: 0000 + movi a2, 119 /* 0x00000077 */ # 142: 22a077 + movi a3, 0 /* 0x00000000 */ # 145: 0c03 + movi a4, 28 /* 0x0000001c */ # 147: 1cc4 + movi a0, g_phyFuns # 149: 01d2ff + movi a5, 5 /* 0x00000005 */ # 14c: 0c55 + l32i a0, a0, 0 /* [g_phyFuns] */ # 14e: 0800 + movi a6, 5 /* 0x00000005 */ # 150: 0c56 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 152: 022027 + movi a7, 0 /* 0x00000000 */ # 155: 0c07 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 157: c00000 + movi a5, 0xfe7fffff # 15a: 51cfff + movi a4, 0x00800000 # 15d: 41cfff + memw # 160: c02000 + movi a3, 0x60000200 # 163: 31cfff + l32i a2, a3, 0x3e8 /* [0x600005e8] */ # 166: 2223fa + and a2, a2, a5 # 169: 502210 + or a2, a2, a4 # 16c: 402220 + memw # 16f: c02000 + movi a4, 3 /* 0x00000003 */ # 172: 0c34 + movi a5, 7 /* 0x00000007 */ # 174: 0c75 + movi a6, 4 /* 0x00000004 */ # 176: 0c46 + movi a0, g_phyFuns # 178: 01cbff + movi a7, 0 /* 0x00000000 */ # 17b: 0c07 + l32i a0, a0, 0 /* [g_phyFuns] */ # 17d: 0800 + s32i a2, a3, 0x3e8 /* a2 -> [0x600005e8] */ # 17f: 2263fa + movi a2, 98 /* 0x00000062 */ # 182: 22a062 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # 185: 022027 + movi a3, 1 /* 0x00000001 */ # 188: 0c13 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # 18a: c00000 + movi a6, 0x50000000 # 18d: 61c6ff + memw # 190: c02000 + s32i a6, a12, 0x110 /* 0x50000000 -> [0x60000710] */ # 193: 626c44 + l32i a12, sp, 4 /* [(local1)] */ # 196: c811 + l32i a0, sp, 0 /* [(local0)] */ # 198: 0801 + addi sp, sp, 16 /* (top of frame) */ # 19a: 12c110 + ret # 19d: 0df0 + + .literal_position # 1a0: 00060060 + +# Function @ .irom0.text+0x1a4 + .balign 4 + .global pm_wakeup_opt + .type pm_wakeup_opt, @function +pm_wakeup_opt: + movi a8, -64 /* 0xffffffc0 */ # 1a4: 82afc0 + movi a5, 0x60000600 # 1a7: 51feff + memw # 1aa: c02000 + l32i a7, a5, 0x118 /* [0x60000718] */ # 1ad: 722546 + and a7, a7, a8 # 1b0: 807710 + or a7, a7, a2 # 1b3: 207720 + memw # 1b6: c02000 + s32i a7, a5, 0x118 /* a7 -> [0x60000718] */ # 1b9: 726546 + movi a6, -2 /* 0xfffffffe */ # 1bc: 7ce6 + memw # 1be: c02000 + l32i a4, a5, 0x1a8 /* [0x600007a8] */ # 1c1: 42256a + and a4, a4, a6 # 1c4: 604410 + or a4, a4, a3 # 1c7: 304420 + memw # 1ca: c02000 + s32i a4, a5, 0x1a8 /* a4 -> [0x600007a8] */ # 1cd: 42656a + ret /* arg0 */ # 1d0: 0df0 + + .literal_position # 1d4: 00000000 + # 1d8: 00800000 + # 1dc: 0000000f + # 1e0: 00feef3f + +# Function @ .irom0.text+0x1e4 + .balign 4 + .global get_chip_version + .type get_chip_version, @function +get_chip_version: + movi a6, chip_version # 1e4: 61fcff + l32i a2, a6, 0 /* [chip_version] */ # 1e7: 2806 + bnei a2, -1, .Lbr020 # 1e9: 660225 + movi a5, 0x00008000 # 1ec: 51fbff + movi a4, 0x0f000000 # 1ef: 41fbff + movi a2, 0x3feffe00 # 1f2: 21fbff + memw # 1f5: c02000 + l32i a3, a2, 0x258 /* [0x3ff00058] */ # 1f8: 322296 + and a3, a3, a5 # 1fb: 503310 + srli a3, a3, 15 # 1fe: 303f41 + bnei a3, 1, .Lbr021 # 201: 66130f + memw # 204: c02000 + l32i a2, a2, 0x254 /* [0x3ff00054] */ # 207: 222295 +.Lbr019: and a2, a2, a4 # 20a: 402210 + extui a2, a2, 24, 8 # 20d: 202875 + s32i a2, a6, 0 /* a2 -> [chip_version] */ # 210: 2906 +.Lbr020: ret # 212: 0df0 +.Lbr021: memw # 214: c02000 + l32i a2, a2, 0x25c /* [0x3ff0005c] */ # 217: 222297 + j .Lbr019 # 21a: 06fbff + + .literal_position # 220: 50008000 + # 224: 00000000 + # 228: 50008000 + # 22c: 00008000 + +# Function @ .irom0.text+0x230 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global pm_sleep_opt_bb_off + .type pm_sleep_opt_bb_off, @function +pm_sleep_opt_bb_off: + addi sp, sp, -16 /* (local0) */ # 230: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 233: 0901 + call0 get_chip_version # 235: 050000 + beqi a2, 2, .Lbr022 # 238: 26220c + movi a2, 4 /* 0x00000004 */ # 23b: 0c42 + movi a3, 0 /* 0x00000000 */ # 23d: 0c03 + movi a4, 0x00800050 # 23f: 41f8ff + call0 pm_sleep_opt # 242: 050000 + j .Lbr024 # 245: c60700 +.Lbr022: movi a0, chip6_phy_init_ctrl # 248: 01f7ff + l8ui a0, a0, 101 /* [chip6_phy_init_ctrl+0x65] */ # 24b: 020065 + bnei a0, 2, .Lbr023 # 24e: 66200c + movi a2, 4 /* 0x00000004 */ # 251: 0c42 + movi a3, 0 /* 0x00000000 */ # 253: 0c03 + movi a4, 0x00800050 # 255: 41f4ff + call0 pm_sleep_opt # 258: 050000 + j .Lbr024 # 25b: 460200 +.Lbr023: movi a2, 4 /* 0x00000004 */ # 25e: 0c42 + movi a3, 0 /* 0x00000000 */ # 260: 0c03 + movi a4, 0x00800000 # 262: 41f2ff + call0 pm_sleep_opt # 265: 050000 +.Lbr024: l32i a0, sp, 0 /* [(local0)] */ # 268: 0801 + addi sp, sp, 16 /* (top of frame) */ # 26a: 12c110 + ret # 26d: 0df0 + + .literal_position # 270: 50008000 + # 274: 00000000 + # 278: 50008000 + # 27c: 00008000 + +# Function @ .irom0.text+0x280 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global pm_sleep_opt_bb_on + .type pm_sleep_opt_bb_on, @function +pm_sleep_opt_bb_on: + addi sp, sp, -16 /* (local0) */ # 280: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 283: 0901 + call0 get_chip_version # 285: 050000 + beqi a2, 2, .Lbr025 # 288: 26220c + movi a2, 0 /* 0x00000000 */ # 28b: 0c02 + movi a3, 0 /* 0x00000000 */ # 28d: 0c03 + movi a4, 0x00800050 # 28f: 41f8ff + call0 pm_sleep_opt # 292: 050000 + j .Lbr027 # 295: c60700 +.Lbr025: movi a0, chip6_phy_init_ctrl # 298: 01f7ff + l8ui a0, a0, 101 /* [chip6_phy_init_ctrl+0x65] */ # 29b: 020065 + bnei a0, 2, .Lbr026 # 29e: 66200c + movi a2, 0 /* 0x00000000 */ # 2a1: 0c02 + movi a3, 0 /* 0x00000000 */ # 2a3: 0c03 + movi a4, 0x00800050 # 2a5: 41f4ff + call0 pm_sleep_opt # 2a8: 050000 + j .Lbr027 # 2ab: 460200 +.Lbr026: movi a2, 0 /* 0x00000000 */ # 2ae: 0c02 + movi a3, 0 /* 0x00000000 */ # 2b0: 0c03 + movi a4, 0x00800000 # 2b2: 41f2ff + call0 pm_sleep_opt # 2b5: 050000 +.Lbr027: l32i a0, sp, 0 /* [(local0)] */ # 2b8: 0801 + addi sp, sp, 16 /* (top of frame) */ # 2ba: 12c110 + ret # 2bd: 0df0 + + .literal_position # 2c0: 00060060 + # 2c4: 00000000 + # 2c8: 28e00100 + # 2cc: 3c200300 + # 2d0: 64800c00 + +# Function @ .irom0.text+0x2d4 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global pm_set_pll_xtal_wait_time + .type pm_set_pll_xtal_wait_time, @function +pm_set_pll_xtal_wait_time: + addi sp, sp, -16 /* (local0) */ # 2d4: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 2d7: 0901 + call0 get_chip_version # 2d9: 050000 + movi a0, 0x60000600 # 2dc: 01f9ff + beqi a2, 1, .Lbr030 # 2df: 26122b + beqz a2, .Lbr030 # 2e2: ac82 + movi a2, chip6_phy_init_ctrl # 2e4: 21f8ff + l8ui a3, a2, 1 /* [chip6_phy_init_ctrl+0x1] */ # 2e7: 320201 + l8ui a4, a2, 101 /* [chip6_phy_init_ctrl+0x65] */ # 2ea: 420265 + beqz a3, .Lbr029 # 2ed: 9c13 + beqi a4, 2, .Lbr029 # 2ef: 26240f + movi a5, 0x0001e028 # 2f2: 51f5ff + memw # 2f5: c02000 + s32i a5, a0, 0x10c /* 0x0001e028 -> [0x6000070c] */ # 2f8: 526043 +.Lbr028: l32i a0, sp, 0 /* [(local0)] */ # 2fb: 0801 + addi sp, sp, 16 /* (top of frame) */ # 2fd: 12c110 + ret # 300: 0df0 +.Lbr029: movi a6, 0x0003203c # 302: 61f2ff + memw # 305: c02000 + s32i a6, a0, 0x10c /* 0x0003203c -> [0x6000070c] */ # 308: 626043 + j .Lbr028 # 30b: 06fbff +.Lbr030: movi a7, 0x000c8064 # 30e: 71f0ff + memw # 311: c02000 + s32i a7, a0, 0x10c /* 0x000c8064 -> [0x6000070c] */ # 314: 726043 + j .Lbr028 # 317: 06f8ff + + .literal_position # 31c: 00000000 + # 320: 00060060 + +# Function @ .irom0.text+0x324 + .balign 4 + .global pm_prepare_to_sleep + .type pm_prepare_to_sleep, @function +pm_prepare_to_sleep: + movi a3, chip6_phy_init_ctrl # 324: 31feff + l8ui a2, a3, 57 /* [chip6_phy_init_ctrl+0x39] */ # 327: 220339 + l8ui a3, a3, 58 /* [chip6_phy_init_ctrl+0x3a] */ # 32a: 32033a + beqi a2, 2, .Lbr031 # 32d: 262210 + beqi a3, 1, .Lbr031 # 330: 26130d + beqi a3, 3, .Lbr031 # 333: 26330a + movi a3, 2 /* 0x00000002 */ # 336: 0c23 + movi a4, 0x60000600 # 338: 41faff + memw # 33b: c02000 + s32i a3, a4, 0x1a0 /* 0x00000002 -> [0x600007a0] */ # 33e: 326468 +.Lbr031: ret /* [chip6_phy_init_ctrl+0x39] */ # 341: 0df0 + + .literal_position # 344: ffffefff + # 348: 00feef3f + # 34c: 00020060 + # 350: 11200000 + # 354: 000a0060 + +# Function @ .irom0.text+0x358 + .balign 4 + .global pm_sdio_nidle + .type pm_sdio_nidle, @function +pm_sdio_nidle: + movi a7, 0xffefffff # 358: 71fbff + movi a8, 0x3feffe00 # 35b: 81fbff + memw # 35e: c02000 + l32i a6, a8, 0x218 /* [0x3ff00018] */ # 361: 622886 + movi a2, 0x60000200 # 364: 21faff + and a6, a6, a7 # 367: 706610 + memw # 36a: c02000 + l32i a2, a2, 0x118 /* [0x60000318] */ # 36d: 222246 + movi a7, 0x00002011 # 370: 71f8ff + bbci a2, 18, .Lbr034 # 373: 277251 + movi a5, 0x60000a00 # 376: 51f7ff + memw # 379: c02000 + l32i a9, a5, 0x158 /* [0x60000b58] */ # 37c: 922556 + beq a9, a7, .Lbr033 # 37f: 771903 +.Lbr032: movi a2, 1 /* 0x00000001 */ # 382: 0c12 + ret /* 0x00000001 */ # 384: 0df0 +.Lbr033: memw # 386: c02000 + l32i a2, a5, 0x13c /* [0x60000b3c] */ # 389: 22254f + extui a10, a2, 18, 2 # 38c: 20a215 + bnei a10, 3, .Lbr032 # 38f: 663aef + extui a11, a2, 20, 3 # 392: 20b425 + bnei a11, 2, .Lbr032 # 395: 662be9 + extui a3, a2, 23, 9 # 398: 203785 + movi a9, 127 /* 0x0000007f */ # 39b: 92a07f + bany a9, a3, .Lbr032 # 39e: 3789e0 + memw # 3a1: c02000 + l32i a2, a5, 0x13c /* [0x60000b3c] */ # 3a4: 22254f + extui a4, a2, 18, 2 # 3a7: 204215 + bnei a4, 3, .Lbr032 # 3aa: 6634d4 + extui a10, a2, 20, 3 # 3ad: 20a425 + bnei a10, 2, .Lbr032 # 3b0: 662ace + extui a11, a2, 23, 9 # 3b3: 20b785 + bany a9, a11, .Lbr032 # 3b6: b789c8 + memw # 3b9: c02000 + l32i a2, a5, 0x158 /* [0x60000b58] */ # 3bc: 222556 + bne a2, a7, .Lbr032 # 3bf: 7792bf + memw # 3c2: c02000 + s32i a6, a8, 0x218 /* a6 -> [0x3ff00018] */ # 3c5: 626886 +.Lbr034: movi a2, 0 /* 0x00000000 */ # 3c8: 0c02 + ret /* 0x00000000 */ # 3ca: 0df0 + + .literal_position # 3cc: 00000000 + # 3d0: 00000000 + # 3d4: 00000000 + # 3d8: 000a0060 + # 3dc: 00060060 + # 3e0: 00001000 + +# Function @ .irom0.text+0x3e4 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global pm_goto_sleep + .type pm_goto_sleep, @function +pm_goto_sleep: + addi sp, sp, -16 /* (local0) */ # 3e4: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 3e7: 0901 + beqi a2, 1, .Lbr037 # 3e9: 26120b + beqi a2, 2, .Lbr037 # 3ec: 262208 +.Lbr035: movi a2, 1 /* 0x00000001 */ # 3ef: 0c12 +.Lbr036: l32i a0, sp, 0 /* [(local0)] */ # 3f1: 0801 + addi sp, sp, 16 /* (top of frame) */ # 3f3: 12c110 + ret # 3f6: 0df0 +.Lbr037: call0 pm_sdio_nidle # 3f8: 050000 + movi a3, periodic_cal_sat # 3fb: 31f4ff + movi a4, periodic_cal_flag # 3fe: 41f4ff + s8i a2, a3, 2 /* a2 -> [SDIO_slp_reject] */ # 401: 224302 + l8ui a4, a4, 0 /* [periodic_cal_flag] */ # 404: 420400 + l8ui a0, a3, 0 /* [periodic_cal_sat] */ # 407: 020300 + s8i a2, a3, 1 /* a2 -> [software_slp_reject] */ # 40a: 224301 + and a0, a0, a4 # 40d: 400010 + or a0, a2, a0 # 410: 000220 + s8i a0, a3, 1 /* a0 -> [software_slp_reject] */ # 413: 024301 + extui a0, a0, 0, 8 # 416: 000074 + bnez a0, .Lbr035 # 419: 5620fd + movi a3, bbpll_cal_flag # 41c: 31eeff + movi a2, 1 /* 0x00000001 */ # 41f: 0c12 + s8i a2, a3, 0 /* 0x01 -> [bbpll_cal_flag] */ # 421: 224300 + movi a6, 0x60000a00 # 424: 61edff + movi a0, -1 /* 0xffffffff */ # 427: 7cf0 + movi a10, 0x60000600 # 429: a1ecff + memw # 42c: c02000 + s32i a0, a10, 0x124 /* 0xffffffff -> [0x60000724] */ # 42f: 026a49 + movi a11, 0x00100000 # 432: b1ebff + memw # 435: c02000 + l32i a9, a10, 0x108 /* [0x60000708] */ # 438: 922a42 + or a9, a9, a11 # 43b: b09920 + memw # 43e: c02000 + s32i a9, a10, 0x108 /* a9 -> [0x60000708] */ # 441: 926a42 + movi a7, 8 /* 0x00000008 */ # 444: 0c87 + movi a8, -13 /* 0xfffffff3 */ # 446: 7c38 + memw # 448: c02000 + l32i a5, a6, 0x340 /* [0x60000d40] */ # 44b: 5226d0 + and a5, a5, a8 # 44e: 805510 + or a5, a5, a7 # 451: 705520 + memw # 454: c02000 + s32i a5, a6, 0x340 /* a5 -> [0x60000d40] */ # 457: 5266d0 + movi a2, 0 /* 0x00000000 */ # 45a: 0c02 + j .Lbr036 # 45c: 46e4ff + + .literal_position # 460: 00000000 + # 464: 00060060 + +# Function @ .irom0.text+0x468 + .balign 4 + .global pm_wait4wakeup + .type pm_wait4wakeup, @function +pm_wait4wakeup: + beqi a2, 1, .Lbr038 # 468: 261202 + bnei a2, 2, .Lbr041 # 46b: 66222f +.Lbr038: movi a5, periodic_cal_sat # 46e: 51fcff + l8ui a2, a5, 1 /* [software_slp_reject] */ # 471: 220501 + bnez a2, .Lbr041 # 474: ec62 + movi a2, 0x60000600 # 476: 21fbff + memw # 479: c02000 + l32i a3, a2, 0x128 /* [0x60000728] */ # 47c: 32224a + extui a3, a3, 0, 2 # 47f: 303014 + bnez a3, .Lbr040 # 482: cca3 +.Lbr039: memw # 484: c02000 + l32i a4, a2, 0x128 /* [0x60000728] */ # 487: 42224a + extui a4, a4, 0, 2 # 48a: 404014 + beqz a4, .Lbr039 # 48d: 1634ff +.Lbr040: movi a7, 2 /* 0x00000002 */ # 490: 0c27 + memw # 492: c02000 + l32i a6, a2, 0x128 /* [0x60000728] */ # 495: 62224a + and a6, a6, a7 # 498: 706610 + s8i a6, a5, 3 /* a6 -> [hardware_reject] */ # 49b: 624503 +.Lbr041: ret # 49e: 0df0 + + .literal_position # 4a0: 000000fe + # 4a4: 00020060 + # 4a8: 00060060 + # 4ac: 00000001 + # 4b0: fffffcff + +# Function @ .irom0.text+0x4b4 + .balign 4 + .global pm_open_rf + .type pm_open_rf, @function +pm_open_rf: movi a8, 0xfe000000 # 4b4: 81fbff + movi a3, 0x60000200 # 4b7: 31fbff + movi a6, 0x60000600 # 4ba: 61fbff + memw # 4bd: c02000 + s32i a8, a6, 0x110 /* 0xfe000000 -> [0x60000710] */ # 4c0: 826644 + movi a7, 0 /* 0x00000000 */ # 4c3: 0c07 + memw # 4c5: c02000 + s32i a7, a6, 0x144 /* 0x00000000 -> [0x60000744] */ # 4c8: 726651 + movi a5, 0x01000000 # 4cb: 51f8ff + memw # 4ce: c02000 + s32i a5, a6, 0x100 /* 0x01000000 -> [0x60000700] */ # 4d1: 526640 + movi a4, 0xfffcffff # 4d4: 41f7ff + memw # 4d7: c02000 + l32i a2, a3, 0x3c8 /* [0x600005c8] */ # 4da: 2223f2 + and a2, a2, a4 # 4dd: 402210 + memw # 4e0: c02000 + s32i a2, a3, 0x3c8 /* a2 -> [0x600005c8] */ # 4e3: 2263f2 + ret # 4e6: 0df0 + + .literal_position # 4e8: 33330000 + # 4ec: 00fef13f + # 4f0: 000af23f + # 4f4: ffff3fff + # 4f8: 00008000 + # 4fc: fffffffc + # 500: 00000002 + # 504: ffffffcf + # 508: 00000020 + # 50c: ffffff3f + # 510: 00000080 + # 514: ffffff7f + +# Function @ .irom0.text+0x518 + .balign 4 + .global pm_sleep_set_mac + .type pm_sleep_set_mac, @function +pm_sleep_set_mac: + movi a10, 0x00003333 # 518: a1f4ff + movi a3, 0x3ff1fe00 # 51b: 31f4ff + movi a6, 0x3ff20a00 # 51e: 61f4ff + memw # 521: c02000 + s32i a10, a6, 0x3e0 /* 0x00003333 -> [0x3ff20de0] */ # 524: a266f8 + movi a9, 0xff3fffff # 527: 91f3ff + movi a8, 0x00800000 # 52a: 81f3ff + memw # 52d: c02000 + l32i a7, a6, 0x274 /* [0x3ff20c74] */ # 530: 72269d + and a7, a7, a9 # 533: 907710 + or a7, a7, a8 # 536: 807720 + memw # 539: c02000 + s32i a7, a6, 0x274 /* a7 -> [0x3ff20c74] */ # 53c: 72669d + movi a5, 0xfcffffff # 53f: 51efff + movi a4, 0x02000000 # 542: 41efff + memw # 545: c02000 + l32i a2, a6, 0x274 /* [0x3ff20c74] */ # 548: 22269d + and a2, a2, a5 # 54b: 502210 + or a2, a2, a4 # 54e: 402220 + memw # 551: c02000 + s32i a2, a6, 0x274 /* a2 -> [0x3ff20c74] */ # 554: 22669d + movi a11, 0xcfffffff # 557: b1ebff + movi a10, 0x20000000 # 55a: a1ebff + memw # 55d: c02000 + l32i a9, a6, 0x274 /* [0x3ff20c74] */ # 560: 92269d + and a9, a9, a11 # 563: b09910 + or a9, a9, a10 # 566: a09920 + memw # 569: c02000 + s32i a9, a6, 0x274 /* a9 -> [0x3ff20c74] */ # 56c: 92669d + movi a8, 0x3fffffff # 56f: 81e7ff + movi a7, 0x80000000 # 572: 71e7ff + memw # 575: c02000 + l32i a5, a6, 0x274 /* [0x3ff20c74] */ # 578: 52269d + and a5, a5, a8 # 57b: 805510 + or a5, a5, a7 # 57e: 705520 + memw # 581: c02000 + s32i a5, a6, 0x274 /* a5 -> [0x3ff20c74] */ # 584: 52669d + movi a4, 0x7fffffff # 587: 41e3ff + memw # 58a: c02000 + l32i a2, a3, 0x204 /* [0x3ff20004] */ # 58d: 222381 + and a2, a2, a4 # 590: 402210 + memw # 593: c02000 + s32i a2, a3, 0x204 /* a2 -> [0x3ff20004] */ # 596: 226381 + ret # 599: 0df0 + + .literal_position # 59c: 00000000 + # 5a0: 000af23f + # 5a4: ffffff3f + # 5a8: 00fef13f + # 5ac: ffffffcf + # 5b0: fffffffc + # 5b4: ffff3fff + # 5b8: 00000080 + +# Function @ .irom0.text+0x5bc +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global pm_set_wakeup_mac + .type pm_set_wakeup_mac, @function +pm_set_wakeup_mac: + movi a4, chip6_phy_init_ctrl # 5bc: 41f8ff + addi sp, sp, -16 /* (local0) */ # 5bf: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 5c2: c911 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 5c4: 0901 + l8ui a0, a4, 53 /* [chip6_phy_init_ctrl+0x35] */ # 5c6: 020435 + movi a12, 0x3ff20a00 # 5c9: c1f5ff + beqi a0, 1, .Lbr043 # 5cc: 261076 + beqi a0, 3, .Lbr043 # 5cf: 263073 + beqi a0, 4, .Lbr043 # 5d2: 264070 + beqi a0, 5, .Lbr043 # 5d5: 26506d + movi a0, 0 /* 0x00000000 */ # 5d8: 0c00 + memw # 5da: c02000 + s32i a0, a12, 0x3e0 /* 0x00000000 -> [0x3ff20de0] */ # 5dd: 026cf8 +.Lbr042: movi a0, 0x3fffffff # 5e0: 01f1ff + movi a3, 0x3ff1fe00 # 5e3: 31f1ff + memw # 5e6: c02000 + l32i a11, a12, 0x274 /* [0x3ff20c74] */ # 5e9: b22c9d + and a11, a11, a0 # 5ec: 00bb10 + memw # 5ef: c02000 + s32i a11, a12, 0x274 /* a11 -> [0x3ff20c74] */ # 5f2: b26c9d + movi a10, 0xcfffffff # 5f5: a1edff + memw # 5f8: c02000 + l32i a9, a12, 0x274 /* [0x3ff20c74] */ # 5fb: 922c9d + and a9, a9, a10 # 5fe: a09910 + memw # 601: c02000 + s32i a9, a12, 0x274 /* a9 -> [0x3ff20c74] */ # 604: 926c9d + movi a8, 0xfcffffff # 607: 81eaff + memw # 60a: c02000 + l32i a7, a12, 0x274 /* [0x3ff20c74] */ # 60d: 722c9d + and a7, a7, a8 # 610: 807710 + memw # 613: c02000 + s32i a7, a12, 0x274 /* a7 -> [0x3ff20c74] */ # 616: 726c9d + movi a6, 0xff3fffff # 619: 61e6ff + memw # 61c: c02000 + l32i a5, a12, 0x274 /* [0x3ff20c74] */ # 61f: 522c9d + and a5, a5, a6 # 622: 605510 + memw # 625: c02000 + s32i a5, a12, 0x274 /* a5 -> [0x3ff20c74] */ # 628: 526c9d + movi a4, 0x80000000 # 62b: 41e3ff + memw # 62e: c02000 + l32i a2, a3, 0x204 /* [0x3ff20004] */ # 631: 222381 + or a2, a2, a4 # 634: 402220 + memw # 637: c02000 + s32i a2, a3, 0x204 /* a2 -> [0x3ff20004] */ # 63a: 226381 + l32i a12, sp, 4 /* [(local1)] */ # 63d: c811 + l32i a0, sp, 0 /* [(local0)] */ # 63f: 0801 + addi sp, sp, 16 /* (top of frame) */ # 641: 12c110 + ret # 644: 0df0 +.Lbr043: l8ui a2, a4, 54 /* [chip6_phy_init_ctrl+0x36] */ # 646: 220436 + call0 pm_unmask_bt # 649: 050000 + j .Lbr042 # 64c: 06e4ff + + .literal_position # 650: 87130000 + # 654: 0002f23f + # 658: 00fef13f + # 65c: 00000000 + # 660: 00000000 + +# Function @ .irom0.text+0x664 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word[4] @ -0x10 + .balign 4 + .global pm_check_mac_idle + .type pm_check_mac_idle, @function +pm_check_mac_idle: + movi a2, 20 /* 0x00000014 */ # 664: 1c42 + addi sp, sp, -32 /* (local0) */ # 666: 12c1e0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 669: c911 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 66b: d921 + s32i a14, sp, 12 /* a14 -> [(local3)] */ # 66d: e931 + s32i a15, sp, 16 /* a15 -> [(local4)] */ # 66f: f941 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 671: 0901 + call0 os_delay_us # 673: 01faffc0 + # 677: 0000 + movi a12, 0 /* 0x00000000 */ # 679: 0c0c + movi a14, 0x00001387 # 67b: e1f5ff + movi a13, 0x3ff20200 # 67e: d1f5ff + movi a15, 0x3ff1fe00 # 681: f1f5ff +.Lbr044: memw # 684: c02000 + l32i a0, a13, 0x210 /* [0x3ff20410] */ # 687: 022d84 + extui a0, a0, 0, 4 # 68a: 000034 + bnez a0, .Lbr045 # 68d: cc90 + memw # 68f: c02000 + l32i a2, a15, 0x3d0 /* [0x3ff201d0] */ # 692: 222ff4 + extui a2, a2, 12, 4 # 695: 202c34 + beqz a2, .Lbr046 # 698: 9c02 +.Lbr045: movi a2, 2 /* 0x00000002 */ # 69a: 0c22 + call0 os_delay_us # 69c: 01f1ffc0 + # 6a0: 0000 + mov a3, a12 # 6a2: 3d0c + addi a12, a12, 1 # 6a4: 1bcc + extui a12, a12, 0, 16 # 6a6: c0c0f4 + bgeu a14, a3, .Lbr044 # 6a9: 37bed7 +.Lbr046: l32i a12, sp, 4 /* [(local1)] */ # 6ac: c811 + l32i a13, sp, 8 /* [(local2)] */ # 6ae: d821 + l32i a14, sp, 12 /* [(local3)] */ # 6b0: e831 + l32i a15, sp, 16 /* [(local4)] */ # 6b2: f841 + l32i a0, sp, 0 /* [(local0)] */ # 6b4: 0801 + addi sp, sp, 32 /* (top of frame) */ # 6b6: 12c120 + ret # 6b9: 0df0 + + .literal_position # 6bc: 00000000 + # 6c0: 00060060 + # 6c4: 00000000 + # 6c8: 00000000 + # 6cc: 00000000 + # 6d0: 00000000 + +# Function @ .irom0.text+0x6d4 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global pm_set_sleep_btco + .type pm_set_sleep_btco, @function +pm_set_sleep_btco: + addi sp, sp, -16 /* (local0) */ # 6d4: 12c1f0 + movi a3, chip6_phy_init_ctrl # 6d7: 31f9ff + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 6da: 0901 + l8ui a0, a3, 53 /* [chip6_phy_init_ctrl+0x35] */ # 6dc: 020335 + movi a4, -305 /* 0xfffffecf */ # 6df: 42aecf + beqi a0, 1, .Lbr048 # 6e2: 26100f + beqi a0, 3, .Lbr048 # 6e5: 26300c + beqi a0, 4, .Lbr048 # 6e8: 264009 + beqi a0, 5, .Lbr048 # 6eb: 265006 +.Lbr047: l32i a0, sp, 0 /* [(local0)] */ # 6ee: 0801 + addi sp, sp, 16 /* (top of frame) */ # 6f0: 12c110 + ret # 6f3: 0df0 +.Lbr048: movi a6, 48 /* 0x00000030 */ # 6f5: 3c06 + movi a2, 0x60000600 # 6f7: 21f2ff + memw # 6fa: c02000 + l32i a5, a2, 0x214 /* [0x60000814] */ # 6fd: 522285 + and a5, a5, a4 # 700: 405510 + or a5, a5, a6 # 703: 605520 + memw # 706: c02000 + s32i a5, a2, 0x214 /* a5 -> [0x60000814] */ # 709: 526285 + memw # 70c: c02000 + l32i a0, a2, 0x234 /* [0x60000834] */ # 70f: 02228d + and a0, a0, a4 # 712: 400010 + memw # 715: c02000 + s32i a0, a2, 0x234 /* a0 -> [0x60000834] */ # 718: 02628d + l8ui a0, a3, 53 /* [chip6_phy_init_ctrl+0x35] */ # 71b: 020335 + beqi a0, 1, .Lbr050 # 71e: 26102d + beqi a0, 3, .Lbr050 # 721: 26302a + beqi a0, 4, .Lbr049 # 724: 264002 + bnei a0, 5, .Lbr047 # 727: 6650c3 +.Lbr049: l8ui a6, a3, 54 /* [chip6_phy_init_ctrl+0x36] */ # 72a: 620336 + bltui a6, 2, .Lbr047 # 72d: b626bd + movi a2, 0 /* 0x00000000 */ # 730: 0c02 + movi a3, 1 /* 0x00000001 */ # 732: 0c13 + movi a4, 1 /* 0x00000001 */ # 734: 0c14 + movi a5, 0 /* 0x00000000 */ # 736: 0c05 + call0 gpio_output_set # 738: 01e3ffc0 + # 73c: 0000 + movi a2, 8 /* 0x00000008 */ # 73e: 0c82 + movi a3, 0 /* 0x00000000 */ # 740: 0c03 + movi a4, 8 /* 0x00000008 */ # 742: 0c84 + movi a5, 0 /* 0x00000000 */ # 744: 0c05 + call0 gpio_output_set # 746: 01e0ffc0 + # 74a: 0000 + j .Lbr047 # 74c: 86e7ff +.Lbr050: l8ui a7, a3, 54 /* [chip6_phy_init_ctrl+0x36] */ # 74f: 720336 + bltui a7, 2, .Lbr047 # 752: b62798 + movi a2, 1 /* 0x00000001 */ # 755: 0c12 + movi a3, 0 /* 0x00000000 */ # 757: 0c03 + movi a4, 1 /* 0x00000001 */ # 759: 0c14 + movi a5, 0 /* 0x00000000 */ # 75b: 0c05 + call0 gpio_output_set # 75d: 01dbffc0 + # 761: 0000 + movi a2, 0 /* 0x00000000 */ # 763: 0c02 + movi a3, 8 /* 0x00000008 */ # 765: 0c83 + movi a4, 8 /* 0x00000008 */ # 767: 0c84 + movi a5, 0 /* 0x00000000 */ # 769: 0c05 + call0 gpio_output_set # 76b: 01d9ffc0 + # 76f: 0000 + j .Lbr047 # 771: 46deff + + .literal_position # 774: 00000000 + # 778: 00060060 + # 77c: 00000000 + # 780: 00000000 + # 784: 00000000 + # 788: 00000000 + # 78c: 00000000 + # 790: 00000000 + # 794: 00000000 + # 798: 00000000 + +# Function @ .irom0.text+0x79c +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global pm_set_wakeup_btco + .type pm_set_wakeup_btco, @function +pm_set_wakeup_btco: + addi sp, sp, -16 /* (local0) */ # 79c: 12c1f0 + movi a3, chip6_phy_init_ctrl # 79f: 31f5ff + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 7a2: 0901 + l8ui a0, a3, 53 /* [chip6_phy_init_ctrl+0x35] */ # 7a4: 020335 + movi a5, -305 /* 0xfffffecf */ # 7a7: 52aecf + beqi a0, 1, .Lbr052 # 7aa: 26100f + beqi a0, 3, .Lbr052 # 7ad: 26300c + beqi a0, 4, .Lbr052 # 7b0: 264009 + beqi a0, 5, .Lbr052 # 7b3: 265006 +.Lbr051: l32i a0, sp, 0 /* [(local0)] */ # 7b6: 0801 + addi sp, sp, 16 /* (top of frame) */ # 7b8: 12c110 + ret # 7bb: 0df0 +.Lbr052: l8ui a2, a3, 54 /* [chip6_phy_init_ctrl+0x36] */ # 7bd: 220336 + movi a0, 0x60000600 # 7c0: 01eeff + bltui a2, 2, .Lbr053 # 7c3: b62228 + movi a6, 32 /* 0x00000020 */ # 7c6: 2c06 + memw # 7c8: c02000 + l32i a7, a0, 0x214 /* [0x60000814] */ # 7cb: 722085 + and a7, a7, a5 # 7ce: 507710 + or a7, a7, a6 # 7d1: 607720 + memw # 7d4: c02000 + s32i a7, a0, 0x214 /* a7 -> [0x60000814] */ # 7d7: 726085 + memw # 7da: c02000 + l32i a4, a0, 0x234 /* [0x60000834] */ # 7dd: 42208d + and a4, a4, a5 # 7e0: 504410 + or a4, a4, a6 # 7e3: 604420 + memw # 7e6: c02000 + s32i a4, a0, 0x234 /* a4 -> [0x60000834] */ # 7e9: 42608d + j .Lbr054 # 7ec: 860800 +.Lbr053: movi a10, 48 /* 0x00000030 */ # 7ef: 3c0a + memw # 7f1: c02000 + l32i a9, a0, 0x214 /* [0x60000814] */ # 7f4: 922085 + and a9, a9, a5 # 7f7: 509910 + or a9, a9, a10 # 7fa: a09920 + memw # 7fd: c02000 + s32i a9, a0, 0x214 /* a9 -> [0x60000814] */ # 800: 926085 + memw # 803: c02000 + l32i a8, a0, 0x234 /* [0x60000834] */ # 806: 82208d + and a8, a8, a5 # 809: 508810 + memw # 80c: c02000 + s32i a8, a0, 0x234 /* a8 -> [0x60000834] */ # 80f: 82608d +.Lbr054: l8ui a0, a3, 53 /* [chip6_phy_init_ctrl+0x35] */ # 812: 020335 + beqi a0, 1, .Lbr057 # 815: 26104f + beqi a0, 3, .Lbr057 # 818: 26304c + beqi a0, 4, .Lbr055 # 81b: 264002 + bnei a0, 5, .Lbr051 # 81e: 665094 +.Lbr055: l8ui a0, a3, 54 /* [chip6_phy_init_ctrl+0x36] */ # 821: 020336 + bnei a0, 1, .Lbr056 # 824: 66101e + movi a2, 0 /* 0x00000000 */ # 827: 0c02 + movi a3, 1 /* 0x00000001 */ # 829: 0c13 + movi a4, 1 /* 0x00000001 */ # 82b: 0c14 + movi a5, 0 /* 0x00000000 */ # 82d: 0c05 + call0 gpio_output_set # 82f: 01d3ffc0 + # 833: 0000 + movi a2, 8 /* 0x00000008 */ # 835: 0c82 + movi a3, 0 /* 0x00000000 */ # 837: 0c03 + movi a4, 8 /* 0x00000008 */ # 839: 0c84 + movi a5, 0 /* 0x00000000 */ # 83b: 0c05 + call0 gpio_output_set # 83d: 01d0ffc0 + # 841: 0000 + j .Lbr051 # 843: c6dbff +.Lbr056: bnez a0, .Lbr051 # 846: 56c0f6 + movi a2, 1 /* 0x00000001 */ # 849: 0c12 + movi a3, 0 /* 0x00000000 */ # 84b: 0c03 + movi a4, 1 /* 0x00000001 */ # 84d: 0c14 + movi a5, 0 /* 0x00000000 */ # 84f: 0c05 + call0 gpio_output_set # 851: 01ccffc0 + # 855: 0000 + movi a2, 0 /* 0x00000000 */ # 857: 0c02 + movi a3, 8 /* 0x00000008 */ # 859: 0c83 + movi a4, 8 /* 0x00000008 */ # 85b: 0c84 + movi a5, 0 /* 0x00000000 */ # 85d: 0c05 + call0 gpio_output_set # 85f: 01caffc0 + # 863: 0000 + j .Lbr051 # 865: 46d3ff +.Lbr057: l8ui a0, a3, 54 /* [chip6_phy_init_ctrl+0x36] */ # 868: 020336 + bnei a0, 1, .Lbr058 # 86b: 66101e + movi a2, 1 /* 0x00000001 */ # 86e: 0c12 + movi a3, 0 /* 0x00000000 */ # 870: 0c03 + movi a4, 1 /* 0x00000001 */ # 872: 0c14 + movi a5, 0 /* 0x00000000 */ # 874: 0c05 + call0 gpio_output_set # 876: 01c5ffc0 + # 87a: 0000 + movi a2, 0 /* 0x00000000 */ # 87c: 0c02 + movi a3, 8 /* 0x00000008 */ # 87e: 0c83 + movi a4, 8 /* 0x00000008 */ # 880: 0c84 + movi a5, 0 /* 0x00000000 */ # 882: 0c05 + call0 gpio_output_set # 884: 01c3ffc0 + # 888: 0000 + j .Lbr051 # 88a: 06caff +.Lbr058: bnez a0, .Lbr051 # 88d: 5650f2 + movi a2, 0 /* 0x00000000 */ # 890: 0c02 + movi a3, 1 /* 0x00000001 */ # 892: 0c13 + movi a4, 1 /* 0x00000001 */ # 894: 0c14 + movi a5, 0 /* 0x00000000 */ # 896: 0c05 + call0 gpio_output_set # 898: 01bfffc0 + # 89c: 0000 + movi a2, 8 /* 0x00000008 */ # 89e: 0c82 + movi a3, 0 /* 0x00000000 */ # 8a0: 0c03 + movi a4, 8 /* 0x00000008 */ # 8a2: 0c84 + movi a5, 0 /* 0x00000000 */ # 8a4: 0c05 + call0 gpio_output_set # 8a6: 01bcffc0 + # 8aa: 0000 + j .Lbr051 # 8ac: 86c1ff + + .literal_position # 8b0: 00000008 + # 8b4: 009a0060 + # 8b8: 00f0ffff + # 8bc: 000af23f + # 8c0: ffffffbf + # 8c4: 00000080 + # 8c8: ffff3fff + # 8cc: 00008000 + # 8d0: ffff70fc + # 8d4: 00feef3f + # 8d8: 00000000 + +# Function @ .irom0.text+0x8dc +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global pm_set_sleep_mode + .type pm_set_sleep_mode, @function +pm_set_sleep_mode: + movi a3, 0 /* 0x00000000 */ # 8dc: 0c03 + addi sp, sp, -16 /* (local0) */ # 8de: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 8e1: c911 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 8e3: 0901 + mov a12, a2 /* arg0 */ # 8e5: cd02 + movi a2, 1 /* 0x00000001 */ # 8e7: 0c12 + call0 noise_check_loop # 8e9: 01fbffc0 + # 8ed: 0000 + movi a3, 0x08000000 # 8ef: 31f0ff + movi a2, 0x60009a00 # 8f2: 21f0ff + memw # 8f5: c02000 + l32i a0, a2, 0x108 /* [0x60009b08] */ # 8f8: 022242 + or a0, a0, a3 # 8fb: 300020 + memw # 8fe: c02000 + s32i a0, a2, 0x108 /* a0 -> [0x60009b08] */ # 901: 026242 + call0 pm_set_pll_xtal_wait_time # 904: 050000 + beqi a12, 4, .Lbr061 # 907: 264c11 + bnei a12, 1, .Lbr059 # 90a: 661c05 + call0 pm_sleep_opt_bb_off # 90d: 050000 + j .Lbr061 # 910: 060200 +.Lbr059: beqi a12, 2, .Lbr060 # 913: 262c02 + bnei a12, 8, .Lbr061 # 916: 668c02 +.Lbr060: call0 pm_sleep_opt_bb_on # 919: 050000 +.Lbr061: movi a3, 0xfffff000 # 91c: 31e7ff + movi a2, 2 /* 0x00000002 */ # 91f: 0c22 + movi a5, 0x3ff20a00 # 921: 51e6ff + memw # 924: c02000 + l32i a0, a5, 0x214 /* [0x3ff20c14] */ # 927: 022585 + and a0, a0, a3 # 92a: 300010 + or a0, a0, a2 # 92d: 200020 + memw # 930: c02000 + s32i a0, a5, 0x214 /* a0 -> [0x3ff20c14] */ # 933: 026585 + movi a11, 0xbfffffff # 936: b1e2ff + memw # 939: c02000 + l32i a10, a5, 0x214 /* [0x3ff20c14] */ # 93c: a22585 + and a10, a10, a11 # 93f: b0aa10 + memw # 942: c02000 + s32i a10, a5, 0x214 /* a10 -> [0x3ff20c14] */ # 945: a26585 + movi a9, 0x80000000 # 948: 91dfff + memw # 94b: c02000 + l32i a8, a5, 0x214 /* [0x3ff20c14] */ # 94e: 822585 + or a8, a8, a9 # 951: 908820 + memw # 954: c02000 + s32i a8, a5, 0x214 /* a8 -> [0x3ff20c14] */ # 957: 826585 + movi a7, 0xff3fffff # 95a: 71dbff + movi a6, 0x00800000 # 95d: 61dbff + memw # 960: c02000 + l32i a4, a5, 0x274 /* [0x3ff20c74] */ # 963: 42259d + and a4, a4, a7 # 966: 704410 + or a4, a4, a6 # 969: 604420 + memw # 96c: c02000 + s32i a4, a5, 0x274 /* a4 -> [0x3ff20c74] */ # 96f: 42659d + call0 pm_set_sleep_btco # 972: 050000 + call0 pm_sleep_set_mac # 975: 050000 + call0 pm_check_mac_idle # 978: 050000 + bnei a12, 8, .Lbr062 # 97b: 668c14 + movi a6, 0xfc70ffff # 97e: 61d4ff + movi a5, 0x3feffe00 # 981: 51d4ff + memw # 984: c02000 + l32i a4, a5, 0x218 /* [0x3ff00018] */ # 987: 422586 + and a4, a4, a6 # 98a: 604410 + memw # 98d: c02000 + s32i a4, a5, 0x218 /* a4 -> [0x3ff00018] */ # 990: 426586 +.Lbr062: l32i a12, sp, 4 /* [(local1)] */ # 993: c811 + l32i a0, sp, 0 /* [(local0)] */ # 995: 0801 + addi sp, sp, 16 /* (top of frame) */ # 997: 12c110 + ret # 99a: 0df0 + + .literal_position # 99c: 000af23f + # 9a0: 60360040 + # 9a4: 33330000 + # 9a8: 10110040 + # 9ac: 50150040 + # 9b0: 30330040 + +# Function @ .irom0.text+0x9b4 + .balign 4 + .global pm_unmask_bt + .type pm_unmask_bt, @function +pm_unmask_bt: + movi a4, 0x3ff20a00 # 9b4: 41faff + beqz a2, .Lbr064 # 9b7: 9c82 + beqi a2, 1, .Lbr065 # 9b9: 261220 + beqi a2, 2, .Lbr066 # 9bc: 262228 + beqi a2, 3, .Lbr067 # 9bf: 263230 + beqi a2, 4, .Lbr068 # 9c2: 264238 + bnei a2, 5, .Lbr063 # 9c5: 665208 + movi a2, 0x40003660 # 9c8: 21f6ff + memw # 9cb: c02000 + s32i a2, a4, 0x3e0 /* 0x40003660 -> [0x3ff20de0] */ # 9ce: 2264f8 +.Lbr063: ret # 9d1: 0df0 +.Lbr064: movi a3, 0 /* 0x00000000 */ # 9d3: 0c03 + memw # 9d5: c02000 + s32i a3, a4, 0x3e0 /* 0x00000000 -> [0x3ff20de0] */ # 9d8: 3264f8 + ret /* arg0 */ # 9db: 0df0 +.Lbr065: movi a5, 0x00003333 # 9dd: 51f1ff + memw # 9e0: c02000 + s32i a5, a4, 0x3e0 /* 0x00003333 -> [0x3ff20de0] */ # 9e3: 5264f8 + ret /* arg0 */ # 9e6: 0df0 +.Lbr066: movi a6, 0x40001110 # 9e8: 61f0ff + memw # 9eb: c02000 + s32i a6, a4, 0x3e0 /* 0x40001110 -> [0x3ff20de0] */ # 9ee: 6264f8 + ret /* arg0 */ # 9f1: 0df0 +.Lbr067: movi a7, 0x40001550 # 9f3: 71eeff + memw # 9f6: c02000 + s32i a7, a4, 0x3e0 /* 0x40001550 -> [0x3ff20de0] */ # 9f9: 7264f8 + ret /* arg0 */ # 9fc: 0df0 +.Lbr068: movi a8, 0x40003330 # 9fe: 81ecff + memw # a01: c02000 + s32i a8, a4, 0x3e0 /* 0x40003330 -> [0x3ff20de0] */ # a04: 8264f8 + ret /* arg0 */ # a07: 0df0 + + .literal_position # a0c: 00000000 + # a10: 00feef3f + # a14: 000a0060 + # a18: 00001000 + # a1c: 00008f03 + # a20: ff0f0080 + # a24: fffffff7 + # a28: 000af23f + # a2c: ffff3fff + # a30: 009a0060 + # a34: 000af23f + # a38: 009a0060 + # a3c: 00000000 + # a40: 00000000 + # a44: 00000000 + # a48: ffff7ffe + # a4c: 00000000 + # a50: 00020060 + # a54: 00000000 + # a58: 00000000 + # a5c: 00000008 + # a60: 00000000 + # a64: 00000000 + # a68: 00000000 + # a6c: 00000000 + # a70: 00000000 + # a74: 00000000 + # a78: 00000000 + # a7c: 00000000 + # a80: 00000000 + # a84: 00000000 + # a88: 00000000 + +# Function @ .irom0.text+0xa8c +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word @ -0x8 +# (local3): word @ -0x4 + .balign 4 + .global pm_wakeup_init + .type pm_wakeup_init, @function +pm_wakeup_init: + addi sp, sp, -16 /* (local0) */ # a8c: 12c1f0 + s32i a14, sp, 12 /* a14 -> [(local3)] */ # a8f: e931 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # a91: 0901 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # a93: d921 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # a95: c911 + mov a13, a3 /* arg1 */ # a97: dd03 + mov a12, a2 /* arg0 */ # a99: cd02 + movi a0, periodic_cal_sat # a9b: 01dcff + beqi a2, 2, .Lbr069 # a9e: 262202 + bnei a2, 1, .Lbr070 # aa1: 661211 +.Lbr069: bnez a13, .Lbr070 # aa4: cced + l8ui a2, a0, 1 /* [software_slp_reject] */ # aa6: 220001 + bnez a2, .Lbr070 # aa9: cc92 + l8ui a3, a0, 3 /* [hardware_reject] */ # aab: 320003 + bnez a3, .Lbr070 # aae: cc43 + call0 change_bbpll160 # ab0: 01f0ffc0 + # ab4: 0000 +.Lbr070: movi a10, -13 /* 0xfffffff3 */ # ab6: 7c3a + movi a9, 4 /* 0x00000004 */ # ab8: 0c49 + movi a6, 0x3feffe00 # aba: 61d5ff + movi a8, 0x60000a00 # abd: 81d5ff + memw # ac0: c02000 + l32i a7, a8, 0x340 /* [0x60000d40] */ # ac3: 7228d0 + and a7, a7, a10 # ac6: a07710 + or a7, a7, a9 # ac9: 907720 + memw # acc: c02000 + s32i a7, a8, 0x340 /* a7 -> [0x60000d40] */ # acf: 7268d0 + movi a5, 0x00100000 # ad2: 51d1ff + memw # ad5: c02000 + l32i a4, a6, 0x218 /* [0x3ff00018] */ # ad8: 422686 + or a4, a4, a5 # adb: 504420 + memw # ade: c02000 + s32i a4, a6, 0x218 /* a4 -> [0x3ff00018] */ # ae1: 426686 + bnei a12, 8, .Lbr071 # ae4: 668c11 + movi a14, 0x038f0000 # ae7: e1cdff + memw # aea: c02000 + l32i a11, a6, 0x218 /* [0x3ff00018] */ # aed: b22686 + or a11, a11, a14 # af0: e0bb20 + memw # af3: c02000 + s32i a11, a6, 0x218 /* a11 -> [0x3ff00018] */ # af6: b26686 +.Lbr071: movi a6, 0x80000fff # af9: 61c9ff + movi a14, 0xf7ffffff # afc: e1caff + movi a4, 0x3ff20a00 # aff: 41caff + memw # b02: c02000 + s32i a6, a4, 0x214 /* 0x80000fff -> [0x3ff20c14] */ # b05: 626485 + movi a5, 0xff3fffff # b08: 51c9ff + memw # b0b: c02000 + l32i a3, a4, 0x274 /* [0x3ff20c74] */ # b0e: 32249d + and a3, a3, a5 # b11: 503310 + memw # b14: c02000 + s32i a3, a4, 0x274 /* a3 -> [0x3ff20c74] */ # b17: 32649d + addi a2, a12, -1 /* arg0-0x1 */ # b1a: 0b2c + beqz a2, .Lbr075 # b1c: 16520c + addi a7, a12, -2 /* arg0-0x2 */ # b1f: 72ccfe + beqz a7, .Lbr075 # b22: 16f70b + addi a8, a12, -8 /* arg0-0x8 */ # b25: 82ccf8 + beqz a8, .Lbr075 # b28: 16980b + movi a2, 300 /* 0x0000012c */ # b2b: 22a12c + call0 ets_delay_us # b2e: 01d1ffc0 + # b32: 0000 +.Lbr072: movi a11, 0x60009a00 # b34: b1bfff + memw # b37: c02000 + l32i a4, a11, 0x108 /* [0x60009b08] */ # b3a: 422b42 + and a4, a4, a14 # b3d: e04410 + memw # b40: c02000 + s32i a4, a11, 0x108 /* a4 -> [0x60009b08] */ # b43: 426b42 + movi a3, 1 /* 0x00000001 */ # b46: 0c13 + memw # b48: c02000 + l32i a2, a11, 0x160 /* [0x60009b60] */ # b4b: 222b58 + or a2, a2, a3 # b4e: 302220 + memw # b51: c02000 + s32i a2, a11, 0x160 /* a2 -> [0x60009b60] */ # b54: 226b58 + movi a0, -2 /* 0xfffffffe */ # b57: 7ce0 + memw # b59: c02000 + l32i a10, a11, 0x160 /* [0x60009b60] */ # b5c: a22b58 + and a10, a10, a0 # b5f: 00aa10 + memw # b62: c02000 + s32i a10, a11, 0x160 /* a10 -> [0x60009b60] */ # b65: a26b58 + memw # b68: c02000 + movi a9, 0x3ff20a00 # b6b: 91b2ff + l32i a9, a9, 0x270 /* [0x3ff20c70] */ # b6e: 92299c + bbci a9, 1, .Lbr073 # b71: 17693b + movi a2, 2 /* 0x00000002 */ # b74: 0c22 + call0 ets_delay_us # b76: 01c0ffc0 + # b7a: 0000 + movi a10, 241 /* 0x000000f1 */ # b7c: a2a0f1 + movi a8, -1024 /* 0xfffffc00 */ # b7f: 82ac00 + memw # b82: c02000 + movi a6, 0x60009a00 # b85: 61acff + l32i a9, a6, 52 /* [0x60009a34] */ # b88: 98d6 + and a9, a9, a8 # b8a: 809910 + or a9, a9, a10 # b8d: a09920 + memw # b90: c02000 + s32i a9, a6, 52 /* a9 -> [0x60009a34] */ # b93: 99d6 + movi a7, 240 /* 0x000000f0 */ # b95: 72a0f0 + memw # b98: c02000 + l32i a5, a6, 52 /* [0x60009a34] */ # b9b: 58d6 + and a5, a5, a8 # b9d: 805510 + or a5, a5, a7 # ba0: 705520 + memw # ba3: c02000 + s32i a5, a6, 52 /* a5 -> [0x60009a34] */ # ba6: 59d6 + movi a2, 2 /* 0x00000002 */ # ba8: 0c22 + call0 ets_delay_us # baa: 01b4ffc0 + # bae: 0000 +.Lbr073: call0 pm_set_wakeup_btco # bb0: 050000 + call0 pm_set_wakeup_mac # bb3: 050000 + bnez a13, .Lbr074 # bb6: dced + movi a10, periodic_cal_sat # bb8: a1a1ff + movi a2, periodic_cal_flag # bbb: 21a1ff + l8ui a10, a10, 2 /* [SDIO_slp_reject] */ # bbe: a20a02 + l8ui a11, a2, 0 /* [periodic_cal_flag] */ # bc1: b20200 + bnez a10, .Lbr074 # bc4: dc0a + bnei a11, 1, .Lbr074 # bc6: 661b0e + movi a13, periodic_cal_sat # bc9: d19eff + l8ui a13, a13, 0 /* [periodic_cal_sat] */ # bcc: d20d00 + bnei a13, 1, .Lbr074 # bcf: 661d05 + beqi a12, 2, .Lbr076 # bd2: 262c7f + beqi a12, 1, .Lbr076 # bd5: 261c7c +.Lbr074: l32i a12, sp, 4 /* [(local1)] */ # bd8: c811 + l32i a13, sp, 8 /* [(local2)] */ # bda: d821 + l32i a14, sp, 12 /* [(local3)] */ # bdc: e831 + l32i a0, sp, 0 /* [(local0)] */ # bde: 0801 + addi sp, sp, 16 /* (top of frame) */ # be0: 12c110 + ret # be3: 0df0 +.Lbr075: movi a4, 0xfe7fffff # be5: 4198ff + movi a0, g_phyFuns # be8: 0199ff + movi a3, 0x60000200 # beb: 3199ff + memw # bee: c02000 + l32i a2, a3, 0x3e8 /* [0x600005e8] */ # bf1: 2223fa + and a2, a2, a4 # bf4: 402210 + memw # bf7: c02000 + movi a4, 3 /* 0x00000003 */ # bfa: 0c34 + movi a5, 7 /* 0x00000007 */ # bfc: 0c75 + movi a6, 4 /* 0x00000004 */ # bfe: 0c46 + movi a7, 15 /* 0x0000000f */ # c00: 0cf7 + l32i a0, a0, 0 /* [g_phyFuns] */ # c02: 0800 + s32i a2, a3, 0x3e8 /* a2 -> [0x600005e8] */ # c04: 2263fa + movi a2, 98 /* 0x00000062 */ # c07: 22a062 + l32i a0, a0, 156 /* [[g_phyFuns]+0x9c] */ # c0a: 022027 + movi a3, 1 /* 0x00000001 */ # c0d: 0c13 + callx0 a0 /* [[g_phyFuns]+0x9c] */ # c0f: c00000 + movi a2, 98 /* 0x00000062 */ # c12: 22a062 + movi a0, g_phyFuns # c15: 018fff + movi a3, 1 /* 0x00000001 */ # c18: 0c13 + l32i a0, a0, 0 /* [g_phyFuns] */ # c1a: 0800 + movi a4, 11 /* 0x0000000b */ # c1c: 0cb4 + l32i a0, a0, 152 /* [[g_phyFuns]+0x98] */ # c1e: 022026 + movi a5, 128 /* 0x00000080 */ # c21: 52a080 + callx0 a0 /* [[g_phyFuns]+0x98] */ # c24: c00000 + call0 pm_open_rf # c27: 050000 + movi a4, chip6_sleep_params # c2a: 418bff + movi a5, 0x08000000 # c2d: 518bff + l32i a3, a4, 0 /* [chip6_sleep_params] */ # c30: 3804 + movi a2, 0 /* 0x00000000 */ # c32: 0c02 + or a3, a3, a5 # c34: 503320 + s32i a3, a4, 0 /* a3 -> [chip6_sleep_params] */ # c37: 3904 + call0 register_chipv6_phy # c39: 0191ffc0 + # c3d: 0000 + movi a2, 200 /* 0x000000c8 */ # c3f: 22a0c8 + call0 ets_delay_us # c42: 0190ffc0 + # c46: 0000 + movi a7, chip6_sleep_params # c48: 7186ff + l32i a6, a7, 0 /* [chip6_sleep_params] */ # c4b: 6807 + and a6, a6, a14 # c4d: e06610 + s32i a6, a7, 0 /* a6 -> [chip6_sleep_params] */ # c50: 6907 + j .Lbr072 # c52: 86b7ff +.Lbr076: movi a9, periodic_cal_sat # c55: 9184ff + movi a8, 0 /* 0x00000000 */ # c58: 0c08 + movi a7, chip6_phy_init_ctrl # c5a: 7182ff + s8i a8, a2, 0 /* 0x00 -> [periodic_cal_flag] */ # c5d: 824200 + l8ui a7, a7, 100 /* [chip6_phy_init_ctrl+0x64] */ # c60: 720764 + s8i a8, a9, 0 /* 0x00 -> [periodic_cal_sat] */ # c63: 824900 + extui a7, a7, 1, 1 # c66: 707104 + bnez a7, .Lbr074 # c69: 56b7f6 + movi a2, 4 /* 0x00000004 */ # c6c: 0c42 + call0 pm_set_sleep_mode # c6e: 050000 + movi a2, do_pwctrl_flag # c71: 217eff + l8ui a2, a2, 0 /* [do_pwctrl_flag] */ # c74: 220200 + call0 periodic_cal # c77: 0184ffc0 + # c7b: 0000 + movi a2, 4 /* 0x00000004 */ # c7d: 0c42 + movi a3, 0 /* 0x00000000 */ # c7f: 0c03 + call0 pm_wakeup_init # c81: 050000 + j .Lbr074 # c84: 06d4ff + + .literal_position # c88: 00060060 + +# Function @ .irom0.text+0xc8c + .balign 4 + .global sleep_opt_8266 + .type sleep_opt_8266, @function +sleep_opt_8266: + movi a6, 0 /* 0x00000000 */ # c8c: 0c06 + movi a5, 0x60000600 # c8e: 51feff + memw # c91: c02000 + s32i a6, a5, 0x140 /* 0x00000000 -> [0x60000740] */ # c94: 626550 + memw # c97: c02000 + s32i a2, a5, 0x144 /* arg0 -> [0x60000744] */ # c9a: 226551 + memw # c9d: c02000 + s32i a4, a5, 0x100 /* arg2 -> [0x60000700] */ # ca0: 426540 + memw # ca3: c02000 + s32i a3, a5, 0x110 /* arg1 -> [0x60000710] */ # ca6: 326544 + ret /* arg0 */ # ca9: 0df0 + + .literal_position # cac: 50008000 + # cb0: 00008000 + +# Function @ .irom0.text+0xcb4 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global sleep_opt_bb_on_8266 + .type sleep_opt_bb_on_8266, @function +sleep_opt_bb_on_8266: + addi sp, sp, -16 /* (local0) */ # cb4: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # cb7: 0901 + call0 get_chip_version # cb9: 050000 + beqi a2, 2, .Lbr077 # cbc: 26220c + movi a2, 0 /* 0x00000000 */ # cbf: 0c02 + movi a3, 0 /* 0x00000000 */ # cc1: 0c03 + movi a4, 0x00800050 # cc3: 41faff + call0 sleep_opt_8266 # cc6: 050000 + j .Lbr078 # cc9: 460200 +.Lbr077: movi a2, 0 /* 0x00000000 */ # ccc: 0c02 + movi a3, 0 /* 0x00000000 */ # cce: 0c03 + movi a4, 0x00800000 # cd0: 41f8ff + call0 sleep_opt_8266 # cd3: 050000 +.Lbr078: l32i a0, sp, 0 /* [(local0)] */ # cd6: 0801 + addi sp, sp, 16 /* (top of frame) */ # cd8: 12c110 + ret # cdb: 0df0 + + .literal_position # ce0: 00060060 + # ce4: 00001000 + # ce8: 6ac01900 + # cec: ff0f0000 + # cf0: c8400600 + # cf4: 000000f0 + # cf8: 20203020 + # cfc: 00005020 + +# Function @ .irom0.text+0xd00 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global sleep_reset_analog_rtcreg_8266 + .type sleep_reset_analog_rtcreg_8266, @function +sleep_reset_analog_rtcreg_8266: + addi sp, sp, -16 /* (local0) */ # d00: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # d03: c911 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # d05: 0901 + movi a0, -1 /* 0xffffffff */ # d07: 7cf0 + movi a12, 0x60000600 # d09: c1f5ff + memw # d0c: c02000 + s32i a0, a12, 0x124 /* 0xffffffff -> [0x60000724] */ # d0f: 026c49 + call0 sleep_opt_bb_on_8266 # d12: 050000 + movi a2, 8 /* 0x00000008 */ # d15: 0c82 + movi a3, 0 /* 0x00000000 */ # d17: 0c03 + call0 pm_wakeup_opt # d19: 050000 + call0 pm_set_pll_xtal_wait_time # d1c: 050000 + movi a2, 100 /* 0x00000064 */ # d1f: 22a064 + call0 pm_set_sleep_cycles # d22: 050000 + movi a3, 0x00100000 # d25: 31efff + memw # d28: c02000 + l32i a2, a12, 0x108 /* [0x60000708] */ # d2b: 222c42 + or a2, a2, a3 # d2e: 302220 + memw # d31: c02000 + s32i a2, a12, 0x108 /* a2 -> [0x60000708] */ # d34: 226c42 + movi a2, 2 /* 0x00000002 */ # d37: 0c22 + call0 pm_wait4wakeup # d39: 050000 + call0 pm_open_rf # d3c: 050000 + movi a0, 0x0019c06a # d3f: 01eaff + movi a4, 0 /* 0x00000000 */ # d42: 0c04 + movi a5, 7 /* 0x00000007 */ # d44: 0c75 + memw # d46: c02000 + s32i a0, a12, 0x100 /* 0x0019c06a -> [0x60000700] */ # d49: 026c40 + movi a11, 0x00000fff # d4c: b1e8ff + memw # d4f: c02000 + s32i a11, a12, 0x104 /* 0x00000fff -> [0x60000704] */ # d52: b26c41 + memw # d55: c02000 + s32i a4, a12, 0x108 /* 0x00000000 -> [0x60000708] */ # d58: 426c42 + movi a10, 0x000640c8 # d5b: a1e5ff + memw # d5e: c02000 + s32i a10, a12, 0x10c /* 0x000640c8 -> [0x6000070c] */ # d61: a26c43 + movi a9, 0xf0000000 # d64: 91e4ff + memw # d67: c02000 + s32i a9, a12, 0x110 /* 0xf0000000 -> [0x60000710] */ # d6a: 926c44 + movi a8, 4 /* 0x00000004 */ # d6d: 0c48 + memw # d6f: c02000 + s32i a8, a12, 0x118 /* 0x00000004 -> [0x60000718] */ # d72: 826c46 + memw # d75: c02000 + s32i a4, a12, 0x120 /* 0x00000000 -> [0x60000720] */ # d78: 426c48 + memw # d7b: c02000 + s32i a4, a12, 0x140 /* 0x00000000 -> [0x60000740] */ # d7e: 426c50 + memw # d81: c02000 + s32i a4, a12, 0x144 /* 0x00000000 -> [0x60000744] */ # d84: 426c51 + movi a7, 0x20302020 # d87: 71dcff + memw # d8a: c02000 + s32i a7, a12, 0x148 /* 0x20302020 -> [0x60000748] */ # d8d: 726c52 + movi a6, 0x20500000 # d90: 61dbff + memw # d93: c02000 + s32i a6, a12, 0x14c /* 0x20500000 -> [0x6000074c] */ # d96: 626c53 + memw # d99: c02000 + s32i a4, a12, 0x158 /* 0x00000000 -> [0x60000758] */ # d9c: 426c56 + memw # d9f: c02000 + s32i a5, a12, 0x15c /* 0x00000007 -> [0x6000075c] */ # da2: 526c57 + memw # da5: c02000 + s32i a5, a12, 0x160 /* 0x00000007 -> [0x60000760] */ # da8: 526c58 + memw # dab: c02000 + s32i a4, a12, 0x164 /* 0x00000000 -> [0x60000764] */ # dae: 426c59 + memw # db1: c02000 + s32i a4, a12, 0x168 /* 0x00000000 -> [0x60000768] */ # db4: 426c5a + memw # db7: c02000 + s32i a4, a12, 0x174 /* 0x00000000 -> [0x60000774] */ # dba: 426c5d + memw # dbd: c02000 + s32i a4, a12, 0x180 /* 0x00000000 -> [0x60000780] */ # dc0: 426c60 + memw # dc3: c02000 + s32i a4, a12, 0x190 /* 0x00000000 -> [0x60000790] */ # dc6: 426c64 + memw # dc9: c02000 + s32i a4, a12, 0x194 /* 0x00000000 -> [0x60000794] */ # dcc: 426c65 + memw # dcf: c02000 + s32i a4, a12, 0x198 /* 0x00000000 -> [0x60000798] */ # dd2: 426c66 + memw # dd5: c02000 + s32i a4, a12, 0x19c /* 0x00000000 -> [0x6000079c] */ # dd8: 426c67 + memw # ddb: c02000 + s32i a4, a12, 0x1a0 /* 0x00000000 -> [0x600007a0] */ # dde: 426c68 + memw # de1: c02000 + s32i a4, a12, 0x1a8 /* 0x00000000 -> [0x600007a8] */ # de4: 426c6a + memw # de7: c02000 + s32i a4, a12, 0x1ac /* 0x00000000 -> [0x600007ac] */ # dea: 426c6b + memw # ded: c02000 + s32i a4, a12, 0x1b0 /* 0x00000000 -> [0x600007b0] */ # df0: 426c6c + memw # df3: c02000 + s32i a4, a12, 0x1b4 /* 0x00000000 -> [0x600007b4] */ # df6: 426c6d + l32i a12, sp, 4 /* [(local1)] */ # df9: c811 + l32i a0, sp, 0 /* [(local0)] */ # dfb: 0801 + addi sp, sp, 16 /* (top of frame) */ # dfd: 12c110 + ret # e00: 0df0 diff --git a/binary_sdk/libpp/esf_buf.S b/binary_sdk/libpp/esf_buf.S index fc72be6..677e512 100644 --- a/binary_sdk/libpp/esf_buf.S +++ b/binary_sdk/libpp/esf_buf.S @@ -15,6 +15,7 @@ # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_esf_rx_buf_alloc .type sdk_esf_rx_buf_alloc, @function sdk_esf_rx_buf_alloc: @@ -134,6 +135,7 @@ sdk_esf_rx_buf_alloc: # (local3): word @ -0x14 # (local4): word @ -0x10 # (local5): word[3] @ -0xc + .balign 4 .global sdk_esf_buf_alloc .type sdk_esf_buf_alloc, @function sdk_esf_buf_alloc: @@ -400,6 +402,7 @@ sdk_esf_buf_alloc: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_esf_buf_recycle .type sdk_esf_buf_recycle, @function sdk_esf_buf_recycle: @@ -636,6 +639,7 @@ sdk_esf_buf_recycle: # (local4): word @ -0x10 # (local5): word @ -0xc # (local6): word[2] @ -0x8 + .balign 4 .global sdk_esf_buf_setup .type sdk_esf_buf_setup, @function sdk_esf_buf_setup: diff --git a/binary_sdk/libpp/if_hwctrl.S b/binary_sdk/libpp/if_hwctrl.S index 28359e9..c8b8114 100644 --- a/binary_sdk/libpp/if_hwctrl.S +++ b/binary_sdk/libpp/if_hwctrl.S @@ -16,6 +16,7 @@ sdk_if_ctrl: .literal_position # 0: 10000000 # Function @ .irom0.text+0x4 + .balign 4 .global sdk_ic_get_addr .type sdk_ic_get_addr, @function sdk_ic_get_addr: @@ -27,6 +28,7 @@ sdk_ic_get_addr: .literal_position # 10: 10000000 # Function @ .irom0.text+0x14 + .balign 4 .global sdk_ic_set_opmode .type sdk_ic_set_opmode, @function sdk_ic_set_opmode: @@ -48,6 +50,7 @@ sdk_ic_set_opmode: # (local1): word @ -0xc # (local2): word @ -0x8 # (local3): word @ -0x4 + .balign 4 .global sdk_ic_enable_interface .type sdk_ic_enable_interface, @function sdk_ic_enable_interface: @@ -86,6 +89,7 @@ sdk_ic_enable_interface: .literal_position # 84: 00000000 # Function @ .irom0.text+0x88 + .balign 4 .global sdk_ic_interface_enabled .type sdk_ic_interface_enabled, @function sdk_ic_interface_enabled: @@ -105,6 +109,7 @@ sdk_ic_interface_enabled: # Function @ .irom0.text+0xb0 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_ic_disable_interface .type sdk_ic_disable_interface, @function sdk_ic_disable_interface: @@ -138,6 +143,7 @@ sdk_ic_disable_interface: .literal_position # f8: 10000000 # Function @ .irom0.text+0xfc + .balign 4 .global sdk_ic_is_pure_sta .type sdk_ic_is_pure_sta, @function sdk_ic_is_pure_sta: @@ -156,6 +162,7 @@ sdk_ic_is_pure_sta: .literal_position # 118: 10000000 # Function @ .irom0.text+0x11c + .balign 4 .global sdk_ic_get_ptk_alg .type sdk_ic_get_ptk_alg, @function sdk_ic_get_ptk_alg: @@ -168,6 +175,7 @@ sdk_ic_get_ptk_alg: .literal_position # 12c: 10000000 # Function @ .irom0.text+0x130 + .balign 4 .global sdk_ic_get_gtk_alg .type sdk_ic_get_gtk_alg, @function sdk_ic_get_gtk_alg: @@ -180,6 +188,7 @@ sdk_ic_get_gtk_alg: .literal_position # 140: 10000000 # Function @ .irom0.text+0x144 + .balign 4 .global sdk_ic_set_ptk_alg .type sdk_ic_set_ptk_alg, @function sdk_ic_set_ptk_alg: @@ -192,6 +201,7 @@ sdk_ic_set_ptk_alg: .literal_position # 154: 10000000 # Function @ .irom0.text+0x158 + .balign 4 .global sdk_ic_set_gtk_alg .type sdk_ic_set_gtk_alg, @function sdk_ic_set_gtk_alg: @@ -204,6 +214,7 @@ sdk_ic_set_gtk_alg: .literal_position # 168: 10000000 # Function @ .irom0.text+0x16c + .balign 4 .global sdk_ic_interface_is_p2p .type sdk_ic_interface_is_p2p, @function sdk_ic_interface_is_p2p: @@ -220,6 +231,7 @@ sdk_ic_interface_is_p2p: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .Lfunc001: movi a3, 0 /* 0x00000000 */ # 184: 0c03 addi sp, sp, -16 /* (local0) */ # 186: 12c1f0 s32i a12, sp, 4 /* a12 -> [(local1)] */ # 189: c911 @@ -252,6 +264,7 @@ sdk_ic_interface_is_p2p: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .Lfunc002: addi sp, sp, -16 /* (local0) */ # 1cc: 12c1f0 s32i a12, sp, 4 /* a12 -> [(local1)] */ # 1cf: c911 s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1d1: 0901 @@ -291,6 +304,7 @@ sdk_ic_interface_is_p2p: # (local2): word @ -0x18 # (local3): word @ -0x14 # (local4): word[4] @ -0x10 + .balign 4 .global sdk_ic_set_vif .type sdk_ic_set_vif, @function sdk_ic_set_vif: @@ -358,6 +372,7 @@ sdk_ic_set_vif: # (local3): word @ -0x14 # (local4): word @ -0x10 # (local5): word[3] @ -0xc + .balign 4 .global sdk_ic_set_sta .type sdk_ic_set_sta, @function sdk_ic_set_sta: @@ -445,6 +460,7 @@ sdk_ic_set_sta: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_ic_bss_info_update .type sdk_ic_bss_info_update, @function sdk_ic_bss_info_update: @@ -496,6 +512,7 @@ sdk_ic_bss_info_update: # (local5): word @ -0x10 # (local6): word @ -0xc # (local7): word[2] @ -0x8 + .balign 4 .global sdk_ic_set_key .type sdk_ic_set_key, @function sdk_ic_set_key: @@ -546,6 +563,7 @@ sdk_ic_set_key: # Function @ .irom0.text+0x454 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_ic_remove_key .type sdk_ic_remove_key, @function sdk_ic_remove_key: diff --git a/binary_sdk/libpp/lmac.S b/binary_sdk/libpp/lmac.S index 1508ce5..95f1960 100644 --- a/binary_sdk/libpp/lmac.S +++ b/binary_sdk/libpp/lmac.S @@ -4,6 +4,7 @@ .literal_position # 0: 00000000 # Function @ .text+0x4 + .balign 4 .global sdk_lmacIsActive .type sdk_lmacIsActive, @function sdk_lmacIsActive: @@ -17,6 +18,7 @@ sdk_lmacIsActive: .literal_position # 14: 30000000 # Function @ .text+0x18 + .balign 4 .global sdk_lmacIsIdle .type sdk_lmacIsIdle, @function sdk_lmacIsIdle: @@ -40,6 +42,7 @@ sdk_lmacIsIdle: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .Lfunc001: addi sp, sp, -16 /* (local0) */ # 48: 12c1f0 s32i a0, sp, 4 /* a0 -> [(local1)] */ # 4b: 0911 movi a0, .Ldata001 # 4d: 01f8ff @@ -75,6 +78,7 @@ sdk_lmacIsIdle: # Function @ .text+0xa0 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .Lfunc002: addi sp, sp, -16 /* (local0) */ # a0: 12c1f0 s32i a0, sp, 0 /* a0 -> [(local0)] */ # a3: 0901 movi a0, .Ldata001 # a5: 01f8ff @@ -102,6 +106,7 @@ sdk_lmacIsIdle: # Function @ .text+0xdc # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .Lfunc003: addi sp, sp, -16 /* (local0) */ # dc: 12c1f0 s32i a0, sp, 0 /* a0 -> [(local0)] */ # df: 0901 call0 .Lfunc004 # e1: c50400 @@ -141,6 +146,7 @@ sdk_lmacIsIdle: # (local9): word @ -0xc # (local10): word @ -0x8 # (local11): word @ -0x4 + .balign 4 .Lfunc004: movi a8, 0 /* 0x00000000 */ # 130: 0c08 movi a10, 128 /* 0x00000080 */ # 132: a2a080 movi a11, .Ldata001 # 135: b1edff @@ -503,6 +509,7 @@ sdk_lmacIsIdle: # (local4): word @ -0x10 # (local5): word @ -0xc # (local6): word[2] @ -0x8 + .balign 4 .global sdk_lmacSetAcParam .type sdk_lmacSetAcParam, @function sdk_lmacSetAcParam: @@ -584,6 +591,7 @@ sdk_lmacSetAcParam: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_lmacProcessTXStartData .type sdk_lmacProcessTXStartData, @function sdk_lmacProcessTXStartData: @@ -663,6 +671,7 @@ sdk_lmacProcessTXStartData: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .Lfunc005: addi sp, sp, -16 /* (local0) */ # 678: 12c1f0 s32i a12, sp, 8 /* a12 -> [(local2)] */ # 67b: c921 mov a12, a2 /* arg0 */ # 67d: cd02 @@ -785,6 +794,7 @@ sdk_lmacProcessTXStartData: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_lmacProcessTxSuccess .type sdk_lmacProcessTxSuccess, @function sdk_lmacProcessTxSuccess: @@ -879,6 +889,7 @@ sdk_lmacProcessTxSuccess: # (local3): word @ -0x14 # (local4): word @ -0x10 # (local5): word[3] @ -0xc + .balign 4 .Lfunc006: addi sp, sp, -32 /* (local0) */ # 89c: 12c1e0 s32i a0, sp, 0 /* a0 -> [(local0)] */ # 89f: 0901 s32i a5, sp, 20 /* arg3 -> [(local5)] */ # 8a1: 5951 @@ -926,6 +937,7 @@ sdk_lmacProcessTxSuccess: .literal_position # 904: 30000000 # Function @ .text+0x908 + .balign 4 .global sdk_GetAccess .type sdk_GetAccess, @function sdk_GetAccess: @@ -938,6 +950,7 @@ sdk_GetAccess: # Function @ .text+0x914 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_lmacDiscardAgedMSDU .type sdk_lmacDiscardAgedMSDU, @function sdk_lmacDiscardAgedMSDU: @@ -954,6 +967,7 @@ sdk_lmacDiscardAgedMSDU: # Function @ .text+0x928 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_lmacRecycleMPDU .type sdk_lmacRecycleMPDU, @function sdk_lmacRecycleMPDU: @@ -984,6 +998,7 @@ sdk_lmacRecycleMPDU: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .Lfunc007: addi sp, sp, -16 /* (local0) */ # 964: 12c1f0 s32i a0, sp, 4 /* a0 -> [(local1)] */ # 967: 0911 l8ui a3, a2, 17 /* [arg0+0x11] */ # 969: 320211 @@ -1038,6 +1053,7 @@ sdk_lmacRecycleMPDU: ret # 9ea: 0df0 # Function @ .text+0x9ec + .balign 4 .Lfunc008: l8ui a4, a2, 13 /* [arg0+0xd] */ # 9ec: 42020d movi a5, 0 /* 0x00000000 */ # 9ef: 0c05 beqz a4, .Lbr101 # 9f1: 8c44 @@ -1052,6 +1068,7 @@ sdk_lmacRecycleMPDU: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .Lfunc009: addi sp, sp, -16 /* (local0) */ # a04: 12c1f0 s32i a12, sp, 4 /* a12 -> [(local1)] */ # a07: c911 s32i a0, sp, 0 /* a0 -> [(local0)] */ # a09: 0901 @@ -1098,6 +1115,7 @@ sdk_lmacRecycleMPDU: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .Lfunc010: addi sp, sp, -16 /* (local0) */ # a68: 12c1f0 s32i a12, sp, 4 /* a12 -> [(local1)] */ # a6b: c911 s32i a0, sp, 0 /* a0 -> [(local0)] */ # a6d: 0901 @@ -1126,6 +1144,7 @@ sdk_lmacRecycleMPDU: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .Lfunc011: movi a3, 1 /* 0x00000001 */ # aa0: 0c13 addi sp, sp, -16 /* (local0) */ # aa2: 12c1f0 s32i a0, sp, 0 /* a0 -> [(local0)] */ # aa5: 0901 @@ -1189,6 +1208,7 @@ sdk_lmacRecycleMPDU: # (local7): word @ -0x14 # (local8): word @ -0x10 # (local9): word[3] @ -0xc + .balign 4 .Lfunc012: movi a4, 3 /* 0x00000003 */ # b4c: 0c34 movi a5, 148 /* 0x00000094 */ # b4e: 52a094 addi sp, sp, -48 /* (FP)-0x30 */ # b51: 12c1d0 @@ -1551,6 +1571,7 @@ sdk_lmacRecycleMPDU: # (local2): word @ -0x18 # (local3): word @ -0x14 # (local4): word[4] @ -0x10 + .balign 4 .global sdk_lmacProcessCollisions .type sdk_lmacProcessCollisions, @function sdk_lmacProcessCollisions: @@ -1609,6 +1630,7 @@ sdk_lmacProcessCollisions: # Function @ .text+0xf70 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_lmacProcessCollision .type sdk_lmacProcessCollision, @function sdk_lmacProcessCollision: @@ -1661,6 +1683,7 @@ sdk_lmacProcessCollision: j .Lbr162 # ff1: 06fcff # Function @ .text+0xff4 + .balign 4 .global sdk_lmacMSDUAged .type sdk_lmacMSDUAged, @function sdk_lmacMSDUAged: @@ -1686,6 +1709,7 @@ sdk_lmacMSDUAged: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .Lfunc013: addi sp, sp, -16 /* (local0) */ # 102c: 12c1f0 s32i a0, sp, 0 /* a0 -> [(local0)] */ # 102f: 0901 s32i a12, sp, 4 /* a12 -> [(local1)] */ # 1031: c911 @@ -1831,6 +1855,7 @@ sdk_lmacMSDUAged: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .Lfunc014: addi sp, sp, -16 /* (local0) */ # 11b0: 12c1f0 s32i a12, sp, 8 /* a12 -> [(local2)] */ # 11b3: c921 s32i a0, sp, 4 /* a0 -> [(local1)] */ # 11b5: 0911 @@ -1934,6 +1959,7 @@ sdk_lmacMSDUAged: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .Lfunc015: addi sp, sp, -16 /* (local0) */ # 12b4: 12c1f0 l8ui a5, a2, 10 /* [arg0+0xa] */ # 12b7: 52020a s32i a0, sp, 0 /* a0 -> [(local0)] */ # 12ba: 0901 @@ -2067,6 +2093,7 @@ sdk_lmacMSDUAged: # Function @ .text+0x1418 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_lmacProcessCtsTimeout .type sdk_lmacProcessCtsTimeout, @function sdk_lmacProcessCtsTimeout: @@ -2105,6 +2132,7 @@ sdk_lmacProcessCtsTimeout: # Function @ .text+0x1470 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_lmacProcessAckTimeout .type sdk_lmacProcessAckTimeout, @function sdk_lmacProcessAckTimeout: @@ -2143,6 +2171,7 @@ sdk_lmacProcessAckTimeout: .literal_position # 14c4: 00000000 # Function @ .text+0x14c8 + .balign 4 .global sdk_lmacProcessRtsStart .type sdk_lmacProcessRtsStart, @function sdk_lmacProcessRtsStart: @@ -2169,6 +2198,7 @@ sdk_lmacProcessRtsStart: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .global sdk_lmacProcessTxRtsError .type sdk_lmacProcessTxRtsError, @function sdk_lmacProcessTxRtsError: @@ -2242,6 +2272,7 @@ sdk_lmacProcessTxRtsError: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_lmacProcessTxError .type sdk_lmacProcessTxError, @function sdk_lmacProcessTxError: @@ -2314,6 +2345,7 @@ sdk_lmacProcessTxError: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .global sdk_lmacTxFrame .type sdk_lmacTxFrame, @function sdk_lmacTxFrame: @@ -2437,6 +2469,7 @@ sdk_lmacTxFrame: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .Lfunc016: movi a3, 0 /* 0x00000000 */ # 17c4: 0c03 addi sp, sp, -16 /* (local0) */ # 17c6: 12c1f0 s32i a12, sp, 4 /* a12 -> [(local1)] */ # 17c9: c911 @@ -2465,6 +2498,7 @@ sdk_lmacTxFrame: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .Lfunc017: addi sp, sp, -16 /* (local0) */ # 1800: 12c1f0 s32i a3, sp, 0 /* arg1 -> [(local0)] */ # 1803: 3901 s32i a12, sp, 8 /* a12 -> [(local2)] */ # 1805: c921 @@ -2506,6 +2540,7 @@ sdk_lmacTxFrame: # Function @ .text+0x1860 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_lmacRxDone .type sdk_lmacRxDone, @function sdk_lmacRxDone: @@ -2557,6 +2592,7 @@ sdk_lmacConfMib: .literal_position # 0: 30000000 # Function @ .irom0.text+0x4 + .balign 4 .global sdk_lmacInitAc .type sdk_lmacInitAc, @function sdk_lmacInitAc: @@ -2585,6 +2621,7 @@ sdk_lmacInitAc: # Function @ .irom0.text+0x40 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_lmacInit .type sdk_lmacInit, @function sdk_lmacInit: @@ -2645,6 +2682,7 @@ sdk_lmacInit: # c0: ff0f0000 # Function @ .irom0.text+0xc4 + .balign 4 .Lfunc018: movi a2, 0x00000fff # c4: 21ffff movi a4, 351 /* 0x0000015f */ # c7: 42a15f movi a5, 9 /* 0x00000009 */ # ca: 0c95 diff --git a/binary_sdk/libpp/pm.S b/binary_sdk/libpp/pm.S index 8cee26d..3113a52 100644 --- a/binary_sdk/libpp/pm.S +++ b/binary_sdk/libpp/pm.S @@ -91,6 +91,7 @@ # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .Lfunc001: addi sp, sp, -16 /* (local0) */ # c: 12c1f0 s32i a0, sp, 0 /* a0 -> [(local0)] */ # f: 0901 call0 vPortEnterCritical # 11: 01fcffc0 @@ -119,6 +120,7 @@ .literal_position # 4c: 00000000 # Function @ .irom0.text+0x50 + .balign 4 .Lfunc002: movi a3, .Ldata002 # 50: 31ffff l8ui a2, a3, 1 /* [.Ldata003] */ # 53: 220301 addi a2, a2, -1 /* [.Ldata003]-0x1 */ # 56: 0b22 @@ -134,6 +136,7 @@ # Function @ .irom0.text+0x74 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_pm_rtc_clock_cali_proc .type sdk_pm_rtc_clock_cali_proc, @function sdk_pm_rtc_clock_cali_proc: @@ -166,6 +169,7 @@ sdk_pm_rtc_clock_cali_proc: # Function @ .irom0.text+0xb8 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_pm_set_sleep_time .type sdk_pm_set_sleep_time, @function sdk_pm_set_sleep_time: @@ -205,6 +209,7 @@ sdk_pm_set_sleep_time: # Function @ .irom0.text+0x128 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .Lfunc003: addi sp, sp, -16 /* (local0) */ # 128: 12c1f0 s32i a0, sp, 0 /* a0 -> [(local0)] */ # 12b: 0901 movi a0, .Ldata001 # 12d: 01eaff @@ -291,6 +296,7 @@ sdk_pm_set_sleep_time: # 20c: 000af23f # Function @ .irom0.text+0x210 + .balign 4 .Lfunc004: movi a6, .Ldata002 # 210: 61feff l8ui a2, a6, 54 /* [.Ldata018] */ # 213: 220636 movi a5, 0x3ff20a00 # 216: 51fdff @@ -314,6 +320,7 @@ sdk_pm_set_sleep_time: .literal_position # 244: 00000000 # Function @ .irom0.text+0x248 + .balign 4 .global sdk_pm_rf_is_closed .type sdk_pm_rf_is_closed, @function sdk_pm_rf_is_closed: @@ -345,6 +352,7 @@ sdk_pm_rf_is_closed: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .global sdk_pm_set_sleep_type_from_upper .type sdk_pm_set_sleep_type_from_upper, @function sdk_pm_set_sleep_type_from_upper: @@ -396,6 +404,7 @@ sdk_pm_set_sleep_type_from_upper: .literal_position # 30c: 00000000 # Function @ .irom0.text+0x310 + .balign 4 .global sdk_pm_get_sleep_type .type sdk_pm_get_sleep_type, @function sdk_pm_get_sleep_type: @@ -432,6 +441,7 @@ sdk_pm_get_sleep_type: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .Lfunc005: addi sp, sp, -16 /* (local0) */ # 370: 12c1f0 s32i a13, sp, 8 /* a13 -> [(local2)] */ # 373: d921 s32i a12, sp, 4 /* a12 -> [(local1)] */ # 375: c911 @@ -520,6 +530,7 @@ sdk_pm_get_sleep_type: # Function @ .irom0.text+0x458 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .Lfunc006: addi sp, sp, -16 /* (local0) */ # 458: 12c1f0 s32i a0, sp, 0 /* a0 -> [(local0)] */ # 45b: 0901 movi a0, .Ldata001 # 45d: 01fdff @@ -533,6 +544,7 @@ sdk_pm_get_sleep_type: .balign 4 # Function @ .irom0.text+0x474 + .balign 4 .global sdk_uart_tx_flush .type sdk_uart_tx_flush, @function sdk_uart_tx_flush: @@ -540,6 +552,7 @@ sdk_uart_tx_flush: .balign 4 # Function @ .irom0.text+0x478 + .balign 4 .global sdk_pm_suspend .type sdk_pm_suspend, @function sdk_pm_suspend: @@ -554,6 +567,7 @@ sdk_pm_suspend: # Function @ .irom0.text+0x490 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .Lfunc007: addi sp, sp, -16 /* (local0) */ # 490: 12c1f0 s32i a0, sp, 0 /* a0 -> [(local0)] */ # 493: 0901 call0 vTaskSuspendAll # 495: 01fbffc0 @@ -605,6 +619,7 @@ sdk_pm_suspend: # (local2): word @ -0x18 # (local3): word @ -0x14 # (local4): word[4] @ -0x10 + .balign 4 .Lfunc008: addi sp, sp, -32 /* (local0) */ # 524: 12c1e0 s32i a12, sp, 4 /* a12 -> [(local1)] */ # 527: c911 s32i a13, sp, 8 /* a13 -> [(local2)] */ # 529: d921 @@ -729,6 +744,7 @@ sdk_pm_suspend: # Function @ .irom0.text+0x66c # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .Lfunc009: addi sp, sp, -16 /* (local0) */ # 66c: 12c1f0 s32i a0, sp, 0 /* a0 -> [(local0)] */ # 66f: 0901 call0 vTaskSuspendAll # 671: 01f8ffc0 @@ -775,6 +791,7 @@ sdk_pm_suspend: # Function @ .irom0.text+0x6e8 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .Lfunc010: addi sp, sp, -16 /* (local0) */ # 6e8: 12c1f0 s32i a0, sp, 0 /* a0 -> [(local0)] */ # 6eb: 0901 call0 vTaskSuspendAll # 6ed: 01f8ffc0 @@ -818,6 +835,7 @@ sdk_pm_suspend: # Function @ .irom0.text+0x758 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .Lfunc011: addi sp, sp, -16 /* (local0) */ # 758: 12c1f0 s32i a0, sp, 0 /* a0 -> [(local0)] */ # 75b: 0901 call0 vTaskSuspendAll # 75d: 01faffc0 @@ -848,6 +866,7 @@ sdk_pm_suspend: # Function @ .irom0.text+0x7a4 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .Lfunc012: addi sp, sp, -16 /* (local0) */ # 7a4: 12c1f0 s32i a0, sp, 0 /* a0 -> [(local0)] */ # 7a7: 0901 call0 vTaskSuspendAll # 7a9: 01fbffc0 @@ -879,6 +898,7 @@ sdk_pm_suspend: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .Lfunc013: addi sp, sp, -16 /* (local0) */ # 7f8: 12c1f0 movi a2, .Lstr021 # 7fb: 21f7ff s32i a12, sp, 4 /* a12 -> [(local1)] */ # 7fe: c911 @@ -937,6 +957,7 @@ sdk_pm_suspend: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_pm_shutdown .type sdk_pm_shutdown, @function sdk_pm_shutdown: @@ -1035,6 +1056,7 @@ sdk_pm_shutdown: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_pm_reset_idle_sleep .type sdk_pm_reset_idle_sleep, @function sdk_pm_reset_idle_sleep: @@ -1064,6 +1086,7 @@ sdk_pm_reset_idle_sleep: .balign 4 # Function @ .irom0.text+0x9e0 + .balign 4 .global sdk_pm_idle_sleep .type sdk_pm_idle_sleep, @function sdk_pm_idle_sleep: @@ -1092,6 +1115,7 @@ sdk_pm_idle_sleep: # (local1): word @ -0xc # (local2): word @ -0x8 # (local3): word @ -0x4 + .balign 4 .global sdk_pm_open .type sdk_pm_open, @function sdk_pm_open: @@ -1212,6 +1236,7 @@ sdk_pm_open: # (local7): word @ -0x14 # (local8): word @ -0x10 # (local9): word[3] @ -0xc + .balign 4 .global sdk_pm_onBcnRx .type sdk_pm_onBcnRx, @function sdk_pm_onBcnRx: @@ -1486,6 +1511,7 @@ sdk_pm_onBcnRx: # Function @ .irom0.text+0xe34 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .Lfunc014: addi sp, sp, -16 /* (local0) */ # e34: 12c1f0 s32i a0, sp, 0 /* a0 -> [(local0)] */ # e37: 0901 movi a0, .Ldata002 # e39: 01fbff @@ -1519,6 +1545,7 @@ sdk_pm_onBcnRx: # Function @ .irom0.text+0xe90 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .Lfunc015: addi sp, sp, -16 /* (local0) */ # e90: 12c1f0 s32i a0, sp, 0 /* a0 -> [(local0)] */ # e93: 0901 movi a0, .Ldata002 # e95: 01f3ff @@ -1573,6 +1600,7 @@ sdk_pm_onBcnRx: # (local1): word @ -0xc # (local2): word @ -0x8 # (local3): word @ -0x4 + .balign 4 .Lfunc016: mov a3, a2 /* arg0 */ # f24: 3d02 addi sp, sp, -16 /* (local0) */ # f26: 12c1f0 s32i a12, sp, 8 /* a12 -> [(local2)] */ # f29: c921 @@ -1684,6 +1712,7 @@ sdk_pm_onBcnRx: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .Lfunc017: mov a4, a2 /* arg0 */ # 105c: 4d02 addi sp, sp, -16 /* (local0) */ # 105e: 12c1f0 s32i a12, sp, 8 /* a12 -> [(local2)] */ # 1061: c921 @@ -1787,6 +1816,7 @@ sdk_pm_onBcnRx: # (local1): word @ -0xc # (local2): word @ -0x8 # (local3): word @ -0x4 + .balign 4 .Lfunc018: mov a3, a2 /* arg0 */ # 1170: 3d02 addi sp, sp, -16 /* (local0) */ # 1172: 12c1f0 s32i a13, sp, 12 /* a13 -> [(local3)] */ # 1175: d931 @@ -1861,6 +1891,7 @@ sdk_pm_onBcnRx: # Function @ .irom0.text+0x1234 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .Lfunc019: addi sp, sp, -16 /* (local0) */ # 1234: 12c1f0 s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1237: 0901 call0 vTaskSuspendAll # 1239: 01faffc0 @@ -1907,6 +1938,7 @@ sdk_pm_onBcnRx: # Function @ .irom0.text+0x12b8 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .Lfunc020: movi a4, 191 /* 0x000000bf */ # 12b8: 42a0bf movi a2, .Ldata002 # 12bb: 21f5ff addi sp, sp, -16 /* (local0) */ # 12be: 12c1f0 @@ -1959,6 +1991,7 @@ sdk_pm_onBcnRx: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .Lfunc021: movi a2, .Lstr039 # 1344: 21fbff addi sp, sp, -16 /* (local0) */ # 1347: 12c1f0 s32i a0, sp, 4 /* a0 -> [(local1)] */ # 134a: 0911 @@ -1980,6 +2013,7 @@ sdk_pm_onBcnRx: .literal_position # 1370: 00000000 # Function @ .irom0.text+0x1374 + .balign 4 .global sdk_pm_enable_gpio_wakeup .type sdk_pm_enable_gpio_wakeup, @function sdk_pm_enable_gpio_wakeup: @@ -2029,6 +2063,7 @@ sdk_pm_enable_gpio_wakeup: # (local1): word[3] @ -0x1c # (local2): word @ -0x10 # (local3): word[3] @ -0xc + .balign 4 .global sdk_pm_attach .type sdk_pm_attach, @function sdk_pm_attach: @@ -2168,6 +2203,7 @@ sdk_pm_attach: # (local5): word @ -0x10 # (local6): word @ -0xc # (local7): word[2] @ -0x8 + .balign 4 .global sdk_pm_send_nullfunc .type sdk_pm_send_nullfunc, @function sdk_pm_send_nullfunc: @@ -2353,6 +2389,7 @@ sdk_pm_send_nullfunc: .literal_position # 1754: 00000000 # Function @ .irom0.text+0x1758 + .balign 4 .global sdk_pm_is_waked .type sdk_pm_is_waked, @function sdk_pm_is_waked: @@ -2369,6 +2406,7 @@ sdk_pm_is_waked: .literal_position # 1770: 00000000 # Function @ .irom0.text+0x1774 + .balign 4 .global sdk_pm_is_open .type sdk_pm_is_open, @function sdk_pm_is_open: @@ -2389,6 +2427,7 @@ sdk_pm_is_open: # Function @ .irom0.text+0x1798 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_pm_scan_lock .type sdk_pm_scan_lock, @function sdk_pm_scan_lock: @@ -2413,6 +2452,7 @@ sdk_pm_scan_lock: # Function @ .irom0.text+0x17c8 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_pm_try_scan_unlock .type sdk_pm_try_scan_unlock, @function sdk_pm_try_scan_unlock: @@ -2431,6 +2471,7 @@ sdk_pm_try_scan_unlock: # Function @ .irom0.text+0x17e8 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_pm_force_scan_unlock .type sdk_pm_force_scan_unlock, @function sdk_pm_force_scan_unlock: @@ -2462,6 +2503,7 @@ sdk_pm_force_scan_unlock: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .Lfunc022: addi sp, sp, -16 /* (local0) */ # 1834: 12c1f0 movi a2, .Lstr045 # 1837: 21f5ff s32i a12, sp, 4 /* a12 -> [(local1)] */ # 183a: c911 @@ -2519,6 +2561,7 @@ sdk_pm_force_scan_unlock: .literal_position # 18cc: 00000000 # Function @ .irom0.text+0x18d0 + .balign 4 .global sdk_pm_scan_unlocked .type sdk_pm_scan_unlocked, @function sdk_pm_scan_unlocked: @@ -2533,6 +2576,7 @@ sdk_pm_scan_unlocked: .literal_position # 18e4: 00000000 # Function @ .irom0.text+0x18e8 + .balign 4 .global sdk_pm_allow_tx .type sdk_pm_allow_tx, @function sdk_pm_allow_tx: @@ -2551,6 +2595,7 @@ sdk_pm_allow_tx: .literal_position # 1908: 00000000 # Function @ .irom0.text+0x190c + .balign 4 .global sdk_pm_assoc_parse .type sdk_pm_assoc_parse, @function sdk_pm_assoc_parse: @@ -2570,6 +2615,7 @@ sdk_pm_assoc_parse: # Function @ .irom0.text+0x192c # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_pm_set_addr .type sdk_pm_set_addr, @function sdk_pm_set_addr: @@ -2591,6 +2637,7 @@ sdk_pm_set_addr: # Function @ .irom0.text+0x1954 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_pm_sleep_for .type sdk_pm_sleep_for, @function sdk_pm_sleep_for: @@ -2629,6 +2676,7 @@ sdk_pm_sleep_for: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .global sdk_pm_post .type sdk_pm_post, @function sdk_pm_post: @@ -2712,6 +2760,7 @@ sdk_pm_post: # (local2): word @ -0x18 # (local3): word @ -0x14 # (local4): word[4] @ -0x10 + .balign 4 .Lfunc023: movi a2, 8 /* 0x00000008 */ # 1a88: 0c82 movi a3, 4 /* 0x00000004 */ # 1a8a: 0c43 movi a4, 0 /* 0x00000000 */ # 1a8c: 0c04 @@ -2851,6 +2900,7 @@ sdk_pm_post: # Function @ .irom0.text+0x1bf8 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_pm_get_idle_wait_time .type sdk_pm_get_idle_wait_time, @function sdk_pm_get_idle_wait_time: diff --git a/binary_sdk/libpp/pp.S b/binary_sdk/libpp/pp.S index 0ccb896..0ec05ed 100644 --- a/binary_sdk/libpp/pp.S +++ b/binary_sdk/libpp/pp.S @@ -2,6 +2,8 @@ .section .text, "ax", @progbits # Function @ .text+0x0 + .balign 4 + .literal_position .Lfunc001: movi a4, 136 /* 0x00000088 */ # 0: 42a088 movi a6, 24 /* 0x00000018 */ # 3: 1c86 movi a5, 30 /* 0x0000001e */ # 5: 1ce5 @@ -38,6 +40,7 @@ # (local6): word @ -0x18 # (local7): word @ -0x14 # (local8): word[4] @ -0x10 + .balign 4 .global sdk_pp_soft_wdt_feed .type sdk_pp_soft_wdt_feed, @function sdk_pp_soft_wdt_feed: @@ -100,6 +103,7 @@ sdk_pp_soft_wdt_feed: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .Lfunc002: addi sp, sp, -16 /* (local0) */ # dc: 12c1f0 s32i a12, sp, 4 /* a12 -> [(local1)] */ # df: c911 s32i a0, sp, 0 /* a0 -> [(local0)] */ # e1: 0901 @@ -136,6 +140,7 @@ sdk_pp_soft_wdt_feed: .literal_position # 130: 00000000 # Function @ .text+0x134 + .balign 4 .Lfunc003: movi a5, .Ldata003 # 134: 51ffff l16ui a2, a5, 6 /* [.Ldata006] */ # 137: 221503 movi a3, 8 /* 0x00000008 */ # 13a: 0c83 @@ -160,6 +165,7 @@ sdk_pp_soft_wdt_feed: .literal_position # 168: 00000000 # Function @ .text+0x16c + .balign 4 .Lfunc004: movi a3, .Ldata003 # 16c: 31ffff l16ui a2, a3, 6 /* [.Ldata006] */ # 16f: 221303 addi a2, a2, -1 /* [.Ldata006]-0x1 */ # 172: 0b22 @@ -186,6 +192,7 @@ sdk_pp_soft_wdt_feed: # (local1): word @ -0xc # (local2): word @ -0x8 # (local3): word @ -0x4 + .balign 4 .global sdk_ppProcessTxQ .type sdk_ppProcessTxQ, @function sdk_ppProcessTxQ: @@ -286,6 +293,7 @@ sdk_ppProcessTxQ: .literal_position # 2a8: 00000000 # Function @ .text+0x2ac + .balign 4 .global sdk_ppFetchTxQFirstAvail .type sdk_ppFetchTxQFirstAvail, @function sdk_ppFetchTxQFirstAvail: @@ -320,6 +328,7 @@ sdk_ppFetchTxQFirstAvail: .literal_position # 2ec: 00000000 # Function @ .text+0x2f0 + .balign 4 .global sdk_ppDequeueTxQ .type sdk_ppDequeueTxQ, @function sdk_ppDequeueTxQ: @@ -344,6 +353,7 @@ sdk_ppDequeueTxQ: .literal_position # 318: 00000000 # Function @ .text+0x31c + .balign 4 .global sdk_ppRollBackTxQ .type sdk_ppRollBackTxQ, @function sdk_ppRollBackTxQ: @@ -366,6 +376,7 @@ sdk_ppRollBackTxQ: .literal_position # 340: 00000000 # Function @ .text+0x344 + .balign 4 .global sdk_ppRecordBarRRC .type sdk_ppRecordBarRRC, @function sdk_ppRecordBarRRC: @@ -379,6 +390,7 @@ sdk_ppRecordBarRRC: .literal_position # 354: 00000000 # Function @ .text+0x358 + .balign 4 .global sdk_ppTxqUpdateBitmap .type sdk_ppTxqUpdateBitmap, @function sdk_ppTxqUpdateBitmap: @@ -402,6 +414,7 @@ sdk_ppTxqUpdateBitmap: # Function @ .text+0x384 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_ppEnqueueTxDone .type sdk_ppEnqueueTxDone, @function sdk_ppEnqueueTxDone: @@ -429,6 +442,7 @@ sdk_ppEnqueueTxDone: .literal_position # 3b8: 00000000 # Function @ .text+0x3bc + .balign 4 .global sdk_ppEnqueueRxq .type sdk_ppEnqueueRxq, @function sdk_ppEnqueueRxq: @@ -454,6 +468,7 @@ sdk_ppEnqueueRxq: # (local1): word @ -0xc # (local2): word @ -0x8 # (local3): word @ -0x4 + .balign 4 .Lfunc005: addi sp, sp, -16 /* (local0) */ # 3e8: 12c1f0 s32i a13, sp, 12 /* a13 -> [(local3)] */ # 3eb: d931 s32i a12, sp, 8 /* a12 -> [(local2)] */ # 3ed: c921 @@ -530,6 +545,7 @@ sdk_ppEnqueueRxq: # (local4): word @ -0x10 # (local5): word @ -0xc # (local6): word[2] @ -0x8 + .balign 4 .Lfunc006: addi sp, sp, -32 /* (local0) */ # 48c: 12c1e0 s32i a12, sp, 8 /* a12 -> [(local2)] */ # 48f: c921 s32i a14, sp, 16 /* a14 -> [(local4)] */ # 491: e941 @@ -635,6 +651,7 @@ sdk_ppEnqueueRxq: # (local1): word @ -0xc # (local2): word @ -0x8 # (local3): word @ -0x4 + .balign 4 .Lfunc007: movi a9, 1 /* 0x00000001 */ # 58c: 0c19 addi sp, sp, -16 /* (local0) */ # 58e: 12c1f0 movi a3, sdk_NoiseTimerInterval # 591: 31fcff @@ -720,6 +737,7 @@ sdk_ppEnqueueRxq: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .Lfunc008: movi a11, 1 /* 0x00000001 */ # 654: 0c1b movi a8, 0 /* 0x00000000 */ # 656: 0c08 movi a10, sdk_NoiseTimerInterval # 658: a1feff @@ -878,6 +896,7 @@ sdk_ppEnqueueRxq: # (local6): word @ -0x18 # (local7): word @ -0x14 # (local8): word[4] @ -0x10 + .balign 4 .Lfunc009: addi sp, sp, -80 /* (FP)-0x50 */ # 7f0: 12c1b0 s32i a15, sp, 52 /* a15 -> [(local5)] */ # 7f3: f9d1 s32i a13, sp, 44 /* a13 -> [(local3)] */ # 7f5: d9b1 @@ -1067,6 +1086,7 @@ sdk_ppEnqueueRxq: # (local2): word @ -0x18 # (local3): word @ -0x14 # (local4): word[4] @ -0x10 + .balign 4 .Lfunc010: addi sp, sp, -32 /* (local0) */ # 9d0: 12c1e0 s32i a0, sp, 0 /* a0 -> [(local0)] */ # 9d3: 0901 s32i a14, sp, 12 /* a14 -> [(local3)] */ # 9d5: e931 @@ -1128,6 +1148,7 @@ sdk_ppEnqueueRxq: # (local2): word @ -0x18 # (local3): word @ -0x14 # (local4): word[4] @ -0x10 + .balign 4 .Lfunc011: addi sp, sp, -32 /* (local0) */ # a6c: 12c1e0 s32i a12, sp, 12 /* a12 -> [(local3)] */ # a6f: c931 s32i a0, sp, 8 /* a0 -> [(local2)] */ # a71: 0921 @@ -1300,6 +1321,7 @@ sdk_ppEnqueueRxq: # Function @ .text+0xc34 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_ppDiscardMPDU .type sdk_ppDiscardMPDU, @function sdk_ppDiscardMPDU: @@ -1339,6 +1361,7 @@ sdk_ppDiscardMPDU: # (local4): word @ -0x10 # (local5): word @ -0xc # (local6): word[2] @ -0x8 + .balign 4 .global sdk_MacIsrSigPostDefHdl .type sdk_MacIsrSigPostDefHdl, @function sdk_MacIsrSigPostDefHdl: @@ -1452,6 +1475,7 @@ sdk_MacIsrSigPostDefHdl: # (local2): word @ -0x18 # (local3): word @ -0x14 # (local4): word[4] @ -0x10 + .balign 4 .global sdk_pp_post .type sdk_pp_post, @function sdk_pp_post: @@ -1575,6 +1599,7 @@ sdk_pp_post: # (local1): word @ -0xc # (local2): word @ -0x8 # (local3): word @ -0x4 + .balign 4 .global sdk_ppCalTxop .type sdk_ppCalTxop, @function sdk_ppCalTxop: @@ -1674,6 +1699,7 @@ sdk_ppCalTxop: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_ppCalFrameTimes .type sdk_ppCalFrameTimes, @function sdk_ppCalFrameTimes: @@ -1788,6 +1814,7 @@ sdk_dbg_stop_hw_wdt: # Function @ .irom0.text+0xc # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_PPWdtReset .type sdk_PPWdtReset, @function sdk_PPWdtReset: @@ -1812,6 +1839,7 @@ sdk_PPWdtReset: # Function @ .irom0.text+0x40 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_pp_soft_wdt_init .type sdk_pp_soft_wdt_init, @function sdk_pp_soft_wdt_init: @@ -1830,6 +1858,7 @@ sdk_pp_soft_wdt_init: .literal_position # 60: 00000000 # Function @ .irom0.text+0x64 + .balign 4 .global sdk_RxNodeNum .type sdk_RxNodeNum, @function sdk_RxNodeNum: @@ -1852,6 +1881,7 @@ sdk_RxNodeNum: .literal_position # 88: 00000000 # Function @ .irom0.text+0x8c + .balign 4 .global sdk_TxNodeNum .type sdk_TxNodeNum, @function sdk_TxNodeNum: @@ -1876,6 +1906,7 @@ sdk_TxNodeNum: # Function @ .irom0.text+0xb8 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .Lfunc012: addi sp, sp, -16 /* (local0) */ # b8: 12c1f0 s32i a0, sp, 0 /* a0 -> [(local0)] */ # bb: 0901 call0 vPortEnterCritical # bd: 01fcffc0 @@ -1896,6 +1927,7 @@ sdk_TxNodeNum: # Function @ .irom0.text+0xe4 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_pp_disable_noise_timer .type sdk_pp_disable_noise_timer, @function sdk_pp_disable_noise_timer: @@ -1931,6 +1963,7 @@ sdk_pp_disable_noise_timer: # (local1): word @ -0xc # (local2): word @ -0x8 # (local3): word @ -0x4 + .balign 4 .global sdk_pp_enable_noise_timer .type sdk_pp_enable_noise_timer, @function sdk_pp_enable_noise_timer: @@ -2017,6 +2050,7 @@ sdk_pp_enable_noise_timer: # Function @ .irom0.text+0x20c # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_pp_noise_test .type sdk_pp_noise_test, @function sdk_pp_noise_test: @@ -2037,6 +2071,7 @@ sdk_pp_noise_test: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_reset_noise_timer .type sdk_reset_noise_timer, @function sdk_reset_noise_timer: @@ -2067,6 +2102,7 @@ sdk_reset_noise_timer: # Function @ .irom0.text+0x270 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_pp_disable_idle_timer .type sdk_pp_disable_idle_timer, @function sdk_pp_disable_idle_timer: @@ -2091,6 +2127,7 @@ sdk_pp_disable_idle_timer: # Function @ .irom0.text+0x2a0 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_pp_enable_idle_timer .type sdk_pp_enable_idle_timer, @function sdk_pp_enable_idle_timer: @@ -2116,6 +2153,7 @@ sdk_pp_enable_idle_timer: # Function @ .irom0.text+0x2d4 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_pp_try_enable_idle_timer .type sdk_pp_try_enable_idle_timer, @function sdk_pp_try_enable_idle_timer: @@ -2143,6 +2181,7 @@ sdk_pp_try_enable_idle_timer: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_ppPeocessRxPktHdr .type sdk_ppPeocessRxPktHdr, @function sdk_ppPeocessRxPktHdr: @@ -2220,6 +2259,7 @@ sdk_ppPeocessRxPktHdr: # (local4): word @ -0x10 # (local5): word @ -0xc # (local6): word[2] @ -0x8 + .balign 4 .global sdk_ppTask .type sdk_ppTask, @function sdk_ppTask: movi a2, 40 /* 0x00000028 */ # 3d8: 2c82 @@ -2481,6 +2521,7 @@ sdk_ppTask: movi a2, 40 /* 0x00000028 */ # 3d8: 2c82 # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .Lfunc013: movi a4, 2 /* 0x00000002 */ # 698: 0c24 movi a9, 12 /* 0x0000000c */ # 69a: 0cc9 addi sp, sp, -16 /* (local0) */ # 69c: 12c1f0 @@ -2593,6 +2634,7 @@ sdk_ppTask: movi a2, 40 /* 0x00000028 */ # 3d8: 2c82 # (local2): word @ -0x18 # (local3): word @ -0x14 # (local4): word[4] @ -0x10 + .balign 4 .global sdk_ppTxPkt .type sdk_ppTxPkt, @function sdk_ppTxPkt: @@ -2779,6 +2821,7 @@ sdk_ppTxPkt: # Function @ .irom0.text+0x9ac # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_ppProcessWaitQ .type sdk_ppProcessWaitQ, @function sdk_ppProcessWaitQ: @@ -2793,6 +2836,7 @@ sdk_ppProcessWaitQ: .literal_position # 9c0: 00000000 # Function @ .irom0.text+0x9c4 + .balign 4 .global sdk_ppRegisterTxCallback .type sdk_ppRegisterTxCallback, @function sdk_ppRegisterTxCallback: @@ -2825,6 +2869,7 @@ sdk_ppRegisterTxCallback: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_ppRecycleRxPkt .type sdk_ppRecycleRxPkt, @function sdk_ppRecycleRxPkt: @@ -2883,6 +2928,7 @@ sdk_ppRecycleRxPkt: # (local1): word @ -0xc # (local2): word @ -0x8 # (local3): word @ -0x4 + .balign 4 .global sdk_ppCheckTxIdle .type sdk_ppCheckTxIdle, @function sdk_ppCheckTxIdle: @@ -3032,6 +3078,7 @@ sdk_ppCheckTxIdle: # (local4): word @ -0x10 # (local5): word @ -0xc # (local6): word[2] @ -0x8 + .balign 4 .Lfunc014: movi a9, 0 /* 0x00000000 */ # c00: 0c09 addi sp, sp, -32 /* (local0) */ # c02: 12c1e0 s32i a12, sp, 8 /* a12 -> [(local2)] */ # c05: c921 @@ -3196,6 +3243,7 @@ sdk_ppCheckTxIdle: # (local1): word @ -0xc # (local2): word @ -0x8 # (local3): word @ -0x4 + .balign 4 .Lfunc015: addi sp, sp, -16 /* (local0) */ # dac: 12c1f0 s32i a12, sp, 4 /* a12 -> [(local1)] */ # daf: c911 s32i a13, sp, 8 /* a13 -> [(local2)] */ # db1: d921 @@ -3300,6 +3348,7 @@ sdk_ppCheckTxIdle: # (local7): word @ -0x14 # (local8): word @ -0x10 # (local9): word[3] @ -0xc + .balign 4 .Lfunc016: movi a5, 240 /* 0x000000f0 */ # eb8: 52a0f0 addi sp, sp, -48 /* (local0) */ # ebb: 12c1d0 s32i a12, sp, 16 /* a12 -> [(local4)] */ # ebe: c941 @@ -3490,6 +3539,7 @@ sdk_ppCheckTxIdle: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .global sdk_ppGetTxQFirstAvail_Locked .type sdk_ppGetTxQFirstAvail_Locked, @function sdk_ppGetTxQFirstAvail_Locked: @@ -3563,6 +3613,7 @@ sdk_ppGetTxQFirstAvail_Locked: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .Lfunc017: movi a4, -32 /* 0xffffffe0 */ # 1158: 6c04 movi a2, sdk_NMIIrqIsOn # 115a: 21f9ff addi sp, sp, -16 /* (local0) */ # 115d: 12c1f0 @@ -3626,6 +3677,7 @@ sdk_ppGetTxQFirstAvail_Locked: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .Lfunc018: movi a4, -32 /* 0xffffffe0 */ # 11f4: 6c04 movi a2, sdk_NMIIrqIsOn # 11f6: 21f9ff addi sp, sp, -16 /* (local0) */ # 11f9: 12c1f0 @@ -3700,6 +3752,7 @@ sdk_ppGetTxQFirstAvail_Locked: # (local1): word[3] @ -0x1c # (local2): word @ -0x10 # (local3): word[3] @ -0xc + .balign 4 .global sdk_pp_attach .type sdk_pp_attach, @function sdk_pp_attach: @@ -3814,6 +3867,7 @@ sdk_pp_attach: # Function @ .irom0.text+0x13dc # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .Lfunc019: addi sp, sp, -16 /* (local0) */ # 13dc: 12c1f0 s32i a0, sp, 0 /* a0 -> [(local0)] */ # 13df: 0901 l32i a0, a2, 32 /* [arg0+0x20] */ # 13e1: 0882 diff --git a/binary_sdk/libpp/rate_control.S b/binary_sdk/libpp/rate_control.S index dd94065..9506d25 100644 --- a/binary_sdk/libpp/rate_control.S +++ b/binary_sdk/libpp/rate_control.S @@ -2,6 +2,8 @@ .section .text, "ax", @progbits # Function @ .text+0x0 + .balign 4 + .literal_position .Lfunc001: bltui a2, 5, .Lbr003 # 0: b65213 bltui a2, 8, .Lbr001 # 3: b68209 movi a4, 36 /* 0x00000024 */ # 6: 2c44 @@ -17,6 +19,7 @@ .literal_position # 1c: 00000000 # Function @ .text+0x20 + .balign 4 .global sdk_RC_GetAckRate .type sdk_RC_GetAckRate, @function sdk_RC_GetAckRate: @@ -28,6 +31,7 @@ sdk_RC_GetAckRate: .literal_position # 2c: 00000000 # Function @ .text+0x30 + .balign 4 .global sdk_RC_GetRtsRate .type sdk_RC_GetRtsRate, @function sdk_RC_GetRtsRate: @@ -40,6 +44,7 @@ sdk_RC_GetRtsRate: # 40: 00000000 # Function @ .text+0x44 + .balign 4 .global sdk_RC_GetAckTime .type sdk_RC_GetAckTime, @function sdk_RC_GetAckTime: @@ -58,6 +63,7 @@ sdk_RC_GetAckTime: # (local2): word @ -0x18 # (local3): word @ -0x14 # (local4): word[4] @ -0x10 + .balign 4 .global sdk_RC_GetCtsTime .type sdk_RC_GetCtsTime, @function sdk_RC_GetCtsTime: @@ -94,6 +100,7 @@ sdk_RC_GetCtsTime: # (local1): word @ -0xc # (local2): word @ -0x8 # (local3): word @ -0x4 + .balign 4 .global sdk_RC_GetBlockAckTime .type sdk_RC_GetBlockAckTime, @function sdk_RC_GetBlockAckTime: @@ -126,6 +133,7 @@ sdk_RC_GetBlockAckTime: # d4: ffff0300 # Function @ .text+0xd8 + .balign 4 .Lfunc002: slli a4, a3, 3 # d8: d04311 movi a5, .Ldata002 # db: 51fdff extui a3, a4, 0, 16 # de: 4030f4 @@ -350,6 +358,7 @@ sdk_RC_GetBlockAckTime: # 6c: 2d0e0000 # Function @ .irom0.text+0x70 + .balign 4 .Lfunc003: movi a9, 0x0000ba2e # 70: 91e7ff movi a4, 0x00040000 # 73: 41e4ff movi a11, 0x00020000 # 76: b1e4ff @@ -524,6 +533,7 @@ sdk_RC_GetBlockAckTime: # Function @ .irom0.text+0x258 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_RC_SetBasicRate .type sdk_RC_SetBasicRate, @function sdk_RC_SetBasicRate: diff --git a/binary_sdk/libpp/trc.S b/binary_sdk/libpp/trc.S index 55162b9..5ce7871 100644 --- a/binary_sdk/libpp/trc.S +++ b/binary_sdk/libpp/trc.S @@ -2,6 +2,8 @@ .section .text, "ax", @progbits # Function @ .text+0x0 + .balign 4 + .literal_position .Lfunc001: sub a6, a2, a3 # 0: 3062c0 bltu a2, a3, .Lbr001 # 3: 373203 mov a2, a6 # 6: 2d06 @@ -12,6 +14,7 @@ .literal_position # 10: 22000000 # Function @ .text+0x14 + .balign 4 .Lfunc002: bgeui a2, 16, .Lbr002 # 14: f6b23a movi a4, .Lfunc003 # 17: 41feff addx2 a3, a2, a2 # 1a: 203290 @@ -60,6 +63,7 @@ .balign 4 # Function @ .text+0x84 + .balign 4 .Lfunc004: beqz a2, .Lbr017 # 84: ac12 beqi a2, 1, .Lbr015 # 86: 261217 beqi a2, 2, .Lbr016 # 89: 262218 @@ -81,6 +85,7 @@ .literal_position # b0: 20a10700 # Function @ .text+0xb4 + .balign 4 .Lfunc005: movi a3, 0x0007a120 # b4: 31ffff l32i a5, a2, 96 /* [arg0+0x60] */ # b7: 522218 movi a4, 0 /* 0x00000000 */ # ba: 0c04 @@ -101,6 +106,7 @@ # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .Lfunc006: addi sp, sp, -16 /* (local0) */ # d8: 12c1f0 s32i a0, sp, 0 /* a0 -> [(local0)] */ # db: 0901 s32i a13, sp, 8 /* a13 -> [(local2)] */ # dd: d921 @@ -133,6 +139,7 @@ # Function @ .text+0x120 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .Lfunc007: movi a6, 10 /* 0x0000000a */ # 120: 0ca6 addi sp, sp, -16 /* (local0) */ # 122: 12c1f0 s32i a0, sp, 0 /* a0 -> [(local0)] */ # 125: 0901 @@ -174,6 +181,7 @@ # Function @ .text+0x17c # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_rcUpdateTxDone .type sdk_rcUpdateTxDone, @function sdk_rcUpdateTxDone: @@ -232,6 +240,7 @@ sdk_rcUpdateTxDone: j .Lbr029 # 20d: c6fbff # Function @ .text+0x210 + .balign 4 .global sdk_rcUpdateRxDone .type sdk_rcUpdateRxDone, @function sdk_rcUpdateRxDone: @@ -270,6 +279,7 @@ sdk_rcUpdateRxDone: .balign 4 # Function @ .text+0x26c + .balign 4 .global sdk_rcUpdateDataRxDone .type sdk_rcUpdateDataRxDone, @function sdk_rcUpdateDataRxDone: @@ -289,6 +299,7 @@ sdk_rcUpdateDataRxDone: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .global sdk_rcGetSched .type sdk_rcGetSched, @function sdk_rcGetSched: @@ -358,6 +369,7 @@ sdk_rcGetSched: .balign 4 # Function @ .text+0x338 + .balign 4 .global sdk_rcGetRate .type sdk_rcGetRate, @function sdk_rcGetRate: @@ -391,6 +403,7 @@ sdk_rcGetRate: .literal_position # 380: 95030000 # Function @ .text+0x384 + .balign 4 .Lfunc008: movi a6, 255 /* 0x000000ff */ # 384: 62a0ff bgeui a3, 32, .Lbr052 # 387: f6c37c movi a5, .Lfunc009 # 38a: 51fdff @@ -581,6 +594,7 @@ sdk_rcGetRate: # (local2): word @ -0x18 # (local3): word @ -0x14 # (local4): word[4] @ -0x10 + .balign 4 .Lfunc010: addi sp, sp, -32 /* (local0) */ # 594: 12c1e0 s32i a13, sp, 12 /* a13 -> [(local3)] */ # 597: d931 s32i a0, sp, 4 /* a0 -> [(local1)] */ # 599: 0911 @@ -749,6 +763,7 @@ sdk_rcGetRate: .balign 4 # Function @ .text+0x750 + .balign 4 .global sdk_rcReachRetryLimit .type sdk_rcReachRetryLimit, @function sdk_rcReachRetryLimit: @@ -764,6 +779,7 @@ sdk_rcReachRetryLimit: .literal_position # 764: 00000000 # Function @ .text+0x768 + .balign 4 .global sdk_trc_NeedRTS .type sdk_trc_NeedRTS, @function sdk_trc_NeedRTS: @@ -929,6 +945,7 @@ sdk_trc_NeedRTS: .section .irom0.text, "ax", @progbits # Function @ .irom0.text+0x0 + .balign 4 .Lfunc011: beqz a3, .Lbr120 # 0: 8cd3 movi a6, 0 /* 0x00000000 */ # 2: 0c06 .Lbr119: s8i a6, a2, 10 # 4: 62420a @@ -949,6 +966,7 @@ sdk_trc_NeedRTS: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_rcUpdatePhyMode .type sdk_rcUpdatePhyMode, @function sdk_rcUpdatePhyMode: @@ -1036,6 +1054,7 @@ sdk_rcUpdatePhyMode: # Function @ .irom0.text+0x10c # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_rcAttach .type sdk_rcAttach, @function sdk_rcAttach: @@ -1071,6 +1090,7 @@ sdk_rcAttach: .literal_position # 154: 10000000 # Function @ .irom0.text+0x158 + .balign 4 .global sdk_rcGetTrc .type sdk_rcGetTrc, @function sdk_rcGetTrc: @@ -1079,6 +1099,7 @@ sdk_rcGetTrc: .balign 4 # Function @ .irom0.text+0x160 + .balign 4 .global sdk_trc_onDisconnect .type sdk_trc_onDisconnect, @function sdk_trc_onDisconnect: @@ -1086,6 +1107,7 @@ sdk_trc_onDisconnect: .balign 4 # Function @ .irom0.text+0x164 + .balign 4 .global sdk_trc_onScanStart .type sdk_trc_onScanStart, @function sdk_trc_onScanStart: @@ -1103,6 +1125,7 @@ sdk_trc_onScanStart: .Lbr130: ret /* arg0 */ # 182: 0df0 # Function @ .irom0.text+0x184 + .balign 4 .global sdk_trc_onScanDone .type sdk_trc_onScanDone, @function sdk_trc_onScanDone: @@ -1136,6 +1159,7 @@ sdk_trc_onScanDone: # (local6): word @ -0x18 # (local7): word @ -0x14 # (local8): word[4] @ -0x10 + .balign 4 .global sdk_rc_enable_trc .type sdk_rc_enable_trc, @function sdk_rc_enable_trc: @@ -1220,6 +1244,7 @@ sdk_rc_enable_trc: .literal_position # 288: 00000000 # Function @ .irom0.text+0x28c + .balign 4 .global sdk_rc_get_mask .type sdk_rc_get_mask, @function sdk_rc_get_mask: @@ -1241,6 +1266,7 @@ sdk_rc_get_mask: # (local1): word @ -0xc # (local2): word @ -0x8 # (local3): word @ -0x4 + .balign 4 .global sdk_rc_disable_trc .type sdk_rc_disable_trc, @function sdk_rc_disable_trc: @@ -1293,6 +1319,7 @@ sdk_rc_disable_trc: .literal_position # 328: 00000000 # Function @ .irom0.text+0x32c + .balign 4 .global sdk_rc_disable_trc_by_interface .type sdk_rc_disable_trc_by_interface, @function sdk_rc_disable_trc_by_interface: @@ -1315,6 +1342,7 @@ sdk_rc_disable_trc_by_interface: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_rc_get_sta_trc .type sdk_rc_get_sta_trc, @function sdk_rc_get_sta_trc: @@ -1354,6 +1382,7 @@ sdk_rc_get_sta_trc: # (local2): word @ -0x18 # (local3): word @ -0x14 # (local4): word[4] @ -0x10 + .balign 4 .global sdk_rc_get_trc .type sdk_rc_get_trc, @function sdk_rc_get_trc: @@ -1405,6 +1434,7 @@ sdk_rc_get_trc: .literal_position # 410: 00000000 # Function @ .irom0.text+0x414 + .balign 4 .global sdk_rc_get_trc_by_index .type sdk_rc_get_trc_by_index, @function sdk_rc_get_trc_by_index: @@ -1428,6 +1458,7 @@ sdk_rc_get_trc_by_index: # Function @ .irom0.text+0x440 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_rc_only_sta_trc .type sdk_rc_only_sta_trc, @function sdk_rc_only_sta_trc: diff --git a/binary_sdk/libpp/wdev.S b/binary_sdk/libpp/wdev.S index 9aef876..60d4248 100644 --- a/binary_sdk/libpp/wdev.S +++ b/binary_sdk/libpp/wdev.S @@ -7,6 +7,7 @@ # c: 000af23f # Function @ .text+0x10 + .balign 4 .Lfunc001: movi a5, .Lrel143 # 10: 51fcff l32i a5, a5, 0 /* [.Lrel143] */ # 13: 5805 l16ui a4, a5, 0 /* [[.Lrel143]] */ # 15: 421500 @@ -76,6 +77,7 @@ # (local3): word @ -0x14 # (local4): word @ -0x10 # (local5): word[3] @ -0xc + .balign 4 .Lfunc002: mov a8, a2 /* arg0 */ # b0: 8d02 addi sp, sp, -32 /* (local0) */ # b2: 12c1e0 s32i a12, sp, 12 /* a12 -> [(local3)] */ # b5: c931 @@ -136,6 +138,7 @@ # (local1): word @ -0xc # (local2): word @ -0x8 # (local3): word @ -0x4 + .balign 4 .Lfunc003: addi sp, sp, -16 /* (local0) */ # 12c: 12c1f0 s32i a0, sp, 4 /* a0 -> [(local1)] */ # 12f: 0911 s32i a12, sp, 8 /* a12 -> [(local2)] */ # 131: c921 @@ -164,6 +167,7 @@ # Function @ .text+0x164 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .Lfunc004: mov a6, a2 /* arg0 */ # 164: 6d02 movi a7, sdk_wDevCtrl # 166: 71fdff mov a4, a3 /* arg1 */ # 169: 4d03 @@ -208,6 +212,7 @@ # (local4): word @ -0x10 # (local5): word @ -0xc # (local6): word[2] @ -0x8 + .balign 4 .Lfunc005: addi sp, sp, -32 /* (local0) */ # 1c8: 12c1e0 s32i a4, sp, 4 /* arg2 -> [(local1)] */ # 1cb: 4911 s32i a14, sp, 20 /* a14 -> [(local5)] */ # 1cd: e951 @@ -392,6 +397,7 @@ # 3a8: 00000000 # Function @ .text+0x3ac + .balign 4 .global sdk_wDev_MacTimSetFunc .type sdk_wDev_MacTimSetFunc, @function sdk_wDev_MacTimSetFunc: @@ -419,6 +425,7 @@ sdk_wDev_MacTimSetFunc: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .global sdk_wDev_MacTimArm .type sdk_wDev_MacTimArm, @function sdk_wDev_MacTimArm: @@ -497,6 +504,7 @@ sdk_wDev_MacTimArm: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .global sdk_wDev_MacTim1Arm .type sdk_wDev_MacTim1Arm, @function sdk_wDev_MacTim1Arm: @@ -567,6 +575,7 @@ sdk_wDev_MacTim1Arm: # Function @ .text+0x554 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .Lfunc006: addi sp, sp, -16 /* (local0) */ # 554: 12c1f0 s32i a0, sp, 0 /* a0 -> [(local0)] */ # 557: 0901 movi a0, .Ldata002 # 559: 01fdff @@ -665,6 +674,7 @@ sdk_wDev_MacTim1Arm: # (local6): word @ -0x18 # (local7): word @ -0x14 # (local8): word[4] @ -0x10 + .balign 4 .global sdk_wDev_ProcessFiq .type sdk_wDev_ProcessFiq, @function sdk_wDev_ProcessFiq: @@ -1012,6 +1022,7 @@ sdk_wDev_ProcessFiq: # a50: 40000000 # Function @ .text+0xa54 + .balign 4 .global sdk_wDev_EnableTransmit .type sdk_wDev_EnableTransmit, @function sdk_wDev_EnableTransmit: @@ -1043,6 +1054,7 @@ sdk_wDev_EnableTransmit: # a98: ffffff3f # Function @ .text+0xa9c + .balign 4 .global sdk_wDev_DisableTransmit .type sdk_wDev_DisableTransmit, @function sdk_wDev_DisableTransmit: @@ -1062,6 +1074,7 @@ sdk_wDev_DisableTransmit: # ac0: ffffff3f # Function @ .text+0xac4 + .balign 4 .global sdk_Tx_Copy2Queue .type sdk_Tx_Copy2Queue, @function sdk_Tx_Copy2Queue: @@ -1096,6 +1109,7 @@ sdk_Tx_Copy2Queue: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_wDev_ProcessCollision .type sdk_wDev_ProcessCollision, @function sdk_wDev_ProcessCollision: @@ -1117,6 +1131,7 @@ sdk_wDev_ProcessCollision: .literal_position # b34: 000af23f # Function @ .text+0xb38 + .balign 4 .global sdk_wDev_GetTxqCollisions .type sdk_wDev_GetTxqCollisions, @function sdk_wDev_GetTxqCollisions: @@ -1130,6 +1145,7 @@ sdk_wDev_GetTxqCollisions: # b4c: 000af23f # Function @ .text+0xb50 + .balign 4 .global sdk_wDev_ClearTxqCollisions .type sdk_wDev_ClearTxqCollisions, @function sdk_wDev_ClearTxqCollisions: @@ -1147,6 +1163,7 @@ sdk_wDev_ClearTxqCollisions: # b70: 00000040 # Function @ .text+0xb74 + .balign 4 .global sdk_wDev_SetWaitingQueue .type sdk_wDev_SetWaitingQueue, @function sdk_wDev_SetWaitingQueue: @@ -1180,6 +1197,7 @@ sdk_wDev_SetWaitingQueue: # bc0: ffffffbf # Function @ .text+0xbc4 + .balign 4 .global sdk_wDev_ClearWaitingQueue .type sdk_wDev_ClearWaitingQueue, @function sdk_wDev_ClearWaitingQueue: @@ -1198,6 +1216,7 @@ sdk_wDev_ClearWaitingQueue: .literal_position # be4: 0000f23f # Function @ .text+0xbe8 + .balign 4 .global sdk_wDev_SetFrameAckType .type sdk_wDev_SetFrameAckType, @function sdk_wDev_SetFrameAckType: @@ -1257,6 +1276,7 @@ sdk_wDev_SetFrameAckType: # (local1): word @ -0xc # (local2): word @ -0x8 # (local3): word @ -0x4 + .balign 4 .global sdk_wDev_AppendRxBlocks .type sdk_wDev_AppendRxBlocks, @function sdk_wDev_AppendRxBlocks: @@ -1434,6 +1454,7 @@ sdk_wDev_AppendRxBlocks: # (local1): word @ -0xc # (local2): word @ -0x8 # (local3): word @ -0x4 + .balign 4 .global sdk_wDev_AppendRxAmpduLensBlocks .type sdk_wDev_AppendRxAmpduLensBlocks, @function sdk_wDev_AppendRxAmpduLensBlocks: @@ -1554,6 +1575,7 @@ sdk_wDev_AppendRxAmpduLensBlocks: .literal_position # f94: 00fef13f # Function @ .text+0xf98 + .balign 4 .global sdk_wDev_GetBAInfo .type sdk_wDev_GetBAInfo, @function sdk_wDev_GetBAInfo: @@ -1577,6 +1599,7 @@ sdk_wDev_GetBAInfo: .literal_position # fc8: efbeadde # Function @ .text+0xfcc + .balign 4 .Lfunc007: l32i a6, a2, 4 /* [arg0+0x4] */ # fcc: 6812 movi a3, 0xdeadbeef # fce: 31feff s32i a3, a6, 0 /* 0xdeadbeef -> [[arg0+0x4]] */ # fd1: 3906 @@ -1604,6 +1627,7 @@ sdk_wDev_GetBAInfo: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .Lfunc008: addi sp, sp, -16 /* (local0) */ # 1010: 12c1f0 s32i a12, sp, 4 /* a12 -> [(local1)] */ # 1013: c911 s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1015: 0901 @@ -1700,6 +1724,7 @@ sdk_wDev_GetBAInfo: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .Lfunc009: movi a3, 29 /* 0x0000001d */ # 1114: 1cd3 addi sp, sp, -16 /* (local0) */ # 1116: 12c1f0 s32i a13, sp, 8 /* a13 -> [(local2)] */ # 1119: d921 @@ -1840,6 +1865,7 @@ sdk_wDev_GetBAInfo: # (local7): word @ -0x14 # (local8): word @ -0x10 # (local9): word[3] @ -0xc + .balign 4 .Lfunc010: addi sp, sp, -48 /* (local0) */ # 1288: 12c1d0 s32i a13, sp, 24 /* a13 -> [(local6)] */ # 128b: d961 s32i a0, sp, 16 /* a0 -> [(local4)] */ # 128d: 0941 @@ -2117,6 +2143,7 @@ sdk_WdevTimOffSet: # 1c: 00000040 # Function @ .irom0.text+0x20 + .balign 4 .global sdk_wDev_Option_Init .type sdk_wDev_Option_Init, @function sdk_wDev_Option_Init: @@ -2194,6 +2221,7 @@ sdk_wDev_Option_Init: # f0: 000ef23f # Function @ .irom0.text+0xf4 + .balign 4 .global sdk_wDev_Enable_Beacon_Tsf .type sdk_wDev_Enable_Beacon_Tsf, @function sdk_wDev_Enable_Beacon_Tsf: @@ -2210,6 +2238,7 @@ sdk_wDev_Enable_Beacon_Tsf: # 110: 000ef23f # Function @ .irom0.text+0x114 + .balign 4 .global sdk_wDev_Disable_Beacon_Tsf .type sdk_wDev_Disable_Beacon_Tsf, @function sdk_wDev_Disable_Beacon_Tsf: @@ -2225,6 +2254,7 @@ sdk_wDev_Disable_Beacon_Tsf: .literal_position # 12c: 00000000 # Function @ .irom0.text+0x130 + .balign 4 .global sdk_wDev_Set_Beacon_Int .type sdk_wDev_Set_Beacon_Int, @function sdk_wDev_Set_Beacon_Int: @@ -2239,6 +2269,7 @@ sdk_wDev_Set_Beacon_Int: # Function @ .irom0.text+0x144 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_wDev_Reset_TBTT .type sdk_wDev_Reset_TBTT, @function sdk_wDev_Reset_TBTT: @@ -2268,6 +2299,7 @@ sdk_wDev_Reset_TBTT: # Function @ .irom0.text+0x184 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_wDev_Get_Next_TBTT .type sdk_wDev_Get_Next_TBTT, @function sdk_wDev_Get_Next_TBTT: @@ -2318,6 +2350,7 @@ sdk_wDev_Get_Next_TBTT: # (local4): word @ -0x18 # (local5): word @ -0x14 # (local6): word[4] @ -0x10 + .balign 4 .Lfunc011: movi a3, 60 /* 0x0000003c */ # 1fc: 3cc3 movi a5, 0x00001f54 # 1fe: 51eeff movi a6, 1604 /* 0x00000644 */ # 201: 62a644 @@ -2486,6 +2519,7 @@ sdk_wDev_Get_Next_TBTT: # 3c0: 0002f23f # Function @ .irom0.text+0x3c4 + .balign 4 .Lfunc012: movi a4, 0x76503210 # 3c4: 41fdff movi a2, 0xbbbbbbbb # 3c7: 21fdff movi a3, 0x3ff20200 # 3ca: 31fdff @@ -2503,6 +2537,7 @@ sdk_wDev_Get_Next_TBTT: # Function @ .irom0.text+0x3ec # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .Lfunc013: addi sp, sp, -16 /* (local0) */ # 3ec: 12c1f0 s32i a0, sp, 0 /* a0 -> [(local0)] */ # 3ef: 0901 movi a7, 1799 /* 0x00000707 */ # 3f1: 72a707 @@ -2541,6 +2576,7 @@ sdk_wDev_Get_Next_TBTT: # 44c: 00000000 # Function @ .irom0.text+0x450 + .balign 4 .global sdk_wDev_MacTim1SetFunc .type sdk_wDev_MacTim1SetFunc, @function sdk_wDev_MacTim1SetFunc: @@ -2564,6 +2600,7 @@ sdk_wDev_MacTim1SetFunc: # Function @ .irom0.text+0x480 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_wDev_Initialize .type sdk_wDev_Initialize, @function sdk_wDev_Initialize: @@ -2607,6 +2644,7 @@ sdk_wDev_Initialize: # 4e8: 070c0700 # Function @ .irom0.text+0x4ec + .balign 4 .global sdk_wDevForceAck6M .type sdk_wDevForceAck6M, @function sdk_wDevForceAck6M: @@ -2626,6 +2664,7 @@ sdk_wDevForceAck6M: # 510: 000af23f # Function @ .irom0.text+0x514 + .balign 4 .global sdk_wDev_SetMacAddress .type sdk_wDev_SetMacAddress, @function sdk_wDev_SetMacAddress: @@ -2688,6 +2727,7 @@ sdk_wDev_SetMacAddress: # Function @ .irom0.text+0x5b8 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_wDev_SetRxPolicy .type sdk_wDev_SetRxPolicy, @function sdk_wDev_SetRxPolicy: @@ -2729,6 +2769,7 @@ sdk_wDev_SetRxPolicy: # 618: fffffeff # Function @ .irom0.text+0x61c + .balign 4 .global sdk_wDev_SetBssid .type sdk_wDev_SetBssid, @function sdk_wDev_SetBssid: @@ -2809,6 +2850,7 @@ sdk_wDev_SetBssid: # 6f8: fffffeff # Function @ .irom0.text+0x6fc + .balign 4 .global sdk_wDev_ClearBssid .type sdk_wDev_ClearBssid, @function sdk_wDev_ClearBssid: @@ -2839,6 +2881,7 @@ sdk_wDev_ClearBssid: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .global sdk_wDev_Insert_KeyEntry .type sdk_wDev_Insert_KeyEntry, @function sdk_wDev_Insert_KeyEntry: @@ -2927,6 +2970,7 @@ sdk_wDev_Insert_KeyEntry: # 814: ffff1fff # Function @ .irom0.text+0x818 + .balign 4 .global sdk_wDev_remove_KeyEntry .type sdk_wDev_remove_KeyEntry, @function sdk_wDev_remove_KeyEntry: @@ -2957,6 +3001,7 @@ sdk_wDev_remove_KeyEntry: # 85c: 00000010 # Function @ .irom0.text+0x860 + .balign 4 .global sdk_wDev_Crypto_Conf .type sdk_wDev_Crypto_Conf, @function sdk_wDev_Crypto_Conf: @@ -2995,6 +3040,7 @@ sdk_wDev_Crypto_Conf: # Local variables/stack: # (local0): word[4] @ -0x20 # (local1): word[4] @ -0x10 + .balign 4 .Lfunc014: addi sp, sp, -32 /* (local0) */ # 8bc: 12c1e0 s32i a0, sp, 16 /* a0 -> [(local1)] */ # 8bf: 0941 movi a2, 0x00030000 # 8c1: 21f9ff @@ -3034,6 +3080,7 @@ sdk_wDev_Crypto_Conf: # 918: 00000300 # Function @ .irom0.text+0x91c + .balign 4 .global sdk_wDev_Crypto_Disable .type sdk_wDev_Crypto_Disable, @function sdk_wDev_Crypto_Disable: @@ -3062,6 +3109,7 @@ sdk_wDev_Crypto_Disable: # 958: 00fef13f # Function @ .irom0.text+0x95c + .balign 4 .global sdk_wDevDisableRx .type sdk_wDevDisableRx, @function sdk_wDevDisableRx: @@ -3078,6 +3126,7 @@ sdk_wDevDisableRx: # 978: 00fef13f # Function @ .irom0.text+0x97c + .balign 4 .global sdk_wDevEnableRx .type sdk_wDevEnableRx, @function sdk_wDevEnableRx: @@ -3106,6 +3155,7 @@ sdk_wDevEnableRx: # Function @ .irom0.text+0x9c4 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_wdev_go_sniffer .type sdk_wdev_go_sniffer, @function sdk_wdev_go_sniffer: @@ -3194,6 +3244,7 @@ sdk_wdev_go_sniffer: # ab8: fffffbff # Function @ .irom0.text+0xabc + .balign 4 .global sdk_wdev_exit_sniffer .type sdk_wdev_exit_sniffer, @function sdk_wdev_exit_sniffer: diff --git a/binary_sdk/libpp_stage1/esf_buf.S b/binary_sdk/libpp_stage1/esf_buf.S new file mode 100644 index 0000000..e650f00 --- /dev/null +++ b/binary_sdk/libpp_stage1/esf_buf.S @@ -0,0 +1,755 @@ + + .section .text, "ax", @progbits + + .literal_position # 0: 00000000 + # 4: 00000000 + # 8: 00feef3f + # c: 00000000 + # 10: 00000000 + # 14: 00feef3f + # 18: 00000000 + # 1c: 00000000 + # 20: 00000000 + +# Function @ .text+0x24 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global esf_rx_buf_alloc + .type esf_rx_buf_alloc, @function +esf_rx_buf_alloc: + addi sp, sp, -16 /* (local0) */ # 24: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 27: 0901 + bnei a2, 7, .Lbr001 # 29: 667211 + movi a5, .Ldata001 # 2c: 51f5ff + movi a0, NMIIrqIsOn # 2f: 01f5ff + l32i a2, a5, 16 /* [.Ldata005] */ # 32: 2845 + l8ui a3, a0, 0 /* [NMIIrqIsOn] */ # 34: 320000 + bnez a2, .Lbr004 # 37: cce2 + movi a2, 0 /* 0x00000000 */ # 39: 0c02 + j .Lbr003 # 3b: c60000 +.Lbr001: movi a0, 0 /* 0x00000000 */ # 3e: 0c00 +.Lbr002: mov a2, a0 # 40: 2d00 +.Lbr003: l32i a0, sp, 0 /* [(local0)] */ # 42: 0801 + addi sp, sp, 16 /* (top of frame) */ # 44: 12c110 + ret # 47: 0df0 +.Lbr004: bnez a3, .Lbr006 # 49: ec93 + call0 vPortEnterCritical # 4b: 01f4ffc0 + # 4f: 0000 + movi a4, 0x3feffe00 # 51: 41edff + movi a5, .Ldata001 # 54: 51eeff + movi a6, -32 /* 0xffffffe0 */ # 57: 6c06 +.Lbr005: memw # 59: c02000 + l32i a8, a4, 0x200 /* [0x3ff00000] */ # 5c: 822480 + and a8, a8, a6 # 5f: 608810 + memw # 62: c02000 + s32i a8, a4, 0x200 /* a8 -> [0x3ff00000] */ # 65: 826480 + memw # 68: c02000 + l32i a7, a4, 0x200 /* [0x3ff00000] */ # 6b: 722480 + bbsi a7, 0, .Lbr005 # 6e: 07e7e7 + movi a0, NMIIrqIsOn # 71: 01e7ff + l32i a2, a5, 16 /* [.Ldata005] */ # 74: 2845 +.Lbr006: s32i a2, sp, 4 /* [.Ldata005] -> [(local1)] */ # 76: 2911 + movi a10, 0 /* 0x00000000 */ # 78: 0c0a + l32i a11, a2, 28 /* [[.Ldata005]+0x1c] */ # 7a: b872 + s32i a11, a5, 16 /* [[.Ldata005]+0x1c] -> [.Ldata005] */ # 7c: b945 + s32i a10, a2, 28 /* 0x00000000 -> [[.Ldata005]+0x1c] */ # 7e: a972 + l8ui a9, a0, 0 /* [NMIIrqIsOn] */ # 80: 920000 + mov a0, a2 /* [.Ldata005] */ # 83: 0d02 + bnez a9, .Lbr007 # 85: ec29 + memw # 87: c02000 + movi a2, 0x3feffe00 # 8a: 21e2ff + l32i a0, a2, 0x200 /* [0x3ff00000] */ # 8d: 022280 + movi a3, -32 /* 0xffffffe0 */ # 90: 6c03 + and a0, a0, a3 # 92: 300010 + movi a3, 1 /* 0x00000001 */ # 95: 0c13 + or a0, a0, a3 # 97: 300020 + memw # 9a: c02000 + s32i a0, a2, 0x200 /* a0 -> [0x3ff00000] */ # 9d: 026280 + call0 vPortExitCritical # a0: 01e0ffc0 + # a4: 0000 + movi a5, .Ldata001 # a6: 51dcff + l32i a0, sp, 4 /* [(local1)] */ # a9: 0811 +.Lbr007: l32i a4, a5, 20 /* [.Ldata006] */ # ab: 4855 + addi a4, a4, -1 /* [.Ldata006]-0x1 */ # ad: 0b44 + s32i a4, a5, 20 /* [.Ldata006]-0x1 -> [.Ldata006] */ # af: 4955 + j .Lbr002 # b1: c6e2ff + + .section .bss, "aw", @nobits + +.Ldata001: .word 0x00000000 # 0: 00000000 +.Ldata002: .word 0x00000000 # 4: 00000000 +.Ldata003: .word 0x00000000 # 8: 00000000 +.Ldata004: .word 0x00000000 # c: 00000000 +.Ldata005: .word 0x00000000 # 10: 00000000 +.Ldata006: .word 0x00000000 # 14: 00000000 + .space 8 +.Ldata007: .space 1116 + .word 0x00000000 # 47c: 00000000 +.Ldata008: .space 2144 +.Ldata009: .space 608 +.Ldata010: .space 600 + .space 8 +.Label001: .space 72 + + .section .irom0.text, "ax", @progbits + + .literal_position # 0: 00000000 + # 4: 00000000 + # 8: 00feef3f + # c: 00000000 + # 10: 00000000 + # 14: 00feef3f + # 18: 00400000 + # 1c: 00feef3f + # 20: 00000000 + # 24: 00000000 + # 28: 00feef3f + # 2c: 00800000 + # 30: 00feef3f + # 34: 00000000 + # 38: 00000000 + # 3c: 00feef3f + # 40: 00002000 + # 44: 00feef3f + # 48: 00000000 + # 4c: 00000000 + # 50: 00feef3f + # 54: 00200000 + # 58: 00000000 + # 5c: 00000000 + # 60: 00000000 + # 64: 00000000 + # 68: 00000000 + # 6c: 00000000 + # 70: 00000000 + # 74: 00000000 + # 78: 00000000 + +# Function @ .irom0.text+0x7c +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word @ -0x10 +# (local5): word[3] @ -0xc + .balign 4 + .global esf_buf_alloc + .type esf_buf_alloc, @function +esf_buf_alloc: + movi a10, 0 /* 0x00000000 */ # 7c: 0c0a + movi a7, NMIIrqIsOn # 7e: 71e0ff + movi a6, .Ldata001 # 81: 61e0ff + addi sp, sp, -32 /* (local0) */ # 84: 12c1e0 + s32i a12, sp, 8 /* a12 -> [(local2)] */ # 87: c921 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 89: 0911 + bnei a3, 1, .Lbr008 # 8b: 66130e + beqz a2, .Lbr008 # 8e: 8cb2 + l32i a12, a6, 0 /* [.Ldata001] */ # 90: c806 + l8ui a9, a7, 0 /* [NMIIrqIsOn] */ # 92: 920700 + bnez a12, .Lbr022 # 95: 56fc17 + mov a12, a10 /* 0x00000000 */ # 98: cd0a + j .Lbr021 # 9a: c65b00 +.Lbr008: bnei a3, 4, .Lbr012 # 9d: 664376 + l32i a12, a6, 4 /* [.Ldata002] */ # a0: c816 + l8ui a2, a7, 0 /* [NMIIrqIsOn] */ # a2: 220700 + beqz a12, .Lbr027 # a5: 160c20 + bnez a2, .Lbr010 # a8: ecb2 + call0 vPortEnterCritical # aa: 01ebffc0 + # ae: 0000 + movi a0, 0x3feffe00 # b0: 01d6ff + movi a6, .Ldata001 # b3: 61d6ff + movi a7, NMIIrqIsOn # b6: 71d6ff + movi a8, -32 /* 0xffffffe0 */ # b9: 6c08 + movi a10, 0 /* 0x00000000 */ # bb: 0c0a +.Lbr009: memw # bd: c02000 + l32i a4, a0, 0x200 /* [0x3ff00000] */ # c0: 422080 + and a4, a4, a8 # c3: 804410 + memw # c6: c02000 + s32i a4, a0, 0x200 /* a4 -> [0x3ff00000] */ # c9: 426080 + memw # cc: c02000 + l32i a3, a0, 0x200 /* [0x3ff00000] */ # cf: 322080 + bbsi a3, 0, .Lbr009 # d2: 07e3e7 + l32i a12, a6, 4 /* [.Ldata002] */ # d5: c816 +.Lbr010: s32i a12, sp, 20 /* [.Ldata002] -> [(local5)] */ # d7: c951 + mov a2, a12 /* [.Ldata002] */ # d9: 2d0c + l32i a9, a12, 28 /* [[.Ldata002]+0x1c] */ # db: 987c + s32i a10, a12, 28 /* 0x00000000 -> [[.Ldata002]+0x1c] */ # dd: a97c + l8ui a5, a7, 0 /* [NMIIrqIsOn] */ # df: 520700 + s32i a9, a6, 4 /* [[.Ldata002]+0x1c] -> [.Ldata002] */ # e2: 9916 + bnez a5, .Lbr011 # e4: dcf5 + memw # e6: c02000 + movi a11, 0x3feffe00 # e9: b1caff + l32i a10, a11, 0x200 /* [0x3ff00000] */ # ec: a22b80 + movi a0, -32 /* 0xffffffe0 */ # ef: 6c00 + and a10, a10, a0 # f1: 00aa10 + movi a0, 1 /* 0x00000001 */ # f4: 0c10 + or a10, a10, a0 # f6: 00aa20 + memw # f9: c02000 + s32i a10, a11, 0x200 /* a10 -> [0x3ff00000] */ # fc: a26b80 + call0 vPortExitCritical # ff: 01d7ffc0 + # 103: 0000 + l32i a2, sp, 20 /* [(local5)] */ # 105: 2851 +.Lbr011: l32i a4, a2, 4 # 107: 4812 + l32i a3, a2, 16 # 109: 3842 + s32i a3, a4, 4 # 10b: 3914 + l32i a2, a2, 32 # 10d: 2882 + movi a3, 0x00004000 # 10f: 31c2ff + l32i a0, a2, 0 # 112: 0802 + j .Lbr026 # 114: 465f00 +.Lbr012: bnei a3, 5, .Lbr016 # 117: 66537c + l32i a12, a6, 8 /* [.Ldata003] */ # 11a: c826 + l8ui a5, a7, 0 /* [NMIIrqIsOn] */ # 11c: 520700 + beqz a12, .Lbr027 # 11f: 166c18 + bnez a5, .Lbr014 # 122: ecb5 + call0 vPortEnterCritical # 124: 01cfffc0 + # 128: 0000 + movi a0, 0x3feffe00 # 12a: 01bcff + movi a6, .Ldata001 # 12d: 61bcff + movi a7, NMIIrqIsOn # 130: 71bdff + movi a8, -32 /* 0xffffffe0 */ # 133: 6c08 + movi a10, 0 /* 0x00000000 */ # 135: 0c0a +.Lbr013: memw # 137: c02000 + l32i a11, a0, 0x200 /* [0x3ff00000] */ # 13a: b22080 + and a11, a11, a8 # 13d: 80bb10 + memw # 140: c02000 + s32i a11, a0, 0x200 /* a11 -> [0x3ff00000] */ # 143: b26080 + memw # 146: c02000 + l32i a9, a0, 0x200 /* [0x3ff00000] */ # 149: 922080 + bbsi a9, 0, .Lbr013 # 14c: 07e9e7 + l32i a12, a6, 8 /* [.Ldata003] */ # 14f: c826 +.Lbr014: l32i a3, a12, 28 /* [[.Ldata003]+0x1c] */ # 151: 387c + s32i a10, a12, 28 /* 0x00000000 -> [[.Ldata003]+0x1c] */ # 153: a97c + l8ui a2, a7, 0 /* [NMIIrqIsOn] */ # 155: 220700 + s32i a3, a6, 8 /* [[.Ldata003]+0x1c] -> [.Ldata003] */ # 158: 3926 + bnez a2, .Lbr015 # 15a: dcd2 + memw # 15c: c02000 + movi a5, 0x3feffe00 # 15f: 51b2ff + l32i a4, a5, 0x200 /* [0x3ff00000] */ # 162: 422580 + movi a6, -32 /* 0xffffffe0 */ # 165: 6c06 + and a4, a4, a6 # 167: 604410 + movi a6, 1 /* 0x00000001 */ # 16a: 0c16 + or a4, a4, a6 # 16c: 604420 + memw # 16f: c02000 + s32i a4, a5, 0x200 /* a4 -> [0x3ff00000] */ # 172: 426580 + call0 vPortExitCritical # 175: 01bbffc0 + # 179: 0000 +.Lbr015: l32i a2, a12, 32 /* [[.Ldata003]+0x20] */ # 17b: 288c + movi a3, 0 /* 0x00000000 */ # 17d: 0c03 + movi a4, 24 /* 0x00000018 */ # 17f: 1c84 + call0 memset # 181: 01b9ffc0 + # 185: 0000 + l32i a8, a12, 4 /* [[.Ldata003]+0x4] */ # 187: 881c + l32i a7, a12, 16 /* [[.Ldata003]+0x10] */ # 189: 784c + s32i a7, a8, 4 /* [[.Ldata003]+0x10] -> [[[.Ldata003]+0x4]+0x4] */ # 18b: 7918 + l32i a2, a12, 32 /* [[.Ldata003]+0x20] */ # 18d: 288c + movi a3, 0x00008000 # 18f: 31a7ff + l32i a0, a2, 0 /* [[[.Ldata003]+0x20]] */ # 192: 0802 + j .Lbr026 # 194: 463f00 +.Lbr016: bnei a3, 6, .Lbr020 # 197: 666370 + l32i a12, a6, 12 /* [.Ldata004] */ # 19a: c836 + l8ui a9, a7, 0 /* [NMIIrqIsOn] */ # 19c: 920700 + beqz a12, .Lbr027 # 19f: 166c10 + bnez a9, .Lbr018 # 1a2: ecb9 + call0 vPortEnterCritical # 1a4: 01b2ffc0 + # 1a8: 0000 + movi a0, 0x3feffe00 # 1aa: 01a1ff + movi a6, .Ldata001 # 1ad: 61a1ff + movi a7, NMIIrqIsOn # 1b0: 71a2ff + movi a8, -32 /* 0xffffffe0 */ # 1b3: 6c08 + movi a10, 0 /* 0x00000000 */ # 1b5: 0c0a +.Lbr017: memw # 1b7: c02000 + l32i a12, a0, 0x200 /* [0x3ff00000] */ # 1ba: c22080 + and a12, a12, a8 # 1bd: 80cc10 + memw # 1c0: c02000 + s32i a12, a0, 0x200 /* a12 -> [0x3ff00000] */ # 1c3: c26080 + memw # 1c6: c02000 + l32i a11, a0, 0x200 /* [0x3ff00000] */ # 1c9: b22080 + bbsi a11, 0, .Lbr017 # 1cc: 07ebe7 + l32i a12, a6, 12 /* [.Ldata004] */ # 1cf: c836 +.Lbr018: s32i a12, sp, 16 /* [.Ldata004] -> [(local4)] */ # 1d1: c941 + mov a2, a12 /* [.Ldata004] */ # 1d3: 2d0c + l32i a4, a12, 28 /* [[.Ldata004]+0x1c] */ # 1d5: 487c + s32i a10, a12, 28 /* 0x00000000 -> [[.Ldata004]+0x1c] */ # 1d7: a97c + l8ui a3, a7, 0 /* [NMIIrqIsOn] */ # 1d9: 320700 + s32i a4, a6, 12 /* [[.Ldata004]+0x1c] -> [.Ldata004] */ # 1dc: 4936 + bnez a3, .Lbr019 # 1de: dcf3 + memw # 1e0: c02000 + movi a6, 0x3feffe00 # 1e3: 6196ff + l32i a5, a6, 0x200 /* [0x3ff00000] */ # 1e6: 522680 + movi a7, -32 /* 0xffffffe0 */ # 1e9: 6c07 + and a5, a5, a7 # 1eb: 705510 + movi a7, 1 /* 0x00000001 */ # 1ee: 0c17 + or a5, a5, a7 # 1f0: 705520 + memw # 1f3: c02000 + s32i a5, a6, 0x200 /* a5 -> [0x3ff00000] */ # 1f6: 526680 + call0 vPortExitCritical # 1f9: 019dffc0 + # 1fd: 0000 + l32i a2, sp, 16 /* [(local4)] */ # 1ff: 2841 +.Lbr019: l32i a2, a2, 32 # 201: 2882 + movi a3, 0x00200000 # 203: 318fff + l32i a0, a2, 0 # 206: 0802 + j .Lbr026 # 208: 462200 +.Lbr020: movi a12, 0 /* 0x00000000 */ # 20b: 0c0c +.Lbr021: mov a2, a12 # 20d: 2d0c + l32i a0, sp, 4 /* [(local1)] */ # 20f: 0811 + l32i a12, sp, 8 /* [(local2)] */ # 211: c821 + addi sp, sp, 32 /* (top of frame) */ # 213: 12c120 + ret # 216: 0df0 +.Lbr022: s32i a2, sp, 0 /* arg0 -> [(local0)] */ # 218: 2901 + bnez a9, .Lbr024 # 21a: ecb9 + call0 vPortEnterCritical # 21c: 0196ffc0 + # 220: 0000 + movi a0, 0x3feffe00 # 222: 0188ff + movi a8, -32 /* 0xffffffe0 */ # 225: 6c08 + movi a10, 0 /* 0x00000000 */ # 227: 0c0a +.Lbr023: memw # 229: c02000 + l32i a12, a0, 0x200 /* [0x3ff00000] */ # 22c: c22080 + and a12, a12, a8 # 22f: 80cc10 + memw # 232: c02000 + s32i a12, a0, 0x200 /* a12 -> [0x3ff00000] */ # 235: c26080 + memw # 238: c02000 + l32i a11, a0, 0x200 /* [0x3ff00000] */ # 23b: b22080 + bbsi a11, 0, .Lbr023 # 23e: 07ebe7 + movi a6, .Ldata001 # 241: 6182ff + movi a7, NMIIrqIsOn # 244: 7181ff + l32i a12, a6, 0 /* [.Ldata001] */ # 247: c806 +.Lbr024: s32i a12, sp, 12 /* [.Ldata001] -> [(local3)] */ # 249: c931 + l32i a3, a12, 28 /* [[.Ldata001]+0x1c] */ # 24b: 387c + s32i a3, a6, 0 /* [[.Ldata001]+0x1c] -> [.Ldata001] */ # 24d: 3906 + s32i a10, a12, 28 /* 0x00000000 -> [[.Ldata001]+0x1c] */ # 24f: a97c + l8ui a2, a7, 0 /* [NMIIrqIsOn] */ # 251: 220700 + mov a3, a12 /* [.Ldata001] */ # 254: 3d0c + bnez a2, .Lbr025 # 256: dcf2 + memw # 258: c02000 + movi a5, 0x3feffe00 # 25b: 517dff + l32i a4, a5, 0x200 /* [0x3ff00000] */ # 25e: 422580 + movi a6, -32 /* 0xffffffe0 */ # 261: 6c06 + and a4, a4, a6 # 263: 604410 + movi a6, 1 /* 0x00000001 */ # 266: 0c16 + or a4, a4, a6 # 268: 604420 + memw # 26b: c02000 + s32i a4, a5, 0x200 /* a4 -> [0x3ff00000] */ # 26e: 426580 + call0 vPortExitCritical # 271: 0181ffc0 + # 275: 0000 + l32i a3, sp, 12 /* [(local3)] */ # 277: 3831 +.Lbr025: l32i a7, sp, 0 /* [(local0)] */ # 279: 7801 + l32i a9, a3, 4 # 27b: 9813 + s32i a7, a3, 0 # 27d: 7903 + l16ui a8, a7, 10 /* [[(local0)]+0xa] */ # 27f: 821705 + l32i a7, a7, 4 /* [[(local0)]+0x4] */ # 282: 7817 + s32i a7, a9, 4 # 284: 7919 + s16i a8, a3, 22 # 286: 82530b + addi a7, a7, -36 /* [[(local0)]+0x4]-0x24 */ # 289: 72c7dc + l32i a2, a3, 32 # 28c: 2883 + s32i a7, a3, 16 # 28e: 7943 + l32i a0, a2, 0 # 290: 0802 + movi a3, 0x00002000 # 292: 3170ff +.Lbr026: extui a8, a0, 0, 6 # 295: 008054 + srli a9, a0, 6 # 298: 009641 + or a9, a9, a3 # 29b: 309920 + slli a9, a9, 6 # 29e: a09911 + or a8, a8, a9 # 2a1: 908820 + s32i a8, a2, 0 # 2a4: 8902 + j .Lbr021 # 2a6: c6d8ff +.Lbr027: movi a12, 0 /* 0x00000000 */ # 2a9: 0c0c + j .Lbr021 # 2ab: 86d7ff + + .literal_position # 2b0: 00000000 + # 2b4: 00feef3f + # 2b8: 00000000 + # 2bc: 00000000 + # 2c0: 00feef3f + # 2c4: 00000000 + # 2c8: 00feef3f + # 2cc: 00000000 + # 2d0: 00000000 + # 2d4: 00feef3f + # 2d8: 00000000 + # 2dc: 00feef3f + # 2e0: 00000000 + # 2e4: 00000000 + # 2e8: 00feef3f + # 2ec: 00000000 + # 2f0: 00feef3f + # 2f4: 00000000 + # 2f8: 00000000 + # 2fc: 00feef3f + # 300: 00feef3f + # 304: 00000000 + # 308: 00feef3f + # 30c: 00000000 + # 310: 00000000 + # 314: 00000000 + # 318: 00000000 + # 31c: 00000000 + # 320: 00000000 + # 324: 00000000 + # 328: 00000000 + # 32c: 00000000 + # 330: 00000000 + # 334: 00000000 + # 338: 00000000 + # 33c: 00000000 + # 340: 00000000 + # 344: 00000000 + # 348: 00000000 + # 34c: 00000000 + +# Function @ .irom0.text+0x350 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global esf_buf_recycle + .type esf_buf_recycle, @function +esf_buf_recycle: + addi a4, a3, -1 /* arg1-0x1 */ # 350: 0b43 + addi sp, sp, -16 /* (local0) */ # 352: 12c1f0 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 355: 0911 + s32i a2, sp, 0 /* arg0 -> [(local0)] */ # 357: 2901 + beqz a4, .Lbr039 # 359: 16841c + addi a9, a3, -2 /* arg1-0x2 */ # 35c: 92c3fe + beqz a9, .Lbr039 # 35f: 16291c + bnei a3, 4, .Lbr030 # 362: 66436c + l32i a2, a2, 32 /* [arg0+0x20] */ # 365: 2882 + movi a3, 0 /* 0x00000000 */ # 367: 0c03 + movi a4, 24 /* 0x00000018 */ # 369: 1c84 + call0 memset # 36b: 01eaffc0 + # 36f: 0000 + movi a5, NMIIrqIsOn # 371: 51cfff + l8ui a3, a5, 0 /* [NMIIrqIsOn] */ # 374: 320500 + bnez a3, .Lbr029 # 377: ec43 + call0 vPortEnterCritical # 379: 01e7ffc0 + # 37d: 0000 +.Lbr028: memw # 37f: c02000 + movi a3, 0x3feffe00 # 382: 31ccff + l32i a5, a3, 0x200 /* [0x3ff00000] */ # 385: 522380 + movi a0, -32 /* 0xffffffe0 */ # 388: 6c00 + and a5, a5, a0 # 38a: 005510 + memw # 38d: c02000 + s32i a5, a3, 0x200 /* a5 -> [0x3ff00000] */ # 390: 526380 + memw # 393: c02000 + l32i a4, a3, 0x200 /* [0x3ff00000] */ # 396: 422380 + bbsi a4, 0, .Lbr028 # 399: 07e4e2 + movi a5, NMIIrqIsOn # 39c: 51c7ff +.Lbr029: movi a8, .Ldata001 # 39f: 81c7ff + l32i a7, sp, 0 /* [(local0)] */ # 3a2: 7801 + l32i a9, a8, 4 /* [.Ldata002] */ # 3a4: 9818 + s32i a9, a7, 28 /* [.Ldata002] -> [[(local0)]+0x1c] */ # 3a6: 9977 + l8ui a6, a5, 0 /* [NMIIrqIsOn] */ # 3a8: 620500 + s32i a7, a8, 4 /* [(local0)] -> [.Ldata002] */ # 3ab: 7918 + bnez a6, .Lbr042 # 3ad: 56f61d + memw # 3b0: c02000 + movi a11, 0x3feffe00 # 3b3: b1c3ff + l32i a10, a11, 0x200 /* [0x3ff00000] */ # 3b6: a22b80 + movi a0, -32 /* 0xffffffe0 */ # 3b9: 6c00 + and a10, a10, a0 # 3bb: 00aa10 + movi a0, 1 /* 0x00000001 */ # 3be: 0c10 + or a10, a10, a0 # 3c0: 00aa20 + memw # 3c3: c02000 + s32i a10, a11, 0x200 /* a10 -> [0x3ff00000] */ # 3c6: a26b80 + call0 vPortExitCritical # 3c9: 01d4ffc0 + # 3cd: 0000 + j .Lbr042 # 3cf: 466f00 +.Lbr030: bnei a3, 5, .Lbr033 # 3d2: 66536c + l32i a2, a2, 32 /* [arg0+0x20] */ # 3d5: 2882 + movi a3, 0 /* 0x00000000 */ # 3d7: 0c03 + movi a4, 24 /* 0x00000018 */ # 3d9: 1c84 + call0 memset # 3db: 01d1ffc0 + # 3df: 0000 + movi a3, NMIIrqIsOn # 3e1: 31b8ff + l8ui a3, a3, 0 /* [NMIIrqIsOn] */ # 3e4: 320300 + bnez a3, .Lbr032 # 3e7: ec13 + call0 vPortEnterCritical # 3e9: 01ceffc0 + # 3ed: 0000 +.Lbr031: memw # 3ef: c02000 + movi a4, 0x3feffe00 # 3f2: 41b5ff + l32i a5, a4, 0x200 /* [0x3ff00000] */ # 3f5: 522480 + movi a6, -32 /* 0xffffffe0 */ # 3f8: 6c06 + and a5, a5, a6 # 3fa: 605510 + memw # 3fd: c02000 + s32i a5, a4, 0x200 /* a5 -> [0x3ff00000] */ # 400: 526480 + memw # 403: c02000 + l32i a4, a4, 0x200 /* [0x3ff00000] */ # 406: 422480 + bbsi a4, 0, .Lbr031 # 409: 07e4e2 +.Lbr032: movi a7, NMIIrqIsOn # 40c: 71b1ff + movi a9, .Ldata001 # 40f: 91afff + l32i a8, sp, 0 /* [(local0)] */ # 412: 8801 + l32i a10, a9, 8 /* [.Ldata003] */ # 414: a829 + s32i a10, a8, 28 /* [.Ldata003] -> [[(local0)]+0x1c] */ # 416: a978 + l8ui a7, a7, 0 /* [NMIIrqIsOn] */ # 418: 720700 + s32i a8, a9, 8 /* [(local0)] -> [.Ldata003] */ # 41b: 8929 + bnez a7, .Lbr042 # 41d: 56f716 + memw # 420: c02000 + movi a0, 0x3feffe00 # 423: 01acff + l32i a11, a0, 0x200 /* [0x3ff00000] */ # 426: b22080 + movi a2, -32 /* 0xffffffe0 */ # 429: 6c02 + and a11, a11, a2 # 42b: 20bb10 + movi a2, 1 /* 0x00000001 */ # 42e: 0c12 + or a11, a11, a2 # 430: 20bb20 + memw # 433: c02000 + s32i a11, a0, 0x200 /* a11 -> [0x3ff00000] */ # 436: b26080 + call0 vPortExitCritical # 439: 01bbffc0 + # 43d: 0000 + j .Lbr042 # 43f: 465300 +.Lbr033: bnei a3, 6, .Lbr036 # 442: 66636c + l32i a2, a2, 32 /* [arg0+0x20] */ # 445: 2882 + movi a3, 0 /* 0x00000000 */ # 447: 0c03 + movi a4, 24 /* 0x00000018 */ # 449: 1c84 + call0 memset # 44b: 01b8ffc0 + # 44f: 0000 + movi a3, NMIIrqIsOn # 451: 31a1ff + l8ui a3, a3, 0 /* [NMIIrqIsOn] */ # 454: 320300 + bnez a3, .Lbr035 # 457: ec13 + call0 vPortEnterCritical # 459: 01b5ffc0 + # 45d: 0000 +.Lbr034: memw # 45f: c02000 + movi a4, 0x3feffe00 # 462: 419eff + l32i a5, a4, 0x200 /* [0x3ff00000] */ # 465: 522480 + movi a6, -32 /* 0xffffffe0 */ # 468: 6c06 + and a5, a5, a6 # 46a: 605510 + memw # 46d: c02000 + s32i a5, a4, 0x200 /* a5 -> [0x3ff00000] */ # 470: 526480 + memw # 473: c02000 + l32i a4, a4, 0x200 /* [0x3ff00000] */ # 476: 422480 + bbsi a4, 0, .Lbr034 # 479: 07e4e2 +.Lbr035: movi a7, NMIIrqIsOn # 47c: 719aff + movi a9, .Ldata001 # 47f: 9198ff + l32i a8, sp, 0 /* [(local0)] */ # 482: 8801 + l32i a10, a9, 12 /* [.Ldata004] */ # 484: a839 + s32i a10, a8, 28 /* [.Ldata004] -> [[(local0)]+0x1c] */ # 486: a978 + l8ui a7, a7, 0 /* [NMIIrqIsOn] */ # 488: 720700 + s32i a8, a9, 12 /* [(local0)] -> [.Ldata004] */ # 48b: 8939 + bnez a7, .Lbr042 # 48d: 56f70f + memw # 490: c02000 + movi a0, 0x3feffe00 # 493: 0195ff + l32i a11, a0, 0x200 /* [0x3ff00000] */ # 496: b22080 + movi a2, -32 /* 0xffffffe0 */ # 499: 6c02 + and a11, a11, a2 # 49b: 20bb10 + movi a2, 1 /* 0x00000001 */ # 49e: 0c12 + or a11, a11, a2 # 4a0: 20bb20 + memw # 4a3: c02000 + s32i a11, a0, 0x200 /* a11 -> [0x3ff00000] */ # 4a6: b26080 + call0 vPortExitCritical # 4a9: 01a2ffc0 + # 4ad: 0000 + j .Lbr042 # 4af: 463700 +.Lbr036: addi a4, a3, -7 /* arg1-0x7 */ # 4b2: 42c3f9 + bnez a4, .Lbr042 # 4b5: 56740d + l32i a2, a2, 32 /* [arg0+0x20] */ # 4b8: 2882 + movi a3, 0 /* 0x00000000 */ # 4ba: 0c03 + movi a4, 12 /* 0x0000000c */ # 4bc: 0cc4 + call0 memset # 4be: 019effc0 + # 4c2: 0000 + movi a3, NMIIrqIsOn # 4c4: 318aff + l8ui a4, a3, 0 /* [NMIIrqIsOn] */ # 4c7: 420300 + bnez a4, .Lbr038 # 4ca: ec44 + call0 vPortEnterCritical # 4cc: 019cffc0 + # 4d0: 0000 +.Lbr037: memw # 4d2: c02000 + movi a0, 0x3feffe00 # 4d5: 0186ff + l32i a7, a0, 0x200 /* [0x3ff00000] */ # 4d8: 722080 + movi a5, -32 /* 0xffffffe0 */ # 4db: 6c05 + and a7, a7, a5 # 4dd: 507710 + memw # 4e0: c02000 + s32i a7, a0, 0x200 /* a7 -> [0x3ff00000] */ # 4e3: 726080 + memw # 4e6: c02000 + l32i a6, a0, 0x200 /* [0x3ff00000] */ # 4e9: 622080 + bbsi a6, 0, .Lbr037 # 4ec: 07e6e2 + movi a3, NMIIrqIsOn # 4ef: 3181ff +.Lbr038: movi a10, .Ldata001 # 4f2: a181ff + l32i a9, sp, 0 /* [(local0)] */ # 4f5: 9801 + l32i a11, a10, 16 /* [.Ldata005] */ # 4f7: b84a + s32i a11, a9, 28 /* [.Ldata005] -> [[(local0)]+0x1c] */ # 4f9: b979 + l8ui a8, a3, 0 /* [NMIIrqIsOn] */ # 4fb: 820300 + s32i a9, a10, 16 /* [(local0)] -> [.Ldata005] */ # 4fe: 994a + bnez a8, .Lbr042 # 500: 56c808 + memw # 503: c02000 + movi a2, 0x3feffe00 # 506: 217dff + l32i a0, a2, 0x200 /* [0x3ff00000] */ # 509: 022280 + movi a3, -32 /* 0xffffffe0 */ # 50c: 6c03 + and a0, a0, a3 # 50e: 300010 + movi a3, 1 /* 0x00000001 */ # 511: 0c13 + or a0, a0, a3 # 513: 300020 + memw # 516: c02000 + s32i a0, a2, 0x200 /* a0 -> [0x3ff00000] */ # 519: 026280 + call0 vPortExitCritical # 51c: 0189ffc0 + # 520: 0000 + j .Lbr042 # 522: 861a00 +.Lbr039: movi a3, 0 /* 0x00000000 */ # 525: 0c03 + l32i a2, sp, 0 /* [(local0)] */ # 527: 2801 + movi a4, 24 /* 0x00000018 */ # 529: 1c84 + l32i a2, a2, 32 /* [[(local0)]+0x20] */ # 52b: 2882 + call0 memset # 52d: 0185ffc0 + # 531: 0000 + movi a5, NMIIrqIsOn # 533: 5174ff + movi a0, 0x3feffe00 # 536: 0172ff + l8ui a4, a5, 0 /* [NMIIrqIsOn] */ # 539: 420500 + movi a3, -32 /* 0xffffffe0 */ # 53c: 6c03 + bnez a4, .Lbr041 # 53e: ec44 + call0 vPortEnterCritical # 540: 0182ffc0 + # 544: 0000 + movi a0, 0x3feffe00 # 546: 0170ff + movi a3, -32 /* 0xffffffe0 */ # 549: 6c03 +.Lbr040: memw # 54b: c02000 + l32i a6, a0, 0x200 /* [0x3ff00000] */ # 54e: 622080 + and a6, a6, a3 # 551: 306610 + memw # 554: c02000 + s32i a6, a0, 0x200 /* a6 -> [0x3ff00000] */ # 557: 626080 + memw # 55a: c02000 + l32i a5, a0, 0x200 /* [0x3ff00000] */ # 55d: 522080 + bbsi a5, 0, .Lbr040 # 560: 07e5e7 + movi a5, NMIIrqIsOn # 563: 516aff +.Lbr041: movi a9, .Ldata001 # 566: 916aff + l32i a8, sp, 0 /* [(local0)] */ # 569: 8801 + l32i a10, a9, 0 /* [.Ldata001] */ # 56b: a809 + s32i a10, a8, 28 /* [.Ldata001] -> [[(local0)]+0x1c] */ # 56d: a978 + l8ui a7, a5, 0 /* [NMIIrqIsOn] */ # 56f: 720500 + s32i a8, a9, 0 /* [(local0)] -> [.Ldata001] */ # 572: 8909 + bnez a7, .Lbr042 # 574: dc87 + memw # 576: c02000 + l32i a11, a0, 0x200 /* [0x3ff00000] */ # 579: b22080 + movi a2, 1 /* 0x00000001 */ # 57c: 0c12 + and a11, a11, a3 # 57e: 30bb10 + or a11, a11, a2 # 581: 20bb20 + memw # 584: c02000 + s32i a11, a0, 0x200 /* a11 -> [0x3ff00000] */ # 587: b26080 + call0 vPortExitCritical # 58a: 0170ffc0 + # 58e: 0000 +.Lbr042: l32i a0, sp, 4 /* [(local1)] */ # 590: 0811 + addi sp, sp, 16 /* (top of frame) */ # 592: 12c110 + ret # 595: 0df0 + + .literal_position # 598: 400f0000 + # 59c: 20000000 + # 5a0: 00000000 + # 5a4: 80040000 + # 5a8: 00f00000 + # 5ac: e00c0000 + # 5b0: a0110000 + +# Function @ .irom0.text+0x5b4 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word @ -0x10 +# (local5): word @ -0xc +# (local6): word[2] @ -0x8 + .balign 4 + .global esf_buf_setup + .type esf_buf_setup, @function +esf_buf_setup: + addi sp, sp, -32 /* (local0) */ # 5b4: 12c1e0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 5b7: 0901 + s32i a14, sp, 12 /* a14 -> [(local3)] */ # 5b9: e931 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 5bb: c911 + s32i a15, sp, 16 /* a15 -> [(local4)] */ # 5bd: f941 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 5bf: d921 + movi a15, 60 /* 0x0000003c */ # 5c1: 3ccf + movi a13, .Ldata010 # 5c3: d1f5ff + movi a12, .Ldata007 # 5c6: c1f5ff + movi a14, 1 /* 0x00000001 */ # 5c9: 0c1e +.Lbr043: movi a4, wDevCtrl # 5cb: 41f5ff + mov a2, a12 # 5ce: 2d0c + l32i a4, a4, 40 /* [wDevCtrl+0x28] */ # 5d0: 48a4 + movi a3, 1 /* 0x00000001 */ # 5d2: 0c13 + add a5, a15, a4 # 5d4: 4a5f + s32i a5, a12, 4 # 5d6: 591c + s32i a5, a12, 8 # 5d8: 592c + l32i a4, a4, 4 /* [[wDevCtrl+0x28]+0x4] */ # 5da: 4814 + s32i a4, a12, 16 # 5dc: 494c + s16i a14, a12, 12 # 5de: e25c06 + s32i a13, a12, 32 # 5e1: d98c + call0 esf_buf_recycle # 5e3: 050000 + addi a12, a12, 36 # 5e6: c2cc24 + addi a13, a13, 24 # 5e9: d2cd18 + addi a15, a15, -12 # 5ec: f2cff4 + bgei a15, 1, .Lbr043 # 5ef: e61fd8 + movi a14, 8 /* 0x00000008 */ # 5f2: 0c8e + movi a15, 0x0000f000 # 5f4: f1edff + movi a7, .Ldata008 # 5f7: 71ebff + s32i a7, sp, 20 /* .Ldata008 -> [(local5)] */ # 5fa: 7951 +.Lbr044: memw # 5fc: c02000 + l32i a8, sp, 20 /* [(local5)] */ # 5ff: 8851 + l16ui a10, a8, 0 /* [[(local5)]] */ # 601: a21800 + movi a11, 256 /* 0x00000100 */ # 604: b2a100 + and a10, a10, a15 # 607: f0aa10 + or a10, a10, a11 # 60a: b0aa20 + memw # 60d: c02000 + s32i a13, a12, 32 # 610: d98c + mov a2, a12 # 612: 2d0c + movi a3, 4 /* 0x00000004 */ # 614: 0c43 + s16i a10, a8, 0 /* a10 -> [[(local5)]] */ # 616: a25800 + s32i a8, a12, 4 # 619: 891c + s32i a8, a12, 8 # 61b: 892c + movi a9, 1 /* 0x00000001 */ # 61d: 0c19 + s16i a9, a12, 12 # 61f: 925c06 + addi a8, a8, 12 /* [(local5)]+0xc */ # 622: cb88 + s32i a8, a12, 16 # 624: 894c + call0 esf_buf_recycle # 626: 050000 + addi a12, a12, 36 # 629: c2cc24 + addi a13, a13, 24 # 62c: d2cd18 + addi a14, a14, -1 # 62f: 0bee + l32i a11, sp, 20 /* [(local5)] */ # 631: b851 + movi a0, 268 /* 0x0000010c */ # 633: 02a10c + add a11, a11, a0 /* [(local5)]+0x10c */ # 636: 0abb + s32i a11, sp, 20 /* [(local5)]+0x10c -> [(local5)] */ # 638: b951 + bgei a14, 1, .Lbr044 # 63a: e61ebe + movi a14, 8 /* 0x00000008 */ # 63d: 0c8e + movi a3, .Ldata009 # 63f: 31dbff + s32i a3, sp, 24 /* .Ldata009 -> [(local6)] */ # 642: 3961 +.Lbr045: memw # 644: c02000 + l32i a4, sp, 24 /* [(local6)] */ # 647: 4861 + l16ui a6, a4, 0 /* [[(local6)]] */ # 649: 621400 + movi a7, 64 /* 0x00000040 */ # 64c: 4c07 + and a6, a6, a15 # 64e: f06610 + or a6, a6, a7 # 651: 706620 + memw # 654: c02000 + s32i a13, a12, 32 # 657: d98c + mov a2, a12 # 659: 2d0c + movi a3, 5 /* 0x00000005 */ # 65b: 0c53 + s16i a6, a4, 0 /* a6 -> [[(local6)]] */ # 65d: 625400 + s32i a4, a12, 4 # 660: 491c + s32i a4, a12, 8 # 662: 492c + movi a5, 1 /* 0x00000001 */ # 664: 0c15 + s16i a5, a12, 12 # 666: 525c06 + addi a4, a4, 12 /* [(local6)]+0xc */ # 669: cb44 + s32i a4, a12, 16 # 66b: 494c + call0 esf_buf_recycle # 66d: 050000 + addi a12, a12, 36 # 670: c2cc24 + addi a13, a13, 24 # 673: d2cd18 + l32i a7, sp, 24 /* [(local6)] */ # 676: 7861 + addi a14, a14, -1 # 678: 0bee + addi a7, a7, 76 /* [(local6)]+0x4c */ # 67a: 72c74c + s32i a7, sp, 24 /* [(local6)]+0x4c -> [(local6)] */ # 67d: 7961 + bgei a14, 1, .Lbr045 # 67f: e61ec1 + movi a14, 4 /* 0x00000004 */ # 682: 0c4e +.Lbr046: s32i a13, a12, 32 # 684: d98c + mov a2, a12 # 686: 2d0c + movi a3, 6 /* 0x00000006 */ # 688: 0c63 + call0 esf_buf_recycle # 68a: 050000 + addi a12, a12, 36 # 68d: c2cc24 + addi a13, a13, 24 # 690: d2cd18 + addi a14, a14, -1 # 693: 0bee + bgei a14, 1, .Lbr046 # 695: e61eeb + movi a14, 6 /* 0x00000006 */ # 698: 0c6e + movi a13, .Label001 # 69a: d1c5ff +.Lbr047: s32i a13, a12, 32 # 69d: d98c + mov a2, a12 # 69f: 2d0c + movi a3, 7 /* 0x00000007 */ # 6a1: 0c73 + call0 esf_buf_recycle # 6a3: 050000 + addi a12, a12, 36 # 6a6: c2cc24 + addi a13, a13, 12 # 6a9: cbdd + addi a14, a14, -1 # 6ab: 0bee + bgei a14, 1, .Lbr047 # 6ad: e61eec + l32i a12, sp, 4 /* [(local1)] */ # 6b0: c811 + l32i a13, sp, 8 /* [(local2)] */ # 6b2: d821 + l32i a14, sp, 12 /* [(local3)] */ # 6b4: e831 + l32i a15, sp, 16 /* [(local4)] */ # 6b6: f841 + l32i a0, sp, 0 /* [(local0)] */ # 6b8: 0801 + addi sp, sp, 32 /* (top of frame) */ # 6ba: 12c120 + ret # 6bd: 0df0 diff --git a/binary_sdk/libpp_stage1/if_hwctrl.S b/binary_sdk/libpp_stage1/if_hwctrl.S new file mode 100644 index 0000000..cc75189 --- /dev/null +++ b/binary_sdk/libpp_stage1/if_hwctrl.S @@ -0,0 +1,596 @@ + + .section .bss, "aw", @nobits + + .global interface_mask + .type interface_mask, @object +interface_mask: + .byte 0x00 + .space 15 + .global if_ctrl + .type if_ctrl, @object +if_ctrl: .space 32 + + .section .irom0.text, "ax", @progbits + + .literal_position # 0: 10000000 + +# Function @ .irom0.text+0x4 + .balign 4 + .global ic_get_addr + .type ic_get_addr, @function +ic_get_addr: + movi a3, if_ctrl # 4: 31ffff + slli a2, a2, 4 # 7: c02211 + add a2, a3, a2 # a: 2a23 + ret # c: 0df0 + + .literal_position # 10: 10000000 + +# Function @ .irom0.text+0x14 + .balign 4 + .global ic_set_opmode + .type ic_set_opmode, @function +ic_set_opmode: + movi a5, if_ctrl # 14: 51ffff + slli a6, a2, 4 # 17: c06211 + add a5, a5, a6 # 1a: 6a55 + s32i a3, a5, 8 # 1c: 3925 + s8i a4, a5, 12 # 1e: 42450c + ret /* arg0 */ # 21: 0df0 + + .literal_position # 24: 10000000 + # 28: 00000000 + # 2c: 00000000 + # 30: 00000000 + +# Function @ .irom0.text+0x34 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word @ -0x8 +# (local3): word @ -0x4 + .balign 4 + .global ic_enable_interface + .type ic_enable_interface, @function +ic_enable_interface: + addi sp, sp, -16 /* (local0) */ # 34: 12c1f0 + s32i a5, sp, 4 /* arg3 -> [(local1)] */ # 37: 5911 + s32i a0, sp, 8 /* a0 -> [(local2)] */ # 39: 0921 + s32i a12, sp, 12 /* a12 -> [(local3)] */ # 3b: c931 + s32i a4, sp, 0 /* arg2 -> [(local0)] */ # 3d: 4901 + mov a12, a2 /* arg0 */ # 3f: cd02 + movi a2, if_ctrl # 41: 21f8ff + slli a4, a12, 4 # 44: c04c11 + add a2, a2, a4 # 47: 4a22 + movi a4, 6 /* 0x00000006 */ # 49: 0c64 + call0 memcpy # 4b: 01f8ffc0 + # 4f: 0000 + mov a2, a12 /* arg0 */ # 51: 2d0c + l32i a3, sp, 0 /* [(local0)] */ # 53: 3801 + l32i a4, sp, 4 /* [(local1)] */ # 55: 4811 + call0 ic_set_opmode # 57: 050000 + ssl a12 # 5a: 001c40 + movi a5, interface_mask # 5d: 51f2ff + movi a3, 1 /* 0x00000001 */ # 60: 0c13 + l8ui a2, a5, 0 /* [interface_mask] */ # 62: 220500 + sll a3, a3 # 65: 0033a1 + or a2, a2, a3 # 68: 302220 + extui a2, a2, 0, 8 # 6b: 202074 + s8i a2, a5, 0 /* a2 -> [interface_mask] */ # 6e: 224500 + call0 __popcountsi2 # 71: 01efffc0 + # 75: 0000 + extui a2, a2, 0, 8 # 77: 202074 + l32i a12, sp, 12 /* [(local3)] */ # 7a: c831 + l32i a0, sp, 8 /* [(local2)] */ # 7c: 0821 + addi sp, sp, 16 /* (top of frame) */ # 7e: 12c110 + ret # 81: 0df0 + + .literal_position # 84: 00000000 + +# Function @ .irom0.text+0x88 + .balign 4 + .global ic_interface_enabled + .type ic_interface_enabled, @function +ic_interface_enabled: + movi a3, interface_mask # 88: 31ffff + l8ui a3, a3, 0 /* [interface_mask] */ # 8b: 320300 + ssr a2 # 8e: 000240 + srl a2, a3 # 91: 302091 + extui a2, a2, 0, 1 # 94: 202004 + ret # 97: 0df0 + + .literal_position # 9c: 00000000 + # a0: 00000000 + # a4: 00000000 + # a8: 00000000 + # ac: 00000000 + +# Function @ .irom0.text+0xb0 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global ic_disable_interface + .type ic_disable_interface, @function +ic_disable_interface: + addi sp, sp, -16 /* (local0) */ # b0: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # b3: 0901 + movi a0, interface_mask # b5: 01f9ff + movi a4, 1 /* 0x00000001 */ # b8: 0c14 + l8ui a0, a0, 0 /* [interface_mask] */ # ba: 020000 + ssr a2 # bd: 000240 + srl a3, a0 # c0: 003091 + bbci a3, 0, .Lbr001 # c3: 07631f + ssl a2 # c6: 001240 + sll a3, a4 # c9: 0034a1 + movi a4, -1 /* 0xffffffff */ # cc: 7cf4 + xor a3, a3, a4 # ce: 403330 + movi a4, interface_mask # d1: 41f3ff + and a3, a0, a3 # d4: 303010 + s8i a3, a4, 0 /* a3 -> [interface_mask] */ # d7: 324400 + call0 rc_disable_trc_by_interface # da: 01f3ffc0 + # de: 0000 + movi a0, interface_mask # e0: 01f1ff + l8ui a0, a0, 0 /* [interface_mask] */ # e3: 020000 +.Lbr001: mov a2, a0 /* [interface_mask] */ # e6: 2d00 + call0 __popcountsi2 # e8: 01f1ffc0 + # ec: 0000 + extui a2, a2, 0, 8 # ee: 202074 + l32i a0, sp, 0 /* [(local0)] */ # f1: 0801 + addi sp, sp, 16 /* (top of frame) */ # f3: 12c110 + ret # f6: 0df0 + + .literal_position # f8: 10000000 + +# Function @ .irom0.text+0xfc + .balign 4 + .global ic_is_pure_sta + .type ic_is_pure_sta, @function +ic_is_pure_sta: + movi a4, if_ctrl # fc: 41ffff + slli a5, a2, 4 # ff: c05211 + add a4, a4, a5 # 102: 5a44 + l32i a3, a4, 8 # 104: 3824 + movi a2, 0 /* 0x00000000 */ # 106: 0c02 + beqi a3, 1, .Lbr002 # 108: 261307 + l8ui a7, a4, 12 # 10b: 72040c + movi a6, 1 /* 0x00000001 */ # 10e: 0c16 + moveqz a2, a6, a7 # 110: 702683 +.Lbr002: extui a2, a2, 0, 8 # 113: 202074 + ret # 116: 0df0 + + .literal_position # 118: 10000000 + +# Function @ .irom0.text+0x11c + .balign 4 + .global ic_get_ptk_alg + .type ic_get_ptk_alg, @function +ic_get_ptk_alg: + movi a3, if_ctrl # 11c: 31ffff + slli a2, a2, 4 # 11f: c02211 + add a2, a3, a2 # 122: 2a23 + l8ui a2, a2, 13 # 124: 22020d + ret # 127: 0df0 + + .literal_position # 12c: 10000000 + +# Function @ .irom0.text+0x130 + .balign 4 + .global ic_get_gtk_alg + .type ic_get_gtk_alg, @function +ic_get_gtk_alg: + movi a3, if_ctrl # 130: 31ffff + slli a2, a2, 4 # 133: c02211 + add a2, a3, a2 # 136: 2a23 + l8ui a2, a2, 14 # 138: 22020e + ret # 13b: 0df0 + + .literal_position # 140: 10000000 + +# Function @ .irom0.text+0x144 + .balign 4 + .global ic_set_ptk_alg + .type ic_set_ptk_alg, @function +ic_set_ptk_alg: + movi a4, if_ctrl # 144: 41ffff + slli a5, a2, 4 # 147: c05211 + add a4, a4, a5 # 14a: 5a44 + s8i a3, a4, 13 # 14c: 32440d + ret /* arg0 */ # 14f: 0df0 + + .literal_position # 154: 10000000 + +# Function @ .irom0.text+0x158 + .balign 4 + .global ic_set_gtk_alg + .type ic_set_gtk_alg, @function +ic_set_gtk_alg: + movi a4, if_ctrl # 158: 41ffff + slli a5, a2, 4 # 15b: c05211 + add a4, a4, a5 # 15e: 5a44 + s8i a3, a4, 14 # 160: 32440e + ret /* arg0 */ # 163: 0df0 + + .literal_position # 168: 10000000 + +# Function @ .irom0.text+0x16c + .balign 4 + .global ic_interface_is_p2p + .type ic_interface_is_p2p, @function +ic_interface_is_p2p: + movi a3, if_ctrl # 16c: 31ffff + slli a2, a2, 4 # 16f: c02211 + add a2, a3, a2 # 172: 2a23 + l8ui a2, a2, 12 # 174: 22020c + ret # 177: 0df0 + + .literal_position # 17c: 00000000 + # 180: 00000000 + +# Function @ .irom0.text+0x184 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 +.Lfunc001: movi a3, 0 /* 0x00000000 */ # 184: 0c03 + addi sp, sp, -16 /* (local0) */ # 186: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 189: c911 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 18b: 0901 + mov a12, a2 /* arg0 */ # 18d: cd02 + call0 ic_set_ptk_alg # 18f: 050000 + mov a2, a12 /* arg0 */ # 192: 2d0c + movi a3, 0 /* 0x00000000 */ # 194: 0c03 + call0 ic_set_gtk_alg # 196: 050000 + mov a2, a12 /* arg0 */ # 199: 2d0c + call0 wDev_Crypto_Disable # 19b: 01f8ffc0 + # 19f: 0000 + mov a3, a12 /* arg0 */ # 1a1: 3d0c + movi a2, 1 /* 0x00000001 */ # 1a3: 0c12 + movi a4, 0 /* 0x00000000 */ # 1a5: 0c04 + call0 wDev_SetRxPolicy # 1a7: 01f6ffc0 + # 1ab: 0000 + l32i a12, sp, 4 /* [(local1)] */ # 1ad: c811 + l32i a0, sp, 0 /* [(local0)] */ # 1af: 0801 + addi sp, sp, 16 /* (top of frame) */ # 1b1: 12c110 + ret # 1b4: 0df0 + + .literal_position # 1b8: 00000000 + # 1bc: 00000000 + # 1c0: 00000000 + # 1c4: 00000000 + # 1c8: 00000000 + +# Function @ .irom0.text+0x1cc +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 +.Lfunc002: addi sp, sp, -16 /* (local0) */ # 1cc: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 1cf: c911 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1d1: 0901 + mov a12, a2 /* arg0 */ # 1d3: cd02 + movi a2, .Lstr001 # 1d5: 21f8ff + mov a3, a12 /* arg0 */ # 1d8: 3d0c + call0 printf # 1da: 01f8ffc0 + # 1de: 0000 + movi a2, 0 /* 0x00000000 */ # 1e0: 0c02 + mov a3, a12 /* arg0 */ # 1e2: 3d0c + movi a4, 0 /* 0x00000000 */ # 1e4: 0c04 + call0 wDev_SetRxPolicy # 1e6: 01f6ffc0 + # 1ea: 0000 + mov a2, a12 /* arg0 */ # 1ec: 2d0c + call0 ic_disable_interface # 1ee: 050000 + bnez a2, .Lbr003 # 1f1: cca2 + call0 wDevDisableRx # 1f3: 01f4ffc0 + # 1f7: 0000 + call0 pm_force_scan_unlock # 1f9: 01f3ffc0 + # 1fd: 0000 +.Lbr003: l32i a12, sp, 4 /* [(local1)] */ # 1ff: c811 + l32i a0, sp, 0 /* [(local0)] */ # 201: 0801 + addi sp, sp, 16 /* (top of frame) */ # 203: 12c110 + ret # 206: 0df0 + + .literal_position # 208: 0c000000 + # 20c: 18000000 + # 210: 00000000 + # 214: 00000000 + # 218: 00000000 + # 21c: 00000000 + +# Function @ .irom0.text+0x220 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word[4] @ -0x10 + .balign 4 + .global ic_set_vif + .type ic_set_vif, @function +ic_set_vif: addi sp, sp, -32 /* (local0) */ # 220: 12c1e0 + s32i a0, sp, 8 /* a0 -> [(local2)] */ # 223: 0921 + s32i a5, sp, 4 /* arg3 -> [(local1)] */ # 225: 5911 + s32i a6, sp, 0 /* arg4 -> [(local0)] */ # 227: 6901 + s32i a12, sp, 12 /* a12 -> [(local3)] */ # 229: c931 + s32i a13, sp, 16 /* a13 -> [(local4)] */ # 22b: d941 + mov a12, a2 /* arg0 */ # 22d: cd02 + mov a13, a4 /* arg2 */ # 22f: dd04 + bnei a3, 2, .Lbr004 # 231: 662316 + movi a2, .Lstr002 # 234: 21f5ff + mov a3, a12 /* arg0 */ # 237: 3d0c + call0 printf # 239: 01f5ffc0 + # 23d: 0000 + mov a2, a12 /* arg0 */ # 23f: 2d0c + l32i a3, sp, 4 /* [(local1)] */ # 241: 3811 + l32i a4, sp, 0 /* [(local0)] */ # 243: 4801 + call0 ic_set_opmode # 245: 050000 + j .Lbr007 # 248: 860d00 +.Lbr004: bnei a3, 1, .Lbr006 # 24b: 661330 + movi a2, .Lstr003 # 24e: 21efff + mov a3, a12 /* arg0 */ # 251: 3d0c + call0 printf # 253: 01f0ffc0 + # 257: 0000 + mov a2, a12 /* arg0 */ # 259: 2d0c + mov a3, a13 /* arg2 */ # 25b: 3d0d + call0 wDev_SetMacAddress # 25d: 01eeffc0 + # 261: 0000 + mov a3, a13 /* arg2 */ # 263: 3d0d + mov a2, a12 /* arg0 */ # 265: 2d0c + l32i a4, sp, 4 /* [(local1)] */ # 267: 4811 + l32i a5, sp, 0 /* [(local0)] */ # 269: 5801 + call0 ic_enable_interface # 26b: 050000 + bnei a2, 1, .Lbr005 # 26e: 661205 + call0 wDevEnableRx # 271: 01eaffc0 + # 275: 0000 +.Lbr005: mov a2, a12 /* arg0 */ # 277: 2d0c + call0 .Lfunc001 # 279: 85f0ff + j .Lbr007 # 27c: 860000 +.Lbr006: call0 .Lfunc002 # 27f: c5f4ff +.Lbr007: l32i a12, sp, 12 /* [(local3)] */ # 282: c831 + l32i a13, sp, 16 /* [(local4)] */ # 284: d841 + l32i a0, sp, 8 /* [(local2)] */ # 286: 0821 + addi sp, sp, 32 /* (top of frame) */ # 288: 12c120 + ret # 28b: 0df0 + + .literal_position # 290: 24000000 + # 294: 00000000 + # 298: 00feef3f + # 29c: 00000000 + # 2a0: 00000000 + # 2a4: 00000000 + # 2a8: 00000000 + # 2ac: 00000000 + # 2b0: 00000000 + # 2b4: 00000000 + +# Function @ .irom0.text+0x2b8 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word @ -0x10 +# (local5): word[3] @ -0xc + .balign 4 + .global ic_set_sta + .type ic_set_sta, @function +ic_set_sta: addi sp, sp, -32 /* (local0) */ # 2b8: 12c1e0 + s32i a12, sp, 8 /* a12 -> [(local2)] */ # 2bb: c921 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 2bd: 0911 + s32i a14, sp, 16 /* a14 -> [(local4)] */ # 2bf: e941 + s32i a13, sp, 12 /* a13 -> [(local3)] */ # 2c1: d931 + mov a14, a6 /* arg4 */ # 2c3: ed06 + mov a13, a2 /* arg0 */ # 2c5: dd02 + beqz a3, .Lbr010 # 2c7: 169308 + mov a3, a4 /* arg2 */ # 2ca: 3d04 + s32i a7, sp, 0 /* arg5 -> [(local0)] */ # 2cc: 7901 + mov a4, a5 /* arg3 */ # 2ce: 4d05 + mov a5, a6 /* arg4 */ # 2d0: 5d06 + call0 rc_enable_trc # 2d2: 01f3ffc0 + # 2d6: 0000 + mov a12, a2 # 2d8: cd02 + mov a3, a14 /* arg4 */ # 2da: 3d0e + movi a2, .Lstr004 # 2dc: 21edff + call0 printf # 2df: 01f1ffc0 + # 2e3: 0000 + beqz a12, .Lbr011 # 2e5: 165c07 + mov a2, a13 /* arg0 */ # 2e8: 2d0d + call0 ic_interface_is_p2p # 2ea: 050000 + movi a14, -32 /* 0xffffffe0 */ # 2ed: 6c0e + l32i a4, sp, 0 /* [(local0)] */ # 2ef: 4801 + mov a0, a2 # 2f1: 0d02 + s32i a2, sp, 20 /* a2 -> [(local5)] */ # 2f3: 2951 + movi a2, NMIIrqIsOn # 2f5: 21e7ff + s32i a4, a12, 92 # 2f8: 426c17 + l8ui a2, a2, 0 /* [NMIIrqIsOn] */ # 2fb: 220200 + movi a13, 0x3feffe00 # 2fe: d1e6ff + bnez a2, .Lbr009 # 301: dce2 + call0 vPortEnterCritical # 303: 01e9ffc0 + # 307: 0000 +.Lbr008: memw # 309: c02000 + l32i a6, a13, 0x200 /* [0x3ff00000] */ # 30c: 622d80 + and a6, a6, a14 # 30f: e06610 + memw # 312: c02000 + s32i a6, a13, 0x200 /* a6 -> [0x3ff00000] */ # 315: 626d80 + memw # 318: c02000 + l32i a5, a13, 0x200 /* [0x3ff00000] */ # 31b: 522d80 + bbsi a5, 0, .Lbr008 # 31e: 07e5e7 + l32i a0, sp, 20 /* [(local5)] */ # 321: 0851 +.Lbr009: mov a2, a12 # 323: 2d0c + movi a3, 0 /* 0x00000000 */ # 325: 0c03 + mov a4, a0 # 327: 4d00 + call0 rcUpdatePhyMode # 329: 01e0ffc0 + # 32d: 0000 + movi a7, NMIIrqIsOn # 32f: 71dbff + l8ui a7, a7, 0 /* [NMIIrqIsOn] */ # 332: 720700 + bnez a7, .Lbr011 # 335: ec57 + memw # 337: c02000 + l32i a8, a13, 0x200 /* [0x3ff00000] */ # 33a: 822d80 + movi a9, 1 /* 0x00000001 */ # 33d: 0c19 + and a8, a8, a14 # 33f: e08810 + or a8, a8, a9 # 342: 908820 + memw # 345: c02000 + s32i a8, a13, 0x200 /* a8 -> [0x3ff00000] */ # 348: 826d80 + call0 vPortExitCritical # 34b: 01d9ffc0 + # 34f: 0000 + j .Lbr011 # 351: 460200 +.Lbr010: mov a3, a4 /* arg2 */ # 354: 3d04 + mov a4, a5 /* arg3 */ # 356: 4d05 + call0 rc_disable_trc # 358: 01d7ffc0 + # 35c: 0000 +.Lbr011: l32i a12, sp, 8 /* [(local2)] */ # 35e: c821 + l32i a13, sp, 12 /* [(local3)] */ # 360: d831 + l32i a14, sp, 16 /* [(local4)] */ # 362: e841 + l32i a0, sp, 4 /* [(local1)] */ # 364: 0811 + addi sp, sp, 32 /* (top of frame) */ # 366: 12c120 + ret # 369: 0df0 + + .literal_position # 36c: 34000000 + # 370: 3c000000 + # 374: 2c000000 + # 378: 00000000 + # 37c: 00000000 + # 380: 00000000 + # 384: 00000000 + # 388: 00000000 + +# Function @ .irom0.text+0x38c +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global ic_bss_info_update + .type ic_bss_info_update, @function +ic_bss_info_update: + addi sp, sp, -16 /* (local0) */ # 38c: 12c1f0 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 38f: 0911 + bnei a4, 2, .Lbr012 # 391: 662412 + s32i a5, sp, 0 /* arg3 -> [(local0)] */ # 394: 5901 + beqz a5, .Lbr015 # 396: bcb5 + mov a4, a3 /* arg1 */ # 398: 4d03 + mov a3, a2 /* arg0 */ # 39a: 3d02 + movi a2, 2 /* 0x00000002 */ # 39c: 0c22 + call0 wDev_SetRxPolicy # 39e: 01f6ffc0 + # 3a2: 0000 + j .Lbr016 # 3a4: 060c00 +.Lbr012: bnei a4, 1, .Lbr013 # 3a7: 661417 + mov a4, a3 /* arg1 */ # 3aa: 4d03 + mov a3, a2 /* arg0 */ # 3ac: 3d02 + movi a2, 2 /* 0x00000002 */ # 3ae: 0c22 + call0 wDev_SetRxPolicy # 3b0: 01f3ffc0 + # 3b4: 0000 + movi a2, .Lstr006 # 3b6: 21edff + call0 printf # 3b9: 01f1ffc0 + # 3bd: 0000 + j .Lbr014 # 3bf: c60200 +.Lbr013: call0 .Lfunc001 # 3c2: 05dcff + movi a2, .Lstr007 # 3c5: 21eaff + call0 printf # 3c8: 01efffc0 + # 3cc: 0000 +.Lbr014: l32i a0, sp, 4 /* [(local1)] */ # 3ce: 0811 + addi sp, sp, 16 /* (top of frame) */ # 3d0: 12c110 + ret # 3d3: 0df0 +.Lbr015: call0 .Lfunc001 # 3d5: c5daff +.Lbr016: movi a2, .Lstr005 # 3d8: 21e7ff + l32i a3, sp, 0 /* [(local0)] */ # 3db: 3801 + call0 printf # 3dd: 01eaffc0 + # 3e1: 0000 + j .Lbr014 # 3e3: c6f9ff + + .literal_position # 3e8: 00000000 + # 3ec: 00000000 + +# Function @ .irom0.text+0x3f0 +# Local variables/stack: +# (local0): word[4] @ -0x30 +# (local1): word @ -0x20 +# (local2): word @ -0x1c +# (local3): word @ -0x18 +# (local4): word @ -0x14 +# (local5): word @ -0x10 +# (local6): word @ -0xc +# (local7): word[2] @ -0x8 + .balign 4 + .global ic_set_key + .type ic_set_key, @function +ic_set_key: addi sp, sp, -48 /* (local0) */ # 3f0: 12c1d0 + s32i a0, sp, 28 /* a0 -> [(local4)] */ # 3f3: 0971 + s32i a4, sp, 16 /* arg2 -> [(local1)] */ # 3f5: 4941 + s32i a5, sp, 20 /* arg3 -> [(local2)] */ # 3f7: 5951 + s32i a7, sp, 24 /* arg5 -> [(local3)] */ # 3f9: 7961 + s32i a14, sp, 40 /* a14 -> [(local7)] */ # 3fb: e9a1 + s32i a13, sp, 36 /* a13 -> [(local6)] */ # 3fd: d991 + s32i a12, sp, 32 /* a12 -> [(local5)] */ # 3ff: c981 + mov a13, a2 /* arg0 */ # 401: dd02 + mov a12, a3 /* arg1 */ # 403: cd03 + mov a14, a6 /* arg4 */ # 405: ed06 + bltui a6, 6, .Lbr017 # 407: b66605 + call0 ic_set_ptk_alg # 40a: 050000 + j .Lbr019 # 40d: 460400 +.Lbr017: bnez a3, .Lbr018 # 410: ccb3 + call0 ic_set_ptk_alg # 412: 050000 + mov a2, a13 /* arg0 */ # 415: 2d0d + mov a3, a12 /* arg1 */ # 417: 3d0c + call0 ic_set_gtk_alg # 419: 050000 + j .Lbr019 # 41c: 860000 +.Lbr018: call0 ic_set_gtk_alg # 41f: 050000 +.Lbr019: mov a6, a14 /* arg4 */ # 422: 6d0e + l32i a4, sp, 16 /* [(local1)] */ # 424: 4841 + l32i a5, sp, 20 /* [(local2)] */ # 426: 5851 + l32i a7, sp, 24 /* [(local3)] */ # 428: 7861 + mov a2, a12 /* arg1 */ # 42a: 2d0c + mov a3, a13 /* arg0 */ # 42c: 3d0d + l8ui a0, sp, 48 /* [(local8)] */ # 42e: 020130 + s32i a0, sp, 0 /* [(local8)] -> [(local0)] */ # 431: 0901 + call0 wDev_Insert_KeyEntry # 433: 01edffc0 + # 437: 0000 + mov a3, a12 /* arg1 */ # 439: 3d0c + mov a2, a13 /* arg0 */ # 43b: 2d0d + call0 wDev_Crypto_Conf # 43d: 01ebffc0 + # 441: 0000 + l32i a12, sp, 32 /* [(local5)] */ # 443: c881 + l32i a13, sp, 36 /* [(local6)] */ # 445: d891 + l32i a14, sp, 40 /* [(local7)] */ # 447: e8a1 + l32i a0, sp, 28 /* [(local4)] */ # 449: 0871 + addi sp, sp, 48 /* (local8) */ # 44b: 12c130 + ret # 44e: 0df0 + + .literal_position # 450: 00000000 + +# Function @ .irom0.text+0x454 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global ic_remove_key + .type ic_remove_key, @function +ic_remove_key: + addi sp, sp, -16 /* (local0) */ # 454: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 457: 0901 + call0 wDev_remove_KeyEntry # 459: 01fdffc0 + # 45d: 0000 + l32i a0, sp, 0 /* [(local0)] */ # 45f: 0801 + addi sp, sp, 16 /* (top of frame) */ # 461: 12c110 + ret # 464: 0df0 + + .section .rodata.str1.4, "MSa", @progbits, 1 + +.Lstr001: .asciz "del if%d\n" # 0: 64656c20 + # 4: 69662564 + # 8: 0a00 + .balign 4 +.Lstr002: .asciz "chg if%d\n" # c: 63686720 + # 10: 69662564 + # 14: 0a00 + .balign 4 +.Lstr003: .asciz "add if%d\n" # 18: 61646420 + # 1c: 69662564 + # 20: 0a00 + .balign 4 +.Lstr004: .asciz "aid %d\n" # 24: 61696420 + # 28: 25640a00 +.Lstr005: .asciz "bcn %d\n" # 2c: 62636e20 + # 30: 25640a00 +.Lstr006: .asciz "cnt \n" # 34: 636e7420 + # 38: 0a00 + .balign 4 +.Lstr007: .asciz "uncnt \n" # 3c: 756e636e + # 40: 74200a00 diff --git a/binary_sdk/libpp_stage1/lmac.S b/binary_sdk/libpp_stage1/lmac.S new file mode 100644 index 0000000..61a9a25 --- /dev/null +++ b/binary_sdk/libpp_stage1/lmac.S @@ -0,0 +1,2716 @@ + + .section .text, "ax", @progbits + + .literal_position # 0: 00000000 + +# Function @ .text+0x4 + .balign 4 + .global lmacIsActive + .type lmacIsActive, @function +lmacIsActive: + movi a3, .Ldata001 # 4: 31ffff + l8ui a3, a3, 0 /* [.Ldata001] */ # 7: 320300 + movi a2, 1 /* 0x00000001 */ # a: 0c12 + bltui a3, 8, .Lbr001 # c: b68301 + movi a2, 0 /* 0x00000000 */ # f: 0c02 +.Lbr001: ret # 11: 0df0 + + .literal_position # 14: 30000000 + +# Function @ .text+0x18 + .balign 4 + .global lmacIsIdle + .type lmacIsIdle, @function +lmacIsIdle: movi a3, 1 /* 0x00000001 */ # 18: 0c13 + movi a5, .Label001 # 1a: 51feff + addx8 a4, a2, a2 # 1d: 2042b0 + addx4 a4, a4, a5 # 20: 5044a0 + l8ui a4, a4, 17 # 23: 420411 + movi a2, 0 /* 0x00000000 */ # 26: 0c02 + moveqz a2, a3, a4 # 28: 402383 + ret # 2b: 0df0 + + .literal_position # 30: 00000000 + # 34: 00000000 + # 38: 08000000 + # 3c: 00000000 + # 40: 00000000 + # 44: 00000000 + +# Function @ .text+0x48 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 +.Lfunc001: addi sp, sp, -16 /* (local0) */ # 48: 12c1f0 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 4b: 0911 + movi a0, .Ldata001 # 4d: 01f8ff + l32i a0, a0, 36 /* [.Ldata010] */ # 50: 0890 + s32i a2, sp, 0 /* arg0 -> [(local0)] */ # 52: 2901 + bnez a0, .Lbr003 # 54: dc00 + movi a2, .Lstr001 # 56: 21f7ff + movi a3, .Lstr002 # 59: 31f7ff + movi a4, 237 /* 0x000000ed */ # 5c: 42a0ed + call0 printf # 5f: 01f7ffc0 + # 63: 0000 +.Lbr002: j .Lbr002 /* (halt) */ # 65: 06ffff +.Lbr003: mov a2, a3 /* arg1 */ # 68: 2d03 + movi a3, 3 /* 0x00000003 */ # 6a: 0c33 + call0 wDev_SetFrameAckType # 6c: 01f5ffc0 + # 70: 0000 + l32i a3, sp, 0 /* [(local0)] */ # 72: 3801 + s8i a2, a3, 16 /* a2 -> [[(local0)]+0x10] */ # 74: 224310 + movi a2, 10 /* 0x0000000a */ # 77: 0ca2 + call0 wDev_SetWaitingQueue # 79: 01f2ffc0 + # 7d: 0000 + l32i a0, sp, 4 /* [(local1)] */ # 7f: 0811 + addi sp, sp, 16 /* (top of frame) */ # 81: 12c110 + ret # 84: 0df0 + + .literal_position # 88: 00000000 + # 8c: 00000000 + # 90: 08000000 + # 94: 00000000 + # 98: 00000000 + # 9c: 00000000 + +# Function @ .text+0xa0 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 +.Lfunc002: addi sp, sp, -16 /* (local0) */ # a0: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # a3: 0901 + movi a0, .Ldata001 # a5: 01f8ff + l32i a0, a0, 36 /* [.Ldata010] */ # a8: 0890 + mov a9, a2 /* arg0 */ # aa: 9d02 + bnez a0, .Lbr005 # ac: dc00 + movi a2, .Lstr001 # ae: 21f7ff + movi a3, .Lstr002 # b1: 31f7ff + movi a4, 248 /* 0x000000f8 */ # b4: 42a0f8 + call0 printf # b7: 01f7ffc0 + # bb: 0000 +.Lbr004: j .Lbr004 /* (halt) */ # bd: 06ffff +.Lbr005: mov a2, a3 /* arg1 */ # c0: 2d03 + l8ui a3, a9, 16 /* [arg0+0x10] */ # c2: 320910 + call0 wDev_SetFrameAckType # c5: 01f4ffc0 + # c9: 0000 + movi a2, 10 /* 0x0000000a */ # cb: 0ca2 + call0 wDev_ClearWaitingQueue # cd: 01f3ffc0 + # d1: 0000 + l32i a0, sp, 0 /* [(local0)] */ # d3: 0801 + addi sp, sp, 16 /* (top of frame) */ # d5: 12c110 + ret # d8: 0df0 + + .balign 4 +# Function @ .text+0xdc +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 +.Lfunc003: addi sp, sp, -16 /* (local0) */ # dc: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # df: 0901 + call0 .Lfunc004 # e1: c50400 + l32i a0, sp, 0 /* [(local0)] */ # e4: 0801 + addi sp, sp, 16 /* (top of frame) */ # e6: 12c110 + ret # e9: 0df0 + + .literal_position # ec: 00000000 + # f0: 00000000 + # f4: 08000000 + # f8: ffff0300 + # fc: 000af23f + # 100: 00000001 + # 104: 00000010 + # 108: 00000008 + # 10c: 00004000 + # 110: 00004000 + # 114: 00000001 + # 118: 00000010 + # 11c: 00000008 + # 120: 00000000 + # 124: 00000000 + # 128: 00000000 + # 12c: 00000000 + +# Function @ .text+0x130 +# Local variables/stack: +# (local0): word @ -0x30 +# (local1): word @ -0x2c +# (local2): word @ -0x28 +# (local3): word @ -0x24 +# (local4): word @ -0x20 +# (local5): word @ -0x1c +# (local6): word @ -0x18 +# (local7): word @ -0x14 +# (local8): word @ -0x10 +# (local9): word @ -0xc +# (local10): word @ -0x8 +# (local11): word @ -0x4 + .balign 4 +.Lfunc004: movi a8, 0 /* 0x00000000 */ # 130: 0c08 + movi a10, 128 /* 0x00000080 */ # 132: a2a080 + movi a11, .Ldata001 # 135: b1edff + addi sp, sp, -48 /* (local0) */ # 138: 12c1d0 + s32i a0, sp, 20 /* a0 -> [(local5)] */ # 13b: 0951 + s32i a14, sp, 32 /* a14 -> [(local8)] */ # 13d: e981 + s32i a12, sp, 24 /* a12 -> [(local6)] */ # 13f: c961 + s32i a13, sp, 28 /* a13 -> [(local7)] */ # 141: d971 + mov a12, a2 /* arg0 */ # 143: cd02 + mov a13, a3 /* arg1 */ # 145: dd03 + bnez a3, .Lbr006 # 147: cc33 + l32i a14, a2, 0 /* [arg0] */ # 149: e802 + j .Lbr007 # 14b: 460000 +.Lbr006: l32i a14, a11, 36 /* [.Ldata010] */ # 14e: e89b +.Lbr007: l32i a6, a14, 16 # 150: 684e + l16ui a7, a14, 22 # 152: 721e0b + l32i a0, a14, 32 # 155: 088e + l16ui a5, a14, 20 # 157: 521e0a + l32i a9, a0, 0 # 15a: 9800 + l16ui a3, a0, 6 # 15c: 321003 + add a5, a5, a7 # 15f: 7a55 + extui a5, a5, 0, 16 # 161: 5050f4 + l8ui a7, a12, 17 /* [arg0+0x11] */ # 164: 720c11 + srli a3, a3, 7 # 167: 303741 + srli a2, a9, 6 # 16a: 902641 + and a10, a2, a10 # 16d: a0a210 + bbci a9, 13, .Lbr008 # 170: d76904 + bbsi a9, 12, .Lbr008 # 173: c7e901 + movi a8, 1 /* 0x00000001 */ # 176: 0c18 +.Lbr008: beqz a7, .Lbr010 # 178: 9c67 + beqi a7, 3, .Lbr010 # 17a: 263714 + beqi a7, 2, .Lbr010 # 17d: 262711 + movi a2, .Lstr001 # 180: 21dcff + movi a3, .Lstr002 # 183: 31dcff + movi a4, 277 /* 0x00000115 */ # 186: 42a115 + call0 printf # 189: 01e5ffc0 + # 18d: 0000 +.Lbr009: j .Lbr009 /* (halt) */ # 18f: 06ffff +.Lbr010: movi a7, 0 /* 0x00000000 */ # 192: 0c07 + s32i a8, sp, 4 /* a8 -> [(local1)] */ # 194: 8911 + s32i a5, sp, 12 /* a5 -> [(local3)] */ # 196: 5931 + movi a4, 1 /* 0x00000001 */ # 198: 0c14 + s32i a4, sp, 16 /* 0x00000001 -> [(local4)] */ # 19a: 4941 + bbci a2, 22, .Lbr011 # 19c: 677210 + movi a8, 1 /* 0x00000001 */ # 19f: 0c18 + l32i a0, a14, 32 # 1a1: 088e + movi a5, 1 /* 0x00000001 */ # 1a3: 0c15 + l32i a2, a0, 0 # 1a5: 2800 + s16i a3, a6, 2 # 1a7: 325601 + srli a2, a2, 6 # 1aa: 202641 + j .Lbr015 # 1ad: c61500 +.Lbr011: l8ui a4, a12, 11 /* [arg0+0xb] */ # 1b0: 420c0b + bnez a4, .Lbr012 # 1b3: cc44 + l8ui a5, a12, 13 /* [arg0+0xd] */ # 1b5: 520c0d + beqz a5, .Lbr044 # 1b8: 161525 +.Lbr012: l16si a9, a12, 22 /* [arg0+0x16] */ # 1bb: 929c0b + l16si a5, a12, 20 /* [arg0+0x14] */ # 1be: 529c0a + l32i a4, a11, 40 /* [.Ldata011] */ # 1c1: 48ab + slli a8, a3, 16 # 1c3: 008311 + srai a8, a8, 16 # 1c6: 808031 + l32i a4, a4, 32 /* [[.Ldata011]+0x20] */ # 1c9: 4884 + sub a5, a5, a9 # 1cb: 9055c0 + l16ui a4, a4, 6 /* [[[.Ldata011]+0x20]+0x6] */ # 1ce: 421403 + s16i a5, a12, 20 /* a5 -> [arg0+0x14] */ # 1d1: 525c0a + l16si a9, a12, 20 /* [arg0+0x14] */ # 1d4: 929c0a + l16ui a0, a0, 10 # 1d7: 021005 + srli a4, a4, 7 # 1da: 404741 + add a0, a0, a4 # 1dd: 4a00 + sub a0, a0, a3 # 1df: 3000c0 + slli a0, a0, 16 # 1e2: 000011 + srai a0, a0, 16 # 1e5: 000031 + s16i a0, a12, 22 /* a0 -> [arg0+0x16] */ # 1e8: 025c0b + sub a0, a9, a0 # 1eb: 0009c0 + blt a8, a0, .Lbr013 # 1ee: 072808 + s16i a3, a6, 2 # 1f1: 325601 + s8i a7, a12, 12 /* 0x00 -> [arg0+0xc] */ # 1f4: 724c0c + j .Lbr014 # 1f7: 860000 +.Lbr013: s16i a0, a6, 2 # 1fa: 025601 +.Lbr014: l32i a0, a14, 32 # 1fd: 088e + movi a8, 0 /* 0x00000000 */ # 1ff: 0c08 + l32i a2, a0, 0 # 201: 2800 + movi a5, 0 /* 0x00000000 */ # 203: 0c05 + srli a2, a2, 6 # 205: 202641 +.Lbr015: movi a9, 256 /* 0x00000100 */ # 208: 92a100 + and a3, a2, a9 # 20b: 903210 + beqz a5, .Lbr016 # 20e: ac35 + s32i a8, sp, 36 /* a8 -> [(local9)] */ # 210: 8991 + s32i a7, sp, 40 /* a7 -> [(local10)] */ # 212: 79a1 + s32i a6, sp, 44 /* a6 -> [(local11)] */ # 214: 69b1 + bbci a2, 8, .Lbr016 # 216: 87621b + l8ui a2, a0, 8 # 219: 220008 + call0 RC_GetAckTime # 21c: 01c2ffc0 + # 220: 0000 + l32i a6, sp, 44 /* [(local11)] */ # 222: 68b1 + l32i a7, sp, 40 /* [(local10)] */ # 224: 78a1 + l32i a0, a14, 32 # 226: 088e + l32i a8, sp, 36 /* [(local9)] */ # 228: 8891 + l32i a2, a0, 0 # 22a: 2800 + movi a3, 256 /* 0x00000100 */ # 22c: 32a100 + srli a2, a2, 6 # 22f: 202641 + and a3, a2, a3 # 232: 303210 +.Lbr016: movi a4, 1026 /* 0x00000402 */ # 235: 42a402 + bany a2, a4, .Lbr017 # 238: 47820b + extui a5, a2, 22, 1 # 23b: 205605 + beqz a5, .Lbr035 # 23e: 16a518 + extui a9, a2, 19, 1 # 241: 209305 + bnez a9, .Lbr035 # 244: 564918 +.Lbr017: movi a5, 0 /* 0x00000000 */ # 247: 0c05 + j .Lbr019 # 249: 460200 +.Lbr018: extui a11, a2, 19, 1 # 24c: 20b305 + l32i a5, sp, 16 /* [(local4)] */ # 24f: 5841 + movi a10, 2 /* 0x00000002 */ # 251: 0c2a + movnez a5, a10, a11 # 253: b05a93 +.Lbr019: movi a11, 0x0003ffff # 256: b1a8ff + l32i a9, a14, 4 # 259: 981e + l16ui a10, a6, 2 # 25b: a21601 + l16si a14, a12, 20 /* [arg0+0x14] */ # 25e: e29c0a + extui a6, a5, 0, 3 # 261: 506024 + slli a6, a6, 24 # 264: 806601 + slli a10, a10, 16 # 267: 00aa11 + and a9, a9, a11 # 26a: b09910 + l32i a11, sp, 12 /* [(local3)] */ # 26d: b831 + movi a5, 0x3ff20a00 # 26f: 51a3ff + extui a11, a11, 0, 12 # 272: b0b0b4 + beqz a13, .Lbr037 # 275: 163d16 + movi a12, 0x01000000 # 278: c1a2ff + bbci a2, 9, .Lbr020 # 27b: 976201 + bnez a8, .Lbr021 # 27e: cc38 +.Lbr020: movi a13, 0 /* 0x00000000 */ # 280: 0c0d + j .Lbr022 # 282: 860000 +.Lbr021: movi a13, 0x10000000 # 285: d19fff +.Lbr022: beqz a3, .Lbr036 # 288: 16b314 + beqz a8, .Lbr036 # 28b: 168814 + movi a3, 0x08000000 # 28e: 319eff +.Lbr023: bgei a14, 1, .Lbr024 # 291: e61e0c + l32i a8, sp, 4 /* [(local1)] */ # 294: 8811 + extui a8, a8, 0, 8 # 296: 808074 + bnez a8, .Lbr024 # 299: cc48 + l8ui a14, a0, 8 # 29b: e20008 + bltui a14, 16, .Lbr025 # 29e: b6be04 +.Lbr024: movi a2, 0 /* 0x00000000 */ # 2a1: 0c02 + j .Lbr026 # 2a3: 860000 +.Lbr025: movi a2, 0x00400000 # 2a6: 2199ff +.Lbr026: or a8, a13, a3 # 2a9: 308d20 + or a14, a2, a9 # 2ac: 90e220 + or a8, a6, a8 # 2af: 808620 + mov a2, a12 /* 0x01000000 */ # 2b2: 2d0c + or a8, a8, a14 # 2b4: e08820 + memw # 2b7: c02000 + s32i a8, a5, 0x2dc /* a8 -> [0x3ff20cdc] */ # 2ba: 8265b7 + memw # 2bd: c02000 + s32i a10, a5, 0x2e8 /* a10 -> [0x3ff20ce8] */ # 2c0: a265ba + l8ui a6, a0, 12 # 2c3: 62000c + l8ui a3, a0, 8 # 2c6: 320008 + slli a6, a6, 16 # 2c9: 006611 + extui a9, a3, 0, 4 # 2cc: 309034 + slli a9, a9, 12 # 2cf: 409911 + or a9, a11, a9 # 2d2: 909b20 + bgeui a3, 16, .Lbr027 # 2d5: f6b301 + mov a2, a7 # 2d8: 2d07 +.Lbr027: or a10, a2, a6 # 2da: 60a220 + or a9, a9, a10 # 2dd: a09920 + memw # 2e0: c02000 + s32i a9, a5, 0x2e0 /* a9 -> [0x3ff20ce0] */ # 2e3: 9265b8 + l8ui a3, a0, 8 # 2e6: 320008 + movi a2, 135 /* 0x00000087 */ # 2e9: 22a087 + bgeui a3, 16, .Lbr028 # 2ec: f6b302 + j .Lbr034 # 2ef: 063300 +.Lbr028: movi a10, 8 /* 0x00000008 */ # 2f2: 0c8a + l32i a11, a0, 0 # 2f4: b800 + l32i a14, sp, 12 /* [(local3)] */ # 2f6: e831 + addi a0, a3, -16 # 2f8: 02c3f0 + slli a14, a14, 8 # 2fb: 80ee11 + extui a12, a0, 0, 3 # 2fe: 00c024 + extui a11, a11, 28, 1 # 301: b0bc05 + movnez a7, a10, a11 # 304: b07a93 + mov a6, a7 # 307: 6d07 + or a12, a12, a14 # 309: e0cc20 + bgei a0, 8, .Lbr029 # 30c: e68001 + movi a2, 7 /* 0x00000007 */ # 30f: 0c72 +.Lbr029: or a13, a2, a6 # 311: 60d220 + slli a13, a13, 24 # 314: 80dd01 + or a12, a12, a13 # 317: d0cc20 + memw # 31a: c02000 + s32i a12, a5, 0x2e4 /* a12 -> [0x3ff20ce4] */ # 31d: c265b9 + j .Lbr034 # 320: c62600 +.Lbr030: movi a3, 0x00400000 # 323: 317bff +.Lbr031: movi a2, 0x01000000 # 326: 217bff + or a4, a13, a8 # 329: 804d20 + or a14, a3, a9 # 32c: 90e320 + or a4, a6, a4 # 32f: 404620 + l8ui a6, a12, 4 /* [arg0+0x4] */ # 332: 620c04 + movi a8, -24 /* 0xffffffe8 */ # 335: 6c88 + mul16s a6, a8, a6 # 337: 6068d1 + or a4, a4, a14 # 33a: e04420 + add a6, a6, a5 # 33d: 5a66 + memw # 33f: c02000 + s32i a4, a6, 0x3c4 # 342: 4266f1 + l8ui a3, a12, 4 /* [arg0+0x4] */ # 345: 320c04 + mul16s a3, a8, a3 # 348: 3038d1 + add a3, a3, a5 # 34b: 5a33 + memw # 34d: c02000 + s32i a10, a3, 0x3d0 # 350: a263f4 + l8ui a3, a0, 8 # 353: 320008 + l8ui a6, a0, 12 # 356: 62000c + l8ui a14, a12, 4 /* [arg0+0x4] */ # 359: e20c04 + slli a6, a6, 16 # 35c: 006611 + mul16s a8, a8, a14 # 35f: e088d1 + add a8, a8, a5 # 362: 5a88 + bgeui a3, 16, .Lbr032 # 364: f6b301 + mov a2, a7 # 367: 2d07 +.Lbr032: or a10, a2, a6 # 369: 60a220 + extui a9, a3, 0, 4 # 36c: 309034 + slli a9, a9, 12 # 36f: 409911 + or a9, a11, a9 # 372: 909b20 + or a9, a9, a10 # 375: a09920 + memw # 378: c02000 + s32i a9, a8, 0x3c8 # 37b: 9268f2 + l8ui a3, a0, 8 # 37e: 320008 + bltui a3, 16, .Lbr034 # 381: b6b33a + movi a2, 135 /* 0x00000087 */ # 384: 22a087 + movi a13, 8 /* 0x00000008 */ # 387: 0c8d + l8ui a11, a12, 4 /* [arg0+0x4] */ # 389: b20c04 + movi a10, -24 /* 0xffffffe8 */ # 38c: 6c8a + l32i a14, a0, 0 # 38e: e800 + addi a0, a3, -16 # 390: 02c3f0 + extui a14, a14, 28, 1 # 393: e0ec05 + mul16s a10, a10, a11 # 396: b0aad1 + movnez a7, a13, a14 # 399: e07d93 + mov a6, a7 # 39c: 6d07 + add a5, a10, a5 # 39e: 5a5a + bgei a0, 8, .Lbr033 # 3a0: e68001 + movi a2, 7 /* 0x00000007 */ # 3a3: 0c72 +.Lbr033: extui a3, a0, 0, 3 # 3a5: 003024 + l32i a7, sp, 12 /* [(local3)] */ # 3a8: 7831 + or a4, a2, a6 # 3aa: 604220 + slli a4, a4, 24 # 3ad: 804401 + slli a7, a7, 8 # 3b0: 807711 + or a3, a3, a7 # 3b3: 703320 + or a3, a3, a4 # 3b6: 403320 + memw # 3b9: c02000 + s32i a3, a5, 0x3cc # 3bc: 3265f3 +.Lbr034: l32i a12, sp, 24 /* [(local6)] */ # 3bf: c861 + l32i a13, sp, 28 /* [(local7)] */ # 3c1: d871 + l32i a14, sp, 32 /* [(local8)] */ # 3c3: e881 + l32i a0, sp, 20 /* [(local5)] */ # 3c5: 0851 + addi sp, sp, 48 /* (top of frame) */ # 3c7: 12c130 + ret # 3ca: 0df0 +.Lbr035: extui a9, a2, 20, 1 # 3cc: 209405 + beqz a9, .Lbr018 # 3cf: 1699e7 + movi a5, 3 /* 0x00000003 */ # 3d2: 0c35 + j .Lbr019 # 3d4: 869fff +.Lbr036: movi a3, 0 /* 0x00000000 */ # 3d7: 0c03 + j .Lbr023 # 3d9: 06adff +.Lbr037: bbci a2, 9, .Lbr038 # 3dc: 976201 + bnez a8, .Lbr039 # 3df: cc38 +.Lbr038: movi a13, 0 /* 0x00000000 */ # 3e1: 0c0d + j .Lbr040 # 3e3: 860000 +.Lbr039: movi a13, 0x10000000 # 3e6: d14cff +.Lbr040: beqz a3, .Lbr043 # 3e9: 9cb3 + beqz a8, .Lbr043 # 3eb: 9c98 + movi a8, 0x08000000 # 3ed: 814bff +.Lbr041: bgei a14, 1, .Lbr042 # 3f0: e61e0f + l32i a14, sp, 4 /* [(local1)] */ # 3f3: e811 + extui a14, a14, 0, 8 # 3f5: e0e074 + bnez a14, .Lbr042 # 3f8: cc7e + l8ui a2, a0, 8 # 3fa: 220008 + bgeui a2, 16, .Lbr042 # 3fd: f6b202 + j .Lbr030 # 400: c6c7ff +.Lbr042: movi a3, 0 /* 0x00000000 */ # 403: 0c03 + j .Lbr031 # 405: 46c7ff +.Lbr043: movi a8, 0 /* 0x00000000 */ # 408: 0c08 + j .Lbr041 # 40a: 86f8ff +.Lbr044: l16ui a4, a12, 24 /* [arg0+0x18] */ # 40d: 421c0c + beqz a4, .Lbr052 # 410: 164407 + s16i a3, a6, 2 # 413: 325601 + l32i a0, a14, 32 # 416: 088e + mov a2, a3 # 418: 2d03 + l32i a9, a0, 0 # 41a: 9800 + s32i a3, sp, 0 /* a3 -> [(local0)] */ # 41c: 3901 + bbsi a9, 16, .Lbr046 # 41e: 07f92a + bbsi a9, 7, .Lbr046 # 421: 77e927 + s32i a7, sp, 40 /* 0x00000000 -> [(local10)] */ # 424: 79a1 + s32i a6, sp, 44 /* a6 -> [(local11)] */ # 426: 69b1 + bbci a9, 28, .Lbr045 # 428: c77906 + s32i a7, sp, 40 /* 0x00000000 -> [(local10)] */ # 42b: 79a1 + s32i a6, sp, 44 /* a6 -> [(local11)] */ # 42d: 69b1 + bbci a9, 25, .Lbr046 # 42f: 977919 +.Lbr045: l32i a3, sp, 0 /* [(local0)] */ # 432: 3801 + l8ui a2, a0, 0 # 434: 220000 + l16ui a4, a12, 24 /* [arg0+0x18] */ # 437: 421c0c + extui a2, a2, 2, 4 # 43a: 202234 + call0 ppCalTxop # 43d: 013affc0 + # 441: 0000 + l32i a7, sp, 40 /* [(local10)] */ # 443: 78a1 + l32i a6, sp, 44 /* [(local11)] */ # 445: 68b1 + l32i a0, a14, 32 # 447: 088e + s16i a2, a6, 2 /* a2 -> [[(local11)]+0x2] */ # 449: 225601 +.Lbr046: l32i a4, sp, 0 /* [(local0)] */ # 44c: 4801 + extui a4, a4, 0, 16 # 44e: 4040f4 + bgeu a4, a2, .Lbr047 # 451: 27b40f + s16i a2, a12, 20 /* a2 -> [arg0+0x14] */ # 454: 225c0a + l32i a5, sp, 16 /* [(local4)] */ # 457: 5841 + s16i a7, a12, 22 /* a7 -> [arg0+0x16] */ # 459: 725c0b + s8i a5, a12, 12 /* [(local4)] -> [arg0+0xc] */ # 45c: 524c0c + movi a5, 1 /* 0x00000001 */ # 45f: 0c15 + j .Lbr048 # 461: 060100 +.Lbr047: s16i a7, a12, 20 /* a7 -> [arg0+0x14] */ # 464: 725c0a + movi a5, 0 /* 0x00000000 */ # 467: 0c05 +.Lbr048: l32i a2, a0, 0 # 469: 2800 + srli a2, a2, 6 # 46b: 202641 + j .Lbr051 # 46e: 460400 +.Lbr049: l8ui a4, a0, 8 # 471: 420008 + bltui a4, 16, .Lbr050 # 474: b6b409 + l32i a0, a14, 32 # 477: 088e + l32i a2, a0, 0 # 479: 2800 + s16i a3, a6, 2 # 47b: 325601 + srli a2, a2, 6 # 47e: 202641 +.Lbr050: movi a5, 0 /* 0x00000000 */ # 481: 0c05 +.Lbr051: movi a8, 1 /* 0x00000001 */ # 483: 0c18 + j .Lbr015 # 485: c65fff +.Lbr052: beqz a10, .Lbr049 # 488: 165afe + s32i a3, sp, 8 /* a3 -> [(local2)] */ # 48b: 3921 + s32i a7, sp, 40 /* 0x00000000 -> [(local10)] */ # 48d: 79a1 + s32i a6, sp, 44 /* a6 -> [(local11)] */ # 48f: 69b1 + bbsi a2, 6, .Lbr049 # 491: 67e2dc + l8ui a2, a0, 0 # 494: 220000 + extui a2, a2, 2, 4 # 497: 202234 + call0 ppGetTxQFirstAvail_Locked # 49a: 0124ffc0 + # 49e: 0000 + l32i a6, sp, 44 /* [(local11)] */ # 4a0: 68b1 + l32i a3, sp, 8 /* [(local2)] */ # 4a2: 3821 + s32i a3, sp, 0 /* [(local2)] -> [(local0)] */ # 4a4: 3901 + s16i a3, a6, 2 /* [(local2)] -> [[(local11)]+0x2] */ # 4a6: 325601 + bnez a2, .Lbr053 # 4a9: cc32 + movi a5, 0 /* 0x00000000 */ # 4ab: 0c05 + j .Lbr054 # 4ad: c60200 +.Lbr053: l32i a4, a2, 32 # 4b0: 4882 + l16ui a4, a4, 10 # 4b2: 421405 + movi a5, 1 /* 0x00000001 */ # 4b5: 0c15 + add a4, a4, a3 # 4b7: 3a44 + s16i a4, a6, 2 /* a4 -> [[(local11)]+0x2] */ # 4b9: 425601 +.Lbr054: l32i a7, sp, 40 /* [(local10)] */ # 4bc: 78a1 + l32i a0, a14, 32 # 4be: 088e + j .Lbr048 # 4c0: 46e9ff + + .literal_position # 4c4: 00000000 + # 4c8: 00feef3f + # 4cc: 00000000 + # 4d0: 30000000 + # 4d4: 00000000 + # 4d8: 00000000 + +# Function @ .text+0x4dc +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word @ -0x10 +# (local5): word @ -0xc +# (local6): word[2] @ -0x8 + .balign 4 + .global lmacSetAcParam + .type lmacSetAcParam, @function +lmacSetAcParam: + addi sp, sp, -32 /* (local0) */ # 4dc: 12c1e0 + s32i a2, sp, 16 /* arg0 -> [(local4)] */ # 4df: 2941 + s32i a3, sp, 20 /* arg1 -> [(local5)] */ # 4e1: 3951 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 4e3: c911 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 4e5: d921 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 4e7: 0901 + s32i a14, sp, 12 /* a14 -> [(local3)] */ # 4e9: e931 + movi a0, -32 /* 0xffffffe0 */ # 4eb: 6c00 + movi a14, 0x3feffe00 # 4ed: e1f6ff + mov a13, a4 /* arg2 */ # 4f0: dd04 + mov a12, a5 /* arg3 */ # 4f2: cd05 + movi a5, NMIIrqIsOn # 4f4: 51f4ff + mov a4, a6 /* arg4 */ # 4f7: 4d06 + l8ui a5, a5, 0 /* [NMIIrqIsOn] */ # 4f9: 520500 + s32i a4, sp, 24 /* arg4 -> [(local6)] */ # 4fc: 4961 + bnez a5, .Lbr056 # 4fe: eca5 + call0 vPortEnterCritical # 500: 01f5ffc0 + # 504: 0000 + movi a0, -32 /* 0xffffffe0 */ # 506: 6c00 +.Lbr055: memw # 508: c02000 + l32i a8, a14, 0x200 /* [0x3ff00000] */ # 50b: 822e80 + and a8, a8, a0 # 50e: 008810 + memw # 511: c02000 + s32i a8, a14, 0x200 /* a8 -> [0x3ff00000] */ # 514: 826e80 + memw # 517: c02000 + l32i a7, a14, 0x200 /* [0x3ff00000] */ # 51a: 722e80 + bbsi a7, 0, .Lbr055 # 51d: 07e7e7 + l32i a4, sp, 24 /* [(local6)] */ # 520: 4861 + l32i a3, sp, 20 /* [(local5)] */ # 522: 3851 + movi a5, NMIIrqIsOn # 524: 51eaff + l32i a2, sp, 16 /* [(local4)] */ # 527: 2841 + l8ui a5, a5, 0 /* [NMIIrqIsOn] */ # 529: 520500 +.Lbr056: movi a6, .Label001 # 52c: 61e9ff + addx8 a2, a2, a2 # 52f: 2022b0 + addx4 a2, a2, a6 # 532: 6022a0 + s8i a13, a2, 7 # 535: d24207 + s8i a3, a2, 5 # 538: 324205 + l8ui a3, a2, 6 # 53b: 320206 + s8i a12, a2, 8 # 53e: c24208 + bltu a12, a3, .Lbr057 # 541: 373c04 + bgeu a3, a13, .Lbr058 # 544: d7b304 + mov a12, a13 /* arg2 */ # 547: cd0d +.Lbr057: s8i a12, a2, 6 # 549: c24206 +.Lbr058: s16i a4, a2, 24 # 54c: 42520c + bnez a5, .Lbr059 # 54f: dc85 + memw # 551: c02000 + l32i a7, a14, 0x200 /* [0x3ff00000] */ # 554: 722e80 + movi a8, 1 /* 0x00000001 */ # 557: 0c18 + and a7, a7, a0 # 559: 007710 + or a7, a7, a8 # 55c: 807720 + memw # 55f: c02000 + s32i a7, a14, 0x200 /* a7 -> [0x3ff00000] */ # 562: 726e80 + call0 vPortExitCritical # 565: 01dcffc0 + # 569: 0000 +.Lbr059: l32i a12, sp, 4 /* [(local1)] */ # 56b: c811 + l32i a13, sp, 8 /* [(local2)] */ # 56d: d821 + l32i a14, sp, 12 /* [(local3)] */ # 56f: e831 + l32i a0, sp, 0 /* [(local0)] */ # 571: 0801 + addi sp, sp, 32 /* (top of frame) */ # 573: 12c120 + ret # 576: 0df0 + + .literal_position # 578: 00000000 + # 57c: 00000000 + # 580: 08000000 + # 584: 00000000 + # 588: 08000000 + # 58c: 00000000 + # 590: 00000000 + # 594: 08000000 + # 598: 00000000 + # 59c: 00000000 + # 5a0: 00000000 + # 5a4: 78060000 + +# Function @ .text+0x5a8 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global lmacProcessTXStartData + .type lmacProcessTXStartData, @function +lmacProcessTXStartData: + addi a3, a2, -10 /* arg0-0xa */ # 5a8: 32c2f6 + addi sp, sp, -16 /* (local0) */ # 5ab: 12c1f0 + movi a4, .Ldata001 # 5ae: 41f2ff + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 5b1: 0911 + l8ui a0, a4, 0 /* [.Ldata001] */ # 5b3: 020400 + mov a5, a2 /* arg0 */ # 5b6: 5d02 + moveqz a5, a0, a3 # 5b8: 305083 + extui a0, a5, 0, 8 # 5bb: 500074 + bltui a0, 8, .Lbr061 # 5be: b68011 + movi a2, .Lstr001 # 5c1: 21eeff + movi a3, .Lstr002 # 5c4: 31efff + movi a4, 568 /* 0x00000238 */ # 5c7: 42a238 + call0 printf # 5ca: 01f3ffc0 + # 5ce: 0000 +.Lbr060: j .Lbr060 /* (halt) */ # 5d0: 06ffff +.Lbr061: addi a3, a4, 48 /* .Label001 */ # 5d3: 32c430 + addx8 a0, a0, a0 # 5d6: 0000b0 + addx4 a0, a0, a3 # 5d9: 3000a0 + l8ui a6, a0, 17 # 5dc: 620011 + beqi a6, 1, .Lbr063 # 5df: 261611 + movi a2, .Lstr001 # 5e2: 21e8ff + movi a3, .Lstr002 # 5e5: 31e8ff + movi a4, 576 /* 0x00000240 */ # 5e8: 42a240 + call0 printf # 5eb: 01ecffc0 + # 5ef: 0000 +.Lbr062: j .Lbr062 /* (halt) */ # 5f1: 06ffff +.Lbr063: s8i a5, a4, 0 /* a5 -> [.Ldata001] */ # 5f4: 524400 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 5f7: 0901 + bnei a2, 10, .Lbr064 # 5f9: 669212 + mov a2, a0 # 5fc: 2d00 + mov a3, a4 /* .Ldata001 */ # 5fe: 3d04 + l8ui a3, a3, 44 /* [.Ldata012] */ # 600: 32032c + call0 .Lfunc002 # 603: c5a9ff + l32i a0, sp, 0 /* [(local0)] */ # 606: 0801 + movi a5, .Ldata001 # 608: 51e1ff + movi a4, 0 /* 0x00000000 */ # 60b: 0c04 + s32i a4, a5, 36 /* 0x00000000 -> [.Ldata010] */ # 60d: 4995 +.Lbr064: l32i a6, a0, 0 # 60f: 6800 + bnez a6, .Lbr066 # 611: dc06 + movi a2, .Lstr001 # 613: 21dfff + movi a3, .Lstr002 # 616: 31dfff + movi a4, 584 /* 0x00000248 */ # 619: 42a248 + call0 printf # 61c: 01e1ffc0 + # 620: 0000 +.Lbr065: j .Lbr065 /* (halt) */ # 622: 06ffff +.Lbr066: mov a2, a0 # 625: 2d00 + movi a7, 2 /* 0x00000002 */ # 627: 0c27 + s8i a7, a0, 17 # 629: 724011 + call0 .Lfunc005 # 62c: 01deffc0 + # 630: 0000 + call0 lmacProcessCollisions # 632: 050000 + l32i a0, sp, 4 /* [(local1)] */ # 635: 0811 + addi sp, sp, 16 /* (top of frame) */ # 637: 12c110 + ret # 63a: 0df0 + + .literal_position # 63c: 00000000 + # 640: 08000000 + # 644: 00000000 + # 648: 00000000 + # 64c: 08000000 + # 650: 00000000 + # 654: 08000000 + # 658: 00000000 + # 65c: 00000000 + # 660: 00000000 + # 664: 00000000 + # 668: 00000000 + # 66c: 00000000 + # 670: 00000000 + # 674: 00000000 + +# Function @ .text+0x678 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 +.Lfunc005: addi sp, sp, -16 /* (local0) */ # 678: 12c1f0 + s32i a12, sp, 8 /* a12 -> [(local2)] */ # 67b: c921 + mov a12, a2 /* arg0 */ # 67d: cd02 + l32i a2, a2, 0 /* [arg0] */ # 67f: 2802 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 681: 0911 + bnez a2, .Lbr068 # 683: dc02 + movi a2, .Lstr001 # 685: 21edff + movi a3, .Lstr002 # 688: 31eeff + movi a4, 607 /* 0x0000025f */ # 68b: 42a25f + call0 printf # 68e: 01f4ffc0 + # 692: 0000 +.Lbr067: j .Lbr067 /* (halt) */ # 694: 06ffff +.Lbr068: movi a4, .Ldata001 # 697: 41ebff + l32i a0, a4, 40 /* [.Ldata011] */ # 69a: 08a4 + l32i a3, a4, 36 /* [.Ldata010] */ # 69c: 3894 + beqz a0, .Lbr070 # 69e: 9c00 + movi a2, .Lstr001 # 6a0: 21eaff + movi a3, .Lstr002 # 6a3: 31eaff + movi a4, 608 /* 0x00000260 */ # 6a6: 42a260 + call0 printf # 6a9: 01eeffc0 + # 6ad: 0000 +.Lbr069: j .Lbr069 /* (halt) */ # 6af: 06ffff +.Lbr070: beqz a3, .Lbr072 # 6b2: 9c03 + movi a2, .Lstr001 # 6b4: 21e7ff + movi a3, .Lstr002 # 6b7: 31e7ff + movi a4, 609 /* 0x00000261 */ # 6ba: 42a261 + call0 printf # 6bd: 01eaffc0 + # 6c1: 0000 +.Lbr071: j .Lbr071 /* (halt) */ # 6c3: 06ffff +.Lbr072: s32i a2, a4, 40 /* [arg0] -> [.Ldata011] */ # 6c6: 29a4 + l32i a0, a2, 32 /* [[arg0]+0x20] */ # 6c8: 0882 + movi a6, 0 /* 0x00000000 */ # 6ca: 0c06 + l32i a5, a0, 0 /* [[[arg0]+0x20]] */ # 6cc: 5800 + s32i a6, a12, 0 /* 0x00000000 -> [arg0] */ # 6ce: 690c + bbsi a5, 28, .Lbr077 # 6d0: c7f567 + s32i a2, sp, 0 /* [arg0] -> [(local0)] */ # 6d3: 2901 + l8ui a7, a12, 11 /* [arg0+0xb] */ # 6d5: 720c0b + l16ui a10, a12, 24 /* [arg0+0x18] */ # 6d8: a21c0c + bnez a7, .Lbr073 # 6db: cc97 + l16si a8, a12, 20 /* [arg0+0x14] */ # 6dd: 829c0a + blti a8, 1, .Lbr073 # 6e0: a61804 + movi a9, 1 /* 0x00000001 */ # 6e3: 0c19 + s8i a9, a12, 13 /* 0x01 -> [arg0+0xd] */ # 6e5: 924c0d +.Lbr073: beqz a10, .Lbr078 # 6e8: 168a05 + l8ui a11, a12, 11 /* [arg0+0xb] */ # 6eb: b20c0b + l8ui a2, a12, 12 /* [arg0+0xc] */ # 6ee: 220c0c + beqz a11, .Lbr074 # 6f1: 8c0b + bnez a2, .Lbr075 # 6f3: cc42 +.Lbr074: l8ui a3, a12, 13 /* [arg0+0xd] */ # 6f5: 320c0d + beqz a3, .Lbr078 # 6f8: 168304 +.Lbr075: l8ui a2, a0, 0 /* [[[arg0]+0x20]] */ # 6fb: 220000 + extui a2, a2, 2, 4 # 6fe: 202234 + call0 ppFetchTxQFirstAvail # 701: 01daffc0 + # 705: 0000 + l32i a0, sp, 0 /* [(local0)] */ # 707: 0801 + l32i a0, a0, 32 /* [[(local0)]+0x20] */ # 709: 0880 + beqz a2, .Lbr078 # 70b: bc52 + l32i a4, a0, 0 /* [[[(local0)]+0x20]] */ # 70d: 4800 + srli a5, a4, 6 # 70f: 405641 + bbsi a4, 16, .Lbr076 # 712: 07f419 + bbsi a4, 7, .Lbr076 # 715: 77e416 + movi a3, .Ldata001 # 718: 31d0ff + s32i a2, a3, 36 /* a2 -> [.Ldata010] */ # 71b: 2993 + mov a2, a12 /* arg0 */ # 71d: 2d0c + movi a3, 1 /* 0x00000001 */ # 71f: 0c13 + call0 .Lfunc003 # 721: 859bff + mov a2, a12 /* arg0 */ # 724: 2d0c + movi a3, 212 /* 0x000000d4 */ # 726: 32a0d4 + call0 .Lfunc001 # 729: c591ff + j .Lbr077 # 72c: c60200 +.Lbr076: bbci a5, 5, .Lbr079 # 72f: 57653f + l8ui a4, a0, 4 /* [[[(local0)]+0x20]+0x4] */ # 732: 420004 + srli a4, a4, 4 # 735: 404441 + bgei a4, 2, .Lbr079 # 738: e62436 +.Lbr077: l32i a12, sp, 8 /* [(local2)] */ # 73b: c821 + l32i a0, sp, 4 /* [(local1)] */ # 73d: 0811 + addi sp, sp, 16 /* (top of frame) */ # 73f: 12c110 + ret # 742: 0df0 +.Lbr078: l32i a4, a0, 0 # 744: 4800 + bbci a4, 13, .Lbr077 # 746: d764f1 + bbsi a4, 12, .Lbr077 # 749: c7e4ee + l8ui a2, a0, 0 # 74c: 220000 + extui a2, a2, 2, 4 # 74f: 202234 + call0 ppFetchTxQFirstAvail # 752: 01c7ffc0 + # 756: 0000 + beqz a2, .Lbr077 # 758: 16f2fd + movi a3, .Ldata001 # 75b: 31c0ff + s32i a2, a3, 36 /* a2 -> [.Ldata010] */ # 75e: 2993 + mov a2, a12 /* arg0 */ # 760: 2d0c + movi a3, 1 /* 0x00000001 */ # 762: 0c13 + call0 .Lfunc003 # 764: 4597ff + mov a2, a12 /* arg0 */ # 767: 2d0c + movi a3, 212 /* 0x000000d4 */ # 769: 32a0d4 + call0 .Lfunc001 # 76c: 858dff + j .Lbr077 # 76f: 06f2ff +.Lbr079: s32i a2, a12, 0 /* a2 -> [arg0] */ # 772: 290c + movi a3, 0 /* 0x00000000 */ # 774: 0c03 + mov a2, a12 /* arg0 */ # 776: 2d0c + call0 .Lfunc003 # 778: 0596ff + l8ui a2, a12, 4 /* [arg0+0x4] */ # 77b: 220c04 + movi a3, 0 /* 0x00000000 */ # 77e: 0c03 + movi a4, 0 /* 0x00000000 */ # 780: 0c04 + call0 wDev_EnableTransmit # 782: 01bcffc0 + # 786: 0000 + j .Lbr077 # 788: c6ebff + + .literal_position # 78c: 00000000 + # 790: 08000000 + # 794: 00000000 + # 798: 00000000 + # 79c: 08000000 + # 7a0: 00000000 + # 7a4: 08000000 + # 7a8: 00000000 + # 7ac: 00000000 + # 7b0: 00000000 + # 7b4: 4c0b0000 + +# Function @ .text+0x7b8 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global lmacProcessTxSuccess + .type lmacProcessTxSuccess, @function +lmacProcessTxSuccess: + addi sp, sp, -16 /* (local0) */ # 7b8: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 7bb: c911 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 7bd: 0901 + mov a12, a3 /* arg1 */ # 7bf: cd03 + call0 lmacIsActive # 7c1: 050000 + bnez a2, .Lbr081 # 7c4: dc02 + movi a2, .Lstr001 # 7c6: 21f1ff + movi a3, .Lstr002 # 7c9: 31f1ff + movi a4, 668 /* 0x0000029c */ # 7cc: 42a29c + call0 printf # 7cf: 01f6ffc0 + # 7d3: 0000 +.Lbr080: j .Lbr080 /* (halt) */ # 7d5: 06ffff +.Lbr081: movi a2, .Ldata001 # 7d8: 21efff + l32i a0, a2, 40 /* [.Ldata011] */ # 7db: 08a2 + l8ui a4, a2, 0 /* [.Ldata001] */ # 7dd: 420200 + bnez a0, .Lbr083 # 7e0: dc00 + movi a2, .Lstr001 # 7e2: 21edff + movi a3, .Lstr002 # 7e5: 31edff + movi a4, 671 /* 0x0000029f */ # 7e8: 42a29f + call0 printf # 7eb: 01f0ffc0 + # 7ef: 0000 +.Lbr082: j .Lbr082 /* (halt) */ # 7f1: 06ffff +.Lbr083: l8ui a5, a2, 0 /* [.Ldata001] */ # 7f4: 520200 + addi a3, a2, 48 /* .Label001 */ # 7f7: 32c230 + addx8 a2, a4, a5 # 7fa: 5024b0 + addx4 a2, a2, a3 # 7fd: 3022a0 + l8ui a3, a2, 17 # 800: 320211 + beqi a3, 2, .Lbr085 # 803: 262311 + movi a2, .Lstr001 # 806: 21e6ff + movi a3, .Lstr002 # 809: 31e6ff + movi a4, 672 /* 0x000002a0 */ # 80c: 42a2a0 + call0 printf # 80f: 01e8ffc0 + # 813: 0000 +.Lbr084: j .Lbr084 /* (halt) */ # 815: 06ffff +.Lbr085: l32i a0, a0, 32 /* [[.Ldata011]+0x20] */ # 818: 0880 + movi a6, 0 /* 0x00000000 */ # 81a: 0c06 + l32i a3, a0, 0 /* [[[.Ldata011]+0x20]] */ # 81c: 3800 + movi a8, 1026 /* 0x00000402 */ # 81e: 82a402 + srli a7, a3, 6 # 821: 307641 + bany a7, a8, .Lbr086 # 824: 878705 + bbci a3, 28, .Lbr090 # 827: c77351 + bbsi a3, 25, .Lbr090 # 82a: 97f34e +.Lbr086: s8i a6, a2, 9 # 82d: 624209 + s8i a6, a2, 10 # 830: 62420a + movi a12, 127 /* 0x0000007f */ # 833: c2a07f + l8ui a9, a2, 7 # 836: 920207 + s8i a9, a2, 6 # 839: 924206 +.Lbr087: l32i a10, a0, 0 /* [[[.Ldata011]+0x20]] */ # 83c: a800 + s8i a12, a0, 9 /* a12 -> [[[.Ldata011]+0x20]+0x9] */ # 83e: c24009 + bbci a10, 11, .Lbr089 # 841: b76a2a + l8ui a5, a0, 4 /* [[[.Ldata011]+0x20]+0x4] */ # 844: 520004 + srli a3, a5, 4 # 847: 503441 + bgei a3, 2, .Lbr089 # 84a: e62321 + addi a12, a3, 1 # 84d: 1bc3 + extui a11, a5, 0, 4 # 84f: 50b034 + movi a3, 1 /* 0x00000001 */ # 852: 0c13 + extui a12, a12, 0, 4 # 854: c0c034 + slli a12, a12, 4 # 857: c0cc11 + or a11, a11, a12 # 85a: c0bb20 + s8i a11, a0, 4 /* a11 -> [[[.Ldata011]+0x20]+0x4] */ # 85d: b24004 + call0 .Lfunc012 # 860: 01d5ffc0 + # 864: 0000 +.Lbr088: l32i a12, sp, 4 /* [(local1)] */ # 866: c811 + l32i a0, sp, 0 /* [(local0)] */ # 868: 0801 + addi sp, sp, 16 /* (top of frame) */ # 86a: 12c110 + ret # 86d: 0df0 +.Lbr089: movi a3, 0 /* 0x00000000 */ # 86f: 0c03 + movi a0, 5 /* 0x00000005 */ # 871: 0c50 + s8i a0, a2, 17 # 873: 024211 + call0 .Lfunc012 # 876: 452d00 + j .Lbr088 # 879: 46faff +.Lbr090: l8ui a3, a2, 7 # 87c: 320207 + bbsi a7, 8, .Lbr091 # 87f: 87e708 + s8i a3, a2, 6 # 882: 324206 + s8i a6, a2, 9 # 885: 624209 + j .Lbr087 # 888: 06ecff +.Lbr091: s8i a3, a2, 6 # 88b: 324206 + s8i a6, a2, 9 # 88e: 624209 + s8i a6, a2, 10 # 891: 62420a + j .Lbr087 # 894: 06e9ff + + .literal_position # 898: 00000000 + +# Function @ .text+0x89c +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word @ -0x10 +# (local5): word[3] @ -0xc + .balign 4 +.Lfunc006: addi sp, sp, -32 /* (local0) */ # 89c: 12c1e0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 89f: 0901 + s32i a5, sp, 20 /* arg3 -> [(local5)] */ # 8a1: 5951 + s32i a15, sp, 16 /* a15 -> [(local4)] */ # 8a3: f941 + s32i a14, sp, 12 /* a14 -> [(local3)] */ # 8a5: e931 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 8a7: c911 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 8a9: d921 + mov a12, a3 /* arg1 */ # 8ab: cd03 + mov a13, a4 /* arg2 */ # 8ad: dd04 + mov a14, a2 /* arg0 */ # 8af: ed02 + mov a15, a5 /* arg3 */ # 8b1: fd05 +.Lbr092: l32i a3, a14, 32 /* [arg0+0x20] */ # 8b3: 388e + l32i a2, a12, 32 # 8b5: 288c + addi a3, a3, 1 /* [arg0+0x20]+0x1 */ # 8b7: 1b33 + s32i a3, a14, 32 /* [arg0+0x20]+0x1 -> [arg0+0x20] */ # 8b9: 398e + l32i a0, a2, 0 # 8bb: 0802 + s8i a13, a2, 15 # 8bd: d2420f + bbci a0, 13, .Lbr093 # 8c0: d7600c + bbsi a0, 12, .Lbr093 # 8c3: c7e009 + mov a2, a12 # 8c6: 2d0c + movi a3, 0 /* 0x00000000 */ # 8c8: 0c03 + call0 .Lfunc017 # 8ca: 45f300 + j .Lbr094 # 8cd: 860100 +.Lbr093: mov a3, a15 /* arg3 */ # 8d0: 3d0f + mov a2, a12 # 8d2: 2d0c + call0 .Lfunc017 # 8d4: 85f200 +.Lbr094: l32i a2, a12, 32 # 8d7: 288c + l32i a0, a2, 0 # 8d9: 0802 + bbci a0, 13, .Lbr095 # 8db: d76013 + bbsi a0, 12, .Lbr095 # 8de: c7e010 + l8ui a2, a2, 0 # 8e1: 220200 + extui a2, a2, 2, 4 # 8e4: 202234 + call0 ppDequeueTxQ # 8e7: 01ecffc0 + # 8eb: 0000 + mov a12, a2 # 8ed: cd02 + bnez a2, .Lbr092 # 8ef: 5602fc +.Lbr095: l32i a12, sp, 4 /* [(local1)] */ # 8f2: c811 + l32i a13, sp, 8 /* [(local2)] */ # 8f4: d821 + l32i a14, sp, 12 /* [(local3)] */ # 8f6: e831 + l32i a15, sp, 16 /* [(local4)] */ # 8f8: f841 + l32i a0, sp, 0 /* [(local0)] */ # 8fa: 0801 + addi sp, sp, 32 /* (top of frame) */ # 8fc: 12c120 + ret # 8ff: 0df0 + + .literal_position # 904: 30000000 + +# Function @ .text+0x908 + .balign 4 + .global GetAccess + .type GetAccess, @function +GetAccess: movi a3, .Label001 # 908: 31ffff + addx8 a2, a2, a2 # 90b: 2022b0 + addx4 a2, a2, a3 # 90e: 3022a0 + ret # 911: 0df0 + + .balign 4 +# Function @ .text+0x914 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global lmacDiscardAgedMSDU + .type lmacDiscardAgedMSDU, @function +lmacDiscardAgedMSDU: + mov a5, a4 /* arg2 */ # 914: 5d04 + addi sp, sp, -16 /* (local0) */ # 916: 12c1f0 + movi a4, 4 /* 0x00000004 */ # 919: 0c44 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 91b: 0901 + call0 .Lfunc006 # 91d: c5f7ff + l32i a0, sp, 0 /* [(local0)] */ # 920: 0801 + addi sp, sp, 16 /* (top of frame) */ # 922: 12c110 + ret # 925: 0df0 + + .balign 4 +# Function @ .text+0x928 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global lmacRecycleMPDU + .type lmacRecycleMPDU, @function +lmacRecycleMPDU: + mov a6, a2 /* arg0 */ # 928: 6d02 + addi sp, sp, -16 /* (local0) */ # 92a: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 92d: 0901 + mov a2, a3 /* arg1 */ # 92f: 2d03 + movi a0, 1 /* 0x00000001 */ # 931: 0c10 + mov a3, a4 /* arg2 */ # 933: 3d04 + l32i a5, a6, 28 /* [arg0+0x1c] */ # 935: 5876 + l32i a4, a2, 32 /* [arg1+0x20] */ # 937: 4882 + addi a5, a5, 1 /* [arg0+0x1c]+0x1 */ # 939: 1b55 + s32i a5, a6, 28 /* [arg0+0x1c]+0x1 -> [arg0+0x1c] */ # 93b: 5976 + s8i a0, a4, 15 /* 0x01 -> [[arg1+0x20]+0xf] */ # 93d: 02440f + call0 .Lfunc017 # 940: c5eb00 + l32i a0, sp, 0 /* [(local0)] */ # 943: 0801 + addi sp, sp, 16 /* (top of frame) */ # 945: 12c110 + ret # 948: 0df0 + + .literal_position # 94c: 00000000 + # 950: 08000000 + # 954: 00000000 + # 958: 00000000 + # 95c: 00000000 + # 960: 00000000 + +# Function @ .text+0x964 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 +.Lfunc007: addi sp, sp, -16 /* (local0) */ # 964: 12c1f0 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 967: 0911 + l8ui a3, a2, 17 /* [arg0+0x11] */ # 969: 320211 + l32i a0, a2, 0 /* [arg0] */ # 96c: 0802 + beqi a3, 6, .Lbr097 # 96e: 266311 + movi a2, .Lstr001 # 971: 21f6ff + movi a3, .Lstr002 # 974: 31f7ff + movi a4, 744 /* 0x000002e8 */ # 977: 42a2e8 + call0 printf # 97a: 01f7ffc0 + # 97e: 0000 +.Lbr096: j .Lbr096 /* (halt) */ # 980: 06ffff +.Lbr097: movi a5, 0 /* 0x00000000 */ # 983: 0c05 + s8i a5, a2, 17 /* 0x00 -> [arg0+0x11] */ # 985: 524211 + l32i a6, a0, 32 /* [[arg0]+0x20] */ # 988: 6880 + s32i a0, sp, 0 /* [arg0] -> [(local0)] */ # 98a: 0901 + l32i a4, a6, 0 /* [[[arg0]+0x20]] */ # 98c: 4806 + s32i a5, a2, 0 /* 0x00000000 -> [arg0] */ # 98e: 5902 + bbci a4, 27, .Lbr098 # 990: b7742b + l8ui a2, a6, 0 /* [[[arg0]+0x20]] */ # 993: 220600 + l8ui a3, a6, 4 /* [[[arg0]+0x20]+0x4] */ # 996: 320604 + extui a2, a2, 2, 4 # 999: 202234 + srli a3, a3, 4 # 99c: 303441 + addi a3, a3, 2 # 99f: 2b33 + extui a3, a3, 0, 8 # 9a1: 303074 + call0 ppRecordBarRRC # 9a4: 01eeffc0 + # 9a8: 0000 + l32i a3, sp, 0 /* [(local0)] */ # 9aa: 3801 + l32i a3, a3, 32 /* [[(local0)]+0x20] */ # 9ac: 3883 + l8ui a3, a3, 0 /* [[[(local0)]+0x20]] */ # 9ae: 320300 + movi a2, 6 /* 0x00000006 */ # 9b1: 0c62 + extui a3, a3, 2, 4 # 9b3: 303234 + call0 pp_post # 9b6: 01eaffc0 + # 9ba: 0000 + j .Lbr100 # 9bc: 460900 +.Lbr098: l32i a0, sp, 0 /* [(local0)] */ # 9bf: 0801 + movi a5, .Ldata001 # 9c1: 51e4ff + l8ui a4, a6, 5 /* [[[arg0]+0x20]+0x5] */ # 9c4: 420605 + l8ui a5, a5, 13 /* [.Ldata004] */ # 9c7: 52050d + extui a4, a4, 0, 6 # 9ca: 404054 + bltu a4, a5, .Lbr099 # 9cd: 57340b + movi a4, 2 /* 0x00000002 */ # 9d0: 0c24 + movi a5, 1 /* 0x00000001 */ # 9d2: 0c15 + mov a3, a0 /* [(local0)] */ # 9d4: 3d00 + call0 .Lfunc006 # 9d6: 45ecff + j .Lbr100 # 9d9: 060200 +.Lbr099: movi a4, 3 /* 0x00000003 */ # 9dc: 0c34 + movi a5, 1 /* 0x00000001 */ # 9de: 0c15 + mov a3, a0 /* [(local0)] */ # 9e0: 3d00 + call0 .Lfunc006 # 9e2: 85ebff +.Lbr100: l32i a0, sp, 4 /* [(local1)] */ # 9e5: 0811 + addi sp, sp, 16 /* (top of frame) */ # 9e7: 12c110 + ret # 9ea: 0df0 + +# Function @ .text+0x9ec + .balign 4 +.Lfunc008: l8ui a4, a2, 13 /* [arg0+0xd] */ # 9ec: 42020d + movi a5, 0 /* 0x00000000 */ # 9ef: 0c05 + beqz a4, .Lbr101 # 9f1: 8c44 + s8i a3, a2, 11 /* arg1 -> [arg0+0xb] */ # 9f3: 32420b + s8i a5, a2, 13 /* 0x00 -> [arg0+0xd] */ # 9f6: 52420d +.Lbr101: ret /* arg0 */ # 9f9: 0df0 + + .literal_position # 9fc: 00000000 + # a00: b0110000 + +# Function @ .text+0xa04 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 +.Lfunc009: addi sp, sp, -16 /* (local0) */ # a04: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # a07: c911 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # a09: 0901 + l8ui a0, a2, 11 /* [arg0+0xb] */ # a0b: 02020b + mov a12, a2 /* arg0 */ # a0e: cd02 + beqz a0, .Lbr104 # a10: acd0 + l8ui a2, a2, 12 /* [arg0+0xc] */ # a12: 22020c + movi a0, 0 /* 0x00000000 */ # a15: 0c00 + beqz a2, .Lbr102 # a17: 9c32 + l32i a2, a12, 0 /* [arg0] */ # a19: 280c + l32i a2, a2, 32 /* [[arg0]+0x20] */ # a1b: 2882 + l8ui a2, a2, 0 /* [[[arg0]+0x20]] */ # a1d: 220200 + extui a2, a2, 2, 4 # a20: 202234 + call0 ppFetchTxQFirstAvail # a23: 01f6ffc0 + # a27: 0000 + s32i a2, a12, 0 /* a2 -> [arg0] */ # a29: 290c + j .Lbr103 # a2b: c60000 +.Lbr102: mov a2, a0 /* 0x00000000 */ # a2e: 2d00 + s32i a2, a12, 0 /* 0x00000000 -> [arg0] */ # a30: 290c +.Lbr103: beqz a2, .Lbr106 # a32: ac02 + mov a2, a12 /* arg0 */ # a34: 2d0c + movi a3, 0 /* 0x00000000 */ # a36: 0c03 + call0 .Lfunc014 # a38: 01f2ffc0 + # a3c: 0000 + j .Lbr105 # a3e: 860100 +.Lbr104: movi a3, 0 /* 0x00000000 */ # a41: 0c03 + call0 .Lfunc008 # a43: 85faff + movi a2, 0 /* 0x00000000 */ # a46: 0c02 +.Lbr105: movi a3, 9 /* 0x00000009 */ # a48: 0c93 + l32i a0, sp, 0 /* [(local0)] */ # a4a: 0801 + s8i a3, a12, 18 /* 0x09 -> [arg0+0x12] */ # a4c: 324c12 + l32i a12, sp, 4 /* [(local1)] */ # a4f: c811 + addi sp, sp, 16 /* (top of frame) */ # a51: 12c110 + ret # a54: 0df0 +.Lbr106: movi a2, 0 /* 0x00000000 */ # a56: 0c02 + movi a4, 0 /* 0x00000000 */ # a58: 0c04 + s8i a4, a12, 11 /* 0x00 -> [arg0+0xb] */ # a5a: 424c0b + j .Lbr105 # a5d: c6f9ff + + .literal_position # a60: 00000000 + # a64: 00000000 + +# Function @ .text+0xa68 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 +.Lfunc010: addi sp, sp, -16 /* (local0) */ # a68: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # a6b: c911 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # a6d: 0901 + l8ui a0, a2, 11 /* [arg0+0xb] */ # a6f: 02020b + mov a12, a2 /* arg0 */ # a72: cd02 + beqz a0, .Lbr107 # a74: 8c60 + movi a2, 0 /* 0x00000000 */ # a76: 0c02 + s8i a2, a12, 11 /* 0x00 -> [arg0+0xb] */ # a78: 224c0b + j .Lbr108 # a7b: 060100 +.Lbr107: movi a3, 0 /* 0x00000000 */ # a7e: 0c03 + call0 .Lfunc008 # a80: 85f6ff +.Lbr108: movi a2, .Ldata001 # a83: 21f7ff + l32i a2, a2, 36 /* [.Ldata010] */ # a86: 2892 + call0 ppRollBackTxQ # a88: 01f7ffc0 + # a8c: 0000 + movi a3, 12 /* 0x0000000c */ # a8e: 0cc3 + l32i a0, sp, 0 /* [(local0)] */ # a90: 0801 + s8i a3, a12, 18 /* 0x0c -> [arg0+0x12] */ # a92: 324c12 + l32i a12, sp, 4 /* [(local1)] */ # a95: c811 + addi sp, sp, 16 /* (top of frame) */ # a97: 12c110 + ret # a9a: 0df0 + + .literal_position # a9c: 00000000 + +# Function @ .text+0xaa0 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 +.Lfunc011: movi a3, 1 /* 0x00000001 */ # aa0: 0c13 + addi sp, sp, -16 /* (local0) */ # aa2: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # aa5: 0901 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # aa7: c911 + movi a0, .Ldata001 # aa9: 01fcff + mov a12, a2 /* arg0 */ # aac: cd02 + l32i a0, a0, 36 /* [.Ldata010] */ # aae: 0890 + s32i a0, a2, 0 /* [.Ldata010] -> [arg0] */ # ab0: 0902 + call0 .Lfunc014 # ab2: c56f00 + movi a3, 11 /* 0x0000000b */ # ab5: 0cb3 + l32i a0, sp, 0 /* [(local0)] */ # ab7: 0801 + s8i a3, a12, 18 /* 0x0b -> [arg0+0x12] */ # ab9: 324c12 + l32i a12, sp, 4 /* [(local1)] */ # abc: c811 + addi sp, sp, 16 /* (top of frame) */ # abe: 12c110 + ret # ac1: 0df0 + + .literal_position # ac4: 00000000 + # ac8: 00000000 + # acc: 08000000 + # ad0: 00000000 + # ad4: 08000000 + # ad8: 00000000 + # adc: 08000000 + # ae0: 00000000 + # ae4: 08000000 + # ae8: 00000000 + # aec: 08000000 + # af0: 00000000 + # af4: 08000000 + # af8: 00000000 + # afc: 08000000 + # b00: 00000000 + # b04: 00000000 + # b08: b0110000 + # b0c: 00000000 + # b10: 00000000 + # b14: 00000000 + # b18: 00000000 + # b1c: 00000000 + # b20: 00000000 + # b24: b0110000 + # b28: b0110000 + # b2c: 00000000 + # b30: 00000000 + # b34: 00000000 + # b38: 00000000 + # b3c: 00000000 + # b40: 00000000 + # b44: 00000000 + # b48: 00000000 + +# Function @ .text+0xb4c +# Local variables/stack: +# (local0): hword @ -0x2e +# (local1): word @ -0x2c +# (local2): word @ -0x28 +# (local3): word @ -0x24 +# (local4): word @ -0x20 +# (local5): word @ -0x1c +# (local6): word @ -0x18 +# (local7): word @ -0x14 +# (local8): word @ -0x10 +# (local9): word[3] @ -0xc + .balign 4 +.Lfunc012: movi a4, 3 /* 0x00000003 */ # b4c: 0c34 + movi a5, 148 /* 0x00000094 */ # b4e: 52a094 + addi sp, sp, -48 /* (FP)-0x30 */ # b51: 12c1d0 + s32i a14, sp, 28 /* a14 -> [(local7)] */ # b54: e971 + s32i a0, sp, 16 /* a0 -> [(local4)] */ # b56: 0941 + s32i a12, sp, 20 /* a12 -> [(local5)] */ # b58: c951 + s32i a15, sp, 32 /* a15 -> [(local8)] */ # b5a: f981 + s32i a13, sp, 24 /* a13 -> [(local6)] */ # b5c: d961 + movi a15, 0 /* 0x00000000 */ # b5e: 0c0f + movi a13, .Ldata001 # b60: d1d9ff + mov a12, a2 /* arg0 */ # b63: cd02 + l8ui a0, a12, 17 /* [arg0+0x11] */ # b65: 020c11 + mov a2, a3 /* arg1 */ # b68: 2d03 + movi a3, 212 /* 0x000000d4 */ # b6a: 32a0d4 + bnez a2, .Lbr111 # b6d: ec92 + movi a14, 1 /* 0x00000001 */ # b6f: 0c1e + addi a2, a0, -6 /* [arg0+0x11]-0x6 */ # b71: 22c0fa + bnez a2, .Lbr118 # b74: 562209 + s8i a15, a12, 17 /* 0x00 -> [arg0+0x11] */ # b77: f24c11 + l32i a0, a13, 40 /* [.Ldata011] */ # b7a: 08ad + l32i a2, a12, 0 /* [arg0] */ # b7c: 280c + bnez a0, .Lbr132 # b7e: 562018 + beqz a2, .Lbr109 # b81: 8c32 + l32i a3, a13, 36 /* [.Ldata010] */ # b83: 389d + beqz a3, .Lbr151 # b85: 16e332 +.Lbr109: movi a2, .Lstr001 # b88: 21d0ff + movi a3, .Lstr002 # b8b: 31d0ff + movi a4, 845 /* 0x0000034d */ # b8e: 42a34d + call0 printf # b91: 01dbffc0 + # b95: 0000 +.Lbr110: j .Lbr110 /* (halt) */ # b97: 06ffff +.Lbr111: beqi a0, 2, .Lbr113 # b9a: 262014 + beqi a0, 1, .Lbr113 # b9d: 261011 + movi a2, .Lstr001 # ba0: 21ccff + movi a3, .Lstr002 # ba3: 31ccff + movi a4, 960 /* 0x000003c0 */ # ba6: 42a3c0 + call0 printf # ba9: 01d6ffc0 + # bad: 0000 +.Lbr112: j .Lbr112 /* (halt) */ # baf: 06ffff +.Lbr113: l32i a0, a13, 40 /* [.Ldata011] */ # bb2: 08ad + l32i a6, a13, 36 /* [.Ldata010] */ # bb4: 689d + bnez a0, .Lbr115 # bb6: dc70 + mov a2, a12 /* arg0 */ # bb8: 2d0c + movi a3, 0 /* 0x00000000 */ # bba: 0c03 + movi a4, 3 /* 0x00000003 */ # bbc: 0c34 + s8i a4, a12, 17 /* 0x03 -> [arg0+0x11] */ # bbe: 424c11 + call0 .Lfunc014 # bc1: 01d1ffc0 + # bc5: 0000 + mov a14, a2 # bc7: ed02 + movi a0, 5 /* 0x00000005 */ # bc9: 0c50 +.Lbr114: s8i a0, a12, 18 /* a0 -> [arg0+0x12] */ # bcb: 024c12 + j .Lbr123 # bce: 461a00 +.Lbr115: beqz a6, .Lbr116 # bd1: 9ce6 + l32i a7, a0, 32 /* [[.Ldata011]+0x20] */ # bd3: 7880 + l32i a7, a7, 0 /* [[[.Ldata011]+0x20]] */ # bd5: 7807 + mov a2, a12 /* arg0 */ # bd7: 2d0c + extui a7, a7, 25, 1 # bd9: 707905 + movnez a3, a5, a7 # bdc: 703593 + call0 .Lfunc002 # bdf: 054cff + l8ui a8, a12, 14 /* [arg0+0xe] */ # be2: 820c0e + l32i a2, a13, 36 /* [.Ldata010] */ # be5: 289d + bnez a8, .Lbr126 # be7: 56e807 + call0 ppRollBackTxQ # bea: 01c8ffc0 + # bee: 0000 + j .Lbr127 # bf0: c61e00 +.Lbr116: l32i a9, a12, 0 /* [arg0] */ # bf3: 980c + beqz a9, .Lbr128 # bf5: 160909 + movi a2, .Lstr001 # bf8: 21b8ff + movi a3, .Lstr002 # bfb: 31b8ff + movi a4, 979 /* 0x000003d3 */ # bfe: 42a3d3 + call0 printf # c01: 01c3ffc0 + # c05: 0000 +.Lbr117: j .Lbr117 /* (halt) */ # c07: 06ffff +.Lbr118: bnei a0, 5, .Lbr120 # c0a: 665019 + l32i a0, a13, 40 /* [.Ldata011] */ # c0d: 08ad + s8i a15, a12, 17 /* 0x00 -> [arg0+0x11] */ # c0f: f24c11 + bnez a0, .Lbr131 # c12: 56200b + movi a2, .Lstr001 # c15: 21b2ff + movi a3, .Lstr002 # c18: 31b3ff + movi a4, 894 /* 0x0000037e */ # c1b: 42a37e + call0 printf # c1e: 01bdffc0 + # c22: 0000 +.Lbr119: j .Lbr119 /* (halt) */ # c24: 06ffff +.Lbr120: movi a2, .Lstr001 # c27: 21b0ff + movi a3, .Lstr002 # c2a: 31b0ff + movi a4, 954 /* 0x000003ba */ # c2d: 42a3ba + call0 printf # c30: 01baffc0 + # c34: 0000 +.Lbr121: j .Lbr121 /* (halt) */ # c36: 06ffff +.Lbr122: movi a14, 0 /* 0x00000000 */ # c39: 0c0e +.Lbr123: movi a0, 0 /* 0x00000000 */ # c3b: 0c00 +.Lbr124: s32i a15, a13, 40 /* 0x00000000 -> [.Ldata011] */ # c3d: f9ad + l8ui a10, a12, 13 /* [arg0+0xd] */ # c3f: a20c0d + l32i a3, a13, 36 /* [.Ldata010] */ # c42: 389d + l8ui a11, a13, 0 /* [.Ldata001] */ # c44: b20d00 + movi a2, 8 /* 0x00000008 */ # c47: 0c82 + moveqz a11, a2, a14 # c49: e0b283 + moveqz a3, a15, a0 # c4c: 003f83 + s32i a3, a13, 36 /* a3 -> [.Ldata010] */ # c4f: 399d + s8i a11, a13, 0 /* a11 -> [.Ldata001] */ # c51: b24d00 + beqz a10, .Lbr135 # c54: 16ba10 + movi a2, .Lstr001 # c57: 21a6ff + movi a3, .Lstr002 # c5a: 31a6ff + movi a4, 1003 /* 0x000003eb */ # c5d: 42a3eb + call0 printf # c60: 01afffc0 + # c64: 0000 +.Lbr125: j .Lbr125 /* (halt) */ # c66: 06ffff +.Lbr126: call0 ppDiscardMPDU # c69: 01adffc0 + # c6d: 0000 +.Lbr127: mov a2, a12 /* arg0 */ # c6f: 2d0c + movi a3, 0 /* 0x00000000 */ # c71: 0c03 + l32i a4, a13, 40 /* [.Ldata011] */ # c73: 48ad + movi a5, 3 /* 0x00000003 */ # c75: 0c35 + s8i a5, a12, 17 /* 0x03 -> [arg0+0x11] */ # c77: 524c11 + s32i a4, a12, 0 /* [.Ldata011] -> [arg0] */ # c7a: 490c + call0 .Lfunc014 # c7c: 01aaffc0 + # c80: 0000 + mov a14, a2 # c82: ed02 + movi a0, 6 /* 0x00000006 */ # c84: 0c60 + j .Lbr114 # c86: 46d0ff +.Lbr128: l32i a2, a0, 32 /* [[.Ldata011]+0x20] */ # c89: 2880 + l32i a6, a2, 0 /* [[[.Ldata011]+0x20]] */ # c8b: 6802 + bbci a6, 28, .Lbr129 # c8d: c77619 + l8ui a2, a2, 4 /* [[[.Ldata011]+0x20]+0x4] */ # c90: 220204 + srli a2, a2, 4 # c93: 202441 + blti a2, 1, .Lbr129 # c96: a61210 + l16ui a6, a0, 22 /* [[.Ldata011]+0x16] */ # c99: 62100b + l16ui a5, a0, 20 /* [[.Ldata011]+0x14] */ # c9c: 52100a + l16ui a3, a13, 14 /* [.Ldata005] */ # c9f: 321d07 + add a5, a5, a6 # ca2: 6a55 + blt a3, a5, .Lbr122 # ca4: 572391 + bgei a2, 3, .Lbr122 # ca7: e6328e +.Lbr129: s32i a0, a12, 0 /* [.Ldata011] -> [arg0] */ # caa: 090c + l8ui a7, a12, 11 /* [arg0+0xb] */ # cac: 720c0b + s8i a4, a12, 17 /* 0x03 -> [arg0+0x11] */ # caf: 424c11 + beqz a7, .Lbr130 # cb2: 8c17 + s8i a15, a12, 11 /* 0x00 -> [arg0+0xb] */ # cb4: f24c0b +.Lbr130: mov a2, a12 /* arg0 */ # cb7: 2d0c + movi a3, 0 /* 0x00000000 */ # cb9: 0c03 + call0 .Lfunc014 # cbb: 019bffc0 + # cbf: 0000 + mov a14, a2 # cc1: ed02 + movi a0, 7 /* 0x00000007 */ # cc3: 0c70 + j .Lbr114 # cc5: 86c0ff +.Lbr131: l32i a8, a13, 36 /* [.Ldata010] */ # cc8: 889d + beqz a8, .Lbr134 # cca: 164805 + l32i a9, a0, 32 /* [[.Ldata011]+0x20] */ # ccd: 9880 + l32i a9, a9, 0 /* [[[.Ldata011]+0x20]] */ # ccf: 9809 + mov a2, a12 /* arg0 */ # cd1: 2d0c + extui a9, a9, 25, 1 # cd3: 909905 + movnez a3, a5, a9 # cd6: 903593 + s8i a3, a13, 44 /* a3 -> [.Ldata012] */ # cd9: 324d2c + mov a3, a14 /* 0x00000001 */ # cdc: 3d0e + call0 .Lfunc008 # cde: c5d0ff + l8ui a2, a12, 4 /* [arg0+0x4] */ # ce1: 220c04 + l32i a10, a13, 36 /* [.Ldata010] */ # ce4: a89d + s32i a10, a12, 0 /* [.Ldata010] -> [arg0] */ # ce6: a90c + call0 Tx_Copy2Queue # ce8: 0191ffc0 + # cec: 0000 + s8i a14, a12, 17 /* 0x01 -> [arg0+0x11] */ # cee: e24c11 + s8i a15, a12, 18 /* 0x00 -> [arg0+0x12] */ # cf1: f24c12 + mov a2, a12 /* arg0 */ # cf4: 2d0c + l32i a3, a13, 40 /* [.Ldata011] */ # cf6: 38ad + movi a4, 0 /* 0x00000000 */ # cf8: 0c04 + call0 lmacRecycleMPDU # cfa: 050000 + movi a0, 1 /* 0x00000001 */ # cfd: 0c10 + movi a14, 1 /* 0x00000001 */ # cff: 0c1e + j .Lbr124 # d01: 06ceff +.Lbr132: l32i a11, a13, 36 /* [.Ldata010] */ # d04: b89d + s32i a0, sp, 12 /* [.Ldata011] -> [(local3)] */ # d06: 0931 + beqz a11, .Lbr138 # d08: 165b08 + s32i a0, sp, 36 /* [.Ldata011] -> [(local9)] */ # d0b: 0991 + beqz a2, .Lbr150 # d0d: 161218 + movi a2, .Lstr001 # d10: 217aff + movi a3, .Lstr002 # d13: 317aff + movi a4, 850 /* 0x00000352 */ # d16: 42a352 + call0 printf # d19: 0185ffc0 + # d1d: 0000 +.Lbr133: j .Lbr133 /* (halt) */ # d1f: 06ffff +.Lbr134: l32i a2, a12, 0 /* [arg0] */ # d22: 280c + bnez a2, .Lbr136 # d24: 56a204 + l32i a3, a0, 32 /* [[.Ldata011]+0x20] */ # d27: 3880 + l32i a3, a3, 0 /* [[[.Ldata011]+0x20]] */ # d29: 3803 + extui a3, a3, 25, 1 # d2b: 303905 + beqz a3, .Lbr146 # d2e: 162313 + mov a2, sp /* (FP)-0x30 */ # d31: 2d01 + addi a3, sp, 2 /* (local0) */ # d33: 2b31 + addi a4, sp, 4 /* (local1) */ # d35: 4b41 + addi a5, sp, 8 /* (local2) */ # d37: 8b51 + call0 wDev_GetBAInfo # d39: 017effc0 + # d3d: 0000 + l32i a5, sp, 8 /* [(local2)] */ # d3f: 5821 + l32i a0, a13, 40 /* [.Ldata011] */ # d41: 08ad + l32i a4, sp, 4 /* [(local1)] */ # d43: 4811 + l32i a0, a0, 32 /* [[.Ldata011]+0x20] */ # d45: 0880 + l16ui a3, sp, 2 /* [(local0)] */ # d47: 321101 + l8ui a2, a0, 0 /* [[[.Ldata011]+0x20]] */ # d4a: 220000 + l32i a6, a0, 0 /* [[[.Ldata011]+0x20]] */ # d4d: 6800 + extui a2, a2, 2, 4 # d4f: 202234 + extui a6, a6, 27, 1 # d52: 606b05 + bnez a6, .Lbr144 # d55: 56b60d + movi a6, 0 /* 0x00000000 */ # d58: 0c06 + call0 ppTxqUpdateBitmap # d5a: 0177ffc0 + # d5e: 0000 + j .Lbr145 # d60: 463800 +.Lbr135: l32i a12, sp, 20 /* [(local5)] */ # d63: c851 + l32i a13, sp, 24 /* [(local6)] */ # d65: d861 + l32i a14, sp, 28 /* [(local7)] */ # d67: e871 + l32i a15, sp, 32 /* [(local8)] */ # d69: f881 + l32i a0, sp, 16 /* [(local4)] */ # d6b: 0841 + addi sp, sp, 48 /* (top of frame) */ # d6d: 12c130 + ret /* 0x00000008 */ # d70: 0df0 +.Lbr136: mov a2, a12 /* arg0 */ # d72: 2d0c + mov a3, a14 /* 0x00000001 */ # d74: 3d0e + call0 .Lfunc008 # d76: 45c7ff + s8i a14, a12, 17 /* 0x01 -> [arg0+0x11] */ # d79: e24c11 + l32i a3, a13, 40 /* [.Ldata011] */ # d7c: 38ad + movi a2, 4 /* 0x00000004 */ # d7e: 0c42 + movi a4, 0 /* 0x00000000 */ # d80: 0c04 + s8i a2, a12, 18 /* 0x04 -> [arg0+0x12] */ # d82: 224c12 + mov a2, a12 /* arg0 */ # d85: 2d0c + call0 lmacRecycleMPDU # d87: 050000 + movi a14, 1 /* 0x00000001 */ # d8a: 0c1e +.Lbr137: movi a0, 0 /* 0x00000000 */ # d8c: 0c00 + j .Lbr124 # d8e: c6aaff +.Lbr138: bnez a2, .Lbr140 # d91: dc72 + mov a2, a12 /* arg0 */ # d93: 2d0c + mov a3, a15 /* 0x00000000 */ # d95: 3d0f + call0 .Lfunc008 # d97: 45c5ff + l8ui a3, a12, 11 /* [arg0+0xb] */ # d9a: 320c0b + beqz a3, .Lbr139 # d9d: 8c13 + s8i a15, a12, 11 /* 0x00 -> [arg0+0xb] */ # d9f: f24c0b +.Lbr139: movi a14, 0 /* 0x00000000 */ # da2: 0c0e + movi a4, 10 /* 0x0000000a */ # da4: 0ca4 + s8i a4, a12, 18 /* 0x0a -> [arg0+0x12] */ # da6: 424c12 + j .Lbr141 # da9: 860400 +.Lbr140: mov a3, a14 /* 0x00000001 */ # dac: 3d0e + mov a2, a12 /* arg0 */ # dae: 2d0c + call0 .Lfunc008 # db0: 85c3ff + movi a14, 1 /* 0x00000001 */ # db3: 0c1e + movi a5, 13 /* 0x0000000d */ # db5: 0cd5 + movi a6, 1 /* 0x00000001 */ # db7: 0c16 + s8i a6, a12, 17 /* 0x01 -> [arg0+0x11] */ # db9: 624c11 + s8i a5, a12, 18 /* 0x0d -> [arg0+0x12] */ # dbc: 524c12 +.Lbr141: l32i a0, sp, 12 /* [(local3)] */ # dbf: 0831 + l32i a0, a0, 32 /* [[(local3)]+0x20] */ # dc1: 0880 + l32i a7, a0, 0 /* [[[(local3)]+0x20]] */ # dc3: 7800 + bbci a7, 27, .Lbr142 # dc5: b7772b + l8ui a2, a0, 0 /* [[[(local3)]+0x20]] */ # dc8: 220000 + l8ui a3, a0, 4 /* [[[(local3)]+0x20]+0x4] */ # dcb: 320004 + extui a2, a2, 2, 4 # dce: 202234 + srli a3, a3, 4 # dd1: 303441 + addi a3, a3, 2 # dd4: 2b33 + extui a3, a3, 0, 8 # dd6: 303074 + call0 ppRecordBarRRC # dd9: 0158ffc0 + # ddd: 0000 + l32i a3, sp, 12 /* [(local3)] */ # ddf: 3831 + l32i a3, a3, 32 /* [[(local3)]+0x20] */ # de1: 3883 + l8ui a3, a3, 0 /* [[[(local3)]+0x20]] */ # de3: 320300 + movi a2, 6 /* 0x00000006 */ # de6: 0c62 + extui a3, a3, 2, 4 # de8: 303234 + call0 pp_post # deb: 0155ffc0 + # def: 0000 + j .Lbr137 # df1: c6e5ff +.Lbr142: l8ui a6, a13, 13 /* [.Ldata004] */ # df4: 620d0d + l8ui a8, a12, 17 /* [arg0+0x11] */ # df7: 820c11 + movi a7, 1 /* 0x00000001 */ # dfa: 0c17 + l8ui a2, a0, 5 /* [[[(local3)]+0x20]+0x5] */ # dfc: 220005 + movi a5, 0 /* 0x00000000 */ # dff: 0c05 + extui a4, a2, 0, 6 # e01: 204054 + moveqz a5, a7, a8 # e04: 805783 + bltu a4, a6, .Lbr143 # e07: 67340b + l32i a3, sp, 12 /* [(local3)] */ # e0a: 3831 + mov a2, a12 /* arg0 */ # e0c: 2d0c + movi a4, 2 /* 0x00000002 */ # e0e: 0c24 + call0 .Lfunc006 # e10: 85a8ff + j .Lbr137 # e13: 46ddff +.Lbr143: l8ui a9, a0, 6 /* [[[(local3)]+0x20]+0x6] */ # e16: 920006 + l8ui a10, a13, 12 /* [.Ldata003] */ # e19: a20d0c + slli a9, a9, 8 # e1c: 809911 + or a9, a9, a2 # e1f: 209920 + extui a9, a9, 6, 6 # e22: 909654 + bltu a9, a10, .Lbr149 # e25: a7395d + l32i a3, sp, 12 /* [(local3)] */ # e28: 3831 + mov a2, a12 /* arg0 */ # e2a: 2d0c + movi a4, 3 /* 0x00000003 */ # e2c: 0c34 + call0 .Lfunc006 # e2e: c5a6ff + j .Lbr137 # e31: c6d5ff +.Lbr144: l8ui a6, a0, 4 /* [[[.Ldata011]+0x20]+0x4] */ # e34: 620004 + srli a6, a6, 4 # e37: 606441 + addi a6, a6, 1 # e3a: 1b66 + extui a6, a6, 0, 8 # e3c: 606074 + call0 ppTxqUpdateBitmap # e3f: 0141ffc0 + # e43: 0000 +.Lbr145: l32i a3, a13, 40 /* [.Ldata011] */ # e45: 38ad + l32i a3, a3, 32 /* [[.Ldata011]+0x20] */ # e47: 3883 + l8ui a3, a3, 0 /* [[[.Ldata011]+0x20]] */ # e49: 320300 + movi a2, 6 /* 0x00000006 */ # e4c: 0c62 + extui a3, a3, 2, 4 # e4e: 303234 + call0 pp_post # e51: 013dffc0 + # e55: 0000 + mov a2, a12 /* arg0 */ # e57: 2d0c + movi a3, 0 /* 0x00000000 */ # e59: 0c03 + call0 .Lfunc008 # e5b: 05b9ff + s8i a14, a12, 18 /* 0x01 -> [arg0+0x12] */ # e5e: e24c12 + j .Lbr148 # e61: 060700 +.Lbr146: mov a2, a12 /* arg0 */ # e64: 2d0c + mov a3, a15 /* 0x00000000 */ # e66: 3d0f + call0 .Lfunc008 # e68: 05b8ff + l8ui a4, a12, 11 /* [arg0+0xb] */ # e6b: 420c0b + beqz a4, .Lbr147 # e6e: 8c14 + s8i a15, a12, 11 /* 0x00 -> [arg0+0xb] */ # e70: f24c0b +.Lbr147: mov a2, a12 /* arg0 */ # e73: 2d0c + l32i a3, a13, 40 /* [.Ldata011] */ # e75: 38ad + movi a4, 1 /* 0x00000001 */ # e77: 0c14 + movi a5, 3 /* 0x00000003 */ # e79: 0c35 + s8i a5, a12, 18 /* 0x03 -> [arg0+0x12] */ # e7b: 524c12 + call0 lmacRecycleMPDU # e7e: 050000 +.Lbr148: movi a14, 0 /* 0x00000000 */ # e81: 0c0e + j .Lbr137 # e83: 46c1ff +.Lbr149: l32i a3, sp, 12 /* [(local3)] */ # e86: 3831 + mov a2, a12 /* arg0 */ # e88: 2d0c + movi a4, 4 /* 0x00000004 */ # e8a: 0c44 + call0 .Lfunc006 # e8c: c5a0ff + j .Lbr137 # e8f: 46beff +.Lbr150: l32i a6, a0, 32 /* [[.Ldata011]+0x20] */ # e92: 6880 + mov a2, a12 /* arg0 */ # e94: 2d0c + l32i a6, a6, 0 /* [[[.Ldata011]+0x20]] */ # e96: 6806 + mov a14, a0 /* [.Ldata011] */ # e98: ed00 + extui a6, a6, 25, 1 # e9a: 606905 + movnez a3, a5, a6 # e9d: 603593 + call0 .Lfunc002 # ea0: c51fff + l32i a0, a14, 32 /* [[.Ldata011]+0x20] */ # ea3: 088e + l32i a0, a0, 0 /* [[[.Ldata011]+0x20]] */ # ea5: 0800 + bbci a0, 13, .Lbr152 # ea7: d76018 + bbsi a0, 12, .Lbr152 # eaa: c7e015 + mov a2, a12 /* arg0 */ # ead: 2d0c + call0 .Lfunc010 # eaf: 85bbff + movi a14, 0 /* 0x00000000 */ # eb2: 0c0e + j .Lbr141 # eb4: c6c1ff +.Lbr151: s32i a2, sp, 12 /* [arg0] -> [(local3)] */ # eb7: 2931 + mov a2, a12 /* arg0 */ # eb9: 2d0c + call0 .Lfunc009 # ebb: 85b4ff + mov a14, a2 # ebe: ed02 + j .Lbr141 # ec0: c6beff +.Lbr152: mov a2, a12 /* arg0 */ # ec3: 2d0c + call0 .Lfunc011 # ec5: 85bdff + mov a14, a2 # ec8: ed02 + j .Lbr141 # eca: 46bcff + + .literal_position # ed0: 00000000 + # ed4: 00000000 + # ed8: 00000000 + # edc: 00000000 + +# Function @ .text+0xee0 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word[4] @ -0x10 + .balign 4 + .global lmacProcessCollisions + .type lmacProcessCollisions, @function +lmacProcessCollisions: + addi sp, sp, -32 /* (local0) */ # ee0: 12c1e0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # ee3: c911 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # ee5: d921 + s32i a14, sp, 12 /* a14 -> [(local3)] */ # ee7: e931 + s32i a15, sp, 16 /* a15 -> [(local4)] */ # ee9: f941 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # eeb: 0901 + call0 wDev_GetTxqCollisions # eed: 01f8ffc0 + # ef1: 0000 + mov a12, a2 # ef3: cd02 + beqz a2, .Lbr155 # ef5: bcc2 + movi a15, 1 /* 0x00000001 */ # ef7: 0c1f + j .Lbr154 # ef9: 060800 +.Lbr153: extui a14, a13, 0, 8 # efc: d0e074 + mov a2, a14 # eff: 2d0e + call0 wDev_ProcessCollision # f01: 01f4ffc0 + # f05: 0000 + mov a2, a14 # f07: 2d0e + call0 lmacProcessCollision # f09: 01f3ffc0 + # f0d: 0000 + movi a0, -1 /* 0xffffffff */ # f0f: 7cf0 + ssl a13 # f11: 001d40 + sll a2, a15 # f14: 002fa1 + xor a2, a2, a0 # f17: 002230 + and a12, a12, a2 # f1a: 20cc10 +.Lbr154: neg a13, a12 # f1d: c0d060 + and a13, a13, a12 # f20: c0dd10 + nsau a13, a13 # f23: d0fd40 + neg a13, a13 # f26: d0d060 + addi a13, a13, 31 # f29: d2cd1f + bgez a13, .Lbr153 # f2c: d6cdfc + call0 wDev_ClearTxqCollisions # f2f: 01ebffc0 + # f33: 0000 +.Lbr155: l32i a12, sp, 4 /* [(local1)] */ # f35: c811 + l32i a13, sp, 8 /* [(local2)] */ # f37: d821 + l32i a14, sp, 12 /* [(local3)] */ # f39: e831 + l32i a15, sp, 16 /* [(local4)] */ # f3b: f841 + l32i a0, sp, 0 /* [(local0)] */ # f3d: 0801 + addi sp, sp, 32 /* (top of frame) */ # f3f: 12c120 + ret # f42: 0df0 + + .literal_position # f44: 00000000 + # f48: 08000000 + # f4c: 30000000 + # f50: 00000000 + # f54: 08000000 + # f58: 00000000 + # f5c: 08000000 + # f60: 00000000 + # f64: 00000000 + # f68: 00000000 + # f6c: b4120000 + +# Function @ .text+0xf70 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global lmacProcessCollision + .type lmacProcessCollision, @function +lmacProcessCollision: + addi sp, sp, -16 /* (local0) */ # f70: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # f73: 0901 + bltui a2, 8, .Lbr157 # f75: b68211 + movi a2, .Lstr001 # f78: 21f3ff + movi a3, .Lstr002 # f7b: 31f3ff + movi a4, 1035 /* 0x0000040b */ # f7e: 42a40b + call0 printf # f81: 01f7ffc0 + # f85: 0000 +.Lbr156: j .Lbr156 /* (halt) */ # f87: 06ffff +.Lbr157: movi a6, .Label001 # f8a: 61f0ff + addx8 a2, a2, a2 # f8d: 2022b0 + addx4 a2, a2, a6 # f90: 6022a0 + l32i a3, a2, 0 # f93: 3802 + bnez a3, .Lbr159 # f95: dc03 + movi a2, .Lstr001 # f97: 21eeff + movi a3, .Lstr002 # f9a: 31eeff + movi a4, 1037 /* 0x0000040d */ # f9d: 42a40d + call0 printf # fa0: 01f1ffc0 + # fa4: 0000 +.Lbr158: j .Lbr158 /* (halt) */ # fa6: 06ffff +.Lbr159: l8ui a4, a2, 17 # fa9: 420211 + beqi a4, 1, .Lbr161 # fac: 261411 + movi a2, .Lstr001 # faf: 21eaff + movi a3, .Lstr002 # fb2: 31eaff + movi a4, 1038 /* 0x0000040e */ # fb5: 42a40e + call0 printf # fb8: 01ecffc0 + # fbc: 0000 +.Lbr160: j .Lbr160 /* (halt) */ # fbe: 06ffff +.Lbr161: l32i a5, a3, 32 # fc1: 5883 + l16ui a9, a3, 22 # fc3: 92130b + l32i a5, a5, 0 # fc6: 5805 + movi a7, 768 /* 0x00000300 */ # fc8: 72a300 + srli a5, a5, 6 # fcb: 505641 + bany a5, a7, .Lbr163 # fce: 77851a + l16ui a8, a3, 20 # fd1: 82130a + addi a7, a6, -48 /* .Ldata001 */ # fd4: 72c6d0 + l16ui a7, a7, 14 /* [.Ldata005] */ # fd7: 721707 + add a8, a8, a9 # fda: 9a88 + bge a7, a8, .Lbr163 # fdc: 87a70c + call0 .Lfunc015 # fdf: 01e3ffc0 + # fe3: 0000 +.Lbr162: l32i a0, sp, 0 /* [(local0)] */ # fe5: 0801 + addi sp, sp, 16 /* (top of frame) */ # fe7: 12c110 + ret # fea: 0df0 +.Lbr163: movi a4, 1 /* 0x00000001 */ # fec: 0c14 + call0 .Lfunc013 # fee: c50300 + j .Lbr162 # ff1: 06fcff + +# Function @ .text+0xff4 + .balign 4 + .global lmacMSDUAged + .type lmacMSDUAged, @function +lmacMSDUAged: + movi a2, 0 /* 0x00000000 */ # ff4: 0c02 + ret /* 0x00000000 */ # ff6: 0df0 + + .literal_position # ff8: 00000000 + # ffc: 08000000 + # 1000: 00000000 + # 1004: 00000000 + # 1008: 08000000 + # 100c: 00000000 + # 1010: 00000000 + # 1014: 00000000 + # 1018: 08000000 + # 101c: 00000000 + # 1020: 00000000 + # 1024: 00000000 + # 1028: 00000000 + +# Function @ .text+0x102c +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 +.Lfunc013: addi sp, sp, -16 /* (local0) */ # 102c: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 102f: 0901 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 1031: c911 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 1033: d921 + mov a12, a2 /* arg0 */ # 1035: cd02 + mov a13, a3 /* arg1 */ # 1037: dd03 + bnez a3, .Lbr165 # 1039: dc03 + movi a2, .Lstr001 # 103b: 21efff + movi a3, .Lstr002 # 103e: 31efff + movi a4, 1067 /* 0x0000042b */ # 1041: 42a42b + call0 printf # 1044: 01f6ffc0 + # 1048: 0000 +.Lbr164: j .Lbr164 /* (halt) */ # 104a: 06ffff +.Lbr165: movi a0, .Ldata001 # 104d: 01ecff + l8ui a7, a2, 9 /* [arg0+0x9] */ # 1050: 720209 + l8ui a2, a0, 13 /* [.Ldata004] */ # 1053: 22000d + mov a3, a7 /* [arg0+0x9] */ # 1056: 3d07 + bgeu a7, a2, .Lbr166 # 1058: 27b70a + addi a3, a7, 1 /* [arg0+0x9]+0x1 */ # 105b: 1b37 + s8i a3, a12, 9 /* [arg0+0x9]+0x1 -> [arg0+0x9] */ # 105d: 324c09 + l8ui a2, a0, 13 /* [.Ldata004] */ # 1060: 22000d + extui a3, a3, 0, 8 # 1063: 303074 +.Lbr166: bgeu a3, a2, .Lbr167 # 1066: 27b310 + l8ui a2, a12, 6 /* [arg0+0x6] */ # 1069: 220c06 + l8ui a5, a12, 8 /* [arg0+0x8] */ # 106c: 520c08 + addi a6, a2, 1 /* [arg0+0x6]+0x1 */ # 106f: 1b62 + bgeu a2, a5, .Lbr168 # 1071: 57b20b + s8i a6, a12, 6 /* [arg0+0x6]+0x1 -> [arg0+0x6] */ # 1074: 624c06 + j .Lbr168 # 1077: 460100 +.Lbr167: l8ui a7, a12, 7 /* [arg0+0x7] */ # 107a: 720c07 + s8i a7, a12, 6 /* [arg0+0x7] -> [arg0+0x6] */ # 107d: 724c06 +.Lbr168: l32i a11, a13, 32 /* [arg1+0x20] */ # 1080: b88d + l8ui a8, a0, 0 /* [.Ldata001] */ # 1082: 820000 + l8ui a2, a11, 5 /* [[arg1+0x20]+0x5] */ # 1085: 220b05 + movi a10, 192 /* 0x000000c0 */ # 1088: a2a0c0 + and a10, a2, a10 # 108b: a0a210 + extui a2, a2, 0, 6 # 108e: 202054 + addi a2, a2, 1 # 1091: 1b22 + extui a2, a2, 0, 6 # 1093: 202054 + or a10, a10, a2 # 1096: 20aa20 + s8i a10, a11, 5 /* a10 -> [[arg1+0x20]+0x5] */ # 1099: a24b05 + l8ui a9, a12, 4 /* [arg0+0x4] */ # 109c: 920c04 + bne a8, a9, .Lbr170 # 109f: 979828 + l32i a2, a13, 32 /* [arg1+0x20] */ # 10a2: 288d + l8ui a7, a2, 4 /* [[arg1+0x20]+0x4] */ # 10a4: 720204 + l8ui a11, a2, 5 /* [[arg1+0x20]+0x5] */ # 10a7: b20205 + srli a3, a7, 4 # 10aa: 703441 + beqz a4, .Lbr169 # 10ad: 8c94 + extui a11, a11, 0, 6 # 10af: b0b054 + bge a3, a11, .Lbr171 # 10b2: b7a317 + l32i a4, a2, 0 /* [[arg1+0x20]] */ # 10b5: 4802 + bbsi a4, 28, .Lbr171 # 10b7: c7f412 +.Lbr169: extui a5, a7, 0, 4 # 10ba: 705034 + addi a6, a3, 1 # 10bd: 1b63 + extui a6, a6, 0, 4 # 10bf: 606034 + slli a6, a6, 4 # 10c2: c06611 + or a5, a5, a6 # 10c5: 605520 + s8i a5, a2, 4 /* a5 -> [[arg1+0x20]+0x4] */ # 10c8: 524204 +.Lbr170: l32i a2, a13, 32 /* [arg1+0x20] */ # 10cb: 288d +.Lbr171: l8ui a3, a12, 17 /* [arg0+0x11] */ # 10cd: 320c11 + beqi a3, 2, .Lbr173 # 10d0: 262314 + beqi a3, 1, .Lbr173 # 10d3: 261311 + movi a2, .Lstr001 # 10d6: 21cbff + movi a3, .Lstr002 # 10d9: 31cbff + movi a4, 1084 /* 0x0000043c */ # 10dc: 42a43c + call0 printf # 10df: 01d0ffc0 + # 10e3: 0000 +.Lbr172: j .Lbr172 /* (halt) */ # 10e5: 06ffff +.Lbr173: call0 rcReachRetryLimit # 10e8: 01cfffc0 + # 10ec: 0000 + movi a0, .Ldata001 # 10ee: 01c7ff + bnez a2, .Lbr174 # 10f1: dc62 + l32i a7, a13, 32 /* [arg1+0x20] */ # 10f3: 788d + l8ui a7, a7, 5 /* [[arg1+0x20]+0x5] */ # 10f5: 720705 + l8ui a8, a0, 13 /* [.Ldata004] */ # 10f8: 82000d + extui a7, a7, 0, 6 # 10fb: 707054 + bgeu a7, a8, .Lbr174 # 10fe: 87b709 + mov a2, a13 /* arg1 */ # 1101: 2d0d + call0 lmacMSDUAged # 1103: 050000 + movi a0, .Ldata001 # 1106: 01c2ff + beqz a2, .Lbr177 # 1109: ac62 +.Lbr174: l8ui a9, a12, 4 /* [arg0+0x4] */ # 110b: 920c04 + movi a10, 6 /* 0x00000006 */ # 110e: 0c6a + l8ui a8, a0, 0 /* [.Ldata001] */ # 1110: 820000 + s8i a10, a12, 17 /* 0x06 -> [arg0+0x11] */ # 1113: a24c11 + bne a8, a9, .Lbr175 # 1116: 979809 + mov a2, a12 /* arg0 */ # 1119: 2d0c + movi a3, 0 /* 0x00000000 */ # 111b: 0c03 + call0 .Lfunc012 # 111d: c5a2ff + j .Lbr176 # 1120: 060100 +.Lbr175: mov a2, a12 /* arg0 */ # 1123: 2d0c + call0 .Lfunc007 # 1125: c583ff +.Lbr176: l32i a12, sp, 4 /* [(local1)] */ # 1128: c811 + l32i a13, sp, 8 /* [(local2)] */ # 112a: d821 + l32i a0, sp, 0 /* [(local0)] */ # 112c: 0801 + addi sp, sp, 16 /* (top of frame) */ # 112e: 12c110 + ret # 1131: 0df0 +.Lbr177: l8ui a2, a12, 4 /* [arg0+0x4] */ # 1133: 220c04 + l8ui a11, a0, 0 /* [.Ldata001] */ # 1136: b20000 + bne a11, a2, .Lbr179 # 1139: 279b25 + l32i a3, a0, 40 /* [.Ldata011] */ # 113c: 38a0 + bne a3, a13, .Lbr178 # 113e: d79316 + l32i a0, a13, 32 /* [arg1+0x20] */ # 1141: 088d + l32i a0, a0, 0 /* [[arg1+0x20]] */ # 1143: 0800 + bbsi a0, 28, .Lbr178 # 1145: c7f00f + bbsi a0, 27, .Lbr178 # 1148: b7f00c + l32i a3, a13, 16 /* [arg1+0x10] */ # 114b: 384d + l8ui a2, a3, 1 /* [[arg1+0x10]+0x1] */ # 114d: 220301 + movi a4, 8 /* 0x00000008 */ # 1150: 0c84 + or a2, a2, a4 # 1152: 402220 + s8i a2, a3, 1 /* a2 -> [[arg1+0x10]+0x1] */ # 1155: 224301 +.Lbr178: mov a2, a12 /* arg0 */ # 1158: 2d0c + movi a3, 1 /* 0x00000001 */ # 115a: 0c13 + call0 .Lfunc012 # 115c: c59eff + j .Lbr176 # 115f: 46f1ff +.Lbr179: l8ui a5, a12, 17 /* [arg0+0x11] */ # 1162: 520c11 + beqi a5, 1, .Lbr181 # 1165: 261511 + movi a2, .Lstr001 # 1168: 21abff + movi a3, .Lstr002 # 116b: 31abff + movi a4, 1119 /* 0x0000045f */ # 116e: 42a45f + call0 printf # 1171: 01adffc0 + # 1175: 0000 +.Lbr180: j .Lbr180 /* (halt) */ # 1177: 06ffff +.Lbr181: mov a2, a12 /* arg0 */ # 117a: 2d0c + movi a3, 0 /* 0x00000000 */ # 117c: 0c03 + movi a6, 4 /* 0x00000004 */ # 117e: 0c46 + s8i a6, a12, 17 /* 0x04 -> [arg0+0x11] */ # 1180: 624c11 + call0 .Lfunc014 # 1183: c50200 + j .Lbr176 # 1186: 86e7ff + + .literal_position # 118c: 00000000 + # 1190: 00000000 + # 1194: 00000000 + # 1198: 00000000 + # 119c: 00000000 + # 11a0: c4170000 + # 11a4: 00000000 + # 11a8: 00000000 + # 11ac: 00000000 + +# Function @ .text+0x11b0 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 +.Lfunc014: addi sp, sp, -16 /* (local0) */ # 11b0: 12c1f0 + s32i a12, sp, 8 /* a12 -> [(local2)] */ # 11b3: c921 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 11b5: 0911 + l8ui a0, a2, 14 /* [arg0+0xe] */ # 11b7: 02020e + mov a12, a2 /* arg0 */ # 11ba: cd02 + bnez a0, .Lbr183 # 11bc: ecd0 + l8ui a0, a2, 11 /* [arg0+0xb] */ # 11be: 02020b + beqz a3, .Lbr184 # 11c1: 161304 + beqz a0, .Lbr186 # 11c4: 162009 + l8ui a2, a2, 4 /* [arg0+0x4] */ # 11c7: 220204 + call0 Tx_Copy2Queue # 11ca: 01f0ffc0 + # 11ce: 0000 + movi a3, 0 /* 0x00000000 */ # 11d0: 0c03 + movi a2, 1 /* 0x00000001 */ # 11d2: 0c12 + movi a4, 0 /* 0x00000000 */ # 11d4: 0c04 + s8i a2, a12, 17 /* 0x01 -> [arg0+0x11] */ # 11d6: 224c11 + l8ui a2, a12, 4 /* [arg0+0x4] */ # 11d9: 220c04 + call0 wDev_EnableTransmit # 11dc: 01edffc0 + # 11e0: 0000 + movi a2, 1 /* 0x00000001 */ # 11e2: 0c12 +.Lbr182: l32i a12, sp, 8 /* [(local2)] */ # 11e4: c821 + l32i a0, sp, 4 /* [(local1)] */ # 11e6: 0811 + addi sp, sp, 16 /* (top of frame) */ # 11e8: 12c110 + ret # 11eb: 0df0 +.Lbr183: movi a3, 0 /* 0x00000000 */ # 11ed: 0c03 + s8i a3, a2, 14 /* 0x00 -> [arg0+0xe] */ # 11ef: 32420e + l32i a2, a2, 0 /* [arg0] */ # 11f2: 2802 + call0 ppDiscardMPDU # 11f4: 01e8ffc0 + # 11f8: 0000 + movi a2, 0 /* 0x00000000 */ # 11fa: 0c02 + movi a4, 0 /* 0x00000000 */ # 11fc: 0c04 + s32i a4, a12, 0 /* 0x00000000 -> [arg0] */ # 11fe: 490c + s8i a4, a12, 17 /* 0x00 -> [arg0+0x11] */ # 1200: 424c11 + j .Lbr182 # 1203: 46f7ff +.Lbr184: beqz a0, .Lbr187 # 1206: 165006 + l32i a2, a2, 0 /* [arg0] */ # 1209: 2802 + l32i a3, a2, 32 /* [[arg0]+0x20] */ # 120b: 3882 + l32i a2, a2, 24 /* [[arg0]+0x18] */ # 120d: 2862 + l16ui a4, a3, 6 /* [[[arg0]+0x20]+0x6] */ # 120f: 421303 + l8ui a5, a3, 8 /* [[[arg0]+0x20]+0x8] */ # 1212: 520308 + s32i a5, sp, 0 /* [[[arg0]+0x20]+0x8] -> [(local0)] */ # 1215: 5901 + srli a4, a4, 7 # 1217: 404741 + s16i a4, a12, 22 /* a4 -> [arg0+0x16] */ # 121a: 425c0b + call0 rcGetRate # 121d: 01deffc0 + # 1221: 0000 + l32i a2, a12, 0 /* [arg0] */ # 1223: 280c + l32i a0, a2, 32 /* [[arg0]+0x20] */ # 1225: 0882 + l32i a7, sp, 0 /* [(local0)] */ # 1227: 7801 + l8ui a6, a0, 8 /* [[[arg0]+0x20]+0x8] */ # 1229: 620008 + beq a6, a7, .Lbr185 # 122c: 771609 + call0 ppCalFrameTimes # 122f: 01dbffc0 + # 1233: 0000 + l32i a0, a12, 0 /* [arg0] */ # 1235: 080c + l32i a0, a0, 32 /* [[arg0]+0x20] */ # 1237: 0880 +.Lbr185: l16si a2, a12, 22 /* [arg0+0x16] */ # 1239: 229c0b + l16ui a4, a0, 6 /* [[[arg0]+0x20]+0x6] */ # 123c: 421003 + l16ui a3, a0, 10 /* [[[arg0]+0x20]+0xa] */ # 123f: 321005 + srli a4, a4, 7 # 1242: 404741 + sub a3, a3, a4 # 1245: 4033c0 + add a2, a2, a3 # 1248: 3a22 + s16i a2, a12, 22 /* a2 -> [arg0+0x16] */ # 124a: 225c0b + mov a2, a12 /* arg0 */ # 124d: 2d0c + call0 .Lfunc016 # 124f: 01d4ffc0 + # 1253: 0000 + movi a2, 1 /* 0x00000001 */ # 1255: 0c12 + j .Lbr182 # 1257: 46e2ff +.Lbr186: movi a3, 0 /* 0x00000000 */ # 125a: 0c03 + call0 .Lfunc008 # 125c: c578ff + l32i a2, a12, 0 /* [arg0] */ # 125f: 280c + l8ui a3, a12, 4 /* [arg0+0x4] */ # 1261: 320c04 + call0 lmacTxFrame # 1264: 01d0ffc0 + # 1268: 0000 + movi a2, 0 /* 0x00000000 */ # 126a: 0c02 + j .Lbr182 # 126c: 06ddff +.Lbr187: movi a3, 0 /* 0x00000000 */ # 126f: 0c03 + call0 .Lfunc008 # 1271: 8577ff + l32i a3, a12, 0 /* [arg0] */ # 1274: 380c + l32i a2, a3, 24 /* [[arg0]+0x18] */ # 1276: 2863 + l32i a3, a3, 32 /* [[arg0]+0x20] */ # 1278: 3883 + call0 rcGetRate # 127a: 01cbffc0 + # 127e: 0000 + l32i a2, a12, 0 /* [arg0] */ # 1280: 280c + l8ui a3, a12, 4 /* [arg0+0x4] */ # 1282: 320c04 + call0 lmacTxFrame # 1285: 01c9ffc0 + # 1289: 0000 + movi a2, 0 /* 0x00000000 */ # 128b: 0c02 + j .Lbr182 # 128d: c6d4ff + + .literal_position # 1290: 00000000 + # 1294: 3ff00000 + # 1298: 00000000 + # 129c: 08000000 + # 12a0: 00000000 + # 12a4: 08000000 + # 12a8: 00000000 + # 12ac: 00000000 + # 12b0: 00000000 + +# Function @ .text+0x12b4 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 +.Lfunc015: addi sp, sp, -16 /* (local0) */ # 12b4: 12c1f0 + l8ui a5, a2, 10 /* [arg0+0xa] */ # 12b7: 52020a + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 12ba: 0901 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 12bc: c911 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 12be: d921 + movi a13, .Ldata001 # 12c0: d1f4ff + mov a12, a2 /* arg0 */ # 12c3: cd02 + l8ui a0, a13, 12 /* [.Ldata003] */ # 12c5: 020d0c + mov a2, a5 /* [arg0+0xa] */ # 12c8: 2d05 + bgeu a5, a0, .Lbr188 # 12ca: 07b50a + addi a2, a5, 1 /* [arg0+0xa]+0x1 */ # 12cd: 1b25 + s8i a2, a12, 10 /* [arg0+0xa]+0x1 -> [arg0+0xa] */ # 12cf: 224c0a + l8ui a0, a13, 12 /* [.Ldata003] */ # 12d2: 020d0c + extui a2, a2, 0, 8 # 12d5: 202074 +.Lbr188: bgeu a2, a0, .Lbr189 # 12d8: 07b210 + l8ui a0, a12, 6 /* [arg0+0x6] */ # 12db: 020c06 + l8ui a3, a12, 8 /* [arg0+0x8] */ # 12de: 320c08 + addi a4, a0, 1 /* [arg0+0x6]+0x1 */ # 12e1: 1b40 + bgeu a0, a3, .Lbr190 # 12e3: 37b00b + s8i a4, a12, 6 /* [arg0+0x6]+0x1 -> [arg0+0x6] */ # 12e6: 424c06 + j .Lbr190 # 12e9: 460100 +.Lbr189: l8ui a5, a12, 7 /* [arg0+0x7] */ # 12ec: 520c07 + s8i a5, a12, 6 /* [arg0+0x7] -> [arg0+0x6] */ # 12ef: 524c06 +.Lbr190: l32i a2, a13, 40 /* [.Ldata011] */ # 12f2: 28ad + l8ui a6, a13, 0 /* [.Ldata001] */ # 12f4: 620d00 + l32i a9, a2, 32 /* [[.Ldata011]+0x20] */ # 12f7: 9882 + movi a8, 0x0000f03f # 12f9: 81e6ff + l8ui a10, a9, 6 /* [[[.Ldata011]+0x20]+0x6] */ # 12fc: a20906 + l8ui a11, a9, 5 /* [[[.Ldata011]+0x20]+0x5] */ # 12ff: b20905 + slli a10, a10, 8 # 1302: 80aa11 + or a10, a10, a11 # 1305: b0aa20 + and a8, a10, a8 # 1308: 808a10 + extui a10, a10, 6, 6 # 130b: a0a654 + addi a10, a10, 1 # 130e: 1baa + extui a10, a10, 0, 6 # 1310: a0a054 + slli a10, a10, 6 # 1313: a0aa11 + or a8, a8, a10 # 1316: a08820 + s8i a8, a9, 5 /* a8 -> [[[.Ldata011]+0x20]+0x5] */ # 1319: 824905 + srli a8, a8, 8 # 131c: 808841 + s8i a8, a9, 6 /* a8 -> [[[.Ldata011]+0x20]+0x6] */ # 131f: 824906 + l8ui a7, a12, 4 /* [arg0+0x4] */ # 1322: 720c04 + bne a6, a7, .Lbr191 # 1325: 779618 + l32i a0, a2, 32 /* [[.Ldata011]+0x20] */ # 1328: 0882 + l8ui a3, a0, 4 /* [[[.Ldata011]+0x20]+0x4] */ # 132a: 320004 + extui a11, a3, 0, 4 # 132d: 30b034 + srli a3, a3, 4 # 1330: 303441 + addi a3, a3, 1 # 1333: 1b33 + extui a3, a3, 0, 4 # 1335: 303034 + slli a3, a3, 4 # 1338: c03311 + or a11, a11, a3 # 133b: 30bb20 + s8i a11, a0, 4 /* a11 -> [[[.Ldata011]+0x20]+0x4] */ # 133e: b24004 +.Lbr191: l8ui a0, a12, 17 /* [arg0+0x11] */ # 1341: 020c11 + beqi a0, 2, .Lbr193 # 1344: 262014 + beqi a0, 1, .Lbr193 # 1347: 261011 + movi a2, .Lstr001 # 134a: 21d3ff + movi a3, .Lstr002 # 134d: 31d3ff + movi a4, 1201 /* 0x000004b1 */ # 1350: 42a4b1 + call0 printf # 1353: 01d5ffc0 + # 1357: 0000 +.Lbr192: j .Lbr192 /* (halt) */ # 1359: 06ffff +.Lbr193: l32i a2, a2, 32 /* [[.Ldata011]+0x20] */ # 135c: 2882 + call0 rcReachRetryLimit # 135e: 01d3ffc0 + # 1362: 0000 + bnez a2, .Lbr194 # 1364: dcc2 + l32i a2, a13, 40 /* [.Ldata011] */ # 1366: 28ad + l32i a6, a2, 32 /* [[.Ldata011]+0x20] */ # 1368: 6882 + l8ui a5, a13, 12 /* [.Ldata003] */ # 136a: 520d0c + l8ui a4, a6, 6 /* [[[.Ldata011]+0x20]+0x6] */ # 136d: 420606 + l8ui a6, a6, 5 /* [[[.Ldata011]+0x20]+0x5] */ # 1370: 620605 + slli a4, a4, 8 # 1373: 804411 + or a4, a4, a6 # 1376: 604420 + extui a4, a4, 6, 6 # 1379: 404654 + bgeu a4, a5, .Lbr194 # 137c: 57b404 + call0 lmacMSDUAged # 137f: 050000 + beqz a2, .Lbr197 # 1382: ac62 +.Lbr194: l8ui a8, a12, 4 /* [arg0+0x4] */ # 1384: 820c04 + movi a9, 6 /* 0x00000006 */ # 1387: 0c69 + l8ui a7, a13, 0 /* [.Ldata001] */ # 1389: 720d00 + s8i a9, a12, 17 /* 0x06 -> [arg0+0x11] */ # 138c: 924c11 + bne a7, a8, .Lbr195 # 138f: 879709 + mov a2, a12 /* arg0 */ # 1392: 2d0c + movi a3, 0 /* 0x00000000 */ # 1394: 0c03 + call0 .Lfunc012 # 1396: 457bff + j .Lbr196 # 1399: 060100 +.Lbr195: mov a2, a12 /* arg0 */ # 139c: 2d0c + call0 .Lfunc007 # 139e: 455cff +.Lbr196: l32i a12, sp, 4 /* [(local1)] */ # 13a1: c811 + l32i a13, sp, 8 /* [(local2)] */ # 13a3: d821 + l32i a0, sp, 0 /* [(local0)] */ # 13a5: 0801 + addi sp, sp, 16 /* (top of frame) */ # 13a7: 12c110 + ret # 13aa: 0df0 +.Lbr197: l8ui a11, a12, 4 /* [arg0+0x4] */ # 13ac: b20c04 + l8ui a10, a13, 0 /* [.Ldata001] */ # 13af: a20d00 + bne a10, a11, .Lbr199 # 13b2: b79a1f + l32i a2, a13, 40 /* [.Ldata011] */ # 13b5: 28ad + l32i a0, a2, 32 /* [[.Ldata011]+0x20] */ # 13b7: 0882 + l32i a0, a0, 0 /* [[[.Ldata011]+0x20]] */ # 13b9: 0800 + bbsi a0, 28, .Lbr198 # 13bb: c7f00c + l32i a4, a2, 16 /* [[.Ldata011]+0x10] */ # 13be: 4842 + l8ui a3, a4, 1 /* [[[.Ldata011]+0x10]+0x1] */ # 13c0: 320401 + movi a5, 8 /* 0x00000008 */ # 13c3: 0c85 + or a3, a3, a5 # 13c5: 503320 + s8i a3, a4, 1 /* a3 -> [[[.Ldata011]+0x10]+0x1] */ # 13c8: 324401 +.Lbr198: mov a2, a12 /* arg0 */ # 13cb: 2d0c + movi a3, 1 /* 0x00000001 */ # 13cd: 0c13 + call0 .Lfunc012 # 13cf: c577ff + j .Lbr196 # 13d2: c6f2ff +.Lbr199: l8ui a6, a12, 17 /* [arg0+0x11] */ # 13d5: 620c11 + beqi a6, 1, .Lbr201 # 13d8: 261611 + movi a2, .Lstr001 # 13db: 21b1ff + movi a3, .Lstr002 # 13de: 31b1ff + movi a4, 1223 /* 0x000004c7 */ # 13e1: 42a4c7 + call0 printf # 13e4: 01b3ffc0 + # 13e8: 0000 +.Lbr200: j .Lbr200 /* (halt) */ # 13ea: 06ffff +.Lbr201: mov a2, a12 /* arg0 */ # 13ed: 2d0c + movi a3, 0 /* 0x00000000 */ # 13ef: 0c03 + movi a7, 4 /* 0x00000004 */ # 13f1: 0c47 + s8i a7, a12, 17 /* 0x04 -> [arg0+0x11] */ # 13f3: 724c11 + call0 .Lfunc014 # 13f6: 85dbff + j .Lbr196 # 13f9: 06e9ff + + .literal_position # 13fc: 30000000 + # 1400: 00000000 + # 1404: 08000000 + # 1408: 00000000 + # 140c: 08000000 + # 1410: 00000000 + # 1414: 00000000 + +# Function @ .text+0x1418 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global lmacProcessCtsTimeout + .type lmacProcessCtsTimeout, @function +lmacProcessCtsTimeout: + movi a3, .Label001 # 1418: 31f9ff + addi sp, sp, -16 /* (local0) */ # 141b: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 141e: 0901 + addx8 a0, a2, a2 # 1420: 2002b0 + addx4 a2, a0, a3 # 1423: 3020a0 + l32i a3, a2, 0 # 1426: 3802 + bnez a3, .Lbr203 # 1428: dc03 + movi a2, .Lstr001 # 142a: 21f5ff + movi a3, .Lstr002 # 142d: 31f5ff + movi a4, 1245 /* 0x000004dd */ # 1430: 42a4dd + call0 printf # 1433: 01f7ffc0 + # 1437: 0000 +.Lbr202: j .Lbr202 /* (halt) */ # 1439: 06ffff +.Lbr203: l8ui a4, a2, 17 # 143c: 420211 + beqi a4, 1, .Lbr205 # 143f: 261411 + movi a2, .Lstr001 # 1442: 21f1ff + movi a3, .Lstr002 # 1445: 31f1ff + movi a4, 1246 /* 0x000004de */ # 1448: 42a4de + call0 printf # 144b: 01f2ffc0 + # 144f: 0000 +.Lbr204: j .Lbr204 /* (halt) */ # 1451: 06ffff +.Lbr205: movi a4, 1 /* 0x00000001 */ # 1454: 0c14 + call0 .Lfunc013 # 1456: 45bdff + l32i a0, sp, 0 /* [(local0)] */ # 1459: 0801 + addi sp, sp, 16 /* (top of frame) */ # 145b: 12c110 + ret # 145e: 0df0 + + .literal_position # 1460: 00000000 + # 1464: 08000000 + # 1468: 00000000 + # 146c: 00000000 + +# Function @ .text+0x1470 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global lmacProcessAckTimeout + .type lmacProcessAckTimeout, @function +lmacProcessAckTimeout: + addi sp, sp, -16 /* (local0) */ # 1470: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1473: 0901 + call0 lmacIsActive # 1475: 050000 + bnez a2, .Lbr207 # 1478: dc02 + movi a2, .Lstr001 # 147a: 21f9ff + movi a3, .Lstr002 # 147d: 31f9ff + movi a4, 1263 /* 0x000004ef */ # 1480: 42a4ef + call0 printf # 1483: 01faffc0 + # 1487: 0000 +.Lbr206: j .Lbr206 /* (halt) */ # 1489: 06ffff +.Lbr207: movi a4, .Ldata001 # 148c: 41f7ff + l32i a3, a4, 40 /* [.Ldata011] */ # 148f: 38a4 + l8ui a2, a4, 0 /* [.Ldata001] */ # 1491: 220400 + l8ui a5, a4, 0 /* [.Ldata001] */ # 1494: 520400 + l32i a0, a3, 32 /* [[.Ldata011]+0x20] */ # 1497: 0883 + addi a4, a4, 48 /* .Label001 */ # 1499: 42c430 + addx8 a2, a2, a5 # 149c: 5022b0 + l32i a0, a0, 0 /* [[[.Ldata011]+0x20]] */ # 149f: 0800 + addx4 a2, a2, a4 # 14a1: 4022a0 + bbci a0, 14, .Lbr208 # 14a4: e76010 + movi a6, 0 /* 0x00000000 */ # 14a7: 0c06 + l8ui a7, a2, 7 # 14a9: 720207 + s8i a7, a2, 6 # 14ac: 724206 + s8i a6, a2, 9 # 14af: 624209 + call0 .Lfunc015 # 14b2: 05e0ff + j .Lbr209 # 14b5: 060100 +.Lbr208: movi a4, 0 /* 0x00000000 */ # 14b8: 0c04 + call0 .Lfunc013 # 14ba: 05b7ff +.Lbr209: l32i a0, sp, 0 /* [(local0)] */ # 14bd: 0801 + addi sp, sp, 16 /* (top of frame) */ # 14bf: 12c110 + ret # 14c2: 0df0 + + .literal_position # 14c4: 00000000 + +# Function @ .text+0x14c8 + .balign 4 + .global lmacProcessRtsStart + .type lmacProcessRtsStart, @function +lmacProcessRtsStart: + movi a3, .Ldata001 # 14c8: 31ffff + s8i a2, a3, 0 /* arg0 -> [.Ldata001] */ # 14cb: 224300 + ret /* arg0 */ # 14ce: 0df0 + + .literal_position # 14d0: 00000000 + # 14d4: 08000000 + # 14d8: 00000000 + # 14dc: 00000000 + # 14e0: 08000000 + # 14e4: 10000000 + # 14e8: 00000000 + # 14ec: 08000000 + # 14f0: 30000000 + # 14f4: 00000000 + # 14f8: 00000000 + # 14fc: 00000000 + # 1500: 00000000 + +# Function @ .text+0x1504 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 + .global lmacProcessTxRtsError + .type lmacProcessTxRtsError, @function +lmacProcessTxRtsError: + addi sp, sp, -16 /* (local0) */ # 1504: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1507: 0901 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 1509: c911 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 150b: d921 + mov a12, a2 /* arg0 */ # 150d: cd02 + mov a13, a3 /* arg1 */ # 150f: dd03 + call0 lmacIsActive # 1511: 050000 + bnez a2, .Lbr211 # 1514: dc02 + movi a2, .Lstr001 # 1516: 21eeff + movi a3, .Lstr002 # 1519: 31eeff + movi a4, 1292 /* 0x0000050c */ # 151c: 42a50c + call0 printf # 151f: 01f5ffc0 + # 1523: 0000 +.Lbr210: j .Lbr210 /* (halt) */ # 1525: 06ffff +.Lbr211: movi a0, .Ldata001 # 1528: 01ecff + l8ui a0, a0, 0 /* [.Ldata001] */ # 152b: 020000 + beq a13, a0, .Lbr213 # 152e: 071d11 + movi a2, .Lstr001 # 1531: 21eaff + movi a3, .Lstr002 # 1534: 31ebff + movi a4, 1293 /* 0x0000050d */ # 1537: 42a50d + call0 printf # 153a: 01efffc0 + # 153e: 0000 +.Lbr212: j .Lbr212 /* (halt) */ # 1540: 06ffff +.Lbr213: beqi a12, 1, .Lbr217 # 1543: 261c43 + beqi a12, 3, .Lbr217 # 1546: 263c40 + movi a2, 17 /* 0x00000011 */ # 1549: 1c12 + blt a2, a12, .Lbr214 # 154b: c72202 + bgei a12, 16, .Lbr216 # 154e: e6bc22 +.Lbr214: movi a3, 192 /* 0x000000c0 */ # 1551: 32a0c0 + beq a12, a3, .Lbr216 # 1554: 371c1c + movi a2, .Lstr003 # 1557: 21e3ff + mov a3, a12 /* arg0 */ # 155a: 3d0c + call0 printf # 155c: 01e8ffc0 + # 1560: 0000 + movi a2, .Lstr001 # 1562: 21e1ff + movi a3, .Lstr002 # 1565: 31e1ff + movi a4, 1312 /* 0x00000520 */ # 1568: 42a520 + call0 printf # 156b: 01e5ffc0 + # 156f: 0000 +.Lbr215: j .Lbr215 /* (halt) */ # 1571: 06ffff +.Lbr216: movi a4, 6 /* 0x00000006 */ # 1574: 0c64 + movi a3, .Label001 # 1576: 31deff + addx8 a2, a0, a0 # 1579: 0020b0 + addx4 a2, a2, a3 # 157c: 3022a0 + s8i a4, a2, 17 # 157f: 424211 + movi a3, 0 /* 0x00000000 */ # 1582: 0c03 + call0 .Lfunc012 # 1584: 455cff + j .Lbr218 # 1587: 060100 +.Lbr217: mov a2, a13 /* arg1 */ # 158a: 2d0d + call0 lmacProcessCtsTimeout # 158c: 050000 +.Lbr218: l32i a12, sp, 4 /* [(local1)] */ # 158f: c811 + l32i a13, sp, 8 /* [(local2)] */ # 1591: d821 + l32i a0, sp, 0 /* [(local0)] */ # 1593: 0801 + addi sp, sp, 16 /* (top of frame) */ # 1595: 12c110 + ret # 1598: 0df0 + + .literal_position # 159c: 00000000 + # 15a0: 08000000 + # 15a4: 24000000 + # 15a8: 00000000 + # 15ac: 08000000 + # 15b0: 00000000 + # 15b4: 00000000 + # 15b8: 00000000 + # 15bc: 00000000 + +# Function @ .text+0x15c0 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global lmacProcessTxError + .type lmacProcessTxError, @function +lmacProcessTxError: + addi sp, sp, -16 /* (local0) */ # 15c0: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 15c3: c911 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 15c5: 0901 + mov a12, a2 /* arg0 */ # 15c7: cd02 + call0 lmacIsActive # 15c9: 050000 + bnez a2, .Lbr220 # 15cc: dc02 + movi a2, .Lstr001 # 15ce: 21f3ff + movi a3, .Lstr002 # 15d1: 31f3ff + movi a4, 1331 /* 0x00000533 */ # 15d4: 42a533 + call0 printf # 15d7: 01f7ffc0 + # 15db: 0000 +.Lbr219: j .Lbr219 /* (halt) */ # 15dd: 06ffff +.Lbr220: beqi a12, 1, .Lbr225 # 15e0: 261c52 + beqi a12, 3, .Lbr225 # 15e3: 263c4f + movi a0, 17 /* 0x00000011 */ # 15e6: 1c10 + blt a0, a12, .Lbr221 # 15e8: c72002 + bgei a12, 16, .Lbr224 # 15eb: e6bc28 +.Lbr221: movi a2, 193 /* 0x000000c1 */ # 15ee: 22a0c1 + blt a2, a12, .Lbr222 # 15f1: c72205 + movi a3, 192 /* 0x000000c0 */ # 15f4: 32a0c0 + bge a12, a3, .Lbr224 # 15f7: 37ac1c +.Lbr222: movi a2, .Lstr004 # 15fa: 21eaff + mov a3, a12 /* arg0 */ # 15fd: 3d0c + call0 printf # 15ff: 01eeffc0 + # 1603: 0000 + movi a2, .Lstr001 # 1605: 21e8ff + movi a3, .Lstr002 # 1608: 31e9ff + movi a4, 1352 /* 0x00000548 */ # 160b: 42a548 + call0 printf # 160e: 01ebffc0 + # 1612: 0000 +.Lbr223: j .Lbr223 /* (halt) */ # 1614: 06ffff +.Lbr224: movi a3, 0 /* 0x00000000 */ # 1617: 0c03 + movi a5, .Ldata001 # 1619: 51e5ff + movi a4, 6 /* 0x00000006 */ # 161c: 0c64 + l8ui a2, a5, 0 /* [.Ldata001] */ # 161e: 220500 + l8ui a6, a5, 0 /* [.Ldata001] */ # 1621: 620500 + addi a5, a5, 48 /* .Label001 */ # 1624: 52c530 + addx8 a2, a2, a6 # 1627: 6022b0 + addx4 a2, a2, a5 # 162a: 5022a0 + s8i a4, a2, 17 # 162d: 424211 + call0 .Lfunc012 # 1630: 8551ff + j .Lbr226 # 1633: 860000 +.Lbr225: call0 lmacProcessAckTimeout # 1636: 050000 +.Lbr226: l32i a12, sp, 4 /* [(local1)] */ # 1639: c811 + l32i a0, sp, 0 /* [(local0)] */ # 163b: 0801 + addi sp, sp, 16 /* (top of frame) */ # 163d: 12c110 + ret # 1640: 0df0 + + .literal_position # 1644: 30000000 + # 1648: 00000000 + # 164c: 08000000 + # 1650: 00000000 + # 1654: 08000000 + # 1658: 00000000 + # 165c: 08000000 + # 1660: 00000000 + # 1664: ffefff03 + # 1668: 3ff00000 + # 166c: 00000000 + # 1670: 00000000 + # 1674: 00000000 + # 1678: 00000000 + # 167c: 00000000 + +# Function @ .text+0x1680 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 + .global lmacTxFrame + .type lmacTxFrame, @function +lmacTxFrame: + addi sp, sp, -16 /* (local0) */ # 1680: 12c1f0 + s32i a12, sp, 8 /* a12 -> [(local2)] */ # 1683: c921 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 1685: 0911 + movi a0, .Label001 # 1687: 01efff + addx8 a12, a3, a3 # 168a: 30c3b0 + addx4 a12, a12, a0 # 168d: 00cca0 + l8ui a0, a12, 17 # 1690: 020c11 + beqz a0, .Lbr228 # 1693: 9c60 + beqi a0, 3, .Lbr228 # 1695: 263014 + beqi a0, 4, .Lbr230 # 1698: 26402a + movi a2, .Lstr001 # 169b: 21ebff + movi a3, .Lstr002 # 169e: 31ebff + movi a4, 1511 /* 0x000005e7 */ # 16a1: 42a5e7 + call0 printf # 16a4: 01f2ffc0 + # 16a8: 0000 +.Lbr227: j .Lbr227 /* (halt) */ # 16aa: 06ffff +.Lbr228: beqi a0, 4, .Lbr230 # 16ad: 264015 + s32i a2, a12, 0 # 16b0: 290c + bnez a2, .Lbr232 # 16b2: eca2 + movi a2, .Lstr001 # 16b4: 21e7ff + movi a3, .Lstr002 # 16b7: 31e7ff + movi a4, 1519 /* 0x000005ef */ # 16ba: 42a5ef + call0 printf # 16bd: 01ecffc0 + # 16c1: 0000 +.Lbr229: j .Lbr229 /* (halt) */ # 16c3: 06ffff +.Lbr230: l32i a3, a12, 0 # 16c6: 380c + sub a3, a3, a2 # 16c8: 2033c0 + beqz a3, .Lbr235 # 16cb: 16a30b + movi a2, .Lstr001 # 16ce: 21e2ff + movi a3, .Lstr002 # 16d1: 31e2ff + movi a4, 1514 /* 0x000005ea */ # 16d4: 42a5ea + call0 printf # 16d7: 01e7ffc0 + # 16db: 0000 +.Lbr231: j .Lbr231 /* (halt) */ # 16dd: 06ffff +.Lbr232: movi a8, 256 /* 0x00000100 */ # 16e0: 82a100 + l16ui a6, a2, 22 /* [arg0+0x16] */ # 16e3: 62120b + l16ui a5, a2, 20 /* [arg0+0x14] */ # 16e6: 52120a + movi a7, 0x03ffefff # 16e9: 71deff + add a5, a5, a6 # 16ec: 6a55 + l32i a6, a2, 32 /* [arg0+0x20] */ # 16ee: 6882 + movi a4, .Ldata001 # 16f0: 41dcff + l32i a3, a6, 0 /* [[arg0+0x20]] */ # 16f3: 3806 + l16ui a4, a4, 14 /* [.Ldata005] */ # 16f5: 421407 + srli a0, a3, 6 # 16f8: 300641 + bge a4, a5, .Lbr233 # 16fb: 57a422 + bbsi a3, 7, .Lbr233 # 16fe: 77e31f + or a5, a0, a8 # 1701: 805020 + extui a4, a3, 0, 6 # 1704: 304054 + slli a5, a5, 6 # 1707: a05511 + or a4, a4, a5 # 170a: 504420 + extui a3, a4, 0, 6 # 170d: 403054 + srli a4, a4, 6 # 1710: 404641 + and a4, a4, a7 # 1713: 704410 + slli a4, a4, 6 # 1716: a04411 + or a3, a3, a4 # 1719: 403320 + s32i a3, a6, 0 /* a3 -> [[arg0+0x20]] */ # 171c: 3906 + srli a0, a3, 6 # 171e: 300641 +.Lbr233: bbci a0, 12, .Lbr234 # 1721: c7605d + l8ui a9, a12, 17 # 1724: 920c11 + bnei a9, 3, .Lbr234 # 1727: 663957 + l8ui a10, a6, 4 /* [[arg0+0x20]+0x4] */ # 172a: a20604 + srli a10, a10, 4 # 172d: a0a441 + blti a10, 3, .Lbr234 # 1730: a63a4e + movi a4, 0x0000f03f # 1733: 41cdff + extui a9, a3, 0, 6 # 1736: 309054 + l8ui a5, a6, 5 /* [[arg0+0x20]+0x5] */ # 1739: 520605 + or a10, a0, a8 # 173c: 80a020 + slli a10, a10, 6 # 173f: a0aa11 + extui a11, a5, 0, 6 # 1742: 50b054 + or a9, a9, a10 # 1745: a09920 + srli a10, a9, 6 # 1748: 90a641 + and a10, a10, a7 # 174b: 70aa10 + extui a9, a9, 0, 6 # 174e: 909054 + slli a10, a10, 6 # 1751: a0aa11 + or a9, a9, a10 # 1754: a09920 + l8ui a10, a6, 6 /* [[arg0+0x20]+0x6] */ # 1757: a20606 + slli a11, a11, 6 # 175a: a0bb11 + slli a10, a10, 8 # 175d: 80aa11 + or a10, a10, a5 # 1760: 50aa20 + and a10, a10, a4 # 1763: 40aa10 + or a10, a10, a11 # 1766: b0aa20 + s8i a10, a6, 5 /* a10 -> [[arg0+0x20]+0x5] */ # 1769: a24605 + srli a10, a10, 8 # 176c: a0a841 + s8i a10, a6, 6 /* a10 -> [[arg0+0x20]+0x6] */ # 176f: a24606 + l32i a4, a2, 32 /* [arg0+0x20] */ # 1772: 4882 + s32i a9, a6, 0 /* a9 -> [[arg0+0x20]] */ # 1774: 9906 + l8ui a11, a4, 5 /* [[arg0+0x20]+0x5] */ # 1776: b20405 + movi a5, 192 /* 0x000000c0 */ # 1779: 52a0c0 + and a11, a11, a5 # 177c: 50bb10 + s8i a11, a4, 5 /* a11 -> [[arg0+0x20]+0x5] */ # 177f: b24405 +.Lbr234: mov a2, a12 # 1782: 2d0c + movi a3, 0 /* 0x00000000 */ # 1784: 0c03 + call0 .Lfunc004 # 1786: 859afe +.Lbr235: l8ui a11, a12, 6 # 1789: b20c06 + s32i a11, sp, 0 /* a11 -> [(local0)] */ # 178c: b901 + call0 rand # 178e: 01baffc0 + # 1792: 0000 + l8ui a3, a12, 5 # 1794: 320c05 + l32i a7, sp, 0 /* [(local0)] */ # 1797: 7801 + movi a6, 31 /* 0x0000001f */ # 1799: 1cf6 + movi a5, 1 /* 0x00000001 */ # 179b: 0c15 + s8i a5, a12, 17 # 179d: 524c11 + sub a6, a6, a7 # 17a0: 7066c0 + ssr a6 # 17a3: 000640 + sra a4, a2 # 17a6: 2040b1 + l8ui a2, a12, 4 # 17a9: 220c04 + extui a4, a4, 0, 16 # 17ac: 4040f4 + call0 wDev_EnableTransmit # 17af: 01b3ffc0 + # 17b3: 0000 + l32i a12, sp, 8 /* [(local2)] */ # 17b5: c821 + l32i a0, sp, 4 /* [(local1)] */ # 17b7: 0811 + addi sp, sp, 16 /* (top of frame) */ # 17b9: 12c110 + ret # 17bc: 0df0 + + .literal_position # 17c0: 00000000 + +# Function @ .text+0x17c4 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 +.Lfunc016: movi a3, 0 /* 0x00000000 */ # 17c4: 0c03 + addi sp, sp, -16 /* (local0) */ # 17c6: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 17c9: c911 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 17cb: 0901 + mov a12, a2 /* arg0 */ # 17cd: cd02 + call0 .Lfunc004 # 17cf: 0596fe + l8ui a2, a12, 4 /* [arg0+0x4] */ # 17d2: 220c04 + movi a3, 0 /* 0x00000000 */ # 17d5: 0c03 + movi a4, 0 /* 0x00000000 */ # 17d7: 0c04 + movi a0, 1 /* 0x00000001 */ # 17d9: 0c10 + s8i a0, a12, 17 /* 0x01 -> [arg0+0x11] */ # 17db: 024c11 + call0 wDev_EnableTransmit # 17de: 01f8ffc0 + # 17e2: 0000 + l32i a12, sp, 4 /* [(local1)] */ # 17e4: c811 + l32i a0, sp, 0 /* [(local0)] */ # 17e6: 0801 + addi sp, sp, 16 /* (top of frame) */ # 17e8: 12c110 + ret # 17eb: 0df0 + + .literal_position # 17f0: 00000000 + # 17f4: 00000000 + # 17f8: 00000000 + # 17fc: 00000000 + +# Function @ .text+0x1800 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 +.Lfunc017: addi sp, sp, -16 /* (local0) */ # 1800: 12c1f0 + s32i a3, sp, 0 /* arg1 -> [(local0)] */ # 1803: 3901 + s32i a12, sp, 8 /* a12 -> [(local2)] */ # 1805: c921 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 1807: 0911 + mov a12, a2 /* arg0 */ # 1809: cd02 + call0 ppEnqueueTxDone # 180b: 01f9ffc0 + # 180f: 0000 + l32i a3, a12, 32 /* [arg0+0x20] */ # 1811: 388c + l32i a0, a3, 0 /* [[arg0+0x20]] */ # 1813: 0803 + bbci a0, 9, .Lbr236 # 1815: 97600a + bbsi a0, 28, .Lbr236 # 1818: c7f007 + l32i a2, a12, 24 /* [arg0+0x18] */ # 181b: 286c + call0 rcUpdateTxDone # 181d: 01f5ffc0 + # 1821: 0000 +.Lbr236: movi a2, 4 /* 0x00000004 */ # 1823: 0c42 + movi a3, 0 /* 0x00000000 */ # 1825: 0c03 + call0 pp_post # 1827: 01f4ffc0 + # 182b: 0000 + l32i a0, sp, 0 /* [(local0)] */ # 182d: 0801 + beqz a0, .Lbr237 # 182f: 9c90 + l32i a2, a12, 32 /* [arg0+0x20] */ # 1831: 288c + l8ui a2, a2, 6 /* [[arg0+0x20]+0x6] */ # 1833: 220206 + extui a2, a2, 4, 3 # 1836: 202424 + call0 lmacIsIdle # 1839: 050000 + beqz a2, .Lbr237 # 183c: 8cc2 + l32i a2, a12, 32 /* [arg0+0x20] */ # 183e: 288c + l8ui a2, a2, 6 /* [[arg0+0x20]+0x6] */ # 1840: 220206 + extui a2, a2, 4, 3 # 1843: 202424 + call0 ppProcessTxQ # 1846: 01edffc0 + # 184a: 0000 +.Lbr237: l32i a12, sp, 8 /* [(local2)] */ # 184c: c821 + l32i a0, sp, 4 /* [(local1)] */ # 184e: 0811 + addi sp, sp, 16 /* (top of frame) */ # 1850: 12c110 + ret # 1853: 0df0 + + .literal_position # 1858: 00000000 + # 185c: 00000000 + +# Function @ .text+0x1860 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global lmacRxDone + .type lmacRxDone, @function +lmacRxDone: addi sp, sp, -16 /* (local0) */ # 1860: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1863: 0901 + call0 ppEnqueueRxq # 1865: 01fcffc0 + # 1869: 0000 + movi a2, 5 /* 0x00000005 */ # 186b: 0c52 + movi a3, 0 /* 0x00000000 */ # 186d: 0c03 + call0 pp_post # 186f: 01fbffc0 + # 1873: 0000 + l32i a0, sp, 0 /* [(local0)] */ # 1875: 0801 + addi sp, sp, 16 /* (top of frame) */ # 1877: 12c110 + ret # 187a: 0df0 + + .section .bss, "aw", @nobits + +.Ldata001: .byte 0x00 + .byte 0x00, 0x00, 0x00 + .global lmacConfMib + .type lmacConfMib, @object +lmacConfMib: + .word 0x00000000 # 4: 00000000 +.Ldata002: .word 0x00000000 # 8: 00000000 +.Ldata003: .byte 0x00 +.Ldata004: .byte 0x00 +.Ldata005: .hword 0x0000 # e: 0000 +.Ldata006: .hword 0x0000 # 10: 0000 + .balign 4 +.Ldata007: .hword 0x0000 # 14: 0000 + +# NOTE: 4 non-alignment zero bytes skipped. + + .skip 6 +.Ldata008: .hword 0x0000 # 1c: 0000 +.Ldata009: .hword 0x0000 # 1e: 0000 + +# NOTE: 4 non-alignment zero bytes skipped. + + .skip 4 +.Ldata010: .word 0x00000000 # 24: 00000000 +.Ldata011: .word 0x00000000 # 28: 00000000 +.Ldata012: .byte 0x00 + .byte 0x00, 0x00, 0x00 +.Label001: .space 288 + + .section .irom0.text, "ax", @progbits + + .literal_position # 0: 30000000 + +# Function @ .irom0.text+0x4 + .balign 4 + .global lmacInitAc + .type lmacInitAc, @function +lmacInitAc: movi a7, 0 /* 0x00000000 */ # 4: 0c07 + movi a9, .Label001 # 6: 91feff + addx8 a8, a2, a2 # 9: 2082b0 + addx4 a8, a8, a9 # c: 9088a0 + s8i a2, a8, 4 # f: 224804 + s8i a3, a8, 5 # 12: 324805 + s8i a5, a8, 8 # 15: 524808 + s8i a4, a8, 7 # 18: 424807 + s8i a4, a8, 6 # 1b: 424806 + s16i a6, a8, 24 # 1e: 62580c + s8i a7, a8, 9 # 21: 724809 + s8i a7, a8, 10 # 24: 72480a + s8i a7, a8, 17 # 27: 724811 + s32i a7, a8, 28 # 2a: 7978 + s32i a7, a8, 32 # 2c: 7988 + ret /* arg0 */ # 2e: 0df0 + + .literal_position # 30: c00b0000 + # 34: 00000000 + # 38: 00000000 + # 3c: 00000000 + +# Function @ .irom0.text+0x40 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global lmacInit + .type lmacInit, @function +lmacInit: addi sp, sp, -16 /* (local0) */ # 40: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 43: 0901 + call0 .Lfunc018 # 45: c50700 + movi a2, 2 /* 0x00000002 */ # 48: 0c22 + movi a3, 3 /* 0x00000003 */ # 4a: 0c33 + movi a4, 4 /* 0x00000004 */ # 4c: 0c44 + movi a5, 10 /* 0x0000000a */ # 4e: 0ca5 + movi a6, 0 /* 0x00000000 */ # 50: 0c06 + call0 lmacInitAc # 52: 050000 + movi a2, 3 /* 0x00000003 */ # 55: 0c32 + movi a3, 7 /* 0x00000007 */ # 57: 0c73 + movi a4, 4 /* 0x00000004 */ # 59: 0c44 + movi a5, 10 /* 0x0000000a */ # 5b: 0ca5 + movi a6, 0 /* 0x00000000 */ # 5d: 0c06 + call0 lmacInitAc # 5f: 050000 + movi a2, 1 /* 0x00000001 */ # 62: 0c12 + movi a3, 2 /* 0x00000002 */ # 64: 0c23 + movi a4, 3 /* 0x00000003 */ # 66: 0c34 + movi a5, 4 /* 0x00000004 */ # 68: 0c45 + movi a6, 0x00000bc0 # 6a: 61f1ff + call0 lmacInitAc # 6d: 050000 + movi a2, 0 /* 0x00000000 */ # 70: 0c02 + movi a3, 2 /* 0x00000002 */ # 72: 0c23 + movi a4, 2 /* 0x00000002 */ # 74: 0c24 + movi a5, 3 /* 0x00000003 */ # 76: 0c35 + movi a6, 1504 /* 0x000005e0 */ # 78: 62a5e0 + call0 lmacInitAc # 7b: 050000 + movi a2, 4 /* 0x00000004 */ # 7e: 0c42 + movi a3, 2 /* 0x00000002 */ # 80: 0c23 + movi a4, 4 /* 0x00000004 */ # 82: 0c44 + movi a5, 10 /* 0x0000000a */ # 84: 0ca5 + movi a6, 0 /* 0x00000000 */ # 86: 0c06 + call0 lmacInitAc # 88: 050000 + movi a2, 7 /* 0x00000007 */ # 8b: 0c72 + movi a3, 2 /* 0x00000002 */ # 8d: 0c23 + movi a4, 5 /* 0x00000005 */ # 8f: 0c54 + movi a5, 10 /* 0x0000000a */ # 91: 0ca5 + movi a6, 0 /* 0x00000000 */ # 93: 0c06 + call0 lmacInitAc # 95: 050000 + movi a2, .Ldata001 # 98: 21e7ff + movi a3, 8 /* 0x00000008 */ # 9b: 0c83 + s8i a3, a2, 0 /* 0x08 -> [.Ldata001] */ # 9d: 324200 + l16ui a2, a2, 28 /* [.Ldata008] */ # a0: 22120e + movi a3, 1 /* 0x00000001 */ # a3: 0c13 + call0 RC_SetBasicRate # a5: 01e4ffc0 + # a9: 0000 + call0 rcAttach # ab: 01e4ffc0 + # af: 0000 + l32i a0, sp, 0 /* [(local0)] */ # b1: 0801 + addi sp, sp, 16 /* (top of frame) */ # b3: 12c110 + ret # b6: 0df0 + + .literal_position # b8: 00000000 + # bc: 2a090000 + # c0: ff0f0000 + +# Function @ .irom0.text+0xc4 + .balign 4 +.Lfunc018: movi a2, 0x00000fff # c4: 21ffff + movi a4, 351 /* 0x0000015f */ # c7: 42a15f + movi a5, 9 /* 0x00000009 */ # ca: 0c95 + movi a6, 0x0000092a # cc: 61fcff + movi a7, 11 /* 0x0000000b */ # cf: 0cb7 + movi a3, .Ldata001 # d1: 31f9ff + movi a8, 512 /* 0x00000200 */ # d4: 82a200 + s32i a8, a3, 4 /* 0x00000200 -> [lmacConfMib] */ # d7: 8913 + s32i a8, a3, 8 /* 0x00000200 -> [.Ldata002] */ # d9: 8923 + s8i a7, a3, 13 /* 0x0b -> [.Ldata004] */ # db: 72430d + s8i a7, a3, 12 /* 0x0b -> [.Ldata003] */ # de: 72430c + s16i a6, a3, 16 /* 0x092a -> [.Ldata006] */ # e1: 625308 + s16i a6, a3, 14 /* 0x092a -> [.Ldata005] */ # e4: 625307 + s16i a5, a3, 20 /* 0x0009 -> [.Ldata007] */ # e7: 52530a + s16i a4, a3, 28 /* 0x015f -> [.Ldata008] */ # ea: 42530e + s16i a2, a3, 30 /* 0x0fff -> [.Ldata009] */ # ed: 22530f + ret /* 0x00000fff */ # f0: 0df0 + + .section .rodata.str1.4, "MSa", @progbits, 1 + +.Lstr001: .asciz "%s %u\n" # 0: 25732025 + # 4: 750a00 + .balign 4 +.Lstr002: .asciz "lmac.c" # 8: 6c6d6163 + # c: 2e6300 + .balign 4 +.Lstr003: .asciz "tx rts error 0x%x\n" # 10: 74782072 + # 14: 74732065 + # 18: 72726f72 + # 1c: 20307825 + # 20: 780a00 + .balign 4 +.Lstr004: .asciz "tx error 0x%x\n" # 24: 74782065 + # 28: 72726f72 + # 2c: 20307825 + # 30: 780a00 diff --git a/binary_sdk/libpp_stage1/mac_frame.S b/binary_sdk/libpp_stage1/mac_frame.S new file mode 100644 index 0000000..e69de29 diff --git a/binary_sdk/libpp_stage1/pm.S b/binary_sdk/libpp_stage1/pm.S new file mode 100644 index 0000000..a3f9582 --- /dev/null +++ b/binary_sdk/libpp_stage1/pm.S @@ -0,0 +1,3167 @@ + + .section .data, "aw", @progbits + +.Ldata001: .byte 0x02 + + .section .bss, "aw", @nobits + +.Ldata002: .byte 0x00 +.Ldata003: .byte 0x00 + .byte 0x00, 0x00 +.Ldata004: .word 0x00000000 # 4: 00000000 +.Ldata005: .word 0x00000000 # 8: 00000000 +.Ldata006: .word 0x00000000 # c: 00000000 +.Ldata007: .word 0x00000000 # 10: 00000000 +.Ldata008: .word 0x00000000 # 14: 00000000 +.Ldata009: .word 0x00000000 # 18: 00000000 +.Ldata010: .word 0x00000000 # 1c: 00000000 + +# NOTE: 4 non-alignment zero bytes skipped. + + .skip 4 +.Ldata011: .word 0x00000000 # 24: 00000000 + +# NOTE: 4 non-alignment zero bytes skipped. + + .skip 4 +.Ldata012: .hword 0x0000 # 2c: 0000 +.Ldata013: .byte 0x00 +.Ldata014: .byte 0x00 +.Ldata015: .word 0x00000000 # 30: 00000000 +.Ldata016: .byte 0x00 +.Ldata017: .byte 0x00 +.Ldata018: .byte 0x00 +.Ldata019: .byte 0x00 +.Ldata020: .byte 0x00 +.Ldata021: .byte 0x00 +.Ldata022: .byte 0x00 +.Ldata023: .byte 0x00 +.Ldata024: .byte 0x00 +.Ldata025: .byte 0x00 +.Ldata026: .byte 0x00 +.Ldata027: .byte 0x00 +.Ldata028: .byte 0x00 +.Label001: .space 7 +.Ldata029: .hword 0x0000 # 48: 0000 + .balign 4 +.Ldata030: .word 0x00000000 # 4c: 00000000 +.Ldata031: .word 0x00000000 # 50: 00000000 +.Label002: .space 28 +.Label003: .space 28 +.Label004: .space 28 +.Label005: .space 28 +.Label006: .space 24 +.Label007: .word 0x00000000 # dc: 00000000 +.Ldata032: .byte 0x00 +.Ldata033: .byte 0x00 +.Ldata034: .byte 0x00 +.Ldata035: .byte 0x00 +.Ldata036: .byte 0x00 + +# NOTE: 1 non-alignment zero bytes skipped. + + .skip 1 +.Ldata037: .hword 0x0000 # e6: 0000 +.Ldata038: .hword 0x0000 # e8: 0000 + +# NOTE: 8 non-alignment zero bytes skipped. + + .skip 10 +.Ldata039: .byte 0x00 +.Ldata040: .byte 0x00 + .byte 0x00, 0x00 +.Ldata041: .word 0x00000000 # f8: 00000000 + .word 0x00000000 # fc: 00000000 + .space 64 +.Ldata042: .byte 0x00, 0x00, 0x00 + .byte 0x00 +.Ldata043: .byte 0x00 +.Ldata044: .byte 0x00 +.Ldata045: .byte 0x00 +.Ldata046: .byte 0x00 +.Ldata047: .byte 0x00 + + .section .irom0.text, "ax", @progbits + + .literal_position # 0: 00000000 + # 4: 00000000 + # 8: 00000000 + +# Function @ .irom0.text+0xc +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 +.Lfunc001: addi sp, sp, -16 /* (local0) */ # c: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # f: 0901 + call0 vPortEnterCritical # 11: 01fcffc0 + # 15: 0000 + movi a4, .Ldata002 # 17: 41faff + l8ui a2, a4, 0 /* [.Ldata002] */ # 1a: 220400 + addmi a3, a4, 256 /* .bss+0x100 */ # 1d: 32d401 + addi a0, a2, 1 /* [.Ldata002]+0x1 */ # 20: 1b02 + addx8 a2, a2, a3 # 22: 3022b0 + extui a0, a0, 0, 8 # 25: 000074 + bltui a0, 8, .Lbr001 # 28: b68001 + movi a0, 0 /* 0x00000000 */ # 2b: 0c00 +.Lbr001: s32i a2, sp, 4 /* a2 -> [(local1)] */ # 2d: 2911 + l8ui a5, a4, 1 /* [.Ldata003] */ # 2f: 520401 + s8i a0, a4, 0 /* a0 -> [.Ldata002] */ # 32: 024400 + addi a5, a5, 1 /* [.Ldata003]+0x1 */ # 35: 1b55 + s8i a5, a4, 1 /* [.Ldata003]+0x1 -> [.Ldata003] */ # 37: 524401 + call0 vPortExitCritical # 3a: 01f3ffc0 + # 3e: 0000 + l32i a6, sp, 0 /* [(local0)] */ # 40: 6801 + l32i a2, sp, 4 /* [(local1)] */ # 42: 2811 + mov a0, a6 /* [(local0)] */ # 44: 0d06 + addi sp, sp, 16 /* (top of frame) */ # 46: 12c110 + ret /* [(local1)] */ # 49: 0df0 + + .literal_position # 4c: 00000000 + +# Function @ .irom0.text+0x50 + .balign 4 +.Lfunc002: movi a3, .Ldata002 # 50: 31ffff + l8ui a2, a3, 1 /* [.Ldata003] */ # 53: 220301 + addi a2, a2, -1 /* [.Ldata003]-0x1 */ # 56: 0b22 + s8i a2, a3, 1 /* [.Ldata003]-0x1 -> [.Ldata003] */ # 58: 224301 + ret /* [.Ldata003]-0x1 */ # 5b: 0df0 + + .literal_position # 60: 00000000 + # 64: 00000000 + # 68: 04000000 + # 6c: 00000000 + # 70: 00000000 + +# Function @ .irom0.text+0x74 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global pm_rtc_clock_cali_proc + .type pm_rtc_clock_cali_proc, @function +pm_rtc_clock_cali_proc: + movi a2, 106 /* 0x0000006a */ # 74: 22a06a + movi a3, 2 /* 0x00000002 */ # 77: 0c23 + movi a4, 8 /* 0x00000008 */ # 79: 0c84 + movi a7, .Ldata002 # 7b: 71f9ff + addi sp, sp, -16 /* (local0) */ # 7e: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 81: 0901 + movi a0, g_phyFuns # 83: 01f8ff + movi a6, 0 /* 0x00000000 */ # 86: 0c06 + l32i a0, a0, 0 /* [g_phyFuns] */ # 88: 0800 + mov a5, a6 /* 0x00000000 */ # 8a: 5d06 + l32i a0, a0, 152 /* [[g_phyFuns]+0x98] */ # 8c: 022026 + s32i a6, a7, 8 /* 0x00000000 -> [.Ldata005] */ # 8f: 6927 + callx0 a0 /* [[g_phyFuns]+0x98] */ # 91: c00000 + movi a2, .Ldata004 # 94: 21f5ff + call0 pm_rtc_clock_cali # 97: 01f6ffc0 + # 9b: 0000 + movi a2, .Ldata002 # 9d: 21f3ff + l32i a0, sp, 0 /* [(local0)] */ # a0: 0801 + addi sp, sp, 16 /* (top of frame) */ # a2: 12c110 + l32i a2, a2, 8 /* [.Ldata005] */ # a5: 2822 + ret /* [.Ldata005] */ # a7: 0df0 + + .literal_position # ac: 00000000 + # b0: 00000000 + # b4: 00000000 + +# Function @ .irom0.text+0xb8 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global pm_set_sleep_time + .type pm_set_sleep_time, @function +pm_set_sleep_time: + movi a3, .Ldata002 # b8: 31fdff + addi sp, sp, -16 /* (local0) */ # bb: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # be: 0901 + l32i a3, a3, 8 /* [.Ldata005] */ # c0: 3823 + call0 pm_usec2rtc # c2: 01fbffc0 + # c6: 0000 + call0 pm_set_sleep_cycles # c8: 01fbffc0 + # cc: 0000 + l32i a0, sp, 0 /* [(local0)] */ # ce: 0801 + addi sp, sp, 16 /* (top of frame) */ # d0: 12c110 + ret # d3: 0df0 + + .literal_position # d8: 00000000 + # dc: 00000000 + # e0: 00000000 + # e4: 00000000 + # e8: 00000000 + # ec: 00000000 + # f0: 00000000 + # f4: 00feef3f + # f8: 00000000 + # fc: 00feef3f + # 100: 00000000 + # 104: 00000000 + # 108: 00000000 + # 10c: 00000000 + # 110: 00000000 + # 114: 00000000 + # 118: 00000000 + # 11c: 00000000 + # 120: 00000000 + # 124: 00000000 + +# Function @ .irom0.text+0x128 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 +.Lfunc003: addi sp, sp, -16 /* (local0) */ # 128: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 12b: 0901 + movi a0, .Ldata001 # 12d: 01eaff + movi a2, .Ldata002 # 130: 21ebff + l8ui a0, a0, 0 /* [.Ldata001] */ # 133: 020000 + l8ui a2, a2, 224 /* [.Ldata032] */ # 136: 2202e0 + bnei a0, 1, .Lbr002 # 139: 661017 + bgeui a2, 2, .Lbr006 # 13c: f62265 + movi a2, 2 /* 0x00000002 */ # 13f: 0c22 + movi a3, 0 /* 0x00000000 */ # 141: 0c03 + call0 pm_wakeup_init # 143: 01efffc0 + # 147: 0000 + movi a4, .Ldata002 # 149: 41e5ff + movi a3, 2 /* 0x00000002 */ # 14c: 0c23 + s8i a3, a4, 224 /* 0x02 -> [.Ldata032] */ # 14e: 3244e0 + j .Lbr007 # 151: 861600 +.Lbr002: bnei a0, 2, .Lbr003 # 154: 662019 + movi a2, 1 /* 0x00000001 */ # 157: 0c12 + call0 clockgate_watchdog # 159: 01eaffc0 + # 15d: 0000 + movi a2, 8 /* 0x00000008 */ # 15f: 0c82 + movi a3, 0 /* 0x00000000 */ # 161: 0c03 + call0 pm_wakeup_init # 163: 01e9ffc0 + # 167: 0000 + movi a2, 0 /* 0x00000000 */ # 169: 0c02 + call0 clockgate_watchdog # 16b: 01e8ffc0 + # 16f: 0000 +.Lbr003: movi a2, .Label008 # 171: 21dcff + call0 printf # 174: 01e7ffc0 + # 178: 0000 + movi a4, pend_flag_periodic_cal # 17a: 41dbff + l8ui a5, a4, 0 /* [pend_flag_periodic_cal] */ # 17d: 520400 + movi a0, 0 /* 0x00000000 */ # 180: 0c00 + bnei a5, 1, .Lbr004 # 182: 66150c + movi a2, 0 /* 0x00000000 */ # 185: 0c02 + s8i a2, a4, 0 /* 0x00 -> [pend_flag_periodic_cal] */ # 187: 224400 + call0 periodic_cal_top # 18a: 01e2ffc0 + # 18e: 0000 + movi a0, 0 /* 0x00000000 */ # 190: 0c00 +.Lbr004: movi a2, pend_flag_noise_check # 192: 21d6ff + l8ui a6, a2, 0 /* [pend_flag_noise_check] */ # 195: 620200 + bnei a6, 1, .Lbr005 # 198: 661602 + s8i a0, a2, 0 /* 0x00 -> [pend_flag_noise_check] */ # 19b: 024200 +.Lbr005: l32i a0, sp, 0 /* [(local0)] */ # 19e: 0801 + addi sp, sp, 16 /* (top of frame) */ # 1a0: 12c110 + ret /* pend_flag_noise_check */ # 1a3: 0df0 +.Lbr006: movi a2, 2 /* 0x00000002 */ # 1a5: 0c22 + movi a3, 1 /* 0x00000001 */ # 1a7: 0c13 + call0 pm_wakeup_init # 1a9: 01dbffc0 + # 1ad: 0000 +.Lbr007: movi a7, NMIIrqIsOn # 1af: 71d0ff + l8ui a7, a7, 0 /* [NMIIrqIsOn] */ # 1b2: 720700 + bnez a7, .Lbr008 # 1b5: dcd7 + movi a11, -32 /* 0xffffffe0 */ # 1b7: 6c0b + memw # 1b9: c02000 + movi a10, 0x3feffe00 # 1bc: a1ceff + l32i a9, a10, 0x200 /* [0x3ff00000] */ # 1bf: 922a80 + and a9, a9, a11 # 1c2: b09910 + movi a11, 1 /* 0x00000001 */ # 1c5: 0c1b + or a9, a9, a11 # 1c7: b09920 + memw # 1ca: c02000 + s32i a9, a10, 0x200 /* a9 -> [0x3ff00000] */ # 1cd: 926a80 + call0 vPortExitCritical # 1d0: 01d3ffc0 + # 1d4: 0000 +.Lbr008: movi a2, 0 /* 0x00000000 */ # 1d6: 0c02 + call0 clockgate_watchdog # 1d8: 01d2ffc0 + # 1dc: 0000 + movi a0, .Ldata002 # 1de: 01c6ff + l8ui a0, a0, 225 /* [.Ldata033] */ # 1e1: 0200e1 + bnei a0, 1, .Lbr003 # 1e4: 661089 + memw # 1e7: c02000 + movi a3, 0x3feffe00 # 1ea: 31c4ff + l32i a2, a3, 0x214 /* [0x3ff00014] */ # 1ed: 222385 + movi a4, 1 /* 0x00000001 */ # 1f0: 0c14 + or a2, a2, a4 # 1f2: 402220 + memw # 1f5: c02000 + s32i a2, a3, 0x214 /* a2 -> [0x3ff00014] */ # 1f8: 226385 + movi a2, 160 /* 0x000000a0 */ # 1fb: 22a0a0 + call0 ets_update_cpu_frequency # 1fe: 01c9ffc0 + # 202: 0000 + j .Lbr003 # 204: 46daff + + .literal_position # 208: 00000000 + # 20c: 000af23f + +# Function @ .irom0.text+0x210 + .balign 4 +.Lfunc004: movi a6, .Ldata002 # 210: 61feff + l8ui a2, a6, 54 /* [.Ldata018] */ # 213: 220636 + movi a5, 0x3ff20a00 # 216: 51fdff + beqz a2, .Lbr009 # 219: ac12 + memw # 21b: c02000 + l8ui a4, a6, 62 /* [.Ldata026] */ # 21e: 42063e + l32i a5, a5, 0x200 /* [0x3ff20c00] */ # 221: 522580 + l32i a2, a6, 24 /* [.Ldata009] */ # 224: 2866 + l32i a3, a6, 48 /* [.Ldata015] */ # 226: 38c6 + sub a2, a2, a5 # 228: 5022c0 + mull a3, a3, a4 # 22b: 403382 + bltu a3, a2, .Lbr009 # 22e: 27330c + l32i a8, a6, 76 /* [.Ldata030] */ # 231: 822613 + l16ui a7, a6, 44 /* [.Ldata012] */ # 234: 721616 + add a7, a7, a8 # 237: 8a77 + bgeu a7, a2, .Lbr009 # 239: 27b701 + ret # 23c: 0df0 +.Lbr009: movi a2, 0 /* 0x00000000 */ # 23e: 0c02 + ret /* 0x00000000 */ # 240: 0df0 + + .literal_position # 244: 00000000 + +# Function @ .irom0.text+0x248 + .balign 4 + .global pm_rf_is_closed + .type pm_rf_is_closed, @function +pm_rf_is_closed: + movi a4, .Ldata002 # 248: 41ffff + movi a3, 1 /* 0x00000001 */ # 24b: 0c13 + l8ui a4, a4, 53 /* [.Ldata017] */ # 24d: 420435 + movi a2, 0 /* 0x00000000 */ # 250: 0c02 + extui a4, a4, 1, 3 # 252: 404124 + addi a4, a4, -3 # 255: 42c4fd + moveqz a2, a3, a4 # 258: 402383 + ret # 25b: 0df0 + + .literal_position # 260: 00000000 + # 264: 04000000 + # 268: 10000000 + # 26c: 04000000 + # 270: 18000000 + # 274: 20000000 + # 278: 48000000 + # 27c: 54000000 + # 280: 00000000 + # 284: 00000000 + # 288: 00000000 + # 28c: 00000000 + # 290: 00000000 + +# Function @ .irom0.text+0x294 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 + .global pm_set_sleep_type_from_upper + .type pm_set_sleep_type_from_upper, @function +pm_set_sleep_type_from_upper: + addi sp, sp, -16 /* (local0) */ # 294: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 297: 0901 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 299: d921 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 29b: c911 + movi a13, .Ldata002 # 29d: d1f0ff + extui a12, a2, 0, 8 # 2a0: 20c074 + bnez a12, .Lbr010 # 2a3: dc2c + movi a2, .Lstr001 # 2a5: 21efff + movi a3, .Lstr002 # 2a8: 31f0ff + movi a0, 0 /* 0x00000000 */ # 2ab: 0c00 + s8i a0, a13, 228 /* 0x00 -> [.Ldata036] */ # 2ad: 024de4 + call0 printf # 2b0: 01f4ffc0 + # 2b4: 0000 + j .Lbr014 # 2b6: 860f00 +.Lbr010: movi a2, 1 /* 0x00000001 */ # 2b9: 0c12 + movi a3, .Lstr003 # 2bb: 31edff + s8i a2, a13, 228 /* 0x01 -> [.Ldata036] */ # 2be: 224de4 + movi a2, .Lstr001 # 2c1: 21eaff + call0 printf # 2c4: 01f0ffc0 + # 2c8: 0000 + beqi a12, 1, .Lbr011 # 2ca: 261c08 + beqi a12, 2, .Lbr011 # 2cd: 262c05 + s8i a12, a13, 227 /* a12 -> [.Ldata035] */ # 2d0: c24de3 + j .Lbr014 # 2d3: 460800 +.Lbr011: l8ui a3, a13, 226 /* [.Ldata034] */ # 2d6: 320de2 + beq a3, a12, .Lbr013 # 2d9: c71312 + bnei a12, 1, .Lbr012 # 2dc: 661c0a + movi a2, .Lstr004 # 2df: 21e5ff + call0 printf # 2e2: 01e9ffc0 + # 2e6: 0000 + movi a12, 2 /* 0x00000002 */ # 2e8: 0c2c +.Lbr012: mov a3, a12 # 2ea: 3d0c + s8i a12, a13, 226 /* a12 -> [.Ldata034] */ # 2ec: c24de2 +.Lbr013: movi a2, .Lstr005 # 2ef: 21e2ff + call0 printf # 2f2: 01e6ffc0 + # 2f6: 0000 +.Lbr014: movi a2, .Label009 # 2f8: 21e1ff + call0 printf # 2fb: 01e5ffc0 + # 2ff: 0000 + l32i a12, sp, 4 /* [(local1)] */ # 301: c811 + l32i a13, sp, 8 /* [(local2)] */ # 303: d821 + l32i a0, sp, 0 /* [(local0)] */ # 305: 0801 + addi sp, sp, 16 /* (top of frame) */ # 307: 12c110 + ret # 30a: 0df0 + + .literal_position # 30c: 00000000 + +# Function @ .irom0.text+0x310 + .balign 4 + .global pm_get_sleep_type + .type pm_get_sleep_type, @function +pm_get_sleep_type: + movi a2, .Ldata002 # 310: 21ffff + movi a3, 0 /* 0x00000000 */ # 313: 0c03 + l8ui a4, a2, 228 /* [.Ldata036] */ # 315: 4202e4 + l8ui a2, a2, 226 /* [.Ldata034] */ # 318: 2202e2 + addi a4, a4, -1 /* [.Ldata036]-0x1 */ # 31b: 0b44 + movnez a2, a3, a4 # 31d: 402393 + ret # 320: 0df0 + + .literal_position # 324: 00000000 + # 328: 68000000 + # 32c: 58000000 + # 330: 60000000 + # 334: 70000000 + # 338: 88000000 + # 33c: 54000000 + # 340: 90000000 + # 344: 00000000 + # 348: 00000000 + # 34c: 00000000 + # 350: 00000000 + # 354: 00000000 + # 358: 00000000 + # 35c: 00000000 + # 360: 00000000 + # 364: 00000000 + # 368: 00000000 + # 36c: 00000000 + +# Function @ .irom0.text+0x370 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 +.Lfunc005: addi sp, sp, -16 /* (local0) */ # 370: 12c1f0 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 373: d921 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 375: c911 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 377: 0901 + mov a12, a2 /* arg0 */ # 379: cd02 + call0 vTaskSuspendAll # 37b: 01f2ffc0 + # 37f: 0000 + movi a13, .Ldata002 # 381: d1e8ff + l8ui a0, a13, 53 /* [.Ldata017] */ # 384: 020d35 + extui a3, a0, 1, 3 # 387: 003124 + beqi a3, 3, .Lbr016 # 38a: 263325 + movi a2, .Lstr008 # 38d: 21e6ff + mov a4, a12 /* arg0 */ # 390: 4d0c + call0 printf # 392: 01edffc0 + # 396: 0000 + l8ui a0, a13, 53 /* [.Ldata017] */ # 398: 020d35 + extui a2, a0, 1, 3 # 39b: 002124 + beqi a2, 3, .Lbr016 # 39e: 263211 + movi a2, .Lstr006 # 3a1: 21e2ff + movi a3, .Lstr007 # 3a4: 31e3ff + movi a4, 570 /* 0x0000023a */ # 3a7: 42a23a + call0 printf # 3aa: 01e8ffc0 + # 3ae: 0000 +.Lbr015: j .Lbr015 /* (halt) */ # 3b0: 06ffff +.Lbr016: movi a2, 241 /* 0x000000f1 */ # 3b3: 22a0f1 + and a2, a0, a2 # 3b6: 202010 + bbci a0, 5, .Lbr020 # 3b9: 576058 + movi a0, 10 /* 0x0000000a */ # 3bc: 0ca0 + or a0, a2, a0 # 3be: 000220 +.Lbr017: s8i a0, a13, 53 /* a0 -> [.Ldata017] */ # 3c1: 024d35 + call0 .Lfunc003 # 3c4: 05d6ff + s8i a12, a13, 55 /* arg0 -> [.Ldata019] */ # 3c7: c24d37 + beqi a12, 2, .Lbr019 # 3ca: 262c36 + beqi a12, 4, .Lbr018 # 3cd: 264c05 + beqi a12, 8, .Lbr021 # 3d0: 268c46 + bnei a12, 16, .Lbr019 # 3d3: 66bc2d +.Lbr018: l8ui a2, a13, 53 /* [.Ldata017] */ # 3d6: 220d35 + bbci a2, 5, .Lbr019 # 3d9: 576227 + movi a12, .Label003 # 3dc: c1d6ff + mov a2, a12 /* .Label003 */ # 3df: 2d0c + call0 os_timer_disarm # 3e1: 01dbffc0 + # 3e5: 0000 + movi a4, 191 /* 0x000000bf */ # 3e7: 42a0bf + l8ui a3, a13, 53 /* [.Ldata017] */ # 3ea: 320d35 + mov a2, a12 /* .Label003 */ # 3ed: 2d0c + and a3, a3, a4 # 3ef: 403310 + movi a4, 64 /* 0x00000040 */ # 3f2: 4c04 + or a3, a3, a4 # 3f4: 403320 + s8i a3, a13, 53 /* a3 -> [.Ldata017] */ # 3f7: 324d35 + movi a4, 0 /* 0x00000000 */ # 3fa: 0c04 + movi a3, 10 /* 0x0000000a */ # 3fc: 0ca3 + call0 os_timer_arm # 3fe: 01d5ffc0 + # 402: 0000 +.Lbr019: call0 xTaskResumeAll # 404: 01d5ffc0 + # 408: 0000 + l32i a12, sp, 4 /* [(local1)] */ # 40a: c811 + l32i a13, sp, 8 /* [(local2)] */ # 40c: d821 + l32i a0, sp, 0 /* [(local0)] */ # 40e: 0801 + addi sp, sp, 16 /* (top of frame) */ # 410: 12c110 + ret # 413: 0df0 +.Lbr020: mov a0, a2 # 415: 0d02 + j .Lbr017 # 417: 86e9ff +.Lbr021: movi a2, .Lstr009 # 41a: 21c7ff + call0 printf # 41d: 01cfffc0 + # 421: 0000 + movi a12, .Label002 # 423: c1c6ff + mov a2, a12 /* .Label002 */ # 426: 2d0c + call0 os_timer_disarm # 428: 01ceffc0 + # 42c: 0000 + movi a2, .Lstr010 # 42e: 21c4ff + call0 printf # 431: 01ccffc0 + # 435: 0000 + l32i a2, a13, 80 /* [.Ldata031] */ # 437: 222d14 + movi a3, 1000 /* 0x000003e8 */ # 43a: 32a3e8 + call0 __udivsi3 # 43d: 01caffc0 + # 441: 0000 + mov a3, a2 # 443: 3d02 + movi a4, 0 /* 0x00000000 */ # 445: 0c04 + mov a2, a12 /* .Label002 */ # 447: 2d0c + call0 os_timer_arm # 449: 01c8ffc0 + # 44d: 0000 + j .Lbr019 # 44f: 46ecff + + .literal_position # 454: 00000000 + +# Function @ .irom0.text+0x458 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 +.Lfunc006: addi sp, sp, -16 /* (local0) */ # 458: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 45b: 0901 + movi a0, .Ldata001 # 45d: 01fdff + l8ui a0, a0, 0 /* [.Ldata001] */ # 460: 020000 + bnei a0, 2, .Lbr022 # 463: 662004 + movi a2, 8 /* 0x00000008 */ # 466: 0c82 + call0 .Lfunc005 # 468: 45f0ff +.Lbr022: l32i a0, sp, 0 /* [(local0)] */ # 46b: 0801 + addi sp, sp, 16 /* (top of frame) */ # 46d: 12c110 + ret # 470: 0df0 + + .balign 4 +# Function @ .irom0.text+0x474 + .balign 4 + .global uart_tx_flush + .type uart_tx_flush, @function +uart_tx_flush: + ret /* arg0 */ # 474: 0df0 + + .balign 4 +# Function @ .irom0.text+0x478 + .balign 4 + .global pm_suspend + .type pm_suspend, @function +pm_suspend: ret /* arg0 */ # 478: 0df0 + + .literal_position # 47c: 98000000 + # 480: 00000000 + # 484: 00000000 + # 488: 00000000 + # 48c: 00000000 + +# Function @ .irom0.text+0x490 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 +.Lfunc007: addi sp, sp, -16 /* (local0) */ # 490: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 493: 0901 + call0 vTaskSuspendAll # 495: 01fbffc0 + # 499: 0000 + movi a2, .Lstr011 # 49b: 21f8ff + call0 printf # 49e: 01faffc0 + # 4a2: 0000 + movi a2, .Ldata002 # 4a4: 21f7ff + movi a3, 4 /* 0x00000004 */ # 4a7: 0c43 + l8ui a0, a2, 53 /* [.Ldata017] */ # 4a9: 020235 + movi a4, 241 /* 0x000000f1 */ # 4ac: 42a0f1 + and a0, a0, a4 # 4af: 400010 + or a0, a0, a3 # 4b2: 300020 + s8i a0, a2, 53 /* a0 -> [.Ldata017] */ # 4b5: 024235 + call0 xTaskResumeAll # 4b8: 01f5ffc0 + # 4bc: 0000 + l32i a0, sp, 0 /* [(local0)] */ # 4be: 0801 + addi sp, sp, 16 /* (top of frame) */ # 4c0: 12c110 + ret # 4c3: 0df0 + + .literal_position # 4c8: 70000000 + # 4cc: 000af23f + # 4d0: a8000000 + # 4d4: 00900100 + # 4d8: 54000000 + # 4dc: bc000000 + # 4e0: c4000000 + # 4e4: dc000000 + # 4e8: e4000000 + # 4ec: 00000000 + # 4f0: 00000000 + # 4f4: 00000000 + # 4f8: 00000000 + # 4fc: 00000000 + # 500: 00000000 + # 504: 00000000 + # 508: 00000000 + # 50c: 00000000 + # 510: 00000000 + # 514: 00000000 + # 518: 00000000 + # 51c: 00000000 + # 520: 00000000 + +# Function @ .irom0.text+0x524 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word[4] @ -0x10 + .balign 4 +.Lfunc008: addi sp, sp, -32 /* (local0) */ # 524: 12c1e0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 527: c911 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 529: d921 + s32i a14, sp, 12 /* a14 -> [(local3)] */ # 52b: e931 + s32i a15, sp, 16 /* a15 -> [(local4)] */ # 52d: f941 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 52f: 0901 + call0 vTaskSuspendAll # 531: 01eeffc0 + # 535: 0000 + movi a15, .Label003 # 537: f1e4ff + movi a14, 0x3ff20a00 # 53a: e1e4ff + addi a12, a15, -28 /* .Label002 */ # 53d: c2cfe4 + addi a13, a15, -112 /* .Ldata002 */ # 540: d2cf90 + memw # 543: c02000 + l8ui a0, a13, 54 /* [.Ldata018] */ # 546: 020d36 + movi a3, 241 /* 0x000000f1 */ # 549: 32a0f1 + l8ui a2, a13, 53 /* [.Ldata017] */ # 54c: 220d35 + l32i a14, a14, 0x200 /* [0x3ff20c00] */ # 54f: e22e80 + and a2, a2, a3 # 552: 302210 + movi a3, 8 /* 0x00000008 */ # 555: 0c83 + or a2, a2, a3 # 557: 302220 + s8i a2, a13, 53 /* a2 -> [.Ldata017] */ # 55a: 224d35 + beqz a0, .Lbr027 # 55d: 16300a + l32i a5, a13, 20 /* [.Ldata008] */ # 560: 585d + l32i a3, a13, 48 /* [.Ldata015] */ # 562: 38cd + sub a0, a5, a14 # 564: e005c0 + bgeu a3, a0, .Lbr026 # 567: 07b349 + movi a15, 100 /* 0x00000064 */ # 56a: f2a064 + movi a12, 0 /* 0x00000000 */ # 56d: 0c0c + l8ui a4, a13, 62 /* [.Ldata026] */ # 56f: 420d3e +.Lbr023: addi a12, a12, 1 # 572: 1bcc + l32i a0, a13, 24 /* [.Ldata009] */ # 574: 086d + s32i a5, a13, 28 /* a5 -> [.Ldata010] */ # 576: 597d + mull a6, a4, a3 # 578: 306482 + add a5, a3, a5 # 57b: 5a53 + s32i a5, a13, 20 /* a5 -> [.Ldata008] */ # 57d: 595d + sub a2, a0, a5 # 57f: 5020c0 + bgeu a6, a2, .Lbr024 # 582: 27b603 + add a7, a6, a0 # 585: 0a76 + s32i a7, a13, 24 /* a7 -> [.Ldata009] */ # 587: 796d +.Lbr024: bne a12, a15, .Lbr025 # 589: f79c21 + movi a2, .Lstr012 # 58c: 21d1ff + mov a6, a14 /* [0x3ff20c00] */ # 58f: 6d0e + call0 printf # 591: 01d7ffc0 + # 595: 0000 + l32i a5, a13, 20 /* [.Ldata008] */ # 597: 585d + movi a9, 0x00019000 # 599: 91ceff + l32i a3, a13, 48 /* [.Ldata015] */ # 59c: 38cd + l8ui a4, a13, 62 /* [.Ldata026] */ # 59e: 420d3e + movi a10, 1 /* 0x00000001 */ # 5a1: 0c1a + moveqz a4, a10, a4 # 5a3: 404a83 + s8i a4, a13, 62 /* a4 -> [.Ldata026] */ # 5a6: 424d3e + moveqz a3, a9, a3 # 5a9: 303983 + s32i a3, a13, 48 /* a3 -> [.Ldata015] */ # 5ac: 39cd +.Lbr025: sub a8, a5, a14 # 5ae: e085c0 + bltu a3, a8, .Lbr023 # 5b1: 8733bd +.Lbr026: movi a12, .Label002 # 5b4: c1c9ff + movi a2, .Lstr013 # 5b7: 21c9ff + addi a15, a12, 28 /* .Label003 */ # 5ba: f2cc1c + call0 printf # 5bd: 01cdffc0 + # 5c1: 0000 + mov a2, a15 /* .Label003 */ # 5c3: 2d0f + call0 os_timer_disarm # 5c5: 01ccffc0 + # 5c9: 0000 + mov a2, a12 /* .Label002 */ # 5cb: 2d0c + call0 os_timer_disarm # 5cd: 01cbffc0 + # 5d1: 0000 + movi a2, .Label010 # 5d3: 21c3ff + call0 printf # 5d6: 01caffc0 + # 5da: 0000 + movi a3, 1000 /* 0x000003e8 */ # 5dc: 32a3e8 + l32i a4, a13, 76 /* [.Ldata030] */ # 5df: 422d13 + l32i a5, a13, 20 /* [.Ldata008] */ # 5e2: 585d + l32i a2, a13, 80 /* [.Ldata031] */ # 5e4: 222d14 + sub a5, a5, a14 # 5e7: e055c0 + add a2, a2, a5 # 5ea: 5a22 + sub a2, a2, a4 # 5ec: 4022c0 + call0 __udivsi3 # 5ef: 01c5ffc0 + # 5f3: 0000 + mov a3, a2 # 5f5: 3d02 + movi a4, 0 /* 0x00000000 */ # 5f7: 0c04 + mov a2, a12 /* .Label002 */ # 5f9: 2d0c + call0 os_timer_arm # 5fb: 01c3ffc0 + # 5ff: 0000 + j .Lbr028 # 601: 860b00 +.Lbr027: movi a2, .Lstr014 # 604: 21b8ff + call0 printf # 607: 01c1ffc0 + # 60b: 0000 + mov a2, a15 /* .Label003 */ # 60d: 2d0f + call0 os_timer_disarm # 60f: 01c0ffc0 + # 613: 0000 + mov a2, a12 /* .Label002 */ # 615: 2d0c + call0 os_timer_disarm # 617: 01bfffc0 + # 61b: 0000 + movi a2, .Lstr015 # 61d: 21b2ff + call0 printf # 620: 01beffc0 + # 624: 0000 + mov a2, a12 /* .Label002 */ # 626: 2d0c + movi a3, 105 /* 0x00000069 */ # 628: 32a069 + movi a4, 0 /* 0x00000000 */ # 62b: 0c04 + call0 os_timer_arm # 62d: 01bbffc0 + # 631: 0000 +.Lbr028: call0 xTaskResumeAll # 633: 01bbffc0 + # 637: 0000 + l32i a12, sp, 4 /* [(local1)] */ # 639: c811 + l32i a13, sp, 8 /* [(local2)] */ # 63b: d821 + l32i a14, sp, 12 /* [(local3)] */ # 63d: e831 + l32i a15, sp, 16 /* [(local4)] */ # 63f: f841 + l32i a0, sp, 0 /* [(local0)] */ # 641: 0801 + addi sp, sp, 32 /* (top of frame) */ # 643: 12c120 + ret # 646: 0df0 + + .literal_position # 648: ec000000 + # 64c: 00000000 + # 650: 00010000 + # 654: 00000000 + # 658: 00000000 + # 65c: 00000000 + # 660: 00000000 + # 664: 00000000 + # 668: 00000000 + +# Function @ .irom0.text+0x66c +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 +.Lfunc009: addi sp, sp, -16 /* (local0) */ # 66c: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 66f: 0901 + call0 vTaskSuspendAll # 671: 01f8ffc0 + # 675: 0000 + call0 pm_rf_is_closed # 677: 050000 + bnez a2, .Lbr029 # 67a: ec62 + movi a2, .Lstr016 # 67c: 21f3ff + call0 printf # 67f: 01f6ffc0 + # 683: 0000 + movi a2, 1 /* 0x00000001 */ # 685: 0c12 + call0 pm_send_nullfunc # 687: 01f5ffc0 + # 68b: 0000 + movi a3, .Ldata002 # 68d: 31efff + movi a4, 2 /* 0x00000002 */ # 690: 0c24 + l8ui a0, a3, 53 /* [.Ldata017] */ # 692: 020335 + movi a5, 241 /* 0x000000f1 */ # 695: 52a0f1 + and a0, a0, a5 # 698: 500010 + or a0, a0, a4 # 69b: 400020 + s8i a0, a3, 53 /* a0 -> [.Ldata017] */ # 69e: 024335 + j .Lbr030 # 6a1: 060200 +.Lbr029: movi a2, .Lstr017 # 6a4: 21ebff + call0 printf # 6a7: 01eeffc0 + # 6ab: 0000 +.Lbr030: call0 xTaskResumeAll # 6ad: 01edffc0 + # 6b1: 0000 + bnez a2, .Lbr031 # 6b3: cc62 + movi a2, 1 /* 0x00000001 */ # 6b5: 0c12 + call0 PendSV # 6b7: 01ecffc0 + # 6bb: 0000 +.Lbr031: l32i a0, sp, 0 /* [(local0)] */ # 6bd: 0801 + addi sp, sp, 16 /* (top of frame) */ # 6bf: 12c110 + ret # 6c2: 0df0 + + .literal_position # 6c4: 1c010000 + # 6c8: 00000000 + # 6cc: 2c010000 + # 6d0: 00000000 + # 6d4: 00000000 + # 6d8: 00000000 + # 6dc: 00000000 + # 6e0: 00000000 + # 6e4: 00000000 + +# Function @ .irom0.text+0x6e8 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 +.Lfunc010: addi sp, sp, -16 /* (local0) */ # 6e8: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 6eb: 0901 + call0 vTaskSuspendAll # 6ed: 01f8ffc0 + # 6f1: 0000 + call0 pm_rf_is_closed # 6f3: 050000 + bnez a2, .Lbr032 # 6f6: ec62 + movi a2, .Lstr018 # 6f8: 21f3ff + call0 printf # 6fb: 01f6ffc0 + # 6ff: 0000 + movi a2, 0 /* 0x00000000 */ # 701: 0c02 + call0 pm_send_nullfunc # 703: 01f5ffc0 + # 707: 0000 + movi a3, .Ldata002 # 709: 31efff + movi a4, 12 /* 0x0000000c */ # 70c: 0cc4 + l8ui a0, a3, 53 /* [.Ldata017] */ # 70e: 020335 + movi a5, 241 /* 0x000000f1 */ # 711: 52a0f1 + and a0, a0, a5 # 714: 500010 + or a0, a0, a4 # 717: 400020 + s8i a0, a3, 53 /* a0 -> [.Ldata017] */ # 71a: 024335 + j .Lbr033 # 71d: 060200 +.Lbr032: movi a2, .Lstr019 # 720: 21ebff + call0 printf # 723: 01eeffc0 + # 727: 0000 +.Lbr033: call0 xTaskResumeAll # 729: 01edffc0 + # 72d: 0000 + bnez a2, .Lbr034 # 72f: cc62 + movi a2, 1 /* 0x00000001 */ # 731: 0c12 + call0 PendSV # 733: 01ecffc0 + # 737: 0000 +.Lbr034: l32i a0, sp, 0 /* [(local0)] */ # 739: 0801 + addi sp, sp, 16 /* (top of frame) */ # 73b: 12c110 + ret # 73e: 0df0 + + .literal_position # 740: 44010000 + # 744: 00000000 + # 748: 00000000 + # 74c: 00000000 + # 750: 00000000 + # 754: 00000000 + +# Function @ .irom0.text+0x758 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 +.Lfunc011: addi sp, sp, -16 /* (local0) */ # 758: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 75b: 0901 + call0 vTaskSuspendAll # 75d: 01faffc0 + # 761: 0000 + movi a2, .Lstr020 # 763: 21f7ff + movi a3, .Ldata002 # 766: 31f7ff + movi a4, 14 /* 0x0000000e */ # 769: 0ce4 + l8ui a0, a3, 53 /* [.Ldata017] */ # 76b: 020335 + movi a5, 241 /* 0x000000f1 */ # 76e: 52a0f1 + and a0, a0, a5 # 771: 500010 + or a0, a0, a4 # 774: 400020 + s8i a0, a3, 53 /* a0 -> [.Ldata017] */ # 777: 024335 + call0 printf # 77a: 01f4ffc0 + # 77e: 0000 + call0 ppProcessWaitQ # 780: 01f4ffc0 + # 784: 0000 + call0 xTaskResumeAll # 786: 01f3ffc0 + # 78a: 0000 + l32i a0, sp, 0 /* [(local0)] */ # 78c: 0801 + addi sp, sp, 16 /* (top of frame) */ # 78e: 12c110 + ret # 791: 0df0 + + .literal_position # 794: 00000000 + # 798: 00000000 + # 79c: 00000000 + # 7a0: 00000000 + +# Function @ .irom0.text+0x7a4 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 +.Lfunc012: addi sp, sp, -16 /* (local0) */ # 7a4: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 7a7: 0901 + call0 vTaskSuspendAll # 7a9: 01fbffc0 + # 7ad: 0000 + movi a2, .Ldata002 # 7af: 21f9ff + l8ui a0, a2, 53 /* [.Ldata017] */ # 7b2: 020235 + movi a3, 241 /* 0x000000f1 */ # 7b5: 32a0f1 + and a0, a0, a3 # 7b8: 300010 + s8i a0, a2, 53 /* a0 -> [.Ldata017] */ # 7bb: 024235 + call0 ppProcessWaitQ # 7be: 01f7ffc0 + # 7c2: 0000 + call0 xTaskResumeAll # 7c4: 01f7ffc0 + # 7c8: 0000 + l32i a0, sp, 0 /* [(local0)] */ # 7ca: 0801 + addi sp, sp, 16 /* (top of frame) */ # 7cc: 12c110 + ret # 7cf: 0df0 + + .literal_position # 7d4: 00000000 + # 7d8: 4c010000 + # 7dc: 54000000 + # 7e0: 70000000 + # 7e4: 54010000 + # 7e8: 00000000 + # 7ec: 00000000 + # 7f0: 00000000 + # 7f4: 00000000 + +# Function @ .irom0.text+0x7f8 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 +.Lfunc013: addi sp, sp, -16 /* (local0) */ # 7f8: 12c1f0 + movi a2, .Lstr021 # 7fb: 21f7ff + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 7fe: c911 + movi a12, .Ldata002 # 800: c1f5ff + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 803: 0901 + l8ui a0, a12, 53 /* [.Ldata017] */ # 805: 020c35 + movi a3, 191 /* 0x000000bf */ # 808: 32a0bf + and a0, a0, a3 # 80b: 300010 + s8i a0, a12, 53 /* a0 -> [.Ldata017] */ # 80e: 024c35 + call0 printf # 811: 01f5ffc0 + # 815: 0000 + movi a2, .Label002 # 817: 21f1ff + call0 os_timer_disarm # 81a: 01f4ffc0 + # 81e: 0000 + movi a2, .Label003 # 820: 21f0ff + call0 os_timer_disarm # 823: 01f3ffc0 + # 827: 0000 + l8ui a0, a12, 53 /* [.Ldata017] */ # 829: 020c35 + l8ui a4, a12, 59 /* [.Ldata023] */ # 82c: 420c3b + bbsi a0, 4, .Lbr037 # 82f: 47e01b + bnez a4, .Lbr037 # 832: dc84 + movi a5, 0 /* 0x00000000 */ # 834: 0c05 + s8i a5, a12, 61 /* 0x00 -> [.Ldata025] */ # 836: 524c3d + bbci a0, 5, .Lbr035 # 839: 576005 + call0 .Lfunc011 # 83c: 85f1ff + j .Lbr036 # 83f: 860000 +.Lbr035: call0 .Lfunc012 # 842: 05f6ff +.Lbr036: l32i a12, sp, 4 /* [(local1)] */ # 845: c811 + l32i a0, sp, 0 /* [(local0)] */ # 847: 0801 + addi sp, sp, 16 /* (top of frame) */ # 849: 12c110 + ret # 84c: 0df0 +.Lbr037: movi a2, .Lstr022 # 84e: 21e5ff + call0 printf # 851: 01e8ffc0 + # 855: 0000 + call0 .Lfunc010 # 857: 05e9ff + j .Lbr036 # 85a: c6f9ff + + .literal_position # 860: 64010000 + # 864: 54000000 + # 868: 70000000 + # 86c: 00000000 + # 870: 00000000 + # 874: c4000000 + # 878: 000af23f + # 87c: 6c010000 + # 880: 70170000 + # 884: 50460000 + # 888: 3ffe0000 + # 88c: 00000000 + # 890: 00000000 + # 894: 00000000 + # 898: 00000000 + # 89c: 00000000 + +# Function @ .irom0.text+0x8a0 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global pm_shutdown + .type pm_shutdown, @function +pm_shutdown: + movi a2, .Lstr023 # 8a0: 21f0ff + addi sp, sp, -16 /* (local0) */ # 8a3: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 8a6: c911 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 8a8: 0901 + call0 printf # 8aa: 01f8ffc0 + # 8ae: 0000 + movi a2, .Label002 # 8b0: 21edff + call0 os_timer_disarm # 8b3: 01f7ffc0 + # 8b7: 0000 + movi a2, .Label003 # 8b9: 21ebff + call0 os_timer_disarm # 8bc: 01f6ffc0 + # 8c0: 0000 + movi a4, 239 /* 0x000000ef */ # 8c2: 42a0ef + movi a3, .Ldata001 # 8c5: 31eaff + movi a12, .Ldata002 # 8c8: c1e9ff + movi a5, 0 /* 0x00000000 */ # 8cb: 0c05 + s8i a5, a12, 58 /* 0x00 -> [.Ldata022] */ # 8cd: 524c3a + s8i a5, a12, 59 /* 0x00 -> [.Ldata023] */ # 8d0: 524c3b + l8ui a0, a12, 53 /* [.Ldata017] */ # 8d3: 020c35 + l8ui a3, a3, 0 /* [.Ldata001] */ # 8d6: 320300 + and a0, a0, a4 # 8d9: 400010 + s8i a0, a12, 53 /* a0 -> [.Ldata017] */ # 8dc: 024c35 + bnei a3, 2, .Lbr039 # 8df: 662315 + call0 pm_rf_is_closed # 8e2: 050000 + beqz a2, .Lbr038 # 8e5: 8cc2 + movi a2, .Label006 # 8e7: 21e3ff + call0 os_timer_disarm # 8ea: 01ebffc0 + # 8ee: 0000 + movi a2, 2 /* 0x00000002 */ # 8f0: 0c22 + call0 .Lfunc005 # 8f2: c5a7ff +.Lbr038: l8ui a0, a12, 53 /* [.Ldata017] */ # 8f5: 020c35 +.Lbr039: extui a3, a0, 1, 3 # 8f8: 003124 + beqi a3, 7, .Lbr040 # 8fb: 26730a + beqz a3, .Lbr040 # 8fe: 8c73 + call0 .Lfunc013 # 900: 45efff + l8ui a3, a12, 53 /* [.Ldata017] */ # 903: 320c35 + extui a3, a3, 1, 3 # 906: 303124 +.Lbr040: movi a6, 0x3ff20a00 # 909: 61dbff + movi a2, .Lstr024 # 90c: 21dcff + l32i a7, a12, 12 /* [.Ldata006] */ # 90f: 783c + l32i a5, a12, 16 /* [.Ldata007] */ # 911: 584c + l8ui a4, a12, 58 /* [.Ldata022] */ # 913: 420c3a + memw # 916: c02000 + l32i a6, a6, 0x200 /* [0x3ff20c00] */ # 919: 622680 + sub a6, a6, a7 # 91c: 7066c0 + call0 printf # 91f: 01dfffc0 + # 923: 0000 + movi a7, 7 /* 0x00000007 */ # 925: 0c77 + movi a9, 223 /* 0x000000df */ # 927: 92a0df + l8ui a8, a12, 53 /* [.Ldata017] */ # 92a: 820c35 + movi a11, 0x00001770 # 92d: b1d4ff + movi a10, 0x00004650 # 930: a1d5ff + movi a0, 0 /* 0x00000000 */ # 933: 0c00 + s8i a0, a12, 54 /* 0x00 -> [.Ldata018] */ # 935: 024c36 + s32i a0, a12, 48 /* 0x00000000 -> [.Ldata015] */ # 938: 09cc + s8i a0, a12, 62 /* 0x00 -> [.Ldata026] */ # 93a: 024c3e + s32i a0, a12, 28 /* 0x00000000 -> [.Ldata010] */ # 93d: 097c + s32i a0, a12, 20 /* 0x00000000 -> [.Ldata008] */ # 93f: 095c + s32i a0, a12, 24 /* 0x00000000 -> [.Ldata009] */ # 941: 096c + s32i a0, a12, 36 /* 0x00000000 -> [.Ldata011] */ # 943: 099c + s32i a10, a12, 80 /* 0x00004650 -> [.Ldata031] */ # 945: a26c14 + s32i a11, a12, 76 /* 0x00001770 -> [.Ldata030] */ # 948: b26c13 + l8ui a10, a12, 52 /* [.Ldata016] */ # 94b: a20c34 + and a8, a8, a9 # 94e: 908810 + extui a8, a8, 0, 8 # 951: 808074 + movi a9, 0x0000fe3f # 954: 91cdff + slli a8, a8, 8 # 957: 808811 + or a8, a8, a10 # 95a: a08820 + movi a10, 254 /* 0x000000fe */ # 95d: a2a0fe + and a8, a8, a9 # 960: 908810 + extui a9, a8, 0, 8 # 963: 809074 + srli a11, a8, 8 # 966: 80b841 + s8i a11, a12, 53 /* a11 -> [.Ldata017] */ # 969: b24c35 + and a9, a9, a10 # 96c: a09910 + s8i a9, a12, 52 /* a9 -> [.Ldata016] */ # 96f: 924c34 + extui a8, a8, 8, 8 # 972: 808874 + srli a8, a8, 1 # 975: 808141 + bnone a7, a8, .Lbr041 # 978: 870702 + call0 .Lfunc012 # 97b: 85e2ff +.Lbr041: l32i a12, sp, 4 /* [(local1)] */ # 97e: c811 + l32i a0, sp, 0 /* [(local0)] */ # 980: 0801 + addi sp, sp, 16 /* (top of frame) */ # 982: 12c110 + ret # 985: 0df0 + + .literal_position # 988: 00000000 + # 98c: a8000000 + # 990: 00000000 + # 994: 00000000 + # 998: 00000000 + # 99c: 00000000 + +# Function @ .irom0.text+0x9a0 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global pm_reset_idle_sleep + .type pm_reset_idle_sleep, @function +pm_reset_idle_sleep: + addi sp, sp, -16 /* (local0) */ # 9a0: 12c1f0 + movi a2, .Ldata002 # 9a3: 21f9ff + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 9a6: 0911 + movi a0, 0 /* 0x00000000 */ # 9a8: 0c00 + s8i a0, a2, 56 /* 0x00 -> [.Ldata020] */ # 9aa: 024238 + movi a2, .Label005 # 9ad: 21f7ff + s32i a2, sp, 0 /* .Label005 -> [(local0)] */ # 9b0: 2901 + call0 os_timer_disarm # 9b2: 01f8ffc0 + # 9b6: 0000 + movi a3, .Ldata002 # 9b8: 31f6ff + l8ui a3, a3, 53 /* [.Ldata017] */ # 9bb: 320335 + bbsi a3, 5, .Lbr042 # 9be: 57e314 + call0 rc_get_mask # 9c1: 01f5ffc0 + # 9c5: 0000 + bnez a2, .Lbr042 # 9c7: ccb2 + l32i a2, sp, 0 /* [(local0)] */ # 9c9: 2801 + movi a3, 500 /* 0x000001f4 */ # 9cb: 32a1f4 + movi a4, 0 /* 0x00000000 */ # 9ce: 0c04 + call0 os_timer_arm # 9d0: 01f3ffc0 + # 9d4: 0000 +.Lbr042: l32i a0, sp, 4 /* [(local1)] */ # 9d6: 0811 + addi sp, sp, 16 /* (top of frame) */ # 9d8: 12c110 + ret # 9db: 0df0 + + .balign 4 +# Function @ .irom0.text+0x9e0 + .balign 4 + .global pm_idle_sleep + .type pm_idle_sleep, @function +pm_idle_sleep: + ret /* arg0 */ # 9e0: 0df0 + + .literal_position # 9e4: a8000000 + # 9e8: 00000000 + # 9ec: 84010000 + # 9f0: 41000000 + # 9f4: 000af23f + # 9f8: 58000000 + # 9fc: 60000000 + # a00: 00000000 + # a04: 00000000 + # a08: 00000000 + # a0c: 00000000 + # a10: 00000000 + # a14: 00000000 + # a18: 00000000 + # a1c: 00000000 + # a20: 00000000 + +# Function @ .irom0.text+0xa24 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word @ -0x8 +# (local3): word @ -0x4 + .balign 4 + .global pm_open + .type pm_open, @function +pm_open: addi sp, sp, -16 /* (local0) */ # a24: 12c1f0 + s32i a13, sp, 12 /* a13 -> [(local3)] */ # a27: d931 + s32i a12, sp, 8 /* a12 -> [(local2)] */ # a29: c921 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # a2b: 0911 + mov a12, a2 /* arg0 */ # a2d: cd02 + call0 vTaskSuspendAll # a2f: 01f4ffc0 + # a33: 0000 + mov a2, a12 /* arg0 */ # a35: 2d0c + call0 rc_get_sta_trc # a37: 01f3ffc0 + # a3b: 0000 + s32i a2, sp, 0 /* a2 -> [(local0)] */ # a3d: 2901 + beqz a2, .Lbr044 # a3f: 16d208 + movi a2, .Label005 # a42: 21e8ff + movi a13, .Ldata002 # a45: d1e8ff + movi a3, 32 /* 0x00000020 */ # a48: 2c03 + l8ui a0, a13, 53 /* [.Ldata017] */ # a4a: 020d35 + movi a4, 223 /* 0x000000df */ # a4d: 42a0df + and a0, a0, a4 # a50: 400010 + or a0, a0, a3 # a53: 300020 + s8i a0, a13, 53 /* a0 -> [.Ldata017] */ # a56: 024d35 + call0 os_timer_disarm # a59: 01ebffc0 + # a5d: 0000 + movi a2, .Lstr025 # a5f: 21e3ff + l8ui a3, a13, 226 /* [.Ldata034] */ # a62: 320de2 + l8ui a4, a13, 53 /* [.Ldata017] */ # a65: 420d35 + l8ui a5, a13, 58 /* [.Ldata022] */ # a68: 520d3a + extui a4, a4, 1, 3 # a6b: 404124 + call0 printf # a6e: 01e7ffc0 + # a72: 0000 + l8ui a5, a13, 53 /* [.Ldata017] */ # a74: 520d35 + extui a4, a5, 1, 3 # a77: 504124 + bnez a4, .Lbr045 # a7a: 563406 + movi a7, 14 /* 0x0000000e */ # a7d: 0ce7 + movi a6, 241 /* 0x000000f1 */ # a7f: 62a0f1 + and a6, a5, a6 # a82: 606510 + or a6, a6, a7 # a85: 706620 + s8i a6, a13, 53 /* a6 -> [.Ldata017] */ # a88: 624d35 +.Lbr043: l32i a3, sp, 0 /* [(local0)] */ # a8b: 3801 + movi a2, .Label001 # a8d: 21d8ff + l16ui a4, a3, 32 /* [[(local0)]+0x20] */ # a90: 421310 + s8i a12, a13, 64 /* arg0 -> [.Ldata028] */ # a93: c24d40 + s16i a4, a13, 72 /* [[(local0)]+0x20] -> [.Ldata029] */ # a96: 425d24 + addi a3, a3, 26 /* [(local0)]+0x1a */ # a99: 32c31a + movi a4, 6 /* 0x00000006 */ # a9c: 0c64 + call0 memcpy # a9e: 01dcffc0 + # aa2: 0000 + l8ui a7, a13, 52 /* [.Ldata016] */ # aa4: 720d34 + movi a8, 254 /* 0x000000fe */ # aa7: 82a0fe + and a7, a7, a8 # aaa: 807710 + movi a8, 1 /* 0x00000001 */ # aad: 0c18 + or a7, a7, a8 # aaf: 807720 + s8i a7, a13, 52 /* a7 -> [.Ldata016] */ # ab2: 724d34 + movi a6, 0x3ff20a00 # ab5: 61cfff + memw # ab8: c02000 + movi a5, 0 /* 0x00000000 */ # abb: 0c05 + l32i a6, a6, 0x200 /* [0x3ff20c00] */ # abd: 622680 + s32i a6, a13, 12 /* [0x3ff20c00] -> [.Ldata006] */ # ac0: 693d + s32i a5, a13, 16 /* 0x00000000 -> [.Ldata007] */ # ac2: 594d + call0 pp_disable_idle_timer # ac4: 01d4ffc0 + # ac8: 0000 + call0 pp_enable_idle_timer # aca: 01d3ffc0 + # ace: 0000 +.Lbr044: call0 xTaskResumeAll # ad0: 01d3ffc0 + # ad4: 0000 + l32i a12, sp, 8 /* [(local2)] */ # ad6: c821 + l32i a13, sp, 12 /* [(local3)] */ # ad8: d831 + l32i a0, sp, 4 /* [(local1)] */ # ada: 0811 + addi sp, sp, 16 /* (top of frame) */ # adc: 12c110 + ret # adf: 0df0 +.Lbr045: beqi a4, 6, .Lbr043 # ae1: 2664a6 + l8ui a9, a13, 52 /* [.Ldata016] */ # ae4: 920d34 + bbci a9, 0, .Lbr043 # ae7: 0769a0 + movi a2, .Lstr006 # aea: 21c3ff + movi a3, .Lstr007 # aed: 31c3ff + movi a4, 868 /* 0x00000364 */ # af0: 42a364 + call0 printf # af3: 01cbffc0 + # af7: 0000 +.Lbr046: j .Lbr046 /* (halt) */ # af9: 06ffff + + .literal_position # afc: 00000000 + # b00: a4010000 + # b04: b0010000 + # b08: 54000000 + # b0c: b8010000 + # b10: 44010000 + # b14: 44010000 + # b18: 00000000 + # b1c: 45010000 + # b20: 70000000 + # b24: dc010000 + # b28: cc010000 + # b2c: 00000000 + # b30: 00000000 + # b34: 00000000 + # b38: 00000000 + # b3c: 00000000 + # b40: 00000000 + # b44: 00000000 + # b48: 00000000 + # b4c: 00000000 + # b50: 00000000 + # b54: 00000000 + # b58: 00000000 + # b5c: 00000000 + +# Function @ .irom0.text+0xb60 +# Local variables/stack: +# (local0): word @ -0x30 +# (local1): word @ -0x2c +# (local2): word @ -0x28 +# (local3): word @ -0x24 +# (local4): word @ -0x20 +# (local5): word @ -0x1c +# (local6): word @ -0x18 +# (local7): word @ -0x14 +# (local8): word @ -0x10 +# (local9): word[3] @ -0xc + .balign 4 + .global pm_onBcnRx + .type pm_onBcnRx, @function +pm_onBcnRx: addi sp, sp, -48 /* (local0) */ # b60: 12c1d0 + s32i a13, sp, 24 /* a13 -> [(local6)] */ # b63: d961 + s32i a15, sp, 32 /* a15 -> [(local8)] */ # b65: f981 + s32i a12, sp, 20 /* a12 -> [(local5)] */ # b67: c951 + s32i a14, sp, 28 /* a14 -> [(local7)] */ # b69: e971 + s32i a0, sp, 16 /* a0 -> [(local4)] */ # b6b: 0941 + mov a14, a3 /* arg1 */ # b6d: ed03 + sub a0, a4, a3 # b6f: 3004c0 + blti a0, 12, .Lbr051 # b72: a6a03e + addi a0, a14, 12 /* arg1+0xc */ # b75: cb0e + l16ui a3, a3, 8 /* [arg1+0x8] */ # b77: 321304 + movi a12, .Ldata002 # b7a: c1e0ff + slli a3, a3, 10 # b7d: 603311 + s32i a3, a12, 48 /* a3 -> [.Ldata015] */ # b80: 39cc + sub a3, a4, a0 # b82: 0034c0 + blti a3, 2, .Lbr052 # b85: a6233a + movi a13, 0 /* 0x00000000 */ # b88: 0c0d +.Lbr047: l8ui a5, a0, 1 # b8a: 520001 + l8ui a7, a0, 0 # b8d: 720000 + addi a6, a5, 2 # b90: 2b65 + blt a3, a6, .Lbr051 # b92: 67231e + bnei a7, 5, .Lbr048 # b95: 665701 + mov a13, a0 # b98: dd00 +.Lbr048: add a0, a5, a0 # b9a: 0a05 + addi a0, a0, 2 # b9c: 2b00 + sub a3, a4, a0 # b9e: 0034c0 + bgei a3, 2, .Lbr047 # ba1: e623e5 + j .Lbr053 # ba4: 460700 +.Lbr049: beqz a15, .Lbr051 # ba7: 8c9f + bbsi a2, 4, .Lbr050 # ba9: 47e204 + l8ui a2, a12, 59 /* [.Ldata023] */ # bac: 220c3b + beqz a2, .Lbr051 # baf: 8c12 +.Lbr050: call0 .Lfunc010 # bb1: 45b3ff +.Lbr051: l32i a12, sp, 20 /* [(local5)] */ # bb4: c851 + l32i a13, sp, 24 /* [(local6)] */ # bb6: d861 + l32i a14, sp, 28 /* [(local7)] */ # bb8: e871 + l32i a15, sp, 32 /* [(local8)] */ # bba: f881 + l32i a0, sp, 16 /* [(local4)] */ # bbc: 0841 + addi sp, sp, 48 /* (top of frame) */ # bbe: 12c130 + ret # bc1: 0df0 +.Lbr052: movi a13, 0 /* 0x00000000 */ # bc3: 0c0d +.Lbr053: s32i a2, sp, 12 /* arg0 -> [(local3)] */ # bc5: 2931 + bnez a13, .Lbr054 # bc7: ccad + movi a2, .Lstr026 # bc9: 21cdff + call0 printf # bcc: 01d8ffc0 + # bd0: 0000 + j .Lbr051 # bd2: 86f7ff +.Lbr054: movi a2, .Lstr027 # bd5: 21cbff + call0 printf # bd8: 01d6ffc0 + # bdc: 0000 + movi a2, .Label002 # bde: 21caff + call0 os_timer_disarm # be1: 01d4ffc0 + # be5: 0000 + l32i a4, a12, 48 /* [.Ldata015] */ # be7: 48cc + l32i a3, a14, 4 /* [arg1+0x4] */ # be9: 381e + l32i a2, a14, 0 /* [arg1] */ # beb: 280e + l16ui a6, a12, 232 /* [.Ldata038] */ # bed: 621c74 + movi a15, 0 /* 0x00000000 */ # bf0: 0c0f + addi a6, a6, 1 /* [.Ldata038]+0x1 */ # bf2: 1b66 + s16i a15, a12, 230 /* 0x0000 -> [.Ldata037] */ # bf4: f25c73 + s16i a6, a12, 232 /* [.Ldata038]+0x1 -> [.Ldata038] */ # bf7: 625c74 + l8ui a14, a13, 3 # bfa: e20d03 + l8ui a5, a13, 2 # bfd: 520d02 + s32i a4, sp, 4 /* [.Ldata015] -> [(local1)] */ # c00: 4911 + moveqz a5, a14, a5 # c02: 505e83 + mull a5, a5, a4 # c05: 405582 + s32i a5, sp, 8 /* a5 -> [(local2)] */ # c08: 5921 + mov a5, a15 /* 0x00000000 */ # c0a: 5d0f + call0 __umoddi3 # c0c: 01cbffc0 + # c10: 0000 + l32i a9, sp, 12 /* [(local3)] */ # c12: 9831 + l8ui a7, a12, 54 /* [.Ldata018] */ # c14: 720c36 + l32i a9, a9, 32 /* [[(local3)]+0x20] */ # c17: 9889 + l32i a10, sp, 4 /* [(local1)] */ # c19: a811 + l32i a9, a9, 4 /* [[[(local3)]+0x20]+0x4] */ # c1b: 9819 + l32i a8, sp, 8 /* [(local2)] */ # c1d: 8821 + sub a9, a9, a2 # c1f: 2099c0 + s32i a9, a12, 28 /* a9 -> [.Ldata010] */ # c22: 997c + add a8, a8, a9 # c24: 9a88 + s32i a8, a12, 24 /* a8 -> [.Ldata009] */ # c26: 896c + add a9, a9, a10 # c28: aa99 + s32i a9, a12, 20 /* a9 -> [.Ldata008] */ # c2a: 995c + beqz a7, .Lbr055 # c2c: 9c67 + l8ui a3, a12, 62 /* [.Ldata026] */ # c2e: 320c3e + movi a4, 0 /* 0x00000000 */ # c31: 0c04 + beq a14, a3, .Lbr056 # c33: 371e14 + mov a4, a14 # c36: 4d0e + movi a2, .Lstr028 # c38: 21b5ff + call0 printf # c3b: 01c0ffc0 + # c3f: 0000 + movi a4, 0 /* 0x00000000 */ # c41: 0c04 + j .Lbr056 # c43: 060100 +.Lbr055: movi a4, 0 /* 0x00000000 */ # c46: 0c04 + s8i a14, a12, 62 /* a14 -> [.Ldata026] */ # c48: e24c3e +.Lbr056: movi a3, 254 /* 0x000000fe */ # c4b: 32a0fe + l16ui a0, a12, 72 /* [.Ldata029] */ # c4e: 021c24 + movi a10, 1 /* 0x00000001 */ # c51: 0c1a + mov a2, a10 /* 0x00000001 */ # c53: 2d0a + s8i a10, a12, 54 /* 0x01 -> [.Ldata018] */ # c55: a24c36 + extui a11, a0, 0, 14 # c58: 00b0d4 + l8ui a5, a13, 4 # c5b: 520d04 + l8ui a9, a13, 1 # c5e: 920d01 + and a3, a5, a3 # c61: 303510 + add a9, a9, a3 # c64: 3a99 + extui a5, a5, 0, 1 # c66: 505004 + s8i a5, a12, 46 /* a5 -> [.Ldata013] */ # c69: 524c2e + addi a9, a9, -4 # c6c: 92c9fc + extui a9, a9, 0, 8 # c6f: 909074 + beqz a11, .Lbr058 # c72: 9cdb + extui a8, a0, 3, 11 # c74: 0083a4 + bltu a8, a3, .Lbr057 # c77: 373816 + bltu a9, a8, .Lbr057 # c7a: 873913 + extui a7, a0, 0, 3 # c7d: 007024 + sub a6, a13, a3 # c80: 306dc0 + add a6, a8, a6 # c83: 6a68 + l8ui a6, a6, 5 # c85: 620605 + ssr a7 # c88: 000740 + sra a6, a6 # c8b: 6060b1 + bbsi a6, 0, .Lbr058 # c8e: 07e601 +.Lbr057: movi a2, 0 /* 0x00000000 */ # c91: 0c02 +.Lbr058: movi a0, 1 /* 0x00000001 */ # c93: 0c10 + extui a3, a2, 0, 8 # c95: 203074 + s8i a3, a12, 47 /* a3 -> [.Ldata014] */ # c98: 324c2f + bnez a5, .Lbr059 # c9b: cc35 + movi a7, 0 /* 0x00000000 */ # c9d: 0c07 + moveqz a0, a7, a3 # c9f: 300783 +.Lbr059: l8ui a14, a13, 3 # ca2: e20d03 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # ca5: 0901 + movi a5, .Ldata043 # ca7: 519aff + extui a15, a0, 0, 8 # caa: 00f074 + l8ui a3, a5, 0 /* [.Ldata043] */ # cad: 320500 + extui a8, a2, 0, 8 # cb0: 208074 + addi a3, a3, 1 /* [.Ldata043]+0x1 */ # cb3: 1b33 + extui a3, a3, 0, 8 # cb5: 303074 + beqz a8, .Lbr060 # cb8: 8cd8 + l8ui a0, a12, 53 /* [.Ldata017] */ # cba: 020c35 + extui a0, a0, 1, 3 # cbd: 000124 + blti a0, 2, .Lbr060 # cc0: a62005 + bgei a0, 6, .Lbr060 # cc3: e66002 + s8i a10, a12, 244 /* 0x01 -> [.Ldata039] */ # cc6: a24cf4 +.Lbr060: bgeui a14, 4, .Lbr061 # cc9: f64e1a + s32i a3, sp, 36 /* a3 -> [(local9)] */ # ccc: 3991 + beqz a14, .Lbr061 # cce: 9c5e + mov a3, a14 # cd0: 3d0e + movi a2, 15 /* 0x0000000f */ # cd2: 0cf2 + call0 __divsi3 # cd4: 019bffc0 + # cd8: 0000 + movi a4, 0 /* 0x00000000 */ # cda: 0c04 + l32i a3, sp, 36 /* [(local9)] */ # cdc: 3891 + movi a5, .Ldata043 # cde: 518dff + extui a0, a2, 0, 8 # ce1: 200074 + j .Lbr062 # ce4: 460000 +.Lbr061: movi a0, 15 /* 0x0000000f */ # ce7: 0cf0 +.Lbr062: bltu a3, a0, .Lbr063 # ce9: 073325 + s8i a4, a5, 0 /* 0x00 -> [.Ldata043] */ # cec: 424500 + movi a14, sleep_start_wait_time # cef: e18aff + l8ui a3, a12, 244 /* [.Ldata039] */ # cf2: 320cf4 + movi a0, .Ldata044 # cf5: 0189ff + beqz a3, .Lbr074 # cf8: 16830c + l8ui a2, a0, 0 /* [.Ldata044] */ # cfb: 220000 + addi a2, a2, 1 /* [.Ldata044]+0x1 */ # cfe: 1b22 + extui a2, a2, 0, 8 # d00: 202074 + bltui a2, 2, .Lbr068 # d03: b62270 + s8i a4, a0, 0 /* 0x00 -> [.Ldata044] */ # d06: 424000 + movi a3, 1300 /* 0x00000514 */ # d09: 32a514 + s16i a3, a14, 0 /* 0x0514 -> [sleep_start_wait_time] */ # d0c: 325e00 + j .Lbr069 # d0f: c61900 +.Lbr063: s8i a3, a5, 0 /* a3 -> [.Ldata043] */ # d12: 324500 +.Lbr064: l32i a5, sp, 0 /* [(local0)] */ # d15: 5801 + l8ui a2, a12, 53 /* [.Ldata017] */ # d17: 220c35 + extui a5, a5, 0, 8 # d1a: 505074 + bnez a5, .Lbr067 # d1d: 561505 + l8ui a7, a13, 3 # d20: 720d03 + l8ui a0, a12, 63 /* [.Ldata027] */ # d23: 020c3f + movi a6, 8 /* 0x00000008 */ # d26: 0c86 + mul16u a7, a0, a7 # d28: 7070c1 + bge a6, a7, .Lbr065 # d2b: 77a606 + movi a15, 1 /* 0x00000001 */ # d2e: 0c1f + movi a0, 0 /* 0x00000000 */ # d30: 0c00 + s8i a0, a12, 63 /* 0x00 -> [.Ldata027] */ # d32: 024c3f +.Lbr065: addi a5, a0, 1 # d35: 1b50 +.Lbr066: s8i a5, a12, 63 /* a5 -> [.Ldata027] */ # d37: 524c3f + extui a0, a2, 1, 3 # d3a: 200124 + beqz a0, .Lbr071 # d3d: 161005 + addi a8, a0, -1 # d40: 0b80 + beqz a8, .Lbr049 # d42: 1618e6 + beqi a0, 2, .Lbr070 # d45: 26203a + beqi a0, 3, .Lbr071 # d48: 263046 + beqi a0, 4, .Lbr072 # d4b: 264051 + beqi a0, 5, .Lbr073 # d4e: 265057 + addi a9, a0, -6 # d51: 92c0fa + beqz a9, .Lbr051 # d54: 16c9e5 + addi a10, a0, -7 # d57: a2c0f9 + bnez a10, .Lbr051 # d5a: 566ae5 + bnez a15, .Lbr051 # d5d: 563fe5 + call0 pm_scan_unlocked # d60: 0179ffc0 + # d64: 0000 + beqz a2, .Lbr051 # d66: 16a2e4 + call0 pp_try_enable_idle_timer # d69: 0177ffc0 + # d6d: 0000 + j .Lbr051 # d6f: 4690ff +.Lbr067: mov a5, a4 /* 0x00000000 */ # d72: 5d04 + j .Lbr066 # d74: c6efff +.Lbr068: s8i a2, a0, 0 /* a2 -> [.Ldata044] */ # d77: 224000 +.Lbr069: s8i a4, a12, 244 /* 0x00 -> [.Ldata039] */ # d7a: 424cf4 + s8i a4, a12, 245 /* 0x00 -> [.Ldata040] */ # d7d: 424cf5 + j .Lbr064 # d80: 46e4ff +.Lbr070: beqz a15, .Lbr051 # d83: 16dfe2 + extui a11, a2, 4, 1 # d86: 20b404 + beqz a11, .Lbr051 # d89: 167be2 + call0 .Lfunc010 # d8c: 8595ff + j .Lbr051 # d8f: 4688ff +.Lbr071: beqz a15, .Lbr051 # d92: 16efe1 + movi a2, 1 /* 0x00000001 */ # d95: 0c12 + call0 pm_post # d97: 016dffc0 + # d9b: 0000 + j .Lbr051 # d9d: c684ff +.Lbr072: beqz a15, .Lbr075 # da0: 167f04 + call0 .Lfunc010 # da3: 4594ff + j .Lbr051 # da6: 8682ff +.Lbr073: beqz a15, .Lbr076 # da9: 167f04 + movi a2, .Label003 # dac: 215dff + call0 os_timer_disarm # daf: 0168ffc0 + # db3: 0000 + l8ui a13, a12, 53 /* [.Ldata017] */ # db5: d20c35 + extui a13, a13, 4, 1 # db8: d0d404 + beqz a13, .Lbr051 # dbb: 165ddf + call0 .Lfunc010 # dbe: 8592ff + j .Lbr051 # dc1: c67bff +.Lbr074: l8ui a3, a12, 245 /* [.Ldata040] */ # dc4: 320cf5 + s8i a4, a0, 0 /* 0x00 -> [.Ldata044] */ # dc7: 424000 + beqz a3, .Lbr079 # dca: 163305 + l8ui a2, a0, 1 /* [.Ldata045] */ # dcd: 220001 + addi a2, a2, 1 /* [.Ldata045]+0x1 */ # dd0: 1b22 + extui a2, a2, 0, 8 # dd2: 202074 + beqz a2, .Lbr078 # dd5: 162204 + movi a3, 0 /* 0x00000000 */ # dd8: 0c03 + s8i a3, a0, 1 /* 0x00 -> [.Ldata045] */ # dda: 324001 + call0 pm_get_idle_wait_time # ddd: 015dffc0 + # de1: 0000 + movi a4, 0 /* 0x00000000 */ # de3: 0c04 + s16i a2, a14, 0 /* a2 -> [sleep_start_wait_time] */ # de5: 225e00 + j .Lbr069 # de8: 86e3ff +.Lbr075: bbsi a2, 4, .Lbr077 # deb: 47e21d + call0 .Lfunc009 # dee: c587ff + j .Lbr051 # df1: c66fff +.Lbr076: l8ui a6, a12, 55 /* [.Ldata019] */ # df4: 620c37 + addi a6, a6, -8 /* [.Ldata019]-0x8 */ # df7: 62c6f8 + bnez a6, .Lbr051 # dfa: 5666db + movi a2, .Lstr030 # dfd: 2149ff + call0 printf # e00: 0156ffc0 + # e04: 0000 + call0 .Lfunc007 # e06: 8568ff + j .Lbr051 # e09: c669ff +.Lbr077: movi a2, .Lstr029 # e0c: 2147ff + call0 printf # e0f: 0153ffc0 + # e13: 0000 + call0 .Lfunc007 # e15: 8567ff + j .Lbr051 # e18: 0666ff +.Lbr078: s8i a2, a0, 1 /* a2 -> [.Ldata045] */ # e1b: 224001 + j .Lbr069 # e1e: 06d6ff +.Lbr079: s8i a4, a0, 1 /* 0x00 -> [.Ldata045] */ # e21: 424001 + j .Lbr069 # e24: 86d4ff + + .literal_position # e28: 00000000 + # e2c: ec010000 + # e30: 00000000 + +# Function @ .irom0.text+0xe34 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 +.Lfunc014: addi sp, sp, -16 /* (local0) */ # e34: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # e37: 0901 + movi a0, .Ldata002 # e39: 01fbff + l8ui a0, a0, 53 /* [.Ldata017] */ # e3c: 020035 + extui a3, a0, 1, 3 # e3f: 003124 + bnei a3, 6, .Lbr080 # e42: 666308 + bbci a0, 5, .Lbr082 # e45: 576015 + call0 .Lfunc011 # e48: c590ff + j .Lbr081 # e4b: 060200 +.Lbr080: movi a2, .Lstr031 # e4e: 21f7ff + call0 printf # e51: 01f7ffc0 + # e55: 0000 +.Lbr081: l32i a0, sp, 0 /* [(local0)] */ # e57: 0801 + addi sp, sp, 16 /* (top of frame) */ # e59: 12c110 + ret # e5c: 0df0 +.Lbr082: call0 .Lfunc012 # e5e: 4594ff + j .Lbr081 # e61: 86fcff + + .literal_position # e64: 00000000 + # e68: 58000000 + # e6c: 60000000 + # e70: 04020000 + # e74: 58000000 + # e78: 60000000 + # e7c: f4010000 + # e80: 00000000 + # e84: 00000000 + # e88: 00000000 + # e8c: 00000000 + +# Function @ .irom0.text+0xe90 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 +.Lfunc015: addi sp, sp, -16 /* (local0) */ # e90: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # e93: 0901 + movi a0, .Ldata002 # e95: 01f3ff + l8ui a0, a0, 53 /* [.Ldata017] */ # e98: 020035 + extui a3, a0, 1, 3 # e9b: 003124 + bnei a3, 1, .Lbr084 # e9e: 661314 + bbsi a0, 5, .Lbr086 # ea1: 57e02c + movi a2, .Lstr006 # ea4: 21f1ff + movi a3, .Lstr007 # ea7: 31f1ff + movi a4, 1410 /* 0x00000582 */ # eaa: 42a582 + call0 printf # ead: 01f4ffc0 + # eb1: 0000 +.Lbr083: j .Lbr083 /* (halt) */ # eb3: 06ffff +.Lbr084: movi a2, .Lstr033 # eb6: 21eeff + call0 printf # eb9: 01f2ffc0 + # ebd: 0000 + movi a2, .Lstr006 # ebf: 21edff + movi a3, .Lstr007 # ec2: 31edff + movi a4, 1426 /* 0x00000592 */ # ec5: 42a592 + call0 printf # ec8: 01f0ffc0 + # ecc: 0000 +.Lbr085: j .Lbr085 /* (halt) */ # ece: 06ffff +.Lbr086: call0 .Lfunc004 # ed1: c533ff + beqz a2, .Lbr087 # ed4: 8cd2 + movi a2, .Lstr032 # ed6: 21e9ff + call0 printf # ed9: 01ecffc0 + # edd: 0000 + call0 .Lfunc007 # edf: 055bff + j .Lbr088 # ee2: 860000 +.Lbr087: call0 .Lfunc008 # ee5: c563ff +.Lbr088: l32i a0, sp, 0 /* [(local0)] */ # ee8: 0801 + addi sp, sp, 16 /* (top of frame) */ # eea: 12c110 + ret # eed: 0df0 + + .literal_position # ef0: 8c000000 + # ef4: 00000000 + # ef8: 0c020000 + # efc: 47010000 + # f00: 20020000 + # f04: 0002f23f + # f08: 47010000 + # f0c: af360000 + # f10: 00000000 + # f14: 00000000 + # f18: 00000000 + # f1c: 00000000 + # f20: 00000000 + +# Function @ .irom0.text+0xf24 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word @ -0x8 +# (local3): word @ -0x4 + .balign 4 +.Lfunc016: mov a3, a2 /* arg0 */ # f24: 3d02 + addi sp, sp, -16 /* (local0) */ # f26: 12c1f0 + s32i a12, sp, 8 /* a12 -> [(local2)] */ # f29: c921 + s32i a13, sp, 12 /* a13 -> [(local3)] */ # f2b: d931 + movi a2, .Label004 # f2d: 21f0ff + s32i a0, sp, 4 /* a0 -> [(local1)] */ # f30: 0911 + s32i a3, sp, 0 /* arg0 -> [(local0)] */ # f32: 3901 + call0 os_timer_disarm # f34: 01f7ffc0 + # f38: 0000 + movi a13, .Ldata002 # f3a: d1eeff + l8ui a0, a13, 53 /* [.Ldata017] */ # f3d: 020d35 + extui a0, a0, 1, 3 # f40: 000124 + beqz a0, .Lbr091 # f43: 162006 + movi a2, .Lstr034 # f46: 21ecff + movi a12, 0 /* 0x00000000 */ # f49: 0c0c + s8i a12, a13, 58 /* 0x00 -> [.Ldata022] */ # f4b: c24d3a + s8i a12, a13, 59 /* 0x00 -> [.Ldata023] */ # f4e: c24d3b + call0 printf # f51: 01f0ffc0 + # f55: 0000 + l32i a3, sp, 0 /* [(local0)] */ # f57: 3801 + movi a0, .Ldata046 # f59: 01e8ff + l32i a3, a3, 32 /* [[(local0)]+0x20] */ # f5c: 3883 + movi a9, 239 /* 0x000000ef */ # f5e: 92a0ef + l8ui a3, a3, 15 /* [[[(local0)]+0x20]+0xf] */ # f61: 32030f + l8ui a8, a13, 53 /* [.Ldata017] */ # f64: 820d35 + beqi a3, 1, .Lbr092 # f67: 261349 + movi a2, .Lstr035 # f6a: 21e5ff + movi a4, 0x3ff20200 # f6d: 41e5ff + memw # f70: c02000 + l32i a4, a4, 0x218 /* [0x3ff20418] */ # f73: 422486 + extui a4, a4, 12, 16 # f76: 404cf4 + slli a4, a4, 2 # f79: e04411 + call0 printf # f7c: 01e7ffc0 + # f80: 0000 + call0 chm_get_current_channel # f82: 01e6ffc0 + # f86: 0000 + l8ui a5, a13, 61 /* [.Ldata025] */ # f88: 520d3d + l8ui a0, a13, 53 /* [.Ldata017] */ # f8b: 020d35 + bnei a5, 2, .Lbr089 # f8e: 662508 + s8i a12, a13, 61 /* 0x00 -> [.Ldata025] */ # f91: c24d3d + call0 .Lfunc010 # f94: 0575ff + j .Lbr091 # f97: 860300 +.Lbr089: movi a2, 1 /* 0x00000001 */ # f9a: 0c12 + bbci a0, 5, .Lbr090 # f9c: 576006 + srli a6, a0, 7 # f9f: 006741 + beqz a6, .Lbr094 # fa2: bc46 + mov a12, a2 /* 0x00000001 */ # fa4: cd02 +.Lbr090: s8i a12, a13, 61 /* a12 -> [.Ldata025] */ # fa6: c24d3d +.Lbr091: l32i a12, sp, 8 /* [(local2)] */ # fa9: c821 + l32i a13, sp, 12 /* [(local3)] */ # fab: d831 + l32i a0, sp, 4 /* [(local1)] */ # fad: 0811 + addi sp, sp, 16 /* (top of frame) */ # faf: 12c110 + ret # fb2: 0df0 +.Lbr092: s8i a12, a0, 0 /* 0x00 -> [.Ldata046] */ # fb4: c24000 + and a8, a8, a9 # fb7: 908810 + l8ui a7, a13, 61 /* [.Ldata025] */ # fba: 720d3d + movi a9, 16 /* 0x00000010 */ # fbd: 1c09 + or a8, a8, a9 # fbf: 908820 + s8i a8, a13, 53 /* a8 -> [.Ldata017] */ # fc2: 824d35 + bnei a7, 2, .Lbr093 # fc5: 662708 + s8i a12, a13, 61 /* 0x00 -> [.Ldata025] */ # fc8: c24d3d + call0 .Lfunc010 # fcb: c571ff + j .Lbr091 # fce: c6f5ff +.Lbr093: s8i a12, a13, 61 /* 0x00 -> [.Ldata025] */ # fd1: c24d3d + call0 .Lfunc015 # fd4: 85ebff + j .Lbr091 # fd7: 86f3ff +.Lbr094: call0 .Lfunc004 # fda: 4523ff + movi a10, 0x000036af # fdd: a1cbff + movi a0, .Ldata046 # fe0: 01caff + bltu a10, a2, .Lbr095 # fe3: 273a08 + s8i a12, a13, 61 /* 0x00 -> [.Ldata025] */ # fe6: c24d3d + call0 .Lfunc008 # fe9: 8553ff + j .Lbr091 # fec: 46eeff +.Lbr095: l8ui a11, a0, 0 /* [.Ldata046] */ # fef: b20000 + movi a3, 14 /* 0x0000000e */ # ff2: 0ce3 + addi a2, a11, 1 /* [.Ldata046]+0x1 */ # ff4: 1b2b + bltu a3, a11, .Lbr096 # ff6: b7330d + s8i a2, a0, 0 /* [.Ldata046]+0x1 -> [.Ldata046] */ # ff9: 224000 + movi a2, 1 /* 0x00000001 */ # ffc: 0c12 + call0 pm_send_nullfunc # ffe: 01c8ffc0 + # 1002: 0000 + j .Lbr091 # 1004: 46e8ff +.Lbr096: movi a2, 1 /* 0x00000001 */ # 1007: 0c12 + s8i a3, a0, 0 /* 0x0e -> [.Ldata046] */ # 1009: 324000 + call0 pm_send_nullfunc # 100c: 050000 + j .Lbr091 # 100f: 86e5ff + + .literal_position # 1014: 8c000000 + # 1018: 00000000 + # 101c: 30020000 + # 1020: 48010000 + # 1024: 58000000 + # 1028: 60000000 + # 102c: 58000000 + # 1030: 60000000 + # 1034: 41000000 + # 1038: 48010000 + # 103c: 00000000 + # 1040: 00000000 + # 1044: 00000000 + # 1048: 00000000 + # 104c: 00000000 + # 1050: 00000000 + # 1054: 00000000 + # 1058: 00000000 + +# Function @ .irom0.text+0x105c +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 +.Lfunc017: mov a4, a2 /* arg0 */ # 105c: 4d02 + addi sp, sp, -16 /* (local0) */ # 105e: 12c1f0 + s32i a12, sp, 8 /* a12 -> [(local2)] */ # 1061: c921 + movi a2, .Label004 # 1063: 21ecff + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 1066: 0911 + s32i a4, sp, 0 /* arg0 -> [(local0)] */ # 1068: 4901 + call0 os_timer_disarm # 106a: 01f4ffc0 + # 106e: 0000 + movi a12, .Ldata002 # 1070: c1eaff + l8ui a0, a12, 53 /* [.Ldata017] */ # 1073: 020c35 + extui a0, a0, 1, 3 # 1076: 000124 + beqz a0, .Lbr099 # 1079: 162005 + movi a2, 0 /* 0x00000000 */ # 107c: 0c02 + s8i a2, a12, 58 /* 0x00 -> [.Ldata022] */ # 107e: 224c3a + s8i a2, a12, 60 /* 0x00 -> [.Ldata024] */ # 1081: 224c3c + movi a2, .Lstr036 # 1084: 21e6ff + call0 printf # 1087: 01eeffc0 + # 108b: 0000 + l32i a3, sp, 0 /* [(local0)] */ # 108d: 3801 + movi a0, 0 /* 0x00000000 */ # 108f: 0c00 + l32i a3, a3, 32 /* [[(local0)]+0x20] */ # 1091: 3883 + movi a2, .Ldata047 # 1093: 21e3ff + l8ui a3, a3, 15 /* [[[(local0)]+0x20]+0xf] */ # 1096: 32030f + l8ui a8, a12, 61 /* [.Ldata025] */ # 1099: 820c3d + beqi a3, 1, .Lbr100 # 109c: 261338 + call0 chm_get_current_channel # 109f: 01e9ffc0 + # 10a3: 0000 + l8ui a4, a12, 61 /* [.Ldata025] */ # 10a5: 420c3d + l8ui a6, a12, 53 /* [.Ldata017] */ # 10a8: 620c35 + bnei a4, 1, .Lbr098 # 10ab: 661416 + movi a2, .Lstr006 # 10ae: 21ddff + movi a3, .Lstr007 # 10b1: 31ddff + movi a4, 1530 /* 0x000005fa */ # 10b4: 42a5fa + movi a5, 0 /* 0x00000000 */ # 10b7: 0c05 + s8i a5, a12, 61 /* 0x00 -> [.Ldata025] */ # 10b9: 524c3d + call0 printf # 10bc: 01e3ffc0 + # 10c0: 0000 +.Lbr097: j .Lbr097 /* (halt) */ # 10c2: 06ffff +.Lbr098: srli a6, a6, 7 # 10c5: 606741 + beqz a6, .Lbr103 # 10c8: bcf6 + movi a7, 2 /* 0x00000002 */ # 10ca: 0c27 + s8i a7, a12, 61 /* 0x02 -> [.Ldata025] */ # 10cc: 724c3d +.Lbr099: l32i a12, sp, 8 /* [(local2)] */ # 10cf: c821 + l32i a0, sp, 4 /* [(local1)] */ # 10d1: 0811 + addi sp, sp, 16 /* (top of frame) */ # 10d3: 12c110 + ret # 10d6: 0df0 +.Lbr100: s8i a0, a2, 0 /* 0x00 -> [.Ldata047] */ # 10d8: 024200 + l8ui a2, a12, 53 /* [.Ldata017] */ # 10db: 220c35 + movi a3, 239 /* 0x000000ef */ # 10de: 32a0ef + and a2, a2, a3 # 10e1: 302210 + s8i a2, a12, 53 /* a2 -> [.Ldata017] */ # 10e4: 224c35 + bnei a8, 1, .Lbr102 # 10e7: 661817 + bbci a2, 5, .Lbr102 # 10ea: 576214 + movi a2, .Lstr006 # 10ed: 21cfff + movi a3, .Lstr007 # 10f0: 31d0ff + movi a4, 1572 /* 0x00000624 */ # 10f3: 42a624 + s8i a0, a12, 61 /* 0x00 -> [.Ldata025] */ # 10f6: 024c3d + call0 printf # 10f9: 01d4ffc0 + # 10fd: 0000 +.Lbr101: j .Lbr101 /* (halt) */ # 10ff: 06ffff +.Lbr102: s8i a0, a12, 61 /* 0x00 -> [.Ldata025] */ # 1102: 024c3d + call0 .Lfunc014 # 1105: c5d2ff + j .Lbr099 # 1108: c6f0ff +.Lbr103: l8ui a2, a12, 64 /* [.Ldata028] */ # 110b: 220c40 + movi a3, .Label001 # 110e: 31c9ff + call0 rc_get_trc # 1111: 01cfffc0 + # 1115: 0000 + movi a0, .Ldata047 # 1117: 01c8ff + bnez a2, .Lbr104 # 111a: cc92 + movi a4, 0 /* 0x00000000 */ # 111c: 0c04 + s8i a4, a12, 61 /* 0x00 -> [.Ldata025] */ # 111e: 424c3d + call0 .Lfunc014 # 1121: 05d1ff + j .Lbr099 # 1124: c6e9ff +.Lbr104: l8ui a6, a0, 0 /* [.Ldata047] */ # 1127: 620000 + movi a5, 14 /* 0x0000000e */ # 112a: 0ce5 + addi a2, a6, 1 /* [.Ldata047]+0x1 */ # 112c: 1b26 + bltu a5, a6, .Lbr105 # 112e: 67350d + s8i a2, a0, 0 /* [.Ldata047]+0x1 -> [.Ldata047] */ # 1131: 224000 + movi a2, 0 /* 0x00000000 */ # 1134: 0c02 + call0 pm_send_nullfunc # 1136: 01c7ffc0 + # 113a: 0000 + j .Lbr099 # 113c: c6e3ff +.Lbr105: movi a2, 0 /* 0x00000000 */ # 113f: 0c02 + s8i a5, a0, 0 /* 0x0e -> [.Ldata047] */ # 1141: 524000 + call0 pm_send_nullfunc # 1144: 01c5ffc0 + # 1148: 0000 + j .Lbr099 # 114a: 46e0ff + + .literal_position # 1150: 00000000 + # 1154: 44020000 + # 1158: 781e0000 + # 115c: 685b0000 + # 1160: 37180000 + # 1164: 97210000 + # 1168: 00000000 + # 116c: 00000000 + +# Function @ .irom0.text+0x1170 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word @ -0x8 +# (local3): word @ -0x4 + .balign 4 +.Lfunc018: mov a3, a2 /* arg0 */ # 1170: 3d02 + addi sp, sp, -16 /* (local0) */ # 1172: 12c1f0 + s32i a13, sp, 12 /* a13 -> [(local3)] */ # 1175: d931 + s32i a12, sp, 8 /* a12 -> [(local2)] */ # 1177: c921 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 1179: 0911 + movi a12, .Ldata002 # 117b: c1f5ff + movi a2, .Lstr037 # 117e: 21f5ff + l16ui a0, a12, 230 /* [.Ldata037] */ # 1181: 021c73 + s32i a3, sp, 0 /* arg0 -> [(local0)] */ # 1184: 3901 + addi a0, a0, 1 /* [.Ldata037]+0x1 */ # 1186: 1b00 + s16i a0, a12, 230 /* [.Ldata037]+0x1 -> [.Ldata037] */ # 1188: 025c73 + call0 printf # 118b: 01f7ffc0 + # 118f: 0000 + l16ui a13, a12, 230 /* [.Ldata037] */ # 1191: d21c73 + beqz a13, .Lbr109 # 1194: 16bd05 + l16ui a2, a12, 232 /* [.Ldata038] */ # 1197: 221c74 + mov a3, a13 /* [.Ldata037] */ # 119a: 3d0d + call0 __udivsi3 # 119c: 01f4ffc0 + # 11a0: 0000 + movi a8, 29 /* 0x0000001d */ # 11a2: 1cd8 + extui a3, a2, 0, 16 # 11a4: 2030f4 + movi a2, 10 /* 0x0000000a */ # 11a7: 0ca2 + bltu a2, a3, .Lbr107 # 11a9: 373221 + l32i a0, a12, 76 /* [.Ldata030] */ # 11ac: 022c13 + movi a4, 0x00001e78 # 11af: 41eaff + movi a6, 0x00005b68 # 11b2: 61eaff + bltu a4, a0, .Lbr106 # 11b5: 073407 + movi a5, 200 /* 0x000000c8 */ # 11b8: 52a0c8 + add a5, a0, a5 /* [.Ldata030]+0xc8 */ # 11bb: 5a50 + s32i a5, a12, 76 /* [.Ldata030]+0xc8 -> [.Ldata030] */ # 11bd: 526c13 +.Lbr106: l32i a0, a12, 80 /* [.Ldata031] */ # 11c0: 022c14 + movi a7, 600 /* 0x00000258 */ # 11c3: 72a258 + bltu a6, a0, .Lbr107 # 11c6: 073604 + add a7, a0, a7 /* [.Ldata031]+0x258 */ # 11c9: 7a70 + s32i a7, a12, 80 /* [.Ldata031]+0x258 -> [.Ldata031] */ # 11cb: 726c14 +.Lbr107: bgeu a8, a3, .Lbr109 # 11ce: 37b821 + l32i a0, a12, 76 /* [.Ldata030] */ # 11d1: 022c13 + movi a9, 0x00001837 # 11d4: 91e3ff + movi a11, 0x00002197 # 11d7: b1e3ff + bgeu a9, a0, .Lbr108 # 11da: 07b907 + movi a10, -200 /* 0xffffff38 */ # 11dd: a2af38 + add a10, a0, a10 /* [.Ldata030]-0xc8 */ # 11e0: aaa0 + s32i a10, a12, 76 /* [.Ldata030]-0xc8 -> [.Ldata030] */ # 11e2: a26c13 +.Lbr108: l32i a0, a12, 80 /* [.Ldata031] */ # 11e5: 022c14 + movi a2, -600 /* 0xfffffda8 */ # 11e8: 22ada8 + bgeu a11, a0, .Lbr109 # 11eb: 07bb04 + add a2, a0, a2 /* [.Ldata031]-0x258 */ # 11ee: 2a20 + s32i a2, a12, 80 /* [.Ldata031]-0x258 -> [.Ldata031] */ # 11f0: 226c14 +.Lbr109: movi a3, 0 /* 0x00000000 */ # 11f3: 0c03 + s16i a3, a12, 232 /* 0x0000 -> [.Ldata038] */ # 11f5: 325c74 + bltui a13, 2, .Lbr110 # 11f8: b62d09 + l32i a4, sp, 0 /* [(local0)] */ # 11fb: 4801 + beqz a4, .Lbr111 # 11fd: 8c74 + call0 .Lfunc013 # 11ff: 855fff + j .Lbr111 # 1202: 860000 +.Lbr110: call0 .Lfunc008 # 1205: c531ff +.Lbr111: l32i a12, sp, 8 /* [(local2)] */ # 1208: c821 + l32i a13, sp, 12 /* [(local3)] */ # 120a: d831 + l32i a0, sp, 4 /* [(local1)] */ # 120c: 0811 + addi sp, sp, 16 /* (top of frame) */ # 120e: 12c110 + ret # 1211: 0df0 + + .literal_position # 1214: 50020000 + # 1218: 00000000 + # 121c: 58000000 + # 1220: 60000000 + # 1224: 00000000 + # 1228: 00000000 + # 122c: 00000000 + # 1230: 00000000 + +# Function @ .irom0.text+0x1234 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 +.Lfunc019: addi sp, sp, -16 /* (local0) */ # 1234: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1237: 0901 + call0 vTaskSuspendAll # 1239: 01faffc0 + # 123d: 0000 + movi a2, .Lstr038 # 123f: 21f5ff + call0 printf # 1242: 01f9ffc0 + # 1246: 0000 + movi a3, .Ldata002 # 1248: 31f4ff + l8ui a0, a3, 53 /* [.Ldata017] */ # 124b: 020335 + l8ui a2, a3, 55 /* [.Ldata019] */ # 124e: 220337 + extui a0, a0, 1, 3 # 1251: 000124 + bnei a0, 5, .Lbr112 # 1254: 665002 + beqi a2, 8, .Lbr113 # 1257: 268202 +.Lbr112: bnei a0, 4, .Lbr117 # 125a: 664022 +.Lbr113: bnei a0, 5, .Lbr114 # 125d: 665005 + l8ui a4, a3, 55 /* [.Ldata019] */ # 1260: 420337 + beqi a4, 8, .Lbr116 # 1263: 268414 +.Lbr114: beqi a0, 4, .Lbr116 # 1266: 264011 + movi a2, .Lstr006 # 1269: 21ecff + movi a3, .Lstr007 # 126c: 31edff + movi a4, 1640 /* 0x00000668 */ # 126f: 42a668 + call0 printf # 1272: 01eeffc0 + # 1276: 0000 +.Lbr115: j .Lbr115 /* (halt) */ # 1278: 06ffff +.Lbr116: movi a2, 1 /* 0x00000001 */ # 127b: 0c12 + call0 .Lfunc018 # 127d: 05efff +.Lbr117: call0 xTaskResumeAll # 1280: 01ecffc0 + # 1284: 0000 + l32i a0, sp, 0 /* [(local0)] */ # 1286: 0801 + addi sp, sp, 16 /* (top of frame) */ # 1288: 12c110 + ret # 128b: 0df0 + + .literal_position # 1290: 00000000 + # 1294: 00000000 + # 1298: 00000000 + # 129c: 00000000 + # 12a0: 58000000 + # 12a4: 60000000 + # 12a8: 58000000 + # 12ac: 60000000 + # 12b0: 00000000 + # 12b4: 00000000 + +# Function @ .irom0.text+0x12b8 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 +.Lfunc020: movi a4, 191 /* 0x000000bf */ # 12b8: 42a0bf + movi a2, .Ldata002 # 12bb: 21f5ff + addi sp, sp, -16 /* (local0) */ # 12be: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 12c1: 0901 + l8ui a3, a2, 53 /* [.Ldata017] */ # 12c3: 320235 + movi a0, .Ldata001 # 12c6: 01f3ff + and a3, a3, a4 # 12c9: 403310 + l8ui a0, a0, 0 /* [.Ldata001] */ # 12cc: 020000 + s8i a3, a2, 53 /* a3 -> [.Ldata017] */ # 12cf: 324235 + bnei a0, 2, .Lbr118 # 12d2: 66200b + call0 .Lfunc010 # 12d5: 0541ff + movi a0, .Ldata001 # 12d8: 01f1ff + l8ui a0, a0, 0 /* [.Ldata001] */ # 12db: 020000 + movi a2, .Ldata002 # 12de: 21eeff +.Lbr118: bnei a0, 1, .Lbr121 # 12e1: 66102a + l8ui a0, a2, 53 /* [.Ldata017] */ # 12e4: 020235 + extui a3, a0, 1, 3 # 12e7: 003124 + beqi a3, 5, .Lbr120 # 12ea: 265311 + movi a2, .Lstr006 # 12ed: 21ecff + movi a3, .Lstr007 # 12f0: 31edff + movi a4, 1656 /* 0x00000678 */ # 12f3: 42a678 + call0 printf # 12f6: 01eeffc0 + # 12fa: 0000 +.Lbr119: j .Lbr119 /* (halt) */ # 12fc: 06ffff +.Lbr120: bbci a0, 4, .Lbr121 # 12ff: 47600c + l8ui a4, a2, 58 /* [.Ldata022] */ # 1302: 42023a + bnez a4, .Lbr122 # 1305: ccd4 + call0 .Lfunc004 # 1307: 85f0fe + beqz a2, .Lbr124 # 130a: 9ca2 + call0 .Lfunc007 # 130c: 0518ff +.Lbr121: l32i a0, sp, 0 /* [(local0)] */ # 130f: 0801 + addi sp, sp, 16 /* (top of frame) */ # 1311: 12c110 + ret # 1314: 0df0 +.Lbr122: movi a2, .Lstr006 # 1316: 21e4ff + movi a3, .Lstr007 # 1319: 31e4ff + movi a4, 1679 /* 0x0000068f */ # 131c: 42a68f + call0 printf # 131f: 01e5ffc0 + # 1323: 0000 +.Lbr123: j .Lbr123 /* (halt) */ # 1325: 06ffff +.Lbr124: call0 .Lfunc008 # 1328: 851fff + j .Lbr121 # 132b: 06f8ff + + .literal_position # 1330: 60020000 + # 1334: 8c000000 + # 1338: 00000000 + # 133c: 00000000 + # 1340: 00000000 + +# Function @ .irom0.text+0x1344 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 +.Lfunc021: movi a2, .Lstr039 # 1344: 21fbff + addi sp, sp, -16 /* (local0) */ # 1347: 12c1f0 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 134a: 0911 + call0 printf # 134c: 01fbffc0 + # 1350: 0000 + movi a2, .Label004 # 1352: 21f8ff + s32i a2, sp, 0 /* .Label004 -> [(local0)] */ # 1355: 2901 + call0 os_timer_disarm # 1357: 01f9ffc0 + # 135b: 0000 + l32i a2, sp, 0 /* [(local0)] */ # 135d: 2801 + movi a3, 55 /* 0x00000037 */ # 135f: 3c73 + movi a4, 0 /* 0x00000000 */ # 1361: 0c04 + call0 os_timer_arm # 1363: 01f7ffc0 + # 1367: 0000 + l32i a0, sp, 4 /* [(local1)] */ # 1369: 0811 + addi sp, sp, 16 /* (top of frame) */ # 136b: 12c110 + ret # 136e: 0df0 + + .literal_position # 1370: 00000000 + +# Function @ .irom0.text+0x1374 + .balign 4 + .global pm_enable_gpio_wakeup + .type pm_enable_gpio_wakeup, @function +pm_enable_gpio_wakeup: + movi a3, .Ldata002 # 1374: 31ffff + l8ui a2, a3, 52 /* [.Ldata016] */ # 1377: 220334 + movi a4, 223 /* 0x000000df */ # 137a: 42a0df + and a2, a2, a4 # 137d: 402210 + movi a4, 32 /* 0x00000020 */ # 1380: 2c04 + or a2, a2, a4 # 1382: 402220 + s8i a2, a3, 52 /* a2 -> [.Ldata016] */ # 1385: 224334 + ret # 1388: 0df0 + + .literal_position # 138c: 00000000 + # 1390: c4000000 + # 1394: 58040000 + # 1398: 00000000 + # 139c: c4090000 + # 13a0: 70170000 + # 13a4: 50460000 + # 13a8: 240f0000 + # 13ac: 5c100000 + # 13b0: 54000000 + # 13b4: 34120000 + # 13b8: 70000000 + # 13bc: b8120000 + # 13c0: 8c000000 + # 13c4: 44130000 + # 13c8: a8000000 + # 13cc: 00000000 + # 13d0: 881a0000 + # 13d4: 74020000 + # 13d8: 7c020000 + # 13dc: 00000000 + # 13e0: 00000000 + # 13e4: 00000000 + # 13e8: 00000000 + # 13ec: 00000000 + # 13f0: 00000000 + # 13f4: 00000000 + # 13f8: 00000000 + # 13fc: 00000000 + # 1400: 00000000 + +# Function @ .irom0.text+0x1404 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word[3] @ -0x1c +# (local2): word @ -0x10 +# (local3): word[3] @ -0xc + .balign 4 + .global pm_attach + .type pm_attach, @function +pm_attach: movi a5, 251 /* 0x000000fb */ # 1404: 52a0fb + movi a3, .Ldata002 # 1407: 31e1ff + movi a2, 2 /* 0x00000002 */ # 140a: 0c22 + addi sp, sp, -32 /* (local0) */ # 140c: 12c1e0 + s32i a0, sp, 20 /* a0 -> [(local3)] */ # 140f: 0951 + s8i a2, a3, 224 /* 0x02 -> [.Ldata032] */ # 1411: 2243e0 + l8ui a4, a3, 52 /* [.Ldata016] */ # 1414: 420334 + movi a2, .Label006 # 1417: 21deff + and a4, a4, a5 # 141a: 504410 + movi a5, 4 /* 0x00000004 */ # 141d: 0c45 + or a4, a4, a5 # 141f: 504420 + s8i a4, a3, 52 /* a4 -> [.Ldata016] */ # 1422: 424334 + movi a5, 254 /* 0x000000fe */ # 1425: 52a0fe + and a4, a4, a5 # 1428: 504410 + s8i a4, a3, 52 /* a4 -> [.Ldata016] */ # 142b: 424334 + movi a5, 253 /* 0x000000fd */ # 142e: 52a0fd + and a4, a4, a5 # 1431: 504410 + s8i a4, a3, 52 /* a4 -> [.Ldata016] */ # 1434: 424334 + movi a5, 247 /* 0x000000f7 */ # 1437: 52a0f7 + and a4, a4, a5 # 143a: 504410 + movi a5, 8 /* 0x00000008 */ # 143d: 0c85 + or a4, a4, a5 # 143f: 504420 + s8i a4, a3, 52 /* a4 -> [.Ldata016] */ # 1442: 424334 + movi a3, .Lfunc006 # 1445: 31d3ff + movi a4, 0 /* 0x00000000 */ # 1448: 0c04 + call0 os_timer_setfn # 144a: 01e5ffc0 + # 144e: 0000 + movi a0, 223 /* 0x000000df */ # 1450: 02a0df + movi a3, 0 /* 0x00000000 */ # 1453: 0c03 + movi a6, 1 /* 0x00000001 */ # 1455: 0c16 + movi a8, 0x00004650 # 1457: 81d3ff + movi a9, 0x00001770 # 145a: 91d1ff + movi a10, 0x000009c4 # 145d: a1cfff + movi a7, .Ldata002 # 1460: 71ceff + movi a4, 2 /* 0x00000002 */ # 1463: 0c24 + s8i a4, a7, 226 /* 0x02 -> [.Ldata034] */ # 1465: 4247e2 + s16i a10, a7, 44 /* 0x09c4 -> [.Ldata012] */ # 1468: a25716 + s32i a9, a7, 76 /* 0x00001770 -> [.Ldata030] */ # 146b: 926713 + s32i a8, a7, 80 /* 0x00004650 -> [.Ldata031] */ # 146e: 826714 + s8i a6, a7, 228 /* 0x01 -> [.Ldata036] */ # 1471: 6247e4 + s8i a3, a7, 225 /* 0x00 -> [.Ldata033] */ # 1474: 3247e1 + s8i a3, a7, 227 /* 0x00 -> [.Ldata035] */ # 1477: 3247e3 + s8i a3, a7, 54 /* 0x00 -> [.Ldata018] */ # 147a: 324736 + l8ui a2, a7, 52 /* [.Ldata016] */ # 147d: 220734 + l8ui a11, a7, 53 /* [.Ldata017] */ # 1480: b20735 + and a2, a2, a0 # 1483: 002210 + and a11, a11, a0 # 1486: 00bb10 + s8i a11, a7, 53 /* a11 -> [.Ldata017] */ # 1489: b24735 + s8i a2, a7, 52 /* a2 -> [.Ldata016] */ # 148c: 224734 + movi a3, 5 /* 0x00000005 */ # 148f: 0c53 + movi a2, .Lfunc016 # 1491: 21c5ff + call0 ppRegisterTxCallback # 1494: 01d4ffc0 + # 1498: 0000 + movi a2, .Lfunc017 # 149a: 21c4ff + movi a3, 6 /* 0x00000006 */ # 149d: 0c63 + call0 ppRegisterTxCallback # 149f: 01d2ffc0 + # 14a3: 0000 + movi a2, .Label002 # 14a5: 21c2ff + movi a3, .Lfunc019 # 14a8: 31c3ff + movi a4, 0 /* 0x00000000 */ # 14ab: 0c04 + call0 os_timer_setfn # 14ad: 01cfffc0 + # 14b1: 0000 + movi a2, .Label003 # 14b3: 21c1ff + movi a3, .Lfunc020 # 14b6: 31c1ff + movi a4, 0 /* 0x00000000 */ # 14b9: 0c04 + call0 os_timer_setfn # 14bb: 01cdffc0 + # 14bf: 0000 + movi a2, .Label004 # 14c1: 21bfff + movi a3, .Lfunc021 # 14c4: 31c0ff + movi a4, 0 /* 0x00000000 */ # 14c7: 0c04 + call0 os_timer_setfn # 14c9: 01caffc0 + # 14cd: 0000 + movi a2, .Label005 # 14cf: 21beff + movi a3, pm_idle_sleep # 14d2: 31beff + movi a4, 0 /* 0x00000000 */ # 14d5: 0c04 + call0 os_timer_setfn # 14d7: 01c8ffc0 + # 14db: 0000 + movi a2, .Lfunc023 # 14dd: 21bcff + movi a3, .Lstr040 # 14e0: 31bdff + movi a4, 176 /* 0x000000b0 */ # 14e3: 42a0b0 + movi a6, 1 /* 0x00000001 */ # 14e6: 0c16 + addi a7, sp, 16 /* (local2) */ # 14e8: 72c110 + movi a5, 0 /* 0x00000000 */ # 14eb: 0c05 + s32i a5, sp, 0 /* 0x00000000 -> [(local0)] */ # 14ed: 5901 + s32i a5, sp, 4 /* 0x00000000 -> [(local1)] */ # 14ef: 5911 + movi a5, 0 /* 0x00000000 */ # 14f1: 0c05 + call0 xTaskGenericCreate # 14f3: 01c2ffc0 + # 14f7: 0000 + movi a2, .Lstr041 # 14f9: 21b7ff + l32i a3, sp, 16 /* [(local2)] */ # 14fc: 3841 + movi a4, 1 /* 0x00000001 */ # 14fe: 0c14 + movi a5, 176 /* 0x000000b0 */ # 1500: 52a0b0 + call0 printf # 1503: 01bfffc0 + # 1507: 0000 + movi a7, .Ldata002 # 1509: 71b4ff + movi a6, 1 /* 0x00000001 */ # 150c: 0c16 + s8i a6, a7, 57 /* 0x01 -> [.Ldata021] */ # 150e: 624739 + call0 pm_reset_idle_sleep # 1511: 050000 + l32i a0, sp, 20 /* [(local3)] */ # 1514: 0851 + addi sp, sp, 32 /* (top of frame) */ # 1516: 12c120 + ret # 1519: 0df0 + + .literal_position # 151c: 00000000 + # 1520: bc020000 + # 1524: 8c000000 + # 1528: 58000000 + # 152c: 60000000 + # 1530: ff0f00ff + # 1534: 00800100 + # 1538: 00000000 + # 153c: 41000000 + # 1540: 000af23f + # 1544: f7ffff03 + # 1548: 00000000 + # 154c: a4020000 + # 1550: 00000000 + # 1554: 00000000 + # 1558: 00000000 + # 155c: 00000000 + # 1560: 00000000 + # 1564: 00000000 + # 1568: 00000000 + # 156c: 00000000 + # 1570: 00000000 + # 1574: 00000000 + +# Function @ .irom0.text+0x1578 +# Local variables/stack: +# (local0): word[4] @ -0x30 +# (local1): word @ -0x20 +# (local2): word @ -0x1c +# (local3): word @ -0x18 +# (local4): word @ -0x14 +# (local5): word @ -0x10 +# (local6): word @ -0xc +# (local7): word[2] @ -0x8 + .balign 4 + .global pm_send_nullfunc + .type pm_send_nullfunc, @function +pm_send_nullfunc: + movi a5, 2 /* 0x00000002 */ # 1578: 0c25 + addi sp, sp, -48 /* (local0) */ # 157a: 12c1d0 + movi a3, .Ldata002 # 157d: 31e7ff + s32i a0, sp, 40 /* a0 -> [(local7)] */ # 1580: 09a1 + movi a0, 0 /* 0x00000000 */ # 1582: 0c00 + l8ui a4, a3, 59 /* [.Ldata023] */ # 1584: 42033b + s32i a0, sp, 16 /* 0x00000000 -> [(local1)] */ # 1587: 0941 + bnez a4, .Lbr126 # 1589: dc74 + l8ui a6, a3, 60 /* [.Ldata024] */ # 158b: 62033c + beqz a6, .Lbr125 # 158e: 8c56 + mov a5, a2 /* arg0 */ # 1590: 5d02 + movi a0, 1 /* 0x00000001 */ # 1592: 0c10 + j .Lbr126 # 1594: 060300 +.Lbr125: l8ui a7, a3, 53 /* [.Ldata017] */ # 1597: 720335 + movi a6, 1 /* 0x00000001 */ # 159a: 0c16 + srli a7, a7, 7 # 159c: 707741 + beqz a7, .Lbr130 # 159f: 162704 + mov a0, a6 /* 0x00000001 */ # 15a2: 0d06 +.Lbr126: movnez a5, a0, a2 # 15a4: 205093 + s8i a5, a3, 61 /* a5 -> [.Ldata025] */ # 15a7: 52433d + j .Lbr129 # 15aa: 060c00 +.Lbr127: l32i a9, sp, 32 /* [(local5)] */ # 15ad: 9881 + movi a2, .Lstr043 # 15af: 21dcff + l32i a9, a9, 32 /* [[(local5)]+0x20] */ # 15b2: 9889 + movi a8, 64 /* 0x00000040 */ # 15b4: 4c08 + s8i a8, a9, 14 /* 0x40 -> [[[(local5)]+0x20]+0xe] */ # 15b6: 82490e + call0 printf # 15b9: 01e5ffc0 + # 15bd: 0000 +.Lbr128: movi a2, .Label004 # 15bf: 21d9ff + s32i a2, sp, 20 /* .Label004 -> [(local2)] */ # 15c2: 2951 + call0 os_timer_disarm # 15c4: 01e4ffc0 + # 15c8: 0000 + l32i a2, sp, 20 /* [(local2)] */ # 15ca: 2851 + movi a3, 55 /* 0x00000037 */ # 15cc: 3c73 + movi a4, 0 /* 0x00000000 */ # 15ce: 0c04 + call0 os_timer_arm # 15d0: 01e2ffc0 + # 15d4: 0000 + l32i a2, sp, 32 /* [(local5)] */ # 15d6: 2881 + call0 ppTxPkt # 15d8: 01e1ffc0 + # 15dc: 0000 +.Lbr129: l32i a0, sp, 40 /* [(local7)] */ # 15de: 08a1 + addi sp, sp, 48 /* (top of frame) */ # 15e0: 12c130 + ret # 15e3: 0df0 +.Lbr130: s32i a2, sp, 36 /* arg0 -> [(local6)] */ # 15e5: 2991 + s8i a6, a3, 58 /* 0x01 -> [.Ldata022] */ # 15e7: 62433a + s32i a0, sp, 28 /* 0x00000000 -> [(local4)] */ # 15ea: 0971 + bnez a2, .Lbr131 # 15ec: cc42 + s8i a6, a3, 60 /* 0x01 -> [.Ldata024] */ # 15ee: 62433c + j .Lbr132 # 15f1: 860000 +.Lbr131: s8i a6, a3, 59 /* 0x01 -> [.Ldata023] */ # 15f4: 62433b +.Lbr132: addi a2, sp, 16 /* (local1) */ # 15f7: 22c110 + movi a3, 24 /* 0x00000018 */ # 15fa: 1c83 + movi a4, 0 /* 0x00000000 */ # 15fc: 0c04 + call0 ieee80211_getmgtframe # 15fe: 01d8ffc0 + # 1602: 0000 + s32i a2, sp, 32 /* a2 -> [(local5)] */ # 1604: 2981 + bnez a2, .Lbr134 # 1606: dc02 + movi a2, .Lstr006 # 1608: 21c8ff + movi a3, .Lstr007 # 160b: 31c8ff + movi a4, 1818 /* 0x0000071a */ # 160e: 42a71a + call0 printf # 1611: 01d4ffc0 + # 1615: 0000 +.Lbr133: j .Lbr133 /* (halt) */ # 1617: 06ffff +.Lbr134: l32i a2, a2, 4 # 161a: 2812 + movi a3, 24 /* 0x00000018 */ # 161c: 1c83 + l32i a2, a2, 4 # 161e: 2812 + s32i a2, sp, 24 /* a2 -> [(local3)] */ # 1620: 2961 + call0 bzero # 1622: 01d1ffc0 + # 1626: 0000 + movi a5, 24 /* 0x00000018 */ # 1628: 1c85 + l32i a4, sp, 32 /* [(local5)] */ # 162a: 4881 + l32i a6, sp, 28 /* [(local4)] */ # 162c: 6871 + s16i a6, a4, 22 /* [(local4)] -> [[(local5)]+0x16] */ # 162e: 62540b + s16i a5, a4, 20 /* 0x0018 -> [[(local5)]+0x14] */ # 1631: 52540a + movi a9, 64 /* 0x00000040 */ # 1634: 4c09 + movi a0, 128 /* 0x00000080 */ # 1636: 02a080 + l32i a4, a4, 4 /* [[(local5)]+0x4] */ # 1639: 4814 + memw # 163b: c02000 + l8ui a11, a4, 3 /* [[[(local5)]+0x4]+0x3] */ # 163e: b20403 + extui a11, a11, 0, 7 # 1641: b0b064 + or a11, a11, a0 # 1644: 00bb20 + memw # 1647: c02000 + s8i a11, a4, 3 /* a11 -> [[[(local5)]+0x4]+0x3] */ # 164a: b24403 + movi a10, 191 /* 0x000000bf */ # 164d: a2a0bf + memw # 1650: c02000 + l8ui a8, a4, 3 /* [[[(local5)]+0x4]+0x3] */ # 1653: 820403 + and a8, a8, a10 # 1656: a08810 + or a8, a8, a9 # 1659: 908820 + memw # 165c: c02000 + s8i a8, a4, 3 /* a8 -> [[[(local5)]+0x4]+0x3] */ # 165f: 824403 + movi a7, 223 /* 0x000000df */ # 1662: 72a0df + memw # 1665: c02000 + l8ui a5, a4, 3 /* [[[(local5)]+0x4]+0x3] */ # 1668: 520403 + and a5, a5, a7 # 166b: 705510 + or a5, a5, a6 # 166e: 605520 + memw # 1671: c02000 + s8i a5, a4, 3 /* a5 -> [[[(local5)]+0x4]+0x3] */ # 1674: 524403 + movi a6, 0xff000fff # 1677: 61aeff + movi a5, 0x00018000 # 167a: 51aeff + memw # 167d: c02000 + l16ui a3, a4, 2 /* [[[(local5)]+0x4]+0x2] */ # 1680: 321401 + slli a3, a3, 16 # 1683: 003311 + memw # 1686: c02000 + l16ui a7, a4, 0 /* [[[(local5)]+0x4]] */ # 1689: 721400 + or a3, a3, a7 # 168c: 703320 + and a3, a3, a6 # 168f: 603310 + or a3, a3, a5 # 1692: 503320 + memw # 1695: c02000 + s16i a3, a4, 0 /* a3 -> [[[(local5)]+0x4]] */ # 1698: 325400 + extui a3, a3, 16, 16 # 169b: 3030f5 + memw # 169e: c02000 + s16i a3, a4, 2 /* a3 -> [[[(local5)]+0x4]+0x2] */ # 16a1: 325401 + movi a2, 0 /* 0x00000000 */ # 16a4: 0c02 + call0 ic_get_addr # 16a6: 01b1ffc0 + # 16aa: 0000 + l32i a3, sp, 32 /* [(local5)] */ # 16ac: 3881 + movi a4, 72 /* 0x00000048 */ # 16ae: 4c84 + movi a5, 0 /* 0x00000000 */ # 16b0: 0c05 + mov a6, a2 # 16b2: 6d02 + movi a8, .Label001 # 16b4: 81a2ff + movi a2, g_ic # 16b7: 21a0ff + mov a7, a8 /* .Label001 */ # 16ba: 7d08 + l32i a2, a2, 16 /* [g_ic+0x10] */ # 16bc: 2842 + s32i a8, sp, 0 /* .Label001 -> [(local0)] */ # 16be: 8901 + call0 ieee80211_send_setup # 16c0: 01acffc0 + # 16c4: 0000 + l32i a5, sp, 32 /* [(local5)] */ # 16c6: 5881 + movi a6, 0x3ff20a00 # 16c8: 619eff + l32i a7, a5, 32 /* [[(local5)]+0x20] */ # 16cb: 7885 + memw # 16cd: c02000 + movi a3, 6 /* 0x00000006 */ # 16d0: 0c63 + movi a4, 240 /* 0x000000f0 */ # 16d2: 42a0f0 + movi a9, 143 /* 0x0000008f */ # 16d5: 92a08f + l8ui a8, a7, 6 /* [[[(local5)]+0x20]+0x6] */ # 16d8: 820706 + l32i a6, a6, 0x200 /* [0x3ff20c00] */ # 16db: 622680 + and a8, a8, a9 # 16de: 908810 + movi a9, 253 /* 0x000000fd */ # 16e1: 92a0fd + s8i a8, a7, 6 /* a8 -> [[[(local5)]+0x20]+0x6] */ # 16e4: 824706 + l32i a2, a5, 32 /* [[(local5)]+0x20] */ # 16e7: 2885 + s32i a6, a7, 16 /* [0x3ff20c00] -> [[[(local5)]+0x20]+0x10] */ # 16e9: 6947 + l8ui a0, a2, 4 /* [[[(local5)]+0x20]+0x4] */ # 16eb: 020204 + movi a8, .Ldata002 # 16ee: 8196ff + and a0, a0, a4 # 16f1: 400010 + l32i a4, sp, 28 /* [(local4)] */ # 16f4: 4871 + or a0, a0, a3 # 16f6: 300020 + s8i a0, a2, 4 /* a0 -> [[[(local5)]+0x20]+0x4] */ # 16f9: 024204 + l32i a7, a5, 32 /* [[(local5)]+0x20] */ # 16fc: 7885 + l32i a3, sp, 36 /* [(local6)] */ # 16fe: 3891 + l32i a11, a7, 0 /* [[[(local5)]+0x20]] */ # 1700: b807 + movi a0, 0x03fffff7 # 1702: 0190ff + extui a10, a11, 0, 6 # 1705: b0a054 + srli a11, a11, 6 # 1708: b0b641 + and a11, a11, a0 # 170b: 00bb10 + slli a11, a11, 6 # 170e: a0bb11 + or a10, a10, a11 # 1711: b0aa20 + s32i a10, a7, 0 /* a10 -> [[[(local5)]+0x20]] */ # 1714: a907 + l8ui a6, a7, 0 /* [[[(local5)]+0x20]] */ # 1716: 620700 + l8ui a8, a8, 64 /* [.Ldata028] */ # 1719: 820840 + and a6, a6, a9 # 171c: 906610 + extui a8, a8, 0, 1 # 171f: 808004 + slli a8, a8, 1 # 1722: f08811 + or a6, a6, a8 # 1725: 806620 + s8i a6, a7, 0 /* a6 -> [[[(local5)]+0x20]] */ # 1728: 624700 + s32i a4, a5, 24 /* [(local4)] -> [[(local5)]+0x18] */ # 172b: 4965 + beqz a3, .Lbr127 # 172d: 16c3e7 + movi a2, .Lstr042 # 1730: 2187ff + l32i a10, sp, 24 /* [(local3)] */ # 1733: a861 + l32i a8, sp, 32 /* [(local5)] */ # 1735: 8881 + l8ui a9, a10, 1 /* [[(local3)]+0x1] */ # 1737: 920a01 + movi a11, 16 /* 0x00000010 */ # 173a: 1c0b + or a9, a9, a11 # 173c: b09920 + s8i a9, a10, 1 /* a9 -> [[(local3)]+0x1] */ # 173f: 924a01 + l32i a8, a8, 32 /* [[(local5)]+0x20] */ # 1742: 8888 + movi a7, 32 /* 0x00000020 */ # 1744: 2c07 + s8i a7, a8, 14 /* 0x20 -> [[[(local5)]+0x20]+0xe] */ # 1746: 72480e + call0 printf # 1749: 018affc0 + # 174d: 0000 + j .Lbr128 # 174f: 069bff + + .literal_position # 1754: 00000000 + +# Function @ .irom0.text+0x1758 + .balign 4 + .global pm_is_waked + .type pm_is_waked, @function +pm_is_waked: + movi a4, .Ldata002 # 1758: 41ffff + l8ui a4, a4, 53 /* [.Ldata017] */ # 175b: 420435 + movi a2, 0 /* 0x00000000 */ # 175e: 0c02 + extui a3, a4, 1, 3 # 1760: 403124 + bnei a3, 7, .Lbr135 # 1763: 667304 + bbci a4, 5, .Lbr135 # 1766: 576401 + movi a2, 1 /* 0x00000001 */ # 1769: 0c12 +.Lbr135: extui a2, a2, 0, 8 # 176b: 202074 + ret # 176e: 0df0 + + .literal_position # 1770: 00000000 + +# Function @ .irom0.text+0x1774 + .balign 4 + .global pm_is_open + .type pm_is_open, @function +pm_is_open: movi a4, .Ldata002 # 1774: 41ffff + movi a3, 1 /* 0x00000001 */ # 1777: 0c13 + l8ui a4, a4, 53 /* [.Ldata017] */ # 1779: 420435 + movi a2, 0 /* 0x00000000 */ # 177c: 0c02 + extui a4, a4, 5, 1 # 177e: 404504 + addi a4, a4, -1 # 1781: 0b44 + moveqz a2, a3, a4 # 1783: 402383 + ret # 1786: 0df0 + + .literal_position # 1788: d4020000 + # 178c: 00000000 + # 1790: 00000000 + # 1794: 00000000 + +# Function @ .irom0.text+0x1798 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global pm_scan_lock + .type pm_scan_lock, @function +pm_scan_lock: + movi a2, .Label011 # 1798: 21fcff + addi sp, sp, -16 /* (local0) */ # 179b: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 179e: 0901 + call0 printf # 17a0: 01fcffc0 + # 17a4: 0000 + movi a2, .Ldata002 # 17a6: 21f9ff + l8ui a0, a2, 53 /* [.Ldata017] */ # 17a9: 020235 + movi a3, 128 /* 0x00000080 */ # 17ac: 32a080 + extui a0, a0, 0, 7 # 17af: 000064 + or a0, a0, a3 # 17b2: 300020 + s8i a0, a2, 53 /* a0 -> [.Ldata017] */ # 17b5: 024235 + call0 pp_disable_idle_timer # 17b8: 01f7ffc0 + # 17bc: 0000 + l32i a0, sp, 0 /* [(local0)] */ # 17be: 0801 + addi sp, sp, 16 /* (top of frame) */ # 17c0: 12c110 + ret # 17c3: 0df0 + + .balign 4 +# Function @ .irom0.text+0x17c8 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global pm_try_scan_unlock + .type pm_try_scan_unlock, @function +pm_try_scan_unlock: + movi a2, 0 /* 0x00000000 */ # 17c8: 0c02 + addi sp, sp, -16 /* (local0) */ # 17ca: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 17cd: 0901 + call0 .Lfunc022 # 17cf: 450600 + l32i a0, sp, 0 /* [(local0)] */ # 17d2: 0801 + addi sp, sp, 16 /* (top of frame) */ # 17d4: 12c110 + ret # 17d7: 0df0 + + .literal_position # 17dc: d8020000 + # 17e0: 00000000 + # 17e4: 34180000 + +# Function @ .irom0.text+0x17e8 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global pm_force_scan_unlock + .type pm_force_scan_unlock, @function +pm_force_scan_unlock: + movi a2, .Lstr044 # 17e8: 21fdff + addi sp, sp, -16 /* (local0) */ # 17eb: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 17ee: 0901 + call0 printf # 17f0: 01fcffc0 + # 17f4: 0000 + movi a2, 0 /* 0x00000000 */ # 17f6: 0c02 + call0 .Lfunc022 # 17f8: 01fbffc0 + # 17fc: 0000 + l32i a0, sp, 0 /* [(local0)] */ # 17fe: 0801 + addi sp, sp, 16 /* (top of frame) */ # 1800: 12c110 + ret # 1803: 0df0 + + .literal_position # 1808: 00000000 + # 180c: e0020000 + # 1810: 58000000 + # 1814: 60000000 + # 1818: 58000000 + # 181c: 60000000 + # 1820: 00000000 + # 1824: 00000000 + # 1828: 00000000 + # 182c: 00000000 + # 1830: 00000000 + +# Function @ .irom0.text+0x1834 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 +.Lfunc022: addi sp, sp, -16 /* (local0) */ # 1834: 12c1f0 + movi a2, .Lstr045 # 1837: 21f5ff + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 183a: c911 + movi a12, .Ldata002 # 183c: c1f3ff + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 183f: 0901 + l8ui a3, a12, 53 /* [.Ldata017] */ # 1841: 320c35 + l8ui a4, a12, 61 /* [.Ldata025] */ # 1844: 420c3d + extui a3, a3, 1, 3 # 1847: 303124 + call0 printf # 184a: 01f5ffc0 + # 184e: 0000 + l8ui a0, a12, 53 /* [.Ldata017] */ # 1850: 020c35 + l8ui a5, a12, 58 /* [.Ldata022] */ # 1853: 520c3a + extui a4, a0, 0, 7 # 1856: 004064 + s8i a4, a12, 53 /* a4 -> [.Ldata017] */ # 1859: 424c35 + bbci a4, 5, .Lbr138 # 185c: 576435 + bnez a5, .Lbr138 # 185f: fc25 + l8ui a4, a12, 61 /* [.Ldata025] */ # 1861: 420c3d + movi a2, 0 /* 0x00000000 */ # 1864: 0c02 + bnei a4, 1, .Lbr139 # 1866: 661434 + s8i a2, a12, 61 /* 0x00 -> [.Ldata025] */ # 1869: 224c3d + extui a6, a0, 1, 3 # 186c: 006124 + beqi a6, 1, .Lbr142 # 186f: 26164f + movi a2, .Lstr006 # 1872: 21e7ff + movi a3, .Lstr007 # 1875: 31e7ff + movi a4, 1923 /* 0x00000783 */ # 1878: 42a783 + call0 printf # 187b: 01eaffc0 + # 187f: 0000 +.Lbr136: j .Lbr136 /* (halt) */ # 1881: 06ffff +.Lbr137: call0 pm_is_waked # 1884: 050000 + beqz a2, .Lbr138 # 1887: 8ca2 + call0 pp_disable_idle_timer # 1889: 01e7ffc0 + # 188d: 0000 + call0 pp_enable_idle_timer # 188f: 01e7ffc0 + # 1893: 0000 +.Lbr138: l32i a12, sp, 4 /* [(local1)] */ # 1895: c811 + l32i a0, sp, 0 /* [(local0)] */ # 1897: 0801 + addi sp, sp, 16 /* (top of frame) */ # 1899: 12c110 + ret # 189c: 0df0 +.Lbr139: bnei a4, 2, .Lbr137 # 189e: 6624e2 + s8i a2, a12, 61 /* 0x00 -> [.Ldata025] */ # 18a1: 224c3d + extui a7, a0, 1, 3 # 18a4: 007124 + beqi a7, 6, .Lbr141 # 18a7: 266711 + movi a2, .Lstr006 # 18aa: 21dbff + movi a3, .Lstr007 # 18ad: 31dbff + movi a4, 1930 /* 0x0000078a */ # 18b0: 42a78a + call0 printf # 18b3: 01dfffc0 + # 18b7: 0000 +.Lbr140: j .Lbr140 /* (halt) */ # 18b9: 06ffff +.Lbr141: call0 pm_send_nullfunc # 18bc: 050000 + j .Lbr138 # 18bf: 86f4ff +.Lbr142: movi a2, 1 /* 0x00000001 */ # 18c2: 0c12 + call0 pm_send_nullfunc # 18c4: 050000 + j .Lbr138 # 18c7: 86f2ff + + .literal_position # 18cc: 00000000 + +# Function @ .irom0.text+0x18d0 + .balign 4 + .global pm_scan_unlocked + .type pm_scan_unlocked, @function +pm_scan_unlocked: + movi a4, .Ldata002 # 18d0: 41ffff + movi a3, 1 /* 0x00000001 */ # 18d3: 0c13 + l8ui a4, a4, 53 /* [.Ldata017] */ # 18d5: 420435 + movi a2, 0 /* 0x00000000 */ # 18d8: 0c02 + srli a4, a4, 7 # 18da: 404741 + moveqz a2, a3, a4 # 18dd: 402383 + ret # 18e0: 0df0 + + .literal_position # 18e4: 00000000 + +# Function @ .irom0.text+0x18e8 + .balign 4 + .global pm_allow_tx + .type pm_allow_tx, @function +pm_allow_tx: + movi a6, .Ldata002 # 18e8: 61ffff + l8ui a4, a6, 53 /* [.Ldata017] */ # 18eb: 420635 + movi a5, 1 /* 0x00000001 */ # 18ee: 0c15 + extui a4, a4, 1, 3 # 18f0: 404124 + beqi a4, 7, .Lbr143 # 18f3: 267409 + beqz a4, .Lbr143 # 18f6: 8c64 + l8ui a7, a6, 64 /* [.Ldata028] */ # 18f8: 720640 + bne a7, a2, .Lbr143 # 18fb: 279701 + movi a5, 0 /* 0x00000000 */ # 18fe: 0c05 +.Lbr143: extui a2, a5, 0, 8 # 1900: 502074 + ret # 1903: 0df0 + + .literal_position # 1908: 00000000 + +# Function @ .irom0.text+0x190c + .balign 4 + .global pm_assoc_parse + .type pm_assoc_parse, @function +pm_assoc_parse: + l16ui a3, a2, 2 /* [arg0+0x2] */ # 190c: 321201 + beqz a3, .Lbr144 # 190f: 8c23 + movi a2, -1 /* 0xffffffff */ # 1911: 7cf2 + ret /* 0xffffffff */ # 1913: 0df0 +.Lbr144: l16ui a4, a2, 4 /* [arg0+0x4] */ # 1915: 421202 + movi a5, .Ldata002 # 1918: 51fcff + movi a2, 0 /* 0x00000000 */ # 191b: 0c02 + s16i a4, a5, 72 /* [arg0+0x4] -> [.Ldata029] */ # 191d: 425524 + ret /* 0x00000000 */ # 1920: 0df0 + + .literal_position # 1924: 00000000 + # 1928: 00000000 + +# Function @ .irom0.text+0x192c +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global pm_set_addr + .type pm_set_addr, @function +pm_set_addr: + addi sp, sp, -16 /* (local0) */ # 192c: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 192f: 0901 + movi a0, .Ldata002 # 1931: 01fcff + movi a4, 6 /* 0x00000006 */ # 1934: 0c64 + s8i a2, a0, 64 /* arg0 -> [.Ldata028] */ # 1936: 224040 + addi a2, a0, 65 /* .Label001 */ # 1939: 22c041 + call0 memcpy # 193c: 01fbffc0 + # 1940: 0000 + l32i a0, sp, 0 /* [(local0)] */ # 1942: 0801 + addi sp, sp, 16 /* (top of frame) */ # 1944: 12c110 + ret # 1947: 0df0 + + .literal_position # 194c: 00000000 + # 1950: 00000000 + +# Function @ .irom0.text+0x1954 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global pm_sleep_for + .type pm_sleep_for, @function +pm_sleep_for: + addi sp, sp, -16 /* (local0) */ # 1954: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1957: 0901 + movi a0, .Ldata002 # 1959: 01fcff + l8ui a3, a0, 53 /* [.Ldata017] */ # 195c: 320035 + bbci a3, 5, .Lbr145 # 195f: 576311 + movi a4, 6 /* 0x00000006 */ # 1962: 0c64 + addi a3, a0, 65 /* .Label001 */ # 1964: 32c041 + call0 memcmp # 1967: 01faffc0 + # 196b: 0000 + bnez a2, .Lbr145 # 196d: cc32 + movi a0, 1 /* 0x00000001 */ # 196f: 0c10 + j .Lbr146 # 1971: 460000 +.Lbr145: movi a0, 0 /* 0x00000000 */ # 1974: 0c00 +.Lbr146: extui a2, a0, 0, 8 # 1976: 002074 + l32i a0, sp, 0 /* [(local0)] */ # 1979: 0801 + addi sp, sp, 16 /* (top of frame) */ # 197b: 12c110 + ret # 197e: 0df0 + + .literal_position # 1980: 00000000 + # 1984: 40010000 + # 1988: ec020000 + # 198c: dc000000 + # 1990: fc020000 + # 1994: 00000000 + # 1998: 00000000 + # 199c: 00000000 + # 19a0: 00000000 + # 19a4: 00000000 + # 19a8: 00000000 + +# Function @ .irom0.text+0x19ac +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 + .global pm_post + .type pm_post, @function +pm_post: addi sp, sp, -16 /* (local0) */ # 19ac: 12c1f0 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 19af: 0911 + movi a0, .Ldata002 # 19b1: 01f3ff + s32i a12, sp, 8 /* a12 -> [(local2)] */ # 19b4: c921 + l8ui a0, a0, 57 /* [.Ldata021] */ # 19b6: 020039 + mov a12, a2 /* arg0 */ # 19b9: cd02 + beqz a0, .Lbr150 # 19bb: 168005 + call0 vPortEnterCritical # 19be: 01f5ffc0 + # 19c2: 0000 + movi a2, .Ldata042 # 19c4: 21f0ff + add a2, a12, a2 # 19c7: 2a2c + l8ui a0, a2, 0 # 19c9: 020200 + beqz a0, .Lbr148 # 19cc: 8c90 + call0 vPortExitCritical # 19ce: 01f2ffc0 + # 19d2: 0000 +.Lbr147: movi a2, 0 /* 0x00000000 */ # 19d4: 0c02 + j .Lbr150 # 19d6: 460f00 +.Lbr148: addi a3, a0, 1 # 19d9: 1b30 + s8i a3, a2, 0 # 19db: 324200 + call0 vPortExitCritical # 19de: 01efffc0 + # 19e2: 0000 + call0 .Lfunc001 # 19e4: 4562fe + s32i a2, sp, 0 /* a2 -> [(local0)] */ # 19e7: 2901 + bnez a2, .Lbr149 # 19e9: cc92 + movi a2, .Lstr046 # 19eb: 21e7ff + call0 printf # 19ee: 01ecffc0 + # 19f2: 0000 + l32i a2, sp, 0 /* [(local0)] */ # 19f4: 2801 +.Lbr149: mov a3, sp /* (local0) */ # 19f6: 3d01 + movi a4, .Label007 # 19f8: 41e5ff + s32i a12, a2, 0 # 19fb: c902 + movi a5, 0 /* 0x00000000 */ # 19fd: 0c05 + l32i a2, a4, 28 /* [.Ldata041] */ # 19ff: 2874 + movi a4, 1 /* 0x00000001 */ # 1a01: 0c14 + call0 xQueueGenericSend # 1a03: 01e8ffc0 + # 1a07: 0000 + beqi a2, 1, .Lbr147 # 1a09: 2612c7 + movi a2, .Lstr047 # 1a0c: 21e1ff + call0 printf # 1a0f: 01e6ffc0 + # 1a13: 0000 + movi a2, 1 /* 0x00000001 */ # 1a15: 0c12 +.Lbr150: l32i a12, sp, 8 /* [(local2)] */ # 1a17: c821 + l32i a0, sp, 4 /* [(local1)] */ # 1a19: 0811 + addi sp, sp, 16 /* (top of frame) */ # 1a1b: 12c110 + ret # 1a1e: 0df0 + + .literal_position # 1a20: 00000000 + # 1a24: 00feef3f + # 1a28: c4000000 + # 1a2c: 04030000 + # 1a30: 00000000 + # 1a34: 00000000 + # 1a38: 40010000 + # 1a3c: 40010000 + # 1a40: 10030000 + # 1a44: 40010000 + # 1a48: 1c030000 + # 1a4c: 00000000 + # 1a50: 00000000 + # 1a54: 00000000 + # 1a58: 00000000 + # 1a5c: 00000000 + # 1a60: 00000000 + # 1a64: 00000000 + # 1a68: 00000000 + # 1a6c: 00000000 + # 1a70: 00000000 + # 1a74: 00000000 + # 1a78: 00000000 + # 1a7c: 00000000 + # 1a80: 00000000 + # 1a84: 00000000 + +# Function @ .irom0.text+0x1a88 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word[4] @ -0x10 + .balign 4 +.Lfunc023: movi a2, 8 /* 0x00000008 */ # 1a88: 0c82 + movi a3, 4 /* 0x00000004 */ # 1a8a: 0c43 + movi a4, 0 /* 0x00000000 */ # 1a8c: 0c04 + addi sp, sp, -32 /* (local0) */ # 1a8e: 12c1e0 + s32i a14, sp, 16 /* a14 -> [(local4)] */ # 1a91: e941 + s32i a13, sp, 12 /* a13 -> [(local3)] */ # 1a93: d931 + s32i a12, sp, 8 /* a12 -> [(local2)] */ # 1a95: c921 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 1a97: 0911 + call0 xQueueGenericCreate # 1a99: 01eeffc0 + # 1a9d: 0000 + movi a14, 0x3feffe00 # 1a9f: e1e1ff + movi a7, .Ldata002 # 1aa2: 71dfff + movi a13, .Label006 # 1aa5: d1e0ff + s32i a2, a7, 248 /* a2 -> [.Ldata041] */ # 1aa8: 22673e + addi a12, a13, 16 /* .bss+0xd4 */ # 1aab: c2cd10 +.Lbr151: mov a3, sp /* (local0) */ # 1aae: 3d01 + movi a4, -1 /* 0xffffffff */ # 1ab0: 7cf4 + movi a5, 0 /* 0x00000000 */ # 1ab2: 0c05 + call0 xQueueGenericReceive # 1ab4: 01e9ffc0 + # 1ab8: 0000 + bnei a2, 1, .Lbr156 # 1aba: 66127e + l32i a3, sp, 0 /* [(local0)] */ # 1abd: 3801 + movi a2, .Lstr048 # 1abf: 21dbff + l32i a3, a3, 0 /* [[(local0)]] */ # 1ac2: 3803 + call0 printf # 1ac4: 01e6ffc0 + # 1ac8: 0000 + l32i a0, sp, 0 /* [(local0)] */ # 1aca: 0801 + l32i a0, a0, 0 /* [[(local0)]] */ # 1acc: 0800 + beqz a0, .Lbr157 # 1ace: 16f006 + addi a2, a0, -1 /* [[(local0)]]-0x1 */ # 1ad1: 0b20 + beqz a2, .Lbr158 # 1ad3: 16220b + bnei a0, 2, .Lbr155 # 1ad6: 66205f + movi a2, NMIIrqIsOn # 1ad9: 21d5ff + l8ui a2, a2, 0 /* [NMIIrqIsOn] */ # 1adc: 220200 + bnez a2, .Lbr153 # 1adf: ec82 + call0 vPortEnterCritical # 1ae1: 01dfffc0 + # 1ae5: 0000 +.Lbr152: memw # 1ae7: c02000 + l32i a4, a14, 0x200 /* [0x3ff00000] */ # 1aea: 422e80 + movi a5, -32 /* 0xffffffe0 */ # 1aed: 6c05 + and a4, a4, a5 # 1aef: 504410 + memw # 1af2: c02000 + s32i a4, a14, 0x200 /* a4 -> [0x3ff00000] */ # 1af5: 426e80 + memw # 1af8: c02000 + l32i a3, a14, 0x200 /* [0x3ff00000] */ # 1afb: 322e80 + bbsi a3, 0, .Lbr152 # 1afe: 07e3e5 + movi a2, NMIIrqIsOn # 1b01: 21ccff + l32i a0, sp, 0 /* [(local0)] */ # 1b04: 0801 + l8ui a2, a2, 0 /* [NMIIrqIsOn] */ # 1b06: 220200 + l32i a0, a0, 0 /* [[(local0)]] */ # 1b09: 0800 +.Lbr153: movi a4, .Ldata042 # 1b0b: 41cbff + add a4, a0, a4 # 1b0e: 4a40 + l8ui a3, a4, 0 # 1b10: 320400 + addi a3, a3, -1 # 1b13: 0b33 + s8i a3, a4, 0 # 1b15: 324400 + bnez a2, .Lbr154 # 1b18: dca2 + memw # 1b1a: c02000 + l32i a5, a14, 0x200 /* [0x3ff00000] */ # 1b1d: 522e80 + movi a6, -32 /* 0xffffffe0 */ # 1b20: 6c06 + and a5, a5, a6 # 1b22: 605510 + movi a6, 1 /* 0x00000001 */ # 1b25: 0c16 + or a5, a5, a6 # 1b27: 605520 + memw # 1b2a: c02000 + s32i a5, a14, 0x200 /* a5 -> [0x3ff00000] */ # 1b2d: 526e80 + call0 vPortExitCritical # 1b30: 01cdffc0 + # 1b34: 0000 +.Lbr154: call0 pm_reset_idle_sleep # 1b36: 050000 +.Lbr155: call0 .Lfunc002 # 1b39: 4551fe +.Lbr156: l32i a2, a12, 36 /* [.Ldata041] */ # 1b3c: 289c + j .Lbr151 # 1b3e: 06dbff +.Lbr157: call0 vPortEnterCritical # 1b41: 01c9ffc0 + # 1b45: 0000 + l32i a8, sp, 0 /* [(local0)] */ # 1b47: 8801 + movi a9, .Ldata042 # 1b49: 91bcff + l32i a8, a8, 0 /* [[(local0)]] */ # 1b4c: 8808 + add a8, a8, a9 # 1b4e: 9a88 + l8ui a7, a8, 0 # 1b50: 720800 + addi a7, a7, -1 # 1b53: 0b77 + s8i a7, a8, 0 # 1b55: 724800 + call0 vPortExitCritical # 1b58: 01c5ffc0 + # 1b5c: 0000 + movi a2, .Lstr049 # 1b5e: 21b8ff + call0 printf # 1b61: 01c3ffc0 + # 1b65: 0000 + movi a2, 1 /* 0x00000001 */ # 1b67: 0c12 + call0 ppCheckTxIdle # 1b69: 01c2ffc0 + # 1b6d: 0000 + bnez a2, .Lbr155 # 1b6f: 5662fc + call0 pm_is_waked # 1b72: 050000 + beqz a2, .Lbr155 # 1b75: 1602fc + l8ui a10, a12, 16 /* [.Ldata036] */ # 1b78: a20c10 + bnei a10, 1, .Lbr155 # 1b7b: 661aba + movi a11, 1 /* 0x00000001 */ # 1b7e: 0c1b + s8i a11, a12, 33 /* 0x01 -> [.Ldata040] */ # 1b80: b24c21 + call0 .Lfunc009 # 1b83: 85aefe + j .Lbr155 # 1b86: c6ebff +.Lbr158: call0 vPortEnterCritical # 1b89: 01bbffc0 + # 1b8d: 0000 + l32i a2, sp, 0 /* [(local0)] */ # 1b8f: 2801 + movi a3, .Ldata042 # 1b91: 31acff + l32i a2, a2, 0 /* [[(local0)]] */ # 1b94: 2802 + add a2, a2, a3 # 1b96: 3a22 + l8ui a0, a2, 0 # 1b98: 020200 + addi a0, a0, -1 # 1b9b: 0b00 + s8i a0, a2, 0 # 1b9d: 024200 + call0 vPortExitCritical # 1ba0: 01b7ffc0 + # 1ba4: 0000 + movi a2, .Lstr050 # 1ba6: 21a8ff + call0 printf # 1ba9: 01b5ffc0 + # 1bad: 0000 + movi a0, .Ldata002 # 1baf: 01a7ff + l8ui a0, a0, 53 /* [.Ldata017] */ # 1bb2: 020035 + bbci a0, 5, .Lbr155 # 1bb5: 576080 + extui a0, a0, 1, 3 # 1bb8: 000124 + bnei a0, 7, .Lbr159 # 1bbb: 667002 + j .Lbr155 # 1bbe: c6ddff +.Lbr159: bnei a0, 6, .Lbr160 # 1bc1: 666002 + j .Lbr155 # 1bc4: 46dcff +.Lbr160: movi a2, .Ldata001 # 1bc7: 21a2ff + l8ui a2, a2, 0 /* [.Ldata001] */ # 1bca: 220200 + bnei a2, 2, .Lbr162 # 1bcd: 662217 + mov a2, a13 /* .Label006 */ # 1bd0: 2d0d + call0 os_timer_disarm # 1bd2: 01acffc0 + # 1bd6: 0000 + call0 pm_rf_is_closed # 1bd8: 050000 + beqz a2, .Lbr161 # 1bdb: 8c32 + movi a2, 2 /* 0x00000002 */ # 1bdd: 0c22 + call0 .Lfunc005 # 1bdf: 0579fe +.Lbr161: call0 .Lfunc013 # 1be2: 45c1fe + j .Lbr155 # 1be5: 06d4ff +.Lbr162: call0 .Lfunc013 # 1be8: c5c0fe + j .Lbr155 # 1beb: 86d2ff + + .literal_position # 1bf0: 00000000 + # 1bf4: 00000000 + +# Function @ .irom0.text+0x1bf8 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global pm_get_idle_wait_time + .type pm_get_idle_wait_time, @function +pm_get_idle_wait_time: + movi a2, .Ldata002 # 1bf8: 21feff + addi sp, sp, -16 /* (local0) */ # 1bfb: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1bfe: 0901 + l8ui a2, a2, 64 /* [.Ldata028] */ # 1c00: 220240 + call0 rc_get_sta_trc # 1c03: 01fcffc0 + # 1c07: 0000 + beqz a2, .Lbr165 # 1c09: ac62 + l8ui a2, a2, 1 # 1c0b: 220201 + movi a3, 26 /* 0x0000001a */ # 1c0e: 1ca3 + slli a0, a2, 24 # 1c10: 800201 + srai a0, a0, 24 # 1c13: 000831 + bge a3, a0, .Lbr163 # 1c16: 07a304 + movi a2, 80 /* 0x00000050 */ # 1c19: 5c02 + j .Lbr164 # 1c1b: 460300 +.Lbr163: movi a3, 16 /* 0x00000010 */ # 1c1e: 1c03 + bge a3, a0, .Lbr165 # 1c20: 07a30f + movi a4, 127 /* 0x0000007f */ # 1c23: 42a07f + beq a2, a4, .Lbr165 # 1c26: 471209 + movi a2, 160 /* 0x000000a0 */ # 1c29: 22a0a0 +.Lbr164: l32i a0, sp, 0 /* [(local0)] */ # 1c2c: 0801 + addi sp, sp, 16 /* (top of frame) */ # 1c2e: 12c110 + ret # 1c31: 0df0 +.Lbr165: movi a2, 240 /* 0x000000f0 */ # 1c33: 22a0f0 + j .Lbr164 # 1c36: 86fcff + + .section .rodata.str1.4, "MSa", @progbits, 1 + +.Label008: .word 0x00000a77 # 0: 770a0000 +.Lstr001: .asciz "sleep %s" # 4: 736c6565 + # 8: 70202573 + # c: 00 + .balign 4 +.Lstr002: .asciz "disable" # 10: 64697361 + # 14: 626c6500 +.Lstr003: .asciz "enable" # 18: 656e6162 + # 1c: 6c6500 + .balign 4 +.Lstr004: .asciz "\n light sleep is not supported now \n" # 20: 0a206c69 + # 24: 67687420 + # 28: 736c6565 + # 2c: 70206973 + # 30: 206e6f74 + # 34: 20737570 + # 38: 706f7274 + # 3c: 6564206e + # 40: 6f77200a + # 44: 00 + .balign 4 +.Lstr005: .asciz ",type: %d" # 48: 2c747970 + # 4c: 653a2025 + # 50: 6400 + .balign 4 +.Label009: .word 0x0000000a # 54: 0a000000 +.Lstr006: .asciz "%s %u\n" # 58: 25732025 + # 5c: 750a00 + .balign 4 +.Lstr007: .asciz "pm.c" # 60: 706d2e63 + # 64: 00 + .balign 4 +.Lstr008: .asciz "pm wakeup st: %d, cause: %d\n" # 68: 706d2077 + # 6c: 616b6575 + # 70: 70207374 + # 74: 3a202564 + # 78: 2c206361 + # 7c: 7573653a + # 80: 2025640a + # 84: 00 + .balign 4 +.Lstr009: .asciz "c_dt1\n" # 88: 635f6474 + # 8c: 310a00 + .balign 4 +.Lstr010: .asciz "o_dt1\n" # 90: 6f5f6474 + # 94: 310a00 + .balign 4 +.Lstr011: .asciz "SET IDLE CB\n" # 98: 53455420 + # 9c: 49444c45 + # a0: 2043420a + # a4: 00 + .balign 4 +.Lstr012: .asciz "why %u %u %u %u\n" # a8: 77687920 + # ac: 25752025 + # b0: 75202575 + # b4: 2025750a + # b8: 00 + .balign 4 +.Lstr013: .asciz "c_dt2\n" # bc: 635f6474 + # c0: 320a00 + .balign 4 +.Label010: .byte 0x6f, 0x5f, 0x64, 0x74, 0x32, 0x0a, 0x00, 0x00 + .byte 0x25, 0x75, 0x20, 0x25, 0x75, 0x20, 0x25, 0x75 + .byte 0x20, 0x25, 0x75, 0x0a, 0x00, 0x00, 0x00, 0x00 +.Lstr014: .asciz "c_dt3\n" # dc: 635f6474 + # e0: 330a00 + .balign 4 +.Lstr015: .asciz "o_dt3\n" # e4: 6f5f6474 + # e8: 330a00 + .balign 4 +.Lstr016: .asciz "SEND NULL Sleep\n" # ec: 53454e44 + # f0: 204e554c + # f4: 4c20536c + # f8: 6565700a + # fc: 00 + .balign 4 +.Lstr017: .asciz "rf close,nulldata_send fail" # 100: 72662063 + # 104: 6c6f7365 + # 108: 2c6e756c + # 10c: 6c646174 + # 110: 615f7365 + # 114: 6e642066 + # 118: 61696c00 +.Lstr018: .asciz "SEND NULL Wake\n" # 11c: 53454e44 + # 120: 204e554c + # 124: 4c205761 + # 128: 6b650a00 +.Lstr019: .asciz "rf close,nulldata_false" # 12c: 72662063 + # 130: 6c6f7365 + # 134: 2c6e756c + # 138: 6c646174 + # 13c: 615f6661 + # 140: 6c736500 +.Lstr020: .asciz "Waked\n" # 144: 57616b65 + # 148: 640a00 + .balign 4 +.Lstr021: .asciz "c_dt4\n" # 14c: 635f6474 + # 150: 340a00 + .balign 4 +.Lstr022: .asciz "START WAKE UP\n" # 154: 53544152 + # 158: 54205741 + # 15c: 4b452055 + # 160: 500a00 + .balign 4 +.Lstr023: .asciz "c_dt5\n" # 164: 635f6474 + # 168: 350a00 + .balign 4 +.Lstr024: .asciz "pm close %d %d %u/%u\n" # 16c: 706d2063 + # 170: 6c6f7365 + # 174: 20256420 + # 178: 25642025 + # 17c: 752f2575 + # 180: 0a00 + .balign 4 +.Lstr025: .asciz "pm open phy_2,type:%d %d %d\n" # 184: 706d206f + # 188: 70656e20 + # 18c: 7068795f + # 190: 322c7479 + # 194: 70653a25 + # 198: 64202564 + # 19c: 2025640a + # 1a0: 00 + .balign 4 +.Lstr026: .asciz "noTIM!!\n" # 1a4: 6e6f5449 + # 1a8: 4d21210a + # 1ac: 00 + .balign 4 +.Lstr027: .asciz "c_dt\n" # 1b0: 635f6474 + # 1b4: 0a00 + .balign 4 +.Lstr028: .asciz "why change %d %d\n" # 1b8: 77687920 + # 1bc: 6368616e + # 1c0: 67652025 + # 1c4: 64202564 + # 1c8: 0a00 + .balign 4 +.Lstr029: .asciz "bcn_go_slp1\n" # 1cc: 62636e5f + # 1d0: 676f5f73 + # 1d4: 6c70310a + # 1d8: 00 + .balign 4 +.Lstr030: .asciz "bcn_go_slp2\n" # 1dc: 62636e5f + # 1e0: 676f5f73 + # 1e4: 6c70320a + # 1e8: 00 + .balign 4 +.Lstr031: .asciz "offST%d" # 1ec: 6f666653 + # 1f0: 54256400 +.Lstr032: .asciz "GO_TO_SLEEP\n" # 1f4: 474f5f54 + # 1f8: 4f5f534c + # 1fc: 4545500a + # 200: 00 + .balign 4 +.Lstr033: .asciz "onST%d\n" # 204: 6f6e5354 + # 208: 25640a00 +.Lstr034: .asciz "NULL Sleep SENT CB\n" # 20c: 4e554c4c + # 210: 20536c65 + # 214: 65702053 + # 218: 454e5420 + # 21c: 43420a00 +.Lstr035: .asciz "1tx_st:%d,%x\n" # 220: 3174785f + # 224: 73743a25 + # 228: 642c2578 + # 22c: 0a00 + .balign 4 +.Lstr036: .asciz "NULL Wake SENT CB\n" # 230: 4e554c4c + # 234: 2057616b + # 238: 65205345 + # 23c: 4e542043 + # 240: 420a00 + .balign 4 +.Lstr037: .asciz "MISS BCN\n" # 244: 4d495353 + # 248: 2042434e + # 24c: 0a00 + .balign 4 +.Lstr038: .asciz "dream_timout\n" # 250: 64726561 + # 254: 6d5f7469 + # 258: 6d6f7574 + # 25c: 0a00 + .balign 4 +.Lstr039: .asciz "null data timeout\n" # 260: 6e756c6c + # 264: 20646174 + # 268: 61207469 + # 26c: 6d656f75 + # 270: 740a00 + .balign 4 +.Lstr040: .asciz "pmTask" # 274: 706d5461 + # 278: 736b00 + .balign 4 +.Lstr041: .asciz "pm_task_hdl : %x, prio:%d, stack:%d\n" # 27c: 706d5f74 + # 280: 61736b5f + # 284: 68646c20 + # 288: 3a202578 + # 28c: 2c207072 + # 290: 696f3a25 + # 294: 642c2073 + # 298: 7461636b + # 29c: 3a25640a + # 2a0: 00 + .balign 4 +.Lstr042: .asciz "NULL Sleep SEND done\n" # 2a4: 4e554c4c + # 2a8: 20536c65 + # 2ac: 65702053 + # 2b0: 454e4420 + # 2b4: 646f6e65 + # 2b8: 0a00 + .balign 4 +.Lstr043: .asciz "NULL Wake SEND done\n" # 2bc: 4e554c4c + # 2c0: 2057616b + # 2c4: 65205345 + # 2c8: 4e442064 + # 2cc: 6f6e650a + # 2d0: 00 + .balign 4 +.Label011: .word 0x000a6c73 # 2d4: 736c0a00 +.Lstr044: .asciz "usl\n" # 2d8: 75736c0a + # 2dc: 00 + .balign 4 +.Lstr045: .asciz "sul %d %d\n" # 2e0: 73756c20 + # 2e4: 25642025 + # 2e8: 640a00 + .balign 4 +.Lstr046: .asciz "pm evt1 NULL\n" # 2ec: 706d2065 + # 2f0: 76743120 + # 2f4: 4e554c4c + # 2f8: 0a00 + .balign 4 +.Lstr047: .asciz "PMQF" # 2fc: 504d5146 + # 300: 00 + .balign 4 +.Lstr048: .asciz "pm_sig: %x\n" # 304: 706d5f73 + # 308: 69673a20 + # 30c: 25780a00 +.Lstr049: .asciz "SLEEP SIG\n" # 310: 534c4545 + # 314: 50205349 + # 318: 470a00 + .balign 4 +.Lstr050: .asciz "WAKE SIG\n" # 31c: 57414b45 + # 320: 20534947 + # 324: 0a00 diff --git a/binary_sdk/libpp_stage1/pp.S b/binary_sdk/libpp_stage1/pp.S new file mode 100644 index 0000000..00ed523 --- /dev/null +++ b/binary_sdk/libpp_stage1/pp.S @@ -0,0 +1,4027 @@ + + .section .text, "ax", @progbits + +# Function @ .text+0x0 + .balign 4 + .literal_position +.Lfunc001: movi a4, 136 /* 0x00000088 */ # 0: 42a088 + movi a6, 24 /* 0x00000018 */ # 3: 1c86 + movi a5, 30 /* 0x0000001e */ # 5: 1ce5 + l8ui a7, a2, 1 /* [arg0+0x1] */ # 7: 720201 + l8ui a3, a2, 0 /* [arg0] */ # a: 320200 + movi a8, 140 /* 0x0000008c */ # d: 82a08c + and a3, a3, a8 # 10: 803310 + extui a7, a7, 0, 2 # 13: 707014 + addi a7, a7, -3 # 16: 72c7fd + movnez a5, a6, a7 # 19: 705693 + bne a3, a4, .Lbr001 # 1c: 479301 + addi a5, a5, 2 # 1f: 2b55 +.Lbr001: mov a2, a5 # 21: 2d05 + ret # 23: 0df0 + + .literal_position # 28: 00000000 + # 2c: 006a1800 + # 30: 00000000 + # 34: 00000000 + # 38: 00000000 + # 3c: 00000000 + # 40: 00000000 + # 44: 00000000 + # 48: 00000000 + +# Function @ .text+0x4c +# Local variables/stack: +# (local0): word @ -0x30 +# (local1): word @ -0x2c +# (local2): word @ -0x28 +# (local3): word @ -0x24 +# (local4): word @ -0x20 +# (local5): word @ -0x1c +# (local6): word @ -0x18 +# (local7): word @ -0x14 +# (local8): word[4] @ -0x10 + .balign 4 + .global pp_soft_wdt_feed + .type pp_soft_wdt_feed, @function +pp_soft_wdt_feed: + rsr a8, exccause # 4c: 80e803 + rsr a7, epc1 # 4f: 70b103 + addi sp, sp, -48 /* (local0) */ # 52: 12c1d0 + s32i a0, sp, 32 /* a0 -> [(local8)] */ # 55: 0981 + rsr a6, epc2 # 57: 60b203 + movi a0, 1 /* 0x00000001 */ # 5a: 0c10 + rsr a5, epc3 # 5c: 50b303 + rsr a4, excvaddr # 5f: 40ee03 + rsr a3, depc # 62: 30c003 + rsr a2, excsave1 # 65: 20d103 + s32i a8, sp, 4 /* a8 -> [(local1)] */ # 68: 8911 + s32i a7, sp, 8 /* a7 -> [(local2)] */ # 6a: 7921 + s32i a6, sp, 12 /* a6 -> [(local3)] */ # 6c: 6931 + s32i a5, sp, 16 /* a5 -> [(local4)] */ # 6e: 5941 + s32i a4, sp, 20 /* a4 -> [(local5)] */ # 70: 4951 + s32i a2, sp, 28 /* a2 -> [(local7)] */ # 72: 2971 + s32i a3, sp, 24 /* a3 -> [(local6)] */ # 74: 3961 + movi a2, 0 /* 0x00000000 */ # 76: 0c02 + mov a3, sp /* (local0) */ # 78: 3d01 + movi a4, 32 /* 0x00000020 */ # 7a: 2c04 + s32i a0, sp, 0 /* 0x00000001 -> [(local0)] */ # 7c: 0901 + call0 system_rtc_mem_write # 7e: 01edffc0 + # 82: 0000 + movi a9, .Ldata003 # 84: 91e9ff + l8ui a9, a9, 0 /* [.Ldata003] */ # 87: 920900 + bnei a9, 1, .Lbr002 # 8a: 66191a + call0 Cache_Read_Disable # 8d: 01eaffc0 + # 91: 0000 + movi a2, 0 /* 0x00000000 */ # 93: 0c02 + movi a3, 0 /* 0x00000000 */ # 95: 0c03 + movi a4, 1 /* 0x00000001 */ # 97: 0c14 + call0 Cache_Read_Enable # 99: 01e8ffc0 + # 9d: 0000 + call0 system_restart_in_nmi # 9f: 01e8ffc0 + # a3: 0000 + j .Lbr003 # a5: 860600 +.Lbr002: movi a2, 0x00186a00 # a8: 21e1ff + call0 wDev_MacTim1Arm # ab: 01e6ffc0 + # af: 0000 + movi a2, 12 /* 0x0000000c */ # b1: 0cc2 + movi a3, 0 /* 0x00000000 */ # b3: 0c03 + movi a11, .Ldata003 # b5: b1deff + movi a10, 1 /* 0x00000001 */ # b8: 0c1a + s8i a10, a11, 0 /* 0x01 -> [.Ldata003] */ # ba: a24b00 + call0 pp_post # bd: 01e2ffc0 + # c1: 0000 +.Lbr003: l32i a0, sp, 32 /* [(local8)] */ # c3: 0881 + addi sp, sp, 48 /* (top of frame) */ # c5: 12c130 + ret # c8: 0df0 + + .literal_position # cc: 00000000 + # d0: c0010000 + # d4: 00000000 + # d8: 00000000 + +# Function @ .text+0xdc +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 +.Lfunc002: addi sp, sp, -16 /* (local0) */ # dc: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # df: c911 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # e1: 0901 + call0 vPortEnterCritical # e3: 01fcffc0 + # e7: 0000 + movi a2, .Ldata003 # e9: 21f8ff + movi a4, 39 /* 0x00000027 */ # ec: 2c74 + l16ui a0, a2, 2 /* [.Ldata004] */ # ee: 021201 + movi a3, 40 /* 0x00000028 */ # f1: 2c83 + addi a0, a0, 1 /* [.Ldata004]+0x1 */ # f3: 1b00 + extui a0, a0, 0, 16 # f5: 0000f4 + bgeu a3, a0, .Lbr004 # f8: 07b309 + movi a12, 0 /* 0x00000000 */ # fb: 0c0c + addi a3, a0, -1 # fd: 0b30 + s16i a3, a2, 2 /* a3 -> [.Ldata004] */ # ff: 325201 + j .Lbr006 # 102: 060600 +.Lbr004: s16i a0, a2, 2 /* a0 -> [.Ldata004] */ # 105: 025201 + l16ui a12, a2, 4 /* [.Ldata005] */ # 108: c21202 + movi a3, .Ldata016 # 10b: 31f1ff + addi a0, a12, 1 /* [.Ldata005]+0x1 */ # 10e: 1b0c + addx8 a12, a12, a3 # 110: 30ccb0 + extui a0, a0, 0, 16 # 113: 0000f4 + bgeu a4, a0, .Lbr005 # 116: 07b401 + movi a0, 0 /* 0x00000000 */ # 119: 0c00 +.Lbr005: s16i a0, a2, 4 /* a0 -> [.Ldata005] */ # 11b: 025202 +.Lbr006: call0 vPortExitCritical # 11e: 01eeffc0 + # 122: 0000 + mov a2, a12 # 124: 2d0c + l32i a0, sp, 0 /* [(local0)] */ # 126: 0801 + l32i a12, sp, 4 /* [(local1)] */ # 128: c811 + addi sp, sp, 16 /* (top of frame) */ # 12a: 12c110 + ret # 12d: 0df0 + + .literal_position # 130: 00000000 + +# Function @ .text+0x134 + .balign 4 +.Lfunc003: movi a5, .Ldata003 # 134: 51ffff + l16ui a2, a5, 6 /* [.Ldata006] */ # 137: 221503 + movi a3, 8 /* 0x00000008 */ # 13a: 0c83 + addi a2, a2, 1 /* [.Ldata006]+0x1 */ # 13c: 1b22 + extui a2, a2, 0, 16 # 13e: 2020f4 + bgeu a3, a2, .Lbr007 # 141: 27b308 + addi a3, a2, -1 # 144: 0b32 + s16i a3, a5, 6 /* a3 -> [.Ldata006] */ # 146: 325503 + movi a2, 0 /* 0x00000000 */ # 149: 0c02 + ret /* 0x00000000 */ # 14b: 0df0 +.Lbr007: s16i a2, a5, 6 /* a2 -> [.Ldata006] */ # 14d: 225503 + l16ui a2, a5, 8 /* [.Ldata007] */ # 150: 221504 + addmi a3, a5, 768 /* .Ldata017 */ # 153: 32d503 + addi a4, a2, 1 /* [.Ldata007]+0x1 */ # 156: 1b42 + addx8 a2, a2, a3 # 158: 3022b0 + extui a4, a4, 0, 16 # 15b: 4040f4 + bltui a4, 8, .Lbr008 # 15e: b68401 + movi a4, 0 /* 0x00000000 */ # 161: 0c04 +.Lbr008: s16i a4, a5, 8 /* a4 -> [.Ldata007] */ # 163: 425504 + ret # 166: 0df0 + + .literal_position # 168: 00000000 + +# Function @ .text+0x16c + .balign 4 +.Lfunc004: movi a3, .Ldata003 # 16c: 31ffff + l16ui a2, a3, 6 /* [.Ldata006] */ # 16f: 221303 + addi a2, a2, -1 /* [.Ldata006]-0x1 */ # 172: 0b22 + s16i a2, a3, 6 /* [.Ldata006]-0x1 -> [.Ldata006] */ # 174: 225303 + ret /* [.Ldata006]-0x1 */ # 177: 0df0 + + .literal_position # 17c: 00000000 + # 180: 00feef3f + # 184: 00000000 + # 188: 00000000 + # 18c: 00000000 + # 190: 00000000 + # 194: 00000000 + # 198: 00000000 + # 19c: 00000000 + # 1a0: 8c040000 + # 1a4: 00000000 + # 1a8: 00000000 + # 1ac: 00000000 + +# Function @ .text+0x1b0 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word @ -0x8 +# (local3): word @ -0x4 + .balign 4 + .global ppProcessTxQ + .type ppProcessTxQ, @function +ppProcessTxQ: + addi sp, sp, -16 /* (local0) */ # 1b0: 12c1f0 + s32i a13, sp, 12 /* a13 -> [(local3)] */ # 1b3: d931 + s32i a12, sp, 8 /* a12 -> [(local2)] */ # 1b5: c921 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 1b7: 0911 + movi a0, NMIIrqIsOn # 1b9: 01f0ff + mov a12, a2 /* arg0 */ # 1bc: cd02 + l8ui a0, a0, 0 /* [NMIIrqIsOn] */ # 1be: 020000 + movi a13, 0x3feffe00 # 1c1: d1efff + bnez a0, .Lbr010 # 1c4: dce0 + call0 vPortEnterCritical # 1c6: 01f3ffc0 + # 1ca: 0000 +.Lbr009: memw # 1cc: c02000 + l32i a5, a13, 0x200 /* [0x3ff00000] */ # 1cf: 522d80 + movi a6, -32 /* 0xffffffe0 */ # 1d2: 6c06 + and a5, a5, a6 # 1d4: 605510 + memw # 1d7: c02000 + s32i a5, a13, 0x200 /* a5 -> [0x3ff00000] */ # 1da: 526d80 + memw # 1dd: c02000 + l32i a4, a13, 0x200 /* [0x3ff00000] */ # 1e0: 422d80 + bbsi a4, 0, .Lbr009 # 1e3: 07e4e5 +.Lbr010: mov a2, a12 /* arg0 */ # 1e6: 2d0c + call0 lmacIsIdle # 1e8: 01ecffc0 + # 1ec: 0000 + bnez a2, .Lbr012 # 1ee: ec72 + movi a7, NMIIrqIsOn # 1f0: 71e5ff + l8ui a7, a7, 0 /* [NMIIrqIsOn] */ # 1f3: 720700 + bnez a7, .Lbr011 # 1f6: dca7 + memw # 1f8: c02000 + l32i a8, a13, 0x200 /* [0x3ff00000] */ # 1fb: 822d80 + movi a9, -32 /* 0xffffffe0 */ # 1fe: 6c09 + and a8, a8, a9 # 200: 908810 + movi a9, 1 /* 0x00000001 */ # 203: 0c19 + or a8, a8, a9 # 205: 908820 + memw # 208: c02000 + s32i a8, a13, 0x200 /* a8 -> [0x3ff00000] */ # 20b: 826d80 + call0 vPortExitCritical # 20e: 01e3ffc0 + # 212: 0000 +.Lbr011: movi a2, -1 /* 0xffffffff */ # 214: 7cf2 + j .Lbr017 # 216: 062000 +.Lbr012: mov a2, a12 /* arg0 */ # 219: 2d0c + call0 .Lfunc006 # 21b: 01e1ffc0 + # 21f: 0000 + bnez a2, .Lbr014 # 221: ec72 + movi a10, NMIIrqIsOn # 223: a1d9ff + l8ui a10, a10, 0 /* [NMIIrqIsOn] */ # 226: a20a00 + bnez a10, .Lbr013 # 229: dcaa + memw # 22b: c02000 + l32i a11, a13, 0x200 /* [0x3ff00000] */ # 22e: b22d80 + movi a12, -32 /* 0xffffffe0 */ # 231: 6c0c + and a11, a11, a12 # 233: c0bb10 + movi a12, 1 /* 0x00000001 */ # 236: 0c1c + or a11, a11, a12 # 238: c0bb20 + memw # 23b: c02000 + s32i a11, a13, 0x200 /* a11 -> [0x3ff00000] */ # 23e: b26d80 + call0 vPortExitCritical # 241: 01d8ffc0 + # 245: 0000 +.Lbr013: movi a2, -2 /* 0xfffffffe */ # 247: 7ce2 + j .Lbr017 # 249: 461300 +.Lbr014: s32i a2, sp, 0 /* a2 -> [(local0)] */ # 24c: 2901 + l32i a2, a2, 32 # 24e: 2882 + movi a4, NoiseTimerInterval # 250: 41cfff + l32i a2, a2, 0 # 253: 2802 + l32i a4, a4, 12 /* [.Lrel114] */ # 255: 4834 + bbci a2, 29, .Lbr015 # 257: d7720f + l32i a3, a4, 0x158 /* [[.Lrel114]+0x158] */ # 25a: 322456 + l32i a5, a4, 0x15c /* [[.Lrel114]+0x15c] */ # 25d: 522457 + addi a3, a3, 1 /* [[.Lrel114]+0x158]+0x1 */ # 260: 1b33 + addi a5, a5, -1 /* [[.Lrel114]+0x15c]-0x1 */ # 262: 0b55 + s32i a5, a4, 0x15c /* [[.Lrel114]+0x15c]-0x1 -> [[.Lrel114]+0x15c] */ # 264: 526457 + s32i a3, a4, 0x158 /* [[.Lrel114]+0x158]+0x1 -> [[.Lrel114]+0x158] */ # 267: 326456 +.Lbr015: movi a5, NMIIrqIsOn # 26a: 51c9ff + l8ui a5, a5, 0 /* [NMIIrqIsOn] */ # 26d: 520500 + bnez a5, .Lbr016 # 270: dca5 + memw # 272: c02000 + l32i a6, a13, 0x200 /* [0x3ff00000] */ # 275: 622d80 + movi a7, -32 /* 0xffffffe0 */ # 278: 6c07 + and a6, a6, a7 # 27a: 706610 + movi a7, 1 /* 0x00000001 */ # 27d: 0c17 + or a6, a6, a7 # 27f: 706620 + memw # 282: c02000 + s32i a6, a13, 0x200 /* a6 -> [0x3ff00000] */ # 285: 626d80 + call0 vPortExitCritical # 288: 01c8ffc0 + # 28c: 0000 +.Lbr016: mov a3, a12 /* arg0 */ # 28e: 3d0c + l32i a2, sp, 0 /* [(local0)] */ # 290: 2801 + call0 lmacTxFrame # 292: 01c6ffc0 + # 296: 0000 + movi a2, 0 /* 0x00000000 */ # 298: 0c02 +.Lbr017: l32i a12, sp, 8 /* [(local2)] */ # 29a: c821 + l32i a13, sp, 12 /* [(local3)] */ # 29c: d831 + l32i a0, sp, 4 /* [(local1)] */ # 29e: 0811 + addi sp, sp, 16 /* (top of frame) */ # 2a0: 12c110 + ret # 2a3: 0df0 + + .literal_position # 2a8: 00000000 + +# Function @ .text+0x2ac + .balign 4 + .global ppFetchTxQFirstAvail + .type ppFetchTxQFirstAvail, @function +ppFetchTxQFirstAvail: + bgeui a2, 8, .Lbr019 # 2ac: f6822b + movi a4, NoiseTimerInterval # 2af: 41feff + l32i a4, a4, 12 /* [.Lrel114] */ # 2b2: 4834 + slli a5, a2, 5 # 2b4: b05211 + add a4, a4, a5 # 2b7: 5a44 + l8ui a3, a4, 39 # 2b9: 320427 + l32i a2, a4, 24 # 2bc: 2864 + bnez a3, .Lbr019 # 2be: dc93 + beqz a2, .Lbr020 # 2c0: 9c92 + l32i a5, a2, 32 # 2c2: 5882 + l32i a5, a5, 0 # 2c4: 5805 + l32i a6, a2, 28 # 2c6: 6872 + bbsi a5, 24, .Lbr020 # 2c8: 87f511 + s32i a6, a4, 24 # 2cb: 6964 + movi a8, 0 /* 0x00000000 */ # 2cd: 0c08 + bnez a6, .Lbr018 # 2cf: cc36 + addi a7, a4, 24 # 2d1: 72c418 + s32i a7, a4, 28 # 2d4: 7974 +.Lbr018: s32i a8, a2, 28 # 2d6: 8972 + j .Lbr020 # 2d8: 460000 +.Lbr019: movi a2, 0 /* 0x00000000 */ # 2db: 0c02 +.Lbr020: beqz a2, .Lbr021 # 2dd: 8c72 + l32i a9, a2, 32 # 2df: 9882 + l32i a9, a9, 0 # 2e1: 9809 + bbci a9, 24, .Lbr021 # 2e3: 877901 + movi a2, 0 /* 0x00000000 */ # 2e6: 0c02 +.Lbr021: ret # 2e8: 0df0 + + .literal_position # 2ec: 00000000 + +# Function @ .text+0x2f0 + .balign 4 + .global ppDequeueTxQ + .type ppDequeueTxQ, @function +ppDequeueTxQ: + bgeui a2, 8, .Lbr023 # 2f0: f6821e + movi a4, NoiseTimerInterval # 2f3: 41feff + l32i a4, a4, 12 /* [.Lrel114] */ # 2f6: 4834 + slli a5, a2, 5 # 2f8: b05211 + add a4, a4, a5 # 2fb: 5a44 + l32i a2, a4, 24 # 2fd: 2864 + beqz a2, .Lbr024 # 2ff: 9c12 + movi a7, 0 /* 0x00000000 */ # 301: 0c07 + l32i a5, a2, 28 # 303: 5872 + s32i a5, a4, 24 # 305: 5964 + bnez a5, .Lbr022 # 307: cc35 + addi a6, a4, 24 # 309: 62c418 + s32i a6, a4, 28 # 30c: 6974 +.Lbr022: s32i a7, a2, 28 # 30e: 7972 + ret # 310: 0df0 +.Lbr023: movi a2, 0 /* 0x00000000 */ # 312: 0c02 +.Lbr024: ret # 314: 0df0 + + .literal_position # 318: 00000000 + +# Function @ .text+0x31c + .balign 4 + .global ppRollBackTxQ + .type ppRollBackTxQ, @function +ppRollBackTxQ: + l32i a4, a2, 32 /* [arg0+0x20] */ # 31c: 4882 + movi a6, NoiseTimerInterval # 31e: 61feff + l8ui a4, a4, 0 /* [[arg0+0x20]] */ # 321: 420400 + l32i a6, a6, 12 /* [.Lrel114] */ # 324: 6836 + extui a4, a4, 2, 4 # 326: 404234 + bgeui a4, 8, .Lbr026 # 329: f68411 + slli a4, a4, 5 # 32c: b04411 + add a4, a6, a4 # 32f: 4a46 + l32i a5, a4, 24 # 331: 5864 + s32i a5, a2, 28 /* a5 -> [arg0+0x1c] */ # 333: 5972 + bnez a5, .Lbr025 # 335: cc35 + addi a7, a2, 28 /* arg0+0x1c */ # 337: 72c21c + s32i a7, a4, 28 # 33a: 7974 +.Lbr025: s32i a2, a4, 24 # 33c: 2964 +.Lbr026: ret /* arg0 */ # 33e: 0df0 + + .literal_position # 340: 00000000 + +# Function @ .text+0x344 + .balign 4 + .global ppRecordBarRRC + .type ppRecordBarRRC, @function +ppRecordBarRRC: + movi a4, NoiseTimerInterval # 344: 41ffff + l32i a4, a4, 12 /* [.Lrel114] */ # 347: 4834 + slli a5, a2, 5 # 349: b05211 + add a4, a4, a5 # 34c: 5a44 + s8i a3, a4, 32 # 34e: 324420 + ret /* arg0 */ # 351: 0df0 + + .literal_position # 354: 00000000 + +# Function @ .text+0x358 + .balign 4 + .global ppTxqUpdateBitmap + .type ppTxqUpdateBitmap, @function +ppTxqUpdateBitmap: + movi a8, NoiseTimerInterval # 358: 81ffff + l32i a8, a8, 12 /* [.Lrel114] */ # 35b: 8838 + slli a9, a2, 5 # 35d: b09211 + add a8, a8, a9 # 360: 9a88 + s16i a3, a8, 34 # 362: 325811 + s32i a5, a8, 48 # 365: 59c8 + l8ui a7, a8, 32 # 367: 720820 + s32i a4, a8, 52 # 36a: 49d8 + add a7, a7, a6 # 36c: 6a77 + s8i a7, a8, 32 # 36e: 724820 + ret /* arg0 */ # 371: 0df0 + + .literal_position # 374: 04000000 + # 378: 0c000000 + # 37c: 00000000 + # 380: 00000000 + +# Function @ .text+0x384 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global ppEnqueueTxDone + .type ppEnqueueTxDone, @function +ppEnqueueTxDone: + addi sp, sp, -16 /* (local0) */ # 384: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 387: 0901 + bnez a2, .Lbr028 # 389: dc02 + movi a2, .Lstr001 # 38b: 21faff + movi a3, .Lstr002 # 38e: 31faff + movi a4, 1924 /* 0x00000784 */ # 391: 42a784 + call0 printf # 394: 01fbffc0 + # 398: 0000 +.Lbr027: j .Lbr027 /* (halt) */ # 39a: 06ffff +.Lbr028: movi a3, NoiseTimerInterval # 39d: 31f7ff + addi a0, a2, 28 /* arg0+0x1c */ # 3a0: 02c21c + l32i a3, a3, 12 /* [.Lrel114] */ # 3a3: 3833 + movi a5, 0 /* 0x00000000 */ # 3a5: 0c05 + l32i a4, a3, 0x12c /* [[.Lrel114]+0x12c] */ # 3a7: 42234b + s32i a5, a2, 28 /* 0x00000000 -> [arg0+0x1c] */ # 3aa: 5972 + s32i a2, a4, 0 /* arg0 -> [[[.Lrel114]+0x12c]] */ # 3ac: 2904 + s32i a0, a3, 0x12c /* arg0+0x1c -> [[.Lrel114]+0x12c] */ # 3ae: 02634b + l32i a0, sp, 0 /* [(local0)] */ # 3b1: 0801 + addi sp, sp, 16 /* (top of frame) */ # 3b3: 12c110 + ret /* arg0 */ # 3b6: 0df0 + + .literal_position # 3b8: 00000000 + +# Function @ .text+0x3bc + .balign 4 + .global ppEnqueueRxq + .type ppEnqueueRxq, @function +ppEnqueueRxq: + movi a4, NoiseTimerInterval # 3bc: 41ffff + addi a3, a2, 28 /* arg0+0x1c */ # 3bf: 32c21c + l32i a4, a4, 12 /* [.Lrel114] */ # 3c2: 4834 + movi a6, 0 /* 0x00000000 */ # 3c4: 0c06 + l32i a5, a4, 0x134 /* [[.Lrel114]+0x134] */ # 3c6: 52244d + s32i a6, a2, 28 /* 0x00000000 -> [arg0+0x1c] */ # 3c9: 6972 + s32i a2, a5, 0 /* arg0 -> [[[.Lrel114]+0x134]] */ # 3cb: 2905 + s32i a3, a4, 0x134 /* arg0+0x1c -> [[.Lrel114]+0x134] */ # 3cd: 32644d + ret /* arg0 */ # 3d0: 0df0 + + .literal_position # 3d4: 00000000 + # 3d8: 00000000 + # 3dc: 00000000 + # 3e0: 00000000 + # 3e4: 00000000 + +# Function @ .text+0x3e8 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word @ -0x8 +# (local3): word @ -0x4 + .balign 4 +.Lfunc005: addi sp, sp, -16 /* (local0) */ # 3e8: 12c1f0 + s32i a13, sp, 12 /* a13 -> [(local3)] */ # 3eb: d931 + s32i a12, sp, 8 /* a12 -> [(local2)] */ # 3ed: c921 + movi a12, NoiseTimerInterval # 3ef: c1f9ff + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 3f2: 0911 + l32i a0, a12, 12 /* [.Lrel114] */ # 3f4: 083c + slli a13, a2, 5 # 3f6: b0d211 + add a0, a0, a13 # 3f9: da00 + l8ui a0, a0, 36 # 3fb: 020024 + beqz a0, .Lbr030 # 3fe: 9c30 + beqi a0, 3, .Lbr030 # 400: 263011 + bltui a0, 3, .Lbr029 # 403: b63009 + movi a2, 1 /* 0x00000001 */ # 406: 0c12 + bltui a0, 6, .Lbr031 # 408: b6600b + movi a2, 0 /* 0x00000000 */ # 40b: 0c02 + j .Lbr031 # 40d: 860100 +.Lbr029: movi a2, 3 /* 0x00000003 */ # 410: 0c32 + j .Lbr031 # 412: 460000 +.Lbr030: movi a2, 2 /* 0x00000002 */ # 415: 0c22 +.Lbr031: call0 GetAccess # 417: 01f1ffc0 + # 41b: 0000 + l32i a5, a12, 12 /* [.Lrel114] */ # 41d: 583c + mov a0, a2 # 41f: 0d02 + add a5, a5, a13 # 421: da55 + l8ui a6, a5, 33 # 423: 620521 + movi a12, 0 /* 0x00000000 */ # 426: 0c0c + bnez a6, .Lbr033 # 428: cc96 + l32i a2, a5, 44 # 42a: 28b5 + beqz a2, .Lbr032 # 42c: 8c32 + mov a12, a2 # 42e: cd02 + j .Lbr033 # 430: 460000 +.Lbr032: beqz a6, .Lbr034 # 433: 8cb6 +.Lbr033: l32i a0, sp, 4 /* [(local1)] */ # 435: 0811 + mov a2, a12 # 437: 2d0c + l32i a13, sp, 12 /* [(local3)] */ # 439: d831 + l32i a12, sp, 8 /* [(local2)] */ # 43b: c821 + addi sp, sp, 16 /* (top of frame) */ # 43d: 12c110 + ret # 440: 0df0 +.Lbr034: s32i a0, sp, 0 /* a0 -> [(local0)] */ # 442: 0901 +.Lbr035: l32i a12, a5, 24 # 444: c865 + movi a0, 0 /* 0x00000000 */ # 446: 0c00 + beqz a12, .Lbr033 # 448: 169cfe + l32i a6, a12, 28 # 44b: 687c + s32i a6, a5, 24 # 44d: 6965 + bnez a6, .Lbr036 # 44f: cc36 + addi a7, a5, 24 # 451: 72c518 + s32i a7, a5, 28 # 454: 7975 +.Lbr036: mov a2, a12 # 456: 2d0c + s32i a0, a12, 28 # 458: 097c + call0 lmacMSDUAged # 45a: 01e1ffc0 + # 45e: 0000 + beqz a2, .Lbr033 # 460: 1612fd + mov a3, a12 # 463: 3d0c + l32i a2, sp, 0 /* [(local0)] */ # 465: 2801 + movi a4, 0 /* 0x00000000 */ # 467: 0c04 + call0 lmacDiscardAgedMSDU # 469: 01deffc0 + # 46d: 0000 + movi a5, NoiseTimerInterval # 46f: 51daff + l32i a5, a5, 12 /* [.Lrel114] */ # 472: 5835 + add a5, a5, a13 # 474: da55 + j .Lbr035 # 476: 86f2ff + + .literal_position # 47c: 00000000 + # 480: 00000000 + # 484: 00000000 + # 488: 00000000 + +# Function @ .text+0x48c +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word @ -0x10 +# (local5): word @ -0xc +# (local6): word[2] @ -0x8 + .balign 4 +.Lfunc006: addi sp, sp, -32 /* (local0) */ # 48c: 12c1e0 + s32i a12, sp, 8 /* a12 -> [(local2)] */ # 48f: c921 + s32i a14, sp, 16 /* a14 -> [(local4)] */ # 491: e941 + s32i a15, sp, 20 /* a15 -> [(local5)] */ # 493: f951 + s32i a13, sp, 12 /* a13 -> [(local3)] */ # 495: d931 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 497: 0911 + mov a13, a2 /* arg0 */ # 499: dd02 + call0 .Lfunc007 # 49b: 050f00 + movi a0, NoiseTimerInterval # 49e: 01f7ff + movi a15, 1 /* 0x00000001 */ # 4a1: 0c1f + l32i a0, a0, 12 /* [.Lrel114] */ # 4a3: 0830 + slli a14, a13, 2 # 4a5: e0ed11 + add a2, a13, a0 # 4a8: 0a2d + addx4 a4, a13, a0 # 4aa: 004da0 + l32i a4, a4, 4 # 4ad: 4814 + l8ui a2, a2, 20 # 4af: 220214 + bnez a13, .Lbr039 # 4b2: ecfd + ssr a2 # 4b4: 000240 + srl a3, a4 # 4b7: 403091 + bbci a3, 0, .Lbr037 # 4ba: 07630a + slli a5, a2, 5 # 4bd: b05211 + add a5, a0, a5 # 4c0: 5a50 + l8ui a5, a5, 40 # 4c2: 520528 + beqi a5, 1, .Lbr039 # 4c5: 26151c +.Lbr037: movi a12, 0 /* 0x00000000 */ # 4c8: 0c0c + s32i a2, sp, 24 /* a2 -> [(local6)] */ # 4ca: 2961 +.Lbr038: extui a2, a12, 0, 8 # 4cc: c02074 + call0 .Lfunc005 # 4cf: 85f1ff + bnez a2, .Lbr044 # 4d2: 563206 + addi a12, a12, 1 # 4d5: 1bcc + bnei a12, 2, .Lbr038 # 4d7: 662cf1 + movi a4, NoiseTimerInterval # 4da: 41e9ff + l32i a4, a4, 12 /* [.Lrel114] */ # 4dd: 4834 + l32i a2, sp, 24 /* [(local6)] */ # 4df: 2861 + add a4, a4, a14 # 4e1: ea44 + l32i a4, a4, 4 # 4e3: 4814 +.Lbr039: s32i a13, sp, 0 /* arg0 -> [(local0)] */ # 4e5: d901 + ssl a2 # 4e7: 001240 + sll a12, a15 # 4ea: 00cfa1 + addi a12, a12, -1 # 4ed: 0bcc + and a12, a4, a12 # 4ef: c0c410 + xor a14, a4, a12 # 4f2: c0e430 +.Lbr040: neg a13, a14 # 4f5: e0d060 + and a13, a13, a14 # 4f8: e0dd10 + nsau a13, a13 # 4fb: d0fd40 + neg a13, a13 # 4fe: d0d060 + addi a13, a13, 31 # 501: d2cd1f + bltz a13, .Lbr045 # 504: 960d04 + extui a2, a13, 0, 8 # 507: d02074 + call0 .Lfunc005 # 50a: c5edff + beqz a2, .Lbr042 # 50d: 9c52 + movi a0, NoiseTimerInterval # 50f: 01ddff + l32i a14, sp, 0 /* [(local0)] */ # 512: e801 + l32i a0, a0, 12 /* [.Lrel114] */ # 514: 0830 + add a14, a14, a0 # 516: 0aee + s8i a13, a14, 20 # 518: d24e14 +.Lbr041: slli a3, a13, 5 # 51b: b03d11 + add a3, a0, a3 # 51e: 3a30 + s8i a15, a3, 40 # 520: f24328 + j .Lbr044 # 523: 860400 +.Lbr042: movi a5, -1 /* 0xffffffff */ # 526: 7cf5 + ssl a13 # 528: 001d40 + sll a4, a15 # 52b: 004fa1 + xor a4, a4, a5 # 52e: 504430 + and a14, a14, a4 # 531: 40ee10 + j .Lbr040 # 534: 46efff +.Lbr043: movi a2, 0 /* 0x00000000 */ # 537: 0c02 +.Lbr044: l32i a12, sp, 8 /* [(local2)] */ # 539: c821 + l32i a13, sp, 12 /* [(local3)] */ # 53b: d831 + l32i a14, sp, 16 /* [(local4)] */ # 53d: e841 + l32i a15, sp, 20 /* [(local5)] */ # 53f: f851 + l32i a0, sp, 4 /* [(local1)] */ # 541: 0811 + addi sp, sp, 32 /* (top of frame) */ # 543: 12c120 + ret # 546: 0df0 +.Lbr045: neg a13, a12 # 548: c0d060 + and a13, a13, a12 # 54b: c0dd10 + nsau a13, a13 # 54e: d0fd40 + neg a13, a13 # 551: d0d060 + addi a13, a13, 31 # 554: d2cd1f + bltz a13, .Lbr043 # 557: 96cdfd + extui a2, a13, 0, 8 # 55a: d02074 + call0 .Lfunc005 # 55d: 85e8ff + bnez a2, .Lbr046 # 560: ccf2 + movi a0, -1 /* 0xffffffff */ # 562: 7cf0 + ssl a13 # 564: 001d40 + sll a14, a15 # 567: 00efa1 + xor a14, a14, a0 # 56a: 00ee30 + and a12, a12, a14 # 56d: e0cc10 + j .Lbr045 # 570: 06f5ff +.Lbr046: movi a0, NoiseTimerInterval # 573: 01c5ff + l32i a3, sp, 0 /* [(local0)] */ # 576: 3801 + l32i a0, a0, 12 /* [.Lrel114] */ # 578: 0830 + add a3, a3, a0 # 57a: 0a33 + s8i a13, a3, 20 # 57c: d24314 + j .Lbr041 # 57f: 06e6ff + + .literal_position # 584: 00000000 + # 588: 00000000 + +# Function @ .text+0x58c +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word @ -0x8 +# (local3): word @ -0x4 + .balign 4 +.Lfunc007: movi a9, 1 /* 0x00000001 */ # 58c: 0c19 + addi sp, sp, -16 /* (local0) */ # 58e: 12c1f0 + movi a3, NoiseTimerInterval # 591: 31fcff + s32i a0, sp, 8 /* a0 -> [(local2)] */ # 594: 0921 + l32i a0, a3, 12 /* [.Lrel114] */ # 596: 0833 + slli a7, a2, 2 # 598: e07211 + addx4 a6, a2, a0 # 59b: 0062a0 + add a5, a2, a0 # 59e: 0a52 + l8ui a5, a5, 20 # 5a0: 520514 + l32i a4, a6, 4 # 5a3: 4816 + ssr a5 # 5a5: 000540 + srl a4, a4 # 5a8: 404091 + bbsi a4, 0, .Lbr047 # 5ab: 07e402 + j .Lbr050 # 5ae: 462000 +.Lbr047: slli a10, a5, 5 # 5b1: b0a511 + add a10, a0, a10 # 5b4: aaa0 + l8ui a8, a10, 40 # 5b6: 820a28 + movi a3, 0 /* 0x00000000 */ # 5b9: 0c03 + beqz a8, .Lbr050 # 5bb: 164807 + movi a8, -1 /* 0xffffffff */ # 5be: 7cf8 + l32i a11, a10, 24 # 5c0: b86a + s8i a3, a10, 40 # 5c2: 324a28 + bnez a11, .Lbr048 # 5c5: fcbb + s32i a7, sp, 4 /* a7 -> [(local1)] */ # 5c7: 7911 + s32i a5, sp, 0 /* a5 -> [(local0)] */ # 5c9: 5901 + l32i a4, a10, 44 # 5cb: 48ba + s32i a2, sp, 12 /* arg0 -> [(local3)] */ # 5cd: 2931 + bnez a4, .Lbr048 # 5cf: fc14 + movi a9, -1 /* 0xffffffff */ # 5d1: 7cf9 + l32i a8, sp, 0 /* [(local0)] */ # 5d3: 8801 + movi a7, 1 /* 0x00000001 */ # 5d5: 0c17 + ssl a8 # 5d7: 001840 + l32i a8, a6, 4 # 5da: 8816 + sll a7, a7 # 5dc: 0077a1 + xor a7, a7, a9 # 5df: 907730 + and a8, a8, a7 # 5e2: 708810 + s32i a8, a6, 4 # 5e5: 8916 + l32i a5, a0, 0 /* [[.Lrel114]] */ # 5e7: 5800 + movi a2, 8 /* 0x00000008 */ # 5e9: 0c82 + and a5, a5, a7 # 5eb: 705510 + s32i a5, a0, 0 /* a5 -> [[.Lrel114]] */ # 5ee: 5900 + call0 pp_post # 5f0: 050000 + l32i a2, sp, 12 /* [(local3)] */ # 5f3: 2831 + l32i a5, sp, 0 /* [(local0)] */ # 5f5: 5801 + movi a8, -1 /* 0xffffffff */ # 5f7: 7cf8 + movi a0, NoiseTimerInterval # 5f9: 01e3ff + l32i a6, sp, 4 /* [(local1)] */ # 5fc: 6811 + l32i a0, a0, 12 /* [.Lrel114] */ # 5fe: 0830 + movi a9, 1 /* 0x00000001 */ # 600: 0c19 + add a6, a6, a0 # 602: 0a66 +.Lbr048: l32i a3, a6, 4 # 604: 3816 + beqz a3, .Lbr050 # 606: ac93 + ssl a5 # 608: 001540 + sll a5, a9 # 60b: 0059a1 + xor a4, a5, a8 # 60e: 804530 + addi a5, a5, -1 # 611: 0b55 + and a5, a3, a5 # 613: 505310 + xor a6, a3, a5 # 616: 506330 + and a4, a4, a6 # 619: 604410 + neg a3, a4 # 61c: 403060 + and a3, a3, a4 # 61f: 403310 + nsau a3, a3 # 622: 30f340 + neg a3, a3 # 625: 303060 + addi a3, a3, 31 # 628: 32c31f + bltz a3, .Lbr051 # 62b: 96b300 +.Lbr049: add a6, a2, a0 # 62e: 0a62 + s8i a3, a6, 20 # 630: 324614 +.Lbr050: l32i a0, sp, 8 /* [(local2)] */ # 633: 0821 + addi sp, sp, 16 /* (top of frame) */ # 635: 12c110 + ret # 638: 0df0 +.Lbr051: neg a3, a5 # 63a: 503060 + and a3, a3, a5 # 63d: 503310 + nsau a3, a3 # 640: 30f340 + neg a3, a3 # 643: 303060 + addi a3, a3, 31 # 646: 32c31f + bgez a3, .Lbr049 # 649: d613fe + j .Lbr050 # 64c: c6f8ff + + .literal_position # 650: 00000000 + +# Function @ .text+0x654 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 +.Lfunc008: movi a11, 1 /* 0x00000001 */ # 654: 0c1b + movi a8, 0 /* 0x00000000 */ # 656: 0c08 + movi a10, NoiseTimerInterval # 658: a1feff + addi sp, sp, -16 /* (local0) */ # 65b: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 65e: c911 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 660: d921 + l32i a10, a10, 12 /* [.Lrel114] */ # 662: a83a + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 664: 0901 + addx4 a7, a5, a10 # 666: a075a0 + l32i a0, a7, 4 # 669: 0817 + l32i a13, a10, 0 /* [[.Lrel114]] */ # 66b: d80a + bnez a0, .Lbr054 # 66d: 561004 + add a9, a5, a10 # 670: aa95 + l8ui a9, a9, 20 # 672: 920914 + ssr a9 # 675: 000940 + srl a12, a13 # 678: d0c091 + bbsi a12, 0, .Lbr054 # 67b: 07ec33 + mov a0, a9 # 67e: 0d09 + ssl a9 # 680: 001940 + slli a5, a9, 5 # 683: b05911 + add a5, a10, a5 # 686: 5a5a + s8i a4, a5, 36 # 688: 424524 + s8i a3, a5, 37 # 68b: 324525 + s8i a8, a5, 40 # 68e: 824528 + s8i a2, a5, 38 # 691: 224526 + l32i a2, a7, 4 # 694: 2817 + sll a3, a11 # 696: 003ba1 + or a2, a2, a3 # 699: 302220 +.Lbr052: s32i a2, a7, 4 # 69c: 2917 + l32i a6, a10, 0 /* [[.Lrel114]] */ # 69e: 680a + or a6, a6, a3 # 6a0: 306620 + s32i a6, a10, 0 /* a6 -> [[.Lrel114]] */ # 6a3: 690a +.Lbr053: l32i a12, sp, 4 /* [(local1)] */ # 6a5: c811 + l32i a13, sp, 8 /* [(local2)] */ # 6a7: d821 + mov a2, a0 # 6a9: 2d00 + l32i a0, sp, 0 /* [(local0)] */ # 6ab: 0801 + addi sp, sp, 16 /* (top of frame) */ # 6ad: 12c110 + ret # 6b0: 0df0 +.Lbr054: movi a12, -1 /* 0xffffffff */ # 6b2: 7cfc + neg a8, a0 # 6b4: 008060 + and a8, a8, a0 # 6b7: 008810 + nsau a8, a8 # 6ba: 80f840 + neg a8, a8 # 6bd: 808060 + addi a8, a8, 31 # 6c0: 82c81f + bltz a8, .Lbr056 # 6c3: 968802 + slli a9, a8, 5 # 6c6: b09811 + add a9, a10, a9 # 6c9: 9a9a + l8ui a6, a9, 36 # 6cb: 620924 + ssl a8 # 6ce: 001840 + bne a6, a4, .Lbr055 # 6d1: 47960e + l8ui a6, a9, 37 # 6d4: 620925 + l8ui a7, a9, 38 # 6d7: 720926 + bne a6, a3, .Lbr055 # 6da: 379605 + sub a7, a7, a2 # 6dd: 2077c0 + beqz a7, .Lbr058 # 6e0: 16c708 +.Lbr055: sll a9, a11 # 6e3: 009ba1 + xor a9, a9, a12 # 6e6: c09930 + and a0, a0, a9 # 6e9: 900010 + j .Lbr054 # 6ec: 86f0ff +.Lbr056: movi a12, 255 /* 0x000000ff */ # 6ef: c2a0ff + movi a8, 3 /* 0x00000003 */ # 6f2: 0c38 + add a9, a5, a10 # 6f4: aa95 + l8ui a9, a9, 20 # 6f6: 920914 + or a8, a13, a8 # 6f9: 808d20 + ssl a9 # 6fc: 001940 + xor a9, a8, a12 # 6ff: c09830 + sll a7, a11 # 702: 007ba1 + addi a7, a7, -1 # 705: 0b77 + and a7, a7, a9 # 707: 907710 + nsau a0, a7 # 70a: 00f740 + movi a9, 31 /* 0x0000001f */ # 70d: 1cf9 + sub a0, a9, a0 # 70f: 0009c0 + bgez a0, .Lbr057 # 712: d63001 + xor a0, a8, a7 # 715: 700830 + xor a0, a0, a12 # 718: c00030 + nsau a0, a0 # 71b: 00f040 + sub a0, a9, a0 # 71e: 0009c0 + bgez a0, .Lbr057 # 721: d64000 + movi a0, 8 /* 0x00000008 */ # 724: 0c80 + j .Lbr053 # 726: c6deff +.Lbr057: addx4 a7, a5, a10 # 729: a075a0 + ssl a0 # 72c: 001040 + sll a8, a11 # 72f: 008ba1 + addi a8, a8, -1 # 732: 0b88 + and a5, a8, a13 # 734: d05810 + nsau a5, a5 # 737: 50f540 + sub a6, a9, a5 # 73a: 5069c0 + bltz a6, .Lbr059 # 73d: 965603 + sub a0, a0, a5 # 740: 5000c0 + movi a8, 0 /* 0x00000000 */ # 743: 0c08 + addi a6, a0, 32 # 745: 62c020 + addi a0, a0, 33 # 748: 02c021 + movgez a0, a6, a6 # 74b: 6006b3 + extui a0, a0, 1, 8 # 74e: 000174 + ssl a0 # 751: 001040 + slli a6, a0, 5 # 754: b06011 + add a6, a10, a6 # 757: 6a6a + s8i a8, a6, 40 # 759: 824628 + s8i a3, a6, 37 # 75c: 324625 + s8i a4, a6, 36 # 75f: 424624 + s8i a2, a6, 38 # 762: 224626 + l32i a2, a7, 4 # 765: 2817 + sll a3, a11 # 767: 003ba1 + or a2, a2, a3 # 76a: 302220 + j .Lbr052 # 76d: c6caff +.Lbr058: extui a0, a8, 0, 8 # 770: 800074 + j .Lbr053 # 773: 86cbff +.Lbr059: movi a5, -1 /* 0xffffffff */ # 776: 7cf5 + xor a5, a8, a5 # 778: 505830 + and a5, a13, a5 # 77b: 505d10 + nsau a5, a5 # 77e: 50f540 + sub a5, a0, a5 # 781: 5050c0 + addi a6, a5, 37 # 784: 62c525 + addi a5, a5, 38 # 787: 52c526 + movgez a5, a6, a6 # 78a: 6056b3 + movi a6, 0 /* 0x00000000 */ # 78d: 0c06 + srai a5, a5, 1 # 78f: 505121 + mov a0, a5 # 792: 0d05 + blti a5, 8, .Lbr060 # 794: a68502 + addi a0, a5, -6 # 797: 02c5fa +.Lbr060: extui a0, a0, 0, 8 # 79a: 000074 + ssl a0 # 79d: 001040 + slli a5, a0, 5 # 7a0: b05011 + add a5, a10, a5 # 7a3: 5a5a + s8i a4, a5, 36 # 7a5: 424524 + s8i a3, a5, 37 # 7a8: 324525 + s8i a6, a5, 40 # 7ab: 624528 + s8i a2, a5, 38 # 7ae: 224526 + l32i a2, a7, 4 # 7b1: 2817 + sll a3, a11 # 7b3: 003ba1 + or a2, a2, a3 # 7b6: 302220 + j .Lbr052 # 7b9: c6b7ff + + .literal_position # 7bc: 00000000 + # 7c0: 00feef3f + # 7c4: 00000000 + # 7c8: 00000000 + # 7cc: 00000000 + # 7d0: 00000000 + # 7d4: 00000000 + # 7d8: 00000000 + # 7dc: 00000000 + # 7e0: 00000000 + # 7e4: 00000000 + # 7e8: 00000000 + # 7ec: 00000000 + +# Function @ .text+0x7f0 +# Local variables/stack: +# (local0): word[2] @ -0x34 +# (local1): word @ -0x2c +# (local2): word @ -0x28 +# (local3): word @ -0x24 +# (local4): word @ -0x20 +# (local5): word @ -0x1c +# (local6): word @ -0x18 +# (local7): word @ -0x14 +# (local8): word[4] @ -0x10 + .balign 4 +.Lfunc009: addi sp, sp, -80 /* (FP)-0x50 */ # 7f0: 12c1b0 + s32i a15, sp, 52 /* a15 -> [(local5)] */ # 7f3: f9d1 + s32i a13, sp, 44 /* a13 -> [(local3)] */ # 7f5: d9b1 + s32i a0, sp, 36 /* a0 -> [(local1)] */ # 7f7: 0991 + s32i a12, sp, 40 /* a12 -> [(local2)] */ # 7f9: c9a1 + s32i a14, sp, 48 /* a14 -> [(local4)] */ # 7fb: e9c1 + movi a14, NMIIrqIsOn # 7fd: e1efff + mov a12, a2 /* arg0 */ # 800: cd02 + l8ui a0, a14, 0 /* [NMIIrqIsOn] */ # 802: 020e00 + movi a13, 0x3feffe00 # 805: d1eeff + bnez a0, .Lbr062 # 808: ec10 + call0 vPortEnterCritical # 80a: 01f2ffc0 + # 80e: 0000 +.Lbr061: memw # 810: c02000 + l32i a4, a13, 0x200 /* [0x3ff00000] */ # 813: 422d80 + movi a5, -32 /* 0xffffffe0 */ # 816: 6c05 + and a4, a4, a5 # 818: 504410 + memw # 81b: c02000 + s32i a4, a13, 0x200 /* a4 -> [0x3ff00000] */ # 81e: 426d80 + memw # 821: c02000 + l32i a3, a13, 0x200 /* [0x3ff00000] */ # 824: 322d80 + bbsi a3, 0, .Lbr061 # 827: 07e3e5 + l8ui a0, a14, 0 /* [NMIIrqIsOn] */ # 82a: 020e00 +.Lbr062: movi a15, NoiseTimerInterval # 82d: f1e5ff + l32i a15, a15, 12 /* [.Lrel114] */ # 830: f83f + l32i a15, a15, 0 /* [[.Lrel114]] */ # 832: f80f + bnez a0, .Lbr063 # 834: dca0 + memw # 836: c02000 + l32i a0, a13, 0x200 /* [0x3ff00000] */ # 839: 022d80 + movi a2, -32 /* 0xffffffe0 */ # 83c: 6c02 + and a0, a0, a2 # 83e: 200010 + movi a2, 1 /* 0x00000001 */ # 841: 0c12 + or a0, a0, a2 # 843: 200020 + memw # 846: c02000 + s32i a0, a13, 0x200 /* a0 -> [0x3ff00000] */ # 849: 026d80 + call0 vPortExitCritical # 84c: 01e3ffc0 + # 850: 0000 +.Lbr063: movi a4, 255 /* 0x000000ff */ # 852: 42a0ff + movi a3, 3 /* 0x00000003 */ # 855: 0c33 + or a3, a15, a3 # 857: 303f20 + xor a3, a3, a4 # 85a: 403330 + beqz a3, .Lbr074 # 85d: 160316 + movi a0, NoiseTimerInterval # 860: 01daff + l32i a0, a0, 12 /* [.Lrel114] */ # 863: 0830 + slli a4, a12, 3 # 865: d04c11 + addx8 a0, a12, a0 # 868: 000cb0 + l32i a15, a0, 0x118 # 86b: f22046 + s32i a4, sp, 56 /* a4 -> [(local6)] */ # 86e: 49e1 + beqz a15, .Lbr074 # 870: 16df14 + s32i a15, sp, 28 /* a15 -> [(local0)] */ # 873: f971 + movi a2, 280 /* 0x00000118 */ # 875: 22a118 + movi a3, 0 /* 0x00000000 */ # 878: 0c03 + s32i a3, a0, 0x118 # 87a: 326046 + add a2, a0, a2 # 87d: 2a20 + s32i a2, a0, 0x11c # 87f: 226047 +.Lbr064: mov a12, a15 # 882: cd0f + beqz a15, .Lbr072 # 884: 168f12 + l32i a15, a15, 28 # 887: f87f + movi a6, 0 /* 0x00000000 */ # 889: 0c06 + s32i a6, a12, 28 # 88b: 697c + l8ui a5, a14, 0 /* [NMIIrqIsOn] */ # 88d: 520e00 + s32i a15, sp, 28 /* a15 -> [(local0)] */ # 890: f971 + bnez a5, .Lbr066 # 892: dce5 + call0 vPortEnterCritical # 894: 01d2ffc0 + # 898: 0000 + movi a0, -32 /* 0xffffffe0 */ # 89a: 6c00 +.Lbr065: memw # 89c: c02000 + l32i a8, a13, 0x200 /* [0x3ff00000] */ # 89f: 822d80 + and a8, a8, a0 # 8a2: 008810 + memw # 8a5: c02000 + s32i a8, a13, 0x200 /* a8 -> [0x3ff00000] */ # 8a8: 826d80 + memw # 8ab: c02000 + l32i a7, a13, 0x200 /* [0x3ff00000] */ # 8ae: 722d80 + bbsi a7, 0, .Lbr065 # 8b1: 07e7e7 +.Lbr066: l32i a3, a12, 24 # 8b4: 386c + l32i a4, a12, 32 # 8b6: 488c + l8ui a3, a3, 118 # 8b8: 320376 + l8ui a2, a4, 0 # 8bb: 220400 + l8ui a5, a4, 6 # 8be: 520406 + extui a2, a2, 1, 1 # 8c1: 202104 + l8ui a4, a4, 4 # 8c4: 420404 + extui a5, a5, 4, 3 # 8c7: 505424 + extui a4, a4, 0, 4 # 8ca: 404034 + call0 .Lfunc008 # 8cd: 45d8ff + l8ui a4, a14, 0 /* [NMIIrqIsOn] */ # 8d0: 420e00 + s32i a2, sp, 60 /* a2 -> [(local7)] */ # 8d3: 29f1 + bnez a4, .Lbr067 # 8d5: dcc4 + memw # 8d7: c02000 + l32i a5, a13, 0x200 /* [0x3ff00000] */ # 8da: 522d80 + movi a6, -32 /* 0xffffffe0 */ # 8dd: 6c06 + and a5, a5, a6 # 8df: 605510 + movi a6, 1 /* 0x00000001 */ # 8e2: 0c16 + or a5, a5, a6 # 8e4: 605520 + memw # 8e7: c02000 + s32i a5, a13, 0x200 /* a5 -> [0x3ff00000] */ # 8ea: 526d80 + call0 vPortExitCritical # 8ed: 01bcffc0 + # 8f1: 0000 + l32i a2, sp, 60 /* [(local7)] */ # 8f3: 28f1 +.Lbr067: addi a0, a12, 28 # 8f5: 02cc1c + bnei a2, 8, .Lbr068 # 8f8: 668217 + movi a7, NoiseTimerInterval # 8fb: 71b4ff + l32i a8, sp, 56 /* [(local6)] */ # 8fe: 88e1 + l32i a7, a7, 12 /* [.Lrel114] */ # 900: 7837 + movi a9, 0 /* 0x00000000 */ # 902: 0c09 + add a7, a7, a8 # 904: 8a77 + l32i a8, a7, 0x11c # 906: 822747 + s32i a9, a12, 28 # 909: 997c + s32i a12, a8, 0 # 90b: c908 + s32i a0, a7, 0x11c # 90d: 026747 + j .Lbr064 # 910: 86dbff +.Lbr068: movi a3, 195 /* 0x000000c3 */ # 913: 32a0c3 + l32i a10, a12, 32 # 916: a88c + extui a11, a2, 0, 4 # 918: 20b034 + l8ui a9, a10, 0 # 91b: 920a00 + slli a11, a11, 2 # 91e: e0bb11 + and a9, a9, a3 # 921: 309910 + or a9, a9, a11 # 924: b09920 + s8i a9, a10, 0 # 927: 924a00 + l8ui a8, a14, 0 /* [NMIIrqIsOn] */ # 92a: 820e00 + s32i a0, sp, 64 /* a0 -> [(local8)] */ # 92d: 026110 + bnez a8, .Lbr070 # 930: ec18 + call0 vPortEnterCritical # 932: 01acffc0 + # 936: 0000 + l32i a0, sp, 64 /* [(local8)] */ # 938: 022110 +.Lbr069: memw # 93b: c02000 + l32i a4, a13, 0x200 /* [0x3ff00000] */ # 93e: 422d80 + movi a2, -32 /* 0xffffffe0 */ # 941: 6c02 + and a4, a4, a2 # 943: 204410 + memw # 946: c02000 + s32i a4, a13, 0x200 /* a4 -> [0x3ff00000] */ # 949: 426d80 + memw # 94c: c02000 + l32i a3, a13, 0x200 /* [0x3ff00000] */ # 94f: 322d80 + bbsi a3, 0, .Lbr069 # 952: 07e3e5 +.Lbr070: movi a6, NoiseTimerInterval # 955: 619eff + l32i a2, a12, 32 # 958: 288c + movi a7, 0 /* 0x00000000 */ # 95a: 0c07 + s32i a7, a12, 28 # 95c: 797c + l8ui a8, a2, 0 # 95e: 820200 + l32i a6, a6, 12 /* [.Lrel114] */ # 961: 6836 + extui a8, a8, 2, 4 # 963: 808234 + slli a8, a8, 5 # 966: b08811 + add a8, a6, a8 # 969: 8a86 + l32i a8, a8, 28 # 96b: 8878 + s32i a12, a8, 0 # 96d: c908 + l8ui a7, a2, 0 # 96f: 720200 + extui a7, a7, 2, 4 # 972: 707234 + slli a7, a7, 5 # 975: b07711 + add a6, a6, a7 # 978: 7a66 + s32i a0, a6, 28 # 97a: 0976 + l8ui a5, a14, 0 /* [NMIIrqIsOn] */ # 97c: 520e00 + bnez a5, .Lbr071 # 97f: dcc5 + memw # 981: c02000 + l32i a8, a13, 0x200 /* [0x3ff00000] */ # 984: 822d80 + movi a9, -32 /* 0xffffffe0 */ # 987: 6c09 + and a8, a8, a9 # 989: 908810 + movi a9, 1 /* 0x00000001 */ # 98c: 0c19 + or a8, a8, a9 # 98e: 908820 + memw # 991: c02000 + s32i a8, a13, 0x200 /* a8 -> [0x3ff00000] */ # 994: 826d80 + call0 vPortExitCritical # 997: 0194ffc0 + # 99b: 0000 + l32i a2, a12, 32 # 99d: 288c +.Lbr071: l8ui a2, a2, 6 # 99f: 220206 + movi a3, 0 /* 0x00000000 */ # 9a2: 0c03 + extui a2, a2, 4, 3 # 9a4: 202424 + call0 pp_post # 9a7: 0191ffc0 + # 9ab: 0000 + j .Lbr064 # 9ad: 46b4ff +.Lbr072: movi a2, 1 /* 0x00000001 */ # 9b0: 0c12 +.Lbr073: l32i a12, sp, 40 /* [(local2)] */ # 9b2: c8a1 + l32i a13, sp, 44 /* [(local3)] */ # 9b4: d8b1 + l32i a14, sp, 48 /* [(local4)] */ # 9b6: e8c1 + l32i a15, sp, 52 /* [(local5)] */ # 9b8: f8d1 + l32i a0, sp, 36 /* [(local1)] */ # 9ba: 0891 + addi sp, sp, 80 /* (top of frame) */ # 9bc: 12c150 + ret # 9bf: 0df0 +.Lbr074: movi a2, 0 /* 0x00000000 */ # 9c1: 0c02 + j .Lbr073 # 9c3: c6faff + + .literal_position # 9c8: 51030000 + # 9cc: 00000000 + +# Function @ .text+0x9d0 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word[4] @ -0x10 + .balign 4 +.Lfunc010: addi sp, sp, -32 /* (local0) */ # 9d0: 12c1e0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 9d3: 0901 + s32i a14, sp, 12 /* a14 -> [(local3)] */ # 9d5: e931 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 9d7: c911 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 9d9: d921 + s32i a15, sp, 16 /* a15 -> [(local4)] */ # 9db: f941 + movi a15, .Ldata020 # 9dd: f1faff + movi a13, -1 /* 0xffffffff */ # 9e0: 7cfd + l8ui a12, a15, 0 /* [.Ldata020] */ # 9e2: c20f00 + movi a14, 0 /* 0x00000000 */ # 9e5: 0c0e +.Lbr075: mov a2, a12 # 9e7: 2d0c + call0 pm_allow_tx # 9e9: 01f8ffc0 + # 9ed: 0000 + beqz a2, .Lbr076 # 9ef: 8c62 + mov a2, a12 # 9f1: 2d0c + call0 .Lfunc009 # 9f3: c5dfff + movnez a13, a12, a2 # 9f6: 20dc93 +.Lbr076: l8ui a0, a15, 0 /* [.Ldata020] */ # 9f9: 020f00 + addi a12, a12, 1 # 9fc: 1bcc + extui a12, a12, 0, 8 # 9fe: c0c074 + addi a2, a12, -2 # a01: 22ccfe + moveqz a12, a14, a2 # a04: 20ce83 + bne a0, a12, .Lbr075 # a07: c790dc + l32i a12, sp, 4 /* [(local1)] */ # a0a: c811 + beqi a13, -1, .Lbr078 # a0c: 260d0c + addi a0, a13, 1 # a0f: 1b0d + extui a2, a0, 0, 8 # a11: 002074 + beqi a2, 2, .Lbr077 # a14: 262201 + mov a14, a0 # a17: ed00 +.Lbr077: s8i a14, a15, 0 /* a14 -> [.Ldata020] */ # a19: e24f00 +.Lbr078: l32i a13, sp, 8 /* [(local2)] */ # a1c: d821 + l32i a14, sp, 12 /* [(local3)] */ # a1e: e831 + l32i a15, sp, 16 /* [(local4)] */ # a20: f841 + l32i a0, sp, 0 /* [(local0)] */ # a22: 0801 + addi sp, sp, 32 /* (top of frame) */ # a24: 12c120 + ret # a27: 0df0 + + .literal_position # a2c: 00000000 + # a30: 00feef3f + # a34: 00000000 + # a38: 00feef3f + # a3c: 00000000 + # a40: 00000000 + # a44: 00000000 + # a48: 00000000 + # a4c: 00000000 + # a50: 00000000 + # a54: 00000000 + # a58: 00000000 + # a5c: 00000000 + # a60: 00000000 + # a64: 00000000 + # a68: 00000000 + +# Function @ .text+0xa6c +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word[4] @ -0x10 + .balign 4 +.Lfunc011: addi sp, sp, -32 /* (local0) */ # a6c: 12c1e0 + s32i a12, sp, 12 /* a12 -> [(local3)] */ # a6f: c931 + s32i a0, sp, 8 /* a0 -> [(local2)] */ # a71: 0921 + mov a12, a2 /* arg0 */ # a73: cd02 + l32i a0, a2, 16 /* [arg0+0x10] */ # a75: 0842 + s32i a0, sp, 4 /* [arg0+0x10] -> [(local1)] */ # a77: 0911 + call0 .Lfunc010 # a79: 45f5ff + l32i a8, a12, 32 /* [arg0+0x20] */ # a7c: 888c + l8ui a2, a8, 0 /* [[arg0+0x20]] */ # a7e: 220800 + l32i a3, a12, 24 /* [arg0+0x18] */ # a81: 386c + extui a2, a2, 1, 1 # a83: 202104 + bnez a3, .Lbr082 # a86: 56e305 + l32i a3, a8, 0 /* [[arg0+0x20]] */ # a89: 3808 + extui a3, a3, 9, 1 # a8b: 303904 + bnez a3, .Lbr090 # a8e: 561317 + call0 pm_allow_tx # a91: 01eaffc0 + # a95: 0000 + l32i a8, a12, 32 /* [arg0+0x20] */ # a97: 888c + bnez a2, .Lbr079 # a99: cca2 + l8ui a0, a8, 14 /* [[arg0+0x20]+0xe] */ # a9b: 02080e + beqi a0, 32, .Lbr079 # a9e: 26c005 + addi a4, a0, -64 /* [[arg0+0x20]+0xe]-0x40 */ # aa1: 42c0c0 + bnez a4, .Lbr092 # aa4: 563417 +.Lbr079: l8ui a2, a8, 0 /* [[arg0+0x20]] */ # aa7: 220800 + movi a0, 195 /* 0x000000c3 */ # aaa: 02a0c3 + and a0, a2, a0 # aad: 000210 + extui a2, a2, 1, 1 # ab0: 202104 + slli a2, a2, 2 # ab3: e02211 + or a0, a0, a2 # ab6: 200020 + s8i a0, a8, 0 /* a0 -> [[arg0+0x20]] */ # ab9: 024800 + l32i a10, a12, 32 /* [arg0+0x20] */ # abc: a88c + l8ui a9, a10, 6 /* [[arg0+0x20]+0x6] */ # abe: 920a06 + movi a11, 143 /* 0x0000008f */ # ac1: b2a08f + and a9, a9, a11 # ac4: b09910 + s8i a9, a10, 6 /* a9 -> [[arg0+0x20]+0x6] */ # ac7: 924a06 + l32i a6, a12, 32 /* [arg0+0x20] */ # aca: 688c + l8ui a5, a6, 4 /* [[arg0+0x20]+0x4] */ # acc: 520604 + movi a7, 240 /* 0x000000f0 */ # acf: 72a0f0 + and a5, a5, a7 # ad2: 705510 + movi a7, 7 /* 0x00000007 */ # ad5: 0c77 + or a5, a5, a7 # ad7: 705520 + s8i a5, a6, 4 /* a5 -> [[arg0+0x20]+0x4] */ # ada: 524604 +.Lbr080: movi a2, 0 /* 0x00000000 */ # add: 0c02 +.Lbr081: l32i a12, sp, 12 /* [(local3)] */ # adf: c831 + l32i a0, sp, 8 /* [(local2)] */ # ae1: 0821 + addi sp, sp, 32 /* (top of frame) */ # ae3: 12c120 + ret # ae6: 0df0 +.Lbr082: l32i a3, sp, 4 /* [(local1)] */ # ae8: 3811 + l8ui a3, a3, 0 /* [[(local1)]] */ # aea: 320300 + extui a3, a3, 2, 2 # aed: 303214 + bnez a3, .Lbr083 # af0: 563304 + call0 pm_allow_tx # af3: 01d3ffc0 + # af7: 0000 + beqz a2, .Lbr091 # af9: 163211 + l32i a11, a12, 32 /* [arg0+0x20] */ # afc: b88c + l8ui a0, a11, 0 /* [[arg0+0x20]] */ # afe: 020b00 + movi a10, 195 /* 0x000000c3 */ # b01: a2a0c3 + and a10, a0, a10 # b04: a0a010 + extui a0, a0, 1, 1 # b07: 000104 + slli a0, a0, 2 # b0a: e00011 + or a10, a10, a0 # b0d: 00aa20 + s8i a10, a11, 0 /* a10 -> [[arg0+0x20]] */ # b10: a24b00 + l32i a8, a12, 32 /* [arg0+0x20] */ # b13: 888c + l8ui a7, a8, 6 /* [[arg0+0x20]+0x6] */ # b15: 720806 + movi a9, 143 /* 0x0000008f */ # b18: 92a08f + and a7, a7, a9 # b1b: 907710 + s8i a7, a8, 6 /* a7 -> [[arg0+0x20]+0x6] */ # b1e: 724806 + l32i a5, a12, 32 /* [arg0+0x20] */ # b21: 588c + l8ui a4, a5, 4 /* [[arg0+0x20]+0x4] */ # b23: 420504 + movi a6, 240 /* 0x000000f0 */ # b26: 62a0f0 + and a4, a4, a6 # b29: 604410 + movi a6, 7 /* 0x00000007 */ # b2c: 0c76 + or a4, a4, a6 # b2e: 604420 + s8i a4, a5, 4 /* a4 -> [[arg0+0x20]+0x4] */ # b31: 424504 + j .Lbr080 # b34: 46e9ff +.Lbr083: call0 pm_allow_tx # b37: 01c3ffc0 + # b3b: 0000 + bnez a2, .Lbr084 # b3d: dc02 + l32i a11, a12, 32 /* [arg0+0x20] */ # b3f: b88c + l32i a11, a11, 0 /* [[arg0+0x20]] */ # b41: b80b + bbci a11, 19, .Lbr084 # b43: 377b0a + movi a2, 1 /* 0x00000001 */ # b46: 0c12 + call0 pm_post # b48: 01c0ffc0 + # b4c: 0000 + j .Lbr089 # b4e: 062b00 +.Lbr084: movi a0, NMIIrqIsOn # b51: 01b6ff + l8ui a0, a0, 0 /* [NMIIrqIsOn] */ # b54: 020000 + bnez a0, .Lbr086 # b57: ec10 + call0 vPortEnterCritical # b59: 01bcffc0 + # b5d: 0000 +.Lbr085: memw # b5f: c02000 + movi a3, 0x3feffe00 # b62: 31b3ff + l32i a4, a3, 0x200 /* [0x3ff00000] */ # b65: 422380 + movi a5, -32 /* 0xffffffe0 */ # b68: 6c05 + and a4, a4, a5 # b6a: 504410 + memw # b6d: c02000 + s32i a4, a3, 0x200 /* a4 -> [0x3ff00000] */ # b70: 426380 + memw # b73: c02000 + l32i a3, a3, 0x200 /* [0x3ff00000] */ # b76: 322380 + bbsi a3, 0, .Lbr085 # b79: 07e3e2 +.Lbr086: l32i a3, a12, 24 /* [arg0+0x18] */ # b7c: 386c + l32i a4, a12, 32 /* [arg0+0x20] */ # b7e: 488c + l8ui a3, a3, 118 /* [[arg0+0x18]+0x76] */ # b80: 320376 + l8ui a2, a4, 0 /* [[arg0+0x20]] */ # b83: 220400 + l8ui a5, a4, 6 /* [[arg0+0x20]+0x6] */ # b86: 520406 + extui a2, a2, 1, 1 # b89: 202104 + l8ui a4, a4, 4 /* [[arg0+0x20]+0x4] */ # b8c: 420404 + extui a5, a5, 4, 3 # b8f: 505424 + extui a4, a4, 0, 4 # b92: 404034 + call0 .Lfunc008 # b95: c5abff + movi a4, NMIIrqIsOn # b98: 41a7ff + mov a0, a2 # b9b: 0d02 + l8ui a4, a4, 0 /* [NMIIrqIsOn] */ # b9d: 420400 + s32i a2, sp, 16 /* a2 -> [(local4)] */ # ba0: 2941 + bnez a4, .Lbr087 # ba2: dcf4 + memw # ba4: c02000 + movi a6, 0x3feffe00 # ba7: 61a4ff + l32i a5, a6, 0x200 /* [0x3ff00000] */ # baa: 522680 + movi a7, -32 /* 0xffffffe0 */ # bad: 6c07 + and a5, a5, a7 # baf: 705510 + movi a7, 1 /* 0x00000001 */ # bb2: 0c17 + or a5, a5, a7 # bb4: 705520 + memw # bb7: c02000 + s32i a5, a6, 0x200 /* a5 -> [0x3ff00000] */ # bba: 526680 + call0 vPortExitCritical # bbd: 01a4ffc0 + # bc1: 0000 + l32i a0, sp, 16 /* [(local4)] */ # bc3: 0841 +.Lbr087: s32i a0, sp, 0 /* a0 -> [(local0)] */ # bc5: 0901 + beqi a0, 8, .Lbr089 # bc7: 268033 + l32i a2, a12, 32 /* [arg0+0x20] */ # bca: 288c + l8ui a2, a2, 0 /* [[arg0+0x20]] */ # bcc: 220200 + extui a2, a2, 1, 1 # bcf: 202104 + call0 pm_allow_tx # bd2: 01a0ffc0 + # bd6: 0000 + beqz a2, .Lbr088 # bd8: 9ca2 + movi a6, 195 /* 0x000000c3 */ # bda: 62a0c3 + l32i a4, a12, 32 /* [arg0+0x20] */ # bdd: 488c + l32i a5, sp, 0 /* [(local0)] */ # bdf: 5801 + l8ui a3, a4, 0 /* [[arg0+0x20]] */ # be1: 320400 + extui a5, a5, 0, 4 # be4: 505034 + slli a5, a5, 2 # be7: e05511 + and a3, a3, a6 # bea: 603310 + or a3, a3, a5 # bed: 503320 + s8i a3, a4, 0 /* a3 -> [[arg0+0x20]] */ # bf0: 324400 + j .Lbr080 # bf3: 86b9ff +.Lbr088: movi a2, 1 /* 0x00000001 */ # bf6: 0c12 + call0 pm_post # bf8: 0198ffc0 + # bfc: 0000 +.Lbr089: movi a2, 1 /* 0x00000001 */ # bfe: 0c12 + j .Lbr081 # c00: c6b6ff +.Lbr090: call0 pm_allow_tx # c03: 0196ffc0 + # c07: 0000 + beqz a2, .Lbr093 # c09: 9c92 + l32i a8, a12, 32 /* [arg0+0x20] */ # c0b: 888c + j .Lbr079 # c0d: 86a5ff +.Lbr091: movi a2, 1 /* 0x00000001 */ # c10: 0c12 + call0 pm_post # c12: 0193ffc0 + # c16: 0000 + j .Lbr089 # c18: 86f8ff +.Lbr092: movi a2, 1 /* 0x00000001 */ # c1b: 0c12 + call0 pm_post # c1d: 0191ffc0 + # c21: 0000 + j .Lbr089 # c23: c6f5ff +.Lbr093: movi a2, 1 /* 0x00000001 */ # c26: 0c12 + call0 pm_post # c28: 0190ffc0 + # c2c: 0000 + j .Lbr089 # c2e: 06f3ff + + .balign 4 +# Function @ .text+0xc34 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global ppDiscardMPDU + .type ppDiscardMPDU, @function +ppDiscardMPDU: + movi a4, 0 /* 0x00000000 */ # c34: 0c04 + addi sp, sp, -16 /* (local0) */ # c36: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # c39: 0901 + l32i a3, a2, 32 /* [arg0+0x20] */ # c3b: 3882 + movi a0, 4 /* 0x00000004 */ # c3d: 0c40 + s8i a4, a3, 14 /* 0x00 -> [[arg0+0x20]+0xe] */ # c3f: 42430e + s8i a0, a3, 15 /* 0x04 -> [[arg0+0x20]+0xf] */ # c42: 02430f + call0 ppEnqueueTxDone # c45: 050000 + movi a2, 4 /* 0x00000004 */ # c48: 0c42 + movi a3, 0 /* 0x00000000 */ # c4a: 0c03 + call0 pp_post # c4c: 050000 + l32i a0, sp, 0 /* [(local0)] */ # c4f: 0801 + addi sp, sp, 16 /* (top of frame) */ # c51: 12c110 + ret # c54: 0df0 + + .literal_position # c58: 00000000 + # c5c: 00feef3f + # c60: 00000000 + # c64: 50000000 + # c68: 00030000 + # c6c: 5c000000 + # c70: 00000000 + # c74: 00000000 + # c78: 00000000 + # c7c: 00000000 + # c80: 00000000 + +# Function @ .text+0xc84 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word @ -0x10 +# (local5): word @ -0xc +# (local6): word[2] @ -0x8 + .balign 4 + .global MacIsrSigPostDefHdl + .type MacIsrSigPostDefHdl, @function +MacIsrSigPostDefHdl: + addi sp, sp, -32 /* (local0) */ # c84: 12c1e0 + s32i a13, sp, 16 /* a13 -> [(local4)] */ # c87: d941 + s32i a14, sp, 20 /* a14 -> [(local5)] */ # c89: e951 + s32i a12, sp, 12 /* a12 -> [(local3)] */ # c8b: c931 + movi a12, .Ldata003 # c8d: c1f2ff + s32i a0, sp, 8 /* a0 -> [(local2)] */ # c90: 0921 + l16ui a0, a12, 6 /* [.Ldata006] */ # c92: 021c03 + s32i a15, sp, 24 /* a15 -> [(local6)] */ # c95: f961 + beqz a0, .Lbr102 # c97: 16500b + movi a13, 0 /* 0x00000000 */ # c9a: 0c0d + movi a14, 0x3feffe00 # c9c: e1f0ff + movi a15, NMIIrqIsOn # c9f: f1f0ff +.Lbr094: call0 .Lfunc002 # ca2: 8543ff + s32i a2, sp, 0 /* a2 -> [(local0)] */ # ca5: 2901 + bnez a2, .Lbr095 # ca7: cc92 + movi a2, .Lstr006 # ca9: 21eeff + call0 printf # cac: 01f1ffc0 + # cb0: 0000 + l32i a2, sp, 0 /* [(local0)] */ # cb2: 2801 +.Lbr095: movi a4, .Ldata017 # cb4: 41edff + l16ui a3, a12, 86 /* [.Ldata014] */ # cb7: 321c2b + addx8 a4, a3, a4 # cba: 4043b0 + l32i a5, a4, 0 # cbd: 5804 + s32i a5, a2, 0 # cbf: 5902 + l32i a4, a4, 4 # cc1: 4814 + s32i a4, a2, 4 # cc3: 4912 + l8ui a6, a15, 0 /* [NMIIrqIsOn] */ # cc5: 620f00 + addi a2, a3, 1 /* [.Ldata014]+0x1 */ # cc8: 1b23 + extui a2, a2, 0, 16 # cca: 2020f4 + bltui a2, 8, .Lbr096 # ccd: b68207 + movi a5, 0 /* 0x00000000 */ # cd0: 0c05 + s16i a5, a12, 86 /* 0x0000 -> [.Ldata014] */ # cd2: 525c2b + j .Lbr097 # cd5: 860000 +.Lbr096: s16i a2, a12, 86 /* a2 -> [.Ldata014] */ # cd8: 225c2b +.Lbr097: bnez a6, .Lbr099 # cdb: dce6 + call0 vPortEnterCritical # cdd: 01e5ffc0 + # ce1: 0000 + movi a0, -32 /* 0xffffffe0 */ # ce3: 6c00 +.Lbr098: memw # ce5: c02000 + l32i a8, a14, 0x200 /* [0x3ff00000] */ # ce8: 822e80 + and a8, a8, a0 # ceb: 008810 + memw # cee: c02000 + s32i a8, a14, 0x200 /* a8 -> [0x3ff00000] */ # cf1: 826e80 + memw # cf4: c02000 + l32i a7, a14, 0x200 /* [0x3ff00000] */ # cf7: 722e80 + bbsi a7, 0, .Lbr098 # cfa: 07e7e7 +.Lbr099: call0 .Lfunc004 # cfd: c546ff + l8ui a9, a15, 0 /* [NMIIrqIsOn] */ # d00: 920f00 + bnez a9, .Lbr100 # d03: dca9 + memw # d05: c02000 + l32i a10, a14, 0x200 /* [0x3ff00000] */ # d08: a22e80 + movi a11, -32 /* 0xffffffe0 */ # d0b: 6c0b + and a10, a10, a11 # d0d: b0aa10 + movi a11, 1 /* 0x00000001 */ # d10: 0c1b + or a10, a10, a11 # d12: b0aa20 + memw # d15: c02000 + s32i a10, a14, 0x200 /* a10 -> [0x3ff00000] */ # d18: a26e80 + call0 vPortExitCritical # d1b: 01d7ffc0 + # d1f: 0000 +.Lbr100: mov a3, sp /* (local0) */ # d21: 3d01 + addi a4, sp, 4 /* (local1) */ # d23: 4b41 + movi a5, 0 /* 0x00000000 */ # d25: 0c05 + l32i a2, a12, 80 /* [.Ldata013] */ # d27: 222c14 + call0 xQueueGenericSendFromISR # d2a: 01d4ffc0 + # d2e: 0000 + mov a3, a2 # d30: 3d02 + beqi a2, 1, .Lbr101 # d32: 261208 + movi a2, .Lstr007 # d35: 21cdff + call0 printf # d38: 01d2ffc0 + # d3c: 0000 +.Lbr101: l16ui a0, a12, 6 /* [.Ldata006] */ # d3e: 021c03 + l32i a4, sp, 4 /* [(local1)] */ # d41: 4811 + movi a3, 1 /* 0x00000001 */ # d43: 0c13 + addi a4, a4, -1 /* [(local1)]-0x1 */ # d45: 0b44 + moveqz a13, a3, a4 # d47: 40d383 + bnez a0, .Lbr094 # d4a: 5640f5 + j .Lbr103 # d4d: 460000 +.Lbr102: movi a13, 0 /* 0x00000000 */ # d50: 0c0d +.Lbr103: l32i a0, sp, 8 /* [(local2)] */ # d52: 0821 + l32i a12, sp, 12 /* [(local3)] */ # d54: c831 + l32i a14, sp, 20 /* [(local5)] */ # d56: e851 + mov a2, a13 # d58: 2d0d + l32i a15, sp, 24 /* [(local6)] */ # d5a: f861 + l32i a13, sp, 16 /* [(local4)] */ # d5c: d841 + addi sp, sp, 32 /* (top of frame) */ # d5e: 12c120 + ret # d61: 0df0 + + .literal_position # d64: 00000000 + # d68: 00feef3f + # d6c: 00000000 + # d70: 40030000 + # d74: 00000000 + # d78: 68000000 + # d7c: 74000000 + # d80: 00000000 + # d84: 00000000 + # d88: 00000000 + # d8c: 00000000 + # d90: 00000000 + # d94: 00000000 + # d98: 00000000 + # d9c: 00000000 + +# Function @ .text+0xda0 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word[4] @ -0x10 + .balign 4 + .global pp_post + .type pp_post, @function +pp_post: movi a6, 1 /* 0x00000001 */ # da0: 0c16 + movi a7, NMIIrqIsOn # da2: 71f0ff + addi sp, sp, -32 /* (local0) */ # da5: 12c1e0 + s32i a3, sp, 4 /* arg1 -> [(local1)] */ # da8: 3911 + s32i a13, sp, 16 /* a13 -> [(local4)] */ # daa: d941 + s32i a12, sp, 12 /* a12 -> [(local3)] */ # dac: c931 + s32i a0, sp, 8 /* a0 -> [(local2)] */ # dae: 0921 + mov a12, a2 /* arg0 */ # db0: cd02 + movi a0, -32 /* 0xffffffe0 */ # db2: 6c00 + l8ui a7, a7, 0 /* [NMIIrqIsOn] */ # db4: 720700 + movi a13, 0x3feffe00 # db7: d1ecff + bnez a7, .Lbr105 # dba: ec67 + call0 vPortEnterCritical # dbc: 01f1ffc0 + # dc0: 0000 + movi a0, -32 /* 0xffffffe0 */ # dc2: 6c00 + movi a6, 1 /* 0x00000001 */ # dc4: 0c16 +.Lbr104: memw # dc6: c02000 + l32i a9, a13, 0x200 /* [0x3ff00000] */ # dc9: 922d80 + and a9, a9, a0 # dcc: 009910 + memw # dcf: c02000 + s32i a9, a13, 0x200 /* a9 -> [0x3ff00000] */ # dd2: 926d80 + memw # dd5: c02000 + l32i a8, a13, 0x200 /* [0x3ff00000] */ # dd8: 822d80 + bbsi a8, 0, .Lbr104 # ddb: 07e8e7 + movi a7, NMIIrqIsOn # dde: 71e3ff + l8ui a7, a7, 0 /* [NMIIrqIsOn] */ # de1: 720700 +.Lbr105: movi a8, .Ldata018 # de4: 81e3ff + add a8, a12, a8 # de7: 8a8c + l8ui a2, a8, 0 # de9: 220800 + movi a9, 9 /* 0x00000009 */ # dec: 0c99 + beqz a2, .Lbr108 # dee: ac52 + bnez a7, .Lbr106 # df0: dc67 + memw # df2: c02000 + l32i a9, a13, 0x200 /* [0x3ff00000] */ # df5: 922d80 + and a9, a9, a0 # df8: 009910 + or a9, a9, a6 # dfb: 609920 + memw # dfe: c02000 + s32i a9, a13, 0x200 /* a9 -> [0x3ff00000] */ # e01: 926d80 + call0 vPortExitCritical # e04: 01e0ffc0 + # e08: 0000 +.Lbr106: movi a2, 0 /* 0x00000000 */ # e0a: 0c02 +.Lbr107: l32i a12, sp, 12 /* [(local3)] */ # e0c: c831 + l32i a13, sp, 16 /* [(local4)] */ # e0e: d841 + l32i a0, sp, 8 /* [(local2)] */ # e10: 0821 + addi sp, sp, 32 /* (top of frame) */ # e12: 12c120 + ret # e15: 0df0 +.Lbr108: beq a12, a9, .Lbr109 # e17: 971c04 + addi a10, a2, 1 # e1a: 1ba2 + s8i a10, a8, 0 # e1c: a24800 +.Lbr109: bnez a7, .Lbr110 # e1f: dc87 + memw # e21: c02000 + l32i a11, a13, 0x200 /* [0x3ff00000] */ # e24: b22d80 + and a11, a11, a0 # e27: 00bb10 + or a11, a11, a6 # e2a: 60bb20 + memw # e2d: c02000 + s32i a11, a13, 0x200 /* a11 -> [0x3ff00000] */ # e30: b26d80 + call0 vPortExitCritical # e33: 01d5ffc0 + # e37: 0000 + movi a9, 9 /* 0x00000009 */ # e39: 0c99 +.Lbr110: movi a13, .Ldata003 # e3b: d1ceff + bgeui a12, 4, .Lbr112 # e3e: f64c14 + call0 .Lfunc002 # e41: 8529ff + s32i a2, sp, 0 /* a2 -> [(local0)] */ # e44: 2901 + bnez a2, .Lbr114 # e46: fc22 + movi a2, .Lstr008 # e48: 21ccff + call0 printf # e4b: 01d0ffc0 + # e4f: 0000 +.Lbr111: movi a2, 1 /* 0x00000001 */ # e51: 0c12 + j .Lbr107 # e53: 46edff +.Lbr112: bne a12, a9, .Lbr113 # e56: 979c0b + l32i a2, a13, 80 /* [.Ldata013] */ # e59: 222d14 + call0 uxQueueMessagesWaitingFromISR # e5c: 01cdffc0 + # e60: 0000 + bgeui a2, 32, .Lbr111 # e62: f6c2eb +.Lbr113: call0 .Lfunc003 # e65: c52cff + beqz a2, .Lbr111 # e68: 1652fe + l32i a0, sp, 4 /* [(local1)] */ # e6b: 0811 + s32i a12, a2, 0 # e6d: c902 + s32i a0, a2, 4 # e6f: 0912 + movi a2, 2 /* 0x00000002 */ # e71: 0c22 + call0 PendSV # e73: 01c8ffc0 + # e77: 0000 + j .Lbr106 # e79: 46e3ff +.Lbr114: movi a4, 1 /* 0x00000001 */ # e7c: 0c14 + movi a5, 0 /* 0x00000000 */ # e7e: 0c05 + l32i a3, sp, 4 /* [(local1)] */ # e80: 3811 + s32i a12, a2, 0 # e82: c902 + s32i a3, a2, 4 # e84: 3912 + l32i a2, a13, 80 /* [.Ldata013] */ # e86: 222d14 + mov a3, sp /* (local0) */ # e89: 3d01 + call0 xQueueGenericSend # e8b: 01c3ffc0 + # e8f: 0000 + addi a4, a2, -1 # e91: 0b42 + beqz a4, .Lbr106 # e93: 1634f7 + movi a2, .Lstr009 # e96: 21b9ff + call0 printf # e99: 01c0ffc0 + # e9d: 0000 + j .Lbr111 # e9f: 86ebff + + .literal_position # ea4: 00000000 + # ea8: 00000000 + # eac: 00feef3f + # eb0: 00000000 + # eb4: 00000000 + # eb8: 04000000 + # ebc: 0c000000 + # ec0: 330a0000 + # ec4: 00feef3f + # ec8: 00feef3f + # ecc: 00000000 + # ed0: 00000000 + # ed4: 00000000 + # ed8: 00000000 + +# Function @ .text+0xedc +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word @ -0x8 +# (local3): word @ -0x4 + .balign 4 + .global ppCalTxop + .type ppCalTxop, @function +ppCalTxop: mov a7, a3 /* arg1 */ # edc: 7d03 + slli a2, a2, 5 # ede: b02211 + mov a3, a4 /* arg2 */ # ee1: 3d04 + movi a4, NoiseTimerInterval # ee3: 41f0ff + addi sp, sp, -16 /* (local0) */ # ee6: 12c1f0 + l32i a6, a4, 12 /* [.Lrel114] */ # ee9: 6834 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # eeb: 0911 + add a6, a6, a2 # eed: 2a66 + l8ui a0, a6, 39 # eef: 020627 + bnez a0, .Lbr121 # ef2: 569009 + movi a10, 1 /* 0x00000001 */ # ef5: 0c1a + s32i a2, sp, 8 /* a2 -> [(local2)] */ # ef7: 2921 + movi a8, NMIIrqIsOn # ef9: 81ebff + s32i a3, sp, 0 /* arg2 -> [(local0)] */ # efc: 3901 + l8ui a8, a8, 0 /* [NMIIrqIsOn] */ # efe: 820800 + s32i a7, sp, 12 /* arg1 -> [(local3)] */ # f01: 7931 + bnez a8, .Lbr116 # f03: fc48 + call0 vPortEnterCritical # f05: 01f1ffc0 + # f09: 0000 + l32i a7, sp, 12 /* [(local3)] */ # f0b: 7831 + movi a0, 0x3feffe00 # f0d: 01e7ff + movi a9, -32 /* 0xffffffe0 */ # f10: 6c09 + movi a10, 1 /* 0x00000001 */ # f12: 0c1a + movi a11, NoiseTimerInterval # f14: b1e7ff + l32i a2, sp, 8 /* [(local2)] */ # f17: 2821 +.Lbr115: memw # f19: c02000 + l32i a4, a0, 0x200 /* [0x3ff00000] */ # f1c: 422080 + and a4, a4, a9 # f1f: 904410 + memw # f22: c02000 + s32i a4, a0, 0x200 /* a4 -> [0x3ff00000] */ # f25: 426080 + memw # f28: c02000 + l32i a3, a0, 0x200 /* [0x3ff00000] */ # f2b: 322080 + bbsi a3, 0, .Lbr115 # f2e: 07e3e7 + movi a8, NMIIrqIsOn # f31: 81e0ff + l32i a6, a11, 12 /* [.Lrel114] */ # f34: 683b + l8ui a8, a8, 0 /* [NMIIrqIsOn] */ # f36: 820800 + add a6, a6, a2 # f39: 2a66 +.Lbr116: l32i a11, a6, 24 # f3b: b866 + beqz a11, .Lbr120 # f3d: acbb +.Lbr117: l32i a6, a11, 32 # f3f: 688b + l32i a2, a6, 0 # f41: 2806 + bbsi a2, 24, .Lbr120 # f43: 87f225 + l16ui a2, a6, 10 # f46: 221605 + l32i a3, sp, 0 /* [(local0)] */ # f49: 3801 + add a7, a2, a7 # f4b: 7a72 + extui a7, a7, 0, 16 # f4d: 7070f4 + bnez a11, .Lbr119 # f50: dc0b + movi a2, .Lstr001 # f52: 21d9ff + movi a3, .Lstr002 # f55: 31d9ff + movi a4, 0x00000a33 # f58: 41daff + call0 printf # f5b: 01ddffc0 + # f5f: 0000 +.Lbr118: j .Lbr118 /* (halt) */ # f61: 06ffff +.Lbr119: bgeu a7, a3, .Lbr123 # f64: 37b732 + l32i a11, a11, 28 # f67: b87b + bnez a11, .Lbr117 # f69: 562bfd +.Lbr120: s32i a7, sp, 12 /* a7 -> [(local3)] */ # f6c: 7931 + bnez a8, .Lbr121 # f6e: dcd8 + memw # f70: c02000 + movi a5, 0x3feffe00 # f73: 51d4ff + l32i a4, a5, 0x200 /* [0x3ff00000] */ # f76: 422580 + movi a6, -32 /* 0xffffffe0 */ # f79: 6c06 + and a4, a4, a6 # f7b: 604410 + or a4, a4, a10 # f7e: a04420 + memw # f81: c02000 + s32i a4, a5, 0x200 /* a4 -> [0x3ff00000] */ # f84: 426580 + call0 vPortExitCritical # f87: 01d3ffc0 + # f8b: 0000 + l32i a7, sp, 12 /* [(local3)] */ # f8d: 7831 +.Lbr121: mov a4, a7 # f8f: 4d07 +.Lbr122: mov a2, a4 # f91: 2d04 + l32i a0, sp, 4 /* [(local1)] */ # f93: 0811 + addi sp, sp, 16 /* (top of frame) */ # f95: 12c110 + ret # f98: 0df0 +.Lbr123: bnez a8, .Lbr124 # f9a: dcb8 + memw # f9c: c02000 + movi a8, 0x3feffe00 # f9f: 81caff + l32i a7, a8, 0x200 /* [0x3ff00000] */ # fa2: 722880 + movi a9, -32 /* 0xffffffe0 */ # fa5: 6c09 + and a7, a7, a9 # fa7: 907710 + or a7, a7, a10 # faa: a07720 + memw # fad: c02000 + s32i a7, a8, 0x200 /* a7 -> [0x3ff00000] */ # fb0: 726880 + call0 vPortExitCritical # fb3: 01c9ffc0 + # fb7: 0000 +.Lbr124: l32i a4, sp, 0 /* [(local0)] */ # fb9: 4801 + j .Lbr122 # fbb: 86f4ff + + .literal_position # fc0: 00000000 + # fc4: 00000000 + # fc8: 00000000 + +# Function @ .text+0xfcc +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global ppCalFrameTimes + .type ppCalFrameTimes, @function +ppCalFrameTimes: + addi sp, sp, -16 /* (local0) */ # fcc: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # fcf: c911 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # fd1: 0901 + l32i a0, a2, 32 /* [arg0+0x20] */ # fd3: 0882 + mov a12, a2 /* arg0 */ # fd5: cd02 + l32i a2, a0, 0 /* [[arg0+0x20]] */ # fd7: 2800 + bbci a2, 25, .Lbr125 # fd9: 97720d + l8ui a2, a0, 8 /* [[arg0+0x20]+0x8] */ # fdc: 220008 + call0 RC_GetBlockAckTime # fdf: 01f8ffc0 + # fe3: 0000 + l32i a0, a12, 32 /* [arg0+0x20] */ # fe5: 088c + j .Lbr127 # fe7: 460500 +.Lbr125: bbsi a2, 16, .Lbr126 # fea: 07f210 + bbsi a2, 7, .Lbr126 # fed: 77e20d + l8ui a2, a0, 8 /* [[arg0+0x20]+0x8] */ # ff0: 220008 + call0 RC_GetAckTime # ff3: 01f4ffc0 + # ff7: 0000 + l32i a0, a12, 32 /* [arg0+0x20] */ # ff9: 088c + j .Lbr127 # ffb: 460000 +.Lbr126: movi a2, 0 /* 0x00000000 */ # ffe: 0c02 +.Lbr127: l32i a4, a12, 32 /* [arg0+0x20] */ # 1000: 488c + l16ui a5, a0, 6 /* [[arg0+0x20]+0x6] */ # 1002: 521003 + extui a6, a2, 0, 9 # 1005: 206084 + slli a6, a6, 7 # 1008: 906611 + extui a5, a5, 0, 7 # 100b: 505064 + or a5, a5, a6 # 100e: 605520 + s16i a5, a0, 6 /* a5 -> [[arg0+0x20]+0x6] */ # 1011: 525003 + l8ui a2, a4, 8 /* [[arg0+0x20]+0x8] */ # 1014: 220408 + l16ui a5, a12, 22 /* [arg0+0x16] */ # 1017: 521c0b + l16ui a4, a4, 6 /* [[arg0+0x20]+0x6] */ # 101a: 421403 + l16ui a3, a12, 20 /* [arg0+0x14] */ # 101d: 321c0a + srli a4, a4, 7 # 1020: 404741 + add a3, a3, a5 # 1023: 5a33 + extui a3, a3, 0, 16 # 1025: 3030f4 + call0 RC_GetCtsTime # 1028: 01e8ffc0 + # 102c: 0000 + l32i a0, sp, 0 /* [(local0)] */ # 102e: 0801 + l32i a7, a12, 32 /* [arg0+0x20] */ # 1030: 788c + l32i a12, sp, 4 /* [(local1)] */ # 1032: c811 + s16i a2, a7, 10 /* a2 -> [[arg0+0x20]+0xa] */ # 1034: 225705 + addi sp, sp, 16 /* (top of frame) */ # 1037: 12c110 + ret # 103a: 0df0 + + .section .data, "aw", @progbits + + .global NoiseTimerInterval + .type NoiseTimerInterval, @object +NoiseTimerInterval: + .hword 0x0064 # 0: 6400 +.Ldata001: .byte 0x17 + .balign 4 +.Ldata002: .word 0x000927c0 # 4: c0270900 + .global sleep_start_wait_time + .type sleep_start_wait_time, @object +sleep_start_wait_time: + .hword 0x00f0 # 8: f000 + .balign 4 +.Lrel114: .word .Ldata015 # c: 58000000 + + .section .bss, "aw", @nobits + +.Ldata003: .byte 0x00 + .byte 0x00 +.Ldata004: .hword 0x0000 # 2: 0000 +.Ldata005: .hword 0x0000 # 4: 0000 +.Ldata006: .hword 0x0000 # 6: 0000 +.Ldata007: .hword 0x0000 # 8: 0000 + .byte 0x00, 0x00 +.Ldata008: .space 28 + .global pend_flag_noise_check + .type pend_flag_noise_check, @object +pend_flag_noise_check: + .byte 0x00 +.Ldata009: .byte 0x00 + .byte 0x00, 0x00 +.Ldata010: .word 0x00000000 # 2c: 00000000 + .global pend_flag_periodic_cal + .type pend_flag_periodic_cal, @object +pend_flag_periodic_cal: + .byte 0x00 +.Ldata011: .byte 0x00 + .byte 0x00, 0x00 +.Ldata012: .space 28 +.Ldata013: .word 0x00000000 # 50: 00000000 + .global dbg_stop_sw_wdt + .type dbg_stop_sw_wdt, @object +dbg_stop_sw_wdt: + .byte 0x00 + .global dbg_stop_hw_wdt + .type dbg_stop_hw_wdt, @object +dbg_stop_hw_wdt: + .byte 0x00 +.Ldata014: .hword 0x0000 # 56: 0000 +.Ldata015: .space 352 + .space 8 +.Ldata016: .space 320 +.Ldata017: .space 64 +.Ldata018: .space 13 + .byte 0x00, 0x00, 0x00 +.Ldata019: .byte 0x00 +.Ldata020: .byte 0x00 + + .section .irom0.text, "ax", @progbits + + .literal_position # 0: 00060060 + # 4: 006a1800 + # 8: 00000000 + +# Function @ .irom0.text+0xc +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global PPWdtReset + .type PPWdtReset, @function +PPWdtReset: addi sp, sp, -16 /* (local0) */ # c: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # f: 0901 + movi a2, 0x60000600 # 11: 21fbff + movi a0, 115 /* 0x00000073 */ # 14: 02a073 + memw # 17: c02000 + s32i a0, a2, 0x314 /* 0x00000073 -> [0x60000914] */ # 1a: 0262c5 + movi a2, 0x00186a00 # 1d: 21f9ff + call0 wDev_MacTim1Arm # 20: 01faffc0 + # 24: 0000 + l32i a0, sp, 0 /* [(local0)] */ # 26: 0801 + addi sp, sp, 16 /* (top of frame) */ # 28: 12c110 + ret # 2b: 0df0 + + .literal_position # 30: 00000000 + # 34: 006a1800 + # 38: 00000000 + # 3c: 00000000 + +# Function @ .irom0.text+0x40 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global pp_soft_wdt_init + .type pp_soft_wdt_init, @function +pp_soft_wdt_init: + movi a2, pp_soft_wdt_feed # 40: 21fcff + addi sp, sp, -16 /* (local0) */ # 43: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 46: 0901 + call0 wDev_MacTim1SetFunc # 48: 01fcffc0 + # 4c: 0000 + movi a2, 0x00186a00 # 4e: 21f9ff + call0 wDev_MacTim1Arm # 51: 01faffc0 + # 55: 0000 + l32i a0, sp, 0 /* [(local0)] */ # 57: 0801 + addi sp, sp, 16 /* (top of frame) */ # 59: 12c110 + ret # 5c: 0df0 + + .literal_position # 60: 00000000 + +# Function @ .irom0.text+0x64 + .balign 4 + .global RxNodeNum + .type RxNodeNum, @function +RxNodeNum: movi a2, wDevCtrl # 64: 21ffff + l8ui a3, a2, 5 /* [wDevCtrl+0x5] */ # 67: 320205 + l32i a5, a2, 8 /* [wDevCtrl+0x8] */ # 6a: 5822 + beqz a3, .Lbr128 # 6c: 8c23 + movi a2, 5 /* 0x00000005 */ # 6e: 0c52 + ret /* 0x00000005 */ # 70: 0df0 +.Lbr128: movi a2, 0 /* 0x00000000 */ # 72: 0c02 +.Lbr129: beqz a5, .Lbr130 # 74: 8cd5 + addi a2, a2, 1 # 76: 1b22 + l32i a6, a5, 8 # 78: 6825 + extui a2, a2, 0, 8 # 7a: 202074 + beq a5, a6, .Lbr130 # 7d: 671504 + mov a5, a6 # 80: 5d06 + j .Lbr129 # 82: 86fbff +.Lbr130: ret # 85: 0df0 + + .literal_position # 88: 00000000 + +# Function @ .irom0.text+0x8c + .balign 4 + .global TxNodeNum + .type TxNodeNum, @function +TxNodeNum: movi a2, wDevCtrl # 8c: 21ffff + l8ui a3, a2, 5 /* [wDevCtrl+0x5] */ # 8f: 320205 + l32i a4, a2, 40 /* [wDevCtrl+0x28] */ # 92: 48a2 + bnez a3, .Lbr131 # 94: cc33 + movi a2, 0 /* 0x00000000 */ # 96: 0c02 + j .Lbr133 # 98: 860200 +.Lbr131: movi a2, 5 /* 0x00000005 */ # 9b: 0c52 + ret /* 0x00000005 */ # 9d: 0df0 +.Lbr132: l32i a4, a4, 8 # 9f: 4824 + addi a2, a2, 1 # a1: 1b22 + extui a2, a2, 0, 8 # a3: 202074 +.Lbr133: bnez a4, .Lbr132 # a6: 5654ff + ret # a9: 0df0 + + .literal_position # ac: 00000000 + # b0: 00000000 + # b4: 00000000 + +# Function @ .irom0.text+0xb8 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 +.Lfunc012: addi sp, sp, -16 /* (local0) */ # b8: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # bb: 0901 + call0 vPortEnterCritical # bd: 01fcffc0 + # c1: 0000 + movi a2, .Ldata003 # c3: 21faff + l16ui a0, a2, 2 /* [.Ldata004] */ # c6: 021201 + addi a0, a0, -1 /* [.Ldata004]-0x1 */ # c9: 0b00 + s16i a0, a2, 2 /* [.Ldata004]-0x1 -> [.Ldata004] */ # cb: 025201 + call0 vPortExitCritical # ce: 01f9ffc0 + # d2: 0000 + l32i a0, sp, 0 /* [(local0)] */ # d4: 0801 + addi sp, sp, 16 /* (top of frame) */ # d6: 12c110 + ret # d9: 0df0 + + .literal_position # dc: 0c000000 + # e0: 00000000 + +# Function @ .irom0.text+0xe4 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global pp_disable_noise_timer + .type pp_disable_noise_timer, @function +pp_disable_noise_timer: + movi a2, .Ldata008 # e4: 21feff + addi sp, sp, -16 /* (local0) */ # e7: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # ea: 0901 + call0 os_timer_disarm # ec: 01fdffc0 + # f0: 0000 + l32i a0, sp, 0 /* [(local0)] */ # f2: 0801 + addi sp, sp, 16 /* (top of frame) */ # f4: 12c110 + ret # f7: 0df0 + + .literal_position # fc: 0c000000 + # 100: 00000000 + # 104: 00000000 + # 108: 00000000 + # 10c: 00000000 + # 110: 00000000 + # 114: 0c000000 + # 118: 00000000 + # 11c: 00000000 + # 120: 00000000 + # 124: 00000000 + # 128: 00000000 + # 12c: 00000000 + # 130: 00000000 + # 134: 00000000 + # 138: 00000000 + +# Function @ .irom0.text+0x13c +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word @ -0x8 +# (local3): word @ -0x4 + .balign 4 + .global pp_enable_noise_timer + .type pp_enable_noise_timer, @function +pp_enable_noise_timer: + movi a2, .Ldata008 # 13c: 21f0ff + addi sp, sp, -16 /* (local0) */ # 13f: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 142: c911 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 144: d921 + s32i a14, sp, 12 /* a14 -> [(local3)] */ # 146: e931 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 148: 0901 + call0 os_timer_disarm # 14a: 01f3ffc0 + # 14e: 0000 + call0 pm_rf_is_closed # 150: 01f3ffc0 + # 154: 0000 + movi a14, 1 /* 0x00000001 */ # 156: 0c1e + movi a12, .Ldata003 # 158: c1eaff + beqz a2, .Lbr134 # 15b: 8c42 + s8i a14, a12, 40 /* 0x01 -> [pend_flag_noise_check] */ # 15d: e24c28 + j .Lbr135 # 160: 460200 +.Lbr134: mov a2, a14 /* 0x00000001 */ # 163: 2d0e + movi a3, 1 /* 0x00000001 */ # 165: 0c13 + call0 noise_check_loop # 167: 01eeffc0 + # 16b: 0000 +.Lbr135: movi a13, wDevCtrl # 16d: d1e5ff + l8ui a13, a13, 0 /* [wDevCtrl] */ # 170: d20d00 + call0 TxNodeNum # 173: 050000 + movi a0, 0 /* 0x00000000 */ # 176: 0c00 + movi a14, NoiseTimerInterval # 178: e1e4ff + bltui a13, 2, .Lbr136 # 17b: b62d05 + extui a3, a2, 0, 8 # 17e: 203074 + bgeui a3, 2, .Lbr137 # 181: f62318 +.Lbr136: movi a2, 1000 /* 0x000003e8 */ # 184: 22a3e8 + l8ui a13, a12, 41 /* [.Ldata009] */ # 187: d20c29 + l16ui a3, a14, 0 /* [NoiseTimerInterval] */ # 18a: 321e00 + addi a13, a13, 1 /* [.Ldata009]+0x1 */ # 18d: 1bdd + extui a13, a13, 0, 8 # 18f: d0d074 + call0 __divsi3 # 192: 01e4ffc0 + # 196: 0000 + movi a0, 0 /* 0x00000000 */ # 198: 0c00 + blt a13, a2, .Lbr138 # 19a: 272d05 +.Lbr137: s8i a0, a12, 41 /* 0x00 -> [.Ldata009] */ # 19d: 024c29 + j .Lbr139 # 1a0: 860000 +.Lbr138: s8i a13, a12, 41 /* a13 -> [.Ldata009] */ # 1a3: d24c29 +.Lbr139: call0 read_hw_noisefloor # 1a6: 01e0ffc0 + # 1aa: 0000 + addi a14, a2, 2 # 1ac: 2be2 + l32i a13, a12, 44 /* [.Ldata010] */ # 1ae: d8bc + movi a2, NoiseTimerInterval # 1b0: 21d7ff + srai a14, a14, 2 # 1b3: e0e221 + addi a13, a13, 1 /* [.Ldata010]+0x1 */ # 1b6: 1bdd + s8i a14, a2, 2 /* a14 -> [.Ldata001] */ # 1b8: e24202 + l16ui a14, a2, 0 /* [NoiseTimerInterval] */ # 1bb: e21200 + l32i a2, a2, 4 /* [.Ldata002] */ # 1be: 2812 + mov a3, a14 /* [NoiseTimerInterval] */ # 1c0: 3d0e + call0 __udivsi3 # 1c2: 01daffc0 + # 1c6: 0000 + bltu a13, a2, .Lbr140 # 1c8: 273d16 + movi a13, NoiseTimerInterval # 1cb: d1d1ff + movi a2, 0 /* 0x00000000 */ # 1ce: 0c02 + s32i a2, a12, 44 /* 0x00000000 -> [.Ldata010] */ # 1d0: 29bc + call0 pm_rf_is_closed # 1d2: 01d7ffc0 + # 1d6: 0000 + beqz a2, .Lbr142 # 1d8: ac22 + movi a3, 1 /* 0x00000001 */ # 1da: 0c13 + s8i a3, a12, 48 /* 0x01 -> [pend_flag_periodic_cal] */ # 1dc: 324c30 + j .Lbr143 # 1df: c60800 +.Lbr140: s32i a13, a12, 44 /* [.Ldata010]+0x1 -> [.Ldata010] */ # 1e2: d9bc +.Lbr141: mov a3, a14 /* [NoiseTimerInterval] */ # 1e4: 3d0e + movi a2, .Ldata008 # 1e6: 21cbff + movi a4, 0 /* 0x00000000 */ # 1e9: 0c04 + call0 os_timer_arm # 1eb: 01d2ffc0 + # 1ef: 0000 + l32i a12, sp, 4 /* [(local1)] */ # 1f1: c811 + l32i a13, sp, 8 /* [(local2)] */ # 1f3: d821 + l32i a14, sp, 12 /* [(local3)] */ # 1f5: e831 + l32i a0, sp, 0 /* [(local0)] */ # 1f7: 0801 + addi sp, sp, 16 /* (top of frame) */ # 1f9: 12c110 + ret # 1fc: 0df0 +.Lbr142: movi a2, 0 /* 0x00000000 */ # 1fe: 0c02 + call0 periodic_cal_top # 200: 01ceffc0 + # 204: 0000 +.Lbr143: l16ui a14, a13, 0 /* [NoiseTimerInterval] */ # 206: e21d00 + j .Lbr141 # 209: c6f5ff + +# Function @ .irom0.text+0x20c +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global pp_noise_test + .type pp_noise_test, @function +pp_noise_test: + addi sp, sp, -16 /* (local0) */ # 20c: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 20f: 0901 + call0 pp_enable_noise_timer # 211: 050000 + l32i a0, sp, 0 /* [(local0)] */ # 214: 0801 + addi sp, sp, 16 /* (top of frame) */ # 216: 12c110 + ret # 219: 0df0 + + .literal_position # 21c: 0c000000 + # 220: 00000000 + # 224: 0c000000 + # 228: 00000000 + # 22c: 00000000 + +# Function @ .irom0.text+0x230 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global reset_noise_timer + .type reset_noise_timer, @function +reset_noise_timer: + addi sp, sp, -16 /* (local0) */ # 230: 12c1f0 + s32i a2, sp, 0 /* arg0 -> [(local0)] */ # 233: 2901 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 235: 0911 + movi a2, .Ldata008 # 237: 21f9ff + movi a0, 0 /* 0x00000000 */ # 23a: 0c00 + s32i a0, a2, 32 /* 0x00000000 -> [.Ldata010] */ # 23c: 0982 + s8i a0, a2, 29 /* 0x00 -> [.Ldata009] */ # 23e: 02421d + call0 os_timer_disarm # 241: 01f9ffc0 + # 245: 0000 + movi a4, NoiseTimerInterval # 247: 41f6ff + l32i a3, sp, 0 /* [(local0)] */ # 24a: 3801 + movi a2, .Ldata008 # 24c: 21f6ff + s16i a3, a4, 0 /* [(local0)] -> [NoiseTimerInterval] */ # 24f: 325400 + movi a4, 1 /* 0x00000001 */ # 252: 0c14 + call0 os_timer_arm # 254: 01f6ffc0 + # 258: 0000 + l32i a0, sp, 4 /* [(local1)] */ # 25a: 0811 + addi sp, sp, 16 /* (top of frame) */ # 25c: 12c110 + ret # 25f: 0df0 + + .literal_position # 264: 00000000 + # 268: 34000000 + # 26c: 00000000 + +# Function @ .irom0.text+0x270 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global pp_disable_idle_timer + .type pp_disable_idle_timer, @function +pp_disable_idle_timer: + addi sp, sp, -16 /* (local0) */ # 270: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 273: 0901 + movi a0, .Ldata003 # 275: 01fbff + l8ui a2, a0, 49 /* [.Ldata011] */ # 278: 220031 + bnei a2, 1, .Lbr144 # 27b: 661204 + movi a3, 0 /* 0x00000000 */ # 27e: 0c03 + s8i a3, a0, 49 /* 0x00 -> [.Ldata011] */ # 280: 324031 +.Lbr144: movi a2, .Ldata012 # 283: 21f9ff + call0 os_timer_disarm # 286: 01f9ffc0 + # 28a: 0000 + l32i a0, sp, 0 /* [(local0)] */ # 28c: 0801 + addi sp, sp, 16 /* (top of frame) */ # 28e: 12c110 + ret # 291: 0df0 + + .literal_position # 294: 00000000 + # 298: 00000000 + # 29c: 00000000 + +# Function @ .irom0.text+0x2a0 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global pp_enable_idle_timer + .type pp_enable_idle_timer, @function +pp_enable_idle_timer: + movi a4, 0 /* 0x00000000 */ # 2a0: 0c04 + movi a2, .Ldata003 # 2a2: 21fcff + movi a3, 1 /* 0x00000001 */ # 2a5: 0c13 + addi sp, sp, -16 /* (local0) */ # 2a7: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 2aa: 0901 + s8i a3, a2, 49 /* 0x01 -> [.Ldata011] */ # 2ac: 324231 + movi a3, NoiseTimerInterval # 2af: 31faff + addi a2, a2, 52 /* .Ldata012 */ # 2b2: 22c234 + l16ui a3, a3, 8 /* [sleep_start_wait_time] */ # 2b5: 321304 + call0 os_timer_arm # 2b8: 01f9ffc0 + # 2bc: 0000 + l32i a0, sp, 0 /* [(local0)] */ # 2be: 0801 + addi sp, sp, 16 /* (top of frame) */ # 2c0: 12c110 + ret # 2c3: 0df0 + + .literal_position # 2c8: 00000000 + # 2cc: 00000000 + # 2d0: 00000000 + +# Function @ .irom0.text+0x2d4 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global pp_try_enable_idle_timer + .type pp_try_enable_idle_timer, @function +pp_try_enable_idle_timer: + addi sp, sp, -16 /* (local0) */ # 2d4: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 2d7: 0901 + movi a0, .Ldata003 # 2d9: 01fbff + l8ui a2, a0, 49 /* [.Ldata011] */ # 2dc: 220031 + bnez a2, .Lbr145 # 2df: dc42 + addi a2, a0, 52 /* .Ldata012 */ # 2e1: 22c034 + movi a3, NoiseTimerInterval # 2e4: 31faff + movi a4, 1 /* 0x00000001 */ # 2e7: 0c14 + s8i a4, a0, 49 /* 0x01 -> [.Ldata011] */ # 2e9: 424031 + l16ui a3, a3, 8 /* [sleep_start_wait_time] */ # 2ec: 321304 + movi a4, 0 /* 0x00000000 */ # 2ef: 0c04 + call0 os_timer_arm # 2f1: 01f7ffc0 + # 2f5: 0000 +.Lbr145: l32i a0, sp, 0 /* [(local0)] */ # 2f7: 0801 + addi sp, sp, 16 /* (top of frame) */ # 2f9: 12c110 + ret # 2fc: 0df0 + + .literal_position # 300: 00000000 + # 304: 00000000 + +# Function @ .irom0.text+0x308 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global ppPeocessRxPktHdr + .type ppPeocessRxPktHdr, @function +ppPeocessRxPktHdr: + movi a5, promiscuous_cb # 308: 51feff + addi sp, sp, -16 /* (local0) */ # 30b: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 30e: 0901 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 310: c911 + l32i a5, a5, 0 /* [promiscuous_cb] */ # 312: 5805 + mov a12, a2 /* arg0 */ # 314: cd02 + beqz a5, .Lbr148 # 316: acc5 + l8ui a6, a2, 1 /* [arg0+0x1] */ # 318: 620201 + l8ui a0, a2, 4 /* [arg0+0x4] */ # 31b: 020204 + srli a6, a6, 6 # 31e: 606641 + beqz a6, .Lbr146 # 321: 9c06 + srli a7, a0, 7 # 323: 007741 + beqi a7, 1, .Lbr149 # 326: 26172d + extui a8, a0, 0, 7 # 329: 008064 + bgei a8, 8, .Lbr149 # 32c: e68827 + l8ui a9, a2, 7 /* [arg0+0x7] */ # 32f: 920207 + bbsi a9, 6, .Lbr149 # 332: 67e921 +.Lbr146: l16ui a3, a12, 48 /* [arg0+0x30] */ # 335: 321c18 + slli a3, a3, 1 # 338: f03311 + addi a3, a3, 58 # 33b: 32c33a + extui a3, a3, 0, 16 # 33e: 3030f4 +.Lbr147: mov a2, a12 /* arg0 */ # 341: 2d0c + callx0 a5 /* [promiscuous_cb] */ # 343: c00500 +.Lbr148: mov a2, a12 /* arg0 */ # 346: 2d0c + call0 vPortFree # 348: 01efffc0 + # 34c: 0000 + l32i a12, sp, 4 /* [(local1)] */ # 34e: c811 + l32i a0, sp, 0 /* [(local0)] */ # 350: 0801 + addi sp, sp, 16 /* (top of frame) */ # 352: 12c110 + ret # 355: 0df0 +.Lbr149: movi a3, 12 /* 0x0000000c */ # 357: 0cc3 + j .Lbr147 # 359: 06f9ff + + .literal_position # 35c: 00feef3f + # 360: 00000000 + # 364: 00000000 + # 368: 40030000 + # 36c: 40030000 + # 370: 00060060 + # 374: 40030000 + # 378: 40030000 + # 37c: 40030000 + # 380: 40030000 + # 384: 40030000 + # 388: 00000000 + # 38c: 00000000 + # 390: 00000000 + # 394: 00000000 + # 398: 00000000 + # 39c: 00000000 + # 3a0: 00000000 + # 3a4: 00000000 + # 3a8: 00000000 + # 3ac: 00000000 + # 3b0: 000c0000 + # 3b4: 00000000 + # 3b8: 00000000 + # 3bc: ac0d0000 + # 3c0: 00000000 + # 3c4: 00000000 + # 3c8: 00000000 + # 3cc: 00000000 + # 3d0: 00000000 + # 3d4: d0090000 + +# Function @ .irom0.text+0x3d8 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word @ -0x10 +# (local5): word @ -0xc +# (local6): word[2] @ -0x8 + .balign 4 + .global ppTask + .type ppTask, @function +ppTask: movi a2, 40 /* 0x00000028 */ # 3d8: 2c82 + movi a3, 4 /* 0x00000004 */ # 3da: 0c43 + movi a4, 0 /* 0x00000000 */ # 3dc: 0c04 + addi sp, sp, -32 /* (local0) */ # 3de: 12c1e0 + s32i a15, sp, 24 /* a15 -> [(local6)] */ # 3e1: f961 + s32i a14, sp, 20 /* a14 -> [(local5)] */ # 3e3: e951 + s32i a13, sp, 16 /* a13 -> [(local4)] */ # 3e5: d941 + s32i a12, sp, 12 /* a12 -> [(local3)] */ # 3e7: c931 + s32i a0, sp, 8 /* a0 -> [(local2)] */ # 3e9: 0921 + call0 xQueueGenericCreate # 3eb: 01e7ffc0 + # 3ef: 0000 + movi a12, 0x3feffe00 # 3f1: c1daff + movi a15, NMIIrqIsOn # 3f4: f1dbff + movi a13, .Ldata003 # 3f7: d1dbff + movi a14, -32 /* 0xffffffe0 */ # 3fa: 6c0e + s32i a2, a13, 80 /* a2 -> [.Ldata013] */ # 3fc: 226d14 +.Lbr150: mov a3, sp /* (local0) */ # 3ff: 3d01 + movi a4, -1 /* 0xffffffff */ # 401: 7cf4 + movi a5, 0 /* 0x00000000 */ # 403: 0c05 + call0 xQueueGenericReceive # 405: 01e1ffc0 + # 409: 0000 + bnei a2, 1, .Lbr152 # 40b: 66121f + l32i a2, sp, 0 /* [(local0)] */ # 40e: 2801 + l32i a0, a2, 0 /* [[(local0)]] */ # 410: 0802 + bgeui a0, 4, .Lbr153 # 412: f6401e + movi a10, .Ldata018 # 415: a1d4ff + add a10, a0, a10 # 418: aaa0 + l8ui a9, a10, 0 # 41a: 920a00 + extui a2, a0, 0, 8 # 41d: 002074 + addi a9, a9, -1 # 420: 0b99 + s8i a9, a10, 0 # 422: 924a00 + call0 ppProcessTxQ # 425: 01daffc0 + # 429: 0000 +.Lbr151: call0 .Lfunc012 # 42b: c5c8ff +.Lbr152: l32i a2, a13, 80 /* [.Ldata013] */ # 42e: 222d14 + j .Lbr150 # 431: 86f2ff +.Lbr153: addi a11, a0, -4 /* [[(local0)]]-0x4 */ # 434: b2c0fc + beqz a11, .Lbr157 # 437: 167b0b + addi a3, a0, -5 /* [[(local0)]]-0x5 */ # 43a: 32c0fb + beqz a3, .Lbr161 # 43d: 16f310 + beqi a0, 7, .Lbr151 # 440: 2670e7 + addi a4, a0, -8 /* [[(local0)]]-0x8 */ # 443: 42c0f8 + beqz a4, .Lbr173 # 446: 16d421 + addi a5, a0, -9 /* [[(local0)]]-0x9 */ # 449: 52c0f7 + beqz a5, .Lbr172 # 44c: 16f520 + addi a6, a0, -10 /* [[(local0)]]-0xa */ # 44f: 62c0f6 + beqz a6, .Lbr165 # 452: 166615 + addi a7, a0, -11 /* [[(local0)]]-0xb */ # 455: 72c0f5 + beqz a7, .Lbr169 # 458: 16c71a + bnei a0, 12, .Lbr151 # 45b: 66a0cc + l8ui a8, a15, 0 /* [NMIIrqIsOn] */ # 45e: 820f00 + bnez a8, .Lbr155 # 461: dcc8 + call0 vPortEnterCritical # 463: 01ccffc0 + # 467: 0000 +.Lbr154: memw # 469: c02000 + l32i a10, a12, 0x200 /* [0x3ff00000] */ # 46c: a22c80 + and a10, a10, a14 # 46f: e0aa10 + memw # 472: c02000 + s32i a10, a12, 0x200 /* a10 -> [0x3ff00000] */ # 475: a26c80 + memw # 478: c02000 + l32i a9, a12, 0x200 /* [0x3ff00000] */ # 47b: 922c80 + bbsi a9, 0, .Lbr154 # 47e: 07e9e7 +.Lbr155: movi a2, 32 /* 0x00000020 */ # 481: 2c02 + call0 zalloc # 483: 01c5ffc0 + # 487: 0000 + mov a3, a2 # 489: 3d02 + s32i a2, sp, 4 /* a2 -> [(local1)] */ # 48b: 2911 + movi a4, 32 /* 0x00000020 */ # 48d: 2c04 + movi a2, 0 /* 0x00000000 */ # 48f: 0c02 + call0 system_rtc_mem_write # 491: 01c2ffc0 + # 495: 0000 + l32i a2, sp, 4 /* [(local1)] */ # 497: 2811 + call0 free # 499: 01c1ffc0 + # 49d: 0000 + l8ui a11, a13, 85 /* [dbg_stop_hw_wdt] */ # 49f: b20d55 + movi a4, .Ldata018 # 4a2: 41b2ff + l8ui a6, a13, 84 /* [dbg_stop_sw_wdt] */ # 4a5: 620d54 + movi a5, 0 /* 0x00000000 */ # 4a8: 0c05 + l32i a2, sp, 0 /* [(local0)] */ # 4aa: 2801 + l8ui a3, a13, 0 /* [.Ldata003] */ # 4ac: 320d00 + l32i a2, a2, 0 /* [[(local0)]] */ # 4af: 2802 + moveqz a3, a5, a6 # 4b1: 603583 + add a2, a2, a4 # 4b4: 4a22 + l8ui a0, a2, 0 # 4b6: 020200 + s8i a3, a13, 0 /* a3 -> [.Ldata003] */ # 4b9: 324d00 + addi a0, a0, -1 # 4bc: 0b00 + s8i a0, a2, 0 # 4be: 024200 + bnez a11, .Lbr156 # 4c1: ccab + memw # 4c3: c02000 + movi a4, 0x60000600 # 4c6: 41aaff + movi a3, 115 /* 0x00000073 */ # 4c9: 32a073 + s32i a3, a4, 0x314 /* 0x00000073 -> [0x60000914] */ # 4cc: 3264c5 +.Lbr156: l8ui a5, a15, 0 /* [NMIIrqIsOn] */ # 4cf: 520f00 + bnez a5, .Lbr151 # 4d2: 5655f5 + memw # 4d5: c02000 + l32i a6, a12, 0x200 /* [0x3ff00000] */ # 4d8: 622c80 + movi a7, 1 /* 0x00000001 */ # 4db: 0c17 + and a6, a6, a14 # 4dd: e06610 + or a6, a6, a7 # 4e0: 706620 + memw # 4e3: c02000 + s32i a6, a12, 0x200 /* a6 -> [0x3ff00000] */ # 4e6: 626c80 + call0 vPortExitCritical # 4e9: 01aeffc0 + # 4ed: 0000 + j .Lbr151 # 4ef: 06ceff +.Lbr157: l8ui a2, a15, 0 /* [NMIIrqIsOn] */ # 4f2: 220f00 + bnez a2, .Lbr159 # 4f5: ec32 + call0 vPortEnterCritical # 4f7: 01acffc0 + # 4fb: 0000 +.Lbr158: memw # 4fd: c02000 + l32i a8, a12, 0x200 /* [0x3ff00000] */ # 500: 822c80 + and a8, a8, a14 # 503: e08810 + memw # 506: c02000 + s32i a8, a12, 0x200 /* a8 -> [0x3ff00000] */ # 509: 826c80 + memw # 50c: c02000 + l32i a7, a12, 0x200 /* [0x3ff00000] */ # 50f: 722c80 + bbsi a7, 0, .Lbr158 # 512: 07e7e7 + l32i a0, sp, 0 /* [(local0)] */ # 515: 0801 + l8ui a2, a15, 0 /* [NMIIrqIsOn] */ # 517: 220f00 + l32i a0, a0, 0 /* [[(local0)]] */ # 51a: 0800 +.Lbr159: movi a4, .Ldata018 # 51c: 4196ff + add a4, a0, a4 # 51f: 4a40 + l8ui a3, a4, 0 # 521: 320400 + addi a3, a3, -1 # 524: 0b33 + s8i a3, a4, 0 # 526: 324400 + bnez a2, .Lbr160 # 529: dc82 + memw # 52b: c02000 + l32i a5, a12, 0x200 /* [0x3ff00000] */ # 52e: 522c80 + movi a6, 1 /* 0x00000001 */ # 531: 0c16 + and a5, a5, a14 # 533: e05510 + or a5, a5, a6 # 536: 605520 + memw # 539: c02000 + s32i a5, a12, 0x200 /* a5 -> [0x3ff00000] */ # 53c: 526c80 + call0 vPortExitCritical # 53f: 019bffc0 + # 543: 0000 +.Lbr160: movi a2, 1 /* 0x00000001 */ # 545: 0c12 + call0 .Lfunc014 # 547: 019affc0 + # 54b: 0000 + j .Lbr151 # 54d: 86b6ff +.Lbr161: l8ui a2, a15, 0 /* [NMIIrqIsOn] */ # 550: 220f00 + bnez a2, .Lbr163 # 553: ec32 + call0 vPortEnterCritical # 555: 0197ffc0 + # 559: 0000 +.Lbr162: memw # 55b: c02000 + l32i a7, a12, 0x200 /* [0x3ff00000] */ # 55e: 722c80 + and a7, a7, a14 # 561: e07710 + memw # 564: c02000 + s32i a7, a12, 0x200 /* a7 -> [0x3ff00000] */ # 567: 726c80 + memw # 56a: c02000 + l32i a6, a12, 0x200 /* [0x3ff00000] */ # 56d: 622c80 + bbsi a6, 0, .Lbr162 # 570: 07e6e7 + l32i a0, sp, 0 /* [(local0)] */ # 573: 0801 + l8ui a2, a15, 0 /* [NMIIrqIsOn] */ # 575: 220f00 + l32i a0, a0, 0 /* [[(local0)]] */ # 578: 0800 +.Lbr163: movi a4, .Ldata018 # 57a: 417fff + add a4, a0, a4 # 57d: 4a40 + l8ui a3, a4, 0 # 57f: 320400 + addi a3, a3, -1 # 582: 0b33 + s8i a3, a4, 0 # 584: 324400 + bnez a2, .Lbr164 # 587: dc82 + memw # 589: c02000 + l32i a5, a12, 0x200 /* [0x3ff00000] */ # 58c: 522c80 + movi a6, 1 /* 0x00000001 */ # 58f: 0c16 + and a5, a5, a14 # 591: e05510 + or a5, a5, a6 # 594: 605520 + memw # 597: c02000 + s32i a5, a12, 0x200 /* a5 -> [0x3ff00000] */ # 59a: 526c80 + call0 vPortExitCritical # 59d: 0186ffc0 + # 5a1: 0000 +.Lbr164: call0 .Lfunc015 # 5a3: 0186ffc0 + # 5a7: 0000 + j .Lbr151 # 5a9: 869fff +.Lbr165: l8ui a2, a15, 0 /* [NMIIrqIsOn] */ # 5ac: 220f00 + bnez a2, .Lbr167 # 5af: ec32 + call0 vPortEnterCritical # 5b1: 0183ffc0 + # 5b5: 0000 +.Lbr166: memw # 5b7: c02000 + l32i a7, a12, 0x200 /* [0x3ff00000] */ # 5ba: 722c80 + and a7, a7, a14 # 5bd: e07710 + memw # 5c0: c02000 + s32i a7, a12, 0x200 /* a7 -> [0x3ff00000] */ # 5c3: 726c80 + memw # 5c6: c02000 + l32i a6, a12, 0x200 /* [0x3ff00000] */ # 5c9: 622c80 + bbsi a6, 0, .Lbr166 # 5cc: 07e6e7 + l32i a0, sp, 0 /* [(local0)] */ # 5cf: 0801 + l8ui a2, a15, 0 /* [NMIIrqIsOn] */ # 5d1: 220f00 + l32i a0, a0, 0 /* [[(local0)]] */ # 5d4: 0800 +.Lbr167: movi a4, .Ldata018 # 5d6: 4169ff + add a4, a0, a4 # 5d9: 4a40 + l8ui a3, a4, 0 # 5db: 320400 + addi a3, a3, -1 # 5de: 0b33 + s8i a3, a4, 0 # 5e0: 324400 + bnez a2, .Lbr168 # 5e3: dc82 + memw # 5e5: c02000 + l32i a5, a12, 0x200 /* [0x3ff00000] */ # 5e8: 522c80 + movi a6, 1 /* 0x00000001 */ # 5eb: 0c16 + and a5, a5, a14 # 5ed: e05510 + or a5, a5, a6 # 5f0: 605520 + memw # 5f3: c02000 + s32i a5, a12, 0x200 /* a5 -> [0x3ff00000] */ # 5f6: 526c80 + call0 vPortExitCritical # 5f9: 0172ffc0 + # 5fd: 0000 +.Lbr168: call0 pm_enable_gpio_wakeup # 5ff: 0172ffc0 + # 603: 0000 + j .Lbr151 # 605: 8688ff +.Lbr169: l8ui a2, a15, 0 /* [NMIIrqIsOn] */ # 608: 220f00 + bnez a2, .Lbr171 # 60b: ec32 + call0 vPortEnterCritical # 60d: 016fffc0 + # 611: 0000 +.Lbr170: memw # 613: c02000 + l32i a7, a12, 0x200 /* [0x3ff00000] */ # 616: 722c80 + and a7, a7, a14 # 619: e07710 + memw # 61c: c02000 + s32i a7, a12, 0x200 /* a7 -> [0x3ff00000] */ # 61f: 726c80 + memw # 622: c02000 + l32i a6, a12, 0x200 /* [0x3ff00000] */ # 625: 622c80 + bbsi a6, 0, .Lbr170 # 628: 07e6e7 + l32i a0, sp, 0 /* [(local0)] */ # 62b: 0801 + l8ui a2, a15, 0 /* [NMIIrqIsOn] */ # 62d: 220f00 + l32i a0, a0, 0 /* [[(local0)]] */ # 630: 0800 +.Lbr171: movi a4, .Ldata018 # 632: 4153ff + add a4, a0, a4 # 635: 4a40 + l8ui a3, a4, 0 # 637: 320400 + addi a3, a3, -1 # 63a: 0b33 + s8i a3, a4, 0 # 63c: 324400 + bnez a2, .Lbr151 # 63f: 5682de + memw # 642: c02000 + l32i a5, a12, 0x200 /* [0x3ff00000] */ # 645: 522c80 + movi a6, 1 /* 0x00000001 */ # 648: 0c16 + and a5, a5, a14 # 64a: e05510 + or a5, a5, a6 # 64d: 605520 + memw # 650: c02000 + s32i a5, a12, 0x200 /* a5 -> [0x3ff00000] */ # 653: 526c80 + call0 vPortExitCritical # 656: 015effc0 + # 65a: 0000 + j .Lbr151 # 65c: c672ff +.Lbr172: l32i a2, a2, 4 /* [[(local0)]+0x4] */ # 65f: 2812 + call0 ppPeocessRxPktHdr # 661: 050000 + j .Lbr151 # 664: c670ff +.Lbr173: movi a7, .Ldata018 # 667: 7147ff + add a7, a0, a7 # 66a: 7a70 + l8ui a6, a7, 0 # 66c: 620700 + addi a6, a6, -1 # 66f: 0b66 + s8i a6, a7, 0 # 671: 624700 + call0 .Lfunc010 # 674: 0158ffc0 + # 678: 0000 + j .Lbr151 # 67a: 466bff + + .literal_position # 680: f7ffff03 + # 684: 00008000 + # 688: 00000000 + # 68c: 00000000 + # 690: 00080000 + # 694: 00000000 + +# Function @ .irom0.text+0x698 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 +.Lfunc013: movi a4, 2 /* 0x00000002 */ # 698: 0c24 + movi a9, 12 /* 0x0000000c */ # 69a: 0cc9 + addi sp, sp, -16 /* (local0) */ # 69c: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 69f: 0901 + l32i a7, a2, 16 /* [arg0+0x10] */ # 6a1: 7842 + l32i a5, a2, 32 /* [arg0+0x20] */ # 6a3: 5882 + l8ui a3, a7, 4 /* [[arg0+0x10]+0x4] */ # 6a5: 320704 + l32i a0, a5, 0 /* [[arg0+0x20]] */ # 6a8: 0805 + bbci a3, 0, .Lbr174 # 6aa: 076310 + srli a3, a0, 6 # 6ad: 003641 + extui a0, a0, 0, 6 # 6b0: 000054 + or a3, a3, a4 # 6b3: 403320 + slli a3, a3, 6 # 6b6: a03311 + or a0, a0, a3 # 6b9: 300020 + s32i a0, a5, 0 /* a0 -> [[arg0+0x20]] */ # 6bc: 0905 +.Lbr174: l8ui a8, a7, 0 /* [[arg0+0x10]] */ # 6be: 820700 + movi a6, 240 /* 0x000000f0 */ # 6c1: 62a0f0 + and a4, a8, a9 # 6c4: 904810 + and a6, a8, a6 # 6c7: 606810 + bnei a4, 8, .Lbr179 # 6ca: 668449 + extui a8, a0, 0, 6 # 6cd: 008054 + movi a3, 8 /* 0x00000008 */ # 6d0: 0c83 + srli a0, a0, 6 # 6d2: 000641 + or a0, a0, a3 # 6d5: 300020 + slli a0, a0, 6 # 6d8: a00011 + or a0, a8, a0 # 6db: 000820 + s32i a0, a5, 0 /* a0 -> [[arg0+0x20]] */ # 6de: 0905 + beqi a6, 64, .Lbr175 # 6e0: 26d605 + movi a4, 192 /* 0x000000c0 */ # 6e3: 42a0c0 + bne a6, a4, .Lbr176 # 6e6: 479613 +.Lbr175: extui a6, a0, 0, 6 # 6e9: 006054 + movi a3, 0x03fffff7 # 6ec: 31e5ff + srli a0, a0, 6 # 6ef: 000641 + and a0, a0, a3 # 6f2: 300010 + slli a0, a0, 6 # 6f5: a00011 + or a0, a6, a0 # 6f8: 000620 + s32i a0, a5, 0 /* a0 -> [[arg0+0x20]] */ # 6fb: 0905 +.Lbr176: srli a4, a0, 6 # 6fd: 004641 +.Lbr177: l32i a0, sp, 0 /* [(local0)] */ # 700: 0801 + bbci a4, 18, .Lbr178 # 702: 27740c + l32i a5, a2, 4 # 705: 5812 + l16ui a4, a7, 22 # 707: 42170b + l32i a5, a5, 4 # 70a: 5815 + srli a4, a4, 4 # 70c: 404441 + s8i a4, a5, 3 # 70f: 424503 +.Lbr178: addi sp, sp, 16 /* (top of frame) */ # 712: 12c110 + ret # 715: 0df0 +.Lbr179: bany a8, a9, .Lbr176 # 717: 9788e2 + srli a4, a0, 6 # 71a: 004641 + bnei a6, 128, .Lbr182 # 71d: 66e63b + s32i a7, sp, 4 /* [arg0+0x10] -> [(local1)] */ # 720: 7911 + extui a9, a0, 0, 6 # 722: 009054 + movi a8, NoiseTimerInterval # 725: 81d8ff + movi a10, 0x00800000 # 728: a1d7ff + l32i a8, a8, 12 /* [.Lrel114] */ # 72b: 8838 + or a10, a4, a10 # 72d: a0a420 + slli a10, a10, 6 # 730: a0aa11 + or a9, a9, a10 # 733: a09920 + s32i a9, a5, 0 /* a9 -> [[arg0+0x20]] */ # 736: 9905 + l32i a6, a8, 0x15c /* [[.Lrel114]+0x15c] */ # 738: 622857 + s32i a2, sp, 8 /* arg0 -> [(local2)] */ # 73b: 2921 + addi a6, a6, 1 /* [[.Lrel114]+0x15c]+0x1 */ # 73d: 1b66 + s32i a6, a8, 0x15c /* [[.Lrel114]+0x15c]+0x1 -> [[.Lrel114]+0x15c] */ # 73f: 626857 + bltui a6, 6, .Lbr180 # 742: b6660e + movi a2, .Label001 # 745: 21d1ff + call0 printf # 748: 01d3ffc0 + # 74c: 0000 + l32i a2, sp, 8 /* [(local2)] */ # 74e: 2821 + l32i a5, a2, 32 /* [[(local2)]+0x20] */ # 750: 5882 + l32i a7, sp, 4 /* [(local1)] */ # 752: 7811 +.Lbr180: l32i a0, a5, 0 # 754: 0805 +.Lbr181: srli a4, a0, 6 # 756: 004641 + j .Lbr177 # 759: c6e8ff +.Lbr182: bnei a6, 64, .Lbr177 # 75c: 66d6a0 + bbsi a0, 7, .Lbr177 # 75f: 77e09d + movi a3, 0x00000800 # 762: 31cbff + extui a0, a0, 0, 6 # 765: 000054 + or a3, a4, a3 # 768: 303420 + slli a3, a3, 6 # 76b: a03311 + or a0, a0, a3 # 76e: 300020 + s32i a0, a5, 0 /* a0 -> [[arg0+0x20]] */ # 771: 0905 + j .Lbr181 # 773: c6f7ff + + .literal_position # 778: 04000000 + # 77c: 0c000000 + # 780: 00000000 + # 784: 00feef3f + # 788: 00000000 + # 78c: 00000000 + # 790: 14000000 + # 794: 00000000 + # 798: dc130000 + # 79c: 00000000 + # 7a0: 00000000 + # 7a4: 00000000 + # 7a8: 00000000 + # 7ac: 6c0a0000 + # 7b0: 00000000 + # 7b4: 00000000 + # 7b8: 00000000 + # 7bc: 00000000 + # 7c0: 00000000 + # 7c4: 00000000 + # 7c8: 00000000 + +# Function @ .irom0.text+0x7cc +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word[4] @ -0x10 + .balign 4 + .global ppTxPkt + .type ppTxPkt, @function +ppTxPkt: addi sp, sp, -32 /* (local0) */ # 7cc: 12c1e0 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 7cf: d921 + s32i a14, sp, 12 /* a14 -> [(local3)] */ # 7d1: e931 + s32i a15, sp, 16 /* a15 -> [(local4)] */ # 7d3: f941 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 7d5: 0901 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 7d7: c911 + l32i a0, a2, 32 /* [arg0+0x20] */ # 7d9: 0882 + mov a12, a2 /* arg0 */ # 7db: cd02 + l8ui a3, a0, 6 /* [[arg0+0x20]+0x6] */ # 7dd: 320006 + l8ui a2, a0, 4 /* [[arg0+0x20]+0x4] */ # 7e0: 220004 + extui a3, a3, 4, 3 # 7e3: 303424 + extui a2, a2, 0, 4 # 7e6: 202034 + beqz a2, .Lbr185 # 7e9: 9c52 + beqi a2, 3, .Lbr185 # 7eb: 263213 + blti a2, 3, .Lbr183 # 7ee: a63209 + movi a4, 1 /* 0x00000001 */ # 7f1: 0c14 + blti a2, 6, .Lbr184 # 7f3: a66206 + movi a4, 0 /* 0x00000000 */ # 7f6: 0c04 + j .Lbr184 # 7f8: 460000 +.Lbr183: movi a4, 3 /* 0x00000003 */ # 7fb: 0c34 +.Lbr184: mov a2, a4 # 7fd: 2d04 + j .Lbr186 # 7ff: 460000 +.Lbr185: movi a2, 2 /* 0x00000002 */ # 802: 0c22 +.Lbr186: beq a2, a3, .Lbr188 # 804: 371211 + movi a2, .Lstr001 # 807: 21dcff + movi a3, .Lstr002 # 80a: 31dcff + movi a4, 603 /* 0x0000025b */ # 80d: 42a25b + call0 printf # 810: 01e1ffc0 + # 814: 0000 +.Lbr187: j .Lbr187 /* (halt) */ # 816: 06ffff +.Lbr188: mov a2, a12 /* arg0 */ # 819: 2d0c + call0 .Lfunc013 # 81b: c5e7ff + mov a2, a12 /* arg0 */ # 81e: 2d0c + call0 .Lfunc019 # 820: 01deffc0 + # 824: 0000 + movi a15, -32 /* 0xffffffe0 */ # 826: 6c0f + movi a13, 0x3feffe00 # 828: d1d7ff + movi a14, NMIIrqIsOn # 82b: e1d5ff + addi a4, a2, -1 # 82e: 0b42 + beqz a4, .Lbr198 # 830: 169411 + l8ui a5, a14, 0 /* [NMIIrqIsOn] */ # 833: 520e00 + bnez a5, .Lbr190 # 836: dcc5 + call0 vPortEnterCritical # 838: 01d9ffc0 + # 83c: 0000 +.Lbr189: memw # 83e: c02000 + l32i a7, a13, 0x200 /* [0x3ff00000] */ # 841: 722d80 + and a7, a7, a15 # 844: f07710 + memw # 847: c02000 + s32i a7, a13, 0x200 /* a7 -> [0x3ff00000] */ # 84a: 726d80 + memw # 84d: c02000 + l32i a6, a13, 0x200 /* [0x3ff00000] */ # 850: 622d80 + bbsi a6, 0, .Lbr189 # 853: 07e6e7 +.Lbr190: l32i a2, a12, 24 /* [arg0+0x18] */ # 856: 286c + l32i a3, a12, 32 /* [arg0+0x20] */ # 858: 388c + call0 rcGetSched # 85a: 01d1ffc0 + # 85e: 0000 + l8ui a8, a14, 0 /* [NMIIrqIsOn] */ # 860: 820e00 + bnez a8, .Lbr191 # 863: dc88 + memw # 865: c02000 + l32i a9, a13, 0x200 /* [0x3ff00000] */ # 868: 922d80 + movi a10, 1 /* 0x00000001 */ # 86b: 0c1a + and a9, a9, a15 # 86d: f09910 + or a9, a9, a10 # 870: a09920 + memw # 873: c02000 + s32i a9, a13, 0x200 /* a9 -> [0x3ff00000] */ # 876: 926d80 + call0 vPortExitCritical # 879: 01caffc0 + # 87d: 0000 +.Lbr191: mov a2, a12 /* arg0 */ # 87f: 2d0c + call0 ppCalFrameTimes # 881: 01c9ffc0 + # 885: 0000 + mov a2, a12 /* arg0 */ # 887: 2d0c + call0 .Lfunc011 # 889: 01c8ffc0 + # 88d: 0000 + movi a5, 0 /* 0x00000000 */ # 88f: 0c05 + movi a4, NoiseTimerInterval # 891: 41bdff + bnez a2, .Lbr195 # 894: 56e207 + l8ui a10, a14, 0 /* [NMIIrqIsOn] */ # 897: a20e00 + bnez a10, .Lbr193 # 89a: ec1a + call0 vPortEnterCritical # 89c: 01c5ffc0 + # 8a0: 0000 +.Lbr192: memw # 8a2: c02000 + l32i a0, a13, 0x200 /* [0x3ff00000] */ # 8a5: 022d80 + and a0, a0, a15 # 8a8: f00010 + memw # 8ab: c02000 + s32i a0, a13, 0x200 /* a0 -> [0x3ff00000] */ # 8ae: 026d80 + memw # 8b1: c02000 + l32i a11, a13, 0x200 /* [0x3ff00000] */ # 8b4: b22d80 + bbsi a11, 0, .Lbr192 # 8b7: 07ebe7 + movi a4, NoiseTimerInterval # 8ba: 41b4ff + movi a5, 0 /* 0x00000000 */ # 8bd: 0c05 +.Lbr193: l32i a0, a12, 32 /* [arg0+0x20] */ # 8bf: 088c + s32i a5, a12, 28 /* 0x00000000 -> [arg0+0x1c] */ # 8c1: 597c + l8ui a8, a0, 0 /* [[arg0+0x20]] */ # 8c3: 820000 + l32i a6, a4, 12 /* [.Lrel114] */ # 8c6: 6834 + extui a8, a8, 2, 4 # 8c8: 808234 + slli a8, a8, 5 # 8cb: b08811 + add a8, a6, a8 # 8ce: 8a86 + l32i a8, a8, 28 # 8d0: 8878 + s32i a12, a8, 0 # 8d2: c908 + l8ui a7, a0, 0 /* [[arg0+0x20]] */ # 8d4: 720000 + addi a3, a12, 28 /* arg0+0x1c */ # 8d7: 32cc1c + extui a7, a7, 2, 4 # 8da: 707234 + slli a7, a7, 5 # 8dd: b07711 + add a6, a6, a7 # 8e0: 7a66 + s32i a3, a6, 28 # 8e2: 3976 + l8ui a2, a14, 0 /* [NMIIrqIsOn] */ # 8e4: 220e00 + bnez a2, .Lbr194 # 8e7: dca2 + memw # 8e9: c02000 + l32i a9, a13, 0x200 /* [0x3ff00000] */ # 8ec: 922d80 + movi a10, 1 /* 0x00000001 */ # 8ef: 0c1a + and a9, a9, a15 # 8f1: f09910 + or a9, a9, a10 # 8f4: a09920 + memw # 8f7: c02000 + s32i a9, a13, 0x200 /* a9 -> [0x3ff00000] */ # 8fa: 926d80 + call0 vPortExitCritical # 8fd: 01adffc0 + # 901: 0000 + l32i a0, a12, 32 /* [arg0+0x20] */ # 903: 088c +.Lbr194: l8ui a2, a0, 6 /* [[arg0+0x20]+0x6] */ # 905: 220006 + movi a3, 0 /* 0x00000000 */ # 908: 0c03 + extui a2, a2, 4, 3 # 90a: 202424 + call0 pp_post # 90d: 01aaffc0 + # 911: 0000 + j .Lbr202 # 913: 862000 +.Lbr195: bnei a2, 1, .Lbr197 # 916: 661227 + l32i a6, a12, 32 /* [arg0+0x20] */ # 919: 688c + s32i a5, a12, 28 /* 0x00000000 -> [arg0+0x1c] */ # 91b: 597c + l8ui a8, a6, 0 /* [[arg0+0x20]] */ # 91d: 820600 + l32i a7, a4, 12 /* [.Lrel114] */ # 920: 7834 + extui a8, a8, 1, 1 # 922: 808104 + addx8 a8, a8, a7 # 925: 7088b0 + l32i a8, a8, 0x11c # 928: 822847 + s32i a12, a8, 0 # 92b: c908 + l8ui a6, a6, 0 /* [[arg0+0x20]] */ # 92d: 620600 + addi a3, a12, 28 /* arg0+0x1c */ # 930: 32cc1c + extui a6, a6, 1, 1 # 933: 606104 + addx8 a6, a6, a7 # 936: 7066b0 + s32i a3, a6, 0x11c # 939: 326647 +.Lbr196: movi a2, 0 /* 0x00000000 */ # 93c: 0c02 + j .Lbr202 # 93e: c61500 +.Lbr197: bnei a2, 2, .Lbr196 # 941: 6622f7 + movi a2, .Lstr003 # 944: 2193ff + call0 printf # 947: 019dffc0 + # 94b: 0000 +.Lbr198: l8ui a9, a14, 0 /* [NMIIrqIsOn] */ # 94d: 920e00 + bnez a9, .Lbr200 # 950: dcc9 + call0 vPortEnterCritical # 952: 019bffc0 + # 956: 0000 +.Lbr199: memw # 958: c02000 + l32i a11, a13, 0x200 /* [0x3ff00000] */ # 95b: b22d80 + and a11, a11, a15 # 95e: f0bb10 + memw # 961: c02000 + s32i a11, a13, 0x200 /* a11 -> [0x3ff00000] */ # 964: b26d80 + memw # 967: c02000 + l32i a10, a13, 0x200 /* [0x3ff00000] */ # 96a: a22d80 + bbsi a10, 0, .Lbr199 # 96d: 07eae7 +.Lbr200: mov a2, a12 /* arg0 */ # 970: 2d0c + call0 ppDiscardMPDU # 972: 0194ffc0 + # 976: 0000 + l8ui a12, a14, 0 /* [NMIIrqIsOn] */ # 978: c20e00 + bnez a12, .Lbr201 # 97b: dc8c + memw # 97d: c02000 + l32i a14, a13, 0x200 /* [0x3ff00000] */ # 980: e22d80 + movi a0, 1 /* 0x00000001 */ # 983: 0c10 + and a14, a14, a15 # 985: f0ee10 + or a14, a14, a0 # 988: 00ee20 + memw # 98b: c02000 + s32i a14, a13, 0x200 /* a14 -> [0x3ff00000] */ # 98e: e26d80 + call0 vPortExitCritical # 991: 018dffc0 + # 995: 0000 +.Lbr201: movi a2, 1 /* 0x00000001 */ # 997: 0c12 +.Lbr202: l32i a12, sp, 4 /* [(local1)] */ # 999: c811 + l32i a13, sp, 8 /* [(local2)] */ # 99b: d821 + l32i a14, sp, 12 /* [(local3)] */ # 99d: e831 + l32i a15, sp, 16 /* [(local4)] */ # 99f: f841 + l32i a0, sp, 0 /* [(local0)] */ # 9a1: 0801 + addi sp, sp, 32 /* (top of frame) */ # 9a3: 12c120 + ret # 9a6: 0df0 + + .literal_position # 9a8: d0090000 + +# Function @ .irom0.text+0x9ac +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global ppProcessWaitQ + .type ppProcessWaitQ, @function +ppProcessWaitQ: + addi sp, sp, -16 /* (local0) */ # 9ac: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 9af: 0901 + call0 .Lfunc010 # 9b1: 01fdffc0 + # 9b5: 0000 + l32i a0, sp, 0 /* [(local0)] */ # 9b7: 0801 + addi sp, sp, 16 /* (top of frame) */ # 9b9: 12c110 + ret # 9bc: 0df0 + + .literal_position # 9c0: 00000000 + +# Function @ .irom0.text+0x9c4 + .balign 4 + .global ppRegisterTxCallback + .type ppRegisterTxCallback, @function +ppRegisterTxCallback: + movi a7, NoiseTimerInterval # 9c4: 71ffff + movi a8, 1 /* 0x00000001 */ # 9c7: 0c18 + l32i a7, a7, 12 /* [.Lrel114] */ # 9c9: 7837 + movi a6, 184 /* 0x000000b8 */ # 9cb: 62a0b8 + add a6, a7, a6 /* [.Lrel114]+0xb8 */ # 9ce: 6a67 + l8ui a5, a6, 128 /* [[.Lrel114]+0x138] */ # 9d0: 520680 + ssr a3 # 9d3: 000340 + sra a4, a5 # 9d6: 5040b1 + bbci a4, 0, .Lbr203 # 9d9: 076403 + mov a2, a8 /* 0x00000001 */ # 9dc: 2d08 + ret /* 0x00000001 */ # 9de: 0df0 +.Lbr203: ssl a3 # 9e0: 001340 + addx4 a9, a3, a7 # 9e3: 7093a0 + sll a10, a8 # 9e6: 00a8a1 + or a10, a5, a10 # 9e9: a0a520 + s8i a10, a6, 128 /* a10 -> [[.Lrel114]+0x138] */ # 9ec: a24680 + s32i a2, a9, 0x13c # 9ef: 22694f + movi a2, 0 /* 0x00000000 */ # 9f2: 0c02 + ret /* 0x00000000 */ # 9f4: 0df0 + + .literal_position # 9f8: 00000000 + # 9fc: 00000000 + # a00: 00000000 + # a04: 00000000 + +# Function @ .irom0.text+0xa08 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global ppRecycleRxPkt + .type ppRecycleRxPkt, @function +ppRecycleRxPkt: + addi sp, sp, -16 /* (local0) */ # a08: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # a0b: c911 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # a0d: 0901 + mov a12, a2 /* arg0 */ # a0f: cd02 + l32i a2, a2, 4 /* [arg0+0x4] */ # a11: 2812 + l32i a3, a12, 16 /* [arg0+0x10] */ # a13: 384c + s32i a3, a2, 4 /* [arg0+0x10] -> [[arg0+0x4]+0x4] */ # a15: 3912 + l32i a0, a12, 32 /* [arg0+0x20] */ # a17: 088c + l16ui a0, a0, 0 /* [[arg0+0x20]] */ # a19: 021000 + l16ui a4, a12, 12 /* [arg0+0xc] */ # a1c: 421c06 + extui a0, a0, 0, 12 # a1f: 0000b4 + bbsi a0, 4, .Lbr204 # a22: 47e00a + l32i a3, a12, 8 /* [arg0+0x8] */ # a25: 382c + call0 wDev_AppendRxBlocks # a27: 01f4ffc0 + # a2b: 0000 + j .Lbr205 # a2d: 060800 +.Lbr204: addi a3, a4, -1 /* [arg0+0xc]-0x1 */ # a30: 0b34 + extui a3, a3, 0, 16 # a32: 3030f4 + call0 lldesc_num2link # a35: 01f1ffc0 + # a39: 0000 + mov a3, a2 # a3b: 3d02 + l16ui a4, a12, 12 /* [arg0+0xc] */ # a3d: 421c06 + movi a5, 0 /* 0x00000000 */ # a40: 0c05 + addi a4, a4, -1 /* [arg0+0xc]-0x1 */ # a42: 0b44 + s32i a5, a2, 8 # a44: 5922 + l32i a2, a12, 4 /* [arg0+0x4] */ # a46: 281c + extui a4, a4, 0, 16 # a48: 4040f4 + call0 wDev_AppendRxBlocks # a4b: 01edffc0 + # a4f: 0000 +.Lbr205: mov a2, a12 /* arg0 */ # a51: 2d0c + movi a3, 7 /* 0x00000007 */ # a53: 0c73 + call0 esf_buf_recycle # a55: 01ebffc0 + # a59: 0000 + l32i a12, sp, 4 /* [(local1)] */ # a5b: c811 + l32i a0, sp, 0 /* [(local0)] */ # a5d: 0801 + addi sp, sp, 16 /* (top of frame) */ # a5f: 12c110 + ret # a62: 0df0 + + .literal_position # a64: 00000000 + # a68: 00feef3f + # a6c: 00000000 + # a70: 00000000 + # a74: 00000000 + # a78: 00000000 + # a7c: 00000000 + # a80: 00000000 + # a84: 00000000 + # a88: 00000000 + +# Function @ .irom0.text+0xa8c +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word @ -0x8 +# (local3): word @ -0x4 + .balign 4 + .global ppCheckTxIdle + .type ppCheckTxIdle, @function +ppCheckTxIdle: + addi sp, sp, -16 /* (local0) */ # a8c: 12c1f0 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # a8f: d921 + s32i a14, sp, 12 /* a14 -> [(local3)] */ # a91: e931 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # a93: c911 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # a95: 0901 + mov a12, a2 /* arg0 */ # a97: cd02 + movi a0, NMIIrqIsOn # a99: 01f2ff + movi a14, 0x3feffe00 # a9c: e1f3ff + beqz a2, .Lbr207 # a9f: ac32 + l8ui a3, a0, 0 /* [NMIIrqIsOn] */ # aa1: 320000 + bnez a3, .Lbr207 # aa4: dce3 + call0 vPortEnterCritical # aa6: 01f4ffc0 + # aaa: 0000 + movi a2, -32 /* 0xffffffe0 */ # aac: 6c02 +.Lbr206: memw # aae: c02000 + l32i a5, a14, 0x200 /* [0x3ff00000] */ # ab1: 522e80 + and a5, a5, a2 # ab4: 205510 + memw # ab7: c02000 + s32i a5, a14, 0x200 /* a5 -> [0x3ff00000] */ # aba: 526e80 + memw # abd: c02000 + l32i a4, a14, 0x200 /* [0x3ff00000] */ # ac0: 422e80 + bbsi a4, 0, .Lbr206 # ac3: 07e4e7 +.Lbr207: movi a13, 0 /* 0x00000000 */ # ac6: 0c0d +.Lbr208: mov a2, a13 # ac8: 2d0d + call0 lmacIsIdle # aca: 01ecffc0 + # ace: 0000 + beqz a2, .Lbr214 # ad0: 16e207 + addi a13, a13, 1 # ad3: 1bdd + extui a13, a13, 0, 8 # ad5: d0d074 + bnei a13, 4, .Lbr208 # ad8: 664dec + movi a13, NoiseTimerInterval # adb: d1e4ff +.Lbr209: l32i a0, a13, 12 /* [.Lrel114] */ # ade: 083d + l32i a6, a0, 0 /* [[.Lrel114]] */ # ae0: 6800 + neg a5, a6 # ae2: 605060 + and a5, a5, a6 # ae5: 605510 + nsau a5, a5 # ae8: 50f540 + neg a5, a5 # aeb: 505060 + addi a5, a5, 31 # aee: 52c51f + bltz a5, .Lbr217 # af1: 962509 + slli a2, a5, 5 # af4: b02511 + add a2, a0, a2 # af7: 2a20 + l32i a7, a2, 24 # af9: 7862 + bnez a7, .Lbr214 # afb: 563705 + l32i a3, a2, 44 # afe: 38b2 + l8ui a2, a2, 36 # b00: 220224 + bnez a3, .Lbr214 # b03: 56b304 + beqz a2, .Lbr212 # b06: 9c52 + beqi a2, 3, .Lbr212 # b08: 263213 + bltui a2, 3, .Lbr210 # b0b: b63209 + movi a4, 1 /* 0x00000001 */ # b0e: 0c14 + bltui a2, 6, .Lbr211 # b10: b66206 + movi a4, 0 /* 0x00000000 */ # b13: 0c04 + j .Lbr211 # b15: 460000 +.Lbr210: movi a4, 3 /* 0x00000003 */ # b18: 0c34 +.Lbr211: mov a6, a4 # b1a: 6d04 + j .Lbr213 # b1c: 460000 +.Lbr212: movi a6, 2 /* 0x00000002 */ # b1f: 0c26 +.Lbr213: movi a2, 8 /* 0x00000008 */ # b21: 0c82 + extui a8, a5, 0, 8 # b23: 508074 + extui a7, a6, 0, 8 # b26: 607074 + movi a5, 1 /* 0x00000001 */ # b29: 0c15 + ssl a8 # b2b: 001840 + addx4 a7, a7, a0 # b2e: 0077a0 + l32i a6, a7, 4 # b31: 6817 + movi a8, -1 /* 0xffffffff */ # b33: 7cf8 + sll a5, a5 # b35: 0055a1 + xor a5, a5, a8 # b38: 805530 + and a6, a6, a5 # b3b: 506610 + s32i a6, a7, 4 # b3e: 6917 + l32i a4, a0, 0 /* [[.Lrel114]] */ # b40: 4800 + movi a3, 0 /* 0x00000000 */ # b42: 0c03 + and a4, a4, a5 # b44: 504410 + s32i a4, a0, 0 /* a4 -> [[.Lrel114]] */ # b47: 4900 + call0 pp_post # b49: 01cdffc0 + # b4d: 0000 + j .Lbr209 # b4f: c6e2ff +.Lbr214: beqz a12, .Lbr215 # b52: ac2c + movi a9, NMIIrqIsOn # b54: 91c7ff + l8ui a9, a9, 0 /* [NMIIrqIsOn] */ # b57: 920900 + bnez a9, .Lbr215 # b5a: dca9 + memw # b5c: c02000 + l32i a10, a14, 0x200 /* [0x3ff00000] */ # b5f: a22e80 + movi a11, -32 /* 0xffffffe0 */ # b62: 6c0b + and a10, a10, a11 # b64: b0aa10 + movi a11, 1 /* 0x00000001 */ # b67: 0c1b + or a10, a10, a11 # b69: b0aa20 + memw # b6c: c02000 + s32i a10, a14, 0x200 /* a10 -> [0x3ff00000] */ # b6f: a26e80 + call0 vPortExitCritical # b72: 01c4ffc0 + # b76: 0000 +.Lbr215: movi a2, 1 /* 0x00000001 */ # b78: 0c12 +.Lbr216: l32i a12, sp, 4 /* [(local1)] */ # b7a: c811 + l32i a13, sp, 8 /* [(local2)] */ # b7c: d821 + l32i a14, sp, 12 /* [(local3)] */ # b7e: e831 + l32i a0, sp, 0 /* [(local0)] */ # b80: 0801 + addi sp, sp, 16 /* (top of frame) */ # b82: 12c110 + ret # b85: 0df0 +.Lbr217: l32i a13, a0, 24 /* [[.Lrel114]+0x18] */ # b87: d860 + bnez a13, .Lbr214 # b89: 565dfc + l32i a2, a0, 56 /* [[.Lrel114]+0x38] */ # b8c: 28e0 + bnez a2, .Lbr214 # b8e: 5602fc + l32i a3, a0, 0x118 /* [[.Lrel114]+0x118] */ # b91: 322046 + bnez a3, .Lbr214 # b94: 56a3fb + l32i a4, a0, 0x120 /* [[.Lrel114]+0x120] */ # b97: 422048 + bnez a4, .Lbr214 # b9a: 5644fb + beqz a12, .Lbr218 # b9d: ac2c + movi a5, NMIIrqIsOn # b9f: 51b5ff + l8ui a5, a5, 0 /* [NMIIrqIsOn] */ # ba2: 520500 + bnez a5, .Lbr218 # ba5: dca5 + memw # ba7: c02000 + l32i a6, a14, 0x200 /* [0x3ff00000] */ # baa: 622e80 + movi a7, -32 /* 0xffffffe0 */ # bad: 6c07 + and a6, a6, a7 # baf: 706610 + movi a7, 1 /* 0x00000001 */ # bb2: 0c17 + or a6, a6, a7 # bb4: 706620 + memw # bb7: c02000 + s32i a6, a14, 0x200 /* a6 -> [0x3ff00000] */ # bba: 626e80 + call0 vPortExitCritical # bbd: 01b2ffc0 + # bc1: 0000 +.Lbr218: movi a2, 0 /* 0x00000000 */ # bc3: 0c02 + j .Lbr216 # bc5: 46ecff + + .literal_position # bc8: 00000000 + # bcc: 00000000 + # bd0: 50030000 + # bd4: 50030000 + # bd8: 50030000 + # bdc: ffffff00 + # be0: ff0f00ff + # be4: 00000000 + # be8: 00000000 + # bec: 00000000 + # bf0: 00000000 + # bf4: 00000000 + # bf8: 00000000 + # bfc: 00000000 + +# Function @ .irom0.text+0xc00 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word @ -0x10 +# (local5): word @ -0xc +# (local6): word[2] @ -0x8 + .balign 4 +.Lfunc014: movi a9, 0 /* 0x00000000 */ # c00: 0c09 + addi sp, sp, -32 /* (local0) */ # c02: 12c1e0 + s32i a12, sp, 8 /* a12 -> [(local2)] */ # c05: c921 + s32i a13, sp, 12 /* a13 -> [(local3)] */ # c07: d931 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # c09: 0911 + s32i a14, sp, 16 /* a14 -> [(local4)] */ # c0b: e941 + s32i a15, sp, 20 /* a15 -> [(local5)] */ # c0d: f951 + s32i a9, sp, 24 /* 0x00000000 -> [(local6)] */ # c0f: 9961 + movi a15, -1 /* 0xffffffff */ # c11: 7cff + movi a14, 1 /* 0x00000001 */ # c13: 0c1e +.Lbr219: call0 .Lfunc017 # c15: 055400 + beqz a2, .Lbr232 # c18: 16b214 + movi a5, 184 /* 0x000000b8 */ # c1b: 52a0b8 + l32i a13, a2, 32 # c1e: d882 + movi a0, NoiseTimerInterval # c20: 01eaff + l8ui a13, a13, 14 # c23: d20d0e + s32i a2, sp, 0 /* a2 -> [(local0)] */ # c26: 2901 +.Lbr220: neg a12, a13 # c28: d0c060 + and a12, a12, a13 # c2b: d0cc10 + nsau a12, a12 # c2e: c0fc40 + neg a12, a12 # c31: c0c060 + addi a12, a12, 31 # c34: c2cc1f + bltz a12, .Lbr222 # c37: 96fc02 + l32i a6, a0, 12 /* [.Lrel114] */ # c3a: 6830 + add a3, a6, a5 /* [.Lrel114]+0xb8 */ # c3c: 5a36 + l8ui a3, a3, 128 /* [[.Lrel114]+0x138] */ # c3e: 320380 + ssr a12 # c41: 000c40 + srl a3, a3 # c44: 303091 + bbci a3, 0, .Lbr221 # c47: 076310 + addx4 a0, a12, a6 # c4a: 600ca0 + l32i a0, a0, 0x13c # c4d: 02204f + l32i a2, sp, 0 /* [(local0)] */ # c50: 2801 + callx0 a0 # c52: c00000 + movi a0, NoiseTimerInterval # c55: 01ddff + movi a5, 184 /* 0x000000b8 */ # c58: 52a0b8 +.Lbr221: ssl a12 # c5b: 001c40 + sll a3, a14 # c5e: 003ea1 + xor a3, a3, a15 # c61: f03330 + and a13, a13, a3 # c64: 30dd10 + j .Lbr220 # c67: 46efff +.Lbr222: l32i a5, sp, 0 /* [(local0)] */ # c6a: 5801 + l32i a5, a5, 32 /* [[(local0)]+0x20] */ # c6c: 5885 + l32i a4, a5, 0 /* [[[(local0)]+0x20]] */ # c6e: 4805 + l8ui a6, a5, 4 /* [[[(local0)]+0x20]+0x4] */ # c70: 620504 + srli a0, a4, 6 # c73: 400641 + bbsi a4, 28, .Lbr224 # c76: c7f434 + movi a5, .Ldata019 # c79: 51d5ff + movi a3, .Ldata019 # c7c: 31d7ff + l8ui a5, a5, 0 /* [.Ldata019] */ # c7f: 520500 + srli a6, a6, 4 # c82: 606441 + add a5, a5, a6 # c85: 6a55 + extui a5, a5, 0, 8 # c87: 505074 + bltui a5, 5, .Lbr223 # c8a: b6551d + movi a2, 1 /* 0x00000001 */ # c8d: 0c12 + movi a3, 0 /* 0x00000000 */ # c8f: 0c03 + movi a7, .Ldata019 # c91: 71d0ff + movi a6, 0 /* 0x00000000 */ # c94: 0c06 + s8i a6, a7, 0 /* 0x00 -> [.Ldata019] */ # c96: 624700 + call0 tx_pwctrl_background # c99: 01d5ffc0 + # c9d: 0000 + l32i a0, sp, 0 /* [(local0)] */ # c9f: 0801 + l32i a0, a0, 32 /* [[(local0)]+0x20] */ # ca1: 0880 + l32i a0, a0, 0 /* [[[(local0)]+0x20]] */ # ca3: 0800 + srli a0, a0, 6 # ca5: 000641 + j .Lbr224 # ca8: 860000 +.Lbr223: s8i a5, a3, 0 /* a5 -> [.Ldata019] */ # cab: 524300 +.Lbr224: bbci a0, 13, .Lbr225 # cae: d76019 + l32i a2, sp, 0 /* [(local0)] */ # cb1: 2801 + l32i a2, a2, 0 /* [[(local0)]] */ # cb3: 2802 + call0 pbuf_free # cb5: 01cfffc0 + # cb9: 0000 + l32i a0, sp, 0 /* [(local0)] */ # cbb: 0801 + l32i a0, a0, 32 /* [[(local0)]+0x20] */ # cbd: 0880 + movi a3, 1 /* 0x00000001 */ # cbf: 0c13 + l32i a0, a0, 0 /* [[[(local0)]+0x20]] */ # cc1: 0800 + s32i a3, sp, 24 /* 0x00000001 -> [(local6)] */ # cc3: 3961 + srli a0, a0, 6 # cc5: 000641 + j .Lbr228 # cc8: 860400 +.Lbr225: bbsi a0, 14, .Lbr226 # ccb: e7e002 + j .Lbr230 # cce: 062200 +.Lbr226: movi a3, 4 /* 0x00000004 */ # cd1: 0c43 + s32i a3, sp, 24 /* 0x00000004 -> [(local6)] */ # cd3: 3961 + j .Lbr228 # cd5: 460100 +.Lbr227: extui a4, a0, 21, 1 # cd8: 004505 + bnez a4, .Lbr219 # cdb: 5664f3 +.Lbr228: bbci a0, 23, .Lbr229 # cde: 77706b + l32i a7, sp, 0 /* [(local0)] */ # ce1: 7801 + l16ui a8, a7, 22 /* [[(local0)]+0x16] */ # ce3: 82170b + addi a8, a8, -4 /* [[(local0)]+0x16]-0x4 */ # ce6: 82c8fc + s16i a8, a7, 22 /* [[(local0)]+0x16]-0x4 -> [[(local0)]+0x16] */ # ce9: 82570b + l32i a7, a7, 8 /* [[(local0)]+0x8] */ # cec: 7827 + memw # cee: c02000 + l16ui a8, a7, 2 /* [[[(local0)]+0x8]+0x2] */ # cf1: 821701 + slli a8, a8, 16 # cf4: 008811 + memw # cf7: c02000 + l16ui a9, a7, 0 /* [[[(local0)]+0x8]] */ # cfa: 921700 + or a8, a8, a9 # cfd: 908820 + movi a9, 0x00ffffff # d00: 91b7ff + and a8, a8, a9 # d03: 908810 + srli a8, a8, 12 # d06: 808c41 + addi a8, a8, -4 # d09: 82c8fc + extui a8, a8, 0, 12 # d0c: 8080b4 + slli a8, a8, 12 # d0f: 408811 + memw # d12: c02000 + l16ui a6, a7, 2 /* [[[(local0)]+0x8]+0x2] */ # d15: 621701 + slli a6, a6, 16 # d18: 006611 + memw # d1b: c02000 + l16ui a9, a7, 0 /* [[[(local0)]+0x8]] */ # d1e: 921700 + or a6, a6, a9 # d21: 906620 + movi a9, 0xff000fff # d24: 91afff + and a6, a6, a9 # d27: 906610 + or a6, a6, a8 # d2a: 806620 + memw # d2d: c02000 + s16i a6, a7, 0 /* a6 -> [[[(local0)]+0x8]] */ # d30: 625700 + extui a6, a6, 16, 16 # d33: 6060f5 + memw # d36: c02000 + movi a5, PendFreeBcnEb # d39: 51aaff + s16i a6, a7, 2 /* a6 -> [[[(local0)]+0x8]+0x2] */ # d3c: 625701 + l8ui a5, a5, 0 /* [PendFreeBcnEb] */ # d3f: 520500 + beqz a5, .Lbr219 # d42: 16f5ec + movi a10, PendFreeBcnEb # d45: a1a8ff + movi a9, 0 /* 0x00000000 */ # d48: 0c09 + s8i a9, a10, 0 /* 0x00 -> [PendFreeBcnEb] */ # d4a: 924a00 +.Lbr229: l32i a2, sp, 0 /* [(local0)] */ # d4d: 2801 + l32i a3, sp, 24 /* [(local6)] */ # d4f: 3861 + call0 esf_buf_recycle # d51: 01a9ffc0 + # d55: 0000 + j .Lbr219 # d57: 86aeff +.Lbr230: bbsi a0, 15, .Lbr231 # d5a: f7e002 + j .Lbr227 # d5d: c6ddff +.Lbr231: movi a11, 5 /* 0x00000005 */ # d60: 0c5b + s32i a11, sp, 24 /* 0x00000005 -> [(local6)] */ # d62: b961 + j .Lbr228 # d64: 86ddff +.Lbr232: movi a2, 1 /* 0x00000001 */ # d67: 0c12 + call0 ppCheckTxIdle # d69: 050000 + movi a0, g_ic # d6c: 01a0ff + l32i a12, a0, 28 /* [g_ic+0x1c] */ # d6f: c870 + bbci a12, 14, .Lbr233 # d71: e76c09 + l32i a2, a0, 4 /* [g_ic+0x4] */ # d74: 2810 + addi a2, a2, 4 /* [g_ic+0x4]+0x4 */ # d76: 4b22 + call0 scan_connect_state # d78: 01a1ffc0 + # d7c: 0000 +.Lbr233: l32i a12, sp, 8 /* [(local2)] */ # d7e: c821 + l32i a13, sp, 12 /* [(local3)] */ # d80: d831 + l32i a14, sp, 16 /* [(local4)] */ # d82: e841 + l32i a15, sp, 20 /* [(local5)] */ # d84: f851 + l32i a0, sp, 4 /* [(local1)] */ # d86: 0811 + addi sp, sp, 32 /* (top of frame) */ # d88: 12c120 + ret # d8b: 0df0 + + .literal_position # d90: 00000000 + # d94: 00000000 + # d98: 00000000 + # d9c: 00000000 + # da0: b80e0000 + # da4: 00000000 + # da8: 00000000 + +# Function @ .irom0.text+0xdac +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word @ -0x8 +# (local3): word @ -0x4 + .balign 4 +.Lfunc015: addi sp, sp, -16 /* (local0) */ # dac: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # daf: c911 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # db1: d921 + s32i a14, sp, 12 /* a14 -> [(local3)] */ # db3: e931 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # db5: 0901 + movi a14, 245 /* 0x000000f5 */ # db7: e2a0f5 + j .Lbr235 # dba: 860000 +.Lbr234: call0 ppRecycleRxPkt # dbd: 050000 +.Lbr235: call0 .Lfunc018 # dc0: 054300 + mov a12, a2 # dc3: cd02 + beqz a2, .Lbr243 # dc5: 167208 + l32i a13, a2, 16 # dc8: d842 + l32i a6, a2, 4 # dca: 6812 + addi a5, a13, 12 # dcc: cb5d + s32i a5, a6, 4 # dce: 5916 + l8ui a0, a13, 8 # dd0: 020d08 + beqz a0, .Lbr236 # dd3: 8c10 + bne a0, a14, .Lbr234 # dd5: e790e4 +.Lbr236: mov a2, a12 # dd8: 2d0c + mov a3, a13 # dda: 3d0d + call0 .Lfunc016 # ddc: 01f1ffc0 + # de0: 0000 + bnez a2, .Lbr235 # de2: 56a2fd + l8ui a0, a13, 3 # de5: 020d03 + movi a9, g_ic+0x180 # de8: 91eaff + bbsi a0, 4, .Lbr237 # deb: 47e002 + bbci a0, 6, .Lbr238 # dee: 676004 +.Lbr237: srli a8, a0, 7 # df1: 008741 + beqz a8, .Lbr239 # df4: 8c48 +.Lbr238: l8ui a9, a9, 84 /* [g_ic+0x1d4] */ # df6: 920954 + bnei a9, 1, .Lbr240 # df9: 66191c +.Lbr239: mov a3, a12 # dfc: 3d0c + movi a5, 0 /* 0x00000000 */ # dfe: 0c05 + l32i a4, a12, 16 # e00: 484c + movi a2, g_ic # e02: 21e4ff + l8ui a4, a4, 0 # e05: 420400 + l32i a2, a2, 16 /* [g_ic+0x10] */ # e08: 2842 + slli a4, a4, 24 # e0a: 804401 + srai a4, a4, 24 # e0d: 404831 + call0 sta_input # e10: 01e5ffc0 + # e14: 0000 + l8ui a0, a13, 3 # e16: 020d03 +.Lbr240: bbsi a0, 5, .Lbr241 # e19: 57e005 + srli a3, a0, 7 # e1c: 003741 + beqz a3, .Lbr235 # e1f: 16d3f9 +.Lbr241: movi a4, TmpSTAAPCloseAP # e22: 41ddff + l8ui a4, a4, 0 /* [TmpSTAAPCloseAP] */ # e25: 420400 + bnei a4, 1, .Lbr242 # e28: 661407 + mov a2, a12 # e2b: 2d0c + call0 ppRecycleRxPkt # e2d: 050000 + j .Lbr235 # e30: 06e3ff +.Lbr242: mov a3, a12 # e33: 3d0c + movi a5, 0 /* 0x00000000 */ # e35: 0c05 + l32i a4, a12, 16 # e37: 484c + movi a2, g_ic # e39: 21d8ff + l8ui a4, a4, 0 # e3c: 420400 + l32i a2, a2, 20 /* [g_ic+0x14] */ # e3f: 2852 + slli a4, a4, 24 # e41: 804401 + srai a4, a4, 24 # e44: 404831 + call0 hostap_input # e47: 01d8ffc0 + # e4b: 0000 + j .Lbr235 # e4d: c6dbff +.Lbr243: l32i a12, sp, 4 /* [(local1)] */ # e50: c811 + l32i a13, sp, 8 /* [(local2)] */ # e52: d821 + l32i a14, sp, 12 /* [(local3)] */ # e54: e831 + l32i a0, sp, 0 /* [(local0)] */ # e56: 0801 + addi sp, sp, 16 /* (top of frame) */ # e58: 12c110 + ret # e5b: 0df0 + + .literal_position # e60: 00000000 + # e64: 00000000 + # e68: 00000000 + # e6c: 34000000 + # e70: 00000000 + # e74: 00000000 + # e78: 00000000 + # e7c: 00000000 + # e80: 00000000 + # e84: 00000000 + # e88: 00000000 + # e8c: 00000000 + # e90: 00000000 + # e94: 00000000 + # e98: 00000000 + # e9c: 00000000 + # ea0: 00000000 + # ea4: 00000000 + # ea8: 00000000 + # eac: 00000000 + # eb0: 00000000 + # eb4: 00000000 + +# Function @ .irom0.text+0xeb8 +# Local variables/stack: +# (local0): word @ -0x30 +# (local1): word @ -0x2c +# (local2): word @ -0x28 +# (local3): word @ -0x24 +# (local4): word @ -0x20 +# (local5): word @ -0x1c +# (local6): word @ -0x18 +# (local7): word @ -0x14 +# (local8): word @ -0x10 +# (local9): word[3] @ -0xc + .balign 4 +.Lfunc016: movi a5, 240 /* 0x000000f0 */ # eb8: 52a0f0 + addi sp, sp, -48 /* (local0) */ # ebb: 12c1d0 + s32i a12, sp, 16 /* a12 -> [(local4)] */ # ebe: c941 + s32i a2, sp, 36 /* arg0 -> [(local9)] */ # ec0: 2991 + s32i a0, sp, 12 /* a0 -> [(local3)] */ # ec2: 0931 + s32i a14, sp, 24 /* a14 -> [(local6)] */ # ec4: e961 + s32i a15, sp, 28 /* a15 -> [(local7)] */ # ec6: f971 + s32i a13, sp, 20 /* a13 -> [(local5)] */ # ec8: d951 + movi a15, 12 /* 0x0000000c */ # eca: 0ccf + mov a13, a3 /* arg1 */ # ecc: dd03 + l32i a14, a2, 4 /* [arg0+0x4] */ # ece: e812 + movi a0, NoiseTimerInterval # ed0: 01e4ff + l32i a14, a14, 4 /* [[arg0+0x4]+0x4] */ # ed3: e81e + l8ui a3, a0, 2 /* [.Ldata001] */ # ed5: 320002 + l8ui a4, a14, 0 /* [[[arg0+0x4]+0x4]] */ # ed8: 420e00 + slli a3, a3, 24 # edb: 803301 + and a15, a4, a15 # ede: f0f410 + srai a3, a3, 24 # ee1: 303831 + and a4, a4, a5 # ee4: 504410 + s32i a4, sp, 32 /* a4 -> [(local8)] */ # ee7: 4981 + blti a3, 1, .Lbr244 # ee9: a61310 + call0 read_hw_noisefloor # eec: 01e3ffc0 + # ef0: 0000 + movi a0, NoiseTimerInterval # ef2: 01dcff + addi a3, a2, 2 # ef5: 2b32 + srai a3, a3, 2 # ef7: 303221 + s8i a3, a0, 2 /* a3 -> [.Ldata001] */ # efa: 324002 +.Lbr244: s8i a3, a13, 11 /* a3 -> [arg1+0xb] */ # efd: 324d0b + l8ui a3, a13, 3 /* [arg1+0x3] */ # f00: 320d03 + bbsi a3, 4, .Lbr245 # f03: 47e305 + extui a4, a3, 6, 1 # f06: 304604 + beqz a4, .Lbr258 # f09: 161413 +.Lbr245: bbsi a3, 5, .Lbr246 # f0c: 57e309 + srli a6, a3, 7 # f0f: 306741 + bnez a6, .Lbr246 # f12: cc36 + movi a12, 0 /* 0x00000000 */ # f14: 0c0c + j .Lbr247 # f16: 460000 +.Lbr246: movi a12, 2 /* 0x00000002 */ # f19: 0c2c +.Lbr247: beqi a15, 8, .Lbr248 # f1b: 268f02 + j .Lbr251 # f1e: 862200 +.Lbr248: movi a3, .Ldata003 # f21: 31d1ff + l8ui a7, a3, 49 /* [.Ldata011] */ # f24: 720331 + bnei a7, 1, .Lbr249 # f27: 661704 + movi a8, 0 /* 0x00000000 */ # f2a: 0c08 + s8i a8, a3, 49 /* 0x00 -> [.Ldata011] */ # f2c: 824331 +.Lbr249: movi a2, .Ldata012 # f2f: 21cfff + call0 os_timer_disarm # f32: 01d2ffc0 + # f36: 0000 + call0 pm_is_waked # f38: 01d2ffc0 + # f3c: 0000 + beqz a2, .Lbr250 # f3e: 9cf2 + call0 pm_scan_unlocked # f40: 01d1ffc0 + # f44: 0000 + beqz a2, .Lbr250 # f46: 9c72 + movi a3, NoiseTimerInterval # f48: 31cbff + movi a5, .Ldata003 # f4b: 51c9ff + movi a4, 1 /* 0x00000001 */ # f4e: 0c14 + addi a2, a5, 52 /* .Ldata012 */ # f50: 22c534 + s8i a4, a5, 49 /* 0x01 -> [.Ldata011] */ # f53: 424531 + l16ui a3, a3, 8 /* [sleep_start_wait_time] */ # f56: 321304 + movi a4, 0 /* 0x00000000 */ # f59: 0c04 + call0 os_timer_arm # f5b: 01cbffc0 + # f5f: 0000 +.Lbr250: bgeui a12, 2, .Lbr253 # f61: f62c75 + mov a2, a12 # f64: 2d0c + addi a3, a14, 10 /* [[arg0+0x4]+0x4]+0xa */ # f66: ab3e + s32i a3, sp, 8 /* [[arg0+0x4]+0x4]+0xa -> [(local2)] */ # f68: 3921 + call0 rc_get_trc # f6a: 01c8ffc0 + # f6e: 0000 + l32i a6, sp, 36 /* [(local9)] */ # f70: 6891 + mov a3, a13 /* arg1 */ # f72: 3d0d + s32i a2, a6, 24 /* a2 -> [[(local9)]+0x18] */ # f74: 2966 + call0 rcUpdateRxDone # f76: 01c6ffc0 + # f7a: 0000 + l8ui a7, a13, 0 /* [arg1] */ # f7c: 720d00 + mov a2, a12 # f7f: 2d0c + addi a7, a7, 3 /* [arg1]+0x3 */ # f81: 3b77 + s8i a7, a13, 0 /* [arg1]+0x3 -> [arg1] */ # f83: 724d00 + call0 ic_is_pure_sta # f86: 01c3ffc0 + # f8a: 0000 + beqz a2, .Lbr257 # f8c: 167209 + bnez a15, .Lbr257 # f8f: 564f09 + mov a2, a14 /* [[arg0+0x4]+0x4] */ # f92: 2d0e + call0 .Lfunc001 # f94: 01c1ffc0 + # f98: 0000 + l8ui a8, a13, 1 /* [arg1+0x1] */ # f9a: 820d01 + srli a8, a8, 6 # f9d: 808641 + bnez a8, .Lbr254 # fa0: 567804 + l16ui a0, a13, 2 /* [arg1+0x2] */ # fa3: 021d01 + extui a0, a0, 0, 12 # fa6: 0000b4 + j .Lbr255 # fa9: 461300 +.Lbr251: bnez a15, .Lbr250 # fac: 561ffb + l32i a2, sp, 32 /* [(local8)] */ # faf: 2881 + bnei a2, 128, .Lbr250 # fb1: 66e2ac + mov a2, a14 /* [[arg0+0x4]+0x4] */ # fb4: 2d0e + call0 .Lfunc001 # fb6: 01b9ffc0 + # fba: 0000 + l8ui a3, a13, 1 /* [arg1+0x1] */ # fbc: 320d01 + s32i a2, sp, 4 /* a2 -> [(local1)] */ # fbf: 2911 + srli a3, a3, 6 # fc1: 303641 + bnez a3, .Lbr261 # fc4: 568308 + l16ui a4, a13, 2 /* [arg1+0x2] */ # fc7: 421d01 + extui a4, a4, 0, 12 # fca: 4040b4 + s32i a4, sp, 0 /* a4 -> [(local0)] */ # fcd: 4901 + j .Lbr262 # fcf: 862300 +.Lbr252: mov a2, a12 # fd2: 2d0c + call0 ic_get_ptk_alg # fd4: 01b3ffc0 + # fd8: 0000 +.Lbr253: movi a2, 0 /* 0x00000000 */ # fda: 0c02 + l32i a12, sp, 16 /* [(local4)] */ # fdc: c841 + l32i a13, sp, 20 /* [(local5)] */ # fde: d851 + l32i a14, sp, 24 /* [(local6)] */ # fe0: e861 + l32i a15, sp, 28 /* [(local7)] */ # fe2: f871 + l32i a0, sp, 12 /* [(local3)] */ # fe4: 0831 + addi sp, sp, 48 /* (top of frame) */ # fe6: 12c130 + ret /* 0x00000000 */ # fe9: 0df0 +.Lbr254: l16ui a0, a13, 6 /* [arg1+0x6] */ # feb: 021d03 + l16ui a3, a13, 4 /* [arg1+0x4] */ # fee: 321d02 + slli a0, a0, 16 # ff1: 000011 + or a0, a0, a3 # ff4: 300020 + extui a0, a0, 8, 16 # ff7: 0008f4 +.Lbr255: l32i a3, sp, 32 /* [(local8)] */ # ffa: 3881 + beqi a3, 16, .Lbr256 # ffc: 26b304 + movi a5, 48 /* 0x00000030 */ # fff: 3c05 + bne a3, a5, .Lbr257 # 1001: 579322 +.Lbr256: sub a3, a0, a2 # 1004: 2030c0 + addi a2, a14, 24 /* [[arg0+0x4]+0x4]+0x18 */ # 1007: 22ce18 + addi a3, a3, -4 # 100a: 32c3fc + extui a3, a3, 0, 16 # 100d: 3030f4 + add a3, a14, a3 # 1010: 3a3e + addi a3, a3, 24 # 1012: 32c318 + call0 pm_assoc_parse # 1015: 01a3ffc0 + # 1019: 0000 + beqz a2, .Lbr257 # 101b: 8c82 + mov a2, a12 # 101d: 2d0c + l32i a3, sp, 8 /* [(local2)] */ # 101f: 3821 + call0 pm_set_addr # 1021: 01a1ffc0 + # 1025: 0000 +.Lbr257: l8ui a4, a14, 1 /* [[[arg0+0x4]+0x4]+0x1] */ # 1027: 420e01 + l8ui a5, a14, 4 /* [[[arg0+0x4]+0x4]+0x4] */ # 102a: 520e04 + bbci a4, 6, .Lbr253 # 102d: 6764a9 + bbci a5, 0, .Lbr252 # 1030: 07659e + mov a2, a12 # 1033: 2d0c + call0 ic_get_gtk_alg # 1035: 019dffc0 + # 1039: 0000 + j .Lbr253 # 103b: c6e6ff +.Lbr258: bbsi a3, 5, .Lbr259 # 103e: 57e304 + srli a6, a3, 7 # 1041: 306741 + beqz a6, .Lbr260 # 1044: 8c36 +.Lbr259: movi a12, 1 /* 0x00000001 */ # 1046: 0c1c + j .Lbr247 # 1048: c6b3ff +.Lbr260: movi a12, 2 /* 0x00000002 */ # 104b: 0c2c + j .Lbr247 # 104d: 86b2ff +.Lbr261: l16ui a7, a13, 6 /* [arg1+0x6] */ # 1050: 721d03 + l16ui a8, a13, 4 /* [arg1+0x4] */ # 1053: 821d02 + slli a7, a7, 16 # 1056: 007711 + or a7, a7, a8 # 1059: 807720 + extui a7, a7, 8, 16 # 105c: 7078f4 + s32i a7, sp, 0 /* a7 -> [(local0)] */ # 105f: 7901 +.Lbr262: addi a2, a14, 10 /* [[arg0+0x4]+0x4]+0xa */ # 1061: ab2e + call0 pm_sleep_for # 1063: 0193ffc0 + # 1067: 0000 + beqz a2, .Lbr250 # 1069: 1642ef + l32i a2, sp, 36 /* [(local9)] */ # 106c: 2891 + l32i a5, sp, 4 /* [(local1)] */ # 106e: 5811 + l32i a4, sp, 0 /* [(local0)] */ # 1070: 4801 + addi a3, a14, 24 /* [[arg0+0x4]+0x4]+0x18 */ # 1072: 32ce18 + sub a4, a4, a5 # 1075: 5044c0 + addi a4, a4, -4 # 1078: 42c4fc + extui a4, a4, 0, 16 # 107b: 4040f4 + add a4, a14, a4 # 107e: 4a4e + addi a4, a4, 24 # 1080: 42c418 + call0 pm_onBcnRx # 1083: 018cffc0 + # 1087: 0000 + j .Lbr250 # 1089: 06b5ff + + .literal_position # 108c: 00000000 + # 1090: 00000000 + # 1094: 00feef3f + # 1098: 00000000 + # 109c: 00000000 + # 10a0: 00feef3f + # 10a4: 00000000 + # 10a8: 00000000 + +# Function @ .irom0.text+0x10ac +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 + .global ppGetTxQFirstAvail_Locked + .type ppGetTxQFirstAvail_Locked, @function +ppGetTxQFirstAvail_Locked: + addi sp, sp, -16 /* (local0) */ # 10ac: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 10af: 0901 + bgeui a2, 8, .Lbr265 # 10b1: f68275 + movi a7, NoiseTimerInterval # 10b4: 71f6ff + l32i a0, a7, 12 /* [.Lrel114] */ # 10b7: 0837 + slli a5, a2, 5 # 10b9: b05211 + add a0, a0, a5 # 10bc: 5a00 + l8ui a3, a0, 39 # 10be: 320027 + bnez a3, .Lbr265 # 10c1: 565306 + movi a4, NMIIrqIsOn # 10c4: 41f3ff + l8ui a4, a4, 0 /* [NMIIrqIsOn] */ # 10c7: 420400 + s32i a5, sp, 4 /* a5 -> [(local1)] */ # 10ca: 5911 + bnez a4, .Lbr264 # 10cc: fc04 + call0 vPortEnterCritical # 10ce: 01f5ffc0 + # 10d2: 0000 + movi a2, 0x3feffe00 # 10d4: 21f0ff + movi a6, -32 /* 0xffffffe0 */ # 10d7: 6c06 + movi a5, NoiseTimerInterval # 10d9: 51efff + l32i a7, sp, 4 /* [(local1)] */ # 10dc: 7811 +.Lbr263: memw # 10de: c02000 + l32i a9, a2, 0x200 /* [0x3ff00000] */ # 10e1: 922280 + and a9, a9, a6 # 10e4: 609910 + memw # 10e7: c02000 + s32i a9, a2, 0x200 /* a9 -> [0x3ff00000] */ # 10ea: 926280 + memw # 10ed: c02000 + l32i a8, a2, 0x200 /* [0x3ff00000] */ # 10f0: 822280 + bbsi a8, 0, .Lbr263 # 10f3: 07e8e7 + movi a4, NMIIrqIsOn # 10f6: 41e9ff + l32i a0, a5, 12 /* [.Lrel114] */ # 10f9: 0835 + l8ui a4, a4, 0 /* [NMIIrqIsOn] */ # 10fb: 420400 + add a0, a0, a7 # 10fe: 7a00 +.Lbr264: l32i a0, a0, 24 # 1100: 0860 + s32i a0, sp, 8 /* a0 -> [(local2)] */ # 1102: 0921 + bnez a4, .Lbr266 # 1104: ec44 + memw # 1106: c02000 + movi a6, 0x3feffe00 # 1109: 61e5ff + l32i a5, a6, 0x200 /* [0x3ff00000] */ # 110c: 522680 + movi a7, -32 /* 0xffffffe0 */ # 110f: 6c07 + and a5, a5, a7 # 1111: 705510 + movi a7, 1 /* 0x00000001 */ # 1114: 0c17 + or a5, a5, a7 # 1116: 705520 + memw # 1119: c02000 + s32i a5, a6, 0x200 /* a5 -> [0x3ff00000] */ # 111c: 526680 + call0 vPortExitCritical # 111f: 01e2ffc0 + # 1123: 0000 + l32i a0, sp, 8 /* [(local2)] */ # 1125: 0821 + j .Lbr266 # 1127: 460000 +.Lbr265: movi a0, 0 /* 0x00000000 */ # 112a: 0c00 +.Lbr266: beqz a0, .Lbr267 # 112c: 8c70 + l32i a8, a0, 32 # 112e: 8880 + l32i a8, a8, 0 # 1130: 8808 + bbci a8, 24, .Lbr267 # 1132: 877801 + movi a0, 0 /* 0x00000000 */ # 1135: 0c00 +.Lbr267: mov a2, a0 # 1137: 2d00 + l32i a0, sp, 0 /* [(local0)] */ # 1139: 0801 + addi sp, sp, 16 /* (top of frame) */ # 113b: 12c110 + ret # 113e: 0df0 + + .literal_position # 1140: 00000000 + # 1144: 00feef3f + # 1148: 00000000 + # 114c: 00000000 + # 1150: 00000000 + # 1154: 00000000 + +# Function @ .irom0.text+0x1158 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 +.Lfunc017: movi a4, -32 /* 0xffffffe0 */ # 1158: 6c04 + movi a2, NMIIrqIsOn # 115a: 21f9ff + addi sp, sp, -16 /* (local0) */ # 115d: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 1160: c911 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1162: 0901 + l8ui a0, a2, 0 /* [NMIIrqIsOn] */ # 1164: 020200 + movi a12, 0x3feffe00 # 1167: c1f7ff + bnez a0, .Lbr269 # 116a: ec10 + call0 vPortEnterCritical # 116c: 01f9ffc0 + # 1170: 0000 + movi a4, -32 /* 0xffffffe0 */ # 1172: 6c04 +.Lbr268: memw # 1174: c02000 + l32i a5, a12, 0x200 /* [0x3ff00000] */ # 1177: 522c80 + and a5, a5, a4 # 117a: 405510 + memw # 117d: c02000 + s32i a5, a12, 0x200 /* a5 -> [0x3ff00000] */ # 1180: 526c80 + memw # 1183: c02000 + l32i a3, a12, 0x200 /* [0x3ff00000] */ # 1186: 322c80 + bbsi a3, 0, .Lbr268 # 1189: 07e3e7 + movi a2, NMIIrqIsOn # 118c: 21efff +.Lbr269: movi a5, NoiseTimerInterval # 118f: 51efff + l32i a5, a5, 12 /* [.Lrel114] */ # 1192: 5835 + l32i a0, a5, 0x128 /* [[.Lrel114]+0x128] */ # 1194: 02254a + s32i a0, sp, 8 /* [[.Lrel114]+0x128] -> [(local2)] */ # 1197: 0921 + beqz a0, .Lbr271 # 1199: 9c10 + movi a8, 0 /* 0x00000000 */ # 119b: 0c08 + l32i a6, a0, 28 /* [[[.Lrel114]+0x128]+0x1c] */ # 119d: 6870 + s32i a6, a5, 0x128 /* [[[.Lrel114]+0x128]+0x1c] -> [[.Lrel114]+0x128] */ # 119f: 62654a + bnez a6, .Lbr270 # 11a2: cc66 + movi a7, 296 /* 0x00000128 */ # 11a4: 72a128 + add a7, a5, a7 /* [.Lrel114]+0x128 */ # 11a7: 7a75 + s32i a7, a5, 0x12c /* [.Lrel114]+0x128 -> [[.Lrel114]+0x12c] */ # 11a9: 72654b +.Lbr270: s32i a8, a0, 28 /* 0x00000000 -> [[[.Lrel114]+0x128]+0x1c] */ # 11ac: 8970 +.Lbr271: l8ui a9, a2, 0 /* [NMIIrqIsOn] */ # 11ae: 920200 + bnez a9, .Lbr272 # 11b1: dca9 + memw # 11b3: c02000 + l32i a10, a12, 0x200 /* [0x3ff00000] */ # 11b6: a22c80 + movi a11, 1 /* 0x00000001 */ # 11b9: 0c1b + and a10, a10, a4 # 11bb: 40aa10 + or a10, a10, a11 # 11be: b0aa20 + memw # 11c1: c02000 + s32i a10, a12, 0x200 /* a10 -> [0x3ff00000] */ # 11c4: a26c80 + call0 vPortExitCritical # 11c7: 01e3ffc0 + # 11cb: 0000 + l32i a0, sp, 8 /* [(local2)] */ # 11cd: 0821 +.Lbr272: l32i a12, sp, 4 /* [(local1)] */ # 11cf: c811 + mov a2, a0 # 11d1: 2d00 + l32i a0, sp, 0 /* [(local0)] */ # 11d3: 0801 + addi sp, sp, 16 /* (top of frame) */ # 11d5: 12c110 + ret # 11d8: 0df0 + + .literal_position # 11dc: 00000000 + # 11e0: 00feef3f + # 11e4: 00000000 + # 11e8: 00000000 + # 11ec: 00000000 + # 11f0: 00000000 + +# Function @ .irom0.text+0x11f4 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 +.Lfunc018: movi a4, -32 /* 0xffffffe0 */ # 11f4: 6c04 + movi a2, NMIIrqIsOn # 11f6: 21f9ff + addi sp, sp, -16 /* (local0) */ # 11f9: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 11fc: c911 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 11fe: 0901 + l8ui a0, a2, 0 /* [NMIIrqIsOn] */ # 1200: 020200 + movi a12, 0x3feffe00 # 1203: c1f7ff + bnez a0, .Lbr274 # 1206: ec10 + call0 vPortEnterCritical # 1208: 01f9ffc0 + # 120c: 0000 + movi a4, -32 /* 0xffffffe0 */ # 120e: 6c04 +.Lbr273: memw # 1210: c02000 + l32i a5, a12, 0x200 /* [0x3ff00000] */ # 1213: 522c80 + and a5, a5, a4 # 1216: 405510 + memw # 1219: c02000 + s32i a5, a12, 0x200 /* a5 -> [0x3ff00000] */ # 121c: 526c80 + memw # 121f: c02000 + l32i a3, a12, 0x200 /* [0x3ff00000] */ # 1222: 322c80 + bbsi a3, 0, .Lbr273 # 1225: 07e3e7 + movi a2, NMIIrqIsOn # 1228: 21efff +.Lbr274: movi a5, NoiseTimerInterval # 122b: 51efff + l32i a5, a5, 12 /* [.Lrel114] */ # 122e: 5835 + l32i a0, a5, 0x130 /* [[.Lrel114]+0x130] */ # 1230: 02254c + s32i a0, sp, 8 /* [[.Lrel114]+0x130] -> [(local2)] */ # 1233: 0921 + beqz a0, .Lbr276 # 1235: 9c10 + movi a8, 0 /* 0x00000000 */ # 1237: 0c08 + l32i a6, a0, 28 /* [[[.Lrel114]+0x130]+0x1c] */ # 1239: 6870 + s32i a6, a5, 0x130 /* [[[.Lrel114]+0x130]+0x1c] -> [[.Lrel114]+0x130] */ # 123b: 62654c + bnez a6, .Lbr275 # 123e: cc66 + movi a7, 304 /* 0x00000130 */ # 1240: 72a130 + add a7, a5, a7 /* [.Lrel114]+0x130 */ # 1243: 7a75 + s32i a7, a5, 0x134 /* [.Lrel114]+0x130 -> [[.Lrel114]+0x134] */ # 1245: 72654d +.Lbr275: s32i a8, a0, 28 /* 0x00000000 -> [[[.Lrel114]+0x130]+0x1c] */ # 1248: 8970 +.Lbr276: l8ui a9, a2, 0 /* [NMIIrqIsOn] */ # 124a: 920200 + bnez a9, .Lbr277 # 124d: dca9 + memw # 124f: c02000 + l32i a10, a12, 0x200 /* [0x3ff00000] */ # 1252: a22c80 + movi a11, 1 /* 0x00000001 */ # 1255: 0c1b + and a10, a10, a4 # 1257: 40aa10 + or a10, a10, a11 # 125a: b0aa20 + memw # 125d: c02000 + s32i a10, a12, 0x200 /* a10 -> [0x3ff00000] */ # 1260: a26c80 + call0 vPortExitCritical # 1263: 01e3ffc0 + # 1267: 0000 + l32i a0, sp, 8 /* [(local2)] */ # 1269: 0821 +.Lbr277: l32i a12, sp, 4 /* [(local1)] */ # 126b: c811 + mov a2, a0 # 126d: 2d00 + l32i a0, sp, 0 /* [(local0)] */ # 126f: 0801 + addi sp, sp, 16 /* (top of frame) */ # 1271: 12c110 + ret # 1274: 0df0 + + .literal_position # 1278: 00000000 + # 127c: 03080000 + # 1280: 000e0060 + # 1284: 00000000 + # 1288: 20000000 + # 128c: 28000000 + # 1290: 0c000000 + # 1294: 00000000 + # 1298: 00000000 + # 129c: 10270000 + # 12a0: c0270900 + # 12a4: 00000000 + # 12a8: 00000000 + # 12ac: 00000000 + # 12b0: 00000000 + # 12b4: 00000000 + +# Function @ .irom0.text+0x12b8 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word[3] @ -0x1c +# (local2): word @ -0x10 +# (local3): word[3] @ -0xc + .balign 4 + .global pp_attach + .type pp_attach, @function +pp_attach: movi a4, 0 /* 0x00000000 */ # 12b8: 0c04 + movi a6, 1 /* 0x00000001 */ # 12ba: 0c16 + addi sp, sp, -32 /* (local0) */ # 12bc: 12c1e0 + movi a3, NoiseTimerInterval # 12bf: 31eeff + s32i a0, sp, 20 /* a0 -> [(local3)] */ # 12c2: 0951 + movi a0, 0 /* 0x00000000 */ # 12c4: 0c00 + l32i a3, a3, 12 /* [.Lrel114] */ # 12c6: 3833 +.Lbr278: slli a2, a0, 5 # 12c8: b02011 + addi a0, a0, 1 # 12cb: 1b00 + add a2, a3, a2 # 12cd: 2a23 + s32i a4, a2, 24 # 12cf: 4962 + s8i a4, a2, 39 # 12d1: 424227 + extui a0, a0, 0, 8 # 12d4: 000074 + addi a5, a2, 24 # 12d7: 52c218 + s32i a5, a2, 28 # 12da: 5972 + bnei a0, 8, .Lbr278 # 12dc: 6680e8 + movi a0, 0 /* 0x00000000 */ # 12df: 0c00 + movi a5, 7 /* 0x00000007 */ # 12e1: 0c75 +.Lbr279: slli a2, a0, 5 # 12e3: b02011 + addi a0, a0, 1 # 12e6: 1b00 + add a2, a3, a2 # 12e8: 2a23 + s8i a6, a2, 39 # 12ea: 624227 + s8i a5, a2, 36 # 12ed: 524224 + extui a0, a0, 0, 8 # 12f0: 000074 + bnei a0, 2, .Lbr279 # 12f3: 6620ec + s32i a4, a3, 0 /* 0x00000000 -> [[.Lrel114]] */ # 12f6: 4903 + movi a0, 0 /* 0x00000000 */ # 12f8: 0c00 +.Lbr280: addx2 a6, a0, a0 # 12fa: 006090 + addx4 a5, a0, a3 # 12fd: 3050a0 + s32i a4, a5, 4 # 1300: 4915 + slli a6, a6, 1 # 1302: f06611 + add a5, a0, a3 # 1305: 3a50 + addi a2, a6, 3 # 1307: 3b26 + movgez a2, a6, a6 # 1309: 6026b3 + addi a0, a0, 1 # 130c: 1b00 + extui a0, a0, 0, 8 # 130e: 000074 + srai a2, a2, 2 # 1311: 202221 + addi a2, a2, 2 # 1314: 2b22 + s8i a2, a5, 20 # 1316: 224514 + bnei a0, 4, .Lbr280 # 1319: 6640dd + movi a0, 0 /* 0x00000000 */ # 131c: 0c00 + movi a6, 280 /* 0x00000118 */ # 131e: 62a118 +.Lbr281: addx8 a2, a0, a3 # 1321: 3020b0 + s32i a4, a2, 0x118 # 1324: 426246 + addi a0, a0, 1 # 1327: 1b00 + add a5, a2, a6 # 1329: 6a52 + s32i a5, a2, 0x11c # 132b: 526247 + extui a0, a0, 0, 8 # 132e: 000074 + bnei a0, 2, .Lbr281 # 1331: 6620ec + s32i a4, a3, 0x130 /* 0x00000000 -> [[.Lrel114]+0x130] */ # 1334: 42634c + s32i a4, a3, 0x128 /* 0x00000000 -> [[.Lrel114]+0x128] */ # 1337: 42634a + movi a9, 304 /* 0x00000130 */ # 133a: 92a130 + movi a8, 296 /* 0x00000128 */ # 133d: 82a128 + add a8, a3, a8 /* [.Lrel114]+0x128 */ # 1340: 8a83 + add a9, a3, a9 /* [.Lrel114]+0x130 */ # 1342: 9a93 + s32i a9, a3, 0x134 /* [.Lrel114]+0x130 -> [[.Lrel114]+0x134] */ # 1344: 92634d + s32i a8, a3, 0x12c /* [.Lrel114]+0x128 -> [[.Lrel114]+0x12c] */ # 1347: 82634b + movi a6, 0x00000803 # 134a: 61ccff + movi a7, 0x60000e00 # 134d: 71ccff + memw # 1350: c02000 + s32i a6, a7, 0x3f8 /* 0x00000803 -> [0x600011f8] */ # 1353: 6267fe + call0 esf_buf_setup # 1356: 01d4ffc0 + # 135a: 0000 + movi a2, ppTask # 135c: 21caff + movi a3, .Lstr004 # 135f: 31caff + movi a4, 512 /* 0x00000200 */ # 1362: 42a200 + movi a5, 0 /* 0x00000000 */ # 1365: 0c05 + movi a6, 14 /* 0x0000000e */ # 1367: 0ce6 + addi a7, sp, 16 /* (local2) */ # 1369: 72c110 + movi a10, 0 /* 0x00000000 */ # 136c: 0c0a + s32i a10, sp, 0 /* 0x00000000 -> [(local0)] */ # 136e: a901 + s32i a10, sp, 4 /* 0x00000000 -> [(local1)] */ # 1370: a911 + call0 xTaskGenericCreate # 1372: 01ceffc0 + # 1376: 0000 + movi a2, .Lstr005 # 1378: 21c5ff + l32i a3, sp, 16 /* [(local2)] */ # 137b: 3841 + movi a4, 14 /* 0x0000000e */ # 137d: 0ce4 + movi a5, 512 /* 0x00000200 */ # 137f: 52a200 + call0 printf # 1382: 01cbffc0 + # 1386: 0000 + movi a2, .Ldata008 # 1388: 21c2ff + movi a3, pp_noise_test # 138b: 31c2ff + movi a4, 0 /* 0x00000000 */ # 138e: 0c04 + movi a0, NoiseTimerInterval # 1390: 01c5ff + movi a6, chip6_phy_init_ctrl # 1393: 61c1ff + movi a5, 0x00002710 # 1396: 51c1ff + l8ui a6, a6, 106 /* [chip6_phy_init_ctrl+0x6a] */ # 1399: 62066a + movi a11, 0x000927c0 # 139c: b1c1ff + mul16u a5, a6, a5 # 139f: 5056c1 + movnez a11, a5, a6 # 13a2: 60b593 + s32i a11, a0, 4 /* a11 -> [.Ldata002] */ # 13a5: b910 + call0 os_timer_setfn # 13a7: 01c3ffc0 + # 13ab: 0000 + call0 pp_enable_noise_timer # 13ad: 050000 + l32i a0, sp, 20 /* [(local3)] */ # 13b0: 0851 + addi sp, sp, 32 /* (top of frame) */ # 13b2: 12c120 + ret # 13b5: 0df0 + + .literal_position # 13b8: ffffff00 + # 13bc: ff0f00ff + # 13c0: 04000000 + # 13c4: 0c000000 + # 13c8: 1b0a0000 + # 13cc: fcff0000 + # 13d0: 00f00000 + # 13d4: 0ff80000 + # 13d8: 00000000 + +# Function @ .irom0.text+0x13dc +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 +.Lfunc019: addi sp, sp, -16 /* (local0) */ # 13dc: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 13df: 0901 + l32i a0, a2, 32 /* [arg0+0x20] */ # 13e1: 0882 + l32i a5, a2, 24 /* [arg0+0x18] */ # 13e3: 5862 + l8ui a0, a0, 13 /* [[arg0+0x20]+0xd] */ # 13e5: 02000d + l16ui a10, a2, 22 /* [arg0+0x16] */ # 13e8: a2120b + extui a0, a0, 0, 4 # 13eb: 000034 + beqz a0, .Lbr282 # 13ee: 8cd0 + beqi a0, 1, .Lbr283 # 13f0: 261010 + addi a3, a0, -2 # 13f3: 32c0fe + beqz a3, .Lbr290 # 13f6: 16830c + addi a4, a0, -3 # 13f9: 42c0fd + beqz a4, .Lbr294 # 13fc: 168412 +.Lbr282: movi a0, 4 /* 0x00000004 */ # 13ff: 0c40 + j .Lbr284 # 1401: 460000 +.Lbr283: movi a0, 8 /* 0x00000008 */ # 1404: 0c80 +.Lbr284: add a10, a10, a0 # 1406: 0aaa + s16i a10, a2, 22 /* a10 -> [arg0+0x16] */ # 1408: a2520b + movi a11, 0x00ffffff # 140b: b1ebff + l32i a8, a2, 8 /* [arg0+0x8] */ # 140e: 8822 + memw # 1410: c02000 + l16ui a9, a8, 2 /* [[arg0+0x8]+0x2] */ # 1413: 921801 + slli a9, a9, 16 # 1416: 009911 + memw # 1419: c02000 + l16ui a3, a8, 0 /* [[arg0+0x8]] */ # 141c: 321800 + movi a10, 0xff000fff # 141f: a1e7ff + or a9, a9, a3 # 1422: 309920 + and a9, a9, a11 # 1425: b09910 + srli a9, a9, 12 # 1428: 909c41 + add a9, a9, a0 # 142b: 0a99 + extui a9, a9, 0, 12 # 142d: 9090b4 + slli a9, a9, 12 # 1430: 409911 + memw # 1433: c02000 + l16ui a7, a8, 2 /* [[arg0+0x8]+0x2] */ # 1436: 721801 + slli a7, a7, 16 # 1439: 007711 + memw # 143c: c02000 + l16ui a11, a8, 0 /* [[arg0+0x8]] */ # 143f: b21800 + or a7, a7, a11 # 1442: b07720 + and a7, a7, a10 # 1445: a07710 + or a7, a7, a9 # 1448: 907720 + memw # 144b: c02000 + s16i a7, a8, 0 /* a7 -> [[arg0+0x8]] */ # 144e: 725800 + extui a7, a7, 16, 16 # 1451: 7070f5 + memw # 1454: c02000 + l32i a6, a2, 32 /* [arg0+0x20] */ # 1457: 6882 + movi a3, 64 /* 0x00000040 */ # 1459: 4c03 + l32i a6, a6, 0 /* [[arg0+0x20]] */ # 145b: 6806 + s16i a7, a8, 2 /* a7 -> [[arg0+0x8]+0x2] */ # 145d: 725801 + bbci a6, 24, .Lbr285 # 1460: 877606 + bnez a5, .Lbr288 # 1463: ec35 + movi a2, 1 /* 0x00000001 */ # 1465: 0c12 + j .Lbr287 # 1467: 060600 +.Lbr285: movi a4, 191 /* 0x000000bf */ # 146a: 42a0bf + l32i a0, a2, 8 /* [arg0+0x8] */ # 146d: 0822 + memw # 146f: c02000 + l8ui a11, a0, 3 /* [[arg0+0x8]+0x3] */ # 1472: b20003 + and a11, a11, a4 # 1475: 40bb10 + or a11, a11, a3 # 1478: 30bb20 + memw # 147b: c02000 + s8i a11, a0, 3 /* a11 -> [[arg0+0x8]+0x3] */ # 147e: b24003 +.Lbr286: movi a2, 0 /* 0x00000000 */ # 1481: 0c02 +.Lbr287: l32i a0, sp, 0 /* [(local0)] */ # 1483: 0801 + addi sp, sp, 16 /* (top of frame) */ # 1485: 12c110 + ret # 1488: 0df0 +.Lbr288: movi a6, 32 /* 0x00000020 */ # 148a: 2c06 + movi a7, 223 /* 0x000000df */ # 148c: 72a0df + l32i a4, a2, 4 /* [arg0+0x4] */ # 148f: 4812 + memw # 1491: c02000 + l8ui a3, a4, 3 /* [[arg0+0x4]+0x3] */ # 1494: 320403 + and a3, a3, a7 # 1497: 703310 + or a3, a3, a6 # 149a: 603320 + memw # 149d: c02000 + s8i a3, a4, 3 /* a3 -> [[arg0+0x4]+0x3] */ # 14a0: 324403 + l32i a0, a2, 32 /* [arg0+0x20] */ # 14a3: 0882 + l8ui a0, a0, 13 /* [[arg0+0x20]+0xd] */ # 14a5: 02000d + extui a0, a0, 0, 4 # 14a8: 000034 + beqi a0, 3, .Lbr291 # 14ab: 263018 + beqz a0, .Lbr291 # 14ae: 9c50 + movi a2, .Lstr001 # 14b0: 21c4ff + movi a3, .Lstr002 # 14b3: 31c4ff + movi a4, 0x00000a1b # 14b6: 41c4ff + call0 printf # 14b9: 01c7ffc0 + # 14bd: 0000 +.Lbr289: j .Lbr289 /* (halt) */ # 14bf: 06ffff +.Lbr290: movi a0, 16 /* 0x00000010 */ # 14c2: 1c00 + j .Lbr284 # 14c4: 86cfff +.Lbr291: movi a4, 0x0000fffc # 14c7: 41c1ff + l16ui a3, a2, 22 /* [arg0+0x16] */ # 14ca: 32120b + l32i a2, a2, 4 /* [arg0+0x4] */ # 14cd: 2812 + add a3, a3, a4 /* [arg0+0x16]+0xfffc */ # 14cf: 4a33 + l32i a2, a2, 4 /* [[arg0+0x4]+0x4] */ # 14d1: 2812 + movi a4, 0x0000f000 # 14d3: 41bfff + l16ui a0, a2, 0 /* [[[arg0+0x4]+0x4]] */ # 14d6: 021200 + extui a3, a3, 0, 12 # 14d9: 3030b4 + and a0, a0, a4 # 14dc: 400010 + or a0, a0, a3 # 14df: 300020 + l8ui a3, a2, 2 /* [[[arg0+0x4]+0x4]+0x2] */ # 14e2: 320202 + s16i a0, a2, 0 /* a0 -> [[[arg0+0x4]+0x4]] */ # 14e5: 025200 + l8ui a5, a5, 116 /* [[arg0+0x18]+0x74] */ # 14e8: 520574 + l8ui a6, a2, 1 /* [[[arg0+0x4]+0x4]+0x1] */ # 14eb: 620201 + extui a0, a0, 0, 12 # 14ee: 0000b4 + addi a8, a0, 4 # 14f1: 4b80 + slli a3, a3, 8 # 14f3: 803311 + or a3, a3, a6 # 14f6: 603320 + blt a5, a8, .Lbr292 # 14f9: 872508 + sub a0, a5, a0 # 14fc: 0005c0 + srai a0, a0, 2 # 14ff: 000221 + j .Lbr293 # 1502: 460000 +.Lbr292: movi a0, 0 /* 0x00000000 */ # 1505: 0c00 +.Lbr293: movi a5, 0x0000f80f # 1507: 51b3ff + extui a4, a0, 0, 7 # 150a: 004064 + slli a4, a4, 4 # 150d: c04411 + and a3, a3, a5 # 1510: 503310 + or a3, a3, a4 # 1513: 403320 + s8i a3, a2, 1 /* a3 -> [[[arg0+0x4]+0x4]+0x1] */ # 1516: 324201 + movi a4, 207 /* 0x000000cf */ # 1519: 42a0cf + extui a3, a3, 8, 8 # 151c: 303874 + and a3, a3, a4 # 151f: 403310 + s8i a3, a2, 2 /* a3 -> [[[arg0+0x4]+0x4]+0x2] */ # 1522: 324202 + j .Lbr286 # 1525: 06d6ff +.Lbr294: movi a0, 12 /* 0x0000000c */ # 1528: 0cc0 + j .Lbr284 # 152a: 06b6ff + + .section .rodata.str1.4, "MSa", @progbits, 1 + +.Label001: .word 0x00000079 # 0: 79000000 +.Lstr001: .asciz "%s %u\n" # 4: 25732025 + # 8: 750a00 + .balign 4 +.Lstr002: .asciz "pp.c" # c: 70702e63 + # 10: 00 + .balign 4 +.Lstr003: .asciz "map fail\n" # 14: 6d617020 + # 18: 6661696c + # 1c: 0a00 + .balign 4 +.Lstr004: .asciz "ppTask" # 20: 70705461 + # 24: 736b00 + .balign 4 +.Lstr005: .asciz "pp_task_hdl : %x, prio:%d, stack:%d\n" # 28: 70705f74 + # 2c: 61736b5f + # 30: 68646c20 + # 34: 3a202578 + # 38: 2c207072 + # 3c: 696f3a25 + # 40: 642c2073 + # 44: 7461636b + # 48: 3a25640a + # 4c: 00 + .balign 4 +.Lstr006: .asciz "p e2 m f\n" # 50: 70206532 + # 54: 206d2066 + # 58: 0a00 + .balign 4 +.Lstr007: .asciz "E_QF:%d!!" # 5c: 455f5146 + # 60: 3a256421 + # 64: 2100 + .balign 4 +.Lstr008: .asciz "p e1 m f\n" # 68: 70206531 + # 6c: 206d2066 + # 70: 0a00 + .balign 4 +.Lstr009: .asciz "E_UF!!!" # 74: 455f5546 + # 78: 21212100 diff --git a/binary_sdk/libpp_stage1/rate_control.S b/binary_sdk/libpp_stage1/rate_control.S new file mode 100644 index 0000000..77733fb --- /dev/null +++ b/binary_sdk/libpp_stage1/rate_control.S @@ -0,0 +1,567 @@ + + .section .text, "ax", @progbits + +# Function @ .text+0x0 + .balign 4 + .literal_position +.Lfunc001: bltui a2, 5, .Lbr003 # 0: b65213 + bltui a2, 8, .Lbr001 # 3: b68209 + movi a4, 36 /* 0x00000024 */ # 6: 2c44 + bgeui a2, 16, .Lbr002 # 8: f6b207 + movi a4, 20 /* 0x00000014 */ # b: 1c44 + j .Lbr002 # d: 860000 +.Lbr001: movi a4, 96 /* 0x00000060 */ # 10: 42a060 +.Lbr002: mov a2, a4 # 13: 2d04 + ret # 15: 0df0 +.Lbr003: movi a2, 192 /* 0x000000c0 */ # 17: 22a0c0 + ret /* 0x000000c0 */ # 1a: 0df0 + + .literal_position # 1c: 00000000 + +# Function @ .text+0x20 + .balign 4 + .global RC_GetAckRate + .type RC_GetAckRate, @function +RC_GetAckRate: + movi a3, .Ldata002 # 20: 31ffff + addx8 a2, a2, a3 # 23: 3022b0 + l8ui a2, a2, 5 # 26: 220205 + ret # 29: 0df0 + + .literal_position # 2c: 00000000 + +# Function @ .text+0x30 + .balign 4 + .global RC_GetRtsRate + .type RC_GetRtsRate, @function +RC_GetRtsRate: + movi a3, .Ldata002 # 30: 31ffff + addx8 a2, a2, a3 # 33: 3022b0 + l8ui a2, a2, 4 # 36: 220204 + ret # 39: 0df0 + + .literal_position # 3c: 00000000 + # 40: 00000000 + +# Function @ .text+0x44 + .balign 4 + .global RC_GetAckTime + .type RC_GetAckTime, @function +RC_GetAckTime: + movi a3, .Ldata002 # 44: 31feff + addx8 a2, a2, a3 # 47: 3022b0 + movi a3, .Ldata001 # 4a: 31fdff + l8ui a2, a2, 5 # 4d: 220205 + addx2 a2, a2, a3 # 50: 302290 + l16ui a2, a2, 0 # 53: 221200 + ret # 56: 0df0 + +# Function @ .text+0x58 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word[4] @ -0x10 + .balign 4 + .global RC_GetCtsTime + .type RC_GetCtsTime, @function +RC_GetCtsTime: + addi sp, sp, -32 /* (local0) */ # 58: 12c1e0 + s32i a3, sp, 0 /* arg1 -> [(local0)] */ # 5b: 3901 + s32i a4, sp, 4 /* arg2 -> [(local1)] */ # 5d: 4911 + s32i a12, sp, 12 /* a12 -> [(local3)] */ # 5f: c931 + s32i a0, sp, 8 /* a0 -> [(local2)] */ # 61: 0921 + mov a12, a2 /* arg0 */ # 63: cd02 + call0 .Lfunc001 # 65: 85f9ff + s32i a2, sp, 16 /* a2 -> [(local4)] */ # 68: 2941 + l32i a3, sp, 0 /* [(local0)] */ # 6a: 3801 + mov a2, a12 /* arg0 */ # 6c: 2d0c + call0 .Lfunc002 # 6e: 850600 + l32i a0, sp, 16 /* [(local4)] */ # 71: 0841 + l32i a3, sp, 4 /* [(local1)] */ # 73: 3811 + movi a4, 10 /* 0x0000000a */ # 75: 0ca4 + add a2, a3, a2 # 77: 2a23 + bltui a12, 8, .Lbr004 # 79: b68c01 + movi a4, 16 /* 0x00000010 */ # 7c: 1c04 +.Lbr004: l32i a12, sp, 12 /* [(local3)] */ # 7e: c831 + add a5, a0, a4 # 80: 4a50 + add a2, a2, a5 # 82: 5a22 + l32i a0, sp, 8 /* [(local2)] */ # 84: 0821 + addi sp, sp, 32 /* (top of frame) */ # 86: 12c120 + extui a2, a2, 0, 16 # 89: 2020f4 + ret # 8c: 0df0 + + .literal_position # 90: 00000000 + +# Function @ .text+0x94 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word @ -0x8 +# (local3): word @ -0x4 + .balign 4 + .global RC_GetBlockAckTime + .type RC_GetBlockAckTime, @function +RC_GetBlockAckTime: + addi sp, sp, -16 /* (local0) */ # 94: 12c1f0 + s32i a12, sp, 12 /* a12 -> [(local3)] */ # 97: c931 + s32i a0, sp, 8 /* a0 -> [(local2)] */ # 99: 0921 + movi a0, .Ldata002 # 9b: 01fdff + movi a12, 10 /* 0x0000000a */ # 9e: 0cac + addx8 a0, a2, a0 # a0: 0002b0 + l8ui a2, a0, 5 # a3: 220005 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # a6: 0901 + bltui a2, 8, .Lbr005 # a8: b68201 + movi a12, 16 /* 0x00000010 */ # ab: 1c0c +.Lbr005: call0 .Lfunc001 # ad: 05f5ff + s32i a2, sp, 4 /* a2 -> [(local1)] */ # b0: 2911 + l32i a2, sp, 0 /* [(local0)] */ # b2: 2801 + movi a3, 32 /* 0x00000020 */ # b4: 2c03 + l8ui a2, a2, 5 /* [[(local0)]+0x5] */ # b6: 220205 + call0 .Lfunc002 # b9: c50100 + l32i a3, sp, 4 /* [(local1)] */ # bc: 3811 + l32i a0, sp, 8 /* [(local2)] */ # be: 0821 + add a3, a12, a3 # c0: 3a3c + l32i a12, sp, 12 /* [(local3)] */ # c2: c831 + add a2, a2, a3 # c4: 3a22 + extui a2, a2, 0, 16 # c6: 2020f4 + addi sp, sp, 16 /* (top of frame) */ # c9: 12c110 + ret # cc: 0df0 + + .literal_position # d0: 00000000 + # d4: ffff0300 + +# Function @ .text+0xd8 + .balign 4 +.Lfunc002: slli a4, a3, 3 # d8: d04311 + movi a5, .Ldata002 # db: 51fdff + extui a3, a4, 0, 16 # de: 4030f4 + movi a4, 0x0003ffff # e1: 41fcff + addx8 a5, a2, a5 # e4: 5052b0 + l32i a5, a5, 0 # e7: 5805 + bltui a2, 8, .Lbr006 # e9: b68205 + addi a3, a3, 22 # ec: 32c316 + extui a3, a3, 0, 16 # ef: 3030f4 +.Lbr006: mull a3, a5, a3 # f2: 303582 + add a3, a3, a4 # f5: 4a33 + extui a3, a3, 18, 14 # f7: 3032d5 + bltui a2, 8, .Lbr007 # fa: b68206 + movi a4, -4 /* 0xfffffffc */ # fd: 7cc4 + addi a3, a3, 3 # ff: 3b33 + and a3, a3, a4 # 101: 403310 +.Lbr007: extui a2, a3, 0, 16 # 104: 3020f4 + ret # 107: 0df0 + + .section .data, "aw", @progbits + +.Ldata001: .byte 0x3a, 0x01, 0x02, 0x01, 0xdf, 0x00, 0xd5, 0x00 + .byte 0x3a, 0x01, 0xa2, 0x00, 0x7f, 0x00, 0x75, 0x00 + .byte 0x2c, 0x00, 0x2c, 0x00, 0x30, 0x00, 0x3c, 0x00 + .byte 0x2c, 0x00, 0x2c, 0x00, 0x30, 0x00, 0x3c, 0x00 + .byte 0x3c, 0x00, 0x30, 0x00, 0x30, 0x00, 0x2c, 0x00 + .byte 0x2c, 0x00, 0x2c, 0x00, 0x2c, 0x00, 0x2c, 0x00 + .byte 0x3c, 0x00, 0x30, 0x00, 0x30, 0x00, 0x2c, 0x00 + .byte 0x2c, 0x00, 0x2c, 0x00, 0x2c, 0x00, 0x2c, 0x00 + + .section .bss, "aw", @nobits + +.Ldata002: .word 0x00000000 # 0: 00000000 +.Ldata003: .byte 0x00 +.Ldata004: .byte 0x00 +.Ldata005: .byte 0x00 + .balign 4 +.Ldata006: .word 0x00000000 # 8: 00000000 +.Ldata007: .byte 0x00 +.Ldata008: .byte 0x00 +.Ldata009: .byte 0x00 + .balign 4 +.Ldata010: .word 0x00000000 # 10: 00000000 +.Ldata011: .byte 0x00 +.Ldata012: .byte 0x00 +.Ldata013: .byte 0x00 + .balign 4 +.Ldata014: .word 0x00000000 # 18: 00000000 +.Ldata015: .byte 0x00 +.Ldata016: .byte 0x00 +.Ldata017: .byte 0x00 + .balign 4 +.Ldata018: .word 0x00000000 # 20: 00000000 +.Ldata019: .byte 0x00 +.Ldata020: .byte 0x00 +.Ldata021: .byte 0x00 + .balign 4 +.Ldata022: .word 0x00000000 # 28: 00000000 +.Ldata023: .byte 0x00 +.Ldata024: .byte 0x00 +.Ldata025: .byte 0x00 + .balign 4 +.Ldata026: .word 0x00000000 # 30: 00000000 +.Ldata027: .byte 0x00 +.Ldata028: .byte 0x00 +.Ldata029: .byte 0x00 + .balign 4 +.Ldata030: .word 0x00000000 # 38: 00000000 +.Ldata031: .byte 0x00 +.Ldata032: .byte 0x00 +.Ldata033: .byte 0x00 + .balign 4 +.Ldata034: .word 0x00000000 # 40: 00000000 +.Ldata035: .byte 0x00 +.Ldata036: .byte 0x00 +.Ldata037: .byte 0x00 + .balign 4 +.Ldata038: .word 0x00000000 # 48: 00000000 +.Ldata039: .byte 0x00 +.Ldata040: .byte 0x00 +.Ldata041: .byte 0x00 + .balign 4 +.Ldata042: .word 0x00000000 # 50: 00000000 +.Ldata043: .byte 0x00 +.Ldata044: .byte 0x00 +.Ldata045: .byte 0x00 + .balign 4 +.Ldata046: .word 0x00000000 # 58: 00000000 +.Ldata047: .byte 0x00 +.Ldata048: .byte 0x00 +.Ldata049: .byte 0x00 + .balign 4 +.Ldata050: .word 0x00000000 # 60: 00000000 +.Ldata051: .byte 0x00 +.Ldata052: .byte 0x00 +.Ldata053: .byte 0x00 + .balign 4 +.Ldata054: .word 0x00000000 # 68: 00000000 +.Ldata055: .byte 0x00 +.Ldata056: .byte 0x00 +.Ldata057: .byte 0x00 + .balign 4 +.Ldata058: .word 0x00000000 # 70: 00000000 +.Ldata059: .byte 0x00 +.Ldata060: .byte 0x00 +.Ldata061: .byte 0x00 + .balign 4 +.Ldata062: .word 0x00000000 # 78: 00000000 +.Ldata063: .byte 0x00 +.Ldata064: .byte 0x00 +.Ldata065: .byte 0x00 + .balign 4 +.Ldata066: .word 0x00000000 # 80: 00000000 +.Ldata067: .byte 0x00 +.Ldata068: .byte 0x00 +.Ldata069: .byte 0x00 + .balign 4 +.Ldata070: .word 0x00000000 # 88: 00000000 +.Ldata071: .byte 0x00 +.Ldata072: .byte 0x00 +.Ldata073: .byte 0x00 + .balign 4 +.Ldata074: .word 0x00000000 # 90: 00000000 +.Ldata075: .byte 0x00 +.Ldata076: .byte 0x00 +.Ldata077: .byte 0x00 + .balign 4 +.Ldata078: .word 0x00000000 # 98: 00000000 +.Ldata079: .byte 0x00 +.Ldata080: .byte 0x00 +.Ldata081: .byte 0x00 + .balign 4 +.Ldata082: .word 0x00000000 # a0: 00000000 +.Ldata083: .byte 0x00 +.Ldata084: .byte 0x00 +.Ldata085: .byte 0x00 + .balign 4 +.Ldata086: .word 0x00000000 # a8: 00000000 +.Ldata087: .byte 0x00 +.Ldata088: .byte 0x00 +.Ldata089: .byte 0x00 + .balign 4 +.Ldata090: .word 0x00000000 # b0: 00000000 +.Ldata091: .byte 0x00 +.Ldata092: .byte 0x00 +.Ldata093: .byte 0x00 + .balign 4 +.Ldata094: .word 0x00000000 # b8: 00000000 +.Ldata095: .byte 0x00 +.Ldata096: .byte 0x00 +.Ldata097: .byte 0x00 + .balign 4 +.Ldata098: .word 0x00000000 # c0: 00000000 +.Ldata099: .byte 0x00 +.Ldata100: .byte 0x00 +.Ldata101: .byte 0x00 + .balign 4 +.Ldata102: .word 0x00000000 # c8: 00000000 +.Ldata103: .byte 0x00 +.Ldata104: .byte 0x00 +.Ldata105: .byte 0x00 + .balign 4 +.Ldata106: .word 0x00000000 # d0: 00000000 +.Ldata107: .byte 0x00 +.Ldata108: .byte 0x00 +.Ldata109: .byte 0x00 + .balign 4 +.Ldata110: .word 0x00000000 # d8: 00000000 +.Ldata111: .byte 0x00 +.Ldata112: .byte 0x00 +.Ldata113: .byte 0x00 + .balign 4 +.Ldata114: .word 0x00000000 # e0: 00000000 +.Ldata115: .byte 0x00 +.Ldata116: .byte 0x00 +.Ldata117: .byte 0x00 + .balign 4 +.Ldata118: .word 0x00000000 # e8: 00000000 +.Ldata119: .byte 0x00 +.Ldata120: .byte 0x00 +.Ldata121: .byte 0x00 + .balign 4 +.Ldata122: .word 0x00000000 # f0: 00000000 +.Ldata123: .byte 0x00 +.Ldata124: .byte 0x00 +.Ldata125: .byte 0x00 + .balign 4 +.Ldata126: .word 0x00000000 # f8: 00000000 +.Ldata127: .byte 0x00 +.Ldata128: .byte 0x00 +.Ldata129: .byte 0x00 + + .section .irom0.text, "ax", @progbits + + .literal_position # 0: 00000000 + # 4: 00000400 + # 8: 00000200 + # c: 2eba0000 + # 10: 175d0000 + # 14: c00f0000 + # 18: aaaa0000 + # 1c: c7710000 + # 20: 55550000 + # 24: e3380000 + # 28: aa2a0000 + # 2c: 711c0000 + # 30: 55150000 + # 34: f6120000 + # 38: 899d0000 + # 3c: c44e0000 + # 40: 83340000 + # 44: 62270000 + # 48: 411a0000 + # 4c: b1130000 + # 50: 81110000 + # 54: c88d0000 + # 58: e4460000 + # 5c: 422f0000 + # 60: 72230000 + # 64: a1170000 + # 68: b9110000 + # 6c: 2d0e0000 + +# Function @ .irom0.text+0x70 + .balign 4 +.Lfunc003: movi a9, 0x0000ba2e # 70: 91e7ff + movi a4, 0x00040000 # 73: 41e4ff + movi a11, 0x00020000 # 76: b1e4ff + movi a7, 0x00005d17 # 79: 71e5ff + movi a5, 7 /* 0x00000007 */ # 7c: 0c75 + movi a6, 3 /* 0x00000003 */ # 7e: 0c36 + movi a2, 0 /* 0x00000000 */ # 80: 0c02 + movi a10, 1 /* 0x00000001 */ # 82: 0c1a + movi a3, .Ldata002 # 84: 31dfff + movi a8, 2 /* 0x00000002 */ # 87: 0c28 + s8i a8, a3, 54 /* 0x02 -> [.Ldata029] */ # 89: 824336 + s8i a8, a3, 20 /* 0x02 -> [.Ldata011] */ # 8c: 824314 + s8i a8, a3, 21 /* 0x02 -> [.Ldata012] */ # 8f: 824315 + s8i a8, a3, 22 /* 0x02 -> [.Ldata013] */ # 92: 824316 + s8i a10, a3, 46 /* 0x01 -> [.Ldata025] */ # 95: a2432e + s8i a10, a3, 12 /* 0x01 -> [.Ldata007] */ # 98: a2430c + s8i a10, a3, 13 /* 0x01 -> [.Ldata008] */ # 9b: a2430d + s8i a10, a3, 14 /* 0x01 -> [.Ldata009] */ # 9e: a2430e + s8i a2, a3, 4 /* 0x00 -> [.Ldata003] */ # a1: 224304 + s8i a2, a3, 5 /* 0x00 -> [.Ldata004] */ # a4: 224305 + s8i a2, a3, 6 /* 0x00 -> [.Ldata005] */ # a7: 224306 + s8i a2, a3, 38 /* 0x00 -> [.Ldata021] */ # aa: 224326 + s8i a6, a3, 62 /* 0x03 -> [.Ldata033] */ # ad: 62433e + s8i a6, a3, 28 /* 0x03 -> [.Ldata015] */ # b0: 62431c + s8i a6, a3, 29 /* 0x03 -> [.Ldata016] */ # b3: 62431d + s8i a6, a3, 30 /* 0x03 -> [.Ldata017] */ # b6: 62431e + s8i a5, a3, 60 /* 0x07 -> [.Ldata031] */ # b9: 52433c + s8i a5, a3, 61 /* 0x07 -> [.Ldata032] */ # bc: 52433d + s8i a5, a3, 70 /* 0x07 -> [.Ldata037] */ # bf: 524346 + s8i a5, a3, 102 /* 0x07 -> [.Ldata053] */ # c2: 524366 + s32i a7, a3, 56 /* 0x00005d17 -> [.Ldata030] */ # c5: 79e3 + s32i a7, a3, 24 /* 0x00005d17 -> [.Ldata014] */ # c7: 7963 + s32i a11, a3, 40 /* 0x00020000 -> [.Ldata022] */ # c9: b9a3 + s32i a11, a3, 8 /* 0x00020000 -> [.Ldata006] */ # cb: b923 + s32i a4, a3, 0 /* 0x00040000 -> [.Ldata002] */ # cd: 4903 + s32i a9, a3, 48 /* 0x0000ba2e -> [.Ldata026] */ # cf: 99c3 + s32i a9, a3, 16 /* 0x0000ba2e -> [.Ldata010] */ # d1: 9943 + s32i a4, a3, 32 /* 0x00040000 -> [.Ldata018] */ # d3: 4983 + movi a9, 0x00000fc0 # d5: 91cfff + movi a4, 11 /* 0x0000000b */ # d8: 0cb4 + movi a11, 10 /* 0x0000000a */ # da: 0cab + movi a7, 6 /* 0x00000006 */ # dc: 0c67 + s8i a7, a3, 52 /* 0x06 -> [.Ldata027] */ # de: 724334 + s8i a7, a3, 53 /* 0x06 -> [.Ldata028] */ # e1: 724335 + s8i a7, a3, 78 /* 0x06 -> [.Ldata041] */ # e4: 72434e + s8i a7, a3, 110 /* 0x06 -> [.Ldata057] */ # e7: 72436e + s8i a7, a3, 158 /* 0x06 -> [.Ldata081] */ # ea: 72439e + s8i a7, a3, 166 /* 0x06 -> [.Ldata085] */ # ed: 7243a6 + s8i a7, a3, 174 /* 0x06 -> [.Ldata089] */ # f0: 7243ae + s8i a7, a3, 182 /* 0x06 -> [.Ldata093] */ # f3: 7243b6 + s8i a7, a3, 190 /* 0x06 -> [.Ldata097] */ # f6: 7243be + s8i a7, a3, 222 /* 0x06 -> [.Ldata113] */ # f9: 7243de + s8i a7, a3, 230 /* 0x06 -> [.Ldata117] */ # fc: 7243e6 + s8i a7, a3, 238 /* 0x06 -> [.Ldata121] */ # ff: 7243ee + s8i a7, a3, 246 /* 0x06 -> [.Ldata125] */ # 102: 7243f6 + s8i a7, a3, 254 /* 0x06 -> [.Ldata129] */ # 105: 7243fe + s8i a11, a3, 84 /* 0x0a -> [.Ldata043] */ # 108: b24354 + s8i a11, a3, 85 /* 0x0a -> [.Ldata044] */ # 10b: b24355 + s8i a11, a3, 116 /* 0x0a -> [.Ldata059] */ # 10e: b24374 + s8i a11, a3, 117 /* 0x0a -> [.Ldata060] */ # 111: b24375 + s8i a11, a3, 140 /* 0x0a -> [.Ldata071] */ # 114: b2438c + s8i a11, a3, 141 /* 0x0a -> [.Ldata072] */ # 117: b2438d + s8i a11, a3, 148 /* 0x0a -> [.Ldata075] */ # 11a: b24394 + s8i a11, a3, 149 /* 0x0a -> [.Ldata076] */ # 11d: b24395 + s8i a11, a3, 204 /* 0x0a -> [.Ldata103] */ # 120: b243cc + s8i a11, a3, 205 /* 0x0a -> [.Ldata104] */ # 123: b243cd + s8i a11, a3, 212 /* 0x0a -> [.Ldata107] */ # 126: b243d4 + s8i a11, a3, 213 /* 0x0a -> [.Ldata108] */ # 129: b243d5 + s8i a4, a3, 92 /* 0x0b -> [.Ldata047] */ # 12c: 42435c + s8i a4, a3, 93 /* 0x0b -> [.Ldata048] */ # 12f: 42435d + s8i a4, a3, 124 /* 0x0b -> [.Ldata063] */ # 132: 42437c + s8i a4, a3, 125 /* 0x0b -> [.Ldata064] */ # 135: 42437d + s8i a4, a3, 132 /* 0x0b -> [.Ldata067] */ # 138: 424384 + s8i a4, a3, 133 /* 0x0b -> [.Ldata068] */ # 13b: 424385 + s8i a4, a3, 196 /* 0x0b -> [.Ldata099] */ # 13e: 4243c4 + s8i a4, a3, 197 /* 0x0b -> [.Ldata100] */ # 141: 4243c5 + s32i a9, a3, 184 /* 0x00000fc0 -> [.Ldata094] */ # 144: 92632e + s32i a9, a3, 240 /* 0x00000fc0 -> [.Ldata122] */ # 147: 92633c + movi a5, 0x000071c7 # 14a: 51b4ff + movi a6, 0x0000aaaa # 14d: 61b2ff + movi a2, 4 /* 0x00000004 */ # 150: 0c42 + movi a10, 5 /* 0x00000005 */ # 152: 0c5a + movi a8, 9 /* 0x00000009 */ # 154: 0c98 + s8i a8, a3, 76 /* 0x09 -> [.Ldata039] */ # 156: 82434c + s8i a8, a3, 77 /* 0x09 -> [.Ldata040] */ # 159: 82434d + s8i a8, a3, 108 /* 0x09 -> [.Ldata055] */ # 15c: 82436c + s8i a8, a3, 109 /* 0x09 -> [.Ldata056] */ # 15f: 82436d + s8i a8, a3, 68 /* 0x09 -> [.Ldata035] */ # 162: 824344 + s8i a8, a3, 69 /* 0x09 -> [.Ldata036] */ # 165: 824345 + s8i a8, a3, 100 /* 0x09 -> [.Ldata051] */ # 168: 824364 + s8i a8, a3, 101 /* 0x09 -> [.Ldata052] */ # 16b: 824365 + s8i a8, a3, 156 /* 0x09 -> [.Ldata079] */ # 16e: 82439c + s8i a8, a3, 157 /* 0x09 -> [.Ldata080] */ # 171: 82439d + s8i a8, a3, 164 /* 0x09 -> [.Ldata083] */ # 174: 8243a4 + s8i a8, a3, 165 /* 0x09 -> [.Ldata084] */ # 177: 8243a5 + s8i a8, a3, 172 /* 0x09 -> [.Ldata087] */ # 17a: 8243ac + s8i a8, a3, 173 /* 0x09 -> [.Ldata088] */ # 17d: 8243ad + s8i a8, a3, 180 /* 0x09 -> [.Ldata091] */ # 180: 8243b4 + s8i a8, a3, 181 /* 0x09 -> [.Ldata092] */ # 183: 8243b5 + s8i a8, a3, 188 /* 0x09 -> [.Ldata095] */ # 186: 8243bc + s8i a8, a3, 189 /* 0x09 -> [.Ldata096] */ # 189: 8243bd + s8i a8, a3, 220 /* 0x09 -> [.Ldata111] */ # 18c: 8243dc + s8i a8, a3, 221 /* 0x09 -> [.Ldata112] */ # 18f: 8243dd + s8i a8, a3, 228 /* 0x09 -> [.Ldata115] */ # 192: 8243e4 + s8i a8, a3, 229 /* 0x09 -> [.Ldata116] */ # 195: 8243e5 + s8i a8, a3, 236 /* 0x09 -> [.Ldata119] */ # 198: 8243ec + s8i a8, a3, 237 /* 0x09 -> [.Ldata120] */ # 19b: 8243ed + s8i a8, a3, 244 /* 0x09 -> [.Ldata123] */ # 19e: 8243f4 + s8i a8, a3, 245 /* 0x09 -> [.Ldata124] */ # 1a1: 8243f5 + s8i a8, a3, 252 /* 0x09 -> [.Ldata127] */ # 1a4: 8243fc + s8i a8, a3, 253 /* 0x09 -> [.Ldata128] */ # 1a7: 8243fd + s8i a10, a3, 44 /* 0x05 -> [.Ldata023] */ # 1aa: a2432c + s8i a10, a3, 45 /* 0x05 -> [.Ldata024] */ # 1ad: a2432d + s8i a10, a3, 86 /* 0x05 -> [.Ldata045] */ # 1b0: a24356 + s8i a10, a3, 118 /* 0x05 -> [.Ldata061] */ # 1b3: a24376 + s8i a10, a3, 142 /* 0x05 -> [.Ldata073] */ # 1b6: a2438e + s8i a10, a3, 150 /* 0x05 -> [.Ldata077] */ # 1b9: a24396 + s8i a10, a3, 206 /* 0x05 -> [.Ldata105] */ # 1bc: a243ce + s8i a10, a3, 214 /* 0x05 -> [.Ldata109] */ # 1bf: a243d6 + s8i a2, a3, 36 /* 0x04 -> [.Ldata019] */ # 1c2: 224324 + s8i a2, a3, 37 /* 0x04 -> [.Ldata020] */ # 1c5: 224325 + s8i a2, a3, 94 /* 0x04 -> [.Ldata049] */ # 1c8: 22435e + s8i a2, a3, 126 /* 0x04 -> [.Ldata065] */ # 1cb: 22437e + s8i a2, a3, 134 /* 0x04 -> [.Ldata069] */ # 1ce: 224386 + s8i a2, a3, 198 /* 0x04 -> [.Ldata101] */ # 1d1: 2243c6 + s32i a6, a3, 88 /* 0x0000aaaa -> [.Ldata046] */ # 1d4: 626316 + s32i a5, a3, 120 /* 0x000071c7 -> [.Ldata062] */ # 1d7: 52631e + movi a9, 0x00001555 # 1da: 9195ff + s32i a9, a3, 64 /* 0x00001555 -> [.Ldata034] */ # 1dd: 926310 + movi a5, 0x00003483 # 1e0: 5198ff + movi a6, 0x00004ec4 # 1e3: 6196ff + s32i a6, a3, 136 /* 0x00004ec4 -> [.Ldata070] */ # 1e6: 626322 + s32i a5, a3, 144 /* 0x00003483 -> [.Ldata074] */ # 1e9: 526324 + movi a9, 0x00008dc8 # 1ec: 919aff + s32i a9, a3, 192 /* 0x00008dc8 -> [.Ldata098] */ # 1ef: 926330 + movi a5, 0x000017a1 # 1f2: 519cff + movi a6, 0x00002372 # 1f5: 619aff + s32i a6, a3, 216 /* 0x00002372 -> [.Ldata110] */ # 1f8: 626336 + s32i a5, a3, 224 /* 0x000017a1 -> [.Ldata114] */ # 1fb: 526338 + movi a2, 0x000038e3 # 1fe: 2189ff + movi a4, 0x00005555 # 201: 4187ff + s32i a4, a3, 80 /* 0x00005555 -> [.Ldata042] */ # 204: 426314 + s32i a2, a3, 112 /* 0x000038e3 -> [.Ldata058] */ # 207: 22631c + movi a4, 0x00002762 # 20a: 418eff + movi a2, 0x00001a41 # 20d: 218eff + movi a10, 0x00001c71 # 210: a187ff + s32i a10, a3, 104 /* 0x00001c71 -> [.Ldata054] */ # 213: a2631a + s32i a2, a3, 160 /* 0x00001a41 -> [.Ldata082] */ # 216: 226328 + s32i a4, a3, 152 /* 0x00002762 -> [.Ldata078] */ # 219: 426326 + movi a2, 0x00000e2d # 21c: 2194ff + movi a11, 0x00002aaa # 21f: b182ff + movi a4, 0x000011b9 # 222: 4191ff + movi a10, 0x00001181 # 225: a18aff + s32i a10, a3, 176 /* 0x00001181 -> [.Ldata090] */ # 228: a2632c + s32i a4, a3, 232 /* 0x000011b9 -> [.Ldata118] */ # 22b: 42633a + s32i a11, a3, 72 /* 0x00002aaa -> [.Ldata038] */ # 22e: b26312 + s32i a2, a3, 248 /* 0x00000e2d -> [.Ldata126] */ # 231: 22633e + movi a11, 0x000013b1 # 234: b186ff + movi a7, 0x00009d89 # 237: 7180ff + s32i a7, a3, 128 /* 0x00009d89 -> [.Ldata066] */ # 23a: 726320 + s32i a11, a3, 168 /* 0x000013b1 -> [.Ldata086] */ # 23d: b2632a + movi a7, 0x00002f42 # 240: 7187ff + s32i a7, a3, 208 /* 0x00002f42 -> [.Ldata106] */ # 243: 726334 + movi a8, 0x000012f6 # 246: 817bff + s32i a8, a3, 96 /* 0x000012f6 -> [.Ldata050] */ # 249: 826318 + movi a8, 0x000046e4 # 24c: 8183ff + s32i a8, a3, 200 /* 0x000046e4 -> [.Ldata102] */ # 24f: 826332 + ret /* 0x00000e2d */ # 252: 0df0 + + .literal_position # 254: 00000000 + +# Function @ .irom0.text+0x258 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global RC_SetBasicRate + .type RC_SetBasicRate, @function +RC_SetBasicRate: + addi sp, sp, -16 /* (local0) */ # 258: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 25b: 0901 + movi a0, 351 /* 0x0000015f */ # 25d: 02a15f + bnall a2, a0, .Lbr008 # 260: 07c205 + call0 .Lfunc003 # 263: c5e0ff + j .Lbr009 # 266: c60b00 +.Lbr008: movi a4, .Ldata002 # 269: 41faff + movi a8, 5 /* 0x00000005 */ # 26c: 0c58 + movi a5, 7 /* 0x00000007 */ # 26e: 0c75 + movi a2, 3 /* 0x00000003 */ # 270: 0c32 + addi a9, a3, -1 /* arg1-0x1 */ # 272: 0b93 + movi a7, 1 /* 0x00000001 */ # 274: 0c17 + movi a6, 0 /* 0x00000000 */ # 276: 0c06 + moveqz a6, a7, a9 # 278: 906783 + movnez a2, a5, a6 # 27b: 602593 + movnez a7, a8, a6 # 27e: 607893 + s8i a7, a4, 92 /* a7 -> [.Ldata047] */ # 281: 72445c + s8i a7, a4, 124 /* a7 -> [.Ldata063] */ # 284: 72447c + s8i a7, a4, 84 /* a7 -> [.Ldata043] */ # 287: 724454 + s8i a2, a4, 116 /* a2 -> [.Ldata059] */ # 28a: 224474 + s8i a2, a4, 76 /* a2 -> [.Ldata039] */ # 28d: 22444c + s8i a2, a4, 108 /* a2 -> [.Ldata055] */ # 290: 22446c + s8i a2, a4, 68 /* a2 -> [.Ldata035] */ # 293: 224444 + s8i a2, a4, 100 /* a2 -> [.Ldata051] */ # 296: 224464 +.Lbr009: movi a2, 0 /* 0x00000000 */ # 299: 0c02 + l32i a0, sp, 0 /* [(local0)] */ # 29b: 0801 + addi sp, sp, 16 /* (top of frame) */ # 29d: 12c110 + ret /* 0x00000000 */ # 2a0: 0df0 diff --git a/binary_sdk/libpp_stage1/trc.S b/binary_sdk/libpp_stage1/trc.S new file mode 100644 index 0000000..bee769d --- /dev/null +++ b/binary_sdk/libpp_stage1/trc.S @@ -0,0 +1,1497 @@ + + .section .text, "ax", @progbits + +# Function @ .text+0x0 + .balign 4 + .literal_position +.Lfunc001: sub a6, a2, a3 # 0: 3062c0 + bltu a2, a3, .Lbr001 # 3: 373203 + mov a2, a6 # 6: 2d06 + ret # 8: 0df0 +.Lbr001: addi a2, a6, -1 # a: 0b26 + ret # c: 0df0 + + .literal_position # 10: 22000000 + +# Function @ .text+0x14 + .balign 4 +.Lfunc002: bgeui a2, 16, .Lbr002 # 14: f6b23a + movi a4, .Lfunc003 # 17: 41feff + addx2 a3, a2, a2 # 1a: 203290 + add a3, a3, a4 # 1d: 4a33 + jx a3 # 1f: a00300 +.Lfunc003: j .Lbr013 # 22: 461600 + j .Lbr012 # 25: 861400 + j .Lbr011 # 28: c61200 + j .Lbr002 # 2b: c60800 + j .Lbr002 # 2e: 060800 + j .Lbr012 # 31: 861100 + j .Lbr011 # 34: c60f00 + j .Lbr002 # 37: c60500 + j .Lbr010 # 3a: 460d00 + j .Lbr009 # 3d: 860b00 + j .Lbr008 # 40: c60900 + j .Lbr007 # 43: 060800 + j .Lbr003 # 46: 460300 + j .Lbr006 # 49: 860500 + j .Lbr005 # 4c: c60300 + j .Lbr004 # 4f: 060200 +.Lbr002: movi a2, 255 /* 0x000000ff */ # 52: 22a0ff + ret /* 0x000000ff */ # 55: 0df0 +.Lbr003: movi a2, 0 # 57: 0c02 + ret # 59: 0df0 +.Lbr004: movi a2, 6 # 5b: 0c62 + ret # 5d: 0df0 +.Lbr005: movi a2, 4 # 5f: 0c42 + ret # 61: 0df0 +.Lbr006: movi a2, 2 # 63: 0c22 + ret # 65: 0df0 +.Lbr007: movi a2, 7 # 67: 0c72 + ret # 69: 0df0 +.Lbr008: movi a2, 5 # 6b: 0c52 + ret # 6d: 0df0 +.Lbr009: movi a2, 3 # 6f: 0c32 + ret # 71: 0df0 +.Lbr010: movi a2, 1 # 73: 0c12 + ret # 75: 0df0 +.Lbr011: movi a2, 8 # 77: 0c82 + ret # 79: 0df0 +.Lbr012: movi a2, 9 # 7b: 0c92 + ret # 7d: 0df0 +.Lbr013: movi a2, 10 # 7f: 0ca2 + ret # 81: 0df0 + + .balign 4 +# Function @ .text+0x84 + .balign 4 +.Lfunc004: beqz a2, .Lbr017 # 84: ac12 + beqi a2, 1, .Lbr015 # 86: 261217 + beqi a2, 2, .Lbr016 # 89: 262218 + beqi a2, 3, .Lbr014 # 8c: 26320d + beqi a2, 5, .Lbr015 # 8f: 26520e + beqi a2, 6, .Lbr016 # 92: 26620f + beqi a2, 7, .Lbr014 # 95: 267204 + movi a2, 255 /* 0x000000ff */ # 98: 22a0ff + ret /* 0x000000ff */ # 9b: 0df0 +.Lbr014: movi a2, 0 /* 0x00000000 */ # 9d: 0c02 + ret /* 0x00000000 */ # 9f: 0df0 +.Lbr015: movi a2, 2 /* 0x00000002 */ # a1: 0c22 + ret /* 0x00000002 */ # a3: 0df0 +.Lbr016: movi a2, 1 /* 0x00000001 */ # a5: 0c12 + ret /* 0x00000001 */ # a7: 0df0 +.Lbr017: movi a2, 3 /* 0x00000003 */ # a9: 0c32 + ret /* 0x00000003 */ # ab: 0df0 + + .literal_position # b0: 20a10700 + +# Function @ .text+0xb4 + .balign 4 +.Lfunc005: movi a3, 0x0007a120 # b4: 31ffff + l32i a5, a2, 96 /* [arg0+0x60] */ # b7: 522218 + movi a4, 0 /* 0x00000000 */ # ba: 0c04 + s8i a4, a5, 11 /* 0x00 -> [[arg0+0x60]+0xb] */ # bc: 42450b + s32i a4, a2, 40 /* 0x00000000 -> [arg0+0x28] */ # bf: 49a2 + s32i a4, a2, 36 /* 0x00000000 -> [arg0+0x24] */ # c1: 4992 + s32i a4, a2, 56 /* 0x00000000 -> [arg0+0x38] */ # c3: 49e2 + s8i a4, a2, 22 /* 0x00 -> [arg0+0x16] */ # c5: 424216 + s8i a4, a2, 23 /* 0x00 -> [arg0+0x17] */ # c8: 424217 + s8i a4, a2, 6 /* 0x00 -> [arg0+0x6] */ # cb: 424206 + s32i a3, a2, 88 /* 0x0007a120 -> [arg0+0x58] */ # ce: 326216 + ret /* arg0 */ # d1: 0df0 + + .literal_position # d4: 000af23f + +# Function @ .text+0xd8 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 +.Lfunc006: addi sp, sp, -16 /* (local0) */ # d8: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # db: 0901 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # dd: d921 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # df: c911 + mov a13, a3 /* arg1 */ # e1: dd03 + mov a12, a2 /* arg0 */ # e3: cd02 + call0 .Lfunc005 # e5: c5fcff + l32i a0, a12, 96 /* [arg0+0x60] */ # e8: 022c18 + movi a4, 0x3ff20a00 # eb: 41faff + l8ui a3, a0, 10 /* [[arg0+0x60]+0xa] */ # ee: 32000a + l8ui a2, a12, 5 /* [arg0+0x5] */ # f1: 220c05 + add a3, a3, a13 # f4: da33 + blt a2, a3, .Lbr019 # f6: 37221b + addx2 a2, a13, a13 # f9: d02d90 +.Lbr018: addx4 a5, a2, a0 # fc: 0052a0 + s32i a5, a12, 96 /* a5 -> [arg0+0x60] */ # ff: 526c18 + memw # 102: c02000 + l32i a0, sp, 0 /* [(local0)] */ # 105: 0801 + l32i a4, a4, 0x200 /* [0x3ff20c00] */ # 107: 422480 + s32i a4, a12, 44 /* [0x3ff20c00] -> [arg0+0x2c] */ # 10a: 49bc + l32i a13, sp, 8 /* [(local2)] */ # 10c: d821 + l32i a12, sp, 4 /* [(local1)] */ # 10e: c811 + addi sp, sp, 16 /* (top of frame) */ # 110: 12c110 + ret # 113: 0df0 +.Lbr019: addx2 a2, a2, a2 # 115: 202290 + l32i a0, a12, 104 /* [arg0+0x68] */ # 118: 022c1a + j .Lbr018 # 11b: 46f7ff + + .balign 4 +# Function @ .text+0x120 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 +.Lfunc007: movi a6, 10 /* 0x0000000a */ # 120: 0ca6 + addi sp, sp, -16 /* (local0) */ # 122: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 125: 0901 + l32i a4, a2, 96 /* [arg0+0x60] */ # 127: 422218 + l32i a0, a2, 40 /* [arg0+0x28] */ # 12a: 08a2 + l8ui a4, a4, 1 /* [[arg0+0x60]+0x1] */ # 12c: 420401 + addi a0, a0, 1 /* [arg0+0x28]+0x1 */ # 12f: 1b00 + bltu a4, a3, .Lbr024 # 131: 37342b + l32i a4, a2, 36 /* [arg0+0x24] */ # 134: 4892 + s32i a0, a2, 40 /* [arg0+0x28]+0x1 -> [arg0+0x28] */ # 136: 09a2 + add a0, a3, a4 # 138: 4a03 + addi a0, a0, 1 # 13a: 1b00 +.Lbr020: s32i a0, a2, 36 /* a0 -> [arg0+0x24] */ # 13c: 0992 + bgeui a3, 6, .Lbr025 # 13e: f66329 + bgeui a3, 3, .Lbr021 # 141: f63309 + movi a0, 0 /* 0x00000000 */ # 144: 0c00 + movi a5, 0 /* 0x00000000 */ # 146: 0c05 + s8i a5, a2, 6 /* 0x00 -> [arg0+0x6] */ # 148: 524206 + j .Lbr022 # 14b: 860000 +.Lbr021: l8ui a0, a2, 6 /* [arg0+0x6] */ # 14e: 020206 +.Lbr022: bgeu a6, a0, .Lbr023 # 151: 07b604 + movi a3, 1 /* 0x00000001 */ # 154: 0c13 + call0 .Lfunc006 # 156: 05f8ff +.Lbr023: l32i a0, sp, 0 /* [(local0)] */ # 159: 0801 + addi sp, sp, 16 /* (top of frame) */ # 15b: 12c110 + ret # 15e: 0df0 +.Lbr024: l32i a4, a2, 36 /* [arg0+0x24] */ # 160: 4892 + s32i a0, a2, 40 /* [arg0+0x28]+0x1 -> [arg0+0x28] */ # 162: 09a2 + add a0, a3, a4 # 164: 4a03 + addi a0, a0, 2 # 166: 2b00 + j .Lbr020 # 168: 06f4ff +.Lbr025: l8ui a0, a2, 6 /* [arg0+0x6] */ # 16b: 020206 + addi a0, a0, 1 /* [arg0+0x6]+0x1 */ # 16e: 1b00 + extui a0, a0, 0, 8 # 170: 000074 + s8i a0, a2, 6 /* a0 -> [arg0+0x6] */ # 173: 024206 + j .Lbr022 # 176: c6f5ff + + .balign 4 +# Function @ .text+0x17c +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global rcUpdateTxDone + .type rcUpdateTxDone, @function +rcUpdateTxDone: + addi sp, sp, -16 /* (local0) */ # 17c: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 17f: 0901 + beqz a2, .Lbr029 # 181: 16b207 + l32i a0, a2, 96 /* [arg0+0x60] */ # 184: 022218 + beqz a0, .Lbr029 # 187: 165007 + l32i a4, a3, 20 /* [arg1+0x14] */ # 18a: 4853 + bne a4, a0, .Lbr029 # 18c: 079470 + l32i a5, a2, 56 /* [arg0+0x38] */ # 18f: 58e2 + addi a5, a5, 1 /* [arg0+0x38]+0x1 */ # 191: 1b55 + s32i a5, a2, 56 /* [arg0+0x38]+0x1 -> [arg0+0x38] */ # 193: 59e2 + l8ui a5, a3, 15 /* [arg1+0xf] */ # 195: 52030f + bnei a5, 1, .Lbr028 # 198: 66155e + l8ui a6, a2, 20 /* [arg0+0x14] */ # 19b: 620214 + movi a8, 127 /* 0x0000007f */ # 19e: 82a07f + bbsi a6, 2, .Lbr027 # 1a1: 27e649 + l8ui a0, a3, 9 /* [arg1+0x9] */ # 1a4: 020309 + movi a7, 0 /* 0x00000000 */ # 1a7: 0c07 + slli a6, a0, 24 # 1a9: 806001 + srai a6, a6, 24 # 1ac: 606831 + beq a6, a8, .Lbr027 # 1af: 87163b + l8ui a9, a2, 0 /* [arg0] */ # 1b2: 920200 + s8i a0, a2, 0 /* [arg1+0x9] -> [arg0] */ # 1b5: 024200 + slli a0, a9, 24 # 1b8: 800901 + addi a9, a9, -127 /* [arg0]-0x7f */ # 1bb: 92c981 + srai a0, a0, 24 # 1be: 000831 + add a0, a6, a0 # 1c1: 0a06 + srai a0, a0, 1 # 1c3: 000121 + moveqz a0, a7, a9 # 1c6: 900783 + slli a6, a0, 24 # 1c9: 806001 + l8ui a7, a2, 1 /* [arg0+0x1] */ # 1cc: 720201 + srai a6, a6, 24 # 1cf: 606831 + beq a7, a8, .Lbr026 # 1d2: 871715 + slli a4, a7, 24 # 1d5: 804701 + srai a4, a4, 24 # 1d8: 404831 + addx2 a4, a4, a4 # 1db: 404490 + add a4, a6, a4 # 1de: 4a46 + slli a4, a4, 2 # 1e0: e04411 + addi a0, a4, 15 # 1e3: fb04 + movgez a0, a4, a4 # 1e5: 4004b3 + srai a0, a0, 4 # 1e8: 000421 +.Lbr026: s8i a0, a2, 1 /* a0 -> [arg0+0x1] */ # 1eb: 024201 +.Lbr027: l8ui a3, a3, 4 /* [arg1+0x4] */ # 1ee: 320304 + srli a3, a3, 4 # 1f1: 303441 + call0 .Lfunc007 # 1f4: 85f2ff + j .Lbr029 # 1f7: 460100 +.Lbr028: beqi a5, 2, .Lbr030 # 1fa: 262509 + beqi a5, 3, .Lbr030 # 1fd: 263506 +.Lbr029: l32i a0, sp, 0 /* [(local0)] */ # 200: 0801 + addi sp, sp, 16 /* (top of frame) */ # 202: 12c110 + ret # 205: 0df0 +.Lbr030: l8ui a3, a0, 8 /* [[arg0+0x60]+0x8] */ # 207: 320008 + call0 .Lfunc007 # 20a: 45f1ff + j .Lbr029 # 20d: c6fbff + +# Function @ .text+0x210 + .balign 4 + .global rcUpdateRxDone + .type rcUpdateRxDone, @function +rcUpdateRxDone: + l8ui a6, a3, 0 /* [arg1] */ # 210: 620300 + slli a4, a6, 24 # 213: 804601 + srai a3, a4, 24 # 216: 403831 + beqz a2, .Lbr034 # 219: 16b204 + l8ui a5, a2, 20 /* [arg0+0x14] */ # 21c: 520214 + movi a8, 127 /* 0x0000007f */ # 21f: 82a07f + bbsi a5, 0, .Lbr034 # 222: 07e542 + l8ui a7, a2, 2 /* [arg0+0x2] */ # 225: 720202 + bne a7, a8, .Lbr031 # 228: 879707 + s8i a6, a2, 2 /* [arg1] -> [arg0+0x2] */ # 22b: 624202 + movi a6, 0 /* 0x00000000 */ # 22e: 0c06 + j .Lbr032 # 230: 460500 +.Lbr031: s8i a6, a2, 2 /* [arg1] -> [arg0+0x2] */ # 233: 624202 + slli a6, a7, 24 # 236: 806701 + srai a6, a6, 24 # 239: 606831 + add a6, a3, a6 # 23c: 6a63 + srai a6, a6, 1 # 23e: 606121 + slli a6, a6, 24 # 241: 806601 + srai a6, a6, 24 # 244: 606831 + mov a3, a6 # 247: 3d06 +.Lbr032: l8ui a7, a2, 3 /* [arg0+0x3] */ # 249: 720203 + beq a7, a8, .Lbr033 # 24c: 871715 + slli a4, a7, 24 # 24f: 804701 + srai a4, a4, 24 # 252: 404831 + addx2 a4, a4, a4 # 255: 404490 + add a4, a6, a4 # 258: 4a46 + slli a4, a4, 2 # 25a: e04411 + addi a3, a4, 15 # 25d: fb34 + movgez a3, a4, a4 # 25f: 4034b3 + srai a3, a3, 4 # 262: 303421 +.Lbr033: s8i a3, a2, 3 /* a3 -> [arg0+0x3] */ # 265: 324203 +.Lbr034: ret /* arg0 */ # 268: 0df0 + + .balign 4 +# Function @ .text+0x26c + .balign 4 + .global rcUpdateDataRxDone + .type rcUpdateDataRxDone, @function +rcUpdateDataRxDone: + ret /* arg0 */ # 26c: 0df0 + + .literal_position # 270: 64000000 + # 274: 00000000 + # 278: 00100000 + # 27c: 24010000 + # 280: 00082000 + # 284: 00000000 + # 288: 00000000 + # 28c: 94050000 + +# Function @ .text+0x290 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 + .global rcGetSched + .type rcGetSched, @function +rcGetSched: addi sp, sp, -16 /* (local0) */ # 290: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 293: c911 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 295: 0901 + mov a12, a2 /* arg0 */ # 297: cd02 + mov a2, a3 /* arg1 */ # 299: 2d03 + beqz a12, .Lbr035 # 29b: 9c1c + l32i a0, a12, 96 /* [arg0+0x60] */ # 29d: 022c18 + beqz a0, .Lbr035 # 2a0: 8cc0 + l32i a0, a3, 0 /* [arg1] */ # 2a2: 0803 + srli a3, a0, 6 # 2a4: 003641 + bbci a0, 7, .Lbr040 # 2a7: 776043 + l32i a0, a12, 100 /* [arg0+0x64] */ # 2aa: 022c19 + j .Lbr036 # 2ad: 060200 +.Lbr035: l8ui a3, a2, 0 /* [arg1] */ # 2b0: 320200 + movi a0, .Label001 # 2b3: 01efff + bbci a3, 0, .Lbr041 # 2b6: 07635f +.Lbr036: s32i a2, sp, 8 /* a2 -> [(local2)] */ # 2b9: 2921 + s32i a0, a2, 20 # 2bb: 0952 + bnez a0, .Lbr037 # 2bd: cc90 + movi a2, .Lstr001 # 2bf: 21edff + call0 printf # 2c2: 01f1ffc0 + # 2c6: 0000 + l32i a2, sp, 8 /* [(local2)] */ # 2c8: 2821 +.Lbr037: beqz a12, .Lbr038 # 2ca: 8cfc + l8ui a4, a12, 20 /* [arg0+0x14] */ # 2cc: 420c14 + l8ui a0, a12, 7 /* [arg0+0x7] */ # 2cf: 020c07 + bbci a4, 6, .Lbr038 # 2d2: 676407 + l32i a5, a2, 0 # 2d5: 5802 + bbci a5, 9, .Lbr038 # 2d7: 976502 + j .Lbr039 # 2da: 060100 +.Lbr038: l32i a0, a2, 20 # 2dd: 0852 + l8ui a0, a0, 0 # 2df: 020000 +.Lbr039: l32i a12, sp, 4 /* [(local1)] */ # 2e2: c811 + s8i a0, a2, 8 # 2e4: 024208 + l32i a0, sp, 0 /* [(local0)] */ # 2e7: 0801 + addi sp, sp, 16 /* (top of frame) */ # 2e9: 12c110 + ret # 2ec: 0df0 +.Lbr040: s32i a2, sp, 8 /* arg1 -> [(local2)] */ # 2ee: 2921 + bbci a0, 9, .Lbr042 # 2f0: 97602b + mov a2, a12 /* arg0 */ # 2f3: 2d0c + call0 .Lfunc010 # 2f5: 01e5ffc0 + # 2f9: 0000 + l32i a2, sp, 8 /* [(local2)] */ # 2fb: 2821 + l32i a0, a12, 96 /* [arg0+0x60] */ # 2fd: 022c18 + l32i a4, a2, 0 /* [[(local2)]] */ # 300: 4802 + movi a5, 0x00001000 # 302: 51ddff + extui a3, a4, 0, 6 # 305: 403054 + srli a4, a4, 6 # 308: 404641 + or a4, a4, a5 # 30b: 504420 + slli a4, a4, 6 # 30e: a04411 + or a3, a3, a4 # 311: 403320 + s32i a3, a2, 0 /* a3 -> [[(local2)]] */ # 314: 3902 + j .Lbr036 # 316: c6e7ff +.Lbr041: movi a0, .Label003 # 319: 01d8ff + j .Lbr036 # 31c: 46e6ff +.Lbr042: movi a5, 0x00200800 # 31f: 51d8ff + bnone a5, a3, .Lbr043 # 322: 37050a + l32i a6, a12, 92 /* [arg0+0x5c] */ # 325: 622c17 + movi a0, .Ldata001 # 328: 01d7ff + beqz a6, .Lbr043 # 32b: 8c16 + j .Lbr036 # 32d: 06e2ff +.Lbr043: l32i a0, a12, 100 /* [arg0+0x64] */ # 330: 022c19 + j .Lbr036 # 333: 86e0ff + + .balign 4 +# Function @ .text+0x338 + .balign 4 + .global rcGetRate + .type rcGetRate, @function +rcGetRate: l32i a4, a3, 0 /* [arg1] */ # 338: 4803 + movi a6, 0 /* 0x00000000 */ # 33a: 0c06 + srli a11, a4, 6 # 33c: 40b641 + bbsi a4, 28, .Lbr047 # 33f: c7f42a + movi a7, 0 /* 0x00000000 */ # 342: 0c07 + l8ui a8, a3, 4 /* [arg1+0x4] */ # 344: 820304 + l32i a9, a3, 20 /* [arg1+0x14] */ # 347: 9853 + srli a8, a8, 4 # 349: 808441 +.Lbr044: addx2 a10, a6, a9 # 34c: 90a690 + l8ui a4, a10, 1 # 34f: 420a01 + addi a6, a6, 1 # 352: 1b66 + add a7, a4, a7 # 354: 7a74 + extui a7, a7, 0, 8 # 356: 707074 + bge a8, a7, .Lbr048 # 359: 77a812 + beqz a2, .Lbr045 # 35c: 8c72 + l8ui a5, a2, 20 /* [arg0+0x14] */ # 35e: 520214 + bbci a5, 6, .Lbr045 # 361: 676502 + bbsi a11, 3, .Lbr049 # 364: 37eb10 +.Lbr045: l8ui a2, a10, 0 # 367: 220a00 +.Lbr046: s8i a2, a3, 8 /* a2 -> [arg1+0x8] */ # 36a: 224308 +.Lbr047: ret # 36d: 0df0 +.Lbr048: extui a6, a6, 0, 8 # 36f: 606074 + bnei a6, 4, .Lbr044 # 372: 6646d6 + j .Lbr047 # 375: 06fdff +.Lbr049: l8ui a2, a2, 7 /* [arg0+0x7] */ # 378: 220207 + j .Lbr046 # 37b: c6faff + + .literal_position # 380: 95030000 + +# Function @ .text+0x384 + .balign 4 +.Lfunc008: movi a6, 255 /* 0x000000ff */ # 384: 62a0ff + bgeui a3, 32, .Lbr052 # 387: f6c37c + movi a5, .Lfunc009 # 38a: 51fdff + addx2 a4, a3, a3 # 38d: 304390 + add a4, a4, a5 # 390: 5a44 + jx a4 # 392: a00400 +.Lfunc009: j .Lbr052 # 395: 861b00 + j .Lbr086 # 398: c66c00 + j .Lbr083 # 39b: c66400 + j .Lbr080 # 39e: 465c00 + j .Lbr052 # 3a1: 861800 + j .Lbr086 # 3a4: c66900 + j .Lbr083 # 3a7: c66100 + j .Lbr080 # 3aa: 465900 + j .Lbr077 # 3ad: c65000 + j .Lbr074 # 3b0: 464800 + j .Lbr071 # 3b3: 464000 + j .Lbr068 # 3b6: c63700 + j .Lbr065 # 3b9: 462f00 + j .Lbr062 # 3bc: c62600 + j .Lbr059 # 3bf: 461e00 + j .Lbr056 # 3c2: 461600 + j .Lbr068 # 3c5: 063400 + j .Lbr071 # 3c8: 063b00 + j .Lbr059 # 3cb: 461b00 + j .Lbr074 # 3ce: c64000 + j .Lbr062 # 3d1: 862100 + j .Lbr077 # 3d4: 064700 + j .Lbr065 # 3d7: c62700 + j .Lbr054 # 3da: 060d00 + j .Lbr068 # 3dd: 062e00 + j .Lbr071 # 3e0: 063500 + j .Lbr059 # 3e3: 461500 + j .Lbr074 # 3e6: c63a00 + j .Lbr062 # 3e9: 861b00 + j .Lbr077 # 3ec: 064100 + j .Lbr065 # 3ef: c62100 + j .Lbr054 # 3f2: 060700 +.Lbr050: addi a3, a2, -33 # 3f5: 32c2df + addi a2, a2, -32 # 3f8: 22c2e0 + movgez a2, a3, a3 # 3fb: 3023b3 + srai a2, a2, 1 # 3fe: 202121 + addx2 a2, a2, a2 # 401: 202290 +.Lbr051: extui a2, a2, 0, 8 # 404: 202074 +.Lbr052: movi a3, 32 /* 0x00000020 */ # 407: 2c03 + bgeu a3, a2, .Lbr053 # 409: 27b303 + mov a2, a3 /* 0x00000020 */ # 40c: 2d03 + ret /* 0x00000020 */ # 40e: 0df0 +.Lbr053: ret /* arg0 */ # 410: 0df0 +.Lbr054: movi a4, 33 # 412: 2c14 + bgeu a4, a2, .Lbr055 # 414: 27b402 + bne a2, a6, .Lbr050 # 417: 6792da +.Lbr055: movi a2, 0 # 41a: 0c02 + j .Lbr051 # 41c: 06f9ff +.Lbr056: bltui a2, 10, .Lbr057 # 41f: b69202 + bne a2, a6, .Lbr058 # 422: 679204 +.Lbr057: movi a2, 0 # 425: 0c02 + j .Lbr051 # 427: 46f6ff +.Lbr058: addi a3, a2, -9 # 42a: 32c2f7 + addi a2, a2, -8 # 42d: 22c2f8 + movgez a2, a3, a3 # 430: 3023b3 + srai a2, a2, 1 # 433: 202121 + addx2 a2, a2, a2 # 436: 202290 + j .Lbr051 # 439: c6f1ff +.Lbr059: movi a4, 13 # 43c: 0cd4 + bgeu a4, a2, .Lbr060 # 43e: 27b402 + bne a2, a6, .Lbr061 # 441: 679204 +.Lbr060: movi a2, 0 # 444: 0c02 + j .Lbr051 # 446: 86eeff +.Lbr061: addi a3, a2, -13 # 449: 32c2f3 + addi a2, a2, -12 # 44c: 22c2f4 + movgez a2, a3, a3 # 44f: 3023b3 + srai a2, a2, 1 # 452: 202121 + addx2 a2, a2, a2 # 455: 202290 + j .Lbr051 # 458: 06eaff +.Lbr062: movi a4, 21 # 45b: 1c54 + bgeu a4, a2, .Lbr063 # 45d: 27b402 + bne a2, a6, .Lbr064 # 460: 679204 +.Lbr063: movi a2, 0 # 463: 0c02 + j .Lbr051 # 465: c6e6ff +.Lbr064: addi a3, a2, -21 # 468: 32c2eb + addi a2, a2, -20 # 46b: 22c2ec + movgez a2, a3, a3 # 46e: 3023b3 + srai a2, a2, 1 # 471: 202121 + addx2 a2, a2, a2 # 474: 202290 + j .Lbr051 # 477: 46e2ff +.Lbr065: movi a4, 29 # 47a: 1cd4 + bgeu a4, a2, .Lbr066 # 47c: 27b402 + bne a2, a6, .Lbr067 # 47f: 679204 +.Lbr066: movi a2, 0 # 482: 0c02 + j .Lbr051 # 484: 06dfff +.Lbr067: addi a3, a2, -29 # 487: 32c2e3 + addi a2, a2, -28 # 48a: 22c2e4 + movgez a2, a3, a3 # 48d: 3023b3 + srai a2, a2, 1 # 490: 202121 + addx2 a2, a2, a2 # 493: 202290 + j .Lbr051 # 496: 86daff +.Lbr068: movi a4, 8 # 499: 0c84 + bgeu a4, a2, .Lbr069 # 49b: 27b402 + bne a2, a6, .Lbr070 # 49e: 679204 +.Lbr069: movi a2, 0 # 4a1: 0c02 + j .Lbr051 # 4a3: 46d7ff +.Lbr070: addi a3, a2, -8 # 4a6: 32c2f8 + addi a2, a2, -7 # 4a9: 22c2f9 + movgez a2, a3, a3 # 4ac: 3023b3 + srai a2, a2, 1 # 4af: 202121 + addx2 a2, a2, a2 # 4b2: 202290 + j .Lbr051 # 4b5: c6d2ff +.Lbr071: bltui a2, 12, .Lbr072 # 4b8: b6a202 + bne a2, a6, .Lbr073 # 4bb: 679204 +.Lbr072: movi a2, 0 # 4be: 0c02 + j .Lbr051 # 4c0: 06d0ff +.Lbr073: addi a3, a2, -11 # 4c3: 32c2f5 + addi a2, a2, -10 # 4c6: 22c2f6 + movgez a2, a3, a3 # 4c9: 3023b3 + srai a2, a2, 1 # 4cc: 202121 + addx2 a2, a2, a2 # 4cf: 202290 + j .Lbr051 # 4d2: 86cbff +.Lbr074: movi a4, 16 # 4d5: 1c04 + bgeu a4, a2, .Lbr075 # 4d7: 27b402 + bne a2, a6, .Lbr076 # 4da: 679204 +.Lbr075: movi a2, 0 # 4dd: 0c02 + j .Lbr051 # 4df: 46c8ff +.Lbr076: addi a3, a2, -16 # 4e2: 32c2f0 + addi a2, a2, -15 # 4e5: 22c2f1 + movgez a2, a3, a3 # 4e8: 3023b3 + srai a2, a2, 1 # 4eb: 202121 + addx2 a2, a2, a2 # 4ee: 202290 + j .Lbr051 # 4f1: c6c3ff +.Lbr077: movi a4, 26 # 4f4: 1ca4 + bgeu a4, a2, .Lbr078 # 4f6: 27b402 + bne a2, a6, .Lbr079 # 4f9: 679204 +.Lbr078: movi a2, 0 # 4fc: 0c02 + j .Lbr051 # 4fe: 86c0ff +.Lbr079: addi a3, a2, -26 # 501: 32c2e6 + addi a2, a2, -25 # 504: 22c2e7 + movgez a2, a3, a3 # 507: 3023b3 + srai a2, a2, 1 # 50a: 202121 + addx2 a2, a2, a2 # 50d: 202290 + j .Lbr051 # 510: 06bcff +.Lbr080: movi a4, 14 # 513: 0ce4 + bgeu a4, a2, .Lbr081 # 515: 27b402 + bne a2, a6, .Lbr082 # 518: 679204 +.Lbr081: movi a2, 0 # 51b: 0c02 + j .Lbr051 # 51d: c6b8ff +.Lbr082: addi a3, a2, -14 # 520: 32c2f2 + addi a2, a2, -13 # 523: 22c2f3 + movgez a2, a3, a3 # 526: 3023b3 + srai a2, a2, 1 # 529: 202121 + addx2 a2, a2, a2 # 52c: 202290 + j .Lbr051 # 52f: 46b4ff +.Lbr083: bltui a2, 12, .Lbr084 # 532: b6a202 + bne a2, a6, .Lbr085 # 535: 679204 +.Lbr084: movi a2, 0 # 538: 0c02 + j .Lbr051 # 53a: 86b1ff +.Lbr085: addi a3, a2, -11 # 53d: 32c2f5 + addi a2, a2, -10 # 540: 22c2f6 + movgez a2, a3, a3 # 543: 3023b3 + srai a2, a2, 1 # 546: 202121 + addx2 a2, a2, a2 # 549: 202290 + j .Lbr051 # 54c: 06adff +.Lbr086: movi a4, 10 # 54f: 0ca4 + bgeu a4, a2, .Lbr087 # 551: 27b402 + bne a2, a6, .Lbr088 # 554: 679204 +.Lbr087: movi a2, 0 # 557: 0c02 + j .Lbr051 # 559: c6a9ff +.Lbr088: addi a3, a2, -10 # 55c: 32c2f6 + addi a2, a2, -9 # 55f: 22c2f7 + movgez a2, a3, a3 # 562: 3023b3 + srai a2, a2, 1 # 565: 202121 + addx2 a2, a2, a2 # 568: 202290 + j .Lbr051 # 56b: 46a5ff + + .literal_position # 570: 000af23f + # 574: 9f860100 + # 578: 00000000 + # 57c: 00000000 + # 580: 00093d00 + # 584: 20a10700 + # 588: 000af23f + # 58c: a0860100 + # 590: 00000000 + +# Function @ .text+0x594 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word[4] @ -0x10 + .balign 4 +.Lfunc010: addi sp, sp, -32 /* (local0) */ # 594: 12c1e0 + s32i a13, sp, 12 /* a13 -> [(local3)] */ # 597: d931 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 599: 0911 + s32i a14, sp, 16 /* a14 -> [(local4)] */ # 59b: e941 + s32i a12, sp, 8 /* a12 -> [(local2)] */ # 59d: c921 + mov a12, a2 /* arg0 */ # 59f: cd02 + movi a14, 0x3ff20a00 # 5a1: e1f3ff + memw # 5a4: c02000 + l32i a13, a14, 0x200 /* [0x3ff20c00] */ # 5a7: d22e80 + l32i a3, a2, 52 /* [arg0+0x34] */ # 5aa: 38d2 + mov a2, a13 /* [0x3ff20c00] */ # 5ac: 2d0d + call0 .Lfunc001 # 5ae: 05a5ff + l32i a3, a12, 36 /* [arg0+0x24] */ # 5b1: 389c + movi a0, 99 /* 0x00000063 */ # 5b3: 02a063 + beqz a3, .Lbr097 # 5b6: 16c30d + l32i a4, a12, 56 /* [arg0+0x38] */ # 5b9: 48ec + movi a5, 0x0001869f # 5bb: 51eeff + bltu a0, a4, .Lbr089 # 5be: 473005 + bltu a5, a2, .Lbr089 # 5c1: 273502 + j .Lbr097 # 5c4: 863300 +.Lbr089: s32i a13, a12, 52 /* [0x3ff20c00] -> [arg0+0x34] */ # 5c7: d9dc + movi a14, .Ldata006 # 5c9: e1ebff + l32i a2, a12, 40 /* [arg0+0x28] */ # 5cc: 28ac + l32i a4, a14, 0 /* [.Ldata006] */ # 5ce: 480e + slli a2, a2, 7 # 5d0: 902211 + addi a4, a4, 1 /* [.Ldata006]+0x1 */ # 5d3: 1b44 + s32i a4, a14, 0 /* [.Ldata006]+0x1 -> [.Ldata006] */ # 5d5: 490e + call0 __udivsi3 # 5d7: 01eeffc0 + # 5db: 0000 + extui a2, a2, 0, 8 # 5dd: 202074 + l8ui a0, a12, 23 /* [arg0+0x17] */ # 5e0: 020c17 + s8i a2, a12, 22 /* a2 -> [arg0+0x16] */ # 5e3: 224c16 + beqz a0, .Lbr094 # 5e6: 168007 + add a5, a2, a0 # 5e9: 0a52 + l32i a3, a12, 48 /* [arg0+0x30] */ # 5eb: 38cc + mov a2, a13 /* [0x3ff20c00] */ # 5ed: 2d0d + srai a5, a5, 1 # 5ef: 505121 + s8i a5, a12, 23 /* a5 -> [arg0+0x17] */ # 5f2: 524c17 + call0 .Lfunc001 # 5f5: 85a0ff + l8ui a14, a12, 23 /* [arg0+0x17] */ # 5f8: e20c17 + s32i a2, sp, 0 /* a2 -> [(local0)] */ # 5fb: 2901 + l32i a3, a12, 96 /* [arg0+0x60] */ # 5fd: 322c18 + l8ui a2, a12, 1 /* [arg0+0x1] */ # 600: 220c01 + l8ui a3, a3, 0 /* [[arg0+0x60]] */ # 603: 320300 + call0 .Lfunc008 # 606: c5d7ff + l32i a0, a12, 96 /* [arg0+0x60] */ # 609: 022c18 + extui a2, a2, 1, 8 # 60c: 202174 + l8ui a3, a0, 9 /* [[arg0+0x60]+0x9] */ # 60f: 320009 + movi a5, 64 /* 0x00000040 */ # 612: 4c05 + bnez a3, .Lbr090 # 614: ccd3 + movi a4, 90 /* 0x0000005a */ # 616: 5ca4 + sub a4, a4, a2 # 618: 2044c0 + movi a2, 1 /* 0x00000001 */ # 61b: 0c12 + bltu a4, a14, .Lbr093 # 61d: e7342f + movi a2, 0 /* 0x00000000 */ # 620: 0c02 + j .Lbr093 # 622: 860a00 +.Lbr090: bltu a5, a3, .Lbr091 # 625: 37350f + movi a6, 100 /* 0x00000064 */ # 628: 62a064 + sub a6, a6, a2 # 62b: 2066c0 + movi a2, 1 /* 0x00000001 */ # 62e: 0c12 + bltu a6, a14, .Lbr093 # 630: e7361c + movi a2, 0 /* 0x00000000 */ # 633: 0c02 + j .Lbr093 # 635: c60500 +.Lbr091: movi a6, 0 /* 0x00000000 */ # 638: 0c06 + movi a7, 110 /* 0x0000006e */ # 63a: 72a06e + sub a7, a7, a2 # 63d: 2077c0 + bgeu a7, a14, .Lbr092 # 640: e7b709 + sub a8, a3, a2 # 643: 2083c0 + addi a8, a8, 2 # 646: 2b88 + bgeu a8, a14, .Lbr092 # 648: e7b801 + movi a6, 1 /* 0x00000001 */ # 64b: 0c16 +.Lbr092: extui a2, a6, 0, 8 # 64d: 602074 +.Lbr093: movi a14, 1 /* 0x00000001 */ # 650: 0c1e + beqz a2, .Lbr098 # 652: 16b204 + l32i a10, sp, 0 /* [(local0)] */ # 655: a801 + l32i a9, a12, 88 /* [arg0+0x58] */ # 657: 922c16 + bgeu a9, a10, .Lbr098 # 65a: a7b943 + mov a0, a14 /* 0x00000001 */ # 65d: 0d0e + j .Lbr103 # 65f: 062600 +.Lbr094: l32i a0, a12, 96 /* [arg0+0x60] */ # 662: 022c18 + l8ui a0, a0, 9 /* [[arg0+0x60]+0x9] */ # 665: 020009 + movi a3, 128 /* 0x00000080 */ # 668: 32a080 + addx2 a0, a0, a0 # 66b: 000090 + add a0, a0, a3 # 66e: 3a00 + extui a0, a0, 2, 8 # 670: 000274 + s8i a0, a12, 23 /* a0 -> [arg0+0x17] */ # 673: 024c17 + bgeu a0, a2, .Lbr095 # 676: 27b007 + add a3, a2, a0 # 679: 0a32 + srai a3, a3, 1 # 67b: 303121 + s8i a3, a12, 23 /* a3 -> [arg0+0x17] */ # 67e: 324c17 +.Lbr095: movi a4, 0 /* 0x00000000 */ # 681: 0c04 + s32i a4, a12, 40 /* 0x00000000 -> [arg0+0x28] */ # 683: 49ac + s32i a4, a12, 36 /* 0x00000000 -> [arg0+0x24] */ # 685: 499c + s32i a4, a12, 56 /* 0x00000000 -> [arg0+0x38] */ # 687: 49ec +.Lbr096: l32i a12, sp, 8 /* [(local2)] */ # 689: c821 + l32i a13, sp, 12 /* [(local3)] */ # 68b: d831 + l32i a14, sp, 16 /* [(local4)] */ # 68d: e841 + l32i a0, sp, 4 /* [(local1)] */ # 68f: 0811 + addi sp, sp, 32 /* (top of frame) */ # 691: 12c120 + ret # 694: 0df0 +.Lbr097: l32i a2, a12, 72 /* [arg0+0x48] */ # 696: 222c12 + l32i a3, a12, 52 /* [arg0+0x34] */ # 699: 38dc + call0 .Lfunc001 # 69b: 4596ff + j .Lbr096 # 69e: c6f9ff +.Lbr098: l8ui a5, a0, 11 /* [[arg0+0x60]+0xb] */ # 6a1: 52000b + movi a6, .Ldata006 # 6a4: 61b6ff + bbsi a5, 0, .Lbr099 # 6a7: 07e507 + l32i a6, a6, 0 /* [.Ldata006] */ # 6aa: 6806 + extui a6, a6, 0, 2 # 6ac: 606014 + bnez a6, .Lbr095 # 6af: 56e6fc +.Lbr099: l8ui a2, a12, 1 /* [arg0+0x1] */ # 6b2: 220c01 + l8ui a3, a0, 0 /* [[arg0+0x60]] */ # 6b5: 320000 + call0 .Lfunc008 # 6b8: 85ccff + l8ui a7, a12, 23 /* [arg0+0x17] */ # 6bb: 720c17 + l32i a0, a12, 96 /* [arg0+0x60] */ # 6be: 022c18 + extui a9, a2, 1, 8 # 6c1: 209174 + l8ui a8, a0, 9 /* [[arg0+0x60]+0x9] */ # 6c4: 820009 + l8ui a2, a0, 11 /* [[arg0+0x60]+0xb] */ # 6c7: 22000b + sub a8, a8, a9 # 6ca: 9088c0 + bge a7, a8, .Lbr101 # 6cd: 87a716 + bbci a2, 0, .Lbr100 # 6d0: 07620e + l32i a0, a12, 88 /* [arg0+0x58] */ # 6d3: 022c16 + movi a10, 0x003d0900 # 6d6: a1aaff + bltu a10, a0, .Lbr100 # 6d9: 073a05 + slli a11, a0, 1 # 6dc: f0b011 + s32i a11, a12, 88 /* a11 -> [arg0+0x58] */ # 6df: b26c16 +.Lbr100: movi a0, 2 /* 0x00000002 */ # 6e2: 0c20 + j .Lbr103 # 6e4: c60400 +.Lbr101: bbci a2, 0, .Lbr102 # 6e7: 07620e + movi a3, 0x0007a120 # 6ea: 31a6ff + movi a4, 254 /* 0x000000fe */ # 6ed: 42a0fe + and a4, a2, a4 # 6f0: 404210 + s8i a4, a0, 11 /* a4 -> [[arg0+0x60]+0xb] */ # 6f3: 42400b + s32i a3, a12, 88 /* 0x0007a120 -> [arg0+0x58] */ # 6f6: 326c16 +.Lbr102: movi a0, 0 /* 0x00000000 */ # 6f9: 0c00 +.Lbr103: bnei a0, 1, .Lbr105 # 6fb: 661030 + mov a2, a12 /* arg0 */ # 6fe: 2d0c + call0 .Lfunc005 # 700: 059bff + l32i a0, a12, 96 /* [arg0+0x60] */ # 703: 022c18 + l8ui a5, a12, 4 /* [arg0+0x4] */ # 706: 520c04 + l8ui a6, a0, 10 /* [[arg0+0x60]+0xa] */ # 709: 62000a + bltu a5, a6, .Lbr104 # 70c: 673502 + j .Lbr095 # 70f: 86dbff +.Lbr104: addi a9, a0, -12 /* [arg0+0x60]-0xc */ # 712: 92c0f4 + s32i a9, a12, 96 /* [arg0+0x60]-0xc -> [arg0+0x60] */ # 715: 926c18 + l8ui a8, a9, 11 /* [[arg0+0x60]-0x1] */ # 718: 82090b + or a8, a8, a14 # 71b: e08820 + s8i a8, a9, 11 /* a8 -> [[arg0+0x60]-0x1] */ # 71e: 82490b + memw # 721: c02000 + movi a7, 0x3ff20a00 # 724: 7199ff + l32i a7, a7, 0x200 /* [0x3ff20c00] */ # 727: 722780 + s32i a7, a12, 48 /* [0x3ff20c00] -> [arg0+0x30] */ # 72a: 79cc + j .Lbr095 # 72c: 46d4ff +.Lbr105: addi a9, a0, -2 # 72f: 92c0fe + bnez a9, .Lbr095 # 732: 56b9f4 + mov a2, a13 /* [0x3ff20c00] */ # 735: 2d0d + l32i a3, a12, 44 /* [arg0+0x2c] */ # 737: 38bc + call0 .Lfunc001 # 739: 458cff + movi a10, 0x000186a0 # 73c: a194ff + bltu a10, a2, .Lbr106 # 73f: 273a02 + j .Lbr095 # 742: c6ceff +.Lbr106: mov a2, a12 /* arg0 */ # 745: 2d0c + movi a3, 1 /* 0x00000001 */ # 747: 0c13 + call0 .Lfunc006 # 749: c598ff + j .Lbr095 # 74c: 46ccff + + .balign 4 +# Function @ .text+0x750 + .balign 4 + .global rcReachRetryLimit + .type rcReachRetryLimit, @function +rcReachRetryLimit: + l8ui a3, a2, 4 /* [arg0+0x4] */ # 750: 320204 + l32i a4, a2, 20 /* [arg0+0x14] */ # 753: 4852 + movi a2, 1 /* 0x00000001 */ # 755: 0c12 + l8ui a4, a4, 8 /* [[arg0+0x14]+0x8] */ # 757: 420408 + srli a3, a3, 4 # 75a: 303441 + bge a3, a4, .Lbr107 # 75d: 47a301 + movi a2, 0 /* 0x00000000 */ # 760: 0c02 +.Lbr107: ret # 762: 0df0 + + .literal_position # 764: 00000000 + +# Function @ .text+0x768 + .balign 4 + .global trc_NeedRTS + .type trc_NeedRTS, @function +trc_NeedRTS: + l32i a5, a2, 32 /* [arg0+0x20] */ # 768: 5882 + l8ui a5, a5, 8 /* [[arg0+0x20]+0x8] */ # 76a: 520508 + beqz a5, .Lbr108 # 76d: bce5 + beqi a5, 1, .Lbr111 # 76f: 261552 + beqi a5, 5, .Lbr111 # 772: 26554f + addi a6, a5, -10 /* [[arg0+0x20]+0x8]-0xa */ # 775: 62c5f6 + beqz a6, .Lbr115 # 778: 165607 + movi a7, 11 /* 0x0000000b */ # 77b: 0cb7 + beq a5, a7, .Lbr113 # 77d: 77155a + addi a8, a5, -15 /* [[arg0+0x20]+0x8]-0xf */ # 780: 82c5f1 + beqz a8, .Lbr117 # 783: 160808 + beqi a5, 16, .Lbr113 # 786: 26b551 + movi a9, 17 /* 0x00000011 */ # 789: 1c19 + beq a5, a9, .Lbr115 # 78b: 971562 + movi a10, 24 /* 0x00000018 */ # 78e: 1c8a + beq a5, a10, .Lbr113 # 790: a71547 + movi a11, 25 /* 0x00000019 */ # 793: 1c9b + beq a5, a11, .Lbr115 # 795: b71558 + l16ui a5, a2, 22 /* [arg0+0x16] */ # 798: 52120b + l16ui a4, a2, 20 /* [arg0+0x14] */ # 79b: 42120a + movi a3, lmacConfMib # 79e: 31f1ff + movi a2, 1 /* 0x00000001 */ # 7a1: 0c12 + l16ui a3, a3, 10 /* [lmacConfMib+0xa] */ # 7a3: 321305 + add a4, a4, a5 # 7a6: 5a44 + blt a3, a4, .Lbr110 # 7a8: 472317 + movi a2, 0 /* 0x00000000 */ # 7ab: 0c02 + ret /* 0x00000000 */ # 7ad: 0df0 +.Lbr108: movi a5, 1 /* 0x00000001 */ # 7af: 0c15 + l16ui a8, a2, 22 /* [arg0+0x16] */ # 7b1: 82120b + l16ui a7, a2, 20 /* [arg0+0x14] */ # 7b4: 72120a + movi a6, 625 /* 0x00000271 */ # 7b7: 62a271 + add a7, a7, a8 # 7ba: 8a77 + blt a6, a7, .Lbr109 # 7bc: 772601 + movi a5, 0 /* 0x00000000 */ # 7bf: 0c05 +.Lbr109: mov a2, a5 # 7c1: 2d05 +.Lbr110: ret # 7c3: 0df0 +.Lbr111: movi a5, 1 /* 0x00000001 */ # 7c5: 0c15 + l16ui a11, a2, 22 /* [arg0+0x16] */ # 7c7: b2120b + l16ui a10, a2, 20 /* [arg0+0x14] */ # 7ca: a2120a + movi a9, 1000 /* 0x000003e8 */ # 7cd: 92a3e8 + add a10, a10, a11 # 7d0: baaa + blt a9, a10, .Lbr112 # 7d2: a72901 + movi a5, 0 /* 0x00000000 */ # 7d5: 0c05 +.Lbr112: mov a2, a5 # 7d7: 2d05 + ret # 7d9: 0df0 +.Lbr113: movi a5, 1 /* 0x00000001 */ # 7db: 0c15 + l16ui a6, a2, 22 /* [arg0+0x16] */ # 7dd: 62120b + l16ui a4, a2, 20 /* [arg0+0x14] */ # 7e0: 42120a + movi a3, 700 /* 0x000002bc */ # 7e3: 32a2bc + add a4, a4, a6 # 7e6: 6a44 + blt a3, a4, .Lbr114 # 7e8: 472301 + movi a5, 0 /* 0x00000000 */ # 7eb: 0c05 +.Lbr114: mov a2, a5 # 7ed: 2d05 + ret # 7ef: 0df0 +.Lbr115: movi a5, 1 /* 0x00000001 */ # 7f1: 0c15 + l16ui a9, a2, 22 /* [arg0+0x16] */ # 7f3: 92120b + l16ui a8, a2, 20 /* [arg0+0x14] */ # 7f6: 82120a + movi a7, 1120 /* 0x00000460 */ # 7f9: 72a460 + add a8, a8, a9 # 7fc: 9a88 + blt a7, a8, .Lbr116 # 7fe: 872701 + movi a5, 0 /* 0x00000000 */ # 801: 0c05 +.Lbr116: mov a2, a5 # 803: 2d05 + ret # 805: 0df0 +.Lbr117: movi a5, 1 /* 0x00000001 */ # 807: 0c15 + l16ui a3, a2, 22 /* [arg0+0x16] */ # 809: 32120b + l16ui a11, a2, 20 /* [arg0+0x14] */ # 80c: b2120a + movi a10, 1050 /* 0x0000041a */ # 80f: a2a41a + add a11, a11, a3 # 812: 3abb + blt a10, a11, .Lbr118 # 814: b72a01 + movi a5, 0 /* 0x00000000 */ # 817: 0c05 +.Lbr118: mov a2, a5 # 819: 2d05 + ret # 81b: 0df0 + + .section .data, "aw", @progbits + +.Ldata001: .byte 0x0b, 0x02, 0x0b, 0x02, 0x0b, 0x02, 0x00, 0x05 + .byte 0x0b, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +.Ldata002: .byte 0x0c, 0x02, 0x08, 0x02, 0x0b, 0x02, 0x00, 0x05 + .byte 0x0b, 0x72, 0x00, 0x00, 0x08, 0x02, 0x0d, 0x02 + .byte 0x0b, 0x02, 0x00, 0x05, 0x0b, 0x65, 0x00, 0x00 + .byte 0x0d, 0x02, 0x09, 0x02, 0x0b, 0x02, 0x00, 0x05 + .byte 0x0b, 0x5c, 0x00, 0x00, 0x09, 0x02, 0x0e, 0x02 + .byte 0x0b, 0x02, 0x00, 0x05, 0x0b, 0x58, 0x00, 0x00 + .byte 0x0e, 0x02, 0x0a, 0x02, 0x0b, 0x02, 0x00, 0x05 + .byte 0x0b, 0x52, 0x00, 0x00, 0x0a, 0x02, 0x0f, 0x02 + .byte 0x0b, 0x02, 0x0b, 0x05, 0x0b, 0x4b, 0x00, 0x00 + .byte 0x0f, 0x02, 0x0b, 0x02, 0x0b, 0x02, 0x0b, 0x05 + .byte 0x0b, 0x38, 0x00, 0x00 +.Label001: .byte 0x0b, 0x02, 0x0b, 0x02, 0x0b, 0x02, 0x0b, 0x05 + .byte 0x0b, 0x40, 0x00, 0x00 +.Ldata003: .byte 0x0c, 0x02, 0x08, 0x02, 0x0b, 0x02, 0x00, 0x05 + .byte 0x0b, 0x72, 0x00, 0x00, 0x08, 0x02, 0x0d, 0x02 + .byte 0x0b, 0x02, 0x00, 0x05, 0x0b, 0x65, 0x00, 0x00 + .byte 0x0d, 0x02, 0x09, 0x02, 0x0b, 0x02, 0x00, 0x05 + .byte 0x0b, 0x5c, 0x00, 0x00, 0x09, 0x02, 0x0e, 0x02 + .byte 0x0b, 0x02, 0x00, 0x05, 0x0b, 0x58, 0x00, 0x00 + .byte 0x0e, 0x02, 0x0a, 0x02, 0x0b, 0x02, 0x00, 0x05 + .byte 0x0b, 0x52, 0x00, 0x00, 0x0a, 0x02, 0x0b, 0x02 + .byte 0x05, 0x02, 0x00, 0x05, 0x0b, 0x4b, 0x00, 0x00 + .byte 0x0f, 0x02, 0x0b, 0x02, 0x05, 0x02, 0x00, 0x05 + .byte 0x0b, 0x38, 0x00, 0x00 +.Label002: .byte 0x0b, 0x02, 0x05, 0x02, 0x00, 0x02, 0x00, 0x05 + .byte 0x0b, 0x40, 0x00, 0x00, 0x06, 0x02, 0x05, 0x02 + .byte 0x00, 0x02, 0x00, 0x05, 0x0b, 0x39, 0x00, 0x00 + .byte 0x05, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x05 + .byte 0x0b, 0x39, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02 + .byte 0x00, 0x02, 0x00, 0x05, 0x0b, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 +.Ldata004: .byte 0x07, 0x02, 0x06, 0x02, 0x05, 0x02, 0x00, 0x05 + .byte 0x0b, 0x40, 0x00, 0x00, 0x06, 0x02, 0x05, 0x02 + .byte 0x00, 0x02, 0x00, 0x05, 0x0b, 0x39, 0x00, 0x00 + .byte 0x05, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x05 + .byte 0x0b, 0x39, 0x00, 0x00 +.Label003: .byte 0x00, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x05 + .byte 0x0b, 0x00, 0x00, 0x00 +.Ldata005: .byte 0x1f, 0x02, 0x16, 0x02, 0x0b, 0x02, 0x00, 0x05 + .byte 0x0b, 0x72, 0x00, 0x00, 0x17, 0x02, 0x15, 0x02 + .byte 0x0b, 0x02, 0x00, 0x05, 0x0b, 0x72, 0x00, 0x00 + .byte 0x16, 0x02, 0x14, 0x02, 0x0b, 0x02, 0x00, 0x05 + .byte 0x0b, 0x72, 0x00, 0x00, 0x15, 0x02, 0x13, 0x02 + .byte 0x0b, 0x02, 0x00, 0x05, 0x0b, 0x60, 0x00, 0x00 + .byte 0x14, 0x02, 0x12, 0x02, 0x0b, 0x02, 0x00, 0x05 + .byte 0x0b, 0x55, 0x00, 0x00, 0x13, 0x02, 0x12, 0x02 + .byte 0x0b, 0x02, 0x00, 0x05, 0x0b, 0x4b, 0x00, 0x00 + .byte 0x12, 0x02, 0x11, 0x02, 0x0b, 0x02, 0x00, 0x05 + .byte 0x0b, 0x40, 0x00, 0x00, 0x11, 0x02, 0x0b, 0x02 + .byte 0x05, 0x02, 0x00, 0x05, 0x0b, 0x3b, 0x00, 0x00 + .byte 0x10, 0x02, 0x0b, 0x02, 0x05, 0x02, 0x00, 0x05 + .byte 0x0b, 0x32, 0x00, 0x00, 0x06, 0x02, 0x05, 0x02 + .byte 0x00, 0x02, 0x00, 0x05, 0x0b, 0x39, 0x00, 0x00 + .byte 0x05, 0x02, 0x00, 0x02, 0x00, 0x02, 0x00, 0x05 + .byte 0x0b, 0x39, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02 + .byte 0x00, 0x02, 0x00, 0x05, 0x0b, 0x00, 0x00, 0x00 +.Label004: .byte 0x1f, 0x02, 0x16, 0x02, 0x0b, 0x02, 0x00, 0x05 + .byte 0x0b, 0x72, 0x00, 0x00, 0x17, 0x02, 0x15, 0x02 + .byte 0x0b, 0x02, 0x00, 0x05, 0x0b, 0x72, 0x00, 0x00 + .byte 0x16, 0x02, 0x14, 0x02, 0x0b, 0x02, 0x00, 0x05 + .byte 0x0b, 0x72, 0x00, 0x00, 0x15, 0x02, 0x13, 0x02 + .byte 0x0b, 0x02, 0x00, 0x05, 0x0b, 0x60, 0x00, 0x00 + .byte 0x14, 0x02, 0x12, 0x02, 0x0b, 0x02, 0x00, 0x05 + .byte 0x0b, 0x55, 0x00, 0x00, 0x13, 0x02, 0x12, 0x02 + .byte 0x0b, 0x02, 0x00, 0x05, 0x0b, 0x4b, 0x00, 0x00 + .byte 0x12, 0x02, 0x11, 0x02, 0x10, 0x02, 0x0b, 0x05 + .byte 0x0b, 0x40, 0x00, 0x00, 0x11, 0x02, 0x10, 0x02 + .byte 0x0b, 0x02, 0x0b, 0x05, 0x0b, 0x3b, 0x00, 0x00 + .byte 0x10, 0x02, 0x0b, 0x02, 0x0b, 0x02, 0x0b, 0x05 + .byte 0x0b, 0x32, 0x00, 0x00 + + .section .bss, "aw", @nobits + +.Ldata006: .word 0x00000000 # 0: 00000000 +.Ldata007: .hword 0x0000 # 4: 0000 + .byte 0x00, 0x00 +.Ldata008: .hword 0x0000 # 8: 0000 + .balign 4 + .word 0x00000000 # c: 00000000 +.Label005: .space 600 + + .section .irom0.text, "ax", @progbits + +# Function @ .irom0.text+0x0 + .balign 4 +.Lfunc011: beqz a3, .Lbr120 # 0: 8cd3 + movi a6, 0 /* 0x00000000 */ # 2: 0c06 +.Lbr119: s8i a6, a2, 10 # 4: 62420a + addi a2, a2, 12 # 7: cb22 + addi a6, a6, 1 # 9: 1b66 + extui a6, a6, 0, 8 # b: 606074 + bne a3, a6, .Lbr119 # e: 6793f2 +.Lbr120: ret # 11: 0df0 + + .literal_position # 14: 84000000 + # 18: 24010000 + # 1c: 70000000 + # 20: 14000000 + # 24: c4000000 + # 28: b4000000 + +# Function @ .irom0.text+0x2c +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global rcUpdatePhyMode + .type rcUpdatePhyMode, @function +rcUpdatePhyMode: + movi a8, 3 /* 0x00000003 */ # 2c: 0c38 + movi a7, 0 /* 0x00000000 */ # 2e: 0c07 + addi sp, sp, -16 /* (local0) */ # 30: 12c1f0 + movi a6, .Lfunc004 # 33: 61f8ff + s8i a3, a2, 21 /* arg1 -> [arg0+0x15] */ # 36: 324215 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 39: 0901 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 3b: c911 + movi a0, .Label003 # 3d: 01f6ff + mov a12, a2 /* arg0 */ # 40: cd02 + l32i a2, a2, 92 /* [arg0+0x5c] */ # 42: 222217 + addi a9, a0, -36 /* .Ldata004 */ # 45: 92c0dc + beqz a2, .Lbr125 # 48: 164207 + beqi a2, 1, .Lbr122 # 4b: 261231 + s32i a9, a12, 104 /* .Ldata004 -> [arg0+0x68] */ # 4e: 926c1a + s8i a7, a12, 4 /* 0x00 -> [arg0+0x4] */ # 51: 724c04 + s8i a8, a12, 5 /* 0x03 -> [arg0+0x5] */ # 54: 824c05 + s32i a6, a12, 108 /* .Lfunc004 -> [arg0+0x6c] */ # 57: 626c1b + s32i a0, a12, 96 /* .Label003 -> [arg0+0x60] */ # 5a: 026c18 +.Lbr121: mov a2, a12 /* arg0 */ # 5d: 2d0c + s32i a0, a12, 100 /* a0 -> [arg0+0x64] */ # 5f: 026c19 + call0 .Lfunc005 # 62: 01f1ffc0 + # 66: 0000 + movi a0, 127 /* 0x0000007f */ # 68: 02a07f + s8i a0, a12, 0 /* 0x7f -> [arg0] */ # 6b: 024c00 + s8i a0, a12, 1 /* 0x7f -> [arg0+0x1] */ # 6e: 024c01 + s8i a0, a12, 2 /* 0x7f -> [arg0+0x2] */ # 71: 024c02 + s8i a0, a12, 3 /* 0x7f -> [arg0+0x3] */ # 74: 024c03 + l32i a12, sp, 4 /* [(local1)] */ # 77: c811 + l32i a0, sp, 0 /* [(local0)] */ # 79: 0801 + addi sp, sp, 16 /* (top of frame) */ # 7b: 12c110 + ret # 7e: 0df0 +.Lbr122: s8i a7, a12, 4 /* 0x00 -> [arg0+0x4] */ # 80: 724c04 + movi a11, .Label002 # 83: b1e8ff + movi a9, 7 /* 0x00000007 */ # 86: 0c79 + movi a6, 10 /* 0x0000000a */ # 88: 0ca6 + movi a5, .Ldata003 # 8a: 51e4ff + movi a10, .Lfunc002 # 8d: a1e4ff + s32i a10, a12, 108 /* .Lfunc002 -> [arg0+0x6c] */ # 90: a26c1b + addi a2, a5, -96 /* .Ldata002 */ # 93: 22c5a0 + movnez a6, a9, a4 # 96: 406993 + s8i a6, a12, 5 /* a6 -> [arg0+0x5] */ # 99: 624c05 + moveqz a2, a5, a4 # 9c: 402583 + s32i a2, a12, 104 /* a2 -> [arg0+0x68] */ # 9f: 226c1a + bgei a3, 12, .Lbr126 # a2: e6a32c + movi a0, 10 /* 0x0000000a */ # a5: 0ca0 +.Lbr123: beqz a4, .Lbr124 # a7: 8c34 + bltui a0, 8, .Lbr124 # a9: b68001 + movi a0, 7 /* 0x00000007 */ # ac: 0c70 +.Lbr124: addx2 a0, a0, a0 # ae: 000090 + addx4 a0, a0, a2 # b1: 2000a0 + s32i a0, a12, 96 /* a0 -> [arg0+0x60] */ # b4: 026c18 + addi a0, a11, -96 /* .Label001 */ # b7: 02cba0 + moveqz a0, a11, a4 # ba: 400b83 + j .Lbr121 # bd: 06e7ff +.Lbr125: s32i a9, a12, 104 /* .Ldata004 -> [arg0+0x68] */ # c0: 926c1a + s8i a7, a12, 4 /* 0x00 -> [arg0+0x4] */ # c3: 724c04 + s8i a8, a12, 5 /* 0x03 -> [arg0+0x5] */ # c6: 824c05 + s32i a6, a12, 108 /* .Lfunc004 -> [arg0+0x6c] */ # c9: 626c1b + s32i a0, a12, 96 /* .Label003 -> [arg0+0x60] */ # cc: 026c18 + j .Lbr121 # cf: 86e2ff +.Lbr126: movi a5, 16 /* 0x00000010 */ # d2: 1c05 + blt a5, a3, .Lbr127 # d4: 372504 + movi a0, 5 /* 0x00000005 */ # d7: 0c50 + j .Lbr123 # d9: 86f2ff +.Lbr127: movi a6, 21 /* 0x00000015 */ # dc: 1c56 + blt a6, a3, .Lbr128 # de: 372604 + mov a0, a8 /* 0x00000003 */ # e1: 0d08 + j .Lbr123 # e3: 06f0ff +.Lbr128: movi a0, 2 /* 0x00000002 */ # e6: 0c20 + movi a8, 30 /* 0x0000001e */ # e8: 1ce8 + blt a3, a8, .Lbr123 # ea: 8723b9 + mov a0, a7 /* 0x00000000 */ # ed: 0d07 + j .Lbr123 # ef: 06edff + + .literal_position # f4: 00000000 + # f8: 30010000 + # fc: c0010000 + # 100: 70000000 + # 104: 10000000 + # 108: 00010000 + +# Function @ .irom0.text+0x10c +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global rcAttach + .type rcAttach, @function +rcAttach: movi a4, .Ldata006 # 10c: 41faff + movi a5, 0 /* 0x00000000 */ # 10f: 0c05 + addi sp, sp, -16 /* (local0) */ # 111: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 114: 0901 + s16i a5, a4, 4 /* 0x0000 -> [.Ldata007] */ # 116: 525402 + addi a0, a4, 8 /* .Ldata008 */ # 119: 8b04 + addi a4, a4, 12 /* .bss+0xc */ # 11b: cb44 +.Lbr129: s16i a5, a0, 0 # 11d: 525000 + addi a0, a0, 2 # 120: 2b00 + bne a0, a4, .Lbr129 # 122: 4790f7 + movi a2, .Ldata005 # 125: 21f4ff + movi a3, 12 /* 0x0000000c */ # 128: 0cc3 + call0 .Lfunc011 # 12a: 45edff + movi a2, .Label004 # 12d: 21f3ff + movi a3, 9 /* 0x00000009 */ # 130: 0c93 + call0 .Lfunc011 # 132: c5ecff + movi a2, .Ldata003 # 135: 21f2ff + movi a3, 11 /* 0x0000000b */ # 138: 0cb3 + call0 .Lfunc011 # 13a: 45ecff + movi a2, .Ldata002 # 13d: 21f1ff + movi a3, 8 /* 0x00000008 */ # 140: 0c83 + call0 .Lfunc011 # 142: c5ebff + movi a2, .Ldata004 # 145: 21f0ff + movi a3, 4 /* 0x00000004 */ # 148: 0c43 + call0 .Lfunc011 # 14a: 45ebff + l32i a0, sp, 0 /* [(local0)] */ # 14d: 0801 + addi sp, sp, 16 /* (top of frame) */ # 14f: 12c110 + ret # 152: 0df0 + + .literal_position # 154: 10000000 + +# Function @ .irom0.text+0x158 + .balign 4 + .global rcGetTrc + .type rcGetTrc, @function +rcGetTrc: movi a2, .Label005 # 158: 21ffff + ret /* .Label005 */ # 15b: 0df0 + + .balign 4 +# Function @ .irom0.text+0x160 + .balign 4 + .global trc_onDisconnect + .type trc_onDisconnect, @function +trc_onDisconnect: + ret /* arg0 */ # 160: 0df0 + + .balign 4 +# Function @ .irom0.text+0x164 + .balign 4 + .global trc_onScanStart + .type trc_onScanStart, @function +trc_onScanStart: + beqz a2, .Lbr130 # 164: 9ca2 + l8ui a3, a2, 20 /* [arg0+0x14] */ # 166: 320214 + movi a4, 254 /* 0x000000fe */ # 169: 42a0fe + and a3, a3, a4 # 16c: 403310 + movi a4, 1 /* 0x00000001 */ # 16f: 0c14 + or a3, a3, a4 # 171: 403320 + movi a4, 251 /* 0x000000fb */ # 174: 42a0fb + and a3, a3, a4 # 177: 403310 + movi a4, 4 /* 0x00000004 */ # 17a: 0c44 + or a3, a3, a4 # 17c: 403320 + s8i a3, a2, 20 /* a3 -> [arg0+0x14] */ # 17f: 324214 +.Lbr130: ret /* arg0 */ # 182: 0df0 + +# Function @ .irom0.text+0x184 + .balign 4 + .global trc_onScanDone + .type trc_onScanDone, @function +trc_onScanDone: + beqz a2, .Lbr131 # 184: 9c02 + l8ui a3, a2, 20 /* [arg0+0x14] */ # 186: 320214 + movi a4, 254 /* 0x000000fe */ # 189: 42a0fe + and a3, a3, a4 # 18c: 403310 + movi a4, 251 /* 0x000000fb */ # 18f: 42a0fb + and a3, a3, a4 # 192: 403310 + s8i a3, a2, 20 /* a3 -> [arg0+0x14] */ # 195: 324214 +.Lbr131: ret /* arg0 */ # 198: 0df0 + + .literal_position # 19c: 10000000 + # 1a0: 00000000 + # 1a4: 08000000 + # 1a8: 18000000 + # 1ac: 00000000 + # 1b0: 00000000 + # 1b4: 00000000 + # 1b8: 00000000 + # 1bc: 00000000 + +# Function @ .irom0.text+0x1c0 +# Local variables/stack: +# (local0): word @ -0x30 +# (local1): word @ -0x2c +# (local2): word @ -0x28 +# (local3): word @ -0x24 +# (local4): word @ -0x20 +# (local5): word @ -0x1c +# (local6): word @ -0x18 +# (local7): word @ -0x14 +# (local8): word[4] @ -0x10 + .balign 4 + .global rc_enable_trc + .type rc_enable_trc, @function +rc_enable_trc: + movi a9, 1 /* 0x00000001 */ # 1c0: 0c19 + ssr a4 # 1c2: 000440 + movi a7, .Label005 # 1c5: 71f5ff + addi sp, sp, -48 /* (local0) */ # 1c8: 12c1d0 + s32i a13, sp, 20 /* a13 -> [(local5)] */ # 1cb: d951 + s32i a5, sp, 4 /* arg3 -> [(local1)] */ # 1cd: 5911 + s32i a3, sp, 0 /* arg1 -> [(local0)] */ # 1cf: 3901 + s32i a14, sp, 24 /* a14 -> [(local6)] */ # 1d1: e961 + s32i a12, sp, 16 /* a12 -> [(local4)] */ # 1d3: c941 + s32i a0, sp, 12 /* a0 -> [(local3)] */ # 1d5: 0931 + mov a12, a4 # 1d7: cd04 + addi a8, a7, -16 /* .Ldata006 */ # 1d9: 82c7f0 + l16ui a0, a8, 4 /* [.Ldata007] */ # 1dc: 021802 + addi a4, a7, -8 /* .Ldata008 */ # 1df: 42c7f8 + addx2 a4, a2, a4 # 1e2: 404290 + l16ui a14, a4, 0 # 1e5: e21400 + srl a6, a0 # 1e8: 006091 + bbci a6, 0, .Lbr133 # 1eb: 07663c + s32i a4, sp, 28 /* a4 -> [(local7)] */ # 1ee: 4971 + s32i a0, sp, 32 /* [.Ldata007] -> [(local8)] */ # 1f0: 0981 + ssr a12 # 1f2: 000c40 + srl a5, a14 # 1f5: e05091 + bbci a5, 0, .Lbr132 # 1f8: 076521 + l32i a3, sp, 0 /* [(local0)] */ # 1fb: 3801 + movi a4, 6 /* 0x00000006 */ # 1fd: 0c64 + movi a13, 120 /* 0x00000078 */ # 1ff: d2a078 + mul16u a13, a13, a12 # 202: c0ddc1 + add a13, a7, a13 # 205: dad7 + addi a2, a13, 26 # 207: 22cd1a + s32i a2, sp, 8 /* a2 -> [(local2)] */ # 20a: 2921 + call0 memcmp # 20c: 01e8ffc0 + # 210: 0000 + l32i a0, sp, 32 /* [(local8)] */ # 212: 0881 + l32i a4, sp, 28 /* [(local7)] */ # 214: 4871 + movi a8, .Ldata006 # 216: 81e2ff + movi a9, 1 /* 0x00000001 */ # 219: 0c19 + beqz a2, .Lbr134 # 21b: 9cb2 +.Lbr132: movi a2, .Lstr002 # 21d: 21e1ff + call0 printf # 220: 01e4ffc0 + # 224: 0000 + movi a13, 0 /* 0x00000000 */ # 226: 0c0d + j .Lbr135 # 228: 861200 +.Lbr133: addi a3, a7, 26 /* .bss+0x2a */ # 22b: 32c71a + movi a2, 120 /* 0x00000078 */ # 22e: 22a078 + mul16u a2, a2, a12 # 231: c022c1 + add a13, a2, a7 # 234: 7ad2 + add a2, a2, a3 # 236: 3a22 + s32i a2, sp, 8 /* a2 -> [(local2)] */ # 238: 2921 +.Lbr134: ssl a12 # 23a: 001c40 + mov a2, a13 # 23d: 2d0d + sll a3, a9 # 23f: 0039a1 + or a5, a3, a0 # 242: 005320 + or a3, a3, a14 # 245: e03320 + s16i a5, a8, 4 /* a5 -> [.Ldata007] */ # 248: 525802 + s16i a3, a4, 0 # 24b: 325400 + movi a3, 120 /* 0x00000078 */ # 24e: 32a078 + call0 bzero # 251: 01d8ffc0 + # 255: 0000 + s8i a12, a13, 118 # 257: c24d76 + l32i a2, sp, 8 /* [(local2)] */ # 25a: 2821 + l32i a3, sp, 0 /* [(local0)] */ # 25c: 3801 + movi a4, 6 /* 0x00000006 */ # 25e: 0c64 + l32i a6, sp, 4 /* [(local1)] */ # 260: 6811 + s16i a6, a13, 32 # 262: 625d10 + call0 memcpy # 265: 01d4ffc0 + # 269: 0000 + mov a3, a12 # 26b: 3d0c + movi a2, .Lstr003 # 26d: 21ceff + call0 printf # 270: 01d3ffc0 + # 274: 0000 +.Lbr135: l32i a0, sp, 12 /* [(local3)] */ # 276: 0831 + l32i a12, sp, 16 /* [(local4)] */ # 278: c841 + mov a2, a13 # 27a: 2d0d + l32i a14, sp, 24 /* [(local6)] */ # 27c: e861 + l32i a13, sp, 20 /* [(local5)] */ # 27e: d851 + addi sp, sp, 48 /* (top of frame) */ # 280: 12c130 + ret # 283: 0df0 + + .literal_position # 288: 00000000 + +# Function @ .irom0.text+0x28c + .balign 4 + .global rc_get_mask + .type rc_get_mask, @function +rc_get_mask: + movi a2, .Ldata006 # 28c: 21ffff + l8ui a2, a2, 4 /* [.Ldata007] */ # 28f: 220204 + ret /* [.Ldata007] */ # 292: 0df0 + + .literal_position # 294: 08000000 + # 298: 00000000 + # 29c: 20000000 + # 2a0: 2c000000 + # 2a4: 00000000 + # 2a8: 00000000 + # 2ac: 00000000 + +# Function @ .irom0.text+0x2b0 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word @ -0x8 +# (local3): word @ -0x4 + .balign 4 + .global rc_disable_trc + .type rc_disable_trc, @function +rc_disable_trc: + addi sp, sp, -16 /* (local0) */ # 2b0: 12c1f0 + s32i a0, sp, 8 /* a0 -> [(local2)] */ # 2b3: 0921 + s32i a12, sp, 12 /* a12 -> [(local3)] */ # 2b5: c931 + movi a0, .Ldata008 # 2b7: 01f7ff + mov a12, a4 /* arg2 */ # 2ba: cd04 + ssr a12 # 2bc: 000c40 + addx2 a4, a2, a0 # 2bf: 004290 + s32i a4, sp, 0 /* a4 -> [(local0)] */ # 2c2: 4901 + l16ui a4, a4, 0 # 2c4: 421400 + s32i a4, sp, 4 /* a4 -> [(local1)] */ # 2c7: 4911 + srl a4, a4 # 2c9: 404091 + bbci a4, 0, .Lbr136 # 2cc: 076445 + addi a2, a0, 8 /* .Label005 */ # 2cf: 8b20 + movi a4, 120 /* 0x00000078 */ # 2d1: 42a078 + mul16s a4, a4, a12 # 2d4: c044d1 + add a2, a2, a4 # 2d7: 4a22 + addi a2, a2, 26 # 2d9: 22c21a + movi a4, 6 /* 0x00000006 */ # 2dc: 0c64 + call0 memcmp # 2de: 01f1ffc0 + # 2e2: 0000 + bnez a2, .Lbr136 # 2e4: ecd2 + movi a2, .Lstr004 # 2e6: 21edff + l32i a9, sp, 0 /* [(local0)] */ # 2e9: 9801 + movi a8, -1 /* 0xffffffff */ # 2eb: 7cf8 + movi a6, .Ldata006 # 2ed: 61eaff + ssl a12 # 2f0: 001c40 + movi a7, 1 /* 0x00000001 */ # 2f3: 0c17 + sll a7, a7 # 2f5: 0077a1 + l16ui a5, a6, 4 /* [.Ldata007] */ # 2f8: 521602 + xor a7, a7, a8 # 2fb: 807730 + l32i a8, sp, 4 /* [(local1)] */ # 2fe: 8811 + and a5, a5, a7 # 300: 705510 + s16i a5, a6, 4 /* a5 -> [.Ldata007] */ # 303: 525602 + and a8, a8, a7 # 306: 708810 + s16i a8, a9, 0 /* a8 -> [[(local0)]] */ # 309: 825900 + call0 printf # 30c: 01e7ffc0 + # 310: 0000 + j .Lbr137 # 312: 060200 +.Lbr136: movi a2, .Lstr005 # 315: 21e2ff + call0 printf # 318: 01e5ffc0 + # 31c: 0000 +.Lbr137: l32i a12, sp, 12 /* [(local3)] */ # 31e: c831 + l32i a0, sp, 8 /* [(local2)] */ # 320: 0821 + addi sp, sp, 16 /* (top of frame) */ # 322: 12c110 + ret # 325: 0df0 + + .literal_position # 328: 00000000 + +# Function @ .irom0.text+0x32c + .balign 4 + .global rc_disable_trc_by_interface + .type rc_disable_trc_by_interface, @function +rc_disable_trc_by_interface: + movi a6, .Ldata006 # 32c: 61ffff + movi a3, 0 /* 0x00000000 */ # 32f: 0c03 + l16ui a7, a6, 4 /* [.Ldata007] */ # 331: 721602 + addi a4, a6, 8 /* .Ldata008 */ # 334: 8b46 + addx2 a4, a2, a4 # 336: 404290 + l16ui a5, a4, 0 # 339: 521400 + s16i a3, a4, 0 # 33c: 325400 + xor a5, a5, a7 # 33f: 705530 + s16i a5, a6, 4 /* a5 -> [.Ldata007] */ # 342: 525602 + ret /* arg0 */ # 345: 0df0 + + .literal_position # 348: 08000000 + # 34c: 10000000 + # 350: 00000000 + +# Function @ .irom0.text+0x354 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global rc_get_sta_trc + .type rc_get_sta_trc, @function +rc_get_sta_trc: + addi sp, sp, -16 /* (local0) */ # 354: 12c1f0 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 357: 0911 + movi a0, .Ldata008 # 359: 01fbff + addx2 a0, a2, a0 # 35c: 000290 + l16ui a2, a0, 0 # 35f: 221000 + s32i a2, sp, 0 /* a2 -> [(local0)] */ # 362: 2901 + call0 __popcountsi2 # 364: 01fbffc0 + # 368: 0000 + movi a5, 120 /* 0x00000078 */ # 36a: 52a078 + l32i a4, sp, 0 /* [(local0)] */ # 36d: 4801 + l32i a0, sp, 4 /* [(local1)] */ # 36f: 0811 + neg a3, a4 # 371: 403060 + addi sp, sp, 16 /* (top of frame) */ # 374: 12c110 + and a3, a3, a4 # 377: 403310 + addi a4, a2, -1 # 37a: 0b42 + nsau a3, a3 # 37c: 30f340 + neg a3, a3 # 37f: 303060 + movi a2, .Label005 # 382: 21f2ff + addi a3, a3, 31 # 385: 32c31f + mull a3, a3, a5 # 388: 503382 + add a2, a2, a3 # 38b: 3a22 + movi a3, 0 /* 0x00000000 */ # 38d: 0c03 + movnez a2, a3, a4 # 38f: 402393 + ret # 392: 0df0 + + .literal_position # 394: 08000000 + # 398: 10000000 + # 39c: 00000000 + +# Function @ .irom0.text+0x3a0 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word[4] @ -0x10 + .balign 4 + .global rc_get_trc + .type rc_get_trc, @function +rc_get_trc: addi sp, sp, -32 /* (local0) */ # 3a0: 12c1e0 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 3a3: d921 + s32i a15, sp, 16 /* a15 -> [(local4)] */ # 3a5: f941 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 3a7: 0901 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 3a9: c911 + movi a12, .Ldata008 # 3ab: c1faff + s32i a14, sp, 12 /* a14 -> [(local3)] */ # 3ae: e931 + addx2 a12, a2, a12 # 3b0: c0c290 + l8ui a12, a12, 0 # 3b3: c20c00 + mov a14, a3 /* arg1 */ # 3b6: ed03 +.Lbr138: neg a13, a12 # 3b8: c0d060 + and a13, a13, a12 # 3bb: c0dd10 + nsau a13, a13 # 3be: d0fd40 + neg a13, a13 # 3c1: d0d060 + addi a13, a13, 31 # 3c4: d2cd1f + bltz a13, .Lbr139 # 3c7: 96fd02 + mov a3, a14 /* arg1 */ # 3ca: 3d0e + movi a4, 6 /* 0x00000006 */ # 3cc: 0c64 + movi a15, .Label005 # 3ce: f1f2ff + movi a0, 120 /* 0x00000078 */ # 3d1: 02a078 + mull a0, a13, a0 # 3d4: 000d82 + add a15, a15, a0 # 3d7: 0aff + addi a2, a15, 26 # 3d9: 22cf1a + call0 memcmp # 3dc: 01f0ffc0 + # 3e0: 0000 + beqz a2, .Lbr141 # 3e2: ac52 + movi a0, -1 /* 0xffffffff */ # 3e4: 7cf0 + ssl a13 # 3e6: 001d40 + movi a15, 1 /* 0x00000001 */ # 3e9: 0c1f + sll a15, a15 # 3eb: 00ffa1 + xor a15, a15, a0 # 3ee: 00ff30 + and a12, a12, a15 # 3f1: f0cc10 + extui a12, a12, 0, 8 # 3f4: c0c074 + j .Lbr138 # 3f7: 46efff +.Lbr139: movi a2, 0 /* 0x00000000 */ # 3fa: 0c02 +.Lbr140: l32i a12, sp, 4 /* [(local1)] */ # 3fc: c811 + l32i a13, sp, 8 /* [(local2)] */ # 3fe: d821 + l32i a14, sp, 12 /* [(local3)] */ # 400: e831 + l32i a15, sp, 16 /* [(local4)] */ # 402: f841 + l32i a0, sp, 0 /* [(local0)] */ # 404: 0801 + addi sp, sp, 32 /* (top of frame) */ # 406: 12c120 + ret # 409: 0df0 +.Lbr141: mov a2, a15 # 40b: 2d0f + j .Lbr140 # 40d: c6faff + + .literal_position # 410: 00000000 + +# Function @ .irom0.text+0x414 + .balign 4 + .global rc_get_trc_by_index + .type rc_get_trc_by_index, @function +rc_get_trc_by_index: + movi a4, .Ldata006 # 414: 41ffff + ssr a2 # 417: 000240 + l16ui a3, a4, 4 /* [.Ldata007] */ # 41a: 321402 + addi a5, a4, 16 /* .Label005 */ # 41d: 52c410 + srl a3, a3 # 420: 303091 + bbci a3, 0, .Lbr142 # 423: 076309 + movi a3, 120 /* 0x00000078 */ # 426: 32a078 + mul16u a2, a3, a2 # 429: 2023c1 + add a2, a5, a2 # 42c: 2a25 + ret # 42e: 0df0 +.Lbr142: movi a2, 0 /* 0x00000000 */ # 430: 0c02 + ret /* 0x00000000 */ # 432: 0df0 + + .literal_position # 434: 00000000 + # 438: 00000000 + # 43c: 00000000 + +# Function @ .irom0.text+0x440 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global rc_only_sta_trc + .type rc_only_sta_trc, @function +rc_only_sta_trc: + movi a2, .Ldata006 # 440: 21fdff + addi sp, sp, -16 /* (local0) */ # 443: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 446: 0901 + l16ui a2, a2, 4 /* [.Ldata007] */ # 448: 221202 + call0 __popcountsi2 # 44b: 01fcffc0 + # 44f: 0000 + l32i a0, sp, 0 /* [(local0)] */ # 451: 0801 + bnei a2, 1, .Lbr143 # 453: 66120f + movi a4, .Ldata006 # 456: 41f8ff + movi a3, 1 /* 0x00000001 */ # 459: 0c13 + l16ui a4, a4, 8 /* [.Ldata008] */ # 45b: 421404 + movi a2, 0 /* 0x00000000 */ # 45e: 0c02 + moveqz a2, a3, a4 # 460: 402383 + j .Lbr144 # 463: 460000 +.Lbr143: movi a2, -1 /* 0xffffffff */ # 466: 7cf2 +.Lbr144: addi sp, sp, 16 /* (top of frame) */ # 468: 12c110 + ret # 46b: 0df0 + + .section .rodata.str1.4, "MSa", @progbits, 1 + +.Lstr001: .asciz "==dl\n" # 0: 3d3d646c + # 4: 0a00 + .balign 4 +.Lstr002: .asciz "add mismatch\n" # 8: 61646420 + # c: 6d69736d + # 10: 61746368 + # 14: 0a00 + .balign 4 +.Lstr003: .asciz "add %d\n" # 18: 61646420 + # 1c: 25640a00 +.Lstr004: .asciz "rm match\n" # 20: 726d206d + # 24: 61746368 + # 28: 0a00 + .balign 4 +.Lstr005: .asciz "rm mismatch\n" # 2c: 726d206d + # 30: 69736d61 + # 34: 7463680a + # 38: 00 diff --git a/binary_sdk/libpp_stage1/wdev.S b/binary_sdk/libpp_stage1/wdev.S new file mode 100644 index 0000000..afc9bf1 --- /dev/null +++ b/binary_sdk/libpp_stage1/wdev.S @@ -0,0 +1,3323 @@ + + .section .text, "ax", @progbits + + .literal_position # 0: 00000000 + # 4: 00fef13f + # 8: ffffff0f + # c: 000af23f + +# Function @ .text+0x10 + .balign 4 +.Lfunc001: movi a5, .Lrel143 # 10: 51fcff + l32i a5, a5, 0 /* [.Lrel143] */ # 13: 5805 + l16ui a4, a5, 0 /* [[.Lrel143]] */ # 15: 421500 + l16ui a10, a5, 2 /* [[.Lrel143]+0x2] */ # 18: a21501 + sub a4, a4, a2 # 1b: 2044c0 + s16i a4, a5, 0 /* a4 -> [[.Lrel143]] */ # 1e: 425500 + l16ui a6, a5, 0 /* [[.Lrel143]] */ # 21: 621500 + movi a2, 0 /* 0x00000000 */ # 24: 0c02 + bltui a6, 2, .Lbr001 # 26: b62608 + l32i a6, a3, 8 /* [arg1+0x8] */ # 29: 6823 + s32i a6, a5, 8 /* [arg1+0x8] -> [[.Lrel143]+0x8] */ # 2b: 6925 + s32i a2, a3, 8 /* 0x00000000 -> [arg1+0x8] */ # 2d: 2923 + j .Lbr004 # 2f: 060f00 +.Lbr001: bnei a6, 1, .Lbr002 # 32: 66160f + l32i a9, a3, 8 /* [arg1+0x8] */ # 35: 9823 + s32i a9, a5, 8 /* [arg1+0x8] -> [[.Lrel143]+0x8] */ # 37: 9925 + s32i a2, a3, 8 /* 0x00000000 -> [arg1+0x8] */ # 39: 2923 + l32i a8, a5, 12 /* [[.Lrel143]+0xc] */ # 3b: 8835 + addi a7, a5, 24 /* [.Lrel143]+0x18 */ # 3d: 72c518 + s32i a7, a8, 8 /* [.Lrel143]+0x18 -> [[[.Lrel143]+0xc]+0x8] */ # 40: 7928 + j .Lbr004 # 42: 460a00 +.Lbr002: s16i a2, a5, 2 /* 0x0000 -> [[.Lrel143]+0x2] */ # 45: 225501 + s16i a10, a5, 0 /* [[.Lrel143]+0x2] -> [[.Lrel143]] */ # 48: a25500 + l32i a6, a5, 20 /* [[.Lrel143]+0x14] */ # 4b: 6855 + l32i a11, a5, 16 /* [[.Lrel143]+0x10] */ # 4d: b845 + s32i a11, a5, 8 /* [[.Lrel143]+0x10] -> [[.Lrel143]+0x8] */ # 4f: b925 + s32i a2, a5, 16 /* 0x00000000 -> [[.Lrel143]+0x10] */ # 51: 2945 + s32i a6, a5, 12 /* [[.Lrel143]+0x14] -> [[.Lrel143]+0xc] */ # 53: 6935 + s32i a2, a5, 20 /* 0x00000000 -> [[.Lrel143]+0x14] */ # 55: 2955 + extui a10, a10, 0, 16 # 57: a0a0f4 + bnei a10, 1, .Lbr003 # 5a: 661a04 + addi a4, a5, 24 /* [.Lrel143]+0x18 */ # 5d: 42c518 + s32i a4, a6, 8 /* [.Lrel143]+0x18 -> [[[.Lrel143]+0x14]+0x8] */ # 60: 4926 +.Lbr003: s32i a2, a3, 8 /* 0x00000000 -> [arg1+0x8] */ # 62: 2923 + movi a7, 0x3ff1fe00 # 64: 71e8ff + l32i a6, a5, 8 /* [[.Lrel143]+0x8] */ # 67: 6825 + memw # 69: c02000 + s32i a6, a7, 0x208 /* [[.Lrel143]+0x8] -> [0x3ff20008] */ # 6c: 626782 +.Lbr004: l16ui a9, a5, 2 /* [[.Lrel143]+0x2] */ # 6f: 921501 + l16ui a8, a5, 0 /* [[.Lrel143]] */ # 72: 821500 + movi a2, 0x0fffffff # 75: 21e4ff + add a8, a8, a9 # 78: 9a88 + bgei a8, 2, .Lbr005 # 7a: e62820 + movi a11, 0x3ff20a00 # 7d: b1e3ff + memw # 80: c02000 + l32i a3, a11, 0x2a8 /* [0x3ff20ca8] */ # 83: 322baa + and a3, a3, a2 # 86: 203310 + memw # 89: c02000 + s32i a3, a11, 0x2a8 /* a3 -> [0x3ff20ca8] */ # 8c: 326baa + memw # 8f: c02000 + l32i a10, a11, 0x2ac /* [0x3ff20cac] */ # 92: a22bab + and a10, a10, a2 # 95: 20aa10 + memw # 98: c02000 + s32i a10, a11, 0x2ac /* a10 -> [0x3ff20cac] */ # 9b: a26bab +.Lbr005: ret /* 0x0fffffff */ # 9e: 0df0 + + .literal_position # a0: 00000000 + # a4: 00000000 + # a8: 2c010000 + # ac: 00000000 + +# Function @ .text+0xb0 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word @ -0x10 +# (local5): word[3] @ -0xc + .balign 4 +.Lfunc002: mov a8, a2 /* arg0 */ # b0: 8d02 + addi sp, sp, -32 /* (local0) */ # b2: 12c1e0 + s32i a12, sp, 12 /* a12 -> [(local3)] */ # b5: c931 + movi a2, 7 /* 0x00000007 */ # b7: 0c72 + s32i a6, sp, 0 /* arg4 -> [(local0)] */ # b9: 6901 + s32i a0, sp, 8 /* a0 -> [(local2)] */ # bb: 0921 + s32i a13, sp, 16 /* a13 -> [(local4)] */ # bd: d941 + s32i a14, sp, 20 /* a14 -> [(local5)] */ # bf: e951 + mov a13, a5 /* arg3 */ # c1: dd05 + mov a14, a4 /* arg2 */ # c3: ed04 + s32i a8, sp, 4 /* arg0 -> [(local1)] */ # c5: 8911 + call0 esf_rx_buf_alloc # c7: 01f7ffc0 + # cb: 0000 + mov a12, a2 # cd: cd02 + bnez a2, .Lbr006 # cf: ccb2 + mov a3, a13 /* arg3 */ # d1: 3d0d + mov a2, a14 /* arg2 */ # d3: 2d0e + call0 .Lfunc003 # d5: 01f4ffc0 + # d9: 0000 + j .Lbr007 # db: 060f00 +.Lbr006: movi a3, .Lrel143 # de: 31f0ff + l32i a5, a2, 32 # e1: 5882 + l32i a4, sp, 0 /* [(local0)] */ # e3: 4801 + s32i a4, a5, 4 # e5: 4915 + l32i a3, a3, 0 /* [.Lrel143] */ # e7: 3803 + l32i a4, sp, 4 /* [(local1)] */ # e9: 4811 + s32i a4, a5, 8 # eb: 4925 + l32i a3, a3, 8 /* [[.Lrel143]+0x8] */ # ed: 3823 + s32i a14, a2, 8 # ef: e922 + s32i a3, a2, 4 # f1: 3912 + s16i a13, a2, 12 # f3: d25206 + l32i a3, a3, 4 /* [[[.Lrel143]+0x8]+0x4] */ # f6: 3813 + s32i a3, a2, 16 # f8: 3942 + mov a3, a14 /* arg2 */ # fa: 3d0e + movi a2, 191 /* 0x000000bf */ # fc: 22a0bf + memw # ff: c02000 + l8ui a0, a14, 3 /* [arg2+0x3] */ # 102: 020e03 + and a0, a0, a2 # 105: 200010 + mov a2, a13 /* arg3 */ # 108: 2d0d + memw # 10a: c02000 + s8i a0, a14, 3 /* a0 -> [arg2+0x3] */ # 10d: 024e03 + call0 .Lfunc001 # 110: c5efff + mov a2, a12 # 113: 2d0c + call0 lmacRxDone # 115: 01e5ffc0 + # 119: 0000 +.Lbr007: l32i a12, sp, 12 /* [(local3)] */ # 11b: c831 + l32i a13, sp, 16 /* [(local4)] */ # 11d: d841 + l32i a14, sp, 20 /* [(local5)] */ # 11f: e851 + l32i a0, sp, 8 /* [(local2)] */ # 121: 0821 + addi sp, sp, 32 /* (top of frame) */ # 123: 12c120 + ret # 126: 0df0 + + .literal_position # 128: 00000000 + +# Function @ .text+0x12c +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word @ -0x8 +# (local3): word @ -0x4 + .balign 4 +.Lfunc003: addi sp, sp, -16 /* (local0) */ # 12c: 12c1f0 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 12f: 0911 + s32i a12, sp, 8 /* a12 -> [(local2)] */ # 131: c921 + s32i a13, sp, 12 /* a13 -> [(local3)] */ # 133: d931 + mov a12, a3 /* arg1 */ # 135: cd03 + mov a13, a2 /* arg0 */ # 137: dd02 + movi a0, wDevCtrl # 139: 01fbff + mov a2, a3 /* arg1 */ # 13c: 2d03 + l32i a0, a0, 8 /* [.Ldata005] */ # 13e: 0820 + mov a3, a13 /* arg0 */ # 140: 3d0d + s32i a0, sp, 0 /* [.Ldata005] -> [(local0)] */ # 142: 0901 + call0 .Lfunc001 # 144: 85ecff + mov a4, a12 /* arg1 */ # 147: 4d0c + mov a3, a13 /* arg0 */ # 149: 3d0d + l32i a2, sp, 0 /* [(local0)] */ # 14b: 2801 + call0 wDev_AppendRxBlocks # 14d: 050000 + l32i a12, sp, 8 /* [(local2)] */ # 150: c821 + l32i a13, sp, 12 /* [(local3)] */ # 152: d831 + l32i a0, sp, 4 /* [(local1)] */ # 154: 0811 + addi sp, sp, 16 /* (top of frame) */ # 156: 12c110 + ret # 159: 0df0 + + .literal_position # 15c: 00000000 + # 160: 00000000 + +# Function @ .text+0x164 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 +.Lfunc004: mov a6, a2 /* arg0 */ # 164: 6d02 + movi a7, wDevCtrl # 166: 71fdff + mov a4, a3 /* arg1 */ # 169: 4d03 + addi sp, sp, -16 /* (local0) */ # 16b: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 16e: 0901 + l32i a5, a2, 8 /* [arg0+0x8] */ # 170: 5822 + movi a3, .Lrel143 # 172: 31fbff + l32i a2, a7, 48 /* [.Ldata006] */ # 175: 28c7 + l32i a3, a3, 0 /* [.Lrel143] */ # 177: 3803 + s32i a5, a7, 48 /* [arg0+0x8] -> [.Ldata006] */ # 179: 59c7 + movi a5, 0 /* 0x00000000 */ # 17b: 0c05 + s32i a5, a6, 8 /* 0x00000000 -> [arg0+0x8] */ # 17d: 5926 + l8ui a0, a3, 4 /* [[.Lrel143]+0x4] */ # 17f: 020304 + sub a0, a0, a4 # 182: 4000c0 + s8i a0, a3, 4 /* a0 -> [[.Lrel143]+0x4] */ # 185: 024304 + mov a3, a6 /* arg0 */ # 188: 3d06 + call0 wDev_AppendRxAmpduLensBlocks # 18a: 050000 + l32i a0, sp, 0 /* [(local0)] */ # 18d: 0801 + addi sp, sp, 16 /* (top of frame) */ # 18f: 12c110 + ret # 192: 0df0 + + .literal_position # 194: 00000000 + # 198: 00000000 + # 19c: 08000000 + # 1a0: 00000000 + # 1a4: 00000000 + # 1a8: ffffff00 + # 1ac: 00000000 + # 1b0: 08000000 + # 1b4: 00000000 + # 1b8: 00000000 + # 1bc: 00000000 + # 1c0: 00000000 + # 1c4: 00000000 + +# Function @ .text+0x1c8 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word @ -0x10 +# (local5): word @ -0xc +# (local6): word[2] @ -0x8 + .balign 4 +.Lfunc005: addi sp, sp, -32 /* (local0) */ # 1c8: 12c1e0 + s32i a4, sp, 4 /* arg2 -> [(local1)] */ # 1cb: 4911 + s32i a14, sp, 20 /* a14 -> [(local5)] */ # 1cd: e951 + s32i a0, sp, 8 /* a0 -> [(local2)] */ # 1cf: 0921 + movi a14, .Lrel143 # 1d1: e1f0ff + s32i a13, sp, 16 /* a13 -> [(local4)] */ # 1d4: d941 + l32i a14, a14, 0 /* [.Lrel143] */ # 1d6: e80e + s32i a15, sp, 24 /* a15 -> [(local6)] */ # 1d8: f961 + l32i a14, a14, 8 /* [[.Lrel143]+0x8] */ # 1da: e82e + s32i a12, sp, 12 /* a12 -> [(local3)] */ # 1dc: c931 + l32i a14, a14, 4 /* [[[.Lrel143]+0x8]+0x4] */ # 1de: e81e + mov a12, a3 /* arg1 */ # 1e0: cd03 + l8ui a15, a14, 7 /* [[[[.Lrel143]+0x8]+0x4]+0x7] */ # 1e2: f20e07 + mov a13, a2 /* arg0 */ # 1e5: dd02 + extui a15, a15, 3, 1 # 1e7: f0f304 + call0 chm_get_current_channel # 1ea: 01f3ffc0 + # 1ee: 0000 + bnez a2, .Lbr009 # 1f0: dc02 + movi a2, .Lstr001 # 1f2: 21e9ff + movi a3, .Lstr002 # 1f5: 31e9ff + movi a4, 367 /* 0x0000016f */ # 1f8: 42a16f + call0 printf # 1fb: 01f0ffc0 + # 1ff: 0000 +.Lbr008: j .Lbr008 /* (halt) */ # 201: 06ffff +.Lbr009: l16ui a3, a14, 12 /* [[[[.Lrel143]+0x8]+0x4]+0xc] */ # 204: 321e06 + movi a10, 240 /* 0x000000f0 */ # 207: a2a0f0 + s32i a2, sp, 0 /* a2 -> [(local0)] */ # 20a: 2901 + l8ui a4, a14, 10 /* [[[[.Lrel143]+0x8]+0x4]+0xa] */ # 20c: 420e0a + l8ui a2, a2, 6 # 20f: 220206 + and a4, a4, a10 # 212: a04410 + extui a2, a2, 0, 4 # 215: 202034 + or a2, a2, a4 # 218: 402220 + s8i a2, a14, 10 /* a2 -> [[[[.Lrel143]+0x8]+0x4]+0xa] */ # 21b: 224e0a + bnez a15, .Lbr011 # 21e: ecaf + l8ui a8, a14, 3 /* [[[[.Lrel143]+0x8]+0x4]+0x3] */ # 220: 820e03 + movi a0, wDevCtrl # 223: 01dfff + extui a9, a8, 4, 1 # 226: 809404 + bbsi a8, 4, .Lbr010 # 229: 47e805 + extui a4, a8, 5, 1 # 22c: 804504 + beqz a4, .Lbr022 # 22f: 165409 +.Lbr010: extui a5, a3, 0, 4 # 232: 305034 + beqz a5, .Lbr029 # 235: 16a50c + addi a6, a5, -4 # 238: 62c5fc + beqz a6, .Lbr031 # 23b: 16860d + addi a7, a5, -8 # 23e: 72c5f8 + beqz a7, .Lbr037 # 241: 16d710 + l32i a8, a0, 0x18c /* [.Ldata017] */ # 244: 822063 + addi a8, a8, 1 /* [.Ldata017]+0x1 */ # 247: 1b88 + s32i a8, a0, 0x18c /* [.Ldata017]+0x1 -> [.Ldata017] */ # 249: 826063 +.Lbr011: movi a5, 0 /* 0x00000000 */ # 24c: 0c05 + movi a3, 1 /* 0x00000001 */ # 24e: 0c13 + j .Lbr014 # 250: c60200 +.Lbr012: movi a3, 1 /* 0x00000001 */ # 253: 0c13 +.Lbr013: l32i a9, a0, 0x17c /* [.Ldata013] */ # 255: 92205f + movi a5, 1 /* 0x00000001 */ # 258: 0c15 + addi a9, a9, 1 /* [.Ldata013]+0x1 */ # 25a: 1b99 + s32i a9, a0, 0x17c /* [.Ldata013]+0x1 -> [.Ldata013] */ # 25c: 92605f +.Lbr014: movi a10, .Lrel143 # 25f: a1d1ff + l32i a10, a10, 0 /* [.Lrel143] */ # 262: a80a + l16ui a10, a10, 0 /* [[.Lrel143]] */ # 264: a21a00 + bnei a10, 1, .Lbr015 # 267: 661a01 + beqz a5, .Lbr016 # 26a: 8c15 +.Lbr015: bltui a12, 2, .Lbr017 # 26c: b62c01 +.Lbr016: movi a3, 1 /* 0x00000001 */ # 26f: 0c13 +.Lbr017: beqz a3, .Lbr018 # 271: 8c83 + mov a3, a12 /* arg1 */ # 273: 3d0c + mov a2, a13 /* arg0 */ # 275: 2d0d + call0 .Lfunc003 # 277: 45ebff + j .Lbr021 # 27a: c60e00 +.Lbr018: movi a14, 0x00ffffff # 27d: e1caff + memw # 280: c02000 + l16ui a11, a13, 2 /* [arg0+0x2] */ # 283: b21d01 + slli a11, a11, 16 # 286: 00bb11 + memw # 289: c02000 + l16ui a0, a13, 0 /* [arg0] */ # 28c: 021d00 + or a11, a11, a0 # 28f: 00bb20 + and a11, a11, a14 # 292: e0bb10 + srli a11, a11, 12 # 295: b0bc41 + bnez a11, .Lbr020 # 298: dc0b + movi a2, .Lstr001 # 29a: 21c4ff + movi a3, .Lstr002 # 29d: 31c4ff + movi a4, 570 /* 0x0000023a */ # 2a0: 42a23a + call0 printf # 2a3: 01c7ffc0 + # 2a7: 0000 +.Lbr019: j .Lbr019 /* (halt) */ # 2a9: 06ffff +.Lbr020: mov a5, a12 /* arg1 */ # 2ac: 5d0c + mov a4, a13 /* arg0 */ # 2ae: 4d0d + mov a3, a15 # 2b0: 3d0f + l32i a2, sp, 0 /* [(local0)] */ # 2b2: 2801 + l32i a6, sp, 4 /* [(local1)] */ # 2b4: 6811 + call0 .Lfunc002 # 2b6: 85dfff +.Lbr021: l32i a12, sp, 12 /* [(local3)] */ # 2b9: c831 + l32i a13, sp, 16 /* [(local4)] */ # 2bb: d841 + l32i a14, sp, 20 /* [(local5)] */ # 2bd: e851 + l32i a15, sp, 24 /* [(local6)] */ # 2bf: f861 + l32i a0, sp, 8 /* [(local2)] */ # 2c1: 0821 + addi sp, sp, 32 /* (top of frame) */ # 2c3: 12c120 + ret # 2c6: 0df0 +.Lbr022: bbsi a8, 6, .Lbr023 # 2c8: 67e805 + srli a14, a8, 7 # 2cb: 80e741 + beqz a14, .Lbr038 # 2ce: 167e09 +.Lbr023: l32i a4, a0, 0x184 /* [.Ldata015] */ # 2d1: 422061 + extui a5, a3, 0, 4 # 2d4: 305034 + addi a4, a4, 1 /* [.Ldata015]+0x1 */ # 2d7: 1b44 + beqz a5, .Lbr034 # 2d9: 16b505 + beqi a5, 4, .Lbr024 # 2dc: 26450a + beqi a5, 8, .Lbr036 # 2df: 268568 + l32i a2, a0, 0x18c /* [.Ldata017] */ # 2e2: 222063 + addi a2, a2, 1 /* [.Ldata017]+0x1 */ # 2e5: 1b22 + s32i a2, a0, 0x18c /* [.Ldata017]+0x1 -> [.Ldata017] */ # 2e7: 226063 +.Lbr024: movi a5, 0 /* 0x00000000 */ # 2ea: 0c05 + movi a3, 1 /* 0x00000001 */ # 2ec: 0c13 + j .Lbr028 # 2ee: c60200 +.Lbr025: l32i a3, a0, 0x188 /* [.Ldata016] */ # 2f1: 322062 + addi a3, a3, 1 /* [.Ldata016]+0x1 */ # 2f4: 1b33 + s32i a3, a0, 0x188 /* [.Ldata016]+0x1 -> [.Ldata016] */ # 2f6: 326062 +.Lbr026: movi a3, 0 /* 0x00000000 */ # 2f9: 0c03 +.Lbr027: movi a5, 1 /* 0x00000001 */ # 2fb: 0c15 +.Lbr028: s32i a4, a0, 0x184 /* [.Ldata015]+0x1 -> [.Ldata015] */ # 2fd: 426061 + j .Lbr014 # 300: c6d6ff +.Lbr029: and a5, a3, a10 # 303: a05310 + bnei a5, 128, .Lbr030 # 306: 66e508 + beqz a9, .Lbr012 # 309: 1669f4 + extui a6, a8, 6, 1 # 30c: 806604 + beqz a6, .Lbr012 # 30f: 1606f4 +.Lbr030: movi a3, 0 /* 0x00000000 */ # 312: 0c03 + j .Lbr013 # 314: 46cfff +.Lbr031: and a3, a3, a10 # 317: a03310 + beqi a3, 128, .Lbr039 # 31a: 26e35d + movi a7, 144 /* 0x00000090 */ # 31d: 72a090 + beq a3, a7, .Lbr041 # 320: 77136f + movi a8, 160 /* 0x000000a0 */ # 323: 82a0a0 + beq a3, a8, .Lbr040 # 326: 87135c + l32i a9, a0, 0x178 /* [.Ldata012] */ # 329: 92205e + addi a9, a9, 1 /* [.Ldata012]+0x1 */ # 32c: 1b99 + s32i a9, a0, 0x178 /* [.Ldata012]+0x1 -> [.Ldata012] */ # 32e: 92605e +.Lbr032: movi a3, 1 /* 0x00000001 */ # 331: 0c13 +.Lbr033: movi a5, 0 /* 0x00000000 */ # 333: 0c05 + j .Lbr014 # 335: 86c9ff +.Lbr034: extui a3, a3, 0, 8 # 338: 303074 + beqi a3, 64, .Lbr026 # 33b: 26d3ba + movi a10, 80 /* 0x00000050 */ # 33e: 5c0a + beq a3, a10, .Lbr035 # 340: a71302 + beqi a3, 128, .Lbr025 # 343: 26e3aa +.Lbr035: movi a3, 1 /* 0x00000001 */ # 346: 0c13 + j .Lbr027 # 348: c6ebff +.Lbr036: movi a5, 0 /* 0x00000000 */ # 34b: 0c05 + movi a3, 0 /* 0x00000000 */ # 34d: 0c03 + j .Lbr028 # 34f: 86eaff +.Lbr037: l32i a11, a0, 0x180 /* [.Ldata014] */ # 352: b22060 + mov a2, a14 /* [[[.Lrel143]+0x8]+0x4] */ # 355: 2d0e + addi a11, a11, 1 /* [.Ldata014]+0x1 */ # 357: 1bbb + s32i a11, a0, 0x180 /* [.Ldata014]+0x1 -> [.Ldata014] */ # 359: b26060 + call0 rcUpdateDataRxDone # 35c: 019affc0 + # 360: 0000 + movi a5, 0 /* 0x00000000 */ # 362: 0c05 + movi a3, 0 /* 0x00000000 */ # 364: 0c03 + j .Lbr014 # 366: 46bdff +.Lbr038: movi a3, g_ic+0x180 # 369: 3192ff + movi a5, 0 /* 0x00000000 */ # 36c: 0c05 + l8ui a3, a3, 84 /* [g_ic+0x1d4] */ # 36e: 320354 + movi a14, 1 /* 0x00000001 */ # 371: 0c1e + addi a3, a3, -1 /* [g_ic+0x1d4]-0x1 */ # 373: 0b33 + movnez a3, a14, a3 # 375: 303e93 + j .Lbr014 # 378: c6b8ff +.Lbr039: l32i a4, a0, 0x16c /* [.Ldata009] */ # 37b: 42205b + addi a4, a4, 1 /* [.Ldata009]+0x1 */ # 37e: 1b44 + s32i a4, a0, 0x16c /* [.Ldata009]+0x1 -> [.Ldata009] */ # 380: 42605b + j .Lbr032 # 383: 86eaff +.Lbr040: l32i a5, a0, 0x174 /* [.Ldata011] */ # 386: 52205d + movi a3, 0 /* 0x00000000 */ # 389: 0c03 + addi a5, a5, 1 /* [.Ldata011]+0x1 */ # 38b: 1b55 + s32i a5, a0, 0x174 /* [.Ldata011]+0x1 -> [.Ldata011] */ # 38d: 52605d + j .Lbr033 # 390: c6e7ff +.Lbr041: l32i a6, a0, 0x170 /* [.Ldata010] */ # 393: 62205c + addi a6, a6, 1 /* [.Ldata010]+0x1 */ # 396: 1b66 + s32i a6, a0, 0x170 /* [.Ldata010]+0x1 -> [.Ldata010] */ # 398: 62605c + j .Lbr032 # 39b: 86e4ff + + .literal_position # 3a0: 00000080 + # 3a4: 000ef23f + # 3a8: 00000000 + +# Function @ .text+0x3ac + .balign 4 + .global wDev_MacTimSetFunc + .type wDev_MacTimSetFunc, @function +wDev_MacTimSetFunc: + movi a6, 0x80000000 # 3ac: 61fdff + movi a5, 0x3ff20e00 # 3af: 51fdff + memw # 3b2: c02000 + l32i a4, a5, 0x214 /* [0x3ff21014] */ # 3b5: 422585 + or a4, a4, a6 # 3b8: 604420 + memw # 3bb: c02000 + movi a3, .Lrel143 # 3be: 31faff + s32i a4, a5, 0x214 /* a4 -> [0x3ff21014] */ # 3c1: 426585 + s32i a2, a3, 8 /* arg0 -> [.Ldata002] */ # 3c4: 2923 + ret /* arg0 */ # 3c6: 0df0 + + .literal_position # 3c8: 24010000 + # 3cc: 00feef3f + # 3d0: 24010000 + # 3d4: 000ef23f + # 3d8: 00000080 + # 3dc: 00000000 + # 3e0: 00000000 + +# Function @ .text+0x3e4 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 + .global wDev_MacTimArm + .type wDev_MacTimArm, @function +wDev_MacTimArm: + movi a5, .Label001 # 3e4: 51f9ff + addi sp, sp, -16 /* (local0) */ # 3e7: 12c1f0 + s32i a2, sp, 8 /* arg0 -> [(local2)] */ # 3ea: 2921 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 3ec: 0901 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 3ee: c911 + movi a0, -32 /* 0xffffffe0 */ # 3f0: 6c00 + l8ui a3, a5, 128 /* [NMIIrqIsOn] */ # 3f2: 320580 + movi a12, 0x3feffe00 # 3f5: c1f5ff + bnez a3, .Lbr043 # 3f8: ec33 + call0 vPortEnterCritical # 3fa: 01f8ffc0 + # 3fe: 0000 + movi a0, -32 /* 0xffffffe0 */ # 400: 6c00 +.Lbr042: memw # 402: c02000 + l32i a6, a12, 0x200 /* [0x3ff00000] */ # 405: 622c80 + and a6, a6, a0 # 408: 006610 + memw # 40b: c02000 + s32i a6, a12, 0x200 /* a6 -> [0x3ff00000] */ # 40e: 626c80 + memw # 411: c02000 + l32i a5, a12, 0x200 /* [0x3ff00000] */ # 414: 522c80 + bbsi a5, 0, .Lbr042 # 417: 07e5e7 + l32i a2, sp, 8 /* [(local2)] */ # 41a: 2821 + movi a5, .Label001 # 41c: 51edff +.Lbr043: movi a8, 0x3ff20e00 # 41f: 81edff + memw # 422: c02000 + l32i a6, a8, 0x208 /* [0x3ff21008] */ # 425: 622882 + memw # 428: c02000 + l32i a7, a8, 0x204 /* [0x3ff21004] */ # 42b: 722881 + memw # 42e: c02000 + l32i a9, a8, 0x208 /* [0x3ff21008] */ # 431: 922882 + beq a6, a9, .Lbr044 # 434: 971607 + mov a6, a9 /* [0x3ff21008] */ # 437: 6d09 + memw # 439: c02000 + l32i a7, a8, 0x204 /* [0x3ff21004] */ # 43c: 722881 +.Lbr044: add a2, a2, a7 # 43f: 7a22 + bltu a7, a2, .Lbr045 # 441: 273701 + addi a6, a6, 1 /* [0x3ff21008]+0x1 */ # 444: 1b66 +.Lbr045: memw # 446: c02000 + s32i a2, a8, 0x29c /* a2 -> [0x3ff2109c] */ # 449: 2268a7 + memw # 44c: c02000 + s32i a6, a8, 0x2a0 /* a6 -> [0x3ff210a0] */ # 44f: 6268a8 + movi a10, 0x80000000 # 452: a1e1ff + memw # 455: c02000 + l32i a9, a8, 0x298 /* [0x3ff21098] */ # 458: 9228a6 + or a9, a9, a10 # 45b: a09920 + memw # 45e: c02000 + s32i a9, a8, 0x298 /* a9 -> [0x3ff21098] */ # 461: 9268a6 + l8ui a7, a5, 128 /* [NMIIrqIsOn] */ # 464: 720580 + bnez a7, .Lbr046 # 467: dc87 + memw # 469: c02000 + l32i a11, a12, 0x200 /* [0x3ff00000] */ # 46c: b22c80 + and a11, a11, a0 # 46f: 00bb10 + movi a0, 1 /* 0x00000001 */ # 472: 0c10 + or a11, a11, a0 # 474: 00bb20 + memw # 477: c02000 + s32i a11, a12, 0x200 /* a11 -> [0x3ff00000] */ # 47a: b26c80 + call0 vPortExitCritical # 47d: 01d8ffc0 + # 481: 0000 +.Lbr046: l32i a12, sp, 4 /* [(local1)] */ # 483: c811 + l32i a0, sp, 0 /* [(local0)] */ # 485: 0801 + addi sp, sp, 16 /* (top of frame) */ # 487: 12c110 + ret # 48a: 0df0 + + .literal_position # 48c: 24010000 + # 490: 00feef3f + # 494: 24010000 + # 498: 000ef23f + # 49c: 00000080 + # 4a0: 00000000 + # 4a4: 00000000 + +# Function @ .text+0x4a8 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 + .global wDev_MacTim1Arm + .type wDev_MacTim1Arm, @function +wDev_MacTim1Arm: + movi a5, .Label001 # 4a8: 51f9ff + addi sp, sp, -16 /* (local0) */ # 4ab: 12c1f0 + s32i a2, sp, 8 /* arg0 -> [(local2)] */ # 4ae: 2921 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 4b0: 0901 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 4b2: c911 + movi a0, -32 /* 0xffffffe0 */ # 4b4: 6c00 + l8ui a3, a5, 128 /* [NMIIrqIsOn] */ # 4b6: 320580 + movi a12, 0x3feffe00 # 4b9: c1f5ff + bnez a3, .Lbr048 # 4bc: ec33 + call0 vPortEnterCritical # 4be: 01f8ffc0 + # 4c2: 0000 + movi a0, -32 /* 0xffffffe0 */ # 4c4: 6c00 +.Lbr047: memw # 4c6: c02000 + l32i a6, a12, 0x200 /* [0x3ff00000] */ # 4c9: 622c80 + and a6, a6, a0 # 4cc: 006610 + memw # 4cf: c02000 + s32i a6, a12, 0x200 /* a6 -> [0x3ff00000] */ # 4d2: 626c80 + memw # 4d5: c02000 + l32i a5, a12, 0x200 /* [0x3ff00000] */ # 4d8: 522c80 + bbsi a5, 0, .Lbr047 # 4db: 07e5e7 + l32i a2, sp, 8 /* [(local2)] */ # 4de: 2821 + movi a5, .Label001 # 4e0: 51edff +.Lbr048: movi a8, 0x3ff20e00 # 4e3: 81edff + memw # 4e6: c02000 + l32i a6, a8, 0x24c /* [0x3ff2104c] */ # 4e9: 622893 + memw # 4ec: c02000 + l32i a7, a8, 0x248 /* [0x3ff21048] */ # 4ef: 722892 + memw # 4f2: c02000 + l32i a9, a8, 0x24c /* [0x3ff2104c] */ # 4f5: 922893 + beq a6, a9, .Lbr049 # 4f8: 971607 + mov a6, a9 /* [0x3ff2104c] */ # 4fb: 6d09 + memw # 4fd: c02000 + l32i a7, a8, 0x248 /* [0x3ff21048] */ # 500: 722892 +.Lbr049: add a2, a2, a7 # 503: 7a22 + bltu a7, a2, .Lbr050 # 505: 273701 + addi a6, a6, 1 /* [0x3ff2104c]+0x1 */ # 508: 1b66 +.Lbr050: memw # 50a: c02000 + s32i a2, a8, 0x2cc /* a2 -> [0x3ff210cc] */ # 50d: 2268b3 + memw # 510: c02000 + s32i a6, a8, 0x2d0 /* a6 -> [0x3ff210d0] */ # 513: 6268b4 + movi a10, 0x80000000 # 516: a1e1ff + memw # 519: c02000 + l32i a9, a8, 0x2c8 /* [0x3ff210c8] */ # 51c: 9228b2 + or a9, a9, a10 # 51f: a09920 + memw # 522: c02000 + s32i a9, a8, 0x2c8 /* a9 -> [0x3ff210c8] */ # 525: 9268b2 + l8ui a7, a5, 128 /* [NMIIrqIsOn] */ # 528: 720580 + bnez a7, .Lbr051 # 52b: dc87 + memw # 52d: c02000 + l32i a11, a12, 0x200 /* [0x3ff00000] */ # 530: b22c80 + and a11, a11, a0 # 533: 00bb10 + movi a0, 1 /* 0x00000001 */ # 536: 0c10 + or a11, a11, a0 # 538: 00bb20 + memw # 53b: c02000 + s32i a11, a12, 0x200 /* a11 -> [0x3ff00000] */ # 53e: b26c80 + call0 vPortExitCritical # 541: 01d8ffc0 + # 545: 0000 +.Lbr051: l32i a12, sp, 4 /* [(local1)] */ # 547: c811 + l32i a0, sp, 0 /* [(local0)] */ # 549: 0801 + addi sp, sp, 16 /* (top of frame) */ # 54b: 12c110 + ret # 54e: 0df0 + + .literal_position # 550: 08000000 + +# Function @ .text+0x554 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 +.Lfunc006: addi sp, sp, -16 /* (local0) */ # 554: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 557: 0901 + movi a0, .Ldata002 # 559: 01fdff + addx4 a0, a2, a0 # 55c: 0002a0 + l32i a2, a0, 0 # 55f: 2800 + beqz a2, .Lbr052 # 561: 8c12 + callx0 a2 # 563: c00200 +.Lbr052: l32i a0, sp, 0 /* [(local0)] */ # 566: 0801 + addi sp, sp, 16 /* (top of frame) */ # 568: 12c110 + ret # 56b: 0df0 + + .literal_position # 570: 00feef3f + # 574: 000af23f + # 578: 24010000 + # 57c: 20470000 + # 580: 24010000 + # 584: 00000000 + # 588: 08000000 + # 58c: 00000000 + # 590: 00fef13f + # 594: 00fef13f + # 598: 000ef23f + # 59c: 00000000 + # 5a0: 08000000 + # 5a4: 00000000 + # 5a8: 08000000 + # 5ac: 00000000 + # 5b0: 08000000 + # 5b4: 00000000 + # 5b8: 00000000 + # 5bc: 00000000 + # 5c0: 00000300 + # 5c4: 000ef23f + # 5c8: 00000000 + # 5cc: 08000000 + # 5d0: 00000400 + # 5d4: 00000000 + # 5d8: 08000000 + # 5dc: 00000000 + # 5e0: 00000000 + # 5e4: 08000000 + # 5e8: 00000000 + # 5ec: 00000000 + # 5f0: 00000400 + # 5f4: 00000400 + # 5f8: fffffbff + # 5fc: 00000400 + # 600: 00000000 + # 604: 08000000 + # 608: 00fef13f + # 60c: 000ef23f + # 610: 00000000 + # 614: 08000000 + # 618: 00000000 + # 61c: 08000000 + # 620: 00000000 + # 624: 08000000 + # 628: 00000000 + # 62c: 08000000 + # 630: 40000000 + # 634: 00000000 + # 638: 14110000 + # 63c: 10100000 + # 640: 00000000 + # 644: 00000000 + # 648: 00000000 + # 64c: 88120000 + # 650: 00000000 + # 654: 00000000 + # 658: 00000000 + # 65c: 00000000 + # 660: 00000000 + # 664: 00000000 + # 668: 00000000 + # 66c: 00000000 + # 670: 00000000 + # 674: 00000000 + # 678: 00000000 + # 67c: 00000000 + # 680: 00000000 + # 684: 00000000 + # 688: 00000000 + # 68c: 00000000 + # 690: 00000000 + # 694: 00000000 + # 698: 00000000 + +# Function @ .text+0x69c +# Local variables/stack: +# (local0): word @ -0x30 +# (local1): word @ -0x2c +# (local2): word @ -0x28 +# (local3): word @ -0x24 +# (local4): word @ -0x20 +# (local5): word @ -0x1c +# (local6): word @ -0x18 +# (local7): word @ -0x14 +# (local8): word[4] @ -0x10 + .balign 4 + .global wDev_ProcessFiq + .type wDev_ProcessFiq, @function +wDev_ProcessFiq: + movi a3, -32 /* 0xffffffe0 */ # 69c: 6c03 + movi a2, 1 /* 0x00000001 */ # 69e: 0c12 + addi sp, sp, -48 /* (local0) */ # 6a0: 12c1d0 + s32i a12, sp, 16 /* a12 -> [(local4)] */ # 6a3: c941 + s32i a13, sp, 20 /* a13 -> [(local5)] */ # 6a5: d951 + s32i a14, sp, 24 /* a14 -> [(local6)] */ # 6a7: e961 + s32i a15, sp, 28 /* a15 -> [(local7)] */ # 6a9: f971 + s32i a0, sp, 12 /* a0 -> [(local3)] */ # 6ab: 0931 + movi a0, 0x3feffe00 # 6ad: 01b0ff +.Lbr053: memw # 6b0: c02000 + l32i a5, a0, 0x200 /* [0x3ff00000] */ # 6b3: 522080 + and a5, a5, a3 # 6b6: 305510 + memw # 6b9: c02000 + s32i a5, a0, 0x200 /* a5 -> [0x3ff00000] */ # 6bc: 526080 + memw # 6bf: c02000 + l32i a4, a0, 0x200 /* [0x3ff00000] */ # 6c2: 422080 + bbsi a4, 0, .Lbr053 # 6c5: 07e4e7 + movi a15, 0x3ff20a00 # 6c8: f1abff + movi a7, .Ldata025 # 6cb: 71acff + movi a9, .Label001 # 6ce: 91aaff + l8ui a6, a7, 0 /* [.Ldata025] */ # 6d1: 620700 + s8i a2, a9, 128 /* 0x01 -> [NMIIrqIsOn] */ # 6d4: 224980 + addi a6, a6, 1 /* [.Ldata025]+0x1 */ # 6d7: 1b66 + s8i a6, a7, 0 /* [.Ldata025]+0x1 -> [.Ldata025] */ # 6d9: 624700 +.Lbr054: memw # 6dc: c02000 + l32i a12, a15, 0x220 /* [0x3ff20c20] */ # 6df: c22f88 + bnez a12, .Lbr055 # 6e2: dc5c + l32i a0, sp, 12 /* [(local3)] */ # 6e4: 0831 + l32i a12, sp, 16 /* [(local4)] */ # 6e6: c841 + l32i a13, sp, 20 /* [(local5)] */ # 6e8: d851 + l32i a14, sp, 24 /* [(local6)] */ # 6ea: e861 + l32i a15, sp, 28 /* [(local7)] */ # 6ec: f871 + movi a5, .Label001 # 6ee: 51a4ff + movi a4, 0 /* 0x00000000 */ # 6f1: 0c04 + s8i a4, a5, 128 /* 0x00 -> [NMIIrqIsOn] */ # 6f3: 424580 + addi sp, sp, 48 /* (top of frame) */ # 6f6: 12c130 + ret # 6f9: 0df0 +.Lbr055: memw # 6fb: c02000 + l32i a0, a15, 0x284 /* [0x3ff20c84] */ # 6fe: 022fa1 + memw # 701: c02000 + s32i a12, a15, 0x224 /* [0x3ff20c20] -> [0x3ff20c24] */ # 704: c26f89 + bbci a12, 28, .Lbr057 # 707: c77c11 + movi a2, .Lstr001 # 70a: 219eff + movi a3, .Lstr002 # 70d: 319eff + movi a4, 1113 /* 0x00000459 */ # 710: 42a459 + call0 printf # 713: 01c8ffc0 + # 717: 0000 +.Lbr056: j .Lbr056 /* (halt) */ # 719: 06ffff +.Lbr057: s32i a0, sp, 4 /* [0x3ff20c84] -> [(local1)] */ # 71c: 0911 + bbci a12, 27, .Lbr058 # 71e: b77c04 + movi a2, 0 /* 0x00000000 */ # 721: 0c02 + call0 .Lfunc006 # 723: 05e3ff +.Lbr058: bbci a12, 26, .Lbr059 # 726: a77c04 + movi a2, 1 /* 0x00000001 */ # 729: 0c12 + call0 .Lfunc006 # 72b: 85e2ff +.Lbr059: movi a0, 4 /* 0x00000004 */ # 72e: 0c40 + and a0, a12, a0 # 730: 000c10 + bbci a12, 3, .Lbr060 # 733: 376c13 + movi a3, 4 /* 0x00000004 */ # 736: 0c43 + bany a12, a3, .Lbr060 # 738: 378c0e + call0 .Lfunc009 # 73b: 01bfffc0 + # 73f: 0000 + movi a13, 256 /* 0x00000100 */ # 741: d2a100 + and a13, a12, a13 # 744: d0dc10 + j .Lbr061 # 747: c60400 +.Lbr060: movi a13, 256 /* 0x00000100 */ # 74a: d2a100 + and a13, a12, a13 # 74d: d0dc10 + beqz a0, .Lbr061 # 750: 8ca0 + movi a14, 256 /* 0x00000100 */ # 752: e2a100 + bany a12, a14, .Lbr061 # 755: e78c05 + call0 .Lfunc008 # 758: 01b9ffc0 + # 75c: 0000 +.Lbr061: beqz a13, .Lbr073 # 75e: 16dd0c + memw # 761: c02000 + movi a0, wDevCtrl # 764: 018aff + movi a2, 0x3ff1fe00 # 767: 218aff + l8ui a0, a0, 5 /* [.Ldata004] */ # 76a: 020005 + l32i a2, a2, 0x21c /* [0x3ff2001c] */ # 76d: 222287 + beqz a0, .Lbr083 # 770: 16a013 + memw # 773: c02000 + movi a3, 0x3ff1fe00 # 776: 3187ff + l32i a14, a3, 0x214 /* [0x3ff20014] */ # 779: e22385 + memw # 77c: c02000 + movi a4, 0x3ff20e00 # 77f: 4186ff + l32i a4, a4, 0x2fc /* [0x3ff210fc] */ # 782: 4224bf + memw # 785: c02000 + l32i a3, a3, 0x218 /* [0x3ff20018] */ # 788: 322386 + bnez a14, .Lbr063 # 78b: dc0e + movi a2, .Lstr001 # 78d: 2183ff + movi a3, .Lstr002 # 790: 3184ff + movi a4, 1147 /* 0x0000047b */ # 793: 42a47b + call0 printf # 796: 01aaffc0 + # 79a: 0000 +.Lbr062: j .Lbr062 /* (halt) */ # 79c: 06ffff +.Lbr063: l32i a5, a14, 8 /* [[0x3ff20014]+0x8] */ # 79f: 582e + bnez a5, .Lbr065 # 7a1: dc05 + movi a2, .Lstr001 # 7a3: 2180ff + movi a3, .Lstr002 # 7a6: 3180ff + movi a4, 1148 /* 0x0000047c */ # 7a9: 42a47c + call0 printf # 7ac: 01a6ffc0 + # 7b0: 0000 +.Lbr064: j .Lbr064 /* (halt) */ # 7b2: 06ffff +.Lbr065: memw # 7b5: c02000 + l8ui a6, a14, 3 /* [[0x3ff20014]+0x3] */ # 7b8: 620e03 + extui a6, a6, 0, 7 # 7bb: 606064 + srli a6, a6, 6 # 7be: 606641 + beqi a6, 1, .Lbr067 # 7c1: 261611 + movi a2, .Lstr001 # 7c4: 217aff + movi a3, .Lstr002 # 7c7: 317aff + movi a4, 1149 /* 0x0000047d */ # 7ca: 42a47d + call0 printf # 7cd: 019effc0 + # 7d1: 0000 +.Lbr066: j .Lbr066 /* (halt) */ # 7d3: 06ffff +.Lbr067: movi a2, wDevCtrl # 7d6: 2177ff + l32i a2, a2, 8 /* [.Ldata005] */ # 7d9: 2822 + beqz a2, .Lbr073 # 7db: 160205 +.Lbr068: mov a13, a2 # 7de: dd02 + memw # 7e0: c02000 + l8ui a3, a2, 3 # 7e3: 320203 + extui a3, a3, 0, 7 # 7e6: 303064 + srli a3, a3, 6 # 7e9: 303641 + bnez a3, .Lbr070 # 7ec: ccf3 +.Lbr069: l32i a13, a13, 8 # 7ee: d82d + memw # 7f0: c02000 + l8ui a4, a13, 3 # 7f3: 420d03 + extui a4, a4, 0, 7 # 7f6: 404064 + srli a4, a4, 6 # 7f9: 404641 + beqz a4, .Lbr069 # 7fc: 16e4fe +.Lbr070: call0 .Lfunc010 # 7ff: 0193ffc0 + # 803: 0000 + movi a6, wDevCtrl # 805: 616cff + l32i a5, a6, 0x164 /* [.Ldata008] */ # 808: 522659 + addi a5, a5, 1 /* [.Ldata008]+0x1 */ # 80b: 1b55 + s32i a5, a6, 0x164 /* [.Ldata008]+0x1 -> [.Ldata008] */ # 80d: 526659 + beq a14, a13, .Lbr073 # 810: d71e1b + l32i a2, a13, 8 # 813: 282d + bnez a2, .Lbr068 # 815: 5652fc + j .Lbr073 # 818: c60400 +.Lbr071: mov a3, a13 # 81b: 3d0d + mov a2, a14 /* [0x3ff20014] */ # 81d: 2d0e + l32i a4, sp, 8 /* [(local2)] */ # 81f: 4821 + call0 .Lfunc005 # 821: 459aff +.Lbr072: movi a7, wDevCtrl # 824: 7166ff + l32i a6, a7, 0x164 /* [.Ldata008] */ # 827: 622759 + addi a6, a6, 1 /* [.Ldata008]+0x1 */ # 82a: 1b66 + s32i a6, a7, 0x164 /* [.Ldata008]+0x1 -> [.Ldata008] */ # 82c: 626759 +.Lbr073: movi a7, 0x00030000 # 82f: 7164ff + bnone a7, a12, .Lbr074 # 832: c70719 + l32i a2, sp, 4 /* [(local1)] */ # 835: 2811 + movi a9, -24 /* 0xffffffe8 */ # 837: 6c89 + extui a2, a2, 12, 4 # 839: 202c34 + mull a9, a2, a9 # 83c: 909282 + add a9, a9, a15 # 83f: fa99 + memw # 841: c02000 + movi a8, 0 /* 0x00000000 */ # 844: 0c08 + s32i a8, a9, 0x3c0 # 846: 8269f0 + call0 lmacProcessRtsStart # 849: 0181ffc0 + # 84d: 0000 +.Lbr074: bbci a12, 19, .Lbr080 # 84f: 377c36 + memw # 852: c02000 + movi a14, 0x3ff20e00 # 855: e15bff + l32i a14, a14, 4 /* [0x3ff20e04] */ # 858: e81e + bbci a14, 24, .Lbr075 # 85a: 877e05 + extui a14, a14, 16, 8 # 85d: e0e075 + j .Lbr076 # 860: 860000 +.Lbr075: movi a14, 127 /* 0x0000007f */ # 863: e2a07f +.Lbr076: l32i a13, sp, 4 /* [(local1)] */ # 866: d811 + extui a13, a13, 12, 4 # 868: d0dc34 + bgeui a13, 8, .Lbr077 # 86b: f68d02 + j .Lbr090 # 86e: 862200 +.Lbr077: bnei a13, 10, .Lbr078 # 871: 669d02 + j .Lbr090 # 874: 062100 +.Lbr078: movi a2, .Lstr001 # 877: 2154ff + movi a3, .Lstr002 # 87a: 3154ff + movi a4, 1214 /* 0x000004be */ # 87d: 42a4be + call0 printf # 880: 0175ffc0 + # 884: 0000 +.Lbr079: j .Lbr079 /* (halt) */ # 886: 06ffff +.Lbr080: movi a0, 0x00040000 # 889: 0151ff + and a0, a12, a0 # 88c: 000c10 +.Lbr081: beqz a0, .Lbr087 # 88f: bce0 + l32i a2, sp, 4 /* [(local1)] */ # 891: 2811 + extui a2, a2, 12, 4 # 893: 202c34 + bltui a2, 8, .Lbr086 # 896: b68231 + beqi a2, 10, .Lbr086 # 899: 26922e + movi a2, .Lstr001 # 89c: 214eff + movi a3, .Lstr002 # 89f: 314eff + movi a4, 1253 /* 0x000004e5 */ # 8a2: 42a4e5 + call0 printf # 8a5: 016cffc0 + # 8a9: 0000 +.Lbr082: j .Lbr082 /* (halt) */ # 8ab: 06ffff +.Lbr083: movi a3, wDevCtrl # 8ae: 314bff + l32i a3, a3, 8 /* [.Ldata005] */ # 8b1: 3823 + bne a3, a2, .Lbr084 # 8b3: 279302 + j .Lbr093 # 8b6: c62700 +.Lbr084: movi a2, .Lstr001 # 8b9: 2149ff + movi a3, .Lstr002 # 8bc: 314aff + movi a4, 1166 /* 0x0000048e */ # 8bf: 42a48e + call0 printf # 8c2: 0166ffc0 + # 8c6: 0000 +.Lbr085: j .Lbr085 /* (halt) */ # 8c8: 06ffff +.Lbr086: call0 lmacProcessTXStartData # 8cb: 0165ffc0 + # 8cf: 0000 +.Lbr087: bbci a12, 20, .Lbr088 # 8d1: 477c05 + call0 lmacProcessCollisions # 8d4: 0164ffc0 + # 8d8: 0000 +.Lbr088: bbci a12, 9, .Lbr089 # 8da: 976c0a + movi a5, wDevCtrl # 8dd: 5142ff + l32i a4, a5, 0x194 /* [.Ldata018] */ # 8e0: 422565 + addi a4, a4, 1 /* [.Ldata018]+0x1 */ # 8e3: 1b44 + s32i a4, a5, 0x194 /* [.Ldata018]+0x1 -> [.Ldata018] */ # 8e5: 426565 +.Lbr089: extui a5, a12, 23, 1 # 8e8: c05705 + beqz a5, .Lbr054 # 8eb: 16d5de + movi a7, wDevCtrl # 8ee: 713fff + l32i a6, a7, 0x198 /* [.Ldata019] */ # 8f1: 622766 + addi a6, a6, 1 /* [.Ldata019]+0x1 */ # 8f4: 1b66 + s32i a6, a7, 0x198 /* [.Ldata019]+0x1 -> [.Ldata019] */ # 8f6: 626766 + j .Lbr054 # 8f9: c677ff +.Lbr090: call0 lmacIsActive # 8fc: 015bffc0 + # 900: 0000 + movi a8, 0x00040000 # 902: 813bff + and a8, a12, a8 # 905: 808c10 + s32i a8, sp, 0 /* a8 -> [(local0)] */ # 908: 8901 + bnez a2, .Lbr091 # 90a: dca2 + movi a9, 0x00040000 # 90c: 913aff + bnone a12, a9, .Lbr091 # 90f: 970c15 + mov a2, a13 # 912: 2d0d + call0 lmacProcessTXStartData # 914: 0156ffc0 + # 918: 0000 + movi a11, 0xfffbffff # 91a: b137ff + movi a10, 0x00040000 # 91d: a137ff + and a12, a12, a11 # 920: b0cc10 + and a10, a12, a10 # 923: a0ac10 + s32i a10, sp, 0 /* a10 -> [(local0)] */ # 926: a901 +.Lbr091: l32i a0, sp, 4 /* [(local1)] */ # 928: 0811 + extui a0, a0, 28, 4 # 92a: 000c35 + beqz a0, .Lbr105 # 92d: 16800d + addi a3, a0, -1 # 930: 0b30 + beqz a3, .Lbr106 # 932: 16330e + addi a4, a0, -2 # 935: 42c0fe + beqz a4, .Lbr107 # 938: 16f40e + addi a5, a0, -4 # 93b: 52c0fc + beqz a5, .Lbr108 # 93e: 16650f + addi a6, a0, -5 # 941: 62c0fb + beqz a6, .Lbr103 # 944: 16660a + movi a2, .Lstr001 # 947: 212eff + movi a3, .Lstr002 # 94a: 312eff + movi a4, 1241 /* 0x000004d9 */ # 94d: 42a4d9 + call0 printf # 950: 0148ffc0 + # 954: 0000 +.Lbr092: j .Lbr092 /* (halt) */ # 956: 06ffff +.Lbr093: memw # 959: c02000 + movi a13, 0x3ff1fe00 # 95c: d12bff + l32i a14, a13, 0x214 /* [0x3ff20014] */ # 95f: e22d85 + memw # 962: c02000 + movi a0, 0x3ff20e00 # 965: 0129ff + l32i a0, a0, 0x2fc /* [0x3ff210fc] */ # 968: 0220bf + s32i a0, sp, 8 /* [0x3ff210fc] -> [(local2)] */ # 96b: 0921 + memw # 96d: c02000 + l32i a13, a13, 0x218 /* [0x3ff20018] */ # 970: d22d86 + extui a13, a13, 0, 8 # 973: d0d074 + mov a3, a13 # 976: 3d0d + call0 lldesc_num2link # 978: 013fffc0 + # 97c: 0000 + beq a2, a14, .Lbr095 # 97e: e71211 + movi a2, .Lstr001 # 981: 2123ff + movi a3, .Lstr002 # 984: 3124ff + movi a4, 1171 /* 0x00000493 */ # 987: 42a493 + call0 printf # 98a: 013bffc0 + # 98e: 0000 +.Lbr094: j .Lbr094 /* (halt) */ # 990: 06ffff +.Lbr095: bnez a14, .Lbr097 # 993: dc0e + movi a2, .Lstr001 # 995: 2120ff + movi a3, .Lstr002 # 998: 3121ff + movi a4, 1179 /* 0x0000049b */ # 99b: 42a49b + call0 printf # 99e: 0137ffc0 + # 9a2: 0000 +.Lbr096: j .Lbr096 /* (halt) */ # 9a4: 06ffff +.Lbr097: l32i a2, a14, 8 /* [[0x3ff20014]+0x8] */ # 9a7: 282e + bnez a2, .Lbr099 # 9a9: dc02 + movi a2, .Lstr001 # 9ab: 211dff + movi a3, .Lstr002 # 9ae: 311dff + movi a4, 1180 /* 0x0000049c */ # 9b1: 42a49c + call0 printf # 9b4: 0133ffc0 + # 9b8: 0000 +.Lbr098: j .Lbr098 /* (halt) */ # 9ba: 06ffff +.Lbr099: memw # 9bd: c02000 + l8ui a3, a14, 3 /* [[0x3ff20014]+0x3] */ # 9c0: 320e03 + extui a3, a3, 0, 7 # 9c3: 303064 + srli a3, a3, 6 # 9c6: 303641 + beqi a3, 1, .Lbr101 # 9c9: 261311 + movi a2, .Lstr001 # 9cc: 2117ff + movi a3, .Lstr002 # 9cf: 3117ff + movi a4, 1181 /* 0x0000049d */ # 9d2: 42a49d + call0 printf # 9d5: 012bffc0 + # 9d9: 0000 +.Lbr100: j .Lbr100 /* (halt) */ # 9db: 06ffff +.Lbr101: bgeui a13, 2, .Lbr102 # 9de: f62d02 + j .Lbr071 # 9e1: 868dff +.Lbr102: mov a3, a13 # 9e4: 3d0d + mov a2, a14 /* [0x3ff20014] */ # 9e6: 2d0e + call0 .Lfunc003 # 9e8: 0574ff + j .Lbr072 # 9eb: 468dff +.Lbr103: s32i a13, sp, 32 /* a13 -> [(local8)] */ # 9ee: d981 + call0 lmacProcessAckTimeout # 9f0: 0126ffc0 + # 9f4: 0000 +.Lbr104: movi a6, .Ldata007 # 9f6: 610eff + l32i a5, sp, 32 /* [(local8)] */ # 9f9: 5881 + addx4 a5, a5, a6 # 9fb: 6055a0 + l32i a4, a5, 48 # 9fe: 48c5 + l32i a0, sp, 0 /* [(local0)] */ # a00: 0801 + addi a4, a4, 1 # a02: 1b44 + s32i a4, a5, 48 # a04: 49c5 + j .Lbr081 # a06: 46a1ff +.Lbr105: extui a3, a14, 0, 8 # a09: e03074 + mov a2, a13 # a0c: 2d0d + call0 lmacProcessTxSuccess # a0e: 011fffc0 + # a12: 0000 + s32i a13, sp, 32 /* a13 -> [(local8)] */ # a14: d981 + j .Lbr104 # a16: 06f7ff +.Lbr106: l32i a2, sp, 4 /* [(local1)] */ # a19: 2811 + mov a3, a13 # a1b: 3d0d + extui a2, a2, 16, 8 # a1d: 202075 + call0 lmacProcessTxRtsError # a20: 011cffc0 + # a24: 0000 + s32i a13, sp, 32 /* a13 -> [(local8)] */ # a26: d981 + j .Lbr104 # a28: 86f2ff +.Lbr107: mov a2, a13 # a2b: 2d0d + call0 lmacProcessCtsTimeout # a2d: 0119ffc0 + # a31: 0000 + s32i a13, sp, 32 /* a13 -> [(local8)] */ # a33: d981 + j .Lbr104 # a35: 46efff +.Lbr108: l32i a2, sp, 4 /* [(local1)] */ # a38: 2811 + extui a2, a2, 16, 8 # a3a: 202075 + call0 lmacProcessTxError # a3d: 0116ffc0 + # a41: 0000 + s32i a13, sp, 32 /* a13 -> [(local8)] */ # a43: d981 + j .Lbr104 # a45: 46ebff + + .literal_position # a48: 000af23f + # a4c: 000000c0 + # a50: 40000000 + +# Function @ .text+0xa54 + .balign 4 + .global wDev_EnableTransmit + .type wDev_EnableTransmit, @function +wDev_EnableTransmit: + movi a9, 0x3ff20a00 # a54: 91fdff + movi a8, -24 /* 0xffffffe8 */ # a57: 6c88 + extui a10, a3, 0, 4 # a59: 30a034 + extui a11, a4, 0, 10 # a5c: 40b094 + slli a11, a11, 12 # a5f: 40bb11 + slli a10, a10, 24 # a62: 80aa01 + mul16s a8, a8, a2 # a65: 2088d1 + add a8, a8, a9 # a68: 9a88 + or a10, a10, a11 # a6a: b0aa20 + memw # a6d: c02000 + s32i a10, a8, 0x3c0 # a70: a268f0 + movi a9, 0xc0000000 # a73: 91f6ff + memw # a76: c02000 + l32i a7, a8, 0x3c4 # a79: 7228f1 + or a7, a7, a9 # a7c: 907720 + memw # a7f: c02000 + movi a6, .Ldata007 # a82: 61f3ff + addx4 a6, a2, a6 # a85: 6062a0 + l32i a5, a6, 0 # a88: 5806 + s32i a7, a8, 0x3c4 # a8a: 7268f1 + addi a5, a5, 1 # a8d: 1b55 + s32i a5, a6, 0 # a8f: 5906 + ret /* arg0 */ # a91: 0df0 + + .literal_position # a94: 000af23f + # a98: ffffff3f + +# Function @ .text+0xa9c + .balign 4 + .global wDev_DisableTransmit + .type wDev_DisableTransmit, @function +wDev_DisableTransmit: + movi a4, -24 /* 0xffffffe8 */ # a9c: 6c84 + movi a5, 0x3ff20a00 # a9e: 51fdff + mul16s a4, a4, a2 # aa1: 2044d1 + add a4, a4, a5 # aa4: 5a44 + movi a5, 0x3fffffff # aa6: 51fcff + memw # aa9: c02000 + l32i a3, a4, 0x3c4 # aac: 3224f1 + and a3, a3, a5 # aaf: 503310 + memw # ab2: c02000 + s32i a3, a4, 0x3c4 # ab5: 3264f1 + ret /* arg0 */ # ab8: 0df0 + + .literal_position # abc: 000af23f + # ac0: ffffff3f + +# Function @ .text+0xac4 + .balign 4 + .global Tx_Copy2Queue + .type Tx_Copy2Queue, @function +Tx_Copy2Queue: + movi a7, 0x3fffffff # ac4: 71ffff + movi a4, -24 /* 0xffffffe8 */ # ac7: 6c84 + movi a3, 0x3ff20a00 # ac9: 31fcff + mul16s a4, a4, a2 # acc: 2044d1 + add a4, a4, a3 # acf: 3a44 + memw # ad1: c02000 + l32i a8, a3, 0x2dc /* [0x3ff20cdc] */ # ad4: 8223b7 + and a8, a8, a7 # ad7: 708810 + memw # ada: c02000 + s32i a8, a4, 0x3c4 # add: 8264f1 + memw # ae0: c02000 + l32i a6, a3, 0x2e0 /* [0x3ff20ce0] */ # ae3: 6223b8 + and a6, a6, a7 # ae6: 706610 + memw # ae9: c02000 + s32i a6, a4, 0x3c8 # aec: 6264f2 + memw # aef: c02000 + l32i a5, a3, 0x2e4 /* [0x3ff20ce4] */ # af2: 5223b9 + memw # af5: c02000 + s32i a5, a4, 0x3cc # af8: 5264f3 + memw # afb: c02000 + l32i a3, a3, 0x2e8 /* [0x3ff20ce8] */ # afe: 3223ba + memw # b01: c02000 + s32i a3, a4, 0x3d0 # b04: 3264f4 + ret /* arg0 */ # b07: 0df0 + + .literal_position # b0c: 40000000 + +# Function @ .text+0xb10 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global wDev_ProcessCollision + .type wDev_ProcessCollision, @function +wDev_ProcessCollision: + addi sp, sp, -16 /* (local0) */ # b10: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # b13: c911 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # b15: 0901 + mov a12, a2 /* arg0 */ # b17: cd02 + call0 wDev_DisableTransmit # b19: 050000 + movi a2, .Ldata007 # b1c: 21fcff + addx4 a2, a12, a2 # b1f: 202ca0 + l32i a0, a2, 96 # b22: 022218 + l32i a12, sp, 4 /* [(local1)] */ # b25: c811 + addi a0, a0, 1 # b27: 1b00 + s32i a0, a2, 96 # b29: 026218 + l32i a0, sp, 0 /* [(local0)] */ # b2c: 0801 + addi sp, sp, 16 /* (top of frame) */ # b2e: 12c110 + ret # b31: 0df0 + + .literal_position # b34: 000af23f + +# Function @ .text+0xb38 + .balign 4 + .global wDev_GetTxqCollisions + .type wDev_GetTxqCollisions, @function +wDev_GetTxqCollisions: + movi a2, 0x3ff20a00 # b38: 21ffff + memw # b3b: c02000 + l32i a2, a2, 0x2c0 /* [0x3ff20cc0] */ # b3e: 2222b0 + extui a2, a2, 0, 12 # b41: 2020b4 + ret # b44: 0df0 + + .literal_position # b48: 00f0ffff + # b4c: 000af23f + +# Function @ .text+0xb50 + .balign 4 + .global wDev_ClearTxqCollisions + .type wDev_ClearTxqCollisions, @function +wDev_ClearTxqCollisions: + movi a4, 0xfffff000 # b50: 41feff + movi a3, 0x3ff20a00 # b53: 31feff + memw # b56: c02000 + l32i a2, a3, 0x2c0 /* [0x3ff20cc0] */ # b59: 2223b0 + and a2, a2, a4 # b5c: 402210 + memw # b5f: c02000 + s32i a2, a3, 0x2c0 /* a2 -> [0x3ff20cc0] */ # b62: 2263b0 + ret # b65: 0df0 + + .literal_position # b68: 000af23f + # b6c: ffffff7f + # b70: 00000040 + +# Function @ .text+0xb74 + .balign 4 + .global wDev_SetWaitingQueue + .type wDev_SetWaitingQueue, @function +wDev_SetWaitingQueue: + movi a8, -16 /* 0xfffffff0 */ # b74: 7c08 + extui a7, a2, 0, 4 # b76: 207034 + movi a5, 0x3ff20a00 # b79: 51fbff + memw # b7c: c02000 + l32i a6, a5, 0x2b0 /* [0x3ff20cb0] */ # b7f: 6225ac + and a6, a6, a8 # b82: 806610 + or a6, a6, a7 # b85: 706620 + memw # b88: c02000 + s32i a6, a5, 0x2b0 /* a6 -> [0x3ff20cb0] */ # b8b: 6265ac + movi a4, -20 /* 0xffffffec */ # b8e: 6cc4 + mul16s a4, a4, a2 # b90: 2044d1 + movi a7, 0x7fffffff # b93: 71f6ff + add a4, a4, a5 # b96: 5a44 + memw # b98: c02000 + l32i a6, a4, 0x3a4 # b9b: 6224e9 + and a6, a6, a7 # b9e: 706610 + memw # ba1: c02000 + s32i a6, a4, 0x3a4 # ba4: 6264e9 + movi a5, 0x40000000 # ba7: 51f2ff + memw # baa: c02000 + l32i a3, a4, 0x3a4 # bad: 3224e9 + or a3, a3, a5 # bb0: 503320 + memw # bb3: c02000 + s32i a3, a4, 0x3a4 # bb6: 3264e9 + ret /* arg0 */ # bb9: 0df0 + + .literal_position # bbc: 000af23f + # bc0: ffffffbf + +# Function @ .text+0xbc4 + .balign 4 + .global wDev_ClearWaitingQueue + .type wDev_ClearWaitingQueue, @function +wDev_ClearWaitingQueue: + movi a4, -20 /* 0xffffffec */ # bc4: 6cc4 + movi a5, 0x3ff20a00 # bc6: 51fdff + mul16s a4, a4, a2 # bc9: 2044d1 + add a4, a4, a5 # bcc: 5a44 + movi a5, 0xbfffffff # bce: 51fcff + memw # bd1: c02000 + l32i a3, a4, 0x3a4 # bd4: 3224e9 + and a3, a3, a5 # bd7: 503310 + memw # bda: c02000 + s32i a3, a4, 0x3a4 # bdd: 3264e9 + ret /* arg0 */ # be0: 0df0 + + .literal_position # be4: 0000f23f + +# Function @ .text+0xbe8 + .balign 4 + .global wDev_SetFrameAckType + .type wDev_SetFrameAckType, @function +wDev_SetFrameAckType: + extui a8, a2, 4, 4 # be8: 208434 + extui a7, a2, 2, 2 # beb: 207214 + srli a8, a8, 3 # bee: 808341 + addx2 a7, a7, a8 # bf1: 807790 + movi a8, 0x3ff20000 # bf4: 81fcff + extui a7, a7, 0, 8 # bf7: 707074 + slli a7, a7, 2 # bfa: e07711 + add a7, a7, a8 # bfd: 8a77 + addmi a4, a7, 3072 # bff: 42d70c + movi a8, 15 /* 0x0000000f */ # c02: 0cf8 + memw # c04: c02000 + addmi a7, a7, 3072 # c07: 72d70c + l32i a4, a4, 152 # c0a: 422426 + movi a9, -1 /* 0xffffffff */ # c0d: 7cf9 + extui a6, a2, 4, 3 # c0f: 206424 + movi a5, 28 /* 0x0000001c */ # c12: 1cc5 + slli a6, a6, 2 # c14: e06611 + sub a5, a5, a6 # c17: 6055c0 + extui a5, a5, 0, 8 # c1a: 505074 + ssl a5 # c1d: 001540 + sll a8, a8 # c20: 0088a1 + ssl a5 # c23: 001540 + xor a8, a8, a9 # c26: 908830 + and a8, a4, a8 # c29: 808410 + sll a6, a3 # c2c: 0063a1 + or a6, a6, a8 # c2f: 806620 + memw # c32: c02000 + s32i a6, a7, 152 # c35: 626726 + ssr a5 # c38: 000540 + srl a2, a4 # c3b: 402091 + extui a2, a2, 0, 4 # c3e: 202034 + ret # c41: 0df0 + + .literal_position # c44: ff0f00ff + # c48: 00000000 + # c4c: 08000000 + # c50: 24010000 + # c54: 00feef3f + # c58: 24010000 + # c5c: 00000000 + # c60: 00fef13f + # c64: 00000010 + # c68: ffffff0f + # c6c: 000af23f + # c70: 00000050 + # c74: 00feef3f + # c78: 00000000 + # c7c: 00000000 + # c80: 00000000 + +# Function @ .text+0xc84 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word @ -0x8 +# (local3): word @ -0x4 + .balign 4 + .global wDev_AppendRxBlocks + .type wDev_AppendRxBlocks, @function +wDev_AppendRxBlocks: + addi sp, sp, -16 /* (local0) */ # c84: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # c87: 0901 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # c89: d921 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # c8b: c911 + mov a13, a2 /* arg0 */ # c8d: dd02 + mov a12, a4 /* arg2 */ # c8f: cd04 + mov a2, a3 /* arg1 */ # c91: 2d03 + mov a3, a13 /* arg0 */ # c93: 3d0d + beqz a13, .Lbr110 # c95: 165d08 + movi a8, 0 /* 0x00000000 */ # c98: 0c08 + movi a9, 223 /* 0x000000df */ # c9a: 92a0df + movi a10, 191 /* 0x000000bf */ # c9d: a2a0bf + movi a11, 128 /* 0x00000080 */ # ca0: b2a080 + movi a6, 0xff000fff # ca3: 61e8ff + movi a0, 0 /* 0x00000000 */ # ca6: 0c00 +.Lbr109: memw # ca8: c02000 + l8ui a5, a3, 3 # cab: 520303 + extui a5, a5, 0, 7 # cae: 505064 + or a5, a5, a11 # cb1: b05520 + memw # cb4: c02000 + s8i a5, a3, 3 # cb7: 524303 + memw # cba: c02000 + l8ui a4, a3, 3 # cbd: 420303 + and a4, a4, a10 # cc0: a04410 + or a4, a4, a8 # cc3: 804420 + memw # cc6: c02000 + s8i a4, a3, 3 # cc9: 424303 + memw # ccc: c02000 + l8ui a7, a3, 3 # ccf: 720303 + and a7, a7, a9 # cd2: 907710 + or a7, a7, a8 # cd5: 807720 + memw # cd8: c02000 + s8i a7, a3, 3 # cdb: 724303 + memw # cde: c02000 + l16ui a5, a3, 0 # ce1: 521300 + extui a5, a5, 0, 12 # ce4: 5050b4 + slli a5, a5, 12 # ce7: 405511 + memw # cea: c02000 + l16ui a4, a3, 2 # ced: 421301 + slli a4, a4, 16 # cf0: 004411 + memw # cf3: c02000 + l16ui a7, a3, 0 # cf6: 721300 + or a4, a4, a7 # cf9: 704420 + and a4, a4, a6 # cfc: 604410 + or a4, a4, a5 # cff: 504420 + memw # d02: c02000 + s16i a4, a3, 0 # d05: 425300 + extui a4, a4, 16, 16 # d08: 4040f5 + memw # d0b: c02000 + addi a0, a0, 1 # d0e: 1b00 + s16i a4, a3, 2 # d10: 425301 + l32i a3, a3, 8 # d13: 3823 + extui a0, a0, 0, 16 # d15: 0000f4 + bnez a3, .Lbr109 # d18: 56c3f8 + j .Lbr111 # d1b: 460000 +.Lbr110: movi a0, 0 /* 0x00000000 */ # d1e: 0c00 +.Lbr111: beq a12, a0, .Lbr113 # d20: 071c11 + movi a2, .Lstr001 # d23: 21c9ff + movi a3, .Lstr002 # d26: 31c9ff + movi a4, 1494 /* 0x000005d6 */ # d29: 42a5d6 + call0 printf # d2c: 01d3ffc0 + # d30: 0000 +.Lbr112: j .Lbr112 /* (halt) */ # d32: 06ffff +.Lbr113: movi a8, .Label001 # d35: 81c6ff + l8ui a6, a8, 128 /* [NMIIrqIsOn] */ # d38: 620880 + s32i a2, sp, 12 /* arg1 -> [(local3)] */ # d3b: 2931 + bnez a6, .Lbr115 # d3d: ec66 + call0 vPortEnterCritical # d3f: 01cfffc0 + # d43: 0000 + l32i a2, sp, 12 /* [(local3)] */ # d45: 2831 + movi a4, 0x3feffe00 # d47: 41c3ff + movi a7, -32 /* 0xffffffe0 */ # d4a: 6c07 + movi a8, .Label001 # d4c: 81c3ff +.Lbr114: memw # d4f: c02000 + l32i a10, a4, 0x200 /* [0x3ff00000] */ # d52: a22480 + and a10, a10, a7 # d55: 70aa10 + memw # d58: c02000 + s32i a10, a4, 0x200 /* a10 -> [0x3ff00000] */ # d5b: a26480 + memw # d5e: c02000 + l32i a9, a4, 0x200 /* [0x3ff00000] */ # d61: 922480 + bbsi a9, 0, .Lbr114 # d64: 07e9e7 +.Lbr115: movi a0, .Lrel143 # d67: 01bdff + l32i a0, a0, 0 /* [.Lrel143] */ # d6a: 0800 + l16ui a3, a0, 0 /* [[.Lrel143]] */ # d6c: 321000 + l32i a6, a0, 12 /* [[.Lrel143]+0xc] */ # d6f: 6830 + bnez a3, .Lbr116 # d71: ec33 + s32i a13, a0, 8 /* arg0 -> [[.Lrel143]+0x8] */ # d73: d920 + movi a6, 0x3ff1fe00 # d75: 61baff + memw # d78: c02000 + l16ui a5, a0, 0 /* [[.Lrel143]] */ # d7b: 521000 + s32i a13, a6, 0x208 /* arg0 -> [0x3ff20008] */ # d7e: d26682 + add a5, a5, a12 # d81: ca55 + s16i a5, a0, 0 /* a5 -> [[.Lrel143]] */ # d83: 525000 + l16ui a3, a0, 0 /* [[.Lrel143]] */ # d86: 321000 + s32i a2, a0, 12 /* a2 -> [[.Lrel143]+0xc] */ # d89: 2930 + bnei a3, 1, .Lbr119 # d8b: 661326 + l32i a10, a0, 12 /* [[.Lrel143]+0xc] */ # d8e: a830 + addi a9, a0, 24 /* [.Lrel143]+0x18 */ # d90: 92c018 + s32i a9, a10, 8 /* [.Lrel143]+0x18 -> [[[.Lrel143]+0xc]+0x8] */ # d93: 992a + j .Lbr119 # d95: 060700 +.Lbr116: bnei a3, 1, .Lbr118 # d98: 661310 + l32i a11, a0, 16 /* [[.Lrel143]+0x10] */ # d9b: b840 + l32i a10, a0, 20 /* [[.Lrel143]+0x14] */ # d9d: a850 + bnez a11, .Lbr122 # d9f: 56cb07 + s32i a13, a0, 16 /* arg0 -> [[.Lrel143]+0x10] */ # da2: d940 +.Lbr117: s32i a2, a0, 20 /* a2 -> [[.Lrel143]+0x14] */ # da4: 2950 + s16i a12, a0, 2 /* a12 -> [[.Lrel143]+0x2] */ # da6: c25001 + j .Lbr119 # da9: 060200 +.Lbr118: add a5, a3, a12 # dac: ca53 + s32i a13, a6, 8 /* arg0 -> [[[.Lrel143]+0xc]+0x8] */ # dae: d926 + s32i a2, a0, 12 /* a2 -> [[.Lrel143]+0xc] */ # db0: 2930 + s16i a5, a0, 0 /* a5 -> [[.Lrel143]] */ # db2: 525000 +.Lbr119: l16ui a10, a0, 2 /* [[.Lrel143]+0x2] */ # db5: a21001 + l16ui a9, a0, 0 /* [[.Lrel143]] */ # db8: 921000 + movi a0, 0x0fffffff # dbb: 01abff + add a9, a9, a10 # dbe: aa99 + blti a9, 2, .Lbr120 # dc0: a6292c + movi a3, 0x10000000 # dc3: 31a8ff + movi a12, 0x3ff20a00 # dc6: c1a9ff + memw # dc9: c02000 + l32i a2, a12, 0x2a8 /* [0x3ff20ca8] */ # dcc: 222caa + and a2, a2, a0 # dcf: 002210 + or a2, a2, a3 # dd2: 302220 + memw # dd5: c02000 + s32i a2, a12, 0x2a8 /* a2 -> [0x3ff20ca8] */ # dd8: 226caa + movi a13, 0x50000000 # ddb: d1a5ff + memw # dde: c02000 + l32i a11, a12, 0x2ac /* [0x3ff20cac] */ # de1: b22cab + and a11, a11, a0 # de4: 00bb10 + or a11, a11, a13 # de7: d0bb20 + memw # dea: c02000 + s32i a11, a12, 0x2ac /* a11 -> [0x3ff20cac] */ # ded: b26cab +.Lbr120: l8ui a3, a8, 128 /* [NMIIrqIsOn] */ # df0: 320880 + bnez a3, .Lbr121 # df3: dcd3 + memw # df5: c02000 + movi a5, 0x3feffe00 # df8: 519fff + l32i a4, a5, 0x200 /* [0x3ff00000] */ # dfb: 422580 + movi a6, -32 /* 0xffffffe0 */ # dfe: 6c06 + and a4, a4, a6 # e00: 604410 + movi a6, 1 /* 0x00000001 */ # e03: 0c16 + or a4, a4, a6 # e05: 604420 + memw # e08: c02000 + s32i a4, a5, 0x200 /* a4 -> [0x3ff00000] */ # e0b: 426580 + call0 vPortExitCritical # e0e: 019cffc0 + # e12: 0000 +.Lbr121: l32i a12, sp, 4 /* [(local1)] */ # e14: c811 + l32i a13, sp, 8 /* [(local2)] */ # e16: d821 + l32i a0, sp, 0 /* [(local0)] */ # e18: 0801 + addi sp, sp, 16 /* (top of frame) */ # e1a: 12c110 + ret # e1d: 0df0 +.Lbr122: l16ui a9, a0, 2 /* [[.Lrel143]+0x2] */ # e1f: 921001 + s32i a13, a10, 8 /* arg0 -> [[[.Lrel143]+0x14]+0x8] */ # e22: d92a + add a12, a9, a12 # e24: cac9 + j .Lbr117 # e26: 86deff + + .literal_position # e2c: ff0f00ff + # e30: 00000000 + # e34: 08000000 + # e38: 24010000 + # e3c: 00feef3f + # e40: 24010000 + # e44: 00000000 + # e48: 00fef13f + # e4c: 00feef3f + # e50: 00000000 + # e54: 00000000 + # e58: 00000000 + +# Function @ .text+0xe5c +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word @ -0x8 +# (local3): word @ -0x4 + .balign 4 + .global wDev_AppendRxAmpduLensBlocks + .type wDev_AppendRxAmpduLensBlocks, @function +wDev_AppendRxAmpduLensBlocks: + addi sp, sp, -16 /* (local0) */ # e5c: 12c1f0 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # e5f: 0911 + s32i a12, sp, 8 /* a12 -> [(local2)] */ # e61: c921 + s32i a3, sp, 0 /* arg1 -> [(local0)] */ # e63: 3901 + mov a12, a2 /* arg0 */ # e65: cd02 + mov a2, a4 /* arg2 */ # e67: 2d04 + mov a4, a12 /* arg0 */ # e69: 4d0c + beqz a12, .Lbr124 # e6b: 165c08 + movi a9, 0 /* 0x00000000 */ # e6e: 0c09 + movi a10, 223 /* 0x000000df */ # e70: a2a0df + movi a11, 191 /* 0x000000bf */ # e73: b2a0bf + movi a3, 128 /* 0x00000080 */ # e76: 32a080 + movi a7, 0xff000fff # e79: 71ecff + movi a0, 0 /* 0x00000000 */ # e7c: 0c00 +.Lbr123: memw # e7e: c02000 + l8ui a6, a4, 3 # e81: 620403 + extui a6, a6, 0, 7 # e84: 606064 + or a6, a6, a3 # e87: 306620 + memw # e8a: c02000 + s8i a6, a4, 3 # e8d: 624403 + memw # e90: c02000 + l8ui a5, a4, 3 # e93: 520403 + and a5, a5, a11 # e96: b05510 + or a5, a5, a9 # e99: 905520 + memw # e9c: c02000 + s8i a5, a4, 3 # e9f: 524403 + memw # ea2: c02000 + l8ui a8, a4, 3 # ea5: 820403 + and a8, a8, a10 # ea8: a08810 + or a8, a8, a9 # eab: 908820 + memw # eae: c02000 + s8i a8, a4, 3 # eb1: 824403 + memw # eb4: c02000 + l16ui a6, a4, 0 # eb7: 621400 + extui a6, a6, 0, 12 # eba: 6060b4 + slli a6, a6, 12 # ebd: 406611 + memw # ec0: c02000 + l16ui a5, a4, 2 # ec3: 521401 + slli a5, a5, 16 # ec6: 005511 + memw # ec9: c02000 + l16ui a8, a4, 0 # ecc: 821400 + or a5, a5, a8 # ecf: 805520 + and a5, a5, a7 # ed2: 705510 + or a5, a5, a6 # ed5: 605520 + memw # ed8: c02000 + s16i a5, a4, 0 # edb: 525400 + extui a5, a5, 16, 16 # ede: 5050f5 + memw # ee1: c02000 + addi a0, a0, 1 # ee4: 1b00 + s16i a5, a4, 2 # ee6: 525401 + l32i a4, a4, 8 # ee9: 4824 + extui a0, a0, 0, 16 # eeb: 0000f4 + bnez a4, .Lbr123 # eee: 56c4f8 + j .Lbr125 # ef1: 460000 +.Lbr124: movi a0, 0 /* 0x00000000 */ # ef4: 0c00 +.Lbr125: beq a2, a0, .Lbr127 # ef6: 071211 + movi a2, .Lstr001 # ef9: 21cdff + movi a3, .Lstr002 # efc: 31ceff + movi a4, 1568 /* 0x00000620 */ # eff: 42a620 + call0 printf # f02: 01d3ffc0 + # f06: 0000 +.Lbr126: j .Lbr126 /* (halt) */ # f08: 06ffff +.Lbr127: movi a4, .Label001 # f0b: 41cbff + l8ui a8, a4, 128 /* [NMIIrqIsOn] */ # f0e: 820480 + s32i a2, sp, 12 /* arg2 -> [(local3)] */ # f11: 2931 + bnez a8, .Lbr129 # f13: ec68 + call0 vPortEnterCritical # f15: 01cfffc0 + # f19: 0000 + movi a6, 0x3feffe00 # f1b: 61c8ff + movi a7, -32 /* 0xffffffe0 */ # f1e: 6c07 +.Lbr128: memw # f20: c02000 + l32i a11, a6, 0x200 /* [0x3ff00000] */ # f23: b22680 + and a11, a11, a7 # f26: 70bb10 + memw # f29: c02000 + s32i a11, a6, 0x200 /* a11 -> [0x3ff00000] */ # f2c: b26680 + memw # f2f: c02000 + l32i a10, a6, 0x200 /* [0x3ff00000] */ # f32: a22680 + bbsi a10, 0, .Lbr128 # f35: 07eae7 + l32i a2, sp, 12 /* [(local3)] */ # f38: 2831 + movi a4, .Label001 # f3a: 41c1ff +.Lbr129: movi a0, .Lrel143 # f3d: 01c1ff + l32i a0, a0, 0 /* [.Lrel143] */ # f40: 0800 + l32i a3, a0, 48 /* [[.Lrel143]+0x30] */ # f42: 38c0 + l32i a5, a0, 52 /* [[.Lrel143]+0x34] */ # f44: 58d0 + bnez a3, .Lbr130 # f46: ccc3 + s32i a12, a0, 48 /* arg0 -> [[.Lrel143]+0x30] */ # f48: c9c0 + movi a3, 0x3ff1fe00 # f4a: 31bfff + memw # f4d: c02000 + s32i a12, a3, 0x20c /* arg0 -> [0x3ff2000c] */ # f50: c26383 + j .Lbr131 # f53: 460000 +.Lbr130: s32i a12, a5, 8 /* arg0 -> [[[.Lrel143]+0x34]+0x8] */ # f56: c925 +.Lbr131: l32i a10, sp, 0 /* [(local0)] */ # f58: a801 + l8ui a9, a0, 4 /* [[.Lrel143]+0x4] */ # f5a: 920004 + s32i a10, a0, 52 /* [(local0)] -> [[.Lrel143]+0x34] */ # f5d: a9d0 + add a9, a9, a2 # f5f: 2a99 + s8i a9, a0, 4 /* a9 -> [[.Lrel143]+0x4] */ # f61: 924004 + l8ui a8, a4, 128 /* [NMIIrqIsOn] */ # f64: 820480 + bnez a8, .Lbr132 # f67: dcd8 + memw # f69: c02000 + movi a12, 0x3feffe00 # f6c: c1b8ff + l32i a11, a12, 0x200 /* [0x3ff00000] */ # f6f: b22c80 + movi a0, -32 /* 0xffffffe0 */ # f72: 6c00 + and a11, a11, a0 # f74: 00bb10 + movi a0, 1 /* 0x00000001 */ # f77: 0c10 + or a11, a11, a0 # f79: 00bb20 + memw # f7c: c02000 + s32i a11, a12, 0x200 /* a11 -> [0x3ff00000] */ # f7f: b26c80 + call0 vPortExitCritical # f82: 01b5ffc0 + # f86: 0000 +.Lbr132: l32i a12, sp, 8 /* [(local2)] */ # f88: c821 + l32i a0, sp, 4 /* [(local1)] */ # f8a: 0811 + addi sp, sp, 16 /* (top of frame) */ # f8c: 12c110 + ret # f8f: 0df0 + + .literal_position # f94: 00fef13f + +# Function @ .text+0xf98 + .balign 4 + .global wDev_GetBAInfo + .type wDev_GetBAInfo, @function +wDev_GetBAInfo: + movi a6, 0x3ff1fe00 # f98: 61ffff + memw # f9b: c02000 + l32i a9, a6, 0x374 /* [0x3ff20174] */ # f9e: 9226dd + extui a9, a9, 12, 4 # fa1: 909c34 + s8i a9, a2, 0 /* a9 -> [arg0] */ # fa4: 924200 + memw # fa7: c02000 + l32i a8, a6, 0x374 /* [0x3ff20174] */ # faa: 8226dd + extui a8, a8, 0, 12 # fad: 8080b4 + s16i a8, a3, 0 /* a8 -> [arg1] */ # fb0: 825300 + memw # fb3: c02000 + l32i a7, a6, 0x368 /* [0x3ff20168] */ # fb6: 7226da + s32i a7, a4, 0 /* [0x3ff20168] -> [arg2] */ # fb9: 7904 + memw # fbb: c02000 + l32i a6, a6, 0x364 /* [0x3ff20164] */ # fbe: 6226d9 + s32i a6, a5, 0 /* [0x3ff20164] -> [arg3] */ # fc1: 6905 + ret /* arg0 */ # fc3: 0df0 + + .literal_position # fc8: efbeadde + +# Function @ .text+0xfcc + .balign 4 +.Lfunc007: l32i a6, a2, 4 /* [arg0+0x4] */ # fcc: 6812 + movi a3, 0xdeadbeef # fce: 31feff + s32i a3, a6, 0 /* 0xdeadbeef -> [[arg0+0x4]] */ # fd1: 3906 + memw # fd3: c02000 + l16ui a5, a2, 0 /* [arg0] */ # fd6: 521200 + l32i a4, a2, 4 /* [arg0+0x4] */ # fd9: 4812 + extui a5, a5, 0, 12 # fdb: 5050b4 + add a4, a4, a5 # fde: 5a44 + s32i a3, a4, 0 # fe0: 3904 + ret /* arg0 */ # fe2: 0df0 + + .literal_position # fe4: 00fef13f + # fe8: 00000000 + # fec: 00000000 + # ff0: 08000000 + # ff4: 00000000 + # ff8: 00000000 + # ffc: 00000000 + # 1000: 00000000 + # 1004: 00000000 + # 1008: 00000000 + # 100c: 00000000 + +# Function @ .text+0x1010 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 +.Lfunc008: addi sp, sp, -16 /* (local0) */ # 1010: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 1013: c911 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1015: 0901 + movi a0, 0x3ff1fe00 # 1017: 01f3ff + memw # 101a: c02000 + l32i a0, a0, 0x238 /* [0x3ff20038] */ # 101d: 02208e + movi a2, 65 /* 0x00000041 */ # 1020: 4c12 + extui a0, a0, 0, 8 # 1022: 000074 + bgeu a2, a0, .Lbr133 # 1025: 07b205 + extui a2, a0, 7, 1 # 1028: 002704 + beqz a2, .Lbr138 # 102b: 16c209 +.Lbr133: movi a12, .Lrel143 # 102e: c1eeff + l32i a12, a12, 0 /* [.Lrel143] */ # 1031: c80c + l32i a12, a12, 8 /* [[.Lrel143]+0x8] */ # 1033: c82c + l32i a12, a12, 4 /* [[[.Lrel143]+0x8]+0x4] */ # 1035: c81c + l8ui a3, a12, 1 /* [[[[.Lrel143]+0x8]+0x4]+0x1] */ # 1037: 320c01 + l8ui a0, a12, 4 /* [[[[.Lrel143]+0x8]+0x4]+0x4] */ # 103a: 020c04 + srli a3, a3, 6 # 103d: 303641 + beqz a3, .Lbr138 # 1040: 167308 + srli a2, a0, 7 # 1043: 002741 + bnez a2, .Lbr134 # 1046: cca2 + extui a3, a0, 0, 7 # 1048: 003064 + bgei a3, 8, .Lbr134 # 104b: e68305 + l8ui a4, a12, 7 /* [[[[.Lrel143]+0x8]+0x4]+0x7] */ # 104e: 420c07 + bbci a4, 6, .Lbr138 # 1051: 676476 +.Lbr134: movi a2, 12 /* 0x0000000c */ # 1054: 0cc2 + call0 pvPortMalloc # 1056: 01e7ffc0 + # 105a: 0000 + mov a3, a12 /* [[[.Lrel143]+0x8]+0x4] */ # 105c: 3d0c + movi a4, 12 /* 0x0000000c */ # 105e: 0cc4 + mov a12, a2 # 1060: cd02 + call0 memcpy # 1062: 01e5ffc0 + # 1066: 0000 + call0 chm_get_current_channel # 1068: 01e5ffc0 + # 106c: 0000 + bnez a2, .Lbr136 # 106e: dc02 + movi a2, .Lstr001 # 1070: 21dfff + movi a3, .Lstr002 # 1073: 31dfff + movi a4, 1900 /* 0x0000076c */ # 1076: 42a76c + call0 printf # 1079: 01e1ffc0 + # 107d: 0000 +.Lbr135: j .Lbr135 /* (halt) */ # 107f: 06ffff +.Lbr136: l8ui a6, a2, 6 # 1082: 620206 + movi a8, 240 /* 0x000000f0 */ # 1085: 82a0f0 + l8ui a5, a12, 1 # 1088: 520c01 + l8ui a7, a12, 10 # 108b: 720c0a + srli a5, a5, 6 # 108e: 505641 + and a7, a7, a8 # 1091: 807710 + extui a6, a6, 0, 4 # 1094: 606034 + or a6, a6, a7 # 1097: 706620 + s8i a6, a12, 10 # 109a: 624c0a + beqz a5, .Lbr139 # 109d: bc35 + l8ui a6, a12, 4 # 109f: 620c04 + extui a0, a6, 0, 7 # 10a2: 600064 + srli a6, a6, 7 # 10a5: 606741 + bnez a6, .Lbr137 # 10a8: cc76 + bgei a0, 8, .Lbr137 # 10aa: e68005 + l8ui a7, a12, 7 # 10ad: 720c07 + bbci a7, 6, .Lbr139 # 10b0: 676720 +.Lbr137: bgei a0, 32, .Lbr139 # 10b3: e6c01d + movi a2, 9 /* 0x00000009 */ # 10b6: 0c92 + mov a3, a12 # 10b8: 3d0c + call0 pp_post # 10ba: 01d2ffc0 + # 10be: 0000 + bnei a2, 1, .Lbr138 # 10c0: 661207 + mov a2, a12 # 10c3: 2d0c + call0 vPortFree # 10c5: 01d0ffc0 + # 10c9: 0000 +.Lbr138: l32i a12, sp, 4 /* [(local1)] */ # 10cb: c811 + l32i a0, sp, 0 /* [(local0)] */ # 10cd: 0801 + addi sp, sp, 16 /* (top of frame) */ # 10cf: 12c110 + ret # 10d2: 0df0 +.Lbr139: mov a2, a12 # 10d4: 2d0c + call0 vPortFree # 10d6: 01cdffc0 + # 10da: 0000 + j .Lbr138 # 10dc: c6faff + + .literal_position # 10e0: 000af23f + # 10e4: 000ef23f + # 10e8: 00fef13f + # 10ec: 00000000 + # 10f0: 00000000 + # 10f4: 08000000 + # 10f8: 00000000 + # 10fc: 00000000 + # 1100: 00000000 + # 1104: 00000000 + # 1108: 00000000 + # 110c: 00000000 + # 1110: 00000000 + +# Function @ .text+0x1114 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 +.Lfunc009: movi a3, 29 /* 0x0000001d */ # 1114: 1cd3 + addi sp, sp, -16 /* (local0) */ # 1116: 12c1f0 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 1119: d921 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 111b: 0901 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 111d: c911 + movi a2, 4 /* 0x00000004 */ # 111f: 0c42 + movi a12, 0x3ff20a00 # 1121: c1efff + movi a0, 0x3ff20e00 # 1124: 01f0ff + memw # 1127: c02000 + l32i a0, a0, 0x2fc /* [0x3ff210fc] */ # 112a: 0220bf + memw # 112d: c02000 + l32i a4, a12, 0x200 /* [0x3ff20c00] */ # 1130: 422c80 + sub a4, a4, a0 # 1133: 0044c0 + bltu a3, a4, .Lbr141 # 1136: 473317 +.Lbr140: memw # 1139: c02000 + l32i a4, a12, 0x21c /* [0x3ff20c1c] */ # 113c: 422c87 + extui a4, a4, 2, 1 # 113f: 404204 + bnez a4, .Lbr150 # 1142: 56940e + memw # 1145: c02000 + l32i a5, a12, 0x200 /* [0x3ff20c00] */ # 1148: 522c80 + sub a5, a5, a0 # 114b: 0055c0 + bgeu a3, a5, .Lbr140 # 114e: 57b3e7 +.Lbr141: movi a7, -256 /* 0xffffff00 */ # 1151: 72af00 + movi a3, 0x3ff1fe00 # 1154: 31e5ff + memw # 1157: c02000 + l32i a6, a3, 0x3d4 /* [0x3ff201d4] */ # 115a: 6223f5 + movi a10, -3 /* 0xfffffffd */ # 115d: 7cda + and a6, a6, a7 # 115f: 706610 + extui a6, a6, 8, 8 # 1162: 606874 + bgeui a6, 8, .Lbr142 # 1165: f68602 + j .Lbr150 # 1168: c63000 +.Lbr142: memw # 116b: c02000 + l32i a9, a12, 0x270 /* [0x3ff20c70] */ # 116e: 922c9c + and a9, a9, a10 # 1171: a09910 + memw # 1174: c02000 + s32i a9, a12, 0x270 /* a9 -> [0x3ff20c70] */ # 1177: 926c9c + memw # 117a: c02000 + l32i a8, a12, 0x21c /* [0x3ff20c1c] */ # 117d: 822c87 + bbsi a8, 2, .Lbr144 # 1180: 27e808 +.Lbr143: memw # 1183: c02000 + l32i a11, a12, 0x21c /* [0x3ff20c1c] */ # 1186: b22c87 + bnone a11, a2, .Lbr143 # 1189: 270bf6 +.Lbr144: memw # 118c: c02000 + s32i a2, a12, 0x224 /* 0x00000004 -> [0x3ff20c24] */ # 118f: 226c89 + memw # 1192: c02000 + l32i a0, a3, 0x238 /* [0x3ff20038] */ # 1195: 02238e + movi a13, 65 /* 0x00000041 */ # 1198: 4c1d + extui a0, a0, 0, 8 # 119a: 000074 + bgeu a13, a0, .Lbr145 # 119d: 07bd02 + bbci a0, 7, .Lbr149 # 11a0: 77607a +.Lbr145: movi a13, .Lrel143 # 11a3: d1d2ff + l32i a13, a13, 0 /* [.Lrel143] */ # 11a6: d80d + l32i a13, a13, 8 /* [[.Lrel143]+0x8] */ # 11a8: d82d + movi a2, 12 /* 0x0000000c */ # 11aa: 0cc2 + l32i a13, a13, 4 /* [[[.Lrel143]+0x8]+0x4] */ # 11ac: d81d + call0 pvPortMalloc # 11ae: 01d2ffc0 + # 11b2: 0000 + mov a3, a13 /* [[[.Lrel143]+0x8]+0x4] */ # 11b4: 3d0d + movi a4, 12 /* 0x0000000c */ # 11b6: 0cc4 + mov a13, a2 # 11b8: dd02 + call0 memcpy # 11ba: 01d0ffc0 + # 11be: 0000 + call0 chm_get_current_channel # 11c0: 01d0ffc0 + # 11c4: 0000 + bnez a2, .Lbr147 # 11c6: dc02 + movi a2, .Lstr001 # 11c8: 21caff + movi a3, .Lstr002 # 11cb: 31caff + movi a4, 1958 /* 0x000007a6 */ # 11ce: 42a7a6 + call0 printf # 11d1: 01ccffc0 + # 11d5: 0000 +.Lbr146: j .Lbr146 /* (halt) */ # 11d7: 06ffff +.Lbr147: l8ui a3, a2, 6 # 11da: 320206 + movi a5, 240 /* 0x000000f0 */ # 11dd: 52a0f0 + l8ui a0, a13, 1 # 11e0: 020d01 + l8ui a4, a13, 10 # 11e3: 420d0a + srli a0, a0, 6 # 11e6: 000641 + and a4, a4, a5 # 11e9: 504410 + extui a3, a3, 0, 4 # 11ec: 303034 + or a3, a3, a4 # 11ef: 403320 + s8i a3, a13, 10 # 11f2: 324d0a + beqz a0, .Lbr151 # 11f5: 161004 + l8ui a2, a13, 4 # 11f8: 220d04 + extui a0, a2, 0, 7 # 11fb: 200064 + srli a2, a2, 7 # 11fe: 202741 + bnez a2, .Lbr148 # 1201: cc12 + blti a0, 8, .Lbr151 # 1203: a68033 +.Lbr148: bgei a0, 32, .Lbr151 # 1206: e6c030 + movi a2, 9 /* 0x00000009 */ # 1209: 0c92 + mov a3, a13 # 120b: 3d0d + call0 pp_post # 120d: 01beffc0 + # 1211: 0000 + bnei a2, 1, .Lbr149 # 1213: 661207 + mov a2, a13 # 1216: 2d0d + call0 vPortFree # 1218: 01bdffc0 + # 121c: 0000 +.Lbr149: movi a4, 2 /* 0x00000002 */ # 121e: 0c24 + memw # 1220: c02000 + l32i a3, a12, 0x270 /* [0x3ff20c70] */ # 1223: 322c9c + or a3, a3, a4 # 1226: 403320 + memw # 1229: c02000 + s32i a3, a12, 0x270 /* a3 -> [0x3ff20c70] */ # 122c: 326c9c +.Lbr150: l32i a12, sp, 4 /* [(local1)] */ # 122f: c811 + l32i a13, sp, 8 /* [(local2)] */ # 1231: d821 + l32i a0, sp, 0 /* [(local0)] */ # 1233: 0801 + addi sp, sp, 16 /* (top of frame) */ # 1235: 12c110 + ret # 1238: 0df0 +.Lbr151: mov a2, a13 # 123a: 2d0d + call0 vPortFree # 123c: 01b5ffc0 + # 1240: 0000 + j .Lbr149 # 1242: 06f6ff + + .literal_position # 1248: 00000000 + # 124c: 00000000 + # 1250: ffffff00 + # 1254: 00000000 + # 1258: ffffff00 + # 125c: fcff0000 + # 1260: 00000000 + # 1264: 00000000 + # 1268: 00000000 + # 126c: 00000000 + # 1270: 00000000 + # 1274: 00000000 + # 1278: 00000000 + # 127c: 00000000 + # 1280: 00000000 + # 1284: 00000000 + +# Function @ .text+0x1288 +# Local variables/stack: +# (local0): word @ -0x30 +# (local1): word @ -0x2c +# (local2): word @ -0x28 +# (local3): word @ -0x24 +# (local4): word @ -0x20 +# (local5): word @ -0x1c +# (local6): word @ -0x18 +# (local7): word @ -0x14 +# (local8): word @ -0x10 +# (local9): word[3] @ -0xc + .balign 4 +.Lfunc010: addi sp, sp, -48 /* (local0) */ # 1288: 12c1d0 + s32i a13, sp, 24 /* a13 -> [(local6)] */ # 128b: d961 + s32i a0, sp, 16 /* a0 -> [(local4)] */ # 128d: 0941 + movi a0, .Lrel143 # 128f: 01eeff + s32i a15, sp, 32 /* a15 -> [(local8)] */ # 1292: f981 + l32i a2, a0, 0 /* [.Lrel143] */ # 1294: 2800 + s32i a14, sp, 28 /* a14 -> [(local7)] */ # 1296: e971 + l32i a2, a2, 8 /* [[.Lrel143]+0x8] */ # 1298: 2822 + s32i a12, sp, 20 /* a12 -> [(local5)] */ # 129a: c951 + l32i a12, a2, 4 /* [[[.Lrel143]+0x8]+0x4] */ # 129c: c812 + movi a14, 1 /* 0x00000001 */ # 129e: 0c1e + l8ui a3, a12, 7 /* [[[[.Lrel143]+0x8]+0x4]+0x7] */ # 12a0: 320c07 + addi a15, a12, 12 /* [[[.Lrel143]+0x8]+0x4]+0xc */ # 12a3: cbfc + extui a3, a3, 3, 1 # 12a5: 303304 + beqz a3, .Lbr166 # 12a8: 16b319 + mov a14, a2 /* [[.Lrel143]+0x8] */ # 12ab: ed02 + memw # 12ad: c02000 + l8ui a3, a2, 3 /* [[[.Lrel143]+0x8]+0x3] */ # 12b0: 320203 + movi a13, 1 /* 0x00000001 */ # 12b3: 0c1d + extui a3, a3, 0, 7 # 12b5: 303064 + srli a3, a3, 6 # 12b8: 303641 + bnez a3, .Lbr153 # 12bb: dc93 + movi a13, 1 /* 0x00000001 */ # 12bd: 0c1d +.Lbr152: l32i a14, a14, 8 # 12bf: e82e + addi a13, a13, 1 # 12c1: 1bdd + extui a13, a13, 0, 16 # 12c3: d0d0f4 + memw # 12c6: c02000 + l8ui a4, a14, 3 # 12c9: 420e03 + extui a4, a4, 0, 7 # 12cc: 404064 + srli a4, a4, 6 # 12cf: 404641 + beqz a4, .Lbr152 # 12d2: 1694fe + j .Lbr153 # 12d5: c6ffff +.Lbr153: l8ui a2, a12, 9 /* [[[[.Lrel143]+0x8]+0x4]+0x9] */ # 12d8: 220c09 + movi a3, wDevCtrl # 12db: 31dcff + addx4 a2, a2, a2 # 12de: 2022a0 + l32i a3, a3, 48 /* [.Ldata006] */ # 12e1: 38c3 + s32i a3, sp, 0 /* [.Ldata006] -> [(local0)] */ # 12e3: 3901 + slli a2, a2, 1 # 12e5: f02211 + addi a2, a2, 50 # 12e8: 22c232 + call0 pvPortMalloc # 12eb: 01dfffc0 + # 12ef: 0000 + s32i a2, sp, 36 /* a2 -> [(local9)] */ # 12f1: 2991 + mov a3, a12 /* [[[.Lrel143]+0x8]+0x4] */ # 12f3: 3d0c + movi a4, 60 /* 0x0000003c */ # 12f5: 3cc4 + s32i a2, sp, 12 /* a2 -> [(local3)] */ # 12f7: 2931 + s32i a15, sp, 8 /* [[[.Lrel143]+0x8]+0x4]+0xc -> [(local2)] */ # 12f9: f921 + call0 memcpy # 12fb: 01dcffc0 + # 12ff: 0000 + l32i a9, sp, 8 /* [(local2)] */ # 1301: 9821 + movi a11, 224 /* 0x000000e0 */ # 1303: b2a0e0 + movi a6, 0x00ffffff # 1306: 61d2ff + movi a8, 0 /* 0x00000000 */ # 1309: 0c08 + l32i a10, sp, 12 /* [(local3)] */ # 130b: a831 + l32i a0, sp, 0 /* [(local0)] */ # 130d: 0801 + addi a7, a10, 50 /* [(local3)]+0x32 */ # 130f: 72ca32 + l32i a15, a0, 4 /* [[(local0)]+0x4] */ # 1312: f810 + s16i a8, a10, 48 /* 0x0000 -> [[(local3)]+0x30] */ # 1314: 825a18 +.Lbr154: memw # 1317: c02000 + l16ui a5, a0, 2 /* [[(local0)]+0x2] */ # 131a: 521001 + slli a5, a5, 16 # 131d: 005511 + memw # 1320: c02000 + l16ui a8, a0, 0 /* [[(local0)]] */ # 1323: 821000 + l32i a4, a0, 4 /* [[(local0)]+0x4] */ # 1326: 4810 + or a5, a5, a8 # 1328: 805520 + and a5, a5, a6 # 132b: 605510 + srli a5, a5, 12 # 132e: 505c41 + add a4, a4, a5 # 1331: 5a44 + bltu a15, a4, .Lbr155 # 1333: 473f02 + j .Lbr161 # 1336: 862800 +.Lbr155: l32i a10, sp, 36 /* [(local9)] */ # 1339: a891 + l8ui a8, a12, 9 /* [[[[.Lrel143]+0x8]+0x4]+0x9] */ # 133b: 820c09 + l16ui a10, a10, 48 /* [[(local9)]+0x30] */ # 133e: a21a18 + bltu a10, a8, .Lbr156 # 1341: 873a02 + j .Lbr161 # 1344: 062500 +.Lbr156: l8ui a8, a15, 0 # 1347: 820f00 + movi a3, .Lrel143 # 134a: 31c2ff + beqz a8, .Lbr158 # 134d: 8ca8 + bltu a11, a8, .Lbr157 # 134f: 873b02 + j .Lbr160 # 1352: 462000 +.Lbr157: movi a2, 252 /* 0x000000fc */ # 1355: 22a0fc + bltu a2, a8, .Lbr160 # 1358: 87327b +.Lbr158: s32i a9, sp, 8 /* a9 -> [(local2)] */ # 135b: 9921 + l32i a3, a3, 0 /* [.Lrel143] */ # 135d: 3803 + addi a4, a9, 24 # 135f: 42c918 + l32i a5, a3, 8 /* [[.Lrel143]+0x8] */ # 1362: 5823 + memw # 1364: c02000 + s32i a7, sp, 4 /* a7 -> [(local1)] */ # 1367: 7911 + l32i a3, a3, 8 /* [[.Lrel143]+0x8] */ # 1369: 3823 + l16ui a5, a5, 0 /* [[[.Lrel143]+0x8]] */ # 136b: 521500 + l32i a3, a3, 4 /* [[[.Lrel143]+0x8]+0x4] */ # 136e: 3813 + extui a5, a5, 0, 12 # 1370: 5050b4 + add a3, a3, a5 # 1373: 5a33 + bltu a3, a4, .Lbr161 # 1375: 473363 + l32i a3, sp, 8 /* [(local2)] */ # 1378: 3821 + l32i a2, sp, 4 /* [(local1)] */ # 137a: 2811 + l32i a7, sp, 36 /* [(local9)] */ # 137c: 7891 + addi a6, a10, 1 /* [[(local9)]+0x30]+0x1 */ # 137e: 1b6a + s16i a6, a7, 48 /* [[(local9)]+0x30]+0x1 -> [[(local9)]+0x30] */ # 1380: 625718 + l16ui a5, a15, 2 # 1383: 521f01 + l16ui a6, a15, 0 # 1386: 621f00 + slli a5, a5, 16 # 1389: 005511 + or a5, a5, a6 # 138c: 605520 + extui a5, a5, 8, 12 # 138f: 5058b4 + s16i a5, a2, 0 /* a5 -> [[(local1)]] */ # 1392: 525200 + l16ui a4, a3, 22 /* [[(local2)]+0x16] */ # 1395: 42130b + s16i a4, a2, 2 /* [[(local2)]+0x16] -> [[(local1)]+0x2] */ # 1398: 425201 + addi a3, a3, 16 /* [(local2)]+0x10 */ # 139b: 32c310 + addi a2, a2, 4 /* [(local1)]+0x4 */ # 139e: 4b22 + movi a4, 6 /* 0x00000006 */ # 13a0: 0c64 + call0 memcpy # 13a2: 01b3ffc0 + # 13a6: 0000 + movi a6, 0x00ffffff # 13a8: 61acff + movi a10, 28 /* 0x0000001c */ # 13ab: 1cca + movi a0, 34 /* 0x00000022 */ # 13ad: 2c20 + l32i a9, sp, 8 /* [(local2)] */ # 13af: 9821 + l32i a7, sp, 4 /* [(local1)] */ # 13b1: 7811 + l8ui a8, a9, 1 /* [[(local2)]+0x1] */ # 13b3: 820901 + addi a7, a7, 10 /* [(local1)]+0xa */ # 13b6: ab77 + extui a11, a8, 0, 2 # 13b8: 80b014 + addi a11, a11, -3 # 13bb: b2cbfd + movnez a0, a10, a11 # 13be: b00a93 + addi a5, a0, 2 # 13c1: 2b50 + movi a11, 224 /* 0x000000e0 */ # 13c3: b2a0e0 + bbci a8, 7, .Lbr159 # 13c6: 776801 + addi a5, a0, 6 # 13c9: 6b50 +.Lbr159: l32i a0, sp, 0 /* [(local0)] */ # 13cb: 0801 + movi a3, 0x0000fffc # 13cd: 31a3ff + addi a2, a5, 3 # 13d0: 3b25 + and a2, a2, a3 # 13d2: 302210 + add a9, a9, a2 # 13d5: 2a99 +.Lbr160: addi a15, a15, 4 # 13d7: 4bff + j .Lbr154 # 13d9: 86ceff +.Lbr161: mov a3, a13 # 13dc: 3d0d + mov a2, a14 # 13de: 2d0e + call0 .Lfunc003 # 13e0: 85d4fe + movi a2, .Lrel143 # 13e3: 219fff + l32i a13, sp, 12 /* [(local3)] */ # 13e6: d831 + l32i a2, a2, 0 /* [.Lrel143] */ # 13e8: 2802 + movi a3, 1 /* 0x00000001 */ # 13ea: 0c13 + l32i a2, a2, 48 /* [[.Lrel143]+0x30] */ # 13ec: 28c2 + call0 .Lfunc004 # 13ee: 45d7fe + j .Lbr164 # 13f1: 860b00 +.Lbr162: l16ui a2, a12, 4 /* [[[[.Lrel143]+0x8]+0x4]+0x4] */ # 13f4: 221c02 + slli a0, a0, 16 # 13f7: 000011 + or a0, a0, a2 # 13fa: 200020 + srli a0, a0, 8 # 13fd: 000841 +.Lbr163: addi a3, a12, 28 /* [[[.Lrel143]+0x8]+0x4]+0x1c */ # 1400: 32cc1c + s16i a0, a13, 50 # 1403: 025d19 + movi a4, 6 /* 0x00000006 */ # 1406: 0c64 + l16ui a2, a12, 34 /* [[[[.Lrel143]+0x8]+0x4]+0x22] */ # 1408: 221c11 + s16i a2, a13, 52 # 140b: 225d1a + addi a2, a13, 54 # 140e: 22cd36 + call0 memcpy # 1411: 0198ffc0 + # 1415: 0000 + movi a2, .Lrel143 # 1417: 2193ff + l32i a2, a2, 0 /* [.Lrel143] */ # 141a: 2802 + movi a3, 1 /* 0x00000001 */ # 141c: 0c13 + l32i a2, a2, 8 /* [[.Lrel143]+0x8] */ # 141e: 2822 + call0 .Lfunc003 # 1420: 85d0fe +.Lbr164: movi a2, 9 /* 0x00000009 */ # 1423: 0c92 + mov a3, a13 # 1425: 3d0d + call0 pp_post # 1427: 0194ffc0 + # 142b: 0000 + bnei a2, 1, .Lbr165 # 142d: 661207 + mov a2, a13 # 1430: 2d0d + call0 vPortFree # 1432: 0192ffc0 + # 1436: 0000 +.Lbr165: l32i a12, sp, 20 /* [(local5)] */ # 1438: c851 + l32i a13, sp, 24 /* [(local6)] */ # 143a: d861 + l32i a14, sp, 28 /* [(local7)] */ # 143c: e871 + l32i a15, sp, 32 /* [(local8)] */ # 143e: f881 + l32i a0, sp, 16 /* [(local4)] */ # 1440: 0841 + addi sp, sp, 48 /* (top of frame) */ # 1442: 12c130 + ret # 1445: 0df0 +.Lbr166: movi a2, 60 /* 0x0000003c */ # 1447: 3cc2 + call0 pvPortMalloc # 1449: 018dffc0 + # 144d: 0000 + mov a13, a2 # 144f: dd02 + mov a3, a12 /* [[[.Lrel143]+0x8]+0x4] */ # 1451: 3d0c + movi a4, 60 /* 0x0000003c */ # 1453: 3cc4 + call0 memcpy # 1455: 018bffc0 + # 1459: 0000 + s16i a14, a13, 48 # 145b: e25d18 + l8ui a3, a12, 1 /* [[[[.Lrel143]+0x8]+0x4]+0x1] */ # 145e: 320c01 + l16ui a0, a12, 6 /* [[[[.Lrel143]+0x8]+0x4]+0x6] */ # 1461: 021c03 + srli a3, a3, 6 # 1464: 303641 + bnez a3, .Lbr162 # 1467: 5693f8 + l16ui a0, a12, 2 /* [[[[.Lrel143]+0x8]+0x4]+0x2] */ # 146a: 021c01 + extui a0, a0, 0, 12 # 146d: 0000b4 + j .Lbr163 # 1470: 06e3ff + + .section .data, "aw", @progbits + +.Lrel143: .word wDevCtrl # 0: 00000000 +.Ldata001: .word 0x00019000 # 4: 00900100 +.Ldata002: .word 0x00000000 # 8: 00000000 +.Ldata003: .word 0x00000000 # c: 00000000 + + .section .bss, "aw", @nobits + + .global wDevCtrl + .type wDevCtrl, @object +wDevCtrl: .space 5 +.Ldata004: .byte 0x00 + .balign 4 +.Ldata005: .word 0x00000000 # 8: 00000000 + +# NOTE: 36 non-alignment zero bytes skipped. + + .skip 36 +.Ldata006: .word 0x00000000 # 30: 00000000 + +# NOTE: 12 non-alignment zero bytes skipped. + + .skip 12 +.Ldata007: .space 228 +.Label001: .space 64 +.Ldata008: .word 0x00000000 # 164: 00000000 + +# NOTE: 4 non-alignment zero bytes skipped. + + .skip 4 +.Ldata009: .word 0x00000000 # 16c: 00000000 +.Ldata010: .word 0x00000000 # 170: 00000000 +.Ldata011: .word 0x00000000 # 174: 00000000 +.Ldata012: .word 0x00000000 # 178: 00000000 +.Ldata013: .word 0x00000000 # 17c: 00000000 +.Ldata014: .word 0x00000000 # 180: 00000000 +.Ldata015: .word 0x00000000 # 184: 00000000 +.Ldata016: .word 0x00000000 # 188: 00000000 +.Ldata017: .word 0x00000000 # 18c: 00000000 + +# NOTE: 4 non-alignment zero bytes skipped. + + .skip 4 +.Ldata018: .word 0x00000000 # 194: 00000000 +.Ldata019: .word 0x00000000 # 198: 00000000 + +# NOTE: 4 non-alignment zero bytes skipped. + + .skip 4 +.Ldata020: .word 0x00000000 # 1a0: 00000000 + .global NMIIrqIsOn + .type NMIIrqIsOn, @object +NMIIrqIsOn: .byte 0x00 + .byte 0x00, 0x00, 0x00 + .global WdevTimOffSet + .type WdevTimOffSet, @object +WdevTimOffSet: + .word 0x00000000 # 1a8: 00000000 + .word 0x00000000 # 1ac: 00000000 +.Ldata021: .space 60 + .word 0x00000000 # 1ec: 00000000 + .space 8020 +.Ldata022: .space 12 +.Ldata023: .space 60 + .word 0x00000000 # 218c: 00000000 + .space 8000 +.Ldata024: .space 72 + .space 8 + .space 1536 +.Ldata025: .byte 0x00 + + .section .irom0.text, "ax", @progbits + + .literal_position # 0: 00a08000 + # 4: 000ef23f + # 8: 000af23f + # c: f7bfdf7f + # 10: ff00ffff + # 14: 00f0ffff + # 18: 00000080 + # 1c: 00000040 + +# Function @ .irom0.text+0x20 + .balign 4 + .global wDev_Option_Init + .type wDev_Option_Init, @function +wDev_Option_Init: + movi a9, 0x0080a000 # 20: 91f8ff + movi a8, 0x3ff20e00 # 23: 81f8ff + movi a3, 0x3ff20a00 # 26: 31f8ff + memw # 29: c02000 + l32i a7, a3, 0x288 /* [0x3ff20c88] */ # 2c: 7223a2 + or a7, a7, a9 # 2f: 907720 + memw # 32: c02000 + s32i a7, a3, 0x288 /* a7 -> [0x3ff20c88] */ # 35: 7263a2 + movi a6, 0x7fdfbff7 # 38: 61f5ff + memw # 3b: c02000 + l32i a5, a3, 0x288 /* [0x3ff20c88] */ # 3e: 5223a2 + and a5, a5, a6 # 41: 605510 + memw # 44: c02000 + s32i a5, a3, 0x288 /* a5 -> [0x3ff20c88] */ # 47: 5263a2 + movi a4, 8 /* 0x00000008 */ # 4a: 0c84 + memw # 4c: c02000 + l32i a2, a3, 0x290 /* [0x3ff20c90] */ # 4f: 2223a4 + or a2, a2, a4 # 52: 402220 + memw # 55: c02000 + s32i a2, a3, 0x290 /* a2 -> [0x3ff20c90] */ # 58: 2263a4 + movi a11, 3 /* 0x00000003 */ # 5b: 0c3b + memw # 5d: c02000 + l32i a10, a3, 0x294 /* [0x3ff20c94] */ # 60: a223a5 + or a10, a10, a11 # 63: b0aa20 + memw # 66: c02000 + s32i a10, a3, 0x294 /* a10 -> [0x3ff20c94] */ # 69: a263a5 + movi a9, -241 /* 0xffffff0f */ # 6c: 92af0f + memw # 6f: c02000 + l32i a7, a8, 8 /* [0x3ff20e08] */ # 72: 7828 + and a7, a7, a9 # 74: 907710 + memw # 77: c02000 + s32i a7, a8, 8 /* a7 -> [0x3ff20e08] */ # 7a: 7928 + movi a6, -256 /* 0xffffff00 */ # 7c: 62af00 + movi a5, 4 /* 0x00000004 */ # 7f: 0c45 + memw # 81: c02000 + l32i a4, a3, 0x26c /* [0x3ff20c6c] */ # 84: 42239b + and a4, a4, a6 # 87: 604410 + or a4, a4, a5 # 8a: 504420 + memw # 8d: c02000 + s32i a4, a3, 0x26c /* a4 -> [0x3ff20c6c] */ # 90: 42639b + movi a2, 0xffff00ff # 93: 21dfff + movi a11, 1024 /* 0x00000400 */ # 96: b2a400 + memw # 99: c02000 + l32i a10, a3, 0x26c /* [0x3ff20c6c] */ # 9c: a2239b + and a10, a10, a2 # 9f: 20aa10 + or a10, a10, a11 # a2: b0aa20 + memw # a5: c02000 + s32i a10, a3, 0x26c /* a10 -> [0x3ff20c6c] */ # a8: a2639b + movi a9, 0xfffff000 # ab: 91daff + movi a8, 240 /* 0x000000f0 */ # ae: 82a0f0 + memw # b1: c02000 + l32i a7, a3, 0x214 /* [0x3ff20c14] */ # b4: 722385 + and a7, a7, a9 # b7: 907710 + or a7, a7, a8 # ba: 807720 + memw # bd: c02000 + s32i a7, a3, 0x214 /* a7 -> [0x3ff20c14] */ # c0: 726385 + movi a6, 0x80000000 # c3: 61d5ff + memw # c6: c02000 + l32i a5, a3, 0x214 /* [0x3ff20c14] */ # c9: 522385 + or a5, a5, a6 # cc: 605520 + memw # cf: c02000 + s32i a5, a3, 0x214 /* a5 -> [0x3ff20c14] */ # d2: 526385 + movi a4, 0x40000000 # d5: 41d1ff + memw # d8: c02000 + l32i a2, a3, 0x214 /* [0x3ff20c14] */ # db: 222385 + or a2, a2, a4 # de: 402220 + memw # e1: c02000 + s32i a2, a3, 0x214 /* a2 -> [0x3ff20c14] */ # e4: 226385 + ret # e7: 0df0 + + .literal_position # ec: 000000c4 + # f0: 000ef23f + +# Function @ .irom0.text+0xf4 + .balign 4 + .global wDev_Enable_Beacon_Tsf + .type wDev_Enable_Beacon_Tsf, @function +wDev_Enable_Beacon_Tsf: + movi a4, 0xc4000000 # f4: 41feff + movi a3, 0x3ff20e00 # f7: 31feff + memw # fa: c02000 + l32i a2, a3, 0x258 /* [0x3ff21058] */ # fd: 222396 + or a2, a2, a4 # 100: 402220 + memw # 103: c02000 + s32i a2, a3, 0x258 /* a2 -> [0x3ff21058] */ # 106: 226396 + ret # 109: 0df0 + + .literal_position # 10c: ffffff3b + # 110: 000ef23f + +# Function @ .irom0.text+0x114 + .balign 4 + .global wDev_Disable_Beacon_Tsf + .type wDev_Disable_Beacon_Tsf, @function +wDev_Disable_Beacon_Tsf: + movi a4, 0x3bffffff # 114: 41feff + movi a3, 0x3ff20e00 # 117: 31feff + memw # 11a: c02000 + l32i a2, a3, 0x258 /* [0x3ff21058] */ # 11d: 222396 + and a2, a2, a4 # 120: 402210 + memw # 123: c02000 + s32i a2, a3, 0x258 /* a2 -> [0x3ff21058] */ # 126: 226396 + ret # 129: 0df0 + + .literal_position # 12c: 00000000 + +# Function @ .irom0.text+0x130 + .balign 4 + .global wDev_Set_Beacon_Int + .type wDev_Set_Beacon_Int, @function +wDev_Set_Beacon_Int: + movi a3, .Lrel143 # 130: 31ffff + s32i a2, a3, 4 /* arg0 -> [.Ldata001] */ # 133: 2913 + ret /* arg0 */ # 135: 0df0 + + .literal_position # 138: 00000000 + # 13c: 000ef23f + # 140: 00000000 + +# Function @ .irom0.text+0x144 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global wDev_Reset_TBTT + .type wDev_Reset_TBTT, @function +wDev_Reset_TBTT: + addi sp, sp, -16 /* (local0) */ # 144: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 147: 0901 + call0 wDev_Disable_Beacon_Tsf # 149: 050000 + call0 PPWdtReset # 14c: 01fdffc0 + # 150: 0000 + movi a3, wDevCtrl # 152: 31f9ff + movi a0, 0 /* 0x00000000 */ # 155: 0c00 + s32i a0, a3, 0x1a0 /* 0x00000000 -> [.Ldata020] */ # 157: 026368 + movi a2, 0x3ff20e00 # 15a: 21f8ff + memw # 15d: c02000 + s32i a0, a2, 0x25c /* 0x00000000 -> [0x3ff2105c] */ # 160: 026297 + memw # 163: c02000 + s32i a0, a2, 0x260 /* 0x00000000 -> [0x3ff21060] */ # 166: 026298 + call0 wDev_Enable_Beacon_Tsf # 169: 050000 + l32i a0, sp, 0 /* [(local0)] */ # 16c: 0801 + addi sp, sp, 16 /* (top of frame) */ # 16e: 12c110 + ret # 171: 0df0 + + .literal_position # 174: 000ef23f + # 178: 00000000 + # 17c: 00000000 + # 180: 00000000 + +# Function @ .irom0.text+0x184 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global wDev_Get_Next_TBTT + .type wDev_Get_Next_TBTT, @function +wDev_Get_Next_TBTT: + movi a5, 0x3ff20e00 # 184: 51fcff + movi a7, wDevCtrl # 187: 71fdff + movi a6, .Lrel143 # 18a: 61fbff + addi sp, sp, -16 /* (local0) */ # 18d: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 190: 0901 + l32i a6, a6, 4 /* [.Ldata001] */ # 192: 6816 + l32i a0, a7, 0x1a0 /* [.Ldata020] */ # 194: 022768 +.Lbr167: add a0, a0, a6 # 197: 6a00 + memw # 199: c02000 + l32i a2, a5, 0x248 /* [0x3ff21048] */ # 19c: 222592 + sub a2, a0, a2 # 19f: 2020c0 + bltu a6, a2, .Lbr167 # 1a2: 2736f1 + movi a3, 1000 /* 0x000003e8 */ # 1a5: 32a3e8 + s32i a0, a7, 0x1a0 /* a0 -> [.Ldata020] */ # 1a8: 026768 + call0 __udivsi3 # 1ab: 01f5ffc0 + # 1af: 0000 + l32i a0, sp, 0 /* [(local0)] */ # 1b1: 0801 + addi sp, sp, 16 /* (top of frame) */ # 1b3: 12c110 + ret # 1b6: 0df0 + + .literal_position # 1b8: 541f0000 + # 1bc: b0010000 + # 1c0: 00000000 + # 1c4: 00f00000 + # 1c8: ff0f00ff + # 1cc: 50210000 + # 1d0: 401f0000 + # 1d4: d0400000 + # 1d8: 00fef13f + # 1dc: b0010000 + # 1e0: 44210000 + # 1e4: 20470000 + # 1e8: ffffffdf + # 1ec: 00000000 + # 1f0: cc0f0000 + # 1f4: 00000000 + # 1f8: 00000000 + +# Function @ .irom0.text+0x1fc +# Local variables/stack: +# (local0): word @ -0x30 +# (local1): word[3] @ -0x2c +# (local2): word @ -0x20 +# (local3): word @ -0x1c +# (local4): word @ -0x18 +# (local5): word @ -0x14 +# (local6): word[4] @ -0x10 + .balign 4 +.Lfunc011: movi a3, 60 /* 0x0000003c */ # 1fc: 3cc3 + movi a5, 0x00001f54 # 1fe: 51eeff + movi a6, 1604 /* 0x00000644 */ # 201: 62a644 + movi a7, 1 /* 0x00000001 */ # 204: 0c17 + movi a4, .Ldata021 # 206: 41edff + addi sp, sp, -48 /* (local0) */ # 209: 12c1d0 + s32i a12, sp, 20 /* a12 -> [(local3)] */ # 20c: c951 + s32i a13, sp, 24 /* a13 -> [(local4)] */ # 20e: d961 + s32i a14, sp, 28 /* a14 -> [(local5)] */ # 210: e971 + s32i a15, sp, 32 /* a15 -> [(local6)] */ # 212: f981 + s32i a0, sp, 16 /* a0 -> [(local2)] */ # 214: 0941 + movi a15, .Lrel143 # 216: f1eaff + mov a2, a4 /* .Ldata021 */ # 219: 2d04 + l32i a8, a15, 0 /* [.Lrel143] */ # 21b: 880f + addi a4, a4, 64 /* .bss+0x1f0 */ # 21d: 42c440 + addi a0, a8, 12 /* [.Lrel143]+0xc */ # 220: cb08 + s32i a0, sp, 4 /* [.Lrel143]+0xc -> [(local1)] */ # 222: 0911 + addi a8, a8, 8 /* [.Lrel143]+0x8 */ # 224: 8b88 + s32i a8, sp, 0 /* [.Lrel143]+0x8 -> [(local0)] */ # 226: 8901 + call0 lldesc_build_chain # 228: 01f1ffc0 + # 22c: 0000 + movi a12, 0x0000f000 # 22e: c1e5ff + l32i a0, a15, 0 /* [.Lrel143] */ # 231: 080f + movi a5, 5 /* 0x00000005 */ # 233: 0c55 + l32i a13, a0, 8 /* [[.Lrel143]+0x8] */ # 235: d820 + s16i a5, a0, 0 /* 0x0005 -> [[.Lrel143]] */ # 237: 525000 + beqz a13, .Lbr169 # 23a: 165d06 + movi a14, 0xff000fff # 23d: e1e2ff +.Lbr168: memw # 240: c02000 + l16ui a9, a13, 0 # 243: 921d00 + extui a9, a9, 0, 12 # 246: 9090b4 + addi a9, a9, -4 # 249: 92c9fc + extui a9, a9, 0, 12 # 24c: 9090b4 + memw # 24f: c02000 + l16ui a8, a13, 0 # 252: 821d00 + and a8, a8, a12 # 255: c08810 + or a8, a8, a9 # 258: 908820 + memw # 25b: c02000 + s16i a8, a13, 0 # 25e: 825d00 + memw # 261: c02000 + l16ui a7, a13, 0 # 264: 721d00 + extui a7, a7, 0, 12 # 267: 7070b4 + slli a7, a7, 12 # 26a: 407711 + memw # 26d: c02000 + l16ui a6, a13, 2 # 270: 621d01 + slli a6, a6, 16 # 273: 006611 + memw # 276: c02000 + l16ui a8, a13, 0 # 279: 821d00 + or a6, a6, a8 # 27c: 806620 + and a6, a6, a14 # 27f: e06610 + or a6, a6, a7 # 282: 706620 + memw # 285: c02000 + s16i a6, a13, 0 # 288: 625d00 + extui a6, a6, 16, 16 # 28b: 6060f5 + memw # 28e: c02000 + s16i a6, a13, 2 # 291: 625d01 + mov a2, a13 # 294: 2d0d + call0 .Lfunc007 # 296: 01d6ffc0 + # 29a: 0000 + l32i a13, a13, 8 # 29c: d82d + bnez a13, .Lbr168 # 29e: 56edf9 + l32i a0, a15, 0 /* [.Lrel143] */ # 2a1: 080f +.Lbr169: movi a3, 60 /* 0x0000003c */ # 2a3: 3cc3 + movi a5, 0x00001f40 # 2a5: 51caff + movi a6, 1600 /* 0x00000640 */ # 2a8: 62a640 + movi a7, 0 /* 0x00000000 */ # 2ab: 0c07 + movi a2, .Ldata023 # 2ad: 21c7ff + addi a10, a0, 44 /* [.Lrel143]+0x2c */ # 2b0: a2c02c + addi a11, a0, 40 /* [.Lrel143]+0x28 */ # 2b3: b2c028 + s32i a11, sp, 0 /* [.Lrel143]+0x28 -> [(local0)] */ # 2b6: b901 + s32i a10, sp, 4 /* [.Lrel143]+0x2c -> [(local1)] */ # 2b8: a911 + addi a4, a2, 64 /* .bss+0x2190 */ # 2ba: 42c240 + call0 lldesc_build_chain # 2bd: 01cdffc0 + # 2c1: 0000 + l32i a0, a15, 0 /* [.Lrel143] */ # 2c3: 080f + movi a14, 0 /* 0x00000000 */ # 2c5: 0c0e + s32i a14, a0, 32 /* 0x00000000 -> [[.Lrel143]+0x20] */ # 2c7: e980 + addi a9, a0, 36 /* [.Lrel143]+0x24 */ # 2c9: 92c024 + s16i a14, a0, 2 /* 0x0000 -> [[.Lrel143]+0x2] */ # 2cc: e25001 + s32i a9, a0, 28 /* [.Lrel143]+0x24 -> [[.Lrel143]+0x1c] */ # 2cf: 9970 + movi a13, .Ldata024 # 2d1: d1c0ff + movi a9, 4 /* 0x00000004 */ # 2d4: 0c49 + memw # 2d6: c02000 + l16ui a8, a0, 24 /* [[.Lrel143]+0x18] */ # 2d9: 82100c + and a8, a8, a12 # 2dc: c08810 + or a8, a8, a9 # 2df: 908820 + memw # 2e2: c02000 + s16i a8, a0, 24 /* a8 -> [[.Lrel143]+0x18] */ # 2e5: 82500c + movi a8, 128 /* 0x00000080 */ # 2e8: 82a080 + memw # 2eb: c02000 + l8ui a7, a0, 27 /* [[.Lrel143]+0x1b] */ # 2ee: 72001b + extui a7, a7, 0, 7 # 2f1: 707064 + or a7, a7, a8 # 2f4: 807720 + memw # 2f7: c02000 + s8i a7, a0, 27 /* a7 -> [[.Lrel143]+0x1b] */ # 2fa: 72401b + movi a6, 191 /* 0x000000bf */ # 2fd: 62a0bf + memw # 300: c02000 + l8ui a5, a0, 27 /* [[.Lrel143]+0x1b] */ # 303: 52001b + and a5, a5, a6 # 306: 605510 + memw # 309: c02000 + s8i a5, a0, 27 /* a5 -> [[.Lrel143]+0x1b] */ # 30c: 52401b + movi a4, 223 /* 0x000000df */ # 30f: 42a0df + memw # 312: c02000 + l8ui a3, a0, 27 /* [[.Lrel143]+0x1b] */ # 315: 32001b + and a3, a3, a4 # 318: 403310 + memw # 31b: c02000 + addi a4, a13, 80 /* .bss+0x4120 */ # 31e: 42cd50 + movi a5, 1536 /* 0x00000600 */ # 321: 52a600 + movi a6, 256 /* 0x00000100 */ # 324: 62a100 + movi a7, 1 /* 0x00000001 */ # 327: 0c17 + s8i a3, a0, 27 /* a3 -> [[.Lrel143]+0x1b] */ # 329: 32401b + addi a2, a0, 48 /* [.Lrel143]+0x30 */ # 32c: 22c030 + movi a3, 72 /* 0x00000048 */ # 32f: 4c83 + s32i a2, sp, 0 /* [.Lrel143]+0x30 -> [(local0)] */ # 331: 2901 + addi a0, a0, 52 /* [.Lrel143]+0x34 */ # 333: 02c034 + mov a2, a13 /* .Ldata024 */ # 336: 2d0d + s32i a0, sp, 4 /* [.Lrel143]+0x34 -> [(local1)] */ # 338: 0911 + call0 lldesc_build_chain # 33a: 01afffc0 + # 33e: 0000 + l32i a15, a15, 0 /* [.Lrel143] */ # 340: f80f + movi a8, 6 /* 0x00000006 */ # 342: 0c68 + s8i a8, a15, 4 /* 0x06 -> [[.Lrel143]+0x4] */ # 344: 824f04 + movi a11, 0x3ff1fe00 # 347: b1a4ff + memw # 34a: c02000 + movi a7, .Ldata021 # 34d: 71a3ff + s32i a7, a11, 0x280 /* .Ldata021 -> [0x3ff20080] */ # 350: 726ba0 + movi a6, .Ldata022 # 353: 61a3ff + memw # 356: c02000 + s32i a6, a11, 0x27c /* .Ldata022 -> [0x3ff2007c] */ # 359: 626b9f + memw # 35c: c02000 + s32i a13, a11, 0x288 /* .Ldata024 -> [0x3ff20088] */ # 35f: d26ba2 + movi a5, .Ldata025 # 362: 51a0ff + memw # 365: c02000 + s32i a5, a11, 0x284 /* .Ldata025 -> [0x3ff20084] */ # 368: 526ba1 + movi a4, -256 /* 0xffffff00 */ # 36b: 42af00 + memw # 36e: c02000 + l32i a3, a11, 0x200 /* [0x3ff20000] */ # 371: 322b80 + and a3, a3, a4 # 374: 403310 + memw # 377: c02000 + s32i a3, a11, 0x200 /* a3 -> [0x3ff20000] */ # 37a: 326b80 + l32i a2, a15, 8 /* [[.Lrel143]+0x8] */ # 37d: 282f + memw # 37f: c02000 + s32i a2, a11, 0x208 /* [[.Lrel143]+0x8] -> [0x3ff20008] */ # 382: 226b82 + l32i a0, a15, 48 /* [[.Lrel143]+0x30] */ # 385: 08cf + memw # 387: c02000 + s32i a0, a11, 0x20c /* [[.Lrel143]+0x30] -> [0x3ff2000c] */ # 38a: 026b83 + s8i a14, a15, 5 /* 0x00 -> [[.Lrel143]+0x5] */ # 38d: e24f05 + memw # 390: c02000 + s32i a14, a11, 0x210 /* 0x00000000 -> [0x3ff20010] */ # 393: e26b84 + movi a12, 0xdfffffff # 396: c194ff + memw # 399: c02000 + l32i a10, a11, 0x200 /* [0x3ff20000] */ # 39c: a22b80 + and a10, a10, a12 # 39f: c0aa10 + memw # 3a2: c02000 + s32i a10, a11, 0x200 /* a10 -> [0x3ff20000] */ # 3a5: a26b80 + l32i a12, sp, 20 /* [(local3)] */ # 3a8: c851 + l32i a13, sp, 24 /* [(local4)] */ # 3aa: d861 + l32i a14, sp, 28 /* [(local5)] */ # 3ac: e871 + l32i a15, sp, 32 /* [(local6)] */ # 3ae: f881 + l32i a0, sp, 16 /* [(local2)] */ # 3b0: 0841 + addi sp, sp, 48 /* (top of frame) */ # 3b2: 12c130 + ret /* [[.Lrel143]+0x8] */ # 3b5: 0df0 + + .literal_position # 3b8: 10325076 + # 3bc: bbbbbbbb + # 3c0: 0002f23f + +# Function @ .irom0.text+0x3c4 + .balign 4 +.Lfunc012: movi a4, 0x76503210 # 3c4: 41fdff + movi a2, 0xbbbbbbbb # 3c7: 21fdff + movi a3, 0x3ff20200 # 3ca: 31fdff + memw # 3cd: c02000 + s32i a4, a3, 0x200 /* 0x76503210 -> [0x3ff20400] */ # 3d0: 426380 + memw # 3d3: c02000 + s32i a2, a3, 0x204 /* 0xbbbbbbbb -> [0x3ff20404] */ # 3d6: 226381 + memw # 3d9: c02000 + s32i a2, a3, 0x208 /* 0xbbbbbbbb -> [0x3ff20408] */ # 3dc: 226382 + ret /* 0xbbbbbbbb */ # 3df: 0df0 + + .literal_position # 3e4: 00fef13f + # 3e8: ffefffff + +# Function @ .irom0.text+0x3ec +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 +.Lfunc013: addi sp, sp, -16 /* (local0) */ # 3ec: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 3ef: 0901 + movi a7, 1799 /* 0x00000707 */ # 3f1: 72a707 + movi a2, 0x3ff1fe00 # 3f4: 21fcff + memw # 3f7: c02000 + l32i a6, a2, 0x26c /* [0x3ff2006c] */ # 3fa: 62229b + or a6, a6, a7 # 3fd: 706620 + memw # 400: c02000 + s32i a6, a2, 0x26c /* a6 -> [0x3ff2006c] */ # 403: 62629b + movi a5, -17 /* 0xffffffef */ # 406: 6cf5 + memw # 408: c02000 + l32i a4, a2, 0x26c /* [0x3ff2006c] */ # 40b: 42229b + and a4, a4, a5 # 40e: 504410 + memw # 411: c02000 + s32i a4, a2, 0x26c /* a4 -> [0x3ff2006c] */ # 414: 42629b + movi a3, 0xffffefff # 417: 31f4ff + memw # 41a: c02000 + l32i a0, a2, 0x26c /* [0x3ff2006c] */ # 41d: 02229b + and a0, a0, a3 # 420: 300010 + memw # 423: c02000 + movi a3, 0 /* 0x00000000 */ # 426: 0c03 + s32i a0, a2, 0x26c /* a0 -> [0x3ff2006c] */ # 428: 02629b + movi a4, 0 /* 0x00000000 */ # 42b: 0c04 + movi a2, 0 /* 0x00000000 */ # 42d: 0c02 + call0 wDev_SetRxPolicy # 42f: 050000 + movi a2, 0 /* 0x00000000 */ # 432: 0c02 + movi a3, 1 /* 0x00000001 */ # 434: 0c13 + movi a4, 0 /* 0x00000000 */ # 436: 0c04 + call0 wDev_SetRxPolicy # 438: 050000 + l32i a0, sp, 0 /* [(local0)] */ # 43b: 0801 + addi sp, sp, 16 /* (top of frame) */ # 43d: 12c110 + ret # 440: 0df0 + + .literal_position # 444: 00000080 + # 448: 000ef23f + # 44c: 00000000 + +# Function @ .irom0.text+0x450 + .balign 4 + .global wDev_MacTim1SetFunc + .type wDev_MacTim1SetFunc, @function +wDev_MacTim1SetFunc: + movi a6, 0x80000000 # 450: 61fdff + movi a5, 0x3ff20e00 # 453: 51fdff + memw # 456: c02000 + l32i a4, a5, 0x258 /* [0x3ff21058] */ # 459: 422596 + or a4, a4, a6 # 45c: 604420 + memw # 45f: c02000 + movi a3, .Lrel143 # 462: 31faff + s32i a4, a5, 0x258 /* a4 -> [0x3ff21058] */ # 465: 426596 + s32i a2, a3, 12 /* arg0 -> [.Ldata003] */ # 468: 2933 + ret /* arg0 */ # 46a: 0df0 + + .literal_position # 46c: 000af23f + # 470: 00039f0c + # 474: 00fef13f + # 478: 000af23f + # 47c: ffffff7f + +# Function @ .irom0.text+0x480 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global wDev_Initialize + .type wDev_Initialize, @function +wDev_Initialize: + addi sp, sp, -16 /* (local0) */ # 480: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 483: 0901 + movi a3, 0 /* 0x00000000 */ # 485: 0c03 + movi a2, 0x3ff20a00 # 487: 21f9ff + memw # 48a: c02000 + s32i a3, a2, 0x218 /* 0x00000000 -> [0x3ff20c18] */ # 48d: 326286 + movi a0, -1 /* 0xffffffff */ # 490: 7cf0 + memw # 492: c02000 + s32i a0, a2, 0x224 /* 0xffffffff -> [0x3ff20c24] */ # 495: 026289 + call0 wDev_Option_Init # 498: 050000 + call0 .Lfunc014 # 49b: 054200 + call0 .Lfunc011 # 49e: c5d5ff + call0 .Lfunc012 # 4a1: 05f2ff + call0 .Lfunc013 # 4a4: 45f4ff + movi a9, 0x0c9f0300 # 4a7: 91f2ff + movi a5, 0x3ff1fe00 # 4aa: 51f2ff + memw # 4ad: c02000 + movi a10, 0x3ff20a00 # 4b0: a1f2ff + s32i a9, a10, 0x218 /* 0x0c9f0300 -> [0x3ff20c18] */ # 4b3: 926a86 + movi a8, 2 /* 0x00000002 */ # 4b6: 0c28 + memw # 4b8: c02000 + l32i a7, a5, 0x378 /* [0x3ff20178] */ # 4bb: 7225de + or a7, a7, a8 # 4be: 807720 + memw # 4c1: c02000 + s32i a7, a5, 0x378 /* a7 -> [0x3ff20178] */ # 4c4: 7265de + movi a6, 0x7fffffff # 4c7: 61edff + memw # 4ca: c02000 + l32i a4, a5, 0x204 /* [0x3ff20004] */ # 4cd: 422581 + and a4, a4, a6 # 4d0: 604410 + memw # 4d3: c02000 + s32i a4, a5, 0x204 /* a4 -> [0x3ff20004] */ # 4d6: 426581 + l32i a0, sp, 0 /* [(local0)] */ # 4d9: 0801 + addi sp, sp, 16 /* (top of frame) */ # 4db: 12c110 + ret # 4de: 0df0 + + .literal_position # 4e0: 0002f23f + # 4e4: 000b0700 + # 4e8: 070c0700 + +# Function @ .irom0.text+0x4ec + .balign 4 + .global wDevForceAck6M + .type wDevForceAck6M, @function +wDevForceAck6M: + movi a4, 0x3ff20200 # 4ec: 41fdff + beqz a2, .Lbr170 # 4ef: 8c92 + movi a3, 0x00070b00 # 4f1: 31fcff + memw # 4f4: c02000 + s32i a3, a4, 0x20c /* 0x00070b00 -> [0x3ff2040c] */ # 4f7: 326483 + ret /* arg0 */ # 4fa: 0df0 +.Lbr170: movi a2, 0x00070c07 # 4fc: 21fbff + memw # 4ff: c02000 + s32i a2, a4, 0x20c /* 0x00070c07 -> [0x3ff2040c] */ # 502: 226483 + ret /* 0x00070c07 */ # 505: 0df0 + + .literal_position # 508: 00000100 + # 50c: ffff0000 + # 510: 000af23f + +# Function @ .irom0.text+0x514 + .balign 4 + .global wDev_SetMacAddress + .type wDev_SetMacAddress, @function +wDev_SetMacAddress: + movi a9, -1 /* 0xffffffff */ # 514: 7cf9 + movi a8, 0x00010000 # 516: 81fcff + l8ui a7, a3, 3 /* [arg1+0x3] */ # 519: 720303 + l8ui a5, a3, 1 /* [arg1+0x1] */ # 51c: 520301 + l8ui a6, a3, 0 /* [arg1] */ # 51f: 620300 + slli a5, a5, 8 # 522: 805511 + or a5, a5, a6 # 525: 605520 + l8ui a6, a3, 2 /* [arg1+0x2] */ # 528: 620302 + slli a7, a7, 24 # 52b: 807701 + slli a6, a6, 16 # 52e: 006611 + or a6, a6, a7 # 531: 706620 + movi a7, 0x0000ffff # 534: 71f6ff + or a5, a5, a6 # 537: 605520 + movi a6, 0x3ff20a00 # 53a: 61f5ff + beqz a2, .Lbr171 # 53d: bc32 + memw # 53f: c02000 + s32i a5, a6, 0x250 /* a5 -> [0x3ff20c50] */ # 542: 526694 + l8ui a11, a3, 5 /* [arg1+0x5] */ # 545: b20305 + l8ui a10, a3, 4 /* [arg1+0x4] */ # 548: a20304 + slli a11, a11, 8 # 54b: 80bb11 + or a10, a10, a11 # 54e: b0aa20 + memw # 551: c02000 + s32i a10, a6, 0x254 /* a10 -> [0x3ff20c54] */ # 554: a26695 + memw # 557: c02000 + s32i a9, a6, 0x260 /* 0xffffffff -> [0x3ff20c60] */ # 55a: 926698 + memw # 55d: c02000 + s32i a7, a6, 0x264 /* 0x0000ffff -> [0x3ff20c64] */ # 560: 726699 + memw # 563: c02000 + l32i a4, a6, 0x264 /* [0x3ff20c64] */ # 566: 422699 + or a4, a4, a8 # 569: 804420 + memw # 56c: c02000 + s32i a4, a6, 0x264 /* a4 -> [0x3ff20c64] */ # 56f: 426699 + ret /* arg0 */ # 572: 0df0 +.Lbr171: memw # 574: c02000 + s32i a5, a6, 0x248 /* a5 -> [0x3ff20c48] */ # 577: 526692 + l8ui a2, a3, 5 /* [arg1+0x5] */ # 57a: 220305 + l8ui a11, a3, 4 /* [arg1+0x4] */ # 57d: b20304 + slli a2, a2, 8 # 580: 802211 + or a11, a11, a2 # 583: 20bb20 + memw # 586: c02000 + s32i a11, a6, 0x24c /* a11 -> [0x3ff20c4c] */ # 589: b26693 + memw # 58c: c02000 + s32i a9, a6, 0x258 /* 0xffffffff -> [0x3ff20c58] */ # 58f: 926696 + memw # 592: c02000 + s32i a7, a6, 0x25c /* 0x0000ffff -> [0x3ff20c5c] */ # 595: 726697 + memw # 598: c02000 + l32i a10, a6, 0x25c /* [0x3ff20c5c] */ # 59b: a22697 + or a10, a10, a8 # 59e: 80aa20 + memw # 5a1: c02000 + s32i a10, a6, 0x25c /* a10 -> [0x3ff20c5c] */ # 5a4: a26697 + ret # 5a7: 0df0 + + .literal_position # 5ac: 000af23f + # 5b0: fffffeff + # 5b4: 00000000 + +# Function @ .irom0.text+0x5b8 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global wDev_SetRxPolicy + .type wDev_SetRxPolicy, @function +wDev_SetRxPolicy: + addi sp, sp, -16 /* (local0) */ # 5b8: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 5bb: 0901 + bnez a2, .Lbr172 # 5bd: dc82 + movi a0, 0xfffeffff # 5bf: 01fcff + movi a2, 0x3ff20a00 # 5c2: 21faff + bnez a3, .Lbr175 # 5c5: fc13 + memw # 5c7: c02000 + l32i a3, a2, 0x23c /* [0x3ff20c3c] */ # 5ca: 32228f + and a3, a3, a0 # 5cd: 003310 + memw # 5d0: c02000 + s32i a3, a2, 0x23c /* a3 -> [0x3ff20c3c] */ # 5d3: 32628f + j .Lbr174 # 5d6: 460600 +.Lbr172: bnei a2, 1, .Lbr173 # 5d9: 66120a + mov a2, a3 /* arg1 */ # 5dc: 2d03 + movi a3, ieee80211_addr_bcast # 5de: 31f5ff + call0 wDev_SetBssid # 5e1: 050000 + j .Lbr174 # 5e4: c60200 +.Lbr173: bnei a2, 2, .Lbr174 # 5e7: 662208 + beqz a4, .Lbr174 # 5ea: 8c54 + mov a2, a3 /* arg1 */ # 5ec: 2d03 + mov a3, a4 /* arg2 */ # 5ee: 3d04 + call0 wDev_SetBssid # 5f0: 050000 +.Lbr174: l32i a0, sp, 0 /* [(local0)] */ # 5f3: 0801 + addi sp, sp, 16 /* (top of frame) */ # 5f5: 12c110 + ret # 5f8: 0df0 +.Lbr175: memw # 5fa: c02000 + l32i a4, a2, 0x244 /* [0x3ff20c44] */ # 5fd: 422291 + and a4, a4, a0 # 600: 004410 + memw # 603: c02000 + s32i a4, a2, 0x244 /* a4 -> [0x3ff20c44] */ # 606: 426291 + j .Lbr174 # 609: 86f9ff + + .literal_position # 60c: 00000100 + # 610: ffff0000 + # 614: 000af23f + # 618: fffffeff + +# Function @ .irom0.text+0x61c + .balign 4 + .global wDev_SetBssid + .type wDev_SetBssid, @function +wDev_SetBssid: + movi a10, -1 /* 0xffffffff */ # 61c: 7cfa + movi a8, 0x00010000 # 61e: 81fbff + movi a7, 0x0000ffff # 621: 71fbff + movi a5, 0xfffeffff # 624: 51fdff + movi a6, 0x3ff20a00 # 627: 61fbff + beqz a2, .Lbr176 # 62a: 161206 + memw # 62d: c02000 + l32i a11, a6, 0x244 /* [0x3ff20c44] */ # 630: b22691 + and a11, a11, a5 # 633: 50bb10 + memw # 636: c02000 + s32i a11, a6, 0x244 /* a11 -> [0x3ff20c44] */ # 639: b26691 + l8ui a11, a3, 3 /* [arg1+0x3] */ # 63c: b20303 + l8ui a9, a3, 1 /* [arg1+0x1] */ # 63f: 920301 + l8ui a4, a3, 0 /* [arg1] */ # 642: 420300 + slli a9, a9, 8 # 645: 809911 + or a4, a4, a9 # 648: 904420 + l8ui a9, a3, 2 /* [arg1+0x2] */ # 64b: 920302 + slli a11, a11, 24 # 64e: 80bb01 + slli a9, a9, 16 # 651: 009911 + or a9, a9, a11 # 654: b09920 + or a4, a4, a9 # 657: 904420 + memw # 65a: c02000 + s32i a4, a6, 0x230 /* a4 -> [0x3ff20c30] */ # 65d: 42668c + l8ui a2, a3, 5 /* [arg1+0x5] */ # 660: 220305 + l8ui a11, a3, 4 /* [arg1+0x4] */ # 663: b20304 + slli a2, a2, 8 # 666: 802211 + or a11, a11, a2 # 669: 20bb20 + memw # 66c: c02000 + s32i a11, a6, 0x234 /* a11 -> [0x3ff20c34] */ # 66f: b2668d + memw # 672: c02000 + s32i a10, a6, 0x240 /* 0xffffffff -> [0x3ff20c40] */ # 675: a26690 + memw # 678: c02000 + s32i a7, a6, 0x244 /* 0x0000ffff -> [0x3ff20c44] */ # 67b: 726691 + memw # 67e: c02000 + l32i a9, a6, 0x244 /* [0x3ff20c44] */ # 681: 922691 + or a9, a9, a8 # 684: 809920 + memw # 687: c02000 + s32i a9, a6, 0x244 /* a9 -> [0x3ff20c44] */ # 68a: 926691 + ret # 68d: 0df0 +.Lbr176: memw # 68f: c02000 + l32i a4, a6, 0x23c /* [0x3ff20c3c] */ # 692: 42268f + and a4, a4, a5 # 695: 504410 + memw # 698: c02000 + s32i a4, a6, 0x23c /* a4 -> [0x3ff20c3c] */ # 69b: 42668f + l8ui a4, a3, 3 /* [arg1+0x3] */ # 69e: 420303 + l8ui a2, a3, 1 /* [arg1+0x1] */ # 6a1: 220301 + l8ui a11, a3, 0 /* [arg1] */ # 6a4: b20300 + slli a2, a2, 8 # 6a7: 802211 + or a11, a11, a2 # 6aa: 20bb20 + l8ui a2, a3, 2 /* [arg1+0x2] */ # 6ad: 220302 + slli a4, a4, 24 # 6b0: 804401 + slli a2, a2, 16 # 6b3: 002211 + or a2, a2, a4 # 6b6: 402220 + or a11, a11, a2 # 6b9: 20bb20 + memw # 6bc: c02000 + s32i a11, a6, 0x228 /* a11 -> [0x3ff20c28] */ # 6bf: b2668a + l8ui a9, a3, 5 /* [arg1+0x5] */ # 6c2: 920305 + l8ui a4, a3, 4 /* [arg1+0x4] */ # 6c5: 420304 + slli a9, a9, 8 # 6c8: 809911 + or a4, a4, a9 # 6cb: 904420 + memw # 6ce: c02000 + s32i a4, a6, 0x22c /* a4 -> [0x3ff20c2c] */ # 6d1: 42668b + memw # 6d4: c02000 + s32i a10, a6, 0x238 /* 0xffffffff -> [0x3ff20c38] */ # 6d7: a2668e + memw # 6da: c02000 + s32i a7, a6, 0x23c /* 0x0000ffff -> [0x3ff20c3c] */ # 6dd: 72668f + memw # 6e0: c02000 + l32i a2, a6, 0x23c /* [0x3ff20c3c] */ # 6e3: 22268f + or a2, a2, a8 # 6e6: 802220 + memw # 6e9: c02000 + s32i a2, a6, 0x23c /* a2 -> [0x3ff20c3c] */ # 6ec: 22668f + ret # 6ef: 0df0 + + .literal_position # 6f4: 000af23f + # 6f8: fffffeff + +# Function @ .irom0.text+0x6fc + .balign 4 + .global wDev_ClearBssid + .type wDev_ClearBssid, @function +wDev_ClearBssid: + movi a4, 0xfffeffff # 6fc: 41ffff + movi a5, 0x3ff20a00 # 6ff: 51fdff + beqz a2, .Lbr177 # 702: 8cf2 + memw # 704: c02000 + l32i a3, a5, 0x244 /* [0x3ff20c44] */ # 707: 322591 + and a3, a3, a4 # 70a: 403310 + memw # 70d: c02000 + s32i a3, a5, 0x244 /* a3 -> [0x3ff20c44] */ # 710: 326591 + ret /* arg0 */ # 713: 0df0 +.Lbr177: memw # 715: c02000 + l32i a2, a5, 0x23c /* [0x3ff20c3c] */ # 718: 22258f + and a2, a2, a4 # 71b: 402210 + memw # 71e: c02000 + s32i a2, a5, 0x23c /* a2 -> [0x3ff20c3c] */ # 721: 22658f + ret # 724: 0df0 + + .literal_position # 728: 0012f23f + # 72c: 0006f23f + # 730: 00000000 + # 734: 0814f23f + # 738: 00000000 + +# Function @ .irom0.text+0x73c +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 + .global wDev_Insert_KeyEntry + .type wDev_Insert_KeyEntry, @function +wDev_Insert_KeyEntry: + addi sp, sp, -16 /* (local0) */ # 73c: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 73f: 0901 + l8ui a11, a5, 5 /* [arg3+0x5] */ # 741: b20505 + l8ui a10, a5, 4 /* [arg3+0x4] */ # 744: a20504 + slli a11, a11, 8 # 747: 80bb11 + add a10, a10, a11 # 74a: baaa + bnei a2, 5, .Lbr178 # 74c: 665206 + movi a9, 1 /* 0x00000001 */ # 74f: 0c19 + movi a2, 1 /* 0x00000001 */ # 751: 0c12 + j .Lbr179 # 753: 460000 +.Lbr178: movi a9, 0 /* 0x00000000 */ # 756: 0c09 +.Lbr179: s32i a7, sp, 8 /* arg5 -> [(local2)] */ # 758: 7921 + movi a8, 0x3ff21200 # 75a: 81f3ff + l8ui a7, a5, 1 /* [arg3+0x1] */ # 75d: 720501 + l8ui a11, a5, 0 /* [arg3] */ # 760: b20500 + slli a7, a7, 8 # 763: 807711 + add a11, a11, a7 # 766: 7abb + l8ui a7, a5, 3 /* [arg3+0x3] */ # 768: 720503 + l8ui a5, a5, 2 /* [arg3+0x2] */ # 76b: 520502 + slli a7, a7, 24 # 76e: 807701 + slli a5, a5, 16 # 771: 005511 + add a5, a5, a7 # 774: 7a55 + add a11, a11, a5 # 776: 5abb + addx4 a5, a6, a6 # 778: 6056a0 + slli a5, a5, 3 # 77b: d05511 + add a8, a5, a8 # 77e: 8a85 + beqi a2, 1, .Lbr180 # 780: 261209 + movi a0, 6 /* 0x00000006 */ # 783: 0c60 + blti a6, 6, .Lbr181 # 785: a66606 + movi a0, 2 /* 0x00000002 */ # 788: 0c20 + j .Lbr181 # 78a: 460000 +.Lbr180: movi a0, 7 /* 0x00000007 */ # 78d: 0c70 +.Lbr181: memw # 78f: c02000 + slli a7, a4, 30 # 792: 207401 + extui a0, a0, 0, 3 # 795: 000024 + s32i a11, a8, 0x200 # 798: b26880 + extui a9, a9, 0, 2 # 79b: 909014 + extui a11, a10, 0, 16 # 79e: a0b0f4 + slli a9, a9, 16 # 7a1: 009911 + add a9, a9, a11 # 7a4: ba99 + slli a0, a0, 21 # 7a6: b00001 + extui a11, a2, 0, 3 # 7a9: 20b024 + slli a11, a11, 18 # 7ac: e0bb01 + add a11, a11, a0 # 7af: 0abb + add a9, a9, a11 # 7b1: ba99 + extui a11, a3, 0, 1 # 7b3: 30b004 + slli a11, a11, 24 # 7b6: 80bb01 + add a7, a7, a11 # 7b9: ba77 + add a7, a7, a9 # 7bb: 9a77 + memw # 7bd: c02000 + s32i a7, a8, 0x204 # 7c0: 726881 + ssl a6 # 7c3: 001640 + movi a0, 1 /* 0x00000001 */ # 7c6: 0c10 + sll a0, a0 # 7c8: 0000a1 + memw # 7cb: c02000 + movi a8, 0x3ff20600 # 7ce: 81d7ff + l32i a7, a8, 0x20c /* [0x3ff2080c] */ # 7d1: 722883 + or a7, a7, a0 # 7d4: 007720 + memw # 7d7: c02000 + s32i a7, a8, 0x20c /* a7 -> [0x3ff2080c] */ # 7da: 726883 + l32i a9, sp, 4 /* [(local1)] */ # 7dd: 9811 + l32i a7, sp, 8 /* [(local2)] */ # 7df: 7821 + bgeui a3, 2, .Lbr182 # 7e1: f62311 + blti a6, 2, .Lbr182 # 7e4: a6260e + movi a9, .Lrel143 # 7e7: 91d2ff + l32i a9, a9, 0 /* [.Lrel143] */ # 7ea: 9809 + addx4 a9, a3, a9 # 7ec: 9093a0 + l32i a8, a9, 56 # 7ef: 88e9 + or a8, a0, a8 # 7f1: 808020 + s32i a8, a9, 56 # 7f4: 89e9 +.Lbr182: mov a3, a7 /* [(local2)] */ # 7f6: 3d07 + movi a2, 0x3ff21408 # 7f8: 21cfff + l32i a4, sp, 16 /* [(local3)] */ # 7fb: 4841 + add a2, a5, a2 # 7fd: 2a25 + call0 memcpy # 7ff: 01ceffc0 + # 803: 0000 + l32i a0, sp, 0 /* [(local0)] */ # 805: 0801 + addi sp, sp, 16 /* (local3) */ # 807: 12c110 + ret # 80a: 0df0 + + .literal_position # 80c: 0006f23f + # 810: 0012f23f + # 814: ffff1fff + +# Function @ .irom0.text+0x818 + .balign 4 + .global wDev_remove_KeyEntry + .type wDev_remove_KeyEntry, @function +wDev_remove_KeyEntry: + movi a7, 0x3ff20600 # 818: 71fdff + ssl a2 # 81b: 001240 + movi a8, 1 /* 0x00000001 */ # 81e: 0c18 + movi a9, -1 /* 0xffffffff */ # 820: 7cf9 + sll a8, a8 # 822: 0088a1 + xor a8, a8, a9 # 825: 908830 + memw # 828: c02000 + l32i a6, a7, 0x20c /* [0x3ff2080c] */ # 82b: 622783 + and a6, a6, a8 # 82e: 806610 + memw # 831: c02000 + s32i a6, a7, 0x20c /* a6 -> [0x3ff2080c] */ # 834: 626783 + movi a5, 0x3ff21200 # 837: 51f6ff + addx4 a4, a2, a2 # 83a: 2042a0 + addx8 a4, a4, a5 # 83d: 5044b0 + movi a5, 0xff1fffff # 840: 51f5ff + memw # 843: c02000 + l32i a3, a4, 0x204 # 846: 322481 + and a3, a3, a5 # 849: 503310 + memw # 84c: c02000 + s32i a3, a4, 0x204 # 84f: 326481 + ret # 852: 0df0 + + .literal_position # 854: 03030300 + # 858: 0006f23f + # 85c: 00000010 + +# Function @ .irom0.text+0x860 + .balign 4 + .global wDev_Crypto_Conf + .type wDev_Crypto_Conf, @function +wDev_Crypto_Conf: + movi a6, 0x00030303 # 860: 61fdff + movi a7, 0x10000000 # 863: 71feff + movi a5, 0x3ff20600 # 866: 51fcff + bnez a2, .Lbr184 # 869: dcb2 + memw # 86b: c02000 + s32i a6, a5, 0x200 /* 0x00030303 -> [0x3ff20800] */ # 86e: 626580 + beqi a3, 1, .Lbr183 # 871: 261302 + bnei a3, 5, .Lbr186 # 874: 66532b +.Lbr183: memw # 877: c02000 + l32i a2, a5, 0x200 /* [0x3ff20800] */ # 87a: 222580 + or a2, a2, a7 # 87d: 702220 + memw # 880: c02000 + s32i a2, a5, 0x200 /* a2 -> [0x3ff20800] */ # 883: 226580 + ret # 886: 0df0 +.Lbr184: memw # 888: c02000 + s32i a6, a5, 0x204 /* 0x00030303 -> [0x3ff20804] */ # 88b: 626581 + beqi a3, 1, .Lbr185 # 88e: 261302 + bnei a3, 5, .Lbr186 # 891: 66530e +.Lbr185: memw # 894: c02000 + l32i a3, a5, 0x204 /* [0x3ff20804] */ # 897: 322581 + or a3, a3, a7 # 89a: 703320 + memw # 89d: c02000 + s32i a3, a5, 0x204 /* a3 -> [0x3ff20804] */ # 8a0: 326581 +.Lbr186: ret /* arg0 */ # 8a3: 0df0 + + .literal_position # 8a8: 00000300 + # 8ac: 00000000 + # 8b0: 0006f23f + # 8b4: 00000000 + # 8b8: 0006f23f + +# Function @ .irom0.text+0x8bc +# Local variables/stack: +# (local0): word[4] @ -0x20 +# (local1): word[4] @ -0x10 + .balign 4 +.Lfunc014: addi sp, sp, -32 /* (local0) */ # 8bc: 12c1e0 + s32i a0, sp, 16 /* a0 -> [(local1)] */ # 8bf: 0941 + movi a2, 0x00030000 # 8c1: 21f9ff + movi a7, ieee80211_addr_bcast # 8c4: 71faff + movi a3, 0x3ff20600 # 8c7: 31faff + memw # 8ca: c02000 + s32i a2, a3, 0x200 /* 0x00030000 -> [0x3ff20800] */ # 8cd: 226380 + memw # 8d0: c02000 + movi a4, 0 /* 0x00000000 */ # 8d3: 0c04 + mov a5, a7 /* ieee80211_addr_bcast */ # 8d5: 5d07 + movi a6, 0 /* 0x00000000 */ # 8d7: 0c06 + s32i a2, a3, 0x204 /* 0x00030000 -> [0x3ff20804] */ # 8d9: 226381 + movi a0, 6 /* 0x00000006 */ # 8dc: 0c60 + movi a2, 3 /* 0x00000003 */ # 8de: 0c32 + movi a3, 0 /* 0x00000000 */ # 8e0: 0c03 + s32i a0, sp, 0 /* 0x00000006 -> [(local0)] */ # 8e2: 0901 + call0 wDev_Insert_KeyEntry # 8e4: 050000 + movi a2, 3 /* 0x00000003 */ # 8e7: 0c32 + movi a3, 1 /* 0x00000001 */ # 8e9: 0c13 + movi a6, 1 /* 0x00000001 */ # 8eb: 0c16 + movi a7, ieee80211_addr_bcast # 8ed: 71f1ff + movi a4, 6 /* 0x00000006 */ # 8f0: 0c64 + s32i a4, sp, 0 /* 0x00000006 -> [(local0)] */ # 8f2: 4901 + mov a5, a7 /* ieee80211_addr_bcast */ # 8f4: 5d07 + movi a4, 0 /* 0x00000000 */ # 8f6: 0c04 + call0 wDev_Insert_KeyEntry # 8f8: 050000 + movi a5, 0 /* 0x00000000 */ # 8fb: 0c05 + memw # 8fd: c02000 + movi a6, 0x3ff20600 # 900: 61eeff + l32i a0, sp, 16 /* [(local1)] */ # 903: 0841 + addi sp, sp, 32 /* (top of frame) */ # 905: 12c120 + s32i a5, a6, 0x208 /* 0x00000000 -> [0x3ff20808] */ # 908: 526682 + ret # 90b: 0df0 + + .literal_position # 910: 00000000 + # 914: 0006f23f + # 918: 00000300 + +# Function @ .irom0.text+0x91c + .balign 4 + .global wDev_Crypto_Disable + .type wDev_Crypto_Disable, @function +wDev_Crypto_Disable: + movi a6, .Lrel143 # 91c: 61fdff + movi a4, 0x3ff20600 # 91f: 41fdff + l32i a6, a6, 0 /* [.Lrel143] */ # 922: 6806 + movi a5, 0x00030000 # 924: 51fdff + addx4 a6, a2, a6 # 927: 6062a0 + l32i a6, a6, 56 # 92a: 68e6 + bnez a2, .Lbr187 # 92c: cc72 + memw # 92e: c02000 + s32i a5, a4, 0x200 /* 0x00030000 -> [0x3ff20800] */ # 931: 526480 + j .Lbr188 # 934: 460100 +.Lbr187: memw # 937: c02000 + s32i a5, a4, 0x204 /* 0x00030000 -> [0x3ff20804] */ # 93a: 526481 +.Lbr188: movi a8, -1 /* 0xffffffff */ # 93d: 7cf8 + xor a8, a6, a8 # 93f: 808630 + memw # 942: c02000 + l32i a7, a4, 0x20c /* [0x3ff2080c] */ # 945: 722483 + and a7, a7, a8 # 948: 807710 + memw # 94b: c02000 + s32i a7, a4, 0x20c /* a7 -> [0x3ff2080c] */ # 94e: 726483 + ret /* arg0 */ # 951: 0df0 + + .literal_position # 954: ffffff7f + # 958: 00fef13f + +# Function @ .irom0.text+0x95c + .balign 4 + .global wDevDisableRx + .type wDevDisableRx, @function +wDevDisableRx: + movi a4, 0x7fffffff # 95c: 41feff + movi a3, 0x3ff1fe00 # 95f: 31feff + memw # 962: c02000 + l32i a2, a3, 0x204 /* [0x3ff20004] */ # 965: 222381 + and a2, a2, a4 # 968: 402210 + memw # 96b: c02000 + s32i a2, a3, 0x204 /* a2 -> [0x3ff20004] */ # 96e: 226381 + ret # 971: 0df0 + + .literal_position # 974: 00000080 + # 978: 00fef13f + +# Function @ .irom0.text+0x97c + .balign 4 + .global wDevEnableRx + .type wDevEnableRx, @function +wDevEnableRx: + movi a4, 0x80000000 # 97c: 41feff + movi a3, 0x3ff1fe00 # 97f: 31feff + memw # 982: c02000 + l32i a2, a3, 0x204 /* [0x3ff20004] */ # 985: 222381 + or a2, a2, a4 # 988: 402220 + memw # 98b: c02000 + s32i a2, a3, 0x204 /* a2 -> [0x3ff20004] */ # 98e: 226381 + ret # 991: 0df0 + + .literal_position # 994: 009a0060 + # 998: 00000003 + # 99c: 00000100 + # 9a0: 00000000 + # 9a4: 0006f23f + # 9a8: fffffeff + # 9ac: 00000400 + # 9b0: 000af23f + # 9b4: ffffffdb + # 9b8: 983a0000 + # 9bc: 000af23f + # 9c0: 00000000 + +# Function @ .irom0.text+0x9c4 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global wdev_go_sniffer + .type wdev_go_sniffer, @function +wdev_go_sniffer: + movi a8, 0 /* 0x00000000 */ # 9c4: 0c08 + movi a2, 0x60009a00 # 9c6: 21f3ff + movi a3, 0x03000000 # 9c9: 31f3ff + movi a7, 0x00010000 # 9cc: 71f4ff + movi a10, 0x3ff20600 # 9cf: a1f5ff + movi a4, 1 /* 0x00000001 */ # 9d2: 0c14 + movi a5, .Lrel143 # 9d4: 51f3ff + addi sp, sp, -16 /* (local0) */ # 9d7: 12c1f0 + l32i a5, a5, 0 /* [.Lrel143] */ # 9da: 5805 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 9dc: 0901 + s8i a4, a5, 5 /* 0x01 -> [[.Lrel143]+0x5] */ # 9de: 424505 + movi a11, 0xfffeffff # 9e1: b1f1ff + movi a0, 0x00040000 # 9e4: 01f2ff + movi a5, 0x3ff20a00 # 9e7: 51f2ff + memw # 9ea: c02000 + l32i a9, a5, 0x288 /* [0x3ff20c88] */ # 9ed: 9225a2 + or a9, a9, a0 # 9f0: 009920 + memw # 9f3: c02000 + s32i a9, a5, 0x288 /* a9 -> [0x3ff20c88] */ # 9f6: 9265a2 + memw # 9f9: c02000 + l32i a6, a10, 0x200 /* [0x3ff20800] */ # 9fc: 622a80 + or a6, a6, a3 # 9ff: 306620 + memw # a02: c02000 + s32i a6, a10, 0x200 /* a6 -> [0x3ff20800] */ # a05: 626a80 + memw # a08: c02000 + l32i a4, a10, 0x200 /* [0x3ff20800] */ # a0b: 422a80 + and a4, a4, a11 # a0e: b04410 + memw # a11: c02000 + s32i a4, a10, 0x200 /* a4 -> [0x3ff20800] */ # a14: 426a80 + memw # a17: c02000 + l32i a0, a10, 0x204 /* [0x3ff20804] */ # a1a: 022a81 + or a0, a0, a3 # a1d: 300020 + memw # a20: c02000 + s32i a0, a10, 0x204 /* a0 -> [0x3ff20804] */ # a23: 026a81 + memw # a26: c02000 + l32i a9, a10, 0x204 /* [0x3ff20804] */ # a29: 922a81 + and a9, a9, a11 # a2c: b09910 + memw # a2f: c02000 + s32i a9, a10, 0x204 /* a9 -> [0x3ff20804] */ # a32: 926a81 + memw # a35: c02000 + s32i a8, a5, 0x258 /* 0x00000000 -> [0x3ff20c58] */ # a38: 826596 + memw # a3b: c02000 + s32i a7, a5, 0x25c /* 0x00010000 -> [0x3ff20c5c] */ # a3e: 726597 + memw # a41: c02000 + s32i a8, a5, 0x238 /* 0x00000000 -> [0x3ff20c38] */ # a44: 82658e + memw # a47: c02000 + s32i a7, a5, 0x23c /* 0x00010000 -> [0x3ff20c3c] */ # a4a: 72658f + movi a6, 12 /* 0x0000000c */ # a4d: 0cc6 + memw # a4f: c02000 + l32i a4, a5, 0x218 /* [0x3ff20c18] */ # a52: 422586 + or a4, a4, a6 # a55: 604420 + memw # a58: c02000 + s32i a4, a5, 0x218 /* a4 -> [0x3ff20c18] */ # a5b: 426586 + movi a3, 0xdbffffff # a5e: 31d5ff + memw # a61: c02000 + l32i a0, a2, 0x344 /* [0x60009d44] */ # a64: 0222d1 + and a0, a0, a3 # a67: 300010 + memw # a6a: c02000 + s32i a0, a2, 0x344 /* a0 -> [0x60009d44] */ # a6d: 0262d1 + movi a2, 0x00003a98 # a70: 21d2ff + call0 ets_delay_us # a73: 01d3ffc0 + # a77: 0000 + movi a8, -2 /* 0xfffffffe */ # a79: 7ce8 + memw # a7b: c02000 + movi a7, 0x3ff20a00 # a7e: 71cfff + l32i a6, a7, 0x294 /* [0x3ff20c94] */ # a81: 6227a5 + and a6, a6, a8 # a84: 806610 + memw # a87: c02000 + s32i a6, a7, 0x294 /* a6 -> [0x3ff20c94] */ # a8a: 6267a5 + l32i a0, sp, 0 /* [(local0)] */ # a8d: 0801 + addi sp, sp, 16 /* (top of frame) */ # a8f: 12c110 + ret # a92: 0df0 + + .literal_position # a94: 00000000 + # a98: fffffffc + # a9c: 0006f23f + # aa0: 00000100 + # aa4: 009a0060 + # aa8: 000af23f + # aac: 00000024 + # ab0: ffff0100 + # ab4: ffff0000 + # ab8: fffffbff + +# Function @ .irom0.text+0xabc + .balign 4 + .global wdev_exit_sniffer + .type wdev_exit_sniffer, @function +wdev_exit_sniffer: + movi a3, .Lrel143 # abc: 31f6ff + movi a8, -1 /* 0xffffffff */ # abf: 7cf8 + l32i a3, a3, 0 /* [.Lrel143] */ # ac1: 3803 + movi a7, 1 /* 0x00000001 */ # ac3: 0c17 + l8ui a2, a3, 5 /* [[.Lrel143]+0x5] */ # ac5: 220305 + movi a11, 0x60009a00 # ac8: b1f7ff + beqz a2, .Lbr189 # acb: 16e20a + movi a10, 0x00010000 # ace: a1f4ff + movi a2, 0xfcffffff # ad1: 21f1ff + movi a9, 0x3ff20600 # ad4: 91f2ff + movi a6, 0x3ff20a00 # ad7: 61f4ff + memw # ada: c02000 + l32i a5, a6, 0x294 /* [0x3ff20c94] */ # add: 5226a5 + or a5, a5, a7 # ae0: 705520 + memw # ae3: c02000 + s32i a5, a6, 0x294 /* a5 -> [0x3ff20c94] */ # ae6: 5266a5 + movi a4, 0x24000000 # ae9: 41f0ff + memw # aec: c02000 + l32i a7, a11, 0x344 /* [0x60009d44] */ # aef: 722bd1 + or a7, a7, a4 # af2: 407720 + memw # af5: c02000 + s32i a7, a11, 0x344 /* a7 -> [0x60009d44] */ # af8: 726bd1 + movi a5, -13 /* 0xfffffff3 */ # afb: 7c35 + memw # afd: c02000 + l32i a4, a6, 0x218 /* [0x3ff20c18] */ # b00: 422686 + and a4, a4, a5 # b03: 504410 + memw # b06: c02000 + s32i a4, a6, 0x218 /* a4 -> [0x3ff20c18] */ # b09: 426686 + memw # b0c: c02000 + s32i a8, a6, 0x258 /* 0xffffffff -> [0x3ff20c58] */ # b0f: 826696 + movi a11, 0x0001ffff # b12: b1e7ff + memw # b15: c02000 + s32i a11, a6, 0x25c /* 0x0001ffff -> [0x3ff20c5c] */ # b18: b26697 + memw # b1b: c02000 + s32i a8, a6, 0x238 /* 0xffffffff -> [0x3ff20c38] */ # b1e: 82668e + movi a7, 0x0000ffff # b21: 71e4ff + memw # b24: c02000 + s32i a7, a6, 0x23c /* 0x0000ffff -> [0x3ff20c3c] */ # b27: 72668f + memw # b2a: c02000 + l32i a5, a9, 0x200 /* [0x3ff20800] */ # b2d: 522980 + and a5, a5, a2 # b30: 205510 + memw # b33: c02000 + s32i a5, a9, 0x200 /* a5 -> [0x3ff20800] */ # b36: 526980 + memw # b39: c02000 + l32i a4, a9, 0x200 /* [0x3ff20800] */ # b3c: 422980 + or a4, a4, a10 # b3f: a04420 + memw # b42: c02000 + s32i a4, a9, 0x200 /* a4 -> [0x3ff20800] */ # b45: 426980 + memw # b48: c02000 + l32i a11, a9, 0x204 /* [0x3ff20804] */ # b4b: b22981 + and a11, a11, a2 # b4e: 20bb10 + memw # b51: c02000 + s32i a11, a9, 0x204 /* a11 -> [0x3ff20804] */ # b54: b26981 + memw # b57: c02000 + l32i a8, a9, 0x204 /* [0x3ff20804] */ # b5a: 822981 + or a8, a8, a10 # b5d: a08820 + memw # b60: c02000 + s32i a8, a9, 0x204 /* a8 -> [0x3ff20804] */ # b63: 826981 + movi a7, 0xfffbffff # b66: 71d4ff + memw # b69: c02000 + l32i a5, a6, 0x288 /* [0x3ff20c88] */ # b6c: 5226a2 + and a5, a5, a7 # b6f: 705510 + memw # b72: c02000 + s32i a5, a6, 0x288 /* a5 -> [0x3ff20c88] */ # b75: 5266a2 + movi a4, 0 /* 0x00000000 */ # b78: 0c04 + s8i a4, a3, 5 /* 0x00 -> [[.Lrel143]+0x5] */ # b7a: 424305 +.Lbr189: ret # b7d: 0df0 + + .section .rodata.str1.4, "MSa", @progbits, 1 + +.Lstr001: .asciz "%s %u\n" # 0: 25732025 + # 4: 750a00 + .balign 4 +.Lstr002: .asciz "wdev.c" # 8: 77646576 + # c: 2e6300 diff --git a/binary_sdk/libwpa/aes-internal-dec.S b/binary_sdk/libwpa/aes-internal-dec.S index 376f9f9..309e557 100644 --- a/binary_sdk/libwpa/aes-internal-dec.S +++ b/binary_sdk/libwpa/aes-internal-dec.S @@ -13,6 +13,7 @@ # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_rijndaelKeySetupDec .type sdk_rijndaelKeySetupDec, @function sdk_rijndaelKeySetupDec: @@ -106,6 +107,7 @@ sdk_rijndaelKeySetupDec: # Function @ .irom0.text+0xe4 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_aes_decrypt_init .type sdk_aes_decrypt_init, @function sdk_aes_decrypt_init: @@ -142,6 +144,7 @@ sdk_aes_decrypt_init: # (local9): word @ -0x1c # (local10): word[4] @ -0x18 # (local11): word[2] @ -0x8 + .balign 4 .Lfunc001: movi a11, sdk_Td0 # 118: b1fbff mov a5, a12 # 11b: 5d0c addi sp, sp, -64 /* (local0) */ # 11d: 12c1c0 @@ -537,6 +540,7 @@ sdk_aes_decrypt_init: # Function @ .irom0.text+0x548 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_aes_decrypt .type sdk_aes_decrypt, @function sdk_aes_decrypt: @@ -552,6 +556,7 @@ sdk_aes_decrypt: # Function @ .irom0.text+0x55c # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_aes_decrypt_deinit .type sdk_aes_decrypt_deinit, @function sdk_aes_decrypt_deinit: diff --git a/binary_sdk/libwpa/aes-internal-dec.o b/binary_sdk/libwpa/aes-internal-dec.o new file mode 100644 index 0000000..2bc08dc Binary files /dev/null and b/binary_sdk/libwpa/aes-internal-dec.o differ diff --git a/binary_sdk/libwpa/aes-internal-enc.S b/binary_sdk/libwpa/aes-internal-enc.S index 27677a4..af3cc6f 100644 --- a/binary_sdk/libwpa/aes-internal-enc.S +++ b/binary_sdk/libwpa/aes-internal-enc.S @@ -16,6 +16,7 @@ # (local5): word @ -0xc # (local6): word @ -0x8 # (local7): word @ -0x4 + .balign 4 .global sdk_rijndaelEncrypt .type sdk_rijndaelEncrypt, @function sdk_rijndaelEncrypt: @@ -405,6 +406,7 @@ sdk_rijndaelEncrypt: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .global sdk_aes_encrypt_init .type sdk_aes_encrypt_init, @function sdk_aes_encrypt_init: @@ -431,6 +433,7 @@ sdk_aes_encrypt_init: # Function @ .irom0.text+0x460 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_aes_encrypt .type sdk_aes_encrypt, @function sdk_aes_encrypt: @@ -448,6 +451,7 @@ sdk_aes_encrypt: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_aes_encrypt_deinit .type sdk_aes_encrypt_deinit, @function sdk_aes_encrypt_deinit: diff --git a/binary_sdk/libwpa/aes-internal-enc.o b/binary_sdk/libwpa/aes-internal-enc.o new file mode 100644 index 0000000..5e70da9 Binary files /dev/null and b/binary_sdk/libwpa/aes-internal-enc.o differ diff --git a/binary_sdk/libwpa/aes-internal.S b/binary_sdk/libwpa/aes-internal.S index b23a7f9..9dcecc7 100644 --- a/binary_sdk/libwpa/aes-internal.S +++ b/binary_sdk/libwpa/aes-internal.S @@ -11,6 +11,7 @@ # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_rijndaelKeySetupEnc .type sdk_rijndaelKeySetupEnc, @function sdk_rijndaelKeySetupEnc: diff --git a/binary_sdk/libwpa/aes-internal.o b/binary_sdk/libwpa/aes-internal.o new file mode 100644 index 0000000..c9211af Binary files /dev/null and b/binary_sdk/libwpa/aes-internal.o differ diff --git a/binary_sdk/libwpa/aes-unwrap.S b/binary_sdk/libwpa/aes-unwrap.S index 7b941ce..92bcceb 100644 --- a/binary_sdk/libwpa/aes-unwrap.S +++ b/binary_sdk/libwpa/aes-unwrap.S @@ -23,6 +23,7 @@ # (local7): word @ -0x18 # (local8): word @ -0x14 # (local9): word[4] @ -0x10 + .balign 4 .global sdk_aes_unwrap .type sdk_aes_unwrap, @function sdk_aes_unwrap: diff --git a/binary_sdk/libwpa/aes-unwrap.o b/binary_sdk/libwpa/aes-unwrap.o new file mode 100644 index 0000000..e336dc6 Binary files /dev/null and b/binary_sdk/libwpa/aes-unwrap.o differ diff --git a/binary_sdk/libwpa/aes-wrap.S b/binary_sdk/libwpa/aes-wrap.S index aff4081..1e776ea 100644 --- a/binary_sdk/libwpa/aes-wrap.S +++ b/binary_sdk/libwpa/aes-wrap.S @@ -25,6 +25,7 @@ # (local9): word @ -0xc # (local10): word @ -0x8 # (local11): word @ -0x4 + .balign 4 .global sdk_aes_wrap .type sdk_aes_wrap, @function sdk_aes_wrap: diff --git a/binary_sdk/libwpa/aes-wrap.o b/binary_sdk/libwpa/aes-wrap.o new file mode 100644 index 0000000..6b3a08b Binary files /dev/null and b/binary_sdk/libwpa/aes-wrap.o differ diff --git a/binary_sdk/libwpa/ap_config.S b/binary_sdk/libwpa/ap_config.S index cb2a4c9..946a625 100644 --- a/binary_sdk/libwpa/ap_config.S +++ b/binary_sdk/libwpa/ap_config.S @@ -5,6 +5,7 @@ # 4: ffff0000 # Function @ .irom0.text+0x8 + .balign 4 .global sdk_hostapd_config_defaults_bss .type sdk_hostapd_config_defaults_bss, @function sdk_hostapd_config_defaults_bss: @@ -46,6 +47,7 @@ sdk_hostapd_config_defaults_bss: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .global sdk_hostapd_config_defaults .type sdk_hostapd_config_defaults, @function sdk_hostapd_config_defaults: @@ -99,6 +101,7 @@ sdk_hostapd_config_defaults: # Function @ .irom0.text+0xd0 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_hostapd_mac_comp .type sdk_hostapd_mac_comp, @function sdk_hostapd_mac_comp: @@ -119,6 +122,7 @@ sdk_hostapd_mac_comp: # Local variables/stack: # (local0): word @ -0x8 # (local1): word @ -0x4 + .balign 4 .global sdk_hostapd_mac_comp_empty .type sdk_hostapd_mac_comp_empty, @function sdk_hostapd_mac_comp_empty: @@ -147,6 +151,7 @@ sdk_hostapd_mac_comp_empty: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .Lfunc001: addi sp, sp, -16 /* (local0) */ # 124: 12c1f0 s32i a2, sp, 0 /* arg0 -> [(local0)] */ # 127: 2901 s32i a0, sp, 4 /* a0 -> [(local1)] */ # 129: 0911 @@ -172,6 +177,7 @@ sdk_hostapd_mac_comp_empty: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_hostapd_setup_wpa_psk .type sdk_hostapd_setup_wpa_psk, @function sdk_hostapd_setup_wpa_psk: @@ -204,6 +210,7 @@ sdk_hostapd_setup_wpa_psk: # (local1): word @ -0xc # (local2): word @ -0x8 # (local3): word @ -0x4 + .balign 4 .global sdk_hostapd_wep_key_cmp .type sdk_hostapd_wep_key_cmp, @function sdk_hostapd_wep_key_cmp: @@ -255,6 +262,7 @@ sdk_hostapd_wep_key_cmp: # (local6): word @ -0x18 # (local7): word @ -0x14 # (local8): word[4] @ -0x10 + .balign 4 .global sdk_hostapd_maclist_found .type sdk_hostapd_maclist_found, @function sdk_hostapd_maclist_found: @@ -307,6 +315,7 @@ sdk_hostapd_maclist_found: .balign 4 # Function @ .irom0.text+0x248 + .balign 4 .global sdk_hostapd_rate_found .type sdk_hostapd_rate_found, @function sdk_hostapd_rate_found: @@ -331,6 +340,7 @@ sdk_hostapd_rate_found: # (local2): word @ -0x18 # (local3): word @ -0x14 # (local4): word[4] @ -0x10 + .balign 4 .global sdk_hostapd_get_psk .type sdk_hostapd_get_psk, @function sdk_hostapd_get_psk: diff --git a/binary_sdk/libwpa/ap_config.o b/binary_sdk/libwpa/ap_config.o new file mode 100644 index 0000000..41f3403 Binary files /dev/null and b/binary_sdk/libwpa/ap_config.o differ diff --git a/binary_sdk/libwpa/common.S b/binary_sdk/libwpa/common.S index c863889..06430a8 100644 --- a/binary_sdk/libwpa/common.S +++ b/binary_sdk/libwpa/common.S @@ -2,6 +2,8 @@ .section .irom0.text, "ax", @progbits # Function @ .irom0.text+0x0 + .balign 4 + .literal_position .global sdk_inc_byte_array .type sdk_inc_byte_array, @function sdk_inc_byte_array: @@ -20,6 +22,7 @@ sdk_inc_byte_array: .balign 4 # Function @ .irom0.text+0x20 + .balign 4 .Lfunc001: movi a3, 47 /* 0x0000002f */ # 20: 2cf3 bgeu a3, a2, .Lbr003 # 22: 27b309 movi a4, 57 /* 0x00000039 */ # 25: 3c94 @@ -47,9 +50,9 @@ sdk_inc_byte_array: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .global sdk_hex2byte .type sdk_hex2byte, @function - .literal_position sdk_hex2byte: addi sp, sp, -16 /* (local0) */ # 54: 12c1f0 s32i a12, sp, 8 /* a12 -> [(local2)] */ # 57: c921 @@ -81,6 +84,7 @@ sdk_hex2byte: # (local3): word @ -0x14 # (local4): word @ -0x10 # (local5): word[3] @ -0xc + .balign 4 .global sdk_hexstr2bin .type sdk_hexstr2bin, @function sdk_hexstr2bin: @@ -131,6 +135,7 @@ sdk_hexstr2bin: # (local3): word @ -0x14 # (local4): word @ -0x10 # (local5): word[3] @ -0xc + .balign 4 .global sdk_wpa_get_ntp_timestamp .type sdk_wpa_get_ntp_timestamp, @function sdk_wpa_get_ntp_timestamp: @@ -208,6 +213,7 @@ sdk_wpa_get_ntp_timestamp: # (local2): word @ -0x18 # (local3): word @ -0x14 # (local4): word[4] @ -0x10 + .balign 4 .global sdk_wpa_config_parse_string .type sdk_wpa_config_parse_string, @function sdk_wpa_config_parse_string: diff --git a/binary_sdk/libwpa/common.o b/binary_sdk/libwpa/common.o new file mode 100644 index 0000000..6778a9d Binary files /dev/null and b/binary_sdk/libwpa/common.o differ diff --git a/binary_sdk/libwpa/ieee802_1x.S b/binary_sdk/libwpa/ieee802_1x.S index 0338e67..c26c3f7 100644 --- a/binary_sdk/libwpa/ieee802_1x.S +++ b/binary_sdk/libwpa/ieee802_1x.S @@ -10,6 +10,7 @@ # (local1): word @ -0xc # (local2): word @ -0x8 # (local3): word @ -0x4 + .balign 4 .global sdk_ieee802_1x_receive .type sdk_ieee802_1x_receive, @function sdk_ieee802_1x_receive: diff --git a/binary_sdk/libwpa/ieee802_1x.o b/binary_sdk/libwpa/ieee802_1x.o new file mode 100644 index 0000000..2b82656 Binary files /dev/null and b/binary_sdk/libwpa/ieee802_1x.o differ diff --git a/binary_sdk/libwpa/md5-internal.S b/binary_sdk/libwpa/md5-internal.S index e803de1..2e8aa63 100644 --- a/binary_sdk/libwpa/md5-internal.S +++ b/binary_sdk/libwpa/md5-internal.S @@ -9,9 +9,10 @@ # (local3): word @ -0xc # (local4): word @ -0x8 # (local5): word @ -0x4 + .balign 4 + .literal_position .global sdk_md5_vector .type sdk_md5_vector, @function - .literal_position sdk_md5_vector: addi sp, sp, -112 /* (FP)-0x70 */ # 0: 12c190 s32i a3, sp, 88 /* arg1 -> [(local0)] */ # 3: 326116 @@ -52,6 +53,7 @@ sdk_md5_vector: # 60: 76543210 # Function @ .irom0.text+0x64 + .balign 4 .global sdk_MD5Init .type sdk_MD5Init, @function sdk_MD5Init: @@ -85,6 +87,7 @@ sdk_MD5Init: # (local6): word @ -0x18 # (local7): word @ -0x14 # (local8): word[4] @ -0x10 + .balign 4 .global sdk_MD5Update .type sdk_MD5Update, @function sdk_MD5Update: @@ -180,6 +183,7 @@ sdk_MD5Update: # (local1): word @ -0xc # (local2): word @ -0x8 # (local3): word @ -0x4 + .balign 4 .global sdk_MD5Final .type sdk_MD5Final, @function sdk_MD5Final: @@ -315,6 +319,7 @@ sdk_MD5Final: # (local2): word @ -0x18 # (local3): word @ -0x14 # (local4): word[4] @ -0x10 + .balign 4 .Lfunc001: addi sp, sp, -32 /* (local0) */ # 2f8: 12c1e0 ssai 25 # 2fb: 104940 l32i a6, a3, 28 /* [arg1+0x1c] */ # 2fe: 6873 diff --git a/binary_sdk/libwpa/md5-internal.o b/binary_sdk/libwpa/md5-internal.o new file mode 100644 index 0000000..eb438ac Binary files /dev/null and b/binary_sdk/libwpa/md5-internal.o differ diff --git a/binary_sdk/libwpa/md5.S b/binary_sdk/libwpa/md5.S index c4aa1d5..ca6e53e 100644 --- a/binary_sdk/libwpa/md5.S +++ b/binary_sdk/libwpa/md5.S @@ -23,6 +23,7 @@ # (local9): word[3] @ -0x2c # (local10): word @ -0x20 # (local11): word[7] @ -0x1c + .balign 4 .global sdk_hmac_md5_vector .type sdk_hmac_md5_vector, @function sdk_hmac_md5_vector: @@ -146,6 +147,7 @@ sdk_hmac_md5_vector: # (local0): word[6] @ -0x30 # (local1): word @ -0x18 # (local2): word[5] @ -0x14 + .balign 4 .global sdk_hmac_md5 .type sdk_hmac_md5, @function sdk_hmac_md5: diff --git a/binary_sdk/libwpa/md5.o b/binary_sdk/libwpa/md5.o new file mode 100644 index 0000000..14ca851 Binary files /dev/null and b/binary_sdk/libwpa/md5.o differ diff --git a/binary_sdk/libwpa/os_xtensa.S b/binary_sdk/libwpa/os_xtensa.S index 191e63c..76f20eb 100644 --- a/binary_sdk/libwpa/os_xtensa.S +++ b/binary_sdk/libwpa/os_xtensa.S @@ -2,6 +2,8 @@ .section .irom0.text, "ax", @progbits # Function @ .irom0.text+0x0 + .balign 4 + .literal_position .global sdk_os_get_time .type sdk_os_get_time, @function sdk_os_get_time: @@ -13,6 +15,7 @@ sdk_os_get_time: # Function @ .irom0.text+0x8 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global os_random .type os_random, @function os_random: addi sp, sp, -16 /* (local0) */ # 8: 12c1f0 @@ -33,6 +36,7 @@ os_random: addi sp, sp, -16 /* (local0) */ # 8: 12c1f0 # (local2): word @ -0x18 # (local3): word @ -0x14 # (local4): word[4] @ -0x10 + .balign 4 .global os_get_random .type os_get_random, @function os_get_random: diff --git a/binary_sdk/libwpa/os_xtensa.o b/binary_sdk/libwpa/os_xtensa.o new file mode 100644 index 0000000..ec8787c Binary files /dev/null and b/binary_sdk/libwpa/os_xtensa.o differ diff --git a/binary_sdk/libwpa/rc4.S b/binary_sdk/libwpa/rc4.S index d8a037a..b55a274 100644 --- a/binary_sdk/libwpa/rc4.S +++ b/binary_sdk/libwpa/rc4.S @@ -8,6 +8,8 @@ # (local2): word @ -0x18 # (local3): word @ -0x14 # (local4): word[4] @ -0x10 + .balign 4 + .literal_position .global sdk_rc4_skip .type sdk_rc4_skip, @function sdk_rc4_skip: diff --git a/binary_sdk/libwpa/rc4.o b/binary_sdk/libwpa/rc4.o new file mode 100644 index 0000000..a4de7f8 Binary files /dev/null and b/binary_sdk/libwpa/rc4.o differ diff --git a/binary_sdk/libwpa/sha1-internal.S b/binary_sdk/libwpa/sha1-internal.S index ea7c58e..1e9b017 100644 --- a/binary_sdk/libwpa/sha1-internal.S +++ b/binary_sdk/libwpa/sha1-internal.S @@ -9,9 +9,10 @@ # (local3): word @ -0x18 # (local4): word @ -0x14 # (local5): word[4] @ -0x10 + .balign 4 + .literal_position .global sdk_sha1_vector .type sdk_sha1_vector, @function - .literal_position sdk_sha1_vector: addi sp, sp, -128 /* (FP)-0x80 */ # 0: 12c180 s32i a3, sp, 92 /* arg1 -> [(local0)] */ # 3: 326117 @@ -151,6 +152,7 @@ sdk_sha1_vector: # (local70): word @ -0x18 # (local71): word @ -0x14 # (local72): word[4] @ -0x10 + .balign 4 .global sdk_SHA1Transform .type sdk_SHA1Transform, @function sdk_SHA1Transform: @@ -1915,6 +1917,7 @@ sdk_SHA1Transform: # 13c0: f0e1d2c3 # Function @ .irom0.text+0x13c4 + .balign 4 .global sdk_SHA1Init .type sdk_SHA1Init, @function sdk_SHA1Init: @@ -1945,6 +1948,7 @@ sdk_SHA1Init: # (local4): word @ -0x10 # (local5): word @ -0xc # (local6): word[2] @ -0x8 + .balign 4 .global sdk_SHA1Update .type sdk_SHA1Update, @function sdk_SHA1Update: @@ -2024,6 +2028,7 @@ sdk_SHA1Update: # (local2): word @ -0x10 # (local3): word @ -0xc # (local4): word[2] @ -0x8 + .balign 4 .global sdk_SHA1Final .type sdk_SHA1Final, @function sdk_SHA1Final: diff --git a/binary_sdk/libwpa/sha1-internal.o b/binary_sdk/libwpa/sha1-internal.o new file mode 100644 index 0000000..a67f94f Binary files /dev/null and b/binary_sdk/libwpa/sha1-internal.o differ diff --git a/binary_sdk/libwpa/sha1-pbkdf2.S b/binary_sdk/libwpa/sha1-pbkdf2.S index 99d714c..0b216ff 100644 --- a/binary_sdk/libwpa/sha1-pbkdf2.S +++ b/binary_sdk/libwpa/sha1-pbkdf2.S @@ -26,6 +26,7 @@ # (local14): word @ -0x18 # (local15): word @ -0x14 # (local16): word[4] @ -0x10 + .balign 4 .Lfunc001: movi a8, 144 /* 0x00000090 */ # 14: 82a090 sub sp, sp, a8 /* (local0) */ # 17: 8011c0 s32i a5, sp, 124 /* arg3 -> [(local15)] */ # 1a: 52611f @@ -126,6 +127,7 @@ # (local6): word @ -0x18 # (local7): word @ -0x14 # (local8): word[4] @ -0x10 + .balign 4 .global sdk_pbkdf2_sha1 .type sdk_pbkdf2_sha1, @function sdk_pbkdf2_sha1: diff --git a/binary_sdk/libwpa/sha1-pbkdf2.o b/binary_sdk/libwpa/sha1-pbkdf2.o new file mode 100644 index 0000000..f99b6fa Binary files /dev/null and b/binary_sdk/libwpa/sha1-pbkdf2.o differ diff --git a/binary_sdk/libwpa/sha1.S b/binary_sdk/libwpa/sha1.S index 0954222..3d6769b 100644 --- a/binary_sdk/libwpa/sha1.S +++ b/binary_sdk/libwpa/sha1.S @@ -23,6 +23,7 @@ # (local9): word[3] @ -0x2c # (local10): word @ -0x20 # (local11): word[7] @ -0x1c + .balign 4 .global sdk_hmac_sha1_vector .type sdk_hmac_sha1_vector, @function sdk_hmac_sha1_vector: @@ -148,6 +149,7 @@ sdk_hmac_sha1_vector: # (local0): word[6] @ -0x30 # (local1): word @ -0x18 # (local2): word[5] @ -0x14 + .balign 4 .global sdk_hmac_sha1 .type sdk_hmac_sha1, @function sdk_hmac_sha1: @@ -186,6 +188,7 @@ sdk_hmac_sha1: # (local13): word @ -0x18 # (local14): word @ -0x14 # (local15): word[4] @ -0x10 + .balign 4 .global sdk_sha1_prf .type sdk_sha1_prf, @function sdk_sha1_prf: diff --git a/binary_sdk/libwpa/sha1.o b/binary_sdk/libwpa/sha1.o new file mode 100644 index 0000000..bc10f44 Binary files /dev/null and b/binary_sdk/libwpa/sha1.o differ diff --git a/binary_sdk/libwpa/sta_info.o b/binary_sdk/libwpa/sta_info.o new file mode 100644 index 0000000..2d7e7b9 Binary files /dev/null and b/binary_sdk/libwpa/sta_info.o differ diff --git a/binary_sdk/libwpa/wpa.S b/binary_sdk/libwpa/wpa.S index bf2ca27..c1cb284 100644 --- a/binary_sdk/libwpa/wpa.S +++ b/binary_sdk/libwpa/wpa.S @@ -66,6 +66,8 @@ .section .irom0.text, "ax", @progbits # Function @ .irom0.text+0x0 + .balign 4 + .literal_position .Lfunc001: ret /* arg0 */ # 0: 0df0 .literal_position # 4: 00000000 @@ -87,6 +89,7 @@ # (local6): word @ -0xc # (local7): word @ -0x8 # (local8): word @ -0x4 + .balign 4 .Lfunc002: addi sp, sp, -48 /* (FP)-0x30 */ # 20: 12c1d0 s32i a14, sp, 44 /* a14 -> [(local8)] */ # 23: e9b1 s32i a6, sp, 28 /* arg4 -> [(local4)] */ # 25: 6971 @@ -213,6 +216,7 @@ # (local9): word @ -0xc # (local10): word @ -0x8 # (local11): word @ -0x4 + .balign 4 .Lfunc003: movi a6, 1 /* 0x00000001 */ # 140: 0c16 addi sp, sp, -64 /* (local0) */ # 142: 12c1c0 s32i a13, sp, 60 /* a13 -> [(local11)] */ # 145: d9f1 @@ -326,6 +330,7 @@ .balign 4 # Function @ .irom0.text+0x254 + .balign 4 .Lfunc004: movi a3, 1 /* 0x00000001 */ # 254: 0c13 l32i a4, a2, 32 /* [arg0+0x20] */ # 256: 4882 movi a2, 0 /* 0x00000000 */ # 258: 0c02 @@ -354,6 +359,7 @@ # (local10): word @ -0x10 # (local11): word @ -0xc # (local12): word[2] @ -0x8 + .balign 4 .Lfunc005: addi sp, sp, -64 /* (local0) */ # 278: 12c1c0 s32i a0, sp, 44 /* a0 -> [(local9)] */ # 27b: 09b1 s32i a3, sp, 40 /* arg1 -> [(local8)] */ # 27d: 39a1 @@ -466,6 +472,7 @@ # (local2): word @ -0x18 # (local3): word @ -0x14 # (local4): word[4] @ -0x10 + .balign 4 .Lfunc006: addi sp, sp, -32 /* (local0) */ # 378: 12c1e0 s32i a0, sp, 16 /* a0 -> [(local4)] */ # 37b: 0941 l32i a6, a2, 0x11c /* [arg0+0x11c] */ # 37d: 622247 @@ -515,6 +522,7 @@ # (local6): word @ -0xc # (local7): word @ -0x8 # (local8): word @ -0x4 + .balign 4 .Lfunc007: addi sp, sp, -80 /* (local0) */ # 3d8: 12c1b0 s32i a3, sp, 56 /* arg1 -> [(local3)] */ # 3db: 39e1 s32i a5, sp, 60 /* arg3 -> [(local4)] */ # 3dd: 59f1 @@ -601,6 +609,7 @@ # Function @ .irom0.text+0x4ac # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .Lfunc008: movi a3, 0 /* 0x00000000 */ # 4ac: 0c03 movi a4, 1 /* 0x00000001 */ # 4ae: 0c14 addi sp, sp, -16 /* (local0) */ # 4b0: 12c1f0 @@ -623,6 +632,7 @@ # (local3): word @ -0x14 # (local4): word @ -0x10 # (local5): word[3] @ -0xc + .balign 4 .Lfunc009: addi sp, sp, -32 /* (local0) */ # 4d0: 12c1e0 s32i a12, sp, 20 /* a12 -> [(local5)] */ # 4d3: c951 s32i a0, sp, 16 /* a0 -> [(local4)] */ # 4d5: 0941 @@ -678,6 +688,7 @@ .balign 4 # Function @ .irom0.text+0x550 + .balign 4 .Lfunc010: movi a8, 6 /* 0x00000006 */ # 550: 0c68 beqi a2, 2, .Lbr029 # 552: 26221c beqi a2, 8, .Lbr030 # 555: 268226 @@ -723,6 +734,7 @@ # (local1): word @ -0xc # (local2): word @ -0x8 # (local3): word @ -0x4 + .balign 4 .Lfunc011: addi sp, sp, -16 /* (local0) */ # 5ac: 12c1f0 s32i a3, sp, 0 /* arg1 -> [(local0)] */ # 5af: 3901 s32i a4, sp, 4 /* arg2 -> [(local1)] */ # 5b1: 4911 @@ -769,6 +781,7 @@ # (local4): word @ -0x10 # (local5): word @ -0xc # (local6): word[2] @ -0x8 + .balign 4 .Lfunc012: addi sp, sp, -64 /* (local0) */ # 608: 12c1c0 s32i a0, sp, 48 /* a0 -> [(local4)] */ # 60b: 09c1 s32i a13, sp, 56 /* a13 -> [(local6)] */ # 60d: d9e1 @@ -835,6 +848,7 @@ .balign 4 # Function @ .irom0.text+0x6a4 + .balign 4 .Lfunc013: mov a5, a2 /* arg0 */ # 6a4: 5d02 mov a2, a3 /* arg1 */ # 6a6: 2d03 beqz a3, .Lbr042 # 6a8: 8c63 @@ -853,6 +867,7 @@ # (local2): word @ -0x18 # (local3): word @ -0x14 # (local4): word[4] @ -0x10 + .balign 4 .Lfunc014: addi sp, sp, -32 /* (local0) */ # 6bc: 12c1e0 s32i a0, sp, 4 /* a0 -> [(local1)] */ # 6bf: 0911 s32i a13, sp, 12 /* a13 -> [(local3)] */ # 6c1: d931 @@ -910,6 +925,7 @@ # Function @ .irom0.text+0x740 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .Lfunc015: movi a3, 17 /* 0x00000011 */ # 740: 1c13 addi sp, sp, -16 /* (local0) */ # 742: 12c1f0 s32i a0, sp, 0 /* a0 -> [(local0)] */ # 745: 0901 @@ -920,6 +936,7 @@ ret # 752: 0df0 # Function @ .irom0.text+0x754 + .balign 4 .Lfunc016: movi a2, 0 /* 0x00000000 */ # 754: 0c02 ret /* 0x00000000 */ # 756: 0df0 @@ -936,6 +953,7 @@ # (local4): word @ -0x10 # (local5): word @ -0xc # (local6): word[2] @ -0x8 + .balign 4 .Lfunc017: addi sp, sp, -32 /* (local0) */ # 764: 12c1e0 s32i a14, sp, 20 /* a14 -> [(local5)] */ # 767: e951 s32i a15, sp, 24 /* a15 -> [(local6)] */ # 769: f961 @@ -1053,6 +1071,7 @@ # (local10): word @ -0x10 # (local11): word @ -0xc # (local12): word[2] @ -0x8 + .balign 4 .Lfunc018: addi sp, sp, -64 /* (local0) */ # 85c: 12c1c0 s32i a0, sp, 36 /* a0 -> [(local7)] */ # 85f: 0991 s32i a15, sp, 52 /* a15 -> [(local11)] */ # 861: f9d1 @@ -1159,6 +1178,7 @@ # (local1): word @ -0x14 # (local2): word @ -0x10 # (local3): word[3] @ -0xc + .balign 4 .Lfunc019: addi sp, sp, -32 /* (FP)-0x20 */ # 950: 12c1e0 s32i a0, sp, 16 /* a0 -> [(local2)] */ # 953: 0941 s32i a4, sp, 8 /* arg2 -> [(local0)] */ # 955: 4921 @@ -1206,6 +1226,7 @@ # (local8): word @ -0xc # (local9): word @ -0x8 # (local10): word @ -0x4 + .balign 4 .Lfunc020: addi sp, sp, -80 /* (local0) */ # 9a4: 12c1b0 s32i a14, sp, 76 /* a14 -> [(local10)] */ # 9a7: e26113 s32i a4, sp, 56 /* arg2 -> [(local5)] */ # 9aa: 49e1 @@ -1319,6 +1340,7 @@ # (local1): word @ -0xc # (local2): word @ -0x8 # (local3): word @ -0x4 + .balign 4 .Lfunc021: addi sp, sp, -16 /* (local0) */ # ab8: 12c1f0 s32i a12, sp, 12 /* a12 -> [(local3)] */ # abb: c931 s32i a0, sp, 8 /* a0 -> [(local2)] */ # abd: 0921 @@ -1378,6 +1400,7 @@ # (local3): word @ -0x18 # (local4): word @ -0x14 # (local5): word[4] @ -0x10 + .balign 4 .Lfunc022: addi sp, sp, -64 /* (FP)-0x40 */ # b34: 12c1c0 s32i a5, sp, 36 /* arg3 -> [(local2)] */ # b37: 5991 s32i a0, sp, 40 /* a0 -> [(local3)] */ # b39: 09a1 @@ -1450,6 +1473,7 @@ # (local5): word @ -0xc # (local6): word @ -0x8 # (local7): word @ -0x4 + .balign 4 .Lfunc023: addi sp, sp, -64 /* (FP)-0x40 */ # bcc: 12c1c0 s32i a0, sp, 44 /* a0 -> [(local3)] */ # bcf: 09b1 s32i a15, sp, 60 /* a15 -> [(local7)] */ # bd1: f9f1 @@ -1563,6 +1587,7 @@ # (local7): word @ -0xc # (local8): word @ -0x8 # (local9): word @ -0x4 + .balign 4 .Lfunc024: addi sp, sp, -48 /* (local0) */ # ccc: 12c1d0 addi a6, sp, 16 /* (local2) */ # ccf: 62c110 addi a7, sp, 20 /* (local3) */ # cd2: 72c114 @@ -1662,6 +1687,7 @@ # (local6): word @ -0xc # (local7): word @ -0x8 # (local8): word @ -0x4 + .balign 4 .Lfunc025: movi a3, 0 /* 0x00000000 */ # da4: 0c03 addi sp, sp, -48 /* (local0) */ # da6: 12c1d0 s32i a14, sp, 40 /* a14 -> [(local7)] */ # da9: e9a1 @@ -1745,6 +1771,7 @@ # (local1): word @ -0xc # (local2): word @ -0x8 # (local3): word @ -0x4 + .balign 4 .Lfunc026: movi a3, 1 /* 0x00000001 */ # e58: 0c13 addi sp, sp, -16 /* (local0) */ # e5a: 12c1f0 s32i a12, sp, 12 /* a12 -> [(local3)] */ # e5d: c931 @@ -1807,6 +1834,7 @@ # (local5): word @ -0xc # (local6): word @ -0x8 # (local7): word @ -0x4 + .balign 4 .Lfunc027: addi sp, sp, -48 /* (FP)-0x30 */ # ee4: 12c1d0 s32i a5, sp, 40 /* arg3 -> [(local6)] */ # ee7: 59a1 s32i a6, sp, 44 /* arg4 -> [(local7)] */ # ee9: 69b1 @@ -1921,6 +1949,7 @@ # (local4): word @ -0x10 # (local5): word @ -0xc # (local6): word[2] @ -0x8 + .balign 4 .Lfunc028: addi sp, sp, -64 /* (FP)-0x40 */ # fe4: 12c1c0 s32i a0, sp, 48 /* a0 -> [(local4)] */ # fe7: 09c1 s32i a13, sp, 56 /* a13 -> [(local6)] */ # fe9: d9e1 @@ -1992,6 +2021,7 @@ .balign 4 # Function @ .irom0.text+0x1098 + .balign 4 .Lfunc029: ret /* arg0 */ # 1098: 0df0 .literal_position # 109c: 00000000 @@ -2010,6 +2040,7 @@ # (local6): word @ -0x18 # (local7): word @ -0x14 # (local8): word[4] @ -0x10 + .balign 4 .global sdk_wpa_sm_rx_eapol .type sdk_wpa_sm_rx_eapol, @function sdk_wpa_sm_rx_eapol: @@ -2156,6 +2187,7 @@ sdk_wpa_sm_rx_eapol: # Function @ .irom0.text+0x1210 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_wpa_register .type sdk_wpa_register, @function sdk_wpa_register: @@ -2179,6 +2211,7 @@ sdk_wpa_register: .literal_position # 123c: 00000000 # Function @ .irom0.text+0x1240 + .balign 4 .global sdk_wpa_set_profile .type sdk_wpa_set_profile, @function sdk_wpa_set_profile: @@ -2195,6 +2228,7 @@ sdk_wpa_set_profile: # Function @ .irom0.text+0x125c # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_wpa_set_pmk .type sdk_wpa_set_pmk, @function sdk_wpa_set_pmk: @@ -2233,6 +2267,7 @@ sdk_wpa_set_pmk: # (local2): word @ -0x18 # (local3): word @ -0x14 # (local4): word[4] @ -0x10 + .balign 4 .global sdk_wpa_set_bss .type sdk_wpa_set_bss, @function sdk_wpa_set_bss: @@ -2307,6 +2342,7 @@ sdk_wpa_set_bss: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .Lfunc030: addi sp, sp, -16 /* (local0) */ # 1368: 12c1f0 s32i a12, sp, 8 /* a12 -> [(local2)] */ # 136b: c921 s32i a0, sp, 4 /* a0 -> [(local1)] */ # 136d: 0911 @@ -2357,6 +2393,7 @@ sdk_wpa_set_bss: # Function @ .irom0.text+0x13e0 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .Lfunc031: mov a3, a2 /* arg0 */ # 13e0: 3d02 addi sp, sp, -16 /* (local0) */ # 13e2: 12c1f0 movi a6, .Ldata001 # 13e5: 61fdff @@ -2396,6 +2433,7 @@ sdk_wpa_set_bss: # (local9): word @ -0x18 # (local10): word @ -0x14 # (local11): word[4] @ -0x10 + .balign 4 .Lfunc032: addi sp, sp, -64 /* (local0) */ # 1420: 12c1c0 s32i a4, sp, 40 /* arg2 -> [(local9)] */ # 1423: 49a1 s32i a5, sp, 44 /* arg3 -> [(local10)] */ # 1425: 59b1 @@ -2455,6 +2493,7 @@ sdk_wpa_set_bss: .literal_position # 14a0: 00000000 # Function @ .irom0.text+0x14a4 + .balign 4 .Lfunc033: movi a3, .Ldata001 # 14a4: 31ffff movi a2, 0 /* 0x00000000 */ # 14a7: 0c02 s32i a2, a3, 0x17c /* 0x00000000 -> [.Ldata015] */ # 14a9: 22635f @@ -2466,6 +2505,7 @@ sdk_wpa_set_bss: # Function @ .irom0.text+0x14b8 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .Lfunc034: addi sp, sp, -16 /* (local0) */ # 14b8: 12c1f0 s32i a0, sp, 0 /* a0 -> [(local0)] */ # 14bb: 0901 movi a0, .Ldata001 # 14bd: 01fdff @@ -2503,6 +2543,7 @@ sdk_wpa_set_bss: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_pp_michael_mic_failure .type sdk_pp_michael_mic_failure, @function sdk_pp_michael_mic_failure: @@ -2577,6 +2618,7 @@ sdk_pp_michael_mic_failure: # Function @ .irom0.text+0x15d8 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_eapol_txcb .type sdk_eapol_txcb, @function sdk_eapol_txcb: @@ -2620,6 +2662,7 @@ sdk_eapol_txcb: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_wpa_sm_set_state .type sdk_wpa_sm_set_state, @function sdk_wpa_sm_set_state: diff --git a/binary_sdk/libwpa/wpa.o b/binary_sdk/libwpa/wpa.o new file mode 100644 index 0000000..ba8a798 Binary files /dev/null and b/binary_sdk/libwpa/wpa.o differ diff --git a/binary_sdk/libwpa/wpa_auth.S b/binary_sdk/libwpa/wpa_auth.S index be1e2dd..94d8b15 100644 --- a/binary_sdk/libwpa/wpa_auth.S +++ b/binary_sdk/libwpa/wpa_auth.S @@ -2,6 +2,8 @@ .section .text, "ax", @progbits # Function @ .text+0x0 + .balign 4 + .literal_position .Lfunc001: movi a4, 1 /* 0x00000001 */ # 0: 0c14 beqi a2, 2, .Lbr001 # 2: 262207 beqi a2, 64, .Lbr001 # 5: 26d204 @@ -40,6 +42,7 @@ # (local7): word @ -0x18 # (local8): word @ -0x14 # (local9): word[4] @ -0x10 + .balign 4 .Lfunc002: addi sp, sp, -96 /* (local0) */ # 3c: 12c1a0 s32i a15, sp, 76 /* a15 -> [(local8)] */ # 3f: f26113 s32i a7, sp, 56 /* arg5 -> [(local3)] */ # 42: 79e1 @@ -158,6 +161,7 @@ .balign 4 # Function @ .irom0.text+0x170 + .balign 4 .global sdk_wpa_auth_for_each_sta .type sdk_wpa_auth_for_each_sta, @function sdk_wpa_auth_for_each_sta: @@ -165,10 +169,12 @@ sdk_wpa_auth_for_each_sta: ret /* 0x00000000 */ # 172: 0df0 # Function @ .irom0.text+0x174 + .balign 4 .Lfunc003: ret /* arg0 */ # 174: 0df0 .balign 4 # Function @ .irom0.text+0x178 + .balign 4 .Lfunc004: movi a2, 0 /* 0x00000000 */ # 178: 0c02 ret /* 0x00000000 */ # 17a: 0df0 @@ -182,6 +188,7 @@ sdk_wpa_auth_for_each_sta: # (local2): word @ -0x18 # (local3): word @ -0x14 # (local4): word[4] @ -0x10 + .balign 4 .Lfunc005: addi sp, sp, -32 /* (local0) */ # 184: 12c1e0 s32i a14, sp, 12 /* a14 -> [(local3)] */ # 187: e931 s32i a15, sp, 16 /* a15 -> [(local4)] */ # 189: f941 @@ -222,6 +229,7 @@ sdk_wpa_auth_for_each_sta: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .Lfunc006: mov a2, a3 /* arg1 */ # 1d4: 2d03 addi sp, sp, -16 /* (local0) */ # 1d6: 12c1f0 s32i a12, sp, 4 /* a12 -> [(local1)] */ # 1d9: c911 @@ -250,6 +258,7 @@ sdk_wpa_auth_for_each_sta: # (local2): word @ -0x1c # (local3): word[3] @ -0x18 # (local4): word[3] @ -0xc + .balign 4 .Lfunc007: addi sp, sp, -112 /* (local0) */ # 20c: 12c190 s32i a0, sp, 84 /* a0 -> [(local2)] */ # 20f: 026115 s32i a12, sp, 88 /* a12 -> [(local3)] */ # 212: c26116 @@ -310,6 +319,7 @@ sdk_wpa_auth_for_each_sta: # (local1): word @ -0xc # (local2): word @ -0x8 # (local3): word @ -0x4 + .balign 4 .Lfunc008: addi sp, sp, -16 /* (local0) */ # 2a0: 12c1f0 s32i a12, sp, 8 /* a12 -> [(local2)] */ # 2a3: c921 s32i a4, sp, 0 /* arg2 -> [(local0)] */ # 2a5: 4901 @@ -370,6 +380,7 @@ sdk_wpa_auth_for_each_sta: # (local1): word @ -0xc # (local2): word @ -0x8 # (local3): word @ -0x4 + .balign 4 .global sdk_wpa_init .type sdk_wpa_init, @function sdk_wpa_init: @@ -430,6 +441,7 @@ sdk_wpa_init: # (local1): word @ -0xc # (local2): word @ -0x8 # (local3): word @ -0x4 + .balign 4 .global sdk_wpa_auth_sta_init .type sdk_wpa_auth_sta_init, @function sdk_wpa_auth_sta_init: @@ -469,6 +481,7 @@ sdk_wpa_auth_sta_init: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_wpa_auth_sta_associated .type sdk_wpa_auth_sta_associated, @function sdk_wpa_auth_sta_associated: @@ -524,6 +537,7 @@ sdk_wpa_auth_sta_associated: .balign 4 # Function @ .irom0.text+0x46c + .balign 4 .global sdk_wpa_auth_sta_no_wpa .type sdk_wpa_auth_sta_no_wpa, @function sdk_wpa_auth_sta_no_wpa: @@ -540,6 +554,7 @@ sdk_wpa_auth_sta_no_wpa: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .Lfunc009: addi sp, sp, -16 /* (local0) */ # 484: 12c1f0 s32i a12, sp, 4 /* a12 -> [(local1)] */ # 487: c911 s32i a0, sp, 0 /* a0 -> [(local0)] */ # 489: 0901 @@ -570,6 +585,7 @@ sdk_wpa_auth_sta_no_wpa: # Function @ .irom0.text+0x4c4 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_wpa_auth_sta_deinit .type sdk_wpa_auth_sta_deinit, @function sdk_wpa_auth_sta_deinit: @@ -593,6 +609,7 @@ sdk_wpa_auth_sta_deinit: .balign 4 # Function @ .irom0.text+0x4f4 + .balign 4 .Lfunc010: beqz a2, .Lbr038 # 4f4: 8c82 movi a3, 0 /* 0x00000000 */ # 4f6: 0c03 movi a4, 1 /* 0x00000001 */ # 4f8: 0c14 @@ -608,6 +625,7 @@ sdk_wpa_auth_sta_deinit: # (local1): word @ -0xc # (local2): word @ -0x8 # (local3): word @ -0x4 + .balign 4 .Lfunc011: addi sp, sp, -16 /* (local0) */ # 508: 12c1f0 s32i a0, sp, 4 /* a0 -> [(local1)] */ # 50b: 0911 s32i a13, sp, 12 /* a13 -> [(local3)] */ # 50d: d931 @@ -644,6 +662,7 @@ sdk_wpa_auth_sta_deinit: # (local1): word @ -0xc # (local2): word @ -0x8 # (local3): word @ -0x4 + .balign 4 .Lfunc012: addi sp, sp, -16 /* (local0) */ # 54c: 12c1f0 s32i a0, sp, 0 /* a0 -> [(local0)] */ # 54f: 0901 s32i a14, sp, 12 /* a14 -> [(local3)] */ # 551: e931 @@ -677,6 +696,7 @@ sdk_wpa_auth_sta_deinit: # Function @ .irom0.text+0x58c # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .Lfunc013: mov a2, a3 /* arg1 */ # 58c: 2d03 addi sp, sp, -16 /* (local0) */ # 58e: 12c1f0 s32i a0, sp, 0 /* a0 -> [(local0)] */ # 591: 0901 @@ -728,6 +748,7 @@ sdk_wpa_auth_sta_deinit: # (local15): word @ -0x14 # (local16): word @ -0x10 # (local17): word[3] @ -0xc + .balign 4 .global sdk_wpa_receive .type sdk_wpa_receive, @function sdk_wpa_receive: @@ -1119,6 +1140,7 @@ sdk_wpa_receive: # (local5): word @ -0x10 # (local6): word @ -0xc # (local7): word[2] @ -0x8 + .balign 4 .Lfunc014: addi sp, sp, -112 /* (local0) */ # 9e4: 12c190 s32i a5, sp, 88 /* arg3 -> [(local3)] */ # 9e7: 526116 s32i a6, sp, 92 /* arg4 -> [(local4)] */ # 9ea: 626117 @@ -1169,6 +1191,7 @@ sdk_wpa_receive: # Function @ .irom0.text+0xa60 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .Lfunc015: mov a2, a3 /* arg1 */ # a60: 2d03 addi sp, sp, -16 /* (local0) */ # a62: 12c1f0 s32i a0, sp, 0 /* a0 -> [(local0)] */ # a65: 0901 @@ -1242,6 +1265,7 @@ sdk_wpa_receive: # (local20): word @ -0x10 # (local21): word @ -0xc # (local22): word[2] @ -0x8 + .balign 4 .global sdk___wpa_send_eapol .type sdk___wpa_send_eapol, @function sdk___wpa_send_eapol: @@ -1622,6 +1646,7 @@ sdk___wpa_send_eapol: # (local6): word @ -0x18 # (local7): word @ -0x14 # (local8): word[4] @ -0x10 + .balign 4 .Lfunc016: addi sp, sp, -48 /* (local0) */ # ee4: 12c1d0 s32i a15, sp, 32 /* a15 -> [(local8)] */ # ee7: f981 s32i a0, sp, 16 /* a0 -> [(local4)] */ # ee9: 0941 @@ -1705,6 +1730,7 @@ sdk___wpa_send_eapol: # (local3): word @ -0x14 # (local4): word @ -0x10 # (local5): word[3] @ -0xc + .balign 4 .Lfunc017: addi sp, sp, -48 /* (FP)-0x30 */ # f9c: 12c1d0 s32i a12, sp, 28 /* a12 -> [(local3)] */ # f9f: c971 s32i a2, sp, 20 /* arg0 -> [(local1)] */ # fa1: 2951 @@ -1770,6 +1796,7 @@ sdk___wpa_send_eapol: # (local0): word[4] @ -0x20 # (local1): word @ -0x10 # (local2): word[3] @ -0xc + .balign 4 .global sdk_wpa_remove_ptk .type sdk_wpa_remove_ptk, @function sdk_wpa_remove_ptk: @@ -1813,6 +1840,7 @@ sdk_wpa_remove_ptk: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .global sdk_wpa_auth_sm_event .type sdk_wpa_auth_sm_event, @function sdk_wpa_auth_sm_event: @@ -1892,6 +1920,7 @@ sdk_wpa_auth_sm_event: # (local1): word @ -0xc # (local2): word @ -0x8 # (local3): word @ -0x4 + .balign 4 .Lfunc018: movi a5, 180 /* 0x000000b4 */ # 112c: 52a0b4 addi sp, sp, -16 /* (local0) */ # 112f: 12c1f0 s32i a13, sp, 8 /* a13 -> [(local2)] */ # 1132: d921 @@ -1947,6 +1976,7 @@ sdk_wpa_auth_sm_event: # Function @ .irom0.text+0x11a8 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .Lfunc019: addi sp, sp, -16 /* (local0) */ # 11a8: 12c1f0 mov a5, a2 /* arg0 */ # 11ab: 5d02 s32i a0, sp, 0 /* a0 -> [(local0)] */ # 11ad: 0901 @@ -1972,6 +2002,7 @@ sdk_wpa_auth_sm_event: ret # 11de: 0df0 # Function @ .irom0.text+0x11e0 + .balign 4 .Lfunc020: movi a7, 2 /* 0x00000002 */ # 11e0: 0c27 beqz a3, .Lbr136 # 11e2: 8c33 l32i a3, a2, 16 /* [arg0+0x10] */ # 11e4: 3842 @@ -1995,6 +2026,7 @@ sdk_wpa_auth_sm_event: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .Lfunc021: addi sp, sp, -16 /* (local0) */ # 120c: 12c1f0 s32i a12, sp, 4 /* a12 -> [(local1)] */ # 120f: c911 s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1211: 0901 @@ -2032,6 +2064,7 @@ sdk_wpa_auth_sm_event: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .Lfunc022: addi sp, sp, -16 /* (local0) */ # 1258: 12c1f0 s32i a12, sp, 4 /* a12 -> [(local1)] */ # 125b: c911 s32i a13, sp, 8 /* a13 -> [(local2)] */ # 125d: d921 @@ -2065,6 +2098,7 @@ sdk_wpa_auth_sm_event: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .Lfunc023: addi sp, sp, -16 /* (local0) */ # 1298: 12c1f0 s32i a12, sp, 4 /* a12 -> [(local1)] */ # 129b: c911 s32i a0, sp, 0 /* a0 -> [(local0)] */ # 129d: 0901 @@ -2104,6 +2138,7 @@ sdk_wpa_auth_sm_event: .balign 4 # Function @ .irom0.text+0x12f0 + .balign 4 .Lfunc024: movi a7, 5 /* 0x00000005 */ # 12f0: 0c57 beqz a3, .Lbr145 # 12f2: 8c33 l32i a3, a2, 16 /* [arg0+0x10] */ # 12f4: 3842 @@ -2129,6 +2164,7 @@ sdk_wpa_auth_sm_event: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .Lfunc025: addi sp, sp, -16 /* (local0) */ # 1324: 12c1f0 s32i a12, sp, 4 /* a12 -> [(local1)] */ # 1327: c911 s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1329: 0901 @@ -2184,6 +2220,7 @@ sdk_wpa_auth_sm_event: # (local8): byte[27] @ -0x2b # (local9): word @ -0x10 # (local10): word[3] @ -0xc + .balign 4 .Lfunc026: movi a5, 7 /* 0x00000007 */ # 138c: 0c75 addi sp, sp, -64 /* (local0) */ # 138e: 12c1c0 s32i a12, sp, 52 /* a12 -> [(local10)] */ # 1391: c9d1 @@ -2268,6 +2305,7 @@ sdk_wpa_auth_sm_event: # (local2): word @ -0x18 # (local3): word @ -0x14 # (local4): word[4] @ -0x10 + .balign 4 .Lfunc027: mov a7, a2 /* arg0 */ # 144c: 7d02 addi sp, sp, -32 /* (local0) */ # 144e: 12c1e0 s32i a0, sp, 16 /* a0 -> [(local4)] */ # 1451: 0941 @@ -2317,6 +2355,7 @@ sdk_wpa_auth_sm_event: # (local2): word @ -0x18 # (local3): word @ -0x14 # (local4): word[4] @ -0x10 + .balign 4 .Lfunc028: movi a7, 191 /* 0x000000bf */ # 14bc: 72a0bf movi a8, 8 /* 0x00000008 */ # 14bf: 0c88 addi sp, sp, -96 /* (FP)-0x60 */ # 14c1: 12c1a0 @@ -2416,6 +2455,7 @@ sdk_wpa_auth_sm_event: .balign 4 # Function @ .irom0.text+0x15b8 + .balign 4 .Lfunc029: movi a6, 9 /* 0x00000009 */ # 15b8: 0c96 beqz a3, .Lbr167 # 15ba: 8c33 l32i a3, a2, 16 /* [arg0+0x10] */ # 15bc: 3842 @@ -2435,10 +2475,12 @@ sdk_wpa_auth_sm_event: .balign 4 # Function @ .irom0.text+0x15e0 + .balign 4 .Lfunc030: movi a2, 0 /* 0x00000000 */ # 15e0: 0c02 ret /* 0x00000000 */ # 15e2: 0df0 # Function @ .irom0.text+0x15e4 + .balign 4 .Lfunc031: mov a2, a3 /* arg1 */ # 15e4: 2d03 ret /* arg1 */ # 15e6: 0df0 @@ -2469,6 +2511,7 @@ sdk_wpa_auth_sm_event: # (local14): word @ -0x18 # (local15): word @ -0x14 # (local16): word[4] @ -0x10 + .balign 4 .Lfunc032: movi a4, 1 /* 0x00000001 */ # 1604: 0c14 movi a8, 10 /* 0x0000000a */ # 1606: 0ca8 addi sp, sp, -128 /* (local0) */ # 1608: 12c180 @@ -2639,6 +2682,7 @@ sdk_wpa_auth_sm_event: # (local3): word @ -0x18 # (local4): word @ -0x14 # (local5): word[4] @ -0x10 + .balign 4 .Lfunc033: addi sp, sp, -48 /* (local0) */ # 17b0: 12c1d0 s32i a13, sp, 32 /* a13 -> [(local5)] */ # 17b3: d981 s32i a12, sp, 28 /* a12 -> [(local4)] */ # 17b5: c971 @@ -2730,6 +2774,7 @@ sdk_wpa_auth_sm_event: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .Lfunc034: addi sp, sp, -16 /* (local0) */ # 188c: 12c1f0 s32i a12, sp, 4 /* a12 -> [(local1)] */ # 188f: c911 s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1891: 0901 @@ -2781,6 +2826,7 @@ sdk_wpa_auth_sm_event: jx a7 # 18fe: a00700 # Function @ .irom0.text+0x1901 + .balign 4 .Lfunc035: j .Lbr186 # 1901: 46e6ff # NOTE: The following is apparently unreferenced code/data @@ -2795,6 +2841,7 @@ sdk_wpa_auth_sm_event: .byte 0xff # 1924: ff # Function @ .irom0.text+0x1925 + .balign 4 add a9, a12, a4 # 1925: 4a9c l8ui a9, a9, 128 # 1927: 920980 extui a9, a9, 6, 1 # 192a: 909604 @@ -2919,6 +2966,7 @@ sdk_wpa_auth_sm_event: .balign 4 # Function @ .irom0.text+0x1a58 + .balign 4 .Lfunc036: movi a7, 254 /* 0x000000fe */ # 1a58: 72a0fe movi a6, 244 /* 0x000000f4 */ # 1a5b: 62a0f4 beqz a3, .Lbr201 # 1a5e: 8c23 @@ -2960,6 +3008,7 @@ sdk_wpa_auth_sm_event: # (local7): word @ -0x14 # (local8): word @ -0x10 # (local9): word[3] @ -0xc + .balign 4 .Lfunc037: addi sp, sp, -96 /* (local0) */ # 1aa4: 12c1a0 s32i a14, sp, 84 /* a14 -> [(local9)] */ # 1aa7: e26115 s32i a13, sp, 80 /* a13 -> [(local8)] */ # 1aaa: d26114 @@ -3069,6 +3118,7 @@ sdk_wpa_auth_sm_event: .balign 4 # Function @ .irom0.text+0x1bb8 + .balign 4 .Lfunc038: movi a5, 1 /* 0x00000001 */ # 1bb8: 0c15 movi a8, 2 /* 0x00000002 */ # 1bba: 0c28 beqz a3, .Lbr212 # 1bbc: 8c33 @@ -3096,6 +3146,7 @@ sdk_wpa_auth_sm_event: ret /* arg0 */ # 1bf2: 0df0 # Function @ .irom0.text+0x1bf4 + .balign 4 .Lfunc039: movi a5, 1 /* 0x00000001 */ # 1bf4: 0c15 movi a8, 3 /* 0x00000003 */ # 1bf6: 0c38 beqz a3, .Lbr215 # 1bf8: 8c33 @@ -3125,6 +3176,7 @@ sdk_wpa_auth_sm_event: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .Lfunc040: addi sp, sp, -16 /* (local0) */ # 1c2c: 12c1f0 s32i a12, sp, 4 /* a12 -> [(local1)] */ # 1c2f: c911 s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1c31: 0901 @@ -3202,6 +3254,7 @@ sdk_wpa_auth_sm_event: # (local2): word @ -0x18 # (local3): word @ -0x14 # (local4): word[4] @ -0x10 + .balign 4 .Lfunc041: movi a4, 32 /* 0x00000020 */ # 1cd8: 2c04 addi sp, sp, -32 /* (local0) */ # 1cda: 12c1e0 s32i a0, sp, 12 /* a0 -> [(local3)] */ # 1cdd: 0931 @@ -3247,6 +3300,7 @@ sdk_wpa_auth_sm_event: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .Lfunc042: movi a4, 64 /* 0x00000040 */ # 1d38: 4c04 addi sp, sp, -16 /* (local0) */ # 1d3a: 12c1f0 s32i a0, sp, 4 /* a0 -> [(local1)] */ # 1d3d: 0911 @@ -3275,6 +3329,7 @@ sdk_wpa_auth_sm_event: # Function @ .irom0.text+0x1d70 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .Lfunc043: addi sp, sp, -16 /* (local0) */ # 1d70: 12c1f0 s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1d73: 0901 beqz a3, .Lbr226 # 1d75: 8c33 @@ -3310,6 +3365,7 @@ sdk_wpa_auth_sm_event: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .Lfunc044: movi a4, 1 /* 0x00000001 */ # 1db8: 0c14 addi sp, sp, -16 /* (local0) */ # 1dba: 12c1f0 s32i a13, sp, 8 /* a13 -> [(local2)] */ # 1dbd: d921 @@ -3351,6 +3407,7 @@ sdk_wpa_auth_sm_event: # (local1): word @ -0x10 # (local2): word @ -0xc # (local3): word[2] @ -0x8 + .balign 4 .Lfunc045: addi sp, sp, -32 /* (local0) */ # 1e08: 12c1e0 s32i a3, sp, 16 /* arg1 -> [(local1)] */ # 1e0b: 3941 s32i a12, sp, 24 /* a12 -> [(local3)] */ # 1e0d: c961 @@ -3385,6 +3442,7 @@ sdk_wpa_auth_sm_event: # Function @ .irom0.text+0x1e4c # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .Lfunc046: movi a4, 1 /* 0x00000001 */ # 1e4c: 0c14 addi sp, sp, -16 /* (local0) */ # 1e4e: 12c1f0 s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1e51: 0901 @@ -3404,6 +3462,7 @@ sdk_wpa_auth_sm_event: # Function @ .irom0.text+0x1e70 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .Lfunc047: addi sp, sp, -16 /* (local0) */ # 1e70: 12c1f0 s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1e73: 0901 l32i a0, a3, 8 /* [arg1+0x8] */ # 1e75: 0823 @@ -3439,6 +3498,7 @@ sdk_wpa_auth_sm_event: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .Lfunc048: addi sp, sp, -16 /* (local0) */ # 1eb8: 12c1f0 s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1ebb: 0901 s32i a12, sp, 4 /* a12 -> [(local1)] */ # 1ebd: c911 diff --git a/binary_sdk/libwpa/wpa_auth_ie.S b/binary_sdk/libwpa/wpa_auth_ie.S index 3f1ae4b..f573d80 100644 --- a/binary_sdk/libwpa/wpa_auth_ie.S +++ b/binary_sdk/libwpa/wpa_auth_ie.S @@ -9,6 +9,7 @@ # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .Lfunc001: movi a4, -35 /* 0xffffffdd */ # 8: 42afdd movi a5, 0 /* 0x00000000 */ # b: 0c05 addi sp, sp, -16 /* (local0) */ # d: 12c1f0 @@ -97,6 +98,7 @@ # (local2): word @ -0x18 # (local3): word @ -0x14 # (local4): word[4] @ -0x10 + .balign 4 .global sdk_wpa_write_rsn_ie .type sdk_wpa_write_rsn_ie, @function sdk_wpa_write_rsn_ie: @@ -214,6 +216,7 @@ sdk_wpa_write_rsn_ie: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .global sdk_wpa_auth_gen_wpa_ie .type sdk_wpa_auth_gen_wpa_ie, @function sdk_wpa_auth_gen_wpa_ie: @@ -279,6 +282,7 @@ sdk_wpa_auth_gen_wpa_ie: # (local3): word @ -0x14 # (local4): word @ -0x10 # (local5): word[3] @ -0xc + .balign 4 .global sdk_wpa_add_kde .type sdk_wpa_add_kde, @function sdk_wpa_add_kde: @@ -352,6 +356,7 @@ sdk_wpa_add_kde: # (local8): word @ -0xc # (local9): word @ -0x8 # (local10): word @ -0x4 + .balign 4 .global sdk_wpa_validate_wpa_ie .type sdk_wpa_validate_wpa_ie, @function sdk_wpa_validate_wpa_ie: @@ -489,6 +494,7 @@ sdk_wpa_validate_wpa_ie: # 454: 03ac0f00 # Function @ .irom0.text+0x458 + .balign 4 .Lfunc002: l8ui a7, a2, 1 /* [arg0+0x1] */ # 458: 720201 l8ui a5, a2, 5 /* [arg0+0x5] */ # 45b: 520205 bnez a7, .Lbr035 # 45e: cc27 @@ -575,6 +581,7 @@ sdk_wpa_validate_wpa_ie: # (local4): word @ -0x10 # (local5): word @ -0xc # (local6): word[2] @ -0x8 + .balign 4 .global sdk_wpa_parse_kde_ies .type sdk_wpa_parse_kde_ies, @function sdk_wpa_parse_kde_ies: @@ -646,6 +653,7 @@ sdk_wpa_parse_kde_ies: .balign 4 # Function @ .irom0.text+0x5c4 + .balign 4 .global sdk_wpa_auth_uses_mfp .type sdk_wpa_auth_uses_mfp, @function sdk_wpa_auth_uses_mfp: diff --git a/binary_sdk/libwpa/wpa_auth_ie.o b/binary_sdk/libwpa/wpa_auth_ie.o new file mode 100644 index 0000000..158bcf7 Binary files /dev/null and b/binary_sdk/libwpa/wpa_auth_ie.o differ diff --git a/binary_sdk/libwpa/wpa_common.S b/binary_sdk/libwpa/wpa_common.S index 3d2787b..1962134 100644 --- a/binary_sdk/libwpa/wpa_common.S +++ b/binary_sdk/libwpa/wpa_common.S @@ -8,6 +8,7 @@ # 10: 05ac0f00 # Function @ .irom0.text+0x14 + .balign 4 .Lfunc001: movi a3, 0x000fac00 # 14: 31fbff l8ui a7, a2, 1 /* [arg0+0x1] */ # 17: 720201 l8ui a6, a2, 2 /* [arg0+0x2] */ # 1a: 620202 @@ -45,6 +46,7 @@ # 70: 02ac0f00 # Function @ .irom0.text+0x74 + .balign 4 .Lfunc002: movi a3, 0x000fac01 # 74: 31feff l8ui a7, a2, 1 /* [arg0+0x1] */ # 77: 720201 l8ui a6, a2, 2 /* [arg0+0x2] */ # 7a: 620202 @@ -73,6 +75,7 @@ # bc: 05f25000 # Function @ .irom0.text+0xc0 + .balign 4 .Lfunc003: movi a3, 0x0050f200 # c0: 31fbff l8ui a7, a2, 1 /* [arg0+0x1] */ # c3: 720201 l8ui a6, a2, 2 /* [arg0+0x2] */ # c6: 620202 @@ -111,6 +114,7 @@ # 120: 00f25000 # Function @ .irom0.text+0x124 + .balign 4 .Lfunc004: movi a3, 0x0050f201 # 124: 31fdff l8ui a7, a2, 1 /* [arg0+0x1] */ # 127: 720201 l8ui a6, a2, 2 /* [arg0+0x2] */ # 12a: 620202 @@ -147,6 +151,7 @@ # (local4): word @ -0x10 # (local5): word @ -0xc # (local6): word[2] @ -0x8 + .balign 4 .global sdk_wpa_parse_wpa_ie_rsn .type sdk_wpa_parse_wpa_ie_rsn, @function sdk_wpa_parse_wpa_ie_rsn: @@ -322,6 +327,7 @@ sdk_wpa_parse_wpa_ie_rsn: # (local3): word @ -0x14 # (local4): word @ -0x10 # (local5): word[3] @ -0xc + .balign 4 .global sdk_wpa_parse_wpa_ie_wpa .type sdk_wpa_parse_wpa_ie_wpa, @function sdk_wpa_parse_wpa_ie_wpa: @@ -485,6 +491,7 @@ sdk_wpa_parse_wpa_ie_wpa: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_wpa_eapol_key_mic .type sdk_wpa_eapol_key_mic, @function sdk_wpa_eapol_key_mic: @@ -519,6 +526,7 @@ sdk_wpa_eapol_key_mic: # Function @ .irom0.text+0x4dc # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_wpa_compare_rsn_ie .type sdk_wpa_compare_rsn_ie, @function sdk_wpa_compare_rsn_ie: @@ -562,6 +570,7 @@ sdk_wpa_compare_rsn_ie: # (local6): word @ -0xc # (local7): word @ -0x8 # (local8): word @ -0x4 + .balign 4 .global sdk_wpa_pmk_to_ptk .type sdk_wpa_pmk_to_ptk, @function sdk_wpa_pmk_to_ptk: @@ -665,6 +674,7 @@ sdk_wpa_pmk_to_ptk: # (local2): word[10] @ -0x38 # (local3): word @ -0x10 # (local4): word[3] @ -0xc + .balign 4 .global sdk_rsn_pmkid .type sdk_rsn_pmkid, @function sdk_rsn_pmkid: @@ -691,6 +701,7 @@ sdk_rsn_pmkid: ret # 656: 0df0 # Function @ .irom0.text+0x658 + .balign 4 .global sdk_wpa_cipher_key_len .type sdk_wpa_cipher_key_len, @function sdk_wpa_cipher_key_len: @@ -711,6 +722,7 @@ sdk_wpa_cipher_key_len: ret /* 0x00000005 */ # 67a: 0df0 # Function @ .irom0.text+0x67c + .balign 4 .global sdk_wpa_cipher_to_alg .type sdk_wpa_cipher_to_alg, @function sdk_wpa_cipher_to_alg: @@ -743,6 +755,7 @@ sdk_wpa_cipher_to_alg: # 6c8: 00ac0f00 # Function @ .irom0.text+0x6cc + .balign 4 .global sdk_wpa_cipher_to_suite .type sdk_wpa_cipher_to_suite, @function sdk_wpa_cipher_to_suite: @@ -777,6 +790,7 @@ sdk_wpa_cipher_to_suite: .balign 4 # Function @ .irom0.text+0x720 + .balign 4 .global sdk_rsn_cipher_put_suites .type sdk_rsn_cipher_put_suites, @function sdk_rsn_cipher_put_suites: @@ -819,6 +833,7 @@ sdk_rsn_cipher_put_suites: ret # 77e: 0df0 # Function @ .irom0.text+0x780 + .balign 4 .global sdk_wpa_cipher_put_suites .type sdk_wpa_cipher_put_suites, @function sdk_wpa_cipher_put_suites: diff --git a/binary_sdk/libwpa/wpa_common.o b/binary_sdk/libwpa/wpa_common.o new file mode 100644 index 0000000..8e8c348 Binary files /dev/null and b/binary_sdk/libwpa/wpa_common.o differ diff --git a/binary_sdk/libwpa/wpa_debug.S b/binary_sdk/libwpa/wpa_debug.S index a75c77d..16de6a0 100644 --- a/binary_sdk/libwpa/wpa_debug.S +++ b/binary_sdk/libwpa/wpa_debug.S @@ -2,6 +2,8 @@ .section .irom0.text, "ax", @progbits # Function @ .irom0.text+0x0 + .balign 4 + .literal_position .global sdk_eloop_cancel_timeout .type sdk_eloop_cancel_timeout, @function sdk_eloop_cancel_timeout: @@ -9,6 +11,7 @@ sdk_eloop_cancel_timeout: ret /* 0x00000000 */ # 2: 0df0 # Function @ .irom0.text+0x4 + .balign 4 .global sdk_eloop_register_timeout .type sdk_eloop_register_timeout, @function sdk_eloop_register_timeout: diff --git a/binary_sdk/libwpa/wpa_debug.o b/binary_sdk/libwpa/wpa_debug.o new file mode 100644 index 0000000..644652d Binary files /dev/null and b/binary_sdk/libwpa/wpa_debug.o differ diff --git a/binary_sdk/libwpa/wpa_ie.S b/binary_sdk/libwpa/wpa_ie.S index d3aed29..4bfc447 100644 --- a/binary_sdk/libwpa/wpa_ie.S +++ b/binary_sdk/libwpa/wpa_ie.S @@ -7,6 +7,7 @@ # Function @ .irom0.text+0x8 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_wpa_parse_wpa_ie .type sdk_wpa_parse_wpa_ie, @function sdk_wpa_parse_wpa_ie: @@ -31,6 +32,7 @@ sdk_wpa_parse_wpa_ie: # 3c: 03ac0f00 # Function @ .irom0.text+0x40 + .balign 4 .Lfunc001: l8ui a7, a2, 1 /* [arg0+0x1] */ # 40: 720201 l8ui a5, a2, 5 /* [arg0+0x5] */ # 43: 520205 bnez a7, .Lbr003 # 46: cc27 @@ -117,6 +119,7 @@ sdk_wpa_parse_wpa_ie: # (local4): word @ -0x10 # (local5): word @ -0xc # (local6): word[2] @ -0x8 + .balign 4 .global sdk_wpa_supplicant_parse_ies .type sdk_wpa_supplicant_parse_ies, @function sdk_wpa_supplicant_parse_ies: @@ -188,6 +191,7 @@ sdk_wpa_supplicant_parse_ies: .balign 4 # Function @ .irom0.text+0x1ac + .balign 4 .Lfunc002: movi a7, 23 /* 0x00000017 */ # 1ac: 1c77 bgeu a7, a3, .Lbr023 # 1ae: 37b774 movi a9, 4 /* 0x00000004 */ # 1b1: 0c49 @@ -258,6 +262,7 @@ sdk_wpa_supplicant_parse_ies: .balign 4 # Function @ .irom0.text+0x264 + .balign 4 .Lfunc003: movi a7, 21 /* 0x00000015 */ # 264: 1c57 bgeu a7, a3, .Lbr035 # 266: 37b771 movi a10, -84 /* 0xffffffac */ # 269: a2afac @@ -326,6 +331,7 @@ sdk_wpa_supplicant_parse_ies: # Local variables/stack: # (local0): word[4] @ -0x20 # (local1): word[4] @ -0x10 + .balign 4 .global sdk_wpa_gen_wpa_ie .type sdk_wpa_gen_wpa_ie, @function sdk_wpa_gen_wpa_ie: diff --git a/binary_sdk/libwpa/wpa_ie.o b/binary_sdk/libwpa/wpa_ie.o new file mode 100644 index 0000000..ed3f38a Binary files /dev/null and b/binary_sdk/libwpa/wpa_ie.o differ diff --git a/binary_sdk/libwpa/wpa_main.S b/binary_sdk/libwpa/wpa_main.S index 531fbce..7540b9b 100644 --- a/binary_sdk/libwpa/wpa_main.S +++ b/binary_sdk/libwpa/wpa_main.S @@ -21,6 +21,7 @@ # (local4): word @ -0x14 # (local5): word @ -0x10 # (local6): word[3] @ -0xc + .balign 4 .global sdk_ppInstallKey .type sdk_ppInstallKey, @function sdk_ppInstallKey: @@ -102,6 +103,7 @@ sdk_ppInstallKey: # Function @ .irom0.text+0xe8 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .Lfunc001: mov a3, a2 /* arg0 */ # e8: 3d02 movi a2, sdk_g_ic # ea: 21fdff addi sp, sp, -16 /* (local0) */ # ed: 12c1f0 @@ -123,6 +125,7 @@ sdk_ppInstallKey: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .Lfunc002: movi a3, 192 /* 0x000000c0 */ # 114: 32a0c0 addi sp, sp, -16 /* (local0) */ # 117: 12c1f0 s32i a12, sp, 4 /* a12 -> [(local1)] */ # 11a: c911 @@ -151,6 +154,7 @@ sdk_ppInstallKey: # Function @ .irom0.text+0x154 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_wpa_config_profile .type sdk_wpa_config_profile, @function sdk_wpa_config_profile: @@ -181,6 +185,7 @@ sdk_wpa_config_profile: # Local variables/stack: # (local0): word[4] @ -0x20 # (local1): word[4] @ -0x10 + .balign 4 .global sdk_wpa_config_bss .type sdk_wpa_config_bss, @function sdk_wpa_config_bss: @@ -212,6 +217,7 @@ sdk_wpa_config_bss: .literal_position # 1d0: 00000000 # Function @ .irom0.text+0x1d4 + .balign 4 .global sdk_wpa_config_assoc_ie .type sdk_wpa_config_assoc_ie, @function sdk_wpa_config_assoc_ie: @@ -227,6 +233,7 @@ sdk_wpa_config_assoc_ie: # 1ec: 00000000 # Function @ .irom0.text+0x1f0 + .balign 4 .global sdk_dhcp_bind_check .type sdk_dhcp_bind_check, @function sdk_dhcp_bind_check: @@ -266,6 +273,7 @@ sdk_dhcp_bind_check: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .global sdk_eagle_auth_done .type sdk_eagle_auth_done, @function sdk_eagle_auth_done: @@ -348,6 +356,7 @@ sdk_eagle_auth_done: # Function @ .irom0.text+0x31c # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_wpa_neg_complete .type sdk_wpa_neg_complete, @function sdk_wpa_neg_complete: @@ -370,6 +379,7 @@ sdk_wpa_neg_complete: # Function @ .irom0.text+0x34c # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_wpa_attach .type sdk_wpa_attach, @function sdk_wpa_attach: diff --git a/binary_sdk/libwpa/wpa_main.o b/binary_sdk/libwpa/wpa_main.o new file mode 100644 index 0000000..fc6a3e1 Binary files /dev/null and b/binary_sdk/libwpa/wpa_main.o differ diff --git a/binary_sdk/libwpa/wpabuf.S b/binary_sdk/libwpa/wpabuf.S index cc02f6d..b551cc0 100644 --- a/binary_sdk/libwpa/wpabuf.S +++ b/binary_sdk/libwpa/wpabuf.S @@ -2,6 +2,8 @@ .section .text, "ax", @progbits # Function @ .text+0x0 + .balign 4 + .literal_position .Lfunc001: l32i a4, a2, 8 /* [arg0+0x8] */ # 0: 4822 addi a3, a2, 12 /* arg0+0xc */ # 2: cb32 moveqz a4, a3, a4 # 4: 404383 @@ -16,6 +18,7 @@ # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .Lfunc002: addi sp, sp, -16 /* (local0) */ # 14: 12c1f0 s32i a0, sp, 0 /* a0 -> [(local0)] */ # 17: 0901 s32i a12, sp, 4 /* a12 -> [(local1)] */ # 19: c911 @@ -39,6 +42,7 @@ # Function @ .text+0x40 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .Lfunc003: mov a6, a3 /* arg1 */ # 40: 6d03 addi sp, sp, -16 /* (local0) */ # 42: 12c1f0 s32i a0, sp, 0 /* a0 -> [(local0)] */ # 45: 0901 @@ -59,6 +63,7 @@ # Function @ .irom0.text+0x8 # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .Lfunc004: movi a2, .Lstr001 # 8: 21feff addi sp, sp, -16 /* (local0) */ # b: 12c1f0 s32i a0, sp, 0 /* a0 -> [(local0)] */ # e: 0901 @@ -79,6 +84,7 @@ # (local1): word @ -0xc # (local2): word @ -0x8 # (local3): word @ -0x4 + .balign 4 .global sdk_wpabuf_resize .type sdk_wpabuf_resize, @function sdk_wpabuf_resize: @@ -150,6 +156,7 @@ sdk_wpabuf_resize: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_wpabuf_alloc .type sdk_wpabuf_alloc, @function sdk_wpabuf_alloc: @@ -176,6 +183,7 @@ sdk_wpabuf_alloc: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .global sdk_wpabuf_alloc_ext_data .type sdk_wpabuf_alloc_ext_data, @function sdk_wpabuf_alloc_ext_data: @@ -206,6 +214,7 @@ sdk_wpabuf_alloc_ext_data: # (local1): word @ -0xc # (local2): word @ -0x8 # (local3): word @ -0x4 + .balign 4 .global sdk_wpabuf_alloc_copy .type sdk_wpabuf_alloc_copy, @function sdk_wpabuf_alloc_copy: @@ -238,6 +247,7 @@ sdk_wpabuf_alloc_copy: # (local0): word @ -0x10 # (local1): word @ -0xc # (local2): word[2] @ -0x8 + .balign 4 .global sdk_wpabuf_dup .type sdk_wpabuf_dup, @function sdk_wpabuf_dup: @@ -270,6 +280,7 @@ sdk_wpabuf_dup: # Local variables/stack: # (local0): word @ -0x10 # (local1): word[3] @ -0xc + .balign 4 .global sdk_wpabuf_free .type sdk_wpabuf_free, @function sdk_wpabuf_free: @@ -298,6 +309,7 @@ sdk_wpabuf_free: # (local2): word @ -0x18 # (local3): word @ -0x14 # (local4): word[4] @ -0x10 + .balign 4 .global sdk_wpabuf_put .type sdk_wpabuf_put, @function sdk_wpabuf_put: @@ -337,6 +349,7 @@ sdk_wpabuf_put: # (local1): word @ -0xc # (local2): word @ -0x8 # (local3): word @ -0x4 + .balign 4 .global sdk_wpabuf_concat .type sdk_wpabuf_concat, @function sdk_wpabuf_concat: @@ -389,6 +402,7 @@ sdk_wpabuf_concat: # (local2): word @ -0x18 # (local3): word @ -0x14 # (local4): word[4] @ -0x10 + .balign 4 .global sdk_wpabuf_zeropad .type sdk_wpabuf_zeropad, @function sdk_wpabuf_zeropad: @@ -447,6 +461,7 @@ sdk_wpabuf_zeropad: # (local7): word @ -0x14 # (local8): word @ -0x10 # (local9): word[3] @ -0xc + .balign 4 .global wpabuf_printf .type wpabuf_printf, @function wpabuf_printf: diff --git a/binary_sdk/libwpa/wpabuf.o b/binary_sdk/libwpa/wpabuf.o new file mode 100644 index 0000000..5959ec7 Binary files /dev/null and b/binary_sdk/libwpa/wpabuf.o differ diff --git a/binary_sdk/libwpa/wpas_glue.S b/binary_sdk/libwpa/wpas_glue.S index 0e88376..1e321da 100644 --- a/binary_sdk/libwpa/wpas_glue.S +++ b/binary_sdk/libwpa/wpas_glue.S @@ -10,6 +10,7 @@ # (local1): word @ -0xc # (local2): word @ -0x8 # (local3): word @ -0x4 + .balign 4 .Lfunc001: addi sp, sp, -16 /* (local0) */ # 8: 12c1f0 s32i a12, sp, 8 /* a12 -> [(local2)] */ # b: c921 l32i a8, a2, 0x210 /* [arg0+0x210] */ # d: 822284 @@ -69,6 +70,7 @@ # (local4): word @ -0x10 # (local5): word @ -0xc # (local6): word[2] @ -0x8 + .balign 4 .global sdk_wpa_sm_alloc_eapol .type sdk_wpa_sm_alloc_eapol, @function sdk_wpa_sm_alloc_eapol: @@ -102,6 +104,7 @@ sdk_wpa_sm_alloc_eapol: # Function @ .irom0.text+0xbc # Local variables/stack: # (local0): word[4] @ -0x10 + .balign 4 .global sdk_wpa_sm_deauthenticate .type sdk_wpa_sm_deauthenticate, @function sdk_wpa_sm_deauthenticate: @@ -118,6 +121,7 @@ sdk_wpa_sm_deauthenticate: .balign 4 # Function @ .irom0.text+0xd8 + .balign 4 .global sdk_wpa_sm_mlme_setprotection .type sdk_wpa_sm_mlme_setprotection, @function sdk_wpa_sm_mlme_setprotection: @@ -125,6 +129,7 @@ sdk_wpa_sm_mlme_setprotection: ret /* 0x00000000 */ # da: 0df0 # Function @ .irom0.text+0xdc + .balign 4 .global sdk_wpa_sm_get_beacon_ie .type sdk_wpa_sm_get_beacon_ie, @function sdk_wpa_sm_get_beacon_ie: @@ -132,6 +137,7 @@ sdk_wpa_sm_get_beacon_ie: ret /* 0x00000000 */ # de: 0df0 # Function @ .irom0.text+0xe0 + .balign 4 .global sdk_wpa_sm_disassociate .type sdk_wpa_sm_disassociate, @function sdk_wpa_sm_disassociate: diff --git a/binary_sdk/libwpa/wpas_glue.o b/binary_sdk/libwpa/wpas_glue.o new file mode 100644 index 0000000..cb1126c Binary files /dev/null and b/binary_sdk/libwpa/wpas_glue.o differ diff --git a/binary_sdk/libwpa_stage1/aes-internal-dec.S b/binary_sdk/libwpa_stage1/aes-internal-dec.S new file mode 100644 index 0000000..d7c11a9 --- /dev/null +++ b/binary_sdk/libwpa_stage1/aes-internal-dec.S @@ -0,0 +1,571 @@ + + .section .bss, "aw", @nobits + +.Ldata001: .space 176 + + .section .irom0.text, "ax", @progbits + + .literal_position # 0: 00000000 + # 4: 00000000 + # 8: 00000000 + +# Function @ .irom0.text+0xc +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global rijndaelKeySetupDec + .type rijndaelKeySetupDec, @function +rijndaelKeySetupDec: + addi sp, sp, -16 /* (local0) */ # c: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # f: c911 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 11: 0901 + mov a12, a2 /* arg0 */ # 13: cd02 + call0 rijndaelKeySetupEnc # 15: 01fcffc0 + # 19: 0000 + mov a6, a12 /* arg0 */ # 1b: 6d0c + movi a3, 40 /* 0x00000028 */ # 1d: 2c83 + movi a2, 0 /* 0x00000000 */ # 1f: 0c02 + movi a0, 160 /* 0x000000a0 */ # 21: 02a0a0 + add a0, a12, a0 /* arg0+0xa0 */ # 24: 0a0c +.Lbr001: addi a3, a3, -4 # 26: 32c3fc + addi a2, a2, 4 # 29: 4b22 + l32i a11, a6, 0 # 2b: b806 + l32i a4, a0, 0 # 2d: 4800 + addi a0, a0, -16 # 2f: 02c0f0 + s32i a4, a6, 0 # 32: 4906 + l32i a10, a0, 20 # 34: a850 + s32i a11, a0, 16 # 36: b940 + l32i a9, a6, 4 # 38: 9816 + s32i a10, a6, 4 # 3a: a916 + l32i a8, a0, 24 # 3c: 8860 + s32i a9, a0, 20 # 3e: 9950 + l32i a7, a6, 8 # 40: 7826 + s32i a8, a6, 8 # 42: 8926 + l32i a5, a0, 28 # 44: 5870 + s32i a7, a0, 24 # 46: 7960 + l32i a4, a6, 12 # 48: 4836 + s32i a5, a6, 12 # 4a: 5936 + s32i a4, a0, 28 # 4c: 4970 + addi a6, a6, 16 # 4e: 62c610 + blt a2, a3, .Lbr001 # 51: 3722d1 + movi a2, 1 /* 0x00000001 */ # 54: 0c12 + movi a9, Te0 # 56: 91eaff + movi a8, Td0 # 59: 81eaff + addi a12, a12, 16 /* arg0+0x10 */ # 5c: c2cc10 + mov a0, a12 /* arg0+0x10 */ # 5f: 0d0c +.Lbr002: addi a2, a2, 1 # 61: 1b22 + addi a6, a12, 16 # 63: 62cc10 + addi a12, a12, 16 # 66: c2cc10 +.Lbr003: l32i a10, a0, 0 # 69: a800 + ssai 24 # 6b: 104840 + extui a11, a10, 0, 8 # 6e: a0b074 + extui a7, a10, 8, 8 # 71: a07874 + extui a5, a10, 24, 8 # 74: a05875 + addx4 a5, a5, a9 # 77: 9055a0 + addx4 a7, a7, a9 # 7a: 9077a0 + addx4 a11, a11, a9 # 7d: 90bba0 + l32i a11, a11, 0 # 80: b80b + l32i a7, a7, 0 # 82: 7807 + l32i a5, a5, 0 # 84: 5805 + extui a10, a10, 16, 8 # 86: a0a075 + extui a5, a5, 8, 8 # 89: 505874 + extui a7, a7, 8, 8 # 8c: 707874 + extui a11, a11, 8, 8 # 8f: b0b874 + addx4 a10, a10, a9 # 92: 90aaa0 + l32i a10, a10, 0 # 95: a80a + addx4 a11, a11, a8 # 97: 80bba0 + addx4 a7, a7, a8 # 9a: 8077a0 + addx4 a5, a5, a8 # 9d: 8055a0 + l32i a5, a5, 0 # a0: 5805 + l32i a7, a7, 0 # a2: 7807 + l32i a11, a11, 0 # a4: b80b + extui a10, a10, 8, 8 # a6: a0a874 + src a11, a11, a11 # a9: b0bb81 + addx4 a10, a10, a8 # ac: 80aaa0 + l32i a10, a10, 0 # af: a80a + ssai 16 # b1: 104040 + src a7, a7, a7 # b4: 707781 + xor a7, a7, a11 # b7: b07730 + ssai 8 # ba: 004840 + src a10, a10, a10 # bd: a0aa81 + xor a5, a5, a10 # c0: a05530 + xor a5, a5, a7 # c3: 705530 + s32i a5, a0, 0 # c6: 5900 + addi a0, a0, 4 # c8: 4b00 + bne a0, a6, .Lbr003 # ca: 67909b + mov a0, a12 # cd: 0d0c + bnei a2, 10, .Lbr002 # cf: 66928e + l32i a12, sp, 4 /* [(local1)] */ # d2: c811 + l32i a0, sp, 0 /* [(local0)] */ # d4: 0801 + addi sp, sp, 16 /* (top of frame) */ # d6: 12c110 + ret # d9: 0df0 + + .literal_position # dc: 00000000 + # e0: 00000000 + +# Function @ .irom0.text+0xe4 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global aes_decrypt_init + .type aes_decrypt_init, @function +aes_decrypt_init: + addi sp, sp, -16 /* (local0) */ # e4: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # e7: 0901 + beqi a3, 16, .Lbr004 # e9: 26b304 + movi a2, 0 /* 0x00000000 */ # ec: 0c02 + j .Lbr005 # ee: 860200 +.Lbr004: mov a3, a2 /* arg0 */ # f1: 3d02 + movi a2, .Ldata001 # f3: 21faff + call0 rijndaelKeySetupDec # f6: 050000 + movi a2, .Ldata001 # f9: 21f9ff +.Lbr005: l32i a0, sp, 0 /* [(local0)] */ # fc: 0801 + addi sp, sp, 16 /* (top of frame) */ # fe: 12c110 + ret # 101: 0df0 + + .literal_position # 104: 00000000 + # 108: 00000000 + # 10c: 00000000 + # 110: 00000000 + # 114: 00000000 + +# Function @ .irom0.text+0x118 +# Local variables/stack: +# (local0): word @ -0x40 +# (local1): word @ -0x3c +# (local2): word @ -0x38 +# (local3): word @ -0x34 +# (local4): word @ -0x30 +# (local5): word @ -0x2c +# (local6): word @ -0x28 +# (local7): word @ -0x24 +# (local8): word @ -0x20 +# (local9): word @ -0x1c +# (local10): word[4] @ -0x18 +# (local11): word[2] @ -0x8 + .balign 4 +.Lfunc001: movi a11, Td0 # 118: b1fbff + mov a5, a12 # 11b: 5d0c + addi sp, sp, -64 /* (local0) */ # 11d: 12c1c0 + mov a12, a2 /* arg0 */ # 120: cd02 + l8ui a6, a3, 1 /* [arg1+0x1] */ # 122: 620301 + l8ui a7, a3, 9 /* [arg1+0x9] */ # 125: 720309 + l8ui a8, a3, 14 /* [arg1+0xe] */ # 128: 82030e + s32i a0, sp, 8 /* a0 -> [(local2)] */ # 12b: 0921 + s32i a15, sp, 24 /* a15 -> [(local6)] */ # 12d: f961 + s32i a4, sp, 4 /* arg2 -> [(local1)] */ # 12f: 4911 + s32i a14, sp, 20 /* a14 -> [(local5)] */ # 131: e951 + s32i a13, sp, 16 /* a13 -> [(local4)] */ # 133: d941 + s32i a5, sp, 12 /* a5 -> [(local3)] */ # 135: 5931 + l8ui a13, a3, 3 /* [arg1+0x3] */ # 137: d20303 + l8ui a14, a3, 11 /* [arg1+0xb] */ # 13a: e2030b + l8ui a4, a3, 0 /* [arg1] */ # 13d: 420300 + l32i a15, a2, 8 /* [arg0+0x8] */ # 140: f822 + l32i a0, a2, 0 /* [arg0] */ # 142: 0802 + slli a8, a8, 8 # 144: 808811 + slli a7, a7, 16 # 147: 007711 + slli a6, a6, 16 # 14a: 006611 + l32i a2, a2, 4 /* [arg0+0x4] */ # 14d: 2812 + slli a4, a4, 24 # 14f: 804401 + xor a14, a14, a15 # 152: f0ee30 + xor a4, a4, a6 # 155: 604430 + xor a13, a13, a0 # 158: 00dd30 + l8ui a6, a3, 8 /* [arg1+0x8] */ # 15b: 620308 + l8ui a0, a3, 4 /* [arg1+0x4] */ # 15e: 020304 + l8ui a15, a3, 7 /* [arg1+0x7] */ # 161: f20307 + slli a0, a0, 24 # 164: 800001 + xor a15, a15, a2 # 167: 20ff30 + slli a6, a6, 24 # 16a: 806601 + xor a6, a6, a7 # 16d: 706630 + l8ui a2, a3, 5 /* [arg1+0x5] */ # 170: 220305 + l8ui a7, a3, 13 /* [arg1+0xd] */ # 173: 72030d + slli a2, a2, 16 # 176: 002211 + xor a0, a0, a2 # 179: 200030 + l8ui a2, a3, 12 /* [arg1+0xc] */ # 17c: 22030c + slli a7, a7, 16 # 17f: 007711 + slli a2, a2, 24 # 182: 802201 + xor a2, a2, a7 # 185: 702230 + xor a2, a2, a8 # 188: 802230 + l8ui a7, a3, 10 /* [arg1+0xa] */ # 18b: 72030a + l8ui a8, a3, 6 /* [arg1+0x6] */ # 18e: 820306 + slli a7, a7, 8 # 191: 807711 + xor a6, a6, a7 # 194: 706630 + slli a8, a8, 8 # 197: 808811 + l8ui a7, a3, 2 /* [arg1+0x2] */ # 19a: 720302 + xor a0, a0, a8 # 19d: 800030 + xor a15, a15, a0 # 1a0: 00ff30 + slli a7, a7, 8 # 1a3: 807711 + l8ui a0, a3, 15 /* [arg1+0xf] */ # 1a6: 02030f + xor a4, a4, a7 # 1a9: 704430 + xor a13, a13, a4 # 1ac: 40dd30 + l32i a4, a12, 12 /* [arg0+0xc] */ # 1af: 483c + xor a14, a14, a6 # 1b1: 60ee30 + xor a0, a0, a4 # 1b4: 400030 + xor a0, a0, a2 # 1b7: 200030 + movi a2, 5 /* 0x00000005 */ # 1ba: 0c52 +.Lbr006: addi a2, a2, -1 # 1bc: 0b22 + ssai 8 # 1be: 004840 + extui a5, a14, 24, 8 # 1c1: e05875 + extui a7, a15, 16, 8 # 1c4: f07075 + extui a8, a14, 0, 8 # 1c7: e08074 + extui a6, a0, 8, 8 # 1ca: 006874 + extui a10, a13, 16, 8 # 1cd: d0a075 + extui a3, a15, 0, 8 # 1d0: f03074 + extui a9, a0, 16, 8 # 1d3: 009075 + extui a4, a14, 8, 8 # 1d6: e04874 + addx4 a4, a4, a11 # 1d9: b044a0 + addx4 a9, a9, a11 # 1dc: b099a0 + addx4 a3, a3, a11 # 1df: b033a0 + addx4 a10, a10, a11 # 1e2: b0aaa0 + addx4 a6, a6, a11 # 1e5: b066a0 + addx4 a8, a8, a11 # 1e8: b088a0 + addx4 a7, a7, a11 # 1eb: b077a0 + addx4 a5, a5, a11 # 1ee: b055a0 + l32i a5, a5, 0 # 1f1: 5805 + l32i a7, a7, 0 # 1f3: 7807 + l32i a8, a8, 0 # 1f5: 8808 + l32i a6, a6, 0 # 1f7: 6806 + l32i a10, a10, 0 # 1f9: a80a + l32i a3, a3, 0 # 1fb: 3803 + l32i a9, a9, 0 # 1fd: 9809 + l32i a4, a4, 0 # 1ff: 4804 + src a9, a9, a9 # 201: 909981 + ssai 16 # 204: 104040 + src a4, a4, a4 # 207: 404481 + s32i a4, sp, 32 /* a4 -> [(local8)] */ # 20a: 4981 + ssai 24 # 20c: 104840 + extui a4, a13, 8, 8 # 20f: d04874 + src a3, a3, a3 # 212: 303381 + s32i a3, sp, 36 /* a3 -> [(local9)] */ # 215: 3991 + ssai 8 # 217: 004840 + addx4 a4, a4, a11 # 21a: b044a0 + l32i a4, a4, 0 # 21d: 4804 + src a10, a10, a10 # 21f: a0aa81 + extui a3, a15, 8, 8 # 222: f03874 + addx4 a3, a3, a11 # 225: b033a0 + ssai 16 # 228: 104040 + src a6, a6, a6 # 22b: 606681 + l32i a3, a3, 0 # 22e: 3803 + ssai 24 # 230: 104840 + src a8, a8, a8 # 233: 808881 + s32i a8, sp, 40 /* a8 -> [(local10)] */ # 236: 89a1 + ssai 8 # 238: 004840 + extui a8, a14, 16, 8 # 23b: e08075 + src a7, a7, a7 # 23e: 707781 + l32i a14, a12, 24 # 241: e86c + xor a5, a5, a7 # 243: 705530 + ssai 16 # 246: 104040 + addx4 a8, a8, a11 # 249: b088a0 + l32i a8, a8, 0 # 24c: 8808 + src a4, a4, a4 # 24e: 404481 + extui a7, a0, 24, 8 # 251: 007875 + ssai 24 # 254: 104840 + xor a4, a4, a5 # 257: 504430 + addx4 a7, a7, a11 # 25a: b077a0 + l32i a7, a7, 0 # 25d: 7807 + extui a5, a0, 0, 8 # 25f: 005074 + addx4 a5, a5, a11 # 262: b055a0 + l32i a5, a5, 0 # 265: 5805 + l32i a0, a12, 16 # 267: 084c + src a5, a5, a5 # 269: 505581 + xor a14, a14, a5 # 26c: 50ee30 + ssai 8 # 26f: 004840 + src a8, a8, a8 # 272: 808881 + xor a14, a14, a4 # 275: 40ee30 + ssai 16 # 278: 104040 + xor a7, a7, a8 # 27b: 807730 + extui a4, a13, 0, 8 # 27e: d04074 + addx4 a4, a4, a11 # 281: b044a0 + extui a8, a15, 24, 8 # 284: f08875 + src a3, a3, a3 # 287: 303381 + l32i a15, a12, 20 # 28a: f85c + ssai 24 # 28c: 104840 + l32i a4, a4, 0 # 28f: 4804 + xor a3, a3, a7 # 291: 703330 + addx4 a8, a8, a11 # 294: b088a0 + l32i a8, a8, 0 # 297: 8808 + l32i a7, sp, 32 /* [(local8)] */ # 299: 7881 + xor a8, a8, a10 # 29b: a08830 + src a4, a4, a4 # 29e: 404481 + xor a6, a6, a8 # 2a1: 806630 + extui a8, a13, 24, 8 # 2a4: d08875 + l32i a13, a12, 28 # 2a7: d87c + addx4 a8, a8, a11 # 2a9: b088a0 + addi a12, a12, 32 # 2ac: c2cc20 + l32i a8, a8, 0 # 2af: 8808 + xor a13, a13, a4 # 2b1: 40dd30 + xor a8, a8, a9 # 2b4: 908830 + xor a7, a7, a8 # 2b7: 807730 + l32i a8, sp, 36 /* [(local9)] */ # 2ba: 8891 + xor a13, a13, a3 # 2bc: 30dd30 + xor a0, a0, a8 # 2bf: 800030 + xor a0, a0, a7 # 2c2: 700030 + l32i a7, sp, 40 /* [(local10)] */ # 2c5: 78a1 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 2c7: 0901 + xor a15, a15, a7 # 2c9: 70ff30 + xor a15, a15, a6 # 2cc: 60ff30 + beqz a2, .Lbr007 # 2cf: 162210 + ssai 8 # 2d2: 004840 + extui a5, a14, 24, 8 # 2d5: e05875 + extui a4, a15, 16, 8 # 2d8: f04075 + extui a7, a14, 0, 8 # 2db: e07074 + extui a6, a13, 8, 8 # 2de: d06874 + extui a3, a0, 16, 8 # 2e1: 003075 + extui a8, a15, 0, 8 # 2e4: f08074 + extui a9, a14, 8, 8 # 2e7: e09874 + extui a10, a13, 16, 8 # 2ea: d0a075 + addx4 a10, a10, a11 # 2ed: b0aaa0 + addx4 a9, a9, a11 # 2f0: b099a0 + addx4 a8, a8, a11 # 2f3: b088a0 + addx4 a3, a3, a11 # 2f6: b033a0 + addx4 a6, a6, a11 # 2f9: b066a0 + addx4 a7, a7, a11 # 2fc: b077a0 + addx4 a4, a4, a11 # 2ff: b044a0 + addx4 a5, a5, a11 # 302: b055a0 + l32i a5, a5, 0 # 305: 5805 + l32i a4, a4, 0 # 307: 4804 + l32i a7, a7, 0 # 309: 7807 + l32i a6, a6, 0 # 30b: 6806 + l32i a3, a3, 0 # 30d: 3803 + l32i a8, a8, 0 # 30f: 8808 + l32i a9, a9, 0 # 311: 9809 + l32i a10, a10, 0 # 313: a80a + extui a14, a14, 16, 8 # 315: e0e075 + src a10, a10, a10 # 318: a0aa81 + addx4 a14, a14, a11 # 31b: b0eea0 + ssai 16 # 31e: 104040 + src a9, a9, a9 # 321: 909981 + ssai 24 # 324: 104840 + src a8, a8, a8 # 327: 808881 + l32i a14, a14, 0 # 32a: e80e + ssai 8 # 32c: 004840 + src a3, a3, a3 # 32f: 303381 + ssai 16 # 332: 104040 + src a6, a6, a6 # 335: 606681 + ssai 24 # 338: 104840 + src a7, a7, a7 # 33b: 707781 + ssai 8 # 33e: 004840 + src a4, a4, a4 # 341: 404481 + xor a5, a5, a4 # 344: 405530 + extui a4, a0, 8, 8 # 347: 004874 + addx4 a4, a4, a11 # 34a: b044a0 + l32i a4, a4, 0 # 34d: 4804 + ssai 16 # 34f: 104040 + src a4, a4, a4 # 352: 404481 + xor a4, a4, a5 # 355: 504430 + ssai 24 # 358: 104840 + extui a5, a13, 0, 8 # 35b: d05074 + extui a13, a13, 24, 8 # 35e: d0d875 + addx4 a5, a5, a11 # 361: b055a0 + l32i a5, a5, 0 # 364: 5805 + addx4 a13, a13, a11 # 366: b0dda0 + src a5, a5, a5 # 369: 505581 + l32i a13, a13, 0 # 36c: d80d + ssai 8 # 36e: 004840 + src a14, a14, a14 # 371: e0ee81 + xor a13, a13, a14 # 374: e0dd30 + extui a14, a15, 24, 8 # 377: f0e875 + addx4 a14, a14, a11 # 37a: b0eea0 + l32i a14, a14, 0 # 37d: e80e + ssai 16 # 37f: 104040 + xor a14, a14, a3 # 382: 30ee30 + extui a3, a15, 8, 8 # 385: f03874 + xor a6, a6, a14 # 388: e06630 + l32i a15, a12, 4 # 38b: f81c + extui a14, a0, 24, 8 # 38d: 00e875 + addx4 a3, a3, a11 # 390: b033a0 + l32i a3, a3, 0 # 393: 3803 + addx4 a14, a14, a11 # 395: b0eea0 + l32i a14, a14, 0 # 398: e80e + xor a15, a15, a7 # 39a: 70ff30 + xor a15, a15, a6 # 39d: 60ff30 + src a3, a3, a3 # 3a0: 303381 + xor a3, a3, a13 # 3a3: d03330 + xor a14, a14, a10 # 3a6: a0ee30 + l32i a13, a12, 0 # 3a9: d80c + xor a14, a9, a14 # 3ab: e0e930 + xor a13, a13, a8 # 3ae: 80dd30 + xor a13, a13, a14 # 3b1: e0dd30 + l32i a14, a12, 8 # 3b4: e82c + ssai 24 # 3b6: 104840 + xor a14, a14, a5 # 3b9: 50ee30 + xor a14, a14, a4 # 3bc: 40ee30 + extui a4, a0, 0, 8 # 3bf: 004074 + addx4 a4, a4, a11 # 3c2: b044a0 + l32i a4, a4, 0 # 3c5: 4804 + l32i a0, a12, 12 # 3c7: 083c + src a4, a4, a4 # 3c9: 404481 + xor a0, a0, a4 # 3cc: 400030 + xor a0, a0, a3 # 3cf: 300030 + j .Lbr006 # 3d2: 8679ff +.Lbr007: movi a2, 256 /* 0x00000100 */ # 3d5: 22a100 + call0 malloc # 3d8: 014dffc0 + # 3dc: 0000 + s32i a2, sp, 28 /* a2 -> [(local7)] */ # 3de: 2971 + movi a3, Td4s_rom # 3e0: 314aff + movi a4, 256 /* 0x00000100 */ # 3e3: 42a100 + call0 memcpy # 3e6: 014affc0 + # 3ea: 0000 + extui a6, a13, 24, 8 # 3ec: d06875 + extui a0, a14, 24, 8 # 3ef: e00875 + extui a4, a13, 0, 8 # 3f2: d04074 + extui a3, a15, 16, 8 # 3f5: f03075 + extui a11, a15, 8, 8 # 3f8: f0b874 + extui a10, a14, 16, 8 # 3fb: e0a075 + l32i a9, sp, 0 /* [(local0)] */ # 3fe: 9801 + l32i a2, sp, 28 /* [(local7)] */ # 400: 2871 + extui a5, a9, 24, 8 # 402: 905875 + extui a7, a9, 16, 8 # 405: 907075 + extui a8, a9, 8, 8 # 408: 908874 + add a10, a2, a10 # 40b: aaa2 + add a11, a2, a11 # 40d: bab2 + add a3, a2, a3 # 40f: 3a32 + add a4, a2, a4 # 411: 4a42 + add a0, a2, a0 # 413: 0a02 + add a8, a2, a8 # 415: 8a82 + add a7, a2, a7 # 417: 7a72 + add a6, a2, a6 # 419: 6a62 + add a5, a2, a5 # 41b: 5a52 + l8ui a5, a5, 0 # 41d: 520500 + s32i a6, sp, 32 /* a6 -> [(local8)] */ # 420: 6981 + s32i a7, sp, 56 /* a7 -> [(local11)] */ # 422: 79e1 + s32i a8, sp, 36 /* a8 -> [(local9)] */ # 424: 8991 + extui a9, a9, 0, 8 # 426: 909074 + extui a8, a13, 16, 8 # 429: d08075 + extui a7, a13, 8, 8 # 42c: d07874 + extui a6, a14, 0, 8 # 42f: e06074 + add a6, a2, a6 # 432: 6a62 + add a7, a2, a7 # 434: 7a72 + slli a5, a5, 24 # 436: 805501 + add a8, a2, a8 # 439: 8a82 + add a9, a2, a9 # 43b: 9a92 + s32i a9, sp, 40 /* a9 -> [(local10)] */ # 43d: 99a1 + extui a13, a15, 0, 8 # 43f: f0d074 + extui a9, a15, 24, 8 # 442: f09875 + add a13, a2, a13 # 445: dad2 + extui a15, a14, 8, 8 # 447: e0f874 + add a9, a2, a9 # 44a: 9a92 + l8ui a14, a13, 0 # 44c: e20d00 + add a15, a2, a15 # 44f: faf2 + l8ui a15, a15, 0 # 451: f20f00 + l32i a13, a12, 0 # 454: d80c + slli a15, a15, 8 # 456: 80ff11 + xor a14, a14, a15 # 459: f0ee30 + l8ui a15, a8, 0 # 45c: f20800 + l32i a8, sp, 4 /* [(local1)] */ # 45f: 8811 + slli a15, a15, 16 # 461: 00ff11 + xor a15, a15, a5 # 464: 50ff30 + xor a14, a14, a15 # 467: f0ee30 + xor a13, a13, a14 # 46a: e0dd30 + s8i a13, a8, 3 /* a13 -> [[(local1)]+0x3] */ # 46d: d24803 + extui a14, a13, 16, 16 # 470: d0e0f5 + extui a15, a13, 24, 8 # 473: d0f875 + s8i a15, a8, 0 /* a15 -> [[(local1)]] */ # 476: f24800 + s8i a14, a8, 1 /* a14 -> [[(local1)]+0x1] */ # 479: e24801 + l32i a15, sp, 36 /* [(local9)] */ # 47c: f891 + srli a13, a13, 8 # 47e: d0d841 + s8i a13, a8, 2 /* a13 -> [[(local1)]+0x2] */ # 481: d24802 + l32i a5, a12, 4 # 484: 581c + l8ui a7, a7, 0 # 486: 720700 + l8ui a6, a6, 0 # 489: 620600 + slli a7, a7, 8 # 48c: 807711 + xor a6, a6, a7 # 48f: 706630 + l32i a7, sp, 56 /* [(local11)] */ # 492: 78e1 + l8ui a9, a9, 0 # 494: 920900 + l8ui a7, a7, 0 /* [[(local11)]] */ # 497: 720700 + slli a9, a9, 24 # 49a: 809901 + slli a7, a7, 16 # 49d: 007711 + xor a7, a7, a9 # 4a0: 907730 + l32i a9, sp, 40 /* [(local10)] */ # 4a3: 98a1 + xor a6, a6, a7 # 4a5: 706630 + xor a5, a5, a6 # 4a8: 605530 + s8i a5, a8, 7 /* a5 -> [[(local1)]+0x7] */ # 4ab: 524807 + extui a6, a5, 16, 16 # 4ae: 5060f5 + extui a7, a5, 24, 8 # 4b1: 507875 + s8i a7, a8, 4 /* a7 -> [[(local1)]+0x4] */ # 4b4: 724804 + s8i a6, a8, 5 /* a6 -> [[(local1)]+0x5] */ # 4b7: 624805 + srli a5, a5, 8 # 4ba: 505841 + s8i a5, a8, 6 /* a5 -> [[(local1)]+0x6] */ # 4bd: 524806 + l32i a13, a12, 8 # 4c0: d82c + l8ui a0, a0, 0 # 4c2: 020000 + l8ui a15, a15, 0 /* [[(local9)]] */ # 4c5: f20f00 + l8ui a14, a4, 0 # 4c8: e20400 + slli a15, a15, 8 # 4cb: 80ff11 + xor a14, a14, a15 # 4ce: f0ee30 + l8ui a15, a3, 0 # 4d1: f20300 + slli a0, a0, 24 # 4d4: 800001 + slli a15, a15, 16 # 4d7: 00ff11 + xor a15, a15, a0 # 4da: 00ff30 + xor a14, a14, a15 # 4dd: f0ee30 + xor a13, a13, a14 # 4e0: e0dd30 + s8i a13, a8, 11 /* a13 -> [[(local1)]+0xb] */ # 4e3: d2480b + extui a14, a13, 16, 16 # 4e6: d0e0f5 + extui a15, a13, 24, 8 # 4e9: d0f875 + s8i a15, a8, 8 /* a15 -> [[(local1)]+0x8] */ # 4ec: f24808 + s8i a14, a8, 9 /* a14 -> [[(local1)]+0x9] */ # 4ef: e24809 + srli a13, a13, 8 # 4f2: d0d841 + s8i a13, a8, 10 /* a13 -> [[(local1)]+0xa] */ # 4f5: d2480a + l32i a7, a12, 12 # 4f8: 783c + l8ui a11, a11, 0 # 4fa: b20b00 + l8ui a9, a9, 0 /* [[(local10)]] */ # 4fd: 920900 + slli a11, a11, 8 # 500: 80bb11 + xor a9, a9, a11 # 503: b09930 + l32i a11, sp, 32 /* [(local8)] */ # 506: b881 + l8ui a10, a10, 0 # 508: a20a00 + l8ui a11, a11, 0 /* [[(local8)]] */ # 50b: b20b00 + slli a10, a10, 16 # 50e: 00aa11 + slli a11, a11, 24 # 511: 80bb01 + xor a10, a10, a11 # 514: b0aa30 + xor a9, a9, a10 # 517: a09930 + xor a7, a7, a9 # 51a: 907730 + s8i a7, a8, 15 /* a7 -> [[(local1)]+0xf] */ # 51d: 72480f + extui a9, a7, 16, 16 # 520: 7090f5 + extui a10, a7, 24, 8 # 523: 70a875 + s8i a10, a8, 12 /* a10 -> [[(local1)]+0xc] */ # 526: a2480c + s8i a9, a8, 13 /* a9 -> [[(local1)]+0xd] */ # 529: 92480d + srli a7, a7, 8 # 52c: 707841 + s8i a7, a8, 14 /* a7 -> [[(local1)]+0xe] */ # 52f: 72480e + call0 free # 532: 01f8fec0 + # 536: 0000 + l32i a12, sp, 12 /* [(local3)] */ # 538: c831 + l32i a13, sp, 16 /* [(local4)] */ # 53a: d841 + l32i a14, sp, 20 /* [(local5)] */ # 53c: e851 + l32i a15, sp, 24 /* [(local6)] */ # 53e: f861 + l32i a0, sp, 8 /* [(local2)] */ # 540: 0821 + addi sp, sp, 64 /* (top of frame) */ # 542: 12c140 + ret # 545: 0df0 + + .balign 4 +# Function @ .irom0.text+0x548 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global aes_decrypt + .type aes_decrypt, @function +aes_decrypt: + addi sp, sp, -16 /* (local0) */ # 548: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 54b: 0901 + call0 .Lfunc001 # 54d: 85bcff + l32i a0, sp, 0 /* [(local0)] */ # 550: 0801 + addi sp, sp, 16 /* (top of frame) */ # 552: 12c110 + ret # 555: 0df0 + + .literal_position # 558: 00000000 + +# Function @ .irom0.text+0x55c +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global aes_decrypt_deinit + .type aes_decrypt_deinit, @function +aes_decrypt_deinit: + movi a3, 0 /* 0x00000000 */ # 55c: 0c03 + movi a4, 176 /* 0x000000b0 */ # 55e: 42a0b0 + addi sp, sp, -16 /* (local0) */ # 561: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 564: 0901 + call0 memset # 566: 01fcffc0 + # 56a: 0000 + l32i a0, sp, 0 /* [(local0)] */ # 56c: 0801 + addi sp, sp, 16 /* (top of frame) */ # 56e: 12c110 + ret # 571: 0df0 diff --git a/binary_sdk/libwpa_stage1/aes-internal-enc.S b/binary_sdk/libwpa_stage1/aes-internal-enc.S new file mode 100644 index 0000000..5551709 --- /dev/null +++ b/binary_sdk/libwpa_stage1/aes-internal-enc.S @@ -0,0 +1,472 @@ + + .section .irom0.text, "ax", @progbits + + .literal_position # 0: 00000000 + # 4: 0000ff00 + # 8: 000000ff + # c: 00ff0000 + +# Function @ .irom0.text+0x10 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word @ -0x10 +# (local5): word @ -0xc +# (local6): word @ -0x8 +# (local7): word @ -0x4 + .balign 4 + .global rijndaelEncrypt + .type rijndaelEncrypt, @function +rijndaelEncrypt: + mov a6, a4 /* arg2 */ # 10: 6d04 + addi sp, sp, -32 /* (local0) */ # 12: 12c1e0 + s32i a15, sp, 20 /* a15 -> [(local5)] */ # 15: f951 + s32i a12, sp, 8 /* a12 -> [(local2)] */ # 17: c921 + l32i a5, a2, 8 /* [arg0+0x8] */ # 19: 5822 + l32i a9, a2, 0 /* [arg0] */ # 1b: 9802 + l8ui a8, a3, 3 /* [arg1+0x3] */ # 1d: 820303 + l32i a10, a2, 4 /* [arg0+0x4] */ # 20: a812 + l8ui a7, a3, 7 /* [arg1+0x7] */ # 22: 720307 + l8ui a11, a3, 0 /* [arg1] */ # 25: b20300 + s32i a14, sp, 16 /* a14 -> [(local4)] */ # 28: e941 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 2a: 0911 + s32i a13, sp, 12 /* a13 -> [(local3)] */ # 2c: d931 + movi a0, 5 /* 0x00000005 */ # 2e: 0c50 + l8ui a4, a3, 11 /* [arg1+0xb] */ # 30: 42030b + l8ui a13, a3, 1 /* [arg1+0x1] */ # 33: d20301 + l8ui a14, a3, 13 /* [arg1+0xd] */ # 36: e2030d + s32i a6, sp, 0 /* arg2 -> [(local0)] */ # 39: 6901 + slli a11, a11, 24 # 3b: 80bb01 + l8ui a6, a3, 9 /* [arg1+0x9] */ # 3e: 620309 + slli a14, a14, 16 # 41: 00ee11 + xor a7, a7, a10 # 44: a07730 + slli a13, a13, 16 # 47: 00dd11 + xor a8, a8, a9 # 4a: 908830 + xor a4, a4, a5 # 4d: 504430 + slli a6, a6, 16 # 50: 006611 + l8ui a5, a3, 8 /* [arg1+0x8] */ # 53: 520308 + l8ui a9, a3, 4 /* [arg1+0x4] */ # 56: 920304 + xor a11, a11, a13 # 59: d0bb30 + l8ui a10, a3, 5 /* [arg1+0x5] */ # 5c: a20305 + l8ui a13, a3, 14 /* [arg1+0xe] */ # 5f: d2030e + slli a10, a10, 16 # 62: 00aa11 + slli a9, a9, 24 # 65: 809901 + slli a5, a5, 24 # 68: 805501 + slli a13, a13, 8 # 6b: 80dd11 + xor a5, a5, a6 # 6e: 605530 + xor a9, a9, a10 # 71: a09930 + l8ui a6, a3, 10 /* [arg1+0xa] */ # 74: 62030a + l8ui a10, a3, 12 /* [arg1+0xc] */ # 77: a2030c + slli a6, a6, 8 # 7a: 806611 + xor a5, a5, a6 # 7d: 605530 + slli a10, a10, 24 # 80: 80aa01 + xor a10, a10, a14 # 83: e0aa30 + xor a10, a10, a13 # 86: d0aa30 + l8ui a14, a3, 6 /* [arg1+0x6] */ # 89: e20306 + l8ui a13, a3, 2 /* [arg1+0x2] */ # 8c: d20302 + slli a14, a14, 8 # 8f: 80ee11 + slli a13, a13, 8 # 92: 80dd11 + xor a9, a9, a14 # 95: e09930 + xor a7, a7, a9 # 98: 907730 + xor a11, a11, a13 # 9b: d0bb30 + xor a8, a8, a11 # 9e: b08830 + l8ui a9, a3, 15 /* [arg1+0xf] */ # a1: 92030f + l32i a11, a2, 12 /* [arg0+0xc] */ # a4: b832 + xor a4, a4, a5 # a6: 504430 + xor a9, a9, a11 # a9: b09930 + xor a3, a9, a10 # ac: a03930 + movi a9, Te0 # af: 91d4ff +.Lbr001: addi a0, a0, -1 # b2: 0b00 + ssai 8 # b4: 004840 + extui a11, a7, 0, 8 # b7: 70b074 + extui a13, a3, 16, 8 # ba: 30d075 + extui a12, a8, 0, 8 # bd: 80c074 + extui a14, a3, 8, 8 # c0: 30e874 + extui a15, a3, 0, 8 # c3: 30f074 + extui a5, a4, 8, 8 # c6: 405874 + extui a10, a7, 16, 8 # c9: 70a075 + extui a6, a8, 24, 8 # cc: 806875 + addx4 a6, a6, a9 # cf: 9066a0 + addx4 a10, a10, a9 # d2: 90aaa0 + addx4 a5, a5, a9 # d5: 9055a0 + addx4 a15, a15, a9 # d8: 90ffa0 + addx4 a14, a14, a9 # db: 90eea0 + addx4 a12, a12, a9 # de: 90cca0 + addx4 a13, a13, a9 # e1: 90dda0 + addx4 a11, a11, a9 # e4: 90bba0 + l32i a11, a11, 0 # e7: b80b + l32i a13, a13, 0 # e9: d80d + l32i a12, a12, 0 # eb: c80c + l32i a14, a14, 0 # ed: e80e + l32i a15, a15, 0 # ef: f80f + l32i a5, a5, 0 # f1: 5805 + l32i a10, a10, 0 # f3: a80a + l32i a6, a6, 0 # f5: 6806 + src a10, a10, a10 # f7: a0aa81 + xor a6, a6, a10 # fa: a06630 + ssai 16 # fd: 104040 + extui a10, a8, 8, 8 # 100: 80a874 + src a5, a5, a5 # 103: 505581 + extui a8, a8, 16, 8 # 106: 808075 + ssai 24 # 109: 104840 + xor a5, a5, a6 # 10c: 605530 + addx4 a10, a10, a9 # 10f: 90aaa0 + l32i a10, a10, 0 # 112: a80a + extui a6, a3, 24, 8 # 114: 306875 + s32i a5, sp, 24 /* a5 -> [(local6)] */ # 117: 5961 + src a15, a15, a15 # 119: f0ff81 + addx4 a8, a8, a9 # 11c: 9088a0 + l32i a8, a8, 0 # 11f: 8808 + ssai 8 # 121: 004840 + extui a5, a4, 16, 8 # 124: 405075 + extui a3, a7, 24, 8 # 127: 703875 + addx4 a6, a6, a9 # 12a: 9066a0 + l32i a6, a6, 0 # 12d: 6806 + addx4 a3, a3, a9 # 12f: 9033a0 + addx4 a5, a5, a9 # 132: 9055a0 + l32i a5, a5, 0 # 135: 5805 + l32i a3, a3, 0 # 137: 3803 + src a5, a5, a5 # 139: 505581 + xor a3, a3, a5 # 13c: 503330 + ssai 16 # 13f: 104040 + extui a5, a7, 8, 8 # 142: 705874 + src a14, a14, a14 # 145: e0ee81 + l32i a7, a2, 20 # 148: 7852 + addx4 a5, a5, a9 # 14a: 9055a0 + xor a14, a14, a3 # 14d: 30ee30 + ssai 24 # 150: 104840 + l32i a3, a2, 28 # 153: 3872 + src a12, a12, a12 # 155: c0cc81 + l32i a5, a5, 0 # 158: 5805 + ssai 8 # 15a: 004840 + xor a7, a7, a12 # 15d: c07730 + xor a7, a7, a14 # 160: e07730 + src a13, a13, a13 # 163: d0dd81 + extui a12, a4, 24, 8 # 166: 40c875 + addx4 a12, a12, a9 # 169: 90cca0 + ssai 16 # 16c: 104040 + src a10, a10, a10 # 16f: a0aa81 + l32i a12, a12, 0 # 172: c80c + ssai 24 # 174: 104840 + src a11, a11, a11 # 177: b0bb81 + xor a12, a12, a13 # 17a: d0cc30 + xor a10, a10, a12 # 17d: c0aa30 + ssai 8 # 180: 004840 + src a8, a8, a8 # 183: 808881 + xor a6, a6, a8 # 186: 806630 + ssai 16 # 189: 104040 + l32i a8, a2, 16 # 18c: 8842 + src a5, a5, a5 # 18e: 505581 + xor a5, a5, a6 # 191: 605530 + ssai 24 # 194: 104840 + l32i a6, a2, 24 # 197: 6862 + xor a8, a8, a15 # 199: f08830 + addi a2, a2, 32 # 19c: 22c220 + l32i a15, sp, 24 /* [(local6)] */ # 19f: f861 + xor a6, a6, a11 # 1a1: b06630 + xor a6, a6, a10 # 1a4: a06630 + extui a10, a4, 0, 8 # 1a7: 40a074 + addx4 a10, a10, a9 # 1aa: 90aaa0 + l32i a10, a10, 0 # 1ad: a80a + xor a8, a8, a15 # 1af: f08830 + src a10, a10, a10 # 1b2: a0aa81 + xor a3, a3, a10 # 1b5: a03330 + xor a3, a3, a5 # 1b8: 503330 + beqz a0, .Lbr002 # 1bb: 166010 + ssai 8 # 1be: 004840 + extui a11, a7, 0, 8 # 1c1: 70b074 + extui a10, a8, 8, 8 # 1c4: 80a874 + extui a13, a3, 16, 8 # 1c7: 30d075 + extui a12, a8, 0, 8 # 1ca: 80c074 + extui a14, a3, 8, 8 # 1cd: 30e874 + extui a5, a6, 16, 8 # 1d0: 605075 + extui a15, a6, 8, 8 # 1d3: 60f874 + s32i a0, sp, 28 /* a0 -> [(local7)] */ # 1d6: 0971 + extui a4, a7, 16, 8 # 1d8: 704075 + extui a0, a8, 24, 8 # 1db: 800875 + addx4 a4, a4, a9 # 1de: 9044a0 + addx4 a15, a15, a9 # 1e1: 90ffa0 + addx4 a5, a5, a9 # 1e4: 9055a0 + addx4 a14, a14, a9 # 1e7: 90eea0 + addx4 a12, a12, a9 # 1ea: 90cca0 + addx4 a13, a13, a9 # 1ed: 90dda0 + addx4 a10, a10, a9 # 1f0: 90aaa0 + addx4 a11, a11, a9 # 1f3: 90bba0 + l32i a11, a11, 0 # 1f6: b80b + l32i a10, a10, 0 # 1f8: a80a + l32i a13, a13, 0 # 1fa: d80d + l32i a12, a12, 0 # 1fc: c80c + l32i a14, a14, 0 # 1fe: e80e + l32i a5, a5, 0 # 200: 5805 + l32i a15, a15, 0 # 202: f80f + l32i a4, a4, 0 # 204: 4804 + addx4 a0, a0, a9 # 206: 9000a0 + l32i a0, a0, 0 # 209: 0800 + src a4, a4, a4 # 20b: 404481 + xor a0, a0, a4 # 20e: 400030 + ssai 16 # 211: 104040 + extui a4, a8, 16, 8 # 214: 804075 + src a15, a15, a15 # 217: f0ff81 + l32i a8, a2, 0 # 21a: 8802 + ssai 24 # 21c: 104840 + xor a15, a15, a0 # 21f: 00ff30 + addx4 a4, a4, a9 # 222: 9044a0 + extui a0, a3, 0, 8 # 225: 300074 + l32i a4, a4, 0 # 228: 4804 + extui a3, a3, 24, 8 # 22a: 303875 + addx4 a0, a0, a9 # 22d: 9000a0 + l32i a0, a0, 0 # 230: 0800 + addx4 a3, a3, a9 # 232: 9033a0 + l32i a3, a3, 0 # 235: 3803 + src a0, a0, a0 # 237: 000081 + xor a8, a8, a0 # 23a: 008830 + ssai 8 # 23d: 004840 + src a5, a5, a5 # 240: 505581 + xor a8, a8, a15 # 243: f08830 + ssai 16 # 246: 104040 + src a14, a14, a14 # 249: e0ee81 + ssai 24 # 24c: 104840 + src a12, a12, a12 # 24f: c0cc81 + l32i a0, sp, 28 /* [(local7)] */ # 252: 0871 + ssai 8 # 254: 004840 + src a13, a13, a13 # 257: d0dd81 + ssai 16 # 25a: 104040 + src a10, a10, a10 # 25d: a0aa81 + ssai 24 # 260: 104840 + src a11, a11, a11 # 263: b0bb81 + ssai 8 # 266: 004840 + src a4, a4, a4 # 269: 404481 + xor a3, a3, a4 # 26c: 403330 + extui a4, a7, 24, 8 # 26f: 704875 + addx4 a4, a4, a9 # 272: 9044a0 + l32i a4, a4, 0 # 275: 4804 + ssai 16 # 277: 104040 + xor a4, a4, a5 # 27a: 504430 + extui a5, a7, 8, 8 # 27d: 705874 + xor a14, a14, a4 # 280: 40ee30 + l32i a7, a2, 4 # 283: 7812 + l32i a4, a2, 8 # 285: 4822 + addx4 a5, a5, a9 # 287: 9055a0 + l32i a5, a5, 0 # 28a: 5805 + xor a4, a4, a11 # 28c: b04430 + xor a7, a7, a12 # 28f: c07730 + xor a7, a7, a14 # 292: e07730 + src a5, a5, a5 # 295: 505581 + extui a12, a6, 24, 8 # 298: 60c875 + ssai 24 # 29b: 104840 + addx4 a12, a12, a9 # 29e: 90cca0 + l32i a12, a12, 0 # 2a1: c80c + xor a5, a5, a3 # 2a3: 305530 + xor a12, a12, a13 # 2a6: d0cc30 + xor a10, a10, a12 # 2a9: c0aa30 + xor a4, a4, a10 # 2ac: a04430 + extui a10, a6, 0, 8 # 2af: 60a074 + addx4 a10, a10, a9 # 2b2: 90aaa0 + l32i a10, a10, 0 # 2b5: a80a + l32i a3, a2, 12 # 2b7: 3832 + src a10, a10, a10 # 2b9: a0aa81 + xor a3, a3, a10 # 2bc: a03330 + xor a3, a3, a5 # 2bf: 503330 + j .Lbr001 # 2c2: 067bff +.Lbr002: l32i a11, sp, 0 /* [(local0)] */ # 2c5: b801 + movi a15, 0xff000000 # 2c7: f150ff + l32i a13, a2, 0 # 2ca: d802 + movi a0, 0x0000ff00 # 2cc: 0150ff + extui a5, a7, 16, 8 # 2cf: 705075 + extui a10, a8, 24, 8 # 2d2: 80a875 + extui a4, a6, 8, 8 # 2d5: 604874 + extui a14, a3, 0, 8 # 2d8: 30e074 + extui a12, a8, 0, 8 # 2db: 80c074 + addx4 a12, a12, a9 # 2de: 90cca0 + addx4 a14, a14, a9 # 2e1: 90eea0 + addx4 a4, a4, a9 # 2e4: 9044a0 + addx4 a10, a10, a9 # 2e7: 90aaa0 + addx4 a5, a5, a9 # 2ea: 9055a0 + l32i a5, a5, 0 # 2ed: 5805 + l32i a10, a10, 0 # 2ef: a80a + l32i a4, a4, 0 # 2f1: 4804 + l32i a14, a14, 0 # 2f3: e80e + and a4, a4, a0 # 2f5: 004410 + extui a14, a14, 8, 8 # 2f8: e0e874 + slli a10, a10, 8 # 2fb: 80aa11 + xor a13, a13, a14 # 2fe: e0dd30 + movi a14, 0x00ff0000 # 301: e140ff + and a10, a10, a15 # 304: f0aa10 + and a5, a5, a14 # 307: e05510 + xor a5, a5, a10 # 30a: a05530 + xor a4, a4, a5 # 30d: 504430 + xor a13, a13, a4 # 310: 40dd30 + s8i a13, a11, 3 /* a13 -> [[(local0)]+0x3] */ # 313: d24b03 + extui a5, a13, 24, 8 # 316: d05875 + extui a4, a13, 16, 16 # 319: d040f5 + s8i a4, a11, 1 /* a4 -> [[(local0)]+0x1] */ # 31c: 424b01 + s8i a5, a11, 0 /* a5 -> [[(local0)]] */ # 31f: 524b00 + extui a4, a7, 24, 8 # 322: 704875 + extui a5, a7, 0, 8 # 325: 705074 + addx4 a5, a5, a9 # 328: 9055a0 + addx4 a4, a4, a9 # 32b: 9044a0 + srli a13, a13, 8 # 32e: d0d841 + s8i a13, a11, 2 /* a13 -> [[(local0)]+0x2] */ # 331: d24b02 + l32i a10, a2, 4 # 334: a812 + l32i a4, a4, 0 # 336: 4804 + l32i a12, a12, 0 # 338: c80c + extui a13, a6, 16, 8 # 33a: 60d075 + addx4 a13, a13, a9 # 33d: 90dda0 + l32i a13, a13, 0 # 340: d80d + extui a12, a12, 8, 8 # 342: c0c874 + slli a4, a4, 8 # 345: 804411 + and a4, a4, a15 # 348: f04410 + xor a10, a10, a12 # 34b: c0aa30 + and a13, a13, a14 # 34e: e0dd10 + extui a12, a3, 8, 8 # 351: 30c874 + addx4 a12, a12, a9 # 354: 90cca0 + l32i a12, a12, 0 # 357: c80c + xor a13, a13, a4 # 359: 40dd30 + and a12, a12, a0 # 35c: 00cc10 + xor a12, a12, a13 # 35f: d0cc30 + xor a10, a10, a12 # 362: c0aa30 + s8i a10, a11, 7 /* a10 -> [[(local0)]+0x7] */ # 365: a24b07 + extui a13, a10, 24, 8 # 368: a0d875 + extui a12, a10, 16, 16 # 36b: a0c0f5 + s8i a12, a11, 5 /* a12 -> [[(local0)]+0x5] */ # 36e: c24b05 + s8i a13, a11, 4 /* a13 -> [[(local0)]+0x4] */ # 371: d24b04 + extui a12, a6, 24, 8 # 374: 60c875 + extui a13, a8, 16, 8 # 377: 80d075 + addx4 a13, a13, a9 # 37a: 90dda0 + addx4 a12, a12, a9 # 37d: 90cca0 + srli a10, a10, 8 # 380: a0a841 + s8i a10, a11, 6 /* a10 -> [[(local0)]+0x6] */ # 383: a24b06 + l32i a4, a2, 8 # 386: 4822 + l32i a5, a5, 0 # 388: 5805 + l32i a12, a12, 0 # 38a: c80c + extui a10, a3, 16, 8 # 38c: 30a075 + addx4 a10, a10, a9 # 38f: 90aaa0 + l32i a10, a10, 0 # 392: a80a + slli a12, a12, 8 # 394: 80cc11 + extui a5, a5, 8, 8 # 397: 505874 + xor a4, a4, a5 # 39a: 504430 + and a12, a12, a15 # 39d: f0cc10 + extui a5, a8, 8, 8 # 3a0: 805874 + and a10, a10, a14 # 3a3: e0aa10 + xor a10, a10, a12 # 3a6: c0aa30 + addx4 a5, a5, a9 # 3a9: 9055a0 + l32i a5, a5, 0 # 3ac: 5805 + extui a12, a7, 8, 8 # 3ae: 70c874 + addx4 a12, a12, a9 # 3b1: 90cca0 + and a5, a5, a0 # 3b4: 005510 + xor a5, a5, a10 # 3b7: a05530 + xor a4, a4, a5 # 3ba: 504430 + s8i a4, a11, 11 /* a4 -> [[(local0)]+0xb] */ # 3bd: 424b0b + extui a10, a4, 24, 8 # 3c0: 40a875 + extui a5, a4, 16, 16 # 3c3: 4050f5 + s8i a5, a11, 9 /* a5 -> [[(local0)]+0x9] */ # 3c6: 524b09 + s8i a10, a11, 8 /* a10 -> [[(local0)]+0x8] */ # 3c9: a24b08 + srli a4, a4, 8 # 3cc: 404841 + s8i a4, a11, 10 /* a4 -> [[(local0)]+0xa] */ # 3cf: 424b0a + l32i a10, a2, 12 # 3d2: a832 + l32i a13, a13, 0 # 3d4: d80d + l32i a12, a12, 0 # 3d6: c80c + and a13, a13, a14 # 3d8: e0dd10 + and a12, a12, a0 # 3db: 00cc10 + extui a14, a3, 24, 8 # 3de: 30e875 + extui a0, a6, 0, 8 # 3e1: 600074 + addx4 a0, a0, a9 # 3e4: 9000a0 + addx4 a14, a14, a9 # 3e7: 90eea0 + l32i a14, a14, 0 # 3ea: e80e + l32i a0, a0, 0 # 3ec: 0800 + slli a14, a14, 8 # 3ee: 80ee11 + extui a0, a0, 8, 8 # 3f1: 000874 + xor a10, a10, a0 # 3f4: 00aa30 + and a14, a14, a15 # 3f7: f0ee10 + l32i a0, sp, 4 /* [(local1)] */ # 3fa: 0811 + xor a13, a13, a14 # 3fc: e0dd30 + l32i a15, sp, 20 /* [(local5)] */ # 3ff: f851 + l32i a14, sp, 16 /* [(local4)] */ # 401: e841 + xor a12, a12, a13 # 403: d0cc30 + xor a10, a10, a12 # 406: c0aa30 + s8i a10, a11, 15 /* a10 -> [[(local0)]+0xf] */ # 409: a24b0f + extui a13, a10, 24, 8 # 40c: a0d875 + extui a12, a10, 16, 16 # 40f: a0c0f5 + s8i a12, a11, 13 /* a12 -> [[(local0)]+0xd] */ # 412: c24b0d + s8i a13, a11, 12 /* a13 -> [[(local0)]+0xc] */ # 415: d24b0c + l32i a12, sp, 8 /* [(local2)] */ # 418: c821 + l32i a13, sp, 12 /* [(local3)] */ # 41a: d831 + srli a10, a10, 8 # 41c: a0a841 + s8i a10, a11, 14 /* a10 -> [[(local0)]+0xe] */ # 41f: a24b0e + addi sp, sp, 32 /* (top of frame) */ # 422: 12c120 + ret # 425: 0df0 + + .literal_position # 428: 00000000 + # 42c: 00000000 + +# Function @ .irom0.text+0x430 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 + .global aes_encrypt_init + .type aes_encrypt_init, @function +aes_encrypt_init: + addi sp, sp, -16 /* (local0) */ # 430: 12c1f0 + s32i a0, sp, 8 /* a0 -> [(local2)] */ # 433: 0921 + s32i a2, sp, 4 /* arg0 -> [(local1)] */ # 435: 2911 + bnei a3, 16, .Lbr003 # 437: 66b30c + movi a2, 176 /* 0x000000b0 */ # 43a: 22a0b0 + call0 malloc # 43d: 01faffc0 + # 441: 0000 + s32i a2, sp, 0 /* a2 -> [(local0)] */ # 443: 2901 + bnez a2, .Lbr004 # 445: cc32 +.Lbr003: movi a2, 0 /* 0x00000000 */ # 447: 0c02 + j .Lbr005 # 449: 460200 +.Lbr004: l32i a3, sp, 4 /* [(local1)] */ # 44c: 3811 + call0 rijndaelKeySetupEnc # 44e: 01f7ffc0 + # 452: 0000 + l32i a2, sp, 0 /* [(local0)] */ # 454: 2801 +.Lbr005: l32i a0, sp, 8 /* [(local2)] */ # 456: 0821 + addi sp, sp, 16 /* (top of frame) */ # 458: 12c110 + ret # 45b: 0df0 + + .balign 4 +# Function @ .irom0.text+0x460 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global aes_encrypt + .type aes_encrypt, @function +aes_encrypt: + addi sp, sp, -16 /* (local0) */ # 460: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 463: 0901 + call0 rijndaelEncrypt # 465: 050000 + l32i a0, sp, 0 /* [(local0)] */ # 468: 0801 + addi sp, sp, 16 /* (top of frame) */ # 46a: 12c110 + ret # 46d: 0df0 + + .literal_position # 470: 00000000 + # 474: 00000000 + +# Function @ .irom0.text+0x478 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global aes_encrypt_deinit + .type aes_encrypt_deinit, @function +aes_encrypt_deinit: + movi a3, 0 /* 0x00000000 */ # 478: 0c03 + movi a4, 176 /* 0x000000b0 */ # 47a: 42a0b0 + addi sp, sp, -16 /* (local0) */ # 47d: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 480: c911 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 482: 0901 + mov a12, a2 /* arg0 */ # 484: cd02 + call0 memset # 486: 01faffc0 + # 48a: 0000 + mov a2, a12 /* arg0 */ # 48c: 2d0c + call0 free # 48e: 01f9ffc0 + # 492: 0000 + l32i a12, sp, 4 /* [(local1)] */ # 494: c811 + l32i a0, sp, 0 /* [(local0)] */ # 496: 0801 + addi sp, sp, 16 /* (top of frame) */ # 498: 12c110 + ret # 49b: 0df0 diff --git a/binary_sdk/libwpa_stage1/aes-internal.S b/binary_sdk/libwpa_stage1/aes-internal.S new file mode 100644 index 0000000..8f05f4f --- /dev/null +++ b/binary_sdk/libwpa_stage1/aes-internal.S @@ -0,0 +1,450 @@ + + .section .irom0.text, "ax", @progbits + + .literal_position # 0: 0000ff00 + # 4: 00ff0000 + # 8: 000000ff + # c: 00000000 + # 10: 00000000 + +# Function @ .irom0.text+0x14 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global rijndaelKeySetupEnc + .type rijndaelKeySetupEnc, @function +rijndaelKeySetupEnc: + movi a8, 0x00ff0000 # 14: 81fbff + movi a7, 0x0000ff00 # 17: 71fbff + movi a6, 0xff000000 # 1a: 61fbff + addi sp, sp, -16 /* (local0) */ # 1d: 12c1f0 + movi a11, Te0 # 20: b1fbff + l8ui a5, a3, 3 /* [arg1+0x3] */ # 23: 520303 + l8ui a4, a3, 2 /* [arg1+0x2] */ # 26: 420302 + l8ui a9, a3, 0 /* [arg1] */ # 29: 920300 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 2c: c911 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 2e: 0901 + l8ui a12, a3, 1 /* [arg1+0x1] */ # 30: c20301 + movi a0, rcons # 33: 01f7ff + slli a9, a9, 24 # 36: 809901 + slli a4, a4, 8 # 39: 804411 + addi a10, a0, 10 /* .rodata+0xa */ # 3c: aba0 + xor a5, a5, a4 # 3e: 405530 + slli a12, a12, 16 # 41: 00cc11 + xor a9, a9, a12 # 44: c09930 + xor a5, a5, a9 # 47: 905530 + s32i a5, a2, 0 /* a5 -> [arg0] */ # 4a: 5902 + l8ui a9, a3, 7 /* [arg1+0x7] */ # 4c: 920307 + l8ui a5, a3, 6 /* [arg1+0x6] */ # 4f: 520306 + l8ui a4, a3, 5 /* [arg1+0x5] */ # 52: 420305 + l8ui a12, a3, 4 /* [arg1+0x4] */ # 55: c20304 + slli a4, a4, 16 # 58: 004411 + slli a12, a12, 24 # 5b: 80cc01 + slli a5, a5, 8 # 5e: 805511 + xor a9, a9, a5 # 61: 509930 + xor a12, a12, a4 # 64: 40cc30 + xor a9, a9, a12 # 67: c09930 + s32i a9, a2, 4 /* a9 -> [arg0+0x4] */ # 6a: 9912 + l8ui a12, a3, 11 /* [arg1+0xb] */ # 6c: c2030b + l8ui a9, a3, 10 /* [arg1+0xa] */ # 6f: 92030a + l8ui a5, a3, 9 /* [arg1+0x9] */ # 72: 520309 + l8ui a4, a3, 8 /* [arg1+0x8] */ # 75: 420308 + slli a5, a5, 16 # 78: 005511 + slli a4, a4, 24 # 7b: 804401 + slli a9, a9, 8 # 7e: 809911 + xor a12, a12, a9 # 81: 90cc30 + xor a4, a4, a5 # 84: 504430 + xor a12, a12, a4 # 87: 40cc30 + s32i a12, a2, 8 /* a12 -> [arg0+0x8] */ # 8a: c922 + l8ui a4, a3, 15 /* [arg1+0xf] */ # 8c: 42030f + l8ui a12, a3, 14 /* [arg1+0xe] */ # 8f: c2030e + l8ui a9, a3, 13 /* [arg1+0xd] */ # 92: 92030d + l8ui a5, a3, 12 /* [arg1+0xc] */ # 95: 52030c + slli a9, a9, 16 # 98: 009911 + slli a5, a5, 24 # 9b: 805501 + slli a12, a12, 8 # 9e: 80cc11 + xor a4, a4, a12 # a1: c04430 + xor a5, a5, a9 # a4: 905530 + xor a4, a4, a5 # a7: 504430 + s32i a4, a2, 12 /* a4 -> [arg0+0xc] */ # aa: 4932 +.Lbr001: l32i a4, a2, 12 # ac: 4832 + l8ui a9, a0, 0 # ae: 920000 + addi a0, a0, 1 # b1: 1b00 + slli a9, a9, 24 # b3: 809901 + extui a3, a4, 0, 8 # b6: 403074 + extui a12, a4, 24, 8 # b9: 40c875 + extui a5, a4, 16, 8 # bc: 405075 + addx4 a5, a5, a11 # bf: b055a0 + addx4 a12, a12, a11 # c2: b0cca0 + addx4 a3, a3, a11 # c5: b033a0 + l32i a3, a3, 0 # c8: 3803 + l32i a12, a12, 0 # ca: c80c + l32i a5, a5, 0 # cc: 5805 + extui a12, a12, 8, 8 # ce: c0c874 + slli a5, a5, 8 # d1: 805511 + xor a9, a9, a12 # d4: c09930 + extui a12, a4, 8, 8 # d7: 40c874 + addx4 a12, a12, a11 # da: b0cca0 + l32i a12, a12, 0 # dd: c80c + and a3, a3, a7 # df: 703310 + and a12, a12, a8 # e2: 80cc10 + xor a3, a3, a12 # e5: c03330 + l32i a12, a2, 0 # e8: c802 + and a5, a5, a6 # ea: 605510 + xor a12, a12, a5 # ed: 50cc30 + xor a12, a12, a3 # f0: 30cc30 + l32i a5, a2, 4 # f3: 5812 + l32i a3, a2, 8 # f5: 3822 + xor a9, a9, a12 # f7: c09930 + s32i a9, a2, 16 # fa: 9942 + xor a5, a5, a9 # fc: 905530 + xor a3, a3, a5 # ff: 503330 + s32i a5, a2, 20 # 102: 5952 + s32i a3, a2, 24 # 104: 3962 + xor a3, a3, a4 # 106: 403330 + s32i a3, a2, 28 # 109: 3972 + addi a2, a2, 16 # 10b: 22c210 + bne a0, a10, .Lbr001 # 10e: a7909a + l32i a12, sp, 4 /* [(local1)] */ # 111: c811 + l32i a0, sp, 0 /* [(local0)] */ # 113: 0801 + addi sp, sp, 16 /* (top of frame) */ # 115: 12c110 + ret # 118: 0df0 + + .section .rodata, "a", @progbits + + .global rcons + .type rcons, @object +rcons: .byte 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80 + .byte 0x1b, 0x36 + + .section .irom.text, "ax", @progbits + + .global Te0 + .type Te0, @object +Te0: .byte 0xa5, 0x63, 0x63, 0xc6, 0x84, 0x7c, 0x7c, 0xf8 + .byte 0x99, 0x77, 0x77, 0xee, 0x8d, 0x7b, 0x7b, 0xf6 + .byte 0x0d, 0xf2, 0xf2, 0xff, 0xbd, 0x6b, 0x6b, 0xd6 + .byte 0xb1, 0x6f, 0x6f, 0xde, 0x54, 0xc5, 0xc5, 0x91 + .byte 0x50, 0x30, 0x30, 0x60, 0x03, 0x01, 0x01, 0x02 + .byte 0xa9, 0x67, 0x67, 0xce, 0x7d, 0x2b, 0x2b, 0x56 + .byte 0x19, 0xfe, 0xfe, 0xe7, 0x62, 0xd7, 0xd7, 0xb5 + .byte 0xe6, 0xab, 0xab, 0x4d, 0x9a, 0x76, 0x76, 0xec + .byte 0x45, 0xca, 0xca, 0x8f, 0x9d, 0x82, 0x82, 0x1f + .byte 0x40, 0xc9, 0xc9, 0x89, 0x87, 0x7d, 0x7d, 0xfa + .byte 0x15, 0xfa, 0xfa, 0xef, 0xeb, 0x59, 0x59, 0xb2 + .byte 0xc9, 0x47, 0x47, 0x8e, 0x0b, 0xf0, 0xf0, 0xfb + .byte 0xec, 0xad, 0xad, 0x41, 0x67, 0xd4, 0xd4, 0xb3 + .byte 0xfd, 0xa2, 0xa2, 0x5f, 0xea, 0xaf, 0xaf, 0x45 + .byte 0xbf, 0x9c, 0x9c, 0x23, 0xf7, 0xa4, 0xa4, 0x53 + .byte 0x96, 0x72, 0x72, 0xe4, 0x5b, 0xc0, 0xc0, 0x9b + .byte 0xc2, 0xb7, 0xb7, 0x75, 0x1c, 0xfd, 0xfd, 0xe1 + .byte 0xae, 0x93, 0x93, 0x3d, 0x6a, 0x26, 0x26, 0x4c + .byte 0x5a, 0x36, 0x36, 0x6c, 0x41, 0x3f, 0x3f, 0x7e + .byte 0x02, 0xf7, 0xf7, 0xf5, 0x4f, 0xcc, 0xcc, 0x83 + .byte 0x5c, 0x34, 0x34, 0x68, 0xf4, 0xa5, 0xa5, 0x51 + .byte 0x34, 0xe5, 0xe5, 0xd1, 0x08, 0xf1, 0xf1, 0xf9 + .byte 0x93, 0x71, 0x71, 0xe2, 0x73, 0xd8, 0xd8, 0xab + .byte 0x53, 0x31, 0x31, 0x62, 0x3f, 0x15, 0x15, 0x2a + .byte 0x0c, 0x04, 0x04, 0x08, 0x52, 0xc7, 0xc7, 0x95 + .byte 0x65, 0x23, 0x23, 0x46, 0x5e, 0xc3, 0xc3, 0x9d + .byte 0x28, 0x18, 0x18, 0x30, 0xa1, 0x96, 0x96, 0x37 + .byte 0x0f, 0x05, 0x05, 0x0a, 0xb5, 0x9a, 0x9a, 0x2f + .byte 0x09, 0x07, 0x07, 0x0e, 0x36, 0x12, 0x12, 0x24 + .byte 0x9b, 0x80, 0x80, 0x1b, 0x3d, 0xe2, 0xe2, 0xdf + .byte 0x26, 0xeb, 0xeb, 0xcd, 0x69, 0x27, 0x27, 0x4e + .byte 0xcd, 0xb2, 0xb2, 0x7f, 0x9f, 0x75, 0x75, 0xea + .byte 0x1b, 0x09, 0x09, 0x12, 0x9e, 0x83, 0x83, 0x1d + .byte 0x74, 0x2c, 0x2c, 0x58, 0x2e, 0x1a, 0x1a, 0x34 + .byte 0x2d, 0x1b, 0x1b, 0x36, 0xb2, 0x6e, 0x6e, 0xdc + .byte 0xee, 0x5a, 0x5a, 0xb4, 0xfb, 0xa0, 0xa0, 0x5b + .byte 0xf6, 0x52, 0x52, 0xa4, 0x4d, 0x3b, 0x3b, 0x76 + .byte 0x61, 0xd6, 0xd6, 0xb7, 0xce, 0xb3, 0xb3, 0x7d + .byte 0x7b, 0x29, 0x29, 0x52, 0x3e, 0xe3, 0xe3, 0xdd + .byte 0x71, 0x2f, 0x2f, 0x5e, 0x97, 0x84, 0x84, 0x13 + .byte 0xf5, 0x53, 0x53, 0xa6, 0x68, 0xd1, 0xd1, 0xb9 + .byte 0x00, 0x00, 0x00, 0x00, 0x2c, 0xed, 0xed, 0xc1 + .byte 0x60, 0x20, 0x20, 0x40, 0x1f, 0xfc, 0xfc, 0xe3 + .byte 0xc8, 0xb1, 0xb1, 0x79, 0xed, 0x5b, 0x5b, 0xb6 + .byte 0xbe, 0x6a, 0x6a, 0xd4, 0x46, 0xcb, 0xcb, 0x8d + .byte 0xd9, 0xbe, 0xbe, 0x67, 0x4b, 0x39, 0x39, 0x72 + .byte 0xde, 0x4a, 0x4a, 0x94, 0xd4, 0x4c, 0x4c, 0x98 + .byte 0xe8, 0x58, 0x58, 0xb0, 0x4a, 0xcf, 0xcf, 0x85 + .byte 0x6b, 0xd0, 0xd0, 0xbb, 0x2a, 0xef, 0xef, 0xc5 + .byte 0xe5, 0xaa, 0xaa, 0x4f, 0x16, 0xfb, 0xfb, 0xed + .byte 0xc5, 0x43, 0x43, 0x86, 0xd7, 0x4d, 0x4d, 0x9a + .byte 0x55, 0x33, 0x33, 0x66, 0x94, 0x85, 0x85, 0x11 + .byte 0xcf, 0x45, 0x45, 0x8a, 0x10, 0xf9, 0xf9, 0xe9 + .byte 0x06, 0x02, 0x02, 0x04, 0x81, 0x7f, 0x7f, 0xfe + .byte 0xf0, 0x50, 0x50, 0xa0, 0x44, 0x3c, 0x3c, 0x78 + .byte 0xba, 0x9f, 0x9f, 0x25, 0xe3, 0xa8, 0xa8, 0x4b + .byte 0xf3, 0x51, 0x51, 0xa2, 0xfe, 0xa3, 0xa3, 0x5d + .byte 0xc0, 0x40, 0x40, 0x80, 0x8a, 0x8f, 0x8f, 0x05 + .byte 0xad, 0x92, 0x92, 0x3f, 0xbc, 0x9d, 0x9d, 0x21 + .byte 0x48, 0x38, 0x38, 0x70, 0x04, 0xf5, 0xf5, 0xf1 + .byte 0xdf, 0xbc, 0xbc, 0x63, 0xc1, 0xb6, 0xb6, 0x77 + .byte 0x75, 0xda, 0xda, 0xaf, 0x63, 0x21, 0x21, 0x42 + .byte 0x30, 0x10, 0x10, 0x20, 0x1a, 0xff, 0xff, 0xe5 + .byte 0x0e, 0xf3, 0xf3, 0xfd, 0x6d, 0xd2, 0xd2, 0xbf + .byte 0x4c, 0xcd, 0xcd, 0x81, 0x14, 0x0c, 0x0c, 0x18 + .byte 0x35, 0x13, 0x13, 0x26, 0x2f, 0xec, 0xec, 0xc3 + .byte 0xe1, 0x5f, 0x5f, 0xbe, 0xa2, 0x97, 0x97, 0x35 + .byte 0xcc, 0x44, 0x44, 0x88, 0x39, 0x17, 0x17, 0x2e + .byte 0x57, 0xc4, 0xc4, 0x93, 0xf2, 0xa7, 0xa7, 0x55 + .byte 0x82, 0x7e, 0x7e, 0xfc, 0x47, 0x3d, 0x3d, 0x7a + .byte 0xac, 0x64, 0x64, 0xc8, 0xe7, 0x5d, 0x5d, 0xba + .byte 0x2b, 0x19, 0x19, 0x32, 0x95, 0x73, 0x73, 0xe6 + .byte 0xa0, 0x60, 0x60, 0xc0, 0x98, 0x81, 0x81, 0x19 + .byte 0xd1, 0x4f, 0x4f, 0x9e, 0x7f, 0xdc, 0xdc, 0xa3 + .byte 0x66, 0x22, 0x22, 0x44, 0x7e, 0x2a, 0x2a, 0x54 + .byte 0xab, 0x90, 0x90, 0x3b, 0x83, 0x88, 0x88, 0x0b + .byte 0xca, 0x46, 0x46, 0x8c, 0x29, 0xee, 0xee, 0xc7 + .byte 0xd3, 0xb8, 0xb8, 0x6b, 0x3c, 0x14, 0x14, 0x28 + .byte 0x79, 0xde, 0xde, 0xa7, 0xe2, 0x5e, 0x5e, 0xbc + .byte 0x1d, 0x0b, 0x0b, 0x16, 0x76, 0xdb, 0xdb, 0xad + .byte 0x3b, 0xe0, 0xe0, 0xdb, 0x56, 0x32, 0x32, 0x64 + .byte 0x4e, 0x3a, 0x3a, 0x74, 0x1e, 0x0a, 0x0a, 0x14 + .byte 0xdb, 0x49, 0x49, 0x92, 0x0a, 0x06, 0x06, 0x0c + .byte 0x6c, 0x24, 0x24, 0x48, 0xe4, 0x5c, 0x5c, 0xb8 + .byte 0x5d, 0xc2, 0xc2, 0x9f, 0x6e, 0xd3, 0xd3, 0xbd + .byte 0xef, 0xac, 0xac, 0x43, 0xa6, 0x62, 0x62, 0xc4 + .byte 0xa8, 0x91, 0x91, 0x39, 0xa4, 0x95, 0x95, 0x31 + .byte 0x37, 0xe4, 0xe4, 0xd3, 0x8b, 0x79, 0x79, 0xf2 + .byte 0x32, 0xe7, 0xe7, 0xd5, 0x43, 0xc8, 0xc8, 0x8b + .byte 0x59, 0x37, 0x37, 0x6e, 0xb7, 0x6d, 0x6d, 0xda + .byte 0x8c, 0x8d, 0x8d, 0x01, 0x64, 0xd5, 0xd5, 0xb1 + .byte 0xd2, 0x4e, 0x4e, 0x9c, 0xe0, 0xa9, 0xa9, 0x49 + .byte 0xb4, 0x6c, 0x6c, 0xd8, 0xfa, 0x56, 0x56, 0xac + .byte 0x07, 0xf4, 0xf4, 0xf3, 0x25, 0xea, 0xea, 0xcf + .byte 0xaf, 0x65, 0x65, 0xca, 0x8e, 0x7a, 0x7a, 0xf4 + .byte 0xe9, 0xae, 0xae, 0x47, 0x18, 0x08, 0x08, 0x10 + .byte 0xd5, 0xba, 0xba, 0x6f, 0x88, 0x78, 0x78, 0xf0 + .byte 0x6f, 0x25, 0x25, 0x4a, 0x72, 0x2e, 0x2e, 0x5c + .byte 0x24, 0x1c, 0x1c, 0x38, 0xf1, 0xa6, 0xa6, 0x57 + .byte 0xc7, 0xb4, 0xb4, 0x73, 0x51, 0xc6, 0xc6, 0x97 + .byte 0x23, 0xe8, 0xe8, 0xcb, 0x7c, 0xdd, 0xdd, 0xa1 + .byte 0x9c, 0x74, 0x74, 0xe8, 0x21, 0x1f, 0x1f, 0x3e + .byte 0xdd, 0x4b, 0x4b, 0x96, 0xdc, 0xbd, 0xbd, 0x61 + .byte 0x86, 0x8b, 0x8b, 0x0d, 0x85, 0x8a, 0x8a, 0x0f + .byte 0x90, 0x70, 0x70, 0xe0, 0x42, 0x3e, 0x3e, 0x7c + .byte 0xc4, 0xb5, 0xb5, 0x71, 0xaa, 0x66, 0x66, 0xcc + .byte 0xd8, 0x48, 0x48, 0x90, 0x05, 0x03, 0x03, 0x06 + .byte 0x01, 0xf6, 0xf6, 0xf7, 0x12, 0x0e, 0x0e, 0x1c + .byte 0xa3, 0x61, 0x61, 0xc2, 0x5f, 0x35, 0x35, 0x6a + .byte 0xf9, 0x57, 0x57, 0xae, 0xd0, 0xb9, 0xb9, 0x69 + .byte 0x91, 0x86, 0x86, 0x17, 0x58, 0xc1, 0xc1, 0x99 + .byte 0x27, 0x1d, 0x1d, 0x3a, 0xb9, 0x9e, 0x9e, 0x27 + .byte 0x38, 0xe1, 0xe1, 0xd9, 0x13, 0xf8, 0xf8, 0xeb + .byte 0xb3, 0x98, 0x98, 0x2b, 0x33, 0x11, 0x11, 0x22 + .byte 0xbb, 0x69, 0x69, 0xd2, 0x70, 0xd9, 0xd9, 0xa9 + .byte 0x89, 0x8e, 0x8e, 0x07, 0xa7, 0x94, 0x94, 0x33 + .byte 0xb6, 0x9b, 0x9b, 0x2d, 0x22, 0x1e, 0x1e, 0x3c + .byte 0x92, 0x87, 0x87, 0x15, 0x20, 0xe9, 0xe9, 0xc9 + .byte 0x49, 0xce, 0xce, 0x87, 0xff, 0x55, 0x55, 0xaa + .byte 0x78, 0x28, 0x28, 0x50, 0x7a, 0xdf, 0xdf, 0xa5 + .byte 0x8f, 0x8c, 0x8c, 0x03, 0xf8, 0xa1, 0xa1, 0x59 + .byte 0x80, 0x89, 0x89, 0x09, 0x17, 0x0d, 0x0d, 0x1a + .byte 0xda, 0xbf, 0xbf, 0x65, 0x31, 0xe6, 0xe6, 0xd7 + .byte 0xc6, 0x42, 0x42, 0x84, 0xb8, 0x68, 0x68, 0xd0 + .byte 0xc3, 0x41, 0x41, 0x82, 0xb0, 0x99, 0x99, 0x29 + .byte 0x77, 0x2d, 0x2d, 0x5a, 0x11, 0x0f, 0x0f, 0x1e + .byte 0xcb, 0xb0, 0xb0, 0x7b, 0xfc, 0x54, 0x54, 0xa8 + .byte 0xd6, 0xbb, 0xbb, 0x6d, 0x3a, 0x16, 0x16, 0x2c + .global Td0 + .type Td0, @object +Td0: .byte 0x50, 0xa7, 0xf4, 0x51, 0x53, 0x65, 0x41, 0x7e + .byte 0xc3, 0xa4, 0x17, 0x1a, 0x96, 0x5e, 0x27, 0x3a + .byte 0xcb, 0x6b, 0xab, 0x3b, 0xf1, 0x45, 0x9d, 0x1f + .byte 0xab, 0x58, 0xfa, 0xac, 0x93, 0x03, 0xe3, 0x4b + .byte 0x55, 0xfa, 0x30, 0x20, 0xf6, 0x6d, 0x76, 0xad + .byte 0x91, 0x76, 0xcc, 0x88, 0x25, 0x4c, 0x02, 0xf5 + .byte 0xfc, 0xd7, 0xe5, 0x4f, 0xd7, 0xcb, 0x2a, 0xc5 + .byte 0x80, 0x44, 0x35, 0x26, 0x8f, 0xa3, 0x62, 0xb5 + .byte 0x49, 0x5a, 0xb1, 0xde, 0x67, 0x1b, 0xba, 0x25 + .byte 0x98, 0x0e, 0xea, 0x45, 0xe1, 0xc0, 0xfe, 0x5d + .byte 0x02, 0x75, 0x2f, 0xc3, 0x12, 0xf0, 0x4c, 0x81 + .byte 0xa3, 0x97, 0x46, 0x8d, 0xc6, 0xf9, 0xd3, 0x6b + .byte 0xe7, 0x5f, 0x8f, 0x03, 0x95, 0x9c, 0x92, 0x15 + .byte 0xeb, 0x7a, 0x6d, 0xbf, 0xda, 0x59, 0x52, 0x95 + .byte 0x2d, 0x83, 0xbe, 0xd4, 0xd3, 0x21, 0x74, 0x58 + .byte 0x29, 0x69, 0xe0, 0x49, 0x44, 0xc8, 0xc9, 0x8e + .byte 0x6a, 0x89, 0xc2, 0x75, 0x78, 0x79, 0x8e, 0xf4 + .byte 0x6b, 0x3e, 0x58, 0x99, 0xdd, 0x71, 0xb9, 0x27 + .byte 0xb6, 0x4f, 0xe1, 0xbe, 0x17, 0xad, 0x88, 0xf0 + .byte 0x66, 0xac, 0x20, 0xc9, 0xb4, 0x3a, 0xce, 0x7d + .byte 0x18, 0x4a, 0xdf, 0x63, 0x82, 0x31, 0x1a, 0xe5 + .byte 0x60, 0x33, 0x51, 0x97, 0x45, 0x7f, 0x53, 0x62 + .byte 0xe0, 0x77, 0x64, 0xb1, 0x84, 0xae, 0x6b, 0xbb + .byte 0x1c, 0xa0, 0x81, 0xfe, 0x94, 0x2b, 0x08, 0xf9 + .byte 0x58, 0x68, 0x48, 0x70, 0x19, 0xfd, 0x45, 0x8f + .byte 0x87, 0x6c, 0xde, 0x94, 0xb7, 0xf8, 0x7b, 0x52 + .byte 0x23, 0xd3, 0x73, 0xab, 0xe2, 0x02, 0x4b, 0x72 + .byte 0x57, 0x8f, 0x1f, 0xe3, 0x2a, 0xab, 0x55, 0x66 + .byte 0x07, 0x28, 0xeb, 0xb2, 0x03, 0xc2, 0xb5, 0x2f + .byte 0x9a, 0x7b, 0xc5, 0x86, 0xa5, 0x08, 0x37, 0xd3 + .byte 0xf2, 0x87, 0x28, 0x30, 0xb2, 0xa5, 0xbf, 0x23 + .byte 0xba, 0x6a, 0x03, 0x02, 0x5c, 0x82, 0x16, 0xed + .byte 0x2b, 0x1c, 0xcf, 0x8a, 0x92, 0xb4, 0x79, 0xa7 + .byte 0xf0, 0xf2, 0x07, 0xf3, 0xa1, 0xe2, 0x69, 0x4e + .byte 0xcd, 0xf4, 0xda, 0x65, 0xd5, 0xbe, 0x05, 0x06 + .byte 0x1f, 0x62, 0x34, 0xd1, 0x8a, 0xfe, 0xa6, 0xc4 + .byte 0x9d, 0x53, 0x2e, 0x34, 0xa0, 0x55, 0xf3, 0xa2 + .byte 0x32, 0xe1, 0x8a, 0x05, 0x75, 0xeb, 0xf6, 0xa4 + .byte 0x39, 0xec, 0x83, 0x0b, 0xaa, 0xef, 0x60, 0x40 + .byte 0x06, 0x9f, 0x71, 0x5e, 0x51, 0x10, 0x6e, 0xbd + .byte 0xf9, 0x8a, 0x21, 0x3e, 0x3d, 0x06, 0xdd, 0x96 + .byte 0xae, 0x05, 0x3e, 0xdd, 0x46, 0xbd, 0xe6, 0x4d + .byte 0xb5, 0x8d, 0x54, 0x91, 0x05, 0x5d, 0xc4, 0x71 + .byte 0x6f, 0xd4, 0x06, 0x04, 0xff, 0x15, 0x50, 0x60 + .byte 0x24, 0xfb, 0x98, 0x19, 0x97, 0xe9, 0xbd, 0xd6 + .byte 0xcc, 0x43, 0x40, 0x89, 0x77, 0x9e, 0xd9, 0x67 + .byte 0xbd, 0x42, 0xe8, 0xb0, 0x88, 0x8b, 0x89, 0x07 + .byte 0x38, 0x5b, 0x19, 0xe7, 0xdb, 0xee, 0xc8, 0x79 + .byte 0x47, 0x0a, 0x7c, 0xa1, 0xe9, 0x0f, 0x42, 0x7c + .byte 0xc9, 0x1e, 0x84, 0xf8, 0x00, 0x00, 0x00, 0x00 + .byte 0x83, 0x86, 0x80, 0x09, 0x48, 0xed, 0x2b, 0x32 + .byte 0xac, 0x70, 0x11, 0x1e, 0x4e, 0x72, 0x5a, 0x6c + .byte 0xfb, 0xff, 0x0e, 0xfd, 0x56, 0x38, 0x85, 0x0f + .byte 0x1e, 0xd5, 0xae, 0x3d, 0x27, 0x39, 0x2d, 0x36 + .byte 0x64, 0xd9, 0x0f, 0x0a, 0x21, 0xa6, 0x5c, 0x68 + .byte 0xd1, 0x54, 0x5b, 0x9b, 0x3a, 0x2e, 0x36, 0x24 + .byte 0xb1, 0x67, 0x0a, 0x0c, 0x0f, 0xe7, 0x57, 0x93 + .byte 0xd2, 0x96, 0xee, 0xb4, 0x9e, 0x91, 0x9b, 0x1b + .byte 0x4f, 0xc5, 0xc0, 0x80, 0xa2, 0x20, 0xdc, 0x61 + .byte 0x69, 0x4b, 0x77, 0x5a, 0x16, 0x1a, 0x12, 0x1c + .byte 0x0a, 0xba, 0x93, 0xe2, 0xe5, 0x2a, 0xa0, 0xc0 + .byte 0x43, 0xe0, 0x22, 0x3c, 0x1d, 0x17, 0x1b, 0x12 + .byte 0x0b, 0x0d, 0x09, 0x0e, 0xad, 0xc7, 0x8b, 0xf2 + .byte 0xb9, 0xa8, 0xb6, 0x2d, 0xc8, 0xa9, 0x1e, 0x14 + .byte 0x85, 0x19, 0xf1, 0x57, 0x4c, 0x07, 0x75, 0xaf + .byte 0xbb, 0xdd, 0x99, 0xee, 0xfd, 0x60, 0x7f, 0xa3 + .byte 0x9f, 0x26, 0x01, 0xf7, 0xbc, 0xf5, 0x72, 0x5c + .byte 0xc5, 0x3b, 0x66, 0x44, 0x34, 0x7e, 0xfb, 0x5b + .byte 0x76, 0x29, 0x43, 0x8b, 0xdc, 0xc6, 0x23, 0xcb + .byte 0x68, 0xfc, 0xed, 0xb6, 0x63, 0xf1, 0xe4, 0xb8 + .byte 0xca, 0xdc, 0x31, 0xd7, 0x10, 0x85, 0x63, 0x42 + .byte 0x40, 0x22, 0x97, 0x13, 0x20, 0x11, 0xc6, 0x84 + .byte 0x7d, 0x24, 0x4a, 0x85, 0xf8, 0x3d, 0xbb, 0xd2 + .byte 0x11, 0x32, 0xf9, 0xae, 0x6d, 0xa1, 0x29, 0xc7 + .byte 0x4b, 0x2f, 0x9e, 0x1d, 0xf3, 0x30, 0xb2, 0xdc + .byte 0xec, 0x52, 0x86, 0x0d, 0xd0, 0xe3, 0xc1, 0x77 + .byte 0x6c, 0x16, 0xb3, 0x2b, 0x99, 0xb9, 0x70, 0xa9 + .byte 0xfa, 0x48, 0x94, 0x11, 0x22, 0x64, 0xe9, 0x47 + .byte 0xc4, 0x8c, 0xfc, 0xa8, 0x1a, 0x3f, 0xf0, 0xa0 + .byte 0xd8, 0x2c, 0x7d, 0x56, 0xef, 0x90, 0x33, 0x22 + .byte 0xc7, 0x4e, 0x49, 0x87, 0xc1, 0xd1, 0x38, 0xd9 + .byte 0xfe, 0xa2, 0xca, 0x8c, 0x36, 0x0b, 0xd4, 0x98 + .byte 0xcf, 0x81, 0xf5, 0xa6, 0x28, 0xde, 0x7a, 0xa5 + .byte 0x26, 0x8e, 0xb7, 0xda, 0xa4, 0xbf, 0xad, 0x3f + .byte 0xe4, 0x9d, 0x3a, 0x2c, 0x0d, 0x92, 0x78, 0x50 + .byte 0x9b, 0xcc, 0x5f, 0x6a, 0x62, 0x46, 0x7e, 0x54 + .byte 0xc2, 0x13, 0x8d, 0xf6, 0xe8, 0xb8, 0xd8, 0x90 + .byte 0x5e, 0xf7, 0x39, 0x2e, 0xf5, 0xaf, 0xc3, 0x82 + .byte 0xbe, 0x80, 0x5d, 0x9f, 0x7c, 0x93, 0xd0, 0x69 + .byte 0xa9, 0x2d, 0xd5, 0x6f, 0xb3, 0x12, 0x25, 0xcf + .byte 0x3b, 0x99, 0xac, 0xc8, 0xa7, 0x7d, 0x18, 0x10 + .byte 0x6e, 0x63, 0x9c, 0xe8, 0x7b, 0xbb, 0x3b, 0xdb + .byte 0x09, 0x78, 0x26, 0xcd, 0xf4, 0x18, 0x59, 0x6e + .byte 0x01, 0xb7, 0x9a, 0xec, 0xa8, 0x9a, 0x4f, 0x83 + .byte 0x65, 0x6e, 0x95, 0xe6, 0x7e, 0xe6, 0xff, 0xaa + .byte 0x08, 0xcf, 0xbc, 0x21, 0xe6, 0xe8, 0x15, 0xef + .byte 0xd9, 0x9b, 0xe7, 0xba, 0xce, 0x36, 0x6f, 0x4a + .byte 0xd4, 0x09, 0x9f, 0xea, 0xd6, 0x7c, 0xb0, 0x29 + .byte 0xaf, 0xb2, 0xa4, 0x31, 0x31, 0x23, 0x3f, 0x2a + .byte 0x30, 0x94, 0xa5, 0xc6, 0xc0, 0x66, 0xa2, 0x35 + .byte 0x37, 0xbc, 0x4e, 0x74, 0xa6, 0xca, 0x82, 0xfc + .byte 0xb0, 0xd0, 0x90, 0xe0, 0x15, 0xd8, 0xa7, 0x33 + .byte 0x4a, 0x98, 0x04, 0xf1, 0xf7, 0xda, 0xec, 0x41 + .byte 0x0e, 0x50, 0xcd, 0x7f, 0x2f, 0xf6, 0x91, 0x17 + .byte 0x8d, 0xd6, 0x4d, 0x76, 0x4d, 0xb0, 0xef, 0x43 + .byte 0x54, 0x4d, 0xaa, 0xcc, 0xdf, 0x04, 0x96, 0xe4 + .byte 0xe3, 0xb5, 0xd1, 0x9e, 0x1b, 0x88, 0x6a, 0x4c + .byte 0xb8, 0x1f, 0x2c, 0xc1, 0x7f, 0x51, 0x65, 0x46 + .byte 0x04, 0xea, 0x5e, 0x9d, 0x5d, 0x35, 0x8c, 0x01 + .byte 0x73, 0x74, 0x87, 0xfa, 0x2e, 0x41, 0x0b, 0xfb + .byte 0x5a, 0x1d, 0x67, 0xb3, 0x52, 0xd2, 0xdb, 0x92 + .byte 0x33, 0x56, 0x10, 0xe9, 0x13, 0x47, 0xd6, 0x6d + .byte 0x8c, 0x61, 0xd7, 0x9a, 0x7a, 0x0c, 0xa1, 0x37 + .byte 0x8e, 0x14, 0xf8, 0x59, 0x89, 0x3c, 0x13, 0xeb + .byte 0xee, 0x27, 0xa9, 0xce, 0x35, 0xc9, 0x61, 0xb7 + .byte 0xed, 0xe5, 0x1c, 0xe1, 0x3c, 0xb1, 0x47, 0x7a + .byte 0x59, 0xdf, 0xd2, 0x9c, 0x3f, 0x73, 0xf2, 0x55 + .byte 0x79, 0xce, 0x14, 0x18, 0xbf, 0x37, 0xc7, 0x73 + .byte 0xea, 0xcd, 0xf7, 0x53, 0x5b, 0xaa, 0xfd, 0x5f + .byte 0x14, 0x6f, 0x3d, 0xdf, 0x86, 0xdb, 0x44, 0x78 + .byte 0x81, 0xf3, 0xaf, 0xca, 0x3e, 0xc4, 0x68, 0xb9 + .byte 0x2c, 0x34, 0x24, 0x38, 0x5f, 0x40, 0xa3, 0xc2 + .byte 0x72, 0xc3, 0x1d, 0x16, 0x0c, 0x25, 0xe2, 0xbc + .byte 0x8b, 0x49, 0x3c, 0x28, 0x41, 0x95, 0x0d, 0xff + .byte 0x71, 0x01, 0xa8, 0x39, 0xde, 0xb3, 0x0c, 0x08 + .byte 0x9c, 0xe4, 0xb4, 0xd8, 0x90, 0xc1, 0x56, 0x64 + .byte 0x61, 0x84, 0xcb, 0x7b, 0x70, 0xb6, 0x32, 0xd5 + .byte 0x74, 0x5c, 0x6c, 0x48, 0x42, 0x57, 0xb8, 0xd0 + +# NOTE: The following is apparently unreferenced code/data + .global Td4s_rom + .type Td4s_rom, @object +Td4s_rom: .word 0xd56a0952 # 800: 52096ad5 + .word 0x38a53630 # 804: 3036a538 + .word 0x9ea340bf # 808: bf40a39e + .word 0xfbd7f381 # 80c: 81f3d7fb + .word 0x8239e37c # 810: 7ce33982 + .word 0x87ff2f9b # 814: 9b2fff87 + .word 0x44438e34 # 818: 348e4344 + .word 0xcbe9dec4 # 81c: c4dee9cb + .word 0x32947b54 # 820: 547b9432 + .word 0x3d23c2a6 # 824: a6c2233d + .word 0x0b954cee # 828: ee4c950b + .word 0x4ec3fa42 # 82c: 42fac34e + .word 0x66a12e08 # 830: 082ea166 + .word 0xb224d928 # 834: 28d924b2 + .word 0x49a25b76 # 838: 765ba249 + .word 0x25d18b6d # 83c: 6d8bd125 + .word 0x64f6f872 # 840: 72f8f664 + .word 0x16986886 # 844: 86689816 + .word 0xcc5ca4d4 # 848: d4a45ccc + .word 0x92b6655d # 84c: 5d65b692 + .word 0x5048706c # 850: 6c704850 + .word 0xdab9edfd # 854: fdedb9da + .word 0x5746155e # 858: 5e154657 + .word 0x849d8da7 # 85c: a78d9d84 + .word 0x00abd890 # 860: 90d8ab00 + .word 0x0ad3bc8c # 864: 8cbcd30a + .word 0x0558e4f7 # 868: f7e45805 + .word 0x0645b3b8 # 86c: b8b34506 + .word 0x8f1e2cd0 # 870: d02c1e8f + .word 0x020f3fca # 874: ca3f0f02 + .word 0x03bdafc1 # 878: c1afbd03 + .word 0x6b8a1301 # 87c: 01138a6b + .word 0x4111913a # 880: 3a911141 + .word 0xeadc674f # 884: 4f67dcea + .word 0xcecff297 # 888: 97f2cfce + .word 0x73e6b4f0 # 88c: f0b4e673 + .word 0x2274ac96 # 890: 96ac7422 + .word 0x8535ade7 # 894: e7ad3585 + .word 0xe837f9e2 # 898: e2f937e8 + .word 0x6edf751c # 89c: 1c75df6e + .word 0x711af147 # 8a0: 47f11a71 + .word 0x89c5291d # 8a4: 1d29c589 + .word 0x0e62b76f # 8a8: 6fb7620e + .word 0x1bbe18aa # 8ac: aa18be1b + .word 0x4b3e56fc # 8b0: fc563e4b + .word 0x2079d2c6 # 8b4: c6d27920 + .word 0xfec0db9a # 8b8: 9adbc0fe + .word 0xf45acd78 # 8bc: 78cd5af4 + .word 0x33a8dd1f # 8c0: 1fdda833 + .word 0x31c70788 # 8c4: 8807c731 + .word 0x591012b1 # 8c8: b1121059 + .word 0x5fec8027 # 8cc: 2780ec5f + .word 0xa97f5160 # 8d0: 60517fa9 + .word 0x0d4ab519 # 8d4: 19b54a0d + .word 0x9f7ae52d # 8d8: 2de57a9f + .word 0xef9cc993 # 8dc: 93c99cef + .word 0x4d3be0a0 # 8e0: a0e03b4d + .word 0xb0f52aae # 8e4: ae2af5b0 + .word 0x3cbbebc8 # 8e8: c8ebbb3c + .word 0x61995383 # 8ec: 83539961 + .word 0x7e042b17 # 8f0: 172b047e + .word 0x26d677ba # 8f4: ba77d626 + .word 0x631469e1 # 8f8: e1691463 + .word 0x7d0c2155 # 8fc: 55210c7d diff --git a/binary_sdk/libwpa_stage1/aes-unwrap.S b/binary_sdk/libwpa_stage1/aes-unwrap.S new file mode 100644 index 0000000..f01a5e3 --- /dev/null +++ b/binary_sdk/libwpa_stage1/aes-unwrap.S @@ -0,0 +1,126 @@ + + .section .irom0.text, "ax", @progbits + + .literal_position # 0: 00000000 + # 4: 00000000 + # 8: 00000000 + # c: 00000000 + # 10: 00000000 + # 14: 00000000 + # 18: 00000000 + # 1c: 00000000 + # 20: 00000000 + +# Function @ .irom0.text+0x24 +# Local variables/stack: +# (local0): byte[9] @ -0x39 +# (local1): word @ -0x30 +# (local2): word @ -0x2c +# (local3): word @ -0x28 +# (local4): word @ -0x24 +# (local5): word @ -0x20 +# (local6): word @ -0x1c +# (local7): word @ -0x18 +# (local8): word @ -0x14 +# (local9): word[4] @ -0x10 + .balign 4 + .global aes_unwrap + .type aes_unwrap, @function +aes_unwrap: addi sp, sp, -80 /* (FP)-0x50 */ # 24: 12c1b0 + s32i a15, sp, 48 /* a15 -> [(local5)] */ # 27: f9c1 + s32i a0, sp, 32 /* a0 -> [(local1)] */ # 29: 0981 + s32i a12, sp, 36 /* a12 -> [(local2)] */ # 2b: c991 + s32i a14, sp, 44 /* a14 -> [(local4)] */ # 2d: e9b1 + s32i a13, sp, 40 /* a13 -> [(local3)] */ # 2f: d9a1 + s32i a3, sp, 60 /* arg1 -> [(local8)] */ # 31: 39f1 + mov a13, a5 /* arg3 */ # 33: dd05 + mov a3, a4 /* arg2 */ # 35: 3d04 + mov a14, a2 /* arg0 */ # 37: ed02 + mov a12, a4 /* arg2 */ # 39: cd04 + mov a2, sp /* (FP)-0x50 */ # 3b: 2d01 + movi a4, 8 /* 0x00000008 */ # 3d: 0c84 + call0 memcpy # 3f: 01f0ffc0 + # 43: 0000 + addi a3, a12, 8 /* arg2+0x8 */ # 45: 8b3c + l32i a12, sp, 60 /* [(local8)] */ # 47: c8f1 + mov a2, a13 /* arg3 */ # 49: 2d0d + slli a12, a12, 3 # 4b: d0cc11 + mov a4, a12 # 4e: 4d0c + call0 memcpy # 50: 01edffc0 + # 54: 0000 + mov a2, a14 /* arg0 */ # 56: 2d0e + movi a3, 16 /* 0x00000010 */ # 58: 1c03 + call0 aes_decrypt_init # 5a: 01ebffc0 + # 5e: 0000 + mov a0, a2 # 60: 0d02 + beqz a2, .Lbr006 # 62: 16920a + addi a14, sp, 24 /* (FP)-0x38 */ # 65: e2c118 + s32i a0, sp, 64 /* a0 -> [(local9)] */ # 68: 026110 + l32i a15, sp, 60 /* [(local8)] */ # 6b: f8f1 + add a2, a12, a13 # 6d: da2c + movi a3, 5 /* 0x00000005 */ # 6f: 0c53 + s32i a3, sp, 56 /* 0x00000005 -> [(local7)] */ # 71: 39e1 + addi a2, a2, -8 # 73: 22c2f8 + addx4 a15, a15, a15 # 76: f0ffa0 + s32i a2, sp, 52 /* a2 -> [(local6)] */ # 79: 29d1 +.Lbr001: l32i a0, sp, 60 /* [(local8)] */ # 7b: 08f1 + l32i a12, sp, 52 /* [(local6)] */ # 7d: c8d1 + blti a0, 1, .Lbr003 # 7f: a61052 + add a13, a15, a0 # 82: 0adf +.Lbr002: addi a2, sp, 16 /* (FP)-0x40 */ # 84: 22c110 + mov a3, sp /* (FP)-0x50 */ # 87: 3d01 + movi a4, 8 /* 0x00000008 */ # 89: 0c84 + call0 memcpy # 8b: 01e0ffc0 + # 8f: 0000 + mov a2, a14 /* (FP)-0x38 */ # 91: 2d0e + mov a3, a12 # 93: 3d0c + l8ui a0, sp, 23 /* [(local0)] */ # 95: 020117 + movi a4, 8 /* 0x00000008 */ # 98: 0c84 + xor a0, a13, a0 # 9a: 000d30 + s8i a0, sp, 23 /* a0 -> [(local0)] */ # 9d: 024117 + call0 memcpy # a0: 01dcffc0 + # a4: 0000 + l32i a2, sp, 64 /* [(local9)] */ # a6: 222110 + addi a3, sp, 16 /* (FP)-0x40 */ # a9: 32c110 + mov a4, a3 /* (FP)-0x40 */ # ac: 4d03 + call0 aes_decrypt # ae: 01d9ffc0 + # b2: 0000 + mov a2, sp /* (FP)-0x50 */ # b4: 2d01 + addi a3, sp, 16 /* (FP)-0x40 */ # b6: 32c110 + movi a4, 8 /* 0x00000008 */ # b9: 0c84 + call0 memcpy # bb: 01d7ffc0 + # bf: 0000 + mov a2, a12 # c1: 2d0c + mov a3, a14 /* (FP)-0x38 */ # c3: 3d0e + movi a4, 8 /* 0x00000008 */ # c5: 0c84 + call0 memcpy # c7: 01d5ffc0 + # cb: 0000 + addi a12, a12, -8 # cd: c2ccf8 + addi a13, a13, -1 # d0: 0bdd + bne a15, a13, .Lbr002 # d2: d79fae +.Lbr003: l32i a3, sp, 60 /* [(local8)] */ # d5: 38f1 + l32i a2, sp, 56 /* [(local7)] */ # d7: 28e1 + sub a15, a15, a3 # d9: 30ffc0 + addi a2, a2, -1 /* [(local7)]-0x1 */ # dc: 0b22 + s32i a2, sp, 56 /* [(local7)]-0x1 -> [(local7)] */ # de: 29e1 + bnei a2, -1, .Lbr001 # e0: 660297 + l32i a2, sp, 64 /* [(local9)] */ # e3: 222110 + call0 aes_decrypt_deinit # e6: 01ceffc0 + # ea: 0000 + mov a0, sp /* (FP)-0x50 */ # ec: 0d01 + addi a2, sp, 8 /* (FP)-0x48 */ # ee: 8b21 + movi a3, 166 /* 0x000000a6 */ # f0: 32a0a6 +.Lbr004: l8ui a4, a0, 0 # f3: 420000 + addi a0, a0, 1 # f6: 1b00 + bne a4, a3, .Lbr006 # f8: 379413 + bne a0, a2, .Lbr004 # fb: 2790f4 + movi a2, 0 /* 0x00000000 */ # fe: 0c02 +.Lbr005: l32i a12, sp, 36 /* [(local2)] */ # 100: c891 + l32i a13, sp, 40 /* [(local3)] */ # 102: d8a1 + l32i a14, sp, 44 /* [(local4)] */ # 104: e8b1 + l32i a15, sp, 48 /* [(local5)] */ # 106: f8c1 + l32i a0, sp, 32 /* [(local1)] */ # 108: 0881 + addi sp, sp, 80 /* (top of frame) */ # 10a: 12c150 + ret # 10d: 0df0 +.Lbr006: movi a2, -1 /* 0xffffffff */ # 10f: 7cf2 + j .Lbr005 # 111: c6faff diff --git a/binary_sdk/libwpa_stage1/aes-wrap.S b/binary_sdk/libwpa_stage1/aes-wrap.S new file mode 100644 index 0000000..a7e90ca --- /dev/null +++ b/binary_sdk/libwpa_stage1/aes-wrap.S @@ -0,0 +1,127 @@ + + .section .irom0.text, "ax", @progbits + + .literal_position # 0: 00000000 + # 4: 00000000 + # 8: 00000000 + # c: 00000000 + # 10: 00000000 + # 14: 00000000 + # 18: 00000000 + # 1c: 00000000 + # 20: 00000000 + +# Function @ .irom0.text+0x24 +# Local variables/stack: +# (local0): word @ -0x30 +# (local1): word @ -0x2c +# (local2): word @ -0x28 +# (local3): word @ -0x24 +# (local4): word @ -0x20 +# (local5): word @ -0x1c +# (local6): word @ -0x18 +# (local7): word @ -0x14 +# (local8): word @ -0x10 +# (local9): word @ -0xc +# (local10): word @ -0x8 +# (local11): word @ -0x4 + .balign 4 + .global aes_wrap + .type aes_wrap, @function +aes_wrap: addi sp, sp, -64 /* (FP)-0x40 */ # 24: 12c1c0 + s32i a15, sp, 32 /* a15 -> [(local4)] */ # 27: f981 + s32i a0, sp, 16 /* a0 -> [(local0)] */ # 29: 0941 + s32i a12, sp, 20 /* a12 -> [(local1)] */ # 2b: c951 + s32i a13, sp, 24 /* a13 -> [(local2)] */ # 2d: d961 + s32i a14, sp, 28 /* a14 -> [(local3)] */ # 2f: e971 + s32i a3, sp, 48 /* arg1 -> [(local8)] */ # 31: 39c1 + mov a14, a5 /* arg3 */ # 33: ed05 + movi a3, 166 /* 0x000000a6 */ # 35: 32a0a6 + mov a13, a2 /* arg0 */ # 38: dd02 + mov a12, a4 /* arg2 */ # 3a: cd04 + mov a2, a5 /* arg3 */ # 3c: 2d05 + movi a4, 8 /* 0x00000008 */ # 3e: 0c84 + call0 memset # 40: 01f0ffc0 + # 44: 0000 + mov a3, a12 /* arg2 */ # 46: 3d0c + l32i a4, sp, 48 /* [(local8)] */ # 48: 48c1 + addi a2, a14, 8 /* arg3+0x8 */ # 4a: 8b2e + s32i a2, sp, 40 /* arg3+0x8 -> [(local6)] */ # 4c: 29a1 + slli a4, a4, 3 # 4e: d04411 + call0 memcpy # 51: 01ecffc0 + # 55: 0000 + mov a2, a13 /* arg0 */ # 57: 2d0d + movi a3, 16 /* 0x00000010 */ # 59: 1c03 + call0 aes_encrypt_init # 5b: 01ebffc0 + # 5f: 0000 + bnez a2, .Lbr001 # 61: cc32 + movi a2, -1 /* 0xffffffff */ # 63: 7cf2 + j .Lbr005 # 65: c62200 +.Lbr001: addi a15, sp, 8 /* (FP)-0x38 */ # 68: 8bf1 + s32i a2, sp, 56 /* a2 -> [(local10)] */ # 6a: 29e1 + l32i a6, sp, 48 /* [(local8)] */ # 6c: 68c1 + movi a5, 0 /* 0x00000000 */ # 6e: 0c05 + movi a7, 0 /* 0x00000000 */ # 70: 0c07 + s32i a7, sp, 52 /* 0x00000000 -> [(local9)] */ # 72: 79d1 + s32i a5, sp, 44 /* 0x00000000 -> [(local7)] */ # 74: 59b1 + addi a6, a6, 1 /* [(local8)]+0x1 */ # 76: 1b66 + s32i a6, sp, 36 /* [(local8)]+0x1 -> [(local5)] */ # 78: 6991 +.Lbr002: l32i a8, sp, 48 /* [(local8)] */ # 7a: 88c1 + l32i a12, sp, 40 /* [(local6)] */ # 7c: c8a1 + blti a8, 1, .Lbr004 # 7e: a61857 + l32i a9, sp, 52 /* [(local9)] */ # 81: 98d1 + l32i a10, sp, 36 /* [(local5)] */ # 83: a891 + addi a13, a9, 1 /* [(local9)]+0x1 */ # 85: 1bd9 + add a9, a9, a10 # 87: aa99 + s32i a9, sp, 60 /* a9 -> [(local11)] */ # 89: 99f1 +.Lbr003: mov a2, sp /* (FP)-0x40 */ # 8b: 2d01 + mov a3, a14 /* arg3 */ # 8d: 3d0e + movi a4, 8 /* 0x00000008 */ # 8f: 0c84 + call0 memcpy # 91: 01deffc0 + # 95: 0000 + mov a2, a15 /* (FP)-0x38 */ # 97: 2d0f + mov a3, a12 # 99: 3d0c + movi a4, 8 /* 0x00000008 */ # 9b: 0c84 + call0 memcpy # 9d: 01dcffc0 + # a1: 0000 + l32i a2, sp, 56 /* [(local10)] */ # a3: 28e1 + mov a3, sp /* (FP)-0x40 */ # a5: 3d01 + mov a4, sp /* (FP)-0x40 */ # a7: 4d01 + call0 aes_encrypt # a9: 01daffc0 + # ad: 0000 + mov a2, a14 /* arg3 */ # af: 2d0e + mov a3, sp /* (FP)-0x40 */ # b1: 3d01 + movi a4, 8 /* 0x00000008 */ # b3: 0c84 + call0 memcpy # b5: 01d8ffc0 + # b9: 0000 + mov a2, a12 # bb: 2d0c + mov a3, a15 /* (FP)-0x38 */ # bd: 3d0f + l8ui a11, a14, 7 /* [arg3+0x7] */ # bf: b20e07 + movi a4, 8 /* 0x00000008 */ # c2: 0c84 + xor a11, a13, a11 # c4: b0bd30 + s8i a11, a14, 7 /* a11 -> [arg3+0x7] */ # c7: b24e07 + call0 memcpy # ca: 01d4ffc0 + # ce: 0000 + addi a12, a12, 8 # d0: 8bcc + l32i a0, sp, 60 /* [(local11)] */ # d2: 08f1 + addi a13, a13, 1 # d4: 1bdd + bne a13, a0, .Lbr003 # d6: 079db1 +.Lbr004: l32i a4, sp, 48 /* [(local8)] */ # d9: 48c1 + l32i a2, sp, 44 /* [(local7)] */ # db: 28b1 + l32i a3, sp, 52 /* [(local9)] */ # dd: 38d1 + addi a2, a2, 1 /* [(local7)]+0x1 */ # df: 1b22 + s32i a2, sp, 44 /* [(local7)]+0x1 -> [(local7)] */ # e1: 29b1 + add a3, a3, a4 # e3: 4a33 + s32i a3, sp, 52 /* a3 -> [(local9)] */ # e5: 39d1 + bnei a2, 6, .Lbr002 # e7: 66628f + l32i a2, sp, 56 /* [(local10)] */ # ea: 28e1 + call0 aes_encrypt_deinit # ec: 01cdffc0 + # f0: 0000 + movi a2, 0 /* 0x00000000 */ # f2: 0c02 +.Lbr005: l32i a12, sp, 20 /* [(local1)] */ # f4: c851 + l32i a13, sp, 24 /* [(local2)] */ # f6: d861 + l32i a14, sp, 28 /* [(local3)] */ # f8: e871 + l32i a15, sp, 32 /* [(local4)] */ # fa: f881 + l32i a0, sp, 16 /* [(local0)] */ # fc: 0841 + addi sp, sp, 64 /* (top of frame) */ # fe: 12c140 + ret # 101: 0df0 diff --git a/binary_sdk/libwpa_stage1/ap_config.S b/binary_sdk/libwpa_stage1/ap_config.S new file mode 100644 index 0000000..6e7b76b --- /dev/null +++ b/binary_sdk/libwpa_stage1/ap_config.S @@ -0,0 +1,386 @@ + + .section .irom0.text, "ax", @progbits + + .literal_position # 0: 80510100 + # 4: ffff0000 + +# Function @ .irom0.text+0x8 + .balign 4 + .global hostapd_config_defaults_bss + .type hostapd_config_defaults_bss, @function +hostapd_config_defaults_bss: + movi a4, 0x0000ffff # 8: 41ffff + movi a3, 300 /* 0x0000012c */ # b: 32a12c + movi a5, 4 /* 0x00000004 */ # e: 0c45 + movi a6, 0 /* 0x00000000 */ # 10: 0c06 + movi a7, 0x00015180 # 12: 71fbff + movi a8, 600 /* 0x00000258 */ # 15: 82a258 + movi a9, 1 /* 0x00000001 */ # 18: 0c19 + movi a10, 3 /* 0x00000003 */ # 1a: 0c3a + movi a11, 2 /* 0x00000002 */ # 1c: 0c2b + s32i a11, a2, 116 /* 0x00000002 -> [arg0+0x74] */ # 1e: b2621d + s32i a11, a2, 132 /* 0x00000002 -> [arg0+0x84] */ # 21: b26221 + s32i a11, a2, 140 /* 0x00000002 -> [arg0+0x8c] */ # 24: b26223 + s32i a11, a2, 144 /* 0x00000002 -> [arg0+0x90] */ # 27: b26224 + s32i a11, a2, 4 /* 0x00000002 -> [arg0+0x4] */ # 2a: b912 + s32i a11, a2, 12 /* 0x00000002 -> [arg0+0xc] */ # 2c: b932 + s32i a10, a2, 124 /* 0x00000003 -> [arg0+0x7c] */ # 2e: a2621f + s32i a9, a2, 112 /* 0x00000001 -> [arg0+0x70] */ # 31: 92621c + s32i a8, a2, 148 /* 0x00000258 -> [arg0+0x94] */ # 34: 826225 + s32i a7, a2, 156 /* 0x00015180 -> [arg0+0x9c] */ # 37: 726227 + s32i a6, a2, 164 /* 0x00000000 -> [arg0+0xa4] */ # 3a: 626229 + s32i a5, a2, 0 /* 0x00000004 -> [arg0] */ # 3d: 5902 + s32i a3, a2, 108 /* 0x0000012c -> [arg0+0x6c] */ # 3f: 32621b + s32i a3, a2, 180 /* 0x0000012c -> [arg0+0xb4] */ # 42: 32622d + s16i a4, a2, 202 /* 0xffff -> [arg0+0xca] */ # 45: 425265 + movi a3, -1 /* 0xffffffff */ # 48: 7cf3 + s32i a3, a2, 188 /* 0xffffffff -> [arg0+0xbc] */ # 4a: 32622f + ret /* arg0 */ # 4d: 0df0 + + .literal_position # 50: 00000000 + # 54: 00000000 + # 58: 00000000 + # 5c: 00000000 + +# Function @ .irom0.text+0x60 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 + .global hostapd_config_defaults + .type hostapd_config_defaults, @function +hostapd_config_defaults: + movi a2, 100 /* 0x00000064 */ # 60: 22a064 + addi sp, sp, -16 /* (local0) */ # 63: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 66: c911 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 68: d921 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 6a: 0901 + call0 zalloc # 6c: 01f9ffc0 + # 70: 0000 + mov a13, a2 # 72: dd02 + movi a2, 204 /* 0x000000cc */ # 74: 22a0cc + call0 zalloc # 77: 01f7ffc0 + # 7b: 0000 + mov a12, a2 # 7d: cd02 + beqz a13, .Lbr002 # 7f: bc3d + beqz a2, .Lbr002 # 81: bc12 + call0 hostapd_config_defaults_bss # 83: 050000 + s32i a12, a13, 0 # 86: c90d + movi a0, 60 /* 0x0000003c */ # 88: 3cc0 + movi a2, 255 /* 0x000000ff */ # 8a: 22a0ff + movi a3, 12 /* 0x0000000c */ # 8d: 0cc3 + movi a4, 100 /* 0x00000064 */ # 8f: 42a064 + movi a5, 1 /* 0x00000001 */ # 92: 0c15 + movi a6, -1 /* 0xffffffff */ # 94: 7cf6 + s32i a6, a13, 16 # 96: 694d + s32i a6, a13, 20 # 98: 695d + s32i a5, a13, 8 # 9a: 592d + s8i a5, a13, 24 # 9c: 524d18 + s16i a4, a13, 12 # 9f: 425d06 + s16i a3, a13, 68 # a2: 325d22 + s32i a2, a13, 48 # a5: 29cd + s32i a0, a13, 52 # a7: 09dd +.Lbr001: l32i a0, sp, 0 /* [(local0)] */ # a9: 0801 + mov a2, a13 # ab: 2d0d + l32i a12, sp, 4 /* [(local1)] */ # ad: c811 + l32i a13, sp, 8 /* [(local2)] */ # af: d821 + addi sp, sp, 16 /* (top of frame) */ # b1: 12c110 + ret # b4: 0df0 +.Lbr002: mov a2, a13 # b6: 2d0d + call0 free # b8: 01e8ffc0 + # bc: 0000 + mov a2, a12 # be: 2d0c + call0 free # c0: 01e7ffc0 + # c4: 0000 + movi a13, 0 /* 0x00000000 */ # c6: 0c0d + j .Lbr001 # c8: 46f7ff + + .literal_position # cc: 00000000 + +# Function @ .irom0.text+0xd0 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global hostapd_mac_comp + .type hostapd_mac_comp, @function +hostapd_mac_comp: + movi a4, 6 /* 0x00000006 */ # d0: 0c64 + addi sp, sp, -16 /* (local0) */ # d2: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # d5: 0901 + call0 memcmp # d7: 01fdffc0 + # db: 0000 + l32i a0, sp, 0 /* [(local0)] */ # dd: 0801 + addi sp, sp, 16 /* (top of frame) */ # df: 12c110 + ret # e2: 0df0 + + .literal_position # e4: 00000000 + # e8: 00000000 + # ec: 00000000 + +# Function @ .irom0.text+0xf0 +# Local variables/stack: +# (local0): word @ -0x8 +# (local1): word @ -0x4 + .balign 4 + .global hostapd_mac_comp_empty + .type hostapd_mac_comp_empty, @function +hostapd_mac_comp_empty: + movi a3, .Ldata001 # f0: 31fdff + movi a4, 6 /* 0x00000006 */ # f3: 0c64 + addi sp, sp, -16 /* (FP)-0x10 */ # f5: 12c1f0 + s32i a2, sp, 8 /* arg0 -> [(local0)] */ # f8: 2921 + s32i a0, sp, 12 /* a0 -> [(local1)] */ # fa: 0931 + mov a2, sp /* (FP)-0x10 */ # fc: 2d01 + call0 memcpy # fe: 01faffc0 + # 102: 0000 + l32i a2, sp, 8 /* [(local0)] */ # 104: 2821 + mov a3, sp /* (FP)-0x10 */ # 106: 3d01 + movi a4, 6 /* 0x00000006 */ # 108: 0c64 + call0 memcmp # 10a: 01f8ffc0 + # 10e: 0000 + l32i a0, sp, 12 /* [(local1)] */ # 110: 0831 + addi sp, sp, 16 /* (top of frame) */ # 112: 12c110 + ret # 115: 0df0 + + .literal_position # 118: 00000000 + # 11c: 00000000 + # 120: 00000000 + +# Function @ .irom0.text+0x124 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 +.Lfunc001: addi sp, sp, -16 /* (local0) */ # 124: 12c1f0 + s32i a2, sp, 0 /* arg0 -> [(local0)] */ # 127: 2901 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 129: 0911 + movi a2, 48 /* 0x00000030 */ # 12b: 3c02 + call0 zalloc # 12d: 01fbffc0 + # 131: 0000 + l32i a0, sp, 0 /* [(local0)] */ # 133: 0801 + s32i a2, a0, 40 /* a2 -> [[(local0)]+0x28] */ # 135: 29a0 + bnez a2, .Lbr003 # 137: cc32 + movi a2, -1 /* 0xffffffff */ # 139: 7cf2 + j .Lbr004 # 13b: 860300 +.Lbr003: addi a2, a2, 8 # 13e: 8b22 + movi a3, g_ic+0x2ed # 140: 31f6ff + movi a4, 32 /* 0x00000020 */ # 143: 2c04 + call0 memcpy # 145: 01f6ffc0 + # 149: 0000 + movi a2, 0 /* 0x00000000 */ # 14b: 0c02 +.Lbr004: l32i a0, sp, 4 /* [(local1)] */ # 14d: 0811 + addi sp, sp, 16 /* (top of frame) */ # 14f: 12c110 + ret # 152: 0df0 + +# Function @ .irom0.text+0x154 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global hostapd_setup_wpa_psk + .type hostapd_setup_wpa_psk, @function +hostapd_setup_wpa_psk: + addi sp, sp, -16 /* (local0) */ # 154: 12c1f0 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 157: 0911 + l32i a0, a2, 60 /* [arg0+0x3c] */ # 159: 08f2 + beqz a0, .Lbr007 # 15b: 9ca0 + l32i a0, a2, 56 /* [arg0+0x38] */ # 15d: 08e2 + s32i a2, sp, 0 /* arg0 -> [(local0)] */ # 15f: 2901 + bnez a0, .Lbr006 # 161: dc00 + addi a2, a2, 16 /* arg0+0x10 */ # 163: 22c210 + call0 .Lfunc001 # 166: c5fbff + bgez a2, .Lbr005 # 169: d64200 + movi a2, -1 /* 0xffffffff */ # 16c: 7cf2 + j .Lbr008 # 16e: 460200 +.Lbr005: l32i a0, sp, 0 /* [(local0)] */ # 171: 0801 + l32i a0, a0, 56 /* [[(local0)]+0x38] */ # 173: 08e0 +.Lbr006: movi a2, 1 /* 0x00000001 */ # 175: 0c12 + s32i a2, a0, 4 # 177: 2910 +.Lbr007: movi a2, 0 /* 0x00000000 */ # 179: 0c02 +.Lbr008: l32i a0, sp, 4 /* [(local1)] */ # 17b: 0811 + addi sp, sp, 16 /* (top of frame) */ # 17d: 12c110 + ret # 180: 0df0 + + .literal_position # 184: 00000000 + +# Function @ .irom0.text+0x188 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word @ -0x8 +# (local3): word @ -0x4 + .balign 4 + .global hostapd_wep_key_cmp + .type hostapd_wep_key_cmp, @function +hostapd_wep_key_cmp: + addi sp, sp, -16 /* (local0) */ # 188: 12c1f0 + s32i a12, sp, 8 /* a12 -> [(local2)] */ # 18b: c921 + l8ui a4, a3, 0 /* [arg1] */ # 18d: 420300 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 190: 0911 + l8ui a0, a2, 0 /* [arg0] */ # 192: 020200 + s32i a13, sp, 12 /* a13 -> [(local3)] */ # 195: d931 + bne a0, a4, .Lbr011 # 197: 479038 + l32i a6, a3, 40 /* [arg1+0x28] */ # 19a: 68a3 + l32i a5, a2, 40 /* [arg0+0x28] */ # 19c: 58a2 + mov a12, a3 /* arg1 */ # 19e: cd03 + bne a5, a6, .Lbr011 # 1a0: 67952f + mov a13, a2 /* arg0 */ # 1a3: dd02 + addi a7, a2, 16 /* arg0+0x10 */ # 1a5: 72c210 + s32i a7, sp, 0 /* arg0+0x10 -> [(local0)] */ # 1a8: 7901 +.Lbr009: l32i a4, a13, 20 # 1aa: 485d + l32i a8, a12, 20 # 1ac: 885c + bne a8, a4, .Lbr011 # 1ae: 479821 + l32i a2, a13, 4 # 1b1: 281d + l32i a3, a12, 4 # 1b3: 381c + call0 memcmp # 1b5: 01f3ffc0 + # 1b9: 0000 + bnez a2, .Lbr011 # 1bb: dc42 + addi a12, a12, 4 # 1bd: 4bcc + l32i a9, sp, 0 /* [(local0)] */ # 1bf: 9801 + addi a13, a13, 4 # 1c1: 4bdd + bne a13, a9, .Lbr009 # 1c3: 979de3 + movi a2, 0 /* 0x00000000 */ # 1c6: 0c02 +.Lbr010: l32i a12, sp, 8 /* [(local2)] */ # 1c8: c821 + l32i a13, sp, 12 /* [(local3)] */ # 1ca: d831 + l32i a0, sp, 4 /* [(local1)] */ # 1cc: 0811 + addi sp, sp, 16 /* (top of frame) */ # 1ce: 12c110 + ret # 1d1: 0df0 +.Lbr011: movi a2, 1 /* 0x00000001 */ # 1d3: 0c12 + j .Lbr010 # 1d5: c6fbff + + .literal_position # 1d8: 00000000 + +# Function @ .irom0.text+0x1dc +# Local variables/stack: +# (local0): word @ -0x30 +# (local1): word @ -0x2c +# (local2): word @ -0x28 +# (local3): word @ -0x24 +# (local4): word @ -0x20 +# (local5): word @ -0x1c +# (local6): word @ -0x18 +# (local7): word @ -0x14 +# (local8): word[4] @ -0x10 + .balign 4 + .global hostapd_maclist_found + .type hostapd_maclist_found, @function +hostapd_maclist_found: + addi sp, sp, -48 /* (local0) */ # 1dc: 12c1d0 + s32i a14, sp, 20 /* a14 -> [(local5)] */ # 1df: e951 + s32i a0, sp, 8 /* a0 -> [(local2)] */ # 1e1: 0921 + s32i a4, sp, 32 /* arg2 -> [(local8)] */ # 1e3: 4981 + s32i a13, sp, 16 /* a13 -> [(local4)] */ # 1e5: d941 + s32i a15, sp, 24 /* a15 -> [(local6)] */ # 1e7: f961 + s32i a12, sp, 12 /* a12 -> [(local3)] */ # 1e9: c931 + mov a15, a4 /* arg2 */ # 1eb: fd04 + addi a12, a3, -1 /* arg1-0x1 */ # 1ed: 0bc3 + bltz a12, .Lbr017 # 1ef: 961c04 + movi a13, 0 /* 0x00000000 */ # 1f2: 0c0d + s32i a5, sp, 4 /* arg3 -> [(local1)] */ # 1f4: 5911 + s32i a2, sp, 0 /* arg0 -> [(local0)] */ # 1f6: 2901 +.Lbr012: movi a4, 6 /* 0x00000006 */ # 1f8: 0c64 + add a0, a12, a13 # 1fa: da0c + l32i a3, sp, 0 /* [(local0)] */ # 1fc: 3801 + addi a14, a0, 1 # 1fe: 1be0 + movgez a14, a0, a0 # 200: 00e0b3 + srai a14, a14, 1 # 203: e0e121 + addx2 a2, a14, a14 # 206: e02e90 + addx4 a2, a2, a3 # 209: 3022a0 + mov a3, a15 /* arg2 */ # 20c: 3d0f + s32i a2, sp, 28 /* a2 -> [(local7)] */ # 20e: 2971 + call0 memcmp # 210: 01f2ffc0 + # 214: 0000 + bnez a2, .Lbr014 # 216: ccd2 + l32i a2, sp, 4 /* [(local1)] */ # 218: 2811 + l32i a3, sp, 28 /* [(local7)] */ # 21a: 3871 + beqz a2, .Lbr013 # 21c: 8c22 + l32i a3, a3, 8 /* [[(local7)]+0x8] */ # 21e: 3823 + s32i a3, a2, 0 /* [[(local7)]+0x8] -> [[(local1)]] */ # 220: 3902 +.Lbr013: movi a2, 1 /* 0x00000001 */ # 222: 0c12 + j .Lbr018 # 224: 860300 +.Lbr014: bgez a2, .Lbr015 # 227: d64200 + addi a13, a14, 1 # 22a: 1bde + j .Lbr016 # 22c: 460000 +.Lbr015: addi a12, a14, -1 # 22f: 0bce +.Lbr016: bge a12, a13, .Lbr012 # 231: d7acc3 +.Lbr017: movi a2, 0 /* 0x00000000 */ # 234: 0c02 +.Lbr018: l32i a12, sp, 12 /* [(local3)] */ # 236: c831 + l32i a13, sp, 16 /* [(local4)] */ # 238: d841 + l32i a14, sp, 20 /* [(local5)] */ # 23a: e851 + l32i a15, sp, 24 /* [(local6)] */ # 23c: f861 + l32i a0, sp, 8 /* [(local2)] */ # 23e: 0821 + addi sp, sp, 48 /* (top of frame) */ # 240: 12c130 + ret # 243: 0df0 + + .balign 4 +# Function @ .irom0.text+0x248 + .balign 4 + .global hostapd_rate_found + .type hostapd_rate_found, @function +hostapd_rate_found: + beqz a2, .Lbr021 # 248: 9c12 + l32i a6, a2, 0 /* [arg0] */ # 24a: 6802 + bltz a6, .Lbr021 # 24c: 96d600 +.Lbr019: bne a6, a3, .Lbr020 # 24f: 379603 + movi a2, 1 /* 0x00000001 */ # 252: 0c12 + ret /* 0x00000001 */ # 254: 0df0 +.Lbr020: l32i a6, a2, 4 # 256: 6812 + addi a2, a2, 4 # 258: 4b22 + bgez a6, .Lbr019 # 25a: d616ff +.Lbr021: movi a2, 0 /* 0x00000000 */ # 25d: 0c02 + ret /* 0x00000000 */ # 25f: 0df0 + + .literal_position # 264: 00000000 + +# Function @ .irom0.text+0x268 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word[4] @ -0x10 + .balign 4 + .global hostapd_get_psk + .type hostapd_get_psk, @function +hostapd_get_psk: + addi sp, sp, -32 /* (local0) */ # 268: 12c1e0 + s32i a12, sp, 8 /* a12 -> [(local2)] */ # 26b: c921 + s32i a13, sp, 12 /* a13 -> [(local3)] */ # 26d: d931 + s32i a14, sp, 16 /* a14 -> [(local4)] */ # 26f: e941 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 271: 0911 + mov a14, a4 /* arg2 */ # 273: ed04 + movi a0, 1 /* 0x00000001 */ # 275: 0c10 + movi a13, 0 /* 0x00000000 */ # 277: 0c0d + l32i a12, a2, 56 /* [arg0+0x38] */ # 279: c8e2 + moveqz a13, a0, a4 # 27b: 40d083 + beqz a12, .Lbr025 # 27e: ac9c + s32i a3, sp, 0 /* arg1 -> [(local0)] */ # 280: 3901 +.Lbr022: beqz a13, .Lbr024 # 282: 9c8d + l32i a2, a12, 4 # 284: 281c + bnez a2, .Lbr023 # 286: ccf2 + addi a2, a12, 40 # 288: 22cc28 + l32i a3, sp, 0 /* [(local0)] */ # 28b: 3801 + movi a4, 6 /* 0x00000006 */ # 28d: 0c64 + call0 memcmp # 28f: 01f5ffc0 + # 293: 0000 + movi a0, 1 /* 0x00000001 */ # 295: 0c10 + bnez a2, .Lbr024 # 297: cc32 +.Lbr023: addi a2, a12, 8 # 299: 8b2c + j .Lbr026 # 29b: 860300 +.Lbr024: addi a3, a12, 8 # 29e: 8b3c + sub a3, a14, a3 # 2a0: 303ec0 + l32i a12, a12, 0 # 2a3: c80c + moveqz a13, a0, a3 # 2a5: 30d083 + bnez a12, .Lbr022 # 2a8: 566cfd +.Lbr025: movi a2, 0 /* 0x00000000 */ # 2ab: 0c02 +.Lbr026: l32i a12, sp, 8 /* [(local2)] */ # 2ad: c821 + l32i a13, sp, 12 /* [(local3)] */ # 2af: d831 + l32i a14, sp, 16 /* [(local4)] */ # 2b1: e841 + l32i a0, sp, 4 /* [(local1)] */ # 2b3: 0811 + addi sp, sp, 32 /* (top of frame) */ # 2b5: 12c120 + ret # 2b8: 0df0 + + .section .rodata, "a", @progbits + +.Ldata001: .space 6 diff --git a/binary_sdk/libwpa_stage1/common.S b/binary_sdk/libwpa_stage1/common.S new file mode 100644 index 0000000..d80eb26 --- /dev/null +++ b/binary_sdk/libwpa_stage1/common.S @@ -0,0 +1,312 @@ + + .section .irom0.text, "ax", @progbits + +# Function @ .irom0.text+0x0 + .balign 4 + .literal_position + .global inc_byte_array + .type inc_byte_array, @function +inc_byte_array: + addi a3, a3, -1 /* arg1-0x1 */ # 0: 0b33 + bltz a3, .Lbr002 # 2: 965301 + add a3, a3, a2 # 5: 2a33 + addi a2, a2, -1 /* arg0-0x1 */ # 7: 0b22 +.Lbr001: l8ui a4, a3, 0 # 9: 420300 + addi a4, a4, 1 # c: 1b44 + extui a4, a4, 0, 8 # e: 404074 + s8i a4, a3, 0 # 11: 424300 + bnez a4, .Lbr002 # 14: cc34 + addi a3, a3, -1 # 16: 0b33 + bne a3, a2, .Lbr001 # 18: 2793ed +.Lbr002: ret # 1b: 0df0 + + .balign 4 +# Function @ .irom0.text+0x20 + .balign 4 +.Lfunc001: movi a3, 47 /* 0x0000002f */ # 20: 2cf3 + bgeu a3, a2, .Lbr003 # 22: 27b309 + movi a4, 57 /* 0x00000039 */ # 25: 3c94 + bltu a4, a2, .Lbr003 # 27: 273404 + addi a2, a2, -48 /* arg0-0x30 */ # 2a: 22c2d0 + ret /* arg0-0x30 */ # 2d: 0df0 +.Lbr003: movi a5, 96 /* 0x00000060 */ # 2f: 52a060 + bgeu a5, a2, .Lbr004 # 32: 27b50a + movi a6, 102 /* 0x00000066 */ # 35: 62a066 + bltu a6, a2, .Lbr004 # 38: 273604 + addi a2, a2, -87 /* arg0-0x57 */ # 3b: 22c2a9 + ret /* arg0-0x57 */ # 3e: 0df0 +.Lbr004: movi a7, 64 /* 0x00000040 */ # 40: 4c07 + bgeu a7, a2, .Lbr005 # 42: 27b709 + movi a8, 70 /* 0x00000046 */ # 45: 4c68 + bltu a8, a2, .Lbr005 # 47: 273804 + addi a2, a2, -55 /* arg0-0x37 */ # 4a: 22c2c9 + ret /* arg0-0x37 */ # 4d: 0df0 +.Lbr005: movi a2, -1 /* 0xffffffff */ # 4f: 7cf2 + ret /* 0xffffffff */ # 51: 0df0 + + .balign 4 +# Function @ .irom0.text+0x54 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 + .global hex2byte + .type hex2byte, @function +hex2byte: addi sp, sp, -16 /* (local0) */ # 54: 12c1f0 + s32i a12, sp, 8 /* a12 -> [(local2)] */ # 57: c921 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 59: 0911 + mov a12, a2 /* arg0 */ # 5b: cd02 + l8ui a2, a2, 0 /* [arg0] */ # 5d: 220200 + call0 .Lfunc001 # 60: c5fbff + s32i a2, sp, 0 /* a2 -> [(local0)] */ # 63: 2901 + bltz a2, .Lbr007 # 65: 969201 + l8ui a2, a12, 1 /* [arg0+0x1] */ # 68: 220c01 + call0 .Lfunc001 # 6b: 45fbff + bltz a2, .Lbr007 # 6e: 960201 + l32i a0, sp, 0 /* [(local0)] */ # 71: 0801 + slli a0, a0, 4 # 73: c00011 + or a2, a2, a0 # 76: 002220 +.Lbr006: l32i a12, sp, 8 /* [(local2)] */ # 79: c821 + l32i a0, sp, 4 /* [(local1)] */ # 7b: 0811 + addi sp, sp, 16 /* (top of frame) */ # 7d: 12c110 + ret # 80: 0df0 +.Lbr007: movi a2, -1 /* 0xffffffff */ # 82: 7cf2 + j .Lbr006 # 84: 46fcff + + .balign 4 +# Function @ .irom0.text+0x88 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word @ -0x10 +# (local5): word[3] @ -0xc + .balign 4 + .global hexstr2bin + .type hexstr2bin, @function +hexstr2bin: addi sp, sp, -32 /* (local0) */ # 88: 12c1e0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 8b: 0901 + s32i a4, sp, 20 /* arg2 -> [(local5)] */ # 8d: 4951 + s32i a14, sp, 12 /* a14 -> [(local3)] */ # 8f: e931 + s32i a15, sp, 16 /* a15 -> [(local4)] */ # 91: f941 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 93: c911 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 95: d921 + mov a12, a2 /* arg0 */ # 97: cd02 + mov a13, a3 /* arg1 */ # 99: dd03 + mov a15, a4 /* arg2 */ # 9b: fd04 + beqz a4, .Lbr010 # 9d: 9c94 + movi a14, 0 /* 0x00000000 */ # 9f: 0c0e +.Lbr008: mov a2, a12 # a1: 2d0c + call0 hex2byte # a3: 050000 + bgez a2, .Lbr009 # a6: d64200 + movi a2, -1 /* 0xffffffff */ # a9: 7cf2 + j .Lbr011 # ab: 460300 +.Lbr009: addi a12, a12, 2 # ae: 2bcc + s8i a2, a13, 0 # b0: 224d00 + addi a14, a14, 1 # b3: 1bee + addi a13, a13, 1 # b5: 1bdd + bne a15, a14, .Lbr008 # b7: e79fe6 +.Lbr010: movi a2, 0 /* 0x00000000 */ # ba: 0c02 +.Lbr011: l32i a12, sp, 4 /* [(local1)] */ # bc: c811 + l32i a13, sp, 8 /* [(local2)] */ # be: d821 + l32i a14, sp, 12 /* [(local3)] */ # c0: e831 + l32i a15, sp, 16 /* [(local4)] */ # c2: f841 + l32i a0, sp, 0 /* [(local0)] */ # c4: 0801 + addi sp, sp, 32 /* (top of frame) */ # c6: 12c120 + ret # c9: 0df0 + + .literal_position # cc: 00ff0000 + # d0: 807eaa83 + # d4: c7100000 + # d8: 00ff0000 + # dc: 00000000 + # e0: 00000000 + # e4: 00000000 + +# Function @ .irom0.text+0xe8 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word @ -0x10 +# (local5): word[3] @ -0xc + .balign 4 + .global wpa_get_ntp_timestamp + .type wpa_get_ntp_timestamp, @function +wpa_get_ntp_timestamp: + addi sp, sp, -32 /* (local0) */ # e8: 12c1e0 + s32i a12, sp, 20 /* a12 -> [(local5)] */ # eb: c951 + s32i a0, sp, 16 /* a0 -> [(local4)] */ # ed: 0941 + mov a12, a2 /* arg0 */ # ef: cd02 + mov a2, sp /* (local0) */ # f1: 2d01 + call0 os_get_time # f3: 01faffc0 + # f7: 0000 + mov a2, a12 /* arg0 */ # f9: 2d0c + addi a3, sp, 8 /* (local2) */ # fb: 8b31 + movi a4, 4 /* 0x00000004 */ # fd: 0c44 + movi a8, 0x0000ff00 # ff: 81f3ff + movi a6, 0x000010c7 # 102: 61f4ff + movi a5, 0x83aa7e80 # 105: 51f2ff + l32i a9, sp, 4 /* [(local1)] */ # 108: 9811 + l32i a0, sp, 0 /* [(local0)] */ # 10a: 0801 + srli a10, a9, 9 # 10c: 90a941 + srli a11, a9, 5 # 10f: 90b541 + add a0, a0, a5 /* [(local0)]+0x83aa7e80 */ # 112: 5a00 + slli a5, a0, 24 # 114: 805001 + mull a9, a9, a6 # 117: 609982 + and a7, a0, a8 # 11a: 807010 + extui a6, a0, 24, 8 # 11d: 006875 + sub a9, a9, a11 # 120: b099c0 + slli a7, a7, 8 # 123: 807711 + or a5, a5, a7 # 126: 705520 + sub a9, a9, a10 # 129: a099c0 + s32i a9, sp, 12 /* a9 -> [(local3)] */ # 12c: 9931 + srli a0, a0, 8 # 12e: 000841 + and a0, a0, a8 # 131: 800010 + or a0, a0, a6 # 134: 600020 + or a0, a0, a5 # 137: 500020 + s32i a0, sp, 8 /* a0 -> [(local2)] */ # 13a: 0921 + call0 memcpy # 13c: 01e9ffc0 + # 140: 0000 + addi a2, a12, 4 /* arg0+0x4 */ # 142: 4b2c + addi a3, sp, 8 /* (local2) */ # 144: 8b31 + movi a4, 4 /* 0x00000004 */ # 146: 0c44 + l32i a9, sp, 12 /* [(local3)] */ # 148: 9831 + movi a8, 0x0000ff00 # 14a: 81e3ff + srli a7, a9, 8 # 14d: 907841 + and a7, a7, a8 # 150: 807710 + and a10, a9, a8 # 153: 80a910 + slli a10, a10, 8 # 156: 80aa11 + slli a8, a9, 24 # 159: 808901 + or a8, a8, a10 # 15c: a08820 + extui a9, a9, 24, 8 # 15f: 909875 + or a7, a7, a9 # 162: 907720 + or a7, a7, a8 # 165: 807720 + s32i a7, sp, 8 /* a7 -> [(local2)] */ # 168: 7921 + call0 memcpy # 16a: 01deffc0 + # 16e: 0000 + l32i a12, sp, 20 /* [(local5)] */ # 170: c851 + l32i a0, sp, 16 /* [(local4)] */ # 172: 0841 + addi sp, sp, 32 /* (top of frame) */ # 174: 12c120 + ret # 177: 0df0 + + .literal_position # 17c: 00000000 + # 180: 00000000 + # 184: 00000000 + # 188: 00000000 + # 18c: 00000000 + # 190: 00000000 + # 194: 00000000 + # 198: 00000000 + # 19c: 00000000 + # 1a0: 00000000 + +# Function @ .irom0.text+0x1a4 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word[4] @ -0x10 + .balign 4 + .global wpa_config_parse_string + .type wpa_config_parse_string, @function +wpa_config_parse_string: + addi sp, sp, -32 /* (local0) */ # 1a4: 12c1e0 + s32i a14, sp, 16 /* a14 -> [(local4)] */ # 1a7: e941 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 1a9: 0911 + s32i a13, sp, 12 /* a13 -> [(local3)] */ # 1ab: d931 + s32i a12, sp, 8 /* a12 -> [(local2)] */ # 1ad: c921 + mov a13, a3 /* arg1 */ # 1af: dd03 + mov a12, a2 /* arg0 */ # 1b1: cd02 + l8ui a0, a2, 0 /* [arg0] */ # 1b3: 020200 + movi a2, 34 /* 0x00000022 */ # 1b6: 2c22 + bne a0, a2, .Lbr012 # 1b8: 27901a + mov a2, a12 /* arg0 */ # 1bb: 2d0c + call0 strlen # 1bd: 01efffc0 + # 1c1: 0000 + addi a3, a2, -7 # 1c3: 32c2f9 + beqz a3, .Lbr018 # 1c6: 169308 + mov a2, a12 /* arg0 */ # 1c9: 2d0c + call0 strlen # 1cb: 01edffc0 + # 1cf: 0000 + movi a4, 15 /* 0x0000000f */ # 1d1: 0cf4 + beq a2, a4, .Lbr018 # 1d3: 47127c +.Lbr012: mov a2, a12 /* arg0 */ # 1d6: 2d0c + call0 strlen # 1d8: 01ebffc0 + # 1dc: 0000 + beqi a2, 5, .Lbr017 # 1de: 26524f + movi a5, 13 /* 0x0000000d */ # 1e1: 0cd5 + beq a2, a5, .Lbr017 # 1e3: 57124a + beqi a2, 10, .Lbr013 # 1e6: 269204 + movi a6, 26 /* 0x0000001a */ # 1e9: 1ca6 + bne a2, a6, .Lbr014 # 1eb: 679223 +.Lbr013: srli a2, a2, 1 # 1ee: 202141 + s32i a2, sp, 0 /* a2 -> [(local0)] */ # 1f1: 2901 + addi a2, a2, 1 # 1f3: 1b22 + call0 malloc # 1f5: 01e4ffc0 + # 1f9: 0000 + mov a14, a2 # 1fb: ed02 + beqz a2, .Lbr014 # 1fd: 9c12 + mov a2, a12 /* arg0 */ # 1ff: 2d0c + mov a3, a14 # 201: 3d0e + l32i a4, sp, 0 /* [(local0)] */ # 203: 4801 + call0 hexstr2bin # 205: 050000 + beqz a2, .Lbr015 # 208: 8cb2 + mov a2, a14 # 20a: 2d0e + call0 free # 20c: 01e0ffc0 + # 210: 0000 +.Lbr014: movi a14, 0 /* 0x00000000 */ # 212: 0c0e + j .Lbr016 # 214: 860200 +.Lbr015: l32i a3, sp, 0 /* [(local0)] */ # 217: 3801 + movi a4, 0 /* 0x00000000 */ # 219: 0c04 + add a5, a3, a14 # 21b: ea53 + s8i a4, a5, 0 # 21d: 424500 + s32i a3, a13, 0 /* [(local0)] -> [arg1] */ # 220: 390d +.Lbr016: l32i a0, sp, 4 /* [(local1)] */ # 222: 0811 + l32i a12, sp, 8 /* [(local2)] */ # 224: c821 + mov a2, a14 # 226: 2d0e + l32i a13, sp, 12 /* [(local3)] */ # 228: d831 + l32i a14, sp, 16 /* [(local4)] */ # 22a: e841 + addi sp, sp, 32 /* (top of frame) */ # 22c: 12c120 + ret # 22f: 0df0 +.Lbr017: s32i a2, a13, 0 /* a2 -> [arg1] */ # 231: 290d + addi a2, a2, 1 # 233: 1b22 + call0 malloc # 235: 01d6ffc0 + # 239: 0000 + mov a3, a12 /* arg0 */ # 23b: 3d0c + mov a14, a2 # 23d: ed02 + l32i a4, a13, 0 /* [arg1] */ # 23f: 480d + call0 memcpy # 241: 01d4ffc0 + # 245: 0000 + l32i a7, a13, 0 /* [arg1] */ # 247: 780d + movi a6, 0 /* 0x00000000 */ # 249: 0c06 + add a7, a7, a14 # 24b: ea77 + s8i a6, a7, 0 # 24d: 624700 + j .Lbr016 # 250: 86f3ff +.Lbr018: movi a3, 34 /* 0x00000022 */ # 253: 2c23 + addi a14, a12, 1 /* arg0+0x1 */ # 255: 1bec + mov a2, a14 /* arg0+0x1 */ # 257: 2d0e + call0 strrchr # 259: 01cfffc0 + # 25d: 0000 + beqz a2, .Lbr014 # 25f: 16f2fa + sub a2, a2, a12 # 262: c022c0 + addi a8, a2, -1 # 265: 0b82 + s32i a8, a13, 0 /* a8 -> [arg1] */ # 267: 890d + call0 malloc # 269: 01ccffc0 + # 26d: 0000 + mov a12, a2 # 26f: cd02 + beqz a2, .Lbr014 # 271: 16d2f9 + mov a3, a14 /* arg0+0x1 */ # 274: 3d0e + l32i a4, a13, 0 /* [arg1] */ # 276: 480d + call0 memcpy # 278: 01caffc0 + # 27c: 0000 + mov a14, a12 # 27e: ed0c + l32i a10, a13, 0 /* [arg1] */ # 280: a80d + movi a9, 0 /* 0x00000000 */ # 282: 0c09 + add a10, a10, a12 # 284: caaa + s8i a9, a10, 0 # 286: 924a00 + j .Lbr016 # 289: 46e5ff diff --git a/binary_sdk/libwpa_stage1/ieee802_1x.S b/binary_sdk/libwpa_stage1/ieee802_1x.S new file mode 100644 index 0000000..a01a28a --- /dev/null +++ b/binary_sdk/libwpa_stage1/ieee802_1x.S @@ -0,0 +1,63 @@ + + .section .irom0.text, "ax", @progbits + + .literal_position # 0: 00000000 + # 4: 00000000 + +# Function @ .irom0.text+0x8 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word @ -0x8 +# (local3): word @ -0x4 + .balign 4 + .global ieee802_1x_receive + .type ieee802_1x_receive, @function +ieee802_1x_receive: + addi sp, sp, -16 /* (local0) */ # 8: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # b: 0901 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # d: d921 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # f: c911 + s32i a14, sp, 12 /* a14 -> [(local3)] */ # 11: e931 + mov a12, a4 /* arg2 */ # 13: cd04 + mov a14, a5 /* arg3 */ # 15: ed05 + mov a13, a2 /* arg0 */ # 17: dd02 + call0 ap_get_sta # 19: 01f9ffc0 + # 1d: 0000 + mov a0, a2 # 1f: 0d02 + beqz a2, .Lbr002 # 21: 161205 + l32i a2, a2, 16 # 24: 2842 + movi a3, 258 /* 0x00000102 */ # 26: 32a102 + bnone a2, a3, .Lbr002 # 29: 370249 + bltui a14, 4, .Lbr002 # 2c: b64e46 + addi a4, a14, -4 /* arg3-0x4 */ # 2f: 42cefc + l8ui a6, a12, 3 /* [arg2+0x3] */ # 32: 620c03 + l8ui a7, a12, 2 /* [arg2+0x2] */ # 35: 720c02 + slli a6, a6, 8 # 38: 806611 + or a6, a6, a7 # 3b: 706620 + extui a5, a6, 8, 8 # 3e: 605874 + extui a6, a6, 0, 8 # 41: 606074 + slli a6, a6, 8 # 44: 806611 + or a5, a5, a6 # 47: 605520 + extui a5, a5, 0, 16 # 4a: 5050f4 + bltu a4, a5, .Lbr002 # 4d: 573425 + movi a7, 43 /* 0x0000002b */ # 50: 2cb7 + bgeu a7, a5, .Lbr002 # 52: 57b720 + l8ui a8, a12, 1 /* [arg2+0x1] */ # 55: 820c01 + l8ui a2, a12, 4 /* [arg2+0x4] */ # 58: 220c04 + bnei a8, 3, .Lbr002 # 5b: 663817 + movi a9, 254 /* 0x000000fe */ # 5e: 92a0fe + beq a2, a9, .Lbr001 # 61: 971202 + bnei a2, 2, .Lbr002 # 64: 66220e +.Lbr001: mov a4, a12 /* arg2 */ # 67: 4d0c + l32i a2, a13, 24 /* [arg0+0x18] */ # 69: 286d + addi a5, a5, 4 # 6b: 4b55 + l32i a3, a0, 68 # 6d: 322011 + call0 wpa_receive # 70: 01e5ffc0 + # 74: 0000 +.Lbr002: l32i a12, sp, 4 /* [(local1)] */ # 76: c811 + l32i a13, sp, 8 /* [(local2)] */ # 78: d821 + l32i a14, sp, 12 /* [(local3)] */ # 7a: e831 + l32i a0, sp, 0 /* [(local0)] */ # 7c: 0801 + addi sp, sp, 16 /* (top of frame) */ # 7e: 12c110 + ret # 81: 0df0 diff --git a/binary_sdk/libwpa_stage1/md5-internal.S b/binary_sdk/libwpa_stage1/md5-internal.S new file mode 100644 index 0000000..c8b7ba9 --- /dev/null +++ b/binary_sdk/libwpa_stage1/md5-internal.S @@ -0,0 +1,1015 @@ + + .section .irom0.text, "ax", @progbits + +# Function @ .irom0.text+0x0 +# Local variables/stack: +# (local0): word @ -0x18 +# (local1): word @ -0x14 +# (local2): word @ -0x10 +# (local3): word @ -0xc +# (local4): word @ -0x8 +# (local5): word @ -0x4 + .balign 4 + .literal_position + .global md5_vector + .type md5_vector, @function +md5_vector: addi sp, sp, -112 /* (FP)-0x70 */ # 0: 12c190 + s32i a3, sp, 88 /* arg1 -> [(local0)] */ # 3: 326116 + s32i a0, sp, 92 /* a0 -> [(local1)] */ # 6: 026117 + s32i a13, sp, 100 /* a13 -> [(local3)] */ # 9: d26119 + s32i a12, sp, 96 /* a12 -> [(local2)] */ # c: c26118 + s32i a14, sp, 104 /* a14 -> [(local4)] */ # f: e2611a + mov a12, a4 /* arg2 */ # 12: cd04 + mov a14, a2 /* arg0 */ # 14: ed02 + mov a13, a5 /* arg3 */ # 16: dd05 + mov a2, sp /* (FP)-0x70 */ # 18: 2d01 + call0 MD5Init # 1a: 050000 + s32i a13, sp, 108 /* arg3 -> [(local5)] */ # 1d: d2611b + beqz a14, .Lbr002 # 20: 9c4e + l32i a13, sp, 88 /* [(local0)] */ # 22: d22116 + addx4 a14, a14, a13 # 25: d0eea0 +.Lbr001: mov a2, sp /* (FP)-0x70 */ # 28: 2d01 + l32i a3, a13, 0 # 2a: 380d + l32i a4, a12, 0 # 2c: 480c + call0 MD5Update # 2e: 050000 + addi a12, a12, 4 # 31: 4bcc + addi a13, a13, 4 # 33: 4bdd + bne a13, a14, .Lbr001 # 35: e79def +.Lbr002: l32i a2, sp, 108 /* [(local5)] */ # 38: 22211b + mov a3, sp /* (FP)-0x70 */ # 3b: 3d01 + call0 MD5Final # 3d: 050000 + movi a2, 0 /* 0x00000000 */ # 40: 0c02 + l32i a12, sp, 96 /* [(local2)] */ # 42: c22118 + l32i a13, sp, 100 /* [(local3)] */ # 45: d22119 + l32i a14, sp, 104 /* [(local4)] */ # 48: e2211a + l32i a0, sp, 92 /* [(local1)] */ # 4b: 022117 + addi sp, sp, 112 /* (top of frame) */ # 4e: 12c170 + ret /* 0x00000000 */ # 51: 0df0 + + .literal_position # 54: 01234567 + # 58: 89abcdef + # 5c: fedcba98 + # 60: 76543210 + +# Function @ .irom0.text+0x64 + .balign 4 + .global MD5Init + .type MD5Init, @function +MD5Init: movi a3, 0x10325476 # 64: 31ffff + movi a4, 0x98badcfe # 67: 41fdff + movi a5, 0xefcdab89 # 6a: 51fbff + movi a6, 0x67452301 # 6d: 61f9ff + movi a7, 0 /* 0x00000000 */ # 70: 0c07 + s32i a7, a2, 16 /* 0x00000000 -> [arg0+0x10] */ # 72: 7942 + s32i a7, a2, 20 /* 0x00000000 -> [arg0+0x14] */ # 74: 7952 + s32i a6, a2, 0 /* 0x67452301 -> [arg0] */ # 76: 6902 + s32i a5, a2, 4 /* 0xefcdab89 -> [arg0+0x4] */ # 78: 5912 + s32i a4, a2, 8 /* 0x98badcfe -> [arg0+0x8] */ # 7a: 4922 + s32i a3, a2, 12 /* 0x10325476 -> [arg0+0xc] */ # 7c: 3932 + ret /* arg0 */ # 7e: 0df0 + + .literal_position # 80: 00000000 + # 84: 00000000 + # 88: f8020000 + # 8c: 00000000 + # 90: 00000000 + +# Function @ .irom0.text+0x94 +# Local variables/stack: +# (local0): word @ -0x30 +# (local1): word @ -0x2c +# (local2): word @ -0x28 +# (local3): word @ -0x24 +# (local4): word @ -0x20 +# (local5): word @ -0x1c +# (local6): word @ -0x18 +# (local7): word @ -0x14 +# (local8): word[4] @ -0x10 + .balign 4 + .global MD5Update + .type MD5Update, @function +MD5Update: addi sp, sp, -48 /* (local0) */ # 94: 12c1d0 + s32i a14, sp, 24 /* a14 -> [(local6)] */ # 97: e961 + s32i a0, sp, 12 /* a0 -> [(local3)] */ # 99: 0931 + s32i a2, sp, 32 /* arg0 -> [(local8)] */ # 9b: 2981 + s32i a12, sp, 16 /* a12 -> [(local4)] */ # 9d: c941 + s32i a13, sp, 20 /* a13 -> [(local5)] */ # 9f: d951 + s32i a15, sp, 28 /* a15 -> [(local7)] */ # a1: f971 + mov a13, a4 /* arg2 */ # a3: dd04 + mov a15, a2 /* arg0 */ # a5: fd02 + mov a12, a3 /* arg1 */ # a7: cd03 + l32i a2, a2, 16 /* [arg0+0x10] */ # a9: 2842 + l32i a0, a15, 20 /* [arg0+0x14] */ # ab: 085f + extui a7, a2, 3, 6 # ad: 207354 + addx8 a3, a4, a2 # b0: 2034b0 + s32i a3, a15, 16 /* a3 -> [arg0+0x10] */ # b3: 394f + extui a4, a13, 29, 3 # b5: d04d25 + bgeu a3, a2, .Lbr003 # b8: 27b303 + addi a0, a0, 1 /* [arg0+0x14]+0x1 */ # bb: 1b00 + s32i a0, a15, 20 /* [arg0+0x14]+0x1 -> [arg0+0x14] */ # bd: 095f +.Lbr003: add a4, a0, a4 # bf: 4a40 + s32i a4, a15, 20 /* a4 -> [arg0+0x14] */ # c1: 495f + beqz a7, .Lbr005 # c3: bcf7 + movi a4, 64 /* 0x00000040 */ # c5: 4c04 + add a2, a7, a15 # c7: fa27 + addi a2, a2, 24 # c9: 22c218 + sub a4, a4, a7 # cc: 7044c0 + bgeu a13, a4, .Lbr004 # cf: 47bd0c + mov a4, a13 /* arg2 */ # d2: 4d0d + mov a3, a12 /* arg1 */ # d4: 3d0c + call0 memcpy # d6: 01eaffc0 + # da: 0000 + j .Lbr009 # dc: 461900 +.Lbr004: mov a3, a12 /* arg1 */ # df: 3d0c + s32i a7, sp, 8 /* a7 -> [(local2)] */ # e1: 7921 + call0 memcpy # e3: 01e8ffc0 + # e7: 0000 + mov a2, a15 /* arg0 */ # e9: 2d0f + addi a14, a15, 24 /* arg0+0x18 */ # eb: e2cf18 + mov a3, a14 /* arg0+0x18 */ # ee: 3d0e + call0 .Lfunc001 # f0: 01e6ffc0 + # f4: 0000 + l32i a0, sp, 8 /* [(local2)] */ # f6: 0821 + add a13, a0, a13 # f8: dad0 + sub a12, a12, a0 # fa: 00ccc0 + addi a12, a12, 64 # fd: c2cc40 + addi a13, a13, -64 # 100: d2cdc0 + j .Lbr006 # 103: 860000 +.Lbr005: addi a14, a15, 24 /* arg0+0x18 */ # 106: e2cf18 +.Lbr006: bltui a13, 64, .Lbr008 # 109: b6dd2c + s32i a13, sp, 0 /* a13 -> [(local0)] */ # 10c: d901 + srli a2, a13, 6 # 10e: d02641 + s32i a2, sp, 4 /* a2 -> [(local1)] */ # 111: 2911 +.Lbr007: mov a2, a14 /* arg0+0x18 */ # 113: 2d0e + mov a3, a12 # 115: 3d0c + movi a4, 64 /* 0x00000040 */ # 117: 4c04 + call0 memcpy # 119: 01dcffc0 + # 11d: 0000 + mov a2, a15 /* arg0 */ # 11f: 2d0f + mov a3, a14 /* arg0+0x18 */ # 121: 3d0e + call0 .Lfunc001 # 123: 451d00 + addi a12, a12, 64 # 126: c2cc40 + addi a13, a13, -64 # 129: d2cdc0 + bgeui a13, 64, .Lbr007 # 12c: f6dde3 + l32i a15, sp, 4 /* [(local1)] */ # 12f: f811 + l32i a13, sp, 0 /* [(local0)] */ # 131: d801 + slli a15, a15, 6 # 133: a0ff11 + sub a13, a13, a15 # 136: f0ddc0 +.Lbr008: mov a4, a13 # 139: 4d0d + mov a3, a12 # 13b: 3d0c + mov a2, a14 /* arg0+0x18 */ # 13d: 2d0e + call0 memcpy # 13f: 01d4ffc0 + # 143: 0000 +.Lbr009: l32i a12, sp, 16 /* [(local4)] */ # 145: c841 + l32i a13, sp, 20 /* [(local5)] */ # 147: d851 + l32i a14, sp, 24 /* [(local6)] */ # 149: e861 + l32i a15, sp, 28 /* [(local7)] */ # 14b: f871 + l32i a0, sp, 12 /* [(local3)] */ # 14d: 0831 + addi sp, sp, 48 /* (top of frame) */ # 14f: 12c130 + ret # 152: 0df0 + + .literal_position # 154: 00000000 + # 158: f8020000 + # 15c: 00000000 + # 160: 00000000 + # 164: 00000000 + +# Function @ .irom0.text+0x168 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word @ -0x8 +# (local3): word @ -0x4 + .balign 4 + .global MD5Final + .type MD5Final, @function +MD5Final: movi a4, 63 /* 0x0000003f */ # 168: 3cf4 + addi sp, sp, -16 /* (local0) */ # 16a: 12c1f0 + s32i a2, sp, 0 /* arg0 -> [(local0)] */ # 16d: 2901 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 16f: 0911 + s32i a13, sp, 12 /* a13 -> [(local3)] */ # 171: d931 + s32i a12, sp, 8 /* a12 -> [(local2)] */ # 173: c921 + addi a13, a3, 24 /* arg1+0x18 */ # 175: d2c318 + mov a12, a3 /* arg1 */ # 178: cd03 + l32i a0, a12, 16 /* [arg1+0x10] */ # 17a: 084c + movi a3, -128 /* 0xffffff80 */ # 17c: 32af80 + extui a0, a0, 3, 6 # 17f: 000354 + add a2, a12, a0 # 182: 0a2c + sub a4, a4, a0 # 184: 0044c0 + s8i a3, a2, 24 # 187: 324218 + addi a2, a2, 25 # 18a: 22c219 + bgeui a4, 8, .Lbr010 # 18d: f68420 + movi a3, 0 /* 0x00000000 */ # 190: 0c03 + call0 memset # 192: 01f0ffc0 + # 196: 0000 + mov a2, a12 /* arg1 */ # 198: 2d0c + mov a3, a13 /* arg1+0x18 */ # 19a: 3d0d + call0 .Lfunc001 # 19c: 01efffc0 + # 1a0: 0000 + mov a2, a13 /* arg1+0x18 */ # 1a2: 2d0d + movi a3, 0 /* 0x00000000 */ # 1a4: 0c03 + movi a4, 56 /* 0x00000038 */ # 1a6: 3c84 + call0 memset # 1a8: 01edffc0 + # 1ac: 0000 + j .Lbr011 # 1ae: 060300 +.Lbr010: movi a3, 0 /* 0x00000000 */ # 1b1: 0c03 + movi a4, 55 /* 0x00000037 */ # 1b3: 3c74 + sub a4, a4, a0 # 1b5: 0044c0 + call0 memset # 1b8: 01eaffc0 + # 1bc: 0000 +.Lbr011: mov a3, a13 /* arg1+0x18 */ # 1be: 3d0d + mov a2, a12 /* arg1 */ # 1c0: 2d0c + l32i a5, a12, 20 /* [arg1+0x14] */ # 1c2: 585c + l32i a6, a12, 16 /* [arg1+0x10] */ # 1c4: 684c + s32i a6, a12, 80 /* [arg1+0x10] -> [arg1+0x50] */ # 1c6: 626c14 + s32i a5, a12, 84 /* [arg1+0x14] -> [arg1+0x54] */ # 1c9: 526c15 + call0 .Lfunc001 # 1cc: 851200 + l32i a2, sp, 0 /* [(local0)] */ # 1cf: 2801 + mov a3, a12 /* arg1 */ # 1d1: 3d0c + movi a4, 16 /* 0x00000010 */ # 1d3: 1c04 + call0 memcpy # 1d5: 01e3ffc0 + # 1d9: 0000 + movi a3, 0 /* 0x00000000 */ # 1db: 0c03 + movi a2, 0 /* 0x00000000 */ # 1dd: 0c02 + movi a0, 1 /* 0x00000001 */ # 1df: 0c10 + l32i a13, sp, 12 /* [(local3)] */ # 1e1: d831 +.Lbr012: addi a0, a0, -1 # 1e3: 0b00 + add a7, a2, a12 # 1e5: ca72 + s32i a3, a7, 0 # 1e7: 3907 + addi a2, a2, 4 # 1e9: 4b22 + bgei a0, 1, .Lbr012 # 1eb: e610f4 + l32i a12, sp, 8 /* [(local2)] */ # 1ee: c821 + l32i a0, sp, 4 /* [(local1)] */ # 1f0: 0811 + addi sp, sp, 16 /* (top of frame) */ # 1f2: 12c110 + ret # 1f5: 0df0 + + .literal_position # 1f8: 78a46ad7 + # 1fc: 56b7c7e8 + # 200: db702024 + # 204: eecebdc1 + # 208: af0f7cf5 + # 20c: 2ac68747 + # 210: 134630a8 + # 214: 019546fd + # 218: d8988069 + # 21c: aff7448b + # 220: b15bffff + # 224: bed75c89 + # 228: 2211906b + # 22c: 937198fd + # 230: 8e4379a6 + # 234: 2108b449 + # 238: 62251ef6 + # 23c: 40b340c0 + # 240: 515a5e26 + # 244: aac7b6e9 + # 248: 5d102fd6 + # 24c: 53144402 + # 250: 81e6a1d8 + # 254: c8fbd3e7 + # 258: e6cde121 + # 25c: d60737c3 + # 260: 870dd5f4 + # 264: ed145a45 + # 268: 05e9e3a9 + # 26c: f8a3effc + # 270: d9026f67 + # 274: 8a4c2a8d + # 278: 4239faff + # 27c: 81f67187 + # 280: 22619d6d + # 284: 0c38e5fd + # 288: 44eabea4 + # 28c: a9cfde4b + # 290: 604bbbf6 + # 294: 70bcbfbe + # 298: c67e9b28 + # 29c: fa27a1ea + # 2a0: 8530efd4 + # 2a4: 051d8804 + # 2a8: 39d0d4d9 + # 2ac: e599dbe6 + # 2b0: f87ca21f + # 2b4: 6556acc4 + # 2b8: 442229f4 + # 2bc: 97ff2a43 + # 2c0: a72394ab + # 2c4: 39a093fc + # 2c8: c3595b65 + # 2cc: 92cc0c8f + # 2d0: 7df4efff + # 2d4: d15d8485 + # 2d8: 4f7ea86f + # 2dc: e0e62cfe + # 2e0: 144301a3 + # 2e4: a111084e + # 2e8: 827e53f7 + # 2ec: 35f23abd + # 2f0: bbd2d72a + # 2f4: 91d386eb + +# Function @ .irom0.text+0x2f8 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word[4] @ -0x10 + .balign 4 +.Lfunc001: addi sp, sp, -32 /* (local0) */ # 2f8: 12c1e0 + ssai 25 # 2fb: 104940 + l32i a6, a3, 28 /* [arg1+0x1c] */ # 2fe: 6873 + l32i a4, a3, 20 /* [arg1+0x14] */ # 300: 4853 + l32i a10, a3, 8 /* [arg1+0x8] */ # 302: a823 + l32i a7, a3, 0 /* [arg1] */ # 304: 7803 + l32i a9, a2, 4 /* [arg0+0x4] */ # 306: 9812 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 308: 0901 + l32i a8, a2, 8 /* [arg0+0x8] */ # 30a: 8822 + s32i a14, sp, 12 /* a14 -> [(local3)] */ # 30c: e931 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 30e: c911 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 310: d921 + s32i a15, sp, 16 /* a15 -> [(local4)] */ # 312: f941 + l32i a13, a3, 4 /* [arg1+0x4] */ # 314: d813 + movi a15, 0xd76aa478 # 316: f1b8ff + l32i a12, a2, 12 /* [arg0+0xc] */ # 319: c832 + l32i a14, a2, 0 /* [arg0] */ # 31b: e802 + xor a0, a12, a8 # 31d: 800c30 + and a0, a9, a0 # 320: 000910 + xor a0, a12, a0 # 323: 000c30 + add a0, a7, a0 # 326: 0a07 + add a14, a14, a0 # 328: 0aee + add a14, a14, a15 # 32a: faee + src a14, a14, a14 # 32c: e0ee81 + xor a15, a8, a9 # 32f: 90f830 + ssai 20 # 332: 104440 + add a14, a9, a14 # 335: eae9 + and a15, a14, a15 # 337: f0fe10 + xor a11, a9, a14 # 33a: e0b930 + xor a15, a8, a15 # 33d: f0f830 + add a13, a13, a15 # 340: fadd + add a12, a12, a13 # 342: dacc + movi a13, 0xe8c7b756 # 344: d1aeff + l32i a15, a3, 16 /* [arg1+0x10] */ # 347: f843 + add a12, a12, a13 # 349: dacc + src a12, a12, a12 # 34b: c0cc81 + add a12, a14, a12 # 34e: cace + ssai 15 # 350: 004f40 + and a11, a12, a11 # 353: b0bc10 + xor a11, a9, a11 # 356: b0b930 + add a11, a10, a11 # 359: baba + add a8, a8, a11 # 35b: ba88 + movi a11, 0x242070db # 35d: b1a8ff + xor a13, a14, a12 # 360: c0de30 + add a8, a8, a11 # 363: ba88 + l32i a11, a3, 12 /* [arg1+0xc] */ # 365: b833 + src a8, a8, a8 # 367: 808881 + add a8, a12, a8 # 36a: 8a8c + ssai 10 # 36c: 004a40 + and a13, a8, a13 # 36f: d0d810 + xor a13, a14, a13 # 372: d0de30 + add a11, a11, a13 # 375: dabb + add a9, a9, a11 # 377: ba99 + movi a11, 0xc1bdceee # 379: b1a2ff + xor a0, a8, a12 # 37c: c00830 + add a9, a9, a11 # 37f: ba99 + l32i a11, a3, 24 /* [arg1+0x18] */ # 381: b863 + src a9, a9, a9 # 383: 909981 + add a9, a8, a9 # 386: 9a98 + ssai 25 # 388: 104940 + and a0, a9, a0 # 38b: 000910 + xor a0, a12, a0 # 38e: 000c30 + add a15, a15, a0 # 391: 0aff + add a14, a14, a15 # 393: faee + movi a15, 0xf57c0faf # 395: f19cff + xor a13, a9, a8 # 398: 80d930 + add a14, a14, a15 # 39b: faee + src a14, a14, a14 # 39d: e0ee81 + l32i a15, a3, 32 /* [arg1+0x20] */ # 3a0: f883 + add a14, a9, a14 # 3a2: eae9 + and a13, a14, a13 # 3a4: d0de10 + xor a13, a8, a13 # 3a7: d0d830 + add a13, a4, a13 # 3aa: dad4 + add a12, a12, a13 # 3ac: dacc + movi a13, 0x4787c62a # 3ae: d197ff + ssai 20 # 3b1: 104440 + add a12, a12, a13 # 3b4: dacc + src a12, a12, a12 # 3b6: c0cc81 + xor a13, a14, a9 # 3b9: 90de30 + add a12, a14, a12 # 3bc: cace + and a13, a12, a13 # 3be: d0dc10 + xor a13, a9, a13 # 3c1: d0d930 + add a11, a11, a13 # 3c4: dabb + add a8, a8, a11 # 3c6: ba88 + movi a11, 0xa8304613 # 3c8: b192ff + ssai 15 # 3cb: 004f40 + add a8, a8, a11 # 3ce: ba88 + xor a11, a14, a12 # 3d0: c0be30 + src a8, a8, a8 # 3d3: 808881 + add a8, a12, a8 # 3d6: 8a8c + ssai 10 # 3d8: 004a40 + and a11, a8, a11 # 3db: b0b810 + xor a11, a14, a11 # 3de: b0be30 + add a11, a6, a11 # 3e1: bab6 + add a9, a9, a11 # 3e3: ba99 + movi a11, 0xfd469501 # 3e5: b18bff + xor a0, a8, a12 # 3e8: c00830 + add a9, a9, a11 # 3eb: ba99 + src a9, a9, a9 # 3ed: 909981 + l32i a11, a3, 36 /* [arg1+0x24] */ # 3f0: b893 + ssai 25 # 3f2: 104940 + add a9, a8, a9 # 3f5: 9a98 + and a0, a9, a0 # 3f7: 000910 + xor a13, a9, a8 # 3fa: 80d930 + xor a0, a12, a0 # 3fd: 000c30 + add a15, a15, a0 # 400: 0aff + add a14, a14, a15 # 402: faee + movi a15, 0x698098d8 # 404: f185ff + l32i a0, a3, 48 /* [arg1+0x30] */ # 407: 08c3 + add a14, a14, a15 # 409: faee + src a14, a14, a14 # 40b: e0ee81 + add a14, a9, a14 # 40e: eae9 + ssai 20 # 410: 104440 + and a13, a14, a13 # 413: d0de10 + xor a13, a8, a13 # 416: d0d830 + add a13, a11, a13 # 419: dadb + add a12, a12, a13 # 41b: dacc + movi a13, 0x8b44f7af # 41d: d17fff + xor a15, a14, a9 # 420: 90fe30 + add a12, a12, a13 # 423: dacc + l32i a13, a3, 40 /* [arg1+0x28] */ # 425: d8a3 + src a12, a12, a12 # 427: c0cc81 + add a12, a14, a12 # 42a: cace + ssai 15 # 42c: 004f40 + and a15, a12, a15 # 42f: f0fc10 + xor a15, a9, a15 # 432: f0f930 + add a13, a13, a15 # 435: fadd + add a8, a8, a13 # 437: da88 + movi a13, 0xffff5bb1 # 439: d179ff + l32i a15, a3, 44 /* [arg1+0x2c] */ # 43c: f8b3 + add a8, a8, a13 # 43e: da88 + xor a13, a14, a12 # 440: c0de30 + src a8, a8, a8 # 443: 808881 + add a8, a12, a8 # 446: 8a8c + ssai 10 # 448: 004a40 + and a13, a8, a13 # 44b: d0d810 + xor a13, a14, a13 # 44e: d0de30 + add a13, a15, a13 # 451: dadf + add a9, a9, a13 # 453: da99 + movi a13, 0x895cd7be # 455: d173ff + xor a5, a8, a12 # 458: c05830 + add a9, a9, a13 # 45b: da99 + l32i a13, a3, 52 /* [arg1+0x34] */ # 45d: d8d3 + src a9, a9, a9 # 45f: 909981 + add a9, a8, a9 # 462: 9a98 + ssai 25 # 464: 104940 + and a5, a9, a5 # 467: 505910 + xor a5, a12, a5 # 46a: 505c30 + add a0, a0, a5 # 46d: 5a00 + add a14, a14, a0 # 46f: 0aee + movi a0, 0x6b901122 # 471: 016dff + l32i a5, a3, 56 /* [arg1+0x38] */ # 474: 58e3 + add a14, a14, a0 # 476: 0aee + src a14, a14, a14 # 478: e0ee81 + xor a0, a9, a8 # 47b: 800930 + add a14, a9, a14 # 47e: eae9 + and a0, a14, a0 # 480: 000e10 + xor a0, a8, a0 # 483: 000830 + add a13, a13, a0 # 486: 0add + add a12, a12, a13 # 488: dacc + movi a13, 0xfd987193 # 48a: d168ff + ssai 20 # 48d: 104440 + add a12, a12, a13 # 490: dacc + xor a13, a14, a9 # 492: 90de30 + src a12, a12, a12 # 495: c0cc81 + add a12, a14, a12 # 498: cace + ssai 15 # 49a: 004f40 + and a13, a12, a13 # 49d: d0dc10 + xor a13, a9, a13 # 4a0: d0d930 + add a13, a5, a13 # 4a3: dad5 + add a8, a8, a13 # 4a5: da88 + movi a13, 0xa679438e # 4a7: d162ff + xor a0, a14, a12 # 4aa: c00e30 + add a8, a8, a13 # 4ad: da88 + l32i a13, a3, 60 /* [arg1+0x3c] */ # 4af: d8f3 + src a8, a8, a8 # 4b1: 808881 + add a8, a12, a8 # 4b4: 8a8c + ssai 10 # 4b6: 004a40 + and a0, a8, a0 # 4b9: 000810 + xor a0, a14, a0 # 4bc: 000e30 + add a13, a13, a0 # 4bf: 0add + add a9, a9, a13 # 4c1: da99 + movi a13, 0x49b40821 # 4c3: d15cff + l32i a0, a3, 4 /* [arg1+0x4] */ # 4c6: 0813 + add a9, a9, a13 # 4c8: da99 + src a9, a9, a9 # 4ca: 909981 + add a9, a8, a9 # 4cd: 9a98 + ssai 27 # 4cf: 104b40 + xor a13, a9, a8 # 4d2: 80d930 + and a13, a12, a13 # 4d5: d0dc10 + xor a13, a8, a13 # 4d8: d0d830 + add a0, a0, a13 # 4db: da00 + add a14, a14, a0 # 4dd: 0aee + movi a0, 0xf61e2562 # 4df: 0156ff + l32i a13, a3, 24 /* [arg1+0x18] */ # 4e2: d863 + add a14, a14, a0 # 4e4: 0aee + src a14, a14, a14 # 4e6: e0ee81 + add a14, a9, a14 # 4e9: eae9 + xor a0, a14, a9 # 4eb: 900e30 + and a0, a8, a0 # 4ee: 000810 + xor a0, a9, a0 # 4f1: 000930 + add a13, a13, a0 # 4f4: 0add + add a12, a12, a13 # 4f6: dacc + movi a13, 0xc040b340 # 4f8: d151ff + ssai 23 # 4fb: 104740 + add a12, a12, a13 # 4fe: dacc + src a12, a12, a12 # 500: c0cc81 + add a12, a14, a12 # 503: cace + xor a13, a14, a12 # 505: c0de30 + and a13, a9, a13 # 508: d0d910 + xor a13, a14, a13 # 50b: d0de30 + add a13, a15, a13 # 50e: dadf + add a8, a8, a13 # 510: da88 + movi a13, 0x265e5a51 # 512: d14bff + ssai 18 # 515: 104240 + add a8, a8, a13 # 518: da88 + src a8, a8, a8 # 51a: 808881 + add a8, a12, a8 # 51d: 8a8c + xor a13, a8, a12 # 51f: c0d830 + and a13, a14, a13 # 522: d0de10 + xor a13, a12, a13 # 525: d0dc30 + add a13, a7, a13 # 528: dad7 + add a9, a9, a13 # 52a: da99 + movi a13, 0xe9b6c7aa # 52c: d146ff + ssai 12 # 52f: 004c40 + add a9, a9, a13 # 532: da99 + src a9, a9, a9 # 534: 909981 + l32i a13, a3, 40 /* [arg1+0x28] */ # 537: d8a3 + add a9, a8, a9 # 539: 9a98 + xor a0, a9, a8 # 53b: 800930 + and a0, a12, a0 # 53e: 000c10 + xor a0, a8, a0 # 541: 000830 + add a0, a4, a0 # 544: 0a04 + add a14, a14, a0 # 546: 0aee + movi a0, 0xd62f105d # 548: 0140ff + ssai 27 # 54b: 104b40 + add a14, a14, a0 # 54e: 0aee + src a14, a14, a14 # 550: e0ee81 + add a14, a9, a14 # 553: eae9 + xor a0, a14, a9 # 555: 900e30 + and a0, a8, a0 # 558: 000810 + xor a0, a9, a0 # 55b: 000930 + add a13, a13, a0 # 55e: 0add + add a12, a12, a13 # 560: dacc + movi a13, 0x02441453 # 562: d13aff + ssai 23 # 565: 104740 + add a12, a12, a13 # 568: dacc + src a12, a12, a12 # 56a: c0cc81 + l32i a13, a3, 60 /* [arg1+0x3c] */ # 56d: d8f3 + add a12, a14, a12 # 56f: cace + xor a0, a14, a12 # 571: c00e30 + and a0, a9, a0 # 574: 000910 + xor a0, a14, a0 # 577: 000e30 + add a13, a13, a0 # 57a: 0add + add a8, a8, a13 # 57c: da88 + movi a13, 0xd8a1e681 # 57e: d134ff + ssai 18 # 581: 104240 + add a8, a8, a13 # 584: da88 + src a8, a8, a8 # 586: 808881 + l32i a13, a3, 16 /* [arg1+0x10] */ # 589: d843 + add a8, a12, a8 # 58b: 8a8c + xor a0, a8, a12 # 58d: c00830 + and a0, a14, a0 # 590: 000e10 + xor a0, a12, a0 # 593: 000c30 + add a13, a13, a0 # 596: 0add + add a9, a9, a13 # 598: da99 + movi a13, 0xe7d3fbc8 # 59a: d12eff + ssai 12 # 59d: 004c40 + add a9, a9, a13 # 5a0: da99 + src a9, a9, a9 # 5a2: 909981 + add a9, a8, a9 # 5a5: 9a98 + xor a0, a9, a8 # 5a7: 800930 + and a0, a12, a0 # 5aa: 000c10 + xor a0, a8, a0 # 5ad: 000830 + add a0, a11, a0 # 5b0: 0a0b + add a14, a14, a0 # 5b2: 0aee + movi a0, 0x21e1cde6 # 5b4: 0129ff + ssai 27 # 5b7: 104b40 + add a14, a14, a0 # 5ba: 0aee + src a14, a14, a14 # 5bc: e0ee81 + add a14, a9, a14 # 5bf: eae9 + xor a13, a14, a9 # 5c1: 90de30 + and a13, a8, a13 # 5c4: d0d810 + xor a13, a9, a13 # 5c7: d0d930 + add a13, a5, a13 # 5ca: dad5 + add a12, a12, a13 # 5cc: dacc + movi a13, 0xc33707d6 # 5ce: d123ff + ssai 23 # 5d1: 104740 + add a12, a12, a13 # 5d4: dacc + src a12, a12, a12 # 5d6: c0cc81 + l32i a13, a3, 12 /* [arg1+0xc] */ # 5d9: d833 + add a12, a14, a12 # 5db: cace + xor a0, a14, a12 # 5dd: c00e30 + and a0, a9, a0 # 5e0: 000910 + xor a0, a14, a0 # 5e3: 000e30 + add a13, a13, a0 # 5e6: 0add + add a8, a8, a13 # 5e8: da88 + movi a13, 0xf4d50d87 # 5ea: d11dff + ssai 18 # 5ed: 104240 + add a8, a8, a13 # 5f0: da88 + l32i a13, a3, 32 /* [arg1+0x20] */ # 5f2: d883 + src a8, a8, a8 # 5f4: 808881 + add a8, a12, a8 # 5f7: 8a8c + ssai 12 # 5f9: 004c40 + xor a0, a8, a12 # 5fc: c00830 + and a0, a14, a0 # 5ff: 000e10 + xor a0, a12, a0 # 602: 000c30 + add a13, a13, a0 # 605: 0add + add a9, a9, a13 # 607: da99 + movi a13, 0x455a14ed # 609: d116ff + l32i a0, a3, 52 /* [arg1+0x34] */ # 60c: 08d3 + add a9, a9, a13 # 60e: da99 + src a9, a9, a9 # 610: 909981 + add a9, a8, a9 # 613: 9a98 + xor a13, a9, a8 # 615: 80d930 + and a13, a12, a13 # 618: d0dc10 + xor a13, a8, a13 # 61b: d0d830 + add a0, a0, a13 # 61e: da00 + add a14, a14, a0 # 620: 0aee + movi a0, 0xa9e3e905 # 622: 0111ff + ssai 27 # 625: 104b40 + add a14, a14, a0 # 628: 0aee + src a14, a14, a14 # 62a: e0ee81 + add a14, a9, a14 # 62d: eae9 + xor a13, a14, a9 # 62f: 90de30 + and a13, a8, a13 # 632: d0d810 + xor a13, a9, a13 # 635: d0d930 + add a13, a10, a13 # 638: dada + add a12, a12, a13 # 63a: dacc + movi a13, 0xfcefa3f8 # 63c: d10cff + ssai 23 # 63f: 104740 + add a12, a12, a13 # 642: dacc + src a12, a12, a12 # 644: c0cc81 + add a12, a14, a12 # 647: cace + xor a13, a14, a12 # 649: c0de30 + and a13, a9, a13 # 64c: d0d910 + xor a13, a14, a13 # 64f: d0de30 + add a13, a6, a13 # 652: dad6 + add a8, a8, a13 # 654: da88 + movi a13, 0x676f02d9 # 656: d106ff + ssai 18 # 659: 104240 + add a8, a8, a13 # 65c: da88 + src a8, a8, a8 # 65e: 808881 + l32i a13, a3, 48 /* [arg1+0x30] */ # 661: d8c3 + add a8, a12, a8 # 663: 8a8c + xor a0, a8, a12 # 665: c00830 + and a0, a14, a0 # 668: 000e10 + xor a0, a12, a0 # 66b: 000c30 + add a13, a13, a0 # 66e: 0add + add a9, a9, a13 # 670: da99 + movi a13, 0x8d2a4c8a # 672: d100ff + ssai 12 # 675: 004c40 + add a9, a9, a13 # 678: da99 + src a9, a9, a9 # 67a: 909981 + l32i a13, a3, 32 /* [arg1+0x20] */ # 67d: d883 + add a9, a8, a9 # 67f: 9a98 + xor a0, a9, a8 # 681: 800930 + xor a0, a12, a0 # 684: 000c30 + add a0, a4, a0 # 687: 0a04 + add a14, a14, a0 # 689: 0aee + movi a0, 0xfffa3942 # 68b: 01fbfe + ssai 28 # 68e: 104c40 + add a14, a14, a0 # 691: 0aee + src a14, a14, a14 # 693: e0ee81 + add a14, a9, a14 # 696: eae9 + ssai 21 # 698: 104540 + xor a0, a14, a9 # 69b: 900e30 + xor a0, a8, a0 # 69e: 000830 + add a13, a13, a0 # 6a1: 0add + add a12, a12, a13 # 6a3: dacc + movi a13, 0x8771f681 # 6a5: d1f5fe + l32i a0, a3, 4 /* [arg1+0x4] */ # 6a8: 0813 + add a12, a12, a13 # 6aa: dacc + src a12, a12, a12 # 6ac: c0cc81 + add a12, a14, a12 # 6af: cace + xor a13, a14, a12 # 6b1: c0de30 + xor a13, a9, a13 # 6b4: d0d930 + add a13, a15, a13 # 6b7: dadf + add a8, a8, a13 # 6b9: da88 + movi a13, 0x6d9d6122 # 6bb: d1f1fe + ssai 16 # 6be: 104040 + add a8, a8, a13 # 6c1: da88 + src a8, a8, a8 # 6c3: 808881 + add a8, a12, a8 # 6c6: 8a8c + xor a13, a8, a12 # 6c8: c0d830 + xor a13, a14, a13 # 6cb: d0de30 + add a13, a5, a13 # 6ce: dad5 + add a9, a9, a13 # 6d0: da99 + movi a13, 0xfde5380c # 6d2: d1ecfe + ssai 9 # 6d5: 004940 + add a9, a9, a13 # 6d8: da99 + src a9, a9, a9 # 6da: 909981 + add a9, a8, a9 # 6dd: 9a98 + ssai 28 # 6df: 104c40 + xor a13, a9, a8 # 6e2: 80d930 + xor a13, a12, a13 # 6e5: d0dc30 + add a0, a0, a13 # 6e8: da00 + add a14, a14, a0 # 6ea: 0aee + movi a0, 0xa4beea44 # 6ec: 01e7fe + l32i a13, a3, 16 /* [arg1+0x10] */ # 6ef: d843 + add a14, a14, a0 # 6f1: 0aee + src a14, a14, a14 # 6f3: e0ee81 + add a14, a9, a14 # 6f6: eae9 + xor a0, a14, a9 # 6f8: 900e30 + xor a0, a8, a0 # 6fb: 000830 + add a13, a13, a0 # 6fe: 0add + add a12, a12, a13 # 700: dacc + movi a13, 0x4bdecfa9 # 702: d1e2fe + ssai 21 # 705: 104540 + add a12, a12, a13 # 708: dacc + src a12, a12, a12 # 70a: c0cc81 + add a12, a14, a12 # 70d: cace + xor a13, a14, a12 # 70f: c0de30 + xor a13, a9, a13 # 712: d0d930 + add a13, a6, a13 # 715: dad6 + add a8, a8, a13 # 717: da88 + movi a13, 0xf6bb4b60 # 719: d1ddfe + ssai 16 # 71c: 104040 + add a8, a8, a13 # 71f: da88 + l32i a13, a3, 40 /* [arg1+0x28] */ # 721: d8a3 + src a8, a8, a8 # 723: 808881 + add a8, a12, a8 # 726: 8a8c + ssai 9 # 728: 004940 + xor a0, a8, a12 # 72b: c00830 + xor a0, a14, a0 # 72e: 000e30 + add a13, a13, a0 # 731: 0add + add a9, a9, a13 # 733: da99 + movi a13, 0xbebfbc70 # 735: d1d7fe + l32i a0, a3, 52 /* [arg1+0x34] */ # 738: 08d3 + add a9, a9, a13 # 73a: da99 + src a9, a9, a9 # 73c: 909981 + add a9, a8, a9 # 73f: 9a98 + xor a13, a9, a8 # 741: 80d930 + xor a13, a12, a13 # 744: d0dc30 + add a0, a0, a13 # 747: da00 + add a14, a14, a0 # 749: 0aee + movi a0, 0x289b7ec6 # 74b: 01d3fe + ssai 28 # 74e: 104c40 + add a14, a14, a0 # 751: 0aee + src a14, a14, a14 # 753: e0ee81 + add a14, a9, a14 # 756: eae9 + xor a13, a14, a9 # 758: 90de30 + xor a13, a8, a13 # 75b: d0d830 + add a13, a7, a13 # 75e: dad7 + add a12, a12, a13 # 760: dacc + movi a13, 0xeaa127fa # 762: d1cefe + ssai 21 # 765: 104540 + add a12, a12, a13 # 768: dacc + src a12, a12, a12 # 76a: c0cc81 + l32i a13, a3, 12 /* [arg1+0xc] */ # 76d: d833 + add a12, a14, a12 # 76f: cace + xor a0, a14, a12 # 771: c00e30 + xor a0, a9, a0 # 774: 000930 + add a13, a13, a0 # 777: 0add + add a8, a8, a13 # 779: da88 + movi a13, 0xd4ef3085 # 77b: d1c9fe + ssai 16 # 77e: 104040 + add a8, a8, a13 # 781: da88 + src a8, a8, a8 # 783: 808881 + l32i a13, a3, 24 /* [arg1+0x18] */ # 786: d863 + add a8, a12, a8 # 788: 8a8c + xor a0, a8, a12 # 78a: c00830 + xor a0, a14, a0 # 78d: 000e30 + add a13, a13, a0 # 790: 0add + add a9, a9, a13 # 792: da99 + movi a13, 0x04881d05 # 794: d1c4fe + ssai 9 # 797: 004940 + add a9, a9, a13 # 79a: da99 + src a9, a9, a9 # 79c: 909981 + l32i a13, a3, 48 /* [arg1+0x30] */ # 79f: d8c3 + add a9, a8, a9 # 7a1: 9a98 + xor a0, a9, a8 # 7a3: 800930 + xor a0, a12, a0 # 7a6: 000c30 + add a0, a11, a0 # 7a9: 0a0b + add a14, a14, a0 # 7ab: 0aee + movi a0, 0xd9d4d039 # 7ad: 01befe + ssai 28 # 7b0: 104c40 + add a14, a14, a0 # 7b3: 0aee + src a14, a14, a14 # 7b5: e0ee81 + add a14, a9, a14 # 7b8: eae9 + ssai 21 # 7ba: 104540 + xor a0, a14, a9 # 7bd: 900e30 + xor a0, a8, a0 # 7c0: 000830 + add a13, a13, a0 # 7c3: 0add + add a12, a12, a13 # 7c5: dacc + movi a13, 0xe6db99e5 # 7c7: d1b9fe + l32i a0, a3, 60 /* [arg1+0x3c] */ # 7ca: 08f3 + add a12, a12, a13 # 7cc: dacc + src a12, a12, a12 # 7ce: c0cc81 + add a12, a14, a12 # 7d1: cace + xor a13, a14, a12 # 7d3: c0de30 + xor a13, a9, a13 # 7d6: d0d930 + add a13, a0, a13 # 7d9: dad0 + add a8, a8, a13 # 7db: da88 + movi a13, 0x1fa27cf8 # 7dd: d1b4fe + ssai 16 # 7e0: 104040 + add a8, a8, a13 # 7e3: da88 + src a8, a8, a8 # 7e5: 808881 + add a8, a12, a8 # 7e8: 8a8c + xor a13, a8, a12 # 7ea: c0d830 + xor a13, a14, a13 # 7ed: d0de30 + add a13, a10, a13 # 7f0: dada + add a9, a9, a13 # 7f2: da99 + movi a13, 0xc4ac5665 # 7f4: d1b0fe + ssai 9 # 7f7: 004940 + add a9, a9, a13 # 7fa: da99 + src a9, a9, a9 # 7fc: 909981 + movi a13, -1 /* 0xffffffff */ # 7ff: 7cfd + xor a13, a12, a13 # 801: d0dc30 + add a9, a8, a9 # 804: 9a98 + ssai 26 # 806: 104a40 + or a13, a9, a13 # 809: d0d920 + xor a13, a8, a13 # 80c: d0d830 + add a7, a7, a13 # 80f: da77 + add a14, a14, a7 # 811: 7aee + movi a7, 0xf4292244 # 813: 71a9fe + movi a13, -1 /* 0xffffffff */ # 816: 7cfd + add a14, a14, a7 # 818: 7aee + xor a7, a8, a13 # 81a: d07830 + src a14, a14, a14 # 81d: e0ee81 + add a14, a9, a14 # 820: eae9 + ssai 22 # 822: 104640 + or a7, a14, a7 # 825: 707e20 + xor a7, a9, a7 # 828: 707930 + add a6, a6, a7 # 82b: 7a66 + add a12, a12, a6 # 82d: 6acc + movi a6, 0x432aff97 # 82f: 61a3fe + l32i a7, a2, 4 /* [arg0+0x4] */ # 832: 7812 + add a12, a12, a6 # 834: 6acc + src a12, a12, a12 # 836: c0cc81 + xor a6, a9, a13 # 839: d06930 + add a12, a14, a12 # 83c: cace + or a6, a12, a6 # 83e: 606c20 + xor a6, a14, a6 # 841: 606e30 + add a5, a5, a6 # 844: 6a55 + add a8, a8, a5 # 846: 5a88 + movi a5, 0xab9423a7 # 848: 519efe + ssai 17 # 84b: 104140 + add a8, a8, a5 # 84e: 5a88 + xor a5, a14, a13 # 850: d05e30 + src a8, a8, a8 # 853: 808881 + add a8, a12, a8 # 856: 8a8c + ssai 11 # 858: 004b40 + or a5, a8, a5 # 85b: 505820 + xor a5, a12, a5 # 85e: 505c30 + add a4, a4, a5 # 861: 5a44 + add a9, a9, a4 # 863: 4a99 + movi a4, 0xfc93a039 # 865: 4197fe + xor a5, a12, a13 # 868: d05c30 + add a9, a9, a4 # 86b: 4a99 + l32i a4, a3, 48 /* [arg1+0x30] */ # 86d: 48c3 + src a9, a9, a9 # 86f: 909981 + add a9, a8, a9 # 872: 9a98 + ssai 26 # 874: 104a40 + or a5, a9, a5 # 877: 505920 + xor a5, a8, a5 # 87a: 505830 + add a4, a4, a5 # 87d: 5a44 + add a14, a14, a4 # 87f: 4aee + movi a4, 0x655b59c3 # 881: 4191fe + xor a5, a8, a13 # 884: d05830 + add a14, a14, a4 # 887: 4aee + l32i a4, a3, 12 /* [arg1+0xc] */ # 889: 4833 + src a14, a14, a14 # 88b: e0ee81 + add a14, a9, a14 # 88e: eae9 + ssai 22 # 890: 104640 + or a5, a14, a5 # 893: 505e20 + xor a5, a9, a5 # 896: 505930 + add a4, a4, a5 # 899: 5a44 + add a12, a12, a4 # 89b: 4acc + movi a4, 0x8f0ccc92 # 89d: 418bfe + xor a5, a9, a13 # 8a0: d05930 + add a12, a12, a4 # 8a3: 4acc + l32i a4, a3, 40 /* [arg1+0x28] */ # 8a5: 48a3 + src a12, a12, a12 # 8a7: c0cc81 + add a12, a14, a12 # 8aa: cace + ssai 17 # 8ac: 104140 + or a5, a12, a5 # 8af: 505c20 + xor a5, a14, a5 # 8b2: 505e30 + add a4, a4, a5 # 8b5: 5a44 + add a8, a8, a4 # 8b7: 4a88 + movi a4, 0xffeff47d # 8b9: 4185fe + xor a5, a14, a13 # 8bc: d05e30 + add a8, a8, a4 # 8bf: 4a88 + l32i a4, a3, 4 /* [arg1+0x4] */ # 8c1: 4813 + src a8, a8, a8 # 8c3: 808881 + add a8, a12, a8 # 8c6: 8a8c + ssai 11 # 8c8: 004b40 + or a5, a8, a5 # 8cb: 505820 + xor a5, a12, a5 # 8ce: 505c30 + add a4, a4, a5 # 8d1: 5a44 + add a9, a9, a4 # 8d3: 4a99 + movi a4, 0x85845dd1 # 8d5: 417ffe + xor a5, a12, a13 # 8d8: d05c30 + add a9, a9, a4 # 8db: 4a99 + src a9, a9, a9 # 8dd: 909981 + l32i a4, a3, 32 /* [arg1+0x20] */ # 8e0: 4883 + add a9, a8, a9 # 8e2: 9a98 + or a5, a9, a5 # 8e4: 505920 + xor a5, a8, a5 # 8e7: 505830 + add a4, a4, a5 # 8ea: 5a44 + add a14, a14, a4 # 8ec: 4aee + movi a4, 0x6fa87e4f # 8ee: 417afe + ssai 26 # 8f1: 104a40 + add a14, a14, a4 # 8f4: 4aee + xor a4, a8, a13 # 8f6: d04830 + src a14, a14, a14 # 8f9: e0ee81 + add a14, a9, a14 # 8fc: eae9 + ssai 22 # 8fe: 104640 + or a4, a14, a4 # 901: 404e20 + xor a4, a9, a4 # 904: 404930 + add a0, a0, a4 # 907: 4a00 + add a12, a12, a0 # 909: 0acc + movi a0, 0xfe2ce6e0 # 90b: 0174fe + xor a4, a9, a13 # 90e: d04930 + add a12, a12, a0 # 911: 0acc + l32i a0, a3, 24 /* [arg1+0x18] */ # 913: 0863 + src a12, a12, a12 # 915: c0cc81 + add a12, a14, a12 # 918: cace + ssai 17 # 91a: 104140 + or a4, a12, a4 # 91d: 404c20 + xor a4, a14, a4 # 920: 404e30 + add a0, a0, a4 # 923: 4a00 + add a8, a8, a0 # 925: 0a88 + movi a0, 0xa3014314 # 927: 016efe + xor a4, a14, a13 # 92a: d04e30 + add a8, a8, a0 # 92d: 0a88 + l32i a0, a3, 52 /* [arg1+0x34] */ # 92f: 08d3 + src a8, a8, a8 # 931: 808881 + add a8, a12, a8 # 934: 8a8c + ssai 11 # 936: 004b40 + or a4, a8, a4 # 939: 404820 + xor a4, a12, a4 # 93c: 404c30 + add a0, a0, a4 # 93f: 4a00 + add a9, a9, a0 # 941: 0a99 + movi a0, 0x4e0811a1 # 943: 0168fe + xor a4, a12, a13 # 946: d04c30 + add a9, a9, a0 # 949: 0a99 + l32i a0, a3, 16 /* [arg1+0x10] */ # 94b: 0843 + src a9, a9, a9 # 94d: 909981 + add a9, a8, a9 # 950: 9a98 + ssai 26 # 952: 104a40 + or a4, a9, a4 # 955: 404920 + xor a4, a8, a4 # 958: 404830 + add a0, a0, a4 # 95b: 4a00 + add a14, a14, a0 # 95d: 0aee + movi a0, 0xf7537e82 # 95f: 0162fe + l32i a4, a2, 0 /* [arg0] */ # 962: 4802 + add a14, a14, a0 # 964: 0aee + src a14, a14, a14 # 966: e0ee81 + xor a0, a8, a13 # 969: d00830 + ssai 22 # 96c: 104640 + add a14, a9, a14 # 96f: eae9 + add a4, a4, a14 # 971: ea44 + or a0, a14, a0 # 973: 000e20 + xor a0, a9, a0 # 976: 000930 + s32i a4, a2, 0 /* a4 -> [arg0] */ # 979: 4902 + add a15, a15, a0 # 97b: 0aff + add a12, a12, a15 # 97d: facc + movi a15, 0xbd3af235 # 97f: f15bfe + l32i a0, sp, 0 /* [(local0)] */ # 982: 0801 + add a12, a12, a15 # 984: facc + l32i a15, a2, 12 /* [arg0+0xc] */ # 986: f832 + src a12, a12, a12 # 988: c0cc81 + add a12, a14, a12 # 98b: cace + add a15, a15, a12 # 98d: caff + ssai 17 # 98f: 104140 + s32i a15, a2, 12 /* a15 -> [arg0+0xc] */ # 992: f932 + xor a15, a9, a13 # 994: d0f930 + xor a13, a14, a13 # 997: d0de30 + or a15, a12, a15 # 99a: f0fc20 + xor a14, a14, a15 # 99d: f0ee30 + add a10, a10, a14 # 9a0: eaaa + l32i a15, sp, 16 /* [(local4)] */ # 9a2: f841 + add a8, a8, a10 # 9a4: aa88 + movi a10, 0x2ad7d2bb # 9a6: a152fe + l32i a14, a2, 8 /* [arg0+0x8] */ # 9a9: e822 + add a8, a8, a10 # 9ab: aa88 + src a8, a8, a8 # 9ad: 808881 + movi a10, 0xeb86d391 # 9b0: a151fe + ssai 11 # 9b3: 004b40 + add a8, a12, a8 # 9b6: 8a8c + add a14, a14, a8 # 9b8: 8aee + or a13, a8, a13 # 9ba: d0d820 + xor a12, a12, a13 # 9bd: d0cc30 + s32i a14, a2, 8 /* a14 -> [arg0+0x8] */ # 9c0: e922 + l32i a13, sp, 8 /* [(local2)] */ # 9c2: d821 + l32i a14, sp, 12 /* [(local3)] */ # 9c4: e831 + add a11, a11, a12 # 9c6: cabb + add a9, a9, a11 # 9c8: ba99 + l32i a12, sp, 4 /* [(local1)] */ # 9ca: c811 + add a9, a9, a10 # 9cc: aa99 + src a9, a9, a9 # 9ce: 909981 + add a8, a8, a9 # 9d1: 9a88 + add a7, a7, a8 # 9d3: 8a77 + s32i a7, a2, 4 /* a7 -> [arg0+0x4] */ # 9d5: 7912 + addi sp, sp, 32 /* (top of frame) */ # 9d7: 12c120 + ret /* arg0 */ # 9da: 0df0 diff --git a/binary_sdk/libwpa_stage1/md5.S b/binary_sdk/libwpa_stage1/md5.S new file mode 100644 index 0000000..d9f1bf7 --- /dev/null +++ b/binary_sdk/libwpa_stage1/md5.S @@ -0,0 +1,165 @@ + + .section .irom0.text, "ax", @progbits + + .literal_position # 0: 00000000 + # 4: 00000000 + # 8: 00000000 + # c: 00000000 + # 10: 00000000 + # 14: 00000000 + # 18: 00000000 + +# Function @ .irom0.text+0x1c +# Local variables/stack: +# (local0): word @ -0x80 +# (local1): word[7] @ -0x7c +# (local2): word @ -0x60 +# (local3): word[7] @ -0x5c +# (local4): word @ -0x40 +# (local5): word @ -0x3c +# (local6): word @ -0x38 +# (local7): word @ -0x34 +# (local8): word @ -0x30 +# (local9): word[3] @ -0x2c +# (local10): word @ -0x20 +# (local11): word[7] @ -0x1c + .balign 4 + .global hmac_md5_vector + .type hmac_md5_vector, @function +hmac_md5_vector: + movi a8, 208 /* 0x000000d0 */ # 1c: 82a0d0 + sub sp, sp, a8 /* (FP)-0xd0 */ # 1f: 8011c0 + s32i a3, sp, 180 /* arg1 -> [(local11)] */ # 22: 32612d + s32i a2, sp, 176 /* arg0 -> [(local10)] */ # 25: 22612c + s32i a0, sp, 148 /* a0 -> [(local5)] */ # 28: 026125 + s32i a13, sp, 156 /* a13 -> [(local7)] */ # 2b: d26127 + s32i a12, sp, 152 /* a12 -> [(local6)] */ # 2e: c26126 + s32i a14, sp, 160 /* a14 -> [(local8)] */ # 31: e26128 + mov a12, a5 /* arg3 */ # 34: cd05 + mov a14, a4 /* arg2 */ # 36: ed04 + mov a13, a6 /* arg4 */ # 38: dd06 + movi a0, 180 /* 0x000000b4 */ # 3a: 02a0b4 + add a0, sp, a0 /* (local11) */ # 3d: 0a01 + movi a6, 176 /* 0x000000b0 */ # 3f: 62a0b0 + add a6, sp, a6 /* (local10) */ # 42: 6a61 + bltui a4, 6, .Lbr001 # 44: b66402 + j .Lbr006 # 47: 062500 +.Lbr001: s32i a7, sp, 144 /* arg5 -> [(local4)] */ # 4a: 726124 + movi a2, 64 /* 0x00000040 */ # 4d: 4c02 + bgeu a2, a3, .Lbr002 # 4f: 37b218 + mov a3, a6 /* (local10) */ # 52: 3d06 + movi a2, 1 /* 0x00000001 */ # 54: 0c12 + mov a5, sp /* (FP)-0xd0 */ # 56: 5d01 + mov a4, a0 /* (local11) */ # 58: 4d00 + call0 md5_vector # 5a: 01e9ffc0 + # 5e: 0000 + bnez a2, .Lbr006 # 60: 56b207 + s32i sp, sp, 176 /* (FP)-0xd0 -> [(local10)] */ # 63: 12612c + movi a6, 16 /* 0x00000010 */ # 66: 1c06 + s32i a6, sp, 180 /* 0x00000010 -> [(local11)] */ # 68: 62612d +.Lbr002: addi a2, sp, 16 /* (FP)-0xc0 */ # 6b: 22c110 + movi a3, 0 /* 0x00000000 */ # 6e: 0c03 + movi a4, 64 /* 0x00000040 */ # 70: 4c04 + call0 memset # 72: 01e4ffc0 + # 76: 0000 + l32i a3, sp, 176 /* [(local10)] */ # 78: 32212c + l32i a4, sp, 180 /* [(local11)] */ # 7b: 42212d + addi a2, sp, 16 /* (FP)-0xc0 */ # 7e: 22c110 + s32i a14, sp, 164 /* arg2 -> [(local9)] */ # 81: e26129 + call0 memcpy # 84: 01e1ffc0 + # 88: 0000 + l32i a4, sp, 164 /* [(local9)] */ # 8a: 422129 + addi a0, sp, 16 /* (FP)-0xc0 */ # 8d: 02c110 + addi a14, sp, 80 /* (local0) */ # 90: e2c150 + movi a2, 54 /* 0x00000036 */ # 93: 3c62 + movi a6, 64 /* 0x00000040 */ # 95: 4c06 + s32i a6, sp, 112 /* 0x00000040 -> [(local2)] */ # 97: 62611c + addi a6, sp, 16 /* (FP)-0xc0 */ # 9a: 62c110 + s32i a6, sp, 80 /* (FP)-0xc0 -> [(local0)] */ # 9d: 626114 +.Lbr003: l8ui a5, a0, 0 # a0: 520000 + xor a5, a5, a2 # a3: 205530 + s8i a5, a0, 0 # a6: 524000 + addi a0, a0, 1 # a9: 1b00 + bne a0, a14, .Lbr003 # ab: e790f1 + beqz a4, .Lbr005 # ae: 9ca4 + addi a0, sp, 112 /* (local2) */ # b0: 02c170 + addi a2, sp, 80 /* (local0) */ # b3: 22c150 + addx4 a3, a4, a12 # b6: c034a0 +.Lbr004: l32i a7, a13, 0 # b9: 780d + l32i a8, a12, 0 # bb: 880c + addi a13, a13, 4 # bd: 4bdd + addi a12, a12, 4 # bf: 4bcc + s32i a8, a2, 4 # c1: 8912 + s32i a7, a0, 4 # c3: 7910 + addi a2, a2, 4 # c5: 4b22 + addi a0, a0, 4 # c7: 4b00 + bne a12, a3, .Lbr004 # c9: 379cec +.Lbr005: addi a3, sp, 80 /* (local0) */ # cc: 32c150 + addi a2, a4, 1 /* [(local9)]+0x1 */ # cf: 1b24 + l32i a5, sp, 144 /* [(local4)] */ # d1: 522124 + addi a4, sp, 112 /* (local2) */ # d4: 42c170 + call0 md5_vector # d7: 01cdffc0 + # db: 0000 + beqz a2, .Lbr007 # dd: 8c32 +.Lbr006: movi a2, -1 /* 0xffffffff */ # df: 7cf2 + j .Lbr009 # e1: 861400 +.Lbr007: addi a2, sp, 16 /* (FP)-0xc0 */ # e4: 22c110 + movi a3, 0 /* 0x00000000 */ # e7: 0c03 + movi a4, 64 /* 0x00000040 */ # e9: 4c04 + call0 memset # eb: 01c9ffc0 + # ef: 0000 + l32i a3, sp, 176 /* [(local10)] */ # f1: 32212c + l32i a4, sp, 180 /* [(local11)] */ # f4: 42212d + addi a2, sp, 16 /* (FP)-0xc0 */ # f7: 22c110 + call0 memcpy # fa: 01c6ffc0 + # fe: 0000 + addi a0, sp, 16 /* (FP)-0xc0 */ # 100: 02c110 + movi a2, 92 /* 0x0000005c */ # 103: 5cc2 +.Lbr008: l8ui a5, a0, 0 # 105: 520000 + xor a5, a5, a2 # 108: 205530 + s8i a5, a0, 0 # 10b: 524000 + addi a0, a0, 1 # 10e: 1b00 + bne a0, a14, .Lbr008 # 110: e790f1 + movi a2, 2 /* 0x00000002 */ # 113: 0c22 + addi a3, sp, 80 /* (local0) */ # 115: 32c150 + addi a4, sp, 112 /* (local2) */ # 118: 42c170 + movi a6, 16 /* 0x00000010 */ # 11b: 1c06 + l32i a5, sp, 144 /* [(local4)] */ # 11d: 522124 + movi a7, 64 /* 0x00000040 */ # 120: 4c07 + addi a8, sp, 16 /* (FP)-0xc0 */ # 122: 82c110 + s32i a8, sp, 80 /* (FP)-0xc0 -> [(local0)] */ # 125: 826114 + s32i a7, sp, 112 /* 0x00000040 -> [(local2)] */ # 128: 72611c + s32i a5, sp, 84 /* [(local4)] -> [(local1)] */ # 12b: 526115 + s32i a6, sp, 116 /* 0x00000010 -> [(local3)] */ # 12e: 62611d + call0 md5_vector # 131: 01b9ffc0 + # 135: 0000 +.Lbr009: l32i a12, sp, 152 /* [(local6)] */ # 137: c22126 + l32i a13, sp, 156 /* [(local7)] */ # 13a: d22127 + l32i a14, sp, 160 /* [(local8)] */ # 13d: e22128 + movi a3, 208 /* 0x000000d0 */ # 140: 32a0d0 + l32i a0, sp, 148 /* [(local5)] */ # 143: 022125 + add sp, sp, a3 /* (top of frame) */ # 146: 3a11 + ret # 148: 0df0 + + .balign 4 +# Function @ .irom0.text+0x14c +# Local variables/stack: +# (local0): word[6] @ -0x30 +# (local1): word @ -0x18 +# (local2): word[5] @ -0x14 + .balign 4 + .global hmac_md5 + .type hmac_md5, @function +hmac_md5: mov a7, a6 /* arg4 */ # 14c: 7d06 + mov a9, a5 /* arg3 */ # 14e: 9d05 + addi sp, sp, -48 /* (local0) */ # 150: 12c1d0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 153: 0901 + s32i a4, sp, 24 /* arg2 -> [(local1)] */ # 155: 4961 + addi a5, sp, 24 /* (local1) */ # 157: 52c118 + addi a6, sp, 28 /* (local2) */ # 15a: 62c11c + s32i a9, sp, 28 /* arg3 -> [(local2)] */ # 15d: 9971 + movi a4, 1 /* 0x00000001 */ # 15f: 0c14 + call0 hmac_md5_vector # 161: 050000 + l32i a0, sp, 0 /* [(local0)] */ # 164: 0801 + addi sp, sp, 48 /* (top of frame) */ # 166: 12c130 + ret # 169: 0df0 diff --git a/binary_sdk/libwpa_stage1/os_xtensa.S b/binary_sdk/libwpa_stage1/os_xtensa.S new file mode 100644 index 0000000..db75396 --- /dev/null +++ b/binary_sdk/libwpa_stage1/os_xtensa.S @@ -0,0 +1,69 @@ + + .section .irom0.text, "ax", @progbits + +# Function @ .irom0.text+0x0 + .balign 4 + .literal_position + .global os_get_time + .type os_get_time, @function +os_get_time: + movi a2, 0 /* 0x00000000 */ # 0: 0c02 + ret /* 0x00000000 */ # 2: 0df0 + + .literal_position # 4: 00000000 + +# Function @ .irom0.text+0x8 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global os_random + .type os_random, @function +os_random: addi sp, sp, -16 /* (local0) */ # 8: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # b: 0901 + call0 rand # d: 01fdffc0 + # 11: 0000 + l32i a0, sp, 0 /* [(local0)] */ # 13: 0801 + addi sp, sp, 16 /* (top of frame) */ # 15: 12c110 + ret # 18: 0df0 + + .literal_position # 1c: 00000000 + # 20: 00000000 + +# Function @ .irom0.text+0x24 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word[4] @ -0x10 + .balign 4 + .global os_get_random + .type os_get_random, @function +os_get_random: + addi sp, sp, -32 /* (local0) */ # 24: 12c1e0 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 27: 0911 + s32i a13, sp, 12 /* a13 -> [(local3)] */ # 29: d931 + s32i a12, sp, 8 /* a12 -> [(local2)] */ # 2b: c921 + s32i a14, sp, 16 /* a14 -> [(local4)] */ # 2d: e941 + mov a12, a2 /* arg0 */ # 2f: cd02 + srli a14, a3, 2 # 31: 30e241 + blti a14, 1, .Lbr002 # 34: a61e1c + movi a13, 0 /* 0x00000000 */ # 37: 0c0d +.Lbr001: call0 rand # 39: 01f8ffc0 + # 3d: 0000 + mov a3, sp /* (local0) */ # 3f: 3d01 + s32i a2, sp, 0 /* a2 -> [(local0)] */ # 41: 2901 + movi a4, 4 /* 0x00000004 */ # 43: 0c44 + mov a2, a12 # 45: 2d0c + call0 memcpy # 47: 01f6ffc0 + # 4b: 0000 + addi a12, a12, 4 # 4d: 4bcc + addi a13, a13, 1 # 4f: 1bdd + bne a13, a14, .Lbr001 # 51: e79de4 +.Lbr002: movi a2, 0 /* 0x00000000 */ # 54: 0c02 + l32i a12, sp, 8 /* [(local2)] */ # 56: c821 + l32i a13, sp, 12 /* [(local3)] */ # 58: d831 + l32i a14, sp, 16 /* [(local4)] */ # 5a: e841 + l32i a0, sp, 4 /* [(local1)] */ # 5c: 0811 + addi sp, sp, 32 /* (top of frame) */ # 5e: 12c120 + ret /* 0x00000000 */ # 61: 0df0 diff --git a/binary_sdk/libwpa_stage1/rc4.S b/binary_sdk/libwpa_stage1/rc4.S new file mode 100644 index 0000000..ad5ae2e --- /dev/null +++ b/binary_sdk/libwpa_stage1/rc4.S @@ -0,0 +1,101 @@ + + .section .irom0.text, "ax", @progbits + +# Function @ .irom0.text+0x0 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word[4] @ -0x10 + .balign 4 + .literal_position + .global rc4_skip + .type rc4_skip, @function +rc4_skip: movi a10, 0 /* 0x00000000 */ # 0: 0c0a + movi a9, 0 /* 0x00000000 */ # 2: 0c09 + movi a7, 288 /* 0x00000120 */ # 4: 72a120 + sub sp, sp, a7 /* (FP)-0x120 */ # 7: 7011c0 + s32i a12, sp, 0x108 /* a12 -> [(local2)] */ # a: c26142 + s32i a14, sp, 0x110 /* a14 -> [(local4)] */ # d: e26144 + s32i a13, sp, 0x10c /* a13 -> [(local3)] */ # 10: d26143 + s32i a5, sp, 0x100 /* arg3 -> [(local0)] */ # 13: 526140 + s32i a0, sp, 0x104 /* a0 -> [(local1)] */ # 16: 026141 + mov a0, sp /* (FP)-0x120 */ # 19: 0d01 +.Lbr001: s8i a10, a0, 0 # 1b: a24000 + addi a0, a0, 1 # 1e: 1b00 + addi a10, a10, 1 # 20: 1baa + bnei a10, 0x100, .Lbr001 # 22: 66faf5 + movi a5, 0 /* 0x00000000 */ # 25: 0c05 + mov a13, sp /* (FP)-0x120 */ # 27: dd01 + addmi a14, sp, 256 /* (local0) */ # 29: e2d101 + mov a0, sp /* (FP)-0x120 */ # 2c: 0d01 + movi a10, 0 /* 0x00000000 */ # 2e: 0c0a + add a12, a2, a10 /* arg0 */ # 30: aac2 +.Lbr002: l8ui a11, a0, 0 # 32: b20000 + l8ui a12, a12, 0 # 35: c20c00 + add a9, a11, a9 # 38: 9a9b + add a9, a12, a9 # 3a: 9a9c + addi a12, a10, 1 # 3c: 1bca + extui a9, a9, 0, 8 # 3e: 909074 + mov a10, a5 /* 0x00000000 */ # 41: ad05 + add a7, a9, a13 # 43: da79 + l8ui a8, a7, 0 # 45: 820700 + s8i a8, a0, 0 # 48: 824000 + s8i a11, a7, 0 # 4b: b24700 + addi a0, a0, 1 # 4e: 1b00 + bgeu a12, a3, .Lbr003 # 50: 37bc01 + mov a10, a12 # 53: ad0c +.Lbr003: add a12, a2, a10 # 55: aac2 + bne a0, a14, .Lbr002 # 57: e790d7 + l32i a5, sp, 0x100 /* [(local0)] */ # 5a: 522140 + beqz a4, .Lbr005 # 5d: ac64 + movi a10, 0 /* 0x00000000 */ # 5f: 0c0a + movi a9, 0 /* 0x00000000 */ # 61: 0c09 + movi a0, 0 /* 0x00000000 */ # 63: 0c00 +.Lbr004: addi a10, a10, 1 # 65: 1baa + extui a10, a10, 0, 8 # 67: a0a074 + add a2, a10, a13 # 6a: da2a + l8ui a11, a2, 0 # 6c: b20200 + addi a0, a0, 1 # 6f: 1b00 + add a9, a11, a9 # 71: 9a9b + extui a9, a9, 0, 8 # 73: 909074 + add a12, a9, a13 # 76: dac9 + l8ui a14, a12, 0 # 78: e20c00 + s8i a14, a2, 0 # 7b: e24200 + s8i a11, a12, 0 # 7e: b24c00 + bne a4, a0, .Lbr004 # 81: 0794e0 + j .Lbr006 # 84: c60000 +.Lbr005: movi a9, 0 /* 0x00000000 */ # 87: 0c09 + movi a10, 0 /* 0x00000000 */ # 89: 0c0a +.Lbr006: beqz a6, .Lbr008 # 8b: bc76 + movi a0, 0 /* 0x00000000 */ # 8d: 0c00 +.Lbr007: addi a10, a10, 1 # 8f: 1baa + extui a10, a10, 0, 8 # 91: a0a074 + add a12, a10, a13 # 94: daca + l8ui a14, a12, 0 # 96: e20c00 + add a9, a14, a9 # 99: 9a9e + extui a9, a9, 0, 8 # 9b: 909074 + add a2, a9, a13 # 9e: da29 + l8ui a3, a2, 0 # a0: 320200 + s8i a3, a12, 0 # a3: 324c00 + s8i a14, a2, 0 # a6: e24200 + l8ui a12, a12, 0 # a9: c20c00 + l8ui a11, a5, 0 # ac: b20500 + add a12, a12, a14 # af: eacc + extui a12, a12, 0, 8 # b1: c0c074 + add a12, a13, a12 # b4: cacd + l8ui a12, a12, 0 # b6: c20c00 + addi a0, a0, 1 # b9: 1b00 + xor a11, a11, a12 # bb: c0bb30 + s8i a11, a5, 0 # be: b24500 + addi a5, a5, 1 # c1: 1b55 + bne a6, a0, .Lbr007 # c3: 0796c8 +.Lbr008: movi a2, 0 /* 0x00000000 */ # c6: 0c02 + l32i a12, sp, 0x108 /* [(local2)] */ # c8: c22142 + l32i a13, sp, 0x10c /* [(local3)] */ # cb: d22143 + l32i a14, sp, 0x110 /* [(local4)] */ # ce: e22144 + movi a3, 288 /* 0x00000120 */ # d1: 32a120 + l32i a0, sp, 0x104 /* [(local1)] */ # d4: 022141 + add sp, sp, a3 /* (top of frame) */ # d7: 3a11 + ret /* 0x00000000 */ # d9: 0df0 diff --git a/binary_sdk/libwpa_stage1/sha1-internal.S b/binary_sdk/libwpa_stage1/sha1-internal.S new file mode 100644 index 0000000..93ecbdb --- /dev/null +++ b/binary_sdk/libwpa_stage1/sha1-internal.S @@ -0,0 +1,2129 @@ + + .section .irom0.text, "ax", @progbits + +# Function @ .irom0.text+0x0 +# Local variables/stack: +# (local0): word @ -0x24 +# (local1): word @ -0x20 +# (local2): word @ -0x1c +# (local3): word @ -0x18 +# (local4): word @ -0x14 +# (local5): word[4] @ -0x10 + .balign 4 + .literal_position + .global sha1_vector + .type sha1_vector, @function +sha1_vector: + addi sp, sp, -128 /* (FP)-0x80 */ # 0: 12c180 + s32i a3, sp, 92 /* arg1 -> [(local0)] */ # 3: 326117 + s32i a0, sp, 96 /* a0 -> [(local1)] */ # 6: 026118 + s32i a13, sp, 104 /* a13 -> [(local3)] */ # 9: d2611a + s32i a12, sp, 100 /* a12 -> [(local2)] */ # c: c26119 + s32i a14, sp, 108 /* a14 -> [(local4)] */ # f: e2611b + mov a12, a4 /* arg2 */ # 12: cd04 + mov a14, a2 /* arg0 */ # 14: ed02 + mov a13, a5 /* arg3 */ # 16: dd05 + mov a2, sp /* (FP)-0x80 */ # 18: 2d01 + call0 SHA1Init # 1a: 050000 + s32i a13, sp, 112 /* arg3 -> [(local5)] */ # 1d: d2611c + beqz a14, .Lbr002 # 20: 9c4e + l32i a13, sp, 92 /* [(local0)] */ # 22: d22117 + addx4 a14, a14, a13 # 25: d0eea0 +.Lbr001: mov a2, sp /* (FP)-0x80 */ # 28: 2d01 + l32i a3, a13, 0 # 2a: 380d + l32i a4, a12, 0 # 2c: 480c + call0 SHA1Update # 2e: 050000 + addi a12, a12, 4 # 31: 4bcc + addi a13, a13, 4 # 33: 4bdd + bne a13, a14, .Lbr001 # 35: e79def +.Lbr002: l32i a2, sp, 112 /* [(local5)] */ # 38: 22211c + mov a3, sp /* (FP)-0x80 */ # 3b: 3d01 + call0 SHA1Final # 3d: 050000 + movi a2, 0 /* 0x00000000 */ # 40: 0c02 + l32i a12, sp, 100 /* [(local2)] */ # 42: c22119 + l32i a13, sp, 104 /* [(local3)] */ # 45: d2211a + l32i a14, sp, 108 /* [(local4)] */ # 48: e2211b + movi a3, 128 /* 0x00000080 */ # 4b: 32a080 + l32i a0, sp, 96 /* [(local1)] */ # 4e: 022118 + add sp, sp, a3 /* (top of frame) */ # 51: 3a11 + ret /* 0x00000000 */ # 53: 0df0 + + .literal_position # 58: ff00ff00 + # 5c: 00ff00ff + # 60: 9979825a + # 64: a1ebd96e + # 68: a1ebd96e + # 6c: dcbc1b8f + # 70: dcbc1b8f + # 74: dcbc1b8f + # 78: dcbc1b8f + # 7c: dcbc1b8f + # 80: dcbc1b8f + # 84: dcbc1b8f + # 88: dcbc1b8f + # 8c: dcbc1b8f + # 90: d6c162ca + # 94: d6c162ca + # 98: d6c162ca + # 9c: d6c162ca + # a0: d6c162ca + # a4: d6c162ca + # a8: d6c162ca + # ac: d6c162ca + # b0: d6c162ca + # b4: d6c162ca + # b8: d6c162ca + # bc: d6c162ca + # c0: 00000000 + # c4: 00000000 + +# Function @ .irom0.text+0xc8 +# Local variables/stack: +# (local0): word @ -0x130 +# (local1): word @ -0x12c +# (local2): word @ -0x128 +# (local3): word @ -0x124 +# (local4): word @ -0x120 +# (local5): word @ -0x11c +# (local6): word @ -0x118 +# (local7): word @ -0x114 +# (local8): word @ -0x110 +# (local9): word @ -0x10c +# (local10): word @ -0x108 +# (local11): word @ -0x104 +# (local12): word @ -0x100 +# (local13): word @ -0xfc +# (local14): word @ -0xf8 +# (local15): word @ -0xf4 +# (local16): word @ -0xf0 +# (local17): word @ -0xec +# (local18): word @ -0xe8 +# (local19): word @ -0xe4 +# (local20): word @ -0xe0 +# (local21): word @ -0xdc +# (local22): word @ -0xd8 +# (local23): word @ -0xd4 +# (local24): word @ -0xd0 +# (local25): word @ -0xcc +# (local26): word @ -0xc8 +# (local27): word @ -0xc4 +# (local28): word @ -0xc0 +# (local29): word @ -0xbc +# (local30): word @ -0xb8 +# (local31): word @ -0xb4 +# (local32): word @ -0xb0 +# (local33): word @ -0xac +# (local34): word @ -0xa8 +# (local35): word @ -0xa4 +# (local36): word @ -0xa0 +# (local37): word @ -0x9c +# (local38): word @ -0x98 +# (local39): word @ -0x94 +# (local40): word @ -0x90 +# (local41): word @ -0x8c +# (local42): word @ -0x88 +# (local43): word @ -0x84 +# (local44): word @ -0x80 +# (local45): word @ -0x7c +# (local46): word @ -0x78 +# (local47): word @ -0x74 +# (local48): word @ -0x70 +# (local49): word @ -0x6c +# (local50): word @ -0x68 +# (local51): word @ -0x64 +# (local52): word @ -0x60 +# (local53): word @ -0x5c +# (local54): word @ -0x58 +# (local55): word @ -0x54 +# (local56): word @ -0x50 +# (local57): word @ -0x4c +# (local58): word @ -0x48 +# (local59): word @ -0x44 +# (local60): word @ -0x40 +# (local61): word @ -0x3c +# (local62): word @ -0x38 +# (local63): word @ -0x34 +# (local64): word @ -0x30 +# (local65): word @ -0x2c +# (local66): word @ -0x28 +# (local67): word @ -0x24 +# (local68): word @ -0x20 +# (local69): word @ -0x1c +# (local70): word @ -0x18 +# (local71): word @ -0x14 +# (local72): word[4] @ -0x10 + .balign 4 + .global SHA1Transform + .type SHA1Transform, @function +SHA1Transform: + movi a4, 304 /* 0x00000130 */ # c8: 42a130 + sub sp, sp, a4 /* (local0) */ # cb: 4011c0 + movi a4, 64 /* 0x00000040 */ # ce: 4c04 + s32i a12, sp, 116 /* a12 -> [(local29)] */ # d0: c2611d + s32i a0, sp, 112 /* a0 -> [(local28)] */ # d3: 02611c + mov a12, a2 /* arg0 */ # d6: cd02 + mov a2, sp /* (local0) */ # d8: 2d01 + call0 memcpy # da: 01f9ffc0 + # de: 0000 + s32i a12, sp, 132 /* arg0 -> [(local33)] */ # e0: c26121 + movi a6, 0x5a827999 # e3: 61dfff + l32i a2, a12, 4 /* [arg0+0x4] */ # e6: 281c + l32i a7, sp, 4 /* [(local1)] */ # e8: 7811 + s32i a15, sp, 128 /* a15 -> [(local32)] */ # ea: f26120 + l32i a5, a12, 0 /* [arg0] */ # ed: 580c + movi a4, 0xff00ff00 # ef: 41dbff + movi a8, 0x00ff00ff # f2: 81d9ff + ssai 24 # f5: 104840 + s32i a14, sp, 124 /* a14 -> [(local31)] */ # f8: e2611f + s32i a13, sp, 120 /* a13 -> [(local30)] */ # fb: d2611e + l32i a14, sp, 0 /* [(local0)] */ # fe: e801 + l32i a13, a12, 16 /* [arg0+0x10] */ # 100: d84c + src a0, a14, a14 # 102: e00e81 + and a0, a0, a8 # 105: 800010 + ssai 8 # 108: 004840 + src a14, a14, a14 # 10b: e0ee81 + and a14, a14, a4 # 10e: 40ee10 + ssai 27 # 111: 104b40 + src a15, a5, a5 # 114: 50f581 + or a14, a14, a0 # 117: 00ee20 + s32i a14, sp, 0x100 /* a14 -> [(local64)] */ # 11a: e26140 + l32i a0, a12, 12 /* [arg0+0xc] */ # 11d: 083c + ssai 24 # 11f: 104840 + src a9, a7, a7 # 122: 709781 + and a9, a9, a8 # 125: 809910 + ssai 8 # 128: 004840 + src a7, a7, a7 # 12b: 707781 + and a7, a7, a4 # 12e: 407710 + ssai 2 # 131: 004240 + src a11, a2, a2 # 134: 20b281 + or a7, a7, a9 # 137: 907720 + s32i a7, sp, 252 /* a7 -> [(local63)] */ # 13a: 72613f + l32i a9, a12, 8 /* [arg0+0x8] */ # 13d: 982c + ssai 27 # 13f: 104b40 + xor a3, a9, a0 # 142: 003930 + and a2, a2, a3 # 145: 302210 + xor a2, a0, a2 # 148: 202030 + add a14, a14, a2 # 14b: 2aee + xor a2, a11, a9 # 14d: 902b30 + add a14, a14, a15 # 150: faee + add a13, a13, a14 # 152: eadd + and a2, a5, a2 # 154: 202510 + l32i a14, sp, 8 /* [(local2)] */ # 157: e821 + xor a2, a9, a2 # 159: 202930 + add a13, a13, a6 # 15c: 6add + src a3, a13, a13 # 15e: d03d81 + add a2, a7, a2 # 161: 2a27 + ssai 24 # 163: 104840 + add a2, a2, a3 # 166: 3a22 + src a15, a14, a14 # 168: e0fe81 + l32i a3, sp, 12 /* [(local3)] */ # 16b: 3831 + and a15, a15, a8 # 16d: 80ff10 + add a0, a0, a2 # 170: 2a00 + ssai 8 # 172: 004840 + l32i a2, sp, 16 /* [(local4)] */ # 175: 2841 + add a0, a0, a6 # 177: 6a00 + src a14, a14, a14 # 179: e0ee81 + and a14, a14, a4 # 17c: 40ee10 + ssai 2 # 17f: 004240 + src a5, a5, a5 # 182: 505581 + or a14, a14, a15 # 185: f0ee20 + ssai 27 # 188: 104b40 + src a12, a0, a0 # 18b: 00c081 + s32i a14, sp, 248 /* a14 -> [(local62)] */ # 18e: e2613e + ssai 24 # 191: 104840 + src a10, a3, a3 # 194: 30a381 + ssai 8 # 197: 004840 + and a10, a10, a8 # 19a: 80aa10 + src a3, a3, a3 # 19d: 303381 + ssai 2 # 1a0: 004240 + and a3, a3, a4 # 1a3: 403310 + or a3, a3, a10 # 1a6: a03320 + s32i a3, sp, 244 /* a3 -> [(local61)] */ # 1a9: 32613d + xor a10, a11, a5 # 1ac: 50ab30 + xor a7, a7, a3 # 1af: 307730 + and a10, a13, a10 # 1b2: a0ad10 + src a13, a13, a13 # 1b5: d0dd81 + xor a10, a11, a10 # 1b8: a0ab30 + ssai 27 # 1bb: 104b40 + add a10, a14, a10 # 1be: aaae + add a10, a10, a12 # 1c0: caaa + add a9, a9, a10 # 1c2: aa99 + xor a12, a5, a13 # 1c4: d0c530 + and a12, a0, a12 # 1c7: c0c010 + add a9, a9, a6 # 1ca: 6a99 + src a15, a9, a9 # 1cc: 90f981 + xor a12, a5, a12 # 1cf: c0c530 + ssai 24 # 1d2: 104840 + add a12, a3, a12 # 1d5: cac3 + add a12, a12, a15 # 1d7: facc + src a10, a2, a2 # 1d9: 20a281 + and a10, a10, a8 # 1dc: 80aa10 + add a11, a11, a12 # 1df: cabb + ssai 8 # 1e1: 004840 + src a2, a2, a2 # 1e4: 202281 + add a11, a11, a6 # 1e7: 6abb + ssai 2 # 1e9: 004240 + and a2, a2, a4 # 1ec: 402210 + or a2, a2, a10 # 1ef: a02220 + src a0, a0, a0 # 1f2: 000081 + xor a15, a13, a0 # 1f5: 00fd30 + s32i a2, sp, 240 /* a2 -> [(local60)] */ # 1f8: 22613c + ssai 27 # 1fb: 104b40 + l32i a2, sp, 20 /* [(local5)] */ # 1fe: 2851 + src a12, a11, a11 # 200: b0cb81 + and a15, a9, a15 # 203: f0f910 + xor a15, a13, a15 # 206: f0fd30 + ssai 24 # 209: 104840 + src a10, a2, a2 # 20c: 20a281 + and a10, a10, a8 # 20f: 80aa10 + ssai 8 # 212: 004840 + src a2, a2, a2 # 215: 202281 + and a2, a2, a4 # 218: 402210 + ssai 2 # 21b: 004240 + src a9, a9, a9 # 21e: 909981 + or a2, a2, a10 # 221: a02220 + s32i a2, sp, 236 /* a2 -> [(local59)] */ # 224: 22613b + l32i a10, sp, 240 /* [(local60)] */ # 227: a2213c + ssai 27 # 22a: 104b40 + add a10, a10, a15 # 22d: faaa + add a10, a10, a12 # 22f: caaa + add a5, a5, a10 # 231: aa55 + l32i a12, sp, 24 /* [(local6)] */ # 233: c861 + xor a10, a0, a9 # 235: 90a030 + add a5, a5, a6 # 238: 6a55 + src a2, a5, a5 # 23a: 502581 + and a10, a11, a10 # 23d: a0ab10 + xor a10, a0, a10 # 240: a0a030 + ssai 24 # 243: 104840 + src a15, a12, a12 # 246: c0fc81 + and a15, a15, a8 # 249: 80ff10 + ssai 8 # 24c: 004840 + src a12, a12, a12 # 24f: c0cc81 + and a12, a12, a4 # 252: 40cc10 + ssai 2 # 255: 004240 + src a11, a11, a11 # 258: b0bb81 + or a12, a12, a15 # 25b: f0cc20 + ssai 27 # 25e: 104b40 + s32i a12, sp, 232 /* a12 -> [(local58)] */ # 261: c2613a + l32i a15, sp, 236 /* [(local59)] */ # 264: f2213b + xor a12, a11, a9 # 267: 90cb30 + add a15, a15, a10 # 26a: aaff + add a15, a15, a2 # 26c: 2aff + and a12, a5, a12 # 26e: c0c510 + xor a12, a9, a12 # 271: c0c930 + add a13, a13, a15 # 274: fadd + add a13, a13, a6 # 276: 6add + l32i a15, sp, 28 /* [(local7)] */ # 278: f871 + src a10, a13, a13 # 27a: d0ad81 + ssai 24 # 27d: 104840 + src a2, a15, a15 # 280: f02f81 + and a2, a2, a8 # 283: 802210 + ssai 8 # 286: 004840 + src a15, a15, a15 # 289: f0ff81 + and a15, a15, a4 # 28c: 40ff10 + ssai 2 # 28f: 004240 + src a5, a5, a5 # 292: 505581 + or a15, a15, a2 # 295: 20ff20 + ssai 27 # 298: 104b40 + s32i a15, sp, 228 /* a15 -> [(local57)] */ # 29b: f26139 + l32i a2, sp, 232 /* [(local58)] */ # 29e: 22213a + xor a15, a11, a5 # 2a1: 50fb30 + add a2, a2, a12 # 2a4: ca22 + add a2, a2, a10 # 2a6: aa22 + and a15, a13, a15 # 2a8: f0fd10 + xor a15, a11, a15 # 2ab: f0fb30 + add a0, a0, a2 # 2ae: 2a00 + add a0, a0, a6 # 2b0: 6a00 + l32i a2, sp, 32 /* [(local8)] */ # 2b2: 2881 + src a12, a0, a0 # 2b4: 00c081 + ssai 24 # 2b7: 104840 + src a10, a2, a2 # 2ba: 20a281 + and a10, a10, a8 # 2bd: 80aa10 + ssai 8 # 2c0: 004840 + src a2, a2, a2 # 2c3: 202281 + and a2, a2, a4 # 2c6: 402210 + ssai 2 # 2c9: 004240 + src a13, a13, a13 # 2cc: d0dd81 + or a2, a2, a10 # 2cf: a02220 + ssai 27 # 2d2: 104b40 + s32i a2, sp, 224 /* a2 -> [(local56)] */ # 2d5: 226138 + l32i a10, sp, 228 /* [(local57)] */ # 2d8: a22139 + xor a2, a5, a13 # 2db: d02530 + add a10, a10, a15 # 2de: faaa + add a10, a10, a12 # 2e0: caaa + and a2, a0, a2 # 2e2: 202010 + xor a2, a5, a2 # 2e5: 202530 + add a9, a9, a10 # 2e8: aa99 + add a9, a9, a6 # 2ea: 6a99 + l32i a10, sp, 36 /* [(local9)] */ # 2ec: a891 + src a15, a9, a9 # 2ee: 90f981 + ssai 24 # 2f1: 104840 + src a12, a10, a10 # 2f4: a0ca81 + and a12, a12, a8 # 2f7: 80cc10 + ssai 8 # 2fa: 004840 + src a10, a10, a10 # 2fd: a0aa81 + and a10, a10, a4 # 300: 40aa10 + ssai 2 # 303: 004240 + src a0, a0, a0 # 306: 000081 + or a10, a10, a12 # 309: c0aa20 + s32i a10, sp, 220 /* a10 -> [(local55)] */ # 30c: a26137 + l32i a12, sp, 224 /* [(local56)] */ # 30f: c22138 + ssai 27 # 312: 104b40 + add a12, a12, a2 # 315: 2acc + l32i a2, sp, 40 /* [(local10)] */ # 317: 28a1 + add a12, a12, a15 # 319: facc + add a11, a11, a12 # 31b: cabb + xor a15, a13, a0 # 31d: 00fd30 + and a15, a9, a15 # 320: f0f910 + add a11, a11, a6 # 323: 6abb + src a12, a11, a11 # 325: b0cb81 + xor a15, a13, a15 # 328: f0fd30 + ssai 24 # 32b: 104840 + src a10, a2, a2 # 32e: 20a281 + and a10, a10, a8 # 331: 80aa10 + ssai 8 # 334: 004840 + src a2, a2, a2 # 337: 202281 + and a2, a2, a4 # 33a: 402210 + ssai 2 # 33d: 004240 + src a9, a9, a9 # 340: 909981 + or a2, a2, a10 # 343: a02220 + s32i a2, sp, 216 /* a2 -> [(local54)] */ # 346: 226136 + l32i a10, sp, 220 /* [(local55)] */ # 349: a22137 + ssai 27 # 34c: 104b40 + add a10, a10, a15 # 34f: faaa + add a10, a10, a12 # 351: caaa + add a5, a5, a10 # 353: aa55 + l32i a12, sp, 44 /* [(local11)] */ # 355: c8b1 + xor a10, a0, a9 # 357: 90a030 + add a5, a5, a6 # 35a: 6a55 + src a2, a5, a5 # 35c: 502581 + and a10, a11, a10 # 35f: a0ab10 + xor a10, a0, a10 # 362: a0a030 + ssai 24 # 365: 104840 + src a15, a12, a12 # 368: c0fc81 + and a15, a15, a8 # 36b: 80ff10 + ssai 8 # 36e: 004840 + src a12, a12, a12 # 371: c0cc81 + and a12, a12, a4 # 374: 40cc10 + ssai 2 # 377: 004240 + src a11, a11, a11 # 37a: b0bb81 + or a12, a12, a15 # 37d: f0cc20 + ssai 27 # 380: 104b40 + s32i a12, sp, 212 /* a12 -> [(local53)] */ # 383: c26135 + l32i a15, sp, 216 /* [(local54)] */ # 386: f22136 + xor a12, a11, a9 # 389: 90cb30 + add a15, a15, a10 # 38c: aaff + add a15, a15, a2 # 38e: 2aff + and a12, a5, a12 # 390: c0c510 + xor a12, a9, a12 # 393: c0c930 + add a13, a13, a15 # 396: fadd + add a13, a13, a6 # 398: 6add + l32i a15, sp, 48 /* [(local12)] */ # 39a: f8c1 + src a10, a13, a13 # 39c: d0ad81 + ssai 24 # 39f: 104840 + src a2, a15, a15 # 3a2: f02f81 + and a2, a2, a8 # 3a5: 802210 + ssai 8 # 3a8: 004840 + src a15, a15, a15 # 3ab: f0ff81 + and a15, a15, a4 # 3ae: 40ff10 + ssai 2 # 3b1: 004240 + src a5, a5, a5 # 3b4: 505581 + or a15, a15, a2 # 3b7: 20ff20 + ssai 27 # 3ba: 104b40 + s32i a15, sp, 208 /* a15 -> [(local52)] */ # 3bd: f26134 + l32i a2, sp, 212 /* [(local53)] */ # 3c0: 222135 + xor a15, a11, a5 # 3c3: 50fb30 + add a2, a2, a12 # 3c6: ca22 + add a2, a2, a10 # 3c8: aa22 + and a15, a13, a15 # 3ca: f0fd10 + xor a15, a11, a15 # 3cd: f0fb30 + add a0, a0, a2 # 3d0: 2a00 + add a0, a0, a6 # 3d2: 6a00 + l32i a2, sp, 52 /* [(local13)] */ # 3d4: 28d1 + src a12, a0, a0 # 3d6: 00c081 + ssai 24 # 3d9: 104840 + src a10, a2, a2 # 3dc: 20a281 + and a10, a10, a8 # 3df: 80aa10 + ssai 8 # 3e2: 004840 + src a2, a2, a2 # 3e5: 202281 + and a2, a2, a4 # 3e8: 402210 + ssai 2 # 3eb: 004240 + src a13, a13, a13 # 3ee: d0dd81 + or a2, a2, a10 # 3f1: a02220 + ssai 27 # 3f4: 104b40 + s32i a2, sp, 204 /* a2 -> [(local51)] */ # 3f7: 226133 + l32i a10, sp, 208 /* [(local52)] */ # 3fa: a22134 + xor a2, a5, a13 # 3fd: d02530 + add a10, a10, a15 # 400: faaa + add a10, a10, a12 # 402: caaa + and a2, a0, a2 # 404: 202010 + xor a2, a5, a2 # 407: 202530 + add a9, a9, a10 # 40a: aa99 + add a9, a9, a6 # 40c: 6a99 + l32i a10, sp, 56 /* [(local14)] */ # 40e: a8e1 + src a15, a9, a9 # 410: 90f981 + ssai 24 # 413: 104840 + src a12, a10, a10 # 416: a0ca81 + and a12, a12, a8 # 419: 80cc10 + ssai 8 # 41c: 004840 + src a10, a10, a10 # 41f: a0aa81 + and a10, a10, a4 # 422: 40aa10 + ssai 2 # 425: 004240 + src a0, a0, a0 # 428: 000081 + or a10, a10, a12 # 42b: c0aa20 + s32i a10, sp, 200 /* a10 -> [(local50)] */ # 42e: a26132 + l32i a12, sp, 204 /* [(local51)] */ # 431: c22133 + ssai 27 # 434: 104b40 + add a12, a12, a2 # 437: 2acc + add a12, a12, a15 # 439: facc + add a11, a11, a12 # 43b: cabb + l32i a15, sp, 60 /* [(local15)] */ # 43d: f8f1 + xor a12, a13, a0 # 43f: 00cd30 + add a11, a11, a6 # 442: 6abb + src a10, a11, a11 # 444: b0ab81 + and a12, a9, a12 # 447: c0c910 + xor a12, a13, a12 # 44a: c0cd30 + ssai 24 # 44d: 104840 + src a2, a15, a15 # 450: f02f81 + and a2, a2, a8 # 453: 802210 + ssai 8 # 456: 004840 + l32i a8, sp, 200 /* [(local50)] */ # 459: 822132 + src a15, a15, a15 # 45c: f0ff81 + and a15, a15, a4 # 45f: 40ff10 + ssai 2 # 462: 004240 + add a8, a8, a12 # 465: ca88 + src a9, a9, a9 # 467: 909981 + or a15, a15, a2 # 46a: 20ff20 + ssai 27 # 46d: 104b40 + s32i a15, sp, 196 /* a15 -> [(local49)] */ # 470: f26131 + add a8, a8, a10 # 473: aa88 + l32i a12, sp, 0x100 /* [(local64)] */ # 475: c22140 + l32i a10, sp, 200 /* [(local50)] */ # 478: a22132 + xor a2, a0, a9 # 47b: 902030 + add a5, a5, a8 # 47e: 8a55 + xor a12, a12, a14 # 480: e0cc30 + add a5, a5, a6 # 483: 6a55 + l32i a8, sp, 220 /* [(local55)] */ # 485: 822137 + and a2, a11, a2 # 488: 202b10 + xor a2, a0, a2 # 48b: 202030 + add a15, a15, a2 # 48e: 2aff + xor a8, a8, a10 # 490: a08830 + src a2, a5, a5 # 493: 502581 + xor a7, a7, a8 # 496: 807730 + ssai 31 # 499: 104f40 + add a15, a15, a2 # 49c: 2aff + add a13, a13, a15 # 49e: fadd + l32i a2, sp, 204 /* [(local51)] */ # 4a0: 222133 + l32i a15, sp, 224 /* [(local56)] */ # 4a3: f22138 + add a13, a13, a6 # 4a6: 6add + xor a15, a15, a2 # 4a8: 20ff30 + xor a12, a12, a15 # 4ab: f0cc30 + l32i a15, sp, 216 /* [(local54)] */ # 4ae: f22136 + src a12, a12, a12 # 4b1: c0cc81 + s32i a12, sp, 192 /* a12 -> [(local48)] */ # 4b4: c26130 + ssai 2 # 4b7: 004240 + src a11, a11, a11 # 4ba: b0bb81 + xor a4, a11, a9 # 4bd: 904b30 + ssai 27 # 4c0: 104b40 + and a4, a5, a4 # 4c3: 404510 + xor a4, a9, a4 # 4c6: 404930 + add a2, a12, a4 # 4c9: 4a2c + src a4, a13, a13 # 4cb: d04d81 + add a2, a2, a4 # 4ce: 4a22 + ssai 31 # 4d0: 104f40 + l32i a4, sp, 212 /* [(local53)] */ # 4d3: 422135 + add a0, a0, a2 # 4d6: 2a00 + src a7, a7, a7 # 4d8: 707781 + s32i a7, sp, 188 /* a7 -> [(local47)] */ # 4db: 72612f + add a0, a0, a6 # 4de: 6a00 + ssai 2 # 4e0: 004240 + l32i a2, sp, 196 /* [(local49)] */ # 4e3: 222131 + src a5, a5, a5 # 4e6: 505581 + ssai 27 # 4e9: 104b40 + xor a15, a15, a2 # 4ec: 20ff30 + xor a12, a11, a5 # 4ef: 50cb30 + l32i a2, sp, 192 /* [(local48)] */ # 4f2: 222130 + and a12, a13, a12 # 4f5: c0cd10 + xor a12, a11, a12 # 4f8: c0cb30 + add a10, a7, a12 # 4fb: caa7 + xor a2, a2, a4 # 4fd: 402230 + src a12, a0, a0 # 500: 00c081 + ssai 31 # 503: 104f40 + add a10, a10, a12 # 506: caaa + add a9, a9, a10 # 508: aa99 + l32i a12, sp, 240 /* [(local60)] */ # 50a: c2213c + l32i a10, sp, 188 /* [(local47)] */ # 50d: a2212f + add a9, a9, a6 # 510: 6a99 + xor a14, a14, a12 # 512: c0ee30 + xor a14, a14, a15 # 515: f0ee30 + src a14, a14, a14 # 518: e0ee81 + s32i a14, sp, 184 /* a14 -> [(local46)] */ # 51b: e2612e + ssai 2 # 51e: 004240 + src a13, a13, a13 # 521: d0dd81 + xor a15, a5, a13 # 524: d0f530 + ssai 27 # 527: 104b40 + and a15, a0, a15 # 52a: f0f010 + xor a15, a5, a15 # 52d: f0f530 + add a14, a14, a15 # 530: faee + src a15, a9, a9 # 532: 90f981 + add a14, a14, a15 # 535: faee + ssai 31 # 537: 104f40 + l32i a15, sp, 208 /* [(local52)] */ # 53a: f22134 + add a11, a11, a14 # 53d: eabb + add a11, a11, a6 # 53f: 6abb + l32i a14, sp, 236 /* [(local59)] */ # 541: e2213b + xor a10, a10, a15 # 544: f0aa30 + xor a3, a3, a14 # 547: e03330 + xor a2, a2, a3 # 54a: 302230 + movi a3, 0x6ed9eba1 # 54d: 31c5fe + src a2, a2, a2 # 550: 202281 + s32i a2, sp, 180 /* a2 -> [(local45)] */ # 553: 22612d + ssai 2 # 556: 004240 + src a0, a0, a0 # 559: 000081 + xor a8, a13, a0 # 55c: 008d30 + ssai 27 # 55f: 104b40 + and a8, a9, a8 # 562: 808910 + xor a8, a13, a8 # 565: 808d30 + add a7, a2, a8 # 568: 8a72 + src a8, a11, a11 # 56a: b08b81 + add a7, a7, a8 # 56d: 8a77 + ssai 31 # 56f: 104f40 + l32i a8, sp, 200 /* [(local50)] */ # 572: 822132 + add a5, a5, a7 # 575: 7a55 + add a5, a5, a6 # 577: 6a55 + l32i a7, sp, 232 /* [(local58)] */ # 579: 72213a + l32i a6, sp, 180 /* [(local45)] */ # 57c: 62212d + xor a12, a12, a7 # 57f: 70cc30 + xor a10, a10, a12 # 582: c0aa30 + xor a6, a6, a8 # 585: 806630 + l32i a12, sp, 184 /* [(local46)] */ # 588: c2212e + l32i a8, sp, 224 /* [(local56)] */ # 58b: 822138 + src a10, a10, a10 # 58e: a0aa81 + s32i a10, sp, 176 /* a10 -> [(local44)] */ # 591: a2612c + ssai 2 # 594: 004240 + xor a7, a7, a8 # 597: 807730 + src a9, a9, a9 # 59a: 909981 + l32i a8, sp, 204 /* [(local51)] */ # 59d: 822133 + xor a6, a6, a7 # 5a0: 706630 + xor a2, a9, a11 # 5a3: b02930 + xor a2, a0, a2 # 5a6: 202030 + ssai 27 # 5a9: 104b40 + add a15, a10, a2 # 5ac: 2afa + src a2, a5, a5 # 5ae: 502581 + add a15, a15, a2 # 5b1: 2aff + add a13, a13, a15 # 5b3: fadd + l32i a15, sp, 204 /* [(local51)] */ # 5b5: f22133 + ssai 31 # 5b8: 104f40 + xor a12, a12, a15 # 5bb: f0cc30 + l32i a15, sp, 228 /* [(local57)] */ # 5be: f22139 + add a13, a13, a3 # 5c1: 3add + xor a14, a14, a15 # 5c3: f0ee30 + xor a12, a12, a14 # 5c6: e0cc30 + l32i a15, sp, 196 /* [(local49)] */ # 5c9: f22131 + l32i a14, sp, 176 /* [(local44)] */ # 5cc: e2212c + src a12, a12, a12 # 5cf: c0cc81 + s32i a12, sp, 172 /* a12 -> [(local43)] */ # 5d2: c2612b + ssai 2 # 5d5: 004240 + xor a14, a14, a15 # 5d8: f0ee30 + src a11, a11, a11 # 5db: b0bb81 + l32i a15, sp, 228 /* [(local57)] */ # 5de: f22139 + xor a4, a11, a5 # 5e1: 504b30 + ssai 27 # 5e4: 104b40 + xor a4, a9, a4 # 5e7: 404930 + add a2, a12, a4 # 5ea: 4a2c + src a4, a13, a13 # 5ec: d04d81 + add a2, a2, a4 # 5ef: 4a22 + ssai 31 # 5f1: 104f40 + l32i a4, sp, 172 /* [(local43)] */ # 5f4: 42212b + src a6, a6, a6 # 5f7: 606681 + add a0, a0, a2 # 5fa: 2a00 + add a0, a0, a3 # 5fc: 3a00 + s32i a6, sp, 168 /* a6 -> [(local42)] */ # 5fe: 62612a + ssai 2 # 601: 004240 + l32i a2, sp, 220 /* [(local55)] */ # 604: 222137 + src a5, a5, a5 # 607: 505581 + ssai 27 # 60a: 104b40 + xor a12, a5, a13 # 60d: d0c530 + xor a15, a15, a2 # 610: 20ff30 + xor a14, a14, a15 # 613: f0ee30 + xor a12, a11, a12 # 616: c0cb30 + l32i a2, sp, 192 /* [(local48)] */ # 619: 222130 + add a10, a6, a12 # 61c: caa6 + l32i a6, sp, 216 /* [(local54)] */ # 61e: 622136 + xor a2, a2, a4 # 621: 402230 + src a12, a0, a0 # 624: 00c081 + l32i a4, sp, 224 /* [(local56)] */ # 627: 422138 + ssai 31 # 62a: 104f40 + add a10, a10, a12 # 62d: caaa + add a9, a9, a10 # 62f: aa99 + src a14, a14, a14 # 631: e0ee81 + l32i a10, sp, 188 /* [(local47)] */ # 634: a2212f + add a9, a9, a3 # 637: 3a99 + ssai 2 # 639: 004240 + s32i a14, sp, 164 /* a14 -> [(local41)] */ # 63c: e26129 + xor a4, a4, a6 # 63f: 604430 + xor a2, a2, a4 # 642: 402230 + l32i a12, sp, 164 /* [(local41)] */ # 645: c22129 + src a13, a13, a13 # 648: d0dd81 + xor a14, a13, a0 # 64b: 00ed30 + ssai 27 # 64e: 104b40 + xor a14, a5, a14 # 651: e0e530 + add a12, a12, a14 # 654: eacc + src a14, a9, a9 # 656: 90e981 + add a12, a12, a14 # 659: eacc + ssai 31 # 65b: 104f40 + l32i a14, sp, 212 /* [(local53)] */ # 65e: e22135 + add a11, a11, a12 # 661: cabb + src a2, a2, a2 # 663: 202281 + s32i a2, sp, 160 /* a2 -> [(local40)] */ # 666: 226128 + add a11, a11, a3 # 669: 3abb + ssai 2 # 66b: 004240 + l32i a12, sp, 168 /* [(local42)] */ # 66e: c2212a + src a0, a0, a0 # 671: 000081 + ssai 27 # 674: 104b40 + xor a10, a10, a12 # 677: c0aa30 + xor a7, a0, a9 # 67a: 907030 + xor a7, a13, a7 # 67d: 707d30 + l32i a12, sp, 220 /* [(local55)] */ # 680: c22137 + add a6, a2, a7 # 683: 7a62 + src a7, a11, a11 # 685: b07b81 + xor a12, a12, a14 # 688: e0cc30 + ssai 31 # 68b: 104f40 + xor a10, a10, a12 # 68e: c0aa30 + add a6, a6, a7 # 691: 7a66 + l32i a12, sp, 184 /* [(local46)] */ # 693: c2212e + l32i a7, sp, 160 /* [(local40)] */ # 696: 722128 + add a5, a5, a6 # 699: 6a55 + add a5, a5, a3 # 69b: 3a55 + l32i a6, sp, 180 /* [(local45)] */ # 69d: 62212d + src a10, a10, a10 # 6a0: a0aa81 + s32i a10, sp, 156 /* a10 -> [(local39)] */ # 6a3: a26127 + ssai 2 # 6a6: 004240 + src a9, a9, a9 # 6a9: 909981 + xor a6, a6, a7 # 6ac: 706630 + ssai 27 # 6af: 104b40 + l32i a7, sp, 212 /* [(local53)] */ # 6b2: 722135 + xor a15, a9, a11 # 6b5: b0f930 + xor a15, a0, a15 # 6b8: f0f030 + xor a7, a7, a8 # 6bb: 807730 + add a14, a10, a15 # 6be: faea + l32i a8, sp, 188 /* [(local47)] */ # 6c0: 82212f + xor a6, a6, a7 # 6c3: 706630 + src a15, a5, a5 # 6c6: 50f581 + add a14, a14, a15 # 6c9: faee + ssai 31 # 6cb: 104f40 + add a13, a13, a14 # 6ce: eadd + l32i a14, sp, 164 /* [(local41)] */ # 6d0: e22129 + l32i a15, sp, 208 /* [(local52)] */ # 6d3: f22134 + xor a12, a12, a14 # 6d6: e0cc30 + l32i a14, sp, 216 /* [(local54)] */ # 6d9: e22136 + add a13, a13, a3 # 6dc: 3add + xor a14, a14, a15 # 6de: f0ee30 + xor a12, a12, a14 # 6e1: e0cc30 + l32i a15, sp, 156 /* [(local39)] */ # 6e4: f22127 + l32i a14, sp, 176 /* [(local44)] */ # 6e7: e2212c + src a12, a12, a12 # 6ea: c0cc81 + s32i a12, sp, 152 /* a12 -> [(local38)] */ # 6ed: c26126 + ssai 2 # 6f0: 004240 + xor a14, a14, a15 # 6f3: f0ee30 + src a11, a11, a11 # 6f6: b0bb81 + l32i a15, sp, 208 /* [(local52)] */ # 6f9: f22134 + xor a4, a11, a5 # 6fc: 504b30 + ssai 27 # 6ff: 104b40 + xor a4, a9, a4 # 702: 404930 + add a2, a12, a4 # 705: 4a2c + src a4, a13, a13 # 707: d04d81 + add a2, a2, a4 # 70a: 4a22 + ssai 31 # 70c: 104f40 + l32i a4, sp, 152 /* [(local38)] */ # 70f: 422126 + src a6, a6, a6 # 712: 606681 + add a0, a0, a2 # 715: 2a00 + add a0, a0, a3 # 717: 3a00 + s32i a6, sp, 148 /* a6 -> [(local37)] */ # 719: 626125 + ssai 2 # 71c: 004240 + l32i a2, sp, 200 /* [(local50)] */ # 71f: 222132 + src a5, a5, a5 # 722: 505581 + ssai 27 # 725: 104b40 + xor a12, a5, a13 # 728: d0c530 + xor a15, a15, a2 # 72b: 20ff30 + xor a14, a14, a15 # 72e: f0ee30 + xor a12, a11, a12 # 731: c0cb30 + l32i a2, sp, 172 /* [(local43)] */ # 734: 22212b + add a10, a6, a12 # 737: caa6 + l32i a6, sp, 196 /* [(local49)] */ # 739: 622131 + xor a2, a2, a4 # 73c: 402230 + src a12, a0, a0 # 73f: 00c081 + l32i a4, sp, 204 /* [(local51)] */ # 742: 422133 + ssai 31 # 745: 104f40 + add a10, a10, a12 # 748: caaa + add a9, a9, a10 # 74a: aa99 + src a14, a14, a14 # 74c: e0ee81 + l32i a10, sp, 192 /* [(local48)] */ # 74f: a22130 + add a9, a9, a3 # 752: 3a99 + ssai 2 # 754: 004240 + s32i a14, sp, 136 /* a14 -> [(local34)] */ # 757: e26122 + xor a4, a4, a6 # 75a: 604430 + xor a2, a2, a4 # 75d: 402230 + l32i a12, sp, 136 /* [(local34)] */ # 760: c22122 + src a13, a13, a13 # 763: d0dd81 + xor a14, a13, a0 # 766: 00ed30 + ssai 27 # 769: 104b40 + xor a14, a5, a14 # 76c: e0e530 + add a12, a12, a14 # 76f: eacc + src a14, a9, a9 # 771: 90e981 + add a12, a12, a14 # 774: eacc + ssai 31 # 776: 104f40 + l32i a14, sp, 148 /* [(local37)] */ # 779: e22125 + add a11, a11, a12 # 77c: cabb + src a2, a2, a2 # 77e: 202281 + s32i a2, sp, 140 /* a2 -> [(local35)] */ # 781: 226123 + add a11, a11, a3 # 784: 3abb + ssai 2 # 786: 004240 + l32i a12, sp, 168 /* [(local42)] */ # 789: c2212a + src a0, a0, a0 # 78c: 000081 + ssai 27 # 78f: 104b40 + xor a12, a12, a14 # 792: e0cc30 + xor a7, a0, a9 # 795: 907030 + xor a7, a13, a7 # 798: 707d30 + l32i a14, sp, 200 /* [(local50)] */ # 79b: e22132 + add a6, a2, a7 # 79e: 7a62 + src a7, a11, a11 # 7a0: b07b81 + xor a10, a10, a14 # 7a3: e0aa30 + ssai 31 # 7a6: 104f40 + add a6, a6, a7 # 7a9: 7a66 + xor a10, a10, a12 # 7ab: c0aa30 + l32i a7, sp, 160 /* [(local40)] */ # 7ae: 722128 + add a5, a5, a6 # 7b1: 6a55 + l32i a12, sp, 136 /* [(local34)] */ # 7b3: c22122 + l32i a6, sp, 192 /* [(local48)] */ # 7b6: 622130 + add a5, a5, a3 # 7b9: 3a55 + src a10, a10, a10 # 7bb: a0aa81 + s32i a10, sp, 144 /* a10 -> [(local36)] */ # 7be: a26124 + ssai 2 # 7c1: 004240 + src a9, a9, a9 # 7c4: 909981 + xor a15, a9, a11 # 7c7: b0f930 + ssai 27 # 7ca: 104b40 + xor a15, a0, a15 # 7cd: f0f030 + add a14, a10, a15 # 7d0: faea + l32i a10, sp, 164 /* [(local41)] */ # 7d2: a22129 + src a15, a5, a5 # 7d5: 50f581 + add a14, a14, a15 # 7d8: faee + ssai 31 # 7da: 104f40 + l32i a15, sp, 148 /* [(local37)] */ # 7dd: f22125 + xor a10, a10, a12 # 7e0: c0aa30 + add a13, a13, a14 # 7e3: eadd + l32i a12, sp, 196 /* [(local49)] */ # 7e5: c22131 + add a13, a13, a3 # 7e8: 3add + xor a8, a8, a12 # 7ea: c08830 + xor a8, a8, a10 # 7ed: a08830 + l32i a10, sp, 140 /* [(local35)] */ # 7f0: a22123 + src a8, a8, a8 # 7f3: 808881 + s32i a8, sp, 0x104 /* a8 -> [(local65)] */ # 7f6: 826141 + ssai 2 # 7f9: 004240 + xor a7, a7, a10 # 7fc: a07730 + src a11, a11, a11 # 7ff: b0bb81 + l32i a10, sp, 184 /* [(local46)] */ # 802: a2212e + xor a2, a11, a5 # 805: 502b30 + ssai 27 # 808: 104b40 + src a4, a13, a13 # 80b: d04d81 + xor a2, a9, a2 # 80e: 202930 + ssai 31 # 811: 104f40 + xor a6, a6, a10 # 814: a06630 + add a2, a8, a2 # 817: 2a28 + add a2, a2, a4 # 819: 4a22 + xor a6, a6, a7 # 81b: 706630 + l32i a4, sp, 188 /* [(local47)] */ # 81e: 42212f + l32i a7, sp, 156 /* [(local39)] */ # 821: 722127 + add a0, a0, a2 # 824: 2a00 + src a6, a6, a6 # 826: 606681 + s32i a6, sp, 76 /* a6 -> [(local19)] */ # 829: 626113 + xor a15, a6, a15 # 82c: f0f630 + l32i a2, sp, 184 /* [(local46)] */ # 82f: 22212e + ssai 2 # 832: 004240 + add a0, a0, a3 # 835: 3a00 + src a5, a5, a5 # 837: 505581 + ssai 27 # 83a: 104b40 + xor a10, a5, a13 # 83d: d0a530 + xor a10, a11, a10 # 840: a0ab30 + src a12, a0, a0 # 843: 00c081 + add a10, a6, a10 # 846: aaa6 + add a10, a10, a12 # 848: caaa + add a9, a9, a10 # 84a: aa99 + l32i a10, sp, 144 /* [(local36)] */ # 84c: a22124 + ssai 31 # 84f: 104f40 + xor a7, a7, a10 # 852: a07730 + l32i a10, sp, 180 /* [(local45)] */ # 855: a2212d + add a9, a9, a3 # 858: 3a99 + xor a4, a4, a10 # 85a: a04430 + xor a4, a4, a7 # 85d: 704430 + l32i a7, sp, 152 /* [(local38)] */ # 860: 722126 + src a4, a4, a4 # 863: 404481 + s32i a4, sp, 80 /* a4 -> [(local20)] */ # 866: 426114 + ssai 2 # 869: 004240 + xor a7, a7, a8 # 86c: 807730 + src a13, a13, a13 # 86f: d0dd81 + l32i a8, sp, 176 /* [(local44)] */ # 872: 82212c + xor a12, a13, a0 # 875: 00cd30 + ssai 27 # 878: 104b40 + src a14, a9, a9 # 87b: 90e981 + xor a12, a5, a12 # 87e: c0c530 + ssai 31 # 881: 104f40 + add a12, a4, a12 # 884: cac4 + xor a2, a2, a8 # 886: 802230 + xor a2, a2, a7 # 889: 702230 + add a12, a12, a14 # 88c: eacc + add a11, a11, a12 # 88e: cabb + src a2, a2, a2 # 890: 202281 + s32i a2, sp, 84 /* a2 -> [(local21)] */ # 893: 226115 + add a11, a11, a3 # 896: 3abb + l32i a12, sp, 140 /* [(local35)] */ # 898: c22123 + ssai 2 # 89b: 004240 + src a0, a0, a0 # 89e: 000081 + xor a12, a2, a12 # 8a1: c0c230 + xor a7, a0, a9 # 8a4: 907030 + ssai 27 # 8a7: 104b40 + src a8, a11, a11 # 8aa: b08b81 + xor a7, a13, a7 # 8ad: 707d30 + add a7, a2, a7 # 8b0: 7a72 + ssai 31 # 8b2: 104f40 + add a7, a7, a8 # 8b5: 8a77 + l32i a8, sp, 172 /* [(local43)] */ # 8b7: 82212b + add a5, a5, a7 # 8ba: 7a55 + add a5, a5, a3 # 8bc: 3a55 + xor a7, a10, a8 # 8be: 807a30 + l32i a8, sp, 168 /* [(local42)] */ # 8c1: 82212a + xor a15, a15, a7 # 8c4: 70ff30 + src a15, a15, a15 # 8c7: f0ff81 + s32i a15, sp, 92 /* a15 -> [(local23)] */ # 8ca: f26117 + ssai 2 # 8cd: 004240 + src a9, a9, a9 # 8d0: 909981 + xor a14, a9, a11 # 8d3: b0e930 + ssai 27 # 8d6: 104b40 + src a7, a5, a5 # 8d9: 507581 + xor a14, a0, a14 # 8dc: e0e030 + add a14, a15, a14 # 8df: eaef + ssai 31 # 8e1: 104f40 + add a14, a14, a7 # 8e4: 7aee + l32i a7, sp, 176 /* [(local44)] */ # 8e6: 72212c + add a13, a13, a14 # 8e9: eadd + add a13, a13, a3 # 8eb: 3add + l32i a14, sp, 136 /* [(local34)] */ # 8ed: e22122 + xor a7, a7, a8 # 8f0: 807730 + xor a14, a4, a14 # 8f3: e0e430 + xor a14, a14, a7 # 8f6: 70ee30 + src a14, a14, a14 # 8f9: e0ee81 + s32i a14, sp, 100 /* a14 -> [(local25)] */ # 8fc: e26119 + ssai 2 # 8ff: 004240 + src a11, a11, a11 # 902: b0bb81 + xor a7, a11, a5 # 905: 507b30 + ssai 27 # 908: 104b40 + src a8, a13, a13 # 90b: d08d81 + xor a7, a9, a7 # 90e: 707930 + ssai 31 # 911: 104f40 + add a7, a14, a7 # 914: 7a7e + add a7, a7, a8 # 916: 8a77 + add a0, a0, a7 # 918: 7a00 + l32i a8, sp, 164 /* [(local41)] */ # 91a: 822129 + l32i a7, sp, 172 /* [(local43)] */ # 91d: 72212b + add a0, a0, a3 # 920: 3a00 + xor a7, a7, a8 # 922: 807730 + l32i a8, sp, 160 /* [(local40)] */ # 925: 822128 + xor a12, a12, a7 # 928: 70cc30 + src a12, a12, a12 # 92b: c0cc81 + s32i a12, sp, 104 /* a12 -> [(local26)] */ # 92e: c2611a + ssai 2 # 931: 004240 + src a5, a5, a5 # 934: 505581 + xor a10, a5, a13 # 937: d0a530 + ssai 27 # 93a: 104b40 + src a7, a0, a0 # 93d: 007081 + xor a10, a11, a10 # 940: a0ab30 + add a10, a12, a10 # 943: aaac + ssai 31 # 945: 104f40 + add a10, a10, a7 # 948: 7aaa + l32i a7, sp, 168 /* [(local42)] */ # 94a: 72212a + add a9, a9, a10 # 94d: aa99 + add a9, a9, a3 # 94f: 3a99 + l32i a10, sp, 144 /* [(local36)] */ # 951: a22124 + xor a7, a7, a8 # 954: 807730 + l32i a8, sp, 0x104 /* [(local65)] */ # 957: 822141 + xor a10, a15, a10 # 95a: a0af30 + xor a10, a10, a7 # 95d: 70aa30 + xor a8, a14, a8 # 960: 808e30 + src a10, a10, a10 # 963: a0aa81 + s32i a10, sp, 108 /* a10 -> [(local27)] */ # 966: a2611b + ssai 2 # 969: 004240 + src a13, a13, a13 # 96c: d0dd81 + xor a3, a13, a0 # 96f: 003d30 + ssai 27 # 972: 104b40 + src a7, a9, a9 # 975: 907981 + xor a3, a5, a3 # 978: 303530 + add a3, a10, a3 # 97b: 3a3a + add a3, a3, a7 # 97d: 7a33 + add a11, a11, a3 # 97f: 3abb + l32i a7, sp, 156 /* [(local39)] */ # 981: 722127 + l32i a3, sp, 164 /* [(local41)] */ # 984: 322129 + ssai 31 # 987: 104f40 + xor a3, a3, a7 # 98a: 703330 + movi a7, 0x6ed9eba1 # 98d: 71b6fd + xor a8, a8, a3 # 990: 308830 + src a8, a8, a8 # 993: 808881 + add a11, a11, a7 # 996: 7abb + s32i a8, sp, 0x108 /* a8 -> [(local66)] */ # 998: 826142 + ssai 2 # 99b: 004240 + src a0, a0, a0 # 99e: 000081 + xor a3, a0, a9 # 9a1: 903030 + xor a3, a13, a3 # 9a4: 303d30 + ssai 27 # 9a7: 104b40 + add a8, a8, a3 # 9aa: 3a88 + src a3, a11, a11 # 9ac: b03b81 + ssai 31 # 9af: 104f40 + add a8, a8, a3 # 9b2: 3a88 + add a5, a5, a8 # 9b4: 8a55 + add a5, a5, a7 # 9b6: 7a55 + l32i a8, sp, 152 /* [(local38)] */ # 9b8: 822126 + l32i a7, sp, 160 /* [(local40)] */ # 9bb: 722128 + xor a3, a6, a12 # 9be: c03630 + xor a7, a7, a8 # 9c1: 807730 + xor a3, a3, a7 # 9c4: 703330 + src a3, a3, a3 # 9c7: 303381 + ssai 2 # 9ca: 004240 + s32i a3, sp, 0x114 /* a3 -> [(local69)] */ # 9cd: 326145 + src a9, a9, a9 # 9d0: 909981 + ssai 27 # 9d3: 104b40 + and a8, a9, a11 # 9d6: b08910 + or a7, a9, a11 # 9d9: b07920 + and a7, a0, a7 # 9dc: 707010 + or a7, a7, a8 # 9df: 807720 + add a3, a3, a7 # 9e2: 7a33 + l32i a8, sp, 148 /* [(local37)] */ # 9e4: 822125 + src a7, a5, a5 # 9e7: 507581 + ssai 31 # 9ea: 104f40 + add a3, a3, a7 # 9ed: 7a33 + add a13, a13, a3 # 9ef: 3add + l32i a7, sp, 156 /* [(local39)] */ # 9f1: 722127 + xor a3, a4, a10 # 9f4: a03430 + xor a7, a7, a8 # 9f7: 807730 + xor a3, a3, a7 # 9fa: 703330 + src a3, a3, a3 # 9fd: 303381 + ssai 2 # a00: 004240 + s32i a3, sp, 0x10c /* a3 -> [(local67)] */ # a03: 326143 + l32i a3, sp, 0x10c /* [(local67)] */ # a06: 322143 + src a11, a11, a11 # a09: b0bb81 + s32i a11, sp, 0x110 /* a11 -> [(local68)] */ # a0c: b26144 + ssai 27 # a0f: 104b40 + and a7, a11, a5 # a12: 507b10 + or a8, a11, a5 # a15: 508b20 + and a8, a9, a8 # a18: 808910 + or a7, a7, a8 # a1b: 807720 + add a3, a3, a7 # a1e: 7a33 + l32i a8, sp, 0x108 /* [(local66)] */ # a20: 822142 + movi a7, 0x8f1bbcdc # a23: 7192fd + xor a8, a2, a8 # a26: 808230 + add a13, a13, a7 # a29: 7add + src a7, a13, a13 # a2b: d07d81 + add a3, a3, a7 # a2e: 7a33 + add a0, a0, a3 # a30: 3a00 + l32i a7, sp, 136 /* [(local34)] */ # a32: 722122 + l32i a3, sp, 152 /* [(local38)] */ # a35: 322126 + ssai 31 # a38: 104f40 + xor a3, a3, a7 # a3b: 703330 + xor a8, a8, a3 # a3e: 308830 + l32i a7, sp, 0x114 /* [(local69)] */ # a41: 722145 + movi a3, 0x8f1bbcdc # a44: 318bfd + src a8, a8, a8 # a47: 808881 + xor a7, a15, a7 # a4a: 707f30 + ssai 2 # a4d: 004240 + add a0, a0, a3 # a50: 3a00 + src a5, a5, a5 # a52: 505581 + s32i a5, sp, 88 /* a5 -> [(local22)] */ # a55: 526116 + s32i a0, sp, 72 /* a0 -> [(local18)] */ # a58: 026112 + or a3, a5, a13 # a5b: d03520 + ssai 27 # a5e: 104b40 + and a11, a11, a3 # a61: 30bb10 + and a3, a5, a13 # a64: d03510 + or a11, a11, a3 # a67: 30bb20 + src a3, a0, a0 # a6a: 003081 + add a11, a8, a11 # a6d: bab8 + add a11, a11, a3 # a6f: 3abb + add a9, a9, a11 # a71: ba99 + l32i a3, sp, 140 /* [(local35)] */ # a73: 322123 + l32i a11, sp, 148 /* [(local37)] */ # a76: b22125 + ssai 31 # a79: 104f40 + xor a11, a11, a3 # a7c: 30bb30 + xor a7, a7, a11 # a7f: b07730 + movi a3, 0x8f1bbcdc # a82: 317cfd + src a7, a7, a7 # a85: 707781 + ssai 2 # a88: 004240 + add a9, a9, a3 # a8b: 3a99 + s32i a9, sp, 68 /* a9 -> [(local17)] */ # a8d: 926111 + src a13, a13, a13 # a90: d0dd81 + s32i a13, sp, 96 /* a13 -> [(local24)] */ # a93: d26118 + and a11, a13, a0 # a96: 00bd10 + ssai 27 # a99: 104b40 + src a9, a9, a9 # a9c: 909981 + or a13, a13, a0 # a9f: 00dd20 + ssai 31 # aa2: 104f40 + l32i a0, sp, 0x110 /* [(local68)] */ # aa5: 022144 + and a5, a5, a13 # aa8: d05510 + or a5, a5, a11 # aab: b05520 + l32i a13, sp, 120 /* [(local30)] */ # aae: d2211e + l32i a11, sp, 0x100 /* [(local64)] */ # ab1: b22140 + add a5, a7, a5 # ab4: 5a57 + add a5, a5, a9 # ab6: 9a55 + s32i a11, sp, 0 /* [(local64)] -> [(local0)] */ # ab8: b901 + l32i a9, sp, 0x10c /* [(local67)] */ # aba: 922143 + add a0, a0, a5 # abd: 5a00 + l32i a11, sp, 244 /* [(local61)] */ # abf: b2213d + s32i a11, sp, 12 /* [(local61)] -> [(local3)] */ # ac2: b931 + add a0, a0, a3 # ac4: 3a00 + l32i a5, sp, 252 /* [(local63)] */ # ac6: 52213f + l32i a3, sp, 140 /* [(local35)] */ # ac9: 322123 + s32i a0, sp, 64 /* a0 -> [(local16)] */ # acc: 026110 + s32i a5, sp, 4 /* [(local63)] -> [(local1)] */ # acf: 5911 + l32i a11, sp, 232 /* [(local58)] */ # ad1: b2213a + l32i a5, sp, 240 /* [(local60)] */ # ad4: 52213c + s32i a11, sp, 24 /* [(local58)] -> [(local6)] */ # ad7: b961 + l32i a0, sp, 248 /* [(local62)] */ # ad9: 02213e + l32i a11, sp, 220 /* [(local55)] */ # adc: b22137 + s32i a0, sp, 8 /* [(local62)] -> [(local2)] */ # adf: 0921 + s32i a10, sp, 24 /* a10 -> [(local6)] */ # ae1: a961 + s32i a5, sp, 16 /* [(local60)] -> [(local4)] */ # ae3: 5941 + l32i a10, sp, 0x114 /* [(local69)] */ # ae5: a22145 + l32i a5, sp, 228 /* [(local57)] */ # ae8: 522139 + l32i a0, sp, 236 /* [(local59)] */ # aeb: 02213b + s32i a11, sp, 36 /* [(local55)] -> [(local9)] */ # aee: b991 + s32i a9, sp, 36 /* [(local67)] -> [(local9)] */ # af0: 9991 + s32i a0, sp, 20 /* [(local59)] -> [(local5)] */ # af2: 0951 + s32i a5, sp, 28 /* [(local57)] -> [(local7)] */ # af4: 5971 + l32i a11, sp, 208 /* [(local52)] */ # af6: b22134 + s32i a11, sp, 48 /* [(local52)] -> [(local12)] */ # af9: b9c1 + l32i a5, sp, 216 /* [(local54)] */ # afb: 522136 + l32i a0, sp, 224 /* [(local56)] */ # afe: 022138 + s32i a0, sp, 32 /* [(local56)] -> [(local8)] */ # b01: 0981 + s32i a5, sp, 40 /* [(local54)] -> [(local10)] */ # b03: 59a1 + l32i a11, sp, 196 /* [(local49)] */ # b05: b22131 + l32i a5, sp, 204 /* [(local51)] */ # b08: 522133 + s32i a11, sp, 60 /* [(local49)] -> [(local15)] */ # b0b: b9f1 + l32i a0, sp, 212 /* [(local53)] */ # b0d: 022135 + l32i a11, sp, 184 /* [(local46)] */ # b10: b2212e + s32i a0, sp, 44 /* [(local53)] -> [(local11)] */ # b13: 09b1 + s32i a5, sp, 52 /* [(local51)] -> [(local13)] */ # b15: 59d1 + s32i a3, sp, 52 /* [(local35)] -> [(local13)] */ # b17: 39d1 + l32i a5, sp, 192 /* [(local48)] */ # b19: 522130 + l32i a0, sp, 200 /* [(local50)] */ # b1c: 022132 + s32i a11, sp, 8 /* [(local46)] -> [(local2)] */ # b1f: b921 + s32i a2, sp, 8 /* a2 -> [(local2)] */ # b21: 2921 + l32i a11, sp, 172 /* [(local43)] */ # b23: b2212b + s32i a0, sp, 56 /* [(local50)] -> [(local14)] */ # b26: 09e1 + s32i a5, sp, 0 /* [(local48)] -> [(local0)] */ # b28: 5901 + l32i a0, sp, 188 /* [(local47)] */ # b2a: 02212f + l32i a5, sp, 180 /* [(local45)] */ # b2d: 52212d + s32i a11, sp, 20 /* [(local43)] -> [(local5)] */ # b30: b951 + s32i a6, sp, 0 /* a6 -> [(local0)] */ # b32: 6901 + l32i a2, sp, 144 /* [(local36)] */ # b34: 222124 + s32i a2, sp, 56 /* [(local36)] -> [(local14)] */ # b37: 29e1 + xor a6, a14, a9 # b39: 906e30 + l32i a11, sp, 160 /* [(local40)] */ # b3c: b22128 + s32i a5, sp, 12 /* [(local45)] -> [(local3)] */ # b3f: 5931 + s32i a12, sp, 20 /* a12 -> [(local5)] */ # b41: c951 + s32i a0, sp, 4 /* [(local47)] -> [(local1)] */ # b43: 0911 + s32i a4, sp, 4 /* a4 -> [(local1)] */ # b45: 4911 + l32i a12, sp, 132 /* [(local33)] */ # b47: c22121 + l32i a0, sp, 176 /* [(local44)] */ # b4a: 02212c + s32i a15, sp, 12 /* a15 -> [(local3)] */ # b4d: f931 + s32i a11, sp, 32 /* [(local40)] -> [(local8)] */ # b4f: b981 + s32i a10, sp, 32 /* [(local69)] -> [(local8)] */ # b51: a981 + l32i a15, sp, 128 /* [(local32)] */ # b53: f22120 + s32i a0, sp, 16 /* [(local44)] -> [(local4)] */ # b56: 0941 + l32i a11, sp, 148 /* [(local37)] */ # b58: b22125 + l32i a0, sp, 164 /* [(local41)] */ # b5b: 022129 + s32i a14, sp, 16 /* a14 -> [(local4)] */ # b5e: e941 + s32i a11, sp, 44 /* [(local37)] -> [(local11)] */ # b60: b9b1 + s32i a7, sp, 44 /* a7 -> [(local11)] */ # b62: 79b1 + l32i a14, sp, 124 /* [(local31)] */ # b64: e2211f + s32i a0, sp, 28 /* [(local41)] -> [(local7)] */ # b67: 0971 + l32i a11, sp, 136 /* [(local34)] */ # b69: b22122 + s32i a11, sp, 48 /* [(local34)] -> [(local12)] */ # b6c: b9c1 + l32i a0, sp, 152 /* [(local38)] */ # b6e: 022126 + xor a11, a11, a2 # b71: 20bb30 + s32i a0, sp, 40 /* [(local38)] -> [(local10)] */ # b74: 09a1 + s32i a8, sp, 40 /* a8 -> [(local10)] */ # b76: 89a1 + l32i a0, sp, 0x104 /* [(local65)] */ # b78: 022141 + xor a6, a6, a11 # b7b: b06630 + src a6, a6, a6 # b7e: 606681 + s32i a0, sp, 60 /* [(local65)] -> [(local15)] */ # b81: 09f1 + l32i a11, sp, 0x108 /* [(local66)] */ # b83: b22142 + s32i a11, sp, 28 /* [(local66)] -> [(local7)] */ # b86: b971 + l32i a4, sp, 88 /* [(local22)] */ # b88: 422116 + s32i a12, sp, 132 /* [(local33)] -> [(local33)] */ # b8b: c26121 + xor a3, a3, a0 # b8e: 003330 + s32i a8, sp, 0x120 /* a8 -> [(local72)] */ # b91: 826148 + ssai 2 # b94: 004240 + s32i a15, sp, 128 /* [(local32)] -> [(local32)] */ # b97: f26120 + s32i a7, sp, 0x11c /* a7 -> [(local71)] */ # b9a: 726147 + s32i a13, sp, 120 /* [(local30)] -> [(local30)] */ # b9d: d2611e + s32i a14, sp, 124 /* [(local31)] -> [(local31)] */ # ba0: e2611f + s32i a6, sp, 0x118 /* a6 -> [(local70)] */ # ba3: 626146 + l32i a5, sp, 0x118 /* [(local70)] */ # ba6: 522146 + l32i a14, sp, 64 /* [(local16)] */ # ba9: e22110 + l32i a13, sp, 104 /* [(local26)] */ # bac: d2211a + l32i a7, sp, 72 /* [(local18)] */ # baf: 722112 + xor a15, a13, a8 # bb2: 80fd30 + src a7, a7, a7 # bb5: 707781 + l32i a8, sp, 96 /* [(local24)] */ # bb8: 822118 + xor a15, a15, a3 # bbb: 30ff30 + ssai 27 # bbe: 104b40 + src a6, a14, a14 # bc1: e06e81 + l32i a3, sp, 68 /* [(local17)] */ # bc4: 322111 + ssai 31 # bc7: 104f40 + src a15, a15, a15 # bca: f0ff81 + or a12, a7, a3 # bcd: 30c720 + and a12, a8, a12 # bd0: c0c810 + s32i a15, sp, 204 /* a15 -> [(local51)] */ # bd3: f26133 + ssai 2 # bd6: 004240 + and a15, a7, a3 # bd9: 30f710 + src a3, a3, a3 # bdc: 303381 + or a12, a12, a15 # bdf: f0cc20 + ssai 27 # be2: 104b40 + add a5, a5, a12 # be5: ca55 + s32i a3, sp, 180 /* a3 -> [(local45)] */ # be7: 32612d + l32i a12, sp, 204 /* [(local51)] */ # bea: c22133 + add a5, a5, a6 # bed: 6a55 + or a15, a3, a14 # bef: e0f320 + l32i a6, sp, 108 /* [(local27)] */ # bf2: 62211b + and a3, a3, a14 # bf5: e03310 + add a4, a4, a5 # bf8: 5a44 + and a15, a7, a15 # bfa: f0f710 + movi a5, 0x8f1bbcdc # bfd: 511efd + or a15, a15, a3 # c00: 30ff20 + l32i a3, sp, 0x11c /* [(local71)] */ # c03: 322147 + add a12, a12, a15 # c06: facc + add a4, a4, a5 # c08: 5a44 + src a15, a4, a4 # c0a: 40f481 + xor a3, a6, a3 # c0d: 303630 + ssai 31 # c10: 104f40 + add a12, a12, a15 # c13: facc + add a8, a8, a12 # c15: ca88 + l32i a15, sp, 76 /* [(local19)] */ # c17: f22113 + movi a12, 0x8f1bbcdc # c1a: c118fd + xor a2, a15, a2 # c1d: 202f30 + add a8, a8, a12 # c20: ca88 + xor a2, a2, a3 # c22: 302230 + src a2, a2, a2 # c25: 202281 + l32i a3, sp, 180 /* [(local45)] */ # c28: 32212d + ssai 2 # c2b: 004240 + s32i a2, sp, 200 /* a2 -> [(local50)] */ # c2e: 226132 + l32i a12, sp, 200 /* [(local50)] */ # c31: c22132 + src a2, a14, a14 # c34: e02e81 + and a14, a2, a4 # c37: 40e210 + or a5, a2, a4 # c3a: 405220 + and a3, a3, a5 # c3d: 503310 + ssai 27 # c40: 104b40 + or a14, a14, a3 # c43: 30ee20 + add a12, a12, a14 # c46: eacc + src a14, a8, a8 # c48: 80e881 + ssai 31 # c4b: 104f40 + add a12, a12, a14 # c4e: eacc + add a7, a7, a12 # c50: ca77 + l32i a14, sp, 0x118 /* [(local70)] */ # c52: e22146 + l32i a12, sp, 80 /* [(local20)] */ # c55: c22114 + xor a14, a11, a14 # c58: e0eb30 + xor a5, a12, a0 # c5b: 005c30 + xor a5, a5, a14 # c5e: e05530 + movi a14, 0x8f1bbcdc # c61: e107fd + src a5, a5, a5 # c64: 505581 + s32i a5, sp, 196 /* a5 -> [(local49)] */ # c67: 526131 + ssai 2 # c6a: 004240 + src a4, a4, a4 # c6d: 404481 + add a7, a7, a14 # c70: ea77 + ssai 27 # c72: 104b40 + and a3, a4, a8 # c75: 803410 + or a0, a4, a8 # c78: 800420 + and a0, a2, a0 # c7b: 000210 + or a0, a0, a3 # c7e: 300020 + add a14, a5, a0 # c81: 0ae5 + movi a3, 0x8f1bbcdc # c83: 3100fd + l32i a5, sp, 180 /* [(local45)] */ # c86: 52212d + src a0, a7, a7 # c89: 700781 + add a14, a14, a0 # c8c: 0aee + ssai 31 # c8e: 104f40 + l32i a0, sp, 204 /* [(local51)] */ # c91: 022133 + add a5, a5, a14 # c94: ea55 + add a5, a5, a3 # c96: 3a55 + l32i a14, sp, 84 /* [(local21)] */ # c98: e22115 + xor a0, a10, a0 # c9b: 000a30 + xor a15, a15, a14 # c9e: e0ff30 + xor a15, a15, a0 # ca1: 00ff30 + src a15, a15, a15 # ca4: f0ff81 + s32i a15, sp, 192 /* a15 -> [(local48)] */ # ca7: f26130 + ssai 2 # caa: 004240 + src a8, a8, a8 # cad: 808881 + or a0, a8, a7 # cb0: 700820 + and a15, a8, a7 # cb3: 70f810 + and a0, a4, a0 # cb6: 000410 + or a0, a0, a15 # cb9: f00020 + l32i a15, sp, 192 /* [(local48)] */ # cbc: f22130 + ssai 27 # cbf: 104b40 + add a15, a15, a0 # cc2: 0aff + src a0, a5, a5 # cc4: 500581 + add a15, a15, a0 # cc7: 0aff + ssai 31 # cc9: 104f40 + l32i a0, sp, 200 /* [(local50)] */ # ccc: 022132 + add a2, a2, a15 # ccf: fa22 + add a2, a2, a3 # cd1: 3a22 + l32i a15, sp, 92 /* [(local23)] */ # cd3: f22117 + xor a0, a9, a0 # cd6: 000930 + xor a12, a12, a15 # cd9: f0cc30 + xor a15, a15, a13 # cdc: d0ff30 + xor a12, a12, a0 # cdf: 00cc30 + src a12, a12, a12 # ce2: c0cc81 + xor a13, a13, a11 # ce5: b0dd30 + ssai 2 # ce8: 004240 + s32i a12, sp, 188 /* a12 -> [(local47)] */ # ceb: c2612f + src a7, a7, a7 # cee: 707781 + ssai 27 # cf1: 104b40 + and a3, a7, a5 # cf4: 503710 + or a0, a7, a5 # cf7: 500720 + and a0, a8, a0 # cfa: 000810 + or a0, a0, a3 # cfd: 300020 + add a12, a12, a0 # d00: 0acc + l32i a3, sp, 196 /* [(local49)] */ # d02: 322131 + src a0, a2, a2 # d05: 200281 + ssai 31 # d08: 104f40 + add a12, a12, a0 # d0b: 0acc + add a4, a4, a12 # d0d: ca44 + l32i a0, sp, 0x120 /* [(local72)] */ # d0f: 022148 + l32i a12, sp, 100 /* [(local25)] */ # d12: c22119 + xor a0, a0, a3 # d15: 300030 + xor a14, a14, a12 # d18: c0ee30 + l32i a3, sp, 192 /* [(local48)] */ # d1b: 322130 + xor a12, a12, a6 # d1e: 60cc30 + xor a14, a14, a0 # d21: 00ee30 + src a14, a14, a14 # d24: e0ee81 + l32i a0, sp, 0x11c /* [(local71)] */ # d27: 022147 + ssai 2 # d2a: 004240 + xor a3, a3, a0 # d2d: 003330 + src a5, a5, a5 # d30: 505581 + xor a3, a3, a15 # d33: f03330 + movi a15, 0x8f1bbcdc # d36: f1d4fc + ssai 27 # d39: 104b40 + add a4, a4, a15 # d3c: fa44 + src a0, a4, a4 # d3e: 400481 + or a15, a5, a2 # d41: 20f520 + and a15, a7, a15 # d44: f0f710 + ssai 31 # d47: 104f40 + src a3, a3, a3 # d4a: 303381 + s32i a3, sp, 208 /* a3 -> [(local52)] */ # d4d: 326134 + ssai 2 # d50: 004240 + and a3, a5, a2 # d53: 203510 + src a2, a2, a2 # d56: 202281 + or a15, a15, a3 # d59: 30ff20 + add a15, a14, a15 # d5c: fafe + l32i a3, sp, 188 /* [(local47)] */ # d5e: 32212f + add a15, a15, a0 # d61: 0aff + add a8, a8, a15 # d63: fa88 + l32i a15, sp, 0x118 /* [(local70)] */ # d65: f22146 + ssai 27 # d68: 104b40 + xor a3, a3, a15 # d6b: f03330 + xor a3, a3, a12 # d6e: c03330 + or a15, a2, a4 # d71: 40f220 + movi a12, 0x8f1bbcdc # d74: c1c6fc + and a15, a5, a15 # d77: f0f510 + add a8, a8, a12 # d7a: ca88 + src a0, a8, a8 # d7c: 800881 + ssai 31 # d7f: 104f40 + src a3, a3, a3 # d82: 303381 + s32i a3, sp, 212 /* a3 -> [(local53)] */ # d85: 326135 + ssai 2 # d88: 004240 + and a3, a2, a4 # d8b: 403210 + or a3, a3, a15 # d8e: f03320 + src a4, a4, a4 # d91: 404481 + l32i a15, sp, 208 /* [(local52)] */ # d94: f22134 + ssai 27 # d97: 104b40 + add a15, a15, a3 # d9a: 3aff + l32i a3, sp, 204 /* [(local51)] */ # d9c: 322133 + add a15, a15, a0 # d9f: 0aff + add a7, a7, a15 # da1: fa77 + or a0, a4, a8 # da3: 800420 + and a0, a2, a0 # da6: 000210 + add a7, a7, a12 # da9: ca77 + xor a3, a14, a3 # dab: 303e30 + xor a3, a3, a13 # dae: d03330 + src a15, a7, a7 # db1: 70f781 + l32i a13, sp, 212 /* [(local53)] */ # db4: d22135 + ssai 31 # db7: 104f40 + src a3, a3, a3 # dba: 303381 + s32i a3, sp, 220 /* a3 -> [(local55)] */ # dbd: 326137 + ssai 2 # dc0: 004240 + and a3, a4, a8 # dc3: 803410 + src a8, a8, a8 # dc6: 808881 + or a0, a0, a3 # dc9: 300020 + ssai 27 # dcc: 104b40 + l32i a3, sp, 200 /* [(local50)] */ # dcf: 322132 + add a13, a13, a0 # dd2: 0add + add a13, a13, a15 # dd4: fadd + xor a0, a6, a10 # dd6: a00630 + l32i a15, sp, 208 /* [(local52)] */ # dd9: f22134 + add a5, a5, a13 # ddc: da55 + add a5, a5, a12 # dde: ca55 + or a13, a8, a7 # de0: 70d820 + and a13, a4, a13 # de3: d0d410 + xor a15, a15, a3 # de6: 30ff30 + src a6, a5, a5 # de9: 506581 + l32i a3, sp, 220 /* [(local55)] */ # dec: 322137 + xor a15, a15, a0 # def: 00ff30 + ssai 31 # df2: 104f40 + l32i a0, sp, 212 /* [(local53)] */ # df5: 022135 + src a15, a15, a15 # df8: f0ff81 + s32i a15, sp, 216 /* a15 -> [(local54)] */ # dfb: f26136 + ssai 2 # dfe: 004240 + and a15, a8, a7 # e01: 70f810 + src a7, a7, a7 # e04: 707781 + or a13, a13, a15 # e07: f0dd20 + ssai 27 # e0a: 104b40 + add a3, a3, a13 # e0d: da33 + add a3, a3, a6 # e0f: 6a33 + or a15, a7, a5 # e11: 50f720 + and a15, a8, a15 # e14: f0f810 + add a2, a2, a3 # e17: 3a22 + xor a6, a11, a9 # e19: 906b30 + l32i a3, sp, 196 /* [(local49)] */ # e1c: 322131 + add a11, a2, a12 # e1f: cab2 + l32i a2, sp, 0x120 /* [(local72)] */ # e21: 222148 + src a13, a11, a11 # e24: b0db81 + xor a0, a0, a3 # e27: 300030 + xor a0, a0, a6 # e2a: 600030 + ssai 31 # e2d: 104f40 + l32i a6, sp, 216 /* [(local54)] */ # e30: 622136 + xor a2, a10, a2 # e33: 202a30 + src a0, a0, a0 # e36: 000081 + ssai 2 # e39: 004240 + s32i a0, sp, 232 /* a0 -> [(local58)] */ # e3c: 02613a + l32i a10, sp, 232 /* [(local58)] */ # e3f: a2213a + and a0, a7, a5 # e42: 500710 + or a15, a15, a0 # e45: 00ff20 + src a5, a5, a5 # e48: 505581 + l32i a0, sp, 220 /* [(local55)] */ # e4b: 022137 + ssai 27 # e4e: 104b40 + add a6, a6, a15 # e51: fa66 + add a6, a6, a13 # e53: da66 + add a4, a4, a6 # e55: 6a44 + or a15, a5, a11 # e57: b0f520 + and a15, a7, a15 # e5a: f0f710 + l32i a6, sp, 192 /* [(local48)] */ # e5d: 622130 + add a4, a4, a12 # e60: ca44 + src a13, a4, a4 # e62: 40d481 + xor a0, a6, a0 # e65: 000630 + ssai 31 # e68: 104f40 + xor a0, a0, a2 # e6b: 200030 + l32i a2, sp, 216 /* [(local54)] */ # e6e: 222136 + src a0, a0, a0 # e71: 000081 + s32i a0, sp, 224 /* a0 -> [(local56)] */ # e74: 026138 + ssai 2 # e77: 004240 + and a0, a5, a11 # e7a: b00510 + src a11, a11, a11 # e7d: b0bb81 + or a15, a15, a0 # e80: 00ff20 + ssai 27 # e83: 104b40 + l32i a0, sp, 188 /* [(local47)] */ # e86: 02212f + add a10, a10, a15 # e89: faaa + add a10, a10, a13 # e8b: daaa + xor a2, a0, a2 # e8d: 202030 + and a13, a11, a4 # e90: 40db10 + or a15, a11, a4 # e93: 40fb20 + add a8, a8, a10 # e96: aa88 + add a8, a8, a12 # e98: ca88 + l32i a10, sp, 0x11c /* [(local71)] */ # e9a: a22147 + and a15, a5, a15 # e9d: f0f510 + or a13, a13, a15 # ea0: f0dd20 + xor a9, a9, a10 # ea3: a09930 + l32i a15, sp, 0x120 /* [(local72)] */ # ea6: f22148 + src a10, a8, a8 # ea9: 80a881 + xor a2, a2, a9 # eac: 902230 + ssai 31 # eaf: 104f40 + l32i a9, sp, 224 /* [(local56)] */ # eb2: 922138 + src a2, a2, a2 # eb5: 202281 + ssai 2 # eb8: 004240 + s32i a2, sp, 236 /* a2 -> [(local59)] */ # ebb: 22613b + add a9, a9, a13 # ebe: da99 + l32i a2, sp, 0x118 /* [(local70)] */ # ec0: 222146 + l32i a13, sp, 232 /* [(local58)] */ # ec3: d2213a + src a4, a4, a4 # ec6: 404481 + add a9, a9, a10 # ec9: aa99 + add a7, a7, a9 # ecb: 9a77 + ssai 27 # ecd: 104b40 + l32i a9, sp, 236 /* [(local59)] */ # ed0: 92213b + xor a13, a14, a13 # ed3: d0de30 + xor a15, a15, a2 # ed6: 20ff30 + add a7, a7, a12 # ed9: ca77 + and a2, a4, a8 # edb: 802410 + src a10, a7, a7 # ede: 70a781 + xor a13, a13, a15 # ee1: f0dd30 + ssai 31 # ee4: 104f40 + or a15, a4, a8 # ee7: 80f420 + src a13, a13, a13 # eea: d0dd81 + and a15, a11, a15 # eed: f0fb10 + or a15, a15, a2 # ef0: 20ff20 + ssai 2 # ef3: 004240 + src a8, a8, a8 # ef6: 808881 + add a9, a9, a15 # ef9: fa99 + ssai 27 # efb: 104b40 + l32i a15, sp, 204 /* [(local51)] */ # efe: f22133 + add a9, a9, a10 # f01: aa99 + add a5, a5, a9 # f03: 9a55 + l32i a10, sp, 0x11c /* [(local71)] */ # f05: a22147 + l32i a9, sp, 208 /* [(local52)] */ # f08: 922134 + add a5, a5, a12 # f0b: ca55 + xor a10, a10, a15 # f0d: f0aa30 + src a2, a5, a5 # f10: 502581 + l32i a15, sp, 224 /* [(local56)] */ # f13: f22138 + ssai 31 # f16: 104f40 + xor a9, a9, a15 # f19: f09930 + xor a9, a9, a10 # f1c: a09930 + or a15, a8, a7 # f1f: 70f820 + and a15, a4, a15 # f22: f0f410 + src a9, a9, a9 # f25: 909981 + s32i a9, sp, 228 /* a9 -> [(local57)] */ # f28: 926139 + ssai 2 # f2b: 004240 + and a9, a8, a7 # f2e: 709810 + src a7, a7, a7 # f31: 707781 + or a15, a15, a9 # f34: 90ff20 + ssai 27 # f37: 104b40 + l32i a9, sp, 228 /* [(local57)] */ # f3a: 922139 + or a10, a7, a5 # f3d: 50a720 + add a15, a13, a15 # f40: fafd + add a15, a15, a2 # f42: 2aff + and a10, a8, a10 # f44: a0a810 + l32i a2, sp, 236 /* [(local59)] */ # f47: 22213b + add a11, a11, a15 # f4a: fabb + add a11, a11, a12 # f4c: cabb + and a15, a7, a5 # f4e: 50f710 + or a10, a10, a15 # f51: f0aa20 + add a9, a9, a10 # f54: aa99 + l32i a15, sp, 0x118 /* [(local70)] */ # f56: f22146 + src a10, a11, a11 # f59: b0ab81 + add a9, a9, a10 # f5c: aa99 + ssai 31 # f5e: 104f40 + l32i a10, sp, 212 /* [(local53)] */ # f61: a22135 + add a4, a4, a9 # f64: 9a44 + add a4, a4, a12 # f66: ca44 + xor a10, a10, a2 # f68: 20aa30 + l32i a12, sp, 200 /* [(local50)] */ # f6b: c22132 + l32i a2, sp, 204 /* [(local51)] */ # f6e: 222133 + xor a15, a15, a12 # f71: c0ff30 + xor a10, a10, a15 # f74: f0aa30 + xor a12, a6, a12 # f77: c0c630 + xor a2, a2, a3 # f7a: 302230 + xor a6, a6, a14 # f7d: e06630 + xor a3, a0, a3 # f80: 303030 + src a10, a10, a10 # f83: a0aa81 + l32i a15, sp, 220 /* [(local55)] */ # f86: f22137 + ssai 2 # f89: 004240 + src a5, a5, a5 # f8c: 505581 + xor a15, a15, a13 # f8f: d0ff30 + xor a15, a15, a2 # f92: 20ff30 + ssai 27 # f95: 104b40 + xor a9, a5, a11 # f98: b09530 + xor a9, a7, a9 # f9b: 909730 + src a2, a4, a4 # f9e: 402481 + add a9, a10, a9 # fa1: 9a9a + ssai 31 # fa3: 104f40 + add a9, a9, a2 # fa6: 2a99 + src a15, a15, a15 # fa8: f0ff81 + l32i a2, sp, 216 /* [(local54)] */ # fab: 222136 + add a8, a8, a9 # fae: 9a88 + ssai 2 # fb0: 004240 + src a11, a11, a11 # fb3: b0bb81 + l32i a9, sp, 228 /* [(local57)] */ # fb6: 922139 + ssai 27 # fb9: 104b40 + xor a2, a2, a9 # fbc: 902230 + movi a9, 0xca62c1d6 # fbf: 9134fc + xor a12, a12, a2 # fc2: 20cc30 + add a8, a8, a9 # fc5: 9a88 + src a2, a8, a8 # fc7: 802881 + xor a9, a11, a4 # fca: 409b30 + xor a9, a5, a9 # fcd: 909530 + ssai 31 # fd0: 104f40 + src a12, a12, a12 # fd3: c0cc81 + add a9, a15, a9 # fd6: 9a9f + add a9, a9, a2 # fd8: 2a99 + ssai 2 # fda: 004240 + add a7, a7, a9 # fdd: 9a77 + l32i a9, sp, 232 /* [(local58)] */ # fdf: 92213a + src a4, a4, a4 # fe2: 404481 + xor a9, a9, a10 # fe5: a09930 + xor a3, a3, a9 # fe8: 903330 + movi a9, 0xca62c1d6 # feb: 912afc + ssai 27 # fee: 104b40 + add a7, a7, a9 # ff1: 9a77 + src a2, a7, a7 # ff3: 702781 + xor a9, a4, a8 # ff6: 809430 + xor a9, a11, a9 # ff9: 909b30 + ssai 31 # ffc: 104f40 + src a3, a3, a3 # fff: 303381 + add a9, a12, a9 # 1002: 9a9c + add a9, a9, a2 # 1004: 2a99 + ssai 2 # 1006: 004240 + src a8, a8, a8 # 1009: 808881 + add a5, a5, a9 # 100c: 9a55 + ssai 27 # 100e: 104b40 + l32i a9, sp, 224 /* [(local56)] */ # 1011: 922138 + xor a2, a8, a7 # 1014: 702830 + xor a2, a4, a2 # 1017: 202430 + xor a9, a9, a15 # 101a: f09930 + xor a6, a6, a9 # 101d: 906630 + movi a9, 0xca62c1d6 # 1020: 911efc + add a2, a3, a2 # 1023: 2a23 + add a5, a5, a9 # 1025: 9a55 + src a9, a5, a5 # 1027: 509581 + ssai 31 # 102a: 104f40 + add a2, a2, a9 # 102d: 9a22 + add a11, a11, a2 # 102f: 2abb + src a6, a6, a6 # 1031: 606681 + s32i a6, sp, 0 /* a6 -> [(local0)] */ # 1034: 6901 + ssai 2 # 1036: 004240 + l32i a2, sp, 208 /* [(local52)] */ # 1039: 222134 + src a7, a7, a7 # 103c: 707781 + ssai 27 # 103f: 104b40 + xor a0, a0, a2 # 1042: 200030 + xor a9, a7, a5 # 1045: 509730 + l32i a2, sp, 236 /* [(local59)] */ # 1048: 22213b + xor a9, a8, a9 # 104b: 909830 + xor a2, a2, a12 # 104e: c02230 + xor a0, a0, a2 # 1051: 200030 + movi a2, 0xca62c1d6 # 1054: 2112fc + add a9, a6, a9 # 1057: 9a96 + add a11, a11, a2 # 1059: 2abb + src a2, a11, a11 # 105b: b02b81 + add a9, a9, a2 # 105e: 2a99 + ssai 31 # 1060: 104f40 + l32i a2, sp, 212 /* [(local53)] */ # 1063: 222135 + add a4, a4, a9 # 1066: 9a44 + src a0, a0, a0 # 1068: 000081 + movi a9, 0xca62c1d6 # 106b: 910dfc + ssai 2 # 106e: 004240 + src a5, a5, a5 # 1071: 505581 + xor a14, a14, a2 # 1074: 20ee30 + ssai 27 # 1077: 104b40 + add a4, a4, a9 # 107a: 9a44 + xor a2, a13, a3 # 107c: 302d30 + xor a14, a14, a2 # 107f: 20ee30 + xor a9, a5, a11 # 1082: b09530 + xor a9, a7, a9 # 1085: 909730 + add a9, a0, a9 # 1088: 9a90 + src a2, a4, a4 # 108a: 402481 + add a9, a9, a2 # 108d: 2a99 + ssai 31 # 108f: 104f40 + l32i a2, sp, 220 /* [(local55)] */ # 1092: 222137 + add a8, a8, a9 # 1095: 9a88 + src a14, a14, a14 # 1097: e0ee81 + l32i a9, sp, 228 /* [(local57)] */ # 109a: 922139 + s32i a14, sp, 240 /* a14 -> [(local60)] */ # 109d: e2613c + ssai 2 # 10a0: 004240 + src a11, a11, a11 # 10a3: b0bb81 + l32i a14, sp, 208 /* [(local52)] */ # 10a6: e22134 + ssai 27 # 10a9: 104b40 + xor a9, a6, a9 # 10ac: 909630 + xor a14, a14, a2 # 10af: 20ee30 + xor a9, a9, a14 # 10b2: e09930 + movi a14, 0xca62c1d6 # 10b5: e1fbfb + xor a2, a11, a4 # 10b8: 402b30 + add a8, a8, a14 # 10bb: ea88 + l32i a14, sp, 240 /* [(local60)] */ # 10bd: e2213c + xor a2, a5, a2 # 10c0: 202530 + add a14, a14, a2 # 10c3: 2aee + src a2, a8, a8 # 10c5: 802881 + add a14, a14, a2 # 10c8: 2aee + ssai 31 # 10ca: 104f40 + l32i a2, sp, 216 /* [(local54)] */ # 10cd: 222136 + add a7, a7, a14 # 10d0: ea77 + src a9, a9, a9 # 10d2: 909981 + l32i a14, sp, 212 /* [(local53)] */ # 10d5: e22135 + s32i a9, sp, 244 /* a9 -> [(local61)] */ # 10d8: 92613d + ssai 2 # 10db: 004240 + xor a9, a0, a10 # 10de: a09030 + src a4, a4, a4 # 10e1: 404481 + xor a14, a14, a2 # 10e4: 20ee30 + ssai 27 # 10e7: 104b40 + xor a9, a9, a14 # 10ea: e09930 + movi a14, 0xca62c1d6 # 10ed: e1eefb + xor a2, a4, a8 # 10f0: 802430 + add a7, a7, a14 # 10f3: ea77 + l32i a14, sp, 244 /* [(local61)] */ # 10f5: e2213d + xor a2, a11, a2 # 10f8: 202b30 + add a14, a14, a2 # 10fb: 2aee + src a2, a7, a7 # 10fd: 702781 + add a14, a14, a2 # 1100: 2aee + ssai 31 # 1102: 104f40 + l32i a2, sp, 232 /* [(local58)] */ # 1105: 22213a + add a5, a5, a14 # 1108: ea55 + src a9, a9, a9 # 110a: 909981 + l32i a14, sp, 220 /* [(local55)] */ # 110d: e22137 + s32i a9, sp, 252 /* a9 -> [(local63)] */ # 1110: 92613f + ssai 2 # 1113: 004240 + src a8, a8, a8 # 1116: 808881 + l32i a9, sp, 240 /* [(local60)] */ # 1119: 92213c + xor a14, a14, a2 # 111c: 20ee30 + xor a9, a9, a15 # 111f: f09930 + xor a9, a9, a14 # 1122: e09930 + movi a14, 0xca62c1d6 # 1125: e1e1fb + ssai 27 # 1128: 104b40 + add a5, a5, a14 # 112b: ea55 + src a2, a5, a5 # 112d: 502581 + l32i a14, sp, 224 /* [(local56)] */ # 1130: e22138 + ssai 31 # 1133: 104f40 + src a9, a9, a9 # 1136: 909981 + s32i a9, sp, 0x110 /* a9 -> [(local68)] */ # 1139: 926144 + l32i a9, sp, 216 /* [(local54)] */ # 113c: 922136 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 113f: 0911 + xor a9, a9, a14 # 1141: e09930 + l32i a14, sp, 244 /* [(local61)] */ # 1144: e2213d + s32i a4, sp, 184 /* a4 -> [(local46)] */ # 1147: 42612e + xor a14, a14, a12 # 114a: c0ee30 + xor a14, a14, a9 # 114d: 90ee30 + l32i a9, sp, 224 /* [(local56)] */ # 1150: 922138 + ssai 2 # 1153: 004240 + xor a9, a9, a13 # 1156: d09930 + xor a13, a13, a10 # 1159: a0dd30 + xor a10, a10, a12 # 115c: c0aa30 + s32i a10, sp, 248 /* a10 -> [(local62)] */ # 115f: a2613e + xor a12, a6, a12 # 1162: c0c630 + s32i a12, sp, 0x100 /* a12 -> [(local64)] */ # 1165: c26140 + l32i a10, sp, 0x110 /* [(local68)] */ # 1168: a22144 + l32i a12, sp, 252 /* [(local63)] */ # 116b: c2213f + xor a6, a6, a10 # 116e: a06630 + xor a6, a6, a9 # 1171: 906630 + l32i a10, sp, 252 /* [(local63)] */ # 1174: a2213f + xor a9, a8, a7 # 1177: 709830 + xor a10, a10, a3 # 117a: 30aa30 + xor a4, a4, a9 # 117d: 904430 + src a7, a7, a7 # 1180: 707781 + l32i a9, sp, 228 /* [(local57)] */ # 1183: 922139 + add a12, a12, a4 # 1186: 4acc + ssai 27 # 1188: 104b40 + add a12, a12, a2 # 118b: 2acc + add a11, a11, a12 # 118d: cabb + movi a12, 0xca62c1d6 # 118f: c1c8fb + l32i a4, sp, 236 /* [(local59)] */ # 1192: 42213b + add a11, a11, a12 # 1195: cabb + src a2, a11, a11 # 1197: b02b81 + l32i a12, sp, 232 /* [(local58)] */ # 119a: c2213a + ssai 31 # 119d: 104f40 + xor a12, a12, a4 # 11a0: 40cc30 + src a14, a14, a14 # 11a3: e0ee81 + s32i a14, sp, 24 /* a14 -> [(local6)] */ # 11a6: e961 + ssai 2 # 11a8: 004240 + xor a4, a4, a9 # 11ab: 904430 + xor a10, a10, a12 # 11ae: c0aa30 + xor a9, a9, a15 # 11b1: f09930 + xor a15, a15, a3 # 11b4: 30ff30 + l32i a12, sp, 0x110 /* [(local68)] */ # 11b7: c22144 + xor a3, a0, a3 # 11ba: 303030 + xor a0, a0, a14 # 11bd: e00030 + xor a0, a0, a4 # 11c0: 400030 + xor a4, a7, a5 # 11c3: 504730 + xor a4, a8, a4 # 11c6: 404830 + src a5, a5, a5 # 11c9: 505581 + add a12, a12, a4 # 11cc: 4acc + l32i a4, sp, 184 /* [(local46)] */ # 11ce: 42212e + add a12, a12, a2 # 11d1: 2acc + add a4, a4, a12 # 11d3: ca44 + movi a12, 0xca62c1d6 # 11d5: c1b7fb + ssai 27 # 11d8: 104b40 + add a4, a4, a12 # 11db: ca44 + src a2, a4, a4 # 11dd: 402481 + l32i a12, sp, 240 /* [(local60)] */ # 11e0: c2213c + s32i a12, sp, 8 /* [(local60)] -> [(local2)] */ # 11e3: c921 + ssai 31 # 11e5: 104f40 + src a10, a10, a10 # 11e8: a0aa81 + s32i a10, sp, 28 /* a10 -> [(local7)] */ # 11eb: a971 + xor a12, a12, a10 # 11ed: a0cc30 + ssai 2 # 11f0: 004240 + xor a12, a12, a13 # 11f3: d0cc30 + xor a13, a5, a11 # 11f6: b0d530 + xor a13, a7, a13 # 11f9: d0d730 + src a11, a11, a11 # 11fc: b0bb81 + add a13, a14, a13 # 11ff: dade + add a13, a13, a2 # 1201: 2add + add a8, a8, a13 # 1203: da88 + movi a13, 0xca62c1d6 # 1205: d1acfb + ssai 27 # 1208: 104b40 + add a8, a8, a13 # 120b: da88 + src a2, a8, a8 # 120d: 802881 + l32i a13, sp, 244 /* [(local61)] */ # 1210: d2213d + s32i a13, sp, 12 /* [(local61)] -> [(local3)] */ # 1213: d931 + ssai 31 # 1215: 104f40 + src a6, a6, a6 # 1218: 606681 + s32i a6, sp, 32 /* a6 -> [(local8)] */ # 121b: 6981 + xor a13, a13, a6 # 121d: 60dd30 + xor a13, a13, a9 # 1220: 90dd30 + ssai 2 # 1223: 004240 + xor a9, a11, a4 # 1226: 409b30 + src a4, a4, a4 # 1229: 404481 + xor a9, a5, a9 # 122c: 909530 + ssai 27 # 122f: 104b40 + add a9, a10, a9 # 1232: 9a9a + add a9, a9, a2 # 1234: 2a99 + add a7, a7, a9 # 1236: 9a77 + movi a2, 0xca62c1d6 # 1238: 21a1fb + xor a9, a4, a8 # 123b: 809430 + xor a9, a11, a9 # 123e: 909b30 + add a6, a6, a9 # 1241: 9a66 + add a7, a7, a2 # 1243: 2a77 + src a9, a7, a7 # 1245: 709781 + add a6, a6, a9 # 1248: 9a66 + ssai 31 # 124a: 104f40 + l32i a9, sp, 252 /* [(local63)] */ # 124d: 92213f + src a0, a0, a0 # 1250: 000081 + add a5, a5, a6 # 1253: 6a55 + add a5, a5, a2 # 1255: 2a55 + s32i a0, sp, 36 /* a0 -> [(local9)] */ # 1257: 0991 + l32i a6, sp, 248 /* [(local62)] */ # 1259: 62213e + s32i a9, sp, 16 /* [(local63)] -> [(local4)] */ # 125c: 9941 + ssai 2 # 125e: 004240 + src a8, a8, a8 # 1261: 808881 + xor a9, a9, a0 # 1264: 009930 + xor a9, a9, a6 # 1267: 609930 + ssai 27 # 126a: 104b40 + xor a6, a8, a7 # 126d: 706830 + xor a6, a4, a6 # 1270: 606430 + add a0, a0, a6 # 1273: 6a00 + src a6, a5, a5 # 1275: 506581 + add a0, a0, a6 # 1278: 6a00 + ssai 31 # 127a: 104f40 + l32i a6, sp, 0x110 /* [(local68)] */ # 127d: 622144 + add a11, a11, a0 # 1280: 0abb + src a12, a12, a12 # 1282: c0cc81 + l32i a0, sp, 132 /* [(local33)] */ # 1285: 022121 + add a11, a11, a2 # 1288: 2abb + s32i a12, sp, 40 /* a12 -> [(local10)] */ # 128a: c9a1 + s32i a6, sp, 20 /* [(local68)] -> [(local5)] */ # 128c: 6951 + ssai 2 # 128e: 004240 + src a7, a7, a7 # 1291: 707781 + xor a6, a6, a12 # 1294: c06630 + xor a6, a6, a15 # 1297: f06630 + ssai 27 # 129a: 104b40 + xor a15, a7, a5 # 129d: 50f730 + xor a15, a8, a15 # 12a0: f0f830 + add a12, a12, a15 # 12a3: facc + src a15, a11, a11 # 12a5: b0fb81 + add a12, a12, a15 # 12a8: facc + ssai 31 # 12aa: 104f40 + src a13, a13, a13 # 12ad: d0dd81 + add a4, a4, a12 # 12b0: ca44 + add a4, a4, a2 # 12b2: 2a44 + s32i a13, sp, 44 /* a13 -> [(local11)] */ # 12b4: d9b1 + xor a14, a14, a13 # 12b6: d0ee30 + l32i a12, sp, 0x100 /* [(local64)] */ # 12b9: c22140 + ssai 2 # 12bc: 004240 + src a5, a5, a5 # 12bf: 505581 + xor a12, a12, a14 # 12c2: e0cc30 + ssai 27 # 12c5: 104b40 + xor a14, a5, a11 # 12c8: b0e530 + xor a14, a7, a14 # 12cb: e0e730 + add a13, a13, a14 # 12ce: eadd + src a14, a4, a4 # 12d0: 40e481 + add a13, a13, a14 # 12d3: eadd + ssai 31 # 12d5: 104f40 + l32i a14, sp, 124 /* [(local31)] */ # 12d8: e2211f + src a9, a9, a9 # 12db: 909981 + add a8, a8, a13 # 12de: da88 + add a8, a8, a2 # 12e0: 2a88 + s32i a9, sp, 48 /* a9 -> [(local12)] */ # 12e2: 99c1 + xor a10, a10, a9 # 12e4: 90aa30 + ssai 2 # 12e7: 004240 + src a11, a11, a11 # 12ea: b0bb81 + xor a3, a3, a10 # 12ed: a03330 + ssai 27 # 12f0: 104b40 + xor a10, a11, a4 # 12f3: 40ab30 + xor a10, a5, a10 # 12f6: a0a530 + add a9, a9, a10 # 12f9: aa99 + src a10, a8, a8 # 12fb: 80a881 + add a9, a9, a10 # 12fe: aa99 + ssai 31 # 1300: 104f40 + src a6, a6, a6 # 1303: 606681 + add a7, a7, a9 # 1306: 9a77 + add a7, a7, a2 # 1308: 2a77 + s32i a6, sp, 52 /* a6 -> [(local13)] */ # 130a: 69d1 + ssai 2 # 130c: 004240 + src a4, a4, a4 # 130f: 404481 + xor a9, a4, a8 # 1312: 809430 + ssai 27 # 1315: 104b40 + xor a9, a11, a9 # 1318: 909b30 + add a6, a6, a9 # 131b: 9a66 + src a9, a7, a7 # 131d: 709781 + add a6, a6, a9 # 1320: 9a66 + ssai 31 # 1322: 104f40 + src a12, a12, a12 # 1325: c0cc81 + add a5, a5, a6 # 1328: 6a55 + add a5, a5, a2 # 132a: 2a55 + s32i a12, sp, 56 /* a12 -> [(local14)] */ # 132c: c9e1 + ssai 2 # 132e: 004240 + src a8, a8, a8 # 1331: 808881 + xor a13, a8, a7 # 1334: 70d830 + ssai 27 # 1337: 104b40 + xor a13, a4, a13 # 133a: d0d430 + add a12, a12, a13 # 133d: dacc + src a13, a5, a5 # 133f: 50d581 + add a12, a12, a13 # 1342: dacc + ssai 31 # 1344: 104f40 + l32i a13, sp, 120 /* [(local30)] */ # 1347: d2211e + src a3, a3, a3 # 134a: 303381 + add a11, a11, a12 # 134d: cabb + add a11, a11, a2 # 134f: 2abb + ssai 2 # 1351: 004240 + s32i a3, sp, 60 /* a3 -> [(local15)] */ # 1354: 39f1 + l32i a15, a0, 0 /* [[(local33)]] */ # 1356: f800 + l32i a10, a0, 4 /* [[(local33)]+0x4] */ # 1358: a810 + src a7, a7, a7 # 135a: 707781 + l32i a9, a0, 16 /* [[(local33)]+0x10] */ # 135d: 9840 + ssai 27 # 135f: 104b40 + add a9, a9, a8 # 1362: 8a99 + src a6, a11, a11 # 1364: b06b81 + add a10, a10, a11 # 1367: baaa + s32i a10, a0, 4 /* a10 -> [[(local33)]+0x4] */ # 1369: a910 + ssai 2 # 136b: 004240 + s32i a9, a0, 16 /* a9 -> [[(local33)]+0x10] */ # 136e: 9940 + add a4, a4, a6 # 1370: 6a44 + xor a9, a7, a5 # 1372: 509730 + l32i a6, a0, 12 /* [[(local33)]+0xc] */ # 1375: 6830 + src a5, a5, a5 # 1377: 505581 + xor a8, a8, a9 # 137a: 908830 + add a6, a6, a7 # 137d: 7a66 + add a3, a3, a8 # 137f: 8a33 + add a3, a3, a4 # 1381: 4a33 + s32i a6, a0, 12 /* a6 -> [[(local33)]+0xc] */ # 1383: 6930 + l32i a4, a0, 8 /* [[(local33)]+0x8] */ # 1385: 4820 + add a15, a15, a3 # 1387: 3aff + add a15, a15, a2 # 1389: 2aff + movi a3, 0 /* 0x00000000 */ # 138b: 0c03 + mov a2, sp /* (local0) */ # 138d: 2d01 + s32i a15, a0, 0 /* a15 -> [[(local33)]] */ # 138f: f900 + add a4, a4, a5 # 1391: 5a44 + s32i a4, a0, 8 /* a4 -> [[(local33)]+0x8] */ # 1393: 4920 + l32i a15, sp, 128 /* [(local32)] */ # 1395: f22120 + movi a4, 64 /* 0x00000040 */ # 1398: 4c04 + call0 memset # 139a: 014afbc0 + # 139e: 0000 + l32i a12, sp, 116 /* [(local29)] */ # 13a0: c2211d + movi a2, 304 /* 0x00000130 */ # 13a3: 22a130 + l32i a0, sp, 112 /* [(local28)] */ # 13a6: 02211c + add sp, sp, a2 /* (top of frame) */ # 13a9: 2a11 + ret /* 0x00000130 */ # 13ab: 0df0 + + .literal_position # 13b0: 01234567 + # 13b4: 89abcdef + # 13b8: fedcba98 + # 13bc: 76543210 + # 13c0: f0e1d2c3 + +# Function @ .irom0.text+0x13c4 + .balign 4 + .global SHA1Init + .type SHA1Init, @function +SHA1Init: movi a3, 0xc3d2e1f0 # 13c4: 31ffff + movi a4, 0x10325476 # 13c7: 41fdff + movi a5, 0x98badcfe # 13ca: 51fbff + movi a6, 0xefcdab89 # 13cd: 61f9ff + movi a7, 0x67452301 # 13d0: 71f8ff + movi a8, 0 /* 0x00000000 */ # 13d3: 0c08 + s32i a8, a2, 24 /* 0x00000000 -> [arg0+0x18] */ # 13d5: 8962 + s32i a8, a2, 20 /* 0x00000000 -> [arg0+0x14] */ # 13d7: 8952 + s32i a7, a2, 0 /* 0x67452301 -> [arg0] */ # 13d9: 7902 + s32i a6, a2, 4 /* 0xefcdab89 -> [arg0+0x4] */ # 13db: 6912 + s32i a5, a2, 8 /* 0x98badcfe -> [arg0+0x8] */ # 13dd: 5922 + s32i a4, a2, 12 /* 0x10325476 -> [arg0+0xc] */ # 13df: 4932 + s32i a3, a2, 16 /* 0xc3d2e1f0 -> [arg0+0x10] */ # 13e1: 3942 + ret /* arg0 */ # 13e3: 0df0 + + .literal_position # 13e8: 00000000 + # 13ec: 00000000 + +# Function @ .irom0.text+0x13f0 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word @ -0x10 +# (local5): word @ -0xc +# (local6): word[2] @ -0x8 + .balign 4 + .global SHA1Update + .type SHA1Update, @function +SHA1Update: addi sp, sp, -32 /* (local0) */ # 13f0: 12c1e0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 13f3: c911 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 13f5: d921 + s32i a4, sp, 24 /* arg2 -> [(local6)] */ # 13f7: 4961 + s32i a15, sp, 16 /* a15 -> [(local4)] */ # 13f9: f941 + s32i a14, sp, 12 /* a14 -> [(local3)] */ # 13fb: e931 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 13fd: 0901 + mov a14, a2 /* arg0 */ # 13ff: ed02 + l32i a0, a2, 24 /* [arg0+0x18] */ # 1401: 0862 + mov a15, a4 /* arg2 */ # 1403: fd04 + extui a5, a15, 29, 3 # 1405: f05d25 + l32i a2, a2, 20 /* [arg0+0x14] */ # 1408: 2852 + slli a4, a4, 3 # 140a: d04411 + extui a13, a2, 3, 6 # 140d: 20d354 + addx8 a2, a15, a2 # 1410: 202fb0 + s32i a2, a14, 20 /* a2 -> [arg0+0x14] */ # 1413: 295e + bgeu a2, a4, .Lbr003 # 1415: 47b203 + addi a0, a0, 1 /* [arg0+0x18]+0x1 */ # 1418: 1b00 + s32i a0, a14, 24 /* [arg0+0x18]+0x1 -> [arg0+0x18] */ # 141a: 096e +.Lbr003: add a4, a15, a13 # 141c: da4f + add a5, a0, a5 # 141e: 5a50 + s32i a5, a14, 24 /* a5 -> [arg0+0x18] */ # 1420: 596e + bltui a4, 64, .Lbr006 # 1422: b6d43d + s32i a3, sp, 20 /* arg1 -> [(local5)] */ # 1425: 3951 + movi a12, 64 /* 0x00000040 */ # 1427: 4c0c + add a2, a14, a13 # 1429: da2e + addi a2, a2, 28 # 142b: 22c21c + sub a12, a12, a13 # 142e: d0ccc0 + mov a4, a12 # 1431: 4d0c + call0 memcpy # 1433: 01edffc0 + # 1437: 0000 + mov a2, a14 /* arg0 */ # 1439: 2d0e + addi a3, a14, 28 /* arg0+0x1c */ # 143b: 32ce1c + call0 SHA1Transform # 143e: 050000 + movi a0, 127 /* 0x0000007f */ # 1441: 02a07f + sub a13, a0, a13 # 1444: d0d0c0 + bgeu a13, a15, .Lbr005 # 1447: f7bd11 +.Lbr004: l32i a3, sp, 20 /* [(local5)] */ # 144a: 3851 + mov a2, a14 /* arg0 */ # 144c: 2d0e + add a3, a3, a12 # 144e: ca33 + call0 SHA1Transform # 1450: 050000 + addi a12, a12, 64 # 1453: c2cc40 + addi a13, a13, 64 # 1456: d2cd40 + bltu a13, a15, .Lbr004 # 1459: f73ded +.Lbr005: l32i a3, sp, 20 /* [(local5)] */ # 145c: 3851 + movi a13, 0 /* 0x00000000 */ # 145e: 0c0d + j .Lbr007 # 1460: 460000 +.Lbr006: movi a12, 0 /* 0x00000000 */ # 1463: 0c0c +.Lbr007: add a3, a3, a12 # 1465: ca33 + sub a4, a15, a12 # 1467: c04fc0 + add a2, a14, a13 # 146a: da2e + addi a2, a2, 28 # 146c: 22c21c + call0 memcpy # 146f: 01dfffc0 + # 1473: 0000 + l32i a12, sp, 4 /* [(local1)] */ # 1475: c811 + l32i a13, sp, 8 /* [(local2)] */ # 1477: d821 + l32i a14, sp, 12 /* [(local3)] */ # 1479: e831 + l32i a15, sp, 16 /* [(local4)] */ # 147b: f841 + l32i a0, sp, 0 /* [(local0)] */ # 147d: 0801 + addi sp, sp, 32 /* (top of frame) */ # 147f: 12c120 + ret # 1482: 0df0 + + .literal_position # 1484: 00000000 + # 1488: 00000000 + # 148c: 00000000 + # 1490: 00000000 + # 1494: 00000000 + # 1498: 00000000 + +# Function @ .irom0.text+0x149c +# Local variables/stack: +# (local0): word @ -0x18 +# (local1): word @ -0x14 +# (local2): word @ -0x10 +# (local3): word @ -0xc +# (local4): word[2] @ -0x8 + .balign 4 + .global SHA1Final + .type SHA1Final, @function +SHA1Final: addi sp, sp, -32 /* (FP)-0x20 */ # 149c: 12c1e0 + s32i a15, sp, 24 /* a15 -> [(local4)] */ # 149f: f961 + s32i a13, sp, 16 /* a13 -> [(local2)] */ # 14a1: d941 + s32i a12, sp, 12 /* a12 -> [(local1)] */ # 14a3: c931 + s32i a0, sp, 8 /* a0 -> [(local0)] */ # 14a5: 0921 + s32i a14, sp, 20 /* a14 -> [(local3)] */ # 14a7: e951 + movi a0, 0 /* 0x00000000 */ # 14a9: 0c00 + movi a14, -1 /* 0xffffffff */ # 14ab: 7cfe + mov a12, a3 /* arg1 */ # 14ad: cd03 + mov a13, a2 /* arg0 */ # 14af: dd02 + mov a3, sp /* (FP)-0x20 */ # 14b1: 3d01 + movi a2, 1 /* 0x00000001 */ # 14b3: 0c12 +.Lbr008: xor a5, a0, a14 # 14b5: e05030 + extui a5, a5, 0, 2 # 14b8: 505014 + slli a5, a5, 3 # 14bb: d05511 + ssr a5 # 14be: 000540 + bltui a0, 4, .Lbr009 # 14c1: b64001 + movi a2, 0 /* 0x00000000 */ # 14c4: 0c02 +.Lbr009: addi a0, a0, 1 # 14c6: 1b00 + addx4 a4, a2, a12 # 14c8: c042a0 + l32i a4, a4, 20 # 14cb: 4854 + movi a2, 1 /* 0x00000001 */ # 14cd: 0c12 + srl a4, a4 # 14cf: 404091 + s8i a4, a3, 0 # 14d2: 424300 + addi a3, a3, 1 # 14d5: 1b33 + bnei a0, 8, .Lbr008 # 14d7: 6680da + mov a2, a12 /* arg1 */ # 14da: 2d0c + movi a3, .Label001 # 14dc: 31eaff + movi a4, 1 /* 0x00000001 */ # 14df: 0c14 + call0 SHA1Update # 14e1: 050000 + l32i a5, a12, 20 /* [arg1+0x14] */ # 14e4: 585c + movi a6, 504 /* 0x000001f8 */ # 14e6: 62a1f8 + and a5, a5, a6 # 14e9: 605510 + movi a6, 448 /* 0x000001c0 */ # 14ec: 62a1c0 + beq a5, a6, .Lbr011 # 14ef: 671519 + movi a15, .Ldata001 # 14f2: f1e5ff +.Lbr010: mov a2, a12 /* arg1 */ # 14f5: 2d0c + movi a4, 1 /* 0x00000001 */ # 14f7: 0c14 + mov a3, a15 /* .Ldata001 */ # 14f9: 3d0f + call0 SHA1Update # 14fb: 050000 + l32i a7, a12, 20 /* [arg1+0x14] */ # 14fe: 785c + movi a8, 504 /* 0x000001f8 */ # 1500: 82a1f8 + and a7, a7, a8 # 1503: 807710 + movi a8, 448 /* 0x000001c0 */ # 1506: 82a1c0 + bne a7, a8, .Lbr010 # 1509: 8797e8 +.Lbr011: mov a2, a12 /* arg1 */ # 150c: 2d0c + mov a3, sp /* (FP)-0x20 */ # 150e: 3d01 + movi a4, 8 /* 0x00000008 */ # 1510: 0c84 + call0 SHA1Update # 1512: 050000 + movi a0, 0 /* 0x00000000 */ # 1515: 0c00 + movi a2, 20 /* 0x00000014 */ # 1517: 1c42 +.Lbr012: xor a10, a0, a14 # 1519: e0a030 + srli a9, a0, 2 # 151c: 009241 + addx4 a9, a9, a12 # 151f: c099a0 + extui a10, a10, 0, 2 # 1522: a0a014 + addi a0, a0, 1 # 1525: 1b00 + slli a10, a10, 3 # 1527: d0aa11 + l32i a9, a9, 0 # 152a: 9809 + ssr a10 # 152c: 000a40 + srl a9, a9 # 152f: 909091 + s8i a9, a13, 0 # 1532: 924d00 + addi a13, a13, 1 # 1535: 1bdd + bne a0, a2, .Lbr012 # 1537: 2790de + addi a2, a12, 28 /* arg1+0x1c */ # 153a: 22cc1c + movi a3, 0 /* 0x00000000 */ # 153d: 0c03 + movi a4, 64 /* 0x00000040 */ # 153f: 4c04 + call0 memset # 1541: 01d2ffc0 + # 1545: 0000 + mov a2, a12 /* arg1 */ # 1547: 2d0c + movi a3, 0 /* 0x00000000 */ # 1549: 0c03 + movi a4, 20 /* 0x00000014 */ # 154b: 1c44 + call0 memset # 154d: 01d0ffc0 + # 1551: 0000 + addi a2, a12, 20 /* arg1+0x14 */ # 1553: 22cc14 + movi a3, 0 /* 0x00000000 */ # 1556: 0c03 + movi a4, 8 /* 0x00000008 */ # 1558: 0c84 + call0 memset # 155a: 01ceffc0 + # 155e: 0000 + mov a2, sp /* (FP)-0x20 */ # 1560: 2d01 + movi a3, 0 /* 0x00000000 */ # 1562: 0c03 + movi a4, 8 /* 0x00000008 */ # 1564: 0c84 + call0 memset # 1566: 01ccffc0 + # 156a: 0000 + l32i a12, sp, 12 /* [(local1)] */ # 156c: c831 + l32i a13, sp, 16 /* [(local2)] */ # 156e: d841 + l32i a14, sp, 20 /* [(local3)] */ # 1570: e851 + l32i a15, sp, 24 /* [(local4)] */ # 1572: f861 + l32i a0, sp, 8 /* [(local0)] */ # 1574: 0821 + addi sp, sp, 32 /* (top of frame) */ # 1576: 12c120 + ret # 1579: 0df0 + + .section .rodata.str1.4, "MSa", @progbits, 1 + +.Label001: .byte 0x80, 0x00 + + .section .rodata, "a", @progbits + +.Ldata001: .byte 0x00, 0x00 diff --git a/binary_sdk/libwpa_stage1/sha1-pbkdf2.S b/binary_sdk/libwpa_stage1/sha1-pbkdf2.S new file mode 100644 index 0000000..fb34162 --- /dev/null +++ b/binary_sdk/libwpa_stage1/sha1-pbkdf2.S @@ -0,0 +1,178 @@ + + .section .irom0.text, "ax", @progbits + + .literal_position # 0: 00000000 + # 4: 00000000 + # 8: 00000000 + # c: 00000000 + # 10: 00000000 + +# Function @ .irom0.text+0x14 +# Local variables/stack: +# (local0): word @ -0x90 +# (local1): word @ -0x8c +# (local2): word @ -0x88 +# (local3): word @ -0x84 +# (local4): byte @ -0x80 +# (local5): byte @ -0x7f +# (local6): byte @ -0x7e +# (local7): byte[77] @ -0x7d +# (local8): word @ -0x30 +# (local9): word @ -0x2c +# (local10): word @ -0x28 +# (local11): word @ -0x24 +# (local12): word @ -0x20 +# (local13): word @ -0x1c +# (local14): word @ -0x18 +# (local15): word @ -0x14 +# (local16): word[4] @ -0x10 + .balign 4 +.Lfunc001: movi a8, 144 /* 0x00000090 */ # 14: 82a090 + sub sp, sp, a8 /* (local0) */ # 17: 8011c0 + s32i a5, sp, 124 /* arg3 -> [(local15)] */ # 1a: 52611f + s32i a7, sp, 96 /* arg5 -> [(local8)] */ # 1d: 726118 + s32i a0, sp, 100 /* a0 -> [(local9)] */ # 20: 026119 + s32i a3, sp, 128 /* arg1 -> [(local16)] */ # 23: 326120 + s32i a15, sp, 116 /* a15 -> [(local13)] */ # 26: f2611d + s32i a14, sp, 112 /* a14 -> [(local12)] */ # 29: e2611c + s32i a12, sp, 104 /* a12 -> [(local10)] */ # 2c: c2611a + s32i a13, sp, 108 /* a13 -> [(local11)] */ # 2f: d2611b + mov a12, a6 /* arg4 */ # 32: cd06 + mov a13, a4 /* arg2 */ # 34: dd04 + mov a14, a2 /* arg0 */ # 36: ed02 + l32i a15, sp, 128 /* [(local16)] */ # 38: f22120 + call0 strlen # 3b: 01f1ffc0 + # 3f: 0000 + s32i a15, sp, 0 /* [(local16)] -> [(local0)] */ # 41: f901 + s32i a13, sp, 8 /* arg2 -> [(local2)] */ # 43: d921 + addi a6, sp, 8 /* (local2) */ # 45: 8b61 + addi a7, sp, 32 /* (FP)-0x70 */ # 47: 72c120 + s8i a12, sp, 19 /* arg4 -> [(local7)] */ # 4a: c24113 + extui a5, a12, 24, 8 # 4d: c05875 + extui a4, a12, 16, 16 # 50: c040f5 + srli a3, a12, 8 # 53: c03841 + movi a0, 4 /* 0x00000004 */ # 56: 0c40 + s32i a0, sp, 12 /* 0x00000004 -> [(local3)] */ # 58: 0931 + s8i a3, sp, 18 /* a3 -> [(local6)] */ # 5a: 324112 + s8i a4, sp, 17 /* a4 -> [(local5)] */ # 5d: 424111 + s8i a5, sp, 16 /* a5 -> [(local4)] */ # 60: 524110 + movi a4, 2 /* 0x00000002 */ # 63: 0c24 + mov a5, sp /* (local0) */ # 65: 5d01 + mov a12, a2 # 67: cd02 + addi a2, sp, 16 /* (local4) */ # 69: 22c110 + mov a3, a12 # 6c: 3d0c + s32i a2, sp, 4 /* (local4) -> [(local1)] */ # 6e: 2911 + mov a2, a14 /* arg0 */ # 70: 2d0e + call0 hmac_sha1_vector # 72: 01e4ffc0 + # 76: 0000 + bnez a2, .Lbr005 # 78: 569207 + addi a3, sp, 32 /* (FP)-0x70 */ # 7b: 32c120 + movi a4, 20 /* 0x00000014 */ # 7e: 1c44 + l32i a15, sp, 96 /* [(local8)] */ # 80: f22118 + s32i a12, sp, 120 /* a12 -> [(local14)] */ # 83: c2611e + mov a2, a15 /* [(local8)] */ # 86: 2d0f + call0 memcpy # 88: 01e0ffc0 + # 8c: 0000 + l32i a6, sp, 124 /* [(local15)] */ # 8e: 62211f + blti a6, 2, .Lbr003 # 91: a62648 + addi a12, a15, 20 /* [(local8)]+0x14 */ # 94: c2cf14 + movi a13, 1 /* 0x00000001 */ # 97: 0c1d +.Lbr001: mov a2, a14 /* arg0 */ # 99: 2d0e + l32i a3, sp, 120 /* [(local14)] */ # 9b: 32211e + addi a4, sp, 32 /* (FP)-0x70 */ # 9e: 42c120 + movi a5, 20 /* 0x00000014 */ # a1: 1c45 + addi a6, sp, 64 /* (FP)-0x50 */ # a3: 62c140 + call0 hmac_sha1 # a6: 01d9ffc0 + # aa: 0000 + bnez a2, .Lbr005 # ac: 565204 + addi a2, sp, 32 /* (FP)-0x70 */ # af: 22c120 + addi a3, sp, 64 /* (FP)-0x50 */ # b2: 32c140 + movi a4, 20 /* 0x00000014 */ # b5: 1c44 + call0 memcpy # b7: 01d6ffc0 + # bb: 0000 + mov a2, a15 /* [(local8)] */ # bd: 2d0f + addi a0, sp, 64 /* (FP)-0x50 */ # bf: 02c140 + l32i a9, sp, 124 /* [(local15)] */ # c2: 92211f + addi a13, a13, 1 # c5: 1bdd +.Lbr002: l8ui a7, a2, 0 # c7: 720200 + l8ui a8, a0, 0 # ca: 820000 + addi a0, a0, 1 # cd: 1b00 + xor a7, a7, a8 # cf: 807730 + s8i a7, a2, 0 # d2: 724200 + addi a2, a2, 1 # d5: 1b22 + bne a2, a12, .Lbr002 # d7: c792ec + bne a9, a13, .Lbr001 # da: d799bb +.Lbr003: movi a2, 0 /* 0x00000000 */ # dd: 0c02 +.Lbr004: l32i a12, sp, 104 /* [(local10)] */ # df: c2211a + l32i a13, sp, 108 /* [(local11)] */ # e2: d2211b + l32i a14, sp, 112 /* [(local12)] */ # e5: e2211c + l32i a15, sp, 116 /* [(local13)] */ # e8: f2211d + movi a3, 144 /* 0x00000090 */ # eb: 32a090 + l32i a0, sp, 100 /* [(local9)] */ # ee: 022119 + add sp, sp, a3 /* (top of frame) */ # f1: 3a11 + ret # f3: 0df0 +.Lbr005: movi a2, -1 /* 0xffffffff */ # f5: 7cf2 + j .Lbr004 # f7: 06f9ff + + .literal_position # fc: 00000000 + +# Function @ .irom0.text+0x100 +# Local variables/stack: +# (local0): word @ -0x30 +# (local1): word @ -0x2c +# (local2): word @ -0x28 +# (local3): word @ -0x24 +# (local4): word @ -0x20 +# (local5): word @ -0x1c +# (local6): word @ -0x18 +# (local7): word @ -0x14 +# (local8): word[4] @ -0x10 + .balign 4 + .global pbkdf2_sha1 + .type pbkdf2_sha1, @function +pbkdf2_sha1: + addi sp, sp, -80 /* (FP)-0x50 */ # 100: 12c1b0 + s32i a14, sp, 44 /* a14 -> [(local3)] */ # 103: e9b1 + s32i a0, sp, 32 /* a0 -> [(local0)] */ # 105: 0981 + s32i a2, sp, 52 /* arg0 -> [(local5)] */ # 107: 29d1 + s32i a3, sp, 56 /* arg1 -> [(local6)] */ # 109: 39e1 + s32i a4, sp, 60 /* arg2 -> [(local7)] */ # 10b: 49f1 + s32i a5, sp, 64 /* arg3 -> [(local8)] */ # 10d: 526110 + s32i a15, sp, 48 /* a15 -> [(local4)] */ # 110: f9c1 + s32i a13, sp, 40 /* a13 -> [(local2)] */ # 112: d9a1 + s32i a12, sp, 36 /* a12 -> [(local1)] */ # 114: c991 + mov a13, a6 /* arg4 */ # 116: dd06 + mov a12, a7 /* arg5 */ # 118: cd07 + beqz a7, .Lbr009 # 11a: bc67 + movi a15, 0 /* 0x00000000 */ # 11c: 0c0f +.Lbr006: l32i a2, sp, 52 /* [(local5)] */ # 11e: 28d1 + l32i a3, sp, 56 /* [(local6)] */ # 120: 38e1 + l32i a4, sp, 60 /* [(local7)] */ # 122: 48f1 + l32i a5, sp, 64 /* [(local8)] */ # 124: 522110 + mov a7, sp /* (FP)-0x50 */ # 127: 7d01 + addi a15, a15, 1 # 129: 1bff + mov a6, a15 # 12b: 6d0f + call0 .Lfunc001 # 12d: 45eeff + beqz a2, .Lbr007 # 130: 8c32 + movi a2, -1 /* 0xffffffff */ # 132: 7cf2 + j .Lbr010 # 134: 860700 +.Lbr007: movi a2, 20 /* 0x00000014 */ # 137: 1c42 + mov a14, a2 /* 0x00000014 */ # 139: ed02 + bltu a2, a12, .Lbr008 # 13b: c73201 + mov a14, a12 # 13e: ed0c +.Lbr008: mov a2, a13 # 140: 2d0d + mov a3, sp /* (FP)-0x50 */ # 142: 3d01 + mov a4, a14 # 144: 4d0e + call0 memcpy # 146: 01edffc0 + # 14a: 0000 + add a13, a13, a14 # 14c: eadd + sub a12, a12, a14 # 14e: e0ccc0 + bnez a12, .Lbr006 # 151: 569cfc +.Lbr009: movi a2, 0 /* 0x00000000 */ # 154: 0c02 +.Lbr010: l32i a12, sp, 36 /* [(local1)] */ # 156: c891 + l32i a13, sp, 40 /* [(local2)] */ # 158: d8a1 + l32i a14, sp, 44 /* [(local3)] */ # 15a: e8b1 + l32i a15, sp, 48 /* [(local4)] */ # 15c: f8c1 + l32i a0, sp, 32 /* [(local0)] */ # 15e: 0881 + addi sp, sp, 80 /* (top of frame) */ # 160: 12c150 + ret # 163: 0df0 diff --git a/binary_sdk/libwpa_stage1/sha1.S b/binary_sdk/libwpa_stage1/sha1.S new file mode 100644 index 0000000..a89d99e --- /dev/null +++ b/binary_sdk/libwpa_stage1/sha1.S @@ -0,0 +1,267 @@ + + .section .irom0.text, "ax", @progbits + + .literal_position # 0: 00000000 + # 4: 00000000 + # 8: 00000000 + # c: 00000000 + # 10: 00000000 + # 14: 00000000 + # 18: 00000000 + +# Function @ .irom0.text+0x1c +# Local variables/stack: +# (local0): word @ -0x80 +# (local1): word[7] @ -0x7c +# (local2): word @ -0x60 +# (local3): word[7] @ -0x5c +# (local4): word @ -0x40 +# (local5): word @ -0x3c +# (local6): word @ -0x38 +# (local7): word @ -0x34 +# (local8): word @ -0x30 +# (local9): word[3] @ -0x2c +# (local10): word @ -0x20 +# (local11): word[7] @ -0x1c + .balign 4 + .global hmac_sha1_vector + .type hmac_sha1_vector, @function +hmac_sha1_vector: + movi a8, 224 /* 0x000000e0 */ # 1c: 82a0e0 + sub sp, sp, a8 /* (FP)-0xe0 */ # 1f: 8011c0 + s32i a3, sp, 196 /* arg1 -> [(local11)] */ # 22: 326131 + s32i a2, sp, 192 /* arg0 -> [(local10)] */ # 25: 226130 + s32i a0, sp, 164 /* a0 -> [(local5)] */ # 28: 026129 + s32i a13, sp, 172 /* a13 -> [(local7)] */ # 2b: d2612b + s32i a12, sp, 168 /* a12 -> [(local6)] */ # 2e: c2612a + s32i a14, sp, 176 /* a14 -> [(local8)] */ # 31: e2612c + mov a12, a5 /* arg3 */ # 34: cd05 + mov a14, a4 /* arg2 */ # 36: ed04 + mov a13, a6 /* arg4 */ # 38: dd06 + movi a0, 196 /* 0x000000c4 */ # 3a: 02a0c4 + add a0, sp, a0 /* (local11) */ # 3d: 0a01 + movi a6, 192 /* 0x000000c0 */ # 3f: 62a0c0 + add a6, sp, a6 /* (local10) */ # 42: 6a61 + bltui a4, 6, .Lbr001 # 44: b66402 + j .Lbr006 # 47: 062600 +.Lbr001: s32i a7, sp, 160 /* arg5 -> [(local4)] */ # 4a: 726128 + movi a2, 64 /* 0x00000040 */ # 4d: 4c02 + bgeu a2, a3, .Lbr002 # 4f: 37b218 + mov a3, a6 /* (local10) */ # 52: 3d06 + movi a2, 1 /* 0x00000001 */ # 54: 0c12 + mov a5, sp /* (FP)-0xe0 */ # 56: 5d01 + mov a4, a0 /* (local11) */ # 58: 4d00 + call0 sha1_vector # 5a: 01e9ffc0 + # 5e: 0000 + bnez a2, .Lbr006 # 60: 56f207 + s32i sp, sp, 192 /* (FP)-0xe0 -> [(local10)] */ # 63: 126130 + movi a6, 20 /* 0x00000014 */ # 66: 1c46 + s32i a6, sp, 196 /* 0x00000014 -> [(local11)] */ # 68: 626131 +.Lbr002: addi a2, sp, 32 /* (FP)-0xc0 */ # 6b: 22c120 + movi a3, 0 /* 0x00000000 */ # 6e: 0c03 + movi a4, 64 /* 0x00000040 */ # 70: 4c04 + call0 memset # 72: 01e4ffc0 + # 76: 0000 + l32i a3, sp, 192 /* [(local10)] */ # 78: 322130 + l32i a4, sp, 196 /* [(local11)] */ # 7b: 422131 + addi a2, sp, 32 /* (FP)-0xc0 */ # 7e: 22c120 + s32i a14, sp, 180 /* arg2 -> [(local9)] */ # 81: e2612d + call0 memcpy # 84: 01e1ffc0 + # 88: 0000 + l32i a4, sp, 180 /* [(local9)] */ # 8a: 42212d + addi a0, sp, 32 /* (FP)-0xc0 */ # 8d: 02c120 + addi a14, sp, 96 /* (local0) */ # 90: e2c160 + movi a2, 54 /* 0x00000036 */ # 93: 3c62 + movi a6, 64 /* 0x00000040 */ # 95: 4c06 + s32i a6, sp, 128 /* 0x00000040 -> [(local2)] */ # 97: 626120 + addi a6, sp, 32 /* (FP)-0xc0 */ # 9a: 62c120 + s32i a6, sp, 96 /* (FP)-0xc0 -> [(local0)] */ # 9d: 626118 +.Lbr003: l8ui a5, a0, 0 # a0: 520000 + xor a5, a5, a2 # a3: 205530 + s8i a5, a0, 0 # a6: 524000 + addi a0, a0, 1 # a9: 1b00 + bne a0, a14, .Lbr003 # ab: e790f1 + beqz a4, .Lbr005 # ae: 9cc4 + addi a2, sp, 96 /* (local0) */ # b0: 22c160 + addx4 a3, a4, a12 # b3: c034a0 + addi a0, sp, 127 /* (FP)-0x61 */ # b6: 02c17f + addi a0, a0, 1 /* (local2) */ # b9: 1b00 +.Lbr004: l32i a5, a13, 0 # bb: 580d + l32i a6, a12, 0 # bd: 680c + addi a13, a13, 4 # bf: 4bdd + addi a12, a12, 4 # c1: 4bcc + s32i a6, a2, 4 # c3: 6912 + s32i a5, a0, 4 # c5: 5910 + addi a2, a2, 4 # c7: 4b22 + addi a0, a0, 4 # c9: 4b00 + bne a12, a3, .Lbr004 # cb: 379cec +.Lbr005: addi a3, sp, 96 /* (local0) */ # ce: 32c160 + addi a2, a4, 1 /* [(local9)]+0x1 */ # d1: 1b24 + l32i a5, sp, 160 /* [(local4)] */ # d3: 522128 + addi a4, sp, 127 /* (FP)-0x61 */ # d6: 42c17f + addi a4, a4, 1 /* (local2) */ # d9: 1b44 + call0 sha1_vector # db: 01ccffc0 + # df: 0000 + beqz a2, .Lbr007 # e1: 8c32 +.Lbr006: movi a2, -1 /* 0xffffffff */ # e3: 7cf2 + j .Lbr009 # e5: 061500 +.Lbr007: addi a2, sp, 32 /* (FP)-0xc0 */ # e8: 22c120 + movi a3, 0 /* 0x00000000 */ # eb: 0c03 + movi a4, 64 /* 0x00000040 */ # ed: 4c04 + call0 memset # ef: 01c8ffc0 + # f3: 0000 + l32i a3, sp, 192 /* [(local10)] */ # f5: 322130 + l32i a4, sp, 196 /* [(local11)] */ # f8: 422131 + addi a2, sp, 32 /* (FP)-0xc0 */ # fb: 22c120 + call0 memcpy # fe: 01c5ffc0 + # 102: 0000 + addi a0, sp, 32 /* (FP)-0xc0 */ # 104: 02c120 + movi a2, 92 /* 0x0000005c */ # 107: 5cc2 +.Lbr008: l8ui a5, a0, 0 # 109: 520000 + xor a5, a5, a2 # 10c: 205530 + s8i a5, a0, 0 # 10f: 524000 + addi a0, a0, 1 # 112: 1b00 + bne a0, a14, .Lbr008 # 114: e790f1 + movi a2, 2 /* 0x00000002 */ # 117: 0c22 + addi a3, sp, 96 /* (local0) */ # 119: 32c160 + addi a4, sp, 127 /* (FP)-0x61 */ # 11c: 42c17f + movi a6, 20 /* 0x00000014 */ # 11f: 1c46 + l32i a5, sp, 160 /* [(local4)] */ # 121: 522128 + movi a7, 64 /* 0x00000040 */ # 124: 4c07 + addi a8, sp, 32 /* (FP)-0xc0 */ # 126: 82c120 + s32i a8, sp, 96 /* (FP)-0xc0 -> [(local0)] */ # 129: 826118 + s32i a7, sp, 128 /* 0x00000040 -> [(local2)] */ # 12c: 726120 + s32i a5, sp, 100 /* [(local4)] -> [(local1)] */ # 12f: 526119 + s32i a6, sp, 132 /* 0x00000014 -> [(local3)] */ # 132: 626121 + addi a4, a4, 1 /* (local2) */ # 135: 1b44 + call0 sha1_vector # 137: 01b8ffc0 + # 13b: 0000 +.Lbr009: l32i a12, sp, 168 /* [(local6)] */ # 13d: c2212a + l32i a13, sp, 172 /* [(local7)] */ # 140: d2212b + l32i a14, sp, 176 /* [(local8)] */ # 143: e2212c + movi a3, 224 /* 0x000000e0 */ # 146: 32a0e0 + l32i a0, sp, 164 /* [(local5)] */ # 149: 022129 + add sp, sp, a3 /* (top of frame) */ # 14c: 3a11 + ret # 14e: 0df0 + +# Function @ .irom0.text+0x150 +# Local variables/stack: +# (local0): word[6] @ -0x30 +# (local1): word @ -0x18 +# (local2): word[5] @ -0x14 + .balign 4 + .global hmac_sha1 + .type hmac_sha1, @function +hmac_sha1: mov a7, a6 /* arg4 */ # 150: 7d06 + mov a9, a5 /* arg3 */ # 152: 9d05 + addi sp, sp, -48 /* (local0) */ # 154: 12c1d0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 157: 0901 + s32i a4, sp, 24 /* arg2 -> [(local1)] */ # 159: 4961 + addi a5, sp, 24 /* (local1) */ # 15b: 52c118 + addi a6, sp, 28 /* (local2) */ # 15e: 62c11c + s32i a9, sp, 28 /* arg3 -> [(local2)] */ # 161: 9971 + movi a4, 1 /* 0x00000001 */ # 163: 0c14 + call0 hmac_sha1_vector # 165: 050000 + l32i a0, sp, 0 /* [(local0)] */ # 168: 0801 + addi sp, sp, 48 /* (top of frame) */ # 16a: 12c130 + ret # 16d: 0df0 + + .literal_position # 170: 00000000 + # 174: 00000000 + +# Function @ .irom0.text+0x178 +# Local variables/stack: +# (local0): byte[16] @ -0x80 +# (local1): word @ -0x70 +# (local2): word @ -0x6c +# (local3): word[2] @ -0x68 +# (local4): word @ -0x60 +# (local5): word @ -0x5c +# (local6): word[10] @ -0x58 +# (local7): word @ -0x30 +# (local8): word @ -0x2c +# (local9): word @ -0x28 +# (local10): word @ -0x24 +# (local11): word @ -0x20 +# (local12): word @ -0x1c +# (local13): word @ -0x18 +# (local14): word @ -0x14 +# (local15): word[4] @ -0x10 + .balign 4 + .global sha1_prf + .type sha1_prf, @function +sha1_prf: addi sp, sp, -128 /* (local0) */ # 178: 12c180 + s32i a5, sp, 88 /* arg3 -> [(local9)] */ # 17b: 526116 + s32i a7, sp, 84 /* arg5 -> [(local8)] */ # 17e: 726115 + s32i a15, sp, 108 /* a15 -> [(local14)] */ # 181: f2611b + s32i a0, sp, 92 /* a0 -> [(local10)] */ # 184: 026117 + s32i a12, sp, 96 /* a12 -> [(local11)] */ # 187: c26118 + s32i a2, sp, 112 /* arg0 -> [(local15)] */ # 18a: 22611c + s32i a13, sp, 100 /* a13 -> [(local12)] */ # 18d: d26119 + s32i a14, sp, 104 /* a14 -> [(local13)] */ # 190: e2611a + mov a13, a6 /* arg4 */ # 193: dd06 + mov a14, a3 /* arg1 */ # 195: ed03 + mov a2, a4 /* arg2 */ # 197: 2d04 + mov a12, a4 /* arg2 */ # 199: cd04 + movi a0, 0 /* 0x00000000 */ # 19b: 0c00 + l32i a15, sp, 112 /* [(local15)] */ # 19d: f2211c + s8i a0, sp, 0 /* 0x00 -> [(local0)] */ # 1a0: 024100 + call0 strlen # 1a3: 01f3ffc0 + # 1a7: 0000 + s32i sp, sp, 24 /* (local0) -> [(local3)] */ # 1a9: 1961 + s32i a12, sp, 16 /* arg2 -> [(local1)] */ # 1ab: c941 + s32i a13, sp, 36 /* arg4 -> [(local5)] */ # 1ad: d991 + addi a2, a2, 1 # 1af: 1b22 + l32i a3, sp, 88 /* [(local9)] */ # 1b1: 322116 + s32i a3, sp, 20 /* [(local9)] -> [(local2)] */ # 1b4: 3951 + s32i a2, sp, 32 /* a2 -> [(local4)] */ # 1b6: 2981 + l32i a13, sp, 128 /* [(local16)] */ # 1b8: d22120 + movi a2, 1 /* 0x00000001 */ # 1bb: 0c12 + s32i a2, sp, 40 /* 0x00000001 -> [(local6)] */ # 1bd: 29a1 + beqz a13, .Lbr014 # 1bf: 16fd05 + movi a0, 19 /* 0x00000013 */ # 1c2: 1c30 + movi a12, 0 /* 0x00000000 */ # 1c4: 0c0c +.Lbr010: sub a4, a13, a12 # 1c6: c04dc0 + s32i a4, sp, 80 /* a4 -> [(local7)] */ # 1c9: 426114 + bgeu a0, a4, .Lbr011 # 1cc: 47b028 + mov a2, a15 /* [(local15)] */ # 1cf: 2d0f + mov a3, a14 /* arg1 */ # 1d1: 3d0e + movi a4, 3 /* 0x00000003 */ # 1d3: 0c34 + addi a5, sp, 16 /* (local1) */ # 1d5: 52c110 + l32i a7, sp, 84 /* [(local8)] */ # 1d8: 722115 + addi a6, sp, 32 /* (local4) */ # 1db: 62c120 + add a7, a7, a12 # 1de: ca77 + call0 hmac_sha1_vector # 1e0: 050000 + bnez a2, .Lbr012 # 1e3: ec52 + movi a0, 19 /* 0x00000013 */ # 1e5: 1c30 + l8ui a8, sp, 0 /* [(local0)] */ # 1e7: 820100 + addi a12, a12, 20 # 1ea: c2cc14 + addi a8, a8, 1 /* [(local0)]+0x1 */ # 1ed: 1b88 + s8i a8, sp, 0 /* [(local0)]+0x1 -> [(local0)] */ # 1ef: 824100 + bltu a12, a13, .Lbr010 # 1f2: d73cd0 + j .Lbr014 # 1f5: 460a00 +.Lbr011: mov a3, a14 /* arg1 */ # 1f8: 3d0e + mov a2, a15 /* [(local15)] */ # 1fa: 2d0f + movi a4, 3 /* 0x00000003 */ # 1fc: 0c34 + addi a5, sp, 16 /* (local1) */ # 1fe: 52c110 + addi a6, sp, 32 /* (local4) */ # 201: 62c120 + addi a7, sp, 48 /* (FP)-0x50 */ # 204: 72c130 + call0 hmac_sha1_vector # 207: 050000 + beqz a2, .Lbr013 # 20a: 8c32 +.Lbr012: movi a2, -1 /* 0xffffffff */ # 20c: 7cf2 + j .Lbr015 # 20e: 860400 +.Lbr013: addi a3, sp, 48 /* (FP)-0x50 */ # 211: 32c130 + l32i a2, sp, 84 /* [(local8)] */ # 214: 222115 + l32i a4, sp, 80 /* [(local7)] */ # 217: 422114 + add a2, a2, a12 # 21a: ca22 + call0 memcpy # 21c: 01d6ffc0 + # 220: 0000 +.Lbr014: movi a2, 0 /* 0x00000000 */ # 222: 0c02 +.Lbr015: l32i a12, sp, 96 /* [(local11)] */ # 224: c22118 + l32i a13, sp, 100 /* [(local12)] */ # 227: d22119 + l32i a14, sp, 104 /* [(local13)] */ # 22a: e2211a + l32i a15, sp, 108 /* [(local14)] */ # 22d: f2211b + movi a3, 128 /* 0x00000080 */ # 230: 32a080 + l32i a0, sp, 92 /* [(local10)] */ # 233: 022117 + add sp, sp, a3 /* (local16) */ # 236: 3a11 + ret # 238: 0df0 diff --git a/binary_sdk/libwpa_stage1/sta_info.S b/binary_sdk/libwpa_stage1/sta_info.S new file mode 100644 index 0000000..e69de29 diff --git a/binary_sdk/libwpa_stage1/wpa.S b/binary_sdk/libwpa_stage1/wpa.S new file mode 100644 index 0000000..21a1dc7 --- /dev/null +++ b/binary_sdk/libwpa_stage1/wpa.S @@ -0,0 +1,2695 @@ + + .section .bss, "aw", @nobits + +.Ldata001: .space 32 +.Ldata002: .word 0x00000000 # 20: 00000000 + +# NOTE: 172 non-alignment zero bytes skipped. + + .skip 172 +.Label001: .space 40 +.Ldata003: .word 0x00000000 # f8: 00000000 +.Label002: .space 8 +.Ldata004: .word 0x00000000 # 104: 00000000 + +# NOTE: 12 non-alignment zero bytes skipped. + + .skip 12 +.Ldata005: .word 0x00000000 # 114: 00000000 +.Ldata006: .word 0x00000000 # 118: 00000000 +.Ldata007: .word 0x00000000 # 11c: 00000000 + +# NOTE: 8 non-alignment zero bytes skipped. + + .skip 8 +.Ldata008: .word 0x00000000 # 128: 00000000 +.Label003: .space 28 +.Ldata009: .word 0x00000000 # 148: 00000000 +.Ldata010: .word 0x00000000 # 14c: 00000000 +.Ldata011: .byte 0x00 + .balign 4 +.Ldata012: .word 0x00000000 # 154: 00000000 +.Label004: .space 6 +.Label005: .space 6 +.Ldata013: .word 0x00000000 # 164: 00000000 +.Ldata014: .word 0x00000000 # 168: 00000000 + +# NOTE: 16 non-alignment zero bytes skipped. + + .skip 16 +.Ldata015: .word 0x00000000 # 17c: 00000000 + +# NOTE: 68 non-alignment zero bytes skipped. + + .skip 68 +.Ldata016: .word 0x00000000 # 1c4: 00000000 + +# NOTE: 68 non-alignment zero bytes skipped. + + .skip 68 +.Ldata017: .word 0x00000000 # 20c: 00000000 + +# NOTE: 4 non-alignment zero bytes skipped. + + .skip 4 +.Ldata018: .word 0x00000000 # 214: 00000000 +.Ldata019: .word 0x00000000 # 218: 00000000 +.Ldata020: .word 0x00000000 # 21c: 00000000 +.Ldata021: .word 0x00000000 # 220: 00000000 +.Ldata022: .word 0x00000000 # 224: 00000000 + +# NOTE: 56 non-alignment zero bytes skipped. + + .skip 56 +.Ldata023: .space 26 + + .section .irom0.text, "ax", @progbits + +# Function @ .irom0.text+0x0 + .balign 4 + .literal_position +.Lfunc001: ret /* arg0 */ # 0: 0df0 + + .literal_position # 4: 00000000 + # 8: 00000000 + # c: 00000000 + # 10: 00000000 + # 14: 00000000 + # 18: 00000000 + # 1c: 00000000 + +# Function @ .irom0.text+0x20 +# Local variables/stack: +# (local0): hword[2] @ -0x24 +# (local1): word @ -0x20 +# (local2): word @ -0x1c +# (local3): word @ -0x18 +# (local4): word @ -0x14 +# (local5): word @ -0x10 +# (local6): word @ -0xc +# (local7): word @ -0x8 +# (local8): word @ -0x4 + .balign 4 +.Lfunc002: addi sp, sp, -48 /* (FP)-0x30 */ # 20: 12c1d0 + s32i a14, sp, 44 /* a14 -> [(local8)] */ # 23: e9b1 + s32i a6, sp, 28 /* arg4 -> [(local4)] */ # 25: 6971 + s32i a4, sp, 20 /* arg2 -> [(local2)] */ # 27: 4951 + s32i a0, sp, 32 /* a0 -> [(local5)] */ # 29: 0981 + s32i a12, sp, 36 /* a12 -> [(local6)] */ # 2b: c991 + s32i a13, sp, 40 /* a13 -> [(local7)] */ # 2d: d9a1 + mov a12, a2 /* arg0 */ # 2f: cd02 + mov a13, a5 /* arg3 */ # 31: dd05 + l8ui a8, a13, 1 /* [arg3+0x1] */ # 33: 820d01 + l8ui a9, a13, 3 /* [arg3+0x3] */ # 36: 920d03 + l8ui a10, a13, 5 /* [arg3+0x5] */ # 39: a20d05 + l8ui a0, a13, 4 /* [arg3+0x4] */ # 3c: 020d04 + mov a5, a7 /* arg5 */ # 3f: 5d07 + mov a2, a3 /* arg1 */ # 41: 2d03 + s32i a2, sp, 24 /* arg1 -> [(local3)] */ # 43: 2961 + s32i a5, sp, 16 /* arg5 -> [(local1)] */ # 45: 5941 + l8ui a3, a13, 0 /* [arg3] */ # 47: 320d00 + l8ui a7, a13, 2 /* [arg3+0x2] */ # 4a: 720d02 + or a0, a0, a10 # 4d: a00020 + or a7, a7, a9 # 50: 907720 + or a3, a3, a8 # 53: 803320 + or a3, a3, a7 # 56: 703320 + or a0, a0, a3 # 59: 300020 + extui a0, a0, 0, 8 # 5c: 000074 + bnez a0, .Lbr001 # 5f: fca0 + movi a0, 227 /* 0x000000e3 */ # 61: 02a0e3 + add a0, a12, a0 /* arg0+0xe3 */ # 64: 0a0c + l8ui a2, a0, 124 /* [arg0+0x15f] */ # 66: 22007c + l8ui a14, a0, 123 /* [arg0+0x15e] */ # 69: e2007b + l8ui a4, a0, 128 /* [arg0+0x163] */ # 6c: 420080 + l8ui a11, a0, 127 /* [arg0+0x162] */ # 6f: b2007f + l8ui a3, a0, 126 /* [arg0+0x161] */ # 72: 32007e + or a11, a11, a4 # 75: 40bb20 + l8ui a0, a0, 125 /* [arg0+0x160] */ # 78: 02007d + or a14, a14, a2 # 7b: 20ee20 + or a0, a0, a3 # 7e: 300020 + or a14, a14, a0 # 81: 00ee20 + or a11, a11, a14 # 84: e0bb20 + extui a11, a11, 0, 8 # 87: b0b074 + bnez a11, .Lbr001 # 8a: ccfb + movi a4, 6 /* 0x00000006 */ # 8c: 0c64 + movi a13, 350 /* 0x0000015e */ # 8e: d2a15e + add a13, a12, a13 /* arg0+0x15e */ # 91: dadc + mov a2, a13 /* arg0+0x15e */ # 93: 2d0d + mov a3, a13 /* arg0+0x15e */ # 95: 3d0d + call0 memcpy # 97: 01dbffc0 + # 9b: 0000 +.Lbr001: l32i a6, sp, 52 /* [(FP)+0x4] */ # 9d: 68d1 + l32i a14, sp, 48 /* [(local9)] */ # 9f: e8c1 + beqz a6, .Lbr002 # a1: 8cf6 + l32i a2, sp, 24 /* [(local3)] */ # a3: 2861 + l32i a3, sp, 20 /* [(local2)] */ # a5: 3851 + l32i a4, sp, 16 /* [(local1)] */ # a7: 4841 + mov a5, a14 /* [(local9)] */ # a9: 5d0e + call0 wpa_eapol_key_mic # ab: 01d7ffc0 + # af: 0000 + bnez a2, .Lbr003 # b1: 564206 +.Lbr002: mov a2, sp /* (FP)-0x30 */ # b4: 2d01 + movi a3, 0 /* 0x00000000 */ # b6: 0c03 + movi a4, 14 /* 0x0000000e */ # b8: 0ce4 + call0 memset # ba: 01d4ffc0 + # be: 0000 + mov a3, a13 # c0: 3d0d + mov a2, sp /* (FP)-0x30 */ # c2: 2d01 + movi a4, 6 /* 0x00000006 */ # c4: 0c64 + call0 memcpy # c6: 01d2ffc0 + # ca: 0000 + addi a2, sp, 6 /* (FP)-0x2a */ # cc: 6b21 + movi a4, 6 /* 0x00000006 */ # ce: 0c64 + movi a3, 344 /* 0x00000158 */ # d0: 32a158 + add a3, a12, a3 /* arg0+0x158 */ # d3: 3a3c + call0 memcpy # d5: 01cfffc0 + # d9: 0000 + addi a4, a14, 14 /* [(local9)]+0xe */ # db: eb4e + l32i a7, sp, 28 /* [(local4)] */ # dd: 7871 + l32i a5, a12, 0x210 /* [arg0+0x210] */ # df: 522c84 + extui a6, a7, 8, 8 # e2: 706874 + l32i a13, a5, 4 /* [[arg0+0x210]+0x4] */ # e5: d815 + extui a7, a7, 0, 8 # e7: 707074 + slli a7, a7, 8 # ea: 807711 + or a6, a6, a7 # ed: 706620 + s16i a6, sp, 12 /* a6 -> [(local0)] */ # f0: 625106 + s16i a4, a5, 10 /* [(local9)]+0xe -> [[arg0+0x210]+0xa] */ # f3: 425505 + beqz a13, .Lbr003 # f6: 9cfd + mov a2, a13 /* [[arg0+0x210]+0x4] */ # f8: 2d0d + mov a3, sp /* (FP)-0x30 */ # fa: 3d01 + movi a4, 14 /* 0x0000000e */ # fc: 0ce4 + call0 memcpy # fe: 01c6ffc0 + # 102: 0000 + mov a4, a14 /* [(local9)] */ # 104: 4d0e + addi a2, a13, 14 /* [[arg0+0x210]+0x4]+0xe */ # 106: eb2d + l32i a3, sp, 16 /* [(local1)] */ # 108: 3841 + call0 memcpy # 10a: 01c4ffc0 + # 10e: 0000 + l32i a0, a12, 0x214 /* [arg0+0x214] */ # 110: 022c85 + l32i a2, a12, 0x210 /* [arg0+0x210] */ # 113: 222c84 + callx0 a0 /* [arg0+0x214] */ # 116: c00000 +.Lbr003: l32i a12, sp, 36 /* [(local6)] */ # 119: c891 + l32i a13, sp, 40 /* [(local7)] */ # 11b: d8a1 + l32i a14, sp, 44 /* [(local8)] */ # 11d: e8b1 + l32i a0, sp, 32 /* [(local5)] */ # 11f: 0881 + addi sp, sp, 48 /* (local9) */ # 121: 12c130 + ret # 124: 0df0 + + .literal_position # 128: 00080000 + # 12c: 8e880000 + # 130: 00000000 + # 134: 00000000 + # 138: 00000000 + # 13c: 00000000 + +# Function @ .irom0.text+0x140 +# Local variables/stack: +# (local0): word @ -0x40 +# (local1): word[5] @ -0x3c +# (local2): word @ -0x28 +# (local3): word @ -0x24 +# (local4): word @ -0x20 +# (local5): word @ -0x1c +# (local6): word @ -0x18 +# (local7): word @ -0x14 +# (local8): word @ -0x10 +# (local9): word @ -0xc +# (local10): word @ -0x8 +# (local11): word @ -0x4 + .balign 4 +.Lfunc003: movi a6, 1 /* 0x00000001 */ # 140: 0c16 + addi sp, sp, -64 /* (local0) */ # 142: 12c1c0 + s32i a13, sp, 60 /* a13 -> [(local11)] */ # 145: d9f1 + s32i a3, sp, 44 /* arg1 -> [(local7)] */ # 147: 39b1 + s32i a4, sp, 40 /* arg2 -> [(local6)] */ # 149: 49a1 + l32i a7, a2, 0x11c /* [arg0+0x11c] */ # 14b: 722247 + s32i a12, sp, 56 /* a12 -> [(local10)] */ # 14e: c9e1 + s32i a0, sp, 52 /* a0 -> [(local9)] */ # 150: 09d1 + mov a12, a2 /* arg0 */ # 152: cd02 + movi a0, 2 /* 0x00000002 */ # 154: 0c20 + beqi a7, 64, .Lbr004 # 156: 26d704 + beqi a7, 32, .Lbr004 # 159: 26c701 + movi a6, 0 /* 0x00000000 */ # 15c: 0c06 +.Lbr004: bnez a6, .Lbr006 # 15e: dc86 + movi a2, 1 /* 0x00000001 */ # 160: 0c12 + beqi a7, 0x100, .Lbr005 # 162: 26f704 + beqi a7, 128, .Lbr005 # 165: 26e701 + movi a2, 0 /* 0x00000000 */ # 168: 0c02 +.Lbr005: bnez a2, .Lbr006 # 16a: ccc2 + l32i a2, a12, 0x114 /* [arg0+0x114] */ # 16c: 222c45 + movi a13, 1 /* 0x00000001 */ # 16f: 0c1d + addi a2, a2, -8 /* [arg0+0x114]-0x8 */ # 171: 22c2f8 + moveqz a13, a0, a2 # 174: 20d083 + j .Lbr007 # 177: 460000 +.Lbr006: movi a13, 3 /* 0x00000003 */ # 17a: 0c3d +.Lbr007: addi a2, sp, 16 /* (FP)-0x30 */ # 17c: 22c110 + movi a4, 6 /* 0x00000006 */ # 17f: 0c64 + movi a3, 350 /* 0x0000015e */ # 181: 32a15e + add a3, a12, a3 /* arg0+0x15e */ # 184: 3a3c + call0 memcpy # 186: 01eaffc0 + # 18a: 0000 + mov a2, a12 /* arg0 */ # 18c: 2d0c + movi a3, 3 /* 0x00000003 */ # 18e: 0c33 + movi a4, 0 /* 0x00000000 */ # 190: 0c04 + movi a5, 95 /* 0x0000005f */ # 192: 5cf5 + addi a6, sp, 24 /* (local2) */ # 194: 62c118 + addi a7, sp, 28 /* (local3) */ # 197: 72c11c + call0 wpa_sm_alloc_eapol # 19a: 01e6ffc0 + # 19e: 0000 + s32i a2, sp, 48 /* a2 -> [(local8)] */ # 1a0: 29c1 + beqz a2, .Lbr010 # 1a2: 16220a + l32i a2, sp, 40 /* [(local6)] */ # 1a5: 28a1 + movi a3, 1536 /* 0x00000600 */ # 1a7: 32a600 + l32i a10, sp, 28 /* [(local3)] */ # 1aa: a871 + movi a11, 2 /* 0x00000002 */ # 1ac: 0c2b + movi a9, 254 /* 0x000000fe */ # 1ae: 92a0fe + movi a4, 256 /* 0x00000100 */ # 1b1: 42a100 + l32i a0, a12, 0x164 /* [arg0+0x164] */ # 1b4: 022c59 + movi a8, 0x00000800 # 1b7: 81dcff + addi a0, a0, -2 /* [arg0+0x164]-0x2 */ # 1ba: 02c0fe + or a8, a13, a8 # 1bd: 808d20 + or a4, a8, a4 # 1c0: 404820 + moveqz a9, a11, a0 # 1c3: 009b83 + s8i a9, a10, 0 /* a9 -> [[(local3)]] */ # 1c6: 924a00 + l32i a5, a12, 176 /* [arg0+0xb0] */ # 1c9: 522c2c + l32i a11, sp, 28 /* [(local3)] */ # 1cc: b871 + movnez a8, a4, a5 # 1ce: 508493 + l32i a4, sp, 44 /* [(local7)] */ # 1d1: 48b1 + or a3, a8, a3 # 1d3: 303820 + movi a5, 0 /* 0x00000000 */ # 1d6: 0c05 + movnez a8, a3, a4 # 1d8: 408393 + movi a4, 8 /* 0x00000008 */ # 1db: 0c84 + or a0, a8, a4 # 1dd: 400820 + movnez a8, a0, a2 # 1e0: 208093 + srli a10, a8, 8 # 1e3: 80a841 + s8i a10, a11, 1 /* a10 -> [[(local3)]+0x1] */ # 1e6: a24b01 + l32i a9, sp, 28 /* [(local3)] */ # 1e9: 9871 + movi a3, 264 /* 0x00000108 */ # 1eb: 32a108 + s8i a8, a9, 2 /* a8 -> [[(local3)]+0x2] */ # 1ee: 824902 + l32i a7, sp, 28 /* [(local3)] */ # 1f1: 7871 + add a3, a12, a3 /* arg0+0x108 */ # 1f3: 3a3c + s8i a5, a7, 3 /* 0x00 -> [[(local3)]+0x3] */ # 1f5: 524703 + l32i a6, sp, 28 /* [(local3)] */ # 1f8: 6871 + s32i a3, sp, 36 /* arg0+0x108 -> [(local5)] */ # 1fa: 3991 + s8i a5, a6, 4 /* 0x00 -> [[(local3)]+0x4] */ # 1fc: 524604 + l32i a2, sp, 28 /* [(local3)] */ # 1ff: 2871 + s32i a8, sp, 32 /* a8 -> [(local4)] */ # 201: 8981 + addi a2, a2, 5 /* [(local3)]+0x5 */ # 203: 5b22 + call0 memcpy # 205: 01ccffc0 + # 209: 0000 + l32i a2, sp, 36 /* [(local5)] */ # 20b: 2891 + movi a3, 8 /* 0x00000008 */ # 20d: 0c83 + call0 inc_byte_array # 20f: 01cbffc0 + # 213: 0000 + l32i a5, sp, 28 /* [(local3)] */ # 215: 5871 + movi a3, 0 /* 0x00000000 */ # 217: 0c03 + s8i a3, a5, 93 /* 0x00 -> [[(local3)]+0x5d] */ # 219: 32455d + l32i a4, sp, 28 /* [(local3)] */ # 21c: 4871 + l32i a2, sp, 32 /* [(local4)] */ # 21e: 2881 + s8i a3, a4, 94 /* 0x00 -> [[(local3)]+0x5e] */ # 220: 32445e + bbci a2, 8, .Lbr008 # 223: 876207 + l32i a0, sp, 28 /* [(local3)] */ # 226: 0871 + addi a0, a0, 77 /* [(local3)]+0x4d */ # 228: 02c04d + j .Lbr009 # 22b: 460000 +.Lbr008: movi a0, 0 /* 0x00000000 */ # 22e: 0c00 +.Lbr009: mov a4, a13 # 230: 4d0d + addi a3, a12, 48 /* arg0+0x30 */ # 232: 32cc30 + l32i a7, sp, 48 /* [(local8)] */ # 235: 78c1 + addi a5, sp, 16 /* (FP)-0x30 */ # 237: 52c110 + movi a6, 0x0000888e # 23a: 61bcff + l32i a2, sp, 24 /* [(local2)] */ # 23d: 2861 + s32i a2, sp, 0 /* [(local2)] -> [(local0)] */ # 23f: 2901 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 241: 0911 + mov a2, a12 /* arg0 */ # 243: 2d0c + call0 .Lfunc002 # 245: 85ddff +.Lbr010: l32i a12, sp, 56 /* [(local10)] */ # 248: c8e1 + l32i a13, sp, 60 /* [(local11)] */ # 24a: d8f1 + l32i a0, sp, 52 /* [(local9)] */ # 24c: 08d1 + addi sp, sp, 64 /* (top of frame) */ # 24e: 12c140 + ret # 251: 0df0 + + .balign 4 +# Function @ .irom0.text+0x254 + .balign 4 +.Lfunc004: movi a3, 1 /* 0x00000001 */ # 254: 0c13 + l32i a4, a2, 32 /* [arg0+0x20] */ # 256: 4882 + movi a2, 0 /* 0x00000000 */ # 258: 0c02 + moveqz a2, a3, a4 # 25a: 402383 + ret # 25d: 0df0 + + .literal_position # 260: 8e880000 + # 264: 00000000 + # 268: 00000000 + # 26c: 00000000 + # 270: 00000000 + # 274: 00000000 + +# Function @ .irom0.text+0x278 +# Local variables/stack: +# (local0): word @ -0x40 +# (local1): word[3] @ -0x3c +# (local2): word @ -0x30 +# (local3): word @ -0x2c +# (local4): word @ -0x28 +# (local5): word @ -0x24 +# (local6): word @ -0x20 +# (local7): word @ -0x1c +# (local8): word @ -0x18 +# (local9): word @ -0x14 +# (local10): word @ -0x10 +# (local11): word @ -0xc +# (local12): word[2] @ -0x8 + .balign 4 +.Lfunc005: addi sp, sp, -64 /* (local0) */ # 278: 12c1c0 + s32i a0, sp, 44 /* a0 -> [(local9)] */ # 27b: 09b1 + s32i a3, sp, 40 /* arg1 -> [(local8)] */ # 27d: 39a1 + s32i a6, sp, 36 /* arg4 -> [(local7)] */ # 27f: 6991 + s32i a13, sp, 52 /* a13 -> [(local11)] */ # 281: d9d1 + s32i a14, sp, 56 /* a14 -> [(local12)] */ # 283: e9e1 + s32i a12, sp, 48 /* a12 -> [(local10)] */ # 285: c9c1 + mov a14, a5 /* arg3 */ # 287: ed05 + mov a12, a2 /* arg0 */ # 289: cd02 + mov a13, a7 /* arg5 */ # 28b: dd07 + mov a2, a4 /* arg2 */ # 28d: 2d04 + s32i a2, sp, 32 /* arg2 -> [(local6)] */ # 28f: 2981 + beqz a7, .Lbr011 # 291: ac07 + mov a2, a12 /* arg0 */ # 293: 2d0c + movi a3, 3 /* 0x00000003 */ # 295: 0c33 + movi a4, 0 /* 0x00000000 */ # 297: 0c04 + addi a6, sp, 16 /* (local2) */ # 299: 62c110 + addi a7, sp, 20 /* (local3) */ # 29c: 72c114 + l32i a5, sp, 64 /* [(local13)] */ # 29f: 522110 + s32i a5, sp, 28 /* [(local13)] -> [(local5)] */ # 2a2: 5971 + addi a5, a5, 95 /* [(local13)]+0x5f */ # 2a4: 52c55f + extui a5, a5, 0, 16 # 2a7: 5050f4 + call0 wpa_sm_alloc_eapol # 2aa: 01eeffc0 + # 2ae: 0000 + mov a0, a2 # 2b0: 0d02 + bnez a2, .Lbr015 # 2b2: 567207 +.Lbr011: movi a2, -1 /* 0xffffffff */ # 2b5: 7cf2 + j .Lbr014 # 2b7: 461900 +.Lbr012: addi a2, a9, 3 /* [(local3)]+0x3 */ # 2ba: 3b29 + l32i a3, sp, 32 /* [(local6)] */ # 2bc: 3881 + movi a4, 2 /* 0x00000002 */ # 2be: 0c24 + addi a3, a3, 3 /* [(local6)]+0x3 */ # 2c0: 3b33 + call0 memcpy # 2c2: 01e9ffc0 + # 2c6: 0000 +.Lbr013: movi a4, 8 /* 0x00000008 */ # 2c8: 0c84 + l32i a3, sp, 32 /* [(local6)] */ # 2ca: 3881 + l32i a2, sp, 20 /* [(local3)] */ # 2cc: 2851 + addi a3, a3, 5 /* [(local6)]+0x5 */ # 2ce: 5b33 + addi a2, a2, 5 /* [(local3)]+0x5 */ # 2d0: 5b22 + call0 memcpy # 2d2: 01e6ffc0 + # 2d6: 0000 + l32i a4, sp, 28 /* [(local5)] */ # 2d8: 4871 + l32i a6, sp, 20 /* [(local3)] */ # 2da: 6851 + srli a5, a4, 8 # 2dc: 405841 + s8i a5, a6, 93 /* a5 -> [[(local3)]+0x5d] */ # 2df: 52465d + l32i a3, sp, 20 /* [(local3)] */ # 2e2: 3851 + s8i a4, a3, 94 /* [(local5)] -> [[(local3)]+0x5e] */ # 2e4: 42435e + l32i a2, sp, 20 /* [(local3)] */ # 2e7: 2851 + mov a3, a13 /* arg5 */ # 2e9: 3d0d + addi a2, a2, 95 /* [(local3)]+0x5f */ # 2eb: 22c25f + call0 memcpy # 2ee: 01e0ffc0 + # 2f2: 0000 + l32i a3, sp, 36 /* [(local7)] */ # 2f4: 3891 + l32i a2, sp, 20 /* [(local3)] */ # 2f6: 2851 + movi a4, 32 /* 0x00000020 */ # 2f8: 2c04 + addi a2, a2, 13 /* [(local3)]+0xd */ # 2fa: db22 + call0 memcpy # 2fc: 01deffc0 + # 300: 0000 + mov a4, a14 /* arg3 */ # 302: 4d0e + mov a2, a12 /* arg0 */ # 304: 2d0c + l32i a5, sp, 40 /* [(local8)] */ # 306: 58a1 + l32i a7, sp, 24 /* [(local4)] */ # 308: 7861 + l32i a3, sp, 68 /* [(FP)+0x4] */ # 30a: 322111 + l32i a9, sp, 16 /* [(local2)] */ # 30d: 9841 + s32i a9, sp, 0 /* [(local2)] -> [(local0)] */ # 30f: 9901 + l32i a8, sp, 20 /* [(local3)] */ # 311: 8851 + movi a6, 0x0000888e # 313: 61d3ff + addi a8, a8, 77 /* [(local3)]+0x4d */ # 316: 82c84d + s32i a8, sp, 4 /* [(local3)]+0x4d -> [(local1)] */ # 319: 8911 + call0 .Lfunc002 # 31b: 45d0ff + movi a2, 0 /* 0x00000000 */ # 31e: 0c02 +.Lbr014: l32i a12, sp, 48 /* [(local10)] */ # 320: c8c1 + l32i a13, sp, 52 /* [(local11)] */ # 322: d8d1 + l32i a14, sp, 56 /* [(local12)] */ # 324: e8e1 + l32i a0, sp, 44 /* [(local9)] */ # 326: 08b1 + addi sp, sp, 64 /* (local13) */ # 328: 12c140 + ret # 32b: 0df0 +.Lbr015: l32i a10, sp, 20 /* [(local3)] */ # 32d: a851 + movi a11, 2 /* 0x00000002 */ # 32f: 0c2b + movi a9, 254 /* 0x000000fe */ # 331: 92a0fe + movi a5, 264 /* 0x00000108 */ # 334: 52a108 + l32i a2, a12, 0x164 /* [arg0+0x164] */ # 337: 222c59 + or a5, a14, a5 # 33a: 505e20 + addi a2, a2, -2 /* [arg0+0x164]-0x2 */ # 33d: 22c2fe + moveqz a9, a11, a2 # 340: 209b83 + s8i a9, a10, 0 /* a9 -> [[(local3)]] */ # 343: 924a00 + l32i a8, sp, 20 /* [(local3)] */ # 346: 8851 + srli a7, a5, 8 # 348: 507841 + s8i a7, a8, 1 /* a7 -> [[(local3)]+0x1] */ # 34b: 724801 + l32i a6, sp, 20 /* [(local3)] */ # 34e: 6851 + s32i a0, sp, 24 /* a0 -> [(local4)] */ # 350: 0961 + s8i a5, a6, 2 /* a5 -> [[(local3)]+0x2] */ # 352: 524602 + l32i a4, a12, 0x164 /* [arg0+0x164] */ # 355: 422c59 + l32i a9, sp, 20 /* [(local3)] */ # 358: 9851 + addi a4, a4, -2 /* [arg0+0x164]-0x2 */ # 35a: 42c4fe + bnez a4, .Lbr012 # 35d: 5694f5 + movi a6, 0 /* 0x00000000 */ # 360: 0c06 + s8i a6, a9, 3 /* 0x00 -> [[(local3)]+0x3] */ # 362: 624903 + l32i a7, sp, 20 /* [(local3)] */ # 365: 7851 + s8i a6, a7, 4 /* 0x00 -> [[(local3)]+0x4] */ # 367: 624704 + j .Lbr013 # 36a: 86d6ff + + .literal_position # 370: 00000000 + # 374: 00000000 + +# Function @ .irom0.text+0x378 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word[4] @ -0x10 + .balign 4 +.Lfunc006: addi sp, sp, -32 /* (local0) */ # 378: 12c1e0 + s32i a0, sp, 16 /* a0 -> [(local4)] */ # 37b: 0941 + l32i a6, a2, 0x11c /* [arg0+0x11c] */ # 37d: 622247 + movi a0, 1 /* 0x00000001 */ # 380: 0c10 + beqi a6, 0x100, .Lbr016 # 382: 26f604 + beqi a6, 128, .Lbr016 # 385: 26e601 + movi a0, 0 /* 0x00000000 */ # 388: 0c00 +.Lbr016: movi a7, 48 /* 0x00000030 */ # 38a: 3c07 + movi a6, 64 /* 0x00000040 */ # 38c: 4c06 + l32i a3, a2, 32 /* [arg0+0x20] */ # 38e: 3882 + addi a9, a4, 13 /* arg2+0xd */ # 390: db94 + l32i a8, a2, 0x114 /* [arg0+0x114] */ # 392: 822245 + movi a4, .Lstr001 # 395: 41f6ff + s32i a0, sp, 12 /* a0 -> [(local3)] */ # 398: 0931 + s32i a5, sp, 4 /* arg3 -> [(local1)] */ # 39a: 5911 + addi a8, a8, -8 /* [arg0+0x114]-0x8 */ # 39c: 82c8f8 + s32i a9, sp, 0 /* arg2+0xd -> [(local0)] */ # 39f: 9901 + moveqz a6, a7, a8 # 3a1: 806783 + movi a5, 344 /* 0x00000158 */ # 3a4: 52a158 + add a5, a2, a5 /* arg0+0x158 */ # 3a7: 5a52 + s32i a6, sp, 8 /* a6 -> [(local2)] */ # 3a9: 6921 + movi a7, 184 /* 0x000000b8 */ # 3ab: 72a0b8 + add a7, a2, a7 /* arg0+0xb8 */ # 3ae: 7a72 + movi a6, 350 /* 0x0000015e */ # 3b0: 62a15e + add a6, a2, a6 /* arg0+0x15e */ # 3b3: 6a62 + call0 wpa_pmk_to_ptk # 3b5: 01efffc0 + # 3b9: 0000 + movi a2, 0 /* 0x00000000 */ # 3bb: 0c02 + l32i a0, sp, 16 /* [(local4)] */ # 3bd: 0841 + addi sp, sp, 32 /* (top of frame) */ # 3bf: 12c120 + ret /* 0x00000000 */ # 3c2: 0df0 + + .literal_position # 3c4: 00000000 + # 3c8: 00000000 + # 3cc: 00000000 + # 3d0: 00000000 + # 3d4: 00000000 + +# Function @ .irom0.text+0x3d8 +# Local variables/stack: +# (local0): word @ -0x50 +# (local1): word[12] @ -0x4c +# (local2): word @ -0x1c +# (local3): word @ -0x18 +# (local4): word @ -0x14 +# (local5): word @ -0x10 +# (local6): word @ -0xc +# (local7): word @ -0x8 +# (local8): word @ -0x4 + .balign 4 +.Lfunc007: addi sp, sp, -80 /* (local0) */ # 3d8: 12c1b0 + s32i a3, sp, 56 /* arg1 -> [(local3)] */ # 3db: 39e1 + s32i a5, sp, 60 /* arg3 -> [(local4)] */ # 3dd: 59f1 + s32i a0, sp, 68 /* a0 -> [(local6)] */ # 3df: 026111 + s32i a12, sp, 72 /* a12 -> [(local7)] */ # 3e2: c26112 + s32i a13, sp, 76 /* a13 -> [(local8)] */ # 3e5: d26113 + mov a12, a2 /* arg0 */ # 3e8: cd02 + mov a13, a4 /* arg2 */ # 3ea: dd04 + movi a2, 6 /* 0x00000006 */ # 3ec: 0c62 + call0 wpa_sm_set_state # 3ee: 050000 + addi a2, sp, 16 /* (FP)-0x40 */ # 3f1: 22c110 + movi a3, 0 /* 0x00000000 */ # 3f4: 0c03 + movi a4, 36 /* 0x00000024 */ # 3f6: 2c44 + call0 memset # 3f8: 01f3ffc0 + # 3fc: 0000 + l32i a0, a12, 0x164 /* [arg0+0x164] */ # 3fe: 022c59 + bnei a0, 2, .Lbr017 # 401: 66201a + addi a2, a13, 95 /* arg2+0x5f */ # 404: 22cd5f + l8ui a4, a13, 93 /* [arg2+0x5d] */ # 407: 420d5d + l8ui a3, a13, 94 /* [arg2+0x5e] */ # 40a: 320d5e + slli a4, a4, 8 # 40d: 804411 + or a3, a3, a4 # 410: 403320 + extui a3, a3, 0, 16 # 413: 3030f4 + addi a4, sp, 16 /* (FP)-0x40 */ # 416: 42c110 + call0 wpa_supplicant_parse_ies # 419: 01ebffc0 + # 41d: 0000 +.Lbr017: mov a2, a12 /* arg0 */ # 41f: 2d0c + call0 .Lfunc004 # 421: 05e3ff + movi a5, -2 /* 0xfffffffe */ # 424: 7ce5 + beq a2, a5, .Lbr020 # 426: 571274 + bnez a2, .Lbr019 # 429: 567206 + l32i a6, a12, 248 /* [arg0+0xf8] */ # 42c: 622c3e + movi a8, 184 /* 0x000000b8 */ # 42f: 82a0b8 + add a8, a12, a8 /* arg0+0xb8 */ # 432: 8a8c + s32i a8, sp, 64 /* arg0+0xb8 -> [(local5)] */ # 434: 826110 + beqz a6, .Lbr018 # 437: 9c06 + mov a2, a8 /* arg0+0xb8 */ # 439: 2d08 + movi a3, 32 /* 0x00000020 */ # 43b: 2c03 + call0 os_get_random # 43d: 01e3ffc0 + # 441: 0000 + bnez a2, .Lbr019 # 443: 56d204 + movi a9, 0 /* 0x00000000 */ # 446: 0c09 + s32i a9, a12, 248 /* 0x00000000 -> [arg0+0xf8] */ # 448: 926c3e +.Lbr018: mov a2, a12 /* arg0 */ # 44b: 2d0c + l32i a3, sp, 56 /* [(local3)] */ # 44d: 38e1 + mov a4, a13 /* arg2 */ # 44f: 4d0d + addi a5, a12, 112 /* arg0+0x70 */ # 451: 52cc70 + s32i a5, sp, 52 /* arg0+0x70 -> [(local2)] */ # 454: 59d1 + call0 .Lfunc006 # 456: 05f2ff + mov a2, a12 /* arg0 */ # 459: 2d0c + l32i a4, sp, 52 /* [(local2)] */ # 45b: 48d1 + l32i a5, a12, 0x14c /* [arg0+0x14c] */ # 45d: 522c53 + movi a7, 0 /* 0x00000000 */ # 460: 0c07 + movi a6, 1 /* 0x00000001 */ # 462: 0c16 + movi a3, 350 /* 0x0000015e */ # 464: 32a15e + add a3, a12, a3 /* arg0+0x15e */ # 467: 3a3c + s32i a6, a12, 180 /* 0x00000001 -> [arg0+0xb4] */ # 469: 626c2d + s32i a7, a12, 176 /* 0x00000000 -> [arg0+0xb0] */ # 46c: 726c2c + l32i a6, sp, 64 /* [(local5)] */ # 46f: 622110 + l32i a7, a12, 0x148 /* [arg0+0x148] */ # 472: 722c52 + s32i a5, sp, 0 /* [arg0+0x14c] -> [(local0)] */ # 475: 5901 + s32i a4, sp, 4 /* [(local2)] -> [(local1)] */ # 477: 4911 + l32i a5, sp, 60 /* [(local4)] */ # 479: 58f1 + mov a4, a13 /* arg2 */ # 47b: 4d0d + call0 .Lfunc005 # 47d: 85dfff + bnez a2, .Lbr019 # 480: dc02 + addi a3, a13, 13 /* arg2+0xd */ # 482: db3d + movi a4, 32 /* 0x00000020 */ # 484: 2c04 + movi a2, 216 /* 0x000000d8 */ # 486: 22a0d8 + add a2, a12, a2 /* arg0+0xd8 */ # 489: 2a2c + call0 memcpy # 48b: 01d1ffc0 + # 48f: 0000 + j .Lbr020 # 491: 460200 +.Lbr019: mov a2, a12 /* arg0 */ # 494: 2d0c + movi a3, 1 /* 0x00000001 */ # 496: 0c13 + call0 wpa_sm_deauthenticate # 498: 01cfffc0 + # 49c: 0000 +.Lbr020: l32i a12, sp, 72 /* [(local7)] */ # 49e: c22112 + l32i a13, sp, 76 /* [(local8)] */ # 4a1: d22113 + l32i a0, sp, 68 /* [(local6)] */ # 4a4: 022111 + addi sp, sp, 80 /* (top of frame) */ # 4a7: 12c150 + ret # 4aa: 0df0 + +# Function @ .irom0.text+0x4ac +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 +.Lfunc008: movi a3, 0 /* 0x00000000 */ # 4ac: 0c03 + movi a4, 1 /* 0x00000001 */ # 4ae: 0c14 + addi sp, sp, -16 /* (local0) */ # 4b0: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 4b3: 0901 + call0 .Lfunc003 # 4b5: 85c8ff + l32i a0, sp, 0 /* [(local0)] */ # 4b8: 0801 + addi sp, sp, 16 /* (top of frame) */ # 4ba: 12c110 + ret # 4bd: 0df0 + + .literal_position # 4c0: ac040000 + # 4c4: ac040000 + # 4c8: 00000000 + # 4cc: 00000000 + +# Function @ .irom0.text+0x4d0 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word @ -0x10 +# (local5): word[3] @ -0xc + .balign 4 +.Lfunc009: addi sp, sp, -32 /* (local0) */ # 4d0: 12c1e0 + s32i a12, sp, 20 /* a12 -> [(local5)] */ # 4d3: c951 + s32i a0, sp, 16 /* a0 -> [(local4)] */ # 4d5: 0941 + l32i a0, a2, 0x114 /* [arg0+0x114] */ # 4d7: 022245 + mov a12, a2 /* arg0 */ # 4da: cd02 + beqi a0, 1, .Lbr025 # 4dc: 261064 + beqi a0, 2, .Lbr021 # 4df: 262009 + bnei a0, 8, .Lbr023 # 4e2: 668035 + movi a3, 3 /* 0x00000003 */ # 4e5: 0c33 + movi a0, 16 /* 0x00000010 */ # 4e7: 1c00 + j .Lbr022 # 4e9: c60000 +.Lbr021: movi a0, 32 /* 0x00000020 */ # 4ec: 2c00 + movi a3, 2 /* 0x00000002 */ # 4ee: 0c23 +.Lbr022: movi a5, 8 /* 0x00000008 */ # 4f0: 0c85 + addi a4, a12, 80 /* arg0+0x50 */ # 4f2: 42cc50 + movi a6, 5 /* 0x00000005 */ # 4f5: 0c56 + movi a7, 408 /* 0x00000198 */ # 4f7: 72a198 + movi a2, 380 /* 0x0000017c */ # 4fa: 22a17c + add a2, a12, a2 /* arg0+0x17c */ # 4fd: 2a2c + add a7, a12, a7 /* arg0+0x198 */ # 4ff: 7a7c + s32i a6, a12, 0x20c /* 0x00000005 -> [arg0+0x20c] */ # 501: 626c83 + s32i a0, sp, 8 /* a0 -> [(local2)] */ # 504: 0921 + s32i a4, sp, 4 /* arg0+0x50 -> [(local1)] */ # 506: 4911 + s32i a5, sp, 0 /* 0x00000008 -> [(local0)] */ # 508: 5901 + s32i a6, sp, 12 /* 0x00000005 -> [(local3)] */ # 50a: 6931 + movi a5, 0 /* 0x00000000 */ # 50c: 0c05 + movi a6, 1 /* 0x00000001 */ # 50e: 0c16 + movi a4, 350 /* 0x0000015e */ # 510: 42a15e + add a4, a12, a4 /* arg0+0x15e */ # 513: 4a4c + call0 .Lfunc032 # 515: 85f000 + bgez a2, .Lbr024 # 518: d64200 +.Lbr023: movi a2, -1 /* 0xffffffff */ # 51b: 7cf2 + j .Lbr026 # 51d: 460900 +.Lbr024: l32i a7, a12, 0x154 /* [arg0+0x154] */ # 520: 722c55 + beqz a7, .Lbr025 # 523: 9cd7 + mov a3, a12 /* arg0 */ # 525: 3d0c + movi a2, .Lfunc008 # 527: 21e6ff + movi a4, 0 /* 0x00000000 */ # 52a: 0c04 + call0 eloop_cancel_timeout # 52c: 01e7ffc0 + # 530: 0000 + mov a5, a12 /* arg0 */ # 532: 5d0c + movi a4, .Lfunc008 # 534: 41e4ff + l32i a2, a12, 0x154 /* [arg0+0x154] */ # 537: 222c55 + movi a3, 0 /* 0x00000000 */ # 53a: 0c03 + movi a6, 0 /* 0x00000000 */ # 53c: 0c06 + call0 eloop_register_timeout # 53e: 01e3ffc0 + # 542: 0000 +.Lbr025: movi a2, 0 /* 0x00000000 */ # 544: 0c02 +.Lbr026: l32i a12, sp, 20 /* [(local5)] */ # 546: c851 + l32i a0, sp, 16 /* [(local4)] */ # 548: 0841 + addi sp, sp, 32 /* (top of frame) */ # 54a: 12c120 + ret # 54d: 0df0 + + .balign 4 +# Function @ .irom0.text+0x550 + .balign 4 +.Lfunc010: movi a8, 6 /* 0x00000006 */ # 550: 0c68 + beqi a2, 2, .Lbr029 # 552: 26221c + beqi a2, 8, .Lbr030 # 555: 268226 + movi a9, 0 /* 0x00000000 */ # 558: 0c09 + beqi a2, 128, .Lbr032 # 55a: 26e231 + beqi a2, 0x100, .Lbr027 # 55d: 26f203 + movi a2, -1 /* 0xffffffff */ # 560: 7cf2 + ret /* 0xffffffff */ # 562: 0df0 +.Lbr027: movi a2, 13 /* 0x0000000d */ # 564: 0cd2 + bne a3, a2, .Lbr028 # 566: 279304 + movi a3, 12 /* 0x0000000c */ # 569: 0cc3 + blt a3, a4, .Lbr033 # 56b: 47232d +.Lbr028: movi a2, -1 /* 0xffffffff */ # 56e: 7cf2 + ret /* 0xffffffff */ # 570: 0df0 +.Lbr029: bnei a3, 32, .Lbr028 # 572: 66c3f8 + blti a4, 32, .Lbr028 # 575: a6c4f5 + s32i a8, a5, 0 /* 0x00000006 -> [arg3] */ # 578: 8905 + movi a2, 2 /* 0x00000002 */ # 57a: 0c22 + j .Lbr031 # 57c: 460200 +.Lbr030: bnei a3, 16, .Lbr028 # 57f: 66b3eb + blti a4, 16, .Lbr028 # 582: a6b4e8 + s32i a8, a5, 0 /* 0x00000006 -> [arg3] */ # 585: 8905 + movi a2, 3 /* 0x00000003 */ # 587: 0c32 +.Lbr031: s32i a2, a6, 0 /* a2 -> [arg4] */ # 589: 2906 + movi a2, 0 /* 0x00000000 */ # 58b: 0c02 + ret /* 0x00000000 */ # 58d: 0df0 +.Lbr032: bnei a3, 5, .Lbr028 # 58f: 6653db + blti a4, 5, .Lbr028 # 592: a654d8 + s32i a9, a5, 0 /* 0x00000000 -> [arg3] */ # 595: 9905 + movi a3, 1 /* 0x00000001 */ # 597: 0c13 + j .Lbr034 # 599: c60000 +.Lbr033: s32i a9, a5, 0 /* 0x00000000 -> [arg3] */ # 59c: 9905 + movi a3, 5 /* 0x00000005 */ # 59e: 0c53 +.Lbr034: mov a2, a9 /* 0x00000000 */ # 5a0: 2d09 + s32i a3, a6, 0 /* a3 -> [arg4] */ # 5a2: 3906 + ret /* 0x00000000 */ # 5a4: 0df0 + + .literal_position # 5a8: 00000000 + +# Function @ .irom0.text+0x5ac +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word @ -0x8 +# (local3): word @ -0x4 + .balign 4 +.Lfunc011: addi sp, sp, -16 /* (local0) */ # 5ac: 12c1f0 + s32i a3, sp, 0 /* arg1 -> [(local0)] */ # 5af: 3901 + s32i a4, sp, 4 /* arg2 -> [(local1)] */ # 5b1: 4911 + s32i a12, sp, 12 /* a12 -> [(local3)] */ # 5b3: c931 + s32i a0, sp, 8 /* a0 -> [(local2)] */ # 5b5: 0921 + mov a12, a2 /* arg0 */ # 5b7: cd02 + movi a2, 9 /* 0x00000009 */ # 5b9: 0c92 + call0 wpa_sm_set_state # 5bb: 050000 + l32i a0, a12, 0x224 /* [arg0+0x224] */ # 5be: 022c89 + callx0 a0 /* [arg0+0x224] */ # 5c1: c00000 + l32i a2, sp, 4 /* [(local1)] */ # 5c4: 2811 + beqz a2, .Lbr036 # 5c6: ac32 + l32i a3, sp, 0 /* [(local0)] */ # 5c8: 3801 + mov a2, a12 /* arg0 */ # 5ca: 2d0c + movi a4, 3 /* 0x00000003 */ # 5cc: 0c34 + movi a5, 1 /* 0x00000001 */ # 5ce: 0c15 + call0 wpa_sm_mlme_setprotection # 5d0: 01f6ffc0 + # 5d4: 0000 + l32i a2, a12, 0x11c /* [arg0+0x11c] */ # 5d6: 222c47 + movi a0, 1 /* 0x00000001 */ # 5d9: 0c10 + beqi a2, 2, .Lbr035 # 5db: 262207 + beqi a2, 64, .Lbr035 # 5de: 26d204 + beqi a2, 0x100, .Lbr035 # 5e1: 26f201 + movi a0, 0 /* 0x00000000 */ # 5e4: 0c00 +.Lbr035: beqz a0, .Lbr036 # 5e6: 8c30 + movi a2, 1 /* 0x00000001 */ # 5e8: 0c12 + call0 .Lfunc001 # 5ea: 45a1ff +.Lbr036: l32i a12, sp, 12 /* [(local3)] */ # 5ed: c831 + l32i a0, sp, 8 /* [(local2)] */ # 5ef: 0821 + addi sp, sp, 16 /* (top of frame) */ # 5f1: 12c110 + ret # 5f4: 0df0 + + .literal_position # 5f8: 00000000 + # 5fc: 00000000 + # 600: 00000000 + # 604: 20140000 + +# Function @ .irom0.text+0x608 +# Local variables/stack: +# (local0): word @ -0x40 +# (local1): word @ -0x3c +# (local2): word @ -0x38 +# (local3): word[9] @ -0x34 +# (local4): word @ -0x10 +# (local5): word @ -0xc +# (local6): word[2] @ -0x8 + .balign 4 +.Lfunc012: addi sp, sp, -64 /* (local0) */ # 608: 12c1c0 + s32i a0, sp, 48 /* a0 -> [(local4)] */ # 60b: 09c1 + s32i a13, sp, 56 /* a13 -> [(local6)] */ # 60d: d9e1 + s32i a12, sp, 52 /* a12 -> [(local5)] */ # 60f: c9d1 + mov a13, a2 /* arg0 */ # 611: dd02 + mov a12, a3 /* arg1 */ # 613: cd03 + l32i a0, a2, 0x118 /* [arg0+0x118] */ # 615: 022246 + addi a3, a3, 16 /* arg1+0x10 */ # 618: 32c310 + bnei a0, 2, .Lbr037 # 61b: 662029 + addi a2, sp, 16 /* (FP)-0x30 */ # 61e: 22c110 + movi a4, 16 /* 0x00000010 */ # 621: 1c04 + call0 memcpy # 623: 01f5ffc0 + # 627: 0000 + addi a2, sp, 32 /* (FP)-0x20 */ # 629: 22c120 + addi a3, a12, 32 /* arg1+0x20 */ # 62c: 32cc20 + movi a4, 8 /* 0x00000008 */ # 62f: 0c84 + call0 memcpy # 631: 01f2ffc0 + # 635: 0000 + addi a2, sp, 40 /* (FP)-0x18 */ # 637: 22c128 + addi a3, a12, 40 /* arg1+0x28 */ # 63a: 32cc28 + movi a4, 8 /* 0x00000008 */ # 63d: 0c84 + call0 memcpy # 63f: 01f0ffc0 + # 643: 0000 + addi a3, sp, 16 /* (FP)-0x30 */ # 645: 32c110 +.Lbr037: l32i a6, a13, 0x114 /* [arg0+0x114] */ # 648: 622d45 + l32i a11, a12, 12 /* [arg1+0xc] */ # 64b: b83c + movi a7, 480 /* 0x000001e0 */ # 64d: 72a1e0 + movi a4, 350 /* 0x0000015e */ # 650: 42a15e + movi a2, 452 /* 0x000001c4 */ # 653: 22a1c4 + add a2, a13, a2 /* arg0+0x1c4 */ # 656: 2a2d + add a4, a13, a4 /* arg0+0x15e */ # 658: 4a4d + add a7, a13, a7 /* arg0+0x1e0 */ # 65a: 7a7d + s32i a11, a13, 0x20c /* [arg1+0xc] -> [arg0+0x20c] */ # 65c: b26d83 + l32i a5, a12, 12 /* [arg1+0xc] */ # 65f: 583c + l32i a10, a12, 0 /* [arg1] */ # 661: a80c + l32i a9, a12, 8 /* [arg1+0x8] */ # 663: 982c + l32i a0, a12, 48 /* [arg1+0x30] */ # 665: 08cc + bnei a6, 1, .Lbr039 # 667: 661619 + s32i a9, sp, 0 /* [arg1+0x8] -> [(local0)] */ # 66a: 9901 + s32i a11, sp, 12 /* [arg1+0xc] -> [(local3)] */ # 66c: b931 + movi a6, 1 /* 0x00000001 */ # 66e: 0c16 + s32i a3, sp, 4 /* a3 -> [(local1)] */ # 670: 3911 + s32i a0, sp, 8 /* [arg1+0x30] -> [(local2)] */ # 672: 0921 + mov a3, a10 /* [arg1] */ # 674: 3d0a + call0 .Lfunc032 # 676: 01e3ffc0 + # 67a: 0000 + bgez a2, .Lbr040 # 67c: d66201 +.Lbr038: movi a2, -1 /* 0xffffffff */ # 67f: 7cf2 + j .Lbr041 # 681: c60400 +.Lbr039: l32i a6, a12, 4 /* [arg1+0x4] */ # 684: 681c + s32i a9, sp, 0 /* [arg1+0x8] -> [(local0)] */ # 686: 9901 + s32i a11, sp, 12 /* [arg1+0xc] -> [(local3)] */ # 688: b931 + s32i a3, sp, 4 /* a3 -> [(local1)] */ # 68a: 3911 + s32i a0, sp, 8 /* [arg1+0x30] -> [(local2)] */ # 68c: 0921 + mov a3, a10 /* [arg1] */ # 68e: 3d0a + call0 .Lfunc032 # 690: c5d800 + bltz a2, .Lbr038 # 693: 9682fe +.Lbr040: movi a2, 0 /* 0x00000000 */ # 696: 0c02 +.Lbr041: l32i a12, sp, 52 /* [(local5)] */ # 698: c8d1 + l32i a13, sp, 56 /* [(local6)] */ # 69a: d8e1 + l32i a0, sp, 48 /* [(local4)] */ # 69c: 08c1 + addi sp, sp, 64 /* (top of frame) */ # 69e: 12c140 + ret # 6a1: 0df0 + + .balign 4 +# Function @ .irom0.text+0x6a4 + .balign 4 +.Lfunc013: mov a5, a2 /* arg0 */ # 6a4: 5d02 + mov a2, a3 /* arg1 */ # 6a6: 2d03 + beqz a3, .Lbr042 # 6a8: 8c63 + l32i a3, a5, 0x114 /* [arg0+0x114] */ # 6aa: 322545 + beqi a3, 1, .Lbr042 # 6ad: 261301 + movi a2, 0 /* 0x00000000 */ # 6b0: 0c02 +.Lbr042: ret # 6b2: 0df0 + + .literal_position # 6b4: 00000000 + # 6b8: 00000000 + +# Function @ .irom0.text+0x6bc +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word[4] @ -0x10 + .balign 4 +.Lfunc014: addi sp, sp, -32 /* (local0) */ # 6bc: 12c1e0 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 6bf: 0911 + s32i a13, sp, 12 /* a13 -> [(local3)] */ # 6c1: d931 + s32i a12, sp, 8 /* a12 -> [(local2)] */ # 6c3: c921 + s32i a14, sp, 16 /* a14 -> [(local4)] */ # 6c5: e941 + mov a12, a2 /* arg0 */ # 6c7: cd02 + mov a14, a3 /* arg1 */ # 6c9: ed03 + mov a13, a4 /* arg2 */ # 6cb: dd04 + movi a3, 0 /* 0x00000000 */ # 6cd: 0c03 + movi a4, 52 /* 0x00000034 */ # 6cf: 3c44 + movi a2, 552 /* 0x00000228 */ # 6d1: 22a228 + add a2, a12, a2 /* arg0+0x228 */ # 6d4: 2a2c + s32i a2, sp, 0 /* arg0+0x228 -> [(local0)] */ # 6d6: 2901 + call0 memset # 6d8: 01f7ffc0 + # 6dc: 0000 + bltui a13, 2, .Lbr043 # 6de: b62d48 + addi a13, a13, -2 /* arg2-0x2 */ # 6e1: d2cdfe + movi a3, 32 /* 0x00000020 */ # 6e4: 2c03 + bltu a3, a13, .Lbr043 # 6e6: d73340 + l8ui a4, a14, 0 /* [arg1] */ # 6e9: 420e00 + extui a4, a4, 0, 2 # 6ec: 404014 + s32i a4, a12, 0x234 /* a4 -> [arg0+0x234] */ # 6ef: 426c8d + l8ui a3, a14, 0 /* [arg1] */ # 6f2: 320e00 + mov a2, a12 /* arg0 */ # 6f5: 2d0c + extui a3, a3, 2, 1 # 6f7: 303204 + call0 .Lfunc013 # 6fa: 85faff + addi a3, a14, 2 /* arg1+0x2 */ # 6fd: 2b3e + s32i a2, a12, 0x22c /* a2 -> [arg0+0x22c] */ # 6ff: 226c8b + mov a4, a13 /* arg2-0x2 */ # 702: 4d0d + movi a2, 568 /* 0x00000238 */ # 704: 22a238 + add a2, a12, a2 /* arg0+0x238 */ # 707: 2a2c + call0 memcpy # 709: 01ebffc0 + # 70d: 0000 + mov a4, a13 /* arg2-0x2 */ # 70f: 4d0d + s32i a13, a12, 0x258 /* arg2-0x2 -> [arg0+0x258] */ # 711: d26c96 + mov a3, a13 /* arg2-0x2 */ # 714: 3d0d + l32i a2, a12, 0x118 /* [arg0+0x118] */ # 716: 222c46 + l32i a6, sp, 0 /* [(local0)] */ # 719: 6801 + movi a5, 560 /* 0x00000230 */ # 71b: 52a230 + add a5, a12, a5 /* arg0+0x230 */ # 71e: 5a5c + call0 .Lfunc010 # 720: c5e2ff + bnez a2, .Lbr043 # 723: cc32 + movi a2, 0 /* 0x00000000 */ # 725: 0c02 + j .Lbr044 # 727: 460000 +.Lbr043: movi a2, -1 /* 0xffffffff */ # 72a: 7cf2 +.Lbr044: l32i a12, sp, 8 /* [(local2)] */ # 72c: c821 + l32i a13, sp, 12 /* [(local3)] */ # 72e: d831 + l32i a14, sp, 16 /* [(local4)] */ # 730: e841 + l32i a0, sp, 4 /* [(local1)] */ # 732: 0811 + addi sp, sp, 32 /* (top of frame) */ # 734: 12c120 + ret # 737: 0df0 + + .literal_position # 73c: 00000000 + +# Function @ .irom0.text+0x740 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 +.Lfunc015: movi a3, 17 /* 0x00000011 */ # 740: 1c13 + addi sp, sp, -16 /* (local0) */ # 742: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 745: 0901 + call0 wpa_sm_disassociate # 747: 01fdffc0 + # 74b: 0000 + l32i a0, sp, 0 /* [(local0)] */ # 74d: 0801 + addi sp, sp, 16 /* (top of frame) */ # 74f: 12c110 + ret # 752: 0df0 + +# Function @ .irom0.text+0x754 + .balign 4 +.Lfunc016: movi a2, 0 /* 0x00000000 */ # 754: 0c02 + ret /* 0x00000000 */ # 756: 0df0 + + .literal_position # 758: 00000000 + # 75c: 00000000 + # 760: 00000000 + +# Function @ .irom0.text+0x764 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word @ -0x10 +# (local5): word @ -0xc +# (local6): word[2] @ -0x8 + .balign 4 +.Lfunc017: addi sp, sp, -32 /* (local0) */ # 764: 12c1e0 + s32i a14, sp, 20 /* a14 -> [(local5)] */ # 767: e951 + s32i a15, sp, 24 /* a15 -> [(local6)] */ # 769: f961 + s32i a3, sp, 4 /* arg1 -> [(local1)] */ # 76b: 3911 + s32i a12, sp, 12 /* a12 -> [(local3)] */ # 76d: c931 + s32i a13, sp, 16 /* a13 -> [(local4)] */ # 76f: d941 + s32i a0, sp, 8 /* a0 -> [(local2)] */ # 771: 0921 + mov a13, a4 /* arg2 */ # 773: dd04 + l32i a0, a2, 0x16c /* [arg0+0x16c] */ # 775: 02225b + mov a12, a2 /* arg0 */ # 778: cd02 + bnez a0, .Lbr045 # 77a: ccb0 + l32i a2, a2, 0x170 /* [arg0+0x170] */ # 77c: 22225c + bnez a2, .Lbr045 # 77f: cc62 + mov a2, a12 /* arg0 */ # 781: 2d0c + call0 wpa_sm_get_beacon_ie # 783: 01f5ffc0 + # 787: 0000 +.Lbr045: l32i a15, a13, 0 /* [arg2] */ # 789: f80d + l32i a14, a13, 8 /* [arg2+0x8] */ # 78b: e82d + bnez a15, .Lbr047 # 78d: ccef + bnez a14, .Lbr046 # 78f: ccae + l32i a3, a12, 0x16c /* [arg0+0x16c] */ # 791: 322c5b + bnez a3, .Lbr051 # 794: 561306 + l32i a4, a12, 0x170 /* [arg0+0x170] */ # 797: 422c5c + bnez a4, .Lbr051 # 79a: 56b405 +.Lbr046: beqz a15, .Lbr048 # 79d: 9cbf +.Lbr047: l32i a3, a12, 0x16c /* [arg0+0x16c] */ # 79f: 322c5b + l32i a5, a12, 0x174 /* [arg0+0x174] */ # 7a2: 522c5d + beqz a3, .Lbr048 # 7a5: 9c33 + l32i a0, a13, 4 /* [arg2+0x4] */ # 7a7: 081d + s32i a0, sp, 0 /* [arg2+0x4] -> [(local0)] */ # 7a9: 0901 + bne a5, a0, .Lbr050 # 7ab: 079538 + mov a2, a15 /* [arg2] */ # 7ae: 2d0f + mov a4, a0 /* [arg2+0x4] */ # 7b0: 4d00 + call0 memcmp # 7b2: 01eaffc0 + # 7b6: 0000 + l32i a0, sp, 0 /* [(local0)] */ # 7b8: 0801 + bnez a2, .Lbr050 # 7ba: ec92 +.Lbr048: beqz a14, .Lbr054 # 7bc: 16ce05 + l32i a3, a12, 0x170 /* [arg0+0x170] */ # 7bf: 322c5c + movi a2, 1 /* 0x00000001 */ # 7c2: 0c12 + beqz a3, .Lbr054 # 7c4: 164305 + l32i a0, a12, 0x11c /* [arg0+0x11c] */ # 7c7: 022c47 + beqi a0, 64, .Lbr049 # 7ca: 26d004 + beqi a0, 32, .Lbr049 # 7cd: 26c001 + movi a2, 0 /* 0x00000000 */ # 7d0: 0c02 +.Lbr049: mov a5, a14 /* [arg2+0x8] */ # 7d2: 5d0e + l32i a4, a12, 0x178 /* [arg0+0x178] */ # 7d4: 422c5e + l32i a6, a13, 12 /* [arg2+0xc] */ # 7d7: 683d + call0 wpa_compare_rsn_ie # 7d9: 01e1ffc0 + # 7dd: 0000 + beqz a2, .Lbr054 # 7df: bc92 + l32i a15, a13, 0 /* [arg2] */ # 7e1: f80d + l32i a14, a13, 8 /* [arg2+0x8] */ # 7e3: e82d + l32i a0, a13, 4 /* [arg2+0x4] */ # 7e5: 081d +.Lbr050: mov a6, a14 /* [arg2+0x8] */ # 7e7: 6d0e + mov a4, a15 /* [arg2] */ # 7e9: 4d0f + mov a2, a12 /* arg0 */ # 7eb: 2d0c + l32i a3, sp, 4 /* [(local1)] */ # 7ed: 3811 + l32i a7, a13, 12 /* [arg2+0xc] */ # 7ef: 783d + mov a5, a0 # 7f1: 5d00 + call0 .Lfunc015 # 7f3: c5f4ff + j .Lbr052 # 7f6: 860300 +.Lbr051: mov a6, a14 /* [arg2+0x8] */ # 7f9: 6d0e + mov a4, a15 /* [arg2] */ # 7fb: 4d0f + mov a2, a12 /* arg0 */ # 7fd: 2d0c + l32i a3, sp, 4 /* [(local1)] */ # 7ff: 3811 + l32i a5, a13, 4 /* [arg2+0x4] */ # 801: 581d + l32i a7, a13, 12 /* [arg2+0xc] */ # 803: 783d + call0 .Lfunc015 # 805: 85f3ff +.Lbr052: movi a2, -1 /* 0xffffffff */ # 808: 7cf2 + j .Lbr053 # 80a: c6ffff +.Lbr053: l32i a12, sp, 12 /* [(local3)] */ # 80d: c831 + l32i a13, sp, 16 /* [(local4)] */ # 80f: d841 + l32i a14, sp, 20 /* [(local5)] */ # 811: e851 + l32i a15, sp, 24 /* [(local6)] */ # 813: f861 + l32i a0, sp, 8 /* [(local2)] */ # 815: 0821 + addi sp, sp, 32 /* (top of frame) */ # 817: 12c120 + ret # 81a: 0df0 +.Lbr054: l32i a6, a12, 0x164 /* [arg0+0x164] */ # 81c: 622c59 + movi a2, 0 /* 0x00000000 */ # 81f: 0c02 + bnei a6, 1, .Lbr053 # 821: 6616e8 + l32i a14, a13, 8 /* [arg2+0x8] */ # 824: e82d + beqz a14, .Lbr053 # 826: 163efe + l32i a7, a12, 0x170 /* [arg0+0x170] */ # 829: 722c5c + bnez a7, .Lbr053 # 82c: 56d7fd + l32i a8, a12, 0x124 /* [arg0+0x124] */ # 82f: 822c49 + beqz a8, .Lbr053 # 832: 1678fd + mov a6, a14 /* [arg2+0x8] */ # 835: 6d0e + mov a2, a12 /* arg0 */ # 837: 2d0c + l32i a3, sp, 4 /* [(local1)] */ # 839: 3811 + l32i a4, a13, 0 /* [arg2] */ # 83b: 480d + l32i a5, a13, 4 /* [arg2+0x4] */ # 83d: 581d + l32i a7, a13, 12 /* [arg2+0xc] */ # 83f: 783d + call0 .Lfunc015 # 841: c5efff + j .Lbr052 # 844: 06f0ff + + .literal_position # 848: 8e880000 + # 84c: 00000000 + # 850: 00000000 + # 854: 00000000 + # 858: 00000000 + +# Function @ .irom0.text+0x85c +# Local variables/stack: +# (local0): word @ -0x40 +# (local1): word[3] @ -0x3c +# (local2): word @ -0x30 +# (local3): word @ -0x2c +# (local4): word @ -0x28 +# (local5): word @ -0x24 +# (local6): word @ -0x20 +# (local7): word @ -0x1c +# (local8): word @ -0x18 +# (local9): word @ -0x14 +# (local10): word @ -0x10 +# (local11): word @ -0xc +# (local12): word[2] @ -0x8 + .balign 4 +.Lfunc018: addi sp, sp, -64 /* (local0) */ # 85c: 12c1c0 + s32i a0, sp, 36 /* a0 -> [(local7)] */ # 85f: 0991 + s32i a15, sp, 52 /* a15 -> [(local11)] */ # 861: f9d1 + s32i a14, sp, 48 /* a14 -> [(local10)] */ # 863: e9c1 + s32i a13, sp, 44 /* a13 -> [(local9)] */ # 865: d9b1 + s32i a7, sp, 56 /* arg5 -> [(local12)] */ # 867: 79e1 + s32i a6, sp, 32 /* arg4 -> [(local6)] */ # 869: 6981 + s32i a12, sp, 40 /* a12 -> [(local8)] */ # 86b: c9a1 + s32i a3, sp, 28 /* arg1 -> [(local5)] */ # 86d: 3971 + mov a12, a2 /* arg0 */ # 86f: cd02 + movi a3, 3 /* 0x00000003 */ # 871: 0c33 + addi a6, sp, 16 /* (local2) */ # 873: 62c110 + addi a7, sp, 20 /* (local3) */ # 876: 72c114 + mov a13, a5 /* arg3 */ # 879: dd05 + mov a14, a4 /* arg2 */ # 87b: ed04 + l32i a15, sp, 64 /* [(local13)] */ # 87d: f22110 + movi a4, 0 /* 0x00000000 */ # 880: 0c04 + addi a5, a15, 95 /* [(local13)]+0x5f */ # 882: 52cf5f + extui a5, a5, 0, 16 # 885: 5050f4 + call0 wpa_sm_alloc_eapol # 888: 01f1ffc0 + # 88c: 0000 + mov a0, a2 # 88e: 0d02 + bnez a2, .Lbr055 # 890: cc32 + movi a2, -1 /* 0xffffffff */ # 892: 7cf2 + j .Lbr059 # 894: 462700 +.Lbr055: l32i a8, sp, 20 /* [(local3)] */ # 897: 8851 + movi a4, 264 /* 0x00000108 */ # 899: 42a108 + movi a9, 2 /* 0x00000002 */ # 89c: 0c29 + movi a7, 254 /* 0x000000fe */ # 89e: 72a0fe + l32i a10, a12, 0x164 /* [arg0+0x164] */ # 8a1: a22c59 + l32i a3, sp, 32 /* [(local6)] */ # 8a4: 3881 + movi a5, 512 /* 0x00000200 */ # 8a6: 52a200 + and a3, a3, a5 # 8a9: 503310 + addi a10, a10, -2 /* [arg0+0x164]-0x2 */ # 8ac: a2cafe + moveqz a7, a9, a10 # 8af: a07983 + or a3, a13, a3 # 8b2: 303d20 + or a3, a3, a4 # 8b5: 403320 + s8i a7, a8, 0 /* a7 -> [[(local3)]] */ # 8b8: 724800 + l32i a6, sp, 20 /* [(local3)] */ # 8bb: 6851 + srli a5, a3, 8 # 8bd: 305841 + s8i a5, a6, 1 /* a5 -> [[(local3)]+0x1] */ # 8c0: 524601 + l32i a4, sp, 20 /* [(local3)] */ # 8c3: 4851 + s32i a0, sp, 24 /* a0 -> [(local4)] */ # 8c5: 0961 + s8i a3, a4, 2 /* a3 -> [[(local3)]+0x2] */ # 8c7: 324402 + l32i a2, a12, 0x164 /* [arg0+0x164] */ # 8ca: 222c59 + l32i a4, sp, 20 /* [(local3)] */ # 8cd: 4851 + bnei a2, 2, .Lbr056 # 8cf: 66220c + movi a6, 0 /* 0x00000000 */ # 8d2: 0c06 + s8i a6, a4, 3 /* 0x00 -> [[(local3)]+0x3] */ # 8d4: 624403 + l32i a7, sp, 20 /* [(local3)] */ # 8d7: 7851 + s8i a6, a7, 4 /* 0x00 -> [[(local3)]+0x4] */ # 8d9: 624704 + j .Lbr057 # 8dc: c60200 +.Lbr056: addi a2, a4, 3 /* [(local3)]+0x3 */ # 8df: 3b24 + addi a3, a14, 3 /* arg2+0x3 */ # 8e1: 3b3e + movi a4, 2 /* 0x00000002 */ # 8e3: 0c24 + call0 memcpy # 8e5: 01daffc0 + # 8e9: 0000 +.Lbr057: addi a3, a14, 5 /* arg2+0x5 */ # 8eb: 5b3e + l32i a2, sp, 20 /* [(local3)] */ # 8ed: 2851 + movi a4, 8 /* 0x00000008 */ # 8ef: 0c84 + addi a2, a2, 5 /* [(local3)]+0x5 */ # 8f1: 5b22 + call0 memcpy # 8f3: 01d8ffc0 + # 8f7: 0000 + l32i a6, sp, 20 /* [(local3)] */ # 8f9: 6851 + srli a5, a15, 8 # 8fb: f05841 + s8i a5, a6, 93 /* a5 -> [[(local3)]+0x5d] */ # 8fe: 52465d + l32i a4, sp, 20 /* [(local3)] */ # 901: 4851 + l32i a3, sp, 56 /* [(local12)] */ # 903: 38e1 + s8i a15, a4, 94 /* [(local13)] -> [[(local3)]+0x5e] */ # 905: f2445e + beqz a3, .Lbr058 # 908: 8cb3 + l32i a2, sp, 20 /* [(local3)] */ # 90a: 2851 + mov a4, a15 /* [(local13)] */ # 90c: 4d0f + addi a2, a2, 95 /* [(local3)]+0x5f */ # 90e: 22c25f + call0 memcpy # 911: 01d1ffc0 + # 915: 0000 +.Lbr058: mov a4, a13 /* arg3 */ # 917: 4d0d + mov a2, a12 /* arg0 */ # 919: 2d0c + l32i a5, sp, 28 /* [(local5)] */ # 91b: 5871 + l32i a7, sp, 24 /* [(local4)] */ # 91d: 7861 + l32i a3, sp, 68 /* [(FP)+0x4] */ # 91f: 322111 + l32i a9, sp, 16 /* [(local2)] */ # 922: 9841 + s32i a9, sp, 0 /* [(local2)] -> [(local0)] */ # 924: 9901 + l32i a8, sp, 20 /* [(local3)] */ # 926: 8851 + movi a6, 0x0000888e # 928: 61c8ff + addi a8, a8, 77 /* [(local3)]+0x4d */ # 92b: 82c84d + s32i a8, sp, 4 /* [(local3)]+0x4d -> [(local1)] */ # 92e: 8911 + call0 .Lfunc002 # 930: c56eff + movi a2, 0 /* 0x00000000 */ # 933: 0c02 +.Lbr059: l32i a12, sp, 40 /* [(local8)] */ # 935: c8a1 + l32i a13, sp, 44 /* [(local9)] */ # 937: d8b1 + l32i a14, sp, 48 /* [(local10)] */ # 939: e8c1 + l32i a15, sp, 52 /* [(local11)] */ # 93b: f8d1 + l32i a0, sp, 36 /* [(local7)] */ # 93d: 0891 + addi sp, sp, 64 /* (local13) */ # 93f: 12c140 + ret # 942: 0df0 + + .literal_position # 944: 00000000 + # 948: 00000000 + # 94c: 00000000 + +# Function @ .irom0.text+0x950 +# Local variables/stack: +# (local0): word @ -0x18 +# (local1): word @ -0x14 +# (local2): word @ -0x10 +# (local3): word[3] @ -0xc + .balign 4 +.Lfunc019: addi sp, sp, -32 /* (FP)-0x20 */ # 950: 12c1e0 + s32i a0, sp, 16 /* a0 -> [(local2)] */ # 953: 0941 + s32i a4, sp, 8 /* arg2 -> [(local0)] */ # 955: 4921 + s32i a3, sp, 12 /* arg1 -> [(local1)] */ # 957: 3931 + s32i a12, sp, 20 /* a12 -> [(local3)] */ # 959: c951 + movi a3, .Ldata024 # 95b: 31faff + mov a12, a2 /* arg0 */ # 95e: cd02 + movi a4, 8 /* 0x00000008 */ # 960: 0c84 + mov a2, sp /* (FP)-0x20 */ # 962: 2d01 + call0 memcpy # 964: 01f9ffc0 + # 968: 0000 + l32i a0, a12, 0x164 /* [arg0+0x164] */ # 96a: 022c59 + l32i a3, sp, 12 /* [(local1)] */ # 96d: 3831 + bnei a0, 2, .Lbr060 # 96f: 662004 + mov a3, sp /* (FP)-0x20 */ # 972: 3d01 + j .Lbr061 # 974: 860000 +.Lbr060: addi a3, a3, 61 /* [(local1)]+0x3d */ # 977: 32c33d +.Lbr061: l32i a5, sp, 8 /* [(local0)] */ # 97a: 5821 + movi a4, 480 /* 0x000001e0 */ # 97c: 42a1e0 + movi a2, 408 /* 0x00000198 */ # 97f: 22a198 + moveqz a2, a4, a5 # 982: 502483 + add a2, a12, a2 # 985: 2a2c + movi a4, 8 /* 0x00000008 */ # 987: 0c84 + call0 memcpy # 989: 01f0ffc0 + # 98d: 0000 + l32i a12, sp, 20 /* [(local3)] */ # 98f: c851 + l32i a0, sp, 16 /* [(local2)] */ # 991: 0841 + addi sp, sp, 32 /* (top of frame) */ # 993: 12c120 + ret # 996: 0df0 + + .literal_position # 998: 00000000 + # 99c: 00000000 + # 9a0: 00000000 + +# Function @ .irom0.text+0x9a4 +# Local variables/stack: +# (local0): word @ -0x50 +# (local1): word[8] @ -0x4c +# (local2): word @ -0x2c +# (local3): word[3] @ -0x28 +# (local4): word @ -0x1c +# (local5): word @ -0x18 +# (local6): word @ -0x14 +# (local7): word @ -0x10 +# (local8): word @ -0xc +# (local9): word @ -0x8 +# (local10): word @ -0x4 + .balign 4 +.Lfunc020: addi sp, sp, -80 /* (local0) */ # 9a4: 12c1b0 + s32i a14, sp, 76 /* a14 -> [(local10)] */ # 9a7: e26113 + s32i a4, sp, 56 /* arg2 -> [(local5)] */ # 9aa: 49e1 + s32i a0, sp, 64 /* a0 -> [(local7)] */ # 9ac: 026110 + s32i a12, sp, 68 /* a12 -> [(local8)] */ # 9af: c26111 + s32i a13, sp, 72 /* a13 -> [(local9)] */ # 9b2: d26112 + mov a12, a2 /* arg0 */ # 9b5: cd02 + mov a13, a3 /* arg1 */ # 9b7: dd03 + movi a2, 7 /* 0x00000007 */ # 9b9: 0c72 + call0 wpa_sm_set_state # 9bb: 050000 + addi a2, a13, 95 /* arg1+0x5f */ # 9be: 22cd5f + l8ui a14, a13, 2 /* [arg1+0x2] */ # 9c1: e20d02 + l8ui a3, a13, 94 /* [arg1+0x5e] */ # 9c4: 320d5e + l8ui a0, a13, 1 /* [arg1+0x1] */ # 9c7: 020d01 + l8ui a4, a13, 93 /* [arg1+0x5d] */ # 9ca: 420d5d + slli a0, a0, 8 # 9cd: 800011 + slli a4, a4, 8 # 9d0: 804411 + or a3, a3, a4 # 9d3: 403320 + or a14, a14, a0 # 9d6: 00ee20 + extui a14, a14, 0, 16 # 9d9: e0e0f4 + extui a3, a3, 0, 16 # 9dc: 3030f4 + addi a4, sp, 16 /* (FP)-0x40 */ # 9df: 42c110 + call0 wpa_supplicant_parse_ies # 9e2: 01edffc0 + # 9e6: 0000 + l32i a5, sp, 36 /* [(local2)] */ # 9e8: 5891 + beqz a5, .Lbr064 # 9ea: 9cc5 + bbsi a14, 12, .Lbr064 # 9ec: c7ee1a +.Lbr062: mov a2, a12 /* arg0 */ # 9ef: 2d0c + movi a3, 1 /* 0x00000001 */ # 9f1: 0c13 + call0 wpa_sm_deauthenticate # 9f3: 01eaffc0 + # 9f7: 0000 +.Lbr063: l32i a12, sp, 68 /* [(local8)] */ # 9f9: c22111 + l32i a13, sp, 72 /* [(local9)] */ # 9fc: d22112 + l32i a14, sp, 76 /* [(local10)] */ # 9ff: e22113 + l32i a0, sp, 64 /* [(local7)] */ # a02: 022110 + addi sp, sp, 80 /* (top of frame) */ # a05: 12c150 + ret # a08: 0df0 +.Lbr064: mov a2, a12 /* arg0 */ # a0a: 2d0c + addi a4, sp, 16 /* (FP)-0x40 */ # a0c: 42c110 + movi a3, 350 /* 0x0000015e */ # a0f: 32a15e + add a3, a12, a3 /* arg0+0x15e */ # a12: 3a3c + s32i a3, sp, 52 /* arg0+0x15e -> [(local4)] */ # a14: 39d1 + call0 .Lfunc017 # a16: c5d4ff + bltz a2, .Lbr062 # a19: 9622fd + addi a3, a13, 13 /* arg1+0xd */ # a1c: db3d + movi a4, 32 /* 0x00000020 */ # a1e: 2c04 + movi a2, 216 /* 0x000000d8 */ # a20: 22a0d8 + add a2, a12, a2 /* arg0+0xd8 */ # a23: 2a2c + call0 memcmp # a25: 01deffc0 + # a29: 0000 + bnez a2, .Lbr062 # a2b: 5602fc + l8ui a2, a13, 3 /* [arg1+0x3] */ # a2e: 220d03 + l8ui a0, a13, 4 /* [arg1+0x4] */ # a31: 020d04 + slli a2, a2, 8 # a34: 802211 + or a0, a0, a2 # a37: 200020 + movi a2, 172 /* 0x000000ac */ # a3a: 22a0ac + add a2, a12, a2 /* arg0+0xac */ # a3d: 2a2c + s32i a2, sp, 60 /* arg0+0xac -> [(local6)] */ # a3f: 29f1 + l32i a2, a12, 0x114 /* [arg0+0x114] */ # a41: 222c45 + extui a0, a0, 0, 16 # a44: 0000f4 + beqi a2, 2, .Lbr065 # a47: 262208 + bnei a2, 8, .Lbr066 # a4a: 668208 + beqi a0, 16, .Lbr066 # a4d: 26b005 + j .Lbr062 # a50: c6e6ff +.Lbr065: bnei a0, 32, .Lbr062 # a53: 66c098 +.Lbr066: l32i a3, sp, 60 /* [(local6)] */ # a56: 38f1 + movi a4, 1 /* 0x00000001 */ # a58: 0c14 + mov a2, a12 /* arg0 */ # a5a: 2d0c + s32i a4, a3, 76 /* 0x00000001 -> [[(local6)]+0x4c] */ # a5c: 426313 + mov a3, a13 /* arg1 */ # a5f: 3d0d + call0 .Lfunc019 # a61: c5eeff + movi a4, 0 /* 0x00000000 */ # a64: 0c04 + l32i a6, sp, 60 /* [(local6)] */ # a66: 68f1 + l32i a5, sp, 36 /* [(local2)] */ # a68: 5891 + s16i a14, a6, 0x1b0 /* a14 -> [[(local6)]+0x1b0] */ # a6a: e256d8 + s32i a4, a6, 0x1ac /* 0x00000000 -> [[(local6)]+0x1ac] */ # a6d: 42666b + beqz a5, .Lbr067 # a70: 9c35 + mov a2, a12 /* arg0 */ # a72: 2d0c + mov a3, a13 /* arg1 */ # a74: 3d0d + call0 .Lfunc019 # a76: 85edff + mov a2, a12 /* arg0 */ # a79: 2d0c + l32i a3, sp, 36 /* [(local2)] */ # a7b: 3891 + l32i a4, sp, 40 /* [(local3)] */ # a7d: 48a1 + mov a5, a14 # a7f: 5d0e + call0 .Lfunc014 # a81: 85c3ff + bltz a2, .Lbr062 # a84: 9672f6 +.Lbr067: mov a2, a12 /* arg0 */ # a87: 2d0c + addi a3, sp, 16 /* (FP)-0x40 */ # a89: 32c110 + call0 .Lfunc016 # a8c: 45ccff + bltz a2, .Lbr062 # a8f: 96c2f5 + mov a6, a14 # a92: 6d0e + mov a4, a13 /* arg1 */ # a94: 4d0d + l32i a3, sp, 52 /* [(local4)] */ # a96: 38d1 + l32i a5, sp, 56 /* [(local5)] */ # a98: 58e1 + mov a2, a12 /* arg0 */ # a9a: 2d0c + movi a8, 0 /* 0x00000000 */ # a9c: 0c08 + addi a7, a12, 48 /* arg0+0x30 */ # a9e: 72cc30 + s32i a7, sp, 4 /* arg0+0x30 -> [(local1)] */ # aa1: 7911 + s32i a8, sp, 0 /* 0x00000000 -> [(local0)] */ # aa3: 8901 + movi a7, 0 /* 0x00000000 */ # aa5: 0c07 + call0 .Lfunc018 # aa7: 45dbff + bnez a2, .Lbr062 # aaa: 5612f4 + j .Lbr063 # aad: 06d2ff + + .literal_position # ab0: 00000000 + # ab4: 00000000 + +# Function @ .irom0.text+0xab8 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word @ -0x8 +# (local3): word @ -0x4 + .balign 4 +.Lfunc021: addi sp, sp, -16 /* (local0) */ # ab8: 12c1f0 + s32i a12, sp, 12 /* a12 -> [(local3)] */ # abb: c931 + s32i a0, sp, 8 /* a0 -> [(local2)] */ # abd: 0921 + mov a12, a2 /* arg0 */ # abf: cd02 + movi a0, 348 /* 0x0000015c */ # ac1: 02a15c + add a0, a2, a0 /* arg0+0x15c */ # ac4: 0a02 + s32i a0, sp, 0 /* arg0+0x15c -> [(local0)] */ # ac6: 0901 + l16ui a0, a0, 0x100 /* [arg0+0x25c] */ # ac8: 021080 + s32i a0, sp, 4 /* [arg0+0x25c] -> [(local1)] */ # acb: 0911 + bbci a0, 6, .Lbr068 # acd: 676005 + call0 .Lfunc009 # ad0: c59fff + bnez a2, .Lbr072 # ad3: 560205 +.Lbr068: movi a2, 8 /* 0x00000008 */ # ad6: 0c82 + call0 wpa_sm_set_state # ad8: 01f6ffc0 + # adc: 0000 + l32i a2, sp, 0 /* [(local0)] */ # ade: 2801 + l32i a2, a2, 252 /* [[(local0)]+0xfc] */ # ae0: 22223f + movi a0, 350 /* 0x0000015e */ # ae3: 02a15e + beqz a2, .Lbr069 # ae6: 9cf2 + mov a2, a12 /* arg0 */ # ae8: 2d0c + movi a3, 552 /* 0x00000228 */ # aea: 32a228 + add a3, a12, a3 /* arg0+0x228 */ # aed: 3a3c + call0 .Lfunc012 # aef: 85b1ff + bnez a2, .Lbr072 # af2: fc12 + mov a2, a12 /* arg0 */ # af4: 2d0c + movi a5, 512 /* 0x00000200 */ # af6: 52a200 + l32i a4, sp, 4 /* [(local1)] */ # af9: 4811 + movi a3, 350 /* 0x0000015e */ # afb: 32a15e + add a3, a12, a3 /* arg0+0x15e */ # afe: 3a3c + and a4, a4, a5 # b00: 504410 + call0 .Lfunc011 # b03: 85aaff + movi a0, 350 /* 0x0000015e */ # b06: 02a15e +.Lbr069: l32i a6, sp, 4 /* [(local1)] */ # b09: 6811 + bbci a6, 9, .Lbr070 # b0b: 97660d + mov a2, a12 /* arg0 */ # b0e: 2d0c + movi a4, 1 /* 0x00000001 */ # b10: 0c14 + movi a5, 1 /* 0x00000001 */ # b12: 0c15 + add a3, a12, a0 /* arg0+0x15e */ # b14: 0a3c + call0 wpa_sm_mlme_setprotection # b16: 01e7ffc0 + # b1a: 0000 +.Lbr070: movi a2, 0 /* 0x00000000 */ # b1c: 0c02 +.Lbr071: l32i a12, sp, 12 /* [(local3)] */ # b1e: c831 + l32i a0, sp, 8 /* [(local2)] */ # b20: 0821 + addi sp, sp, 16 /* (top of frame) */ # b22: 12c110 + ret # b25: 0df0 +.Lbr072: movi a2, 1 /* 0x00000001 */ # b27: 0c12 + j .Lbr071 # b29: 46fcff + + .literal_position # b2c: 00000000 + # b30: 00000000 + +# Function @ .irom0.text+0xb34 +# Local variables/stack: +# (local0): word @ -0x2c +# (local1): word[3] @ -0x28 +# (local2): word @ -0x1c +# (local3): word @ -0x18 +# (local4): word @ -0x14 +# (local5): word[4] @ -0x10 + .balign 4 +.Lfunc022: addi sp, sp, -64 /* (FP)-0x40 */ # b34: 12c1c0 + s32i a5, sp, 36 /* arg3 -> [(local2)] */ # b37: 5991 + s32i a0, sp, 40 /* a0 -> [(local3)] */ # b39: 09a1 + s32i a13, sp, 48 /* a13 -> [(local5)] */ # b3b: d9c1 + s32i a12, sp, 44 /* a12 -> [(local4)] */ # b3d: c9b1 + mov a13, a2 /* arg0 */ # b3f: dd02 + mov a2, a3 /* arg1 */ # b41: 2d03 + mov a12, a6 /* arg4 */ # b43: cd06 + mov a3, a4 /* arg2 */ # b45: 3d04 + mov a4, sp /* (FP)-0x40 */ # b47: 4d01 + call0 wpa_supplicant_parse_ies # b49: 01f8ffc0 + # b4d: 0000 + l32i a0, sp, 20 /* [(local0)] */ # b4f: 0851 + l32i a2, sp, 36 /* [(local2)] */ # b51: 2891 + beqz a0, .Lbr073 # b53: 8c10 + bbsi a2, 12, .Lbr074 # b55: c7e204 +.Lbr073: movi a2, -1 /* 0xffffffff */ # b58: 7cf2 + j .Lbr075 # b5a: c61300 +.Lbr074: beqz a0, .Lbr073 # b5d: 1670ff + addi a5, a12, 8 /* arg4+0x8 */ # b60: 8b5c + l32i a4, sp, 24 /* [(local1)] */ # b62: 4861 + mov a6, a12 /* arg4 */ # b64: 6d0c + addi a4, a4, -2 /* [(local1)]-0x2 */ # b66: 42c4fe + mov a3, a4 /* [(local1)]-0x2 */ # b69: 3d04 + s32i a4, a12, 48 /* [(local1)]-0x2 -> [arg4+0x30] */ # b6b: 49cc + l32i a2, a13, 0x118 /* [arg0+0x118] */ # b6d: 222d46 + call0 .Lfunc010 # b70: c59dff + bnez a2, .Lbr073 # b73: 5612fe + l32i a3, sp, 20 /* [(local0)] */ # b76: 3851 + l8ui a4, a3, 0 /* [[(local0)]] */ # b78: 420300 + extui a4, a4, 0, 2 # b7b: 404014 + s32i a4, a12, 12 /* a4 -> [arg4+0xc] */ # b7e: 493c + l8ui a3, a3, 0 /* [[(local0)]] */ # b80: 320300 + mov a2, a13 /* arg0 */ # b83: 2d0d + extui a3, a3, 2, 1 # b85: 303204 + call0 .Lfunc013 # b88: 85b1ff + s32i a2, a12, 4 /* a2 -> [arg4+0x4] */ # b8b: 291c + l32i a4, sp, 24 /* [(local1)] */ # b8d: 4861 + movi a5, 32 /* 0x00000020 */ # b8f: 2c05 + addi a4, a4, -2 /* [(local1)]-0x2 */ # b91: 42c4fe + bltu a5, a4, .Lbr073 # b94: 4735c0 + l32i a3, sp, 20 /* [(local0)] */ # b97: 3851 + addi a2, a12, 16 /* arg4+0x10 */ # b99: 22cc10 + addi a3, a3, 2 /* [(local0)]+0x2 */ # b9c: 2b33 + call0 memcpy # b9e: 01e4ffc0 + # ba2: 0000 + mov a2, a13 /* arg0 */ # ba4: 2d0d + mov a3, sp /* (FP)-0x40 */ # ba6: 3d01 + call0 .Lfunc016 # ba8: 85baff + movi a2, 0 /* 0x00000000 */ # bab: 0c02 +.Lbr075: l32i a12, sp, 44 /* [(local4)] */ # bad: c8b1 + l32i a13, sp, 48 /* [(local5)] */ # baf: d8c1 + l32i a0, sp, 40 /* [(local3)] */ # bb1: 08a1 + addi sp, sp, 64 /* (top of frame) */ # bb3: 12c140 + ret # bb6: 0df0 + + .literal_position # bb8: 00000000 + # bbc: 00000000 + # bc0: 00000000 + # bc4: 00000000 + # bc8: 00000000 + +# Function @ .irom0.text+0xbcc +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word @ -0x10 +# (local5): word @ -0xc +# (local6): word @ -0x8 +# (local7): word @ -0x4 + .balign 4 +.Lfunc023: addi sp, sp, -64 /* (FP)-0x40 */ # bcc: 12c1c0 + s32i a0, sp, 44 /* a0 -> [(local3)] */ # bcf: 09b1 + s32i a15, sp, 60 /* a15 -> [(local7)] */ # bd1: f9f1 + s32i a14, sp, 56 /* a14 -> [(local6)] */ # bd3: e9e1 + s32i a13, sp, 52 /* a13 -> [(local5)] */ # bd5: d9d1 + s32i a12, sp, 48 /* a12 -> [(local4)] */ # bd7: c9c1 + l32i a13, sp, 64 /* [(local8)] */ # bd9: d22110 + mov a12, a4 /* arg2 */ # bdc: cd04 + mov a14, a3 /* arg1 */ # bde: ed03 + mov a4, a7 /* arg5 */ # be0: 4d07 + mov a15, a12 /* arg2 */ # be2: fd0c + l8ui a7, a14, 3 /* [arg1+0x3] */ # be4: 720e03 + l8ui a3, a3, 4 /* [arg1+0x4] */ # be7: 320304 + slli a7, a7, 8 # bea: 807711 + or a3, a3, a7 # bed: 703320 + extui a3, a3, 0, 16 # bf0: 3030f4 + s32i a3, a13, 48 /* a3 -> [[(local8)]+0x30] */ # bf3: 39cd + bgeu a6, a12, .Lbr080 # bf5: c7b649 +.Lbr076: movi a0, -1 /* 0xffffffff */ # bf8: 7cf0 + j .Lbr079 # bfa: c60c00 +.Lbr077: l32i a8, sp, 36 /* [(local1)] */ # bfd: 8891 + movi a9, 7 /* 0x00000007 */ # bff: 0c79 + bnei a8, 2, .Lbr076 # c01: 6628f3 + bany a9, a12, .Lbr076 # c04: c789f0 + movi a10, 32 /* 0x00000020 */ # c07: 2c0a + bltu a10, a15, .Lbr076 # c09: f73aeb + srli a3, a15, 3 # c0c: f03341 + addi a4, a14, 95 /* arg1+0x5f */ # c0f: 42ce5f + l32i a2, sp, 32 /* [(local0)] */ # c12: 2881 + addi a5, a13, 16 /* [(local8)]+0x10 */ # c14: 52cd10 + addi a2, a2, 64 /* [(local0)]+0x40 */ # c17: 22c240 + call0 aes_unwrap # c1a: 01e7ffc0 + # c1e: 0000 + bnez a2, .Lbr076 # c20: 5642fd +.Lbr078: l32i a3, sp, 40 /* [(local2)] */ # c23: 38a1 + l32i a2, sp, 32 /* [(local0)] */ # c25: 2881 + extui a3, a3, 6, 1 # c27: 303604 + call0 .Lfunc013 # c2a: 85a7ff + movi a0, 0 /* 0x00000000 */ # c2d: 0c00 + s32i a2, a13, 4 /* a2 -> [[(local8)]+0x4] */ # c2f: 291d +.Lbr079: l32i a12, sp, 48 /* [(local4)] */ # c31: c8c1 + l32i a13, sp, 52 /* [(local5)] */ # c33: d8d1 + l32i a14, sp, 56 /* [(local6)] */ # c35: e8e1 + l32i a15, sp, 60 /* [(local7)] */ # c37: f8f1 + mov a2, a0 # c39: 2d00 + l32i a0, sp, 44 /* [(local3)] */ # c3b: 08b1 + addi sp, sp, 64 /* (local8) */ # c3d: 12c140 + ret # c40: 0df0 +.Lbr080: s32i a4, sp, 36 /* arg5 -> [(local1)] */ # c42: 4991 + s32i a5, sp, 40 /* arg3 -> [(local2)] */ # c44: 59a1 + s32i a2, sp, 32 /* arg0 -> [(local0)] */ # c46: 2981 + bnei a4, 2, .Lbr081 # c48: 662405 + bltui a12, 8, .Lbr076 # c4b: b68ca9 + addi a15, a12, -8 /* arg2-0x8 */ # c4e: f2ccf8 +.Lbr081: mov a4, a15 # c51: 4d0f + addi a5, a13, 8 /* [(local8)]+0x8 */ # c53: 8b5d + l32i a2, sp, 32 /* [(local0)] */ # c55: 2881 + mov a6, a13 /* [(local8)] */ # c57: 6d0d + l32i a2, a2, 0x118 /* [[(local0)]+0x118] */ # c59: 222246 + call0 .Lfunc010 # c5c: 058fff + bnez a2, .Lbr076 # c5f: 5652f9 + l32i a4, sp, 40 /* [(local2)] */ # c62: 48a1 + l32i a3, sp, 36 /* [(local1)] */ # c64: 3891 + extui a4, a4, 4, 2 # c66: 404414 + s32i a4, a13, 12 /* a4 -> [[(local8)]+0xc] */ # c69: 493d + bnei a3, 1, .Lbr077 # c6b: 66138e + mov a2, sp /* (FP)-0x40 */ # c6e: 2d01 + addi a3, a14, 45 /* arg1+0x2d */ # c70: 32ce2d + movi a4, 16 /* 0x00000010 */ # c73: 1c04 + call0 memcpy # c75: 01d1ffc0 + # c79: 0000 + addi a2, sp, 16 /* (FP)-0x30 */ # c7b: 22c110 + l32i a3, sp, 32 /* [(local0)] */ # c7e: 3881 + movi a4, 16 /* 0x00000010 */ # c80: 1c04 + addi a3, a3, 64 /* [(local0)]+0x40 */ # c82: 32c340 + call0 memcpy # c85: 01ceffc0 + # c89: 0000 + movi a4, 32 /* 0x00000020 */ # c8b: 2c04 + bgeu a4, a12, .Lbr082 # c8d: c7b402 + j .Lbr076 # c90: 06d9ff +.Lbr082: addi a3, a14, 95 /* arg1+0x5f */ # c93: 32ce5f + mov a4, a12 /* arg2 */ # c96: 4d0c + addi a14, a13, 16 /* [(local8)]+0x10 */ # c98: e2cd10 + mov a2, a14 /* [(local8)]+0x10 */ # c9b: 2d0e + call0 memcpy # c9d: 01c9ffc0 + # ca1: 0000 + mov a6, a12 /* arg2 */ # ca3: 6d0c + mov a5, a14 /* [(local8)]+0x10 */ # ca5: 5d0e + mov a2, sp /* (FP)-0x40 */ # ca7: 2d01 + movi a3, 32 /* 0x00000020 */ # ca9: 2c03 + movi a4, 256 /* 0x00000100 */ # cab: 42a100 + call0 rc4_skip # cae: 01c6ffc0 + # cb2: 0000 + bnez a2, .Lbr076 # cb4: 5602f4 + j .Lbr078 # cb7: 06daff + + .literal_position # cbc: 8e880000 + # cc0: 00000000 + # cc4: 00000000 + # cc8: 00000000 + +# Function @ .irom0.text+0xccc +# Local variables/stack: +# (local0): word @ -0x30 +# (local1): word[3] @ -0x2c +# (local2): word @ -0x20 +# (local3): word @ -0x1c +# (local4): word @ -0x18 +# (local5): word @ -0x14 +# (local6): word @ -0x10 +# (local7): word @ -0xc +# (local8): word @ -0x8 +# (local9): word @ -0x4 + .balign 4 +.Lfunc024: addi sp, sp, -48 /* (local0) */ # ccc: 12c1d0 + addi a6, sp, 16 /* (local2) */ # ccf: 62c110 + addi a7, sp, 20 /* (local3) */ # cd2: 72c114 + s32i a0, sp, 32 /* a0 -> [(local6)] */ # cd5: 0981 + s32i a13, sp, 40 /* a13 -> [(local8)] */ # cd7: d9a1 + s32i a14, sp, 44 /* a14 -> [(local9)] */ # cd9: e9b1 + s32i a12, sp, 36 /* a12 -> [(local7)] */ # cdb: c991 + s32i a5, sp, 28 /* arg3 -> [(local5)] */ # cdd: 5971 + mov a12, a2 /* arg0 */ # cdf: cd02 + movi a5, 95 /* 0x0000005f */ # ce1: 5cf5 + mov a14, a3 /* arg1 */ # ce3: ed03 + mov a13, a4 /* arg2 */ # ce5: dd04 + movi a3, 3 /* 0x00000003 */ # ce7: 0c33 + movi a4, 0 /* 0x00000000 */ # ce9: 0c04 + call0 wpa_sm_alloc_eapol # ceb: 01f5ffc0 + # cef: 0000 + mov a0, a2 # cf1: 0d02 + bnez a2, .Lbr083 # cf3: cc32 + movi a2, -1 /* 0xffffffff */ # cf5: 7cf2 + j .Lbr086 # cf7: 462300 +.Lbr083: l32i a9, sp, 20 /* [(local3)] */ # cfa: 9851 + movi a4, 768 /* 0x00000300 */ # cfc: 42a300 + movi a10, 2 /* 0x00000002 */ # cff: 0c2a + movi a8, 254 /* 0x000000fe */ # d01: 82a0fe + l32i a11, a12, 0x164 /* [arg0+0x164] */ # d04: b22c59 + l32i a3, sp, 28 /* [(local5)] */ # d07: 3871 + movi a5, 48 /* 0x00000030 */ # d09: 3c05 + and a3, a3, a5 # d0b: 503310 + addi a11, a11, -2 /* [arg0+0x164]-0x2 */ # d0e: b2cbfe + moveqz a8, a10, a11 # d11: b08a83 + or a3, a13, a3 # d14: 303d20 + or a3, a3, a4 # d17: 403320 + s8i a8, a9, 0 /* a8 -> [[(local3)]] */ # d1a: 824900 + l32i a7, sp, 20 /* [(local3)] */ # d1d: 7851 + srli a6, a3, 8 # d1f: 306841 + s8i a6, a7, 1 /* a6 -> [[(local3)]+0x1] */ # d22: 624701 + l32i a4, sp, 20 /* [(local3)] */ # d25: 4851 + s32i a0, sp, 24 /* a0 -> [(local4)] */ # d27: 0961 + s8i a3, a4, 2 /* a3 -> [[(local3)]+0x2] */ # d29: 324402 + l32i a2, a12, 0x164 /* [arg0+0x164] */ # d2c: 222c59 + l32i a5, sp, 20 /* [(local3)] */ # d2f: 5851 + bnei a2, 2, .Lbr084 # d31: 66220c + movi a6, 0 /* 0x00000000 */ # d34: 0c06 + s8i a6, a5, 3 /* 0x00 -> [[(local3)]+0x3] */ # d36: 624503 + l32i a7, sp, 20 /* [(local3)] */ # d39: 7851 + s8i a6, a7, 4 /* 0x00 -> [[(local3)]+0x4] */ # d3b: 624704 + j .Lbr085 # d3e: c60200 +.Lbr084: addi a2, a5, 3 /* [(local3)]+0x3 */ # d41: 3b25 + addi a3, a14, 3 /* arg1+0x3 */ # d43: 3b3e + movi a4, 2 /* 0x00000002 */ # d45: 0c24 + call0 memcpy # d47: 01dfffc0 + # d4b: 0000 +.Lbr085: addi a3, a14, 5 /* arg1+0x5 */ # d4d: 5b3e + l32i a2, sp, 20 /* [(local3)] */ # d4f: 2851 + movi a4, 8 /* 0x00000008 */ # d51: 0c84 + addi a2, a2, 5 /* [(local3)]+0x5 */ # d53: 5b22 + call0 memcpy # d55: 01dcffc0 + # d59: 0000 + mov a4, a13 /* arg2 */ # d5b: 4d0d + l32i a7, sp, 24 /* [(local4)] */ # d5d: 7861 + mov a2, a12 /* arg0 */ # d5f: 2d0c + addi a3, a12, 48 /* arg0+0x30 */ # d61: 32cc30 + movi a6, 0x0000888e # d64: 61d6ff + l32i a11, sp, 20 /* [(local3)] */ # d67: b851 + movi a9, 0 /* 0x00000000 */ # d69: 0c09 + s8i a9, a11, 93 /* 0x00 -> [[(local3)]+0x5d] */ # d6b: 924b5d + l32i a10, sp, 20 /* [(local3)] */ # d6e: a851 + movi a5, 350 /* 0x0000015e */ # d70: 52a15e + s8i a9, a10, 94 /* 0x00 -> [[(local3)]+0x5e] */ # d73: 924a5e + l32i a8, sp, 16 /* [(local2)] */ # d76: 8841 + s32i a8, sp, 0 /* [(local2)] -> [(local0)] */ # d78: 8901 + l32i a8, sp, 20 /* [(local3)] */ # d7a: 8851 + add a5, a12, a5 /* arg0+0x15e */ # d7c: 5a5c + addi a8, a8, 77 /* [(local3)]+0x4d */ # d7e: 82c84d + s32i a8, sp, 4 /* [(local3)]+0x4d -> [(local1)] */ # d81: 8911 + call0 .Lfunc002 # d83: c529ff + movi a2, 0 /* 0x00000000 */ # d86: 0c02 +.Lbr086: l32i a12, sp, 36 /* [(local7)] */ # d88: c891 + l32i a13, sp, 40 /* [(local8)] */ # d8a: d8a1 + l32i a14, sp, 44 /* [(local9)] */ # d8c: e8b1 + l32i a0, sp, 32 /* [(local6)] */ # d8e: 0881 + addi sp, sp, 48 /* (top of frame) */ # d90: 12c130 + ret # d93: 0df0 + + .literal_position # d98: 00000000 + # d9c: 00000000 + # da0: 00000000 + +# Function @ .irom0.text+0xda4 +# Local variables/stack: +# (local0): word[4] @ -0x30 +# (local1): word @ -0x20 +# (local2): word @ -0x1c +# (local3): word @ -0x18 +# (local4): word @ -0x14 +# (local5): word @ -0x10 +# (local6): word @ -0xc +# (local7): word @ -0x8 +# (local8): word @ -0x4 + .balign 4 +.Lfunc025: movi a3, 0 /* 0x00000000 */ # da4: 0c03 + addi sp, sp, -48 /* (local0) */ # da6: 12c1d0 + s32i a14, sp, 40 /* a14 -> [(local7)] */ # da9: e9a1 + s32i a5, sp, 24 /* arg3 -> [(local3)] */ # dab: 5961 + s32i a6, sp, 16 /* arg4 -> [(local1)] */ # dad: 6941 + s32i a0, sp, 28 /* a0 -> [(local4)] */ # daf: 0971 + s32i a15, sp, 44 /* a15 -> [(local8)] */ # db1: f9b1 + s32i a12, sp, 32 /* a12 -> [(local5)] */ # db3: c981 + s32i a13, sp, 36 /* a13 -> [(local6)] */ # db5: d991 + mov a12, a2 /* arg0 */ # db7: cd02 + mov a13, a4 /* arg2 */ # db9: dd04 + movi a15, 552 /* 0x00000228 */ # dbb: f2a228 + movi a4, 52 /* 0x00000034 */ # dbe: 3c44 + add a15, a2, a15 /* arg0+0x228 */ # dc0: faf2 + mov a2, a15 /* arg0+0x228 */ # dc2: 2d0f + call0 memset # dc4: 01f5ffc0 + # dc8: 0000 + l8ui a14, a13, 2 /* [arg2+0x2] */ # dca: e20d02 + l8ui a4, a13, 94 /* [arg2+0x5e] */ # dcd: 420d5e + l8ui a0, a13, 1 /* [arg2+0x1] */ # dd0: 020d01 + l8ui a5, a13, 93 /* [arg2+0x5d] */ # dd3: 520d5d + slli a0, a0, 8 # dd6: 800011 + slli a5, a5, 8 # dd9: 805511 + or a4, a4, a5 # ddc: 504420 + or a14, a14, a0 # ddf: 00ee20 + extui a14, a14, 0, 16 # de2: e0e0f4 + movi a0, 228 /* 0x000000e4 */ # de5: 02a0e4 + add a0, a12, a0 /* arg0+0xe4 */ # de8: 0a0c + s32i a0, sp, 20 /* arg0+0xe4 -> [(local2)] */ # dea: 0951 + l32i a0, a12, 0x164 /* [arg0+0x164] */ # dec: 022c59 + extui a4, a4, 0, 16 # def: 4040f4 + bnei a0, 2, .Lbr087 # df2: 662010 + mov a6, a15 /* arg0+0x228 */ # df5: 6d0f + mov a2, a12 /* arg0 */ # df7: 2d0c + addi a3, a13, 95 /* arg2+0x5f */ # df9: 32cd5f + mov a5, a14 # dfc: 5d0e + call0 .Lfunc022 # dfe: 45d3ff + mov a15, a2 # e01: fd02 + j .Lbr088 # e03: 060400 +.Lbr087: s32i a15, sp, 0 /* arg0+0x228 -> [(local0)] */ # e06: f901 + l32i a6, sp, 24 /* [(local3)] */ # e08: 6861 + mov a2, a12 /* arg0 */ # e0a: 2d0c + mov a3, a13 /* arg2 */ # e0c: 3d0d + mov a5, a14 # e0e: 5d0e + l32i a7, sp, 16 /* [(local1)] */ # e10: 7841 + call0 .Lfunc023 # e12: 85dbff + mov a15, a2 # e15: fd02 +.Lbr088: movi a2, 8 /* 0x00000008 */ # e17: 0c82 + call0 wpa_sm_set_state # e19: 01e0ffc0 + # e1d: 0000 + bnez a15, .Lbr089 # e1f: dcbf + l32i a15, sp, 16 /* [(local1)] */ # e21: f841 + mov a2, a12 /* arg0 */ # e23: 2d0c + mov a3, a13 /* arg2 */ # e25: 3d0d + movi a4, 0 /* 0x00000000 */ # e27: 0c04 + call0 .Lfunc019 # e29: 45b2ff + mov a5, a14 # e2c: 5d0e + mov a4, a15 /* [(local1)] */ # e2e: 4d0f + mov a3, a13 /* arg2 */ # e30: 3d0d + l32i a6, sp, 20 /* [(local2)] */ # e32: 6851 + mov a2, a12 /* arg0 */ # e34: 2d0c + s16i a14, a6, 0x178 /* a14 -> [[(local2)]+0x178] */ # e36: e256bc + call0 .Lfunc024 # e39: 05e9ff + beqz a2, .Lbr090 # e3c: 8c82 +.Lbr089: mov a2, a12 /* arg0 */ # e3e: 2d0c + movi a3, 1 /* 0x00000001 */ # e40: 0c13 + call0 wpa_sm_deauthenticate # e42: 01d7ffc0 + # e46: 0000 +.Lbr090: l32i a12, sp, 32 /* [(local5)] */ # e48: c881 + l32i a13, sp, 36 /* [(local6)] */ # e4a: d891 + l32i a14, sp, 40 /* [(local7)] */ # e4c: e8a1 + l32i a15, sp, 44 /* [(local8)] */ # e4e: f8b1 + l32i a0, sp, 28 /* [(local4)] */ # e50: 0871 + addi sp, sp, 48 /* (top of frame) */ # e52: 12c130 + ret # e55: 0df0 + + .balign 4 +# Function @ .irom0.text+0xe58 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word @ -0x8 +# (local3): word @ -0x4 + .balign 4 +.Lfunc026: movi a3, 1 /* 0x00000001 */ # e58: 0c13 + addi sp, sp, -16 /* (local0) */ # e5a: 12c1f0 + s32i a12, sp, 12 /* a12 -> [(local3)] */ # e5d: c931 + s32i a0, sp, 8 /* a0 -> [(local2)] */ # e5f: 0921 + mov a12, a2 /* arg0 */ # e61: cd02 + movi a0, 228 /* 0x000000e4 */ # e63: 02a0e4 + add a0, a2, a0 /* arg0+0xe4 */ # e66: 0a02 + l32i a4, a0, 132 /* [arg0+0x168] */ # e68: 422021 + l16ui a2, a0, 0x178 /* [arg0+0x25c] */ # e6b: 2210bc + s32i a2, sp, 0 /* [arg0+0x25c] -> [(local0)] */ # e6e: 2901 + l32i a0, a0, 0x174 /* [arg0+0x258] */ # e70: 02205d + addi a4, a4, -9 /* [arg0+0x168]-0x9 */ # e73: 42c4f7 + movi a2, 0 /* 0x00000000 */ # e76: 0c02 + moveqz a2, a3, a4 # e78: 402383 + s32i a2, sp, 4 /* a2 -> [(local1)] */ # e7b: 2911 + beqz a0, .Lbr091 # e7d: 9c60 + mov a2, a12 /* arg0 */ # e7f: 2d0c + movi a3, 552 /* 0x00000228 */ # e81: 32a228 + add a3, a12, a3 /* arg0+0x228 */ # e84: 3a3c + call0 .Lfunc012 # e86: 0578ff + bnez a2, .Lbr091 # e89: cca2 + l32i a4, sp, 4 /* [(local1)] */ # e8b: 4811 + beqz a4, .Lbr093 # e8d: 9c14 + movi a2, 9 /* 0x00000009 */ # e8f: 0c92 + call0 wpa_sm_set_state # e91: 050000 + j .Lbr094 # e94: 060700 +.Lbr091: movi a2, 1 /* 0x00000001 */ # e97: 0c12 +.Lbr092: l32i a12, sp, 12 /* [(local3)] */ # e99: c831 + l32i a0, sp, 8 /* [(local2)] */ # e9b: 0821 + addi sp, sp, 16 /* (top of frame) */ # e9d: 12c110 + ret # ea0: 0df0 +.Lbr093: mov a2, a12 /* arg0 */ # ea2: 2d0c + movi a5, 512 /* 0x00000200 */ # ea4: 52a200 + l32i a4, sp, 0 /* [(local0)] */ # ea7: 4801 + movi a3, 350 /* 0x0000015e */ # ea9: 32a15e + add a3, a12, a3 /* arg0+0x15e */ # eac: 3a3c + and a4, a4, a5 # eae: 504410 + call0 .Lfunc011 # eb1: 856fff +.Lbr094: movi a2, 0 /* 0x00000000 */ # eb4: 0c02 + j .Lbr092 # eb6: c6f7ff + + .literal_position # ebc: 00000000 + # ec0: 00000000 + # ec4: 00000000 + # ec8: 00000000 + # ecc: 00000000 + # ed0: 00000000 + # ed4: 00000000 + # ed8: 00000000 + # edc: 00000000 + # ee0: 00000000 + +# Function @ .irom0.text+0xee4 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word @ -0x10 +# (local5): word @ -0xc +# (local6): word @ -0x8 +# (local7): word @ -0x4 + .balign 4 +.Lfunc027: addi sp, sp, -48 /* (FP)-0x30 */ # ee4: 12c1d0 + s32i a5, sp, 40 /* arg3 -> [(local6)] */ # ee7: 59a1 + s32i a6, sp, 44 /* arg4 -> [(local7)] */ # ee9: 69b1 + s32i a0, sp, 20 /* a0 -> [(local1)] */ # eeb: 0951 + s32i a13, sp, 28 /* a13 -> [(local3)] */ # eed: d971 + s32i a12, sp, 24 /* a12 -> [(local2)] */ # eef: c961 + s32i a4, sp, 36 /* arg2 -> [(local5)] */ # ef1: 4991 + s32i a14, sp, 32 /* a14 -> [(local4)] */ # ef3: e981 + movi a4, 16 /* 0x00000010 */ # ef5: 1c04 + mov a14, a3 /* arg1 */ # ef7: ed03 + mov a12, a2 /* arg0 */ # ef9: cd02 + addi a13, a3, 77 /* arg1+0x4d */ # efb: d2c34d + mov a2, sp /* (FP)-0x30 */ # efe: 2d01 + mov a3, a13 /* arg1+0x4d */ # f00: 3d0d + call0 memcpy # f02: 01eeffc0 + # f06: 0000 + l32i a2, a12, 180 /* [arg0+0xb4] */ # f08: 222c2d + beqz a2, .Lbr095 # f0b: bc12 + mov a2, a13 /* arg1+0x4d */ # f0d: 2d0d + movi a3, 0 /* 0x00000000 */ # f0f: 0c03 + movi a4, 16 /* 0x00000010 */ # f11: 1c04 + call0 memset # f13: 01ebffc0 + # f17: 0000 + l32i a3, sp, 36 /* [(local5)] */ # f19: 3891 + l32i a4, sp, 40 /* [(local6)] */ # f1b: 48a1 + l32i a5, sp, 44 /* [(local7)] */ # f1d: 58b1 + mov a6, a13 /* arg1+0x4d */ # f1f: 6d0d + addi a2, a12, 112 /* arg0+0x70 */ # f21: 22cc70 + s32i a2, sp, 16 /* arg0+0x70 -> [(local0)] */ # f24: 2941 + call0 wpa_eapol_key_mic # f26: 01e7ffc0 + # f2a: 0000 + mov a2, sp /* (FP)-0x30 */ # f2c: 2d01 + mov a3, a13 /* arg1+0x4d */ # f2e: 3d0d + movi a4, 16 /* 0x00000010 */ # f30: 1c04 + call0 memcmp # f32: 01e5ffc0 + # f36: 0000 + beqz a2, .Lbr102 # f38: 166207 + movi a2, 0 /* 0x00000000 */ # f3b: 0c02 + j .Lbr096 # f3d: 460000 +.Lbr095: movi a2, 0 /* 0x00000000 */ # f40: 0c02 +.Lbr096: bnez a2, .Lbr100 # f42: fc82 + l32i a3, a12, 176 /* [arg0+0xb0] */ # f44: 322c2c + beqz a3, .Lbr099 # f47: bc03 + mov a2, a13 /* arg1+0x4d */ # f49: 2d0d + movi a3, 0 /* 0x00000000 */ # f4b: 0c03 + movi a4, 16 /* 0x00000010 */ # f4d: 1c04 + call0 memset # f4f: 01dfffc0 + # f53: 0000 + addi a2, a12, 48 /* arg0+0x30 */ # f55: 22cc30 + l32i a3, sp, 36 /* [(local5)] */ # f58: 3891 + l32i a4, sp, 40 /* [(local6)] */ # f5a: 48a1 + l32i a5, sp, 44 /* [(local7)] */ # f5c: 58b1 + mov a6, a13 /* arg1+0x4d */ # f5e: 6d0d + call0 wpa_eapol_key_mic # f60: 01dcffc0 + # f64: 0000 + mov a3, a13 /* arg1+0x4d */ # f66: 3d0d + mov a2, sp /* (FP)-0x30 */ # f68: 2d01 + movi a4, 16 /* 0x00000010 */ # f6a: 1c04 + call0 memcmp # f6c: 01daffc0 + # f70: 0000 + beqz a2, .Lbr098 # f72: 8c32 +.Lbr097: movi a2, -1 /* 0xffffffff */ # f74: 7cf2 + j .Lbr101 # f76: c60a00 +.Lbr098: movi a2, 1 /* 0x00000001 */ # f79: 0c12 +.Lbr099: beqz a2, .Lbr097 # f7b: 1652ff +.Lbr100: movi a4, 8 /* 0x00000008 */ # f7e: 0c84 + addi a13, a14, 5 /* arg1+0x5 */ # f80: 5bde + movi a2, 252 /* 0x000000fc */ # f82: 22a0fc + add a2, a12, a2 /* arg0+0xfc */ # f85: 2a2c + mov a3, a13 /* arg1+0x5 */ # f87: 3d0d + call0 memcpy # f89: 01d3ffc0 + # f8d: 0000 + movi a4, 8 /* 0x00000008 */ # f8f: 0c84 + movi a2, 264 /* 0x00000108 */ # f91: 22a108 + movi a3, 1 /* 0x00000001 */ # f94: 0c13 + s32i a3, a12, 0x104 /* 0x00000001 -> [arg0+0x104] */ # f96: 326c41 + add a2, a12, a2 /* arg0+0x108 */ # f99: 2a2c + mov a3, a13 /* arg1+0x5 */ # f9b: 3d0d + call0 memcpy # f9d: 01cfffc0 + # fa1: 0000 + movi a2, 0 /* 0x00000000 */ # fa3: 0c02 +.Lbr101: l32i a12, sp, 24 /* [(local2)] */ # fa5: c861 + l32i a13, sp, 28 /* [(local3)] */ # fa7: d871 + l32i a14, sp, 32 /* [(local4)] */ # fa9: e881 + l32i a0, sp, 20 /* [(local1)] */ # fab: 0851 + addi sp, sp, 48 /* (top of frame) */ # fad: 12c130 + ret # fb0: 0df0 +.Lbr102: l32i a3, sp, 16 /* [(local0)] */ # fb2: 3841 + addi a2, a12, 48 /* arg0+0x30 */ # fb4: 22cc30 + movi a5, 1 /* 0x00000001 */ # fb7: 0c15 + movi a4, 0 /* 0x00000000 */ # fb9: 0c04 + s32i a4, a12, 180 /* 0x00000000 -> [arg0+0xb4] */ # fbb: 426c2d + s32i a5, a12, 176 /* 0x00000001 -> [arg0+0xb0] */ # fbe: 526c2c + movi a4, 64 /* 0x00000040 */ # fc1: 4c04 + call0 memcpy # fc3: 01c7ffc0 + # fc7: 0000 + movi a2, 1 /* 0x00000001 */ # fc9: 0c12 + j .Lbr096 # fcb: c6dcff + + .literal_position # fd0: 00000000 + # fd4: 00000000 + # fd8: 00000000 + # fdc: 00000000 + # fe0: 00000000 + +# Function @ .irom0.text+0xfe4 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word @ -0x10 +# (local5): word @ -0xc +# (local6): word[2] @ -0x8 + .balign 4 +.Lfunc028: addi sp, sp, -64 /* (FP)-0x40 */ # fe4: 12c1c0 + s32i a0, sp, 48 /* a0 -> [(local4)] */ # fe7: 09c1 + s32i a13, sp, 56 /* a13 -> [(local6)] */ # fe9: d9e1 + s32i a12, sp, 52 /* a12 -> [(local5)] */ # feb: c9d1 + mov a13, a2 /* arg0 */ # fed: dd02 + mov a12, a3 /* arg1 */ # fef: cd03 + l8ui a2, a3, 93 /* [arg1+0x5d] */ # ff1: 22035d + l8ui a0, a3, 94 /* [arg1+0x5e] */ # ff4: 02035e + slli a2, a2, 8 # ff7: 802211 + or a0, a0, a2 # ffa: 200020 + l32i a2, a13, 176 /* [arg0+0xb0] */ # ffd: 222d2c + extui a0, a0, 0, 16 # 1000: 0000f4 + bnez a2, .Lbr108 # 1003: 566205 +.Lbr103: movi a2, -1 /* 0xffffffff */ # 1006: 7cf2 + j .Lbr107 # 1008: 861100 +.Lbr104: beqi a4, 2, .Lbr105 # 100b: 262402 + bnei a4, 3, .Lbr103 # 100e: 6634f4 +.Lbr105: s32i a0, sp, 32 /* a0 -> [(local0)] */ # 1011: 0981 + movi a3, 7 /* 0x00000007 */ # 1013: 0c73 + bany a3, a0, .Lbr103 # 1015: 0783ed + addi a2, a13, 64 /* arg0+0x40 */ # 1018: 22cd40 + addi a3, a0, -8 # 101b: 32c0f8 + addi a5, a12, 103 /* arg1+0x67 */ # 101e: 52cc67 + addi a4, a12, 95 /* arg1+0x5f */ # 1021: 42cc5f + s32i a4, sp, 40 /* arg1+0x5f -> [(local2)] */ # 1024: 49a1 + s32i a5, sp, 44 /* arg1+0x67 -> [(local3)] */ # 1026: 59b1 + s32i a3, sp, 36 /* a3 -> [(local1)] */ # 1028: 3991 + extui a13, a3, 0, 16 # 102a: 30d0f4 + extui a3, a3, 3, 13 # 102d: 3033c4 + call0 aes_unwrap # 1030: 01e8ffc0 + # 1034: 0000 + bnez a2, .Lbr103 # 1036: 56c2fc + l32i a2, sp, 40 /* [(local2)] */ # 1039: 28a1 + l32i a3, sp, 44 /* [(local3)] */ # 103b: 38b1 + mov a4, a13 # 103d: 4d0d + call0 memcpy # 103f: 01e5ffc0 + # 1043: 0000 + srli a4, a13, 8 # 1045: d04841 + l32i a5, sp, 36 /* [(local1)] */ # 1048: 5891 + s8i a5, a12, 94 /* [(local1)] -> [arg1+0x5e] */ # 104a: 524c5e + s8i a4, a12, 93 /* a4 -> [arg1+0x5d] */ # 104d: 424c5d +.Lbr106: movi a2, 0 /* 0x00000000 */ # 1050: 0c02 +.Lbr107: l32i a12, sp, 52 /* [(local5)] */ # 1052: c8d1 + l32i a13, sp, 56 /* [(local6)] */ # 1054: d8e1 + l32i a0, sp, 48 /* [(local4)] */ # 1056: 08c1 + addi sp, sp, 64 /* (top of frame) */ # 1058: 12c140 + ret # 105b: 0df0 +.Lbr108: s32i a0, sp, 32 /* a0 -> [(local0)] */ # 105d: 0981 + bnei a4, 1, .Lbr104 # 105f: 6614a8 + mov a2, sp /* (FP)-0x40 */ # 1062: 2d01 + addi a3, a3, 45 /* arg1+0x2d */ # 1064: 32c32d + movi a4, 16 /* 0x00000010 */ # 1067: 1c04 + call0 memcpy # 1069: 01dbffc0 + # 106d: 0000 + addi a3, a13, 64 /* arg0+0x40 */ # 106f: 32cd40 + addi a2, sp, 16 /* (FP)-0x30 */ # 1072: 22c110 + movi a4, 16 /* 0x00000010 */ # 1075: 1c04 + call0 memcpy # 1077: 01d9ffc0 + # 107b: 0000 + addi a5, a12, 95 /* arg1+0x5f */ # 107d: 52cc5f + mov a2, sp /* (FP)-0x40 */ # 1080: 2d01 + movi a3, 32 /* 0x00000020 */ # 1082: 2c03 + movi a4, 256 /* 0x00000100 */ # 1084: 42a100 + l32i a6, sp, 32 /* [(local0)] */ # 1087: 6881 + call0 rc4_skip # 1089: 01d5ffc0 + # 108d: 0000 + bnez a2, .Lbr103 # 108f: 5632f7 + j .Lbr106 # 1092: 86eeff + + .balign 4 +# Function @ .irom0.text+0x1098 + .balign 4 +.Lfunc029: ret /* arg0 */ # 1098: 0df0 + + .literal_position # 109c: 00000000 + # 10a0: fc000000 + # 10a4: 80200000 + # 10a8: 00000000 + +# Function @ .irom0.text+0x10ac +# Local variables/stack: +# (local0): word @ -0x30 +# (local1): word @ -0x2c +# (local2): word @ -0x28 +# (local3): word @ -0x24 +# (local4): word @ -0x20 +# (local5): word @ -0x1c +# (local6): word @ -0x18 +# (local7): word @ -0x14 +# (local8): word[4] @ -0x10 + .balign 4 + .global wpa_sm_rx_eapol + .type wpa_sm_rx_eapol, @function +wpa_sm_rx_eapol: + mov a5, a2 /* arg0 */ # 10ac: 5d02 + addi sp, sp, -48 /* (local0) */ # 10ae: 12c1d0 + s32i a13, sp, 20 /* a13 -> [(local5)] */ # 10b1: d951 + s32i a14, sp, 24 /* a14 -> [(local6)] */ # 10b3: e961 + s32i a15, sp, 28 /* a15 -> [(local7)] */ # 10b5: f971 + s32i a12, sp, 16 /* a12 -> [(local4)] */ # 10b7: c941 + s32i a0, sp, 12 /* a0 -> [(local3)] */ # 10b9: 0931 + mov a12, a3 /* arg1 */ # 10bb: cd03 + movi a0, 98 /* 0x00000062 */ # 10bd: 02a062 + bltu a0, a4, .Lbr109 # 10c0: 473004 + movi a2, 0 /* 0x00000000 */ # 10c3: 0c02 + j .Lbr113 # 10c5: 861200 +.Lbr109: l8ui a3, a3, 1 /* [arg1+0x1] */ # 10c8: 320301 + l8ui a2, a12, 3 /* [arg1+0x3] */ # 10cb: 220c03 + l8ui a6, a12, 2 /* [arg1+0x2] */ # 10ce: 620c02 + slli a2, a2, 8 # 10d1: 802211 + or a2, a2, a6 # 10d4: 602220 + bnei a3, 3, .Lbr110 # 10d7: 663322 + addi a3, a4, -4 /* arg2-0x4 */ # 10da: 32c4fc + extui a6, a2, 8, 8 # 10dd: 206874 + extui a7, a2, 0, 8 # 10e0: 207074 + slli a7, a7, 8 # 10e3: 807711 + or a6, a6, a7 # 10e6: 706620 + bltu a3, a6, .Lbr110 # 10e9: 673310 + movi a8, 94 /* 0x0000005e */ # 10ec: 5ce8 + bgeu a8, a6, .Lbr110 # 10ee: 67b80b + l8ui a0, a12, 4 /* [arg1+0x4] */ # 10f1: 020c04 + movi a9, 254 /* 0x000000fe */ # 10f4: 92a0fe + beq a0, a9, .Lbr114 # 10f7: 971027 + beqi a0, 2, .Lbr114 # 10fa: 262024 +.Lbr110: movi a2, 0 /* 0x00000000 */ # 10fd: 0c02 + j .Lbr113 # 10ff: 060400 +.Lbr111: l32i a10, sp, 0 /* [(local0)] */ # 1102: a801 + beqz a10, .Lbr112 # 1104: 8c9a + mov a6, a13 # 1106: 6d0d + mov a4, a15 /* arg1+0x4 */ # 1108: 4d0f + mov a2, a14 /* .Ldata001 */ # 110a: 2d0e + l32i a3, sp, 4 /* [(local1)] */ # 110c: 3811 + call0 .Lfunc025 # 110e: 45c9ff +.Lbr112: movi a2, 1 /* 0x00000001 */ # 1111: 0c12 +.Lbr113: l32i a12, sp, 16 /* [(local4)] */ # 1113: c841 + l32i a13, sp, 20 /* [(local5)] */ # 1115: d851 + l32i a14, sp, 24 /* [(local6)] */ # 1117: e861 + l32i a15, sp, 28 /* [(local7)] */ # 1119: f871 + l32i a0, sp, 12 /* [(local3)] */ # 111b: 0831 + addi sp, sp, 48 /* (top of frame) */ # 111d: 12c130 + ret # 1120: 0df0 +.Lbr114: movi a2, 0 /* 0x00000000 */ # 1122: 0c02 + s32i a6, sp, 8 /* a6 -> [(local2)] */ # 1124: 6921 + s32i a5, sp, 4 /* arg0 -> [(local1)] */ # 1126: 5911 + addi a15, a12, 4 /* arg1+0x4 */ # 1128: 4bfc + mov a3, a15 /* arg1+0x4 */ # 112a: 3d0f + call0 .Lfunc029 # 112c: 85f6ff + l8ui a2, a12, 5 /* [arg1+0x5] */ # 112f: 220c05 + l8ui a0, a12, 6 /* [arg1+0x6] */ # 1132: 020c06 + slli a2, a2, 8 # 1135: 802211 + or a0, a0, a2 # 1138: 200020 + extui a13, a0, 0, 3 # 113b: 00d024 + beqi a13, 1, .Lbr116 # 113e: 261d07 + beqi a13, 2, .Lbr116 # 1141: 262d04 +.Lbr115: movi a2, -1 /* 0xffffffff */ # 1144: 7cf2 + j .Lbr113 # 1146: 46f2ff +.Lbr116: movi a14, .Ldata001 # 1149: e1d4ff + l32i a3, a14, 0x114 /* [.Ldata005] */ # 114c: 322e45 + bnei a3, 8, .Lbr117 # 114f: 66830b + beqi a13, 2, .Lbr117 # 1152: 262d08 + l32i a4, a14, 0x118 /* [.Ldata006] */ # 1155: 422e46 + beqi a4, 8, .Lbr115 # 1158: 2684e8 + bbsi a0, 3, .Lbr115 # 115b: 37e0e5 +.Lbr117: l32i a5, a14, 0x104 /* [.Ldata004] */ # 115e: 522e41 + s32i a0, sp, 32 /* a0 -> [(local8)] */ # 1161: 0981 + beqz a5, .Lbr118 # 1163: 9c05 + addi a2, a12, 9 /* arg1+0x9 */ # 1165: 9b2c + movi a3, .Label002 # 1167: 31ceff + movi a4, 8 /* 0x00000008 */ # 116a: 0c84 + call0 memcmp # 116c: 01cfffc0 + # 1170: 0000 + l32i a0, sp, 32 /* [(local8)] */ # 1172: 0881 + blti a2, 1, .Lbr115 # 1174: a612cc +.Lbr118: movi a6, 0x00002080 # 1177: 61cbff + bnone a0, a6, .Lbr115 # 117a: 6700c6 + bbsi a0, 11, .Lbr115 # 117d: b7e0c3 + s32i a0, sp, 32 /* a0 -> [(local8)] */ # 1180: 0981 + movi a7, 256 /* 0x00000100 */ # 1182: 72a100 + and a7, a0, a7 # 1185: 707010 + s32i a7, sp, 0 /* a7 -> [(local0)] */ # 1188: 7901 + bbci a0, 8, .Lbr119 # 118a: 876013 + mov a2, a14 /* .Ldata001 */ # 118d: 2d0e + mov a3, a15 /* arg1+0x4 */ # 118f: 3d0f + mov a4, a13 # 1191: 4d0d + l32i a6, sp, 8 /* [(local2)] */ # 1193: 6821 + mov a5, a12 /* arg1 */ # 1195: 5d0c + addi a6, a6, 4 /* [(local2)]+0x4 */ # 1197: 4b66 + call0 .Lfunc027 # 1199: 85d4ff + l32i a0, sp, 32 /* [(local8)] */ # 119c: 0881 + bnez a2, .Lbr115 # 119e: 5622fa +.Lbr119: l8ui a5, a12, 98 /* [arg1+0x62] */ # 11a1: 520c62 + l32i a7, sp, 8 /* [(local2)] */ # 11a4: 7821 + l8ui a6, a12, 97 /* [arg1+0x61] */ # 11a6: 620c61 + addi a7, a7, -95 /* [(local2)]-0x5f */ # 11a9: 72c7a1 + slli a6, a6, 8 # 11ac: 806611 + or a5, a5, a6 # 11af: 605520 + extui a5, a5, 0, 16 # 11b2: 5050f4 + bltu a7, a5, .Lbr115 # 11b5: 57378b + l32i a8, a14, 0x164 /* [.Ldata013] */ # 11b8: 822e59 + bnei a8, 2, .Lbr120 # 11bb: 662821 + s32i a0, sp, 32 /* a0 -> [(local8)] */ # 11be: 0981 + bbci a0, 12, .Lbr120 # 11c0: c7601c + mov a2, a14 /* .Ldata001 */ # 11c3: 2d0e + mov a3, a15 /* arg1+0x4 */ # 11c5: 3d0f + mov a4, a13 # 11c7: 4d0d + call0 .Lfunc028 # 11c9: 85e1ff + bnez a2, .Lbr115 # 11cc: 5642f7 + l32i a0, sp, 32 /* [(local8)] */ # 11cf: 0881 + l8ui a6, a12, 97 /* [arg1+0x61] */ # 11d1: 620c61 + l8ui a5, a12, 98 /* [arg1+0x62] */ # 11d4: 520c62 + slli a6, a6, 8 # 11d7: 806611 + or a5, a5, a6 # 11da: 605520 + extui a5, a5, 0, 16 # 11dd: 5050f4 +.Lbr120: extui a7, a0, 3, 1 # 11e0: 007304 + beqz a7, .Lbr111 # 11e3: 16b7f1 + movi a8, 48 /* 0x00000030 */ # 11e6: 3c08 + bnone a0, a8, .Lbr121 # 11e8: 870002 + j .Lbr115 # 11eb: 46d5ff +.Lbr121: l32i a9, sp, 0 /* [(local0)] */ # 11ee: 9801 + beqz a9, .Lbr122 # 11f0: 8ca9 + mov a4, a13 # 11f2: 4d0d + mov a3, a15 /* arg1+0x4 */ # 11f4: 3d0f + mov a2, a14 /* .Ldata001 */ # 11f6: 2d0e + call0 .Lfunc020 # 11f8: 857aff + j .Lbr112 # 11fb: 86c4ff +.Lbr122: mov a5, a13 # 11fe: 5d0d + mov a4, a15 /* arg1+0x4 */ # 1200: 4d0f + mov a2, a14 /* .Ldata001 */ # 1202: 2d0e + l32i a3, sp, 4 /* [(local1)] */ # 1204: 3811 + call0 .Lfunc007 # 1206: 051dff + j .Lbr112 # 1209: 06c1ff + + .literal_position # 120c: d0000000 + +# Function @ .irom0.text+0x1210 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global wpa_register + .type wpa_register, @function +wpa_register: + movi a8, .Label001 # 1210: 81ffff + movi a2, 1 /* 0x00000001 */ # 1213: 0c12 + addi sp, sp, -16 /* (local0) */ # 1215: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1218: 0901 + s8i a2, a8, 128 /* 0x01 -> [.Ldata011] */ # 121a: 224880 + s32i a3, a8, 0x144 /* arg1 -> [.Ldata018] */ # 121d: 326851 + s32i a4, a8, 0x148 /* arg2 -> [.Ldata019] */ # 1220: 426852 + s32i a5, a8, 0x14c /* arg3 -> [.Ldata020] */ # 1223: 526853 + s32i a6, a8, 0x150 /* arg4 -> [.Ldata021] */ # 1226: 626854 + s32i a7, a8, 0x154 /* arg5 -> [.Ldata022] */ # 1229: 726855 + movi a0, 0 /* 0x00000000 */ # 122c: 0c00 + s32i a0, a8, 0x13c /* 0x00000000 -> [.Ldata017] */ # 122e: 02684f + call0 wpa_sm_set_state # 1231: 050000 + l32i a0, sp, 0 /* [(local0)] */ # 1234: 0801 + addi sp, sp, 16 /* (top of frame) */ # 1236: 12c110 + ret # 1239: 0df0 + + .literal_position # 123c: 00000000 + +# Function @ .irom0.text+0x1240 + .balign 4 + .global wpa_set_profile + .type wpa_set_profile, @function +wpa_set_profile: + movi a4, .Ldata001 # 1240: 41ffff + movi a3, 2 /* 0x00000002 */ # 1243: 0c23 + s32i a2, a4, 0x164 /* arg0 -> [.Ldata013] */ # 1245: 226459 + s32i a3, a4, 0x11c /* 0x00000002 -> [.Ldata007] */ # 1248: 326447 + ret /* arg0 */ # 124b: 0df0 + + .literal_position # 1250: 00000000 + # 1254: 00000000 + # 1258: 00000000 + +# Function @ .irom0.text+0x125c +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global wpa_set_pmk + .type wpa_set_pmk, @function +wpa_set_pmk: + movi a4, 32 /* 0x00000020 */ # 125c: 2c04 + mov a3, a2 /* arg0 */ # 125e: 3d02 + addi sp, sp, -16 /* (local0) */ # 1260: 12c1f0 + movi a2, .Ldata001 # 1263: 21fbff + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1266: 0901 + call0 memcpy # 1268: 01fcffc0 + # 126c: 0000 + movi a2, .Ldata001 # 126e: 21f9ff + movi a0, 32 /* 0x00000020 */ # 1271: 2c00 + s32i a0, a2, 32 /* 0x00000020 -> [.Ldata002] */ # 1273: 0982 + l32i a0, sp, 0 /* [(local0)] */ # 1275: 0801 + addi sp, sp, 16 /* (top of frame) */ # 1277: 12c110 + ret /* .Ldata001 */ # 127a: 0df0 + + .literal_position # 127c: 00000000 + # 1280: fc000000 + # 1284: 00000000 + # 1288: 58010000 + # 128c: 5e010000 + # 1290: 60020000 + # 1294: 00000000 + # 1298: 00000000 + # 129c: 00000000 + # 12a0: 00000000 + # 12a4: e0130000 + # 12a8: 00000000 + # 12ac: 68130000 + +# Function @ .irom0.text+0x12b0 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word[4] @ -0x10 + .balign 4 + .global wpa_set_bss + .type wpa_set_bss, @function +wpa_set_bss: + ssl a4 # 12b0: 001440 + addi sp, sp, -32 /* (local0) */ # 12b3: 12c1e0 + s32i a6, sp, 8 /* arg4 -> [(local2)] */ # 12b6: 6921 + s32i a7, sp, 12 /* arg5 -> [(local3)] */ # 12b8: 7931 + movi a4, 8 /* 0x00000008 */ # 12ba: 0c84 + s32i a3, sp, 4 /* arg1 -> [(local1)] */ # 12bc: 3911 + s32i a0, sp, 16 /* a0 -> [(local4)] */ # 12be: 0941 + s32i a2, sp, 0 /* arg0 -> [(local0)] */ # 12c0: 2901 + movi a0, .Ldata001 # 12c2: 01eeff + movi a2, 1 /* 0x00000001 */ # 12c5: 0c12 + sll a3, a2 # 12c7: 0032a1 + s32i a3, a0, 0x114 /* a3 -> [.Ldata005] */ # 12ca: 326045 + ssl a5 # 12cd: 001540 + movi a3, 0 /* 0x00000000 */ # 12d0: 0c03 + sll a2, a2 # 12d2: 0022a1 + s32i a2, a0, 0x118 /* a2 -> [.Ldata006] */ # 12d5: 226046 + s32i a3, a0, 0x104 /* 0x00000000 -> [.Ldata004] */ # 12d8: 326041 + movi a2, .Label002 # 12db: 21e9ff + call0 memset # 12de: 01eeffc0 + # 12e2: 0000 + l32i a3, sp, 0 /* [(local0)] */ # 12e4: 3801 + movi a2, .Label004 # 12e6: 21e8ff + movi a6, 0 /* 0x00000000 */ # 12e9: 0c06 + movi a5, .Ldata001 # 12eb: 51e6ff + movi a4, 1 /* 0x00000001 */ # 12ee: 0c14 + s32i a4, a5, 248 /* 0x00000001 -> [.Ldata003] */ # 12f0: 42653e + s32i a6, a5, 0x154 /* 0x00000000 -> [.Ldata012] */ # 12f3: 626555 + movi a4, 6 /* 0x00000006 */ # 12f6: 0c64 + call0 memcpy # 12f8: 01e9ffc0 + # 12fc: 0000 + l32i a3, sp, 4 /* [(local1)] */ # 12fe: 3811 + movi a2, .Label005 # 1300: 21e3ff + movi a4, 6 /* 0x00000006 */ # 1303: 0c64 + call0 memcpy # 1305: 01e6ffc0 + # 1309: 0000 + movi a2, .Ldata023 # 130b: 21e1ff + call0 .Lfunc031 # 130e: 01e5ffc0 + # 1312: 0000 + movi a4, .Ldata001 # 1314: 41e0ff + mov a2, a4 /* .Ldata001 */ # 1317: 2d04 + l32i a3, a4, 0x148 /* [.Ldata009] */ # 1319: 322452 + l32i a4, a4, 0x14c /* [.Ldata010] */ # 131c: 422453 + call0 wpa_gen_wpa_ie # 131f: 01e2ffc0 + # 1323: 0000 + l32i a2, sp, 8 /* [(local2)] */ # 1325: 2821 + l32i a3, sp, 12 /* [(local3)] */ # 1327: 3831 + l32i a4, sp, 32 /* [(local5)] */ # 1329: 4881 + call0 .Lfunc030 # 132b: 01e0ffc0 + # 132f: 0000 + l32i a0, sp, 16 /* [(local4)] */ # 1331: 0841 + addi sp, sp, 32 /* (local5) */ # 1333: 12c120 + ret # 1336: 0df0 + + .literal_position # 1338: 00000000 + # 133c: 00000000 + # 1340: 00000000 + # 1344: 00000000 + # 1348: 00100000 + # 134c: 00000000 + # 1350: 00000000 + # 1354: 00000000 + # 1358: 00000000 + # 135c: 00000000 + # 1360: 00000000 + # 1364: 00000000 + +# Function @ .irom0.text+0x1368 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 +.Lfunc030: addi sp, sp, -16 /* (local0) */ # 1368: 12c1f0 + s32i a12, sp, 8 /* a12 -> [(local2)] */ # 136b: c921 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 136d: 0911 + beqz a2, .Lbr125 # 136f: 16e205 + movi a0, g_ic+0x180 # 1372: 01f1ff + l8ui a0, a0, 142 /* [g_ic+0x20e] */ # 1375: 02008e + movi a12, g_ic+0x250 # 1378: c1f1ff + beqz a0, .Lbr124 # 137b: bcf0 + addi a2, a12, -65 /* g_ic+0x20f */ # 137d: 22ccbf + s32i a2, sp, 0 /* g_ic+0x20f -> [(local0)] */ # 1380: 2901 + call0 strlen # 1382: 01f3ffc0 + # 1386: 0000 + bnei a2, 64, .Lbr123 # 1388: 66d20e + l32i a2, sp, 0 /* [(local0)] */ # 138b: 2801 + mov a3, a12 /* g_ic+0x250 */ # 138d: 3d0c + movi a4, 32 /* 0x00000020 */ # 138f: 2c04 + call0 hexstr2bin # 1391: 01f0ffc0 + # 1395: 0000 + j .Lbr124 # 1397: c60800 +.Lbr123: call0 system_overclock # 139a: 01efffc0 + # 139e: 0000 + l32i a2, sp, 0 /* [(local0)] */ # 13a0: 2801 + movi a3, g_ic+0x1e8 # 13a2: 31e8ff + movi a5, 0x00001000 # 13a5: 51e8ff + mov a6, a12 /* g_ic+0x250 */ # 13a8: 6d0c + movi a4, g_ic # 13aa: 41e5ff + movi a7, 32 /* 0x00000020 */ # 13ad: 2c07 + l32i a4, a4, 0x1e4 /* [g_ic+0x1e4] */ # 13af: 422479 + call0 pbkdf2_sha1 # 13b2: 01eaffc0 + # 13b6: 0000 + call0 system_restoreclock # 13b8: 01eaffc0 + # 13bc: 0000 +.Lbr124: mov a3, a12 /* g_ic+0x250 */ # 13be: 3d0c + movi a12, .Ldata001 # 13c0: c1e3ff + movi a4, 32 /* 0x00000020 */ # 13c3: 2c04 + mov a2, a12 /* .Ldata001 */ # 13c5: 2d0c + call0 memcpy # 13c7: 01e7ffc0 + # 13cb: 0000 + movi a5, 32 /* 0x00000020 */ # 13cd: 2c05 + s32i a5, a12, 32 /* 0x00000020 -> [.Ldata002] */ # 13cf: 598c +.Lbr125: l32i a12, sp, 8 /* [(local2)] */ # 13d1: c821 + l32i a0, sp, 4 /* [(local1)] */ # 13d3: 0811 + addi sp, sp, 16 /* (top of frame) */ # 13d5: 12c110 + ret # 13d8: 0df0 + + .literal_position # 13dc: 00000000 + +# Function @ .irom0.text+0x13e0 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 +.Lfunc031: mov a3, a2 /* arg0 */ # 13e0: 3d02 + addi sp, sp, -16 /* (local0) */ # 13e2: 12c1f0 + movi a6, .Ldata001 # 13e5: 61fdff + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 13e8: 0901 + addi a0, a2, 2 /* arg0+0x2 */ # 13ea: 2b02 + l32i a2, a6, 0x164 /* [.Ldata013] */ # 13ec: 222659 + s32i a0, a6, 0x148 /* arg0+0x2 -> [.Ldata009] */ # 13ef: 026652 + bnei a2, 1, .Lbr127 # 13f2: 661216 + movi a4, 24 /* 0x00000018 */ # 13f5: 1c84 + movi a0, 24 /* 0x00000018 */ # 13f7: 1c80 +.Lbr126: s32i a0, a6, 0x14c /* a0 -> [.Ldata010] */ # 13f9: 026653 + l32i a0, a6, 0x218 /* [.Ldata019] */ # 13fc: 022686 + extui a2, a2, 0, 8 # 13ff: 202074 + callx0 a0 /* [.Ldata019] */ # 1402: c00000 + l32i a0, sp, 0 /* [(local0)] */ # 1405: 0801 + addi sp, sp, 16 /* (top of frame) */ # 1407: 12c110 + ret # 140a: 0df0 +.Lbr127: movi a0, 22 /* 0x00000016 */ # 140c: 1c60 + movi a4, 22 /* 0x00000016 */ # 140e: 1c64 + j .Lbr126 # 1410: 46f9ff + + .literal_position # 1414: 00000000 + # 1418: 00000000 + # 141c: 00000000 + +# Function @ .irom0.text+0x1420 +# Local variables/stack: +# (local0): word @ -0x40 +# (local1): word @ -0x3c +# (local2): word[2] @ -0x38 +# (local3): word @ -0x30 +# (local4): word @ -0x2c +# (local5): word @ -0x28 +# (local6): word @ -0x24 +# (local7): word @ -0x20 +# (local8): word @ -0x1c +# (local9): word @ -0x18 +# (local10): word @ -0x14 +# (local11): word[4] @ -0x10 + .balign 4 +.Lfunc032: addi sp, sp, -64 /* (local0) */ # 1420: 12c1c0 + s32i a4, sp, 40 /* arg2 -> [(local9)] */ # 1423: 49a1 + s32i a5, sp, 44 /* arg3 -> [(local10)] */ # 1425: 59b1 + s32i a7, sp, 16 /* arg5 -> [(local3)] */ # 1427: 7941 + s32i a6, sp, 48 /* arg4 -> [(local11)] */ # 1429: 69c1 + s32i a15, sp, 36 /* a15 -> [(local8)] */ # 142b: f991 + s32i a13, sp, 28 /* a13 -> [(local6)] */ # 142d: d971 + s32i a0, sp, 20 /* a0 -> [(local4)] */ # 142f: 0951 + s32i a14, sp, 32 /* a14 -> [(local7)] */ # 1431: e981 + s32i a12, sp, 24 /* a12 -> [(local5)] */ # 1433: c961 + mov a14, a2 /* arg0 */ # 1435: ed02 + mov a12, a3 /* arg1 */ # 1437: cd03 + movi a0, 0 /* 0x00000000 */ # 1439: 0c00 + l32i a13, sp, 72 /* [(FP)+0x8] */ # 143b: d22112 + l32i a15, sp, 48 /* [(local11)] */ # 143e: f8c1 + bnei a3, 2, .Lbr128 # 1440: 662304 + bnei a13, 32, .Lbr128 # 1443: 66cd01 + s32i a0, a2, 0 /* 0x00000000 -> [arg0] */ # 1446: 0902 +.Lbr128: s32i a12, a14, 8 /* arg1 -> [arg0+0x8] */ # 1448: c92e + addi a2, a14, 12 /* arg0+0xc */ # 144a: cb2e + l32i a3, sp, 40 /* [(local9)] */ # 144c: 38a1 + movi a4, 6 /* 0x00000006 */ # 144e: 0c64 + s32i a0, a14, 4 /* 0x00000000 -> [arg0+0x4] */ # 1450: 091e + call0 memcpy # 1452: 01f1ffc0 + # 1456: 0000 + l32i a2, sp, 44 /* [(local10)] */ # 1458: 28b1 + s32i a15, a14, 24 /* [(local11)] -> [arg0+0x18] */ # 145a: f96e + s32i a2, a14, 20 /* [(local10)] -> [arg0+0x14] */ # 145c: 295e + addi a2, a14, 38 /* arg0+0x26 */ # 145e: 22ce26 + l32i a14, sp, 68 /* [(FP)+0x4] */ # 1461: e22111 + mov a4, a13 /* [(FP)+0x8] */ # 1464: 4d0d + mov a3, a14 /* [(FP)+0x4] */ # 1466: 3d0e + call0 memcpy # 1468: 01edffc0 + # 146c: 0000 + mov a5, a15 /* [(local11)] */ # 146e: 5d0f + mov a2, a12 /* arg1 */ # 1470: 2d0c + l32i a3, sp, 40 /* [(local9)] */ # 1472: 38a1 + l32i a4, sp, 44 /* [(local10)] */ # 1474: 48b1 + l32i a7, sp, 64 /* [(local12)] */ # 1476: 722110 + s32i a14, sp, 0 /* [(FP)+0x4] -> [(local0)] */ # 1479: e901 + s32i a13, sp, 4 /* [(FP)+0x8] -> [(local1)] */ # 147b: d911 + movi a0, .Ldata001 # 147d: 01e5ff + l32i a6, sp, 76 /* [(FP)+0xc] */ # 1480: 622113 + s32i a6, sp, 8 /* [(FP)+0xc] -> [(local2)] */ # 1483: 6921 + l32i a0, a0, 0x21c /* [.Ldata020] */ # 1485: 022087 + l32i a6, sp, 16 /* [(local3)] */ # 1488: 6841 + callx0 a0 /* [.Ldata020] */ # 148a: c00000 + movi a2, 0 /* 0x00000000 */ # 148d: 0c02 + l32i a12, sp, 24 /* [(local5)] */ # 148f: c861 + l32i a13, sp, 28 /* [(local6)] */ # 1491: d871 + l32i a14, sp, 32 /* [(local7)] */ # 1493: e881 + l32i a15, sp, 36 /* [(local8)] */ # 1495: f891 + l32i a0, sp, 20 /* [(local4)] */ # 1497: 0851 + addi sp, sp, 64 /* (local12) */ # 1499: 12c140 + ret /* 0x00000000 */ # 149c: 0df0 + + .literal_position # 14a0: 00000000 + +# Function @ .irom0.text+0x14a4 + .balign 4 +.Lfunc033: movi a3, .Ldata001 # 14a4: 31ffff + movi a2, 0 /* 0x00000000 */ # 14a7: 0c02 + s32i a2, a3, 0x17c /* 0x00000000 -> [.Ldata015] */ # 14a9: 22635f + s32i a2, a3, 0x1c4 /* 0x00000000 -> [.Ldata016] */ # 14ac: 226371 + ret /* 0x00000000 */ # 14af: 0df0 + + .literal_position # 14b4: 00000000 + +# Function @ .irom0.text+0x14b8 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 +.Lfunc034: addi sp, sp, -16 /* (local0) */ # 14b8: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 14bb: 0901 + movi a0, .Ldata001 # 14bd: 01fdff + l32i a2, a0, 0x128 /* [.Ldata008] */ # 14c0: 22204a + beqz a2, .Lbr129 # 14c3: 8c62 + movi a2, 0 /* 0x00000000 */ # 14c5: 0c02 + s32i a2, a0, 0x128 /* 0x00000000 -> [.Ldata008] */ # 14c7: 22604a + call0 .Lfunc033 # 14ca: 85fdff +.Lbr129: movi a2, 0 /* 0x00000000 */ # 14cd: 0c02 + call0 wpa_sm_set_state # 14cf: 050000 + l32i a0, sp, 0 /* [(local0)] */ # 14d2: 0801 + addi sp, sp, 16 /* (top of frame) */ # 14d4: 12c110 + ret # 14d7: 0df0 + + .literal_position # 14dc: 00000000 + # 14e0: c4010000 + # 14e4: 2c010000 + # 14e8: 00000000 + # 14ec: 00000000 + # 14f0: 10270000 + # 14f4: b8140000 + # 14f8: 60ea0000 + # 14fc: 00000000 + # 1500: a4140000 + # 1504: 60ea0000 + # 1508: 00000000 + # 150c: 00000000 + # 1510: 00000000 + # 1514: 00000000 + # 1518: 00000000 + # 151c: 00000000 + # 1520: 00000000 + +# Function @ .irom0.text+0x1524 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global pp_michael_mic_failure + .type pp_michael_mic_failure, @function +pp_michael_mic_failure: + movi a4, .Ldata016 # 1524: 41efff + addi sp, sp, -16 /* (local0) */ # 1527: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 152a: c911 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 152c: 0901 + movi a12, .Label003 # 152e: c1edff + movi a0, .Ldata001 # 1531: 01eaff + addi a5, a4, -72 /* .Ldata015 */ # 1534: 52c4b8 + l32i a3, a0, 0x1c4 /* [.Ldata016] */ # 1537: 322071 + l32i a0, a0, 0x17c /* [.Ldata015] */ # 153a: 02205f + moveqz a5, a4, a2 # 153d: 205483 + add a0, a0, a3 # 1540: 3a00 + beqz a0, .Lbr130 # 1542: 167004 + movi a2, 11 /* 0x0000000b */ # 1545: 0cb2 + call0 wpa_sm_set_state # 1547: 01f0ffc0 + # 154b: 0000 + movi a2, .Ldata001 # 154d: 21e6ff + movi a3, 1 /* 0x00000001 */ # 1550: 0c13 + movi a4, 0 /* 0x00000000 */ # 1552: 0c04 + call0 .Lfunc003 # 1554: 85befe + movi a3, .Ldata001 # 1557: 31e5ff + movi a2, 1 /* 0x00000001 */ # 155a: 0c12 + s32i a2, a3, 0x128 /* 0x00000001 -> [.Ldata008] */ # 155c: 22634a + movi a2, 0x00002710 # 155f: 21e4ff + call0 os_delay_us # 1562: 01eaffc0 + # 1566: 0000 + mov a2, a12 /* .Label003 */ # 1568: 2d0c + call0 os_timer_disarm # 156a: 01e9ffc0 + # 156e: 0000 + mov a2, a12 /* .Label003 */ # 1570: 2d0c + movi a3, .Lfunc034 # 1572: 31e0ff + movi a4, 0 /* 0x00000000 */ # 1575: 0c04 + call0 os_timer_setfn # 1577: 01e7ffc0 + # 157b: 0000 + mov a2, a12 /* .Label003 */ # 157d: 2d0c + movi a3, 0x0000ea60 # 157f: 31deff + movi a4, 0 /* 0x00000000 */ # 1582: 0c04 + call0 os_timer_arm # 1584: 01e5ffc0 + # 1588: 0000 + j .Lbr131 # 158a: 860b00 +.Lbr130: l32i a4, a5, 0 # 158d: 4805 + movi a2, 10 /* 0x0000000a */ # 158f: 0ca2 + addi a4, a4, 1 # 1591: 1b44 + s32i a4, a5, 0 # 1593: 4905 + call0 wpa_sm_set_state # 1595: 050000 + movi a2, .Ldata001 # 1598: 21d9ff + movi a3, 1 /* 0x00000001 */ # 159b: 0c13 + movi a4, 0 /* 0x00000000 */ # 159d: 0c04 + call0 .Lfunc003 # 159f: 05bafe + mov a2, a12 /* .Label003 */ # 15a2: 2d0c + movi a3, .Lfunc033 # 15a4: 31d7ff + movi a4, 0 /* 0x00000000 */ # 15a7: 0c04 + call0 os_timer_setfn # 15a9: 01dcffc0 + # 15ad: 0000 + mov a2, a12 /* .Label003 */ # 15af: 2d0c + movi a3, 0x0000ea60 # 15b1: 31d4ff + movi a4, 0 /* 0x00000000 */ # 15b4: 0c04 + call0 os_timer_arm # 15b6: 01daffc0 + # 15ba: 0000 +.Lbr131: l32i a12, sp, 4 /* [(local1)] */ # 15bc: c811 + l32i a0, sp, 0 /* [(local0)] */ # 15be: 0801 + addi sp, sp, 16 /* (top of frame) */ # 15c0: 12c110 + ret # 15c3: 0df0 + + .literal_position # 15c8: 00000000 + # 15cc: 00000000 + # 15d0: 00000000 + # 15d4: 00000000 + +# Function @ .irom0.text+0x15d8 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global eapol_txcb + .type eapol_txcb, @function +eapol_txcb: addi sp, sp, -16 /* (local0) */ # 15d8: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 15db: 0901 + movi a0, g_ic # 15dd: 01faff + l32i a0, a0, 16 /* [g_ic+0x10] */ # 15e0: 0840 + l32i a0, a0, 60 /* [[g_ic+0x10]+0x3c] */ # 15e2: 08f0 + bnei a0, 5, .Lbr134 # 15e4: 665020 + movi a0, .Ldata001 # 15e7: 01f9ff + l32i a3, a0, 0x168 /* [.Ldata014] */ # 15ea: 32205a + beqi a3, 6, .Lbr132 # 15ed: 26630a + beqi a3, 7, .Lbr136 # 15f0: 267320 + beqi a3, 8, .Lbr137 # 15f3: 268325 + movi a2, 11 /* 0x0000000b */ # 15f6: 0cb2 + beq a3, a2, .Lbr135 # 15f8: 271313 +.Lbr132: movi a3, 0 /* 0x00000000 */ # 15fb: 0c03 +.Lbr133: beqz a3, .Lbr134 # 15fd: 8c73 + movi a2, .Ldata001 # 15ff: 21f4ff + call0 wpa_sm_deauthenticate # 1602: 01f4ffc0 + # 1606: 0000 +.Lbr134: l32i a0, sp, 0 /* [(local0)] */ # 1608: 0801 + addi sp, sp, 16 /* (top of frame) */ # 160a: 12c110 + ret # 160d: 0df0 +.Lbr135: movi a3, 14 /* 0x0000000e */ # 160f: 0ce3 + j .Lbr133 # 1611: 06faff +.Lbr136: mov a2, a0 /* .Ldata001 */ # 1614: 2d00 + call0 .Lfunc021 # 1616: 054aff + j .Lbr138 # 1619: 060100 +.Lbr137: mov a2, a0 /* .Ldata001 */ # 161c: 2d00 + call0 .Lfunc026 # 161e: 8583ff +.Lbr138: extui a3, a2, 0, 8 # 1621: 203074 + j .Lbr133 # 1624: 46f5ff + + .literal_position # 1628: 00000000 + # 162c: 2c010000 + # 1630: 00000000 + # 1634: 00000000 + +# Function @ .irom0.text+0x1638 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global wpa_sm_set_state + .type wpa_sm_set_state, @function +wpa_sm_set_state: + addi sp, sp, -16 /* (local0) */ # 1638: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 163b: 0901 + movi a0, .Ldata001 # 163d: 01faff + l32i a3, a0, 0x168 /* [.Ldata014] */ # 1640: 32205a + s32i a2, sp, 4 /* arg0 -> [(local1)] */ # 1643: 2911 + bnei a3, 10, .Lbr139 # 1645: 66930d + movi a2, .Label003 # 1648: 21f9ff + call0 os_timer_disarm # 164b: 01faffc0 + # 164f: 0000 + movi a0, .Ldata001 # 1651: 01f7ff + l32i a2, sp, 4 /* [(local1)] */ # 1654: 2811 +.Lbr139: s32i a2, a0, 0x168 /* a2 -> [.Ldata014] */ # 1656: 22605a + l32i a0, sp, 0 /* [(local0)] */ # 1659: 0801 + addi sp, sp, 16 /* (top of frame) */ # 165b: 12c110 + ret # 165e: 0df0 + + .section .rodata.str1.4, "MSa", @progbits, 1 + +.Lstr001: .asciz "Pairwise key expansion" # 0: 50616972 + # 4: 77697365 + # 8: 206b6579 + # c: 20657870 + # 10: 616e7369 + # 14: 6f6e00 + + .section .rodata, "a", @progbits + +.Ldata024: .space 8 diff --git a/binary_sdk/libwpa_stage1/wpa_auth.S b/binary_sdk/libwpa_stage1/wpa_auth.S new file mode 100644 index 0000000..dba5db7 --- /dev/null +++ b/binary_sdk/libwpa_stage1/wpa_auth.S @@ -0,0 +1,3583 @@ + + .section .text, "ax", @progbits + +# Function @ .text+0x0 + .balign 4 + .literal_position +.Lfunc001: movi a4, 1 /* 0x00000001 */ # 0: 0c14 + beqi a2, 2, .Lbr001 # 2: 262207 + beqi a2, 64, .Lbr001 # 5: 26d204 + beqi a2, 0x100, .Lbr001 # 8: 26f201 + movi a4, 0 /* 0x00000000 */ # b: 0c04 +.Lbr001: mov a2, a4 # d: 2d04 + ret # f: 0df0 + + .section .irom0.text, "ax", @progbits + + .literal_position # 0: 00000000 + # 4: 00000000 + # 8: 00000000 + # c: 00000000 + # 10: 00000000 + # 14: 00000000 + # 18: 00000000 + # 1c: 00000000 + # 20: 00000000 + # 24: 00000000 + # 28: 00000000 + # 2c: 00000000 + # 30: 00000000 + # 34: 00000000 + # 38: 00000000 + +# Function @ .irom0.text+0x3c +# Local variables/stack: +# (local0): word[12] @ -0x60 +# (local1): word @ -0x30 +# (local2): word @ -0x2c +# (local3): word @ -0x28 +# (local4): word @ -0x24 +# (local5): word @ -0x20 +# (local6): word @ -0x1c +# (local7): word @ -0x18 +# (local8): word @ -0x14 +# (local9): word[4] @ -0x10 + .balign 4 +.Lfunc002: addi sp, sp, -96 /* (local0) */ # 3c: 12c1a0 + s32i a15, sp, 76 /* a15 -> [(local8)] */ # 3f: f26113 + s32i a7, sp, 56 /* arg5 -> [(local3)] */ # 42: 79e1 + s32i a14, sp, 72 /* a14 -> [(local7)] */ # 44: e26112 + s32i a0, sp, 60 /* a0 -> [(local4)] */ # 47: 09f1 + s32i a12, sp, 64 /* a12 -> [(local5)] */ # 49: c26110 + s32i a13, sp, 68 /* a13 -> [(local6)] */ # 4c: d26111 + mov a12, a4 /* arg2 */ # 4f: cd04 + mov a13, a5 /* arg3 */ # 51: dd05 + l8ui a0, a5, 0 /* [arg3] */ # 53: 020500 + mov a14, a6 /* arg4 */ # 56: ed06 + bbci a0, 0, .Lbr002 # 58: 07601d + mov a2, a5 /* arg3 */ # 5b: 2d05 + addi a15, a6, 2 /* arg4+0x2 */ # 5d: 2bf6 + s32i a6, sp, 48 /* arg4 -> [(local1)] */ # 5f: 69c1 + s32i a15, sp, 52 /* arg4+0x2 -> [(local2)] */ # 61: f9d1 + extui a15, a15, 0, 8 # 63: f0f074 + call0 cnx_node_search # 66: 01eaffc0 + # 6a: 0000 + l32i a0, sp, 52 /* [(local2)] */ # 6c: 08d1 + extui a0, a0, 0, 8 # 6e: 000074 + addi a0, a0, -1 # 71: 0b00 + s8i a0, a2, 233 # 73: 0242e9 + j .Lbr005 # 76: 060700 +.Lbr002: beqi a4, 1, .Lbr003 # 79: 261412 + beqi a4, 5, .Lbr003 # 7c: 26540f + mov a2, a5 /* arg3 */ # 7f: 2d05 + call0 cnx_node_search # 81: 01e4ffc0 + # 85: 0000 + l8ui a0, a2, 232 # 87: 0202e8 + addi a0, a0, 1 # 8a: 1b00 + j .Lbr004 # 8c: 460000 +.Lbr003: addi a0, a14, 9 /* arg4+0x9 */ # 8f: 9b0e +.Lbr004: extui a15, a0, 0, 8 # 91: 00f074 + s32i a14, sp, 48 /* arg4 -> [(local1)] */ # 94: e9c1 +.Lbr005: addi a14, a15, 1 # 96: 1bef + bnez a12, .Lbr006 # 98: cc9c + mov a2, a14 # 9a: 2d0e + call0 ic_remove_key # 9c: 01dfffc0 + # a0: 0000 + j .Lbr013 # a2: 062a00 +.Lbr006: l32i a2, sp, 96 /* [(local10)] */ # a5: 222118 + s32i a2, sp, 80 /* [(local10)] -> [(local9)] */ # a8: 226114 + bnei a12, 2, .Lbr007 # ab: 662c2f + addi a2, sp, 16 /* (FP)-0x50 */ # ae: 22c110 + l32i a3, sp, 56 /* [(local3)] */ # b1: 38e1 + movi a4, 24 /* 0x00000018 */ # b3: 1c84 + call0 memcpy # b5: 01d9ffc0 + # b9: 0000 + addi a2, sp, 32 /* (FP)-0x40 */ # bb: 22c120 + l32i a3, sp, 56 /* [(local3)] */ # be: 38e1 + movi a4, 8 /* 0x00000008 */ # c0: 0c84 + addi a3, a3, 24 /* [(local3)]+0x18 */ # c2: 32c318 + call0 memcpy # c5: 01d6ffc0 + # c9: 0000 + addi a2, sp, 40 /* (FP)-0x38 */ # cb: 22c128 + l32i a3, sp, 56 /* [(local3)] */ # ce: 38e1 + movi a4, 8 /* 0x00000008 */ # d0: 0c84 + addi a3, a3, 16 /* [(local3)]+0x10 */ # d2: 32c310 + call0 memcpy # d5: 01d3ffc0 + # d9: 0000 + j .Lbr008 # db: 460300 +.Lbr007: addi a2, sp, 16 /* (FP)-0x50 */ # de: 22c110 + l32i a3, sp, 56 /* [(local3)] */ # e1: 38e1 + l32i a4, sp, 80 /* [(local9)] */ # e3: 422114 + call0 memcpy # e6: 01d0ffc0 + # ea: 0000 +.Lbr008: mov a5, a13 /* arg3 */ # ec: 5d0d + movi a2, 1 /* 0x00000001 */ # ee: 0c12 + mov a3, a12 /* arg2 */ # f0: 3d0c + mov a6, a14 # f2: 6d0e + l32i a4, sp, 80 /* [(local9)] */ # f4: 422114 + addi a7, sp, 16 /* (FP)-0x50 */ # f7: 72c110 + s32i a4, sp, 0 /* [(local9)] -> [(local0)] */ # fa: 4901 + l32i a4, sp, 48 /* [(local1)] */ # fc: 48c1 + call0 ic_set_key # fe: 01cbffc0 + # 102: 0000 + movi a5, g_ic # 104: 51bfff + addx4 a15, a15, a5 # 107: 50ffa0 + l32i a2, a15, 0x18c # 10a: 222f63 + beqz a2, .Lbr009 # 10d: 8c42 + call0 free # 10f: 01c8ffc0 + # 113: 0000 +.Lbr009: movi a2, 160 /* 0x000000a0 */ # 115: 22a0a0 + call0 malloc # 118: 01c7ffc0 + # 11c: 0000 + mov a13, a2 # 11e: dd02 + s32i a2, a15, 0x18c # 120: 226f63 + movi a3, 160 /* 0x000000a0 */ # 123: 32a0a0 + call0 bzero # 126: 01c4ffc0 + # 12a: 0000 + bnei a12, 2, .Lbr010 # 12c: 662c12 + movi a6, 1 /* 0x00000001 */ # 12f: 0c16 + movi a7, 0 /* 0x00000000 */ # 131: 0c07 + movi a8, tkip # 133: 81b4ff + s32i a8, a13, 152 # 136: 826d26 + s32i a7, a13, 148 # 139: 726d25 + s32i a6, a13, 144 # 13c: 626d24 + j .Lbr012 # 13f: 060200 +.Lbr010: bnei a12, 3, .Lbr014 # 142: 663c1d + movi a0, ccmp # 145: 01b0ff +.Lbr011: s32i a0, a13, 152 # 148: 026d26 +.Lbr012: s16i a14, a13, 0 # 14b: e25d00 +.Lbr013: movi a2, 0 /* 0x00000000 */ # 14e: 0c02 + l32i a12, sp, 64 /* [(local5)] */ # 150: c22110 + l32i a13, sp, 68 /* [(local6)] */ # 153: d22111 + l32i a14, sp, 72 /* [(local7)] */ # 156: e22112 + l32i a15, sp, 76 /* [(local8)] */ # 159: f22113 + l32i a0, sp, 60 /* [(local4)] */ # 15c: 08f1 + addi sp, sp, 96 /* (local10) */ # 15e: 12c160 + ret /* 0x00000000 */ # 161: 0df0 +.Lbr014: beqi a12, 1, .Lbr015 # 163: 261c02 + bnei a12, 5, .Lbr012 # 166: 665ce1 +.Lbr015: movi a0, wep # 169: 01a8ff + j .Lbr011 # 16c: 06f6ff + + .balign 4 +# Function @ .irom0.text+0x170 + .balign 4 + .global wpa_auth_for_each_sta + .type wpa_auth_for_each_sta, @function +wpa_auth_for_each_sta: + movi a2, 0 /* 0x00000000 */ # 170: 0c02 + ret /* 0x00000000 */ # 172: 0df0 + +# Function @ .irom0.text+0x174 + .balign 4 +.Lfunc003: ret /* arg0 */ # 174: 0df0 + + .balign 4 +# Function @ .irom0.text+0x178 + .balign 4 +.Lfunc004: movi a2, 0 /* 0x00000000 */ # 178: 0c02 + ret /* 0x00000000 */ # 17a: 0df0 + + .literal_position # 17c: 84010000 + # 180: 00000000 + +# Function @ .irom0.text+0x184 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word[4] @ -0x10 + .balign 4 +.Lfunc005: addi sp, sp, -32 /* (local0) */ # 184: 12c1e0 + s32i a14, sp, 12 /* a14 -> [(local3)] */ # 187: e931 + s32i a15, sp, 16 /* a15 -> [(local4)] */ # 189: f941 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 18b: 0901 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 18d: d921 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 18f: c911 + l32i a12, a2, 0 /* [arg0] */ # 191: c802 + mov a13, a2 /* arg0 */ # 193: dd02 + beqz a12, .Lbr018 # 195: 9c9c + movi a14, 0 /* 0x00000000 */ # 197: 0c0e + movi a15, 1 /* 0x00000001 */ # 199: 0c1f +.Lbr016: s32i a15, a12, 16 # 19b: f94c +.Lbr017: s32i a14, a12, 200 # 19d: e26c32 + mov a2, a13 /* arg0 */ # 1a0: 2d0d + mov a3, a12 # 1a2: 3d0c + call0 .Lfunc047 # 1a4: 85cc01 + l32i a0, a12, 200 # 1a7: 022c32 + bnez a0, .Lbr017 # 1aa: 56f0fe + l32i a12, a12, 0 # 1ad: c80c + bnez a12, .Lbr016 # 1af: 568cfe +.Lbr018: l32i a2, a13, 20 /* [arg0+0x14] */ # 1b2: 285d + beqz a2, .Lbr019 # 1b4: 8cd2 + mov a5, a13 /* arg0 */ # 1b6: 5d0d + movi a3, 0 /* 0x00000000 */ # 1b8: 0c03 + movi a4, .Lfunc005 # 1ba: 41f0ff + movi a6, 0 /* 0x00000000 */ # 1bd: 0c06 + call0 eloop_register_timeout # 1bf: 01f0ffc0 + # 1c3: 0000 +.Lbr019: l32i a12, sp, 4 /* [(local1)] */ # 1c5: c811 + l32i a13, sp, 8 /* [(local2)] */ # 1c7: d821 + l32i a14, sp, 12 /* [(local3)] */ # 1c9: e831 + l32i a15, sp, 16 /* [(local4)] */ # 1cb: f841 + l32i a0, sp, 0 /* [(local0)] */ # 1cd: 0801 + addi sp, sp, 32 /* (top of frame) */ # 1cf: 12c120 + ret # 1d2: 0df0 + +# Function @ .irom0.text+0x1d4 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 +.Lfunc006: mov a2, a3 /* arg1 */ # 1d4: 2d03 + addi sp, sp, -16 /* (local0) */ # 1d6: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 1d9: c911 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1db: 0901 + mov a12, a3 /* arg1 */ # 1dd: cd03 + call0 .Lfunc010 # 1df: 453100 + mov a2, a12 /* arg1 */ # 1e2: 2d0c + call0 .Lfunc048 # 1e4: 05cd01 + l32i a12, sp, 4 /* [(local1)] */ # 1e7: c811 + l32i a0, sp, 0 /* [(local0)] */ # 1e9: 0801 + addi sp, sp, 16 /* (top of frame) */ # 1eb: 12c110 + ret # 1ee: 0df0 + + .literal_position # 1f0: 00000000 + # 1f4: 00000000 + # 1f8: 00000000 + # 1fc: 00000000 + # 200: 00000000 + # 204: 00000000 + # 208: 00000000 + +# Function @ .irom0.text+0x20c +# Local variables/stack: +# (local0): word[20] @ -0x70 +# (local1): word @ -0x20 +# (local2): word @ -0x1c +# (local3): word[3] @ -0x18 +# (local4): word[3] @ -0xc + .balign 4 +.Lfunc007: addi sp, sp, -112 /* (local0) */ # 20c: 12c190 + s32i a0, sp, 84 /* a0 -> [(local2)] */ # 20f: 026115 + s32i a12, sp, 88 /* a12 -> [(local3)] */ # 212: c26116 + s32i a2, sp, 80 /* arg0 -> [(local1)] */ # 215: 226114 + mov a12, a3 /* arg1 */ # 218: cd03 + addi a2, a3, 72 /* arg1+0x48 */ # 21a: 22c348 + movi a3, 32 /* 0x00000020 */ # 21d: 2c03 + call0 os_get_random # 21f: 01f5ffc0 + # 223: 0000 + bltz a2, .Lbr021 # 225: 962206 + s32i a12, sp, 100 /* arg1 -> [(local4)] */ # 228: c26119 + addi a2, sp, 16 /* (FP)-0x60 */ # 22b: 22c110 + l32i a3, sp, 80 /* [(local1)] */ # 22e: 322114 + movi a4, 6 /* 0x00000006 */ # 231: 0c64 + addi a3, a3, 88 /* [(local1)]+0x58 */ # 233: 32c358 + call0 memcpy # 236: 01f0ffc0 + # 23a: 0000 + addi a2, sp, 22 /* (FP)-0x5a */ # 23c: 22c116 + call0 wpa_get_ntp_timestamp # 23f: 01efffc0 + # 243: 0000 + addi a2, sp, 30 /* (FP)-0x52 */ # 245: 22c11e + movi a4, 4 /* 0x00000004 */ # 248: 0c44 + addi a3, sp, 100 /* (local4) */ # 24a: 32c164 + call0 memcpy # 24d: 01ecffc0 + # 251: 0000 + addi a2, sp, 48 /* (FP)-0x40 */ # 253: 22c130 + movi a3, 32 /* 0x00000020 */ # 256: 2c03 + call0 os_get_random # 258: 01ebffc0 + # 25c: 0000 + bltz a2, .Lbr021 # 25e: 969202 + addi a7, a12, 36 /* arg1+0x24 */ # 261: 72cc24 + addi a2, sp, 48 /* (FP)-0x40 */ # 264: 22c130 + movi a3, 32 /* 0x00000020 */ # 267: 2c03 + addi a5, sp, 16 /* (FP)-0x60 */ # 269: 52c110 + movi a4, 32 /* 0x00000020 */ # 26c: 2c04 + movi a6, 18 /* 0x00000012 */ # 26e: 1c26 + s32i a4, sp, 0 /* 0x00000020 -> [(local0)] */ # 270: 4901 + movi a4, .Lstr001 # 272: 41dfff + call0 sha1_prf # 275: 01e4ffc0 + # 279: 0000 + bltz a2, .Lbr021 # 27b: 96c200 + movi a2, 0 /* 0x00000000 */ # 27e: 0c02 +.Lbr020: l32i a12, sp, 88 /* [(local3)] */ # 280: c22116 + l32i a0, sp, 84 /* [(local2)] */ # 283: 022115 + addi sp, sp, 112 /* (top of frame) */ # 286: 12c170 + ret # 289: 0df0 +.Lbr021: movi a2, -1 /* 0xffffffff */ # 28b: 7cf2 + j .Lbr020 # 28d: c6fbff + + .literal_position # 290: 00000000 + # 294: 00000000 + # 298: 00000000 + # 29c: 701e0000 + +# Function @ .irom0.text+0x2a0 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word @ -0x8 +# (local3): word @ -0x4 + .balign 4 +.Lfunc008: addi sp, sp, -16 /* (local0) */ # 2a0: 12c1f0 + s32i a12, sp, 8 /* a12 -> [(local2)] */ # 2a3: c921 + s32i a4, sp, 0 /* arg2 -> [(local0)] */ # 2a5: 4901 + s32i a13, sp, 12 /* a13 -> [(local3)] */ # 2a7: d931 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 2a9: 0911 + mov a13, a2 /* arg0 */ # 2ab: dd02 + movi a2, 212 /* 0x000000d4 */ # 2ad: 22a0d4 + call0 zalloc # 2b0: 01f8ffc0 + # 2b4: 0000 + mov a12, a2 # 2b6: cd02 + beqz a2, .Lbr022 # 2b8: 9ce2 + movi a0, 1 /* 0x00000001 */ # 2ba: 0c10 + s32i a0, a2, 32 # 2bc: 0982 + l32i a2, a13, 16 /* [arg0+0x10] */ # 2be: 284d + call0 wpa_cipher_key_len # 2c0: 01f5ffc0 + # 2c4: 0000 + s32i a2, a12, 20 # 2c6: 295c + mov a3, a12 # 2c8: 3d0c + mov a2, a13 /* arg0 */ # 2ca: 2d0d + call0 .Lfunc007 # 2cc: c5f3ff + bgez a2, .Lbr023 # 2cf: d6c200 + mov a2, a12 # 2d2: 2d0c + call0 free # 2d4: 01f1ffc0 + # 2d8: 0000 +.Lbr022: movi a12, 0 /* 0x00000000 */ # 2da: 0c0c + j .Lbr024 # 2dc: 060700 +.Lbr023: movi a3, 1 /* 0x00000001 */ # 2df: 0c13 + l32i a2, sp, 0 /* [(local0)] */ # 2e1: 2801 + s32i a3, a12, 8 # 2e3: 392c + bnez a2, .Lbr024 # 2e5: dc32 + mov a2, a13 /* arg0 */ # 2e7: 2d0d + mov a3, a12 # 2e9: 3d0c + call0 .Lfunc047 # 2eb: 01ecffc0 + # 2ef: 0000 + mov a2, a13 /* arg0 */ # 2f1: 2d0d + mov a3, a12 # 2f3: 3d0c + movi a4, 0 /* 0x00000000 */ # 2f5: 0c04 + s32i a4, a12, 8 # 2f7: 492c + call0 .Lfunc047 # 2f9: 45b701 +.Lbr024: l32i a0, sp, 4 /* [(local1)] */ # 2fc: 0811 + mov a2, a12 # 2fe: 2d0c + l32i a13, sp, 12 /* [(local3)] */ # 300: d831 + l32i a12, sp, 8 /* [(local2)] */ # 302: c821 + addi sp, sp, 16 /* (top of frame) */ # 304: 12c110 + ret # 307: 0df0 + + .literal_position # 30c: 00000000 + # 310: 00000000 + # 314: 00000000 + # 318: 00000000 + # 31c: 00000000 + # 320: 00000000 + # 324: 00000000 + +# Function @ .irom0.text+0x328 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word @ -0x8 +# (local3): word @ -0x4 + .balign 4 + .global wpa_init + .type wpa_init, @function +wpa_init: mov a6, a2 /* arg0 */ # 328: 6d02 + addi sp, sp, -16 /* (local0) */ # 32a: 12c1f0 + s32i a12, sp, 12 /* a12 -> [(local3)] */ # 32d: c931 + movi a2, 96 /* 0x00000060 */ # 32f: 22a060 + s32i a3, sp, 0 /* arg1 -> [(local0)] */ # 332: 3901 + s32i a0, sp, 8 /* a0 -> [(local2)] */ # 334: 0921 + s32i a6, sp, 4 /* arg0 -> [(local1)] */ # 336: 6911 + call0 zalloc # 338: 01f5ffc0 + # 33c: 0000 + mov a12, a2 # 33e: cd02 + beqz a2, .Lbr026 # 340: 16b204 + l32i a3, sp, 4 /* [(local1)] */ # 343: 3811 + addi a2, a2, 88 # 345: 22c258 + movi a4, 6 /* 0x00000006 */ # 348: 0c64 + call0 memcpy # 34a: 01f1ffc0 + # 34e: 0000 + l32i a3, sp, 0 /* [(local0)] */ # 350: 3801 + addi a2, a12, 4 # 352: 4b2c + movi a4, 76 /* 0x0000004c */ # 354: 4cc4 + call0 memcpy # 356: 01efffc0 + # 35a: 0000 + mov a2, a12 # 35c: 2d0c + call0 wpa_auth_gen_wpa_ie # 35e: 01eeffc0 + # 362: 0000 + beqz a2, .Lbr025 # 364: 8c92 + mov a2, a12 # 366: 2d0c + call0 free # 368: 01edffc0 + # 36c: 0000 + j .Lbr026 # 36e: 460700 +.Lbr025: mov a2, a12 # 371: 2d0c + movi a3, 0 /* 0x00000000 */ # 373: 0c03 + movi a4, 0 /* 0x00000000 */ # 375: 0c04 + call0 .Lfunc008 # 377: 85f2ff + s32i a2, a12, 0 # 37a: 290c + bnez a2, .Lbr027 # 37c: dc12 + l32i a2, a12, 80 # 37e: 222c14 + call0 free # 381: 01e7ffc0 + # 385: 0000 + mov a2, a12 # 387: 2d0c + call0 free # 389: 01e6ffc0 + # 38d: 0000 +.Lbr026: movi a12, 0 /* 0x00000000 */ # 38f: 0c0c +.Lbr027: mov a2, a12 # 391: 2d0c + l32i a0, sp, 8 /* [(local2)] */ # 393: 0821 + l32i a12, sp, 12 /* [(local3)] */ # 395: c831 + addi sp, sp, 16 /* (top of frame) */ # 397: 12c110 + ret # 39a: 0df0 + + .literal_position # 39c: 00000000 + # 3a0: 00000000 + +# Function @ .irom0.text+0x3a4 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word @ -0x8 +# (local3): word @ -0x4 + .balign 4 + .global wpa_auth_sta_init + .type wpa_auth_sta_init, @function +wpa_auth_sta_init: + mov a5, a2 /* arg0 */ # 3a4: 5d02 + addi sp, sp, -16 /* (local0) */ # 3a6: 12c1f0 + s32i a12, sp, 12 /* a12 -> [(local3)] */ # 3a9: c931 + movi a2, 412 /* 0x0000019c */ # 3ab: 22a19c + s32i a3, sp, 0 /* arg1 -> [(local0)] */ # 3ae: 3901 + s32i a0, sp, 8 /* a0 -> [(local2)] */ # 3b0: 0921 + s32i a5, sp, 4 /* arg0 -> [(local1)] */ # 3b2: 5911 + call0 zalloc # 3b4: 01faffc0 + # 3b8: 0000 + mov a12, a2 # 3ba: cd02 + bnez a2, .Lbr028 # 3bc: cc32 + movi a12, 0 /* 0x00000000 */ # 3be: 0c0c + j .Lbr029 # 3c0: c60400 +.Lbr028: l32i a3, sp, 0 /* [(local0)] */ # 3c3: 3801 + addi a2, a2, 8 # 3c5: 8b22 + movi a4, 6 /* 0x00000006 */ # 3c7: 0c64 + call0 memcpy # 3c9: 01f5ffc0 + # 3cd: 0000 + l32i a0, sp, 4 /* [(local1)] */ # 3cf: 0811 + s32i a0, a12, 0 # 3d1: 090c + l32i a0, a0, 0 /* [[(local1)]] */ # 3d3: 0800 + s32i a0, a12, 4 # 3d5: 091c +.Lbr029: mov a2, a12 # 3d7: 2d0c + l32i a0, sp, 8 /* [(local2)] */ # 3d9: 0821 + l32i a12, sp, 12 /* [(local3)] */ # 3db: c831 + addi sp, sp, 16 /* (top of frame) */ # 3dd: 12c110 + ret # 3e0: 0df0 + + .literal_position # 3e4: 00000000 + # 3e8: b81e0000 + # 3ec: b81e0000 + +# Function @ .irom0.text+0x3f0 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global wpa_auth_sta_associated + .type wpa_auth_sta_associated, @function +wpa_auth_sta_associated: + addi sp, sp, -16 /* (local0) */ # 3f0: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 3f3: c911 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 3f5: 0901 + mov a12, a3 /* arg1 */ # 3f7: cd03 + beqz a2, .Lbr033 # 3f9: 168206 + l32i a0, a2, 4 /* [arg0+0x4] */ # 3fc: 0812 + beqz a0, .Lbr033 # 3fe: 163006 + beqz a3, .Lbr033 # 401: 160306 + movi a2, 244 /* 0x000000f4 */ # 404: 22a0f4 + add a2, a3, a2 /* arg1+0xf4 */ # 407: 2a23 + l8ui a0, a2, 128 /* [arg1+0x174] */ # 409: 020280 + bbci a0, 3, .Lbr030 # 40c: 37601d + movi a2, 252 /* 0x000000fc */ # 40f: 22a0fc + movi a4, 48 /* 0x00000030 */ # 412: 3c04 + add a2, a3, a2 /* arg1+0xfc */ # 414: 2a23 + movi a3, 0 /* 0x00000000 */ # 416: 0c03 + call0 memset # 418: 01f3ffc0 + # 41c: 0000 + mov a2, a12 /* arg1 */ # 41e: 2d0c + movi a3, 1 /* 0x00000001 */ # 420: 0c13 + s32i a3, a12, 36 /* 0x00000001 -> [arg1+0x24] */ # 422: 399c + call0 .Lfunc048 # 424: 01f1ffc0 + # 428: 0000 + j .Lbr032 # 42a: 860b00 +.Lbr030: movi a4, 1 /* 0x00000001 */ # 42d: 0c14 + movi a6, 8 /* 0x00000008 */ # 42f: 0c86 + movi a5, 247 /* 0x000000f7 */ # 431: 52a0f7 + and a5, a0, a5 # 434: 505010 + or a5, a5, a6 # 437: 605520 + s8i a5, a2, 128 /* a5 -> [arg1+0x174] */ # 43a: 524280 + s32i a4, a3, 24 /* 0x00000001 -> [arg1+0x18] */ # 43d: 4963 + mov a2, a3 /* arg1 */ # 43f: 2d03 + call0 .Lfunc048 # 441: 01eaffc0 + # 445: 0000 + bnei a2, 1, .Lbr031 # 447: 661204 + movi a2, 1 /* 0x00000001 */ # 44a: 0c12 + j .Lbr032 # 44c: 060300 +.Lbr031: mov a2, a12 /* arg1 */ # 44f: 2d0c + movi a6, 0 /* 0x00000000 */ # 451: 0c06 + movi a7, 1 /* 0x00000001 */ # 453: 0c17 + s32i a7, a12, 32 /* 0x00000001 -> [arg1+0x20] */ # 455: 798c + s32i a6, a12, 24 /* 0x00000000 -> [arg1+0x18] */ # 457: 696c + call0 .Lfunc048 # 459: c5a501 +.Lbr032: l32i a12, sp, 4 /* [(local1)] */ # 45c: c811 + l32i a0, sp, 0 /* [(local0)] */ # 45e: 0801 + addi sp, sp, 16 /* (top of frame) */ # 460: 12c110 + ret # 463: 0df0 +.Lbr033: movi a2, -1 /* 0xffffffff */ # 465: 7cf2 + j .Lbr032 # 467: 46fcff + + .balign 4 +# Function @ .irom0.text+0x46c + .balign 4 + .global wpa_auth_sta_no_wpa + .type wpa_auth_sta_no_wpa, @function +wpa_auth_sta_no_wpa: + beqz a2, .Lbr034 # 46c: 8c32 + movi a3, 0 /* 0x00000000 */ # 46e: 0c03 + s32i a3, a2, 0x194 /* 0x00000000 -> [arg0+0x194] */ # 470: 326265 +.Lbr034: ret /* arg0 */ # 473: 0df0 + + .literal_position # 478: 00000000 + # 47c: 00000000 + # 480: 00000000 + +# Function @ .irom0.text+0x484 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 +.Lfunc009: addi sp, sp, -16 /* (local0) */ # 484: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 487: c911 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 489: 0901 + l32i a0, a2, 72 /* [arg0+0x48] */ # 48b: 022212 + mov a12, a2 /* arg0 */ # 48e: cd02 + beqz a0, .Lbr035 # 490: 8cb0 + l32i a4, a2, 4 /* [arg0+0x4] */ # 492: 4812 + l32i a3, a4, 12 /* [[arg0+0x4]+0xc] */ # 494: 3834 + movi a2, 0 /* 0x00000000 */ # 496: 0c02 + addi a3, a3, -1 /* [[arg0+0x4]+0xc]-0x1 */ # 498: 0b33 + s32i a3, a4, 12 /* [[arg0+0x4]+0xc]-0x1 -> [[arg0+0x4]+0xc] */ # 49a: 3934 + s32i a2, a12, 72 /* 0x00000000 -> [arg0+0x48] */ # 49c: 226c12 +.Lbr035: l32i a2, a12, 0x16c /* [arg0+0x16c] */ # 49f: 222c5b + call0 free # 4a2: 01f5ffc0 + # 4a6: 0000 + l32i a2, a12, 0x184 /* [arg0+0x184] */ # 4a8: 222c61 + call0 free # 4ab: 01f4ffc0 + # 4af: 0000 + mov a2, a12 /* arg0 */ # 4b1: 2d0c + call0 free # 4b3: 01f3ffc0 + # 4b7: 0000 + l32i a12, sp, 4 /* [(local1)] */ # 4b9: c811 + l32i a0, sp, 0 /* [(local0)] */ # 4bb: 0801 + addi sp, sp, 16 /* (top of frame) */ # 4bd: 12c110 + ret # 4c0: 0df0 + + .balign 4 +# Function @ .irom0.text+0x4c4 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global wpa_auth_sta_deinit + .type wpa_auth_sta_deinit, @function +wpa_auth_sta_deinit: + addi sp, sp, -16 /* (local0) */ # 4c4: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 4c7: 0901 + beqz a2, .Lbr037 # 4c9: 9cd2 + movi a4, 244 /* 0x000000f4 */ # 4cb: 42a0f4 + add a4, a2, a4 /* arg0+0xf4 */ # 4ce: 4a42 + l8ui a0, a4, 128 /* [arg0+0x174] */ # 4d0: 020480 + movi a6, 4 /* 0x00000004 */ # 4d3: 0c46 + bbci a0, 1, .Lbr036 # 4d5: 17600e + movi a5, 251 /* 0x000000fb */ # 4d8: 52a0fb + and a5, a0, a5 # 4db: 505010 + or a5, a5, a6 # 4de: 605520 + s8i a5, a4, 128 /* a5 -> [arg0+0x174] */ # 4e1: 524480 + j .Lbr037 # 4e4: 860000 +.Lbr036: call0 .Lfunc009 # 4e7: c5f9ff +.Lbr037: l32i a0, sp, 0 /* [(local0)] */ # 4ea: 0801 + addi sp, sp, 16 /* (top of frame) */ # 4ec: 12c110 + ret # 4ef: 0df0 + + .balign 4 +# Function @ .irom0.text+0x4f4 + .balign 4 +.Lfunc010: beqz a2, .Lbr038 # 4f4: 8c82 + movi a3, 0 /* 0x00000000 */ # 4f6: 0c03 + movi a4, 1 /* 0x00000001 */ # 4f8: 0c14 + s32i a4, a2, 0x160 /* 0x00000001 -> [arg0+0x160] */ # 4fa: 426258 + s32i a3, a2, 236 /* 0x00000000 -> [arg0+0xec] */ # 4fd: 32623b +.Lbr038: ret /* arg0 */ # 500: 0df0 + + .literal_position # 504: 00000000 + +# Function @ .irom0.text+0x508 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word @ -0x8 +# (local3): word @ -0x4 + .balign 4 +.Lfunc011: addi sp, sp, -16 /* (local0) */ # 508: 12c1f0 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 50b: 0911 + s32i a13, sp, 12 /* a13 -> [(local3)] */ # 50d: d931 + s32i a12, sp, 8 /* a12 -> [(local2)] */ # 50f: c921 + mov a13, a3 /* arg1 */ # 511: dd03 + mov a12, a2 /* arg0 */ # 513: cd02 + addi a0, a2, 48 /* arg0+0x30 */ # 515: 02c230 + s32i a0, sp, 0 /* arg0+0x30 -> [(local0)] */ # 518: 0901 +.Lbr039: l32i a2, a12, 8 # 51a: 282c + beqz a2, .Lbr041 # 51c: 9c82 + mov a2, a13 /* arg1 */ # 51e: 2d0d + mov a3, a12 # 520: 3d0c + movi a4, 8 /* 0x00000008 */ # 522: 0c84 + call0 memcmp # 524: 01f8ffc0 + # 528: 0000 + bnez a2, .Lbr040 # 52a: cc32 + movi a2, 1 /* 0x00000001 */ # 52c: 0c12 + j .Lbr042 # 52e: 060200 +.Lbr040: l32i a3, sp, 0 /* [(local0)] */ # 531: 3801 + addi a12, a12, 12 # 533: cbcc + bne a12, a3, .Lbr039 # 535: 379ce1 +.Lbr041: movi a2, 0 /* 0x00000000 */ # 538: 0c02 +.Lbr042: l32i a12, sp, 8 /* [(local2)] */ # 53a: c821 + l32i a13, sp, 12 /* [(local3)] */ # 53c: d831 + l32i a0, sp, 4 /* [(local1)] */ # 53e: 0811 + addi sp, sp, 16 /* (top of frame) */ # 540: 12c110 + ret # 543: 0df0 + + .literal_position # 548: 00000000 + +# Function @ .irom0.text+0x54c +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word @ -0x8 +# (local3): word @ -0x4 + .balign 4 +.Lfunc012: addi sp, sp, -16 /* (local0) */ # 54c: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 54f: 0901 + s32i a14, sp, 12 /* a14 -> [(local3)] */ # 551: e931 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 553: d921 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 555: c911 + mov a13, a3 /* arg1 */ # 557: dd03 + mov a12, a2 /* arg0 */ # 559: cd02 + addi a14, a2, 48 /* arg0+0x30 */ # 55b: e2c230 + movi a0, 0 /* 0x00000000 */ # 55e: 0c00 +.Lbr043: l32i a2, a12, 8 # 560: 282c + beqz a2, .Lbr045 # 562: 9c22 + beqz a13, .Lbr044 # 564: 8ced + mov a2, a13 /* arg1 */ # 566: 2d0d + mov a3, a12 # 568: 3d0c + movi a4, 8 /* 0x00000008 */ # 56a: 0c84 + call0 memcmp # 56c: 01f7ffc0 + # 570: 0000 + movi a0, 0 /* 0x00000000 */ # 572: 0c00 + bnez a2, .Lbr045 # 574: cc02 +.Lbr044: s32i a0, a12, 8 # 576: 092c +.Lbr045: addi a12, a12, 12 # 578: cbcc + bne a12, a14, .Lbr043 # 57a: e79ce2 + l32i a12, sp, 4 /* [(local1)] */ # 57d: c811 + l32i a13, sp, 8 /* [(local2)] */ # 57f: d821 + l32i a14, sp, 12 /* [(local3)] */ # 581: e831 + l32i a0, sp, 0 /* [(local0)] */ # 583: 0801 + addi sp, sp, 16 /* (top of frame) */ # 585: 12c110 + ret # 588: 0df0 + + .balign 4 +# Function @ .irom0.text+0x58c +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 +.Lfunc013: mov a2, a3 /* arg1 */ # 58c: 2d03 + addi sp, sp, -16 /* (local0) */ # 58e: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 591: 0901 + call0 .Lfunc010 # 593: 05f6ff + movi a2, 0 /* 0x00000000 */ # 596: 0c02 + l32i a0, sp, 0 /* [(local0)] */ # 598: 0801 + addi sp, sp, 16 /* (top of frame) */ # 59a: 12c110 + ret /* 0x00000000 */ # 59d: 0df0 + + .literal_position # 5a0: 00280000 + # 5a4: 00080000 + # 5a8: 00080000 + # 5ac: 600a0000 + # 5b0: 84010000 + # 5b4: 00000000 + # 5b8: 00000000 + # 5bc: 9c0f0000 + # 5c0: 00000000 + # 5c4: 00000000 + # 5c8: 00000000 + # 5cc: 00000000 + # 5d0: 00000000 + # 5d4: 00000000 + # 5d8: 00000000 + # 5dc: 00000000 + # 5e0: b81e0000 + # 5e4: 00000000 + # 5e8: 00000000 + # 5ec: 00000000 + # 5f0: 00000000 + +# Function @ .irom0.text+0x5f4 +# Local variables/stack: +# (local0): word @ -0x60 +# (local1): word @ -0x5c +# (local2): word @ -0x58 +# (local3): word[4] @ -0x54 +# (local4): word[2] @ -0x44 +# (local5): word @ -0x3c +# (local6): word @ -0x38 +# (local7): word @ -0x34 +# (local8): word @ -0x30 +# (local9): word @ -0x2c +# (local10): word @ -0x28 +# (local11): word @ -0x24 +# (local12): word @ -0x20 +# (local13): word @ -0x1c +# (local14): word @ -0x18 +# (local15): word @ -0x14 +# (local16): word @ -0x10 +# (local17): word[3] @ -0xc + .balign 4 + .global wpa_receive + .type wpa_receive, @function +wpa_receive: + mov a9, a2 /* arg0 */ # 5f4: 9d02 + mov a6, a4 /* arg2 */ # 5f6: 6d04 + addi sp, sp, -96 /* (local0) */ # 5f8: 12c1a0 + s32i a13, sp, 72 /* a13 -> [(local14)] */ # 5fb: d26112 + s32i a14, sp, 76 /* a14 -> [(local15)] */ # 5fe: e26113 + s32i a15, sp, 80 /* a15 -> [(local16)] */ # 601: f26114 + s32i a12, sp, 68 /* a12 -> [(local13)] */ # 604: c26111 + s32i a0, sp, 64 /* a0 -> [(local12)] */ # 607: 026110 + mov a12, a3 /* arg1 */ # 60a: cd03 + beqz a2, .Lbr048 # 60c: 165206 + l32i a0, a2, 4 /* [arg0+0x4] */ # 60f: 0812 + beqz a0, .Lbr048 # 611: 160006 + beqz a3, .Lbr048 # 614: 16d305 + movi a3, 98 /* 0x00000062 */ # 617: 32a062 + bgeu a3, a5, .Lbr048 # 61a: 57b357 + l8ui a15, a4, 6 /* [arg2+0x6] */ # 61d: f20406 + l8ui a3, a4, 97 /* [arg2+0x61] */ # 620: 320461 + l8ui a0, a4, 5 /* [arg2+0x5] */ # 623: 020405 + slli a3, a3, 8 # 626: 803311 + slli a0, a0, 8 # 629: 800011 + or a15, a15, a0 # 62c: 00ff20 + l8ui a0, a4, 98 /* [arg2+0x62] */ # 62f: 020462 + addi a4, a5, -99 /* arg3-0x63 */ # 632: 42c59d + or a0, a0, a3 # 635: 300020 + extui a0, a0, 0, 16 # 638: 0000f4 + bltu a4, a0, .Lbr048 # 63b: 073436 + movi a11, 254 /* 0x000000fe */ # 63e: b2a0fe + s32i a6, sp, 84 /* arg2 -> [(local17)] */ # 641: 626115 + l8ui a10, a6, 4 /* [arg2+0x4] */ # 644: a20604 + s32i a0, sp, 36 /* a0 -> [(local5)] */ # 647: 0991 + s32i a5, sp, 48 /* arg3 -> [(local8)] */ # 649: 59c1 + s32i a9, sp, 40 /* arg0 -> [(local6)] */ # 64b: 99a1 + movi a14, 176 /* 0x000000b0 */ # 64d: e2a0b0 + l32i a3, a12, 0x18c /* [arg1+0x18c] */ # 650: 322c63 + add a14, a12, a14 /* arg1+0xb0 */ # 653: eaec + bnei a3, 2, .Lbr047 # 655: 662319 + beq a10, a11, .Lbr046 # 658: b71a02 + bnei a10, 2, .Lbr048 # 65b: 662a16 +.Lbr046: movi a2, 0x00002800 # 65e: 21d0ff + movi a6, 0x00000800 # 661: 61d0ff + bnall a15, a2, .Lbr049 # 664: 27cf21 + extui a3, a15, 10, 1 # 667: f03a04 + beqz a3, .Lbr061 # 66a: 169318 + movi a13, 6 /* 0x00000006 */ # 66d: 0c6d + j .Lbr051 # 66f: 860a00 +.Lbr047: beq a10, a11, .Lbr046 # 672: b71ae8 +.Lbr048: l32i a12, sp, 68 /* [(local13)] */ # 675: c22111 + l32i a13, sp, 72 /* [(local14)] */ # 678: d22112 + l32i a14, sp, 76 /* [(local15)] */ # 67b: e22113 + l32i a15, sp, 80 /* [(local16)] */ # 67e: f22114 + l32i a0, sp, 64 /* [(local12)] */ # 681: 022110 + addi sp, sp, 96 /* (top of frame) */ # 684: 12c160 + ret # 687: 0df0 +.Lbr049: extui a4, a15, 13, 1 # 689: f04d04 + beqz a4, .Lbr062 # 68c: 16c416 + movi a13, 5 /* 0x00000005 */ # 68f: 0c5d + j .Lbr051 # 691: 060200 +.Lbr050: movi a5, 0 /* 0x00000000 */ # 694: 0c05 + l32i a7, sp, 36 /* [(local5)] */ # 696: 7891 + movi a13, 1 /* 0x00000001 */ # 698: 0c1d + movnez a13, a5, a7 # 69a: 70d593 +.Lbr051: beqi a13, 3, .Lbr052 # 69d: 263d07 + beqz a13, .Lbr052 # 6a0: 8c4d + beqi a13, 1, .Lbr052 # 6a2: 261d02 + bnei a13, 2, .Lbr055 # 6a5: 662d25 +.Lbr052: l32i a0, a14, 224 /* [arg1+0x190] */ # 6a8: 022e38 + beqi a0, 8, .Lbr053 # 6ab: 268002 + bnei a0, 64, .Lbr055 # 6ae: 66d01c +.Lbr053: mov a2, a12 /* arg1 */ # 6b1: 2d0c + call0 .Lfunc004 # 6b3: 45acff + beqz a2, .Lbr054 # 6b6: 8c42 + extui a8, a15, 0, 3 # 6b8: f08024 + bnei a8, 3, .Lbr048 # 6bb: 6638b6 +.Lbr054: mov a2, a12 /* arg1 */ # 6be: 2d0c + call0 .Lfunc004 # 6c0: 45abff + movi a6, 0x00000800 # 6c3: 61b9ff + bnez a2, .Lbr055 # 6c6: cc42 + extui a9, a15, 0, 3 # 6c8: f09024 + bnei a9, 2, .Lbr048 # 6cb: 6629a6 +.Lbr055: and a10, a15, a6 # 6ce: 60af10 + s32i a10, sp, 60 /* a10 -> [(local11)] */ # 6d1: a9f1 + bnone a15, a6, .Lbr056 # 6d3: 670f19 + l32i a0, a12, 0x180 /* [arg1+0x180] */ # 6d6: 022c60 + beqz a0, .Lbr056 # 6d9: 9c30 + movi a4, 8 /* 0x00000008 */ # 6db: 0c84 + l32i a2, sp, 84 /* [(local17)] */ # 6dd: 222115 + movi a3, 373 /* 0x00000175 */ # 6e0: 32a175 + add a3, a12, a3 /* arg1+0x175 */ # 6e3: 3a3c + addi a2, a2, 9 /* [(local17)]+0x9 */ # 6e5: 9b22 + call0 memcmp # 6e7: 01b3ffc0 + # 6eb: 0000 + blti a2, 1, .Lbr048 # 6ed: a61284 +.Lbr056: l32i a3, sp, 60 /* [(local11)] */ # 6f0: 38f1 + bnez a3, .Lbr057 # 6f2: 567305 + l32i a3, sp, 84 /* [(local17)] */ # 6f5: 322115 + movi a2, 252 /* 0x000000fc */ # 6f8: 22a0fc + add a2, a12, a2 /* arg1+0xfc */ # 6fb: 2a2c + addi a3, a3, 9 /* [(local17)]+0x9 */ # 6fd: 9b33 + s32i a3, sp, 56 /* [(local17)]+0x9 -> [(local10)] */ # 6ff: 39e1 + call0 .Lfunc011 # 701: 45e0ff + bnez a2, .Lbr057 # 704: 565204 + bnez a13, .Lbr084 # 707: 562d29 + l32i a3, sp, 56 /* [(local10)] */ # 70a: 38e1 + movi a2, 300 /* 0x0000012c */ # 70c: 22a12c + add a2, a12, a2 /* arg1+0x12c */ # 70f: 2a2c + s32i a2, sp, 52 /* arg1+0x12c -> [(local9)] */ # 711: 29d1 + call0 .Lfunc011 # 713: 45dfff + beqz a2, .Lbr083 # 716: 167227 + l32i a3, a12, 16 /* [arg1+0x10] */ # 719: 384c + addi a3, a3, -10 /* [arg1+0x10]-0xa */ # 71b: 32c3f6 + bnez a3, .Lbr083 # 71e: 56f326 + addi a2, a12, 108 /* arg1+0x6c */ # 721: 22cc6c + l32i a3, sp, 84 /* [(local17)] */ # 724: 322115 + movi a4, 32 /* 0x00000020 */ # 727: 2c04 + addi a3, a3, 17 /* [(local17)]+0x11 */ # 729: 32c311 + call0 memcmp # 72c: 01a3ffc0 + # 730: 0000 + beqz a2, .Lbr083 # 732: 16b225 + l32i a2, sp, 52 /* [(local9)] */ # 735: 28d1 + movi a5, 191 /* 0x000000bf */ # 737: 52a0bf + l8ui a4, a14, 196 /* [arg1+0x174] */ # 73a: 420ec4 + l32i a3, sp, 56 /* [(local10)] */ # 73d: 38e1 + and a4, a4, a5 # 73f: 504410 + movi a5, 64 /* 0x00000040 */ # 742: 4c05 + or a4, a4, a5 # 744: 504420 + s8i a4, a14, 196 /* a4 -> [arg1+0x174] */ # 747: 424ec4 + call0 .Lfunc012 # 74a: 05e0ff +.Lbr057: beqz a13, .Lbr063 # 74d: 163d0b + addi a6, a13, -1 # 750: 0b6d + beqz a6, .Lbr065 # 752: 16760d + addi a7, a13, -2 # 755: 72cdfe + beqz a7, .Lbr071 # 758: 160719 + beqi a13, 3, .Lbr058 # 75b: 263d08 + bgeui a13, 7, .Lbr058 # 75e: f67d05 + bltui a13, 4, .Lbr058 # 761: b64d02 + j .Lbr048 # 764: 46c3ff +.Lbr058: extui a8, a15, 7, 1 # 767: f08704 + bnez a8, .Lbr048 # 76a: 5678f0 + extui a9, a15, 8, 1 # 76d: f09804 + beqz a9, .Lbr048 # 770: 1619f0 + movi a0, 0 /* 0x00000000 */ # 773: 0c00 + l32i a10, a14, 60 /* [arg1+0xec] */ # 775: a8fe + s32i a0, a12, 68 /* 0x00000000 -> [arg1+0x44] */ # 777: 026c11 + beqz a10, .Lbr059 # 77a: acea + l8ui a11, a14, 196 /* [arg1+0x174] */ # 77c: b20ec4 + bbsi a11, 6, .Lbr059 # 77f: 67eb29 + l32i a3, sp, 84 /* [(local17)] */ # 782: 322115 + l32i a4, sp, 48 /* [(local8)] */ # 785: 48c1 + movi a2, 172 /* 0x000000ac */ # 787: 22a0ac + add a2, a12, a2 /* arg1+0xac */ # 78a: 2a2c + call0 .Lfunc017 # 78c: 018cffc0 + # 790: 0000 + bnez a2, .Lbr048 # 792: 56f2ed + movi a2, .Lfunc015 # 795: 2185ff + movi a3, 1 /* 0x00000001 */ # 798: 0c13 + mov a4, a12 /* arg1 */ # 79a: 4d0c + s32i a3, a12, 68 /* 0x00000001 -> [arg1+0x44] */ # 79c: 326c11 + l32i a3, sp, 40 /* [(local6)] */ # 79f: 38a1 + call0 eloop_cancel_timeout # 7a1: 0187ffc0 + # 7a5: 0000 + movi a4, 0 /* 0x00000000 */ # 7a7: 0c04 + s32i a4, a14, 232 /* 0x00000000 -> [arg1+0x198] */ # 7a9: 426e3a +.Lbr059: l32i a5, sp, 60 /* [(local11)] */ # 7ac: 58f1 + beqz a5, .Lbr080 # 7ae: 16051a + l32i a6, a12, 68 /* [arg1+0x44] */ # 7b1: 622c11 + beqz a6, .Lbr048 # 7b4: 16d6eb + movi a4, 8 /* 0x00000008 */ # 7b7: 0c84 + movi a3, 1 /* 0x00000001 */ # 7b9: 0c13 + movi a2, 373 /* 0x00000175 */ # 7bb: 22a175 + s32i a3, a12, 0x180 /* 0x00000001 -> [arg1+0x180] */ # 7be: 326c60 + l32i a3, sp, 84 /* [(local17)] */ # 7c1: 322115 + add a2, a12, a2 /* arg1+0x175 */ # 7c4: 2a2c + addi a3, a3, 9 /* [(local17)]+0x9 */ # 7c6: 9b33 + call0 memcpy # 7c8: 017fffc0 + # 7cc: 0000 + l32i a0, sp, 36 /* [(local5)] */ # 7ce: 0891 + addi a4, a13, -6 # 7d0: 42cdfa + beqz a4, .Lbr048 # 7d3: 16e4e9 + l32i a13, sp, 40 /* [(local6)] */ # 7d6: d8a1 + movi a6, 8 /* 0x00000008 */ # 7d8: 0c86 + and a6, a15, a6 # 7da: 606f10 + bbci a15, 10, .Lbr067 # 7dd: a76f67 + mov a2, a13 /* [(local6)] */ # 7e0: 2d0d + mov a3, a12 /* arg1 */ # 7e2: 3d0c + movi a7, 1 /* 0x00000001 */ # 7e4: 0c17 + movi a4, 0 /* 0x00000000 */ # 7e6: 0c04 + moveqz a4, a7, a6 # 7e8: 604783 + call0 .Lfunc013 # 7eb: 05daff + blti a2, 1, .Lbr060 # 7ee: a61202 + j .Lbr048 # 7f1: 06a0ff +.Lbr060: j .Lbr070 # 7f4: 462200 +.Lbr061: movi a13, 4 /* 0x00000004 */ # 7f7: 0c4d + j .Lbr051 # 7f9: 06a8ff +.Lbr062: bbci a15, 11, .Lbr066 # 7fc: b76f3d + movi a13, 3 /* 0x00000003 */ # 7ff: 0c3d + j .Lbr051 # 801: 06a6ff +.Lbr063: l32i a0, a12, 16 /* [arg1+0x10] */ # 804: 084c + beqi a0, 7, .Lbr064 # 806: 267011 + beqi a0, 8, .Lbr064 # 809: 26800e + l8ui a8, a14, 196 /* [arg1+0x174] */ # 80c: 820ec4 + extui a8, a8, 6, 1 # 80f: 808604 + beqz a8, .Lbr048 # 812: 16f8e5 + addi a9, a0, -10 /* [arg1+0x10]-0xa */ # 815: 92c0f6 + bnez a9, .Lbr048 # 818: 5699e5 +.Lbr064: l32i a10, a12, 4 /* [arg1+0x4] */ # 81b: a81c + l32i a10, a10, 208 /* [[arg1+0x4]+0xd0] */ # 81d: a22a34 + beqz a10, .Lbr072 # 820: 167a0d + l32i a2, sp, 40 /* [(local6)] */ # 823: 28a1 + addi a3, a12, 8 /* arg1+0x8 */ # 825: 8b3c + call0 .Lfunc003 # 827: c594ff + j .Lbr048 # 82a: c691ff +.Lbr065: l32i a11, a12, 16 /* [arg1+0x10] */ # 82d: b84c + addi a11, a11, -10 /* [arg1+0x10]-0xa */ # 82f: b2cbf6 + bnez a11, .Lbr048 # 832: 56fbe3 + l32i a0, a14, 60 /* [arg1+0xec] */ # 835: 08fe + bnez a0, .Lbr058 # 837: 56c0f2 + j .Lbr048 # 83a: c68dff +.Lbr066: extui a2, a15, 3, 1 # 83d: f02304 + bnez a2, .Lbr050 # 840: 5602e5 + movi a13, 2 /* 0x00000002 */ # 843: 0c2d + j .Lbr051 # 845: 0695ff +.Lbr067: movi a3, 8 /* 0x00000008 */ # 848: 0c83 + bnone a15, a3, .Lbr068 # 84a: 370f07 + mov a2, a12 /* arg1 */ # 84d: 2d0c + call0 .Lfunc010 # 84f: 45caff + j .Lbr070 # 852: c60a00 +.Lbr068: beqz a0, .Lbr069 # 855: 9c40 + mov a4, sp /* (local0) */ # 857: 4d01 + l32i a2, sp, 84 /* [(local17)] */ # 859: 222115 + mov a3, a0 /* [(local5)] */ # 85c: 3d00 + addi a2, a2, 99 /* [(local17)]+0x63 */ # 85e: 22c263 + call0 wpa_parse_kde_ies # 861: 0159ffc0 + # 865: 0000 + bnez a2, .Lbr069 # 867: cc22 + l32i a3, sp, 28 /* [(local4)] */ # 869: 3871 + bnez a3, .Lbr070 # 86b: dc23 +.Lbr069: movi a2, .Lfunc005 # 86d: 2150ff + mov a3, a13 /* [(local6)] */ # 870: 3d0d + movi a4, 0 /* 0x00000000 */ # 872: 0c04 + call0 eloop_cancel_timeout # 874: 0156ffc0 + # 878: 0000 + mov a2, a13 /* [(local6)] */ # 87a: 2d0d + movi a3, 0 /* 0x00000000 */ # 87c: 0c03 + call0 .Lfunc005 # 87e: 4590ff +.Lbr070: l32i a2, a14, 188 /* [arg1+0x16c] */ # 881: 222e2f + call0 free # 884: 0153ffc0 + # 888: 0000 + l32i a2, sp, 48 /* [(local8)] */ # 88a: 28c1 + call0 malloc # 88c: 0152ffc0 + # 890: 0000 + s32i a2, a14, 188 /* a2 -> [arg1+0x16c] */ # 892: 226e2f + beqz a2, .Lbr048 # 895: 16c2dd + l32i a3, sp, 84 /* [(local17)] */ # 898: 322115 + l32i a4, sp, 48 /* [(local8)] */ # 89b: 48c1 + call0 memcpy # 89d: 014effc0 + # 8a1: 0000 + addi a2, a12, 108 /* arg1+0x6c */ # 8a3: 22cc6c + extui a6, a15, 3, 1 # 8a6: f06304 + movi a7, 1 /* 0x00000001 */ # 8a9: 0c17 + movi a5, 1 /* 0x00000001 */ # 8ab: 0c15 + l32i a4, sp, 60 /* [(local11)] */ # 8ad: 48f1 + movi a9, 223 /* 0x000000df */ # 8af: 92a0df + l8ui a8, a14, 196 /* [arg1+0x174] */ # 8b2: 820ec4 + l32i a3, sp, 84 /* [(local17)] */ # 8b5: 322115 + l32i a10, sp, 48 /* [(local8)] */ # 8b8: a8c1 + s32i a10, a14, 192 /* [(local8)] -> [arg1+0x170] */ # 8ba: a26e30 + addi a3, a3, 17 /* [(local17)]+0x11 */ # 8bd: 32c311 + and a8, a8, a9 # 8c0: 908810 + movnez a4, a5, a4 # 8c3: 404593 + extui a9, a15, 9, 1 # 8c6: f09904 + slli a9, a9, 5 # 8c9: b09911 + or a8, a8, a9 # 8cc: 908820 + s8i a8, a14, 196 /* a8 -> [arg1+0x174] */ # 8cf: 824ec4 + s32i a7, a12, 56 /* 0x00000001 -> [arg1+0x38] */ # 8d2: 79ec + s32i a4, a12, 64 /* a4 -> [arg1+0x40] */ # 8d4: 426c10 + s32i a6, a12, 60 /* a6 -> [arg1+0x3c] */ # 8d7: 69fc + movi a4, 32 /* 0x00000020 */ # 8d9: 2c04 + call0 memcpy # 8db: 0140ffc0 + # 8df: 0000 + mov a2, a12 /* arg1 */ # 8e1: 2d0c + call0 .Lfunc048 # 8e3: 013fffc0 + # 8e7: 0000 + j .Lbr048 # 8e9: 0662ff +.Lbr071: l32i a11, a12, 20 /* [arg1+0x14] */ # 8ec: b85c + addi a11, a11, -1 /* [arg1+0x14]-0x1 */ # 8ee: 0bbb + bnez a11, .Lbr048 # 8f0: 561bd8 + l32i a0, a14, 60 /* [arg1+0xec] */ # 8f3: 08fe + bnez a0, .Lbr058 # 8f5: 56e0e6 + j .Lbr048 # 8f8: 465eff +.Lbr072: l32i a3, sp, 36 /* [(local5)] */ # 8fb: 3891 + l32i a2, sp, 84 /* [(local17)] */ # 8fd: 222115 + mov a4, sp /* (local0) */ # 900: 4d01 + addi a2, a2, 99 /* [(local17)]+0x63 */ # 902: 22c263 + call0 wpa_parse_kde_ies # 905: 0137ffc0 + # 909: 0000 + bltz a2, .Lbr048 # 90b: 9662d6 + l32i a5, sp, 8 /* [(local2)] */ # 90e: 5821 + bnez a5, .Lbr073 # 910: cc55 + l32i a5, sp, 0 /* [(local0)] */ # 912: 5801 + l32i a6, sp, 4 /* [(local1)] */ # 914: 6811 + j .Lbr074 # 916: 460000 +.Lbr073: l32i a6, sp, 12 /* [(local3)] */ # 919: 6831 +.Lbr074: l32i a3, a14, 220 /* [arg1+0x18c] */ # 91b: 322e37 + bnei a3, 2, .Lbr076 # 91e: 66230e + l32i a8, a14, 228 /* [arg1+0x194] */ # 921: 822e39 + movi a0, 1 /* 0x00000001 */ # 924: 0c10 + beqi a8, 64, .Lbr075 # 926: 26d804 + beqi a8, 32, .Lbr075 # 929: 26c801 + movi a0, 0 /* 0x00000000 */ # 92c: 0c00 +.Lbr075: bnez a0, .Lbr077 # 92e: cc30 +.Lbr076: movi a2, 0 /* 0x00000000 */ # 930: 0c02 + j .Lbr078 # 932: 460000 +.Lbr077: movi a2, 1 /* 0x00000001 */ # 935: 0c12 +.Lbr078: l32i a3, a14, 212 /* [arg1+0x184] */ # 937: 322e35 + beqz a3, .Lbr079 # 93a: 8ca3 + l32i a4, a14, 216 /* [arg1+0x188] */ # 93c: 422e36 + call0 wpa_compare_rsn_ie # 93f: 012affc0 + # 943: 0000 + beqz a2, .Lbr058 # 945: 16e2e1 +.Lbr079: l32i a2, sp, 40 /* [(local6)] */ # 948: 28a1 + addi a3, a12, 8 /* arg1+0x8 */ # 94a: 8b3c + call0 .Lfunc003 # 94c: 4582ff + j .Lbr048 # 94f: 8648ff +.Lbr080: l32i a3, sp, 84 /* [(local17)] */ # 952: 322115 + movi a2, 252 /* 0x000000fc */ # 955: 22a0fc + add a2, a12, a2 /* arg1+0xfc */ # 958: 2a2c + s32i a2, sp, 44 /* arg1+0xfc -> [(local7)] */ # 95a: 29b1 + addi a3, a3, 9 /* [(local17)]+0x9 */ # 95c: 9b33 + call0 .Lfunc012 # 95e: c5beff + movi a0, 300 /* 0x0000012c */ # 961: 02a12c + add a0, a12, a0 /* arg1+0x12c */ # 964: 0a0c + bnez a13, .Lbr081 # 966: ccfd + movi a4, 48 /* 0x00000030 */ # 968: 3c04 + l32i a13, sp, 44 /* [(local7)] */ # 96a: d8b1 + mov a2, a0 /* arg1+0x12c */ # 96c: 2d00 + mov a3, a13 /* [(local7)] */ # 96e: 3d0d + call0 memcpy # 970: 011fffc0 + # 974: 0000 + j .Lbr082 # 976: 460300 +.Lbr081: l32i a13, sp, 44 /* [(local7)] */ # 979: d8b1 + movi a3, 0 /* 0x00000000 */ # 97b: 0c03 + movi a4, 48 /* 0x00000030 */ # 97d: 3c04 + mov a2, a0 /* arg1+0x12c */ # 97f: 2d00 + call0 memset # 981: 011bffc0 + # 985: 0000 +.Lbr082: mov a2, a13 /* [(local7)] */ # 987: 2d0d + movi a3, 0 /* 0x00000000 */ # 989: 0c03 + call0 .Lfunc012 # 98b: 05bcff + j .Lbr070 # 98e: c6bbff +.Lbr083: bnez a13, .Lbr084 # 991: cc8d + l32i a3, sp, 56 /* [(local10)] */ # 993: 38e1 + movi a2, 300 /* 0x0000012c */ # 995: 22a12c + add a2, a12, a2 /* arg1+0x12c */ # 998: 2a2c + call0 .Lfunc011 # 99a: c5b6ff +.Lbr084: mov a3, a12 /* arg1 */ # 99d: 3d0c + addi a0, a12, 48 /* arg1+0x30 */ # 99f: 02cc30 +.Lbr085: addmi a5, a3, 256 # 9a2: 52d301 + l8ui a4, a5, 7 # 9a5: 420507 + l8ui a6, a5, 6 # 9a8: 620506 + slli a4, a4, 8 # 9ab: 804411 + or a4, a4, a6 # 9ae: 604420 + slli a4, a4, 8 # 9b1: 804411 + l8ui a6, a5, 5 # 9b4: 620505 + l8ui a5, a5, 4 # 9b7: 520504 + or a4, a4, a6 # 9ba: 604420 + slli a4, a4, 8 # 9bd: 804411 + or a4, a4, a5 # 9c0: 504420 + beqz a4, .Lbr048 # 9c3: 16e4ca + addi a3, a3, 12 # 9c6: cb33 + bne a3, a0, .Lbr085 # 9c8: 0793d6 + j .Lbr048 # 9cb: 8629ff + + .literal_position # 9d0: 00000000 + # 9d4: 00000000 + # 9d8: 00000000 + # 9dc: 00000000 + # 9e0: 00000000 + +# Function @ .irom0.text+0x9e4 +# Local variables/stack: +# (local0): word[20] @ -0x70 +# (local1): word @ -0x20 +# (local2): word @ -0x1c +# (local3): word @ -0x18 +# (local4): word @ -0x14 +# (local5): word @ -0x10 +# (local6): word @ -0xc +# (local7): word[2] @ -0x8 + .balign 4 +.Lfunc014: addi sp, sp, -112 /* (local0) */ # 9e4: 12c190 + s32i a5, sp, 88 /* arg3 -> [(local3)] */ # 9e7: 526116 + s32i a6, sp, 92 /* arg4 -> [(local4)] */ # 9ea: 626117 + s32i a7, sp, 96 /* arg5 -> [(local5)] */ # 9ed: 726118 + s32i a0, sp, 104 /* a0 -> [(local7)] */ # 9f0: 02611a + s32i a3, sp, 84 /* arg1 -> [(local2)] */ # 9f3: 326115 + s32i a2, sp, 80 /* arg0 -> [(local1)] */ # 9f6: 226114 + mov a3, a4 /* arg2 */ # 9f9: 3d04 + addi a2, sp, 16 /* (FP)-0x60 */ # 9fb: 22c110 + movi a4, 6 /* 0x00000006 */ # 9fe: 0c64 + call0 memcpy # a00: 01f4ffc0 + # a04: 0000 + l32i a3, sp, 88 /* [(local3)] */ # a06: 322116 + addi a2, sp, 22 /* (FP)-0x5a */ # a09: 22c116 + movi a4, 32 /* 0x00000020 */ # a0c: 2c04 + call0 memcpy # a0e: 01f1ffc0 + # a12: 0000 + addi a2, sp, 54 /* (FP)-0x3a */ # a14: 22c136 + call0 wpa_get_ntp_timestamp # a17: 01f0ffc0 + # a1b: 0000 + addi a2, sp, 62 /* (FP)-0x32 */ # a1d: 22c13e + movi a3, 16 /* 0x00000010 */ # a20: 1c03 + call0 os_get_random # a22: 01eeffc0 + # a26: 0000 + l32i a4, sp, 84 /* [(local2)] */ # a28: 422115 + l32i a7, sp, 92 /* [(local4)] */ # a2b: 722117 + movi a3, 32 /* 0x00000020 */ # a2e: 2c03 + addi a5, sp, 16 /* (FP)-0x60 */ # a30: 52c110 + movi a6, 62 /* 0x0000003e */ # a33: 3ce6 + s32i a2, sp, 100 /* a2 -> [(local6)] */ # a35: 226119 + l32i a0, sp, 96 /* [(local5)] */ # a38: 022118 + l32i a2, sp, 80 /* [(local1)] */ # a3b: 222114 + s32i a0, sp, 0 /* [(local5)] -> [(local0)] */ # a3e: 0901 + call0 sha1_prf # a40: 01e8ffc0 + # a44: 0000 + movi a4, -1 /* 0xffffffff */ # a46: 7cf4 + l32i a5, sp, 100 /* [(local6)] */ # a48: 522119 + l32i a3, sp, 104 /* [(local7)] */ # a4b: 32211a + movi a0, 0 /* 0x00000000 */ # a4e: 0c00 + addi sp, sp, 112 /* (top of frame) */ # a50: 12c170 + movltz a0, a4, a5 # a53: 5004a3 + movltz a0, a4, a2 # a56: 2004a3 + mov a2, a0 # a59: 2d00 + mov a0, a3 /* [(local7)] */ # a5b: 0d03 + ret # a5d: 0df0 + + .balign 4 +# Function @ .irom0.text+0xa60 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 +.Lfunc015: mov a2, a3 /* arg1 */ # a60: 2d03 + addi sp, sp, -16 /* (local0) */ # a62: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # a65: 0901 + movi a3, 0 /* 0x00000000 */ # a67: 0c03 + movi a0, 1 /* 0x00000001 */ # a69: 0c10 + s32i a3, a2, 0x198 /* 0x00000000 -> [arg1+0x198] */ # a6b: 326266 + s32i a0, a2, 52 /* 0x00000001 -> [arg1+0x34] */ # a6e: 09d2 + call0 .Lfunc048 # a70: 454401 + l32i a0, sp, 0 /* [(local0)] */ # a73: 0801 + addi sp, sp, 16 /* (top of frame) */ # a75: 12c110 + ret # a78: 0df0 + + .literal_position # a7c: 00100000 + # a80: 00000000 + # a84: 888effff + # a88: 8effff00 + # a8c: 00000000 + # a90: 00000000 + # a94: 00000000 + # a98: 00000000 + # a9c: 00000000 + # aa0: 00000000 + # aa4: 00000000 + # aa8: 00000000 + # aac: 00000000 + # ab0: 00000000 + # ab4: 00000000 + # ab8: 00000000 + # abc: 00000000 + # ac0: 00000000 + # ac4: 00000000 + # ac8: 00000000 + # acc: 00000000 + # ad0: 00000000 + # ad4: 00000000 + # ad8: 00000000 + # adc: 00000000 + # ae0: 00000000 + # ae4: 00000000 + # ae8: 00000000 + # aec: 00000000 + # af0: 00000000 + # af4: 00000000 + # af8: 00000000 + # afc: 00000000 + # b00: 00000000 + # b04: 00000000 + +# Function @ .irom0.text+0xb08 +# Local variables/stack: +# (local0): word @ -0x60 +# (local1): word @ -0x5c +# (local2): word @ -0x58 +# (local3): word @ -0x54 +# (local4): word @ -0x50 +# (local5): word @ -0x4c +# (local6): word @ -0x48 +# (local7): word @ -0x44 +# (local8): word @ -0x40 +# (local9): word @ -0x3c +# (local10): word @ -0x38 +# (local11): word @ -0x34 +# (local12): word @ -0x30 +# (local13): word @ -0x2c +# (local14): word @ -0x28 +# (local15): word @ -0x24 +# (local16): word @ -0x20 +# (local17): word @ -0x1c +# (local18): word @ -0x18 +# (local19): word @ -0x14 +# (local20): word @ -0x10 +# (local21): word @ -0xc +# (local22): word[2] @ -0x8 + .balign 4 + .global __wpa_send_eapol + .type __wpa_send_eapol, @function +__wpa_send_eapol: + addi sp, sp, -128 /* (FP)-0x80 */ # b08: 12c180 + s32i a15, sp, 76 /* a15 -> [(local11)] */ # b0b: f26113 + s32i a0, sp, 60 /* a0 -> [(local7)] */ # b0e: 09f1 + s32i a2, sp, 120 /* arg0 -> [(local22)] */ # b10: 22611e + s32i a5, sp, 116 /* arg3 -> [(local21)] */ # b13: 52611d + s32i a6, sp, 112 /* arg4 -> [(local20)] */ # b16: 62611c + s32i a7, sp, 32 /* arg5 -> [(local0)] */ # b19: 7981 + s32i a12, sp, 64 /* a12 -> [(local8)] */ # b1b: c26110 + s32i a13, sp, 68 /* a13 -> [(local9)] */ # b1e: d26111 + s32i a14, sp, 72 /* a14 -> [(local10)] */ # b21: e26112 + mov a13, a3 /* arg1 */ # b24: dd03 + l32i a3, sp, 140 /* [(FP)+0xc] */ # b26: 322123 + mov a14, a4 /* arg2 */ # b29: ed04 + beqz a3, .Lbr109 # b2b: 169335 + mov a12, a3 /* [(FP)+0xc] */ # b2e: cd03 + j .Lbr087 # b30: 460000 +.Lbr086: movi a12, 3 /* 0x00000003 */ # b33: 0c3c +.Lbr087: addi a4, a12, -2 # b35: 42ccfe + movi a0, 8 /* 0x00000008 */ # b38: 0c80 + l32i a15, sp, 128 /* [(local23)] */ # b3a: f22120 + s32i a15, sp, 96 /* [(local23)] -> [(local16)] */ # b3d: f26118 + and a5, a14, a0 # b40: 005e10 + s32i a5, sp, 52 /* a5 -> [(local5)] */ # b43: 59d1 + beqz a4, .Lbr108 # b45: 16a431 + addi a2, a12, -3 # b48: 22ccfd + beqz a2, .Lbr108 # b4b: 164231 +.Lbr088: movi a3, 0 /* 0x00000000 */ # b4e: 0c03 + s32i a3, sp, 48 /* 0x00000000 -> [(local4)] */ # b50: 39c1 +.Lbr089: s32i a12, sp, 44 /* a12 -> [(local3)] */ # b52: c9b1 + addi a2, a15, 99 # b54: 22cf63 + s32i a2, sp, 56 /* a2 -> [(local6)] */ # b57: 29e1 + call0 zalloc # b59: 01ccffc0 + # b5d: 0000 + l32i a9, sp, 120 /* [(local22)] */ # b5f: 92211e + mov a12, a2 # b62: cd02 + beqz a2, .Lbr107 # b64: 16622e + movi a6, 2 /* 0x00000002 */ # b67: 0c26 + movi a5, 254 /* 0x000000fe */ # b69: 52a0fe + movi a8, 3 /* 0x00000003 */ # b6c: 0c38 + l32i a4, sp, 136 /* [(FP)+0x8] */ # b6e: 422122 + addi a11, a15, 95 # b71: b2cf5f + extui a10, a11, 8, 8 # b74: b0a874 + s32i a4, sp, 84 /* [(FP)+0x8] -> [(local13)] */ # b77: 426115 + extui a11, a11, 0, 8 # b7a: b0b074 + slli a11, a11, 8 # b7d: 80bb11 + or a10, a10, a11 # b80: b0aa20 + l32i a11, a9, 44 /* [[(local22)]+0x2c] */ # b83: b8b9 + s8i a10, a2, 2 # b85: a24202 + s8i a11, a2, 0 # b88: b24200 + s8i a8, a2, 1 # b8b: 824201 + l32i a0, a13, 0x18c /* [arg1+0x18c] */ # b8e: 022d63 + srli a10, a10, 8 # b91: a0a841 + addi a7, a0, -2 /* [arg1+0x18c]-0x2 */ # b94: 72c0fe + moveqz a5, a6, a7 # b97: 705683 + s8i a5, a2, 4 # b9a: 524204 + l32i a5, sp, 44 /* [(local3)] */ # b9d: 58b1 + s8i a10, a2, 3 # b9f: a24203 + or a14, a14, a5 # ba2: 50ee20 + beqz a4, .Lbr090 # ba5: 8c74 + bnei a0, 2, .Lbr091 # ba7: 662008 + movi a2, 0x00001000 # baa: 21b4ff + or a14, a14, a2 # bad: 20ee20 +.Lbr090: beqi a0, 2, .Lbr092 # bb0: 262008 +.Lbr091: l32i a3, sp, 132 /* [(FP)+0x4] */ # bb3: 322121 + slli a3, a3, 4 # bb6: c03311 + or a14, a14, a3 # bb9: 30ee20 +.Lbr092: s8i a14, a12, 6 # bbc: e24c06 + srli a5, a14, 8 # bbf: e05841 + l32i a4, sp, 52 /* [(local5)] */ # bc2: 48d1 + s8i a5, a12, 5 # bc4: 524c05 + bnez a4, .Lbr093 # bc7: cc64 + l32i a6, a9, 16 /* [[(local22)]+0x10] */ # bc9: 6849 + s32i a6, sp, 92 /* [[(local22)]+0x10] -> [(local15)] */ # bcb: 626117 + j .Lbr094 # bce: 460100 +.Lbr093: l32i a7, a13, 0x190 /* [arg1+0x190] */ # bd1: 722d64 + s32i a7, sp, 92 /* [arg1+0x190] -> [(local15)] */ # bd4: 726117 +.Lbr094: l32i a2, sp, 92 /* [(local15)] */ # bd7: 222117 + call0 wpa_cipher_key_len # bda: 01adffc0 + # bde: 0000 + srli a8, a2, 8 # be0: 208841 + s8i a8, a12, 7 # be3: 824c07 + l32i a2, sp, 92 /* [(local15)] */ # be6: 222117 + call0 wpa_cipher_key_len # be9: 01aaffc0 + # bed: 0000 + s8i a2, a12, 8 # bef: 224c08 + s32i a15, sp, 80 /* a15 -> [(local12)] */ # bf2: f26114 + bbci a14, 13, .Lbr095 # bf5: d76e0a + s32i a15, sp, 80 /* a15 -> [(local12)] */ # bf8: f26114 + movi a9, 0 /* 0x00000000 */ # bfb: 0c09 + s8i a9, a12, 7 # bfd: 924c07 + s8i a9, a12, 8 # c00: 924c08 +.Lbr095: movi a0, 252 /* 0x000000fc */ # c03: 02a0fc + movi a2, 288 /* 0x00000120 */ # c06: 22a120 + movi a15, 276 /* 0x00000114 */ # c09: f2a114 + addi a3, a13, 36 /* arg1+0x24 */ # c0c: 32cd24 + s32i a3, sp, 104 /* arg1+0x24 -> [(local18)] */ # c0f: 32611a + add a15, a13, a15 /* arg1+0x114 */ # c12: fafd + add a2, a13, a2 /* arg1+0x120 */ # c14: 2a2d + add a0, a13, a0 /* arg1+0xfc */ # c16: 0a0d + s32i a0, sp, 100 /* arg1+0xfc -> [(local17)] */ # c18: 026119 + s32i a2, sp, 108 /* arg1+0x120 -> [(local19)] */ # c1b: 22611b +.Lbr096: l32i a2, sp, 108 /* [(local19)] */ # c1e: 22211b + l32i a5, sp, 104 /* [(local18)] */ # c21: 52211a + mov a3, a15 # c24: 3d0f + l8ui a4, a5, 251 /* [[(local18)]+0xfb] */ # c26: 4205fb + l8ui a6, a5, 250 /* [[(local18)]+0xfa] */ # c29: 6205fa + slli a4, a4, 8 # c2c: 804411 + or a4, a4, a6 # c2f: 604420 + l8ui a6, a5, 249 /* [[(local18)]+0xf9] */ # c32: 6205f9 + slli a4, a4, 8 # c35: 804411 + or a4, a4, a6 # c38: 604420 + l8ui a6, a5, 248 /* [[(local18)]+0xf8] */ # c3b: 6205f8 + slli a4, a4, 8 # c3e: 804411 + addmi a5, a5, 256 /* [(local18)]+0x100 */ # c41: 52d501 + or a4, a4, a6 # c44: 604420 + s8i a4, a5, 4 /* a4 -> [[(local18)]+0x104] */ # c47: 424504 + srli a4, a4, 8 # c4a: 404841 + s8i a4, a5, 5 /* a4 -> [[(local18)]+0x105] */ # c4d: 424505 + srli a4, a4, 8 # c50: 404841 + s8i a4, a5, 6 /* a4 -> [[(local18)]+0x106] */ # c53: 424506 + srli a4, a4, 8 # c56: 404841 + s8i a4, a5, 7 /* a4 -> [[(local18)]+0x107] */ # c59: 424507 + movi a4, 8 /* 0x00000008 */ # c5c: 0c84 + call0 memcpy # c5e: 018effc0 + # c62: 0000 + addi a15, a15, -12 # c64: f2cff4 + l32i a6, sp, 100 /* [(local17)] */ # c67: 622119 + l32i a5, sp, 108 /* [(local19)] */ # c6a: 52211b + l32i a7, sp, 104 /* [(local18)] */ # c6d: 72211a + addi a5, a5, -12 /* [(local19)]-0xc */ # c70: 52c5f4 + addi a7, a7, -12 /* [(local18)]-0xc */ # c73: 72c7f4 + s32i a7, sp, 104 /* [(local18)]-0xc -> [(local18)] */ # c76: 72611a + s32i a5, sp, 108 /* [(local19)]-0xc -> [(local19)] */ # c79: 52611b + bne a5, a6, .Lbr096 # c7c: 67959e + mov a2, a6 /* [(local17)] */ # c7f: 2d06 + movi a3, 8 /* 0x00000008 */ # c81: 0c83 + call0 inc_byte_array # c83: 0186ffc0 + # c87: 0000 + l32i a15, sp, 116 /* [(local21)] */ # c89: f2211d + l32i a3, sp, 100 /* [(local17)] */ # c8c: 322119 + addi a2, a12, 9 # c8f: 9b2c + movi a4, 8 /* 0x00000008 */ # c91: 0c84 + call0 memcpy # c93: 0183ffc0 + # c97: 0000 + movi a10, 1 /* 0x00000001 */ # c99: 0c1a + addmi a9, a13, 256 /* arg1+0x100 */ # c9b: 92dd01 + movi a8, 0 /* 0x00000000 */ # c9e: 0c08 + s8i a8, a9, 5 /* 0x00 -> [arg1+0x105] */ # ca0: 824905 + s8i a10, a9, 4 /* 0x01 -> [arg1+0x104] */ # ca3: a24904 + movi a8, 0 /* 0x00000000 */ # ca6: 0c08 + s8i a8, a9, 6 /* 0x00 -> [arg1+0x106] */ # ca8: 824906 + movi a8, 0 /* 0x00000000 */ # cab: 0c08 + s8i a8, a9, 7 /* 0x00 -> [arg1+0x107] */ # cad: 824907 + l32i a9, sp, 112 /* [(local20)] */ # cb0: 92211c + beqz a9, .Lbr097 # cb3: 8cb9 + mov a3, a9 /* [(local20)] */ # cb5: 3d09 + addi a2, a12, 17 # cb7: 22cc11 + movi a4, 32 /* 0x00000020 */ # cba: 2c04 + call0 memcpy # cbc: 017affc0 + # cc0: 0000 +.Lbr097: beqz a15, .Lbr098 # cc2: 8cbf + mov a3, a15 /* [(local21)] */ # cc4: 3d0f + addi a2, a12, 65 # cc6: 22cc41 + movi a4, 8 /* 0x00000008 */ # cc9: 0c84 + call0 memcpy # ccb: 0177ffc0 + # ccf: 0000 +.Lbr098: l32i a11, sp, 32 /* [(local0)] */ # cd1: b881 + l32i a3, sp, 32 /* [(local0)] */ # cd3: 3881 + beqz a11, .Lbr099 # cd5: ac0b + l32i a15, sp, 84 /* [(local13)] */ # cd7: f22115 + bnez a15, .Lbr100 # cda: ec1f + addi a2, a12, 99 # cdc: 22cc63 + mov a3, a11 /* [(local0)] */ # cdf: 3d0b + l32i a4, sp, 96 /* [(local16)] */ # ce1: 422118 + call0 memcpy # ce4: 0172ffc0 + # ce8: 0000 + l32i a0, sp, 96 /* [(local16)] */ # cea: 022118 + s8i a0, a12, 98 # ced: 024c62 + srli a0, a0, 8 # cf0: 000841 + s8i a0, a12, 97 # cf3: 024c61 + j .Lbr104 # cf6: 862f00 +.Lbr099: l32i a2, sp, 84 /* [(local13)] */ # cf9: 222115 + beqz a2, .Lbr104 # cfc: 16820b +.Lbr100: beqz a3, .Lbr104 # cff: 16530b + l32i a2, sp, 80 /* [(local12)] */ # d02: 222114 + call0 zalloc # d05: 016affc0 + # d09: 0000 + mov a15, a2 # d0b: fd02 + bnez a2, .Lbr101 # d0d: cc92 + mov a2, a12 # d0f: 2d0c + call0 free # d11: 0168ffc0 + # d15: 0000 + j .Lbr107 # d17: c64c00 +.Lbr101: l32i a3, sp, 32 /* [(local0)] */ # d1a: 3881 + l32i a4, sp, 96 /* [(local16)] */ # d1c: 422118 + call0 memcpy # d1f: 0166ffc0 + # d23: 0000 + l32i a4, sp, 48 /* [(local4)] */ # d25: 48c1 + beqz a4, .Lbr102 # d27: 8c94 + l32i a6, sp, 96 /* [(local16)] */ # d29: 622118 + movi a5, -35 /* 0xffffffdd */ # d2c: 52afdd + add a6, a15, a6 # d2f: 6a6f + s8i a5, a6, 0 # d31: 524600 +.Lbr102: l32i a7, sp, 44 /* [(local3)] */ # d34: 78b1 + movi a0, 188 /* 0x000000bc */ # d36: 02a0bc + addi a7, a7, -2 /* [(local3)]-0x2 */ # d39: 72c7fe + beqz a7, .Lbr110 # d3c: 160716 + l32i a8, sp, 44 /* [(local3)] */ # d3f: 88b1 + addi a8, a8, -3 /* [(local3)]-0x3 */ # d41: 82c8fd + beqz a8, .Lbr110 # d44: 168815 + movi a4, 16 /* 0x00000010 */ # d47: 1c04 + l32i a3, a13, 4 /* [arg1+0x4] */ # d49: 381d + addi a2, a12, 49 # d4b: 22cc31 + s32i a2, sp, 36 /* a2 -> [(local1)] */ # d4e: 2991 + addi a3, a3, 52 /* [arg1+0x4]+0x34 */ # d50: 32c334 + call0 memcpy # d53: 015affc0 + # d57: 0000 + l32i a2, a13, 4 /* [arg1+0x4] */ # d59: 281d + movi a3, 32 /* 0x00000020 */ # d5b: 2c03 + addi a2, a2, 36 /* [arg1+0x4]+0x24 */ # d5d: 22c224 + call0 inc_byte_array # d60: 0158ffc0 + # d64: 0000 + l32i a3, sp, 36 /* [(local1)] */ # d66: 3891 + mov a2, sp /* (FP)-0x80 */ # d68: 2d01 + movi a4, 16 /* 0x00000010 */ # d6a: 1c04 + call0 memcpy # d6c: 0156ffc0 + # d70: 0000 + addi a2, sp, 16 /* (FP)-0x70 */ # d72: 22c110 + movi a4, 16 /* 0x00000010 */ # d75: 1c04 + movi a3, 188 /* 0x000000bc */ # d77: 32a0bc + add a3, a13, a3 /* arg1+0xbc */ # d7a: 3a3d + call0 memcpy # d7c: 0153ffc0 + # d80: 0000 + mov a3, a15 # d82: 3d0f + l32i a4, sp, 80 /* [(local12)] */ # d84: 422114 + addi a2, a12, 99 # d87: 22cc63 + s32i a2, sp, 40 /* a2 -> [(local2)] */ # d8a: 29a1 + call0 memcpy # d8c: 0150ffc0 + # d90: 0000 + mov a2, sp /* (FP)-0x80 */ # d92: 2d01 + movi a3, 32 /* 0x00000020 */ # d94: 2c03 + movi a4, 256 /* 0x00000100 */ # d96: 42a100 + l32i a5, sp, 40 /* [(local2)] */ # d99: 58a1 + l32i a6, sp, 80 /* [(local12)] */ # d9b: 622114 + call0 rc4_skip # d9e: 014cffc0 + # da2: 0000 +.Lbr103: mov a2, a15 # da4: 2d0f + l32i a4, sp, 80 /* [(local12)] */ # da6: 422114 + s8i a4, a12, 98 # da9: 424c62 + srli a4, a4, 8 # dac: 404841 + s8i a4, a12, 97 # daf: 424c61 + call0 free # db2: 0148ffc0 + # db6: 0000 +.Lbr104: bbci a14, 8, .Lbr106 # db8: 876e23 + l32i a5, a13, 236 /* [arg1+0xec] */ # dbb: 522d3b + bnez a5, .Lbr105 # dbe: cc95 + mov a2, a12 # dc0: 2d0c + call0 free # dc2: 0145ffc0 + # dc6: 0000 + j .Lbr107 # dc8: 862000 +.Lbr105: l32i a3, sp, 44 /* [(local3)] */ # dcb: 38b1 + mov a4, a12 # dcd: 4d0c + l32i a5, sp, 56 /* [(local6)] */ # dcf: 58e1 + addi a6, a12, 81 # dd1: 62cc51 + movi a2, 172 /* 0x000000ac */ # dd4: 22a0ac + add a2, a13, a2 /* arg1+0xac */ # dd7: 2a2d + call0 wpa_eapol_key_mic # dd9: 0140ffc0 + # ddd: 0000 +.Lbr106: movi a2, 3 /* 0x00000003 */ # ddf: 0c32 + movi a5, g_ic # de1: 5127ff + movi a3, 256 /* 0x00000100 */ # de4: 32a100 + l32i a5, a5, 20 /* [g_ic+0x14] */ # de7: 5855 + movi a4, 0 /* 0x00000000 */ # de9: 0c04 + l32i a5, a5, 0 /* [[g_ic+0x14]] */ # deb: 5805 + s32i a5, sp, 88 /* [[g_ic+0x14]] -> [(local14)] */ # ded: 526116 + call0 pbuf_alloc # df0: 013cffc0 + # df4: 0000 + addi a3, a13, 8 /* arg1+0x8 */ # df6: 8b3d + mov a15, a2 # df8: fd02 + l32i a14, a2, 4 # dfa: e812 + movi a4, 6 /* 0x00000006 */ # dfc: 0c64 + mov a2, a14 # dfe: 2d0e + call0 memcpy # e00: 0139ffc0 + # e04: 0000 + l32i a13, sp, 56 /* [(local6)] */ # e06: d8e1 + addi a2, a14, 6 # e08: 6b2e + l32i a3, sp, 88 /* [(local14)] */ # e0a: 322116 + movi a4, 6 /* 0x00000006 */ # e0d: 0c64 + addi a3, a3, 41 /* [(local14)]+0x29 */ # e0f: 32c329 + call0 memcpy # e12: 0135ffc0 + # e16: 0000 + l32i a2, a15, 4 # e18: 281f + movi a4, 0xffff8e88 # e1a: 411aff + movi a3, 0x00ffff8e # e1d: 311aff + s8i a4, a14, 12 # e20: 424e0c + mov a4, a13 /* [(local6)] */ # e23: 4d0d + s8i a3, a14, 13 # e25: 324e0d + addi a2, a2, 14 # e28: eb22 + mov a3, a12 # e2a: 3d0c + call0 memcpy # e2c: 0130ffc0 + # e30: 0000 + mov a3, a15 # e32: 3d0f + l32i a5, sp, 80 /* [(local12)] */ # e34: 522114 + l32i a2, sp, 88 /* [(local14)] */ # e37: 222116 + addi a5, a5, 113 /* [(local12)]+0x71 */ # e3a: 52c571 + s16i a5, a15, 10 # e3d: 525f05 + call0 ieee80211_output_pbuf # e40: 012cffc0 + # e44: 0000 + mov a2, a12 # e46: 2d0c + call0 free # e48: 012bffc0 + # e4c: 0000 +.Lbr107: l32i a12, sp, 64 /* [(local8)] */ # e4e: c22110 + l32i a13, sp, 68 /* [(local9)] */ # e51: d22111 + l32i a14, sp, 72 /* [(local10)] */ # e54: e22112 + l32i a15, sp, 76 /* [(local11)] */ # e57: f22113 + movi a2, 128 /* 0x00000080 */ # e5a: 22a080 + l32i a0, sp, 60 /* [(local7)] */ # e5d: 08f1 + add sp, sp, a2 /* (local23) */ # e5f: 2a11 + ret /* 0x00000080 */ # e61: 0df0 +.Lbr108: l32i a6, sp, 136 /* [(FP)+0x8] */ # e63: 622122 + beqz a6, .Lbr088 # e66: 1646ce + l32i a2, sp, 96 /* [(local16)] */ # e69: 222118 + movi a3, 8 /* 0x00000008 */ # e6c: 0c83 + call0 __modsi3 # e6e: 0122ffc0 + # e72: 0000 + l32i a15, sp, 96 /* [(local16)] */ # e74: f22118 + movi a0, 8 /* 0x00000008 */ # e77: 0c80 + sub a0, a0, a2 # e79: 2000c0 + movnez a2, a0, a2 # e7c: 202093 + s32i a2, sp, 48 /* a2 -> [(local4)] */ # e7f: 29c1 + add a15, a15, a2 # e81: 2aff + addi a15, a15, 8 # e83: 8bff + j .Lbr089 # e85: 4632ff +.Lbr109: mov a2, a13 /* arg1 */ # e88: 2d0d + call0 .Lfunc004 # e8a: c52eff + bnez a2, .Lbr086 # e8d: 5622ca + movi a2, 2 /* 0x00000002 */ # e90: 0c22 + l32i a3, a13, 0x190 /* [arg1+0x190] */ # e92: 322d64 + movi a12, 1 /* 0x00000001 */ # e95: 0c1c + addi a3, a3, -2 /* [arg1+0x190]-0x2 */ # e97: 32c3fe + movnez a12, a2, a3 # e9a: 30c293 + j .Lbr087 # e9d: 0625ff +.Lbr110: addi a5, a12, 99 # ea0: 52cc63 + l32i a3, sp, 80 /* [(local12)] */ # ea3: 322114 + add a2, a13, a0 /* arg1+0xbc */ # ea6: 0a2d + addi a4, a3, -8 /* [(local12)]-0x8 */ # ea8: 42c3f8 + addi a3, a3, -1 /* [(local12)]-0x1 */ # eab: 0b33 + movgez a3, a4, a4 # ead: 4034b3 + srai a3, a3, 3 # eb0: 303321 + mov a4, a15 # eb3: 4d0f + call0 aes_wrap # eb5: 0111ffc0 + # eb9: 0000 + beqz a2, .Lbr103 # ebb: 1652ee + mov a2, a12 # ebe: 2d0c + call0 free # ec0: 0110ffc0 + # ec4: 0000 + mov a2, a15 # ec6: 2d0f + call0 free # ec8: 010fffc0 + # ecc: 0000 + j .Lbr107 # ece: 06dfff + + .literal_position # ed4: 600a0000 + # ed8: 00000000 + # edc: 00000000 + # ee0: 00000000 + +# Function @ .irom0.text+0xee4 +# Local variables/stack: +# (local0): word @ -0x30 +# (local1): word @ -0x2c +# (local2): word @ -0x28 +# (local3): word @ -0x24 +# (local4): word @ -0x20 +# (local5): word @ -0x1c +# (local6): word @ -0x18 +# (local7): word @ -0x14 +# (local8): word[4] @ -0x10 + .balign 4 +.Lfunc016: addi sp, sp, -48 /* (local0) */ # ee4: 12c1d0 + s32i a15, sp, 32 /* a15 -> [(local8)] */ # ee7: f981 + s32i a0, sp, 16 /* a0 -> [(local4)] */ # ee9: 0941 + s32i a12, sp, 20 /* a12 -> [(local5)] */ # eeb: c951 + s32i a13, sp, 24 /* a13 -> [(local6)] */ # eed: d961 + s32i a14, sp, 28 /* a14 -> [(local7)] */ # eef: e971 + mov a13, a4 /* arg2 */ # ef1: dd04 + mov a14, a2 /* arg0 */ # ef3: ed02 + mov a12, a3 /* arg1 */ # ef5: cd03 + beqz a3, .Lbr115 # ef7: 16e307 + l32i a3, sp, 52 /* [(FP)+0x4] */ # efa: 38d1 + l32i a2, sp, 56 /* [(FP)+0x8] */ # efc: 28e1 + l32i a4, sp, 48 /* [(local9)] */ # efe: 48c1 + movi a0, 0 /* 0x00000000 */ # f00: 0c00 + s32i a0, sp, 12 /* 0x00000000 -> [(local3)] */ # f02: 0931 + s32i a4, sp, 0 /* [(local9)] -> [(local0)] */ # f04: 4901 + s32i a2, sp, 8 /* [(FP)+0x8] -> [(local2)] */ # f06: 2921 + s32i a3, sp, 4 /* [(FP)+0x4] -> [(local1)] */ # f08: 3911 + mov a2, a14 /* arg0 */ # f0a: 2d0e + mov a3, a12 /* arg1 */ # f0c: 3d0c + mov a4, a13 /* arg2 */ # f0e: 4d0d + call0 __wpa_send_eapol # f10: 050000 + l32i a5, a12, 44 /* [arg1+0x2c] */ # f13: 58bc + l32i a2, a12, 48 /* [arg1+0x30] */ # f15: 28cc + movi a6, 1 /* 0x00000001 */ # f17: 0c16 + movi a0, 8 /* 0x00000008 */ # f19: 0c80 + and a0, a13, a0 # f1b: 000d10 + mov a4, a0 # f1e: 4d00 + movnez a4, a6, a0 # f20: 004693 + movnez a2, a5, a4 # f23: 402593 + bnei a2, 1, .Lbr111 # f26: 661207 + l32i a3, a14, 68 /* [arg0+0x44] */ # f29: 322e11 + movi a5, 100 /* 0x00000064 */ # f2c: 52a064 + bnez a3, .Lbr112 # f2f: cc43 +.Lbr111: movi a15, 1000 /* 0x000003e8 */ # f31: f2a3e8 + j .Lbr113 # f34: 460100 +.Lbr112: movi a15, 500 /* 0x000001f4 */ # f37: f2a1f4 + movnez a15, a5, a4 # f3a: 40f593 +.Lbr113: beqz a0, .Lbr114 # f3d: 8c90 + bnei a2, 1, .Lbr114 # f3f: 661207 + bbsi a13, 8, .Lbr114 # f42: 87ed04 + movi a6, 1 /* 0x00000001 */ # f45: 0c16 + s32i a6, a12, 0x198 /* 0x00000001 -> [arg1+0x198] */ # f47: 626c66 +.Lbr114: mov a2, a15 # f4a: 2d0f + movi a3, 1000 /* 0x000003e8 */ # f4c: 32a3e8 + call0 __divsi3 # f4f: 01e2ffc0 + # f53: 0000 + mov a13, a2 # f55: dd02 + movi a3, 1000 /* 0x000003e8 */ # f57: 32a3e8 + mov a2, a15 # f5a: 2d0f + call0 __modsi3 # f5c: 01e0ffc0 + # f60: 0000 + mov a6, a12 /* arg1 */ # f62: 6d0c + mov a5, a14 /* arg0 */ # f64: 5d0e + mov a3, a2 # f66: 3d02 + movi a4, 1000 /* 0x000003e8 */ # f68: 42a3e8 + mov a2, a13 # f6b: 2d0d + mull a3, a3, a4 # f6d: 403382 + movi a4, .Lfunc015 # f70: 41d9ff + call0 eloop_register_timeout # f73: 01dbffc0 + # f77: 0000 +.Lbr115: l32i a12, sp, 20 /* [(local5)] */ # f79: c851 + l32i a13, sp, 24 /* [(local6)] */ # f7b: d861 + l32i a14, sp, 28 /* [(local7)] */ # f7d: e871 + l32i a15, sp, 32 /* [(local8)] */ # f7f: f881 + l32i a0, sp, 16 /* [(local4)] */ # f81: 0841 + addi sp, sp, 48 /* (local9) */ # f83: 12c130 + ret # f86: 0df0 + + .literal_position # f88: 00000000 + # f8c: 00000000 + # f90: 00000000 + # f94: 00000000 + # f98: 00000000 + +# Function @ .irom0.text+0xf9c +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word @ -0x10 +# (local5): word[3] @ -0xc + .balign 4 +.Lfunc017: addi sp, sp, -48 /* (FP)-0x30 */ # f9c: 12c1d0 + s32i a12, sp, 28 /* a12 -> [(local3)] */ # f9f: c971 + s32i a2, sp, 20 /* arg0 -> [(local1)] */ # fa1: 2951 + s32i a0, sp, 24 /* a0 -> [(local2)] */ # fa3: 0961 + s32i a14, sp, 36 /* a14 -> [(local5)] */ # fa5: e991 + s32i a13, sp, 32 /* a13 -> [(local4)] */ # fa7: d981 + mov a14, a3 /* arg1 */ # fa9: ed03 + mov a13, a4 /* arg2 */ # fab: dd04 + movi a0, 98 /* 0x00000062 */ # fad: 02a062 + bltu a0, a4, .Lbr119 # fb0: 473021 + movi a2, -1 /* 0xffffffff */ # fb3: 7cf2 + j .Lbr118 # fb5: c60300 +.Lbr116: movi a13, -1 /* 0xffffffff */ # fb8: 7cfd +.Lbr117: mov a2, a12 /* arg1+0x51 */ # fba: 2d0c + mov a3, sp /* (FP)-0x30 */ # fbc: 3d01 + movi a4, 16 /* 0x00000010 */ # fbe: 1c04 + call0 memcpy # fc0: 01f2ffc0 + # fc4: 0000 + mov a2, a13 # fc6: 2d0d +.Lbr118: l32i a12, sp, 28 /* [(local3)] */ # fc8: c871 + l32i a13, sp, 32 /* [(local4)] */ # fca: d881 + l32i a14, sp, 36 /* [(local5)] */ # fcc: e891 + l32i a0, sp, 24 /* [(local2)] */ # fce: 0861 + addi sp, sp, 48 /* (top of frame) */ # fd0: 12c130 + ret # fd3: 0df0 +.Lbr119: movi a4, 16 /* 0x00000010 */ # fd5: 1c04 + l8ui a2, a3, 6 /* [arg1+0x6] */ # fd7: 220306 + addi a12, a3, 81 /* arg1+0x51 */ # fda: c2c351 + s32i a2, sp, 16 /* [arg1+0x6] -> [(local0)] */ # fdd: 2941 + mov a2, sp /* (FP)-0x30 */ # fdf: 2d01 + mov a3, a12 /* arg1+0x51 */ # fe1: 3d0c + call0 memcpy # fe3: 01eaffc0 + # fe7: 0000 + mov a2, a12 /* arg1+0x51 */ # fe9: 2d0c + movi a3, 0 /* 0x00000000 */ # feb: 0c03 + movi a4, 16 /* 0x00000010 */ # fed: 1c04 + call0 memset # fef: 01e8ffc0 + # ff3: 0000 + mov a5, a13 /* arg2 */ # ff5: 5d0d + mov a4, a14 /* arg1 */ # ff7: 4d0e + l32i a2, sp, 20 /* [(local1)] */ # ff9: 2851 + l32i a3, sp, 16 /* [(local0)] */ # ffb: 3841 + mov a6, a12 /* arg1+0x51 */ # ffd: 6d0c + extui a3, a3, 0, 3 # fff: 303024 + call0 wpa_eapol_key_mic # 1002: 01e4ffc0 + # 1006: 0000 + bnez a2, .Lbr116 # 1008: 56c2fa + mov a2, sp /* (FP)-0x30 */ # 100b: 2d01 + mov a3, a12 /* arg1+0x51 */ # 100d: 3d0c + movi a4, 16 /* 0x00000010 */ # 100f: 1c04 + call0 memcmp # 1011: 01e1ffc0 + # 1015: 0000 + bnez a2, .Lbr116 # 1017: 56d2f9 + movi a13, 0 /* 0x00000000 */ # 101a: 0c0d + j .Lbr117 # 101c: 86e6ff + + .literal_position # 1020: d4010000 + # 1024: 00000000 + # 1028: 00000000 + +# Function @ .irom0.text+0x102c +# Local variables/stack: +# (local0): word[4] @ -0x20 +# (local1): word @ -0x10 +# (local2): word[3] @ -0xc + .balign 4 + .global wpa_remove_ptk + .type wpa_remove_ptk, @function +wpa_remove_ptk: + movi a4, 64 /* 0x00000040 */ # 102c: 4c04 + movi a3, 0 /* 0x00000000 */ # 102e: 0c03 + addi sp, sp, -32 /* (local0) */ # 1030: 12c1e0 + s32i a12, sp, 20 /* a12 -> [(local2)] */ # 1033: c951 + s32i a0, sp, 16 /* a0 -> [(local1)] */ # 1035: 0941 + mov a12, a2 /* arg0 */ # 1037: cd02 + s32i a3, a2, 236 /* 0x00000000 -> [arg0+0xec] */ # 1039: 32623b + movi a2, 172 /* 0x000000ac */ # 103c: 22a0ac + add a2, a12, a2 /* arg0+0xac */ # 103f: 2a2c + call0 memset # 1041: 01f8ffc0 + # 1045: 0000 + movi a4, 0 /* 0x00000000 */ # 1047: 0c04 + addi a5, a12, 8 /* arg0+0x8 */ # 1049: 8b5c + movi a6, 0 /* 0x00000000 */ # 104b: 0c06 + l32i a2, a12, 0 /* [arg0] */ # 104d: 280c + movi a3, 0 /* 0x00000000 */ # 104f: 0c03 + movi a7, 0 /* 0x00000000 */ # 1051: 0c07 + s32i a3, sp, 0 /* 0x00000000 -> [(local0)] */ # 1053: 3901 + movi a3, 0 /* 0x00000000 */ # 1055: 0c03 + call0 .Lfunc002 # 1057: 45fefe + l32i a3, a12, 0 /* [arg0] */ # 105a: 380c + movi a4, 0 /* 0x00000000 */ # 105c: 0c04 + movi a2, .Lfunc006 # 105e: 21f0ff + s32i a4, a12, 240 /* 0x00000000 -> [arg0+0xf0] */ # 1061: 426c3c + mov a4, a12 /* arg0 */ # 1064: 4d0c + call0 eloop_cancel_timeout # 1066: 01f0ffc0 + # 106a: 0000 + l32i a12, sp, 20 /* [(local2)] */ # 106c: c851 + l32i a0, sp, 16 /* [(local1)] */ # 106e: 0841 + addi sp, sp, 32 /* (top of frame) */ # 1070: 12c120 + ret # 1073: 0df0 + + .literal_position # 1078: 00000000 + # 107c: b81e0000 + +# Function @ .irom0.text+0x1080 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 + .global wpa_auth_sm_event + .type wpa_auth_sm_event, @function +wpa_auth_sm_event: + addi sp, sp, -16 /* (local0) */ # 1080: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1083: 0901 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 1085: c911 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 1087: d921 + mov a12, a2 /* arg0 */ # 1089: cd02 + mov a13, a3 /* arg1 */ # 108b: dd03 + bnez a2, .Lbr120 # 108d: cc32 + movi a2, -1 /* 0xffffffff */ # 108f: 7cf2 + j .Lbr126 # 1091: c61e00 +.Lbr120: movi a2, 0 /* 0x00000000 */ # 1094: 0c02 + bltui a3, 2, .Lbr124 # 1096: b62352 + movi a0, 1 /* 0x00000001 */ # 1099: 0c10 + bgeui a3, 4, .Lbr121 # 109b: f64302 + bgeui a3, 2, .Lbr127 # 109e: f62379 +.Lbr121: bgeui a13, 6, .Lbr124 # 10a1: f66d47 + bltui a13, 4, .Lbr124 # 10a4: b64d44 + movi a5, 244 /* 0x000000f4 */ # 10a7: 52a0f4 + add a5, a12, a5 /* arg0+0xf4 */ # 10aa: 5a5c + l8ui a3, a5, 128 /* [arg0+0x174] */ # 10ac: 320580 + bbsi a3, 3, .Lbr122 # 10af: 37e324 + mov a2, a12 /* arg0 */ # 10b2: 2d0c + movi a6, 1 /* 0x00000001 */ # 10b4: 0c16 + movi a8, 8 /* 0x00000008 */ # 10b6: 0c88 + movi a7, 247 /* 0x000000f7 */ # 10b8: 72a0f7 + and a7, a3, a7 # 10bb: 707310 + or a7, a7, a8 # 10be: 807720 + s8i a7, a5, 128 /* a7 -> [arg0+0x174] */ # 10c1: 724580 + s32i a6, a12, 24 /* 0x00000001 -> [arg0+0x18] */ # 10c4: 696c + call0 .Lfunc048 # 10c6: 05df00 + beqi a2, 1, .Lbr128 # 10c9: 261253 + movi a8, 0 /* 0x00000000 */ # 10cc: 0c08 + movi a9, 1 /* 0x00000001 */ # 10ce: 0c19 + s32i a9, a12, 32 /* 0x00000001 -> [arg0+0x20] */ # 10d0: 998c + s32i a8, a12, 24 /* 0x00000000 -> [arg0+0x18] */ # 10d2: 896c + j .Lbr124 # 10d4: 060500 +.Lbr122: l32i a10, a12, 72 /* [arg0+0x48] */ # 10d7: a22c12 + beqz a10, .Lbr123 # 10da: 8cca + l32i a3, a12, 4 /* [arg0+0x4] */ # 10dc: 381c + l32i a11, a3, 12 /* [[arg0+0x4]+0xc] */ # 10de: b833 + addi a11, a11, -1 /* [[arg0+0x4]+0xc]-0x1 */ # 10e0: 0bbb + s32i a11, a3, 12 /* [[arg0+0x4]+0xc]-0x1 -> [[arg0+0x4]+0xc] */ # 10e2: b933 + s32i a2, a12, 72 /* 0x00000000 -> [arg0+0x48] */ # 10e4: 226c12 + s32i a0, a12, 0x168 /* 0x00000001 -> [arg0+0x168] */ # 10e7: 026c5a +.Lbr123: s32i a0, a12, 36 /* 0x00000001 -> [arg0+0x24] */ # 10ea: 099c +.Lbr124: movi a4, 64 /* 0x00000040 */ # 10ec: 4c04 + movi a2, 172 /* 0x000000ac */ # 10ee: 22a0ac + movi a3, 0 /* 0x00000000 */ # 10f1: 0c03 + s32i a3, a12, 236 /* 0x00000000 -> [arg0+0xec] */ # 10f3: 326c3b + add a2, a12, a2 /* arg0+0xac */ # 10f6: 2a2c + movi a3, 0 /* 0x00000000 */ # 10f8: 0c03 + call0 memset # 10fa: 01dfffc0 + # 10fe: 0000 + beqi a13, 5, .Lbr125 # 1100: 265d04 + mov a2, a12 /* arg0 */ # 1103: 2d0c + call0 wpa_remove_ptk # 1105: 050000 +.Lbr125: mov a2, a12 /* arg0 */ # 1108: 2d0c + call0 .Lfunc048 # 110a: 01dcffc0 + # 110e: 0000 +.Lbr126: l32i a12, sp, 4 /* [(local1)] */ # 1110: c811 + l32i a13, sp, 8 /* [(local2)] */ # 1112: d821 + l32i a0, sp, 0 /* [(local0)] */ # 1114: 0801 + addi sp, sp, 16 /* (top of frame) */ # 1116: 12c110 + ret # 1119: 0df0 +.Lbr127: s32i a0, a12, 28 /* 0x00000001 -> [arg0+0x1c] */ # 111b: 097c + j .Lbr124 # 111d: c6f2ff +.Lbr128: movi a2, 1 /* 0x00000001 */ # 1120: 0c12 + j .Lbr126 # 1122: 86faff + + .literal_position # 1128: 00000000 + +# Function @ .irom0.text+0x112c +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word @ -0x8 +# (local3): word @ -0x4 + .balign 4 +.Lfunc018: movi a5, 180 /* 0x000000b4 */ # 112c: 52a0b4 + addi sp, sp, -16 /* (local0) */ # 112f: 12c1f0 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 1132: d921 + s32i a14, sp, 12 /* a14 -> [(local3)] */ # 1134: e931 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1136: 0901 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 1138: c911 + movi a0, 1 /* 0x00000001 */ # 113a: 0c10 + mov a12, a2 /* arg0 */ # 113c: cd02 + movi a14, 0 /* 0x00000000 */ # 113e: 0c0e + movi a2, 254 /* 0x000000fe */ # 1140: 22a0fe + beqz a3, .Lbr129 # 1143: 8c73 + l32i a3, a12, 16 /* [arg0+0x10] */ # 1145: 384c + add a13, a12, a5 /* arg0+0xb4 */ # 1147: 5adc + bnez a3, .Lbr129 # 1149: cc13 + j .Lbr130 # 114b: 460300 +.Lbr129: add a13, a12, a5 /* arg0+0xb4 */ # 114e: 5adc + l8ui a4, a13, 192 /* [arg0+0x174] */ # 1150: 420dc0 + and a4, a4, a2 # 1153: 204410 + or a4, a4, a0 # 1156: 004420 + s8i a4, a13, 192 /* a4 -> [arg0+0x174] */ # 1159: 424dc0 +.Lbr130: l32i a5, a12, 24 /* [arg0+0x18] */ # 115c: 586c + s32i a14, a12, 16 /* 0x00000000 -> [arg0+0x10] */ # 115e: e94c + beqz a5, .Lbr131 # 1160: 8c75 + l8ui a6, a13, 192 /* [arg0+0x174] */ # 1162: 620dc0 + and a6, a6, a2 # 1165: 206610 + s8i a6, a13, 192 /* a6 -> [arg0+0x174] */ # 1168: 624dc0 +.Lbr131: l32i a7, a12, 72 /* [arg0+0x48] */ # 116b: 722c12 + s32i a14, a13, 64 /* 0x00000000 -> [arg0+0xf4] */ # 116e: e26d10 + beqz a7, .Lbr132 # 1171: 8c67 + l32i a9, a12, 4 /* [arg0+0x4] */ # 1173: 981c + l32i a8, a9, 12 /* [[arg0+0x4]+0xc] */ # 1175: 8839 + addi a8, a8, -1 /* [[arg0+0x4]+0xc]-0x1 */ # 1177: 0b88 + s32i a8, a9, 12 /* [[arg0+0x4]+0xc]-0x1 -> [[arg0+0x4]+0xc] */ # 1179: 8939 +.Lbr132: l32i a9, a13, 216 /* [arg0+0x18c] */ # 117b: 922d36 + s32i a14, a12, 72 /* 0x00000000 -> [arg0+0x48] */ # 117e: e26c12 + bnei a9, 1, .Lbr133 # 1181: 661902 + s32i a14, a12, 0x15c /* 0x00000000 -> [arg0+0x15c] */ # 1184: e26c57 +.Lbr133: mov a2, a12 /* arg0 */ # 1187: 2d0c + s32i a0, a12, 248 /* 0x00000001 -> [arg0+0xf8] */ # 1189: 026c3e + call0 wpa_remove_ptk # 118c: 050000 + s32i a14, a12, 44 /* 0x00000000 -> [arg0+0x2c] */ # 118f: e9bc + l32i a2, a13, 224 /* [arg0+0x194] */ # 1191: 222d38 + call0 .Lfunc001 # 1194: 01e5ffc0 + # 1198: 0000 + l32i a12, sp, 4 /* [(local1)] */ # 119a: c811 + l32i a13, sp, 8 /* [(local2)] */ # 119c: d821 + l32i a14, sp, 12 /* [(local3)] */ # 119e: e831 + l32i a0, sp, 0 /* [(local0)] */ # 11a0: 0801 + addi sp, sp, 16 /* (top of frame) */ # 11a2: 12c110 + ret # 11a5: 0df0 + + .balign 4 +# Function @ .irom0.text+0x11a8 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 +.Lfunc019: addi sp, sp, -16 /* (local0) */ # 11a8: 12c1f0 + mov a5, a2 /* arg0 */ # 11ab: 5d02 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 11ad: 0901 + movi a0, 1 /* 0x00000001 */ # 11af: 0c10 + beqz a3, .Lbr134 # 11b1: 8c33 + l32i a2, a2, 16 /* [arg0+0x10] */ # 11b3: 2842 + beqi a2, 1, .Lbr135 # 11b5: 261213 +.Lbr134: movi a4, 244 /* 0x000000f4 */ # 11b8: 42a0f4 + add a4, a5, a4 /* arg0+0xf4 */ # 11bb: 4a45 + l8ui a3, a4, 128 /* [arg0+0x174] */ # 11bd: 320480 + movi a6, 254 /* 0x000000fe */ # 11c0: 62a0fe + and a3, a3, a6 # 11c3: 603310 + or a3, a3, a0 # 11c6: 003320 + s8i a3, a4, 128 /* a3 -> [arg0+0x174] */ # 11c9: 324480 +.Lbr135: l32i a2, a5, 0 /* [arg0] */ # 11cc: 2805 + addi a3, a5, 8 /* arg0+0x8 */ # 11ce: 8b35 + s32i a0, a5, 16 /* 0x00000001 -> [arg0+0x10] */ # 11d0: 0945 + movi a6, 0 /* 0x00000000 */ # 11d2: 0c06 + s32i a6, a5, 40 /* 0x00000000 -> [arg0+0x28] */ # 11d4: 69a5 + call0 .Lfunc003 # 11d6: c5f9fe + l32i a0, sp, 0 /* [(local0)] */ # 11d9: 0801 + addi sp, sp, 16 /* (top of frame) */ # 11db: 12c110 + ret # 11de: 0df0 + +# Function @ .irom0.text+0x11e0 + .balign 4 +.Lfunc020: movi a7, 2 /* 0x00000002 */ # 11e0: 0c27 + beqz a3, .Lbr136 # 11e2: 8c33 + l32i a3, a2, 16 /* [arg0+0x10] */ # 11e4: 3842 + beqi a3, 2, .Lbr137 # 11e6: 262315 +.Lbr136: movi a5, 244 /* 0x000000f4 */ # 11e9: 52a0f4 + add a5, a2, a5 /* arg0+0xf4 */ # 11ec: 5a52 + l8ui a4, a5, 128 /* [arg0+0x174] */ # 11ee: 420580 + movi a6, 254 /* 0x000000fe */ # 11f1: 62a0fe + and a4, a4, a6 # 11f4: 604410 + movi a6, 1 /* 0x00000001 */ # 11f7: 0c16 + or a4, a4, a6 # 11f9: 604420 + s8i a4, a5, 128 /* a4 -> [arg0+0x174] */ # 11fc: 424580 +.Lbr137: s32i a7, a2, 16 /* 0x00000002 -> [arg0+0x10] */ # 11ff: 7942 + movi a6, 0 /* 0x00000000 */ # 1201: 0c06 + s32i a6, a2, 28 /* 0x00000000 -> [arg0+0x1c] */ # 1203: 6972 + ret /* arg0 */ # 1205: 0df0 + + .literal_position # 1208: 00000000 + +# Function @ .irom0.text+0x120c +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 +.Lfunc021: addi sp, sp, -16 /* (local0) */ # 120c: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 120f: c911 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1211: 0901 + mov a12, a2 /* arg0 */ # 1213: cd02 + beqz a3, .Lbr138 # 1215: 8c33 + l32i a0, a2, 16 /* [arg0+0x10] */ # 1217: 0842 + beqi a0, 3, .Lbr139 # 1219: 263015 +.Lbr138: movi a3, 244 /* 0x000000f4 */ # 121c: 32a0f4 + add a3, a12, a3 /* arg0+0xf4 */ # 121f: 3a3c + l8ui a2, a3, 128 /* [arg0+0x174] */ # 1221: 220380 + movi a4, 254 /* 0x000000fe */ # 1224: 42a0fe + and a2, a2, a4 # 1227: 402210 + movi a4, 1 /* 0x00000001 */ # 122a: 0c14 + or a2, a2, a4 # 122c: 402220 + s8i a2, a3, 128 /* a2 -> [arg0+0x174] */ # 122f: 224380 +.Lbr139: movi a4, 64 /* 0x00000040 */ # 1232: 4c04 + movi a2, 172 /* 0x000000ac */ # 1234: 22a0ac + movi a3, 3 /* 0x00000003 */ # 1237: 0c33 + s32i a3, a12, 16 /* 0x00000003 -> [arg0+0x10] */ # 1239: 394c + add a2, a12, a2 /* arg0+0xac */ # 123b: 2a2c + movi a3, 0 /* 0x00000000 */ # 123d: 0c03 + call0 memset # 123f: 01f2ffc0 + # 1243: 0000 + l32i a0, sp, 0 /* [(local0)] */ # 1245: 0801 + movi a4, 0 /* 0x00000000 */ # 1247: 0c04 + s32i a4, a12, 236 /* 0x00000000 -> [arg0+0xec] */ # 1249: 426c3b + s32i a4, a12, 32 /* 0x00000000 -> [arg0+0x20] */ # 124c: 498c + l32i a12, sp, 4 /* [(local1)] */ # 124e: c811 + addi sp, sp, 16 /* (top of frame) */ # 1250: 12c110 + ret # 1253: 0df0 + + .balign 4 +# Function @ .irom0.text+0x1258 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 +.Lfunc022: addi sp, sp, -16 /* (local0) */ # 1258: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 125b: c911 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 125d: d921 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 125f: 0901 + mov a13, a2 /* arg0 */ # 1261: dd02 + l32i a0, a3, 204 /* [arg1+0xcc] */ # 1263: 022333 + mov a12, a3 /* arg1 */ # 1266: cd03 + bnez a0, .Lbr140 # 1268: dcd0 + movi a3, 1 /* 0x00000001 */ # 126a: 0c13 + movi a2, 0 /* 0x00000000 */ # 126c: 0c02 + s32i a2, a12, 208 /* 0x00000000 -> [arg1+0xd0] */ # 126e: 226c34 + s32i a3, a12, 204 /* 0x00000001 -> [arg1+0xcc] */ # 1271: 326c33 + mov a2, a13 /* arg0 */ # 1274: 2d0d + mov a3, a12 /* arg1 */ # 1276: 3d0c + call0 .Lfunc007 # 1278: 05f9fe + mov a2, a13 /* arg0 */ # 127b: 2d0d + mov a3, a12 /* arg1 */ # 127d: 3d0c + call0 .Lfunc041 # 127f: 85a500 + mov a3, a12 /* arg1 */ # 1282: 3d0c + mov a2, a13 /* arg0 */ # 1284: 2d0d + call0 .Lfunc045 # 1286: 05b800 +.Lbr140: l32i a12, sp, 4 /* [(local1)] */ # 1289: c811 + l32i a13, sp, 8 /* [(local2)] */ # 128b: d821 + l32i a0, sp, 0 /* [(local0)] */ # 128d: 0801 + addi sp, sp, 16 /* (top of frame) */ # 128f: 12c110 + ret # 1292: 0df0 + + .literal_position # 1294: 00000000 + +# Function @ .irom0.text+0x1298 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 +.Lfunc023: addi sp, sp, -16 /* (local0) */ # 1298: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 129b: c911 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 129d: 0901 + mov a12, a2 /* arg0 */ # 129f: cd02 + beqz a3, .Lbr141 # 12a1: 8c33 + l32i a0, a2, 16 /* [arg0+0x10] */ # 12a3: 0842 + beqi a0, 4, .Lbr142 # 12a5: 264015 +.Lbr141: movi a3, 244 /* 0x000000f4 */ # 12a8: 32a0f4 + add a3, a12, a3 /* arg0+0xf4 */ # 12ab: 3a3c + l8ui a2, a3, 128 /* [arg0+0x174] */ # 12ad: 220380 + movi a4, 254 /* 0x000000fe */ # 12b0: 42a0fe + and a2, a2, a4 # 12b3: 402210 + movi a4, 1 /* 0x00000001 */ # 12b6: 0c14 + or a2, a2, a4 # 12b8: 402220 + s8i a2, a3, 128 /* a2 -> [arg0+0x174] */ # 12bb: 224380 +.Lbr142: l32i a2, a12, 0 /* [arg0] */ # 12be: 280c + l32i a3, a12, 4 /* [arg0+0x4] */ # 12c0: 381c + movi a4, 4 /* 0x00000004 */ # 12c2: 0c44 + s32i a4, a12, 16 /* 0x00000004 -> [arg0+0x10] */ # 12c4: 494c + call0 .Lfunc022 # 12c6: 05f9ff + addi a2, a12, 76 /* arg0+0x4c */ # 12c9: 22cc4c + movi a3, 32 /* 0x00000020 */ # 12cc: 2c03 + call0 os_get_random # 12ce: 01f1ffc0 + # 12d2: 0000 + beqz a2, .Lbr143 # 12d4: 8c82 + l32i a2, a12, 0 /* [arg0] */ # 12d6: 280c + addi a3, a12, 8 /* arg0+0x8 */ # 12d8: 8b3c + call0 .Lfunc003 # 12da: 85e9fe + j .Lbr144 # 12dd: 460100 +.Lbr143: movi a5, 0 /* 0x00000000 */ # 12e0: 0c05 + s32i a5, a12, 36 /* 0x00000000 -> [arg0+0x24] */ # 12e2: 599c + s32i a5, a12, 44 /* 0x00000000 -> [arg0+0x2c] */ # 12e4: 59bc +.Lbr144: l32i a12, sp, 4 /* [(local1)] */ # 12e6: c811 + l32i a0, sp, 0 /* [(local0)] */ # 12e8: 0801 + addi sp, sp, 16 /* (top of frame) */ # 12ea: 12c110 + ret # 12ed: 0df0 + + .balign 4 +# Function @ .irom0.text+0x12f0 + .balign 4 +.Lfunc024: movi a7, 5 /* 0x00000005 */ # 12f0: 0c57 + beqz a3, .Lbr145 # 12f2: 8c33 + l32i a3, a2, 16 /* [arg0+0x10] */ # 12f4: 3842 + beqi a3, 5, .Lbr146 # 12f6: 265315 +.Lbr145: movi a5, 244 /* 0x000000f4 */ # 12f9: 52a0f4 + add a5, a2, a5 /* arg0+0xf4 */ # 12fc: 5a52 + l8ui a4, a5, 128 /* [arg0+0x174] */ # 12fe: 420580 + movi a6, 254 /* 0x000000fe */ # 1301: 62a0fe + and a4, a4, a6 # 1304: 604410 + movi a6, 1 /* 0x00000001 */ # 1307: 0c16 + or a4, a4, a6 # 1309: 604420 + s8i a4, a5, 128 /* a4 -> [arg0+0x174] */ # 130c: 424580 +.Lbr146: s32i a7, a2, 16 /* 0x00000005 -> [arg0+0x10] */ # 130f: 7942 + movi a6, 0 /* 0x00000000 */ # 1311: 0c06 + s32i a6, a2, 0x180 /* 0x00000000 -> [arg0+0x180] */ # 1313: 626260 + ret /* arg0 */ # 1316: 0df0 + + .literal_position # 1318: 00000000 + # 131c: 00000000 + # 1320: 00000000 + +# Function @ .irom0.text+0x1324 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 +.Lfunc025: addi sp, sp, -16 /* (local0) */ # 1324: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 1327: c911 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1329: 0901 + mov a12, a2 /* arg0 */ # 132b: cd02 + beqz a3, .Lbr147 # 132d: 8c33 + l32i a0, a2, 16 /* [arg0+0x10] */ # 132f: 0842 + beqi a0, 6, .Lbr148 # 1331: 266015 +.Lbr147: movi a3, 244 /* 0x000000f4 */ # 1334: 32a0f4 + add a3, a12, a3 /* arg0+0xf4 */ # 1337: 3a3c + l8ui a2, a3, 128 /* [arg0+0x174] */ # 1339: 220380 + movi a4, 254 /* 0x000000fe */ # 133c: 42a0fe + and a2, a2, a4 # 133f: 402210 + movi a4, 1 /* 0x00000001 */ # 1342: 0c14 + or a2, a2, a4 # 1344: 402220 + s8i a2, a3, 128 /* a2 -> [arg0+0x174] */ # 1347: 224380 +.Lbr148: addi a3, a12, 8 /* arg0+0x8 */ # 134a: 8b3c + movi a2, g_ic # 134c: 21f3ff + movi a4, 0 /* 0x00000000 */ # 134f: 0c04 + l32i a2, a2, 20 /* [g_ic+0x14] */ # 1351: 2852 + movi a5, 6 /* 0x00000006 */ # 1353: 0c65 + l32i a2, a2, 180 /* [[g_ic+0x14]+0xb4] */ # 1355: 22222d + s32i a5, a12, 16 /* 0x00000006 -> [arg0+0x10] */ # 1358: 594c + l32i a2, a2, 4 /* [[[g_ic+0x14]+0xb4]+0x4] */ # 135a: 2812 + call0 hostapd_get_psk # 135c: 01f0ffc0 + # 1360: 0000 + beqz a2, .Lbr149 # 1362: 8cd2 + mov a3, a2 # 1364: 3d02 + movi a4, 32 /* 0x00000020 */ # 1366: 2c04 + movi a2, 140 /* 0x0000008c */ # 1368: 22a08c + add a2, a12, a2 /* arg0+0x8c */ # 136b: 2a2c + call0 memcpy # 136d: 01ecffc0 + # 1371: 0000 +.Lbr149: movi a3, 0 /* 0x00000000 */ # 1373: 0c03 + l32i a0, sp, 0 /* [(local0)] */ # 1375: 0801 + s32i a3, a12, 0x180 /* 0x00000000 -> [arg0+0x180] */ # 1377: 326c60 + l32i a12, sp, 4 /* [(local1)] */ # 137a: c811 + addi sp, sp, 16 /* (top of frame) */ # 137c: 12c110 + ret # 137f: 0df0 + + .literal_position # 1384: a1400000 + # 1388: 00000000 + +# Function @ .irom0.text+0x138c +# Local variables/stack: +# (local0): word @ -0x40 +# (local1): word @ -0x3c +# (local2): word[2] @ -0x38 +# (local3): byte @ -0x30 +# (local4): byte @ -0x2f +# (local5): byte @ -0x2e +# (local6): byte @ -0x2d +# (local7): byte @ -0x2c +# (local8): byte[27] @ -0x2b +# (local9): word @ -0x10 +# (local10): word[3] @ -0xc + .balign 4 +.Lfunc026: movi a5, 7 /* 0x00000007 */ # 138c: 0c75 + addi sp, sp, -64 /* (local0) */ # 138e: 12c1c0 + s32i a12, sp, 52 /* a12 -> [(local10)] */ # 1391: c9d1 + s32i a0, sp, 48 /* a0 -> [(local9)] */ # 1393: 09c1 + mov a12, a2 /* arg0 */ # 1395: cd02 + beqz a3, .Lbr150 # 1397: 8c33 + l32i a0, a2, 16 /* [arg0+0x10] */ # 1399: 0842 + beqi a0, 7, .Lbr151 # 139b: 267015 +.Lbr150: movi a3, 244 /* 0x000000f4 */ # 139e: 32a0f4 + add a3, a12, a3 /* arg0+0xf4 */ # 13a1: 3a3c + l8ui a2, a3, 128 /* [arg0+0x174] */ # 13a3: 220380 + movi a4, 254 /* 0x000000fe */ # 13a6: 42a0fe + and a2, a2, a4 # 13a9: 402210 + movi a4, 1 /* 0x00000001 */ # 13ac: 0c14 + or a2, a2, a4 # 13ae: 402220 + s8i a2, a3, 128 /* a2 -> [arg0+0x174] */ # 13b1: 224380 +.Lbr151: s32i a5, a12, 16 /* 0x00000007 -> [arg0+0x10] */ # 13b4: 594c + l32i a4, a12, 44 /* [arg0+0x2c] */ # 13b6: 48bc + movi a0, 0 /* 0x00000000 */ # 13b8: 0c00 + s32i a0, a12, 0x160 /* 0x00000000 -> [arg0+0x160] */ # 13ba: 026c58 + s32i a0, a12, 52 /* 0x00000000 -> [arg0+0x34] */ # 13bd: 09dc + addi a4, a4, 1 /* [arg0+0x2c]+0x1 */ # 13bf: 1b44 + s32i a4, a12, 44 /* [arg0+0x2c]+0x1 -> [arg0+0x2c] */ # 13c1: 49bc + bgei a4, 5, .Lbr155 # 13c3: e65474 + l32i a6, a12, 0x18c /* [arg0+0x18c] */ # 13c6: 622c63 + l32i a8, a12, 0x194 /* [arg0+0x194] */ # 13c9: 822c65 + bnei a6, 2, .Lbr153 # 13cc: 662652 + movi a7, 0x000040a1 # 13cf: 71edff + movi a2, 15 /* 0x0000000f */ # 13d2: 0cf2 + bnone a7, a8, .Lbr153 # 13d4: 87074a + movi a3, -84 /* 0xffffffac */ # 13d7: 32afac + movi a4, 4 /* 0x00000004 */ # 13da: 0c44 + movi a9, -35 /* 0xffffffdd */ # 13dc: 92afdd + movi a11, 20 /* 0x00000014 */ # 13df: 1c4b + addi a10, sp, 16 /* (local3) */ # 13e1: a2c110 + s8i a0, a10, 2 /* 0x00 -> [(local5)] */ # 13e4: 024a02 + s8i a2, a10, 3 /* 0x0f -> [(local6)] */ # 13e7: 224a03 + s8i a11, a10, 1 /* 0x14 -> [(local4)] */ # 13ea: b24a01 + s8i a9, a10, 0 /* 0xdd -> [(local3)] */ # 13ed: 924a00 + s8i a4, a10, 5 /* 0x04 -> [(local8)] */ # 13f0: 424a05 + s8i a3, a10, 4 /* 0xac -> [(local7)] */ # 13f3: 324a04 + l32i a2, a12, 0x194 /* [arg0+0x194] */ # 13f6: 222c65 + movi a7, 1 /* 0x00000001 */ # 13f9: 0c17 + beqi a2, 0x100, .Lbr152 # 13fb: 26f204 + beqi a2, 128, .Lbr152 # 13fe: 26e201 + mov a7, a0 /* 0x00000000 */ # 1401: 7d00 +.Lbr152: movi a3, 32 /* 0x00000020 */ # 1403: 2c03 + addi a5, a12, 8 /* arg0+0x8 */ # 1405: 8b5c + addi a6, sp, 22 /* (FP)-0x2a */ # 1407: 62c116 + l32i a4, a12, 0 /* [arg0] */ # 140a: 480c + movi a2, 140 /* 0x0000008c */ # 140c: 22a08c + add a2, a12, a2 /* arg0+0x8c */ # 140f: 2a2c + addi a4, a4, 88 /* [arg0]+0x58 */ # 1411: 42c458 + call0 rsn_pmkid # 1414: 01ddffc0 + # 1418: 0000 + movi a0, 22 /* 0x00000016 */ # 141a: 1c60 + addi a7, sp, 16 /* (local3) */ # 141c: 72c110 + j .Lbr154 # 141f: 460000 +.Lbr153: movi a7, 0 /* 0x00000000 */ # 1422: 0c07 +.Lbr154: addi a6, a12, 76 /* arg0+0x4c */ # 1424: 62cc4c + movi a4, 136 /* 0x00000088 */ # 1427: 42a088 + movi a5, 0 /* 0x00000000 */ # 142a: 0c05 + movi a3, 0 /* 0x00000000 */ # 142c: 0c03 + l32i a2, a12, 0 /* [arg0] */ # 142e: 280c + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1430: 0901 + s32i a3, sp, 4 /* 0x00000000 -> [(local1)] */ # 1432: 3911 + s32i a3, sp, 8 /* 0x00000000 -> [(local2)] */ # 1434: 3921 + mov a3, a12 /* arg0 */ # 1436: 3d0c + call0 .Lfunc016 # 1438: 85aaff +.Lbr155: l32i a12, sp, 52 /* [(local10)] */ # 143b: c8d1 + l32i a0, sp, 48 /* [(local9)] */ # 143d: 08c1 + addi sp, sp, 64 /* (top of frame) */ # 143f: 12c140 + ret # 1442: 0df0 + + .literal_position # 1444: 10000000 + # 1448: 00000000 + +# Function @ .irom0.text+0x144c +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word[4] @ -0x10 + .balign 4 +.Lfunc027: mov a7, a2 /* arg0 */ # 144c: 7d02 + addi sp, sp, -32 /* (local0) */ # 144e: 12c1e0 + s32i a0, sp, 16 /* a0 -> [(local4)] */ # 1451: 0941 + mov a2, a3 /* arg1 */ # 1453: 2d03 + l32i a3, a7, 0x194 /* [arg0+0x194] */ # 1455: 322765 + movi a0, 1 /* 0x00000001 */ # 1458: 0c10 + beqi a3, 0x100, .Lbr156 # 145a: 26f304 + beqi a3, 128, .Lbr156 # 145d: 26e301 + movi a0, 0 /* 0x00000000 */ # 1460: 0c00 +.Lbr156: movi a3, 32 /* 0x00000020 */ # 1462: 2c03 + movi a9, 48 /* 0x00000030 */ # 1464: 3c09 + movi a8, 64 /* 0x00000040 */ # 1466: 4c08 + addi a6, a7, 108 /* arg0+0x6c */ # 1468: 62c76c + l32i a5, a7, 0 /* [arg0] */ # 146b: 5807 + l32i a10, a7, 0x190 /* [arg0+0x190] */ # 146d: a22764 + addi a5, a5, 88 /* [arg0]+0x58 */ # 1470: 52c558 + s32i a0, sp, 12 /* a0 -> [(local3)] */ # 1473: 0931 + s32i a4, sp, 4 /* arg2 -> [(local1)] */ # 1475: 4911 + addi a10, a10, -2 /* [arg0+0x190]-0x2 */ # 1477: a2cafe + movi a4, .Lstr002 # 147a: 41f2ff + s32i a6, sp, 0 /* arg0+0x6c -> [(local0)] */ # 147d: 6901 + movnez a8, a9, a10 # 147f: a08993 + addi a6, a7, 8 /* arg0+0x8 */ # 1482: 8b67 + s32i a8, sp, 8 /* a8 -> [(local2)] */ # 1484: 8921 + addi a7, a7, 76 /* arg0+0x4c */ # 1486: 72c74c + call0 wpa_pmk_to_ptk # 1489: 01efffc0 + # 148d: 0000 + movi a2, 0 /* 0x00000000 */ # 148f: 0c02 + l32i a0, sp, 16 /* [(local4)] */ # 1491: 0841 + addi sp, sp, 32 /* (top of frame) */ # 1493: 12c120 + ret /* 0x00000000 */ # 1496: 0df0 + + .literal_position # 1498: 00000000 + # 149c: 600a0000 + # 14a0: 00000000 + # 14a4: 00000000 + # 14a8: 00000000 + # 14ac: 00000000 + # 14b0: 00000000 + # 14b4: 00000000 + # 14b8: 00000000 + +# Function @ .irom0.text+0x14bc +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word[4] @ -0x10 + .balign 4 +.Lfunc028: movi a7, 191 /* 0x000000bf */ # 14bc: 72a0bf + movi a8, 8 /* 0x00000008 */ # 14bf: 0c88 + addi sp, sp, -96 /* (FP)-0x60 */ # 14c1: 12c1a0 + s32i a15, sp, 80 /* a15 -> [(local4)] */ # 14c4: f26114 + s32i a14, sp, 76 /* a14 -> [(local3)] */ # 14c7: e26113 + s32i a12, sp, 68 /* a12 -> [(local1)] */ # 14ca: c26111 + s32i a0, sp, 64 /* a0 -> [(local0)] */ # 14cd: 026110 + s32i a13, sp, 72 /* a13 -> [(local2)] */ # 14d0: d26112 + movi a0, 1 /* 0x00000001 */ # 14d3: 0c10 + movi a13, 0 /* 0x00000000 */ # 14d5: 0c0d + mov a12, a2 /* arg0 */ # 14d7: cd02 + movi a14, 140 /* 0x0000008c */ # 14d9: e2a08c + movi a2, 244 /* 0x000000f4 */ # 14dc: 22a0f4 + addi a15, a12, 8 /* arg0+0x8 */ # 14df: 8bfc + beqz a3, .Lbr157 # 14e1: 8c83 + l32i a3, a12, 16 /* [arg0+0x10] */ # 14e3: 384c + bnei a3, 8, .Lbr157 # 14e5: 668304 + add a2, a12, a2 /* arg0+0xf4 */ # 14e8: 2a2c + j .Lbr158 # 14ea: 060400 +.Lbr157: add a2, a12, a2 /* arg0+0xf4 */ # 14ed: 2a2c + l8ui a4, a2, 128 /* [arg0+0x174] */ # 14ef: 420280 + movi a5, 254 /* 0x000000fe */ # 14f2: 52a0fe + and a4, a4, a5 # 14f5: 504410 + or a4, a4, a0 # 14f8: 004420 + s8i a4, a2, 128 /* a4 -> [arg0+0x174] */ # 14fb: 424280 +.Lbr158: s32i a8, a12, 16 /* 0x00000008 -> [arg0+0x10] */ # 14fe: 894c + s32i a13, a12, 56 /* 0x00000000 -> [arg0+0x38] */ # 1500: d9ec + l8ui a6, a2, 128 /* [arg0+0x174] */ # 1502: 620280 + add a14, a12, a14 /* arg0+0x8c */ # 1505: eaec + and a6, a6, a7 # 1507: 706610 + s8i a6, a2, 128 /* a6 -> [arg0+0x174] */ # 150a: 624280 +.Lbr159: l32i a2, a12, 0x194 /* [arg0+0x194] */ # 150d: 222c65 + call0 .Lfunc001 # 1510: 01e4ffc0 + # 1514: 0000 + beqz a2, .Lbr160 # 1516: 9c92 + movi a2, g_ic # 1518: 21e0ff + l32i a2, a2, 20 /* [g_ic+0x14] */ # 151b: 2852 + mov a4, a13 # 151d: 4d0d + l32i a2, a2, 180 /* [[g_ic+0x14]+0xb4] */ # 151f: 22222d + mov a3, a15 /* arg0+0x8 */ # 1522: 3d0f + l32i a2, a2, 4 /* [[[g_ic+0x14]+0xb4]+0x4] */ # 1524: 2812 + call0 hostapd_get_psk # 1526: 01dfffc0 + # 152a: 0000 + mov a13, a2 # 152c: dd02 + bnez a2, .Lbr161 # 152e: cc32 + j .Lbr162 # 1530: 060900 +.Lbr160: mov a13, a14 /* arg0+0x8c */ # 1533: dd0e +.Lbr161: mov a2, a12 /* arg0 */ # 1535: 2d0c + mov a3, a13 # 1537: 3d0d + mov a4, sp /* (FP)-0x60 */ # 1539: 4d01 + call0 .Lfunc027 # 153b: 05f1ff + mov a2, sp /* (FP)-0x60 */ # 153e: 2d01 + l32i a3, a12, 0x16c /* [arg0+0x16c] */ # 1540: 322c5b + l32i a4, a12, 0x170 /* [arg0+0x170] */ # 1543: 422c5c + call0 .Lfunc017 # 1546: 45a5ff + beqz a2, .Lbr166 # 1549: 163206 + l32i a2, a12, 0x194 /* [arg0+0x194] */ # 154c: 222c65 + call0 .Lfunc001 # 154f: 01d6ffc0 + # 1553: 0000 + bnez a2, .Lbr159 # 1555: 5642fb +.Lbr162: movi a0, 0 /* 0x00000000 */ # 1558: 0c00 +.Lbr163: beqz a0, .Lbr165 # 155a: bce0 + movi a2, .Lfunc015 # 155c: 21d0ff + movi a3, 0 /* 0x00000000 */ # 155f: 0c03 + mov a4, a12 /* arg0 */ # 1561: 4d0c + s32i a3, a12, 0x198 /* 0x00000000 -> [arg0+0x198] */ # 1563: 326c66 + l32i a3, a12, 0 /* [arg0] */ # 1566: 380c + call0 eloop_cancel_timeout # 1568: 01d1ffc0 + # 156c: 0000 + l32i a2, a12, 0x194 /* [arg0+0x194] */ # 156e: 222c65 + call0 .Lfunc001 # 1571: 01cfffc0 + # 1575: 0000 + beqz a2, .Lbr164 # 1577: 8ca2 + mov a3, a13 # 1579: 3d0d + mov a2, a14 /* arg0+0x8c */ # 157b: 2d0e + movi a4, 32 /* 0x00000020 */ # 157d: 2c04 + call0 memcpy # 157f: 01cdffc0 + # 1583: 0000 +.Lbr164: mov a3, sp /* (FP)-0x60 */ # 1585: 3d01 + movi a4, 64 /* 0x00000040 */ # 1587: 4c04 + movi a2, 172 /* 0x000000ac */ # 1589: 22a0ac + movi a13, 1 /* 0x00000001 */ # 158c: 0c1d + s32i a13, a12, 68 /* 0x00000001 -> [arg0+0x44] */ # 158e: d26c11 + add a2, a12, a2 /* arg0+0xac */ # 1591: 2a2c + call0 memcpy # 1593: 01c9ffc0 + # 1597: 0000 + s32i a13, a12, 236 /* 0x00000001 -> [arg0+0xec] */ # 1599: d26c3b +.Lbr165: l32i a12, sp, 68 /* [(local1)] */ # 159c: c22111 + l32i a13, sp, 72 /* [(local2)] */ # 159f: d22112 + l32i a14, sp, 76 /* [(local3)] */ # 15a2: e22113 + l32i a15, sp, 80 /* [(local4)] */ # 15a5: f22114 + l32i a0, sp, 64 /* [(local0)] */ # 15a8: 022110 + addi sp, sp, 96 /* (top of frame) */ # 15ab: 12c160 + ret # 15ae: 0df0 +.Lbr166: movi a0, 1 /* 0x00000001 */ # 15b0: 0c10 + j .Lbr163 # 15b2: 06e9ff + + .balign 4 +# Function @ .irom0.text+0x15b8 + .balign 4 +.Lfunc029: movi a6, 9 /* 0x00000009 */ # 15b8: 0c96 + beqz a3, .Lbr167 # 15ba: 8c33 + l32i a3, a2, 16 /* [arg0+0x10] */ # 15bc: 3842 + beq a3, a6, .Lbr168 # 15be: 671315 +.Lbr167: movi a5, 244 /* 0x000000f4 */ # 15c1: 52a0f4 + add a5, a2, a5 /* arg0+0xf4 */ # 15c4: 5a52 + l8ui a4, a5, 128 /* [arg0+0x174] */ # 15c6: 420580 + movi a7, 254 /* 0x000000fe */ # 15c9: 72a0fe + and a4, a4, a7 # 15cc: 704410 + movi a7, 1 /* 0x00000001 */ # 15cf: 0c17 + or a4, a4, a7 # 15d1: 704420 + s8i a4, a5, 128 /* a4 -> [arg0+0x174] */ # 15d4: 424580 +.Lbr168: s32i a6, a2, 16 /* 0x00000009 -> [arg0+0x10] */ # 15d7: 6942 + movi a7, 0 /* 0x00000000 */ # 15d9: 0c07 + s32i a7, a2, 44 /* 0x00000000 -> [arg0+0x2c] */ # 15db: 79b2 + ret /* arg0 */ # 15dd: 0df0 + + .balign 4 +# Function @ .irom0.text+0x15e0 + .balign 4 +.Lfunc030: movi a2, 0 /* 0x00000000 */ # 15e0: 0c02 + ret /* 0x00000000 */ # 15e2: 0df0 + +# Function @ .irom0.text+0x15e4 + .balign 4 +.Lfunc031: mov a2, a3 /* arg1 */ # 15e4: 2d03 + ret /* arg1 */ # 15e6: 0df0 + + .literal_position # 15e8: 01ac0f00 + # 15ec: 00000000 + # 15f0: 00000000 + # 15f4: 00000000 + # 15f8: 00000000 + # 15fc: 00000000 + # 1600: 00000000 + +# Function @ .irom0.text+0x1604 +# Local variables/stack: +# (local0): word @ -0x80 +# (local1): word @ -0x7c +# (local2): word[14] @ -0x78 +# (local3): byte @ -0x40 +# (local4): byte[3] @ -0x3f +# (local5): word @ -0x3c +# (local6): word @ -0x38 +# (local7): word @ -0x34 +# (local8): word @ -0x30 +# (local9): word @ -0x2c +# (local10): word @ -0x28 +# (local11): word @ -0x24 +# (local12): word @ -0x20 +# (local13): word @ -0x1c +# (local14): word @ -0x18 +# (local15): word @ -0x14 +# (local16): word[4] @ -0x10 + .balign 4 +.Lfunc032: movi a4, 1 /* 0x00000001 */ # 1604: 0c14 + movi a8, 10 /* 0x0000000a */ # 1606: 0ca8 + addi sp, sp, -128 /* (local0) */ # 1608: 12c180 + s32i a13, sp, 100 /* a13 -> [(local13)] */ # 160b: d26119 + s32i a15, sp, 108 /* a15 -> [(local15)] */ # 160e: f2611b + s32i a12, sp, 96 /* a12 -> [(local12)] */ # 1611: c26118 + s32i a14, sp, 104 /* a14 -> [(local14)] */ # 1614: e2611a + s32i a0, sp, 92 /* a0 -> [(local11)] */ # 1617: 026117 + l32i a14, a2, 4 /* [arg0+0x4] */ # 161a: e812 + movi a0, 244 /* 0x000000f4 */ # 161c: 02a0f4 + mov a12, a2 /* arg0 */ # 161f: cd02 + beqz a3, .Lbr169 # 1621: 8c33 + l32i a2, a2, 16 /* [arg0+0x10] */ # 1623: 2842 + beqi a2, 10, .Lbr170 # 1625: 269210 +.Lbr169: add a5, a12, a0 /* arg0+0xf4 */ # 1628: 0a5c + l8ui a3, a5, 128 /* [arg0+0x174] */ # 162a: 320580 + movi a6, 254 /* 0x000000fe */ # 162d: 62a0fe + and a3, a3, a6 # 1630: 603310 + or a3, a3, a4 # 1633: 403320 + s8i a3, a5, 128 /* a3 -> [arg0+0x174] */ # 1636: 324580 +.Lbr170: s32i a8, a12, 16 /* 0x0000000a -> [arg0+0x10] */ # 1639: 894c + l32i a7, a12, 44 /* [arg0+0x2c] */ # 163b: 78bc + movi a3, 0 /* 0x00000000 */ # 163d: 0c03 + s32i a3, a12, 52 /* 0x00000000 -> [arg0+0x34] */ # 163f: 39dc + addi a7, a7, 1 /* [arg0+0x2c]+0x1 */ # 1641: 1b77 + s32i a7, a12, 44 /* [arg0+0x2c]+0x1 -> [arg0+0x2c] */ # 1643: 79bc + blti a7, 5, .Lbr171 # 1645: a65702 + j .Lbr177 # 1648: 864b00 +.Lbr171: addi a2, sp, 16 /* (FP)-0x70 */ # 164b: 22c110 + movi a4, 8 /* 0x00000008 */ # 164e: 0c84 + call0 memset # 1650: 01e7ffc0 + # 1654: 0000 + l32i a0, a12, 0 /* [arg0] */ # 1656: 080c + l32i a2, a12, 0x18c /* [arg0+0x18c] */ # 1658: 222c63 + l32i a15, a0, 80 /* [[arg0]+0x50] */ # 165b: f22014 + l32i a13, a0, 84 /* [[arg0]+0x54] */ # 165e: d22015 + bnei a2, 1, .Lbr172 # 1661: 66121d + l32i a9, a0, 4 /* [[arg0]+0x4] */ # 1664: 9810 + bbci a9, 1, .Lbr172 # 1666: 176918 + l8ui a4, a15, 1 /* [[[arg0]+0x50]+0x1] */ # 1669: 420f01 + addi a10, a4, 2 /* [[[arg0]+0x50]+0x1]+0x2 */ # 166c: 2ba4 + bge a10, a13, .Lbr172 # 166e: d7aa10 + l8ui a11, a15, 0 /* [[[arg0]+0x50]] */ # 1671: b20f00 + movi a3, 48 /* 0x00000030 */ # 1674: 3c03 + bne a11, a3, .Lbr172 # 1676: 379b08 + add a15, a4, a15 # 1679: faf4 + l8ui a13, a15, 3 # 167b: d20f03 + addi a15, a15, 2 # 167e: 2bff + addi a13, a13, 2 # 1680: 2bdd +.Lbr172: s32i a14, sp, 68 /* [arg0+0x4] -> [(local5)] */ # 1682: e26111 + bnei a2, 2, .Lbr174 # 1685: 662241 + mov a4, a14 /* [arg0+0x4] */ # 1688: 4d0e + l32i a2, a14, 24 /* [[arg0+0x4]+0x18] */ # 168a: 286e + l32i a3, a0, 72 /* [[arg0]+0x48] */ # 168c: 322012 + slli a14, a2, 5 # 168f: b0e211 + add a14, a4, a14 # 1692: eae4 + addi a14, a14, 72 # 1694: e2ce48 + l32i a4, a4, 20 /* [[arg0+0x4]+0x14] */ # 1697: 4854 + s32i a4, sp, 112 /* [[arg0+0x4]+0x14] -> [(local16)] */ # 1699: 42611c + beqz a3, .Lbr173 # 169c: 9c43 + addi a2, sp, 32 /* (FP)-0x60 */ # 169e: 22c120 + mov a3, a4 /* [[arg0+0x4]+0x14] */ # 16a1: 3d04 + call0 os_get_random # 16a3: 01d3ffc0 + # 16a7: 0000 + bltz a2, .Lbr177 # 16a9: 96d20c + l32i a2, sp, 68 /* [(local5)] */ # 16ac: 222111 + addi a14, sp, 32 /* (FP)-0x60 */ # 16af: e2c120 + l32i a2, a2, 24 /* [[(local5)]+0x18] */ # 16b2: 2862 +.Lbr173: s32i a2, sp, 88 /* a2 -> [(local10)] */ # 16b4: 226116 + movi a3, 1 /* 0x00000001 */ # 16b7: 0c13 + addi a4, sp, 16 /* (FP)-0x70 */ # 16b9: 42c110 + movi a5, 1 /* 0x00000001 */ # 16bc: 0c15 + s32i a5, sp, 76 /* 0x00000001 -> [(local7)] */ # 16be: 526113 + s32i a4, sp, 80 /* (FP)-0x70 -> [(local8)] */ # 16c1: 426114 + s32i a3, sp, 84 /* 0x00000001 -> [(local9)] */ # 16c4: 326115 + j .Lbr175 # 16c7: c60800 +.Lbr174: movi a14, 0 /* 0x00000000 */ # 16ca: 0c0e + movi a7, 244 /* 0x000000f4 */ # 16cc: 72a0f4 + movi a8, 0 /* 0x00000000 */ # 16cf: 0c08 + movi a9, 0 /* 0x00000000 */ # 16d1: 0c09 + movi a10, 0 /* 0x00000000 */ # 16d3: 0c0a + s32i a10, sp, 80 /* 0x00000000 -> [(local8)] */ # 16d5: a26114 + s32i a9, sp, 88 /* 0x00000000 -> [(local10)] */ # 16d8: 926116 + s32i a8, sp, 112 /* 0x00000000 -> [(local16)] */ # 16db: 82611c + add a7, a12, a7 /* arg0+0xf4 */ # 16de: 7a7c + movi a8, 0 /* 0x00000000 */ # 16e0: 0c08 + l8ui a7, a7, 128 /* [arg0+0x174] */ # 16e2: 720780 + s32i a8, sp, 84 /* 0x00000000 -> [(local9)] */ # 16e5: 826115 + extui a7, a7, 5, 1 # 16e8: 707504 + s32i a7, sp, 76 /* a7 -> [(local7)] */ # 16eb: 726113 +.Lbr175: mov a2, a12 /* arg0 */ # 16ee: 2d0c + call0 .Lfunc030 # 16f0: c5eeff + s32i a15, sp, 72 /* a15 -> [(local6)] */ # 16f3: f26112 + l32i a11, sp, 112 /* [(local16)] */ # 16f6: b2211c + add a2, a2, a13 # 16f9: da22 + add a11, a2, a11 # 16fb: bab2 + addi a11, a11, 8 # 16fd: 8bbb + movnez a2, a11, a14 # 16ff: e02b93 + call0 malloc # 1702: 01bcffc0 + # 1706: 0000 + mov a15, a2 # 1708: fd02 + beqz a2, .Lbr177 # 170a: 16c206 + l32i a3, sp, 72 /* [(local6)] */ # 170d: 322112 + mov a4, a13 # 1710: 4d0d + call0 memcpy # 1712: 01b9ffc0 + # 1716: 0000 + add a3, a13, a15 # 1718: fa3d + beqz a14, .Lbr176 # 171a: ac3e + mov a6, a14 # 171c: 6d0e + addi a4, sp, 64 /* (local3) */ # 171e: 42c140 + movi a5, 2 /* 0x00000002 */ # 1721: 0c25 + l32i a7, sp, 112 /* [(local16)] */ # 1723: 72211c + l32i a13, sp, 88 /* [(local10)] */ # 1726: d22116 + mov a2, a3 # 1729: 2d03 + movi a0, 0 /* 0x00000000 */ # 172b: 0c00 + movi a3, 0x000fac01 # 172d: 31aeff + s8i a0, sp, 65 /* 0x00 -> [(local4)] */ # 1730: 024141 + extui a13, a13, 0, 2 # 1733: d0d014 + s8i a13, sp, 64 /* a13 -> [(local3)] */ # 1736: d24140 + call0 wpa_add_kde # 1739: 01b0ffc0 + # 173d: 0000 + mov a3, a2 # 173f: 3d02 +.Lbr176: mov a2, a12 /* arg0 */ # 1741: 2d0c + call0 .Lfunc031 # 1743: 05eaff + l32i a5, sp, 80 /* [(local8)] */ # 1746: 522114 + mov a3, a12 /* arg0 */ # 1749: 3d0c + addi a6, a12, 76 /* arg0+0x4c */ # 174b: 62cc4c + l32i a8, sp, 76 /* [(local7)] */ # 174e: 822113 + movi a7, 968 /* 0x000003c8 */ # 1751: 72a3c8 + movi a4, 456 /* 0x000001c8 */ # 1754: 42a1c8 + l32i a10, sp, 84 /* [(local9)] */ # 1757: a22115 + l32i a11, sp, 88 /* [(local10)] */ # 175a: b22116 + mov a9, a2 # 175d: 9d02 + sub a9, a9, a15 # 175f: f099c0 + l32i a2, a12, 0 /* [arg0] */ # 1762: 280c + s32i a11, sp, 4 /* [(local10)] -> [(local1)] */ # 1764: b911 + s32i a10, sp, 8 /* [(local9)] -> [(local2)] */ # 1766: a921 + movnez a4, a7, a8 # 1768: 804793 + s32i a9, sp, 0 /* a9 -> [(local0)] */ # 176b: 9901 + mov a7, a15 # 176d: 7d0f + call0 .Lfunc016 # 176f: 4577ff + mov a2, a15 # 1772: 2d0f + call0 free # 1774: 01a3ffc0 + # 1778: 0000 +.Lbr177: l32i a12, sp, 96 /* [(local12)] */ # 177a: c22118 + l32i a13, sp, 100 /* [(local13)] */ # 177d: d22119 + l32i a14, sp, 104 /* [(local14)] */ # 1780: e2211a + l32i a15, sp, 108 /* [(local15)] */ # 1783: f2211b + movi a2, 128 /* 0x00000080 */ # 1786: 22a080 + l32i a0, sp, 92 /* [(local11)] */ # 1789: 022117 + add sp, sp, a2 /* (top of frame) */ # 178c: 2a11 + ret /* 0x00000080 */ # 178e: 0df0 + + .literal_position # 1790: d4010000 + # 1794: d4010000 + # 1798: 00000000 + # 179c: 00000000 + # 17a0: 00000000 + # 17a4: 00000000 + # 17a8: 00000000 + # 17ac: 00000000 + +# Function @ .irom0.text+0x17b0 +# Local variables/stack: +# (local0): word[4] @ -0x30 +# (local1): word @ -0x20 +# (local2): word @ -0x1c +# (local3): word @ -0x18 +# (local4): word @ -0x14 +# (local5): word[4] @ -0x10 + .balign 4 +.Lfunc033: addi sp, sp, -48 /* (local0) */ # 17b0: 12c1d0 + s32i a13, sp, 32 /* a13 -> [(local5)] */ # 17b3: d981 + s32i a12, sp, 28 /* a12 -> [(local4)] */ # 17b5: c971 + s32i a0, sp, 24 /* a0 -> [(local3)] */ # 17b7: 0961 + mov a12, a2 /* arg0 */ # 17b9: cd02 + movi a0, 11 /* 0x0000000b */ # 17bb: 0cb0 + movi a13, 1 /* 0x00000001 */ # 17bd: 0c1d + beqz a3, .Lbr178 # 17bf: 8c33 + l32i a2, a2, 16 /* [arg0+0x10] */ # 17c1: 2842 + beq a2, a0, .Lbr179 # 17c3: 071213 +.Lbr178: movi a4, 244 /* 0x000000f4 */ # 17c6: 42a0f4 + add a4, a12, a4 /* arg0+0xf4 */ # 17c9: 4a4c + l8ui a3, a4, 128 /* [arg0+0x174] */ # 17cb: 320480 + movi a5, 254 /* 0x000000fe */ # 17ce: 52a0fe + and a3, a3, a5 # 17d1: 503310 + or a3, a3, a13 # 17d4: d03320 + s8i a3, a4, 128 /* a3 -> [arg0+0x174] */ # 17d7: 324480 +.Lbr179: s32i a0, a12, 16 /* 0x0000000b -> [arg0+0x10] */ # 17da: 094c + l32i a5, a12, 248 /* [arg0+0xf8] */ # 17dc: 522c3e + movi a0, 0 /* 0x00000000 */ # 17df: 0c00 + s32i a0, a12, 56 /* 0x00000000 -> [arg0+0x38] */ # 17e1: 09ec + beqz a5, .Lbr182 # 17e3: 167506 + l32i a2, a12, 0x190 /* [arg0+0x190] */ # 17e6: 222c64 + call0 wpa_cipher_to_alg # 17e9: 01ecffc0 + # 17ed: 0000 + s32i a2, sp, 20 /* a2 -> [(local2)] */ # 17ef: 2951 + l32i a2, a12, 0x190 /* [arg0+0x190] */ # 17f1: 222c64 + call0 wpa_cipher_key_len # 17f4: 01ebffc0 + # 17f8: 0000 + l32i a4, sp, 20 /* [(local2)] */ # 17fa: 4851 + movi a3, 0 /* 0x00000000 */ # 17fc: 0c03 + movi a6, 0 /* 0x00000000 */ # 17fe: 0c06 + mov a8, a2 # 1800: 8d02 + addi a5, a12, 8 /* arg0+0x8 */ # 1802: 8b5c + movi a7, 204 /* 0x000000cc */ # 1804: 72a0cc + add a7, a12, a7 /* arg0+0xcc */ # 1807: 7a7c + s32i a5, sp, 16 /* arg0+0x8 -> [(local1)] */ # 1809: 5941 + l32i a2, a12, 0 /* [arg0] */ # 180b: 280c + s32i a8, sp, 0 /* a8 -> [(local0)] */ # 180d: 8901 + call0 .Lfunc002 # 180f: c582fe + beqz a2, .Lbr180 # 1812: 8c82 + l32i a2, a12, 0 /* [arg0] */ # 1814: 280c + l32i a3, sp, 16 /* [(local1)] */ # 1816: 3841 + call0 .Lfunc003 # 1818: 8595fe + j .Lbr185 # 181b: 061400 +.Lbr180: l32i a3, a12, 0 /* [arg0] */ # 181e: 380c + s32i a13, a12, 240 /* 0x00000001 -> [arg0+0xf0] */ # 1820: d26c3c + l32i a9, a3, 32 /* [[arg0]+0x20] */ # 1823: 9883 + beqz a9, .Lbr181 # 1825: 9ca9 + movi a2, .Lfunc006 # 1827: 21daff + mov a4, a12 /* arg0 */ # 182a: 4d0c + call0 eloop_cancel_timeout # 182c: 01deffc0 + # 1830: 0000 + movi a3, 0 /* 0x00000000 */ # 1832: 0c03 + movi a4, .Lfunc006 # 1834: 41d8ff + l32i a5, a12, 0 /* [arg0] */ # 1837: 580c + mov a6, a12 /* arg0 */ # 1839: 6d0c + l32i a2, a5, 32 /* [[arg0]+0x20] */ # 183b: 2885 + call0 eloop_register_timeout # 183d: 01daffc0 + # 1841: 0000 +.Lbr181: l32i a2, a12, 0x194 /* [arg0+0x194] */ # 1843: 222c65 + call0 .Lfunc001 # 1846: 01d9ffc0 + # 184a: 0000 + movi a0, 0 /* 0x00000000 */ # 184c: 0c00 +.Lbr182: l32i a10, a12, 0x18c /* [arg0+0x18c] */ # 184e: a22c63 + bnei a10, 1, .Lbr183 # 1851: 661a05 + s32i a13, a12, 0x15c /* 0x00000001 -> [arg0+0x15c] */ # 1854: d26c57 + j .Lbr184 # 1857: 860000 +.Lbr183: s32i a13, a12, 0x164 /* 0x00000001 -> [arg0+0x164] */ # 185a: d26c59 +.Lbr184: movi a12, g_ic # 185d: c1ceff + l32i a12, a12, 20 /* [g_ic+0x14] */ # 1860: c85c + l32i a12, a12, 136 /* [[g_ic+0x14]+0x88] */ # 1862: c22c22 + l32i a11, a12, 8 /* [[[g_ic+0x14]+0x88]+0x8] */ # 1865: b82c + s8i a0, a12, 24 /* 0x00 -> [[[g_ic+0x14]+0x88]+0x18] */ # 1867: 024c18 + or a11, a11, a13 # 186a: d0bb20 + s32i a11, a12, 8 /* a11 -> [[[g_ic+0x14]+0x88]+0x8] */ # 186d: b92c +.Lbr185: l32i a12, sp, 28 /* [(local4)] */ # 186f: c871 + l32i a13, sp, 32 /* [(local5)] */ # 1871: d881 + l32i a0, sp, 24 /* [(local3)] */ # 1873: 0861 + addi sp, sp, 48 /* (top of frame) */ # 1875: 12c130 + ret # 1878: 0df0 + + .literal_position # 187c: 01190000 + # 1880: 00000000 + # 1884: 00000000 + # 1888: 00000000 + +# Function @ .irom0.text+0x188c +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 +.Lfunc034: addi sp, sp, -16 /* (local0) */ # 188c: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 188f: c911 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1891: 0901 + l32i a0, a2, 24 /* [arg0+0x18] */ # 1893: 0862 + mov a12, a2 /* arg0 */ # 1895: cd02 + beqz a0, .Lbr187 # 1897: 8cc0 + movi a3, 0 /* 0x00000000 */ # 1899: 0c03 + call0 .Lfunc018 # 189b: 0589ff +.Lbr186: l32i a12, sp, 4 /* [(local1)] */ # 189e: c811 + l32i a0, sp, 0 /* [(local0)] */ # 18a0: 0801 + addi sp, sp, 16 /* (top of frame) */ # 18a2: 12c110 + ret # 18a5: 0df0 +.Lbr187: l32i a2, a2, 40 /* [arg0+0x28] */ # 18a7: 28a2 + beqz a2, .Lbr188 # 18a9: 8c82 + mov a2, a12 /* arg0 */ # 18ab: 2d0c + movi a3, 0 /* 0x00000000 */ # 18ad: 0c03 + call0 .Lfunc019 # 18af: 858fff + j .Lbr186 # 18b2: 06faff +.Lbr188: l32i a3, a12, 28 /* [arg0+0x1c] */ # 18b5: 387c + l32i a4, a12, 32 /* [arg0+0x20] */ # 18b7: 488c + beqz a3, .Lbr189 # 18b9: 8c83 + mov a2, a12 /* arg0 */ # 18bb: 2d0c + movi a3, 0 /* 0x00000000 */ # 18bd: 0c03 + call0 .Lfunc020 # 18bf: 0592ff + j .Lbr186 # 18c2: 06f6ff +.Lbr189: beqz a4, .Lbr190 # 18c5: 8c84 + mov a2, a12 /* arg0 */ # 18c7: 2d0c + movi a3, 0 /* 0x00000000 */ # 18c9: 0c03 + call0 .Lfunc021 # 18cb: 0594ff + j .Lbr186 # 18ce: 06f3ff +.Lbr190: l32i a5, a12, 36 /* [arg0+0x24] */ # 18d1: 589c + beqz a5, .Lbr191 # 18d3: 8c85 + mov a2, a12 /* arg0 */ # 18d5: 2d0c + movi a3, 0 /* 0x00000000 */ # 18d7: 0c03 + call0 .Lfunc023 # 18d9: c59bff + j .Lbr186 # 18dc: 86efff +.Lbr191: l32i a6, a12, 0x160 /* [arg0+0x160] */ # 18df: 622c58 + movi a4, 244 /* 0x000000f4 */ # 18e2: 42a0f4 + beqz a6, .Lbr192 # 18e5: 8c86 + mov a2, a12 /* arg0 */ # 18e7: 2d0c + movi a3, 0 /* 0x00000000 */ # 18e9: 0c03 + call0 .Lfunc026 # 18eb: 05aaff + j .Lbr186 # 18ee: 06ebff +.Lbr192: l32i a0, a12, 16 /* [arg0+0x10] */ # 18f1: 084c + movi a8, .Lfunc035 # 18f3: 81e2ff + bgeui a0, 12, .Lbr186 # 18f6: f6a0a4 + addx2 a7, a0, a0 # 18f9: 007090 + add a7, a7, a8 # 18fc: 8a77 + jx a7 # 18fe: a00700 + +# Function @ .irom0.text+0x1901 + .balign 4 +.Lfunc035: j .Lbr186 # 1901: 46e6ff + +# NOTE: The following is apparently unreferenced code/data + .word 0x86002ec6 # 1904: c62e0086 + .word 0x2846002b # 1908: 2b004628 + .word 0x00220600 # 190c: 00062200 + .word 0xc6001ec6 # 1910: c61e00c6 + .word 0x0e860015 # 1914: 1500860e + .word 0x0009c600 # 1918: 00c60900 + .word 0x86000686 # 191c: 86060086 + .word 0xde060000 # 1920: 000006de + .byte 0xff # 1924: ff + +# Function @ .irom0.text+0x1925 + .balign 4 + add a9, a12, a4 # 1925: 4a9c + l8ui a9, a9, 128 # 1927: 920980 + extui a9, a9, 6, 1 # 192a: 909604 + beqz a9, .Lbr194 # 192d: 16b90a + mov a2, a12 # 1930: 2d0c + movi a3, 0 /* 0x00000000 */ # 1932: 0c03 + call0 .Lfunc028 # 1934: 45b8ff + j .Lbr186 # 1937: c6d8ff + mov a2, a12 # 193a: 2d0c + movi a3, 0 # 193c: 0c03 + call0 .Lfunc032 # 193e: 45ccff + j .Lbr186 # 1941: 46d6ff + l32i a10, a12, 68 # 1944: a22c11 + beqz a10, .Lbr198 # 1947: 16aa0d + mov a2, a12 # 194a: 2d0c + movi a3, 0 # 194c: 0c03 + call0 .Lfunc029 # 194e: 85c6ff + j .Lbr186 # 1951: 46d2ff + l32i a11, a12, 56 # 1954: b8ec + beqz a11, .Lbr193 # 1956: 163b07 + l32i a0, a12, 64 # 1959: 022c10 + bnez a0, .Lbr193 # 195c: 56d006 + l32i a2, a12, 60 # 195f: 28fc + beqz a2, .Lbr193 # 1961: 168206 + mov a2, a12 # 1964: 2d0c + movi a3, 0 # 1966: 0c03 + call0 .Lfunc028 # 1968: 05b5ff + j .Lbr186 # 196b: c6cbff + movi a2, None # 196e: 21c4ff + l32i a2, a2, 20 # 1971: 2852 + addi a3, a12, 8 # 1973: 8b3c + l32i a2, a2, 180 # 1975: 22222d + movi a4, 0 # 1978: 0c04 + l32i a2, a2, 4 # 197a: 2812 + call0 None # 197c: 01c2ffc0 + # 1980: 0000 + beqz a2, .Lbr200 # 1982: 16520c + mov a2, a12 # 1985: 2d0c + movi a3, 0 # 1987: 0c03 + call0 .Lfunc026 # 1989: 05a0ff + j .Lbr186 # 198c: 86c3ff + mov a2, a12 # 198f: 2d0c + movi a3, 0 # 1991: 0c03 + call0 .Lfunc019 # 1993: 4581ff + j .Lbr186 # 1996: 06c1ff + l32i a2, a12, 0x194 # 1999: 222c65 + call0 None # 199c: 01bbffc0 + # 19a0: 0000 + beqz a2, .Lbr186 # 19a2: 1682ef + mov a2, a12 # 19a5: 2d0c + movi a3, 0 # 19a7: 0c03 + call0 .Lfunc025 # 19a9: 8597ff + j .Lbr186 # 19ac: 86bbff + mov a2, a12 # 19af: 2d0c + movi a3, 0 # 19b1: 0c03 + call0 .Lfunc023 # 19b3: 458eff + j .Lbr186 # 19b6: 06b9ff + mov a2, a12 # 19b9: 2d0c + movi a3, 0 # 19bb: 0c03 + call0 .Lfunc018 # 19bd: c576ff + j .Lbr186 # 19c0: 86b6ff + mov a2, a12 # 19c3: 2d0c + movi a3, 0 # 19c5: 0c03 + call0 .Lfunc020 # 19c7: 8581ff + j .Lbr186 # 19ca: 06b4ff +.Lbr193: l32i a3, a12, 44 # 19cd: 38bc + blti a3, 5, .Lbr196 # 19cf: a65334 + mov a2, a12 # 19d2: 2d0c + movi a3, 0 # 19d4: 0c03 + call0 .Lfunc019 # 19d6: 057dff + j .Lbr186 # 19d9: 46b0ff +.Lbr194: l32i a4, a12, 56 # 19dc: 48ec + beqz a4, .Lbr195 # 19de: 9c64 + l32i a5, a12, 64 # 19e0: 522c10 + bnez a5, .Lbr195 # 19e3: dc15 + l32i a6, a12, 60 # 19e5: 68fc + beqz a6, .Lbr195 # 19e7: 8cd6 + l32i a7, a12, 68 # 19e9: 722c11 + beqz a7, .Lbr195 # 19ec: 8c87 + mov a2, a12 # 19ee: 2d0c + movi a3, 0 /* 0x00000000 */ # 19f0: 0c03 + call0 .Lfunc033 # 19f2: c5dbff + j .Lbr186 # 19f5: 46a9ff +.Lbr195: l32i a8, a12, 44 # 19f8: 88bc + blti a8, 5, .Lbr197 # 19fa: a65818 + mov a2, a12 # 19fd: 2d0c + movi a3, 0 /* 0x00000000 */ # 19ff: 0c03 + call0 .Lfunc019 # 1a01: 457aff + j .Lbr186 # 1a04: 86a5ff +.Lbr196: l32i a9, a12, 52 # 1a07: 98dc + beqz a9, .Lbr186 # 1a09: 1619e9 + mov a2, a12 # 1a0c: 2d0c + movi a3, 0 # 1a0e: 0c03 + call0 .Lfunc026 # 1a10: 8597ff + j .Lbr186 # 1a13: c6a1ff +.Lbr197: l32i a10, a12, 52 # 1a16: a8dc + beqz a10, .Lbr186 # 1a18: 162ae8 + mov a2, a12 # 1a1b: 2d0c + movi a3, 0 /* 0x00000000 */ # 1a1d: 0c03 + call0 .Lfunc032 # 1a1f: 45beff + j .Lbr186 # 1a22: 069eff +.Lbr198: l32i a11, a12, 56 # 1a25: b8ec + beqz a11, .Lbr199 # 1a27: 9c1b + l32i a0, a12, 64 # 1a29: 022c10 + bnez a0, .Lbr199 # 1a2c: ccc0 + l32i a2, a12, 60 # 1a2e: 28fc + beqz a2, .Lbr199 # 1a30: 8c82 + mov a2, a12 # 1a32: 2d0c + movi a3, 0 # 1a34: 0c03 + call0 .Lfunc028 # 1a36: 45a8ff + j .Lbr186 # 1a39: 4698ff +.Lbr199: l32i a3, a12, 52 # 1a3c: 38dc + beqz a3, .Lbr186 # 1a3e: 16c3e5 + mov a2, a12 # 1a41: 2d0c + movi a3, 0 # 1a43: 0c03 + call0 .Lfunc026 # 1a45: 4594ff + j .Lbr186 # 1a48: 8694ff +.Lbr200: mov a2, a12 # 1a4b: 2d0c + movi a3, 0 # 1a4d: 0c03 + call0 .Lfunc019 # 1a4f: 8575ff + j .Lbr186 # 1a52: 0692ff + + .balign 4 +# Function @ .irom0.text+0x1a58 + .balign 4 +.Lfunc036: movi a7, 254 /* 0x000000fe */ # 1a58: 72a0fe + movi a6, 244 /* 0x000000f4 */ # 1a5b: 62a0f4 + beqz a3, .Lbr201 # 1a5e: 8c23 + l32i a3, a2, 20 /* [arg0+0x14] */ # 1a60: 3852 + beqz a3, .Lbr202 # 1a62: 8ce3 +.Lbr201: add a5, a2, a6 /* arg0+0xf4 */ # 1a64: 6a52 + l8ui a4, a5, 128 /* [arg0+0x174] */ # 1a66: 420580 + movi a8, 1 /* 0x00000001 */ # 1a69: 0c18 + and a4, a4, a7 # 1a6b: 704410 + or a4, a4, a8 # 1a6e: 804420 + s8i a4, a5, 128 /* a4 -> [arg0+0x174] */ # 1a71: 424580 +.Lbr202: movi a5, 0 /* 0x00000000 */ # 1a74: 0c05 + l32i a8, a2, 24 /* [arg0+0x18] */ # 1a76: 8862 + s32i a5, a2, 20 /* 0x00000000 -> [arg0+0x14] */ # 1a78: 5952 + beqz a8, .Lbr203 # 1a7a: 8c98 + add a10, a2, a6 /* arg0+0xf4 */ # 1a7c: 6aa2 + l8ui a9, a10, 128 /* [arg0+0x174] */ # 1a7e: 920a80 + and a9, a9, a7 # 1a81: 709910 + s8i a9, a10, 128 /* a9 -> [arg0+0x174] */ # 1a84: 924a80 +.Lbr203: s32i a5, a2, 48 /* 0x00000000 -> [arg0+0x30] */ # 1a87: 59c2 + ret /* arg0 */ # 1a89: 0df0 + + .literal_position # 1a8c: 01ac0f00 + # 1a90: 00000000 + # 1a94: 00000000 + # 1a98: 00000000 + # 1a9c: 00000000 + # 1aa0: 00000000 + +# Function @ .irom0.text+0x1aa4 +# Local variables/stack: +# (local0): word @ -0x60 +# (local1): word @ -0x5c +# (local2): word[14] @ -0x58 +# (local3): byte @ -0x20 +# (local4): byte[3] @ -0x1f +# (local5): word @ -0x1c +# (local6): word @ -0x18 +# (local7): word @ -0x14 +# (local8): word @ -0x10 +# (local9): word[3] @ -0xc + .balign 4 +.Lfunc037: addi sp, sp, -96 /* (local0) */ # 1aa4: 12c1a0 + s32i a14, sp, 84 /* a14 -> [(local9)] */ # 1aa7: e26115 + s32i a13, sp, 80 /* a13 -> [(local8)] */ # 1aaa: d26114 + s32i a12, sp, 76 /* a12 -> [(local7)] */ # 1aad: c26113 + s32i a0, sp, 72 /* a0 -> [(local6)] */ # 1ab0: 026112 + mov a12, a2 /* arg0 */ # 1ab3: cd02 + movi a0, 1 /* 0x00000001 */ # 1ab5: 0c10 + l32i a13, a2, 4 /* [arg0+0x4] */ # 1ab7: d812 + beqz a3, .Lbr204 # 1ab9: 8c33 + l32i a2, a2, 20 /* [arg0+0x14] */ # 1abb: 2852 + beqi a2, 1, .Lbr205 # 1abd: 261213 +.Lbr204: movi a4, 244 /* 0x000000f4 */ # 1ac0: 42a0f4 + add a4, a12, a4 /* arg0+0xf4 */ # 1ac3: 4a4c + l8ui a3, a4, 128 /* [arg0+0x174] */ # 1ac5: 320480 + movi a5, 254 /* 0x000000fe */ # 1ac8: 52a0fe + and a3, a3, a5 # 1acb: 503310 + or a3, a3, a0 # 1ace: 003320 + s8i a3, a4, 128 /* a3 -> [arg0+0x174] */ # 1ad1: 324480 +.Lbr205: l32i a5, a12, 48 /* [arg0+0x30] */ # 1ad4: 58cc + s32i a0, a12, 20 /* 0x00000001 -> [arg0+0x14] */ # 1ad6: 095c + addi a5, a5, 1 /* [arg0+0x30]+0x1 */ # 1ad8: 1b55 + s32i a5, a12, 48 /* [arg0+0x30]+0x1 -> [arg0+0x30] */ # 1ada: 59cc + blti a5, 5, .Lbr206 # 1adc: a65502 + j .Lbr211 # 1adf: 863000 +.Lbr206: l32i a6, a12, 0x18c /* [arg0+0x18c] */ # 1ae2: 622c63 + movi a14, 0 /* 0x00000000 */ # 1ae5: 0c0e + bnei a6, 1, .Lbr207 # 1ae7: 661602 + s32i a14, a12, 0x15c /* 0x00000000 -> [arg0+0x15c] */ # 1aea: e26c57 +.Lbr207: s32i a14, a12, 52 /* 0x00000000 -> [arg0+0x34] */ # 1aed: e9dc + addi a2, sp, 16 /* (FP)-0x50 */ # 1aef: 22c110 + movi a3, 0 /* 0x00000000 */ # 1af2: 0c03 + movi a4, 8 /* 0x00000008 */ # 1af4: 0c84 + call0 memset # 1af6: 01e6ffc0 + # 1afa: 0000 + l32i a7, a12, 0 /* [arg0] */ # 1afc: 780c + l32i a0, a13, 24 /* [[arg0+0x4]+0x18] */ # 1afe: 086d + l32i a7, a7, 72 /* [[arg0]+0x48] */ # 1b00: 722712 + slli a0, a0, 5 # 1b03: b00011 + add a0, a13, a0 # 1b06: 0a0d + addi a0, a0, 72 # 1b08: 02c048 + beqz a7, .Lbr208 # 1b0b: 8cf7 + addi a2, sp, 32 /* (FP)-0x40 */ # 1b0d: 22c120 + l32i a3, a13, 20 /* [[arg0+0x4]+0x14] */ # 1b10: 385d + call0 os_get_random # 1b12: 01e0ffc0 + # 1b16: 0000 + bltz a2, .Lbr211 # 1b18: 969208 + addi a0, sp, 32 /* (FP)-0x40 */ # 1b1b: 02c120 +.Lbr208: l32i a8, a12, 0x18c /* [arg0+0x18c] */ # 1b1e: 822c63 + s32i a0, sp, 68 /* a0 -> [(local5)] */ # 1b21: 026111 + bnei a8, 2, .Lbr209 # 1b24: 66283f + mov a2, a12 /* arg0 */ # 1b27: 2d0c + call0 .Lfunc030 # 1b29: 45abff + l32i a3, a13, 20 /* [[arg0+0x4]+0x14] */ # 1b2c: 385d + add a2, a3, a2 # 1b2e: 2a23 + addi a2, a2, 8 # 1b30: 8b22 + call0 malloc # 1b32: 01d9ffc0 + # 1b36: 0000 + mov a14, a2 # 1b38: ed02 + beqz a2, .Lbr211 # 1b3a: 167206 + l32i a6, sp, 68 /* [(local5)] */ # 1b3d: 622111 + movi a3, 0x000fac01 # 1b40: 31d3ff + l32i a4, a13, 24 /* [[arg0+0x4]+0x18] */ # 1b43: 486d + movi a5, 0 /* 0x00000000 */ # 1b45: 0c05 + s8i a5, sp, 65 /* 0x00 -> [(local4)] */ # 1b47: 524141 + extui a4, a4, 0, 2 # 1b4a: 404014 + s8i a4, sp, 64 /* a4 -> [(local3)] */ # 1b4d: 424140 + movi a5, 2 /* 0x00000002 */ # 1b50: 0c25 + addi a4, sp, 64 /* (local3) */ # 1b52: 42c140 + l32i a7, a13, 20 /* [[arg0+0x4]+0x14] */ # 1b55: 785d + call0 wpa_add_kde # 1b57: 01d1ffc0 + # 1b5b: 0000 + mov a3, a2 # 1b5d: 3d02 + mov a2, a12 /* arg0 */ # 1b5f: 2d0c + call0 .Lfunc031 # 1b61: 05a8ff + j .Lbr210 # 1b64: 460100 +.Lbr209: l32i a2, a13, 20 /* [[arg0+0x4]+0x14] */ # 1b67: 285d + mov a14, a0 # 1b69: ed00 + add a2, a2, a0 # 1b6b: 0a22 +.Lbr210: movi a3, 1 /* 0x00000001 */ # 1b6d: 0c13 + l32i a7, a12, 248 /* [arg0+0xf8] */ # 1b6f: 722c3e + movi a5, 960 /* 0x000003c0 */ # 1b72: 52a3c0 + movi a4, 896 /* 0x00000380 */ # 1b75: 42a380 + sub a9, a2, a14 # 1b78: e092c0 + movi a6, 168 /* 0x000000a8 */ # 1b7b: 62a0a8 + add a6, a13, a6 /* [arg0+0x4]+0xa8 */ # 1b7e: 6a6d + l32i a2, a12, 0 /* [arg0] */ # 1b80: 280c + moveqz a4, a5, a7 # 1b82: 704583 + s32i a9, sp, 0 /* a9 -> [(local0)] */ # 1b85: 9901 + addi a5, sp, 16 /* (FP)-0x50 */ # 1b87: 52c110 + mov a7, a14 # 1b8a: 7d0e + l32i a8, a13, 24 /* [[arg0+0x4]+0x18] */ # 1b8c: 886d + s32i a3, sp, 8 /* 0x00000001 -> [(local2)] */ # 1b8e: 3921 + s32i a8, sp, 4 /* [[arg0+0x4]+0x18] -> [(local1)] */ # 1b90: 8911 + mov a3, a12 /* arg0 */ # 1b92: 3d0c + call0 .Lfunc016 # 1b94: c534ff + l32i a10, a12, 0x18c /* [arg0+0x18c] */ # 1b97: a22c63 + bnei a10, 2, .Lbr211 # 1b9a: 662a07 + mov a2, a14 # 1b9d: 2d0e + call0 free # 1b9f: 01c0ffc0 + # 1ba3: 0000 +.Lbr211: l32i a12, sp, 76 /* [(local7)] */ # 1ba5: c22113 + l32i a13, sp, 80 /* [(local8)] */ # 1ba8: d22114 + l32i a14, sp, 84 /* [(local9)] */ # 1bab: e22115 + l32i a0, sp, 72 /* [(local6)] */ # 1bae: 022112 + addi sp, sp, 96 /* (top of frame) */ # 1bb1: 12c160 + ret # 1bb4: 0df0 + + .balign 4 +# Function @ .irom0.text+0x1bb8 + .balign 4 +.Lfunc038: movi a5, 1 /* 0x00000001 */ # 1bb8: 0c15 + movi a8, 2 /* 0x00000002 */ # 1bba: 0c28 + beqz a3, .Lbr212 # 1bbc: 8c33 + l32i a3, a2, 20 /* [arg0+0x14] */ # 1bbe: 3852 + beqi a3, 2, .Lbr213 # 1bc0: 262313 +.Lbr212: movi a6, 244 /* 0x000000f4 */ # 1bc3: 62a0f4 + add a6, a2, a6 /* arg0+0xf4 */ # 1bc6: 6a62 + l8ui a4, a6, 128 /* [arg0+0x174] */ # 1bc8: 420680 + movi a7, 254 /* 0x000000fe */ # 1bcb: 72a0fe + and a4, a4, a7 # 1bce: 704410 + or a4, a4, a5 # 1bd1: 504420 + s8i a4, a6, 128 /* a4 -> [arg0+0x174] */ # 1bd4: 424680 +.Lbr213: s32i a8, a2, 20 /* 0x00000002 -> [arg0+0x14] */ # 1bd7: 8952 + movi a6, 0 /* 0x00000000 */ # 1bd9: 0c06 + l32i a7, a2, 72 /* [arg0+0x48] */ # 1bdb: 722212 + s32i a6, a2, 56 /* 0x00000000 -> [arg0+0x38] */ # 1bde: 69e2 + beqz a7, .Lbr214 # 1be0: 8c67 + l32i a10, a2, 4 /* [arg0+0x4] */ # 1be2: a812 + l32i a9, a10, 12 /* [[arg0+0x4]+0xc] */ # 1be4: 983a + addi a9, a9, -1 /* [[arg0+0x4]+0xc]-0x1 */ # 1be6: 0b99 + s32i a9, a10, 12 /* [[arg0+0x4]+0xc]-0x1 -> [[arg0+0x4]+0xc] */ # 1be8: 993a +.Lbr214: s32i a6, a2, 72 /* 0x00000000 -> [arg0+0x48] */ # 1bea: 626212 + s32i a6, a2, 48 /* 0x00000000 -> [arg0+0x30] */ # 1bed: 69c2 + s32i a5, a2, 0x164 /* 0x00000001 -> [arg0+0x164] */ # 1bef: 526259 + ret /* arg0 */ # 1bf2: 0df0 + +# Function @ .irom0.text+0x1bf4 + .balign 4 +.Lfunc039: movi a5, 1 /* 0x00000001 */ # 1bf4: 0c15 + movi a8, 3 /* 0x00000003 */ # 1bf6: 0c38 + beqz a3, .Lbr215 # 1bf8: 8c33 + l32i a3, a2, 20 /* [arg0+0x14] */ # 1bfa: 3852 + beqi a3, 3, .Lbr216 # 1bfc: 263313 +.Lbr215: movi a6, 244 /* 0x000000f4 */ # 1bff: 62a0f4 + add a6, a2, a6 /* arg0+0xf4 */ # 1c02: 6a62 + l8ui a4, a6, 128 /* [arg0+0x174] */ # 1c04: 420680 + movi a7, 254 /* 0x000000fe */ # 1c07: 72a0fe + and a4, a4, a7 # 1c0a: 704410 + or a4, a4, a5 # 1c0d: 504420 + s8i a4, a6, 128 /* a4 -> [arg0+0x174] */ # 1c10: 424680 +.Lbr216: l32i a7, a2, 72 /* [arg0+0x48] */ # 1c13: 722212 + s32i a8, a2, 20 /* 0x00000003 -> [arg0+0x14] */ # 1c16: 8952 + beqz a7, .Lbr217 # 1c18: 8c67 + l32i a10, a2, 4 /* [arg0+0x4] */ # 1c1a: a812 + l32i a9, a10, 12 /* [[arg0+0x4]+0xc] */ # 1c1c: 983a + addi a9, a9, -1 /* [[arg0+0x4]+0xc]-0x1 */ # 1c1e: 0b99 + s32i a9, a10, 12 /* [[arg0+0x4]+0xc]-0x1 -> [[arg0+0x4]+0xc] */ # 1c20: 993a +.Lbr217: s32i a5, a2, 40 /* 0x00000001 -> [arg0+0x28] */ # 1c22: 59a2 + movi a10, 0 /* 0x00000000 */ # 1c24: 0c0a + s32i a10, a2, 72 /* 0x00000000 -> [arg0+0x48] */ # 1c26: a26212 + ret /* arg0 */ # 1c29: 0df0 + + .balign 4 +# Function @ .irom0.text+0x1c2c +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 +.Lfunc040: addi sp, sp, -16 /* (local0) */ # 1c2c: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 1c2f: c911 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1c31: 0901 + l32i a0, a2, 24 /* [arg0+0x18] */ # 1c33: 0862 + mov a12, a2 /* arg0 */ # 1c35: cd02 + bnez a0, .Lbr218 # 1c37: dcd0 + l32i a2, a2, 0x168 /* [arg0+0x168] */ # 1c39: 22225a + bnez a2, .Lbr218 # 1c3c: dc82 + l32i a0, a12, 20 /* [arg0+0x14] */ # 1c3e: 085c + beqz a0, .Lbr220 # 1c40: ac90 + beqi a0, 1, .Lbr222 # 1c42: 261042 + addi a3, a0, -2 /* [arg0+0x14]-0x2 */ # 1c45: 32c0fe + beqz a3, .Lbr225 # 1c48: 166307 + bnei a0, 3, .Lbr219 # 1c4b: 663015 + mov a2, a12 /* arg0 */ # 1c4e: 2d0c + movi a3, 0 /* 0x00000000 */ # 1c50: 0c03 + call0 .Lfunc036 # 1c52: 45e0ff + j .Lbr219 # 1c55: c60200 +.Lbr218: mov a2, a12 /* arg0 */ # 1c58: 2d0c + movi a3, 0 /* 0x00000000 */ # 1c5a: 0c03 + call0 .Lfunc036 # 1c5c: 85dfff + movi a4, 0 /* 0x00000000 */ # 1c5f: 0c04 + s32i a4, a12, 0x168 /* 0x00000000 -> [arg0+0x168] */ # 1c61: 426c5a +.Lbr219: l32i a12, sp, 4 /* [(local1)] */ # 1c64: c811 + l32i a0, sp, 0 /* [(local0)] */ # 1c66: 0801 + addi sp, sp, 16 /* (top of frame) */ # 1c68: 12c110 + ret # 1c6b: 0df0 +.Lbr220: l32i a5, a12, 72 /* [arg0+0x48] */ # 1c6d: 522c12 + bnez a5, .Lbr221 # 1c70: cca5 + l32i a6, a12, 0x18c /* [arg0+0x18c] */ # 1c72: 622c63 + bnei a6, 1, .Lbr219 # 1c75: 6616eb + l32i a7, a12, 0x15c /* [arg0+0x15c] */ # 1c78: 722c57 + beqz a7, .Lbr219 # 1c7b: 1657fe +.Lbr221: mov a2, a12 /* arg0 */ # 1c7e: 2d0c + movi a3, 0 /* 0x00000000 */ # 1c80: 0c03 + call0 .Lfunc037 # 1c82: 05e2ff + j .Lbr219 # 1c85: c6f6ff +.Lbr222: l32i a8, a12, 56 /* [arg0+0x38] */ # 1c88: 88ec + l32i a0, a12, 48 /* [arg0+0x30] */ # 1c8a: 08cc + beqz a8, .Lbr223 # 1c8c: 9c68 + l32i a9, a12, 64 /* [arg0+0x40] */ # 1c8e: 922c10 + bnez a9, .Lbr223 # 1c91: dc19 + l32i a10, a12, 60 /* [arg0+0x3c] */ # 1c93: a8fc + bnez a10, .Lbr223 # 1c95: ccda + l32i a11, a12, 68 /* [arg0+0x44] */ # 1c97: b22c11 + beqz a11, .Lbr223 # 1c9a: 8c8b + mov a2, a12 /* arg0 */ # 1c9c: 2d0c + movi a3, 0 /* 0x00000000 */ # 1c9e: 0c03 + call0 .Lfunc038 # 1ca0: 45f1ff + j .Lbr219 # 1ca3: 46efff +.Lbr223: blti a0, 5, .Lbr224 # 1ca6: a65009 + mov a2, a12 /* arg0 */ # 1ca9: 2d0c + movi a3, 0 /* 0x00000000 */ # 1cab: 0c03 + call0 .Lfunc039 # 1cad: 45f4ff + j .Lbr219 # 1cb0: 06ecff +.Lbr224: l32i a2, a12, 52 /* [arg0+0x34] */ # 1cb3: 28dc + beqz a2, .Lbr219 # 1cb5: 16b2fa + mov a2, a12 /* arg0 */ # 1cb8: 2d0c + movi a3, 0 /* 0x00000000 */ # 1cba: 0c03 + call0 .Lfunc037 # 1cbc: 45deff + j .Lbr219 # 1cbf: 46e8ff +.Lbr225: mov a2, a12 /* arg0 */ # 1cc2: 2d0c + movi a3, 0 /* 0x00000000 */ # 1cc4: 0c03 + call0 .Lfunc036 # 1cc6: 05d9ff + j .Lbr219 # 1cc9: c6e5ff + + .literal_position # 1ccc: 28000000 + # 1cd0: 00000000 + # 1cd4: 00000000 + +# Function @ .irom0.text+0x1cd8 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word[4] @ -0x10 + .balign 4 +.Lfunc041: movi a4, 32 /* 0x00000020 */ # 1cd8: 2c04 + addi sp, sp, -32 /* (local0) */ # 1cda: 12c1e0 + s32i a0, sp, 12 /* a0 -> [(local3)] */ # 1cdd: 0931 + s32i a12, sp, 16 /* a12 -> [(local4)] */ # 1cdf: c941 + s32i a2, sp, 0 /* arg0 -> [(local0)] */ # 1ce1: 2901 + mov a12, a3 /* arg1 */ # 1ce3: cd03 + movi a2, 168 /* 0x000000a8 */ # 1ce5: 22a0a8 + add a2, a3, a2 /* arg1+0xa8 */ # 1ce8: 2a23 + s32i a2, sp, 4 /* arg1+0xa8 -> [(local1)] */ # 1cea: 2911 + addi a3, a3, 36 /* arg1+0x24 */ # 1cec: 32c324 + s32i a3, sp, 8 /* arg1+0x24 -> [(local2)] */ # 1cef: 3921 + call0 memcpy # 1cf1: 01f7ffc0 + # 1cf5: 0000 + l32i a2, sp, 8 /* [(local2)] */ # 1cf7: 2821 + movi a3, 32 /* 0x00000020 */ # 1cf9: 2c03 + call0 inc_byte_array # 1cfb: 01f6ffc0 + # 1cff: 0000 + l32i a5, sp, 4 /* [(local1)] */ # 1d01: 5811 + addi a2, a12, 72 /* arg1+0x48 */ # 1d03: 22cc48 + l32i a7, a12, 20 /* [arg1+0x14] */ # 1d06: 785c + movi a3, .Lstr003 # 1d08: 31f1ff + l32i a4, sp, 0 /* [(local0)] */ # 1d0b: 4801 + l32i a6, a12, 24 /* [arg1+0x18] */ # 1d0d: 686c + addi a4, a4, 88 /* [(local0)]+0x58 */ # 1d0f: 42c458 + slli a6, a6, 5 # 1d12: b06611 + add a6, a12, a6 # 1d15: 6a6c + addi a6, a6, 72 # 1d17: 62c648 + call0 .Lfunc014 # 1d1a: 85ccfe + l32i a5, sp, 12 /* [(local3)] */ # 1d1d: 5831 + l32i a12, sp, 16 /* [(local4)] */ # 1d1f: c841 + movi a6, -1 /* 0xffffffff */ # 1d21: 7cf6 + movi a0, 0 /* 0x00000000 */ # 1d23: 0c00 + movltz a0, a6, a2 # 1d25: 2006a3 + addi sp, sp, 32 /* (top of frame) */ # 1d28: 12c120 + mov a2, a0 # 1d2b: 2d00 + mov a0, a5 /* [(local3)] */ # 1d2d: 0d05 + ret # 1d2f: 0df0 + + .literal_position # 1d34: 00000000 + +# Function @ .irom0.text+0x1d38 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 +.Lfunc042: movi a4, 64 /* 0x00000040 */ # 1d38: 4c04 + addi sp, sp, -16 /* (local0) */ # 1d3a: 12c1f0 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 1d3d: 0911 + s32i a12, sp, 8 /* a12 -> [(local2)] */ # 1d3f: c921 + s32i a2, sp, 0 /* arg0 -> [(local0)] */ # 1d41: 2901 + mov a12, a3 /* arg1 */ # 1d43: cd03 + addi a2, a12, 104 /* arg1+0x68 */ # 1d45: 22cc68 + movi a3, 0 /* 0x00000000 */ # 1d48: 0c03 + s32i a3, a12, 200 /* 0x00000000 -> [arg1+0xc8] */ # 1d4a: 326c32 + s32i a3, a12, 68 /* 0x00000000 -> [arg1+0x44] */ # 1d4d: 326c11 + call0 memset # 1d50: 01f9ffc0 + # 1d54: 0000 + mov a3, a12 /* arg1 */ # 1d56: 3d0c + movi a0, 2 /* 0x00000002 */ # 1d58: 0c20 + movi a2, 1 /* 0x00000001 */ # 1d5a: 0c12 + s32i a2, a12, 24 /* 0x00000001 -> [arg1+0x18] */ # 1d5c: 296c + s32i a0, a12, 28 /* 0x00000002 -> [arg1+0x1c] */ # 1d5e: 097c + l32i a2, sp, 0 /* [(local0)] */ # 1d60: 2801 + call0 .Lfunc041 # 1d62: 45f7ff + l32i a12, sp, 8 /* [(local2)] */ # 1d65: c821 + l32i a0, sp, 4 /* [(local1)] */ # 1d67: 0811 + addi sp, sp, 16 /* (top of frame) */ # 1d69: 12c110 + ret # 1d6c: 0df0 + + .balign 4 +# Function @ .irom0.text+0x1d70 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 +.Lfunc043: addi sp, sp, -16 /* (local0) */ # 1d70: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1d73: 0901 + beqz a3, .Lbr226 # 1d75: 8c33 + l32i a0, a2, 4 /* [arg0+0x4] */ # 1d77: 0812 + bne a0, a3, .Lbr228 # 1d79: 379029 +.Lbr226: l32i a3, a2, 16 /* [arg0+0x10] */ # 1d7c: 3842 + movi a4, 11 /* 0x0000000b */ # 1d7e: 0cb4 + beq a3, a4, .Lbr227 # 1d80: 471307 + movi a0, 0 /* 0x00000000 */ # 1d83: 0c00 + s32i a0, a2, 72 /* 0x00000000 -> [arg0+0x48] */ # 1d85: 026212 + j .Lbr229 # 1d88: 060700 +.Lbr227: addmi a5, a2, 256 /* arg0+0x100 */ # 1d8b: 52d201 + l8ui a5, a5, 116 /* [arg0+0x174] */ # 1d8e: 520574 + srli a5, a5, 7 # 1d91: 505741 + bnez a5, .Lbr228 # 1d94: cce5 + l32i a8, a2, 4 /* [arg0+0x4] */ # 1d96: 8812 + l32i a7, a8, 12 /* [[arg0+0x4]+0xc] */ # 1d98: 7838 + movi a6, 1 /* 0x00000001 */ # 1d9a: 0c16 + addi a7, a7, 1 /* [[arg0+0x4]+0xc]+0x1 */ # 1d9c: 1b77 + s32i a7, a8, 12 /* [[arg0+0x4]+0xc]+0x1 -> [[arg0+0x4]+0xc] */ # 1d9e: 7938 + s32i a6, a2, 72 /* 0x00000001 -> [arg0+0x48] */ # 1da0: 626212 + call0 .Lfunc048 # 1da3: 451100 +.Lbr228: movi a0, 0 /* 0x00000000 */ # 1da6: 0c00 +.Lbr229: mov a2, a0 /* 0x00000000 */ # 1da8: 2d00 + l32i a0, sp, 0 /* [(local0)] */ # 1daa: 0801 + addi sp, sp, 16 /* (top of frame) */ # 1dac: 12c110 + ret /* 0x00000000 */ # 1daf: 0df0 + + .literal_position # 1db4: 701d0000 + +# Function @ .irom0.text+0x1db8 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 +.Lfunc044: movi a4, 1 /* 0x00000001 */ # 1db8: 0c14 + addi sp, sp, -16 /* (local0) */ # 1dba: 12c1f0 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 1dbd: d921 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1dbf: 0901 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 1dc1: c911 + movi a0, 0 /* 0x00000000 */ # 1dc3: 0c00 + mov a12, a3 /* arg1 */ # 1dc5: cd03 + s32i a4, a3, 200 /* 0x00000001 -> [arg1+0xc8] */ # 1dc7: 426332 + mov a13, a2 /* arg0 */ # 1dca: dd02 + s32i a4, a3, 68 /* 0x00000001 -> [arg1+0x44] */ # 1dcc: 426311 + l32i a2, a3, 28 /* [arg1+0x1c] */ # 1dcf: 2873 + l32i a3, a3, 24 /* [arg1+0x18] */ # 1dd1: 3863 + s32i a2, a12, 24 /* [arg1+0x1c] -> [arg1+0x18] */ # 1dd3: 296c + s32i a3, a12, 28 /* [arg1+0x18] -> [arg1+0x1c] */ # 1dd5: 397c + mov a2, a13 /* arg0 */ # 1dd7: 2d0d + mov a3, a12 /* arg1 */ # 1dd9: 3d0c + s32i a0, a12, 16 /* 0x00000000 -> [arg1+0x10] */ # 1ddb: 094c + call0 .Lfunc041 # 1ddd: 85efff + l32i a5, a12, 12 /* [arg1+0xc] */ # 1de0: 583c + movi a6, 0 /* 0x00000000 */ # 1de2: 0c06 + beqz a5, .Lbr230 # 1de4: 8c05 + s32i a6, a12, 12 /* 0x00000000 -> [arg1+0xc] */ # 1de6: 693c +.Lbr230: mov a4, a12 /* arg1 */ # 1de8: 4d0c + mov a2, a13 /* arg0 */ # 1dea: 2d0d + movi a3, .Lfunc043 # 1dec: 31f2ff + call0 wpa_auth_for_each_sta # 1def: 050000 + l32i a12, sp, 4 /* [(local1)] */ # 1df2: c811 + l32i a13, sp, 8 /* [(local2)] */ # 1df4: d821 + l32i a0, sp, 0 /* [(local0)] */ # 1df6: 0801 + addi sp, sp, 16 /* (top of frame) */ # 1df8: 12c110 + ret # 1dfb: 0df0 + + .literal_position # 1e00: 3c000000 + # 1e04: 00000000 + +# Function @ .irom0.text+0x1e08 +# Local variables/stack: +# (local0): word[4] @ -0x20 +# (local1): word @ -0x10 +# (local2): word @ -0xc +# (local3): word[2] @ -0x8 + .balign 4 +.Lfunc045: addi sp, sp, -32 /* (local0) */ # 1e08: 12c1e0 + s32i a3, sp, 16 /* arg1 -> [(local1)] */ # 1e0b: 3941 + s32i a12, sp, 24 /* a12 -> [(local3)] */ # 1e0d: c961 + s32i a0, sp, 20 /* a0 -> [(local2)] */ # 1e0f: 0951 + mov a12, a2 /* arg0 */ # 1e11: cd02 + l32i a2, a2, 16 /* [arg0+0x10] */ # 1e13: 2842 + call0 wpa_cipher_to_alg # 1e15: 01fbffc0 + # 1e19: 0000 + movi a5, .Label001 # 1e1b: 51f9ff + mov a4, a2 # 1e1e: 4d02 + l32i a7, sp, 16 /* [(local1)] */ # 1e20: 7841 + mov a2, a12 /* arg0 */ # 1e22: 2d0c + l32i a3, a7, 4 /* [[(local1)]+0x4] */ # 1e24: 3817 + l32i a6, a7, 24 /* [[(local1)]+0x18] */ # 1e26: 6867 + l32i a9, a7, 20 /* [[(local1)]+0x14] */ # 1e28: 9857 + slli a8, a6, 5 # 1e2a: b08611 + s32i a9, sp, 0 /* [[(local1)]+0x14] -> [(local0)] */ # 1e2d: 9901 + add a7, a7, a8 # 1e2f: 8a77 + addi a7, a7, 72 # 1e31: 72c748 + call0 .Lfunc002 # 1e34: 4520fe + l32i a10, sp, 20 /* [(local2)] */ # 1e37: a851 + l32i a12, sp, 24 /* [(local3)] */ # 1e39: c861 + movi a11, -1 /* 0xffffffff */ # 1e3b: 7cfb + movi a0, 0 /* 0x00000000 */ # 1e3d: 0c00 + movltz a0, a11, a2 # 1e3f: 200ba3 + addi sp, sp, 32 /* (top of frame) */ # 1e42: 12c120 + mov a2, a0 # 1e45: 2d00 + mov a0, a10 /* [(local2)] */ # 1e47: 0d0a + ret # 1e49: 0df0 + + .balign 4 +# Function @ .irom0.text+0x1e4c +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 +.Lfunc046: movi a4, 1 /* 0x00000001 */ # 1e4c: 0c14 + addi sp, sp, -16 /* (local0) */ # 1e4e: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1e51: 0901 + s32i a4, a3, 200 /* 0x00000001 -> [arg1+0xc8] */ # 1e53: 426332 + movi a0, 2 /* 0x00000002 */ # 1e56: 0c20 + s32i a0, a3, 68 /* 0x00000002 -> [arg1+0x44] */ # 1e58: 026311 + call0 .Lfunc045 # 1e5b: c5faff + movi a6, 0 /* 0x00000000 */ # 1e5e: 0c06 + l32i a5, sp, 0 /* [(local0)] */ # 1e60: 5801 + movi a0, -1 /* 0xffffffff */ # 1e62: 7cf0 + addi sp, sp, 16 /* (top of frame) */ # 1e64: 12c110 + movgez a0, a6, a2 # 1e67: 2006b3 + mov a2, a0 # 1e6a: 2d00 + mov a0, a5 /* [(local0)] */ # 1e6c: 0d05 + ret # 1e6e: 0df0 + +# Function @ .irom0.text+0x1e70 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 +.Lfunc047: addi sp, sp, -16 /* (local0) */ # 1e70: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1e73: 0901 + l32i a0, a3, 8 /* [arg1+0x8] */ # 1e75: 0823 + beqz a0, .Lbr232 # 1e77: 8c80 + call0 .Lfunc042 # 1e79: c5ebff +.Lbr231: l32i a0, sp, 0 /* [(local0)] */ # 1e7c: 0801 + addi sp, sp, 16 /* (top of frame) */ # 1e7e: 12c110 + ret # 1e81: 0df0 +.Lbr232: l32i a0, a3, 68 /* [arg1+0x44] */ # 1e83: 022311 + bnez a0, .Lbr233 # 1e86: cc80 + l32i a4, a3, 32 /* [arg1+0x20] */ # 1e88: 4883 + beqz a4, .Lbr233 # 1e8a: 8c44 + call0 .Lfunc046 # 1e8c: c5fbff + j .Lbr231 # 1e8f: 46faff +.Lbr233: bnei a0, 2, .Lbr234 # 1e92: 662009 + l32i a5, a3, 16 /* [arg1+0x10] */ # 1e95: 5843 + beqz a5, .Lbr234 # 1e97: 8c45 + call0 .Lfunc044 # 1e99: c5f1ff + j .Lbr231 # 1e9c: 06f7ff +.Lbr234: bnei a0, 1, .Lbr231 # 1e9f: 6610d9 + l32i a6, a3, 12 /* [arg1+0xc] */ # 1ea2: 6833 + l32i a7, a3, 16 /* [arg1+0x10] */ # 1ea4: 7843 + bnez a6, .Lbr235 # 1ea6: cc46 + call0 .Lfunc046 # 1ea8: 05faff + j .Lbr231 # 1eab: 46f3ff +.Lbr235: beqz a7, .Lbr231 # 1eae: 16a7fc + call0 .Lfunc044 # 1eb1: 45f0ff + j .Lbr231 # 1eb4: 06f1ff + + .balign 4 +# Function @ .irom0.text+0x1eb8 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 +.Lfunc048: addi sp, sp, -16 /* (local0) */ # 1eb8: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1ebb: 0901 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 1ebd: c911 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 1ebf: d921 + mov a12, a2 /* arg0 */ # 1ec1: cd02 + beqz a2, .Lbr240 # 1ec3: 16b207 + movi a13, 244 /* 0x000000f4 */ # 1ec6: d2a0f4 + add a13, a2, a13 /* arg0+0xf4 */ # 1ec9: dad2 + l8ui a0, a13, 128 /* [arg0+0x174] */ # 1ecb: 020d80 + movi a2, 2 /* 0x00000002 */ # 1ece: 0c22 + bbsi a0, 1, .Lbr240 # 1ed0: 17e06e + movi a3, 253 /* 0x000000fd */ # 1ed3: 32a0fd + and a0, a0, a3 # 1ed6: 300010 + or a0, a0, a2 # 1ed9: 200020 + s8i a0, a13, 128 /* a0 -> [arg0+0x174] */ # 1edc: 024d80 +.Lbr236: bbsi a0, 2, .Lbr237 # 1edf: 27e027 + movi a8, 254 /* 0x000000fe */ # 1ee2: 82a0fe + and a8, a0, a8 # 1ee5: 808010 + s8i a8, a13, 128 /* a8 -> [arg0+0x174] */ # 1ee8: 824d80 + l32i a7, a12, 0 /* [arg0] */ # 1eeb: 780c + mov a2, a12 /* arg0 */ # 1eed: 2d0c + l32i a7, a7, 0 /* [[arg0]] */ # 1eef: 7807 + movi a6, 0 /* 0x00000000 */ # 1ef1: 0c06 + s32i a6, a7, 200 /* 0x00000000 -> [[[arg0]]+0xc8] */ # 1ef3: 626732 + call0 .Lfunc034 # 1ef6: 4599ff + l8ui a0, a13, 128 /* [arg0+0x174] */ # 1ef9: 020d80 + bbsi a0, 2, .Lbr237 # 1efc: 27e00a + mov a2, a12 /* arg0 */ # 1eff: 2d0c + call0 .Lfunc040 # 1f01: 85d2ff + l8ui a0, a13, 128 /* [arg0+0x174] */ # 1f04: 020d80 + bbci a0, 2, .Lbr239 # 1f07: 27601d +.Lbr237: movi a9, 253 /* 0x000000fd */ # 1f0a: 92a0fd + and a9, a0, a9 # 1f0d: 909010 + s8i a9, a13, 128 /* a9 -> [arg0+0x174] */ # 1f10: 924d80 + bbci a9, 2, .Lbr240 # 1f13: 27692b + mov a2, a12 /* arg0 */ # 1f16: 2d0c + call0 .Lfunc009 # 1f18: 8556fe + movi a2, 1 /* 0x00000001 */ # 1f1b: 0c12 +.Lbr238: l32i a12, sp, 4 /* [(local1)] */ # 1f1d: c811 + l32i a13, sp, 8 /* [(local2)] */ # 1f1f: d821 + l32i a0, sp, 0 /* [(local0)] */ # 1f21: 0801 + addi sp, sp, 16 /* (top of frame) */ # 1f23: 12c110 + ret # 1f26: 0df0 +.Lbr239: l32i a2, a12, 0 /* [arg0] */ # 1f28: 280c + l32i a3, a12, 4 /* [arg0+0x4] */ # 1f2a: 381c + call0 .Lfunc047 # 1f2c: 05f4ff + l8ui a0, a13, 128 /* [arg0+0x174] */ # 1f2f: 020d80 + bbsi a0, 0, .Lbr236 # 1f32: 07e0a9 + l32i a10, a12, 0 /* [arg0] */ # 1f35: a80c + l32i a10, a10, 0 /* [[arg0]] */ # 1f37: a80a + l32i a10, a10, 200 /* [[[arg0]]+0xc8] */ # 1f39: a22a32 + bnez a10, .Lbr236 # 1f3c: 56faf9 + j .Lbr237 # 1f3f: c6f1ff +.Lbr240: movi a2, 0 /* 0x00000000 */ # 1f42: 0c02 + j .Lbr238 # 1f44: 46f5ff + + .section .rodata, "a", @progbits + + .word 0x00000064 # 0: 64000000 + .word 0x000001f4 # 4: f4010000 + .word 0x000003e8 # 8: e8030000 + .byte 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00 + + .section .rodata.str1.4, "MSa", @progbits, 1 + +.Lstr001: .asciz "Init Counter" # 0: 496e6974 + # 4: 20436f75 + # 8: 6e746572 + # c: 00 + .balign 4 +.Lstr002: .asciz "Pairwise key expansion" # 10: 50616972 + # 14: 77697365 + # 18: 206b6579 + # 1c: 20657870 + # 20: 616e7369 + # 24: 6f6e00 + .balign 4 +.Lstr003: .asciz "Group key expansion" # 28: 47726f75 + # 2c: 70206b65 + # 30: 79206578 + # 34: 70616e73 + # 38: 696f6e00 +.Label001: .byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00 diff --git a/binary_sdk/libwpa_stage1/wpa_auth_ie.S b/binary_sdk/libwpa_stage1/wpa_auth_ie.S new file mode 100644 index 0000000..ea0bb68 --- /dev/null +++ b/binary_sdk/libwpa_stage1/wpa_auth_ie.S @@ -0,0 +1,666 @@ + + .section .irom0.text, "ax", @progbits + + .literal_position # 0: 00000000 + # 4: 00000000 + +# Function @ .irom0.text+0x8 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 +.Lfunc001: movi a4, -35 /* 0xffffffdd */ # 8: 42afdd + movi a5, 0 /* 0x00000000 */ # b: 0c05 + addi sp, sp, -16 /* (local0) */ # d: 12c1f0 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 10: d921 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 12: 0901 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 14: c911 + movi a0, 80 /* 0x00000050 */ # 16: 5c00 + mov a12, a3 /* arg1 */ # 18: cd03 + s8i a5, a3, 7 /* 0x00 -> [arg1+0x7] */ # 1a: 524307 + s8i a5, a3, 2 /* 0x00 -> [arg1+0x2] */ # 1d: 524302 + mov a13, a2 /* arg0 */ # 20: dd02 + s8i a4, a3, 0 /* 0xdd -> [arg1] */ # 22: 424300 + movi a2, 1 /* 0x00000001 */ # 25: 0c12 + s8i a2, a3, 6 /* 0x01 -> [arg1+0x6] */ # 27: 224306 + s8i a2, a3, 5 /* 0x01 -> [arg1+0x5] */ # 2a: 224305 + movi a3, -14 /* 0xfffffff2 */ # 2d: 7c23 + s8i a0, a12, 3 /* 0x50 -> [arg1+0x3] */ # 2f: 024c03 + s8i a3, a12, 4 /* 0xf2 -> [arg1+0x4] */ # 32: 324c04 + l32i a3, a13, 12 /* [arg0+0xc] */ # 35: 383d + call0 wpa_cipher_to_suite # 37: 01f2ffc0 + # 3b: 0000 + beqz a2, .Lbr005 # 3d: 169208 + s8i a2, a12, 11 /* a2 -> [arg1+0xb] */ # 40: 224c0b + extui a6, a2, 24, 8 # 43: 206875 + extui a7, a2, 16, 16 # 46: 2070f5 + srli a8, a2, 8 # 49: 208841 + s8i a8, a12, 10 /* a8 -> [arg1+0xa] */ # 4c: 824c0a + s8i a7, a12, 9 /* a7 -> [arg1+0x9] */ # 4f: 724c09 + s8i a6, a12, 8 /* a6 -> [arg1+0x8] */ # 52: 624c08 + addi a2, a12, 14 /* arg1+0xe */ # 55: eb2c + l32i a3, a13, 8 /* [arg0+0x8] */ # 57: 382d + call0 wpa_cipher_put_suites # 59: 01eaffc0 + # 5d: 0000 + movi a0, 80 /* 0x00000050 */ # 5f: 5c00 + movi a3, -14 /* 0xfffffff2 */ # 61: 7c23 + movi a5, 0 /* 0x00000000 */ # 63: 0c05 + beqz a2, .Lbr005 # 65: 161206 + s8i a2, a12, 12 /* a2 -> [arg1+0xc] */ # 68: 224c0c + srli a9, a2, 8 # 6b: 209841 + addx4 a8, a2, a12 # 6e: c082a0 + addi a6, a8, 16 # 71: 62c810 + s8i a9, a12, 13 /* a9 -> [arg1+0xd] */ # 74: 924c0d + l32i a7, a13, 4 /* [arg0+0x4] */ # 77: 781d + movi a9, 2 /* 0x00000002 */ # 79: 0c29 + bbci a7, 0, .Lbr001 # 7b: 076717 + movi a2, 1 /* 0x00000001 */ # 7e: 0c12 + addi a6, a8, 20 # 80: 62c814 + s8i a3, a8, 18 # 83: 324812 + s8i a0, a8, 17 # 86: 024811 + s8i a5, a8, 16 # 89: 524810 + movi a10, 1 /* 0x00000001 */ # 8c: 0c1a + s8i a10, a8, 19 # 8e: a24813 + l32i a7, a13, 4 /* [arg0+0x4] */ # 91: 781d + j .Lbr002 # 93: 460000 +.Lbr001: movi a2, 0 /* 0x00000000 */ # 96: 0c02 +.Lbr002: bbci a7, 1, .Lbr003 # 98: 17670f + addi a2, a2, 1 # 9b: 1b22 + s8i a5, a6, 0 # 9d: 524600 + s8i a0, a6, 1 # a0: 024601 + s8i a3, a6, 2 # a3: 324602 + s8i a9, a6, 3 # a6: 924603 + addi a6, a6, 4 # a9: 4b66 +.Lbr003: beqz a2, .Lbr005 # ab: 9cb2 + s8i a2, a8, 14 # ad: 22480e + srli a13, a2, 8 # b0: 20d841 + s8i a13, a8, 15 # b3: d2480f + sub a2, a6, a12 # b6: c026c0 + addi a11, a2, -2 # b9: b2c2fe + s8i a11, a12, 1 /* a11 -> [arg1+0x1] */ # bc: b24c01 +.Lbr004: l32i a12, sp, 4 /* [(local1)] */ # bf: c811 + l32i a13, sp, 8 /* [(local2)] */ # c1: d821 + l32i a0, sp, 0 /* [(local0)] */ # c3: 0801 + addi sp, sp, 16 /* (top of frame) */ # c5: 12c110 + ret # c8: 0df0 +.Lbr005: movi a2, -1 /* 0xffffffff */ # ca: 7cf2 + j .Lbr004 # cc: c6fbff + + .literal_position # d0: 00000000 + # d4: 00000000 + # d8: 00000000 + +# Function @ .irom0.text+0xdc +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word[4] @ -0x10 + .balign 4 + .global wpa_write_rsn_ie + .type wpa_write_rsn_ie, @function +wpa_write_rsn_ie: + addi sp, sp, -32 /* (local0) */ # dc: 12c1e0 + s32i a4, sp, 0 /* arg2 -> [(local0)] */ # df: 4901 + s32i a12, sp, 8 /* a12 -> [(local2)] */ # e1: c921 + s32i a13, sp, 12 /* a13 -> [(local3)] */ # e3: d931 + s32i a14, sp, 16 /* a14 -> [(local4)] */ # e5: e941 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # e7: 0911 + mov a14, a5 /* arg3 */ # e9: ed05 + movi a0, 0 /* 0x00000000 */ # eb: 0c00 + mov a13, a3 /* arg1 */ # ed: dd03 + mov a12, a2 /* arg0 */ # ef: cd02 + movi a3, 48 /* 0x00000030 */ # f1: 3c03 + movi a2, 1 /* 0x00000001 */ # f3: 0c12 + s8i a0, a13, 3 /* 0x00 -> [arg1+0x3] */ # f5: 024d03 + s8i a2, a13, 2 /* 0x01 -> [arg1+0x2] */ # f8: 224d02 + s8i a3, a13, 0 /* 0x30 -> [arg1] */ # fb: 324d00 + movi a2, 2 /* 0x00000002 */ # fe: 0c22 + l32i a3, a12, 12 /* [arg0+0xc] */ # 100: 383c + call0 wpa_cipher_to_suite # 102: 01f3ffc0 + # 106: 0000 + beqz a2, .Lbr011 # 108: 16520d + s8i a2, a13, 7 /* a2 -> [arg1+0x7] */ # 10b: 224d07 + extui a4, a2, 24, 8 # 10e: 204875 + extui a5, a2, 16, 16 # 111: 2050f5 + srli a6, a2, 8 # 114: 206841 + s8i a6, a13, 6 /* a6 -> [arg1+0x6] */ # 117: 624d06 + s8i a5, a13, 5 /* a5 -> [arg1+0x5] */ # 11a: 524d05 + s8i a4, a13, 4 /* a4 -> [arg1+0x4] */ # 11d: 424d04 + addi a2, a13, 10 /* arg1+0xa */ # 120: ab2d + l32i a3, a12, 32 /* [arg0+0x20] */ # 122: 388c + call0 rsn_cipher_put_suites # 124: 01ecffc0 + # 128: 0000 + movi a0, 0 /* 0x00000000 */ # 12a: 0c00 + movi a10, 1 /* 0x00000001 */ # 12c: 0c1a + beqz a2, .Lbr011 # 12e: 16f20a + movi a8, -84 /* 0xffffffac */ # 131: 82afac + movi a9, 15 /* 0x0000000f */ # 134: 0cf9 + movi a11, 2 /* 0x00000002 */ # 136: 0c2b + addx4 a5, a2, a13 # 138: d052a0 + s8i a2, a13, 8 /* a2 -> [arg1+0x8] */ # 13b: 224d08 + srli a7, a2, 8 # 13e: 207841 + s8i a7, a13, 9 /* a7 -> [arg1+0x9] */ # 141: 724d09 + l32i a7, a12, 4 /* [arg0+0x4] */ # 144: 781c + addi a2, a5, 12 # 146: cb25 + bbci a7, 0, .Lbr006 # 148: 076715 + movi a3, 1 /* 0x00000001 */ # 14b: 0c13 + addi a2, a5, 16 # 14d: 22c510 + s8i a0, a5, 12 # 150: 02450c + s8i a9, a5, 13 # 153: 92450d + s8i a8, a5, 14 # 156: 82450e + s8i a10, a5, 15 # 159: a2450f + l32i a7, a12, 4 /* [arg0+0x4] */ # 15c: 781c + j .Lbr007 # 15e: 460000 +.Lbr006: movi a3, 0 /* 0x00000000 */ # 161: 0c03 +.Lbr007: bbci a7, 1, .Lbr008 # 163: 17670f + addi a3, a3, 1 # 166: 1b33 + s8i a9, a2, 1 # 168: 924201 + s8i a8, a2, 2 # 16b: 824202 + s8i a11, a2, 3 # 16e: b24203 + s8i a0, a2, 0 # 171: 024200 + addi a2, a2, 4 # 174: 4b22 +.Lbr008: beqz a3, .Lbr011 # 176: 167306 + movi a9, 12 /* 0x0000000c */ # 179: 0cc9 + movi a4, 0 /* 0x00000000 */ # 17b: 0c04 + movi a8, 1 /* 0x00000001 */ # 17d: 0c18 + s8i a3, a5, 10 # 17f: 32450a + srli a7, a3, 8 # 182: 307841 + s8i a7, a5, 11 # 185: 72450b + l32i a6, a12, 36 /* [arg0+0x24] */ # 188: 689c + movi a11, 512 /* 0x00000200 */ # 18a: b2a200 + moveqz a8, a4, a6 # 18d: 608483 + l32i a4, a12, 44 /* [arg0+0x2c] */ # 190: 48bc + or a11, a8, a11 # 192: b0b820 + movnez a8, a11, a4 # 195: 408b93 + l32i a11, a12, 48 /* [arg0+0x30] */ # 198: b8cc + or a9, a8, a9 # 19a: 909820 + movnez a8, a9, a11 # 19d: b08993 + s8i a8, a2, 0 # 1a0: 824200 + srli a8, a8, 8 # 1a3: 808841 + s8i a8, a2, 1 # 1a6: 824201 + addi a2, a2, 2 # 1a9: 2b22 + beqz a14, .Lbr009 # 1ab: 9cce + l32i a8, sp, 0 /* [(local0)] */ # 1ad: 8801 + addi a12, a2, 18 # 1af: c2c212 + add a8, a13, a8 # 1b2: 8a8d + bltu a8, a12, .Lbr011 # 1b4: c73829 + mov a3, a14 /* arg3 */ # 1b7: 3d0e + s8i a0, a2, 1 # 1b9: 024201 + s8i a10, a2, 0 # 1bc: a24200 + movi a4, 16 /* 0x00000010 */ # 1bf: 1c04 + addi a2, a2, 2 # 1c1: 2b22 + call0 memcpy # 1c3: 01c5ffc0 + # 1c7: 0000 + mov a2, a12 # 1c9: 2d0c +.Lbr009: sub a2, a2, a13 # 1cb: d022c0 + addi a9, a2, -2 # 1ce: 92c2fe + s8i a9, a13, 1 /* a9 -> [arg1+0x1] */ # 1d1: 924d01 +.Lbr010: l32i a12, sp, 8 /* [(local2)] */ # 1d4: c821 + l32i a13, sp, 12 /* [(local3)] */ # 1d6: d831 + l32i a14, sp, 16 /* [(local4)] */ # 1d8: e841 + l32i a0, sp, 4 /* [(local1)] */ # 1da: 0811 + addi sp, sp, 32 /* (top of frame) */ # 1dc: 12c120 + ret # 1df: 0df0 +.Lbr011: movi a2, -1 /* 0xffffffff */ # 1e1: 7cf2 + j .Lbr010 # 1e3: 46fbff + + .literal_position # 1e8: 00000000 + # 1ec: 00000000 + # 1f0: 00000000 + +# Function @ .irom0.text+0x1f4 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 + .global wpa_auth_gen_wpa_ie + .type wpa_auth_gen_wpa_ie, @function +wpa_auth_gen_wpa_ie: + movi a3, 144 /* 0x00000090 */ # 1f4: 32a090 + sub sp, sp, a3 /* (FP)-0x90 */ # 1f7: 3011c0 + s32i a12, sp, 132 /* a12 -> [(local1)] */ # 1fa: c26121 + s32i a0, sp, 128 /* a0 -> [(local0)] */ # 1fd: 026120 + mov a12, a2 /* arg0 */ # 200: cd02 + l32i a2, a2, 4 /* [arg0+0x4] */ # 202: 2812 + s32i a13, sp, 136 /* a13 -> [(local2)] */ # 204: d26122 + bbci a2, 1, .Lbr012 # 207: 176215 + addi a2, a12, 4 /* arg0+0x4 */ # 20a: 4b2c + mov a3, sp /* (FP)-0x90 */ # 20c: 3d01 + movi a4, 128 /* 0x00000080 */ # 20e: 42a080 + movi a5, 0 /* 0x00000000 */ # 211: 0c05 + call0 wpa_write_rsn_ie # 213: 050000 + bltz a2, .Lbr016 # 216: 96c204 + add a13, a2, sp # 219: 1ad2 + l32i a2, a12, 4 /* [arg0+0x4] */ # 21b: 281c + j .Lbr013 # 21d: 460000 +.Lbr012: mov a13, sp /* (FP)-0x90 */ # 220: dd01 +.Lbr013: bbci a2, 0, .Lbr014 # 222: 076213 + addi a2, a12, 4 /* arg0+0x4 */ # 225: 4b2c + mov a3, a13 # 227: 3d0d + movi a5, 128 /* 0x00000080 */ # 229: 52a080 + sub a4, sp, a13 # 22c: d041c0 + add a4, a4, a5 # 22f: 5a44 + call0 .Lfunc001 # 231: 45ddff + bltz a2, .Lbr016 # 234: 96e202 + add a13, a2, a13 # 237: dad2 +.Lbr014: l32i a2, a12, 80 /* [arg0+0x50] */ # 239: 222c14 + call0 free # 23c: 01ebffc0 + # 240: 0000 + sub a13, a13, sp # 242: 10ddc0 + mov a2, a13 # 245: 2d0d + call0 malloc # 247: 01e9ffc0 + # 24b: 0000 + s32i a2, a12, 80 /* a2 -> [arg0+0x50] */ # 24d: 226c14 + bnez a2, .Lbr015 # 250: cc32 + movi a2, -1 /* 0xffffffff */ # 252: 7cf2 + j .Lbr016 # 254: 860300 +.Lbr015: mov a3, sp /* (FP)-0x90 */ # 257: 3d01 + mov a4, a13 # 259: 4d0d + call0 memcpy # 25b: 01e5ffc0 + # 25f: 0000 + s32i a13, a12, 84 /* a13 -> [arg0+0x54] */ # 261: d26c15 + movi a2, 0 /* 0x00000000 */ # 264: 0c02 +.Lbr016: l32i a12, sp, 132 /* [(local1)] */ # 266: c22121 + l32i a13, sp, 136 /* [(local2)] */ # 269: d22122 + movi a3, 144 /* 0x00000090 */ # 26c: 32a090 + l32i a0, sp, 128 /* [(local0)] */ # 26f: 022120 + add sp, sp, a3 /* (top of frame) */ # 272: 3a11 + ret # 274: 0df0 + + .literal_position # 278: 00000000 + # 27c: 00000000 + +# Function @ .irom0.text+0x280 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word @ -0x10 +# (local5): word[3] @ -0xc + .balign 4 + .global wpa_add_kde + .type wpa_add_kde, @function +wpa_add_kde: + addi sp, sp, -32 /* (local0) */ # 280: 12c1e0 + s32i a6, sp, 20 /* arg4 -> [(local5)] */ # 283: 6951 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 285: 0901 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 287: d921 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 289: c911 + s32i a15, sp, 16 /* a15 -> [(local4)] */ # 28b: f941 + s32i a14, sp, 12 /* a14 -> [(local3)] */ # 28d: e931 + mov a15, a6 /* arg4 */ # 28f: fd06 + mov a14, a5 /* arg3 */ # 291: ed05 + mov a12, a2 /* arg0 */ # 293: cd02 + mov a13, a7 /* arg5 */ # 295: dd07 + mov a2, a3 /* arg1 */ # 297: 2d03 + movi a7, -35 /* 0xffffffdd */ # 299: 72afdd + s8i a7, a12, 0 /* 0xdd -> [arg0] */ # 29c: 724c00 + s8i a2, a12, 5 /* arg1 -> [arg0+0x5] */ # 29f: 224c05 + mov a3, a4 /* arg2 */ # 2a2: 3d04 + add a0, a14, a13 # 2a4: da0e + extui a5, a2, 16, 16 # 2a6: 2050f5 + extui a6, a2, 24, 8 # 2a9: 206875 + s8i a6, a12, 2 /* a6 -> [arg0+0x2] */ # 2ac: 624c02 + s8i a5, a12, 3 /* a5 -> [arg0+0x3] */ # 2af: 524c03 + addi a0, a0, 4 # 2b2: 4b00 + srli a4, a2, 8 # 2b4: 204841 + s8i a4, a12, 4 /* a4 -> [arg0+0x4] */ # 2b7: 424c04 + s8i a0, a12, 1 /* a0 -> [arg0+0x1] */ # 2ba: 024c01 + mov a4, a14 /* arg3 */ # 2bd: 4d0e + addi a2, a12, 6 /* arg0+0x6 */ # 2bf: 6b2c + call0 memcpy # 2c1: 01edffc0 + # 2c5: 0000 + add a12, a12, a14 # 2c7: eacc + addi a12, a12, 6 # 2c9: 6bcc + beqz a15, .Lbr017 # 2cb: 8ccf + mov a3, a15 /* arg4 */ # 2cd: 3d0f + mov a2, a12 # 2cf: 2d0c + mov a4, a13 /* arg5 */ # 2d1: 4d0d + call0 memcpy # 2d3: 01eaffc0 + # 2d7: 0000 + add a12, a12, a13 # 2d9: dacc +.Lbr017: l32i a0, sp, 0 /* [(local0)] */ # 2db: 0801 + l32i a13, sp, 8 /* [(local2)] */ # 2dd: d821 + l32i a14, sp, 12 /* [(local3)] */ # 2df: e831 + mov a2, a12 # 2e1: 2d0c + l32i a15, sp, 16 /* [(local4)] */ # 2e3: f841 + l32i a12, sp, 4 /* [(local1)] */ # 2e5: c811 + addi sp, sp, 32 /* (top of frame) */ # 2e7: 12c120 + ret # 2ea: 0df0 + + .literal_position # 2ec: 00000000 + # 2f0: 00000000 + # 2f4: 00000000 + # 2f8: 00000000 + # 2fc: 00000000 + # 300: 00000000 + # 304: 00000000 + # 308: 00000000 + # 30c: 00000000 + +# Function @ .irom0.text+0x310 +# Local variables/stack: +# (local0): word @ -0x3c +# (local1): word @ -0x38 +# (local2): word[5] @ -0x34 +# (local3): word @ -0x20 +# (local4): word @ -0x1c +# (local5): word @ -0x18 +# (local6): word @ -0x14 +# (local7): word @ -0x10 +# (local8): word @ -0xc +# (local9): word @ -0x8 +# (local10): word @ -0x4 + .balign 4 + .global wpa_validate_wpa_ie + .type wpa_validate_wpa_ie, @function +wpa_validate_wpa_ie: + addi sp, sp, -64 /* (FP)-0x40 */ # 310: 12c1c0 + s32i a15, sp, 60 /* a15 -> [(local10)] */ # 313: f9f1 + s32i a0, sp, 44 /* a0 -> [(local6)] */ # 315: 09b1 + s32i a13, sp, 52 /* a13 -> [(local8)] */ # 317: d9d1 + s32i a12, sp, 48 /* a12 -> [(local7)] */ # 319: c9c1 + s32i a14, sp, 56 /* a14 -> [(local9)] */ # 31b: e9e1 + mov a12, a3 /* arg1 */ # 31d: cd03 + mov a14, a4 /* arg2 */ # 31f: ed04 + mov a13, a2 /* arg0 */ # 321: dd02 + mov a2, a5 /* arg3 */ # 323: 2d05 + beqz a13, .Lbr018 # 325: 9cdd + beqz a3, .Lbr018 # 327: 9cb3 + beqz a4, .Lbr019 # 329: 9ce4 + beqz a5, .Lbr019 # 32b: 9cc5 + l32i a5, a13, 4 /* [arg0+0x4] */ # 32d: 581d + movi a15, 2 /* 0x00000002 */ # 32f: 0c2f + l8ui a6, a4, 0 /* [arg2] */ # 331: 620400 + movi a3, 1 /* 0x00000001 */ # 334: 0c13 + addi a6, a6, -48 /* [arg2]-0x30 */ # 336: 62c6d0 + moveqz a3, a15, a6 # 339: 603f83 + mov a0, a3 # 33c: 0d03 + bany a5, a3, .Lbr021 # 33e: 37851a + movi a2, 10 /* 0x0000000a */ # 341: 0ca2 + j .Lbr020 # 343: 860100 +.Lbr018: movi a2, 5 /* 0x00000005 */ # 346: 0c52 + j .Lbr020 # 348: 460000 +.Lbr019: movi a2, 1 /* 0x00000001 */ # 34b: 0c12 +.Lbr020: l32i a12, sp, 48 /* [(local7)] */ # 34d: c8c1 + l32i a13, sp, 52 /* [(local8)] */ # 34f: d8d1 + l32i a14, sp, 56 /* [(local9)] */ # 351: e8e1 + l32i a15, sp, 60 /* [(local10)] */ # 353: f8f1 + l32i a0, sp, 44 /* [(local6)] */ # 355: 08b1 + addi sp, sp, 64 /* (top of frame) */ # 357: 12c140 + ret # 35a: 0df0 +.Lbr021: s32i a0, sp, 32 /* a0 -> [(local3)] */ # 35c: 0981 + s32i a2, sp, 40 /* arg3 -> [(local5)] */ # 35e: 29a1 + bnei a3, 2, .Lbr022 # 360: 662324 + mov a2, a4 /* arg2 */ # 363: 2d04 + l32i a3, sp, 40 /* [(local5)] */ # 365: 38a1 + mov a4, sp /* (FP)-0x40 */ # 367: 4d01 + call0 wpa_parse_wpa_ie_rsn # 369: 01e0ffc0 + # 36d: 0000 + s32i a2, sp, 36 /* a2 -> [(local4)] */ # 36f: 2991 + l32i a3, sp, 4 /* [(local0)] */ # 371: 3811 + movi a2, 2 /* 0x00000002 */ # 373: 0c22 + call0 wpa_cipher_to_suite # 375: 01deffc0 + # 379: 0000 + movi a2, 2 /* 0x00000002 */ # 37b: 0c22 + l32i a3, sp, 8 /* [(local1)] */ # 37d: 3821 + call0 wpa_cipher_to_suite # 37f: 01ddffc0 + # 383: 0000 + j .Lbr023 # 385: 460800 +.Lbr022: mov a2, a4 /* arg2 */ # 388: 2d04 + l32i a3, sp, 40 /* [(local5)] */ # 38a: 38a1 + mov a4, sp /* (FP)-0x40 */ # 38c: 4d01 + call0 wpa_parse_wpa_ie_wpa # 38e: 01daffc0 + # 392: 0000 + s32i a2, sp, 36 /* a2 -> [(local4)] */ # 394: 2991 + l32i a3, sp, 4 /* [(local0)] */ # 396: 3811 + movi a2, 1 /* 0x00000001 */ # 398: 0c12 + call0 wpa_cipher_to_suite # 39a: 01d8ffc0 + # 39e: 0000 + movi a2, 1 /* 0x00000001 */ # 3a0: 0c12 + l32i a3, sp, 8 /* [(local1)] */ # 3a2: 3821 + call0 wpa_cipher_to_suite # 3a4: 01d7ffc0 + # 3a8: 0000 +.Lbr023: l32i a7, sp, 36 /* [(local4)] */ # 3aa: 7891 + l32i a9, sp, 8 /* [(local1)] */ # 3ac: 9821 + bnez a7, .Lbr019 # 3ae: 5697f9 + l32i a8, a13, 16 /* [arg0+0x10] */ # 3b1: 884d + l32i a11, sp, 12 /* [(local2)] */ # 3b3: b831 + beq a8, a9, .Lbr024 # 3b5: 971804 + movi a2, 2 /* 0x00000002 */ # 3b8: 0c22 + j .Lbr020 # 3ba: c6e3ff +.Lbr024: l32i a10, a13, 8 /* [arg0+0x8] */ # 3bd: a82d + and a0, a10, a11 # 3bf: b00a10 + bany a10, a11, .Lbr025 # 3c2: b78a04 + movi a2, 4 /* 0x00000004 */ # 3c5: 0c42 + j .Lbr020 # 3c7: 86e0ff +.Lbr025: l32i a2, sp, 32 /* [(local3)] */ # 3ca: 2881 + bbci a0, 0, .Lbr026 # 3cc: 076007 + movi a0, 1 /* 0x00000001 */ # 3cf: 0c10 + s32i a0, a12, 0x194 /* 0x00000001 -> [arg1+0x194] */ # 3d1: 026c65 + j .Lbr027 # 3d4: 860000 +.Lbr026: s32i a15, a12, 0x194 /* 0x00000002 -> [arg1+0x194] */ # 3d7: f26c65 +.Lbr027: l32i a0, sp, 4 /* [(local0)] */ # 3da: 0811 + bnei a2, 2, .Lbr032 # 3dc: 662248 + l32i a9, a13, 36 /* [arg0+0x24] */ # 3df: 989d +.Lbr028: and a8, a9, a0 # 3e1: 008910 + bnone a9, a0, .Lbr034 # 3e4: 070959 + movi a0, 8 /* 0x00000008 */ # 3e7: 0c80 + bbsi a8, 3, .Lbr029 # 3e9: 37e806 + movi a0, 64 /* 0x00000040 */ # 3ec: 4c00 + bbsi a8, 6, .Lbr029 # 3ee: 67e801 + mov a0, a15 /* 0x00000002 */ # 3f1: 0d0f +.Lbr029: s32i a0, a12, 0x190 /* a0 -> [arg1+0x190] */ # 3f3: 026c64 + l8ui a3, a14, 0 /* [arg2] */ # 3f6: 320e00 + movi a4, 48 /* 0x00000030 */ # 3f9: 3c04 + beq a3, a4, .Lbr030 # 3fb: 471301 + movi a15, 1 /* 0x00000001 */ # 3fe: 0c1f +.Lbr030: l32i a2, a12, 0x184 /* [arg1+0x184] */ # 400: 222c61 + s32i a15, a12, 0x18c /* a15 -> [arg1+0x18c] */ # 403: f26c63 + beqz a2, .Lbr031 # 406: 8c62 + l32i a6, sp, 40 /* [(local5)] */ # 408: 68a1 + l32i a5, a12, 0x188 /* [arg1+0x188] */ # 40a: 522c62 + bgeu a5, a6, .Lbr033 # 40d: 67b51c +.Lbr031: call0 free # 410: 01bdffc0 + # 414: 0000 + l32i a2, sp, 40 /* [(local5)] */ # 416: 28a1 + call0 malloc # 418: 01bcffc0 + # 41c: 0000 + s32i a2, a12, 0x184 /* a2 -> [arg1+0x184] */ # 41e: 226c61 + bnez a2, .Lbr033 # 421: cc82 + movi a2, 6 /* 0x00000006 */ # 423: 0c62 + j .Lbr020 # 425: 06c9ff +.Lbr032: l32i a9, a13, 12 /* [arg0+0xc] */ # 428: 983d + j .Lbr028 # 42a: c6ecff +.Lbr033: mov a3, a14 /* arg2 */ # 42d: 3d0e + l32i a4, sp, 40 /* [(local5)] */ # 42f: 48a1 + call0 memcpy # 431: 01b6ffc0 + # 435: 0000 + movi a2, 0 /* 0x00000000 */ # 437: 0c02 + l32i a7, sp, 40 /* [(local5)] */ # 439: 78a1 + s32i a7, a12, 0x188 /* [(local5)] -> [arg1+0x188] */ # 43b: 726c62 + j .Lbr020 # 43e: c6c2ff +.Lbr034: movi a2, 3 /* 0x00000003 */ # 441: 0c32 + j .Lbr020 # 443: 86c1ff + + .literal_position # 448: 01f25000 + # 44c: 04ac0f00 + # 450: 01ac0f00 + # 454: 03ac0f00 + +# Function @ .irom0.text+0x458 + .balign 4 +.Lfunc002: l8ui a7, a2, 1 /* [arg0+0x1] */ # 458: 720201 + l8ui a5, a2, 5 /* [arg0+0x5] */ # 45b: 520205 + bnez a7, .Lbr035 # 45e: cc27 + movi a2, 1 /* 0x00000001 */ # 460: 0c12 + ret /* 0x00000001 */ # 462: 0df0 +.Lbr035: bltui a7, 6, .Lbr036 # 464: b66737 + l8ui a8, a2, 2 /* [arg0+0x2] */ # 467: 820202 + l8ui a9, a2, 3 /* [arg0+0x3] */ # 46a: 920203 + l8ui a6, a2, 4 /* [arg0+0x4] */ # 46d: 620204 + slli a9, a9, 16 # 470: 009911 + slli a6, a6, 8 # 473: 806611 + slli a8, a8, 24 # 476: 808801 + or a5, a5, a6 # 479: 605520 + movi a6, 0x0050f201 # 47c: 61f3ff + or a8, a8, a9 # 47f: 908820 + or a5, a5, a8 # 482: 805520 + bne a5, a6, .Lbr036 # 485: 679516 + l8ui a8, a2, 6 /* [arg0+0x6] */ # 488: 820206 + bnei a8, 1, .Lbr036 # 48b: 661810 + l8ui a9, a2, 7 /* [arg0+0x7] */ # 48e: 920207 + bnez a9, .Lbr036 # 491: cca9 + s32i a2, a4, 0 /* arg0 -> [arg2] */ # 493: 2904 + l8ui a10, a2, 1 /* [arg0+0x1] */ # 495: a20201 + addi a10, a10, 2 /* [arg0+0x1]+0x2 */ # 498: 2baa + s32i a10, a4, 4 /* [arg0+0x1]+0x2 -> [arg2+0x4] */ # 49a: a914 + j .Lbr039 # 49c: c61f00 +.Lbr036: addi a11, a2, 5 /* arg0+0x5 */ # 49f: 5bb2 + bgeu a11, a3, .Lbr037 # 4a1: 37bb2f + movi a3, 19 /* 0x00000013 */ # 4a4: 1c33 + bgeu a3, a7, .Lbr037 # 4a6: 77b32a + l8ui a5, a2, 5 /* [arg0+0x5] */ # 4a9: 520205 + l8ui a8, a2, 2 /* [arg0+0x2] */ # 4ac: 820202 + l8ui a9, a2, 3 /* [arg0+0x3] */ # 4af: 920203 + l8ui a6, a2, 4 /* [arg0+0x4] */ # 4b2: 620204 + slli a9, a9, 16 # 4b5: 009911 + slli a6, a6, 8 # 4b8: 806611 + slli a8, a8, 24 # 4bb: 808801 + or a5, a5, a6 # 4be: 605520 + movi a6, 0x000fac04 # 4c1: 61e2ff + or a8, a8, a9 # 4c4: 908820 + or a5, a5, a8 # 4c7: 805520 + bne a5, a6, .Lbr037 # 4ca: 679506 + addi a7, a2, 6 /* arg0+0x6 */ # 4cd: 6b72 + s32i a7, a4, 16 /* arg0+0x6 -> [arg2+0x10] */ # 4cf: 7944 + j .Lbr039 # 4d1: 861200 +.Lbr037: bltui a7, 7, .Lbr039 # 4d4: b67747 + movi a8, 0x000fac01 # 4d7: 81deff + l8ui a6, a2, 3 /* [arg0+0x3] */ # 4da: 620203 + l8ui a5, a2, 4 /* [arg0+0x4] */ # 4dd: 520204 + l8ui a3, a2, 5 /* [arg0+0x5] */ # 4e0: 320205 + slli a5, a5, 8 # 4e3: 805511 + or a3, a3, a5 # 4e6: 503320 + l8ui a5, a2, 2 /* [arg0+0x2] */ # 4e9: 520202 + slli a6, a6, 16 # 4ec: 006611 + slli a5, a5, 24 # 4ef: 805501 + or a5, a5, a6 # 4f2: 605520 + or a3, a3, a5 # 4f5: 503320 + bne a3, a8, .Lbr038 # 4f8: 87930e + addi a7, a2, 6 /* arg0+0x6 */ # 4fb: 6b72 + s32i a7, a4, 20 /* arg0+0x6 -> [arg2+0x14] */ # 4fd: 7954 + l8ui a6, a2, 1 /* [arg0+0x1] */ # 4ff: 620201 + addi a6, a6, -4 /* [arg0+0x1]-0x4 */ # 502: 62c6fc + s32i a6, a4, 24 /* [arg0+0x1]-0x4 -> [arg2+0x18] */ # 505: 6964 + j .Lbr039 # 507: 060500 +.Lbr038: bltui a7, 7, .Lbr039 # 50a: b67711 + movi a8, 0x000fac03 # 50d: 81d1ff + bne a3, a8, .Lbr039 # 510: 87930b + addi a10, a2, 6 /* arg0+0x6 */ # 513: 6ba2 + s32i a10, a4, 28 /* arg0+0x6 -> [arg2+0x1c] */ # 515: a974 + l8ui a9, a2, 1 /* [arg0+0x1] */ # 517: 920201 + addi a9, a9, -4 /* [arg0+0x1]-0x4 */ # 51a: 92c9fc + s32i a9, a4, 32 /* [arg0+0x1]-0x4 -> [arg2+0x20] */ # 51d: 9984 +.Lbr039: movi a2, 0 /* 0x00000000 */ # 51f: 0c02 + ret /* 0x00000000 */ # 521: 0df0 + + .literal_position # 524: 00000000 + +# Function @ .irom0.text+0x528 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word @ -0x10 +# (local5): word @ -0xc +# (local6): word[2] @ -0x8 + .balign 4 + .global wpa_parse_kde_ies + .type wpa_parse_kde_ies, @function +wpa_parse_kde_ies: + addi sp, sp, -32 /* (local0) */ # 528: 12c1e0 + s32i a15, sp, 24 /* a15 -> [(local6)] */ # 52b: f961 + s32i a0, sp, 8 /* a0 -> [(local2)] */ # 52d: 0921 + s32i a14, sp, 20 /* a14 -> [(local5)] */ # 52f: e951 + s32i a13, sp, 16 /* a13 -> [(local4)] */ # 531: d941 + s32i a12, sp, 12 /* a12 -> [(local3)] */ # 533: c931 + mov a13, a4 /* arg2 */ # 535: dd04 + mov a12, a2 /* arg0 */ # 537: cd02 + mov a14, a3 /* arg1 */ # 539: ed03 + mov a2, a4 /* arg2 */ # 53b: 2d04 + movi a3, 0 /* 0x00000000 */ # 53d: 0c03 + movi a4, 36 /* 0x00000024 */ # 53f: 2c44 + call0 memset # 541: 01f8ffc0 + # 545: 0000 + s32i a13, sp, 4 /* arg2 -> [(local1)] */ # 547: d911 + blti a14, 2, .Lbr047 # 549: a62e70 + movi a15, 48 /* 0x00000030 */ # 54c: 3c0f + movi a2, 0 /* 0x00000000 */ # 54e: 0c02 + add a13, a12, a14 # 550: eadc + movi a14, 221 /* 0x000000dd */ # 552: e2a0dd + addi a0, a13, -1 # 555: 0b0d + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 557: 0901 +.Lbr040: l8ui a0, a12, 0 # 559: 020c00 + l8ui a3, a12, 1 # 55c: 320c01 + bne a0, a14, .Lbr041 # 55f: e7900c + l32i a3, sp, 0 /* [(local0)] */ # 562: 3801 + beq a3, a12, .Lbr046 # 564: c71346 + l8ui a3, a12, 1 # 567: 320c01 + bnez a3, .Lbr041 # 56a: cc13 + j .Lbr046 # 56c: 860f00 +.Lbr041: add a3, a3, a12 # 56f: ca33 + addi a3, a3, 2 # 571: 2b33 + bltu a13, a3, .Lbr045 # 573: 373d35 + bne a0, a15, .Lbr044 # 576: f7901b + l32i a5, sp, 4 /* [(local1)] */ # 579: 5811 + s32i a12, a5, 8 /* a12 -> [[(local1)]+0x8] */ # 57b: c925 + l8ui a4, a12, 1 # 57d: 420c01 + addi a4, a4, 2 # 580: 2b44 + s32i a4, a5, 12 /* a4 -> [[(local1)]+0xc] */ # 582: 4935 +.Lbr042: l8ui a3, a12, 1 # 584: 320c01 + add a3, a3, a12 # 587: ca33 + addi a3, a3, 2 # 589: 2b33 +.Lbr043: mov a12, a3 # 58b: cd03 + addi a4, a3, 1 # 58d: 1b43 + bltu a4, a13, .Lbr040 # 58f: d734c6 + j .Lbr046 # 592: 060600 +.Lbr044: bne a0, a14, .Lbr043 # 595: e790f2 + mov a2, a12 # 598: 2d0c + mov a3, a13 # 59a: 3d0d + l32i a4, sp, 4 /* [(local1)] */ # 59c: 4811 + call0 .Lfunc002 # 59e: 85ebff + bltz a2, .Lbr046 # 5a1: 969200 + blti a2, 1, .Lbr042 # 5a4: a612dc + movi a2, 0 /* 0x00000000 */ # 5a7: 0c02 + j .Lbr046 # 5a9: 460000 +.Lbr045: movi a2, -1 /* 0xffffffff */ # 5ac: 7cf2 +.Lbr046: l32i a12, sp, 12 /* [(local3)] */ # 5ae: c831 + l32i a13, sp, 16 /* [(local4)] */ # 5b0: d841 + l32i a14, sp, 20 /* [(local5)] */ # 5b2: e851 + l32i a15, sp, 24 /* [(local6)] */ # 5b4: f861 + l32i a0, sp, 8 /* [(local2)] */ # 5b6: 0821 + addi sp, sp, 32 /* (top of frame) */ # 5b8: 12c120 + ret # 5bb: 0df0 +.Lbr047: movi a2, 0 /* 0x00000000 */ # 5bd: 0c02 + j .Lbr046 # 5bf: c6faff + + .balign 4 +# Function @ .irom0.text+0x5c4 + .balign 4 + .global wpa_auth_uses_mfp + .type wpa_auth_uses_mfp, @function +wpa_auth_uses_mfp: + beqz a2, .Lbr048 # 5c4: 8c92 + addmi a2, a2, 256 /* arg0+0x100 */ # 5c6: 22d201 + l8ui a2, a2, 116 /* [arg0+0x174] */ # 5c9: 220274 + extui a2, a2, 4, 1 # 5cc: 202404 + ret # 5cf: 0df0 +.Lbr048: movi a2, 0 /* 0x00000000 */ # 5d1: 0c02 + ret /* 0x00000000 */ # 5d3: 0df0 diff --git a/binary_sdk/libwpa_stage1/wpa_common.S b/binary_sdk/libwpa_stage1/wpa_common.S new file mode 100644 index 0000000..24e01b2 --- /dev/null +++ b/binary_sdk/libwpa_stage1/wpa_common.S @@ -0,0 +1,878 @@ + + .section .irom0.text, "ax", @progbits + + .literal_position # 0: 00ac0f00 + # 4: 01ac0f00 + # 8: 02ac0f00 + # c: 04ac0f00 + # 10: 05ac0f00 + +# Function @ .irom0.text+0x14 + .balign 4 +.Lfunc001: movi a3, 0x000fac00 # 14: 31fbff + l8ui a7, a2, 1 /* [arg0+0x1] */ # 17: 720201 + l8ui a6, a2, 2 /* [arg0+0x2] */ # 1a: 620202 + l8ui a5, a2, 3 /* [arg0+0x3] */ # 1d: 520203 + slli a6, a6, 8 # 20: 806611 + or a5, a5, a6 # 23: 605520 + l8ui a6, a2, 0 /* [arg0] */ # 26: 620200 + slli a7, a7, 16 # 29: 007711 + slli a6, a6, 24 # 2c: 806601 + or a6, a6, a7 # 2f: 706620 + or a5, a5, a6 # 32: 605520 + bne a5, a3, .Lbr001 # 35: 379503 + movi a2, 1 /* 0x00000001 */ # 38: 0c12 + ret /* 0x00000001 */ # 3a: 0df0 +.Lbr001: movi a7, 0x000fac01 # 3c: 71f2ff + movi a8, 0x000fac02 # 3f: 81f2ff + bne a5, a7, .Lbr002 # 42: 779504 + movi a2, 128 /* 0x00000080 */ # 45: 22a080 + ret /* 0x00000080 */ # 48: 0df0 +.Lbr002: bne a5, a8, .Lbr003 # 4a: 879503 + movi a2, 2 /* 0x00000002 */ # 4d: 0c22 + ret /* 0x00000002 */ # 4f: 0df0 +.Lbr003: movi a9, 0x000fac04 # 51: 91eeff + movi a10, 0 /* 0x00000000 */ # 54: 0c0a + beq a5, a9, .Lbr004 # 56: 97150d + movi a11, 0x000fac05 # 59: b1edff + movi a2, 256 /* 0x00000100 */ # 5c: 22a100 + sub a11, a5, a11 # 5f: b0b5c0 + movnez a2, a10, a11 # 62: b02a93 + ret # 65: 0df0 +.Lbr004: movi a2, 8 /* 0x00000008 */ # 67: 0c82 + ret /* 0x00000008 */ # 69: 0df0 + + .literal_position # 6c: 01ac0f00 + # 70: 02ac0f00 + +# Function @ .irom0.text+0x74 + .balign 4 +.Lfunc002: movi a3, 0x000fac01 # 74: 31feff + l8ui a7, a2, 1 /* [arg0+0x1] */ # 77: 720201 + l8ui a6, a2, 2 /* [arg0+0x2] */ # 7a: 620202 + l8ui a5, a2, 3 /* [arg0+0x3] */ # 7d: 520203 + slli a6, a6, 8 # 80: 806611 + or a5, a5, a6 # 83: 605520 + l8ui a6, a2, 0 /* [arg0] */ # 86: 620200 + slli a7, a7, 16 # 89: 007711 + slli a6, a6, 24 # 8c: 806601 + or a6, a6, a7 # 8f: 706620 + or a5, a5, a6 # 92: 605520 + beq a5, a3, .Lbr005 # 95: 37150e + movi a7, 0 /* 0x00000000 */ # 98: 0c07 + movi a8, 0x000fac02 # 9a: 81f5ff + movi a2, 2 /* 0x00000002 */ # 9d: 0c22 + sub a8, a5, a8 # 9f: 8085c0 + movnez a2, a7, a8 # a2: 802793 + ret # a5: 0df0 +.Lbr005: movi a2, 1 /* 0x00000001 */ # a7: 0c12 + ret /* 0x00000001 */ # a9: 0df0 + + .literal_position # ac: 00f25000 + # b0: 01f25000 + # b4: 02f25000 + # b8: 04f25000 + # bc: 05f25000 + +# Function @ .irom0.text+0xc0 + .balign 4 +.Lfunc003: movi a3, 0x0050f200 # c0: 31fbff + l8ui a7, a2, 1 /* [arg0+0x1] */ # c3: 720201 + l8ui a6, a2, 2 /* [arg0+0x2] */ # c6: 620202 + l8ui a5, a2, 3 /* [arg0+0x3] */ # c9: 520203 + slli a6, a6, 8 # cc: 806611 + or a5, a5, a6 # cf: 605520 + l8ui a6, a2, 0 /* [arg0] */ # d2: 620200 + slli a7, a7, 16 # d5: 007711 + slli a6, a6, 24 # d8: 806601 + or a6, a6, a7 # db: 706620 + or a5, a5, a6 # de: 605520 + bne a5, a3, .Lbr006 # e1: 379503 + movi a2, 1 /* 0x00000001 */ # e4: 0c12 + ret /* 0x00000001 */ # e6: 0df0 +.Lbr006: movi a7, 0x0050f201 # e8: 71f2ff + movi a8, 0x0050f202 # eb: 81f2ff + bne a5, a7, .Lbr007 # ee: 779504 + movi a2, 128 /* 0x00000080 */ # f1: 22a080 + ret /* 0x00000080 */ # f4: 0df0 +.Lbr007: bne a5, a8, .Lbr008 # f6: 879503 + movi a2, 2 /* 0x00000002 */ # f9: 0c22 + ret /* 0x00000002 */ # fb: 0df0 +.Lbr008: movi a9, 0x0050f204 # fd: 91eeff + movi a10, 0 /* 0x00000000 */ # 100: 0c0a + beq a5, a9, .Lbr009 # 102: 97150d + movi a11, 0x0050f205 # 105: b1edff + movi a2, 256 /* 0x00000100 */ # 108: 22a100 + sub a11, a5, a11 # 10b: b0b5c0 + movnez a2, a10, a11 # 10e: b02a93 + ret # 111: 0df0 +.Lbr009: movi a2, 8 /* 0x00000008 */ # 113: 0c82 + ret /* 0x00000008 */ # 115: 0df0 + + .literal_position # 118: 01f25000 + # 11c: 02f25000 + # 120: 00f25000 + +# Function @ .irom0.text+0x124 + .balign 4 +.Lfunc004: movi a3, 0x0050f201 # 124: 31fdff + l8ui a7, a2, 1 /* [arg0+0x1] */ # 127: 720201 + l8ui a6, a2, 2 /* [arg0+0x2] */ # 12a: 620202 + l8ui a5, a2, 3 /* [arg0+0x3] */ # 12d: 520203 + slli a6, a6, 8 # 130: 806611 + or a5, a5, a6 # 133: 605520 + l8ui a6, a2, 0 /* [arg0] */ # 136: 620200 + slli a7, a7, 16 # 139: 007711 + slli a6, a6, 24 # 13c: 806601 + or a6, a6, a7 # 13f: 706620 + or a5, a5, a6 # 142: 605520 + bne a5, a3, .Lbr010 # 145: 379503 + movi a2, 1 /* 0x00000001 */ # 148: 0c12 + ret /* 0x00000001 */ # 14a: 0df0 +.Lbr010: movi a7, 0x0050f202 # 14c: 71f4ff + movi a8, 0 /* 0x00000000 */ # 14f: 0c08 + beq a5, a7, .Lbr011 # 151: 77150c + movi a9, 0x0050f200 # 154: 91f3ff + movi a2, 16 /* 0x00000010 */ # 157: 1c02 + sub a9, a5, a9 # 159: 9095c0 + movnez a2, a8, a9 # 15c: 902893 + ret # 15f: 0df0 +.Lbr011: movi a2, 2 /* 0x00000002 */ # 161: 0c22 + ret /* 0x00000002 */ # 163: 0df0 + + .literal_position # 168: 00000000 + +# Function @ .irom0.text+0x16c +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word @ -0x10 +# (local5): word @ -0xc +# (local6): word[2] @ -0x8 + .balign 4 + .global wpa_parse_wpa_ie_rsn + .type wpa_parse_wpa_ie_rsn, @function +wpa_parse_wpa_ie_rsn: + addi sp, sp, -32 /* (local0) */ # 16c: 12c1e0 + s32i a15, sp, 20 /* a15 -> [(local5)] */ # 16f: f951 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 171: 0911 + s32i a12, sp, 8 /* a12 -> [(local2)] */ # 173: c921 + s32i a14, sp, 16 /* a14 -> [(local4)] */ # 175: e941 + s32i a13, sp, 12 /* a13 -> [(local3)] */ # 177: d931 + mov a14, a4 /* arg2 */ # 179: ed04 + mov a13, a2 /* arg0 */ # 17b: dd02 + mov a12, a3 /* arg1 */ # 17d: cd03 + mov a2, a4 /* arg2 */ # 17f: 2d04 + movi a3, 0 /* 0x00000000 */ # 181: 0c03 + movi a4, 32 /* 0x00000020 */ # 183: 2c04 + call0 memset # 185: 01f8ffc0 + # 189: 0000 + movi a15, 0 /* 0x00000000 */ # 18b: 0c0f + movi a0, 1 /* 0x00000001 */ # 18d: 0c10 + movi a2, 2 /* 0x00000002 */ # 18f: 0c22 + movi a3, 8 /* 0x00000008 */ # 191: 0c83 + s32i a3, a14, 4 /* 0x00000008 -> [arg2+0x4] */ # 193: 391e + s32i a3, a14, 8 /* 0x00000008 -> [arg2+0x8] */ # 195: 392e + s32i a2, a14, 0 /* 0x00000002 -> [arg2] */ # 197: 290e + s32i a0, a14, 12 /* 0x00000001 -> [arg2+0xc] */ # 199: 093e + s32i a15, a14, 16 /* 0x00000000 -> [arg2+0x10] */ # 19b: f94e + s32i a15, a14, 24 /* 0x00000000 -> [arg2+0x18] */ # 19d: f96e + s32i a15, a14, 20 /* 0x00000000 -> [arg2+0x14] */ # 19f: f95e + s32i a15, a14, 28 /* 0x00000000 -> [arg2+0x1c] */ # 1a1: f97e + beqz a12, .Lbr014 # 1a3: bc8c + bltui a12, 4, .Lbr014 # 1a5: b64c36 + l8ui a4, a13, 0 /* [arg0] */ # 1a8: 420d00 + movi a5, 48 /* 0x00000030 */ # 1ab: 3c05 + bne a4, a5, .Lbr012 # 1ad: 57941d + l8ui a6, a13, 1 /* [arg0+0x1] */ # 1b0: 620d01 + addi a7, a12, -2 /* arg1-0x2 */ # 1b3: 72ccfe + bne a6, a7, .Lbr012 # 1b6: 779614 + l8ui a9, a13, 3 /* [arg0+0x3] */ # 1b9: 920d03 + l8ui a8, a13, 2 /* [arg0+0x2] */ # 1bc: 820d02 + slli a9, a9, 8 # 1bf: 809911 + or a8, a8, a9 # 1c2: 908820 + slli a8, a8, 16 # 1c5: 008811 + srai a8, a8, 16 # 1c8: 808031 + beqi a8, 1, .Lbr015 # 1cb: 261815 +.Lbr012: movi a2, -2 /* 0xfffffffe */ # 1ce: 7ce2 +.Lbr013: l32i a12, sp, 8 /* [(local2)] */ # 1d0: c821 + l32i a13, sp, 12 /* [(local3)] */ # 1d2: d831 + l32i a14, sp, 16 /* [(local4)] */ # 1d4: e841 + l32i a15, sp, 20 /* [(local5)] */ # 1d6: f851 + l32i a0, sp, 4 /* [(local1)] */ # 1d8: 0811 + addi sp, sp, 32 /* (top of frame) */ # 1da: 12c120 + ret # 1dd: 0df0 +.Lbr014: movi a2, -1 /* 0xffffffff */ # 1df: 7cf2 + j .Lbr013 # 1e1: c6faff +.Lbr015: addi a13, a13, 4 /* arg0+0x4 */ # 1e4: 4bdd + addi a10, a12, -4 /* arg1-0x4 */ # 1e6: a2ccfc + s32i a10, sp, 0 /* arg1-0x4 -> [(local0)] */ # 1e9: a901 + mov a12, a10 /* arg1-0x4 */ # 1eb: cd0a + bgei a10, 4, .Lbr016 # 1ed: e64a02 + j .Lbr026 # 1f0: 063700 +.Lbr016: mov a2, a13 /* arg0+0x4 */ # 1f3: 2d0d + call0 .Lfunc001 # 1f5: c5e1ff + addi a13, a13, 4 /* arg0+0x8 */ # 1f8: 4bdd + l32i a12, sp, 0 /* [(local0)] */ # 1fa: c801 + s32i a2, a14, 8 /* a2 -> [arg2+0x8] */ # 1fc: 292e + addi a12, a12, -4 /* [(local0)]-0x4 */ # 1fe: c2ccfc +.Lbr017: bgei a12, 2, .Lbr018 # 201: e62c02 + j .Lbr030 # 204: 063700 +.Lbr018: addi a12, a12, -2 # 207: c2ccfe + s32i a15, a14, 4 /* 0x00000000 -> [arg2+0x4] */ # 20a: f91e + l8ui a0, a13, 0 # 20c: 020d00 + l8ui a2, a13, 1 # 20f: 220d01 + addi a13, a13, 2 # 212: 2bdd + slli a2, a2, 8 # 214: 802211 + or a0, a0, a2 # 217: 200020 + extui a0, a0, 0, 16 # 21a: 0000f4 + s32i a0, sp, 24 /* a0 -> [(local6)] */ # 21d: 0961 + beqz a0, .Lbr032 # 21f: 16300d + slli a3, a0, 2 # 222: e03011 + bge a12, a3, .Lbr019 # 225: 37ac02 + j .Lbr032 # 228: 863200 +.Lbr019: blti a0, 1, .Lbr021 # 22b: a61019 + movi a15, 0 /* 0x00000000 */ # 22e: 0c0f +.Lbr020: mov a2, a13 # 230: 2d0d + call0 .Lfunc001 # 232: 05deff + addi a13, a13, 4 # 235: 4bdd + addi a12, a12, -4 # 237: c2ccfc + addi a15, a15, 1 # 23a: 1bff + l32i a6, a14, 4 /* [arg2+0x4] */ # 23c: 681e + l32i a5, sp, 24 /* [(local6)] */ # 23e: 5861 + or a6, a6, a2 # 240: 206620 + s32i a6, a14, 4 /* a6 -> [arg2+0x4] */ # 243: 691e + bne a5, a15, .Lbr020 # 245: f795e7 +.Lbr021: movi a15, 0 /* 0x00000000 */ # 248: 0c0f + bgei a12, 2, .Lbr022 # 24a: e62c02 + j .Lbr031 # 24d: 462700 +.Lbr022: addi a12, a12, -2 # 250: c2ccfe + s32i a15, a14, 12 /* 0x00000000 -> [arg2+0xc] */ # 253: f93e + l8ui a7, a13, 0 # 255: 720d00 + l8ui a8, a13, 1 # 258: 820d01 + addi a13, a13, 2 # 25b: 2bdd + slli a8, a8, 8 # 25d: 808811 + or a7, a7, a8 # 260: 807720 + extui a7, a7, 0, 16 # 263: 7070f4 + s32i a7, sp, 24 /* a7 -> [(local6)] */ # 266: 7961 + beqz a7, .Lbr033 # 268: 16f708 + slli a9, a7, 2 # 26b: e09711 + bge a12, a9, .Lbr023 # 26e: 97ac02 + j .Lbr033 # 271: 862100 +.Lbr023: blti a7, 1, .Lbr025 # 274: a61719 + movi a15, 0 /* 0x00000000 */ # 277: 0c0f +.Lbr024: mov a2, a13 # 279: 2d0d + call0 .Lfunc002 # 27b: 85dfff + addi a13, a13, 4 # 27e: 4bdd + addi a12, a12, -4 # 280: c2ccfc + addi a15, a15, 1 # 283: 1bff + l32i a0, a14, 12 /* [arg2+0xc] */ # 285: 083e + l32i a11, sp, 24 /* [(local6)] */ # 287: b861 + or a0, a0, a2 # 289: 200020 + s32i a0, a14, 12 /* a0 -> [arg2+0xc] */ # 28c: 093e + bne a11, a15, .Lbr024 # 28e: f79be7 +.Lbr025: movi a15, 0 /* 0x00000000 */ # 291: 0c0f + blti a12, 2, .Lbr029 # 293: a62c48 + addi a12, a12, -2 # 296: c2ccfe + l8ui a2, a13, 0 # 299: 220d00 + l8ui a3, a13, 1 # 29c: 320d01 + addi a13, a13, 2 # 29f: 2bdd + slli a3, a3, 8 # 2a1: 803311 + or a2, a2, a3 # 2a4: 302220 + extui a2, a2, 0, 16 # 2a7: 2020f4 + s32i a2, a14, 16 /* a2 -> [arg2+0x10] */ # 2aa: 294e + blti a12, 2, .Lbr029 # 2ac: a62c2f + addi a4, a12, -2 # 2af: 42ccfe + l8ui a6, a13, 1 # 2b2: 620d01 + l8ui a5, a13, 0 # 2b5: 520d00 + slli a6, a6, 8 # 2b8: 806611 + or a5, a5, a6 # 2bb: 605520 + extui a5, a5, 0, 16 # 2be: 5050f4 + s32i a5, a14, 20 /* a5 -> [arg2+0x14] */ # 2c1: 595e + slli a5, a5, 4 # 2c3: c05511 + bge a4, a5, .Lbr028 # 2c6: 57a411 + s32i a15, a14, 20 /* 0x00000000 -> [arg2+0x14] */ # 2c9: f95e + movi a2, -9 /* 0xfffffff7 */ # 2cb: 7c72 + j .Lbr013 # 2cd: c6bfff +.Lbr026: bgei a10, 1, .Lbr027 # 2d0: e61a02 + j .Lbr017 # 2d3: 86caff +.Lbr027: movi a2, -3 /* 0xfffffffd */ # 2d6: 7cd2 + j .Lbr013 # 2d8: 06bdff +.Lbr028: addi a7, a13, 2 # 2db: 2b7d + s32i a7, a14, 24 /* a7 -> [arg2+0x18] */ # 2dd: 796e +.Lbr029: movi a2, 0 /* 0x00000000 */ # 2df: 0c02 + j .Lbr013 # 2e1: c6baff +.Lbr030: addi a8, a12, -1 # 2e4: 0b8c + bnez a8, .Lbr021 # 2e6: 56e8f5 + movi a2, -5 /* 0xfffffffb */ # 2e9: 7cb2 + j .Lbr013 # 2eb: 46b8ff +.Lbr031: bnei a12, 1, .Lbr025 # 2ee: 661c9f + movi a2, -7 /* 0xfffffff9 */ # 2f1: 7c92 + j .Lbr013 # 2f3: 46b6ff +.Lbr032: movi a2, -4 /* 0xfffffffc */ # 2f6: 7cc2 + j .Lbr013 # 2f8: 06b5ff +.Lbr033: movi a2, -6 /* 0xfffffffa */ # 2fb: 7ca2 + j .Lbr013 # 2fd: c6b3ff + + .literal_position # 300: 01f25000 + # 304: 00000000 + +# Function @ .irom0.text+0x308 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word @ -0x10 +# (local5): word[3] @ -0xc + .balign 4 + .global wpa_parse_wpa_ie_wpa + .type wpa_parse_wpa_ie_wpa, @function +wpa_parse_wpa_ie_wpa: + addi sp, sp, -32 /* (local0) */ # 308: 12c1e0 + s32i a15, sp, 16 /* a15 -> [(local4)] */ # 30b: f941 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 30d: 0901 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 30f: c911 + s32i a14, sp, 12 /* a14 -> [(local3)] */ # 311: e931 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 313: d921 + mov a14, a4 /* arg2 */ # 315: ed04 + mov a13, a2 /* arg0 */ # 317: dd02 + mov a12, a3 /* arg1 */ # 319: cd03 + mov a2, a4 /* arg2 */ # 31b: 2d04 + movi a3, 0 /* 0x00000000 */ # 31d: 0c03 + movi a4, 32 /* 0x00000020 */ # 31f: 2c04 + call0 memset # 321: 01f8ffc0 + # 325: 0000 + movi a0, 1 /* 0x00000001 */ # 327: 0c10 + movi a2, 2 /* 0x00000002 */ # 329: 0c22 + s32i a2, a14, 4 /* 0x00000002 -> [arg2+0x4] */ # 32b: 291e + s32i a0, a14, 0 /* 0x00000001 -> [arg2] */ # 32d: 090e + s32i a0, a14, 12 /* 0x00000001 -> [arg2+0xc] */ # 32f: 093e + s32i a2, a14, 8 /* 0x00000002 -> [arg2+0x8] */ # 331: 292e + movi a0, 0 /* 0x00000000 */ # 333: 0c00 + s32i a0, a14, 16 /* 0x00000000 -> [arg2+0x10] */ # 335: 094e + s32i a0, a14, 24 /* 0x00000000 -> [arg2+0x18] */ # 337: 096e + s32i a0, a14, 20 /* 0x00000000 -> [arg2+0x14] */ # 339: 095e + s32i a0, a14, 28 /* 0x00000000 -> [arg2+0x1c] */ # 33b: 097e + beqz a12, .Lbr036 # 33d: 16ec05 + bltui a12, 8, .Lbr036 # 340: b68c5b + l8ui a3, a13, 0 /* [arg0] */ # 343: 320d00 + movi a4, 221 /* 0x000000dd */ # 346: 42a0dd + bne a3, a4, .Lbr034 # 349: 479341 + l8ui a5, a13, 1 /* [arg0+0x1] */ # 34c: 520d01 + addi a6, a12, -2 /* arg1-0x2 */ # 34f: 62ccfe + bne a5, a6, .Lbr034 # 352: 679538 + l8ui a7, a13, 5 /* [arg0+0x5] */ # 355: 720d05 + l8ui a9, a13, 2 /* [arg0+0x2] */ # 358: 920d02 + l8ui a10, a13, 3 /* [arg0+0x3] */ # 35b: a20d03 + l8ui a8, a13, 4 /* [arg0+0x4] */ # 35e: 820d04 + slli a10, a10, 16 # 361: 00aa11 + slli a8, a8, 8 # 364: 808811 + slli a9, a9, 24 # 367: 809901 + or a7, a7, a8 # 36a: 807720 + movi a8, 0x0050f201 # 36d: 81e4ff + or a9, a9, a10 # 370: a09920 + or a7, a7, a9 # 373: 907720 + bne a7, a8, .Lbr034 # 376: 879714 + l8ui a10, a13, 7 /* [arg0+0x7] */ # 379: a20d07 + l8ui a9, a13, 6 /* [arg0+0x6] */ # 37c: 920d06 + slli a10, a10, 8 # 37f: 80aa11 + or a9, a9, a10 # 382: a09920 + slli a9, a9, 16 # 385: 009911 + srai a9, a9, 16 # 388: 909031 + beqi a9, 1, .Lbr037 # 38b: 261915 +.Lbr034: movi a2, -2 /* 0xfffffffe */ # 38e: 7ce2 +.Lbr035: l32i a12, sp, 4 /* [(local1)] */ # 390: c811 + l32i a13, sp, 8 /* [(local2)] */ # 392: d821 + l32i a14, sp, 12 /* [(local3)] */ # 394: e831 + l32i a15, sp, 16 /* [(local4)] */ # 396: f841 + l32i a0, sp, 0 /* [(local0)] */ # 398: 0801 + addi sp, sp, 32 /* (top of frame) */ # 39a: 12c120 + ret # 39d: 0df0 +.Lbr036: movi a2, -1 /* 0xffffffff */ # 39f: 7cf2 + j .Lbr035 # 3a1: c6faff +.Lbr037: addi a13, a13, 8 /* arg0+0x8 */ # 3a4: 8bdd + addi a15, a12, -8 /* arg1-0x8 */ # 3a6: f2ccf8 + mov a12, a15 /* arg1-0x8 */ # 3a9: cd0f + bgei a15, 4, .Lbr038 # 3ab: e64f02 + j .Lbr047 # 3ae: 062d00 +.Lbr038: mov a2, a13 /* arg0+0x8 */ # 3b1: 2d0d + call0 .Lfunc003 # 3b3: c5d0ff + movi a0, 0 /* 0x00000000 */ # 3b6: 0c00 + addi a13, a13, 4 /* arg0+0xc */ # 3b8: 4bdd + addi a12, a15, -4 /* arg1-0xc */ # 3ba: c2cffc + s32i a2, a14, 8 /* a2 -> [arg2+0x8] */ # 3bd: 292e +.Lbr039: bgei a12, 2, .Lbr040 # 3bf: e62c02 + j .Lbr049 # 3c2: c62a00 +.Lbr040: addi a12, a12, -2 # 3c5: c2ccfe + s32i a0, a14, 4 /* 0x00000000 -> [arg2+0x4] */ # 3c8: 091e + l8ui a15, a13, 0 # 3ca: f20d00 + l8ui a2, a13, 1 # 3cd: 220d01 + addi a13, a13, 2 # 3d0: 2bdd + slli a2, a2, 8 # 3d2: 802211 + or a15, a15, a2 # 3d5: 20ff20 + extui a15, a15, 0, 16 # 3d8: f0f0f4 + beqz a15, .Lbr051 # 3db: 162f0a + slli a3, a15, 2 # 3de: e03f11 + bge a12, a3, .Lbr041 # 3e1: 37ac02 + j .Lbr051 # 3e4: 462600 +.Lbr041: blti a15, 1, .Lbr043 # 3e7: a61f1f + movi a4, 0 /* 0x00000000 */ # 3ea: 0c04 + s32i a4, sp, 20 /* 0x00000000 -> [(local5)] */ # 3ec: 4951 +.Lbr042: mov a2, a13 # 3ee: 2d0d + call0 .Lfunc003 # 3f0: c5ccff + addi a13, a13, 4 # 3f3: 4bdd + addi a12, a12, -4 # 3f5: c2ccfc + l32i a5, sp, 20 /* [(local5)] */ # 3f8: 5851 + l32i a6, a14, 4 /* [arg2+0x4] */ # 3fa: 681e + addi a5, a5, 1 /* [(local5)]+0x1 */ # 3fc: 1b55 + or a6, a6, a2 # 3fe: 206620 + s32i a6, a14, 4 /* a6 -> [arg2+0x4] */ # 401: 691e + s32i a5, sp, 20 /* [(local5)]+0x1 -> [(local5)] */ # 403: 5951 + bne a15, a5, .Lbr042 # 405: 579fe5 + movi a0, 0 /* 0x00000000 */ # 408: 0c00 +.Lbr043: blti a12, 2, .Lbr050 # 40a: a62c6b + addi a12, a12, -2 # 40d: c2ccfe + s32i a0, a14, 12 /* 0x00000000 -> [arg2+0xc] */ # 410: 093e + l8ui a15, a13, 0 # 412: f20d00 + l8ui a2, a13, 1 # 415: 220d01 + addi a13, a13, 2 # 418: 2bdd + slli a2, a2, 8 # 41a: 802211 + or a15, a15, a2 # 41d: 20ff20 + extui a15, a15, 0, 16 # 420: f0f0f4 + beqz a15, .Lbr052 # 423: 16ff05 + slli a3, a15, 2 # 426: e03f11 + blt a12, a3, .Lbr052 # 429: 372c59 + blti a15, 1, .Lbr045 # 42c: a61f1d + movi a4, 0 /* 0x00000000 */ # 42f: 0c04 + s32i a4, sp, 20 /* 0x00000000 -> [(local5)] */ # 431: 4951 +.Lbr044: mov a2, a13 # 433: 2d0d + call0 .Lfunc004 # 435: c5ceff + addi a13, a13, 4 # 438: 4bdd + addi a12, a12, -4 # 43a: c2ccfc + l32i a5, sp, 20 /* [(local5)] */ # 43d: 5851 + l32i a6, a14, 12 /* [arg2+0xc] */ # 43f: 683e + addi a5, a5, 1 /* [(local5)]+0x1 */ # 441: 1b55 + or a6, a6, a2 # 443: 206620 + s32i a6, a14, 12 /* a6 -> [arg2+0xc] */ # 446: 693e + s32i a5, sp, 20 /* [(local5)]+0x1 -> [(local5)] */ # 448: 5951 + bne a15, a5, .Lbr044 # 44a: 579fe5 +.Lbr045: blti a12, 2, .Lbr046 # 44d: a62c10 + l8ui a8, a13, 1 # 450: 820d01 + l8ui a7, a13, 0 # 453: 720d00 + slli a8, a8, 8 # 456: 808811 + or a7, a7, a8 # 459: 807720 + extui a7, a7, 0, 16 # 45c: 7070f4 + s32i a7, a14, 16 /* a7 -> [arg2+0x10] */ # 45f: 794e +.Lbr046: movi a2, 0 /* 0x00000000 */ # 461: 0c02 + j .Lbr035 # 463: 46caff +.Lbr047: bgei a15, 1, .Lbr048 # 466: e61f02 + j .Lbr039 # 469: 86d4ff +.Lbr048: movi a2, -3 /* 0xfffffffd */ # 46c: 7cd2 + j .Lbr035 # 46e: 86c7ff +.Lbr049: bnei a12, 1, .Lbr043 # 471: 661c95 + movi a2, -5 /* 0xfffffffb */ # 474: 7cb2 + j .Lbr035 # 476: 86c5ff +.Lbr050: bnei a12, 1, .Lbr045 # 479: 661cd0 + movi a2, -7 /* 0xfffffff9 */ # 47c: 7c92 + j .Lbr035 # 47e: 86c3ff +.Lbr051: movi a2, -4 /* 0xfffffffc */ # 481: 7cc2 + j .Lbr035 # 483: 46c2ff +.Lbr052: movi a2, -6 /* 0xfffffffa */ # 486: 7ca2 + j .Lbr035 # 488: 06c1ff + + .literal_position # 48c: 00000000 + # 490: 00000000 + # 494: 00000000 + +# Function @ .irom0.text+0x498 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global wpa_eapol_key_mic + .type wpa_eapol_key_mic, @function +wpa_eapol_key_mic: + addi sp, sp, -48 /* (FP)-0x30 */ # 498: 12c1d0 + s32i a0, sp, 36 /* a0 -> [(local1)] */ # 49b: 0991 + beqi a3, 1, .Lbr054 # 49d: 261309 + s32i a6, sp, 32 /* arg4 -> [(local0)] */ # 4a0: 6981 + beqi a3, 2, .Lbr056 # 4a2: 262313 +.Lbr053: movi a2, -1 /* 0xffffffff */ # 4a5: 7cf2 + j .Lbr055 # 4a7: c60100 +.Lbr054: movi a3, 16 /* 0x00000010 */ # 4aa: 1c03 + call0 hmac_md5 # 4ac: 01f8ffc0 + # 4b0: 0000 +.Lbr055: l32i a0, sp, 36 /* [(local1)] */ # 4b2: 0891 + addi sp, sp, 48 /* (top of frame) */ # 4b4: 12c130 + ret # 4b7: 0df0 +.Lbr056: movi a3, 16 /* 0x00000010 */ # 4b9: 1c03 + mov a6, sp /* (FP)-0x30 */ # 4bb: 6d01 + call0 hmac_sha1 # 4bd: 01f4ffc0 + # 4c1: 0000 + bnez a2, .Lbr053 # 4c3: 56e2fd + l32i a2, sp, 32 /* [(local0)] */ # 4c6: 2881 + mov a3, sp /* (FP)-0x30 */ # 4c8: 3d01 + movi a4, 16 /* 0x00000010 */ # 4ca: 1c04 + call0 memcpy # 4cc: 01f2ffc0 + # 4d0: 0000 + movi a2, 0 /* 0x00000000 */ # 4d2: 0c02 + j .Lbr055 # 4d4: 86f6ff + + .literal_position # 4d8: 00000000 + +# Function @ .irom0.text+0x4dc +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global wpa_compare_rsn_ie + .type wpa_compare_rsn_ie, @function +wpa_compare_rsn_ie: + addi sp, sp, -16 /* (local0) */ # 4dc: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 4df: 0901 + beqz a3, .Lbr057 # 4e1: 9c43 + beqz a5, .Lbr057 # 4e3: 9c25 + bne a4, a6, .Lbr057 # 4e5: 679410 + mov a2, a3 /* arg1 */ # 4e8: 2d03 + mov a3, a5 /* arg3 */ # 4ea: 3d05 + call0 memcmp # 4ec: 01fbffc0 + # 4f0: 0000 + bnez a2, .Lbr057 # 4f2: cc32 + movi a2, 0 /* 0x00000000 */ # 4f4: 0c02 + j .Lbr058 # 4f6: 460000 +.Lbr057: movi a2, -1 /* 0xffffffff */ # 4f9: 7cf2 +.Lbr058: l32i a0, sp, 0 /* [(local0)] */ # 4fb: 0801 + addi sp, sp, 16 /* (top of frame) */ # 4fd: 12c110 + ret # 500: 0df0 + + .literal_position # 504: 00000000 + # 508: 00000000 + # 50c: 00000000 + # 510: 00000000 + # 514: 00000000 + # 518: 00000000 + # 51c: 00000000 + # 520: 00000000 + # 524: 00000000 + # 528: 00000000 + # 52c: 00000000 + +# Function @ .irom0.text+0x530 +# Local variables/stack: +# (local0): word[24] @ -0x80 +# (local1): word @ -0x20 +# (local2): word @ -0x1c +# (local3): word @ -0x18 +# (local4): word @ -0x14 +# (local5): word @ -0x10 +# (local6): word @ -0xc +# (local7): word @ -0x8 +# (local8): word @ -0x4 + .balign 4 + .global wpa_pmk_to_ptk + .type wpa_pmk_to_ptk, @function +wpa_pmk_to_ptk: + addi sp, sp, -128 /* (local0) */ # 530: 12c180 + s32i a15, sp, 124 /* a15 -> [(local8)] */ # 533: f2611f + s32i a0, sp, 108 /* a0 -> [(local4)] */ # 536: 02611b + s32i a4, sp, 104 /* arg2 -> [(local3)] */ # 539: 42611a + s32i a13, sp, 116 /* a13 -> [(local6)] */ # 53c: d2611d + s32i a14, sp, 120 /* a14 -> [(local7)] */ # 53f: e2611e + s32i a3, sp, 100 /* arg1 -> [(local2)] */ # 542: 326119 + s32i a12, sp, 112 /* a12 -> [(local5)] */ # 545: c2611c + s32i a2, sp, 96 /* arg0 -> [(local1)] */ # 548: 226118 + mov a12, a7 /* arg5 */ # 54b: cd07 + mov a2, a5 /* arg3 */ # 54d: 2d05 + mov a3, a6 /* arg4 */ # 54f: 3d06 + mov a14, a5 /* arg3 */ # 551: ed05 + mov a13, a6 /* arg4 */ # 553: dd06 + movi a4, 6 /* 0x00000006 */ # 555: 0c64 + call0 memcmp # 557: 01ebffc0 + # 55b: 0000 + addi a15, sp, 22 /* (FP)-0x6a */ # 55d: f2c116 + bgez a2, .Lbr059 # 560: d6b201 + mov a3, a14 /* arg3 */ # 563: 3d0e + addi a2, sp, 16 /* (FP)-0x70 */ # 565: 22c110 + movi a4, 6 /* 0x00000006 */ # 568: 0c64 + call0 memcpy # 56a: 01e7ffc0 + # 56e: 0000 + mov a3, a13 /* arg4 */ # 570: 3d0d + mov a2, a15 /* (FP)-0x6a */ # 572: 2d0f + movi a4, 6 /* 0x00000006 */ # 574: 0c64 + call0 memcpy # 576: 01e5ffc0 + # 57a: 0000 + j .Lbr060 # 57c: 060600 +.Lbr059: mov a3, a13 /* arg4 */ # 57f: 3d0d + addi a2, sp, 16 /* (FP)-0x70 */ # 581: 22c110 + movi a4, 6 /* 0x00000006 */ # 584: 0c64 + call0 memcpy # 586: 01e2ffc0 + # 58a: 0000 + mov a3, a14 /* arg3 */ # 58c: 3d0e + mov a2, a15 /* (FP)-0x6a */ # 58e: 2d0f + movi a4, 6 /* 0x00000006 */ # 590: 0c64 + call0 memcpy # 592: 01e0ffc0 + # 596: 0000 +.Lbr060: mov a2, a12 /* arg5 */ # 598: 2d0c + l32i a14, sp, 128 /* [(local9)] */ # 59a: e22120 + movi a4, 32 /* 0x00000020 */ # 59d: 2c04 + mov a3, a14 /* [(local9)] */ # 59f: 3d0e + call0 memcmp # 5a1: 01ddffc0 + # 5a5: 0000 + addi a13, sp, 60 /* (FP)-0x44 */ # 5a7: d2c13c + mov a15, a2 # 5aa: fd02 + addi a2, sp, 28 /* (FP)-0x64 */ # 5ac: 22c11c + bgez a15, .Lbr061 # 5af: d68f01 + mov a3, a12 /* arg5 */ # 5b2: 3d0c + movi a4, 32 /* 0x00000020 */ # 5b4: 2c04 + call0 memcpy # 5b6: 01d9ffc0 + # 5ba: 0000 + mov a3, a14 /* [(local9)] */ # 5bc: 3d0e + mov a2, a13 /* (FP)-0x44 */ # 5be: 2d0d + movi a4, 32 /* 0x00000020 */ # 5c0: 2c04 + call0 memcpy # 5c2: 01d7ffc0 + # 5c6: 0000 + j .Lbr062 # 5c8: 460500 +.Lbr061: mov a3, a14 /* [(local9)] */ # 5cb: 3d0e + movi a4, 32 /* 0x00000020 */ # 5cd: 2c04 + call0 memcpy # 5cf: 01d5ffc0 + # 5d3: 0000 + mov a3, a12 /* arg5 */ # 5d5: 3d0c + mov a2, a13 /* (FP)-0x44 */ # 5d7: 2d0d + movi a4, 32 /* 0x00000020 */ # 5d9: 2c04 + call0 memcpy # 5db: 01d3ffc0 + # 5df: 0000 +.Lbr062: l32i a2, sp, 96 /* [(local1)] */ # 5e1: 222118 + l32i a3, sp, 100 /* [(local2)] */ # 5e4: 322119 + l32i a4, sp, 104 /* [(local3)] */ # 5e7: 42211a + l32i a7, sp, 132 /* [(FP)+0x4] */ # 5ea: 722121 + addi a5, sp, 16 /* (FP)-0x70 */ # 5ed: 52c110 + movi a6, 76 /* 0x0000004c */ # 5f0: 4cc6 + l32i a0, sp, 136 /* [(FP)+0x8] */ # 5f2: 022122 + s32i a0, sp, 0 /* [(FP)+0x8] -> [(local0)] */ # 5f5: 0901 + call0 sha1_prf # 5f7: 01cdffc0 + # 5fb: 0000 + l32i a12, sp, 112 /* [(local5)] */ # 5fd: c2211c + l32i a13, sp, 116 /* [(local6)] */ # 600: d2211d + l32i a14, sp, 120 /* [(local7)] */ # 603: e2211e + l32i a15, sp, 124 /* [(local8)] */ # 606: f2211f + movi a2, 128 /* 0x00000080 */ # 609: 22a080 + l32i a0, sp, 108 /* [(local4)] */ # 60c: 02211b + add sp, sp, a2 /* (local9) */ # 60f: 2a11 + ret /* 0x00000080 */ # 611: 0df0 + + .literal_position # 614: 00000000 + # 618: 00000000 + # 61c: 00000000 + # 620: 00000000 + +# Function @ .irom0.text+0x624 +# Local variables/stack: +# (local0): word @ -0x40 +# (local1): word @ -0x3c +# (local2): word[10] @ -0x38 +# (local3): word @ -0x10 +# (local4): word[3] @ -0xc + .balign 4 + .global rsn_pmkid + .type rsn_pmkid, @function +rsn_pmkid: addi sp, sp, -64 /* (local0) */ # 624: 12c1c0 + addi a7, sp, 16 /* (FP)-0x30 */ # 627: 72c110 + s32i a0, sp, 52 /* a0 -> [(local4)] */ # 62a: 09d1 + s32i a6, sp, 48 /* arg4 -> [(local3)] */ # 62c: 69c1 + s32i a4, sp, 4 /* arg2 -> [(local1)] */ # 62e: 4911 + s32i a5, sp, 8 /* arg3 -> [(local2)] */ # 630: 5921 + movi a4, 3 /* 0x00000003 */ # 632: 0c34 + mov a5, sp /* (local0) */ # 634: 5d01 + movi a6, .Ldata001 # 636: 61f8ff + movi a0, .Lstr001 # 639: 01f6ff + s32i a0, sp, 0 /* .Lstr001 -> [(local0)] */ # 63c: 0901 + call0 hmac_sha1_vector # 63e: 01f7ffc0 + # 642: 0000 + l32i a2, sp, 48 /* [(local3)] */ # 644: 28c1 + addi a3, sp, 16 /* (FP)-0x30 */ # 646: 32c110 + movi a4, 16 /* 0x00000010 */ # 649: 1c04 + call0 memcpy # 64b: 01f5ffc0 + # 64f: 0000 + l32i a0, sp, 52 /* [(local4)] */ # 651: 08d1 + addi sp, sp, 64 /* (top of frame) */ # 653: 12c140 + ret # 656: 0df0 + +# Function @ .irom0.text+0x658 + .balign 4 + .global wpa_cipher_key_len + .type wpa_cipher_key_len, @function +wpa_cipher_key_len: + beqi a2, 2, .Lbr063 # 658: 262214 + beqi a2, 8, .Lbr064 # 65b: 268215 + beqi a2, 64, .Lbr064 # 65e: 26d212 + beqi a2, 128, .Lbr065 # 661: 26e213 + addmi a4, a2, -256 /* arg0-0x100 */ # 664: 42d2ff + movi a3, 13 /* 0x0000000d */ # 667: 0cd3 + movi a2, 0 /* 0x00000000 */ # 669: 0c02 + moveqz a2, a3, a4 # 66b: 402383 + ret # 66e: 0df0 +.Lbr063: movi a2, 32 /* 0x00000020 */ # 670: 2c02 + ret /* 0x00000020 */ # 672: 0df0 +.Lbr064: movi a2, 16 /* 0x00000010 */ # 674: 1c02 + ret /* 0x00000010 */ # 676: 0df0 +.Lbr065: movi a2, 5 /* 0x00000005 */ # 678: 0c52 + ret /* 0x00000005 */ # 67a: 0df0 + +# Function @ .irom0.text+0x67c + .balign 4 + .global wpa_cipher_to_alg + .type wpa_cipher_to_alg, @function +wpa_cipher_to_alg: + beqi a2, 2, .Lbr066 # 67c: 26220f + beqi a2, 8, .Lbr068 # 67f: 268214 + beqi a2, 64, .Lbr069 # 682: 26d215 + beqi a2, 128, .Lbr067 # 685: 26e20a + beqi a2, 0x100, .Lbr067 # 688: 26f207 + movi a2, 0 /* 0x00000000 */ # 68b: 0c02 + ret /* 0x00000000 */ # 68d: 0df0 +.Lbr066: movi a2, 2 /* 0x00000002 */ # 68f: 0c22 + ret /* 0x00000002 */ # 691: 0df0 +.Lbr067: movi a2, 6 /* 0x00000006 */ # 693: 0c62 + ret /* 0x00000006 */ # 695: 0df0 +.Lbr068: movi a2, 3 /* 0x00000003 */ # 697: 0c32 + ret /* 0x00000003 */ # 699: 0df0 +.Lbr069: movi a2, 9 /* 0x00000009 */ # 69b: 0c92 + ret /* 0x00000009 */ # 69d: 0df0 + + .literal_position # 6a0: 04f25000 + # 6a4: 04ac0f00 + # 6a8: 08ac0f00 + # 6ac: 02f25000 + # 6b0: 02ac0f00 + # 6b4: 05f25000 + # 6b8: 05ac0f00 + # 6bc: 01f25000 + # 6c0: 01ac0f00 + # 6c4: 00f25000 + # 6c8: 00ac0f00 + +# Function @ .irom0.text+0x6cc + .balign 4 + .global wpa_cipher_to_suite + .type wpa_cipher_to_suite, @function +wpa_cipher_to_suite: + bbci a3, 3, .Lbr073 # 6cc: 376314 + movi a5, 0x000fac04 # 6cf: 51f5ff + movi a3, 0x0050f204 # 6d2: 31f3ff +.Lbr070: addi a4, a2, -2 /* arg0-0x2 */ # 6d5: 42c2fe + moveqz a3, a5, a4 # 6d8: 403583 + j .Lbr072 # 6db: 460000 +.Lbr071: movi a3, 0 /* 0x00000000 */ # 6de: 0c03 +.Lbr072: mov a2, a3 # 6e0: 2d03 + ret # 6e2: 0df0 +.Lbr073: bbci a3, 6, .Lbr074 # 6e4: 676305 + movi a3, 0x000fac08 # 6e7: 31f0ff + j .Lbr072 # 6ea: 86fcff +.Lbr074: bbci a3, 1, .Lbr075 # 6ed: 176308 + movi a5, 0x000fac02 # 6f0: 51f0ff + movi a3, 0x0050f202 # 6f3: 31eeff + j .Lbr070 # 6f6: c6f6ff +.Lbr075: bbci a3, 8, .Lbr076 # 6f9: 876308 + movi a5, 0x000fac05 # 6fc: 51efff + movi a3, 0x0050f205 # 6ff: 31edff + j .Lbr070 # 702: c6f3ff +.Lbr076: bbci a3, 7, .Lbr077 # 705: 776308 + movi a5, 0x000fac01 # 708: 51eeff + movi a3, 0x0050f201 # 70b: 31ecff + j .Lbr070 # 70e: c6f0ff +.Lbr077: bbci a3, 0, .Lbr071 # 711: 0763c9 + movi a5, 0x000fac00 # 714: 51edff + movi a3, 0x0050f200 # 717: 31ebff + j .Lbr070 # 71a: c6edff + + .balign 4 +# Function @ .irom0.text+0x720 + .balign 4 + .global rsn_cipher_put_suites + .type rsn_cipher_put_suites, @function +rsn_cipher_put_suites: + movi a8, 15 /* 0x0000000f */ # 720: 0cf8 + movi a9, 8 /* 0x00000008 */ # 722: 0c89 + movi a7, -84 /* 0xffffffac */ # 724: 72afac + movi a6, 0 /* 0x00000000 */ # 727: 0c06 + bbci a3, 3, .Lbr078 # 729: 376314 + movi a5, 1 /* 0x00000001 */ # 72c: 0c15 + s8i a6, a2, 0 /* 0x00 -> [arg0] */ # 72e: 624200 + s8i a8, a2, 1 /* 0x0f -> [arg0+0x1] */ # 731: 824201 + movi a4, 4 /* 0x00000004 */ # 734: 0c44 + s8i a7, a2, 2 /* 0xac -> [arg0+0x2] */ # 736: 724202 + s8i a4, a2, 3 /* 0x04 -> [arg0+0x3] */ # 739: 424203 + addi a2, a2, 4 /* arg0+0x4 */ # 73c: 4b22 + j .Lbr079 # 73e: 460000 +.Lbr078: mov a5, a6 /* 0x00000000 */ # 741: 5d06 +.Lbr079: bbci a3, 6, .Lbr080 # 743: 67630f + addi a5, a5, 1 # 746: 1b55 + s8i a9, a2, 3 # 748: 924203 + s8i a6, a2, 0 # 74b: 624200 + s8i a8, a2, 1 # 74e: 824201 + s8i a7, a2, 2 # 751: 724202 + addi a2, a2, 4 # 754: 4b22 +.Lbr080: movi a9, 2 /* 0x00000002 */ # 756: 0c29 + bbci a3, 1, .Lbr081 # 758: 17630f + addi a5, a5, 1 # 75b: 1b55 + s8i a9, a2, 3 # 75d: 924203 + s8i a6, a2, 0 # 760: 624200 + s8i a8, a2, 1 # 763: 824201 + s8i a7, a2, 2 # 766: 724202 + addi a2, a2, 4 # 769: 4b22 +.Lbr081: bbci a3, 0, .Lbr082 # 76b: 07630d + s8i a8, a2, 1 # 76e: 824201 + s8i a7, a2, 2 # 771: 724202 + s8i a6, a2, 0 # 774: 624200 + s8i a6, a2, 3 # 777: 624203 + addi a5, a5, 1 # 77a: 1b55 +.Lbr082: mov a2, a5 # 77c: 2d05 + ret # 77e: 0df0 + +# Function @ .irom0.text+0x780 + .balign 4 + .global wpa_cipher_put_suites + .type wpa_cipher_put_suites, @function +wpa_cipher_put_suites: + movi a8, -14 /* 0xfffffff2 */ # 780: 7c28 + movi a7, 80 /* 0x00000050 */ # 782: 5c07 + movi a9, 2 /* 0x00000002 */ # 784: 0c29 + movi a6, 0 /* 0x00000000 */ # 786: 0c06 + bbci a3, 3, .Lbr083 # 788: 376314 + movi a5, 1 /* 0x00000001 */ # 78b: 0c15 + s8i a6, a2, 0 /* 0x00 -> [arg0] */ # 78d: 624200 + s8i a7, a2, 1 /* 0x50 -> [arg0+0x1] */ # 790: 724201 + movi a4, 4 /* 0x00000004 */ # 793: 0c44 + s8i a8, a2, 2 /* 0xf2 -> [arg0+0x2] */ # 795: 824202 + s8i a4, a2, 3 /* 0x04 -> [arg0+0x3] */ # 798: 424203 + addi a2, a2, 4 /* arg0+0x4 */ # 79b: 4b22 + j .Lbr084 # 79d: 460000 +.Lbr083: mov a5, a6 /* 0x00000000 */ # 7a0: 5d06 +.Lbr084: bbci a3, 1, .Lbr085 # 7a2: 17630f + addi a5, a5, 1 # 7a5: 1b55 + s8i a9, a2, 3 # 7a7: 924203 + s8i a6, a2, 0 # 7aa: 624200 + s8i a7, a2, 1 # 7ad: 724201 + s8i a8, a2, 2 # 7b0: 824202 + addi a2, a2, 4 # 7b3: 4b22 +.Lbr085: bbci a3, 0, .Lbr086 # 7b5: 07630d + s8i a7, a2, 1 # 7b8: 724201 + s8i a8, a2, 2 # 7bb: 824202 + s8i a6, a2, 0 # 7be: 624200 + s8i a6, a2, 3 # 7c1: 624203 + addi a5, a5, 1 # 7c4: 1b55 +.Lbr086: mov a2, a5 # 7c6: 2d05 + ret # 7c8: 0df0 + + .section .rodata.str1.4, "MSa", @progbits, 1 + +.Lstr001: .asciz "PMK Name" # 0: 504d4b20 + # 4: 4e616d65 + # 8: 00 + + .section .rodata, "a", @progbits + +.Ldata001: .byte 0x08, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00 + .byte 0x06, 0x00, 0x00, 0x00 diff --git a/binary_sdk/libwpa_stage1/wpa_debug.S b/binary_sdk/libwpa_stage1/wpa_debug.S new file mode 100644 index 0000000..a9b21cc --- /dev/null +++ b/binary_sdk/libwpa_stage1/wpa_debug.S @@ -0,0 +1,19 @@ + + .section .irom0.text, "ax", @progbits + +# Function @ .irom0.text+0x0 + .balign 4 + .literal_position + .global eloop_cancel_timeout + .type eloop_cancel_timeout, @function +eloop_cancel_timeout: + movi a2, 0 /* 0x00000000 */ # 0: 0c02 + ret /* 0x00000000 */ # 2: 0df0 + +# Function @ .irom0.text+0x4 + .balign 4 + .global eloop_register_timeout + .type eloop_register_timeout, @function +eloop_register_timeout: + movi a2, 0 /* 0x00000000 */ # 4: 0c02 + ret /* 0x00000000 */ # 6: 0df0 diff --git a/binary_sdk/libwpa_stage1/wpa_ie.S b/binary_sdk/libwpa_stage1/wpa_ie.S new file mode 100644 index 0000000..dbb9d57 --- /dev/null +++ b/binary_sdk/libwpa_stage1/wpa_ie.S @@ -0,0 +1,356 @@ + + .section .irom0.text, "ax", @progbits + + .literal_position # 0: 00000000 + # 4: 00000000 + +# Function @ .irom0.text+0x8 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global wpa_parse_wpa_ie + .type wpa_parse_wpa_ie, @function +wpa_parse_wpa_ie: + addi sp, sp, -16 /* (local0) */ # 8: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # b: 0901 + beqz a3, .Lbr001 # d: 8cf3 + l8ui a0, a2, 0 /* [arg0] */ # f: 020200 + movi a5, 48 /* 0x00000030 */ # 12: 3c05 + bne a0, a5, .Lbr001 # 14: 579008 + call0 wpa_parse_wpa_ie_rsn # 17: 01faffc0 + # 1b: 0000 + j .Lbr002 # 1d: 460100 +.Lbr001: call0 wpa_parse_wpa_ie_wpa # 20: 01f9ffc0 + # 24: 0000 +.Lbr002: l32i a0, sp, 0 /* [(local0)] */ # 26: 0801 + addi sp, sp, 16 /* (top of frame) */ # 28: 12c110 + ret # 2b: 0df0 + + .literal_position # 30: 01f25000 + # 34: 04ac0f00 + # 38: 01ac0f00 + # 3c: 03ac0f00 + +# Function @ .irom0.text+0x40 + .balign 4 +.Lfunc001: l8ui a7, a2, 1 /* [arg0+0x1] */ # 40: 720201 + l8ui a5, a2, 5 /* [arg0+0x5] */ # 43: 520205 + bnez a7, .Lbr003 # 46: cc27 + movi a2, 1 /* 0x00000001 */ # 48: 0c12 + ret /* 0x00000001 */ # 4a: 0df0 +.Lbr003: bltui a7, 6, .Lbr004 # 4c: b66737 + l8ui a8, a2, 2 /* [arg0+0x2] */ # 4f: 820202 + l8ui a9, a2, 3 /* [arg0+0x3] */ # 52: 920203 + l8ui a6, a2, 4 /* [arg0+0x4] */ # 55: 620204 + slli a9, a9, 16 # 58: 009911 + slli a6, a6, 8 # 5b: 806611 + slli a8, a8, 24 # 5e: 808801 + or a5, a5, a6 # 61: 605520 + movi a6, 0x0050f201 # 64: 61f3ff + or a8, a8, a9 # 67: 908820 + or a5, a5, a8 # 6a: 805520 + bne a5, a6, .Lbr004 # 6d: 679516 + l8ui a8, a2, 6 /* [arg0+0x6] */ # 70: 820206 + bnei a8, 1, .Lbr004 # 73: 661810 + l8ui a9, a2, 7 /* [arg0+0x7] */ # 76: 920207 + bnez a9, .Lbr004 # 79: cca9 + s32i a2, a4, 0 /* arg0 -> [arg2] */ # 7b: 2904 + l8ui a10, a2, 1 /* [arg0+0x1] */ # 7d: a20201 + addi a10, a10, 2 /* [arg0+0x1]+0x2 */ # 80: 2baa + s32i a10, a4, 4 /* [arg0+0x1]+0x2 -> [arg2+0x4] */ # 82: a914 + j .Lbr007 # 84: c61f00 +.Lbr004: addi a11, a2, 5 /* arg0+0x5 */ # 87: 5bb2 + bgeu a11, a3, .Lbr005 # 89: 37bb2f + movi a3, 19 /* 0x00000013 */ # 8c: 1c33 + bgeu a3, a7, .Lbr005 # 8e: 77b32a + l8ui a5, a2, 5 /* [arg0+0x5] */ # 91: 520205 + l8ui a8, a2, 2 /* [arg0+0x2] */ # 94: 820202 + l8ui a9, a2, 3 /* [arg0+0x3] */ # 97: 920203 + l8ui a6, a2, 4 /* [arg0+0x4] */ # 9a: 620204 + slli a9, a9, 16 # 9d: 009911 + slli a6, a6, 8 # a0: 806611 + slli a8, a8, 24 # a3: 808801 + or a5, a5, a6 # a6: 605520 + movi a6, 0x000fac04 # a9: 61e2ff + or a8, a8, a9 # ac: 908820 + or a5, a5, a8 # af: 805520 + bne a5, a6, .Lbr005 # b2: 679506 + addi a7, a2, 6 /* arg0+0x6 */ # b5: 6b72 + s32i a7, a4, 16 /* arg0+0x6 -> [arg2+0x10] */ # b7: 7944 + j .Lbr007 # b9: 861200 +.Lbr005: bltui a7, 7, .Lbr007 # bc: b67747 + movi a8, 0x000fac01 # bf: 81deff + l8ui a6, a2, 3 /* [arg0+0x3] */ # c2: 620203 + l8ui a5, a2, 4 /* [arg0+0x4] */ # c5: 520204 + l8ui a3, a2, 5 /* [arg0+0x5] */ # c8: 320205 + slli a5, a5, 8 # cb: 805511 + or a3, a3, a5 # ce: 503320 + l8ui a5, a2, 2 /* [arg0+0x2] */ # d1: 520202 + slli a6, a6, 16 # d4: 006611 + slli a5, a5, 24 # d7: 805501 + or a5, a5, a6 # da: 605520 + or a3, a3, a5 # dd: 503320 + bne a3, a8, .Lbr006 # e0: 87930e + addi a7, a2, 6 /* arg0+0x6 */ # e3: 6b72 + s32i a7, a4, 20 /* arg0+0x6 -> [arg2+0x14] */ # e5: 7954 + l8ui a6, a2, 1 /* [arg0+0x1] */ # e7: 620201 + addi a6, a6, -4 /* [arg0+0x1]-0x4 */ # ea: 62c6fc + s32i a6, a4, 24 /* [arg0+0x1]-0x4 -> [arg2+0x18] */ # ed: 6964 + j .Lbr007 # ef: 060500 +.Lbr006: bltui a7, 7, .Lbr007 # f2: b67711 + movi a8, 0x000fac03 # f5: 81d1ff + bne a3, a8, .Lbr007 # f8: 87930b + addi a10, a2, 6 /* arg0+0x6 */ # fb: 6ba2 + s32i a10, a4, 28 /* arg0+0x6 -> [arg2+0x1c] */ # fd: a974 + l8ui a9, a2, 1 /* [arg0+0x1] */ # ff: 920201 + addi a9, a9, -4 /* [arg0+0x1]-0x4 */ # 102: 92c9fc + s32i a9, a4, 32 /* [arg0+0x1]-0x4 -> [arg2+0x20] */ # 105: 9984 +.Lbr007: movi a2, 0 /* 0x00000000 */ # 107: 0c02 + ret /* 0x00000000 */ # 109: 0df0 + + .literal_position # 10c: 00000000 + +# Function @ .irom0.text+0x110 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word @ -0x10 +# (local5): word @ -0xc +# (local6): word[2] @ -0x8 + .balign 4 + .global wpa_supplicant_parse_ies + .type wpa_supplicant_parse_ies, @function +wpa_supplicant_parse_ies: + addi sp, sp, -32 /* (local0) */ # 110: 12c1e0 + s32i a15, sp, 24 /* a15 -> [(local6)] */ # 113: f961 + s32i a0, sp, 8 /* a0 -> [(local2)] */ # 115: 0921 + s32i a14, sp, 20 /* a14 -> [(local5)] */ # 117: e951 + s32i a13, sp, 16 /* a13 -> [(local4)] */ # 119: d941 + s32i a12, sp, 12 /* a12 -> [(local3)] */ # 11b: c931 + mov a13, a4 /* arg2 */ # 11d: dd04 + mov a12, a2 /* arg0 */ # 11f: cd02 + mov a14, a3 /* arg1 */ # 121: ed03 + mov a2, a4 /* arg2 */ # 123: 2d04 + movi a3, 0 /* 0x00000000 */ # 125: 0c03 + movi a4, 36 /* 0x00000024 */ # 127: 2c44 + call0 memset # 129: 01f8ffc0 + # 12d: 0000 + s32i a13, sp, 4 /* arg2 -> [(local1)] */ # 12f: d911 + blti a14, 2, .Lbr015 # 131: a62e70 + movi a15, 48 /* 0x00000030 */ # 134: 3c0f + movi a2, 0 /* 0x00000000 */ # 136: 0c02 + add a13, a12, a14 # 138: eadc + movi a14, 221 /* 0x000000dd */ # 13a: e2a0dd + addi a0, a13, -1 # 13d: 0b0d + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 13f: 0901 +.Lbr008: l8ui a0, a12, 0 # 141: 020c00 + l8ui a3, a12, 1 # 144: 320c01 + bne a0, a14, .Lbr009 # 147: e7900c + l32i a3, sp, 0 /* [(local0)] */ # 14a: 3801 + beq a3, a12, .Lbr014 # 14c: c71346 + l8ui a3, a12, 1 # 14f: 320c01 + bnez a3, .Lbr009 # 152: cc13 + j .Lbr014 # 154: 860f00 +.Lbr009: add a3, a3, a12 # 157: ca33 + addi a3, a3, 2 # 159: 2b33 + bltu a13, a3, .Lbr013 # 15b: 373d35 + bne a0, a15, .Lbr012 # 15e: f7901b + l32i a5, sp, 4 /* [(local1)] */ # 161: 5811 + s32i a12, a5, 8 /* a12 -> [[(local1)]+0x8] */ # 163: c925 + l8ui a4, a12, 1 # 165: 420c01 + addi a4, a4, 2 # 168: 2b44 + s32i a4, a5, 12 /* a4 -> [[(local1)]+0xc] */ # 16a: 4935 +.Lbr010: l8ui a3, a12, 1 # 16c: 320c01 + add a3, a3, a12 # 16f: ca33 + addi a3, a3, 2 # 171: 2b33 +.Lbr011: mov a12, a3 # 173: cd03 + addi a4, a3, 1 # 175: 1b43 + bltu a4, a13, .Lbr008 # 177: d734c6 + j .Lbr014 # 17a: 060600 +.Lbr012: bne a0, a14, .Lbr011 # 17d: e790f2 + mov a2, a12 # 180: 2d0c + mov a3, a13 # 182: 3d0d + l32i a4, sp, 4 /* [(local1)] */ # 184: 4811 + call0 .Lfunc001 # 186: 85ebff + bltz a2, .Lbr014 # 189: 969200 + blti a2, 1, .Lbr010 # 18c: a612dc + movi a2, 0 /* 0x00000000 */ # 18f: 0c02 + j .Lbr014 # 191: 460000 +.Lbr013: movi a2, -1 /* 0xffffffff */ # 194: 7cf2 +.Lbr014: l32i a12, sp, 12 /* [(local3)] */ # 196: c831 + l32i a13, sp, 16 /* [(local4)] */ # 198: d841 + l32i a14, sp, 20 /* [(local5)] */ # 19a: e851 + l32i a15, sp, 24 /* [(local6)] */ # 19c: f861 + l32i a0, sp, 8 /* [(local2)] */ # 19e: 0821 + addi sp, sp, 32 /* (top of frame) */ # 1a0: 12c120 + ret # 1a3: 0df0 +.Lbr015: movi a2, 0 /* 0x00000000 */ # 1a5: 0c02 + j .Lbr014 # 1a7: c6faff + + .balign 4 +# Function @ .irom0.text+0x1ac + .balign 4 +.Lfunc002: movi a7, 23 /* 0x00000017 */ # 1ac: 1c77 + bgeu a7, a3, .Lbr023 # 1ae: 37b774 + movi a9, 4 /* 0x00000004 */ # 1b1: 0c49 + movi a8, -35 /* 0xffffffdd */ # 1b3: 82afdd + movi a3, 1 /* 0x00000001 */ # 1b6: 0c13 + movi a11, -14 /* 0xfffffff2 */ # 1b8: 7c2b + movi a10, 80 /* 0x00000050 */ # 1ba: 5c0a + s8i a10, a2, 3 /* 0x50 -> [arg0+0x3] */ # 1bc: a24203 + s8i a11, a2, 4 /* 0xf2 -> [arg0+0x4] */ # 1bf: b24204 + s8i a3, a2, 5 /* 0x01 -> [arg0+0x5] */ # 1c2: 324205 + s8i a8, a2, 0 /* 0xdd -> [arg0] */ # 1c5: 824200 + s8i a3, a2, 6 /* 0x01 -> [arg0+0x6] */ # 1c8: 324206 + movi a8, 0 /* 0x00000000 */ # 1cb: 0c08 + s8i a8, a2, 2 /* 0x00 -> [arg0+0x2] */ # 1cd: 824202 + s8i a8, a2, 7 /* 0x00 -> [arg0+0x7] */ # 1d0: 824207 + bnei a5, 8, .Lbr017 # 1d3: 66850e + s8i a9, a2, 11 /* 0x04 -> [arg0+0xb] */ # 1d6: 92420b +.Lbr016: s8i a8, a2, 8 /* 0x00 -> [arg0+0x8] */ # 1d9: 824208 + s8i a10, a2, 9 /* 0x50 -> [arg0+0x9] */ # 1dc: a24209 + s8i a11, a2, 10 /* 0xf2 -> [arg0+0xa] */ # 1df: b2420a + j .Lbr020 # 1e2: c60600 +.Lbr017: bnei a5, 2, .Lbr018 # 1e5: 662507 + movi a5, 2 /* 0x00000002 */ # 1e8: 0c25 + s8i a5, a2, 11 /* 0x02 -> [arg0+0xb] */ # 1ea: 52420b + j .Lbr016 # 1ed: 06faff +.Lbr018: bnei a5, 0x100, .Lbr021 # 1f0: 66f51e + s8i a8, a2, 8 /* 0x00 -> [arg0+0x8] */ # 1f3: 824208 + s8i a10, a2, 9 /* 0x50 -> [arg0+0x9] */ # 1f6: a24209 + s8i a11, a2, 10 /* 0xf2 -> [arg0+0xa] */ # 1f9: b2420a + movi a5, 5 /* 0x00000005 */ # 1fc: 0c55 +.Lbr019: s8i a5, a2, 11 /* a5 -> [arg0+0xb] */ # 1fe: 52420b +.Lbr020: s8i a3, a2, 12 /* 0x01 -> [arg0+0xc] */ # 201: 32420c + s8i a8, a2, 13 /* 0x00 -> [arg0+0xd] */ # 204: 82420d + beqi a4, 8, .Lbr025 # 207: 268424 + bnei a4, 2, .Lbr024 # 20a: 66241c + movi a9, 2 /* 0x00000002 */ # 20d: 0c29 + j .Lbr025 # 20f: 060700 +.Lbr021: bnei a5, 128, .Lbr023 # 212: 66e510 + s8i a8, a2, 8 /* 0x00 -> [arg0+0x8] */ # 215: 824208 + s8i a10, a2, 9 /* 0x50 -> [arg0+0x9] */ # 218: a24209 + s8i a11, a2, 10 /* 0xf2 -> [arg0+0xa] */ # 21b: b2420a + mov a5, a3 /* 0x00000001 */ # 21e: 5d03 + j .Lbr019 # 220: 86f6ff +.Lbr022: beqi a6, 16, .Lbr026 # 223: 26b625 +.Lbr023: movi a2, -1 /* 0xffffffff */ # 226: 7cf2 + ret /* 0xffffffff */ # 228: 0df0 +.Lbr024: bnei a4, 1, .Lbr023 # 22a: 6614f8 + mov a9, a8 /* 0x00000000 */ # 22d: 9d08 +.Lbr025: s8i a9, a2, 17 /* a9 -> [arg0+0x11] */ # 22f: 924211 + s8i a8, a2, 14 /* 0x00 -> [arg0+0xe] */ # 232: 82420e + s8i a10, a2, 15 /* 0x50 -> [arg0+0xf] */ # 235: a2420f + s8i a11, a2, 16 /* 0xf2 -> [arg0+0x10] */ # 238: b24210 + s8i a3, a2, 18 /* 0x01 -> [arg0+0x12] */ # 23b: 324212 + s8i a8, a2, 19 /* 0x00 -> [arg0+0x13] */ # 23e: 824213 + beqi a6, 1, .Lbr027 # 241: 261609 + bnei a6, 2, .Lbr022 # 244: 6626db + movi a3, 2 /* 0x00000002 */ # 247: 0c23 + j .Lbr027 # 249: 460000 +.Lbr026: mov a3, a8 /* 0x00000000 */ # 24c: 3d08 +.Lbr027: s8i a8, a2, 20 /* 0x00 -> [arg0+0x14] */ # 24e: 824214 + s8i a10, a2, 21 /* 0x50 -> [arg0+0x15] */ # 251: a24215 + s8i a11, a2, 22 /* 0xf2 -> [arg0+0x16] */ # 254: b24216 + movi a6, 22 /* 0x00000016 */ # 257: 1c66 + s8i a3, a2, 23 /* a3 -> [arg0+0x17] */ # 259: 324217 + s8i a6, a2, 1 /* 0x16 -> [arg0+0x1] */ # 25c: 624201 + movi a2, 24 /* 0x00000018 */ # 25f: 1c82 + ret /* 0x00000018 */ # 261: 0df0 + + .balign 4 +# Function @ .irom0.text+0x264 + .balign 4 +.Lfunc003: movi a7, 21 /* 0x00000015 */ # 264: 1c57 + bgeu a7, a3, .Lbr035 # 266: 37b771 + movi a10, -84 /* 0xffffffac */ # 269: a2afac + movi a9, 4 /* 0x00000004 */ # 26c: 0c49 + movi a3, 1 /* 0x00000001 */ # 26e: 0c13 + movi a11, 48 /* 0x00000030 */ # 270: 3c0b + movi a8, 0 /* 0x00000000 */ # 272: 0c08 + s8i a8, a2, 3 /* 0x00 -> [arg0+0x3] */ # 274: 824203 + s8i a11, a2, 0 /* 0x30 -> [arg0] */ # 277: b24200 + s8i a3, a2, 2 /* 0x01 -> [arg0+0x2] */ # 27a: 324202 + movi a11, 15 /* 0x0000000f */ # 27d: 0cfb + bnei a5, 8, .Lbr029 # 27f: 66850e + s8i a9, a2, 7 /* 0x04 -> [arg0+0x7] */ # 282: 924207 +.Lbr028: s8i a8, a2, 4 /* 0x00 -> [arg0+0x4] */ # 285: 824204 + s8i a11, a2, 5 /* 0x0f -> [arg0+0x5] */ # 288: b24205 + s8i a10, a2, 6 /* 0xac -> [arg0+0x6] */ # 28b: a24206 + j .Lbr032 # 28e: c60600 +.Lbr029: bnei a5, 2, .Lbr030 # 291: 662507 + movi a5, 2 /* 0x00000002 */ # 294: 0c25 + s8i a5, a2, 7 /* 0x02 -> [arg0+0x7] */ # 296: 524207 + j .Lbr028 # 299: 06faff +.Lbr030: bnei a5, 0x100, .Lbr036 # 29c: 66f53f + s8i a8, a2, 4 /* 0x00 -> [arg0+0x4] */ # 29f: 824204 + s8i a11, a2, 5 /* 0x0f -> [arg0+0x5] */ # 2a2: b24205 + s8i a10, a2, 6 /* 0xac -> [arg0+0x6] */ # 2a5: a24206 + movi a5, 5 /* 0x00000005 */ # 2a8: 0c55 +.Lbr031: s8i a5, a2, 7 /* a5 -> [arg0+0x7] */ # 2aa: 524207 +.Lbr032: s8i a3, a2, 8 /* 0x01 -> [arg0+0x8] */ # 2ad: 324208 + s8i a8, a2, 9 /* 0x00 -> [arg0+0x9] */ # 2b0: 824209 + beqi a4, 8, .Lbr034 # 2b3: 26840c + bnei a4, 2, .Lbr033 # 2b6: 662404 + movi a9, 2 /* 0x00000002 */ # 2b9: 0c29 + j .Lbr034 # 2bb: 060100 +.Lbr033: bnei a4, 1, .Lbr035 # 2be: 661419 + mov a9, a8 /* 0x00000000 */ # 2c1: 9d08 +.Lbr034: s8i a9, a2, 13 /* a9 -> [arg0+0xd] */ # 2c3: 92420d + s8i a8, a2, 10 /* 0x00 -> [arg0+0xa] */ # 2c6: 82420a + s8i a11, a2, 11 /* 0x0f -> [arg0+0xb] */ # 2c9: b2420b + s8i a10, a2, 12 /* 0xac -> [arg0+0xc] */ # 2cc: a2420c + s8i a3, a2, 14 /* 0x01 -> [arg0+0xe] */ # 2cf: 32420e + s8i a8, a2, 15 /* 0x00 -> [arg0+0xf] */ # 2d2: 82420f + beqi a6, 1, .Lbr038 # 2d5: 261619 + beqi a6, 2, .Lbr037 # 2d8: 262614 +.Lbr035: movi a2, -1 /* 0xffffffff */ # 2db: 7cf2 + ret /* 0xffffffff */ # 2dd: 0df0 +.Lbr036: bnei a5, 128, .Lbr035 # 2df: 66e5f8 + s8i a8, a2, 4 /* 0x00 -> [arg0+0x4] */ # 2e2: 824204 + s8i a11, a2, 5 /* 0x0f -> [arg0+0x5] */ # 2e5: b24205 + s8i a10, a2, 6 /* 0xac -> [arg0+0x6] */ # 2e8: a24206 + mov a5, a3 /* 0x00000001 */ # 2eb: 5d03 + j .Lbr031 # 2ed: 46eeff +.Lbr037: movi a3, 2 /* 0x00000002 */ # 2f0: 0c23 +.Lbr038: s8i a11, a2, 17 /* 0x0f -> [arg0+0x11] */ # 2f2: b24211 + s8i a10, a2, 18 /* 0xac -> [arg0+0x12] */ # 2f5: a24212 + s8i a3, a2, 19 /* a3 -> [arg0+0x13] */ # 2f8: 324213 + s8i a8, a2, 16 /* 0x00 -> [arg0+0x10] */ # 2fb: 824210 + s8i a8, a2, 21 /* 0x00 -> [arg0+0x15] */ # 2fe: 824215 + movi a6, 20 /* 0x00000014 */ # 301: 1c46 + s8i a8, a2, 20 /* 0x00 -> [arg0+0x14] */ # 303: 824214 + s8i a6, a2, 1 /* 0x14 -> [arg0+0x1] */ # 306: 624201 + movi a2, 22 /* 0x00000016 */ # 309: 1c62 + ret /* 0x00000016 */ # 30b: 0df0 + + .balign 4 +# Function @ .irom0.text+0x310 +# Local variables/stack: +# (local0): word[4] @ -0x20 +# (local1): word[4] @ -0x10 + .balign 4 + .global wpa_gen_wpa_ie + .type wpa_gen_wpa_ie, @function +wpa_gen_wpa_ie: + addi sp, sp, -32 /* (local0) */ # 310: 12c1e0 + mov a9, a3 /* arg1 */ # 313: 9d03 + l32i a5, a2, 0x118 /* [arg0+0x118] */ # 315: 522246 + l32i a6, a2, 0x11c /* [arg0+0x11c] */ # 318: 622247 + mov a3, a4 /* arg2 */ # 31b: 3d04 + s32i a0, sp, 16 /* a0 -> [(local1)] */ # 31d: 0941 + l32i a0, a2, 0x164 /* [arg0+0x164] */ # 31f: 022259 + l32i a4, a2, 0x114 /* [arg0+0x114] */ # 322: 422245 + bnei a0, 2, .Lbr039 # 325: 66200c + l32i a7, a2, 0x120 /* [arg0+0x120] */ # 328: 722248 + s32i a2, sp, 0 /* arg0 -> [(local0)] */ # 32b: 2901 + mov a2, a9 /* arg1 */ # 32d: 2d09 + call0 .Lfunc003 # 32f: 45f3ff + j .Lbr040 # 332: 060100 +.Lbr039: mov a2, a9 /* arg1 */ # 335: 2d09 + call0 .Lfunc002 # 337: 45e7ff +.Lbr040: l32i a0, sp, 16 /* [(local1)] */ # 33a: 0841 + addi sp, sp, 32 /* (top of frame) */ # 33c: 12c120 + ret # 33f: 0df0 diff --git a/binary_sdk/libwpa_stage1/wpa_main.S b/binary_sdk/libwpa_stage1/wpa_main.S new file mode 100644 index 0000000..042b6f8 --- /dev/null +++ b/binary_sdk/libwpa_stage1/wpa_main.S @@ -0,0 +1,423 @@ + + .section .irom0.text, "ax", @progbits + + .literal_position # 0: 00000000 + # 4: 00000000 + # 8: 00000000 + # c: 00000000 + # 10: 00000000 + # 14: 00000000 + # 18: 00000000 + # 1c: 00000000 + # 20: 00000000 + # 24: 00000000 + +# Function @ .irom0.text+0x28 +# Local variables/stack: +# (local0): word[4] @ -0x30 +# (local1): word @ -0x20 +# (local2): word @ -0x1c +# (local3): word @ -0x18 +# (local4): word @ -0x14 +# (local5): word @ -0x10 +# (local6): word[3] @ -0xc + .balign 4 + .global ppInstallKey + .type ppInstallKey, @function +ppInstallKey: + mov a5, a3 /* arg1 */ # 28: 5d03 + addi sp, sp, -48 /* (local0) */ # 2a: 12c1d0 + s32i a14, sp, 36 /* a14 -> [(local6)] */ # 2d: e991 + l32i a7, sp, 48 /* [(local7)] */ # 2f: 78c1 + s32i a6, sp, 16 /* arg4 -> [(local1)] */ # 31: 6941 + s32i a0, sp, 24 /* a0 -> [(local3)] */ # 33: 0961 + s32i a13, sp, 32 /* a13 -> [(local5)] */ # 35: d981 + s32i a12, sp, 28 /* a12 -> [(local4)] */ # 37: c971 + l32i a13, sp, 56 /* [(FP)+0x8] */ # 39: d8e1 + mov a12, a2 /* arg0 */ # 3b: cd02 + l32i a0, sp, 52 /* [(FP)+0x4] */ # 3d: 08d1 + movi a2, 0 /* 0x00000000 */ # 3f: 0c02 + mov a3, a12 /* arg0 */ # 41: 3d0c + s32i a0, sp, 0 /* [(FP)+0x4] -> [(local0)] */ # 43: 0901 + addi a6, a13, 1 /* [(FP)+0x8]+0x1 */ # 45: 1b6d + s32i a6, sp, 20 /* [(FP)+0x8]+0x1 -> [(local2)] */ # 47: 6951 + call0 ic_set_key # 49: 01f1ffc0 + # 4d: 0000 + movi a0, g_ic # 4f: 01ecff + addi a2, a13, -1 /* [(FP)+0x8]-0x1 */ # 52: 0b2d + addx4 a14, a13, a0 # 54: 00eda0 + bgei a13, 4, .Lbr001 # 57: e64d1d + l32i a3, a0, 16 /* [g_ic+0x10] */ # 5a: 3840 + l32i a3, a3, 136 /* [[g_ic+0x10]+0x88] */ # 5c: 322322 + s8i a2, a3, 233 /* [(FP)+0x8]-0x1 -> [[[g_ic+0x10]+0x88]+0xe9] */ # 5f: 2243e9 + l32i a13, a14, 0x18c # 62: d22e63 + bnez a13, .Lbr003 # 65: ecad + movi a2, 160 /* 0x000000a0 */ # 67: 22a0a0 + call0 malloc # 6a: 01eaffc0 + # 6e: 0000 + mov a13, a2 # 70: dd02 + s32i a2, a14, 0x18c # 72: 226e63 + j .Lbr003 # 75: 860600 +.Lbr001: l32i a13, a14, 0x18c # 78: d22e63 + beqz a13, .Lbr002 # 7b: 8c6d + mov a2, a13 # 7d: 2d0d + call0 free # 7f: 01e6ffc0 + # 83: 0000 +.Lbr002: movi a2, 160 /* 0x000000a0 */ # 85: 22a0a0 + call0 malloc # 88: 01e5ffc0 + # 8c: 0000 + mov a13, a2 # 8e: dd02 + s32i a2, a14, 0x18c # 90: 226e63 +.Lbr003: mov a2, a13 # 93: 2d0d + movi a3, 160 /* 0x000000a0 */ # 95: 32a0a0 + call0 bzero # 98: 01e2ffc0 + # 9c: 0000 + bnei a12, 2, .Lbr006 # 9e: 662c26 + movi a0, tkip # a1: 01d8ff +.Lbr004: s32i a0, a13, 152 # a4: 026d26 +.Lbr005: movi a4, 8 /* 0x00000008 */ # a7: 0c84 + movi a2, 144 /* 0x00000090 */ # a9: 22a090 + l32i a3, sp, 20 /* [(local2)] */ # ac: 3851 + s16i a3, a13, 0 # ae: 325d00 + add a2, a13, a2 # b1: 2a2d + l32i a3, sp, 16 /* [(local1)] */ # b3: 3841 + call0 memcpy # b5: 01dbffc0 + # b9: 0000 + l32i a12, sp, 28 /* [(local4)] */ # bb: c871 + l32i a13, sp, 32 /* [(local5)] */ # bd: d881 + l32i a14, sp, 36 /* [(local6)] */ # bf: e891 + l32i a0, sp, 24 /* [(local3)] */ # c1: 0861 + addi sp, sp, 48 /* (local7) */ # c3: 12c130 + ret # c6: 0df0 +.Lbr006: bnei a12, 3, .Lbr007 # c8: 663c05 + movi a0, ccmp # cb: 01cfff + j .Lbr004 # ce: 86f4ff +.Lbr007: beqi a12, 1, .Lbr008 # d1: 261c02 + bnei a12, 5, .Lbr005 # d4: 665ccf +.Lbr008: movi a0, wep # d7: 01cdff + j .Lbr004 # da: 86f1ff + + .literal_position # e0: 00000000 + # e4: 00000000 + +# Function @ .irom0.text+0xe8 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 +.Lfunc001: mov a3, a2 /* arg0 */ # e8: 3d02 + movi a2, g_ic # ea: 21fdff + addi sp, sp, -16 /* (local0) */ # ed: 12c1f0 + l32i a2, a2, 16 /* [g_ic+0x10] */ # f0: 2842 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # f2: 0901 + l32i a2, a2, 0 /* [[g_ic+0x10]] */ # f4: 2802 + call0 ieee80211_output_pbuf # f6: 01fbffc0 + # fa: 0000 + l32i a0, sp, 0 /* [(local0)] */ # fc: 0801 + addi sp, sp, 16 /* (top of frame) */ # fe: 12c110 + ret # 101: 0df0 + + .literal_position # 104: 00000000 + # 108: 00000000 + # 10c: 00000000 + # 110: 00000000 + +# Function @ .irom0.text+0x114 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 +.Lfunc002: movi a3, 192 /* 0x000000c0 */ # 114: 32a0c0 + addi sp, sp, -16 /* (local0) */ # 117: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 11a: c911 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 11c: 0901 + mov a12, a2 /* arg0 */ # 11e: cd02 + movi a2, g_ic # 120: 21f9ff + mov a4, a12 /* arg0 */ # 123: 4d0c + l32i a2, a2, 16 /* [g_ic+0x10] */ # 125: 2842 + call0 ieee80211_send_mgmt # 127: 01f9ffc0 + # 12b: 0000 + movi a2, g_ic # 12d: 21f6ff + movi a3, 2 /* 0x00000002 */ # 130: 0c23 + movi a5, 192 /* 0x000000c0 */ # 132: 52a0c0 + slli a4, a12, 8 # 135: 804c11 + or a4, a4, a5 # 138: 504420 + call0 ieee80211_sta_new_state # 13b: 01f5ffc0 + # 13f: 0000 + l32i a12, sp, 4 /* [(local1)] */ # 141: c811 + l32i a0, sp, 0 /* [(local0)] */ # 143: 0801 + addi sp, sp, 16 /* (top of frame) */ # 145: 12c110 + ret # 148: 0df0 + + .literal_position # 14c: 00000000 + # 150: 00000000 + +# Function @ .irom0.text+0x154 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global wpa_config_profile + .type wpa_config_profile, @function +wpa_config_profile: + addi sp, sp, -16 /* (local0) */ # 154: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 157: 0901 + addmi a0, a2, 512 /* arg0+0x200 */ # 159: 02d202 + l8ui a0, a0, 9 /* [arg0+0x209] */ # 15c: 020009 + beqi a0, 2, .Lbr011 # 15f: 26201d + beqi a0, 3, .Lbr011 # 162: 26301a + beqi a0, 6, .Lbr011 # 165: 266017 + beqi a0, 4, .Lbr009 # 168: 264005 + beqi a0, 5, .Lbr009 # 16b: 265002 + bnei a0, 7, .Lbr010 # 16e: 667007 +.Lbr009: movi a2, 2 /* 0x00000002 */ # 171: 0c22 + call0 wpa_set_profile # 173: 01f6ffc0 + # 177: 0000 +.Lbr010: l32i a0, sp, 0 /* [(local0)] */ # 179: 0801 + addi sp, sp, 16 /* (top of frame) */ # 17b: 12c110 + ret # 17e: 0df0 +.Lbr011: movi a2, 1 /* 0x00000001 */ # 180: 0c12 + call0 wpa_set_profile # 182: 01f3ffc0 + # 186: 0000 + j .Lbr010 # 188: 46fbff + + .literal_position # 18c: 00000000 + +# Function @ .irom0.text+0x190 +# Local variables/stack: +# (local0): word[4] @ -0x20 +# (local1): word[4] @ -0x10 + .balign 4 + .global wpa_config_bss + .type wpa_config_bss, @function +wpa_config_bss: + mov a7, a2 /* arg0 */ # 190: 7d02 + addi sp, sp, -32 /* (local0) */ # 192: 12c1e0 + movi a4, 394 /* 0x0000018a */ # 195: 42a18a + l16ui a8, a2, 0x1e4 /* [arg0+0x1e4] */ # 198: 8212f2 + l16ui a6, a2, 0x1e6 /* [arg0+0x1e6] */ # 19b: 6212f3 + s32i a0, sp, 16 /* a0 -> [(local1)] */ # 19e: 0941 + add a4, a2, a4 /* arg0+0x18a */ # 1a0: 4a42 + l8ui a5, a4, 130 /* [arg0+0x20c] */ # 1a2: 520482 + movi a0, 488 /* 0x000001e8 */ # 1a5: 02a1e8 + l8ui a4, a4, 128 /* [arg0+0x20a] */ # 1a8: 420480 + slli a6, a6, 16 # 1ab: 006611 + l32i a2, a2, 16 /* [arg0+0x10] */ # 1ae: 2842 + or a6, a6, a8 # 1b0: 806620 + l32i a2, a2, 0 /* [[arg0+0x10]] */ # 1b3: 2802 + s32i a6, sp, 0 /* a6 -> [(local0)] */ # 1b5: 6901 + movi a6, 527 /* 0x0000020f */ # 1b7: 62a20f + addi a2, a2, 41 /* [[arg0+0x10]]+0x29 */ # 1ba: 22c229 + add a6, a7, a6 /* arg0+0x20f */ # 1bd: 6a67 + add a7, a7, a0 /* arg0+0x1e8 */ # 1bf: 0a77 + call0 wpa_set_bss # 1c1: 01f2ffc0 + # 1c5: 0000 + l32i a0, sp, 16 /* [(local1)] */ # 1c7: 0841 + addi sp, sp, 32 /* (top of frame) */ # 1c9: 12c120 + ret # 1cc: 0df0 + + .literal_position # 1d0: 00000000 + +# Function @ .irom0.text+0x1d4 + .balign 4 + .global wpa_config_assoc_ie + .type wpa_config_assoc_ie, @function +wpa_config_assoc_ie: + movi a6, g_ic # 1d4: 61ffff + bnei a2, 1, .Lbr013 # 1d7: 661207 + s32i a3, a6, 0x174 /* arg1 -> [g_ic+0x174] */ # 1da: 32665d +.Lbr012: s16i a4, a3, 0 /* arg2 -> [arg1] */ # 1dd: 425300 + ret /* arg0 */ # 1e0: 0df0 +.Lbr013: s32i a3, a6, 0x178 /* arg1 -> [g_ic+0x178] */ # 1e2: 32665e + j .Lbr012 # 1e5: 06fdff + + .literal_position # 1e8: 00000000 + # 1ec: 00000000 + +# Function @ .irom0.text+0x1f0 + .balign 4 + .global dhcp_bind_check + .type dhcp_bind_check, @function +dhcp_bind_check: + movi a4, g_ic # 1f0: 41feff + l32i a4, a4, 16 /* [g_ic+0x10] */ # 1f3: 4844 + movi a3, g_ic+0x180 # 1f5: 31fdff + l8ui a2, a4, 186 /* [[g_ic+0x10]+0xba] */ # 1f8: 2204ba + l8ui a3, a3, 138 /* [g_ic+0x20a] */ # 1fb: 32038a + beqi a2, 5, .Lbr015 # 1fe: 26520a + beqi a3, 7, .Lbr014 # 201: 267302 + bnei a3, 8, .Lbr015 # 204: 668304 +.Lbr014: movi a5, 2 /* 0x00000002 */ # 207: 0c25 + s8i a5, a4, 186 /* 0x02 -> [[g_ic+0x10]+0xba] */ # 209: 5244ba +.Lbr015: ret /* [[g_ic+0x10]+0xba] */ # 20c: 0df0 + + .literal_position # 210: 00000000 + # 214: 00000000 + # 218: 00000000 + # 21c: 00000100 + # 220: 000e0060 + # 224: 00000000 + # 228: 983a0000 + # 22c: 00000000 + # 230: 00000000 + # 234: 20000000 + # 238: 00000000 + # 23c: 00000000 + # 240: 00000000 + # 244: 00000000 + # 248: 00000000 + # 24c: 00000000 + # 250: 00000000 + # 254: 00000000 + +# Function @ .irom0.text+0x258 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 + .global eagle_auth_done + .type eagle_auth_done, @function +eagle_auth_done: + addi sp, sp, -16 /* (local0) */ # 258: 12c1f0 + s32i a12, sp, 8 /* a12 -> [(local2)] */ # 25b: c921 + movi a12, g_ic # 25d: c1ecff + l32i a12, a12, 16 /* [g_ic+0x10] */ # 260: c84c + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 262: 0911 + l32i a0, a12, 136 /* [[g_ic+0x10]+0x88] */ # 264: 022c22 + l32i a2, a0, 8 /* [[[g_ic+0x10]+0x88]+0x8] */ # 267: 2820 + extui a2, a2, 0, 1 # 269: 202004 + bnez a2, .Lbr017 # 26c: 56220a + movi a2, .Lstr001 # 26f: 21e9ff + l32i a4, a0, 120 /* [[[g_ic+0x10]+0x88]+0x78] */ # 272: 42201e + movi a3, g_ic+0x1e8 # 275: 31e8ff + l8ui a4, a4, 6 /* [[[[g_ic+0x10]+0x88]+0x78]+0x6] */ # 278: 420406 + call0 printf # 27b: 01efffc0 + # 27f: 0000 + l32i a5, a12, 136 /* [[g_ic+0x10]+0x88] */ # 281: 522c22 + l32i a5, a5, 120 /* [[[g_ic+0x10]+0x88]+0x78] */ # 284: 52251e + movi a6, 0x00010000 # 287: 61e5ff + l8ui a5, a5, 6 /* [[[[g_ic+0x10]+0x88]+0x78]+0x6] */ # 28a: 520506 + or a5, a5, a6 # 28d: 605520 + movi a6, 0x60000e00 # 290: 61e4ff + memw # 293: c02000 + s32i a5, a6, 0x3f4 /* a5 -> [0x600011f4] */ # 296: 5266fd + addi a2, a12, 4 /* [g_ic+0x10]+0x4 */ # 299: 4b2c + s32i a2, sp, 0 /* [g_ic+0x10]+0x4 -> [(local0)] */ # 29b: 2901 + call0 os_timer_disarm # 29d: 01e7ffc0 + # 2a1: 0000 + l32i a2, sp, 0 /* [(local0)] */ # 2a3: 2801 + movi a3, dhcp_bind_check # 2a5: 31dfff + movi a4, 0 /* 0x00000000 */ # 2a8: 0c04 + call0 os_timer_setfn # 2aa: 01e5ffc0 + # 2ae: 0000 + l32i a2, sp, 0 /* [(local0)] */ # 2b0: 2801 + movi a3, 0x00003a98 # 2b2: 31ddff + movi a4, 0 /* 0x00000000 */ # 2b5: 0c04 + call0 os_timer_arm # 2b7: 01e3ffc0 + # 2bb: 0000 + movi a9, 1 /* 0x00000001 */ # 2bd: 0c19 + movi a11, g_ic # 2bf: b1dbff + l32i a8, a12, 136 /* [[g_ic+0x10]+0x88] */ # 2c2: 822c22 + l32i a11, a11, 16 /* [g_ic+0x10] */ # 2c5: b84b + movi a10, 0 /* 0x00000000 */ # 2c7: 0c0a + s8i a10, a11, 185 /* 0x00 -> [[g_ic+0x10]+0xb9] */ # 2c9: a24bb9 + s8i a10, a8, 24 /* 0x00 -> [[[g_ic+0x10]+0x88]+0x18] */ # 2cc: a24818 + l32i a7, a8, 8 /* [[[g_ic+0x10]+0x88]+0x8] */ # 2cf: 7828 + l32i a0, a12, 0 /* [[g_ic+0x10]] */ # 2d1: 080c + or a7, a7, a9 # 2d3: 907720 + s32i a7, a8, 8 /* a7 -> [[[g_ic+0x10]+0x88]+0x8] */ # 2d6: 7928 + l8ui a6, a0, 47 /* [[[g_ic+0x10]]+0x2f] */ # 2d8: 62002f + bbsi a6, 3, .Lbr017 # 2db: 37e633 + l32i a2, a0, 4 /* [[[g_ic+0x10]]+0x4] */ # 2de: 2810 + movi a3, dhcpc_flag # 2e0: 31d4ff + bnez a2, .Lbr016 # 2e3: dc72 + l8ui a3, a3, 0 /* [dhcpc_flag] */ # 2e5: 320300 + beqz a3, .Lbr017 # 2e8: ac63 + movi a2, .Lstr002 # 2ea: 21d2ff + call0 printf # 2ed: 01d6ffc0 + # 2f1: 0000 + l32i a2, a12, 0 /* [[g_ic+0x10]] */ # 2f3: 280c + call0 dhcp_start # 2f5: 01d5ffc0 + # 2f9: 0000 + j .Lbr017 # 2fb: c60400 +.Lbr016: addi a2, a0, 4 /* [[g_ic+0x10]]+0x4 */ # 2fe: 4b20 + addi a3, a0, 8 /* [[g_ic+0x10]]+0x8 */ # 300: 8b30 + addi a4, a0, 12 /* [[g_ic+0x10]]+0xc */ # 302: cb40 + call0 system_station_got_ip_set # 304: 01d3ffc0 + # 308: 0000 + l32i a2, a12, 0 /* [[g_ic+0x10]] */ # 30a: 280c + call0 netif_set_up # 30c: 01d2ffc0 + # 310: 0000 +.Lbr017: l32i a12, sp, 8 /* [(local2)] */ # 312: c821 + l32i a0, sp, 4 /* [(local1)] */ # 314: 0811 + addi sp, sp, 16 /* (top of frame) */ # 316: 12c110 + ret # 319: 0df0 + + .balign 4 +# Function @ .irom0.text+0x31c +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global wpa_neg_complete + .type wpa_neg_complete, @function +wpa_neg_complete: + addi sp, sp, -16 /* (local0) */ # 31c: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 31f: 0901 + call0 eagle_auth_done # 321: 050000 + l32i a0, sp, 0 /* [(local0)] */ # 324: 0801 + addi sp, sp, 16 /* (top of frame) */ # 326: 12c110 + ret # 329: 0df0 + + .literal_position # 32c: e8000000 + # 330: 00000000 + # 334: 00000000 + # 338: 14010000 + # 33c: 00000000 + # 340: 00000000 + # 344: 00000000 + # 348: 00000000 + +# Function @ .irom0.text+0x34c +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global wpa_attach + .type wpa_attach, @function +wpa_attach: movi a3, .Lfunc001 # 34c: 31f8ff + movi a5, ppInstallKey # 34f: 51f9ff + movi a6, .Lfunc002 # 352: 61f9ff + movi a7, wpa_neg_complete # 355: 71f9ff + mov a4, a2 /* arg0 */ # 358: 4d02 + addi sp, sp, -16 /* (local0) */ # 35a: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 35d: 0901 + movi a2, 0 /* 0x00000000 */ # 35f: 0c02 + movi a0, 384 /* 0x00000180 */ # 361: 02a180 + add a0, a4, a0 /* arg0+0x180 */ # 364: 0a04 + s32i a2, a4, 0x180 /* 0x00000000 -> [arg0+0x180] */ # 366: 226460 + s32i a0, a4, 0x184 /* arg0+0x180 -> [arg0+0x184] */ # 369: 026461 + movi a4, wpa_config_assoc_ie # 36c: 41f1ff + call0 wpa_register # 36f: 01f5ffc0 + # 373: 0000 + movi a2, eapol_txcb # 375: 21f2ff + movi a3, 3 /* 0x00000003 */ # 378: 0c33 + call0 ppRegisterTxCallback # 37a: 01f3ffc0 + # 37e: 0000 + l32i a0, sp, 0 /* [(local0)] */ # 380: 0801 + addi sp, sp, 16 /* (top of frame) */ # 382: 12c110 + ret # 385: 0df0 + + .section .rodata.str1.4, "MSa", @progbits, 1 + +.Lstr001: .asciz "\nconnected with %s, channel %d\n" # 0: 0a636f6e + # 4: 6e656374 + # 8: 65642077 + # c: 69746820 + # 10: 25732c20 + # 14: 6368616e + # 18: 6e656c20 + # 1c: 25640a00 +.Lstr002: .asciz "dhcp client start...\n" # 20: 64686370 + # 24: 20636c69 + # 28: 656e7420 + # 2c: 73746172 + # 30: 742e2e2e + # 34: 0a00 diff --git a/binary_sdk/libwpa_stage1/wpabuf.S b/binary_sdk/libwpa_stage1/wpabuf.S new file mode 100644 index 0000000..013fcbf --- /dev/null +++ b/binary_sdk/libwpa_stage1/wpabuf.S @@ -0,0 +1,516 @@ + + .section .text, "ax", @progbits + +# Function @ .text+0x0 + .balign 4 + .literal_position +.Lfunc001: l32i a4, a2, 8 /* [arg0+0x8] */ # 0: 4822 + addi a3, a2, 12 /* arg0+0xc */ # 2: cb32 + moveqz a4, a3, a4 # 4: 404383 + mov a2, a4 # 7: 2d04 + ret # 9: 0df0 + + .literal_position # c: 00000000 + # 10: 00000000 + +# Function @ .text+0x14 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 +.Lfunc002: addi sp, sp, -16 /* (local0) */ # 14: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 17: 0901 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 19: c911 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 1b: d921 + mov a12, a3 /* arg1 */ # 1d: cd03 + mov a13, a4 /* arg2 */ # 1f: dd04 + beqz a3, .Lbr001 # 21: 9c03 + mov a3, a4 /* arg2 */ # 23: 3d04 + call0 wpabuf_put # 25: 01f9ffc0 + # 29: 0000 + mov a4, a13 /* arg2 */ # 2b: 4d0d + mov a3, a12 /* arg1 */ # 2d: 3d0c + call0 memcpy # 2f: 01f8ffc0 + # 33: 0000 +.Lbr001: l32i a12, sp, 4 /* [(local1)] */ # 35: c811 + l32i a13, sp, 8 /* [(local2)] */ # 37: d821 + l32i a0, sp, 0 /* [(local0)] */ # 39: 0801 + addi sp, sp, 16 /* (top of frame) */ # 3b: 12c110 + ret # 3e: 0df0 + +# Function @ .text+0x40 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 +.Lfunc003: mov a6, a3 /* arg1 */ # 40: 6d03 + addi sp, sp, -16 /* (local0) */ # 42: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 45: 0901 + l32i a4, a6, 4 /* [arg1+0x4] */ # 47: 4816 + l32i a3, a3, 8 /* [arg1+0x8] */ # 49: 3823 + addi a0, a6, 12 /* arg1+0xc */ # 4b: cb06 + moveqz a3, a0, a3 # 4d: 303083 + call0 .Lfunc002 # 50: 05fcff + l32i a0, sp, 0 /* [(local0)] */ # 53: 0801 + addi sp, sp, 16 /* (top of frame) */ # 55: 12c110 + ret # 58: 0df0 + + .section .irom0.text, "ax", @progbits + + .literal_position # 0: 00000000 + # 4: 00000000 + +# Function @ .irom0.text+0x8 +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 +.Lfunc004: movi a2, .Lstr001 # 8: 21feff + addi sp, sp, -16 /* (local0) */ # b: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # e: 0901 + call0 ets_printf # 10: 01fdffc0 + # 14: 0000 + l32i a0, sp, 0 /* [(local0)] */ # 16: 0801 + addi sp, sp, 16 /* (top of frame) */ # 18: 12c110 + ret # 1b: 0df0 + + .literal_position # 20: 00000000 + # 24: 00000000 + # 28: 00000000 + # 2c: 00000000 + +# Function @ .irom0.text+0x30 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word @ -0x8 +# (local3): word @ -0x4 + .balign 4 + .global wpabuf_resize + .type wpabuf_resize, @function +wpabuf_resize: + addi sp, sp, -16 /* (local0) */ # 30: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 33: 0901 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 35: d921 + s32i a14, sp, 12 /* a14 -> [(local3)] */ # 37: e931 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 39: c911 + mov a14, a2 /* arg0 */ # 3b: ed02 + l32i a12, a2, 0 /* [arg0] */ # 3d: c802 + mov a13, a3 /* arg1 */ # 3f: dd03 + bnez a12, .Lbr002 # 41: dc1c + mov a2, a3 /* arg1 */ # 43: 2d03 + call0 wpabuf_alloc # 45: 050000 + mov a3, a2 # 48: 3d02 + s32i a2, a14, 0 /* a2 -> [arg0] */ # 4a: 290e + movi a0, -1 /* 0xffffffff */ # 4c: 7cf0 + movi a2, 0 /* 0x00000000 */ # 4e: 0c02 + moveqz a2, a0, a3 # 50: 302083 + j .Lbr006 # 53: 461100 +.Lbr002: l32i a3, a12, 4 /* [[arg0]+0x4] */ # 56: 381c + l32i a4, a12, 0 /* [[arg0]] */ # 58: 480c + add a3, a3, a13 # 5a: da33 + bgeu a4, a3, .Lbr005 # 5c: 37b43a + l32i a2, a12, 8 /* [[arg0]+0x8] */ # 5f: 282c + beqz a2, .Lbr007 # 61: 164204 + call0 realloc # 64: 01efffc0 + # 68: 0000 + mov a14, a2 # 6a: ed02 + beqz a2, .Lbr008 # 6c: 168204 + movi a3, 0 /* 0x00000000 */ # 6f: 0c03 + l32i a2, a12, 4 /* [[arg0]+0x4] */ # 71: 281c + mov a4, a13 /* arg1 */ # 73: 4d0d + add a2, a2, a14 # 75: ea22 + call0 memset # 77: 01ebffc0 + # 7b: 0000 + s32i a14, a12, 8 /* a14 -> [[arg0]+0x8] */ # 7d: e92c + j .Lbr004 # 7f: 460400 +.Lbr003: movi a3, 0 /* 0x00000000 */ # 82: 0c03 + l32i a2, a2, 4 # 84: 2812 + mov a4, a13 /* arg1 */ # 86: 4d0d + add a2, a2, a12 # 88: ca22 + addi a2, a2, 12 # 8a: cb22 + call0 memset # 8c: 01e7ffc0 + # 90: 0000 + s32i a12, a14, 0 /* a12 -> [arg0] */ # 92: c90e +.Lbr004: l32i a3, a12, 4 # 94: 381c + add a3, a3, a13 # 96: da33 + s32i a3, a12, 0 # 98: 390c +.Lbr005: movi a2, 0 /* 0x00000000 */ # 9a: 0c02 +.Lbr006: l32i a12, sp, 4 /* [(local1)] */ # 9c: c811 + l32i a13, sp, 8 /* [(local2)] */ # 9e: d821 + l32i a14, sp, 12 /* [(local3)] */ # a0: e831 + l32i a0, sp, 0 /* [(local0)] */ # a2: 0801 + addi sp, sp, 16 /* (top of frame) */ # a4: 12c110 + ret # a7: 0df0 +.Lbr007: mov a2, a12 /* [arg0] */ # a9: 2d0c + addi a3, a3, 12 # ab: cb33 + call0 realloc # ad: 01dfffc0 + # b1: 0000 + mov a12, a2 # b3: cd02 + bnez a2, .Lbr003 # b5: 5692fc +.Lbr008: movi a2, -1 /* 0xffffffff */ # b8: 7cf2 + j .Lbr006 # ba: 86f7ff + + .literal_position # c0: 00000000 + +# Function @ .irom0.text+0xc4 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global wpabuf_alloc + .type wpabuf_alloc, @function +wpabuf_alloc: + addi sp, sp, -16 /* (local0) */ # c4: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # c7: c911 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # c9: 0901 + mov a12, a2 /* arg0 */ # cb: cd02 + addi a2, a2, 12 /* arg0+0xc */ # cd: cb22 + call0 zalloc # cf: 01fcffc0 + # d3: 0000 + l32i a0, sp, 0 /* [(local0)] */ # d5: 0801 + bnez a2, .Lbr009 # d7: cc32 + movi a2, 0 /* 0x00000000 */ # d9: 0c02 + j .Lbr010 # db: 460000 +.Lbr009: s32i a12, a2, 0 # de: c902 +.Lbr010: l32i a12, sp, 4 /* [(local1)] */ # e0: c811 + addi sp, sp, 16 /* (top of frame) */ # e2: 12c110 + ret # e5: 0df0 + + .literal_position # e8: 00000000 + +# Function @ .irom0.text+0xec +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 + .global wpabuf_alloc_ext_data + .type wpabuf_alloc_ext_data, @function +wpabuf_alloc_ext_data: + addi sp, sp, -16 /* (local0) */ # ec: 12c1f0 + s32i a3, sp, 4 /* arg1 -> [(local1)] */ # ef: 3911 + s32i a2, sp, 0 /* arg0 -> [(local0)] */ # f1: 2901 + s32i a0, sp, 8 /* a0 -> [(local2)] */ # f3: 0921 + movi a2, 12 /* 0x0000000c */ # f5: 0cc2 + call0 zalloc # f7: 01fcffc0 + # fb: 0000 + bnez a2, .Lbr011 # fd: cc32 + movi a2, 0 /* 0x00000000 */ # ff: 0c02 + j .Lbr012 # 101: 460200 +.Lbr011: l32i a0, sp, 0 /* [(local0)] */ # 104: 0801 + l32i a3, sp, 4 /* [(local1)] */ # 106: 3811 + s32i a3, a2, 0 # 108: 3902 + s32i a3, a2, 4 # 10a: 3912 + s32i a0, a2, 8 # 10c: 0922 +.Lbr012: l32i a0, sp, 8 /* [(local2)] */ # 10e: 0821 + addi sp, sp, 16 /* (top of frame) */ # 110: 12c110 + ret # 113: 0df0 + + .literal_position # 118: 14000000 + +# Function @ .irom0.text+0x11c +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word @ -0x8 +# (local3): word @ -0x4 + .balign 4 + .global wpabuf_alloc_copy + .type wpabuf_alloc_copy, @function +wpabuf_alloc_copy: + mov a9, a2 /* arg0 */ # 11c: 9d02 + addi sp, sp, -16 /* (local0) */ # 11e: 12c1f0 + s32i a12, sp, 8 /* a12 -> [(local2)] */ # 121: c921 + mov a2, a3 /* arg1 */ # 123: 2d03 + s32i a13, sp, 12 /* a13 -> [(local3)] */ # 125: d931 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 127: 0911 + mov a13, a3 /* arg1 */ # 129: dd03 + s32i a9, sp, 0 /* arg0 -> [(local0)] */ # 12b: 9901 + call0 wpabuf_alloc # 12d: 050000 + mov a12, a2 # 130: cd02 + beqz a2, .Lbr013 # 132: 8c82 + mov a4, a13 /* arg1 */ # 134: 4d0d + l32i a3, sp, 0 /* [(local0)] */ # 136: 3801 + call0 .Lfunc002 # 138: 01f8ffc0 + # 13c: 0000 +.Lbr013: l32i a0, sp, 4 /* [(local1)] */ # 13e: 0811 + mov a2, a12 # 140: 2d0c + l32i a13, sp, 12 /* [(local3)] */ # 142: d831 + l32i a12, sp, 8 /* [(local2)] */ # 144: c821 + addi sp, sp, 16 /* (top of frame) */ # 146: 12c110 + ret # 149: 0df0 + + .literal_position # 14c: 14000000 + +# Function @ .irom0.text+0x150 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word[2] @ -0x8 + .balign 4 + .global wpabuf_dup + .type wpabuf_dup, @function +wpabuf_dup: addi sp, sp, -16 /* (local0) */ # 150: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 153: c911 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 155: d921 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 157: 0901 + mov a13, a2 /* arg0 */ # 159: dd02 + l32i a2, a2, 4 /* [arg0+0x4] */ # 15b: 2812 + call0 wpabuf_alloc # 15d: 050000 + mov a12, a2 # 160: cd02 + beqz a2, .Lbr014 # 162: 8cd2 + l32i a4, a13, 4 /* [arg0+0x4] */ # 164: 481d + l32i a3, a13, 8 /* [arg0+0x8] */ # 166: 382d + addi a0, a13, 12 /* arg0+0xc */ # 168: cb0d + moveqz a3, a0, a3 # 16a: 303083 + call0 .Lfunc002 # 16d: 01f7ffc0 + # 171: 0000 +.Lbr014: l32i a0, sp, 0 /* [(local0)] */ # 173: 0801 + mov a2, a12 # 175: 2d0c + l32i a13, sp, 8 /* [(local2)] */ # 177: d821 + l32i a12, sp, 4 /* [(local1)] */ # 179: c811 + addi sp, sp, 16 /* (top of frame) */ # 17b: 12c110 + ret # 17e: 0df0 + + .literal_position # 180: 00000000 + # 184: 00000000 + +# Function @ .irom0.text+0x188 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word[3] @ -0xc + .balign 4 + .global wpabuf_free + .type wpabuf_free, @function +wpabuf_free: + addi sp, sp, -16 /* (local0) */ # 188: 12c1f0 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 18b: c911 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 18d: 0901 + mov a12, a2 /* arg0 */ # 18f: cd02 + beqz a2, .Lbr015 # 191: 8ce2 + l32i a2, a2, 8 /* [arg0+0x8] */ # 193: 2822 + call0 free # 195: 01faffc0 + # 199: 0000 + mov a2, a12 /* arg0 */ # 19b: 2d0c + call0 free # 19d: 01f9ffc0 + # 1a1: 0000 +.Lbr015: l32i a12, sp, 4 /* [(local1)] */ # 1a3: c811 + l32i a0, sp, 0 /* [(local0)] */ # 1a5: 0801 + addi sp, sp, 16 /* (top of frame) */ # 1a7: 12c110 + ret # 1aa: 0df0 + + .literal_position # 1ac: 00000000 + +# Function @ .irom0.text+0x1b0 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word[4] @ -0x10 + .balign 4 + .global wpabuf_put + .type wpabuf_put, @function +wpabuf_put: addi sp, sp, -32 /* (local0) */ # 1b0: 12c1e0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1b3: 0901 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 1b5: d921 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 1b7: c911 + mov a13, a3 /* arg1 */ # 1b9: dd03 + mov a12, a2 /* arg0 */ # 1bb: cd02 + call0 .Lfunc001 # 1bd: 01fbffc0 + # 1c1: 0000 + s32i a2, sp, 12 /* a2 -> [(local3)] */ # 1c3: 2931 + l32i a3, a12, 0 /* [arg0] */ # 1c5: 380c + l32i a0, a12, 4 /* [arg0+0x4] */ # 1c7: 081c + s32i a0, sp, 16 /* [arg0+0x4] -> [(local4)] */ # 1c9: 0941 + add a4, a0, a13 # 1cb: da40 + s32i a4, a12, 4 /* a4 -> [arg0+0x4] */ # 1cd: 491c + bgeu a3, a4, .Lbr016 # 1cf: 47b30a + mov a3, a13 /* arg1 */ # 1d2: 3d0d + mov a2, a12 /* arg0 */ # 1d4: 2d0c + call0 .Lfunc004 # 1d6: 05e3ff + l32i a0, sp, 16 /* [(local4)] */ # 1d9: 0841 + l32i a2, sp, 12 /* [(local3)] */ # 1db: 2831 +.Lbr016: l32i a12, sp, 4 /* [(local1)] */ # 1dd: c811 + l32i a13, sp, 8 /* [(local2)] */ # 1df: d821 + add a2, a2, a0 # 1e1: 0a22 + l32i a0, sp, 0 /* [(local0)] */ # 1e3: 0801 + addi sp, sp, 32 /* (top of frame) */ # 1e5: 12c120 + ret # 1e8: 0df0 + + .literal_position # 1ec: 40000000 + # 1f0: 40000000 + +# Function @ .irom0.text+0x1f4 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word @ -0x8 +# (local3): word @ -0x4 + .balign 4 + .global wpabuf_concat + .type wpabuf_concat, @function +wpabuf_concat: + addi sp, sp, -16 /* (local0) */ # 1f4: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # 1f7: 0901 + s32i a14, sp, 12 /* a14 -> [(local3)] */ # 1f9: e931 + s32i a12, sp, 4 /* a12 -> [(local1)] */ # 1fb: c911 + s32i a13, sp, 8 /* a13 -> [(local2)] */ # 1fd: d921 + mov a12, a2 /* arg0 */ # 1ff: cd02 + mov a13, a3 /* arg1 */ # 201: dd03 + bnez a3, .Lbr017 # 203: cc33 + mov a14, a2 /* arg0 */ # 205: ed02 + j .Lbr022 # 207: 460c00 +.Lbr017: bnez a2, .Lbr018 # 20a: cc32 + movi a0, 0 /* 0x00000000 */ # 20c: 0c00 + j .Lbr019 # 20e: 460000 +.Lbr018: l32i a0, a2, 4 /* [arg0+0x4] */ # 211: 0812 +.Lbr019: l32i a2, a13, 4 /* [arg1+0x4] */ # 213: 281d + add a2, a2, a0 # 215: 0a22 + call0 wpabuf_alloc # 217: 050000 + mov a14, a2 # 21a: ed02 + beqz a2, .Lbr021 # 21c: 9c22 + beqz a12, .Lbr020 # 21e: 8c6c + mov a3, a12 /* arg0 */ # 220: 3d0c + call0 .Lfunc003 # 222: 01f2ffc0 + # 226: 0000 +.Lbr020: mov a2, a14 # 228: 2d0e + mov a3, a13 /* arg1 */ # 22a: 3d0d + call0 .Lfunc003 # 22c: 01f1ffc0 + # 230: 0000 +.Lbr021: mov a2, a12 /* arg0 */ # 232: 2d0c + call0 wpabuf_free # 234: 050000 + mov a2, a13 /* arg1 */ # 237: 2d0d + call0 wpabuf_free # 239: 050000 +.Lbr022: l32i a0, sp, 0 /* [(local0)] */ # 23c: 0801 + l32i a12, sp, 4 /* [(local1)] */ # 23e: c811 + mov a2, a14 # 240: 2d0e + l32i a13, sp, 8 /* [(local2)] */ # 242: d821 + l32i a14, sp, 12 /* [(local3)] */ # 244: e831 + addi sp, sp, 16 /* (top of frame) */ # 246: 12c110 + ret # 249: 0df0 + + .literal_position # 24c: 00000000 + # 250: 40000000 + +# Function @ .irom0.text+0x254 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word[4] @ -0x10 + .balign 4 + .global wpabuf_zeropad + .type wpabuf_zeropad, @function +wpabuf_zeropad: + addi sp, sp, -32 /* (local0) */ # 254: 12c1e0 + s32i a0, sp, 8 /* a0 -> [(local2)] */ # 257: 0921 + s32i a12, sp, 12 /* a12 -> [(local3)] */ # 259: c931 + s32i a13, sp, 16 /* a13 -> [(local4)] */ # 25b: d941 + mov a12, a2 /* arg0 */ # 25d: cd02 + mov a13, a3 /* arg1 */ # 25f: dd03 + bnez a2, .Lbr023 # 261: cc32 + movi a12, 0 /* 0x00000000 */ # 263: 0c0c + j .Lbr025 # 265: 060e00 +.Lbr023: l32i a0, a2, 4 /* [arg0+0x4] */ # 268: 0812 + s32i a0, sp, 0 /* [arg0+0x4] -> [(local0)] */ # 26a: 0901 + bgeu a0, a3, .Lbr025 # 26c: 37b031 + mov a2, a3 /* arg1 */ # 26f: 2d03 + call0 wpabuf_alloc # 271: 050000 + s32i a2, sp, 4 /* a2 -> [(local1)] */ # 274: 2911 + beqz a2, .Lbr024 # 276: 9ce2 + l32i a2, sp, 0 /* [(local0)] */ # 278: 2801 + sub a13, a13, a2 # 27a: 20ddc0 + l32i a2, sp, 4 /* [(local1)] */ # 27d: 2811 + mov a3, a13 # 27f: 3d0d + call0 wpabuf_put # 281: 050000 + mov a4, a13 # 284: 4d0d + movi a3, 0 /* 0x00000000 */ # 286: 0c03 + call0 memset # 288: 01f1ffc0 + # 28c: 0000 + l32i a2, sp, 4 /* [(local1)] */ # 28e: 2811 + mov a3, a12 /* arg0 */ # 290: 3d0c + call0 .Lfunc003 # 292: 01efffc0 + # 296: 0000 +.Lbr024: mov a2, a12 /* arg0 */ # 298: 2d0c + l32i a13, sp, 4 /* [(local1)] */ # 29a: d811 + call0 wpabuf_free # 29c: 050000 + mov a12, a13 /* [(local1)] */ # 29f: cd0d +.Lbr025: l32i a0, sp, 8 /* [(local2)] */ # 2a1: 0821 + mov a2, a12 # 2a3: 2d0c + l32i a13, sp, 16 /* [(local4)] */ # 2a5: d841 + l32i a12, sp, 12 /* [(local3)] */ # 2a7: c831 + addi sp, sp, 32 /* (top of frame) */ # 2a9: 12c120 + ret # 2ac: 0df0 + + .literal_position # 2b0: 00000000 + # 2b4: 00000000 + +# Function @ .irom0.text+0x2b8 +# Local variables/stack: +# (local0): word @ -0x40 +# (local1): word @ -0x3c +# (local2): word @ -0x38 +# (local3): word @ -0x34 +# (local4): word @ -0x30 +# (local5): word[5] @ -0x2c +# (local6): word @ -0x18 +# (local7): word @ -0x14 +# (local8): word @ -0x10 +# (local9): word[3] @ -0xc + .balign 4 + .global wpabuf_printf + .type wpabuf_printf, @function +wpabuf_printf: + addi sp, sp, -64 /* (local0) */ # 2b8: 12c1c0 + s32i a4, sp, 40 /* arg2 -> [(local6)] */ # 2bb: 49a1 + s32i a5, sp, 44 /* arg3 -> [(local7)] */ # 2bd: 59b1 + s32i a6, sp, 48 /* arg4 -> [(local8)] */ # 2bf: 69c1 + s32i a7, sp, 52 /* arg5 -> [(local9)] */ # 2c1: 79d1 + s32i a0, sp, 12 /* a0 -> [(local3)] */ # 2c3: 0931 + s32i a12, sp, 16 /* a12 -> [(local4)] */ # 2c5: c941 + s32i a13, sp, 20 /* a13 -> [(local5)] */ # 2c7: d951 + mov a12, a2 /* arg0 */ # 2c9: cd02 + mov a13, a3 /* arg1 */ # 2cb: dd03 + call0 .Lfunc001 # 2cd: 01f8ffc0 + # 2d1: 0000 + mov a4, a13 /* arg1 */ # 2d3: 4d0d + l32i a3, a12, 0 /* [arg0] */ # 2d5: 380c + l32i a5, a12, 4 /* [arg0+0x4] */ # 2d7: 581c + movi a6, 8 /* 0x00000008 */ # 2d9: 0c86 + addi a9, sp, 32 /* (FP)-0x20 */ # 2db: 92c120 + s32i a9, sp, 4 /* (FP)-0x20 -> [(local1)] */ # 2de: 9911 + s32i a9, sp, 0 /* (FP)-0x20 -> [(local0)] */ # 2e0: 9901 + s32i a6, sp, 8 /* 0x00000008 -> [(local2)] */ # 2e2: 6921 + add a2, a2, a5 # 2e4: 5a22 + sub a3, a3, a5 # 2e6: 5033c0 + mov a6, a9 /* (FP)-0x20 */ # 2e9: 6d09 + mov a5, a9 /* (FP)-0x20 */ # 2eb: 5d09 + l32i a7, sp, 8 /* [(local2)] */ # 2ed: 7821 + call0 ets_vsnprintf # 2ef: 01f1ffc0 + # 2f3: 0000 + mov a13, a2 # 2f5: dd02 + bltz a2, .Lbr026 # 2f7: 969200 + l32i a0, a12, 4 /* [arg0+0x4] */ # 2fa: 081c + l32i a7, a12, 0 /* [arg0] */ # 2fc: 780c + sub a7, a7, a0 # 2fe: 0077c0 + bltu a2, a7, .Lbr027 # 301: 773208 +.Lbr026: mov a2, a12 /* arg0 */ # 304: 2d0c + mov a3, a13 # 306: 3d0d + call0 .Lfunc004 # 308: c5cfff + l32i a0, a12, 4 /* [arg0+0x4] */ # 30b: 081c +.Lbr027: add a8, a13, a0 # 30d: 0a8d + s32i a8, a12, 4 /* a8 -> [arg0+0x4] */ # 30f: 891c + l32i a13, sp, 20 /* [(local5)] */ # 311: d851 + l32i a12, sp, 16 /* [(local4)] */ # 313: c841 + l32i a0, sp, 12 /* [(local3)] */ # 315: 0831 + addi sp, sp, 64 /* (top of frame) */ # 317: 12c140 + ret # 31a: 0df0 + + .section .rodata.str1.4, "MSa", @progbits, 1 + +.Lstr001: .asciz "wpabuf overflow" # 0: 77706162 + # 4: 7566206f + # 8: 76657266 + # c: 6c6f7700 diff --git a/binary_sdk/libwpa_stage1/wpas_glue.S b/binary_sdk/libwpa_stage1/wpas_glue.S new file mode 100644 index 0000000..416ef56 --- /dev/null +++ b/binary_sdk/libwpa_stage1/wpas_glue.S @@ -0,0 +1,144 @@ + + .section .irom0.text, "ax", @progbits + + .literal_position # 0: 00000000 + # 4: 00000000 + +# Function @ .irom0.text+0x8 +# Local variables/stack: +# (local0): word @ -0x10 +# (local1): word @ -0xc +# (local2): word @ -0x8 +# (local3): word @ -0x4 + .balign 4 +.Lfunc001: addi sp, sp, -16 /* (local0) */ # 8: 12c1f0 + s32i a12, sp, 8 /* a12 -> [(local2)] */ # b: c921 + l32i a8, a2, 0x210 /* [arg0+0x210] */ # d: 822284 + s32i a13, sp, 12 /* a13 -> [(local3)] */ # 10: d931 + s32i a0, sp, 4 /* a0 -> [(local1)] */ # 12: 0911 + mov a13, a7 /* arg5 */ # 14: dd07 + addi a0, a5, 4 /* arg3+0x4 */ # 16: 4b05 + movi a7, 208 /* 0x000000d0 */ # 18: 72a0d0 + add a7, a2, a7 /* arg0+0xd0 */ # 1b: 7a72 + l32i a2, a8, 4 /* [[arg0+0x210]+0x4] */ # 1d: 2818 + s32i a0, a6, 0 /* arg3+0x4 -> [arg4] */ # 1f: 0906 + addi a0, a2, 14 /* [[arg0+0x210]+0x4]+0xe */ # 21: eb02 + bnez a0, .Lbr001 # 23: cc30 + movi a2, 0 /* 0x00000000 */ # 25: 0c02 + j .Lbr005 # 27: 461100 +.Lbr001: addi a12, a2, 18 /* [[arg0+0x210]+0x4]+0x12 */ # 2a: c2c212 + s32i a0, sp, 0 /* [[arg0+0x210]+0x4]+0xe -> [(local0)] */ # 2d: 0901 + extui a8, a5, 8, 8 # 2f: 508874 + extui a9, a5, 0, 8 # 32: 509074 + l8ui a10, a7, 128 /* [arg0+0x150] */ # 35: a20780 + s8i a10, a2, 14 /* [arg0+0x150] -> [[[arg0+0x210]+0x4]+0xe] */ # 38: a2420e + slli a9, a9, 8 # 3b: 809911 + s8i a3, a2, 15 /* arg1 -> [[[arg0+0x210]+0x4]+0xf] */ # 3e: 32420f + or a8, a8, a9 # 41: 908820 + s8i a8, a2, 16 /* a8 -> [[[arg0+0x210]+0x4]+0x10] */ # 44: 824210 + srli a8, a8, 8 # 47: 808841 + s8i a8, a2, 17 /* a8 -> [[[arg0+0x210]+0x4]+0x11] */ # 4a: 824211 + beqz a4, .Lbr002 # 4d: 8cd4 + mov a3, a4 /* arg2 */ # 4f: 3d04 + mov a2, a12 /* [[arg0+0x210]+0x4]+0x12 */ # 51: 2d0c + mov a4, a5 /* arg3 */ # 53: 4d05 + call0 memcpy # 55: 01eaffc0 + # 59: 0000 + j .Lbr003 # 5b: c60200 +.Lbr002: mov a4, a5 /* arg3 */ # 5e: 4d05 + mov a2, a12 /* [[arg0+0x210]+0x4]+0x12 */ # 60: 2d0c + movi a3, 0 /* 0x00000000 */ # 62: 0c03 + call0 memset # 64: 01e8ffc0 + # 68: 0000 +.Lbr003: beqz a13, .Lbr004 # 6a: 8c0d + s32i a12, a13, 0 /* [[arg0+0x210]+0x4]+0x12 -> [arg5] */ # 6c: c90d +.Lbr004: l32i a2, sp, 0 /* [(local0)] */ # 6e: 2801 +.Lbr005: l32i a12, sp, 8 /* [(local2)] */ # 70: c821 + l32i a13, sp, 12 /* [(local3)] */ # 72: d831 + l32i a0, sp, 4 /* [(local1)] */ # 74: 0811 + addi sp, sp, 16 /* (top of frame) */ # 76: 12c110 + ret # 79: 0df0 + + .literal_position # 7c: 00000000 + +# Function @ .irom0.text+0x80 +# Local variables/stack: +# (local0): word @ -0x20 +# (local1): word @ -0x1c +# (local2): word @ -0x18 +# (local3): word @ -0x14 +# (local4): word @ -0x10 +# (local5): word @ -0xc +# (local6): word[2] @ -0x8 + .balign 4 + .global wpa_sm_alloc_eapol + .type wpa_sm_alloc_eapol, @function +wpa_sm_alloc_eapol: + addi sp, sp, -32 /* (local0) */ # 80: 12c1e0 + s32i a5, sp, 12 /* arg3 -> [(local3)] */ # 83: 5931 + s32i a6, sp, 16 /* arg4 -> [(local4)] */ # 85: 6941 + s32i a7, sp, 20 /* arg5 -> [(local5)] */ # 87: 7951 + s32i a0, sp, 24 /* a0 -> [(local6)] */ # 89: 0961 + s32i a4, sp, 8 /* arg2 -> [(local2)] */ # 8b: 4921 + s32i a2, sp, 0 /* arg0 -> [(local0)] */ # 8d: 2901 + s32i a3, sp, 4 /* arg1 -> [(local1)] */ # 8f: 3911 + movi a2, 3 /* 0x00000003 */ # 91: 0c32 + movi a3, 256 /* 0x00000100 */ # 93: 32a100 + movi a4, 0 /* 0x00000000 */ # 96: 0c04 + call0 pbuf_alloc # 98: 01f9ffc0 + # 9c: 0000 + l32i a3, sp, 4 /* [(local1)] */ # 9e: 3811 + l32i a4, sp, 8 /* [(local2)] */ # a0: 4821 + l32i a5, sp, 12 /* [(local3)] */ # a2: 5831 + mov a0, a2 # a4: 0d02 + l32i a6, sp, 16 /* [(local4)] */ # a6: 6841 + l32i a2, sp, 0 /* [(local0)] */ # a8: 2801 + l32i a7, sp, 20 /* [(local5)] */ # aa: 7851 + s32i a0, a2, 0x210 /* a0 -> [[(local0)]+0x210] */ # ac: 026284 + call0 .Lfunc001 # af: 85f5ff + l32i a0, sp, 24 /* [(local6)] */ # b2: 0861 + addi sp, sp, 32 /* (top of frame) */ # b4: 12c120 + ret # b7: 0df0 + + .balign 4 +# Function @ .irom0.text+0xbc +# Local variables/stack: +# (local0): word[4] @ -0x10 + .balign 4 + .global wpa_sm_deauthenticate + .type wpa_sm_deauthenticate, @function +wpa_sm_deauthenticate: + addi sp, sp, -16 /* (local0) */ # bc: 12c1f0 + s32i a0, sp, 0 /* a0 -> [(local0)] */ # bf: 0901 + l32i a0, a2, 0x168 /* [arg0+0x168] */ # c1: 02225a + bltui a0, 5, .Lbr006 # c4: b65007 + l32i a0, a2, 0x220 /* [arg0+0x220] */ # c7: 022288 + mov a2, a3 /* arg1 */ # ca: 2d03 + callx0 a0 /* [arg0+0x220] */ # cc: c00000 +.Lbr006: l32i a0, sp, 0 /* [(local0)] */ # cf: 0801 + addi sp, sp, 16 /* (top of frame) */ # d1: 12c110 + ret # d4: 0df0 + + .balign 4 +# Function @ .irom0.text+0xd8 + .balign 4 + .global wpa_sm_mlme_setprotection + .type wpa_sm_mlme_setprotection, @function +wpa_sm_mlme_setprotection: + movi a2, 0 /* 0x00000000 */ # d8: 0c02 + ret /* 0x00000000 */ # da: 0df0 + +# Function @ .irom0.text+0xdc + .balign 4 + .global wpa_sm_get_beacon_ie + .type wpa_sm_get_beacon_ie, @function +wpa_sm_get_beacon_ie: + movi a2, 0 /* 0x00000000 */ # dc: 0c02 + ret /* 0x00000000 */ # de: 0df0 + +# Function @ .irom0.text+0xe0 + .balign 4 + .global wpa_sm_disassociate + .type wpa_sm_disassociate, @function +wpa_sm_disassociate: + ret /* arg0 */ # e0: 0df0