From ae83d1a0ed93f3133160697551d5ad95649bc68e Mon Sep 17 00:00:00 2001 From: Penguin Date: Sat, 26 Feb 2022 02:13:03 -0600 Subject: [PATCH] test --- .../oracle_same54n19a/gcc/AtmelStart.bin | Bin 184220 -> 0 bytes .../oracle_same54n19a/gcc/AtmelStart.eep | 0 .../oracle_same54n19a/gcc/AtmelStart.elf | Bin 2923448 -> 0 bytes .../oracle_same54n19a/gcc/AtmelStart.hex | 11518 --- .../oracle_same54n19a/gcc/AtmelStart.lss | 66824 ---------------- .../oracle_same54n19a/gcc/AtmelStart.map | 31433 -------- .../oracle_same54n19a/gcc/atmel_start.d | 288 - .../oracle_same54n19a/gcc/atmel_start.o | Bin 1460040 -> 0 bytes .../oracle_same54n19a/gcc/driver_init.d | 290 - .../oracle_same54n19a/gcc/driver_init.o | Bin 1504492 -> 0 bytes .../gcc/gcc/gcc/startup_same54.d | 176 - .../gcc/gcc/gcc/startup_same54.o | Bin 1343056 -> 0 bytes .../oracle_same54n19a/gcc/gcc/system_same54.d | 176 - .../oracle_same54n19a/gcc/gcc/system_same54.o | Bin 1328412 -> 0 bytes .../gcc/hal/src/hal_atomic.d | 239 - .../gcc/hal/src/hal_atomic.o | Bin 1453372 -> 0 bytes .../oracle_same54n19a/gcc/hal/src/hal_cache.d | 241 - .../oracle_same54n19a/gcc/hal/src/hal_cache.o | Bin 1458856 -> 0 bytes .../oracle_same54n19a/gcc/hal/src/hal_delay.d | 247 - .../oracle_same54n19a/gcc/hal/src/hal_delay.o | Bin 1454196 -> 0 bytes .../gcc/hal/src/hal_ext_irq.d | 243 - .../gcc/hal/src/hal_ext_irq.o | Bin 1456952 -> 0 bytes .../oracle_same54n19a/gcc/hal/src/hal_gpio.d | 247 - .../oracle_same54n19a/gcc/hal/src/hal_gpio.o | Bin 1456712 -> 0 bytes .../gcc/hal/src/hal_i2c_m_sync.d | 247 - .../gcc/hal/src/hal_i2c_m_sync.o | Bin 1465952 -> 0 bytes .../oracle_same54n19a/gcc/hal/src/hal_init.d | 243 - .../oracle_same54n19a/gcc/hal/src/hal_init.o | Bin 1451816 -> 0 bytes .../oracle_same54n19a/gcc/hal/src/hal_io.d | 242 - .../oracle_same54n19a/gcc/hal/src/hal_io.o | Bin 1454740 -> 0 bytes .../oracle_same54n19a/gcc/hal/src/hal_sleep.d | 243 - .../oracle_same54n19a/gcc/hal/src/hal_sleep.o | Bin 1452816 -> 0 bytes .../oracle_same54n19a/gcc/hal/src/hal_timer.d | 249 - .../oracle_same54n19a/gcc/hal/src/hal_timer.o | Bin 1468284 -> 0 bytes .../gcc/hal/src/hal_usart_async.d | 255 - .../gcc/hal/src/hal_usart_async.o | Bin 1479184 -> 0 bytes .../gcc/hal/utils/src/utils_assert.d | 242 - .../gcc/hal/utils/src/utils_assert.o | Bin 1452236 -> 0 bytes .../gcc/hal/utils/src/utils_event.d | 280 - .../gcc/hal/utils/src/utils_event.o | Bin 1482136 -> 0 bytes .../gcc/hal/utils/src/utils_list.d | 243 - .../gcc/hal/utils/src/utils_list.o | Bin 1456024 -> 0 bytes .../gcc/hal/utils/src/utils_ringbuffer.d | 245 - .../gcc/hal/utils/src/utils_ringbuffer.o | Bin 1456048 -> 0 bytes .../gcc/hal/utils/src/utils_syscalls.d | 69 - .../gcc/hal/utils/src/utils_syscalls.o | Bin 60192 -> 0 bytes .../oracle_same54n19a/gcc/hpl/cmcc/hpl_cmcc.d | 243 - .../oracle_same54n19a/gcc/hpl/cmcc/hpl_cmcc.o | Bin 1475812 -> 0 bytes .../gcc/hpl/core/hpl_core_m4.d | 248 - .../gcc/hpl/core/hpl_core_m4.o | Bin 1468172 -> 0 bytes .../oracle_same54n19a/gcc/hpl/core/hpl_init.d | 260 - .../oracle_same54n19a/gcc/hpl/core/hpl_init.o | Bin 1483908 -> 0 bytes .../oracle_same54n19a/gcc/hpl/dmac/hpl_dmac.d | 250 - .../oracle_same54n19a/gcc/hpl/dmac/hpl_dmac.o | Bin 1502536 -> 0 bytes .../oracle_same54n19a/gcc/hpl/eic/hpl_eic.d | 278 - .../oracle_same54n19a/gcc/hpl/eic/hpl_eic.o | Bin 1490744 -> 0 bytes .../oracle_same54n19a/gcc/hpl/gclk/hpl_gclk.d | 244 - .../oracle_same54n19a/gcc/hpl/gclk/hpl_gclk.o | Bin 1460200 -> 0 bytes .../oracle_same54n19a/gcc/hpl/mclk/hpl_mclk.d | 243 - .../oracle_same54n19a/gcc/hpl/mclk/hpl_mclk.o | Bin 1457688 -> 0 bytes .../gcc/hpl/osc32kctrl/hpl_osc32kctrl.d | 243 - .../gcc/hpl/osc32kctrl/hpl_osc32kctrl.o | Bin 1457564 -> 0 bytes .../gcc/hpl/oscctrl/hpl_oscctrl.d | 245 - .../gcc/hpl/oscctrl/hpl_oscctrl.o | Bin 1468684 -> 0 bytes .../oracle_same54n19a/gcc/hpl/pm/hpl_pm.d | 242 - .../oracle_same54n19a/gcc/hpl/pm/hpl_pm.o | Bin 1454532 -> 0 bytes .../gcc/hpl/ramecc/hpl_ramecc.d | 246 - .../gcc/hpl/ramecc/hpl_ramecc.o | Bin 1464180 -> 0 bytes .../gcc/hpl/sercom/hpl_sercom.d | 275 - .../gcc/hpl/sercom/hpl_sercom.o | Bin 1657140 -> 0 bytes .../oracle_same54n19a/gcc/hpl/tc/hpl_tc.d | 253 - .../oracle_same54n19a/gcc/hpl/tc/hpl_tc.o | Bin 1490088 -> 0 bytes .../firmware/oracle_same54n19a/gcc/main.d | 362 - .../firmware/oracle_same54n19a/gcc/main.o | Bin 1500132 -> 0 bytes .../firmware/oracle_same54n19a/gcc/oracle.d | 676 - .../firmware/oracle_same54n19a/gcc/oracle.o | Bin 1543696 -> 0 bytes .../gcc/shared/devices/display/p_ssd1963.d | 671 - .../gcc/shared/devices/display/p_ssd1963.o | Bin 1570324 -> 0 bytes .../gcc/shared/devices/p_screen.d | 672 - .../gcc/shared/devices/p_screen.o | Bin 1587732 -> 0 bytes .../gcc/shared/drivers/p_gpio.d | 363 - .../gcc/shared/drivers/p_gpio.o | Bin 1523572 -> 0 bytes .../gcc/shared/drivers/p_i2c.d | 363 - .../gcc/shared/drivers/p_i2c.o | Bin 1500628 -> 0 bytes .../gcc/shared/drivers/p_tcc.d | 669 - .../gcc/shared/drivers/p_tcc.o | Bin 1556572 -> 0 bytes .../gcc/shared/drivers/p_usart.d | 370 - .../gcc/shared/drivers/p_usart.o | Bin 1542116 -> 0 bytes .../lvgl/porting/lv_port_disp_template.d | 3 - .../lvgl/porting/lv_port_disp_template.o | Bin 15700 -> 0 bytes .../lvgl/porting/lv_port_fs_template.d | 3 - .../lvgl/porting/lv_port_fs_template.o | Bin 15696 -> 0 bytes .../lvgl/porting/lv_port_indev_template.d | 3 - .../lvgl/porting/lv_port_indev_template.o | Bin 15704 -> 0 bytes .../thirdparty/lvgl/src/lv_core/lv_debug.d | 161 - .../thirdparty/lvgl/src/lv_core/lv_debug.o | Bin 90808 -> 0 bytes .../thirdparty/lvgl/src/lv_core/lv_disp.d | 160 - .../thirdparty/lvgl/src/lv_core/lv_disp.o | Bin 88716 -> 0 bytes .../thirdparty/lvgl/src/lv_core/lv_group.d | 193 - .../thirdparty/lvgl/src/lv_core/lv_group.o | Bin 104816 -> 0 bytes .../thirdparty/lvgl/src/lv_core/lv_indev.d | 177 - .../thirdparty/lvgl/src/lv_core/lv_indev.o | Bin 128540 -> 0 bytes .../thirdparty/lvgl/src/lv_core/lv_obj.d | 231 - .../thirdparty/lvgl/src/lv_core/lv_obj.o | Bin 327044 -> 0 bytes .../thirdparty/lvgl/src/lv_core/lv_refr.d | 205 - .../thirdparty/lvgl/src/lv_core/lv_refr.o | Bin 104996 -> 0 bytes .../thirdparty/lvgl/src/lv_core/lv_style.d | 165 - .../thirdparty/lvgl/src/lv_core/lv_style.o | Bin 119204 -> 0 bytes .../thirdparty/lvgl/src/lv_draw/lv_draw_arc.d | 105 - .../thirdparty/lvgl/src/lv_draw/lv_draw_arc.o | Bin 87464 -> 0 bytes .../lvgl/src/lv_draw/lv_draw_blend.d | 177 - .../lvgl/src/lv_draw/lv_draw_blend.o | Bin 114976 -> 0 bytes .../thirdparty/lvgl/src/lv_draw/lv_draw_img.d | 183 - .../thirdparty/lvgl/src/lv_draw/lv_draw_img.o | Bin 115964 -> 0 bytes .../lvgl/src/lv_draw/lv_draw_label.d | 171 - .../lvgl/src/lv_draw/lv_draw_label.o | Bin 116068 -> 0 bytes .../lvgl/src/lv_draw/lv_draw_line.d | 199 - .../lvgl/src/lv_draw/lv_draw_line.o | Bin 116704 -> 0 bytes .../lvgl/src/lv_draw/lv_draw_mask.d | 183 - .../lvgl/src/lv_draw/lv_draw_mask.o | Bin 120280 -> 0 bytes .../lvgl/src/lv_draw/lv_draw_rect.d | 173 - .../lvgl/src/lv_draw/lv_draw_rect.o | Bin 150040 -> 0 bytes .../lvgl/src/lv_draw/lv_draw_triangle.d | 103 - .../lvgl/src/lv_draw/lv_draw_triangle.o | Bin 77152 -> 0 bytes .../thirdparty/lvgl/src/lv_draw/lv_img_buf.d | 117 - .../thirdparty/lvgl/src/lv_draw/lv_img_buf.o | Bin 100292 -> 0 bytes .../lvgl/src/lv_draw/lv_img_cache.d | 181 - .../lvgl/src/lv_draw/lv_img_cache.o | Bin 87604 -> 0 bytes .../lvgl/src/lv_draw/lv_img_decoder.d | 185 - .../lvgl/src/lv_draw/lv_img_decoder.o | Bin 114072 -> 0 bytes .../thirdparty/lvgl/src/lv_font/lv_font.d | 75 - .../thirdparty/lvgl/src/lv_font/lv_font.o | Bin 63372 -> 0 bytes .../lv_font_dejavu_16_persian_hebrew.d | 363 - .../lv_font_dejavu_16_persian_hebrew.o | Bin 86168 -> 0 bytes .../lvgl/src/lv_font/lv_font_fmt_txt.d | 199 - .../lvgl/src/lv_font/lv_font_fmt_txt.o | Bin 99512 -> 0 bytes .../lvgl/src/lv_font/lv_font_montserrat_12.d | 363 - .../lvgl/src/lv_font/lv_font_montserrat_12.o | Bin 86136 -> 0 bytes .../src/lv_font/lv_font_montserrat_12_subpx.d | 363 - .../src/lv_font/lv_font_montserrat_12_subpx.o | Bin 86156 -> 0 bytes .../lvgl/src/lv_font/lv_font_montserrat_14.d | 363 - .../lvgl/src/lv_font/lv_font_montserrat_14.o | Bin 86136 -> 0 bytes .../lvgl/src/lv_font/lv_font_montserrat_16.d | 363 - .../lvgl/src/lv_font/lv_font_montserrat_16.o | Bin 107504 -> 0 bytes .../lvgl/src/lv_font/lv_font_montserrat_18.d | 363 - .../lvgl/src/lv_font/lv_font_montserrat_18.o | Bin 86136 -> 0 bytes .../lvgl/src/lv_font/lv_font_montserrat_20.d | 363 - .../lvgl/src/lv_font/lv_font_montserrat_20.o | Bin 86136 -> 0 bytes .../lvgl/src/lv_font/lv_font_montserrat_22.d | 363 - .../lvgl/src/lv_font/lv_font_montserrat_22.o | Bin 86136 -> 0 bytes .../lvgl/src/lv_font/lv_font_montserrat_24.d | 363 - .../lvgl/src/lv_font/lv_font_montserrat_24.o | Bin 86136 -> 0 bytes .../lvgl/src/lv_font/lv_font_montserrat_26.d | 363 - .../lvgl/src/lv_font/lv_font_montserrat_26.o | Bin 86136 -> 0 bytes .../lvgl/src/lv_font/lv_font_montserrat_28.d | 363 - .../lvgl/src/lv_font/lv_font_montserrat_28.o | Bin 86136 -> 0 bytes .../lv_font_montserrat_28_compressed.d | 363 - .../lv_font_montserrat_28_compressed.o | Bin 86168 -> 0 bytes .../lvgl/src/lv_font/lv_font_montserrat_30.d | 363 - .../lvgl/src/lv_font/lv_font_montserrat_30.o | Bin 86136 -> 0 bytes .../lvgl/src/lv_font/lv_font_montserrat_32.d | 363 - .../lvgl/src/lv_font/lv_font_montserrat_32.o | Bin 86136 -> 0 bytes .../lvgl/src/lv_font/lv_font_montserrat_34.d | 363 - .../lvgl/src/lv_font/lv_font_montserrat_34.o | Bin 86136 -> 0 bytes .../lvgl/src/lv_font/lv_font_montserrat_36.d | 363 - .../lvgl/src/lv_font/lv_font_montserrat_36.o | Bin 86136 -> 0 bytes .../lvgl/src/lv_font/lv_font_montserrat_38.d | 363 - .../lvgl/src/lv_font/lv_font_montserrat_38.o | Bin 86136 -> 0 bytes .../lvgl/src/lv_font/lv_font_montserrat_40.d | 363 - .../lvgl/src/lv_font/lv_font_montserrat_40.o | Bin 86136 -> 0 bytes .../lvgl/src/lv_font/lv_font_montserrat_42.d | 363 - .../lvgl/src/lv_font/lv_font_montserrat_42.o | Bin 86136 -> 0 bytes .../lvgl/src/lv_font/lv_font_montserrat_44.d | 363 - .../lvgl/src/lv_font/lv_font_montserrat_44.o | Bin 86136 -> 0 bytes .../lvgl/src/lv_font/lv_font_montserrat_46.d | 363 - .../lvgl/src/lv_font/lv_font_montserrat_46.o | Bin 86136 -> 0 bytes .../lvgl/src/lv_font/lv_font_montserrat_48.d | 363 - .../lvgl/src/lv_font/lv_font_montserrat_48.o | Bin 86136 -> 0 bytes .../lvgl/src/lv_font/lv_font_simsun_16_cjk.d | 363 - .../lvgl/src/lv_font/lv_font_simsun_16_cjk.o | Bin 86136 -> 0 bytes .../lvgl/src/lv_font/lv_font_unscii_8.d | 363 - .../lvgl/src/lv_font/lv_font_unscii_8.o | Bin 86120 -> 0 bytes .../lvgl/src/lv_gpu/lv_gpu_stm32_dma2d.d | 167 - .../lvgl/src/lv_gpu/lv_gpu_stm32_dma2d.o | Bin 74916 -> 0 bytes .../thirdparty/lvgl/src/lv_hal/lv_hal_disp.d | 206 - .../thirdparty/lvgl/src/lv_hal/lv_hal_disp.o | Bin 103164 -> 0 bytes .../thirdparty/lvgl/src/lv_hal/lv_hal_indev.d | 189 - .../thirdparty/lvgl/src/lv_hal/lv_hal_indev.o | Bin 92144 -> 0 bytes .../thirdparty/lvgl/src/lv_hal/lv_hal_tick.d | 26 - .../thirdparty/lvgl/src/lv_hal/lv_hal_tick.o | Bin 35344 -> 0 bytes .../thirdparty/lvgl/src/lv_misc/lv_anim.d | 181 - .../thirdparty/lvgl/src/lv_misc/lv_anim.o | Bin 99416 -> 0 bytes .../thirdparty/lvgl/src/lv_misc/lv_area.d | 67 - .../thirdparty/lvgl/src/lv_misc/lv_area.o | Bin 75472 -> 0 bytes .../thirdparty/lvgl/src/lv_misc/lv_async.d | 36 - .../thirdparty/lvgl/src/lv_misc/lv_async.o | Bin 38668 -> 0 bytes .../thirdparty/lvgl/src/lv_misc/lv_bidi.d | 79 - .../thirdparty/lvgl/src/lv_misc/lv_bidi.o | Bin 60664 -> 0 bytes .../thirdparty/lvgl/src/lv_misc/lv_color.d | 24 - .../thirdparty/lvgl/src/lv_misc/lv_color.o | Bin 45744 -> 0 bytes .../thirdparty/lvgl/src/lv_misc/lv_fs.d | 177 - .../thirdparty/lvgl/src/lv_misc/lv_fs.o | Bin 101184 -> 0 bytes .../thirdparty/lvgl/src/lv_misc/lv_gc.d | 123 - .../thirdparty/lvgl/src/lv_misc/lv_gc.o | Bin 77548 -> 0 bytes .../thirdparty/lvgl/src/lv_misc/lv_ll.d | 65 - .../thirdparty/lvgl/src/lv_misc/lv_ll.o | Bin 73572 -> 0 bytes .../thirdparty/lvgl/src/lv_misc/lv_log.d | 61 - .../thirdparty/lvgl/src/lv_misc/lv_log.o | Bin 58556 -> 0 bytes .../thirdparty/lvgl/src/lv_misc/lv_math.d | 66 - .../thirdparty/lvgl/src/lv_misc/lv_math.o | Bin 64112 -> 0 bytes .../thirdparty/lvgl/src/lv_misc/lv_mem.d | 125 - .../thirdparty/lvgl/src/lv_misc/lv_mem.o | Bin 95780 -> 0 bytes .../thirdparty/lvgl/src/lv_misc/lv_printf.d | 28 - .../thirdparty/lvgl/src/lv_misc/lv_printf.o | Bin 52668 -> 0 bytes .../thirdparty/lvgl/src/lv_misc/lv_task.d | 173 - .../thirdparty/lvgl/src/lv_misc/lv_task.o | Bin 94328 -> 0 bytes .../thirdparty/lvgl/src/lv_misc/lv_templ.d | 3 - .../thirdparty/lvgl/src/lv_misc/lv_templ.o | Bin 15668 -> 0 bytes .../thirdparty/lvgl/src/lv_misc/lv_txt.d | 77 - .../thirdparty/lvgl/src/lv_misc/lv_txt.o | Bin 86340 -> 0 bytes .../thirdparty/lvgl/src/lv_misc/lv_txt_ap.d | 145 - .../thirdparty/lvgl/src/lv_misc/lv_txt_ap.o | Bin 70792 -> 0 bytes .../thirdparty/lvgl/src/lv_misc/lv_utils.d | 83 - .../thirdparty/lvgl/src/lv_misc/lv_utils.o | Bin 65380 -> 0 bytes .../thirdparty/lvgl/src/lv_themes/lv_theme.d | 173 - .../thirdparty/lvgl/src/lv_themes/lv_theme.o | Bin 84888 -> 0 bytes .../lvgl/src/lv_themes/lv_theme_empty.d | 376 - .../lvgl/src/lv_themes/lv_theme_empty.o | Bin 102552 -> 0 bytes .../lvgl/src/lv_themes/lv_theme_material.d | 375 - .../lvgl/src/lv_themes/lv_theme_material.o | Bin 263756 -> 0 bytes .../lvgl/src/lv_themes/lv_theme_mono.d | 375 - .../lvgl/src/lv_themes/lv_theme_mono.o | Bin 160772 -> 0 bytes .../lvgl/src/lv_themes/lv_theme_template.d | 375 - .../lvgl/src/lv_themes/lv_theme_template.o | Bin 128204 -> 0 bytes .../thirdparty/lvgl/src/lv_widgets/lv_arc.d | 189 - .../thirdparty/lvgl/src/lv_widgets/lv_arc.o | Bin 125312 -> 0 bytes .../thirdparty/lvgl/src/lv_widgets/lv_bar.d | 263 - .../thirdparty/lvgl/src/lv_widgets/lv_bar.o | Bin 147556 -> 0 bytes .../thirdparty/lvgl/src/lv_widgets/lv_btn.d | 227 - .../thirdparty/lvgl/src/lv_widgets/lv_btn.o | Bin 105960 -> 0 bytes .../lvgl/src/lv_widgets/lv_btnmatrix.d | 235 - .../lvgl/src/lv_widgets/lv_btnmatrix.o | Bin 165888 -> 0 bytes .../lvgl/src/lv_widgets/lv_calendar.d | 221 - .../lvgl/src/lv_widgets/lv_calendar.o | Bin 153452 -> 0 bytes .../lvgl/src/lv_widgets/lv_canvas.d | 243 - .../lvgl/src/lv_widgets/lv_canvas.o | Bin 169072 -> 0 bytes .../thirdparty/lvgl/src/lv_widgets/lv_chart.d | 215 - .../thirdparty/lvgl/src/lv_widgets/lv_chart.o | Bin 171128 -> 0 bytes .../lvgl/src/lv_widgets/lv_checkbox.d | 233 - .../lvgl/src/lv_widgets/lv_checkbox.o | Bin 106456 -> 0 bytes .../thirdparty/lvgl/src/lv_widgets/lv_cont.d | 217 - .../thirdparty/lvgl/src/lv_widgets/lv_cont.o | Bin 133388 -> 0 bytes .../lvgl/src/lv_widgets/lv_cpicker.d | 199 - .../lvgl/src/lv_widgets/lv_cpicker.o | Bin 150336 -> 0 bytes .../lvgl/src/lv_widgets/lv_dropdown.d | 253 - .../lvgl/src/lv_widgets/lv_dropdown.o | Bin 180488 -> 0 bytes .../thirdparty/lvgl/src/lv_widgets/lv_gauge.d | 259 - .../thirdparty/lvgl/src/lv_widgets/lv_gauge.o | Bin 147680 -> 0 bytes .../thirdparty/lvgl/src/lv_widgets/lv_img.d | 227 - .../thirdparty/lvgl/src/lv_widgets/lv_img.o | Bin 144972 -> 0 bytes .../lvgl/src/lv_widgets/lv_imgbtn.d | 233 - .../lvgl/src/lv_widgets/lv_imgbtn.o | Bin 108504 -> 0 bytes .../lvgl/src/lv_widgets/lv_keyboard.d | 239 - .../lvgl/src/lv_widgets/lv_keyboard.o | Bin 115556 -> 0 bytes .../thirdparty/lvgl/src/lv_widgets/lv_label.d | 235 - .../thirdparty/lvgl/src/lv_widgets/lv_label.o | Bin 179800 -> 0 bytes .../thirdparty/lvgl/src/lv_widgets/lv_led.d | 209 - .../thirdparty/lvgl/src/lv_widgets/lv_led.o | Bin 100312 -> 0 bytes .../thirdparty/lvgl/src/lv_widgets/lv_line.d | 211 - .../thirdparty/lvgl/src/lv_widgets/lv_line.o | Bin 104836 -> 0 bytes .../lvgl/src/lv_widgets/lv_linemeter.d | 221 - .../lvgl/src/lv_widgets/lv_linemeter.o | Bin 128256 -> 0 bytes .../thirdparty/lvgl/src/lv_widgets/lv_list.d | 243 - .../thirdparty/lvgl/src/lv_widgets/lv_list.o | Bin 155560 -> 0 bytes .../lvgl/src/lv_widgets/lv_msgbox.d | 241 - .../lvgl/src/lv_widgets/lv_msgbox.o | Bin 139632 -> 0 bytes .../lvgl/src/lv_widgets/lv_objmask.d | 215 - .../lvgl/src/lv_widgets/lv_objmask.o | Bin 106072 -> 0 bytes .../lvgl/src/lv_widgets/lv_objx_templ.d | 161 - .../lvgl/src/lv_widgets/lv_objx_templ.o | Bin 76196 -> 0 bytes .../thirdparty/lvgl/src/lv_widgets/lv_page.d | 231 - .../thirdparty/lvgl/src/lv_widgets/lv_page.o | Bin 175700 -> 0 bytes .../lvgl/src/lv_widgets/lv_roller.d | 235 - .../lvgl/src/lv_widgets/lv_roller.o | Bin 158988 -> 0 bytes .../lvgl/src/lv_widgets/lv_slider.d | 243 - .../lvgl/src/lv_widgets/lv_slider.o | Bin 128352 -> 0 bytes .../lvgl/src/lv_widgets/lv_spinbox.d | 245 - .../lvgl/src/lv_widgets/lv_spinbox.o | Bin 125036 -> 0 bytes .../lvgl/src/lv_widgets/lv_spinner.d | 195 - .../lvgl/src/lv_widgets/lv_spinner.o | Bin 106436 -> 0 bytes .../lvgl/src/lv_widgets/lv_switch.d | 243 - .../lvgl/src/lv_widgets/lv_switch.o | Bin 118520 -> 0 bytes .../thirdparty/lvgl/src/lv_widgets/lv_table.d | 231 - .../thirdparty/lvgl/src/lv_widgets/lv_table.o | Bin 157880 -> 0 bytes .../lvgl/src/lv_widgets/lv_tabview.d | 259 - .../lvgl/src/lv_widgets/lv_tabview.o | Bin 159272 -> 0 bytes .../lvgl/src/lv_widgets/lv_textarea.d | 239 - .../lvgl/src/lv_widgets/lv_textarea.o | Bin 217816 -> 0 bytes .../lvgl/src/lv_widgets/lv_tileview.d | 205 - .../lvgl/src/lv_widgets/lv_tileview.o | Bin 122216 -> 0 bytes .../thirdparty/lvgl/src/lv_widgets/lv_win.d | 241 - .../thirdparty/lvgl/src/lv_widgets/lv_win.o | Bin 144316 -> 0 bytes .../thirdparty/lvgl/tests/lv_test_assert.d | 366 - .../thirdparty/lvgl/tests/lv_test_assert.o | Bin 85808 -> 0 bytes .../lvgl/tests/lv_test_core/lv_test_core.d | 366 - .../lvgl/tests/lv_test_core/lv_test_core.o | Bin 86504 -> 0 bytes .../lvgl/tests/lv_test_core/lv_test_obj.d | 369 - .../lvgl/tests/lv_test_core/lv_test_obj.o | Bin 86556 -> 0 bytes .../lvgl/tests/lv_test_core/lv_test_style.d | 369 - .../lvgl/tests/lv_test_core/lv_test_style.o | Bin 86564 -> 0 bytes .../thirdparty/lvgl/tests/lv_test_main.d | 408 - .../thirdparty/lvgl/tests/lv_test_main.o | Bin 101160 -> 0 bytes .../lvgl/tests/lv_test_objx/lv_test_cont.d | 367 - .../lvgl/tests/lv_test_objx/lv_test_cont.o | Bin 86504 -> 0 bytes 314 files changed, 147736 deletions(-) delete mode 100644 software/firmware/oracle_same54n19a/gcc/AtmelStart.bin delete mode 100644 software/firmware/oracle_same54n19a/gcc/AtmelStart.eep delete mode 100644 software/firmware/oracle_same54n19a/gcc/AtmelStart.elf delete mode 100644 software/firmware/oracle_same54n19a/gcc/AtmelStart.hex delete mode 100644 software/firmware/oracle_same54n19a/gcc/AtmelStart.lss delete mode 100644 software/firmware/oracle_same54n19a/gcc/AtmelStart.map delete mode 100644 software/firmware/oracle_same54n19a/gcc/atmel_start.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/atmel_start.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/driver_init.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/driver_init.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/gcc/gcc/startup_same54.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/gcc/gcc/startup_same54.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/gcc/system_same54.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/gcc/system_same54.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/hal/src/hal_atomic.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/hal/src/hal_atomic.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/hal/src/hal_cache.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/hal/src/hal_cache.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/hal/src/hal_delay.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/hal/src/hal_delay.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/hal/src/hal_ext_irq.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/hal/src/hal_ext_irq.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/hal/src/hal_gpio.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/hal/src/hal_gpio.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/hal/src/hal_i2c_m_sync.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/hal/src/hal_i2c_m_sync.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/hal/src/hal_init.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/hal/src/hal_init.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/hal/src/hal_io.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/hal/src/hal_io.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/hal/src/hal_sleep.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/hal/src/hal_sleep.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/hal/src/hal_timer.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/hal/src/hal_timer.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/hal/src/hal_usart_async.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/hal/src/hal_usart_async.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/hal/utils/src/utils_assert.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/hal/utils/src/utils_assert.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/hal/utils/src/utils_event.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/hal/utils/src/utils_event.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/hal/utils/src/utils_list.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/hal/utils/src/utils_list.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/hal/utils/src/utils_ringbuffer.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/hal/utils/src/utils_ringbuffer.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/hal/utils/src/utils_syscalls.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/hal/utils/src/utils_syscalls.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/hpl/cmcc/hpl_cmcc.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/hpl/cmcc/hpl_cmcc.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/hpl/core/hpl_core_m4.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/hpl/core/hpl_core_m4.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/hpl/core/hpl_init.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/hpl/core/hpl_init.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/hpl/dmac/hpl_dmac.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/hpl/dmac/hpl_dmac.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/hpl/eic/hpl_eic.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/hpl/eic/hpl_eic.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/hpl/gclk/hpl_gclk.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/hpl/gclk/hpl_gclk.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/hpl/mclk/hpl_mclk.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/hpl/mclk/hpl_mclk.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/hpl/osc32kctrl/hpl_osc32kctrl.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/hpl/osc32kctrl/hpl_osc32kctrl.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/hpl/oscctrl/hpl_oscctrl.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/hpl/oscctrl/hpl_oscctrl.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/hpl/pm/hpl_pm.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/hpl/pm/hpl_pm.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/hpl/ramecc/hpl_ramecc.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/hpl/ramecc/hpl_ramecc.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/hpl/sercom/hpl_sercom.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/hpl/sercom/hpl_sercom.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/hpl/tc/hpl_tc.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/hpl/tc/hpl_tc.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/main.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/main.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/oracle.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/oracle.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/devices/display/p_ssd1963.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/devices/display/p_ssd1963.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/devices/p_screen.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/devices/p_screen.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/drivers/p_gpio.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/drivers/p_gpio.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/drivers/p_i2c.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/drivers/p_i2c.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/drivers/p_tcc.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/drivers/p_tcc.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/drivers/p_usart.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/drivers/p_usart.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/porting/lv_port_disp_template.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/porting/lv_port_disp_template.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/porting/lv_port_fs_template.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/porting/lv_port_fs_template.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/porting/lv_port_indev_template.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/porting/lv_port_indev_template.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_core/lv_debug.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_core/lv_debug.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_core/lv_disp.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_core/lv_disp.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_core/lv_group.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_core/lv_group.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_core/lv_indev.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_core/lv_indev.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_core/lv_obj.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_core/lv_obj.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_core/lv_refr.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_core/lv_refr.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_core/lv_style.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_core/lv_style.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_draw/lv_draw_arc.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_draw/lv_draw_arc.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_draw/lv_draw_blend.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_draw/lv_draw_blend.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_draw/lv_draw_img.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_draw/lv_draw_img.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_draw/lv_draw_label.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_draw/lv_draw_label.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_draw/lv_draw_line.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_draw/lv_draw_line.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_draw/lv_draw_mask.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_draw/lv_draw_mask.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_draw/lv_draw_rect.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_draw/lv_draw_rect.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_draw/lv_draw_triangle.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_draw/lv_draw_triangle.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_draw/lv_img_buf.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_draw/lv_img_buf.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_draw/lv_img_cache.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_draw/lv_img_cache.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_draw/lv_img_decoder.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_draw/lv_img_decoder.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_font/lv_font.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_font/lv_font.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_font/lv_font_dejavu_16_persian_hebrew.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_font/lv_font_dejavu_16_persian_hebrew.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_font/lv_font_fmt_txt.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_font/lv_font_fmt_txt.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_font/lv_font_montserrat_12.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_font/lv_font_montserrat_12.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_font/lv_font_montserrat_12_subpx.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_font/lv_font_montserrat_12_subpx.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_font/lv_font_montserrat_14.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_font/lv_font_montserrat_14.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_font/lv_font_montserrat_16.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_font/lv_font_montserrat_16.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_font/lv_font_montserrat_18.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_font/lv_font_montserrat_18.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_font/lv_font_montserrat_20.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_font/lv_font_montserrat_20.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_font/lv_font_montserrat_22.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_font/lv_font_montserrat_22.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_font/lv_font_montserrat_24.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_font/lv_font_montserrat_24.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_font/lv_font_montserrat_26.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_font/lv_font_montserrat_26.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_font/lv_font_montserrat_28.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_font/lv_font_montserrat_28.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_font/lv_font_montserrat_28_compressed.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_font/lv_font_montserrat_28_compressed.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_font/lv_font_montserrat_30.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_font/lv_font_montserrat_30.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_font/lv_font_montserrat_32.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_font/lv_font_montserrat_32.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_font/lv_font_montserrat_34.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_font/lv_font_montserrat_34.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_font/lv_font_montserrat_36.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_font/lv_font_montserrat_36.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_font/lv_font_montserrat_38.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_font/lv_font_montserrat_38.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_font/lv_font_montserrat_40.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_font/lv_font_montserrat_40.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_font/lv_font_montserrat_42.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_font/lv_font_montserrat_42.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_font/lv_font_montserrat_44.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_font/lv_font_montserrat_44.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_font/lv_font_montserrat_46.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_font/lv_font_montserrat_46.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_font/lv_font_montserrat_48.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_font/lv_font_montserrat_48.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_font/lv_font_simsun_16_cjk.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_font/lv_font_simsun_16_cjk.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_font/lv_font_unscii_8.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_font/lv_font_unscii_8.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_gpu/lv_gpu_stm32_dma2d.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_gpu/lv_gpu_stm32_dma2d.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_hal/lv_hal_disp.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_hal/lv_hal_disp.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_hal/lv_hal_indev.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_hal/lv_hal_indev.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_hal/lv_hal_tick.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_hal/lv_hal_tick.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_misc/lv_anim.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_misc/lv_anim.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_misc/lv_area.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_misc/lv_area.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_misc/lv_async.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_misc/lv_async.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_misc/lv_bidi.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_misc/lv_bidi.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_misc/lv_color.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_misc/lv_color.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_misc/lv_fs.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_misc/lv_fs.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_misc/lv_gc.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_misc/lv_gc.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_misc/lv_ll.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_misc/lv_ll.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_misc/lv_log.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_misc/lv_log.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_misc/lv_math.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_misc/lv_math.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_misc/lv_mem.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_misc/lv_mem.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_misc/lv_printf.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_misc/lv_printf.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_misc/lv_task.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_misc/lv_task.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_misc/lv_templ.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_misc/lv_templ.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_misc/lv_txt.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_misc/lv_txt.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_misc/lv_txt_ap.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_misc/lv_txt_ap.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_misc/lv_utils.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_misc/lv_utils.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_themes/lv_theme.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_themes/lv_theme.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_themes/lv_theme_empty.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_themes/lv_theme_empty.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_themes/lv_theme_material.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_themes/lv_theme_material.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_themes/lv_theme_mono.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_themes/lv_theme_mono.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_themes/lv_theme_template.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_themes/lv_theme_template.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_widgets/lv_arc.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_widgets/lv_arc.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_widgets/lv_bar.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_widgets/lv_bar.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_widgets/lv_btn.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_widgets/lv_btn.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_widgets/lv_btnmatrix.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_widgets/lv_btnmatrix.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_widgets/lv_calendar.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_widgets/lv_calendar.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_widgets/lv_canvas.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_widgets/lv_canvas.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_widgets/lv_chart.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_widgets/lv_chart.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_widgets/lv_checkbox.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_widgets/lv_checkbox.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_widgets/lv_cont.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_widgets/lv_cont.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_widgets/lv_cpicker.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_widgets/lv_cpicker.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_widgets/lv_dropdown.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_widgets/lv_dropdown.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_widgets/lv_gauge.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_widgets/lv_gauge.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_widgets/lv_img.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_widgets/lv_img.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_widgets/lv_imgbtn.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_widgets/lv_imgbtn.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_widgets/lv_keyboard.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_widgets/lv_keyboard.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_widgets/lv_label.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_widgets/lv_label.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_widgets/lv_led.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_widgets/lv_led.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_widgets/lv_line.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_widgets/lv_line.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_widgets/lv_linemeter.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_widgets/lv_linemeter.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_widgets/lv_list.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_widgets/lv_list.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_widgets/lv_msgbox.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_widgets/lv_msgbox.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_widgets/lv_objmask.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_widgets/lv_objmask.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_widgets/lv_objx_templ.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_widgets/lv_objx_templ.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_widgets/lv_page.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_widgets/lv_page.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_widgets/lv_roller.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_widgets/lv_roller.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_widgets/lv_slider.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_widgets/lv_slider.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_widgets/lv_spinbox.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_widgets/lv_spinbox.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_widgets/lv_spinner.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_widgets/lv_spinner.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_widgets/lv_switch.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_widgets/lv_switch.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_widgets/lv_table.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_widgets/lv_table.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_widgets/lv_tabview.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_widgets/lv_tabview.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_widgets/lv_textarea.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_widgets/lv_textarea.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_widgets/lv_tileview.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_widgets/lv_tileview.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_widgets/lv_win.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/src/lv_widgets/lv_win.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/tests/lv_test_assert.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/tests/lv_test_assert.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/tests/lv_test_core/lv_test_core.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/tests/lv_test_core/lv_test_core.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/tests/lv_test_core/lv_test_obj.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/tests/lv_test_core/lv_test_obj.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/tests/lv_test_core/lv_test_style.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/tests/lv_test_core/lv_test_style.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/tests/lv_test_main.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/tests/lv_test_main.o delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/tests/lv_test_objx/lv_test_cont.d delete mode 100644 software/firmware/oracle_same54n19a/gcc/shared/thirdparty/lvgl/tests/lv_test_objx/lv_test_cont.o diff --git a/software/firmware/oracle_same54n19a/gcc/AtmelStart.bin b/software/firmware/oracle_same54n19a/gcc/AtmelStart.bin deleted file mode 100644 index 26ce02137418563c23bff21373f8e0fd264b06fc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 184220 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%0ACK+3+moJsFdclEn!^a%xhgOlSAow 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 diff --git a/software/firmware/oracle_same54n19a/gcc/AtmelStart.eep b/software/firmware/oracle_same54n19a/gcc/AtmelStart.eep deleted file mode 100644 index e69de29b..00000000 diff --git a/software/firmware/oracle_same54n19a/gcc/AtmelStart.elf b/software/firmware/oracle_same54n19a/gcc/AtmelStart.elf deleted file mode 100644 index d3af939b4aacde54025e0d1dbe606144023bff78..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2923448 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

ZJ__IHyZe;zK9TRFZ+^u~L z;>ch<-4$n?#T|HJ~#D!u3z`Jn~PKW)BljtuS+v@{dKs$>-~(@ zz8A&Rnqb$2>&nkhuw~VZJY}e3wv5WA&Q|4*7P)v{ackcmOIphq_bXYSM5r8HKZkPo z{xN^h^`}rdGf__AiAZ5O%kMmyTA#XOWO_Pgnm=*u@5;UI&!^Kt>Cuxrl|NJr!~cDe z@%;BfQ`7l=UHY&npNiFB-OXVOBBGvAej&b@HE;bh%07{|W^6-#@m>7?bgf7ae(|^a z_lI^WuZVSl)Vh7jyW-56thx+Xfk*M(DMxzUO^Bcgc_%dPQ~nD+NoIdBWT@Mzyz0oP z#P^Pu9(p%0d`D(&=1%x#P&Z4r)M6ILy=&t7_1v4iLN0&dZ_5&jvv-_K(DmyxC_Wn} zQP}E(qw7+3Sd}!#q|OZYue07<0xB&x6OEQ_`1`7;v+e~aV{xsoRBTlm9b*<0G#)u8 zrZ*y{VxRI0b{h8uumv;fk(+Ig80#MnBx4U<{rZf`RV^uy?Ob6>O)_{a89VB*SFYxF z9~ZJvNHpmPGJFVgc9G$mCdp&@-}C?ANpo^8`>eh8T6?dx_PTsQZwv>|N5*=ZzTnKmym!q{sjZjhrI}YJAE0Ax zxz=AWe^LM3q^+#ao$pkMdC6nY|6%^3Lo}nUzmj@@X1dsBd5SWn2rJPmf_cmS$ZL|M z0?9!)<|X2u{gGWl4X#!Tm+*IwP=kAFg-cKFhs=k(&xkPGCyc4R4Kdk!G2S(6&)QD~ z5-ONw=9R1amp^$*z1W^uv1beABw1`9UXk*otZTGvfn5j9nqc^HKf$p6%IEuw%ILde ze{^-Zx&KD=-zfE;=8UbFGvYAMW4*wfVel&am~+EPG)H(V#i4$(tBv-K@M|zf%)Isy z^ss^1ZSZ$yH^toVj!Jdz6tVm-$it3#N)i5ct|GsHuimCTTs8J^b;-1cTeG3hY%a-{ ze3CCcNjt)q*682^N%zX9v;?&2JDX)rqrS3Ks>{(#Yd4>+XjM*;r$2{`$egJpmp+4W zU+&dc)|jueF4o0Kz7PXzxLka`z6?2Wb>f`H#~>p;=A4)E*zCvWk-h%0IU_oZ@Qp71 ztZ~buSeeOBnRUJ8;h)@COg53N4JCNuTFOJtRkK&kmznBw_ZI(L(tcsZx{;Y)FBU`I z;LG)h51E1$fr4# zb*OiRyJo-}m%f{N^zeg*&uNdL`pq7hj_i%(W3@NL#WeMdf|SRf&vNFWmnVW_Z$QJ+ zC$%d42hDqyRr-q@ytc*?dT9{9W+BASaFkefaz3#UQ>jK0qBh zd{4#skyuAZmcr)|A6irY@=nwTbOVlQEe%1xq4l)k6lyQy!|=?M23A^)x?1;JzPXe`>#T53KcaFL zNq+v9Hkdc&Ux~zH2+P4Fhw?XUEb#!za>qO@-E+Cov&S80V3|jn3vKUx!%6}n z>yURTZ$VayE5*$+TQ0xukyk8tYaMX`WrZ;ye_30347ryyfR!L(-YJem91|@(Oj&pQ z$Mq_&(ubKxN7u6)TWwlj%jIW1@~Zn(vJl6t-TOQ$AM@U6Ks&-u=Mwx|Q1jz^y)wl3 zDYBdoxfmaa@%mxuHNo04SkU3GP8jMv|CKJwi|TS8f2A|~LGe|pq}D>`B;e~9G)t_t zLOV3dLp^Fio1)0}_FfKSwH2rxe_hj&KKBNGdU+4;PXo z&3%|J_XScQ=jeq|7_*UHxlfDLFA0_u|5CEz+zCFEZ=>BdnHTX3cFv1Y09NpBSUF+^ zZPoaB(;){p_54-H2+Ci)H;8;_6^nzaD)2~%Qxon8pM*avtkWuZ%yO(%RqhBTsn&nhsx> zVe6}LYAcQIp^nPjX9BzDCRLifOGZAt!-RX+Wq zMP96}p9{~-nNp5;og92t;4`KrP!6BjF8pO7Zs?czR)`(aFGa%6$mfiH?~MEf-z=oi z!OqU!4L>cnb~<#}E90!4Z-WzM=Ji3M8bofH@oiOmA9P|wv>BMUbiUE$(cYV+-j8h6 z!NOrU6R_z&i-kERv~NmXHYz$%JLgoR`rDx= ziAE>S9lE7(OSBCxI|g;U|9vZ3zsi?6cb7iO`$V+^6f8i8Rr%l3EBuFgn3b+`;v$u` z`+qhOhcmAr5582*t_8YPG^UNFvIOPIwI^5gU1@9i)d$_`7 zkMPsgM5zzZ zs-)$YL(4aO0UgMzPMzeO9GoPL_}Y|-&etw_aF$EWc3Og6IFhGMaE=KMfhKr9lGkCr zF8jwFh-OIiugO_@?iT+a8m5aDMjH(9uqr#^jTBVMM-B#2#YiL|He?0UY#k zO~531JPr5jePO-NW(~jXX^NbZG^TXYIfWtUxxpt3U6Rpg87hW&Gkn8vZWww?THI~o zrr=lLl~*APWj-!r!yl7LveNhM5hOQd;@T6K;MjoAfG#)0e@Q^Rg ziYL1JWcE%CKel3wZ&4@D>w9HgQtqW}t*Az=n6Xv+?y~r~Uf6lV3gmo~Cy(&Y>a-4> z)p*qcm?Oh=+~gttaaG%F31b9p_u zobP&5e&FbV0|#Djfkojrb7X09^WX}NuO~C^%u91Ll@$>-bc4;>^@itEM4r4CN3VNc zaB6&;BJewk$nPZXWssjQmPhA+kHF~!7xBL)qy$gDEAc+&E!T-=nirJ9ndXmCLxwnB z#4G@RWF;H(E$@%;4)LF99#Ns_)pWzsa7Ee6IaHz3e1ccjs|kP0_rtt;@#o;XLB1hX zQBK`>8GLGr>t6v|h2j3}n|QRSe`a`(yaVx$#PTXf9PG`!25$<>yHs+67ka#AgnySU z=O(VyN!n?YEBnUCkmrX@P6SudDCW7a{)b0og}OWbVd z*$xk`aA|pSWajz7E*#6##5p>1UT|>L^t>4IeYf;wj%e2G(D>qd<*?mX*{B}Q<+j{l zJnTguN1iJ;UzcB|xAGy4I#-PIZ?jE1H^di*ReQL1tL+4+PVcR9B>E3E+|1A8{tZ8) zE+y6sy?;1nvr5qnyWKFqJtyb0Zz<=LV1T@qfSH>{fUv|({&_ILKd91JS{;(d##^(m z$A*)d2Ui|ns)FzSAnc;=Y)kQEy>cR|J3>Dq+v6`* zM0F(M^$2*~`2)O8^xb!hg!kJ9@O~lkoQE(^QM%vKIE~(`K?5YxVQ*mFyRrVq{lNMU zulCPr)r_6b%$ed8L?N>D^;go~7(H(N)d%-U)zXlma(5hRrp=|jkG^X~$5=DTs9$6L z^7PMNbMQ_3ywnfWm4v=oJ+I7!{Jx)MlMXdu+^D)4BtVdbEP3KWz%_H8gQ-+F^X${AEQ0r2a#+4P9IQH$FUYaAoe3c3RstM^AL*^;td#_3o^eJ-+KvCLJi ze(Y}YT|AFCY&(ZF4^ozC6RJ0iK?Ws~AvKWbV~6Cou6L4VimQ+`-xnwk*#5}7l6D11 zkqMv`#~NX^Zn5g2PK5%V1`7SB3csPOCeUWUn{|q+*<}XD2}6vd(74112pFJ(#JUS{ zTIB|}bHZM-!%-VXmHt!ZO;0NS?URf9pUl0Xm$8)6;F!Jho!UAb_={|<@Z9QX>hbBw z^9nu_u$NRa*p*9~dMaDciX`vO@=*yc?TrOU4Za?9XHV!*b^Eo zOQoKm|GP}7kUl=too^WBz<5CKgYS*w*QjZWdbTUG11j$%_zs?^rie+rw_JrC=3Ur{ zQ=Fe73K+EoLDfrN2XA$bpP!8AN7{9&B=0ivwbIQ&G*Mi@ENTL@dm>>s@aBEufq8=T!hzfiBp;A1kmLbL_AenCX0G31 zeQNitBpP;A=8^}%cW79xf*(SWMja|r-%Q0zai8fJQ82WGDq~p#cn`9v+6gM%A!%Bb z9^%`7rD>v|U4pG)py#0AqMcu$ni@u*#-8|W=9OIsrehDJ()zndTnomVVT@fEb9Rx& z(uC2W5jO1!#d2Ys@j(jPp`$lr>@m_OASIAoIvEtZOUMrBMY7po>`mhVw?}*rx$!H7 z-@&Va#wH2WK$P%eloA}N@K5j|-_wrj==k%<3;fS7#){z}W8Q>(s5$ zktdyj^3B)h{=A`pxV@jc_JEg}X@{-088iCCR9K~=BTeIrvF0b#*4Gbn!OSGzc3tUih8xYH!%Msq@k!dqS5UQTtUDI9|IqbZKp2 zPP}-gS>-3*|FAi~b58sc?hq_4hvuAVKGb_Xd}`@TGqP<@dN2H6@xPa5My2d{NF{?m zjOq879es&s6X6$Qimf}5L-VN`S2eN|Id3%E9W?S;7?sI_c5gN6p8a(waq-M6jr*Y| zBU^wxl$N?6=as;F;UQ_(@YkLM_+LaVnPFpHNTE%*UUsE6q);#m)+9bPK#`Z@0-V2&>J7h;%TmF3aq+TuHv#0c3eT_O~h{FbYom#s>mvSk#7vl5y#XXK~5H~0-k-~EIOcoT-60#UK z(P~&?cm>z8K>L%0*jh8@n&>Wv2kSsA?5Zkpk+dsd!E*v)>Ei+vO*#d0*+eOy%nV@_ zu4I8qNrRdO8oxuBD$bQ^&cHLra~S#=t>u;2ubYf)%yD?CGH1#8rk*>XrA&jS6fenS zcS!R+QQsYNY5j;&V^nX_)@6%>v3g8(PMu5fO0XC}XM+5IznaSGT+*i6NCL=YFB0a{ z=jw2`G#U#Ek)xQ#0y_`E1ngw9l!WWgUP%sMq&5<6M@sji_TlxTfjf9RQXa>B}g_O=STQkzf%#y+0@@$)z0>$Thj@T}k4ht)~oYww^Q$ z3H%zFnI^1Kz(*G{1FJfgy$&%ON>9Tb4bli%6m4AA8`4e-?3d5-7OstD_MAf{Z`A&T z9I*j+F)m%(#>W5cT+nv;G<>APPi=U@_MGjn=lvZl{Yu-^MAp4#0~`POxl&uTt>y9# zq{=xH#9LxXrumJhyI2KniDl$>)|l^yXPV+XGT@wL$c)RG-VOR}J?Ew;I_=TxbWM4_ z9+_0En%~m3b}s8sahz~Dv2lhutU?I#0Y-dh8n`tq)|Nr;}Wcz6}zrYr}L^7?Zx z+A_|w%v;(Uio1%rUUm1DICxoi)3Yr7t!8>Urh)#}F0DWtwF~1qSf;ieIrh%ihL&;P zUOjhBEIzC4?wdj~?Mct&;zHYEJNXLY-jqS@3v*)5FF@1) za3l2#-aCxeT?M`=nrcM5BWKw8L&d}3Ck|Z7?y=ozr@m~7yVL%%itw@sSjl(dFZ=-% zxQnjtQW-vVDB{;lfJ939=KD?4w8S{9zeQBq_Z=x zJPAlE0jU;{YFS;7Gd=JH8@u6)R;edLfFn>^_}Sz{2Qb17U{cK}8gu|Be&|0>9jptf zxaZ)JS9pMB^j&@M!2iHnbS`-N_UK;tkNGG)Uq4bj4^O|!NL)Fj)M|#+NtUe?w>h_A zWmm(}qCsV4%I^*@b%7#$rnMcjame~VwF4furla5>_}A*V5ZvN(c86l*D*PU6LjDD| z2j|Ldn)5uqe`CYl?DqC*>3HfnYALPlRomHiHkNOHxIe}ePqJz}$q6j|u5s@gn_$=Pv$69T z2A1)4``IA8|4se?C$t#);Qxu<3WbK5*g0KdKbj-2U|6kLxO@X3@sw3lMgEszb*S#rtPuE>?zt2!GN}i}V{RYko_m0F_;VybA zrR^Z>#;KSe`1WC_OinAL3v+|nOsVa$phUfVzaB-5o4V zGIe&8yaDMd*^ptVwKZRzbub^c@u4q8=`0QLaYS?SDlVH~lw*$igMpi#bAEY+x{fedB0-U&d(eq|)!3z-3j3r<$4$k~ zwvMnx``RX5qwUsqu2NH{?KLohdJH5FgATI_|2Agn=nO64u8nXH@#IFvG2Z>=;FI?z3ryA60Ga5ym$cE;+~gwBv^*5eXO)rv$1_w ztp{EOr*A%xVH6S{`hxSn9Uh|7InetVj4~;PV$J!T)>v=vKf=7@IIbCCOYhX z6b0#sWV2$IE)W5Iy*rti-hy0o5ua!AAsYI+{6yl1SLs> zy)@3f06YJ)pzV^c8DCk2Juq<9_Q;R|qwa3hgIeM`$lC9G;V3vWd ztg~E0ZELy)xoH-BAw0v7$6~ZNHkoP>Rpt^6TErY^K-uCQIB#CJGm>Qb=?2;_Ha`k| zLUxQap^}ZA7ay(;T`Jify7+LJ4S6wjuWmdo$yCTO%4N($c1#^Jom9R16%4BzUf=La zWUy!D#x$4dVauo44f$6*L$~*ayYIAbiTm@itp4AZFE6nB<7$>&EH1)(+9T%vDmYFUFLN3S;E`B(2Y^vFb z=1~F4+h4P8%*LO=!>Q&`h12YknavMl)NIWB?pF$Pq>1L9G<-@9*Y~Kca>#;#ka>K5 zr#X!~XDusf!d{yIKfkNw&&RcU%DxF2jrZ6KjWKa?fmvnBC*BFkQfR+sV_7>q|N9h( zh#X2@QpI+@S2lEGDfvk$5yQBO;vwaTa7tNbUk<77y*u9tzguYQoE7(WsrbZ6^;I=J zp^Ptz)@(Ap9gNxmbC6wQndaI0Kd9v5Vnp;(T=|FMqGsgSnO2#*Zxr$ach2TH>>F{s zwwKT5#3K~J5+n02%}F^oz0BKtH7xIyN2YtGK~v7};$q*;nf1v7Htb=Ad2i7uMK8Zb z<^_ME4Q;PtF`kWGk#om6EA&_u@j|{nm-)HMDG?s|KGd4N^ zNop?dz1lSzF@80Oq@hY+`-6OCe3?$a#;z!5w`gIXl$ZZnWZrUcBZHsW8_mbVFBqwp z$q`+Bbx0FK5sM$fvm0-%&yJ|-nZG6!6T|s=#}3;cn&p0(zkNwIR!2@);@E6s-de|a z$7ko5c|s(f9f-gSJ9~%ifaBUZdb=#^DeySyOJp~qn1dgZe{`q|xiFddaIn)@R^*|a z{(C$Z!9Aks;-;bv<~8QW&A-_54COmk&Y_IQl!bPPIi)CNMbXBno%hjF^sL|Srb2wD zET?Qi(zvhX+m?|2ZP{PH3A59z@Piw$Ph93qGQxt!EVIHZHyrITSsA=!Y)|{prrN7O zY~_rn&qhooM|)CTM|nCiG@$aWYU^3ZAQ z$uF^01nwKP1(eJ2`y&p@9@&jtlkh{CFQ~CDi6$33@p~&RdcxTRm6>T3lZXY6$Y+_tp0_>xtW&Le)1~m8r=<(!-SRgb- z3MGH^LL4oWeAE}>=x*uU-NHTaavzQ-n<9$}nj(u~|5}RG^FCcu#8JXc;skxexy5w7+BnWQ$p$&WG~`Sis6Nn<7?NXciT4w>86)S2S&& zM}BZ|@HzSo?inGj*S(DI(V{%0(r9`$T~=0`OL%_5sVvvkjRHKdqK;F#v%rfLiouurTrk)K>CAQthl>B#0;Xz=68T39gdNSp>JpAuH)GxMmrG+0-- zu>w|%6}sBoHB1AKRR#9xRNidK&rOBMrd>Amxv1ADH&)rJ{N~X%X1=3i5o&Fa9X4$r zgI{oxDQzcN;aD=QR*M=nRf@_2j045l7#u3dl-LvZo(WDbRrnN@*edS55>AQ8rfd9D zMZJEbt+Vwxk+Lc6h_IF&IU}0=9QH0}&|Urj-G^+IK4n!FxVb{};X*EZpY1AS%lW|b z9LcX5d0Z!Opc+}Ii1!7I0S)%T=L#|K@6Y?e>soK7Gq!?gV|v@so)mZo<>Ncml+sAF zdk8Hp(Wty)hY(0cM64-afeeV+s$>V35qn+q`e-f=%4*)Ylm#PMO-;)bpUAffT#i<;6~DJZR-XLF;Sk zal^OdOmnQisb`hx95P|;kGRpEyMXTJCO>AJ9ALK^&PToN27w}$!~d$O$0dAiQ2I5! zvb#n)40UBrqT;5WwF0|^XmF7KW!OV%JOr!4N6^yqO+E8XiYkJ4K@xH6a=^UORO+;e z15i!_l&fw)d8RqWuk}S?T17D7vr0Dr?StQeb^y}E^VBx{fB@-Aa6KS3?KfaWx(mA~ zbt4_4YALH=6JR8+VYkEr(zVbGZ-!ICDDu~l_tJ7u;(TfLAbig2$EW9zihP%_vka(A z(M-4!-Xg0DaK?okvxwkhMfr zyV956S*(OtPe+D``ek#oM6%aO_rX$Ms>_ysSLga78K~^TrK|lJbCDZKvVV`NBc449 z{mcsMViS5w>3vGm%Zw=rsN>+KvBr?M}bZE{>iOsO5!N3h~7)RGD=oS3!vuGS)0rh?H#Q}!^s<)|4%*RZo4;# z`DQ(0_&(l%IcIdq-wnUFeRFP(gA+Eu@}mjK6nBoYVAp{)-wY380whXxNjyXpdoxc( zx#`FaZn~|tpPRrZ-{q#&;HD^dtp>JNyXZdRtO5EQ;3T5YAL69y?{N~*Ld)fspZ+d< z1Dv$tJDgO06DJYBOPnM@_*ph^t39j1N43(tBw?=LW~73Cm=|wA^&q5zRXT#~=Fual z5D$6NY(tsh24+BlYyc{G2ka&N>(!6o><34)u^(?=HmLmVu!Df=2}_X&OD;roUh>5U zTmogbFw`BqffLnEisx>!(X7z|8FR05FL=KkGaSux)wxRSjribIN)l+TXSeenktDaH zu#Rz-)bl=Q`#l!ZXC#w_8jebF=!Om;Tsp(nZFt57 z|A9r2I+qJZ{Gt_Nh2X={3e56NSkaIj9V-y6ZL~vLKJ9U|_qY@}A6t%nC;`!G@cI4w zW*=gGWz(@6UbNYZLDg2c-5z8Kf8tjB-KCAJKn8(cbh@&894TqdX(oAgm@LD;j4m5}C zAE`I-2JLT=95=9sOzYf$ZvfTu*x$xr%$Kn+>_Ly=n`}Y@H5z6^?!!)L!BKeeW4ujy zs{5LkBrdV}1Bh3GM+WFth*2$SUXTcyV0Xi^5ij}!#|^(ykya8tznC4LKX8S-trrV_ zP%Xt1OKhMXHW&S(C-y=EA^IL($C=Zx7y7$?`H@Bpa$rv()~35#j`hI39k@VzJ$BcR zVBe)LTkSoHNCVm@^hJij_DUWNaUFw0N{YPHLQ_Pxpqfxz`5Udn zNG}(b&ZFa}gi&>deT(ppqgazLPnwQK=I9KVvr2_%|4MOol@Nn7YbBi-@|CVBvJS`O zRk#jw*;A;vKzj63LRxJuxC`$U#$e1yFQ`Ur-h6!T!ncU;7Xb(A*}wQayf|*3i(Uw6 zh^!ig9c3SE7EvyK0KBW0cy}duchbB8?#)Kq_lPm&ap=*}h@k|lXgStTD|U3C(G&D@ zKppKyXy-VdFHDEe`V7Ryl7|0Efaa`NZ(JR<4Sn94P&>#=?dY*O6bKrxAJ37#F6rk5 z*{Dsksh8#et#^_G*Fd|4cy3{RJhcD2QCWqmcg9KcNJ1U01f=~B-jD>o9N;aID+hR! z;x-OnVr(E5o^&wc(E*;Nbxwsj2x|uH6DQ&Q)94uOQ2XWZyqFF@0b?Ml-^cm~G<}Vq z?#y=h9a`yVlw%SyW^C&n7uc6G$bVvfZSy{4=+EzbAjY5b89dIaM4IE478tjlz+AS7 zDJw$;$5!HEa49~E88^vjL_Iv<;Xc74Y2{>D;LLHb3DoBvo=fvkbuK)^FEeuj^uTiH zf$$E57FeBoz)2n%QH_8w+|;w!72`V^8D8RxjI3|!S*WYZc}wDE;@?{Mxh9o^i(6vB z#d6UIUz`FsHe0)9J_~L%sdj>YurC%X%S7Zj_(M0qziNqpQ^CLBNJIw22`b-J!*31h zAK}{jB(8n_85&8I@0pvpmaH(uwIoa9?VwLRI58@3b7P2aiDRdsIuG&d#}Rcs@ho}* z4$%Xi6((;YX^ph{(pBQufxE$_{Txf)6}9jnA)Xy~!wW7$TfKf6<`& zuHAYxLo9F>{4ZLz|GSnkFZAnXIEv~}eb??fI`v0%q=`SOBW3#)4;{@eRr_R} zJlB_zgq%V=d3D1dT&Er7BwOmuI+^|l-$!*u89!()X_Heb?fTK|%}Hdzd)|vSeEAvxpIVwtpRtDTjR4zsf=mg#1?L zLBO`XF@hL8hO4N2)YL$GQiWQ|Pw^@aKI{w-sJrK3I~-(y+>OrWt>+ z_6!oRMtZqh*l$Q0W#;}TA>~BvB}?&5`rcx!9@%&s=`;7yJOMZ!l%8k5p%x5v(dS8; zRYLlmd8Kl%UL@I)a2=Iz?+#8wC7}XPuhMUhj9}bt%VCRCdW(=N2s2lS%0C)@T#E&> zgUfyy{wqyA_X$QLHyv5}&XPnuxsAMU%}yh-uws|czj&+4Z$SQ@M98Ktfjm)h9sYw{h6Rf-T1wW7>zl(-nPU~s z(7f^>zMqnCxhtRjdJnwEIIpI{LiVFf;@TsS1t2A74r|j?kq#1raUdyVsboK27afHP zdWxPP>oPq9S`;*}=B*PJCy`!NYJ$#)>^#>Q4aexo~)3b#O_K+Z%G8VeGlzAg<=kf5I5r$gwxh4JPdFY}()ZlwQ@(9+PiNM99!h7MZX~zPPb*C!4 zzQ`1^?3>zER9o2E{l4cX*bTl%q*eCreqM!EVTA`9NuH*tR`z1=H(^C@yo01u$_5!1 zsOY`ct?C_`A`6{*qz3Vbe(WWmew4-PYJd1tc(KHSdntC=u=7gpO{@V;G5H`M^7YmTbpu`&- z2Yqea>~YRpp|2f~^fkl)%{5@Zc@cQ0@0zKRdNLZ7sf|W|0M>ylT2pD(Ap0b(!(`X= z!9RwiR^)F2HIRtJJKt|mB8FZE{acH8PnA!Gn0k(~AR%kV z8_k#W<|Kk7+6KW+TpFbjI$DW+gT8CBMw`?AANn2D+`jGS_wf+b&a~g@_xS#PD{u6B zi2?mS|Np<=`XA}H_W!EidyWi)-Z3zj6AcqB-|SybxFRf(pp6b!KEiB;EFh#`{=MZILyr zt7s)~nRcQUiM*A!)bvA-o(Ma^7d4WvKlnka@jSo{i~6|%G=OxN*OqH4qWmxo98o-v^a2USo*PYo4os~?`GRx_ zqG(CykXAN{FVG*iNeRAKB&}=((mQJ4M;%?^h%auY4}#;zvDA0%CynT(!RoaBCk%Y2 z$JE>J^9Er-;n$!((zh7MxCsMy-@rhWKh*!17*Jzv{~-+MegFfSn>ge@Vc_c{1OD73 z_aJ@_F(J=YgKB7w)(!9m$!5FY0T@p^Sq2j%bESX8yy)!tuk><5Bjl%vX6zeS;wHt-o@9AIVfRubtf2ckNHd2p-~7g75!z{&A`*RBmJNx*Di0 zbS-%8@H1|e$V!JH(g;~PO^EiD$una`O{-#>Cewh5ld>*_Vq}(m(Rlp3)k)F7mATX1 z@Oo#*!&}Yqy^64|SKiH#AxxHXi*tgbzs4-1+C$UbbdM^#T?ap$B0lsv@|LS)#*aH9b^JQQCVq^yUqNemGvO5Rcco9ek;k1= zWIT;rhuSvI{dRb3GIH8x$wD?*AIeJ=fIVg^pK-TTaZ{FXN34zb)!*2@*P z>sq>1?31Nj%0|4GpA}1%dt`-f30w${p3SyLpWr8K!4tgngkNXH{Vm-}#`iy?%YMKS zAJN6WAB>;>S5eum8!WgVcK=M|KTuD8EaxrpT3fUgZo+J|!bzr8H;Qf>3$)~J!qvqHz--BVuY0j#gP4w^%SKgiOjy>dMNXHi z;Y-U^@T){LvM}07o=&Es>UEX5R6{db<9nh|z0LsnvSwZ4XjumGN+om2HfHPGAj3U6 zS(j3l+@<8S_RWZgNpYtv-&01pq238=5mCO;{3a~6_D!#KhNZH<(lp#=rNA`eAR0qZLGGJb;b7bY>1!w2QRX35M9?1 z+soaBIJlOVfX6>}GybD)CR4+Pp+*F~Jv_v03lB*FSM;C)!1V|0HhY!+Wc<+U&vk18 z+;&+NA{;r2ahMezlKe_2R*snaUUjehN?k~+bcBbb?h9$P#rCW5Kegv~c20BHhhP8I zRm1gPT}M0>au8DlmDXW)B*WJC)zrIl60iTNXJ1GWli&I03HhBDv+_GHAz%HLp1AAJ zU5>y0TsXfoG#&5$#{}2}?-Xa}7_a~8pF{AeZJsSY44e7G;@zlqd$%|rf9H!+JzP~> z;4vIOCT_PG1GUXV#VXXyd+r~#&57bN+`mkG0{8sh6Rpb|^*t!U{Y7H0MNt!z}Xq)x;cCFdmyqwFSi9;$Voy!t{UZx41DF$>LdC=kiD zr!0CN84bd!{_{$l$5~TNS@LQ+58siYbZr*uF{z|$$j_>J;50L-#7!c-!H+k5;Ng7l z!CyMASJBP)#tgN?zfqM8Udg5`1n+nE#Ud&nk*2XJadC=_J-=X=_j+i@@HFaf!t2-a zA}WVvipRPYLn@p5QWWEn(LYU*j^i}4e(vxz!GoNQvv$3Lqa+iMYMTl-kOx^&t-s@hka0mO+==V>9<(8Pw2xH(G>~y{iFLJ`$``zo6%Y%Jm z*e$ML%4+mpS5wAK(>gT0Tn1%Qc+##8@ti)QsefVV35PzyvyH);7cNBpQIEDv@@~Br z@(!rhytM!vbLoXQduCvTOknZXpS_H@Sn2G=7k0m3#>nUyB!bB3>(BPgam<2lL3W2T z(p&)Feda?fM&Us`4+!tTE*f8PM9TL(OR|^nzR}L@_`T)wRN%fqmzHxL#uUmvGNw}g%ObA&NIWa%j zcPrQS`o{dA!kH!cm{o6_jXGg@m^c5Y1%CQiBWRr%gk!45av@T_0bZ9@s$ageu@HJ~ z;p{@^f_aYqiZszWFR;JnjdnBhG;!!EE_(y^vZ#ifpEzgv4x6kyRd%@zm2Mj_PTKsg zR1I3xp@RJ7?Y60BRJb}r@Qp0z1j=WD^D;&&saa*}U;elSjo ze^fWPmaPmT3&64>;Q9jAr@i=8JQ3ZSoH3c1WJo1Ix#5&JM|D9t9J_H`2m2K5Y2Joo zstsB_3I5zA97}LwgzTf;@$(brU5FHTdnr6>!#6HF&hKqka~??6qXSAh${AMNW7)KDCN zyX5d#R8UicVkwidTs+g5U5cD5yd3qNw3eY~)|9O(n*e!hPJB@~KW>%B;!d7p?iw9$ zzOv4)wZ_{mE-uw1Qq?;yJ*~}%I(Vp!4jaUg#>DyjK6y$8e$}I5p;9_KypcyPEln$B z7fe8wh~&8V*$GmX2t|jbG%1@_bFJmSv0Hf>nMmbr7B_#T^pRNShrw7pLHP-l&c6g{ zd`JIdG)seDIAX@x&+)m8KDwSn7Cn4ZKVu-C4qq#SFZ)NugT&3KpQWC!Zy+Cd)Zxu_ zxmiPfZngB+1lt`mhnAH{H4LdO$~mEa^7;BoWI`Lo%Pr8Qsz>Y^gt!I16*4WVe%{gc zQbdc@h#NAw?V$5h#Ir3XNh1+6eS^qb?uT5 zCg|M`&;Vb#SY+TceFHPk!aQXYe~Ubq$k@}tQzjwgM0zO_+hU#-i|R{nbq^l$N=PH; zLbGBMntPYF2UY~wSY;$uc&iyTxw5zkF#%uBg>$z_8DU5+$rGc|b*kw+B$Im2m;wCW z@~oAc2|I2-epM2FOCVWdk3ikn&v||GPm)x<>g><$h>+n3t4U7z_9-G! z9N|UYNwP8H1b^S~p(=m0*WExjVO^tqkdBAkLgxD||QZ;-C@321%>c;%Nj z@elFU{W$k3&XIke{70zOlPOCSizMh)@Ogl4piK^KTDe!)f#BcWA3!_P_wsq8MfEqH zWi0iTAWM!Fhltgv4NFu$VxD{g_KD1NJPj*$ZLS^H_$ou`ZmZUsGOHan)CurmnNXt9 zK3visQR@i*g!QdU10`=Yj}_rbF7T6Ofr^|<=WIc_G&lV75#D*{7t|MmeIsB$4A@aG z9rJD3S}r|SEN#nkZ^P(soBbUAk~dDBXPJ8|<}9j)KBb`y?UXt5ue|n1*=(69rQ=fZ zg~*Hwd^W}(i#46d?N~;Y=iQC#ogU2H$nB3hmro%>&c))V@}8P)5zBJ_8SE&|Yg~tR z9-sXfc>ONi@fh-sJ=#&~j75GMwJBJ9B6o@_+Ro3N4@&Lai@R3iu4(Sod8_-|LG7Hz zRcL1gTDd=N#q1UHcx1_)+aUvQtGT!c7sKPT&DPUqCSGMSB&8dACYs;9%u@t@4j_Jd`@<+t4XnRJk45e(H!~fvaj-u8u61aH zUp+J;pRvmQTL}U&erQCt`YIrJ9}wsO0jw@#4GTHpFTv{W7@oK6{7li0U!r#Fx z=RV}p*Ek9l8coS0e+pE!?%AKYz6x60{)ScV ztqnE_4#?Z^=R@`abImgIvNYEN?qon0J^MMJ%L7#?#LuL)f5W4kB-`v8at;D5o`l2}3x0^r8-z;BQJzm~h;izq-bJfU?))-}KdQrf z;_bcMP5xLWqJNj_ED4z@LA$zqNRuMUq*As3ihZkR}E%n+o&Cb$F zgSE89fLzRF+A`@(8P1f^nFXVS!z#;YX>Bvh^@dTSMkVp)kJVh4iqkq&nT~t)pQStA z>DI|+m2x3D)QMTwWtaI*855dR=FZ>{^Ow-wzJLzkg-p^O_;WB`ynrfIYFWZ8zEjRZ z;6>gd9G17KGIun`IDJdyX0)xK-L1F7|HUC!o#JbQ{5l^lg8zVH={~F3y4Py3+u*+S z6X1mOwW)J2M82#(jojF`JYm;EIzbjYSqwuSH(6U$S1Wp=rtvj5dHGD}r@+Y#DNl0# zjW$_x(HhQN^za>yv^B4})DdpUMeHF=XnW0V=)bqE9!}!Yi`MLR>Dyu~X-{^x zDN~4&Rg+zKO4qPCqNwi(a^(|HU5L)#;o$tHH45=HSJA_#gLIDD-kQr*nbu5oD8$_^ zNPm2HP-cm1Tlr+#lN@XuE7!1Fo7;A~x$V&wzP)$l!-s+_tpWV}3UrjIrx{~qG1Ay{ zp+@Y}^~nv2;(f(cHnHum#U_!gn0wu@L0#RRSaHt_WqS-qZF~ja&GA#tY+D!K_=mE1 zhpvOO@NIu^`EfXTUq%Qw;`X$zNx8^ncw?LX-^XWJGjrC?eMwV%RB}? zRKSOkL9q*UxpB95i+gas%uM&Q^e@x}UzhDiKR*5xdBYVP%}G*C7)^%TsVLr7uWmMhk0^gDvT5JQv~Kz3rxAHM zYU+ks)S5Pm8vlFiJrO}jhZGZ!9o4UbmDnY(j3|VJUj7Oj+tC_YcRaj_N6t2jA}W&= zELfnL__;cNet}acuFS2rIX}54a+}HG{(2prEqNy#FN=3%6=%D!Yo3XgOsb0a!kZwO zW1M1!idhe2tEqnZyZL0|m_47N@>=OAs}y)%8Jc;tKWtV6teDV9az1 z%V<7vHD)+7FmF79c_SUONmg-sUixgav~p&nmYJ{34S86PJc+5;J;t5|ywK!+zoP|u z`D`hx0pel3;lx9t+IuJbxBWTFHl?5P>i8r(%;BJ-(uk)~dvd0te6dwl!uyBL(`+AT zNmG^RxP&qL6k|s8cOG*p$&sId4oQ}z`sy?v-49+IjnB=x=}z3ELG{xDO21>{fpjHlN<{TMSp;hwgY3%$oJu+J%bCmf?Q4wZ?68)Sh( zXg=^1(3m~WCu%$~PZW8!!$y1&e^sWG4cFJbgVEaa2)nhYbqOo-2x3%1nvJ!v71VjE z^$a|mPeo!qr`9b{PCH!*sUQx!4aT-Jm^02G_uz#{b+sbI5DOYBq+nf6=~{1-nP-bU z?1MZY474I5mtUejgWZx(?%o&VGHY)uYvRl0<_nQU)%5JQPrf8QX@s4Dp2fR# zh4*TfvdpqpmhlYWVnStP5aXuBI8Zq@JHCgTu`Z|-cLupJ{@^g+?-qOr_rxz)^X8h0 z^$k2py=L<=n#XBOXr0p?9^@P=#qL7GPI>n$mSx^@(Ph4}9u=mC@b)XRHFoUWnm6QM z`A5;aU#U~fPcN6Ar!}mD({U7sJ_vExqhK|n_R+#m-u+5;cLeXCdyrdT)^z8L`3i9c zR#U8{jj%8^FxU)aB#myk%{c{Bx(-x&8)*BsyxVT9Z<8U3A9=VE*|sJ+C(Rq1Lej%T z=iFp@w*Y+_G3$}l6JQ@`9P2WRe9EZgTk|eNKJturkA-yIv79`fT#Y8D39Ubm)<=T} zF0LA#H@e@-atYP+j-Nv*cHBj5dd=$sUm0Q55|)t)TD3`K}c#*|Zv# zgVl^|WUGhGr|;;mjtAn=^Nv+<&hfDBY!A}*o=IatiA^pj$Gt& zF8Q&0WVirhDXQ2fFW;mhcu_+h{7urS{c_IZ+3BBhg*eFc>lKkl)2Y(zn*U z*d9Pe>XGT1&nDm_rcZ=_A#YMQ;oXn?6*keHAV-;~BsiaM2kqfwce51Vva`zo8{$_=pp0}K(xpm%{En%t3Ir9$^e12A-?R+vO;&OTdLq^SY%r? zOAXp8CY#^)+WhjSHhEC9p=7aJ=UC(-+`NTrymOJ8OHM2?pyFI_Ye_Dh(;b#YV>67p zCbA>8eWf=0Y)Q>l$aH)moQM($>o10sl~V7Vp6~hgAYu?yy2yN?ycopX#C0cI3p` zjN>BEv*KLX#-FZ%WJ|nKv?|-dEJe$2ZBJR{L!O!C%Zrwq#ALA`qMNzk5U#sn+YFf8 zmAR+CQfK*WhIVRm&#(TximCvlw4H5a88h0fDaoQ6vthEBCfPSqB};KCAmsfq4Q{;0 zQd)F~d~@XD?%-&gKNUp&{gRC~c`G+<&og^|#WK&fraVw+TfUrSeAyb`xMvj|Z$i8{ zy>B_PQJe;rsSoXlBia2x@^WO~FntnamP@V8Sl37|X$=nGljw!;OSWAauWtONd2HBu z9OF0f)s(~5WKEvdsht~x`X(`eiJ7Zia?BB$JXmj`t4Q-;$rR8LwM#rmZ4$pxn>lEU z+S4750c}_zTjXE44$C%6UV%&*%6O#{y0y9HnHS;hMzbU3HJ~|__?lp#z0?HgK?|V= zEv?3O$GghnfAVJ{?0GN0Lf$fgnpwH3LMW2tpsBb_~ytCaAp1nji_ z&k#QcZxKBayaW9uTu}el9G(T6^H9`1Cu{S_Jo;;DkdB?)luB2UQ;)e9mLov$t?hXg zW<|0+8(?`(LEaS7Dc)?btlC#(O&NiV_(Vh0!**1qFLIk4d``q7~|7eT|zY)}A(ahK8L${Q$!x|$^JnZhWHal<; zY2_e?9LWs_2l`F@-P&LMB>&3VHPJbVOP|urnW*MNr7gW#FM7bC0y3D$1}!k^k#Sg1cxrHL#+nUB(8pcWVp5O+QB~5 ze-y0^x5Jw$p-uM{q)Y02qZNdJw`ro^zkEK7~x?Z||9P3mW_~>^Xv~n^N zunND?gmX03G_F3|U|>duWAb)YM{vcwozz9j$=8F_0)!dJyv9Oj*j^9h6l=q&*v)mIukM)!~*8Q0_rjONOzH>&kfA< z*WlqExd&H0bQf1q4_Wl@t)Vgw{_(LT(I@FCmi~FGbWXajKKK8iZ*_N@NwQD&7Nak_8QyI4zc&y$LtjQ6FbK)u#0SC*$}FTWqc>x zGFf?jO*!5xAYZ9Fl)(>L9+KPPUn{b16O*6e;E#mrO>Md+>sRV*>sLyAeXdEDfv!!Ycp_L=6lL$l%_RozK@TFA(xKvfbmRkkm-KVX;lG81KH zawC`Hy9>xh+A_%A*|G!FoY!@D%70R=2BxFD`0GhFqdV3^K_l zl%I-ar;AgXV$ynpnl#k?k!*D94=cnZF{S}JjmzyWX?UjiF&y(=ejoFa&y2Qkw_{#4CV&zFlz ztevc}q=_%BvGrn2qG*b%(wanY)0)K0q~){#MmaR0!6M7Bx2j9cScP4#^hT45PfPFD zb~d>!4Tu+SM1L5U77iA<7nPB}lR?@SCM%=fnFx*LA*{`MSQ%5?Bl7h9R`+E0(8gsh zZQ7aO>4@BOCK6llQbU}S$!@xcnH7>D>BJ{n2RpyT**n3Qv=(6O_rV_6pa<;H-B^$7 zzqcmm;CfUaq&jKXsc2N^$vezTZ?(wUIKkx5HI27?)4J3WZsn$se>~Y>xeNGA6MK7n(UCwSA?cX$#6tNt^UZFohHa7X_sPx)F6Pf-5Mzq<}63U5iDx zw6cqcE_kH{T&mV~QFn1y_f0_e1(mg~N+ex1p+!P*?eBZ$NqVE~{`t%2^IY;gXU?2C zb7tnunR(7ZdpI!bfX%a`MD$~}T%1aCCr?VW#D^P`p=CO~1x!~%?049@4T$V8P0o?y z-Ly}i{FTtP5KrihnXKlfizb#@>9#NmSp-;KtUPSQp#!+ zZCK%ETa=qe!CkW39cBEcTs4p`H6(*pShS6gdOi!N8hE!CE~aA7B6&-0OXr$yHYd7- z&x$VSxk`r@u@i3*Zq5}?w1p4i+mueMJ{=UEY`Qu3k=C|z2P?fzMUfP)D5B@A*zrlU z>fV6G{tzc{rjOF$TkqUn=-?*#2JLx&20nbj9ulw1YiWVJUoXmf&y9^YMx;Ek;|6iW zNbVeW!?u!1(AcT$3qa#mO*(7cf+xLID$pO&jXcYRGS89drhsgaIjDLh{84j!k$=@_?09HdtRHe)T*2!dfBFk%C zqqzE0P2?ldbExCSq^=Y3EC!gkn&xv-M4GOwye11zG+ER9P$+s}4jgafnCX70tY z2zi82{v$a4{-$E%nL_JEv$H%>^AxN%?RA(|f1*kHSdxDTP=4JXnLIq~&$kH@_7Be$ zmY@`-3i7J?z5jH8=qB95uTLFWS3jm;77ly|{J7 zcLDO*8TR+`4&QbaVoclRpnX$Q;7-Yod2AebM!fqn%DZHjf}i?;`W5vLCt`hOhL>{0 zXYwn@%M+muSQ{bl9q)G zu4%ZY;+l$U3a%-*CgYlns~%T9u1UBi;hKnRBCZLzCg7^WRflUluJO3W;TnhQFkFY> zs>M}{s|HsMu4-J>xTK30!_RJk>{hEhV{fyvy7=4VL8zO)J@9Y^@;&HG9s zC#c>1(?35;>!WA$5Nl%V8tT)wuJBTz|Ml>Tt3No*_fA+soWR^h=!=Lds1z zp>-+Rx$TVBZabsKA>k10hH1fo75ch_xy{`Bu*L!Waj>Fc)g?QI;ffR3^O37P2{^Rm z3jrl>E<2?;4&TW_lL8GJ84c(B{|q39WaNND!XYFZrqS5lhdT+lQ7;8C?88ssU(u!b zdl>$nLHOH;z<)A|zrJKj>*jgTXAu?Ry!%S|)S2WZDIp=wi#y%CQ)iNNJ0nxtNBafr zEt}Iwd*Ic+w{aHyDTwaG`S|PHAxpf_u8K(e`AK_9`ICnHh@YMjtmu28gq~ajXnoQM zUrLwvzN`H&A6Qn(`wo^A_z%L*>jaHHTBVBvkfR=-v_z8ucw*t##z1a`1 z(SP@k&i~@X5`!-=I{(y(1%?j-Wd@ZU)){Y)f^s{w7u0bX_ft}rh}ze@ps{EmkM8n@W%}k^!}`8RNFJ3QRC}> zaoJ9My^HUj=V@Q&wu@NTN@jZ49;}OFG$T5&el2aS-GAzgVOhO=Q&19xR&#?Xq!-P# z=7xo;Q)k9BvoG-ReLwuB9>_0Yg&b!bD%XZMrVfK+@P)<58tZe8WQ0nK|HWCvYC7y+!%*hGrW;d zbiNE)#k~>h%&EN|Nz|}%{RKS;tRAiR-oxZ+hUMp@<#F1$G5U5|{Wue_g(UGb&RX$Hob_UR zK)R?k0v1uL6fC&MKF(oDXHQOBJu&wd|7ye%CrqG3uwiw_d4e0`4#g#=wddx>`EQCy zTS=RKtCjE{4RgRlv1vH%=YhnF5=UvLVWxj2cHrSYiup?H;h=qa_n3=(c_%#PYkbSi zGkt*Rcssm0Dfz_P;iXB_a9)x`zB1?^7y1#`v1p-hhZo>qtvAM#N_k}<*Q_E+T*5Vo z$gs*6xDuY(KMbrg^S+17$NivsWqkYU)%Tb$;NH4YxaR%9>eU{z=(B~q;+66daH0+S zE^J-g%JYF&!^?D~PQ)hpkv9t6y0d~c)BkpOCGxxo3M!M1falqws#XghDWXk}GjBrP z)45ti_$!Os=3?LCtK_&H$pI?OOi+9uQroNE4&RkTatrPW0-i2Qn&e-ga<-aKhx86R zE7mH{-Tt@0Q?pNV^|+8m-6a3gb4x@UuipOQ8O=s`e6Q_H;wB2U(vzYrd}1rPvqM&+ zWnVpl<(|v(kK3V=Z<2kdZ6SlGH*)QQ(G=2&e-4~bsl!qn|FOj*v@cNWKDMkz?2R!W zo{=_kW_QrHlCM47iup>-g!Xjxzdn8)>!IHT?m#=d7e}@>h5N9Jy97WUX(cBV0Cj2a)h}2f(;c6@TQMxa%K&@ePfCg|=7{k}T z9k6&(L*AtHR&UeUKx#;k#`&H1o3v4?ihawwIne9#_8? zu{eCCQ;;IV9`|J2&WWcBWiJ1Qh;(<{lWDC68rLiqd!dXS&~3y8-d9tS?BCs?j!W(G zE{T6q@a--&Bi0J27In2*eu~_bD<{?tYv&8U3f!25sGw0=DW+&*!|`-mY3K32TtT}q z(k^xgaW7>i)T-LEM6jGr25p9mU`k^K#^gCkkB_yeVWhF_o-+Q`x`z zDdsX3*qJO&OYbhgt6XCNIX((m(LByI4wk&*fE)|RvCeV5kpF6?Stx0jw3mmhcJKKO zuHi_X&Qf#cZ~envS0eS-NIe{>hdYP&re<7}W6RqT7kiux4nYPN1`bNrQ}kr>P6tq~D$ z0(NlQX4~B6iX2aMV~LCT-I2{6VOi9jt0PTxl4T0%CPsG+vWH) zqBH32e~sw4Pw_3=F30|J-Rp-Rr>D!ZueYH-Ry17aR$J8Y&#`{40Ej9d(SIV{)tHubV%`w`QQc{Mo>y#_V+hzILYFky}dMK6w}x zfj1G|ljwNU-vIi#+&}p9J-@-X3==DU8^~REqb9-U@$7QsVs<{IRi6P|1~b+aH$YE9 zE?f@N22}E214`;TVBz#!&gZ_Z_=YG=z8|td^;PhrvIm2B9ji;Kf0CQXA(6EN*j`|N zO7|r>^{&J@dN=J0DQrw-?{=0Xe7d_t^l6>(*q=-@BOd!MOzZA|WSSm8ObJGZAfHBl zgrD$|EPfGGWR2F+FlWT~eMzzx>GiAyi0J7(&53O1tGjC>W+4e^1qsf?-c~TFQHSr^ zwBGR*Bt55bR#wlxhMkLKeBlr>PJ1!17mDRz^1Op+I!oDpUn*}6)&oWC3rYG!47Cew zxd}c*dJ)=l<8h5(#1DzI^TZ1q32&&xzIN<+#j%oEdHH63U!3QWn>H@uCO|8d#81;@ zT?MU;1DC1|x}mOuyA{!+C2v0OgUu+=z>8gxrCewxmu?pd<0`&E6t)eDwPt5?UL$`kKmCeOkIGbW)(?K62ZJw)eGhvqsDtwXrxL%Rm>Ywg zEne(tkjKG}D)`AJ9IBc!g6&$vK5tsDpNAD={_5{pn)8RaF&a0&U5ylc!%HOsn?ZzH z9`^A22s1yalfi-8V>EO4?J7WZEK0>*cH;3$K(U?TfZ|$-hV|wR`;$-ZKgZptKeln$ z($Gwi%KJEc2ULXCW3}e-hzhP@2t z294#b!2WZaM}Ki_qi!ko$0_itB7z52mX`9O|CHC`$OWmm_XDCj<>R(ajZsu%6vS$o zrUX}$*rBhGOh=l8W-boCLaLd`*?4w{DZ;YoS5ZYC6RDi;Kv!@2|a75^LucM29ASR9vpM)g^1-SC|{S z(DUIL-F)4?1t_7eA)!`m;GYtqvwBGvnl=%-Nj`SIW`aky<~PDUGjH%ww3T1@>1){e z?ZvKyeG5I5mT%yT)U{gdZCKejtY(I*7~IGMH-^<)8Zmpf>EO+hN3@ocfva6Y-LNN% zkw$GN>-$l}Vi{KddeghDKcv6jM0s4@q{6;m&5q8Dt%ym!8!TS&aZoBPZPWVsNx%v z;Jsmc^TOs7S3D@EdW~-|VXt58A7Z+3b1}cmM^Bw)pT0VNdtBbPzJ$CE-}GDK@&w$i z?<#+dpA^6Sp8=t6Mu4|WWo?q`lp@xMds*m*6dhC;j>`jtjZyXWfXT;_4$XW8M z8kTHcXiv2-#aI3U{0bFdFY;2a^3A)1IxmrL#7fr{ZYS1!2tordUfTI z*NteVnt9OCfAlL~!Nk^kc0s@4p;w*oR61h!nfM-q?%O)WR6T6iA^zPa^cpE6Y#i;& z4N9rTP?AusEeY!3Dg0eL!3urnyBw|2!#0m~S)xvo$LCDKE|BDqnVZVJ$!*~5oSSoq ze}IaAlQ5OLPc#Tm;ol#)6*%Vdf8fsZR|t=Yx%_ngd;U)TIN!l#ir0w$$JKG0gkNKz z3kiSb-xj_WcEEyG=b$r|89z`E!gY$ zBfc^GJmSM%N?+BgIS9)r|`xs9FaiMinK zfZbHJWX|pGCI1z6uR~y|=}f7gDfmMG-~NL;4+4vI+gy}wMpgNc<(eWJqPh2#E34o) zNT;o`%_(-<2INk#*bfBSiQdDGZvxYR`!nw~?x_Rd#uQXBt~urHLzHbWy)^}k17_&e z+r4AwjPJ#>-!auwhSXM8HagQ2eSsR7r((P>FRHW z9DC3fb}qoaK@0g{+PmR}Ilp)RzL#3UAq}9Go}^t;dM};~tgTH2?WdofU5oOUZKy?A zu%gB&n~J?7M6W_=jNYl9y#@OnHujv(ZQ#Yrcv8Zi(3zg>!IL$ot3aK?zrBvNF2Ysk zSc6jSFSzS8$?8{C56t zRU8)h(5^uePOLX`F|51M8jYL*W{osm>M@ zq@TVDc^!qG@|O3i%W%QUa+|_(Q)s6%aU(t2V@#3lfDu@^=uGdN1;MZJb)xsmIqB~7 zLFE|S2keTbZeuuzGI~OsZ)4}!6Nx>cv+|_*YkXS)StXezc_sP%Ji={QJ7=AH-GDp? zmz;PpkURVFWFRm17F2(IFRP!sqV;np>Ss@Z73F%SYU!M1?qvh==;J-r3+6~@g)v$W zvnL{+P^pOegX~FP|MJ6WH)_HTd7M%;=Q1@xcqx6KJk}Ll^R?Y&b(gT7VP=%hzMer_ z5C*j&@02-H2K8Iif(LRqA5WB;r8CiJ!4suE=}b>174&?C?{K_h=8SQV9Z>oym!zIi zaOSI#t`Y7`MqBzNv{e>7_jL-&T<%SFrwqW=$H_&PV6C`>rey_(zPeNnL|5jTczlJE zj^6D@=oKUd-1f{(_LoI^f}YZp23bLvuB#C$C#h3+)r`kWM^!i;!^%O ze(1TM$D92Q&Ttj10MlVpe@5d#G~r#2`$FSIE}SMH5+i)>!2XTzRQf|*GbB{Sf>`y$pOGZ`(RJy){ZtCF9DdOQ=a3fSo8(=)Z-*kGKTB z4e(~q1ow;8JF+V+hjIU6_50B~vx^H?YOOzP#$4ks*#fjp^z%#>2ycv%s~G0EL6~d$ z)ni*n8>mo)D^-~cRx=2eYV)0FZSuzX0p55wjw&2a<9Hdz|KaEekSzDFPpZc%~&6za&9@M76Lvno&N@VctuFk<7zNqpDMmXlOpqKKjH_nK@%|R*e(UfKH zs;+ZPMJY-C;O)k(NCQEe@KwDSzDIl5K{fEbITxik>_{3^it=pQA4$30%yQ!lV?5v& zs{tu|kCe<(sRpGoV28+!y=DIllkzX~&auoC^ciz&uZ)0S;fjdXDq{0;`4f= zyDN2taxWUKcuJgn+PFV@S7!V}^v=vEqZ%@^lnRYz22ZtRX1O5hOxUbe;Azm%oA{5D7=0G-a1HU$fgQH4jLk0u;&AR{d?elxA5Z?@N8IdLrHr3$YXOrR zx3!q{2P9JylG$9VcwO25xDB5FnO(!^TE}|F8pspnTCcgOb&YFxb;jlzOAhod)ADhk zL>;bCTf-lCS2!q5uVZjqu*%e* zTnhc{WuU1yxfJ@b%Rp0KG8pzBA(hP3%Q{*dw z|5E7dF9V%EB=qDVp|6PcCu90iB89h0h9RL1=uw78TU7#NVG`QaTpaNCWqcUN6F7d4 z<1HM19H)ER9JRODI6-nkauFLpXtw)0+E~{H1HP*ZJ$cZ*$kGNLap6TOlG3A&9q2#I z=q39<={(P#y-A2B^5`I9)Cu8308!O5=mIb6ym7;Mi8)PZlZfKKSb{ z1K%f&1L4h=f$x*Yf$%Apfv3@}j~7aBZ0-CvllDvcW0}UbSpT<(^(__A`l^WQtFQ8C zeZ`(peJRg&SN|ou0=1>&STSs`gZO%s<<_6CPSjG2t{BuGhJfm;BZ4As(n0*+&7cR5 z&TZLF)&`e>YU-7jX{lGXh9CEiaE@SojaA-3y*V47mZ5JU`l>F;*~;iMcoJA|wv2kS zD7FU8-5;x+^aY?GC%4o1O7c&-63P5RY^osnr}jX7B#pH>=od)7m7Z-GxT>`GKHX%Q z#?IR0VBJIsn>Adlw)4cI996NCw!0|qg&vBf?5r_7BEsi-j z?g*&R+E?OkQ$WNWwecf3{x3j!AGKf4?7Q4%wBEP2Sy8ij%k$YdD21&O7i#n_byo3X_RGo!zOK!QlG$DpO<;`6)0DGFBL_Jxp#0G~ z=^fSZ1I}N92GUFE4QZFwvs1Gr)U&}uTG-TLx{p#2zu)m7dVpL;LH}A>AX_j8H+Xns z5z^A#lDi~}QkGb5#EF}tlqkGVawJG9D}#exNSrB)!Vzz%uZ+E`$Gg&A9Q*izZ>c=j zM&Hs%sr0g+N2F(YV-2H=${`hDSK2fm*6^?b1*eP0H|>w=-CSqeChTU3=fGboCt^L~ zuH0m{;ERKhw<*4Z6DS^yJ}w2N9SYacez*<|!1brg;!3>?u9kkdUfg6r%(dA3g!;?Q z?}OYeE_<)6mRvWT``4KOljoI77H~0nUU93^*M5sWw}07oT$UdFW$3BtN6)$eW&8DI zaV1A_k-YVB{E>c`R&L^rY1s?VyC|BxB0W=~$t!m{rpdqT;z#P3maMd>ea?N5THVz& ztLWdNo_9VUeLl7KImyhk&S#^~N%CSTNM7ol4beAidQ*_3Zg)P_n_^#Y3X;uVJAWO0 zvxB98S59i9XzQ@KJW09z%DEX3T2NPvSq0^$w5yzCEo)ar*<4tw-c^0nf%ow8(nrs{ z)`z0!iN}_CxGdh8IfoS;RG6 zYkZWloa~(TTcO{?=7iq{KIg1fD@XeND|?^kzWeSw?q}{<9JNzwx4*b!F>A-vzNy{D z=H#RkrQ(}L8mFkuQ;$Y^ppqwPYTs>8ID7lU2jT0}9XcJ4IlFO$DIUH7-q+&0*lha7 zmHvIuS(=r4QI~Ign7q8=OW8yLkq_eG={*r%*%L47eoVb62!HH+ckTzB?=4D1iX)xx z-cS-OODPHd(OAwTnY3LRA99lQOxrDk93yIQuN?PMH;l%Xd96)RekgNm(lr_FcuVz2 z@=029n*;ArV~Q@iyLxK2f_-;2NiN;TQtd#AcWqG8Q0th=D>y%oRBj*(ihfud>$kVz zUmN=EJ}ttD@rha|*(-jHJ#>1DyX&_r>iY4rthG8ytui+CmIbv-GFcUUOLDE$1I@wo zas4Hm()53-NOs@T6=*pm%>(O^c(J@UZ)HsDt7VeZCB1pa-VV&=GEc$NzPxW>dB-68 zWT>pw6~(TMwS75LsqN8s#b?(HQEKbiH3RZccmdb}PbVSglHT;3VJy5?lHS?|{ZSRx ztE`=GVm1cta*zgT#_aGYw8Kl`pT7)zYA?Jpb5pR_FzCUvH#2O?G3@=JA084qzMa}C zwLxmbn>TOn)f>%naxWe#70tJld>1fGgYCIy%sOa1coRDxt&nuO=NrhzrSvp>gJR`U z{_U=w6>SZQMNDZKWbsl`&M+Q|-cg^WJR>WZa`&{cF?z=ti_bRl%G2Mv(_sDL4C7!u zEW}(RO|9rb2~|qHPzkusi(VR+Em#vVc+wd>K`W4nQAnBraGgH_5@mQYB|Dvs)qH(w z@14H)F1hzE4Ro5bAIO=bpG@W(zpiJ)o6HS?m0jCO+`ziJlCJk ze~I8mVaE_}=s92X=H*gZ2c)`YK&tC5o9f;Hsg?~$b@ydctsao-z5%IzIYg?Irk?W~ z2Bdi?nx-RgHQG$}SCetxUA^>Scjy56_0lYNs4Vda>(6yRqMy%3Fa3e>;ZL>k=)tL1 zPo$_1=+)7?WBU*ny4i*p4L<^^w_m@-mil!zurB_ZH?G1_hWYIh91r5yf#bE))Dj2F zZ1?HD7Q6m@=c`I<#f~k&4xVvdh{BQ-tv`R3!KPt%7ma14gVI<>ZHdN1nqM6(oA9l$ zb(CycvvEJ|Lb*cDYu@jA3v=ZC@F$R7k=U^G_N0dAZr3;LfiIDF&uAvUiw zBED??Y{NeHi`bj{A}kDp4}&L*=}Wt@@{omgMiLLXM;oPsX4zTl;?A2eR_t{Qwv5nB zyB=$3-rdxrV-^VvbY}oY>N^b>!xT+voAXJhkJ;sD-;Od*G7PZ36nBmvG7rV7LzX_n zlazx2Ie1YHgU7;hp%Kjzk3AKv)$wOjH;`?Y)(7}begkh@z*fbS9Q(r!?*}I_xIT+- zf4C9-;4}=b&$`whE~_709D}2EHsf;g@$YHG?zJS)De|Gz4Rf7*Ewp^>BTHxcAN6gM zSXm|&X%NMe#{J^3xWNgIDHf0`5noy1+9WnB>np9$FV|2NZ&YSoG&*sH!LVXK*l-j! zR+hoAQa{+UQCKRE!IK~5dOo9sETP4n5%l4EF*5a8LU|UiS1JECjTp`si^JbkrS+CP zKRQpNZz=89V9$C6&y~W)6|;L4>v^s^h3D=za!Sf3C z0@gPHOLjgRd6+iG?x{YXjFx9p)yuu*NoSUfnBJ$P64-1cpS1|dXgynytlSf}skm2a zG{#58QdHb|E92#0I}z1u%<8J7=#zmPtNJ9qc#sSXhMm_Bwq%eD42GTG57q`)j7^|| zWME2f%bS8W9J4tVcRCpDgDsBmTfih|v1^KjEJAgxZ^RJwoYgWL<{yGZ&T(SQy8abfVP-jbOw8ZIyK~E&tNr4`OjeEFRekw-V27Q z(f6!wqW7drOf9B#O7Ag)+1{-p*Rc`(VsYo+nT0oDkUrMmT0b~N+htP3TA>&ooZ`jH zr0BEQ4^FXt$P`+%H`2@Qyz|apn@BR&6N!Umy|r1URoe3d3`hU=Otv$nR}sSmMYTgZ zMsep720M6sON*{sk!DuLIA4~nwR1+&lN8OZ47EUOvxJKtiVK&K7~edIFG`XQlT9TGYje52BNEIyn$ zBcJVIS}jpVJ5M|)!*-UkKWC<3-bkqyxjhy{g`s=&llqXriD6GX7y6%H-Q)x}pmRY# zqxEt_NzjHFbDME0Y+59PN?Y@wPL#IhiC1(fT9sMK@*BJ+w}A2NQfT*OpowRfLQlU8 zH1X_G=<%0;lEYe*wa~P{MrnS0l;opuP@kf#3DG!5 z>p^6zq;c{rt)*bhB-;qt=NHK3j1Dop7FO#zSOHEv`ns!r^UYBnds&_K7`?E|khNS4 zdjUr?=U1JtqJ9*+H`RvHpL$XA3WZ)!7+Wtt#3&rRUcLZp6hlEjdl~4y+USq_@gbp; zqa525r9VG=6WXiELlzD(yeXcv!9Lm#GQNu8gUqU5220^XC>vS-NYa$@97K7@a=n1% z*WUs{7W!B@2#V^&$)NhLq$sk7RR_rWL2$|7IULRPFk3IMh6^5DIA9G+k@C9U64bFV zi1t|2LFQ*;&rHT5ItiW|qJ97UV$$IlfG)KjvrQ}F? zke%i*tw+I5(?5-(Q^xF~zNoFLKg93L$Xd0h7cbe9F2zfh*8ZvbTU!ZhU#jhxV|g&A zSZ$%cm39r09r+1o4Y;@(dxoBHo8_s@Ub4ITam0_Bn!TEhOFVQO;+i5+t0B*^)tvL2 zVmc$&`8C!SNTP>=>+T2l4TI~`Rr=%mcR#oe2G^&d^oQdf>C5*!21m1sOX(B)!G#%I zO#6j|^(%*_A6yq!TY3r?VCO6KVc3ZePh!PqC0>ym8tFHzh~1a;J}2!!d71-@ka8!% zN~GM)vz&-hH!rI7c+t0$Mcdl>5!Q1MyJJvaZN==PiYE%FZOvmc%Qq}w^A6HJ7xcFL z1*jwH#d<2m@B*zby7Ecu`ZQVsAR1%Pf4mHIUn}en{qm5|snKzrZ`i}6 zYdxFO?&&u+?!juJ(#ytVW)Is@Sk`)j^G2n_%my9f;vP1`@kVzetz@|lmhbX@_LPC} zw+;y(n`P{-27j~nFbVi4-4`qOe8bDVZR6!$xp_GXhkn19?v+}8IXW+-S~j!X2G_Ea z?UkU`@2yd^n3tn1aDQ)m*dG_0J9B4KHum*L{6-!tIDPfiA1}$s4=476JImnudf@(Ws(x@?fJ=+c z?)ZjXtmI;NS9Fc$edk}I?WdfrxzZ@Hi*ZSWK0|jj6CoaH!n-tzE&E@+_8_kFQ(%wn z4+$q2rus{5@=*(>(#_#(<{sWMDHe;i8j6HJ*QWf5X2tTy*Ahe-x z=fUTIOvVn`XQ1;v<9ehl%}7~ceN<> zPMZ4vod4G=1U1Uk5f~aeJOKL4e}VpP0QBkq0^KnH`paHuvReFf{=1etp+|mKQRn#S z{DsSuMfG<7vi!Rj!_Z}s20;J#U!cVS&=-55iMI)FD>ORZZowDDKb>FqHa&gu?V4}4#Z)N9o>|Ddn&$ILU?EHBv z*BToiX}pZ>e`>}Wa|>d3yo_hG-c0y9k)r4P$is9lVCPbHzL}j@9EO)0x##?&?B5=C zKFrP^uyZ>*cd_%R<|C->9eUdN)^py}Oc-xq=R4W?A$ER+om-j@L;LGF|G(^CH#;X` zUFcG2?>Vo3vrj_SpVwmjL`;|4$r{{>nz0J`VJ|4fNA0Q$!vq3;X* zPE@`D={e62fR9AsvHAr*7QIR57ufj%&IMobMj6LK9NTfch~x9GhT>n>SN*y7?aK-j12QN*Fy0^RRrfzsAFddynHp|Z&1nJIAij@ zKLseR`!B2ZUx>rE?p)|T+-cd}@+xWHJy^T@U>oJM+?Bky&XN2g`FQqVv@1gFW%?3N z+xU27L4{JXqYf$=N)=ihG?<_FDWyN^Xo(C*t|_1@O@An&+l6Q)jqvuL(Sqoce8C3$ z`x&FVH%CPcj%x2AACXWE6uL#U;NuRaWo4 z3gr}{@9G*SxU#U?$s0GaIzI|OLxQY^PY1|B%~8iVmvk-Qg(WY_Lnvv zyr6G8vpK_F)0EP*y%don42N5DtEm)kwQc}~dPBVZ;Dr>!j;2h++D23f%iFDYSN|1n zQY>+M$>(*7EAB-_5?+BXX7b2o^mF5WKs?R~CGZ704feQkh(&|r>m%@OJ(lCf{uX;; zOYt06ii7sl4vstZAjctkDfiS=eAoOX$L(mq@@n-fk$g+umRBMZEqAZmiD+}>Wv@hX zcfA9@x=Z2j_HjIExsYO64mhI)K11x8O)VFUhF2ov;BjF%;#SN&f8f=Y3wlc~APl__ z20)AfL>eICPTh^t8VwoXy%9Av4zico^l2d16Zg_oS-W=^>cL>htETq`ydPuu41Q)r zQOHa8$L*bf^2fbskn`DhsCj4=`vip-oQXr!4>OnN8DAEM+LD0jp3`IDF?8&#v958j zLA=R4D8nmfSkGn1Bg&@2|JB0N{J5J>^Ap#1-S*n3*-G7F-LMhyYR;us);ThfU-Dk^ zl3&E?9dkPK%r56^T=wIUa{c3xhj84ZPX8GU3*3*;*AKNQK1!($X4fmR>H62zO2kJafB58&DBh)mPcC;?;C|6SUgqPR z@xA_t6mRp~y0%U)M_y^j2ho_fl{_f6o$W4xyBE($K4`ByzN_868F7J<5L=0&^*!iX z4ct!{MZ<&G3H_k+!C8ffOh7Ste#zpjK7d#Vua>#g`^XmvH$nC< zLF%8)Vo`ys4jOsj9Ef27FpRHI*CV>N$y7xx6;a`nZ?D=JN!P33dH0W<5?>npqbhqH zACmZYI;&F?Y)23;+O%Qp17)s%RuT0UL=cKI9K4{_J6Ys{=c+TCmu@+LzE<#+vL|+S zel2h}Jf9<;<_U_<=`Nk%>!W3gJj1ma9`Cqeb%>ov(PzEj;Rf(=NHN>ccw{-FhBlt`%C*x_YKM%Y-T!Yy?WSJ;+p7jb|^eVKA z2Nn%MRioUKuNm^_$D6nsRRhJY)$ASVK1_WX+T|$Akcy0B_a+0$t%9}22b3sa`2=CJaI!}-A?zc+^Ae#abR|t$&=YUoB2RCRFuI> z9{Ev{kkX5k#jawcoQ0HDNTk(S3|Y4^Zi4sP8O>(d3W*qtZ>lI7RH(|dj`%9V7pEd& zus-7bRF|QOu)0Ium8RRD+j8}+iYi;zhLz84Fe9$tyRh=Si@hmzj>1_*jE>XIg{~w< zM}eyVxFItxp8YqiTii&VK1~mx=c&z@HNurqwjOed-YW3(&JE((z<4G*;yUBHcRIc3 zEjI|p2W(rGZrE5|vhKO6rR$bZANl~rM0(Ckae2PPInnYZMpuk^9up`^2gT{G9+ux< z19ug1oU>oO#eC%*g`WR)G4_TV(ZAdJ`uba4Ja;>u?I_{7L%2QwUF8b{$32c?7wVMi zdOqrvd{|Jup&zhma~^?r|7v*1(fd{qC@OwI>hxd=|zOB2~95nd!B47J=|)OGn*9eJ{6D7M;YUi)_2|T+WtsN+gqT&)VHyk%Pa9e zzs0m=$ri(1x8KE2{x;*wEqu|0riKi}T|c6`s5;wI=xpsNEa^-#zLKHp`1pYqL;)@E zyw~Yg=nrWj zzqYlXY9v|w*y_=ee}Bi)weZy|E?vc$mR2B6STud)PzGXh?stf5$=9WjC&^|%UrkZe zc9fWWX^@sok2sY@)df_^+G83~E^D=Uq$1Avv+fPyaUNe2ymq#yFH(2#I=+znQETDv z|FHNb9GTiugc;X`;Ae)XCwl$}ISe+2N^>;Lkl3eS~OGVrg5?9=ZW5Trx!gN_G_@ z#obuNuAhJRTJkh}_bMJ9`R-<1x_ecjJj`VtS?A~i--&Lbnf4=HKtC|ERp8#kmBw@O z?M{(HQqkv@BbI;;SV=a`=si=78pt8t>6w($U9wRfeP-G`+Wy?;@!sbU8TL8v(#@mn zUv9qBo1W3`Z9&`+(iN#*R~|}@@<|QN1Aghz7rVROh3270Z%lE(V=?=ZSeq3QyO>XT zu|(^;qf?bCt|IB7emNGUkNTT={pjznj}YHi9@6#dIdQIdmfKn6HVmT%Vk!3OIa-z* z=ZWb!J1>KCD81>z<@KhuTu9TaH@$XQoJqYjCb$woqxEc0%BAtx;}sg$wsrDws0}~4 z2BMa0B_90gvbYE9dDgR;82c`x=K;4@ALGHv%iyFvnzTc6>;Bp~@N6nQb42TedK2?nsC(>mMvKG4s*P$OEEoKAjA8Gy4i+9v|4m;jJuPoLUL4Lf$Gt|yj zIV7mb_xM7ML9TRZ@n5f|F$Yl^{c=cBiwzk6V*ttyqZpTt-OcQx>%(Q4~xe53BXU*2^ z$b12>&#Qk5Xc|;CBO;>yDpx`{6Eh4|eO;rbVY+=Me71gyU4oi@M1fk? z)X_gK+X>H^683a*d0+TV&}Yi=R%kHT4_x3Zo0_;LL?8G>Y|zyH4w$>spF+&bbmsH5 z%SW6{vyW*KYyTDyYt`td(9i6bYC#8+<56vWeNn6}k8~?z!Wmqt?;;)X@p7Ic|8-dI zHoU^~+yY!Pj_P0+aUl+#reEw3<4CGD zM*ZfHL{YD1K>x;NYanr6f$nqHa=$s!=}k?BG?54O8#G#6^&)Ht-O!w$t3qV9&m)m% zMZ_sm@5Mg9waM^%o8wQx%76-fdsXoMnu_~2=T%6^Aj_V5G4w88H|aS>m?e z$TUa96uqBAuY6xMVZG5-d+~gy*kKbJn$l{A*Y=mjdRPW_l&m^+L&oQkF;#Zghmm|Q z;z~4qct)Q>^QmH2O3f8D#jIU&=G%O><%r|UaUq^dsjn|dK9yR#Gjbc^`f~6ZdYi@B zhTHF>hW_t)$vc? zkZ~*{r70V89HhPqA6tpXsWmY!$L+lzaJ~G5HkyIHav}Q4`jWAy#=luqeK+G{hW&<; zl%_j+`M3<26)tj(4q$#WhWR%!%*z8e&mx&qxbwHbEv}nqF-lAwRfkW<>Q5=3MRxI;TPo>VkFyww-*r`0!D;mSzvX9Mo$+o!vH6i^r0DO| z+A}OU=_BmJnv$t4>j`H%>^Cu)A{iPiS0q#O(2rd^m*;4XOnN5uYuf<(z!c2iSRZ%Z zW_6Qy;lpfBe4T41M%Tj_Td#vIb)ECNUR%qxtRI-c&XPQ#c{=V`EEAfEAvMj5uX0_5 z)bAqoM2yT6omXK-t;~yQh54hJM@mNfO=~kXV?Q#(c97>P&LVx-P;nTee?{|X7LopA zq#lj2-{={Gi1c}ER*lu{yg&I_ZX2gGn%1Unwg;2z9X7e?TC&WlZO~LsNK?d@x_fi_dHftX`V}S z4AOha)FKAk^CIuMkk^a z<15CYRO2crPKOElsafHyHQhma*{ws+MKlo|MA!L4Cg^^YKj~1}u59FQJ$nbVKLheN zI1Rlz)M(de#6GNZjGm?FH>1!N4?9NoJD(i|J8^DDMc&%S5K{(U@pS$C!M^HJ2*6Tk6 zA1|-hd!u^&qnFX^AHNJ8lpom`R$x4LZg^xrt&_y;Lif6U0S?ZC^xO;n-Rr!!xBkYm z=mgB7u<zkhYMW`f$3IYx&?B0i*q4r!o}n;tNB)z z^8W&hu3t0@`*^ldBv*k&b2V)-b+xXfC?U3xMI_tHe8|Xr*dM92{JD9aD~08BBl=-_ zLg%B7xwGc7_j6q{%edNWXU%Z!HIfA=Uw%G7d%MeAYUZ<=qO=}$%wm?)SuXmAK9v1) zME@0$d?vw5q|4;5bIj;{sz^be--5QBwT*T>T#I)!rW+~{c~0Jp7Cai|eG26r#oFB{ z=cs7AgN2&m`6Mvj!(BDAYvF4J9&wu%l!!YfxajNcI>$=P&eJ}w^wc!wqP(|za$Fml zh`RgNE?vv)Q>%)qO;tVFV^}%21SI2VS7Z9F^g744%pSG7UtP!SQ6KcPM^T$0n^aHF z2yV?{#SS&{HpMO#vqza|zOsPl%(za4es~7Q+=V>T71v-qC;gH7fnm4sY@SQ)pZe37 z-KrYTDejpz2hvqct?~*v5!S0BX1y9q9)OFzgf_ z(XUZE^U8NNvtC0*ea4mG&d~^0uEcKpEFd9G8iS+rxqvY7nBTNz_m-T^$1+~pyfEX* zrUs1T-};ws`RA6q@T{Zv*_Zwn^nJvmt5M$mHWZrM_qEG-^lwV+=HZ5Uw?iL6nAIE~L8b3#PFpvRi6A#aqQyoK|%Ef=O)xLV=qmJ2g13H8|?=WG>LS7W-P zqF<#k{ptvGKZk{)0|B>%)(R*tD(#?*cy%wv?bE^{$?_7Vyt2z+FNk3W2My2`(<~I{ zJO$Ru;iq<2C)8nW6WZy{CNm`U%WA?;-*l+JQ!14S-;0%$D>+4VHsBcEt8pfuQaF*& zkcoA+FLBW78Ktrt(#jMXcR8lWIW&veD8PzAv+Q{RZhRNBr}bZ>A{{*W3uUfH>s)8h z-V4z7X}ycq2uL5NH80Y=t3q6{(9X4P3~@HgA$PD?atCdy?LieHCDsImq|vSOf}C!C zP|&RpE?cxdc*i0x^iMCmn$P>FWB&ZZt@oDbPUYLZK|!brisFVK$88MqeC+?#6E?S6 zT9QMY+a2T!++E(RvS4z7;Io$8-cih_vgcw^SunLo@ZC_d6mu)enG5~iy9aSIJ`Nia z6FwEX6Mr;ztIm4Ui^Ci*b|>P_)~)Kixj3=?dBo~W1Qef(=RcZT%R+*V-nFIA?f7y9 zAL2?iAEUMtKMQlZ|ACe67acs`c+NXI^LXPqZnWwgI=p^Ll4%%->Ip^}&RSdyJp2rEE8#kGY+DHN?phIT8c}tt zI<>8aqUXZ#;(@S1(0!sS)SeQ;X}Tj}oxpeNLfPFySl5mx!U@ENG3a>wH+1WM{H(P& zsN-v_UuEoW<&j&C&C+sTP?AQ^$ofP#De*HYoF=^sjD~J0gfyMjpvYx+OP!@b5mdb! z)yd6-P)r)t%4Kti^S(GZZ;{Gx4sKgCv+KmG?vN-f4t}Of zZxst;SE1uG0ktb~-QtgiZmJXUCu=YfHHMnEw_pxai9C9AWnJy}WCfGwjcm;drq16U z)FnNI10H80`F6A?b#}09t|?e{BPf}i&iGc0`m>=Xr}%bV6#hnZesNLwS{>p_+AoS< zvUAo|(y_(CIf?fc%N=TUN$^kE#liV=-NE+^ z*5GaB?%>}h9t{6mx4HGLbM5zyLR`A2{3pibzp@3n$TC{DH7IbPjz8G3NIKH`QHM@d z9F*o(wh(QgAd#QJb-v_H3tye|57=74;o?e2C?^?aOol9H#$;K=p`|MFtU60L0a=m_ zXnn`=N=WVxB^_%1wxBH$Eh>1tl5j97M>+}VR3z!KbSw?^4+G&1l*idQK_L{j z1qG2>1yP0TSp)LrkYE3F)LN4KfRL?d`8=Q8MnN)uRsenchmZsq>Wwi`7(nHnrbRe51UfK#j{_7n=;sYIGqOtY$j0a?EP{&1K2R&bOndi@3=J{vb{Gd89-RBOf zK-usI+(Gqlckmr}*1ch+J9q@`FDt9fPxTbPmeT`~2KS2M~RGX7$cK!QRdS(pt$;JAv_g=+6X?<71Ymfxh`mT;wQvx?OU*F8- zV7(ybcq*}AG8HEHvXbI zR96yrG7ECehkLH^h7478CDyYetAwdb?U@;Snhsq234V_BMfRX*=Ps&$c!5Dn5{DRs z-cWqi3xL*EEwc+#tU=zoCzHz_+4zx_Grf0)vq5+H)z%X2Np1oc3d2H*XKF1)gZkBh z?u}tC=X(DEM0?s$!ky)+Hf7w|Aqu)A)WuZD%hrFN|R z4cpVyd@JaXHx*!r$ z_&sdSFg(8^wEV|Q-&MA(eNW)%@J6p!?lm9Cn`f1-D(-o?E;SeMH zm{h3s9n)mBqQuh?AA34~Jbtt2t&pisw7IFrw`v~uQLODPERy%Jj8FT)dXE=Ggy{wx z4+o@aCy(>fVpuL5i(f5Px>nmNx31n;N!T`*B%Iuuz7c&1hd%j@#w9YMx_>C(*nv8( zbR^{_p1>aYaLfm?GA3&jk0Hr{Jd>cMFMQ9?`24|3AH2@rP@nCb#2K-zb+(7 z`Hk;4W!aHi<}-L=X;~(xA`Wbq{{mWNn%o-5koU;#fuw`nAgBo zk^%b>BymgW>x4L$&?n7lEU9eKi74ux|Reb;m)9>j`J-=WbP&M&x4ZYPFZXx zID*;GU3P9mP%Z80eyr=BH#g$n#-K*^eD`DLo@y?~_&pbS_lM~ZG1m5}@0sQaZyf4= zq-zXl8Q(31G3Ni=1f5n4^+0d#;s5=ORJyAJ`)M3w-Z@SaK^X5jh(-jItM%S&)vEwyMyn7XCgfNiK}t`JDRD#-4qn0gB{|1i72C#*AZ|B zQ%&>RCx_OT&h~3p6W7`>zlW>^Q%(NTv|ka-DmDA#HzR#X zPCK2&V3uu6JNPX{>A7PFELRQd!?HA?9WgYa>&JVL9x<%f+oX1y9}snwj+8et-vFkr z4MCBl=Nw6afEpE1`+%=dYCg51(gBGTHpwZdSGPYI=R*JNh%`GHQc9eN_dOTp3+rtu zA@5A7wJbUw4fk`cc1xE{C5R?CRv9u0C6dk+`%GK#D_!kvJ|LXz}x=T@C+`$%19nhGOdIZ|~UTC7bsiJ>q zviH5(;G*~!s+lCTN1C)%723l_mzp>5qbw*h$wIW#l4?r3(FJt0PC=pM>QQR-Xip70 zn%`_lDJ(&2BTvcOj&FV`D8U)u4|=l#Z)95ZDD;EgVwDc3YD$VE`VcPQ1R0&)xy2+= zwHF~(gcG7QF#Dy5)*u>#a0ZQWdsdB<2`idiBZamgobPsE{GM8L=nZZI=WA1LVEM|s zthuu-7`wby3MX7jeb9y;GRc)|(5Yk>$cEL#?pPBSU<-sbf|m{Fd*ZihK)*fV*&De_ z+!kVSf^d&o6FJF^AQwHH{90q_rE`@WtyM@3{3?qUrz}%^Z!4vp750{Eu09x?2m`xv zVc;RyMX%Ti#A#|2RlnZy)2#r0Gqa9bN39h<$sPIMM30oMqjKr@>2=gDW*YU^e^0oM z-?>aLgeI5!f2v4vP6xU(#QWDeJn@8GM=fBUr+bP2t8ho2&&8F%#4u`x+%@A_jrjZ% zdS{&;c1Q#u3x&Kjye#b;TF{n1=Kjn55> z*INOz`wVO2A-?$_ys^Oa~!c|s2Oh@<7aSREgmg{idJA*Jb zgi!-~5ySY|EvVb)G8K03oIISgegYPmRKu=Jnf*s8Raay6wj;DYEK!4RY8=Top+GhK zo=H-W*{92;SA6X9oNXbPtu@%QyzGS6H;ns=?7=gFA#Z&R{Mk%OtFaMDBjrKiOwex* zXzkZvHDuuP*ASTvtP$$7#`)>uxbxEl@UM z>Ea7}P8GKY>(z)AD+6Xq$~<@FM_7ILJZowq&$3s-I)P>jL{Hwr z%4~M{rybe zu~5|M`lywPErcemmlcC5CEGwnQT&-KS+19kst;SGk9*7YDQaD|$=l{z_o+1Qrf<#! zmn4*mv>@&%qi=R1FOfW1MWiqaa&l;mTL#hQrNjRmdw@Kb)~=E=wMkNsbQ-HXe96|# zO9{03=G>Hl=1|{k=JG69QP~ey$(bvp1lg5jhm2wiBu|wTM)6lI;87|QOZTFMl+idV znJq8K3c}i|w~gX|$Te?%Z_K_9M82=%sUYkpZwO6)tAdb{st*(SN|JJ+!7 zMu%^X&qjAHM*gX1_PfmL0iy%674IbSjD*oF?UU198y|z4AYMhgL-#8Q;tkCDV*6ol zZmomlItTA>$QX=j<(JcBzB!UB0cNkQoh-h#tV;3D(S z56=@y^R&Yk`J*(*o!Tt}Vk=g=TXAT6ZOmG&Ky5q<-C>X{0DW3A59j*{!XFui&lxHa z*Bo5qa8VK1zqFs$s@2mgJ!RZ;wXfYxopAEsszlx*NvV|O(ow@3uO46^RaQ&C{ba>U zAA4O9!AV_ow6o+F`RiBoQLh&3wM;yo4C}WyG=#{Slp`(MZ5t1pN3FkYW7V_$4Gmqb z_u9k+7pWDORbxLgnrI3-4%olO-O}B<;*pi4wTIdRK#9FBvzN;=Zqo;X?45JM5}^mR z8oL%YSaKcF454D!0Q=M3spt&n@B3BJ8vA==4GrH~%3b>Hsy@;igqG?tRkWeuw1tjS z4G?wdT=Y@{>dJ}!90v{hcngur1D0|;C0e7(K_lm5Rxwes+>FMIgMnK}8Td1yUYSpk z5^$CD+dCtaASVVIE8~7pnNeBlLzERXLv#g$YgtuSHhH!q{W^zZc7lV$Ql-M5Mg!tR3 zhBcy=O|5kE@RZ1d;{U{hgg+{#uemRM!WrQ~@ee%w*Gh8Oxzf`+Z2+C&jRW^z;|!H_ zTwm~v{1Sf0k-TR(1NM7Du0Y7z5^XL?MNt`G*St^b$Qqcuj+TR_x1nLWmDbApBi>7- ze*g_VdJij+4EoWqM0x*jAsyr`)v(9vjTixTB6mQm22;?-Qa%V8!N5ym7s8U~ATy4dkc@21ynZ(9iczB17BI#r>9;n=|PY1|{WBb=7&$0>7Dd6l;> z=Y#c13)Q}lX|a^;nVvYPWo>0y zBt|=r*avdYaO*ibcJCM9O%#){CbRHUKd7i++K{`U8byNbGV zR6n0`GP*&|$oOW8yRSbW%CP_YRKHzCMWGnQG`wsL%?YsQ7%lY^NnLLhwLoA;EzlyC zMu6RaYfi{BA)7(H3#j{nIw?6i&Nop^12yeVW4)LL)o)+XJE5I{BKj~^(2B=v=!P!_Ca5xZihi!$V zT{1vArTnYn==Jd|MNS`H&5jQvo;2!uzx;XpKXOap$DQGzR#?X z``f9yJDC_oyeQB1w$1J1XD73i37OFtx6IX(x)z*03Tdql{>t|i$n2%4@!bd95;+4q z!**f!SarmgiROpi_{%)p0`>iWTFE~vFs{R`L$Ea4}tIcd4sp8ne+h7QNK_e4>7KfF zJ;w6$#k`g6^XM_bnP0F6vee~-TPj(8h8W^JLJ&PCIDahkycsLL`K3updMpA;}Mqs^De2!=k}ow_hy93Ac2OTb zJ*-D|*F`;`ftyM@%Kz|2%Yo(J9LKoEuvA-g3R}W`(f6s^& zfiOdT7i%E;$|Vea1FHm~covE>F7d5f#geC?A%ThA_Si$Z*j^K73yl`^1}M{OZQ~@C zZ-pMrXq>;7)OqMul8YbP^exN(F1~wauR9N~RLFAS?WRDnRk>ws*gbtmw4Gbm^=p-K zBVpb7#{PbZt|~t}nfVY6b^f?V?!Oc%4s4@1vO-4Me>*Rqh;MtNJOk|7+?)`?&D;uw zNXI>U^0p~9_-_!LJC3_c@6WdH()K#pbVqO|w>=FlaEF@E_S@F>J*DmWthVo*0y=Jp zyVhf&5yV<2qk0e5&x?Fr+v8~$KUZP~$@phyG+sO4mZ8|nAn+WR=%0grBx+!}`{~?1 zy({mviB1@EWi-w^ps=5Xw1(QAtLkLeK0)b@7e$A==jgj&n>Sb0BjtFJThe+T?xm|%eyb$su=nMJMrz_7ARRe}uenTmEq;BA??>QScb~dCnoAM9@D#?Z_UYhog2A??dhKI-qtRw4rv!{}Hv@DWZ0N&>vABQNN0x z9ng1EJQ*Id#T|5!v!4dps3ved2yL>Ym z#~nO@J^YkT_%r38a*LKT0-q2ur&OB%yyv@gC5?d$bGw6C-c?MwO_+V@us=8RkWi0Gf9 z9sP@INB`{ip?^^iME|-288S$^wsXthha2qy`ec!KBMfHiRYbc=G26jD->QGYunx6T zt6V)MCFmaz#k9X5iU&I&in~NaF+@ZZC$uAq?{+{Gmw-Ekr0{R38?Cwg0Nm}{cEm4p zbp*IN(*FDP4tV4Z;IRbrEPE&#*>5F5Bm1p#qmc|hAAJ|akNO8R^7kqaF6f)>K_lg( zgF2v*uR1#7dIZxW*q#T=8wCFDA(UH1gmQS}?1KcOoGFevA`#-j7^Siuqm;LyeQ@>0OLz~AjbDd`v{Koj~5sdH1Loq&<$Iex7^zA=l ze0dMR_;!f>;DGkI%rOyl@nC$Z9p=Wn#5eaazWxuz_|`oX<74?%B9;3wzSkar@eOUm z_%J6IV-So_4~%bQ8^#xq>Hl89KVp2lL>cag@ojI%_?B6r10I0!EpF2R|67c2l^DJw z#`nF5@s0lfiSaRflZX*?#Q5C!&fW(gdKcReJ%;~LjJ2d4Bm1JtjSN;{#NtKeox#gzVz@iBa^_~stQXKcgxrd7!7KVenniM?DULGJnixf7hf zw4rlf7UC>o$T*R64^AiHcZoU}s}v53<>o%vUsF5)jZ-B%(`ceVpg_uNBpI*KoD zb>nn1M4WEUUvN5k2|?-D>ja~-)Gx{WXZ*p?a5B?9t9Sh$XZ4-4{&%zbj=09rOmBPO zUvQ1rZvGt&-Q0#3E(BiqBk;nkzu|@Nw;=!w|EY*$r0#bk0Lv=eDAl@ll*;D>K@L|# zhNk`la>zXdIb`@XBK>Y1kVE&Jo8gy>ZvysX&MhL-gWI$|!@nTDk#=}9_kW2W3eNo} zH1?++GA2;9p=VFrhaft46TR?v1hMBoAc)s@pJ~^U4BuJgcYg;2agB%|{@R9FFuX(z zk=u?29%(}m8Qv)(4{x`>d8Yu}JOKGCw~!uziu^=G{xm@T-gyA>xBel>AH$y&)0xo$ z`Fj}pXy5lu^_c`ZnC`LlKD^{!k>2;?tYmNZeK+aZ?=xg)M5FdGLN5c8cR3Libx6LdWo* zi78EK$26@K?)8WnW$x7o*ax+*MtINxhR+jY4Q=D^2@%)p-=4Eg;@iIW;d(DT5ZBw? zhR`Y7%5Ztx_v>xnp7&q1{l3)pJ*h3;BL#m&eqX38uMUXyAahT&BXfL}8~YNR(Z?Tz z{;Aq~)PW-R-?gKEk}41SH*&ul=ld2&Uibr$yl(AC-hku&qHgYp+#RgysIBMr*;(}< zBrmrrw7`wozFQRtOt1VenBJQrrq^7dcu(e_iahw;qGL*K-Mam^-+CdOXK2_StHKv_ z-FOpwivv_Q(-j-jp7-7uvYXy0-I&^FNh6lX@KUsq-Yw(qI_bO8?(*yOZar`%9pqND zSQ<#YAJ34nSMt^+@CG)|3VQ)iC%(f}$AY?dMU1_*22)^qD3Pt*e(yWKmZp$b&A2 zrxTAFdDfi6RAfmB)2Lo_2>bso6o+Hgisp-&NsRFHoWo}w;q%7lOX>{FMx&&dyn9Qe zMrky&!I$QXYAQg>_hf%?cxgzwQ3N;D=UL-Vi8j{9{KoiScl>Y_txe3?4 zTXM?G?Snxsz!_6r zkTj3NNqP#(HW|LlrozuK9rp&8V^qMN-pWa9SIX&)hg%x{9C8VkNXi3PbDhP_CRX@` zw7Ey~`c_$sG7k2=V^V8EQ)DeZ7wm^Ggb$tTF&;ovjT^U~4rA*@ulatnr|61T4x@YqSZ~7fF7Q6ZZLn ze@dgxzs%c|TJ$aQHYq21{`>H2-UEJ|By)ASncS#+( zD8*5%EfTN3OHxi2MetPecdj5yT#bUI_lENjR#iO>OAKfnRf~H zBdyLA&7Ql{E*UH}{JB=Ayg9M$?fho4ZcY3WwK@;sy+2x&{w@W-p0L8xlIJX6gC4}d z_s)tAmF3Rs-lea?M%4#q#iy{fU$7(%aE-kFfKc;`XLpy0mQwSuf_A!I2Da?UjbDvb61i>KDe6oICY5_efXxjHz7wJGBI=CE4=P42P;F9By70$Bx@z-NpP zc;~}c*FZ)$e=MiyqPon?* zHo+3p9%!S&zjY<5#-Zg$w6Yt>h~v*yEG%*idM~>l^4Vme`r?_zSF|P>yRtBahFun0 zdxkwHMad?m)`WL4)Rkp@l0wS(Qndp0c?urgRJ4rumtkMDVs-w()H=D>6*cTOe-P_C ztBLrsA|5}NsN{7D`5z@@)}!HcsNwgUNe%nk6Y}#QCGOg7K|f^RyR9VoTQi3+IwO_ImtC@iBs)GYso!`00{`A3+wHD_x!Ou=OBox;Jdk)rGM^WllXKHhK zbr)@mGhJZc4|?zMMMO4{x|VRy@?VIYo?c1y`OYA35M;}%IanQxYZUr*?6D96+F8!Wy#eo<7zo0iAXj?R#Fv@Q~FLa&i> z4lXnBBeEV(8HHSsdf6&+>TYMzt>vzs8^&-%n({Iu?d9<1{8Pe*KjUqZ5q^N&Io;F5 z@?%=%h}+3Up0+w)ak1}_8X(qMEzaY2<)|qc_8NHEv7>;0E$cg1@OBy{t2&g!h26ME zX%#5-Y0W~MUj;X%2`>84dz5T*`QQa>V7 zmh&-u28JZ&bFyrzHz}{v^%F3Y4@p#HD|0$?A&JUt8s{$2{9`Q=?%8|=T9*%}C|Bm} zhUJQmyBP9Y$oUXuw!%gb3-4n0c>Yo*u@Uc_Sx_ru4E&HRH-)ek8ThbrRKtHQ5hy7` zgWXE?k=bcA(Ix-2DD1(BDx79d@o!mAV+XKAM>XuW7!5-Q`YBoBs$N3Dbt17B$I#fVH|W8d?7pYA2U0a@01<76tDAJ|L}%;HAj z>@&gX-+ItUS{o_%-^#qe<+-BH9Gg>GMEB~9Gk#^+(>QXTl>$4-Znuo$vJgL=$aKRw zYiC%wvN`l)k{f#FiRLW&vw7c_SWQ-=v=x0ygsNCk4JC+M`oURL_ly){zX;a`+3e7v#LHDex zIEyluHM9Jy6|~5ax`ot|l`}M4LOor@=+dh;iw#bvc}ElKhwAMhy|cSC|J@Xb@|Ga1 zf0plNtQ5lv-^WV9$74`tZ%$%o-}l-Iiyvl1_pXT%cJJ)K1h0)so4fSKwS;q$4O3AD zMJ=(M1$9Eo<7$h9BwN|g3p^M%{9sO#(Ck3%hM~zt+WuV_-Q+aP@ z92Zzj^L?6Ppt(GGQ#bX8rrYHpr6L0leoc^B%~uW@bH@G%C*yJ)=xue2%81NaOMLC4 zV1tWO8(~-Rb2Gb*NEW4mwbW2q_O&XKXPO_4c3kx5?gRHY`OW2vR_SNQX&~5{FySC6 zPeX$#6ZYcSUbgqDl1WX*^{WU|s~s2}1yGS0jiv*neuFs#&dYWjGE9X(5>0x~4Cl;!v__(xL9ul~)GlKu>`|o|=T-7t6d%^CBw62WC=l74|q+%<|cF~+w%+XCEdCsTz6CLXNevB49z)vcEi8NnaXf@Qzf-p)ij->QKsZR7A+%7 zyqoO0iaDaU7CT22WY0xp#p$|XR4(!x2~Gv)AHXGv-4PjEu$aSN2WA#`U>8T)qF&cr zJgh1})PQ5GY<*n9{n~9T_wP!`XAaR4G1|aIy{kxj3cEwvQ;Re6&T+B#KG$-u_dW)% zZluR=aTd0qzg#*59u(c$xhv*X2L3rK?4V&wM0yXFufqs@c;lXZWMngjyHMf3L0v`h zu~y%l4^t)?vEx-7qj<)CEzVJQdUhfs3yOcynu{}dNS=R|%dT9(h@{0ieBEmFB>ksgD?lN4L@YmC%Kx)zfikOMOOE zPUA+4<*RGT;`&xnQERyXXj!7^h@4xR+?uWtxsurp4XkxAB<+SpVvmU%y2#fqgRQ;9 zHh_DpawbRmBGMDW(WWzTIh3SMNh|fOuu+T@IfMRhl5s$K>|WUIbEsmlZY^TH zgSEY*n0JGxSV{H(t~c^VWau+j7FSe3MnxD6(JjuLRyHTd9=J#a%|^yz#3PvMJrFZwBJFE< z<7Wp*>(6k$z1KHKWuu3LrG#YbA#;O~%HUQ~+mHgP#rX~NC6Utptz@Lo;(WRJo|FpC z%O}ug<`VgVh35%+K#W#!K3(`)n5X6jYX@*c7j1`Ku6w)?Wau!4$Z(GxZVY$JZD3VM zF51Wd!8x!nqmepz4Qm8<4*Xf=8HwdM2J4JmG4>XoE0WlcbLWa;;)n*Qtsj2i2Q*qH+)STXLTkyH@y4(@#d+&Kdj4km z4A`5@HlGgB&hyFtW!~u!_{0`NB!zJ$L(BxDprWQ1cZ;HnyF?8x(WGlku&kO*g{PVF ztl{$>H-#Soa=~teSI&5npC(GJp6xo-JN>JC+u>g3-lnZ`Wzp<(O1nQa&!oI@+12y( z&2$|!Vmx8*6c$BD}Px zubE}KCdsp&x}tuz&@mJqTHh`1rt>fEqVq+*JTVBTv%n{bbzQRa$}Pv^rVGHS;*XJ5 zpvcdf7n*;pNlEDo;!jcht1fa+MYxK|*!R?}c!S^^S45AZ_|FUASG0uq>~y6@kLJv0 zW>Y;`?dj^{2{=#S_Rtq4+S9IEnsDx`Y9>LU`Kp>q{Hj`#IN-UXX|lShkmV8q=WZW5 z1uu6Noabf1*&7y%I^`>P@cyb=KJP16#D=fnr&^(@HGPS=Um|Yb=k}TQrG;}+F@C=A zWwm_9m(^aozeKn@=75yHhg4|XVeJA94=*IN_m(e_Lg8$jUhp15`DybPw_i{5kLiWIvngG*jTy7y z%Yn_iZJBiRwq>ULIyrlX=2y51&AP-bK(Ek}$@~lTm}Vqz7Px4=Z?S50p*cDgkAAVQa?n00gt8h^T9v36sO0TH(^&Yi?Q}<%XRrU6H`km<1SBf zDaMpxk4toDc;Y@YX1vNdNyJWjcJURL@&?Yjx$z&D!a&9wZ(By-`8-o66MWNU#9Ulz zKChrPqr8BD8JL78U2&@ACVA~yMls||%vwjf;>LYv(nDTc28!oSk~FT%{VvmqBn_K+ zb`q#j^NTNe_0`oZI9u*+as=tTuTIi+ zEA{bV>lT8i1>otZgHE(L*t)0idj@{*b9@b-7vSas$=h;4n51rw z!Xt4G(*PQb3$ zFM#>wS=Ay*caNhIF&aj-0`AZR4)>1Lh%jFs@}mG^i0Y_sY4QX)G63W=3LAic35Vce>Q($CUmrk-rkjnJ z)kJX9O^N~7&)VGPW%=zvyj=F$<$U9cQi{LO{K@UsjMMxU>tgTa#hBIB&#@jM5{#OS zhabla?B>*=iFw%JKLc_rD^cE{A}#en*6ZX~n^bQM^^a^Q|BxG&{*z0enV4iQPBRma z66-_#F-u;KH8n`sT1)*rD`_znKEQfjvD8e*p+#y)i$q(b(JHC!CdJ^JrsXEINW&MV z)S7)Pt=?kTU>sShLdt!4R%xJAMrEBu*<38Iz2H5OyUATO``s8VwyhntGQZF2{QZ^O zH)g8A&q~hCvDEjlt~dT(LJ*^_@Z-Ruv?@!Uy-D>{YSo<1l6 zb*Pz+jZ2i&dU->ptn6*eME^KwUULNR4~dC@q@BGpA`JaBFSTaELl$Knk}m?&Bi7NDFA^+T;D^X@vO zvM(=Jk`ok&mpK#GCZv86cw#zLeM)^X+_4yS^d-!R4(bu|UI-+g>zM^_@V z98b%hGevMGOcO!>!zRT5kE~s)W=4c0-ZZ^w8gGVPpd+~PCe(t2;x{&ZQbqK`26DCO z2+~KmaJAxU)2N!~F9pGGLXm~3dy2hI&4~5rREoD-{;pM*o8bprztU7@`mriVHwW5} zs^4viBl-^#y+D-ccd8<|kIZ>p-CS3j-ZG5^XOPjjv(?PnX{JOM{J8QXkc(%lG>H-1 zL^H|bL=!ac@T;cv$YEU5)T-2)@0GGT1v9iN9AQ$#Feze7>)AA_YDd=yj?hO;>2oH~ z)|>(D$)?%kC_V_3AeiYfKS$aLI6A}y^h zs;3$|K%PPlW{5c$P&M797(6kFtQ>?vu9fhEbh~7QSqpDjD@+Dzi*fj$`ws*c?5Q$P zUUd?$U}JOf1#S*#s1&EFh=zwR1V6tv9sjI@ffS80c9f$RTN6Y%%4jS*aE&XgniSQ$ z)Z2%tTL_L9#10dCh2EtNq*nk}uZUb#S4O4;n+=Js5M|9s$MIaJ?#0{j73tox-OyaaS#) zK)>O=xk`c-fO5fD`fAHbGi5iKyP6MHp--BaWArI~L&?;=28yr7R#%Z8DV5JqzTVSb z>F%9=s#;-Q;2?5FeEq1Rbl2hc#9vXYB8b3{^~PxU;F9|rkNjD}A01Ic!?PznLIckz z89XJYwEQh*ielKR8d|!#hL){r9(g;jdCl$B%_IN(sCmtw|1S8wgg;5>GT3<@oA0Ix zFTQMGzN>^%!{bgoJhVj1iUx9Qyga@$yuHXvXnp5KoYGiCzE2OQ^`JmPxqY?a`|Nz2 z?1dH2l>CXVo|Gk@F(+XCi^AxYjazgoTq6m`UaA(ByETW3_>H7;iVlZA&p%)6mJPqq zG#?2xr=b`vnX7QbA^oUtx*Wd7!+`Mz`BCa0p?}sNW?ESI zwhJ8NrDR&@3$)&Tn5|VNtTK)j*ZaZ}Ys-e^A2IJW%FAW7t5|yAQ)vU!$XJE9{>vQC z(J|O%BUrdy`LXFttPJzyY)Ywbadv5Hng1f;KovtcFmc?y*zii2!X_KJW605gW->=w zi;GbPNLcRM0#>3@2Z~;2Lm36UVJw3G*-%K3l#cL?+`iYc}es+__iw;{WUpz zd4__}k`?=y7L5#5s?@g}q!tNfJ7_TYCUcRq^T~`mC4Z{<5Nc<-2`3+*b|eGOnBv>& zXKpjg-4N@?E5%EkDQ<^P&?_><%m)<%3fN|BK zweTY*y-v=U90+OX!foO5%xUI>T?=svA1UqHyR^9Sw8lc)fuMPL)voa_Ns?Yn!Q4Cn zYo|F$Eu{*q2`g$>`@jb>TbhKGb$H8|c~KYId8jyIiR(PzBWQRDR=Aj*`>;-$O?Gf9 zBTLRE5iOE@bt=4Zymgq0ZY-X{VP!%Ke-@z{tQcGGZaD0vl(zU$0ZO2@Eyzi2VA~4u z(IkwKu|gb>;3yr1^PxZ^%u9Ktn4F9<4j4J;^p>s-P|__@O_xNnsw_(&G2mrthQ=JN zv>nEqIJUM+!b+@@1#-7a&n6K%griSN;k|1o)t@Po-k^uG#nWAq$0#5dv^|*XktP*a zUD*^#GM!_nf4URRXEnL!-bAk8-H9c#AB34mY>6-Tp-Nr+y(`&5klMK7U*ym=a{1*s zs?Now*!8+A-@^SOcV009h0z1giWQFKr<)t*&rwZug{z|=%i-gsTs6G!lNMkE=0ZaC z5a4N_lAA2>{U+r~9rRHD(Gy%+v|hnU){MV!(3pQ=SKM6-XUM0uhWdYLAUUy=_Rt*G zbkZS7k)l1MHWF#+1>SkAp>&XqkxJ~Z>Ybiv9%Yu*&g$}V*fyh_ORbsJRZ>2K+GfOx z9o<|O5BlYIR$^>AzL>0oz%GFDEBC6CGO0D0ek`Y~&4gzkNJuF0Wp@CQ5u6yFP9!9l z@1bDf?I*hUT%Fo$HNm01L(ELGqTX2J%|H+6h!2jfMoqIQoz$Pw|B z6I|4fGq~98E%RrYFSt}D()PnmCJwFNK>U?T;t3U45%hL?A=pT4mvNpTT7)t&&QZf_c$#gdBzcTk;NG!i;j zO}>eqbEW#H2c`=lRDVB|TSf`7lL(4sKu0Q4*=AfytQ5KtN*{nq`lWwi9yR<9R)r#7 zDIS;Iu-3l%CB~nd&JL!?`o@M01twuruC9Hl$Z^L8GrsOzjS!h1F=Azm|4ay`|F_{GHI6qPl` z35k;ugRk}m_DuYTg*9ijrq=X@4Mw05HW~1v$|SsPbW_xf`K^>5K0Krk&&q%9sx3fH zuu+Tx$_%TEapL^x?KqC^!$Es&a5P<~`n=_!!UgAdSfeuM(^$#-2A;dz;bbZDENl}Ku>%yw8!sM2Mywh)}RT0yOLgvvvW z%9)i`A(nboCNTxAG5D}Mq`l1j;^b)Ac+h4~j#y^JpPxGf_ixcF0Kw5D@uP*X$?#2YBy z?|2uj4!sTVDO}{9NG5)XejbUPmEs8&8c@x3LjT(jTzoBZv8bI3Vk1TPsBjh@S0Q{p z=8iNUg&u>wu6=<`)IO^^h1p}HWn!LHg|I}Ykx)ui5AM8Fik`yfa(JU<{0G*d9GQ2< zioEe7D8A}5@|)43zv90q7E7uc2eHTUq;a7sZ=EsBuZYk_O-@ulOHv@|Q~VH;PO8n^ z#hi608>>S9Dqe5)He1m%DF!9nz#O@8!@}s|%heLqlbD4V(Cd^gT^g2JV^%~Y8nAx7 zvdDrRg)^jsuXKVfkl2NQ90in8WBL})MjTNLno`Xi+k$>f1#cP7 z;=RVhS4qs9j%4(??>C{`BT7ob)01JfcJyxEI;CixMLdF#I?A(>m2FT`6VEE{nIe!3 zJZb+`q&g}Yvl5;@)n?U6Z!QhBKkPGN(?xWR&w^aZ1}^%F%^YA(II5#M4e>wk$3fs3}3o zzOo)ijjxrwft|Od*k=o0{^QA>+g&cD>W#za@T3!V-hOO>))T$oePHqIyxn67+3Sn- z-S4XX;;`;kXZDiVhKm00zOfAJ;34lraj$JWoRg@7yPjf80Gdl^Rj=oUz=Y&iCvc{!74e{k@@$sd~u!(u^Ra7uD*cO%pVT7 z?LkkH8Z0oWy0I%ITSUrlOE*!G20m~l74<97EOKIEe?9TmWl+;L)~4FWyhD0?M)bHR zw=o!1F>y5Pf&BV1_Hki>JpA)w-CJ5BwbR?44kfGVJ2SVr`coV7ee3!&#J4bMOY%s} zH5tfC7`!3Cr{0oGZ;r??9V55b<}3FStOeopBpk!Gh0_}vUd<%)M~d&?o~KE$bGKt% z%daoV+4wMp=$CJom9^viOc}B2xNBu|K+C|upSe5|v;s+*hK3AaP$->DPwDg*E#{XT z^oMUDvlo*y0c$AI9D3`d5ZGxoyn~$~m{o1D!b9JL;DBIBHdecNWhPm1CgImsxl3+) zmdyUU=;=-dPj~ZCwrcFVAfE1SWuB-LhNCRtW4jkT-7%u4yGxnOHsa~-_e^4CJQron zyu*UxTuJE7yUuQ{gQ{f2t62)w*HT}XImaloCGisJzp98tMWJ?=WVz*u)XMNb%?HSH z@7g!K+1kGMCNb&d=&LZ+HK}5$;qt;S#kDeSX@~ z#wT)GU?Jl+1Md(|MtU_9^Hi3Ff15p-#3ROB_`91cIdj8Z2A#8H#76+E2Wn)@=;*l$2|Ms<5DzKo;oFJZU3hzBwb)@*8GTBg4Ryd7yvs>nDH)J`|O>VmG zJ*9fJX|z{%63<8(%?^jmF5Lvm40sp4%wa{igWT?DD}!${C!q{pb=;#xTH(RJ{H8R^ z9qzp3!Q!ZMo3A`sc6~`__{tmJIA7d}YIcye@(x1WYV($tE|ZDg@+9zt0Z>!8~0<(qkgN>oyrpIBqt+YQoAZ?RaFwu|iC>J`v}yPvmGD1#gUz@c2aAdR4LZ zkWI8E6#g>(vWdi!_O`x?c!%qg$wV>RzAN$CLQ--2h9haXN&Nk7|E?td|DLyw;?|5U;8fZ^ z+#F7h6OR}_MGVRvKFvZ%z6Qu6KCh-`gHMS&UsJiTBZBjkn39B~)RTloN%@8BM(MB> zWx(pWRBj!&FY&WFxj$n5iX4jG?Wl%-i#hZ|xxUCfQmH`?P2zp+U~>Fy2`mr5?fRy zDfQuvuO9HkdsK|~`aZv{<*s3;=@`O!bpqJ^P(Y zxjkfGN|oEo*mEM~Da9VTJ|f)-Bo}S9`FcgSu_62Z>WvC5tlb-xr=5jY$$(&H6^85! zt0FCltO#taAfCp`E8cR&sL9Sdz1pquB0I$bH~dzKZ}s7PB3u2L(2XIYMtGAOS}~Dx@5hTALo_dKlT~=iVzO8^8I6Yz z%;MZKIR-rShrglfLQme`Y8ISV3Yl$NDo7cLeI3%ygZ*y0gC{EOQB@KZES^=@{a z`I`@Z)v3RSI@rPUzUq|6=e|qyxxeU`&)6KC8op5U;VVrFPD>s08Pf}EI=`DkxK)Q( zpqFFv<)f%~aE5r0o|D01Vh6l~FTW!hrQ{kgCnRZvq1^l8iog|r?1L62=*_~r&V5Z% z?nXYay1rz6TQa0))FY*VQ6X1DqfWyTqTAJ;Q9(sGHG-k)f*Hspd%BuQgop36#I!Tj zRGbZKM!-n9CZ}2;cf@w(-gEdBXa2+-r;AIerFyZZTaJ$N^Dy%oGLZpe8b#R2kUz^ByoqOUODzR>y--XWq?p1S|z%C3{!* z=v5;pshi5uyNPwqx>jSDjEgIdKeEjwIqh2~^`d%t-O!q+hiOb%*gZoJJZ9{Av8#(d zpJ#@Zwl2@aU%TuIzOgtdjnlwlhq->T&fC8V=P)R-zT+s7p%lcKZ5G#lH?w(d>sz2M zGhaK6l6F^ylG zqaT84*nqTPeak}Ts6Z_AJ%DY6%Cin_fZe8&i@D;HzT!w2&&YwmnuZipePDfb=qA== zFYI`Xo1CP>JShTWpJeXK{8H4Oq2W8sR)OV*$P=SO$XuCFFTjypI?f%FgdT$MRCHCz z_tn(Pib2;M;rQL^yokQrzz>4efKpFVBb<~ia~aq=v&A=hEgyT zQxQqPT!7P@RU_;kV?#d$5>6OyQgOpDFZ?E-{A8=^WbBsZkW~HAnb}EHlOeh4OL%C<4$BFC>H`B3F z)sW0hfK{Bd`}y*W&}EJSydMm$7R-60%$l4pw~`VY6{<`8z@#-%k-wI>IlGQpuPV-W zkg^@;fORQKcV;V{lV`SvSGF6s_GtGM61b}F!XLJs-Z;1 zk^6;Moo$4ke-K@YPi%P*KheOr;IB54;&Uyq=Bo3N%2970Hg$=HO_%cNQdO@g?tt-` zQnIGKAqf^Xy?0Hi9crR_yPt01%GzwMu7aOkwNl1EibZP357oUCJM>V~5`BVb36Nll=X!%; z_cn@W<$F5jMn&vnavi|;Qad4aug|<{rL-=A*y|7)qfH(viWtJ(v#mck+RBEO)~S?f zNn@{lF1HejVY_Q-Qa&QZe<%9YD!eZz4RZj5H0ON>wPz<)%e3zz6+wxVe)l%{<=pfqA3J2R!XTE(up#O`}bu7D#?|3Gv){ z+~0K`bp6YrHM6GK<^)q{RC*~^=F!tD*s%`ehsiOegeD+7v7C?$^TZ?;b9bHDuHM{4 z2gVJkFP7bsIN9+aexJZtV${|9d7WD7=5z~(_KB1yn)1vx(^YN&7YAM5_9yQ zKEs_iZ8ahPJx~t%^CovGY&AuLX5>{Z$-jO!$-h1{D#1;Y)tEy}v#^4@19HK0gr=7x z&zxoY#eCM(GYaQci6a>m`(srs_Zd>dr~#pxoJq|CxW=kD?nm(%iP_{Fif1+OJxXj` zK0rDu)lGZ`sd`4Ki&ZG=U}l>`o6e@CrH@FH;1@o#Q390WH748nn9(KfX zF(U0I>;dhP5(ABR9w$)G!e^K|7}V6v636|iz-m)Wr881NSp94gRxgHS-*`ZL8ttF( z>Vj=8Srb)>IB^2e+v>dZJkulc4TnRofL8u*hpm$SoaTzgoR)qmWUDa}UbsIn(}O=S zjSmYqbzU?J+BynWyw_nr?;YI>)_g8;yw&RL(WEXU^t9<44!fz8U535$gdJARg0yrE z?ljM7%!KBZGWQ70yLoDX#!PGfPI+_mZt@GZ7n(P;vC#bFDbb&!@`Wg-)O!)J0(e8qnusP|G*aO{ zi|v?9eb*^zq18V-oh=j@5e}09`@lR{$+UgrG@$QNYewKC=lM_JlxLh+OYTC8=|ebs zQmG^-lq$)&yo`AAGwJ12n30kvQ;TrUU(p6*-=fk-7S{Z-2v(jHIWx&kOFXf3n7oA0 zBox0V=UfiERE*Pse8`w~B~~(Kac|-*z1bWEUg%?j^Ha=Wl8Xp^`qUFH#c%LeEhwSm zDfQDX1^9PAs}TnL?b!`s)8C%`=K;^YxG(Pgyn46u%80x&B^c$C9C`A^1l*)b&F{bX#o6S0X8OW@v#F$|=`W=(n5%vz{Ux({@k?nh zy}Vf6Yfe9J>Mwy`N`K+m7ZJYg@yjoz&tEK367OctPhb2}+uKD*;n^2wFMOfDdC~lt z?pwSfe|pM54Zx+QM^FY_6qP_pa4B#psRR}ef+#gb(G(@%o}zxBC`li=c-!&gFTB0H zIPJxkW~MD(wqW+dIeZbhob~c^&$Z_Qe7=N&0FN(`Xyh**ybZ&(9lV{!6+{`SU|d1q zFBlg!kHQ{z@$cOs?r*{hC@os};!7f}xr@>l&YYFD_}PADs+T_YL(YzIDZc1T`{Z6j8$MC&wXTaq3_y#La!ccgu&z22`_w6CM0K_6Jn=) zB|MS930=ICg{O9$6yl@L2y^GJ7oz(l3z|Xegb^=%Ei74eR>=AAD?vT*BO$zZI^ypZ zcK>`!=-0EiU|3KsB&@9#Qa(N)B*(82zWL%yA#TAg;rTh~f?-O9&~HGx@Q7E0Fn01T zVe@W>kd>7sgsSEWmbLE*rUhRMGe33+BR5wI%hps0{nWdKK1u1qz=Su1ISY3Rk#VDh zgU3z_GoM^1BuxHVh~{<+>)w4|7;f4tbnClTNM81h5Zbwqkh$qAp?^fWkp4-Pu=4Ux zc$O^8v7HlUET|GXkNjLX`9+1${n0H#!tAevTNO8js7Z^3$A`=nbQ3=nVs&c-(;HPn z_n@vq^2+ap;g7}(bGFt9)-B%)BWJEbey0f`T^<$2O|BANS+G{vw5wEDynMHy>H4Jb z;;vfZ$A&+J_dd!KMm=^z=ovOw*!1QOVbZK!Le>|*3dsw85QdN3EyNGmEqs6Zity;N zop|RE(xy%mlDW0Q&ZFN8Ia?12gT~nfb?>D@gm$oS^w<$0X}Lq#eC(DG6E{uZmX``U zay}QjD7y%+ugw=`&sr-iTe3{hM=lW(9{XI-4|`XL9<)ptGjgt=PueP&juiZ_}TNu!?>Qg>eyR=jaV_;B|@VZ}#R zh3~%mURXG9iSX*hUxiJ_okGmk-NO7OD}~JSH-)a_N`)22ZVRJcC=f<2D-;Ik_6g6d z`$3qr`a>Zy{9Pef`J`}g&sm|U>NjD|zI{Sx#iPPgA2kWFi7SMnlb;K(+y4}%Ke<$x zx!_YFC2gxPXL*6333){rIdZG;+^j7^(waXZQ-2C!0j~&SHamsUlS+k8zHSi=Ll9?8 zv#|W*+rqo+4+x`^mkNbHxCB>oi;#1!UZ}18T^O~XMM$0XsW5F$i}38StAc*;T4Cg) z?+V7j$wIH-NWp%sLg@8KvaogA5BMD~Oqk*nMori%96ebnJpSl(Va%p2!gKFj6)sS{s zAfG?SeA#Qqs;~9W99iPa;ji3aFwA@=u;hqt$;_Ec5ZbY~5Et{)Ws{_j(nH$i3Y)8Hq5yrtcVO%*jJv~~d({&&F5@GzAnEMzXU_b_9 zet7@=FMCC}86Pl!<6Z~jOO6o6bzt1EWQk!x?&{B1O9nfdCJ)Y?oVz;r_n@avHm>+1 zYoz6wStlFRBPFXp|NQeNN!A%h)8O3CFEs7UO&K_F;FYI#{xSKfDWCswW!P)@lj3hX zl8STxl|8Z`@D<;eIx?O-2%HnX&ks63cC4~{_rfE(b7Nn5<(zIA{@f)l7P$e19T<1; z%fOgh4G|5uNQsM#gL4n#F>Q?RTs>vTV8@Wjlbd=wz<5^fu^T7<$Vz$U$g4LR0v9+4 z<3on*bWD~^&iy<~GQ_cC?)Dv%pV}Gp9vIK+ePtN=BfO*R%gWyW5=r_kh>IKG>-!MK z)4MB`%L)q%!8l6%+&P^NA4^1$i9um6iTM(2FIf_Et5?H_TSr932MicsFm#%Eq=bkH zDhPju2FIDxpF={xxCD$3dFw*%@f#=4To4(5tYpF9onSmGYvvTk7 zJ&dE!1K&Rww+yo2yX@926u5`+*9qf+fpeF&F}}nPl8YjhTmWai2e1Ca&G=Jbe9o&U zA1m>jOc>vJVW*?_?~`+tj<_;yE z+{QOy9729hSD1KdS)s^y2T?&Y1>0q4tOmn?s=hzR#5{8Z#2_neB_0?Ucx1`U7>L%A zB_jq0fwK!}lPSOVp1d>bts%L`8&5jK5R0UActc^Stj#2&gli|Nr;SNRpG}oX>gA z^M2p&dpYU#4_-J9@XPalkczMRKsY65GQhQZaEAv6t*XuRQozY9iWD5+=0bp1``CP_ zxW%H^TSQcW!dv&$z%Kf5kJYJ%bHfu+9EvllKyhs%6c=WR5Q-1KxATP;r;Z&9@GaB) zZ=RbvZPuEq0|2j?C&6FcLhxxX{C9IuThNIYhEF?=Q1rs9Ka8cn1^37q0^96nnbJYf{PfZi+uJln@?_A;BD;99M*meRr@go)apJkB6DrIth>kFWypO#9*FLcLVnBQw9ca&_x4#BrP*z!UMuvhKt8B>1!!$IhDd`<-LI zC-|-{FHTIfo*TJm=%0R%DzH<6zxb?Yvo_tYdDaWZw@f>JdDrJJyl{egL-ENJd@CxZ z01wVIWo9}(9s<=Vy+d%Y2R20pl+}6&@BqoZwWuiKq*Wgtyc*!am!{93-1>b+U#j=p#q;LZMPJBOl1@`6C|S-U>- zv^Hmy@AW+K!n7@00KWFU_nhD}CM!-U42R^wnVBYM90zj)Bp2W#sJTWXz%7>WS}Kle zVQDTZdLkm?q<+}y;MK#1g{#jWIdXU|y#kMW1XoW#JpEd*0Ebr~`{bHt|5+q^b=uD3 zFM@m;!ru1)|LpRM2WtK>Z_e_BXTO)=(`LQ+*&?e}yVtwX^TcI>zp!iVym_dXENFm) z;ACKwMKtpel~dNthK3NzPM;W!b+%e_WOigzfHu+Mfy$|E)@mz?o~Vg}9LgYDq8G=B&MZ?}Znpz3}K1vln`7M(tuDRV+z5| zwdU&Ts`bMqV?^6+lqky zEZY3T^P#x^XP=A&_$MEJa`P{rz4!5BZ|_OaH8w6{3xv8m&Hrg|SuNfNt*>0eMKBbPB3cN3c$uy0~}Iu3hhKxs1^G`PvUotR?vSEL*n*0X)E? zP(UPt2*|Lu(WZ$(Sg8wP-5f#iSc^HktSloyA6|$(1{GB(*NMsDFaf^$()2f`!{n`6 zi%>i`e0%<3SoZL83&2lm6XCML907iB`0!ch_I+}B_}C@qKKl&ZyIxw8m@2@J6a4rz ze=C|}i(m4oXHh8uzQqZypo2U}%P5Y#!vettc!(-bqp1@Ck>KD4c&*K+IyC@dYERY_ zt*X(oTHr(r5eS9HTUTE?a`7TeUMQm!+RY?&`r#uWpHf=|mm`=L7Uq19rgQ$i;{@M_ zh9}~)&p-Wf*XN&oO>kXR#Mo)`0lsC+NUbGNTU(x0vuo|zsS5asS-VciRAtpFXwKX) zBLL{2K$bz=Je4X$!zeC;iU6;xvy}y;rfQK_)eHf54|w>na7LBZ)z=OuC&T0tJUTdh z*sxY}@)3l{!?_;7hAxHSi>5+Sf{%qs#%?)L^zQ%uc<$Vb=N#bv_n7zg?>|Fp(dsW< zTzKR2d28praQVG0TR#8%#M+PFe*3YjQXA|61*@u{Hi97W(Rd1Q zIt3or*s8UuI-LdFMKvekSE)D>K!OJkYgI2ioNPaGc>XCS5D14zu=K;8JbdwuBl8cZ zgS-&`_lTH!d_KUZ9Upu1+`iA>do1nK_dYv%^s{qcuSgt~s;fHbkBt1)*ZY5;18~dv z>9?Mp2k^`9y*F*zyYDXh@zcLP_V#R%90#X|zblQp`H76r#&|1PPv@H^gc#&Sq5z>|{nYl0`tPfmUV znujNfcpEWq+N%J+cN~hp`0l4^Lq0<|>;=9P;IEJM%&=%{i<1*(O`SIjiog5&onL(V z<71DpCn0JlEq;9!*jEK1PeqGg3$;}-J~mcO1)Ss>{ImH~)zsANd86)9{`Bb=J9qx+1 z^VFOR*8^(Jrg#(ltx_R15qTCBH~QEFxW>nFvgV1mU=!=fnh5+wekc_e;Nh(h*Y2H+ z_}7Td1ZReu7=HfnJG8zaudTI?y(hu{^y8-=zxc8)@umd-%Nl@JRcS}QejMQbvsMLZ z3vW$ti}-x%Yw`P_fv3uJQ|K&Dnq9)F|H+=s5XwPfGEn^62Ocalbp0{GH5r@adBvF~TVDHqS* zc<+ZVK7IFv_vURGz6F8<91(o$*2zUAhfgi&Fm}ut5)f^U4#|sTAV|sR{!Jk z=kNUD_~mmq&kFEQ0Dew_r>0gt`sO`?&#K8tOtssueg4H4FCf1~M{oF+S!jTm6r#Kj zas*`NO&LKIL!fzdp)IB^M8$xDg1}<4jmWMJ476!tYb_OTJyBDmx1jwwdD7Z!6;5I0 zM9aAv*D1AhfiDk!P;FPO!j1YwRLOJnC1;jNmWlUiII0nT0%3&Hi_7Brw{JHZ)O4u)I8rN`Gm z^2F+7)K8Kpn?1Cj|Nhna^S6wB-T&szF9EI_x$o@JyXS5my)&vB9p z`Sge5ug<^c|0Wa{;1j<*d-N{=|9Vt)6>^#g1oBt=k6fa?zPH@IFyb=@_|)Ua(I?vV z?Bt?VMHrVL_+)e#bs*2Q)C~EyqbkpcCPBA{er`Cruna5UM%SmhoRTNQ{%zyePMx+B;A8#I0UVXH>iL^T|8n!@ z&F2Ar@?_)0kx;z<$ft)~@Jsf-1@N)xDZwgJj}M>v-n_NXP9A`Whyj(!lZz(TKsk(w zWSXifrhI!HdQ0$_24pM3Dn9VZ^&uJPt|0`~nms(wXG6(oMl9DOL!A7{I>r_eRlG$g ze+S^gE9`3~YO4kdmm`rmynE5qdj$6fI4kF>%;mKo3{b#}ii*%^7HTmfRG3+-+cT#_1`}0YNT_IkYzTwqfU<-R zHw>m&(Bcyu2^pl$05%?5tvOMm&lx;{;Sm3aV zA)Lnmb3kDZQ{;}|2viErjK9)lj zQwe_ggaF@)v7F|bn%AE~hh5Jk-((uq2*vYM4Ys^&9}&pW^aP|zZVb6uswBAZxYpB? zULiQT`Qgk}B)Huh@#A8&kUR-hvtr8ZA=>;S-jtjb^p)fDr}^*uCj9G`Evy26EG)N|?~Pi7p#aoQfX~~qbK2#3GdPSjd8-v;SlR)v2SG*j zlTD^*Q*>%BcvUK+PlE`@3@dK`)i@U4>tH{v)3u~tJ|1>BB; zTIi>ySM=73*|Ue#XcNu$WJ-RKHeVpX_aT(fDyC4=sEK!v9zFZ!z5^$p>i_ne!vX$_ zy%)z@)SL|MQ;hQPz+IsTm?-&6mN4_MKqt)7-QDgyoD?wNT;pxIDe#ExEyA&7Y`qK zb|f0iF9B{cg@#tIA^7Y5FLk6XkN5+@4;;K$UaXH$z$tlujP1{u0f!IpwBpzq9M%_B z(H2Hm#+&wb0z9NT67>?&!zg8`LuM!F0szjs8R4l#rtKku3Tr3OB{&sVFFcZ5j;525 z1&%1L)CUcjvIi9brK+&(qBkU$W@-Cpe+hnbjRa5p3&F=eHm9P|`Ug5`B7Sh}px&Xl z7>|R)KbV1#Qp5%mnIXw*Ej1MtCkrzrI0B+Al!E7B*e#&q&**=PaW{Z_B5EQDQNY>5 z?g4LIeO>`4J94W0nkf}@6I$BDs>JBxi&Ao?xEmD3Zyp#$#Z8I70QmQR`Zxj~oN*j= zx8`EG_xLC$ILI$wp7+6w8OnGHTWprv#3xpv+a4Vsf2x!H&1z#v12ngV*vcCJT%n^; zAULv=lgL#BI5SFYKyfG@-nu$}x>TI1!x7Uj>66eq;@~0rvf+EDPmq!$Wl#P{QT%xc zUWI_T>rd}Jx`yD09|I0f&niDHJ|kXxr??knDNML#)Cdsg>e#s?_lLL`p_tO z^%|ct3@>RB!NFZsB?7k$hxnH4aw4;o*&#a1m!@Cz7G8nkB%csG3>{L8C2H|i{itMb zN-oVZX&`c|qepK(k5C51tJWOd_3nHAf4l?m91I7&zvE)o1Z}gY!{Y>B`>fD=GKOc^ zQ73qzWx$D|qKd>!gK6)MJX>|7NDnb`m|Z=$BegNWTqZ)HC4l1>qUGdZEz$Yc2|lbW z8Q|p#I>{HRlK`$q@?)jW}juqgG`tQ8=pUK`? z>G}vy&u3-RNpJ{08A&Zi-jwdHr7#HGPiRf?@upj8su)dmHH?zipway5xuMUMl}T<^ zVeq1Vhxnq*UJ)DvTOuDHmNd*0lJ#4MKvDrrufiX zY3#BY84UA6n#!ikC3gUDYdO3uo_G+PQUiv6FnG_71RBZUVh6a8o#dBR6P$A^g-O-+ z@(FDCL5_DeJc`!x=9j3Qp`n*9j9vQWm;U|&{Pyd^f3{pJygRsJgqA44H!L1CqK|x4nQ9W@6Ol#2q6^gI+25%h} ze7+aBH`<};sl%9)6Ff0`fp>9_>~8v>hG-{ci<2&+DLFhmn6^v*LzHvV~hnb{}ceIzrr zW-lKXa3Qy>oleDJ7={&R@%AnU`5RTkoZ#oZi^~yM*tA0Og`%DRG7Jrdt>Qy_`YX% z>Ik;@JPRC%1XeT?g*TGd^&!O0yMX+M>||IQY??d(~RJ;!R$r zg9oc^HgtRl-Zb}H2o9ai5*(qNc`c?hl^zi1Ed}_n*49Gps@X+WkGARM6Hr{(>GM;C zNIjDhld2~GoEZTNGIL0N_PtLNP&-GB8g<7BK63fR@;2`Z3O-=Q4A}?5G|IE6o6V41 z)Jq%~g zs;F7tx_a<*Z-TQp;L+OkM^<=-#2J2Kq#Was8%SLk~q#Z^(?I!oyb|vfCxL3wb$OqPZSuyON@_vK-)GN0zu|*QfLR*GTZM zzCKIvHHi@sa7uCdA_aT~6LJ)C3vw$wj(|+x;*XcfU@A;aKWHkIJ)n^6LqpF;+Td#z z%!QB~LL;#ibpzK6{5SzDnkbq*BnXq7_*pD?L>&q#v91)CQh8F^}bk~zGE`LF)Ijg;gARs zQP}m?qQl8XAMKCXgg^17QOm!B;Bg^n@UufSyLapk)KKt7omPizR$LlT<9k>!L%s1Y zsACGuO=1N+yv!RR59It)Tuk_40Y0Jp;t{(Yf@je^qGUnxg}?BBePj~Bzlt7Jm~>#t zfddm0F4`v*7w61yg3};qGZ_mJ4atrQCF-at6s@MI@!O%*rE#UquF&)G`|e4b(Wf?` zs!^-e>1woQGXj3q$r=oI3h+VJuI}(^gIfzmW&|j65(|LPQTDA z=<3@Q>IJeq@Ej!m0{h{2g2wvafx!hgR^wRLpxK8A1ykqy3kOm_LYC#?V@+vV8iuEZIBWiRNQ_u|-myAt5 z)*E6t2s7hUJbbWXa)lcYebJp87L*@3a?RiWKvI$v9D_$z{f>*pep$H?81jmM;z@3T zd!Ai71CtVKPkb=hYF)&%7714M(6s9ogF6aG4D$ld@7Ud>X~4u4nw?s7H`xM-hF)9q zMA2Kb_vkP-K(7&;R^h0SP`owOyBuUa*e>LKH!di?czEIDSqE0ENCJCdV)Nu?eZo8M zEbyDKya#-;6MX4XPXSJH`h|hcJomfhRnesc$Mk((Uf^$cb!KLED11p2Fu31ouAj#z(VWTCrpa$hA+siC)=`ixd3PchvL& z#}r@0I&?vy_=yuAJkfj-vp_+Kwc6C&@Ag)i4VF;?Tw{ze-s;?~iR2_9rz5J%WR_K1 z)mSlm3RXm7tpa_5b%xR^@CwAH;%FXfCzSW1?%|iuT+W~kq1LzjjyD;=?rtdIdV@O6&*!8c!?djJ(4p*Xb2T$V z7$u=&b_Et~T3?!oY`#ZvNiM>nsG|Yp6M8^jd4&qM5x!@mI1O%YgUKhq4Dh8nXj9yXGFr?B6MQlPp*0BL zL9qCg-^@jeZ)()RC}9TlfI=d(>tX_j?s$@wGZNtFF{d_mTu9)EG{D0-i;sFqb|JYF zTvSg)L_bO{!LOnp7*`)w8n^P5zUTxmo<4og(us>c8M$Z;uN7w6XmNr|a_SCdX5vv% z0LKU%hu{d_@tY|yxH+J)$`EP@a}Q-lIRxuE2Y+{v;Ms^PK9Q*(P3dSv6DkLUu)eAX zoY7o1J;E!D=&f$$#jhyfkB8*>hQy)xUb*@T{)ZyZh*tx4xp-uGPQ=KOBVQ)C#oM0c z=T|&l$xNivBbr4Qg7654%vFTq9lyB{5E_cPDV>+sD1e*M>Gbh?>LRgLBVL=}@EER5iqY#t{t zcf!hgir#c;$c6E4Y+zvwF$710$igQK-mR@soE4WI*SD5s6)Wl%5S#`3y&?n`;1a!U zQrkO6hI%d?zdr5I-C-*&PmQdNT(>^iv;+d-=uwn4$yTBC5Og`dLhda zRzaf=yEN_Cv69?}Ixd__CAS3U;31Tj=$MiKHcFKLQdBR7Lzdu;-U?)anD7NQifYq+ z6Z>wGuz?_94e;*E}MM83IC1sA1LC2c#V}53$moLkH>IljG6tIi;*BozVs|dnS;Ll>yRprz*PlQ z(<|Vv=UpjC5HX1#Xww8PoN#{kLBB&Qs}Wgbc8LBp!9`)q3DBsBbx{!`*F}j)tbm8_ z_MRlk>s-K9SFUc{xY2?B$}7iw-Q$xdAofSCgHysWCp+o9UvUDm5-85x1i7pjzJkg; zP*lWOtQ6J<&H3w)psIjTW>aW2DrhLU!wf!HOQwl5!sJM58*Jxye3!dB(k8(J*a>nd z4s`Z}uwZB;Mk5D`>I1LPE+`YLu9i#inF_eLjCtLUgIut~<(pKchWK{~E(+&l{mxHX zpoP5^aLSH>2^>Wv1Q_Z^-3+<_Zh&Lx&}^=%_QFtBeZ8R`{#F^0UtvXXh%qvMX!_6{ z2XEycst%A=5rTVQ{3}DNOW0abv9)>RheGVz3=1d{+$L%yLZgpeJS5>=#HTmE)3bTXHP}N_3H`OuU8CtYY57oikcv6&WD~bNffzd zMo#)x{ltjf<*z&rOK-#!hb%ClY6Q6@`PD0`Jm0YRj zQE?nVYi-^NpIE90jzk;j_EHN4uaC8f)heoxz`(#daQp4PRA#e99?GA)e9DDCqgd$J9`UR6PR}t6@i;KoTK4Am6uO4%N^D%F-53(X0vIE3nC84#ryMu9@=;5tfXRkffR!l!5Ai9*4 zg3S`0g6H|VS5M~+IH-8~MvNt$hvM3SRtUXr;J|evo0Sb`)S^eDxF%K$eJGGtd0!K&bA@f!q}m#oEX+XP!fY#GK@>DDL0G` z_~xf(Pxf55vbe2aW5LFD7jD&{g3X(Wj`KnBbss!EgWUS4*7J7nwln7^Ez}RRHm?Ks zz<~fq&qpYJ`|NG8miNMUdng=6203(S4lw(~hMED6HeP}U8taWRBf$jux@c>K|`5m;gf?(w`; zO%R(1Zo&;!wp0zl(Qgy?L28cq`K?6nt?5vcEwV8c?+eA*YxeNa_jDylj@e~`Be-C4 zV%40tCu>`I4p@AXSx^j5Z{FNP4)D=Ja@jDQzbNj>f>UmJm%}N3#f`t_U^4t2Wd%IR ztx@aF-bOxZnbP?Y8b3jdX)AzNO>odp*9OfZmwt(463ue6t7w4G4y^X$fyDFZYAR z+i?C;aXu0pe+D7~6lPrL{0OjuSUiNn;?-r&4p#+Yq1j&9p@1u53bOO0jO z**>Y5f5R$1OhnTu6BmiDL=QNIY{PM@-cv9MGv^oh4MXS?R^cNWO@QOn63Lyw85GVGv(PDsh|pA1FTm?!j8~rd zRo#`%S64QnpMU65LQS=;nr0z5qe^XJ#El5d?gExWLY%?FjVd*(-bR(=pffP=29yIh z$O{%gWRy);*c5FVy`C>Nk4Dv0ZJNGtwZPWXDGSb=*-(6qOVbcc)-jJ|7A{-+LLKyu z2Dc~#hu#Q?rs`@ftrBN!iqUAEdCmy%je#1?%D|>er=HOHR5zAkIkTCO2l8OQ6aaR8iYS5` zlGoL(Z%bY|OaZUL`0a)>XC@Vkbd%t43f|+bNdQksyP&HDxVU+j2FDsSR81eV$>Lef zs1jmCRQXjC?prdB_FHMpUfHC9SDrY9Xow+av!!{F730l`5l=6|yaeY@EY~~cq|JFN z!LmBsx(*sEu&a3n%JcAH!A%7PDeZ%f9YY=w7)!IL;xlK? zENByF!WtDrm|#pip#xw;hvD=+q>E$5BKLULl$;O0v8mP@y|JcHXyPe>T*^GwTrHc>+_11`|U;gD=Lpm;8xX^K(mca^O z+z2Fa6{Q{E*x2gf~=jhEKOo&InMz>##gci(V^`BQ9)seIji;Wd!R_Hy z+D9M7azEV@zufilk3T*(dsRiFykiS>2P=SKcWSKoLpl{^tAIMypq>AWuVW+M-98bucEzJP2BZp3dP)YU~|^s1W6 zQ;i|n*A^~3KmPrXF75sAUnX4In~<}#2xI!QAN%;@UB7%8afOwWy|`ZBtd626=)+=7 zUiHkFfz8ns!Hub=FoRcN;wXhYd|_5r+cnh9bhM*M^oI}}Kc0XvI5fe*EgkL^8yXsm zf99MZpGbg5+Q=PZgHvo+FNvFfo0{rY&V6e3@`D#3@Ra36IYmWC#Q*z=2u$kTU_cb$ zh~!XwbsxpSF3H2g;~MG>vB;PSF0e~6fq)^ic(3ThLK(&tr<^JF8>YwP1i*0zsGi&j zL#H%yE*3?&1cIZ(V=w?bKx?bUa8*-eHWd$nON@0~Iu3L+{$*~5b{|S8s;H>IKvr3m z?qtMCL?~+nA~|N?NX}NDR>6-42%9T{b2yO&u?Mb}4tH=X;F+ecOd>UeQ;M_Tl=E48 z1vr`=FPpfXCF?m;oU&8a07|*@t|p5XVz7 zvSO}H#41@NS%vzOFTE6jh)8gfOK>5xl$!VweD$#4hS*piXx`ug?heH>TS8@62|tfz z71v<#tg0j`&gEwUd`~B`SWNa{K2d~0)J&l_z++(&V54BFir{ofo`(ImKupu(Y&0vY z8?&>q0EFj_RK;w^lh?gL_FpH4bRdFe_0~~?FBQ_%=^gi&+XoC_C!!dX32k=S7 z_)!oCIPU4|fW0jU<1!8cTJZ_$41NiNYLhz>3Avw_Ts|P}0=O1zhGe{!i&^M0^VE?L@;+2&KR87%kYQ$=gGX!7Q zBEcznlJ>#{oyeJC6)CtEX6}XSFd7jHXdA%^4Z)3(>>&a?2H+vtHlC91MkCuz*u}?O zRSR%0{I&*C@(2vtN}JOu0LMSUPi8(PcxzOIb=|%o8(r=KZWv?m8iqn}IHj0QIa7RV zwQvf(qOa+kBJM|o#Yf4C85$oSj}c|ma}J}B4FAMKU0sYO5(7d2XWLm<*M#&I=c21g zMZ0P9!K$)=Dib9)vlGM{@`cSk1i1XQiQv^9sF9>5IO6!gMV|W>wZ<|cI--iZdr3)l z2G$Ep^6&))UT;z@+_!0g78)!6{gXb!*+Ay9G?hCOl18&g!aYrZ`8*ot=_%L7?qY32DL|x!Vzrqk4?z_S;9ICIT ztg+hW(;S36(#I<{7UXa_$+fkh+_vrX>C@Y`wWuNV>hSpZZ7aU{-S1Avdm-@}c;m*R zMZEQ6HLVHou(+@iv_4_~1M+5Jme$p6#S13o=U*G#c78j3QW&lqdI9|uRDAgl4#yFN zOTw@VQeyxpJFpH`5$ps<@Wzme@#p;l`D+3s=cUkOr<$=o3#$-)6mUu&?%|cW4UFHg z{Ep?cI=-}I%$V&!|K@aN=CCL)AVp9FY>6fOiJIJi*+IG8XbLCHZ6)DVK#J@bcW@Cs(9+)Yi9xX;>*MkGLh z3&~BmzuC*M?atSCzWHXwiWO9R+assH0lItXnEmQ)0N)m`kI0E&XMc5gW_%{WMb+Y; z_;^U(Pe{HxAK>{<=3hILRXYrF7Y<3gE?Q&x!%rTg(5;uv4lh}095M(hj0f?M#no4fCr!HaWd2~k;^<-F zEr}O~YFmJh!XK=H<`i7$4RGX@1ZSd&-(zw(#mM?71b;spAsyhxCYuctZ;|LmKyg|H zmD2~65kHkxAN}>|7Tm}ZU*ard#_Zp|?esU>O57{)xUJH%D2nlh+?CKduC$WO0z6)Q z>A(Kv=k$ts!K6uNEi-`j`MW!dFP$djPa9@Boz%Jl})UtMJ z(CpCGF~(=I`J)p|wB%jCkR9Oo?ITR;6CAbE92GOCPGZ--Ih4P#0T_)z?5 zaF>)|%`v%|h*!pk8OH2yNithnhxshHdiA%50RG#yivRubiQty-=*;NECFjoJrrM(i zT)F8G0bb_|TIm&nE8KGafGHxzQgJ~Vkg1~@BY4LeVtvZcg@f8qEVH!K(6Zvroo`k! zprAbR$m!P@5ZxiWF#EXe>dG;ON~lln5(5PSrHw)dgX!*8=eIC za~l@sKK9bniNV3@#3eUxKK=C5OO`zU{MSysK^@l+7XotJ*vlwQauEqh4p^otC=%Qk z+{o71^+FNCuuDoxOK=_n zd`#v3N}L?X@3goVOxm#V(4j;5mnNOp!5z{2lW>dV5@M74`L9?h(Bx2V)JlS5&Xf-4 zKhg`U~Hzn^!SF2gUb#bdUAK$rSL-a81=-PH^B_*1J6JI z{GD&MNp9*L7Y9fIPOGpGTk%R)yJM1!PGL;|H<@8hbZ@b!tQOo}Cet<Hn@G&+s6oSJRegzW_x8R$+tJXvhm+{S06gGdv}|ua*P^xq*Cbv z2M*xj&WddC%Fk^d3Y2~&`CwNI^<(O@m)Vw6+>gLUd0DdTcQfAV`B}-lc z^PM|)4m^KgO%hb893#>yMQ#WVHN`v+$kEJ8x8Nst2Bmb3061qRh2o_RarHJRj%->K zjMr9KwB~3wmoUi~p>>}>#JsPRsu5anZAy^Kpo}5;HavzEVAMYnvmPrqZoG37YncIk z=j*S(zO&-1;7S%`WJt_hz}eJ@u!kxsOpYHsxYC|7lR<^p1aIKyV{Np!LXL)~Iv^lg z2_!;qrl}%RRrmpSUnzBO`36RzQ&1~e_N({r-*#GE68QM$(d&I8BUeUV&A%h44}ASK zvW4wvco0y=j3GC{g)PKwKH~O4iO#TM)cm?^ljIh46X2-C5FEX8h|LZRA~2gwugq_@ zq3vPP0TiX#bVct&j&`Z?wBRPVS}0EP%Ka^;w{I#~zka0+GkcL&BUcdo8(hroI4gwC zcq|hO!!l*&Rv{sAjLp(141Gd%fNPAF+q>6`k$1_BN#A;3R!j*_qX3-b@uxG{fU)F( z!a-i@qPvuwEh(;tL4Eog#6%%@$(Ze;8dLMi%Khs2(VN$=&$i)r!&W|SYEjEt-Ljn- z8yYLLw(bOn;-Drtn?yx%#6$*ijros3a>hWJd8biAaIUeTVJ=o-AG;+?QVa4t_a1VZ z#!=Y*mmrFxi-AUIo8T6;b-Oe<$l>$-8gQ?)*|M8#>qo1<{)Y8e)ax-wZ5YQWIGuuH zArL}vaZ{Mo8y!qzgE4#HZLF9O5nP6GRbG7v6-P{wQH6VAi4XI22rke|A4p#6u11E7 zg1p>?+r31s_LbKIi!4bBgzkITzA25?d%nMHJ_KYH{=Mu%Su;Td zIFX3)MP%Fh6wIq&!Uo{oK93-1?`OV-mVh~17%o~E{%>IO``T;c;v~8BH*Ai^$GGy+ zz+aKS4TT))1ymE3*7L+X7( z!+gqoLQ|o+QtJB%&NFa#mxIR=AKbq?jZT~*_jbf@MQ``b{avFhUZj z*|cf@_U+6tp)#%%Ds)SHCQ~;F&8(-Tp~v7*{0hEmtgjcTimSyD$Kwz`V?ApP=w~`5 zcL9gW@(g_Idzr;oU7`|il(ry2ccGTxmD?UMG_`GvMOCQl-n1zNV;=xd3EVGJG!R1R z*Vyf@j30-*jm*s0qBFx>z>R}84H|)_Q_SDH3NBhs1eKs>ba!H7%c>R0!`SIj6n8`y zAFY>*$6*|meCg|}W_)v~O>QV&xqZ!BZ7W6CoH=?^$|f{@AWvyv<3x5rdiu3*fUd63 zWakH6Jr+Z~)8utC+Y!4VyDYBYunR(FoR7t9j`_ z-xZ#J% zlmhOeIG^T)gf+xsIUo9(1|P|deP93$Wc)viuP?^pINK~-4hy-0^J9kXF5D&V_1AXH zHL1sKdt}=fU*DPC!YKq#IVKYvG&zP!HAeL^<6B6+4dW-wJ4C+3s1if$5qKiFB{^U9 zDtW$fv0?QPo2`#*fpFP~NRtchQY3LCw|I$B3U2RFTs*Jb?;?0)TY73dtc+MOZhL8a zcS_12qw&fWjV8q?uL&FYuz2jWCDXvDbUL$6ViP?sFXRfbg-Im19Exy)qY}_6h${wy zGpCJ>Wi%@Ji+3NDUX^fmyrvhAvk{pT?t7d`8eD~u`NzA~sCu?Sg-V5hiZ&-IxIjRvP# z>O-zbu>tB*D7wQa$}=Q20^A2R)2rG`RuX`Vf}wr<1diaw%!7yCqIjMja$w_WTu6MS zaDnZ7@$NA9Fm^WqkGMB(oEnqY5`5Fl(zsHRqcm_B*-!~d4E2aE(RCyj{~WXk-;Sp= zIi5SfLdF?R9V)~`?=ARAUU!# z6fZAK9AOL(Blq#~fX3)}Ce~cw#~2lGy;Vd+YMrNmb6_>j=h3K2gM0SXww15}dIbdM zkcxWTxcw!*b;c1R2;R;Ket|8((eJ{LuG+wn9)lQ}B|3$K!f0J$5nr6*x~lE6S>%<% z-cVdvqq5QiKN}~+#*b%U+({^|*VaOBX%Zp4a88_g;6Ce^*v)Of)ws*-8to%m(n|Gy zcX7aw5k`==xBH5@A&E{%jEcmgIj^gW35lauP~`8tLG8Hka9Bm*bv|+7$2P1shV>wL zyjLhYn~(sZ;J$frKDYzKl5k<+p*Ydw1v%$`p!XOTdEiKXR!Xke zC8RFS!5tG80&WbS$aViA4RK!o(Te-Q^%`*P?M^phTPiID3#T+#}eaK=M3(kK>sV zJp?y=OP&zSoQQ3Lk?E?}uYWBBC!spkueHtiO&6DiVx%ngdV{J_b>$ur;EB- zJGZlQd84pACWEn-+3baMGD9rQtQeZMoGYI^JYoqhsu+eW*d{y52$7q@<&a#W3(7d$ zs4l=mSV2)3t64%q!oq(Y9EaE3gZPYq9)vP;W|w2PI3rhZ4=wzG`iMmzv^Pq?^3L47 zWMj5MaNG!B)kg8&KYh@YG_33?q~K-~=gJ6<5an8fVn#5{V+@esPQk@Cpkn}^og67Q zHim?F{hCJMm&BP-Y6*>t=i+gEQYemJyFm+Ii?&C4oZyvEduRgMA5lR8&P8BAX3=Yh zqzz5r${r7_gf*FBeZv3_gO|E;t47pufRzRJAL3Y|ApSuxZbW0wh{&h1V0I)N+}I?j zV+1vnhU#L2Q*m4kU+hn&@<8`;SUi~6Lzkx(q9x+gIJ}N~0I+gb!LI21mdonJiX?)Y z8hk|@ceM$Qg5xRR!sz4%Hd8wXDl?OKd2Nw!47asqaep%zT`%J zQfZz$)Gt7`KQNAHIDth_wTfxP25k0_;Cg*fN7{uT$}RN9 zVqCFM(1q9e6o(gwaDeuD;n?W<2;*SRM^;BtOX*#-cI=v8!nmiGhsX$#90D5Pm(mXg z@KF?k3(13}$@g>)#qT~U*jNb_RcpeUOrwBu>{odN!QW-=#m$vJbtA5zIs#i#JN?mX z-~1L<-bEG43|x{2;Ep{6MWM8V-6I<8SUzC6exY*@Tq4z$cQRn^KQt5-9{cLGb5$NB z>kIyHpGeNS5i0)Kb?>YXab@c=mA(TMH(lFt#srt3LMoC|Z~P}Ckdj-* zPr0xs1FHwL))C`~ga z*%Zk$8`INM1+eV=@F}DZ#sY`nfNRT_Ux(JNYGVo=ddG&=JqTPlr6*+c;_P|B;K=BQ zI@vWSWz)4nY$C9ILTxr%tZ+(StHhvw{ax;mcyuSI_LY>; zDO4LJ7TLH%;J%NJlZR8#QUjcWU{7LfA>ONpJQxdL@Cs{>u>4c3h;fjMT1l~ScLKO$ zg;V;1!zs#jbsWv*QS^Xekp}eMp!SHA&A_gswL^?v$YlBgE3ch}s3?j|<$*2s#~=V*V!DI#Yf1piwtBVtAjDj1DX zAf@~b!JXV_?EntZ4W>}PVhpU%=Un;{ep@e;Col^B%9mV+gbQG~tvAElEL;hIAkOlW z!Ff!KT0w9$I3wz2b{B9!St)g1ct`H=zP}P2S+a6FJ**PDunm)MVG4Ng?RC=Mq!xwT zI04)R0fXxwy*co_gsN=V7pWJdf!T5zQrqa_9x@xJ+6beP!4qr62{OJGf)& zG4ko$Ri7tFW<^eqoR$|29=A=JWaAtdBqyI`U9eD?&q*v^kQ)VhFM8BsA~!~l$zAUf zav5J)WP(M02d?80xZn$<(Bn379J%A{|B@1jYsY6N3CXX16y!67<&}LKm*rnAm>v_i$4Gy@5iq;Fb5n_*EM=$ zJLq{5^2BgfeQ8}@OQD_caoG#}Vqx=m2e?!i@rATVc17V+;@1v*bX_f?phAty)#DT< zcib&8q*I(>T!3La1vjkDM5RPBHK>=|$~AET?fX=*h=bg=U;{^!FkgyJ9DdkV_ya0K z=1?pMbQBI@09;FhgBuoMAVqOH1#1HkhDAP&^*pi>QD~G0D2v`%a3*G?M#OZDe!REb z{7_%kUa#R47q@8IuGWh|N702riYo{Ow}Tmv2sfg5+`e6lfC6qwjla%=)k$tvyFAhQ z;HdY5H)N^}Y-b=h?Bq0w{9rH6`(8k5!7i*`e|3^3PC^(s3akLa)_f*U0#B7>#>)fU zW!${bgN>0hrBHBb6oM;RlH_qzQ7VohL#z-Rk>ZfM*Qq)7_25Tg6$TcNH~jm8Y}tB> zdyg=xCFBLER9O5aHAhBKI78Qi4N#0gDTRV7{VqC1X_W+*3pnQ4zX!z z3QFA{(s|9`7p@?U)d~LeOT7mz#%kbEebdv9I%c@Ms2!8wz$OZ315g4GM*6J zA^3eB$M0RR%{lfDx?7%&<1Dc!F5_-RB3s>pcd3(=1ka|$9+ zkl0SaRa_@1Rm9(!j*fuiSn`pbg}N)FM~hnN@>bt;;UTI!zu~*->L%IlH(w&$ zb+h9udB*P1oNU1%u|%~j#|Mg|&)>U<=_ag)0ju+SKzBZO?3lX|_QoFuLj}b7IXoeE z%*@e)#JP$09kh-|$Ic$|=-k<{?wNcJ@P>L@j;99TAy{*dRb(7A#viUd62(a>m2vK& z=LmvJ3Lb;@UWqmGgVO2bjhTt%Y&bI!Kln%T|AXKmDVr!b$s05o`^qrU2yi5c&LWmY za|~Z8uAF%8dOUnWm_m5NX>lOS@9=HGjdK#8>)DlPrCeV=^tq%^-`iX3?}XNu1Y@QgCXW+DoS#pUBGN9nz@2Ob9>RX*jcn$B+tpL7X(JGVKW?IN*2a13m`vbQ>{76v2`KCnYOFnaM{(to3Z*i+Im-vqzhL_J3(eeEMJvU~d9;!Eo zFC9nziTniri68y{`!Rr{(RuJ*ergQow32rc7ggYTn{}ljX@}g&E79 zEXYs6lcbc~{4_qMrY%{KF(F0ec$$=wnU=CNslb#!O}AK=lbaJ5G547nGju7~n=W&4 zfi6ESFKw|YEmfC|J?KoCi*t0d=O;x*O`rE{(p7cVoW%H0}su%9#?j%m!v(Eai$oqnPYZ?8yu@OPEZ84GmFa&t1$@*e^*J1X{B zL(Bt?u9~Qy6cju;WJ>7Ni0RKnMn(60W?61VQd)j~ZvHQ|7GpR_o|G!3fh zQn7W}VhhyDFcz57a3OT2TwO+*NoO<_=_H{36aH$(Vz) zFczjI@hU&$_|7lj%4Sd-W1-Px`FkJc-t*Jap~&Kbr9b7vitx^(aR*LKAFvftIJfrF zz`6Cl6Lh}Q>r7NhtTqlsoXkJnJQ?}9E9joM6((J7x-L5nmCC|ni8qoKr=})BdR!V* z4|xrAu>Im?`Du$&Ejqj{eT6z+pc7wtz;~7FseGLmI7gR@9p?A_2K<$n1LRRZjMm6|4Ar{?CQsbc5No~_HvHRhnM@I78qUIdCeO{prV zS0-J0?us0-FB~kX0H0X0xF8K5L%4Fp6mCHU6#L<)QkJDHhRaQsWob#vP#dS|QWod< zV^_wUR0JJt)|ri_OkFagWHOKL*mqv8s97e4shkW3Cu}jAjJZ%S-9d#9D|Lfk<0TXO zeCSb3mb^6QQKaTHxyczb%^5%T;h6Wj_cQRRo%2f!#EX|H-*TLKYMO}8a#!5Ac-gYt6x7iqs<_x>a-JkZPg+5y z*bYI=NqLK%m4wx(_gQj_4D1dBM^$ruoswx>=G+Mx9X0K~58<7ZrH-vBsGzvS{4)IZ z;H@x5%8L8~v>uN436PSTo1ZEoGtZSH2PFnlU5OdA<1M2RV@2 zdmIRnl9r{V_xe`vchPM1-f8c*U95Qjo|ojBOu5;vjQn!ntJ60)xqhA(dzp+Tj?MXK zA<*V3!A!glUpgxUDKd>{7M#K>L6N3$t#Cb?9eWo0O-D}0cBCi7ip{*fy*JYjh=q8Th)F!NvLBXYf7&$ynfs zMzXPWRFwjg(yBW)h+QY88+-X))}OvxjX62UOqGhM>h5-F8|7|I`HOQ3l6s$@yj(5^ zm7(%Jj{9PsP`Yo-<3`tz>NpElCf5+i&#`HBc!aN=DG|SfX3FuNv&C`=xS}FDJ^(G# zb5m9nK*^unlcIHz{`9n|^CPG0q^!CX1xy~;WQ)qBV`IQHVuJ3M3-Zy4k()uI%SCr4 zS67gYP_M%dL=Q+LmZJ9lWEfF@WHP423M4)VyFJkZ`AP1IWvNVrSO;apqDxtZbWz7F ziBhsX4 zzVA871)(@oS5B9Yvzj3T?Xx8%cNzMF%=F~}`KjEz#eKHqp)v0H3WF!pB$l*yCgTo*3)@%W=O77#}#{$)1sl zX<<)2{p;U^%K?jLV`j{pHT${PxaWU6XRcx1`~|;@UzqU1qQs=+#Y<9B)6z3Cjaf^V zW#{DPEzd77ttd3FwEXjnFRfbr@|suv<@f)(_SJQ-t^dOxH@sf-#>P!=zE%A8JDdOQ z-T(9NTmIv{t?zI9;6JyQ?AZBVr5~1+@7i7Q(Vohxz571i|H*+*t3Uhv;Gr)L|LMq= zHAnxu_N!xc$Ls&x@R!EFHvP|u|2=u?^w(#aTh4xS?tJToisK}g7o>OijFnXkHS~0|l;Fm9 zX;i`L_~<`qRHVBm982s1hDUr8Ju^g1ol#UaV@|rrh(v7=Eg-tH;+=xr75VJUhC)b?AIwkg&hbAyBAFuluO{rN+R-}tga^7N5H-0)cK~ffDEKo}1e2K`HmLta_ z#M?UNEd-mWlDwqi`QfX&Y-2&ecr+=w=#MW(UpqeyEh>i}(6hoY$3wrsFN^LkKboCq zvM67e;S5X^kX>fdh$cwx3w%24W{CW++Jf?%C%BX zN4iEaFA@(I07o03>{JdN_1;&Xk2sIpyVeNddZ5_!B$@J8q#=D}1OAX2a^J~NRtyuN z-Fnzzc`|+9R5D;@0Im}8Z2o?wOV7`I0UmAe1HpAGgH;&_J%mTajU zAHqQYhL_Z;|9MTVnu>o<>#?C9hyPLV=*CAi|F{;%2b697G^#=3zsPX?np!ik|82EL zzrk+qE?*d;w!6Gi4N%<`FFX1VP^r39b~pU#>h9n+-0RcT$p`UDe5$KU)v3CtInBQCF0w|ic= z^Q3zY?|9=8b)U0#ym8-S9~Q^^>H%)SK|5;UCc<35{gJPSi zbGT|awhngdPXWcQ`q@?Lj;;5y{ovTO^4RaX>PJ4ct44Koxw+X@UD)Y$mk(W* z*VD1(N7WD>!d>;lBfL9OoUK=T0}YTSXp?H#K2yLUVA zTquXlZYp(`a1uE1IXAa%@lpPzvq&c{3Jxz$4DC@rJ3b04h>!43cee^xp9R|E3(5;_ z;7(O`?&7ZfF3iy3Heisd9Z20b-R$b?RP%=Fy8TV^vM;5B#B(Iu?Meaijf2s{l@ zuy=cxAW$~o0Yun}z2gi0+{9j#V^a#S0znqFM1p%eRPOeEaQL7bH*VpJ_8){S{X2ey zi&g!)Q5W1)cWpgt~FCu?@M9a#7{T*W}t0b6u-Dpw0H-SFDpbr=5$^=^BYbYK^~ z1|97}R9tsndi5jS5XC+~)pe_@ze;tp)2$Pi)qYpi2}V{7H#f-9+11II)UTtHRa6$| zu^bzeM}Fz276J6o4?B$}K7sx6goQxjk31`}3p!ARtD|lo(9eETrNXbq-EPOVzSVX6 z_D!6hdKfNY7bL#dapyMPgaSCd@9pjb+wZ7g+#B|;0oE>T`l0Ja7h>l3sv-TP^}6i{ zsv_###fI*C*m-y7T~-j3n_YMB+B@4>0ql1>Rb2>K*e}EzAb8*qb;lzQ@se5u;~p=G zbChlYo^&S9kSB~fj2-ruCoIj=e*h{Kj_HmN)bYpww{PtOU=FvgJN#pZSyk=>aN^gy z26f%;2h6TV=m;p`-VO!aRsF8o-8${$>WCr|QnN?z^3L@8RZI zv`GjCIPzUw?CYwo_D=iV_Pgz>yIt)a&_LBsgII*acC_ESce|@&0FH2@OFiK3osPTi zUHz;b1KK<9sP5i^XS+J?g5G_Q{Rh>x_JOy5=(uz124k4GrfyvW)cCRrA3!npH@YCu0U9^8d%TkWoLx#yRky{3Y#VcJo!G1>=2NR`I575(86 zKYq+nT;FnRQy$?zsBwR>LsecAx5ql{?t|_@DK|H=I?6YFh_IbeNJJvUIcN`^VJl}5 zZo>{)#D(W|LuKS%?{%TF-xFWJtM58)Wxt8@kih^_cG^+ze{xZ3J$8bxu#Er`%qo%a>awci4mAD&`*rNItFxQIq(21`Tu-W~c@Zv=1MQ3c)!3GZ}p3E}W_h&~Ll!x5W`0`*%D#4=5`q zH@kkpCEsy;Lwv9uxfl|ayQ*$vWx`81IaEOVZPidj4Ma=S?0c+&A|A@`{w*XA=kD=^ zyIpp7JF1|)pZ#9Hf&J9|)a|zsoI38^x{Ygvn!zA!@9wYaZ>LRrik%hz9x6o7Y4y(k z@IIM%4xMOoaN$+=aJiWu^pqdCQxQzWr(qM(Tnt7;P$NINr|z$ISG(KcFUWHj4=@WF z68sOYu;1;%bzr;4EXl14;vfhjK@s`QZCDX4>rK_qn7T4m>q28G`~f64MpK-cKK$ivPUvfX9)e+%Qn2j1;N-R2VDr_gDFk{pGl^V}JE4fBcW*MiZW#Fj1u%^RxfU z-h04TS!Dg=Gf%rcxd{P6%@tAU2?$app%;M!5W$)tMNuFTkYY>J-IcW^SkXm@9c!?= zYay0Zbb&;4u^Yq&sN95JlHA|-JM-KSTz2j3RNm?u{LQ4gX6RR>s*HZeLadVchR=!Mbg(HYTM z(K*q%(JP{hqf4Soqqj#_M*kFD6@4K3VDzEr!_h~guS8#sz8Ni#z7>5p`hIjn^n>W% zqTfY-h^ACGuWni0w|YSJujZh9#~USv!dpXnmcRms`<3$yP7lioW1ACeaQ#+ z9JheTaR;Ov%M419EV3NimYy_`6$oJNH(gZw{9#f5oG1!~fTK+Z0wEC_CG$)JeB)%E zZ6(UO%VYsUQMX*?Ik*YJeo*H4yx2^AOO~1@M#c|h#BoevZXu3l`>8Coz2R7WOJkki z54n?#YTHJ5g^}U&A$;73sPJpVQ;#%L)2Eo*eB@tYmZyF``0uagl90xxvR{XT>* zIT>xGrV0Xyx;?GmzY=5cJYpp*|>3P5}l9LgCaiCn;=aE33 zKZtyP2^1;3M=-~>Q7>l)wVm$*&iZ*i2s?PBu{kKbUc8UC21|XmA^l$lVNcl23RT0N zQe=f-f8cWzF2tjuN}nJ2mQbnfLB6%2F!U64{Svk*d(2NLP~|U5D6yQx`nqQlwyAP| z2f6`y(S+)7qECv`6Ty%0g2W6z<^3^Hhw+%x-#Ak&|9Zx`rOTv{Z zT}imw>-WXP8{xc!M8wOaN-y>7k_37%RyR8-N2R+tsnm8*-dB<;EfaRw4BQ63FDb|8 zvxOB%UWdQdD4cf5!Zs~wo}4Vg;UrQ26ho9R&M00w$b@dYAaGwkk6jBA~^;9 z?2dL?pXB!7^9wo64Oh1ZALMmO)B4=Z5b6985l%{q)&D6X5)u(_orH9tFJcIM>q){N zgxoVaX!>Jr*y3cJ{|zULaB_02u46}(8|i-65&588txrLS{I7Gv?QS^oR84=<4HHfi zDb113gQtmvU>Gm-PCB0}Iw`&CjLzUkeO%R9%m1QtB%Blwa($q>%)f25xAIm`xe(#? zt+(w@%bd9P`^3Rndlq=Z!Y((rA(glQ<9m^(RL1bsnS&P&x-kQD?!O9=7*5C#Mm3N% zj2qJLoio165PxI>e}ShIL-;Z{^TZRvDYeQc2qGcK`M&M6 zQpnuA@Y_Ka-+#YA zd|~eilqVKsX5~im!-XP0oEyo^N-PMJ+k3jgji|w_BXPL>h?MsjhcJ!}9vOK(4A>t{B!YryWIUD4sHQ6F}Ic789CRuo+sN0IQ z6$PIC!oMd}j&*2Skq}>Hg5eG2DO5!$7R9WRMPp}NwO8b3*eCR?H|q*Kbt@}MItj5J z8F{!LRtA?{1iP0DF&L)rLH7~dp(RU3qE#Kqhi5EVvIYeTev1mj6x-&MxoT%vSm$yY z=WvmdIWtRm_pblo)}!JY)oSF=po%wHqWm0q=_T-jmGHcK<=+M7)#-WS*A6EiJc&8P zuAegHoWqmImj}-{fV~ZDNEI$wQsCVN!ZUDzw;`-5b~MA9a%n7r7XbHf67R@?KEwu&fcDC7{(!Qzihd@F zk>ieoOP16Y!z5EmL|_{fp_DbqH*uX?(62$rEI^&1-sE8*7ofOK?c%ahWag_uwRrY; z4klexF4o8D!@k33Ussu4B&-A3IhZA49N@KpVrCEDLnYlcA+s?{}MLhekf zT$_+V_Mt*vyVqQ^BfS14Y+YP0M9ZodVYad@(EJ9r<`Gk-Or!{zl%!kt@ZnidQ$+9J zpnyc?n(ac&-D|Ag8Cn0H5O*R@wW8W3>q}2VD+TU@c5)Zo*U)A&9Gj@jK#YWQ_QT7~ zg4c3$9Rv#d=;V{HeOrk6q}?7i_Q_|DWR6+qFKPed`O&QJ5;Ka!qAY7=8pZ^XnRQtv zHibo6)&+4q9uNMl=Y8|o9&@iOJJMozj+O_J4&+~nkoi5#5L>T&*07O^#MSHIJ9`Qv z2)^RZq{z-=JqM}*2zewa3A;RO2zy1syTgZPm#W5H7TyF-<4|ra_H&kfXv);8ER;ze zu^}|EGxdFaIcDbi6}zZbbj|5#NdI-}yD!>$aGd+(Cfhm>K<@|aU- z8+~UVee=LEUsH4}ICUy50s7p17}q+HnFSFjM-sK%hEfdIl!mB#mn@lus5<2S+f?M) z-=RYoQT4FR6q?2r7zc#Btsa%1jY6zrv7J0!HdSu7$Sk<8niO9(V|~@+MB8Voa@y@Z zRo?6=(AC<{Oyc0A4jpo*K(W|!z=7G@8 z+iT>rM>CMI@iVL=e}Ovkn=ru55rFG6Q0O%!Fk?kDOW3g$yTc;46q~YdyB(?^2513cUpTB z@80X#^QAbPn-PjefQZ}@BH{``1kYiNH!vSYQCPB$Aa+Foj@?hAhW60D>6Nr^{#`V6 zSs9I5MbL;5M8DQ`il)5!2s#!T+&rjiy)42eU0lM7 zjg|`0sp{t(fyVPG8uilk<;cRL8t@T7f}VLO_u`Z1*MOxiBlq`b)7U~APeZOIVuF(A zs^VwoDT`=b3S2GRAPu!7(hC9@!NFqIhJ^B0LK&)`p*0~N;lSP@a# z^WP~s>E!v}LdjYvIpr`_E6joy+y>7$EG~$C9`V%PR91plkHi!VB15P}Ou=@cF6?LP zvw%#XO7>na>UdB35e%}%1F`qfLeaD@S$cHI0wK8|{?B;%8L)K=RJyn3Uw~|dzG}YK zHi>Uw;36xwc73HV->kbH1wfYh8GMNc%hjIG0gP#Ac(7rSpe;A6sRU*PUxG8CoNqc& zJdnwZqa0#IAQonjy-rtK6(aU0mY^x2uB!vvgr~klV2ZX^1fSd{((*7ar=7hQlQ?Ko z7(OI63Q-vOn|OxhPQT)S$UPO=hu*_il&dRIu)1;)z~Cs%Sb=b28OSIa5!@}#EMa+y zQ4ty9n=q6$k8ncZIm$i|q-HW&4u5@N0ZN!x77^*|l^j zR7Btv=fKNWjF^Niv044qxiR}-&Oe*kamt6-n79rp)3P8OsXg0ZW)3qSz%e2{t5F0^ zfLE-J$bdOjiuFhO>=GyZ*Js!IBdl-nz&30R{arYfSBqd?S|l?ZD7s%*+o&Y}79s3r z{v=n|6^YGg>)1UiLnh81aE`J$XxW`z3G(UnF56XMY>stSUDE?(> zG^4l_Rw|ANPYq)2y&3|oQpMg*J~1HruE_rEnth>4;c3RvCL85234r2+vp>CNpW*@G zxE?bw_V7Wg?xxKL6DmdEU}l~$4M=kp7p!J#Yg{G z=RJhCKjuzpOA&PlQHjfs16H@*gH*+h{tM4`HJe9Esrje>z16An%Lmu0iaM5QwP^QI zv1qs5TitHEDDJ)&UwP5@inp)N@a~bj!^Ofp3TDs2;zrNygX&knnBLeuYbxF=t}HGP zYsy9Lv>L7^6FEO_utf04=(GVEu#M*kedtB=Ses=ybm+D2rYs2BK}yf_bdt z8rJcCUB`qJ&8k~ck*D||6|L^*)T)f)5)mpd#_QmOt*%(LP8hyXi$w)J#K!c^KQtyb zE7ib|(PlQLhkrYC-`=&l_}3D&bhK`0-T1%pY~70XpU$adi%x$rESzW^n#lS4F{M73 z`}pO1TUGs%BE=b) zifrn^mjOik(R;1BZ-x9B+PoRgEXv2=ouxI~%h7C?@KuW9a2l>iEhr2N|2B+a=3$P! z73<)EU9A<{E<>)ZcNZX&SnP1~Dd#i0A~nbcu!t?r!l!tQ!#_-!oQoH>=(b;!P3LRo zOZUIAOQh`+HYS8|3S+_3ZGUd_niKpFzgc9KWnqgUtpH;U)H^KvIO`B`QF#EdZ z6;NUk$DqV`7>f}n{g;g!He&8ls_%>47h4ZNu0PNrpE`H1?-QFG-G_1It>W0B?)6!PM_NOv2g?pt+yL>h zx=ytz*oelnZHQ1!I983f15_*4z@gs&39$pnZ5uPK(mkL-tGIS24pBT9fsF>wIwW5o z)2#^vqHY7Jiq*Dxu7d46_I5Y2Hh!wN#i}%3C$RN{)pQnyC`G}LRYoy^BdEJD02#|^ z&xsC<^R0?u99WCk3;EQDG!_0+uh@;jEZBMDiyR{+Y~)!#6nk#5$FD}4v}11x0VNaA z?u`yrv0MzYiAYooMHs5w8+jmALyJQ?Oy3u)>kvUl*@mK0PF8G9?3K%62Su!774pdu zv55Wjmw62WZsP!gkvVPyh&lFD0c4!!5#Vj~D2!<}M+JCg4%0dZ=?ly};Xg~?K2!zY z$kR=fElSB*t^5Yhp@sRRZJ`hO=5COXh5xy9lpcE6wVr)SR8DT*VTeRtq4GBfh-ZD( zYvMpL0Y*Jj1;7CFPB%HXl^O&x3xiqk(U}5(8Y+D(hCzga@I=y8P|FGCZjIM>h+-It z#kPwcuM$mDphF^K(L2eIcBrn&_n_6|Ins9AIZ zo!k|sMBmPF^0yC$0vL|%&=vnb7ZgHuIBh=W@IU^zqE(qThJ_i6ZNcystIvQJ+ea^U zHa*qo20oJ{g<-0ynmLsMz*MRM2!et)SP>a8{vhJFAd-nTIqEf-h!>^s zD`m_60W4=PszjecjF&tOfJ$cTH$3N^c)ZN!gu!S`YBntYoi0?|cZnxV&_Gn8Q~1X| zhYyLWl=W`MHPT3v}Htr*}I#}ZgSYIL0~+KTO-IuJyqYwp*FFiF;#WyTUlW&_Svnm zPY`28k$i&co^4}uc35cE)^}n}eXOV=hF5z5<|x~WW0fJ$yDP|IBPlynfv#Q%V`46V zF6rePZ!qgpjE`-&L9Pc)i1Vsy!(K%sCMLM=QH*dKh`Y@Y(E6jq@gO(a2M=Zks7yZ4 zRY}8}?z7wU?vX!MivNtv#r zyzd6XD|K5eURrM3=F9WA=Q9_J6~$mF4~JnjJ&4sUy*<`EwgV%s@k4ff1S76!26ZNZ zKQq>op%LA85$NEXNWOTwxEw7wo?kp4H#-LETMGLHyQr+?m* z`q6q!vc#IBxg`jE+)8TnxI~x5P2eVXg~dg?8O5`0Bt(Jj)Ib4HR@Lz{5$cGeM;V}M zQBlED$0D&>T%K0*vWAGA7*aecR;6Pl98n_?=Y{o@&xCjy@+4Bsw;LYvM05yH4e<>B z%Max8L0@p^?G24GK5bjCr*ZLVT{hX#=&1_*e-l>4s;lY}`9f2ZVJ1HIG@kBhS+4Kj zb+LlbYLyu=oz|JbT9u4Jgzh?KRKH;{)bG)W<9#Y09Ti(sA{*_*D8^PQQljmDzn(2B zN+l4oGaw#wNC*T!1b?|e$-zj2`Nwqhj3NvGmC@7d@tWV8us3rX0#?U-cE8(^oW0P9 zszA>K@EscD3=9sj15t!Xi}(ztWyqJaQB@~y-+_d)!(7tELJ?K9iKt^FO{}Y`Mi3D( z26+DSK^0Qf(dKw40p_cMkC6zfb3RHRO^Ife=$?wNRtMVFis3l#XwrJ(?!4L!T%uxB zqER~ZR!Zflgts>aF$|Wd9oVDNHF>3aOO|4wLNVF!*#P~qZSWJ+NSMwZg~c5GHKp{c zU@0L!rDyHVf?tKv0QtlaKyRf0gA#JUqBJT@iT@aU7@!Rzh#(FDpTSGz~yQl=}UTPK8Ve#Gi&N-0b6lSyrGxt3r1? zrwZ>0P+CTj5`|Bt08~vEh8PBP*-)*CiV(|lDfL=l{0)YjYvPomI1qM$BRUlE4lIgY z7EP~0^WQ?%tI=B76;Pep#c>>S1|f^#zz<#A?^xjP+_( zKIZCpE{q+h(92GdU)wqZ?|RHEOiaSZGX-ZBcC3Ew%~7^uSp{o))PSDMv?tNSe4t@w z5_Ro__R|3A*mwo;&FenZs&^tiTC!_y1TF+a`~w7n%1@^T!d%JK zG&T?zzYzq&e>V@7NK2-q6F~p%JfN_fhk{fdzk&Xnc`yS!$D|++O=5{$=vXYrBKN5- zjzdL?O~#YC4F{;K;C7jM{@l4ftf9;>-fb9PtBU+33=1$GE;%>_Pw~fi-)^k>YU9RD zv314Ze-iQIv&6`-kb8{N-SocaD)ieyjmQ+C9yM1|knF%9wW{t8yxorCy%mZb=@HwO z9Xn#i_OCf|q)+ydit?M!4Ae!Bn#skO@~^`vkC!TjglJt-culP8qjLua>dHPn(y!go z+}IIWbr2HT#cIrGZ54V)YE?ZCrxf!25LGs)cLSBZGA78?u$l@EuetB=n(D+u#mf&B z|AzuMfllrY!di4;sSbL52V``9MRk`>H!+bZMb0zYj zN_2?#oWjL7U*?hC_-O-XJl_jhrGQvHr?hLA43=<0D+WHJjVG$Ip3E zSe?5Qh1jv>E5Q>>s)*qW?~?U3EEu1bI*4ua#9tbYUj1NbEkzPM|Mo}rmrkF{-#;V3 z#Y^$)G}XO|GZ!qztu^`%&3`Wk7Y?Y)O{dSFGf!V!KnVA?;9@`MQS+5j=RYoI_ChUX z_Cj3$&`1&fB733w**kv+&e%B%G>Qxc8B47foZa3|f$5?95-XFOlmRW~rasX6Z*32@ zKk1~=C(k|Q_S2s3{C?M}?t9bCUg6%UXSD6tc0kKP34>#qzYO_g*vljC9Cg{4L1%f# zZ<=sh&d5oJCqFvntf{-E-EdyB3szm2mV19*=;CEFzMk2C_HCDZerdbQ&b|EBxv$Lo zeE!~i>x$rlz(Tob_o6LVKC`%R$*85yve%Yfa+Uw;hpz5*%`4ZOe(j^zhOV1?UHNr^ z!m|o*C@d@7QuuS>k-}KvzpbITWpP6#OfoEfb5O&*LC0>c1cV>q&ql4`g1m*e8MJ`c zL+}!U=@E5zMFg?4^(~KaUi`9sK;*bPFmY{!x+0??gX!wBLpN=t)13MI#XWA5ScVH9 zcmeJB5#w_wk2!BdI&NPmP`6U3tCNn)0r#@vn!H)AkRFjSaUs0GcG8fkxkIOnRQK0T zm@>WxYnG{%2I@kIxGcA1aR%ry7grk{$ASX=$6Fb%Io0iqkb9XHFA5J55 zRk&cwy}n8nt+4M2e*yE8VlLKaWjH0C$C80HA=W$h*uivW)Z)< z>x7Z|c8n9UMDkF5W5(n5;Yq`C&lxgl%#fkuM&#)mQ}k`2IsjKctL-kFg*fBL+J%OprVVFry7x_3!v zgDI)M&7D$Q+HtuT%vqeTF7Aq}gIh~+X-6YTSLN#~36C)>nuA;UrZ4>WO{!5v#xGtP zscs)pmy)sz;L11m3R~VT5}BEgn=IxP?RBF~?JQg>K*R2gs=$O)*tNKX$9#{`_97?ko4Iv;CW z$I|L|F5FJys!;-s-@3ZkiT$Y_vs7fb;rf(v%1fke({`i+~GTS&c)q(_vqClqerid zUOjO+dC&AE`3o-pCs8^D4<&?mwKl)6DKSzE``9!=snnaNeNx3k$!_Zhoa^ug=tA$1EM5tHZ2f9WH-I zhnF2vVbSk;3=w!LlV_;#cc0#?!daU(F^uGv8bcB8SUkEf!-wu_Jr7~l534dBLRixN z-PgAw?0xF~%Y(y&tEVXa?Dtc9FCHc~Ot@s;TTcxWXRgTme%iOgvTl88X}hxK!*inB zw|?LHtl@Y3eY{gqT{Qf_*l*uAy1z91#RooLHf-sx;WjdA1$QmnziU_B8t!@=5COZu z^@_6=s2ij^oU*Wkd&ScL+(nJoFDcz{`QrRpkyB=#vhb9JXlTQbCMSFHm}v-mP(VY5 zo%l3h4Zw2z#H{gSH9RhLh)zK_k1QCq$-v>e zM);$^gOAh~%Kv2@o3d}RK$8WUEYM_uCJQuKpveMF7HG0SlLeYA&}4xo3p81v$pTFl zXtF?)1)40-WPv6NG+Cg@0!*{fhG$yS)j=RO%`afK$8WUEYM_uCJQuK zpveMF7HG0SlLeYA&}4xo3p81v$pTFlXtF?)1)40-WPv6NG+Cg@0!!*4O zi3^scm<3k@d<-&p32=cBk$CzGOc5!E>u4RL#pC|3gz?|tCY-+Msou%+e*EPdTLk{E zDA%M%lLh{NYJue#6X;4@w-O;;sq5Avq+92@R}s>cyKVzQx=Po5hLCQX>vkZdt9IQX zgmm~@=gN5z(uG}@ijXeix=sk`GF;aWAzha1MkA!laose8ba}436d_%K>y{#B6o{ zMMxKMT_=Qe8LsPxkS@!0qY={OxNaIkx;)oiijc0rbxRS_6}fIXLb?*ytwcyy>bkWE z>DIaKRfKfquG@f+uF`d%A*9>px*Z7Vs$F*oA)WAO=S4^tc3mn$x`^vKA*9Q2T|b0$ zS*{z6kS@n{(-6|-x$aVgbOo+kijc0zb;}XbmAGytLb_7dtwl(;&ULRMq$_vb2848# zuKNrj-8R?lKuA~ZxNb^B3jkM|$?e-9J5Z3vl^QuZ*5O`$P(QcXo-9I8FSs6g_cYP~S+w z>5Wq;n%Ib&P;4PB7Av7=R-y7RZ8#MPvftE8}^O00b$(IIV6n!tuAAX;kiCPQ5esE?-R!OR9=fCE&JdF zQW(23{lds@RiY(N-E0c!wSSoALEwo^F@>=V8JMZfhJ(T6o&UydkZX2KxrhYb&ThO2 zsb;rkR}lW_e9W&iQhrDH-LVP68rbY-z)m$h@B8rZ*X@OsKyMJew?Pt4Gk_*z!d+iT z5?*VBw=WQ%{d|%bSw#-tet@HfFokfQ1HmMN(J=*oJ}9f%c)-picq)g>$)$2AAf$7k z<|bp3e(dT9dz!O?aVzOPM6V}vksH5>rta zw&zxm)n2vdx6;F^J$F@X`1>2UFKNnBL!>oo&z5e_mTu2pwr5MXXG^zdOSfk)+q0$H zv!&a!m+jfo?b*`p*~|89>GllCY|oZ%&z5e_UbbhuQG52WX?WSFZMRX=FkUulTQ_Pi z8?~()wTV?E{=z&xLXjJK;O~PQQvo{XC(MQ+{Fn3#iv|AS{lj9Re{r9%Sma+mAS|x* z-v(PO_W!S{FCKe_#NdV;6FuP4gOQ*pOM#Tax==< zNp3?fo#ol!=`J6HoF4K8$Vr#op+koJ7IJ#Zi$L!sF9iK`IT!MK%Zp)|KGFevhP)YN z=_?OGW% z$(6A7aQPtUBjg0=JW_sxyhh3MK_4y827Qclz&}>L2>MyF2k7Hu7tqJcFF~Imvmhs1 z4nx`;c?-0fD1FdplB`BqCd-4c=h-p=@DzC~(w-y#f?As@zXSg?c_I9BEF@lWP$>UFIS7V!0Y}X2^WdXUfYUd6s+#a%Rhg zpkE^IhK85QZy{lh901B?@-XCFESm&z-k&oX%!xm+cCBKNDM1^#Q~bd>j6`8c$? zPHqIHP*#AaNR}b@>*W^YdxN|X*1J)zLcYI~{UHDM(tsv^kmJF5liUu@<#Gk&|514F zf(WPDbm-c?7RV%!3%8naRmxa)j}a zOfF#dX7Cn7JuI&TQf&r1Bcn&;ZbXO#VKbzX&KUqaLg{XEM4=!>Y$+6;7svYwn{Qi+ zR`F5cW1M381AvZ{bfY0s&qPL#N^2PmbIPs8tI~I$16#a|()>l@Z-oJV4)AMA70dV) zWqDn}UgH#0_!|liCQcqUNxZ4xaN;n)>lK`mIC*rAD3?z_WU8?oHhoLcI~pIL0^e3} zC*xPp-%)Tk<7-siy9&-Q-b2m(Rl&WDJ*e3C6x`29hCc5rcu*qlQx+TKJCL81I2`Z? zO6SpuLxxWhA1Zj9@hj5)O@0lY9AgwpyHOqloTuu0ldJ{2$Pj2so0ZJv+Hh1^87?4{ zMQqyQ%{Wowk8}g}k)UF*oYL&3FtOCaa37D^6OXZkxt%d2sA>p$+%%R*J%Tn?AjlG_}-oc1(bwOp4=;s>)P_&u_Vb28c&!J|`3FBi>I0h=Ur znu4;)A+06=w()uvqBAEo-f7M~poAZw_c%Q@sj=Ki4da@>0MC2~9^S2LQu8$6z)p0v zt*BfqWP**q}=3A_XISDXWO%oo7!^=kHt_L^O^ zcmRXK20z({f{PO(xe7}m5t_G9Z0Pnr@NeM0fJ-2mOa?tphCcLp?gWj!y9Um)90=A* zf`3=Sa~+UG%q~K3m`$|C!15fkSp#}o2!C!Eg(r^3&j&kt+tSx3YS1KnGAZg%2Pg17tnelG9Av72INct1Bo;T!a3+! za8T=GjD~kmtusJx3*mPhQ|pdnYTcpL>iQ&lh5REkaSa-1j=oe#yc?Wc^)AGO=8M7( zEXH}r;~coqoCQ~i!eKK|R||p8gCn=N3WSz2=hU7Vi^L+4bymj?!R0~}b?qcYi)M`o z-4vlEXPivdk~7Zh(H5@ffKEy(oLm*ej174&Y5geBVq|g)TtaKs6dpDJbr1bA!*dE~ zk0FxNX~-Fbu_T|6mUFh2li!MR{tA}2C})ei*{tO7PkLNoc)kYhD@1;#<$Q+5c1c_4 zsO7BEaxQ5}IY+^AkaBh*4S5WDlrzWh><29wf)kYRz#^0@7cn9NCs!pP7UjxqLpeRc z(p|AOE>~;BOgB6s&_*M2I9zfsmqF>quKJc^C-?s?@omROb6bZTr>fZ{_yqJuwqucP zLRRBkDCFGa?&Cq5g&bzU!Fu;#V3!S zHu+&8wmSx7D*AS(kERdG65@4-%|p>&cY101^SAlMN{2cq`bwv#qPNRMIp>+}zC+Kv z*v#stOybj;tk}=r9~Hnezmk{J4-Ju{-EM>A5dco9d1nI7M&qY#GuMteWMlkgnK`t4C8Tf|wd0+^*OBHw3{rdUPs(k`2 zF1Lfr?4aRWF9qB~!=3S$LCk)M{mAqF62OB}GYQ{MI8(zLF93X&hC5FJd|t|U^4vl> zv%{r?>#qU)k>c@iDEIhLPbe4%?jT`L56{0XpCdD`G> zn=pDnRZlzr%}Tv5P*hKQ{{rf5tcN5|nx6}B%jh=+NF?wVAYS9-vw)oBzXyolxO^&* z4t|a|L1XJUASWwn3C6s0lZB_F|2o8kjjQqU@^oo-8jw_@Eo|lKs*p}b>R=$<6w=Sg zCel5L!|Q0{JR&`UG~+m<3p35|QRy5Jq6O~*m~g!+T;fl5vXI?_R{;y(ItuUk4L0G| z!IIPh>61mXZ=jo8p;(?o_i~tURf>)B%jKc9pnw+?lW_%eW{Tx4DM98qxcFWyk0@lK zXg(g5Bd-nJ1vdRk9R)%1fSYF$Uzr63wB?AOp{E>~i1Z4mQXT+HRE zWP1T3%HV_@%Ew|wG2Z|dJr3@RGv}#1KLq1@%yZ!)k=KQhm}hw2gZb>!h9_fVffBC) zS=;VZD6TY~s#1T8lwYf?2B8!a6f^i;=8M7HGJoz&At$tC!#)JgeQ>G!qDi22P>p?} zu-`*_9~7Pqjyz=47U|_GTG8r>20y4ZHAq540It>JD8C$>ipGrzSi~eoUV!p;?_@4Wns0^|9D5@MA*1(Uz~&nl zCkvxbOTsW;6};dq@LR?}&aKR6eTW|9M%(zJE`n-;?DQSZXwHwFe!gtL!sG94l+ zERjf>!Tg0q*5H%BgH%uEd?tI4-8{?p8k32{W#ptMtQ+Cm1cO&XiLhtn%Ye$Ay{%&C-TbnA9NtYl1lJ!4ukm!Pnj*rNPkdnAr{viqRrn8_a}2~SRN4BMQ!y91Dk zzH@}yDbPAZN z(zF%Lo^TIK~r#urUPHcZy_5b(iC?~hbdy`Ll7x9~Ub66>-HJlO=G~Myr4<`jiuq(~NI6H% zJX3`|8YvUzu{M_b$@~a#ZG(i{GeF4w+GxGM_f0R^KoA6DASo@+N#uCkzFpBy7UgdKdsom)5eAq*55`8yPOyMX- zsoH-VqJ%G*)TPtnR1nyDu9(w6NLa^?aHkSpNUExQ-wGD^vXTZiUoqH>D;^_(?MgQ; z-#ThG=XFw5;Z>7Mc$>T{JnR!&;!z@DAVtpbv5o#3m+Ok*a@04?i?Pml9L6+4ggAu} zRx5xuV=#hoB4Z~5J}C*ZN}7TQn&E9Y;q*cjEwdF-5_4~?k{qTO09gkbXi`ozu0;GKW3dn?k3&3p zxg(#-d{{!09-klksVqJRTA@f58>h|ES#0b!)$I5^ZSziO9iqk|kzCc$1KS+F8hb1Q z*djy7!-Vr}N85Pk+&)Ot4=C03&=T(~VADAVXbv3B_1ESUycpPgxbT@XlEq(JlXO2& zwvjN$=)ZO%=`EnI!L|H5gnR=+cqp>j6r^>xf&LksIE6){f~x-IUx!PmsLHkn0KUSa z^j*R74OmQiD4f`sku(UjI>a6&hd8y6C4EKpO5&6(SA}+?^*zH@#wP<#u6hjoo-jVS zJTv|&fI+O195@d*DxR775=dQub|jgJ*gWqB5p`pm*JDD&>hYGTxrn$O>adCyfzjfy zVpF=s^4aSEg>FMHzcZe{nkKJ$nVB*FI|rbpi;+Nwl5}BBlDIREgW&lJ`jpRN0sIW!brbGZ#*k zed$!TzTX4A9ni98 z9d+4V%|)mgsvtM6!62o<%W(~IPp1Z3k=2&Q*{%4u*-h8F@wM@&W@h^bgvx4A0d2n- zhTDlxg1QP+o%!k53{b_N*qfQ}LdHKb^Jl?96LV)pmGw$|hdg0fCky9AFf#KFnwfRv ze-k)gY%D*=%g`OL{YYlcrxTo9wJM(Z$Ue-RGwUObOMXi{^M7jS(Ylm;HEKg6qd~~1 zKQo#Ms#>|GZO?U>eY~;hd`= zhqmy8czit%6#g3!u?6n=4ZB@{*Fr1z{F9UK4AUC^jKkB0eb}03gbys9#0btMhu^P*zkuE16@R&COG~e!SRO&O!x4> zxk%<79&ir~nC|AuLdNLLlj9EznC|%iZfDrb;hFB4fJ*>}Ec;Oe3B^!NW+V`{&5l?= zIovazbRY07a0Z82;o-jYc|Q?{Gu5>WCN7&pRrdOMMHQ#v|HO$knK~C2+ns!SE&s{tp3A8R7j93C}EPNO&g`Vq5o2 zmGBNEx}6E{2LqM$KNe3IeiwSlK28w`m^woT3+<;*JC^1NBzY7rX*nWUlw|##A5b00 ztVv34p=z?*W4b2u-I~0#7xr22HAG8YlYYHS^y_7!<1Q1=f+)XUCi?X<(P6Ec{aejq zj9xPO^_H09E)xqGqifZ#mx+G8Omy63A~&);w3kr|&tY9#9aGLFl^w|7YtwO8jcg*$ zWot0`?Q_zjfRi`E+X2^1O$CMLGr$H3%2UxElu$)W;W@|{5|o!$Q$L&AIYIobQ_(-jc;O_xiPh-Sv)g|2%F*1bNVL{X0U8pP<(}f!1 zV!BX6T}&5hn2YH`4R!9>^m4M+8fFe(3TA{&Bdf_^%eI1T+EOoUP{7gJ3N2kTRfaumnJ*(|HAaWJl1C&Ruxu3KlrZBGO435zZUwegVAFuW*t z#&E;88-V@h=a{`1FXH7OYzsCRX$1MAus47{$}ll9T6O~HqYZu)a_nKllCgKl?}=Xf z(4**+Mtk(tpzVDDCzp)9fD`OfpTzkk1HUA|N2BBloMJNOpy?&s>7vW2+b|&2rFjcmiV24fn=aeo^>r%saBf!~TeZx1NJR1Jkh2P@du7ldCo&O&fY7 z88cun+1I!Sc=I3OeF(RK$QSUo!hHfKl6HZ2ETE*_ltW+-fWZW~{X;$48Ys)D0NP

LZhrK=z!Uz%41CIx^`~M<#vh$fQplne?e6lRkB1(x;A0`qYt0 zU(=DvrX!P0M<)N{M(i24Fyf$Ah#>_es$&p%n*t7TV4)yIY^m`PalEex@m)dDDn5#( zO+3-%08XJKoR&P5rzK4sm%IoAQRpKOxgJ+Z91&Ow*d!q+yPGc|^t}I9oKkitAD&?t zmD4pMvC!!DF*ww0si%DhLC!pS>4}H&Ab7o}DRLJC|VS5mDjRJs89)al8fb)C6`lCDJ- zg$b;>B-E^Rt%JFND&Y0@mbj!Ff{e$PI7+%vr3;YHOokVfE6hxUN~b&GcH`{w&SQ2f zxiBvFZo4f(mhv7~!P<8q_Fg5#BwsN6sBa5GHB0h7)}ac97HXR0eY`_YC?(ZA$-B10 zjX(@FQSv^~VG|J3W_i3%c4)~=)U?d|REOIjz^mp&-lsdvK@5I*Q^B%4W6lR=%tRW@ zWz>uDSHk_0`5H}8U%`ES+hOWs^DDTopRW^OVe>1vufO*KG*L^mBCR!HkxW+O9EkS! z3-3KSKlCoZ_5jKnme3ur zutyOYt`JM4dApTOEx_PM4Xp@R?yuE5eTAThsMoDmAthJG-&snr?$J`(YyU2F}mMcI*UJ z?|2aR0H}r&-Cy-%CI%LHJ6W>3dfx}ZfYY12$<(69c52igT=B0*-y&^#&zo^>r~eRT zlbj5Ebe8=mv)FQCvw8}^qvl#c0B4%dG4EvLos76JoYxEFBmik-ZqptZAC-iZEYsTy zv_62-;k=!I&dkvMSp9(3yFD(lq;8F`yKrvyyu_%*Oi*yaKrSjBi%Z zIKO02dKvlTx*GH%0N25_Ep5z1QExeIAO9`wZAUbl<`Nt7Jl(jP(q@2;gL~o@IMHT# zV=l7xHoSL&c0XcQl0!6aj~e``(>G`dTR;e7w)@jLpE4@>EBFBtdo>TEy}g}s5HKB? z-X5ix96hmb_dF`>URsoK_o}$|*ELTT_vSExX!jum6tZAKMcw12hze*BjE3AfpkEcKBj zz=JovS3q8n$8P!%681Il0z7jw@F~XdYwjQwW84EgnV;v)X%0J@_hWjT7KwemOF$wPK;iag@RiA8d1=11i&{?CC|Y*{Blu{!*e_6 zSKRRQ%vmI^N~JEl5x)x#`A{i?B5a<=F~-76@$t~XbPqoStwi5tHzHRvknfpZLY*eW|JS8vynfKS`00L ziWpvyKM(9UL#8E*p&gkS&iOItp?wuHQTTZVqc1-XcT?;`hMml*4Ii32b>pX|v(T>hGYy$rR2 z{h#O(4%@Xn&3Oa`!G9D)6*&tzr@lfw$K)}`K5rAAXx=y?S&U$#my;TrJrj5=o@g^( zXN*3hqR*U-3+pnSi?E$4)1N-l-Ml&M&F8}l@G0jlL*SGgf36$QtMY(emHQffmI>%p zc|fnq1McZPy%P7ipJLPsTCc8h;Z*p&K+-iLv76qD$7+oiKERLj z6cL6T_c7_vPSa&o-$yrJ)Ksg0cYAY zjxyk^AS+n-Rv;H=wn=&F%wD2(-%aR!%7FLl47CCOq!DevRT|L-d_W`GfNM0O4OprX zZNLXLq7C?vMzjGR)`&LXqZ-i$d`u(SfRAfL8*r^gv;m*gh&JF;8qo%PS|i$k&uD}O zT=xVENdrEoh^_&j*9Z-`atk<=0n2O-hRT31+BA+b;7hIn7j1$8Up6VvVv(FUy1h&JFJjc5bz)rdCWevN1Y9?*z3 z;6aUO10K?dHsBGBXagSAh&EuYMzjIzG|~p!dqSGKQA|k_N~!3EkZgp8i_wTXcvMdr zF=l@Uzzjnpe;!H2P#sca4r;1hYRIhTMsgPH`~{AL9E-F27BFIGQN!&ZrMn2~(v_^Quai z7O#YXf8(!*nMDEt4p{4xdVzzWp>%Y2~BWL4d({2}|sy|4c zE>rf1N}DGom8#WoRcm3}8cF3WGCEe!Fu$Oxo6yighN?RJxFCWR{r;HPw3^rd3B`>04JG(iC zb?2J9Lz3%NQEroi65;?a*58(wM|&R0z4-jSI>R7@Y5M;}VmHk2y!& zt3(E<=h4q6JX&PX<-9$mm#`P<$%NA*sTZD&;e z{>iYpyiu}u#ARQIzOvJxpae2n``|e#2Mu2imZA0p*zJ%p6b02EVh=`7lNK-ehs*r z`kI?;{tW)^_8{;yGY25A43V+|*)UtR#E`;bsZwaSvB!v>moZYNnCFA)dl{B8`X+M( z@s%J0Y=$cMC$vXnfQDOP^f5*zF9%O5zwyp^8gGR`z~rh_EHGPPhi6tf&=yw!W1LBk zYuS53@V(c7ycuTR2C$TtAKB624X{OL4QAkozukYyTe53ahdeD$~7F>dMvB?lA zdOyLV_Y*vNKf!9WpWxB^2_C(l;L-aD9=)GnHQG;r1b*4~==}tb-cPU^?I)=BqWY+B zHQG z`%iHZvt1Eavmlq4Oco%YI>zafOVmM5%30bVXEFDSlq$>Y@8WWs?1z0cbv0_89 zA5=UZnTdQK(vw9w2e4k(`{dW)e?-y!@!p5JUIAFI^pj)}V7<^!mUly@UgtNH0|7s)(x%8x(5Fnn&E=mVf1QF` z$jwNrw*Xq=t-g}K22*Bz!9JB1W(~inC$Lsah;v>tX-boPKC5~Jm%uDWjS?pka>nP1 zJ$(5{Df5x#UPU+L48Z#oj33`4%l!(*tz3W)C>R%{LC!%1J8~WP4=LCqKZ3f473`JM z!E;2xJ{d#WqYC!RuL0L8I3RNY*C{wCF9lq$;E=okX=4gbFy;all8Ppx*wI-ihnL;U zkoL7GnwRA^-Q`lSBZNRzuGz^LveKp52Ga$D6`P@?;8$B<>ZxF9uz~bauwh(@lJr(E zE@1=x3@k)gZGQ#(j6VP#pkTi-0%->-IAELwc#wjF#uZ3=rh-GpHGl^z zIKg-hmda8vW*V5!*rE>}_vV2#(qRCP*FakGmlNAo9vRh;r1Dtet81Z8{8L;8-Fybfj9u9m?47vVY zegoKY_Mn7YW8tL;1CW3XpO8WSxT*<`w#|98kXc@ekYTL))`syuJIb$BRgJ3b$VA>twVu+ z-LNiiCJm#_6e5Rj;Ir3#g)Ov=3Wg%x+Ds<0Ihnwg!KsoZ$B4EzlZkA8GvahCJdYGJ zvB>5z1K2)z6|>AFBb$>9Y#-b#Su)9JZ6+DngW;buyYNX;%!DJm3ijRH>|V&q=Hvt0 z3P&TIvlEvXpLb$RW%J__w=5UsvE&fZ*g@ucn+-2wnsXFvHoTr3>1Zr5Ub2V6qT40+ zesXZ;f{llJk#1%-9?n4$8xQ%pT07Zz*iJScwv&yA?PTL&JK1>HPBtF4lZ}V%WaD8w z*?6estVS(oHEKDlQOjA4TFz?Ja#o|3vl_LW)u`pHMlEMGYB{S>%UO+D&T7%UO+D&T7%UO+D&T7-p5pRC9oYko1 ztVS(oHEKDlQOjA4TFz?Ja#o|3vl_LW)u`pHMlEMGYB{S>%UO+D&T7_QY7)yeEa+(<)eZ2zGacOgCl%+j6A zF2omr{GdCTU5KUd9?$5F`9BpL$LF4)6=NA1bHt${$t*DVeLmjaYWx*=saojYTQSl^ zh{p(wqbBS^%=LF6@@spc{_KkYZw?bYyFgT6q$3UMGyiWF(aPv8|f zpBcdM9nCTrXq;ikRl`togW369jt{jEOsjmZ(}r3ZS}?z&0CH^%mYF{#6IeUJRBrzD zO@XyHwEX-_al;68FjztUp+BIdqv5QT|95lHIvZMX{w~_7&`Pa7O&*84 z?Ku+ zegk&9!E*B#hhh6p!2-4NPwxP1tC1_oZ`~2tT?VV2{~fj5Z7`JSMt+rT%5<-@n&p!+ z-RG6*0u9;wr4%u8qD=4W9$3gVW!h!*cxC#R!MrkkAedjKj||N#({6)>@=FS#|6_xN z^Xs(-_KCqF`KOS!M=+h9e>cm!S1^=5*aEcA4VIfff}CF%EZ@Z9OTiF}20uaWE5U3p z7GE38i^V>JAr|j(8={HD0cSenBC$B=#iAd*`$kG1BWGTq*wzms;mpp;!gno3Psn)% z-(8k^Sh$d1yw)|C%5)yd#}`r_E!(OUD6-#$f(Uy?ecL&mY1%Bajm_K`y)QRrVr0$Z z8{}SCXceP)XDppRY)Y#55x`*LP?PbcN;_7h+`1 z3tVjLtMCvZ4qakY!J$3TES!|=J2bOpmUX#@g`6jIvT%H-p@j>35AJFG!^0xZs|PZz zD?KdT`OmL-hvZ?I;_PY<%W}>_Wvwxoss-0CvhRl*63c6CC&V;ezs`64CJvz28)su= z&EuDiAJO&eFqS;(DWr5-wmM0 zpQkAP)V{}8{H5*8^c8>QE54g!{?|rTjI4Qq-)!9kEAUS9I$755MiuJqEHM6QFcos@ zmuBH`Q}JI#od5iQH6hPvrt?E?mi2EB%W`tjDbe0pQk^UADT7Jf9I^+&l$09_IM4X* zIm+vJX$?>}t`di0WX%hdDZPpAjYO==jVc_{^e#F?0}l&1!$E84VVTa`pjCJngI!-e z=NoOLoJmYG*o}Ro*TrD;IAbP8);zxH{l+)iQ)Te!4})|qyuVGy3cC2;OF8fQs(Py^ zS*+YIY^dsEgkxmQQzMmbkA(PtqRKc3woK-aR(iajf0D^hw+j0VwZ<4kr-Nyn(iiwl z<5QU?q%ciV`Ual~?}$AMwbTg3_afr#DCN{ay8AG^4H&B&I@JB2xIs-+4xQ-U4G+MR zl|x$+n<*-dYOLIO7~n!vje!`|<=HEg4xt2&!p-3Fl-OLR8X;TEtyInrzN&xtvAMDh zR9#_&V`R;<*DHMr5`}|~x2lXL+bSG!ymh08*v=RXA2)ee5EZaaUFjRysGQDBvo1IJ zMy6pj4Bc$h#>kpyKd3ZrzLxVE`qV?d73VpOJ=+py*1^of9;U?TqbWuoP`DqPl0BxJ zjlR*xeWQ=?7PZ}&iIFwWenaW$NEG%O-ka}~cOsT3+Q^f7@}06^cHwYfZ}~kSorf70 zzV|Q%helXGc$juFFwp$yVF9NTZY)1}m?Q4};$d{}pelzcsrz4*v(|U-kni3l94LP? z4#mitXJ=|Xo9?0Rv$P)|)P1&xn7YsPFdB(zd?I0tNV&-@{n$v}LH?#IL}%|codb1$sfU=lU*Taia*@8oH*&dlS~JZU ztn`h{`yF-v52H3l);#-0tv^IU>VAW7Me6>hgc;WTMh`P}e{+h_D*cylbhCEW`bKZ@ zjkfp;MsGD{Vr0#;AJuw7o)`GXe4|qLkNZZY?zj6!rS6~bFjMzWc^J$6h&~_cB)Cs& zC!J}Q`x)Pbr?L^;XN}PqS@Z1owf@_8VV9@M)cwCa%+&n{9%kzPLk}}`|B;88y5H?# zrtUxSFuM1iuAT3>_o;TS^4;6xySGLjAB;mWvgWBjwSEK%=ROQCe`&c};rE3`*U!RH zga*S*3xPfCVHi$oWm*3*m^y{N zV!*>9IC=RG{V(5jd~)8LX+|~}@a}wj_Mvh^0dY1));!f9pwBPxTyN;9!n$>BOgB8t zxZcRaRAI0F!>z_1rVB?5w~q4=Q;wz{X3Ejb!-C>@3l9qy_8Vcf^pJ=Yqm_q6QH=7y zO>jvXNSlCjz%NEyzZh>}9vy0D9FLJTPn{UhyI73Z5%bZWDkX}s7RKAYO~oSvzx#^E z1)TetW_-r`iZ4K|geDkOF|y{Vc>#SpBlp&RrNR)_NFzP$O`4ps3I@ zx-Q^6;u~Eb@Fued_{?uE*|zhL&x=i-oO)Tgt??Kd(vH3flpK;{ z&*GAYV`24=NEDvXdoT_ok-mUujTbS9#SCVL(AcoCt=Nl5mgBq%0r4c;@kWl99B9um zs$yi#Q}rD^00~iCR!wnvisHC4*H_%oamtux5i5Mf-T8FX$f$~uHBWVP^k!dir)r8j z8w_W*)KVRsfBK5MI?j2%;%>g;Kls?v-KdI@H7|gZ+RIB&eLQ((7@kn^JQp>g7-29w zodeTI56N&IL_a#w!(vj}(>-uFEi<9L1LcP?;@H8x{p%?q6F z=ymkqZjcsuij6;K7%YO_*f4sgZ`83d%UtBqxQH>|+3p)X$8k<#n(Q2XLz%+f_>Z>~Q5PZDL2*=2p7kJ#!D|}VkQ&c_X-07=& z!f{UbRXypedWY+iPZ{ADS@Qy~Ir?2+)$1v$UUh!;RlVUjPxz|d^i{=i+YRkB!ZEVu z1wL_fol>uWpQfn#*r`Oe)chXD2{O$B?)6ob;${*0%m~NGnuo)w^c<>ci;3-zj`wVU zuKc~T(pUAf;|%vz{o;4)IT$oUzZ&5fS@Ue=>TSL%?Iu;(?)$zf$8~P>Rk^M=LUiKu zRL}^=$eL&8y4tGad6k!+JJY)$&!ngV+3_LL(d_YhIgjH{21mALbEC zp$2aJMXYLDVUEM0hHiW>mj43b=A6}6xbZL+NkU<+euNsi@i(#LkQV0dg-~NRem&Oo zGsE1!5IW9{ugAnFH_ROgp(bveJ2&#e+|Lkd3QjzkxnEM+-&E5DK z%v@`Qc^p!xg&XeriHq*=Enbl^%gHA-QD^@7mL zji=$+#0x@iH_nrRy&&{KxG;D1g3#BE^Pp)j2>smnU6|c?LFfFcn%* zY_DBRbK?qi@3o8RZhR}`ymm3ejel<1ML|8pa;B@hqB-QXndgSDtnUZt6f`V!4lh8b zy78xy0Xof%k45M3y2^Yveoz9$RjSbGZX9oKtqjv~7P#>pFdQ@CI>W8s3Z292I1Al4 zk9hFHb*5Xt89Im8X3lcs1)zE1TI9wXqjPv|=4^xnG%sA|xbX*);acq0Unk+>1Shn_ zt^Xphx~3bQ>&DX|SI@Md^W6Ab5c$62@FuX|EOX@FsK2IfX~S5cOI1FFXEX4083Z+AE8R~6EgCjB&Kb@uTleLH4tc2ASO z3U5g5UM77O?rU~$lYRy3;dURBUV~S6snu|T&q@OH9dV)!xLVqTjbYqrfiliILaV?Sd_m`ui z^0<~rhwu|fTSYvsCDJj(-3|e(1M@1Fwu;Hxun9t(79F4(fb-24vaIO9Tv_`q;?Gn> zPssfnoT|~h>8D!JLAf?sL7?dH4p0W?QY2&*vp_jaH@pb12{NN2E0Jz=${91Q=!v<{ ziU<7NjOZxQn^tru7Mr7^1<9})jzLZ4Mkmam`2nNAHnCP3(pDqvK8sGOMMrV?=^i}2 zr)|w#1WFEBi_gVne6y9Pj-Wji?CH(jn~|mW@&=%9WL07%7Rv!v&Uwhs?u4B5_L&b- z_EB6qJdaBSFIMsExaKg~@MKg=MS7pKhMqI&ed{EgN$*!joM|+5ik05KPE+vYHsV<` z=>zIqj#AdOvfHC|r+3J#1yXTsTsn|Rj8rgiR>Ss~Xs4xjos8_FDIbElTOMs$MWbE? z(mn4sI1wm%6b&W4Qjn09y%=31qp38ZhHG=Ou=dgF638$<8Lg#K;r%JdX?7n1YoZZr z?%szS-5XuW(yh|bNc6Sn4v5A|R8)jp6k{0XMsKP5qtb4c((pIB|XIrsKNe7BbF%6FO2=@meWOX3D;&BLD z#T4tnY{4sbBhM=C2)yAyRA^de=L?Z8It}T}u2HrutLRzi%Iq#kpeP$Z5Rus<${{Ia zgq_Yc&Grn0)eU zv>%)g+Yv2C_s3Q1vA72GC@dy9dM?tgJ{Q-Zz5-WRe}vj@h80iS*=`xNy@iKHoFP^Y zZB~whoQ5Mg(arqFP^62tV@{ZPrK!B48!%>PUKRb^VfSqIC|<4^Rax!b3#jVfP-5vb zsY*YFpz0=f^IDBx`>Uj=vz#C5v(|Qah>*#5}k~0?-=5h9SyODD;-mF@>D|pZ{>L91t zzwqYO;~DHuAF9d6 z*}J+kZc*5O^%AB2Vp_)E+zxI<6Yy`tAG^@ioV5s25DqfCj4wDUA zfWIVn@WV(K-HWj^cSzl)WRa$tJG3sFY9>dw++lS&gx9iiC|pc8I?$wOtdQ1H{0#7h zhY|lkUiWXa9D=3m$T=%;&mSQK7C3XJ< z5-OUBN>S(5b>T@`Q7K}i&a0abN@md{G(vU0D9A4QC%jin>z)s`oT7Je|5eNCE&!5i zHU1fv&xS>B)7_*|sBCq4eL8XSP1LcajKOep2b^)%ck@B4Q~W~*nqjgmE?%MQh>v0M z@k(8%51kB)ldE){;q)>rj$NhebOM$ZUXCEB)w)h&hA+&!wz^u^If%e!51Tq~uC+$j z;Rp=hu7eY~Fy;By=I{P3^A>a;pDU39xrBL%knR9*z-sW@k z#<8Ia<~uqKp9}PT0zD^pZDav*!n~oWbrEw%3-gYqstgtgpNVl$ZHSnATDTX6bG6Z6 zX<-h`>gI?HKsft>zw#BHvm6>Lc(IDV#jJb)f7B~H@rFe103JS+f6_zD*v`ufymSXY z_SnlOggK-YzlBTAGq|)iXA9-*K)P%W+Rx4?nL_}(s!I#B79ORic1FA1h4K0AG@-pTv{9cXYM(Z0(?s1fp1SBq7Sq!!fdc`>x~)=D)3uChmx~~IB zY;H2Kxfl4|fFonGIqGIZgT&@>a6Af-*u03uKLHY(caV4!U}gB_OvL7vsP01rEaw5R z>;p(S4{IUCko?ohagU(RM7NlYyV!RVkesSu6 zt2RK2a~u+l08*R|NVEZ@x`uPq5+Ud3{n7mx{8!a<<t zUcxL>t%%NHuYDL94=|HI9HcIfwqJl5_v^@b1t7hadc0nXUn)cA9S)0cpz|(CT14+b zQ@ahl(R9Nl(eAYP6?E*OaR*Z4 zUK%Z=D(+fp38-I%naT2K{}+R&(cm=P4QJFe_-Df4jA(lrGC3+W8@!U_#1exGw<#`Gjmjv^T3Dn2BK!kk!?XGYps9`vpk@icxHHg1 z2P^T`4S=LO)8NjKsQL%QB{~m)dLKaCc@l~3fMdDCBWj~vFn8~hbjOSjhZFAfiB__8 z?0}jV0p?`X7QZ;pk^@w9d{ zTJg|pg#Z~(-wr7X^1`mxEvjchg?b$Xcx_=$1-4sK*)VqC_qFsYvONGo6RC1$mO|&ONFccXl03-wyNrs?3me0zPTHz72 z{*usIX6kt+gr_F7mPLC|>-or743OJ!19KZ*1AH|gV?}Ct8I~qdy%cKI^&o5jM-{-z zI5m}xVQCiCTgY}U2zP+xHnN2PGLLx0_-?n9Ux7>9%_^d)k^65`jYf=Q4yM#~l4YiL zyJ|ouKazD!Bp-(52LL9Lbxb5*N5(4vi6ljmkvtWV%uH%E<4JL6Uu&j`L19q4}=C_ zDI;4-1N(1b%4L|o#ZC6JNaCLS1jOyCiQW7HeHM|4YHO%%4oK&UsroE3m>m6(fgc(- z1^OaV$j4TETZ)s@k+)!~rM`?5@?L)$@acg1_dS_qeHAIJgJ$(OaBfuWTnJ}Jbp`P( zbfZHNdDZ?}4thBtV;?4C{9{05HhL(M`zeC0{sdt+I6eeeS)aif{wbd5{(B@eq6^aL zc#PN&@|OT*0SV?}JO`*>z+R37_xY7mq@W1o_Q2W#O8wia80AIX6A8;L?s$+Z0r<;W z<=M1(*!kZP=QY^u^*l1w!?+9r*Fb=}1IPp<#sPZW2&A0+1v`;C4Ow#mUHtot&GYHr zi6|L8F9U^p1ZDK(+t1Yi{B@ZMQT}OuduByLy)HzCIun--;HUy5CjL?aa(x)l^$}y4 z_}>GLy8trr-;Ts%0ISrW5GN-7>Z6F3+3<^?|C0io^}mC}TNHqq=6A{e$wBd8#J!wm z`hoBXn08aD8;}D??4wjxLwUG^_b0)xXjIjq^KFs&E66_sGJ;!;R&j(SSRILeOReQ3 z#F54M+q~&0Em^3#VEL@nS9nm;8a|t9C^S*x)rAM;aS6a@rOmC&&l9U6FoI(4WlZTnc$A zlB+)kpOBu4v?s~PJQW#0nKX76u+1h{T5GK5sHY=s4nje5PE(#WPu^BByHm+^SZGsQ zBDoy0HG?c_w?sN6)ozIlN~+xwnMbvv>2^<3=B@O275qBhSFkG5T3n7^jhW)5$zh@m zys)e80h^gfUmB5TwtC8uoI#5{%2*~Qq+{hTdWaxy9cB!^TLacfW zPl=d&W3v-U8Lk#ssJ5~OS=O|gCjXT%IW5wap&S9tgAyjEMaI$OsmPd5 z_x|AMOA!w5Cn7NdV3p3_KxXfcGU|trQkNt5WY8y4;Cvu+k(f<^)Tv79(!XArf8#6;kepz;Pcy%KZuwFHz)Z z<(^Ctmit|ByiF07dk+$y0RCIK4}!j*0xb6-Bz~d5vC2JwWR<*aWF#}2A)_%s=49<75#FLIfp-INcHl4G zWwgYKC;p}W{&ZsYjTL*m6Gc0VzJm4tW=Z$Vt>CeQd(9%UwlxIG`vU@et*)9yPU8E{ zxyYCaNDO25LachHYvB!JZP{R>^|39ZVNF}*ef&@~jL17gZsMpde< zVu)3@)u@`S9e6)lx2CPt30rj|?byv8gUSaJw(6R4y@!mqQf*y&gspfrTUX&uTUgW9 z;e@S16T|PIa$mw$p|KSyM6Cf5G5q-mTgBCE{f&1#*-2Y1q&bc3>&GxVB5N-7p|WgCDF&?#d8@2C%H7GAmb{l0@^m6Q#*_AYkUV=fg&j3F}y9{4e z5i$T>CXE3D{uFnzeGm?-(~(gDN*N$T%FCG2w}Ct!0MvYMU@W^Of#Y#^B38@ZG$yBk z(Kz&`sbVX70R7>mq(hZZX;)kP>79l}_Qrx?I%;qWKWDvpf<$Cy;d zUiTcs^9KBf*Pdg*Ew*Lrx3j%Ohr7MEDzX(s{}+Vx(x4mpG$hm(%V&Y5}rP1 zJe>vm(*Wswba^h^o6iADfiD5XX_6A&!U$Ri7TkwHcQBHLUujSDvy(;l$`kx3+!1cY zmb(@@uJ(1`5$;Ldj{?6BAgk$H!?K$G5%Bi_a_71`EO)M7f&a`rZfjDHhUJZ;D#mjm zGCTj_sjjR1pujKhNlE{I38F%?Hc)sR^%Wzk%J}8l`J2!zK6C4 z!)g)))M#XOgPJY?H4sRDB>Do3;;+GTj!}%?7(zhQSzcYSB21hZpf~Y4=9XlDOzw^+!$FkGKP-vB=VXvf#CrB9cKgXdE%Cx^Wu(-R<*!(m7a0azJ31DU1yWSVT|LB_531KyrGOvJe4_NM^ z%#%PKL*fyU@n_ANqO>z89KN1149q{l@*HJ2YkmufHz^}k$`{9vgAZ=kT=4CUAIPOP zzi!V&I-^NyFxw#KhOqu(C{*_WVK>x%NIRW?>__5Dz>&dh6IT5w!eIUdjz1{EV7j$Y zUcj+}dBo#Q$FMq=n)rm11;H3VX8I*a6akJB%uZo-A7vQKhF~eD41?JUi58Se1m+#^ z9VIX=j}n-Kj6&B%A4qu(e38fQw~qOwv*%dF+#qto%AR;h8b0Cl&iGz2e8NRt@lG&2 z<u&U%Sz)E_Kt@kE-5F5M%z}rJGaJ|hK*pv! z(Zs=T^TK9PsoYKQP(293YH+LqSQ%g3hEuhvmKVd;`em{m0-*{l>x69+uvyf`3maw+ zrN1ZJy&&8MmRp7GLg-#dHeRT$r%KNsj^s5UJOGyagl#5-7K1}BhOJXqvYi9MlVI5{ zY-PZfQ5!Eb+DqwaWNQV&%V2p?*rr1FWn|-p+WM&Um1H{;gm=L5mazS?&a$o~8!u$* ztAY=ZEs7TK30QUuTPs9(OEXwCyp6i{gU}5;T|`$eXuh3n zypT-|QR!+Fa{GhcS9D?Uew163P7Jr;O-gfcP5abAV?8k}>zj2?wbW=cE2xV}z)2=) zWq#fgJUzp?nj?s;j`j?S|#hT#ZMhDMYFlYAQgNd)J!T^R?ZHDdT`OiYVro&{;GG9 zVd#KNyNVCL5{7p|jVZJk<`w|VI>$SqfwK01jCBC1;P=c%zQ=(-3P=PaQNg=H?z3=3 zg7E@4o(GsaB@%A}j#9xNg(Cl^3@dmySUvr5-&vLy5$%+51P zZ@1)6>J-7Vo(ribphR^5VHiY*08|qo6OkAXF!w^bwiCd)%|g$BH?5XeFiq~q+Ksw5 zSt8ufQCEDJmJ;1-D)=-goC(PCCo5_UN^yV4tpuZle>JG9022NikysBf1>*A|?MoNw zf*r?dL(*OgaM@LS92R>UjJ>-cyaiw)xXDCt2QvN%=zKS9?|=j&c(aM%&&WRrFg1CU z2!<^D(aa}+V@4w#J08>(N$*TF_{1sRT@h-^mRqYHMms<<8iU}`s*pPvj1rAbpmqRA zH2NUX3t*g!-ja+)$vs$HQA>?I`+P`CuUZckGXIXy)gM7Vp3Gj;mov($vbD*WoYuIdhIHM3;?Ld$hW`XrOYo=($XpGnRRA>%$jwM>1eBAjU=DKb2euX9HM+}St2aa$ z=GF5|LtKYqkMZ*ShRAKR9*<#q5KQOSVEWjL7lf>qgEUHbFnBw7BvJ>1GX7X4v-3gN z6^#9p-hbkgcLiI0j&$=guqFG0pmamt**-K$t9T!XIpm(!{E${JQnAW}lx)0D6X^ZXU>v7)0-ZMdY*t6q^B^WaNhdo5i-0+_b1~-FQ z9{AG16$QuxUm+3&1U~CEKq3y1rtLrTEkxkVOjH^+qx%R{dEHF%Zr~F`BF|$NC0)Ic z%B{?9iH6L8%HJs%TOSXmPZ$qR9!F+(814)xC!yd)j-56_}1d zFtvAiyIbuRu%9xq{wxS<84KYd{}eCu?CD@|H7#EO!UCwB4^Yd2oR7r004w9Hjkw~^ z<|P2w5mYZw=BkaBwE`@cQsyEc*CMfoGFioFqWsh6pb)PH)vx4li_DE6ZyXBa>#Q%K{@)lHBv?=2b~^zh*8C4zC4dA(-b==cKJE zI@!3?3V1vlxhp`vRCE^e^Sm7Dh;}T_vX<8L`1FMKrNP0}ejUWFruHK}zQFT%E68_< z_I}yeF0d#l+uv6~*le3$6dXWJ*7OVUf=iud$o9Pn`f0&FLXWP%hc+{V;hkPFObqqO zetBmazDHr|A$l~u%46hz62sZ>Xc2N>2l-X;sO(g{M4g1{H*LkPnsG8_schJjf|YF7 z_Ryx>RWT_zYBzZ7VWk%xp>;B%xBS`dLBeB<**pGefqf<=0;+q&9?DhuI zo{7=Hk;gPK#xwC9G=Afo_ydXG#6&Saq0FJ)=m^YYha}rX8lA4HH`$NTkYF#C$}NMN z0CQ6v5*){yYHef`0_q@b@pf%RcVWLq-6K{q;coU5?yEAfE{+xDLogNGt=u-TPW+ zS?y~YXgS3%eEZ-CHl&-tydH2A106jB4}tsuKny&K#FGFRIKFE(H!l1#2Hx-0uPJ|jLcYFf5I;lq`=iQVh*6}lru>fy`NCj#)^4O6 zwh8pvpJB|W|M}=av6}KNr}_bk1-r67>p`~mQRVyNE7U+zz5+V!s^tm!fU(~RvTXpk zd(?OXAs%stmx#zGcx(Kpo4C7}h(4dt_@^r#je@q}zDL#Mmts@U?xg%x;?cP2eu;Lw zT^W(nAUhi%^W5F;Fit?P1b!Kyeq+2<`vkw^X=C*Y_-z0)GvDvZr0PXvJO}8!%E7ws zG&4Us;L5Yj=g9vEAa_+h+e`)>g$t}6kCzCN%a;g?QgbB;BaxfnOL?`h3^w+;>Tw9j zs|ERjxB(EpT1ZDC3a~Pkcy}N8jG_X5bk$zUtN@`FSn`GKI*(2HY(KdwG#zZWfKVSS z^~fe}@-Ep9Bsi7U@=QFP9rbnp9@lX1M;#6@+(&)#iavq^0Cptng-yY(`VkUl*096v z%$C*)=9>VdUUs-cST93?4*=Bfh7Gu{nR=N6d=?<#=^o$Hg%*Aatyu*Qv(KqM346me z?Vp~qwVeqMnp})+)T+`=JaTMArd@U7EV#w*_d)787RWg;bp}A(s&r4HTUEfX0dR7B zylEIu0eu1>lj91g3eSYwd=t{!mC5ldAie}hz6lwwu>j}>pPPX?;G2+lL46w_6XQKd zd;%yZm&}g81-2jHLb-M1?AXNP1?YKyhAAZ`_7WrV{*cH^o#4g5&3MT4IB>RkBk~y7 z`Dgcm4QWsfR%O7yD{LXP;4-ARVJ!T zIbaz9@(}X>0glB;oDC=^S3x$&7Xw=kIEF7Kax0hOH7XP`Myb*4=H(@P7cJGIDQgbJ zJai$4O{&R095kRRT-p1{;*AH`RWoOM4XeVfWW!nqkFEsNpS2f1{ph+Kz_kPTQ_TAf zA6gz~^8Nv5p*jGy2}n~UjswW(&30ts!tr4g1Y~?TX0L1N^}6v}5)rhbJFu^{PI4?TWBhjL z3cS+}5vt=>J_Do^Y_H|M=@K``S~-25SQ5KvA+K{0aD8$myypdpZsNVFx=2FNfZ1`??RvJ{E)09iMn zm-A0GfrcGU?aaAIZ$;)RP_F=#lTh#oa;ku>1wbn7m!t!TI3lezr3#R_4fF@ell9$3 za>AKjV0qio*kop@zc*UeGax?&s8-lSXR)$w@jLBM2!8BT+)BZRk@+fwUOBd4#`B(_ znC0aoM}I)!k3o1Jg6{& zolEj?8I-I^sB|}c655{>Y9{PV2S}k7A#o-^3UwJ0%ZRX0TamZ}kSx@~ltMiW z%0qyZ@nQ)K9L2-mo#c>mgRrEop8SzQeaR?DYk8J+*3obCe|p?3?OwyJ*u|vW5{GKT z#E5mmU3OCyyPyu6*3`ijzmV=5OJVXor)> zQK319jaQvK4jWdR8>}l zb@(bo*8kM=^wZFYWwE8o>G^U4yk9|>p9Yx4mMZ6T9v}22GCl@0Vx8U(+N2^znF%G0L-!YcD)yzNOAJ5gmuj{s0-Q z&ohxNYldY;K-RCA2k=kbi{h~^#+jX zNK6HkldIrsv8X>GDVTpQXvfkNw?5ck!>V2lujrD#RN_HVYDsHwTGk}|cZv;r$ zIO@F#siTZ3b5ll*Z-pgwOqu76i7(um2$mJS9dB93C7r_k7EX;_;5Wu`PFFg0Ka6ip zbzmqsj^e-s$1I#ongu=4&+w|{grsiBL-$(=-6t5`ZzBJdRNZ$SUH4$GaCH9}!=mPU zw}!Q718|496>WlDWZjZx(FtI7=ox;Ix;dR$r0-$!Yk)l7baRGs7Mj}JZCVGT$nb=DG{bup7SLyU3;Q0MuOJsZ$e z&gyW^;5lpdu%`T`Upp;%N*m4zh_*os*&RqsEkhV_?5acPX-3!XKxdx3whnr(1DL7h z?!ai?Cmuw`RzO{uMt%~IX?=34I2s}UE}-s&UousE53KJ1T$aaw&^sFuHuwB28s(p! z0l^;vp=*Jw&?3w+A@m8LoP>frS0~OCxkkgl zd8Gie+;>etmixLQqa&bmKS-Se)m-tpHXzG=W05}`Am!n5-%!v|o*K)2Gg5P<$&UnY zf-hycuOn=%38*_DAj^H{K=~qoEcac6#D#!l_+B%LYfkwu_rk|P`76WX?e)a?BKE88 ziWtg`P3HzOcS7~7AjW=)Vuy3QfSns?$M?#sVfhMxdn#DG-L4$&F>Wu#6l`p=7R)rR z#S*_3#s+$`7Vd-aEdVo(8ygtS8QZtW*vm|r#*GckW@gtm7>NO98aF;558_uL<9udv zDn20~&)j3$S=MMkavH}zKRcig!+Dv;%?5QUK;~er+v83HC?}W9!FmDf0!USn4dN*Q zUAfp(F&*?t08!Dr16%`?lS@=o0_y;Pio`Uo48-{Xy__mIjhhVmIDky!)*-PLP);tH z#@z;NGr+4^PUEhJC>lt$Y24OiUOh7Zf1k$v3(Kc{lJ$N9e6p)POVoRxKqc$_NtEmn zfK*(+fK20d0e=sW7znO|)KLb40V$)~L&B0ex()QGY|Sql1zgwV;A62jN>lgecpzBO z##n~#l=QelJm#~a8814SVd^V*wkOrQHuCIz#G`eWK*}7i$!b2)eW(-5dncnMV^am@ z-!kresE_Bkli3lE6VM%y2fz>Y5H|P;$Q%JMQ-%-qX}@90uo4-U0_yV-bGMd-r<;LS zF^`MkA8R?#?S0^{0TQ=y^*Qc6yLIlb@LF!;e}Vc3pqvD`jfXnH0|2D9uj79}zX$PS zo!jg@NWG5CdZ5<&4s_)G^*r0}O8G=X4aK+4_p-_ZXb-S`5s z@NU{3Lfxu1_5rB3c|wMNr{E)IH;&40YuN#7 z4=sIhBgs(D3t82>TFuzA5i?fxF0Qx2+Gao;q{RF-*|w~b5AY3|dS06?PS3)C?0|Y+ zw@hqtdO;_)IK60+R;$C5>VTgc#NT)T&cwOE>wX=y98vHPjNStXaOWvlM{~JgCo*0G z$o8>LTDFgU3H)Y;d z6eQ*X%E?s_-H0bOU}pi25kFH}2JmAjtQo-HyuAM*fF2h0zhCMcch1P-?a$iMr2e0B#coL#%;hK z1V|XWLDwtGy)ed-Vf=Ix2>7#`X*}U+{WV-ve<1T2NInHn-vW6Ji5&nd;}M^qLJ>fo z)-9n|y#>N9u)If^7l3?@#9qKL0-bfQSAn_{EZ5TNa%y=6ncqR^8)|tH$bXPH3@9g8 z!TZQb>w<^^j-fYMfg7N(W(7X#<^2y8_;G?Y*#mw|<{hg7OYljl`c=s=ax&s$R}Hz? ztH57XBUWG>&X)kpcJ5zQPabvL85!*XQh~oI8AgTz9}GzJgG^|WVdO964tq;%2#JL8bOdO>QnkRN>LK%KNInTrc|dj|@dlurTm{XL^AWHQ08)-4 zhvQ^xYyyQf!`R2m`yawMH^G{0jZ2exE`2}BaPoRngzjLHY# z{1<@0#JvdP>q@>%aJr)BAydNmrU_#m`X_1-cza_ zc+?bRHil#cK#c;@7Kzq?WON3AuV!?nd3pasbXFu-lhL^`nRkrnl&s+T-ZqtWkRFFF z!`LEcT5MCD`FTd#U2KEf)KEeG;tYM8nzI|cX>#Di!|DVcd7ieOujU_CCzE2e`jFTy zN~SoBl3g_%ie-v(i;1{BRBqC|A@l%=#h&lYW?FAf;8v4H^PuShC2K3M1@YCZXzRMt ztG^4BY_#r&ICcYID}Y+AWLjgj{SNFUVDG;Ibx3C~F+cKr3K-`CWQR4G6fYdcFI7PY z%(9W>9B?cG$VQTjkys9pJtS8naV5Y#1TlYFpQspH5~pq6A=Nu&c$%&I>)hPU%}I!|v7yEDZtD-P$A37GP!6 z-GE+5JG{`&4N84LnNA=a50*-RY6fI55+?wxtV`Epenpwp2>Uvv!icrngv>D@j|Qk~ zfy_igj*Satf|vDOAAHq{=`u{!>f1>RSecc0uHAseezicQ+pK(-a}ekUrtC#yDznf(;g1?r+VO!az0=BaJak-9+pTaYmOguAHzJSAQh zD7z_HR+!bC&&5N%UqiRb?!x}a3T1`y{TEEzRk>(V=FMq^>Ulndm!Qat0OrkUg*u%F z|MOV3mCTfF>W!4VI^BYdn*mu*+yi-V>t(D$J{_l_(>yA+apgse_ zqX=sOtc<^bbs#@4><2BC-cOl)s4WLeeab|Dv_PU6W!zd|^}5o3ImPZcXp8pbwHMmYZdb+406aAUE7|&F;GLrRS6Zf)R1d|jD+~m z>MHn~1vzAFG6ZM1tFUP_ErKYkxbYK6vbGXdUD;|`0 zKQ0W}s{!S_{Y~V^OrLIBl)i80Dm?`_b6+TO{zf0)Zsv9^mQGx8sSCdUz2% zf7wc9A@@e;STA~_ZBZHD*me249sF|vcGbsFW*YT3_B>X`onYPqXwLTgyU#orW1ekO1)r*<&)|6L4FqiooC_ce|t@xIam2Qx7+;~ozKDiDRpi-Lg$mv$q&wd z2l1ZLO(udqU?{ zqq8BH>jRGB=iQ#4T|n*xfX-&M@&3h5^f5Lhe1y8%FZ*V@598S%%)J4n{L(t{Cw|@v zo&3ytBFN(bX#LM)yTy8YA9R_9wgBp+9jv!2y>`HFA=cYNcY+`AYOmfC>Ovh{OT_OgxN!y+)dvG4Y;nVvXI6?Z^8TVvRjG#RMhgPfT3vnOIth zy>0+8aXAu~0T7v<*blhUj&PZke{|2TYIL<9nU(ecwu;@W*vBtE>zKJ|jg@Y>i*mGwePLYPbhpe*ui5 zGwf5Ts4g-}04a(#;OmCDHWeF>PD&`6Ys=lUJ@{J#%xchFdj?m71|wqtKooKL%_{pS zKg*hGClzf{(YeSt8<3*te2k;x?4+Ut2}R>flUxJ-RRFWF zGR{7k3oCabV+%kOaYf528;^CD5q45h>uVq*TdGEwhW9M^p9C01BkYM(#8WEY1*9k{ zf=2`Gq@r^ZiU!)<*h#(z|3QFRDHv#v=SqQlJlZKh6mfCLD(ef6dZs9PA)%XuIL`j_>N0abbCV4ai$&J2L8=d zB+swM*<<;%#=|ln2gDg%E*xOWZ}ydx{ep&BKSkjm35E4ddwLIYZvl+L`u0gw_zg1l z0pdq0?1=tcoT9MJb$-l>?XHZO?umzKUzSft-jk74_5e2L<)nz7mJrRcJ2Of}5X}dO z*=nNe@cmQN-i;B-^shS;qEWjGt+s?%Q;L2D9)G2FKI`TsOl)=dI6y}}J^wj`S$6}ym05g-{&V(j zh`kGR2ebHa`qx1D>9AgS(Zno1PyaQETuqQw0hq%@3;BCWqwyaOt3Q!(JSg1&>RTWa zkr+v250ER6SWe^}Ade&Q0Ff7ge2v5|KvqKI4rs&@fQwRy*806Is~$kKwnm~U5o#TV z#6Tj{Iv0uAM5uKc5(@#|7Pf^*&F#lWl^-Qm6QH|NRu+Ej$aqxB!orVodTOPtEBrW% z#jTWOg`Wm68kMrD@Y6)*Tf;wsvVBZd0PyP~3^_-feNxpA!t~vM7UbajOiA!1rnDO_ zZ1_!X_)aZ=2KtO9;x{^q2*P;5pshbhullDd+DSQUNu31T~&9T=f+FY&i6s^ zGeCd7&Us0`iwgDuA7CE8i&C%1Mu`T%>jFmbaJ6@2!J<3R&V;*A85?dO&3ad++vAZt z5)ir>R#~DmK}BJ_O%hv>%WtAqrsleLA$KHl6MWVwU033sfNc9lHlVlF8xW995=)@` z9Dr<+xCDud09NQ!@bV$&FQfRFUoolBt5#?sn7POkLp&I0)W3Tj@>mrfZVfsQeSLdk z`&WeokRMSni5 zpIaZ#)qG9MCuJag_^gw5W4&x5Gk&TMwIvpQ>%m?bKaQB@7a_vCGCrQXR!MXIHtblB z%(HleJT^YfkoRjym)2_%FM~8s0TOa)y@^83d=yg?yP#gK=1)Zlsi0opq!R`8W>L_} zY*!Axo9pIke*7zZH`nc*rnAiy4Wp!o@CSS?Lm}J_2ls3)= zra4Cy-aksmn$iuVxi3m{b!nAH`l8f$Eo#0fokl^cWIxUmvNx1gyw4zY^?5gxjxuT% z)0-7g!|#m6!iv(KNv~Iwo=icjs8ul9o6vbVd3pndXiCd9$p^V&7p>`dWF=y zv{zD1^U^64v`QvX&A!@=_-U->J8$9LSKCu_IgT;1ch=6;JlIW0J8P$?*;#uE1+C0c znB&{0fse-q2;XV7Q@lQ{_Q?+jUmrdRe^HXFd-{A|l%(kUqGZZh!nd6*=|b@FYhBTI zVM$8eU05=Me08}$+rFqoHuhL04l8I_i8+;?UqFc9u#$l+x8WV(^FGBemy|SW1~r=B zf(UO(iC1n1Cjr|5*yl%KLJFk%87P@TL43M~H3_@2I9GEyP53H{O_Sy?WP&o3XNVZv z#}^wvGjp)t#co!ZtGR9`Ld^tKOc9!%pHgGf^JgT5X8JMm zi0h{!)Hy$;>vhhb!4HnHD9GQio}ZJe`KDa>=I5mF&Ci+fr+EH2`=A3pzEKoDC+CEu z=T6Q%@)^&AIiBa6=)|(@T>XVFv@F{QNgXcBJ~3H`7iN1xL$F9-@65{8g&RFfJF^Cf zB@x=0H7Y6ec9tjfIa}4u5bEIz-JF$D0XJt&*&)UF1wRdBw+G)@K41H+lnQ8{HH&8#?#~3c13A z`IC6FIVuhIeM~Uk2FR94`_`y<^*u871L9QUzu26Q*@f9f-eVG;qt-=b*ySUFxUepo zGU`?tJyy$&SO&ANj`H1>a9wS(ItabPQ+-13a7yRw9iDb!8B4SrQ>4z}#zfZnoSnl{k|pXAo8U*i;FE+kK`9YWb`av4pwxj;ac$5v(3aQp&b%^s$md#V zxU81l@GNOB4)W7w5nmjXfLN`vI8=@g=9UHhM-3k8B#m%aWBHO}|7(n*ub~6T>G(y*9PU z_a|cRdu=*W=5HK14nWN&pLD<{wUt{NNPGz=QeXPUo8zDx8=GD=&xjS$?o{KuedD!o zZl}G=GtQST!n@12a6Sh*>~7RNgHT9s`=kg*_}4+|zopUZTes~DeG-UlC#C=nI!8$K(u z8}@A5Pl3cwONI25@|wynlCB1cU$qM9YL(*P)yi}5EWB;97lV&qvkKp0qr$Yz#cG%- z$nW%G3i$pHZSNglMX~;m?=!P|&h9xU$w`4E5JCtY0tBSjK^jovO}^oKZs|lcE|}cza27d z8hdD7Igi&}(v(Q^Lu!WiE=epFT*jebOQO0YS-nM0n26mfQz>kR>D$Dc04n1DNHSc9p!|AH(l45FmhVN znl;_2yTQV#)15U_@}b%pl8Ytz3tJ@WFEppRslRZ#sqZlnliKA*3AfCqlI7hhl`Nm| z5w2s-kRBK>&*a{JtUt3yW&N3xO?{6e2=)@Agj*PrX-P>X(~?PBjFLjQJCB>PuzsGo zMKqqwn`-KN^u~l|mQlhh51D2iS2AnTEGn6|g7f_;S%+`|@`0s-t8QGUk|{>xs6N>6 z8L1y*AXBDNY7+1SBqu)YUC+@!hN^3>;Kj~w9w%ydr^~v|CFn;xQO6ZKTemaR%GTYx zHsa`OQ8&M`?%GgGQ#X8k$G9_B5C6D0?o86XD13G}Ip2L6NKHaE59Vhh(eJ4J1u6SBfOucT6)F3EfCeB6kW!P9LU9HJ@5>*f6O=CjM^~f) zlpjDjcx=}nvAX#8Eh=BtiTWx(?CQl$`S=$>l8TY^?IskJLGM7Md=3tke+raZfF0Ay zQ92dXlacT{sLp078_%i$q(b!vT!@;}kklxEi$I)DFa_Xx5Z584C#9TK@cZ#-=qDKO zNm-K_!5!e^M|6zfiy)pu>ddP%{}ctEjcPRk1@EKg9V9gz;3p8@Ayo~@|M4QsQ&I5N z^)R``+S2x#n839xNpoV~bWC?foD*{JnLG36K8E*yKTu9J*PD6TV#jsEt;@u5C3JeG zkJsOzKsU`909IH0r?y8OS9vRs@?UtxyfmTS>uEs zz(37`s5JWo|71F*Tg|Bl-6%zh6#jXWW?~mDZx0GR4hAiwtap@$28UW{ifQsi-EI%! zpHWeQB`2tm)4|ij&`MT-E;Y24)u4MC+LeER?qz6CDnR!(bVxRX?qle%+zHyei7LK4 z2)dss59A5Z{S6(F-Jk~;Ix5vb4>WX4YJ(nR=oI)^_7Z&@hO%;&#gvocc0H7A<`9oh z@4Tf`Cp*JEw#Kx0M2xJC>emS^9;vAzOc8{i&AyuN4*SE(OPy=T=Q^?w>aQ~h(Dy4Q(?%cGzR={VpbM^6(t8yFU;a#x?RV9LRq{YhGL``H&iJAkxy^{ zpa?`0r1Sto$43D~nQ^d)WuT-psyZUYY61)d(H{waXX@Z7A=QN9T=mDfpIGN?7*n)z^LuO zm}!Sy)N$C2CWc84dmdX8O^lFZK>HjTz0J%>Wo_z;Z;~qSr}!N{`fsn2bmtdRIEA{W zJBLl7>-WMtd?bB$8@_#Vgk;QZhtfYt#@(w?dX!|A`(bIi^C!t1cS*N&=P#0Z?l6=d zBUzwkpcGLGi0Y|Rh{U2s>bD+1%Az7Q2?jizeB>-vgURVy)LPvKw>{6I_Uhr@Kp~4d zt3~hz+g=#C5|vM#5sP}N1L*f&)S|xXWE>waX3;>^04?@XEGkpa(n6|5!`1fAKxr0@ zR!7Jgw`i=ok~-5ZnxMAO&kT#EsFesPhFRmw4AqBPvMidTR?)L+7R^_!=yi3A7OMaO z!v;!5?sT<@7IG{)TlJ&YxfU%~@6bXGi!M-u=ygqtR;h>ROP)oSstU%lmPPAS8Lj7A zbd|cDEvjwNwdyL$6y2dJ~1MTgZ2>TGY(Q8^7qvxBf#W9eWOn%B_)SL89YppyZ<$Ra50 zY(PxpN9gNf0De&MIMj7DAWNhWGTjWw5%~fgti*skk)Ki1-GBm-+n}w70rf4;`O14;l8l>P?v z6xjo#0}SXZQVeYa4Hzi05i)}eC=;oM#tk-LxJWJ78DhX_kt^Y7nE_)(iV&)y222n+ z3Q%sq6p>CaI?R9>BJZFH!wr}t@+1N>!hrcAivdO&uvo;0>QM%qE;1irv;k*}v<2H3 z1D1>IMG#Lm-~y3LP;-g_t3>WV%~%626}b*AJ=K79BDX@@I0LQ{=?+K78*r`2c*J0W z0Tm+IaCD*p8*zXU(Mbku5?PMuOg3Pv$i-;f6a%(nr3oHPHQ;WMw*aOYutOvVMyDI_ z5IPdvnPI?Akz5#^X}}XA3jk&r@C>|$>e&XoAaXvA!W;u$h6nI%t^s>Q8UvhWz&??B zFgnkG{UX1@(fI}(5V;;LU0}e6IC8MF(11^He4t>F0bhuGg19X<;2V*ZX!a5Ven7v5 zf~5u=64?X=%M3V-9s;AM8*o%)D!>^AI7-fhwlfWIl{81Q&oaPQ@+!2QZ9q)P3($6s z0dXZ`Vf0)BvXpr6?K}f=l)Q+VMe02) zl7ybIs8~JM3FujiTC1N<0(#D(_9}xOK5tRya9Qti=LJc_q^l&{6ZCGbeL8)^-Fuch zFB*EF`j+x9Nd~@fj9<<4X#@1KWRwC;P?I|Yy&@TXffg&L9nh;*_bMmgEhifiSpg#I zc#M~smPf#C3dQk{pwMH1si~K&(Tt&>=QLG>6k~si>*ZqhzTH9YxVPQ#1|J z-qfZr95d9fP@PFCZ4R=5XofK341JwSTZFPQmN8@56)Kho@=TQHwFR*f#4w~<_&r^* z6Jr>5BgMud+l7P;C)k3xT|kT51+?^o@ak=(^d9iIJ(6=bm^c|9Q5$y5WIT1Wos4g! z7W_T)s^hG}J)UPL&tfOfVyEV~K5(5v>~vi0bX@Fo9GqO65IY4II|Ua}^&}nufmhxg?=cXUf^dR0a80$(($0lp8@FKv_(8vkTgqKFZgh@+ zJATJ6pTSw(#w~1*b@<=cr^5EQhwX7!YZ|9Gxrq{BF@;aA>Z9w8A|ONZ!Vt6eF{v zHs66`-C9$LOTNG@U4ef_Vb2p4_CBt#$BooNg?+v8B&o1pLSe8S3j1p+amg3BW8T0& zqwwU6=Z||h)&hDs`Uh&E!g1c+B&l$GLSZouZ)k$15|?~|JFghylTkSTL=P7xJd__G zvB&}p!tQB>R-J)=aty(_B$Wpg!=^76UxPxU zXpJ|8Bo$p6Wxb3Zh-d9QrDffCYDp$XOI)R%OL!Q-d8vGgmvTW zJ>J%&v-ig6h@;Br?0uRJy5tMwtqbVv9dPz-(_nO?j}e;v7Kl8wA79(D07p#Tyg8}; zT@Q=3HWUXEp*V{%eNR)POTIw9djbFCK4||wp&dHD{fvS<>OXq-kz_c3O6XWl4}aE_ zbIFH&$V9inMI@DBQ)0Thq%v&U0+l)(hs!e{fNUm>1>*e%g=R4) zBDNc3<-=T5sNW@HMgeY?e+Jj_2POcM9Zoc0{kiwzyMAj)L~RjMw5$ zp^Qh6W8PC}dtJE&bll^*A#RYtlkUBTqgWrWJL8hz?SZidawq8O-i|loPDA+#bhgL! z#76QxOyzjjpp}hf0$j**vYv%N6PXI29zfs5x*iWB_B7&{n88q}y)5sT!M>>4BMz#Q zrQ5+D)!ERwrI+BzSfkK~5iHGsPbzM~qk|fJGS(!z9|gEtmDKD7!_qWL12g(L&J?6r zDaKq%xy(5JH&anf^0uH z-a^Xz9^fkwpBWLh`4G5GMv)S=kRlHwbNfRJQs_>AG!Q9BPOWLM`D+ALn6WK*aXxew z3Tvaf7E)+FKvNKnks$dP4!}D1IVg!Dy6fD2FM~|sGUGaTP6T1V#O8GrMaWXSU^tJ_ z>27n@Xhwljr@PZBRmW`ce5M;U!*$x1IOMxDgG-)Wx_71KU3yv}HK*-IXPK>e$jCBV z_o-x=t!Gp>EGNUi-HOd3%Wid?Ww)B~7h71E%|28g&)CUPUygIsml@5e#Q7@IUWlg` zq7CLk+#f5dd{Fdtg!Sn4xI%qgQ#%ET70V_lOSM{F=+Kp34wOJUkLi7 z%m%q%K7Y@=pPp@iD2w?WjHym*n*f#pt( zg&;eUl$x7P!t#?LRn5<%SbZXm+k?9AyBGjM?ZSUTwjKw}P#1F{ug~`|LtP_Alcwg3 zth!jSfmoMwu3~%BcY$x=OLKtv#T{8S5Kfy3; zAsOy&MTX}gC80%l89;^dzQhyw&}n%6(sguCiVTv3$hhk$@?`-<9{mYMLr&h z_GbMA+hji92~7@>Z6?e~=o`Gy;Dzec!4)Rd2|o-7JNgFj#DBugt{-l97_>Kb4=x|= z1C4>%@uuS5G~B^w2XLJ%mMPMXPu7e-pn_5G+ZUrIbU)rda6+%Lk)h}D?vo02fpgl? zK5FB`@pg0E@3|DTcMjs^_X?f{jSCH44flHo`vF|9CmQAVF*UyT{$l`r4Tw2eE5M+b zIsO{tnq<5f{CWOh{^ZQN3oknPLkilEC6hl~^2-WdXY=?R!yj5e&vP72VV`bf(WKF+ z%%Syp&5dtHPmBkx^D!7?PFga}3ED*2tFYRQ4dsHi=6d0J4Z#((Gr;%0y$7JZ0Wn9v z2Q9H*aWRQ>iMN0jzcsR~Zpc(mWRAZRxh9VHf|jz#SQcc?oaaPNt<6)#@%Xc`$hg|Z zQ`4--_}Y91RL`3OQ;`X^c@`FDEp4{9=wCJtPr$H#!7Es%9WXCar+K8T_xJ&E%82pqClq)(m)mojnYM*61IML8DK zadad73~;?k?*Q~Sz<1)UAn!-Y_|XrKJ77l2?G@HrLI;PN(Hw`l7QjdYLQeYAkO}5S z*r;icQ`p-bVPd;9aXNqZ@9zs;1e!@*!}?TvE2>%I^Z4s4L8WsC1^=@Go~8Fz@<#aE zYyXiKSa1@^b-_15$?L+9~f9!%3;Q7z#UBdkc4Jdmh)UvYhm7r@Mo+3 z*=HuJoCtqW>MvSzynsJC^k-F67Nn15EQbUfiyveuW2sCBj(m;14c%EUu#_1lqVOQS zJB~{**#!S%R()Zr*!?weWYkJXjr)sLMk>NRGyFqoxQ3cYI1z4s;eX3ZbE1Iz3i!J@ z;jyvW3}a6EP3VWg$;PvxtTLY2D*kZMpJ=M)R7(9|q=fGEG*y>YO7Toq>@J9E(~uJ# zeJiUNGqs&mOIG<0fz+(Q1(wSd`X12LbD(g&q+;yB1J6Oqt^qN;UE^U}+@{VL=jOkit!%iXl7$ip&obi=6DXRn1p_7;QNdk3y4ec`Ir3 zOzB0VO$Oj{h-3_$Z4C?s?uV2ei&kk%!#AN!W=YDmC~s}r&>%>JW|nlPx^p467|E!c zW7TZ~-iQ?38%5LMukjV)d0(O@mJ2)L%cz=fH1>`_V+sOWE?wH7_k9G(w~%Uaq%D_` zyq;$a#9>8BnKm&4WwV}wWNY9eq_jt%bhy;vFgFf(I8vk2mf$h|2&uykaWM*3kda4k zq;+vCa0OE1@8CyuFr~taCfw;0w>OF>fx2RB_*YbZi(dXE8qGG~)4gH5yyLurvOg1L zi_uOuX3wkyj}xX=cFiJaHM>^TdLQ?YQm!MT#R&?)&ePL|h4oAMC3M8+cf`A$iBD%} z7z@9o;{9ZN+DTW&XFuHDgJj~Im>pNG3k*WC7!oHwc#)B-88;w%I*_J0pch zCmej`-yFm?0>Rm+<;iRuME_}e8T&zFF(U$0+j)OQeiV_fZQNyH5t39)fouvRU0eF6 zL3SFP)}v);(632Ljf|zAla_uRNK1Kx(dUsW+xgM|u%!IM*3f)=L==BH9laaF+gC|L zwn^ht5>5JQI1P1#k=96NQ?0LuPeJWy!15Dq4@TjMr-<^uwYDlwu;ugGt*Jfw4ldgt zRJHnb(&`6;*aenC{d`*G?CgWZyslpfc-e_o_Zh4Iy%Q?`p!I?i26JF>WgM!OAe_-7 zIF$RUdN4ON(e8bH=)vtUwHe85ZL)7B=Mc{WK8;iv^O33l_t91UTh;^4Q2yq@d985E zTGfN^q0V%s-R3m-5T@QiGFzGKp2GRcQNY7Ul^*O*{a+ruWIf<)=x-j>ga?mR^mZw}{S(*P$SReEqB?SFZ2zx9B#yuW#H7v@=8t9q~`p73C6UwUvJ zOr3#bwj|j)?i2K$>jAGps`OwSM4L|T)dTESU}I1*fF3*w zQ}@#Y?#Xri0M0Mp2Hbn12Os`V4{o#`aQ6B)4=%>Ju$&(J5ObUf_%9U~;>N)oh2;b3 z!PhYLIX&Q4c2*4J&BZamKag@JPjXhA%G-zPWw^#8g+n+md68HQB_=9={|as5BBA`1 zPEZJD&YkJg5}1nC#0|-kWIXB_Zw@5ASz^2?f{_MDIk>f2GK-b{fJ%|fKuXh92cu;e zz`1}C?TC5ztfcNDqq{#|?=~%+)q^da4lNUrDi3W3)SE{9{ZpBhjhJK2a-weo3qu<) z@f}Y?&%~0~)ccZ##&@To3t{9u8hQ&Hbou80X=tJoybosHHdGoqfc{%fL;Nd3!kg$= z#xgA`H->J3k?T)vk%M~3Cw8%@Y{qcg4BmqzwKsbd&5*WclHM7XR~h|AciV1k#PiVm zC{hk?#M_qtfa*g)-ypfQ(5c#v=M75sPz)kSZU-FMc6B+$>j>D2Mf^@vyY3Vm4|obv zbM96m9U^SgV&H{H;geyUF?ztbjtxXBz3%9Qr=fBVD&Mm0Qj1%2lwXQgl;aD6POuR5 zyfLw@N?rlDGUV`a<$3jSTW?nTro%t3_Faw{1OHlOiSr8f>rXjhwNKgAK4n+?+!I#& zlwIvpiDz$ih0jf_@GXEkWuLvdi50#JOp#gPQ+9<<*%dzbgcUwFv5Yqr%x+>C?{v_q zZkk!oa9jI-0LD4ZcH7{IFF?RcX4`ux5pX%99Z5gnVn%zCSju=D|H6C_ozB}VZ*&N= zH7C-DSu18OQH4hm=9#c&UAQYU-3%F;Y3{k&f%bWWKQBV1{3}3`inXZl7EW^JwZ0P6 zhr#Js?iz4wXFcKxLNe!c{K&mu*+rahz!WAi!S$24;Q zGXKR4s(s#>cQwi{tyI1-p}eb6{ukJeAQ|OdyYeVyl;a>Gg>J4?j&5BU61bSbJ7j5K z6qkXiv+Xta(0LcC`vc-75huzX(4hZ4D4Gg59w{{IKiX*omf20A z1Si6^4G?!oJ)*Kvjm>P6T};mTVaaK2~xwJAT{g> zl2QSip{xwPc$~tMC6tqiA;*a^2BF=|NTqOLJX9}h7HOVGp`y%lNb@`j6=$sj9plgw zVwS=u*WosGUIpETzmoFQWRT%gQZK}{t>$#R=(Dh9PrS;qsOD0D90~mTVX_#!O)=OHI!%>2o0|E!ized z%z>?tTn4GIbU=wOJHa2wPbi7V8oV|XmC<d``!ILF-BCjTAL4S4008h4j2mLuR8QOB?FtpW>0@$i4TcIaU_JOV? z&!RkE+CzVB>5lROnSfV_>WG4#LU|tg>&hJD^<)$H>&sc-Zy*oDRzrCeZEPeT!b)Qq z4xVOm6ZABf`=F^Fm$$; zvp{!{Ebw=fcMEJG8J?;$wzsK9D()j@+r!DNPm=<%C(4gPq_)@ zy<{+a?k(@bRv$S9<$Yy1%KPEbLL4uC?m+nfX^!%N(gfv$_~Y8M{SgR4F1t_D)KRMHKb0Kx{x|Wo`#jNauwop zsyqnUaq*{;;f5O8Vau6D3 zN=KB;lHZ|cw(JA{9LWYfS6aa0X;L3?o+kql+xgN5@mwJHLjOYPi+qus2ie6^1pXy* z1SLyl4BER)9tC~6EPy{}$nUUnrnH3hv&04e*)kFBJx6YZSLe#hC^=7F1J81~3)WZ2 z8?bx6oQmkJlnU6rK-xq9g`(ieMKTDS7t2TBTqRdP|0Pb!RZtQBL1$oO>*2<(z&Tgy zrs}IDD93Gs{t`{q*Gk4D07vr;H+`LCOb05^f8em|^|o%g{t<@t23xl=?`^nOAx28_ z=0faxF+!4eBiy;c)GU|0WvIE))NGWzTj0<}E2HvOpyno7MnkG6rkVO?$uP^*I&TfC zZV}$${-E<3!_X$Y4*~a5aq8hejaF;RA;bx>4OtvzsK^v%TYPa6w{x=gqMoWv{r66Y zbw=n85WT2rrE*fcz>waI(HarT;xo1vlOh<+9swO8Cu=+>R>T?>n5==@><`cp^V2l8SDXl67inQ= zi9CbnL&c<(ii~|c-DzoPH^N_1wK6=R2;UAl$0lK}R(<3`UcQkZX+tHd^4Xuhw2laGrBdtAbw|UF$NsHUO5hQ8m_9*L} zlq;WrneCdYL*#29FCW4`W9Aj3&YF4E(ALarhPGy2CvD8Ul!5uXY1kXy&ZL>W2{RiI zBY&T!>Ja%Fs6&hJFLEPV@C%n?@h;bN#P>JS;zrh^{IH?D$i)xfH#Ua$BSmocsG(z# zR-pehbPC=^!@Do5p)u`s#7zl{Rm^Fse!f5H)iJLwNb~bPS3FubzjX5?MrJ4VdIS*9 zSB#brrNX$O(E;uN(}#@gjcZG)4M%#f@^V~bERys=rNy|)SmXk=#MQ&5!Qdi}!reuP)-zp7E=z*wCfsJ_NtISv?_&g|URKZ=zQEH8Nq% zF@B9oAnVtd1hRgeoIv#JRM8Jn1N<6qi;Z8yg|F`#zs8C;o;17XMDb|P_%$i%*AwiZ zldYZ*#lmui=nhyqHh!Hc8Jziu_3NwzvVNVDK-RBw6NrAT5Y0DX>DNkIZ2UT1&Oxd1 zYdPLcO8Rx7c(iByx+v+_QFJ5!Vyh=av9Me(`W+By?X%M{MBBrdHWI_djTT7Sg*ZoV zvOuTp0=U@%H|<$~TP&c1TSWh8RAEND)f5{CD2F3`9Smy z)U*S=`9tfrllCaUK??*tpNPJnJR!8<)8p3Omyc+HL(|9N@eO3thR?;LMq~Mlq~(LO z{H4_sqF7k|5FN$zKJ7G|u16D=(S{>Zgi@pRFYyi~H62T8dK*sQ1z{r_B5T-9QTje= z;-H_ZI2?+T#!)}b0!e$}Uzny^pwjqmS-J%}?HV*S!vZ(GtXH{{sZxywFTE6JYE}Y; zfLc1$5-1F#IZD3>qbSFngb`68C)16o-;(ZUE3YeQ9@sqP(M1!KTFMUDsSVkbe5)r$ zv5<>c-KvTJu4Usi06O?{9scE9(DS<&K6L09flhiax zdFED11RB5PP(p!8s>!ZEl|rE*v{fm*5NB{f~7ymq9i>EdLdHlWA(tE_B@tYH^lPq{Xs z=^A@9O`!g%9!_eyR(UIunyyO*>MI6ny_F4-H7r||{wSg8wi8-+tI}zS)@@VXOG!<) zCtEj+C&+dy8zO619#OgoMA|O6`{?nIKdc5NHSJVhHPUR|uB4`7j%SZq*$`R7cqu_I zrKU_=8eTcxp2F3_kE?GNNW1vc!zpV9ZYKaP@8ns12uo-TX}D5Uv5svpvY zC*v~VYrc`{hjrmkK!N5vslKlZS7TI;XpS6ypbMK~REp{!*dZgja0yUM$B3f3@Oz*X z&G%IOm@ecCnyLD;yMR)3VF#S!X_~)x_fvIYfG!@_9Dw{ZUHCarmgf7aeq0xJ$MmjR zGmb~;x)nN0&1UH18G07lnWy<M(r8QAi;( z!xo3XDX>%M^OA+Qub&4x#DXl`Ejg4-vR?u^^(lH-UF$9;+BJ1>XGSvGc~zoat4g%< zt3U9U>C>sN_(16{c9c(fZB1CL6xf(H(}jCchnSv?<3YA$kQk1vO$apWlZ8)%PVLRk+Fa|~ z5yo))lXUO}R)}psZCxdDZK_1BZI#His}i~PRU+4+O5{3LiCm{Dk?UL~a$TxKuB$G5 z?Rez6Rf$|lmB@A1h1VaCTn}B?5CO_zDbp~LNn1<*i7{I`Wc&dBloDu^j+P!mo=%qj5rcz^tAM!xGj-hmM+7=mA;0~H?KJc?Y@9rpRYLv?Sr4`kk8i~gAP7d6Ywqr z%c7*6I9c1=h%qB9T&9e)3uRZsyd@h>IC4MD;C2{1DFe{FNN3|#EDtRC8JrGA`VI%} zuf@3^=@;At+VS6kLy`Ulz}9$_MVUGAnaE=#^QS;rR-~)~wBJ*}J~X!(Sqk`4W28Ly zNm%sxS**ygT>6Q@fx>Yb%ioD$)r*X2R2@7Sdm(&stTSlG{|+x^MotL^0=Rw*T#>N` z`2Oc;VB}N-V*XULDl#sZ2DZ3=Cp{k@tOLmM2ck)l3F(^va{T3#nV9krK%U?5H>^QU z3f=%HaO!>nYcv_10)L|aFoC2ywQ1TEI`Qtrv|*VVk&~GdABw`dXCh;Yu0e+7NArXs z#*#Rr61#}hY-DvAY0G;?Q{X}aj$p_3x1$HDvAI_OL<;6lUFfJ&bMFU;7EGR8?5J_M z7XripS~_aH0a(Ru1Z#I7nehp4&h>}JsRi`G(^ugMQrkn&x;&qU(9@kGPC>iR@9y`W$IGabT;Euolh_ls+N*=57f)+N#2&y+<3wbUrv$;-J~O}E$Q_8 zyceYEO9*SNiLGd+)xakSnPExSX8f-j;uB1ZQM$SuZ{Q;3t^n8wVm(s-dm1C&;1gze zpyjAM36+3DJ&u}(!14eRew_=1wNOWxaa2&XM5`?*eH!&ok_Sz0ijhg>pvjj(Lv{1X zo*Ze<<5rK+ts$wV2M_ofr;>_F=m%VwN+2i|nb^2%pb>~-jR(DR4^+O4)B%DiLb1<* zK4!^GJR4!K{sK6P)bTLXFvyKUaE_fKfHs$pzg>QbavZvl%Xj+H#OYK6EU$sZ88jLr zwNjE-0Ot4>3@n2`V^2Pk-wFj1FNG7W?#7t%Q-~+ZKG>j`RNRK@Lc01>N1j&EVVHR! zHO@mY_Jhl0nD#n{0@WO41*ptN%IyfyjGRb0?}PI@6u?b2AGzK2*=aQwqr}0;4-n_y zKqP$8uU5k1!LGE}7xF!knjkbEn}|*YIt8izn~jW^Be|Fde_A&$4+rXVl&wbPDx}UV z&;1!C*8u$k3Bh`-K|+ZC==f)msT4eb^1H!uCz9F&uoJ{1NQ}dOa6YKC&U$vH&zoGE z^x%2OJ&RD#m0r9i8Zs>Y0dzg73;q~F(o;h#vx?@b^!B00fV zI28OdF=LqD)-kxC(&76qa6F2nT!0rqJV$UC68k{Bf#lR5kZ89f=nVhTeJQ&TWgnpS zJ+e;)_zJ`q1Y-bx1#t+;slP8Nn*!N)^>WI7hcZ0^uM3g=BY^4vSxB8AVfxAOX3|~L zHTE~TkFxBXb--F1$uzS$h$cu*<796#B8<#CjSYJr)b>iU4+l|3cBgp;j>=1r z6hBcnr|C=0c~s_sX*N=0!AV#7mjUV(rP5G#0V>Z&I*FD4;mmBFfvfa0yfwG_Z%OKZ zrUmt10nxS8-xs=`;xNFB`kzy3B+9m+aufCM`Ojy5^DA)XKS1MWBS}T5PQw2OimCrT zh~9<7F7%M;LN5Y6$C8=O!>Jq(4*AxHhbR0YCe+~hTqKgwIK7^rv8~pJJS`6o% z5aLzAClI^<_eq`6E~((?XZp!1bKPkLi_MW*BhG47FJ5>C0hS^m(5nLmdJ(_^q~Jxk zc{4N#GY07L@Fh5G>LZk&2ZnQy)P8_9ATB|2f(rP(og&OQ*scqIK#@mKel<9*qR5>9 zH-p%Sl>0ouT_A2p%DER($?GQ7f|uv|i!XEQBJ)|2fD#L)oYPv+QE%=WU}f zqwH0B3S}=t`RkB-4N093@E(YFsc6rCSM(vO9A-RWuT^&>6@3A@&ytFM2Js^meRhJP z;}^l;D8`VlsE8T6)OG4ZDyj}A{({_5DvAIEqj2p-a)Ne_Wld1qi0rKZ+Jb0Jc020wympYWbvNj1DZ){= z6dc_s!cli5h~Werbti$CfRq#Zk7vEn$|}u_J?KWgKdE&tB*0@h7P zPOu1*Dz0xSW*G3D?P?~u)}s6#aNLEYRsie-@rV)Ou+jkBCM&@IJJh=r;lQ#R9M2+| zv8M@{m{l2jK1KCGBs2DOMXfNSgNd=H2g{hT%#1xn&|HQBlTq27O6tR6N0iHG`~U>% zoL~yj9B?UnSBy)Le1L7nCULL!H z=!TSYE~M<)X{U2W9}6`zdVGt1FsW}KB>GbYFSnyXj3l7GDIg{xIl*$E)etoq{n?_! zIR5HZlrI3sT#Bp*xB$fY1eXD<192Hr&bq(*LwzjN%&6~HJu0bh10=4a3hKKR#AX8O zyAQ-YNI6&kO<$ucasF`TJsV0AV{jvmg&c#|+On#XaOJOc8gZaum~O3K)SUkCb_xaMyhWYQkx&WQ%<1hc8q z$@XdB5iBBe(rJVq@k@?-^@u<4xL1$(GjB6qy~ee(*?t4wKx@vtjNokFG~3C(itQc- zog6Ps)iB?-)HH6GKbC?{_98CFJr=^(BQT&DzQ;n{jBUgBSZFkF*TF|04|!RdgQ?*= z>*0R6@-#+|*+q=q$}y zi{W!DpOgIz!}2{gAK=((s=gOXp5W zQ(ZE#0&y-q;v9n&=a$-vi4Yjd3Z6l%7}}l{#e70FwEPT4v}`TUmjPKtIGcQ6so)sN z8I26+MCQkEGVercO(7XDf>OJIpGR`CD|eIUSYAE3n><&3ob1jeh!J;_=Xh%Cu$#QC ztK3bV^F~{T-Q-POSGyTjSGyV3P!1Wb;ar(U{ekKlTzPLhmt3fDzx15_6vb!N@57AV2j<%f5||JP8E+ZjZ6RChwcUqiYu z4T^*r?nKNIjPYU&I7T6LqZi$1J!c_!IHYk}SzL8Zfs;sQM18CYe1pM}F_H@BITZ4B z+h5_F-6rc6tUB|(^Rsvr#ovgQ=tV6xp7)vU$gyD;_r?8x*xD<(1^IL+fz-cm^OfAR z=@c+1Zv5c2&fpz|zY1CKGne4IMOeT;>#xgS7q>kb^LBcNTMxSbD$7V={}=pD)nT<_ zMw#}J3s5ux$Ye%M2NmTz%kvSs(~zLdy$ZR@A0ZbF1S^6F<bqQ}0D~7BrnfZTbnIa&QPU&hT0ow}!Kb86}IIv~STsb-J#p2&+zbh>?UTJy!}kbQAF-M%=T zZhuXn`LcA#?iT`WJml&2W$ASLvb5$4(&5Al(wkv3%)1oLcca7h-Du7Cp~H52kl6FA zr7GF4&Lk5Ks%BW1>LxU|K@KY!sN@i?jOj5T~M$-so>hXDMbYv zyyYb6K}AAA^jRplUQ;SezKq-VArD*>Z%-=N_9LaJ;12Iel2mYKLcv^maF?c3n0y(# zGBhI4Z?N;24ZzM8z()FUPm!eb6A9@aIM%_Fnj$gsg*ze3cx^QD;7w@Wll0+LZWeE} zyzccPNiA0Gf!7}iCYUqsM zAn4BxT|M{|5&V+0n-hEt`YThO7t{s)jiK{{{s_{yhOX^oepnqNigEBe@1mrG-zOX# z!e;)U=~b9~g>IVYS3vmRqb4p?;yM2Na4g*b<@v3kJ;MMA`-i}mY1w@LQ?O-OwiLf3 z*s58!H2-(7Rkv(${~NGnTefO`53uD}wru||u;p5|9RFvq)v#=}{Hb88Y1wMyRoGPd z4o=qOq0bYqA!)|Fme_XXJ%ecE3mXz9V0mA1ooMH4}LsA~ZnHGr8qd3a~{K6Mt zjs+o@nH~iDK5f`bLhSedD34j9dQoCQ_LAGXMxU2;mLT3>;#>Y!t-ji{0Ta* zAx@DsQi3i~kn-$1aqNV<0(8BU)8PJEDMVNrrSP?w%j9>^MJeo&m&@hwtT?4U=ykFQ zbV&+dY`H>yhnEwag28A3S%=C5Cq3~@`JaZi5A|*WU27|{*d3&vB*hn# z+P2F<)BI>Oeh8@Xjc8j+bvoxXo(O+ZtJ4K({1}+hqR*okJ2p`w8dp!DroDZz7|O#u zx=95Jn%v8*B^aH$E#Ua59IWxq0FsJT0Vc@DQ09(mMK`a)yk#9yHg93vQGND;>ki;s zS$3u28%vp&fS*Omoroz#)0vJtCY3S%5=9@gcs`1YpM&G4raX`G_>O9rFu|&vhYELs z`x1PUmr$rr27wfL93ZD0ET3d!u7tJGGawfln~50|3KcWVW*v8;I}!F}5h~IkmqPjJ z0JT8mBGvdJ7qet=J8NJ{Rx63t!2BCEt&rpxYD++LMT-0kP~%q2gUPSSugbOTM!^77 z_an_E98r6nBGo9?2Xq6NvzM$qiU&b_K)|DztT9KEa$(9P zkLLGa`aSIO-rMUpM;i`w2~XG@2J zC?{Y`CxMuN6lK4qSU4%0Z0%{Nor7drdp3wO3E0|IATB~mdixc1rh7?IsX6BN=ZEcTyzj?LDZyi|q7v7l=m*=xwql`c_RWjnmtttSZxT7=Y9$d%mN$CZo5#l!@yvVE7ryc*>WijsX}?$>}E9lb)u4BZ_1^ z%>|K7Ku;TjsE=ekrC2yAoAmS~)V3r$J?##n8v#8X1Y!UZ|LSs6=g4xLKl^~Bf}VF? z%aJq14Cm^K(PlJ!2pqDWJuOFlhJR)>JQYe#p;nHDvp~#1%HeB;iBVCo&HYf0H%^E{ z>Wfsu4C4fT+pdbaI>2FdDdZL>6|DrZf{OMWSEPLGU4Me61JuOKXev}^CN-^t;AKfo z*MrzVO&^`8sY4Y_-%%4Yqp6X4I;m+J1h*zNJqY4{YC3dWlT=k?HUwa16g5{VSgbIO zdm3_2CKc@g@hTOCz?r;u_*KJ{fhu8UG@YbICN;eW!FQ9Iz5?+DHRT-FBqvq2jR%r7 zikUgR+bEZJ^1KxN3b{j6#M4`yilc#Kx*@sobu}xJ?1rhRjUkzCSOY{30lQ%%5Dkz_ zH>4Quk*#d98@5JmE3&g2_5e{rz-~Ag#6TqcnG0tDBo#B`ZCiD3(%W%h8cQj9I}5}N zB;zf)-K0p;+hwR-LUx|sD?zLvpto0mxE#rNOR;cLHtFs4sNFzzdV4#F+X(3GgCOol zN_yJ};)0c`!XoDSEpX#Op}LTXMTek)*dDqV|2V)7x)Ad__QSlQqU$ ziiMN1NpFvU^)T7#tv?QNL^9rTAJYt^q_@QoSImsJ?G-PW#@l*eDx?&>Ee6pX$#_d{ zHz|_zwhL-Ik)7W51JQ?o-X?2|w-gH}Ws}~H0_zB})7z;aCKE8W3qZ_6!e8oEc*dz< zbNt8TL|URp>&UTV3j0u;gZg_>z8vcNBCt%S^-$r^L6Q-*^MWnQRKLzyoUG6!vq9Udsc(S;&MPOP8=3)q${Bu>Qa zI6x5xB@}61rG_#wlu)L(tubf3v~+SfUQmKDGot|1IQi#dA|$KG-)#QO(?GVl2gPY? zOmQ#Hww>m~F-e!1SWa_J2b2nq)J2ASW(RVw#F04=pAZt8&9g@@q7zm;#Qpn50hIu@}nL*T1Ep*!~;D)G}0gh=D zsR^(M!~%jiML?X5ginG(+d3M)4brMa&!+G!6kdkvOOYbu0Av`l>wvB?LbSS`R_~`! zTfH@D@itW7iexPA0C6t?Ej|un7m^dA#k(P_OokHGP9IEKeGM$HARV{*4$%He!H4Lo z$tc)f*FcbsyI+Cjiz6;GwT9z6*-mC$ z6jt5zRTLbFiUP3YBT0XNrXU&(RW=odG-+sm4ROxQBtL^BwzDTP5$J;AYfZjU=xDybaK`a{4+=-3dN_q%0Ep~F=7c!6yb8>k8K<)9JlzO*EmVXGd4#vGac?i{R{}00?1q+Sk+Ru?)D=Tm_6hI-q%OP-RsS#>O#71%GNh&) zpVU>RtS)dJr1+a?)nWE}ZWpDl(OYl_E+3+>IckfLM57s9L3Aeg4K@8i^dk6xD>={0vfmm#6OXY z?pr}@MsngcVX2U+_t5Vf+;LRf0EPFW`feoY2k;DtCkVO#{0qd}1T6u+0Pz`8F6C>F zK*?dCUy*PMOa$x-<%&BSs+(Myg91GnqD+?qWP(U1SP4)EL~Vj)0L37hBjr-I_6C%c z0Ch#eU;Y(5e2aNcXch|8;_h5sGUI_-JmMa(r18vFOM3IncJjv%4B`dD@(=1jezUNk z1`Rgj2d_(N(0FrQ%1^`PMm6E6Yx$dWInLjt-0<^?q?-2N70IdA09|KqzyY8-p2O}9 zdhA58yA406+Z&h-WnHc_>L)xi! z2&T#d_5!k(2fZrU%Y&hn?B&5M%RUf&HZ9;x^RpP=Q;gqFL|qJm?D4uq_Qoe@Z+wFG#@^h|jrMLh8gXxOf<1nM_V@|fxfS6!9`E~D~-L(__PfwZ6qey(lU;r4aeoV?dio|COrn1I9iqwfs&den2|Mpue9D&;@^G%@8JII1Zk^PM19%j~9 zknxmtLVqIjSQBoF{_nfJ>Y+|~*q+PnowA!Oik~BJ`=m6dkQ3U7B9Bb)0blDb$?OO^ z)D4+2f^B{iMouMVjnHq8HQ}Okd^F7Ke+y{!8iMN$$fEm>;`Zp?z^n&I`&8B)UFtvK=IcIq4s&S;`rDxG1MWCfyz?5 z!4&G4N1yX>kWc&oSn5vHg+sMzCao*9h|aMeT8r}=TH=L z)O59FFW9bjIMLPmB7R#2XnYaMyva~xdt8(c!rj-ixgMHrpMaZB3S;ZAQKraz!wf&; z=eO3QiLJvHu*P<~XkzQI3s_{ko%z%-whp_-6q%>t+4gC8wtX6IJ}!*y!q~4P+mY#q zn30MmwhNm|I)sSKUE5Ye+05~K*Sj(I4~Bp zX2IVw!^qth4P(@aTu2@kn3}tiHEGzyg*7ZNHM^5F*wW=;*08|Te4MPo=ehQ>h6VUE za5I-3g1bEg%~KgU6yvMFMfFh}@abVt?0t)}fKT3nmQk`eQLiKTTWQK_a%Q+ew_hq1 zm83GBc*%udp$~dkWWPfnlv-rJL?86D$bO4H=w*@p8hy~)BKtl1ppQlNi}XQXi|jY) zgMJp-uhIwoEwbOG4+dCdzf2ztw8(y&J{V+C3f(V@X}HYKqzC1uIHvFg>7Z)|6x%oq z@!B#b+<_t(?y~OEq+MY39=(K^+YJ8`LG+BuYL;utMe=M!8PQ>m!kNY`rtZi z-LK9M)d%ZM$b#zpQhl(&fJpTrz3>{jq3yTogX@$2bC0FqhJ^ps`MvsJBN^lPk)0d- z^JAE_Uf<*mA#IM{%?VHW&HCULO}{ib;p7_)a0gJGAFU7eQV*QuSL=f}tqJ?x`rs{# z!nE;vA4pgm`@KVzHvW~c!H?Gm?`W#kpCu|&{E&SRk;2+Q%Wao` z3vA{D%Ep(BKx-DHeGkP{kT|vUhb-iY=|R#Iws0c9kevl-!$47IqDH5I_W3FM02}!w zMN5(lo)akstyy5Q42d+G1|ZvT(-Ar042u+TM=%pVhzudkV-!iAVJ`VwY07GHLQ%K7 z@ZTybIew}}y6&McPt`~d?^@DEQEB2-{pfut>ZvKK$q7Y6xi^?qRBnEAZO-{fSuW-@ zR?%?pV5OoF2}N(c2Sp<_Wi>gWXmSbuo8A|h!hr#I>RA$*G_g|8RIdqX6)Sua_YIrplsP%{I|+ZKdx*kzjbAuI>TE=+9*3Sp)8xq&e9as>%1~QB>9uZLugOpV0cP7Ny8bw6N8pRB6Y$+bl|xu0-1` zipv6`+bv3$#E&ceh2=Aai8~i<)PS-IODUa`F_plYjWaH{LqS1ThqiJts?9zJ!m|(XfuPF$UNHr*;Xl; zOmxU1Ek5o4ViC62B>L4NPs(WPH;Y1YH{}jn6qeW7ir+2rWgjj>0_`+!5Jm72=l*ECdC4iF#m2_3 zM{TY!9GbjgH_}3MLp&;WP3I`K${g2pzm^t>YdTyjizc0F)}oNxnl81o zDC{nyxegWu?nOi$EsD6ksHKxdQFj1QXNzL)0&3}EQHpyuQCEvn-Fq0;5{s~NsT*l7 z1K_`Hbr12TF$8wxNwzwjhIJCt6`u}Hh4h~`@4x-00# zX%=~IN7l`=DCB-YpXOT>j&(0Z&sre%DEaO$tXya-1Gh2NEV3x#nsZ{YMN!wBbxSQu zaeI(+nMJ8==nQEMmu*AO5RYH~wGBNp+0b7oa+a`Vn!IS}4WbXTp_elTH(G6udo9sM zi^P49=q8Jl`vlR=7HRiXHuM&YT=yax*kqCCt|8iNQOI3G&Mg*&-AzQdTI9Pe$hp;` zzJ}IovF)y{HI$t1N?{57 z%u_At^Z_Ys1T6*jQqQgN%>_MhBJ^Ifz(1K{?@2Sz8E&-MUfl1PiE*^K?NW~USZcI| zMIzk)GFog9eqGKTFrzIkvY$wewz8b|8>!KgED8(v!Hl*x2wzF%PMFa)wk|5%3p3iz zqPTE3%xHUy(uMnBMmt)RCEO7++R377!aXsgT@1p{^0_N!w3|gW*_a-@c@u7o8MRYx z6&G%e8MTvam4#6(TEvaO%=jMd?u8&==DN|o9wT8cyU~7$v7Q@bM*C}O)s)JR=%yw3 zkIQ$t6WzQWeE`#cZjl+?Vy7x1+$1x4t3|3hx5&n(h$An>Pq9=ytbs-^`f^Y zuJha~GrC>Vh9)NrzWf>fTZ6BhXzUyR>5t=c zAI&KCpGJ+QTv(#mN3$9hqhs8!GK!5fZKz`0NHdC^G!2v(chZbvD@_Akz?M!FdubZT ztrw%%OcPrKJE%dgvlZBUF-4-qG9Kk-bc|v@%~vZu#DyO{hy# z5UR1G=7XTDhuBin7*j3X&;~}=y+(R|=5c_Jf!g@GdBt7XN zcGjE^CL2R+tx3byL+q_d5y$7=n*SeZ?;U4Fk+lJLb#?dcdpq1acOozh!zJe+D48LH z0TB>I#Xv9zLzTf-(_08|sH7C`n zQ>Uuyc2}Q19W7GSrCAXcBDdyzK*mBO*W?xfatetLkzG?zYa!BW3TiDxeoaBeLL}H+ zMm4k$88*o<7Oqm4RV_S1`DG%!&y0{{lMNdSk!90Z$Sj-D@rt@ME5br#+4S)g*JGB= z=prRvaXhBkj4n2q@|b5cy2N1GW1`LIQiFLOGi^qf8BAmzYb)|?(gb5G5^fq>nQ$|@UQw53Mc9gjn+E~%m~b=tAEO$ZgDQGdT}TDI zm5GpZlTXl%HYD9N+L&}RdQ!2vrYy7}>E-l5 z^KM2Tw`+90>Vn-b(TO4S)`DA|&Dzl!-VaWa6yH zvt)3b2&p*9Kq}6}i(+>w=*CUh#XFpRktvF7oV3?;4Cy#o#R-{?Giq_EtH6qSHVQ0r zNXK~~AY!HkZ{kWnnE+ay|;kXxmcy z+{$g{XbbmKDv+6kten>p5p77zX$)jq&SYB0`$DLhWgD1&G+b%9g2$vcd$DQ2a zpc`$-%*j+@MjKLdnsH=m&SYB39hSZ!p12Q9k+?*TK?e88_Rfp`HQ;CRiNY821 zF+FFr!exC;SvU^qId23c1B3jW8yt7E`yv%cSCOIfY$Bo!DLRegn4&W}!DV$#SvU?U zI)4Ks+K{7@E-{Wf+ik@|MWYQ_IzOyxLz+(GIHu{0*0`*$DT}TmP3NY7L>uySZs_S% z?!HxR$kaK6h}ecyou;Qu)frvyvbv@$v>{dJd4N3TVvO!vtj|wjph&@f*{2MjyDWt|^P2B5mhUfQ+_p+x7Hc z?v+#^Jw@iuJ&1@lr0z65W$Mo8JD1fpWpl$Kr0#s938yP}*CM3u9D++1$32<9W=P#B zc`IC|?u?MSvzEWoF5gjzkh=3pV1Zn-M@Zed7k>Ccxn_@$x--H0o|kL(2&p@70#dtF`#V%8KMo8V+4{JgqcLfnrcOHSeg4AW|&IqYH4+5_!JADyS zcW#5zspQJCh18uBFt4ycT?k2}?wo=ELzh$fc>QE1#pU&9Vs?A$_OD zB^Nv5#-+!P*f5Fhu`mGS7E z^)V87-VT+m#;Zu+ITt*5bv?#}Vws!hkYWS;Lw-h_3^-&0&uF0T13%_QL`dMd7oOo7 z-ywl#JKrIJXFJ~^foD74A%SN*-ywl#yV;5ap6zBU5_q=r9TIr9^Bod+w(}hlc((H$ z5_qoI;5#JnZ0EbSKlyF~GIMV59TIpxi+WAsyGa-T^v?PYDLmJJ)!q0GDLhXH55DV< z8A-9sO>{_cF?>gUMmz#=$P}K@RJ{a#Oh(|w>mML?F)2Jd!=GJD3eWjqcQGkE&xU|A z2q`=xr0~21NVF@SR^q)ME=CO#8Xc}HP9-5tps+Ztfy3#f z4-uK(KFC4F&j2P!G0XH(J}vJo2|A&#O+3#!0tOmsieiNCgkZ&{G za?kEvK%a=`+)i*2>Z;&Tz-}-Runs;&=>>PAmLGfrdSGjfp2%7QL3e^}L07>WD6P)g zdCSN>6?L7UAlzT@6y6P5c^U?*DH*&18zvZSb+b>W{6?TVL06H#2BmAb^;`a(+{46v zEf%gtyKZn8H0Yp*Shyo#KPZE4bvE?-h_yBs3vZKJl?}aa>=U+vTO&HZ0$l~80lUG@ zkZf}*XH#`Yj;F78MkdaUE~AX@L&~sqaHsM*_IxfI77g@th)OI8#41k82^^{V^mL?Jz3% z9k4lRH@*#)s&2{YX!*0+EJ54fx?(9GkM8%77t9`8ruNR5kefrF#7gI|)7-4Iubw(1dseIUxM)Zlva z*~3kygFO-KD$897c($(}Lp*G~dsyhMfEgniIYuoK*Z>p@BZg`1$o|)WS`3z=L#u>x zPX%$O|3PsuNQwpaO`UQIO3NQ8dcmR|IGi3a+B^n)%>s8rPVE*H8VK?x5Ezc5r8|(x z045S?0x}E0OdL*Us{XPS0gR{w(}SARA3FMo!<|v5gZ>`qo!0`m8^Fm%z;xS>oe@r( z)A?2~&j#~~_DpwqtJCv-a5#CO)67A{#cs`^%O~4{h3hx;n;jg()lKEca?x7|lXk?> zb61EgF}2kY^!9L`OWktpYi~r}0GzxA6Ts=U2n-!)jtdz8Cy>#H5qVqiLc9-S-S&E& zKel}*PR6H;aP<8L2H_DLPLJ`J@HkKI9u7}QEX^aZkzrf2cx{fq$+%3LxV?5ZZWlz8 zd!cbGST?*S;wSmSK8>?TY8O`%_G?-sr2ki3O*pc{VdS)ns|mMgI$c!CC;23XCf`)cADQGa6#98m8D5j`UbjD~Z<4?mn|%M;V+b<^MSgJI zxn%x`LbH(Yn!@m|uK?b}OFH1(tYuKlU>tSqFoatHYZCr{7oz&)Oto?nUJq*$q!9MC z89V1Bygt(;2O*WY4o=I$q!F+cuv8e_N+$)Gp zGg!{Ok=S&Dh3;L%W*98*K16I&gB9E-iEU=E$gL-~xxr$$3$ZN>meBlJ`_g>IgG951 zjA)%2FB*3N$i@#_`sdLPvPCu5XK#&9wvO3b6Ri`?)6|o&mc9xFG@sMm!wnFlb)s`A z={YW=b)xf4>n2(!S|ctq(K^uuf=IMZv{vBA?ZY}3X7)2$C%VYmFCh-mItn6M2Uedw z1x*^OFY#}wT6(Fql+ilTWtw(rO2Wt&PoR;E)`?!C9vI1Jo#++QMBu*2=3g~fj%~bf zO|^~J{dt6ChP+|hV6;y3rlwj=$w6%@(yABk1wGkLK(G$;j5r>Hb?~^M(f~|(4A#Np zhRXFY+VkY59l<(dP%ZRia1gAs6|h#1!8#Fwb@l=_%VV%kgkYT`fE{6G{3ZZp8EAA8 zwyQ~~-3qo)fp8*6Pau)22IFFcILJxn0hU0S+B+alotC4Q0uC6g6GiG?@JcEka5ZQy zqjBPPXHeY#Nswg>;=%rE!t_s^ok5JoiHB;|)s%#y@!#UVQPj5KRE)>*>v~4fME}jI zqDl5tWHe4ZS+lODBou8m3jd9w*=4Sda!$vywy!Fh>vtn87Hw@6F&ZbHr&(815{ecb zh5s_U;>C|a4}Pv|RJ`yq*5y`Gyu{y|u;|&<>R~iayqjj#gp&Fu6i~MEIs7-uR&7wW z;u}znvV;742#d0VtujXA#D{2B)s!rG@%h`q442V3@ftH99hcEK@dXA`E~9bcwFYxt zM&rcx#L+IpA!2*tcrHU8;){)>?=mRm?T#5WtP!DTc~e2c*vaYo1I z9RkOip}5UgxojwIw`Vk?apF5Py{{>Wq4-7;FGv@^HHu6$PW*3Kw3N$eocKS6<+_Z< ziN7ZDv1D#@eoxU<|;Kw&5op_x^m13Yye2GO}#Ymm_Qj2QEP@VWP zi+YN&I`QQe^%aA4;wvl~C`RkVS6Vcu7_JjvWzkSEUMIfVqIt!Do%kAy78E0P;%hA$ zvCkK(qhY=2GeUOO(E-wDgzV7C*z=%@8x=dLDVysaBV=b90ypHhJbpn{hT{hZuSQ$} zL4@qQf}bYkF=Qu3$W9AZao1zWPK=P9-MFxO4B3ehvcq&jp2v`#7$G~q0rTY=AV$c} z4rn0o7_t*1WaoHUfEcn9BV^}t%*Hy8Av-ZbcCNxWHF*r#i4n4M0eaBvF=Qu3$j)gn zxYhjNZv%z$vz~VnTCYh67_t+;qt1d{$x8+t4VpxRBm>#|R{Q{ZN&m}1m4z}HuO3u(chlH{|2P^N*>tYq5D5)RZ;Vxe;Z*@^N>};WO&KLnl%$j>hDoN z*K-Znj&+$1FL}P5o1WbSWTWi`|BtG+7p*oX#YrT4z68veCEov^s!U)FFY%S*n|v{h3QpA$v4JUm8q6tm?eC9`&6PlWmM zk{W}$zGB9_q-b6(P5g-eRL^O8m@T(6it zFKM#Ejf(m6u=gNc@|zSh=q31A4F?+ExnT~yq>~lyf(157)km;i7T5%N^b`^4G7{;r zk`p{ekG1ewv7;%QQwdV(G2TTnm0mJi$=v~7s9-X^WR69VTu&vl)I`V`?MSHieN{U$ z>hYr637AnYnPJV%vQGXOv0)T#ouy{lq^ z9Md+l>k*NjA-$eyo9XqErHYNor~Gn9BuKD#1vbz6m;`$_W9f1{StpNCm7jrmo-B69 zs>(#1uM^6mWwthdL9*~zJRIRsAZ@5vlLO;zrIwSzq--Ahha zm8XEU$?smW8ujqIw=*T)1_Qn`qv)h-FV-2qbXMEcK0~jnzRXW};5#}UG+w2*?DQi#A?3Jb@ zy14rZ^;sA9Fp6v!_cWO8;$DJfUEIg;Y!~-4nC;^Jf}xAjsRInpc51od*-ou6yiTSY zs|+UH*zFn^Wx8>&&!@Jg8;96#jLyL&hiY1`DT!`ev;a?M%}Ci>PTLK8%W1oDi8PXR z!`@`(+?T$CU+hh0=-&AOFmqe!mfU~*2+Z6_qEiRw(X_dB#A>|%2w?WsvDw{dBrtpH z*xCJ>TI{W(bn3#xVWR2OP5!;?pp4DUwo^xH)V@WtADWWr)T?_oW}SM?c*l0?b%WVX zz450`y=8c|Q*RqAbelUs{W}KByInT{w%%X`cOUZJ6HF)W4eapyf}#7l!Qh#nEp&el zCC$&4+hCkwezxF@p8rO@PmE6M4ErNyo$;CBi8Ed~8C^5Z_`*MpjuB`4(>h~1?fX)* z|B`zm=cS#L{t&3z1F!z3o$ab0swXQzTP&I{Fi<&dH7KH{?`iZa-mE=~BQqAL7?!e_bR`Zh^V_SQ&;#8Ot@dM zzNReH;S=;H15#gdf-PzBHEwJv>*Kov_G$?PE!`z z-&6W?KRC@>JMC5rvJ5Vm((|P;QnsW8db-W*>TOZtutaUDnr>&AI7ZS6>gvbY*KdeG?}oFV)?28&|(v z3Bq@0A#lTBny)IP+aq|iD!0R*E@I*-G%$XyU)4A^vTp&Qd?C)k^d!mJrYs#Xj+g!aAkopJD!P~R8)FWKJ z?x;4lhK=26QP;G6cl)+)b+&z|C> z&t+{F=5C9%^7*Xo!fc{1WNjDb%-P&YU$m$;ro3!XalO!=2ZU7&NE^c#z6m2$26)}o#o#b2&}Thup( zerHiJ^q=k%RYSjb{lP@UXFp_y9>){=N0*jq%EHi+*2PvkHEOhd03=hRY%x1E@Ev-& z>5`_3dLvXaQ=?w{Z&aIV(DsbI<#ROED7r-!P4(9LWYjWKqfgeBnHqhojmgyLXHh#f z2DERxm%gdm_CW1VCL-M&l(nrnEeA_uB8#>sY2DB@8;{9Z+h#nbWNn-An3}b1rp7dj z+Nm+aqT+^$dK8ozH*Bi?hpMJ*mYMQ!BTU&`+7?-uvWwOaR!v!G)!C`B$f9;?EVihf z8cQr{r^c=pwNqm^i`uENhegHEo%M%RL-*AFW<+g}jZ53Ny;eU}ZTm9q??gnpd3o0M;9t@971EfRDOP-e;lcs(k8SlSj@nDVOD zZ&pot&8o9g<8_PLsquzI?bLYFqIPP$Wl=jd-nOWn8tW}8hQ6YIuNwNU_ID*BK6@`S z^h~+!5z9mtKb^lI7`Hpd>t-%dziRpM#oo;}-GKgPQKcTGv;S*RSDn`c?jHtqJ=Gce z9Y~^N>IQ0;Z-FX{=G6CG-d&4^>RUQXTQsk3=Orwj)bj^a75G#9v;H3#Wc(d?evycD z0}n^c&+L1jp-$-0ZjnVddV2c69$7bfS#^%;(;1ERwy5n!AB(yL?irr9{Uv7T3}eHxzi=>=Z* zZ|t!XnzHEA)}DTeeR_stv5i&d8twDjYoF`=Sk=D0=U+=iJhnro{YVbj0*~r6Wubj< zPoLZq+C$!4?qk(C>OS7m?`u(I+TJf~yD(`kI=a-Nx-etTR43ivqMq^gGK=~+@9^V& zfJFn<$m`(c7R7{h)4jZ#V1e<<3eOLTh}|nQyZ7U)T;7opR$EvnQLTm;XtsH?8$Rmyo5#YU%>p5gU_7Sr|`&wr@e_6453=>CHH0Bb!q zmQYr2f&vEIup@dj2pX z;*c*hduDRVeC4t2gtD4ns>SuJ^53coyS}|n*@(B<+JB6~WNUuk852G6b;myVRoEQC zNonfKN`pJ4zjG}t8dQaxjkw--~YDSMA^3s&*MItsP(B%Qx@90`Fd4Vd-p$U z@6ld+#a~<1-plv5BqF`-ooOG>ySzR=)oIE?`$%8E3dq<#>d)Fo8`KrsNBF-`q1;N3 z_5B-&i1u-r_MdsO<4>pB2{7V^EdI+BVl>sk)7) z-PRT@8pGxpG~|Q+bW8sj=ropW>-!NAv1Gn)PpqGK7rLF#rZr_@$^O268<4tztYuca zHS7R`7L;lGz^rYhcn!SLa%B?-(N+Djwh!|Cv#V_%oVDGJ%j_XO8`G3U+o$__6d>b; z)kYoWhiE_3qSCX|{2i;>&-Q(O{m=C5oJ{*$yz@WTr#ekpXusOmCjwG;BU5pDjZue- zOE~H({|0K1A-mT1_ah>Xx-L_9;18&Cz0dlZvQT%guU`jb)ZN!!-97$q)FA5a_x%Tm zh`PUJ>R#eb?gKvSYsy01KYZP*f2Qu4_UfMYHv_|{d)D_8BBJiOOkIUP^UwRNuPF<4 z>wUcfkg@LF_Uhj8*HD94_nzubv5BI+Ao{|_KFoR{9;`u3KF z3&6kpJw{m1vOBO>a)%T|Lux#EBCv%aP*)VYDK8<45fK|6IS7y*V+=Lh~TRdqpN z7nf1IG0X+5uPF<4b%9<~Raf6$U2SlDRb6A?&mbb!HD&5vLO4O%Az*z?+1#+SN07gG zARg2(x-sn;RKCU|0Y~1ePJ0EFTI@%9-XJ=ncTic-kuylPe)gO$ zJ&B!2`vsNmxRXU>!-deNKknJS1%nU(lQ+yRL0=PqS>3lWnrU0UN~#@WI-7gR8Gff*4>k- zKRl@1gE`mRn?uQsgUSc6rN74)Fw;$f%J*>jU?(`4%n`wPbV>hoY>+=^Q09_xLFEoS zP_Ql;A5?DG;F7kWa-X<_!Jz4cpu+Tnv2nu0pu%@UtP>^$6=pZIPMC~(8=NpDsO$!w zb;8u3^6CaBObaRt!Lv@79#pQtRg`tYjG%Jk1}AJ9RG1dA)sriL&4S9NSZpiCC7TD8 z7*4P**&?Wf=yq=>_~uiXJu|oth6L!JaL()27VNkhxgA*17l|45&VR2B| zhE6c^Vo6YW2lec{*fpq3#!SGxXzYr4v0HE{W&<3wcaZ;XNamn@g37sgjA0$LZ%|1w z6Rd;w3o4InaL`gTjQy?HlfAh8F(HBB-h*>ySx{j%)1qd?phgC3OG5eyH>$`@T|KI!d%^T=VD5n&G4;1{Kc0&i~yAUziIjbhZ=B z;632UfrHxe>ZZGKnb+PCKg||QEI$T#Fh8fZ2teIte}z~_`JP%w`JP%w`JP%w`JP%w z^F6g@dFivb$?Xs=^QF(?i2Q?qoibngERGEMMuz8fA+1Q*si$bfjJ>7Nwa){te+9*m ze}eTjh5o~$`$i}}0m-TV33x(Ivt;ZoP3Zz&nHhUaQi0mF0Zp9d+S zP{fSArMBAPfa^!0kVfVJFpX?W$TY%^C*(BG#l2IhX7WXV%ZK5KLCuu>`+%MDPq<;N znVSCrh*zH6iVrhR6HZuOk5`aurVA1~U9N#Zk%d!#Bg*E%5N)oRNhRf*@N-+UW$OZR zTlZMDzf&`-l};|T?!MBg*{YQeYI5q?co#M#dWtm8ss99c^A+rAdDxg?sK4;QU7hmq zh*mr0@}ja+-Z40k&bm1sCWxjSHDoNRdlQVw<(r|mc5xj|o?d>QrYsT8=1#H@Z4LenYbd8)?Zn@JcDxdG zosNf~R2^SNRlMr*Ce7O#V-(j;8;+LCwYNdb^n@O9$}PBdtDPZ;S6=ugkWB>%@sg9| zF4n9QtyoZU>U($E0`Q3M4#Dfi9i7F1N5)U{Gnh~WKY`pZuxSFw_Px<$Dd75*EKWv| z9EoDo=+5}QS%;t}t&diqdSma>-K>8T;i09QDSiivE-#}fp2y-)7Ic(>h&p3VL8%H| zeEkGoWbFDKYDXRUqM@&ECt)rKal;r0Ns8sxTF!~Ojd6^nBB$$A2&5$s6kp$s8kN&P zXzIh0eiVq(lv8=)*T5;w#OWe=wPvW78Z#*<7?2cS`et8 zAl73Xl&S?S95tuy-{fo?2m-u>L#>^#kkn~DmRDzKJ-)Fa)ZaJ3i-QL&Uj|MGcE?@4 zbkgL{DLErgpB%dw-<818^#^o$W`W{*^?QePy&vC@o>kyv(5v4*ti$0@n2g5<55SM* z^+~70sh~B0cCn%9)ejvO^PS3A&DKcY=ybRg0$m{R?Eftgt2ui0tRTkse%#e_oeo#p zHa^@S?)1GG#B_u-YNiC5U`sePIPzr4$p7IC_0X%fxsb!@7j4^!BXmAG zc{Yv~zEapWoy+3QK(EI!g=xoC+crEk9|!&@j=noX5ho0Kt1nZt*z9F$D}3at_uhB~ z^@uvheo1Y!F?i$g!Eug5lG`~&)BW7PqwVw~5Z{KXH*ut|0r?!jr$n9x@;!k6;Bfk} z@=2(ySp>AbzndFr75GcQz#$6C07^utpanoP4yWgpz)q)vK5TuU+n1GZ1#uwQ{Y7L6 z&W@WQqDD|;BX_$|5IGdYabS++)GBz`w{#n?ZaA{HJlG6M?(~;4LD< zfqV|&QzE^Ad=KD1I67?!MD6N0e*ocMKlH*N#ATBKOe8{=%>pnJM?boZItnbLS8MbTwoSL~0Ez8z zh}-rCuqP3^Z54nOMCi6-033xwJa#&OQ*k)Gwnsldf>w`(sJ_HYcLVVPu+PVl{uRh| z0Inf&1dzJ`+(G03Addog7)PfyK%N8e3=aHt;1F}QyB~IPeZbpL_?l3RtKBv%2WBP4 z`L5dJY(Ee+enX9OP-A`j8fu70F98o%nm7X~p>T#(b>apZE(^^1V0veS1`VAnsVt*8iN4G;!1=r13JobTj|KwTE={ALz1ZtMkdrwHT zEQLfY61Qd&Et8EzFD~cgyDS0y$U!}#4Fe>Ep=4}R^(Up=ZS5!8^5Cx z+z@h>iz<9cWrHewN@as8d`m?T{ul)Kn93Yn)rqQ`L!*ixQwdgvTv|mHKBuxl6~3pk zK@~ozvOyKTs8UsRuvOI^6Gy)kaG9qnfYYhU>BiUJv5oU@%K$h*+F)maY*AGUWUpzw z?%bSnjDKbh@)vmv&M?f+fxON+7RSKsMfrhm0(%~Zvk{_u`J(*cSbRIni}DMeF)zxW zg;kY*%T7_wnM<_OVqTQ5=S4)`e1IZv-ir5DcJuKOo+eJqypp%#y?dX9p_|By@_F;+ z36Ec%zz0uOP|Ca^@7WKYoG2>g4SDa2@dd}-vcp=_$~MnxCvUzykvCtS@D4&_`1r|W z2&A{5@a{)bx>a72_xN%=K0>l5>Gty{hY{v`@p^FG>457$LD9wY|Av1)739rjFD(B{ zZRn&0Oi90nMJtL{Z)d3Yrq(845YJU;KR3R7JZgmQ!_+xJHlt(r3?zWbO_GcOrQBKg zPET%f!hYy=j`ulq=cZ`36S?7={$w>h*e{*Ws@Xlu!3Z(fv70xG+}6 zlVN^9{z*_vtA^mS7^SXsKmed+eBoDAf9_C{8$(!Na*rbu`pbm8oT)+KsGLlS?;H3 zrZB=E0=t^ryNQevq&Zwe1*04P4Gx~uh4awo!We@p<#_MGA%(H}6PQ+a4CYb)!o<-Y zEczGxQJ8Fc>W+T}$Q096`N~aUMm?px+-XSRS=d}GQf;|2*w##gO(-s2x`$JkFIZus z+s1|##EVfacE6w%yTpeBDY@s-++E}Afz-K!VMAfBn4f28az_(c8ovqz;l5O`JpKbn zt2>X#su(97vS>}Aw!=#tw%(3UhsIk&N=vaFp`B1T{(<25uRzMDsNV)+d{9-8kmJ*x z{vPDe9;4!SFf_-!T|o`{C=`x=G^J^**Z6}qX^G(~*8@7#C>(F=aD0=7^&7Sob4eu{ig;Pq8gX6BIS5K|&4cKu{?1o`l zT|-8Hx9vG_&XNQegWZV8*-cY(xT%CN;;nZFs9F z`l56$JTun4xeJi5$|nP9bMR;hQ-npCGn!-7D8IyIuC9AjQEwzq*>!ptB)vuqR6N!! zOoC4zcWPPoq19Hn4)Z_y((90bH z?a7CxpS^RBVo;Kg4Av*N7iLQGvBCQ0t|jjigY|QKA9{VZ@6}?mC7-{>R322P`7}dQ;VS{R9}OVR|kVz zPz|spQvU@vRxhAT)a#SWh@x4B#*69%lqGc$${KY$%CdS2WvzM-Wu5u~Wxcu-dKy#= z&5h~-luhb2lpWMJC_Ab=de=!+P&TX4C_AgUC|lG%D7zp5XK|1GNX+QsqFtThK63Wp z$L$~(Slm}I?dLv?fbB1s8y4~Dz5@h~3dP->;&KDmJKpQiSUgbEFHu}PIKKjF-L3aU znzcjf*@WXhO|^$g1<&Q>Wbv^2pTP+6=?S=@c(|Sdxs(;XiC{S)!_>N-US3*y9}NE!6!8z$8mx=!Aqt#h zgkOh4qx0%gOlQ9qMbiK*!2JQ3CZwud%SUl^LH;-}+`W&-8L+m6u;cnP{X#jU~ zG|#d0GB9OEMnAj`P)YJRCCTTMB%f0z`J7)BEbaFz1tkNWk_>dpWS|o@H9dz!;7SHM zB^l_HWS~=$flf&VIwcwCl*vG6YK`8KwIldpWS|pndEQ^hl?-%BGSDf>K&K=F zostZ6%4DDu`P$hRQeHC9Dak;mOa?mP)@}I`xsriSNd`J48R(Q`pi`28PDutjWirr7 zt@?i7vX*3^Q<8yBnGAHoZRk^v+XN*U=#*rjQ<8yBnGAH2AH63eI&dZ1?pPTqR?<%MFFPJ)wPpP`2IMH-}kUAcRfsGq@Y2fRo$Z0L}H*{I1>%p?qhkNoW zsoh1?jDbksxj1!m^Sbl5xu$?dnvT2@Ow9q-4ZH%ZosH?xv?3I)p_)nPVBz)^8Oy2p9HJ{82%ZL=R50+2Q?cgu30`jC@`0gS`#9wwvQj!qI6KMz57FT>xwwQoh9+(w&qQz?R`?9tMRMp{eE( z0BCPA8322-9qtbU+0P01b!ZM`pk}MV0rqYS4~RvlfyW8; z+yB;foUOn&VXIwn!|hPd4ZAr*`Pt~xQL)PNbt_wPoO^p>)N$Lq68jn^zuYujxii1q zaOmRSuh%H&Un{Hm<>J1e)tTGoI&<6X^R^iuY2@!~ow;rHdE4xp+vYlR+w9v9Hm;zQ zxo!6C2OCcmm2%tc^R^iuY~*b-TH$STow;qUGq=q?Z=3PK#>o(<=aoq;_rJV%4$Qr? zZ@=5PCna7&;oFZl@&?-H4KzO9C^yjGusREW&x?@-b$HiD0B_=TU_w}a1+?SFz`Hp0 zb%0|MQZF2!rvhkUBx*P?W#v|!OyBZs%e71s;X(C)x;bT;UuXWQxclC(r;1|-c(;h?1jhcyCIh6+uq>`?KBjW(x>EHdr~&WC7u) z25ZRkRr>IA!MvtC(?x_|7+!Op=_0}}4c3xpx`^;AgLUC~_1=S3%fI#;2#ZJmWi4mA zi0~V+HKt@&57{DC;J2d4Y!P_14=1RP6yq?pMiAF8GE+oZ5S1%3PeiQ|3yaJWQD?-G zB6CF48?j=M86p~tSgFYT5RFExzR2tlO-8J-$lMUPf@h;mMP`QRXv8`fnHQpy5$l5B znN*z%BRg@uKu(C~VR2-6@FK!i(86EQ`*9)Sc919Q~`5C>r4acZ~- z9;5yS*sI|(cC5SMrlH9Vb9RD&?7n`(GMo}>-} zY?D4b4zRU`Ngqy8HSlux8m4^stKz;&?;0k2I8|K^KlHER96e2qgJpwjnC#(nH3x88 z4Wo@#t3EJoXQ#uj5T%IxG8B>j4{!%&#G|bJxriqLZvFx)!ZVcKAIuSs8=kB3hk;(h zR1fDVf~dJI{{0n))YMKh6Fr3IE4>6Xe=rR7MwU4rMlwt%haGV2ZEqI525wFwb#fA^ zlaolDoJ8v6Or%czm5>QJ1a)Rpxc+?*@Z-##;qZ6B_1~cw<#SUwKegs@Nc!9qE|^VW zpPRyw*%VIWsB3;MF4jD53P%+=IUSFi!cn(6VR+mWMg$HK=x@Y7pPRx_58aJ0H-+Oq zrTxiXfui9^6afn-JPu`F*%Xe)d;r+vrf@vgw!%%}c$^@f$4y~u`YeG|=y6jxo)DKY zFtNu?;doN=5fqm4+!T(ho5DUfh2trj?WAtd6i(g|Ebv>n zDV(e~yvV6_lQ$-!O0;NqY(C_8n>?C(!pSEoYdb#ogt6T~wLbTRlV2MsUq2H?GxvlO zyC3}@H)ZPVq!s)=$9~c3r3-*N5K?1v7uqT`j7TD{8J>hhSz=7j)PdFW__oiNI z@VO_PnmysPdvQ>HDz0@s?gJ>lZ$M(qDO*b^>uPq;Y7prHBO6E2R`k3vgd*%K~K#66Sa zaZk87+4R)oo^WxB>8i&spBHD;i&UO_!o|(SBGs1Xo^Wxd!6vkDPq;W=u);)-d&0#9 z@dPN3J?;q?cZs(LQu4SbT--H25lEfKJ>lYB@nt}oJnjh>m&UgNY4*4$TwET%4W!lM zo^Wwh%tuY#J?;q?4=-`pdOIN<+AtJSffSn%!mR;j-fVEfTOk!vH0%sw!@Q~>At$6e z!>Q!Z9;4!I40pgWZ&y%5uoDU=+?moe*hurV59GHXJe3?;FB~Vln)quOE>;DCN*$wZ zI~s5|1=%^HlIEMXr8jKb3Ev0N=bmu!7|ouIF?+(rQ%aYkqQ^bq;;FTG%ngKl!o}4! zWc2sACtN%$nUC{fu*W^&;@M5zaAPvYlY-VsD5|?{D^m z8Cx-3mANNeTx&+TE$VOfgxMeL35Q%3`pTYg>7f?Ld)yN)JuFHck9)$UN5l}%GN)O7&T>TyrF^pu<&-97FJm!59;9L@Ch zxF=k)d%_;~giCf$*yEmX>1CPAL(AL~E>-u0%iI$#RriF;+!HQU_k_#b6E0Qvgv;C$ zE>-u0$8t}&RNWIUb5FQb-4iZzPqFyOD{)w+!HR@Jzv^n+HV5mbD9XO*oR`y4( z1AkklZ@_)-3K!Su8p!(G6|OP6!l_q&IlmHeUAQY;ex=B>03zHKF2A971}6>6@8sVF zAigiJuO*DYMht7&?h5C*D_qWYh4b7ME@!*KdF~3Avt8jlcZJK2t%fWHu~)ZdjIPcItsC681$gAVDz+N5EMg$SI_NVq+40 zDVYsRpBt8?rKRn`2zN%&u(Vo(b#ebm0kdK0bHlQ9Ufl^4{wsl$NinBZY0Q4ck?u-Pm36A76 zTQ`^0)w8s^8N?~zPNMkbK;{70ipcpub^@>fhx`qutrO9>ViAJYO`VP*5_9*1)IK=G z+(Q5yghR}wu+C~^<{l63u@tAdX98GFgyvoX;9?wNE~^Du-OSt@z`c&*H1|FL_Yk4E zj|2E09QbQxEi8+8A~(yAk2u1afb7A#@W&t6ZasnLhk6^s(FRGimIE_!(LRf@U#xm_ zp1lDbui%h*Mmd-Ju4T0X@nF*1ufhBhhxGOr06*c7c}8iE(pgV~JwU)AJuL$$5n)d= zj?6RG%duWI&srhYLQ&4MfdKjw;XE4!U<3~Qb<3fb{3xJ%FRIq6;Q$j3)7JnLivUvU z*SuK0DJo6JAy&@=Fc*i65hZmdo>{&S+?^@TG1?cv-b845#z}aFNVTkPX8oZMJ(%LO z{v-e=5TW(w05}T=|71qF=z?Mqf>N(OpyfQ5uY}O$ti^NrRsc8S5Nj!{vl^MT4}g0= z#cAzR0G=R1YhMTODh`=ZtQKT-vl;afxF1lQGwR;}z9GUH^*eyyaNw_%wf^rJHR%V; zD23Bm57`sT)lc~U3jV*EsG)oYat^=Ow*&8Z*7Eab{rDiFJJ;o=J#qJeqaSac+IS_f zJ+LiES%~^`c%i)x*m*cQpM^Ho$(`xnfj&Y~H!QE02EGLAm$er`b66DcKU>y_yDS0_vt?~Q)NF%8Ms*2*ML1+sDd}b6*{JRh?tT>Ks2&F3 z5F#AalL4HFLq?U=a#`JMRL=$XY>IPKuK;iv5svCD0B*t|e@#4J-i89z2c5dh-<}{R z;KPu3kX1MVp8@bR4s()2L{mC5^9^ubqbSY%7{G@_XlBMSCpqc`te2f8|AE-I6y<56 z_C|mz5uPRqkO&94Q^+k-ow;`HYp0Cpone;x?n037%$Y>cYB0w|0Cpa@LN zDANJ(nxZf-qimbW?3q#a&M3<=%5nfw>+p1b74Myc_mK9x2dxO>wEA zh0C4%cir>9^+0xg%em7^FNc3Fvb5)|^ubl>%Pr?4D}6AeuLh0n{bXrjKS$qa<;pm- zVMDm0s^M14>1jCpDwe+6(%P)_%BuAJmNVB%uY~kNps~H(Ee$V?PN_rNC&P({85-ZW zzyo6tF9VTII2fh;(z$qOw+hG{M3_6yP(DE&y#v;;>t!Y4q-rVxCCOcnpO3NbYh6Gi zVkvsrc#IBO}&S#~XetBG)y-3{PQ z93@_iuwKA=*$jIOoJT0i8TKN8=ZSEJtq1Tn4*bdKu#5(>!1k;2w%^zpD2@CYGGDS1 zjr;|`PdMasps>zrWQOMU!9^AhF|-yy4G|jJ6+jmp@)O5uK~^_AcL#vmkK#OcM*|p1 zgy-%w08?<_PmDd3#t){jH^jc7D81?Ii(g(M z^kxjCfCGPG;2AW~$0GWPA7H+Ufz9A|#32Uu2GA3S7)WVN>CC`k;0&cG4QvB2jtC8$ z31D*^GB;TdalNQ)FOs(dXIqNWgS!LRl?Xk!9KbRh_>&2Sy%nb;ERz*!s2NAn2DYOe z1NEfwyN#I~nv7Ul4SX@qUDXPZQ{otO_$YdSQ{r?0r{WNgQ(99x^Y~hD z)=-olzZ$@mMCkF1BU6I)0@ll>#GMekouZr)j{$gu2&csJ0G`ExKRLnH<2ppK;0bo7 z+oLN`8u=b%*0U0g{1U(yIOGJQu+C~^hW-TZ4-}`N-hSu-4l%S0poBwCFjfn)y4mz- z0k@groF4rF^d-XSF#^EGIPj+*K_59RBVi$jJ^z8D{|*{|u(q(YaFC;)vb3EIO>N}p zXDw-YCN|g6FIsgcWa{2?^s83x0$UaH<86?5-+fb7b+M!0vsE8$SM?)X^;KIHt$qd) z=j7)bw0&u7{rR(*xS*mrLD>2j&KSk(Bz7w3_w9~p`(>5G-s@qjMY73_03rQ z0m${ou#B~F#u|~a##xr0Xn_vhj3)*=dMZdXeSjgk`EMM(sTFIpV(|1#D>m1Pg*g3Z zTe00U+SZPqXXOsf)ZLDtM=N)lRfk1qM@zcYlEylEp(Wj6Nw95KOM22O;|0y0miA6Y zgIo8tv~M<4U1mwTd$p%4EU94w>0pr9`M!qa=I?a$;Z|&{6~k;f%93VT(iVdE)=+!LmJmIJcUd?0!Y?jH2y zyKZ`mk$e{2^Fk~&dW)IAW%7E9okV`xO%U>y`E{C?jl*_d=`8cd{)`&E_~P3#f5t7S z(Tla0`TMM43)BCK2l(E6)S&cye{@xPzCW!hJ>TC;q@Bl$xDIrb*LxyviRGoQJKr$T zYiEPQzxmH7r{@XU$(iUe%}=4aeHzDtl{3+6y4_1(ITO96+r9LaGtq0h-Ai9N6TPO} zz4VpyBzjG^d+94@qStaJdQHzv;m18X^hLwn%?oH9?xYbWl1}q;sk*L=fpB!Y7sJ9= zNND$Bm~QuCm~QuCm~QuCSO>oOrDvf*J*MtjDzLA9eFC_Lrw8m_!gGkmM}T<@W<#$f zEP$}L1?w`oLD0MOBqVy8u!G#7;Bas{cEaN^r{kyavO*qPJov~BtD%i?7!Jrk28kLx z+YSeodI7{&*#Qp{*sZ~{?QpQbUJagYheHGo9L;Cj;ZS`NYJ}9F`D{C!DQa^jdck|2 zO}P0t{jRQkc%Of}{BIC_^YA|Zj$nb0=##}xe!byEPA@nAMt&md^j@^Plm9sP74-Mv z)BF4wkEi$2L$C01{%BBZ_#~_FN|7)eCL_eh zS%o+B-mG~7ia0F1lm8xo;`7A9`dY&H5kprCA0({e$uq6Ohk~fy@=UAnk-_@NGp)kM z2J0)&vhXd|jj(yCF_p=V%+d!FJ;A$)Nmx9vWeo1HQe*+KytFLo!4VPch6P z874@m80L@+m)9U;#htoj<09u*NiobJ86huDHYtWVB%=gr4jAT;jBaGCHo_bNhB+i- z42m!Z%`k^#tp1YSmN188;shU}40A{(n@O)2=8#M=vtBXGA(>H6DNn*2lFh{;8|IMA zG}wer40A~43s#t@80L^Hi1$RbSTW2Y*(E*(NJ%lwA=x#)6-b?8m_xEx%ohrp6vG^n zrSaQ9niazwlI5`H#g$@bLQ7CM-XY+4 z&%+TOMZKvY7XDHdB!t%?$=;6~+GAAkv~YR)w=1Z@-3bL^2q;a1jWj2RE7QfhiyT@n z9K6~=oSTqFl2*BbN*$wZJDT=B1=+cFf?|O5hHX1u0c_1MhvXQ|p7k|h4#_E{XTVVm zb4X6D9SGP_40A|U*O1X)G0Y)3E8(dySTW2YIlF0dZ03zo40A}%5u{Bq%po~fkjaW+ z4#}G0RuG%s*@QXlLRbY1b4b>jQErPmn=l9V2Vo8#&!8p=b4VYW26@FWhxB1liX@LP zF?~b~@$l(byleEBoz4t%NdI2@IjS@%hB>5<*EQrh3mE2*K2diYIIW6d4(U^Ja&(tv zDSf(ui$-t7Fo*P6SziV#hB>6q2{J@6%prYQ=JL>hVGikQW*J(i0){!HuN(9d6)?;p zeZ!!as(@h*>6-?(Q3q=cmy4$K1q^hi*ahzU|Ujv3> zTtT|Fg|MR-SAYzJJcm5RxPtT|K?23Ng7o6jE8v*8f^?l3m+2B$kX~Z28F=prR%yl+ zq?c(ntr=I4K41*wi%{uznjQ}sqcET~byS{jc?}$L5?WBIOa$XG8!decQ2d{BnqPej zHMP=DfL1;immxK)TiBHrJi%}YxF@1vcQ_!Y%ya?eK6xU;$fq)A(CF83aWf;>o|J7^ zgJhQ%V+JBR*eScnC>1RasdEKIrJ!=h+Yu*f`D$1aEfN0ejPDG&89(<)MI~2*#KUFb zc$`AzUtw;!d%%{E_^DlM&d|Pi{FDCV1@DnA#m7>Q0d*exztLJWSF>AzBRT94^gunH zybqXvV{oXoS4D_6;fnG2Kq}Y{TNkr&G&~H89-l_iUw|HhBRLlJpDMA!`9M#@(YQkq zdy^m}|LjqAp2KHa@M;L?cjEvR`zxsL%S$po!f~-B?%>fl)Pa0D1jstjiqf$Lr|5D> zc^u>6Tf?F1++c6)d7l8HTKi0l->`iS*v&b&Cw=}n+Ikd619M-TJB%+ky$$qr99?!_ zvdTHX@f}p~_03C=8muRJbwSLL{R8|Tacn#Q9#Up)^;)OGq5l@~hatYn;b?R^8eIoc z7rwWJ?{NXtt3Nv|8Hr(8SDFA-1C}Dt2}inzbF*Cht^%?QN8@otY@(w=y2`n=o@>H7 zP}ksaqLZNdcl2*VmsbLwEgi321?JtTdpk{mk5;0>v!HQ00#_TsMZP|BF@K|qy!2)l zWv(NEE&U@zc0`EySkwn3%2j(}iN8Db+n@_8v*~aIbg8wMf?da?SSx#S(!LH`pTdzI z;2c!{85(Nd9|(@*M0oOGIc>KEI-BHWOO`r^$dA-PK=&hQ59d%JTma;J9PJ!@Asj4o zBrIrlKodvG-F4)@;z@sw|l zZBfTr|2gPyk+%}OW#GxI->S?u>XzY5#qpmzH%AN^a1J+m?=DbwT z&V*G`9p{H3Q3!q zOO6^_%LT$+JspG8CIdMWyy-aP6y;Jg3M$beA3Cukhgm}&7P9GB{h1i3VVNb^puim3 z2mH~1oG+lmslOECFn|(^F@rIuAaO2jUFr)2Hfyg{=F&avfRpd#aQx1w3ktxe|Nm0oF1oW$FukF8-r%= z;j_doGlcY~#4S6J^ykDa`w1y`ftE(#_t!_XR1->%uLDETzjV!uHO65n+4h&UG|P>2f0Ark_c$ck5hcx_Oc7zv*ud zr-uw#_unqR53=us3|aTz5iIaK@UGWiZ+H>%TljC}_d%T=xa;*l&NTt-$-7?vla$p> z9uxmlO}&!G#Q(K{^7(^M^kU4qkGtL{A!+vp^5=r#Uqo@cH^9vyNh5;|018Ij0Qdz0 zb^}1J>Fox9T(H{>0K(Y@0AZW(1RDSk0TT_9@B|wGRO|7MHs4~Ji1T<60V{&s(dH{D zy=Crb^LP;f40A`D$BPI+ke#NHG~UtX@gf3Y-pm&8A_8E41&YFvC|nkfe;mqsxtT4D z`2euo%ofJlR(La87$=CinJwT&1W1{i*}{aF_l)LdwlFFA3JOahUqmQOPS_8<&XMdi z1-yuWT2c3CP=0?be{wS$4VK#GW;Plkh`E`Kh6!SBW~1TKyt$c;HZIcJ=4Lh;AqjxY z&1^JE5OXsdjc)WImfg%oV+^Wzy8&NBWA)eUw%p7{6DQ$>m7CdUa!CeIZf2t?g1B-s z8_lSvlov8)KiXU@Qf(n)_M@2wo6vzbv(bFP?9FVnAl@6*%*|}HOMDyK1KcMAQq0S3KDXBy3^mEod1Wh_W+Nw%KpdiJM-RoXD07EGnvdx1`?8x zLIMe-0D&MKL=Z%piY_V$(rk#JVgu}z6+~PH#EEJ%pbZxD7MxS^zI0RbhBVR;Uv*hNC-uoIyOAX%aSN*5wn9&;%;JIL(SnH6op z#fjGtA}iX0RYm>bH!IqL)rAZ&E7}5F+=n*IinieLEX|k9ind^#0A@v7aD@P7MO$!n zoHtF!b~P*7`ShC=Z9%&!>fr@l&5D-!!HQP18Kq@K>pnga^s=ILpAe>IMeE|?K8VbU z*4^yaX|8D9XNoSupkh|E?z5=}0hkr7`&{Y(0A@w&J})iAtZ3aAGBpS>D_Zv@X?bQv z>%J_2S<$+$Nrg5mTK9Dc!DBA6qIKUepueJZw;Ir2(YkLM&|lHIZyE4Lt0z~q?%M|R zSG4Xs2J~07?z;x`SG4YX2J~07?)IV!prPD~)_uRI89B+VXx*KXOS7VNcS%gMqIEw` z>=((cXx&efBLECnk*z3d&5vl5WtHH%11nnA*^@h9dCsL^Ly$XE5#r@d7jKB)`^!VR z1$OMU$UO*?tJIqV`u@6kH z>%zRmAKPJ|o?%|%kL@&2uP`t1$38R=o_47KFU|DjX_weX!N=(5Vmn@MMhPyq-J!Tl-Ga7r{rEVPg<;)BqXZ5{ZQb#*F*-Rcx18dwwKXw7TfN%QX$P^ z+g&e!S!}!4B?{0!!eL(GcQ+W7j1BV=zk9ub@ahQLmb^ORZVWPMd3D5n)CkDMw)=IE zl_7F4k}UlZ3#CL$l#MjQ^=bjutCt{vF2Ik{tO&i1zyvJOCUlz^B%NBf-vb*tjO*_} z$A=jVT#iUevpHwp0+D-A(A@zty1>8iK^VUJNPOyp?||S?D`a72X#z9%G0udbh?32t zyP4(sP$KxQTYyi=1#Sa3<0IIhN_k_w;6sU<+=2Yv;<2;ipP5uYj`%KD2e&jahj(HY zdNZ8Ib>b@s)4?C+1@N0#_+wHsbEXhM%+p(fT%^5*(LTuc6#fvjrW*1fX3{#i4(o|yLnq(@R!*)8 zAaw9~ur8aU&MBnaWlPk#(&P7j799I51V`(Fq*RZ*1{=wJ4T%3=s$4D^Aa9d_f6b*T z_1UOMqEDtR!go=T1pLLHBB}Z0JQL1p{{=Xad%oy%0OW3jE9X*gej6*^5daT_lY%xX zz8A?golBXIliXa2;EUlz+kZoxb>IqZa|NF-ffo#J&$@7wWPlt^2JU1ABoZt3dmW4_ zAg^L8VqL;Atf~ohiLWh#0gqpkPeY*T(q4|n4M9_BmtxH%*_+;nYQG&q-mrUK)+6QE ziHIPT_Ck1mqteb0K}l`|JyA5Bybh`EBdIp!Q~h@?)qNz@ElBZ&-BUfEsSe7eI`Owt z9WSYp+@v~0QZ1g0RNJVK3OK7BzYbuEtgVtorl9w)kzg|}_U|Pn)CZVeaCybj5X~A z$rQ;=rfkWSY5(9P^|c7?AAYqV1J+p8J~I}pc3IVa^sZUe?vW=bOYHD#d?clm=eyx8arz-A)0LS{cx&)>pi08wcY2_e zhj_9Zez%Bz72?Tm_cMOTRs=i||5ik4wW&4zfw z6n!=|5u5j=A)YWral!-!6(OE5MW1(Fq*5*FiN28GkF?ZJU>C#&Uy3yK;Q}O8A z2E55~dARhBfo`^3o-Ms=pj#}LM@#P+Xp`mgWNCX*78Ktx#I-3E*>AybeY=?gY z{WnApc_02!^lyyr+6n*O^xvqQlnp6X;WJp~%wD~SAushshZ;ZU%+ayN&pC4x2ULu; z8K3f7@OcL=$Z8T?h3o{cfe(+?;1iv63~EJS5fW5^D|TR14ZO_mB=BGOgMlgtj+Z(S zssjpn4FyIZlTP3hWFj1B1wImJ0zMi@g0dj+B;vY(7ZBg+BpcR=*1Wv@P zu`uv2V3L7Ce2W6tfI}+q1=N6-40&J{U0`y-Iec_c;v5L)T!>Ho)%chkP+(v9r6Zx< zz+Vwv1r(C70v^N*1XhA=FmND}vjay$3?0Zqq)=dABFCFCjD$cuRz@#5Wl@6rn|dn~*Mq2PPfZ3Z9w3L*P~%cmVip zpatJ9W~~ujXEMdLM)b^!vh|_Ah+f0<>k!ZNqU~k$<6bmY z0#Q6?0t!3CbG_(#(?5oIt{1&7aTP+sQ7$#28#W`x*eDko(d+3SryO<}vdoBX3^G+& zW<(z~vT>Oa{W{3n9{-quQ(2pv5)Nv!O|5RR$A;ZW-)B23CWnTz-SGZ9^p z$>1(Xsxn-7>2ceMEhkoj)+5CD2o6|G+^rJ5{AR0{_*a0zW@}J}_&ZP=p0;{4 z!e87ICG=NIdg9_X#D3oQ{{b{FSW#A{;?ofKMdPnoeB=r0Co9G((kQ^!R+0cpoRzwq zwUddMy5TtR3XX|&Dln%6aPPao_ND4fdvfO5dD*Y4zR=E$$N zTIjCHb3g7D{2UCCzbdp8L@`^2Js^k}m}5T#^^1(1FjF%o;iP7-@=f%r{wu z{rHi`0%&Fyt;worKSVgJQ-qgu5e~B&sT*rj>Ifm3#O{bOhM?&j+$n~_3Qv+a*lI8_ zn8d->KtGA$HzLQ@2<&t02TG}WBdj`7c6%4aH^S;i!s5G8#YUT=ES`-_kF%tno2s;5 zt|}E3A!vZ4&hE`>U!F^SfYsBNm$QZe)@W)N@@8vLl`1Xix)4M4lW2Xhz?1T+G_7DI zw0AmO z?HRRe2&&yeDIb(Xt8hwL%U)|sHM^(;j`nQ0!g=bAB!w6SU7<$7z?S~kGit!ScR~Q;Y5uGA&dU^0pvFMxnJI==sHF$KuC^&vcHeh|p$4`Xg zm%{NXaJwSM@m4?P7!y-cc}Q@w@sUsARiAFi9w}5aDR$*X7&e6O_K42W$c0)=A)7+y zxRoz-UKvqcm!b?FBezL#R{On(QO8#Mn6#+dA@B`wh1Bg|MRWfI_);z($4dfv&Ez#8 z8K4BKIwWXjDjZKY8k|&9sf!(AL7=11hSq+Ep0r&Ax(b?3T&|Fmh+7OCuVnl_PmRadfMZ@&*Nf1~j;%l@-;hjBPWoCuwwkr| zIEa5ZoaFo1R_6O2fPaMRc^t}Xv1IfOfG@$da2ItJIOyO@^8>2qUyewsvxVY+2>ljL z_d`llMJZ<5IaLe?E)86hkAu+ReSwpEB-7#HjO17oXf-3NI#>wysEC2^a*La=OwE!_ z*o)y)dL|-q3U+3vROSN5Nz6JQhoaLb`^<3zfznugcV~Xi9?Y4H(q|$PCrua;7)b|5 z3i@iFS26NWUV8|-bPryWB+|`@#B!)Nk+{{U?*@)4!or)3i0l3&a8w6isjR9mw@s+( zes`hV@S~e7xUNs5NDc(7=1XCg7x{&GU_)7hn4S)6_=wfHJMYF-pllL_`npCdBW_ z9$=`nuep$OCY;o=j}fMWk3xweCa0Vt5=;1Gg!zgS9IMYC4Q|g89wwziHm3T}XBe@B zH=9U)35(R6#Twr1hWp_{9t(ofNI}F^oKkl^4Xvv0BN!{t=8%)36v}WjKocDUAWi}} z0=p|fI1IZJQdF4oz%_nJWSvZ0Dgey3%K+H0Mfh?n0}d`xA^%8pZ;X| zF<44ZgNd$0>$42EKH!Amba*BaU{Ytpa|&E5JEj=9J_P8Ga4~ZK1fCrPm`c$p*e-;N zF|{%93?{%-kA>%GxB>qG(1c7@K!Cx>PV8$SmLcRMxPn0l$pTBgarg?Zo`DAqM+3_N zti=!E045>fNeGc4tiXkDf`rTE!f*xPGZCj?20RP=i2nGc=K@EDD}8)!yjl!AhpF%> z@R0A`=fiWOVJmH_=}I72wo54^D=+@Wa6seVBsik8l@c}{76AQoQB?)hi@BfBM@|JFIN{U`Pfxg3Ql!Zt#+cKAng};wC;!kZ(P8oS@|9RjAX= ztEAbx4*Awomy^ouT_=t8RMPBMk2L$$t+yEhZd8Xl-Mk9Uy$r>f}&YbzP?L>sWG^1KUa1;B#2BP#4~UkIp(Rv950QDJ|ZawPpHVEKz!rRe7p{x4!} zN0?R#{}-_ch4cX4B*QOaNmzjz$X~=7f;gjR&&SravkR=7c#{mjh(!_=@_!MFd_%OK z!Y^WxzGxgid*^-;%V;C=TI391yK;X$vL#MGG|R9MZxTed263hWB}Cqd{2Lz44fe>p zMf5Ap4fcqClOVwj_DJp~L4sTCk=#v!1UK0uxtjzDZnH=7Hwm0Cz{{b9N{Acnu>0a0 z;~{ReN6j6xv>WXn8H#-_&7JnBf5%L7r#)JgVt}o=(;lrB06Xm#_tCl29<2#_@E46D zf)~vSdM0MV@8CD*@D3n8L4K6OpI$1Ji)ICbUxi=OYO27$Xr_75tiZo$rfD@*Ff2I@ zRAEi4sRI9^nO-v!ar}#B30^cS$X_%I(Q2w-Z~2L*bhXt8g}4-)V%nt8OEa`P9>JX%e;9T&|)ylCbQ z3BJQ@%SAJHWD5ppO{*!_zi6guHRbvj%`~m1+;M4A*$G}Wb8{EX61-^U<}R8I;6*bx zchOAKYRWy-r6rTAX*K1}a+d-~=qoAiTz4aYl%~~`dzAYZ09j3|DR+^}m$geZt)|>1 z?l%A`G_9uGlijXZN>^)IO}S?zSgY%lLxpB0fGQ}T$@CqFk8*g)&7swlLsDk|keNk! zLi&`$_UX)I2<0&>*cgIr%bh;t5Tu2Za!w&N1vb>|tb+U~XA?sxy@V*|Ny1;|V38^) zpu{oU4xng%Cm}OuSW%3W1d4!_d0 znsQecGN3`zYRX;fu_-iZT1~l^XL-+Nu%^|NyH0@NnpRWp6#|Ubw3>3Sj*kS{*fw*= zj1$eVmPe~8H-E>hZMQpS4qH&E+%fYW9|(HQGcE54VX8FGw7e%p5L@$1%k!%gf&}^LVu7=y5;$I%rsB8 zJpYcF=INIAapFd-n1^VdZh4<38vqPfMNgrq9ex^EqghtH??+82R}JjbkLZ9yw3>1^ z1nWU7181!EN`%@MK_+FFK_iyE;d7k3*mb}J?H8a0TZLW+5Nnhn%*1MWgt5jWRN33{ zwgZO$zhmzw*0&Q)D|2X%_>4R+{enFEfq&3W{abj_W-Decw;7(pN+Y133mRqLj07!v zp~QL-1%nySHAp75w;9e8v9Xa8K&>}}IyO#jonp7($Ym)OHjTa!S&q0#0 z334Of6+Ol#W|)JR3N0kv{=qtME8PWuX>2ODezjOX9hjzekjxmELjBHdLx8RS&5R!I zP6QCvyvP)ro0$s0)zeYXFcV|LOXxER94!~aQd&&%juRlQmqKl^#R6pXUQB|8A=qC;J+eNIlMmMu%tu(Vj`yn zNuREZogHbwBve06{^w>n-BEf2iYa!U0Jc5@H6V7r0Ac+R%l-lZT>U&1d7%IaeF}4U zQ3ZRGlpc<nuBEm>b$#?r0Odo$71!l2T7ikiGEO=+zr%c~~ywFYdq zq@BbrFOhcAVtH3H<~kGF-@@c1c4cG|^KmVsU0ufVRJx72y(Ysh)>Z@SVrS{aplMpq zOk7bg2O4P_P2t)Lr~_5{CFlpnR(?)KVwQNOR191{hCxT{T8AmvI!=XLCzYu|*E6RZ z1ZeW+Fl3_?9}ddBZ<(VT4S2ofJ;6GAlL2qAym^%LW&>_Sllh9m-V&sQrAI@;nXx~O zLpLD3dF+nVbQZF{h{@fVri7)s+i|FfcS(;rO>kpvI7<0Jfh zBzU|XALVBw!2|C2-Uh-EH#6XzgE|#DhT`29{1Ji|(SXX~uPluX`Ieb1^bjwLdgiid zhzH-Exhxvu!M8WDgg@crbit>YyV))91X1?vgKt|7zHK@9w&md4mV<9w4!&(U__pQX z+m?fG+Z=p{c<}9+%c~(Ce0z)V!Z>pA9zL1R^EsfvzVJ)0z))w)!M803-?kil+j8)2 z%fYuT2j8|FeA{yHZOg&8EeGGW9DLhy@NLV%w=D?tswFz4$b9;q^CoOwlki<_Ff& zu6IqO7UPrV$+y>DM!(WL`S$!vwwfp3o`1jee{`g=jtNnG3xkp0s;k2RZT<-3dNMkZ*R9 zr99JZ%QM}!JkxEPXSyABxI!40mS*e+U zND#K~!#8SA$2Ves2gwTTJ4Dt~K#38O$Ncf8#J*_G&i?ph*vfI^?^Gfo^#LDMgk!OF*6$@#&8$D9OHS{mxDt<9??Cmnlx)V(y zg48MAXGY)c9c>NFqZy_OGsr^h^%(OokwNs}H+ALMdLCL^#L`w;EH2oT$$i}7=F=~@ntfi>G=wNgh%FVmR@OQ9l>*wn{ z)M{^yRYr`krnIWtDMVjn_1_&GzlpN1GqO*}Gl?Gx1$e(V=-GL6w;Hq_Z)Nb59406$ z!T59vc!?e7Y-4pUOvR@$$+bqnO?h-7@8cJm`}mI%D+|DGyu{)ywq7Ad>Sdg_SUg-~ zA@or`dYso-Jltbp1qfqf+GLVrLQq;qTvIQ9v0e5})g+Jx$01Y2r&9S38YE=Q2<0X8PA)|8y0cayYZeHX~P; z=rU{u7nA4`-J3+wM(F=Coe*tKaFC{Tx|UAK8VAzuJc&GA_hE2!9HOo8NwXgTXwiSj zv1`#y!j3eph9gQ>=5*f5AW5_kRxmA%+G5$Ivu3 z*xV8pfj8K_@+sV4i@?!pkZiQ0Z1a-ZZMLM=!$zd&Sa7@B7W4k-At1cR_*Iu^O+2ao zZf7O^TOi~=eE&G;;x*rYIbv_|{gn3&-%okB`u;NH$6s*)&3rddvBoO8>+QJqRw( zq3Vf;k@8f0`O&A!bNt2U*tdhM2(tTRXdB3fz`M!T+Ch@%G|ngM#OcruGLeQ|o3LEr z2gpf_HFA&KtnG-F=l;jtVhl3YEzG(vsS%&ek}u);$U2Je6PaVvL2shE{48AMe5Ad5 zcfS;W4oD*noQ78%P*9azTHC=w_F-w@ir^|ev;iHICRGWz3~nNmsD`_>3kbLjZ3#+M zYDHi_ILYr(2&7CVze757z1$C2;ujOki|<@_5V!o_tnRfOHLS7}yJ!p4M3dUyNNE^c zC2zv*Z*X$}9|qT#-30$Ebr~Yg33|7bVEwfU*s~FQ8eG}c0B%L#I)p^70dOaEqzoX-ol_>uu7aDKJ5S4V?DH$MV|?1Z_o&5( z>_N*M9plpu>kx8f2N~89N-=phasMdKls-pcAOqnFU(XyNMJi4JHv24=`nByJekyx) zr1FtZf_j!$MLt({snGxe^SEpWP9ktxq55)20=O2QtKiB$1aJ`OuR>yxe*?G=*gHt}Er9pnc?(XJamYFf zbSERVhz9UI(ElM_A%M~|u-Jf$bOSI9o;CtK0UQC(3Y(*bl%i zcs_*dc`yL}^@F>z8$u5O;y(!alB9D1{0z@eBwg&2q8!wrBs~F$$Z||5;6!8NQIO){ zl-VejN<1FKrgfW8PJ>133|zHGAg9h9p||f5x?9x0?h(kS!k3fM4?6+{$4TrD9k{%_ z63F>jO<7J#R=blS@f3UYG`zwh-Pxedq1FhK4qN<0KVXTUHtYPn-G~SN-|kFO=ZGb# zbN+vMK8m5{blKM#D&Y^*x#;CF)QR(gk?DB;+SOo?f$o!V=%lxx zcAt_A_sN<&$foT<#+os|11IIp<%|@-3O|0QE^%!Ktq8|jbc;{cuOpd1caRB7_KCam ze%p`aXOeP!(Ge-nJBT>|Gv2?0cd?)(r+MBgyA-q4ZGkBW>%IV<22Ko%`2$zm0wcKk z7{dE+M<7_sJW)09wg6!{55e9Fqh>8kLB<8Xgcn@K1$yVXj0=n;mngTCrw3#wxOSeJ z5lC{{+v87&PPQY5+E>d4RSmgEPiKWItn(NaWw%#v;A=qAYbobjvd$(YWswhl5pR$Cpp zS#3#fRIl-vMW11LJeS~KKRB!XSwtw|{Q3;5iF2$&mgD3IPE`0h0*wl#HBChJ(VDCl z6p}%sI|@cuT5@@dJk8}T`fvzErIUjwJ)?@4)c&_)_HLa3>oFABK-7J116l1u&%v5t z0qC&>Er{YO2uQIOSUp)T_;HS2ld*=_&ywXb38x9+O&}Ec_cLl+4%ttFlS%(UmMp<; z0(>3ZU|#0^ofYGP`w_qo!%3}TrzefzQgCB`u>{}A)+jTRsAFoZ`^2>woEmyO3IYcZ z_^W`k+F#E}+~2CF-L|Bqo#MY^48%-TZ3}sT@Cq{ApKOx&jWeFO7f6}e=KRMeL;>qVGSks@Cxip z!l{ZMP-lLCNA-fU+Sh}yic0^Xfpk?XAQfCS^YO!QKN}TmG5P)s^uBSy-w>&qkv{8V z3aWY&3C8dU0=ceu5_NkU$ytT0_MdX(+j{uqJipjBh)s*+$D<;=O7g)%erSy^(yO&3 zAHM<@x8bU0L5;7ru@Wr;I3G?5lD&IC;g36pQxVti{3j8|@l;j(8LP~v2@SA$a_+a`5r3oQBzt_BGz>w z>t{rnN;O&6RWhMz+_bQ+>nBU!1MoXiw`Pcjar_o2%(|>ljvN7-GHmGK>*2Ci7R@tA z?MXOw(5K{of$Vv5NHrB?dKt0f8C5O97i#Z~_=h6-@jcl7-$C51a4qaK_fPZi5bu>8 z{5*=nIz-l0|3&DRaDC==SMq16m!Q)nXQQgPrvc}#M26wq#QG$0(of)K1bK z_ z82u^7>^8(XHP6iOc|6YtEI69;Zz0?e)cyJ`K;&xe!xD3{m8)?5FZ_XTb5P@VpEs5v6w0LQ^|I9z~SslU~b-0vBHt1mYAAc8Tra}n`rId8Qfg9UWr#H7QuJGcux3cruZA$u0r?P9 z2rRw4xCPA1VM2i_wWkP+{isX)xzD*iAq~H<_K?IW>eW77Zfj|`9`b=b0{?IN@Azzo z@4@ynvn}(C}sh0mTh}3LvKSP*aV08oEG!14$f--4)NV4pdLWzJ#hVLTW~0e-p0&@ zM>2;oxSUXgVXuJbc{nLwp7-qp3+5DM9wX!2@*FV!4(A$~e;X{O#~iuSfcg?Fb~3%0 z0Qw(|&&(Vp_KcWxi}r-F&)Lu*Tsg53k}n1{2QI>BH^XxST-nJ0egVnsCUoe_00dS~ zkDP=5k0A6xlCK7^1)i7T>aP`wnUW2jA>Q3+vSI8KR!=t>wnO^vPTjI~A?_H3SQegJeRELd-+>_*(Sd+nvNr2^)+dUzbL zA|J)1cX=LWgY1;vtsUvjVqq~o+zgO*+h#=IHqk5j_=exkJiG_L?>qSA~GVz zNd?^f`~bC+tzr{uzF8=o$J)Xs@i|KD-*B$9gL6>O0FL+)Ar*xv*stIz0yYj8xEIlR ziQqJo9$HQKO&{ea@KZj4zcB&w?2VXJaFW^q@azv)*HE5sgE--soNtA*xw*u@)8MRj z_gR3)Bf>G{@DBjLhi4^Rvu|noydT0OPGZGjhv4Hi1na2%pvEx%HFhD;LG3>k zeWBRH%*XA2zC;}2@)>_4x&~C^6+!&Q!-sgLyJvALaQ%%vj7NKzaD8^1pyVZDkM=O( z0ofTu8G9Iy_AueLF2@N<>|s3G!-V(Co=KFkhw*3+6W+he<${v8ocbGk82oGqST5*t z2Sbc)%`9dDUWtCk!;Zr_)E4EL1URnMbRYs zX)J?xgl5xEW0^=p5!K?+SSHexx&Z#kyj$b($*0KR)J6vK$*0Ja^po_{h$cFw@GJOd z*dBjusNmIN5ycqPlpKuMiJ4?UgBrIkv4zp@puZ(?CIipIr{QLNLJRphk{_mNd<3zn zK^1$Ap~nGfF~QNs1jnNZj@PenJHl)1KyBm`Q1rkrs@5fjF(z!{0zJixcjRe;6X+Fu z5dkHns|g2sM+TtM^?(UZpieFa{Ea3`kCR(eph^68518Ntn#CVd9!+opEy4eh6*(9Q z0|P>@0nlZ*RIT(XoU&W`BRi=Add~N_Kc(xx#(AUO4_CRhUjHR*hxErk!E#6MwD8!w z{=tFL_0eBJqxv?`7w9>lboDIIc=}*mSBvSdbW+9jDTySm{~j7lszN>fTU@fxeK4&o z(u-3`Y(0212MSCyI&ovYA_Ie1`#liCz0UgB&rphTCSai)YY-sdlo9AHfbGzgH1W43#tIOvyp?3*gmYkKk2xpI#vN;SJXD)dC8H5{$W!>x zg`Vf#uFA(R@+4EIs zr$e#Cge&x+$%sc2uFyw8^7UxK75Xtl`jVgU8A%ha5FP_(8GA*@fm4@aGxFYGHEk)O zjZT7QER*&#hE!PVPRsciZN@o52nSZJp{iz^ux(b=StwU$ zj)Ym*_bXX}oO{cmBxgX7S}399o`pK&j7Y3uF0R0*;TC*CYyu%_S|udf73dV4v55ys z^%qi6A0d(|ZwtB;XS{@Y`$MNNL}Q%8o`Fe=bCcC=C8#`w>XoQ5#rqfZB#9>De-3>} zVn|t`1I8JAhI|U@Hh4nvVHF5W^RSxYM5_@;~9z1O2 z?T@}NF(x<^K{amTOnn_ZPSI2#&njZi3GJYwCC-+L7Ord>3gBE33;XglrHL~l?=S)O z3W*ivObn^boriJ5IR-%3IVFl1=Syj(oGS9Vpoq;ktGtF%Ko

q-m*zC7}rBr@Ai8 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%0DF)?JT;pQYWw&vH;E1Ip=tkv0 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 z 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


{XIOC`baf`ytR*4aEq84yCM-mh*EJQ@gN#Ukz zb3J1cd;zxw#9DP}U+PN|J<_eZ=#gh9Yd(hheYyZWzfV^~%Y{hAX9-Dfx>~n8lbYYB zs|@w~ba`n=8)>QWg7nlyk9x>OkM-EhMaxj>f6Fq7!fr!@f}z1(>C1`7L&W0XJV z{r5MMQsr{UT*!I-O}9|gg`25Te<{keJhRIoU3kTFE*STOTrla9##EEPm^jTJy>tGY zq;LMxI%F43s+C;Ao;TAhd2|t_@+CpKXS2>HnWlF>UxY5IwC}l0(=#O5y$`;%J1)m` z0jK9kcUO%Qwo4C?ntH^a_iZ7aV(9QY=Tqf6w;2fRl|1| z>%`Yb+2xW8N&488aTNfi2)01D1>&3CiNh)8D{JF+oEWMw0^v3Zo8TWLzYLhcis|L- zf3=_eIW+fL7%&~Ab%rDn4!rXqZ9}j1T+bRbRBsrfOaloO3g&jT}mVem*YCpnHwb?Rs-pJ zGwK?hh%1>ktAlDEWt^xi`S4RRp6v)uT=8*85;}X=8Lq&R3qHat**g32;O3tC*m5X4iJ;8iNF+SM389?<>H<5eqP);MM>3J>ap*@=Gmq8^?-4$athQs@wN7syADF?mibbg3-ut7LV8A>vKh~ z1n&UqTS9o67(8VEt0W6T%7UM8VZeE;{njyFXp>@NR3vM>f@XK^wza1SDgd$AxmB0b zxj!|M;9@Zu0|AF|F=Y}8m1-UzI}K)1`9G5KOJc`_EK}HvN?~=w@!^%sC@ah`ytS`L z!zEUw{kE|(i_7bYYW~CGIL!$PAXYSItQ-l~GR6v+V6fF00wC97zX8l_hx>(y;z;Kd zlALPW8;iVk_j_=*25f*RIWc+Nh03X zr0wlB!PanENFIHp;_;K^^RP~04RkA#AmE5@P#cW96bqz>G9lY;+8a5LYN3W|+-Ax4 zVr!g>;zq)CC6nE!!F*qX`BGt0R}$+Cj9Y1QyK=8UCV&}5D-6hu$7&{j=tA=#^-(D( zVvDYClI5Hp=j^%{0n??!qBy~Jr&qZ1LN3LL8FE?qwBkL)R3xx{fdfIWuMW_!21Ul7m&9#h6m+>@>>s3!= zTpv8uaqUa<^-~)c(y26G`)$58kSeN)v;*3*K1p&I<~PqD#ItHGDn_0SqbuD|$+3~=3*wD%@!uf9iW@6{g64x{Z@ zLQHA5Axe{6NnG3&W>xwft))FIM};Ww^&_lKVtbVNl?CF+KCIE{5I|EBPUdcX4oX|30&YRCgY~X$_B5GPPc>v6XLy?s-gX@zx@d8{9h?m*nNn&e1A0C-r_SzwNBG=Cxrjksfw*ud5x4`q6M(v!fEx_?` z*wRfa(s~w~c;zul=o|#nO*NJ1zKSV%OQQtmZw0PBlANR^r>DurVt*_8En^ssJKxc2l>Nyci>N3Y#kRcFK z3p4avq!qyw9qvz6`Vj~%)h^ypODs2)rplpSp@M^G8NptJM_WTAwmbN4ayNI<1Bd=*OttDh%etlvRZSi2K@xLn=Vg6N6jI zf3!$Hw|j4^nq&!moXI%Ory4Tj6K?HU0wOD}dk7wDa!jtVm0q{SD$ts{*dTbm258ZrQ zTVo-Aq1B|ga_x&N1~tMfT|IO4BG+ssH45L4@`Gqq4>pu+uB~%jVP@^PuFzY_)dqz& zld-usS?I;JsTaBG1U&++9M4rE*VUl(A}2_b>xev|u8!bildFX5HM~p7?ZF#s)sUe5 zt7{?|Tm2bD;Uj4!$a105qgM~<@o)`XySH6fjK9Bb{YD+p8b3p+=+O3+*M9Kzft z$DDjH3s*3hqdUDQCdd&vRB+agnV zZM>R;?jM@$&;0=6#MH5`L*(M-DI%(EKzRR*gP72k!jdNS+3l+BM|Rx`;(^l0e3gG< zK8^dzrR!tHfl6kLEgyX6&0RbfkPKr= z{!V1UVjp;1Rvj?5MtArcgJ)GE^6)0~SM5LD>^12xF|nu0O`4MLsLO9%46`PQ#v^x` zxM8$=eH9kFGwazxXXqE5?A<~?dBGW>Cp=A=X7XO1Y5XoJ4hEMzJz^hq?ObB7j$A_@ zzqg1!&cerDZq|FqpAqDW7tedCC^ag+8zOPB_Zb&PJu+-dM0L8vKbe6 zMnX=CHALCVO&TLpXcVW$=FUZ+r6Ju>Hce$Mfw|T@V1Nb&sE+`-BKNpyv_wwh;YU)= ztX4-*(9VQE!-{&+OmDF*{Y(67>{9s2;HAoVRCX z6NYq_X=jEwM0c0eh3(;GKy9e1MAFpg5J?*UjCJU9^$saJf}&TEe~jRH)&rXMfaJ~X zb`h>qu`{<1$AJlYVW>$j6z8L7N8E@T&J+gvZzKkSrUKpkZj;|_;uhB-`QG#(K&(J7 zy6~!!a({}ka)HPQNZ+&56^FHmylWGIF%=bPlcKuSh+yg=)8{hjqqkDqqxr}^s5B%f zp@TewF09&N{l+x_>HX&L)kO%iamYfoUaQ5;Q#FmW9DWk6I8n-f#58Tl zN=KNN@U(+k-94el{T4Qb8nACGo z?8hZYmE1t~A)-|<1PuIT_`D8T_09aAH_N0vZaILS)U98uL+31EN-{Z|^jv7usc7|} z!MqxN3}z4NDDq;FErJ3`JuSpoOD?l^;dg6#PrqDb8T+?bF5D*$%S0Rib>xeqENgbkd*%1Q5VsfCi=v->+sxcA9Gs&XxZWrS60>)g3I&mi}yJC?$ z*7wStqFkn~wM;eHwuf8QTbTfC=JhHOd`5zIPBr|Th9zX{2{a?`kThtDpM%p9Mj~aw zZfq7w>pKji-nWR0o;3x3C$s-7{8IP6Z^xSe;8QL5AcCT41T^!&K?Da|j42)~JPH6~(g!j8GZM|| za{B!N8*k|gu?znOUyQ3`)VzW>e0}B7#4Z(;G z5?o=5`XPI%UUj%))R9T z{Ic-LpJ#&>q#vJ>W|YMHe%|NvEWBT=?{WL)csAGUgb&>%Y|)1Q8#+9$CgV`}%+EKl z^mV8C6#qjZ?e!^5F`nyN==Sh>>&i^{$DbG8_VNx=>s&CQGlo6oo8jLUYWppSVlP|i z$~E!P;NH5pYQ_&bI(qfnIv)*a+ZHP#F-Hj<1jqRx7njAl$&{#WWv5^p5!}PC+@pc@gfB0$ zH76WOCk2|;pdR30K_Kp~diNYlfMWiDF>9&oK89nQK?)7|8AQrdZ%|IA-ei6bsrWhMgISg3 zN&W9(&lQ$j1g9hK%ZoVaOHhk|aolD#B6SI3!EfNclqS#ev8l< z-Mqgb%7788R0AXT`1n|K%MNSOJ*w>#Bmc8ODAEkn-@y1zXhm1}OP#4!_47~q&l@wC zkn_OLeA9$t+zxe+jZ0WDn>d7W_zT#U(Hhh<{2tUC=v>@$am3?KWQ-orn{%=i_=t70cfA8yNLch&C#~yhOT22*|Kr3VYC9&?Pfpi$ zvJ&TlJYM3Rw!qW2=-o9Gxw@gPwthUyg0|E-$I+g()%9Gpa2!NxM;W((j*ZE0t4D=N zPinT4nv+5`Z2`7r1UY=#(UUnQwKeEwmqW|GGBiTS}<=TS1I^glBK)2+d7(5VlM8t zl-zI1lX7Xk>l~V8>)z}7c&}aL3Cfg567m$&q`5Rd`9k>%2w3-ea(6eSq;O)M;F>gV z-CDZkz|~UNc<+*K4OLQIgW%7WHCH=$-lT3@Sb5^=rNgER%A|I>#-Gt2J(9YOEKTaR zhTk6*(XCc>N0W~m(^6M)siLHjPG`*Mw(9v1T8EBI_Va{4MnCLk2gY|eex2JcGQ2eD@)$YTE=af|EdX@j2gs;8E zOcM`y=^#v##AYpiW-5_|i>qe#>>?o*{)9Mq_z&zs5!%HoQXpSMkDSk?ztQi?tw?qd zfXYA@!BDQ)a=X2V!MjU$^54r%XoWz)L_8MIr*3k2IYNanAJ-s0Fh_K8tiR6TWAWMlR-EQiDm}C5Apf{314;=S;=1 zTHG|n2W8ZUon)MkXTtW65?qE4%ffe`sfg`r?-x20cjhs)2y@$+?Lkb?*Q>%=_}Vj3 zJ0KJd_ooOaUn5!z5=>7L-@lAJdcP>Vl-@H@0G{L_qO%CBNJae{45dwq*ZUnlE>olz zF4F1nYQAF~ePVbC)o|w#b@?Rf$^yheR_8Yxb<*z_c9i<#6Zw2Da723XMEy`mKiQM= z>!v)>jGkSR10d!|WC{-PbDDzq=$bYJisg8qYKbV|Bsw|`=3m;O(`dur_s4O6*IzF0 z)lV2y<)~jjdHKpQjKR4FbRJ8F;s}``3?`P-N84D&qh!seLxSx4}t^- z{YRfUuPH?+{C+;kX#(Y%LHF$jT?u@ZVRiU`qS%-Q6S$)~}g z_FHvnAGubCPZ9YHv_Wj5?ygP%-ffM%rk+(b_J+@ZgGe0=#um=~@I2S?^<_x)yDG7N4HRkIbOnfE&?q32lI&Vy^DfC%WpR$Axf-7gIoix( z8Z+r1=(ZiL+^E#l{Q1Zr|2n3k??WB=9gp_nle>^%@$9{206+ap6rXI%bv43 z(4|v{`I?AcDb}9?>+FYU1!z7PrGe9%T6hDfjL4O%Wxz5n0q&HpLN3SLkZiky(HKi2 zKd^pXskELpCD*Grfb3pU#yp~%RQWxOaOJMpKN1Oh*1t9m%t!*bbbC^$68d_|t5ND2*5s#O=Pj_w}k;o-0z_IYjYGaiPvc^0r+MB4@ zp+vp-l*m_+nEA7aP)bD>Nx(NMl5BUIX_wEa;*t@Ex5lYq(k2p|J-itTHZGGI%X;VE zAvi55y|X~OO#Vlxr(Rn-y0icasLci4%3gk;ccLqq84~P^{X8#0-KC(8xN6f@4N!zT z=i|s6g6~m_N%;`S_(VKAa8!6d8U~cU@!)L4EKocDa(=YQ*dDuILqS!OdwSTB|)CW&zh5!pfXwA-oTvv!IV%t}|2O`+fvpRpc;ag8$FPYJx2pm=MqB-2LA zQollST3OzhvT#;b#6T&3RZl(Bh04@$06!QP*F**@Y|I28*a$$Oj!}C6yN2e41+gJK zpjrp|OhTed2T2g&mrb8L6u#Y*`g}_TeMv@9Loi$Zg4|tn zdv=x`TPU!$TvKGZx%6U>I{)Z`7=9J15M8$QKv#^3=Ig?ceP|_s;`=lRNID14cb4`Y zm2a!{^<&m69iiefZV6Kb;jI7;3dvTrB@S&OWt@<-S!K7{)RNKGn;utzrR*Rg9NIzF z$rwgXt*WM1RvYx= zyItXbmiA@$^HJ~?0P${V{?w5zjP-k^AX3ZH1U;w+l+BIT$1gz$2CMr zAP(pRoXm2+)^s&oCxPhTRZq@Sr!Dbg+cMcCh&?H3UP01m?H)(i{lA~qL?W!VK-;z; z7CA^k_}W%m6m2ViE>1u83>-(X(Ux0~5TylY+7&AwT|BR}tuYs{PqLenEt`X`9Zf`` zX`#_6%yPT1YsRT|OQ(LHEU4PW%7wwC)RXN&g7zsE&(TfblL)yW&0bKckVJ!c$_V)n zC`4K=l65&Go)kxE6!4yDgx$;PqH4;zls3uMO+uXl^0}n(*a7+6hTogEJ}2!$L42QU z7d$DKd%B#oFw9(+V44G$sV2>VzcABv%|TtLn`;g{!8Hekns0H~zjeD8QQe<&5cpfJN^>nisv)Tit~zpUeSv^SJUha)j;2W! zkjwR(ds|cmG!QeX0`gjY2`*g0BdG$KmP7$_UC{3d%}O~>YaNTL5R}v1U_6)kK{-@f z3%I+D1K4xq0QR?5?Lt~-DF!ERi;QJ@gN~%XuTw1?p3J2%)a%YTUk};Io#68_W75%i zEZYYM6rN!R;4x>0I`Wh4hg6NC(R&=4BKMZKHkTBMebX6P?3=T7itV+W_w%iF#rTrb zz4h%os`Q(x)J#oLE13I={7)JNr;_eaoB2J6%i3eCN3-RrJ8vNS!nny8jO(mU_zQT8 zrJ?U2EVoPiLir~9VM@sjyGOqYjs*<*~l%w83!M~2A)P4alqSaylWD&HTMAF&r0nI1CW z63{;rdp0ZRN&k3UCyp@?7hhImi$~)?B`$VJq>QIJv)9>(A2h+2SSp6x8$P+{prkvB z#LwUAHmaCO{PoWCJ6Hb|FB-G!^XPTEEfyj*yW7E8$Pu_E1q*j)!qh4;90$A)V##85 zSU~FMMrBt9?dgNtArNA??KPyxlvzkJ%uOQUC8o&<&qvsneG(BX>?7iYC^){OR+?GsDw6&pc|I!Rf#D1i!XGY@h6`bsef{3uy=`!199$P&Y1w1bOo^=GoIZb zE!mqJ6I#4{N&FGu$r7=j^!#^T06J&@_9VsJ??UD_jwFW_jny=E`fBRGfdVdLGj-AZ zR3H9;G=Z44hF}FtSS>yXLA$#EX`zU6q{Y@D5m$Oq38v7WJTue=F1hCEm+vjn&@XsIhc z{3d3h=u<#jM zUVKEjJ;^SZ(qPn)jb=oyH%(QKu2ko{_0Y-C#_&&w@JGUH?-4x5`UfEy;Ztn$8?+N_ zn~&$NkK5Ewe#g*;f(+q1%;^S1y9g0S-DfL?uPmCE%EPZ+agnE{{eCLlJ7>DA@Ugqg z%(!kDUmk7*igI6)n;vtIzu0n#*oP-%ldTJ)_`Jl{G#A&H|LBY~Gd1nW_+N}cy*rIc z_;SZ*4nio1ed$hVXf}smi!vgBB7cEu(-}gk=5nZP0=H$O557WOUoaH@nIOf6oDv-C6eQjR~P7fW7G>|8yu%`5FnJ+YkD z%YzNFy|ilLb~OCM;mJoJ^&DPx`It_QjFi9H0em349l!uWfS%66dAeSv9|eI3f4LIR znBp(?0;91^R6j0C&%%y*a7?G3)f~Pk$WZ}kA!t5`Q}za>ivqD5fk~oF;djvdES96* zthP2Cs0T!u>ZB?AByMv+js>_J{LRl@P&g`EifhgqZ5>bc?MBBiZ9A*w`aIDKRu0Ai zIa7IbME!1q{B9)zah)2W!KuXarsCG=c-~|j-5Iw{#q;(jLNzxdDmALL0jZ+-{s=9N z%k^sHN)J+oufs>|5`cOrj^JH=Fix<=VQZnk1TKUsNii{^)wO&qZs1e~)gO;rA?)ax ziFQgg)9L)Iz-`VaD1bLwSgmqx9)TT3Gh}CX4}YgMK6@{x9l&9v{kiuTkcM#;UmmXG z5F%AgpDN$(lwrf}1g&!evZIj^pYtEa?Atag1R4>ZA&$?;rguk~otuk#kdhST5i1-noS zrEreviiQ_{le30GH#g28&k;y4rz+690W7u-%3O_$hCumpwQtZ+TW5>iX`kPfKs+b? zFHsrJVph6(<(622-3^Pr14H}MQjQ#3MBW_6?1b*#IZkD5UQ8}YM3N&H#HJ@D*gje5 zXtQkj6lyuyqJqJxluhuHME^MIj^lhfSxv~vboyk<^BuD8!kV+$l_sC%g zj2n6o3C-PPAF(h3Z(ee_XR}7-XeCF%8zNV7cv6ygyH+LFcqCOyUUwcL96(5(mLE@D+4zTv>rP2R7nc)9iF16LQm6<%*Xa_ub#uDYhs z-mTn>t%y)6ddJOnC6pu4VL^;ksf6?>J&Hv#GlfbXv5b)>ypk^Hz%4ggKTNxlJWa@< zD$D~#kml*u+Y}Ma>P}iBeWK}AJ6<-$6<+K#1OZ1|sze|di9Jiab8?Mf2)eQW{ zx^);X=j*Gka$%gl5^}wdFQcUQ@fXK=e{LO@mNYuvM!tkycjJres;3?} zwol0_rz5uu5nU;iI_58lJ{01mxpv1#*R0)HSc}xE-N|zmJzz}N;|)3_{5eNve{0q1 zKone$bImVt44&asZMTsW^e;JMRntM7aP>1D8q6IxROr18t!c6pN(} zbxzKQe_n)%7`)2=fWMI#!PwI|^c&8V?KYb-@nW(qTaC0@uJ6<68U|uTwrdFb07hr_ zvwq99^a0{>k)UIqFENb0)wn45j8V8R@mnsDDE@XHHsu9!k$Q=C%F79;A5Fk2yIi;z zk(VSzVs>39skr=D_(t>#V{n7>)01byMptXwiCi}}x80c73nV8T2;0iz_Ih#ts!9^G zm^+<3+BiP6Es}!4xb9FWCYPI##Vxx92O--fL@KJri@Dbqfj@SX2x}zh>k4a-x`u12 zQUHt!qy$H(5GRXoh_9%$LXe2S-8r);55CLXbY*8E5UIqjQKtS0WV@xR>u2?s&{yJ) zugxV`Ch!_YorVx#H3}Jta=~~hOw_o1JjC~J%a&VEkDX;{z4)uZWFrV_5C}_*r0aIO zChwm`S}3MjHi7y@%W{=&CRR?rKw<~swN&XkW1QEYbNUhRGrR~DgH$(V!p0%fvbBI! z=E*LGTn4n@VsKXiTaH3ogd;;E`a3cS;v*VqtP0l3q5qe?HvzBfs_wpZb#ksO+pB|6FcRRLIO`T+{qONoAsw^2Y~Hh zZpCmAG(^F(SmWr{!r&WXZ4oxof{=BLnJL^dA96@N*OZeV($EqPP627q>~vw zoL+X={1$~rit`Nu>?U>x^F|e;#%4vKX(%Vf}IZ;6x(+w?e)

Gi_%#^f=CtL=~5>b-8-E$%9|d`s*u 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�A(vomGg%Fk4PySD0YzI#U|w%=~3 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

    6;6tG@Ey>n6;VjupJ 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

    aXP}xBgabfbBqcnzo`Nt$WHq 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

    9K4X%~4CY=ShD`b6hC_?u<&Q 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%0D?H9Qp3~^@}nhg&4 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%0DhHAyeasM&@yR`8$+k=D+b$bg&J7 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: - -/** - * \brief I/O read interface - */ -int32_t io_read(struct io_descriptor *const io_descr, uint8_t *const buf, const uint16_t length) -{ - 0: 08 18 01 20 fd 09 00 00 f9 09 00 00 f9 09 00 00 ... ............ - ASSERT(io_descr && buf); - 10: f9 09 00 00 f9 09 00 00 f9 09 00 00 00 00 00 00 ................ - ... - return io_descr->read(io_descr, buf, length); - 2c: f9 09 00 00 f9 09 00 00 00 00 00 00 f9 09 00 00 ................ - - descr->flags |= TIMER_FLAG_QUEUE_IS_TAKEN; - if (!is_list_element(&descr->tasks, task)) { - descr->flags &= ~TIMER_FLAG_QUEUE_IS_TAKEN; - ASSERT(false); - return ERR_NOT_FOUND; - 3c: f9 09 00 00 f9 09 00 00 f9 09 00 00 f9 09 00 00 ................ - } - list_delete_element(&descr->tasks, task); - - descr->flags &= ~TIMER_FLAG_QUEUE_IS_TAKEN; - 4c: f9 09 00 00 f9 09 00 00 f9 09 00 00 f9 09 00 00 ................ - if (descr->flags & TIMER_FLAG_INTERRUPT_TRIGERRED) { - CRITICAL_SECTION_ENTER() - 5c: f9 09 00 00 f9 09 00 00 f9 09 00 00 f9 09 00 00 ................ - descr->flags &= ~TIMER_FLAG_INTERRUPT_TRIGERRED; - _timer_set_irq(&descr->device); - 6c: f9 09 00 00 f9 09 00 00 f9 09 00 00 f9 09 00 00 ................ - CRITICAL_SECTION_LEAVE() - } - - return ERR_NONE; - 7c: f9 09 00 00 f9 09 00 00 f9 09 00 00 f9 09 00 00 ................ - 8c: f9 09 00 00 f9 09 00 00 f9 09 00 00 f9 09 00 00 ................ - } else { - /* error baudrate */ - return ERR_INVALID_ARG; - } - - return ERR_NONE; - 9c: f9 09 00 00 f9 09 00 00 f9 09 00 00 f9 09 00 00 ................ - -static inline void hri_sercomi2cm_write_BAUD_BAUD_bf(const void *const hw, hri_sercomi2cm_baud_reg_t data) -{ - uint32_t tmp; - SERCOM_CRITICAL_SECTION_ENTER(); - tmp = ((Sercom *)hw)->I2CM.BAUD.reg; - ac: f9 09 00 00 f9 09 00 00 f9 09 00 00 f9 09 00 00 ................ - tmp = (uint32_t)((clkrate - 10 * baudrate - baudrate * clkrate * (i2c_dev->service.trise * 0.000000001)) - bc: f9 09 00 00 f9 09 00 00 f9 09 00 00 f9 09 00 00 ................ - cc: f9 09 00 00 f9 09 00 00 f9 09 00 00 f9 09 00 00 ................ - dc: f9 09 00 00 f9 09 00 00 f9 09 00 00 00 00 00 00 ................ - ... - f4: 1d 06 00 00 55 09 00 00 c1 09 00 00 c9 09 00 00 ....U........... - / (2 * baudrate)); - 104: d1 09 00 00 f9 09 00 00 f9 09 00 00 f9 09 00 00 ................ - tmp &= ~SERCOM_I2CM_BAUD_BAUD_Msk; - tmp |= SERCOM_I2CM_BAUD_BAUD(data); - 114: f9 09 00 00 f9 09 00 00 f9 09 00 00 f9 09 00 00 ................ - tmp = (clkrate - 2 * baudrate) / (2 * baudrate); - 124: f9 09 00 00 f9 09 00 00 f9 09 00 00 f9 09 00 00 ................ -static inline void hri_sercomi2cm_write_BAUD_HSBAUD_bf(const void *const hw, hri_sercomi2cm_baud_reg_t data) -{ - uint32_t tmp; - SERCOM_CRITICAL_SECTION_ENTER(); - tmp = ((Sercom *)hw)->I2CM.BAUD.reg; - tmp &= ~SERCOM_I2CM_BAUD_HSBAUD_Msk; - 134: f9 09 00 00 f9 09 00 00 f9 09 00 00 f9 09 00 00 ................ - return ERR_DENIED; - 144: f9 09 00 00 f9 09 00 00 f9 09 00 00 f9 09 00 00 ................ - return ERR_INVALID_ARG; - 154: f9 09 00 00 f9 09 00 00 f9 09 00 00 f9 09 00 00 ................ - 164: f9 09 00 00 f9 09 00 00 f9 09 00 00 f9 09 00 00 ................ - 174: f9 09 00 00 f9 09 00 00 f9 09 00 00 f9 09 00 00 ................ - ver_en = true; - } - } - - /*If a move is greater then LV_DRAG_LIMIT then begin the drag*/ - if((hor_en && LV_MATH_ABS(proc->types.pointer.drag_sum.x) >= indev_act->driver.drag_limit) || - 184: f9 09 00 00 f9 09 00 00 f9 09 00 00 f9 09 00 00 ................ - 194: f9 09 00 00 f9 09 00 00 f9 09 00 00 f9 09 00 00 ................ - (ver_en && LV_MATH_ABS(proc->types.pointer.drag_sum.y) >= indev_act->driver.drag_limit)) { - 1a4: f9 09 00 00 f9 09 00 00 f9 09 00 00 f9 09 00 00 ................ - drag_just_started = true; - } - } - - /*If the drag limit is exceeded handle the dragging*/ - if(proc->types.pointer.drag_limit_out != 0) { - 1b4: f9 09 00 00 f9 09 00 00 f9 09 00 00 f9 09 00 00 ................ - /*Set new position if the vector is not zero*/ - if(proc->types.pointer.vect.x != 0 || proc->types.pointer.vect.y != 0) { - 1c4: f9 09 00 00 f9 09 00 00 f9 09 00 00 f9 09 00 00 ................ - - lv_coord_t prev_x = drag_obj->coords.x1; - lv_coord_t prev_y = drag_obj->coords.y1; - 1d4: f9 09 00 00 f9 09 00 00 f9 09 00 00 f9 09 00 00 ................ - lv_coord_t prev_par_w = lv_obj_get_width(lv_obj_get_parent(drag_obj)); - lv_coord_t prev_par_h = lv_obj_get_height(lv_obj_get_parent(drag_obj)); - 1e4: f9 09 00 00 f9 09 00 00 31 10 00 00 f9 09 00 00 ........1....... - - /*Get the coordinates of the object and modify them*/ - lv_coord_t act_x = lv_obj_get_x(drag_obj); - lv_coord_t act_y = lv_obj_get_y(drag_obj); - 1f4: f9 09 00 00 f9 09 00 00 f9 09 00 00 f9 09 00 00 ................ - - if(allowed_dirs == LV_DRAG_DIR_BOTH) { - if(drag_just_started) { - proc->types.pointer.drag_dir = LV_DRAG_DIR_BOTH; - 204: f9 09 00 00 f9 09 00 00 f9 09 00 00 f9 09 00 00 ................ - act_x += proc->types.pointer.drag_sum.x; - 214: f9 09 00 00 f9 09 00 00 f9 09 00 00 f9 09 00 00 ................ - /*Move the object*/ - if(allowed_dirs == LV_DRAG_DIR_HOR || - allowed_dirs == LV_DRAG_DIR_BOTH || - (allowed_dirs == LV_DRAG_DIR_ONE && - LV_MATH_ABS(proc->types.pointer.drag_sum.x) > LV_MATH_ABS(proc->types.pointer.drag_sum.y))) { - act_x += proc->types.pointer.vect.x; - 224: f9 09 00 00 f9 09 00 00 f9 09 00 00 f9 09 00 00 ................ - 234: f9 09 00 00 f9 09 00 00 f9 09 00 00 f9 09 00 00 ................ - 244: f9 09 00 00 f9 09 00 00 f9 09 00 00 f9 09 00 00 ................ - 254: f9 09 00 00 f9 09 00 00 f9 09 00 00 f9 09 00 00 ................ - -00000264 : - 264: 4803 ldr r0, [pc, #12] ; (274 ) - 266: 4b04 ldr r3, [pc, #16] ; (278 ) - 268: 4283 cmp r3, r0 - 26a: d002 beq.n 272 - 26c: 4b03 ldr r3, [pc, #12] ; (27c ) - 26e: b103 cbz r3, 272 - proc->types.pointer.last_point.x = proc->types.pointer.act_point.x; - 270: 4718 bx r3 - if(proc->types.pointer.act_obj != NULL) { - 272: 4770 bx lr - 274: 0002c598 .word 0x0002c598 - proc->types.pointer.last_obj = indev_obj_act; - 278: 0002c598 .word 0x0002c598 - if(indev_obj_act != NULL) { - 27c: 00000000 .word 0x00000000 - -00000280 : - 280: 4805 ldr r0, [pc, #20] ; (298 ) - proc->pr_timestamp = lv_tick_get(); - 282: 4b06 ldr r3, [pc, #24] ; (29c ) - i = lv_obj_get_parent(i); - 284: 1a1b subs r3, r3, r0 - proc->pr_timestamp = lv_tick_get(); - 286: 0fd9 lsrs r1, r3, #31 - proc->types.pointer.drag_limit_out = 0; - 288: eb01 01a3 add.w r1, r1, r3, asr #2 - proc->long_pr_sent = 0; - 28c: 1049 asrs r1, r1, #1 - 28e: d002 beq.n 296 - proc->pr_timestamp = lv_tick_get(); - 290: 4b03 ldr r3, [pc, #12] ; (2a0 ) - proc->types.pointer.gesture_sum.x = 0; - 292: b103 cbz r3, 296 - proc->types.pointer.drag_limit_out = 0; - 294: 4718 bx r3 - 296: 4770 bx lr - proc->types.pointer.drag_sum.x = 0; - 298: 0002c598 .word 0x0002c598 - proc->long_pr_sent = 0; - 29c: 0002c598 .word 0x0002c598 - proc->types.pointer.drag_limit_out = 0; - 2a0: 00000000 .word 0x00000000 - -000002a4 <__do_global_dtors_aux>: - lv_obj_t * i = indev_obj_act; - 2a4: b510 push {r4, lr} - proc->long_pr_sent = 0; - 2a6: 4c06 ldr r4, [pc, #24] ; (2c0 <__do_global_dtors_aux+0x1c>) - 2a8: 7823 ldrb r3, [r4, #0] - proc->types.pointer.gesture_sum.x = 0; - 2aa: b943 cbnz r3, 2be <__do_global_dtors_aux+0x1a> - proc->types.pointer.gesture_sum.y = 0; - 2ac: f7ff ffda bl 264 - proc->types.pointer.drag_limit_out = 0; - 2b0: 4b04 ldr r3, [pc, #16] ; (2c4 <__do_global_dtors_aux+0x20>) - while(i != NULL) { - 2b2: b113 cbz r3, 2ba <__do_global_dtors_aux+0x16> - 2b4: 4804 ldr r0, [pc, #16] ; (2c8 <__do_global_dtors_aux+0x24>) - if(last_top != NULL) { - 2b6: f3af 8000 nop.w - lv_obj_move_foreground(last_top); - 2ba: 2301 movs r3, #1 - 2bc: 7023 strb r3, [r4, #0] - indev_obj_act->signal_cb(indev_obj_act, LV_SIGNAL_PRESSED, indev_act); - 2be: bd10 pop {r4, pc} - 2c0: 20000a04 .word 0x20000a04 - if(indev_reset_check(proc)) return; - 2c4: 00000000 .word 0x00000000 - indev_obj_act->signal_cb(indev_obj_act, LV_SIGNAL_PRESSED, indev_act); - 2c8: 0002c598 .word 0x0002c598 - -000002cc : - if(indev_reset_check(proc)) return; - 2cc: b508 push {r3, lr} - 2ce: 4b04 ldr r3, [pc, #16] ; (2e0 ) - 2d0: b11b cbz r3, 2da - 2d2: 4904 ldr r1, [pc, #16] ; (2e4 ) - lv_event_send(indev_obj_act, LV_EVENT_PRESSED, NULL); - 2d4: 4804 ldr r0, [pc, #16] ; (2e8 ) - 2d6: f3af 8000 nop.w - 2da: e8bd 4008 ldmia.w sp!, {r3, lr} - if(indev_reset_check(proc)) return; - 2de: e7cf b.n 280 - 2e0: 00000000 .word 0x00000000 - 2e4: 20000a08 .word 0x20000a08 - if(indev_act->proc.wait_until_release) return; - 2e8: 0002c598 .word 0x0002c598 - -000002ec : -{ - 2ec: b570 push {r4, r5, r6, lr} - 2ee: 460d mov r5, r1 - 2f0: 4616 mov r6, r2 - ASSERT(io_descr && buf); - 2f2: 4604 mov r4, r0 - 2f4: b110 cbz r0, 2fc - 2f6: 1e08 subs r0, r1, #0 - 2f8: bf18 it ne - 2fa: 2001 movne r0, #1 - 2fc: 4905 ldr r1, [pc, #20] ; (314 ) - 2fe: 4b06 ldr r3, [pc, #24] ; (318 ) - 300: 2234 movs r2, #52 ; 0x34 - 302: 4798 blx r3 - return io_descr->write(io_descr, buf, length); - 304: 6823 ldr r3, [r4, #0] - 306: 4632 mov r2, r6 - 308: 4629 mov r1, r5 - 30a: 4620 mov r0, r4 -} - 30c: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr} - return io_descr->write(io_descr, buf, length); - 310: 4718 bx r3 - 312: bf00 nop - 314: 0001dd54 .word 0x0001dd54 - 318: 000006a5 .word 0x000006a5 - -0000031c <_irq_set>: - */ -__STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ISPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - 31c: 0943 lsrs r3, r0, #5 - 31e: 4904 ldr r1, [pc, #16] ; (330 <_irq_set+0x14>) - 320: f000 001f and.w r0, r0, #31 - 324: 2201 movs r2, #1 - 326: 3340 adds r3, #64 ; 0x40 - 328: 4082 lsls r2, r0 - 32a: f841 2023 str.w r2, [r1, r3, lsl #2] - * \brief Set the given IRQ - */ -void _irq_set(uint8_t n) -{ - NVIC_SetPendingIRQ((IRQn_Type)n); -} - 32e: 4770 bx lr - 330: e000e100 .word 0xe000e100 - -00000334 <_get_cycles_for_us>: - */ -static inline uint32_t _get_cycles_for_us_internal(const uint16_t us, const uint32_t freq, const uint8_t power) -{ - switch (power) { - case 9: - return (us * (freq / 1000000) + 2) / 3; - 334: 2377 movs r3, #119 ; 0x77 - 336: 4358 muls r0, r3 - 338: 3002 adds r0, #2 - * \brief Retrieve the amount of cycles to delay for the given amount of us - */ -uint32_t _get_cycles_for_us(const uint16_t us) -{ - return _get_cycles_for_us_internal(us, CONF_CPU_FREQUENCY, CPU_FREQ_POWER); -} - 33a: 2303 movs r3, #3 - 33c: fbb0 f0f3 udiv r0, r0, r3 - 340: 4770 bx lr - -00000342 <_get_cycles_for_ms>: - */ -static inline uint32_t _get_cycles_for_ms_internal(const uint16_t ms, const uint32_t freq, const uint8_t power) -{ - switch (power) { - case 9: - return (ms * (freq / 1000000) + 2) / 3 * 1000; - 342: 2377 movs r3, #119 ; 0x77 - 344: 4358 muls r0, r3 - 346: 3002 adds r0, #2 - 348: 2303 movs r3, #3 - 34a: fbb0 f0f3 udiv r0, r0, r3 - * \brief Retrieve the amount of cycles to delay for the given amount of ms - */ -uint32_t _get_cycles_for_ms(const uint16_t ms) -{ - return _get_cycles_for_ms_internal(ms, CONF_CPU_FREQUENCY, CPU_FREQ_POWER); -} - 34e: f44f 737a mov.w r3, #1000 ; 0x3e8 - 352: 4358 muls r0, r3 - 354: 4770 bx lr - -00000356 <_delay_init>: - * \brief Initialize delay functionality - */ -void _delay_init(void *const hw) -{ - (void)hw; -} - 356: 4770 bx lr - -00000358 <_delay_cycles>: - __asm(".align 3 \n" - "__delay:\n" - "subs r1, r1, #1\n" - "bhi __delay\n"); -#elif defined __GNUC__ - __asm(".syntax unified\n" - 358: 3901 subs r1, #1 - 35a: d8fd bhi.n 358 <_delay_cycles> - __asm("__delay:\n" - "subs r1, r1, #1\n" - "bhi.n __delay\n"); -#endif -#endif -} - 35c: 4770 bx lr - if(indev_reset_check(proc)) return; - 35e: bf00 nop - -00000360 <_sbrk>: -extern caddr_t _sbrk(int incr) -{ - static unsigned char *heap = NULL; - unsigned char * prev_heap; - - if (heap == NULL) { - 360: 4a04 ldr r2, [pc, #16] ; (374 <_sbrk+0x14>) - 362: 6811 ldr r1, [r2, #0] -{ - 364: 4603 mov r3, r0 - if (heap == NULL) { - 366: b909 cbnz r1, 36c <_sbrk+0xc> - heap = (unsigned char *)&_end; - 368: 4903 ldr r1, [pc, #12] ; (378 <_sbrk+0x18>) - 36a: 6011 str r1, [r2, #0] - } - prev_heap = heap; - 36c: 6810 ldr r0, [r2, #0] - - heap += incr; - 36e: 4403 add r3, r0 - 370: 6013 str r3, [r2, #0] - - return (caddr_t)prev_heap; -} - 372: 4770 bx lr - 374: 20000a20 .word 0x20000a20 - 378: 20011808 .word 0x20011808 - -0000037c <_close>: - */ -extern int _close(int file) -{ - (void)file; - return -1; -} - 37c: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff - 380: 4770 bx lr - -00000382 <_fstat>: - * \brief Replacement of C library of _fstat - */ -extern int _fstat(int file, struct stat *st) -{ - (void)file; - st->st_mode = S_IFCHR; - 382: f44f 5300 mov.w r3, #8192 ; 0x2000 - 386: 604b str r3, [r1, #4] - - return 0; -} - 388: 2000 movs r0, #0 - 38a: 4770 bx lr - -0000038c <_isatty>: - */ -extern int _isatty(int file) -{ - (void)file; - return 1; -} - 38c: 2001 movs r0, #1 - 38e: 4770 bx lr - -00000390 <_lseek>: - */ -extern int _lseek(int file, int ptr, int dir) -{ - (void)file, (void)ptr, (void)dir; - return 0; -} - 390: 2000 movs r0, #0 - 392: 4770 bx lr - -00000394 <_exit>: - -/** - * \brief Replacement of C library of _exit - */ -extern void _exit(int status) -{ - 394: b508 push {r3, lr} - 396: 4601 mov r1, r0 - printf("Exiting with status %d.\n", status); - 398: 4b01 ldr r3, [pc, #4] ; (3a0 <_exit+0xc>) - 39a: 4802 ldr r0, [pc, #8] ; (3a4 <_exit+0x10>) - 39c: 4798 blx r3 - - for (;;) - 39e: e7fe b.n 39e <_exit+0xa> - 3a0: 00016ff5 .word 0x00016ff5 - 3a4: 0001dd68 .word 0x0001dd68 - -000003a8 <_kill>: - */ -extern void _kill(int pid, int sig) -{ - (void)pid, (void)sig; - return; -} - 3a8: 4770 bx lr - -000003aa <_getpid>: - * \brief Replacement of C library of _getpid - */ -extern int _getpid(void) -{ - return -1; -} - 3aa: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff - 3ae: 4770 bx lr - -000003b0 : - * \param[in] head The pointer to the head of timer task list - * \param[in] task The pointer to task to add - * \param[in] time Current timer time - */ -static void timer_add_timer_task(struct list_descriptor *list, struct timer_task *const new_task, const uint32_t time) -{ - 3b0: b5f0 push {r4, r5, r6, r7, lr} - * \return A pointer to the head of the given list or NULL if the list is - * empty - */ -static inline void *list_get_head(const struct list_descriptor *const list) -{ - return (void *)list->head; - 3b2: 6805 ldr r5, [r0, #0] - struct timer_task *it, *prev = NULL, *head = (struct timer_task *)list_get_head(list); - - if (!head) { - 3b4: b91d cbnz r5, 3be - list_insert_as_head(list, new_task); - 3b6: 4b0f ldr r3, [pc, #60] ; (3f4 ) - if (it == head) { - list_insert_as_head(list, new_task); - } else { - list_insert_after(prev, new_task); - } -} - 3b8: e8bd 40f0 ldmia.w sp!, {r4, r5, r6, r7, lr} - list_insert_after(prev, new_task); - 3bc: 4718 bx r3 - if (time_left >= new_task->interval) - 3be: f8d1 c008 ldr.w ip, [r1, #8] - 3c2: 462c mov r4, r5 - struct timer_task *it, *prev = NULL, *head = (struct timer_task *)list_get_head(list); - 3c4: 2600 movs r6, #0 - time_left = it->interval - (0xFFFFFFFF - it->time_label) - time; - 3c6: f1c2 0e01 rsb lr, r2, #1 - time_left = it->interval - (time - it->time_label); - 3ca: e9d4 3701 ldrd r3, r7, [r4, #4] - if (it->time_label <= time) { - 3ce: 4293 cmp r3, r2 - time_left = it->interval - (time - it->time_label); - 3d0: bf95 itete ls - 3d2: 19db addls r3, r3, r7 - time_left = it->interval - (0xFFFFFFFF - it->time_label) - time; - 3d4: 4473 addhi r3, lr - time_left = it->interval - (time - it->time_label); - 3d6: 1a9b subls r3, r3, r2 - time_left = it->interval - (0xFFFFFFFF - it->time_label) - time; - 3d8: 19db addhi r3, r3, r7 - if (time_left >= new_task->interval) - 3da: 459c cmp ip, r3 - 3dc: d907 bls.n 3ee - * \return A pointer to the next list element or NULL if there is not next - * element - */ -static inline void *list_get_next_element(const void *const element) -{ - return element ? ((struct list_element *)element)->next : NULL; - 3de: 6823 ldr r3, [r4, #0] - for (it = head; it; it = (struct timer_task *)list_get_next_element(it)) { - 3e0: 4626 mov r6, r4 - 3e2: b913 cbnz r3, 3ea - list_insert_after(prev, new_task); - 3e4: 4b04 ldr r3, [pc, #16] ; (3f8 ) - 3e6: 4630 mov r0, r6 - 3e8: e7e6 b.n 3b8 - 3ea: 461c mov r4, r3 - 3ec: e7ed b.n 3ca - if (it == head) { - 3ee: 42a5 cmp r5, r4 - 3f0: d0e1 beq.n 3b6 - 3f2: e7f7 b.n 3e4 - 3f4: 00000665 .word 0x00000665 - 3f8: 00000691 .word 0x00000691 - -000003fc : - -/** - * \internal Process interrupts - */ -static void timer_process_counted(struct _timer_device *device) -{ - 3fc: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} - struct timer_descriptor *timer = CONTAINER_OF(device, struct timer_descriptor, device); - struct timer_task * it = (struct timer_task *)list_get_head(&timer->tasks); - uint32_t time = ++timer->time; - 400: e9d0 6504 ldrd r6, r5, [r0, #16] - - if ((timer->flags & TIMER_FLAG_QUEUE_IS_TAKEN) || (timer->flags & TIMER_FLAG_INTERRUPT_TRIGERRED)) { - 404: 7e03 ldrb r3, [r0, #24] - uint32_t time = ++timer->time; - 406: 3601 adds r6, #1 - if ((timer->flags & TIMER_FLAG_QUEUE_IS_TAKEN) || (timer->flags & TIMER_FLAG_INTERRUPT_TRIGERRED)) { - 408: 07da lsls r2, r3, #31 -{ - 40a: 4604 mov r4, r0 - uint32_t time = ++timer->time; - 40c: 6106 str r6, [r0, #16] - if ((timer->flags & TIMER_FLAG_QUEUE_IS_TAKEN) || (timer->flags & TIMER_FLAG_INTERRUPT_TRIGERRED)) { - 40e: d41f bmi.n 450 - 410: 7e03 ldrb r3, [r0, #24] - 412: 079b lsls r3, r3, #30 - 414: d41c bmi.n 450 - } - - while (it && ((time - it->time_label) >= it->interval)) { - struct timer_task *tmp = it; - - list_remove_head(&timer->tasks); - 416: f8df 8044 ldr.w r8, [pc, #68] ; 45c - if (TIMER_TASK_REPEAT == tmp->mode) { - tmp->time_label = time; - timer_add_timer_task(&timer->tasks, tmp, time); - 41a: f8df 9044 ldr.w r9, [pc, #68] ; 460 - list_remove_head(&timer->tasks); - 41e: f100 0714 add.w r7, r0, #20 - while (it && ((time - it->time_label) >= it->interval)) { - 422: b1cd cbz r5, 458 - 424: 686b ldr r3, [r5, #4] - 426: 68aa ldr r2, [r5, #8] - 428: 1af3 subs r3, r6, r3 - 42a: 4293 cmp r3, r2 - 42c: d314 bcc.n 458 - list_remove_head(&timer->tasks); - 42e: 4638 mov r0, r7 - 430: 47c0 blx r8 - if (TIMER_TASK_REPEAT == tmp->mode) { - 432: 7c2b ldrb r3, [r5, #16] - 434: 2b01 cmp r3, #1 - 436: d104 bne.n 442 - tmp->time_label = time; - 438: 606e str r6, [r5, #4] - timer_add_timer_task(&timer->tasks, tmp, time); - 43a: 4632 mov r2, r6 - 43c: 4629 mov r1, r5 - 43e: 4638 mov r0, r7 - 440: 47c8 blx r9 - return (void *)list->head; - 442: f8d4 a014 ldr.w sl, [r4, #20] - } - it = (struct timer_task *)list_get_head(&timer->tasks); - - tmp->cb(tmp); - 446: 68eb ldr r3, [r5, #12] - 448: 4628 mov r0, r5 - 44a: 4798 blx r3 - it = (struct timer_task *)list_get_head(&timer->tasks); - 44c: 4655 mov r5, sl - 44e: e7e8 b.n 422 - timer->flags |= TIMER_FLAG_INTERRUPT_TRIGERRED; - 450: 7e23 ldrb r3, [r4, #24] - 452: f043 0302 orr.w r3, r3, #2 - 456: 7623 strb r3, [r4, #24] - } -} - 458: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} - 45c: 00000699 .word 0x00000699 - 460: 000003b1 .word 0x000003b1 - -00000464 : -{ - 464: b538 push {r3, r4, r5, lr} - 466: 460d mov r5, r1 - ASSERT(descr && hw); - 468: 4604 mov r4, r0 - 46a: b110 cbz r0, 472 - 46c: 1e08 subs r0, r1, #0 - 46e: bf18 it ne - 470: 2001 movne r0, #1 - 472: 223b movs r2, #59 ; 0x3b - 474: 4905 ldr r1, [pc, #20] ; (48c ) - 476: 4b06 ldr r3, [pc, #24] ; (490 ) - 478: 4798 blx r3 - _timer_init(&descr->device, hw); - 47a: 4b06 ldr r3, [pc, #24] ; (494 ) - 47c: 4629 mov r1, r5 - 47e: 4620 mov r0, r4 - 480: 4798 blx r3 - descr->device.timer_cb.period_expired = timer_process_counted; - 482: 4b05 ldr r3, [pc, #20] ; (498 ) - 484: 6023 str r3, [r4, #0] - descr->time = 0; - 486: 2000 movs r0, #0 - 488: 6120 str r0, [r4, #16] -} - 48a: bd38 pop {r3, r4, r5, pc} - 48c: 0001dd81 .word 0x0001dd81 - 490: 000006a5 .word 0x000006a5 - 494: 00000e85 .word 0x00000e85 - 498: 000003fd .word 0x000003fd - -0000049c : -{ - 49c: b538 push {r3, r4, r5, lr} - ASSERT(descr); - 49e: 4605 mov r5, r0 - 4a0: 3800 subs r0, #0 - 4a2: bf18 it ne - 4a4: 2001 movne r0, #1 - 4a6: 4908 ldr r1, [pc, #32] ; (4c8 ) - 4a8: 4b08 ldr r3, [pc, #32] ; (4cc ) - 4aa: 2253 movs r2, #83 ; 0x53 - 4ac: 4798 blx r3 - if (_timer_is_started(&descr->device)) { - 4ae: 4b08 ldr r3, [pc, #32] ; (4d0 ) - 4b0: 4628 mov r0, r5 - 4b2: 4798 blx r3 - 4b4: 4604 mov r4, r0 - 4b6: b920 cbnz r0, 4c2 - _timer_start(&descr->device); - 4b8: 4628 mov r0, r5 - 4ba: 4b06 ldr r3, [pc, #24] ; (4d4 ) - 4bc: 4798 blx r3 - return ERR_NONE; - 4be: 4620 mov r0, r4 -} - 4c0: bd38 pop {r3, r4, r5, pc} - return ERR_DENIED; - 4c2: f06f 0010 mvn.w r0, #16 - 4c6: e7fb b.n 4c0 - 4c8: 0001dd81 .word 0x0001dd81 - 4cc: 000006a5 .word 0x000006a5 - 4d0: 00000fd5 .word 0x00000fd5 - 4d4: 00000fc1 .word 0x00000fc1 - -000004d8 : -{ - 4d8: e92d 41f3 stmdb sp!, {r0, r1, r4, r5, r6, r7, r8, lr} - 4dc: 460d mov r5, r1 - ASSERT(descr && task); - 4de: 4604 mov r4, r0 - 4e0: b110 cbz r0, 4e8 - 4e2: 1e08 subs r0, r1, #0 - 4e4: bf18 it ne - 4e6: 2001 movne r0, #1 - 4e8: 491e ldr r1, [pc, #120] ; (564 ) - 4ea: f8df 8090 ldr.w r8, [pc, #144] ; 57c - 4ee: 227a movs r2, #122 ; 0x7a - 4f0: 47c0 blx r8 - descr->flags |= TIMER_FLAG_QUEUE_IS_TAKEN; - 4f2: 7e23 ldrb r3, [r4, #24] - if (is_list_element(&descr->tasks, task)) { - 4f4: f104 0714 add.w r7, r4, #20 - descr->flags |= TIMER_FLAG_QUEUE_IS_TAKEN; - 4f8: f043 0301 orr.w r3, r3, #1 - 4fc: 7623 strb r3, [r4, #24] - if (is_list_element(&descr->tasks, task)) { - 4fe: 4629 mov r1, r5 - 500: 4b19 ldr r3, [pc, #100] ; (568 ) - 502: 4638 mov r0, r7 - 504: 4798 blx r3 - 506: 4606 mov r6, r0 - 508: b160 cbz r0, 524 - descr->flags &= ~TIMER_FLAG_QUEUE_IS_TAKEN; - 50a: 7e23 ldrb r3, [r4, #24] - ASSERT(false); - 50c: 4915 ldr r1, [pc, #84] ; (564 ) - descr->flags &= ~TIMER_FLAG_QUEUE_IS_TAKEN; - 50e: f003 03fe and.w r3, r3, #254 ; 0xfe - ASSERT(false); - 512: 2000 movs r0, #0 - descr->flags &= ~TIMER_FLAG_QUEUE_IS_TAKEN; - 514: 7623 strb r3, [r4, #24] - ASSERT(false); - 516: 227f movs r2, #127 ; 0x7f - 518: 47c0 blx r8 - return ERR_ALREADY_INITIALIZED; - 51a: f06f 0011 mvn.w r0, #17 -} - 51e: b002 add sp, #8 - 520: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} - task->time_label = descr->time; - 524: 6922 ldr r2, [r4, #16] - timer_add_timer_task(&descr->tasks, task, descr->time); - 526: 4b11 ldr r3, [pc, #68] ; (56c ) - task->time_label = descr->time; - 528: 606a str r2, [r5, #4] - timer_add_timer_task(&descr->tasks, task, descr->time); - 52a: 4629 mov r1, r5 - 52c: 4638 mov r0, r7 - 52e: 4798 blx r3 - descr->flags &= ~TIMER_FLAG_QUEUE_IS_TAKEN; - 530: 7e23 ldrb r3, [r4, #24] - 532: f003 03fe and.w r3, r3, #254 ; 0xfe - 536: 7623 strb r3, [r4, #24] - if (descr->flags & TIMER_FLAG_INTERRUPT_TRIGERRED) { - 538: 7e23 ldrb r3, [r4, #24] - 53a: f013 0302 ands.w r3, r3, #2 - 53e: d00e beq.n 55e - CRITICAL_SECTION_ENTER() - 540: 4b0b ldr r3, [pc, #44] ; (570 ) - 542: a801 add r0, sp, #4 - 544: 4798 blx r3 - descr->flags &= ~TIMER_FLAG_INTERRUPT_TRIGERRED; - 546: 7e23 ldrb r3, [r4, #24] - 548: f003 03fd and.w r3, r3, #253 ; 0xfd - 54c: 7623 strb r3, [r4, #24] - _timer_set_irq(&descr->device); - 54e: 4620 mov r0, r4 - 550: 4b08 ldr r3, [pc, #32] ; (574 ) - 552: 4798 blx r3 - CRITICAL_SECTION_LEAVE() - 554: a801 add r0, sp, #4 - 556: 4b08 ldr r3, [pc, #32] ; (578 ) - 558: 4798 blx r3 - return ERR_NONE; - 55a: 4630 mov r0, r6 - 55c: e7df b.n 51e - 55e: 4618 mov r0, r3 - 560: e7dd b.n 51e - 562: bf00 nop - 564: 0001dd81 .word 0x0001dd81 - 568: 00000655 .word 0x00000655 - 56c: 000003b1 .word 0x000003b1 - 570: 0000104d .word 0x0000104d - 574: 00000ff1 .word 0x00000ff1 - 578: 0000105b .word 0x0000105b - 57c: 000006a5 .word 0x000006a5 - -00000580 : -/** - * \brief Initialize Delay driver - */ -void delay_init(void *const hw) -{ - _delay_init(hardware = hw); - 580: 4b01 ldr r3, [pc, #4] ; (588 ) - 582: 6018 str r0, [r3, #0] - 584: 4b01 ldr r3, [pc, #4] ; (58c ) - 586: 4718 bx r3 - 588: 20000a24 .word 0x20000a24 - 58c: 00000357 .word 0x00000357 - -00000590 : -/** - * \brief Perform delay in us - */ -void delay_us(const uint16_t us) -{ - _delay_cycles(hardware, _get_cycles_for_us(us)); - 590: 4b05 ldr r3, [pc, #20] ; (5a8 ) -{ - 592: b510 push {r4, lr} - _delay_cycles(hardware, _get_cycles_for_us(us)); - 594: 681c ldr r4, [r3, #0] - 596: 4b05 ldr r3, [pc, #20] ; (5ac ) - 598: 4798 blx r3 - 59a: 4b05 ldr r3, [pc, #20] ; (5b0 ) - 59c: 4601 mov r1, r0 - 59e: 4620 mov r0, r4 -} - 5a0: e8bd 4010 ldmia.w sp!, {r4, lr} - _delay_cycles(hardware, _get_cycles_for_us(us)); - 5a4: 4718 bx r3 - 5a6: bf00 nop - 5a8: 20000a24 .word 0x20000a24 - 5ac: 00000335 .word 0x00000335 - 5b0: 00000359 .word 0x00000359 - -000005b4 : -/** - * \brief Perform delay in ms - */ -void delay_ms(const uint16_t ms) -{ - _delay_cycles(hardware, _get_cycles_for_ms(ms)); - 5b4: 4b05 ldr r3, [pc, #20] ; (5cc ) -{ - 5b6: b510 push {r4, lr} - _delay_cycles(hardware, _get_cycles_for_ms(ms)); - 5b8: 681c ldr r4, [r3, #0] - 5ba: 4b05 ldr r3, [pc, #20] ; (5d0 ) - 5bc: 4798 blx r3 - 5be: 4b05 ldr r3, [pc, #20] ; (5d4 ) - 5c0: 4601 mov r1, r0 - 5c2: 4620 mov r0, r4 -} - 5c4: e8bd 4010 ldmia.w sp!, {r4, lr} - _delay_cycles(hardware, _get_cycles_for_ms(ms)); - 5c8: 4718 bx r3 - 5ca: bf00 nop - 5cc: 20000a24 .word 0x20000a24 - 5d0: 00000343 .word 0x00000343 - 5d4: 00000359 .word 0x00000359 - -000005d8 <_init_chip>: -} - -static inline void hri_nvmctrl_set_CTRLA_RWS_bf(const void *const hw, hri_nvmctrl_ctrla_reg_t mask) -{ - NVMCTRL_CRITICAL_SECTION_ENTER(); - ((Nvmctrl *)hw)->CTRLA.reg |= NVMCTRL_CTRLA_RWS(mask); - 5d8: 4a0a ldr r2, [pc, #40] ; (604 <_init_chip+0x2c>) - 5da: 8813 ldrh r3, [r2, #0] - 5dc: b29b uxth r3, r3 - -/** - * \brief Initialize the hardware abstraction layer - */ -void _init_chip(void) -{ - 5de: b510 push {r4, lr} - 5e0: f443 63a0 orr.w r3, r3, #1280 ; 0x500 - 5e4: 8013 strh r3, [r2, #0] - hri_nvmctrl_set_CTRLA_RWS_bf(NVMCTRL, CONF_NVM_WAIT_STATE); - - _osc32kctrl_init_sources(); - 5e6: 4b08 ldr r3, [pc, #32] ; (608 <_init_chip+0x30>) - 5e8: 4798 blx r3 - _oscctrl_init_sources(); - 5ea: 4b08 ldr r3, [pc, #32] ; (60c <_init_chip+0x34>) - 5ec: 4798 blx r3 - _mclk_init(); - 5ee: 4b08 ldr r3, [pc, #32] ; (610 <_init_chip+0x38>) - 5f0: 4798 blx r3 -#if _GCLK_INIT_1ST - _gclk_init_generators_by_fref(_GCLK_INIT_1ST); -#endif - _oscctrl_init_referenced_generators(); - 5f2: 4b08 ldr r3, [pc, #32] ; (614 <_init_chip+0x3c>) - 5f4: 4798 blx r3 -#endif - -#if CONF_CMCC_ENABLE - cache_init(); -#endif -} - 5f6: e8bd 4010 ldmia.w sp!, {r4, lr} - _gclk_init_generators_by_fref(_GCLK_INIT_LAST); - 5fa: 4b07 ldr r3, [pc, #28] ; (618 <_init_chip+0x40>) - 5fc: f640 70ff movw r0, #4095 ; 0xfff - 600: 4718 bx r3 - 602: bf00 nop - 604: 41004000 .word 0x41004000 - 608: 00000ae1 .word 0x00000ae1 - 60c: 000006ab .word 0x000006ab - 610: 000006e9 .word 0x000006e9 - 614: 000006ad .word 0x000006ad - 618: 000009d9 .word 0x000009d9 - -0000061c : - return tmp; -} - -static inline hri_ramecc_intflag_reg_t hri_ramecc_read_INTFLAG_reg(const void *const hw) -{ - return ((Ramecc *)hw)->INTFLAG.reg; - 61c: 4a0b ldr r2, [pc, #44] ; (64c ) - 61e: 7893 ldrb r3, [r2, #2] - -/** - * \internal RAMECC interrupt handler - */ -void RAMECC_Handler(void) -{ - 620: b082 sub sp, #8 - 622: b2db uxtb r3, r3 - struct _ramecc_device *dev = (struct _ramecc_device *)&device; - volatile uint32_t int_mask = hri_ramecc_read_INTFLAG_reg(RAMECC); - 624: 9301 str r3, [sp, #4] - - if (int_mask & RAMECC_INTFLAG_DUALE && dev->ramecc_cb.dual_bit_err) { - 626: 9b01 ldr r3, [sp, #4] - 628: 0799 lsls r1, r3, #30 - 62a: d505 bpl.n 638 - 62c: 4b08 ldr r3, [pc, #32] ; (650 ) - 62e: 681b ldr r3, [r3, #0] - 630: b113 cbz r3, 638 - return tmp; -} - -static inline hri_ramecc_erraddr_reg_t hri_ramecc_read_ERRADDR_reg(const void *const hw) -{ - return ((Ramecc *)hw)->ERRADDR.reg; - 632: 6850 ldr r0, [r2, #4] - } else if (int_mask & RAMECC_INTFLAG_SINGLEE && dev->ramecc_cb.single_bit_err) { - dev->ramecc_cb.single_bit_err((uint32_t)hri_ramecc_read_ERRADDR_reg(RAMECC)); - } else { - return; - } -} - 634: b002 add sp, #8 - dev->ramecc_cb.single_bit_err((uint32_t)hri_ramecc_read_ERRADDR_reg(RAMECC)); - 636: 4718 bx r3 - } else if (int_mask & RAMECC_INTFLAG_SINGLEE && dev->ramecc_cb.single_bit_err) { - 638: 9b01 ldr r3, [sp, #4] - 63a: 07db lsls r3, r3, #31 - 63c: d504 bpl.n 648 - 63e: 4b04 ldr r3, [pc, #16] ; (650 ) - 640: 685b ldr r3, [r3, #4] - 642: b10b cbz r3, 648 - 644: 4a01 ldr r2, [pc, #4] ; (64c ) - 646: e7f4 b.n 632 -} - 648: b002 add sp, #8 - 64a: 4770 bx lr - 64c: 41020000 .word 0x41020000 - 650: 20000a28 .word 0x20000a28 - -00000654 : - * \brief Check whether element belongs to list - */ -bool is_list_element(const struct list_descriptor *const list, const void *const element) -{ - struct list_element *it; - for (it = list->head; it; it = it->next) { - 654: 6800 ldr r0, [r0, #0] - 656: b900 cbnz r0, 65a - 658: 4770 bx lr - if (it == element) { - 65a: 4288 cmp r0, r1 - 65c: d1fa bne.n 654 - return true; - 65e: 2001 movs r0, #1 - } - } - - return false; -} - 660: 4770 bx lr - ... - -00000664 : - -/** - * \brief Insert an element as list head - */ -void list_insert_as_head(struct list_descriptor *const list, void *const element) -{ - 664: b538 push {r3, r4, r5, lr} - ASSERT(!is_list_element(list, element)); - 666: 4b07 ldr r3, [pc, #28] ; (684 ) -{ - 668: 4604 mov r4, r0 - ASSERT(!is_list_element(list, element)); - 66a: 4798 blx r3 - 66c: f080 0001 eor.w r0, r0, #1 -{ - 670: 460d mov r5, r1 - ASSERT(!is_list_element(list, element)); - 672: 4b05 ldr r3, [pc, #20] ; (688 ) - 674: 4905 ldr r1, [pc, #20] ; (68c ) - 676: 2239 movs r2, #57 ; 0x39 - 678: b2c0 uxtb r0, r0 - 67a: 4798 blx r3 - - ((struct list_element *)element)->next = list->head; - 67c: 6823 ldr r3, [r4, #0] - 67e: 602b str r3, [r5, #0] - list->head = (struct list_element *)element; - 680: 6025 str r5, [r4, #0] -} - 682: bd38 pop {r3, r4, r5, pc} - 684: 00000655 .word 0x00000655 - 688: 000006a5 .word 0x000006a5 - 68c: 0001dd98 .word 0x0001dd98 - -00000690 : -/** - * \brief Insert an element after the given list element - */ -void list_insert_after(void *const after, void *const element) -{ - ((struct list_element *)element)->next = ((struct list_element *)after)->next; - 690: 6803 ldr r3, [r0, #0] - 692: 600b str r3, [r1, #0] - ((struct list_element *)after)->next = (struct list_element *)element; - 694: 6001 str r1, [r0, #0] -} - 696: 4770 bx lr - -00000698 : -/** - * \brief Removes list head - */ -void *list_remove_head(struct list_descriptor *const list) -{ - if (list->head) { - 698: 6803 ldr r3, [r0, #0] - 69a: b10b cbz r3, 6a0 - struct list_element *tmp = list->head; - - list->head = list->head->next; - 69c: 681a ldr r2, [r3, #0] - 69e: 6002 str r2, [r0, #0] - return (void *)tmp; - } - - return NULL; -} - 6a0: 4618 mov r0, r3 - 6a2: 4770 bx lr - -000006a4 : -/** - * \brief Assert function - */ -void assert(const bool condition, const char *const file, const int line) -{ - if (!(condition)) { - 6a4: b900 cbnz r0, 6a8 - __asm("BKPT #0"); - 6a6: be00 bkpt 0x0000 - } - (void)file; - (void)line; -} - 6a8: 4770 bx lr - -000006aa <_oscctrl_init_sources>: - hri_oscctrl_set_XOSCCTRL_ONDEMAND_bit(hw, 1); -#endif -#endif - - (void)hw; -} - 6aa: 4770 bx lr - -000006ac <_oscctrl_init_referenced_generators>: - -static inline void hri_oscctrl_write_DPLLRATIO_reg(const void *const hw, uint8_t submodule_index, - hri_oscctrl_dpllratio_reg_t data) -{ - OSCCTRL_CRITICAL_SECTION_ENTER(); - ((Oscctrl *)hw)->Dpll[submodule_index].DPLLRATIO.reg = data; - 6ac: 4b0c ldr r3, [pc, #48] ; (6e0 <_oscctrl_init_referenced_generators+0x34>) - 6ae: 4a0d ldr r2, [pc, #52] ; (6e4 <_oscctrl_init_referenced_generators+0x38>) - 6b0: 635a str r2, [r3, #52] ; 0x34 - while (((Oscctrl *)hw)->Dpll[submodule_index].DPLLSYNCBUSY.reg & reg) { - 6b2: 6bda ldr r2, [r3, #60] ; 0x3c - 6b4: f012 0f06 tst.w r2, #6 - 6b8: d1fb bne.n 6b2 <_oscctrl_init_referenced_generators+0x6> - -static inline void hri_oscctrl_write_DPLLCTRLB_reg(const void *const hw, uint8_t submodule_index, - hri_oscctrl_dpllctrlb_reg_t data) -{ - OSCCTRL_CRITICAL_SECTION_ENTER(); - ((Oscctrl *)hw)->Dpll[submodule_index].DPLLCTRLB.reg = data; - 6ba: f44f 6202 mov.w r2, #2080 ; 0x820 - 6be: 639a str r2, [r3, #56] ; 0x38 - ((Oscctrl *)hw)->Dpll[submodule_index].DPLLCTRLA.reg = data; - 6c0: 2202 movs r2, #2 - 6c2: f883 2030 strb.w r2, [r3, #48] ; 0x30 - while (((Oscctrl *)hw)->Dpll[submodule_index].DPLLSYNCBUSY.reg & reg) { - 6c6: 4a06 ldr r2, [pc, #24] ; (6e0 <_oscctrl_init_referenced_generators+0x34>) - 6c8: 6bd3 ldr r3, [r2, #60] ; 0x3c - 6ca: 0798 lsls r0, r3, #30 - 6cc: d4fc bmi.n 6c8 <_oscctrl_init_referenced_generators+0x1c> - return (((Oscctrl *)hw)->Dpll[submodule_index].DPLLSTATUS.reg & OSCCTRL_DPLLSTATUS_LOCK) - 6ce: 4b04 ldr r3, [pc, #16] ; (6e0 <_oscctrl_init_referenced_generators+0x34>) - 6d0: 6c1a ldr r2, [r3, #64] ; 0x40 -#endif -#endif - -#if CONF_FDPLL0_CONFIG == 1 -#if CONF_FDPLL0_ENABLE == 1 - while (!(hri_oscctrl_get_DPLLSTATUS_LOCK_bit(hw, 0) || hri_oscctrl_get_DPLLSTATUS_CLKRDY_bit(hw, 0))) - 6d2: 07d1 lsls r1, r2, #31 - 6d4: d402 bmi.n 6dc <_oscctrl_init_referenced_generators+0x30> - return (((Oscctrl *)hw)->Dpll[submodule_index].DPLLSTATUS.reg & OSCCTRL_DPLLSTATUS_CLKRDY) - 6d6: 6c1a ldr r2, [r3, #64] ; 0x40 - 6d8: 0792 lsls r2, r2, #30 - 6da: d5f9 bpl.n 6d0 <_oscctrl_init_referenced_generators+0x24> - hri_gclk_write_GENCTRL_SRC_bf(GCLK, 0, CONF_GCLK_GEN_0_SOURCE); - while (hri_gclk_get_SYNCBUSY_GENCTRL0_bit(GCLK)) - ; -#endif - (void)hw; -} - 6dc: 4770 bx lr - 6de: bf00 nop - 6e0: 40001000 .word 0x40001000 - 6e4: 00010e4d .word 0x00010e4d - -000006e8 <_mclk_init>: -} - -static inline void hri_mclk_write_CPUDIV_reg(const void *const hw, hri_mclk_cpudiv_reg_t data) -{ - MCLK_CRITICAL_SECTION_ENTER(); - ((Mclk *)hw)->CPUDIV.reg = data; - 6e8: 4b01 ldr r3, [pc, #4] ; (6f0 <_mclk_init+0x8>) - 6ea: 2201 movs r2, #1 - 6ec: 715a strb r2, [r3, #5] - */ -void _mclk_init(void) -{ - void *hw = (void *)MCLK; - hri_mclk_write_CPUDIV_reg(hw, MCLK_CPUDIV_DIV(CONF_MCLK_CPUDIV)); -} - 6ee: 4770 bx lr - 6f0: 40000800 .word 0x40000800 - -000006f4 : - while (((Sercom *)hw)->I2CM.SYNCBUSY.reg & reg) { - 6f4: 69c3 ldr r3, [r0, #28] - 6f6: 420b tst r3, r1 - 6f8: d1fc bne.n 6f4 -} - 6fa: 4770 bx lr - -000006fc : - ((Sercom *)hw)->I2CM.CTRLA.reg |= SERCOM_I2CM_CTRLA_ENABLE; - 6fc: 6802 ldr r2, [r0, #0] - hri_sercomi2cm_wait_for_sync(hw, SERCOM_I2CM_SYNCBUSY_SWRST | SERCOM_I2CM_SYNCBUSY_ENABLE); - 6fe: 4b03 ldr r3, [pc, #12] ; (70c ) - ((Sercom *)hw)->I2CM.CTRLA.reg |= SERCOM_I2CM_CTRLA_ENABLE; - 700: f042 0202 orr.w r2, r2, #2 - 704: 6002 str r2, [r0, #0] - hri_sercomi2cm_wait_for_sync(hw, SERCOM_I2CM_SYNCBUSY_SWRST | SERCOM_I2CM_SYNCBUSY_ENABLE); - 706: 2103 movs r1, #3 - 708: 4718 bx r3 - 70a: bf00 nop - 70c: 000006f5 .word 0x000006f5 - -00000710 : - ((Sercom *)hw)->I2CM.CTRLA.reg &= ~SERCOM_I2CM_CTRLA_ENABLE; - 710: 6802 ldr r2, [r0, #0] - hri_sercomi2cm_wait_for_sync(hw, SERCOM_I2CM_SYNCBUSY_SWRST | SERCOM_I2CM_SYNCBUSY_ENABLE); - 712: 4b03 ldr r3, [pc, #12] ; (720 ) - ((Sercom *)hw)->I2CM.CTRLA.reg &= ~SERCOM_I2CM_CTRLA_ENABLE; - 714: f022 0202 bic.w r2, r2, #2 - 718: 6002 str r2, [r0, #0] - hri_sercomi2cm_wait_for_sync(hw, SERCOM_I2CM_SYNCBUSY_SWRST | SERCOM_I2CM_SYNCBUSY_ENABLE); - 71a: 2103 movs r1, #3 - 71c: 4718 bx r3 - 71e: bf00 nop - 720: 000006f5 .word 0x000006f5 - -00000724 : - ((Sercom *)hw)->I2CM.CTRLA.reg = data; - 724: 6001 str r1, [r0, #0] - hri_sercomi2cm_wait_for_sync(hw, SERCOM_I2CM_SYNCBUSY_SWRST | SERCOM_I2CM_SYNCBUSY_ENABLE); - 726: 4b01 ldr r3, [pc, #4] ; (72c ) - 728: 2103 movs r1, #3 - 72a: 4718 bx r3 - 72c: 000006f5 .word 0x000006f5 - -00000730 <_sercom_get_hardware_index>: -{ - 730: b570 push {r4, r5, r6, lr} - Sercom *const sercom_modules[] = SERCOM_INSTS; - 732: 4d0c ldr r5, [pc, #48] ; (764 <_sercom_get_hardware_index+0x34>) -{ - 734: 4606 mov r6, r0 - Sercom *const sercom_modules[] = SERCOM_INSTS; - 736: cd0f ldmia r5!, {r0, r1, r2, r3} -{ - 738: b088 sub sp, #32 - Sercom *const sercom_modules[] = SERCOM_INSTS; - 73a: 466c mov r4, sp - 73c: c40f stmia r4!, {r0, r1, r2, r3} - 73e: e895 000f ldmia.w r5, {r0, r1, r2, r3} - 742: e884 000f stmia.w r4, {r0, r1, r2, r3} - for (uint32_t i = 0; i < SERCOM_INST_NUM; i++) { - 746: 466a mov r2, sp - 748: 2300 movs r3, #0 - if ((uint32_t)hw == (uint32_t)sercom_modules[i]) { - 74a: f852 1b04 ldr.w r1, [r2], #4 - 74e: 42b1 cmp r1, r6 - 750: d102 bne.n 758 <_sercom_get_hardware_index+0x28> - return i; - 752: b2d8 uxtb r0, r3 -} - 754: b008 add sp, #32 - 756: bd70 pop {r4, r5, r6, pc} - for (uint32_t i = 0; i < SERCOM_INST_NUM; i++) { - 758: 3301 adds r3, #1 - 75a: 2b08 cmp r3, #8 - 75c: d1f5 bne.n 74a <_sercom_get_hardware_index+0x1a> - return 0; - 75e: 2000 movs r0, #0 - 760: e7f8 b.n 754 <_sercom_get_hardware_index+0x24> - 762: bf00 nop - 764: 0001ddd4 .word 0x0001ddd4 - -00000768 <_sercom_get_irq_num>: -{ - 768: b508 push {r3, lr} - return SERCOM0_0_IRQn + (_sercom_get_hardware_index(hw) << 2); - 76a: 4b03 ldr r3, [pc, #12] ; (778 <_sercom_get_irq_num+0x10>) - 76c: 4798 blx r3 - 76e: 0080 lsls r0, r0, #2 - 770: 302e adds r0, #46 ; 0x2e -} - 772: f000 00fe and.w r0, r0, #254 ; 0xfe - 776: bd08 pop {r3, pc} - 778: 00000731 .word 0x00000731 - -0000077c <__NVIC_EnableIRQ>: - NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - 77c: 0941 lsrs r1, r0, #5 - 77e: 4a04 ldr r2, [pc, #16] ; (790 <__NVIC_EnableIRQ+0x14>) - 780: f000 001f and.w r0, r0, #31 - 784: 2301 movs r3, #1 - 786: 4083 lsls r3, r0 - 788: f842 3021 str.w r3, [r2, r1, lsl #2] -} - 78c: 4770 bx lr - 78e: bf00 nop - 790: e000e100 .word 0xe000e100 - -00000794 <__NVIC_DisableIRQ>: - NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - 794: 0943 lsrs r3, r0, #5 - 796: 4906 ldr r1, [pc, #24] ; (7b0 <__NVIC_DisableIRQ+0x1c>) - 798: f000 001f and.w r0, r0, #31 - 79c: 3320 adds r3, #32 - 79e: 2201 movs r2, #1 - 7a0: 4082 lsls r2, r0 - 7a2: f841 2023 str.w r2, [r1, r3, lsl #2] - \details Acts as a special kind of Data Memory Barrier. - It completes when all explicit memory accesses before this instruction complete. - */ -__STATIC_FORCEINLINE void __DSB(void) -{ - __ASM volatile ("dsb 0xF":::"memory"); - 7a6: f3bf 8f4f dsb sy - __ASM volatile ("isb 0xF":::"memory"); - 7aa: f3bf 8f6f isb sy -} - 7ae: 4770 bx lr - 7b0: e000e100 .word 0xe000e100 - -000007b4 <__NVIC_ClearPendingIRQ>: - */ -__STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) -{ - if ((int32_t)(IRQn) >= 0) - { - NVIC->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - 7b4: 0943 lsrs r3, r0, #5 - 7b6: 4904 ldr r1, [pc, #16] ; (7c8 <__NVIC_ClearPendingIRQ+0x14>) - 7b8: f000 001f and.w r0, r0, #31 - 7bc: 2201 movs r2, #1 - 7be: 3360 adds r3, #96 ; 0x60 - 7c0: 4082 lsls r2, r0 - 7c2: f841 2023 str.w r2, [r1, r3, lsl #2] - } -} - 7c6: 4770 bx lr - 7c8: e000e100 .word 0xe000e100 - -000007cc <_usart_init>: -{ - 7cc: b570 push {r4, r5, r6, lr} - uint8_t sercom_offset = _sercom_get_hardware_index(hw); - 7ce: 4b19 ldr r3, [pc, #100] ; (834 <_usart_init+0x68>) -{ - 7d0: 4604 mov r4, r0 - uint8_t sercom_offset = _sercom_get_hardware_index(hw); - 7d2: 4798 blx r3 - if (_usarts[i].number == sercom_offset) { - 7d4: b128 cbz r0, 7e2 <_usart_init+0x16> - ASSERT(false); - 7d6: 4918 ldr r1, [pc, #96] ; (838 <_usart_init+0x6c>) - 7d8: 4b18 ldr r3, [pc, #96] ; (83c <_usart_init+0x70>) - 7da: f240 226b movw r2, #619 ; 0x26b - 7de: 2000 movs r0, #0 - 7e0: 4798 blx r3 - return ((Sercom *)hw)->USART.SYNCBUSY.reg & reg; - 7e2: 69e3 ldr r3, [r4, #28] - 7e4: 4d16 ldr r5, [pc, #88] ; (840 <_usart_init+0x74>) - 7e6: 4e17 ldr r6, [pc, #92] ; (844 <_usart_init+0x78>) - if (!hri_sercomusart_is_syncing(hw, SERCOM_USART_SYNCBUSY_SWRST)) { - 7e8: f013 0f01 tst.w r3, #1 - 7ec: d10d bne.n 80a <_usart_init+0x3e> - hri_sercomi2cm_wait_for_sync(hw, SERCOM_I2CM_SYNCBUSY_SWRST | SERCOM_I2CM_SYNCBUSY_ENABLE); - 7ee: 4b16 ldr r3, [pc, #88] ; (848 <_usart_init+0x7c>) - 7f0: 2103 movs r1, #3 - 7f2: 4620 mov r0, r4 - 7f4: 4798 blx r3 - tmp = ((Sercom *)hw)->I2CM.CTRLA.reg; - 7f6: 6823 ldr r3, [r4, #0] - if (hri_sercomusart_get_CTRLA_reg(hw, SERCOM_USART_CTRLA_ENABLE)) { - 7f8: 079b lsls r3, r3, #30 - 7fa: d503 bpl.n 804 <_usart_init+0x38> - hri_sercomusart_clear_CTRLA_ENABLE_bit(hw); - 7fc: 4b13 ldr r3, [pc, #76] ; (84c <_usart_init+0x80>) - 7fe: 4798 blx r3 - hri_sercomusart_wait_for_sync(hw, SERCOM_USART_SYNCBUSY_ENABLE); - 800: 2102 movs r1, #2 - 802: 47a8 blx r5 - hri_sercomusart_write_CTRLA_reg(hw, SERCOM_USART_CTRLA_SWRST | mode); - 804: 2105 movs r1, #5 - 806: 4620 mov r0, r4 - 808: 47b0 blx r6 - hri_sercomusart_wait_for_sync(hw, SERCOM_USART_SYNCBUSY_SWRST); - 80a: 4620 mov r0, r4 - 80c: 2101 movs r1, #1 - 80e: 47a8 blx r5 - hri_sercomusart_write_CTRLA_reg(hw, _usarts[i].ctrl_a); - 810: 490f ldr r1, [pc, #60] ; (850 <_usart_init+0x84>) - 812: 47b0 blx r6 - ((Sercom *)hw)->USART.CTRLB.reg = data; - 814: f44f 3340 mov.w r3, #196608 ; 0x30000 - 818: 6063 str r3, [r4, #4] - hri_sercomusart_wait_for_sync(hw, SERCOM_USART_SYNCBUSY_MASK); - 81a: 211f movs r1, #31 - 81c: 47a8 blx r5 - ((Sercom *)hw)->USART.CTRLC.reg = data; - 81e: 4b0d ldr r3, [pc, #52] ; (854 <_usart_init+0x88>) - 820: 60a3 str r3, [r4, #8] -} - -static inline void hri_sercomusart_write_BAUD_reg(const void *const hw, hri_sercomusart_baud_reg_t data) -{ - SERCOM_CRITICAL_SECTION_ENTER(); - ((Sercom *)hw)->USART.BAUD.reg = data; - 822: f64f 4311 movw r3, #64529 ; 0xfc11 - 826: 81a3 strh r3, [r4, #12] -} - -static inline void hri_sercomusart_write_RXPL_reg(const void *const hw, hri_sercomusart_rxpl_reg_t data) -{ - SERCOM_CRITICAL_SECTION_ENTER(); - ((Sercom *)hw)->USART.RXPL.reg = data; - 828: 2300 movs r3, #0 - 82a: 73a3 strb r3, [r4, #14] -} - 82c: 4618 mov r0, r3 -} - -static inline void hri_sercomusart_write_DBGCTRL_reg(const void *const hw, hri_sercomusart_dbgctrl_reg_t data) -{ - SERCOM_CRITICAL_SECTION_ENTER(); - ((Sercom *)hw)->USART.DBGCTRL.reg = data; - 82e: f884 3030 strb.w r3, [r4, #48] ; 0x30 - 832: bd70 pop {r4, r5, r6, pc} - 834: 00000731 .word 0x00000731 - 838: 0001ddb6 .word 0x0001ddb6 - 83c: 000006a5 .word 0x000006a5 - 840: 000006f5 .word 0x000006f5 - 844: 00000725 .word 0x00000725 - 848: 000006f5 .word 0x000006f5 - 84c: 00000711 .word 0x00000711 - 850: 40100004 .word 0x40100004 - 854: 00700002 .word 0x00700002 - -00000858 <_usart_async_init>: -{ - 858: e92d 43f7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, lr} - ASSERT(device); - 85c: 4605 mov r5, r0 - 85e: 3800 subs r0, #0 - 860: bf18 it ne - 862: 2001 movne r0, #1 - 864: 4b14 ldr r3, [pc, #80] ; (8b8 <_usart_async_init+0x60>) -{ - 866: 460c mov r4, r1 - ASSERT(device); - 868: 22cb movs r2, #203 ; 0xcb - 86a: 4914 ldr r1, [pc, #80] ; (8bc <_usart_async_init+0x64>) - 86c: 4798 blx r3 - init_status = _usart_init(hw); - 86e: 4b14 ldr r3, [pc, #80] ; (8c0 <_usart_async_init+0x68>) - 870: 4620 mov r0, r4 - 872: 4798 blx r3 - if (init_status) { - 874: 4606 mov r6, r0 - 876: b9d8 cbnz r0, 8b0 <_usart_async_init+0x58> - if (hw == SERCOM0) { - 878: 4b12 ldr r3, [pc, #72] ; (8c4 <_usart_async_init+0x6c>) - device->hw = hw; - 87a: 61ac str r4, [r5, #24] - if (hw == SERCOM0) { - 87c: 429c cmp r4, r3 - _sercom0_dev = (struct _usart_async_device *)dev; - 87e: bf08 it eq - 880: 4b11 ldreq r3, [pc, #68] ; (8c8 <_usart_async_init+0x70>) - NVIC_DisableIRQ((IRQn_Type)irq); - 882: f8df 9050 ldr.w r9, [pc, #80] ; 8d4 <_usart_async_init+0x7c> - _sercom0_dev = (struct _usart_async_device *)dev; - 886: bf08 it eq - 888: 601d streq r5, [r3, #0] - uint8_t irq = _sercom_get_irq_num(hw); - 88a: 4620 mov r0, r4 - 88c: 4b0f ldr r3, [pc, #60] ; (8cc <_usart_async_init+0x74>) - NVIC_ClearPendingIRQ((IRQn_Type)irq); - 88e: f8df 8048 ldr.w r8, [pc, #72] ; 8d8 <_usart_async_init+0x80> - NVIC_EnableIRQ((IRQn_Type)irq); - 892: 4f0f ldr r7, [pc, #60] ; (8d0 <_usart_async_init+0x78>) - uint8_t irq = _sercom_get_irq_num(hw); - 894: 4798 blx r3 - for (uint32_t i = 0; i < 4; i++) { - 896: 2400 movs r4, #0 - uint8_t irq = _sercom_get_irq_num(hw); - 898: 4605 mov r5, r0 - NVIC_DisableIRQ((IRQn_Type)irq); - 89a: 192b adds r3, r5, r4 - 89c: b2d8 uxtb r0, r3 - 89e: 9001 str r0, [sp, #4] - 8a0: 47c8 blx r9 - NVIC_ClearPendingIRQ((IRQn_Type)irq); - 8a2: 9801 ldr r0, [sp, #4] - 8a4: 47c0 blx r8 - for (uint32_t i = 0; i < 4; i++) { - 8a6: 3401 adds r4, #1 - NVIC_EnableIRQ((IRQn_Type)irq); - 8a8: 9801 ldr r0, [sp, #4] - 8aa: 47b8 blx r7 - for (uint32_t i = 0; i < 4; i++) { - 8ac: 2c04 cmp r4, #4 - 8ae: d1f4 bne.n 89a <_usart_async_init+0x42> -} - 8b0: 4630 mov r0, r6 - 8b2: b003 add sp, #12 - 8b4: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} - 8b8: 000006a5 .word 0x000006a5 - 8bc: 0001ddb6 .word 0x0001ddb6 - 8c0: 000007cd .word 0x000007cd - 8c4: 40003000 .word 0x40003000 - 8c8: 20000a38 .word 0x20000a38 - 8cc: 00000769 .word 0x00000769 - 8d0: 0000077d .word 0x0000077d - 8d4: 00000795 .word 0x00000795 - 8d8: 000007b5 .word 0x000007b5 - -000008dc <_usart_async_enable>: - hri_sercomusart_set_CTRLA_ENABLE_bit(device->hw); - 8dc: 6980 ldr r0, [r0, #24] - 8de: 4b01 ldr r3, [pc, #4] ; (8e4 <_usart_async_enable+0x8>) - 8e0: 4718 bx r3 - 8e2: bf00 nop - 8e4: 000006fd .word 0x000006fd - -000008e8 <_usart_async_write_byte>: - hri_sercomusart_write_DATA_reg(device->hw, data); - 8e8: 6983 ldr r3, [r0, #24] - ((Sercom *)hw)->USART.DATA.reg = data; - 8ea: 6299 str r1, [r3, #40] ; 0x28 -} - 8ec: 4770 bx lr - -000008ee <_usart_async_enable_byte_sent_irq>: - hri_sercomusart_set_INTEN_DRE_bit(device->hw); - 8ee: 6983 ldr r3, [r0, #24] - ((Sercom *)hw)->USART.INTENSET.reg = SERCOM_USART_INTENSET_DRE; - 8f0: 2201 movs r2, #1 - 8f2: 759a strb r2, [r3, #22] -} - 8f4: 4770 bx lr - -000008f6 <_usart_async_enable_tx_done_irq>: - hri_sercomusart_set_INTEN_TXC_bit(device->hw); - 8f6: 6983 ldr r3, [r0, #24] - ((Sercom *)hw)->USART.INTENSET.reg = SERCOM_USART_INTENSET_TXC; - 8f8: 2202 movs r2, #2 - 8fa: 759a strb r2, [r3, #22] -} - 8fc: 4770 bx lr - ... - -00000900 <_usart_async_set_irq_state>: -{ - 900: b570 push {r4, r5, r6, lr} - ASSERT(device); - 902: 4604 mov r4, r0 - 904: 3800 subs r0, #0 -{ - 906: 460e mov r6, r1 - ASSERT(device); - 908: bf18 it ne - 90a: 2001 movne r0, #1 - 90c: 490f ldr r1, [pc, #60] ; (94c <_usart_async_set_irq_state+0x4c>) - 90e: 4b10 ldr r3, [pc, #64] ; (950 <_usart_async_set_irq_state+0x50>) -{ - 910: 4615 mov r5, r2 - ASSERT(device); - 912: f240 222b movw r2, #555 ; 0x22b - 916: 4798 blx r3 - if (USART_ASYNC_BYTE_SENT == type || USART_ASYNC_TX_DONE == type) { - 918: f016 0ffd tst.w r6, #253 ; 0xfd - 91c: d109 bne.n 932 <_usart_async_set_irq_state+0x32> - hri_sercomusart_write_INTEN_DRE_bit(device->hw, state); - 91e: 69a3 ldr r3, [r4, #24] - if (value == 0x0) { - 920: 2101 movs r1, #1 - 922: 2202 movs r2, #2 - 924: b915 cbnz r5, 92c <_usart_async_set_irq_state+0x2c> - ((Sercom *)hw)->USART.INTENCLR.reg = SERCOM_USART_INTENSET_DRE; - 926: 7519 strb r1, [r3, #20] - ((Sercom *)hw)->USART.INTENCLR.reg = SERCOM_USART_INTENSET_ERROR; - 928: 751a strb r2, [r3, #20] -} - 92a: bd70 pop {r4, r5, r6, pc} - ((Sercom *)hw)->USART.INTENSET.reg = SERCOM_USART_INTENSET_DRE; - 92c: 7599 strb r1, [r3, #22] - ((Sercom *)hw)->USART.INTENSET.reg = SERCOM_USART_INTENSET_ERROR; - 92e: 759a strb r2, [r3, #22] - 930: e7fb b.n 92a <_usart_async_set_irq_state+0x2a> - } else if (USART_ASYNC_RX_DONE == type) { - 932: 2e01 cmp r6, #1 - 934: d104 bne.n 940 <_usart_async_set_irq_state+0x40> - hri_sercomusart_write_INTEN_RXC_bit(device->hw, state); - 936: 69a3 ldr r3, [r4, #24] - if (value == 0x0) { - 938: 2204 movs r2, #4 - if (value == 0x0) { - 93a: 2d00 cmp r5, #0 - 93c: d1f7 bne.n 92e <_usart_async_set_irq_state+0x2e> - 93e: e7f3 b.n 928 <_usart_async_set_irq_state+0x28> - } else if (USART_ASYNC_ERROR == type) { - 940: 2e03 cmp r6, #3 - 942: d1f2 bne.n 92a <_usart_async_set_irq_state+0x2a> - hri_sercomusart_write_INTEN_ERROR_bit(device->hw, state); - 944: 69a3 ldr r3, [r4, #24] - 946: 2280 movs r2, #128 ; 0x80 - 948: e7f7 b.n 93a <_usart_async_set_irq_state+0x3a> - 94a: bf00 nop - 94c: 0001ddb6 .word 0x0001ddb6 - 950: 000006a5 .word 0x000006a5 - -00000954 : -/** - * \internal Sercom interrupt handler - */ -void SERCOM0_0_Handler(void) -{ - _sercom_usart_interrupt_handler(_sercom0_dev); - 954: 4b19 ldr r3, [pc, #100] ; (9bc ) - 956: 6818 ldr r0, [r3, #0] -{ - 958: b510 push {r4, lr} - void *hw = device->hw; - 95a: 6984 ldr r4, [r0, #24] - return (((Sercom *)hw)->USART.INTFLAG.reg & SERCOM_USART_INTFLAG_DRE) >> SERCOM_USART_INTFLAG_DRE_Pos; - 95c: 7e23 ldrb r3, [r4, #24] - if (hri_sercomusart_get_interrupt_DRE_bit(hw) && hri_sercomusart_get_INTEN_DRE_bit(hw)) { - 95e: 07da lsls r2, r3, #31 - 960: d508 bpl.n 974 - return (((Sercom *)hw)->USART.INTENSET.reg & SERCOM_USART_INTENSET_DRE) >> SERCOM_USART_INTENSET_DRE_Pos; - 962: 7da3 ldrb r3, [r4, #22] - 964: 07db lsls r3, r3, #31 - 966: d505 bpl.n 974 - ((Sercom *)hw)->USART.INTENCLR.reg = SERCOM_USART_INTENSET_DRE; - 968: 2301 movs r3, #1 - 96a: 7523 strb r3, [r4, #20] - device->usart_cb.tx_byte_sent(device); - 96c: 6803 ldr r3, [r0, #0] -} - 96e: e8bd 4010 ldmia.w sp!, {r4, lr} - device->usart_cb.tx_done_cb(device); - 972: 4718 bx r3 - return (((Sercom *)hw)->USART.INTFLAG.reg & SERCOM_USART_INTFLAG_TXC) >> SERCOM_USART_INTFLAG_TXC_Pos; - 974: 7e23 ldrb r3, [r4, #24] - } else if (hri_sercomusart_get_interrupt_TXC_bit(hw) && hri_sercomusart_get_INTEN_TXC_bit(hw)) { - 976: 0799 lsls r1, r3, #30 - 978: d506 bpl.n 988 - return (((Sercom *)hw)->USART.INTENSET.reg & SERCOM_USART_INTENSET_TXC) >> SERCOM_USART_INTENSET_TXC_Pos; - 97a: 7da3 ldrb r3, [r4, #22] - 97c: 079a lsls r2, r3, #30 - 97e: d503 bpl.n 988 - ((Sercom *)hw)->USART.INTENCLR.reg = SERCOM_USART_INTENSET_TXC; - 980: 2302 movs r3, #2 - 982: 7523 strb r3, [r4, #20] - device->usart_cb.tx_done_cb(device); - 984: 6883 ldr r3, [r0, #8] - 986: e7f2 b.n 96e - return (((Sercom *)hw)->USART.INTFLAG.reg & SERCOM_USART_INTFLAG_RXC) >> SERCOM_USART_INTFLAG_RXC_Pos; - 988: 7e23 ldrb r3, [r4, #24] - } else if (hri_sercomusart_get_interrupt_RXC_bit(hw)) { - 98a: 075b lsls r3, r3, #29 - 98c: d50c bpl.n 9a8 - SERCOM_CRITICAL_SECTION_LEAVE(); -} - -static inline hri_sercomusart_status_reg_t hri_sercomusart_read_STATUS_reg(const void *const hw) -{ - return ((Sercom *)hw)->USART.STATUS.reg; - 98e: 8b63 ldrh r3, [r4, #26] - if (hri_sercomusart_read_STATUS_reg(hw) - 990: f003 0337 and.w r3, r3, #55 ; 0x37 - 994: b113 cbz r3, 99c - ((Sercom *)hw)->USART.STATUS.reg = mask; - 996: 23ff movs r3, #255 ; 0xff - 998: 8363 strh r3, [r4, #26] -} - 99a: bd10 pop {r4, pc} - return ((Sercom *)hw)->USART.DATA.reg; - 99c: 6aa1 ldr r1, [r4, #40] ; 0x28 - device->usart_cb.rx_done_cb(device, hri_sercomusart_read_DATA_reg(hw)); - 99e: 6843 ldr r3, [r0, #4] -} - 9a0: e8bd 4010 ldmia.w sp!, {r4, lr} - device->usart_cb.rx_done_cb(device, hri_sercomusart_read_DATA_reg(hw)); - 9a4: b2c9 uxtb r1, r1 - 9a6: 4718 bx r3 - return (((Sercom *)hw)->USART.INTFLAG.reg & SERCOM_USART_INTFLAG_ERROR) >> SERCOM_USART_INTFLAG_ERROR_Pos; - 9a8: 7e23 ldrb r3, [r4, #24] - } else if (hri_sercomusart_get_interrupt_ERROR_bit(hw)) { - 9aa: 09db lsrs r3, r3, #7 - 9ac: d0f5 beq.n 99a - ((Sercom *)hw)->USART.INTFLAG.reg = SERCOM_USART_INTFLAG_ERROR; - 9ae: 2380 movs r3, #128 ; 0x80 - 9b0: 7623 strb r3, [r4, #24] - device->usart_cb.error_cb(device); - 9b2: 68c3 ldr r3, [r0, #12] - 9b4: 4798 blx r3 - return ((Sercom *)hw)->USART.STATUS.reg; - 9b6: 8b63 ldrh r3, [r4, #26] - 9b8: b29b uxth r3, r3 - 9ba: e7ed b.n 998 - 9bc: 20000a38 .word 0x20000a38 - -000009c0 : - 9c0: 4b00 ldr r3, [pc, #0] ; (9c4 ) - 9c2: 4718 bx r3 - 9c4: 00000955 .word 0x00000955 - -000009c8 : - 9c8: 4b00 ldr r3, [pc, #0] ; (9cc ) - 9ca: 4718 bx r3 - 9cc: 00000955 .word 0x00000955 - -000009d0 : - 9d0: 4b00 ldr r3, [pc, #0] ; (9d4 ) - 9d2: 4718 bx r3 - 9d4: 00000955 .word 0x00000955 - -000009d8 <_gclk_init_generators_by_fref>: - -void _gclk_init_generators_by_fref(uint32_t bm) -{ - -#if CONF_GCLK_GENERATOR_0_CONFIG == 1 - if (bm & (1ul << 0)) { - 9d8: 07c3 lsls r3, r0, #31 - 9da: d507 bpl.n 9ec <_gclk_init_generators_by_fref+0x14> -} - -static inline void hri_gclk_write_GENCTRL_reg(const void *const hw, uint8_t index, hri_gclk_genctrl_reg_t data) -{ - GCLK_CRITICAL_SECTION_ENTER(); - ((Gclk *)hw)->GENCTRL[index].reg = data; - 9dc: 4b04 ldr r3, [pc, #16] ; (9f0 <_gclk_init_generators_by_fref+0x18>) - 9de: 4a05 ldr r2, [pc, #20] ; (9f4 <_gclk_init_generators_by_fref+0x1c>) - 9e0: 621a str r2, [r3, #32] - while (((Gclk *)hw)->SYNCBUSY.reg & reg) { - 9e2: f643 72fd movw r2, #16381 ; 0x3ffd - 9e6: 6859 ldr r1, [r3, #4] - 9e8: 4211 tst r1, r2 - 9ea: d1fc bne.n 9e6 <_gclk_init_generators_by_fref+0xe> - | (CONF_GCLK_GEN_11_DIVSEL << GCLK_GENCTRL_DIVSEL_Pos) | (CONF_GCLK_GEN_11_OE << GCLK_GENCTRL_OE_Pos) - | (CONF_GCLK_GEN_11_OOV << GCLK_GENCTRL_OOV_Pos) | (CONF_GCLK_GEN_11_IDC << GCLK_GENCTRL_IDC_Pos) - | (CONF_GCLK_GENERATOR_11_CONFIG << GCLK_GENCTRL_GENEN_Pos) | CONF_GCLK_GEN_11_SOURCE); - } -#endif -} - 9ec: 4770 bx lr - 9ee: bf00 nop - 9f0: 40001c00 .word 0x40001c00 - 9f4: 00010107 .word 0x00010107 - -000009f8 : -/** - * \brief Default interrupt handler for unused IRQs. - */ -void Dummy_Handler(void) -{ - while (1) { - 9f8: e7fe b.n 9f8 - ... - -000009fc : - if (pSrc != pDest) { - 9fc: 4918 ldr r1, [pc, #96] ; (a60 ) - 9fe: 4819 ldr r0, [pc, #100] ; (a64 ) - a00: 4281 cmp r1, r0 -{ - a02: b510 push {r4, lr} - if (pSrc != pDest) { - a04: d00a beq.n a1c - *pDest++ = *pSrc++; - a06: 4b18 ldr r3, [pc, #96] ; (a68 ) - a08: 1cda adds r2, r3, #3 - a0a: 1a12 subs r2, r2, r0 - a0c: f022 0203 bic.w r2, r2, #3 - a10: 1ec4 subs r4, r0, #3 - a12: 42a3 cmp r3, r4 - a14: bf38 it cc - a16: 2200 movcc r2, #0 - a18: 4b14 ldr r3, [pc, #80] ; (a6c ) - a1a: 4798 blx r3 - *pDest++ = 0; - a1c: 4b14 ldr r3, [pc, #80] ; (a70 ) - a1e: 4815 ldr r0, [pc, #84] ; (a74 ) - a20: 1cda adds r2, r3, #3 - a22: 1a12 subs r2, r2, r0 - a24: 1ec1 subs r1, r0, #3 - a26: f022 0203 bic.w r2, r2, #3 - a2a: 4299 cmp r1, r3 - a2c: bf88 it hi - a2e: 2200 movhi r2, #0 - a30: 4b11 ldr r3, [pc, #68] ; (a78 ) - a32: 2100 movs r1, #0 - a34: 4798 blx r3 - SCB->VTOR = ((uint32_t)pSrc & SCB_VTOR_TBLOFF_Msk); - a36: 4a11 ldr r2, [pc, #68] ; (a7c ) - a38: 4b11 ldr r3, [pc, #68] ; (a80 ) - a3a: f022 027f bic.w r2, r2, #127 ; 0x7f - a3e: 609a str r2, [r3, #8] - SCB->CPACR |= (0xFu << 20); - a40: f8d3 2088 ldr.w r2, [r3, #136] ; 0x88 - a44: f442 0270 orr.w r2, r2, #15728640 ; 0xf00000 - a48: f8c3 2088 str.w r2, [r3, #136] ; 0x88 - __ASM volatile ("dsb 0xF":::"memory"); - a4c: f3bf 8f4f dsb sy - __ASM volatile ("isb 0xF":::"memory"); - a50: f3bf 8f6f isb sy - __libc_init_array(); - a54: 4b0b ldr r3, [pc, #44] ; (a84 ) - a56: 4798 blx r3 - main(); - a58: 4b0b ldr r3, [pc, #44] ; (a88 ) - a5a: 4798 blx r3 - while (1) - a5c: e7fe b.n a5c - a5e: bf00 nop - a60: 0002c598 .word 0x0002c598 - a64: 20000000 .word 0x20000000 - a68: 20000a04 .word 0x20000a04 - a6c: 00016d25 .word 0x00016d25 - a70: 20005808 .word 0x20005808 - a74: 20000a04 .word 0x20000a04 - a78: 00016f51 .word 0x00016f51 - a7c: 00000000 .word 0x00000000 - a80: e000ed00 .word 0xe000ed00 - a84: 00016c79 .word 0x00016c79 - a88: 00000a8d .word 0x00000a8d - -00000a8c

    : -#include "oracle.h" -#include "p_usart.h" - - -int main(void) -{ - a8c: b508 push {r3, lr} - oracle_init(); - a8e: 4b02 ldr r3, [pc, #8] ; (a98 ) - for(;;) - { - oracle_service(); - a90: 4c02 ldr r4, [pc, #8] ; (a9c ) - oracle_init(); - a92: 4798 blx r3 - oracle_service(); - a94: 47a0 blx r4 - for(;;) - a96: e7fd b.n a94 - a98: 00000aa1 .word 0x00000aa1 - a9c: 00000ad9 .word 0x00000ad9 - -00000aa0 : -#include "p_ssd1963.h" -#include "p_screen.h" - - -void oracle_init(void) -{ - aa0: b510 push {r4, lr} - * Currently the following initialization functions are supported: - * - System clock initialization - */ -static inline void init_mcu(void) -{ - _init_chip(); - aa2: 4b07 ldr r3, [pc, #28] ; (ac0 ) - aa4: 4798 blx r3 - // init mcu - init_mcu(); - // uart init - p_usart_init(); - aa6: 4b07 ldr r3, [pc, #28] ; (ac4 ) - aa8: 4798 blx r3 - // i2c init - p_i2c_init(); - aaa: 4b07 ldr r3, [pc, #28] ; (ac8 ) - aac: 4798 blx r3 - // gpio init - p_gpio_init(); - aae: 4b07 ldr r3, [pc, #28] ; (acc ) - ab0: 4798 blx r3 - // time init - p_time_init(); - ab2: 4b07 ldr r3, [pc, #28] ; (ad0 ) - ab4: 4798 blx r3 - - p_screen_init(); -} - ab6: e8bd 4010 ldmia.w sp!, {r4, lr} - p_screen_init(); - aba: 4b06 ldr r3, [pc, #24] ; (ad4 ) - abc: 4718 bx r3 - abe: bf00 nop - ac0: 000005d9 .word 0x000005d9 - ac4: 00001481 .word 0x00001481 - ac8: 00001355 .word 0x00001355 - acc: 00001281 .word 0x00001281 - ad0: 00001371 .word 0x00001371 - ad4: 00001629 .word 0x00001629 - -00000ad8 : - -void oracle_service(void) -{ - p_screen_service(); - ad8: 4b00 ldr r3, [pc, #0] ; (adc ) - ada: 4718 bx r3 - adc: 000016d5 .word 0x000016d5 - -00000ae0 <_osc32kctrl_init_sources>: -} - -static inline void hri_osc32kctrl_write_XOSC32K_reg(const void *const hw, hri_osc32kctrl_xosc32k_reg_t data) -{ - OSC32KCTRL_CRITICAL_SECTION_ENTER(); - ((Osc32kctrl *)hw)->XOSC32K.reg = data; - ae0: 4b06 ldr r3, [pc, #24] ; (afc <_osc32kctrl_init_sources+0x1c>) - ae2: f242 328e movw r2, #9102 ; 0x238e - ae6: 829a strh r2, [r3, #20] -} - -static inline void hri_osc32kctrl_write_CFDCTRL_reg(const void *const hw, hri_osc32kctrl_cfdctrl_reg_t data) -{ - OSC32KCTRL_CRITICAL_SECTION_ENTER(); - ((Osc32kctrl *)hw)->CFDCTRL.reg = data; - ae8: 2200 movs r2, #0 - aea: 759a strb r2, [r3, #22] -} - -static inline void hri_osc32kctrl_write_EVCTRL_reg(const void *const hw, hri_osc32kctrl_evctrl_reg_t data) -{ - OSC32KCTRL_CRITICAL_SECTION_ENTER(); - ((Osc32kctrl *)hw)->EVCTRL.reg = data; - aec: 75da strb r2, [r3, #23] -} - -static inline hri_osc32kctrl_osculp32k_reg_t hri_osc32kctrl_read_OSCULP32K_CALIB_bf(const void *const hw) -{ - uint32_t tmp; - tmp = ((Osc32kctrl *)hw)->OSCULP32K.reg; - aee: 69da ldr r2, [r3, #28] - calib = hri_osc32kctrl_read_OSCULP32K_CALIB_bf(hw); - hri_osc32kctrl_write_OSCULP32K_reg(hw, -#if CONF_OSCULP32K_CALIB_ENABLE == 1 - OSC32KCTRL_OSCULP32K_CALIB(CONF_OSCULP32K_CALIB) -#else - OSC32KCTRL_OSCULP32K_CALIB(calib) - af0: f402 527c and.w r2, r2, #16128 ; 0x3f00 -} - -static inline void hri_osc32kctrl_write_OSCULP32K_reg(const void *const hw, hri_osc32kctrl_osculp32k_reg_t data) -{ - OSC32KCTRL_CRITICAL_SECTION_ENTER(); - ((Osc32kctrl *)hw)->OSCULP32K.reg = data; - af4: 61da str r2, [r3, #28] - ((Osc32kctrl *)hw)->RTCCTRL.reg = data; - af6: 2201 movs r2, #1 - af8: 741a strb r2, [r3, #16] -#endif -#endif - - hri_osc32kctrl_write_RTCCTRL_reg(hw, OSC32KCTRL_RTCCTRL_RTCSEL(CONF_RTCCTRL)); - (void)calib; -} - afa: 4770 bx lr - afc: 40001400 .word 0x40001400 - -00000b00 : - */ -static void usart_transmission_complete(struct _usart_async_device *device) -{ - struct usart_async_descriptor *descr = CONTAINER_OF(device, struct usart_async_descriptor, device); - - descr->stat = 0; - b00: 2300 movs r3, #0 - b02: 6283 str r3, [r0, #40] ; 0x28 - if (descr->usart_cb.tx_done) { - b04: 69c3 ldr r3, [r0, #28] - b06: b10b cbz r3, b0c - descr->usart_cb.tx_done(descr); - b08: 3808 subs r0, #8 - b0a: 4718 bx r3 - } -} - b0c: 4770 bx lr - -00000b0e : - */ -static void usart_error(struct _usart_async_device *device) -{ - struct usart_async_descriptor *descr = CONTAINER_OF(device, struct usart_async_descriptor, device); - - descr->stat = 0; - b0e: 2300 movs r3, #0 - b10: 6283 str r3, [r0, #40] ; 0x28 - if (descr->usart_cb.error) { - b12: 6a43 ldr r3, [r0, #36] ; 0x24 - b14: b10b cbz r3, b1a - descr->usart_cb.error(descr); - b16: 3808 subs r0, #8 - b18: 4718 bx r3 - } -} - b1a: 4770 bx lr - -00000b1c : -{ - b1c: b570 push {r4, r5, r6, lr} - b1e: 4604 mov r4, r0 - ringbuffer_put(&descr->rx, data); - b20: 4b05 ldr r3, [pc, #20] ; (b38 ) - b22: f1a0 0508 sub.w r5, r0, #8 - b26: 302c adds r0, #44 ; 0x2c - b28: 4798 blx r3 - if (descr->usart_cb.rx_done) { - b2a: 6a23 ldr r3, [r4, #32] - b2c: b11b cbz r3, b36 - descr->usart_cb.rx_done(descr); - b2e: 4628 mov r0, r5 -} - b30: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr} - descr->usart_cb.rx_done(descr); - b34: 4718 bx r3 -} - b36: bd70 pop {r4, r5, r6, pc} - b38: 00000dcd .word 0x00000dcd - -00000b3c : -{ - b3c: b570 push {r4, r5, r6, lr} - b3e: 460e mov r6, r1 - b40: 4615 mov r5, r2 - ASSERT(descr && buf && length); - b42: 4604 mov r4, r0 - b44: b118 cbz r0, b4e - b46: b1d9 cbz r1, b80 - b48: 1e10 subs r0, r2, #0 - b4a: bf18 it ne - b4c: 2001 movne r0, #1 - b4e: 4b0f ldr r3, [pc, #60] ; (b8c ) - b50: 490f ldr r1, [pc, #60] ; (b90 ) - b52: f240 123b movw r2, #315 ; 0x13b - b56: 4798 blx r3 - if (descr->tx_por != descr->tx_buffer_length) { - b58: f8b4 2044 ldrh.w r2, [r4, #68] ; 0x44 - b5c: f8b4 304c ldrh.w r3, [r4, #76] ; 0x4c - b60: 429a cmp r2, r3 - b62: d10f bne.n b84 - descr->tx_por = 0; - b64: 2300 movs r3, #0 - b66: f8a4 3044 strh.w r3, [r4, #68] ; 0x44 - descr->stat = USART_ASYNC_STATUS_BUSY; - b6a: 2301 movs r3, #1 - b6c: 6323 str r3, [r4, #48] ; 0x30 - _usart_async_enable_byte_sent_irq(&descr->device); - b6e: f104 0008 add.w r0, r4, #8 - b72: 4b08 ldr r3, [pc, #32] ; (b94 ) - descr->tx_buffer = (uint8_t *)buf; - b74: 64a6 str r6, [r4, #72] ; 0x48 - descr->tx_buffer_length = length; - b76: f8a4 504c strh.w r5, [r4, #76] ; 0x4c - _usart_async_enable_byte_sent_irq(&descr->device); - b7a: 4798 blx r3 - return (int32_t)length; - b7c: 4628 mov r0, r5 -} - b7e: bd70 pop {r4, r5, r6, pc} - ASSERT(descr && buf && length); - b80: 4608 mov r0, r1 - b82: e7e4 b.n b4e - return ERR_NO_RESOURCE; - b84: f06f 001b mvn.w r0, #27 - b88: e7f9 b.n b7e - b8a: bf00 nop - b8c: 000006a5 .word 0x000006a5 - b90: 0001de1d .word 0x0001de1d - b94: 000008ef .word 0x000008ef - -00000b98 : - if (descr->tx_por != descr->tx_buffer_length) { - b98: 8f83 ldrh r3, [r0, #60] ; 0x3c - b9a: f8b0 2044 ldrh.w r2, [r0, #68] ; 0x44 - b9e: 429a cmp r2, r3 -{ - ba0: b510 push {r4, lr} - ba2: 4604 mov r4, r0 - if (descr->tx_por != descr->tx_buffer_length) { - ba4: d00a beq.n bbc - _usart_async_write_byte(&descr->device, descr->tx_buffer[descr->tx_por++]); - ba6: 6c02 ldr r2, [r0, #64] ; 0x40 - ba8: 1c59 adds r1, r3, #1 - baa: 8781 strh r1, [r0, #60] ; 0x3c - bac: 5cd1 ldrb r1, [r2, r3] - bae: 4b04 ldr r3, [pc, #16] ; (bc0 ) - bb0: 4798 blx r3 - _usart_async_enable_byte_sent_irq(&descr->device); - bb2: 4b04 ldr r3, [pc, #16] ; (bc4 ) - bb4: 4620 mov r0, r4 -} - bb6: e8bd 4010 ldmia.w sp!, {r4, lr} - _usart_async_enable_tx_done_irq(&descr->device); - bba: 4718 bx r3 - bbc: 4b02 ldr r3, [pc, #8] ; (bc8 ) - bbe: e7fa b.n bb6 - bc0: 000008e9 .word 0x000008e9 - bc4: 000008ef .word 0x000008ef - bc8: 000008f7 .word 0x000008f7 - -00000bcc : -{ - bcc: e92d 43f7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, lr} - bd0: 460e mov r6, r1 - bd2: 4617 mov r7, r2 - ASSERT(descr && buf && length); - bd4: 4604 mov r4, r0 - bd6: b118 cbz r0, be0 - bd8: b1e9 cbz r1, c16 - bda: 1e10 subs r0, r2, #0 - bdc: bf18 it ne - bde: 2001 movne r0, #1 - be0: 4910 ldr r1, [pc, #64] ; (c24 ) - be2: 4b11 ldr r3, [pc, #68] ; (c28 ) - ringbuffer_get(&descr->rx, &buf[was_read++]); - be4: f8df 9050 ldr.w r9, [pc, #80] ; c38 - ASSERT(descr && buf && length); - be8: f44f 72ac mov.w r2, #344 ; 0x158 - bec: 4798 blx r3 - num = ringbuffer_num(&descr->rx); - bee: 3434 adds r4, #52 ; 0x34 - CRITICAL_SECTION_ENTER() - bf0: 4b0e ldr r3, [pc, #56] ; (c2c ) - bf2: a801 add r0, sp, #4 - bf4: 4798 blx r3 - num = ringbuffer_num(&descr->rx); - bf6: 4b0e ldr r3, [pc, #56] ; (c30 ) - bf8: 4620 mov r0, r4 - bfa: 4798 blx r3 - CRITICAL_SECTION_LEAVE() - bfc: 4b0d ldr r3, [pc, #52] ; (c34 ) - num = ringbuffer_num(&descr->rx); - bfe: 4680 mov r8, r0 - CRITICAL_SECTION_LEAVE() - c00: a801 add r0, sp, #4 - c02: 4798 blx r3 - while ((was_read < num) && (was_read < length)) { - c04: 2500 movs r5, #0 - c06: 45a8 cmp r8, r5 - c08: d001 beq.n c0e - c0a: 42bd cmp r5, r7 - c0c: d105 bne.n c1a -} - c0e: 4628 mov r0, r5 - c10: b003 add sp, #12 - c12: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} - ASSERT(descr && buf && length); - c16: 4608 mov r0, r1 - c18: e7e2 b.n be0 - ringbuffer_get(&descr->rx, &buf[was_read++]); - c1a: 1971 adds r1, r6, r5 - c1c: 4620 mov r0, r4 - c1e: 47c8 blx r9 - c20: 3501 adds r5, #1 - c22: e7f0 b.n c06 - c24: 0001de1d .word 0x0001de1d - c28: 000006a5 .word 0x000006a5 - c2c: 0000104d .word 0x0000104d - c30: 00000e0d .word 0x00000e0d - c34: 0000105b .word 0x0000105b - c38: 00000d8d .word 0x00000d8d - -00000c3c : -{ - c3c: b5f8 push {r3, r4, r5, r6, r7, lr} - c3e: 460d mov r5, r1 - c40: 4616 mov r6, r2 - c42: 461f mov r7, r3 - ASSERT(descr && hw && rx_buffer && rx_buffer_length); - c44: 4604 mov r4, r0 - c46: b120 cbz r0, c52 - c48: b309 cbz r1, c8e - c4a: b312 cbz r2, c92 - c4c: 1e18 subs r0, r3, #0 - c4e: bf18 it ne - c50: 2001 movne r0, #1 - c52: 4912 ldr r1, [pc, #72] ; (c9c ) - c54: 4b12 ldr r3, [pc, #72] ; (ca0 ) - c56: 223a movs r2, #58 ; 0x3a - c58: 4798 blx r3 - if (ERR_NONE != ringbuffer_init(&descr->rx, rx_buffer, rx_buffer_length)) { - c5a: 4b12 ldr r3, [pc, #72] ; (ca4 ) - c5c: 463a mov r2, r7 - c5e: 4631 mov r1, r6 - c60: f104 0034 add.w r0, r4, #52 ; 0x34 - c64: 4798 blx r3 - c66: b9b0 cbnz r0, c96 - init_status = _usart_async_init(&descr->device, hw); - c68: 4b0f ldr r3, [pc, #60] ; (ca8 ) - c6a: 4629 mov r1, r5 - c6c: f104 0008 add.w r0, r4, #8 - c70: 4798 blx r3 - if (init_status) { - c72: b958 cbnz r0, c8c - descr->io.read = usart_async_read; - c74: 4b0d ldr r3, [pc, #52] ; (cac ) - c76: 6063 str r3, [r4, #4] - descr->io.write = usart_async_write; - c78: 4b0d ldr r3, [pc, #52] ; (cb0 ) - c7a: 6023 str r3, [r4, #0] - descr->device.usart_cb.tx_byte_sent = usart_process_byte_sent; - c7c: 4b0d ldr r3, [pc, #52] ; (cb4 ) - c7e: 60a3 str r3, [r4, #8] - descr->device.usart_cb.rx_done_cb = usart_fill_rx_buffer; - c80: 4b0d ldr r3, [pc, #52] ; (cb8 ) - c82: 60e3 str r3, [r4, #12] - descr->device.usart_cb.tx_done_cb = usart_transmission_complete; - c84: 4b0d ldr r3, [pc, #52] ; (cbc ) - c86: 6123 str r3, [r4, #16] - descr->device.usart_cb.error_cb = usart_error; - c88: 4b0d ldr r3, [pc, #52] ; (cc0 ) - c8a: 6163 str r3, [r4, #20] -} - c8c: bdf8 pop {r3, r4, r5, r6, r7, pc} - ASSERT(descr && hw && rx_buffer && rx_buffer_length); - c8e: 4608 mov r0, r1 - c90: e7df b.n c52 - c92: 4610 mov r0, r2 - c94: e7dd b.n c52 - return ERR_INVALID_ARG; - c96: f06f 000c mvn.w r0, #12 - c9a: e7f7 b.n c8c - c9c: 0001de1d .word 0x0001de1d - ca0: 000006a5 .word 0x000006a5 - ca4: 00000d51 .word 0x00000d51 - ca8: 00000859 .word 0x00000859 - cac: 00000bcd .word 0x00000bcd - cb0: 00000b3d .word 0x00000b3d - cb4: 00000b99 .word 0x00000b99 - cb8: 00000b1d .word 0x00000b1d - cbc: 00000b01 .word 0x00000b01 - cc0: 00000b0f .word 0x00000b0f - -00000cc4 : -{ - cc4: b510 push {r4, lr} - ASSERT(descr); - cc6: 4604 mov r4, r0 - cc8: 3800 subs r0, #0 - cca: bf18 it ne - ccc: 2001 movne r0, #1 - cce: 4905 ldr r1, [pc, #20] ; (ce4 ) - cd0: 4b05 ldr r3, [pc, #20] ; (ce8 ) - cd2: 2261 movs r2, #97 ; 0x61 - cd4: 4798 blx r3 - _usart_async_enable(&descr->device); - cd6: f104 0008 add.w r0, r4, #8 - cda: 4b04 ldr r3, [pc, #16] ; (cec ) - cdc: 4798 blx r3 -} - cde: 2000 movs r0, #0 - ce0: bd10 pop {r4, pc} - ce2: bf00 nop - ce4: 0001de1d .word 0x0001de1d - ce8: 000006a5 .word 0x000006a5 - cec: 000008dd .word 0x000008dd - -00000cf0 : -{ - cf0: b570 push {r4, r5, r6, lr} - ASSERT(descr); - cf2: 4605 mov r5, r0 - cf4: 3800 subs r0, #0 -{ - cf6: 460c mov r4, r1 - ASSERT(descr); - cf8: bf18 it ne - cfa: 2001 movne r0, #1 - cfc: 4911 ldr r1, [pc, #68] ; (d44 ) - cfe: 4b12 ldr r3, [pc, #72] ; (d48 ) -{ - d00: 4616 mov r6, r2 - ASSERT(descr); - d02: 2283 movs r2, #131 ; 0x83 - d04: 4798 blx r3 - switch (type) { - d06: 2c01 cmp r4, #1 - d08: d00d beq.n d26 - d0a: 2c02 cmp r4, #2 - d0c: d011 beq.n d32 - d0e: b9b4 cbnz r4, d3e - _usart_async_set_irq_state(&descr->device, USART_ASYNC_RX_DONE, NULL != cb); - d10: 1e32 subs r2, r6, #0 - descr->usart_cb.rx_done = cb; - d12: 62ae str r6, [r5, #40] ; 0x28 - _usart_async_set_irq_state(&descr->device, USART_ASYNC_RX_DONE, NULL != cb); - d14: bf18 it ne - d16: 2201 movne r2, #1 - d18: 2101 movs r1, #1 - _usart_async_set_irq_state(&descr->device, USART_ASYNC_ERROR, NULL != cb); - d1a: f105 0008 add.w r0, r5, #8 - d1e: 4b0b ldr r3, [pc, #44] ; (d4c ) - d20: 4798 blx r3 - return ERR_NONE; - d22: 2000 movs r0, #0 -} - d24: bd70 pop {r4, r5, r6, pc} - _usart_async_set_irq_state(&descr->device, USART_ASYNC_TX_DONE, NULL != cb); - d26: 1e32 subs r2, r6, #0 - descr->usart_cb.tx_done = cb; - d28: 626e str r6, [r5, #36] ; 0x24 - _usart_async_set_irq_state(&descr->device, USART_ASYNC_TX_DONE, NULL != cb); - d2a: bf18 it ne - d2c: 2201 movne r2, #1 - d2e: 2102 movs r1, #2 - d30: e7f3 b.n d1a - _usart_async_set_irq_state(&descr->device, USART_ASYNC_ERROR, NULL != cb); - d32: 1e32 subs r2, r6, #0 - descr->usart_cb.error = cb; - d34: 62ee str r6, [r5, #44] ; 0x2c - _usart_async_set_irq_state(&descr->device, USART_ASYNC_ERROR, NULL != cb); - d36: bf18 it ne - d38: 2201 movne r2, #1 - d3a: 2103 movs r1, #3 - d3c: e7ed b.n d1a - switch (type) { - d3e: f06f 000c mvn.w r0, #12 - d42: e7ef b.n d24 - d44: 0001de1d .word 0x0001de1d - d48: 000006a5 .word 0x000006a5 - d4c: 00000901 .word 0x00000901 - -00000d50 : - -/** - * \brief Ringbuffer init - */ -int32_t ringbuffer_init(struct ringbuffer *const rb, void *buf, uint32_t size) -{ - d50: b570 push {r4, r5, r6, lr} - d52: 460e mov r6, r1 - d54: 4614 mov r4, r2 - ASSERT(rb && buf && size); - d56: 4605 mov r5, r0 - d58: b118 cbz r0, d62 - d5a: b189 cbz r1, d80 - d5c: 1e10 subs r0, r2, #0 - d5e: bf18 it ne - d60: 2001 movne r0, #1 - d62: 4908 ldr r1, [pc, #32] ; (d84 ) - d64: 4b08 ldr r3, [pc, #32] ; (d88 ) - d66: 2228 movs r2, #40 ; 0x28 - d68: 4798 blx r3 - - /* - * buf size must be aligned to power of 2 - */ - if ((size & (size - 1)) != 0) { - d6a: 1e63 subs r3, r4, #1 - d6c: ea13 0004 ands.w r0, r3, r4 - return ERR_INVALID_ARG; - } - - /* size - 1 is faster in calculation */ - rb->size = size - 1; - rb->read_index = 0; - d70: bf03 ittte eq - d72: e9c5 3001 strdeq r3, r0, [r5, #4] - rb->write_index = rb->read_index; - d76: 60e8 streq r0, [r5, #12] - rb->buf = (uint8_t *)buf; - d78: 602e streq r6, [r5, #0] - return ERR_INVALID_ARG; - d7a: f06f 000c mvnne.w r0, #12 - - return ERR_NONE; -} - d7e: bd70 pop {r4, r5, r6, pc} - ASSERT(rb && buf && size); - d80: 4608 mov r0, r1 - d82: e7ee b.n d62 - d84: 0001de3a .word 0x0001de3a - d88: 000006a5 .word 0x000006a5 - -00000d8c : -/** - * \brief Get one byte from ringbuffer - * - */ -int32_t ringbuffer_get(struct ringbuffer *const rb, uint8_t *data) -{ - d8c: b538 push {r3, r4, r5, lr} - d8e: 460d mov r5, r1 - ASSERT(rb && data); - d90: 4604 mov r4, r0 - d92: b110 cbz r0, d9a - d94: 1e08 subs r0, r1, #0 - d96: bf18 it ne - d98: 2001 movne r0, #1 - d9a: 4b0a ldr r3, [pc, #40] ; (dc4 ) - d9c: 490a ldr r1, [pc, #40] ; (dc8 ) - d9e: 2240 movs r2, #64 ; 0x40 - da0: 4798 blx r3 - - if (rb->write_index != rb->read_index) { - da2: e9d4 3202 ldrd r3, r2, [r4, #8] - da6: 429a cmp r2, r3 - da8: d009 beq.n dbe - *data = rb->buf[rb->read_index & rb->size]; - daa: 6862 ldr r2, [r4, #4] - dac: 4013 ands r3, r2 - dae: 6822 ldr r2, [r4, #0] - db0: 5cd3 ldrb r3, [r2, r3] - db2: 702b strb r3, [r5, #0] - rb->read_index++; - db4: 68a3 ldr r3, [r4, #8] - db6: 3301 adds r3, #1 - db8: 60a3 str r3, [r4, #8] - return ERR_NONE; - dba: 2000 movs r0, #0 - } - - return ERR_NOT_FOUND; -} - dbc: bd38 pop {r3, r4, r5, pc} - return ERR_NOT_FOUND; - dbe: f06f 0009 mvn.w r0, #9 - dc2: e7fb b.n dbc - dc4: 000006a5 .word 0x000006a5 - dc8: 0001de3a .word 0x0001de3a - -00000dcc : -/** - * \brief Put one byte to ringbuffer - * - */ -int32_t ringbuffer_put(struct ringbuffer *const rb, uint8_t data) -{ - dcc: b538 push {r3, r4, r5, lr} - dce: 4604 mov r4, r0 - dd0: 460d mov r5, r1 - ASSERT(rb); - dd2: 4b0c ldr r3, [pc, #48] ; (e04 ) - dd4: 490c ldr r1, [pc, #48] ; (e08 ) - dd6: 2251 movs r2, #81 ; 0x51 - dd8: 2001 movs r0, #1 - dda: 4798 blx r3 - - rb->buf[rb->write_index & rb->size] = data; - ddc: 68e3 ldr r3, [r4, #12] - dde: 6862 ldr r2, [r4, #4] - de0: 4013 ands r3, r2 - de2: 6822 ldr r2, [r4, #0] - de4: 54d5 strb r5, [r2, r3] - - /* - * buffer full strategy: new data will overwrite the oldest data in - * the buffer - */ - if ((rb->write_index - rb->read_index) > rb->size) { - de6: e9d4 2101 ldrd r2, r1, [r4, #4] - dea: 68e3 ldr r3, [r4, #12] - dec: 1a59 subs r1, r3, r1 - dee: 4291 cmp r1, r2 - rb->read_index = rb->write_index - rb->size; - df0: bf88 it hi - df2: 1a9a subhi r2, r3, r2 - } - - rb->write_index++; - df4: f103 0301 add.w r3, r3, #1 - rb->read_index = rb->write_index - rb->size; - df8: bf88 it hi - dfa: 60a2 strhi r2, [r4, #8] - rb->write_index++; - dfc: 60e3 str r3, [r4, #12] - - return ERR_NONE; -} - dfe: 2000 movs r0, #0 - e00: bd38 pop {r3, r4, r5, pc} - e02: bf00 nop - e04: 000006a5 .word 0x000006a5 - e08: 0001de3a .word 0x0001de3a - -00000e0c : - -/** - * \brief Return the element number of ringbuffer - */ -uint32_t ringbuffer_num(const struct ringbuffer *const rb) -{ - e0c: b510 push {r4, lr} - ASSERT(rb); - e0e: 4905 ldr r1, [pc, #20] ; (e24 ) - e10: 4b05 ldr r3, [pc, #20] ; (e28 ) -{ - e12: 4604 mov r4, r0 - ASSERT(rb); - e14: 2267 movs r2, #103 ; 0x67 - e16: 2001 movs r0, #1 - e18: 4798 blx r3 - - return rb->write_index - rb->read_index; - e1a: e9d4 3002 ldrd r3, r0, [r4, #8] -} - e1e: 1ac0 subs r0, r0, r3 - e20: bd10 pop {r4, pc} - e22: bf00 nop - e24: 0001de3a .word 0x0001de3a - e28: 000006a5 .word 0x000006a5 - -00000e2c : -typedef uint8_t hri_tccount8_per_reg_t; -typedef uint8_t hri_tccount8_perbuf_reg_t; - -static inline void hri_tc_wait_for_sync(const void *const hw, hri_tc_syncbusy_reg_t reg) -{ - while (((Tc *)hw)->COUNT8.SYNCBUSY.reg & reg) { - e2c: 6903 ldr r3, [r0, #16] - e2e: 420b tst r3, r1 - e30: d1fc bne.n e2c - }; -} - e32: 4770 bx lr - -00000e34 : - * \param[in] hw The pointer to hardware instance - * - * \return The index of TC configuration - */ -static int8_t get_tc_index(const void *const hw) -{ - e34: b570 push {r4, r5, r6, lr} - * \param[in] hw The pointer to hardware instance - */ -static inline uint8_t _get_hardware_offset(const void *const hw) -{ - /* List of available TC modules. */ - Tc *const tc_modules[TC_INST_NUM] = TC_INSTS; - e36: 4d10 ldr r5, [pc, #64] ; (e78 ) -{ - e38: 4606 mov r6, r0 - Tc *const tc_modules[TC_INST_NUM] = TC_INSTS; - e3a: cd0f ldmia r5!, {r0, r1, r2, r3} -{ - e3c: b088 sub sp, #32 - Tc *const tc_modules[TC_INST_NUM] = TC_INSTS; - e3e: 466c mov r4, sp - e40: c40f stmia r4!, {r0, r1, r2, r3} - e42: e895 000f ldmia.w r5, {r0, r1, r2, r3} - e46: e884 000f stmia.w r4, {r0, r1, r2, r3} - - /* Find index for TC instance. */ - for (uint32_t i = 0; i < TC_INST_NUM; i++) { - e4a: 466a mov r2, sp - e4c: 2000 movs r0, #0 - if ((uint32_t)hw == (uint32_t)tc_modules[i]) { - e4e: f852 1b04 ldr.w r1, [r2], #4 - e52: 42b1 cmp r1, r6 - e54: d102 bne.n e5c - if (_tcs[i].number == index) { - e56: b930 cbnz r0, e66 -} - e58: b008 add sp, #32 - e5a: bd70 pop {r4, r5, r6, pc} - for (uint32_t i = 0; i < TC_INST_NUM; i++) { - e5c: 3001 adds r0, #1 - e5e: 2808 cmp r0, #8 - e60: d1f5 bne.n e4e - return i; - e62: 2000 movs r0, #0 - e64: e7f8 b.n e58 - ASSERT(false); - e66: 2000 movs r0, #0 - e68: 4904 ldr r1, [pc, #16] ; (e7c ) - e6a: 4b05 ldr r3, [pc, #20] ; (e80 ) - e6c: f44f 729e mov.w r2, #316 ; 0x13c - e70: 4798 blx r3 - e72: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff - e76: e7ef b.n e58 - e78: 0001de74 .word 0x0001de74 - e7c: 0001de5e .word 0x0001de5e - e80: 000006a5 .word 0x000006a5 - -00000e84 <_timer_init>: -{ - e84: e92d 43f8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, lr} - int8_t i = get_tc_index(hw); - e88: 4b45 ldr r3, [pc, #276] ; (fa0 <_timer_init+0x11c>) -{ - e8a: 4681 mov r9, r0 - int8_t i = get_tc_index(hw); - e8c: 4608 mov r0, r1 -{ - e8e: 460c mov r4, r1 - int8_t i = get_tc_index(hw); - e90: 4798 blx r3 - ASSERT(ARRAY_SIZE(_tcs)); - e92: 4b44 ldr r3, [pc, #272] ; (fa4 <_timer_init+0x120>) - e94: 4944 ldr r1, [pc, #272] ; (fa8 <_timer_init+0x124>) - device->hw = hw; - e96: f8c9 400c str.w r4, [r9, #12] - ASSERT(ARRAY_SIZE(_tcs)); - e9a: 228d movs r2, #141 ; 0x8d - int8_t i = get_tc_index(hw); - e9c: 4680 mov r8, r0 - ASSERT(ARRAY_SIZE(_tcs)); - e9e: 2001 movs r0, #1 - ea0: 4798 blx r3 - -static inline bool hri_tc_is_syncing(const void *const hw, hri_tc_syncbusy_reg_t reg) -{ - return ((Tc *)hw)->COUNT8.SYNCBUSY.reg & reg; - ea2: 6923 ldr r3, [r4, #16] - ea4: 4a41 ldr r2, [pc, #260] ; (fac <_timer_init+0x128>) - if (!hri_tc_is_syncing(hw, TC_SYNCBUSY_SWRST)) { - ea6: f013 0f01 tst.w r3, #1 - eaa: d111 bne.n ed0 <_timer_init+0x4c> -} - -static inline hri_tc_ctrla_reg_t hri_tc_get_CTRLA_reg(const void *const hw, hri_tc_ctrla_reg_t mask) -{ - uint32_t tmp; - hri_tc_wait_for_sync(hw, TC_SYNCBUSY_SWRST | TC_SYNCBUSY_ENABLE); - eac: 2103 movs r1, #3 - eae: 4620 mov r0, r4 - eb0: 4790 blx r2 - tmp = ((Tc *)hw)->COUNT16.CTRLA.reg; - eb2: 6823 ldr r3, [r4, #0] - if (hri_tc_get_CTRLA_reg(hw, TC_CTRLA_ENABLE)) { - eb4: 079b lsls r3, r3, #30 - eb6: d506 bpl.n ec6 <_timer_init+0x42> - ((Tc *)hw)->COUNT16.CTRLA.reg &= ~TC_CTRLA_ENABLE; - eb8: 6823 ldr r3, [r4, #0] - eba: f023 0302 bic.w r3, r3, #2 - ebe: 6023 str r3, [r4, #0] - hri_tc_wait_for_sync(hw, TC_SYNCBUSY_SWRST | TC_SYNCBUSY_ENABLE); - ec0: 4790 blx r2 - hri_tc_wait_for_sync(hw, TC_SYNCBUSY_ENABLE); - ec2: 2102 movs r1, #2 - ec4: 4790 blx r2 -} - -static inline void hri_tc_write_CTRLA_reg(const void *const hw, hri_tc_ctrla_reg_t data) -{ - TC_CRITICAL_SECTION_ENTER(); - ((Tc *)hw)->COUNT16.CTRLA.reg = data; - ec6: 2301 movs r3, #1 - ec8: 6023 str r3, [r4, #0] - hri_tc_wait_for_sync(hw, TC_SYNCBUSY_SWRST | TC_SYNCBUSY_ENABLE); - eca: 2103 movs r1, #3 - ecc: 4620 mov r0, r4 - ece: 4790 blx r2 - hri_tc_write_CTRLA_reg(hw, _tcs[i].ctrl_a); - ed0: 4f37 ldr r7, [pc, #220] ; (fb0 <_timer_init+0x12c>) - ed2: 2514 movs r5, #20 - ed4: fb05 7508 mla r5, r5, r8, r7 - hri_tc_wait_for_sync(hw, TC_SYNCBUSY_SWRST); - ed8: 2101 movs r1, #1 - eda: 4620 mov r0, r4 - edc: 4790 blx r2 - hri_tc_write_CTRLA_reg(hw, _tcs[i].ctrl_a); - ede: 6a6e ldr r6, [r5, #36] ; 0x24 - ((Tc *)hw)->COUNT16.CTRLA.reg = data; - ee0: 6026 str r6, [r4, #0] - hri_tc_wait_for_sync(hw, TC_SYNCBUSY_SWRST | TC_SYNCBUSY_ENABLE); - ee2: 2103 movs r1, #3 - ee4: 4790 blx r2 - hri_tc_write_DBGCTRL_reg(hw, _tcs[i].dbg_ctrl); - ee6: f895 302a ldrb.w r3, [r5, #42] ; 0x2a -} - -static inline void hri_tc_write_DBGCTRL_reg(const void *const hw, hri_tc_dbgctrl_reg_t data) -{ - TC_CRITICAL_SECTION_ENTER(); - ((Tc *)hw)->COUNT16.DBGCTRL.reg = data; - eea: 73e3 strb r3, [r4, #15] - if ((_tcs[i].ctrl_a & TC_CTRLA_MODE_Msk) == TC_CTRLA_MODE_COUNT32) { - eec: f006 060c and.w r6, r6, #12 - hri_tc_write_EVCTRL_reg(hw, _tcs[i].event_ctrl); - ef0: 8d2b ldrh r3, [r5, #40] ; 0x28 - ((Tc *)hw)->COUNT16.EVCTRL.reg = data; - ef2: 80e3 strh r3, [r4, #6] - if ((_tcs[i].ctrl_a & TC_CTRLA_MODE_Msk) == TC_CTRLA_MODE_COUNT32) { - ef4: 2e08 cmp r6, #8 - ((Tc *)hw)->COUNT16.WAVE.reg = data; - ef6: f04f 0301 mov.w r3, #1 - efa: 7323 strb r3, [r4, #12] - efc: d13a bne.n f74 <_timer_init+0xf0> - hri_tccount32_write_CC_reg(hw, 0, _tcs[i].cc0); - efe: 6aeb ldr r3, [r5, #44] ; 0x2c -} - -static inline void hri_tccount32_write_CC_reg(const void *const hw, uint8_t index, hri_tccount32_cc_reg_t data) -{ - TC_CRITICAL_SECTION_ENTER(); - ((Tc *)hw)->COUNT32.CC[index].reg = data; - f00: 61e3 str r3, [r4, #28] - hri_tc_wait_for_sync(hw, TC_SYNCBUSY_CC0 | TC_SYNCBUSY_CC1); - f02: 21c0 movs r1, #192 ; 0xc0 - f04: 4790 blx r2 - ((Tc *)hw)->COUNT32.CC[index].reg = data; - f06: 2300 movs r3, #0 - f08: 6223 str r3, [r4, #32] - hri_tc_wait_for_sync(hw, TC_SYNCBUSY_PER); - f0a: 4790 blx r2 - ((Tc *)hw)->COUNT16.INTENSET.reg = TC_INTENSET_OVF; - f0c: 2301 movs r3, #1 - f0e: 7263 strb r3, [r4, #9] - if (hw == TC0) { - f10: 4b28 ldr r3, [pc, #160] ; (fb4 <_timer_init+0x130>) - f12: 429c cmp r4, r3 - _tc0_dev = (struct _timer_device *)dev; - f14: bf04 itt eq - f16: 4b28 ldreq r3, [pc, #160] ; (fb8 <_timer_init+0x134>) - f18: f8c3 9000 streq.w r9, [r3] - NVIC_DisableIRQ(_tcs[i].irq); - f1c: 2314 movs r3, #20 - f1e: fb03 7308 mla r3, r3, r8, r7 - f22: f9b3 3022 ldrsh.w r3, [r3, #34] ; 0x22 - if ((int32_t)(IRQn) >= 0) - f26: 2b00 cmp r3, #0 - f28: db0d blt.n f46 <_timer_init+0xc2> - NVIC->ICER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - f2a: 095a lsrs r2, r3, #5 - f2c: 2101 movs r1, #1 - f2e: f003 031f and.w r3, r3, #31 - f32: 4099 lsls r1, r3 - f34: f102 0320 add.w r3, r2, #32 - f38: 4a20 ldr r2, [pc, #128] ; (fbc <_timer_init+0x138>) - f3a: f842 1023 str.w r1, [r2, r3, lsl #2] - __ASM volatile ("dsb 0xF":::"memory"); - f3e: f3bf 8f4f dsb sy - __ASM volatile ("isb 0xF":::"memory"); - f42: f3bf 8f6f isb sy - NVIC_ClearPendingIRQ(_tcs[i].irq); - f46: 2314 movs r3, #20 - f48: fb03 7008 mla r0, r3, r8, r7 - f4c: f9b0 3022 ldrsh.w r3, [r0, #34] ; 0x22 - if ((int32_t)(IRQn) >= 0) - f50: 2b00 cmp r3, #0 - f52: db0c blt.n f6e <_timer_init+0xea> - NVIC->ICPR[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - f54: f003 011f and.w r1, r3, #31 - f58: 095b lsrs r3, r3, #5 - f5a: 009b lsls r3, r3, #2 - f5c: f103 4360 add.w r3, r3, #3758096384 ; 0xe0000000 - f60: f503 4361 add.w r3, r3, #57600 ; 0xe100 - f64: 2201 movs r2, #1 - f66: 408a lsls r2, r1 - f68: f8c3 2180 str.w r2, [r3, #384] ; 0x180 - NVIC->ISER[(((uint32_t)IRQn) >> 5UL)] = (uint32_t)(1UL << (((uint32_t)IRQn) & 0x1FUL)); - f6c: 601a str r2, [r3, #0] -} - f6e: 2000 movs r0, #0 - f70: e8bd 83f8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, pc} - } else if ((_tcs[i].ctrl_a & TC_CTRLA_MODE_Msk) == TC_CTRLA_MODE_COUNT16) { - f74: b92e cbnz r6, f82 <_timer_init+0xfe> - hri_tccount16_write_CC_reg(hw, 0, (uint16_t)_tcs[i].cc0); - f76: 8dab ldrh r3, [r5, #44] ; 0x2c - ((Tc *)hw)->COUNT16.CC[index].reg = data; - f78: 83a3 strh r3, [r4, #28] - hri_tc_wait_for_sync(hw, TC_SYNCBUSY_CC0 | TC_SYNCBUSY_CC1); - f7a: 21c0 movs r1, #192 ; 0xc0 - f7c: 4790 blx r2 - ((Tc *)hw)->COUNT16.CC[index].reg = data; - f7e: 83e6 strh r6, [r4, #30] - hri_tc_wait_for_sync(hw, TC_SYNCBUSY_CC0 | TC_SYNCBUSY_CC1); - f80: e7c3 b.n f0a <_timer_init+0x86> - } else if ((_tcs[i].ctrl_a & TC_CTRLA_MODE_Msk) == TC_CTRLA_MODE_COUNT8) { - f82: 2e04 cmp r6, #4 - f84: d1c2 bne.n f0c <_timer_init+0x88> - hri_tccount8_write_CC_reg(hw, 0, (uint8_t)_tcs[i].cc0); - f86: f895 302c ldrb.w r3, [r5, #44] ; 0x2c - ((Tc *)hw)->COUNT8.CC[index].reg = data; - f8a: 7723 strb r3, [r4, #28] - hri_tc_wait_for_sync(hw, TC_SYNCBUSY_CC0 | TC_SYNCBUSY_CC1); - f8c: 21c0 movs r1, #192 ; 0xc0 - f8e: 4790 blx r2 - ((Tc *)hw)->COUNT8.CC[index].reg = data; - f90: 2300 movs r3, #0 - f92: 7763 strb r3, [r4, #29] - hri_tc_wait_for_sync(hw, TC_SYNCBUSY_CC0 | TC_SYNCBUSY_CC1); - f94: 4790 blx r2 - hri_tccount8_write_PER_reg(hw, _tcs[i].per); - f96: f895 302b ldrb.w r3, [r5, #43] ; 0x2b - ((Tc *)hw)->COUNT8.PER.reg = data; - f9a: 76e3 strb r3, [r4, #27] - hri_tc_wait_for_sync(hw, TC_SYNCBUSY_PER); - f9c: 2120 movs r1, #32 - f9e: e7b4 b.n f0a <_timer_init+0x86> - fa0: 00000e35 .word 0x00000e35 - fa4: 000006a5 .word 0x000006a5 - fa8: 0001de5e .word 0x0001de5e - fac: 00000e2d .word 0x00000e2d - fb0: 0001de74 .word 0x0001de74 - fb4: 40003800 .word 0x40003800 - fb8: 20000a3c .word 0x20000a3c - fbc: e000e100 .word 0xe000e100 - -00000fc0 <_timer_start>: - hri_tc_set_CTRLA_ENABLE_bit(device->hw); - fc0: 68c0 ldr r0, [r0, #12] - ((Tc *)hw)->COUNT16.CTRLA.reg |= TC_CTRLA_ENABLE; - fc2: 6803 ldr r3, [r0, #0] - fc4: f043 0302 orr.w r3, r3, #2 - fc8: 6003 str r3, [r0, #0] - hri_tc_wait_for_sync(hw, TC_SYNCBUSY_SWRST | TC_SYNCBUSY_ENABLE); - fca: 2103 movs r1, #3 - fcc: 4b00 ldr r3, [pc, #0] ; (fd0 <_timer_start+0x10>) - fce: 4718 bx r3 - fd0: 00000e2d .word 0x00000e2d - -00000fd4 <_timer_is_started>: -{ - fd4: b508 push {r3, lr} - return hri_tc_get_CTRLA_ENABLE_bit(device->hw); - fd6: 68c0 ldr r0, [r0, #12] - hri_tc_wait_for_sync(hw, TC_SYNCBUSY_SWRST | TC_SYNCBUSY_ENABLE); - fd8: 4b03 ldr r3, [pc, #12] ; (fe8 <_timer_is_started+0x14>) - fda: 2103 movs r1, #3 - fdc: 4798 blx r3 - tmp = ((Tc *)hw)->COUNT16.CTRLA.reg; - fde: 6800 ldr r0, [r0, #0] -} - fe0: f3c0 0040 ubfx r0, r0, #1, #1 - fe4: bd08 pop {r3, pc} - fe6: bf00 nop - fe8: 00000e2d .word 0x00000e2d - -00000fec <_tc_get_timer>: -} - fec: 2000 movs r0, #0 - fee: 4770 bx lr - -00000ff0 <_timer_set_irq>: -{ - ff0: b510 push {r4, lr} - int8_t i = get_tc_index(hw); - ff2: 4b0a ldr r3, [pc, #40] ; (101c <_timer_set_irq+0x2c>) - ff4: 68c0 ldr r0, [r0, #12] - ff6: 4798 blx r3 - ASSERT(ARRAY_SIZE(_tcs)); - ff8: 4b09 ldr r3, [pc, #36] ; (1020 <_timer_set_irq+0x30>) - ffa: 490a ldr r1, [pc, #40] ; (1024 <_timer_set_irq+0x34>) - int8_t i = get_tc_index(hw); - ffc: 4604 mov r4, r0 - ASSERT(ARRAY_SIZE(_tcs)); - ffe: f240 120f movw r2, #271 ; 0x10f - 1002: 2001 movs r0, #1 - 1004: 4798 blx r3 - _irq_set(_tcs[i].irq); - 1006: 4808 ldr r0, [pc, #32] ; (1028 <_timer_set_irq+0x38>) - 1008: 4b08 ldr r3, [pc, #32] ; (102c <_timer_set_irq+0x3c>) - 100a: 2214 movs r2, #20 - 100c: fb02 0004 mla r0, r2, r4, r0 -} - 1010: e8bd 4010 ldmia.w sp!, {r4, lr} - _irq_set(_tcs[i].irq); - 1014: f890 0022 ldrb.w r0, [r0, #34] ; 0x22 - 1018: 4718 bx r3 - 101a: bf00 nop - 101c: 00000e35 .word 0x00000e35 - 1020: 000006a5 .word 0x000006a5 - 1024: 0001de5e .word 0x0001de5e - 1028: 0001de74 .word 0x0001de74 - 102c: 0000031d .word 0x0000031d - -00001030 : - tc_interrupt_handler(_tc0_dev); - 1030: 4b05 ldr r3, [pc, #20] ; (1048 ) - 1032: 6818 ldr r0, [r3, #0] - void *const hw = device->hw; - 1034: 68c3 ldr r3, [r0, #12] - return (((Tc *)hw)->COUNT16.INTFLAG.reg & TC_INTFLAG_OVF) >> TC_INTFLAG_OVF_Pos; - 1036: 7a9a ldrb r2, [r3, #10] - if (hri_tc_get_interrupt_OVF_bit(hw)) { - 1038: 07d2 lsls r2, r2, #31 - 103a: d503 bpl.n 1044 - ((Tc *)hw)->COUNT16.INTFLAG.reg = TC_INTFLAG_OVF; - 103c: 2201 movs r2, #1 - 103e: 729a strb r2, [r3, #10] - device->timer_cb.period_expired(device); - 1040: 6803 ldr r3, [r0, #0] - 1042: 4718 bx r3 -} - 1044: 4770 bx lr - 1046: bf00 nop - 1048: 20000a3c .word 0x20000a3c - -0000104c : - __ASM volatile ("MRS %0, primask" : "=r" (result) :: "memory"); - 104c: f3ef 8310 mrs r3, PRIMASK -/** - * \brief Disable interrupts, enter critical section - */ -void atomic_enter_critical(hal_atomic_t volatile *atomic) -{ - *atomic = __get_PRIMASK(); - 1050: 6003 str r3, [r0, #0] - __ASM volatile ("cpsid i" : : : "memory"); - 1052: b672 cpsid i - \details Ensures the apparent order of the explicit memory operations before - and after the instruction, without ensuring their completion. - */ -__STATIC_FORCEINLINE void __DMB(void) -{ - __ASM volatile ("dmb 0xF":::"memory"); - 1054: f3bf 8f5f dmb sy - __disable_irq(); - __DMB(); -} - 1058: 4770 bx lr - -0000105a : - 105a: f3bf 8f5f dmb sy - * \brief Exit atomic section - */ -void atomic_leave_critical(hal_atomic_t volatile *atomic) -{ - __DMB(); - __set_PRIMASK(*atomic); - 105e: 6803 ldr r3, [r0, #0] - __ASM volatile ("MSR primask, %0" : : "r" (priMask) : "memory"); - 1060: f383 8810 msr PRIMASK, r3 -} - 1064: 4770 bx lr - ... - -00001068 : - * GPIO_DIRECTION_OFF = Disables the pin - * (low power state) - */ -static inline void gpio_set_pin_direction(const uint8_t pin, const enum gpio_direction direction) -{ - _gpio_set_direction((enum gpio_port)GPIO_PORT(pin), 1U << GPIO_PIN(pin), direction); - 1068: 0943 lsrs r3, r0, #5 - 106a: 2201 movs r2, #1 - 106c: f000 001f and.w r0, r0, #31 - * \brief Set direction on port with mask - */ -static inline void _gpio_set_direction(const enum gpio_port port, const uint32_t mask, - const enum gpio_direction direction) -{ - switch (direction) { - 1070: 2901 cmp r1, #1 - 1072: fa02 f200 lsl.w r2, r2, r0 - 1076: d010 beq.n 109a - 1078: 2902 cmp r1, #2 - 107a: d01f beq.n 10bc - 107c: bb29 cbnz r1, 10ca - ((Port *)hw)->Group[submodule_index].DIRCLR.reg = ~data; -} - -static inline void hri_port_clear_DIR_reg(const void *const hw, uint8_t submodule_index, hri_port_dir_reg_t mask) -{ - ((Port *)hw)->Group[submodule_index].DIRCLR.reg = mask; - 107e: 01db lsls r3, r3, #7 - 1080: f103 4382 add.w r3, r3, #1090519040 ; 0x41000000 - 1084: f503 4300 add.w r3, r3, #32768 ; 0x8000 - 1088: 605a str r2, [r3, #4] - | ((mask & 0xffff0000) >> 16)); - break; - - case GPIO_DIRECTION_OUT: - hri_port_set_DIR_reg(PORT, port, mask); - hri_port_write_WRCONFIG_reg(PORT, port, PORT_WRCONFIG_WRPINCFG | (mask & 0xffff)); - 108a: b291 uxth r1, r2 - 108c: f041 4180 orr.w r1, r1, #1073741824 ; 0x40000000 - hri_port_write_WRCONFIG_reg( - PORT, port, PORT_WRCONFIG_HWSEL | PORT_WRCONFIG_WRPINCFG | ((mask & 0xffff0000) >> 16)); - 1090: 0c12 lsrs r2, r2, #16 - -static inline void hri_port_write_WRCONFIG_reg(const void *const hw, uint8_t submodule_index, - hri_port_wrconfig_reg_t data) -{ - PORT_CRITICAL_SECTION_ENTER(); - ((Port *)hw)->Group[submodule_index].WRCONFIG.reg = data; - 1092: 6299 str r1, [r3, #40] ; 0x28 - hri_port_write_WRCONFIG_reg( - 1094: f042 4240 orr.w r2, r2, #3221225472 ; 0xc0000000 - 1098: e00e b.n 10b8 - ((Port *)hw)->Group[submodule_index].DIRCLR.reg = mask; - 109a: 01db lsls r3, r3, #7 - hri_port_write_WRCONFIG_reg(PORT, port, PORT_WRCONFIG_WRPINCFG | PORT_WRCONFIG_INEN | (mask & 0xffff)); - 109c: b291 uxth r1, r2 - 109e: f103 4382 add.w r3, r3, #1090519040 ; 0x41000000 - 10a2: f503 4300 add.w r3, r3, #32768 ; 0x8000 - 10a6: f041 4180 orr.w r1, r1, #1073741824 ; 0x40000000 - 10aa: f441 3100 orr.w r1, r1, #131072 ; 0x20000 - 10ae: 605a str r2, [r3, #4] - ((Port *)hw)->Group[submodule_index].WRCONFIG.reg = data; - 10b0: 6299 str r1, [r3, #40] ; 0x28 - hri_port_write_WRCONFIG_reg(PORT, - 10b2: 4908 ldr r1, [pc, #32] ; (10d4 ) - 10b4: ea41 4212 orr.w r2, r1, r2, lsr #16 - 10b8: 629a str r2, [r3, #40] ; 0x28 -} - 10ba: 4770 bx lr - ((Port *)hw)->Group[submodule_index].DIRSET.reg = mask; - 10bc: 01db lsls r3, r3, #7 - 10be: f103 4382 add.w r3, r3, #1090519040 ; 0x41000000 - 10c2: f503 4300 add.w r3, r3, #32768 ; 0x8000 - 10c6: 609a str r2, [r3, #8] - 10c8: e7df b.n 108a - break; - - default: - ASSERT(false); - 10ca: 4903 ldr r1, [pc, #12] ; (10d8 ) - 10cc: 4b03 ldr r3, [pc, #12] ; (10dc ) - 10ce: 2246 movs r2, #70 ; 0x46 - 10d0: 2000 movs r0, #0 - 10d2: 4718 bx r3 - 10d4: c0020000 .word 0xc0020000 - 10d8: 0001dea8 .word 0x0001dea8 - 10dc: 000006a5 .word 0x000006a5 - -000010e0 <_gpio_set_pin_function>: - -/** - * \brief Set gpio pin function - */ -static inline void _gpio_set_pin_function(const uint32_t gpio, const uint32_t function) -{ - 10e0: b530 push {r4, r5, lr} - uint8_t port = GPIO_PORT(gpio); - uint8_t pin = GPIO_PIN(gpio); - - if (function == GPIO_PIN_FUNCTION_OFF) { - 10e2: 1c4b adds r3, r1, #1 - uint8_t pin = GPIO_PIN(gpio); - 10e4: b2c5 uxtb r5, r0 - 10e6: 4b18 ldr r3, [pc, #96] ; (1148 <_gpio_set_pin_function+0x68>) - 10e8: f000 041f and.w r4, r0, #31 - uint8_t port = GPIO_PORT(gpio); - 10ec: ea4f 1050 mov.w r0, r0, lsr #5 - 10f0: ea4f 10c0 mov.w r0, r0, lsl #7 - tmp = ((Port *)hw)->Group[submodule_index].PINCFG[index].reg; - 10f4: 4403 add r3, r0 - if (function == GPIO_PIN_FUNCTION_OFF) { - 10f6: d107 bne.n 1108 <_gpio_set_pin_function+0x28> - 10f8: 4423 add r3, r4 - 10fa: f893 2040 ldrb.w r2, [r3, #64] ; 0x40 - tmp &= ~PORT_PINCFG_PMUXEN; - 10fe: f002 02fe and.w r2, r2, #254 ; 0xfe - ((Port *)hw)->Group[submodule_index].PINCFG[index].reg = tmp; - 1102: f883 2040 strb.w r2, [r3, #64] ; 0x40 - } else { - // Even numbered pin - hri_port_write_PMUX_PMUXE_bf(PORT, port, pin >> 1, function & 0xffff); - } - } -} - 1106: bd30 pop {r4, r5, pc} - tmp = ((Port *)hw)->Group[submodule_index].PINCFG[index].reg; - 1108: 1918 adds r0, r3, r4 - 110a: eb03 0354 add.w r3, r3, r4, lsr #1 - 110e: f890 2040 ldrb.w r2, [r0, #64] ; 0x40 - tmp &= ~PORT_PINCFG_PMUXEN; - 1112: f002 02fe and.w r2, r2, #254 ; 0xfe - tmp |= value << PORT_PINCFG_PMUXEN_Pos; - 1116: f042 0201 orr.w r2, r2, #1 - ((Port *)hw)->Group[submodule_index].PINCFG[index].reg = tmp; - 111a: f880 2040 strb.w r2, [r0, #64] ; 0x40 - tmp = ((Port *)hw)->Group[submodule_index].PMUX[index].reg; - 111e: f893 2030 ldrb.w r2, [r3, #48] ; 0x30 - if (pin & 1) { - 1122: f015 0f01 tst.w r5, #1 - hri_port_write_PMUX_PMUXO_bf(PORT, port, pin >> 1, function & 0xffff); - 1126: b2c9 uxtb r1, r1 - tmp &= ~PORT_PMUX_PMUXO_Msk; - 1128: bf19 ittee ne - 112a: f002 020f andne.w r2, r2, #15 - tmp |= PORT_PMUX_PMUXO(data); - 112e: ea42 1201 orrne.w r2, r2, r1, lsl #4 - tmp &= ~PORT_PMUX_PMUXE_Msk; - 1132: f002 02f0 andeq.w r2, r2, #240 ; 0xf0 - tmp |= PORT_PMUX_PMUXE(data); - 1136: f001 010f andeq.w r1, r1, #15 - tmp |= PORT_PMUX_PMUXO(data); - 113a: bf14 ite ne - 113c: b2d2 uxtbne r2, r2 - tmp |= PORT_PMUX_PMUXE(data); - 113e: 430a orreq r2, r1 - ((Port *)hw)->Group[submodule_index].PMUX[index].reg = tmp; - 1140: f883 2030 strb.w r2, [r3, #48] ; 0x30 -} - 1144: e7df b.n 1106 <_gpio_set_pin_function+0x26> - 1146: bf00 nop - 1148: 41008000 .word 0x41008000 - -0000114c : - switch (pull_mode) { - 114c: 2901 cmp r1, #1 - _gpio_set_pin_pull_mode((enum gpio_port)GPIO_PORT(pin), pin & 0x1F, pull_mode); - 114e: ea4f 1350 mov.w r3, r0, lsr #5 - 1152: f000 001f and.w r0, r0, #31 - 1156: d00f beq.n 1178 - 1158: 2902 cmp r1, #2 - 115a: d01d beq.n 1198 - 115c: bb69 cbnz r1, 11ba - ((Port *)hw)->Group[submodule_index].PINCFG[index].reg &= ~PORT_PINCFG_PULLEN; - 115e: eb00 10c3 add.w r0, r0, r3, lsl #7 - 1162: f100 4082 add.w r0, r0, #1090519040 ; 0x41000000 - 1166: f500 4000 add.w r0, r0, #32768 ; 0x8000 - 116a: f890 3040 ldrb.w r3, [r0, #64] ; 0x40 - 116e: f003 03fb and.w r3, r3, #251 ; 0xfb - 1172: f880 3040 strb.w r3, [r0, #64] ; 0x40 -} - 1176: 4770 bx lr - ((Port *)hw)->Group[submodule_index].DIRCLR.reg = mask; - 1178: 01db lsls r3, r3, #7 - 117a: f103 4382 add.w r3, r3, #1090519040 ; 0x41000000 - 117e: f503 4300 add.w r3, r3, #32768 ; 0x8000 - hri_port_clear_DIR_reg(PORT, port, 1U << pin); - 1182: 4081 lsls r1, r0 - ((Port *)hw)->Group[submodule_index].PINCFG[index].reg |= PORT_PINCFG_PULLEN; - 1184: 4418 add r0, r3 - ((Port *)hw)->Group[submodule_index].DIRCLR.reg = mask; - 1186: 6059 str r1, [r3, #4] - ((Port *)hw)->Group[submodule_index].PINCFG[index].reg |= PORT_PINCFG_PULLEN; - 1188: f890 2040 ldrb.w r2, [r0, #64] ; 0x40 - 118c: f042 0204 orr.w r2, r2, #4 - 1190: f880 2040 strb.w r2, [r0, #64] ; 0x40 - ((Port *)hw)->Group[submodule_index].OUTSET.reg = mask; - 1194: 6199 str r1, [r3, #24] -} - 1196: 4770 bx lr - ((Port *)hw)->Group[submodule_index].DIRCLR.reg = mask; - 1198: 01db lsls r3, r3, #7 - 119a: f103 4382 add.w r3, r3, #1090519040 ; 0x41000000 - 119e: f503 4300 add.w r3, r3, #32768 ; 0x8000 - hri_port_clear_DIR_reg(PORT, port, 1U << pin); - 11a2: 2201 movs r2, #1 - 11a4: 4082 lsls r2, r0 - ((Port *)hw)->Group[submodule_index].PINCFG[index].reg |= PORT_PINCFG_PULLEN; - 11a6: 4418 add r0, r3 - ((Port *)hw)->Group[submodule_index].DIRCLR.reg = mask; - 11a8: 605a str r2, [r3, #4] - ((Port *)hw)->Group[submodule_index].PINCFG[index].reg |= PORT_PINCFG_PULLEN; - 11aa: f890 1040 ldrb.w r1, [r0, #64] ; 0x40 - 11ae: f041 0104 orr.w r1, r1, #4 - 11b2: f880 1040 strb.w r1, [r0, #64] ; 0x40 - ((Port *)hw)->Group[submodule_index].OUTCLR.reg = mask; - 11b6: 615a str r2, [r3, #20] -} - 11b8: 4770 bx lr - ASSERT(false); - 11ba: 4902 ldr r1, [pc, #8] ; (11c4 ) - 11bc: 4b02 ldr r3, [pc, #8] ; (11c8 ) - 11be: 2289 movs r2, #137 ; 0x89 - 11c0: 2000 movs r0, #0 - 11c2: 4718 bx r3 - 11c4: 0001dea8 .word 0x0001dea8 - 11c8: 000006a5 .word 0x000006a5 - -000011cc : - - -} - -void p_gpio_parallel_write(PortGroup* group, uint32_t mask, uint16_t data) -{ - 11cc: b530 push {r4, r5, lr} - 11ce: 4b09 ldr r3, [pc, #36] ; (11f4 ) - 11d0: f44f 7480 mov.w r4, #256 ; 0x100 -} - -void p_gpio_set_port_data(PortGroup* const port, const uint32_t mask, const uint32_t data) -{ - uint32_t dword = (uint32_t)(SSD1963_TFT_DATA_FIX(data)); - port->OUTSET.reg = (mask & data); - 11d4: ea02 0501 and.w r5, r2, r1 - port->OUTCLR.reg = (mask & ~data); - 11d8: ea21 0202 bic.w r2, r1, r2 - 11dc: 615c str r4, [r3, #20] - port->OUTSET.reg = (mask & data); - 11de: 6185 str r5, [r0, #24] - port->OUTCLR.reg = (mask & ~data); - 11e0: 6142 str r2, [r0, #20] - 11e2: f04f 7280 mov.w r2, #16777216 ; 0x1000000 - 11e6: f8c3 2094 str.w r2, [r3, #148] ; 0x94 - ((Port *)hw)->Group[submodule_index].OUTSET.reg = mask; - 11ea: f8c3 2098 str.w r2, [r3, #152] ; 0x98 - 11ee: 619c str r4, [r3, #24] -} - 11f0: bd30 pop {r4, r5, pc} - 11f2: bf00 nop - 11f4: 41008000 .word 0x41008000 - -000011f8 : -{ - 11f8: b5f8 push {r3, r4, r5, r6, r7, lr} - p_gpio_parallel_write(group, mask, data[ind]); - 11fa: 4f06 ldr r7, [pc, #24] ; (1214 ) -{ - 11fc: 4616 mov r6, r2 - 11fe: 461d mov r5, r3 - for(int ind = 0; ind < len; ind++) - 1200: 2400 movs r4, #0 - 1202: 42a5 cmp r5, r4 - 1204: dc00 bgt.n 1208 -} - 1206: bdf8 pop {r3, r4, r5, r6, r7, pc} - p_gpio_parallel_write(group, mask, data[ind]); - 1208: f836 2014 ldrh.w r2, [r6, r4, lsl #1] - 120c: 47b8 blx r7 - for(int ind = 0; ind < len; ind++) - 120e: 3401 adds r4, #1 - 1210: e7f7 b.n 1202 - 1212: bf00 nop - 1214: 000011cd .word 0x000011cd - -00001218 : -} - -void p_gpio_set_port_group_config(enum gpio_port port, const uint32_t mask, p_port_config* config) -{ - 1218: e92d 4ff8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr} - for(uint8_t i = 0; i < 32; i++) - { - if(mask & (1UL << i)) - { - uint32_t _gpio_pin = GPIO(port, i); - 121c: 0147 lsls r7, r0, #5 - gpio_set_pin_direction(_gpio_pin, config->direction); - 121e: 4b15 ldr r3, [pc, #84] ; (1274 ) - _gpio_set_pin_function(pin, function); - 1220: f8df a058 ldr.w sl, [pc, #88] ; 127c -{ - 1224: 4688 mov r8, r1 - 1226: 4616 mov r6, r2 - uint32_t _gpio_pin = GPIO(port, i); - 1228: fa5f fb87 uxtb.w fp, r7 - 122c: 2500 movs r5, #0 - if(mask & (1UL << i)) - 122e: fa28 f205 lsr.w r2, r8, r5 - 1232: 07d2 lsls r2, r2, #31 - 1234: d519 bpl.n 126a - uint32_t _gpio_pin = GPIO(port, i); - 1236: 19ec adds r4, r5, r7 - 1238: b2e4 uxtb r4, r4 - gpio_set_pin_direction(_gpio_pin, config->direction); - 123a: 4620 mov r0, r4 - 123c: 7871 ldrb r1, [r6, #1] - 123e: 4798 blx r3 - 1240: eb0b 0905 add.w r9, fp, r5 - gpio_set_pin_pull_mode(_gpio_pin, config->pull_mode); - 1244: 4b0c ldr r3, [pc, #48] ; (1278 ) - 1246: 7831 ldrb r1, [r6, #0] - 1248: 4620 mov r0, r4 - 124a: 4798 blx r3 - 124c: 6871 ldr r1, [r6, #4] - 124e: 4648 mov r0, r9 - 1250: 47d0 blx sl - * \param[in] level true = Pin level set to "high" state - * false = Pin level set to "low" state - */ -static inline void gpio_set_pin_level(const uint8_t pin, const bool level) -{ - _gpio_set_level((enum gpio_port)GPIO_PORT(pin), 1U << GPIO_PIN(pin), level); - 1252: f004 011f and.w r1, r4, #31 - ((Port *)hw)->Group[submodule_index].OUTCLR.reg = mask; - 1256: 0964 lsrs r4, r4, #5 - 1258: 01e4 lsls r4, r4, #7 - 125a: f104 4482 add.w r4, r4, #1090519040 ; 0x41000000 - 125e: 2201 movs r2, #1 - 1260: f504 4400 add.w r4, r4, #32768 ; 0x8000 - 1264: 408a lsls r2, r1 - 1266: 4b03 ldr r3, [pc, #12] ; (1274 ) - 1268: 6162 str r2, [r4, #20] - for(uint8_t i = 0; i < 32; i++) - 126a: 3501 adds r5, #1 - 126c: 2d20 cmp r5, #32 - 126e: d1de bne.n 122e - gpio_set_pin_function(_gpio_pin, config->function); - gpio_set_pin_level(_gpio_pin, 0); - } - - } -} - 1270: e8bd 8ff8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} - 1274: 00001069 .word 0x00001069 - 1278: 0000114d .word 0x0000114d - 127c: 000010e1 .word 0x000010e1 - -00001280 : -{ - 1280: e92d 43f7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, lr} - memset(&data_config, 0, sizeof(data_config)); - 1284: f04f 0900 mov.w r9, #0 - p_gpio_set_port_group_config(SSD1963_TFT_DATA_PORT, SSD1963_TFT_DATA_MASK, &data_config); - 1288: 466a mov r2, sp - 128a: 4b2d ldr r3, [pc, #180] ; (1340 ) - memset(&data_config, 0, sizeof(data_config)); - 128c: f8cd 9000 str.w r9, [sp] - data_config.direction = GPIO_DIRECTION_OUT; - 1290: 2502 movs r5, #2 - data_config.function = GPIO_PIN_FUNCTION_OFF; - 1292: f04f 34ff mov.w r4, #4294967295 ; 0xffffffff - p_gpio_set_port_group_config(SSD1963_TFT_DATA_PORT, SSD1963_TFT_DATA_MASK, &data_config); - 1296: f64f 71ff movw r1, #65535 ; 0xffff - 129a: 2001 movs r0, #1 - gpio_set_pin_direction(SSD1963_TFT_CS, GPIO_DIRECTION_OUT); - 129c: f8df 80b0 ldr.w r8, [pc, #176] ; 1350 - data_config.direction = GPIO_DIRECTION_OUT; - 12a0: f88d 5001 strb.w r5, [sp, #1] - data_config.function = GPIO_PIN_FUNCTION_OFF; - 12a4: 9401 str r4, [sp, #4] - p_gpio_set_port_group_config(SSD1963_TFT_DATA_PORT, SSD1963_TFT_DATA_MASK, &data_config); - 12a6: 4798 blx r3 - gpio_set_pin_direction(SSD1963_TFT_CS, GPIO_DIRECTION_OUT); - 12a8: 4629 mov r1, r5 - 12aa: 2008 movs r0, #8 - gpio_set_pin_pull_mode(SSD1963_TFT_CS, GPIO_PULL_OFF); - 12ac: 4f25 ldr r7, [pc, #148] ; (1344 ) - _gpio_set_pin_function(pin, function); - 12ae: 4e26 ldr r6, [pc, #152] ; (1348 ) - gpio_set_pin_direction(SSD1963_TFT_CS, GPIO_DIRECTION_OUT); - 12b0: 47c0 blx r8 - gpio_set_pin_pull_mode(SSD1963_TFT_CS, GPIO_PULL_OFF); - 12b2: 4649 mov r1, r9 - 12b4: 2008 movs r0, #8 - 12b6: 47b8 blx r7 - 12b8: 4621 mov r1, r4 - 12ba: 2008 movs r0, #8 - 12bc: 47b0 blx r6 - gpio_set_pin_direction(SSD1963_TFT_nRST, GPIO_DIRECTION_OUT); - 12be: 4629 mov r1, r5 - 12c0: 205c movs r0, #92 ; 0x5c - 12c2: 47c0 blx r8 - gpio_set_pin_pull_mode(SSD1963_TFT_nRST, GPIO_PULL_OFF); - 12c4: 4649 mov r1, r9 - 12c6: 205c movs r0, #92 ; 0x5c - 12c8: 47b8 blx r7 - 12ca: 4621 mov r1, r4 - 12cc: 205c movs r0, #92 ; 0x5c - 12ce: 47b0 blx r6 - gpio_set_pin_direction(SSD1963_TFT_RD, GPIO_DIRECTION_OUT); - 12d0: 4629 mov r1, r5 - 12d2: 2039 movs r0, #57 ; 0x39 - 12d4: 47c0 blx r8 - gpio_set_pin_pull_mode(SSD1963_TFT_RD, GPIO_PULL_OFF); - 12d6: 4649 mov r1, r9 - 12d8: 2039 movs r0, #57 ; 0x39 - 12da: 47b8 blx r7 - 12dc: 4621 mov r1, r4 - 12de: 2039 movs r0, #57 ; 0x39 - 12e0: 47b0 blx r6 - gpio_set_pin_direction(SSD1963_TFT_RSDC, GPIO_DIRECTION_OUT); - 12e2: 4629 mov r1, r5 - 12e4: 2009 movs r0, #9 - 12e6: 47c0 blx r8 - gpio_set_pin_pull_mode(SSD1963_TFT_RSDC, GPIO_PULL_OFF); - 12e8: 4649 mov r1, r9 - 12ea: 2009 movs r0, #9 - 12ec: 47b8 blx r7 - 12ee: 4621 mov r1, r4 - 12f0: 2009 movs r0, #9 - 12f2: 47b0 blx r6 - gpio_set_pin_direction(SSD1963_TFT_WR, GPIO_DIRECTION_OUT); - 12f4: 4629 mov r1, r5 - 12f6: 2038 movs r0, #56 ; 0x38 - 12f8: 47c0 blx r8 - gpio_set_pin_pull_mode(SSD1963_TFT_WR, GPIO_PULL_OFF); - 12fa: 4649 mov r1, r9 - 12fc: 2038 movs r0, #56 ; 0x38 - 12fe: 47b8 blx r7 - 1300: 4621 mov r1, r4 - 1302: 2038 movs r0, #56 ; 0x38 - 1304: 47b0 blx r6 - gpio_set_pin_direction(SSD1963_TFT_TE, GPIO_DIRECTION_IN); - 1306: 2101 movs r1, #1 - 1308: 2003 movs r0, #3 - 130a: 47c0 blx r8 - gpio_set_pin_pull_mode(SSD1963_TFT_TE, GPIO_PULL_DOWN); - 130c: 4629 mov r1, r5 - 130e: 2003 movs r0, #3 - 1310: 47b8 blx r7 - 1312: 4621 mov r1, r4 - 1314: 2003 movs r0, #3 - 1316: 47b0 blx r6 - ((Port *)hw)->Group[submodule_index].OUTSET.reg = mask; - 1318: 4b0c ldr r3, [pc, #48] ; (134c ) - 131a: f44f 7280 mov.w r2, #256 ; 0x100 - 131e: 619a str r2, [r3, #24] - 1320: f04f 5280 mov.w r2, #268435456 ; 0x10000000 - 1324: f8c3 2118 str.w r2, [r3, #280] ; 0x118 - 1328: f04f 7200 mov.w r2, #33554432 ; 0x2000000 - 132c: f8c3 2098 str.w r2, [r3, #152] ; 0x98 - 1330: f04f 7280 mov.w r2, #16777216 ; 0x1000000 - 1334: f8c3 2098 str.w r2, [r3, #152] ; 0x98 -} - 1338: b003 add sp, #12 - 133a: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} - 133e: bf00 nop - 1340: 00001219 .word 0x00001219 - 1344: 0000114d .word 0x0000114d - 1348: 000010e1 .word 0x000010e1 - 134c: 41008000 .word 0x41008000 - 1350: 00001069 .word 0x00001069 - -00001354 : - //// port init - //gpio_set_pin_pull_mode(I2C_MASTER_SDA, GPIO_PULL_OFF); - //gpio_set_pin_function(I2C_MASTER_SDA, I2C_MASTER_SDA_MUX); - //gpio_set_pin_pull_mode(I2C_MASTER_SCL, GPIO_PULL_OFF); - //gpio_set_pin_function(I2C_MASTER_SCL, I2C_MASTER_SCL_MUX); -} - 1354: 4770 bx lr - ... - -00001358 : -static volatile uint32_t sys_time = 0; -static char sys_time_str[64]; - -static void TIMER_0_task1_cb(const struct timer_task *const timer_task) -{ - sys_time++; - 1358: 4a03 ldr r2, [pc, #12] ; (1368 ) - 135a: 6813 ldr r3, [r2, #0] - 135c: 3301 adds r3, #1 - 135e: 6013 str r3, [r2, #0] - lv_tick_inc(1); - 1360: 2001 movs r0, #1 - 1362: 4b02 ldr r3, [pc, #8] ; (136c ) - 1364: 4718 bx r3 - 1366: bf00 nop - 1368: 20000a40 .word 0x20000a40 - 136c: 0000dcb9 .word 0x0000dcb9 - -00001370 : -} - -void p_time_init(void) -{ - 1370: b570 push {r4, r5, r6, lr} - delay_init(SysTick); - 1372: 4812 ldr r0, [pc, #72] ; (13bc ) - 1374: 4b12 ldr r3, [pc, #72] ; (13c0 ) - hri_mclk_set_APBAMASK_TC0_bit(MCLK); - hri_gclk_write_PCHCTRL_reg(GCLK, TC0_GCLK_ID, CONF_GCLK_TC0_SRC | (1 << GCLK_PCHCTRL_CHEN_Pos)); - - timer_init(&p_tcc_inst, TC0, _tc_get_timer()); - 1376: 4c13 ldr r4, [pc, #76] ; (13c4 ) - delay_init(SysTick); - 1378: 4798 blx r3 -} - -static inline void hri_mclk_set_APBAMASK_TC0_bit(const void *const hw) -{ - MCLK_CRITICAL_SECTION_ENTER(); - ((Mclk *)hw)->APBAMASK.reg |= MCLK_APBAMASK_TC0; - 137a: 4a13 ldr r2, [pc, #76] ; (13c8 ) - 137c: 6953 ldr r3, [r2, #20] - 137e: f443 4380 orr.w r3, r3, #16384 ; 0x4000 - 1382: 6153 str r3, [r2, #20] -} - -static inline void hri_gclk_write_PCHCTRL_reg(const void *const hw, uint8_t index, hri_gclk_pchctrl_reg_t data) -{ - GCLK_CRITICAL_SECTION_ENTER(); - ((Gclk *)hw)->PCHCTRL[index].reg = data; - 1384: 4b11 ldr r3, [pc, #68] ; (13cc ) - 1386: 2240 movs r2, #64 ; 0x40 - 1388: f8c3 20a4 str.w r2, [r3, #164] ; 0xa4 - timer_init(&p_tcc_inst, TC0, _tc_get_timer()); - 138c: 4b10 ldr r3, [pc, #64] ; (13d0 ) - 138e: 4798 blx r3 - 1390: 1d25 adds r5, r4, #4 - 1392: 4602 mov r2, r0 - 1394: 490f ldr r1, [pc, #60] ; (13d4 ) - 1396: 4b10 ldr r3, [pc, #64] ; (13d8 ) - 1398: 4628 mov r0, r5 - 139a: 4798 blx r3 - - TIMER_0_task1.interval = 1; - 139c: 2301 movs r3, #1 - 139e: 62a3 str r3, [r4, #40] ; 0x28 - TIMER_0_task1.cb = TIMER_0_task1_cb; - TIMER_0_task1.mode = TIMER_TASK_REPEAT; - 13a0: f884 3030 strb.w r3, [r4, #48] ; 0x30 - TIMER_0_task1.cb = TIMER_0_task1_cb; - 13a4: 4a0d ldr r2, [pc, #52] ; (13dc ) - - timer_add_task(&p_tcc_inst, &TIMER_0_task1); - 13a6: 4b0e ldr r3, [pc, #56] ; (13e0 ) - TIMER_0_task1.cb = TIMER_0_task1_cb; - 13a8: 62e2 str r2, [r4, #44] ; 0x2c - timer_add_task(&p_tcc_inst, &TIMER_0_task1); - 13aa: f104 0120 add.w r1, r4, #32 - 13ae: 4628 mov r0, r5 - 13b0: 4798 blx r3 - timer_start(&p_tcc_inst); - 13b2: 4628 mov r0, r5 - 13b4: 4b0b ldr r3, [pc, #44] ; (13e4 ) -} - 13b6: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr} - timer_start(&p_tcc_inst); - 13ba: 4718 bx r3 - 13bc: e000e010 .word 0xe000e010 - 13c0: 00000581 .word 0x00000581 - 13c4: 20000a40 .word 0x20000a40 - 13c8: 40000800 .word 0x40000800 - 13cc: 40001c00 .word 0x40001c00 - 13d0: 00000fed .word 0x00000fed - 13d4: 40003800 .word 0x40003800 - 13d8: 00000465 .word 0x00000465 - 13dc: 00001359 .word 0x00001359 - 13e0: 000004d9 .word 0x000004d9 - 13e4: 0000049d .word 0x0000049d - -000013e8 : -{ - return sys_time; -} - -const char* p_get_time_str(void) -{ - 13e8: e92d 41ff stmdb sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, lr} - uint16_t millis = sys_time % 1000; - 13ec: 4d18 ldr r5, [pc, #96] ; (1450 ) - // remove millis portion - uint32_t current_time = sys_time / 1000; - uint8_t hour = ((current_time % 86400UL) / 3600); // 86400 seconds per day - uint8_t minute = ((current_time % 3600) / 60); - uint8_t _sec = (current_time % 60); - memset(sys_time_str, '\0', P_MAX_TIME_STR); - 13ee: 4b19 ldr r3, [pc, #100] ; (1454 ) - uint16_t millis = sys_time % 1000; - 13f0: 682e ldr r6, [r5, #0] - uint32_t current_time = sys_time / 1000; - 13f2: f855 4b34 ldr.w r4, [r5], #52 - memset(sys_time_str, '\0', P_MAX_TIME_STR); - 13f6: 2740 movs r7, #64 ; 0x40 - 13f8: 463a mov r2, r7 - 13fa: 2100 movs r1, #0 - 13fc: 4628 mov r0, r5 - 13fe: 4798 blx r3 - uint32_t current_time = sys_time / 1000; - 1400: f44f 787a mov.w r8, #1000 ; 0x3e8 - uint8_t hour = ((current_time % 86400UL) / 3600); // 86400 seconds per day - 1404: 4b14 ldr r3, [pc, #80] ; (1458 ) - uint16_t millis = sys_time % 1000; - 1406: fbb6 f1f8 udiv r1, r6, r8 - 140a: fb08 6611 mls r6, r8, r1, r6 - uint8_t _sec = (current_time % 60); - 140e: 213c movs r1, #60 ; 0x3c - uint32_t current_time = sys_time / 1000; - 1410: fbb4 f4f8 udiv r4, r4, r8 - uint8_t hour = ((current_time % 86400UL) / 3600); // 86400 seconds per day - 1414: fbb4 f2f3 udiv r2, r4, r3 - uint8_t _sec = (current_time % 60); - 1418: fbb4 f0f1 udiv r0, r4, r1 - uint8_t hour = ((current_time % 86400UL) / 3600); // 86400 seconds per day - 141c: fb03 4212 mls r2, r3, r2, r4 - uint8_t _sec = (current_time % 60); - 1420: fb01 4010 mls r0, r1, r0, r4 - uint8_t hour = ((current_time % 86400UL) / 3600); // 86400 seconds per day - 1424: f44f 6361 mov.w r3, #3600 ; 0xe10 - snprintf(sys_time_str, P_MAX_TIME_STR, "%02u:%02u:%02u:%03u", hour, minute, _sec, millis); - 1428: 9001 str r0, [sp, #4] - 142a: 9602 str r6, [sp, #8] - uint8_t minute = ((current_time % 3600) / 60); - 142c: fbb4 f0f3 udiv r0, r4, r3 - 1430: fb03 4410 mls r4, r3, r0, r4 - snprintf(sys_time_str, P_MAX_TIME_STR, "%02u:%02u:%02u:%03u", hour, minute, _sec, millis); - 1434: fbb2 f3f3 udiv r3, r2, r3 - uint8_t minute = ((current_time % 3600) / 60); - 1438: fbb4 f4f1 udiv r4, r4, r1 - snprintf(sys_time_str, P_MAX_TIME_STR, "%02u:%02u:%02u:%03u", hour, minute, _sec, millis); - 143c: 4a07 ldr r2, [pc, #28] ; (145c ) - 143e: 9400 str r4, [sp, #0] - 1440: 4639 mov r1, r7 - 1442: 4c07 ldr r4, [pc, #28] ; (1460 ) - 1444: 4628 mov r0, r5 - 1446: 47a0 blx r4 - - return sys_time_str; - -} - 1448: 4628 mov r0, r5 - 144a: b004 add sp, #16 - 144c: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} - 1450: 20000a40 .word 0x20000a40 - 1454: 00016f51 .word 0x00016f51 - 1458: 00015180 .word 0x00015180 - 145c: 0001dec4 .word 0x0001dec4 - 1460: 0001701d .word 0x0001701d - -00001464 : - -// usart debug callbacks -static void debug_tx_cb(const struct usart_async_descriptor *const io_descr) -{ - /* Transfer completed */ - b_tx_complete = true; - 1464: 4b01 ldr r3, [pc, #4] ; (146c ) - 1466: 2201 movs r2, #1 - 1468: 701a strb r2, [r3, #0] -} - 146a: 4770 bx lr - 146c: 20000000 .word 0x20000000 - -00001470 : - return data_arrived; -} - -void p_set_data_arrived(bool status) -{ - data_arrived = status; - 1470: 4b01 ldr r3, [pc, #4] ; (1478 ) - 1472: 2201 movs r2, #1 - 1474: 601a str r2, [r3, #0] -} - 1476: 4770 bx lr - 1478: 20000ab4 .word 0x20000ab4 - -0000147c : -} - 147c: 4770 bx lr - ... - -00001480 : - 1480: 4b27 ldr r3, [pc, #156] ; (1520 ) - 1482: 2240 movs r2, #64 ; 0x40 -{ - 1484: b573 push {r0, r1, r4, r5, r6, lr} - 1486: f8c3 209c str.w r2, [r3, #156] ; 0x9c - 148a: 2243 movs r2, #67 ; 0x43 - 148c: f8c3 208c str.w r2, [r3, #140] ; 0x8c - ((Mclk *)hw)->APBAMASK.reg |= MCLK_APBAMASK_SERCOM0; - 1490: 4a24 ldr r2, [pc, #144] ; (1524 ) - usart_async_init(&p_usart_debug_inst, USART_DEBUG_SERCOM, debug_rx_buff, DEBUG_USART_EX_BUFF_SIZE, (void*)NULL); - 1492: 4925 ldr r1, [pc, #148] ; (1528 ) - 1494: 6953 ldr r3, [r2, #20] - 1496: 4e25 ldr r6, [pc, #148] ; (152c ) - 1498: f443 5380 orr.w r3, r3, #4096 ; 0x1000 - 149c: 6153 str r3, [r2, #20] - 149e: 4a24 ldr r2, [pc, #144] ; (1530 ) - 14a0: 2500 movs r5, #0 - 14a2: f102 0414 add.w r4, r2, #20 - 14a6: 9500 str r5, [sp, #0] - 14a8: 2310 movs r3, #16 - 14aa: 3204 adds r2, #4 - 14ac: 4620 mov r0, r4 - 14ae: 47b0 blx r6 - tmp = ((Port *)hw)->Group[submodule_index].PINCFG[index].reg; - 14b0: 4b20 ldr r3, [pc, #128] ; (1534 ) - usart_async_register_callback(&p_usart_debug_inst, USART_ASYNC_TXC_CB, debug_tx_cb); - 14b2: 4e21 ldr r6, [pc, #132] ; (1538 ) - 14b4: f893 2045 ldrb.w r2, [r3, #69] ; 0x45 - tmp &= ~PORT_PINCFG_PMUXEN; - 14b8: f002 02fe and.w r2, r2, #254 ; 0xfe - tmp |= value << PORT_PINCFG_PMUXEN_Pos; - 14bc: f042 0201 orr.w r2, r2, #1 - ((Port *)hw)->Group[submodule_index].PINCFG[index].reg = tmp; - 14c0: f883 2045 strb.w r2, [r3, #69] ; 0x45 - tmp = ((Port *)hw)->Group[submodule_index].PMUX[index].reg; - 14c4: f893 2032 ldrb.w r2, [r3, #50] ; 0x32 - tmp &= ~PORT_PMUX_PMUXO_Msk; - 14c8: f002 020f and.w r2, r2, #15 - tmp |= PORT_PMUX_PMUXO(data); - 14cc: f042 0230 orr.w r2, r2, #48 ; 0x30 - ((Port *)hw)->Group[submodule_index].PMUX[index].reg = tmp; - 14d0: f883 2032 strb.w r2, [r3, #50] ; 0x32 - tmp = ((Port *)hw)->Group[submodule_index].PINCFG[index].reg; - 14d4: f893 2044 ldrb.w r2, [r3, #68] ; 0x44 - tmp &= ~PORT_PINCFG_PMUXEN; - 14d8: f002 02fe and.w r2, r2, #254 ; 0xfe - tmp |= value << PORT_PINCFG_PMUXEN_Pos; - 14dc: f042 0201 orr.w r2, r2, #1 - ((Port *)hw)->Group[submodule_index].PINCFG[index].reg = tmp; - 14e0: f883 2044 strb.w r2, [r3, #68] ; 0x44 - tmp = ((Port *)hw)->Group[submodule_index].PMUX[index].reg; - 14e4: f893 2032 ldrb.w r2, [r3, #50] ; 0x32 - tmp &= ~PORT_PMUX_PMUXE_Msk; - 14e8: f002 02f0 and.w r2, r2, #240 ; 0xf0 - tmp |= PORT_PMUX_PMUXE(data); - 14ec: f042 0203 orr.w r2, r2, #3 - ((Port *)hw)->Group[submodule_index].PMUX[index].reg = tmp; - 14f0: f883 2032 strb.w r2, [r3, #50] ; 0x32 - 14f4: 2101 movs r1, #1 - 14f6: 4a11 ldr r2, [pc, #68] ; (153c ) - 14f8: 4620 mov r0, r4 - 14fa: 47b0 blx r6 - usart_async_register_callback(&p_usart_debug_inst, USART_ASYNC_RXC_CB, debug_rx_cb); - 14fc: 4629 mov r1, r5 - 14fe: 4a10 ldr r2, [pc, #64] ; (1540 ) - 1500: 4620 mov r0, r4 - 1502: 47b0 blx r6 - usart_async_register_callback(&p_usart_debug_inst, USART_ASYNC_ERROR_CB, debug_err_cb); - 1504: 4a0f ldr r2, [pc, #60] ; (1544 ) - 1506: 2102 movs r1, #2 - 1508: 4620 mov r0, r4 - 150a: 47b0 blx r6 - usart_async_enable(&p_usart_debug_inst); - 150c: 4b0e ldr r3, [pc, #56] ; (1548 ) - 150e: 4620 mov r0, r4 - 1510: 4798 blx r3 - lv_log_register_print_cb((lv_log_print_g_cb_t)p_lv_log_cb); - 1512: 480e ldr r0, [pc, #56] ; (154c ) - 1514: 4b0e ldr r3, [pc, #56] ; (1550 ) -} - 1516: b002 add sp, #8 - 1518: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr} - lv_log_register_print_cb((lv_log_print_g_cb_t)p_lv_log_cb); - 151c: 4718 bx r3 - 151e: bf00 nop - 1520: 40001c00 .word 0x40001c00 - 1524: 40000800 .word 0x40000800 - 1528: 40003000 .word 0x40003000 - 152c: 00000c3d .word 0x00000c3d - 1530: 20000ab4 .word 0x20000ab4 - 1534: 41008000 .word 0x41008000 - 1538: 00000cf1 .word 0x00000cf1 - 153c: 00001465 .word 0x00001465 - 1540: 00001471 .word 0x00001471 - 1544: 0000147d .word 0x0000147d - 1548: 00000cc5 .word 0x00000cc5 - 154c: 000015d9 .word 0x000015d9 - 1550: 0000eb6d .word 0x0000eb6d - -00001554 : -{ - 1554: b510 push {r4, lr} - b_tx_complete = false; - 1556: 4c04 ldr r4, [pc, #16] ; (1568 ) - 1558: 2300 movs r3, #0 - 155a: 7023 strb r3, [r4, #0] - io_write(&inst->io, data, len); - 155c: 4b03 ldr r3, [pc, #12] ; (156c ) - 155e: 4798 blx r3 - while(!b_tx_complete){} - 1560: 7823 ldrb r3, [r4, #0] - 1562: 2b00 cmp r3, #0 - 1564: d0fc beq.n 1560 -} - 1566: bd10 pop {r4, pc} - 1568: 20000000 .word 0x20000000 - 156c: 000002ed .word 0x000002ed - -00001570 : -{ - 1570: b40f push {r0, r1, r2, r3} - 1572: b530 push {r4, r5, lr} - 1574: b0c5 sub sp, #276 ; 0x114 - size_t size_str = strlen(str); - 1576: 4c13 ldr r4, [pc, #76] ; (15c4 ) -{ - 1578: 9d48 ldr r5, [sp, #288] ; 0x120 - size_t size_str = strlen(str); - 157a: 4628 mov r0, r5 - 157c: 47a0 blx r4 - if (size_str >= DEBUG_MAX_BUFFER_SIZE) - 157e: 28ff cmp r0, #255 ; 0xff - 1580: d81c bhi.n 15bc - memset(printf_buffer, '\0', DEBUG_MAX_BUFFER_SIZE); - 1582: 4b11 ldr r3, [pc, #68] ; (15c8 ) - 1584: f44f 7280 mov.w r2, #256 ; 0x100 - 1588: 2100 movs r1, #0 - 158a: a804 add r0, sp, #16 - 158c: 4798 blx r3 - va_start(args, str); - 158e: ab49 add r3, sp, #292 ; 0x124 - vsprintf((char*)printf_buffer, str, args); - 1590: f44f 7280 mov.w r2, #256 ; 0x100 - 1594: 2100 movs r1, #0 - va_start(args, str); - 1596: 9303 str r3, [sp, #12] - vsprintf((char*)printf_buffer, str, args); - 1598: 9300 str r3, [sp, #0] - 159a: a804 add r0, sp, #16 - 159c: 462b mov r3, r5 - 159e: 4d0b ldr r5, [pc, #44] ; (15cc ) - 15a0: 47a8 blx r5 - p_write(&p_usart_debug_inst, (const uint8_t*)printf_buffer, strlen((const char*)printf_buffer)); - 15a2: a804 add r0, sp, #16 - 15a4: 47a0 blx r4 - 15a6: 4b0a ldr r3, [pc, #40] ; (15d0 ) - 15a8: b282 uxth r2, r0 - 15aa: a904 add r1, sp, #16 - 15ac: 4809 ldr r0, [pc, #36] ; (15d4 ) - 15ae: 4798 blx r3 - return 0; - 15b0: 2000 movs r0, #0 -} - 15b2: b045 add sp, #276 ; 0x114 - 15b4: e8bd 4030 ldmia.w sp!, {r4, r5, lr} - 15b8: b004 add sp, #16 - 15ba: 4770 bx lr - return -1; - 15bc: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff - 15c0: e7f7 b.n 15b2 - 15c2: bf00 nop - 15c4: 00017481 .word 0x00017481 - 15c8: 00016f51 .word 0x00016f51 - 15cc: 00019d09 .word 0x00019d09 - 15d0: 00001555 .word 0x00001555 - 15d4: 20000ac8 .word 0x20000ac8 - -000015d8 : -{ - 15d8: b5f7 push {r0, r1, r2, r4, r5, r6, r7, lr} - 15da: 461f mov r7, r3 - PDEBUG("[LVGL][%s][%s][%s][%d] --\t%s\r\n", p_get_time_str(), level == LV_LOG_LEVEL_TRACE ? "TRACE" : - 15dc: 4b0c ldr r3, [pc, #48] ; (1610 ) -{ - 15de: 460d mov r5, r1 - 15e0: 4604 mov r4, r0 - 15e2: 4616 mov r6, r2 - PDEBUG("[LVGL][%s][%s][%s][%d] --\t%s\r\n", p_get_time_str(), level == LV_LOG_LEVEL_TRACE ? "TRACE" : - 15e4: 4798 blx r3 - 15e6: 4601 mov r1, r0 - 15e8: b174 cbz r4, 1608 - 15ea: 3c01 subs r4, #1 - 15ec: b2e4 uxtb r4, r4 - 15ee: 2c02 cmp r4, #2 - 15f0: d80c bhi.n 160c - 15f2: 4b08 ldr r3, [pc, #32] ; (1614 ) - 15f4: f853 2024 ldr.w r2, [r3, r4, lsl #2] - 15f8: 4c07 ldr r4, [pc, #28] ; (1618 ) - 15fa: 4808 ldr r0, [pc, #32] ; (161c ) - 15fc: e9cd 6700 strd r6, r7, [sp] - 1600: 462b mov r3, r5 - 1602: 47a0 blx r4 -} - 1604: b003 add sp, #12 - 1606: bdf0 pop {r4, r5, r6, r7, pc} - PDEBUG("[LVGL][%s][%s][%s][%d] --\t%s\r\n", p_get_time_str(), level == LV_LOG_LEVEL_TRACE ? "TRACE" : - 1608: 4a05 ldr r2, [pc, #20] ; (1620 ) - 160a: e7f5 b.n 15f8 - 160c: 4a05 ldr r2, [pc, #20] ; (1624 ) - 160e: e7f3 b.n 15f8 - 1610: 000013e9 .word 0x000013e9 - 1614: 0001df14 .word 0x0001df14 - 1618: 00001571 .word 0x00001571 - 161c: 0001dee3 .word 0x0001dee3 - 1620: 0001dedd .word 0x0001dedd - 1624: 0001ded8 .word 0x0001ded8 - -00001628 : - -static lv_disp_buf_t disp_buf; -static lv_color_t buf[LV_HOR_RES_MAX * 10]; /*Declare a buffer for 10 lines*/ - -void p_screen_init(void) -{ - 1628: b530 push {r4, r5, lr} - // devices init - lv_init(); - 162a: 4b1a ldr r3, [pc, #104] ; (1694 ) - - ssd1963_init(); - - - lv_disp_buf_init(&disp_buf, buf, NULL, LV_HOR_RES_MAX * 10); /*Initialize the display buffer*/ - 162c: 4c1a ldr r4, [pc, #104] ; (1698 ) - 162e: 4d1b ldr r5, [pc, #108] ; (169c ) -{ - 1630: b08d sub sp, #52 ; 0x34 - lv_init(); - 1632: 4798 blx r3 - ssd1963_init(); - 1634: 4b1a ldr r3, [pc, #104] ; (16a0 ) - 1636: 4798 blx r3 - lv_disp_buf_init(&disp_buf, buf, NULL, LV_HOR_RES_MAX * 10); /*Initialize the display buffer*/ - 1638: 2200 movs r2, #0 - 163a: 491a ldr r1, [pc, #104] ; (16a4 ) - 163c: 4620 mov r0, r4 - 163e: f44f 5396 mov.w r3, #4800 ; 0x12c0 - 1642: 47a8 blx r5 - lv_disp_drv_t disp_drv; /*Descriptor of a display driver*/ - lv_disp_drv_init(&disp_drv); /*Basic initialization*/ - 1644: a801 add r0, sp, #4 - 1646: 4b18 ldr r3, [pc, #96] ; (16a8 ) - 1648: 4798 blx r3 - disp_drv.flush_cb = ssd1963_flush; /*Set your driver function*/ - 164a: 4b18 ldr r3, [pc, #96] ; (16ac ) - 164c: 9304 str r3, [sp, #16] - disp_drv.buffer = &disp_buf; /*Assign the buffer to the display*/ - lv_disp_drv_register(&disp_drv); /*Finally register the driver*/ - 164e: a801 add r0, sp, #4 - 1650: 4b17 ldr r3, [pc, #92] ; (16b0 ) - disp_drv.buffer = &disp_buf; /*Assign the buffer to the display*/ - 1652: 9402 str r4, [sp, #8] - lv_disp_drv_register(&disp_drv); /*Finally register the driver*/ - 1654: 4798 blx r3 - - lv_obj_t* scr = lv_disp_get_scr_act(NULL); - 1656: 4b17 ldr r3, [pc, #92] ; (16b4 ) - 1658: 2000 movs r0, #0 - 165a: 4798 blx r3 - - lv_obj_t* hornet_image = lv_img_create(scr, NULL); - 165c: 4b16 ldr r3, [pc, #88] ; (16b8 ) - 165e: 2100 movs r1, #0 - lv_obj_t* scr = lv_disp_get_scr_act(NULL); - 1660: 4604 mov r4, r0 - lv_obj_t* hornet_image = lv_img_create(scr, NULL); - 1662: 4798 blx r3 - lv_img_set_src(hornet_image, &hornet); - 1664: 4b15 ldr r3, [pc, #84] ; (16bc ) - 1666: 4916 ldr r1, [pc, #88] ; (16c0 ) - lv_obj_t* hornet_image = lv_img_create(scr, NULL); - 1668: 4605 mov r5, r0 - lv_img_set_src(hornet_image, &hornet); - 166a: 4798 blx r3 - lv_obj_set_pos(hornet_image, 0, 0); - 166c: 2200 movs r2, #0 - 166e: 4611 mov r1, r2 - 1670: 4628 mov r0, r5 - 1672: 4d14 ldr r5, [pc, #80] ; (16c4 ) - 1674: 47a8 blx r5 - - lv_obj_t* random_text = lv_label_create(scr, NULL); - 1676: 4b14 ldr r3, [pc, #80] ; (16c8 ) - 1678: 2100 movs r1, #0 - 167a: 4620 mov r0, r4 - 167c: 4798 blx r3 - lv_obj_set_pos(random_text, 90, 35); - 167e: 2223 movs r2, #35 ; 0x23 - lv_obj_t* random_text = lv_label_create(scr, NULL); - 1680: 4604 mov r4, r0 - lv_obj_set_pos(random_text, 90, 35); - 1682: 215a movs r1, #90 ; 0x5a - 1684: 47a8 blx r5 - lv_label_set_text(random_text, "Hello World"); - 1686: 4911 ldr r1, [pc, #68] ; (16cc ) - 1688: 4b11 ldr r3, [pc, #68] ; (16d0 ) - 168a: 4620 mov r0, r4 - 168c: 4798 blx r3 -} - 168e: b00d add sp, #52 ; 0x34 - 1690: bd30 pop {r4, r5, pc} - 1692: bf00 nop - 1694: 00001fb1 .word 0x00001fb1 - 1698: 20000b18 .word 0x20000b18 - 169c: 0000da21 .word 0x0000da21 - 16a0: 0000175d .word 0x0000175d - 16a4: 20000b3c .word 0x20000b3c - 16a8: 0000d9e1 .word 0x0000d9e1 - 16ac: 00001909 .word 0x00001909 - 16b0: 0000da41 .word 0x0000da41 - 16b4: 00001af5 .word 0x00001af5 - 16b8: 000149a9 .word 0x000149a9 - 16bc: 00014755 .word 0x00014755 - 16c0: 0001df2c .word 0x0001df2c - 16c4: 00002b25 .word 0x00002b25 - 16c8: 00015bc1 .word 0x00015bc1 - 16cc: 0001df20 .word 0x0001df20 - 16d0: 000158c5 .word 0x000158c5 - -000016d4 : - -void p_screen_service(void) -{ - lv_task_handler(); - 16d4: 4b00 ldr r3, [pc, #0] ; (16d8 ) - 16d6: 4718 bx r3 - 16d8: 0000fc8d .word 0x0000fc8d - -000016dc : - ((Port *)hw)->Group[submodule_index].OUTCLR.reg = mask; - 16dc: 490b ldr r1, [pc, #44] ; (170c ) -/** - * Write command - * @param cmd the command - */ -static inline void ssd1963_cmd(uint8_t cmd) -{ - 16de: b508 push {r3, lr} - 16e0: f44f 7380 mov.w r3, #256 ; 0x100 - 16e4: 614b str r3, [r1, #20] - if(cmd_mode == false) { - 16e6: 4b0a ldr r3, [pc, #40] ; (1710 ) -{ - 16e8: 4602 mov r2, r0 - if(cmd_mode == false) { - 16ea: 7818 ldrb r0, [r3, #0] - 16ec: b920 cbnz r0, 16f8 - 16ee: f44f 7000 mov.w r0, #512 ; 0x200 - 16f2: 6148 str r0, [r1, #20] - cmd_mode = true; - 16f4: 2101 movs r1, #1 - 16f6: 7019 strb r1, [r3, #0] - - LV_DRV_DISP_PAR_CS(0); - ssd1963_cmd_mode(); - LV_DRV_DISP_PAR_WR_WORD(cmd); - 16f8: 4b06 ldr r3, [pc, #24] ; (1714 ) - 16fa: 4807 ldr r0, [pc, #28] ; (1718 ) - 16fc: f64f 71ff movw r1, #65535 ; 0xffff - 1700: 4798 blx r3 - ((Port *)hw)->Group[submodule_index].OUTSET.reg = mask; - 1702: 4b02 ldr r3, [pc, #8] ; (170c ) - 1704: f44f 7280 mov.w r2, #256 ; 0x100 - 1708: 619a str r2, [r3, #24] - LV_DRV_DISP_PAR_CS(1); - -} - 170a: bd08 pop {r3, pc} - 170c: 41008000 .word 0x41008000 - 1710: 20000001 .word 0x20000001 - 1714: 000011cd .word 0x000011cd - 1718: 41008080 .word 0x41008080 - -0000171c : - ((Port *)hw)->Group[submodule_index].OUTCLR.reg = mask; - 171c: 490b ldr r1, [pc, #44] ; (174c ) -/** - * Write data - * @param data the data - */ -static inline void ssd1963_data(uint8_t data) -{ - 171e: b508 push {r3, lr} - 1720: f44f 7380 mov.w r3, #256 ; 0x100 - 1724: 614b str r3, [r1, #20] - if(cmd_mode != false) { - 1726: 4b0a ldr r3, [pc, #40] ; (1750 ) -{ - 1728: 4602 mov r2, r0 - if(cmd_mode != false) { - 172a: 7818 ldrb r0, [r3, #0] - 172c: b120 cbz r0, 1738 - ((Port *)hw)->Group[submodule_index].OUTSET.reg = mask; - 172e: f44f 7000 mov.w r0, #512 ; 0x200 - 1732: 6188 str r0, [r1, #24] - cmd_mode = false; - 1734: 2100 movs r1, #0 - 1736: 7019 strb r1, [r3, #0] - - LV_DRV_DISP_PAR_CS(0); - ssd1963_data_mode(); - LV_DRV_DISP_PAR_WR_WORD(data); - 1738: 4b06 ldr r3, [pc, #24] ; (1754 ) - 173a: 4807 ldr r0, [pc, #28] ; (1758 ) - 173c: f64f 71ff movw r1, #65535 ; 0xffff - 1740: 4798 blx r3 - 1742: 4b02 ldr r3, [pc, #8] ; (174c ) - 1744: f44f 7280 mov.w r2, #256 ; 0x100 - 1748: 619a str r2, [r3, #24] - LV_DRV_DISP_PAR_CS(1); - -} - 174a: bd08 pop {r3, pc} - 174c: 41008000 .word 0x41008000 - 1750: 20000001 .word 0x20000001 - 1754: 000011cd .word 0x000011cd - 1758: 41008080 .word 0x41008080 - -0000175c : -{ - 175c: e92d 43f8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, lr} - asm volatile("nop"); - 1760: bf00 nop - 1762: 4f61 ldr r7, [pc, #388] ; (18e8 ) - LV_DRV_DELAY_MS(50); - 1764: 4e61 ldr r6, [pc, #388] ; (18ec ) - 1766: f04f 5480 mov.w r4, #268435456 ; 0x10000000 - 176a: f8c7 4118 str.w r4, [r7, #280] ; 0x118 - 176e: 2032 movs r0, #50 ; 0x32 - 1770: 47b0 blx r6 - ((Port *)hw)->Group[submodule_index].OUTCLR.reg = mask; - 1772: f8c7 4114 str.w r4, [r7, #276] ; 0x114 - asm volatile("nop"); - 1776: bf00 nop - LV_DRV_DELAY_MS(50); - 1778: 2032 movs r0, #50 ; 0x32 - 177a: 47b0 blx r6 - ((Port *)hw)->Group[submodule_index].OUTSET.reg = mask; - 177c: f8c7 4118 str.w r4, [r7, #280] ; 0x118 - LV_DRV_DELAY_MS(50); - 1780: 2032 movs r0, #50 ; 0x32 - 1782: 47b0 blx r6 - asm volatile("nop"); - 1784: bf00 nop - ((Port *)hw)->Group[submodule_index].OUTCLR.reg = mask; - 1786: f44f 7880 mov.w r8, #256 ; 0x100 - LV_DRV_DELAY_MS(10); - 178a: 200a movs r0, #10 - 178c: f8c7 8014 str.w r8, [r7, #20] - 1790: 47b0 blx r6 - LV_DRV_DELAY_MS(5); - 1792: 2005 movs r0, #5 - ((Port *)hw)->Group[submodule_index].OUTSET.reg = mask; - 1794: f8c7 8018 str.w r8, [r7, #24] - ssd1963_cmd(0x01); - 1798: 4d55 ldr r5, [pc, #340] ; (18f0 ) - ssd1963_data(0x2F); //N=0x36 for 6.5M, 0x23 for 10M crystal - 179a: 4c56 ldr r4, [pc, #344] ; (18f4 ) - ssd1963_data((SSD1963_HOR_RES-1)>>8); //Set panel size - 179c: f8df 9160 ldr.w r9, [pc, #352] ; 1900 - LV_DRV_DELAY_MS(5); - 17a0: 47b0 blx r6 - ssd1963_cmd(0x01); - 17a2: 2001 movs r0, #1 - 17a4: 47a8 blx r5 - LV_DRV_DELAY_MS(20); - 17a6: 2014 movs r0, #20 - 17a8: 47b0 blx r6 - ssd1963_cmd(0x01); - 17aa: 2001 movs r0, #1 - 17ac: 47a8 blx r5 - LV_DRV_DELAY_MS(20); - 17ae: 2014 movs r0, #20 - 17b0: 47b0 blx r6 - ssd1963_cmd(0x01); - 17b2: 2001 movs r0, #1 - 17b4: 47a8 blx r5 - LV_DRV_DELAY_MS(20); - 17b6: 2014 movs r0, #20 - 17b8: 47b0 blx r6 - ssd1963_cmd(0xE2); //PLL multiplier, set PLL clock to 120M - 17ba: 20e2 movs r0, #226 ; 0xe2 - ((Port *)hw)->Group[submodule_index].OUTCLR.reg = mask; - 17bc: f8c7 8014 str.w r8, [r7, #20] - 17c0: 47a8 blx r5 - ssd1963_data(0x2F); //N=0x36 for 6.5M, 0x23 for 10M crystal - 17c2: 202f movs r0, #47 ; 0x2f - 17c4: 47a0 blx r4 - ssd1963_data(0x03); - 17c6: 2003 movs r0, #3 - 17c8: 47a0 blx r4 - ssd1963_data(0x54); - 17ca: 2054 movs r0, #84 ; 0x54 - 17cc: 47a0 blx r4 - ssd1963_cmd(0xE0); // PLL enable - 17ce: 20e0 movs r0, #224 ; 0xe0 - 17d0: 47a8 blx r5 - ssd1963_data(0x01); - 17d2: 2001 movs r0, #1 - 17d4: 47a0 blx r4 - delay_us(100); - 17d6: 4b48 ldr r3, [pc, #288] ; (18f8 ) - 17d8: 2064 movs r0, #100 ; 0x64 - 17da: 4798 blx r3 - ssd1963_cmd(0xE0); - 17dc: 20e0 movs r0, #224 ; 0xe0 - 17de: 47a8 blx r5 - ssd1963_data(0x03); // now, use PLL output as system clock - 17e0: 2003 movs r0, #3 - 17e2: 47a0 blx r4 - delay_ms(1); - 17e4: 2001 movs r0, #1 - 17e6: 47b0 blx r6 - ssd1963_cmd(0x01); - 17e8: 2001 movs r0, #1 - 17ea: 47a8 blx r5 - delay_ms(1); - 17ec: 2001 movs r0, #1 - 17ee: 47b0 blx r6 - ssd1963_cmd(0xE6); //PLL setting for PCLK, depends on resolution - 17f0: 20e6 movs r0, #230 ; 0xe6 - 17f2: 47a8 blx r5 - ssd1963_data(0x01); - 17f4: 2001 movs r0, #1 - 17f6: 47a0 blx r4 - ssd1963_data(0xCC); - 17f8: 20cc movs r0, #204 ; 0xcc - 17fa: 47a0 blx r4 - ssd1963_data(0xCC); - 17fc: 20cc movs r0, #204 ; 0xcc - 17fe: 47a0 blx r4 - ssd1963_cmd(0xB0); - 1800: 20b0 movs r0, #176 ; 0xb0 - 1802: 47a8 blx r5 - ssd1963_data(0x28); // set 18-bit for 7" panel TY700TFT800480 - 1804: 2028 movs r0, #40 ; 0x28 - 1806: 47a0 blx r4 - ssd1963_data((SSD1963_HOR_RES-1)>>8); //Set panel size - 1808: 4e3c ldr r6, [pc, #240] ; (18fc ) - ssd1963_data(0x80); // set TTL mode - 180a: 2080 movs r0, #128 ; 0x80 - 180c: 47a0 blx r4 - ssd1963_data((SSD1963_HOR_RES-1)>>8); //Set panel size - 180e: 47b0 blx r6 - 1810: 47c8 blx r9 - 1812: 3801 subs r0, #1 - 1814: f3c0 2007 ubfx r0, r0, #8, #8 - 1818: 47a0 blx r4 - ssd1963_data(SSD1963_HOR_RES-1); - 181a: 47b0 blx r6 - 181c: 47c8 blx r9 - 181e: 3801 subs r0, #1 - 1820: b2c0 uxtb r0, r0 - 1822: 47a0 blx r4 - ssd1963_data((SSD1963_VER_RES-1)>>8); - 1824: f8df 90dc ldr.w r9, [pc, #220] ; 1904 - 1828: 47b0 blx r6 - 182a: 47c8 blx r9 - 182c: 3801 subs r0, #1 - 182e: f3c0 2007 ubfx r0, r0, #8, #8 - 1832: 47a0 blx r4 - ssd1963_data(SSD1963_VER_RES-1); - 1834: 47b0 blx r6 - 1836: 47c8 blx r9 - 1838: 3801 subs r0, #1 - 183a: b2c0 uxtb r0, r0 - 183c: 47a0 blx r4 - ssd1963_data(0x00); - 183e: 2000 movs r0, #0 - 1840: 47a0 blx r4 - ssd1963_cmd(0xF0); //Pixel Data Interface Format - 1842: 20f0 movs r0, #240 ; 0xf0 - 1844: 47a8 blx r5 - ssd1963_data(0x03); //16-bit(565 format) data - 1846: 2003 movs r0, #3 - 1848: 47a0 blx r4 - ssd1963_cmd(0x3A); //Set the current pixel format for RGB image data - 184a: 203a movs r0, #58 ; 0x3a - 184c: 47a8 blx r5 - ssd1963_data(0x55); //16-bit/pixel - 184e: 2055 movs r0, #85 ; 0x55 - 1850: 47a0 blx r4 - ssd1963_cmd(0xb4); //SET HBP, - 1852: 20b4 movs r0, #180 ; 0xb4 - 1854: 47a8 blx r5 - ssd1963_data(0x02); //SET HSYNC Tatol 525 - 1856: 2002 movs r0, #2 - 1858: 47a0 blx r4 - ssd1963_data(0x0d); - 185a: 200d movs r0, #13 - 185c: 47a0 blx r4 - ssd1963_data(0x00); //SET HBP 43 - 185e: 2000 movs r0, #0 - 1860: 47a0 blx r4 - ssd1963_data(0x2b); - 1862: 202b movs r0, #43 ; 0x2b - 1864: 47a0 blx r4 - ssd1963_data(0x28); //SET VBP 41=40+1 - 1866: 2028 movs r0, #40 ; 0x28 - 1868: 47a0 blx r4 - ssd1963_data(0x00); //SET Hsync pulse start position - 186a: 2000 movs r0, #0 - 186c: 47a0 blx r4 - ssd1963_data(0x00); - 186e: 2000 movs r0, #0 - 1870: 47a0 blx r4 - ssd1963_data(0x00); //SET Hsync pulse subpixel start position - 1872: 2000 movs r0, #0 - 1874: 47a0 blx r4 - ssd1963_cmd(0xb6); //SET VBP, - 1876: 20b6 movs r0, #182 ; 0xb6 - 1878: 47a8 blx r5 - ssd1963_data(0x01); //SET Vsync total 286=285+1 - 187a: 2001 movs r0, #1 - 187c: 47a0 blx r4 - ssd1963_data(0x1d); - 187e: 201d movs r0, #29 - 1880: 47a0 blx r4 - ssd1963_data(0x00); //SET VBP=12 - 1882: 2000 movs r0, #0 - 1884: 47a0 blx r4 - ssd1963_data(0x0c); - 1886: 200c movs r0, #12 - 1888: 47a0 blx r4 - ssd1963_data(0x09); //SET Vsync pulse 10=9+1 - 188a: 2009 movs r0, #9 - 188c: 47a0 blx r4 - ssd1963_data(0x00); //SET Vsync pulse start position - 188e: 2000 movs r0, #0 - 1890: 47a0 blx r4 - ssd1963_data(0x00); - 1892: 2000 movs r0, #0 - 1894: 47a0 blx r4 - ssd1963_cmd(0x2a); //SET column address - 1896: 202a movs r0, #42 ; 0x2a - 1898: 47a8 blx r5 - ssd1963_data(0x00); //SET start column address=0 - 189a: 2000 movs r0, #0 - 189c: 47a0 blx r4 - ssd1963_data(0x00); - 189e: 2000 movs r0, #0 - 18a0: 47a0 blx r4 - ssd1963_data(0x01); //SET end column address=479 - 18a2: 2001 movs r0, #1 - 18a4: 47a0 blx r4 - ssd1963_data(0xDF); - 18a6: 20df movs r0, #223 ; 0xdf - 18a8: 47a0 blx r4 - ssd1963_cmd(0x2b); //SET page address - 18aa: 202b movs r0, #43 ; 0x2b - 18ac: 47a8 blx r5 - ssd1963_data(0x00); //SET start page address=0 - 18ae: 2000 movs r0, #0 - 18b0: 47a0 blx r4 - ssd1963_data(0x00); - 18b2: 2000 movs r0, #0 - 18b4: 47a0 blx r4 - ssd1963_data(0x01); //SET end page address=271 - 18b6: 2001 movs r0, #1 - 18b8: 47a0 blx r4 - ssd1963_data(0x0F); - 18ba: 200f movs r0, #15 - 18bc: 47a0 blx r4 - ssd1963_cmd(0x29); //display on - 18be: 2029 movs r0, #41 ; 0x29 - 18c0: 47a8 blx r5 - ssd1963_cmd(0xBE); - 18c2: 20be movs r0, #190 ; 0xbe - 18c4: 47a8 blx r5 - ssd1963_data(0x06); - 18c6: 2006 movs r0, #6 - 18c8: 47a0 blx r4 - ssd1963_data(0xFF); - 18ca: 20ff movs r0, #255 ; 0xff - 18cc: 47a0 blx r4 - ssd1963_data(0x01); - 18ce: 2001 movs r0, #1 - 18d0: 47a0 blx r4 - ssd1963_data(0xFF); - 18d2: 20ff movs r0, #255 ; 0xff - 18d4: 47a0 blx r4 - ssd1963_data(0x00); - 18d6: 2000 movs r0, #0 - 18d8: 47a0 blx r4 - ssd1963_data(0x01); - 18da: 2001 movs r0, #1 - 18dc: 47a0 blx r4 - ((Port *)hw)->Group[submodule_index].OUTSET.reg = mask; - 18de: f8c7 8018 str.w r8, [r7, #24] -} - 18e2: e8bd 83f8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, pc} - 18e6: bf00 nop - 18e8: 41008000 .word 0x41008000 - 18ec: 000005b5 .word 0x000005b5 - 18f0: 000016dd .word 0x000016dd - 18f4: 0000171d .word 0x0000171d - 18f8: 00000591 .word 0x00000591 - 18fc: 0000db81 .word 0x0000db81 - 1900: 0000db8d .word 0x0000db8d - 1904: 0000dbb1 .word 0x0000dbb1 - -00001908 : -{ - 1908: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - if(area->x2 < 0) return; - 190c: f9b1 3004 ldrsh.w r3, [r1, #4] -{ - 1910: ed2d 8b02 vpush {d8} - if(area->x2 < 0) return; - 1914: 2b00 cmp r3, #0 -{ - 1916: ee08 0a10 vmov s16, r0 - 191a: b081 sub sp, #4 - 191c: 460d mov r5, r1 - 191e: 4690 mov r8, r2 - if(area->x2 < 0) return; - 1920: f2c0 8086 blt.w 1a30 - if(area->y2 < 0) return; - 1924: f9b1 3006 ldrsh.w r3, [r1, #6] - 1928: 2b00 cmp r3, #0 - 192a: f2c0 8081 blt.w 1a30 - if(area->x1 > SSD1963_HOR_RES - 1) return; - 192e: 4f43 ldr r7, [pc, #268] ; (1a3c ) - 1930: f8df a118 ldr.w sl, [pc, #280] ; 1a4c - 1934: 47b8 blx r7 - 1936: 47d0 blx sl - 1938: f9b5 3000 ldrsh.w r3, [r5] - 193c: 4283 cmp r3, r0 - 193e: da77 bge.n 1a30 - if(area->y1 > SSD1963_VER_RES - 1) return; - 1940: 47b8 blx r7 - 1942: f8df b10c ldr.w fp, [pc, #268] ; 1a50 - 1946: 47d8 blx fp - 1948: f9b5 6002 ldrsh.w r6, [r5, #2] - 194c: 42b0 cmp r0, r6 - 194e: dd6f ble.n 1a30 - int32_t act_x1 = area->x1 < 0 ? 0 : area->x1; - 1950: f9b5 4000 ldrsh.w r4, [r5] - int32_t act_x2 = area->x2 > SSD1963_HOR_RES - 1 ? SSD1963_HOR_RES - 1 : area->x2; - 1954: 47b8 blx r7 - 1956: 47d0 blx sl - 1958: f9b5 3004 ldrsh.w r3, [r5, #4] - 195c: 4298 cmp r0, r3 - int32_t act_x1 = area->x1 < 0 ? 0 : area->x1; - 195e: ea24 74e4 bic.w r4, r4, r4, asr #31 - int32_t act_y1 = area->y1 < 0 ? 0 : area->y1; - 1962: ea26 76e6 bic.w r6, r6, r6, asr #31 - int32_t act_x2 = area->x2 > SSD1963_HOR_RES - 1 ? SSD1963_HOR_RES - 1 : area->x2; - 1966: dc55 bgt.n 1a14 - 1968: 47b8 blx r7 - 196a: 47d0 blx sl - 196c: f100 3aff add.w sl, r0, #4294967295 ; 0xffffffff - int32_t act_y2 = area->y2 > SSD1963_VER_RES - 1 ? SSD1963_VER_RES - 1 : area->y2; - 1970: 47b8 blx r7 - 1972: 47d8 blx fp - 1974: f9b5 3006 ldrsh.w r3, [r5, #6] - 1978: 4298 cmp r0, r3 - 197a: dc4d bgt.n 1a18 - 197c: 47b8 blx r7 - 197e: 47d8 blx fp - 1980: 1e47 subs r7, r0, #1 - ssd1963_cmd(0x002A); - 1982: f8df 90d0 ldr.w r9, [pc, #208] ; 1a54 - ssd1963_data(act_x1 >> 8); - 1986: f8df b0d0 ldr.w fp, [pc, #208] ; 1a58 - ssd1963_cmd(0x002A); - 198a: 202a movs r0, #42 ; 0x2a - 198c: 47c8 blx r9 - ssd1963_data(act_x1 >> 8); - 198e: f3c4 2007 ubfx r0, r4, #8, #8 - 1992: 47d8 blx fp - ssd1963_data(0x00FF & act_x1); - 1994: b2e0 uxtb r0, r4 - 1996: 47d8 blx fp - ssd1963_data(act_x2 >> 8); - 1998: f3ca 2007 ubfx r0, sl, #8, #8 - 199c: 47d8 blx fp - ssd1963_data(0x00FF & act_x2); - 199e: fa5f f08a uxtb.w r0, sl - 19a2: 47d8 blx fp - ssd1963_cmd(0x002B); - 19a4: 202b movs r0, #43 ; 0x2b - 19a6: 47c8 blx r9 - ssd1963_data(act_y1 >> 8); - 19a8: f3c6 2007 ubfx r0, r6, #8, #8 - 19ac: 47d8 blx fp - ssd1963_data(0x00FF & act_y1); - 19ae: b2f0 uxtb r0, r6 - 19b0: 47d8 blx fp - ssd1963_data(act_y2 >> 8); - 19b2: f3c7 2007 ubfx r0, r7, #8, #8 - 19b6: 47d8 blx fp - ssd1963_data(0x00FF & act_y2); - 19b8: b2f8 uxtb r0, r7 - 19ba: 47d8 blx fp - ssd1963_cmd(0x2c); - 19bc: 202c movs r0, #44 ; 0x2c - 19be: 47c8 blx r9 - uint16_t full_w = area->x2 - area->x1 + 1; - 19c0: 88ab ldrh r3, [r5, #4] - 19c2: 882a ldrh r2, [r5, #0] - 19c4: 3301 adds r3, #1 - 19c6: 1a9d subs r5, r3, r2 - if(cmd_mode != false) { - 19c8: 4a1d ldr r2, [pc, #116] ; (1a40 ) - 19ca: 4b1e ldr r3, [pc, #120] ; (1a44 ) - 19cc: 7811 ldrb r1, [r2, #0] - uint16_t full_w = area->x2 - area->x1 + 1; - 19ce: b2ad uxth r5, r5 - if(cmd_mode != false) { - 19d0: b121 cbz r1, 19dc - 19d2: f44f 7100 mov.w r1, #512 ; 0x200 - 19d6: 6199 str r1, [r3, #24] - cmd_mode = false; - 19d8: 2100 movs r1, #0 - 19da: 7011 strb r1, [r2, #0] - uint16_t act_w = act_x2 - act_x1 + 1; - 19dc: f1c4 0401 rsb r4, r4, #1 - ((Port *)hw)->Group[submodule_index].OUTCLR.reg = mask; - 19e0: f44f 7280 mov.w r2, #256 ; 0x100 - 19e4: 615a str r2, [r3, #20] - LV_DRV_DISP_PAR_WR_ARRAY((uint16_t *)color_p, act_w); - 19e6: f8df b074 ldr.w fp, [pc, #116] ; 1a5c - uint16_t act_w = act_x2 - act_x1 + 1; - 19ea: eb04 030a add.w r3, r4, sl - LV_DRV_DISP_PAR_WR_ARRAY((uint16_t *)color_p, act_w); - 19ee: f8df a070 ldr.w sl, [pc, #112] ; 1a60 - uint16_t act_w = act_x2 - act_x1 + 1; - 19f2: b29c uxth r4, r3 - color_p += full_w; - 19f4: 006d lsls r5, r5, #1 - for(i = act_y1; i <= act_y2; i++) { - 19f6: 42be cmp r6, r7 - 19f8: dd10 ble.n 1a1c - ((Port *)hw)->Group[submodule_index].OUTSET.reg = mask; - 19fa: 4b12 ldr r3, [pc, #72] ; (1a44 ) - 19fc: f44f 7280 mov.w r2, #256 ; 0x100 - 1a00: 619a str r2, [r3, #24] - lv_disp_flush_ready(disp_drv); - 1a02: ee18 0a10 vmov r0, s16 - 1a06: 4b10 ldr r3, [pc, #64] ; (1a48 ) -} - 1a08: b001 add sp, #4 - 1a0a: ecbd 8b02 vpop {d8} - 1a0e: e8bd 4ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - lv_disp_flush_ready(disp_drv); - 1a12: 4718 bx r3 - int32_t act_x2 = area->x2 > SSD1963_HOR_RES - 1 ? SSD1963_HOR_RES - 1 : area->x2; - 1a14: 469a mov sl, r3 - 1a16: e7ab b.n 1970 - int32_t act_y2 = area->y2 > SSD1963_VER_RES - 1 ? SSD1963_VER_RES - 1 : area->y2; - 1a18: 461f mov r7, r3 - 1a1a: e7b2 b.n 1982 - LV_DRV_DISP_PAR_WR_ARRAY((uint16_t *)color_p, act_w); - 1a1c: 4642 mov r2, r8 - 1a1e: 4623 mov r3, r4 - 1a20: f64f 71ff movw r1, #65535 ; 0xffff - 1a24: 4650 mov r0, sl - 1a26: 3601 adds r6, #1 - 1a28: 47d8 blx fp - color_p += full_w; - 1a2a: 44a8 add r8, r5 - for(i = act_y1; i <= act_y2; i++) { - 1a2c: b236 sxth r6, r6 - 1a2e: e7e2 b.n 19f6 -} - 1a30: b001 add sp, #4 - 1a32: ecbd 8b02 vpop {d8} - 1a36: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - 1a3a: bf00 nop - 1a3c: 0000db81 .word 0x0000db81 - 1a40: 20000001 .word 0x20000001 - 1a44: 41008000 .word 0x41008000 - 1a48: 0000dc3d .word 0x0000dc3d - 1a4c: 0000db8d .word 0x0000db8d - 1a50: 0000dbb1 .word 0x0000dbb1 - 1a54: 000016dd .word 0x000016dd - 1a58: 0000171d .word 0x0000171d - 1a5c: 000011f9 .word 0x000011f9 - 1a60: 41008080 .word 0x41008080 - -00001a64 : -bool lv_debug_check_null(const void * p) -{ - if(p) return true; - - return false; -} - 1a64: 3800 subs r0, #0 - 1a66: bf18 it ne - 1a68: 2001 movne r0, #1 - 1a6a: 4770 bx lr - -00001a6c : - LV_LOG_WARN("lv_debug_check_str: string is longer than LV_DEBUG_STR_MAX_LENGTH"); - return false; -} - -void lv_debug_log_error(const char * msg, uint64_t value) -{ - 1a6c: b5f0 push {r4, r5, r6, r7, lr} - static const char hex[] = "0123456789ABCDEF"; - - size_t msg_len = strlen(msg); - 1a6e: 4b1b ldr r3, [pc, #108] ; (1adc ) -{ - 1a70: b0c3 sub sp, #268 ; 0x10c - 1a72: 4607 mov r7, r0 - 1a74: 4616 mov r6, r2 - size_t msg_len = strlen(msg); - 1a76: 4798 blx r3 - uint32_t value_len = sizeof(unsigned long int); - - if(msg_len < 230) { - 1a78: 28e5 cmp r0, #229 ; 0xe5 - size_t msg_len = strlen(msg); - 1a7a: 4604 mov r4, r0 - if(msg_len < 230) { - 1a7c: d829 bhi.n 1ad2 - char buf[255]; - char * bufp = buf; - - /*Add the function name*/ - _lv_memcpy(bufp, msg, msg_len); - 1a7e: ad02 add r5, sp, #8 - 1a80: 4602 mov r2, r0 - 1a82: 4b17 ldr r3, [pc, #92] ; (1ae0 ) - 1a84: 4639 mov r1, r7 - 1a86: 4628 mov r0, r5 - 1a88: 4798 blx r3 - bufp += msg_len; - 1a8a: 192b adds r3, r5, r4 - - /*Add value in hey*/ - *bufp = ' '; - 1a8c: 2220 movs r2, #32 - 1a8e: 552a strb r2, [r5, r4] - bufp ++; - *bufp = '('; - 1a90: 2228 movs r2, #40 ; 0x28 - 1a92: 705a strb r2, [r3, #1] - bufp ++; - *bufp = '0'; - 1a94: 2230 movs r2, #48 ; 0x30 - 1a96: 709a strb r2, [r3, #2] - - int8_t i; - for(i = value_len * 2 - 1; i >= 0; i--) { - uint8_t x = (unsigned long int)((unsigned long int)value >> (i * 4)) & 0xF; - - *bufp = hex[x]; - 1a98: 4c12 ldr r4, [pc, #72] ; (1ae4 ) - *bufp = 'x'; - 1a9a: 2278 movs r2, #120 ; 0x78 - 1a9c: 70da strb r2, [r3, #3] - bufp ++; - 1a9e: 1d18 adds r0, r3, #4 - 1aa0: 221c movs r2, #28 - uint8_t x = (unsigned long int)((unsigned long int)value >> (i * 4)) & 0xF; - 1aa2: fa26 f102 lsr.w r1, r6, r2 - *bufp = hex[x]; - 1aa6: f001 010f and.w r1, r1, #15 - 1aaa: 4421 add r1, r4 - for(i = value_len * 2 - 1; i >= 0; i--) { - 1aac: 3a04 subs r2, #4 - *bufp = hex[x]; - 1aae: 7cc9 ldrb r1, [r1, #19] - 1ab0: f800 1b01 strb.w r1, [r0], #1 - for(i = value_len * 2 - 1; i >= 0; i--) { - 1ab4: 1d11 adds r1, r2, #4 - 1ab6: d1f4 bne.n 1aa2 - bufp++; - } - - *bufp = ')'; - 1ab8: 2229 movs r2, #41 ; 0x29 - 1aba: 731a strb r2, [r3, #12] - bufp ++; - - *bufp = '\0'; - 1abc: 2200 movs r2, #0 - 1abe: 735a strb r2, [r3, #13] - LV_LOG_ERROR(buf); - 1ac0: 4b09 ldr r3, [pc, #36] ; (1ae8 ) - 1ac2: 9500 str r5, [sp, #0] - 1ac4: 22bc movs r2, #188 ; 0xbc - } - else { - LV_LOG_ERROR(msg); - 1ac6: 4909 ldr r1, [pc, #36] ; (1aec ) - 1ac8: 4c09 ldr r4, [pc, #36] ; (1af0 ) - 1aca: 2003 movs r0, #3 - 1acc: 47a0 blx r4 - } -} - 1ace: b043 add sp, #268 ; 0x10c - 1ad0: bdf0 pop {r4, r5, r6, r7, pc} - LV_LOG_ERROR(msg); - 1ad2: 4b05 ldr r3, [pc, #20] ; (1ae8 ) - 1ad4: 9700 str r7, [sp, #0] - 1ad6: 22bf movs r2, #191 ; 0xbf - 1ad8: e7f5 b.n 1ac6 - 1ada: bf00 nop - 1adc: 00017481 .word 0x00017481 - 1ae0: 0000eec1 .word 0x0000eec1 - 1ae4: 0002659d .word 0x0002659d - 1ae8: 000265c1 .word 0x000265c1 - 1aec: 00026493 .word 0x00026493 - 1af0: 0000eb79 .word 0x0000eb79 - -00001af4 : - * @param disp pointer to display which active screen should be get. (NULL to use the default - * screen) - * @return pointer to the active screen object (loaded by 'lv_scr_load()') - */ -lv_obj_t * lv_disp_get_scr_act(lv_disp_t * disp) -{ - 1af4: b537 push {r0, r1, r2, r4, r5, lr} - if(!disp) disp = lv_disp_get_default(); - 1af6: 4604 mov r4, r0 - 1af8: b970 cbnz r0, 1b18 - 1afa: 4b08 ldr r3, [pc, #32] ; (1b1c ) - 1afc: 4798 blx r3 - if(!disp) { - 1afe: 4604 mov r4, r0 - 1b00: b950 cbnz r0, 1b18 - LV_LOG_WARN("lv_scr_act: no display registered to get its act. screen"); - 1b02: 4b07 ldr r3, [pc, #28] ; (1b20 ) - 1b04: 9300 str r3, [sp, #0] - 1b06: 4907 ldr r1, [pc, #28] ; (1b24 ) - 1b08: 4b07 ldr r3, [pc, #28] ; (1b28 ) - 1b0a: 4d08 ldr r5, [pc, #32] ; (1b2c ) - 1b0c: 222e movs r2, #46 ; 0x2e - 1b0e: 2002 movs r0, #2 - 1b10: 47a8 blx r5 - return NULL; - } - - return disp->act_scr; -} - 1b12: 4620 mov r0, r4 - 1b14: b003 add sp, #12 - 1b16: bd30 pop {r4, r5, pc} - return disp->act_scr; - 1b18: 6be4 ldr r4, [r4, #60] ; 0x3c - 1b1a: e7fa b.n 1b12 - 1b1c: 0000db81 .word 0x0000db81 - 1b20: 00026604 .word 0x00026604 - 1b24: 000265d4 .word 0x000265d4 - 1b28: 00026774 .word 0x00026774 - 1b2c: 0000eb79 .word 0x0000eb79 - -00001b30 : - * Return with the top layer. (Same on every screen and it is above the normal screen layer) - * @param disp pointer to display which top layer should be get. (NULL to use the default screen) - * @return pointer to the top layer object (transparent screen sized lv_obj) - */ -lv_obj_t * lv_disp_get_layer_top(lv_disp_t * disp) -{ - 1b30: b537 push {r0, r1, r2, r4, r5, lr} - if(!disp) disp = lv_disp_get_default(); - 1b32: 4604 mov r4, r0 - 1b34: b970 cbnz r0, 1b54 - 1b36: 4b08 ldr r3, [pc, #32] ; (1b58 ) - 1b38: 4798 blx r3 - if(!disp) { - 1b3a: 4604 mov r4, r0 - 1b3c: b950 cbnz r0, 1b54 - LV_LOG_WARN("lv_layer_top: no display registered to get its top layer"); - 1b3e: 4b07 ldr r3, [pc, #28] ; (1b5c ) - 1b40: 9300 str r3, [sp, #0] - 1b42: 4907 ldr r1, [pc, #28] ; (1b60 ) - 1b44: 4b07 ldr r3, [pc, #28] ; (1b64 ) - 1b46: 4d08 ldr r5, [pc, #32] ; (1b68 ) - 1b48: 224b movs r2, #75 ; 0x4b - 1b4a: 2002 movs r0, #2 - 1b4c: 47a8 blx r5 - return NULL; - } - - return disp->top_layer; -} - 1b4e: 4620 mov r0, r4 - 1b50: b003 add sp, #12 - 1b52: bd30 pop {r4, r5, pc} - return disp->top_layer; - 1b54: 6c24 ldr r4, [r4, #64] ; 0x40 - 1b56: e7fa b.n 1b4e - 1b58: 0000db81 .word 0x0000db81 - 1b5c: 0002663d .word 0x0002663d - 1b60: 000265d4 .word 0x000265d4 - 1b64: 00026788 .word 0x00026788 - 1b68: 0000eb79 .word 0x0000eb79 - -00001b6c : - * layer) - * @param disp pointer to display which sys. layer should be get. (NULL to use the default screen) - * @return pointer to the sys layer object (transparent screen sized lv_obj) - */ -lv_obj_t * lv_disp_get_layer_sys(lv_disp_t * disp) -{ - 1b6c: b537 push {r0, r1, r2, r4, r5, lr} - if(!disp) disp = lv_disp_get_default(); - 1b6e: 4604 mov r4, r0 - 1b70: b970 cbnz r0, 1b90 - 1b72: 4b08 ldr r3, [pc, #32] ; (1b94 ) - 1b74: 4798 blx r3 - if(!disp) { - 1b76: 4604 mov r4, r0 - 1b78: b950 cbnz r0, 1b90 - LV_LOG_WARN("lv_layer_sys: no display registered to get its sys. layer"); - 1b7a: 4b07 ldr r3, [pc, #28] ; (1b98 ) - 1b7c: 9300 str r3, [sp, #0] - 1b7e: 4907 ldr r1, [pc, #28] ; (1b9c ) - 1b80: 4b07 ldr r3, [pc, #28] ; (1ba0 ) - 1b82: 4d08 ldr r5, [pc, #32] ; (1ba4 ) - 1b84: 225c movs r2, #92 ; 0x5c - 1b86: 2002 movs r0, #2 - 1b88: 47a8 blx r5 - return NULL; - } - - return disp->sys_layer; -} - 1b8a: 4620 mov r0, r4 - 1b8c: b003 add sp, #12 - 1b8e: bd30 pop {r4, r5, pc} - return disp->sys_layer; - 1b90: 6c64 ldr r4, [r4, #68] ; 0x44 - 1b92: e7fa b.n 1b8a - 1b94: 0000db81 .word 0x0000db81 - 1b98: 00026676 .word 0x00026676 - 1b9c: 000265d4 .word 0x000265d4 - 1ba0: 0002679e .word 0x0002679e - 1ba4: 0000eb79 .word 0x0000eb79 - -00001ba8 : - - if(group->focus_cb) group->focus_cb(group); -} - -static void obj_to_foreground(lv_obj_t * obj) -{ - 1ba8: b570 push {r4, r5, r6, lr} - /*Search for 'top' attribute*/ - lv_obj_t * i = obj; - lv_obj_t * last_top = NULL; - while(i != NULL) { - if(i->top != 0) last_top = i; - i = lv_obj_get_parent(i); - 1baa: 4d09 ldr r5, [pc, #36] ; (1bd0 ) - lv_obj_t * last_top = NULL; - 1bac: 2400 movs r4, #0 - while(i != NULL) { - 1bae: b928 cbnz r0, 1bbc - } - - if(last_top != NULL) { - 1bb0: b164 cbz r4, 1bcc - /*Move the last_top object to the foreground*/ - lv_obj_move_foreground(last_top); - 1bb2: 4620 mov r0, r4 - 1bb4: 4b07 ldr r3, [pc, #28] ; (1bd4 ) - } -} - 1bb6: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr} - lv_obj_move_foreground(last_top); - 1bba: 4718 bx r3 - if(i->top != 0) last_top = i; - 1bbc: f890 3034 ldrb.w r3, [r0, #52] ; 0x34 - 1bc0: f013 0f20 tst.w r3, #32 - 1bc4: bf18 it ne - 1bc6: 4604 movne r4, r0 - i = lv_obj_get_parent(i); - 1bc8: 47a8 blx r5 - 1bca: e7f0 b.n 1bae -} - 1bcc: bd70 pop {r4, r5, r6, pc} - 1bce: bf00 nop - 1bd0: 000023a9 .word 0x000023a9 - 1bd4: 00002a95 .word 0x00002a95 - -00001bd8 : -{ - 1bd8: e92d 47f3 stmdb sp!, {r0, r1, r4, r5, r6, r7, r8, r9, sl, lr} - if(group->frozen) return; - 1bdc: 7d06 ldrb r6, [r0, #20] - 1bde: f016 0601 ands.w r6, r6, #1 -{ - 1be2: 4605 mov r5, r0 - 1be4: 4688 mov r8, r1 - 1be6: 4617 mov r7, r2 - if(group->frozen) return; - 1be8: d15c bne.n 1ca4 - lv_obj_t ** obj_next = group->obj_focus; - 1bea: 68c4 ldr r4, [r0, #12] - if(!lv_obj_get_hidden(*obj_next)) break; - 1bec: f8df a0c8 ldr.w sl, [pc, #200] ; 1cb8 - bool can_begin = true; - 1bf0: f04f 0901 mov.w r9, #1 - if(obj_next == NULL) { - 1bf4: 2c00 cmp r4, #0 - 1bf6: d14c bne.n 1c92 - if(group->wrap || obj_sentinel == NULL) { - 1bf8: 7d2b ldrb r3, [r5, #20] - 1bfa: 06db lsls r3, r3, #27 - 1bfc: d401 bmi.n 1c02 - 1bfe: 2e00 cmp r6, #0 - 1c00: d150 bne.n 1ca4 - if(!can_begin) return; - 1c02: f1b9 0f00 cmp.w r9, #0 - 1c06: d04d beq.n 1ca4 - obj_next = begin(&group->obj_ll); - 1c08: 4628 mov r0, r5 - 1c0a: 47c0 blx r8 - 1c0c: 4604 mov r4, r0 - if(obj_sentinel == NULL) { - 1c0e: 2e00 cmp r6, #0 - 1c10: d13a bne.n 1c88 - if(obj_sentinel == NULL) return; /*Group is empty*/ - 1c12: 2800 cmp r0, #0 - 1c14: d046 beq.n 1ca4 - 1c16: 4606 mov r6, r0 - can_begin = false; - 1c18: f04f 0900 mov.w r9, #0 - if(!lv_obj_get_hidden(*obj_next)) break; - 1c1c: 6820 ldr r0, [r4, #0] - 1c1e: 47d0 blx sl - 1c20: 4602 mov r2, r0 - 1c22: 2800 cmp r0, #0 - 1c24: d1e6 bne.n 1bf4 - if(obj_next == group->obj_focus) return; /*There's only one visible object and it's already focused*/ - 1c26: 68eb ldr r3, [r5, #12] - 1c28: 42a3 cmp r3, r4 - 1c2a: d03b beq.n 1ca4 - if(group->obj_focus) { - 1c2c: 4e1f ldr r6, [pc, #124] ; (1cac ) - 1c2e: b17b cbz r3, 1c50 - (*group->obj_focus)->signal_cb(*group->obj_focus, LV_SIGNAL_DEFOCUS, NULL); - 1c30: 6818 ldr r0, [r3, #0] - 1c32: 9201 str r2, [sp, #4] - 1c34: 69c3 ldr r3, [r0, #28] - 1c36: 2117 movs r1, #23 - 1c38: 4798 blx r3 - lv_res_t res = lv_event_send(*group->obj_focus, LV_EVENT_DEFOCUSED, NULL); - 1c3a: 68eb ldr r3, [r5, #12] - 1c3c: 9a01 ldr r2, [sp, #4] - 1c3e: 6818 ldr r0, [r3, #0] - 1c40: 210e movs r1, #14 - 1c42: 47b0 blx r6 - if(res != LV_RES_OK) return; - 1c44: 2801 cmp r0, #1 - 1c46: d12d bne.n 1ca4 - lv_obj_invalidate(*group->obj_focus); - 1c48: 68eb ldr r3, [r5, #12] - 1c4a: 6818 ldr r0, [r3, #0] - 1c4c: 4b18 ldr r3, [pc, #96] ; (1cb0 ) - 1c4e: 4798 blx r3 - (*group->obj_focus)->signal_cb(*group->obj_focus, LV_SIGNAL_FOCUS, NULL); - 1c50: 6820 ldr r0, [r4, #0] - group->obj_focus = obj_next; - 1c52: 60ec str r4, [r5, #12] - (*group->obj_focus)->signal_cb(*group->obj_focus, LV_SIGNAL_FOCUS, NULL); - 1c54: 69c3 ldr r3, [r0, #28] - 1c56: 2200 movs r2, #0 - 1c58: 2116 movs r1, #22 - 1c5a: 4798 blx r3 - lv_res_t res = lv_event_send(*group->obj_focus, LV_EVENT_FOCUSED, NULL); - 1c5c: 68eb ldr r3, [r5, #12] - 1c5e: 2200 movs r2, #0 - 1c60: 6818 ldr r0, [r3, #0] - 1c62: 210d movs r1, #13 - 1c64: 47b0 blx r6 - if(res != LV_RES_OK) return; - 1c66: 2801 cmp r0, #1 - 1c68: d11c bne.n 1ca4 - obj_to_foreground(*group->obj_focus); - 1c6a: 68eb ldr r3, [r5, #12] - 1c6c: 6818 ldr r0, [r3, #0] - 1c6e: 4b11 ldr r3, [pc, #68] ; (1cb4 ) - 1c70: 4798 blx r3 - lv_obj_invalidate(*group->obj_focus); - 1c72: 68eb ldr r3, [r5, #12] - 1c74: 6818 ldr r0, [r3, #0] - 1c76: 4b0e ldr r3, [pc, #56] ; (1cb0 ) - 1c78: 4798 blx r3 - if(group->focus_cb) group->focus_cb(group); - 1c7a: 692b ldr r3, [r5, #16] - 1c7c: b193 cbz r3, 1ca4 - 1c7e: 4628 mov r0, r5 -} - 1c80: b002 add sp, #8 - 1c82: e8bd 47f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr} - if(group->focus_cb) group->focus_cb(group); - 1c86: 4718 bx r3 - can_begin = false; - 1c88: f04f 0900 mov.w r9, #0 - if(obj_next == NULL) continue; - 1c8c: 2c00 cmp r4, #0 - 1c8e: d1c5 bne.n 1c1c - 1c90: e7b2 b.n 1bf8 - obj_next = move(&group->obj_ll, obj_next); - 1c92: 4621 mov r1, r4 - 1c94: 4628 mov r0, r5 - 1c96: 47b8 blx r7 - if(obj_sentinel == NULL) { - 1c98: 2e00 cmp r6, #0 - 1c9a: bf08 it eq - 1c9c: 4626 moveq r6, r4 - if(obj_next == obj_sentinel) return; - 1c9e: 42b0 cmp r0, r6 - obj_next = move(&group->obj_ll, obj_next); - 1ca0: 4604 mov r4, r0 - if(obj_next == obj_sentinel) return; - 1ca2: d1f3 bne.n 1c8c -} - 1ca4: b002 add sp, #8 - 1ca6: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} - 1caa: bf00 nop - 1cac: 000021fd .word 0x000021fd - 1cb0: 00002a09 .word 0x00002a09 - 1cb4: 00001ba9 .word 0x00001ba9 - 1cb8: 000028a1 .word 0x000028a1 - -00001cbc <_lv_group_init>: - _lv_ll_init(&LV_GC_ROOT(_lv_group_ll), sizeof(lv_group_t)); - 1cbc: 4801 ldr r0, [pc, #4] ; (1cc4 <_lv_group_init+0x8>) - 1cbe: 4b02 ldr r3, [pc, #8] ; (1cc8 <_lv_group_init+0xc>) - 1cc0: 2118 movs r1, #24 - 1cc2: 4718 bx r3 - 1cc4: 20003618 .word 0x20003618 - 1cc8: 0000e889 .word 0x0000e889 - -00001ccc : - focus_next_core(group, _lv_ll_get_head, _lv_ll_get_next); - 1ccc: 4a01 ldr r2, [pc, #4] ; (1cd4 ) - 1cce: 4902 ldr r1, [pc, #8] ; (1cd8 ) - 1cd0: 4b02 ldr r3, [pc, #8] ; (1cdc ) - 1cd2: 4718 bx r3 - 1cd4: 0000e939 .word 0x0000e939 - 1cd8: 0000e92d .word 0x0000e92d - 1cdc: 00001bd9 .word 0x00001bd9 - -00001ce0 : - focus_next_core(group, _lv_ll_get_tail, _lv_ll_get_prev); - 1ce0: 4a01 ldr r2, [pc, #4] ; (1ce8 ) - 1ce2: 4902 ldr r1, [pc, #8] ; (1cec ) - 1ce4: 4b02 ldr r3, [pc, #8] ; (1cf0 ) - 1ce6: 4718 bx r3 - 1ce8: 0000e959 .word 0x0000e959 - 1cec: 0000e933 .word 0x0000e933 - 1cf0: 00001bd9 .word 0x00001bd9 - -00001cf4 : -{ - 1cf4: b538 push {r3, r4, r5, lr} - uint8_t temp_wrap = g->wrap; - 1cf6: 7d03 ldrb r3, [r0, #20] - 1cf8: f3c3 1500 ubfx r5, r3, #4, #1 - g->wrap = 1; - 1cfc: f043 0310 orr.w r3, r3, #16 - 1d00: 7503 strb r3, [r0, #20] -{ - 1d02: 4604 mov r4, r0 - if(g->refocus_policy == LV_GROUP_REFOCUS_POLICY_NEXT) - 1d04: 071b lsls r3, r3, #28 - lv_group_focus_next(g); - 1d06: bf54 ite pl - 1d08: 4b03 ldrpl r3, [pc, #12] ; (1d18 ) - lv_group_focus_prev(g); - 1d0a: 4b04 ldrmi r3, [pc, #16] ; (1d1c ) - 1d0c: 4798 blx r3 - g->wrap = temp_wrap; - 1d0e: 7d23 ldrb r3, [r4, #20] - 1d10: f365 1304 bfi r3, r5, #4, #1 - 1d14: 7523 strb r3, [r4, #20] -} - 1d16: bd38 pop {r3, r4, r5, pc} - 1d18: 00001ccd .word 0x00001ccd - 1d1c: 00001ce1 .word 0x00001ce1 - -00001d20 : -{ - 1d20: e92d 41f3 stmdb sp!, {r0, r1, r4, r5, r6, r7, r8, lr} - 1d24: 460d mov r5, r1 - if(group == NULL) return; - 1d26: 4604 mov r4, r0 - 1d28: 2800 cmp r0, #0 - 1d2a: d036 beq.n 1d9a - _LV_LL_READ(group->obj_ll, obj_i) { - 1d2c: f8df 80c4 ldr.w r8, [pc, #196] ; 1df4 - 1d30: 4e24 ldr r6, [pc, #144] ; (1dc4 ) - 1d32: 47c0 blx r8 - 1d34: bb30 cbnz r0, 1d84 - if(obj->group_p) { - 1d36: 6bab ldr r3, [r5, #56] ; 0x38 - 1d38: b173 cbz r3, 1d58 - if(lv_obj_is_focused(obj)) { - 1d3a: 4b23 ldr r3, [pc, #140] ; (1dc8 ) - 1d3c: 4628 mov r0, r5 - 1d3e: 4798 blx r3 - 1d40: b150 cbz r0, 1d58 - lv_group_refocus(obj->group_p); - 1d42: 6ba8 ldr r0, [r5, #56] ; 0x38 - 1d44: 4b21 ldr r3, [pc, #132] ; (1dcc ) - LV_LOG_INFO("lv_group_add_obj: assign object to an other group"); - 1d46: 4e22 ldr r6, [pc, #136] ; (1dd0 ) - lv_group_refocus(obj->group_p); - 1d48: 4798 blx r3 - LV_LOG_INFO("lv_group_add_obj: assign object to an other group"); - 1d4a: 4b22 ldr r3, [pc, #136] ; (1dd4 ) - 1d4c: 9300 str r3, [sp, #0] - 1d4e: 4922 ldr r1, [pc, #136] ; (1dd8 ) - 1d50: 4b22 ldr r3, [pc, #136] ; (1ddc ) - 1d52: 227f movs r2, #127 ; 0x7f - 1d54: 2001 movs r0, #1 - 1d56: 47b0 blx r6 - lv_obj_t ** next = _lv_ll_ins_tail(&group->obj_ll); - 1d58: 4b21 ldr r3, [pc, #132] ; (1de0 ) - obj->group_p = group; - 1d5a: 63ac str r4, [r5, #56] ; 0x38 - lv_obj_t ** next = _lv_ll_ins_tail(&group->obj_ll); - 1d5c: 4620 mov r0, r4 - 1d5e: 4798 blx r3 - LV_ASSERT_MEM(next); - 1d60: 4b20 ldr r3, [pc, #128] ; (1de4 ) - lv_obj_t ** next = _lv_ll_ins_tail(&group->obj_ll); - 1d62: 4606 mov r6, r0 - LV_ASSERT_MEM(next); - 1d64: 4798 blx r3 - 1d66: 4607 mov r7, r0 - 1d68: b9f0 cbnz r0, 1da8 - 1d6a: 4b1c ldr r3, [pc, #112] ; (1ddc ) - 1d6c: 491a ldr r1, [pc, #104] ; (1dd8 ) - 1d6e: 9300 str r3, [sp, #0] - 1d70: 2285 movs r2, #133 ; 0x85 - 1d72: 2003 movs r0, #3 - 1d74: 4c16 ldr r4, [pc, #88] ; (1dd0 ) - 1d76: 47a0 blx r4 - 1d78: 481b ldr r0, [pc, #108] ; (1de8 ) - 1d7a: 491c ldr r1, [pc, #112] ; (1dec ) - 1d7c: 4632 mov r2, r6 - 1d7e: 463b mov r3, r7 - 1d80: 4788 blx r1 - 1d82: e7fe b.n 1d82 - if((*obj_i) == obj) { - 1d84: 6803 ldr r3, [r0, #0] - 1d86: 42ab cmp r3, r5 - 1d88: d10a bne.n 1da0 - LV_LOG_INFO("lv_group_add_obj: the object is already added to this group"); - 1d8a: 4b19 ldr r3, [pc, #100] ; (1df0 ) - 1d8c: 9300 str r3, [sp, #0] - 1d8e: 4912 ldr r1, [pc, #72] ; (1dd8 ) - 1d90: 4b12 ldr r3, [pc, #72] ; (1ddc ) - 1d92: 4c0f ldr r4, [pc, #60] ; (1dd0 ) - 1d94: 2275 movs r2, #117 ; 0x75 - 1d96: 2001 movs r0, #1 - 1d98: 47a0 blx r4 -} - 1d9a: b002 add sp, #8 - 1d9c: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} - _LV_LL_READ(group->obj_ll, obj_i) { - 1da0: 4601 mov r1, r0 - 1da2: 4620 mov r0, r4 - 1da4: 47b0 blx r6 - 1da6: e7c5 b.n 1d34 - if(next == NULL) return; - 1da8: 2e00 cmp r6, #0 - 1daa: d0f6 beq.n 1d9a - *next = obj; - 1dac: 6035 str r5, [r6, #0] - if(_lv_ll_get_head(&group->obj_ll) == next) { - 1dae: 4620 mov r0, r4 - 1db0: 47c0 blx r8 - 1db2: 4286 cmp r6, r0 - 1db4: d1f1 bne.n 1d9a - lv_group_refocus(group); - 1db6: 4b05 ldr r3, [pc, #20] ; (1dcc ) - 1db8: 4620 mov r0, r4 -} - 1dba: b002 add sp, #8 - 1dbc: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr} - lv_group_refocus(group); - 1dc0: 4718 bx r3 - 1dc2: bf00 nop - 1dc4: 0000e939 .word 0x0000e939 - 1dc8: 0000447d .word 0x0000447d - 1dcc: 00001cf5 .word 0x00001cf5 - 1dd0: 0000eb79 .word 0x0000eb79 - 1dd4: 0002688c .word 0x0002688c - 1dd8: 00026811 .word 0x00026811 - 1ddc: 000268ce .word 0x000268ce - 1de0: 0000e8e5 .word 0x0000e8e5 - 1de4: 00001a65 .word 0x00001a65 - 1de8: 00026842 .word 0x00026842 - 1dec: 00001a6d .word 0x00001a6d - 1df0: 00026850 .word 0x00026850 - 1df4: 0000e92d .word 0x0000e92d - -00001df8 : -{ - 1df8: b5f8 push {r3, r4, r5, r6, r7, lr} - lv_group_t * g = obj->group_p; - 1dfa: 6b84 ldr r4, [r0, #56] ; 0x38 -{ - 1dfc: 4606 mov r6, r0 - if(g == NULL) return; - 1dfe: 2c00 cmp r4, #0 - 1e00: d033 beq.n 1e6a - if(g->obj_focus == NULL) return; /*Just to be sure (Not possible if there is at least one object in the group)*/ - 1e02: 68e3 ldr r3, [r4, #12] - 1e04: 2b00 cmp r3, #0 - 1e06: d030 beq.n 1e6a - if(*g->obj_focus == obj) { - 1e08: 681b ldr r3, [r3, #0] - 1e0a: 4d1c ldr r5, [pc, #112] ; (1e7c ) - 1e0c: 4283 cmp r3, r0 - 1e0e: d11b bne.n 1e48 - if(g->frozen) g->frozen = 0; - 1e10: 7d23 ldrb r3, [r4, #20] - 1e12: 07da lsls r2, r3, #31 - 1e14: bf44 itt mi - 1e16: f36f 0300 bfcmi r3, #0, #1 - 1e1a: 7523 strbmi r3, [r4, #20] - if(_lv_ll_get_head(&g->obj_ll) == g->obj_focus && _lv_ll_get_tail(&g->obj_ll) == g->obj_focus) { - 1e1c: 4620 mov r0, r4 - 1e1e: 47a8 blx r5 - 1e20: 68e3 ldr r3, [r4, #12] - 1e22: 4283 cmp r3, r0 - 1e24: d122 bne.n 1e6c - 1e26: 4b16 ldr r3, [pc, #88] ; (1e80 ) - 1e28: 4620 mov r0, r4 - 1e2a: 4798 blx r3 - 1e2c: 68e3 ldr r3, [r4, #12] - 1e2e: 4298 cmp r0, r3 - 1e30: d11c bne.n 1e6c - (*g->obj_focus)->signal_cb(*g->obj_focus, LV_SIGNAL_DEFOCUS, NULL); - 1e32: 6800 ldr r0, [r0, #0] - 1e34: 2200 movs r2, #0 - 1e36: 69c3 ldr r3, [r0, #28] - 1e38: 2117 movs r1, #23 - 1e3a: 4798 blx r3 - if(*g->obj_focus == obj) { - 1e3c: 68e3 ldr r3, [r4, #12] - 1e3e: 681b ldr r3, [r3, #0] - 1e40: 42b3 cmp r3, r6 - g->obj_focus = NULL; - 1e42: bf04 itt eq - 1e44: 2300 moveq r3, #0 - 1e46: 60e3 streq r3, [r4, #12] - _LV_LL_READ(g->obj_ll, i) { - 1e48: 4620 mov r0, r4 - 1e4a: 47a8 blx r5 - 1e4c: 4f0d ldr r7, [pc, #52] ; (1e84 ) - 1e4e: 4605 mov r5, r0 - 1e50: b15d cbz r5, 1e6a - if(*i == obj) { - 1e52: 682b ldr r3, [r5, #0] - 1e54: 42b3 cmp r3, r6 - _lv_ll_remove(&g->obj_ll, i); - 1e56: 4629 mov r1, r5 - 1e58: 4620 mov r0, r4 - if(*i == obj) { - 1e5a: d10b bne.n 1e74 - _lv_ll_remove(&g->obj_ll, i); - 1e5c: 4b0a ldr r3, [pc, #40] ; (1e88 ) - 1e5e: 4798 blx r3 - lv_mem_free(i); - 1e60: 4b0a ldr r3, [pc, #40] ; (1e8c ) - 1e62: 4628 mov r0, r5 - 1e64: 4798 blx r3 - obj->group_p = NULL; - 1e66: 2300 movs r3, #0 - 1e68: 63b3 str r3, [r6, #56] ; 0x38 -} - 1e6a: bdf8 pop {r3, r4, r5, r6, r7, pc} - lv_group_refocus(g); - 1e6c: 4b08 ldr r3, [pc, #32] ; (1e90 ) - 1e6e: 4620 mov r0, r4 - 1e70: 4798 blx r3 - 1e72: e7e3 b.n 1e3c - _LV_LL_READ(g->obj_ll, i) { - 1e74: 47b8 blx r7 - 1e76: 4605 mov r5, r0 - 1e78: e7ea b.n 1e50 - 1e7a: bf00 nop - 1e7c: 0000e92d .word 0x0000e92d - 1e80: 0000e933 .word 0x0000e933 - 1e84: 0000e939 .word 0x0000e939 - 1e88: 0000e9f1 .word 0x0000e9f1 - 1e8c: 0000ed75 .word 0x0000ed75 - 1e90: 00001cf5 .word 0x00001cf5 - -00001e94 : - if(!group) return NULL; - 1e94: b110 cbz r0, 1e9c - if(group->obj_focus == NULL) return NULL; - 1e96: 68c0 ldr r0, [r0, #12] - 1e98: b100 cbz r0, 1e9c - return *group->obj_focus; - 1e9a: 6800 ldr r0, [r0, #0] -} - 1e9c: 4770 bx lr - -00001e9e : - if(!group) return false; - 1e9e: b110 cbz r0, 1ea6 - return group->editing ? true : false; - 1ea0: 7d00 ldrb r0, [r0, #20] - 1ea2: f3c0 0040 ubfx r0, r0, #1, #1 -} - 1ea6: 4770 bx lr - -00001ea8 : -void lv_indev_reset(lv_indev_t * indev, lv_obj_t * obj) - 1ea8: b5f8 push {r3, r4, r5, r6, r7, lr} - lv_indev_t * i = lv_indev_get_next(NULL); - 1eaa: 4d0c ldr r5, [pc, #48] ; (1edc ) - if(indev_act == i) indev_obj_act = NULL; - 1eac: 4e0c ldr r6, [pc, #48] ; (1ee0 ) -void lv_indev_reset(lv_indev_t * indev, lv_obj_t * obj) - 1eae: 4604 mov r4, r0 - lv_indev_t * i = lv_indev_get_next(NULL); - 1eb0: 2000 movs r0, #0 - 1eb2: 47a8 blx r5 - if(indev_act == i) indev_obj_act = NULL; - 1eb4: 2700 movs r7, #0 - while(i) { - 1eb6: b900 cbnz r0, 1eba -} - 1eb8: bdf8 pop {r3, r4, r5, r6, r7, pc} - i->proc.reset_query = 1; - 1eba: f890 3050 ldrb.w r3, [r0, #80] ; 0x50 - 1ebe: f043 0302 orr.w r3, r3, #2 - 1ec2: f880 3050 strb.w r3, [r0, #80] ; 0x50 - if(indev_act == i) indev_obj_act = NULL; - 1ec6: 6873 ldr r3, [r6, #4] - 1ec8: 4298 cmp r0, r3 - 1eca: bf08 it eq - 1ecc: 6037 streq r7, [r6, #0] - if(obj == NULL || i->proc.types.pointer.last_pressed == obj) { - 1ece: b114 cbz r4, 1ed6 - 1ed0: 6bc3 ldr r3, [r0, #60] ; 0x3c - 1ed2: 429c cmp r4, r3 - 1ed4: d100 bne.n 1ed8 - i->proc.types.pointer.last_pressed = NULL; - 1ed6: 63c7 str r7, [r0, #60] ; 0x3c - i = lv_indev_get_next(i); - 1ed8: 47a8 blx r5 - 1eda: e7ec b.n 1eb6 - 1edc: 0000dc9d .word 0x0000dc9d - 1ee0: 200030bc .word 0x200030bc - -00001ee4 <_lv_indev_init>: - if(indev) { - 1ee4: 4b01 ldr r3, [pc, #4] ; (1eec <_lv_indev_init+0x8>) - 1ee6: 2000 movs r0, #0 - 1ee8: 4718 bx r3 - 1eea: bf00 nop - 1eec: 00001ea9 .word 0x00001ea9 - -00001ef0 : -} - 1ef0: 4b01 ldr r3, [pc, #4] ; (1ef8 ) - 1ef2: 6858 ldr r0, [r3, #4] - 1ef4: 4770 bx lr - 1ef6: bf00 nop - 1ef8: 200030bc .word 0x200030bc - -00001efc : - if(indev) { - 1efc: 4603 mov r3, r0 - 1efe: b190 cbz r0, 1f26 - indev->proc.reset_query = 1; - 1f00: f890 2050 ldrb.w r2, [r0, #80] ; 0x50 - 1f04: f042 0202 orr.w r2, r2, #2 - 1f08: f880 2050 strb.w r2, [r0, #80] ; 0x50 - if(indev_act == indev) indev_obj_act = NULL; - 1f0c: 4a08 ldr r2, [pc, #32] ; (1f30 ) - 1f0e: 6850 ldr r0, [r2, #4] - 1f10: 4298 cmp r0, r3 - 1f12: bf04 itt eq - 1f14: 2000 moveq r0, #0 - 1f16: 6010 streq r0, [r2, #0] - if(obj == NULL || indev->proc.types.pointer.last_pressed == obj) { - 1f18: b111 cbz r1, 1f20 - 1f1a: 6bda ldr r2, [r3, #60] ; 0x3c - 1f1c: 428a cmp r2, r1 - 1f1e: d105 bne.n 1f2c - indev->proc.types.pointer.last_pressed = NULL; - 1f20: 2200 movs r2, #0 - 1f22: 63da str r2, [r3, #60] ; 0x3c - 1f24: 4770 bx lr - 1f26: 4b03 ldr r3, [pc, #12] ; (1f34 ) - 1f28: 4608 mov r0, r1 - 1f2a: 4718 bx r3 -} - 1f2c: 4770 bx lr - 1f2e: bf00 nop - 1f30: 200030bc .word 0x200030bc - 1f34: 00001ea9 .word 0x00001ea9 - -00001f38 : -} - 1f38: 4b01 ldr r3, [pc, #4] ; (1f40 ) - 1f3a: 6818 ldr r0, [r3, #0] - 1f3c: 4770 bx lr - 1f3e: bf00 nop - 1f40: 200030bc .word 0x200030bc - -00001f44 : - * @param obj pointer to an object which children will be repositioned - * @param x_diff x coordinate shift - * @param y_diff y coordinate shift - */ -static void refresh_children_position(lv_obj_t * obj, lv_coord_t x_diff, lv_coord_t y_diff) -{ - 1f44: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} - lv_obj_t * i; - _LV_LL_READ(obj->child_ll, i) { - 1f48: 1d05 adds r5, r0, #4 - 1f4a: 4b12 ldr r3, [pc, #72] ; (1f94 ) - 1f4c: f8df 9048 ldr.w r9, [pc, #72] ; 1f98 - 1f50: 4628 mov r0, r5 -{ - 1f52: 460e mov r6, r1 - 1f54: 4617 mov r7, r2 - _LV_LL_READ(obj->child_ll, i) { - 1f56: 4798 blx r3 - i->coords.x1 += x_diff; - 1f58: fa1f f886 uxth.w r8, r6 - _LV_LL_READ(obj->child_ll, i) { - 1f5c: 4604 mov r4, r0 - i->coords.y1 += y_diff; - 1f5e: fa1f fa87 uxth.w sl, r7 - _LV_LL_READ(obj->child_ll, i) { - 1f62: b90c cbnz r4, 1f68 - i->coords.x2 += x_diff; - i->coords.y2 += y_diff; - - refresh_children_position(i, x_diff, y_diff); - } -} - 1f64: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} - i->coords.x1 += x_diff; - 1f68: 8a23 ldrh r3, [r4, #16] - 1f6a: 4443 add r3, r8 - 1f6c: 8223 strh r3, [r4, #16] - i->coords.y1 += y_diff; - 1f6e: 8a63 ldrh r3, [r4, #18] - 1f70: 4453 add r3, sl - 1f72: 8263 strh r3, [r4, #18] - i->coords.x2 += x_diff; - 1f74: 8aa3 ldrh r3, [r4, #20] - 1f76: 4443 add r3, r8 - 1f78: 82a3 strh r3, [r4, #20] - i->coords.y2 += y_diff; - 1f7a: 8ae3 ldrh r3, [r4, #22] - 1f7c: 4453 add r3, sl - 1f7e: 82e3 strh r3, [r4, #22] - refresh_children_position(i, x_diff, y_diff); - 1f80: 4620 mov r0, r4 - 1f82: 463a mov r2, r7 - 1f84: 4631 mov r1, r6 - 1f86: f7ff ffdd bl 1f44 - _LV_LL_READ(obj->child_ll, i) { - 1f8a: 4621 mov r1, r4 - 1f8c: 4628 mov r0, r5 - 1f8e: 47c8 blx r9 - 1f90: 4604 mov r4, r0 - 1f92: e7e6 b.n 1f62 - 1f94: 0000e92d .word 0x0000e92d - 1f98: 0000e939 .word 0x0000e939 - -00001f9c : -LV_ATTRIBUTE_FAST_MEM static inline void * _lv_memcpy_small(void * dst, const void * src, size_t len) -{ - uint8_t * d8 = (uint8_t *)dst; - const uint8_t * s8 = (const uint8_t *)src; - - while(len) { - 1f9c: 3901 subs r1, #1 - 1f9e: f100 0308 add.w r3, r0, #8 - *d8 = *s8; - 1fa2: f811 2f01 ldrb.w r2, [r1, #1]! - 1fa6: f800 2b01 strb.w r2, [r0], #1 - while(len) { - 1faa: 4298 cmp r0, r3 - 1fac: d1f9 bne.n 1fa2 - * @param src pointer to the source area - */ -inline static void lv_area_copy(lv_area_t * dest, const lv_area_t * src) -{ - _lv_memcpy_small(dest, src, sizeof(lv_area_t)); -} - 1fae: 4770 bx lr - -00001fb0 : -{ - 1fb0: b5f0 push {r4, r5, r6, r7, lr} - if(lv_initialized) { - 1fb2: 4e20 ldr r6, [pc, #128] ; (2034 ) - 1fb4: 4d20 ldr r5, [pc, #128] ; (2038 ) - 1fb6: 7833 ldrb r3, [r6, #0] -{ - 1fb8: b085 sub sp, #20 - if(lv_initialized) { - 1fba: b143 cbz r3, 1fce - LV_LOG_WARN("lv_init: already inited"); - 1fbc: 4b1f ldr r3, [pc, #124] ; (203c ) - 1fbe: 9300 str r3, [sp, #0] - 1fc0: 491f ldr r1, [pc, #124] ; (2040 ) - 1fc2: 4b20 ldr r3, [pc, #128] ; (2044 ) - 1fc4: 2278 movs r2, #120 ; 0x78 - 1fc6: 2002 movs r0, #2 - LV_LOG_INFO("lv_init ready"); - 1fc8: 47a8 blx r5 -} - 1fca: b005 add sp, #20 - 1fcc: bdf0 pop {r4, r5, r6, r7, pc} - _lv_mem_init(); - 1fce: 4b1e ldr r3, [pc, #120] ; (2048 ) - _lv_ll_init(&LV_GC_ROOT(_lv_obj_style_trans_ll), sizeof(lv_style_trans_t)); - 1fd0: 4c1e ldr r4, [pc, #120] ; (204c ) - lv_theme_t * th = LV_THEME_DEFAULT_INIT(LV_THEME_DEFAULT_COLOR_PRIMARY, LV_THEME_DEFAULT_COLOR_SECONDARY, - 1fd2: 4f1f ldr r7, [pc, #124] ; (2050 ) - _lv_mem_init(); - 1fd4: 4798 blx r3 - _lv_task_core_init(); - 1fd6: 4b1f ldr r3, [pc, #124] ; (2054 ) - 1fd8: 4798 blx r3 - _lv_fs_init(); - 1fda: 4b1f ldr r3, [pc, #124] ; (2058 ) - 1fdc: 4798 blx r3 - _lv_anim_core_init(); - 1fde: 4b1f ldr r3, [pc, #124] ; (205c ) - 1fe0: 4798 blx r3 - _lv_group_init(); - 1fe2: 4b1f ldr r3, [pc, #124] ; (2060 ) - 1fe4: 4798 blx r3 - _lv_ll_init(&LV_GC_ROOT(_lv_obj_style_trans_ll), sizeof(lv_style_trans_t)); - 1fe6: 481f ldr r0, [pc, #124] ; (2064 ) - 1fe8: 2110 movs r1, #16 - 1fea: 47a0 blx r4 - lv_theme_t * th = LV_THEME_DEFAULT_INIT(LV_THEME_DEFAULT_COLOR_PRIMARY, LV_THEME_DEFAULT_COLOR_SECONDARY, - 1fec: 4b1e ldr r3, [pc, #120] ; (2068 ) - 1fee: 9300 str r3, [sp, #0] - 1ff0: 2202 movs r2, #2 - 1ff2: f04f 011f mov.w r1, #31 - 1ff6: e9cd 3301 strd r3, r3, [sp, #4] - 1ffa: f64f 0000 movw r0, #63488 ; 0xf800 - 1ffe: 47b8 blx r7 - lv_theme_set_act(th); - 2000: 4b1a ldr r3, [pc, #104] ; (206c ) - 2002: 4798 blx r3 - _lv_refr_init(); - 2004: 4b1a ldr r3, [pc, #104] ; (2070 ) - 2006: 4798 blx r3 - _lv_ll_init(&LV_GC_ROOT(_lv_disp_ll), sizeof(lv_disp_t)); - 2008: 481a ldr r0, [pc, #104] ; (2074 ) - 200a: f44f 71b8 mov.w r1, #368 ; 0x170 - 200e: 47a0 blx r4 - _lv_ll_init(&LV_GC_ROOT(_lv_indev_ll), sizeof(lv_indev_t)); - 2010: 2160 movs r1, #96 ; 0x60 - 2012: 4819 ldr r0, [pc, #100] ; (2078 ) - 2014: 47a0 blx r4 - _lv_indev_init(); - 2016: 4b19 ldr r3, [pc, #100] ; (207c ) - 2018: 4798 blx r3 - _lv_img_decoder_init(); - 201a: 4b19 ldr r3, [pc, #100] ; (2080 ) - 201c: 4798 blx r3 - lv_img_cache_set_size(LV_IMG_CACHE_DEF_SIZE); - 201e: 4b19 ldr r3, [pc, #100] ; (2084 ) - 2020: 2001 movs r0, #1 - 2022: 4798 blx r3 - LV_LOG_INFO("lv_init ready"); - 2024: 4b18 ldr r3, [pc, #96] ; (2088 ) - 2026: 9300 str r3, [sp, #0] - lv_initialized = true; - 2028: 2001 movs r0, #1 - LV_LOG_INFO("lv_init ready"); - 202a: 4b06 ldr r3, [pc, #24] ; (2044 ) - 202c: 4904 ldr r1, [pc, #16] ; (2040 ) - lv_initialized = true; - 202e: 7030 strb r0, [r6, #0] - LV_LOG_INFO("lv_init ready"); - 2030: 22a2 movs r2, #162 ; 0xa2 - 2032: e7c9 b.n 1fc8 - 2034: 200030c4 .word 0x200030c4 - 2038: 0000eb79 .word 0x0000eb79 - 203c: 0002690e .word 0x0002690e - 2040: 000268df .word 0x000268df - 2044: 00026ae6 .word 0x00026ae6 - 2048: 0000eca5 .word 0x0000eca5 - 204c: 0000e889 .word 0x0000e889 - 2050: 00012799 .word 0x00012799 - 2054: 0000fac1 .word 0x0000fac1 - 2058: 0000e65d .word 0x0000e65d - 205c: 0000deb5 .word 0x0000deb5 - 2060: 00001cbd .word 0x00001cbd - 2064: 20003630 .word 0x20003630 - 2068: 20000004 .word 0x20000004 - 206c: 0001055d .word 0x0001055d - 2070: 0000518d .word 0x0000518d - 2074: 200035dc .word 0x200035dc - 2078: 200035e8 .word 0x200035e8 - 207c: 00001ee5 .word 0x00001ee5 - 2080: 0000d359 .word 0x0000d359 - 2084: 0000c92d .word 0x0000c92d - 2088: 00026926 .word 0x00026926 - -0000208c : -{ - 208c: b573 push {r0, r1, r4, r5, r6, lr} - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 208e: 4b0e ldr r3, [pc, #56] ; (20c8 ) -{ - 2090: 4604 mov r4, r0 - 2092: 460e mov r6, r1 - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 2094: 4798 blx r3 - 2096: 4605 mov r5, r0 - 2098: b968 cbnz r0, 20b6 - 209a: 4b0c ldr r3, [pc, #48] ; (20cc ) - 209c: 490c ldr r1, [pc, #48] ; (20d0 ) - 209e: 9300 str r3, [sp, #0] - 20a0: f240 5294 movw r2, #1428 ; 0x594 - 20a4: 2003 movs r0, #3 - 20a6: 4e0b ldr r6, [pc, #44] ; (20d4 ) - 20a8: 47b0 blx r6 - 20aa: 480b ldr r0, [pc, #44] ; (20d8 ) - 20ac: 490b ldr r1, [pc, #44] ; (20dc ) - 20ae: 4622 mov r2, r4 - 20b0: 462b mov r3, r5 - 20b2: 4788 blx r1 - 20b4: e7fe b.n 20b4 - obj->adv_hittest = en == false ? 0 : 1; - 20b6: f894 3034 ldrb.w r3, [r4, #52] ; 0x34 - 20ba: f366 13c7 bfi r3, r6, #7, #1 - 20be: f884 3034 strb.w r3, [r4, #52] ; 0x34 -} - 20c2: b002 add sp, #8 - 20c4: bd70 pop {r4, r5, r6, pc} - 20c6: bf00 nop - 20c8: 00001a65 .word 0x00001a65 - 20cc: 00026b3b .word 0x00026b3b - 20d0: 000268df .word 0x000268df - 20d4: 0000eb79 .word 0x0000eb79 - 20d8: 00026943 .word 0x00026943 - 20dc: 00001a6d .word 0x00001a6d - -000020e0 : -{ - 20e0: b573 push {r0, r1, r4, r5, r6, lr} - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 20e2: 4b0e ldr r3, [pc, #56] ; (211c ) -{ - 20e4: 4604 mov r4, r0 - 20e6: 460e mov r6, r1 - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 20e8: 4798 blx r3 - 20ea: 4605 mov r5, r0 - 20ec: b968 cbnz r0, 210a - 20ee: 4b0c ldr r3, [pc, #48] ; (2120 ) - 20f0: 490c ldr r1, [pc, #48] ; (2124 ) - 20f2: 9300 str r3, [sp, #0] - 20f4: f44f 62b4 mov.w r2, #1440 ; 0x5a0 - 20f8: 2003 movs r0, #3 - 20fa: 4e0b ldr r6, [pc, #44] ; (2128 ) - 20fc: 47b0 blx r6 - 20fe: 480b ldr r0, [pc, #44] ; (212c ) - 2100: 490b ldr r1, [pc, #44] ; (2130 ) - 2102: 4622 mov r2, r4 - 2104: 462b mov r3, r5 - 2106: 4788 blx r1 - 2108: e7fe b.n 2108 - obj->click = (en == true ? 1 : 0); - 210a: f894 3034 ldrb.w r3, [r4, #52] ; 0x34 - 210e: f366 0300 bfi r3, r6, #0, #1 - 2112: f884 3034 strb.w r3, [r4, #52] ; 0x34 -} - 2116: b002 add sp, #8 - 2118: bd70 pop {r4, r5, r6, pc} - 211a: bf00 nop - 211c: 00001a65 .word 0x00001a65 - 2120: 00026b52 .word 0x00026b52 - 2124: 000268df .word 0x000268df - 2128: 0000eb79 .word 0x0000eb79 - 212c: 00026943 .word 0x00026943 - 2130: 00001a6d .word 0x00001a6d - -00002134 : -{ - 2134: e92d 43f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} - 2138: 4680 mov r8, r0 - 213a: b087 sub sp, #28 - 213c: 4616 mov r6, r2 - 213e: 461f mov r7, r3 - if(obj != NULL) { - 2140: 460c mov r4, r1 - 2142: b191 cbz r1, 216a - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 2144: 4b24 ldr r3, [pc, #144] ; (21d8 ) - 2146: 4608 mov r0, r1 - 2148: 4798 blx r3 - 214a: 4605 mov r5, r0 - 214c: b968 cbnz r0, 216a - 214e: 4b23 ldr r3, [pc, #140] ; (21dc ) - 2150: 4923 ldr r1, [pc, #140] ; (21e0 ) - 2152: 9300 str r3, [sp, #0] - 2154: f44f 62db mov.w r2, #1752 ; 0x6d8 - 2158: 2003 movs r0, #3 - 215a: 4e22 ldr r6, [pc, #136] ; (21e4 ) - 215c: 47b0 blx r6 - 215e: 4822 ldr r0, [pc, #136] ; (21e8 ) - 2160: 4922 ldr r1, [pc, #136] ; (21ec ) - 2162: 4622 mov r2, r4 - 2164: 462b mov r3, r5 - 2166: 4788 blx r1 - 2168: e7fe b.n 2168 - if(event_temp_data_head) { - 216a: 4d21 ldr r5, [pc, #132] ; (21f0 ) - event_temp_data.obj = obj; - 216c: 9403 str r4, [sp, #12] - event_temp_data.deleted = false; - 216e: 2300 movs r3, #0 - 2170: f88d 3010 strb.w r3, [sp, #16] - if(event_temp_data_head) { - 2174: 686b ldr r3, [r5, #4] - 2176: 9305 str r3, [sp, #20] - event_temp_data_head = &event_temp_data; - 2178: ab03 add r3, sp, #12 - 217a: 606b str r3, [r5, #4] - lv_indev_t * indev_act = lv_indev_get_act(); - 217c: 4b1d ldr r3, [pc, #116] ; (21f4 ) - const void * event_act_data_save = event_act_data; - 217e: f8d5 9008 ldr.w r9, [r5, #8] - event_act_data = data; - 2182: 60af str r7, [r5, #8] - lv_indev_t * indev_act = lv_indev_get_act(); - 2184: 4798 blx r3 - if(indev_act) { - 2186: b118 cbz r0, 2190 - if(indev_act->driver.feedback_cb) indev_act->driver.feedback_cb(&indev_act->driver, event); - 2188: 6883 ldr r3, [r0, #8] - 218a: b10b cbz r3, 2190 - 218c: 4631 mov r1, r6 - 218e: 4798 blx r3 - if(event_xcb) event_xcb(obj, event); - 2190: f1b8 0f00 cmp.w r8, #0 - 2194: d002 beq.n 219c - 2196: 4631 mov r1, r6 - 2198: 4620 mov r0, r4 - 219a: 47c0 blx r8 - event_temp_data_head = event_temp_data_head->prev; - 219c: 686b ldr r3, [r5, #4] - event_act_data = event_act_data_save; - 219e: f8c5 9008 str.w r9, [r5, #8] - event_temp_data_head = event_temp_data_head->prev; - 21a2: 689b ldr r3, [r3, #8] - 21a4: 606b str r3, [r5, #4] - if(event_temp_data.deleted) { - 21a6: f89d 3010 ldrb.w r3, [sp, #16] - 21aa: b983 cbnz r3, 21ce - if(obj) { - 21ac: b18c cbz r4, 21d2 - if(obj->parent_event && obj->parent) { - 21ae: f894 3034 ldrb.w r3, [r4, #52] ; 0x34 - 21b2: 065a lsls r2, r3, #25 - 21b4: d50d bpl.n 21d2 - 21b6: 6820 ldr r0, [r4, #0] - 21b8: b158 cbz r0, 21d2 - lv_res_t res = lv_event_send(obj->parent, event, data); - 21ba: 4b0f ldr r3, [pc, #60] ; (21f8 ) - 21bc: 463a mov r2, r7 - 21be: 4631 mov r1, r6 - 21c0: 4798 blx r3 - return LV_RES_INV; - 21c2: 1e43 subs r3, r0, #1 - 21c4: 4258 negs r0, r3 - 21c6: 4158 adcs r0, r3 -} - 21c8: b007 add sp, #28 - 21ca: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} - return LV_RES_INV; - 21ce: 2000 movs r0, #0 - 21d0: e7fa b.n 21c8 - return LV_RES_OK; - 21d2: 2001 movs r0, #1 - 21d4: e7f8 b.n 21c8 - 21d6: bf00 nop - 21d8: 00001a65 .word 0x00001a65 - 21dc: 00026c17 .word 0x00026c17 - 21e0: 000268df .word 0x000268df - 21e4: 0000eb79 .word 0x0000eb79 - 21e8: 00026943 .word 0x00026943 - 21ec: 00001a6d .word 0x00001a6d - 21f0: 200030c4 .word 0x200030c4 - 21f4: 00001ef1 .word 0x00001ef1 - 21f8: 000021fd .word 0x000021fd - -000021fc : -{ - 21fc: b57f push {r0, r1, r2, r3, r4, r5, r6, lr} - 21fe: 460e mov r6, r1 - 2200: 9203 str r2, [sp, #12] - if(obj == NULL) return LV_RES_OK; - 2202: 4604 mov r4, r0 - 2204: b1d8 cbz r0, 223e - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 2206: 4a0f ldr r2, [pc, #60] ; (2244 ) - 2208: 4790 blx r2 - 220a: 9b03 ldr r3, [sp, #12] - 220c: 4605 mov r5, r0 - 220e: b968 cbnz r0, 222c - 2210: 4b0d ldr r3, [pc, #52] ; (2248 ) - 2212: 490e ldr r1, [pc, #56] ; (224c ) - 2214: 9300 str r3, [sp, #0] - 2216: f240 62c4 movw r2, #1732 ; 0x6c4 - 221a: 2003 movs r0, #3 - 221c: 4e0c ldr r6, [pc, #48] ; (2250 ) - 221e: 47b0 blx r6 - 2220: 480c ldr r0, [pc, #48] ; (2254 ) - 2222: 490d ldr r1, [pc, #52] ; (2258 ) - 2224: 4622 mov r2, r4 - 2226: 462b mov r3, r5 - 2228: 4788 blx r1 - 222a: e7fe b.n 222a - res = lv_event_send_func(obj->event_cb, obj, event, data); - 222c: 69a0 ldr r0, [r4, #24] - 222e: 4621 mov r1, r4 - 2230: 4c0a ldr r4, [pc, #40] ; (225c ) - 2232: 4632 mov r2, r6 - 2234: 46a4 mov ip, r4 -} - 2236: b004 add sp, #16 - 2238: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr} - res = lv_event_send_func(obj->event_cb, obj, event, data); - 223c: 4760 bx ip -} - 223e: 2001 movs r0, #1 - 2240: b004 add sp, #16 - 2242: bd70 pop {r4, r5, r6, pc} - 2244: 00001a65 .word 0x00001a65 - 2248: 00026c2a .word 0x00026c2a - 224c: 000268df .word 0x000268df - 2250: 0000eb79 .word 0x0000eb79 - 2254: 00026943 .word 0x00026943 - 2258: 00001a6d .word 0x00001a6d - 225c: 00002135 .word 0x00002135 - -00002260 : -{ - 2260: b573 push {r0, r1, r4, r5, r6, lr} - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 2262: 4b0b ldr r3, [pc, #44] ; (2290 ) -{ - 2264: 4604 mov r4, r0 - 2266: 460e mov r6, r1 - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 2268: 4798 blx r3 - 226a: 4605 mov r5, r0 - 226c: b968 cbnz r0, 228a - 226e: 4b09 ldr r3, [pc, #36] ; (2294 ) - 2270: 4909 ldr r1, [pc, #36] ; (2298 ) - 2272: 9300 str r3, [sp, #0] - 2274: f240 721b movw r2, #1819 ; 0x71b - 2278: 2003 movs r0, #3 - 227a: 4e08 ldr r6, [pc, #32] ; (229c ) - 227c: 47b0 blx r6 - 227e: 4808 ldr r0, [pc, #32] ; (22a0 ) - 2280: 4908 ldr r1, [pc, #32] ; (22a4 ) - 2282: 4622 mov r2, r4 - 2284: 462b mov r3, r5 - 2286: 4788 blx r1 - 2288: e7fe b.n 2288 - obj->signal_cb = signal_cb; - 228a: 61e6 str r6, [r4, #28] -} - 228c: b002 add sp, #8 - 228e: bd70 pop {r4, r5, r6, pc} - 2290: 00001a65 .word 0x00001a65 - 2294: 00026c38 .word 0x00026c38 - 2298: 000268df .word 0x000268df - 229c: 0000eb79 .word 0x0000eb79 - 22a0: 00026943 .word 0x00026943 - 22a4: 00001a6d .word 0x00001a6d - -000022a8 : - if(obj == NULL) return LV_RES_OK; - 22a8: b110 cbz r0, 22b0 - if(obj->signal_cb) res = obj->signal_cb(obj, signal, param); - 22aa: 69c3 ldr r3, [r0, #28] - 22ac: b103 cbz r3, 22b0 - 22ae: 4718 bx r3 -} - 22b0: 2001 movs r0, #1 - 22b2: 4770 bx lr - -000022b4 : -{ - 22b4: b573 push {r0, r1, r4, r5, r6, lr} - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 22b6: 4b0b ldr r3, [pc, #44] ; (22e4 ) -{ - 22b8: 4604 mov r4, r0 - 22ba: 460e mov r6, r1 - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 22bc: 4798 blx r3 - 22be: 4605 mov r5, r0 - 22c0: b968 cbnz r0, 22de - 22c2: 4b09 ldr r3, [pc, #36] ; (22e8 ) - 22c4: 4909 ldr r1, [pc, #36] ; (22ec ) - 22c6: 9300 str r3, [sp, #0] - 22c8: f240 7237 movw r2, #1847 ; 0x737 - 22cc: 2003 movs r0, #3 - 22ce: 4e08 ldr r6, [pc, #32] ; (22f0 ) - 22d0: 47b0 blx r6 - 22d2: 4808 ldr r0, [pc, #32] ; (22f4 ) - 22d4: 4908 ldr r1, [pc, #32] ; (22f8 ) - 22d6: 4622 mov r2, r4 - 22d8: 462b mov r3, r5 - 22da: 4788 blx r1 - 22dc: e7fe b.n 22dc - obj->design_cb = design_cb; - 22de: 6226 str r6, [r4, #32] -} - 22e0: b002 add sp, #8 - 22e2: bd70 pop {r4, r5, r6, pc} - 22e4: 00001a65 .word 0x00001a65 - 22e8: 00026c4d .word 0x00026c4d - 22ec: 000268df .word 0x000268df - 22f0: 0000eb79 .word 0x0000eb79 - 22f4: 00026943 .word 0x00026943 - 22f8: 00001a6d .word 0x00001a6d - -000022fc : -{ - 22fc: b57f push {r0, r1, r2, r3, r4, r5, r6, lr} - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 22fe: 4b0e ldr r3, [pc, #56] ; (2338 ) -{ - 2300: 9103 str r1, [sp, #12] - 2302: 4604 mov r4, r0 - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 2304: 4798 blx r3 - 2306: 9903 ldr r1, [sp, #12] - 2308: 4605 mov r5, r0 - 230a: b968 cbnz r0, 2328 - 230c: 4b0b ldr r3, [pc, #44] ; (233c ) - 230e: 490c ldr r1, [pc, #48] ; (2340 ) - 2310: 9300 str r3, [sp, #0] - 2312: f240 7249 movw r2, #1865 ; 0x749 - 2316: 2003 movs r0, #3 - 2318: 4e0a ldr r6, [pc, #40] ; (2344 ) - 231a: 47b0 blx r6 - 231c: 480a ldr r0, [pc, #40] ; (2348 ) - 231e: 490b ldr r1, [pc, #44] ; (234c ) - 2320: 4622 mov r2, r4 - 2322: 462b mov r3, r5 - 2324: 4788 blx r1 - 2326: e7fe b.n 2326 - void * new_ext = lv_mem_realloc(obj->ext_attr, ext_size); - 2328: 6a60 ldr r0, [r4, #36] ; 0x24 - 232a: 4b09 ldr r3, [pc, #36] ; (2350 ) - 232c: 4798 blx r3 - if(new_ext == NULL) return NULL; - 232e: b100 cbz r0, 2332 - obj->ext_attr = new_ext; - 2330: 6260 str r0, [r4, #36] ; 0x24 -} - 2332: b004 add sp, #16 - 2334: bd70 pop {r4, r5, r6, pc} - 2336: bf00 nop - 2338: 00001a65 .word 0x00001a65 - 233c: 00026c62 .word 0x00026c62 - 2340: 000268df .word 0x000268df - 2344: 0000eb79 .word 0x0000eb79 - 2348: 00026943 .word 0x00026943 - 234c: 00001a6d .word 0x00001a6d - 2350: 0000f0a5 .word 0x0000f0a5 - -00002354 : -{ - 2354: b573 push {r0, r1, r4, r5, r6, lr} - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 2356: 4b0e ldr r3, [pc, #56] ; (2390 ) -{ - 2358: 4604 mov r4, r0 - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 235a: 4798 blx r3 - 235c: 4605 mov r5, r0 - 235e: b968 cbnz r0, 237c - 2360: 4b0c ldr r3, [pc, #48] ; (2394 ) - 2362: 490d ldr r1, [pc, #52] ; (2398 ) - 2364: 9300 str r3, [sp, #0] - 2366: f240 7259 movw r2, #1881 ; 0x759 - 236a: 2003 movs r0, #3 - 236c: 4e0b ldr r6, [pc, #44] ; (239c ) - 236e: 47b0 blx r6 - 2370: 480b ldr r0, [pc, #44] ; (23a0 ) - 2372: 490c ldr r1, [pc, #48] ; (23a4 ) - 2374: 4622 mov r2, r4 - 2376: 462b mov r3, r5 - 2378: 4788 blx r1 - 237a: e7fe b.n 237a - obj->signal_cb(obj, LV_SIGNAL_REFR_EXT_DRAW_PAD, NULL); - 237c: 69e3 ldr r3, [r4, #28] - obj->ext_draw_pad = 0; - 237e: 2200 movs r2, #0 - obj->signal_cb(obj, LV_SIGNAL_REFR_EXT_DRAW_PAD, NULL); - 2380: 2106 movs r1, #6 - 2382: 4620 mov r0, r4 - obj->ext_draw_pad = 0; - 2384: 8662 strh r2, [r4, #50] ; 0x32 -} - 2386: b002 add sp, #8 - 2388: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr} - obj->signal_cb(obj, LV_SIGNAL_REFR_EXT_DRAW_PAD, NULL); - 238c: 4718 bx r3 - 238e: bf00 nop - 2390: 00001a65 .word 0x00001a65 - 2394: 00026c7b .word 0x00026c7b - 2398: 000268df .word 0x000268df - 239c: 0000eb79 .word 0x0000eb79 - 23a0: 00026943 .word 0x00026943 - 23a4: 00001a6d .word 0x00001a6d - -000023a8 : -{ - 23a8: b573 push {r0, r1, r4, r5, r6, lr} - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 23aa: 4b0b ldr r3, [pc, #44] ; (23d8 ) -{ - 23ac: 4604 mov r4, r0 - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 23ae: 4798 blx r3 - 23b0: 4605 mov r5, r0 - 23b2: b968 cbnz r0, 23d0 - 23b4: 4b09 ldr r3, [pc, #36] ; (23dc ) - 23b6: 490a ldr r1, [pc, #40] ; (23e0 ) - 23b8: 9300 str r3, [sp, #0] - 23ba: f240 729f movw r2, #1951 ; 0x79f - 23be: 2003 movs r0, #3 - 23c0: 4e08 ldr r6, [pc, #32] ; (23e4 ) - 23c2: 47b0 blx r6 - 23c4: 4808 ldr r0, [pc, #32] ; (23e8 ) - 23c6: 4909 ldr r1, [pc, #36] ; (23ec ) - 23c8: 4622 mov r2, r4 - 23ca: 462b mov r3, r5 - 23cc: 4788 blx r1 - 23ce: e7fe b.n 23ce -} - 23d0: 6820 ldr r0, [r4, #0] - 23d2: b002 add sp, #8 - 23d4: bd70 pop {r4, r5, r6, pc} - 23d6: bf00 nop - 23d8: 00001a65 .word 0x00001a65 - 23dc: 00026c97 .word 0x00026c97 - 23e0: 000268df .word 0x000268df - 23e4: 0000eb79 .word 0x0000eb79 - 23e8: 00026943 .word 0x00026943 - 23ec: 00001a6d .word 0x00001a6d - -000023f0 : -{ - 23f0: b573 push {r0, r1, r4, r5, r6, lr} - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 23f2: 4b0e ldr r3, [pc, #56] ; (242c ) -{ - 23f4: 4604 mov r4, r0 - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 23f6: 4798 blx r3 - 23f8: 4605 mov r5, r0 - 23fa: b148 cbz r0, 2410 - par = lv_obj_get_parent(act_p); - 23fc: 4e0c ldr r6, [pc, #48] ; (2430 ) - 23fe: 4620 mov r0, r4 - 2400: 47b0 blx r6 - } while(par != NULL); - 2402: 4625 mov r5, r4 - 2404: 4604 mov r4, r0 - 2406: 2800 cmp r0, #0 - 2408: d1f9 bne.n 23fe -} - 240a: 4628 mov r0, r5 - 240c: b002 add sp, #8 - 240e: bd70 pop {r4, r5, r6, pc} - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 2410: 4b08 ldr r3, [pc, #32] ; (2434 ) - 2412: 4909 ldr r1, [pc, #36] ; (2438 ) - 2414: 9300 str r3, [sp, #0] - 2416: f240 726b movw r2, #1899 ; 0x76b - 241a: 2003 movs r0, #3 - 241c: 4e07 ldr r6, [pc, #28] ; (243c ) - 241e: 47b0 blx r6 - 2420: 4807 ldr r0, [pc, #28] ; (2440 ) - 2422: 4908 ldr r1, [pc, #32] ; (2444 ) - 2424: 4622 mov r2, r4 - 2426: 462b mov r3, r5 - 2428: 4788 blx r1 - 242a: e7fe b.n 242a - 242c: 00001a65 .word 0x00001a65 - 2430: 000023a9 .word 0x000023a9 - 2434: 00026ca9 .word 0x00026ca9 - 2438: 000268df .word 0x000268df - 243c: 0000eb79 .word 0x0000eb79 - 2440: 00026943 .word 0x00026943 - 2444: 00001a6d .word 0x00001a6d - -00002448 : -{ - 2448: e92d 43f7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, lr} - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 244c: 4b1e ldr r3, [pc, #120] ; (24c8 ) -{ - 244e: 4605 mov r5, r0 - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 2450: 4798 blx r3 - 2452: 4604 mov r4, r0 - 2454: b968 cbnz r0, 2472 - 2456: 4b1d ldr r3, [pc, #116] ; (24cc ) - 2458: 491d ldr r1, [pc, #116] ; (24d0 ) - 245a: 9300 str r3, [sp, #0] - 245c: f240 727f movw r2, #1919 ; 0x77f - 2460: 2003 movs r0, #3 - 2462: 4e1c ldr r6, [pc, #112] ; (24d4 ) - 2464: 47b0 blx r6 - 2466: 481c ldr r0, [pc, #112] ; (24d8 ) - 2468: 491c ldr r1, [pc, #112] ; (24dc ) - 246a: 462a mov r2, r5 - 246c: 4623 mov r3, r4 - 246e: 4788 blx r1 - 2470: e7fe b.n 2470 - if(obj->parent == NULL) - 2472: 682b ldr r3, [r5, #0] - 2474: b11b cbz r3, 247e - scr = lv_obj_get_screen(obj); /*get the screen of `obj`*/ - 2476: 4628 mov r0, r5 - 2478: 4b19 ldr r3, [pc, #100] ; (24e0 ) - 247a: 4798 blx r3 - 247c: 4605 mov r5, r0 - _LV_LL_READ(LV_GC_ROOT(_lv_disp_ll), d) { - 247e: 4819 ldr r0, [pc, #100] ; (24e4 ) - 2480: 4e19 ldr r6, [pc, #100] ; (24e8 ) - _LV_LL_READ(d->scr_ll, s) { - 2482: 4f1a ldr r7, [pc, #104] ; (24ec ) - _LV_LL_READ(LV_GC_ROOT(_lv_disp_ll), d) { - 2484: f8df 805c ldr.w r8, [pc, #92] ; 24e4 - 2488: 47b0 blx r6 - 248a: 4604 mov r4, r0 - 248c: b964 cbnz r4, 24a8 - LV_LOG_WARN("lv_scr_get_disp: screen not found") - 248e: 4b18 ldr r3, [pc, #96] ; (24f0 ) - 2490: 9300 str r3, [sp, #0] - 2492: 490f ldr r1, [pc, #60] ; (24d0 ) - 2494: 4b0d ldr r3, [pc, #52] ; (24cc ) - 2496: 4d0f ldr r5, [pc, #60] ; (24d4 ) - 2498: f44f 62f2 mov.w r2, #1936 ; 0x790 - 249c: 2002 movs r0, #2 - 249e: 47a8 blx r5 -} - 24a0: 4620 mov r0, r4 - 24a2: b003 add sp, #12 - 24a4: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} - _LV_LL_READ(d->scr_ll, s) { - 24a8: f104 0930 add.w r9, r4, #48 ; 0x30 - 24ac: 4648 mov r0, r9 - 24ae: 47b0 blx r6 - 24b0: b920 cbnz r0, 24bc - _LV_LL_READ(LV_GC_ROOT(_lv_disp_ll), d) { - 24b2: 4621 mov r1, r4 - 24b4: 4640 mov r0, r8 - 24b6: 47b8 blx r7 - 24b8: 4604 mov r4, r0 - 24ba: e7e7 b.n 248c - if(s == scr) return d; - 24bc: 4285 cmp r5, r0 - 24be: d0ef beq.n 24a0 - _LV_LL_READ(d->scr_ll, s) { - 24c0: 4601 mov r1, r0 - 24c2: 4648 mov r0, r9 - 24c4: 47b8 blx r7 - 24c6: e7f3 b.n 24b0 - 24c8: 00001a65 .word 0x00001a65 - 24cc: 00026cbb .word 0x00026cbb - 24d0: 000268df .word 0x000268df - 24d4: 0000eb79 .word 0x0000eb79 - 24d8: 00026943 .word 0x00026943 - 24dc: 00001a6d .word 0x00001a6d - 24e0: 000023f1 .word 0x000023f1 - 24e4: 200035dc .word 0x200035dc - 24e8: 0000e92d .word 0x0000e92d - 24ec: 0000e939 .word 0x0000e939 - 24f0: 00026950 .word 0x00026950 - -000024f4 : -{ - 24f4: b573 push {r0, r1, r4, r5, r6, lr} - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 24f6: 4b10 ldr r3, [pc, #64] ; (2538 ) -{ - 24f8: 4604 mov r4, r0 - 24fa: 460d mov r5, r1 - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 24fc: 4798 blx r3 - 24fe: 4606 mov r6, r0 - 2500: b968 cbnz r0, 251e - 2502: 4b0e ldr r3, [pc, #56] ; (253c ) - 2504: 490e ldr r1, [pc, #56] ; (2540 ) - 2506: 9300 str r3, [sp, #0] - 2508: f240 72ad movw r2, #1965 ; 0x7ad - 250c: 2003 movs r0, #3 - 250e: 4d0d ldr r5, [pc, #52] ; (2544 ) - 2510: 47a8 blx r5 - 2512: 480d ldr r0, [pc, #52] ; (2548 ) - 2514: 490d ldr r1, [pc, #52] ; (254c ) - 2516: 4622 mov r2, r4 - 2518: 4633 mov r3, r6 - 251a: 4788 blx r1 - 251c: e7fe b.n 251c - result = _lv_ll_get_head(&obj->child_ll); - 251e: 1d20 adds r0, r4, #4 - if(child == NULL) { - 2520: b925 cbnz r5, 252c - result = _lv_ll_get_head(&obj->child_ll); - 2522: 4b0b ldr r3, [pc, #44] ; (2550 ) -} - 2524: b002 add sp, #8 - 2526: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr} - result = _lv_ll_get_head(&obj->child_ll); - 252a: 4718 bx r3 - result = _lv_ll_get_next(&obj->child_ll, child); - 252c: 4b09 ldr r3, [pc, #36] ; (2554 ) - 252e: 4629 mov r1, r5 -} - 2530: b002 add sp, #8 - 2532: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr} - result = _lv_ll_get_next(&obj->child_ll, child); - 2536: 4718 bx r3 - 2538: 00001a65 .word 0x00001a65 - 253c: 00026ccb .word 0x00026ccb - 2540: 000268df .word 0x000268df - 2544: 0000eb79 .word 0x0000eb79 - 2548: 00026943 .word 0x00026943 - 254c: 00001a6d .word 0x00001a6d - 2550: 0000e92d .word 0x0000e92d - 2554: 0000e939 .word 0x0000e939 - -00002558 : -{ - 2558: b573 push {r0, r1, r4, r5, r6, lr} - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 255a: 4b0e ldr r3, [pc, #56] ; (2594 ) -{ - 255c: 4604 mov r4, r0 - 255e: 460e mov r6, r1 - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 2560: 4798 blx r3 - 2562: 4605 mov r5, r0 - 2564: b968 cbnz r0, 2582 - 2566: 4b0c ldr r3, [pc, #48] ; (2598 ) - 2568: 490c ldr r1, [pc, #48] ; (259c ) - 256a: 9300 str r3, [sp, #0] - 256c: f640 0201 movw r2, #2049 ; 0x801 - 2570: 2003 movs r0, #3 - 2572: 4e0b ldr r6, [pc, #44] ; (25a0 ) - 2574: 47b0 blx r6 - 2576: 480b ldr r0, [pc, #44] ; (25a4 ) - 2578: 490b ldr r1, [pc, #44] ; (25a8 ) - 257a: 4622 mov r2, r4 - 257c: 462b mov r3, r5 - 257e: 4788 blx r1 - 2580: e7fe b.n 2580 - lv_area_copy(cords_p, &obj->coords); - 2582: 4b0a ldr r3, [pc, #40] ; (25ac ) - 2584: f104 0110 add.w r1, r4, #16 - 2588: 4630 mov r0, r6 -} - 258a: b002 add sp, #8 - 258c: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr} - lv_area_copy(cords_p, &obj->coords); - 2590: 4718 bx r3 - 2592: bf00 nop - 2594: 00001a65 .word 0x00001a65 - 2598: 00026d3c .word 0x00026d3c - 259c: 000268df .word 0x000268df - 25a0: 0000eb79 .word 0x0000eb79 - 25a4: 00026943 .word 0x00026943 - 25a8: 00001a6d .word 0x00001a6d - 25ac: 00001f9d .word 0x00001f9d - -000025b0 : -{ - 25b0: b573 push {r0, r1, r4, r5, r6, lr} - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 25b2: 4b10 ldr r3, [pc, #64] ; (25f4 ) -{ - 25b4: 4604 mov r4, r0 - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 25b6: 4798 blx r3 - 25b8: 4605 mov r5, r0 - 25ba: b968 cbnz r0, 25d8 - 25bc: 4b0e ldr r3, [pc, #56] ; (25f8 ) - 25be: 490f ldr r1, [pc, #60] ; (25fc ) - 25c0: 9300 str r3, [sp, #0] - 25c2: f640 0222 movw r2, #2082 ; 0x822 - 25c6: 2003 movs r0, #3 - 25c8: 4e0d ldr r6, [pc, #52] ; (2600 ) - 25ca: 47b0 blx r6 - 25cc: 480d ldr r0, [pc, #52] ; (2604 ) - 25ce: 490e ldr r1, [pc, #56] ; (2608 ) - 25d0: 4622 mov r2, r4 - 25d2: 462b mov r3, r5 - 25d4: 4788 blx r1 - 25d6: e7fe b.n 25d6 - lv_obj_t * parent = lv_obj_get_parent(obj); - 25d8: 4b0c ldr r3, [pc, #48] ; (260c ) - 25da: 4620 mov r0, r4 - 25dc: 4798 blx r3 - if(parent) { - 25de: b128 cbz r0, 25ec - rel_x = obj->coords.x1 - parent->coords.x1; - 25e0: 8a23 ldrh r3, [r4, #16] - 25e2: 8a02 ldrh r2, [r0, #16] - 25e4: 1a98 subs r0, r3, r2 - 25e6: b200 sxth r0, r0 -} - 25e8: b002 add sp, #8 - 25ea: bd70 pop {r4, r5, r6, pc} - rel_x = obj->coords.x1; - 25ec: f9b4 0010 ldrsh.w r0, [r4, #16] - 25f0: e7fa b.n 25e8 - 25f2: bf00 nop - 25f4: 00001a65 .word 0x00001a65 - 25f8: 00026d4e .word 0x00026d4e - 25fc: 000268df .word 0x000268df - 2600: 0000eb79 .word 0x0000eb79 - 2604: 00026943 .word 0x00026943 - 2608: 00001a6d .word 0x00001a6d - 260c: 000023a9 .word 0x000023a9 - -00002610 : -{ - 2610: b573 push {r0, r1, r4, r5, r6, lr} - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 2612: 4b10 ldr r3, [pc, #64] ; (2654 ) -{ - 2614: 4604 mov r4, r0 - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 2616: 4798 blx r3 - 2618: 4605 mov r5, r0 - 261a: b968 cbnz r0, 2638 - 261c: 4b0e ldr r3, [pc, #56] ; (2658 ) - 261e: 490f ldr r1, [pc, #60] ; (265c ) - 2620: 9300 str r3, [sp, #0] - 2622: f640 0236 movw r2, #2102 ; 0x836 - 2626: 2003 movs r0, #3 - 2628: 4e0d ldr r6, [pc, #52] ; (2660 ) - 262a: 47b0 blx r6 - 262c: 480d ldr r0, [pc, #52] ; (2664 ) - 262e: 490e ldr r1, [pc, #56] ; (2668 ) - 2630: 4622 mov r2, r4 - 2632: 462b mov r3, r5 - 2634: 4788 blx r1 - 2636: e7fe b.n 2636 - lv_obj_t * parent = lv_obj_get_parent(obj); - 2638: 4b0c ldr r3, [pc, #48] ; (266c ) - 263a: 4620 mov r0, r4 - 263c: 4798 blx r3 - if(parent) { - 263e: b128 cbz r0, 264c - rel_y = obj->coords.y1 - parent->coords.y1; - 2640: 8a63 ldrh r3, [r4, #18] - 2642: 8a42 ldrh r2, [r0, #18] - 2644: 1a98 subs r0, r3, r2 - 2646: b200 sxth r0, r0 -} - 2648: b002 add sp, #8 - 264a: bd70 pop {r4, r5, r6, pc} - rel_y = obj->coords.y1; - 264c: f9b4 0012 ldrsh.w r0, [r4, #18] - 2650: e7fa b.n 2648 - 2652: bf00 nop - 2654: 00001a65 .word 0x00001a65 - 2658: 00026d5b .word 0x00026d5b - 265c: 000268df .word 0x000268df - 2660: 0000eb79 .word 0x0000eb79 - 2664: 00026943 .word 0x00026943 - 2668: 00001a6d .word 0x00001a6d - 266c: 000023a9 .word 0x000023a9 - -00002670 : -{ - 2670: b573 push {r0, r1, r4, r5, r6, lr} - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 2672: 4b0d ldr r3, [pc, #52] ; (26a8 ) -{ - 2674: 4604 mov r4, r0 - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 2676: 4798 blx r3 - 2678: 4605 mov r5, r0 - 267a: b968 cbnz r0, 2698 - 267c: 4b0b ldr r3, [pc, #44] ; (26ac ) - 267e: 490c ldr r1, [pc, #48] ; (26b0 ) - 2680: 9300 str r3, [sp, #0] - 2682: f640 024a movw r2, #2122 ; 0x84a - 2686: 2003 movs r0, #3 - 2688: 4e0a ldr r6, [pc, #40] ; (26b4 ) - 268a: 47b0 blx r6 - 268c: 480a ldr r0, [pc, #40] ; (26b8 ) - 268e: 490b ldr r1, [pc, #44] ; (26bc ) - 2690: 4622 mov r2, r4 - 2692: 462b mov r3, r5 - 2694: 4788 blx r1 - 2696: e7fe b.n 2696 - * @param area_p pointer to an area - * @return the width of the area (if x1 == x2 -> width = 1) - */ -static inline lv_coord_t lv_area_get_width(const lv_area_t * area_p) -{ - return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - 2698: 8aa3 ldrh r3, [r4, #20] - 269a: 8a22 ldrh r2, [r4, #16] - 269c: 3301 adds r3, #1 - 269e: 1a98 subs r0, r3, r2 -} - 26a0: b200 sxth r0, r0 - 26a2: b002 add sp, #8 - 26a4: bd70 pop {r4, r5, r6, pc} - 26a6: bf00 nop - 26a8: 00001a65 .word 0x00001a65 - 26ac: 00026d68 .word 0x00026d68 - 26b0: 000268df .word 0x000268df - 26b4: 0000eb79 .word 0x0000eb79 - 26b8: 00026943 .word 0x00026943 - 26bc: 00001a6d .word 0x00001a6d - -000026c0 : -{ - 26c0: b573 push {r0, r1, r4, r5, r6, lr} - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 26c2: 4b0d ldr r3, [pc, #52] ; (26f8 ) -{ - 26c4: 4604 mov r4, r0 - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 26c6: 4798 blx r3 - 26c8: 4605 mov r5, r0 - 26ca: b968 cbnz r0, 26e8 - 26cc: 4b0b ldr r3, [pc, #44] ; (26fc ) - 26ce: 490c ldr r1, [pc, #48] ; (2700 ) - 26d0: 9300 str r3, [sp, #0] - 26d2: f640 0256 movw r2, #2134 ; 0x856 - 26d6: 2003 movs r0, #3 - 26d8: 4e0a ldr r6, [pc, #40] ; (2704 ) - 26da: 47b0 blx r6 - 26dc: 480a ldr r0, [pc, #40] ; (2708 ) - 26de: 490b ldr r1, [pc, #44] ; (270c ) - 26e0: 4622 mov r2, r4 - 26e2: 462b mov r3, r5 - 26e4: 4788 blx r1 - 26e6: e7fe b.n 26e6 - * @param area_p pointer to an area - * @return the height of the area (if y1 == y2 -> height = 1) - */ -static inline lv_coord_t lv_area_get_height(const lv_area_t * area_p) -{ - return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - 26e8: 8ae3 ldrh r3, [r4, #22] - 26ea: 8a62 ldrh r2, [r4, #18] - 26ec: 3301 adds r3, #1 - 26ee: 1a98 subs r0, r3, r2 -} - 26f0: b200 sxth r0, r0 - 26f2: b002 add sp, #8 - 26f4: bd70 pop {r4, r5, r6, pc} - 26f6: bf00 nop - 26f8: 00001a65 .word 0x00001a65 - 26fc: 00026d79 .word 0x00026d79 - 2700: 000268df .word 0x000268df - 2704: 0000eb79 .word 0x0000eb79 - 2708: 00026943 .word 0x00026943 - 270c: 00001a6d .word 0x00001a6d - -00002710 : -{ - 2710: b513 push {r0, r1, r4, lr} - if(part == LV_OBJ_PART_MAIN) return &((lv_obj_t *)obj)->style_list; - 2712: b911 cbnz r1, 271a - 2714: 3028 adds r0, #40 ; 0x28 -} - 2716: b002 add sp, #8 - 2718: bd10 pop {r4, pc} - info.part = part; - 271a: f88d 1000 strb.w r1, [sp] - info.result = NULL; - 271e: 2400 movs r4, #0 - res = lv_signal_send((lv_obj_t *)obj, LV_SIGNAL_GET_STYLE, &info); - 2720: 4b04 ldr r3, [pc, #16] ; (2734 ) - info.result = NULL; - 2722: 9401 str r4, [sp, #4] - res = lv_signal_send((lv_obj_t *)obj, LV_SIGNAL_GET_STYLE, &info); - 2724: 466a mov r2, sp - 2726: 2108 movs r1, #8 - 2728: 4798 blx r3 - if(res != LV_RES_OK) return NULL; - 272a: 2801 cmp r0, #1 - return info.result; - 272c: bf0c ite eq - 272e: 9801 ldreq r0, [sp, #4] - if(res != LV_RES_OK) return NULL; - 2730: 4620 movne r0, r4 - 2732: e7f0 b.n 2716 - 2734: 000022a9 .word 0x000022a9 - -00002738 : - * @param part a part of object or 0xFF to remove from all parts - * @param prop a property or 0xFF to remove all porpeties - * @param tr_limit delete transitions only "older" then this. `NULL` is not used - */ -static void trans_del(lv_obj_t * obj, uint8_t part, lv_style_property_t prop, lv_style_trans_t * tr_limit) -{ - 2738: e92d 4ff8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr} - 273c: 4607 mov r7, r0 - 273e: 4698 mov r8, r3 - lv_style_trans_t * tr; - lv_style_trans_t * tr_prev; - tr = _lv_ll_get_tail(&LV_GC_ROOT(_lv_obj_style_trans_ll)); - 2740: 4819 ldr r0, [pc, #100] ; (27a8 ) - 2742: 4b1a ldr r3, [pc, #104] ; (27ac ) - while(tr != NULL) { - if(tr == tr_limit) break; - - /*'tr' might be deleted, so get the next object while 'tr' is valid*/ - tr_prev = _lv_ll_get_prev(&LV_GC_ROOT(_lv_obj_style_trans_ll), tr); - 2744: f8df 9060 ldr.w r9, [pc, #96] ; 27a8 - - if(tr->obj == obj && (part == tr->part || part == 0xFF) && (prop == tr->prop || prop == 0xFF)) { - /* Remove the transitioned property from trans. style - * to allow changing it by normal styles*/ - lv_style_list_t * list = lv_obj_get_style_list(tr->obj, tr->part); - 2748: f8df b07c ldr.w fp, [pc, #124] ; 27c8 -{ - 274c: 460d mov r5, r1 - 274e: 4616 mov r6, r2 - tr = _lv_ll_get_tail(&LV_GC_ROOT(_lv_obj_style_trans_ll)); - 2750: 4798 blx r3 - 2752: 4604 mov r4, r0 - while(tr != NULL) { - 2754: b90c cbnz r4, 275a - _lv_ll_remove(&LV_GC_ROOT(_lv_obj_style_trans_ll), tr); - lv_mem_free(tr); - } - tr = tr_prev; - } -} - 2756: e8bd 8ff8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} - if(tr == tr_limit) break; - 275a: 4544 cmp r4, r8 - 275c: d0fb beq.n 2756 - tr_prev = _lv_ll_get_prev(&LV_GC_ROOT(_lv_obj_style_trans_ll), tr); - 275e: 4b14 ldr r3, [pc, #80] ; (27b0 ) - 2760: 4621 mov r1, r4 - 2762: 4648 mov r0, r9 - 2764: 4798 blx r3 - 2766: 4682 mov sl, r0 - if(tr->obj == obj && (part == tr->part || part == 0xFF) && (prop == tr->prop || prop == 0xFF)) { - 2768: 6820 ldr r0, [r4, #0] - 276a: 42b8 cmp r0, r7 - 276c: d11a bne.n 27a4 - 276e: 79a1 ldrb r1, [r4, #6] - 2770: 42a9 cmp r1, r5 - 2772: d001 beq.n 2778 - 2774: 2dff cmp r5, #255 ; 0xff - 2776: d115 bne.n 27a4 - 2778: 88a2 ldrh r2, [r4, #4] - 277a: 42b2 cmp r2, r6 - 277c: d001 beq.n 2782 - 277e: 2eff cmp r6, #255 ; 0xff - 2780: d110 bne.n 27a4 - lv_style_list_t * list = lv_obj_get_style_list(tr->obj, tr->part); - 2782: 47d8 blx fp - lv_style_t * style_trans = _lv_style_list_get_transition_style(list); - 2784: 4a0b ldr r2, [pc, #44] ; (27b4 ) - 2786: 4790 blx r2 - lv_style_remove_prop(style_trans, tr->prop); - 2788: 88a1 ldrh r1, [r4, #4] - 278a: 4a0b ldr r2, [pc, #44] ; (27b8 ) - 278c: 4790 blx r2 - lv_anim_del(tr, NULL); - 278e: 4a0b ldr r2, [pc, #44] ; (27bc ) - 2790: 2100 movs r1, #0 - 2792: 4620 mov r0, r4 - 2794: 4790 blx r2 - _lv_ll_remove(&LV_GC_ROOT(_lv_obj_style_trans_ll), tr); - 2796: 4a0a ldr r2, [pc, #40] ; (27c0 ) - 2798: 4648 mov r0, r9 - 279a: 4621 mov r1, r4 - 279c: 4790 blx r2 - lv_mem_free(tr); - 279e: 4a09 ldr r2, [pc, #36] ; (27c4 ) - 27a0: 4620 mov r0, r4 - 27a2: 4790 blx r2 -{ - 27a4: 4654 mov r4, sl - 27a6: e7d5 b.n 2754 - 27a8: 20003630 .word 0x20003630 - 27ac: 0000e933 .word 0x0000e933 - 27b0: 0000e959 .word 0x0000e959 - 27b4: 00005f3d .word 0x00005f3d - 27b8: 00005a95 .word 0x00005a95 - 27bc: 0000df35 .word 0x0000df35 - 27c0: 0000e9f1 .word 0x0000e9f1 - 27c4: 0000ed75 .word 0x0000ed75 - 27c8: 00002711 .word 0x00002711 - -000027cc : -{ - 27cc: b537 push {r0, r1, r2, r4, r5, lr} - lv_style_list_t * style_dsc = lv_obj_get_style_list(obj, part); - 27ce: 4b0e ldr r3, [pc, #56] ; (2808 ) -{ - 27d0: 4604 mov r4, r0 - 27d2: 460d mov r5, r1 - lv_style_list_t * style_dsc = lv_obj_get_style_list(obj, part); - 27d4: 4798 blx r3 - if(style_dsc == NULL) { - 27d6: b950 cbnz r0, 27ee - LV_LOG_WARN("lv_obj_clean_style_list: can't find style with `part`"); - 27d8: 4b0c ldr r3, [pc, #48] ; (280c ) - 27da: 9300 str r3, [sp, #0] - 27dc: 490c ldr r1, [pc, #48] ; (2810 ) - 27de: 4b0d ldr r3, [pc, #52] ; (2814 ) - 27e0: 4c0d ldr r4, [pc, #52] ; (2818 ) - 27e2: f240 4292 movw r2, #1170 ; 0x492 - 27e6: 2002 movs r0, #2 - 27e8: 47a0 blx r4 -} - 27ea: b003 add sp, #12 - 27ec: bd30 pop {r4, r5, pc} - _lv_style_list_reset(style_dsc); - 27ee: 4b0b ldr r3, [pc, #44] ; (281c ) - 27f0: 4798 blx r3 - trans_del(obj, part, 0xFF, NULL); - 27f2: 4620 mov r0, r4 - 27f4: 4c0a ldr r4, [pc, #40] ; (2820 ) - 27f6: 2300 movs r3, #0 - 27f8: 22ff movs r2, #255 ; 0xff - 27fa: 4629 mov r1, r5 - 27fc: 46a4 mov ip, r4 -} - 27fe: b003 add sp, #12 - 2800: e8bd 4030 ldmia.w sp!, {r4, r5, lr} - trans_del(obj, part, 0xFF, NULL); - 2804: 4760 bx ip - 2806: bf00 nop - 2808: 00002711 .word 0x00002711 - 280c: 00026998 .word 0x00026998 - 2810: 000268df .word 0x000268df - 2814: 00026e35 .word 0x00026e35 - 2818: 0000eb79 .word 0x0000eb79 - 281c: 00005f4d .word 0x00005f4d - 2820: 00002739 .word 0x00002739 - -00002824 : - tr->prop = prop_tmp; - -} - -static void trans_anim_ready_cb(lv_anim_t * a) -{ - 2824: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} - * if there no more transitions for this property - * It allows changing it by normal styles*/ - - bool running = false; - lv_style_trans_t * tr_i; - _LV_LL_READ(LV_GC_ROOT(_lv_obj_style_trans_ll), tr_i) { - 2828: 4b15 ldr r3, [pc, #84] ; (2880 ) - lv_style_trans_t * tr = a->var; - 282a: 6804 ldr r4, [r0, #0] - _LV_LL_READ(LV_GC_ROOT(_lv_obj_style_trans_ll), tr_i) { - 282c: 4815 ldr r0, [pc, #84] ; (2884 ) - 282e: 4e15 ldr r6, [pc, #84] ; (2884 ) - 2830: 4f15 ldr r7, [pc, #84] ; (2888 ) - 2832: 4798 blx r3 - bool running = false; - 2834: 2500 movs r5, #0 - _LV_LL_READ(LV_GC_ROOT(_lv_obj_style_trans_ll), tr_i) { - 2836: b990 cbnz r0, 285e - if(tr_i != tr && tr_i->obj == tr->obj && tr_i->part == tr->part && tr_i->prop == tr->prop) { - running = true; - } - } - - if(!running) { - 2838: b945 cbnz r5, 284c - lv_style_list_t * list = lv_obj_get_style_list(tr->obj, tr->part); - 283a: 79a1 ldrb r1, [r4, #6] - 283c: 4b13 ldr r3, [pc, #76] ; (288c ) - 283e: 6820 ldr r0, [r4, #0] - 2840: 4798 blx r3 - lv_style_t * style_trans = _lv_style_list_get_transition_style(list); - 2842: 4b13 ldr r3, [pc, #76] ; (2890 ) - 2844: 4798 blx r3 - lv_style_remove_prop(style_trans, tr->prop); - 2846: 88a1 ldrh r1, [r4, #4] - 2848: 4b12 ldr r3, [pc, #72] ; (2894 ) - 284a: 4798 blx r3 - } - - _lv_ll_remove(&LV_GC_ROOT(_lv_obj_style_trans_ll), tr); - 284c: 480d ldr r0, [pc, #52] ; (2884 ) - 284e: 4b12 ldr r3, [pc, #72] ; (2898 ) - 2850: 4621 mov r1, r4 - 2852: 4798 blx r3 - lv_mem_free(tr); - 2854: 4620 mov r0, r4 - 2856: 4b11 ldr r3, [pc, #68] ; (289c ) -} - 2858: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr} - lv_mem_free(tr); - 285c: 4718 bx r3 - if(tr_i != tr && tr_i->obj == tr->obj && tr_i->part == tr->part && tr_i->prop == tr->prop) { - 285e: 42a0 cmp r0, r4 - 2860: d00a beq.n 2878 - 2862: 6802 ldr r2, [r0, #0] - 2864: 6823 ldr r3, [r4, #0] - 2866: 429a cmp r2, r3 - 2868: d106 bne.n 2878 - 286a: 6843 ldr r3, [r0, #4] - 286c: 6862 ldr r2, [r4, #4] - 286e: 4053 eors r3, r2 - running = true; - 2870: f033 437f bics.w r3, r3, #4278190080 ; 0xff000000 - 2874: bf08 it eq - 2876: 2501 moveq r5, #1 - _LV_LL_READ(LV_GC_ROOT(_lv_obj_style_trans_ll), tr_i) { - 2878: 4601 mov r1, r0 - 287a: 4630 mov r0, r6 - 287c: 47b8 blx r7 - 287e: e7da b.n 2836 - 2880: 0000e92d .word 0x0000e92d - 2884: 20003630 .word 0x20003630 - 2888: 0000e939 .word 0x0000e939 - 288c: 00002711 .word 0x00002711 - 2890: 00005f3d .word 0x00005f3d - 2894: 00005a95 .word 0x00005a95 - 2898: 0000e9f1 .word 0x0000e9f1 - 289c: 0000ed75 .word 0x0000ed75 - -000028a0 : -{ - 28a0: b573 push {r0, r1, r4, r5, r6, lr} - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 28a2: 4b0c ldr r3, [pc, #48] ; (28d4 ) -{ - 28a4: 4604 mov r4, r0 - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 28a6: 4798 blx r3 - 28a8: 4605 mov r5, r0 - 28aa: b968 cbnz r0, 28c8 - 28ac: 4b0a ldr r3, [pc, #40] ; (28d8 ) - 28ae: 490b ldr r1, [pc, #44] ; (28dc ) - 28b0: 9300 str r3, [sp, #0] - 28b2: f640 2241 movw r2, #2625 ; 0xa41 - 28b6: 2003 movs r0, #3 - 28b8: 4e09 ldr r6, [pc, #36] ; (28e0 ) - 28ba: 47b0 blx r6 - 28bc: 4809 ldr r0, [pc, #36] ; (28e4 ) - 28be: 490a ldr r1, [pc, #40] ; (28e8 ) - 28c0: 4622 mov r2, r4 - 28c2: 462b mov r3, r5 - 28c4: 4788 blx r1 - 28c6: e7fe b.n 28c6 - return obj->hidden == 0 ? false : true; - 28c8: f894 0034 ldrb.w r0, [r4, #52] ; 0x34 -} - 28cc: f3c0 1000 ubfx r0, r0, #4, #1 - 28d0: b002 add sp, #8 - 28d2: bd70 pop {r4, r5, r6, pc} - 28d4: 00001a65 .word 0x00001a65 - 28d8: 00026e83 .word 0x00026e83 - 28dc: 000268df .word 0x000268df - 28e0: 0000eb79 .word 0x0000eb79 - 28e4: 00026943 .word 0x00026943 - 28e8: 00001a6d .word 0x00001a6d - -000028ec : -{ - 28ec: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 28f0: 4b35 ldr r3, [pc, #212] ; (29c8 ) -{ - 28f2: b086 sub sp, #24 - 28f4: 4604 mov r4, r0 - 28f6: 4688 mov r8, r1 - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 28f8: 4798 blx r3 - 28fa: 4605 mov r5, r0 - 28fc: b968 cbnz r0, 291a - 28fe: 4b33 ldr r3, [pc, #204] ; (29cc ) - 2900: 4933 ldr r1, [pc, #204] ; (29d0 ) - 2902: 9300 str r3, [sp, #0] - 2904: f44f 72f0 mov.w r2, #480 ; 0x1e0 - 2908: 2003 movs r0, #3 - 290a: 4e32 ldr r6, [pc, #200] ; (29d4 ) - 290c: 47b0 blx r6 - 290e: 4832 ldr r0, [pc, #200] ; (29d8 ) - 2910: 4932 ldr r1, [pc, #200] ; (29dc ) - 2912: 4622 mov r2, r4 - 2914: 462b mov r3, r5 - 2916: 4788 blx r1 - 2918: e7fe b.n 2918 - if(lv_obj_get_hidden(obj)) return; - 291a: 4f31 ldr r7, [pc, #196] ; (29e0 ) - 291c: 4620 mov r0, r4 - 291e: 47b8 blx r7 - 2920: 2800 cmp r0, #0 - 2922: d141 bne.n 29a8 - lv_obj_t * obj_scr = lv_obj_get_screen(obj); - 2924: 4b2f ldr r3, [pc, #188] ; (29e4 ) - 2926: 4620 mov r0, r4 - 2928: 4798 blx r3 - lv_disp_t * disp = lv_obj_get_disp(obj_scr); - 292a: 4b2f ldr r3, [pc, #188] ; (29e8 ) - lv_obj_t * obj_scr = lv_obj_get_screen(obj); - 292c: 4605 mov r5, r0 - lv_disp_t * disp = lv_obj_get_disp(obj_scr); - 292e: 4798 blx r3 - if(obj_scr == lv_disp_get_scr_act(disp) || obj_scr == lv_disp_get_layer_top(disp) || - 2930: 4b2e ldr r3, [pc, #184] ; (29ec ) - lv_disp_t * disp = lv_obj_get_disp(obj_scr); - 2932: 4606 mov r6, r0 - if(obj_scr == lv_disp_get_scr_act(disp) || obj_scr == lv_disp_get_layer_top(disp) || - 2934: 4798 blx r3 - 2936: 4285 cmp r5, r0 - 2938: d12c bne.n 2994 - lv_coord_t ext_size = obj->ext_draw_pad; - 293a: f9b4 5032 ldrsh.w r5, [r4, #50] ; 0x32 - lv_area_copy(&obj_coords, &obj->coords); - 293e: 4b2c ldr r3, [pc, #176] ; (29f0 ) - 2940: f104 0110 add.w r1, r4, #16 - 2944: a802 add r0, sp, #8 - 2946: 4798 blx r3 - obj_coords.x1 -= ext_size; - 2948: f8bd 2008 ldrh.w r2, [sp, #8] - 294c: b2ab uxth r3, r5 - 294e: 1ad2 subs r2, r2, r3 - 2950: f8ad 2008 strh.w r2, [sp, #8] - obj_coords.y1 -= ext_size; - 2954: f8bd 200a ldrh.w r2, [sp, #10] - is_common = _lv_area_intersect(&area_trunc, area, &obj_coords); - 2958: 4d26 ldr r5, [pc, #152] ; (29f4 ) - obj_coords.y1 -= ext_size; - 295a: 1ad2 subs r2, r2, r3 - 295c: f8ad 200a strh.w r2, [sp, #10] - obj_coords.x2 += ext_size; - 2960: f8bd 200c ldrh.w r2, [sp, #12] - 2964: 441a add r2, r3 - 2966: f8ad 200c strh.w r2, [sp, #12] - obj_coords.y2 += ext_size; - 296a: f8bd 200e ldrh.w r2, [sp, #14] - is_common = _lv_area_intersect(&area_trunc, area, &obj_coords); - 296e: 4641 mov r1, r8 - obj_coords.y2 += ext_size; - 2970: 4413 add r3, r2 - is_common = _lv_area_intersect(&area_trunc, area, &obj_coords); - 2972: a804 add r0, sp, #16 - 2974: aa02 add r2, sp, #8 - obj_coords.y2 += ext_size; - 2976: f8ad 300e strh.w r3, [sp, #14] - is_common = _lv_area_intersect(&area_trunc, area, &obj_coords); - 297a: 47a8 blx r5 - if(is_common == false) return; /*The area is not on the object*/ - 297c: b1a0 cbz r0, 29a8 - lv_obj_t * par = lv_obj_get_parent(obj); - 297e: f8df 8084 ldr.w r8, [pc, #132] ; 2a04 - 2982: 4620 mov r0, r4 - par = lv_obj_get_parent(par); - 2984: 47c0 blx r8 - 2986: 4604 mov r4, r0 - while(par != NULL) { - 2988: b988 cbnz r0, 29ae - if(is_common) _lv_inv_area(disp, &area_trunc); - 298a: 4b1b ldr r3, [pc, #108] ; (29f8 ) - 298c: a904 add r1, sp, #16 - 298e: 4630 mov r0, r6 - 2990: 4798 blx r3 - 2992: e009 b.n 29a8 - if(obj_scr == lv_disp_get_scr_act(disp) || obj_scr == lv_disp_get_layer_top(disp) || - 2994: 4b19 ldr r3, [pc, #100] ; (29fc ) - 2996: 4630 mov r0, r6 - 2998: 4798 blx r3 - 299a: 4285 cmp r5, r0 - 299c: d0cd beq.n 293a - obj_scr == lv_disp_get_layer_sys(disp)) { - 299e: 4b18 ldr r3, [pc, #96] ; (2a00 ) - 29a0: 4630 mov r0, r6 - 29a2: 4798 blx r3 - if(obj_scr == lv_disp_get_scr_act(disp) || obj_scr == lv_disp_get_layer_top(disp) || - 29a4: 4285 cmp r5, r0 - 29a6: d0c8 beq.n 293a -} - 29a8: b006 add sp, #24 - 29aa: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} - is_common = _lv_area_intersect(&area_trunc, &area_trunc, &par->coords); - 29ae: a904 add r1, sp, #16 - 29b0: f104 0210 add.w r2, r4, #16 - 29b4: 4608 mov r0, r1 - 29b6: 47a8 blx r5 - if(is_common == false) break; /*If no common parts with parent break;*/ - 29b8: 2800 cmp r0, #0 - 29ba: d0f5 beq.n 29a8 - if(lv_obj_get_hidden(par)) return; /*If the parent is hidden then the child is hidden and won't be drawn*/ - 29bc: 4620 mov r0, r4 - 29be: 47b8 blx r7 - 29c0: 2800 cmp r0, #0 - 29c2: d1f1 bne.n 29a8 - par = lv_obj_get_parent(par); - 29c4: 4620 mov r0, r4 - 29c6: e7dd b.n 2984 - 29c8: 00001a65 .word 0x00001a65 - 29cc: 00026e95 .word 0x00026e95 - 29d0: 000268df .word 0x000268df - 29d4: 0000eb79 .word 0x0000eb79 - 29d8: 00026943 .word 0x00026943 - 29dc: 00001a6d .word 0x00001a6d - 29e0: 000028a1 .word 0x000028a1 - 29e4: 000023f1 .word 0x000023f1 - 29e8: 00002449 .word 0x00002449 - 29ec: 00001af5 .word 0x00001af5 - 29f0: 00001f9d .word 0x00001f9d - 29f4: 0000e111 .word 0x0000e111 - 29f8: 00005191 .word 0x00005191 - 29fc: 00001b31 .word 0x00001b31 - 2a00: 00001b6d .word 0x00001b6d - 2a04: 000023a9 .word 0x000023a9 - -00002a08 : -{ - 2a08: b57f push {r0, r1, r2, r3, r4, r5, r6, lr} - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 2a0a: 4b1a ldr r3, [pc, #104] ; (2a74 ) -{ - 2a0c: 4605 mov r5, r0 - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 2a0e: 4798 blx r3 - 2a10: 4604 mov r4, r0 - 2a12: b968 cbnz r0, 2a30 - 2a14: 4b18 ldr r3, [pc, #96] ; (2a78 ) - 2a16: 4919 ldr r1, [pc, #100] ; (2a7c ) - 2a18: 9300 str r3, [sp, #0] - 2a1a: f240 220d movw r2, #525 ; 0x20d - 2a1e: 2003 movs r0, #3 - 2a20: 4e17 ldr r6, [pc, #92] ; (2a80 ) - 2a22: 47b0 blx r6 - 2a24: 4817 ldr r0, [pc, #92] ; (2a84 ) - 2a26: 4918 ldr r1, [pc, #96] ; (2a88 ) - 2a28: 462a mov r2, r5 - 2a2a: 4623 mov r3, r4 - 2a2c: 4788 blx r1 - 2a2e: e7fe b.n 2a2e - lv_coord_t ext_size = obj->ext_draw_pad; - 2a30: f9b5 4032 ldrsh.w r4, [r5, #50] ; 0x32 - lv_area_copy(&obj_coords, &obj->coords); - 2a34: 4b15 ldr r3, [pc, #84] ; (2a8c ) - 2a36: f105 0110 add.w r1, r5, #16 - 2a3a: a802 add r0, sp, #8 - 2a3c: 4798 blx r3 - obj_coords.x1 -= ext_size; - 2a3e: f8bd 2008 ldrh.w r2, [sp, #8] - 2a42: b2a3 uxth r3, r4 - 2a44: 1ad2 subs r2, r2, r3 - 2a46: f8ad 2008 strh.w r2, [sp, #8] - obj_coords.y1 -= ext_size; - 2a4a: f8bd 200a ldrh.w r2, [sp, #10] - 2a4e: 1ad2 subs r2, r2, r3 - 2a50: f8ad 200a strh.w r2, [sp, #10] - obj_coords.x2 += ext_size; - 2a54: f8bd 200c ldrh.w r2, [sp, #12] - 2a58: 441a add r2, r3 - 2a5a: f8ad 200c strh.w r2, [sp, #12] - obj_coords.y2 += ext_size; - 2a5e: f8bd 200e ldrh.w r2, [sp, #14] - 2a62: 4413 add r3, r2 - 2a64: f8ad 300e strh.w r3, [sp, #14] - lv_obj_invalidate_area(obj, &obj_coords); - 2a68: a902 add r1, sp, #8 - 2a6a: 4b09 ldr r3, [pc, #36] ; (2a90 ) - 2a6c: 4628 mov r0, r5 - 2a6e: 4798 blx r3 -} - 2a70: b004 add sp, #16 - 2a72: bd70 pop {r4, r5, r6, pc} - 2a74: 00001a65 .word 0x00001a65 - 2a78: 00026eac .word 0x00026eac - 2a7c: 000268df .word 0x000268df - 2a80: 0000eb79 .word 0x0000eb79 - 2a84: 00026943 .word 0x00026943 - 2a88: 00001a6d .word 0x00001a6d - 2a8c: 00001f9d .word 0x00001f9d - 2a90: 000028ed .word 0x000028ed - -00002a94 : -{ - 2a94: b5f7 push {r0, r1, r2, r4, r5, r6, r7, lr} - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 2a96: 4b19 ldr r3, [pc, #100] ; (2afc ) -{ - 2a98: 4605 mov r5, r0 - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 2a9a: 4798 blx r3 - 2a9c: 4604 mov r4, r0 - 2a9e: b968 cbnz r0, 2abc - 2aa0: 4b17 ldr r3, [pc, #92] ; (2b00 ) - 2aa2: 4918 ldr r1, [pc, #96] ; (2b04 ) - 2aa4: 9300 str r3, [sp, #0] - 2aa6: f240 2262 movw r2, #610 ; 0x262 - 2aaa: 2003 movs r0, #3 - 2aac: 4e16 ldr r6, [pc, #88] ; (2b08 ) - 2aae: 47b0 blx r6 - 2ab0: 4816 ldr r0, [pc, #88] ; (2b0c ) - 2ab2: 4917 ldr r1, [pc, #92] ; (2b10 ) - 2ab4: 462a mov r2, r5 - 2ab6: 4623 mov r3, r4 - 2ab8: 4788 blx r1 - 2aba: e7fe b.n 2aba - lv_obj_t * parent = lv_obj_get_parent(obj); - 2abc: 4b15 ldr r3, [pc, #84] ; (2b14 ) - 2abe: 4628 mov r0, r5 - 2ac0: 4798 blx r3 - if(_lv_ll_get_head(&parent->child_ll) == obj) return; - 2ac2: 1d07 adds r7, r0, #4 - 2ac4: 4b14 ldr r3, [pc, #80] ; (2b18 ) - lv_obj_t * parent = lv_obj_get_parent(obj); - 2ac6: 4604 mov r4, r0 - if(_lv_ll_get_head(&parent->child_ll) == obj) return; - 2ac8: 4638 mov r0, r7 - 2aca: 4798 blx r3 - 2acc: 4285 cmp r5, r0 - 2ace: d013 beq.n 2af8 - lv_obj_invalidate(parent); - 2ad0: 4e12 ldr r6, [pc, #72] ; (2b1c ) - 2ad2: 4620 mov r0, r4 - 2ad4: 47b0 blx r6 - _lv_ll_chg_list(&parent->child_ll, &parent->child_ll, obj, true); - 2ad6: 462a mov r2, r5 - 2ad8: 4639 mov r1, r7 - 2ada: 4638 mov r0, r7 - 2adc: 2301 movs r3, #1 - 2ade: 4f10 ldr r7, [pc, #64] ; (2b20 ) - 2ae0: 47b8 blx r7 - parent->signal_cb(parent, LV_SIGNAL_CHILD_CHG, obj); - 2ae2: 69e3 ldr r3, [r4, #28] - 2ae4: 462a mov r2, r5 - 2ae6: 2101 movs r1, #1 - 2ae8: 4620 mov r0, r4 - 2aea: 4798 blx r3 - lv_obj_invalidate(parent); - 2aec: 4620 mov r0, r4 - 2aee: 4633 mov r3, r6 -} - 2af0: b003 add sp, #12 - 2af2: e8bd 40f0 ldmia.w sp!, {r4, r5, r6, r7, lr} - lv_obj_invalidate(parent); - 2af6: 4718 bx r3 -} - 2af8: b003 add sp, #12 - 2afa: bdf0 pop {r4, r5, r6, r7, pc} - 2afc: 00001a65 .word 0x00001a65 - 2b00: 00026ebe .word 0x00026ebe - 2b04: 000268df .word 0x000268df - 2b08: 0000eb79 .word 0x0000eb79 - 2b0c: 00026943 .word 0x00026943 - 2b10: 00001a6d .word 0x00001a6d - 2b14: 000023a9 .word 0x000023a9 - 2b18: 0000e92d .word 0x0000e92d - 2b1c: 00002a09 .word 0x00002a09 - 2b20: 0000ea71 .word 0x0000ea71 - -00002b24 : -{ - 2b24: e92d 43f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 2b28: 4b2e ldr r3, [pc, #184] ; (2be4 ) -{ - 2b2a: b087 sub sp, #28 - 2b2c: 4604 mov r4, r0 - 2b2e: 4688 mov r8, r1 - 2b30: 4617 mov r7, r2 - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 2b32: 4798 blx r3 - 2b34: 4605 mov r5, r0 - 2b36: b968 cbnz r0, 2b54 - 2b38: 4b2b ldr r3, [pc, #172] ; (2be8 ) - 2b3a: 492c ldr r1, [pc, #176] ; (2bec ) - 2b3c: 9300 str r3, [sp, #0] - 2b3e: f240 2296 movw r2, #662 ; 0x296 - 2b42: 2003 movs r0, #3 - 2b44: 4e2a ldr r6, [pc, #168] ; (2bf0 ) - 2b46: 47b0 blx r6 - 2b48: 482a ldr r0, [pc, #168] ; (2bf4 ) - 2b4a: 492b ldr r1, [pc, #172] ; (2bf8 ) - 2b4c: 4622 mov r2, r4 - 2b4e: 462b mov r3, r5 - 2b50: 4788 blx r1 - 2b52: e7fe b.n 2b52 - lv_obj_t * par = obj->parent; - 2b54: 6826 ldr r6, [r4, #0] - if(par == NULL) { - 2b56: b95e cbnz r6, 2b70 - LV_LOG_WARN("lv_obj_set_pos: not changing position of screen object"); - 2b58: 4b28 ldr r3, [pc, #160] ; (2bfc ) - 2b5a: 9300 str r3, [sp, #0] - 2b5c: 4923 ldr r1, [pc, #140] ; (2bec ) - 2b5e: 4b22 ldr r3, [pc, #136] ; (2be8 ) - 2b60: 4c23 ldr r4, [pc, #140] ; (2bf0 ) - 2b62: f44f 7227 mov.w r2, #668 ; 0x29c - 2b66: 2002 movs r0, #2 - 2b68: 47a0 blx r4 -} - 2b6a: b007 add sp, #28 - 2b6c: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} - diff.x = x - obj->coords.x1; - 2b70: 8a22 ldrh r2, [r4, #16] - 2b72: 8a33 ldrh r3, [r6, #16] - 2b74: 1a9b subs r3, r3, r2 - 2b76: eb03 0108 add.w r1, r3, r8 - diff.y = y - obj->coords.y1; - 2b7a: 8a62 ldrh r2, [r4, #18] - 2b7c: 8a73 ldrh r3, [r6, #18] - 2b7e: 1a9b subs r3, r3, r2 - 2b80: 19da adds r2, r3, r7 - 2b82: b297 uxth r7, r2 - diff.x = x - obj->coords.x1; - 2b84: fa1f f881 uxth.w r8, r1 - diff.y = y - obj->coords.y1; - 2b88: b212 sxth r2, r2 - if(diff.x == 0 && diff.y == 0) return; - 2b8a: ea58 0307 orrs.w r3, r8, r7 - diff.x = x - obj->coords.x1; - 2b8e: b20d sxth r5, r1 - diff.y = y - obj->coords.y1; - 2b90: 9203 str r2, [sp, #12] - if(diff.x == 0 && diff.y == 0) return; - 2b92: d0ea beq.n 2b6a - lv_obj_invalidate(obj); - 2b94: 4620 mov r0, r4 - 2b96: f8df 9070 ldr.w r9, [pc, #112] ; 2c08 - 2b9a: 47c8 blx r9 - lv_obj_get_coords(obj, &ori); - 2b9c: a904 add r1, sp, #16 - 2b9e: 4620 mov r0, r4 - 2ba0: 4b17 ldr r3, [pc, #92] ; (2c00 ) - 2ba2: 4798 blx r3 - obj->coords.x1 += diff.x; - 2ba4: 8a23 ldrh r3, [r4, #16] - refresh_children_position(obj, diff.x, diff.y); - 2ba6: 9a03 ldr r2, [sp, #12] - obj->coords.x1 += diff.x; - 2ba8: 4443 add r3, r8 - 2baa: 8223 strh r3, [r4, #16] - obj->coords.y1 += diff.y; - 2bac: 8a63 ldrh r3, [r4, #18] - 2bae: 443b add r3, r7 - 2bb0: 8263 strh r3, [r4, #18] - obj->coords.x2 += diff.x; - 2bb2: 8aa3 ldrh r3, [r4, #20] - 2bb4: 4498 add r8, r3 - obj->coords.y2 += diff.y; - 2bb6: 8ae3 ldrh r3, [r4, #22] - obj->coords.x2 += diff.x; - 2bb8: f8a4 8014 strh.w r8, [r4, #20] - obj->coords.y2 += diff.y; - 2bbc: 441f add r7, r3 - refresh_children_position(obj, diff.x, diff.y); - 2bbe: 4629 mov r1, r5 - 2bc0: 4620 mov r0, r4 - 2bc2: 4b10 ldr r3, [pc, #64] ; (2c04 ) - obj->coords.y2 += diff.y; - 2bc4: 82e7 strh r7, [r4, #22] - refresh_children_position(obj, diff.x, diff.y); - 2bc6: 4798 blx r3 - obj->signal_cb(obj, LV_SIGNAL_COORD_CHG, &ori); - 2bc8: 69e3 ldr r3, [r4, #28] - 2bca: aa04 add r2, sp, #16 - 2bcc: 2102 movs r1, #2 - 2bce: 4620 mov r0, r4 - 2bd0: 4798 blx r3 - par->signal_cb(par, LV_SIGNAL_CHILD_CHG, obj); - 2bd2: 69f3 ldr r3, [r6, #28] - 2bd4: 4622 mov r2, r4 - 2bd6: 2101 movs r1, #1 - 2bd8: 4630 mov r0, r6 - 2bda: 4798 blx r3 - lv_obj_invalidate(obj); - 2bdc: 4620 mov r0, r4 - 2bde: 47c8 blx r9 - 2be0: e7c3 b.n 2b6a - 2be2: bf00 nop - 2be4: 00001a65 .word 0x00001a65 - 2be8: 00026eec .word 0x00026eec - 2bec: 000268df .word 0x000268df - 2bf0: 0000eb79 .word 0x0000eb79 - 2bf4: 00026943 .word 0x00026943 - 2bf8: 00001a6d .word 0x00001a6d - 2bfc: 000269ce .word 0x000269ce - 2c00: 00002559 .word 0x00002559 - 2c04: 00001f45 .word 0x00001f45 - 2c08: 00002a09 .word 0x00002a09 - -00002c0c : -{ - 2c0c: b573 push {r0, r1, r4, r5, r6, lr} - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 2c0e: 4b0f ldr r3, [pc, #60] ; (2c4c ) -{ - 2c10: 4604 mov r4, r0 - 2c12: 460e mov r6, r1 - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 2c14: 4798 blx r3 - 2c16: 4605 mov r5, r0 - 2c18: b968 cbnz r0, 2c36 - 2c1a: 4b0d ldr r3, [pc, #52] ; (2c50 ) - 2c1c: 490d ldr r1, [pc, #52] ; (2c54 ) - 2c1e: 9300 str r3, [sp, #0] - 2c20: f44f 7233 mov.w r2, #716 ; 0x2cc - 2c24: 2003 movs r0, #3 - 2c26: 4e0c ldr r6, [pc, #48] ; (2c58 ) - 2c28: 47b0 blx r6 - 2c2a: 480c ldr r0, [pc, #48] ; (2c5c ) - 2c2c: 490c ldr r1, [pc, #48] ; (2c60 ) - 2c2e: 4622 mov r2, r4 - 2c30: 462b mov r3, r5 - 2c32: 4788 blx r1 - 2c34: e7fe b.n 2c34 - lv_obj_set_pos(obj, x, lv_obj_get_y(obj)); - 2c36: 4b0b ldr r3, [pc, #44] ; (2c64 ) - 2c38: 4620 mov r0, r4 - 2c3a: 4798 blx r3 - 2c3c: 4b0a ldr r3, [pc, #40] ; (2c68 ) - 2c3e: 4602 mov r2, r0 - 2c40: 4631 mov r1, r6 - 2c42: 4620 mov r0, r4 -} - 2c44: b002 add sp, #8 - 2c46: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr} - lv_obj_set_pos(obj, x, lv_obj_get_y(obj)); - 2c4a: 4718 bx r3 - 2c4c: 00001a65 .word 0x00001a65 - 2c50: 00026efb .word 0x00026efb - 2c54: 000268df .word 0x000268df - 2c58: 0000eb79 .word 0x0000eb79 - 2c5c: 00026943 .word 0x00026943 - 2c60: 00001a6d .word 0x00001a6d - 2c64: 00002611 .word 0x00002611 - 2c68: 00002b25 .word 0x00002b25 - -00002c6c : -{ - 2c6c: b573 push {r0, r1, r4, r5, r6, lr} - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 2c6e: 4b0f ldr r3, [pc, #60] ; (2cac ) -{ - 2c70: 4604 mov r4, r0 - 2c72: 460e mov r6, r1 - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 2c74: 4798 blx r3 - 2c76: 4605 mov r5, r0 - 2c78: b968 cbnz r0, 2c96 - 2c7a: 4b0d ldr r3, [pc, #52] ; (2cb0 ) - 2c7c: 490d ldr r1, [pc, #52] ; (2cb4 ) - 2c7e: 9300 str r3, [sp, #0] - 2c80: f44f 7236 mov.w r2, #728 ; 0x2d8 - 2c84: 2003 movs r0, #3 - 2c86: 4e0c ldr r6, [pc, #48] ; (2cb8 ) - 2c88: 47b0 blx r6 - 2c8a: 480c ldr r0, [pc, #48] ; (2cbc ) - 2c8c: 490c ldr r1, [pc, #48] ; (2cc0 ) - 2c8e: 4622 mov r2, r4 - 2c90: 462b mov r3, r5 - 2c92: 4788 blx r1 - 2c94: e7fe b.n 2c94 - lv_obj_set_pos(obj, lv_obj_get_x(obj), y); - 2c96: 4b0b ldr r3, [pc, #44] ; (2cc4 ) - 2c98: 4620 mov r0, r4 - 2c9a: 4798 blx r3 - 2c9c: 4b0a ldr r3, [pc, #40] ; (2cc8 ) - 2c9e: 4601 mov r1, r0 - 2ca0: 4632 mov r2, r6 - 2ca2: 4620 mov r0, r4 -} - 2ca4: b002 add sp, #8 - 2ca6: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr} - lv_obj_set_pos(obj, lv_obj_get_x(obj), y); - 2caa: 4718 bx r3 - 2cac: 00001a65 .word 0x00001a65 - 2cb0: 00026f08 .word 0x00026f08 - 2cb4: 000268df .word 0x000268df - 2cb8: 0000eb79 .word 0x0000eb79 - 2cbc: 00026943 .word 0x00026943 - 2cc0: 00001a6d .word 0x00001a6d - 2cc4: 000025b1 .word 0x000025b1 - 2cc8: 00002b25 .word 0x00002b25 - -00002ccc : -{ - 2ccc: e92d 47ff stmdb sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, lr} - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 2cd0: f8df a0d8 ldr.w sl, [pc, #216] ; 2dac -{ - 2cd4: f9bd 8030 ldrsh.w r8, [sp, #48] ; 0x30 - 2cd8: 4604 mov r4, r0 - 2cda: 460d mov r5, r1 - 2cdc: 4617 mov r7, r2 - 2cde: 461e mov r6, r3 - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 2ce0: 47d0 blx sl - 2ce2: 4681 mov r9, r0 - 2ce4: b968 cbnz r0, 2d02 - 2ce6: 4b2a ldr r3, [pc, #168] ; (2d90 ) - 2ce8: 492a ldr r1, [pc, #168] ; (2d94 ) - 2cea: 9300 str r3, [sp, #0] - 2cec: f240 326d movw r2, #877 ; 0x36d - 2cf0: 2003 movs r0, #3 - 2cf2: 4d29 ldr r5, [pc, #164] ; (2d98 ) - 2cf4: 47a8 blx r5 - 2cf6: 4829 ldr r0, [pc, #164] ; (2d9c ) - 2cf8: 4929 ldr r1, [pc, #164] ; (2da0 ) - 2cfa: 4622 mov r2, r4 - 2cfc: 464b mov r3, r9 - 2cfe: 4788 blx r1 - 2d00: e7fe b.n 2d00 - if(base == NULL) base = lv_obj_get_parent(obj); - 2d02: b91d cbnz r5, 2d0c - 2d04: 4b27 ldr r3, [pc, #156] ; (2da4 ) - 2d06: 4620 mov r0, r4 - 2d08: 4798 blx r3 - 2d0a: 4605 mov r5, r0 - LV_ASSERT_OBJ(base, LV_OBJX_NAME); - 2d0c: 4628 mov r0, r5 - 2d0e: 47d0 blx sl - 2d10: 4681 mov r9, r0 - 2d12: b968 cbnz r0, 2d30 - 2d14: 4b1e ldr r3, [pc, #120] ; (2d90 ) - 2d16: 491f ldr r1, [pc, #124] ; (2d94 ) - 2d18: 9300 str r3, [sp, #0] - 2d1a: f240 3271 movw r2, #881 ; 0x371 - 2d1e: 2003 movs r0, #3 - 2d20: 4c1d ldr r4, [pc, #116] ; (2d98 ) - 2d22: 47a0 blx r4 - 2d24: 481d ldr r0, [pc, #116] ; (2d9c ) - 2d26: 491e ldr r1, [pc, #120] ; (2da0 ) - 2d28: 462a mov r2, r5 - 2d2a: 464b mov r3, r9 - 2d2c: 4788 blx r1 - 2d2e: e7fe b.n 2d2e - _lv_area_align(&base->coords, &obj->coords, align, &new_pos); - 2d30: 463a mov r2, r7 - 2d32: f104 0110 add.w r1, r4, #16 - 2d36: ab03 add r3, sp, #12 - 2d38: f105 0010 add.w r0, r5, #16 - 2d3c: f8df 9070 ldr.w r9, [pc, #112] ; 2db0 - 2d40: 47c8 blx r9 - lv_obj_t * par = lv_obj_get_parent(obj); - 2d42: 4b18 ldr r3, [pc, #96] ; (2da4 ) - 2d44: 4620 mov r0, r4 - 2d46: 4798 blx r3 - new_pos.y += y_ofs; - 2d48: f8bd 200e ldrh.w r2, [sp, #14] - new_pos.x += x_ofs; - 2d4c: f8bd 100c ldrh.w r1, [sp, #12] - lv_coord_t par_abs_y = par->coords.y1; - 2d50: f9b0 3012 ldrsh.w r3, [r0, #18] - new_pos.x -= par_abs_x; - 2d54: 8a00 ldrh r0, [r0, #16] - new_pos.y += y_ofs; - 2d56: 4442 add r2, r8 - new_pos.x += x_ofs; - 2d58: 4431 add r1, r6 - new_pos.x -= par_abs_x; - 2d5a: 1a09 subs r1, r1, r0 - new_pos.y -= par_abs_y; - 2d5c: 1ad2 subs r2, r2, r3 - new_pos.x -= par_abs_x; - 2d5e: b209 sxth r1, r1 - new_pos.y -= par_abs_y; - 2d60: b212 sxth r2, r2 - lv_obj_set_pos(obj, new_pos.x, new_pos.y); - 2d62: 4b11 ldr r3, [pc, #68] ; (2da8 ) - new_pos.x -= par_abs_x; - 2d64: f8ad 100c strh.w r1, [sp, #12] - lv_obj_set_pos(obj, new_pos.x, new_pos.y); - 2d68: 4620 mov r0, r4 - new_pos.y -= par_abs_y; - 2d6a: f8ad 200e strh.w r2, [sp, #14] - lv_obj_set_pos(obj, new_pos.x, new_pos.y); - 2d6e: 4798 blx r3 - obj->realign.origo_align = 0; - 2d70: f894 3049 ldrb.w r3, [r4, #73] ; 0x49 - obj->realign.align = align; - 2d74: f884 7048 strb.w r7, [r4, #72] ; 0x48 - obj->realign.origo_align = 0; - 2d78: f36f 0341 bfc r3, #1, #1 - obj->realign.xofs = x_ofs; - 2d7c: f8a4 6044 strh.w r6, [r4, #68] ; 0x44 - obj->realign.yofs = y_ofs; - 2d80: f8a4 8046 strh.w r8, [r4, #70] ; 0x46 - obj->realign.base = base; - 2d84: 6425 str r5, [r4, #64] ; 0x40 - obj->realign.origo_align = 0; - 2d86: f884 3049 strb.w r3, [r4, #73] ; 0x49 -} - 2d8a: b004 add sp, #16 - 2d8c: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} - 2d90: 00026f15 .word 0x00026f15 - 2d94: 000268df .word 0x000268df - 2d98: 0000eb79 .word 0x0000eb79 - 2d9c: 00026943 .word 0x00026943 - 2da0: 00001a6d .word 0x00001a6d - 2da4: 000023a9 .word 0x000023a9 - 2da8: 00002b25 .word 0x00002b25 - 2dac: 00001a65 .word 0x00001a65 - 2db0: 0000e3b5 .word 0x0000e3b5 - -00002db4 : -{ - 2db4: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - 2db8: b087 sub sp, #28 - 2dba: e9cd 2303 strd r2, r3, [sp, #12] - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 2dbe: f8df b1a4 ldr.w fp, [pc, #420] ; 2f64 -{ - 2dc2: f9bd 3040 ldrsh.w r3, [sp, #64] ; 0x40 - 2dc6: 9305 str r3, [sp, #20] - 2dc8: 4680 mov r8, r0 - 2dca: 460e mov r6, r1 - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 2dcc: 47d8 blx fp - 2dce: 4604 mov r4, r0 - 2dd0: b968 cbnz r0, 2dee - 2dd2: 4b5a ldr r3, [pc, #360] ; (2f3c ) - 2dd4: 495a ldr r1, [pc, #360] ; (2f40 ) - 2dd6: 9300 str r3, [sp, #0] - 2dd8: f240 3295 movw r2, #917 ; 0x395 - 2ddc: 2003 movs r0, #3 - 2dde: 4d59 ldr r5, [pc, #356] ; (2f44 ) - 2de0: 47a8 blx r5 - 2de2: 4859 ldr r0, [pc, #356] ; (2f48 ) - 2de4: 4959 ldr r1, [pc, #356] ; (2f4c ) - 2de6: 4642 mov r2, r8 - 2de8: 4623 mov r3, r4 - 2dea: 4788 blx r1 - 2dec: e7fe b.n 2dec - lv_coord_t new_x = lv_obj_get_x(obj); - 2dee: 4b58 ldr r3, [pc, #352] ; (2f50 ) - lv_coord_t obj_h_half = lv_obj_get_height(obj) / 2; - 2df0: f8df 9174 ldr.w r9, [pc, #372] ; 2f68 - lv_coord_t new_x = lv_obj_get_x(obj); - 2df4: 4640 mov r0, r8 - 2df6: 4798 blx r3 - lv_coord_t new_y = lv_obj_get_y(obj); - 2df8: 4b56 ldr r3, [pc, #344] ; (2f54 ) - lv_coord_t new_x = lv_obj_get_x(obj); - 2dfa: 4604 mov r4, r0 - lv_coord_t new_y = lv_obj_get_y(obj); - 2dfc: 4640 mov r0, r8 - 2dfe: 4798 blx r3 - lv_coord_t obj_w_half = lv_obj_get_width(obj) / 2; - 2e00: 4a55 ldr r2, [pc, #340] ; (2f58 ) - lv_coord_t new_y = lv_obj_get_y(obj); - 2e02: 4682 mov sl, r0 - lv_coord_t obj_w_half = lv_obj_get_width(obj) / 2; - 2e04: 4640 mov r0, r8 - 2e06: 4790 blx r2 - 2e08: 4605 mov r5, r0 - lv_coord_t obj_h_half = lv_obj_get_height(obj) / 2; - 2e0a: 4640 mov r0, r8 - 2e0c: 47c8 blx r9 - 2e0e: 4607 mov r7, r0 - if(base == NULL) { - 2e10: b91e cbnz r6, 2e1a - base = lv_obj_get_parent(obj); - 2e12: 4952 ldr r1, [pc, #328] ; (2f5c ) - 2e14: 4640 mov r0, r8 - 2e16: 4788 blx r1 - 2e18: 4606 mov r6, r0 - LV_ASSERT_OBJ(base, LV_OBJX_NAME); - 2e1a: 4630 mov r0, r6 - 2e1c: 47d8 blx fp - 2e1e: 4a4e ldr r2, [pc, #312] ; (2f58 ) - 2e20: 4683 mov fp, r0 - 2e22: b968 cbnz r0, 2e40 - 2e24: 4b45 ldr r3, [pc, #276] ; (2f3c ) - 2e26: 4946 ldr r1, [pc, #280] ; (2f40 ) - 2e28: 9300 str r3, [sp, #0] - 2e2a: f240 32a1 movw r2, #929 ; 0x3a1 - 2e2e: 2003 movs r0, #3 - 2e30: 4c44 ldr r4, [pc, #272] ; (2f44 ) - 2e32: 47a0 blx r4 - 2e34: 4844 ldr r0, [pc, #272] ; (2f48 ) - 2e36: 4945 ldr r1, [pc, #276] ; (2f4c ) - 2e38: 4632 mov r2, r6 - 2e3a: 465b mov r3, fp - 2e3c: 4788 blx r1 - 2e3e: e7fe b.n 2e3e - switch(align) { - 2e40: 9b03 ldr r3, [sp, #12] - lv_coord_t obj_w_half = lv_obj_get_width(obj) / 2; - 2e42: eb05 75d5 add.w r5, r5, r5, lsr #31 - lv_coord_t obj_h_half = lv_obj_get_height(obj) / 2; - 2e46: eb07 77d7 add.w r7, r7, r7, lsr #31 - lv_coord_t obj_w_half = lv_obj_get_width(obj) / 2; - 2e4a: f345 054f sbfx r5, r5, #1, #16 - lv_coord_t obj_h_half = lv_obj_get_height(obj) / 2; - 2e4e: f347 074f sbfx r7, r7, #1, #16 - switch(align) { - 2e52: 2b14 cmp r3, #20 - 2e54: d824 bhi.n 2ea0 - 2e56: e8df f003 tbb [pc, r3] - 2e5a: 580b .short 0x580b - 2e5c: 4b5e6119 .word 0x4b5e6119 - 2e60: 58665b6b .word 0x58665b6b - 2e64: 4b5e6119 .word 0x4b5e6119 - 2e68: 5e5b586b .word 0x5e5b586b - 2e6c: 6661 .short 0x6661 - 2e6e: 6b .byte 0x6b - 2e6f: 00 .byte 0x00 - new_x = lv_obj_get_width(base) / 2 - obj_w_half; - 2e70: 4630 mov r0, r6 - 2e72: 4790 blx r2 - 2e74: eb00 70d0 add.w r0, r0, r0, lsr #31 - 2e78: ebc5 0460 rsb r4, r5, r0, asr #1 - 2e7c: b224 sxth r4, r4 - new_y = lv_obj_get_height(base) / 2 - obj_h_half; - 2e7e: 4630 mov r0, r6 - 2e80: 47c8 blx r9 - 2e82: eb00 70d0 add.w r0, r0, r0, lsr #31 - 2e86: ebc7 0360 rsb r3, r7, r0, asr #1 - 2e8a: e007 b.n 2e9c - new_x = lv_obj_get_width(base) / 2 - obj_w_half; - 2e8c: 4630 mov r0, r6 - 2e8e: 4790 blx r2 - 2e90: eb00 70d0 add.w r0, r0, r0, lsr #31 - 2e94: ebc5 0460 rsb r4, r5, r0, asr #1 - 2e98: b224 sxth r4, r4 - new_y = -obj_h_half; - 2e9a: 427b negs r3, r7 - new_y = lv_obj_get_height(base) / 2 - obj_h_half; - 2e9c: fa0f fa83 sxth.w sl, r3 - lv_obj_t * par = lv_obj_get_parent(obj); - 2ea0: 4a2e ldr r2, [pc, #184] ; (2f5c ) - 2ea2: 4640 mov r0, r8 - 2ea4: 4790 blx r2 - new_x += x_ofs + base_abs_x; - 2ea6: 9b04 ldr r3, [sp, #16] - 2ea8: 8a31 ldrh r1, [r6, #16] - new_x -= par_abs_x; - 2eaa: 8a02 ldrh r2, [r0, #16] - new_x += x_ofs + base_abs_x; - 2eac: 4419 add r1, r3 - 2eae: 4421 add r1, r4 - new_y += y_ofs + base_abs_y; - 2eb0: 9b05 ldr r3, [sp, #20] - new_x -= par_abs_x; - 2eb2: 1a89 subs r1, r1, r2 - new_y += y_ofs + base_abs_y; - 2eb4: 8a72 ldrh r2, [r6, #18] - 2eb6: 441a add r2, r3 - new_y -= par_abs_y; - 2eb8: 8a43 ldrh r3, [r0, #18] - new_y += y_ofs + base_abs_y; - 2eba: 4452 add r2, sl - new_y -= par_abs_y; - 2ebc: 1ad2 subs r2, r2, r3 - lv_obj_set_pos(obj, new_x, new_y); - 2ebe: b212 sxth r2, r2 - 2ec0: 4b27 ldr r3, [pc, #156] ; (2f60 ) - 2ec2: b209 sxth r1, r1 - 2ec4: 4640 mov r0, r8 - 2ec6: 4798 blx r3 - obj->realign.align = align; - 2ec8: 9b03 ldr r3, [sp, #12] - 2eca: f888 3048 strb.w r3, [r8, #72] ; 0x48 - obj->realign.xofs = x_ofs; - 2ece: 9b04 ldr r3, [sp, #16] - 2ed0: f8a8 3044 strh.w r3, [r8, #68] ; 0x44 - obj->realign.yofs = y_ofs; - 2ed4: 9b05 ldr r3, [sp, #20] - 2ed6: f8a8 3046 strh.w r3, [r8, #70] ; 0x46 - obj->realign.origo_align = 1; - 2eda: f898 3049 ldrb.w r3, [r8, #73] ; 0x49 - obj->realign.base = base; - 2ede: f8c8 6040 str.w r6, [r8, #64] ; 0x40 - obj->realign.origo_align = 1; - 2ee2: f043 0302 orr.w r3, r3, #2 - 2ee6: f888 3049 strb.w r3, [r8, #73] ; 0x49 -} - 2eea: b007 add sp, #28 - 2eec: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - new_x = lv_obj_get_width(base) / 2 - obj_w_half; - 2ef0: 4630 mov r0, r6 - 2ef2: 4790 blx r2 - 2ef4: eb00 70d0 add.w r0, r0, r0, lsr #31 - 2ef8: ebc5 0460 rsb r4, r5, r0, asr #1 - 2efc: b224 sxth r4, r4 - new_y = lv_obj_get_height(base) - obj_h_half; - 2efe: 4630 mov r0, r6 - 2f00: 47c8 blx r9 - 2f02: 1bc0 subs r0, r0, r7 - 2f04: fa0f fa80 sxth.w sl, r0 - break; - 2f08: e7ca b.n 2ea0 - new_x = -obj_w_half; - 2f0a: 426d negs r5, r5 - 2f0c: b22c sxth r4, r5 - new_y = -obj_h_half; - 2f0e: e7c4 b.n 2e9a - new_x = -obj_w_half; - 2f10: 426d negs r5, r5 - 2f12: b22c sxth r4, r5 - new_y = lv_obj_get_height(base) / 2 - obj_h_half; - 2f14: e7b3 b.n 2e7e - new_x = -obj_w_half; - 2f16: 426d negs r5, r5 - 2f18: b22c sxth r4, r5 - new_y = lv_obj_get_height(base) - obj_h_half; - 2f1a: e7f0 b.n 2efe - new_x = lv_obj_get_width(base) - obj_w_half; - 2f1c: 4630 mov r0, r6 - 2f1e: 4790 blx r2 - 2f20: 1b40 subs r0, r0, r5 - 2f22: b204 sxth r4, r0 - 2f24: e7b9 b.n 2e9a - new_x = lv_obj_get_width(base) - obj_w_half; - 2f26: 4630 mov r0, r6 - 2f28: 4790 blx r2 - 2f2a: 1b40 subs r0, r0, r5 - 2f2c: b204 sxth r4, r0 - 2f2e: e7a6 b.n 2e7e - new_x = lv_obj_get_width(base) - obj_w_half; - 2f30: 4630 mov r0, r6 - 2f32: 4790 blx r2 - 2f34: 1b40 subs r0, r0, r5 - 2f36: b204 sxth r4, r0 - 2f38: e7e1 b.n 2efe - 2f3a: bf00 nop - 2f3c: 00026f22 .word 0x00026f22 - 2f40: 000268df .word 0x000268df - 2f44: 0000eb79 .word 0x0000eb79 - 2f48: 00026943 .word 0x00026943 - 2f4c: 00001a6d .word 0x00001a6d - 2f50: 000025b1 .word 0x000025b1 - 2f54: 00002611 .word 0x00002611 - 2f58: 00002671 .word 0x00002671 - 2f5c: 000023a9 .word 0x000023a9 - 2f60: 00002b25 .word 0x00002b25 - 2f64: 00001a65 .word 0x00001a65 - 2f68: 000026c1 .word 0x000026c1 - -00002f6c : -{ - 2f6c: b573 push {r0, r1, r4, r5, r6, lr} - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 2f6e: 4b12 ldr r3, [pc, #72] ; (2fb8 ) -{ - 2f70: 4604 mov r4, r0 - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 2f72: 4798 blx r3 - 2f74: 4605 mov r5, r0 - 2f76: b968 cbnz r0, 2f94 - 2f78: 4b10 ldr r3, [pc, #64] ; (2fbc ) - 2f7a: 4911 ldr r1, [pc, #68] ; (2fc0 ) - 2f7c: 9300 str r3, [sp, #0] - 2f7e: f240 422a movw r2, #1066 ; 0x42a - 2f82: 2003 movs r0, #3 - 2f84: 4e0f ldr r6, [pc, #60] ; (2fc4 ) - 2f86: 47b0 blx r6 - 2f88: 480f ldr r0, [pc, #60] ; (2fc8 ) - 2f8a: 4910 ldr r1, [pc, #64] ; (2fcc ) - 2f8c: 4622 mov r2, r4 - 2f8e: 462b mov r3, r5 - 2f90: 4788 blx r1 - 2f92: e7fe b.n 2f92 - if(obj->realign.origo_align) - 2f94: f894 5049 ldrb.w r5, [r4, #73] ; 0x49 - lv_obj_align_origo(obj, obj->realign.base, obj->realign.align, obj->realign.xofs, obj->realign.yofs); - 2f98: f9b4 0046 ldrsh.w r0, [r4, #70] ; 0x46 - 2f9c: 6c21 ldr r1, [r4, #64] ; 0x40 - 2f9e: f894 2048 ldrb.w r2, [r4, #72] ; 0x48 - 2fa2: f9b4 3044 ldrsh.w r3, [r4, #68] ; 0x44 - 2fa6: 9000 str r0, [sp, #0] - 2fa8: 4620 mov r0, r4 - if(obj->realign.origo_align) - 2faa: 07ac lsls r4, r5, #30 - lv_obj_align_origo(obj, obj->realign.base, obj->realign.align, obj->realign.xofs, obj->realign.yofs); - 2fac: bf4c ite mi - 2fae: 4c08 ldrmi r4, [pc, #32] ; (2fd0 ) - lv_obj_align(obj, obj->realign.base, obj->realign.align, obj->realign.xofs, obj->realign.yofs); - 2fb0: 4c08 ldrpl r4, [pc, #32] ; (2fd4 ) - 2fb2: 47a0 blx r4 -} - 2fb4: b002 add sp, #8 - 2fb6: bd70 pop {r4, r5, r6, pc} - 2fb8: 00001a65 .word 0x00001a65 - 2fbc: 00026f35 .word 0x00026f35 - 2fc0: 000268df .word 0x000268df - 2fc4: 0000eb79 .word 0x0000eb79 - 2fc8: 00026943 .word 0x00026943 - 2fcc: 00001a6d .word 0x00001a6d - 2fd0: 00002db5 .word 0x00002db5 - 2fd4: 00002ccd .word 0x00002ccd - -00002fd8 : -{ - 2fd8: b5f8 push {r3, r4, r5, r6, r7, lr} - lv_obj_t * child = lv_obj_get_child(obj, NULL); - 2fda: 2100 movs r1, #0 - 2fdc: 4e0b ldr r6, [pc, #44] ; (300c ) - lv_obj_invalidate(child); - 2fde: 4f0c ldr r7, [pc, #48] ; (3010 ) -{ - 2fe0: 4605 mov r5, r0 - lv_obj_t * child = lv_obj_get_child(obj, NULL); - 2fe2: 47b0 blx r6 - 2fe4: 4604 mov r4, r0 - while(child != NULL) { - 2fe6: b904 cbnz r4, 2fea -} - 2fe8: bdf8 pop {r3, r4, r5, r6, r7, pc} - lv_obj_invalidate(child); - 2fea: 4620 mov r0, r4 - 2fec: 47b8 blx r7 - child->signal_cb(child, LV_SIGNAL_STYLE_CHG, NULL); - 2fee: 69e3 ldr r3, [r4, #28] - 2ff0: 2200 movs r2, #0 - 2ff2: 2104 movs r1, #4 - 2ff4: 4620 mov r0, r4 - 2ff6: 4798 blx r3 - lv_obj_invalidate(child); - 2ff8: 4620 mov r0, r4 - 2ffa: 47b8 blx r7 - refresh_children_style(child); /*Check children too*/ - 2ffc: 4620 mov r0, r4 - 2ffe: f7ff ffeb bl 2fd8 - child = lv_obj_get_child(obj, child); - 3002: 4621 mov r1, r4 - 3004: 4628 mov r0, r5 - 3006: 47b0 blx r6 - 3008: 4604 mov r4, r0 - 300a: e7ec b.n 2fe6 - 300c: 000024f5 .word 0x000024f5 - 3010: 00002a09 .word 0x00002a09 - -00003014 : -{ - 3014: b573 push {r0, r1, r4, r5, r6, lr} - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 3016: 4b36 ldr r3, [pc, #216] ; (30f0 ) -{ - 3018: 4605 mov r5, r0 - 301a: 460c mov r4, r1 - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 301c: 4798 blx r3 - 301e: 4606 mov r6, r0 - 3020: b968 cbnz r0, 303e - 3022: 4b34 ldr r3, [pc, #208] ; (30f4 ) - 3024: 4934 ldr r1, [pc, #208] ; (30f8 ) - 3026: 9300 str r3, [sp, #0] - 3028: f240 521d movw r2, #1309 ; 0x51d - 302c: 2003 movs r0, #3 - 302e: 4c33 ldr r4, [pc, #204] ; (30fc ) - 3030: 47a0 blx r4 - 3032: 4833 ldr r0, [pc, #204] ; (3100 ) - 3034: 4933 ldr r1, [pc, #204] ; (3104 ) - 3036: 462a mov r2, r5 - 3038: 4633 mov r3, r6 - 303a: 4788 blx r1 - 303c: e7fe b.n 303c - switch(prop) { - 303e: 2c90 cmp r4, #144 ; 0x90 - 3040: 4e31 ldr r6, [pc, #196] ; (3108 ) - 3042: d838 bhi.n 30b6 - 3044: 2c72 cmp r4, #114 ; 0x72 - 3046: d819 bhi.n 307c - 3048: 2c53 cmp r4, #83 ; 0x53 - 304a: d82e bhi.n 30aa - 304c: 2c3f cmp r4, #63 ; 0x3f - 304e: d822 bhi.n 3096 - 3050: 2c07 cmp r4, #7 - 3052: d825 bhi.n 30a0 - 3054: 2c01 cmp r4, #1 - 3056: d918 bls.n 308a - lv_obj_invalidate(obj); - 3058: 4628 mov r0, r5 - 305a: 47b0 blx r6 - obj->signal_cb(obj, LV_SIGNAL_STYLE_CHG, NULL); - 305c: 69eb ldr r3, [r5, #28] - 305e: 2200 movs r2, #0 - 3060: 2104 movs r1, #4 - 3062: 4628 mov r0, r5 - 3064: 4798 blx r3 - switch(prop) { - 3066: 2c18 cmp r4, #24 - 3068: d834 bhi.n 30d4 - 306a: 2c14 cmp r4, #20 - 306c: d934 bls.n 30d8 - if(obj->parent) obj->parent->signal_cb(obj->parent, LV_SIGNAL_CHILD_CHG, NULL); - 306e: 6828 ldr r0, [r5, #0] - 3070: b390 cbz r0, 30d8 - 3072: 69c3 ldr r3, [r0, #28] - 3074: 2200 movs r2, #0 - 3076: 2101 movs r1, #1 - 3078: 4798 blx r3 - 307a: e02d b.n 30d8 - 307c: f1a4 0273 sub.w r2, r4, #115 ; 0x73 - 3080: 4b22 ldr r3, [pc, #136] ; (310c ) - 3082: b292 uxth r2, r2 - 3084: 40d3 lsrs r3, r2 - 3086: 07da lsls r2, r3, #31 - 3088: d4e6 bmi.n 3058 - lv_obj_invalidate(obj); - 308a: 4628 mov r0, r5 - 308c: 4633 mov r3, r6 -} - 308e: b002 add sp, #8 - 3090: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr} - if(prop == LV_STYLE_PROP_ALL || (prop & LV_STYLE_INHERIT_MASK)) refresh_children_style(obj); - 3094: 4718 bx r3 - 3096: f1a4 0240 sub.w r2, r4, #64 ; 0x40 - 309a: 4b1d ldr r3, [pc, #116] ; (3110 ) - 309c: b292 uxth r2, r2 - 309e: e7f1 b.n 3084 - switch(prop) { - 30a0: f1a4 0310 sub.w r3, r4, #16 - 30a4: 2b08 cmp r3, #8 - 30a6: d8f0 bhi.n 308a - 30a8: e7d6 b.n 3058 - 30aa: 2c5c cmp r4, #92 ; 0x5c - 30ac: d0d4 beq.n 3058 - 30ae: f1a4 0370 sub.w r3, r4, #112 ; 0x70 - 30b2: 2b01 cmp r3, #1 - 30b4: e7f7 b.n 30a6 - 30b6: f248 0381 movw r3, #32897 ; 0x8081 - 30ba: 429c cmp r4, r3 - 30bc: d806 bhi.n 30cc - 30be: f248 037f movw r3, #32895 ; 0x807f - 30c2: 429c cmp r4, r3 - 30c4: d8c8 bhi.n 3058 - 30c6: 2cff cmp r4, #255 ; 0xff - 30c8: d1df bne.n 308a - 30ca: e7c5 b.n 3058 - 30cc: f248 038e movw r3, #32910 ; 0x808e - 30d0: 429c cmp r4, r3 - 30d2: e7f9 b.n 30c8 - switch(prop) { - 30d4: 2cff cmp r4, #255 ; 0xff - 30d6: d0ca beq.n 306e - lv_obj_invalidate(obj); - 30d8: 4628 mov r0, r5 - 30da: 47b0 blx r6 - if(prop == LV_STYLE_PROP_ALL || (prop & LV_STYLE_INHERIT_MASK)) refresh_children_style(obj); - 30dc: 2cff cmp r4, #255 ; 0xff - 30de: d001 beq.n 30e4 - 30e0: 0423 lsls r3, r4, #16 - 30e2: d502 bpl.n 30ea - 30e4: 4b0b ldr r3, [pc, #44] ; (3114 ) - 30e6: 4628 mov r0, r5 - 30e8: e7d1 b.n 308e -} - 30ea: b002 add sp, #8 - 30ec: bd70 pop {r4, r5, r6, pc} - 30ee: bf00 nop - 30f0: 00001a65 .word 0x00001a65 - 30f4: 00026f44 .word 0x00026f44 - 30f8: 000268df .word 0x000268df - 30fc: 0000eb79 .word 0x0000eb79 - 3100: 00026943 .word 0x00026943 - 3104: 00001a6d .word 0x00001a6d - 3108: 00002a09 .word 0x00002a09 - 310c: 20001a07 .word 0x20001a07 - 3110: 000f1003 .word 0x000f1003 - 3114: 00002fd9 .word 0x00002fd9 - -00003118 : -{ - 3118: b510 push {r4, lr} - lv_obj_clean_style_list(obj, part); - 311a: 4b04 ldr r3, [pc, #16] ; (312c ) -{ - 311c: 4604 mov r4, r0 - lv_obj_clean_style_list(obj, part); - 311e: 4798 blx r3 - lv_obj_refresh_style(obj, LV_STYLE_PROP_ALL); - 3120: 4620 mov r0, r4 - 3122: 4b03 ldr r3, [pc, #12] ; (3130 ) -} - 3124: e8bd 4010 ldmia.w sp!, {r4, lr} - lv_obj_refresh_style(obj, LV_STYLE_PROP_ALL); - 3128: 21ff movs r1, #255 ; 0xff - 312a: 4718 bx r3 - 312c: 000027cd .word 0x000027cd - 3130: 00003015 .word 0x00003015 - -00003134 : -{ - 3134: b5f8 push {r3, r4, r5, r6, r7, lr} - lv_style_list_t * dsc = lv_obj_get_style_list(obj, part_sub); - 3136: 4c1e ldr r4, [pc, #120] ; (31b0 ) -{ - 3138: 4606 mov r6, r0 - 313a: 460d mov r5, r1 - 313c: 2700 movs r7, #0 - lv_style_list_t * dsc = lv_obj_get_style_list(obj, part_sub); - 313e: b2f9 uxtb r1, r7 - 3140: 4628 mov r0, r5 - 3142: 47a0 blx r4 - if(dsc == NULL) break; - 3144: 4602 mov r2, r0 - 3146: b1f8 cbz r0, 3188 - for(ci = 0; ci < dsc->style_cnt; ci++) { - 3148: 7901 ldrb r1, [r0, #4] - 314a: f04f 0c00 mov.w ip, #0 - 314e: fa5f f38c uxtb.w r3, ip - 3152: 4299 cmp r1, r3 - 3154: d915 bls.n 3182 - */ -void _lv_style_list_reset(lv_style_list_t * style_list); - -static inline lv_style_t * lv_style_list_get_style(lv_style_list_t * list, uint8_t id) -{ - if(list->has_trans && list->skip_trans) id++; - 3156: 7950 ldrb r0, [r2, #5] - 3158: f000 0006 and.w r0, r0, #6 - 315c: 2806 cmp r0, #6 - 315e: d123 bne.n 31a8 - 3160: 3301 adds r3, #1 - 3162: b2db uxtb r3, r3 - if(list->style_cnt == 0 || id >= list->style_cnt) return NULL; - 3164: 4299 cmp r1, r3 - 3166: d916 bls.n 3196 - return list->style_list[id]; - 3168: 6810 ldr r0, [r2, #0] - 316a: f850 3023 ldr.w r3, [r0, r3, lsl #2] - if(class == style || style == NULL) { - 316e: 429e cmp r6, r3 - 3170: d003 beq.n 317a - 3172: f10c 0c01 add.w ip, ip, #1 - 3176: 2e00 cmp r6, #0 - 3178: d1e9 bne.n 314e - lv_obj_refresh_style(obj, LV_STYLE_PROP_ALL); - 317a: 4b0e ldr r3, [pc, #56] ; (31b4 ) - 317c: 21ff movs r1, #255 ; 0xff - 317e: 4628 mov r0, r5 - 3180: 4798 blx r3 - for(part_sub = 0; part_sub != _LV_OBJ_PART_REAL_LAST; part_sub++) { - 3182: 3701 adds r7, #1 - 3184: 2f40 cmp r7, #64 ; 0x40 - 3186: d1da bne.n 313e - lv_obj_t * child = lv_obj_get_child(obj, NULL); - 3188: 4f0b ldr r7, [pc, #44] ; (31b8 ) - 318a: 2100 movs r1, #0 - 318c: 4628 mov r0, r5 - child = lv_obj_get_child(obj, child); - 318e: 47b8 blx r7 - 3190: 4604 mov r4, r0 - while(child) { - 3192: b910 cbnz r0, 319a -} - 3194: bdf8 pop {r3, r4, r5, r6, r7, pc} - if(list->style_cnt == 0 || id >= list->style_cnt) return NULL; - 3196: 2300 movs r3, #0 - 3198: e7e9 b.n 316e - report_style_mod_core(style, child); - 319a: 4621 mov r1, r4 - 319c: 4630 mov r0, r6 - 319e: f7ff ffc9 bl 3134 - child = lv_obj_get_child(obj, child); - 31a2: 4621 mov r1, r4 - 31a4: 4628 mov r0, r5 - 31a6: e7f2 b.n 318e - 31a8: 2900 cmp r1, #0 - 31aa: d1dd bne.n 3168 - 31ac: 460b mov r3, r1 - 31ae: e7de b.n 316e - 31b0: 00002711 .word 0x00002711 - 31b4: 00003015 .word 0x00003015 - 31b8: 000024f5 .word 0x000024f5 - -000031bc : -{ - 31bc: e92d 4ff8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr} - lv_disp_t * d = lv_disp_get_next(NULL); - 31c0: 4f0f ldr r7, [pc, #60] ; (3200 ) - _LV_LL_READ(d->scr_ll, i) { - 31c2: f8df 9040 ldr.w r9, [pc, #64] ; 3204 - report_style_mod_core(style, i); - 31c6: f8df a040 ldr.w sl, [pc, #64] ; 3208 -{ - 31ca: 4606 mov r6, r0 - lv_disp_t * d = lv_disp_get_next(NULL); - 31cc: 2000 movs r0, #0 - 31ce: 47b8 blx r7 - 31d0: 4604 mov r4, r0 - while(d) { - 31d2: b90c cbnz r4, 31d8 -} - 31d4: e8bd 8ff8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} - _LV_LL_READ(d->scr_ll, i) { - 31d8: f104 0830 add.w r8, r4, #48 ; 0x30 - 31dc: 4640 mov r0, r8 - 31de: 47c8 blx r9 - 31e0: f8df b028 ldr.w fp, [pc, #40] ; 320c - 31e4: 4605 mov r5, r0 - 31e6: b91d cbnz r5, 31f0 - d = lv_disp_get_next(d); - 31e8: 4620 mov r0, r4 - 31ea: 47b8 blx r7 - 31ec: 4604 mov r4, r0 - 31ee: e7f0 b.n 31d2 - report_style_mod_core(style, i); - 31f0: 4629 mov r1, r5 - 31f2: 4630 mov r0, r6 - 31f4: 47d0 blx sl - _LV_LL_READ(d->scr_ll, i) { - 31f6: 4629 mov r1, r5 - 31f8: 4640 mov r0, r8 - 31fa: 47d8 blx fp - 31fc: 4605 mov r5, r0 - 31fe: e7f2 b.n 31e6 - 3200: 0000dc49 .word 0x0000dc49 - 3204: 0000e92d .word 0x0000e92d - 3208: 00003135 .word 0x00003135 - 320c: 0000e939 .word 0x0000e939 - -00003210 : -{ - 3210: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} - lv_style_list_t * list = lv_obj_get_style_list(tr->obj, tr->part); - 3214: 4b3b ldr r3, [pc, #236] ; (3304 ) -{ - 3216: 4604 mov r4, r0 - 3218: 460d mov r5, r1 - lv_style_list_t * list = lv_obj_get_style_list(tr->obj, tr->part); - 321a: 7981 ldrb r1, [r0, #6] - 321c: 6800 ldr r0, [r0, #0] - 321e: 4798 blx r3 - lv_style_t * style = _lv_style_list_get_transition_style(list); - 3220: 4b39 ldr r3, [pc, #228] ; (3308 ) - 3222: 4798 blx r3 - if((tr->prop & 0xF) < LV_STYLE_ID_COLOR) { /*Value*/ - 3224: 88a1 ldrh r1, [r4, #4] - 3226: f001 030f and.w r3, r1, #15 - 322a: 2b08 cmp r3, #8 - 322c: d816 bhi.n 325c - if(v == 0) x = tr->start_value._int; - 322e: b94d cbnz r5, 3244 - 3230: f9b4 2008 ldrsh.w r2, [r4, #8] - _lv_style_set_int(style, tr->prop, x); - 3234: 4b35 ldr r3, [pc, #212] ; (330c ) - 3236: 4798 blx r3 - lv_obj_refresh_style(tr->obj, tr->prop); - 3238: 88a1 ldrh r1, [r4, #4] - 323a: 6820 ldr r0, [r4, #0] - 323c: 4b34 ldr r3, [pc, #208] ; (3310 ) -} - 323e: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr} - lv_obj_refresh_style(tr->obj, tr->prop); - 3242: 4718 bx r3 - else if(v == 255) x = tr->end_value._int; - 3244: 2dff cmp r5, #255 ; 0xff - 3246: f9b4 200c ldrsh.w r2, [r4, #12] - 324a: d0f3 beq.n 3234 - else x = tr->start_value._int + ((int32_t)((int32_t)(tr->end_value._int - tr->start_value._int) * v) >> 8); - 324c: f9b4 3008 ldrsh.w r3, [r4, #8] - 3250: 1ad2 subs r2, r2, r3 - 3252: 436a muls r2, r5 - 3254: eb03 2322 add.w r3, r3, r2, asr #8 - 3258: b21a sxth r2, r3 - 325a: e7eb b.n 3234 - else if((tr->prop & 0xF) < LV_STYLE_ID_OPA) { /*Color*/ - 325c: 2b0b cmp r3, #11 - 325e: d838 bhi.n 32d2 - if(v <= 0) x = tr->start_value._color; - 3260: 2d00 cmp r5, #0 - 3262: dc03 bgt.n 326c - 3264: 8922 ldrh r2, [r4, #8] - _lv_style_set_color(style, tr->prop, x); - 3266: 4b2b ldr r3, [pc, #172] ; (3314 ) - 3268: 4798 blx r3 - 326a: e7e5 b.n 3238 - else if(v >= 255) x = tr->end_value._color; - 326c: 2dfe cmp r5, #254 ; 0xfe - 326e: dd01 ble.n 3274 - 3270: 89a2 ldrh r2, [r4, #12] - 3272: e7f8 b.n 3266 -{ - lv_color_t ret; -#if LV_COLOR_DEPTH != 1 - /*LV_COLOR_DEPTH == 8, 16 or 32*/ - LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix))); - LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix))); - 3274: 8923 ldrh r3, [r4, #8] - 3276: 89a2 ldrh r2, [r4, #12] - LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix))); - 3278: f894 c008 ldrb.w ip, [r4, #8] - LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix))); - 327c: f1c5 07ff rsb r7, r5, #255 ; 0xff - LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix))); - 3280: f3c3 1345 ubfx r3, r3, #5, #6 - 3284: 437b muls r3, r7 - 3286: f3c2 1245 ubfx r2, r2, #5, #6 - 328a: fb15 3202 smlabb r2, r5, r2, r3 - LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix))); - 328e: 7b23 ldrb r3, [r4, #12] - 3290: f00c 0c1f and.w ip, ip, #31 - 3294: fb07 fc0c mul.w ip, r7, ip - 3298: f003 031f and.w r3, r3, #31 - LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix))); - 329c: f248 0681 movw r6, #32897 ; 0x8081 - LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix))); - 32a0: fb15 c303 smlabb r3, r5, r3, ip - LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix))); - 32a4: 4372 muls r2, r6 - LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix))); - 32a6: 4373 muls r3, r6 - 32a8: f3c3 53c4 ubfx r3, r3, #23, #5 - LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix))); - 32ac: f894 c009 ldrb.w ip, [r4, #9] - 32b0: f3c2 52c5 ubfx r2, r2, #23, #6 - 32b4: ea43 1242 orr.w r2, r3, r2, lsl #5 - 32b8: 7b63 ldrb r3, [r4, #13] - 32ba: ea4f 0cdc mov.w ip, ip, lsr #3 - 32be: 08db lsrs r3, r3, #3 - 32c0: fb07 f70c mul.w r7, r7, ip - 32c4: fb15 7303 smlabb r3, r5, r3, r7 - 32c8: 4373 muls r3, r6 - 32ca: 0ddb lsrs r3, r3, #23 - 32cc: ea42 22c3 orr.w r2, r2, r3, lsl #11 - 32d0: e7c9 b.n 3266 - else if((tr->prop & 0xF) < LV_STYLE_ID_PTR) { /*Opa*/ - 32d2: 2b0d cmp r3, #13 - 32d4: d80f bhi.n 32f6 - if(v <= 0) x = tr->start_value._opa; - 32d6: 2d00 cmp r5, #0 - 32d8: dc03 bgt.n 32e2 - 32da: 7a22 ldrb r2, [r4, #8] - _lv_style_set_opa(style, tr->prop, x); - 32dc: 4b0e ldr r3, [pc, #56] ; (3318 ) - 32de: 4798 blx r3 - 32e0: e7aa b.n 3238 - else if(v >= 255) x = tr->end_value._opa; - 32e2: 2dfe cmp r5, #254 ; 0xfe - 32e4: 7b22 ldrb r2, [r4, #12] - 32e6: dcf9 bgt.n 32dc - else x = tr->start_value._opa + (((tr->end_value._opa - tr->start_value._opa) * v) >> 8); - 32e8: 7a23 ldrb r3, [r4, #8] - 32ea: 1ad2 subs r2, r2, r3 - 32ec: 436a muls r2, r5 - 32ee: eb03 2322 add.w r3, r3, r2, asr #8 - 32f2: b2da uxtb r2, r3 - 32f4: e7f2 b.n 32dc - if(v < 128) x = tr->start_value._ptr; - 32f6: 2d7f cmp r5, #127 ; 0x7f - 32f8: bfd4 ite le - 32fa: 68a2 ldrle r2, [r4, #8] - else x = tr->end_value._ptr; - 32fc: 68e2 ldrgt r2, [r4, #12] - _lv_style_set_ptr(style, tr->prop, x); - 32fe: 4b07 ldr r3, [pc, #28] ; (331c ) - 3300: 4798 blx r3 - 3302: e799 b.n 3238 - 3304: 00002711 .word 0x00002711 - 3308: 00005f3d .word 0x00005f3d - 330c: 00005afd .word 0x00005afd - 3310: 00003015 .word 0x00003015 - 3314: 00005bcd .word 0x00005bcd - 3318: 00005c9d .word 0x00005c9d - 331c: 00005d71 .word 0x00005d71 - -00003320 : -{ - 3320: b573 push {r0, r1, r4, r5, r6, lr} - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 3322: 4b0b ldr r3, [pc, #44] ; (3350 ) -{ - 3324: 4605 mov r5, r0 - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 3326: 4798 blx r3 - 3328: 4604 mov r4, r0 - 332a: b968 cbnz r0, 3348 - 332c: 4b09 ldr r3, [pc, #36] ; (3354 ) - 332e: 490a ldr r1, [pc, #40] ; (3358 ) - 3330: 9300 str r3, [sp, #0] - 3332: f640 22b1 movw r2, #2737 ; 0xab1 - 3336: 2003 movs r0, #3 - 3338: 4e08 ldr r6, [pc, #32] ; (335c ) - 333a: 47b0 blx r6 - 333c: 4808 ldr r0, [pc, #32] ; (3360 ) - 333e: 4909 ldr r1, [pc, #36] ; (3364 ) - 3340: 462a mov r2, r5 - 3342: 4623 mov r3, r4 - 3344: 4788 blx r1 - 3346: e7fe b.n 3346 -} - 3348: 2000 movs r0, #0 - 334a: b002 add sp, #8 - 334c: bd70 pop {r4, r5, r6, pc} - 334e: bf00 nop - 3350: 00001a65 .word 0x00001a65 - 3354: 00027005 .word 0x00027005 - 3358: 000268df .word 0x000268df - 335c: 0000eb79 .word 0x0000eb79 - 3360: 00026943 .word 0x00026943 - 3364: 00001a6d .word 0x00001a6d - -00003368 : -{ - 3368: e92d 47ff stmdb sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, lr} - 336c: 460d mov r5, r1 - if(parent == NULL) { - 336e: 4606 mov r6, r0 - 3370: 2800 cmp r0, #0 - 3372: d177 bne.n 3464 - lv_disp_t * disp = lv_disp_get_default(); - 3374: 4b89 ldr r3, [pc, #548] ; (359c ) - 3376: 4798 blx r3 - if(!disp) { - 3378: 4604 mov r4, r0 - 337a: b940 cbnz r0, 338e - LV_LOG_WARN("lv_obj_create: not display created to so far. No place to assign the new screen"); - 337c: 4b88 ldr r3, [pc, #544] ; (35a0 ) - 337e: 9300 str r3, [sp, #0] - 3380: 4988 ldr r1, [pc, #544] ; (35a4 ) - 3382: 4b89 ldr r3, [pc, #548] ; (35a8 ) - 3384: 22cf movs r2, #207 ; 0xcf - 3386: 2002 movs r0, #2 - LV_LOG_INFO("Object create ready"); - 3388: 4d88 ldr r5, [pc, #544] ; (35ac ) - 338a: 47a8 blx r5 - return new_obj; - 338c: e016 b.n 33bc - new_obj = _lv_ll_ins_head(&disp->scr_ll); - 338e: 4b88 ldr r3, [pc, #544] ; (35b0 ) - 3390: 3030 adds r0, #48 ; 0x30 - 3392: 4798 blx r3 - LV_ASSERT_MEM(new_obj); - 3394: 4b87 ldr r3, [pc, #540] ; (35b4 ) - new_obj = _lv_ll_ins_head(&disp->scr_ll); - 3396: 4604 mov r4, r0 - LV_ASSERT_MEM(new_obj); - 3398: 4798 blx r3 - 339a: 4607 mov r7, r0 - 339c: b960 cbnz r0, 33b8 - 339e: 4b82 ldr r3, [pc, #520] ; (35a8 ) - 33a0: 4980 ldr r1, [pc, #512] ; (35a4 ) - 33a2: 9300 str r3, [sp, #0] - 33a4: 22d4 movs r2, #212 ; 0xd4 - 33a6: 2003 movs r0, #3 - 33a8: 4d80 ldr r5, [pc, #512] ; (35ac ) - 33aa: 47a8 blx r5 - 33ac: 4882 ldr r0, [pc, #520] ; (35b8 ) - 33ae: 4983 ldr r1, [pc, #524] ; (35bc ) - 33b0: 4622 mov r2, r4 - 33b2: 463b mov r3, r7 - 33b4: 4788 blx r1 - 33b6: e7fe b.n 33b6 - if(new_obj == NULL) return NULL; - 33b8: b924 cbnz r4, 33c4 - 33ba: 2400 movs r4, #0 -} - 33bc: 4620 mov r0, r4 - 33be: b004 add sp, #16 - 33c0: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} - _lv_memset_00(new_obj, sizeof(lv_obj_t)); - 33c4: 214c movs r1, #76 ; 0x4c - 33c6: 4b7e ldr r3, [pc, #504] ; (35c0 ) - 33c8: 4620 mov r0, r4 - 33ca: 4798 blx r3 - new_obj->base_dir = LV_BIDI_DIR_LTR; - 33cc: f894 3035 ldrb.w r3, [r4, #53] ; 0x35 - new_obj->event_cb = NULL; - 33d0: 61a6 str r6, [r4, #24] - new_obj->base_dir = LV_BIDI_DIR_LTR; - 33d2: f366 1305 bfi r3, r6, #4, #2 - 33d6: f884 3035 strb.w r3, [r4, #53] ; 0x35 - new_obj->signal_cb = lv_obj_signal; - 33da: 4b7a ldr r3, [pc, #488] ; (35c4 ) - 33dc: 61e3 str r3, [r4, #28] - new_obj->design_cb = lv_obj_design; - 33de: 4b7a ldr r3, [pc, #488] ; (35c8 ) - 33e0: 6223 str r3, [r4, #32] - new_obj->coords.x1 = 0; - 33e2: 6126 str r6, [r4, #16] - new_obj->coords.x2 = lv_disp_get_hor_res(NULL) - 1; - 33e4: 4b79 ldr r3, [pc, #484] ; (35cc ) - 33e6: 4630 mov r0, r6 - 33e8: 4798 blx r3 - 33ea: 3801 subs r0, #1 - 33ec: 82a0 strh r0, [r4, #20] - new_obj->coords.y2 = lv_disp_get_ver_res(NULL) - 1; - 33ee: 4b78 ldr r3, [pc, #480] ; (35d0 ) - 33f0: 4630 mov r0, r6 - 33f2: 4798 blx r3 - 33f4: 3801 subs r0, #1 - 33f6: 82e0 strh r0, [r4, #22] - _lv_ll_init(&(new_obj->child_ll), sizeof(lv_obj_t)); - 33f8: 4b76 ldr r3, [pc, #472] ; (35d4 ) - 33fa: 214c movs r1, #76 ; 0x4c - 33fc: 1d20 adds r0, r4, #4 - 33fe: 4798 blx r3 - new_obj->realign.align = LV_ALIGN_CENTER; - 3400: f8b4 3048 ldrh.w r3, [r4, #72] ; 0x48 - 3404: f423 73ff bic.w r3, r3, #510 ; 0x1fe - 3408: f023 0301 bic.w r3, r3, #1 - 340c: f8a4 3048 strh.w r3, [r4, #72] ; 0x48 - new_obj->click = 1; - 3410: 8ea3 ldrh r3, [r4, #52] ; 0x34 - 3412: f423 637f bic.w r3, r3, #4080 ; 0xff0 - 3416: f023 030f bic.w r3, r3, #15 - 341a: f443 63e0 orr.w r3, r3, #1792 ; 0x700 - new_obj->realign.base = NULL; - 341e: 2200 movs r2, #0 - new_obj->click = 1; - 3420: f043 0301 orr.w r3, r3, #1 - lv_style_list_init(&new_obj->style_list); - 3424: f104 0028 add.w r0, r4, #40 ; 0x28 - new_obj->click = 1; - 3428: 86a3 strh r3, [r4, #52] ; 0x34 - new_obj->realign.xofs = 0; - 342a: e9c4 2210 strd r2, r2, [r4, #64] ; 0x40 - lv_style_list_init(&new_obj->style_list); - 342e: 4b6a ldr r3, [pc, #424] ; (35d8 ) - new_obj->ext_click_pad_hor = 0; - 3430: 6322 str r2, [r4, #48] ; 0x30 - new_obj->group_p = NULL; - 3432: 63a2 str r2, [r4, #56] ; 0x38 - new_obj->protect = LV_PROTECT_NONE; - 3434: 87a2 strh r2, [r4, #60] ; 0x3c - new_obj->ext_attr = NULL; - 3436: 6262 str r2, [r4, #36] ; 0x24 - lv_style_list_init(&new_obj->style_list); - 3438: 9003 str r0, [sp, #12] - 343a: 4798 blx r3 - if(copy == NULL) { - 343c: 9803 ldr r0, [sp, #12] - 343e: 2d00 cmp r5, #0 - 3440: f040 80d8 bne.w 35f4 - if(parent != NULL) lv_theme_apply(new_obj, LV_THEME_OBJ); - 3444: 4b65 ldr r3, [pc, #404] ; (35dc ) - 3446: 2e00 cmp r6, #0 - 3448: f000 809d beq.w 3586 - 344c: 2102 movs r1, #2 - 344e: 4620 mov r0, r4 - 3450: 4798 blx r3 - parent->signal_cb(parent, LV_SIGNAL_CHILD_CHG, new_obj); - 3452: 69f3 ldr r3, [r6, #28] - 3454: 4622 mov r2, r4 - 3456: 2101 movs r1, #1 - 3458: 4630 mov r0, r6 - 345a: 4798 blx r3 - lv_obj_invalidate(new_obj); - 345c: 4b60 ldr r3, [pc, #384] ; (35e0 ) - 345e: 4620 mov r0, r4 - 3460: 4798 blx r3 - 3462: e093 b.n 358c - LV_ASSERT_OBJ(parent, LV_OBJX_NAME); - 3464: 4f53 ldr r7, [pc, #332] ; (35b4 ) - 3466: 47b8 blx r7 - 3468: 4604 mov r4, r0 - 346a: b960 cbnz r0, 3486 - 346c: 4b4e ldr r3, [pc, #312] ; (35a8 ) - 346e: 494d ldr r1, [pc, #308] ; (35a4 ) - 3470: 9300 str r3, [sp, #0] - 3472: 22ed movs r2, #237 ; 0xed - 3474: 2003 movs r0, #3 - 3476: 4d4d ldr r5, [pc, #308] ; (35ac ) - 3478: 47a8 blx r5 - 347a: 485a ldr r0, [pc, #360] ; (35e4 ) - 347c: 494f ldr r1, [pc, #316] ; (35bc ) - 347e: 4632 mov r2, r6 - 3480: 4623 mov r3, r4 - 3482: 4788 blx r1 - 3484: e7fe b.n 3484 - new_obj = _lv_ll_ins_head(&parent->child_ll); - 3486: 4b4a ldr r3, [pc, #296] ; (35b0 ) - 3488: 1d30 adds r0, r6, #4 - 348a: 4798 blx r3 - 348c: 4604 mov r4, r0 - LV_ASSERT_MEM(new_obj); - 348e: 47b8 blx r7 - 3490: 4607 mov r7, r0 - 3492: b960 cbnz r0, 34ae - 3494: 4b44 ldr r3, [pc, #272] ; (35a8 ) - 3496: 4943 ldr r1, [pc, #268] ; (35a4 ) - 3498: 9300 str r3, [sp, #0] - 349a: 22f0 movs r2, #240 ; 0xf0 - 349c: 2003 movs r0, #3 - 349e: 4d43 ldr r5, [pc, #268] ; (35ac ) - 34a0: 47a8 blx r5 - 34a2: 4845 ldr r0, [pc, #276] ; (35b8 ) - 34a4: 4945 ldr r1, [pc, #276] ; (35bc ) - 34a6: 4622 mov r2, r4 - 34a8: 463b mov r3, r7 - 34aa: 4788 blx r1 - 34ac: e7fe b.n 34ac - if(new_obj == NULL) return NULL; - 34ae: 2c00 cmp r4, #0 - 34b0: d083 beq.n 33ba - _lv_memset_00(new_obj, sizeof(lv_obj_t)); - 34b2: 4b43 ldr r3, [pc, #268] ; (35c0 ) - new_obj->coords.y2 = parent->coords.y1 + LV_OBJ_DEF_HEIGHT; - 34b4: f8df 9138 ldr.w r9, [pc, #312] ; 35f0 - _lv_memset_00(new_obj, sizeof(lv_obj_t)); - 34b8: 214c movs r1, #76 ; 0x4c - 34ba: 4620 mov r0, r4 - 34bc: 4798 blx r3 - new_obj->base_dir = LV_BIDI_DIR_LTR; - 34be: f894 3035 ldrb.w r3, [r4, #53] ; 0x35 - new_obj->parent = parent; - 34c2: 6026 str r6, [r4, #0] - new_obj->base_dir = LV_BIDI_DIR_LTR; - 34c4: f36f 1305 bfc r3, #4, #2 - 34c8: f884 3035 strb.w r3, [r4, #53] ; 0x35 - new_obj->signal_cb = lv_obj_signal; - 34cc: 4b3d ldr r3, [pc, #244] ; (35c4 ) - 34ce: 61e3 str r3, [r4, #28] - new_obj->design_cb = lv_obj_design; - 34d0: 4b3d ldr r3, [pc, #244] ; (35c8 ) - 34d2: 6223 str r3, [r4, #32] - new_obj->event_cb = NULL; - 34d4: f04f 0800 mov.w r8, #0 - new_obj->coords.y1 = parent->coords.y1; - 34d8: f9b6 3012 ldrsh.w r3, [r6, #18] - 34dc: 8263 strh r3, [r4, #18] - new_obj->event_cb = NULL; - 34de: f8c4 8018 str.w r8, [r4, #24] - new_obj->coords.y2 = parent->coords.y1 + LV_OBJ_DEF_HEIGHT; - 34e2: 4640 mov r0, r8 - 34e4: 8a77 ldrh r7, [r6, #18] - 34e6: 47c8 blx r9 - 34e8: f04f 0a32 mov.w sl, #50 ; 0x32 - 34ec: fb00 f00a mul.w r0, r0, sl - 34f0: 28ef cmp r0, #239 ; 0xef - 34f2: dd2c ble.n 354e - 34f4: 4640 mov r0, r8 - 34f6: 47c8 blx r9 - 34f8: 2350 movs r3, #80 ; 0x50 - 34fa: fb00 300a mla r0, r0, sl, r3 - 34fe: 23a0 movs r3, #160 ; 0xa0 - 3500: fb90 f0f3 sdiv r0, r0, r3 - 3504: b280 uxth r0, r0 - 3506: 4407 add r7, r0 - 3508: 82e7 strh r7, [r4, #22] - if(lv_obj_get_base_dir(new_obj) == LV_BIDI_DIR_RTL) { - 350a: 4b37 ldr r3, [pc, #220] ; (35e8 ) - 350c: 4620 mov r0, r4 - 350e: 4798 blx r3 - 3510: 2801 cmp r0, #1 - 3512: 4607 mov r7, r0 - 3514: d11d bne.n 3552 - new_obj->coords.x2 = parent->coords.x2; - 3516: f9b6 8014 ldrsh.w r8, [r6, #20] - 351a: f8a4 8014 strh.w r8, [r4, #20] - new_obj->coords.x1 = parent->coords.x2 - LV_OBJ_DEF_WIDTH; - 351e: 2000 movs r0, #0 - 3520: 47c8 blx r9 - 3522: f04f 0a64 mov.w sl, #100 ; 0x64 - 3526: fb00 f00a mul.w r0, r0, sl - 352a: 28ef cmp r0, #239 ; 0xef - 352c: fa1f f888 uxth.w r8, r8 - 3530: dd08 ble.n 3544 - 3532: 2000 movs r0, #0 - 3534: 47c8 blx r9 - 3536: 2750 movs r7, #80 ; 0x50 - 3538: fb00 770a mla r7, r0, sl, r7 - 353c: 23a0 movs r3, #160 ; 0xa0 - 353e: fb97 f7f3 sdiv r7, r7, r3 - 3542: b2bf uxth r7, r7 - 3544: eba8 0807 sub.w r8, r8, r7 - 3548: f8a4 8010 strh.w r8, [r4, #16] - 354c: e754 b.n 33f8 - new_obj->coords.y2 = parent->coords.y1 + LV_OBJ_DEF_HEIGHT; - 354e: 2001 movs r0, #1 - 3550: e7d9 b.n 3506 - new_obj->coords.x1 = parent->coords.x1; - 3552: f9b6 7010 ldrsh.w r7, [r6, #16] - 3556: 8227 strh r7, [r4, #16] - new_obj->coords.x2 = parent->coords.x1 + LV_OBJ_DEF_WIDTH; - 3558: 2000 movs r0, #0 - 355a: 47c8 blx r9 - 355c: f04f 0864 mov.w r8, #100 ; 0x64 - 3560: fb00 f008 mul.w r0, r0, r8 - 3564: 28ef cmp r0, #239 ; 0xef - 3566: b2bf uxth r7, r7 - 3568: dd0b ble.n 3582 - 356a: 2000 movs r0, #0 - 356c: 47c8 blx r9 - 356e: 2350 movs r3, #80 ; 0x50 - 3570: fb00 3008 mla r0, r0, r8, r3 - 3574: 23a0 movs r3, #160 ; 0xa0 - 3576: fb90 f0f3 sdiv r0, r0, r3 - 357a: b280 uxth r0, r0 - 357c: 4407 add r7, r0 - 357e: 82a7 strh r7, [r4, #20] - 3580: e73a b.n 33f8 - 3582: 2001 movs r0, #1 - 3584: e7fa b.n 357c - else lv_theme_apply(new_obj, LV_THEME_SCR); - 3586: 2101 movs r1, #1 - 3588: 4620 mov r0, r4 - 358a: 4798 blx r3 - LV_LOG_INFO("Object create ready"); - 358c: 4b17 ldr r3, [pc, #92] ; (35ec ) - 358e: 9300 str r3, [sp, #0] - 3590: 4904 ldr r1, [pc, #16] ; (35a4 ) - 3592: 4b05 ldr r3, [pc, #20] ; (35a8 ) - 3594: f240 1287 movw r2, #391 ; 0x187 - 3598: 2001 movs r0, #1 - 359a: e6f5 b.n 3388 - 359c: 0000db81 .word 0x0000db81 - 35a0: 00026a34 .word 0x00026a34 - 35a4: 000268df .word 0x000268df - 35a8: 00027019 .word 0x00027019 - 35ac: 0000eb79 .word 0x0000eb79 - 35b0: 0000e89d .word 0x0000e89d - 35b4: 00001a65 .word 0x00001a65 - 35b8: 00026842 .word 0x00026842 - 35bc: 00001a6d .word 0x00001a6d - 35c0: 0000f2a9 .word 0x0000f2a9 - 35c4: 00004db1 .word 0x00004db1 - 35c8: 00004821 .word 0x00004821 - 35cc: 0000db8d .word 0x0000db8d - 35d0: 0000dbb1 .word 0x0000dbb1 - 35d4: 0000e889 .word 0x0000e889 - 35d8: 000057c1 .word 0x000057c1 - 35dc: 00010575 .word 0x00010575 - 35e0: 00002a09 .word 0x00002a09 - 35e4: 00026943 .word 0x00026943 - 35e8: 00003321 .word 0x00003321 - 35ec: 00026a84 .word 0x00026a84 - 35f0: 0000dbd5 .word 0x0000dbd5 - lv_style_list_copy(&new_obj->style_list, ©->style_list); - 35f4: 4b54 ldr r3, [pc, #336] ; (3748 ) - 35f6: f105 0128 add.w r1, r5, #40 ; 0x28 - 35fa: 4798 blx r3 - lv_area_copy(&new_obj->coords, ©->coords); - 35fc: 4b53 ldr r3, [pc, #332] ; (374c ) - 35fe: f104 0010 add.w r0, r4, #16 - 3602: f105 0110 add.w r1, r5, #16 - 3606: 4798 blx r3 - new_obj->ext_draw_pad = copy->ext_draw_pad; - 3608: f9b5 3032 ldrsh.w r3, [r5, #50] ; 0x32 - 360c: 8663 strh r3, [r4, #50] ; 0x32 - new_obj->ext_click_pad_hor = copy->ext_click_pad_hor; - 360e: f895 3030 ldrb.w r3, [r5, #48] ; 0x30 - 3612: f884 3030 strb.w r3, [r4, #48] ; 0x30 - new_obj->ext_click_pad_ver = copy->ext_click_pad_ver; - 3616: f895 3031 ldrb.w r3, [r5, #49] ; 0x31 - 361a: f884 3031 strb.w r3, [r4, #49] ; 0x31 - new_obj->realign.align = copy->realign.align; - 361e: f895 3048 ldrb.w r3, [r5, #72] ; 0x48 - 3622: f884 3048 strb.w r3, [r4, #72] ; 0x48 - new_obj->realign.xofs = copy->realign.xofs; - 3626: f9b5 3044 ldrsh.w r3, [r5, #68] ; 0x44 - 362a: f8a4 3044 strh.w r3, [r4, #68] ; 0x44 - new_obj->realign.yofs = copy->realign.yofs; - 362e: f9b5 3046 ldrsh.w r3, [r5, #70] ; 0x46 - 3632: f8a4 3046 strh.w r3, [r4, #70] ; 0x46 - new_obj->realign.base = copy->realign.base; - 3636: 6c2b ldr r3, [r5, #64] ; 0x40 - new_obj->realign.auto_realign = copy->realign.auto_realign; - 3638: f895 2049 ldrb.w r2, [r5, #73] ; 0x49 - new_obj->realign.base = copy->realign.base; - 363c: 6423 str r3, [r4, #64] ; 0x40 - new_obj->realign.auto_realign = copy->realign.auto_realign; - 363e: f894 3049 ldrb.w r3, [r4, #73] ; 0x49 - 3642: f362 0300 bfi r3, r2, #0, #1 - 3646: f884 3049 strb.w r3, [r4, #73] ; 0x49 - new_obj->event_cb = copy->event_cb; - 364a: 69ab ldr r3, [r5, #24] - 364c: 61a3 str r3, [r4, #24] - new_obj->adv_hittest = copy->adv_hittest; - 364e: f895 3034 ldrb.w r3, [r5, #52] ; 0x34 - 3652: f894 2034 ldrb.w r2, [r4, #52] ; 0x34 - 3656: 09db lsrs r3, r3, #7 - 3658: f363 12c7 bfi r2, r3, #7, #1 - 365c: f884 2034 strb.w r2, [r4, #52] ; 0x34 - new_obj->click = copy->click; - 3660: f895 2034 ldrb.w r2, [r5, #52] ; 0x34 - 3664: f894 3034 ldrb.w r3, [r4, #52] ; 0x34 - 3668: f362 0300 bfi r3, r2, #0, #1 - 366c: f884 3034 strb.w r3, [r4, #52] ; 0x34 - new_obj->drag = copy->drag; - 3670: f895 3034 ldrb.w r3, [r5, #52] ; 0x34 - 3674: f894 2034 ldrb.w r2, [r4, #52] ; 0x34 - 3678: f3c3 0340 ubfx r3, r3, #1, #1 - 367c: f363 0241 bfi r2, r3, #1, #1 - 3680: f884 2034 strb.w r2, [r4, #52] ; 0x34 - new_obj->drag_dir = copy->drag_dir; - 3684: f895 3035 ldrb.w r3, [r5, #53] ; 0x35 - 3688: f894 2035 ldrb.w r2, [r4, #53] ; 0x35 - 368c: f3c3 0342 ubfx r3, r3, #1, #3 - 3690: f363 0243 bfi r2, r3, #1, #3 - 3694: f884 2035 strb.w r2, [r4, #53] ; 0x35 - new_obj->drag_throw = copy->drag_throw; - 3698: f895 3034 ldrb.w r3, [r5, #52] ; 0x34 - 369c: f894 2034 ldrb.w r2, [r4, #52] ; 0x34 - 36a0: f3c3 0380 ubfx r3, r3, #2, #1 - 36a4: f363 0282 bfi r2, r3, #2, #1 - 36a8: f884 2034 strb.w r2, [r4, #52] ; 0x34 - new_obj->drag_parent = copy->drag_parent; - 36ac: f895 3034 ldrb.w r3, [r5, #52] ; 0x34 - 36b0: b2d2 uxtb r2, r2 - 36b2: f3c3 03c0 ubfx r3, r3, #3, #1 - 36b6: f363 02c3 bfi r2, r3, #3, #1 - 36ba: f884 2034 strb.w r2, [r4, #52] ; 0x34 - new_obj->hidden = copy->hidden; - 36be: f895 3034 ldrb.w r3, [r5, #52] ; 0x34 - 36c2: b2d2 uxtb r2, r2 - 36c4: f3c3 1300 ubfx r3, r3, #4, #1 - 36c8: f363 1204 bfi r2, r3, #4, #1 - 36cc: f884 2034 strb.w r2, [r4, #52] ; 0x34 - new_obj->top = copy->top; - 36d0: f895 3034 ldrb.w r3, [r5, #52] ; 0x34 - 36d4: b2d2 uxtb r2, r2 - 36d6: f3c3 1340 ubfx r3, r3, #5, #1 - 36da: f363 1245 bfi r2, r3, #5, #1 - 36de: f884 2034 strb.w r2, [r4, #52] ; 0x34 - new_obj->parent_event = copy->parent_event; - 36e2: f895 3034 ldrb.w r3, [r5, #52] ; 0x34 - 36e6: b2d2 uxtb r2, r2 - 36e8: f3c3 1380 ubfx r3, r3, #6, #1 - 36ec: f363 1286 bfi r2, r3, #6, #1 - 36f0: f884 2034 strb.w r2, [r4, #52] ; 0x34 - new_obj->protect = copy->protect; - 36f4: f895 303c ldrb.w r3, [r5, #60] ; 0x3c - 36f8: f884 303c strb.w r3, [r4, #60] ; 0x3c - new_obj->gesture_parent = copy->gesture_parent; - 36fc: f895 2035 ldrb.w r2, [r5, #53] ; 0x35 - 3700: f894 3035 ldrb.w r3, [r4, #53] ; 0x35 - 3704: f362 0300 bfi r3, r2, #0, #1 - 3708: f884 3035 strb.w r3, [r4, #53] ; 0x35 - if(copy->group_p != NULL) { - 370c: 6ba8 ldr r0, [r5, #56] ; 0x38 - 370e: b110 cbz r0, 3716 - lv_group_add_obj(copy->group_p, new_obj); - 3710: 4b0f ldr r3, [pc, #60] ; (3750 ) - 3712: 4621 mov r1, r4 - 3714: 4798 blx r3 - if(lv_obj_get_parent(copy) != NULL && parent != NULL) { - 3716: 4b0f ldr r3, [pc, #60] ; (3754 ) - 3718: 4628 mov r0, r5 - 371a: 4798 blx r3 - 371c: b178 cbz r0, 373e - 371e: 2e00 cmp r6, #0 - 3720: f43f af34 beq.w 358c - lv_obj_set_pos(new_obj, lv_obj_get_x(copy), lv_obj_get_y(copy)); - 3724: 4b0c ldr r3, [pc, #48] ; (3758 ) - 3726: 4628 mov r0, r5 - 3728: 4798 blx r3 - 372a: 4b0c ldr r3, [pc, #48] ; (375c ) - 372c: 9003 str r0, [sp, #12] - 372e: 4628 mov r0, r5 - 3730: 4798 blx r3 - 3732: 9903 ldr r1, [sp, #12] - 3734: 4b0a ldr r3, [pc, #40] ; (3760 ) - 3736: 4602 mov r2, r0 - 3738: 4620 mov r0, r4 - 373a: 4798 blx r3 - if(parent != NULL) { - 373c: e689 b.n 3452 - 373e: 2e00 cmp r6, #0 - 3740: f47f ae87 bne.w 3452 - 3744: e722 b.n 358c - 3746: bf00 nop - 3748: 00005fb1 .word 0x00005fb1 - 374c: 00001f9d .word 0x00001f9d - 3750: 00001d21 .word 0x00001d21 - 3754: 000023a9 .word 0x000023a9 - 3758: 000025b1 .word 0x000025b1 - 375c: 00002611 .word 0x00002611 - 3760: 00002b25 .word 0x00002b25 - -00003764 : -{ - 3764: e92d 41ff stmdb sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, lr} - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 3768: 4b33 ldr r3, [pc, #204] ; (3838 ) -{ - 376a: 4604 mov r4, r0 - 376c: 460d mov r5, r1 - 376e: 4617 mov r7, r2 - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 3770: 4798 blx r3 - 3772: 4606 mov r6, r0 - 3774: b968 cbnz r0, 3792 - 3776: 4b31 ldr r3, [pc, #196] ; (383c ) - 3778: 4931 ldr r1, [pc, #196] ; (3840 ) - 377a: 9300 str r3, [sp, #0] - 377c: f240 22e5 movw r2, #741 ; 0x2e5 - 3780: 2003 movs r0, #3 - 3782: 4d30 ldr r5, [pc, #192] ; (3844 ) - 3784: 47a8 blx r5 - 3786: 4830 ldr r0, [pc, #192] ; (3848 ) - 3788: 4930 ldr r1, [pc, #192] ; (384c ) - 378a: 4622 mov r2, r4 - 378c: 4633 mov r3, r6 - 378e: 4788 blx r1 - 3790: e7fe b.n 3790 - if(lv_obj_get_width(obj) == w && lv_obj_get_height(obj) == h) { - 3792: 4b2f ldr r3, [pc, #188] ; (3850 ) - 3794: 4620 mov r0, r4 - 3796: 4798 blx r3 - 3798: 4285 cmp r5, r0 - 379a: d104 bne.n 37a6 - 379c: 4b2d ldr r3, [pc, #180] ; (3854 ) - 379e: 4620 mov r0, r4 - 37a0: 4798 blx r3 - 37a2: 4287 cmp r7, r0 - 37a4: d03a beq.n 381c - lv_obj_invalidate(obj); - 37a6: 4620 mov r0, r4 - 37a8: 4e2b ldr r6, [pc, #172] ; (3858 ) - 37aa: 47b0 blx r6 - lv_obj_get_coords(obj, &ori); - 37ac: a902 add r1, sp, #8 - 37ae: 4b2b ldr r3, [pc, #172] ; (385c ) - 37b0: 4620 mov r0, r4 - 37b2: 4798 blx r3 - obj->coords.y2 = obj->coords.y1 + h - 1; - 37b4: 8a63 ldrh r3, [r4, #18] - 37b6: 3f01 subs r7, #1 - 37b8: 441f add r7, r3 - 37ba: 82e7 strh r7, [r4, #22] - if(lv_obj_get_base_dir(obj) == LV_BIDI_DIR_RTL) { - 37bc: 4b28 ldr r3, [pc, #160] ; (3860 ) - 37be: 4620 mov r0, r4 - 37c0: 4798 blx r3 - 37c2: 2801 cmp r0, #1 - obj->coords.x1 = obj->coords.x2 - w + 1; - 37c4: b2ad uxth r5, r5 - 37c6: bf0b itete eq - 37c8: 8aa3 ldrheq r3, [r4, #20] - obj->coords.x2 = obj->coords.x1 + w - 1; - 37ca: 8a23 ldrhne r3, [r4, #16] - obj->coords.x1 = obj->coords.x2 - w + 1; - 37cc: f1c5 0501 rsbeq r5, r5, #1 - obj->coords.x2 = obj->coords.x1 + w - 1; - 37d0: f105 35ff addne.w r5, r5, #4294967295 ; 0xffffffff - obj->coords.x1 = obj->coords.x2 - w + 1; - 37d4: bf0a itet eq - 37d6: 18ed addeq r5, r5, r3 - obj->coords.x2 = obj->coords.x1 + w - 1; - 37d8: 18ed addne r5, r5, r3 - obj->coords.x1 = obj->coords.x2 - w + 1; - 37da: 8225 strheq r5, [r4, #16] - obj->signal_cb(obj, LV_SIGNAL_COORD_CHG, &ori); - 37dc: 69e3 ldr r3, [r4, #28] - obj->coords.x2 = obj->coords.x1 + w - 1; - 37de: bf18 it ne - 37e0: 82a5 strhne r5, [r4, #20] - obj->signal_cb(obj, LV_SIGNAL_COORD_CHG, &ori); - 37e2: aa02 add r2, sp, #8 - 37e4: 2102 movs r1, #2 - 37e6: 4620 mov r0, r4 - 37e8: 4798 blx r3 - lv_obj_t * par = lv_obj_get_parent(obj); - 37ea: 4b1e ldr r3, [pc, #120] ; (3864 ) - 37ec: 4620 mov r0, r4 - 37ee: 4798 blx r3 - if(par != NULL) par->signal_cb(par, LV_SIGNAL_CHILD_CHG, obj); - 37f0: b118 cbz r0, 37fa - 37f2: 69c3 ldr r3, [r0, #28] - 37f4: 4622 mov r2, r4 - 37f6: 2101 movs r1, #1 - 37f8: 4798 blx r3 - _LV_LL_READ(obj->child_ll, i) { - 37fa: 1d27 adds r7, r4, #4 - 37fc: 4b1a ldr r3, [pc, #104] ; (3868 ) - 37fe: f8df 8070 ldr.w r8, [pc, #112] ; 3870 - 3802: 4638 mov r0, r7 - 3804: 4798 blx r3 - 3806: 4605 mov r5, r0 - 3808: b95d cbnz r5, 3822 - lv_obj_invalidate(obj); - 380a: 4620 mov r0, r4 - 380c: 47b0 blx r6 - if(obj->realign.auto_realign) lv_obj_realign(obj); - 380e: f894 3049 ldrb.w r3, [r4, #73] ; 0x49 - 3812: 07db lsls r3, r3, #31 - 3814: d502 bpl.n 381c - 3816: 4b15 ldr r3, [pc, #84] ; (386c ) - 3818: 4620 mov r0, r4 - 381a: 4798 blx r3 -} - 381c: b004 add sp, #16 - 381e: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} - i->signal_cb(i, LV_SIGNAL_PARENT_SIZE_CHG, &ori); - 3822: 69eb ldr r3, [r5, #28] - 3824: aa02 add r2, sp, #8 - 3826: 2103 movs r1, #3 - 3828: 4628 mov r0, r5 - 382a: 4798 blx r3 - _LV_LL_READ(obj->child_ll, i) { - 382c: 4629 mov r1, r5 - 382e: 4638 mov r0, r7 - 3830: 47c0 blx r8 - 3832: 4605 mov r5, r0 - 3834: e7e8 b.n 3808 - 3836: bf00 nop - 3838: 00001a65 .word 0x00001a65 - 383c: 00027039 .word 0x00027039 - 3840: 000268df .word 0x000268df - 3844: 0000eb79 .word 0x0000eb79 - 3848: 00026943 .word 0x00026943 - 384c: 00001a6d .word 0x00001a6d - 3850: 00002671 .word 0x00002671 - 3854: 000026c1 .word 0x000026c1 - 3858: 00002a09 .word 0x00002a09 - 385c: 00002559 .word 0x00002559 - 3860: 00003321 .word 0x00003321 - 3864: 000023a9 .word 0x000023a9 - 3868: 0000e92d .word 0x0000e92d - 386c: 00002f6d .word 0x00002f6d - 3870: 0000e939 .word 0x0000e939 - -00003874 : -{ - 3874: b573 push {r0, r1, r4, r5, r6, lr} - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 3876: 4b0f ldr r3, [pc, #60] ; (38b4 ) -{ - 3878: 4604 mov r4, r0 - 387a: 460e mov r6, r1 - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 387c: 4798 blx r3 - 387e: 4605 mov r5, r0 - 3880: b968 cbnz r0, 389e - 3882: 4b0d ldr r3, [pc, #52] ; (38b8 ) - 3884: 490d ldr r1, [pc, #52] ; (38bc ) - 3886: 9300 str r3, [sp, #0] - 3888: f240 3227 movw r2, #807 ; 0x327 - 388c: 2003 movs r0, #3 - 388e: 4e0c ldr r6, [pc, #48] ; (38c0 ) - 3890: 47b0 blx r6 - 3892: 480c ldr r0, [pc, #48] ; (38c4 ) - 3894: 490c ldr r1, [pc, #48] ; (38c8 ) - 3896: 4622 mov r2, r4 - 3898: 462b mov r3, r5 - 389a: 4788 blx r1 - 389c: e7fe b.n 389c - lv_obj_set_size(obj, lv_obj_get_width(obj), h); - 389e: 4b0b ldr r3, [pc, #44] ; (38cc ) - 38a0: 4620 mov r0, r4 - 38a2: 4798 blx r3 - 38a4: 4b0a ldr r3, [pc, #40] ; (38d0 ) - 38a6: 4601 mov r1, r0 - 38a8: 4632 mov r2, r6 - 38aa: 4620 mov r0, r4 -} - 38ac: b002 add sp, #8 - 38ae: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr} - lv_obj_set_size(obj, lv_obj_get_width(obj), h); - 38b2: 4718 bx r3 - 38b4: 00001a65 .word 0x00001a65 - 38b8: 0002705a .word 0x0002705a - 38bc: 000268df .word 0x000268df - 38c0: 0000eb79 .word 0x0000eb79 - 38c4: 00026943 .word 0x00026943 - 38c8: 00001a6d .word 0x00001a6d - 38cc: 00002671 .word 0x00002671 - 38d0: 00003765 .word 0x00003765 - -000038d4 : -{ - 38d4: b573 push {r0, r1, r4, r5, r6, lr} - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 38d6: 4b0e ldr r3, [pc, #56] ; (3910 ) -{ - 38d8: 4604 mov r4, r0 - 38da: 460e mov r6, r1 - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 38dc: 4798 blx r3 - 38de: 4605 mov r5, r0 - 38e0: b968 cbnz r0, 38fe - 38e2: 4b0c ldr r3, [pc, #48] ; (3914 ) - 38e4: 490c ldr r1, [pc, #48] ; (3918 ) - 38e6: 9300 str r3, [sp, #0] - 38e8: f640 22d7 movw r2, #2775 ; 0xad7 - 38ec: 2003 movs r0, #3 - 38ee: 4e0b ldr r6, [pc, #44] ; (391c ) - 38f0: 47b0 blx r6 - 38f2: 480b ldr r0, [pc, #44] ; (3920 ) - 38f4: 490b ldr r1, [pc, #44] ; (3924 ) - 38f6: 4622 mov r2, r4 - 38f8: 462b mov r3, r5 - 38fa: 4788 blx r1 - 38fc: e7fe b.n 38fc - return (obj->protect & prot) == 0 ? false : true; - 38fe: f894 303c ldrb.w r3, [r4, #60] ; 0x3c - 3902: 421e tst r6, r3 -} - 3904: bf14 ite ne - 3906: 2001 movne r0, #1 - 3908: 2000 moveq r0, #0 - 390a: b002 add sp, #8 - 390c: bd70 pop {r4, r5, r6, pc} - 390e: bf00 nop - 3910: 00001a65 .word 0x00001a65 - 3914: 0002707f .word 0x0002707f - 3918: 000268df .word 0x000268df - 391c: 0000eb79 .word 0x0000eb79 - 3920: 00026943 .word 0x00026943 - 3924: 00001a6d .word 0x00001a6d - -00003928 : -{ - 3928: b57f push {r0, r1, r2, r3, r4, r5, r6, lr} - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 392a: 4b13 ldr r3, [pc, #76] ; (3978 ) -{ - 392c: 4604 mov r4, r0 - 392e: 460d mov r5, r1 - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 3930: 4798 blx r3 - 3932: 4606 mov r6, r0 - 3934: b968 cbnz r0, 3952 - 3936: 4b11 ldr r3, [pc, #68] ; (397c ) - 3938: 4911 ldr r1, [pc, #68] ; (3980 ) - 393a: 9300 str r3, [sp, #0] - 393c: f640 22de movw r2, #2782 ; 0xade - 3940: 2003 movs r0, #3 - 3942: 4d10 ldr r5, [pc, #64] ; (3984 ) - 3944: 47a8 blx r5 - 3946: 4810 ldr r0, [pc, #64] ; (3988 ) - 3948: 4910 ldr r1, [pc, #64] ; (398c ) - 394a: 4622 mov r2, r4 - 394c: 4633 mov r3, r6 - 394e: 4788 blx r1 - 3950: e7fe b.n 3950 - if(part < _LV_OBJ_PART_REAL_LAST) return ((lv_obj_t *)obj)->state; - 3952: 2d3f cmp r5, #63 ; 0x3f - 3954: d803 bhi.n 395e - 3956: f894 003d ldrb.w r0, [r4, #61] ; 0x3d -} - 395a: b004 add sp, #16 - 395c: bd70 pop {r4, r5, r6, pc} - info.result = LV_STATE_DEFAULT; - 395e: 2300 movs r3, #0 - 3960: f88d 300d strb.w r3, [sp, #13] - lv_signal_send((lv_obj_t *)obj, LV_SIGNAL_GET_STATE_DSC, &info); - 3964: aa03 add r2, sp, #12 - 3966: 4b0a ldr r3, [pc, #40] ; (3990 ) - info.part = part; - 3968: f88d 500c strb.w r5, [sp, #12] - lv_signal_send((lv_obj_t *)obj, LV_SIGNAL_GET_STATE_DSC, &info); - 396c: 2109 movs r1, #9 - 396e: 4620 mov r0, r4 - 3970: 4798 blx r3 - return info.result; - 3972: f89d 000d ldrb.w r0, [sp, #13] - 3976: e7f0 b.n 395a - 3978: 00001a65 .word 0x00001a65 - 397c: 00027093 .word 0x00027093 - 3980: 000268df .word 0x000268df - 3984: 0000eb79 .word 0x0000eb79 - 3988: 00026943 .word 0x00026943 - 398c: 00001a6d .word 0x00001a6d - 3990: 000022a9 .word 0x000022a9 - -00003994 <_lv_obj_get_style_int>: -{ - 3994: e92d 4ff7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr} - lv_state_t state = lv_obj_get_state(parent, part); - 3998: f8df a094 ldr.w sl, [pc, #148] ; 3a30 <_lv_obj_get_style_int+0x9c> - res = _lv_style_list_get_int(dsc, prop, &value_act); - 399c: f8df b094 ldr.w fp, [pc, #148] ; 3a34 <_lv_obj_get_style_int+0xa0> -{ - 39a0: 4605 mov r5, r0 - 39a2: 460e mov r6, r1 - 39a4: 4617 mov r7, r2 - attr.full = prop_ori >> 8; - 39a6: ea4f 2812 mov.w r8, r2, lsr #8 - while(parent) { - 39aa: 4614 mov r4, r2 - 39ac: b965 cbnz r5, 39c8 <_lv_obj_get_style_int+0x34> - prop = prop & (~LV_STYLE_STATE_MASK); - 39ae: f424 44fe bic.w r4, r4, #32512 ; 0x7f00 - switch(prop) { - 39b2: 2c22 cmp r4, #34 ; 0x22 - prop = prop & (~LV_STYLE_STATE_MASK); - 39b4: b2a0 uxth r0, r4 - switch(prop) { - 39b6: d030 beq.n 3a1a <_lv_obj_get_style_int+0x86> - 39b8: d827 bhi.n 3a0a <_lv_obj_get_style_int+0x76> - 39ba: 2803 cmp r0, #3 - 39bc: d02f beq.n 3a1e <_lv_obj_get_style_int+0x8a> - 39be: 1fc2 subs r2, r0, #7 - 39c0: 4250 negs r0, r2 - 39c2: 4150 adcs r0, r2 - 39c4: 0200 lsls r0, r0, #8 - 39c6: e013 b.n 39f0 <_lv_obj_get_style_int+0x5c> - lv_style_list_t * dsc = lv_obj_get_style_list(parent, part); - 39c8: 4b17 ldr r3, [pc, #92] ; (3a28 <_lv_obj_get_style_int+0x94>) - 39ca: 4631 mov r1, r6 - 39cc: 4628 mov r0, r5 - 39ce: 4798 blx r3 - lv_state_t state = lv_obj_get_state(parent, part); - 39d0: 4631 mov r1, r6 - lv_style_list_t * dsc = lv_obj_get_style_list(parent, part); - 39d2: 4681 mov r9, r0 - lv_state_t state = lv_obj_get_state(parent, part); - 39d4: 4628 mov r0, r5 - 39d6: 47d0 blx sl - prop = (uint16_t)prop_ori + ((uint16_t)state << LV_STYLE_STATE_POS); - 39d8: eb07 2000 add.w r0, r7, r0, lsl #8 - 39dc: b284 uxth r4, r0 - res = _lv_style_list_get_int(dsc, prop, &value_act); - 39de: f10d 0206 add.w r2, sp, #6 - 39e2: 4621 mov r1, r4 - 39e4: 4648 mov r0, r9 - 39e6: 47d8 blx fp - if(res == LV_RES_OK) return value_act; - 39e8: 2801 cmp r0, #1 - 39ea: d104 bne.n 39f6 <_lv_obj_get_style_int+0x62> - 39ec: f9bd 0006 ldrsh.w r0, [sp, #6] -} - 39f0: b003 add sp, #12 - 39f2: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - if(attr.bits.inherit == 0) break; - 39f6: f018 0f80 tst.w r8, #128 ; 0x80 - 39fa: d0d8 beq.n 39ae <_lv_obj_get_style_int+0x1a> - if(part != LV_OBJ_PART_MAIN) { - 39fc: b91e cbnz r6, 3a06 <_lv_obj_get_style_int+0x72> - parent = lv_obj_get_parent(parent); - 39fe: 4628 mov r0, r5 - 3a00: 4b0a ldr r3, [pc, #40] ; (3a2c <_lv_obj_get_style_int+0x98>) - 3a02: 4798 blx r3 - 3a04: 4605 mov r5, r0 -{ - 3a06: 2600 movs r6, #0 - 3a08: e7d0 b.n 39ac <_lv_obj_get_style_int+0x18> - switch(prop) { - 3a0a: 2831 cmp r0, #49 ; 0x31 - 3a0c: d009 beq.n 3a22 <_lv_obj_get_style_int+0x8e> - 3a0e: f1a0 03c0 sub.w r3, r0, #192 ; 0xc0 - 3a12: 4258 negs r0, r3 - 3a14: 4158 adcs r0, r3 - 3a16: 0100 lsls r0, r0, #4 - 3a18: e7ea b.n 39f0 <_lv_obj_get_style_int+0x5c> - return 255; - 3a1a: 20ff movs r0, #255 ; 0xff - 3a1c: e7e8 b.n 39f0 <_lv_obj_get_style_int+0x5c> - switch(prop) { - 3a1e: 2006 movs r0, #6 - 3a20: e7e6 b.n 39f0 <_lv_obj_get_style_int+0x5c> - return LV_BORDER_SIDE_FULL; - 3a22: 200f movs r0, #15 - 3a24: e7e4 b.n 39f0 <_lv_obj_get_style_int+0x5c> - 3a26: bf00 nop - 3a28: 00002711 .word 0x00002711 - 3a2c: 000023a9 .word 0x000023a9 - 3a30: 00003929 .word 0x00003929 - 3a34: 00006111 .word 0x00006111 - -00003a38 <_lv_obj_get_style_color>: -{ - 3a38: e92d 4ff7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr} - lv_state_t state = lv_obj_get_state(parent, part); - 3a3c: f8df a074 ldr.w sl, [pc, #116] ; 3ab4 <_lv_obj_get_style_color+0x7c> - res = _lv_style_list_get_color(dsc, prop, &value_act); - 3a40: f8df b074 ldr.w fp, [pc, #116] ; 3ab8 <_lv_obj_get_style_color+0x80> -{ - 3a44: 4605 mov r5, r0 - 3a46: 460e mov r6, r1 - 3a48: 4617 mov r7, r2 - attr.full = prop_ori >> 8; - 3a4a: ea4f 2812 mov.w r8, r2, lsr #8 - while(parent) { - 3a4e: 4614 mov r4, r2 - 3a50: b94d cbnz r5, 3a66 <_lv_obj_get_style_color+0x2e> - prop = prop & (~LV_STYLE_STATE_MASK); - 3a52: f424 44fe bic.w r4, r4, #32512 ; 0x7f00 - switch(prop) { - 3a56: 3c29 subs r4, #41 ; 0x29 - 3a58: 2c01 cmp r4, #1 - return LV_COLOR_WHITE; - 3a5a: bf96 itet ls - 3a5c: 4b12 ldrls r3, [pc, #72] ; (3aa8 <_lv_obj_get_style_color+0x70>) - return LV_COLOR_BLACK; - 3a5e: 2000 movhi r0, #0 - return LV_COLOR_WHITE; - 3a60: f8b3 0602 ldrhls.w r0, [r3, #1538] ; 0x602 - return LV_COLOR_BLACK; - 3a64: e012 b.n 3a8c <_lv_obj_get_style_color+0x54> - lv_style_list_t * dsc = lv_obj_get_style_list(parent, part); - 3a66: 4b11 ldr r3, [pc, #68] ; (3aac <_lv_obj_get_style_color+0x74>) - 3a68: 4631 mov r1, r6 - 3a6a: 4628 mov r0, r5 - 3a6c: 4798 blx r3 - lv_state_t state = lv_obj_get_state(parent, part); - 3a6e: 4631 mov r1, r6 - lv_style_list_t * dsc = lv_obj_get_style_list(parent, part); - 3a70: 4681 mov r9, r0 - lv_state_t state = lv_obj_get_state(parent, part); - 3a72: 4628 mov r0, r5 - 3a74: 47d0 blx sl - prop = (uint16_t)prop_ori + ((uint16_t)state << LV_STYLE_STATE_POS); - 3a76: eb07 2000 add.w r0, r7, r0, lsl #8 - 3a7a: b284 uxth r4, r0 - res = _lv_style_list_get_color(dsc, prop, &value_act); - 3a7c: aa01 add r2, sp, #4 - 3a7e: 4621 mov r1, r4 - 3a80: 4648 mov r0, r9 - 3a82: 47d8 blx fp - if(res == LV_RES_OK) return value_act; - 3a84: 2801 cmp r0, #1 - 3a86: d104 bne.n 3a92 <_lv_obj_get_style_color+0x5a> - 3a88: f8bd 0004 ldrh.w r0, [sp, #4] -} - 3a8c: b003 add sp, #12 - 3a8e: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - if(attr.bits.inherit == 0) break; - 3a92: f018 0f80 tst.w r8, #128 ; 0x80 - 3a96: d0dc beq.n 3a52 <_lv_obj_get_style_color+0x1a> - if(part != LV_OBJ_PART_MAIN) { - 3a98: b91e cbnz r6, 3aa2 <_lv_obj_get_style_color+0x6a> - parent = lv_obj_get_parent(parent); - 3a9a: 4628 mov r0, r5 - 3a9c: 4b04 ldr r3, [pc, #16] ; (3ab0 <_lv_obj_get_style_color+0x78>) - 3a9e: 4798 blx r3 - 3aa0: 4605 mov r5, r0 -{ - 3aa2: 2600 movs r6, #0 - 3aa4: e7d4 b.n 3a50 <_lv_obj_get_style_color+0x18> - 3aa6: bf00 nop - 3aa8: 00026ae6 .word 0x00026ae6 - 3aac: 00002711 .word 0x00002711 - 3ab0: 000023a9 .word 0x000023a9 - 3ab4: 00003929 .word 0x00003929 - 3ab8: 00006199 .word 0x00006199 - -00003abc <_lv_obj_get_style_opa>: -{ - 3abc: e92d 4ff7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr} - lv_state_t state = lv_obj_get_state(parent, part); - 3ac0: f8df a080 ldr.w sl, [pc, #128] ; 3b44 <_lv_obj_get_style_opa+0x88> - res = _lv_style_list_get_opa(dsc, prop, &value_act); - 3ac4: f8df b080 ldr.w fp, [pc, #128] ; 3b48 <_lv_obj_get_style_opa+0x8c> -{ - 3ac8: 4605 mov r5, r0 - 3aca: 460e mov r6, r1 - 3acc: 4617 mov r7, r2 - attr.full = prop_ori >> 8; - 3ace: ea4f 2812 mov.w r8, r2, lsr #8 - while(parent) { - 3ad2: 4614 mov r4, r2 - 3ad4: b975 cbnz r5, 3af4 <_lv_obj_get_style_opa+0x38> - prop = prop & (~LV_STYLE_STATE_MASK); - 3ad6: f424 44fe bic.w r4, r4, #32512 ; 0x7f00 - switch(prop) { - 3ada: 2c6d cmp r4, #109 ; 0x6d - prop = prop & (~LV_STYLE_STATE_MASK); - 3adc: b2a0 uxth r0, r4 - switch(prop) { - 3ade: d02a beq.n 3b36 <_lv_obj_get_style_opa+0x7a> - 3ae0: f248 03ad movw r3, #32941 ; 0x80ad - 3ae4: 4298 cmp r0, r3 - 3ae6: d026 beq.n 3b36 <_lv_obj_get_style_opa+0x7a> - 3ae8: 382c subs r0, #44 ; 0x2c - 3aea: bf18 it ne - 3aec: f04f 30ff movne.w r0, #4294967295 ; 0xffffffff - 3af0: b2c0 uxtb r0, r0 - 3af2: e013 b.n 3b1c <_lv_obj_get_style_opa+0x60> - lv_style_list_t * dsc = lv_obj_get_style_list(parent, part); - 3af4: 4b11 ldr r3, [pc, #68] ; (3b3c <_lv_obj_get_style_opa+0x80>) - 3af6: 4631 mov r1, r6 - 3af8: 4628 mov r0, r5 - 3afa: 4798 blx r3 - lv_state_t state = lv_obj_get_state(parent, part); - 3afc: 4631 mov r1, r6 - lv_style_list_t * dsc = lv_obj_get_style_list(parent, part); - 3afe: 4681 mov r9, r0 - lv_state_t state = lv_obj_get_state(parent, part); - 3b00: 4628 mov r0, r5 - 3b02: 47d0 blx sl - prop = (uint16_t)prop_ori + ((uint16_t)state << LV_STYLE_STATE_POS); - 3b04: eb07 2000 add.w r0, r7, r0, lsl #8 - 3b08: b284 uxth r4, r0 - res = _lv_style_list_get_opa(dsc, prop, &value_act); - 3b0a: f10d 0207 add.w r2, sp, #7 - 3b0e: 4621 mov r1, r4 - 3b10: 4648 mov r0, r9 - 3b12: 47d8 blx fp - if(res == LV_RES_OK) return value_act; - 3b14: 2801 cmp r0, #1 - 3b16: d104 bne.n 3b22 <_lv_obj_get_style_opa+0x66> - 3b18: f89d 0007 ldrb.w r0, [sp, #7] -} - 3b1c: b003 add sp, #12 - 3b1e: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - if(attr.bits.inherit == 0) break; - 3b22: f018 0f80 tst.w r8, #128 ; 0x80 - 3b26: d0d6 beq.n 3ad6 <_lv_obj_get_style_opa+0x1a> - if(part != LV_OBJ_PART_MAIN) { - 3b28: b91e cbnz r6, 3b32 <_lv_obj_get_style_opa+0x76> - parent = lv_obj_get_parent(parent); - 3b2a: 4628 mov r0, r5 - 3b2c: 4b04 ldr r3, [pc, #16] ; (3b40 <_lv_obj_get_style_opa+0x84>) - 3b2e: 4798 blx r3 - 3b30: 4605 mov r5, r0 -{ - 3b32: 2600 movs r6, #0 - 3b34: e7ce b.n 3ad4 <_lv_obj_get_style_opa+0x18> - return LV_OPA_TRANSP; - 3b36: 2000 movs r0, #0 - 3b38: e7f0 b.n 3b1c <_lv_obj_get_style_opa+0x60> - 3b3a: bf00 nop - 3b3c: 00002711 .word 0x00002711 - 3b40: 000023a9 .word 0x000023a9 - 3b44: 00003929 .word 0x00003929 - 3b48: 00006221 .word 0x00006221 - -00003b4c <_lv_obj_get_style_ptr>: -{ - 3b4c: e92d 4ff7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr} - lv_state_t state = lv_obj_get_state(parent, part); - 3b50: f8df a084 ldr.w sl, [pc, #132] ; 3bd8 <_lv_obj_get_style_ptr+0x8c> - res = _lv_style_list_get_ptr(dsc, prop, &value_act); - 3b54: f8df b084 ldr.w fp, [pc, #132] ; 3bdc <_lv_obj_get_style_ptr+0x90> -{ - 3b58: 4605 mov r5, r0 - 3b5a: 460e mov r6, r1 - 3b5c: 4617 mov r7, r2 - attr.full = prop_ori >> 8; - 3b5e: ea4f 2812 mov.w r8, r2, lsr #8 - while(parent) { - 3b62: 4614 mov r4, r2 - 3b64: b96d cbnz r5, 3b82 <_lv_obj_get_style_ptr+0x36> - prop = prop & (~LV_STYLE_STATE_MASK); - 3b66: f424 44fe bic.w r4, r4, #32512 ; 0x7f00 - switch(prop) { - 3b6a: 2cbe cmp r4, #190 ; 0xbe - prop = prop & (~LV_STYLE_STATE_MASK); - 3b6c: b2a3 uxth r3, r4 - switch(prop) { - 3b6e: d027 beq.n 3bc0 <_lv_obj_get_style_ptr+0x74> - 3b70: f248 028e movw r2, #32910 ; 0x808e - 3b74: 4293 cmp r3, r2 - 3b76: d001 beq.n 3b7c <_lv_obj_get_style_ptr+0x30> - 3b78: 2b7e cmp r3, #126 ; 0x7e - 3b7a: d123 bne.n 3bc4 <_lv_obj_get_style_ptr+0x78> - return lv_theme_get_font_normal(); - 3b7c: 4b12 ldr r3, [pc, #72] ; (3bc8 <_lv_obj_get_style_ptr+0x7c>) - 3b7e: 4798 blx r3 - 3b80: e011 b.n 3ba6 <_lv_obj_get_style_ptr+0x5a> - lv_style_list_t * dsc = lv_obj_get_style_list(parent, part); - 3b82: 4b12 ldr r3, [pc, #72] ; (3bcc <_lv_obj_get_style_ptr+0x80>) - 3b84: 4631 mov r1, r6 - 3b86: 4628 mov r0, r5 - 3b88: 4798 blx r3 - lv_state_t state = lv_obj_get_state(parent, part); - 3b8a: 4631 mov r1, r6 - lv_style_list_t * dsc = lv_obj_get_style_list(parent, part); - 3b8c: 4681 mov r9, r0 - lv_state_t state = lv_obj_get_state(parent, part); - 3b8e: 4628 mov r0, r5 - 3b90: 47d0 blx sl - prop = (uint16_t)prop_ori + ((uint16_t)state << LV_STYLE_STATE_POS); - 3b92: eb07 2000 add.w r0, r7, r0, lsl #8 - 3b96: b284 uxth r4, r0 - res = _lv_style_list_get_ptr(dsc, prop, &value_act); - 3b98: aa01 add r2, sp, #4 - 3b9a: 4621 mov r1, r4 - 3b9c: 4648 mov r0, r9 - 3b9e: 47d8 blx fp - if(res == LV_RES_OK) return value_act; - 3ba0: 2801 cmp r0, #1 - 3ba2: d103 bne.n 3bac <_lv_obj_get_style_ptr+0x60> - 3ba4: 9801 ldr r0, [sp, #4] -} - 3ba6: b003 add sp, #12 - 3ba8: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - if(attr.bits.inherit == 0) break; - 3bac: f018 0f80 tst.w r8, #128 ; 0x80 - 3bb0: d0d9 beq.n 3b66 <_lv_obj_get_style_ptr+0x1a> - if(part != LV_OBJ_PART_MAIN) { - 3bb2: b91e cbnz r6, 3bbc <_lv_obj_get_style_ptr+0x70> - parent = lv_obj_get_parent(parent); - 3bb4: 4628 mov r0, r5 - 3bb6: 4b06 ldr r3, [pc, #24] ; (3bd0 <_lv_obj_get_style_ptr+0x84>) - 3bb8: 4798 blx r3 - 3bba: 4605 mov r5, r0 -{ - 3bbc: 2600 movs r6, #0 - 3bbe: e7d1 b.n 3b64 <_lv_obj_get_style_ptr+0x18> - return &lv_anim_path_def; - 3bc0: 4804 ldr r0, [pc, #16] ; (3bd4 <_lv_obj_get_style_ptr+0x88>) - 3bc2: e7f0 b.n 3ba6 <_lv_obj_get_style_ptr+0x5a> - switch(prop) { - 3bc4: 2000 movs r0, #0 - 3bc6: e7ee b.n 3ba6 <_lv_obj_get_style_ptr+0x5a> - 3bc8: 00010569 .word 0x00010569 - 3bcc: 00002711 .word 0x00002711 - 3bd0: 000023a9 .word 0x000023a9 - 3bd4: 0002b9a8 .word 0x0002b9a8 - 3bd8: 00003929 .word 0x00003929 - 3bdc: 000062a9 .word 0x000062a9 - -00003be0 : -{ - 3be0: b570 push {r4, r5, r6, lr} - lv_style_trans_t * tr = a->var; - 3be2: 6804 ldr r4, [r0, #0] - lv_style_property_t prop_tmp = tr->prop; - 3be4: 88a5 ldrh r5, [r4, #4] - tr->start_value._int = _lv_obj_get_style_int(tr->obj, tr->part, prop_tmp); - 3be6: 6820 ldr r0, [r4, #0] - 3be8: 79a1 ldrb r1, [r4, #6] - 3bea: f005 030f and.w r3, r5, #15 - if((prop_tmp & 0xF) < LV_STYLE_ID_COLOR) { /*Int*/ - 3bee: 2b08 cmp r3, #8 - tr->start_value._int = _lv_obj_get_style_int(tr->obj, tr->part, prop_tmp); - 3bf0: 462a mov r2, r5 - if((prop_tmp & 0xF) < LV_STYLE_ID_COLOR) { /*Int*/ - 3bf2: d80c bhi.n 3c0e - tr->start_value._int = _lv_obj_get_style_int(tr->obj, tr->part, prop_tmp); - 3bf4: 4b0d ldr r3, [pc, #52] ; (3c2c ) - 3bf6: 4798 blx r3 - tr->start_value._color = _lv_obj_get_style_color(tr->obj, tr->part, prop_tmp); - 3bf8: 8120 strh r0, [r4, #8] - tr->prop = 0; - 3bfa: 2300 movs r3, #0 - 3bfc: 80a3 strh r3, [r4, #4] - trans_del(tr->obj, tr->part, prop_tmp, tr); - 3bfe: 79a1 ldrb r1, [r4, #6] - 3c00: 6820 ldr r0, [r4, #0] - 3c02: 4e0b ldr r6, [pc, #44] ; (3c30 ) - 3c04: 4623 mov r3, r4 - 3c06: 462a mov r2, r5 - 3c08: 47b0 blx r6 - tr->prop = prop_tmp; - 3c0a: 80a5 strh r5, [r4, #4] -} - 3c0c: bd70 pop {r4, r5, r6, pc} - else if((prop_tmp & 0xF) < LV_STYLE_ID_OPA) { /*Color*/ - 3c0e: 2b0b cmp r3, #11 - 3c10: d802 bhi.n 3c18 - tr->start_value._color = _lv_obj_get_style_color(tr->obj, tr->part, prop_tmp); - 3c12: 4b08 ldr r3, [pc, #32] ; (3c34 ) - 3c14: 4798 blx r3 - 3c16: e7ef b.n 3bf8 - else if((prop_tmp & 0xF) < LV_STYLE_ID_PTR) { /*Opa*/ - 3c18: 2b0d cmp r3, #13 - 3c1a: d803 bhi.n 3c24 - tr->start_value._opa = _lv_obj_get_style_opa(tr->obj, tr->part, prop_tmp); - 3c1c: 4b06 ldr r3, [pc, #24] ; (3c38 ) - 3c1e: 4798 blx r3 - 3c20: 7220 strb r0, [r4, #8] - 3c22: e7ea b.n 3bfa - tr->start_value._ptr = _lv_obj_get_style_ptr(tr->obj, tr->part, prop_tmp); - 3c24: 4b05 ldr r3, [pc, #20] ; (3c3c ) - 3c26: 4798 blx r3 - 3c28: 60a0 str r0, [r4, #8] - 3c2a: e7e6 b.n 3bfa - 3c2c: 00003995 .word 0x00003995 - 3c30: 00002739 .word 0x00002739 - 3c34: 00003a39 .word 0x00003a39 - 3c38: 00003abd .word 0x00003abd - 3c3c: 00003b4d .word 0x00003b4d - -00003c40 : -{ - 3c40: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - if(obj->state == new_state) return; - 3c44: f890 303d ldrb.w r3, [r0, #61] ; 0x3d - 3c48: 428b cmp r3, r1 -{ - 3c4a: b09f sub sp, #124 ; 0x7c - 3c4c: 4604 mov r4, r0 - 3c4e: 4688 mov r8, r1 - if(obj->state == new_state) return; - 3c50: f000 8242 beq.w 40d8 - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 3c54: 4b95 ldr r3, [pc, #596] ; (3eac ) - 3c56: 4798 blx r3 - 3c58: 4605 mov r5, r0 - 3c5a: b968 cbnz r0, 3c78 - 3c5c: 4b94 ldr r3, [pc, #592] ; (3eb0 ) - 3c5e: 4995 ldr r1, [pc, #596] ; (3eb4 ) - 3c60: 9300 str r3, [sp, #0] - 3c62: f240 6237 movw r2, #1591 ; 0x637 - 3c66: 2003 movs r0, #3 - 3c68: 4e93 ldr r6, [pc, #588] ; (3eb8 ) - 3c6a: 47b0 blx r6 - 3c6c: 4893 ldr r0, [pc, #588] ; (3ebc ) - 3c6e: 4994 ldr r1, [pc, #592] ; (3ec0 ) - 3c70: 4622 mov r2, r4 - 3c72: 462b mov r3, r5 - 3c74: 4788 blx r1 - 3c76: e7fe b.n 3c76 - lv_state_t prev_state = obj->state; - 3c78: f894 303d ldrb.w r3, [r4, #61] ; 0x3d - 3c7c: 9302 str r3, [sp, #8] - obj->state = new_state; - 3c7e: 2300 movs r3, #0 - 3c80: f884 803d strb.w r8, [r4, #61] ; 0x3d - 3c84: 9303 str r3, [sp, #12] - 3c86: f89d 600c ldrb.w r6, [sp, #12] - lv_style_list_t * style_list = lv_obj_get_style_list(obj, part); - 3c8a: 4b8e ldr r3, [pc, #568] ; (3ec4 ) - 3c8c: 4631 mov r1, r6 - 3c8e: 4620 mov r0, r4 - 3c90: 4798 blx r3 - if(style_list == NULL) break; /*No more style lists*/ - 3c92: 9005 str r0, [sp, #20] - 3c94: b140 cbz r0, 3ca8 - if(style_list->ignore_trans) continue; - 3c96: 7947 ldrb r7, [r0, #5] - 3c98: f017 0708 ands.w r7, r7, #8 - 3c9c: d00b beq.n 3cb6 - for(part = 0; part < _LV_OBJ_PART_REAL_LAST; part++) { - 3c9e: 9b03 ldr r3, [sp, #12] - 3ca0: 3301 adds r3, #1 - 3ca2: 2b40 cmp r3, #64 ; 0x40 - 3ca4: 9303 str r3, [sp, #12] - 3ca6: d1ee bne.n 3c86 - lv_obj_refresh_style(obj, LV_STYLE_PROP_ALL); - 3ca8: 4b87 ldr r3, [pc, #540] ; (3ec8 ) - 3caa: 21ff movs r1, #255 ; 0xff - 3cac: 4620 mov r0, r4 -} - 3cae: b01f add sp, #124 ; 0x7c - 3cb0: e8bd 4ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - lv_obj_refresh_style(obj, LV_STYLE_PROP_ALL); - 3cb4: 4718 bx r3 -_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_OPA, line_opa, lv_opa_t, _opa, scalar) -_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_BLEND_MODE, image_blend_mode, lv_blend_mode_t, _int, scalar) -_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_RECOLOR, image_recolor, lv_color_t, _color, nonscalar) -_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_OPA, image_opa, lv_opa_t, _opa, scalar) -_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_RECOLOR_OPA, image_recolor_opa, lv_opa_t, _opa, scalar) -_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_TIME, transition_time, lv_style_int_t, _int, scalar) - 3cb6: 4d85 ldr r5, [pc, #532] ; (3ecc ) - 3cb8: 22b0 movs r2, #176 ; 0xb0 - 3cba: 4631 mov r1, r6 - 3cbc: 4620 mov r0, r4 - 3cbe: 47a8 blx r5 -_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_DELAY, transition_delay, lv_style_int_t, _int, scalar) - 3cc0: 22b1 movs r2, #177 ; 0xb1 -_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_TIME, transition_time, lv_style_int_t, _int, scalar) - 3cc2: 9009 str r0, [sp, #36] ; 0x24 -_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_DELAY, transition_delay, lv_style_int_t, _int, scalar) - 3cc4: 4631 mov r1, r6 - 3cc6: 4620 mov r0, r4 - 3cc8: 47a8 blx r5 -_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_3, transition_prop_3, lv_style_int_t, _int, scalar) -_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_4, transition_prop_4, lv_style_int_t, _int, scalar) -_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_5, transition_prop_5, lv_style_int_t, _int, scalar) -_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_6, transition_prop_6, lv_style_int_t, _int, scalar) -#if LV_USE_ANIMATION -_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PATH, transition_path, lv_anim_path_t *, _ptr, scalar) - 3cca: 4b81 ldr r3, [pc, #516] ; (3ed0 ) -_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_DELAY, transition_delay, lv_style_int_t, _int, scalar) - 3ccc: 9008 str r0, [sp, #32] -_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PATH, transition_path, lv_anim_path_t *, _ptr, scalar) - 3cce: 22be movs r2, #190 ; 0xbe - 3cd0: 4631 mov r1, r6 - 3cd2: 4620 mov r0, r4 - 3cd4: 4798 blx r3 -_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_1, transition_prop_1, lv_style_int_t, _int, scalar) - 3cd6: 22b2 movs r2, #178 ; 0xb2 -_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PATH, transition_path, lv_anim_path_t *, _ptr, scalar) - 3cd8: 9006 str r0, [sp, #24] -_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_1, transition_prop_1, lv_style_int_t, _int, scalar) - 3cda: 4631 mov r1, r6 - 3cdc: 4620 mov r0, r4 - 3cde: 47a8 blx r5 -_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_2, transition_prop_2, lv_style_int_t, _int, scalar) - 3ce0: 22b3 movs r2, #179 ; 0xb3 - props[0] = lv_obj_get_style_transition_prop_1(obj, part); - 3ce2: f8ad 002c strh.w r0, [sp, #44] ; 0x2c - 3ce6: 4631 mov r1, r6 - 3ce8: 4620 mov r0, r4 - 3cea: 47a8 blx r5 -_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_3, transition_prop_3, lv_style_int_t, _int, scalar) - 3cec: 22b4 movs r2, #180 ; 0xb4 - props[1] = lv_obj_get_style_transition_prop_2(obj, part); - 3cee: f8ad 002e strh.w r0, [sp, #46] ; 0x2e - 3cf2: 4631 mov r1, r6 - 3cf4: 4620 mov r0, r4 - 3cf6: 47a8 blx r5 -_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_4, transition_prop_4, lv_style_int_t, _int, scalar) - 3cf8: 22b5 movs r2, #181 ; 0xb5 - props[2] = lv_obj_get_style_transition_prop_3(obj, part); - 3cfa: f8ad 0030 strh.w r0, [sp, #48] ; 0x30 - 3cfe: 4631 mov r1, r6 - 3d00: 4620 mov r0, r4 - 3d02: 47a8 blx r5 -_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_5, transition_prop_5, lv_style_int_t, _int, scalar) - 3d04: 22b6 movs r2, #182 ; 0xb6 - props[3] = lv_obj_get_style_transition_prop_4(obj, part); - 3d06: f8ad 0032 strh.w r0, [sp, #50] ; 0x32 - 3d0a: 4631 mov r1, r6 - 3d0c: 4620 mov r0, r4 - 3d0e: 47a8 blx r5 -_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_6, transition_prop_6, lv_style_int_t, _int, scalar) - 3d10: 22b7 movs r2, #183 ; 0xb7 - props[4] = lv_obj_get_style_transition_prop_5(obj, part); - 3d12: f8ad 0034 strh.w r0, [sp, #52] ; 0x34 - 3d16: 4631 mov r1, r6 - 3d18: 4620 mov r0, r4 - 3d1a: 47a8 blx r5 - props[5] = lv_obj_get_style_transition_prop_6(obj, part); - 3d1c: 9704 str r7, [sp, #16] - 3d1e: f8ad 0036 strh.w r0, [sp, #54] ; 0x36 - if(props[i] != 0) { - 3d22: 9a04 ldr r2, [sp, #16] - 3d24: ab0b add r3, sp, #44 ; 0x2c - 3d26: f833 7012 ldrh.w r7, [r3, r2, lsl #1] - 3d2a: 2f00 cmp r7, #0 - 3d2c: f000 80b6 beq.w 3e9c - _lv_style_list_add_trans_style(style_list); - 3d30: 4b68 ldr r3, [pc, #416] ; (3ed4 ) - 3d32: 9805 ldr r0, [sp, #20] - 3d34: 4798 blx r3 - lv_style_list_t * style_list = lv_obj_get_style_list(obj, part); - 3d36: 4b63 ldr r3, [pc, #396] ; (3ec4 ) - 3d38: 4631 mov r1, r6 - 3d3a: 4620 mov r0, r4 - 3d3c: 4798 blx r3 - lv_style_t * style_trans = _lv_style_list_get_transition_style(style_list); - 3d3e: 4b66 ldr r3, [pc, #408] ; (3ed8 ) - lv_style_list_t * style_list = lv_obj_get_style_list(obj, part); - 3d40: 4605 mov r5, r0 - lv_style_t * style_trans = _lv_style_list_get_transition_style(style_list); - 3d42: 4798 blx r3 - 3d44: f007 030f and.w r3, r7, #15 - if((prop & 0xF) < LV_STYLE_ID_COLOR) { /*Int*/ - 3d48: 2b08 cmp r3, #8 - lv_style_t * style_trans = _lv_style_list_get_transition_style(style_list); - 3d4a: 4682 mov sl, r0 - if((prop & 0xF) < LV_STYLE_ID_COLOR) { /*Int*/ - 3d4c: f200 80dc bhi.w 3f08 - style_list->skip_trans = 1; - 3d50: 796b ldrb r3, [r5, #5] - lv_style_int_t int1 = _lv_obj_get_style_int(obj, part, prop); - 3d52: f8df b178 ldr.w fp, [pc, #376] ; 3ecc - style_list->skip_trans = 1; - 3d56: f043 0304 orr.w r3, r3, #4 - 3d5a: 716b strb r3, [r5, #5] - obj->state = prev_state; - 3d5c: 9b02 ldr r3, [sp, #8] - 3d5e: f884 303d strb.w r3, [r4, #61] ; 0x3d - lv_style_int_t int1 = _lv_obj_get_style_int(obj, part, prop); - 3d62: 463a mov r2, r7 - 3d64: 4631 mov r1, r6 - 3d66: 4620 mov r0, r4 - 3d68: 47d8 blx fp - lv_style_int_t int2 = _lv_obj_get_style_int(obj, part, prop); - 3d6a: 463a mov r2, r7 - lv_style_int_t int1 = _lv_obj_get_style_int(obj, part, prop); - 3d6c: 9007 str r0, [sp, #28] - obj->state = new_state; - 3d6e: f884 803d strb.w r8, [r4, #61] ; 0x3d - lv_style_int_t int2 = _lv_obj_get_style_int(obj, part, prop); - 3d72: 4631 mov r1, r6 - 3d74: 4620 mov r0, r4 - 3d76: 47d8 blx fp - style_list->skip_trans = 0; - 3d78: 796a ldrb r2, [r5, #5] - if(int1 == int2) return NULL; - 3d7a: 9b07 ldr r3, [sp, #28] - style_list->skip_trans = 0; - 3d7c: f36f 0282 bfc r2, #2, #1 - if(int1 == int2) return NULL; - 3d80: 4283 cmp r3, r0 - lv_style_int_t int2 = _lv_obj_get_style_int(obj, part, prop); - 3d82: 4681 mov r9, r0 - style_list->skip_trans = 0; - 3d84: 716a strb r2, [r5, #5] - if(int1 == int2) return NULL; - 3d86: f000 8089 beq.w 3e9c - obj->state = prev_state; - 3d8a: 9b02 ldr r3, [sp, #8] - 3d8c: f884 303d strb.w r3, [r4, #61] ; 0x3d - int1 = _lv_obj_get_style_int(obj, part, prop); - 3d90: 463a mov r2, r7 - 3d92: 4631 mov r1, r6 - 3d94: 4620 mov r0, r4 - 3d96: 47d8 blx fp - _lv_style_set_int(style_trans, prop, int1); /*Be sure `trans_style` has a valid value */ - 3d98: 4b50 ldr r3, [pc, #320] ; (3edc ) - obj->state = new_state; - 3d9a: f884 803d strb.w r8, [r4, #61] ; 0x3d - _lv_style_set_int(style_trans, prop, int1); /*Be sure `trans_style` has a valid value */ - 3d9e: 4602 mov r2, r0 - int1 = _lv_obj_get_style_int(obj, part, prop); - 3da0: 4683 mov fp, r0 - _lv_style_set_int(style_trans, prop, int1); /*Be sure `trans_style` has a valid value */ - 3da2: 4639 mov r1, r7 - 3da4: 4650 mov r0, sl - 3da6: 4798 blx r3 - if(prop == LV_STYLE_RADIUS) { - 3da8: 2f01 cmp r7, #1 - 3daa: d122 bne.n 3df2 - if(int1 == LV_RADIUS_CIRCLE || int2 == LV_RADIUS_CIRCLE) { - 3dac: f647 73ff movw r3, #32767 ; 0x7fff - 3db0: 459b cmp fp, r3 - 3db2: d001 beq.n 3db8 - 3db4: 4599 cmp r9, r3 - 3db6: d11c bne.n 3df2 - lv_coord_t whalf = lv_obj_get_width(obj) / 2; - 3db8: f8df a148 ldr.w sl, [pc, #328] ; 3f04 - 3dbc: 4620 mov r0, r4 - 3dbe: 47d0 blx sl - 3dc0: eb00 70d0 add.w r0, r0, r0, lsr #31 - 3dc4: f340 054f sbfx r5, r0, #1, #16 - lv_coord_t hhalf = lv_obj_get_width(obj) / 2; - 3dc8: 4620 mov r0, r4 - 3dca: 47d0 blx sl - if(int1 == LV_RADIUS_CIRCLE) int1 = LV_MATH_MIN(whalf + 1, hhalf + 1); - 3dcc: f647 73ff movw r3, #32767 ; 0x7fff - lv_coord_t hhalf = lv_obj_get_width(obj) / 2; - 3dd0: eb00 70d0 add.w r0, r0, r0, lsr #31 - if(int1 == LV_RADIUS_CIRCLE) int1 = LV_MATH_MIN(whalf + 1, hhalf + 1); - 3dd4: 459b cmp fp, r3 - lv_coord_t hhalf = lv_obj_get_width(obj) / 2; - 3dd6: f340 004f sbfx r0, r0, #1, #16 - if(int1 == LV_RADIUS_CIRCLE) int1 = LV_MATH_MIN(whalf + 1, hhalf + 1); - 3dda: d12a bne.n 3e32 - 3ddc: 4285 cmp r5, r0 - 3dde: da1e bge.n 3e1e - 3de0: f105 0b01 add.w fp, r5, #1 - if(int2 == LV_RADIUS_CIRCLE) int2 = LV_MATH_MIN(whalf + 1, hhalf + 1); - 3de4: 4599 cmp r9, r3 - if(int1 == LV_RADIUS_CIRCLE) int1 = LV_MATH_MIN(whalf + 1, hhalf + 1); - 3de6: fa0f fb8b sxth.w fp, fp - if(int2 == LV_RADIUS_CIRCLE) int2 = LV_MATH_MIN(whalf + 1, hhalf + 1); - 3dea: d102 bne.n 3df2 - 3dec: 3501 adds r5, #1 - 3dee: fa0f f985 sxth.w r9, r5 - tr = _lv_ll_ins_head(&LV_GC_ROOT(_lv_obj_style_trans_ll)); - 3df2: 4b3b ldr r3, [pc, #236] ; (3ee0 ) - 3df4: 483b ldr r0, [pc, #236] ; (3ee4 ) - 3df6: 4798 blx r3 - LV_ASSERT_MEM(tr); - 3df8: 4b2c ldr r3, [pc, #176] ; (3eac ) - tr = _lv_ll_ins_head(&LV_GC_ROOT(_lv_obj_style_trans_ll)); - 3dfa: 4605 mov r5, r0 - LV_ASSERT_MEM(tr); - 3dfc: 4798 blx r3 - 3dfe: 4682 mov sl, r0 - 3e00: b9e0 cbnz r0, 3e3c - 3e02: 4b39 ldr r3, [pc, #228] ; (3ee8 ) - 3e04: 492b ldr r1, [pc, #172] ; (3eb4 ) - 3e06: 9300 str r3, [sp, #0] - 3e08: f640 62b2 movw r2, #3762 ; 0xeb2 - 3e0c: 2003 movs r0, #3 - 3e0e: 4c2a ldr r4, [pc, #168] ; (3eb8 ) - 3e10: 47a0 blx r4 - 3e12: 4836 ldr r0, [pc, #216] ; (3eec ) - 3e14: 492a ldr r1, [pc, #168] ; (3ec0 ) - 3e16: 462a mov r2, r5 - 3e18: 4653 mov r3, sl - 3e1a: 4788 blx r1 - 3e1c: e7fe b.n 3e1c - if(int1 == LV_RADIUS_CIRCLE) int1 = LV_MATH_MIN(whalf + 1, hhalf + 1); - 3e1e: f100 0b01 add.w fp, r0, #1 - if(int2 == LV_RADIUS_CIRCLE) int2 = LV_MATH_MIN(whalf + 1, hhalf + 1); - 3e22: 4599 cmp r9, r3 - if(int1 == LV_RADIUS_CIRCLE) int1 = LV_MATH_MIN(whalf + 1, hhalf + 1); - 3e24: fa0f fb8b sxth.w fp, fp - if(int2 == LV_RADIUS_CIRCLE) int2 = LV_MATH_MIN(whalf + 1, hhalf + 1); - 3e28: d1e3 bne.n 3df2 - 3e2a: 3001 adds r0, #1 - 3e2c: fa0f f980 sxth.w r9, r0 - 3e30: e7df b.n 3df2 - 3e32: 4599 cmp r9, r3 - 3e34: d1dd bne.n 3df2 - 3e36: 4285 cmp r5, r0 - 3e38: daf7 bge.n 3e2a - 3e3a: e7d7 b.n 3dec - if(tr == NULL) return NULL; - 3e3c: 2d00 cmp r5, #0 - 3e3e: d02d beq.n 3e9c - tr->start_value._int = int1; - 3e40: f8a5 b008 strh.w fp, [r5, #8] - tr->end_value._int = int2; - 3e44: f8a5 900c strh.w r9, [r5, #12] - lv_anim_init(&a); - 3e48: 4b29 ldr r3, [pc, #164] ; (3ef0 ) - tr->obj = obj; - 3e4a: 602c str r4, [r5, #0] - tr->prop = props[i]; - 3e4c: 80af strh r7, [r5, #4] - tr->part = part; - 3e4e: 71ae strb r6, [r5, #6] - lv_anim_init(&a); - 3e50: a80e add r0, sp, #56 ; 0x38 - 3e52: 4798 blx r3 - * LittelvGL's built-in functions can be used. - * E.g. lv_obj_set_x - */ -static inline void lv_anim_set_exec_cb(lv_anim_t * a, lv_anim_exec_xcb_t exec_cb) -{ - a->exec_cb = exec_cb; - 3e54: 4b27 ldr r3, [pc, #156] ; (3ef4 ) - 3e56: 930f str r3, [sp, #60] ; 0x3c - * @param a pointer to an initialized `lv_anim_t` variable - * @param start_cb a function call when the animation starts - */ -static inline void lv_anim_set_start_cb(lv_anim_t * a, lv_anim_ready_cb_t start_cb) -{ - a->start_cb = start_cb; - 3e58: 4b27 ldr r3, [pc, #156] ; (3ef8 ) - 3e5a: 9310 str r3, [sp, #64] ; 0x40 - * @param a pointer to an initialized `lv_anim_t` variable - * @param ready_cb a function call when the animation is ready - */ -static inline void lv_anim_set_ready_cb(lv_anim_t * a, lv_anim_ready_cb_t ready_cb) -{ - a->ready_cb = ready_cb; - 3e5c: 4b27 ldr r3, [pc, #156] ; (3efc ) - 3e5e: 9311 str r3, [sp, #68] ; 0x44 - a->end = end; - 3e60: 2200 movs r2, #0 - 3e62: 23ff movs r3, #255 ; 0xff - 3e64: e9cd 2314 strd r2, r3, [sp, #80] ; 0x50 - a->time = duration; - 3e68: 9b09 ldr r3, [sp, #36] ; 0x24 - 3e6a: 9316 str r3, [sp, #88] ; 0x58 - a->act_time = (int32_t)(-delay); - 3e6c: 9b08 ldr r3, [sp, #32] - 3e6e: 9a06 ldr r2, [sp, #24] - a->var = var; - 3e70: 950e str r5, [sp, #56] ; 0x38 - a->act_time = (int32_t)(-delay); - 3e72: 425b negs r3, r3 - 3e74: 9317 str r3, [sp, #92] ; 0x5c - 3e76: 9b06 ldr r3, [sp, #24] - 3e78: 1dd1 adds r1, r2, #7 - 3e7a: 3b01 subs r3, #1 - uint8_t * d8 = (uint8_t *)dst; - 3e7c: aa12 add r2, sp, #72 ; 0x48 - *d8 = *s8; - 3e7e: f813 0f01 ldrb.w r0, [r3, #1]! - 3e82: f802 0b01 strb.w r0, [r2], #1 - while(len) { - 3e86: 4299 cmp r1, r3 - 3e88: d1f9 bne.n 3e7e - a.early_apply = 0; - 3e8a: f89d 306e ldrb.w r3, [sp, #110] ; 0x6e - 3e8e: f36f 0300 bfc r3, #0, #1 - 3e92: f88d 306e strb.w r3, [sp, #110] ; 0x6e - lv_anim_start(&a); - 3e96: a80e add r0, sp, #56 ; 0x38 - 3e98: 4b19 ldr r3, [pc, #100] ; (3f00 ) - 3e9a: 4798 blx r3 - for(i = 0; i < LV_STYLE_TRANS_NUM_MAX; i++) { - 3e9c: 9b04 ldr r3, [sp, #16] - 3e9e: 3301 adds r3, #1 - 3ea0: 2b06 cmp r3, #6 - 3ea2: 9304 str r3, [sp, #16] - 3ea4: f47f af3d bne.w 3d22 - 3ea8: e6f9 b.n 3c9e - 3eaa: bf00 nop - 3eac: 00001a65 .word 0x00001a65 - 3eb0: 000270ea .word 0x000270ea - 3eb4: 000268df .word 0x000268df - 3eb8: 0000eb79 .word 0x0000eb79 - 3ebc: 00026943 .word 0x00026943 - 3ec0: 00001a6d .word 0x00001a6d - 3ec4: 00002711 .word 0x00002711 - 3ec8: 00003015 .word 0x00003015 - 3ecc: 00003995 .word 0x00003995 - 3ed0: 00003b4d .word 0x00003b4d - 3ed4: 00006065 .word 0x00006065 - 3ed8: 00005f3d .word 0x00005f3d - 3edc: 00005afd .word 0x00005afd - 3ee0: 0000e89d .word 0x0000e89d - 3ee4: 20003630 .word 0x20003630 - 3ee8: 000270fb .word 0x000270fb - 3eec: 00026842 .word 0x00026842 - 3ef0: 0000defd .word 0x0000defd - 3ef4: 00003211 .word 0x00003211 - 3ef8: 00003be1 .word 0x00003be1 - 3efc: 00002825 .word 0x00002825 - 3f00: 0000dfa5 .word 0x0000dfa5 - 3f04: 00002671 .word 0x00002671 - else if((prop & 0xF) < LV_STYLE_ID_OPA) { /*Color*/ - 3f08: 2b0b cmp r3, #11 - 3f0a: d84b bhi.n 3fa4 - style_list->skip_trans = 1; - 3f0c: 796b ldrb r3, [r5, #5] - lv_color_t c1 = _lv_obj_get_style_color(obj, part, prop); - 3f0e: f8df b200 ldr.w fp, [pc, #512] ; 4110 - style_list->skip_trans = 1; - 3f12: f043 0304 orr.w r3, r3, #4 - 3f16: 716b strb r3, [r5, #5] - obj->state = prev_state; - 3f18: 9b02 ldr r3, [sp, #8] - 3f1a: f884 303d strb.w r3, [r4, #61] ; 0x3d - lv_color_t c1 = _lv_obj_get_style_color(obj, part, prop); - 3f1e: 463a mov r2, r7 - 3f20: 4631 mov r1, r6 - 3f22: 4620 mov r0, r4 - 3f24: 47d8 blx fp - lv_color_t c2 = _lv_obj_get_style_color(obj, part, prop); - 3f26: 463a mov r2, r7 - lv_color_t c1 = _lv_obj_get_style_color(obj, part, prop); - 3f28: 4681 mov r9, r0 - obj->state = new_state; - 3f2a: f884 803d strb.w r8, [r4, #61] ; 0x3d - lv_color_t c2 = _lv_obj_get_style_color(obj, part, prop); - 3f2e: 4631 mov r1, r6 - 3f30: 4620 mov r0, r4 - 3f32: 47d8 blx fp - style_list->skip_trans = 0; - 3f34: 796a ldrb r2, [r5, #5] - lv_color_t c2 = _lv_obj_get_style_color(obj, part, prop); - 3f36: f8ad 001c strh.w r0, [sp, #28] - style_list->skip_trans = 0; - 3f3a: f36f 0282 bfc r2, #2, #1 - 3f3e: 716a strb r2, [r5, #5] - if(c1.full == c2.full) return NULL; - 3f40: fa1f f989 uxth.w r9, r9 - 3f44: b282 uxth r2, r0 - 3f46: 4591 cmp r9, r2 - 3f48: d0a8 beq.n 3e9c - obj->state = prev_state; - 3f4a: 9b02 ldr r3, [sp, #8] - 3f4c: f884 303d strb.w r3, [r4, #61] ; 0x3d - c1 = _lv_obj_get_style_color(obj, part, prop); - 3f50: 463a mov r2, r7 - 3f52: 4631 mov r1, r6 - 3f54: 4620 mov r0, r4 - 3f56: 47d8 blx fp - _lv_style_set_color(style_trans, prop, c1); /*Be sure `trans_style` has a valid value */ - 3f58: 4639 mov r1, r7 - 3f5a: 4602 mov r2, r0 - 3f5c: 4b60 ldr r3, [pc, #384] ; (40e0 ) - obj->state = new_state; - 3f5e: f884 803d strb.w r8, [r4, #61] ; 0x3d - c1 = _lv_obj_get_style_color(obj, part, prop); - 3f62: 4681 mov r9, r0 - _lv_style_set_color(style_trans, prop, c1); /*Be sure `trans_style` has a valid value */ - 3f64: 4650 mov r0, sl - 3f66: 4798 blx r3 - tr = _lv_ll_ins_head(&LV_GC_ROOT(_lv_obj_style_trans_ll)); - 3f68: 4b5e ldr r3, [pc, #376] ; (40e4 ) - 3f6a: 485f ldr r0, [pc, #380] ; (40e8 ) - 3f6c: 4798 blx r3 - LV_ASSERT_MEM(tr); - 3f6e: 4b5f ldr r3, [pc, #380] ; (40ec ) - tr = _lv_ll_ins_head(&LV_GC_ROOT(_lv_obj_style_trans_ll)); - 3f70: 4605 mov r5, r0 - LV_ASSERT_MEM(tr); - 3f72: 4798 blx r3 - 3f74: 4682 mov sl, r0 - 3f76: b968 cbnz r0, 3f94 - 3f78: 4b5d ldr r3, [pc, #372] ; (40f0 ) - 3f7a: 495e ldr r1, [pc, #376] ; (40f4 ) - 3f7c: 9300 str r3, [sp, #0] - 3f7e: f640 62c6 movw r2, #3782 ; 0xec6 - 3f82: 2003 movs r0, #3 - 3f84: 4c5c ldr r4, [pc, #368] ; (40f8 ) - 3f86: 47a0 blx r4 - 3f88: 485c ldr r0, [pc, #368] ; (40fc ) - 3f8a: 495d ldr r1, [pc, #372] ; (4100 ) - 3f8c: 462a mov r2, r5 - 3f8e: 4653 mov r3, sl - 3f90: 4788 blx r1 - 3f92: e7fe b.n 3f92 - if(tr == NULL) return NULL; - 3f94: 2d00 cmp r5, #0 - 3f96: d081 beq.n 3e9c - tr->end_value._color = c2; - 3f98: f8bd 301c ldrh.w r3, [sp, #28] - tr->start_value._color = c1; - 3f9c: f8a5 9008 strh.w r9, [r5, #8] - tr->end_value._color = c2; - 3fa0: 81ab strh r3, [r5, #12] - 3fa2: e751 b.n 3e48 - else if((prop & 0xF) < LV_STYLE_ID_PTR) { /*Opa*/ - 3fa4: 2b0d cmp r3, #13 - 3fa6: d849 bhi.n 403c - style_list->skip_trans = 1; - 3fa8: 796b ldrb r3, [r5, #5] - lv_opa_t o1 = _lv_obj_get_style_opa(obj, part, prop); - 3faa: f8df b168 ldr.w fp, [pc, #360] ; 4114 - style_list->skip_trans = 1; - 3fae: f043 0304 orr.w r3, r3, #4 - 3fb2: 716b strb r3, [r5, #5] - obj->state = prev_state; - 3fb4: 9b02 ldr r3, [sp, #8] - 3fb6: f884 303d strb.w r3, [r4, #61] ; 0x3d - lv_opa_t o1 = _lv_obj_get_style_opa(obj, part, prop); - 3fba: 463a mov r2, r7 - 3fbc: 4631 mov r1, r6 - 3fbe: 4620 mov r0, r4 - 3fc0: 47d8 blx fp - lv_opa_t o2 = _lv_obj_get_style_opa(obj, part, prop); - 3fc2: 463a mov r2, r7 - lv_opa_t o1 = _lv_obj_get_style_opa(obj, part, prop); - 3fc4: 9007 str r0, [sp, #28] - obj->state = new_state; - 3fc6: f884 803d strb.w r8, [r4, #61] ; 0x3d - lv_opa_t o2 = _lv_obj_get_style_opa(obj, part, prop); - 3fca: 4631 mov r1, r6 - 3fcc: 4620 mov r0, r4 - 3fce: 47d8 blx fp - style_list->skip_trans = 0; - 3fd0: 796a ldrb r2, [r5, #5] - if(o1 == o2) return NULL; - 3fd2: 9b07 ldr r3, [sp, #28] - style_list->skip_trans = 0; - 3fd4: f36f 0282 bfc r2, #2, #1 - if(o1 == o2) return NULL; - 3fd8: 4283 cmp r3, r0 - lv_opa_t o2 = _lv_obj_get_style_opa(obj, part, prop); - 3fda: 4681 mov r9, r0 - style_list->skip_trans = 0; - 3fdc: 716a strb r2, [r5, #5] - if(o1 == o2) return NULL; - 3fde: f43f af5d beq.w 3e9c - obj->state = prev_state; - 3fe2: 9b02 ldr r3, [sp, #8] - 3fe4: f884 303d strb.w r3, [r4, #61] ; 0x3d - o1 = _lv_obj_get_style_opa(obj, part, prop); - 3fe8: 463a mov r2, r7 - 3fea: 4631 mov r1, r6 - 3fec: 4620 mov r0, r4 - 3fee: 47d8 blx fp - _lv_style_set_opa(style_trans, prop, o1); /*Be sure `trans_style` has a valid value */ - 3ff0: 4639 mov r1, r7 - 3ff2: 4602 mov r2, r0 - 3ff4: 4b43 ldr r3, [pc, #268] ; (4104 ) - obj->state = new_state; - 3ff6: f884 803d strb.w r8, [r4, #61] ; 0x3d - o1 = _lv_obj_get_style_opa(obj, part, prop); - 3ffa: 4683 mov fp, r0 - _lv_style_set_opa(style_trans, prop, o1); /*Be sure `trans_style` has a valid value */ - 3ffc: 4650 mov r0, sl - 3ffe: 4798 blx r3 - tr = _lv_ll_ins_head(&LV_GC_ROOT(_lv_obj_style_trans_ll)); - 4000: 4b38 ldr r3, [pc, #224] ; (40e4 ) - 4002: 4839 ldr r0, [pc, #228] ; (40e8 ) - 4004: 4798 blx r3 - LV_ASSERT_MEM(tr); - 4006: 4b39 ldr r3, [pc, #228] ; (40ec ) - tr = _lv_ll_ins_head(&LV_GC_ROOT(_lv_obj_style_trans_ll)); - 4008: 4605 mov r5, r0 - LV_ASSERT_MEM(tr); - 400a: 4798 blx r3 - 400c: 4682 mov sl, r0 - 400e: b968 cbnz r0, 402c - 4010: 4b37 ldr r3, [pc, #220] ; (40f0 ) - 4012: 4938 ldr r1, [pc, #224] ; (40f4 ) - 4014: 9300 str r3, [sp, #0] - 4016: f640 62db movw r2, #3803 ; 0xedb - 401a: 2003 movs r0, #3 - 401c: 4c36 ldr r4, [pc, #216] ; (40f8 ) - 401e: 47a0 blx r4 - 4020: 4836 ldr r0, [pc, #216] ; (40fc ) - 4022: 4937 ldr r1, [pc, #220] ; (4100 ) - 4024: 462a mov r2, r5 - 4026: 4653 mov r3, sl - 4028: 4788 blx r1 - 402a: e7fe b.n 402a - if(tr == NULL) return NULL; - 402c: 2d00 cmp r5, #0 - 402e: f43f af35 beq.w 3e9c - tr->start_value._opa = o1; - 4032: f885 b008 strb.w fp, [r5, #8] - tr->end_value._opa = o2; - 4036: f885 900c strb.w r9, [r5, #12] - 403a: e705 b.n 3e48 - obj->state = prev_state; - 403c: 9b02 ldr r3, [sp, #8] - 403e: f884 303d strb.w r3, [r4, #61] ; 0x3d - style_list->skip_trans = 1; - 4042: 796b ldrb r3, [r5, #5] - const void * p1 = _lv_obj_get_style_ptr(obj, part, prop); - 4044: f8df b0d0 ldr.w fp, [pc, #208] ; 4118 - style_list->skip_trans = 1; - 4048: f043 0304 orr.w r3, r3, #4 - 404c: 716b strb r3, [r5, #5] - const void * p1 = _lv_obj_get_style_ptr(obj, part, prop); - 404e: 463a mov r2, r7 - 4050: 4631 mov r1, r6 - 4052: 4620 mov r0, r4 - 4054: 47d8 blx fp - const void * p2 = _lv_obj_get_style_ptr(obj, part, prop); - 4056: 463a mov r2, r7 - const void * p1 = _lv_obj_get_style_ptr(obj, part, prop); - 4058: 900a str r0, [sp, #40] ; 0x28 - const void * p2 = _lv_obj_get_style_ptr(obj, part, prop); - 405a: 4631 mov r1, r6 - obj->state = new_state; - 405c: f884 803d strb.w r8, [r4, #61] ; 0x3d - const void * p2 = _lv_obj_get_style_ptr(obj, part, prop); - 4060: 4620 mov r0, r4 - 4062: 47d8 blx fp - 4064: 900e str r0, [sp, #56] ; 0x38 - style_list->skip_trans = 0; - 4066: 796b ldrb r3, [r5, #5] - 4068: f36f 0382 bfc r3, #2, #1 - const void * p2 = _lv_obj_get_style_ptr(obj, part, prop); - 406c: 4681 mov r9, r0 - style_list->skip_trans = 0; - 406e: 716b strb r3, [r5, #5] - if(memcmp(&p1, &p2, sizeof(const void *)) == 0) return NULL; - 4070: 2204 movs r2, #4 - 4072: 4b25 ldr r3, [pc, #148] ; (4108 ) - 4074: a90e add r1, sp, #56 ; 0x38 - 4076: a80a add r0, sp, #40 ; 0x28 - 4078: 4798 blx r3 - 407a: 2800 cmp r0, #0 - 407c: f43f af0e beq.w 3e9c - obj->state = prev_state; - 4080: 9b02 ldr r3, [sp, #8] - 4082: f884 303d strb.w r3, [r4, #61] ; 0x3d - p1 = _lv_obj_get_style_ptr(obj, part, prop); - 4086: 463a mov r2, r7 - 4088: 4631 mov r1, r6 - 408a: 4620 mov r0, r4 - 408c: 47d8 blx fp - _lv_style_set_ptr(style_trans, prop, p1); /*Be sure `trans_style` has a valid value */ - 408e: 4639 mov r1, r7 - 4090: 4602 mov r2, r0 - 4092: 4b1e ldr r3, [pc, #120] ; (410c ) - p1 = _lv_obj_get_style_ptr(obj, part, prop); - 4094: 900a str r0, [sp, #40] ; 0x28 - 4096: 4683 mov fp, r0 - obj->state = new_state; - 4098: f884 803d strb.w r8, [r4, #61] ; 0x3d - _lv_style_set_ptr(style_trans, prop, p1); /*Be sure `trans_style` has a valid value */ - 409c: 4650 mov r0, sl - 409e: 4798 blx r3 - tr = _lv_ll_ins_head(&LV_GC_ROOT(_lv_obj_style_trans_ll)); - 40a0: 4b10 ldr r3, [pc, #64] ; (40e4 ) - 40a2: 4811 ldr r0, [pc, #68] ; (40e8 ) - 40a4: 4798 blx r3 - LV_ASSERT_MEM(tr); - 40a6: 4b11 ldr r3, [pc, #68] ; (40ec ) - tr = _lv_ll_ins_head(&LV_GC_ROOT(_lv_obj_style_trans_ll)); - 40a8: 4605 mov r5, r0 - LV_ASSERT_MEM(tr); - 40aa: 4798 blx r3 - 40ac: 4682 mov sl, r0 - 40ae: b968 cbnz r0, 40cc - 40b0: 4b0f ldr r3, [pc, #60] ; (40f0 ) - 40b2: 4910 ldr r1, [pc, #64] ; (40f4 ) - 40b4: 9300 str r3, [sp, #0] - 40b6: f640 62ef movw r2, #3823 ; 0xeef - 40ba: 2003 movs r0, #3 - 40bc: 4c0e ldr r4, [pc, #56] ; (40f8 ) - 40be: 47a0 blx r4 - 40c0: 480e ldr r0, [pc, #56] ; (40fc ) - 40c2: 490f ldr r1, [pc, #60] ; (4100 ) - 40c4: 462a mov r2, r5 - 40c6: 4653 mov r3, sl - 40c8: 4788 blx r1 - 40ca: e7fe b.n 40ca - if(tr == NULL) return NULL; - 40cc: 2d00 cmp r5, #0 - 40ce: f43f aee5 beq.w 3e9c - tr->end_value._ptr = p2; - 40d2: e9c5 b902 strd fp, r9, [r5, #8] - 40d6: e6b7 b.n 3e48 -} - 40d8: b01f add sp, #124 ; 0x7c - 40da: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - 40de: bf00 nop - 40e0: 00005bcd .word 0x00005bcd - 40e4: 0000e89d .word 0x0000e89d - 40e8: 20003630 .word 0x20003630 - 40ec: 00001a65 .word 0x00001a65 - 40f0: 000270fb .word 0x000270fb - 40f4: 000268df .word 0x000268df - 40f8: 0000eb79 .word 0x0000eb79 - 40fc: 00026842 .word 0x00026842 - 4100: 00001a6d .word 0x00001a6d - 4104: 00005c9d .word 0x00005c9d - 4108: 00016cc1 .word 0x00016cc1 - 410c: 00005d71 .word 0x00005d71 - 4110: 00003a39 .word 0x00003a39 - 4114: 00003abd .word 0x00003abd - 4118: 00003b4d .word 0x00003b4d - -0000411c : -{ - 411c: b573 push {r0, r1, r4, r5, r6, lr} - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 411e: 4b11 ldr r3, [pc, #68] ; (4164 ) -{ - 4120: 4604 mov r4, r0 - 4122: 460d mov r5, r1 - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 4124: 4798 blx r3 - 4126: 4606 mov r6, r0 - 4128: b968 cbnz r0, 4146 - 412a: 4b0f ldr r3, [pc, #60] ; (4168 ) - 412c: 490f ldr r1, [pc, #60] ; (416c ) - 412e: 9300 str r3, [sp, #0] - 4130: f240 627e movw r2, #1662 ; 0x67e - 4134: 2003 movs r0, #3 - 4136: 4d0e ldr r5, [pc, #56] ; (4170 ) - 4138: 47a8 blx r5 - 413a: 480e ldr r0, [pc, #56] ; (4174 ) - 413c: 490e ldr r1, [pc, #56] ; (4178 ) - 413e: 4622 mov r2, r4 - 4140: 4633 mov r3, r6 - 4142: 4788 blx r1 - 4144: e7fe b.n 4144 - lv_state_t new_state = obj->state | state; - 4146: f894 303d ldrb.w r3, [r4, #61] ; 0x3d - 414a: ea43 0105 orr.w r1, r3, r5 - if(obj->state != new_state) { - 414e: 439d bics r5, r3 - 4150: d005 beq.n 415e - lv_obj_set_state(obj, new_state); - 4152: 4b0a ldr r3, [pc, #40] ; (417c ) - 4154: 4620 mov r0, r4 -} - 4156: b002 add sp, #8 - 4158: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr} - lv_obj_set_state(obj, new_state); - 415c: 4718 bx r3 -} - 415e: b002 add sp, #8 - 4160: bd70 pop {r4, r5, r6, pc} - 4162: bf00 nop - 4164: 00001a65 .word 0x00001a65 - 4168: 00027108 .word 0x00027108 - 416c: 000268df .word 0x000268df - 4170: 0000eb79 .word 0x0000eb79 - 4174: 00026943 .word 0x00026943 - 4178: 00001a6d .word 0x00001a6d - 417c: 00003c41 .word 0x00003c41 - -00004180 : -{ - 4180: b573 push {r0, r1, r4, r5, r6, lr} - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 4182: 4b11 ldr r3, [pc, #68] ; (41c8 ) -{ - 4184: 4604 mov r4, r0 - 4186: 460d mov r5, r1 - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 4188: 4798 blx r3 - 418a: 4606 mov r6, r0 - 418c: b968 cbnz r0, 41aa - 418e: 4b0f ldr r3, [pc, #60] ; (41cc ) - 4190: 490f ldr r1, [pc, #60] ; (41d0 ) - 4192: 9300 str r3, [sp, #0] - 4194: f240 628f movw r2, #1679 ; 0x68f - 4198: 2003 movs r0, #3 - 419a: 4d0e ldr r5, [pc, #56] ; (41d4 ) - 419c: 47a8 blx r5 - 419e: 480e ldr r0, [pc, #56] ; (41d8 ) - 41a0: 490e ldr r1, [pc, #56] ; (41dc ) - 41a2: 4622 mov r2, r4 - 41a4: 4633 mov r3, r6 - 41a6: 4788 blx r1 - 41a8: e7fe b.n 41a8 - lv_state_t new_state = obj->state & (~state); - 41aa: f894 303d ldrb.w r3, [r4, #61] ; 0x3d - if(obj->state != new_state) { - 41ae: 421d tst r5, r3 - lv_state_t new_state = obj->state & (~state); - 41b0: ea23 0105 bic.w r1, r3, r5 - if(obj->state != new_state) { - 41b4: d005 beq.n 41c2 - lv_obj_set_state(obj, new_state); - 41b6: 4b0a ldr r3, [pc, #40] ; (41e0 ) - 41b8: 4620 mov r0, r4 -} - 41ba: b002 add sp, #8 - 41bc: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr} - lv_obj_set_state(obj, new_state); - 41c0: 4718 bx r3 -} - 41c2: b002 add sp, #8 - 41c4: bd70 pop {r4, r5, r6, pc} - 41c6: bf00 nop - 41c8: 00001a65 .word 0x00001a65 - 41cc: 00027119 .word 0x00027119 - 41d0: 000268df .word 0x000268df - 41d4: 0000eb79 .word 0x0000eb79 - 41d8: 00026943 .word 0x00026943 - 41dc: 00001a6d .word 0x00001a6d - 41e0: 00003c41 .word 0x00003c41 - -000041e4 : -{ - 41e4: b573 push {r0, r1, r4, r5, r6, lr} - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 41e6: 4b0b ldr r3, [pc, #44] ; (4214 ) -{ - 41e8: 4604 mov r4, r0 - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 41ea: 4798 blx r3 - 41ec: 4605 mov r5, r0 - 41ee: b968 cbnz r0, 420c - 41f0: 4b09 ldr r3, [pc, #36] ; (4218 ) - 41f2: 490a ldr r1, [pc, #40] ; (421c ) - 41f4: 9300 str r3, [sp, #0] - 41f6: f640 22f5 movw r2, #2805 ; 0xaf5 - 41fa: 2003 movs r0, #3 - 41fc: 4e08 ldr r6, [pc, #32] ; (4220 ) - 41fe: 47b0 blx r6 - 4200: 4808 ldr r0, [pc, #32] ; (4224 ) - 4202: 4909 ldr r1, [pc, #36] ; (4228 ) - 4204: 4622 mov r2, r4 - 4206: 462b mov r3, r5 - 4208: 4788 blx r1 - 420a: e7fe b.n 420a -} - 420c: 69e0 ldr r0, [r4, #28] - 420e: b002 add sp, #8 - 4210: bd70 pop {r4, r5, r6, pc} - 4212: bf00 nop - 4214: 00001a65 .word 0x00001a65 - 4218: 0002712c .word 0x0002712c - 421c: 000268df .word 0x000268df - 4220: 0000eb79 .word 0x0000eb79 - 4224: 00026943 .word 0x00026943 - 4228: 00001a6d .word 0x00001a6d - -0000422c : -{ - 422c: b573 push {r0, r1, r4, r5, r6, lr} - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 422e: 4b0b ldr r3, [pc, #44] ; (425c ) -{ - 4230: 4604 mov r4, r0 - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 4232: 4798 blx r3 - 4234: 4605 mov r5, r0 - 4236: b968 cbnz r0, 4254 - 4238: 4b09 ldr r3, [pc, #36] ; (4260 ) - 423a: 490a ldr r1, [pc, #40] ; (4264 ) - 423c: 9300 str r3, [sp, #0] - 423e: f640 321e movw r2, #2846 ; 0xb1e - 4242: 2003 movs r0, #3 - 4244: 4e08 ldr r6, [pc, #32] ; (4268 ) - 4246: 47b0 blx r6 - 4248: 4808 ldr r0, [pc, #32] ; (426c ) - 424a: 4909 ldr r1, [pc, #36] ; (4270 ) - 424c: 4622 mov r2, r4 - 424e: 462b mov r3, r5 - 4250: 4788 blx r1 - 4252: e7fe b.n 4252 -} - 4254: 6a60 ldr r0, [r4, #36] ; 0x24 - 4256: b002 add sp, #8 - 4258: bd70 pop {r4, r5, r6, pc} - 425a: bf00 nop - 425c: 00001a65 .word 0x00001a65 - 4260: 0002716a .word 0x0002716a - 4264: 000268df .word 0x000268df - 4268: 0000eb79 .word 0x0000eb79 - 426c: 00026943 .word 0x00026943 - 4270: 00001a6d .word 0x00001a6d - -00004274 : -{ - 4274: b573 push {r0, r1, r4, r5, r6, lr} - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 4276: 4b0b ldr r3, [pc, #44] ; (42a4 ) -{ - 4278: 4604 mov r4, r0 - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 427a: 4798 blx r3 - 427c: 4605 mov r5, r0 - 427e: b968 cbnz r0, 429c - 4280: 4b09 ldr r3, [pc, #36] ; (42a8 ) - 4282: 490a ldr r1, [pc, #40] ; (42ac ) - 4284: 9300 str r3, [sp, #0] - 4286: f640 326f movw r2, #2927 ; 0xb6f - 428a: 2003 movs r0, #3 - 428c: 4e08 ldr r6, [pc, #32] ; (42b0 ) - 428e: 47b0 blx r6 - 4290: 4808 ldr r0, [pc, #32] ; (42b4 ) - 4292: 4909 ldr r1, [pc, #36] ; (42b8 ) - 4294: 4622 mov r2, r4 - 4296: 462b mov r3, r5 - 4298: 4788 blx r1 - 429a: e7fe b.n 429a -} - 429c: 6ba0 ldr r0, [r4, #56] ; 0x38 - 429e: b002 add sp, #8 - 42a0: bd70 pop {r4, r5, r6, pc} - 42a2: bf00 nop - 42a4: 00001a65 .word 0x00001a65 - 42a8: 0002718e .word 0x0002718e - 42ac: 000268df .word 0x000268df - 42b0: 0000eb79 .word 0x0000eb79 - 42b4: 00026943 .word 0x00026943 - 42b8: 00001a6d .word 0x00001a6d - -000042bc : -{ - 42bc: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} - lv_event_send(obj, LV_EVENT_DELETE, NULL); - 42c0: 4b39 ldr r3, [pc, #228] ; (43a8 ) -{ - 42c2: 4604 mov r4, r0 - lv_event_send(obj, LV_EVENT_DELETE, NULL); - 42c4: 2200 movs r2, #0 - 42c6: 2115 movs r1, #21 - 42c8: 4798 blx r3 - lv_group_t * group = lv_obj_get_group(obj); - 42ca: 4b38 ldr r3, [pc, #224] ; (43ac ) - 42cc: 4620 mov r0, r4 - 42ce: 4798 blx r3 - if(group) lv_group_remove_obj(obj); - 42d0: 4607 mov r7, r0 - 42d2: b110 cbz r0, 42da - 42d4: 4b36 ldr r3, [pc, #216] ; (43b0 ) - 42d6: 4620 mov r0, r4 - 42d8: 4798 blx r3 - lv_anim_del(obj, NULL); - 42da: 4b36 ldr r3, [pc, #216] ; (43b4 ) - trans_del(obj, 0xFF, 0xFF, NULL); - 42dc: 4d36 ldr r5, [pc, #216] ; (43b8 ) - i_next = _lv_ll_get_next(&(obj->child_ll), i); - 42de: f8df 90f4 ldr.w r9, [pc, #244] ; 43d4 - lv_anim_del(obj, NULL); - 42e2: 2100 movs r1, #0 - 42e4: 4620 mov r0, r4 - 42e6: 4798 blx r3 - trans_del(obj, 0xFF, 0xFF, NULL); - 42e8: 22ff movs r2, #255 ; 0xff - 42ea: 2300 movs r3, #0 - 42ec: 4611 mov r1, r2 - 42ee: 4620 mov r0, r4 - i = _lv_ll_get_head(&(obj->child_ll)); - 42f0: f104 0804 add.w r8, r4, #4 - trans_del(obj, 0xFF, 0xFF, NULL); - 42f4: 47a8 blx r5 - i = _lv_ll_get_head(&(obj->child_ll)); - 42f6: 4b31 ldr r3, [pc, #196] ; (43bc ) - 42f8: 4640 mov r0, r8 - 42fa: 4798 blx r3 - 42fc: 4605 mov r5, r0 - while(i != NULL) { - 42fe: bb3d cbnz r5, 4350 - -#endif - -static void lv_event_mark_deleted(lv_obj_t * obj) -{ - lv_event_temp_data_t * t = event_temp_data_head; - 4300: 4b2f ldr r3, [pc, #188] ; (43c0 ) - 4302: 685e ldr r6, [r3, #4] - - while(t) { - if(t->obj == obj) t->deleted = true; - 4304: 2301 movs r3, #1 - while(t) { - 4306: bb66 cbnz r6, 4362 - lv_indev_t * indev = lv_indev_get_next(NULL); - 4308: f8df 80cc ldr.w r8, [pc, #204] ; 43d8 - lv_indev_reset(indev, obj); - 430c: f8df 90cc ldr.w r9, [pc, #204] ; 43dc - if(indev->group == group && obj == lv_indev_get_obj_act()) { - 4310: f8df a0cc ldr.w sl, [pc, #204] ; 43e0 - lv_indev_t * indev = lv_indev_get_next(NULL); - 4314: 4630 mov r0, r6 - 4316: 47c0 blx r8 - 4318: 4605 mov r5, r0 - while(indev) { - 431a: bb45 cbnz r5, 436e - obj->signal_cb(obj, LV_SIGNAL_CLEANUP, NULL); - 431c: 462a mov r2, r5 - 431e: 4629 mov r1, r5 - 4320: 69e3 ldr r3, [r4, #28] - 4322: 4d28 ldr r5, [pc, #160] ; (43c4 ) - 4324: 4620 mov r0, r4 - 4326: 4798 blx r3 - lv_obj_t * par = lv_obj_get_parent(obj); - 4328: 4b27 ldr r3, [pc, #156] ; (43c8 ) - 432a: 4620 mov r0, r4 - 432c: 4798 blx r3 - if(par == NULL) { /*It is a screen*/ - 432e: 2800 cmp r0, #0 - 4330: d137 bne.n 43a2 - lv_disp_t * d = lv_obj_get_disp(obj); - 4332: 4b26 ldr r3, [pc, #152] ; (43cc ) - 4334: 4620 mov r0, r4 - 4336: 4798 blx r3 - _lv_ll_remove(&d->scr_ll, obj); - 4338: 4621 mov r1, r4 - 433a: 3030 adds r0, #48 ; 0x30 - _lv_ll_remove(&(par->child_ll), obj); - 433c: 47a8 blx r5 - if(obj->ext_attr != NULL) lv_mem_free(obj->ext_attr); - 433e: 6a60 ldr r0, [r4, #36] ; 0x24 - 4340: 4d23 ldr r5, [pc, #140] ; (43d0 ) - 4342: b100 cbz r0, 4346 - 4344: 47a8 blx r5 - lv_mem_free(obj); /*Free the object itself*/ - 4346: 4620 mov r0, r4 - 4348: 462b mov r3, r5 -} - 434a: e8bd 47f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr} - lv_mem_free(obj); /*Free the object itself*/ - 434e: 4718 bx r3 - i_next = _lv_ll_get_next(&(obj->child_ll), i); - 4350: 4629 mov r1, r5 - 4352: 4640 mov r0, r8 - 4354: 47c8 blx r9 - 4356: 4606 mov r6, r0 - obj_del_core(i); - 4358: 4628 mov r0, r5 - 435a: f7ff ffaf bl 42bc - i = i_next; - 435e: 4635 mov r5, r6 - 4360: e7cd b.n 42fe - if(t->obj == obj) t->deleted = true; - 4362: 6832 ldr r2, [r6, #0] - 4364: 4294 cmp r4, r2 - 4366: bf08 it eq - 4368: 7133 strbeq r3, [r6, #4] - t = t->prev; - 436a: 68b6 ldr r6, [r6, #8] - 436c: e7cb b.n 4306 - if(indev->proc.types.pointer.act_obj == obj || indev->proc.types.pointer.last_obj == obj) { - 436e: 6b6b ldr r3, [r5, #52] ; 0x34 - 4370: 42a3 cmp r3, r4 - 4372: d002 beq.n 437a - 4374: 6bab ldr r3, [r5, #56] ; 0x38 - 4376: 42a3 cmp r3, r4 - 4378: d102 bne.n 4380 - lv_indev_reset(indev, obj); - 437a: 4621 mov r1, r4 - 437c: 4628 mov r0, r5 - 437e: 47c8 blx r9 - if(indev->proc.types.pointer.last_pressed == obj) { - 4380: 6beb ldr r3, [r5, #60] ; 0x3c - 4382: 42a3 cmp r3, r4 - if(indev->group == group && obj == lv_indev_get_obj_act()) { - 4384: 6dab ldr r3, [r5, #88] ; 0x58 - indev->proc.types.pointer.last_pressed = NULL; - 4386: bf08 it eq - 4388: 63ee streq r6, [r5, #60] ; 0x3c - if(indev->group == group && obj == lv_indev_get_obj_act()) { - 438a: 42bb cmp r3, r7 - 438c: d105 bne.n 439a - 438e: 47d0 blx sl - 4390: 4284 cmp r4, r0 - 4392: d102 bne.n 439a - lv_indev_reset(indev, obj); - 4394: 4621 mov r1, r4 - 4396: 4628 mov r0, r5 - 4398: 47c8 blx r9 - indev = lv_indev_get_next(indev); - 439a: 4628 mov r0, r5 - 439c: 47c0 blx r8 - 439e: 4605 mov r5, r0 - 43a0: e7bb b.n 431a - _lv_ll_remove(&(par->child_ll), obj); - 43a2: 4621 mov r1, r4 - 43a4: 3004 adds r0, #4 - 43a6: e7c9 b.n 433c - 43a8: 000021fd .word 0x000021fd - 43ac: 00004275 .word 0x00004275 - 43b0: 00001df9 .word 0x00001df9 - 43b4: 0000df35 .word 0x0000df35 - 43b8: 00002739 .word 0x00002739 - 43bc: 0000e92d .word 0x0000e92d - 43c0: 200030c4 .word 0x200030c4 - 43c4: 0000e9f1 .word 0x0000e9f1 - 43c8: 000023a9 .word 0x000023a9 - 43cc: 00002449 .word 0x00002449 - 43d0: 0000ed75 .word 0x0000ed75 - 43d4: 0000e939 .word 0x0000e939 - 43d8: 0000dc9d .word 0x0000dc9d - 43dc: 00001efd .word 0x00001efd - 43e0: 00001f39 .word 0x00001f39 - -000043e4 : -{ - 43e4: b5f7 push {r0, r1, r2, r4, r5, r6, r7, lr} - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 43e6: 4b1b ldr r3, [pc, #108] ; (4454 ) -{ - 43e8: 4604 mov r4, r0 - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 43ea: 4798 blx r3 - 43ec: 4605 mov r5, r0 - 43ee: b968 cbnz r0, 440c - 43f0: 4b19 ldr r3, [pc, #100] ; (4458 ) - 43f2: 491a ldr r1, [pc, #104] ; (445c ) - 43f4: 9300 str r3, [sp, #0] - 43f6: f240 1293 movw r2, #403 ; 0x193 - 43fa: 2003 movs r0, #3 - 43fc: 4e18 ldr r6, [pc, #96] ; (4460 ) - 43fe: 47b0 blx r6 - 4400: 4818 ldr r0, [pc, #96] ; (4464 ) - 4402: 4919 ldr r1, [pc, #100] ; (4468 ) - 4404: 4622 mov r2, r4 - 4406: 462b mov r3, r5 - 4408: 4788 blx r1 - 440a: e7fe b.n 440a - lv_obj_invalidate(obj); - 440c: 4b17 ldr r3, [pc, #92] ; (446c ) - 440e: 4620 mov r0, r4 - 4410: 4798 blx r3 - lv_obj_t * par = lv_obj_get_parent(obj); - 4412: 4b17 ldr r3, [pc, #92] ; (4470 ) - 4414: 4620 mov r0, r4 - 4416: 4798 blx r3 - if(par == NULL) { - 4418: 4606 mov r6, r0 - 441a: b9b8 cbnz r0, 444c - disp = lv_obj_get_disp(obj); - 441c: 4b15 ldr r3, [pc, #84] ; (4474 ) - 441e: 4620 mov r0, r4 - 4420: 4798 blx r3 - if(!disp) return LV_RES_INV; /*Shouldn't happen*/ - 4422: 4605 mov r5, r0 - 4424: b178 cbz r0, 4446 - if(disp->act_scr == obj) act_scr_del = true; - 4426: 6bc7 ldr r7, [r0, #60] ; 0x3c - 4428: 1b3b subs r3, r7, r4 - 442a: 425f negs r7, r3 - 442c: 415f adcs r7, r3 - obj_del_core(obj); - 442e: 4b12 ldr r3, [pc, #72] ; (4478 ) - 4430: 4620 mov r0, r4 - 4432: 4798 blx r3 - if(par) { - 4434: b126 cbz r6, 4440 - par->signal_cb(par, LV_SIGNAL_CHILD_CHG, NULL); - 4436: 69f3 ldr r3, [r6, #28] - 4438: 2200 movs r2, #0 - 443a: 2101 movs r1, #1 - 443c: 4630 mov r0, r6 - 443e: 4798 blx r3 - if(act_scr_del) { - 4440: b10f cbz r7, 4446 - disp->act_scr = NULL; - 4442: 2300 movs r3, #0 - 4444: 63eb str r3, [r5, #60] ; 0x3c -} - 4446: 2000 movs r0, #0 - 4448: b003 add sp, #12 - 444a: bdf0 pop {r4, r5, r6, r7, pc} - bool act_scr_del = false; - 444c: 2700 movs r7, #0 - lv_disp_t * disp = NULL; - 444e: 463d mov r5, r7 - 4450: e7ed b.n 442e - 4452: bf00 nop - 4454: 00001a65 .word 0x00001a65 - 4458: 0002719f .word 0x0002719f - 445c: 000268df .word 0x000268df - 4460: 0000eb79 .word 0x0000eb79 - 4464: 00026943 .word 0x00026943 - 4468: 00001a6d .word 0x00001a6d - 446c: 00002a09 .word 0x00002a09 - 4470: 000023a9 .word 0x000023a9 - 4474: 00002449 .word 0x00002449 - 4478: 000042bd .word 0x000042bd - -0000447c : -{ - 447c: b573 push {r0, r1, r4, r5, r6, lr} - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 447e: 4b0e ldr r3, [pc, #56] ; (44b8 ) -{ - 4480: 4604 mov r4, r0 - LV_ASSERT_OBJ(obj, LV_OBJX_NAME); - 4482: 4798 blx r3 - 4484: 4605 mov r5, r0 - 4486: b968 cbnz r0, 44a4 - 4488: 4b0c ldr r3, [pc, #48] ; (44bc ) - 448a: 490d ldr r1, [pc, #52] ; (44c0 ) - 448c: 9300 str r3, [sp, #0] - 448e: f44f 6238 mov.w r2, #2944 ; 0xb80 - 4492: 2003 movs r0, #3 - 4494: 4e0b ldr r6, [pc, #44] ; (44c4 ) - 4496: 47b0 blx r6 - 4498: 480b ldr r0, [pc, #44] ; (44c8 ) - 449a: 490c ldr r1, [pc, #48] ; (44cc ) - 449c: 4622 mov r2, r4 - 449e: 462b mov r3, r5 - 44a0: 4788 blx r1 - 44a2: e7fe b.n 44a2 - if(obj->group_p) { - 44a4: 6ba0 ldr r0, [r4, #56] ; 0x38 - 44a6: b120 cbz r0, 44b2 - if(lv_group_get_focused(obj->group_p) == obj) return true; - 44a8: 4b09 ldr r3, [pc, #36] ; (44d0 ) - 44aa: 4798 blx r3 - 44ac: 1a23 subs r3, r4, r0 - 44ae: 4258 negs r0, r3 - 44b0: 4158 adcs r0, r3 -} - 44b2: b002 add sp, #8 - 44b4: bd70 pop {r4, r5, r6, pc} - 44b6: bf00 nop - 44b8: 00001a65 .word 0x00001a65 - 44bc: 000271cb .word 0x000271cb - 44c0: 000268df .word 0x000268df - 44c4: 0000eb79 .word 0x0000eb79 - 44c8: 00026943 .word 0x00026943 - 44cc: 00001a6d .word 0x00001a6d - 44d0: 00001e95 .word 0x00001e95 - -000044d4 : -{ - 44d4: b507 push {r0, r1, r2, lr} - ext_area.x1 = obj->coords.x1 - obj->ext_click_pad_hor; - 44d6: 8a02 ldrh r2, [r0, #16] - 44d8: f890 3030 ldrb.w r3, [r0, #48] ; 0x30 - 44dc: 1ad2 subs r2, r2, r3 - 44de: f8ad 2000 strh.w r2, [sp] - ext_area.x2 = obj->coords.x2 + obj->ext_click_pad_hor; - 44e2: 8a82 ldrh r2, [r0, #20] - 44e4: 4413 add r3, r2 - 44e6: f8ad 3004 strh.w r3, [sp, #4] - ext_area.y1 = obj->coords.y1 - obj->ext_click_pad_ver; - 44ea: 8a42 ldrh r2, [r0, #18] - 44ec: f890 3031 ldrb.w r3, [r0, #49] ; 0x31 - 44f0: 1ad2 subs r2, r2, r3 - 44f2: f8ad 2002 strh.w r2, [sp, #2] - ext_area.y2 = obj->coords.y2 + obj->ext_click_pad_ver; - 44f6: 8ac2 ldrh r2, [r0, #22] - 44f8: 4413 add r3, r2 - 44fa: f8ad 3006 strh.w r3, [sp, #6] - if(!_lv_area_is_point_on(&ext_area, point, 0)) { - 44fe: 2200 movs r2, #0 - 4500: 4b02 ldr r3, [pc, #8] ; (450c ) - 4502: 4668 mov r0, sp - 4504: 4798 blx r3 -} - 4506: b003 add sp, #12 - 4508: f85d fb04 ldr.w pc, [sp], #4 - 450c: 0000e1a9 .word 0x0000e1a9 - -00004510 : -{ - 4510: b510 push {r4, lr} - 4512: 2300 movs r3, #0 - if(buf->type[i] == NULL) break; - 4514: f850 4023 ldr.w r4, [r0, r3, lsl #2] - 4518: b2da uxtb r2, r3 - 451a: b11c cbz r4, 4524 - for(i = 0; i < LV_MAX_ANCESTOR_NUM - 1; i++) { /*Find the last set data*/ - 451c: 3301 adds r3, #1 - 451e: 2b07 cmp r3, #7 - 4520: d1f8 bne.n 4514 - 4522: 461a mov r2, r3 - buf->type[i] = name; - 4524: f840 1022 str.w r1, [r0, r2, lsl #2] -} - 4528: 2001 movs r0, #1 - 452a: bd10 pop {r4, pc} - -0000452c : -{ - 452c: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} - 4530: 4614 mov r4, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar) - 4532: 4fb6 ldr r7, [pc, #728] ; (480c ) -_LV_OBJ_STYLE_SET_GET_DECLARE(OPA_SCALE, opa_scale, lv_opa_t, _opa, scalar) - 4534: f8df 82e0 ldr.w r8, [pc, #736] ; 4818 -_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar) - 4538: 2201 movs r2, #1 - 453a: 4605 mov r5, r0 - 453c: 460e mov r6, r1 - 453e: 47b8 blx r7 -_LV_OBJ_STYLE_SET_GET_DECLARE(OPA_SCALE, opa_scale, lv_opa_t, _opa, scalar) - 4540: f248 020c movw r2, #32780 ; 0x800c - draw_dsc->radius = lv_obj_get_style_radius(obj, part); - 4544: 8020 strh r0, [r4, #0] - 4546: 4631 mov r1, r6 - 4548: 4628 mov r0, r5 - 454a: 47c0 blx r8 - if(opa_scale <= LV_OPA_MIN) { - 454c: 2805 cmp r0, #5 - 454e: 4681 mov r9, r0 - 4550: d80a bhi.n 4568 - draw_dsc->bg_opa = LV_OPA_TRANSP; - 4552: 2300 movs r3, #0 - 4554: 7323 strb r3, [r4, #12] - draw_dsc->border_opa = LV_OPA_TRANSP; - 4556: 7523 strb r3, [r4, #20] - draw_dsc->shadow_opa = LV_OPA_TRANSP; - 4558: f884 3028 strb.w r3, [r4, #40] ; 0x28 - draw_dsc->pattern_opa = LV_OPA_TRANSP; - 455c: f884 3036 strb.w r3, [r4, #54] ; 0x36 - draw_dsc->value_opa = (uint16_t)((uint16_t)draw_dsc->value_opa * opa_scale) >> 8; - 4560: f884 3044 strb.w r3, [r4, #68] ; 0x44 -} - 4564: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} - if(draw_dsc->bg_opa != LV_OPA_TRANSP) { - 4568: 7b23 ldrb r3, [r4, #12] - 456a: b343 cbz r3, 45be -_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar) - 456c: 222c movs r2, #44 ; 0x2c - 456e: 4631 mov r1, r6 - 4570: 4628 mov r0, r5 - 4572: 47c0 blx r8 - if(draw_dsc->bg_opa > LV_OPA_MIN) { - 4574: 2805 cmp r0, #5 - draw_dsc->bg_opa = lv_obj_get_style_bg_opa(obj, part); - 4576: 7320 strb r0, [r4, #12] - if(draw_dsc->bg_opa > LV_OPA_MIN) { - 4578: d921 bls.n 45be -_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar) - 457a: 2229 movs r2, #41 ; 0x29 - 457c: 4631 mov r1, r6 - 457e: f8df a290 ldr.w sl, [pc, #656] ; 4810 - 4582: 4628 mov r0, r5 - 4584: 47d0 blx sl -_LV_OBJ_STYLE_SET_GET_DECLARE(BG_GRAD_DIR, bg_grad_dir, lv_grad_dir_t, _int, scalar) - 4586: 2223 movs r2, #35 ; 0x23 - draw_dsc->bg_color = lv_obj_get_style_bg_color(obj, part); - 4588: 8060 strh r0, [r4, #2] - 458a: 4631 mov r1, r6 - 458c: 4628 mov r0, r5 - 458e: 47b8 blx r7 - 4590: b2c0 uxtb r0, r0 - draw_dsc->bg_grad_dir = lv_obj_get_style_bg_grad_dir(obj, part); - 4592: 71a0 strb r0, [r4, #6] - if(draw_dsc->bg_grad_dir != LV_GRAD_DIR_NONE) { - 4594: b170 cbz r0, 45b4 -_LV_OBJ_STYLE_SET_GET_DECLARE(BG_GRAD_COLOR, bg_grad_color, lv_color_t, _color, nonscalar) - 4596: 222a movs r2, #42 ; 0x2a - 4598: 4631 mov r1, r6 - 459a: 4628 mov r0, r5 - 459c: 47d0 blx sl -_LV_OBJ_STYLE_SET_GET_DECLARE(BG_MAIN_STOP, bg_main_stop, lv_style_int_t, _int, scalar) - 459e: 2221 movs r2, #33 ; 0x21 - draw_dsc->bg_grad_color = lv_obj_get_style_bg_grad_color(obj, part); - 45a0: 80a0 strh r0, [r4, #4] - 45a2: 4631 mov r1, r6 - 45a4: 4628 mov r0, r5 - 45a6: 47b8 blx r7 -_LV_OBJ_STYLE_SET_GET_DECLARE(BG_GRAD_STOP, bg_grad_stop, lv_style_int_t, _int, scalar) - 45a8: 2222 movs r2, #34 ; 0x22 - draw_dsc->bg_main_color_stop = lv_obj_get_style_bg_main_stop(obj, part); - 45aa: 8120 strh r0, [r4, #8] - 45ac: 4631 mov r1, r6 - 45ae: 4628 mov r0, r5 - 45b0: 47b8 blx r7 - draw_dsc->bg_grad_color_stop = lv_obj_get_style_bg_grad_stop(obj, part); - 45b2: 8160 strh r0, [r4, #10] -_LV_OBJ_STYLE_SET_GET_DECLARE(BG_BLEND_MODE, bg_blend_mode, lv_blend_mode_t, _int, scalar) - 45b4: 2220 movs r2, #32 - 45b6: 4631 mov r1, r6 - 45b8: 4628 mov r0, r5 - 45ba: 47b8 blx r7 - 45bc: 7360 strb r0, [r4, #13] - if(draw_dsc->border_opa != LV_OPA_TRANSP) { - 45be: 7d23 ldrb r3, [r4, #20] - 45c0: b1eb cbz r3, 45fe -_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar) - 45c2: 2230 movs r2, #48 ; 0x30 - 45c4: 4631 mov r1, r6 - 45c6: 4628 mov r0, r5 - 45c8: 47b8 blx r7 - draw_dsc->border_width = lv_obj_get_style_border_width(obj, part); - 45ca: 8220 strh r0, [r4, #16] - if(draw_dsc->border_width) { - 45cc: b1b8 cbz r0, 45fe -_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_OPA, border_opa, lv_opa_t, _opa, scalar) - 45ce: 223c movs r2, #60 ; 0x3c - 45d0: 4631 mov r1, r6 - 45d2: 4628 mov r0, r5 - 45d4: 47c0 blx r8 - if(draw_dsc->border_opa > LV_OPA_MIN) { - 45d6: 2805 cmp r0, #5 - draw_dsc->border_opa = lv_obj_get_style_border_opa(obj, part); - 45d8: 7520 strb r0, [r4, #20] - if(draw_dsc->border_opa > LV_OPA_MIN) { - 45da: d90b bls.n 45f4 -_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_SIDE, border_side, lv_border_side_t, _int, scalar) - 45dc: 2231 movs r2, #49 ; 0x31 - 45de: 4631 mov r1, r6 - 45e0: 4628 mov r0, r5 - 45e2: 47b8 blx r7 - draw_dsc->border_side = lv_obj_get_style_border_side(obj, part); - 45e4: b2c0 uxtb r0, r0 - 45e6: 8260 strh r0, [r4, #18] -_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar) - 45e8: 4b89 ldr r3, [pc, #548] ; (4810 ) - 45ea: 2239 movs r2, #57 ; 0x39 - 45ec: 4631 mov r1, r6 - 45ee: 4628 mov r0, r5 - 45f0: 4798 blx r3 - draw_dsc->border_color = lv_obj_get_style_border_color(obj, part); - 45f2: 81e0 strh r0, [r4, #14] -_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_BLEND_MODE, border_blend_mode, lv_blend_mode_t, _int, scalar) - 45f4: 2232 movs r2, #50 ; 0x32 - 45f6: 4631 mov r1, r6 - 45f8: 4628 mov r0, r5 - 45fa: 47b8 blx r7 - 45fc: 7560 strb r0, [r4, #21] - if(draw_dsc->outline_opa != LV_OPA_TRANSP) { - 45fe: 7f23 ldrb r3, [r4, #28] - 4600: b1e3 cbz r3, 463c -_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_WIDTH, outline_width, lv_style_int_t, _int, scalar) - 4602: 2240 movs r2, #64 ; 0x40 - 4604: 4631 mov r1, r6 - 4606: 4628 mov r0, r5 - 4608: 47b8 blx r7 - draw_dsc->outline_width = lv_obj_get_style_outline_width(obj, part); - 460a: 8320 strh r0, [r4, #24] - if(draw_dsc->outline_width) { - 460c: b1b0 cbz r0, 463c -_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_OPA, outline_opa, lv_opa_t, _opa, scalar) - 460e: 224c movs r2, #76 ; 0x4c - 4610: 4631 mov r1, r6 - 4612: 4628 mov r0, r5 - 4614: 47c0 blx r8 - if(draw_dsc->outline_opa > LV_OPA_MIN) { - 4616: 2805 cmp r0, #5 - draw_dsc->outline_opa = lv_obj_get_style_outline_opa(obj, part); - 4618: 7720 strb r0, [r4, #28] - if(draw_dsc->outline_opa > LV_OPA_MIN) { - 461a: d90a bls.n 4632 -_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_PAD, outline_pad, lv_style_int_t, _int, scalar) - 461c: 2241 movs r2, #65 ; 0x41 - 461e: 4631 mov r1, r6 - 4620: 4628 mov r0, r5 - 4622: 47b8 blx r7 -_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_COLOR, outline_color, lv_color_t, _color, nonscalar) - 4624: 4b7a ldr r3, [pc, #488] ; (4810 ) - draw_dsc->outline_pad = lv_obj_get_style_outline_pad(obj, part); - 4626: 8360 strh r0, [r4, #26] - 4628: 2249 movs r2, #73 ; 0x49 - 462a: 4631 mov r1, r6 - 462c: 4628 mov r0, r5 - 462e: 4798 blx r3 - draw_dsc->outline_color = lv_obj_get_style_outline_color(obj, part); - 4630: 82e0 strh r0, [r4, #22] -_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_BLEND_MODE, outline_blend_mode, lv_blend_mode_t, _int, scalar) - 4632: 2242 movs r2, #66 ; 0x42 - 4634: 4631 mov r1, r6 - 4636: 4628 mov r0, r5 - 4638: 47b8 blx r7 - 463a: 7760 strb r0, [r4, #29] - if(draw_dsc->pattern_opa != LV_OPA_TRANSP) { - 463c: f894 3036 ldrb.w r3, [r4, #54] ; 0x36 - 4640: 2b00 cmp r3, #0 - 4642: d03b beq.n 46bc -_LV_OBJ_STYLE_SET_GET_DECLARE(PATTERN_IMAGE, pattern_image, const void *, _ptr, scalar) - 4644: f8df a1d4 ldr.w sl, [pc, #468] ; 481c - 4648: 226e movs r2, #110 ; 0x6e - 464a: 4631 mov r1, r6 - 464c: 4628 mov r0, r5 - 464e: 47d0 blx sl - draw_dsc->pattern_image = lv_obj_get_style_pattern_image(obj, part); - 4650: 62e0 str r0, [r4, #44] ; 0x2c - if(draw_dsc->pattern_image) { - 4652: 2800 cmp r0, #0 - 4654: d032 beq.n 46bc -_LV_OBJ_STYLE_SET_GET_DECLARE(PATTERN_OPA, pattern_opa, lv_opa_t, _opa, scalar) - 4656: 226c movs r2, #108 ; 0x6c - 4658: 4631 mov r1, r6 - 465a: 4628 mov r0, r5 - 465c: 47c0 blx r8 - if(draw_dsc->pattern_opa > LV_OPA_MIN) { - 465e: 2805 cmp r0, #5 - draw_dsc->pattern_opa = lv_obj_get_style_pattern_opa(obj, part); - 4660: f884 0036 strb.w r0, [r4, #54] ; 0x36 - if(draw_dsc->pattern_opa > LV_OPA_MIN) { - 4664: d92a bls.n 46bc -_LV_OBJ_STYLE_SET_GET_DECLARE(PATTERN_RECOLOR_OPA, pattern_recolor_opa, lv_opa_t, _opa, scalar) - 4666: 226d movs r2, #109 ; 0x6d - 4668: 4631 mov r1, r6 - 466a: 4628 mov r0, r5 - 466c: 47c0 blx r8 -_LV_OBJ_STYLE_SET_GET_DECLARE(PATTERN_REPEAT, pattern_repeat, bool, _int, scalar) - 466e: 2261 movs r2, #97 ; 0x61 - draw_dsc->pattern_recolor_opa = lv_obj_get_style_pattern_recolor_opa(obj, part); - 4670: f884 0037 strb.w r0, [r4, #55] ; 0x37 - 4674: 4631 mov r1, r6 - 4676: 4628 mov r0, r5 - 4678: 47b8 blx r7 - draw_dsc->pattern_repeat = lv_obj_get_style_pattern_repeat(obj, part); - 467a: f894 3038 ldrb.w r3, [r4, #56] ; 0x38 - 467e: 3800 subs r0, #0 - 4680: bf18 it ne - 4682: 2001 movne r0, #1 - 4684: f360 0300 bfi r3, r0, #0, #1 - 4688: f884 3038 strb.w r3, [r4, #56] ; 0x38 - if(lv_img_src_get_type(draw_dsc->pattern_image) == LV_IMG_SRC_SYMBOL) { - 468c: 6ae0 ldr r0, [r4, #44] ; 0x2c - 468e: 4b61 ldr r3, [pc, #388] ; (4814 ) - 4690: 4798 blx r3 - 4692: 2802 cmp r0, #2 - 4694: f040 80ad bne.w 47f2 -_LV_OBJ_STYLE_SET_GET_DECLARE(PATTERN_RECOLOR, pattern_recolor, lv_color_t, _color, nonscalar) - 4698: 4b5d ldr r3, [pc, #372] ; (4810 ) - 469a: 2269 movs r2, #105 ; 0x69 - 469c: 4631 mov r1, r6 - 469e: 4628 mov r0, r5 - 46a0: 4798 blx r3 -_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar) - 46a2: f248 028e movw r2, #32910 ; 0x808e - draw_dsc->pattern_recolor = lv_obj_get_style_pattern_recolor(obj, part); - 46a6: 86a0 strh r0, [r4, #52] ; 0x34 - 46a8: 4631 mov r1, r6 - 46aa: 4628 mov r0, r5 - 46ac: 47d0 blx sl - draw_dsc->pattern_font = lv_obj_get_style_text_font(obj, part); - 46ae: 6320 str r0, [r4, #48] ; 0x30 -_LV_OBJ_STYLE_SET_GET_DECLARE(PATTERN_BLEND_MODE, pattern_blend_mode, lv_blend_mode_t, _int, scalar) - 46b0: 2260 movs r2, #96 ; 0x60 - 46b2: 4631 mov r1, r6 - 46b4: 4628 mov r0, r5 - 46b6: 47b8 blx r7 - 46b8: f884 0039 strb.w r0, [r4, #57] ; 0x39 - if(draw_dsc->shadow_opa > LV_OPA_MIN) { - 46bc: f894 3028 ldrb.w r3, [r4, #40] ; 0x28 - 46c0: 2b05 cmp r3, #5 - 46c2: d928 bls.n 4716 -_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_WIDTH, shadow_width, lv_style_int_t, _int, scalar) - 46c4: 2250 movs r2, #80 ; 0x50 - 46c6: 4631 mov r1, r6 - 46c8: 4628 mov r0, r5 - 46ca: 47b8 blx r7 - draw_dsc->shadow_width = lv_obj_get_style_shadow_width(obj, part); - 46cc: 8420 strh r0, [r4, #32] - if(draw_dsc->shadow_width) { - 46ce: b310 cbz r0, 4716 -_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_OPA, shadow_opa, lv_opa_t, _opa, scalar) - 46d0: 225c movs r2, #92 ; 0x5c - 46d2: 4631 mov r1, r6 - 46d4: 4628 mov r0, r5 - 46d6: 47c0 blx r8 - if(draw_dsc->shadow_opa > LV_OPA_MIN) { - 46d8: 2805 cmp r0, #5 - draw_dsc->shadow_opa = lv_obj_get_style_shadow_opa(obj, part); - 46da: f884 0028 strb.w r0, [r4, #40] ; 0x28 - if(draw_dsc->shadow_opa > LV_OPA_MIN) { - 46de: d91a bls.n 4716 -_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_OFS_X, shadow_ofs_x, lv_style_int_t, _int, scalar) - 46e0: 2251 movs r2, #81 ; 0x51 - 46e2: 4631 mov r1, r6 - 46e4: 4628 mov r0, r5 - 46e6: 47b8 blx r7 -_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_OFS_Y, shadow_ofs_y, lv_style_int_t, _int, scalar) - 46e8: 2252 movs r2, #82 ; 0x52 - draw_dsc->shadow_ofs_x = lv_obj_get_style_shadow_ofs_x(obj, part); - 46ea: 8460 strh r0, [r4, #34] ; 0x22 - 46ec: 4631 mov r1, r6 - 46ee: 4628 mov r0, r5 - 46f0: 47b8 blx r7 -_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_SPREAD, shadow_spread, lv_style_int_t, _int, scalar) - 46f2: 2253 movs r2, #83 ; 0x53 - draw_dsc->shadow_ofs_y = lv_obj_get_style_shadow_ofs_y(obj, part); - 46f4: 84a0 strh r0, [r4, #36] ; 0x24 - 46f6: 4631 mov r1, r6 - 46f8: 4628 mov r0, r5 - 46fa: 47b8 blx r7 -_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_COLOR, shadow_color, lv_color_t, _color, nonscalar) - 46fc: 4b44 ldr r3, [pc, #272] ; (4810 ) - draw_dsc->shadow_spread = lv_obj_get_style_shadow_spread(obj, part); - 46fe: 84e0 strh r0, [r4, #38] ; 0x26 - 4700: 2259 movs r2, #89 ; 0x59 - 4702: 4631 mov r1, r6 - 4704: 4628 mov r0, r5 - 4706: 4798 blx r3 -_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_BLEND_MODE, shadow_blend_mode, lv_blend_mode_t, _int, scalar) - 4708: 2254 movs r2, #84 ; 0x54 - draw_dsc->shadow_color = lv_obj_get_style_shadow_color(obj, part); - 470a: 83e0 strh r0, [r4, #30] - 470c: 4631 mov r1, r6 - 470e: 4628 mov r0, r5 - 4710: 47b8 blx r7 - 4712: f884 0029 strb.w r0, [r4, #41] ; 0x29 - if(draw_dsc->value_opa > LV_OPA_MIN) { - 4716: f894 3044 ldrb.w r3, [r4, #68] ; 0x44 - 471a: 2b05 cmp r3, #5 - 471c: d940 bls.n 47a0 -_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_STR, value_str, const char *, _ptr, scalar) - 471e: f8df a0fc ldr.w sl, [pc, #252] ; 481c - 4722: 227f movs r2, #127 ; 0x7f - 4724: 4631 mov r1, r6 - 4726: 4628 mov r0, r5 - 4728: 47d0 blx sl - draw_dsc->value_str = lv_obj_get_style_value_str(obj, part); - 472a: 63e0 str r0, [r4, #60] ; 0x3c - if(draw_dsc->value_str) { - 472c: 2800 cmp r0, #0 - 472e: d037 beq.n 47a0 -_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_OPA, value_opa, lv_opa_t, _opa, scalar) - 4730: 227c movs r2, #124 ; 0x7c - 4732: 4631 mov r1, r6 - 4734: 4628 mov r0, r5 - 4736: 47c0 blx r8 - if(draw_dsc->value_opa > LV_OPA_MIN) { - 4738: 2805 cmp r0, #5 - draw_dsc->value_opa = lv_obj_get_style_value_opa(obj, part); - 473a: f884 0044 strb.w r0, [r4, #68] ; 0x44 - if(draw_dsc->value_opa > LV_OPA_MIN) { - 473e: d92f bls.n 47a0 -_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_OFS_X, value_ofs_x, lv_style_int_t, _int, scalar) - 4740: 2273 movs r2, #115 ; 0x73 - 4742: 4631 mov r1, r6 - 4744: 4628 mov r0, r5 - 4746: 47b8 blx r7 -_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_OFS_Y, value_ofs_y, lv_style_int_t, _int, scalar) - 4748: 2274 movs r2, #116 ; 0x74 - draw_dsc->value_ofs_x = lv_obj_get_style_value_ofs_x(obj, part); - 474a: f8a4 0048 strh.w r0, [r4, #72] ; 0x48 - 474e: 4631 mov r1, r6 - 4750: 4628 mov r0, r5 - 4752: 47b8 blx r7 -_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_COLOR, value_color, lv_color_t, _color, nonscalar) - 4754: 4b2e ldr r3, [pc, #184] ; (4810 ) - draw_dsc->value_ofs_y = lv_obj_get_style_value_ofs_y(obj, part); - 4756: f8a4 004a strh.w r0, [r4, #74] ; 0x4a - 475a: 2279 movs r2, #121 ; 0x79 - 475c: 4631 mov r1, r6 - 475e: 4628 mov r0, r5 - 4760: 4798 blx r3 -_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_FONT, value_font, const lv_font_t *, _ptr, scalar) - 4762: 227e movs r2, #126 ; 0x7e - draw_dsc->value_color = lv_obj_get_style_value_color(obj, part); - 4764: f8a4 0046 strh.w r0, [r4, #70] ; 0x46 - 4768: 4631 mov r1, r6 - 476a: 4628 mov r0, r5 - 476c: 47d0 blx sl -_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_LETTER_SPACE, value_letter_space, lv_style_int_t, _int, scalar) - 476e: 2270 movs r2, #112 ; 0x70 - draw_dsc->value_font = lv_obj_get_style_value_font(obj, part); - 4770: 6420 str r0, [r4, #64] ; 0x40 - 4772: 4631 mov r1, r6 - 4774: 4628 mov r0, r5 - 4776: 47b8 blx r7 -_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_LINE_SPACE, value_line_space, lv_style_int_t, _int, scalar) - 4778: 2271 movs r2, #113 ; 0x71 - draw_dsc->value_letter_space = lv_obj_get_style_value_letter_space(obj, part); - 477a: f8a4 004c strh.w r0, [r4, #76] ; 0x4c - 477e: 4631 mov r1, r6 - 4780: 4628 mov r0, r5 - 4782: 47b8 blx r7 -_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_ALIGN, value_align, lv_align_t, _int, scalar) - 4784: 2275 movs r2, #117 ; 0x75 - draw_dsc->value_line_space = lv_obj_get_style_value_line_space(obj, part); - 4786: f8a4 004e strh.w r0, [r4, #78] ; 0x4e - 478a: 4631 mov r1, r6 - 478c: 4628 mov r0, r5 - 478e: 47b8 blx r7 -_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_BLEND_MODE, value_blend_mode, lv_blend_mode_t, _int, scalar) - 4790: 2272 movs r2, #114 ; 0x72 -_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_ALIGN, value_align, lv_align_t, _int, scalar) - 4792: f884 0050 strb.w r0, [r4, #80] ; 0x50 -_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_BLEND_MODE, value_blend_mode, lv_blend_mode_t, _int, scalar) - 4796: 4631 mov r1, r6 - 4798: 4628 mov r0, r5 - 479a: 47b8 blx r7 - 479c: f884 0051 strb.w r0, [r4, #81] ; 0x51 - if(opa_scale < LV_OPA_MAX) { - 47a0: f1b9 0ff9 cmp.w r9, #249 ; 0xf9 - 47a4: f63f aede bhi.w 4564 - draw_dsc->bg_opa = (uint16_t)((uint16_t)draw_dsc->bg_opa * opa_scale) >> 8; - 47a8: 7b23 ldrb r3, [r4, #12] - 47aa: fa1f f089 uxth.w r0, r9 - 47ae: fb13 f300 smulbb r3, r3, r0 - 47b2: f3c3 2307 ubfx r3, r3, #8, #8 - 47b6: 7323 strb r3, [r4, #12] - draw_dsc->border_opa = (uint16_t)((uint16_t)draw_dsc->border_opa * opa_scale) >> 8; - 47b8: 7d23 ldrb r3, [r4, #20] - 47ba: fb13 f300 smulbb r3, r3, r0 - 47be: f3c3 2307 ubfx r3, r3, #8, #8 - 47c2: 7523 strb r3, [r4, #20] - draw_dsc->shadow_opa = (uint16_t)((uint16_t)draw_dsc->shadow_opa * opa_scale) >> 8; - 47c4: f894 3028 ldrb.w r3, [r4, #40] ; 0x28 - 47c8: fb13 f300 smulbb r3, r3, r0 - 47cc: f3c3 2307 ubfx r3, r3, #8, #8 - 47d0: f884 3028 strb.w r3, [r4, #40] ; 0x28 - draw_dsc->pattern_opa = (uint16_t)((uint16_t)draw_dsc->pattern_opa * opa_scale) >> 8; - 47d4: f894 3036 ldrb.w r3, [r4, #54] ; 0x36 - 47d8: fb13 f300 smulbb r3, r3, r0 - 47dc: f3c3 2307 ubfx r3, r3, #8, #8 - 47e0: f884 3036 strb.w r3, [r4, #54] ; 0x36 - draw_dsc->value_opa = (uint16_t)((uint16_t)draw_dsc->value_opa * opa_scale) >> 8; - 47e4: f894 3044 ldrb.w r3, [r4, #68] ; 0x44 - 47e8: fb13 f300 smulbb r3, r3, r0 - 47ec: f3c3 2307 ubfx r3, r3, #8, #8 - 47f0: e6b6 b.n 4560 - else if(draw_dsc->pattern_recolor_opa > LV_OPA_MIN) { - 47f2: f894 3037 ldrb.w r3, [r4, #55] ; 0x37 - 47f6: 2b05 cmp r3, #5 - 47f8: f67f af5a bls.w 46b0 -_LV_OBJ_STYLE_SET_GET_DECLARE(PATTERN_RECOLOR, pattern_recolor, lv_color_t, _color, nonscalar) - 47fc: 4b04 ldr r3, [pc, #16] ; (4810 ) - 47fe: 2269 movs r2, #105 ; 0x69 - 4800: 4631 mov r1, r6 - 4802: 4628 mov r0, r5 - 4804: 4798 blx r3 - draw_dsc->pattern_recolor = lv_obj_get_style_pattern_recolor(obj, part); - 4806: 86a0 strh r0, [r4, #52] ; 0x34 - 4808: e752 b.n 46b0 - 480a: bf00 nop - 480c: 00003995 .word 0x00003995 - 4810: 00003a39 .word 0x00003a39 - 4814: 00007a89 .word 0x00007a89 - 4818: 00003abd .word 0x00003abd - 481c: 00003b4d .word 0x00003b4d - -00004820 : -{ - 4820: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - if(mode == LV_DESIGN_COVER_CHK) { - 4824: 2a02 cmp r2, #2 -{ - 4826: b099 sub sp, #100 ; 0x64 - 4828: 4604 mov r4, r0 - 482a: 460f mov r7, r1 - 482c: 4615 mov r5, r2 - if(mode == LV_DESIGN_COVER_CHK) { - 482e: d159 bne.n 48e4 -_LV_OBJ_STYLE_SET_GET_DECLARE(CLIP_CORNER, clip_corner, bool, _int, scalar) - 4830: f8df 9230 ldr.w r9, [pc, #560] ; 4a64 - 4834: 2100 movs r1, #0 - 4836: 47c8 blx r9 - if(lv_obj_get_style_clip_corner(obj, LV_OBJ_PART_MAIN)) return LV_DESIGN_RES_MASKED; - 4838: 4606 mov r6, r0 - 483a: 2800 cmp r0, #0 - 483c: d150 bne.n 48e0 -_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar) - 483e: 4601 mov r1, r0 - 4840: 2201 movs r2, #1 - 4842: 4620 mov r0, r4 - 4844: 47c8 blx r9 -_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_WIDTH, transform_width, lv_style_int_t, _int, scalar) - 4846: 2204 movs r2, #4 -_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar) - 4848: 4682 mov sl, r0 -_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_WIDTH, transform_width, lv_style_int_t, _int, scalar) - 484a: 4631 mov r1, r6 - 484c: 4620 mov r0, r4 - 484e: 47c8 blx r9 -_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_HEIGHT, transform_height, lv_style_int_t, _int, scalar) - 4850: 2205 movs r2, #5 -_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_WIDTH, transform_width, lv_style_int_t, _int, scalar) - 4852: 4683 mov fp, r0 -_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_HEIGHT, transform_height, lv_style_int_t, _int, scalar) - 4854: 4631 mov r1, r6 - 4856: 4620 mov r0, r4 - 4858: 47c8 blx r9 - lv_area_copy(&coords, &obj->coords); - 485a: 4b77 ldr r3, [pc, #476] ; (4a38 ) - 485c: 4680 mov r8, r0 - 485e: f104 0110 add.w r1, r4, #16 - 4862: a803 add r0, sp, #12 - 4864: 4798 blx r3 - coords.x1 -= w; - 4866: f8bd 300c ldrh.w r3, [sp, #12] - coords.y1 -= h; - 486a: f8bd 200e ldrh.w r2, [sp, #14] - coords.x1 -= w; - 486e: fa1f f08b uxth.w r0, fp - 4872: 1a1b subs r3, r3, r0 - 4874: f8ad 300c strh.w r3, [sp, #12] - coords.x2 += w; - 4878: f8bd 3010 ldrh.w r3, [sp, #16] - 487c: 4418 add r0, r3 - coords.y1 -= h; - 487e: fa1f f388 uxth.w r3, r8 - 4882: 1ad2 subs r2, r2, r3 - 4884: f8ad 200e strh.w r2, [sp, #14] - coords.y2 += h; - 4888: f8bd 2012 ldrh.w r2, [sp, #18] - coords.x2 += w; - 488c: f8ad 0010 strh.w r0, [sp, #16] - coords.y2 += h; - 4890: 4413 add r3, r2 - 4892: f8ad 3012 strh.w r3, [sp, #18] - if(_lv_area_is_in(clip_area, &coords, r) == false) return LV_DESIGN_RES_NOT_COVER; - 4896: 4652 mov r2, sl - 4898: 4b68 ldr r3, [pc, #416] ; (4a3c ) - 489a: a903 add r1, sp, #12 - 489c: 4638 mov r0, r7 - 489e: 4798 blx r3 - 48a0: b1d0 cbz r0, 48d8 -_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar) - 48a2: 4f67 ldr r7, [pc, #412] ; (4a40 ) - 48a4: 222c movs r2, #44 ; 0x2c - 48a6: 4631 mov r1, r6 - 48a8: 4620 mov r0, r4 - 48aa: 47b8 blx r7 - if(lv_obj_get_style_bg_opa(obj, LV_OBJ_PART_MAIN) < LV_OPA_MAX) return LV_DESIGN_RES_NOT_COVER; - 48ac: 28f9 cmp r0, #249 ; 0xf9 - 48ae: d913 bls.n 48d8 -_LV_OBJ_STYLE_SET_GET_DECLARE(BG_BLEND_MODE, bg_blend_mode, lv_blend_mode_t, _int, scalar) - 48b0: 4631 mov r1, r6 - 48b2: 2220 movs r2, #32 - 48b4: 4620 mov r0, r4 - 48b6: 47c8 blx r9 - if(lv_obj_get_style_bg_blend_mode(obj, LV_OBJ_PART_MAIN) != LV_BLEND_MODE_NORMAL) return LV_DESIGN_RES_NOT_COVER; - 48b8: f010 01ff ands.w r1, r0, #255 ; 0xff - 48bc: d10c bne.n 48d8 -_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_BLEND_MODE, border_blend_mode, lv_blend_mode_t, _int, scalar) - 48be: 2232 movs r2, #50 ; 0x32 - 48c0: 4620 mov r0, r4 - 48c2: 47c8 blx r9 - if(lv_obj_get_style_border_blend_mode(obj, LV_OBJ_PART_MAIN) != LV_BLEND_MODE_NORMAL) return LV_DESIGN_RES_NOT_COVER; - 48c4: f010 01ff ands.w r1, r0, #255 ; 0xff - 48c8: d106 bne.n 48d8 -_LV_OBJ_STYLE_SET_GET_DECLARE(OPA_SCALE, opa_scale, lv_opa_t, _opa, scalar) - 48ca: f248 020c movw r2, #32780 ; 0x800c - 48ce: 4620 mov r0, r4 - 48d0: 47b8 blx r7 - return LV_DESIGN_RES_COVER; - 48d2: 28f9 cmp r0, #249 ; 0xf9 - 48d4: bf88 it hi - 48d6: 2501 movhi r5, #1 -} - 48d8: 4628 mov r0, r5 - 48da: b019 add sp, #100 ; 0x64 - 48dc: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - if(lv_obj_get_style_clip_corner(obj, LV_OBJ_PART_MAIN)) return LV_DESIGN_RES_MASKED; - 48e0: 2503 movs r5, #3 - 48e2: e7f9 b.n 48d8 - else if(mode == LV_DESIGN_DRAW_MAIN) { - 48e4: 2a00 cmp r2, #0 - 48e6: d156 bne.n 4996 - lv_draw_rect_dsc_init(&draw_dsc); - 48e8: a803 add r0, sp, #12 - 48ea: 4b56 ldr r3, [pc, #344] ; (4a44 ) -_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_POST, border_post, bool, _int, scalar) - 48ec: f8df 8174 ldr.w r8, [pc, #372] ; 4a64 - 48f0: 4798 blx r3 - 48f2: 2233 movs r2, #51 ; 0x33 - 48f4: 4629 mov r1, r5 - 48f6: 4620 mov r0, r4 - 48f8: 47c0 blx r8 - if(lv_obj_get_style_border_post(obj, LV_OBJ_PART_MAIN)) { - 48fa: b108 cbz r0, 4900 - draw_dsc.border_opa = LV_OPA_TRANSP; - 48fc: f88d 5020 strb.w r5, [sp, #32] - lv_obj_init_draw_rect_dsc(obj, LV_OBJ_PART_MAIN, &draw_dsc); - 4900: 4b51 ldr r3, [pc, #324] ; (4a48 ) - 4902: aa03 add r2, sp, #12 - 4904: 2100 movs r1, #0 - 4906: 4620 mov r0, r4 - 4908: 4798 blx r3 -_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_WIDTH, transform_width, lv_style_int_t, _int, scalar) - 490a: 2204 movs r2, #4 - 490c: 2100 movs r1, #0 - 490e: 4620 mov r0, r4 - 4910: 47c0 blx r8 -_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_HEIGHT, transform_height, lv_style_int_t, _int, scalar) - 4912: 2205 movs r2, #5 -_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_WIDTH, transform_width, lv_style_int_t, _int, scalar) - 4914: 4606 mov r6, r0 -_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_HEIGHT, transform_height, lv_style_int_t, _int, scalar) - 4916: 2100 movs r1, #0 - 4918: 4620 mov r0, r4 - 491a: 47c0 blx r8 - lv_area_copy(&coords, &obj->coords); - 491c: f104 0910 add.w r9, r4, #16 - 4920: 4b45 ldr r3, [pc, #276] ; (4a38 ) - 4922: 4682 mov sl, r0 - 4924: 4649 mov r1, r9 - 4926: a801 add r0, sp, #4 - 4928: 4798 blx r3 - coords.x1 -= w; - 492a: f8bd 2004 ldrh.w r2, [sp, #4] - 492e: b2b3 uxth r3, r6 - 4930: 1ad2 subs r2, r2, r3 - 4932: f8ad 2004 strh.w r2, [sp, #4] - coords.x2 += w; - 4936: f8bd 2008 ldrh.w r2, [sp, #8] - 493a: 4413 add r3, r2 - 493c: f8ad 3008 strh.w r3, [sp, #8] - coords.y1 -= h; - 4940: f8bd 3006 ldrh.w r3, [sp, #6] - 4944: fa1f f08a uxth.w r0, sl - 4948: 1a1b subs r3, r3, r0 - 494a: f8ad 3006 strh.w r3, [sp, #6] - coords.y2 += h; - 494e: f8bd 300a ldrh.w r3, [sp, #10] - 4952: 4418 add r0, r3 - 4954: f8ad 000a strh.w r0, [sp, #10] - lv_draw_rect(&coords, clip_area, &draw_dsc); - 4958: aa03 add r2, sp, #12 - 495a: 4639 mov r1, r7 - 495c: a801 add r0, sp, #4 - 495e: 4b3b ldr r3, [pc, #236] ; (4a4c ) - 4960: 4798 blx r3 -_LV_OBJ_STYLE_SET_GET_DECLARE(CLIP_CORNER, clip_corner, bool, _int, scalar) - 4962: 2202 movs r2, #2 - 4964: 2100 movs r1, #0 - 4966: 4620 mov r0, r4 - 4968: 47c0 blx r8 - if(lv_obj_get_style_clip_corner(obj, LV_OBJ_PART_MAIN)) { - 496a: 2800 cmp r0, #0 - 496c: d0b4 beq.n 48d8 - lv_draw_mask_radius_param_t * mp = _lv_mem_buf_get(sizeof(lv_draw_mask_radius_param_t)); - 496e: 4b38 ldr r3, [pc, #224] ; (4a50 ) - lv_draw_mask_radius_init(mp, &obj->coords, r, false); - 4970: 4f38 ldr r7, [pc, #224] ; (4a54 ) - lv_draw_mask_radius_param_t * mp = _lv_mem_buf_get(sizeof(lv_draw_mask_radius_param_t)); - 4972: 201c movs r0, #28 - 4974: 4798 blx r3 -_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar) - 4976: 2201 movs r2, #1 - 4978: 4606 mov r6, r0 - 497a: 2100 movs r1, #0 - 497c: 4620 mov r0, r4 - 497e: 47c0 blx r8 - lv_draw_mask_radius_init(mp, &obj->coords, r, false); - 4980: 4649 mov r1, r9 - 4982: 4602 mov r2, r0 - 4984: 2300 movs r3, #0 - 4986: 4630 mov r0, r6 - 4988: 47b8 blx r7 - lv_draw_mask_add(mp, obj + 8); - 498a: 4b33 ldr r3, [pc, #204] ; (4a58 ) - 498c: f504 7118 add.w r1, r4, #608 ; 0x260 - 4990: 4630 mov r0, r6 - 4992: 4798 blx r3 - 4994: e7a0 b.n 48d8 - else if(mode == LV_DESIGN_DRAW_POST) { - 4996: 2a01 cmp r2, #1 - 4998: d001 beq.n 499e - return LV_DESIGN_RES_OK; - 499a: 2500 movs r5, #0 - 499c: e79c b.n 48d8 -_LV_OBJ_STYLE_SET_GET_DECLARE(CLIP_CORNER, clip_corner, bool, _int, scalar) - 499e: f8df 80c4 ldr.w r8, [pc, #196] ; 4a64 - 49a2: 2202 movs r2, #2 - 49a4: 2100 movs r1, #0 - 49a6: 47c0 blx r8 - if(lv_obj_get_style_clip_corner(obj, LV_OBJ_PART_MAIN)) { - 49a8: b128 cbz r0, 49b6 - lv_draw_mask_radius_param_t * param = lv_draw_mask_remove_custom(obj + 8); - 49aa: 4b2c ldr r3, [pc, #176] ; (4a5c ) - 49ac: f504 7018 add.w r0, r4, #608 ; 0x260 - 49b0: 4798 blx r3 - _lv_mem_buf_release(param); - 49b2: 4b2b ldr r3, [pc, #172] ; (4a60 ) - 49b4: 4798 blx r3 -_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_POST, border_post, bool, _int, scalar) - 49b6: 2233 movs r2, #51 ; 0x33 - 49b8: 2100 movs r1, #0 - 49ba: 4620 mov r0, r4 - 49bc: 47c0 blx r8 - if(lv_obj_get_style_border_post(obj, LV_OBJ_PART_MAIN)) { - 49be: 2800 cmp r0, #0 - 49c0: d0eb beq.n 499a - draw_dsc.bg_opa = LV_OPA_TRANSP; - 49c2: 2500 movs r5, #0 - lv_draw_rect_dsc_init(&draw_dsc); - 49c4: a803 add r0, sp, #12 - 49c6: 4b1f ldr r3, [pc, #124] ; (4a44 ) - 49c8: 4798 blx r3 - lv_obj_init_draw_rect_dsc(obj, LV_OBJ_PART_MAIN, &draw_dsc); - 49ca: 4b1f ldr r3, [pc, #124] ; (4a48 ) - draw_dsc.bg_opa = LV_OPA_TRANSP; - 49cc: f88d 5018 strb.w r5, [sp, #24] - lv_obj_init_draw_rect_dsc(obj, LV_OBJ_PART_MAIN, &draw_dsc); - 49d0: aa03 add r2, sp, #12 - 49d2: 4629 mov r1, r5 - 49d4: 4620 mov r0, r4 - draw_dsc.pattern_opa = LV_OPA_TRANSP; - 49d6: f88d 5042 strb.w r5, [sp, #66] ; 0x42 - draw_dsc.shadow_opa = LV_OPA_TRANSP; - 49da: f88d 5034 strb.w r5, [sp, #52] ; 0x34 - lv_obj_init_draw_rect_dsc(obj, LV_OBJ_PART_MAIN, &draw_dsc); - 49de: 4798 blx r3 -_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_WIDTH, transform_width, lv_style_int_t, _int, scalar) - 49e0: 4629 mov r1, r5 - 49e2: 2204 movs r2, #4 - 49e4: 4620 mov r0, r4 - 49e6: 47c0 blx r8 -_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_HEIGHT, transform_height, lv_style_int_t, _int, scalar) - 49e8: 2205 movs r2, #5 -_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_WIDTH, transform_width, lv_style_int_t, _int, scalar) - 49ea: 4606 mov r6, r0 -_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_HEIGHT, transform_height, lv_style_int_t, _int, scalar) - 49ec: 4629 mov r1, r5 - 49ee: 4620 mov r0, r4 - 49f0: 47c0 blx r8 - lv_area_copy(&coords, &obj->coords); - 49f2: f104 0110 add.w r1, r4, #16 - 49f6: 4680 mov r8, r0 - 49f8: 4b0f ldr r3, [pc, #60] ; (4a38 ) - 49fa: a801 add r0, sp, #4 - 49fc: 4798 blx r3 - coords.x1 -= w; - 49fe: f8bd 2004 ldrh.w r2, [sp, #4] - 4a02: b2b3 uxth r3, r6 - 4a04: 1ad2 subs r2, r2, r3 - 4a06: f8ad 2004 strh.w r2, [sp, #4] - coords.x2 += w; - 4a0a: f8bd 2008 ldrh.w r2, [sp, #8] - 4a0e: 4413 add r3, r2 - 4a10: f8ad 3008 strh.w r3, [sp, #8] - coords.y1 -= h; - 4a14: f8bd 3006 ldrh.w r3, [sp, #6] - 4a18: fa1f f088 uxth.w r0, r8 - 4a1c: 1a1b subs r3, r3, r0 - 4a1e: f8ad 3006 strh.w r3, [sp, #6] - coords.y2 += h; - 4a22: f8bd 300a ldrh.w r3, [sp, #10] - 4a26: 4418 add r0, r3 - 4a28: f8ad 000a strh.w r0, [sp, #10] - lv_draw_rect(&coords, clip_area, &draw_dsc); - 4a2c: 4b07 ldr r3, [pc, #28] ; (4a4c ) - 4a2e: aa03 add r2, sp, #12 - 4a30: 4639 mov r1, r7 - 4a32: a801 add r0, sp, #4 - 4a34: 4798 blx r3 - 4a36: e74f b.n 48d8 - 4a38: 00001f9d .word 0x00001f9d - 4a3c: 0000e315 .word 0x0000e315 - 4a40: 00003abd .word 0x00003abd - 4a44: 00009e25 .word 0x00009e25 - 4a48: 0000452d .word 0x0000452d - 4a4c: 00009e71 .word 0x00009e71 - 4a50: 0000f145 .word 0x0000f145 - 4a54: 00009b99 .word 0x00009b99 - 4a58: 00009995 .word 0x00009995 - 4a5c: 00009a4d .word 0x00009a4d - 4a60: 0000edf9 .word 0x0000edf9 - 4a64: 00003995 .word 0x00003995 - -00004a68 : -{ - 4a68: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} - 4a6c: 4614 mov r4, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_OPA, text_opa, lv_opa_t, _opa, scalar) - 4a6e: 4f28 ldr r7, [pc, #160] ; (4b10 ) - 4a70: f248 028c movw r2, #32908 ; 0x808c - 4a74: 4605 mov r5, r0 - 4a76: 460e mov r6, r1 - 4a78: 47b8 blx r7 - if(draw_dsc->opa <= LV_OPA_MIN) return; - 4a7a: 2805 cmp r0, #5 - draw_dsc->opa = lv_obj_get_style_text_opa(obj, part); - 4a7c: 7220 strb r0, [r4, #8] - if(draw_dsc->opa <= LV_OPA_MIN) return; - 4a7e: d945 bls.n 4b0c -_LV_OBJ_STYLE_SET_GET_DECLARE(OPA_SCALE, opa_scale, lv_opa_t, _opa, scalar) - 4a80: f248 020c movw r2, #32780 ; 0x800c - 4a84: 4631 mov r1, r6 - 4a86: 4628 mov r0, r5 - 4a88: 47b8 blx r7 - if(opa_scale < LV_OPA_MAX) { - 4a8a: 28f9 cmp r0, #249 ; 0xf9 - draw_dsc->opa = (uint16_t)((uint16_t)draw_dsc->opa * opa_scale) >> 8; - 4a8c: bf9f itttt ls - 4a8e: 7a23 ldrbls r3, [r4, #8] - 4a90: fb13 f000 smulbbls r0, r3, r0 - 4a94: f3c0 2007 ubfxls r0, r0, #8, #8 - 4a98: 7220 strbls r0, [r4, #8] - if(draw_dsc->opa <= LV_OPA_MIN) return; - 4a9a: 7a23 ldrb r3, [r4, #8] - 4a9c: 2b05 cmp r3, #5 - 4a9e: d935 bls.n 4b0c -_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar) - 4aa0: f248 0289 movw r2, #32905 ; 0x8089 - 4aa4: 4631 mov r1, r6 - 4aa6: f8df 8074 ldr.w r8, [pc, #116] ; 4b1c -_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LETTER_SPACE, text_letter_space, lv_style_int_t, _int, scalar) - 4aaa: 4f1a ldr r7, [pc, #104] ; (4b14 ) -_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar) - 4aac: 4628 mov r0, r5 - 4aae: 47c0 blx r8 -_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LETTER_SPACE, text_letter_space, lv_style_int_t, _int, scalar) - 4ab0: f248 0280 movw r2, #32896 ; 0x8080 - draw_dsc->color = lv_obj_get_style_text_color(obj, part); - 4ab4: 8020 strh r0, [r4, #0] - 4ab6: 4631 mov r1, r6 - 4ab8: 4628 mov r0, r5 - 4aba: 47b8 blx r7 -_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LINE_SPACE, text_line_space, lv_style_int_t, _int, scalar) - 4abc: f248 0281 movw r2, #32897 ; 0x8081 - draw_dsc->letter_space = lv_obj_get_style_text_letter_space(obj, part); - 4ac0: 81a0 strh r0, [r4, #12] - 4ac2: 4631 mov r1, r6 - 4ac4: 4628 mov r0, r5 - 4ac6: 47b8 blx r7 -_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_DECOR, text_decor, lv_text_decor_t, _int, scalar) - 4ac8: f248 0282 movw r2, #32898 ; 0x8082 - draw_dsc->line_space = lv_obj_get_style_text_line_space(obj, part); - 4acc: 8160 strh r0, [r4, #10] - 4ace: 4631 mov r1, r6 - 4ad0: 4628 mov r0, r5 - 4ad2: 47b8 blx r7 -_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_BLEND_MODE, text_blend_mode, lv_blend_mode_t, _int, scalar) - 4ad4: f248 0283 movw r2, #32899 ; 0x8083 -_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_DECOR, text_decor, lv_text_decor_t, _int, scalar) - 4ad8: 7620 strb r0, [r4, #24] -_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_BLEND_MODE, text_blend_mode, lv_blend_mode_t, _int, scalar) - 4ada: 4631 mov r1, r6 - 4adc: 4628 mov r0, r5 - 4ade: 47b8 blx r7 -_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar) - 4ae0: 4b0d ldr r3, [pc, #52] ; (4b18 ) -_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_BLEND_MODE, text_blend_mode, lv_blend_mode_t, _int, scalar) - 4ae2: 7660 strb r0, [r4, #25] -_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar) - 4ae4: f248 028e movw r2, #32910 ; 0x808e - 4ae8: 4631 mov r1, r6 - 4aea: 4628 mov r0, r5 - 4aec: 4798 blx r3 - if(draw_dsc->sel_start != LV_DRAW_LABEL_NO_TXT_SEL && draw_dsc->sel_end != LV_DRAW_LABEL_NO_TXT_SEL) { - 4aee: 89e2 ldrh r2, [r4, #14] - draw_dsc->font = lv_obj_get_style_text_font(obj, part); - 4af0: 6060 str r0, [r4, #4] - if(draw_dsc->sel_start != LV_DRAW_LABEL_NO_TXT_SEL && draw_dsc->sel_end != LV_DRAW_LABEL_NO_TXT_SEL) { - 4af2: f64f 73ff movw r3, #65535 ; 0xffff - 4af6: 429a cmp r2, r3 - 4af8: d008 beq.n 4b0c - 4afa: 8a22 ldrh r2, [r4, #16] - 4afc: 429a cmp r2, r3 - 4afe: d005 beq.n 4b0c -_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_SEL_COLOR, text_sel_color, lv_color_t, _color, nonscalar) - 4b00: f248 028a movw r2, #32906 ; 0x808a - 4b04: 4631 mov r1, r6 - 4b06: 4628 mov r0, r5 - 4b08: 47c0 blx r8 - draw_dsc->color = lv_obj_get_style_text_sel_color(obj, part); - 4b0a: 8020 strh r0, [r4, #0] -} - 4b0c: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} - 4b10: 00003abd .word 0x00003abd - 4b14: 00003995 .word 0x00003995 - 4b18: 00003b4d .word 0x00003b4d - 4b1c: 00003a39 .word 0x00003a39 - -00004b20 : -{ - 4b20: b5f8 push {r3, r4, r5, r6, r7, lr} - 4b22: 4614 mov r4, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_OPA, image_opa, lv_opa_t, _opa, scalar) - 4b24: 4f23 ldr r7, [pc, #140] ; (4bb4 ) - 4b26: f248 02ac movw r2, #32940 ; 0x80ac - 4b2a: 4605 mov r5, r0 - 4b2c: 460e mov r6, r1 - 4b2e: 47b8 blx r7 - if(draw_dsc->opa <= LV_OPA_MIN) return; - 4b30: 2805 cmp r0, #5 - draw_dsc->opa = lv_obj_get_style_image_opa(obj, part); - 4b32: 7020 strb r0, [r4, #0] - if(draw_dsc->opa <= LV_OPA_MIN) return; - 4b34: d93c bls.n 4bb0 -_LV_OBJ_STYLE_SET_GET_DECLARE(OPA_SCALE, opa_scale, lv_opa_t, _opa, scalar) - 4b36: f248 020c movw r2, #32780 ; 0x800c - 4b3a: 4631 mov r1, r6 - 4b3c: 4628 mov r0, r5 - 4b3e: 47b8 blx r7 - if(opa_scale < LV_OPA_MAX) { - 4b40: 28f9 cmp r0, #249 ; 0xf9 - draw_dsc->opa = (uint16_t)((uint16_t)draw_dsc->opa * opa_scale) >> 8; - 4b42: bf9f itttt ls - 4b44: 7823 ldrbls r3, [r4, #0] - 4b46: fb13 f000 smulbbls r0, r3, r0 - 4b4a: f3c0 2007 ubfxls r0, r0, #8, #8 - 4b4e: 7020 strbls r0, [r4, #0] - if(draw_dsc->opa <= LV_OPA_MIN) return; - 4b50: 7823 ldrb r3, [r4, #0] - 4b52: 2b05 cmp r3, #5 - 4b54: d92c bls.n 4bb0 - draw_dsc->angle = 0; - 4b56: 2300 movs r3, #0 - 4b58: 8063 strh r3, [r4, #2] - draw_dsc->zoom = LV_IMG_ZOOM_NONE; - 4b5a: f44f 7380 mov.w r3, #256 ; 0x100 - 4b5e: 8123 strh r3, [r4, #8] - return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - 4b60: 8aab ldrh r3, [r5, #20] - 4b62: 8a2a ldrh r2, [r5, #16] - 4b64: 3301 adds r3, #1 - 4b66: 1a9b subs r3, r3, r2 - draw_dsc->pivot.x = lv_area_get_width(&obj->coords) / 2; - 4b68: f3c3 32c0 ubfx r2, r3, #15, #1 - 4b6c: fa02 f383 sxtah r3, r2, r3 - 4b70: 105b asrs r3, r3, #1 - 4b72: 80a3 strh r3, [r4, #4] - return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - 4b74: 8aeb ldrh r3, [r5, #22] - 4b76: 8a6a ldrh r2, [r5, #18] - 4b78: 3301 adds r3, #1 - 4b7a: 1a9b subs r3, r3, r2 - draw_dsc->pivot.y = lv_area_get_height(&obj->coords) / 2; - 4b7c: f3c3 32c0 ubfx r2, r3, #15, #1 - 4b80: fa02 f383 sxtah r3, r2, r3 - 4b84: 105b asrs r3, r3, #1 - 4b86: 80e3 strh r3, [r4, #6] -_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_RECOLOR_OPA, image_recolor_opa, lv_opa_t, _opa, scalar) - 4b88: f248 02ad movw r2, #32941 ; 0x80ad - 4b8c: 4631 mov r1, r6 - 4b8e: 4628 mov r0, r5 - 4b90: 47b8 blx r7 -_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_RECOLOR, image_recolor, lv_color_t, _color, nonscalar) - 4b92: 4b09 ldr r3, [pc, #36] ; (4bb8 ) - draw_dsc->recolor_opa = lv_obj_get_style_image_recolor_opa(obj, part); - 4b94: 72a0 strb r0, [r4, #10] - 4b96: f248 02a9 movw r2, #32937 ; 0x80a9 - 4b9a: 4631 mov r1, r6 - 4b9c: 4628 mov r0, r5 - 4b9e: 4798 blx r3 -_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_BLEND_MODE, image_blend_mode, lv_blend_mode_t, _int, scalar) - 4ba0: 4b06 ldr r3, [pc, #24] ; (4bbc ) - draw_dsc->recolor = lv_obj_get_style_image_recolor(obj, part); - 4ba2: 81a0 strh r0, [r4, #12] - 4ba4: f248 02a0 movw r2, #32928 ; 0x80a0 - 4ba8: 4631 mov r1, r6 - 4baa: 4628 mov r0, r5 - 4bac: 4798 blx r3 - 4bae: 73a0 strb r0, [r4, #14] -} - 4bb0: bdf8 pop {r3, r4, r5, r6, r7, pc} - 4bb2: bf00 nop - 4bb4: 00003abd .word 0x00003abd - 4bb8: 00003a39 .word 0x00003a39 - 4bbc: 00003995 .word 0x00003995 - -00004bc0 : -{ - 4bc0: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} -_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_WIDTH, shadow_width, lv_style_int_t, _int, scalar) - 4bc4: 2250 movs r2, #80 ; 0x50 - 4bc6: 4f75 ldr r7, [pc, #468] ; (4d9c ) - 4bc8: b08a sub sp, #40 ; 0x28 - 4bca: 4604 mov r4, r0 - 4bcc: 460e mov r6, r1 - 4bce: 47b8 blx r7 - if(sh_width) { - 4bd0: 4605 mov r5, r0 - 4bd2: 2800 cmp r0, #0 - 4bd4: f040 80b4 bne.w 4d40 - lv_coord_t s = 0; - 4bd8: 2500 movs r5, #0 -_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_STR, value_str, const char *, _ptr, scalar) - 4bda: f8df a1c8 ldr.w sl, [pc, #456] ; 4da4 - 4bde: 227f movs r2, #127 ; 0x7f - 4be0: 4631 mov r1, r6 - 4be2: 4620 mov r0, r4 - 4be4: 47d0 blx sl - if(value_str) { - 4be6: 4680 mov r8, r0 - 4be8: 2800 cmp r0, #0 - 4bea: d07e beq.n 4cea -_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_OPA, value_opa, lv_opa_t, _opa, scalar) - 4bec: 4b6c ldr r3, [pc, #432] ; (4da0 ) - 4bee: 227c movs r2, #124 ; 0x7c - 4bf0: 4631 mov r1, r6 - 4bf2: 4620 mov r0, r4 - 4bf4: 4798 blx r3 - if(value_opa > LV_OPA_MIN) { - 4bf6: 2805 cmp r0, #5 - 4bf8: d977 bls.n 4cea -_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_LETTER_SPACE, value_letter_space, lv_style_int_t, _int, scalar) - 4bfa: 2270 movs r2, #112 ; 0x70 - 4bfc: 4631 mov r1, r6 - 4bfe: 4620 mov r0, r4 - 4c00: 47b8 blx r7 - 4c02: 2270 movs r2, #112 ; 0x70 - 4c04: 9005 str r0, [sp, #20] - 4c06: 4631 mov r1, r6 - 4c08: 4620 mov r0, r4 - 4c0a: 47b8 blx r7 -_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_FONT, value_font, const lv_font_t *, _ptr, scalar) - 4c0c: 227e movs r2, #126 ; 0x7e -_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_LETTER_SPACE, value_letter_space, lv_style_int_t, _int, scalar) - 4c0e: 4681 mov r9, r0 -_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_FONT, value_font, const lv_font_t *, _ptr, scalar) - 4c10: 4631 mov r1, r6 - 4c12: 4620 mov r0, r4 - 4c14: 47d0 blx sl - _lv_txt_get_size(&txt_size, value_str, font, letter_space, line_space, LV_COORD_MAX, LV_TXT_FLAG_NONE); - 4c16: f04f 0a00 mov.w sl, #0 - 4c1a: f647 4118 movw r1, #31768 ; 0x7c18 - 4c1e: e9cd 1a01 strd r1, sl, [sp, #4] - 4c22: 4602 mov r2, r0 - 4c24: 4641 mov r1, r8 - 4c26: 9b05 ldr r3, [sp, #20] - 4c28: f8df 817c ldr.w r8, [pc, #380] ; 4da8 - 4c2c: f8cd 9000 str.w r9, [sp] - 4c30: a806 add r0, sp, #24 - 4c32: 47c0 blx r8 - value_area.x2 = txt_size.x - 1; - 4c34: f8bd 3018 ldrh.w r3, [sp, #24] - value_area.x1 = 0; - 4c38: f8cd a020 str.w sl, [sp, #32] - value_area.x2 = txt_size.x - 1; - 4c3c: 3b01 subs r3, #1 - 4c3e: f8ad 3024 strh.w r3, [sp, #36] ; 0x24 - value_area.y2 = txt_size.y - 1; - 4c42: f8bd 301a ldrh.w r3, [sp, #26] -_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_ALIGN, value_align, lv_align_t, _int, scalar) - 4c46: 2275 movs r2, #117 ; 0x75 - 4c48: 3b01 subs r3, #1 - 4c4a: 4631 mov r1, r6 - 4c4c: 4620 mov r0, r4 - 4c4e: f8ad 3026 strh.w r3, [sp, #38] ; 0x26 - 4c52: 47b8 blx r7 -_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_OFS_X, value_ofs_x, lv_style_int_t, _int, scalar) - 4c54: 2273 movs r2, #115 ; 0x73 -_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_ALIGN, value_align, lv_align_t, _int, scalar) - 4c56: 4682 mov sl, r0 -_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_OFS_X, value_ofs_x, lv_style_int_t, _int, scalar) - 4c58: 4631 mov r1, r6 - 4c5a: 4620 mov r0, r4 - 4c5c: 47b8 blx r7 -_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_OFS_Y, value_ofs_y, lv_style_int_t, _int, scalar) - 4c5e: 2274 movs r2, #116 ; 0x74 -_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_OFS_X, value_ofs_x, lv_style_int_t, _int, scalar) - 4c60: 4681 mov r9, r0 -_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_OFS_Y, value_ofs_y, lv_style_int_t, _int, scalar) - 4c62: 4631 mov r1, r6 - 4c64: 4620 mov r0, r4 - 4c66: 47b8 blx r7 - _lv_area_align(&obj->coords, &value_area, align, &p_align); - 4c68: fa5f f28a uxtb.w r2, sl - 4c6c: 4680 mov r8, r0 - 4c6e: ab07 add r3, sp, #28 - 4c70: a908 add r1, sp, #32 - 4c72: f104 0010 add.w r0, r4, #16 - 4c76: f8df a134 ldr.w sl, [pc, #308] ; 4dac - 4c7a: 47d0 blx sl - value_area.y1 += p_align.y + yofs; - 4c7c: f8bd 201e ldrh.w r2, [sp, #30] - value_area.x1 += p_align.x + xofs; - 4c80: f8bd 301c ldrh.w r3, [sp, #28] - s = LV_MATH_MAX(s, obj->coords.x1 - value_area.x1); - 4c84: f9b4 1010 ldrsh.w r1, [r4, #16] - value_area.y1 += p_align.y + yofs; - 4c88: eb08 0002 add.w r0, r8, r2 - value_area.x1 += p_align.x + xofs; - 4c8c: f8bd 2020 ldrh.w r2, [sp, #32] - 4c90: 444b add r3, r9 - 4c92: fa12 f283 uxtah r2, r2, r3 - s = LV_MATH_MAX(s, obj->coords.x1 - value_area.x1); - 4c96: b212 sxth r2, r2 - 4c98: 1a89 subs r1, r1, r2 - 4c9a: 42a9 cmp r1, r5 - 4c9c: bfb8 it lt - 4c9e: 4629 movlt r1, r5 - value_area.y1 += p_align.y + yofs; - 4ca0: f8bd 5022 ldrh.w r5, [sp, #34] ; 0x22 - s = LV_MATH_MAX(s, obj->coords.y1 - value_area.y1); - 4ca4: f9b4 2012 ldrsh.w r2, [r4, #18] - value_area.y1 += p_align.y + yofs; - 4ca8: fa15 f580 uxtah r5, r5, r0 - s = LV_MATH_MAX(s, obj->coords.y1 - value_area.y1); - 4cac: b22d sxth r5, r5 - 4cae: 1b52 subs r2, r2, r5 - 4cb0: b209 sxth r1, r1 - 4cb2: 428a cmp r2, r1 - 4cb4: bfb8 it lt - 4cb6: 460a movlt r2, r1 - value_area.x2 += p_align.x + xofs; - 4cb8: f8bd 1024 ldrh.w r1, [sp, #36] ; 0x24 - 4cbc: fa11 f383 uxtah r3, r1, r3 - s = LV_MATH_MAX(s, value_area.x2 - obj->coords.x2); - 4cc0: f9b4 1014 ldrsh.w r1, [r4, #20] - 4cc4: b21b sxth r3, r3 - 4cc6: 1a5b subs r3, r3, r1 - 4cc8: b212 sxth r2, r2 - 4cca: 4293 cmp r3, r2 - 4ccc: bfb8 it lt - 4cce: 4613 movlt r3, r2 - value_area.y2 += p_align.y + yofs; - 4cd0: f8bd 2026 ldrh.w r2, [sp, #38] ; 0x26 - 4cd4: fa12 f080 uxtah r0, r2, r0 - s = LV_MATH_MAX(s, value_area.y2 - obj->coords.y2); - 4cd8: f9b4 2016 ldrsh.w r2, [r4, #22] - 4cdc: b200 sxth r0, r0 - 4cde: 1a80 subs r0, r0, r2 - 4ce0: b21b sxth r3, r3 - 4ce2: 4298 cmp r0, r3 - 4ce4: bfb8 it lt - 4ce6: 4618 movlt r0, r3 - 4ce8: b205 sxth r5, r0 -_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_WIDTH, outline_width, lv_style_int_t, _int, scalar) - 4cea: 2240 movs r2, #64 ; 0x40 - 4cec: 4631 mov r1, r6 - 4cee: 4620 mov r0, r4 - 4cf0: 47b8 blx r7 - if(outline_width) { - 4cf2: 4680 mov r8, r0 - 4cf4: b178 cbz r0, 4d16 -_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_OPA, outline_opa, lv_opa_t, _opa, scalar) - 4cf6: 4b2a ldr r3, [pc, #168] ; (4da0 ) - 4cf8: 224c movs r2, #76 ; 0x4c - 4cfa: 4631 mov r1, r6 - 4cfc: 4620 mov r0, r4 - 4cfe: 4798 blx r3 - if(outline_opa > LV_OPA_MIN) { - 4d00: 2805 cmp r0, #5 - 4d02: d908 bls.n 4d16 -_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_PAD, outline_pad, lv_style_int_t, _int, scalar) - 4d04: 2241 movs r2, #65 ; 0x41 - 4d06: 4631 mov r1, r6 - 4d08: 4620 mov r0, r4 - 4d0a: 47b8 blx r7 - s = LV_MATH_MAX(s, outline_pad + outline_width); - 4d0c: 4440 add r0, r8 - 4d0e: 42a8 cmp r0, r5 - 4d10: bfb8 it lt - 4d12: 4628 movlt r0, r5 - 4d14: b205 sxth r5, r0 -_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_WIDTH, transform_width, lv_style_int_t, _int, scalar) - 4d16: 4631 mov r1, r6 - 4d18: 2204 movs r2, #4 - 4d1a: 4620 mov r0, r4 - 4d1c: 47b8 blx r7 -_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_HEIGHT, transform_height, lv_style_int_t, _int, scalar) - 4d1e: 2205 movs r2, #5 -_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_WIDTH, transform_width, lv_style_int_t, _int, scalar) - 4d20: 4680 mov r8, r0 -_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_HEIGHT, transform_height, lv_style_int_t, _int, scalar) - 4d22: 4631 mov r1, r6 - 4d24: 4620 mov r0, r4 - 4d26: 47b8 blx r7 - lv_coord_t wh = LV_MATH_MAX(w, h); - 4d28: 4540 cmp r0, r8 - 4d2a: bfb8 it lt - 4d2c: 4640 movlt r0, r8 - 4d2e: b200 sxth r0, r0 - if(wh > 0) s += wh; - 4d30: 2800 cmp r0, #0 - 4d32: bfc4 itt gt - 4d34: 1940 addgt r0, r0, r5 - 4d36: b205 sxthgt r5, r0 -} - 4d38: 4628 mov r0, r5 - 4d3a: b00a add sp, #40 ; 0x28 - 4d3c: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} -_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_OPA, shadow_opa, lv_opa_t, _opa, scalar) - 4d40: 4b17 ldr r3, [pc, #92] ; (4da0 ) - 4d42: 225c movs r2, #92 ; 0x5c - 4d44: 4631 mov r1, r6 - 4d46: 4620 mov r0, r4 - 4d48: 4798 blx r3 - if(sh_opa > LV_OPA_MIN) { - 4d4a: 2805 cmp r0, #5 - 4d4c: f67f af44 bls.w 4bd8 -_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_SPREAD, shadow_spread, lv_style_int_t, _int, scalar) - 4d50: 2253 movs r2, #83 ; 0x53 - 4d52: 4631 mov r1, r6 - 4d54: 4620 mov r0, r4 - 4d56: 47b8 blx r7 - sh_width = sh_width / 2; /*THe blur adds only half width*/ - 4d58: eb05 75d5 add.w r5, r5, r5, lsr #31 - sh_width++; - 4d5c: eb00 0565 add.w r5, r0, r5, asr #1 -_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_OFS_X, shadow_ofs_x, lv_style_int_t, _int, scalar) - 4d60: 2251 movs r2, #81 ; 0x51 - 4d62: 4631 mov r1, r6 - 4d64: 4620 mov r0, r4 - 4d66: 47b8 blx r7 -_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_OFS_Y, shadow_ofs_y, lv_style_int_t, _int, scalar) - 4d68: 2252 movs r2, #82 ; 0x52 -_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_OFS_X, shadow_ofs_x, lv_style_int_t, _int, scalar) - 4d6a: 4680 mov r8, r0 -_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_OFS_Y, shadow_ofs_y, lv_style_int_t, _int, scalar) - 4d6c: 4631 mov r1, r6 - 4d6e: 4620 mov r0, r4 - 4d70: 47b8 blx r7 - sh_width += LV_MATH_MAX(LV_MATH_ABS(sh_ofs_x), LV_MATH_ABS(sh_ofs_y)); - 4d72: 2800 cmp r0, #0 - 4d74: bfb8 it lt - 4d76: 4240 neglt r0, r0 - 4d78: f1b8 0f00 cmp.w r8, #0 - 4d7c: bfb8 it lt - 4d7e: f1c8 0800 rsblt r8, r8, #0 - sh_width += lv_obj_get_style_shadow_spread(obj, part); - 4d82: 3501 adds r5, #1 - 4d84: b2ad uxth r5, r5 - sh_width += LV_MATH_MAX(LV_MATH_ABS(sh_ofs_x), LV_MATH_ABS(sh_ofs_y)); - 4d86: b280 uxth r0, r0 - 4d88: fa1f f888 uxth.w r8, r8 - 4d8c: 4540 cmp r0, r8 - 4d8e: bf2c ite cs - 4d90: 182d addcs r5, r5, r0 - 4d92: 4445 addcc r5, r8 - s = LV_MATH_MAX(s, sh_width); - 4d94: b22d sxth r5, r5 - 4d96: ea25 75e5 bic.w r5, r5, r5, asr #31 - 4d9a: e71e b.n 4bda - 4d9c: 00003995 .word 0x00003995 - 4da0: 00003abd .word 0x00003abd - 4da4: 00003b4d .word 0x00003b4d - 4da8: 0001042d .word 0x0001042d - 4dac: 0000e3b5 .word 0x0000e3b5 - -00004db0 : -{ - 4db0: b570 push {r4, r5, r6, lr} - 4db2: 4605 mov r5, r0 - 4db4: 4610 mov r0, r2 - 4db6: 2917 cmp r1, #23 - 4db8: d811 bhi.n 4dde - 4dba: e8df f001 tbb [pc, r1] - 4dbe: 1a55 .short 0x1a55 - 4dc0: 10372e10 .word 0x10372e10 - 4dc4: 100c1523 .word 0x100c1523 - 4dc8: 40103b10 .word 0x40103b10 - 4dcc: 10101040 .word 0x10101040 - 4dd0: 10101010 .word 0x10101010 - 4dd4: 5344 .short 0x5344 - if(info->part == LV_OBJ_PART_MAIN) info->result = &obj->style_list; - 4dd6: 7813 ldrb r3, [r2, #0] - 4dd8: b91b cbnz r3, 4de2 - 4dda: 3528 adds r5, #40 ; 0x28 - 4ddc: 6055 str r5, [r2, #4] - lv_res_t res = LV_RES_OK; - 4dde: 2401 movs r4, #1 - 4de0: e00e b.n 4e00 - else info->result = NULL; - 4de2: 2300 movs r3, #0 - 4de4: 6053 str r3, [r2, #4] - 4de6: e7fa b.n 4dde -} - 4de8: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr} - else if(sign == LV_SIGNAL_GET_TYPE) return lv_obj_handle_get_type_signal(param, LV_OBJX_NAME); - 4dec: 4920 ldr r1, [pc, #128] ; (4e70 ) - 4dee: 4b21 ldr r3, [pc, #132] ; (4e74 ) - 4df0: 4718 bx r3 - if(lv_obj_is_protected(obj, LV_PROTECT_CHILD_CHG) != false) res = LV_RES_INV; - 4df2: 4b21 ldr r3, [pc, #132] ; (4e78 ) - 4df4: 2101 movs r1, #1 - 4df6: 4628 mov r0, r5 - 4df8: 4798 blx r3 - 4dfa: f080 0001 eor.w r0, r0, #1 - return LV_RES_OK; - 4dfe: b2c4 uxtb r4, r0 -} - 4e00: 4620 mov r0, r4 - 4e02: bd70 pop {r4, r5, r6, pc} - lv_coord_t d = lv_obj_get_draw_rect_ext_pad_size(obj, LV_OBJ_PART_MAIN); - 4e04: 4b1d ldr r3, [pc, #116] ; (4e7c ) - 4e06: 2100 movs r1, #0 - 4e08: 4628 mov r0, r5 - 4e0a: 4798 blx r3 - obj->ext_draw_pad = LV_MATH_MAX(obj->ext_draw_pad, d); - 4e0c: f9b5 3032 ldrsh.w r3, [r5, #50] ; 0x32 - 4e10: 4298 cmp r0, r3 - 4e12: bfb8 it lt - 4e14: 4618 movlt r0, r3 - 4e16: 8668 strh r0, [r5, #50] ; 0x32 - 4e18: e7e1 b.n 4dde - if(obj->realign.auto_realign) { - 4e1a: f895 4049 ldrb.w r4, [r5, #73] ; 0x49 - 4e1e: f014 0401 ands.w r4, r4, #1 - 4e22: d0dc beq.n 4dde - lv_obj_realign(obj); - 4e24: 4b16 ldr r3, [pc, #88] ; (4e80 ) - 4e26: 4628 mov r0, r5 - 4e28: 4798 blx r3 - 4e2a: e7e9 b.n 4e00 - lv_obj_refresh_ext_draw_pad(obj); - 4e2c: 4b15 ldr r3, [pc, #84] ; (4e84 ) - 4e2e: 4628 mov r0, r5 - 4e30: 4798 blx r3 - 4e32: e7d4 b.n 4dde - lv_obj_add_state(obj, LV_STATE_PRESSED); - 4e34: 4b14 ldr r3, [pc, #80] ; (4e88 ) - 4e36: 2110 movs r1, #16 - 4e38: 4628 mov r0, r5 - lv_obj_clean_style_list(obj, LV_OBJ_PART_MAIN); - 4e3a: 4798 blx r3 - 4e3c: e7cf b.n 4dde - lv_obj_clear_state(obj, LV_STATE_PRESSED); - 4e3e: 2110 movs r1, #16 - lv_obj_clear_state(obj, LV_STATE_EDITED); - 4e40: 4b12 ldr r3, [pc, #72] ; (4e8c ) - 4e42: 4628 mov r0, r5 - 4e44: e7f9 b.n 4e3a - if(lv_group_get_editing(lv_obj_get_group(obj))) { - 4e46: 4b12 ldr r3, [pc, #72] ; (4e90 ) - 4e48: 4628 mov r0, r5 - 4e4a: 4798 blx r3 - 4e4c: 4b11 ldr r3, [pc, #68] ; (4e94 ) - 4e4e: 4798 blx r3 - 4e50: 4b0d ldr r3, [pc, #52] ; (4e88 ) - 4e52: b110 cbz r0, 4e5a - lv_obj_add_state(obj, state); - 4e54: 2106 movs r1, #6 - 4e56: 4628 mov r0, r5 - 4e58: e7ef b.n 4e3a - lv_obj_add_state(obj, LV_STATE_FOCUSED); - 4e5a: 2102 movs r1, #2 - 4e5c: 4628 mov r0, r5 - 4e5e: 4798 blx r3 - lv_obj_clear_state(obj, LV_STATE_EDITED); - 4e60: 2104 movs r1, #4 - 4e62: e7ed b.n 4e40 - lv_obj_clear_state(obj, LV_STATE_FOCUSED | LV_STATE_EDITED); - 4e64: 2106 movs r1, #6 - 4e66: e7eb b.n 4e40 - lv_obj_clean_style_list(obj, LV_OBJ_PART_MAIN); - 4e68: 4b0b ldr r3, [pc, #44] ; (4e98 ) - 4e6a: 2100 movs r1, #0 - 4e6c: 4628 mov r0, r5 - 4e6e: e7e4 b.n 4e3a - 4e70: 00026adf .word 0x00026adf - 4e74: 00004511 .word 0x00004511 - 4e78: 000038d5 .word 0x000038d5 - 4e7c: 00004bc1 .word 0x00004bc1 - 4e80: 00002f6d .word 0x00002f6d - 4e84: 00002355 .word 0x00002355 - 4e88: 0000411d .word 0x0000411d - 4e8c: 00004181 .word 0x00004181 - 4e90: 00004275 .word 0x00004275 - 4e94: 00001e9f .word 0x00001e9f - 4e98: 000027cd .word 0x000027cd - -00004e9c : - -/** - * Flush the content of the VDB - */ -static void lv_refr_vdb_flush(void) -{ - 4e9c: b538 push {r3, r4, r5, lr} - lv_disp_buf_t * vdb = lv_disp_get_buf(disp_refr); - 4e9e: 4d17 ldr r5, [pc, #92] ; (4efc ) - 4ea0: 4b17 ldr r3, [pc, #92] ; (4f00 ) - 4ea2: 6828 ldr r0, [r5, #0] - 4ea4: 4798 blx r3 - - /*In double buffered mode wait until the other buffer is flushed before flushing the current - * one*/ - if(lv_disp_is_double_buf(disp_refr)) { - 4ea6: 4b17 ldr r3, [pc, #92] ; (4f04 ) - lv_disp_buf_t * vdb = lv_disp_get_buf(disp_refr); - 4ea8: 4604 mov r4, r0 - if(lv_disp_is_double_buf(disp_refr)) { - 4eaa: 6828 ldr r0, [r5, #0] - 4eac: 4798 blx r3 - 4eae: b958 cbnz r0, 4ec8 - } - } - - vdb->flushing = 1; - - if(disp_refr->driver.buffer->last_area && disp_refr->driver.buffer->last_part) vdb->flushing_last = 1; - 4eb0: 6828 ldr r0, [r5, #0] - vdb->flushing = 1; - 4eb2: 2301 movs r3, #1 - if(disp_refr->driver.buffer->last_area && disp_refr->driver.buffer->last_part) vdb->flushing_last = 1; - 4eb4: 6842 ldr r2, [r0, #4] - vdb->flushing = 1; - 4eb6: 61a3 str r3, [r4, #24] - if(disp_refr->driver.buffer->last_area && disp_refr->driver.buffer->last_part) vdb->flushing_last = 1; - 4eb8: 6a11 ldr r1, [r2, #32] - 4eba: 07c9 lsls r1, r1, #31 - 4ebc: d409 bmi.n 4ed2 - else vdb->flushing_last = 0; - 4ebe: 2300 movs r3, #0 - 4ec0: e00a b.n 4ed8 - if(disp_refr->driver.wait_cb) disp_refr->driver.wait_cb(&disp_refr->driver); - 4ec2: 69c3 ldr r3, [r0, #28] - 4ec4: b10b cbz r3, 4eca - 4ec6: 4798 blx r3 - 4ec8: 6828 ldr r0, [r5, #0] - while(vdb->flushing) { - 4eca: 69a3 ldr r3, [r4, #24] - 4ecc: 2b00 cmp r3, #0 - 4ece: d1f8 bne.n 4ec2 - 4ed0: e7ee b.n 4eb0 - if(disp_refr->driver.buffer->last_area && disp_refr->driver.buffer->last_part) vdb->flushing_last = 1; - 4ed2: 6a12 ldr r2, [r2, #32] - 4ed4: 0792 lsls r2, r2, #30 - 4ed6: d5f2 bpl.n 4ebe - else vdb->flushing_last = 0; - 4ed8: 61e3 str r3, [r4, #28] - - /*Flush the rendered content to the display*/ - lv_disp_t * disp = _lv_refr_get_disp_refreshing(); - if(disp->driver.flush_cb) disp->driver.flush_cb(&disp->driver, &vdb->area, vdb->buf_act); - 4eda: 68c3 ldr r3, [r0, #12] - 4edc: b11b cbz r3, 4ee6 - 4ede: 68a2 ldr r2, [r4, #8] - 4ee0: f104 0110 add.w r1, r4, #16 - 4ee4: 4798 blx r3 - - if(vdb->buf1 && vdb->buf2) { - 4ee6: 6822 ldr r2, [r4, #0] - 4ee8: b132 cbz r2, 4ef8 - 4eea: 6863 ldr r3, [r4, #4] - 4eec: b123 cbz r3, 4ef8 - if(vdb->buf_act == vdb->buf1) - 4eee: 68a1 ldr r1, [r4, #8] - vdb->buf_act = vdb->buf2; - 4ef0: 428a cmp r2, r1 - 4ef2: bf18 it ne - 4ef4: 4613 movne r3, r2 - 4ef6: 60a3 str r3, [r4, #8] - else - vdb->buf_act = vdb->buf1; - } -} - 4ef8: bd38 pop {r3, r4, r5, pc} - 4efa: bf00 nop - 4efc: 200030d0 .word 0x200030d0 - 4f00: 0000dc65 .word 0x0000dc65 - 4f04: 0000dc69 .word 0x0000dc69 - -00004f08 : -{ - 4f08: e92d 43f8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, lr} - if(_lv_area_is_in(area_p, &obj->coords, 0) && obj->hidden == 0) { - 4f0c: 2200 movs r2, #0 -{ - 4f0e: 460c mov r4, r1 - if(_lv_area_is_in(area_p, &obj->coords, 0) && obj->hidden == 0) { - 4f10: 4b17 ldr r3, [pc, #92] ; (4f70 ) - 4f12: 3110 adds r1, #16 -{ - 4f14: 4607 mov r7, r0 - if(_lv_area_is_in(area_p, &obj->coords, 0) && obj->hidden == 0) { - 4f16: 4798 blx r3 - 4f18: b910 cbnz r0, 4f20 - lv_obj_t * found_p = NULL; - 4f1a: 2000 movs r0, #0 -} - 4f1c: e8bd 83f8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, pc} - if(_lv_area_is_in(area_p, &obj->coords, 0) && obj->hidden == 0) { - 4f20: f894 3034 ldrb.w r3, [r4, #52] ; 0x34 - 4f24: 06db lsls r3, r3, #27 - 4f26: d4f8 bmi.n 4f1a - lv_design_res_t design_res = obj->design_cb ? obj->design_cb(obj, area_p, - 4f28: 6a23 ldr r3, [r4, #32] - 4f2a: b19b cbz r3, 4f54 - 4f2c: 2202 movs r2, #2 - 4f2e: 4639 mov r1, r7 - 4f30: 4620 mov r0, r4 - 4f32: 4798 blx r3 - if(design_res == LV_DESIGN_RES_MASKED) return NULL; - 4f34: 2803 cmp r0, #3 - lv_design_res_t design_res = obj->design_cb ? obj->design_cb(obj, area_p, - 4f36: 4606 mov r6, r0 - if(design_res == LV_DESIGN_RES_MASKED) return NULL; - 4f38: d0ef beq.n 4f1a - _LV_LL_READ(obj->child_ll, i) { - 4f3a: f104 0804 add.w r8, r4, #4 - 4f3e: 4b0d ldr r3, [pc, #52] ; (4f74 ) - 4f40: f8df 9034 ldr.w r9, [pc, #52] ; 4f78 - 4f44: 4640 mov r0, r8 - 4f46: 4798 blx r3 - 4f48: 4605 mov r5, r0 - 4f4a: b92d cbnz r5, 4f58 - if(design_res == LV_DESIGN_RES_COVER) { - 4f4c: 2e01 cmp r6, #1 - 4f4e: d1e4 bne.n 4f1a - 4f50: 4620 mov r0, r4 - 4f52: e7e3 b.n 4f1c - lv_design_res_t design_res = obj->design_cb ? obj->design_cb(obj, area_p, - 4f54: 2602 movs r6, #2 - 4f56: e7f0 b.n 4f3a - found_p = lv_refr_get_top_obj(area_p, i); - 4f58: 4629 mov r1, r5 - 4f5a: 4638 mov r0, r7 - 4f5c: f7ff ffd4 bl 4f08 - if(found_p != NULL) { - 4f60: 2800 cmp r0, #0 - 4f62: d1db bne.n 4f1c - _LV_LL_READ(obj->child_ll, i) { - 4f64: 4629 mov r1, r5 - 4f66: 4640 mov r0, r8 - 4f68: 47c8 blx r9 - 4f6a: 4605 mov r5, r0 - 4f6c: e7ed b.n 4f4a - 4f6e: bf00 nop - 4f70: 0000e315 .word 0x0000e315 - 4f74: 0000e92d .word 0x0000e92d - 4f78: 0000e939 .word 0x0000e939 - -00004f7c : -{ - 4f7c: e92d 43f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} - if(obj->hidden != 0) return; - 4f80: f890 8034 ldrb.w r8, [r0, #52] ; 0x34 - 4f84: f018 0810 ands.w r8, r8, #16 -{ - 4f88: b08b sub sp, #44 ; 0x2c - 4f8a: 4604 mov r4, r0 - 4f8c: 460f mov r7, r1 - if(obj->hidden != 0) return; - 4f8e: d13c bne.n 500a - lv_coord_t ext_size = obj->ext_draw_pad; - 4f90: f9b0 5032 ldrsh.w r5, [r0, #50] ; 0x32 - lv_obj_get_coords(obj, &obj_area); - 4f94: 4e31 ldr r6, [pc, #196] ; (505c ) - union_ok = _lv_area_intersect(&obj_ext_mask, mask_ori_p, &obj_area); - 4f96: f8df 90cc ldr.w r9, [pc, #204] ; 5064 - lv_obj_get_coords(obj, &obj_area); - 4f9a: a904 add r1, sp, #16 - 4f9c: 47b0 blx r6 - obj_area.x1 -= ext_size; - 4f9e: f8bd 2010 ldrh.w r2, [sp, #16] - 4fa2: b2ab uxth r3, r5 - 4fa4: 1ad2 subs r2, r2, r3 - 4fa6: f8ad 2010 strh.w r2, [sp, #16] - obj_area.y1 -= ext_size; - 4faa: f8bd 2012 ldrh.w r2, [sp, #18] - 4fae: 1ad2 subs r2, r2, r3 - 4fb0: f8ad 2012 strh.w r2, [sp, #18] - obj_area.x2 += ext_size; - 4fb4: f8bd 2014 ldrh.w r2, [sp, #20] - 4fb8: 441a add r2, r3 - 4fba: f8ad 2014 strh.w r2, [sp, #20] - obj_area.y2 += ext_size; - 4fbe: f8bd 2016 ldrh.w r2, [sp, #22] - union_ok = _lv_area_intersect(&obj_ext_mask, mask_ori_p, &obj_area); - 4fc2: 4639 mov r1, r7 - obj_area.y2 += ext_size; - 4fc4: 4413 add r3, r2 - union_ok = _lv_area_intersect(&obj_ext_mask, mask_ori_p, &obj_area); - 4fc6: a802 add r0, sp, #8 - 4fc8: aa04 add r2, sp, #16 - obj_area.y2 += ext_size; - 4fca: f8ad 3016 strh.w r3, [sp, #22] - union_ok = _lv_area_intersect(&obj_ext_mask, mask_ori_p, &obj_area); - 4fce: 47c8 blx r9 - if(union_ok != false) { - 4fd0: b1d8 cbz r0, 500a - if(obj->design_cb) obj->design_cb(obj, &obj_ext_mask, LV_DESIGN_DRAW_MAIN); - 4fd2: 6a23 ldr r3, [r4, #32] - 4fd4: b11b cbz r3, 4fde - 4fd6: 4642 mov r2, r8 - 4fd8: a902 add r1, sp, #8 - 4fda: 4620 mov r0, r4 - 4fdc: 4798 blx r3 - lv_obj_get_coords(obj, &obj_area); - 4fde: a904 add r1, sp, #16 - 4fe0: 4620 mov r0, r4 - 4fe2: 47b0 blx r6 - union_ok = _lv_area_intersect(&obj_mask, mask_ori_p, &obj_area); - 4fe4: aa04 add r2, sp, #16 - 4fe6: 4639 mov r1, r7 - 4fe8: 4668 mov r0, sp - 4fea: 47c8 blx r9 - if(union_ok != false) { - 4fec: b138 cbz r0, 4ffe - _LV_LL_READ_BACK(obj->child_ll, child_p) { - 4fee: 1d27 adds r7, r4, #4 - 4ff0: 4b1b ldr r3, [pc, #108] ; (5060 ) - 4ff2: f8df 8074 ldr.w r8, [pc, #116] ; 5068 - 4ff6: 4638 mov r0, r7 - 4ff8: 4798 blx r3 - 4ffa: 4605 mov r5, r0 - 4ffc: b945 cbnz r5, 5010 - if(obj->design_cb) obj->design_cb(obj, &obj_ext_mask, LV_DESIGN_DRAW_POST); - 4ffe: 6a23 ldr r3, [r4, #32] - 5000: b11b cbz r3, 500a - 5002: 2201 movs r2, #1 - 5004: a902 add r1, sp, #8 - 5006: 4620 mov r0, r4 - 5008: 4798 blx r3 -} - 500a: b00b add sp, #44 ; 0x2c - 500c: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} - lv_obj_get_coords(child_p, &child_area); - 5010: a908 add r1, sp, #32 - 5012: 4628 mov r0, r5 - 5014: 47b0 blx r6 - child_area.x1 -= ext_size; - 5016: 8e6b ldrh r3, [r5, #50] ; 0x32 - 5018: f8bd 2020 ldrh.w r2, [sp, #32] - 501c: 1ad2 subs r2, r2, r3 - 501e: f8ad 2020 strh.w r2, [sp, #32] - child_area.y1 -= ext_size; - 5022: f8bd 2022 ldrh.w r2, [sp, #34] ; 0x22 - 5026: 1ad2 subs r2, r2, r3 - 5028: f8ad 2022 strh.w r2, [sp, #34] ; 0x22 - child_area.x2 += ext_size; - 502c: f8bd 2024 ldrh.w r2, [sp, #36] ; 0x24 - 5030: 441a add r2, r3 - 5032: f8ad 2024 strh.w r2, [sp, #36] ; 0x24 - child_area.y2 += ext_size; - 5036: f8bd 2026 ldrh.w r2, [sp, #38] ; 0x26 - union_ok = _lv_area_intersect(&mask_child, &obj_mask, &child_area); - 503a: 4669 mov r1, sp - child_area.y2 += ext_size; - 503c: 4413 add r3, r2 - union_ok = _lv_area_intersect(&mask_child, &obj_mask, &child_area); - 503e: a806 add r0, sp, #24 - 5040: aa08 add r2, sp, #32 - child_area.y2 += ext_size; - 5042: f8ad 3026 strh.w r3, [sp, #38] ; 0x26 - union_ok = _lv_area_intersect(&mask_child, &obj_mask, &child_area); - 5046: 47c8 blx r9 - if(union_ok) { - 5048: b118 cbz r0, 5052 - lv_refr_obj(child_p, &mask_child); - 504a: a906 add r1, sp, #24 - 504c: 4628 mov r0, r5 - 504e: f7ff ff95 bl 4f7c - _LV_LL_READ_BACK(obj->child_ll, child_p) { - 5052: 4629 mov r1, r5 - 5054: 4638 mov r0, r7 - 5056: 47c0 blx r8 - 5058: 4605 mov r5, r0 - 505a: e7cf b.n 4ffc - 505c: 00002559 .word 0x00002559 - 5060: 0000e933 .word 0x0000e933 - 5064: 0000e111 .word 0x0000e111 - 5068: 0000e959 .word 0x0000e959 - -0000506c : -{ - 506c: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} - 5070: 460e mov r6, r1 - if(top_p == NULL) top_p = lv_disp_get_scr_act(disp_refr); - 5072: 4604 mov r4, r0 - 5074: b928 cbnz r0, 5082 - 5076: 4b15 ldr r3, [pc, #84] ; (50cc ) - 5078: 6818 ldr r0, [r3, #0] - 507a: 4b15 ldr r3, [pc, #84] ; (50d0 ) - 507c: 4798 blx r3 - if(top_p == NULL) return; /*Shouldn't happen*/ - 507e: 4604 mov r4, r0 - 5080: b158 cbz r0, 509a - lv_refr_obj(top_p, mask_p); - 5082: 4631 mov r1, r6 - 5084: 4620 mov r0, r4 - 5086: 4f13 ldr r7, [pc, #76] ; (50d4 ) - par = lv_obj_get_parent(top_p); - 5088: f8df 804c ldr.w r8, [pc, #76] ; 50d8 - lv_obj_t * i = _lv_ll_get_prev(&(par->child_ll), border_p); - 508c: f8df 904c ldr.w r9, [pc, #76] ; 50dc - lv_refr_obj(top_p, mask_p); - 5090: 47b8 blx r7 - par = lv_obj_get_parent(top_p); - 5092: 4620 mov r0, r4 - 5094: 47c0 blx r8 - 5096: 4605 mov r5, r0 - while(par != NULL) { - 5098: b90d cbnz r5, 509e -} - 509a: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} - lv_obj_t * i = _lv_ll_get_prev(&(par->child_ll), border_p); - 509e: f105 0a04 add.w sl, r5, #4 - i = _lv_ll_get_prev(&(par->child_ll), i); - 50a2: 4621 mov r1, r4 - 50a4: 4650 mov r0, sl - 50a6: 47c8 blx r9 - 50a8: 4604 mov r4, r0 - while(i != NULL) { - 50aa: b950 cbnz r0, 50c2 - if(par->design_cb) par->design_cb(par, mask_p, LV_DESIGN_DRAW_POST); - 50ac: 6a2b ldr r3, [r5, #32] - 50ae: b11b cbz r3, 50b8 - 50b0: 2201 movs r2, #1 - 50b2: 4631 mov r1, r6 - 50b4: 4628 mov r0, r5 - 50b6: 4798 blx r3 - par = lv_obj_get_parent(par); - 50b8: 4628 mov r0, r5 - 50ba: 47c0 blx r8 - 50bc: 462c mov r4, r5 - 50be: 4605 mov r5, r0 - 50c0: e7ea b.n 5098 - lv_refr_obj(i, mask_p); - 50c2: 4631 mov r1, r6 - 50c4: 4620 mov r0, r4 - 50c6: 47b8 blx r7 - 50c8: e7eb b.n 50a2 - 50ca: bf00 nop - 50cc: 200030d0 .word 0x200030d0 - 50d0: 00001af5 .word 0x00001af5 - 50d4: 00004f7d .word 0x00004f7d - 50d8: 000023a9 .word 0x000023a9 - 50dc: 0000e959 .word 0x0000e959 - -000050e0 : -{ - 50e0: b573 push {r0, r1, r4, r5, r6, lr} - lv_disp_buf_t * vdb = lv_disp_get_buf(disp_refr); - 50e2: 4c1a ldr r4, [pc, #104] ; (514c ) - 50e4: 4b1a ldr r3, [pc, #104] ; (5150 ) -{ - 50e6: 4606 mov r6, r0 - lv_disp_buf_t * vdb = lv_disp_get_buf(disp_refr); - 50e8: 6820 ldr r0, [r4, #0] - 50ea: 4798 blx r3 - if(lv_disp_is_double_buf(disp_refr) == false) { - 50ec: 4b19 ldr r3, [pc, #100] ; (5154 ) - lv_disp_buf_t * vdb = lv_disp_get_buf(disp_refr); - 50ee: 4605 mov r5, r0 - if(lv_disp_is_double_buf(disp_refr) == false) { - 50f0: 6820 ldr r0, [r4, #0] - 50f2: 4798 blx r3 - 50f4: b320 cbz r0, 5140 - _lv_area_intersect(&start_mask, area_p, &vdb->area); - 50f6: f105 0210 add.w r2, r5, #16 - 50fa: 4631 mov r1, r6 - 50fc: 4b16 ldr r3, [pc, #88] ; (5158 ) - lv_refr_obj_and_children(top_p, &start_mask); - 50fe: 4d17 ldr r5, [pc, #92] ; (515c ) - _lv_area_intersect(&start_mask, area_p, &vdb->area); - 5100: 4668 mov r0, sp - 5102: 4798 blx r3 - top_p = lv_refr_get_top_obj(&start_mask, lv_disp_get_scr_act(disp_refr)); - 5104: 4b16 ldr r3, [pc, #88] ; (5160 ) - 5106: 6820 ldr r0, [r4, #0] - 5108: 4798 blx r3 - 510a: 4b16 ldr r3, [pc, #88] ; (5164 ) - 510c: 4601 mov r1, r0 - 510e: 4668 mov r0, sp - 5110: 4798 blx r3 - lv_refr_obj_and_children(top_p, &start_mask); - 5112: 4669 mov r1, sp - 5114: 47a8 blx r5 - lv_refr_obj_and_children(lv_disp_get_layer_top(disp_refr), &start_mask); - 5116: 4b14 ldr r3, [pc, #80] ; (5168 ) - 5118: 6820 ldr r0, [r4, #0] - 511a: 4798 blx r3 - 511c: 4669 mov r1, sp - 511e: 47a8 blx r5 - lv_refr_obj_and_children(lv_disp_get_layer_sys(disp_refr), &start_mask); - 5120: 4b12 ldr r3, [pc, #72] ; (516c ) - 5122: 6820 ldr r0, [r4, #0] - 5124: 4798 blx r3 - 5126: 4669 mov r1, sp - 5128: 47a8 blx r5 - if(lv_disp_is_true_double_buf(disp_refr) == false) { - 512a: 6820 ldr r0, [r4, #0] - 512c: 4b10 ldr r3, [pc, #64] ; (5170 ) - 512e: 4798 blx r3 - 5130: b908 cbnz r0, 5136 - lv_refr_vdb_flush(); - 5132: 4b10 ldr r3, [pc, #64] ; (5174 ) - 5134: 4798 blx r3 -} - 5136: b002 add sp, #8 - 5138: bd70 pop {r4, r5, r6, pc} - if(disp_refr->driver.wait_cb) disp_refr->driver.wait_cb(&disp_refr->driver); - 513a: 69c3 ldr r3, [r0, #28] - 513c: b10b cbz r3, 5142 - 513e: 4798 blx r3 - 5140: 6820 ldr r0, [r4, #0] - while(vdb->flushing) { - 5142: 69ab ldr r3, [r5, #24] - 5144: 2b00 cmp r3, #0 - 5146: d1f8 bne.n 513a - 5148: e7d5 b.n 50f6 - 514a: bf00 nop - 514c: 200030d0 .word 0x200030d0 - 5150: 0000dc65 .word 0x0000dc65 - 5154: 0000dc69 .word 0x0000dc69 - 5158: 0000e111 .word 0x0000e111 - 515c: 0000506d .word 0x0000506d - 5160: 00001af5 .word 0x00001af5 - 5164: 00004f09 .word 0x00004f09 - 5168: 00001b31 .word 0x00001b31 - 516c: 00001b6d .word 0x00001b6d - 5170: 0000dc79 .word 0x0000dc79 - 5174: 00004e9d .word 0x00004e9d - -00005178 : - 5178: 3901 subs r1, #1 - 517a: f100 0308 add.w r3, r0, #8 - *d8 = *s8; - 517e: f811 2f01 ldrb.w r2, [r1, #1]! - 5182: f800 2b01 strb.w r2, [r0], #1 - while(len) { - 5186: 4298 cmp r0, r3 - 5188: d1f9 bne.n 517e -} - 518a: 4770 bx lr - -0000518c <_lv_refr_init>: -} - 518c: 4770 bx lr - ... - -00005190 <_lv_inv_area>: -{ - 5190: e92d 41ff stmdb sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, lr} - 5194: 460d mov r5, r1 - if(!disp) disp = lv_disp_get_default(); - 5196: 4604 mov r4, r0 - 5198: b918 cbnz r0, 51a2 <_lv_inv_area+0x12> - 519a: 4b2d ldr r3, [pc, #180] ; (5250 <_lv_inv_area+0xc0>) - 519c: 4798 blx r3 - if(!disp) return; - 519e: 4604 mov r4, r0 - 51a0: b130 cbz r0, 51b0 <_lv_inv_area+0x20> - if(area_p == NULL) { - 51a2: b945 cbnz r5, 51b6 <_lv_inv_area+0x26> - disp->inv_p = 0; - 51a4: f8b4 3168 ldrh.w r3, [r4, #360] ; 0x168 - 51a8: f365 0309 bfi r3, r5, #0, #10 - 51ac: f8a4 3168 strh.w r3, [r4, #360] ; 0x168 -} - 51b0: b004 add sp, #16 - 51b2: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} - scr_area.x1 = 0; - 51b6: 2300 movs r3, #0 - 51b8: 9300 str r3, [sp, #0] - scr_area.x2 = lv_disp_get_hor_res(disp) - 1; - 51ba: 4620 mov r0, r4 - 51bc: 4b25 ldr r3, [pc, #148] ; (5254 <_lv_inv_area+0xc4>) - 51be: 4798 blx r3 - 51c0: 3801 subs r0, #1 - scr_area.y2 = lv_disp_get_ver_res(disp) - 1; - 51c2: 4b25 ldr r3, [pc, #148] ; (5258 <_lv_inv_area+0xc8>) - scr_area.x2 = lv_disp_get_hor_res(disp) - 1; - 51c4: f8ad 0004 strh.w r0, [sp, #4] - scr_area.y2 = lv_disp_get_ver_res(disp) - 1; - 51c8: 4620 mov r0, r4 - 51ca: 4798 blx r3 - 51cc: 3801 subs r0, #1 - 51ce: f8ad 0006 strh.w r0, [sp, #6] - suc = _lv_area_intersect(&com_area, area_p, &scr_area); - 51d2: 4b22 ldr r3, [pc, #136] ; (525c <_lv_inv_area+0xcc>) - 51d4: 466a mov r2, sp - 51d6: 4629 mov r1, r5 - 51d8: a802 add r0, sp, #8 - 51da: 4798 blx r3 - if(suc != false) { - 51dc: 2800 cmp r0, #0 - 51de: d0e7 beq.n 51b0 <_lv_inv_area+0x20> - if(disp->driver.rounder_cb) disp->driver.rounder_cb(&disp->driver, &com_area); - 51e0: 6923 ldr r3, [r4, #16] - 51e2: b113 cbz r3, 51ea <_lv_inv_area+0x5a> - 51e4: a902 add r1, sp, #8 - 51e6: 4620 mov r0, r4 - 51e8: 4798 blx r3 - 51ea: f104 0548 add.w r5, r4, #72 ; 0x48 - if(_lv_area_is_in(&com_area, &disp->inv_areas[i], 0) != false) return; - 51ee: f8df 8078 ldr.w r8, [pc, #120] ; 5268 <_lv_inv_area+0xd8> -{ - 51f2: 2600 movs r6, #0 - 51f4: 462f mov r7, r5 - for(i = 0; i < disp->inv_p; i++) { - 51f6: f8b4 3168 ldrh.w r3, [r4, #360] ; 0x168 - 51fa: b2b2 uxth r2, r6 - 51fc: f3c3 0009 ubfx r0, r3, #0, #10 - 5200: 4290 cmp r0, r2 - 5202: d81c bhi.n 523e <_lv_inv_area+0xae> - if(disp->inv_p < LV_INV_BUF_SIZE) { - 5204: 281f cmp r0, #31 - lv_area_copy(&disp->inv_areas[disp->inv_p], &com_area); - 5206: bf9b ittet ls - 5208: 3009 addls r0, #9 - 520a: f3c0 0009 ubfxls r0, r0, #0, #10 - disp->inv_p = 0; - 520e: f36f 0309 bfchi r3, #0, #10 - lv_area_copy(&disp->inv_areas[disp->inv_p], &com_area); - 5212: a902 addls r1, sp, #8 - 5214: bf91 iteee ls - 5216: eb04 00c0 addls.w r0, r4, r0, lsl #3 - disp->inv_p = 0; - 521a: f8a4 3168 strhhi.w r3, [r4, #360] ; 0x168 - lv_area_copy(&disp->inv_areas[disp->inv_p], &scr_area); - 521e: 4669 movhi r1, sp - 5220: 4638 movhi r0, r7 - 5222: 4a0f ldr r2, [pc, #60] ; (5260 <_lv_inv_area+0xd0>) - 5224: 4790 blx r2 - disp->inv_p++; - 5226: f8b4 3168 ldrh.w r3, [r4, #360] ; 0x168 - lv_task_set_prio(disp->refr_task, LV_REFR_TASK_PRIO); - 522a: 6ae0 ldr r0, [r4, #44] ; 0x2c - disp->inv_p++; - 522c: 1c5a adds r2, r3, #1 - 522e: f362 0309 bfi r3, r2, #0, #10 - 5232: f8a4 3168 strh.w r3, [r4, #360] ; 0x168 - lv_task_set_prio(disp->refr_task, LV_REFR_TASK_PRIO); - 5236: 2103 movs r1, #3 - 5238: 4b0a ldr r3, [pc, #40] ; (5264 <_lv_inv_area+0xd4>) - 523a: 4798 blx r3 - 523c: e7b8 b.n 51b0 <_lv_inv_area+0x20> - if(_lv_area_is_in(&com_area, &disp->inv_areas[i], 0) != false) return; - 523e: 4629 mov r1, r5 - 5240: 2200 movs r2, #0 - 5242: a802 add r0, sp, #8 - 5244: 47c0 blx r8 - 5246: 3601 adds r6, #1 - 5248: 3508 adds r5, #8 - 524a: 2800 cmp r0, #0 - 524c: d0d3 beq.n 51f6 <_lv_inv_area+0x66> - 524e: e7af b.n 51b0 <_lv_inv_area+0x20> - 5250: 0000db81 .word 0x0000db81 - 5254: 0000db8d .word 0x0000db8d - 5258: 0000dbb1 .word 0x0000dbb1 - 525c: 0000e111 .word 0x0000e111 - 5260: 00005179 .word 0x00005179 - 5264: 0000fdfd .word 0x0000fdfd - 5268: 0000e315 .word 0x0000e315 - -0000526c <_lv_refr_get_disp_refreshing>: -} - 526c: 4b01 ldr r3, [pc, #4] ; (5274 <_lv_refr_get_disp_refreshing+0x8>) - 526e: 6818 ldr r0, [r3, #0] - 5270: 4770 bx lr - 5272: bf00 nop - 5274: 200030d0 .word 0x200030d0 - -00005278 <_lv_disp_refr_task>: -{ - 5278: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - 527c: ed2d 8b02 vpush {d8} - uint32_t start = lv_tick_get(); - 5280: 4b82 ldr r3, [pc, #520] ; (548c <_lv_disp_refr_task+0x214>) - disp_refr = task->user_data; - 5282: 4c83 ldr r4, [pc, #524] ; (5490 <_lv_disp_refr_task+0x218>) -{ - 5284: b08b sub sp, #44 ; 0x2c - 5286: 4605 mov r5, r0 - uint32_t start = lv_tick_get(); - 5288: 4798 blx r3 - disp_refr = task->user_data; - 528a: 68eb ldr r3, [r5, #12] - 528c: 6023 str r3, [r4, #0] - lv_task_set_prio(task, LV_TASK_PRIO_OFF); - 528e: 2100 movs r1, #0 - 5290: 4b80 ldr r3, [pc, #512] ; (5494 <_lv_disp_refr_task+0x21c>) - uint32_t start = lv_tick_get(); - 5292: ee08 0a90 vmov s17, r0 - lv_task_set_prio(task, LV_TASK_PRIO_OFF); - 5296: 4628 mov r0, r5 - 5298: 4798 blx r3 - if(disp_refr->act_scr == NULL) { - 529a: 6823 ldr r3, [r4, #0] - 529c: 6bd9 ldr r1, [r3, #60] ; 0x3c - 529e: 2900 cmp r1, #0 - 52a0: f040 808b bne.w 53ba <_lv_disp_refr_task+0x142> - disp_refr->inv_p = 0; - 52a4: f8b3 2168 ldrh.w r2, [r3, #360] ; 0x168 - 52a8: f361 0209 bfi r2, r1, #0, #10 - 52ac: f8a3 2168 strh.w r2, [r3, #360] ; 0x168 -} - 52b0: b00b add sp, #44 ; 0x2c - 52b2: ecbd 8b02 vpop {d8} - 52b6: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - if(disp_refr->inv_area_joined[join_in] != 0) continue; - 52ba: 4433 add r3, r6 - 52bc: f893 5148 ldrb.w r5, [r3, #328] ; 0x148 - 52c0: 2d00 cmp r5, #0 - 52c2: d03c beq.n 533e <_lv_disp_refr_task+0xc6> - for(join_in = 0; join_in < disp_refr->inv_p; join_in++) { - 52c4: 3601 adds r6, #1 - 52c6: 6823 ldr r3, [r4, #0] - 52c8: f8b3 2168 ldrh.w r2, [r3, #360] ; 0x168 - 52cc: f3c2 0109 ubfx r1, r2, #0, #10 - 52d0: 428e cmp r6, r1 - 52d2: d3f2 bcc.n 52ba <_lv_disp_refr_task+0x42> - px_num = 0; - 52d4: 2000 movs r0, #0 - 52d6: 6060 str r0, [r4, #4] - if(disp_refr->inv_p == 0) return; - 52d8: 2900 cmp r1, #0 - 52da: d171 bne.n 53c0 <_lv_disp_refr_task+0x148> - if(disp_refr->inv_p != 0) { - 52dc: 4f6c ldr r7, [pc, #432] ; (5490 <_lv_disp_refr_task+0x218>) - 52de: 6838 ldr r0, [r7, #0] - 52e0: f8b0 3168 ldrh.w r3, [r0, #360] ; 0x168 - 52e4: f3c3 0309 ubfx r3, r3, #0, #10 - 52e8: b303 cbz r3, 532c <_lv_disp_refr_task+0xb4> - if(lv_disp_is_true_double_buf(disp_refr) && disp_refr->driver.set_px_cb == NULL) { - 52ea: 4b6b ldr r3, [pc, #428] ; (5498 <_lv_disp_refr_task+0x220>) - 52ec: 4798 blx r3 - 52ee: 2800 cmp r0, #0 - 52f0: f040 81a1 bne.w 5636 <_lv_disp_refr_task+0x3be> - _lv_memset_00(disp_refr->inv_areas, sizeof(disp_refr->inv_areas)); - 52f4: 6820 ldr r0, [r4, #0] - 52f6: 4d69 ldr r5, [pc, #420] ; (549c <_lv_disp_refr_task+0x224>) - 52f8: f44f 7180 mov.w r1, #256 ; 0x100 - 52fc: 3048 adds r0, #72 ; 0x48 - 52fe: 47a8 blx r5 - _lv_memset_00(disp_refr->inv_area_joined, sizeof(disp_refr->inv_area_joined)); - 5300: 6820 ldr r0, [r4, #0] - 5302: 2120 movs r1, #32 - 5304: f500 70a4 add.w r0, r0, #328 ; 0x148 - 5308: 47a8 blx r5 - disp_refr->inv_p = 0; - 530a: 6823 ldr r3, [r4, #0] - 530c: f8b3 2168 ldrh.w r2, [r3, #360] ; 0x168 - 5310: f36f 0209 bfc r2, #0, #10 - 5314: f8a3 2168 strh.w r2, [r3, #360] ; 0x168 - elaps = lv_tick_elaps(start); - 5318: ee18 0a90 vmov r0, s17 - 531c: 4b60 ldr r3, [pc, #384] ; (54a0 <_lv_disp_refr_task+0x228>) - 531e: 4798 blx r3 - 5320: 4601 mov r1, r0 - if(disp_refr->driver.monitor_cb) { - 5322: 6820 ldr r0, [r4, #0] - 5324: 6983 ldr r3, [r0, #24] - 5326: 2b00 cmp r3, #0 - 5328: f040 81dd bne.w 56e6 <_lv_disp_refr_task+0x46e> - _lv_mem_buf_free_all(); - 532c: 4b5d ldr r3, [pc, #372] ; (54a4 <_lv_disp_refr_task+0x22c>) - 532e: 4798 blx r3 - _lv_font_clean_up_fmt_txt(); - 5330: 4b5d ldr r3, [pc, #372] ; (54a8 <_lv_disp_refr_task+0x230>) -} - 5332: b00b add sp, #44 ; 0x2c - 5334: ecbd 8b02 vpop {d8} - 5338: e8bd 4ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - _lv_font_clean_up_fmt_txt(); - 533c: 4718 bx r3 - 533e: ea4f 09c6 mov.w r9, r6, lsl #3 - if(lv_area_get_size(&joined_area) < (lv_area_get_size(&disp_refr->inv_areas[join_in]) + - 5342: f8df a184 ldr.w sl, [pc, #388] ; 54c8 <_lv_disp_refr_task+0x250> - 5346: f109 0948 add.w r9, r9, #72 ; 0x48 - for(join_from = 0; join_from < disp_refr->inv_p; join_from++) { - 534a: 6820 ldr r0, [r4, #0] - 534c: f8b0 3168 ldrh.w r3, [r0, #360] ; 0x168 - 5350: f3c3 0309 ubfx r3, r3, #0, #10 - 5354: 429d cmp r5, r3 - 5356: d2b5 bcs.n 52c4 <_lv_disp_refr_task+0x4c> - if(disp_refr->inv_area_joined[join_from] != 0 || join_in == join_from) { - 5358: 1943 adds r3, r0, r5 - 535a: f893 3148 ldrb.w r3, [r3, #328] ; 0x148 - 535e: bb53 cbnz r3, 53b6 <_lv_disp_refr_task+0x13e> - 5360: 42ae cmp r6, r5 - 5362: d028 beq.n 53b6 <_lv_disp_refr_task+0x13e> - if(_lv_area_is_on(&disp_refr->inv_areas[join_in], &disp_refr->inv_areas[join_from]) == false) { - 5364: ea4f 0bc5 mov.w fp, r5, lsl #3 - 5368: f10b 0b48 add.w fp, fp, #72 ; 0x48 - 536c: eb00 010b add.w r1, r0, fp - 5370: 4448 add r0, r9 - 5372: 47b8 blx r7 - 5374: b1f8 cbz r0, 53b6 <_lv_disp_refr_task+0x13e> - _lv_area_join(&joined_area, &disp_refr->inv_areas[join_in], &disp_refr->inv_areas[join_from]); - 5376: 6821 ldr r1, [r4, #0] - 5378: 4b4c ldr r3, [pc, #304] ; (54ac <_lv_disp_refr_task+0x234>) - 537a: eb01 020b add.w r2, r1, fp - 537e: a808 add r0, sp, #32 - 5380: 4449 add r1, r9 - 5382: 4798 blx r3 - if(lv_area_get_size(&joined_area) < (lv_area_get_size(&disp_refr->inv_areas[join_in]) + - 5384: a808 add r0, sp, #32 - 5386: 47d0 blx sl - 5388: 4680 mov r8, r0 - 538a: 6820 ldr r0, [r4, #0] - 538c: 4448 add r0, r9 - 538e: 47d0 blx sl - 5390: 9003 str r0, [sp, #12] - lv_area_get_size(&disp_refr->inv_areas[join_from]))) { - 5392: 6820 ldr r0, [r4, #0] - 5394: 4458 add r0, fp - 5396: 47d0 blx sl - if(lv_area_get_size(&joined_area) < (lv_area_get_size(&disp_refr->inv_areas[join_in]) + - 5398: 9b03 ldr r3, [sp, #12] - 539a: 4418 add r0, r3 - 539c: 4580 cmp r8, r0 - 539e: d20a bcs.n 53b6 <_lv_disp_refr_task+0x13e> - lv_area_copy(&disp_refr->inv_areas[join_in], &joined_area); - 53a0: f8d4 b000 ldr.w fp, [r4] - 53a4: 4b42 ldr r3, [pc, #264] ; (54b0 <_lv_disp_refr_task+0x238>) - 53a6: eb0b 0009 add.w r0, fp, r9 - 53aa: a908 add r1, sp, #32 - disp_refr->inv_area_joined[join_from] = 1; - 53ac: 44ab add fp, r5 - lv_area_copy(&disp_refr->inv_areas[join_in], &joined_area); - 53ae: 4798 blx r3 - disp_refr->inv_area_joined[join_from] = 1; - 53b0: 2301 movs r3, #1 - 53b2: f88b 3148 strb.w r3, [fp, #328] ; 0x148 - for(join_from = 0; join_from < disp_refr->inv_p; join_from++) { - 53b6: 3501 adds r5, #1 - 53b8: e7c7 b.n 534a <_lv_disp_refr_task+0xd2> - if(_lv_area_is_on(&disp_refr->inv_areas[join_in], &disp_refr->inv_areas[join_from]) == false) { - 53ba: 4f3e ldr r7, [pc, #248] ; (54b4 <_lv_disp_refr_task+0x23c>) - for(join_in = 0; join_in < disp_refr->inv_p; join_in++) { - 53bc: 2600 movs r6, #0 - 53be: e782 b.n 52c6 <_lv_disp_refr_task+0x4e> - for(i = disp_refr->inv_p - 1; i >= 0; i--) { - 53c0: 1e4f subs r7, r1, #1 - if(disp_refr->inv_area_joined[i] == 0) { - 53c2: f503 72a4 add.w r2, r3, #328 ; 0x148 - for(i = disp_refr->inv_p - 1; i >= 0; i--) { - 53c6: 1c79 adds r1, r7, #1 - 53c8: d15b bne.n 5482 <_lv_disp_refr_task+0x20a> - int32_t last_i = 0; - 53ca: 2700 movs r7, #0 - disp_refr->driver.buffer->last_area = 0; - 53cc: 685b ldr r3, [r3, #4] - for(i = 0; i < disp_refr->inv_p; i++) { - 53ce: f8df 80c0 ldr.w r8, [pc, #192] ; 5490 <_lv_disp_refr_task+0x218> - disp_refr->driver.buffer->last_area = 0; - 53d2: f893 2020 ldrb.w r2, [r3, #32] - 53d6: f36f 0200 bfc r2, #0, #1 - 53da: f883 2020 strb.w r2, [r3, #32] - disp_refr->driver.buffer->last_part = 0; - 53de: f893 2020 ldrb.w r2, [r3, #32] - 53e2: f36f 0241 bfc r2, #1, #1 - 53e6: f883 2020 strb.w r2, [r3, #32] - for(i = 0; i < disp_refr->inv_p; i++) { - 53ea: f04f 0b00 mov.w fp, #0 - 53ee: f8d8 5000 ldr.w r5, [r8] - 53f2: f8b5 3168 ldrh.w r3, [r5, #360] ; 0x168 - 53f6: f3c3 0309 ubfx r3, r3, #0, #10 - 53fa: 459b cmp fp, r3 - 53fc: f6bf af6e bge.w 52dc <_lv_disp_refr_task+0x64> - if(disp_refr->inv_area_joined[i] == 0) { - 5400: eb05 030b add.w r3, r5, fp - 5404: f893 3148 ldrb.w r3, [r3, #328] ; 0x148 - 5408: 2b00 cmp r3, #0 - 540a: f040 80c6 bne.w 559a <_lv_disp_refr_task+0x322> - if(i == last_i) disp_refr->driver.buffer->last_area = 1; - 540e: 686b ldr r3, [r5, #4] - 5410: 45bb cmp fp, r7 - 5412: bf02 ittt eq - 5414: f893 2020 ldrbeq.w r2, [r3, #32] - 5418: f042 0201 orreq.w r2, r2, #1 - 541c: f883 2020 strbeq.w r2, [r3, #32] - disp_refr->driver.buffer->last_part = 0; - 5420: f893 2020 ldrb.w r2, [r3, #32] - 5424: ea4f 09cb mov.w r9, fp, lsl #3 - 5428: f36f 0241 bfc r2, #1, #1 - 542c: f883 2020 strb.w r2, [r3, #32] - lv_refr_area(&disp_refr->inv_areas[i]); - 5430: f109 0348 add.w r3, r9, #72 ; 0x48 - 5434: 9304 str r3, [sp, #16] - 5436: 18eb adds r3, r5, r3 - 5438: ee08 3a10 vmov s16, r3 - if(lv_disp_is_true_double_buf(disp_refr)) { - 543c: 4628 mov r0, r5 - 543e: 4b16 ldr r3, [pc, #88] ; (5498 <_lv_disp_refr_task+0x220>) - 5440: 4798 blx r3 - 5442: 4b1d ldr r3, [pc, #116] ; (54b8 <_lv_disp_refr_task+0x240>) - 5444: 2800 cmp r0, #0 - 5446: d041 beq.n 54cc <_lv_disp_refr_task+0x254> - lv_disp_buf_t * vdb = lv_disp_get_buf(disp_refr); - 5448: 6820 ldr r0, [r4, #0] - 544a: 4798 blx r3 - vdb->area.x1 = 0; - 544c: 2600 movs r6, #0 - lv_disp_buf_t * vdb = lv_disp_get_buf(disp_refr); - 544e: 4605 mov r5, r0 - vdb->area.x2 = lv_disp_get_hor_res(disp_refr) - 1; - 5450: 4b1a ldr r3, [pc, #104] ; (54bc <_lv_disp_refr_task+0x244>) - vdb->area.x1 = 0; - 5452: 8206 strh r6, [r0, #16] - vdb->area.x2 = lv_disp_get_hor_res(disp_refr) - 1; - 5454: 6820 ldr r0, [r4, #0] - 5456: 4798 blx r3 - 5458: 3801 subs r0, #1 - vdb->area.y2 = lv_disp_get_ver_res(disp_refr) - 1; - 545a: 4b19 ldr r3, [pc, #100] ; (54c0 <_lv_disp_refr_task+0x248>) - vdb->area.x2 = lv_disp_get_hor_res(disp_refr) - 1; - 545c: 82a8 strh r0, [r5, #20] - vdb->area.y1 = 0; - 545e: 826e strh r6, [r5, #18] - vdb->area.y2 = lv_disp_get_ver_res(disp_refr) - 1; - 5460: 6820 ldr r0, [r4, #0] - 5462: 4798 blx r3 - disp_refr->driver.buffer->last_part = 1; - 5464: 6823 ldr r3, [r4, #0] - vdb->area.y2 = lv_disp_get_ver_res(disp_refr) - 1; - 5466: 3801 subs r0, #1 - disp_refr->driver.buffer->last_part = 1; - 5468: 685a ldr r2, [r3, #4] - vdb->area.y2 = lv_disp_get_ver_res(disp_refr) - 1; - 546a: 82e8 strh r0, [r5, #22] - disp_refr->driver.buffer->last_part = 1; - 546c: f892 3020 ldrb.w r3, [r2, #32] - 5470: f043 0302 orr.w r3, r3, #2 - 5474: f882 3020 strb.w r3, [r2, #32] - lv_refr_area_part(area_p); - 5478: ee18 0a10 vmov r0, s16 - 547c: 4b11 ldr r3, [pc, #68] ; (54c4 <_lv_disp_refr_task+0x24c>) - 547e: 4798 blx r3 - 5480: e07e b.n 5580 <_lv_disp_refr_task+0x308> - if(disp_refr->inv_area_joined[i] == 0) { - 5482: 5dd1 ldrb r1, [r2, r7] - 5484: 2900 cmp r1, #0 - 5486: d0a1 beq.n 53cc <_lv_disp_refr_task+0x154> - for(i = disp_refr->inv_p - 1; i >= 0; i--) { - 5488: 3f01 subs r7, #1 - 548a: e79c b.n 53c6 <_lv_disp_refr_task+0x14e> - 548c: 0000dccd .word 0x0000dccd - 5490: 200030d0 .word 0x200030d0 - 5494: 0000fdfd .word 0x0000fdfd - 5498: 0000dc79 .word 0x0000dc79 - 549c: 0000f2a9 .word 0x0000f2a9 - 54a0: 0000dce1 .word 0x0000dce1 - 54a4: 0000ee6d .word 0x0000ee6d - 54a8: 0000d9c5 .word 0x0000d9c5 - 54ac: 0000e165 .word 0x0000e165 - 54b0: 00005179 .word 0x00005179 - 54b4: 0000e2d9 .word 0x0000e2d9 - 54b8: 0000dc65 .word 0x0000dc65 - 54bc: 0000db8d .word 0x0000db8d - 54c0: 0000dbb1 .word 0x0000dbb1 - 54c4: 000050e1 .word 0x000050e1 - 54c8: 0000e0f5 .word 0x0000e0f5 - lv_disp_buf_t * vdb = lv_disp_get_buf(disp_refr); - 54cc: 444d add r5, r9 - 54ce: 6820 ldr r0, [r4, #0] - 54d0: 4798 blx r3 - return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - 54d2: f8b5 904c ldrh.w r9, [r5, #76] ; 0x4c - 54d6: f8b5 3048 ldrh.w r3, [r5, #72] ; 0x48 - return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - 54da: f9b5 204e ldrsh.w r2, [r5, #78] ; 0x4e - 54de: 9203 str r2, [sp, #12] - return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - 54e0: f109 0901 add.w r9, r9, #1 - 54e4: eba9 0903 sub.w r9, r9, r3 - return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - 54e8: f8b5 304a ldrh.w r3, [r5, #74] ; 0x4a - 54ec: f102 0a01 add.w sl, r2, #1 - 54f0: ebaa 0a03 sub.w sl, sl, r3 - 54f4: 4606 mov r6, r0 - area_p->y2 >= lv_disp_get_ver_res(disp_refr) ? lv_disp_get_ver_res(disp_refr) - 1 : area_p->y2; - 54f6: 4b7d ldr r3, [pc, #500] ; (56ec <_lv_disp_refr_task+0x474>) - 54f8: 6820 ldr r0, [r4, #0] - 54fa: 4798 blx r3 - lv_coord_t y2 = - 54fc: 9a03 ldr r2, [sp, #12] - 54fe: 4b7b ldr r3, [pc, #492] ; (56ec <_lv_disp_refr_task+0x474>) - 5500: 4282 cmp r2, r0 - return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - 5502: fa0f f989 sxth.w r9, r9 - return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - 5506: fa0f fa8a sxth.w sl, sl - 550a: db49 blt.n 55a0 <_lv_disp_refr_task+0x328> - area_p->y2 >= lv_disp_get_ver_res(disp_refr) ? lv_disp_get_ver_res(disp_refr) - 1 : area_p->y2; - 550c: 6820 ldr r0, [r4, #0] - 550e: 4798 blx r3 - 5510: 3801 subs r0, #1 - lv_coord_t y2 = - 5512: b203 sxth r3, r0 - int32_t max_row = (uint32_t)vdb->size / w; - 5514: 68f2 ldr r2, [r6, #12] - 5516: fbb2 f2f9 udiv r2, r2, r9 - 551a: 4552 cmp r2, sl - 551c: bfa8 it ge - 551e: 4652 movge r2, sl - 5520: 9203 str r2, [sp, #12] - if(disp_refr->driver.rounder_cb) { - 5522: f8d8 2000 ldr.w r2, [r8] - 5526: 6912 ldr r2, [r2, #16] - 5528: 2a00 cmp r2, #0 - 552a: d040 beq.n 55ae <_lv_disp_refr_task+0x336> - tmp.x1 = 0; - 552c: 2200 movs r2, #0 - lv_coord_t h_tmp = max_row; - 552e: f9bd 900c ldrsh.w r9, [sp, #12] - tmp.x1 = 0; - 5532: 9208 str r2, [sp, #32] - tmp.x2 = 0; - 5534: f8ad 2024 strh.w r2, [sp, #36] ; 0x24 - disp_refr->driver.rounder_cb(&disp_refr->driver, &tmp); - 5538: f8d8 0000 ldr.w r0, [r8] - 553c: 9305 str r3, [sp, #20] - tmp.y2 = h_tmp - 1; - 553e: 46ca mov sl, r9 - 5540: f109 39ff add.w r9, r9, #4294967295 ; 0xffffffff - 5544: fa0f f989 sxth.w r9, r9 - disp_refr->driver.rounder_cb(&disp_refr->driver, &tmp); - 5548: 6902 ldr r2, [r0, #16] - tmp.y2 = h_tmp - 1; - 554a: f8ad 9026 strh.w r9, [sp, #38] ; 0x26 - disp_refr->driver.rounder_cb(&disp_refr->driver, &tmp); - 554e: a908 add r1, sp, #32 - 5550: 4790 blx r2 - 5552: f9bd 1026 ldrsh.w r1, [sp, #38] ; 0x26 - 5556: f8bd 2022 ldrh.w r2, [sp, #34] ; 0x22 - if(lv_area_get_height(&tmp) <= max_row) break; - 555a: 9b03 ldr r3, [sp, #12] - 555c: 3101 adds r1, #1 - 555e: 1a8a subs r2, r1, r2 - 5560: b212 sxth r2, r2 - 5562: 4293 cmp r3, r2 - 5564: 9b05 ldr r3, [sp, #20] - 5566: da1e bge.n 55a6 <_lv_disp_refr_task+0x32e> - } while(h_tmp > 0); - 5568: f1b9 0f00 cmp.w r9, #0 - 556c: dce4 bgt.n 5538 <_lv_disp_refr_task+0x2c0> - LV_LOG_WARN("Can't set VDB height using the round function. (Wrong round_cb or to " - 556e: 4b60 ldr r3, [pc, #384] ; (56f0 <_lv_disp_refr_task+0x478>) - 5570: 9300 str r3, [sp, #0] - 5572: 4960 ldr r1, [pc, #384] ; (56f4 <_lv_disp_refr_task+0x47c>) - 5574: 4b60 ldr r3, [pc, #384] ; (56f8 <_lv_disp_refr_task+0x480>) - 5576: 4d61 ldr r5, [pc, #388] ; (56fc <_lv_disp_refr_task+0x484>) - 5578: f44f 72cf mov.w r2, #414 ; 0x19e - 557c: 2002 movs r0, #2 - 557e: 47a8 blx r5 - if(disp_refr->driver.monitor_cb) px_num += lv_area_get_size(&disp_refr->inv_areas[i]); - 5580: f8d8 0000 ldr.w r0, [r8] - 5584: 6983 ldr r3, [r0, #24] - 5586: b143 cbz r3, 559a <_lv_disp_refr_task+0x322> - 5588: 9b04 ldr r3, [sp, #16] - 558a: 4418 add r0, r3 - 558c: 4b5c ldr r3, [pc, #368] ; (5700 <_lv_disp_refr_task+0x488>) - 558e: 4798 blx r3 - 5590: f8d8 3004 ldr.w r3, [r8, #4] - 5594: 4418 add r0, r3 - 5596: f8c8 0004 str.w r0, [r8, #4] - for(i = 0; i < disp_refr->inv_p; i++) { - 559a: f10b 0b01 add.w fp, fp, #1 - 559e: e726 b.n 53ee <_lv_disp_refr_task+0x176> - lv_coord_t y2 = - 55a0: f9b5 304e ldrsh.w r3, [r5, #78] ; 0x4e - 55a4: e7b6 b.n 5514 <_lv_disp_refr_task+0x29c> - if(h_tmp <= 0) { - 55a6: f1ba 0f00 cmp.w sl, #0 - 55aa: dde0 ble.n 556e <_lv_disp_refr_task+0x2f6> - max_row = tmp.y2 + 1; - 55ac: 9103 str r1, [sp, #12] - vdb->area.y2 = row + max_row - 1; - 55ae: f8bd 100c ldrh.w r1, [sp, #12] - for(row = area_p->y1; row + max_row - 1 <= y2; row += max_row) { - 55b2: f9b5 204a ldrsh.w r2, [r5, #74] ; 0x4a - 55b6: 1e48 subs r0, r1, #1 - lv_coord_t row_last = 0; - 55b8: f04f 0900 mov.w r9, #0 - 55bc: 9005 str r0, [sp, #20] - for(row = area_p->y1; row + max_row - 1 <= y2; row += max_row) { - 55be: 9803 ldr r0, [sp, #12] - 55c0: 1810 adds r0, r2, r0 - 55c2: 3801 subs r0, #1 - 55c4: 4298 cmp r0, r3 - 55c6: dd0c ble.n 55e2 <_lv_disp_refr_task+0x36a> - if(y2 != row_last) { - 55c8: 454b cmp r3, r9 - 55ca: d0d9 beq.n 5580 <_lv_disp_refr_task+0x308> - vdb->area.x1 = area_p->x1; - 55cc: f9b5 0048 ldrsh.w r0, [r5, #72] ; 0x48 - if(y2 == row_last) disp_refr->driver.buffer->last_part = 1; - 55d0: 6821 ldr r1, [r4, #0] - vdb->area.x1 = area_p->x1; - 55d2: 8230 strh r0, [r6, #16] - vdb->area.x2 = area_p->x2; - 55d4: f9b5 004c ldrsh.w r0, [r5, #76] ; 0x4c - 55d8: 82b0 strh r0, [r6, #20] - vdb->area.y1 = row; - 55da: 8272 strh r2, [r6, #18] - vdb->area.y2 = y2; - 55dc: 82f3 strh r3, [r6, #22] - disp_refr->driver.buffer->last_part = 1; - 55de: 684a ldr r2, [r1, #4] - 55e0: e744 b.n 546c <_lv_disp_refr_task+0x1f4> - vdb->area.x1 = area_p->x1; - 55e2: f9b5 0048 ldrsh.w r0, [r5, #72] ; 0x48 - 55e6: 8230 strh r0, [r6, #16] - vdb->area.x2 = area_p->x2; - 55e8: f9b5 004c ldrsh.w r0, [r5, #76] ; 0x4c - 55ec: 82b0 strh r0, [r6, #20] - vdb->area.y1 = row; - 55ee: 9805 ldr r0, [sp, #20] - 55f0: 8272 strh r2, [r6, #18] - vdb->area.y2 = row + max_row - 1; - 55f2: fa1f fa82 uxth.w sl, r2 - 55f6: fa10 f282 uxtah r2, r0, r2 - 55fa: b212 sxth r2, r2 - if(vdb->area.y2 > y2) vdb->area.y2 = y2; - 55fc: 4293 cmp r3, r2 - 55fe: 4699 mov r9, r3 - 5600: bfa8 it ge - 5602: 4691 movge r9, r2 - if(y2 == row_last) disp_refr->driver.buffer->last_part = 1; - 5604: 4293 cmp r3, r2 - 5606: f8a6 9016 strh.w r9, [r6, #22] - 560a: dc08 bgt.n 561e <_lv_disp_refr_task+0x3a6> - 560c: f8d8 2000 ldr.w r2, [r8] - 5610: 6850 ldr r0, [r2, #4] - 5612: f890 2020 ldrb.w r2, [r0, #32] - 5616: f042 0202 orr.w r2, r2, #2 - 561a: f880 2020 strb.w r2, [r0, #32] - lv_refr_area_part(area_p); - 561e: 4a39 ldr r2, [pc, #228] ; (5704 <_lv_disp_refr_task+0x48c>) - 5620: ee18 0a10 vmov r0, s16 - 5624: e9cd 3106 strd r3, r1, [sp, #24] - 5628: 4790 blx r2 - for(row = area_p->y1; row + max_row - 1 <= y2; row += max_row) { - 562a: 9907 ldr r1, [sp, #28] - 562c: 9b06 ldr r3, [sp, #24] - 562e: 448a add sl, r1 - 5630: fa0f f28a sxth.w r2, sl - 5634: e7c3 b.n 55be <_lv_disp_refr_task+0x346> - if(lv_disp_is_true_double_buf(disp_refr) && disp_refr->driver.set_px_cb == NULL) { - 5636: 6838 ldr r0, [r7, #0] - 5638: 6943 ldr r3, [r0, #20] - 563a: 2b00 cmp r3, #0 - 563c: f47f ae5a bne.w 52f4 <_lv_disp_refr_task+0x7c> - lv_disp_buf_t * vdb = lv_disp_get_buf(disp_refr); - 5640: 4b31 ldr r3, [pc, #196] ; (5708 <_lv_disp_refr_task+0x490>) - 5642: 4798 blx r3 - lv_refr_vdb_flush(); - 5644: 4b31 ldr r3, [pc, #196] ; (570c <_lv_disp_refr_task+0x494>) - lv_disp_buf_t * vdb = lv_disp_get_buf(disp_refr); - 5646: 4605 mov r5, r0 - lv_refr_vdb_flush(); - 5648: 4798 blx r3 - while(vdb->flushing) - 564a: 69ab ldr r3, [r5, #24] - 564c: 2b00 cmp r3, #0 - 564e: d1fc bne.n 564a <_lv_disp_refr_task+0x3d2> - uint8_t * buf_ina = (uint8_t *)vdb->buf_act == vdb->buf1 ? vdb->buf2 : vdb->buf1; - 5650: f8d5 9000 ldr.w r9, [r5] - uint8_t * buf_act = (uint8_t *)vdb->buf_act; - 5654: f8d5 b008 ldr.w fp, [r5, #8] - lv_coord_t hres = lv_disp_get_hor_res(disp_refr); - 5658: 4b2d ldr r3, [pc, #180] ; (5710 <_lv_disp_refr_task+0x498>) - 565a: 6838 ldr r0, [r7, #0] - uint8_t * buf_ina = (uint8_t *)vdb->buf_act == vdb->buf1 ? vdb->buf2 : vdb->buf1; - 565c: 45d9 cmp r9, fp - 565e: bf08 it eq - 5660: f8d5 9004 ldreq.w r9, [r5, #4] - lv_coord_t hres = lv_disp_get_hor_res(disp_refr); - 5664: 4798 blx r3 - for(a = 0; a < disp_refr->inv_p; a++) { - 5666: 2500 movs r5, #0 - lv_coord_t hres = lv_disp_get_hor_res(disp_refr); - 5668: 4680 mov r8, r0 - start_offs += hres * sizeof(lv_color_t); - 566a: 0043 lsls r3, r0, #1 - for(a = 0; a < disp_refr->inv_p; a++) { - 566c: 683a ldr r2, [r7, #0] - 566e: f8b2 1168 ldrh.w r1, [r2, #360] ; 0x168 - 5672: b2a8 uxth r0, r5 - 5674: f3c1 0109 ubfx r1, r1, #0, #10 - 5678: 4281 cmp r1, r0 - 567a: f67f ae3b bls.w 52f4 <_lv_disp_refr_task+0x7c> - if(disp_refr->inv_area_joined[a] == 0) { - 567e: 1951 adds r1, r2, r5 - 5680: f891 1148 ldrb.w r1, [r1, #328] ; 0x148 - 5684: b109 cbz r1, 568a <_lv_disp_refr_task+0x412> - for(a = 0; a < disp_refr->inv_p; a++) { - 5686: 3501 adds r5, #1 - 5688: e7f0 b.n 566c <_lv_disp_refr_task+0x3f4> - uint32_t start_offs = - 568a: eb02 02c5 add.w r2, r2, r5, lsl #3 - (hres * disp_refr->inv_areas[a].y1 + disp_refr->inv_areas[a].x1) * sizeof(lv_color_t); - 568e: f9b2 0048 ldrsh.w r0, [r2, #72] ; 0x48 - 5692: f9b2 604a ldrsh.w r6, [r2, #74] ; 0x4a - return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - 5696: f8b2 204c ldrh.w r2, [r2, #76] ; 0x4c - 569a: 3201 adds r2, #1 - 569c: fb08 0106 mla r1, r8, r6, r0 - 56a0: 1a12 subs r2, r2, r0 - for(y = disp_refr->inv_areas[a].y1; y <= disp_refr->inv_areas[a].y2; y++) { - 56a2: f105 0009 add.w r0, r5, #9 - uint32_t line_length = lv_area_get_width(&disp_refr->inv_areas[a]) * sizeof(lv_color_t); - 56a6: b212 sxth r2, r2 - for(y = disp_refr->inv_areas[a].y1; y <= disp_refr->inv_areas[a].y2; y++) { - 56a8: 00c0 lsls r0, r0, #3 - 56aa: eb0b 0a41 add.w sl, fp, r1, lsl #1 - uint32_t line_length = lv_area_get_width(&disp_refr->inv_areas[a]) * sizeof(lv_color_t); - 56ae: ea4f 0c42 mov.w ip, r2, lsl #1 - for(y = disp_refr->inv_areas[a].y1; y <= disp_refr->inv_areas[a].y2; y++) { - 56b2: eb09 0141 add.w r1, r9, r1, lsl #1 - 56b6: 9003 str r0, [sp, #12] - 56b8: 6838 ldr r0, [r7, #0] - 56ba: 9a03 ldr r2, [sp, #12] - 56bc: 4410 add r0, r2 - 56be: f9b0 0006 ldrsh.w r0, [r0, #6] - 56c2: 42b0 cmp r0, r6 - 56c4: dbdf blt.n 5686 <_lv_disp_refr_task+0x40e> - 56c6: 9306 str r3, [sp, #24] - _lv_memcpy(buf_act + start_offs, buf_ina + start_offs, line_length); - 56c8: 4662 mov r2, ip - 56ca: 4b12 ldr r3, [pc, #72] ; (5714 <_lv_disp_refr_task+0x49c>) - 56cc: 4650 mov r0, sl - 56ce: e9cd 1c04 strd r1, ip, [sp, #16] - 56d2: 4798 blx r3 - for(y = disp_refr->inv_areas[a].y1; y <= disp_refr->inv_areas[a].y2; y++) { - 56d4: 9b06 ldr r3, [sp, #24] - 56d6: 9904 ldr r1, [sp, #16] - 56d8: f8dd c014 ldr.w ip, [sp, #20] - 56dc: 3601 adds r6, #1 - 56de: b236 sxth r6, r6 - 56e0: 449a add sl, r3 - 56e2: 4419 add r1, r3 - 56e4: e7e8 b.n 56b8 <_lv_disp_refr_task+0x440> - disp_refr->driver.monitor_cb(&disp_refr->driver, elaps, px_num); - 56e6: 6862 ldr r2, [r4, #4] - 56e8: 4798 blx r3 - 56ea: e61f b.n 532c <_lv_disp_refr_task+0xb4> - 56ec: 0000dbb1 .word 0x0000dbb1 - 56f0: 0002720d .word 0x0002720d - 56f4: 000271dd .word 0x000271dd - 56f8: 0002725d .word 0x0002725d - 56fc: 0000eb79 .word 0x0000eb79 - 5700: 0000e0f5 .word 0x0000e0f5 - 5704: 000050e1 .word 0x000050e1 - 5708: 0000dc65 .word 0x0000dc65 - 570c: 00004e9d .word 0x00004e9d - 5710: 0000db8d .word 0x0000db8d - 5714: 0000eec1 .word 0x0000eec1 - -00005718 : - if(list->has_trans && list->skip_trans) id++; - 5718: 7943 ldrb r3, [r0, #5] - 571a: f003 0306 and.w r3, r3, #6 - 571e: 2b06 cmp r3, #6 - 5720: bf08 it eq - 5722: 3101 addeq r1, #1 - if(list->style_cnt == 0 || id >= list->style_cnt) return NULL; - 5724: 7903 ldrb r3, [r0, #4] - if(list->has_trans && list->skip_trans) id++; - 5726: bf08 it eq - 5728: b2c9 uxtbeq r1, r1 - if(list->style_cnt == 0 || id >= list->style_cnt) return NULL; - 572a: 428b cmp r3, r1 - return list->style_list[id]; - 572c: bf86 itte hi - 572e: 6803 ldrhi r3, [r0, #0] - 5730: f853 0021 ldrhi.w r0, [r3, r1, lsl #2] - if(list->style_cnt == 0 || id >= list->style_cnt) return NULL; - 5734: 2000 movls r0, #0 -} - 5736: 4770 bx lr - -00005738 : - * @param style pointer to a style - * @param prop a style property ORed with a state. - * E.g. `LV_STYLE_TEXT_FONT | (LV_STATE_PRESSED << LV_STYLE_STATE_POS)` - * @return - */ -LV_ATTRIBUTE_FAST_MEM static inline int32_t get_property_index(const lv_style_t * style, lv_style_property_t prop) - 5738: b5f0 push {r4, r5, r6, r7, lr} -{ - LV_ASSERT_STYLE(style); - - if(style->map == NULL) return -1; - 573a: b378 cbz r0, 579c - uint8_t id_to_find = prop & 0xFF; - lv_style_attr_t attr; - attr.full = (prop >> 8) & 0xFF; - - int16_t weight = -1; - int16_t id_guess = -1; - 573c: f04f 35ff mov.w r5, #4294967295 ; 0xffffffff - uint8_t id_to_find = prop & 0xFF; - 5740: b2cf uxtb r7, r1 - attr.full = (prop >> 8) & 0xFF; - 5742: ea4f 2c11 mov.w ip, r1, lsr #8 - - size_t i = 0; - 5746: 2300 movs r3, #0 - int16_t weight = -1; - 5748: 462e mov r6, r5 - if(attr_i.bits.state == attr.bits.state) { - return i; - } - /* Be sure the property not specifies other state than the requested. - * E.g. For HOVER+PRESS, HOVER only is OK, but HOVER+FOCUS not*/ - else if((attr_i.bits.state & (~attr.bits.state)) == 0) { - 574a: f3c1 2106 ubfx r1, r1, #8, #7 - while(style->map[i] != _LV_STYLE_CLOSEING_PROP) { - 574e: 5cc2 ldrb r2, [r0, r3] - 5750: 2aff cmp r2, #255 ; 0xff - 5752: d101 bne.n 5758 - else i += sizeof(const void *); - - i += sizeof(lv_style_property_t); - } - - return id_guess; - 5754: 4628 mov r0, r5 - 5756: e009 b.n 576c - if(style->map[i] == id_to_find) { - 5758: 4297 cmp r7, r2 - 575a: d111 bne.n 5780 - attr_i.full = style->map[i + 1]; - 575c: 18c4 adds r4, r0, r3 - 575e: 7864 ldrb r4, [r4, #1] - if(attr_i.bits.state == attr.bits.state) { - 5760: ea8c 0e04 eor.w lr, ip, r4 - 5764: f01e 0f7f tst.w lr, #127 ; 0x7f - 5768: d101 bne.n 576e - return i; - 576a: 4618 mov r0, r3 -} - 576c: bdf0 pop {r4, r5, r6, r7, pc} - else if((attr_i.bits.state & (~attr.bits.state)) == 0) { - 576e: f004 047f and.w r4, r4, #127 ; 0x7f - 5772: ea34 0e01 bics.w lr, r4, r1 - 5776: d103 bne.n 5780 - if(attr_i.bits.state > weight) { - 5778: 42b4 cmp r4, r6 - weight = attr_i.bits.state; - 577a: bfc4 itt gt - 577c: b226 sxthgt r6, r4 - id_guess = i; - 577e: b21d sxthgt r5, r3 - if((style->map[i] & 0xF) < LV_STYLE_ID_COLOR) i += sizeof(lv_style_int_t); - 5780: f002 020f and.w r2, r2, #15 - 5784: 2a08 cmp r2, #8 - 5786: d802 bhi.n 578e - else if((style->map[i] & 0xF) < LV_STYLE_ID_OPA) i += sizeof(lv_color_t); - 5788: 3302 adds r3, #2 - i += sizeof(lv_style_property_t); - 578a: 3302 adds r3, #2 - 578c: e7df b.n 574e - else if((style->map[i] & 0xF) < LV_STYLE_ID_OPA) i += sizeof(lv_color_t); - 578e: 2a0b cmp r2, #11 - 5790: d9fa bls.n 5788 - else if((style->map[i] & 0xF) < LV_STYLE_ID_PTR) i += sizeof(lv_opa_t); - 5792: 2a0d cmp r2, #13 - 5794: bf94 ite ls - 5796: 3301 addls r3, #1 - else i += sizeof(const void *); - 5798: 3304 addhi r3, #4 - 579a: e7f6 b.n 578a - if(style->map == NULL) return -1; - 579c: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff - 57a0: e7e4 b.n 576c - -000057a2 <_lv_memcpy_small.isra.0>: - 57a2: 3901 subs r1, #1 - 57a4: 4402 add r2, r0 - *d8 = *s8; - 57a6: f811 3f01 ldrb.w r3, [r1, #1]! - 57aa: f800 3b01 strb.w r3, [r0], #1 - while(len) { - 57ae: 4290 cmp r0, r2 - 57b0: d1f9 bne.n 57a6 <_lv_memcpy_small.isra.0+0x4> - s8++; - len--; - } - - return dst; -} - 57b2: 4770 bx lr - -000057b4 : - _lv_memset_00(style, sizeof(lv_style_t)); - 57b4: 4b01 ldr r3, [pc, #4] ; (57bc ) - 57b6: 2104 movs r1, #4 - 57b8: 4718 bx r3 - 57ba: bf00 nop - 57bc: 0000f2a9 .word 0x0000f2a9 - -000057c0 : - _lv_memset_00(list, sizeof(lv_style_list_t)); - 57c0: 4b01 ldr r3, [pc, #4] ; (57c8 ) - 57c2: 2108 movs r1, #8 - 57c4: 4718 bx r3 - 57c6: bf00 nop - 57c8: 0000f2a9 .word 0x0000f2a9 - -000057cc <_lv_style_list_remove_style>: -{ - 57cc: b5f7 push {r0, r1, r2, r4, r5, r6, r7, lr} - if(list->style_cnt == 0) return; - 57ce: 7903 ldrb r3, [r0, #4] -{ - 57d0: 4604 mov r4, r0 - 57d2: 460e mov r6, r1 - if(list->style_cnt == 0) return; - 57d4: b14b cbz r3, 57ea <_lv_style_list_remove_style+0x1e> - if(list->style_list[i] == style) { - 57d6: 6800 ldr r0, [r0, #0] - 57d8: 2200 movs r2, #0 - 57da: f850 1022 ldr.w r1, [r0, r2, lsl #2] - 57de: 42b1 cmp r1, r6 - 57e0: d03c beq.n 585c <_lv_style_list_remove_style+0x90> - for(i = 0; i < list->style_cnt; i++) { - 57e2: 3201 adds r2, #1 - 57e4: b2d1 uxtb r1, r2 - 57e6: 428b cmp r3, r1 - 57e8: d8f7 bhi.n 57da <_lv_style_list_remove_style+0xe> -} - 57ea: b003 add sp, #12 - 57ec: bdf0 pop {r4, r5, r6, r7, pc} - lv_style_t ** new_classes = lv_mem_realloc(list->style_list, sizeof(lv_style_t *) * (list->style_cnt - 1)); - 57ee: 3b01 subs r3, #1 - 57f0: 0099 lsls r1, r3, #2 - 57f2: 4b21 ldr r3, [pc, #132] ; (5878 <_lv_style_list_remove_style+0xac>) - 57f4: 4798 blx r3 - LV_ASSERT_MEM(new_classes); - 57f6: 4b21 ldr r3, [pc, #132] ; (587c <_lv_style_list_remove_style+0xb0>) - lv_style_t ** new_classes = lv_mem_realloc(list->style_list, sizeof(lv_style_t *) * (list->style_cnt - 1)); - 57f8: 4605 mov r5, r0 - LV_ASSERT_MEM(new_classes); - 57fa: 4798 blx r3 - 57fc: 4607 mov r7, r0 - 57fe: b968 cbnz r0, 581c <_lv_style_list_remove_style+0x50> - 5800: 4b1f ldr r3, [pc, #124] ; (5880 <_lv_style_list_remove_style+0xb4>) - 5802: 4920 ldr r1, [pc, #128] ; (5884 <_lv_style_list_remove_style+0xb8>) - 5804: 9300 str r3, [sp, #0] - 5806: f44f 7282 mov.w r2, #260 ; 0x104 - 580a: 2003 movs r0, #3 - 580c: 4c1e ldr r4, [pc, #120] ; (5888 <_lv_style_list_remove_style+0xbc>) - 580e: 47a0 blx r4 - 5810: 481e ldr r0, [pc, #120] ; (588c <_lv_style_list_remove_style+0xc0>) - 5812: 491f ldr r1, [pc, #124] ; (5890 <_lv_style_list_remove_style+0xc4>) - 5814: 462a mov r2, r5 - 5816: 463b mov r3, r7 - 5818: 4788 blx r1 - 581a: e7fe b.n 581a <_lv_style_list_remove_style+0x4e> - if(new_classes == NULL) { - 581c: b14d cbz r5, 5832 <_lv_style_list_remove_style+0x66> - for(i = 0, j = 0; i < list->style_cnt; i++) { - 581e: 2300 movs r3, #0 - 5820: 7921 ldrb r1, [r4, #4] - 5822: 461a mov r2, r3 - 5824: b2d8 uxtb r0, r3 - 5826: 4288 cmp r0, r1 - 5828: d30d bcc.n 5846 <_lv_style_list_remove_style+0x7a> - list->style_cnt--; - 582a: 3901 subs r1, #1 - 582c: 7121 strb r1, [r4, #4] - list->style_list = new_classes; - 582e: 6025 str r5, [r4, #0] - 5830: e7db b.n 57ea <_lv_style_list_remove_style+0x1e> - LV_LOG_WARN("lv_style_list_remove_style: couldn't reallocate class list"); - 5832: 4b18 ldr r3, [pc, #96] ; (5894 <_lv_style_list_remove_style+0xc8>) - 5834: 9300 str r3, [sp, #0] - 5836: 4913 ldr r1, [pc, #76] ; (5884 <_lv_style_list_remove_style+0xb8>) - 5838: 4b11 ldr r3, [pc, #68] ; (5880 <_lv_style_list_remove_style+0xb4>) - 583a: 4c13 ldr r4, [pc, #76] ; (5888 <_lv_style_list_remove_style+0xbc>) - 583c: f44f 7283 mov.w r2, #262 ; 0x106 - 5840: 2002 movs r0, #2 - 5842: 47a0 blx r4 - return; - 5844: e7d1 b.n 57ea <_lv_style_list_remove_style+0x1e> - if(list->style_list[i] == style) continue; - 5846: 6820 ldr r0, [r4, #0] - 5848: f850 0023 ldr.w r0, [r0, r3, lsl #2] - 584c: 42b0 cmp r0, r6 - new_classes[j] = list->style_list[i]; - 584e: bf1e ittt ne - 5850: f845 0022 strne.w r0, [r5, r2, lsl #2] - j++; - 5854: 3201 addne r2, #1 - 5856: b2d2 uxtbne r2, r2 - for(i = 0, j = 0; i < list->style_cnt; i++) { - 5858: 3301 adds r3, #1 - 585a: e7e3 b.n 5824 <_lv_style_list_remove_style+0x58> - if(list->style_cnt == 1) { - 585c: 2b01 cmp r3, #1 - 585e: d1c6 bne.n 57ee <_lv_style_list_remove_style+0x22> - lv_mem_free(list->style_list); - 5860: 4b0d ldr r3, [pc, #52] ; (5898 <_lv_style_list_remove_style+0xcc>) - 5862: 4798 blx r3 - list->style_list = NULL; - 5864: 2300 movs r3, #0 - 5866: 6023 str r3, [r4, #0] - list->style_cnt = 0; - 5868: 88a3 ldrh r3, [r4, #4] - 586a: f423 73ff bic.w r3, r3, #510 ; 0x1fe - 586e: f023 0301 bic.w r3, r3, #1 - 5872: 80a3 strh r3, [r4, #4] - return; - 5874: e7b9 b.n 57ea <_lv_style_list_remove_style+0x1e> - 5876: bf00 nop - 5878: 0000f0a5 .word 0x0000f0a5 - 587c: 00001a65 .word 0x00001a65 - 5880: 00027373 .word 0x00027373 - 5884: 0002726a .word 0x0002726a - 5888: 0000eb79 .word 0x0000eb79 - 588c: 00026842 .word 0x00026842 - 5890: 00001a6d .word 0x00001a6d - 5894: 0002729b .word 0x0002729b - 5898: 0000ed75 .word 0x0000ed75 - -0000589c <_lv_style_list_add_style>: -{ - 589c: e92d 41f3 stmdb sp!, {r0, r1, r4, r5, r6, r7, r8, lr} - 58a0: 460f mov r7, r1 - if(list == NULL) return; - 58a2: 4605 mov r5, r0 - 58a4: b338 cbz r0, 58f6 <_lv_style_list_add_style+0x5a> - _lv_style_list_remove_style(list, style); - 58a6: 4b29 ldr r3, [pc, #164] ; (594c <_lv_style_list_add_style+0xb0>) - 58a8: 4798 blx r3 - if(list->style_cnt == 0) new_classes = lv_mem_alloc(sizeof(lv_style_t *)); - 58aa: 7929 ldrb r1, [r5, #4] - 58ac: b9a1 cbnz r1, 58d8 <_lv_style_list_add_style+0x3c> - 58ae: 4b28 ldr r3, [pc, #160] ; (5950 <_lv_style_list_add_style+0xb4>) - 58b0: 2004 movs r0, #4 - 58b2: 4798 blx r3 - LV_ASSERT_MEM(new_classes); - 58b4: 4b27 ldr r3, [pc, #156] ; (5954 <_lv_style_list_add_style+0xb8>) - else new_classes = lv_mem_realloc(list->style_list, sizeof(lv_style_t *) * (list->style_cnt + 1)); - 58b6: 4604 mov r4, r0 - LV_ASSERT_MEM(new_classes); - 58b8: 4798 blx r3 - 58ba: 4606 mov r6, r0 - 58bc: b990 cbnz r0, 58e4 <_lv_style_list_add_style+0x48> - 58be: 4b26 ldr r3, [pc, #152] ; (5958 <_lv_style_list_add_style+0xbc>) - 58c0: 4926 ldr r1, [pc, #152] ; (595c <_lv_style_list_add_style+0xc0>) - 58c2: 9300 str r3, [sp, #0] - 58c4: 22d0 movs r2, #208 ; 0xd0 - 58c6: 2003 movs r0, #3 - 58c8: 4d25 ldr r5, [pc, #148] ; (5960 <_lv_style_list_add_style+0xc4>) - 58ca: 47a8 blx r5 - 58cc: 4825 ldr r0, [pc, #148] ; (5964 <_lv_style_list_add_style+0xc8>) - 58ce: 4926 ldr r1, [pc, #152] ; (5968 <_lv_style_list_add_style+0xcc>) - 58d0: 4622 mov r2, r4 - 58d2: 4633 mov r3, r6 - 58d4: 4788 blx r1 - 58d6: e7fe b.n 58d6 <_lv_style_list_add_style+0x3a> - else new_classes = lv_mem_realloc(list->style_list, sizeof(lv_style_t *) * (list->style_cnt + 1)); - 58d8: 3101 adds r1, #1 - 58da: 6828 ldr r0, [r5, #0] - 58dc: 4b23 ldr r3, [pc, #140] ; (596c <_lv_style_list_add_style+0xd0>) - 58de: 0089 lsls r1, r1, #2 - 58e0: 4798 blx r3 - 58e2: e7e7 b.n 58b4 <_lv_style_list_add_style+0x18> - if(new_classes == NULL) { - 58e4: b954 cbnz r4, 58fc <_lv_style_list_add_style+0x60> - LV_LOG_WARN("lv_style_list_add_style: couldn't add the class"); - 58e6: 4b22 ldr r3, [pc, #136] ; (5970 <_lv_style_list_add_style+0xd4>) - 58e8: 9300 str r3, [sp, #0] - 58ea: 491c ldr r1, [pc, #112] ; (595c <_lv_style_list_add_style+0xc0>) - 58ec: 4b1a ldr r3, [pc, #104] ; (5958 <_lv_style_list_add_style+0xbc>) - 58ee: 4c1c ldr r4, [pc, #112] ; (5960 <_lv_style_list_add_style+0xc4>) - 58f0: 22d2 movs r2, #210 ; 0xd2 - 58f2: 2002 movs r0, #2 - 58f4: 47a0 blx r4 -} - 58f6: b002 add sp, #8 - 58f8: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} - if(list->has_trans) first_style++; - 58fc: 796b ldrb r3, [r5, #5] - for(i = list->style_cnt; i > first_style; i--) { - 58fe: 792e ldrb r6, [r5, #4] - uint8_t first_style = 0; - 5900: f3c3 0840 ubfx r8, r3, #1, #1 - if(list->has_local) first_style++; - 5904: 07db lsls r3, r3, #31 - 5906: bf48 it mi - 5908: f108 0801 addmi.w r8, r8, #1 - new_classes[i] = new_classes[i - 1]; - 590c: eba6 0208 sub.w r2, r6, r8 - 5910: b2d2 uxtb r2, r2 - 5912: 4546 cmp r6, r8 - 5914: f1c2 0001 rsb r0, r2, #1 - 5918: f106 4180 add.w r1, r6, #1073741824 ; 0x40000000 - 591c: ea4f 0080 mov.w r0, r0, lsl #2 - 5920: f101 31ff add.w r1, r1, #4294967295 ; 0xffffffff - 5924: bf38 it cc - 5926: 2004 movcc r0, #4 - 5928: eb00 0181 add.w r1, r0, r1, lsl #2 - 592c: eb00 0086 add.w r0, r0, r6, lsl #2 - 5930: ea4f 0282 mov.w r2, r2, lsl #2 - 5934: 4b0f ldr r3, [pc, #60] ; (5974 <_lv_style_list_add_style+0xd8>) - 5936: bf38 it cc - 5938: 2200 movcc r2, #0 - 593a: 4421 add r1, r4 - 593c: 4420 add r0, r4 - list->style_cnt++; - 593e: 3601 adds r6, #1 - new_classes[i] = new_classes[i - 1]; - 5940: 4798 blx r3 - new_classes[first_style] = style; - 5942: f844 7028 str.w r7, [r4, r8, lsl #2] - list->style_cnt++; - 5946: 712e strb r6, [r5, #4] - list->style_list = new_classes; - 5948: 602c str r4, [r5, #0] - 594a: e7d4 b.n 58f6 <_lv_style_list_add_style+0x5a> - 594c: 000057cd .word 0x000057cd - 5950: 0000ecbd .word 0x0000ecbd - 5954: 00001a65 .word 0x00001a65 - 5958: 0002738f .word 0x0002738f - 595c: 0002726a .word 0x0002726a - 5960: 0000eb79 .word 0x0000eb79 - 5964: 00026842 .word 0x00026842 - 5968: 00001a6d .word 0x00001a6d - 596c: 0000f0a5 .word 0x0000f0a5 - 5970: 000272d6 .word 0x000272d6 - 5974: 00016e59 .word 0x00016e59 - -00005978 : - */ -static lv_style_t * get_alloc_local_style(lv_style_list_t * list) -{ - LV_ASSERT_STYLE_LIST(list); - - if(list->has_local) return lv_style_list_get_style(list, 0); - 5978: 7943 ldrb r3, [r0, #5] - 597a: 07db lsls r3, r3, #31 -{ - 597c: b573 push {r0, r1, r4, r5, r6, lr} - 597e: 4605 mov r5, r0 - if(list->has_local) return lv_style_list_get_style(list, 0); - 5980: d505 bpl.n 598e - 5982: 4b1a ldr r3, [pc, #104] ; (59ec ) - 5984: 2100 movs r1, #0 - /*Add the local style to the furst place*/ - _lv_style_list_add_style(list, local_style); - list->has_local = 1; - - return local_style; -} - 5986: b002 add sp, #8 - 5988: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr} - if(list->has_local) return lv_style_list_get_style(list, 0); - 598c: 4718 bx r3 - lv_style_t * local_style = lv_mem_alloc(sizeof(lv_style_t)); - 598e: 4b18 ldr r3, [pc, #96] ; (59f0 ) - 5990: 2004 movs r0, #4 - 5992: 4798 blx r3 - LV_ASSERT_MEM(local_style); - 5994: 4b17 ldr r3, [pc, #92] ; (59f4 ) - lv_style_t * local_style = lv_mem_alloc(sizeof(lv_style_t)); - 5996: 4604 mov r4, r0 - LV_ASSERT_MEM(local_style); - 5998: 4798 blx r3 - 599a: 4606 mov r6, r0 - 599c: b968 cbnz r0, 59ba - 599e: 4b16 ldr r3, [pc, #88] ; (59f8 ) - 59a0: 4916 ldr r1, [pc, #88] ; (59fc ) - 59a2: 9300 str r3, [sp, #0] - 59a4: f240 4235 movw r2, #1077 ; 0x435 - 59a8: 2003 movs r0, #3 - 59aa: 4d15 ldr r5, [pc, #84] ; (5a00 ) - 59ac: 47a8 blx r5 - 59ae: 4815 ldr r0, [pc, #84] ; (5a04 ) - 59b0: 4915 ldr r1, [pc, #84] ; (5a08 ) - 59b2: 4622 mov r2, r4 - 59b4: 4633 mov r3, r6 - 59b6: 4788 blx r1 - 59b8: e7fe b.n 59b8 - if(local_style == NULL) { - 59ba: b95c cbnz r4, 59d4 - LV_LOG_WARN("get_local_style: couldn't create local style"); - 59bc: 4b13 ldr r3, [pc, #76] ; (5a0c ) - 59be: 9300 str r3, [sp, #0] - 59c0: 490e ldr r1, [pc, #56] ; (59fc ) - 59c2: 4b0d ldr r3, [pc, #52] ; (59f8 ) - 59c4: 4d0e ldr r5, [pc, #56] ; (5a00 ) - 59c6: f240 4237 movw r2, #1079 ; 0x437 - 59ca: 2002 movs r0, #2 - 59cc: 47a8 blx r5 -} - 59ce: 4620 mov r0, r4 - 59d0: b002 add sp, #8 - 59d2: bd70 pop {r4, r5, r6, pc} - lv_style_init(local_style); - 59d4: 4b0e ldr r3, [pc, #56] ; (5a10 ) - 59d6: 4620 mov r0, r4 - 59d8: 4798 blx r3 - _lv_style_list_add_style(list, local_style); - 59da: 4b0e ldr r3, [pc, #56] ; (5a14 ) - 59dc: 4621 mov r1, r4 - 59de: 4628 mov r0, r5 - 59e0: 4798 blx r3 - list->has_local = 1; - 59e2: 796b ldrb r3, [r5, #5] - 59e4: f043 0301 orr.w r3, r3, #1 - 59e8: 716b strb r3, [r5, #5] - return local_style; - 59ea: e7f0 b.n 59ce - 59ec: 00005719 .word 0x00005719 - 59f0: 0000ecbd .word 0x0000ecbd - 59f4: 00001a65 .word 0x00001a65 - 59f8: 000273a8 .word 0x000273a8 - 59fc: 0002726a .word 0x0002726a - 5a00: 0000eb79 .word 0x0000eb79 - 5a04: 00026842 .word 0x00026842 - 5a08: 00001a6d .word 0x00001a6d - 5a0c: 00027306 .word 0x00027306 - 5a10: 000057b5 .word 0x000057b5 - 5a14: 0000589d .word 0x0000589d - -00005a18 : -{ - 5a18: b510 push {r4, lr} - lv_mem_free(style->map); - 5a1a: 4b03 ldr r3, [pc, #12] ; (5a28 ) -{ - 5a1c: 4604 mov r4, r0 - lv_mem_free(style->map); - 5a1e: 6800 ldr r0, [r0, #0] - 5a20: 4798 blx r3 - style->map = NULL; - 5a22: 2300 movs r3, #0 - 5a24: 6023 str r3, [r4, #0] -} - 5a26: bd10 pop {r4, pc} - 5a28: 0000ed75 .word 0x0000ed75 - -00005a2c <_lv_style_get_mem_size>: - if(style->map == NULL) return 0; - 5a2c: 6800 ldr r0, [r0, #0] - 5a2e: b128 cbz r0, 5a3c <_lv_style_get_mem_size+0x10> - size_t i = 0; - 5a30: 2300 movs r3, #0 - while(style->map[i] != _LV_STYLE_CLOSEING_PROP) { - 5a32: 5cc2 ldrb r2, [r0, r3] - 5a34: 2aff cmp r2, #255 ; 0xff - 5a36: d102 bne.n 5a3e <_lv_style_get_mem_size+0x12> - return i + sizeof(lv_style_property_t); - 5a38: 3302 adds r3, #2 - 5a3a: b298 uxth r0, r3 -} - 5a3c: 4770 bx lr - if((style->map[i] & 0xF) < LV_STYLE_ID_COLOR) i += sizeof(lv_style_int_t); - 5a3e: f002 020f and.w r2, r2, #15 - 5a42: 2a08 cmp r2, #8 - 5a44: d802 bhi.n 5a4c <_lv_style_get_mem_size+0x20> - else if((style->map[i] & 0xF) < LV_STYLE_ID_OPA) i += sizeof(lv_color_t); - 5a46: 3302 adds r3, #2 - i += sizeof(lv_style_property_t); - 5a48: 3302 adds r3, #2 - 5a4a: e7f2 b.n 5a32 <_lv_style_get_mem_size+0x6> - else if((style->map[i] & 0xF) < LV_STYLE_ID_OPA) i += sizeof(lv_color_t); - 5a4c: 2a0b cmp r2, #11 - 5a4e: d9fa bls.n 5a46 <_lv_style_get_mem_size+0x1a> - else if((style->map[i] & 0xF) < LV_STYLE_ID_PTR) i += sizeof(lv_opa_t); - 5a50: 2a0d cmp r2, #13 - 5a52: bf94 ite ls - 5a54: 3301 addls r3, #1 - else i += sizeof(const void *); - 5a56: 3304 addhi r3, #4 - 5a58: e7f6 b.n 5a48 <_lv_style_get_mem_size+0x1c> - ... - -00005a5c : -{ - 5a5c: b537 push {r0, r1, r2, r4, r5, lr} - 5a5e: 4605 mov r5, r0 - if(style_src == NULL) return; - 5a60: 460c mov r4, r1 - 5a62: b179 cbz r1, 5a84 - if(style_src->map == NULL) return; - 5a64: 680b ldr r3, [r1, #0] - 5a66: b16b cbz r3, 5a84 - uint16_t size = _lv_style_get_mem_size(style_src); - 5a68: 4608 mov r0, r1 - 5a6a: 4b07 ldr r3, [pc, #28] ; (5a88 ) - 5a6c: 4798 blx r3 - style_dest->map = lv_mem_alloc(size); - 5a6e: 4b07 ldr r3, [pc, #28] ; (5a8c ) - uint16_t size = _lv_style_get_mem_size(style_src); - 5a70: 9001 str r0, [sp, #4] - style_dest->map = lv_mem_alloc(size); - 5a72: 4798 blx r3 - 5a74: 6028 str r0, [r5, #0] - _lv_memcpy(style_dest->map, style_src->map, size); - 5a76: 9a01 ldr r2, [sp, #4] - 5a78: 6821 ldr r1, [r4, #0] - 5a7a: 4b05 ldr r3, [pc, #20] ; (5a90 ) -} - 5a7c: b003 add sp, #12 - 5a7e: e8bd 4030 ldmia.w sp!, {r4, r5, lr} - _lv_memcpy(style_dest->map, style_src->map, size); - 5a82: 4718 bx r3 -} - 5a84: b003 add sp, #12 - 5a86: bd30 pop {r4, r5, pc} - 5a88: 00005a2d .word 0x00005a2d - 5a8c: 0000ecbd .word 0x0000ecbd - 5a90: 0000eec1 .word 0x0000eec1 - -00005a94 : -{ - 5a94: b5f8 push {r3, r4, r5, r6, r7, lr} - 5a96: 460f mov r7, r1 - if(style == NULL) return false; - 5a98: 4604 mov r4, r0 - 5a9a: b330 cbz r0, 5aea - int32_t id = get_property_index(style, prop); - 5a9c: 6806 ldr r6, [r0, #0] - 5a9e: 4b14 ldr r3, [pc, #80] ; (5af0 ) - 5aa0: 4630 mov r0, r6 - 5aa2: 4798 blx r3 - if(id >= 0) { - 5aa4: 1e05 subs r5, r0, #0 - 5aa6: db20 blt.n 5aea - attr_found.full = *(style->map + id + 1); - 5aa8: 442e add r6, r5 - if(attr_found.bits.state == attr_goal.bits.state) { - 5aaa: 7873 ldrb r3, [r6, #1] - 5aac: ea83 2317 eor.w r3, r3, r7, lsr #8 - 5ab0: 065b lsls r3, r3, #25 - 5ab2: d11a bne.n 5aea - uint32_t map_size = _lv_style_get_mem_size(style); - 5ab4: 4b0f ldr r3, [pc, #60] ; (5af4 ) - 5ab6: 4620 mov r0, r4 - 5ab8: f007 010f and.w r1, r7, #15 - 5abc: 4798 blx r3 - else if((prop & 0xF) < LV_STYLE_ID_OPA) prop_size += sizeof(lv_color_t); - 5abe: 290b cmp r1, #11 - 5ac0: d90c bls.n 5adc - else prop_size += sizeof(const void *); - 5ac2: 290e cmp r1, #14 - 5ac4: bf34 ite cc - 5ac6: 2303 movcc r3, #3 - 5ac8: 2306 movcs r3, #6 - for(i = id; i < map_size - prop_size; i++) { - 5aca: 1ac1 subs r1, r0, r3 - 5acc: 42a9 cmp r1, r5 - style->map[i] = style->map[i + prop_size]; - 5ace: 6820 ldr r0, [r4, #0] - for(i = id; i < map_size - prop_size; i++) { - 5ad0: d806 bhi.n 5ae0 - style->map = lv_mem_realloc(style->map, map_size - prop_size); - 5ad2: 4b09 ldr r3, [pc, #36] ; (5af8 ) - 5ad4: 4798 blx r3 - 5ad6: 6020 str r0, [r4, #0] - return true; - 5ad8: 2001 movs r0, #1 -} - 5ada: bdf8 pop {r3, r4, r5, r6, r7, pc} - else if((prop & 0xF) < LV_STYLE_ID_OPA) prop_size += sizeof(lv_color_t); - 5adc: 2304 movs r3, #4 - 5ade: e7f4 b.n 5aca - style->map[i] = style->map[i + prop_size]; - 5ae0: 1942 adds r2, r0, r5 - 5ae2: 5cd2 ldrb r2, [r2, r3] - 5ae4: 5542 strb r2, [r0, r5] - for(i = id; i < map_size - prop_size; i++) { - 5ae6: 3501 adds r5, #1 - 5ae8: e7f0 b.n 5acc - if(style == NULL) return false; - 5aea: 2000 movs r0, #0 - 5aec: e7f5 b.n 5ada - 5aee: bf00 nop - 5af0: 00005739 .word 0x00005739 - 5af4: 00005a2d .word 0x00005a2d - 5af8: 0000f0a5 .word 0x0000f0a5 - -00005afc <_lv_style_set_int>: -{ - 5afc: b570 push {r4, r5, r6, lr} - 5afe: 6806 ldr r6, [r0, #0] - int32_t id = get_property_index(style, prop); - 5b00: 4b28 ldr r3, [pc, #160] ; (5ba4 <_lv_style_set_int+0xa8>) -{ - 5b02: b086 sub sp, #24 - 5b04: 4605 mov r5, r0 - int32_t id = get_property_index(style, prop); - 5b06: 4630 mov r0, r6 -{ - 5b08: f8ad 100e strh.w r1, [sp, #14] - 5b0c: f8ad 200c strh.w r2, [sp, #12] - int32_t id = get_property_index(style, prop); - 5b10: 460c mov r4, r1 - 5b12: 4798 blx r3 - if(id >= 0) { - 5b14: 2800 cmp r0, #0 - 5b16: db0d blt.n 5b34 <_lv_style_set_int+0x38> - attr_found.full = *(style->map + id + 1); - 5b18: 1833 adds r3, r6, r0 - if(attr_found.bits.state == attr_goal.bits.state) { - 5b1a: 785b ldrb r3, [r3, #1] - 5b1c: ea83 2314 eor.w r3, r3, r4, lsr #8 - 5b20: 065b lsls r3, r3, #25 - 5b22: d107 bne.n 5b34 <_lv_style_set_int+0x38> - _lv_memcpy_small(style->map + id + sizeof(lv_style_property_t), &value, sizeof(lv_style_int_t)); - 5b24: 3002 adds r0, #2 - 5b26: 4b20 ldr r3, [pc, #128] ; (5ba8 <_lv_style_set_int+0xac>) - 5b28: 2202 movs r2, #2 - 5b2a: a903 add r1, sp, #12 - 5b2c: 4430 add r0, r6 - 5b2e: 4798 blx r3 -} - 5b30: b006 add sp, #24 - 5b32: bd70 pop {r4, r5, r6, pc} - lv_style_property_t end_mark = _LV_STYLE_CLOSEING_PROP; - 5b34: 23ff movs r3, #255 ; 0xff - 5b36: f8ad 3016 strh.w r3, [sp, #22] - uint16_t size = _lv_style_get_mem_size(style); - 5b3a: 4628 mov r0, r5 - 5b3c: 4b1b ldr r3, [pc, #108] ; (5bac <_lv_style_set_int+0xb0>) - 5b3e: 4798 blx r3 - if(size == 0) size += end_mark_size; - 5b40: 1e04 subs r4, r0, #0 - 5b42: bf08 it eq - 5b44: 2402 moveq r4, #2 - size += sizeof(lv_style_property_t) + sizeof(lv_style_int_t); - 5b46: 3404 adds r4, #4 - style->map = lv_mem_realloc(style->map, size); - 5b48: b2a4 uxth r4, r4 - 5b4a: 4b19 ldr r3, [pc, #100] ; (5bb0 <_lv_style_set_int+0xb4>) - 5b4c: 4621 mov r1, r4 - 5b4e: 4630 mov r0, r6 - 5b50: 4798 blx r3 - LV_ASSERT_MEM(style->map); - 5b52: 4b18 ldr r3, [pc, #96] ; (5bb4 <_lv_style_set_int+0xb8>) - style->map = lv_mem_realloc(style->map, size); - 5b54: 6028 str r0, [r5, #0] - LV_ASSERT_MEM(style->map); - 5b56: 4798 blx r3 - 5b58: 4606 mov r6, r0 - 5b5a: b968 cbnz r0, 5b78 <_lv_style_set_int+0x7c> - 5b5c: 4b16 ldr r3, [pc, #88] ; (5bb8 <_lv_style_set_int+0xbc>) - 5b5e: 4917 ldr r1, [pc, #92] ; (5bbc <_lv_style_set_int+0xc0>) - 5b60: 9300 str r3, [sp, #0] - 5b62: f44f 72c3 mov.w r2, #390 ; 0x186 - 5b66: 2003 movs r0, #3 - 5b68: 4c15 ldr r4, [pc, #84] ; (5bc0 <_lv_style_set_int+0xc4>) - 5b6a: 47a0 blx r4 - 5b6c: 682a ldr r2, [r5, #0] - 5b6e: 4815 ldr r0, [pc, #84] ; (5bc4 <_lv_style_set_int+0xc8>) - 5b70: 4915 ldr r1, [pc, #84] ; (5bc8 <_lv_style_set_int+0xcc>) - 5b72: 4633 mov r3, r6 - 5b74: 4788 blx r1 - 5b76: e7fe b.n 5b76 <_lv_style_set_int+0x7a> - _lv_memcpy_small(style->map + size - new_prop_size - end_mark_size, &prop, sizeof(lv_style_property_t)); - 5b78: 6828 ldr r0, [r5, #0] - 5b7a: 4e0b ldr r6, [pc, #44] ; (5ba8 <_lv_style_set_int+0xac>) - 5b7c: 1fa3 subs r3, r4, #6 - 5b7e: f10d 010e add.w r1, sp, #14 - 5b82: 4418 add r0, r3 - 5b84: 2202 movs r2, #2 - 5b86: 47b0 blx r6 - _lv_memcpy_small(style->map + size - sizeof(lv_style_int_t) - end_mark_size, &value, sizeof(lv_style_int_t)); - 5b88: 6828 ldr r0, [r5, #0] - _lv_memcpy_small(style->map + size - new_prop_size - end_mark_size, &prop, sizeof(lv_style_property_t)); - 5b8a: 1f23 subs r3, r4, #4 - _lv_memcpy_small(style->map + size - sizeof(lv_style_int_t) - end_mark_size, &value, sizeof(lv_style_int_t)); - 5b8c: a903 add r1, sp, #12 - 5b8e: 4418 add r0, r3 - 5b90: 2202 movs r2, #2 - 5b92: 47b0 blx r6 - _lv_memcpy_small(style->map + size - end_mark_size, &end_mark, sizeof(end_mark)); - 5b94: 6828 ldr r0, [r5, #0] - _lv_memcpy_small(style->map + size - sizeof(lv_style_int_t) - end_mark_size, &value, sizeof(lv_style_int_t)); - 5b96: 3c02 subs r4, #2 - _lv_memcpy_small(style->map + size - end_mark_size, &end_mark, sizeof(end_mark)); - 5b98: 2202 movs r2, #2 - 5b9a: f10d 0116 add.w r1, sp, #22 - 5b9e: 4420 add r0, r4 - 5ba0: 47b0 blx r6 - 5ba2: e7c5 b.n 5b30 <_lv_style_set_int+0x34> - 5ba4: 00005739 .word 0x00005739 - 5ba8: 000057a3 .word 0x000057a3 - 5bac: 00005a2d .word 0x00005a2d - 5bb0: 0000f0a5 .word 0x0000f0a5 - 5bb4: 00001a65 .word 0x00001a65 - 5bb8: 000273be .word 0x000273be - 5bbc: 0002726a .word 0x0002726a - 5bc0: 0000eb79 .word 0x0000eb79 - 5bc4: 00026842 .word 0x00026842 - 5bc8: 00001a6d .word 0x00001a6d - -00005bcc <_lv_style_set_color>: -{ - 5bcc: b570 push {r4, r5, r6, lr} - 5bce: 6806 ldr r6, [r0, #0] - int32_t id = get_property_index(style, prop); - 5bd0: 4b28 ldr r3, [pc, #160] ; (5c74 <_lv_style_set_color+0xa8>) -{ - 5bd2: b086 sub sp, #24 - 5bd4: 4605 mov r5, r0 - int32_t id = get_property_index(style, prop); - 5bd6: 4630 mov r0, r6 -{ - 5bd8: f8ad 200c strh.w r2, [sp, #12] - 5bdc: f8ad 100e strh.w r1, [sp, #14] - int32_t id = get_property_index(style, prop); - 5be0: 460c mov r4, r1 - 5be2: 4798 blx r3 - if(id >= 0) { - 5be4: 2800 cmp r0, #0 - 5be6: db0d blt.n 5c04 <_lv_style_set_color+0x38> - attr_found.full = *(style->map + id + 1); - 5be8: 1833 adds r3, r6, r0 - if(attr_found.bits.state == attr_goal.bits.state) { - 5bea: 785b ldrb r3, [r3, #1] - 5bec: ea83 2314 eor.w r3, r3, r4, lsr #8 - 5bf0: 065b lsls r3, r3, #25 - 5bf2: d107 bne.n 5c04 <_lv_style_set_color+0x38> - _lv_memcpy_small(style->map + id + sizeof(lv_style_property_t), &color, sizeof(lv_color_t)); - 5bf4: 3002 adds r0, #2 - 5bf6: 4b20 ldr r3, [pc, #128] ; (5c78 <_lv_style_set_color+0xac>) - 5bf8: 2202 movs r2, #2 - 5bfa: a903 add r1, sp, #12 - 5bfc: 4430 add r0, r6 - 5bfe: 4798 blx r3 -} - 5c00: b006 add sp, #24 - 5c02: bd70 pop {r4, r5, r6, pc} - lv_style_property_t end_mark = _LV_STYLE_CLOSEING_PROP; - 5c04: 23ff movs r3, #255 ; 0xff - 5c06: f8ad 3016 strh.w r3, [sp, #22] - uint16_t size = _lv_style_get_mem_size(style); - 5c0a: 4628 mov r0, r5 - 5c0c: 4b1b ldr r3, [pc, #108] ; (5c7c <_lv_style_set_color+0xb0>) - 5c0e: 4798 blx r3 - if(size == 0) size += end_mark_size; - 5c10: 1e04 subs r4, r0, #0 - 5c12: bf08 it eq - 5c14: 2402 moveq r4, #2 - size += sizeof(lv_style_property_t) + sizeof(lv_color_t); - 5c16: 3404 adds r4, #4 - style->map = lv_mem_realloc(style->map, size); - 5c18: b2a4 uxth r4, r4 - 5c1a: 4b19 ldr r3, [pc, #100] ; (5c80 <_lv_style_set_color+0xb4>) - 5c1c: 4621 mov r1, r4 - 5c1e: 4630 mov r0, r6 - 5c20: 4798 blx r3 - LV_ASSERT_MEM(style->map); - 5c22: 4b18 ldr r3, [pc, #96] ; (5c84 <_lv_style_set_color+0xb8>) - style->map = lv_mem_realloc(style->map, size); - 5c24: 6028 str r0, [r5, #0] - LV_ASSERT_MEM(style->map); - 5c26: 4798 blx r3 - 5c28: 4606 mov r6, r0 - 5c2a: b968 cbnz r0, 5c48 <_lv_style_set_color+0x7c> - 5c2c: 4b16 ldr r3, [pc, #88] ; (5c88 <_lv_style_set_color+0xbc>) - 5c2e: 4917 ldr r1, [pc, #92] ; (5c8c <_lv_style_set_color+0xc0>) - 5c30: 9300 str r3, [sp, #0] - 5c32: f240 12b5 movw r2, #437 ; 0x1b5 - 5c36: 2003 movs r0, #3 - 5c38: 4c15 ldr r4, [pc, #84] ; (5c90 <_lv_style_set_color+0xc4>) - 5c3a: 47a0 blx r4 - 5c3c: 682a ldr r2, [r5, #0] - 5c3e: 4815 ldr r0, [pc, #84] ; (5c94 <_lv_style_set_color+0xc8>) - 5c40: 4915 ldr r1, [pc, #84] ; (5c98 <_lv_style_set_color+0xcc>) - 5c42: 4633 mov r3, r6 - 5c44: 4788 blx r1 - 5c46: e7fe b.n 5c46 <_lv_style_set_color+0x7a> - _lv_memcpy_small(style->map + size - new_prop_size - end_mark_size, &prop, sizeof(lv_style_property_t)); - 5c48: 6828 ldr r0, [r5, #0] - 5c4a: 4e0b ldr r6, [pc, #44] ; (5c78 <_lv_style_set_color+0xac>) - 5c4c: 1fa3 subs r3, r4, #6 - 5c4e: f10d 010e add.w r1, sp, #14 - 5c52: 4418 add r0, r3 - 5c54: 2202 movs r2, #2 - 5c56: 47b0 blx r6 - _lv_memcpy_small(style->map + size - sizeof(lv_color_t) - end_mark_size, &color, sizeof(lv_color_t)); - 5c58: 6828 ldr r0, [r5, #0] - _lv_memcpy_small(style->map + size - new_prop_size - end_mark_size, &prop, sizeof(lv_style_property_t)); - 5c5a: 1f23 subs r3, r4, #4 - _lv_memcpy_small(style->map + size - sizeof(lv_color_t) - end_mark_size, &color, sizeof(lv_color_t)); - 5c5c: a903 add r1, sp, #12 - 5c5e: 4418 add r0, r3 - 5c60: 2202 movs r2, #2 - 5c62: 47b0 blx r6 - _lv_memcpy_small(style->map + size - end_mark_size, &end_mark, sizeof(end_mark)); - 5c64: 6828 ldr r0, [r5, #0] - _lv_memcpy_small(style->map + size - sizeof(lv_color_t) - end_mark_size, &color, sizeof(lv_color_t)); - 5c66: 3c02 subs r4, #2 - _lv_memcpy_small(style->map + size - end_mark_size, &end_mark, sizeof(end_mark)); - 5c68: 2202 movs r2, #2 - 5c6a: f10d 0116 add.w r1, sp, #22 - 5c6e: 4420 add r0, r4 - 5c70: 47b0 blx r6 - 5c72: e7c5 b.n 5c00 <_lv_style_set_color+0x34> - 5c74: 00005739 .word 0x00005739 - 5c78: 000057a3 .word 0x000057a3 - 5c7c: 00005a2d .word 0x00005a2d - 5c80: 0000f0a5 .word 0x0000f0a5 - 5c84: 00001a65 .word 0x00001a65 - 5c88: 000273d0 .word 0x000273d0 - 5c8c: 0002726a .word 0x0002726a - 5c90: 0000eb79 .word 0x0000eb79 - 5c94: 00026842 .word 0x00026842 - 5c98: 00001a6d .word 0x00001a6d - -00005c9c <_lv_style_set_opa>: -{ - 5c9c: b570 push {r4, r5, r6, lr} - 5c9e: 6806 ldr r6, [r0, #0] - int32_t id = get_property_index(style, prop); - 5ca0: 4b29 ldr r3, [pc, #164] ; (5d48 <_lv_style_set_opa+0xac>) -{ - 5ca2: b086 sub sp, #24 - 5ca4: 4605 mov r5, r0 - int32_t id = get_property_index(style, prop); - 5ca6: 4630 mov r0, r6 -{ - 5ca8: f8ad 100e strh.w r1, [sp, #14] - 5cac: f88d 200d strb.w r2, [sp, #13] - int32_t id = get_property_index(style, prop); - 5cb0: 460c mov r4, r1 - 5cb2: 4798 blx r3 - if(id >= 0) { - 5cb4: 2800 cmp r0, #0 - 5cb6: db0e blt.n 5cd6 <_lv_style_set_opa+0x3a> - attr_found.full = *(style->map + id + 1); - 5cb8: 1833 adds r3, r6, r0 - if(attr_found.bits.state == attr_goal.bits.state) { - 5cba: 785b ldrb r3, [r3, #1] - 5cbc: ea83 2314 eor.w r3, r3, r4, lsr #8 - 5cc0: 065b lsls r3, r3, #25 - 5cc2: d108 bne.n 5cd6 <_lv_style_set_opa+0x3a> - _lv_memcpy_small(style->map + id + sizeof(lv_style_property_t), &opa, sizeof(lv_opa_t)); - 5cc4: 3002 adds r0, #2 - 5cc6: 4b21 ldr r3, [pc, #132] ; (5d4c <_lv_style_set_opa+0xb0>) - 5cc8: 2201 movs r2, #1 - 5cca: f10d 010d add.w r1, sp, #13 - 5cce: 4430 add r0, r6 - 5cd0: 4798 blx r3 -} - 5cd2: b006 add sp, #24 - 5cd4: bd70 pop {r4, r5, r6, pc} - lv_style_property_t end_mark = _LV_STYLE_CLOSEING_PROP; - 5cd6: 23ff movs r3, #255 ; 0xff - 5cd8: f8ad 3016 strh.w r3, [sp, #22] - uint16_t size = _lv_style_get_mem_size(style); - 5cdc: 4628 mov r0, r5 - 5cde: 4b1c ldr r3, [pc, #112] ; (5d50 <_lv_style_set_opa+0xb4>) - 5ce0: 4798 blx r3 - if(size == 0) size += end_mark_size; - 5ce2: 1e04 subs r4, r0, #0 - 5ce4: bf08 it eq - 5ce6: 2402 moveq r4, #2 - size += sizeof(lv_style_property_t) + sizeof(lv_opa_t); - 5ce8: 3403 adds r4, #3 - style->map = lv_mem_realloc(style->map, size); - 5cea: b2a4 uxth r4, r4 - 5cec: 4b19 ldr r3, [pc, #100] ; (5d54 <_lv_style_set_opa+0xb8>) - 5cee: 4621 mov r1, r4 - 5cf0: 4630 mov r0, r6 - 5cf2: 4798 blx r3 - LV_ASSERT_MEM(style->map); - 5cf4: 4b18 ldr r3, [pc, #96] ; (5d58 <_lv_style_set_opa+0xbc>) - style->map = lv_mem_realloc(style->map, size); - 5cf6: 6028 str r0, [r5, #0] - LV_ASSERT_MEM(style->map); - 5cf8: 4798 blx r3 - 5cfa: 4606 mov r6, r0 - 5cfc: b968 cbnz r0, 5d1a <_lv_style_set_opa+0x7e> - 5cfe: 4b17 ldr r3, [pc, #92] ; (5d5c <_lv_style_set_opa+0xc0>) - 5d00: 4917 ldr r1, [pc, #92] ; (5d60 <_lv_style_set_opa+0xc4>) - 5d02: 9300 str r3, [sp, #0] - 5d04: f44f 72f2 mov.w r2, #484 ; 0x1e4 - 5d08: 2003 movs r0, #3 - 5d0a: 4c16 ldr r4, [pc, #88] ; (5d64 <_lv_style_set_opa+0xc8>) - 5d0c: 47a0 blx r4 - 5d0e: 682a ldr r2, [r5, #0] - 5d10: 4815 ldr r0, [pc, #84] ; (5d68 <_lv_style_set_opa+0xcc>) - 5d12: 4916 ldr r1, [pc, #88] ; (5d6c <_lv_style_set_opa+0xd0>) - 5d14: 4633 mov r3, r6 - 5d16: 4788 blx r1 - 5d18: e7fe b.n 5d18 <_lv_style_set_opa+0x7c> - _lv_memcpy_small(style->map + size - new_prop_size - end_mark_size, &prop, sizeof(lv_style_property_t)); - 5d1a: 6828 ldr r0, [r5, #0] - 5d1c: 4e0b ldr r6, [pc, #44] ; (5d4c <_lv_style_set_opa+0xb0>) - 5d1e: 1f63 subs r3, r4, #5 - 5d20: f10d 010e add.w r1, sp, #14 - 5d24: 4418 add r0, r3 - 5d26: 2202 movs r2, #2 - 5d28: 47b0 blx r6 - _lv_memcpy_small(style->map + size - sizeof(lv_opa_t) - end_mark_size, &opa, sizeof(lv_opa_t)); - 5d2a: 6828 ldr r0, [r5, #0] - _lv_memcpy_small(style->map + size - new_prop_size - end_mark_size, &prop, sizeof(lv_style_property_t)); - 5d2c: 1ee3 subs r3, r4, #3 - _lv_memcpy_small(style->map + size - sizeof(lv_opa_t) - end_mark_size, &opa, sizeof(lv_opa_t)); - 5d2e: f10d 010d add.w r1, sp, #13 - 5d32: 4418 add r0, r3 - 5d34: 2201 movs r2, #1 - 5d36: 47b0 blx r6 - _lv_memcpy_small(style->map + size - end_mark_size, &end_mark, sizeof(end_mark)); - 5d38: 6828 ldr r0, [r5, #0] - _lv_memcpy_small(style->map + size - sizeof(lv_opa_t) - end_mark_size, &opa, sizeof(lv_opa_t)); - 5d3a: 3c02 subs r4, #2 - _lv_memcpy_small(style->map + size - end_mark_size, &end_mark, sizeof(end_mark)); - 5d3c: 2202 movs r2, #2 - 5d3e: f10d 0116 add.w r1, sp, #22 - 5d42: 4420 add r0, r4 - 5d44: 47b0 blx r6 - 5d46: e7c4 b.n 5cd2 <_lv_style_set_opa+0x36> - 5d48: 00005739 .word 0x00005739 - 5d4c: 000057a3 .word 0x000057a3 - 5d50: 00005a2d .word 0x00005a2d - 5d54: 0000f0a5 .word 0x0000f0a5 - 5d58: 00001a65 .word 0x00001a65 - 5d5c: 000273e4 .word 0x000273e4 - 5d60: 0002726a .word 0x0002726a - 5d64: 0000eb79 .word 0x0000eb79 - 5d68: 00026842 .word 0x00026842 - 5d6c: 00001a6d .word 0x00001a6d - -00005d70 <_lv_style_set_ptr>: -{ - 5d70: b570 push {r4, r5, r6, lr} - 5d72: 6806 ldr r6, [r0, #0] - int32_t id = get_property_index(style, prop); - 5d74: 4b28 ldr r3, [pc, #160] ; (5e18 <_lv_style_set_ptr+0xa8>) -{ - 5d76: b086 sub sp, #24 - 5d78: 4605 mov r5, r0 - int32_t id = get_property_index(style, prop); - 5d7a: 4630 mov r0, r6 -{ - 5d7c: 9202 str r2, [sp, #8] - 5d7e: f8ad 100e strh.w r1, [sp, #14] - int32_t id = get_property_index(style, prop); - 5d82: 460c mov r4, r1 - 5d84: 4798 blx r3 - if(id >= 0) { - 5d86: 2800 cmp r0, #0 - 5d88: db0d blt.n 5da6 <_lv_style_set_ptr+0x36> - attr_found.full = *(style->map + id + 1); - 5d8a: 1833 adds r3, r6, r0 - if(attr_found.bits.state == attr_goal.bits.state) { - 5d8c: 785b ldrb r3, [r3, #1] - 5d8e: ea83 2314 eor.w r3, r3, r4, lsr #8 - 5d92: 065b lsls r3, r3, #25 - 5d94: d107 bne.n 5da6 <_lv_style_set_ptr+0x36> - _lv_memcpy_small(style->map + id + sizeof(lv_style_property_t), &p, sizeof(const void *)); - 5d96: 3002 adds r0, #2 - 5d98: 4b20 ldr r3, [pc, #128] ; (5e1c <_lv_style_set_ptr+0xac>) - 5d9a: 2204 movs r2, #4 - 5d9c: a902 add r1, sp, #8 - 5d9e: 4430 add r0, r6 - 5da0: 4798 blx r3 -} - 5da2: b006 add sp, #24 - 5da4: bd70 pop {r4, r5, r6, pc} - lv_style_property_t end_mark = _LV_STYLE_CLOSEING_PROP; - 5da6: 23ff movs r3, #255 ; 0xff - 5da8: f8ad 3016 strh.w r3, [sp, #22] - uint16_t size = _lv_style_get_mem_size(style); - 5dac: 4628 mov r0, r5 - 5dae: 4b1c ldr r3, [pc, #112] ; (5e20 <_lv_style_set_ptr+0xb0>) - 5db0: 4798 blx r3 - if(size == 0) size += end_mark_size; - 5db2: 1e04 subs r4, r0, #0 - 5db4: bf08 it eq - 5db6: 2402 moveq r4, #2 - size += sizeof(lv_style_property_t) + sizeof(const void *); - 5db8: 3406 adds r4, #6 - style->map = lv_mem_realloc(style->map, size); - 5dba: b2a4 uxth r4, r4 - 5dbc: 4b19 ldr r3, [pc, #100] ; (5e24 <_lv_style_set_ptr+0xb4>) - 5dbe: 4621 mov r1, r4 - 5dc0: 4630 mov r0, r6 - 5dc2: 4798 blx r3 - LV_ASSERT_MEM(style->map); - 5dc4: 4b18 ldr r3, [pc, #96] ; (5e28 <_lv_style_set_ptr+0xb8>) - style->map = lv_mem_realloc(style->map, size); - 5dc6: 6028 str r0, [r5, #0] - LV_ASSERT_MEM(style->map); - 5dc8: 4798 blx r3 - 5dca: 4606 mov r6, r0 - 5dcc: b968 cbnz r0, 5dea <_lv_style_set_ptr+0x7a> - 5dce: 4b17 ldr r3, [pc, #92] ; (5e2c <_lv_style_set_ptr+0xbc>) - 5dd0: 4917 ldr r1, [pc, #92] ; (5e30 <_lv_style_set_ptr+0xc0>) - 5dd2: 9300 str r3, [sp, #0] - 5dd4: f240 2213 movw r2, #531 ; 0x213 - 5dd8: 2003 movs r0, #3 - 5dda: 4c16 ldr r4, [pc, #88] ; (5e34 <_lv_style_set_ptr+0xc4>) - 5ddc: 47a0 blx r4 - 5dde: 682a ldr r2, [r5, #0] - 5de0: 4815 ldr r0, [pc, #84] ; (5e38 <_lv_style_set_ptr+0xc8>) - 5de2: 4916 ldr r1, [pc, #88] ; (5e3c <_lv_style_set_ptr+0xcc>) - 5de4: 4633 mov r3, r6 - 5de6: 4788 blx r1 - 5de8: e7fe b.n 5de8 <_lv_style_set_ptr+0x78> - _lv_memcpy_small(style->map + size - new_prop_size - end_mark_size, &prop, sizeof(lv_style_property_t)); - 5dea: 6828 ldr r0, [r5, #0] - 5dec: 4e0b ldr r6, [pc, #44] ; (5e1c <_lv_style_set_ptr+0xac>) - 5dee: f1a4 0308 sub.w r3, r4, #8 - 5df2: f10d 010e add.w r1, sp, #14 - 5df6: 4418 add r0, r3 - 5df8: 2202 movs r2, #2 - 5dfa: 47b0 blx r6 - _lv_memcpy_small(style->map + size - sizeof(const void *) - end_mark_size, &p, sizeof(const void *)); - 5dfc: 6828 ldr r0, [r5, #0] - _lv_memcpy_small(style->map + size - new_prop_size - end_mark_size, &prop, sizeof(lv_style_property_t)); - 5dfe: 1fa3 subs r3, r4, #6 - _lv_memcpy_small(style->map + size - sizeof(const void *) - end_mark_size, &p, sizeof(const void *)); - 5e00: a902 add r1, sp, #8 - 5e02: 4418 add r0, r3 - 5e04: 2204 movs r2, #4 - 5e06: 47b0 blx r6 - _lv_memcpy_small(style->map + size - end_mark_size, &end_mark, sizeof(end_mark)); - 5e08: 6828 ldr r0, [r5, #0] - _lv_memcpy_small(style->map + size - sizeof(const void *) - end_mark_size, &p, sizeof(const void *)); - 5e0a: 3c02 subs r4, #2 - _lv_memcpy_small(style->map + size - end_mark_size, &end_mark, sizeof(end_mark)); - 5e0c: 2202 movs r2, #2 - 5e0e: f10d 0116 add.w r1, sp, #22 - 5e12: 4420 add r0, r4 - 5e14: 47b0 blx r6 - 5e16: e7c4 b.n 5da2 <_lv_style_set_ptr+0x32> - 5e18: 00005739 .word 0x00005739 - 5e1c: 000057a3 .word 0x000057a3 - 5e20: 00005a2d .word 0x00005a2d - 5e24: 0000f0a5 .word 0x0000f0a5 - 5e28: 00001a65 .word 0x00001a65 - 5e2c: 000273f6 .word 0x000273f6 - 5e30: 0002726a .word 0x0002726a - 5e34: 0000eb79 .word 0x0000eb79 - 5e38: 00026842 .word 0x00026842 - 5e3c: 00001a6d .word 0x00001a6d - -00005e40 <_lv_style_get_int>: -{ - 5e40: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} - 5e44: 460e mov r6, r1 - 5e46: 4617 mov r7, r2 - if(style == NULL) return -1; - 5e48: 4605 mov r5, r0 - 5e4a: b1c0 cbz r0, 5e7e <_lv_style_get_int+0x3e> - if(style->map == NULL) return -1; - 5e4c: f8d0 8000 ldr.w r8, [r0] - 5e50: f1b8 0f00 cmp.w r8, #0 - 5e54: d013 beq.n 5e7e <_lv_style_get_int+0x3e> - int32_t id = get_property_index(style, prop); - 5e56: 4b0b ldr r3, [pc, #44] ; (5e84 <_lv_style_get_int+0x44>) - 5e58: 4640 mov r0, r8 - 5e5a: 4798 blx r3 - if(id < 0) { - 5e5c: 1e04 subs r4, r0, #0 - 5e5e: db0e blt.n 5e7e <_lv_style_get_int+0x3e> - _lv_memcpy_small(res, &style->map[id + sizeof(lv_style_property_t)], sizeof(lv_style_int_t)); - 5e60: 1ca1 adds r1, r4, #2 - 5e62: 4b09 ldr r3, [pc, #36] ; (5e88 <_lv_style_get_int+0x48>) - 5e64: 4638 mov r0, r7 - 5e66: 2202 movs r2, #2 - 5e68: 4441 add r1, r8 - 5e6a: 4798 blx r3 - attr_act.full = style->map[id + 1]; - 5e6c: 682b ldr r3, [r5, #0] - 5e6e: 4423 add r3, r4 - 5e70: 7858 ldrb r0, [r3, #1] - return attr_act.bits.state & attr_goal.bits.state; - 5e72: f3c0 0006 ubfx r0, r0, #0, #7 - 5e76: ea00 2016 and.w r0, r0, r6, lsr #8 -} - 5e7a: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} - if(style == NULL) return -1; - 5e7e: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff - 5e82: e7fa b.n 5e7a <_lv_style_get_int+0x3a> - 5e84: 00005739 .word 0x00005739 - 5e88: 000057a3 .word 0x000057a3 - -00005e8c <_lv_style_get_opa>: -{ - 5e8c: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} - 5e90: 460e mov r6, r1 - 5e92: 4617 mov r7, r2 - if(style == NULL) return -1; - 5e94: 4605 mov r5, r0 - 5e96: b1c0 cbz r0, 5eca <_lv_style_get_opa+0x3e> - if(style->map == NULL) return -1; - 5e98: f8d0 8000 ldr.w r8, [r0] - 5e9c: f1b8 0f00 cmp.w r8, #0 - 5ea0: d013 beq.n 5eca <_lv_style_get_opa+0x3e> - int32_t id = get_property_index(style, prop); - 5ea2: 4b0b ldr r3, [pc, #44] ; (5ed0 <_lv_style_get_opa+0x44>) - 5ea4: 4640 mov r0, r8 - 5ea6: 4798 blx r3 - if(id < 0) { - 5ea8: 1e04 subs r4, r0, #0 - 5eaa: db0e blt.n 5eca <_lv_style_get_opa+0x3e> - _lv_memcpy_small(res, &style->map[id + sizeof(lv_style_property_t)], sizeof(lv_opa_t)); - 5eac: 1ca1 adds r1, r4, #2 - 5eae: 4b09 ldr r3, [pc, #36] ; (5ed4 <_lv_style_get_opa+0x48>) - 5eb0: 4638 mov r0, r7 - 5eb2: 2201 movs r2, #1 - 5eb4: 4441 add r1, r8 - 5eb6: 4798 blx r3 - attr_act.full = style->map[id + 1]; - 5eb8: 682b ldr r3, [r5, #0] - 5eba: 4423 add r3, r4 - 5ebc: 7858 ldrb r0, [r3, #1] - return attr_act.bits.state & attr_goal.bits.state; - 5ebe: f3c0 0006 ubfx r0, r0, #0, #7 - 5ec2: ea00 2016 and.w r0, r0, r6, lsr #8 -} - 5ec6: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} - if(style == NULL) return -1; - 5eca: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff - 5ece: e7fa b.n 5ec6 <_lv_style_get_opa+0x3a> - 5ed0: 00005739 .word 0x00005739 - 5ed4: 000057a3 .word 0x000057a3 - -00005ed8 <_lv_style_get_ptr>: -{ - 5ed8: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} - 5edc: 460e mov r6, r1 - 5ede: 4617 mov r7, r2 - if(style == NULL) return -1; - 5ee0: 4605 mov r5, r0 - 5ee2: b1c0 cbz r0, 5f16 <_lv_style_get_ptr+0x3e> - if(style->map == NULL) return -1; - 5ee4: f8d0 8000 ldr.w r8, [r0] - 5ee8: f1b8 0f00 cmp.w r8, #0 - 5eec: d013 beq.n 5f16 <_lv_style_get_ptr+0x3e> - int32_t id = get_property_index(style, prop); - 5eee: 4b0b ldr r3, [pc, #44] ; (5f1c <_lv_style_get_ptr+0x44>) - 5ef0: 4640 mov r0, r8 - 5ef2: 4798 blx r3 - if(id < 0) { - 5ef4: 1e04 subs r4, r0, #0 - 5ef6: db0e blt.n 5f16 <_lv_style_get_ptr+0x3e> - _lv_memcpy_small(res, &style->map[id + sizeof(lv_style_property_t)], sizeof(const void *)); - 5ef8: 1ca1 adds r1, r4, #2 - 5efa: 4b09 ldr r3, [pc, #36] ; (5f20 <_lv_style_get_ptr+0x48>) - 5efc: 4638 mov r0, r7 - 5efe: 2204 movs r2, #4 - 5f00: 4441 add r1, r8 - 5f02: 4798 blx r3 - attr_act.full = style->map[id + 1]; - 5f04: 682b ldr r3, [r5, #0] - 5f06: 4423 add r3, r4 - 5f08: 7858 ldrb r0, [r3, #1] - return attr_act.bits.state & attr_goal.bits.state; - 5f0a: f3c0 0006 ubfx r0, r0, #0, #7 - 5f0e: ea00 2016 and.w r0, r0, r6, lsr #8 -} - 5f12: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} - if(style == NULL) return -1; - 5f16: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff - 5f1a: e7fa b.n 5f12 <_lv_style_get_ptr+0x3a> - 5f1c: 00005739 .word 0x00005739 - 5f20: 000057a3 .word 0x000057a3 - -00005f24 : - if(!list->has_local) return NULL; - 5f24: 7942 ldrb r2, [r0, #5] - 5f26: f012 0301 ands.w r3, r2, #1 - 5f2a: d005 beq.n 5f38 - if(list->has_trans) return list->style_list[1]; - 5f2c: 6803 ldr r3, [r0, #0] - 5f2e: 0792 lsls r2, r2, #30 - 5f30: bf4c ite mi - 5f32: 6858 ldrmi r0, [r3, #4] - else return list->style_list[0]; - 5f34: 6818 ldrpl r0, [r3, #0] - 5f36: 4770 bx lr - if(!list->has_local) return NULL; - 5f38: 4618 mov r0, r3 -} - 5f3a: 4770 bx lr - -00005f3c <_lv_style_list_get_transition_style>: - if(!list->has_trans) return NULL; - 5f3c: 7943 ldrb r3, [r0, #5] - 5f3e: f013 0302 ands.w r3, r3, #2 - return list->style_list[0]; - 5f42: bf1a itte ne - 5f44: 6803 ldrne r3, [r0, #0] - 5f46: 6818 ldrne r0, [r3, #0] - if(!list->has_trans) return NULL; - 5f48: 4618 moveq r0, r3 -} - 5f4a: 4770 bx lr - -00005f4c <_lv_style_list_reset>: -{ - 5f4c: b538 push {r3, r4, r5, lr} - if(list == NULL) return; - 5f4e: 4604 mov r4, r0 - 5f50: b328 cbz r0, 5f9e <_lv_style_list_reset+0x52> - if(list->has_local) { - 5f52: 7943 ldrb r3, [r0, #5] - 5f54: 07da lsls r2, r3, #31 - 5f56: d508 bpl.n 5f6a <_lv_style_list_reset+0x1e> - lv_style_t * local = lv_style_list_get_local_style(list); - 5f58: 4b11 ldr r3, [pc, #68] ; (5fa0 <_lv_style_list_reset+0x54>) - 5f5a: 4798 blx r3 - if(local) { - 5f5c: 4605 mov r5, r0 - 5f5e: b120 cbz r0, 5f6a <_lv_style_list_reset+0x1e> - lv_style_reset(local); - 5f60: 4b10 ldr r3, [pc, #64] ; (5fa4 <_lv_style_list_reset+0x58>) - 5f62: 4798 blx r3 - lv_mem_free(local); - 5f64: 4b10 ldr r3, [pc, #64] ; (5fa8 <_lv_style_list_reset+0x5c>) - 5f66: 4628 mov r0, r5 - 5f68: 4798 blx r3 - if(list->has_trans) { - 5f6a: 7963 ldrb r3, [r4, #5] - 5f6c: 079b lsls r3, r3, #30 - 5f6e: d509 bpl.n 5f84 <_lv_style_list_reset+0x38> - lv_style_t * trans = _lv_style_list_get_transition_style(list); - 5f70: 4b0e ldr r3, [pc, #56] ; (5fac <_lv_style_list_reset+0x60>) - 5f72: 4620 mov r0, r4 - 5f74: 4798 blx r3 - if(trans) { - 5f76: 4605 mov r5, r0 - 5f78: b120 cbz r0, 5f84 <_lv_style_list_reset+0x38> - lv_style_reset(trans); - 5f7a: 4b0a ldr r3, [pc, #40] ; (5fa4 <_lv_style_list_reset+0x58>) - 5f7c: 4798 blx r3 - lv_mem_free(trans); - 5f7e: 4b0a ldr r3, [pc, #40] ; (5fa8 <_lv_style_list_reset+0x5c>) - 5f80: 4628 mov r0, r5 - 5f82: 4798 blx r3 - if(list->style_cnt > 0) lv_mem_free(list->style_list); - 5f84: 7923 ldrb r3, [r4, #4] - 5f86: b113 cbz r3, 5f8e <_lv_style_list_reset+0x42> - 5f88: 6820 ldr r0, [r4, #0] - 5f8a: 4b07 ldr r3, [pc, #28] ; (5fa8 <_lv_style_list_reset+0x5c>) - 5f8c: 4798 blx r3 - list->style_list = NULL; - 5f8e: 2300 movs r3, #0 - 5f90: 6023 str r3, [r4, #0] - list->style_cnt = 0; - 5f92: 88a3 ldrh r3, [r4, #4] - 5f94: f423 63ff bic.w r3, r3, #2040 ; 0x7f8 - 5f98: f023 0307 bic.w r3, r3, #7 - 5f9c: 80a3 strh r3, [r4, #4] -} - 5f9e: bd38 pop {r3, r4, r5, pc} - 5fa0: 00005f25 .word 0x00005f25 - 5fa4: 00005a19 .word 0x00005a19 - 5fa8: 0000ed75 .word 0x0000ed75 - 5fac: 00005f3d .word 0x00005f3d - -00005fb0 : -{ - 5fb0: b570 push {r4, r5, r6, lr} - 5fb2: 460c mov r4, r1 - _lv_style_list_reset(list_dest); - 5fb4: 4b26 ldr r3, [pc, #152] ; (6050 ) -{ - 5fb6: 4605 mov r5, r0 - _lv_style_list_reset(list_dest); - 5fb8: 4798 blx r3 - if(list_src->style_list == NULL) return; - 5fba: 6823 ldr r3, [r4, #0] - 5fbc: b1b3 cbz r3, 5fec - if(list_src->has_local == 0) { - 5fbe: 7963 ldrb r3, [r4, #5] - list_dest->style_list = lv_mem_alloc((list_src->style_cnt - 1) * sizeof(lv_style_t *)); - 5fc0: 7920 ldrb r0, [r4, #4] - 5fc2: 4e24 ldr r6, [pc, #144] ; (6054 ) - if(list_src->has_local == 0) { - 5fc4: f013 0f01 tst.w r3, #1 - if(list_src->has_trans) { - 5fc8: f003 0202 and.w r2, r3, #2 - 5fcc: 4b22 ldr r3, [pc, #136] ; (6058 ) - if(list_src->has_local == 0) { - 5fce: d117 bne.n 6000 - if(list_src->has_trans) { - 5fd0: b16a cbz r2, 5fee - list_dest->style_list = lv_mem_alloc((list_src->style_cnt - 1) * sizeof(lv_style_t *)); - 5fd2: 3801 subs r0, #1 - 5fd4: 0080 lsls r0, r0, #2 - 5fd6: 4798 blx r3 - 5fd8: 6028 str r0, [r5, #0] - _lv_memcpy(list_dest->style_list, list_src->style_list + 1, (list_src->style_cnt - 1) * sizeof(lv_style_t *)); - 5fda: 7922 ldrb r2, [r4, #4] - 5fdc: 6821 ldr r1, [r4, #0] - 5fde: 3a01 subs r2, #1 - 5fe0: 0092 lsls r2, r2, #2 - 5fe2: 3104 adds r1, #4 - 5fe4: 47b0 blx r6 - list_dest->style_cnt = list_src->style_cnt - 1; - 5fe6: 7923 ldrb r3, [r4, #4] - 5fe8: 3b01 subs r3, #1 - list_dest->style_cnt = list_src->style_cnt; - 5fea: 712b strb r3, [r5, #4] -} - 5fec: bd70 pop {r4, r5, r6, pc} - list_dest->style_list = lv_mem_alloc(list_src->style_cnt * sizeof(lv_style_t *)); - 5fee: 0080 lsls r0, r0, #2 - 5ff0: 4798 blx r3 - 5ff2: 6028 str r0, [r5, #0] - _lv_memcpy(list_dest->style_list, list_src->style_list, list_src->style_cnt * sizeof(lv_style_t *)); - 5ff4: 7922 ldrb r2, [r4, #4] - 5ff6: 6821 ldr r1, [r4, #0] - 5ff8: 0092 lsls r2, r2, #2 - 5ffa: 47b0 blx r6 - list_dest->style_cnt = list_src->style_cnt; - 5ffc: 7923 ldrb r3, [r4, #4] - 5ffe: e7f4 b.n 5fea - if(list_src->has_trans) { - 6000: b1ca cbz r2, 6036 - list_dest->style_list = lv_mem_alloc((list_src->style_cnt - 2) * sizeof(lv_style_t *)); - 6002: 3802 subs r0, #2 - 6004: 0080 lsls r0, r0, #2 - 6006: 4798 blx r3 - 6008: 6028 str r0, [r5, #0] - _lv_memcpy(list_dest->style_list, list_src->style_list + 2, (list_src->style_cnt - 2) * sizeof(lv_style_t *)); - 600a: 7922 ldrb r2, [r4, #4] - 600c: 6821 ldr r1, [r4, #0] - 600e: 3a02 subs r2, #2 - 6010: 0092 lsls r2, r2, #2 - 6012: 3108 adds r1, #8 - 6014: 47b0 blx r6 - list_dest->style_cnt = list_src->style_cnt - 2; - 6016: 7923 ldrb r3, [r4, #4] - 6018: 3b02 subs r3, #2 - list_dest->style_cnt = list_src->style_cnt - 1; - 601a: b2db uxtb r3, r3 - list_dest->style_cnt = list_src->style_cnt - 2; - 601c: 712b strb r3, [r5, #4] - lv_style_t * local_style = get_alloc_local_style(list_dest); - 601e: 4e0f ldr r6, [pc, #60] ; (605c ) - 6020: 4628 mov r0, r5 - 6022: 47b0 blx r6 - 6024: 4605 mov r5, r0 - lv_style_copy(local_style, get_alloc_local_style((lv_style_list_t *)list_src)); - 6026: 4620 mov r0, r4 - 6028: 47b0 blx r6 - 602a: 4b0d ldr r3, [pc, #52] ; (6060 ) - 602c: 4601 mov r1, r0 - 602e: 4628 mov r0, r5 -} - 6030: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr} - lv_style_copy(local_style, get_alloc_local_style((lv_style_list_t *)list_src)); - 6034: 4718 bx r3 - list_dest->style_list = lv_mem_alloc((list_src->style_cnt - 1) * sizeof(lv_style_t *)); - 6036: 3801 subs r0, #1 - 6038: 0080 lsls r0, r0, #2 - 603a: 4798 blx r3 - 603c: 6028 str r0, [r5, #0] - _lv_memcpy(list_dest->style_list, list_src->style_list + 1, (list_src->style_cnt - 1) * sizeof(lv_style_t *)); - 603e: 7922 ldrb r2, [r4, #4] - 6040: 6821 ldr r1, [r4, #0] - 6042: 3a01 subs r2, #1 - 6044: 0092 lsls r2, r2, #2 - 6046: 3104 adds r1, #4 - 6048: 47b0 blx r6 - list_dest->style_cnt = list_src->style_cnt - 1; - 604a: 7923 ldrb r3, [r4, #4] - 604c: 3b01 subs r3, #1 - 604e: e7e4 b.n 601a - 6050: 00005f4d .word 0x00005f4d - 6054: 0000eec1 .word 0x0000eec1 - 6058: 0000ecbd .word 0x0000ecbd - 605c: 00005979 .word 0x00005979 - 6060: 00005a5d .word 0x00005a5d - -00006064 <_lv_style_list_add_trans_style>: - if(list->has_trans) return _lv_style_list_get_transition_style(list); - 6064: 7943 ldrb r3, [r0, #5] - 6066: 079a lsls r2, r3, #30 -{ - 6068: b573 push {r0, r1, r4, r5, r6, lr} - 606a: 4605 mov r5, r0 - if(list->has_trans) return _lv_style_list_get_transition_style(list); - 606c: d504 bpl.n 6078 <_lv_style_list_add_trans_style+0x14> - 606e: 4b1d ldr r3, [pc, #116] ; (60e4 <_lv_style_list_add_trans_style+0x80>) -} - 6070: b002 add sp, #8 - 6072: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr} - if(list->has_trans) return _lv_style_list_get_transition_style(list); - 6076: 4718 bx r3 - lv_style_t * trans_style = lv_mem_alloc(sizeof(lv_style_t)); - 6078: 4b1b ldr r3, [pc, #108] ; (60e8 <_lv_style_list_add_trans_style+0x84>) - 607a: 2004 movs r0, #4 - 607c: 4798 blx r3 - LV_ASSERT_MEM(trans_style); - 607e: 4b1b ldr r3, [pc, #108] ; (60ec <_lv_style_list_add_trans_style+0x88>) - lv_style_t * trans_style = lv_mem_alloc(sizeof(lv_style_t)); - 6080: 4604 mov r4, r0 - LV_ASSERT_MEM(trans_style); - 6082: 4798 blx r3 - 6084: 4606 mov r6, r0 - 6086: b968 cbnz r0, 60a4 <_lv_style_list_add_trans_style+0x40> - 6088: 4b19 ldr r3, [pc, #100] ; (60f0 <_lv_style_list_add_trans_style+0x8c>) - 608a: 491a ldr r1, [pc, #104] ; (60f4 <_lv_style_list_add_trans_style+0x90>) - 608c: 9300 str r3, [sp, #0] - 608e: f240 22cd movw r2, #717 ; 0x2cd - 6092: 2003 movs r0, #3 - 6094: 4d18 ldr r5, [pc, #96] ; (60f8 <_lv_style_list_add_trans_style+0x94>) - 6096: 47a8 blx r5 - 6098: 4818 ldr r0, [pc, #96] ; (60fc <_lv_style_list_add_trans_style+0x98>) - 609a: 4919 ldr r1, [pc, #100] ; (6100 <_lv_style_list_add_trans_style+0x9c>) - 609c: 4622 mov r2, r4 - 609e: 4633 mov r3, r6 - 60a0: 4788 blx r1 - 60a2: e7fe b.n 60a2 <_lv_style_list_add_trans_style+0x3e> - if(trans_style == NULL) { - 60a4: b95c cbnz r4, 60be <_lv_style_list_add_trans_style+0x5a> - LV_LOG_WARN("lv_style_list_add_trans_style: couldn't create transition style"); - 60a6: 4b17 ldr r3, [pc, #92] ; (6104 <_lv_style_list_add_trans_style+0xa0>) - 60a8: 9300 str r3, [sp, #0] - 60aa: 4912 ldr r1, [pc, #72] ; (60f4 <_lv_style_list_add_trans_style+0x90>) - 60ac: 4b10 ldr r3, [pc, #64] ; (60f0 <_lv_style_list_add_trans_style+0x8c>) - 60ae: 4d12 ldr r5, [pc, #72] ; (60f8 <_lv_style_list_add_trans_style+0x94>) - 60b0: f240 22cf movw r2, #719 ; 0x2cf - 60b4: 2002 movs r0, #2 - 60b6: 47a8 blx r5 -} - 60b8: 4620 mov r0, r4 - 60ba: b002 add sp, #8 - 60bc: bd70 pop {r4, r5, r6, pc} - lv_style_init(trans_style); - 60be: 4b12 ldr r3, [pc, #72] ; (6108 <_lv_style_list_add_trans_style+0xa4>) - 60c0: 4620 mov r0, r4 - 60c2: 4798 blx r3 - _lv_style_list_add_style(list, trans_style); - 60c4: 4621 mov r1, r4 - 60c6: 4b11 ldr r3, [pc, #68] ; (610c <_lv_style_list_add_trans_style+0xa8>) - 60c8: 4628 mov r0, r5 - 60ca: 4798 blx r3 - list->has_trans = 1; - 60cc: 796b ldrb r3, [r5, #5] - 60ce: f043 0302 orr.w r3, r3, #2 - 60d2: 716b strb r3, [r5, #5] - if(list->has_local) { - 60d4: 07db lsls r3, r3, #31 - lv_style_t * tmp = list->style_list[0]; - 60d6: bf42 ittt mi - 60d8: 682b ldrmi r3, [r5, #0] - list->style_list[0] = list->style_list[1]; - 60da: e9d3 2100 ldrdmi r2, r1, [r3] - list->style_list[1] = tmp; - 60de: e9c3 1200 strdmi r1, r2, [r3] - 60e2: e7e9 b.n 60b8 <_lv_style_list_add_trans_style+0x54> - 60e4: 00005f3d .word 0x00005f3d - 60e8: 0000ecbd .word 0x0000ecbd - 60ec: 00001a65 .word 0x00001a65 - 60f0: 00027408 .word 0x00027408 - 60f4: 0002726a .word 0x0002726a - 60f8: 0000eb79 .word 0x0000eb79 - 60fc: 00026842 .word 0x00026842 - 6100: 00001a6d .word 0x00001a6d - 6104: 00027333 .word 0x00027333 - 6108: 000057b5 .word 0x000057b5 - 610c: 0000589d .word 0x0000589d - -00006110 <_lv_style_list_get_int>: -{ - 6110: e92d 4ff7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr} - 6114: 460f mov r7, r1 - 6116: 4690 mov r8, r2 - if(list == NULL) return LV_RES_INV; - 6118: 4605 mov r5, r0 - 611a: b318 cbz r0, 6164 <_lv_style_list_get_int+0x54> - if(list->style_list == NULL) return LV_RES_INV; - 611c: 6800 ldr r0, [r0, #0] - 611e: b308 cbz r0, 6164 <_lv_style_list_get_int+0x54> - lv_style_int_t value_act = 0; - 6120: 2600 movs r6, #0 - lv_style_t * class = lv_style_list_get_style(list, ci); - 6122: 4b1b ldr r3, [pc, #108] ; (6190 <_lv_style_list_get_int+0x80>) - int16_t weight_act = _lv_style_get_int(class, prop, &value_act); - 6124: f8df b06c ldr.w fp, [pc, #108] ; 6194 <_lv_style_list_get_int+0x84> - lv_style_int_t value_act = 0; - 6128: f8ad 6006 strh.w r6, [sp, #6] - int16_t weight_goal = attr.full; - 612c: ea4f 2a11 mov.w sl, r1, lsr #8 - int16_t weight = -1; - 6130: f04f 34ff mov.w r4, #4294967295 ; 0xffffffff - for(ci = 0; ci < list->style_cnt; ci++) { - 6134: 792a ldrb r2, [r5, #4] - 6136: fa0f f986 sxth.w r9, r6 - 613a: 4591 cmp r9, r2 - 613c: db03 blt.n 6146 <_lv_style_list_get_int+0x36> - if(weight >= 0) return LV_RES_OK; - 613e: 43e0 mvns r0, r4 - if(list == NULL) return LV_RES_INV; - 6140: f3c0 30c0 ubfx r0, r0, #15, #1 - 6144: e00e b.n 6164 <_lv_style_list_get_int+0x54> - lv_style_t * class = lv_style_list_get_style(list, ci); - 6146: b2f1 uxtb r1, r6 - 6148: 4628 mov r0, r5 - 614a: 4798 blx r3 - int16_t weight_act = _lv_style_get_int(class, prop, &value_act); - 614c: f10d 0206 add.w r2, sp, #6 - 6150: 4639 mov r1, r7 - 6152: 47d8 blx fp - if(weight_act == weight_goal) { - 6154: 4582 cmp sl, r0 - 6156: 4b0e ldr r3, [pc, #56] ; (6190 <_lv_style_list_get_int+0x80>) - 6158: d107 bne.n 616a <_lv_style_list_get_int+0x5a> - *res = value_act; - 615a: f8bd 3006 ldrh.w r3, [sp, #6] - 615e: f8a8 3000 strh.w r3, [r8] - return LV_RES_OK; - 6162: 2001 movs r0, #1 -} - 6164: b003 add sp, #12 - 6166: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - else if(list->has_trans && weight_act >= 0 && ci == 0 && !list->skip_trans) { - 616a: 796a ldrb r2, [r5, #5] - 616c: 0791 lsls r1, r2, #30 - 616e: d506 bpl.n 617e <_lv_style_list_get_int+0x6e> - 6170: 2800 cmp r0, #0 - 6172: db04 blt.n 617e <_lv_style_list_get_int+0x6e> - 6174: f1b9 0f00 cmp.w r9, #0 - 6178: d101 bne.n 617e <_lv_style_list_get_int+0x6e> - 617a: 0752 lsls r2, r2, #29 - 617c: d5ed bpl.n 615a <_lv_style_list_get_int+0x4a> - else if(weight_act > weight) { - 617e: 4284 cmp r4, r0 - *res = value_act; - 6180: bfbe ittt lt - 6182: f8bd 2006 ldrhlt.w r2, [sp, #6] - 6186: f8a8 2000 strhlt.w r2, [r8] - 618a: 4604 movlt r4, r0 - for(ci = 0; ci < list->style_cnt; ci++) { - 618c: 3601 adds r6, #1 - 618e: e7d1 b.n 6134 <_lv_style_list_get_int+0x24> - 6190: 00005719 .word 0x00005719 - 6194: 00005e41 .word 0x00005e41 - -00006198 <_lv_style_list_get_color>: -{ - 6198: e92d 4ff7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr} - 619c: 460f mov r7, r1 - 619e: 4690 mov r8, r2 - if(list == NULL) return LV_RES_INV; - 61a0: 4605 mov r5, r0 - 61a2: b310 cbz r0, 61ea <_lv_style_list_get_color+0x52> - if(list->style_list == NULL) return LV_RES_INV; - 61a4: 6800 ldr r0, [r0, #0] - 61a6: b300 cbz r0, 61ea <_lv_style_list_get_color+0x52> - lv_color_t value_act = { 0 }; - 61a8: 2600 movs r6, #0 - lv_style_t * class = lv_style_list_get_style(list, ci); - 61aa: 4b1b ldr r3, [pc, #108] ; (6218 <_lv_style_list_get_color+0x80>) - int16_t weight_act = _lv_style_get_color(class, prop, &value_act); - 61ac: f8df b06c ldr.w fp, [pc, #108] ; 621c <_lv_style_list_get_color+0x84> - lv_color_t value_act = { 0 }; - 61b0: f8ad 6004 strh.w r6, [sp, #4] - int16_t weight_goal = attr.full; - 61b4: ea4f 2a11 mov.w sl, r1, lsr #8 - int16_t weight = -1; - 61b8: f04f 34ff mov.w r4, #4294967295 ; 0xffffffff - for(ci = 0; ci < list->style_cnt; ci++) { - 61bc: 792a ldrb r2, [r5, #4] - 61be: fa0f f986 sxth.w r9, r6 - 61c2: 4591 cmp r9, r2 - 61c4: db03 blt.n 61ce <_lv_style_list_get_color+0x36> - if(weight >= 0) return LV_RES_OK; - 61c6: 43e0 mvns r0, r4 - if(list == NULL) return LV_RES_INV; - 61c8: f3c0 30c0 ubfx r0, r0, #15, #1 - 61cc: e00d b.n 61ea <_lv_style_list_get_color+0x52> - lv_style_t * class = lv_style_list_get_style(list, ci); - 61ce: b2f1 uxtb r1, r6 - 61d0: 4628 mov r0, r5 - 61d2: 4798 blx r3 - int16_t weight_act = _lv_style_get_color(class, prop, &value_act); - 61d4: aa01 add r2, sp, #4 - 61d6: 4639 mov r1, r7 - 61d8: 47d8 blx fp - if(weight_act == weight_goal) { - 61da: 4582 cmp sl, r0 - 61dc: 4b0e ldr r3, [pc, #56] ; (6218 <_lv_style_list_get_color+0x80>) - 61de: d107 bne.n 61f0 <_lv_style_list_get_color+0x58> - *res = value_act; - 61e0: f8bd 3004 ldrh.w r3, [sp, #4] - 61e4: f8a8 3000 strh.w r3, [r8] - return LV_RES_OK; - 61e8: 2001 movs r0, #1 -} - 61ea: b003 add sp, #12 - 61ec: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - else if(list->has_trans && weight_act >= 0 && ci == 0 && !list->skip_trans) { - 61f0: 796a ldrb r2, [r5, #5] - 61f2: 0791 lsls r1, r2, #30 - 61f4: d506 bpl.n 6204 <_lv_style_list_get_color+0x6c> - 61f6: 2800 cmp r0, #0 - 61f8: db04 blt.n 6204 <_lv_style_list_get_color+0x6c> - 61fa: f1b9 0f00 cmp.w r9, #0 - 61fe: d101 bne.n 6204 <_lv_style_list_get_color+0x6c> - 6200: 0752 lsls r2, r2, #29 - 6202: d5ed bpl.n 61e0 <_lv_style_list_get_color+0x48> - else if(weight_act > weight) { - 6204: 4284 cmp r4, r0 - *res = value_act; - 6206: bfbe ittt lt - 6208: f8bd 2004 ldrhlt.w r2, [sp, #4] - 620c: f8a8 2000 strhlt.w r2, [r8] - 6210: 4604 movlt r4, r0 - for(ci = 0; ci < list->style_cnt; ci++) { - 6212: 3601 adds r6, #1 - 6214: e7d2 b.n 61bc <_lv_style_list_get_color+0x24> - 6216: bf00 nop - 6218: 00005719 .word 0x00005719 - 621c: 00005e41 .word 0x00005e41 - -00006220 <_lv_style_list_get_opa>: -{ - 6220: e92d 4ff7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr} - 6224: 460f mov r7, r1 - 6226: 4690 mov r8, r2 - if(list == NULL) return LV_RES_INV; - 6228: 4605 mov r5, r0 - 622a: b318 cbz r0, 6274 <_lv_style_list_get_opa+0x54> - if(list->style_list == NULL) return LV_RES_INV; - 622c: 6800 ldr r0, [r0, #0] - 622e: b308 cbz r0, 6274 <_lv_style_list_get_opa+0x54> - lv_opa_t value_act = LV_OPA_TRANSP; - 6230: 2600 movs r6, #0 - lv_style_t * class = lv_style_list_get_style(list, ci); - 6232: 4b1b ldr r3, [pc, #108] ; (62a0 <_lv_style_list_get_opa+0x80>) - int16_t weight_act = _lv_style_get_opa(class, prop, &value_act); - 6234: f8df b06c ldr.w fp, [pc, #108] ; 62a4 <_lv_style_list_get_opa+0x84> - lv_opa_t value_act = LV_OPA_TRANSP; - 6238: f88d 6007 strb.w r6, [sp, #7] - int16_t weight_goal = attr.full; - 623c: ea4f 2a11 mov.w sl, r1, lsr #8 - int16_t weight = -1; - 6240: f04f 34ff mov.w r4, #4294967295 ; 0xffffffff - for(ci = 0; ci < list->style_cnt; ci++) { - 6244: 792a ldrb r2, [r5, #4] - 6246: fa0f f986 sxth.w r9, r6 - 624a: 4591 cmp r9, r2 - 624c: db03 blt.n 6256 <_lv_style_list_get_opa+0x36> - if(weight >= 0) return LV_RES_OK; - 624e: 43e0 mvns r0, r4 - if(list == NULL) return LV_RES_INV; - 6250: f3c0 30c0 ubfx r0, r0, #15, #1 - 6254: e00e b.n 6274 <_lv_style_list_get_opa+0x54> - lv_style_t * class = lv_style_list_get_style(list, ci); - 6256: b2f1 uxtb r1, r6 - 6258: 4628 mov r0, r5 - 625a: 4798 blx r3 - int16_t weight_act = _lv_style_get_opa(class, prop, &value_act); - 625c: f10d 0207 add.w r2, sp, #7 - 6260: 4639 mov r1, r7 - 6262: 47d8 blx fp - if(weight_act == weight_goal) { - 6264: 4582 cmp sl, r0 - 6266: 4b0e ldr r3, [pc, #56] ; (62a0 <_lv_style_list_get_opa+0x80>) - 6268: d107 bne.n 627a <_lv_style_list_get_opa+0x5a> - *res = value_act; - 626a: f89d 3007 ldrb.w r3, [sp, #7] - 626e: f888 3000 strb.w r3, [r8] - return LV_RES_OK; - 6272: 2001 movs r0, #1 -} - 6274: b003 add sp, #12 - 6276: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - else if(list->has_trans && weight_act >= 0 && ci == 0 && !list->skip_trans) { - 627a: 796a ldrb r2, [r5, #5] - 627c: 0791 lsls r1, r2, #30 - 627e: d506 bpl.n 628e <_lv_style_list_get_opa+0x6e> - 6280: 2800 cmp r0, #0 - 6282: db04 blt.n 628e <_lv_style_list_get_opa+0x6e> - 6284: f1b9 0f00 cmp.w r9, #0 - 6288: d101 bne.n 628e <_lv_style_list_get_opa+0x6e> - 628a: 0752 lsls r2, r2, #29 - 628c: d5ed bpl.n 626a <_lv_style_list_get_opa+0x4a> - else if(weight_act > weight) { - 628e: 4284 cmp r4, r0 - *res = value_act; - 6290: bfbe ittt lt - 6292: f89d 2007 ldrblt.w r2, [sp, #7] - 6296: f888 2000 strblt.w r2, [r8] - 629a: 4604 movlt r4, r0 - for(ci = 0; ci < list->style_cnt; ci++) { - 629c: 3601 adds r6, #1 - 629e: e7d1 b.n 6244 <_lv_style_list_get_opa+0x24> - 62a0: 00005719 .word 0x00005719 - 62a4: 00005e8d .word 0x00005e8d - -000062a8 <_lv_style_list_get_ptr>: -{ - 62a8: e92d 4ff7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr} - 62ac: 460f mov r7, r1 - 62ae: 4690 mov r8, r2 - if(list == NULL) return LV_RES_INV; - 62b0: 4605 mov r5, r0 - 62b2: b1f8 cbz r0, 62f4 <_lv_style_list_get_ptr+0x4c> - if(list->style_list == NULL) return LV_RES_INV; - 62b4: 6800 ldr r0, [r0, #0] - 62b6: b1e8 cbz r0, 62f4 <_lv_style_list_get_ptr+0x4c> - lv_style_t * class = lv_style_list_get_style(list, ci); - 62b8: 4b19 ldr r3, [pc, #100] ; (6320 <_lv_style_list_get_ptr+0x78>) - int16_t weight_act = _lv_style_get_ptr(class, prop, &value_act); - 62ba: f8df b068 ldr.w fp, [pc, #104] ; 6324 <_lv_style_list_get_ptr+0x7c> - int16_t weight_goal = attr.full; - 62be: ea4f 2a11 mov.w sl, r1, lsr #8 - for(ci = 0; ci < list->style_cnt; ci++) { - 62c2: 2600 movs r6, #0 - int16_t weight = -1; - 62c4: f04f 34ff mov.w r4, #4294967295 ; 0xffffffff - for(ci = 0; ci < list->style_cnt; ci++) { - 62c8: 792a ldrb r2, [r5, #4] - 62ca: fa0f f986 sxth.w r9, r6 - 62ce: 4591 cmp r9, r2 - 62d0: db03 blt.n 62da <_lv_style_list_get_ptr+0x32> - if(weight >= 0) return LV_RES_OK; - 62d2: 43e0 mvns r0, r4 - if(list == NULL) return LV_RES_INV; - 62d4: f3c0 30c0 ubfx r0, r0, #15, #1 - 62d8: e00c b.n 62f4 <_lv_style_list_get_ptr+0x4c> - lv_style_t * class = lv_style_list_get_style(list, ci); - 62da: b2f1 uxtb r1, r6 - 62dc: 4628 mov r0, r5 - 62de: 4798 blx r3 - int16_t weight_act = _lv_style_get_ptr(class, prop, &value_act); - 62e0: aa01 add r2, sp, #4 - 62e2: 4639 mov r1, r7 - 62e4: 47d8 blx fp - if(weight_act == weight_goal) { - 62e6: 4582 cmp sl, r0 - 62e8: 4b0d ldr r3, [pc, #52] ; (6320 <_lv_style_list_get_ptr+0x78>) - 62ea: d106 bne.n 62fa <_lv_style_list_get_ptr+0x52> - *res = value_act; - 62ec: 9b01 ldr r3, [sp, #4] - 62ee: f8c8 3000 str.w r3, [r8] - return LV_RES_OK; - 62f2: 2001 movs r0, #1 -} - 62f4: b003 add sp, #12 - 62f6: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - else if(list->has_trans && weight_act >= 0 && ci == 0 && !list->skip_trans) { - 62fa: 796a ldrb r2, [r5, #5] - 62fc: 0791 lsls r1, r2, #30 - 62fe: d506 bpl.n 630e <_lv_style_list_get_ptr+0x66> - 6300: 2800 cmp r0, #0 - 6302: db04 blt.n 630e <_lv_style_list_get_ptr+0x66> - 6304: f1b9 0f00 cmp.w r9, #0 - 6308: d101 bne.n 630e <_lv_style_list_get_ptr+0x66> - 630a: 0752 lsls r2, r2, #29 - 630c: d5ee bpl.n 62ec <_lv_style_list_get_ptr+0x44> - else if(weight_act > weight) { - 630e: 4284 cmp r4, r0 - *res = value_act; - 6310: bfbe ittt lt - 6312: 9a01 ldrlt r2, [sp, #4] - 6314: f8c8 2000 strlt.w r2, [r8] - 6318: 4604 movlt r4, r0 - for(ci = 0; ci < list->style_cnt; ci++) { - 631a: 3601 adds r6, #1 - 631c: e7d4 b.n 62c8 <_lv_style_list_get_ptr+0x20> - 631e: bf00 nop - 6320: 00005719 .word 0x00005719 - 6324: 00005ed9 .word 0x00005ed9 - -00006328 : - * @param c2 the second color to mix (usually the background) - * @param mix The ratio of the colors. 0: full `c2`, 255: full `c1`, 127: half `c1` and half`c2` - * @return the mixed color - */ -LV_ATTRIBUTE_FAST_MEM static inline lv_color_t lv_color_mix(lv_color_t c1, lv_color_t c2, uint8_t mix) -{ - 6328: b5f0 push {r4, r5, r6, r7, lr} - lv_color_t ret; -#if LV_COLOR_DEPTH != 1 - /*LV_COLOR_DEPTH == 8, 16 or 32*/ - LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix))); - LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix))); - 632a: f3c1 1345 ubfx r3, r1, #5, #6 - LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix))); - 632e: f1c2 06ff rsb r6, r2, #255 ; 0xff - LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix))); - 6332: f3c0 1445 ubfx r4, r0, #5, #6 - 6336: 4373 muls r3, r6 - 6338: fb04 3302 mla r3, r4, r2, r3 - LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix))); - 633c: f001 041f and.w r4, r1, #31 - 6340: f000 071f and.w r7, r0, #31 - 6344: 4374 muls r4, r6 - LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix))); - 6346: f248 0581 movw r5, #32897 ; 0x8081 - LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix))); - 634a: fb07 4402 mla r4, r7, r2, r4 - LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix))); - 634e: 436b muls r3, r5 - LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix))); - 6350: 436c muls r4, r5 -#else - /*LV_COLOR_DEPTH == 1*/ - ret.full = mix > LV_OPA_50 ? c1.full : c2.full; -#endif - - return ret; - 6352: f3c3 53c5 ubfx r3, r3, #23, #6 - 6356: f3c4 54c4 ubfx r4, r4, #23, #5 - 635a: ea44 1443 orr.w r4, r4, r3, lsl #5 - LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix))); - 635e: f3c1 23c4 ubfx r3, r1, #11, #5 - 6362: 4373 muls r3, r6 - 6364: f3c0 20c4 ubfx r0, r0, #11, #5 - 6368: fb00 3202 mla r2, r0, r2, r3 - 636c: fb05 f302 mul.w r3, r5, r2 - 6370: 0ddb lsrs r3, r3, #23 -} - 6372: ea44 20c3 orr.w r0, r4, r3, lsl #11 - 6376: bdf0 pop {r4, r5, r6, r7, pc} - -00006378 : - } - } -} - -static inline lv_color_t color_blend_true_color_additive(lv_color_t fg, lv_color_t bg, lv_opa_t opa) -{ - 6378: 460b mov r3, r1 - - if(opa <= LV_OPA_MIN) return bg; - 637a: 2a05 cmp r2, #5 -{ - 637c: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} - 6380: f000 0c1f and.w ip, r0, #31 - 6384: f3c0 1e45 ubfx lr, r0, #5, #6 - 6388: f3c0 28c4 ubfx r8, r0, #11, #5 - 638c: f003 061f and.w r6, r3, #31 - 6390: f3c3 1545 ubfx r5, r3, #5, #6 - 6394: f3c3 24c4 ubfx r4, r3, #11, #5 - if(opa <= LV_OPA_MIN) return bg; - 6398: d802 bhi.n 63a0 - 639a: 4608 mov r0, r1 -#endif - - if(opa == LV_OPA_COVER) return fg; - - return lv_color_mix(fg, bg, opa); -} - 639c: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} - tmp = bg.ch.red + fg.ch.red; - 63a0: eb04 0308 add.w r3, r4, r8 - fg.ch.red = LV_MATH_MIN(tmp, 31); - 63a4: 2b1f cmp r3, #31 - tmp = bg.ch.green + fg.ch.green; - 63a6: eb05 040e add.w r4, r5, lr - fg.ch.red = LV_MATH_MIN(tmp, 31); - 63aa: bf28 it cs - 63ac: 231f movcs r3, #31 - tmp = bg.ch.blue + fg.ch.blue; - 63ae: eb06 050c add.w r5, r6, ip - fg.ch.green = LV_MATH_MIN(tmp, 63); - 63b2: 2c3f cmp r4, #63 ; 0x3f - 63b4: bf28 it cs - 63b6: 243f movcs r4, #63 ; 0x3f - fg.ch.blue = LV_MATH_MIN(tmp, 31); - 63b8: 2d1f cmp r5, #31 - 63ba: bf28 it cs - 63bc: 251f movcs r5, #31 - if(opa == LV_OPA_COVER) return fg; - 63be: 2aff cmp r2, #255 ; 0xff - fg.ch.red = LV_MATH_MIN(tmp, 31); - 63c0: f003 031f and.w r3, r3, #31 - fg.ch.green = LV_MATH_MIN(tmp, 63); - 63c4: f004 043f and.w r4, r4, #63 ; 0x3f - fg.ch.blue = LV_MATH_MIN(tmp, 31); - 63c8: f005 051f and.w r5, r5, #31 - if(opa == LV_OPA_COVER) return fg; - 63cc: d108 bne.n 63e0 - 63ce: f04f 0000 mov.w r0, #0 - 63d2: f365 0004 bfi r0, r5, #0, #5 - 63d6: f364 104a bfi r0, r4, #5, #6 - 63da: f363 20cf bfi r0, r3, #11, #5 - 63de: e7dd b.n 639c - return lv_color_mix(fg, bg, opa); - 63e0: f365 0004 bfi r0, r5, #0, #5 - 63e4: f364 104a bfi r0, r4, #5, #6 - 63e8: f363 20cf bfi r0, r3, #11, #5 -} - 63ec: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr} - return lv_color_mix(fg, bg, opa); - 63f0: 4b00 ldr r3, [pc, #0] ; (63f4 ) - 63f2: 4718 bx r3 - 63f4: 00006329 .word 0x00006329 - -000063f8 : - -static inline lv_color_t color_blend_true_color_subtractive(lv_color_t fg, lv_color_t bg, lv_opa_t opa) -{ - 63f8: 460b mov r3, r1 - - if(opa <= LV_OPA_MIN) return bg; - 63fa: 2a05 cmp r2, #5 -{ - 63fc: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} - 6400: f000 0c1f and.w ip, r0, #31 - 6404: f3c0 1e45 ubfx lr, r0, #5, #6 - 6408: f3c0 28c4 ubfx r8, r0, #11, #5 - 640c: f003 061f and.w r6, r3, #31 - 6410: f3c3 1545 ubfx r5, r3, #5, #6 - 6414: f3c3 24c4 ubfx r4, r3, #11, #5 - if(opa <= LV_OPA_MIN) return bg; - 6418: d802 bhi.n 6420 - 641a: 4608 mov r0, r1 - fg.ch.blue = LV_MATH_MAX(tmp, 0); - - if(opa == LV_OPA_COVER) return fg; - - return lv_color_mix(fg, bg, opa); -} - 641c: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} - tmp = bg.ch.red - fg.ch.red; - 6420: eba4 0308 sub.w r3, r4, r8 - tmp = bg.ch.green - fg.ch.green; - 6424: eba5 040e sub.w r4, r5, lr - tmp = bg.ch.blue - fg.ch.blue; - 6428: eba6 050c sub.w r5, r6, ip - fg.ch.red = LV_MATH_MAX(tmp, 0); - 642c: ea23 73e3 bic.w r3, r3, r3, asr #31 - fg.ch.green = LV_MATH_MAX(tmp, 0); - 6430: ea24 74e4 bic.w r4, r4, r4, asr #31 - fg.ch.blue = LV_MATH_MAX(tmp, 0); - 6434: ea25 75e5 bic.w r5, r5, r5, asr #31 - if(opa == LV_OPA_COVER) return fg; - 6438: 2aff cmp r2, #255 ; 0xff - fg.ch.red = LV_MATH_MAX(tmp, 0); - 643a: f003 031f and.w r3, r3, #31 - fg.ch.green = LV_MATH_MAX(tmp, 0); - 643e: f004 043f and.w r4, r4, #63 ; 0x3f - fg.ch.blue = LV_MATH_MAX(tmp, 0); - 6442: f005 051f and.w r5, r5, #31 - if(opa == LV_OPA_COVER) return fg; - 6446: d108 bne.n 645a - 6448: f04f 0000 mov.w r0, #0 - 644c: f365 0004 bfi r0, r5, #0, #5 - 6450: f364 104a bfi r0, r4, #5, #6 - 6454: f363 20cf bfi r0, r3, #11, #5 - 6458: e7e0 b.n 641c - return lv_color_mix(fg, bg, opa); - 645a: f365 0004 bfi r0, r5, #0, #5 - 645e: f364 104a bfi r0, r4, #5, #6 - 6462: f363 20cf bfi r0, r3, #11, #5 -} - 6466: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr} - return lv_color_mix(fg, bg, opa); - 646a: 4b01 ldr r3, [pc, #4] ; (6470 ) - 646c: 4718 bx r3 - 646e: bf00 nop - 6470: 00006329 .word 0x00006329 - -00006474 <_lv_blend_fill>: -{ - 6474: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - 6478: b08d sub sp, #52 ; 0x34 - 647a: 4605 mov r5, r0 - 647c: 9305 str r3, [sp, #20] - 647e: f89d 305c ldrb.w r3, [sp, #92] ; 0x5c - 6482: f89d 7058 ldrb.w r7, [sp, #88] ; 0x58 - 6486: f89d b060 ldrb.w fp, [sp, #96] ; 0x60 - 648a: 9304 str r3, [sp, #16] - if(opa < LV_OPA_MIN) return; - 648c: 2b04 cmp r3, #4 -{ - 648e: 460e mov r6, r1 - 6490: 4614 mov r4, r2 - if(opa < LV_OPA_MIN) return; - 6492: f240 80a3 bls.w 65dc <_lv_blend_fill+0x168> - if(mask_res == LV_DRAW_MASK_RES_TRANSP) return; - 6496: 2f00 cmp r7, #0 - 6498: f000 80a0 beq.w 65dc <_lv_blend_fill+0x168> - lv_disp_t * disp = _lv_refr_get_disp_refreshing(); - 649c: 4ba4 ldr r3, [pc, #656] ; (6730 <_lv_blend_fill+0x2bc>) - 649e: 4798 blx r3 - lv_disp_buf_t * vdb = lv_disp_get_buf(disp); - 64a0: 4ba4 ldr r3, [pc, #656] ; (6734 <_lv_blend_fill+0x2c0>) - lv_disp_t * disp = _lv_refr_get_disp_refreshing(); - 64a2: 4682 mov sl, r0 - lv_disp_buf_t * vdb = lv_disp_get_buf(disp); - 64a4: 4798 blx r3 - is_common = _lv_area_intersect(&draw_area, clip_area, fill_area); - 64a6: 4ba4 ldr r3, [pc, #656] ; (6738 <_lv_blend_fill+0x2c4>) - lv_color_t * disp_buf = vdb->buf_act; - 64a8: f8d0 9008 ldr.w r9, [r0, #8] - lv_disp_buf_t * vdb = lv_disp_get_buf(disp); - 64ac: 4680 mov r8, r0 - is_common = _lv_area_intersect(&draw_area, clip_area, fill_area); - 64ae: 4632 mov r2, r6 - 64b0: 4629 mov r1, r5 - 64b2: a80a add r0, sp, #40 ; 0x28 - 64b4: 4798 blx r3 - if(!is_common) return; - 64b6: 2800 cmp r0, #0 - 64b8: f000 8090 beq.w 65dc <_lv_blend_fill+0x168> - draw_area.x1 -= disp_area->x1; - 64bc: f8bd 2028 ldrh.w r2, [sp, #40] ; 0x28 - 64c0: f8b8 0010 ldrh.w r0, [r8, #16] - draw_area.x2 -= disp_area->x1; - 64c4: f8bd 302c ldrh.w r3, [sp, #44] ; 0x2c - draw_area.y1 -= disp_area->y1; - 64c8: f8b8 6012 ldrh.w r6, [r8, #18] - 64cc: f8bd 502a ldrh.w r5, [sp, #42] ; 0x2a - draw_area.x1 -= disp_area->x1; - 64d0: 1a11 subs r1, r2, r0 - draw_area.x2 -= disp_area->x1; - 64d2: 1a18 subs r0, r3, r0 - 64d4: f8ad 002c strh.w r0, [sp, #44] ; 0x2c - draw_area.y2 -= disp_area->y1; - 64d8: f8bd 002e ldrh.w r0, [sp, #46] ; 0x2e - 64dc: 1b80 subs r0, r0, r6 - draw_area.y1 -= disp_area->y1; - 64de: 1bad subs r5, r5, r6 - draw_area.y2 -= disp_area->y1; - 64e0: f8ad 002e strh.w r0, [sp, #46] ; 0x2e - if(mask && disp->driver.antialiasing == 0) - 64e4: 9805 ldr r0, [sp, #20] - draw_area.x1 -= disp_area->x1; - 64e6: b209 sxth r1, r1 - draw_area.y1 -= disp_area->y1; - 64e8: b22d sxth r5, r5 - draw_area.x1 -= disp_area->x1; - 64ea: f8ad 1028 strh.w r1, [sp, #40] ; 0x28 - draw_area.y1 -= disp_area->y1; - 64ee: f8ad 502a strh.w r5, [sp, #42] ; 0x2a - if(mask && disp->driver.antialiasing == 0) - 64f2: 2800 cmp r0, #0 - 64f4: d145 bne.n 6582 <_lv_blend_fill+0x10e> - if(disp->driver.set_px_cb) { - 64f6: f8da 0014 ldr.w r0, [sl, #20] - 64fa: b2a6 uxth r6, r4 - 64fc: 2800 cmp r0, #0 - 64fe: d15a bne.n 65b6 <_lv_blend_fill+0x142> - else if(mode == LV_BLEND_MODE_NORMAL) { - 6500: f1bb 0f00 cmp.w fp, #0 - 6504: f040 8227 bne.w 6956 <_lv_blend_fill+0x4e2> - lv_disp_t * disp = _lv_refr_get_disp_refreshing(); - 6508: 4b89 ldr r3, [pc, #548] ; (6730 <_lv_blend_fill+0x2bc>) - 650a: 4798 blx r3 - * @param area_p pointer to an area - * @return the width of the area (if x1 == x2 -> width = 1) - */ -static inline lv_coord_t lv_area_get_width(const lv_area_t * area_p) -{ - return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - 650c: f8b8 3014 ldrh.w r3, [r8, #20] - 6510: f8b8 2010 ldrh.w r2, [r8, #16] - * @param area_p pointer to an area - * @return the height of the area (if y1 == y2 -> height = 1) - */ -static inline lv_coord_t lv_area_get_height(const lv_area_t * area_p) -{ - return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - 6514: f9bd 102a ldrsh.w r1, [sp, #42] ; 0x2a - return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - 6518: 3301 adds r3, #1 - 651a: eba3 0802 sub.w r8, r3, r2 - 651e: f8bd 302c ldrh.w r3, [sp, #44] ; 0x2c - 6522: f9bd 2028 ldrsh.w r2, [sp, #40] ; 0x28 - 6526: 3301 adds r3, #1 - 6528: 1a9b subs r3, r3, r2 - 652a: b21b sxth r3, r3 - 652c: 9306 str r3, [sp, #24] - return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - 652e: f9bd 302e ldrsh.w r3, [sp, #46] ; 0x2e - 6532: 9308 str r3, [sp, #32] - 6534: 3301 adds r3, #1 - return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - 6536: fa0f f888 sxth.w r8, r8 - return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - 653a: 1a5b subs r3, r3, r1 - int32_t draw_area_h = lv_area_get_height(draw_area); - 653c: b21b sxth r3, r3 - lv_color_t * disp_buf_first = disp_buf + disp_w * draw_area->y1 + draw_area->x1; - 653e: fb08 2201 mla r2, r8, r1, r2 - if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) { - 6542: 2f01 cmp r7, #1 - int32_t draw_area_h = lv_area_get_height(draw_area); - 6544: 9307 str r3, [sp, #28] - lv_disp_t * disp = _lv_refr_get_disp_refreshing(); - 6546: 4682 mov sl, r0 - lv_color_t * disp_buf_first = disp_buf + disp_w * draw_area->y1 + draw_area->x1; - 6548: 460b mov r3, r1 - 654a: eb09 0542 add.w r5, r9, r2, lsl #1 - if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) { - 654e: f040 8132 bne.w 67b6 <_lv_blend_fill+0x342> - if(opa > LV_OPA_MAX) { - 6552: 9b04 ldr r3, [sp, #16] - 6554: 2bfa cmp r3, #250 ; 0xfa - 6556: f240 809e bls.w 6696 <_lv_blend_fill+0x222> - if(disp->driver.gpu_fill_cb && lv_area_get_size(draw_area) > GPU_SIZE_LIMIT) { - 655a: 6a43 ldr r3, [r0, #36] ; 0x24 - 655c: 2b00 cmp r3, #0 - 655e: f000 8095 beq.w 668c <_lv_blend_fill+0x218> - 6562: 4b76 ldr r3, [pc, #472] ; (673c <_lv_blend_fill+0x2c8>) - 6564: a80a add r0, sp, #40 ; 0x28 - 6566: 4798 blx r3 - 6568: 28f0 cmp r0, #240 ; 0xf0 - 656a: f240 808f bls.w 668c <_lv_blend_fill+0x218> - disp->driver.gpu_fill_cb(&disp->driver, disp_buf, disp_w, draw_area, color); - 656e: f8da 5024 ldr.w r5, [sl, #36] ; 0x24 - 6572: f8ad 4000 strh.w r4, [sp] - 6576: ab0a add r3, sp, #40 ; 0x28 - 6578: 4642 mov r2, r8 - 657a: 4649 mov r1, r9 - 657c: 4650 mov r0, sl - 657e: 47a8 blx r5 - return; - 6580: e02c b.n 65dc <_lv_blend_fill+0x168> - if(mask && disp->driver.antialiasing == 0) - 6582: f89a 0008 ldrb.w r0, [sl, #8] - 6586: 07c0 lsls r0, r0, #31 - 6588: d4b5 bmi.n 64f6 <_lv_blend_fill+0x82> - return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - 658a: 1c58 adds r0, r3, #1 - 658c: 1a80 subs r0, r0, r2 - for(i = 0; i < mask_w; i++) mask[i] = mask[i] > 128 ? LV_OPA_COVER : LV_OPA_TRANSP; - 658e: 9e05 ldr r6, [sp, #20] - int32_t mask_w = lv_area_get_width(&draw_area); - 6590: fa0f fe80 sxth.w lr, r0 - for(i = 0; i < mask_w; i++) mask[i] = mask[i] > 128 ? LV_OPA_COVER : LV_OPA_TRANSP; - 6594: 9805 ldr r0, [sp, #20] - 6596: f1c6 0c01 rsb ip, r6, #1 - 659a: 3801 subs r0, #1 - 659c: eb0c 0600 add.w r6, ip, r0 - 65a0: 45b6 cmp lr, r6 - 65a2: dda8 ble.n 64f6 <_lv_blend_fill+0x82> - 65a4: f810 6f01 ldrb.w r6, [r0, #1]! - 65a8: 2e80 cmp r6, #128 ; 0x80 - 65aa: f04f 36ff mov.w r6, #4294967295 ; 0xffffffff - 65ae: bf98 it ls - 65b0: 2600 movls r6, #0 - 65b2: 7006 strb r6, [r0, #0] - 65b4: e7f2 b.n 659c <_lv_blend_fill+0x128> - lv_disp_t * disp = _lv_refr_get_disp_refreshing(); - 65b6: 4b5e ldr r3, [pc, #376] ; (6730 <_lv_blend_fill+0x2bc>) - 65b8: 4798 blx r3 - 65ba: f8b8 2014 ldrh.w r2, [r8, #20] - 65be: f8b8 3010 ldrh.w r3, [r8, #16] - 65c2: f9bd 502a ldrsh.w r5, [sp, #42] ; 0x2a - 65c6: 3201 adds r2, #1 - 65c8: 1ad2 subs r2, r2, r3 - if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) { - 65ca: 2f01 cmp r7, #1 - lv_disp_t * disp = _lv_refr_get_disp_refreshing(); - 65cc: 4606 mov r6, r0 - 65ce: b212 sxth r2, r2 - if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) { - 65d0: d121 bne.n 6616 <_lv_blend_fill+0x1a2> - for(y = draw_area->y1; y <= draw_area->y2; y++) { - 65d2: 46aa mov sl, r5 - 65d4: f9bd 302e ldrsh.w r3, [sp, #46] ; 0x2e - 65d8: 459a cmp sl, r3 - 65da: dd02 ble.n 65e2 <_lv_blend_fill+0x16e> -} - 65dc: b00d add sp, #52 ; 0x34 - 65de: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - for(x = draw_area->x1; x <= draw_area->x2; x++) { - 65e2: f9bd 7028 ldrsh.w r7, [sp, #40] ; 0x28 - disp->driver.set_px_cb(&disp->driver, (void *)disp_buf, disp_w, x, y, color, opa); - 65e6: fa0f f88a sxth.w r8, sl - for(x = draw_area->x1; x <= draw_area->x2; x++) { - 65ea: f9bd 302c ldrsh.w r3, [sp, #44] ; 0x2c - 65ee: 429f cmp r7, r3 - 65f0: dd02 ble.n 65f8 <_lv_blend_fill+0x184> - for(y = draw_area->y1; y <= draw_area->y2; y++) { - 65f2: f10a 0a01 add.w sl, sl, #1 - 65f6: e7ed b.n 65d4 <_lv_blend_fill+0x160> - disp->driver.set_px_cb(&disp->driver, (void *)disp_buf, disp_w, x, y, color, opa); - 65f8: 9b04 ldr r3, [sp, #16] - 65fa: 9302 str r3, [sp, #8] - 65fc: f8ad 4004 strh.w r4, [sp, #4] - 6600: f8cd 8000 str.w r8, [sp] - 6604: b23b sxth r3, r7 - 6606: 6975 ldr r5, [r6, #20] - 6608: 9205 str r2, [sp, #20] - 660a: 4649 mov r1, r9 - 660c: 4630 mov r0, r6 - 660e: 47a8 blx r5 - for(x = draw_area->x1; x <= draw_area->x2; x++) { - 6610: 3701 adds r7, #1 - 6612: 9a05 ldr r2, [sp, #20] - 6614: e7e9 b.n 65ea <_lv_blend_fill+0x176> - 6616: f8bd 702c ldrh.w r7, [sp, #44] ; 0x2c - const lv_opa_t * mask_tmp = mask - draw_area->x1; - 661a: f9bd 3028 ldrsh.w r3, [sp, #40] ; 0x28 - 661e: 9905 ldr r1, [sp, #20] - 6620: 3701 adds r7, #1 - 6622: 1aff subs r7, r7, r3 - 6624: eba1 0a03 sub.w sl, r1, r3 - 6628: b23b sxth r3, r7 - 662a: 9305 str r3, [sp, #20] - for(y = draw_area->y1; y <= draw_area->y2; y++) { - 662c: f9bd 302e ldrsh.w r3, [sp, #46] ; 0x2e - 6630: 429d cmp r5, r3 - 6632: dcd3 bgt.n 65dc <_lv_blend_fill+0x168> - for(x = draw_area->x1; x <= draw_area->x2; x++) { - 6634: f9bd 8028 ldrsh.w r8, [sp, #40] ; 0x28 - disp->driver.set_px_cb(&disp->driver, (void *)disp_buf, disp_w, x, y, color, - 6638: fa0f fb85 sxth.w fp, r5 - for(x = draw_area->x1; x <= draw_area->x2; x++) { - 663c: f9bd 302c ldrsh.w r3, [sp, #44] ; 0x2c - 6640: 4598 cmp r8, r3 - 6642: dd03 ble.n 664c <_lv_blend_fill+0x1d8> - mask_tmp += draw_area_w; - 6644: 9b05 ldr r3, [sp, #20] - for(y = draw_area->y1; y <= draw_area->y2; y++) { - 6646: 3501 adds r5, #1 - mask_tmp += draw_area_w; - 6648: 449a add sl, r3 - for(y = draw_area->y1; y <= draw_area->y2; y++) { - 664a: e7ef b.n 662c <_lv_blend_fill+0x1b8> - (uint32_t)((uint32_t)opa * mask_tmp[x]) >> 8); - 664c: f81a 3008 ldrb.w r3, [sl, r8] - 6650: 9904 ldr r1, [sp, #16] - disp->driver.set_px_cb(&disp->driver, (void *)disp_buf, disp_w, x, y, color, - 6652: f8ad 4004 strh.w r4, [sp, #4] - (uint32_t)((uint32_t)opa * mask_tmp[x]) >> 8); - 6656: fb13 f301 smulbb r3, r3, r1 - disp->driver.set_px_cb(&disp->driver, (void *)disp_buf, disp_w, x, y, color, - 665a: 0a1b lsrs r3, r3, #8 - 665c: 9302 str r3, [sp, #8] - 665e: f8cd b000 str.w fp, [sp] - 6662: fa0f f388 sxth.w r3, r8 - 6666: 6977 ldr r7, [r6, #20] - 6668: 9206 str r2, [sp, #24] - 666a: 4649 mov r1, r9 - 666c: 4630 mov r0, r6 - 666e: 47b8 blx r7 - for(x = draw_area->x1; x <= draw_area->x2; x++) { - 6670: f108 0801 add.w r8, r8, #1 - 6674: 9a06 ldr r2, [sp, #24] - 6676: e7e1 b.n 663c <_lv_blend_fill+0x1c8> - lv_color_fill(disp_buf_first, color, draw_area_w); - 6678: 4628 mov r0, r5 - 667a: 9a06 ldr r2, [sp, #24] - 667c: 4631 mov r1, r6 - 667e: 47b8 blx r7 - disp_buf_first += disp_w; - 6680: 4445 add r5, r8 - for(y = 0; y < draw_area_h; y++) { - 6682: 3401 adds r4, #1 - 6684: 9b07 ldr r3, [sp, #28] - 6686: 42a3 cmp r3, r4 - 6688: dcf6 bgt.n 6678 <_lv_blend_fill+0x204> - 668a: e7a7 b.n 65dc <_lv_blend_fill+0x168> - lv_color_fill(disp_buf_first, color, draw_area_w); - 668c: 4f2c ldr r7, [pc, #176] ; (6740 <_lv_blend_fill+0x2cc>) - disp_buf_first += disp_w; - 668e: ea4f 0848 mov.w r8, r8, lsl #1 - 6692: 2400 movs r4, #0 - 6694: e7f6 b.n 6684 <_lv_blend_fill+0x210> - if(disp->driver.gpu_blend_cb && lv_area_get_size(draw_area) > GPU_SIZE_LIMIT) { - 6696: 6a03 ldr r3, [r0, #32] - 6698: b313 cbz r3, 66e0 <_lv_blend_fill+0x26c> - 669a: 4b28 ldr r3, [pc, #160] ; (673c <_lv_blend_fill+0x2c8>) - 669c: a80a add r0, sp, #40 ; 0x28 - 669e: 4798 blx r3 - 66a0: 28f0 cmp r0, #240 ; 0xf0 - 66a2: d91d bls.n 66e0 <_lv_blend_fill+0x26c> - 66a4: 4b27 ldr r3, [pc, #156] ; (6744 <_lv_blend_fill+0x2d0>) - for(x = 0; x < draw_area_w ; x++) blend_buf[x].full = color.full; - 66a6: 9a06 ldr r2, [sp, #24] - 66a8: 455a cmp r2, fp - 66aa: dc14 bgt.n 66d6 <_lv_blend_fill+0x262> - for(y = draw_area->y1; y <= draw_area->y2; y++) { - 66ac: f9bd 602a ldrsh.w r6, [sp, #42] ; 0x2a - disp->driver.gpu_blend_cb(&disp->driver, disp_buf_first, blend_buf, draw_area_w, opa); - 66b0: 4f24 ldr r7, [pc, #144] ; (6744 <_lv_blend_fill+0x2d0>) - disp_buf_first += disp_w; - 66b2: ea4f 0848 mov.w r8, r8, lsl #1 - for(y = draw_area->y1; y <= draw_area->y2; y++) { - 66b6: f9bd 302e ldrsh.w r3, [sp, #46] ; 0x2e - 66ba: 429e cmp r6, r3 - 66bc: dc8e bgt.n 65dc <_lv_blend_fill+0x168> - disp->driver.gpu_blend_cb(&disp->driver, disp_buf_first, blend_buf, draw_area_w, opa); - 66be: 9b04 ldr r3, [sp, #16] - 66c0: 9300 str r3, [sp, #0] - 66c2: 4629 mov r1, r5 - 66c4: f8da 4020 ldr.w r4, [sl, #32] - 66c8: 9b06 ldr r3, [sp, #24] - 66ca: 463a mov r2, r7 - 66cc: 4650 mov r0, sl - 66ce: 47a0 blx r4 - disp_buf_first += disp_w; - 66d0: 4445 add r5, r8 - for(y = draw_area->y1; y <= draw_area->y2; y++) { - 66d2: 3601 adds r6, #1 - 66d4: e7ef b.n 66b6 <_lv_blend_fill+0x242> - for(x = 0; x < draw_area_w ; x++) blend_buf[x].full = color.full; - 66d6: f823 6b02 strh.w r6, [r3], #2 - 66da: f10b 0b01 add.w fp, fp, #1 - 66de: e7e2 b.n 66a6 <_lv_blend_fill+0x232> - lv_color_t last_res_color = lv_color_mix(color, last_dest_color, opa); - 66e0: 9a04 ldr r2, [sp, #16] - 66e2: 4b19 ldr r3, [pc, #100] ; (6748 <_lv_blend_fill+0x2d4>) - 66e4: 4620 mov r0, r4 - lv_color_t last_dest_color = LV_COLOR_BLACK; - 66e6: f04f 0100 mov.w r1, #0 - lv_color_t last_res_color = lv_color_mix(color, last_dest_color, opa); - 66ea: 4798 blx r3 - -LV_ATTRIBUTE_FAST_MEM static inline void lv_color_premult(lv_color_t c, uint8_t mix, uint16_t * out) -{ -#if LV_COLOR_DEPTH != 1 - out[0] = (uint16_t) LV_COLOR_GET_R(c) * mix; - 66ec: 9e04 ldr r6, [sp, #16] - 66ee: f3c4 22c4 ubfx r2, r4, #11, #5 - 66f2: 4372 muls r2, r6 - 66f4: 9205 str r2, [sp, #20] - out[1] = (uint16_t) LV_COLOR_GET_G(c) * mix; - 66f6: f3c4 1245 ubfx r2, r4, #5, #6 - out[2] = (uint16_t) LV_COLOR_GET_B(c) * mix; - 66fa: f004 041f and.w r4, r4, #31 - out[1] = (uint16_t) LV_COLOR_GET_G(c) * mix; - 66fe: fb02 fb06 mul.w fp, r2, r6 - out[2] = (uint16_t) LV_COLOR_GET_B(c) * mix; - 6702: fb04 fa06 mul.w sl, r4, r6 - disp_buf_first += disp_w; - 6706: ea4f 0248 mov.w r2, r8, lsl #1 - lv_opa_t opa_inv = 255 - opa; - 670a: 43f6 mvns r6, r6 - lv_color_t last_res_color = lv_color_mix(color, last_dest_color, opa); - 670c: f000 031f and.w r3, r0, #31 - 6710: f3c0 1c45 ubfx ip, r0, #5, #6 - disp_buf_first += disp_w; - 6714: 9204 str r2, [sp, #16] - lv_color_t last_res_color = lv_color_mix(color, last_dest_color, opa); - 6716: f3c0 20c4 ubfx r0, r0, #11, #5 - for(y = 0; y < draw_area_h; y++) { - 671a: f04f 0800 mov.w r8, #0 -LV_ATTRIBUTE_FAST_MEM static inline lv_color_t lv_color_mix_premult(uint16_t * premult_c1, lv_color_t c2, uint8_t mix) -{ - lv_color_t ret; -#if LV_COLOR_DEPTH != 1 - /*LV_COLOR_DEPTH == 8, 16 or 32*/ - LV_COLOR_SET_R(ret, (uint16_t)((uint16_t) premult_c1[0] + LV_COLOR_GET_R(c2) * mix) >> 8); - 671e: b2f6 uxtb r6, r6 - 6720: 9a07 ldr r2, [sp, #28] - 6722: 4542 cmp r2, r8 - 6724: f77f af5a ble.w 65dc <_lv_blend_fill+0x168> - 6728: 462f mov r7, r5 - for(x = 0; x < draw_area_w; x++) { - 672a: f04f 0e00 mov.w lr, #0 - 672e: e03a b.n 67a6 <_lv_blend_fill+0x332> - 6730: 0000526d .word 0x0000526d - 6734: 0000dc65 .word 0x0000dc65 - 6738: 0000e111 .word 0x0000e111 - 673c: 0000e0f5 .word 0x0000e0f5 - 6740: 0000e58d .word 0x0000e58d - 6744: 200030d8 .word 0x200030d8 - 6748: 00006329 .word 0x00006329 - if(last_dest_color.full != disp_buf_first[x].full) { - 674c: 463a mov r2, r7 - 674e: fa1f f981 uxth.w r9, r1 - 6752: 8814 ldrh r4, [r2, #0] - 6754: 45a1 cmp r9, r4 - 6756: f107 0702 add.w r7, r7, #2 - 675a: d015 beq.n 6788 <_lv_blend_fill+0x314> - 675c: 7850 ldrb r0, [r2, #1] - 675e: 9b05 ldr r3, [sp, #20] - last_dest_color = disp_buf_first[x]; - 6760: f837 1c02 ldrh.w r1, [r7, #-2] - 6764: 08c0 lsrs r0, r0, #3 - 6766: fb00 3006 mla r0, r0, r6, r3 - LV_COLOR_SET_G(ret, (uint16_t)((uint16_t) premult_c1[1] + LV_COLOR_GET_G(c2) * mix) >> 8); - LV_COLOR_SET_B(ret, (uint16_t)((uint16_t) premult_c1[2] + LV_COLOR_GET_B(c2) * mix) >> 8); - 676a: 7813 ldrb r3, [r2, #0] - LV_COLOR_SET_G(ret, (uint16_t)((uint16_t) premult_c1[1] + LV_COLOR_GET_G(c2) * mix) >> 8); - 676c: f3c4 1445 ubfx r4, r4, #5, #6 - LV_COLOR_SET_B(ret, (uint16_t)((uint16_t) premult_c1[2] + LV_COLOR_GET_B(c2) * mix) >> 8); - 6770: f003 031f and.w r3, r3, #31 - LV_COLOR_SET_G(ret, (uint16_t)((uint16_t) premult_c1[1] + LV_COLOR_GET_G(c2) * mix) >> 8); - 6774: fb04 b406 mla r4, r4, r6, fp - LV_COLOR_SET_B(ret, (uint16_t)((uint16_t) premult_c1[2] + LV_COLOR_GET_B(c2) * mix) >> 8); - 6778: fb03 a306 mla r3, r3, r6, sl - LV_COLOR_SET_R(ret, (uint16_t)((uint16_t) premult_c1[0] + LV_COLOR_GET_R(c2) * mix) >> 8); - 677c: f3c0 2004 ubfx r0, r0, #8, #5 - LV_COLOR_SET_G(ret, (uint16_t)((uint16_t) premult_c1[1] + LV_COLOR_GET_G(c2) * mix) >> 8); - 6780: f3c4 2c05 ubfx ip, r4, #8, #6 - LV_COLOR_SET_B(ret, (uint16_t)((uint16_t) premult_c1[2] + LV_COLOR_GET_B(c2) * mix) >> 8); - 6784: f3c3 2304 ubfx r3, r3, #8, #5 - disp_buf_first[x] = last_res_color; - 6788: 7814 ldrb r4, [r2, #0] - 678a: f363 0404 bfi r4, r3, #0, #5 - 678e: 7014 strb r4, [r2, #0] - 6790: 8814 ldrh r4, [r2, #0] - 6792: f36c 144a bfi r4, ip, #5, #6 - 6796: 8014 strh r4, [r2, #0] - 6798: f3c4 2407 ubfx r4, r4, #8, #8 - 679c: f360 04c7 bfi r4, r0, #3, #5 - 67a0: 7054 strb r4, [r2, #1] - for(x = 0; x < draw_area_w; x++) { - 67a2: f10e 0e01 add.w lr, lr, #1 - 67a6: 9a06 ldr r2, [sp, #24] - 67a8: 4572 cmp r2, lr - 67aa: dccf bgt.n 674c <_lv_blend_fill+0x2d8> - disp_buf_first += disp_w; - 67ac: 9a04 ldr r2, [sp, #16] - for(y = 0; y < draw_area_h; y++) { - 67ae: f108 0801 add.w r8, r8, #1 - disp_buf_first += disp_w; - 67b2: 4415 add r5, r2 - for(y = 0; y < draw_area_h; y++) { - 67b4: e7b4 b.n 6720 <_lv_blend_fill+0x2ac> - last_dest_color.full = disp_buf_first[0].full; - 67b6: f839 1012 ldrh.w r1, [r9, r2, lsl #1] - disp_buf_first += disp_w; - 67ba: ea4f 0248 mov.w r2, r8, lsl #1 - 67be: 9209 str r2, [sp, #36] ; 0x24 - if(opa > LV_OPA_MAX) { - 67c0: 9a04 ldr r2, [sp, #16] - 67c2: 2afa cmp r2, #250 ; 0xfa - 67c4: f240 80c4 bls.w 6950 <_lv_blend_fill+0x4dc> - int32_t x_end4 = draw_area_w - 4; - 67c8: 9b06 ldr r3, [sp, #24] - FILL_NORMAL_MASK_PX(x, color) - 67ca: f8df 8298 ldr.w r8, [pc, #664] ; 6a64 <_lv_blend_fill+0x5f0> - int32_t x_end4 = draw_area_w - 4; - 67ce: 3b04 subs r3, #4 - 67d0: 9304 str r3, [sp, #16] - for(y = 0; y < draw_area_h; y++) { - 67d2: 9b07 ldr r3, [sp, #28] - 67d4: 455b cmp r3, fp - 67d6: f77f af01 ble.w 65dc <_lv_blend_fill+0x168> - 67da: f8dd a014 ldr.w sl, [sp, #20] - 67de: 46a9 mov r9, r5 - for(x = 0; x < draw_area_w && ((lv_uintptr_t)mask_tmp_x & 0x3); x++) { - 67e0: 2400 movs r4, #0 - 67e2: e013 b.n 680c <_lv_blend_fill+0x398> - FILL_NORMAL_MASK_PX(x, color) - 67e4: f8b9 1000 ldrh.w r1, [r9] - 67e8: 4630 mov r0, r6 - 67ea: 47c0 blx r8 - 67ec: f8a9 0000 strh.w r0, [r9] - 67f0: e009 b.n 6806 <_lv_blend_fill+0x392> - for(x = 0; x < draw_area_w && ((lv_uintptr_t)mask_tmp_x & 0x3); x++) { - 67f2: f01a 0f03 tst.w sl, #3 - 67f6: d00d beq.n 6814 <_lv_blend_fill+0x3a0> - FILL_NORMAL_MASK_PX(x, color) - 67f8: f81a 2b01 ldrb.w r2, [sl], #1 - 67fc: b11a cbz r2, 6806 <_lv_blend_fill+0x392> - 67fe: 2aff cmp r2, #255 ; 0xff - 6800: d1f0 bne.n 67e4 <_lv_blend_fill+0x370> - 6802: f8a9 6000 strh.w r6, [r9] - for(x = 0; x < draw_area_w && ((lv_uintptr_t)mask_tmp_x & 0x3); x++) { - 6806: 3401 adds r4, #1 - 6808: f109 0902 add.w r9, r9, #2 - 680c: 9b06 ldr r3, [sp, #24] - 680e: 42a3 cmp r3, r4 - 6810: 4657 mov r7, sl - 6812: dcee bgt.n 67f2 <_lv_blend_fill+0x37e> - 6814: eb05 0944 add.w r9, r5, r4, lsl #1 - for(; x <= x_end4; x += 4) { - 6818: 9b04 ldr r3, [sp, #16] - 681a: 42a3 cmp r3, r4 - 681c: da0e bge.n 683c <_lv_blend_fill+0x3c8> - 681e: 3f01 subs r7, #1 - 6820: eb05 0944 add.w r9, r5, r4, lsl #1 - for(; x < draw_area_w ; x++) { - 6824: 9b06 ldr r3, [sp, #24] - 6826: 42a3 cmp r3, r4 - 6828: dc4c bgt.n 68c4 <_lv_blend_fill+0x450> - disp_buf_first += disp_w; - 682a: 9b09 ldr r3, [sp, #36] ; 0x24 - 682c: 441d add r5, r3 - mask += draw_area_w; - 682e: e9dd 3205 ldrd r3, r2, [sp, #20] - 6832: 4413 add r3, r2 - 6834: 9305 str r3, [sp, #20] - for(y = 0; y < draw_area_h; y++) { - 6836: f10b 0b01 add.w fp, fp, #1 - 683a: e7ca b.n 67d2 <_lv_blend_fill+0x35e> - if(*mask32) { - 683c: 683b ldr r3, [r7, #0] - 683e: b14b cbz r3, 6854 <_lv_blend_fill+0x3e0> - if((*mask32) == 0xFFFFFFFF) { - 6840: 3301 adds r3, #1 - 6842: d10c bne.n 685e <_lv_blend_fill+0x3ea> - disp_buf_first[x] = color; - 6844: f8a9 6000 strh.w r6, [r9] - disp_buf_first[x + 1] = color; - 6848: f8a9 6002 strh.w r6, [r9, #2] - disp_buf_first[x + 2] = color; - 684c: f8a9 6004 strh.w r6, [r9, #4] - FILL_NORMAL_MASK_PX(x + 3, color) - 6850: f8a9 6006 strh.w r6, [r9, #6] - mask32++; - 6854: 3704 adds r7, #4 - for(; x <= x_end4; x += 4) { - 6856: 3404 adds r4, #4 - 6858: f109 0908 add.w r9, r9, #8 - 685c: e7dc b.n 6818 <_lv_blend_fill+0x3a4> - FILL_NORMAL_MASK_PX(x, color) - 685e: 783a ldrb r2, [r7, #0] - 6860: b11a cbz r2, 686a <_lv_blend_fill+0x3f6> - 6862: 2aff cmp r2, #255 ; 0xff - 6864: d119 bne.n 689a <_lv_blend_fill+0x426> - 6866: f8a9 6000 strh.w r6, [r9] - FILL_NORMAL_MASK_PX(x + 1, color) - 686a: 787a ldrb r2, [r7, #1] - 686c: b11a cbz r2, 6876 <_lv_blend_fill+0x402> - 686e: 2aff cmp r2, #255 ; 0xff - 6870: d11a bne.n 68a8 <_lv_blend_fill+0x434> - 6872: f8a9 6002 strh.w r6, [r9, #2] - FILL_NORMAL_MASK_PX(x + 2, color) - 6876: 78ba ldrb r2, [r7, #2] - 6878: b11a cbz r2, 6882 <_lv_blend_fill+0x40e> - 687a: 2aff cmp r2, #255 ; 0xff - 687c: d11b bne.n 68b6 <_lv_blend_fill+0x442> - 687e: f8a9 6004 strh.w r6, [r9, #4] - FILL_NORMAL_MASK_PX(x + 3, color) - 6882: 78fa ldrb r2, [r7, #3] - 6884: 2a00 cmp r2, #0 - 6886: d0e5 beq.n 6854 <_lv_blend_fill+0x3e0> - 6888: 2aff cmp r2, #255 ; 0xff - 688a: d0e1 beq.n 6850 <_lv_blend_fill+0x3dc> - 688c: f8b9 1006 ldrh.w r1, [r9, #6] - 6890: 4630 mov r0, r6 - 6892: 47c0 blx r8 - 6894: f8a9 0006 strh.w r0, [r9, #6] - 6898: e7dc b.n 6854 <_lv_blend_fill+0x3e0> - FILL_NORMAL_MASK_PX(x, color) - 689a: f8b9 1000 ldrh.w r1, [r9] - 689e: 4630 mov r0, r6 - 68a0: 47c0 blx r8 - 68a2: f8a9 0000 strh.w r0, [r9] - 68a6: e7e0 b.n 686a <_lv_blend_fill+0x3f6> - FILL_NORMAL_MASK_PX(x + 1, color) - 68a8: f8b9 1002 ldrh.w r1, [r9, #2] - 68ac: 4630 mov r0, r6 - 68ae: 47c0 blx r8 - 68b0: f8a9 0002 strh.w r0, [r9, #2] - 68b4: e7df b.n 6876 <_lv_blend_fill+0x402> - FILL_NORMAL_MASK_PX(x + 2, color) - 68b6: f8b9 1004 ldrh.w r1, [r9, #4] - 68ba: 4630 mov r0, r6 - 68bc: 47c0 blx r8 - 68be: f8a9 0004 strh.w r0, [r9, #4] - 68c2: e7de b.n 6882 <_lv_blend_fill+0x40e> - FILL_NORMAL_MASK_PX(x, color) - 68c4: f817 2f01 ldrb.w r2, [r7, #1]! - 68c8: b11a cbz r2, 68d2 <_lv_blend_fill+0x45e> - 68ca: 2aff cmp r2, #255 ; 0xff - 68cc: d105 bne.n 68da <_lv_blend_fill+0x466> - 68ce: f8a9 6000 strh.w r6, [r9] - for(; x < draw_area_w ; x++) { - 68d2: 3401 adds r4, #1 - 68d4: f109 0902 add.w r9, r9, #2 - 68d8: e7a4 b.n 6824 <_lv_blend_fill+0x3b0> - FILL_NORMAL_MASK_PX(x, color) - 68da: f8b9 1000 ldrh.w r1, [r9] - 68de: 4630 mov r0, r6 - 68e0: 47c0 blx r8 - 68e2: f8a9 0000 strh.w r0, [r9] - 68e6: e7f4 b.n 68d2 <_lv_blend_fill+0x45e> - if(*mask_tmp_x) { - 68e8: 9a05 ldr r2, [sp, #20] - 68ea: f812 4008 ldrb.w r4, [r2, r8] - 68ee: b1d4 cbz r4, 6926 <_lv_blend_fill+0x4b2> - if(*mask_tmp_x != last_mask) opa_tmp = *mask_tmp_x == LV_OPA_COVER ? opa : - 68f0: 455c cmp r4, fp - if(*mask_tmp_x != last_mask || last_dest_color.full != disp_buf_first[x].full) { - 68f2: f8b7 9000 ldrh.w r9, [r7] - if(*mask_tmp_x != last_mask) opa_tmp = *mask_tmp_x == LV_OPA_COVER ? opa : - 68f6: d012 beq.n 691e <_lv_blend_fill+0x4aa> - 68f8: 2cff cmp r4, #255 ; 0xff - (uint32_t)((uint32_t)(*mask_tmp_x) * opa) >> 8; - 68fa: bf17 itett ne - 68fc: 9a04 ldrne r2, [sp, #16] - 68fe: f8dd a010 ldreq.w sl, [sp, #16] - 6902: fb14 f202 smulbbne r2, r4, r2 - if(*mask_tmp_x != last_mask) opa_tmp = *mask_tmp_x == LV_OPA_COVER ? opa : - 6906: ea4f 2a12 movne.w sl, r2, lsr #8 - 690a: 9307 str r3, [sp, #28] - else last_res_color = lv_color_mix(color, disp_buf_first[x], opa_tmp); - 690c: 8839 ldrh r1, [r7, #0] - 690e: 4b55 ldr r3, [pc, #340] ; (6a64 <_lv_blend_fill+0x5f0>) - 6910: 4652 mov r2, sl - 6912: 4630 mov r0, r6 - 6914: 4798 blx r3 - 6916: 46a3 mov fp, r4 - 6918: 9b07 ldr r3, [sp, #28] - 691a: b280 uxth r0, r0 - last_dest_color.full = disp_buf_first[x].full; - 691c: e001 b.n 6922 <_lv_blend_fill+0x4ae> - if(*mask_tmp_x != last_mask || last_dest_color.full != disp_buf_first[x].full) { - 691e: 4549 cmp r1, r9 - 6920: d1f3 bne.n 690a <_lv_blend_fill+0x496> - disp_buf_first[x] = last_res_color; - 6922: 8038 strh r0, [r7, #0] - if(*mask_tmp_x != last_mask || last_dest_color.full != disp_buf_first[x].full) { - 6924: 4649 mov r1, r9 - for(x = 0; x < draw_area_w; x++) { - 6926: f108 0801 add.w r8, r8, #1 - 692a: 3702 adds r7, #2 - 692c: 9a06 ldr r2, [sp, #24] - 692e: 4542 cmp r2, r8 - 6930: dcda bgt.n 68e8 <_lv_blend_fill+0x474> - disp_buf_first += disp_w; - 6932: 9a09 ldr r2, [sp, #36] ; 0x24 - 6934: 4415 add r5, r2 - mask += draw_area_w; - 6936: e9dd 2405 ldrd r2, r4, [sp, #20] - 693a: 4422 add r2, r4 - 693c: 9205 str r2, [sp, #20] - for(y = draw_area->y1; y <= draw_area->y2; y++) { - 693e: 3301 adds r3, #1 - 6940: 9a08 ldr r2, [sp, #32] - 6942: 4293 cmp r3, r2 - 6944: f73f ae4a bgt.w 65dc <_lv_blend_fill+0x168> - 6948: 462f mov r7, r5 - for(x = 0; x < draw_area_w; x++) { - 694a: f04f 0800 mov.w r8, #0 - 694e: e7ed b.n 692c <_lv_blend_fill+0x4b8> - last_res_color.full = disp_buf_first[0].full; - 6950: 4608 mov r0, r1 - lv_opa_t opa_tmp = LV_OPA_TRANSP; - 6952: 46da mov sl, fp - 6954: e7f4 b.n 6940 <_lv_blend_fill+0x4cc> - switch(mode) { - 6956: f1bb 0f01 cmp.w fp, #1 - 695a: f9b8 0010 ldrsh.w r0, [r8, #16] - 695e: f9b8 6014 ldrsh.w r6, [r8, #20] - 6962: d00c beq.n 697e <_lv_blend_fill+0x50a> - 6964: f1bb 0f02 cmp.w fp, #2 - 6968: d02d beq.n 69c6 <_lv_blend_fill+0x552> - LV_LOG_WARN("fill_blended: unsupported blend mode"); - 696a: 4b3f ldr r3, [pc, #252] ; (6a68 <_lv_blend_fill+0x5f4>) - 696c: 9300 str r3, [sp, #0] - 696e: 493f ldr r1, [pc, #252] ; (6a6c <_lv_blend_fill+0x5f8>) - 6970: 4b3f ldr r3, [pc, #252] ; (6a70 <_lv_blend_fill+0x5fc>) - 6972: 4c40 ldr r4, [pc, #256] ; (6a74 <_lv_blend_fill+0x600>) - 6974: f44f 7204 mov.w r2, #528 ; 0x210 - 6978: 2002 movs r0, #2 - 697a: 47a0 blx r4 - return; - 697c: e62e b.n 65dc <_lv_blend_fill+0x168> - blend_fp = color_blend_true_color_additive; - 697e: f8df b0f8 ldr.w fp, [pc, #248] ; 6a78 <_lv_blend_fill+0x604> - 6982: 3601 adds r6, #1 - 6984: 1a36 subs r6, r6, r0 - 6986: b236 sxth r6, r6 - lv_color_t * disp_buf_tmp = disp_buf + disp_w * draw_area->y1; - 6988: fb06 f005 mul.w r0, r6, r5 - if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) { - 698c: 2f01 cmp r7, #1 - lv_color_t * disp_buf_tmp = disp_buf + disp_w * draw_area->y1; - 698e: eb09 0a40 add.w sl, r9, r0, lsl #1 - disp_buf_tmp += disp_w; - 6992: ea4f 0646 mov.w r6, r6, lsl #1 - if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) { - 6996: d127 bne.n 69e8 <_lv_blend_fill+0x574> - lv_color_t last_dest_color = LV_COLOR_BLACK; - 6998: f04f 0800 mov.w r8, #0 - lv_color_t last_res_color = lv_color_mix(color, last_dest_color, opa); - 699c: 9a04 ldr r2, [sp, #16] - 699e: 4b31 ldr r3, [pc, #196] ; (6a64 <_lv_blend_fill+0x5f0>) - 69a0: 4641 mov r1, r8 - 69a2: 4620 mov r0, r4 - 69a4: 4798 blx r3 - for(y = draw_area->y1; y <= draw_area->y2; y++) { - 69a6: f9bd 302e ldrsh.w r3, [sp, #46] ; 0x2e - 69aa: 429d cmp r5, r3 - 69ac: f73f ae16 bgt.w 65dc <_lv_blend_fill+0x168> - for(x = draw_area->x1; x <= draw_area->x2; x++) { - 69b0: f9bd 7028 ldrsh.w r7, [sp, #40] ; 0x28 - 69b4: eb0a 0947 add.w r9, sl, r7, lsl #1 - 69b8: f9bd 302c ldrsh.w r3, [sp, #44] ; 0x2c - 69bc: 429f cmp r7, r3 - 69be: dd05 ble.n 69cc <_lv_blend_fill+0x558> - disp_buf_tmp += disp_w; - 69c0: 44b2 add sl, r6 - for(y = draw_area->y1; y <= draw_area->y2; y++) { - 69c2: 3501 adds r5, #1 - 69c4: e7ef b.n 69a6 <_lv_blend_fill+0x532> - switch(mode) { - 69c6: f8df b0b4 ldr.w fp, [pc, #180] ; 6a7c <_lv_blend_fill+0x608> - 69ca: e7da b.n 6982 <_lv_blend_fill+0x50e> - if(last_dest_color.full != disp_buf_tmp[x].full) { - 69cc: f8b9 1000 ldrh.w r1, [r9] - 69d0: fa1f f388 uxth.w r3, r8 - 69d4: 428b cmp r3, r1 - 69d6: d003 beq.n 69e0 <_lv_blend_fill+0x56c> - last_res_color = blend_fp(color, disp_buf_tmp[x], opa); - 69d8: 9a04 ldr r2, [sp, #16] - 69da: 4620 mov r0, r4 - last_dest_color = disp_buf_tmp[x]; - 69dc: 4688 mov r8, r1 - last_res_color = blend_fp(color, disp_buf_tmp[x], opa); - 69de: 47d8 blx fp - disp_buf_tmp[x] = last_res_color; - 69e0: f829 0b02 strh.w r0, [r9], #2 - for(x = draw_area->x1; x <= draw_area->x2; x++) { - 69e4: 3701 adds r7, #1 - 69e6: e7e7 b.n 69b8 <_lv_blend_fill+0x544> - 69e8: f1c2 0201 rsb r2, r2, #1 - 69ec: eb03 0802 add.w r8, r3, r2 - const lv_opa_t * mask_tmp = mask - draw_area->x1; - 69f0: 9b05 ldr r3, [sp, #20] - 69f2: 1a5f subs r7, r3, r1 - last_dest_color.full = disp_buf_tmp[0].full; - 69f4: f839 1010 ldrh.w r1, [r9, r0, lsl #1] - 69f8: fa0f f888 sxth.w r8, r8 - last_res_color.full = disp_buf_tmp[0].full; - 69fc: 4608 mov r0, r1 - lv_opa_t last_mask = LV_OPA_TRANSP; - 69fe: f04f 0c00 mov.w ip, #0 - for(y = draw_area->y1; y <= draw_area->y2; y++) { - 6a02: f9bd 302e ldrsh.w r3, [sp, #46] ; 0x2e - 6a06: 429d cmp r5, r3 - 6a08: f73f ade8 bgt.w 65dc <_lv_blend_fill+0x168> - for(x = draw_area->x1; x <= draw_area->x2; x++) { - 6a0c: f9bd 9028 ldrsh.w r9, [sp, #40] ; 0x28 - 6a10: eb0a 0349 add.w r3, sl, r9, lsl #1 - 6a14: f9bd 202c ldrsh.w r2, [sp, #44] ; 0x2c - 6a18: 4591 cmp r9, r2 - 6a1a: dd03 ble.n 6a24 <_lv_blend_fill+0x5b0> - disp_buf_tmp += disp_w; - 6a1c: 44b2 add sl, r6 - mask_tmp += draw_area_w; - 6a1e: 4447 add r7, r8 - for(y = draw_area->y1; y <= draw_area->y2; y++) { - 6a20: 3501 adds r5, #1 - 6a22: e7ee b.n 6a02 <_lv_blend_fill+0x58e> - if(mask_tmp[x] == 0) continue; - 6a24: f817 2009 ldrb.w r2, [r7, r9] - 6a28: b1ba cbz r2, 6a5a <_lv_blend_fill+0x5e6> - if(mask_tmp[x] != last_mask || last_dest_color.full != disp_buf_tmp[x].full) { - 6a2a: 4562 cmp r2, ip - 6a2c: d103 bne.n 6a36 <_lv_blend_fill+0x5c2> - 6a2e: f8b3 e000 ldrh.w lr, [r3] - 6a32: 458e cmp lr, r1 - 6a34: d010 beq.n 6a58 <_lv_blend_fill+0x5e4> - lv_opa_t opa_tmp = mask_tmp[x] >= LV_OPA_MAX ? opa : (uint32_t)((uint32_t)mask_tmp[x] * opa) >> 8; - 6a36: 2af9 cmp r2, #249 ; 0xf9 - 6a38: bf94 ite ls - 6a3a: 9904 ldrls r1, [sp, #16] - 6a3c: 9a04 ldrhi r2, [sp, #16] - last_res_color = blend_fp(color, disp_buf_tmp[x], opa_tmp); - 6a3e: 9305 str r3, [sp, #20] - lv_opa_t opa_tmp = mask_tmp[x] >= LV_OPA_MAX ? opa : (uint32_t)((uint32_t)mask_tmp[x] * opa) >> 8; - 6a40: bf9c itt ls - 6a42: fb12 f201 smulbbls r2, r2, r1 - 6a46: 0a12 lsrls r2, r2, #8 - last_res_color = blend_fp(color, disp_buf_tmp[x], opa_tmp); - 6a48: 8819 ldrh r1, [r3, #0] - 6a4a: 4620 mov r0, r4 - 6a4c: 47d8 blx fp - last_dest_color.full = disp_buf_tmp[x].full; - 6a4e: 9b05 ldr r3, [sp, #20] - last_mask = mask_tmp[x]; - 6a50: f817 c009 ldrb.w ip, [r7, r9] - last_dest_color.full = disp_buf_tmp[x].full; - 6a54: 8819 ldrh r1, [r3, #0] - last_res_color = blend_fp(color, disp_buf_tmp[x], opa_tmp); - 6a56: b280 uxth r0, r0 - disp_buf_tmp[x] = last_res_color; - 6a58: 8018 strh r0, [r3, #0] - for(x = draw_area->x1; x <= draw_area->x2; x++) { - 6a5a: f109 0901 add.w r9, r9, #1 - 6a5e: 3302 adds r3, #2 - 6a60: e7d8 b.n 6a14 <_lv_blend_fill+0x5a0> - 6a62: bf00 nop - 6a64: 00006329 .word 0x00006329 - 6a68: 0002745d .word 0x0002745d - 6a6c: 00027427 .word 0x00027427 - 6a70: 00027482 .word 0x00027482 - 6a74: 0000eb79 .word 0x0000eb79 - 6a78: 00006379 .word 0x00006379 - 6a7c: 000063f9 .word 0x000063f9 - -00006a80 <_lv_blend_map>: -{ - 6a80: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - 6a84: b08f sub sp, #60 ; 0x3c - 6a86: 4689 mov r9, r1 - 6a88: 9306 str r3, [sp, #24] - 6a8a: f89d 3060 ldrb.w r3, [sp, #96] ; 0x60 - 6a8e: 930a str r3, [sp, #40] ; 0x28 - 6a90: f89d 3064 ldrb.w r3, [sp, #100] ; 0x64 - 6a94: f89d a068 ldrb.w sl, [sp, #104] ; 0x68 - 6a98: 920b str r2, [sp, #44] ; 0x2c - if(opa < LV_OPA_MIN) return; - 6a9a: 2b04 cmp r3, #4 -{ - 6a9c: 9305 str r3, [sp, #20] - if(opa < LV_OPA_MIN) return; - 6a9e: f240 80d7 bls.w 6c50 <_lv_blend_map+0x1d0> - if(mask_res == LV_DRAW_MASK_RES_TRANSP) return; - 6aa2: 9b0a ldr r3, [sp, #40] ; 0x28 - 6aa4: 2b00 cmp r3, #0 - 6aa6: f000 80d3 beq.w 6c50 <_lv_blend_map+0x1d0> - is_common = _lv_area_intersect(&draw_area, clip_area, map_area); - 6aaa: 460a mov r2, r1 - 6aac: 4bb6 ldr r3, [pc, #728] ; (6d88 <_lv_blend_map+0x308>) - 6aae: 4601 mov r1, r0 - 6ab0: a80c add r0, sp, #48 ; 0x30 - 6ab2: 4798 blx r3 - if(!is_common) return; - 6ab4: 2800 cmp r0, #0 - 6ab6: f000 80cb beq.w 6c50 <_lv_blend_map+0x1d0> - lv_disp_t * disp = _lv_refr_get_disp_refreshing(); - 6aba: 4bb4 ldr r3, [pc, #720] ; (6d8c <_lv_blend_map+0x30c>) - 6abc: 4798 blx r3 - lv_disp_buf_t * vdb = lv_disp_get_buf(disp); - 6abe: 4bb4 ldr r3, [pc, #720] ; (6d90 <_lv_blend_map+0x310>) - lv_disp_t * disp = _lv_refr_get_disp_refreshing(); - 6ac0: 4605 mov r5, r0 - lv_disp_buf_t * vdb = lv_disp_get_buf(disp); - 6ac2: 4798 blx r3 - 6ac4: 4683 mov fp, r0 - lv_color_t * disp_buf = vdb->buf_act; - 6ac6: 6883 ldr r3, [r0, #8] - draw_area.y1 -= disp_area->y1; - 6ac8: f8bd e032 ldrh.w lr, [sp, #50] ; 0x32 - lv_color_t * disp_buf = vdb->buf_act; - 6acc: 9308 str r3, [sp, #32] - draw_area.y1 -= disp_area->y1; - 6ace: f8bb 3012 ldrh.w r3, [fp, #18] - draw_area.y2 -= disp_area->y1; - 6ad2: f8bd c036 ldrh.w ip, [sp, #54] ; 0x36 - draw_area.x1 -= disp_area->x1; - 6ad6: f8bd 4030 ldrh.w r4, [sp, #48] ; 0x30 - 6ada: 8a00 ldrh r0, [r0, #16] - draw_area.y1 -= disp_area->y1; - 6adc: ebae 0203 sub.w r2, lr, r3 - 6ae0: fa0f f882 sxth.w r8, r2 - draw_area.y2 -= disp_area->y1; - 6ae4: ebac 0303 sub.w r3, ip, r3 - draw_area.x2 -= disp_area->x1; - 6ae8: f8bd 2034 ldrh.w r2, [sp, #52] ; 0x34 - draw_area.y2 -= disp_area->y1; - 6aec: f8ad 3036 strh.w r3, [sp, #54] ; 0x36 - draw_area.x1 -= disp_area->x1; - 6af0: 1a21 subs r1, r4, r0 - if(mask && disp->driver.antialiasing == 0) - 6af2: 9b06 ldr r3, [sp, #24] - draw_area.y1 -= disp_area->y1; - 6af4: f8ad 8032 strh.w r8, [sp, #50] ; 0x32 - draw_area.x1 -= disp_area->x1; - 6af8: b209 sxth r1, r1 - draw_area.x2 -= disp_area->x1; - 6afa: 1a10 subs r0, r2, r0 - draw_area.x1 -= disp_area->x1; - 6afc: f8ad 1030 strh.w r1, [sp, #48] ; 0x30 - draw_area.x2 -= disp_area->x1; - 6b00: f8ad 0034 strh.w r0, [sp, #52] ; 0x34 - if(mask && disp->driver.antialiasing == 0) - 6b04: 2b00 cmp r3, #0 - 6b06: d15e bne.n 6bc6 <_lv_blend_map+0x146> - if(disp->driver.set_px_cb) { - 6b08: 696b ldr r3, [r5, #20] - 6b0a: 2b00 cmp r3, #0 - 6b0c: d172 bne.n 6bf4 <_lv_blend_map+0x174> - 6b0e: f1c4 0401 rsb r4, r4, #1 - 6b12: 4422 add r2, r4 - 6b14: f8b9 7004 ldrh.w r7, [r9, #4] - 6b18: f8bb 6014 ldrh.w r6, [fp, #20] - 6b1c: f9bb 3010 ldrsh.w r3, [fp, #16] - const lv_color_t * map_buf_first = map_buf + map_w * (draw_area->y1 - (map_area->y1 - disp_area->y1)); - 6b20: f9bb 0012 ldrsh.w r0, [fp, #18] - 6b24: b212 sxth r2, r2 - 6b26: 9207 str r2, [sp, #28] - 6b28: f9b9 2000 ldrsh.w r2, [r9] - 6b2c: f9b9 9002 ldrsh.w r9, [r9, #2] - 6b30: 3601 adds r6, #1 - 6b32: 3701 adds r7, #1 - 6b34: 1af6 subs r6, r6, r3 - 6b36: 1abf subs r7, r7, r2 - 6b38: eba9 0900 sub.w r9, r9, r0 - 6b3c: b236 sxth r6, r6 - 6b3e: b23f sxth r7, r7 - 6b40: eba8 0909 sub.w r9, r8, r9 - lv_color_t * disp_buf_first = disp_buf + disp_w * draw_area->y1 + draw_area->x1; - 6b44: fb06 f408 mul.w r4, r6, r8 - const lv_color_t * map_buf_first = map_buf + map_w * (draw_area->y1 - (map_area->y1 - disp_area->y1)); - 6b48: fb07 f909 mul.w r9, r7, r9 - else if(mode == LV_BLEND_MODE_NORMAL) { - 6b4c: f1ba 0f00 cmp.w sl, #0 - 6b50: f040 81ea bne.w 6f28 <_lv_blend_map+0x4a8> - return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - 6b54: f1ce 0001 rsb r0, lr, #1 - map_buf_first += (draw_area->x1 - (map_area->x1 - disp_area->x1)); - 6b58: 1ad5 subs r5, r2, r3 - 6b5a: 4484 add ip, r0 - 6b5c: 9b0b ldr r3, [sp, #44] ; 0x2c - int32_t draw_area_h = lv_area_get_height(draw_area); - 6b5e: fa0f f08c sxth.w r0, ip - map_buf_first += (draw_area->x1 - (map_area->x1 - disp_area->x1)); - 6b62: 1b4d subs r5, r1, r5 - int32_t draw_area_h = lv_area_get_height(draw_area); - 6b64: 9009 str r0, [sp, #36] ; 0x24 - map_buf_first += (draw_area->x1 - (map_area->x1 - disp_area->x1)); - 6b66: 444d add r5, r9 - lv_color_t * disp_buf_first = disp_buf + disp_w * draw_area->y1 + draw_area->x1; - 6b68: 9808 ldr r0, [sp, #32] - 6b6a: 440c add r4, r1 - map_buf_first += (draw_area->x1 - (map_area->x1 - disp_area->x1)); - 6b6c: eb03 0545 add.w r5, r3, r5, lsl #1 - lv_disp_t * disp = _lv_refr_get_disp_refreshing(); - 6b70: 4b86 ldr r3, [pc, #536] ; (6d8c <_lv_blend_map+0x30c>) - lv_color_t * disp_buf_first = disp_buf + disp_w * draw_area->y1 + draw_area->x1; - 6b72: eb00 0444 add.w r4, r0, r4, lsl #1 - lv_disp_t * disp = _lv_refr_get_disp_refreshing(); - 6b76: 4798 blx r3 - map_buf_first += map_w; - 6b78: 007b lsls r3, r7, #1 - 6b7a: 9308 str r3, [sp, #32] - if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) { - 6b7c: 9b0a ldr r3, [sp, #40] ; 0x28 - 6b7e: 2b01 cmp r3, #1 - lv_disp_t * disp = _lv_refr_get_disp_refreshing(); - 6b80: 4680 mov r8, r0 - disp_buf_first += disp_w; - 6b82: ea4f 0b46 mov.w fp, r6, lsl #1 - if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) { - 6b86: f040 80e0 bne.w 6d4a <_lv_blend_map+0x2ca> - if(disp->driver.gpu_blend_cb && (lv_area_get_size(draw_area) > GPU_SIZE_LIMIT)) { - 6b8a: 6a03 ldr r3, [r0, #32] - 6b8c: 2b00 cmp r3, #0 - 6b8e: f000 80af beq.w 6cf0 <_lv_blend_map+0x270> - 6b92: 4b80 ldr r3, [pc, #512] ; (6d94 <_lv_blend_map+0x314>) - 6b94: a80c add r0, sp, #48 ; 0x30 - 6b96: 4798 blx r3 - 6b98: 28f0 cmp r0, #240 ; 0xf0 - 6b9a: f240 80a9 bls.w 6cf0 <_lv_blend_map+0x270> - for(y = draw_area->y1; y <= draw_area->y2; y++) { - 6b9e: f9bd 7032 ldrsh.w r7, [sp, #50] ; 0x32 - 6ba2: f9bd 3036 ldrsh.w r3, [sp, #54] ; 0x36 - 6ba6: 429f cmp r7, r3 - 6ba8: dc52 bgt.n 6c50 <_lv_blend_map+0x1d0> - disp->driver.gpu_blend_cb(&disp->driver, disp_buf_first, map_buf_first, draw_area_w, opa); - 6baa: 9b05 ldr r3, [sp, #20] - 6bac: 9300 str r3, [sp, #0] - 6bae: 462a mov r2, r5 - 6bb0: 9b07 ldr r3, [sp, #28] - 6bb2: f8d8 6020 ldr.w r6, [r8, #32] - 6bb6: 4621 mov r1, r4 - 6bb8: 4640 mov r0, r8 - 6bba: 47b0 blx r6 - map_buf_first += map_w; - 6bbc: 9b08 ldr r3, [sp, #32] - disp_buf_first += disp_w; - 6bbe: 445c add r4, fp - map_buf_first += map_w; - 6bc0: 441d add r5, r3 - for(y = draw_area->y1; y <= draw_area->y2; y++) { - 6bc2: 3701 adds r7, #1 - 6bc4: e7ed b.n 6ba2 <_lv_blend_map+0x122> - if(mask && disp->driver.antialiasing == 0) - 6bc6: 7a2b ldrb r3, [r5, #8] - 6bc8: 07d8 lsls r0, r3, #31 - 6bca: d49d bmi.n 6b08 <_lv_blend_map+0x88> - return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - 6bcc: 9806 ldr r0, [sp, #24] - for(i = 0; i < mask_w; i++) mask[i] = mask[i] > 128 ? LV_OPA_COVER : LV_OPA_TRANSP; - 6bce: 9e06 ldr r6, [sp, #24] - 6bd0: 1c53 adds r3, r2, #1 - 6bd2: 1b1b subs r3, r3, r4 - int32_t mask_w = lv_area_get_width(&draw_area); - 6bd4: b21b sxth r3, r3 - for(i = 0; i < mask_w; i++) mask[i] = mask[i] > 128 ? LV_OPA_COVER : LV_OPA_TRANSP; - 6bd6: 3801 subs r0, #1 - 6bd8: f1c6 0701 rsb r7, r6, #1 - 6bdc: 183e adds r6, r7, r0 - 6bde: 42b3 cmp r3, r6 - 6be0: dd92 ble.n 6b08 <_lv_blend_map+0x88> - 6be2: f810 6f01 ldrb.w r6, [r0, #1]! - 6be6: 2e80 cmp r6, #128 ; 0x80 - 6be8: f04f 36ff mov.w r6, #4294967295 ; 0xffffffff - 6bec: bf98 it ls - 6bee: 2600 movls r6, #0 - 6bf0: 7006 strb r6, [r0, #0] - 6bf2: e7f3 b.n 6bdc <_lv_blend_map+0x15c> - lv_disp_t * disp = _lv_refr_get_disp_refreshing(); - 6bf4: 4b65 ldr r3, [pc, #404] ; (6d8c <_lv_blend_map+0x30c>) - 6bf6: 4798 blx r3 - 6bf8: f8b9 5004 ldrh.w r5, [r9, #4] - 6bfc: f9b9 1000 ldrsh.w r1, [r9] - 6c00: f8bb 2014 ldrh.w r2, [fp, #20] - const lv_color_t * map_buf_tmp = map_buf + map_w * (draw_area->y1 - (map_area->y1 - disp_area->y1)); - 6c04: f9bb c012 ldrsh.w ip, [fp, #18] - 6c08: f9b9 7002 ldrsh.w r7, [r9, #2] - 6c0c: f9bb 4010 ldrsh.w r4, [fp, #16] - 6c10: f9bd 6032 ldrsh.w r6, [sp, #50] ; 0x32 - 6c14: f9bd 3030 ldrsh.w r3, [sp, #48] ; 0x30 - 6c18: f9bd 8034 ldrsh.w r8, [sp, #52] ; 0x34 - 6c1c: 3501 adds r5, #1 - 6c1e: 1a6d subs r5, r5, r1 - 6c20: 3201 adds r2, #1 - 6c22: eba7 070c sub.w r7, r7, ip - 6c26: 1b12 subs r2, r2, r4 - 6c28: b22d sxth r5, r5 - map_buf_tmp -= draw_area->x1; - 6c2a: 1a64 subs r4, r4, r1 - const lv_color_t * map_buf_tmp = map_buf + map_w * (draw_area->y1 - (map_area->y1 - disp_area->y1)); - 6c2c: 1bf7 subs r7, r6, r7 - map_buf_tmp -= draw_area->x1; - 6c2e: 990b ldr r1, [sp, #44] ; 0x2c - 6c30: fb05 4407 mla r4, r5, r7, r4 - 6c34: eb01 0444 add.w r4, r1, r4, lsl #1 - if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) { - 6c38: 990a ldr r1, [sp, #40] ; 0x28 - 6c3a: 2901 cmp r1, #1 - 6c3c: b212 sxth r2, r2 - 6c3e: f1c3 0a00 rsb sl, r3, #0 - 6c42: ea4f 0b45 mov.w fp, r5, lsl #1 - 6c46: d123 bne.n 6c90 <_lv_blend_map+0x210> - for(y = draw_area->y1; y <= draw_area->y2; y++) { - 6c48: f9bd 3036 ldrsh.w r3, [sp, #54] ; 0x36 - 6c4c: 429e cmp r6, r3 - 6c4e: dd02 ble.n 6c56 <_lv_blend_map+0x1d6> -} - 6c50: b00f add sp, #60 ; 0x3c - 6c52: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - for(x = draw_area->x1; x <= draw_area->x2; x++) { - 6c56: f9bd 8030 ldrsh.w r8, [sp, #48] ; 0x30 - disp->driver.set_px_cb(&disp->driver, (void *)disp_buf, disp_w, x, y, map_buf_tmp[x], opa); - 6c5a: b237 sxth r7, r6 - for(x = draw_area->x1; x <= draw_area->x2; x++) { - 6c5c: f9bd 3034 ldrsh.w r3, [sp, #52] ; 0x34 - 6c60: 4598 cmp r8, r3 - 6c62: dd02 ble.n 6c6a <_lv_blend_map+0x1ea> - map_buf_tmp += map_w; - 6c64: 445c add r4, fp - for(y = draw_area->y1; y <= draw_area->y2; y++) { - 6c66: 3601 adds r6, #1 - 6c68: e7ee b.n 6c48 <_lv_blend_map+0x1c8> - disp->driver.set_px_cb(&disp->driver, (void *)disp_buf, disp_w, x, y, map_buf_tmp[x], opa); - 6c6a: 9b05 ldr r3, [sp, #20] - 6c6c: 9302 str r3, [sp, #8] - 6c6e: f834 3018 ldrh.w r3, [r4, r8, lsl #1] - 6c72: f8ad 3004 strh.w r3, [sp, #4] - 6c76: 9700 str r7, [sp, #0] - 6c78: 6945 ldr r5, [r0, #20] - 6c7a: 9908 ldr r1, [sp, #32] - 6c7c: 9207 str r2, [sp, #28] - 6c7e: fa0f f388 sxth.w r3, r8 - 6c82: 9006 str r0, [sp, #24] - for(x = draw_area->x1; x <= draw_area->x2; x++) { - 6c84: f108 0801 add.w r8, r8, #1 - disp->driver.set_px_cb(&disp->driver, (void *)disp_buf, disp_w, x, y, map_buf_tmp[x], opa); - 6c88: 47a8 blx r5 - for(x = draw_area->x1; x <= draw_area->x2; x++) { - 6c8a: e9dd 0206 ldrd r0, r2, [sp, #24] - 6c8e: e7e5 b.n 6c5c <_lv_blend_map+0x1dc> - 6c90: f108 0801 add.w r8, r8, #1 - 6c94: eba8 0803 sub.w r8, r8, r3 - const lv_opa_t * mask_tmp = mask - draw_area->x1; - 6c98: 9b06 ldr r3, [sp, #24] - 6c9a: 4453 add r3, sl - 6c9c: fa0f f888 sxth.w r8, r8 - 6ca0: 469a mov sl, r3 - for(y = draw_area->y1; y <= draw_area->y2; y++) { - 6ca2: f9bd 3036 ldrsh.w r3, [sp, #54] ; 0x36 - 6ca6: 429e cmp r6, r3 - 6ca8: dcd2 bgt.n 6c50 <_lv_blend_map+0x1d0> - for(x = draw_area->x1; x <= draw_area->x2; x++) { - 6caa: f9bd 9030 ldrsh.w r9, [sp, #48] ; 0x30 - disp->driver.set_px_cb(&disp->driver, (void *)disp_buf, disp_w, x, y, map_buf_tmp[x], - 6cae: b237 sxth r7, r6 - for(x = draw_area->x1; x <= draw_area->x2; x++) { - 6cb0: f9bd 3034 ldrsh.w r3, [sp, #52] ; 0x34 - 6cb4: 4599 cmp r9, r3 - 6cb6: dd03 ble.n 6cc0 <_lv_blend_map+0x240> - mask_tmp += draw_area_w; - 6cb8: 44c2 add sl, r8 - map_buf_tmp += map_w; - 6cba: 445c add r4, fp - for(y = draw_area->y1; y <= draw_area->y2; y++) { - 6cbc: 3601 adds r6, #1 - 6cbe: e7f0 b.n 6ca2 <_lv_blend_map+0x222> - (uint32_t)((uint32_t)opa * mask_tmp[x]) >> 8); - 6cc0: f81a 3009 ldrb.w r3, [sl, r9] - 6cc4: 9905 ldr r1, [sp, #20] - disp->driver.set_px_cb(&disp->driver, (void *)disp_buf, disp_w, x, y, map_buf_tmp[x], - 6cc6: 9207 str r2, [sp, #28] - (uint32_t)((uint32_t)opa * mask_tmp[x]) >> 8); - 6cc8: fb13 f301 smulbb r3, r3, r1 - disp->driver.set_px_cb(&disp->driver, (void *)disp_buf, disp_w, x, y, map_buf_tmp[x], - 6ccc: 0a1b lsrs r3, r3, #8 - 6cce: 9302 str r3, [sp, #8] - 6cd0: f834 3019 ldrh.w r3, [r4, r9, lsl #1] - 6cd4: f8ad 3004 strh.w r3, [sp, #4] - 6cd8: 9700 str r7, [sp, #0] - 6cda: 6945 ldr r5, [r0, #20] - 6cdc: 9908 ldr r1, [sp, #32] - 6cde: 9006 str r0, [sp, #24] - 6ce0: fa0f f389 sxth.w r3, r9 - 6ce4: 47a8 blx r5 - for(x = draw_area->x1; x <= draw_area->x2; x++) { - 6ce6: f109 0901 add.w r9, r9, #1 - 6cea: e9dd 0206 ldrd r0, r2, [sp, #24] - 6cee: e7df b.n 6cb0 <_lv_blend_map+0x230> - if(opa > LV_OPA_MAX) { - 6cf0: 9b05 ldr r3, [sp, #20] - 6cf2: 2bfa cmp r3, #250 ; 0xfa - 6cf4: d925 bls.n 6d42 <_lv_blend_map+0x2c2> - _lv_memcpy(disp_buf_first, map_buf_first, draw_area_w * sizeof(lv_color_t)); - 6cf6: 9b07 ldr r3, [sp, #28] - 6cf8: f8df 809c ldr.w r8, [pc, #156] ; 6d98 <_lv_blend_map+0x318> - 6cfc: 005f lsls r7, r3, #1 - for(y = 0; y < draw_area_h; y++) { - 6cfe: 2600 movs r6, #0 - 6d00: 9b09 ldr r3, [sp, #36] ; 0x24 - 6d02: 42b3 cmp r3, r6 - 6d04: dda4 ble.n 6c50 <_lv_blend_map+0x1d0> - _lv_memcpy(disp_buf_first, map_buf_first, draw_area_w * sizeof(lv_color_t)); - 6d06: 4629 mov r1, r5 - 6d08: 4620 mov r0, r4 - 6d0a: 463a mov r2, r7 - 6d0c: 47c0 blx r8 - map_buf_first += map_w; - 6d0e: 9b08 ldr r3, [sp, #32] - disp_buf_first += disp_w; - 6d10: 445c add r4, fp - map_buf_first += map_w; - 6d12: 441d add r5, r3 - for(y = 0; y < draw_area_h; y++) { - 6d14: 3601 adds r6, #1 - 6d16: e7f3 b.n 6d00 <_lv_blend_map+0x280> - disp_buf_first[x] = lv_color_mix(map_buf_first[x], disp_buf_first[x], opa); - 6d18: f834 1016 ldrh.w r1, [r4, r6, lsl #1] - 6d1c: f835 0016 ldrh.w r0, [r5, r6, lsl #1] - 6d20: 9a05 ldr r2, [sp, #20] - 6d22: 47c0 blx r8 - 6d24: f824 0016 strh.w r0, [r4, r6, lsl #1] - for(x = 0; x < draw_area_w; x++) { - 6d28: 3601 adds r6, #1 - 6d2a: 9b07 ldr r3, [sp, #28] - 6d2c: 42b3 cmp r3, r6 - 6d2e: dcf3 bgt.n 6d18 <_lv_blend_map+0x298> - map_buf_first += map_w; - 6d30: 9b08 ldr r3, [sp, #32] - disp_buf_first += disp_w; - 6d32: 445c add r4, fp - map_buf_first += map_w; - 6d34: 441d add r5, r3 - for(y = 0; y < draw_area_h; y++) { - 6d36: 3701 adds r7, #1 - 6d38: 9b09 ldr r3, [sp, #36] ; 0x24 - 6d3a: 42bb cmp r3, r7 - 6d3c: dd88 ble.n 6c50 <_lv_blend_map+0x1d0> - for(x = 0; x < draw_area_w; x++) { - 6d3e: 2600 movs r6, #0 - 6d40: e7f3 b.n 6d2a <_lv_blend_map+0x2aa> - disp_buf_first[x] = lv_color_mix(map_buf_first[x], disp_buf_first[x], opa); - 6d42: f8df 8058 ldr.w r8, [pc, #88] ; 6d9c <_lv_blend_map+0x31c> - for(y = 0; y < draw_area_h; y++) { - 6d46: 2700 movs r7, #0 - 6d48: e7f6 b.n 6d38 <_lv_blend_map+0x2b8> - if(opa > LV_OPA_MAX) { - 6d4a: 9b05 ldr r3, [sp, #20] - 6d4c: 2bfa cmp r3, #250 ; 0xfa - 6d4e: f240 80e9 bls.w 6f24 <_lv_blend_map+0x4a4> - int32_t x_end4 = draw_area_w - 4; - 6d52: 9b07 ldr r3, [sp, #28] - MAP_NORMAL_MASK_PX(x) - 6d54: f8df 8044 ldr.w r8, [pc, #68] ; 6d9c <_lv_blend_map+0x31c> - for(y = 0; y < draw_area_h; y++) { - 6d58: f8cd a014 str.w sl, [sp, #20] - int32_t x_end4 = draw_area_w - 4; - 6d5c: 3b04 subs r3, #4 - 6d5e: 930a str r3, [sp, #40] ; 0x28 - for(y = 0; y < draw_area_h; y++) { - 6d60: 9b09 ldr r3, [sp, #36] ; 0x24 - 6d62: 9a05 ldr r2, [sp, #20] - 6d64: 4293 cmp r3, r2 - 6d66: f77f af73 ble.w 6c50 <_lv_blend_map+0x1d0> - 6d6a: 9b06 ldr r3, [sp, #24] - 6d6c: 46aa mov sl, r5 - 6d6e: 46a1 mov r9, r4 - for(x = 0; x < draw_area_w && ((lv_uintptr_t)mask_tmp_x & 0x3); x++) { - 6d70: 2600 movs r6, #0 - 6d72: e025 b.n 6dc0 <_lv_blend_map+0x340> - MAP_NORMAL_MASK_PX(x) - 6d74: f8b9 1000 ldrh.w r1, [r9] - 6d78: f8ba 0000 ldrh.w r0, [sl] - 6d7c: 930b str r3, [sp, #44] ; 0x2c - 6d7e: 47c0 blx r8 - 6d80: 9b0b ldr r3, [sp, #44] ; 0x2c - 6d82: f8a9 0000 strh.w r0, [r9] - 6d86: e016 b.n 6db6 <_lv_blend_map+0x336> - 6d88: 0000e111 .word 0x0000e111 - 6d8c: 0000526d .word 0x0000526d - 6d90: 0000dc65 .word 0x0000dc65 - 6d94: 0000e0f5 .word 0x0000e0f5 - 6d98: 0000eec1 .word 0x0000eec1 - 6d9c: 00006329 .word 0x00006329 - for(x = 0; x < draw_area_w && ((lv_uintptr_t)mask_tmp_x & 0x3); x++) { - 6da0: 079a lsls r2, r3, #30 - 6da2: d011 beq.n 6dc8 <_lv_blend_map+0x348> - MAP_NORMAL_MASK_PX(x) - 6da4: f813 2b01 ldrb.w r2, [r3], #1 - 6da8: b12a cbz r2, 6db6 <_lv_blend_map+0x336> - 6daa: 2aff cmp r2, #255 ; 0xff - 6dac: d1e2 bne.n 6d74 <_lv_blend_map+0x2f4> - 6dae: f8ba 2000 ldrh.w r2, [sl] - 6db2: f8a9 2000 strh.w r2, [r9] - for(x = 0; x < draw_area_w && ((lv_uintptr_t)mask_tmp_x & 0x3); x++) { - 6db6: 3601 adds r6, #1 - 6db8: f10a 0a02 add.w sl, sl, #2 - 6dbc: f109 0902 add.w r9, r9, #2 - 6dc0: 9a07 ldr r2, [sp, #28] - 6dc2: 42b2 cmp r2, r6 - 6dc4: 461f mov r7, r3 - 6dc6: dceb bgt.n 6da0 <_lv_blend_map+0x320> - 6dc8: eb05 0a46 add.w sl, r5, r6, lsl #1 - 6dcc: eb04 0946 add.w r9, r4, r6, lsl #1 - for(; x < x_end4; x += 4) { - 6dd0: 9b0a ldr r3, [sp, #40] ; 0x28 - 6dd2: 42b3 cmp r3, r6 - 6dd4: dc12 bgt.n 6dfc <_lv_blend_map+0x37c> - 6dd6: 3f01 subs r7, #1 - 6dd8: eb05 0a46 add.w sl, r5, r6, lsl #1 - 6ddc: eb04 0946 add.w r9, r4, r6, lsl #1 - for(; x < draw_area_w ; x++) { - 6de0: 9b07 ldr r3, [sp, #28] - 6de2: 42b3 cmp r3, r6 - 6de4: dc62 bgt.n 6eac <_lv_blend_map+0x42c> - mask += draw_area_w; - 6de6: e9dd 3206 ldrd r3, r2, [sp, #24] - 6dea: 4413 add r3, r2 - 6dec: 9306 str r3, [sp, #24] - map_buf_first += map_w; - 6dee: 9b08 ldr r3, [sp, #32] - 6df0: 441d add r5, r3 - for(y = 0; y < draw_area_h; y++) { - 6df2: 9b05 ldr r3, [sp, #20] - 6df4: 3301 adds r3, #1 - disp_buf_first += disp_w; - 6df6: 445c add r4, fp - for(y = 0; y < draw_area_h; y++) { - 6df8: 9305 str r3, [sp, #20] - 6dfa: e7b1 b.n 6d60 <_lv_blend_map+0x2e0> - if(*mask32) { - 6dfc: 683b ldr r3, [r7, #0] - 6dfe: b18b cbz r3, 6e24 <_lv_blend_map+0x3a4> - if((*mask32) == 0xFFFFFFFF) { - 6e00: 3301 adds r3, #1 - 6e02: d116 bne.n 6e32 <_lv_blend_map+0x3b2> - disp_buf_first[x] = map_buf_first[x]; - 6e04: f8ba 3000 ldrh.w r3, [sl] - 6e08: f8a9 3000 strh.w r3, [r9] - disp_buf_first[x + 1] = map_buf_first[x + 1]; - 6e0c: f8ba 3002 ldrh.w r3, [sl, #2] - 6e10: f8a9 3002 strh.w r3, [r9, #2] - disp_buf_first[x + 2] = map_buf_first[x + 2]; - 6e14: f8ba 3004 ldrh.w r3, [sl, #4] - 6e18: f8a9 3004 strh.w r3, [r9, #4] - MAP_NORMAL_MASK_PX(x + 3) - 6e1c: f8ba 3006 ldrh.w r3, [sl, #6] - 6e20: f8a9 3006 strh.w r3, [r9, #6] - mask32++; - 6e24: 3704 adds r7, #4 - for(; x < x_end4; x += 4) { - 6e26: 3604 adds r6, #4 - 6e28: f10a 0a08 add.w sl, sl, #8 - 6e2c: f109 0908 add.w r9, r9, #8 - 6e30: e7ce b.n 6dd0 <_lv_blend_map+0x350> - MAP_NORMAL_MASK_PX(x) - 6e32: 783a ldrb r2, [r7, #0] - 6e34: b12a cbz r2, 6e42 <_lv_blend_map+0x3c2> - 6e36: 2aff cmp r2, #255 ; 0xff - 6e38: d120 bne.n 6e7c <_lv_blend_map+0x3fc> - 6e3a: f8ba 3000 ldrh.w r3, [sl] - 6e3e: f8a9 3000 strh.w r3, [r9] - MAP_NORMAL_MASK_PX(x + 1) - 6e42: 787a ldrb r2, [r7, #1] - 6e44: b12a cbz r2, 6e52 <_lv_blend_map+0x3d2> - 6e46: 2aff cmp r2, #255 ; 0xff - 6e48: d120 bne.n 6e8c <_lv_blend_map+0x40c> - 6e4a: f8ba 3002 ldrh.w r3, [sl, #2] - 6e4e: f8a9 3002 strh.w r3, [r9, #2] - MAP_NORMAL_MASK_PX(x + 2) - 6e52: 78ba ldrb r2, [r7, #2] - 6e54: b12a cbz r2, 6e62 <_lv_blend_map+0x3e2> - 6e56: 2aff cmp r2, #255 ; 0xff - 6e58: d120 bne.n 6e9c <_lv_blend_map+0x41c> - 6e5a: f8ba 3004 ldrh.w r3, [sl, #4] - 6e5e: f8a9 3004 strh.w r3, [r9, #4] - MAP_NORMAL_MASK_PX(x + 3) - 6e62: 78fa ldrb r2, [r7, #3] - 6e64: 2a00 cmp r2, #0 - 6e66: d0dd beq.n 6e24 <_lv_blend_map+0x3a4> - 6e68: 2aff cmp r2, #255 ; 0xff - 6e6a: d0d7 beq.n 6e1c <_lv_blend_map+0x39c> - 6e6c: f8b9 1006 ldrh.w r1, [r9, #6] - 6e70: f8ba 0006 ldrh.w r0, [sl, #6] - 6e74: 47c0 blx r8 - 6e76: f8a9 0006 strh.w r0, [r9, #6] - 6e7a: e7d3 b.n 6e24 <_lv_blend_map+0x3a4> - MAP_NORMAL_MASK_PX(x) - 6e7c: f8b9 1000 ldrh.w r1, [r9] - 6e80: f8ba 0000 ldrh.w r0, [sl] - 6e84: 47c0 blx r8 - 6e86: f8a9 0000 strh.w r0, [r9] - 6e8a: e7da b.n 6e42 <_lv_blend_map+0x3c2> - MAP_NORMAL_MASK_PX(x + 1) - 6e8c: f8b9 1002 ldrh.w r1, [r9, #2] - 6e90: f8ba 0002 ldrh.w r0, [sl, #2] - 6e94: 47c0 blx r8 - 6e96: f8a9 0002 strh.w r0, [r9, #2] - 6e9a: e7da b.n 6e52 <_lv_blend_map+0x3d2> - MAP_NORMAL_MASK_PX(x + 2) - 6e9c: f8b9 1004 ldrh.w r1, [r9, #4] - 6ea0: f8ba 0004 ldrh.w r0, [sl, #4] - 6ea4: 47c0 blx r8 - 6ea6: f8a9 0004 strh.w r0, [r9, #4] - 6eaa: e7da b.n 6e62 <_lv_blend_map+0x3e2> - MAP_NORMAL_MASK_PX(x) - 6eac: f817 2f01 ldrb.w r2, [r7, #1]! - 6eb0: b12a cbz r2, 6ebe <_lv_blend_map+0x43e> - 6eb2: 2aff cmp r2, #255 ; 0xff - 6eb4: d109 bne.n 6eca <_lv_blend_map+0x44a> - 6eb6: f8ba 3000 ldrh.w r3, [sl] - 6eba: f8a9 3000 strh.w r3, [r9] - for(; x < draw_area_w ; x++) { - 6ebe: 3601 adds r6, #1 - 6ec0: f10a 0a02 add.w sl, sl, #2 - 6ec4: f109 0902 add.w r9, r9, #2 - 6ec8: e78a b.n 6de0 <_lv_blend_map+0x360> - MAP_NORMAL_MASK_PX(x) - 6eca: f8b9 1000 ldrh.w r1, [r9] - 6ece: f8ba 0000 ldrh.w r0, [sl] - 6ed2: 47c0 blx r8 - 6ed4: f8a9 0000 strh.w r0, [r9] - 6ed8: e7f1 b.n 6ebe <_lv_blend_map+0x43e> - if(mask[x]) { - 6eda: 9b06 ldr r3, [sp, #24] - 6edc: 5d9a ldrb r2, [r3, r6] - 6ede: b172 cbz r2, 6efe <_lv_blend_map+0x47e> - lv_opa_t opa_tmp = mask[x] >= LV_OPA_MAX ? opa : ((opa * mask[x]) >> 8); - 6ee0: 2af9 cmp r2, #249 ; 0xf9 - 6ee2: bf98 it ls - 6ee4: 9b05 ldrls r3, [sp, #20] - disp_buf_first[x] = lv_color_mix(map_buf_first[x], disp_buf_first[x], opa_tmp); - 6ee6: f834 1016 ldrh.w r1, [r4, r6, lsl #1] - 6eea: f835 0016 ldrh.w r0, [r5, r6, lsl #1] - 6eee: bf8e itee hi - 6ef0: 9a05 ldrhi r2, [sp, #20] - lv_opa_t opa_tmp = mask[x] >= LV_OPA_MAX ? opa : ((opa * mask[x]) >> 8); - 6ef2: fb13 f202 smulbbls r2, r3, r2 - 6ef6: 0a12 lsrls r2, r2, #8 - disp_buf_first[x] = lv_color_mix(map_buf_first[x], disp_buf_first[x], opa_tmp); - 6ef8: 47b8 blx r7 - 6efa: f824 0016 strh.w r0, [r4, r6, lsl #1] - for(x = 0; x < draw_area_w; x++) { - 6efe: 3601 adds r6, #1 - 6f00: 9b07 ldr r3, [sp, #28] - 6f02: 42b3 cmp r3, r6 - 6f04: dce9 bgt.n 6eda <_lv_blend_map+0x45a> - mask += draw_area_w; - 6f06: e9dd 3206 ldrd r3, r2, [sp, #24] - 6f0a: 4413 add r3, r2 - 6f0c: 9306 str r3, [sp, #24] - map_buf_first += map_w; - 6f0e: 9b08 ldr r3, [sp, #32] - disp_buf_first += disp_w; - 6f10: 445c add r4, fp - map_buf_first += map_w; - 6f12: 441d add r5, r3 - for(y = 0; y < draw_area_h; y++) { - 6f14: f10a 0a01 add.w sl, sl, #1 - 6f18: 9b09 ldr r3, [sp, #36] ; 0x24 - 6f1a: 4553 cmp r3, sl - 6f1c: f77f ae98 ble.w 6c50 <_lv_blend_map+0x1d0> - for(x = 0; x < draw_area_w; x++) { - 6f20: 2600 movs r6, #0 - 6f22: e7ed b.n 6f00 <_lv_blend_map+0x480> - disp_buf_first[x] = lv_color_mix(map_buf_first[x], disp_buf_first[x], opa_tmp); - 6f24: 4f36 ldr r7, [pc, #216] ; (7000 <_lv_blend_map+0x580>) - 6f26: e7f7 b.n 6f18 <_lv_blend_map+0x498> - switch(mode) { - 6f28: f1ba 0f01 cmp.w sl, #1 - 6f2c: d00c beq.n 6f48 <_lv_blend_map+0x4c8> - 6f2e: f1ba 0f02 cmp.w sl, #2 - 6f32: d02b beq.n 6f8c <_lv_blend_map+0x50c> - LV_LOG_WARN("fill_blended: unsupported blend mode"); - 6f34: 4b33 ldr r3, [pc, #204] ; (7004 <_lv_blend_map+0x584>) - 6f36: 9300 str r3, [sp, #0] - 6f38: 4933 ldr r1, [pc, #204] ; (7008 <_lv_blend_map+0x588>) - 6f3a: 4b34 ldr r3, [pc, #208] ; (700c <_lv_blend_map+0x58c>) - 6f3c: 4c34 ldr r4, [pc, #208] ; (7010 <_lv_blend_map+0x590>) - 6f3e: f240 3253 movw r2, #851 ; 0x353 - 6f42: 2002 movs r0, #2 - 6f44: 47a0 blx r4 - return; - 6f46: e683 b.n 6c50 <_lv_blend_map+0x1d0> - blend_fp = color_blend_true_color_additive; - 6f48: f8df b0c8 ldr.w fp, [pc, #200] ; 7014 <_lv_blend_map+0x594> - lv_color_t * disp_buf_tmp = disp_buf + disp_w * draw_area->y1; - 6f4c: 9808 ldr r0, [sp, #32] - 6f4e: eb00 0444 add.w r4, r0, r4, lsl #1 - const lv_color_t * map_buf_tmp = map_buf + map_w * (draw_area->y1 - (map_area->y1 - disp_area->y1)); - 6f52: 980b ldr r0, [sp, #44] ; 0x2c - 6f54: eb00 0949 add.w r9, r0, r9, lsl #1 - if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) { - 6f58: 980a ldr r0, [sp, #40] ; 0x28 - 6f5a: 2801 cmp r0, #1 - disp_buf_first += disp_w; - 6f5c: ea4f 0646 mov.w r6, r6, lsl #1 - map_buf_first += map_w; - 6f60: ea4f 0747 mov.w r7, r7, lsl #1 - if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) { - 6f64: d120 bne.n 6fa8 <_lv_blend_map+0x528> - map_buf_tmp -= draw_area->x1; - 6f66: 1a9b subs r3, r3, r2 - 6f68: eb09 0543 add.w r5, r9, r3, lsl #1 - for(y = draw_area->y1; y <= draw_area->y2; y++) { - 6f6c: f9bd 3036 ldrsh.w r3, [sp, #54] ; 0x36 - 6f70: 4598 cmp r8, r3 - 6f72: f73f ae6d bgt.w 6c50 <_lv_blend_map+0x1d0> - for(x = draw_area->x1; x <= draw_area->x2; x++) { - 6f76: f9bd 9030 ldrsh.w r9, [sp, #48] ; 0x30 - 6f7a: f9bd 3034 ldrsh.w r3, [sp, #52] ; 0x34 - 6f7e: 4599 cmp r9, r3 - 6f80: dd07 ble.n 6f92 <_lv_blend_map+0x512> - disp_buf_tmp += disp_w; - 6f82: 4434 add r4, r6 - map_buf_tmp += map_w; - 6f84: 443d add r5, r7 - for(y = draw_area->y1; y <= draw_area->y2; y++) { - 6f86: f108 0801 add.w r8, r8, #1 - 6f8a: e7ef b.n 6f6c <_lv_blend_map+0x4ec> - switch(mode) { - 6f8c: f8df b088 ldr.w fp, [pc, #136] ; 7018 <_lv_blend_map+0x598> - 6f90: e7dc b.n 6f4c <_lv_blend_map+0x4cc> - disp_buf_tmp[x] = blend_fp(map_buf_tmp[x], disp_buf_tmp[x], opa); - 6f92: f834 1019 ldrh.w r1, [r4, r9, lsl #1] - 6f96: f835 0019 ldrh.w r0, [r5, r9, lsl #1] - 6f9a: 9a05 ldr r2, [sp, #20] - 6f9c: 47d8 blx fp - 6f9e: f824 0019 strh.w r0, [r4, r9, lsl #1] - for(x = draw_area->x1; x <= draw_area->x2; x++) { - 6fa2: f109 0901 add.w r9, r9, #1 - 6fa6: e7e8 b.n 6f7a <_lv_blend_map+0x4fa> - const lv_opa_t * mask_tmp = mask - draw_area->x1; - 6fa8: 9b06 ldr r3, [sp, #24] - map_buf_tmp -= draw_area->x1; - 6faa: eba9 0941 sub.w r9, r9, r1, lsl #1 - const lv_opa_t * mask_tmp = mask - draw_area->x1; - 6fae: 1a5d subs r5, r3, r1 - for(y = draw_area->y1; y <= draw_area->y2; y++) { - 6fb0: f9bd 3036 ldrsh.w r3, [sp, #54] ; 0x36 - 6fb4: 4598 cmp r8, r3 - 6fb6: f73f ae4b bgt.w 6c50 <_lv_blend_map+0x1d0> - for(x = draw_area->x1; x <= draw_area->x2; x++) { - 6fba: f9bd a030 ldrsh.w sl, [sp, #48] ; 0x30 - 6fbe: f9bd 3034 ldrsh.w r3, [sp, #52] ; 0x34 - 6fc2: 459a cmp sl, r3 - 6fc4: dd06 ble.n 6fd4 <_lv_blend_map+0x554> - mask_tmp += draw_area_w; - 6fc6: 9b07 ldr r3, [sp, #28] - disp_buf_tmp += disp_w; - 6fc8: 4434 add r4, r6 - mask_tmp += draw_area_w; - 6fca: 441d add r5, r3 - map_buf_tmp += map_w; - 6fcc: 44b9 add r9, r7 - for(y = draw_area->y1; y <= draw_area->y2; y++) { - 6fce: f108 0801 add.w r8, r8, #1 - 6fd2: e7ed b.n 6fb0 <_lv_blend_map+0x530> - if(mask_tmp[x] == 0) continue; - 6fd4: f815 200a ldrb.w r2, [r5, sl] - 6fd8: b172 cbz r2, 6ff8 <_lv_blend_map+0x578> - lv_opa_t opa_tmp = mask_tmp[x] >= LV_OPA_MAX ? opa : ((opa * mask_tmp[x]) >> 8); - 6fda: 2af9 cmp r2, #249 ; 0xf9 - 6fdc: bf94 ite ls - 6fde: 9b05 ldrls r3, [sp, #20] - 6fe0: 9a05 ldrhi r2, [sp, #20] - disp_buf_tmp[x] = blend_fp(map_buf_tmp[x], disp_buf_tmp[x], opa_tmp); - 6fe2: f834 101a ldrh.w r1, [r4, sl, lsl #1] - 6fe6: f839 001a ldrh.w r0, [r9, sl, lsl #1] - lv_opa_t opa_tmp = mask_tmp[x] >= LV_OPA_MAX ? opa : ((opa * mask_tmp[x]) >> 8); - 6fea: bf9c itt ls - 6fec: fb13 f202 smulbbls r2, r3, r2 - 6ff0: 0a12 lsrls r2, r2, #8 - disp_buf_tmp[x] = blend_fp(map_buf_tmp[x], disp_buf_tmp[x], opa_tmp); - 6ff2: 47d8 blx fp - 6ff4: f824 001a strh.w r0, [r4, sl, lsl #1] - for(x = draw_area->x1; x <= draw_area->x2; x++) { - 6ff8: f10a 0a01 add.w sl, sl, #1 - 6ffc: e7df b.n 6fbe <_lv_blend_map+0x53e> - 6ffe: bf00 nop - 7000: 00006329 .word 0x00006329 - 7004: 0002745d .word 0x0002745d - 7008: 00027427 .word 0x00027427 - 700c: 0002748f .word 0x0002748f - 7010: 0000eb79 .word 0x0000eb79 - 7014: 00006379 .word 0x00006379 - 7018: 000063f9 .word 0x000063f9 - -0000701c : - } - } -} - -static void show_error(const lv_area_t * coords, const lv_area_t * clip_area, const char * msg) -{ - 701c: b530 push {r4, r5, lr} - 701e: b0a1 sub sp, #132 ; 0x84 - 7020: 4604 mov r4, r0 - 7022: 9203 str r2, [sp, #12] - lv_draw_rect_dsc_t rect_dsc; - lv_draw_rect_dsc_init(&rect_dsc); - 7024: a80b add r0, sp, #44 ; 0x2c - 7026: 4a0c ldr r2, [pc, #48] ; (7058 ) -{ - 7028: 9102 str r1, [sp, #8] - lv_draw_rect_dsc_init(&rect_dsc); - 702a: 4790 blx r2 - rect_dsc.bg_color = LV_COLOR_WHITE; - 702c: 4a0b ldr r2, [pc, #44] ; (705c ) - lv_draw_rect(coords, clip_area, &rect_dsc); - 702e: 9902 ldr r1, [sp, #8] - rect_dsc.bg_color = LV_COLOR_WHITE; - 7030: 8812 ldrh r2, [r2, #0] - 7032: f8ad 202e strh.w r2, [sp, #46] ; 0x2e - lv_draw_rect(coords, clip_area, &rect_dsc); - 7036: 4620 mov r0, r4 - 7038: aa0b add r2, sp, #44 ; 0x2c - 703a: 4d09 ldr r5, [pc, #36] ; (7060 ) - 703c: 47a8 blx r5 - - lv_draw_label_dsc_t label_dsc; - lv_draw_label_dsc_init(&label_dsc); - 703e: a804 add r0, sp, #16 - 7040: 4a08 ldr r2, [pc, #32] ; (7064 ) - 7042: 4790 blx r2 - lv_draw_label(coords, clip_area, &label_dsc, msg, NULL); - 7044: 2200 movs r2, #0 - 7046: 9200 str r2, [sp, #0] - 7048: 4620 mov r0, r4 - 704a: 9b03 ldr r3, [sp, #12] - 704c: 9902 ldr r1, [sp, #8] - 704e: 4c06 ldr r4, [pc, #24] ; (7068 ) - 7050: aa04 add r2, sp, #16 - 7052: 47a0 blx r4 -} - 7054: b021 add sp, #132 ; 0x84 - 7056: bd30 pop {r4, r5, pc} - 7058: 00009e25 .word 0x00009e25 - 705c: 00027520 .word 0x00027520 - 7060: 00009e71 .word 0x00009e71 - 7064: 00007ac9 .word 0x00007ac9 - 7068: 00007af9 .word 0x00007af9 - -0000706c : -LV_ATTRIBUTE_FAST_MEM static inline void * _lv_memcpy_small(void * dst, const void * src, size_t len) -{ - uint8_t * d8 = (uint8_t *)dst; - const uint8_t * s8 = (const uint8_t *)src; - - while(len) { - 706c: 3901 subs r1, #1 - 706e: f100 0308 add.w r3, r0, #8 - *d8 = *s8; - 7072: f811 2f01 ldrb.w r2, [r1, #1]! - 7076: f800 2b01 strb.w r2, [r0], #1 - while(len) { - 707a: 4298 cmp r0, r3 - 707c: d1f9 bne.n 7072 -} - 707e: 4770 bx lr - -00007080 : -{ - 7080: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - 7084: ed2d 8b02 vpush {d8} - 7088: b0b9 sub sp, #228 ; 0xe4 - 708a: 461c mov r4, r3 - 708c: f89d 3110 ldrb.w r3, [sp, #272] ; 0x110 - 7090: 930c str r3, [sp, #48] ; 0x30 - 7092: f89d 3114 ldrb.w r3, [sp, #276] ; 0x114 - 7096: 9307 str r3, [sp, #28] - 7098: 4682 mov sl, r0 - lv_area_copy(&draw_area, clip_area); - 709a: 4b9c ldr r3, [pc, #624] ; (730c ) - 709c: a822 add r0, sp, #136 ; 0x88 -{ - 709e: 4689 mov r9, r1 - 70a0: 4615 mov r5, r2 - lv_area_copy(&draw_area, clip_area); - 70a2: 4798 blx r3 - lv_disp_t * disp = _lv_refr_get_disp_refreshing(); - 70a4: 4b9a ldr r3, [pc, #616] ; (7310 ) - 70a6: 4798 blx r3 - lv_disp_buf_t * vdb = lv_disp_get_buf(disp); - 70a8: 4b9a ldr r3, [pc, #616] ; (7314 ) - 70aa: 4798 blx r3 - draw_area.x1 -= disp_area->x1; - 70ac: f8bd 3088 ldrh.w r3, [sp, #136] ; 0x88 - 70b0: 8a01 ldrh r1, [r0, #16] - draw_area.y1 -= disp_area->y1; - 70b2: 8a42 ldrh r2, [r0, #18] - lv_disp_buf_t * vdb = lv_disp_get_buf(disp); - 70b4: 9004 str r0, [sp, #16] - draw_area.x1 -= disp_area->x1; - 70b6: 1a5b subs r3, r3, r1 - 70b8: f8ad 3088 strh.w r3, [sp, #136] ; 0x88 - draw_area.y1 -= disp_area->y1; - 70bc: f8bd 308a ldrh.w r3, [sp, #138] ; 0x8a - 70c0: 1a9b subs r3, r3, r2 - 70c2: f8ad 308a strh.w r3, [sp, #138] ; 0x8a - draw_area.x2 -= disp_area->x1; - 70c6: f8bd 308c ldrh.w r3, [sp, #140] ; 0x8c - 70ca: 1a5b subs r3, r3, r1 - 70cc: f8ad 308c strh.w r3, [sp, #140] ; 0x8c - draw_area.y2 -= disp_area->y1; - 70d0: f8bd 308e ldrh.w r3, [sp, #142] ; 0x8e - 70d4: 1a9b subs r3, r3, r2 - 70d6: f8ad 308e strh.w r3, [sp, #142] ; 0x8e - uint8_t other_mask_cnt = lv_draw_mask_get_cnt(); - 70da: 4b8f ldr r3, [pc, #572] ; (7318 ) - 70dc: 4798 blx r3 - if(other_mask_cnt == 0 && draw_dsc->angle == 0 && draw_dsc->zoom == LV_IMG_ZOOM_NONE && - 70de: 900b str r0, [sp, #44] ; 0x2c - 70e0: b9f8 cbnz r0, 7122 - 70e2: 8863 ldrh r3, [r4, #2] - 70e4: b9eb cbnz r3, 7122 - 70e6: 8923 ldrh r3, [r4, #8] - 70e8: f5b3 7f80 cmp.w r3, #256 ; 0x100 - 70ec: d119 bne.n 7122 - 70ee: 9b0c ldr r3, [sp, #48] ; 0x30 - 70f0: b9bb cbnz r3, 7122 - chroma_key == false && alpha_byte == false && draw_dsc->recolor_opa == LV_OPA_TRANSP) { - 70f2: 9b07 ldr r3, [sp, #28] - 70f4: 2b00 cmp r3, #0 - 70f6: f040 8099 bne.w 722c - 70fa: 7aa3 ldrb r3, [r4, #10] - 70fc: 2b00 cmp r3, #0 - 70fe: f040 8097 bne.w 7230 - _lv_blend_map(clip_area, map_area, (lv_color_t *)map_p, NULL, LV_DRAW_MASK_RES_FULL_COVER, draw_dsc->opa, - 7102: 7ba2 ldrb r2, [r4, #14] - 7104: 9202 str r2, [sp, #8] - 7106: 7822 ldrb r2, [r4, #0] - 7108: 9201 str r2, [sp, #4] - 710a: 2201 movs r2, #1 - 710c: 9200 str r2, [sp, #0] - 710e: 4c83 ldr r4, [pc, #524] ; (731c ) - 7110: 462a mov r2, r5 - 7112: 4651 mov r1, sl - 7114: 4648 mov r0, r9 - 7116: 47a0 blx r4 -} - 7118: b039 add sp, #228 ; 0xe4 - 711a: ecbd 8b02 vpop {d8} - 711e: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - uint8_t px_size_byte = alpha_byte ? LV_IMG_PX_SIZE_ALPHA_BYTE : sizeof(lv_color_t); - 7122: 9b07 ldr r3, [sp, #28] - 7124: 3302 adds r3, #2 - 7126: b2db uxtb r3, r3 - 7128: 9305 str r3, [sp, #20] - map_buf_tmp += map_w * (draw_area.y1 - (map_area->y1 - disp_area->y1)) * px_size_byte; - 712a: 9b04 ldr r3, [sp, #16] - return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - 712c: f8ba 8004 ldrh.w r8, [sl, #4] - 7130: f9b3 1012 ldrsh.w r1, [r3, #18] - 7134: f9ba 2000 ldrsh.w r2, [sl] - map_buf_tmp += (draw_area.x1 - (map_area->x1 - disp_area->x1)) * px_size_byte; - 7138: f9b3 3010 ldrsh.w r3, [r3, #16] - map_buf_tmp += map_w * (draw_area.y1 - (map_area->y1 - disp_area->y1)) * px_size_byte; - 713c: f9ba 7002 ldrsh.w r7, [sl, #2] - map_buf_tmp += (draw_area.x1 - (map_area->x1 - disp_area->x1)) * px_size_byte; - 7140: f9bd 6088 ldrsh.w r6, [sp, #136] ; 0x88 - map_buf_tmp += map_w * (draw_area.y1 - (map_area->y1 - disp_area->y1)) * px_size_byte; - 7144: f9bd 008a ldrsh.w r0, [sp, #138] ; 0x8a - 7148: f108 0801 add.w r8, r8, #1 - 714c: eba8 0802 sub.w r8, r8, r2 - 7150: 1a7f subs r7, r7, r1 - map_buf_tmp += (draw_area.x1 - (map_area->x1 - disp_area->x1)) * px_size_byte; - 7152: 1ad2 subs r2, r2, r3 - map_buf_tmp += map_w * (draw_area.y1 - (map_area->y1 - disp_area->y1)) * px_size_byte; - 7154: 1bc7 subs r7, r0, r7 - map_buf_tmp += (draw_area.x1 - (map_area->x1 - disp_area->x1)) * px_size_byte; - 7156: 1ab2 subs r2, r6, r2 - 7158: fa0f f888 sxth.w r8, r8 - 715c: fb08 2207 mla r2, r8, r7, r2 - 7160: 9f05 ldr r7, [sp, #20] - 7162: fb02 5207 mla r2, r2, r7, r5 - 7166: 9208 str r2, [sp, #32] - 7168: f8bd 208c ldrh.w r2, [sp, #140] ; 0x8c - 716c: 3201 adds r2, #1 - 716e: 1b92 subs r2, r2, r6 - blend_area.x1 = draw_area.x1 + disp_area->x1; - 7170: fa13 f386 uxtah r3, r3, r6 - 7174: b296 uxth r6, r2 - 7176: b212 sxth r2, r2 - 7178: b29b uxth r3, r3 - 717a: 9211 str r2, [sp, #68] ; 0x44 - blend_area.x2 = blend_area.x1 + lv_area_get_width(&draw_area) - 1; - 717c: 1e72 subs r2, r6, #1 - blend_area.x1 = draw_area.x1 + disp_area->x1; - 717e: f8ad 3090 strh.w r3, [sp, #144] ; 0x90 - blend_area.x2 = blend_area.x1 + lv_area_get_width(&draw_area) - 1; - 7182: 4413 add r3, r2 - 7184: f8ad 3094 strh.w r3, [sp, #148] ; 0x94 - return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - 7188: f8bd 308e ldrh.w r3, [sp, #142] ; 0x8e - 718c: 3301 adds r3, #1 - 718e: 1a1b subs r3, r3, r0 - 7190: b21b sxth r3, r3 - blend_area.y1 = disp_area->y1 + draw_area.y1; - 7192: fa11 f180 uxtah r1, r1, r0 - 7196: 9317 str r3, [sp, #92] ; 0x5c - bool transform = draw_dsc->angle != 0 || draw_dsc->zoom != LV_IMG_ZOOM_NONE ? true : false; - 7198: 8863 ldrh r3, [r4, #2] - blend_area.y1 = disp_area->y1 + draw_area.y1; - 719a: b209 sxth r1, r1 - 719c: f8ad 1092 strh.w r1, [sp, #146] ; 0x92 - blend_area.y2 = blend_area.y1; - 71a0: f8ad 1096 strh.w r1, [sp, #150] ; 0x96 - bool transform = draw_dsc->angle != 0 || draw_dsc->zoom != LV_IMG_ZOOM_NONE ? true : false; - 71a4: 2b00 cmp r3, #0 - 71a6: f040 8264 bne.w 7672 - 71aa: 8923 ldrh r3, [r4, #8] - 71ac: f5b3 7280 subs.w r2, r3, #256 ; 0x100 - 71b0: bf18 it ne - 71b2: 2201 movne r2, #1 - 71b4: 9215 str r2, [sp, #84] ; 0x54 - if(other_mask_cnt == 0 && !transform && !chroma_key && draw_dsc->recolor_opa == LV_OPA_TRANSP && alpha_byte) { - 71b6: 9a0b ldr r2, [sp, #44] ; 0x2c - 71b8: 2a00 cmp r2, #0 - 71ba: f040 825c bne.w 7676 - 71be: f5b3 7f80 cmp.w r3, #256 ; 0x100 - 71c2: f040 8258 bne.w 7676 - 71c6: 9b0c ldr r3, [sp, #48] ; 0x30 - 71c8: 2b00 cmp r3, #0 - 71ca: f040 8254 bne.w 7676 - 71ce: 7aa3 ldrb r3, [r4, #10] - 71d0: 2b00 cmp r3, #0 - 71d2: f040 8250 bne.w 7676 - 71d6: 9b07 ldr r3, [sp, #28] - 71d8: 2b00 cmp r3, #0 - 71da: f000 824c beq.w 7676 - uint32_t mask_buf_size = lv_area_get_size(&draw_area) > LV_HOR_RES_MAX ? LV_HOR_RES_MAX : lv_area_get_size(&draw_area); - 71de: 4d50 ldr r5, [pc, #320] ; (7320 ) - 71e0: a822 add r0, sp, #136 ; 0x88 - 71e2: 47a8 blx r5 - 71e4: f5b0 7ff0 cmp.w r0, #480 ; 0x1e0 - 71e8: d824 bhi.n 7234 - 71ea: a822 add r0, sp, #136 ; 0x88 - 71ec: 47a8 blx r5 - 71ee: 4607 mov r7, r0 - lv_color_t * map2 = _lv_mem_buf_get(mask_buf_size * sizeof(lv_color_t)); - 71f0: 4e4c ldr r6, [pc, #304] ; (7324 ) - 71f2: 0078 lsls r0, r7, #1 - 71f4: 47b0 blx r6 - 71f6: ee08 0a10 vmov s16, r0 - lv_opa_t * mask_buf = _lv_mem_buf_get(mask_buf_size); - 71fa: 4638 mov r0, r7 - 71fc: 47b0 blx r6 - map_buf_tmp += map_w * px_size_byte; - 71fe: 9b05 ldr r3, [sp, #20] - 7200: 9a11 ldr r2, [sp, #68] ; 0x44 - 7202: fb13 fa08 smulbb sl, r3, r8 - 7206: ea22 72e2 bic.w r2, r2, r2, asr #31 - for(y = 0; y < draw_area_h; y++) { - 720a: f04f 0800 mov.w r8, #0 - lv_opa_t * mask_buf = _lv_mem_buf_get(mask_buf_size); - 720e: 4606 mov r6, r0 - uint32_t px_i = 0; - 7210: 4643 mov r3, r8 - 7212: 9204 str r2, [sp, #16] - for(y = 0; y < draw_area_h; y++) { - 7214: 9a17 ldr r2, [sp, #92] ; 0x5c - 7216: 4542 cmp r2, r8 - 7218: dd4d ble.n 72b6 - 721a: ee18 2a10 vmov r2, s16 - 721e: eb06 0c03 add.w ip, r6, r3 - 7222: eb02 0e43 add.w lr, r2, r3, lsl #1 - for(x = 0; x < draw_area_w; x++, map_px += px_size_byte, px_i++) { - 7226: 2100 movs r1, #0 - map_px = map_buf_tmp; - 7228: 9a08 ldr r2, [sp, #32] - 722a: e014 b.n 7256 - uint8_t px_size_byte = alpha_byte ? LV_IMG_PX_SIZE_ALPHA_BYTE : sizeof(lv_color_t); - 722c: 2303 movs r3, #3 - 722e: e77b b.n 7128 - 7230: 2302 movs r3, #2 - 7232: e779 b.n 7128 - uint32_t mask_buf_size = lv_area_get_size(&draw_area) > LV_HOR_RES_MAX ? LV_HOR_RES_MAX : lv_area_get_size(&draw_area); - 7234: f44f 77f0 mov.w r7, #480 ; 0x1e0 - 7238: e7da b.n 71f0 - lv_opa_t px_opa = map_px[LV_IMG_PX_SIZE_ALPHA_BYTE - 1]; - 723a: 7890 ldrb r0, [r2, #2] - mask_buf[px_i] = px_opa; - 723c: f80c 0b01 strb.w r0, [ip], #1 - if(px_opa) { - 7240: b130 cbz r0, 7250 - map2[px_i].full = map_px[0] + (map_px[1] << 8); - 7242: f892 b001 ldrb.w fp, [r2, #1] - 7246: 7810 ldrb r0, [r2, #0] - 7248: eb00 200b add.w r0, r0, fp, lsl #8 - 724c: f82e 0011 strh.w r0, [lr, r1, lsl #1] - for(x = 0; x < draw_area_w; x++, map_px += px_size_byte, px_i++) { - 7250: 9805 ldr r0, [sp, #20] - 7252: 3101 adds r1, #1 - 7254: 4402 add r2, r0 - 7256: 9811 ldr r0, [sp, #68] ; 0x44 - 7258: 4288 cmp r0, r1 - 725a: dcee bgt.n 723a - 725c: 9a04 ldr r2, [sp, #16] - return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - 725e: f8bd 1088 ldrh.w r1, [sp, #136] ; 0x88 - 7262: 4413 add r3, r2 - map_buf_tmp += map_w * px_size_byte; - 7264: 9a08 ldr r2, [sp, #32] - 7266: 4452 add r2, sl - 7268: 9208 str r2, [sp, #32] - 726a: f8bd 208c ldrh.w r2, [sp, #140] ; 0x8c - 726e: 3201 adds r2, #1 - 7270: 1a52 subs r2, r2, r1 - if(px_i + lv_area_get_width(&draw_area) < mask_buf_size) { - 7272: fa03 f282 sxtah r2, r3, r2 - 7276: 42ba cmp r2, r7 - 7278: d208 bcs.n 728c - blend_area.y2 ++; - 727a: f8bd 2096 ldrh.w r2, [sp, #150] ; 0x96 - 727e: 3201 adds r2, #1 - 7280: b212 sxth r2, r2 - 7282: f8ad 2096 strh.w r2, [sp, #150] ; 0x96 - for(y = 0; y < draw_area_h; y++) { - 7286: f108 0801 add.w r8, r8, #1 - 728a: e7c3 b.n 7214 - _lv_blend_map(clip_area, &blend_area, map2, mask_buf, LV_DRAW_MASK_RES_CHANGED, draw_dsc->opa, draw_dsc->blend_mode); - 728c: 7ba3 ldrb r3, [r4, #14] - 728e: 9302 str r3, [sp, #8] - 7290: 7823 ldrb r3, [r4, #0] - 7292: 9301 str r3, [sp, #4] - 7294: 2302 movs r3, #2 - 7296: ee18 2a10 vmov r2, s16 - 729a: 9300 str r3, [sp, #0] - 729c: 4d1f ldr r5, [pc, #124] ; (731c ) - 729e: 4633 mov r3, r6 - 72a0: a924 add r1, sp, #144 ; 0x90 - 72a2: 4648 mov r0, r9 - 72a4: 47a8 blx r5 - blend_area.y1 = blend_area.y2 + 1; - 72a6: f8bd 2096 ldrh.w r2, [sp, #150] ; 0x96 - 72aa: 3201 adds r2, #1 - 72ac: b212 sxth r2, r2 - 72ae: f8ad 2092 strh.w r2, [sp, #146] ; 0x92 - px_i = 0; - 72b2: 2300 movs r3, #0 - 72b4: e7e5 b.n 7282 - if(blend_area.y1 != blend_area.y2) { - 72b6: f9bd 3096 ldrsh.w r3, [sp, #150] ; 0x96 - 72ba: f9bd 2092 ldrsh.w r2, [sp, #146] ; 0x92 - 72be: 429a cmp r2, r3 - 72c0: d00f beq.n 72e2 - blend_area.y2--; - 72c2: 3b01 subs r3, #1 - 72c4: f8ad 3096 strh.w r3, [sp, #150] ; 0x96 - _lv_blend_map(clip_area, &blend_area, map2, mask_buf, LV_DRAW_MASK_RES_CHANGED, draw_dsc->opa, draw_dsc->blend_mode); - 72c8: 7ba3 ldrb r3, [r4, #14] - 72ca: 9302 str r3, [sp, #8] - 72cc: 7823 ldrb r3, [r4, #0] - 72ce: 9301 str r3, [sp, #4] - 72d0: 2302 movs r3, #2 - 72d2: 9300 str r3, [sp, #0] - 72d4: ee18 2a10 vmov r2, s16 - 72d8: 4c10 ldr r4, [pc, #64] ; (731c ) - 72da: 4633 mov r3, r6 - 72dc: a924 add r1, sp, #144 ; 0x90 - 72de: 4648 mov r0, r9 - 72e0: 47a0 blx r4 - _lv_mem_buf_release(mask_buf); - 72e2: 4630 mov r0, r6 - _lv_mem_buf_release(mask_buf); - 72e4: 4c10 ldr r4, [pc, #64] ; (7328 ) - 72e6: 47a0 blx r4 - _lv_mem_buf_release(map2); - 72e8: ee18 0a10 vmov r0, s16 - 72ec: 47a0 blx r4 -} - 72ee: e713 b.n 7118 - uint32_t mask_buf_size = lv_area_get_size(&draw_area) > LV_HOR_RES_MAX ? LV_HOR_RES_MAX : lv_area_get_size(&draw_area); - 72f0: f44f 73f0 mov.w r3, #480 ; 0x1e0 - 72f4: 930a str r3, [sp, #40] ; 0x28 - 72f6: e1c8 b.n 768a - if(alpha_byte) cf = LV_IMG_CF_TRUE_COLOR_ALPHA; - 72f8: 2205 movs r2, #5 - 72fa: e1de b.n 76ba - uint16_t recolor_premult[3] = {0}; - 72fc: 9310 str r3, [sp, #64] ; 0x40 - 72fe: 9316 str r3, [sp, #88] ; 0x58 - 7300: 9319 str r3, [sp, #100] ; 0x64 - 7302: e213 b.n 772c - mask_res = (alpha_byte || chroma_key || draw_dsc->angle || - 7304: f04f 0b02 mov.w fp, #2 - 7308: e224 b.n 7754 - 730a: bf00 nop - 730c: 0000706d .word 0x0000706d - 7310: 0000526d .word 0x0000526d - 7314: 0000dc65 .word 0x0000dc65 - 7318: 00009a75 .word 0x00009a75 - 731c: 00006a81 .word 0x00006a81 - 7320: 0000e0f5 .word 0x0000e0f5 - 7324: 0000f145 .word 0x0000f145 - 7328: 0000edf9 .word 0x0000edf9 - int32_t rot_x = disp_area->x1 + draw_area.x1 - map_area->x1; - 732c: 9b04 ldr r3, [sp, #16] - 732e: f9bd 2088 ldrsh.w r2, [sp, #136] ; 0x88 - 7332: f9b3 3010 ldrsh.w r3, [r3, #16] - 7336: 4413 add r3, r2 - 7338: f9ba 2000 ldrsh.w r2, [sl] - 733c: 1a9b subs r3, r3, r2 - 733e: 931b str r3, [sp, #108] ; 0x6c - for(x = 0; x < draw_area_w; x++, map_px += px_size_byte, px_i++) { - 7340: eb07 0308 add.w r3, r7, r8 - 7344: ee08 3a90 vmov s17, r3 - 7348: 9306 str r3, [sp, #24] - 734a: ee18 3a10 vmov r3, s16 - 734e: eb03 0348 add.w r3, r3, r8, lsl #1 - 7352: 931d str r3, [sp, #116] ; 0x74 - map_px = map_buf_tmp; - 7354: 9b08 ldr r3, [sp, #32] - 7356: 930d str r3, [sp, #52] ; 0x34 - for(x = 0; x < draw_area_w; x++, map_px += px_size_byte, px_i++) { - 7358: 2300 movs r3, #0 -{ - const uint8_t * src_u8 = (const uint8_t *)dsc->cfg.src; - - /*Get the target point relative coordinates to the pivot*/ - int32_t xt = x - dsc->cfg.pivot_x; - int32_t yt = y - dsc->cfg.pivot_y; - 735a: 9a09 ldr r2, [sp, #36] ; 0x24 - 735c: 930e str r3, [sp, #56] ; 0x38 - 735e: 9b1a ldr r3, [sp, #104] ; 0x68 - 7360: 4413 add r3, r2 - 7362: b21b sxth r3, r3 - 7364: 931e str r3, [sp, #120] ; 0x78 - 7366: 9b11 ldr r3, [sp, #68] ; 0x44 - 7368: 9a0e ldr r2, [sp, #56] ; 0x38 - 736a: 4293 cmp r3, r2 - 736c: dc43 bgt.n 73f6 - 736e: 9b1f ldr r3, [sp, #124] ; 0x7c - 7370: 4498 add r8, r3 - if(other_mask_cnt) { - 7372: 9b0b ldr r3, [sp, #44] ; 0x2c - 7374: b333 cbz r3, 73c4 - mask_res_sub = lv_draw_mask_apply(mask_buf + px_i_start, draw_area.x1 + vdb->area.x1, y + draw_area.y1 + vdb->area.y1, - 7376: 9804 ldr r0, [sp, #16] - 7378: f8bd 208a ldrh.w r2, [sp, #138] ; 0x8a - 737c: 8a40 ldrh r0, [r0, #18] - 737e: f8bd 308c ldrh.w r3, [sp, #140] ; 0x8c - 7382: f8bd 1088 ldrh.w r1, [sp, #136] ; 0x88 - 7386: 4d9d ldr r5, [pc, #628] ; (75fc ) - 7388: 4402 add r2, r0 - 738a: 9809 ldr r0, [sp, #36] ; 0x24 - 738c: 4402 add r2, r0 - 738e: 9804 ldr r0, [sp, #16] - 7390: 8a00 ldrh r0, [r0, #16] - 7392: 3301 adds r3, #1 - 7394: 1a5b subs r3, r3, r1 - 7396: 4401 add r1, r0 - 7398: b21b sxth r3, r3 - 739a: ee18 0a90 vmov r0, s17 - 739e: b212 sxth r2, r2 - 73a0: b209 sxth r1, r1 - 73a2: 47a8 blx r5 - if(mask_res_sub == LV_DRAW_MASK_RES_TRANSP) { - 73a4: 2800 cmp r0, #0 - 73a6: f040 8123 bne.w 75f0 - 73aa: f8bd 108c ldrh.w r1, [sp, #140] ; 0x8c - 73ae: f8bd 3088 ldrh.w r3, [sp, #136] ; 0x88 - 73b2: 3101 adds r1, #1 - 73b4: 1ac9 subs r1, r1, r3 - _lv_memset_00(mask_buf + px_i_start, lv_area_get_width(&draw_area)); - 73b6: ee18 0a90 vmov r0, s17 - 73ba: 4b91 ldr r3, [pc, #580] ; (7600 ) - 73bc: b209 sxth r1, r1 - 73be: 4798 blx r3 - mask_res = LV_DRAW_MASK_RES_CHANGED; - 73c0: f04f 0b02 mov.w fp, #2 - map_buf_tmp += map_w * px_size_byte; - 73c4: 9b08 ldr r3, [sp, #32] - 73c6: 9a1c ldr r2, [sp, #112] ; 0x70 - 73c8: 4413 add r3, r2 - 73ca: 9308 str r3, [sp, #32] - 73cc: f8bd 308c ldrh.w r3, [sp, #140] ; 0x8c - 73d0: f8bd 2088 ldrh.w r2, [sp, #136] ; 0x88 - 73d4: 3301 adds r3, #1 - 73d6: 1a9b subs r3, r3, r2 - if(px_i + lv_area_get_width(&draw_area) < mask_buf_size) { - 73d8: 9a0a ldr r2, [sp, #40] ; 0x28 - 73da: fa08 f383 sxtah r3, r8, r3 - 73de: 4293 cmp r3, r2 - 73e0: f080 8116 bcs.w 7610 - blend_area.y2 ++; - 73e4: f8bd 3096 ldrh.w r3, [sp, #150] ; 0x96 - 73e8: 3301 adds r3, #1 - 73ea: f8ad 3096 strh.w r3, [sp, #150] ; 0x96 - for(y = 0; y < draw_area_h; y++) { - 73ee: 9b09 ldr r3, [sp, #36] ; 0x24 - 73f0: 3301 adds r3, #1 - 73f2: 9309 str r3, [sp, #36] ; 0x24 - 73f4: e1c9 b.n 778a - if(transform) { - 73f6: 9b15 ldr r3, [sp, #84] ; 0x54 - 73f8: 2b00 cmp r3, #0 - 73fa: f000 80d7 beq.w 75ac - int32_t xt = x - dsc->cfg.pivot_x; - 73fe: 9a0e ldr r2, [sp, #56] ; 0x38 - 7400: 9b1b ldr r3, [sp, #108] ; 0x6c - int32_t yt = y - dsc->cfg.pivot_y; - 7402: 991e ldr r1, [sp, #120] ; 0x78 - const uint8_t * src_u8 = (const uint8_t *)dsc->cfg.src; - 7404: 9826 ldr r0, [sp, #152] ; 0x98 - int32_t xt = x - dsc->cfg.pivot_x; - 7406: 4413 add r3, r2 - 7408: f9bd 20a0 ldrsh.w r2, [sp, #160] ; 0xa0 - 740c: b21b sxth r3, r3 - 740e: 1a9b subs r3, r3, r2 - int32_t yt = y - dsc->cfg.pivot_y; - 7410: f9bd 20a2 ldrsh.w r2, [sp, #162] ; 0xa2 - 7414: 1a8a subs r2, r1, r2 - - int32_t xs; - int32_t ys; - if(dsc->cfg.zoom == LV_IMG_ZOOM_NONE) { - 7416: f8bd 10a6 ldrh.w r1, [sp, #166] ; 0xa6 - 741a: f5b1 7f80 cmp.w r1, #256 ; 0x100 - /*Get the source pixel from the upscaled image*/ - xs = ((dsc->tmp.cosma * xt - dsc->tmp.sinma * yt) >> (LV_TRIGO_SHIFT - 8)) + dsc->tmp.pivot_x_256; - ys = ((dsc->tmp.sinma * xt + dsc->tmp.cosma * yt) >> (LV_TRIGO_SHIFT - 8)) + dsc->tmp.pivot_y_256; - 741e: e9dd 652f ldrd r6, r5, [sp, #188] ; 0xbc - if(dsc->cfg.zoom == LV_IMG_ZOOM_NONE) { - 7422: d119 bne.n 7458 - xs = ((dsc->tmp.cosma * xt - dsc->tmp.sinma * yt) >> (LV_TRIGO_SHIFT - 8)) + dsc->tmp.pivot_x_256; - 7424: e9dd e131 ldrd lr, r1, [sp, #196] ; 0xc4 - 7428: fb01 fc03 mul.w ip, r1, r3 - ys = ((dsc->tmp.sinma * xt + dsc->tmp.cosma * yt) >> (LV_TRIGO_SHIFT - 8)) + dsc->tmp.pivot_y_256; - 742c: 4351 muls r1, r2 - xs = ((dsc->tmp.cosma * xt - dsc->tmp.sinma * yt) >> (LV_TRIGO_SHIFT - 8)) + dsc->tmp.pivot_x_256; - 742e: fb0e cc12 mls ip, lr, r2, ip - ys = ((dsc->tmp.sinma * xt + dsc->tmp.cosma * yt) >> (LV_TRIGO_SHIFT - 8)) + dsc->tmp.pivot_y_256; - 7432: fb0e 1103 mla r1, lr, r3, r1 - xs = ((dsc->tmp.cosma * xt - dsc->tmp.sinma * yt) >> (LV_TRIGO_SHIFT - 8)) + dsc->tmp.pivot_x_256; - 7436: eb06 16ec add.w r6, r6, ip, asr #7 - ys = ((dsc->tmp.sinma * xt + dsc->tmp.cosma * yt) >> (LV_TRIGO_SHIFT - 8)) + dsc->tmp.pivot_y_256; - 743a: eb05 13e1 add.w r3, r5, r1, asr #7 - - /*Get the integer part of the source pixel*/ - int32_t xs_int = xs >> 8; - int32_t ys_int = ys >> 8; - - if(xs_int >= dsc->cfg.src_w) return false; - 743e: f9bd 209c ldrsh.w r2, [sp, #156] ; 0x9c - ys = ((dsc->tmp.sinma * xt + dsc->tmp.cosma * yt) >> (LV_TRIGO_SHIFT)) + dsc->tmp.pivot_y_256; - 7442: 930f str r3, [sp, #60] ; 0x3c - if(xs_int >= dsc->cfg.src_w) return false; - 7444: ebb2 2f26 cmp.w r2, r6, asr #8 - int32_t xs_int = xs >> 8; - 7448: ea4f 2326 mov.w r3, r6, asr #8 - 744c: 9318 str r3, [sp, #96] ; 0x60 - if(xs_int >= dsc->cfg.src_w) return false; - 744e: dc1b bgt.n 7488 - mask_buf[px_i] = LV_OPA_TRANSP; - 7450: 9a06 ldr r2, [sp, #24] - 7452: 2300 movs r3, #0 - 7454: 7013 strb r3, [r2, #0] - continue; - 7456: e0b0 b.n 75ba - xt *= dsc->tmp.zoom_inv; - 7458: f8bd 10ce ldrh.w r1, [sp, #206] ; 0xce - 745c: 434b muls r3, r1 - yt *= dsc->tmp.zoom_inv; - 745e: 434a muls r2, r1 - else if(dsc->cfg.angle == 0) { - 7460: f9bd 10a4 ldrsh.w r1, [sp, #164] ; 0xa4 - 7464: b911 cbnz r1, 746c - xs = xt + dsc->tmp.pivot_x_256; - 7466: 441e add r6, r3 - ys = yt + dsc->tmp.pivot_y_256; - 7468: 18ab adds r3, r5, r2 - 746a: e7e8 b.n 743e - xs = ((dsc->tmp.cosma * xt - dsc->tmp.sinma * yt) >> (LV_TRIGO_SHIFT)) + dsc->tmp.pivot_x_256; - 746c: e9dd e131 ldrd lr, r1, [sp, #196] ; 0xc4 - 7470: fb03 fc01 mul.w ip, r3, r1 - ys = ((dsc->tmp.sinma * xt + dsc->tmp.cosma * yt) >> (LV_TRIGO_SHIFT)) + dsc->tmp.pivot_y_256; - 7474: 4351 muls r1, r2 - xs = ((dsc->tmp.cosma * xt - dsc->tmp.sinma * yt) >> (LV_TRIGO_SHIFT)) + dsc->tmp.pivot_x_256; - 7476: fb02 cc1e mls ip, r2, lr, ip - ys = ((dsc->tmp.sinma * xt + dsc->tmp.cosma * yt) >> (LV_TRIGO_SHIFT)) + dsc->tmp.pivot_y_256; - 747a: fb03 110e mla r1, r3, lr, r1 - xs = ((dsc->tmp.cosma * xt - dsc->tmp.sinma * yt) >> (LV_TRIGO_SHIFT)) + dsc->tmp.pivot_x_256; - 747e: eb06 36ec add.w r6, r6, ip, asr #15 - ys = ((dsc->tmp.sinma * xt + dsc->tmp.cosma * yt) >> (LV_TRIGO_SHIFT)) + dsc->tmp.pivot_y_256; - 7482: eb05 33e1 add.w r3, r5, r1, asr #15 - 7486: e7da b.n 743e - else if(xs_int < 0) return false; - 7488: 1233 asrs r3, r6, #8 - 748a: 2b00 cmp r3, #0 - 748c: dbe0 blt.n 7450 - int32_t ys_int = ys >> 8; - 748e: 9b0f ldr r3, [sp, #60] ; 0x3c - - if(ys_int >= dsc->cfg.src_h) return false; - 7490: 990f ldr r1, [sp, #60] ; 0x3c - int32_t ys_int = ys >> 8; - 7492: 121b asrs r3, r3, #8 - 7494: 9312 str r3, [sp, #72] ; 0x48 - if(ys_int >= dsc->cfg.src_h) return false; - 7496: f9bd 309e ldrsh.w r3, [sp, #158] ; 0x9e - 749a: ebb3 2f21 cmp.w r3, r1, asr #8 - 749e: ddd7 ble.n 7450 - else if(ys_int < 0) return false; - 74a0: 9b12 ldr r3, [sp, #72] ; 0x48 - 74a2: 2b00 cmp r3, #0 - 74a4: dbd4 blt.n 7450 - - uint8_t px_size; - uint32_t pxi; - if(dsc->tmp.native_color) { - 74a6: f89d 50cc ldrb.w r5, [sp, #204] ; 0xcc - 74aa: f015 0104 ands.w r1, r5, #4 - 74ae: 9113 str r1, [sp, #76] ; 0x4c - 74b0: d066 beq.n 7580 - if(dsc->tmp.has_alpha == 0) { - 74b2: 1231 asrs r1, r6, #8 - 74b4: fb02 1203 mla r2, r2, r3, r1 - 74b8: f015 0f02 tst.w r5, #2 - 74bc: ea4f 0342 mov.w r3, r2, lsl #1 - 74c0: d151 bne.n 7566 - *d8 = *s8; - 74c2: f810 2012 ldrb.w r2, [r0, r2, lsl #1] - 74c6: f88d 20ac strb.w r2, [sp, #172] ; 0xac - px_size = LV_COLOR_SIZE >> 3; - - pxi = dsc->cfg.src_w * ys_int * px_size + xs_int * px_size; - _lv_memcpy_small(&dsc->res.color, &src_u8[pxi], px_size); - 74ca: 18c1 adds r1, r0, r3 - 74cc: 784a ldrb r2, [r1, #1] - 74ce: f88d 20ad strb.w r2, [sp, #173] ; 0xad - px_size = LV_COLOR_SIZE >> 3; - 74d2: 2202 movs r2, #2 - } - else { - px_size = LV_IMG_PX_SIZE_ALPHA_BYTE; - 74d4: 9213 str r2, [sp, #76] ; 0x4c - px_size = 0; /*unused*/ - dsc->res.color = lv_img_buf_get_px_color(&dsc->tmp.img_dsc, xs_int, ys_int, dsc->cfg.color); - dsc->res.opa = lv_img_buf_get_px_alpha(&dsc->tmp.img_dsc, xs_int, ys_int); - } - - if(dsc->tmp.chroma_keyed) { - 74d6: f89d 20cc ldrb.w r2, [sp, #204] ; 0xcc - 74da: 07d2 lsls r2, r2, #31 - 74dc: d504 bpl.n 74e8 - lv_color_t ct = LV_COLOR_TRANSP; - if(dsc->res.color.full == ct.full) return false; - 74de: f8bd 20ac ldrh.w r2, [sp, #172] ; 0xac - 74e2: f5b2 6ffc cmp.w r2, #2016 ; 0x7e0 - 74e6: d0b3 beq.n 7450 - } - - if(dsc->cfg.antialias == false) return true; - 74e8: f89d 20ab ldrb.w r2, [sp, #171] ; 0xab - 74ec: b19a cbz r2, 7516 - - dsc->tmp.xs = xs; - dsc->tmp.ys = ys; - 74ee: 9a0f ldr r2, [sp, #60] ; 0x3c - 74f0: f8ad 20d2 strh.w r2, [sp, #210] ; 0xd2 - dsc->tmp.xs_int = xs_int; - dsc->tmp.ys_int = ys_int; - dsc->tmp.pxi = pxi; - 74f4: 9336 str r3, [sp, #216] ; 0xd8 - dsc->tmp.xs_int = xs_int; - 74f6: 9a18 ldr r2, [sp, #96] ; 0x60 - dsc->tmp.px_size = px_size; - 74f8: 9b13 ldr r3, [sp, #76] ; 0x4c - dsc->tmp.xs_int = xs_int; - 74fa: f8ad 20d4 strh.w r2, [sp, #212] ; 0xd4 - dsc->tmp.px_size = px_size; - 74fe: f88d 30dc strb.w r3, [sp, #220] ; 0xdc - dsc->tmp.ys_int = ys_int; - 7502: 9a12 ldr r2, [sp, #72] ; 0x48 - - bool ret; - ret = _lv_img_buf_transform_anti_alias(dsc); - 7504: 4b3f ldr r3, [pc, #252] ; (7604 ) - dsc->tmp.xs = xs; - 7506: f8ad 60d0 strh.w r6, [sp, #208] ; 0xd0 - ret = _lv_img_buf_transform_anti_alias(dsc); - 750a: a826 add r0, sp, #152 ; 0x98 - dsc->tmp.ys_int = ys_int; - 750c: f8ad 20d6 strh.w r2, [sp, #214] ; 0xd6 - ret = _lv_img_buf_transform_anti_alias(dsc); - 7510: 4798 blx r3 - if(ret == false) { - 7512: 2800 cmp r0, #0 - 7514: d09c beq.n 7450 - mask_buf[px_i] = trans_dsc.res.opa; - 7516: 9a06 ldr r2, [sp, #24] - 7518: f89d 30ae ldrb.w r3, [sp, #174] ; 0xae - 751c: 7013 strb r3, [r2, #0] - c.full = trans_dsc.res.color.full; - 751e: f8bd 30ac ldrh.w r3, [sp, #172] ; 0xac - if(draw_dsc->recolor_opa != 0) { - 7522: 7aa2 ldrb r2, [r4, #10] - 7524: b1d2 cbz r2, 755c - LV_COLOR_SET_G(ret, (uint16_t)((uint16_t) premult_c1[1] + LV_COLOR_GET_G(c2) * mix) >> 8); - 7526: 9916 ldr r1, [sp, #88] ; 0x58 - 7528: 9814 ldr r0, [sp, #80] ; 0x50 - LV_COLOR_SET_B(ret, (uint16_t)((uint16_t) premult_c1[2] + LV_COLOR_GET_B(c2) * mix) >> 8); - 752a: 9d14 ldr r5, [sp, #80] ; 0x50 - LV_COLOR_SET_G(ret, (uint16_t)((uint16_t) premult_c1[1] + LV_COLOR_GET_G(c2) * mix) >> 8); - 752c: f3c3 1245 ubfx r2, r3, #5, #6 - 7530: fb02 1200 mla r2, r2, r0, r1 - LV_COLOR_SET_B(ret, (uint16_t)((uint16_t) premult_c1[2] + LV_COLOR_GET_B(c2) * mix) >> 8); - 7534: 9810 ldr r0, [sp, #64] ; 0x40 - 7536: f003 011f and.w r1, r3, #31 - 753a: 08d2 lsrs r2, r2, #3 - 753c: fb01 0105 mla r1, r1, r5, r0 - 7540: f3c1 2104 ubfx r1, r1, #8, #5 - 7544: f402 62fc and.w r2, r2, #2016 ; 0x7e0 - 7548: 430a orrs r2, r1 - LV_COLOR_SET_R(ret, (uint16_t)((uint16_t) premult_c1[0] + LV_COLOR_GET_R(c2) * mix) >> 8); - 754a: 9919 ldr r1, [sp, #100] ; 0x64 - 754c: 0adb lsrs r3, r3, #11 - 754e: fb03 1305 mla r3, r3, r5, r1 - 7552: f3c3 2307 ubfx r3, r3, #8, #8 - 7556: ea42 23c3 orr.w r3, r2, r3, lsl #11 - 755a: b29b uxth r3, r3 - map2[px_i].full = c.full; - 755c: 9a1d ldr r2, [sp, #116] ; 0x74 - 755e: 990e ldr r1, [sp, #56] ; 0x38 - 7560: f822 3011 strh.w r3, [r2, r1, lsl #1] - 7564: e029 b.n 75ba - pxi = dsc->cfg.src_w * ys_int * px_size + xs_int * px_size; - 7566: 4413 add r3, r2 - _lv_memcpy_small(&dsc->res.color, &src_u8[pxi], px_size - 1); - 7568: 18c2 adds r2, r0, r3 - 756a: 5cc1 ldrb r1, [r0, r3] - 756c: f88d 10ac strb.w r1, [sp, #172] ; 0xac - 7570: 7851 ldrb r1, [r2, #1] - 7572: f88d 10ad strb.w r1, [sp, #173] ; 0xad - dsc->res.opa = src_u8[pxi + px_size - 1]; - 7576: 7892 ldrb r2, [r2, #2] - 7578: f88d 20ae strb.w r2, [sp, #174] ; 0xae - px_size = LV_IMG_PX_SIZE_ALPHA_BYTE; - 757c: 2203 movs r2, #3 - 757e: e7a9 b.n 74d4 - dsc->res.color = lv_img_buf_get_px_color(&dsc->tmp.img_dsc, xs_int, ys_int, dsc->cfg.color); - 7580: f9bd 1060 ldrsh.w r1, [sp, #96] ; 0x60 - 7584: f9bd 2048 ldrsh.w r2, [sp, #72] ; 0x48 - 7588: f8bd 30a8 ldrh.w r3, [sp, #168] ; 0xa8 - 758c: 4d1e ldr r5, [pc, #120] ; (7608 ) - 758e: a82c add r0, sp, #176 ; 0xb0 - 7590: e9cd 1220 strd r1, r2, [sp, #128] ; 0x80 - 7594: 47a8 blx r5 - dsc->res.opa = lv_img_buf_get_px_alpha(&dsc->tmp.img_dsc, xs_int, ys_int); - 7596: 4b1d ldr r3, [pc, #116] ; (760c ) - dsc->res.color = lv_img_buf_get_px_color(&dsc->tmp.img_dsc, xs_int, ys_int, dsc->cfg.color); - 7598: f8ad 00ac strh.w r0, [sp, #172] ; 0xac - dsc->res.opa = lv_img_buf_get_px_alpha(&dsc->tmp.img_dsc, xs_int, ys_int); - 759c: e9dd 1220 ldrd r1, r2, [sp, #128] ; 0x80 - 75a0: a82c add r0, sp, #176 ; 0xb0 - 75a2: 4798 blx r3 - pxi = 0; /*unused*/ - 75a4: 9b13 ldr r3, [sp, #76] ; 0x4c - dsc->res.opa = lv_img_buf_get_px_alpha(&dsc->tmp.img_dsc, xs_int, ys_int); - 75a6: f88d 00ae strb.w r0, [sp, #174] ; 0xae - 75aa: e794 b.n 74d6 - if(alpha_byte) { - 75ac: 9b07 ldr r3, [sp, #28] - 75ae: b17b cbz r3, 75d0 - lv_opa_t px_opa = map_px[LV_IMG_PX_SIZE_ALPHA_BYTE - 1]; - 75b0: 9b0d ldr r3, [sp, #52] ; 0x34 - mask_buf[px_i] = px_opa; - 75b2: 9a06 ldr r2, [sp, #24] - lv_opa_t px_opa = map_px[LV_IMG_PX_SIZE_ALPHA_BYTE - 1]; - 75b4: 789b ldrb r3, [r3, #2] - mask_buf[px_i] = px_opa; - 75b6: 7013 strb r3, [r2, #0] - if(px_opa == 0) { - 75b8: b96b cbnz r3, 75d6 - for(x = 0; x < draw_area_w; x++, map_px += px_size_byte, px_i++) { - 75ba: 9b0e ldr r3, [sp, #56] ; 0x38 - 75bc: 9a05 ldr r2, [sp, #20] - 75be: 3301 adds r3, #1 - 75c0: 930e str r3, [sp, #56] ; 0x38 - 75c2: 9b0d ldr r3, [sp, #52] ; 0x34 - 75c4: 4413 add r3, r2 - 75c6: 930d str r3, [sp, #52] ; 0x34 - 75c8: 9b06 ldr r3, [sp, #24] - 75ca: 3301 adds r3, #1 - 75cc: 9306 str r3, [sp, #24] - 75ce: e6ca b.n 7366 - mask_buf[px_i] = 0xFF; - 75d0: 9a06 ldr r2, [sp, #24] - 75d2: 23ff movs r3, #255 ; 0xff - 75d4: 7013 strb r3, [r2, #0] - c.full = map_px[0] + (map_px[1] << 8); - 75d6: 9b0d ldr r3, [sp, #52] ; 0x34 - 75d8: 785a ldrb r2, [r3, #1] - 75da: 781b ldrb r3, [r3, #0] - 75dc: eb03 2302 add.w r3, r3, r2, lsl #8 - if(chroma_key) { - 75e0: 9a0c ldr r2, [sp, #48] ; 0x30 - c.full = map_px[0] + (map_px[1] << 8); - 75e2: b29b uxth r3, r3 - if(chroma_key) { - 75e4: 2a00 cmp r2, #0 - 75e6: d09c beq.n 7522 - if(c.full == chroma_keyed_color.full) { - 75e8: f5b3 6ffc cmp.w r3, #2016 ; 0x7e0 - 75ec: d199 bne.n 7522 - 75ee: e72f b.n 7450 - mask_res = LV_DRAW_MASK_RES_CHANGED; - 75f0: 2802 cmp r0, #2 - 75f2: bf08 it eq - 75f4: f04f 0b02 moveq.w fp, #2 - 75f8: e6e4 b.n 73c4 - 75fa: bf00 nop - 75fc: 000099e5 .word 0x000099e5 - 7600: 0000f2a9 .word 0x0000f2a9 - 7604: 0000c469 .word 0x0000c469 - 7608: 0000c00d .word 0x0000c00d - 760c: 0000c0fd .word 0x0000c0fd - _lv_blend_map(clip_area, &blend_area, map2, mask_buf, mask_res, draw_dsc->opa, draw_dsc->blend_mode); - 7610: 7ba3 ldrb r3, [r4, #14] - 7612: 9302 str r3, [sp, #8] - 7614: 7823 ldrb r3, [r4, #0] - 7616: 4d6b ldr r5, [pc, #428] ; (77c4 ) - 7618: e9cd b300 strd fp, r3, [sp] - 761c: ee18 2a10 vmov r2, s16 - 7620: 463b mov r3, r7 - 7622: a924 add r1, sp, #144 ; 0x90 - 7624: 4648 mov r0, r9 - 7626: 47a8 blx r5 - blend_area.y1 = blend_area.y2 + 1; - 7628: f8bd 3096 ldrh.w r3, [sp, #150] ; 0x96 - 762c: 3301 adds r3, #1 - 762e: b21b sxth r3, r3 - 7630: f8ad 3092 strh.w r3, [sp, #146] ; 0x92 - blend_area.y2 = blend_area.y1; - 7634: f8ad 3096 strh.w r3, [sp, #150] ; 0x96 - mask_res = (alpha_byte || chroma_key || draw_dsc->angle || - 7638: 9b07 ldr r3, [sp, #28] - 763a: b9a3 cbnz r3, 7666 - 763c: 9b0c ldr r3, [sp, #48] ; 0x30 - 763e: b993 cbnz r3, 7666 - 7640: 8863 ldrh r3, [r4, #2] - 7642: b983 cbnz r3, 7666 - 7644: 8923 ldrh r3, [r4, #8] - 7646: f5b3 7f80 cmp.w r3, #256 ; 0x100 - 764a: bf14 ite ne - 764c: f04f 0b02 movne.w fp, #2 - 7650: f04f 0b01 moveq.w fp, #1 - if(other_mask_cnt) { - 7654: 9b0b ldr r3, [sp, #44] ; 0x2c - 7656: b14b cbz r3, 766c - _lv_memset_ff(mask_buf, mask_buf_size); - 7658: 990a ldr r1, [sp, #40] ; 0x28 - 765a: 4b5b ldr r3, [pc, #364] ; (77c8 ) - 765c: 4638 mov r0, r7 - 765e: 4798 blx r3 - px_i = 0; - 7660: f04f 0800 mov.w r8, #0 - 7664: e6c3 b.n 73ee - mask_res = (alpha_byte || chroma_key || draw_dsc->angle || - 7666: f04f 0b02 mov.w fp, #2 - 766a: e7f3 b.n 7654 - px_i = 0; - 766c: f8dd 802c ldr.w r8, [sp, #44] ; 0x2c - 7670: e6bd b.n 73ee - bool transform = draw_dsc->angle != 0 || draw_dsc->zoom != LV_IMG_ZOOM_NONE ? true : false; - 7672: 2301 movs r3, #1 - 7674: 9315 str r3, [sp, #84] ; 0x54 - uint32_t mask_buf_size = lv_area_get_size(&draw_area) > LV_HOR_RES_MAX ? LV_HOR_RES_MAX : lv_area_get_size(&draw_area); - 7676: 4e55 ldr r6, [pc, #340] ; (77cc ) - 7678: a822 add r0, sp, #136 ; 0x88 - 767a: 47b0 blx r6 - 767c: f5b0 7ff0 cmp.w r0, #480 ; 0x1e0 - 7680: f63f ae36 bhi.w 72f0 - 7684: a822 add r0, sp, #136 ; 0x88 - 7686: 47b0 blx r6 - 7688: 900a str r0, [sp, #40] ; 0x28 - lv_color_t * map2 = _lv_mem_buf_get(mask_buf_size * sizeof(lv_color_t)); - 768a: 9b0a ldr r3, [sp, #40] ; 0x28 - 768c: 4e50 ldr r6, [pc, #320] ; (77d0 ) - 768e: 0058 lsls r0, r3, #1 - 7690: 47b0 blx r6 - 7692: ee08 0a10 vmov s16, r0 - lv_opa_t * mask_buf = _lv_mem_buf_get(mask_buf_size); - 7696: 980a ldr r0, [sp, #40] ; 0x28 - 7698: 47b0 blx r6 - _lv_memset_00(&trans_dsc, sizeof(lv_img_transform_dsc_t)); - 769a: 4b4e ldr r3, [pc, #312] ; (77d4 ) - lv_opa_t * mask_buf = _lv_mem_buf_get(mask_buf_size); - 769c: 4607 mov r7, r0 - _lv_memset_00(&trans_dsc, sizeof(lv_img_transform_dsc_t)); - 769e: 2148 movs r1, #72 ; 0x48 - 76a0: a826 add r0, sp, #152 ; 0x98 - 76a2: 4798 blx r3 - if(transform) { - 76a4: 9b15 ldr r3, [sp, #84] ; 0x54 - 76a6: b363 cbz r3, 7702 - if(alpha_byte) cf = LV_IMG_CF_TRUE_COLOR_ALPHA; - 76a8: 9b07 ldr r3, [sp, #28] - 76aa: 2b00 cmp r3, #0 - 76ac: f47f ae24 bne.w 72f8 - else if(chroma_key) cf = LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED; - 76b0: 9b0c ldr r3, [sp, #48] ; 0x30 - 76b2: 2b00 cmp r3, #0 - 76b4: bf0c ite eq - 76b6: 2204 moveq r2, #4 - 76b8: 2206 movne r2, #6 - trans_dsc.cfg.angle = draw_dsc->angle; - 76ba: 8863 ldrh r3, [r4, #2] - 76bc: f8ad 30a4 strh.w r3, [sp, #164] ; 0xa4 - trans_dsc.cfg.zoom = draw_dsc->zoom; - 76c0: 8923 ldrh r3, [r4, #8] - 76c2: f8ad 30a6 strh.w r3, [sp, #166] ; 0xa6 - return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - 76c6: f8ba 3006 ldrh.w r3, [sl, #6] - 76ca: f8ba 1002 ldrh.w r1, [sl, #2] - trans_dsc.cfg.src = map_p; - 76ce: 9526 str r5, [sp, #152] ; 0x98 - 76d0: 3301 adds r3, #1 - 76d2: 1a5b subs r3, r3, r1 - trans_dsc.cfg.src_h = lv_area_get_height(map_area);; - 76d4: f8ad 309e strh.w r3, [sp, #158] ; 0x9e - trans_dsc.cfg.pivot_x = draw_dsc->pivot.x; - 76d8: 88a3 ldrh r3, [r4, #4] - 76da: f8ad 30a0 strh.w r3, [sp, #160] ; 0xa0 - trans_dsc.cfg.pivot_y = draw_dsc->pivot.y; - 76de: 88e3 ldrh r3, [r4, #6] - 76e0: f8ad 30a2 strh.w r3, [sp, #162] ; 0xa2 - trans_dsc.cfg.color = draw_dsc->recolor; - 76e4: 89a3 ldrh r3, [r4, #12] - 76e6: f8ad 30a8 strh.w r3, [sp, #168] ; 0xa8 - trans_dsc.cfg.antialias = draw_dsc->antialias; - 76ea: 7be3 ldrb r3, [r4, #15] - trans_dsc.cfg.src_w = map_w; - 76ec: f8ad 809c strh.w r8, [sp, #156] ; 0x9c - trans_dsc.cfg.antialias = draw_dsc->antialias; - 76f0: f3c3 0300 ubfx r3, r3, #0, #1 - 76f4: f88d 30ab strb.w r3, [sp, #171] ; 0xab - _lv_img_buf_transform_init(&trans_dsc); - 76f8: a826 add r0, sp, #152 ; 0x98 - 76fa: 4b37 ldr r3, [pc, #220] ; (77d8 ) - trans_dsc.cfg.cf = cf; - 76fc: f88d 20aa strb.w r2, [sp, #170] ; 0xaa - _lv_img_buf_transform_init(&trans_dsc); - 7700: 4798 blx r3 - lv_opa_t recolor_opa_inv = 255 - draw_dsc->recolor_opa; - 7702: 7aa3 ldrb r3, [r4, #10] - 7704: 43da mvns r2, r3 - 7706: b2d2 uxtb r2, r2 - 7708: 9214 str r2, [sp, #80] ; 0x50 - if(draw_dsc->recolor_opa != 0) { - 770a: 2b00 cmp r3, #0 - 770c: f43f adf6 beq.w 72fc - out[0] = (uint16_t) LV_COLOR_GET_R(c) * mix; - 7710: 7b62 ldrb r2, [r4, #13] - 7712: 08d2 lsrs r2, r2, #3 - 7714: 435a muls r2, r3 - 7716: 9219 str r2, [sp, #100] ; 0x64 - out[1] = (uint16_t) LV_COLOR_GET_G(c) * mix; - 7718: 89a2 ldrh r2, [r4, #12] - 771a: f3c2 1245 ubfx r2, r2, #5, #6 - 771e: 435a muls r2, r3 - 7720: 9216 str r2, [sp, #88] ; 0x58 - out[2] = (uint16_t) LV_COLOR_GET_B(c) * mix; - 7722: 7b22 ldrb r2, [r4, #12] - 7724: f002 021f and.w r2, r2, #31 - 7728: 4353 muls r3, r2 - 772a: 9310 str r3, [sp, #64] ; 0x40 - mask_res = (alpha_byte || chroma_key || draw_dsc->angle || - 772c: 9b07 ldr r3, [sp, #28] - 772e: 2b00 cmp r3, #0 - 7730: f47f ade8 bne.w 7304 - 7734: 9b0c ldr r3, [sp, #48] ; 0x30 - 7736: 2b00 cmp r3, #0 - 7738: f47f ade4 bne.w 7304 - 773c: 8863 ldrh r3, [r4, #2] - 773e: 2b00 cmp r3, #0 - 7740: f47f ade0 bne.w 7304 - 7744: 8923 ldrh r3, [r4, #8] - 7746: f5b3 7f80 cmp.w r3, #256 ; 0x100 - 774a: bf14 ite ne - 774c: f04f 0b02 movne.w fp, #2 - 7750: f04f 0b01 moveq.w fp, #1 - if(other_mask_cnt) { - 7754: 9b0b ldr r3, [sp, #44] ; 0x2c - 7756: b11b cbz r3, 7760 - _lv_memset_ff(mask_buf, mask_buf_size); - 7758: 990a ldr r1, [sp, #40] ; 0x28 - 775a: 4b1b ldr r3, [pc, #108] ; (77c8 ) - 775c: 4638 mov r0, r7 - 775e: 4798 blx r3 - int32_t rot_y = disp_area->y1 + draw_area.y1 - map_area->y1; - 7760: 9b04 ldr r3, [sp, #16] - 7762: f9bd 208a ldrsh.w r2, [sp, #138] ; 0x8a - 7766: f9b3 3012 ldrsh.w r3, [r3, #18] - 776a: 4413 add r3, r2 - 776c: f9ba 2002 ldrsh.w r2, [sl, #2] - 7770: 1a9b subs r3, r3, r2 - 7772: 931a str r3, [sp, #104] ; 0x68 - map_buf_tmp += map_w * px_size_byte; - 7774: 9b05 ldr r3, [sp, #20] - 7776: fb13 f308 smulbb r3, r3, r8 - 777a: 931c str r3, [sp, #112] ; 0x70 - for(y = 0; y < draw_area_h; y++) { - 777c: 2300 movs r3, #0 - 777e: 9309 str r3, [sp, #36] ; 0x24 - uint32_t px_i = 0; - 7780: 4698 mov r8, r3 - 7782: 9b11 ldr r3, [sp, #68] ; 0x44 - 7784: ea23 73e3 bic.w r3, r3, r3, asr #31 - 7788: 931f str r3, [sp, #124] ; 0x7c - for(y = 0; y < draw_area_h; y++) { - 778a: 9b17 ldr r3, [sp, #92] ; 0x5c - 778c: 9a09 ldr r2, [sp, #36] ; 0x24 - 778e: 4293 cmp r3, r2 - 7790: f73f adcc bgt.w 732c - if(blend_area.y1 != blend_area.y2) { - 7794: f9bd 3096 ldrsh.w r3, [sp, #150] ; 0x96 - 7798: f9bd 2092 ldrsh.w r2, [sp, #146] ; 0x92 - 779c: 429a cmp r2, r3 - 779e: d00e beq.n 77be - blend_area.y2--; - 77a0: 3b01 subs r3, #1 - 77a2: f8ad 3096 strh.w r3, [sp, #150] ; 0x96 - _lv_blend_map(clip_area, &blend_area, map2, mask_buf, mask_res, draw_dsc->opa, draw_dsc->blend_mode); - 77a6: 7ba3 ldrb r3, [r4, #14] - 77a8: 9302 str r3, [sp, #8] - 77aa: 7823 ldrb r3, [r4, #0] - 77ac: 4c05 ldr r4, [pc, #20] ; (77c4 ) - 77ae: e9cd b300 strd fp, r3, [sp] - 77b2: ee18 2a10 vmov r2, s16 - 77b6: 463b mov r3, r7 - 77b8: a924 add r1, sp, #144 ; 0x90 - 77ba: 4648 mov r0, r9 - 77bc: 47a0 blx r4 - _lv_mem_buf_release(mask_buf); - 77be: 4638 mov r0, r7 - 77c0: e590 b.n 72e4 - 77c2: bf00 nop - 77c4: 00006a81 .word 0x00006a81 - 77c8: 0000f305 .word 0x0000f305 - 77cc: 0000e0f5 .word 0x0000e0f5 - 77d0: 0000f145 .word 0x0000f145 - 77d4: 0000f2a9 .word 0x0000f2a9 - 77d8: 0000c1e9 .word 0x0000c1e9 - -000077dc : -{ - 77dc: b510 push {r4, lr} - _lv_memset_00(dsc, sizeof(lv_draw_img_dsc_t)); - 77de: 4b08 ldr r3, [pc, #32] ; (7800 ) -{ - 77e0: 4604 mov r4, r0 - _lv_memset_00(dsc, sizeof(lv_draw_img_dsc_t)); - 77e2: 2110 movs r1, #16 - 77e4: 4798 blx r3 - dsc->recolor = LV_COLOR_BLACK; - 77e6: 2300 movs r3, #0 - 77e8: 81a3 strh r3, [r4, #12] - dsc->opa = LV_OPA_COVER; - 77ea: 23ff movs r3, #255 ; 0xff - 77ec: 7023 strb r3, [r4, #0] - dsc->zoom = LV_IMG_ZOOM_NONE; - 77ee: f44f 7380 mov.w r3, #256 ; 0x100 - 77f2: 8123 strh r3, [r4, #8] - dsc->antialias = LV_ANTIALIAS; - 77f4: 7be3 ldrb r3, [r4, #15] - 77f6: f043 0301 orr.w r3, r3, #1 - 77fa: 73e3 strb r3, [r4, #15] -} - 77fc: bd10 pop {r4, pc} - 77fe: bf00 nop - 7800: 0000f2a9 .word 0x0000f2a9 - -00007804 : - switch(cf) { - 7804: 3804 subs r0, #4 - 7806: b2c0 uxtb r0, r0 - 7808: 280a cmp r0, #10 - 780a: bf9d ittte ls - 780c: 4b02 ldrls r3, [pc, #8] ; (7818 ) - 780e: 181b addls r3, r3, r0 - 7810: 7898 ldrbls r0, [r3, #2] -{ - 7812: 2000 movhi r0, #0 -} - 7814: 4770 bx lr - 7816: bf00 nop - 7818: 00027520 .word 0x00027520 - -0000781c : - switch(cf) { - 781c: 2803 cmp r0, #3 - 781e: d005 beq.n 782c - 7820: 3806 subs r0, #6 - 7822: 2804 cmp r0, #4 - 7824: bf8c ite hi - 7826: 2000 movhi r0, #0 - 7828: 2001 movls r0, #1 - 782a: 4770 bx lr - is_chroma_keyed = true; - 782c: 2001 movs r0, #1 -} - 782e: 4770 bx lr - -00007830 : - switch(cf) { - 7830: 280e cmp r0, #14 - 7832: bf9d ittte ls - 7834: f647 73a4 movwls r3, #32676 ; 0x7fa4 - 7838: fa23 f000 lsrls.w r0, r3, r0 - 783c: f000 0001 andls.w r0, r0, #1 -{ - 7840: 2000 movhi r0, #0 -} - 7842: 4770 bx lr - -00007844 : -{ - 7844: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - 7848: ed2d 8b02 vpush {d8} - 784c: 4604 mov r4, r0 - 784e: b08d sub sp, #52 ; 0x34 - 7850: 4688 mov r8, r1 - 7852: 461f mov r7, r3 - if(src == NULL) { - 7854: 4610 mov r0, r2 - 7856: b94a cbnz r2, 786c - LV_LOG_WARN("Image draw: src is NULL"); - 7858: 4b76 ldr r3, [pc, #472] ; (7a34 ) - 785a: 9300 str r3, [sp, #0] - 785c: 4b76 ldr r3, [pc, #472] ; (7a38 ) - 785e: 224d movs r2, #77 ; 0x4d - LV_LOG_WARN("Image draw error"); - 7860: 4976 ldr r1, [pc, #472] ; (7a3c ) - 7862: 4d77 ldr r5, [pc, #476] ; (7a40 ) - 7864: 2002 movs r0, #2 - 7866: 47a8 blx r5 - show_error(coords, mask, "No\ndata"); - 7868: 4a76 ldr r2, [pc, #472] ; (7a44 ) - 786a: e017 b.n 789c - if(dsc->opa <= LV_OPA_MIN) return; - 786c: 781b ldrb r3, [r3, #0] - 786e: 2b05 cmp r3, #5 - 7870: d969 bls.n 7946 - lv_img_cache_entry_t * cdsc = _lv_img_cache_open(src, draw_dsc->recolor); - 7872: 89b9 ldrh r1, [r7, #12] - 7874: 4b74 ldr r3, [pc, #464] ; (7a48 ) - 7876: 4798 blx r3 - if(cdsc == NULL) return LV_RES_INV; - 7878: 4605 mov r5, r0 - 787a: 2800 cmp r0, #0 - 787c: f000 80bc beq.w 79f8 - bool chroma_keyed = lv_img_cf_is_chroma_keyed(cdsc->dec_dsc.header.cf); - 7880: 7b03 ldrb r3, [r0, #12] - if(cdsc->dec_dsc.error_msg != NULL) { - 7882: 6982 ldr r2, [r0, #24] - bool chroma_keyed = lv_img_cf_is_chroma_keyed(cdsc->dec_dsc.header.cf); - 7884: f003 031f and.w r3, r3, #31 - if(cdsc->dec_dsc.error_msg != NULL) { - 7888: b18a cbz r2, 78ae - LV_LOG_WARN("Image draw error"); - 788a: 4b70 ldr r3, [pc, #448] ; (7a4c ) - 788c: 9300 str r3, [sp, #0] - 788e: 22f7 movs r2, #247 ; 0xf7 - 7890: 4b6f ldr r3, [pc, #444] ; (7a50 ) - 7892: 496a ldr r1, [pc, #424] ; (7a3c ) - 7894: 4e6a ldr r6, [pc, #424] ; (7a40 ) - 7896: 2002 movs r0, #2 - 7898: 47b0 blx r6 - show_error(coords, clip_area, cdsc->dec_dsc.error_msg); - 789a: 69aa ldr r2, [r5, #24] - show_error(coords, mask, "No\ndata"); - 789c: 4b6d ldr r3, [pc, #436] ; (7a54 ) - 789e: 4641 mov r1, r8 - 78a0: 4620 mov r0, r4 -} - 78a2: b00d add sp, #52 ; 0x34 - 78a4: ecbd 8b02 vpop {d8} - 78a8: e8bd 4ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - show_error(coords, mask, "No\ndata"); - 78ac: 4718 bx r3 - bool chroma_keyed = lv_img_cf_is_chroma_keyed(cdsc->dec_dsc.header.cf); - 78ae: 4618 mov r0, r3 - 78b0: 4a69 ldr r2, [pc, #420] ; (7a58 ) - 78b2: 4790 blx r2 - 78b4: 9003 str r0, [sp, #12] - bool alpha_byte = lv_img_cf_has_alpha(cdsc->dec_dsc.header.cf); - 78b6: 4618 mov r0, r3 - 78b8: 4b68 ldr r3, [pc, #416] ; (7a5c ) - 78ba: 4798 blx r3 - else if(cdsc->dec_dsc.img_data) { - 78bc: 692b ldr r3, [r5, #16] - bool alpha_byte = lv_img_cf_has_alpha(cdsc->dec_dsc.header.cf); - 78be: 9004 str r0, [sp, #16] - else if(cdsc->dec_dsc.img_data) { - 78c0: 2b00 cmp r3, #0 - 78c2: d045 beq.n 7950 - lv_area_copy(&map_area_rot, coords); - 78c4: 4b66 ldr r3, [pc, #408] ; (7a60 ) - 78c6: a808 add r0, sp, #32 - 78c8: 4621 mov r1, r4 - 78ca: 4798 blx r3 - if(draw_dsc->angle || draw_dsc->zoom != LV_IMG_ZOOM_NONE) { - 78cc: 887b ldrh r3, [r7, #2] - 78ce: 8938 ldrh r0, [r7, #8] - 78d0: b913 cbnz r3, 78d8 - 78d2: f5b0 7f80 cmp.w r0, #256 ; 0x100 - 78d6: d026 beq.n 7926 - 78d8: 88e2 ldrh r2, [r4, #6] - 78da: 8861 ldrh r1, [r4, #2] - return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - 78dc: 8826 ldrh r6, [r4, #0] - return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - 78de: 3201 adds r2, #1 - 78e0: 1a52 subs r2, r2, r1 - return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - 78e2: 88a1 ldrh r1, [r4, #4] - 78e4: 3101 adds r1, #1 - 78e6: 1b89 subs r1, r1, r6 - _lv_img_buf_get_transformed_area(&map_area_rot, w, h, draw_dsc->angle, draw_dsc->zoom, &draw_dsc->pivot); - 78e8: 1d3e adds r6, r7, #4 - 78ea: e9cd 0600 strd r0, r6, [sp] - 78ee: b21b sxth r3, r3 - 78f0: b212 sxth r2, r2 - 78f2: b209 sxth r1, r1 - 78f4: 4e5b ldr r6, [pc, #364] ; (7a64 ) - 78f6: a808 add r0, sp, #32 - 78f8: 47b0 blx r6 - map_area_rot.x1 += coords->x1; - 78fa: 8822 ldrh r2, [r4, #0] - 78fc: f8bd 3020 ldrh.w r3, [sp, #32] - map_area_rot.y1 += coords->y1; - 7900: f8bd 1022 ldrh.w r1, [sp, #34] ; 0x22 - map_area_rot.x1 += coords->x1; - 7904: 4413 add r3, r2 - 7906: f8ad 3020 strh.w r3, [sp, #32] - map_area_rot.y1 += coords->y1; - 790a: 8863 ldrh r3, [r4, #2] - 790c: 4419 add r1, r3 - 790e: f8ad 1022 strh.w r1, [sp, #34] ; 0x22 - map_area_rot.x2 += coords->x1; - 7912: f8bd 1024 ldrh.w r1, [sp, #36] ; 0x24 - 7916: 440a add r2, r1 - 7918: f8ad 2024 strh.w r2, [sp, #36] ; 0x24 - map_area_rot.y2 += coords->y1; - 791c: f8bd 2026 ldrh.w r2, [sp, #38] ; 0x26 - 7920: 4413 add r3, r2 - 7922: f8ad 3026 strh.w r3, [sp, #38] ; 0x26 - union_ok = _lv_area_intersect(&mask_com, clip_area, &map_area_rot); - 7926: 4b50 ldr r3, [pc, #320] ; (7a68 ) - 7928: aa08 add r2, sp, #32 - 792a: 4641 mov r1, r8 - 792c: a80a add r0, sp, #40 ; 0x28 - 792e: 4798 blx r3 - if(union_ok == false) { - 7930: b148 cbz r0, 7946 - lv_draw_map(coords, &mask_com, cdsc->dec_dsc.img_data, draw_dsc, chroma_keyed, alpha_byte); - 7932: 9b04 ldr r3, [sp, #16] - 7934: 9301 str r3, [sp, #4] - 7936: 9b03 ldr r3, [sp, #12] - 7938: 9300 str r3, [sp, #0] - 793a: 4620 mov r0, r4 - 793c: 692a ldr r2, [r5, #16] - 793e: 4c4b ldr r4, [pc, #300] ; (7a6c ) - 7940: 463b mov r3, r7 - 7942: a90a add r1, sp, #40 ; 0x28 - 7944: 47a0 blx r4 -} - 7946: b00d add sp, #52 ; 0x34 - 7948: ecbd 8b02 vpop {d8} - 794c: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - union_ok = _lv_area_intersect(&mask_com, clip_area, coords); - 7950: 4b45 ldr r3, [pc, #276] ; (7a68 ) - 7952: 4622 mov r2, r4 - 7954: 4641 mov r1, r8 - 7956: a806 add r0, sp, #24 - 7958: 4798 blx r3 - if(union_ok == false) { - 795a: 2800 cmp r0, #0 - 795c: d0f3 beq.n 7946 - 795e: f8bd 601c ldrh.w r6, [sp, #28] - 7962: f8bd 3018 ldrh.w r3, [sp, #24] - 7966: 3601 adds r6, #1 - 7968: 1af6 subs r6, r6, r3 - 796a: b233 sxth r3, r6 - 796c: 9305 str r3, [sp, #20] - uint8_t * buf = _lv_mem_buf_get(lv_area_get_width(&mask_com) * - 796e: eb03 0043 add.w r0, r3, r3, lsl #1 - 7972: 4b3f ldr r3, [pc, #252] ; (7a70 ) - 7974: 4798 blx r3 - lv_area_copy(&line, &mask_com); - 7976: 4b3a ldr r3, [pc, #232] ; (7a60 ) - 7978: a906 add r1, sp, #24 - uint8_t * buf = _lv_mem_buf_get(lv_area_get_width(&mask_com) * - 797a: 4681 mov r9, r0 - lv_area_copy(&line, &mask_com); - 797c: a808 add r0, sp, #32 - 797e: 4798 blx r3 - lv_area_set_height(&line, 1); - 7980: 4b3c ldr r3, [pc, #240] ; (7a74 ) - 7982: 2101 movs r1, #1 - 7984: a808 add r0, sp, #32 - 7986: 4798 blx r3 - int32_t x = mask_com.x1 - coords->x1; - 7988: f9bd 3018 ldrsh.w r3, [sp, #24] - 798c: f9b4 2000 ldrsh.w r2, [r4] - int32_t y = mask_com.y1 - coords->y1; - 7990: f9bd a01a ldrsh.w sl, [sp, #26] - 7994: f9b4 1002 ldrsh.w r1, [r4, #2] - read_res = lv_img_decoder_read_line(&cdsc->dec_dsc, x, y, width, buf); - 7998: 1a9b subs r3, r3, r2 - 799a: b21b sxth r3, r3 - 799c: ee08 3a10 vmov s16, r3 - int32_t y = mask_com.y1 - coords->y1; - 79a0: ebaa 0b01 sub.w fp, sl, r1 - for(row = mask_com.y1; row <= mask_com.y2; row++) { - 79a4: f9bd 301e ldrsh.w r3, [sp, #30] - 79a8: 459a cmp sl, r3 - 79aa: dd03 ble.n 79b4 - _lv_mem_buf_release(buf); - 79ac: 4b32 ldr r3, [pc, #200] ; (7a78 ) - 79ae: 4648 mov r0, r9 - 79b0: 4798 blx r3 - if(res == LV_RES_INV) { - 79b2: e7c8 b.n 7946 - union_ok = _lv_area_intersect(&mask_line, clip_area, &line); - 79b4: 4b2c ldr r3, [pc, #176] ; (7a68 ) - 79b6: aa08 add r2, sp, #32 - 79b8: 4641 mov r1, r8 - 79ba: a80a add r0, sp, #40 ; 0x28 - 79bc: 4798 blx r3 - if(union_ok == false) continue; - 79be: 2800 cmp r0, #0 - 79c0: d035 beq.n 7a2e - read_res = lv_img_decoder_read_line(&cdsc->dec_dsc, x, y, width, buf); - 79c2: 9b05 ldr r3, [sp, #20] - 79c4: 4e2d ldr r6, [pc, #180] ; (7a7c ) - 79c6: f8cd 9000 str.w r9, [sp] - 79ca: ee18 1a10 vmov r1, s16 - 79ce: fa0f f28b sxth.w r2, fp - 79d2: 4628 mov r0, r5 - 79d4: 47b0 blx r6 - if(read_res != LV_RES_OK) { - 79d6: 2801 cmp r0, #1 - 79d8: d013 beq.n 7a02 - lv_img_decoder_close(&cdsc->dec_dsc); - 79da: 4628 mov r0, r5 - 79dc: 4b28 ldr r3, [pc, #160] ; (7a80 ) - LV_LOG_WARN("Image draw can't read the line"); - 79de: 4d18 ldr r5, [pc, #96] ; (7a40 ) - lv_img_decoder_close(&cdsc->dec_dsc); - 79e0: 4798 blx r3 - LV_LOG_WARN("Image draw can't read the line"); - 79e2: 4b28 ldr r3, [pc, #160] ; (7a84 ) - 79e4: 9300 str r3, [sp, #0] - 79e6: 2002 movs r0, #2 - 79e8: 4b19 ldr r3, [pc, #100] ; (7a50 ) - 79ea: 4914 ldr r1, [pc, #80] ; (7a3c ) - 79ec: f44f 729a mov.w r2, #308 ; 0x134 - 79f0: 47a8 blx r5 - _lv_mem_buf_release(buf); - 79f2: 4b21 ldr r3, [pc, #132] ; (7a78 ) - 79f4: 4648 mov r0, r9 - 79f6: 4798 blx r3 - LV_LOG_WARN("Image draw error"); - 79f8: 4b14 ldr r3, [pc, #80] ; (7a4c ) - 79fa: 9300 str r3, [sp, #0] - 79fc: 2258 movs r2, #88 ; 0x58 - 79fe: 4b0e ldr r3, [pc, #56] ; (7a38 ) - 7a00: e72e b.n 7860 - lv_draw_map(&line, &mask_line, buf, draw_dsc, chroma_keyed, alpha_byte); - 7a02: 9b04 ldr r3, [sp, #16] - 7a04: 9301 str r3, [sp, #4] - 7a06: 9b03 ldr r3, [sp, #12] - 7a08: 9300 str r3, [sp, #0] - 7a0a: 4e18 ldr r6, [pc, #96] ; (7a6c ) - 7a0c: 463b mov r3, r7 - 7a0e: 464a mov r2, r9 - 7a10: a90a add r1, sp, #40 ; 0x28 - 7a12: a808 add r0, sp, #32 - 7a14: 47b0 blx r6 - line.y1++; - 7a16: f8bd 3022 ldrh.w r3, [sp, #34] ; 0x22 - 7a1a: 3301 adds r3, #1 - 7a1c: f8ad 3022 strh.w r3, [sp, #34] ; 0x22 - line.y2++; - 7a20: f8bd 3026 ldrh.w r3, [sp, #38] ; 0x26 - 7a24: 3301 adds r3, #1 - 7a26: f8ad 3026 strh.w r3, [sp, #38] ; 0x26 - y++; - 7a2a: f10b 0b01 add.w fp, fp, #1 - for(row = mask_com.y1; row <= mask_com.y2; row++) { - 7a2e: f10a 0a01 add.w sl, sl, #1 - 7a32: e7b7 b.n 79a4 - 7a34: 000274cf .word 0x000274cf - 7a38: 0002752d .word 0x0002752d - 7a3c: 0002749b .word 0x0002749b - 7a40: 0000eb79 .word 0x0000eb79 - 7a44: 000274e7 .word 0x000274e7 - 7a48: 0000c729 .word 0x0000c729 - 7a4c: 000274ef .word 0x000274ef - 7a50: 00027539 .word 0x00027539 - 7a54: 0000701d .word 0x0000701d - 7a58: 0000781d .word 0x0000781d - 7a5c: 00007831 .word 0x00007831 - 7a60: 0000706d .word 0x0000706d - 7a64: 0000c2e5 .word 0x0000c2e5 - 7a68: 0000e111 .word 0x0000e111 - 7a6c: 00007081 .word 0x00007081 - 7a70: 0000f145 .word 0x0000f145 - 7a74: 0000e0eb .word 0x0000e0eb - 7a78: 0000edf9 .word 0x0000edf9 - 7a7c: 0000d2b1 .word 0x0000d2b1 - 7a80: 0000d2d1 .word 0x0000d2d1 - 7a84: 00027500 .word 0x00027500 - -00007a88 : - if(src == NULL) return img_src_type; - 7a88: b138 cbz r0, 7a9a - if(u8_p[0] >= 0x20 && u8_p[0] <= 0x7F) { - 7a8a: 7800 ldrb r0, [r0, #0] - 7a8c: f1a0 0320 sub.w r3, r0, #32 - 7a90: 2b5f cmp r3, #95 ; 0x5f - 7a92: d904 bls.n 7a9e - else if(u8_p[0] >= 0x80) { - 7a94: 09c0 lsrs r0, r0, #7 - 7a96: 0040 lsls r0, r0, #1 - 7a98: 4770 bx lr - if(src == NULL) return img_src_type; - 7a9a: 2003 movs r0, #3 - 7a9c: 4770 bx lr - img_src_type = LV_IMG_SRC_FILE; /*If it's an ASCII character then it's file name*/ - 7a9e: 2001 movs r0, #1 -} - 7aa0: 4770 bx lr - -00007aa2 : - */ -static uint8_t hex_char_to_num(char hex) -{ - uint8_t result = 0; - - if(hex >= '0' && hex <= '9') { - 7aa2: f1a0 0330 sub.w r3, r0, #48 ; 0x30 - 7aa6: b2db uxtb r3, r3 - 7aa8: 2b09 cmp r3, #9 - 7aaa: d90a bls.n 7ac2 - result = hex - '0'; - } - else { - if(hex >= 'a') hex -= 'a' - 'A'; /*Convert to upper case*/ - 7aac: 2860 cmp r0, #96 ; 0x60 - 7aae: bf84 itt hi - 7ab0: 3820 subhi r0, #32 - 7ab2: b2c0 uxtbhi r0, r0 - - switch(hex) { - 7ab4: f1a0 0341 sub.w r3, r0, #65 ; 0x41 - 7ab8: 2b05 cmp r3, #5 - 7aba: bf9a itte ls - 7abc: 3837 subls r0, #55 ; 0x37 - 7abe: b2c3 uxtbls r3, r0 -{ - 7ac0: 2300 movhi r3, #0 - break; - } - } - - return result; -} - 7ac2: 4618 mov r0, r3 - 7ac4: 4770 bx lr - ... - -00007ac8 : -{ - 7ac8: b510 push {r4, lr} - _lv_memset_00(dsc, sizeof(lv_draw_label_dsc_t)); - 7aca: 4b09 ldr r3, [pc, #36] ; (7af0 ) -{ - 7acc: 4604 mov r4, r0 - _lv_memset_00(dsc, sizeof(lv_draw_label_dsc_t)); - 7ace: 211c movs r1, #28 - 7ad0: 4798 blx r3 - dsc->opa = LV_OPA_COVER; - 7ad2: 23ff movs r3, #255 ; 0xff - 7ad4: 7223 strb r3, [r4, #8] - dsc->font = LV_THEME_DEFAULT_FONT_NORMAL; - 7ad6: 4b07 ldr r3, [pc, #28] ; (7af4 ) - 7ad8: 6063 str r3, [r4, #4] - dsc->sel_start = LV_DRAW_LABEL_NO_TXT_SEL; - 7ada: f64f 73ff movw r3, #65535 ; 0xffff - 7ade: 81e3 strh r3, [r4, #14] - dsc->sel_end = LV_DRAW_LABEL_NO_TXT_SEL; - 7ae0: 8223 strh r3, [r4, #16] - dsc->color = LV_COLOR_BLACK; - 7ae2: f44f 13f8 mov.w r3, #2031616 ; 0x1f0000 - 7ae6: 6023 str r3, [r4, #0] - dsc->bidi_dir = LV_BIDI_DIR_LTR; - 7ae8: 2300 movs r3, #0 - 7aea: 75a3 strb r3, [r4, #22] -} - 7aec: bd10 pop {r4, pc} - 7aee: bf00 nop - 7af0: 0000f2a9 .word 0x0000f2a9 - 7af4: 20000004 .word 0x20000004 - -00007af8 : -{ - 7af8: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - 7afc: ed2d 8b04 vpush {d8-d9} - 7b00: b0d1 sub sp, #324 ; 0x144 - 7b02: 468a mov sl, r1 - 7b04: 930a str r3, [sp, #40] ; 0x28 - 7b06: 2300 movs r3, #0 - 7b08: 9321 str r3, [sp, #132] ; 0x84 - if(dsc->opa <= LV_OPA_MIN) return; - 7b0a: 7a13 ldrb r3, [r2, #8] -{ - 7b0c: 9c5e ldr r4, [sp, #376] ; 0x178 - 7b0e: 9005 str r0, [sp, #20] - if(dsc->opa <= LV_OPA_MIN) return; - 7b10: 2b05 cmp r3, #5 -{ - 7b12: 4693 mov fp, r2 - if(dsc->opa <= LV_OPA_MIN) return; - 7b14: f240 80db bls.w 7cce - const lv_font_t * font = dsc->font; - 7b18: 6853 ldr r3, [r2, #4] - 7b1a: ee08 3a10 vmov s16, r3 - if(txt[0] == '\0') return; - 7b1e: 9b0a ldr r3, [sp, #40] ; 0x28 - 7b20: 781b ldrb r3, [r3, #0] - 7b22: 2b00 cmp r3, #0 - 7b24: f000 80d3 beq.w 7cce - bool clip_ok = _lv_area_intersect(&clipped_area, coords, mask); - 7b28: 460a mov r2, r1 - 7b2a: 4b9c ldr r3, [pc, #624] ; (7d9c ) - 7b2c: 4601 mov r1, r0 - 7b2e: a831 add r0, sp, #196 ; 0xc4 - 7b30: 4798 blx r3 - if(!clip_ok) return; - 7b32: 2800 cmp r0, #0 - 7b34: f000 80cb beq.w 7cce - if((dsc->flag & LV_TXT_FLAG_EXPAND) == 0) { - 7b38: f89b 3017 ldrb.w r3, [fp, #23] - 7b3c: 079f lsls r7, r3, #30 - 7b3e: f100 80cb bmi.w 7cd8 - 7b42: 9b05 ldr r3, [sp, #20] - 7b44: 9a05 ldr r2, [sp, #20] - 7b46: 889b ldrh r3, [r3, #4] - 7b48: 8812 ldrh r2, [r2, #0] - 7b4a: 3301 adds r3, #1 - 7b4c: 1a9b subs r3, r3, r2 - w = lv_area_get_width(coords); - 7b4e: b21b sxth r3, r3 - int32_t line_height_font = lv_font_get_line_height(font); - 7b50: ee18 2a10 vmov r2, s16 - 7b54: f9b2 6008 ldrsh.w r6, [r2, #8] - pos.x = coords->x1; - 7b58: 9a05 ldr r2, [sp, #20] - int32_t line_height = line_height_font + dsc->line_space; - 7b5a: f9bb 500a ldrsh.w r5, [fp, #10] - pos.x = coords->x1; - 7b5e: f9b2 2000 ldrsh.w r2, [r2] - 7b62: 920b str r2, [sp, #44] ; 0x2c - pos.y = coords->y1; - 7b64: 9a05 ldr r2, [sp, #20] - 7b66: f9b2 0002 ldrsh.w r0, [r2, #2] - x_ofs = dsc->ofs_x; - 7b6a: f9bb 2012 ldrsh.w r2, [fp, #18] - 7b6e: 9224 str r2, [sp, #144] ; 0x90 - y_ofs = dsc->ofs_y; - 7b70: f9bb 2014 ldrsh.w r2, [fp, #20] - pos.y += y_ofs; - 7b74: 1887 adds r7, r0, r2 - 7b76: b2b9 uxth r1, r7 - 7b78: b23f sxth r7, r7 - int32_t line_height = line_height_font + dsc->line_space; - 7b7a: 4435 add r5, r6 - pos.y += y_ofs; - 7b7c: 9706 str r7, [sp, #24] - if(hint && y_ofs == 0 && coords->y1 < 0) { - 7b7e: 2c00 cmp r4, #0 - 7b80: f000 80bc beq.w 7cfc - 7b84: 2a00 cmp r2, #0 - 7b86: f040 80bb bne.w 7d00 - 7b8a: 2800 cmp r0, #0 - 7b8c: f280 80b9 bge.w 7d02 - if(LV_MATH_ABS(hint->coord_y - coords->y1) > LV_LABEL_HINT_UPDATE_TH - 2 * line_height) { - 7b90: 68a2 ldr r2, [r4, #8] - 7b92: 1a12 subs r2, r2, r0 - 7b94: 2a00 cmp r2, #0 - 7b96: bfb8 it lt - 7b98: 4252 neglt r2, r2 - 7b9a: f5c5 7000 rsb r0, r5, #512 ; 0x200 - 7b9e: ebb2 0f40 cmp.w r2, r0, lsl #1 - hint->line_start = -1; - 7ba2: bfc4 itt gt - 7ba4: f04f 32ff movgt.w r2, #4294967295 ; 0xffffffff - 7ba8: 6022 strgt r2, [r4, #0] - last_line_start = hint->line_start; - 7baa: 6822 ldr r2, [r4, #0] - if(hint && last_line_start >= 0) { - 7bac: 2a00 cmp r2, #0 - 7bae: f2c0 80a7 blt.w 7d00 - line_start = last_line_start; - 7bb2: 9204 str r2, [sp, #16] - pos.y += hint->y; - 7bb4: 6862 ldr r2, [r4, #4] - 7bb6: 440a add r2, r1 - 7bb8: b212 sxth r2, r2 - 7bba: 9206 str r2, [sp, #24] - uint32_t line_end = line_start + _lv_txt_get_next_line(&txt[line_start], font, dsc->letter_space, w, dsc->flag); - 7bbc: b21b sxth r3, r3 - 7bbe: 9f04 ldr r7, [sp, #16] - 7bc0: 980a ldr r0, [sp, #40] ; 0x28 - 7bc2: f9bb 200c ldrsh.w r2, [fp, #12] - 7bc6: ee09 3a10 vmov s18, r3 - 7bca: f89b 3017 ldrb.w r3, [fp, #23] - 7bce: 9300 str r3, [sp, #0] - 7bd0: 4438 add r0, r7 - 7bd2: ee19 3a10 vmov r3, s18 - 7bd6: ee18 1a10 vmov r1, s16 - 7bda: 4f71 ldr r7, [pc, #452] ; (7da0 ) - 7bdc: 47b8 blx r7 - 7bde: 9b04 ldr r3, [sp, #16] - 7be0: 18c3 adds r3, r0, r3 - 7be2: 9307 str r3, [sp, #28] - while(pos.y + line_height_font < mask->y1) { - 7be4: 9a06 ldr r2, [sp, #24] - 7be6: f9ba 1002 ldrsh.w r1, [sl, #2] - line_end += _lv_txt_get_next_line(&txt[line_start], font, dsc->letter_space, w, dsc->flag); - 7bea: f89b 3017 ldrb.w r3, [fp, #23] - while(pos.y + line_height_font < mask->y1) { - 7bee: 4432 add r2, r6 - 7bf0: 428a cmp r2, r1 - line_end += _lv_txt_get_next_line(&txt[line_start], font, dsc->letter_space, w, dsc->flag); - 7bf2: 9a0a ldr r2, [sp, #40] ; 0x28 - while(pos.y + line_height_font < mask->y1) { - 7bf4: f2c0 8087 blt.w 7d06 - line_width = _lv_txt_get_width(&txt[line_start], line_end - line_start, font, dsc->letter_space, dsc->flag); - 7bf8: 9904 ldr r1, [sp, #16] - if(dsc->flag & LV_TXT_FLAG_CENTER) { - 7bfa: 075e lsls r6, r3, #29 - line_width = _lv_txt_get_width(&txt[line_start], line_end - line_start, font, dsc->letter_space, dsc->flag); - 7bfc: eb02 0001 add.w r0, r2, r1 - if(dsc->flag & LV_TXT_FLAG_CENTER) { - 7c00: f140 80ab bpl.w 7d5a - line_width = _lv_txt_get_width(&txt[line_start], line_end - line_start, font, dsc->letter_space, dsc->flag); - 7c04: 9a07 ldr r2, [sp, #28] - 7c06: 9300 str r3, [sp, #0] - 7c08: 1a51 subs r1, r2, r1 - 7c0a: f9bb 300c ldrsh.w r3, [fp, #12] - 7c0e: 4c65 ldr r4, [pc, #404] ; (7da4 ) - 7c10: ee18 2a10 vmov r2, s16 - 7c14: b289 uxth r1, r1 - 7c16: 47a0 blx r4 - 7c18: 9b05 ldr r3, [sp, #20] - 7c1a: 9a05 ldr r2, [sp, #20] - 7c1c: 889b ldrh r3, [r3, #4] - 7c1e: 8812 ldrh r2, [r2, #0] - 7c20: 3301 adds r3, #1 - 7c22: 1a9b subs r3, r3, r2 - pos.x += (lv_area_get_width(coords) - line_width) / 2; - 7c24: b21b sxth r3, r3 - 7c26: 1a18 subs r0, r3, r0 - 7c28: 9b0b ldr r3, [sp, #44] ; 0x2c - 7c2a: eb00 70d0 add.w r0, r0, r0, lsr #31 - 7c2e: eb03 0060 add.w r0, r3, r0, asr #1 - pos.x += lv_area_get_width(coords) - line_width; - 7c32: b203 sxth r3, r0 - 7c34: 930b str r3, [sp, #44] ; 0x2c - lv_opa_t opa = dsc->opa; - 7c36: f89b 3008 ldrb.w r3, [fp, #8] - 7c3a: 9320 str r3, [sp, #128] ; 0x80 - uint16_t sel_start = dsc->sel_start; - 7c3c: f8bb 300e ldrh.w r3, [fp, #14] - 7c40: 9310 str r3, [sp, #64] ; 0x40 - uint16_t sel_end = dsc->sel_end; - 7c42: f8bb 3010 ldrh.w r3, [fp, #16] - 7c46: 9311 str r3, [sp, #68] ; 0x44 - if(sel_start > sel_end) { - 7c48: e9dd 3210 ldrd r3, r2, [sp, #64] ; 0x40 - 7c4c: 4293 cmp r3, r2 - 7c4e: bf88 it hi - 7c50: e9cd 2310 strdhi r2, r3, [sp, #64] ; 0x40 - if((dsc->decor & LV_TEXT_DECOR_UNDERLINE) || (dsc->decor & LV_TEXT_DECOR_STRIKETHROUGH)) { - 7c54: f89b 3018 ldrb.w r3, [fp, #24] - 7c58: 0799 lsls r1, r3, #30 - 7c5a: d01c beq.n 7c96 - lv_draw_line_dsc_init(&line_dsc); - 7c5c: 4b52 ldr r3, [pc, #328] ; (7da8 ) - 7c5e: a835 add r0, sp, #212 ; 0xd4 - 7c60: 4798 blx r3 - line_dsc.color = dsc->color; - 7c62: f8bb 3000 ldrh.w r3, [fp] - 7c66: f8ad 30d4 strh.w r3, [sp, #212] ; 0xd4 - line_dsc.width = (dsc->font->line_height + 5) / 10; /*+5 for rounding*/ - 7c6a: f8db 3004 ldr.w r3, [fp, #4] - 7c6e: f9b3 3008 ldrsh.w r3, [r3, #8] - 7c72: 220a movs r2, #10 - 7c74: 3305 adds r3, #5 - 7c76: fb93 f3f2 sdiv r3, r3, r2 - 7c7a: f8ad 30d6 strh.w r3, [sp, #214] ; 0xd6 - line_dsc.opa = dsc->opa; - 7c7e: f89b 3008 ldrb.w r3, [fp, #8] - line_dsc.blend_mode = dsc->blend_mode; - 7c82: f89b 2019 ldrb.w r2, [fp, #25] - line_dsc.opa = dsc->opa; - 7c86: f88d 30dc strb.w r3, [sp, #220] ; 0xdc - line_dsc.blend_mode = dsc->blend_mode; - 7c8a: f89d 30dd ldrb.w r3, [sp, #221] ; 0xdd - 7c8e: f362 0301 bfi r3, r2, #0, #2 - 7c92: f88d 30dd strb.w r3, [sp, #221] ; 0xdd - lv_draw_rect_dsc_init(&draw_dsc_sel); - 7c96: 4b45 ldr r3, [pc, #276] ; (7dac ) - 7c98: a83b add r0, sp, #236 ; 0xec - 7c9a: 4798 blx r3 - draw_dsc_sel.bg_color = dsc->sel_color; - 7c9c: f8bb 3002 ldrh.w r3, [fp, #2] - 7ca0: f8ad 30ee strh.w r3, [sp, #238] ; 0xee - while(txt[line_start] != '\0') { - 7ca4: 9b20 ldr r3, [sp, #128] ; 0x80 - 7ca6: 9c0b ldr r4, [sp, #44] ; 0x2c - 7ca8: 2bfa cmp r3, #250 ; 0xfa - 7caa: bf88 it hi - 7cac: 23ff movhi r3, #255 ; 0xff - 7cae: 9309 str r3, [sp, #36] ; 0x24 - 7cb0: b2ab uxth r3, r5 - 7cb2: 9322 str r3, [sp, #136] ; 0x88 - 7cb4: f8bd 3018 ldrh.w r3, [sp, #24] - 7cb8: 931e str r3, [sp, #120] ; 0x78 - uint16_t par_start = 0; - 7cba: 2300 movs r3, #0 - 7cbc: 931d str r3, [sp, #116] ; 0x74 - while(txt[line_start] != '\0') { - 7cbe: 9a04 ldr r2, [sp, #16] - 7cc0: 9b0a ldr r3, [sp, #40] ; 0x28 - 7cc2: 4413 add r3, r2 - 7cc4: 931c str r3, [sp, #112] ; 0x70 - 7cc6: 9b0a ldr r3, [sp, #40] ; 0x28 - 7cc8: 5c9b ldrb r3, [r3, r2] - 7cca: 2b00 cmp r3, #0 - 7ccc: d15e bne.n 7d8c -} - 7cce: b051 add sp, #324 ; 0x144 - 7cd0: ecbd 8b04 vpop {d8-d9} - 7cd4: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - _lv_txt_get_size(&p, txt, dsc->font, dsc->letter_space, dsc->line_space, LV_COORD_MAX, - 7cd8: 9302 str r3, [sp, #8] - 7cda: f647 4318 movw r3, #31768 ; 0x7c18 - 7cde: 9301 str r3, [sp, #4] - 7ce0: f9bb 300a ldrsh.w r3, [fp, #10] - 7ce4: 9300 str r3, [sp, #0] - 7ce6: f8db 2004 ldr.w r2, [fp, #4] - 7cea: f9bb 300c ldrsh.w r3, [fp, #12] - 7cee: 990a ldr r1, [sp, #40] ; 0x28 - 7cf0: 4d2f ldr r5, [pc, #188] ; (7db0 ) - 7cf2: a83b add r0, sp, #236 ; 0xec - 7cf4: 47a8 blx r5 - w = p.x; - 7cf6: f9bd 30ec ldrsh.w r3, [sp, #236] ; 0xec - 7cfa: e729 b.n 7b50 - uint32_t line_start = 0; - 7cfc: 9404 str r4, [sp, #16] - 7cfe: e75d b.n 7bbc - 7d00: 2200 movs r2, #0 - 7d02: 9204 str r2, [sp, #16] - 7d04: e75a b.n 7bbc - line_end += _lv_txt_get_next_line(&txt[line_start], font, dsc->letter_space, w, dsc->flag); - 7d06: 9907 ldr r1, [sp, #28] - 7d08: 9300 str r3, [sp, #0] - 7d0a: eb02 0801 add.w r8, r2, r1 - 7d0e: ee19 3a10 vmov r3, s18 - 7d12: f9bb 200c ldrsh.w r2, [fp, #12] - 7d16: ee18 1a10 vmov r1, s16 - 7d1a: 4640 mov r0, r8 - 7d1c: 47b8 blx r7 - 7d1e: 9b07 ldr r3, [sp, #28] - 7d20: 4418 add r0, r3 - pos.y += line_height; - 7d22: 9b06 ldr r3, [sp, #24] - 7d24: 442b add r3, r5 - 7d26: b21b sxth r3, r3 - 7d28: 9306 str r3, [sp, #24] - if(hint && pos.y >= -LV_LABEL_HINT_UPDATE_TH && hint->line_start < 0) { - 7d2a: b174 cbz r4, 7d4a - 7d2c: f513 6f80 cmn.w r3, #1024 ; 0x400 - 7d30: db0b blt.n 7d4a - 7d32: 6823 ldr r3, [r4, #0] - 7d34: 2b00 cmp r3, #0 - 7d36: da08 bge.n 7d4a - hint->line_start = line_start; - 7d38: 9b07 ldr r3, [sp, #28] - 7d3a: 6023 str r3, [r4, #0] - hint->y = pos.y - coords->y1; - 7d3c: 9b05 ldr r3, [sp, #20] - 7d3e: 9a06 ldr r2, [sp, #24] - 7d40: f9b3 3002 ldrsh.w r3, [r3, #2] - 7d44: 1ad2 subs r2, r2, r3 - hint->coord_y = coords->y1; - 7d46: e9c4 2301 strd r2, r3, [r4, #4] - if(txt[line_start] == '\0') return; - 7d4a: 9b07 ldr r3, [sp, #28] - 7d4c: 9304 str r3, [sp, #16] - 7d4e: f898 3000 ldrb.w r3, [r8] - 7d52: 2b00 cmp r3, #0 - 7d54: d0bb beq.n 7cce - line_end += _lv_txt_get_next_line(&txt[line_start], font, dsc->letter_space, w, dsc->flag); - 7d56: 9007 str r0, [sp, #28] - 7d58: e744 b.n 7be4 - else if(dsc->flag & LV_TXT_FLAG_RIGHT) { - 7d5a: 071c lsls r4, r3, #28 - 7d5c: f57f af6b bpl.w 7c36 - line_width = _lv_txt_get_width(&txt[line_start], line_end - line_start, font, dsc->letter_space, dsc->flag); - 7d60: 9a07 ldr r2, [sp, #28] - 7d62: 9904 ldr r1, [sp, #16] - 7d64: 9300 str r3, [sp, #0] - 7d66: 1a51 subs r1, r2, r1 - 7d68: f9bb 300c ldrsh.w r3, [fp, #12] - 7d6c: 4c0d ldr r4, [pc, #52] ; (7da4 ) - 7d6e: ee18 2a10 vmov r2, s16 - 7d72: b289 uxth r1, r1 - 7d74: 47a0 blx r4 - 7d76: 9b05 ldr r3, [sp, #20] - 7d78: 9a05 ldr r2, [sp, #20] - 7d7a: 889b ldrh r3, [r3, #4] - 7d7c: 8812 ldrh r2, [r2, #0] - 7d7e: 3301 adds r3, #1 - 7d80: 1a9b subs r3, r3, r2 - pos.x += lv_area_get_width(coords) - line_width; - 7d82: b21b sxth r3, r3 - 7d84: 1a18 subs r0, r3, r0 - 7d86: 9b0b ldr r3, [sp, #44] ; 0x2c - 7d88: 4418 add r0, r3 - 7d8a: e752 b.n 7c32 - pos.x += x_ofs; - 7d8c: 9b24 ldr r3, [sp, #144] ; 0x90 - 7d8e: 441c add r4, r3 - 7d90: b223 sxth r3, r4 - 7d92: 930c str r3, [sp, #48] ; 0x30 - i = 0; - 7d94: 2300 movs r3, #0 - 7d96: 9330 str r3, [sp, #192] ; 0xc0 - cmd_state = CMD_STATE_WAIT; - 7d98: 9308 str r3, [sp, #32] - 7d9a: e0c2 b.n 7f22 - 7d9c: 0000e111 .word 0x0000e111 - 7da0: 00010255 .word 0x00010255 - 7da4: 000101ad .word 0x000101ad - 7da8: 00008865 .word 0x00008865 - 7dac: 00009e25 .word 0x00009e25 - 7db0: 0001042d .word 0x0001042d - if(sel_start != 0xFFFF && sel_end != 0xFFFF) { - 7db4: 9a10 ldr r2, [sp, #64] ; 0x40 - 7db6: f64f 73ff movw r3, #65535 ; 0xffff - 7dba: 429a cmp r2, r3 - 7dbc: d024 beq.n 7e08 - 7dbe: 9a11 ldr r2, [sp, #68] ; 0x44 - 7dc0: 429a cmp r2, r3 - 7dc2: d021 beq.n 7e08 - logical_char_pos = _lv_txt_encoded_get_char_id(txt, line_start + i); - 7dc4: 9a04 ldr r2, [sp, #16] - 7dc6: 4ba3 ldr r3, [pc, #652] ; (8054 ) - 7dc8: 980a ldr r0, [sp, #40] ; 0x28 - 7dca: 681b ldr r3, [r3, #0] - 7dcc: 4411 add r1, r2 - 7dce: 4798 blx r3 - 7dd0: b286 uxth r6, r0 - uint32_t letter = _lv_txt_encoded_next(bidi_txt, &i); - 7dd2: 4ca1 ldr r4, [pc, #644] ; (8058 ) - 7dd4: 981c ldr r0, [sp, #112] ; 0x70 - 7dd6: 6823 ldr r3, [r4, #0] - 7dd8: a930 add r1, sp, #192 ; 0xc0 - 7dda: 4798 blx r3 - uint32_t letter_next = _lv_txt_encoded_next(&bidi_txt[i], NULL); - 7ddc: 9a1c ldr r2, [sp, #112] ; 0x70 - 7dde: 6823 ldr r3, [r4, #0] - uint32_t letter = _lv_txt_encoded_next(bidi_txt, &i); - 7de0: 4605 mov r5, r0 - uint32_t letter_next = _lv_txt_encoded_next(&bidi_txt[i], NULL); - 7de2: 9830 ldr r0, [sp, #192] ; 0xc0 - 7de4: 2100 movs r1, #0 - 7de6: 4410 add r0, r2 - 7de8: 4798 blx r3 - 7dea: f89b 3017 ldrb.w r3, [fp, #23] - if((dsc->flag & LV_TXT_FLAG_RECOLOR) != 0) { - 7dee: f013 0301 ands.w r3, r3, #1 - uint32_t letter_next = _lv_txt_encoded_next(&bidi_txt[i], NULL); - 7df2: 4602 mov r2, r0 - if((dsc->flag & LV_TXT_FLAG_RECOLOR) != 0) { - 7df4: f000 8125 beq.w 8042 - if(letter == (uint32_t)LV_TXT_COLOR_CMD[0]) { - 7df8: 2d23 cmp r5, #35 ; 0x23 - 7dfa: d10f bne.n 7e1c - if(cmd_state == CMD_STATE_WAIT) { /*Start char*/ - 7dfc: 9908 ldr r1, [sp, #32] - 7dfe: b929 cbnz r1, 7e0c - par_start = i; - 7e00: f8bd 20c0 ldrh.w r2, [sp, #192] ; 0xc0 - 7e04: 921d str r2, [sp, #116] ; 0x74 - continue; - 7e06: e7c7 b.n 7d98 - uint16_t logical_char_pos = 0; - 7e08: 2600 movs r6, #0 - 7e0a: e7e2 b.n 7dd2 - else if(cmd_state == CMD_STATE_PAR) { /*Other start char in parameter escaped cmd. char */ - 7e0c: 9b08 ldr r3, [sp, #32] - 7e0e: 2b01 cmp r3, #1 - 7e10: d045 beq.n 7e9e - else if(cmd_state == CMD_STATE_IN) { /*Command end */ - 7e12: 2b02 cmp r3, #2 - 7e14: f040 8118 bne.w 8048 - cmd_state = CMD_STATE_WAIT; - 7e18: 2300 movs r3, #0 - 7e1a: e7bd b.n 7d98 - if(cmd_state == CMD_STATE_PAR) { - 7e1c: 9b08 ldr r3, [sp, #32] - 7e1e: 2b01 cmp r3, #1 - 7e20: f040 810f bne.w 8042 - if(letter == ' ') { - 7e24: 2d20 cmp r5, #32 - 7e26: d17c bne.n 7f22 - if(i - par_start == LABEL_RECOLOR_PAR_LENGTH + 1) { - 7e28: 9b30 ldr r3, [sp, #192] ; 0xc0 - 7e2a: 9a1d ldr r2, [sp, #116] ; 0x74 - 7e2c: 1a9b subs r3, r3, r2 - 7e2e: 2b07 cmp r3, #7 - 7e30: d132 bne.n 7e98 - _lv_memcpy_small(buf, &bidi_txt[par_start], LABEL_RECOLOR_PAR_LENGTH); - 7e32: 9b1c ldr r3, [sp, #112] ; 0x70 - 7e34: 991d ldr r1, [sp, #116] ; 0x74 - 7e36: 189a adds r2, r3, r2 - 7e38: 5858 ldr r0, [r3, r1] - 7e3a: 8893 ldrh r3, [r2, #4] - 7e3c: f8ad 30e4 strh.w r3, [sp, #228] ; 0xe4 - r = (hex_char_to_num(buf[0]) << 4) + hex_char_to_num(buf[1]); - 7e40: 4a86 ldr r2, [pc, #536] ; (805c ) - 7e42: 9038 str r0, [sp, #224] ; 0xe0 - 7e44: f3c0 4507 ubfx r5, r0, #16, #8 - 7e48: f3c0 6407 ubfx r4, r0, #24, #8 - 7e4c: f3c0 2607 ubfx r6, r0, #8, #8 - 7e50: b2c0 uxtb r0, r0 - 7e52: 4790 blx r2 - 7e54: 4601 mov r1, r0 - 7e56: b2f0 uxtb r0, r6 - 7e58: 4790 blx r2 - 7e5a: eb00 1101 add.w r1, r0, r1, lsl #4 - g = (hex_char_to_num(buf[2]) << 4) + hex_char_to_num(buf[3]); - 7e5e: b2e8 uxtb r0, r5 - 7e60: 4790 blx r2 - 7e62: 4605 mov r5, r0 - 7e64: b2e0 uxtb r0, r4 - 7e66: 4790 blx r2 - 7e68: eb00 1405 add.w r4, r0, r5, lsl #4 - b = (hex_char_to_num(buf[4]) << 4) + hex_char_to_num(buf[5]); - 7e6c: f89d 00e4 ldrb.w r0, [sp, #228] ; 0xe4 - 7e70: 4790 blx r2 - 7e72: 4605 mov r5, r0 - 7e74: f89d 00e5 ldrb.w r0, [sp, #229] ; 0xe5 - 7e78: 4790 blx r2 - 7e7a: eb00 1005 add.w r0, r0, r5, lsl #4 - 7e7e: f3c0 00c4 ubfx r0, r0, #3, #5 - 7e82: f3c4 0485 ubfx r4, r4, #2, #6 - 7e86: ea40 1044 orr.w r0, r0, r4, lsl #5 - 7e8a: f3c1 01c4 ubfx r1, r1, #3, #5 - 7e8e: ea40 23c1 orr.w r3, r0, r1, lsl #11 - recolor.full = dsc->color.full; - 7e92: 9321 str r3, [sp, #132] ; 0x84 - cmd_state = CMD_STATE_IN; /*After the parameter the text is in the command*/ - 7e94: 2302 movs r3, #2 - 7e96: e77f b.n 7d98 - recolor.full = dsc->color.full; - 7e98: f8bb 3000 ldrh.w r3, [fp] - 7e9c: e7f9 b.n 7e92 - cmd_state = CMD_STATE_WAIT; - 7e9e: 2300 movs r3, #0 - lv_color_t color = dsc->color; - 7ea0: f8bb 4000 ldrh.w r4, [fp] - cmd_state = CMD_STATE_WAIT; - 7ea4: 9308 str r3, [sp, #32] - letter_w = lv_font_get_glyph_width(font, letter, letter_next); - 7ea6: 4b6e ldr r3, [pc, #440] ; (8060 ) - 7ea8: ee18 0a10 vmov r0, s16 - 7eac: 4629 mov r1, r5 - 7eae: 4798 blx r3 - if(sel_start != 0xFFFF && sel_end != 0xFFFF) { - 7eb0: 9a10 ldr r2, [sp, #64] ; 0x40 - letter_w = lv_font_get_glyph_width(font, letter, letter_next); - 7eb2: 901f str r0, [sp, #124] ; 0x7c - if(sel_start != 0xFFFF && sel_end != 0xFFFF) { - 7eb4: f64f 73ff movw r3, #65535 ; 0xffff - 7eb8: 429a cmp r2, r3 - 7eba: d020 beq.n 7efe - 7ebc: 9a11 ldr r2, [sp, #68] ; 0x44 - 7ebe: 429a cmp r2, r3 - 7ec0: d01d beq.n 7efe - if(logical_char_pos >= sel_start && logical_char_pos < sel_end) { - 7ec2: 9b10 ldr r3, [sp, #64] ; 0x40 - 7ec4: 42b3 cmp r3, r6 - 7ec6: d81a bhi.n 7efe - 7ec8: 42b2 cmp r2, r6 - 7eca: d918 bls.n 7efe - sel_coords.x1 = pos.x; - 7ecc: 9b0c ldr r3, [sp, #48] ; 0x30 - 7ece: f8ad 30e0 strh.w r3, [sp, #224] ; 0xe0 - sel_coords.y1 = pos.y; - 7ed2: 9b06 ldr r3, [sp, #24] - 7ed4: f8ad 30e2 strh.w r3, [sp, #226] ; 0xe2 - sel_coords.x2 = pos.x + letter_w + dsc->letter_space - 1; - 7ed8: f8bb 300c ldrh.w r3, [fp, #12] - 7edc: 9a0c ldr r2, [sp, #48] ; 0x30 - 7ede: 3b01 subs r3, #1 - 7ee0: 4413 add r3, r2 - 7ee2: 4403 add r3, r0 - 7ee4: f8ad 30e4 strh.w r3, [sp, #228] ; 0xe4 - sel_coords.y2 = pos.y + line_height - 1; - 7ee8: 9b22 ldr r3, [sp, #136] ; 0x88 - 7eea: 9a06 ldr r2, [sp, #24] - 7eec: 3b01 subs r3, #1 - 7eee: 4413 add r3, r2 - 7ef0: f8ad 30e6 strh.w r3, [sp, #230] ; 0xe6 - lv_draw_rect(&sel_coords, mask, &draw_dsc_sel); - 7ef4: aa3b add r2, sp, #236 ; 0xec - 7ef6: 4b5b ldr r3, [pc, #364] ; (8064 ) - 7ef8: 4651 mov r1, sl - 7efa: a838 add r0, sp, #224 ; 0xe0 - 7efc: 4798 blx r3 - lv_draw_letter(&pos, mask, font, letter, color, opa, dsc->blend_mode); - 7efe: f89b 3019 ldrb.w r3, [fp, #25] - 7f02: 931b str r3, [sp, #108] ; 0x6c - if(opa < LV_OPA_MIN) return; - 7f04: 9b20 ldr r3, [sp, #128] ; 0x80 - 7f06: 2b04 cmp r3, #4 - 7f08: f200 8485 bhi.w 8816 - if(letter_w > 0) { - 7f0c: 9b1f ldr r3, [sp, #124] ; 0x7c - 7f0e: b143 cbz r3, 7f22 - pos.x += letter_w + dsc->letter_space; - 7f10: f8bb 300c ldrh.w r3, [fp, #12] - 7f14: 9a0c ldr r2, [sp, #48] ; 0x30 - 7f16: 441a add r2, r3 - 7f18: 4613 mov r3, r2 - 7f1a: 9a1f ldr r2, [sp, #124] ; 0x7c - 7f1c: 441a add r2, r3 - 7f1e: b213 sxth r3, r2 - 7f20: 930c str r3, [sp, #48] ; 0x30 - while(i < line_end - line_start) { - 7f22: 9b07 ldr r3, [sp, #28] - 7f24: 9a04 ldr r2, [sp, #16] - 7f26: 9930 ldr r1, [sp, #192] ; 0xc0 - 7f28: 1a9b subs r3, r3, r2 - 7f2a: 428b cmp r3, r1 - 7f2c: f63f af42 bhi.w 7db4 - if(dsc->decor & LV_TEXT_DECOR_STRIKETHROUGH) { - 7f30: f89b 3018 ldrb.w r3, [fp, #24] - 7f34: 079d lsls r5, r3, #30 - 7f36: d51f bpl.n 7f78 - p1.x = pos_x_start; - 7f38: 9b0b ldr r3, [sp, #44] ; 0x2c - 7f3a: f8ad 30cc strh.w r3, [sp, #204] ; 0xcc - p1.y = pos.y + (dsc->font->line_height / 2) + line_dsc.width / 2; - 7f3e: f8db 3004 ldr.w r3, [fp, #4] - lv_draw_line(&p1, &p2, mask, &line_dsc); - 7f42: 4c49 ldr r4, [pc, #292] ; (8068 ) - p1.y = pos.y + (dsc->font->line_height / 2) + line_dsc.width / 2; - 7f44: f9b3 3008 ldrsh.w r3, [r3, #8] - 7f48: eb03 72d3 add.w r2, r3, r3, lsr #31 - 7f4c: f9bd 30d6 ldrsh.w r3, [sp, #214] ; 0xd6 - 7f50: eb03 73d3 add.w r3, r3, r3, lsr #31 - 7f54: 105b asrs r3, r3, #1 - 7f56: eb03 0362 add.w r3, r3, r2, asr #1 - 7f5a: 9a1e ldr r2, [sp, #120] ; 0x78 - 7f5c: 4413 add r3, r2 - 7f5e: b21b sxth r3, r3 - p2.x = pos.x; - 7f60: 9a0c ldr r2, [sp, #48] ; 0x30 - p1.y = pos.y + (dsc->font->line_height / 2) + line_dsc.width / 2; - 7f62: f8ad 30ce strh.w r3, [sp, #206] ; 0xce - p2.x = pos.x; - 7f66: f8ad 20e0 strh.w r2, [sp, #224] ; 0xe0 - p2.y = p1.y; - 7f6a: f8ad 30e2 strh.w r3, [sp, #226] ; 0xe2 - lv_draw_line(&p1, &p2, mask, &line_dsc); - 7f6e: 4652 mov r2, sl - 7f70: ab35 add r3, sp, #212 ; 0xd4 - 7f72: a938 add r1, sp, #224 ; 0xe0 - 7f74: a833 add r0, sp, #204 ; 0xcc - 7f76: 47a0 blx r4 - if(dsc->decor & LV_TEXT_DECOR_UNDERLINE) { - 7f78: f89b 3018 ldrb.w r3, [fp, #24] - 7f7c: 07dc lsls r4, r3, #31 - 7f7e: d51e bpl.n 7fbe - p1.x = pos_x_start; - 7f80: 9b0b ldr r3, [sp, #44] ; 0x2c - 7f82: f8ad 30cc strh.w r3, [sp, #204] ; 0xcc - p1.y = pos.y + dsc->font->line_height - dsc->font->base_line + line_dsc.width / 2 + 1; - 7f86: f9bd 30d6 ldrsh.w r3, [sp, #214] ; 0xd6 - 7f8a: f8db 2004 ldr.w r2, [fp, #4] - lv_draw_line(&p1, &p2, mask, &line_dsc); - 7f8e: 4c36 ldr r4, [pc, #216] ; (8068 ) - p1.y = pos.y + dsc->font->line_height - dsc->font->base_line + line_dsc.width / 2 + 1; - 7f90: 8911 ldrh r1, [r2, #8] - 7f92: 8952 ldrh r2, [r2, #10] - 7f94: eb03 73d3 add.w r3, r3, r3, lsr #31 - 7f98: 105b asrs r3, r3, #1 - 7f9a: 3301 adds r3, #1 - 7f9c: 440b add r3, r1 - 7f9e: 1a9b subs r3, r3, r2 - 7fa0: 9a1e ldr r2, [sp, #120] ; 0x78 - 7fa2: 4413 add r3, r2 - 7fa4: b21b sxth r3, r3 - p2.x = pos.x; - 7fa6: 9a0c ldr r2, [sp, #48] ; 0x30 - p1.y = pos.y + dsc->font->line_height - dsc->font->base_line + line_dsc.width / 2 + 1; - 7fa8: f8ad 30ce strh.w r3, [sp, #206] ; 0xce - p2.x = pos.x; - 7fac: f8ad 20e0 strh.w r2, [sp, #224] ; 0xe0 - p2.y = p1.y; - 7fb0: f8ad 30e2 strh.w r3, [sp, #226] ; 0xe2 - lv_draw_line(&p1, &p2, mask, &line_dsc); - 7fb4: 4652 mov r2, sl - 7fb6: ab35 add r3, sp, #212 ; 0xd4 - 7fb8: a938 add r1, sp, #224 ; 0xe0 - 7fba: a833 add r0, sp, #204 ; 0xcc - 7fbc: 47a0 blx r4 - line_end += _lv_txt_get_next_line(&txt[line_start], font, dsc->letter_space, w, dsc->flag); - 7fbe: 9b0a ldr r3, [sp, #40] ; 0x28 - 7fc0: 9a07 ldr r2, [sp, #28] - 7fc2: 4c2a ldr r4, [pc, #168] ; (806c ) - 7fc4: 189e adds r6, r3, r2 - 7fc6: f89b 3017 ldrb.w r3, [fp, #23] - 7fca: 9300 str r3, [sp, #0] - 7fcc: ee18 1a10 vmov r1, s16 - 7fd0: ee19 3a10 vmov r3, s18 - 7fd4: f9bb 200c ldrsh.w r2, [fp, #12] - 7fd8: 4630 mov r0, r6 - 7fda: 47a0 blx r4 - 7fdc: 9b07 ldr r3, [sp, #28] - 7fde: 18c5 adds r5, r0, r3 - pos.x = coords->x1; - 7fe0: 9b05 ldr r3, [sp, #20] - 7fe2: f9b3 4000 ldrsh.w r4, [r3] - if(dsc->flag & LV_TXT_FLAG_CENTER) { - 7fe6: f89b 3017 ldrb.w r3, [fp, #23] - line_end += _lv_txt_get_next_line(&txt[line_start], font, dsc->letter_space, w, dsc->flag); - 7fea: 4601 mov r1, r0 - if(dsc->flag & LV_TXT_FLAG_CENTER) { - 7fec: 0758 lsls r0, r3, #29 - 7fee: f140 83fd bpl.w 87ec - _lv_txt_get_width(&txt[line_start], line_end - line_start, font, dsc->letter_space, dsc->flag); - 7ff2: ee18 2a10 vmov r2, s16 - 7ff6: 9300 str r3, [sp, #0] - 7ff8: 4630 mov r0, r6 - 7ffa: f9bb 300c ldrsh.w r3, [fp, #12] - 7ffe: 4e1c ldr r6, [pc, #112] ; (8070 ) - 8000: 47b0 blx r6 - 8002: 9b05 ldr r3, [sp, #20] - 8004: 9a05 ldr r2, [sp, #20] - 8006: 889b ldrh r3, [r3, #4] - 8008: 8812 ldrh r2, [r2, #0] - 800a: 3301 adds r3, #1 - 800c: 1a9b subs r3, r3, r2 - pos.x += (lv_area_get_width(coords) - line_width) / 2; - 800e: b21b sxth r3, r3 - 8010: 1a18 subs r0, r3, r0 - 8012: eb00 70d0 add.w r0, r0, r0, lsr #31 - 8016: eb04 0060 add.w r0, r4, r0, asr #1 - pos.x += lv_area_get_width(coords) - line_width; - 801a: b204 sxth r4, r0 - pos.y += line_height; - 801c: 9a22 ldr r2, [sp, #136] ; 0x88 - 801e: 9b06 ldr r3, [sp, #24] - 8020: 4413 add r3, r2 - 8022: b21b sxth r3, r3 - 8024: 9306 str r3, [sp, #24] - if(pos.y > mask->y2) return; - 8026: 9b1e ldr r3, [sp, #120] ; 0x78 - 8028: 4413 add r3, r2 - 802a: b29b uxth r3, r3 - 802c: 931e str r3, [sp, #120] ; 0x78 - line_start = line_end; - 802e: 9b07 ldr r3, [sp, #28] - if(pos.y > mask->y2) return; - 8030: 9a06 ldr r2, [sp, #24] - line_start = line_end; - 8032: 9304 str r3, [sp, #16] - if(pos.y > mask->y2) return; - 8034: f9ba 3006 ldrsh.w r3, [sl, #6] - 8038: 4293 cmp r3, r2 - 803a: f6ff ae48 blt.w 7cce - line_end += _lv_txt_get_next_line(&txt[line_start], font, dsc->letter_space, w, dsc->flag); - 803e: 9507 str r5, [sp, #28] - 8040: e63d b.n 7cbe - if(cmd_state == CMD_STATE_IN) color = recolor; - 8042: 9b08 ldr r3, [sp, #32] - 8044: 2b02 cmp r3, #2 - 8046: d002 beq.n 804e - lv_color_t color = dsc->color; - 8048: f8bb 4000 ldrh.w r4, [fp] - 804c: e72b b.n 7ea6 - 804e: 9c21 ldr r4, [sp, #132] ; 0x84 - 8050: e729 b.n 7ea6 - 8052: bf00 nop - 8054: 20000058 .word 0x20000058 - 8058: 2000004c .word 0x2000004c - 805c: 00007aa3 .word 0x00007aa3 - 8060: 0000d3f9 .word 0x0000d3f9 - 8064: 00009e71 .word 0x00009e71 - 8068: 00008881 .word 0x00008881 - 806c: 00010255 .word 0x00010255 - 8070: 000101ad .word 0x000101ad - if((g.box_h == 0) && (g.box_w == 0)) return; - 8074: f8bd 20e4 ldrh.w r2, [sp, #228] ; 0xe4 - 8078: f8bd 10e2 ldrh.w r1, [sp, #226] ; 0xe2 - 807c: ea52 0301 orrs.w r3, r2, r1 - 8080: f43f af44 beq.w 7f0c - int32_t pos_x = pos_p->x + g.ofs_x; - 8084: 980c ldr r0, [sp, #48] ; 0x30 - 8086: f9bd 30e6 ldrsh.w r3, [sp, #230] ; 0xe6 - 808a: 4403 add r3, r0 - 808c: 930d str r3, [sp, #52] ; 0x34 - if(pos_x + g.box_w < clip_area->x1 || - 808e: 9f0d ldr r7, [sp, #52] ; 0x34 - 8090: 4439 add r1, r7 - 8092: f9ba 7000 ldrsh.w r7, [sl] - int32_t pos_y = pos_p->y + (font_p->line_height - font_p->base_line) - g.box_h - g.ofs_y; - 8096: ee18 0a10 vmov r0, s16 - 809a: ee18 3a10 vmov r3, s16 - if(pos_x + g.box_w < clip_area->x1 || - 809e: 42b9 cmp r1, r7 - int32_t pos_y = pos_p->y + (font_p->line_height - font_p->base_line) - g.box_h - g.ofs_y; - 80a0: f9b0 600a ldrsh.w r6, [r0, #10] - 80a4: f9b3 3008 ldrsh.w r3, [r3, #8] - 80a8: f9bd 00e8 ldrsh.w r0, [sp, #232] ; 0xe8 - if(pos_x + g.box_w < clip_area->x1 || - 80ac: f6ff af2e blt.w 7f0c - pos_x > clip_area->x2 || - 80b0: f9ba 1004 ldrsh.w r1, [sl, #4] - if(pos_x + g.box_w < clip_area->x1 || - 80b4: 9f0d ldr r7, [sp, #52] ; 0x34 - 80b6: 428f cmp r7, r1 - 80b8: f73f af28 bgt.w 7f0c - int32_t pos_y = pos_p->y + (font_p->line_height - font_p->base_line) - g.box_h - g.ofs_y; - 80bc: 9906 ldr r1, [sp, #24] - 80be: 1b9b subs r3, r3, r6 - 80c0: 440b add r3, r1 - 80c2: 1a9b subs r3, r3, r2 - 80c4: 1a1b subs r3, r3, r0 - pos_y + g.box_h < clip_area->y1 || - 80c6: 441a add r2, r3 - int32_t pos_y = pos_p->y + (font_p->line_height - font_p->base_line) - g.box_h - g.ofs_y; - 80c8: 9316 str r3, [sp, #88] ; 0x58 - pos_y + g.box_h < clip_area->y1 || - 80ca: f9ba 3002 ldrsh.w r3, [sl, #2] - pos_x > clip_area->x2 || - 80ce: 429a cmp r2, r3 - 80d0: f6ff af1c blt.w 7f0c - pos_y > clip_area->y2) { - 80d4: f9ba 3006 ldrsh.w r3, [sl, #6] - pos_y + g.box_h < clip_area->y1 || - 80d8: 9a16 ldr r2, [sp, #88] ; 0x58 - 80da: 429a cmp r2, r3 - 80dc: f73f af16 bgt.w 7f0c - const uint8_t * map_p = lv_font_get_glyph_bitmap(font_p, letter); - 80e0: ee18 0a10 vmov r0, s16 - 80e4: 4ba9 ldr r3, [pc, #676] ; (838c ) - 80e6: 4629 mov r1, r5 - 80e8: 4798 blx r3 - if(map_p == NULL) { - 80ea: 4607 mov r7, r0 - 80ec: b928 cbnz r0, 80fa - LV_LOG_WARN("lv_draw_letter: character's bitmap not found"); - 80ee: 4ba8 ldr r3, [pc, #672] ; (8390 ) - 80f0: 9300 str r3, [sp, #0] - 80f2: f240 12b7 movw r2, #439 ; 0x1b7 - 80f6: 4ba7 ldr r3, [pc, #668] ; (8394 ) - 80f8: e39f b.n 883a - if(font_p->subpx) { - 80fa: ee18 3a10 vmov r3, s16 - 80fe: 7b1a ldrb r2, [r3, #12] - draw_letter_subpx(pos_x, pos_y, &g, clip_area, map_p, color, opa, blend_mode); - 8100: f9bd 6034 ldrsh.w r6, [sp, #52] ; 0x34 - 8104: f9bd 8058 ldrsh.w r8, [sp, #88] ; 0x58 - uint32_t bpp = g->bpp; - 8108: f89d 30ea ldrb.w r3, [sp, #234] ; 0xea - if(font_p->subpx) { - 810c: 0792 lsls r2, r2, #30 - 810e: f000 81fa beq.w 8506 - draw_letter_subpx(pos_x, pos_y, &g, clip_area, map_p, color, opa, blend_mode); - 8112: f004 021f and.w r2, r4, #31 - 8116: 922a str r2, [sp, #168] ; 0xa8 - 8118: f3c4 1245 ubfx r2, r4, #5, #6 - 811c: 9226 str r2, [sp, #152] ; 0x98 - if(bpp == 3) bpp = 4; - 811e: 2b03 cmp r3, #3 - 8120: f3c4 22c4 ubfx r2, r4, #11, #5 - 8124: 9225 str r2, [sp, #148] ; 0x94 - 8126: f000 80e6 beq.w 82f6 - switch(bpp) { - 812a: 3b01 subs r3, #1 - 812c: 2b07 cmp r3, #7 - 812e: f200 80d7 bhi.w 82e0 - 8132: e8df f013 tbh [pc, r3, lsl #1] - 8136: 00db .short 0x00db - 8138: 00d50008 .word 0x00d50008 - 813c: 00d500e0 .word 0x00d500e0 - 8140: 00d500d5 .word 0x00d500d5 - 8144: 00d0 .short 0x00d0 - 8146: 23c0 movs r3, #192 ; 0xc0 - 8148: 9313 str r3, [sp, #76] ; 0x4c - 814a: 4b93 ldr r3, [pc, #588] ; (8398 ) - 814c: 2402 movs r4, #2 - bpp_opa_table = _lv_bpp4_opa_table; - 814e: 9314 str r3, [sp, #80] ; 0x50 - int32_t box_w = g->box_w; - 8150: f8bd 30e2 ldrh.w r3, [sp, #226] ; 0xe2 - 8154: 9317 str r3, [sp, #92] ; 0x5c - int32_t width_bit = box_w * bpp; /*Letter width in bits*/ - 8156: fb04 f103 mul.w r1, r4, r3 - int32_t col_start = pos_x >= clip_area->x1 ? 0 : (clip_area->x1 - pos_x) * 3; - 815a: f9ba 3000 ldrsh.w r3, [sl] - int32_t col_end = pos_x + box_w / 3 <= clip_area->x2 ? box_w : (clip_area->x2 - pos_x + 1) * 3; - 815e: 9d17 ldr r5, [sp, #92] ; 0x5c - int32_t box_h = g->box_h; - 8160: f8bd 20e4 ldrh.w r2, [sp, #228] ; 0xe4 - int32_t col_start = pos_x >= clip_area->x1 ? 0 : (clip_area->x1 - pos_x) * 3; - 8164: 42b3 cmp r3, r6 - 8166: bfc6 itte gt - 8168: 1b9b subgt r3, r3, r6 - 816a: eb03 0343 addgt.w r3, r3, r3, lsl #1 - 816e: 2300 movle r3, #0 - 8170: 9312 str r3, [sp, #72] ; 0x48 - int32_t col_end = pos_x + box_w / 3 <= clip_area->x2 ? box_w : (clip_area->x2 - pos_x + 1) * 3; - 8172: f9ba 3004 ldrsh.w r3, [sl, #4] - 8176: 2003 movs r0, #3 - 8178: fbb5 f0f0 udiv r0, r5, r0 - 817c: 4430 add r0, r6 - 817e: 4298 cmp r0, r3 - 8180: bfc5 ittet gt - 8182: 1b9b subgt r3, r3, r6 - 8184: 3301 addgt r3, #1 - 8186: 9b17 ldrle r3, [sp, #92] ; 0x5c - 8188: eb03 0343 addgt.w r3, r3, r3, lsl #1 - 818c: 9319 str r3, [sp, #100] ; 0x64 - int32_t row_start = pos_y >= clip_area->y1 ? 0 : clip_area->y1 - pos_y; - 818e: f9ba 3002 ldrsh.w r3, [sl, #2] - 8192: 4543 cmp r3, r8 - 8194: bfcc ite gt - 8196: eba3 0308 subgt.w r3, r3, r8 - 819a: 2300 movle r3, #0 - 819c: 930e str r3, [sp, #56] ; 0x38 - int32_t row_end = pos_y + box_h <= clip_area->y2 ? box_h : clip_area->y2 - pos_y + 1; - 819e: f9ba 3006 ldrsh.w r3, [sl, #6] - 81a2: eb02 0008 add.w r0, r2, r8 - 81a6: 4298 cmp r0, r3 - 81a8: bfc2 ittt gt - 81aa: eba3 0308 subgt.w r3, r3, r8 - 81ae: 3301 addgt r3, #1 - 81b0: 9323 strgt r3, [sp, #140] ; 0x8c - int32_t bit_ofs = (row_start * width_bit) + (col_start * bpp); - 81b2: 9b12 ldr r3, [sp, #72] ; 0x48 - 81b4: 980e ldr r0, [sp, #56] ; 0x38 - int32_t row_end = pos_y + box_h <= clip_area->y2 ? box_h : clip_area->y2 - pos_y + 1; - 81b6: bfd8 it le - 81b8: 9223 strle r2, [sp, #140] ; 0x8c - int32_t bit_ofs = (row_start * width_bit) + (col_start * bpp); - 81ba: 4363 muls r3, r4 - 81bc: fb00 3301 mla r3, r0, r1, r3 - map_p += bit_ofs >> 3; - 81c0: eb07 01e3 add.w r1, r7, r3, asr #3 - col_bit = bit_ofs & 0x7; /* "& 0x7" equals to "% 8" just faster */ - 81c4: f003 0307 and.w r3, r3, #7 - 81c8: 930f str r3, [sp, #60] ; 0x3c - int32_t mask_buf_size = box_w * box_h > LV_HOR_RES_MAX ? LV_HOR_RES_MAX : g->box_w * g->box_h; - 81ca: 9b17 ldr r3, [sp, #92] ; 0x5c - lv_opa_t * mask_buf = _lv_mem_buf_get(mask_buf_size); - 81cc: 4f73 ldr r7, [pc, #460] ; (839c ) - map_p += bit_ofs >> 3; - 81ce: 911a str r1, [sp, #104] ; 0x68 - int32_t mask_buf_size = box_w * box_h > LV_HOR_RES_MAX ? LV_HOR_RES_MAX : g->box_w * g->box_h; - 81d0: 4353 muls r3, r2 - 81d2: f5b3 7ff0 cmp.w r3, #480 ; 0x1e0 - 81d6: bfa8 it ge - 81d8: f44f 73f0 movge.w r3, #480 ; 0x1e0 - lv_opa_t * mask_buf = _lv_mem_buf_get(mask_buf_size); - 81dc: 4618 mov r0, r3 - 81de: 9318 str r3, [sp, #96] ; 0x60 - 81e0: 47b8 blx r7 - lv_color_t * color_buf = _lv_mem_buf_get(mask_buf_size * sizeof(lv_color_t)); - 81e2: 9b18 ldr r3, [sp, #96] ; 0x60 - lv_opa_t * mask_buf = _lv_mem_buf_get(mask_buf_size); - 81e4: 4605 mov r5, r0 - lv_color_t * color_buf = _lv_mem_buf_get(mask_buf_size * sizeof(lv_color_t)); - 81e6: 0058 lsls r0, r3, #1 - 81e8: 47b8 blx r7 - lv_disp_t * disp = _lv_refr_get_disp_refreshing(); - 81ea: 4b6d ldr r3, [pc, #436] ; (83a0 ) - lv_color_t * color_buf = _lv_mem_buf_get(mask_buf_size * sizeof(lv_color_t)); - 81ec: ee08 0a90 vmov s17, r0 - lv_disp_t * disp = _lv_refr_get_disp_refreshing(); - 81f0: 4798 blx r3 - lv_disp_buf_t * vdb = lv_disp_get_buf(disp); - 81f2: 4b6c ldr r3, [pc, #432] ; (83a4 ) - 81f4: 4798 blx r3 - 81f6: f8b0 9014 ldrh.w r9, [r0, #20] - 81fa: f9b0 c010 ldrsh.w ip, [r0, #16] - vdb_buf_tmp += (row_start * vdb_width) + col_start / 3; - 81fe: 9b12 ldr r3, [sp, #72] ; 0x48 - lv_color_t * vdb_buf_tmp = vdb->buf_act; - 8200: f8d0 e008 ldr.w lr, [r0, #8] - vdb_buf_tmp += (row_start * vdb_width) + col_start / 3; - 8204: 2203 movs r2, #3 - 8206: f109 0901 add.w r9, r9, #1 - 820a: fb93 f1f2 sdiv r1, r3, r2 - vdb_buf_tmp += ((pos_y - vdb->area.y1) * vdb_width) + pos_x - vdb->area.x1; - 820e: f9b0 3012 ldrsh.w r3, [r0, #18] - vdb_buf_tmp += (row_start * vdb_width) + col_start / 3; - 8212: 980e ldr r0, [sp, #56] ; 0x38 - 8214: eba9 090c sub.w r9, r9, ip - 8218: fa0f f989 sxth.w r9, r9 - vdb_buf_tmp += ((pos_y - vdb->area.y1) * vdb_width) + pos_x - vdb->area.x1; - 821c: eba8 0303 sub.w r3, r8, r3 - 8220: fb09 6303 mla r3, r9, r3, r6 - vdb_buf_tmp += (row_start * vdb_width) + col_start / 3; - 8224: fb09 1000 mla r0, r9, r0, r1 - vdb_buf_tmp += ((pos_y - vdb->area.y1) * vdb_width) + pos_x - vdb->area.x1; - 8228: eba3 030c sub.w r3, r3, ip - vdb_buf_tmp += (row_start * vdb_width) + col_start / 3; - 822c: 4403 add r3, r0 - 822e: eb0e 0343 add.w r3, lr, r3, lsl #1 - map_area.x1 = col_start / 3 + pos_x; - 8232: 980d ldr r0, [sp, #52] ; 0x34 - vdb_buf_tmp += (row_start * vdb_width) + col_start / 3; - 8234: 9315 str r3, [sp, #84] ; 0x54 - map_area.x1 = col_start / 3 + pos_x; - 8236: f8bd 3034 ldrh.w r3, [sp, #52] ; 0x34 - 823a: fa11 f180 uxtah r1, r1, r0 - map_area.x2 = col_end / 3 + pos_x - 1; - 823e: 3b01 subs r3, #1 - map_area.x1 = col_start / 3 + pos_x; - 8240: f8ad 10cc strh.w r1, [sp, #204] ; 0xcc - map_area.x2 = col_end / 3 + pos_x - 1; - 8244: 9919 ldr r1, [sp, #100] ; 0x64 - 8246: fb91 f2f2 sdiv r2, r1, r2 - 824a: 441a add r2, r3 - 824c: f8ad 20d0 strh.w r2, [sp, #208] ; 0xd0 - map_area.y1 = row_start + pos_y; - 8250: 9b16 ldr r3, [sp, #88] ; 0x58 - 8252: 9a0e ldr r2, [sp, #56] ; 0x38 - 8254: 4413 add r3, r2 - 8256: b21b sxth r3, r3 - 8258: f8ad 30ce strh.w r3, [sp, #206] ; 0xce - map_area.y2 = map_area.y1; - 825c: f8ad 30d2 strh.w r3, [sp, #210] ; 0xd2 - uint8_t other_mask_cnt = lv_draw_mask_get_cnt(); - 8260: 4b51 ldr r3, [pc, #324] ; (83a8 ) - 8262: 4798 blx r3 - if((int32_t) mask_p + (col_end - col_start) < mask_buf_size) { - 8264: 9a12 ldr r2, [sp, #72] ; 0x48 - 8266: 9b19 ldr r3, [sp, #100] ; 0x64 - uint8_t other_mask_cnt = lv_draw_mask_get_cnt(); - 8268: 9027 str r0, [sp, #156] ; 0x9c - if((int32_t) mask_p + (col_end - col_start) < mask_buf_size) { - 826a: 1a9b subs r3, r3, r2 - 826c: 9316 str r3, [sp, #88] ; 0x58 - col_bit += ((box_w - col_end) + col_start) * bpp; - 826e: 9b17 ldr r3, [sp, #92] ; 0x5c - 8270: 4413 add r3, r2 - 8272: 9a19 ldr r2, [sp, #100] ; 0x64 - 8274: 1a9b subs r3, r3, r2 - 8276: 4363 muls r3, r4 - vdb_buf_tmp += vdb_width - (col_end - col_start) / 3; - 8278: 9a16 ldr r2, [sp, #88] ; 0x58 - col_bit += ((box_w - col_end) + col_start) * bpp; - 827a: 9328 str r3, [sp, #160] ; 0xa0 - vdb_buf_tmp += vdb_width - (col_end - col_start) / 3; - 827c: f06f 0302 mvn.w r3, #2 - 8280: fb92 f3f3 sdiv r3, r2, r3 - 8284: 444b add r3, r9 - 8286: 005b lsls r3, r3, #1 - 8288: 9329 str r3, [sp, #164] ; 0xa4 - int32_t mask_p = 0; - 828a: 2300 movs r3, #0 - 828c: 461f mov r7, r3 - if(col_bit < (int32_t) (8 - bpp)) { - 828e: f1c4 0308 rsb r3, r4, #8 - 8292: 932d str r3, [sp, #180] ; 0xb4 - for(row = row_start ; row < row_end; row++) { - 8294: 9b0e ldr r3, [sp, #56] ; 0x38 - 8296: 9a23 ldr r2, [sp, #140] ; 0x8c - 8298: 4293 cmp r3, r2 - 829a: db31 blt.n 8300 - if(map_area.y1 != map_area.y2) { - 829c: f9bd 30d2 ldrsh.w r3, [sp, #210] ; 0xd2 - 82a0: f9bd 20ce ldrsh.w r2, [sp, #206] ; 0xce - 82a4: 429a cmp r2, r3 - 82a6: d00f beq.n 82c8 - map_area.y2--; - 82a8: 3b01 subs r3, #1 - 82aa: f8ad 30d2 strh.w r3, [sp, #210] ; 0xd2 - _lv_blend_map(clip_area, &map_area, color_buf, mask_buf, LV_DRAW_MASK_RES_CHANGED, opa, blend_mode); - 82ae: 9b1b ldr r3, [sp, #108] ; 0x6c - 82b0: 9302 str r3, [sp, #8] - 82b2: 9b09 ldr r3, [sp, #36] ; 0x24 - 82b4: 9301 str r3, [sp, #4] - 82b6: 2302 movs r3, #2 - 82b8: 9300 str r3, [sp, #0] - 82ba: ee18 2a90 vmov r2, s17 - 82be: 4c3b ldr r4, [pc, #236] ; (83ac ) - 82c0: 462b mov r3, r5 - 82c2: a933 add r1, sp, #204 ; 0xcc - 82c4: 4650 mov r0, sl - 82c6: 47a0 blx r4 - _lv_mem_buf_release(mask_buf); - 82c8: 4628 mov r0, r5 - 82ca: 4c39 ldr r4, [pc, #228] ; (83b0 ) - 82cc: 47a0 blx r4 - _lv_mem_buf_release(color_buf); - 82ce: ee18 0a90 vmov r0, s17 - 82d2: 47a0 blx r4 - 82d4: e61a b.n 7f0c - bitmask_init = 0xFF; - 82d6: 23ff movs r3, #255 ; 0xff - 82d8: 9313 str r3, [sp, #76] ; 0x4c - uint32_t bpp = g->bpp; - 82da: 2408 movs r4, #8 - bpp_opa_table = _lv_bpp8_opa_table; - 82dc: 4b35 ldr r3, [pc, #212] ; (83b4 ) - 82de: e736 b.n 814e - LV_LOG_WARN("lv_draw_letter: invalid bpp not found"); - 82e0: 4b35 ldr r3, [pc, #212] ; (83b8 ) - 82e2: 9300 str r3, [sp, #0] - 82e4: f240 227a movw r2, #634 ; 0x27a - 82e8: 4b34 ldr r3, [pc, #208] ; (83bc ) - 82ea: e2a6 b.n 883a - bitmask_init = 0x80; - 82ec: 2380 movs r3, #128 ; 0x80 - 82ee: 9313 str r3, [sp, #76] ; 0x4c - uint32_t bpp = g->bpp; - 82f0: 2401 movs r4, #1 - bpp_opa_table = _lv_bpp1_opa_table; - 82f2: 4b33 ldr r3, [pc, #204] ; (83c0 ) - 82f4: e72b b.n 814e - bitmask_init = 0xF0; - 82f6: 23f0 movs r3, #240 ; 0xf0 - 82f8: 9313 str r3, [sp, #76] ; 0x4c - switch(bpp) { - 82fa: 2404 movs r4, #4 - bpp_opa_table = _lv_bpp4_opa_table; - 82fc: 4b31 ldr r3, [pc, #196] ; (83c4 ) - 82fe: e726 b.n 814e - bitmask = bitmask_init >> col_bit; - 8300: 9a0f ldr r2, [sp, #60] ; 0x3c - 8302: 9b13 ldr r3, [sp, #76] ; 0x4c - for(col = col_start; col < col_end; col++) { - 8304: f8dd e048 ldr.w lr, [sp, #72] ; 0x48 - bitmask = bitmask_init >> col_bit; - 8308: fa23 fc02 lsr.w ip, r3, r2 - for(col = col_start; col < col_end; col++) { - 830c: 463e mov r6, r7 - uint32_t subpx_cnt = 0; - 830e: 2200 movs r2, #0 - for(col = col_start; col < col_end; col++) { - 8310: 9b19 ldr r3, [sp, #100] ; 0x64 - 8312: 4573 cmp r3, lr - 8314: dc5c bgt.n 83d0 - if(other_mask_cnt) { - 8316: 9b27 ldr r3, [sp, #156] ; 0x9c - 8318: b1cb cbz r3, 834e - lv_draw_mask_res_t mask_res = lv_draw_mask_apply(mask_buf + mask_p_start, map_area.x1, map_area.y2, - 831a: 463b mov r3, r7 - 831c: 442b add r3, r5 - 831e: 4698 mov r8, r3 - 8320: f8bd 30d0 ldrh.w r3, [sp, #208] ; 0xd0 - 8324: f9bd 10cc ldrsh.w r1, [sp, #204] ; 0xcc - 8328: f9bd 20d2 ldrsh.w r2, [sp, #210] ; 0xd2 - 832c: 4f26 ldr r7, [pc, #152] ; (83c8 ) - 832e: 3301 adds r3, #1 - 8330: 1a5b subs r3, r3, r1 - 8332: b21b sxth r3, r3 - 8334: 4640 mov r0, r8 - 8336: 47b8 blx r7 - if(mask_res == LV_DRAW_MASK_RES_TRANSP) { - 8338: b948 cbnz r0, 834e - 833a: f8bd 10d0 ldrh.w r1, [sp, #208] ; 0xd0 - 833e: f8bd 30cc ldrh.w r3, [sp, #204] ; 0xcc - 8342: 3101 adds r1, #1 - 8344: 1ac9 subs r1, r1, r3 - _lv_memset_00(mask_buf + mask_p_start, lv_area_get_width(&map_area)); - 8346: b209 sxth r1, r1 - 8348: 4b20 ldr r3, [pc, #128] ; (83cc ) - 834a: 4640 mov r0, r8 - 834c: 4798 blx r3 - if((int32_t) mask_p + (col_end - col_start) < mask_buf_size) { - 834e: 9b16 ldr r3, [sp, #88] ; 0x58 - 8350: 9a18 ldr r2, [sp, #96] ; 0x60 - 8352: 18f3 adds r3, r6, r3 - 8354: 429a cmp r2, r3 - 8356: f340 80c1 ble.w 84dc - map_area.y2 ++; - 835a: f8bd 30d2 ldrh.w r3, [sp, #210] ; 0xd2 - 835e: 3301 adds r3, #1 - 8360: b21b sxth r3, r3 - col_bit += ((box_w - col_end) + col_start) * bpp; - 8362: 9a28 ldr r2, [sp, #160] ; 0xa0 - map_area.y2 ++; - 8364: f8ad 30d2 strh.w r3, [sp, #210] ; 0xd2 - col_bit += ((box_w - col_end) + col_start) * bpp; - 8368: 9b0f ldr r3, [sp, #60] ; 0x3c - 836a: 4413 add r3, r2 - map_p += (col_bit >> 3); - 836c: 9a1a ldr r2, [sp, #104] ; 0x68 - 836e: eb02 02e3 add.w r2, r2, r3, asr #3 - col_bit = col_bit & 0x7; - 8372: f003 0307 and.w r3, r3, #7 - map_p += (col_bit >> 3); - 8376: 921a str r2, [sp, #104] ; 0x68 - col_bit = col_bit & 0x7; - 8378: 930f str r3, [sp, #60] ; 0x3c - vdb_buf_tmp += vdb_width - (col_end - col_start) / 3; - 837a: 9a29 ldr r2, [sp, #164] ; 0xa4 - 837c: 9b15 ldr r3, [sp, #84] ; 0x54 - 837e: 4413 add r3, r2 - 8380: 9315 str r3, [sp, #84] ; 0x54 - for(row = row_start ; row < row_end; row++) { - 8382: 9b0e ldr r3, [sp, #56] ; 0x38 - 8384: 3301 adds r3, #1 - 8386: 930e str r3, [sp, #56] ; 0x38 - 8388: 4637 mov r7, r6 - 838a: e783 b.n 8294 - 838c: 0000d3e9 .word 0x0000d3e9 - 8390: 000275a5 .word 0x000275a5 - 8394: 0002772a .word 0x0002772a - 8398: 00027616 .word 0x00027616 - 839c: 0000f145 .word 0x0000f145 - 83a0: 0000526d .word 0x0000526d - 83a4: 0000dc65 .word 0x0000dc65 - 83a8: 00009a75 .word 0x00009a75 - 83ac: 00006a81 .word 0x00006a81 - 83b0: 0000edf9 .word 0x0000edf9 - 83b4: 0002762a .word 0x0002762a - 83b8: 000275d2 .word 0x000275d2 - 83bc: 00027739 .word 0x00027739 - 83c0: 00027614 .word 0x00027614 - 83c4: 0002761a .word 0x0002761a - 83c8: 000099e5 .word 0x000099e5 - 83cc: 0000f2a9 .word 0x0000f2a9 - letter_px = (*map_p & bitmask) >> (8 - col_bit - bpp); - 83d0: 9b0f ldr r3, [sp, #60] ; 0x3c - 83d2: 18e3 adds r3, r4, r3 - 83d4: 930d str r3, [sp, #52] ; 0x34 - 83d6: 9b1a ldr r3, [sp, #104] ; 0x68 - 83d8: 990d ldr r1, [sp, #52] ; 0x34 - 83da: 781b ldrb r3, [r3, #0] - 83dc: f1c1 0108 rsb r1, r1, #8 - 83e0: ea03 030c and.w r3, r3, ip - if(letter_px != 0) { - 83e4: 40cb lsrs r3, r1 - 83e6: d007 beq.n 83f8 - if(opa == LV_OPA_COVER) { - 83e8: 9909 ldr r1, [sp, #36] ; 0x24 - 83ea: 29ff cmp r1, #255 ; 0xff - 83ec: d160 bne.n 84b0 - px_opa = bpp == 8 ? letter_px : bpp_opa_table[letter_px]; - 83ee: 2c08 cmp r4, #8 - 83f0: bf1a itte ne - 83f2: 9914 ldrne r1, [sp, #80] ; 0x50 - 83f4: 5ccb ldrbne r3, [r1, r3] - letter_px = (*map_p & bitmask) >> (8 - col_bit - bpp); - 83f6: b2db uxtbeq r3, r3 - font_rgb[subpx_cnt] = px_opa; - 83f8: f502 71a0 add.w r1, r2, #320 ; 0x140 - 83fc: 4469 add r1, sp - subpx_cnt ++; - 83fe: 3201 adds r2, #1 - if(subpx_cnt == 3) { - 8400: 2a03 cmp r2, #3 - font_rgb[subpx_cnt] = px_opa; - 8402: f801 3c84 strb.w r3, [r1, #-132] - if(subpx_cnt == 3) { - 8406: d148 bne.n 849a - uint8_t bg_rgb[3] = {vdb_buf_tmp->ch.red, vdb_buf_tmp->ch.green, vdb_buf_tmp->ch.blue}; - 8408: 9a15 ldr r2, [sp, #84] ; 0x54 - res_color.ch.red = (uint32_t)((uint16_t)txt_rgb[0] * font_rgb[0] + (bg_rgb[0] * (255 - font_rgb[0]))) >> 8; - 840a: f89d 30bc ldrb.w r3, [sp, #188] ; 0xbc - uint8_t bg_rgb[3] = {vdb_buf_tmp->ch.red, vdb_buf_tmp->ch.green, vdb_buf_tmp->ch.blue}; - 840e: 7851 ldrb r1, [r2, #1] - res_color.ch.red = (uint32_t)((uint16_t)txt_rgb[0] * font_rgb[0] + (bg_rgb[0] * (255 - font_rgb[0]))) >> 8; - 8410: 9a25 ldr r2, [sp, #148] ; 0x94 - res_color.ch.blue = (uint32_t)((uint16_t)txt_rgb[2] * font_rgb[2] + (bg_rgb[2] * (255 - font_rgb[2]))) >> 8; - 8412: f89d 90be ldrb.w r9, [sp, #190] ; 0xbe - res_color.ch.red = (uint32_t)((uint16_t)txt_rgb[0] * font_rgb[0] + (bg_rgb[0] * (255 - font_rgb[0]))) >> 8; - 8416: f1c3 00ff rsb r0, r3, #255 ; 0xff - 841a: 08c9 lsrs r1, r1, #3 - 841c: fb13 f202 smulbb r2, r3, r2 - 8420: fb00 2201 mla r2, r0, r1, r2 - 8424: 0a12 lsrs r2, r2, #8 - 8426: 9217 str r2, [sp, #92] ; 0x5c - uint8_t bg_rgb[3] = {vdb_buf_tmp->ch.red, vdb_buf_tmp->ch.green, vdb_buf_tmp->ch.blue}; - 8428: 9a15 ldr r2, [sp, #84] ; 0x54 - 842a: 7810 ldrb r0, [r2, #0] - res_color.ch.blue = (uint32_t)((uint16_t)txt_rgb[2] * font_rgb[2] + (bg_rgb[2] * (255 - font_rgb[2]))) >> 8; - 842c: 9a2a ldr r2, [sp, #168] ; 0xa8 - 842e: f000 001f and.w r0, r0, #31 - 8432: f1c9 08ff rsb r8, r9, #255 ; 0xff - 8436: fb19 f102 smulbb r1, r9, r2 - 843a: fb08 1200 mla r2, r8, r0, r1 - 843e: 922b str r2, [sp, #172] ; 0xac - uint8_t bg_rgb[3] = {vdb_buf_tmp->ch.red, vdb_buf_tmp->ch.green, vdb_buf_tmp->ch.blue}; - 8440: 9a15 ldr r2, [sp, #84] ; 0x54 - res_color.ch.green = (uint32_t)((uint32_t)txt_rgb[1] * font_rgb[1] + (bg_rgb[1] * (255 - font_rgb[1]))) >> 8; - 8442: f89d 80bd ldrb.w r8, [sp, #189] ; 0xbd - uint8_t bg_rgb[3] = {vdb_buf_tmp->ch.red, vdb_buf_tmp->ch.green, vdb_buf_tmp->ch.blue}; - 8446: f832 0b02 ldrh.w r0, [r2], #2 - 844a: 9215 str r2, [sp, #84] ; 0x54 - res_color.ch.green = (uint32_t)((uint32_t)txt_rgb[1] * font_rgb[1] + (bg_rgb[1] * (255 - font_rgb[1]))) >> 8; - 844c: f3c0 1245 ubfx r2, r0, #5, #6 - 8450: 4611 mov r1, r2 - 8452: f1c8 02ff rsb r2, r8, #255 ; 0xff - if(font_rgb[0] == 0 && font_rgb[1] == 0 && font_rgb[2] == 0) mask_buf[mask_p] = LV_OPA_TRANSP; - 8456: ea43 0309 orr.w r3, r3, r9 - res_color.ch.green = (uint32_t)((uint32_t)txt_rgb[1] * font_rgb[1] + (bg_rgb[1] * (255 - font_rgb[1]))) >> 8; - 845a: 922c str r2, [sp, #176] ; 0xb0 - 845c: 9a26 ldr r2, [sp, #152] ; 0x98 - if(font_rgb[0] == 0 && font_rgb[1] == 0 && font_rgb[2] == 0) mask_buf[mask_p] = LV_OPA_TRANSP; - 845e: ea58 0303 orrs.w r3, r8, r3 - res_color.ch.green = (uint32_t)((uint32_t)txt_rgb[1] * font_rgb[1] + (bg_rgb[1] * (255 - font_rgb[1]))) >> 8; - 8462: fb18 f002 smulbb r0, r8, r2 - if(font_rgb[0] == 0 && font_rgb[1] == 0 && font_rgb[2] == 0) mask_buf[mask_p] = LV_OPA_TRANSP; - 8466: bf18 it ne - 8468: f04f 33ff movne.w r3, #4294967295 ; 0xffffffff - res_color.ch.green = (uint32_t)((uint32_t)txt_rgb[1] * font_rgb[1] + (bg_rgb[1] * (255 - font_rgb[1]))) >> 8; - 846c: 460a mov r2, r1 - if(font_rgb[0] == 0 && font_rgb[1] == 0 && font_rgb[2] == 0) mask_buf[mask_p] = LV_OPA_TRANSP; - 846e: bf08 it eq - 8470: 2300 moveq r3, #0 - res_color.ch.green = (uint32_t)((uint32_t)txt_rgb[1] * font_rgb[1] + (bg_rgb[1] * (255 - font_rgb[1]))) >> 8; - 8472: 992c ldr r1, [sp, #176] ; 0xb0 - if(font_rgb[0] == 0 && font_rgb[1] == 0 && font_rgb[2] == 0) mask_buf[mask_p] = LV_OPA_TRANSP; - 8474: 55ab strb r3, [r5, r6] - color_buf[mask_p] = res_color; - 8476: 9b2b ldr r3, [sp, #172] ; 0xac - res_color.ch.green = (uint32_t)((uint32_t)txt_rgb[1] * font_rgb[1] + (bg_rgb[1] * (255 - font_rgb[1]))) >> 8; - 8478: fb01 0002 mla r0, r1, r2, r0 - color_buf[mask_p] = res_color; - 847c: f3c0 2005 ubfx r0, r0, #8, #6 - 8480: f3c3 2104 ubfx r1, r3, #8, #5 - 8484: 9b17 ldr r3, [sp, #92] ; 0x5c - 8486: ea41 1140 orr.w r1, r1, r0, lsl #5 - 848a: ea41 21c3 orr.w r1, r1, r3, lsl #11 - 848e: ee18 3a90 vmov r3, s17 - subpx_cnt = 0; - 8492: 2200 movs r2, #0 - color_buf[mask_p] = res_color; - 8494: f823 1016 strh.w r1, [r3, r6, lsl #1] - mask_p++; - 8498: 3601 adds r6, #1 - if(col_bit < (int32_t) (8 - bpp)) { - 849a: 9b0f ldr r3, [sp, #60] ; 0x3c - 849c: 992d ldr r1, [sp, #180] ; 0xb4 - 849e: 428b cmp r3, r1 - 84a0: da14 bge.n 84cc - col_bit += bpp; - 84a2: 9b0d ldr r3, [sp, #52] ; 0x34 - 84a4: 930f str r3, [sp, #60] ; 0x3c - bitmask = bitmask >> bpp; - 84a6: fa2c fc04 lsr.w ip, ip, r4 - for(col = col_start; col < col_end; col++) { - 84aa: f10e 0e01 add.w lr, lr, #1 - 84ae: e72f b.n 8310 - px_opa = bpp == 8 ? (uint32_t)((uint32_t)letter_px * opa) >> 8 - 84b0: 2c08 cmp r4, #8 - : (uint32_t)((uint32_t)bpp_opa_table[letter_px] * opa) >> 8; - 84b2: bf17 itett ne - 84b4: 9914 ldrne r1, [sp, #80] ; 0x50 - px_opa = bpp == 8 ? (uint32_t)((uint32_t)letter_px * opa) >> 8 - 84b6: 9909 ldreq r1, [sp, #36] ; 0x24 - : (uint32_t)((uint32_t)bpp_opa_table[letter_px] * opa) >> 8; - 84b8: 5ccb ldrbne r3, [r1, r3] - 84ba: 9909 ldrne r1, [sp, #36] ; 0x24 - px_opa = bpp == 8 ? (uint32_t)((uint32_t)letter_px * opa) >> 8 - 84bc: bf0b itete eq - 84be: 434b muleq r3, r1 - : (uint32_t)((uint32_t)bpp_opa_table[letter_px] * opa) >> 8; - 84c0: fb13 f301 smulbbne r3, r3, r1 - px_opa = bpp == 8 ? (uint32_t)((uint32_t)letter_px * opa) >> 8 - 84c4: f3c3 2307 ubfxeq r3, r3, #8, #8 - 84c8: 0a1b lsrne r3, r3, #8 - 84ca: e795 b.n 83f8 - map_p++; - 84cc: 9b1a ldr r3, [sp, #104] ; 0x68 - bitmask = bitmask_init; - 84ce: f8dd c04c ldr.w ip, [sp, #76] ; 0x4c - map_p++; - 84d2: 3301 adds r3, #1 - 84d4: 931a str r3, [sp, #104] ; 0x68 - col_bit = 0; - 84d6: 2300 movs r3, #0 - 84d8: 930f str r3, [sp, #60] ; 0x3c - 84da: e7e6 b.n 84aa - _lv_blend_map(clip_area, &map_area, color_buf, mask_buf, LV_DRAW_MASK_RES_CHANGED, opa, blend_mode); - 84dc: 9b1b ldr r3, [sp, #108] ; 0x6c - 84de: 9302 str r3, [sp, #8] - 84e0: 9b09 ldr r3, [sp, #36] ; 0x24 - 84e2: 9301 str r3, [sp, #4] - 84e4: 2302 movs r3, #2 - 84e6: 4ea7 ldr r6, [pc, #668] ; (8784 ) - 84e8: 9300 str r3, [sp, #0] - 84ea: ee18 2a90 vmov r2, s17 - 84ee: 462b mov r3, r5 - 84f0: a933 add r1, sp, #204 ; 0xcc - 84f2: 4650 mov r0, sl - 84f4: 47b0 blx r6 - map_area.y1 = map_area.y2 + 1; - 84f6: f8bd 30d2 ldrh.w r3, [sp, #210] ; 0xd2 - 84fa: 3301 adds r3, #1 - 84fc: b21b sxth r3, r3 - 84fe: f8ad 30ce strh.w r3, [sp, #206] ; 0xce - mask_p = 0; - 8502: 2600 movs r6, #0 - 8504: e72d b.n 8362 - if(bpp == 3) bpp = 4; - 8506: 2b03 cmp r3, #3 - 8508: ee09 4a90 vmov s19, r4 - 850c: f000 80c0 beq.w 8690 - switch(bpp) { - 8510: 3b01 subs r3, #1 - 8512: 2b07 cmp r3, #7 - 8514: f200 80b0 bhi.w 8678 - 8518: e8df f003 tbb [pc, r3] - 851c: baae04b4 .word 0xbaae04b4 - 8520: a7aeaeae .word 0xa7aeaeae - 8524: 22c0 movs r2, #192 ; 0xc0 - 8526: 9213 str r2, [sp, #76] ; 0x4c - 8528: 4a97 ldr r2, [pc, #604] ; (8788 ) - 852a: 2502 movs r5, #2 - 852c: 2304 movs r3, #4 - bpp_opa_table_p = _lv_bpp4_opa_table; - 852e: 920e str r2, [sp, #56] ; 0x38 - if(opa < LV_OPA_MAX) { - 8530: 9a09 ldr r2, [sp, #36] ; 0x24 - 8532: 2af9 cmp r2, #249 ; 0xf9 - 8534: d812 bhi.n 855c - if(prev_opa != opa || prev_bpp != bpp) { - 8536: 4a95 ldr r2, [pc, #596] ; (878c ) - 8538: 9809 ldr r0, [sp, #36] ; 0x24 - 853a: f892 1100 ldrb.w r1, [r2, #256] ; 0x100 - 853e: 4281 cmp r1, r0 - 8540: f040 80ac bne.w 869c - 8544: f8d2 2104 ldr.w r2, [r2, #260] ; 0x104 - 8548: 42aa cmp r2, r5 - 854a: f040 80a7 bne.w 869c - prev_opa = opa; - 854e: 4b8f ldr r3, [pc, #572] ; (878c ) - 8550: 9a09 ldr r2, [sp, #36] ; 0x24 - 8552: f883 2100 strb.w r2, [r3, #256] ; 0x100 - prev_bpp = bpp; - 8556: f8c3 5104 str.w r5, [r3, #260] ; 0x104 - bpp_opa_table_p = opa_table; - 855a: 930e str r3, [sp, #56] ; 0x38 - int32_t col_start = pos_x >= clip_area->x1 ? 0 : clip_area->x1 - pos_x; - 855c: f9ba 3000 ldrsh.w r3, [sl] - int32_t box_w = g->box_w; - 8560: f8bd 90e2 ldrh.w r9, [sp, #226] ; 0xe2 - int32_t box_h = g->box_h; - 8564: f8bd 20e4 ldrh.w r2, [sp, #228] ; 0xe4 - int32_t col_start = pos_x >= clip_area->x1 ? 0 : clip_area->x1 - pos_x; - 8568: 42b3 cmp r3, r6 - 856a: bfcc ite gt - 856c: 1b9b subgt r3, r3, r6 - 856e: 2300 movle r3, #0 - 8570: 930f str r3, [sp, #60] ; 0x3c - int32_t col_end = pos_x + box_w <= clip_area->x2 ? box_w : clip_area->x2 - pos_x + 1; - 8572: f9ba 3004 ldrsh.w r3, [sl, #4] - 8576: eb09 0006 add.w r0, r9, r6 - 857a: 4298 cmp r0, r3 - 857c: bfc4 itt gt - 857e: 1b9b subgt r3, r3, r6 - 8580: 3301 addgt r3, #1 - int32_t row_start = pos_y >= clip_area->y1 ? 0 : clip_area->y1 - pos_y; - 8582: f9ba 6002 ldrsh.w r6, [sl, #2] - int32_t col_end = pos_x + box_w <= clip_area->x2 ? box_w : clip_area->x2 - pos_x + 1; - 8586: bfc8 it gt - 8588: 9312 strgt r3, [sp, #72] ; 0x48 - int32_t row_end = pos_y + box_h <= clip_area->y2 ? box_h : clip_area->y2 - pos_y + 1; - 858a: f9ba 3006 ldrsh.w r3, [sl, #6] - int32_t col_end = pos_x + box_w <= clip_area->x2 ? box_w : clip_area->x2 - pos_x + 1; - 858e: bfd8 it le - 8590: f8cd 9048 strle.w r9, [sp, #72] ; 0x48 - int32_t row_end = pos_y + box_h <= clip_area->y2 ? box_h : clip_area->y2 - pos_y + 1; - 8594: eb02 0008 add.w r0, r2, r8 - int32_t row_start = pos_y >= clip_area->y1 ? 0 : clip_area->y1 - pos_y; - 8598: 4546 cmp r6, r8 - 859a: bfcc ite gt - 859c: eba6 0608 subgt.w r6, r6, r8 - 85a0: 2600 movle r6, #0 - int32_t row_end = pos_y + box_h <= clip_area->y2 ? box_h : clip_area->y2 - pos_y + 1; - 85a2: 4298 cmp r0, r3 - 85a4: bfc2 ittt gt - 85a6: eba3 0308 subgt.w r3, r3, r8 - 85aa: 3301 addgt r3, #1 - 85ac: 9317 strgt r3, [sp, #92] ; 0x5c - uint32_t bit_ofs = (row_start * width_bit) + (col_start * bpp); - 85ae: 9b0f ldr r3, [sp, #60] ; 0x3c - int32_t row_end = pos_y + box_h <= clip_area->y2 ? box_h : clip_area->y2 - pos_y + 1; - 85b0: bfd8 it le - 85b2: 9217 strle r2, [sp, #92] ; 0x5c - int32_t width_bit = box_w * bpp; /*Letter width in bits*/ - 85b4: fb05 f109 mul.w r1, r5, r9 - uint32_t bit_ofs = (row_start * width_bit) + (col_start * bpp); - 85b8: fb03 f405 mul.w r4, r3, r5 - 85bc: fb06 4401 mla r4, r6, r1, r4 - map_p += bit_ofs >> 3; - 85c0: eb07 03d4 add.w r3, r7, r4, lsr #3 - 85c4: 9314 str r3, [sp, #80] ; 0x50 - uint32_t mask_buf_size = box_w * box_h > LV_HOR_RES_MAX ? LV_HOR_RES_MAX : box_w * box_h; - 85c6: fb02 f309 mul.w r3, r2, r9 - 85ca: f5b3 7ff0 cmp.w r3, #480 ; 0x1e0 - 85ce: bfa8 it ge - 85d0: f44f 73f0 movge.w r3, #480 ; 0x1e0 - 85d4: 9315 str r3, [sp, #84] ; 0x54 - lv_opa_t * mask_buf = _lv_mem_buf_get(mask_buf_size); - 85d6: 4618 mov r0, r3 - 85d8: 4b6d ldr r3, [pc, #436] ; (8790 ) - 85da: 4798 blx r3 - fill_area.x1 = col_start + pos_x; - 85dc: 9a0d ldr r2, [sp, #52] ; 0x34 - 85de: 990f ldr r1, [sp, #60] ; 0x3c - 85e0: f8bd 3034 ldrh.w r3, [sp, #52] ; 0x34 - 85e4: fa11 f282 uxtah r2, r1, r2 - 85e8: f8ad 20cc strh.w r2, [sp, #204] ; 0xcc - fill_area.x2 = col_end + pos_x - 1; - 85ec: 9a12 ldr r2, [sp, #72] ; 0x48 - 85ee: 3b01 subs r3, #1 - 85f0: 4413 add r3, r2 - 85f2: f8ad 30d0 strh.w r3, [sp, #208] ; 0xd0 - fill_area.y1 = row_start + pos_y; - 85f6: 9b16 ldr r3, [sp, #88] ; 0x58 - 85f8: 4433 add r3, r6 - 85fa: b21b sxth r3, r3 - 85fc: f8ad 30ce strh.w r3, [sp, #206] ; 0xce - fill_area.y2 = fill_area.y1; - 8600: f8ad 30d2 strh.w r3, [sp, #210] ; 0xd2 - uint8_t other_mask_cnt = lv_draw_mask_get_cnt(); - 8604: 4b63 ldr r3, [pc, #396] ; (8794 ) - lv_opa_t * mask_buf = _lv_mem_buf_get(mask_buf_size); - 8606: ee08 0a90 vmov s17, r0 - uint8_t other_mask_cnt = lv_draw_mask_get_cnt(); - 860a: 4798 blx r3 - uint32_t col_bit_max = 8 - bpp; - 860c: f1c5 0308 rsb r3, r5, #8 - 8610: 930d str r3, [sp, #52] ; 0x34 - uint32_t col_bit_row_ofs = (box_w + col_start - col_end) * bpp; - 8612: 9b0f ldr r3, [sp, #60] ; 0x3c - uint8_t other_mask_cnt = lv_draw_mask_get_cnt(); - 8614: 9019 str r0, [sp, #100] ; 0x64 - uint32_t col_bit_row_ofs = (box_w + col_start - col_end) * bpp; - 8616: 4499 add r9, r3 - 8618: 9b12 ldr r3, [sp, #72] ; 0x48 - 861a: eba9 0903 sub.w r9, r9, r3 - 861e: fb05 f309 mul.w r3, r5, r9 - col_bit = bit_ofs & 0x7; /* "& 0x7" equals to "% 8" just faster */ - 8622: f004 0407 and.w r4, r4, #7 - uint32_t col_bit_row_ofs = (box_w + col_start - col_end) * bpp; - 8626: 931a str r3, [sp, #104] ; 0x68 - int32_t mask_p = 0; - 8628: f04f 0900 mov.w r9, #0 - for(row = row_start ; row < row_end; row++) { - 862c: 9b17 ldr r3, [sp, #92] ; 0x5c - 862e: 429e cmp r6, r3 - 8630: db45 blt.n 86be - if(fill_area.y1 != fill_area.y2) { - 8632: f9bd 30d2 ldrsh.w r3, [sp, #210] ; 0xd2 - 8636: f9bd 20ce ldrsh.w r2, [sp, #206] ; 0xce - 863a: 429a cmp r2, r3 - 863c: d010 beq.n 8660 - fill_area.y2--; - 863e: 3b01 subs r3, #1 - 8640: f8ad 30d2 strh.w r3, [sp, #210] ; 0xd2 - _lv_blend_fill(clip_area, &fill_area, - 8644: 9b1b ldr r3, [sp, #108] ; 0x6c - 8646: 9302 str r3, [sp, #8] - 8648: 26ff movs r6, #255 ; 0xff - 864a: 2302 movs r3, #2 - 864c: e9cd 3600 strd r3, r6, [sp] - 8650: ee19 2a90 vmov r2, s19 - 8654: ee18 3a90 vmov r3, s17 - 8658: 4c4f ldr r4, [pc, #316] ; (8798 ) - 865a: a933 add r1, sp, #204 ; 0xcc - 865c: 4650 mov r0, sl - 865e: 47a0 blx r4 - _lv_mem_buf_release(mask_buf); - 8660: ee18 0a90 vmov r0, s17 - 8664: 4b4d ldr r3, [pc, #308] ; (879c ) - 8666: 4798 blx r3 - 8668: e450 b.n 7f0c - bitmask_init = 0xFF; - 866a: 22ff movs r2, #255 ; 0xff - 866c: 9213 str r2, [sp, #76] ; 0x4c - uint32_t bpp = g->bpp; - 866e: 2508 movs r5, #8 - bpp_opa_table_p = _lv_bpp8_opa_table; - 8670: 4a4b ldr r2, [pc, #300] ; (87a0 ) - shades = 256; - 8672: f44f 7380 mov.w r3, #256 ; 0x100 - 8676: e75a b.n 852e - LV_LOG_WARN("lv_draw_letter: invalid bpp"); - 8678: 4b4a ldr r3, [pc, #296] ; (87a4 ) - 867a: 9300 str r3, [sp, #0] - 867c: f240 12e5 movw r2, #485 ; 0x1e5 - 8680: 4b49 ldr r3, [pc, #292] ; (87a8 ) - 8682: e0da b.n 883a - bitmask_init = 0x80; - 8684: 2280 movs r2, #128 ; 0x80 - 8686: 9213 str r2, [sp, #76] ; 0x4c - uint32_t bpp = g->bpp; - 8688: 2501 movs r5, #1 - bpp_opa_table_p = _lv_bpp1_opa_table; - 868a: 4a48 ldr r2, [pc, #288] ; (87ac ) - shades = 2; - 868c: 2302 movs r3, #2 - 868e: e74e b.n 852e - bitmask_init = 0xF0; - 8690: 22f0 movs r2, #240 ; 0xf0 - 8692: 9213 str r2, [sp, #76] ; 0x4c - switch(bpp) { - 8694: 2504 movs r5, #4 - bpp_opa_table_p = _lv_bpp4_opa_table; - 8696: 4a46 ldr r2, [pc, #280] ; (87b0 ) - shades = 16; - 8698: 2310 movs r3, #16 - 869a: e748 b.n 852e - 869c: 990e ldr r1, [sp, #56] ; 0x38 - 869e: 483b ldr r0, [pc, #236] ; (878c ) - 86a0: 440b add r3, r1 - opa_table[i] = bpp_opa_table_p[i] == LV_OPA_COVER ? opa : ((bpp_opa_table_p[i] * opa) >> 8); - 86a2: f811 2b01 ldrb.w r2, [r1], #1 - 86a6: 2aff cmp r2, #255 ; 0xff - 86a8: bf17 itett ne - 86aa: 9c09 ldrne r4, [sp, #36] ; 0x24 - 86ac: 9a09 ldreq r2, [sp, #36] ; 0x24 - 86ae: fb12 f204 smulbbne r2, r2, r4 - 86b2: 0a12 lsrne r2, r2, #8 - for(i = 0; i < shades; i++) { - 86b4: 4299 cmp r1, r3 - opa_table[i] = bpp_opa_table_p[i] == LV_OPA_COVER ? opa : ((bpp_opa_table_p[i] * opa) >> 8); - 86b6: f800 2b01 strb.w r2, [r0], #1 - for(i = 0; i < shades; i++) { - 86ba: d1f2 bne.n 86a2 - 86bc: e747 b.n 854e - bitmask = bitmask_init >> col_bit; - 86be: 9b13 ldr r3, [sp, #76] ; 0x4c - for(col = col_start; col < col_end; col++) { - 86c0: 990f ldr r1, [sp, #60] ; 0x3c - 86c2: f8cd 908c str.w r9, [sp, #140] ; 0x8c - bitmask = bitmask_init >> col_bit; - 86c6: fa23 f204 lsr.w r2, r3, r4 - for(col = col_start; col < col_end; col++) { - 86ca: ee18 3a90 vmov r3, s17 - 86ce: eb03 0809 add.w r8, r3, r9 - 86d2: 4647 mov r7, r8 - 86d4: 9b12 ldr r3, [sp, #72] ; 0x48 - 86d6: 428b cmp r3, r1 - 86d8: dc3a bgt.n 8750 - 86da: 9a0f ldr r2, [sp, #60] ; 0x3c - 86dc: 9912 ldr r1, [sp, #72] ; 0x48 - 86de: 1a9b subs r3, r3, r2 - 86e0: 9316 str r3, [sp, #88] ; 0x58 - 86e2: 428a cmp r2, r1 - 86e4: bfc8 it gt - 86e6: 2300 movgt r3, #0 - 86e8: 9318 str r3, [sp, #96] ; 0x60 - 86ea: 4499 add r9, r3 - if(other_mask_cnt) { - 86ec: 9b19 ldr r3, [sp, #100] ; 0x64 - 86ee: b1b3 cbz r3, 871e - 86f0: f8bd 30d0 ldrh.w r3, [sp, #208] ; 0xd0 - lv_draw_mask_res_t mask_res = lv_draw_mask_apply(mask_buf + mask_p_start, fill_area.x1, fill_area.y2, - 86f4: f9bd 10cc ldrsh.w r1, [sp, #204] ; 0xcc - 86f8: f9bd 20d2 ldrsh.w r2, [sp, #210] ; 0xd2 - 86fc: 4f2d ldr r7, [pc, #180] ; (87b4 ) - 86fe: 3301 adds r3, #1 - 8700: 1a5b subs r3, r3, r1 - 8702: b21b sxth r3, r3 - 8704: 4640 mov r0, r8 - 8706: 47b8 blx r7 - if(mask_res == LV_DRAW_MASK_RES_TRANSP) { - 8708: b948 cbnz r0, 871e - 870a: f8bd 10d0 ldrh.w r1, [sp, #208] ; 0xd0 - 870e: f8bd 30cc ldrh.w r3, [sp, #204] ; 0xcc - 8712: 3101 adds r1, #1 - 8714: 1ac9 subs r1, r1, r3 - _lv_memset_00(mask_buf + mask_p_start, lv_area_get_width(&fill_area)); - 8716: b209 sxth r1, r1 - 8718: 4b27 ldr r3, [pc, #156] ; (87b8 ) - 871a: 4640 mov r0, r8 - 871c: 4798 blx r3 - if((uint32_t) mask_p + (col_end - col_start) < mask_buf_size) { - 871e: 9b18 ldr r3, [sp, #96] ; 0x60 - 8720: 9a16 ldr r2, [sp, #88] ; 0x58 - 8722: 4413 add r3, r2 - 8724: 4698 mov r8, r3 - 8726: 9b23 ldr r3, [sp, #140] ; 0x8c - 8728: 4498 add r8, r3 - 872a: 9b15 ldr r3, [sp, #84] ; 0x54 - 872c: 4543 cmp r3, r8 - 872e: d945 bls.n 87bc - fill_area.y2 ++; - 8730: f8bd 30d2 ldrh.w r3, [sp, #210] ; 0xd2 - 8734: 3301 adds r3, #1 - 8736: b21b sxth r3, r3 - 8738: f8ad 30d2 strh.w r3, [sp, #210] ; 0xd2 - col_bit += col_bit_row_ofs; - 873c: 9b1a ldr r3, [sp, #104] ; 0x68 - 873e: 441c add r4, r3 - map_p += (col_bit >> 3); - 8740: 9b14 ldr r3, [sp, #80] ; 0x50 - 8742: eb03 03d4 add.w r3, r3, r4, lsr #3 - 8746: 9314 str r3, [sp, #80] ; 0x50 - col_bit = col_bit & 0x7; - 8748: f004 0407 and.w r4, r4, #7 - for(row = row_start ; row < row_end; row++) { - 874c: 3601 adds r6, #1 - 874e: e76d b.n 862c - letter_px = (*map_p & bitmask) >> (col_bit_max - col_bit); - 8750: 9b14 ldr r3, [sp, #80] ; 0x50 - 8752: 980d ldr r0, [sp, #52] ; 0x34 - 8754: 781b ldrb r3, [r3, #0] - 8756: eba0 0c04 sub.w ip, r0, r4 - 875a: 4013 ands r3, r2 - if(letter_px) { - 875c: fa33 f30c lsrs.w r3, r3, ip - mask_buf[mask_p] = bpp_opa_table_p[letter_px]; - 8760: bf1c itt ne - 8762: 980e ldrne r0, [sp, #56] ; 0x38 - 8764: 5cc3 ldrbne r3, [r0, r3] - 8766: f807 3b01 strb.w r3, [r7], #1 - if(col_bit < col_bit_max) { - 876a: 9b0d ldr r3, [sp, #52] ; 0x34 - 876c: 42a3 cmp r3, r4 - map_p++; - 876e: bf9d ittte ls - 8770: 9b14 ldrls r3, [sp, #80] ; 0x50 - bitmask = bitmask_init; - 8772: 9a13 ldrls r2, [sp, #76] ; 0x4c - map_p++; - 8774: 3301 addls r3, #1 - col_bit += bpp; - 8776: 1964 addhi r4, r4, r5 - bitmask = bitmask >> bpp; - 8778: bf8e itee hi - 877a: 40ea lsrhi r2, r5 - map_p++; - 877c: 9314 strls r3, [sp, #80] ; 0x50 - col_bit = 0; - 877e: 2400 movls r4, #0 - for(col = col_start; col < col_end; col++) { - 8780: 3101 adds r1, #1 - 8782: e7a7 b.n 86d4 - 8784: 00006a81 .word 0x00006a81 - 8788: 00027616 .word 0x00027616 - 878c: 20003498 .word 0x20003498 - 8790: 0000f145 .word 0x0000f145 - 8794: 00009a75 .word 0x00009a75 - 8798: 00006475 .word 0x00006475 - 879c: 0000edf9 .word 0x0000edf9 - 87a0: 0002762a .word 0x0002762a - 87a4: 000275f8 .word 0x000275f8 - 87a8: 0002774b .word 0x0002774b - 87ac: 00027614 .word 0x00027614 - 87b0: 0002761a .word 0x0002761a - 87b4: 000099e5 .word 0x000099e5 - 87b8: 0000f2a9 .word 0x0000f2a9 - _lv_blend_fill(clip_area, &fill_area, - 87bc: 9b1b ldr r3, [sp, #108] ; 0x6c - 87be: 9302 str r3, [sp, #8] - 87c0: 27ff movs r7, #255 ; 0xff - 87c2: 2302 movs r3, #2 - 87c4: e9cd 3700 strd r3, r7, [sp] - 87c8: ee19 2a90 vmov r2, s19 - 87cc: ee18 3a90 vmov r3, s17 - 87d0: f8df 808c ldr.w r8, [pc, #140] ; 8860 - 87d4: a933 add r1, sp, #204 ; 0xcc - 87d6: 4650 mov r0, sl - 87d8: 47c0 blx r8 - fill_area.y1 = fill_area.y2 + 1; - 87da: f8bd 30d2 ldrh.w r3, [sp, #210] ; 0xd2 - 87de: 3301 adds r3, #1 - 87e0: b21b sxth r3, r3 - 87e2: f8ad 30ce strh.w r3, [sp, #206] ; 0xce - mask_p = 0; - 87e6: f04f 0900 mov.w r9, #0 - 87ea: e7a5 b.n 8738 - else if(dsc->flag & LV_TXT_FLAG_RIGHT) { - 87ec: 071a lsls r2, r3, #28 - 87ee: f57f ac15 bpl.w 801c - _lv_txt_get_width(&txt[line_start], line_end - line_start, font, dsc->letter_space, dsc->flag); - 87f2: ee18 2a10 vmov r2, s16 - 87f6: 9300 str r3, [sp, #0] - 87f8: 4630 mov r0, r6 - 87fa: f9bb 300c ldrsh.w r3, [fp, #12] - 87fe: 4e12 ldr r6, [pc, #72] ; (8848 ) - 8800: 47b0 blx r6 - 8802: 9b05 ldr r3, [sp, #20] - 8804: 9a05 ldr r2, [sp, #20] - 8806: 889b ldrh r3, [r3, #4] - 8808: 8812 ldrh r2, [r2, #0] - 880a: 3301 adds r3, #1 - 880c: 1a9b subs r3, r3, r2 - pos.x += lv_area_get_width(coords) - line_width; - 880e: b21b sxth r3, r3 - 8810: 1a18 subs r0, r3, r0 - 8812: 4420 add r0, r4 - 8814: e401 b.n 801a - bool g_ret = lv_font_get_glyph_dsc(font_p, &g, letter, '\0'); - 8816: ee18 0a10 vmov r0, s16 - 881a: 4e0c ldr r6, [pc, #48] ; (884c ) - 881c: 2300 movs r3, #0 - 881e: 462a mov r2, r5 - 8820: a938 add r1, sp, #224 ; 0xe0 - 8822: 47b0 blx r6 - if(g_ret == false) { - 8824: 2800 cmp r0, #0 - 8826: f47f ac25 bne.w 8074 - if(letter >= 0x20) { - 882a: 2d1f cmp r5, #31 - 882c: f67f ab6e bls.w 7f0c - LV_LOG_WARN("lv_draw_letter: glyph dsc. not found"); - 8830: 4b07 ldr r3, [pc, #28] ; (8850 ) - 8832: 9300 str r3, [sp, #0] - 8834: 4b07 ldr r3, [pc, #28] ; (8854 ) - 8836: f240 12a1 movw r2, #417 ; 0x1a1 - LV_LOG_WARN("lv_draw_letter: invalid bpp"); - 883a: 4907 ldr r1, [pc, #28] ; (8858 ) - 883c: 4c07 ldr r4, [pc, #28] ; (885c ) - 883e: 2002 movs r0, #2 - 8840: 47a0 blx r4 - return; /*Invalid bpp. Can't render the letter*/ - 8842: f7ff bb63 b.w 7f0c - 8846: bf00 nop - 8848: 000101ad .word 0x000101ad - 884c: 0000d3ed .word 0x0000d3ed - 8850: 00027580 .word 0x00027580 - 8854: 0002772a .word 0x0002772a - 8858: 0002754a .word 0x0002754a - 885c: 0000eb79 .word 0x0000eb79 - 8860: 00006475 .word 0x00006475 - -00008864 : -/********************** - * GLOBAL FUNCTIONS - **********************/ - -LV_ATTRIBUTE_FAST_MEM void lv_draw_line_dsc_init(lv_draw_line_dsc_t * dsc) -{ - 8864: b510 push {r4, lr} - _lv_memset_00(dsc, sizeof(lv_draw_line_dsc_t)); - 8866: 4b05 ldr r3, [pc, #20] ; (887c ) -{ - 8868: 4604 mov r4, r0 - _lv_memset_00(dsc, sizeof(lv_draw_line_dsc_t)); - 886a: 210a movs r1, #10 - 886c: 4798 blx r3 - dsc->width = 1; - dsc->opa = LV_OPA_COVER; - 886e: 23ff movs r3, #255 ; 0xff - 8870: 7223 strb r3, [r4, #8] - dsc->color = LV_COLOR_BLACK; - 8872: 2300 movs r3, #0 - 8874: 8023 strh r3, [r4, #0] - dsc->width = 1; - 8876: 2301 movs r3, #1 - 8878: 8063 strh r3, [r4, #2] -} - 887a: bd10 pop {r4, pc} - 887c: 0000f2a9 .word 0x0000f2a9 - -00008880 : - * @param style pointer to a line's style - * @param opa_scale scale down all opacities by the factor - */ -LV_ATTRIBUTE_FAST_MEM void lv_draw_line(const lv_point_t * point1, const lv_point_t * point2, const lv_area_t * clip, - lv_draw_line_dsc_t * dsc) -{ - 8880: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - 8884: ed2d 8b04 vpush {d8-d9} - 8888: 469b mov fp, r3 - if(dsc->width == 0) return; - 888a: f9b3 3002 ldrsh.w r3, [r3, #2] -{ - 888e: b0c7 sub sp, #284 ; 0x11c - 8890: e9cd 0105 strd r0, r1, [sp, #20] - 8894: ee08 2a90 vmov s17, r2 - if(dsc->width == 0) return; - 8898: 2b00 cmp r3, #0 - 889a: f000 80e4 beq.w 8a66 - if(dsc->opa <= LV_OPA_MIN) return; - 889e: f89b 2008 ldrb.w r2, [fp, #8] - 88a2: 2a05 cmp r2, #5 - 88a4: f240 80df bls.w 8a66 - - if(point1->x == point2->x && point1->y == point2->y) return; - 88a8: 9a05 ldr r2, [sp, #20] - 88aa: f9b0 4000 ldrsh.w r4, [r0] - 88ae: f9b1 0000 ldrsh.w r0, [r1] - 88b2: f9b2 1002 ldrsh.w r1, [r2, #2] - 88b6: 9a06 ldr r2, [sp, #24] - 88b8: 4284 cmp r4, r0 - 88ba: f9b2 2002 ldrsh.w r2, [r2, #2] - 88be: d102 bne.n 88c6 - 88c0: 4291 cmp r1, r2 - 88c2: f000 80d0 beq.w 8a66 - - lv_area_t clip_line; - clip_line.x1 = LV_MATH_MIN(point1->x, point2->x) - dsc->width / 2; - 88c6: eb03 73d3 add.w r3, r3, r3, lsr #31 - 88ca: f3c3 034f ubfx r3, r3, #1, #16 - 88ce: 4284 cmp r4, r0 - 88d0: bfd4 ite le - 88d2: ebc3 0504 rsble r5, r3, r4 - 88d6: ebc3 0500 rsbgt r5, r3, r0 - 88da: f8ad 5028 strh.w r5, [sp, #40] ; 0x28 - clip_line.x2 = LV_MATH_MAX(point1->x, point2->x) + dsc->width / 2; - 88de: 4284 cmp r4, r0 - 88e0: bfac ite ge - 88e2: 191d addge r5, r3, r4 - 88e4: 181d addlt r5, r3, r0 - clip_line.y1 = LV_MATH_MIN(point1->y, point2->y) - dsc->width / 2; - 88e6: 4291 cmp r1, r2 - 88e8: bfd4 ite le - 88ea: ebc3 0001 rsble r0, r3, r1 - 88ee: ebc3 0002 rsbgt r0, r3, r2 - clip_line.y2 = LV_MATH_MAX(point1->y, point2->y) + dsc->width / 2; - 88f2: 4291 cmp r1, r2 - 88f4: bfac ite ge - 88f6: 185b addge r3, r3, r1 - 88f8: 189b addlt r3, r3, r2 - - bool is_common; - is_common = _lv_area_intersect(&clip_line, &clip_line, clip); - 88fa: a90a add r1, sp, #40 ; 0x28 - clip_line.y1 = LV_MATH_MIN(point1->y, point2->y) - dsc->width / 2; - 88fc: f8ad 002a strh.w r0, [sp, #42] ; 0x2a - is_common = _lv_area_intersect(&clip_line, &clip_line, clip); - 8900: ee18 2a90 vmov r2, s17 - 8904: 4caa ldr r4, [pc, #680] ; (8bb0 ) - clip_line.x2 = LV_MATH_MAX(point1->x, point2->x) + dsc->width / 2; - 8906: f8ad 502c strh.w r5, [sp, #44] ; 0x2c - is_common = _lv_area_intersect(&clip_line, &clip_line, clip); - 890a: 4608 mov r0, r1 - clip_line.y2 = LV_MATH_MAX(point1->y, point2->y) + dsc->width / 2; - 890c: f8ad 302e strh.w r3, [sp, #46] ; 0x2e - is_common = _lv_area_intersect(&clip_line, &clip_line, clip); - 8910: 47a0 blx r4 - if(!is_common) return; - 8912: 2800 cmp r0, #0 - 8914: f000 80a7 beq.w 8a66 - - if(point1->y == point2->y) draw_line_hor(point1, point2, &clip_line, dsc); - 8918: 9b05 ldr r3, [sp, #20] - 891a: f9b3 9002 ldrsh.w r9, [r3, #2] - 891e: 9b06 ldr r3, [sp, #24] - 8920: f9b3 8002 ldrsh.w r8, [r3, #2] - 8924: 45c1 cmp r9, r8 - 8926: f040 8159 bne.w 8bdc - const lv_area_t * clip, - lv_draw_line_dsc_t * dsc) -{ - lv_opa_t opa = dsc->opa; - - lv_disp_t * disp = _lv_refr_get_disp_refreshing(); - 892a: 4ba2 ldr r3, [pc, #648] ; (8bb4 ) - lv_opa_t opa = dsc->opa; - 892c: f89b 4008 ldrb.w r4, [fp, #8] - lv_disp_t * disp = _lv_refr_get_disp_refreshing(); - 8930: 4798 blx r3 - lv_disp_buf_t * vdb = lv_disp_get_buf(disp); - 8932: 4ba1 ldr r3, [pc, #644] ; (8bb8 ) - 8934: 4798 blx r3 - - const lv_area_t * disp_area = &vdb->area; - - int32_t w = dsc->width - 1; - 8936: f9bb 3002 ldrsh.w r3, [fp, #2] - int32_t w_half0 = w >> 1; - int32_t w_half1 = w_half0 + (w & 0x1); /*Compensate rounding error*/ - - bool dashed = dsc->dash_gap && dsc->dash_width ? true : false; - 893a: f9bb 5006 ldrsh.w r5, [fp, #6] - int32_t w = dsc->width - 1; - 893e: 3b01 subs r3, #1 - int32_t w_half1 = w_half0 + (w & 0x1); /*Compensate rounding error*/ - 8940: f003 0601 and.w r6, r3, #1 - lv_disp_buf_t * vdb = lv_disp_get_buf(disp); - 8944: 4680 mov r8, r0 - int32_t w_half0 = w >> 1; - 8946: 105f asrs r7, r3, #1 - int32_t w_half1 = w_half0 + (w & 0x1); /*Compensate rounding error*/ - 8948: eb06 0663 add.w r6, r6, r3, asr #1 - bool dashed = dsc->dash_gap && dsc->dash_width ? true : false; - 894c: b125 cbz r5, 8958 - 894e: f9bb 5004 ldrsh.w r5, [fp, #4] - 8952: 3d00 subs r5, #0 - 8954: bf18 it ne - 8956: 2501 movne r5, #1 - - bool simple_mode = true; - if(lv_draw_mask_get_cnt()) simple_mode = false; - 8958: 4b98 ldr r3, [pc, #608] ; (8bbc ) - 895a: 4798 blx r3 - 895c: 2800 cmp r0, #0 - 895e: f040 8087 bne.w 8a70 - else if(dashed) simple_mode = false; - 8962: f085 0201 eor.w r2, r5, #1 - - lv_area_t draw_area; - draw_area.x1 = LV_MATH_MIN(point1->x, point2->x); - 8966: 9b06 ldr r3, [sp, #24] - 8968: 9905 ldr r1, [sp, #20] - 896a: f9b3 3000 ldrsh.w r3, [r3] - 896e: f9b1 1000 ldrsh.w r1, [r1] - 8972: 428b cmp r3, r1 - 8974: 4618 mov r0, r3 - 8976: bfa8 it ge - 8978: 4608 movge r0, r1 - draw_area.x2 = LV_MATH_MAX(point1->x, point2->x) - 1; - 897a: 428b cmp r3, r1 - 897c: bfb8 it lt - 897e: 460b movlt r3, r1 - 8980: 3b01 subs r3, #1 - 8982: f8ad 309c strh.w r3, [sp, #156] ; 0x9c - draw_area.y1 = point1->y - w_half1; - 8986: 9b05 ldr r3, [sp, #20] - draw_area.x1 = LV_MATH_MIN(point1->x, point2->x); - 8988: f8ad 0098 strh.w r0, [sp, #152] ; 0x98 - draw_area.y1 = point1->y - w_half1; - 898c: 885b ldrh r3, [r3, #2] - 898e: 1b9e subs r6, r3, r6 - draw_area.y2 = point1->y + w_half0; - 8990: 443b add r3, r7 - draw_area.y1 = point1->y - w_half1; - 8992: f8ad 609a strh.w r6, [sp, #154] ; 0x9a - draw_area.y2 = point1->y + w_half0; - 8996: f8ad 309e strh.w r3, [sp, #158] ; 0x9e - - /*If there is no mask then simply draw a rectangle*/ - if(simple_mode) { - 899a: 2a00 cmp r2, #0 - 899c: d06a beq.n 8a74 - _lv_blend_fill(clip, &draw_area, - dsc->color, NULL, LV_DRAW_MASK_RES_FULL_COVER, opa, - dsc->blend_mode); - 899e: f89b 3009 ldrb.w r3, [fp, #9] - _lv_blend_fill(clip, &draw_area, - 89a2: f003 0303 and.w r3, r3, #3 - 89a6: e9cd 4301 strd r4, r3, [sp, #4] - draw_area.y1 = LV_MATH_MIN(point1->y, point2->y); - draw_area.y2 = LV_MATH_MAX(point1->y, point2->y) - 1; - - /*If there is no mask then simply draw a rectangle*/ - if(simple_mode) { - _lv_blend_fill(clip, &draw_area, - 89aa: 2301 movs r3, #1 - 89ac: 9300 str r3, [sp, #0] - 89ae: f8bb 2000 ldrh.w r2, [fp] - 89b2: 4c83 ldr r4, [pc, #524] ; (8bc0 ) - 89b4: 2300 movs r3, #0 - 89b6: a926 add r1, sp, #152 ; 0x98 - 89b8: a80a add r0, sp, #40 ; 0x28 - 89ba: 47a0 blx r4 - if(dsc->round_end || dsc->round_start) { - 89bc: f89b 3009 ldrb.w r3, [fp, #9] - 89c0: f013 0f0c tst.w r3, #12 - 89c4: d04f beq.n 8a66 - lv_draw_rect_dsc_init(&cir_dsc); - 89c6: 4b7f ldr r3, [pc, #508] ; (8bc4 ) - 89c8: a831 add r0, sp, #196 ; 0xc4 - 89ca: 4798 blx r3 - cir_dsc.bg_color = dsc->color; - 89cc: f8bb 3000 ldrh.w r3, [fp] - 89d0: f8ad 30c6 strh.w r3, [sp, #198] ; 0xc6 - cir_dsc.radius = LV_RADIUS_CIRCLE; - 89d4: f647 73ff movw r3, #32767 ; 0x7fff - 89d8: f8ad 30c4 strh.w r3, [sp, #196] ; 0xc4 - cir_dsc.bg_opa = dsc->opa; - 89dc: f89b 3008 ldrb.w r3, [fp, #8] - int32_t r = (dsc->width >> 1); - 89e0: f9bb 5002 ldrsh.w r5, [fp, #2] - cir_dsc.bg_opa = dsc->opa; - 89e4: f88d 30d0 strb.w r3, [sp, #208] ; 0xd0 - if(dsc->round_start) { - 89e8: f89b 3009 ldrb.w r3, [fp, #9] - int32_t r = (dsc->width >> 1); - 89ec: 106c asrs r4, r5, #1 - if(dsc->round_start) { - 89ee: 075a lsls r2, r3, #29 - 89f0: ea6f 0505 mvn.w r5, r5 - 89f4: f005 0501 and.w r5, r5, #1 - 89f8: d518 bpl.n 8a2c - cir_area.x1 = point1->x - r; - 89fa: 9b05 ldr r3, [sp, #20] - 89fc: 881a ldrh r2, [r3, #0] - 89fe: b2a3 uxth r3, r4 - 8a00: 1ad1 subs r1, r2, r3 - 8a02: f8ad 1098 strh.w r1, [sp, #152] ; 0x98 - cir_area.y1 = point1->y - r; - 8a06: 9905 ldr r1, [sp, #20] - 8a08: 8849 ldrh r1, [r1, #2] - cir_area.x2 = point1->x + r - r_corr; - 8a0a: 441a add r2, r3 - cir_area.y1 = point1->y - r; - 8a0c: 1ac8 subs r0, r1, r3 - cir_area.y2 = point1->y + r - r_corr ; - 8a0e: 440b add r3, r1 - cir_area.x2 = point1->x + r - r_corr; - 8a10: 1b52 subs r2, r2, r5 - cir_area.y2 = point1->y + r - r_corr ; - 8a12: 1b5b subs r3, r3, r5 - cir_area.y1 = point1->y - r; - 8a14: f8ad 009a strh.w r0, [sp, #154] ; 0x9a - cir_area.x2 = point1->x + r - r_corr; - 8a18: f8ad 209c strh.w r2, [sp, #156] ; 0x9c - cir_area.y2 = point1->y + r - r_corr ; - 8a1c: f8ad 309e strh.w r3, [sp, #158] ; 0x9e - lv_draw_rect(&cir_area, clip, &cir_dsc); - 8a20: ee18 1a90 vmov r1, s17 - 8a24: 4b68 ldr r3, [pc, #416] ; (8bc8 ) - 8a26: aa31 add r2, sp, #196 ; 0xc4 - 8a28: a826 add r0, sp, #152 ; 0x98 - 8a2a: 4798 blx r3 - if(dsc->round_end) { - 8a2c: f89b 3009 ldrb.w r3, [fp, #9] - 8a30: 071b lsls r3, r3, #28 - 8a32: d518 bpl.n 8a66 - cir_area.x1 = point2->x - r; - 8a34: 9b06 ldr r3, [sp, #24] - 8a36: 881a ldrh r2, [r3, #0] - 8a38: b2a3 uxth r3, r4 - 8a3a: 1ad1 subs r1, r2, r3 - 8a3c: f8ad 1098 strh.w r1, [sp, #152] ; 0x98 - cir_area.y1 = point2->y - r; - 8a40: 9906 ldr r1, [sp, #24] - 8a42: 8849 ldrh r1, [r1, #2] - cir_area.x2 = point2->x + r - r_corr; - 8a44: 441a add r2, r3 - cir_area.y1 = point2->y - r; - 8a46: 1ac8 subs r0, r1, r3 - cir_area.y2 = point2->y + r - r_corr ; - 8a48: 440b add r3, r1 - cir_area.x2 = point2->x + r - r_corr; - 8a4a: 1b52 subs r2, r2, r5 - cir_area.y2 = point2->y + r - r_corr ; - 8a4c: 1b5b subs r3, r3, r5 - cir_area.y1 = point2->y - r; - 8a4e: f8ad 009a strh.w r0, [sp, #154] ; 0x9a - cir_area.x2 = point2->x + r - r_corr; - 8a52: f8ad 209c strh.w r2, [sp, #156] ; 0x9c - cir_area.y2 = point2->y + r - r_corr ; - 8a56: f8ad 309e strh.w r3, [sp, #158] ; 0x9e - lv_draw_rect(&cir_area, clip, &cir_dsc); - 8a5a: ee18 1a90 vmov r1, s17 - 8a5e: 4b5a ldr r3, [pc, #360] ; (8bc8 ) - 8a60: aa31 add r2, sp, #196 ; 0xc4 - 8a62: a826 add r0, sp, #152 ; 0x98 - 8a64: 4798 blx r3 -} - 8a66: b047 add sp, #284 ; 0x11c - 8a68: ecbd 8b04 vpop {d8-d9} - 8a6c: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - if(lv_draw_mask_get_cnt()) simple_mode = false; - 8a70: 2200 movs r2, #0 - 8a72: e778 b.n 8966 - is_common = _lv_area_intersect(&draw_area, clip, &draw_area); - 8a74: aa26 add r2, sp, #152 ; 0x98 - 8a76: 4b4e ldr r3, [pc, #312] ; (8bb0 ) - 8a78: a90a add r1, sp, #40 ; 0x28 - 8a7a: 4610 mov r0, r2 - 8a7c: 4798 blx r3 - if(!is_common) return; - 8a7e: 2800 cmp r0, #0 - 8a80: d09c beq.n 89bc - draw_area.y1 -= disp_area->y1; - 8a82: f8b8 e012 ldrh.w lr, [r8, #18] - 8a86: f9bd 109a ldrsh.w r1, [sp, #154] ; 0x9a - draw_area.x1 -= disp_area->x1; - 8a8a: f8b8 2010 ldrh.w r2, [r8, #16] - 8a8e: f9b8 6010 ldrsh.w r6, [r8, #16] - 8a92: f8bd 0098 ldrh.w r0, [sp, #152] ; 0x98 - draw_area.x2 -= disp_area->x1; - 8a96: f9bd 709c ldrsh.w r7, [sp, #156] ; 0x9c - draw_area.x1 -= disp_area->x1; - 8a9a: f9bd c098 ldrsh.w ip, [sp, #152] ; 0x98 - fill_area.x1 = draw_area.x1 + disp_area->x1; - 8a9e: f8ad c0c4 strh.w ip, [sp, #196] ; 0xc4 - draw_area.y1 -= disp_area->y1; - 8aa2: eba1 040e sub.w r4, r1, lr - 8aa6: f8ad 409a strh.w r4, [sp, #154] ; 0x9a - draw_area.x2 -= disp_area->x1; - 8aaa: f8bd 409c ldrh.w r4, [sp, #156] ; 0x9c - fill_area.x2 = draw_area.x2 + disp_area->x1; - 8aae: f8ad 70c8 strh.w r7, [sp, #200] ; 0xc8 - draw_area.x1 -= disp_area->x1; - 8ab2: 1a83 subs r3, r0, r2 - draw_area.x2 -= disp_area->x1; - 8ab4: 1aa2 subs r2, r4, r2 - 8ab6: f8ad 209c strh.w r2, [sp, #156] ; 0x9c - draw_area.y2 -= disp_area->y1; - 8aba: f8bd 209e ldrh.w r2, [sp, #158] ; 0x9e - fill_area.y1 = draw_area.y1 + disp_area->y1; - 8abe: f8ad 10c6 strh.w r1, [sp, #198] ; 0xc6 - 8ac2: 3401 adds r4, #1 - draw_area.x1 -= disp_area->x1; - 8ac4: b21b sxth r3, r3 - draw_area.y2 -= disp_area->y1; - 8ac6: eba2 020e sub.w r2, r2, lr - 8aca: 1a24 subs r4, r4, r0 - draw_area.x1 -= disp_area->x1; - 8acc: f8ad 3098 strh.w r3, [sp, #152] ; 0x98 - draw_area.y2 -= disp_area->y1; - 8ad0: f8ad 209e strh.w r2, [sp, #158] ; 0x9e - 8ad4: b224 sxth r4, r4 - fill_area.y2 = fill_area.y1; - 8ad6: f8ad 10ca strh.w r1, [sp, #202] ; 0xca - if(dashed) { - 8ada: b1dd cbz r5, 8b14 - dash_start = (vdb->area.x1 + draw_area.x1) % (dsc->dash_gap + dsc->dash_width); - 8adc: 441e add r6, r3 - 8ade: f9bb 2004 ldrsh.w r2, [fp, #4] - 8ae2: f9bb 3006 ldrsh.w r3, [fp, #6] - 8ae6: 4413 add r3, r2 - 8ae8: fb96 f2f3 sdiv r2, r6, r3 - 8aec: fb03 6612 mls r6, r3, r2, r6 - 8af0: b233 sxth r3, r6 - 8af2: 9307 str r3, [sp, #28] - lv_opa_t * mask_buf = _lv_mem_buf_get(draw_area_w); - 8af4: 4b35 ldr r3, [pc, #212] ; (8bcc ) - _lv_blend_fill(clip, &fill_area, - 8af6: f8df a0c8 ldr.w sl, [pc, #200] ; 8bc0 - lv_opa_t * mask_buf = _lv_mem_buf_get(draw_area_w); - 8afa: 4620 mov r0, r4 - 8afc: 4798 blx r3 - for(h = draw_area.y1; h <= draw_area.y2; h++) { - 8afe: f9bd 909a ldrsh.w r9, [sp, #154] ; 0x9a - lv_opa_t * mask_buf = _lv_mem_buf_get(draw_area_w); - 8b02: 4607 mov r7, r0 - for(h = draw_area.y1; h <= draw_area.y2; h++) { - 8b04: f9bd 309e ldrsh.w r3, [sp, #158] ; 0x9e - 8b08: 4599 cmp r9, r3 - 8b0a: dd05 ble.n 8b18 - _lv_mem_buf_release(mask_buf); - 8b0c: 4638 mov r0, r7 - LV_BLEND_MODE_NORMAL); - - fill_area.y1++; - fill_area.y2++; - } - _lv_mem_buf_release(mask_buf); - 8b0e: 4b30 ldr r3, [pc, #192] ; (8bd0 ) - 8b10: 4798 blx r3 - 8b12: e753 b.n 89bc - lv_style_int_t dash_start = 0; - 8b14: 9507 str r5, [sp, #28] - 8b16: e7ed b.n 8af4 - _lv_memset_ff(mask_buf, draw_area_w); - 8b18: 4b2e ldr r3, [pc, #184] ; (8bd4 ) - lv_draw_mask_res_t mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w); - 8b1a: 4e2f ldr r6, [pc, #188] ; (8bd8 ) - _lv_memset_ff(mask_buf, draw_area_w); - 8b1c: 4621 mov r1, r4 - 8b1e: 4638 mov r0, r7 - 8b20: 4798 blx r3 - lv_draw_mask_res_t mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w); - 8b22: f8bd 3098 ldrh.w r3, [sp, #152] ; 0x98 - 8b26: f8b8 2012 ldrh.w r2, [r8, #18] - 8b2a: f8b8 1010 ldrh.w r1, [r8, #16] - 8b2e: 444a add r2, r9 - 8b30: 4419 add r1, r3 - 8b32: b212 sxth r2, r2 - 8b34: 4623 mov r3, r4 - 8b36: b209 sxth r1, r1 - 8b38: 4638 mov r0, r7 - 8b3a: 47b0 blx r6 - 8b3c: 4602 mov r2, r0 - if(dashed) { - 8b3e: b195 cbz r5, 8b66 - if(mask_res != LV_DRAW_MASK_RES_TRANSP) { - 8b40: b188 cbz r0, 8b66 - for(i = 0; i < draw_area_w; i++, dash_cnt++) { - 8b42: 2300 movs r3, #0 - lv_style_int_t dash_cnt = dash_start; - 8b44: 9907 ldr r1, [sp, #28] - 8b46: 4618 mov r0, r3 - 8b48: e00a b.n 8b60 - if(dash_cnt <= dsc->dash_width) { - 8b4a: f9bb 2004 ldrsh.w r2, [fp, #4] - 8b4e: 428a cmp r2, r1 - 8b50: db25 blt.n 8b9e - i += diff; - 8b52: 4413 add r3, r2 - 8b54: 1a5b subs r3, r3, r1 - 8b56: b21b sxth r3, r3 - for(i = 0; i < draw_area_w; i++, dash_cnt++) { - 8b58: 3301 adds r3, #1 - 8b5a: 3201 adds r2, #1 - 8b5c: b21b sxth r3, r3 - 8b5e: b211 sxth r1, r2 - 8b60: 429c cmp r4, r3 - 8b62: dcf2 bgt.n 8b4a - mask_res = LV_DRAW_MASK_RES_CHANGED; - 8b64: 2202 movs r2, #2 - dsc->blend_mode); - 8b66: f89b 3009 ldrb.w r3, [fp, #9] - _lv_blend_fill(clip, &fill_area, - 8b6a: f003 0303 and.w r3, r3, #3 - 8b6e: 9302 str r3, [sp, #8] - 8b70: f89b 3008 ldrb.w r3, [fp, #8] - 8b74: a931 add r1, sp, #196 ; 0xc4 - 8b76: e9cd 2300 strd r2, r3, [sp] - 8b7a: a80a add r0, sp, #40 ; 0x28 - 8b7c: 463b mov r3, r7 - 8b7e: f8bb 2000 ldrh.w r2, [fp] - 8b82: 47d0 blx sl - fill_area.y1++; - 8b84: f8bd 30c6 ldrh.w r3, [sp, #198] ; 0xc6 - 8b88: 3301 adds r3, #1 - 8b8a: f8ad 30c6 strh.w r3, [sp, #198] ; 0xc6 - fill_area.y2++; - 8b8e: f8bd 30ca ldrh.w r3, [sp, #202] ; 0xca - 8b92: 3301 adds r3, #1 - 8b94: f8ad 30ca strh.w r3, [sp, #202] ; 0xca - for(h = draw_area.y1; h <= draw_area.y2; h++) { - 8b98: f109 0901 add.w r9, r9, #1 - 8b9c: e7b2 b.n 8b04 - else if(dash_cnt >= dsc->dash_gap + dsc->dash_width) { - 8b9e: f9bb c006 ldrsh.w ip, [fp, #6] - 8ba2: 4462 add r2, ip - 8ba4: 4291 cmp r1, r2 - mask_buf[i] = 0x00; - 8ba6: bfba itte lt - 8ba8: 54f8 strblt r0, [r7, r3] - 8baa: 460a movlt r2, r1 - dash_cnt = 0; - 8bac: 2200 movge r2, #0 - 8bae: e7d3 b.n 8b58 - 8bb0: 0000e111 .word 0x0000e111 - 8bb4: 0000526d .word 0x0000526d - 8bb8: 0000dc65 .word 0x0000dc65 - 8bbc: 00009a75 .word 0x00009a75 - 8bc0: 00006475 .word 0x00006475 - 8bc4: 00009e25 .word 0x00009e25 - 8bc8: 00009e71 .word 0x00009e71 - 8bcc: 0000f145 .word 0x0000f145 - 8bd0: 0000edf9 .word 0x0000edf9 - 8bd4: 0000f305 .word 0x0000f305 - 8bd8: 000099e5 .word 0x000099e5 - else if(point1->x == point2->x) draw_line_ver(point1, point2, &clip_line, dsc); - 8bdc: 9b05 ldr r3, [sp, #20] - 8bde: f9b3 7000 ldrsh.w r7, [r3] - 8be2: 9b06 ldr r3, [sp, #24] - 8be4: f9b3 6000 ldrsh.w r6, [r3] - 8be8: 42b7 cmp r7, r6 - 8bea: f040 80db bne.w 8da4 - lv_disp_t * disp = _lv_refr_get_disp_refreshing(); - 8bee: 4b66 ldr r3, [pc, #408] ; (8d88 ) - lv_opa_t opa = dsc->opa; - 8bf0: f89b 6008 ldrb.w r6, [fp, #8] - lv_disp_t * disp = _lv_refr_get_disp_refreshing(); - 8bf4: 4798 blx r3 - lv_disp_buf_t * vdb = lv_disp_get_buf(disp); - 8bf6: 4b65 ldr r3, [pc, #404] ; (8d8c ) - 8bf8: 4798 blx r3 - int32_t w = dsc->width - 1; - 8bfa: f9bb 3002 ldrsh.w r3, [fp, #2] - bool dashed = dsc->dash_gap && dsc->dash_width ? true : false; - 8bfe: f9bb 5006 ldrsh.w r5, [fp, #6] - int32_t w = dsc->width - 1; - 8c02: 3b01 subs r3, #1 - int32_t w_half1 = w_half0 + (w & 0x1); /*Compensate rounding error*/ - 8c04: f003 0801 and.w r8, r3, #1 - lv_disp_buf_t * vdb = lv_disp_get_buf(disp); - 8c08: 4607 mov r7, r0 - int32_t w_half0 = w >> 1; - 8c0a: ea4f 0963 mov.w r9, r3, asr #1 - int32_t w_half1 = w_half0 + (w & 0x1); /*Compensate rounding error*/ - 8c0e: eb08 0863 add.w r8, r8, r3, asr #1 - bool dashed = dsc->dash_gap && dsc->dash_width ? true : false; - 8c12: b125 cbz r5, 8c1e - 8c14: f9bb 5004 ldrsh.w r5, [fp, #4] - 8c18: 3d00 subs r5, #0 - 8c1a: bf18 it ne - 8c1c: 2501 movne r5, #1 - if(lv_draw_mask_get_cnt()) simple_mode = false; - 8c1e: 4b5c ldr r3, [pc, #368] ; (8d90 ) - 8c20: 4798 blx r3 - 8c22: bb20 cbnz r0, 8c6e - else if(dashed) simple_mode = false; - 8c24: f085 0201 eor.w r2, r5, #1 - draw_area.x1 = point1->x - w_half1; - 8c28: 9b05 ldr r3, [sp, #20] - draw_area.y1 = LV_MATH_MIN(point1->y, point2->y); - 8c2a: 9905 ldr r1, [sp, #20] - draw_area.x1 = point1->x - w_half1; - 8c2c: 881b ldrh r3, [r3, #0] - draw_area.y1 = LV_MATH_MIN(point1->y, point2->y); - 8c2e: f9b1 1002 ldrsh.w r1, [r1, #2] - draw_area.x1 = point1->x - w_half1; - 8c32: eba3 0808 sub.w r8, r3, r8 - draw_area.x2 = point1->x + w_half0; - 8c36: 444b add r3, r9 - 8c38: f8ad 309c strh.w r3, [sp, #156] ; 0x9c - draw_area.y1 = LV_MATH_MIN(point1->y, point2->y); - 8c3c: 9b06 ldr r3, [sp, #24] - draw_area.x1 = point1->x - w_half1; - 8c3e: f8ad 8098 strh.w r8, [sp, #152] ; 0x98 - draw_area.y1 = LV_MATH_MIN(point1->y, point2->y); - 8c42: f9b3 3002 ldrsh.w r3, [r3, #2] - 8c46: 428b cmp r3, r1 - 8c48: 4618 mov r0, r3 - 8c4a: bfa8 it ge - 8c4c: 4608 movge r0, r1 - draw_area.y2 = LV_MATH_MAX(point1->y, point2->y) - 1; - 8c4e: 428b cmp r3, r1 - 8c50: bfb8 it lt - 8c52: 460b movlt r3, r1 - 8c54: 3b01 subs r3, #1 - draw_area.y1 = LV_MATH_MIN(point1->y, point2->y); - 8c56: f8ad 009a strh.w r0, [sp, #154] ; 0x9a - draw_area.y2 = LV_MATH_MAX(point1->y, point2->y) - 1; - 8c5a: f8ad 309e strh.w r3, [sp, #158] ; 0x9e - if(simple_mode) { - 8c5e: b142 cbz r2, 8c72 - dsc->blend_mode); - 8c60: f89b 3009 ldrb.w r3, [fp, #9] - _lv_blend_fill(clip, &draw_area, - 8c64: f003 0303 and.w r3, r3, #3 - 8c68: e9cd 6301 strd r6, r3, [sp, #4] - 8c6c: e69d b.n 89aa - if(lv_draw_mask_get_cnt()) simple_mode = false; - 8c6e: 2200 movs r2, #0 - 8c70: e7da b.n 8c28 - is_common = _lv_area_intersect(&draw_area, clip, &draw_area); - 8c72: aa26 add r2, sp, #152 ; 0x98 - 8c74: a90a add r1, sp, #40 ; 0x28 - 8c76: 4610 mov r0, r2 - 8c78: 47a0 blx r4 - if(!is_common) return; - 8c7a: 2800 cmp r0, #0 - 8c7c: f43f ae9e beq.w 89bc - draw_area.x1 -= vdb->area.x1; - 8c80: 8a3b ldrh r3, [r7, #16] - 8c82: f8bd 4098 ldrh.w r4, [sp, #152] ; 0x98 - draw_area.y1 -= vdb->area.y1; - 8c86: f8b7 c012 ldrh.w ip, [r7, #18] - draw_area.x1 -= vdb->area.x1; - 8c8a: f9bd 0098 ldrsh.w r0, [sp, #152] ; 0x98 - draw_area.x2 -= vdb->area.x1; - 8c8e: f8bd 609c ldrh.w r6, [sp, #156] ; 0x9c - fill_area.x1 = draw_area.x1 + disp_area->x1; - 8c92: f8ad 00c4 strh.w r0, [sp, #196] ; 0xc4 - draw_area.x1 -= vdb->area.x1; - 8c96: 1ae2 subs r2, r4, r3 - 8c98: f8ad 2098 strh.w r2, [sp, #152] ; 0x98 - draw_area.y1 -= vdb->area.y1; - 8c9c: f9bd 209a ldrsh.w r2, [sp, #154] ; 0x9a - fill_area.y1 = draw_area.y1 + disp_area->y1; - 8ca0: f8ad 20c6 strh.w r2, [sp, #198] ; 0xc6 - draw_area.y1 -= vdb->area.y1; - 8ca4: eba2 010c sub.w r1, r2, ip - draw_area.x2 -= vdb->area.x1; - 8ca8: 1af3 subs r3, r6, r3 - draw_area.y1 -= vdb->area.y1; - 8caa: f8ad 109a strh.w r1, [sp, #154] ; 0x9a - draw_area.x2 -= vdb->area.x1; - 8cae: f9bd 109c ldrsh.w r1, [sp, #156] ; 0x9c - 8cb2: f8ad 309c strh.w r3, [sp, #156] ; 0x9c - draw_area.y2 -= vdb->area.y1; - 8cb6: f8bd 309e ldrh.w r3, [sp, #158] ; 0x9e - fill_area.x2 = draw_area.x2 + disp_area->x1; - 8cba: f8ad 10c8 strh.w r1, [sp, #200] ; 0xc8 - 8cbe: 3601 adds r6, #1 - draw_area.y2 -= vdb->area.y1; - 8cc0: eba3 030c sub.w r3, r3, ip - 8cc4: 1b36 subs r6, r6, r4 - 8cc6: f8ad 309e strh.w r3, [sp, #158] ; 0x9e - 8cca: b233 sxth r3, r6 - lv_opa_t * mask_buf = _lv_mem_buf_get(draw_area_w); - 8ccc: 4618 mov r0, r3 - 8cce: ee08 3a10 vmov s16, r3 - fill_area.y2 = fill_area.y1; - 8cd2: f8ad 20ca strh.w r2, [sp, #202] ; 0xca - lv_opa_t * mask_buf = _lv_mem_buf_get(draw_area_w); - 8cd6: 4b2f ldr r3, [pc, #188] ; (8d94 ) - 8cd8: 4798 blx r3 - 8cda: 4680 mov r8, r0 - if(dashed) { - 8cdc: b1c5 cbz r5, 8d10 - dash_start = (vdb->area.x1 + draw_area.x1) % (dsc->dash_gap + dsc->dash_width); - 8cde: f9bd 3098 ldrsh.w r3, [sp, #152] ; 0x98 - 8ce2: f9b7 4010 ldrsh.w r4, [r7, #16] - 8ce6: f9bb 2004 ldrsh.w r2, [fp, #4] - 8cea: 441c add r4, r3 - 8cec: f9bb 3006 ldrsh.w r3, [fp, #6] - 8cf0: 4413 add r3, r2 - 8cf2: fb94 f2f3 sdiv r2, r4, r3 - 8cf6: fb03 4412 mls r4, r3, r2, r4 - 8cfa: b224 sxth r4, r4 - for(h = draw_area.y1; h <= draw_area.y2; h++) { - 8cfc: f9bd 909a ldrsh.w r9, [sp, #154] ; 0x9a - _lv_blend_fill(clip, &fill_area, - 8d00: f8df a09c ldr.w sl, [pc, #156] ; 8da0 - for(h = draw_area.y1; h <= draw_area.y2; h++) { - 8d04: f9bd 309e ldrsh.w r3, [sp, #158] ; 0x9e - 8d08: 4599 cmp r9, r3 - 8d0a: dd03 ble.n 8d14 - _lv_mem_buf_release(mask_buf); - 8d0c: 4640 mov r0, r8 - 8d0e: e6fe b.n 8b0e - lv_style_int_t dash_start = 0; - 8d10: 462c mov r4, r5 - 8d12: e7f3 b.n 8cfc - _lv_memset_ff(mask_buf, draw_area_w); - 8d14: ee18 1a10 vmov r1, s16 - 8d18: 4b1f ldr r3, [pc, #124] ; (8d98 ) - lv_draw_mask_res_t mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w); - 8d1a: 4e20 ldr r6, [pc, #128] ; (8d9c ) - _lv_memset_ff(mask_buf, draw_area_w); - 8d1c: 4640 mov r0, r8 - 8d1e: 4798 blx r3 - lv_draw_mask_res_t mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w); - 8d20: f8bd 3098 ldrh.w r3, [sp, #152] ; 0x98 - 8d24: 8a7a ldrh r2, [r7, #18] - 8d26: 8a39 ldrh r1, [r7, #16] - 8d28: 444a add r2, r9 - 8d2a: 4419 add r1, r3 - 8d2c: b212 sxth r2, r2 - 8d2e: ee18 3a10 vmov r3, s16 - 8d32: b209 sxth r1, r1 - 8d34: 4640 mov r0, r8 - 8d36: 47b0 blx r6 - if(dashed) { - 8d38: b16d cbz r5, 8d56 - if(mask_res != LV_DRAW_MASK_RES_TRANSP) { - 8d3a: b150 cbz r0, 8d52 - if(dash_cnt > dsc->dash_width) { - 8d3c: f9bb 2004 ldrsh.w r2, [fp, #4] - if(dash_cnt >= dsc->dash_gap + dsc->dash_width) { - 8d40: f9bb 3006 ldrsh.w r3, [fp, #6] - 8d44: 4413 add r3, r2 - mask_res = LV_DRAW_MASK_RES_TRANSP; - 8d46: 42a2 cmp r2, r4 - 8d48: bfb8 it lt - 8d4a: 2000 movlt r0, #0 - dash_cnt = 0; - 8d4c: 429c cmp r4, r3 - 8d4e: bfa8 it ge - 8d50: 2400 movge r4, #0 - dash_cnt ++; - 8d52: 3401 adds r4, #1 - 8d54: b224 sxth r4, r4 - _lv_blend_fill(clip, &fill_area, - 8d56: 2300 movs r3, #0 - 8d58: 9302 str r3, [sp, #8] - 8d5a: f89b 3008 ldrb.w r3, [fp, #8] - 8d5e: f8bb 2000 ldrh.w r2, [fp] - 8d62: e9cd 0300 strd r0, r3, [sp] - 8d66: a931 add r1, sp, #196 ; 0xc4 - 8d68: 4643 mov r3, r8 - 8d6a: a80a add r0, sp, #40 ; 0x28 - 8d6c: 47d0 blx sl - fill_area.y1++; - 8d6e: f8bd 30c6 ldrh.w r3, [sp, #198] ; 0xc6 - 8d72: 3301 adds r3, #1 - 8d74: f8ad 30c6 strh.w r3, [sp, #198] ; 0xc6 - fill_area.y2++; - 8d78: f8bd 30ca ldrh.w r3, [sp, #202] ; 0xca - 8d7c: 3301 adds r3, #1 - 8d7e: f8ad 30ca strh.w r3, [sp, #202] ; 0xca - for(h = draw_area.y1; h <= draw_area.y2; h++) { - 8d82: f109 0901 add.w r9, r9, #1 - 8d86: e7bd b.n 8d04 - 8d88: 0000526d .word 0x0000526d - 8d8c: 0000dc65 .word 0x0000dc65 - 8d90: 00009a75 .word 0x00009a75 - 8d94: 0000f145 .word 0x0000f145 - 8d98: 0000f305 .word 0x0000f305 - 8d9c: 000099e5 .word 0x000099e5 - 8da0: 00006475 .word 0x00006475 - lv_draw_line_dsc_t * dsc) -{ - /*Keep the great y in p1*/ - lv_point_t p1; - lv_point_t p2; - if(point1->y < point2->y) { - 8da4: 45c1 cmp r9, r8 - 8da6: db05 blt.n 8db4 - 8da8: 464b mov r3, r9 - 8daa: 46c1 mov r9, r8 - 8dac: 4698 mov r8, r3 - 8dae: 463b mov r3, r7 - 8db0: 4637 mov r7, r6 - 8db2: 461e mov r6, r3 - p2.y = point1->y; - p1.x = point2->x; - p2.x = point1->x; - } - - int32_t xdiff = p2.x - p1.x; - 8db4: 1bf3 subs r3, r6, r7 - 8db6: 9309 str r3, [sp, #36] ; 0x24 - int32_t ydiff = p2.y - p1.y; - 8db8: eba8 0309 sub.w r3, r8, r9 - 8dbc: 9308 str r3, [sp, #32] - bool flat = LV_MATH_ABS(xdiff) > LV_MATH_ABS(ydiff) ? true : false; - 8dbe: 1bf3 subs r3, r6, r7 - 8dc0: ea83 72e3 eor.w r2, r3, r3, asr #31 - 8dc4: eba2 72e3 sub.w r2, r2, r3, asr #31 - 8dc8: 9b08 ldr r3, [sp, #32] - 8dca: 9207 str r2, [sp, #28] - 8dcc: ea83 7ae3 eor.w sl, r3, r3, asr #31 - 8dd0: ebaa 7ae3 sub.w sl, sl, r3, asr #31 - 181, - }; - - int32_t w = dsc->width; - int32_t wcorr_i = 0; - if(flat) wcorr_i = (LV_MATH_ABS(ydiff) << 5) / LV_MATH_ABS(xdiff); - 8dd4: 4552 cmp r2, sl - 8dd6: 4613 mov r3, r2 - else wcorr_i = (LV_MATH_ABS(xdiff) << 5) / LV_MATH_ABS(ydiff); - 8dd8: bfd8 it le - 8dda: 9b07 ldrle r3, [sp, #28] - int32_t w = dsc->width; - 8ddc: f9bb 5002 ldrsh.w r5, [fp, #2] - if(flat) wcorr_i = (LV_MATH_ABS(ydiff) << 5) / LV_MATH_ABS(xdiff); - 8de0: bfca itet gt - 8de2: ea4f 134a movgt.w r3, sl, lsl #5 - else wcorr_i = (LV_MATH_ABS(xdiff) << 5) / LV_MATH_ABS(ydiff); - 8de6: 015b lslle r3, r3, #5 - if(flat) wcorr_i = (LV_MATH_ABS(ydiff) << 5) / LV_MATH_ABS(xdiff); - 8de8: fbb3 f3f2 udivgt r3, r3, r2 - - w = (w * wcorr[wcorr_i] + 63) >> 7; /*+ 63 for rounding*/ - 8dec: 4ab3 ldr r2, [pc, #716] ; (90bc ) - else wcorr_i = (LV_MATH_ABS(xdiff) << 5) / LV_MATH_ABS(ydiff); - 8dee: bfd8 it le - 8df0: fbb3 f3fa udivle r3, r3, sl - w = (w * wcorr[wcorr_i] + 63) >> 7; /*+ 63 for rounding*/ - 8df4: 5cd2 ldrb r2, [r2, r3] - 8df6: 233f movs r3, #63 ; 0x3f - 8df8: fb15 3502 smlabb r5, r5, r2, r3 - int32_t w_half0 = w >> 1; - int32_t w_half1 = w_half0 + (w & 0x1); /*Compensate rounding error*/ - - lv_area_t draw_area; - draw_area.x1 = LV_MATH_MIN(p1.x, p2.x) - w; - 8dfc: f3c5 13cf ubfx r3, r5, #7, #16 - 8e00: 42be cmp r6, r7 - 8e02: bfd4 ite le - 8e04: ebc3 0206 rsble r2, r3, r6 - 8e08: ebc3 0207 rsbgt r2, r3, r7 - 8e0c: f8ad 2030 strh.w r2, [sp, #48] ; 0x30 - draw_area.x2 = LV_MATH_MAX(p1.x, p2.x) + w; - 8e10: 42be cmp r6, r7 - 8e12: bfac ite ge - 8e14: 199a addge r2, r3, r6 - 8e16: 19da addlt r2, r3, r7 - 8e18: f8ad 2034 strh.w r2, [sp, #52] ; 0x34 - draw_area.y2 = LV_MATH_MAX(p1.y, p2.y) + w; - - /* Get the union of `coords` and `clip`*/ - /* `clip` is already truncated to the `vdb` size - * in 'lv_refr_area' function */ - bool is_common = _lv_area_intersect(&draw_area, &draw_area, clip); - 8e1c: a90c add r1, sp, #48 ; 0x30 - draw_area.y1 = LV_MATH_MIN(p1.y, p2.y) - w; - 8e1e: 45c8 cmp r8, r9 - 8e20: bfd4 ite le - 8e22: ebc3 0208 rsble r2, r3, r8 - 8e26: ebc3 0209 rsbgt r2, r3, r9 - draw_area.y2 = LV_MATH_MAX(p1.y, p2.y) + w; - 8e2a: 45c8 cmp r8, r9 - 8e2c: bfac ite ge - 8e2e: 4443 addge r3, r8 - 8e30: 444b addlt r3, r9 - draw_area.y1 = LV_MATH_MIN(p1.y, p2.y) - w; - 8e32: f8ad 2032 strh.w r2, [sp, #50] ; 0x32 - draw_area.y2 = LV_MATH_MAX(p1.y, p2.y) + w; - 8e36: f8ad 3036 strh.w r3, [sp, #54] ; 0x36 - bool is_common = _lv_area_intersect(&draw_area, &draw_area, clip); - 8e3a: aa0a add r2, sp, #40 ; 0x28 - 8e3c: 4ba0 ldr r3, [pc, #640] ; (90c0 ) - 8e3e: 4608 mov r0, r1 - w = (w * wcorr[wcorr_i] + 63) >> 7; /*+ 63 for rounding*/ - 8e40: 11ec asrs r4, r5, #7 - bool is_common = _lv_area_intersect(&draw_area, &draw_area, clip); - 8e42: 4798 blx r3 - if(is_common == false) return; - 8e44: 2800 cmp r0, #0 - 8e46: f43f adb9 beq.w 89bc - lv_draw_mask_line_param_t mask_left_param; - lv_draw_mask_line_param_t mask_right_param; - lv_draw_mask_line_param_t mask_top_param; - lv_draw_mask_line_param_t mask_bottom_param; - - if(flat) { - 8e4a: 9b07 ldr r3, [sp, #28] - int32_t w_half1 = w_half0 + (w & 0x1); /*Compensate rounding error*/ - 8e4c: f004 0401 and.w r4, r4, #1 - 8e50: eb04 2425 add.w r4, r4, r5, asr #8 - if(flat) { - 8e54: 4553 cmp r3, sl - if(xdiff > 0) { - lv_draw_mask_line_points_init(&mask_left_param, p1.x, p1.y - w_half0, p2.x, p2.y - w_half0, - LV_DRAW_MASK_LINE_SIDE_LEFT); - lv_draw_mask_line_points_init(&mask_right_param, p1.x, p1.y + w_half1, p2.x, p2.y + w_half1, - 8e56: b2a4 uxth r4, r4 - lv_draw_mask_line_points_init(&mask_left_param, p1.x, p1.y - w_half0, p2.x, p2.y - w_half0, - 8e58: f3c5 250f ubfx r5, r5, #8, #16 - if(flat) { - 8e5c: f340 80ed ble.w 903a - lv_draw_mask_line_points_init(&mask_right_param, p1.x, p1.y + w_half1, p2.x, p2.y + w_half1, - 8e60: fa14 f389 uxtah r3, r4, r9 - 8e64: b21b sxth r3, r3 - 8e66: ee08 3a10 vmov s16, r3 - if(xdiff > 0) { - 8e6a: 1bf3 subs r3, r6, r7 - lv_draw_mask_line_points_init(&mask_left_param, p1.x, p1.y - w_half0, p2.x, p2.y - w_half0, - 8e6c: eba9 0a05 sub.w sl, r9, r5 - lv_draw_mask_line_points_init(&mask_right_param, p1.x, p1.y + w_half1, p2.x, p2.y + w_half1, - 8e70: fa14 f488 uxtah r4, r4, r8 - lv_draw_mask_line_points_init(&mask_left_param, p1.x, p1.y - w_half0, p2.x, p2.y - w_half0, - 8e74: eba8 0505 sub.w r5, r8, r5 - if(xdiff > 0) { - 8e78: 2b00 cmp r3, #0 - 8e7a: f04f 0300 mov.w r3, #0 - lv_draw_mask_line_points_init(&mask_right_param, p1.x, p1.y + w_half1, p2.x, p2.y + w_half1, - 8e7e: b224 sxth r4, r4 - lv_draw_mask_line_points_init(&mask_left_param, p1.x, p1.y - w_half0, p2.x, p2.y - w_half0, - 8e80: fa0f fa8a sxth.w sl, sl - 8e84: b22d sxth r5, r5 - 8e86: 9301 str r3, [sp, #4] - if(xdiff > 0) { - 8e88: f340 80c6 ble.w 9018 - lv_draw_mask_line_points_init(&mask_left_param, p1.x, p1.y - w_half0, p2.x, p2.y - w_half0, - 8e8c: 9500 str r5, [sp, #0] - 8e8e: 4633 mov r3, r6 - 8e90: 4652 mov r2, sl - 8e92: 4639 mov r1, r7 - 8e94: a810 add r0, sp, #64 ; 0x40 - 8e96: 4d8b ldr r5, [pc, #556] ; (90c4 ) - 8e98: 47a8 blx r5 - lv_draw_mask_line_points_init(&mask_right_param, p1.x, p1.y + w_half1, p2.x, p2.y + w_half1, - 8e9a: 2301 movs r3, #1 - 8e9c: e9cd 4300 strd r4, r3, [sp] - 8ea0: ee18 2a10 vmov r2, s16 - 8ea4: 4633 mov r3, r6 - 8ea6: 4639 mov r1, r7 - 8ea8: a81b add r0, sp, #108 ; 0x6c - 8eaa: 47a8 blx r5 - LV_DRAW_MASK_LINE_SIDE_RIGHT); - } - - /*Use the normal vector for the endings*/ - - int16_t mask_left_id = lv_draw_mask_add(&mask_left_param, NULL); - 8eac: f8df a240 ldr.w sl, [pc, #576] ; 90f0 - 8eb0: 2100 movs r1, #0 - 8eb2: a810 add r0, sp, #64 ; 0x40 - 8eb4: 47d0 blx sl - int16_t mask_right_id = lv_draw_mask_add(&mask_right_param, NULL); - 8eb6: 2100 movs r1, #0 - int16_t mask_left_id = lv_draw_mask_add(&mask_left_param, NULL); - 8eb8: ee09 0a10 vmov s18, r0 - int16_t mask_right_id = lv_draw_mask_add(&mask_right_param, NULL); - 8ebc: a81b add r0, sp, #108 ; 0x6c - 8ebe: 47d0 blx sl - int16_t mask_top_id = LV_MASK_ID_INV; - int16_t mask_bottom_id = LV_MASK_ID_INV; - - if(!dsc->raw_end) { - 8ec0: f89b 5009 ldrb.w r5, [fp, #9] - 8ec4: f015 0510 ands.w r5, r5, #16 - int16_t mask_right_id = lv_draw_mask_add(&mask_right_param, NULL); - 8ec8: ee09 0a90 vmov s19, r0 - if(!dsc->raw_end) { - 8ecc: f040 80cf bne.w 906e - lv_draw_mask_line_points_init(&mask_top_param, p1.x, p1.y, p1.x - ydiff, p1.y + xdiff, LV_DRAW_MASK_LINE_SIDE_BOTTOM); - 8ed0: 2203 movs r2, #3 - 8ed2: f8bd 4020 ldrh.w r4, [sp, #32] - 8ed6: 9201 str r2, [sp, #4] - 8ed8: 1bf2 subs r2, r6, r7 - 8eda: f8bd 3024 ldrh.w r3, [sp, #36] ; 0x24 - 8ede: 9307 str r3, [sp, #28] - 8ee0: fa19 f282 uxtah r2, r9, r2 - 8ee4: 1b3b subs r3, r7, r4 - 8ee6: b212 sxth r2, r2 - 8ee8: 4639 mov r1, r7 - 8eea: 9200 str r2, [sp, #0] - 8eec: 4f75 ldr r7, [pc, #468] ; (90c4 ) - 8eee: b21b sxth r3, r3 - 8ef0: 464a mov r2, r9 - 8ef2: a826 add r0, sp, #152 ; 0x98 - 8ef4: 47b8 blx r7 - lv_draw_mask_line_points_init(&mask_bottom_param, p2.x, p2.y, p2.x - ydiff, p2.y + xdiff, LV_DRAW_MASK_LINE_SIDE_TOP); - 8ef6: 2202 movs r2, #2 - 8ef8: 9201 str r2, [sp, #4] - 8efa: 9a07 ldr r2, [sp, #28] - 8efc: 4442 add r2, r8 - 8efe: b212 sxth r2, r2 - 8f00: 1b33 subs r3, r6, r4 - 8f02: b21b sxth r3, r3 - 8f04: 9200 str r2, [sp, #0] - 8f06: 4631 mov r1, r6 - 8f08: 4642 mov r2, r8 - 8f0a: a831 add r0, sp, #196 ; 0xc4 - 8f0c: 47b8 blx r7 - mask_top_id = lv_draw_mask_add(&mask_top_param, NULL); - 8f0e: 4629 mov r1, r5 - 8f10: a826 add r0, sp, #152 ; 0x98 - 8f12: 47d0 blx sl - mask_bottom_id = lv_draw_mask_add(&mask_bottom_param, NULL); - 8f14: 4629 mov r1, r5 - mask_top_id = lv_draw_mask_add(&mask_top_param, NULL); - 8f16: 9009 str r0, [sp, #36] ; 0x24 - mask_bottom_id = lv_draw_mask_add(&mask_bottom_param, NULL); - 8f18: a831 add r0, sp, #196 ; 0xc4 - 8f1a: 47d0 blx sl - 8f1c: 4682 mov sl, r0 - } - - lv_disp_t * disp = _lv_refr_get_disp_refreshing(); - 8f1e: 4b6a ldr r3, [pc, #424] ; (90c8 ) - * So deal with it only with steep lines. */ - int32_t draw_area_w = lv_area_get_width(&draw_area); - - /*Draw the background line by line*/ - int32_t h; - size_t mask_buf_size = LV_MATH_MIN(lv_area_get_size(&draw_area), LV_HOR_RES_MAX); - 8f20: 4e6a ldr r6, [pc, #424] ; (90cc ) - lv_disp_t * disp = _lv_refr_get_disp_refreshing(); - 8f22: 4798 blx r3 - lv_disp_buf_t * vdb = lv_disp_get_buf(disp); - 8f24: 4b6a ldr r3, [pc, #424] ; (90d0 ) - 8f26: 4798 blx r3 - draw_area.x1 -= disp_area->x1; - 8f28: f8bd 2030 ldrh.w r2, [sp, #48] ; 0x30 - 8f2c: 8a03 ldrh r3, [r0, #16] - draw_area.x2 -= disp_area->x1; - 8f2e: f8bd 4034 ldrh.w r4, [sp, #52] ; 0x34 - draw_area.x1 -= disp_area->x1; - 8f32: 1ad1 subs r1, r2, r3 - draw_area.x2 -= disp_area->x1; - 8f34: 1ae3 subs r3, r4, r3 - draw_area.x1 -= disp_area->x1; - 8f36: f8ad 1030 strh.w r1, [sp, #48] ; 0x30 - draw_area.x2 -= disp_area->x1; - 8f3a: f8ad 3034 strh.w r3, [sp, #52] ; 0x34 - draw_area.y1 -= disp_area->y1; - 8f3e: 8a41 ldrh r1, [r0, #18] - draw_area.y2 -= disp_area->y1; - 8f40: f8bd 3036 ldrh.w r3, [sp, #54] ; 0x36 - lv_disp_buf_t * vdb = lv_disp_get_buf(disp); - 8f44: 4605 mov r5, r0 - draw_area.y1 -= disp_area->y1; - 8f46: f8bd 0032 ldrh.w r0, [sp, #50] ; 0x32 - 8f4a: 3401 adds r4, #1 - 8f4c: 1a40 subs r0, r0, r1 - draw_area.y2 -= disp_area->y1; - 8f4e: 1a5b subs r3, r3, r1 - 8f50: 1aa4 subs r4, r4, r2 - draw_area.y1 -= disp_area->y1; - 8f52: f8ad 0032 strh.w r0, [sp, #50] ; 0x32 - draw_area.y2 -= disp_area->y1; - 8f56: f8ad 3036 strh.w r3, [sp, #54] ; 0x36 - size_t mask_buf_size = LV_MATH_MIN(lv_area_get_size(&draw_area), LV_HOR_RES_MAX); - 8f5a: a80c add r0, sp, #48 ; 0x30 - 8f5c: b223 sxth r3, r4 - 8f5e: 9307 str r3, [sp, #28] - 8f60: 47b0 blx r6 - 8f62: f5b0 7ff0 cmp.w r0, #480 ; 0x1e0 - 8f66: f080 8087 bcs.w 9078 - 8f6a: a80c add r0, sp, #48 ; 0x30 - 8f6c: 47b0 blx r6 - 8f6e: 4607 mov r7, r0 - lv_opa_t * mask_buf = _lv_mem_buf_get(mask_buf_size); - 8f70: 4b58 ldr r3, [pc, #352] ; (90d4 ) - 8f72: 4638 mov r0, r7 - 8f74: 4798 blx r3 - - lv_area_t fill_area; - fill_area.x1 = draw_area.x1 + disp_area->x1; - 8f76: 8a2b ldrh r3, [r5, #16] - 8f78: f8bd 2030 ldrh.w r2, [sp, #48] ; 0x30 - 8f7c: 441a add r2, r3 - 8f7e: b212 sxth r2, r2 - 8f80: 9208 str r2, [sp, #32] - 8f82: f8ad 2038 strh.w r2, [sp, #56] ; 0x38 - fill_area.x2 = draw_area.x2 + disp_area->x1; - 8f86: f8bd 2034 ldrh.w r2, [sp, #52] ; 0x34 - 8f8a: 4413 add r3, r2 - 8f8c: f8ad 303c strh.w r3, [sp, #60] ; 0x3c - fill_area.y1 = draw_area.y1 + disp_area->y1; - 8f90: 8a6a ldrh r2, [r5, #18] - 8f92: f8bd 3032 ldrh.w r3, [sp, #50] ; 0x32 - 8f96: 4413 add r3, r2 - 8f98: b21b sxth r3, r3 - 8f9a: f8ad 303a strh.w r3, [sp, #58] ; 0x3a - fill_area.y2 = fill_area.y1; - 8f9e: f8ad 303e strh.w r3, [sp, #62] ; 0x3e - - int32_t x = vdb->area.x1 + draw_area.x1; - - uint32_t mask_p = 0; - - _lv_memset_ff(mask_buf, mask_buf_size); - 8fa2: 4639 mov r1, r7 - 8fa4: 4b4c ldr r3, [pc, #304] ; (90d8 ) - lv_opa_t * mask_buf = _lv_mem_buf_get(mask_buf_size); - 8fa6: 4606 mov r6, r0 - _lv_memset_ff(mask_buf, mask_buf_size); - 8fa8: 4798 blx r3 - /*Fill the first row with 'color'*/ - for(h = draw_area.y1 + disp_area->y1; h <= draw_area.y2 + disp_area->y1; h++) { - 8faa: f9bd 8032 ldrsh.w r8, [sp, #50] ; 0x32 - 8fae: f9b5 3012 ldrsh.w r3, [r5, #18] - uint32_t mask_p = 0; - 8fb2: f04f 0900 mov.w r9, #0 - for(h = draw_area.y1 + disp_area->y1; h <= draw_area.y2 + disp_area->y1; h++) { - 8fb6: 4498 add r8, r3 - 8fb8: f9bd 3036 ldrsh.w r3, [sp, #54] ; 0x36 - 8fbc: f9b5 2012 ldrsh.w r2, [r5, #18] - 8fc0: 4413 add r3, r2 - 8fc2: 4598 cmp r8, r3 - 8fc4: dd5b ble.n 907e - _lv_memset_ff(mask_buf, mask_buf_size); - } - } - - /*Flush the last part*/ - if(fill_area.y1 != fill_area.y2) { - 8fc6: f9bd 303e ldrsh.w r3, [sp, #62] ; 0x3e - 8fca: f9bd 203a ldrsh.w r2, [sp, #58] ; 0x3a - 8fce: 429a cmp r2, r3 - 8fd0: d013 beq.n 8ffa - fill_area.y2--; - 8fd2: 3b01 subs r3, #1 - 8fd4: f8ad 303e strh.w r3, [sp, #62] ; 0x3e - _lv_blend_fill(&fill_area, clip, - dsc->color, mask_buf, LV_DRAW_MASK_RES_CHANGED, dsc->opa, - dsc->blend_mode); - 8fd8: f89b 3009 ldrb.w r3, [fp, #9] - _lv_blend_fill(&fill_area, clip, - 8fdc: f8bb 2000 ldrh.w r2, [fp] - 8fe0: 4c3e ldr r4, [pc, #248] ; (90dc ) - 8fe2: f003 0303 and.w r3, r3, #3 - 8fe6: 9302 str r3, [sp, #8] - 8fe8: f89b 3008 ldrb.w r3, [fp, #8] - 8fec: 9301 str r3, [sp, #4] - 8fee: 2302 movs r3, #2 - 8ff0: 9300 str r3, [sp, #0] - 8ff2: a90a add r1, sp, #40 ; 0x28 - 8ff4: 4633 mov r3, r6 - 8ff6: a80e add r0, sp, #56 ; 0x38 - 8ff8: 47a0 blx r4 - - } - - _lv_mem_buf_release(mask_buf); - 8ffa: 4b39 ldr r3, [pc, #228] ; (90e0 ) - - lv_draw_mask_remove_id(mask_left_id); - 8ffc: 4c39 ldr r4, [pc, #228] ; (90e4 ) - _lv_mem_buf_release(mask_buf); - 8ffe: 4630 mov r0, r6 - 9000: 4798 blx r3 - lv_draw_mask_remove_id(mask_left_id); - 9002: ee19 0a10 vmov r0, s18 - 9006: 47a0 blx r4 - lv_draw_mask_remove_id(mask_right_id); - 9008: ee19 0a90 vmov r0, s19 - 900c: 47a0 blx r4 - lv_draw_mask_remove_id(mask_top_id); - 900e: 9809 ldr r0, [sp, #36] ; 0x24 - 9010: 47a0 blx r4 - lv_draw_mask_remove_id(mask_bottom_id); - 9012: 4650 mov r0, sl - 9014: 47a0 blx r4 - 9016: e4d1 b.n 89bc - lv_draw_mask_line_points_init(&mask_left_param, p1.x, p1.y + w_half1, p2.x, p2.y + w_half1, - 9018: ee18 2a10 vmov r2, s16 - 901c: 9400 str r4, [sp, #0] - 901e: 4633 mov r3, r6 - 9020: 4639 mov r1, r7 - 9022: 4c28 ldr r4, [pc, #160] ; (90c4 ) - 9024: a810 add r0, sp, #64 ; 0x40 - 9026: 47a0 blx r4 - lv_draw_mask_line_points_init(&mask_right_param, p1.x, p1.y - w_half0, p2.x, p2.y - w_half0, - 9028: 2301 movs r3, #1 - 902a: e9cd 5300 strd r5, r3, [sp] - 902e: 4652 mov r2, sl - 9030: 4633 mov r3, r6 - 9032: 4639 mov r1, r7 - lv_draw_mask_line_points_init(&mask_right_param, p1.x - w_half0, p1.y, p2.x - w_half0, p2.y, - 9034: a81b add r0, sp, #108 ; 0x6c - 9036: 47a0 blx r4 - 9038: e738 b.n 8eac - lv_draw_mask_line_points_init(&mask_left_param, p1.x + w_half1, p1.y, p2.x + w_half1, p2.y, - 903a: fa14 f386 uxtah r3, r4, r6 - 903e: 2200 movs r2, #0 - 9040: fa14 f487 uxtah r4, r4, r7 - 9044: b221 sxth r1, r4 - 9046: e9cd 8200 strd r8, r2, [sp] - 904a: b21b sxth r3, r3 - 904c: 464a mov r2, r9 - 904e: 4c1d ldr r4, [pc, #116] ; (90c4 ) - 9050: a810 add r0, sp, #64 ; 0x40 - 9052: 47a0 blx r4 - 9054: fa1f fa86 uxth.w sl, r6 - lv_draw_mask_line_points_init(&mask_right_param, p1.x - w_half0, p1.y, p2.x - w_half0, p2.y, - 9058: b2ba uxth r2, r7 - 905a: 1b51 subs r1, r2, r5 - 905c: ebaa 0305 sub.w r3, sl, r5 - 9060: 2201 movs r2, #1 - 9062: e9cd 8200 strd r8, r2, [sp] - 9066: b21b sxth r3, r3 - 9068: 464a mov r2, r9 - 906a: b209 sxth r1, r1 - 906c: e7e2 b.n 9034 - int16_t mask_bottom_id = LV_MASK_ID_INV; - 906e: f04f 3aff mov.w sl, #4294967295 ; 0xffffffff - int16_t mask_top_id = LV_MASK_ID_INV; - 9072: f8cd a024 str.w sl, [sp, #36] ; 0x24 - 9076: e752 b.n 8f1e - size_t mask_buf_size = LV_MATH_MIN(lv_area_get_size(&draw_area), LV_HOR_RES_MAX); - 9078: f44f 77f0 mov.w r7, #480 ; 0x1e0 - 907c: e778 b.n 8f70 - lv_draw_mask_res_t mask_res = lv_draw_mask_apply(&mask_buf[mask_p], x, h, draw_area_w); - 907e: eb06 0309 add.w r3, r6, r9 - 9082: ee08 3a10 vmov s16, r3 - 9086: 9908 ldr r1, [sp, #32] - 9088: 9b07 ldr r3, [sp, #28] - 908a: 4c17 ldr r4, [pc, #92] ; (90e8 ) - 908c: ee18 0a10 vmov r0, s16 - 9090: fa0f f288 sxth.w r2, r8 - 9094: 47a0 blx r4 - if(mask_res == LV_DRAW_MASK_RES_TRANSP) { - 9096: b920 cbnz r0, 90a2 - _lv_memset_00(&mask_buf[mask_p], draw_area_w); - 9098: 9907 ldr r1, [sp, #28] - 909a: 4b14 ldr r3, [pc, #80] ; (90ec ) - 909c: ee18 0a10 vmov r0, s16 - 90a0: 4798 blx r3 - mask_p += draw_area_w; - 90a2: 9b07 ldr r3, [sp, #28] - 90a4: 4499 add r9, r3 - if((uint32_t) mask_p + draw_area_w < mask_buf_size) { - 90a6: 444b add r3, r9 - 90a8: 429f cmp r7, r3 - 90aa: d923 bls.n 90f4 - fill_area.y2 ++; - 90ac: f8bd 303e ldrh.w r3, [sp, #62] ; 0x3e - 90b0: 3301 adds r3, #1 - 90b2: f8ad 303e strh.w r3, [sp, #62] ; 0x3e - for(h = draw_area.y1 + disp_area->y1; h <= draw_area.y2 + disp_area->y1; h++) { - 90b6: f108 0801 add.w r8, r8, #1 - 90ba: e77d b.n 8fb8 - 90bc: 00027766 .word 0x00027766 - 90c0: 0000e111 .word 0x0000e111 - 90c4: 00009a91 .word 0x00009a91 - 90c8: 0000526d .word 0x0000526d - 90cc: 0000e0f5 .word 0x0000e0f5 - 90d0: 0000dc65 .word 0x0000dc65 - 90d4: 0000f145 .word 0x0000f145 - 90d8: 0000f305 .word 0x0000f305 - 90dc: 00006475 .word 0x00006475 - 90e0: 0000edf9 .word 0x0000edf9 - 90e4: 00009a25 .word 0x00009a25 - 90e8: 000099e5 .word 0x000099e5 - 90ec: 0000f2a9 .word 0x0000f2a9 - 90f0: 00009995 .word 0x00009995 - dsc->blend_mode); - 90f4: f89b 3009 ldrb.w r3, [fp, #9] - _lv_blend_fill(&fill_area, clip, - 90f8: f8bb 2000 ldrh.w r2, [fp] - 90fc: 4c0d ldr r4, [pc, #52] ; (9134 ) - 90fe: f003 0303 and.w r3, r3, #3 - 9102: 9302 str r3, [sp, #8] - 9104: f89b 3008 ldrb.w r3, [fp, #8] - 9108: 9301 str r3, [sp, #4] - 910a: 2302 movs r3, #2 - 910c: 9300 str r3, [sp, #0] - 910e: a90a add r1, sp, #40 ; 0x28 - 9110: 4633 mov r3, r6 - 9112: a80e add r0, sp, #56 ; 0x38 - 9114: 47a0 blx r4 - fill_area.y1 = fill_area.y2 + 1; - 9116: f8bd 303e ldrh.w r3, [sp, #62] ; 0x3e - 911a: 3301 adds r3, #1 - 911c: b21b sxth r3, r3 - 911e: f8ad 303a strh.w r3, [sp, #58] ; 0x3a - fill_area.y2 = fill_area.y1; - 9122: f8ad 303e strh.w r3, [sp, #62] ; 0x3e - _lv_memset_ff(mask_buf, mask_buf_size); - 9126: 4639 mov r1, r7 - 9128: 4b03 ldr r3, [pc, #12] ; (9138 ) - 912a: 4630 mov r0, r6 - 912c: 4798 blx r3 - mask_p = 0; - 912e: f04f 0900 mov.w r9, #0 - 9132: e7c0 b.n 90b6 - 9134: 00006475 .word 0x00006475 - 9138: 0000f305 .word 0x0000f305 - -0000913c : -} - - -LV_ATTRIBUTE_FAST_MEM static inline lv_opa_t mask_mix(lv_opa_t mask_act, lv_opa_t mask_new) -{ - if(mask_new >= LV_OPA_MAX) return mask_act; - 913c: 29f9 cmp r1, #249 ; 0xf9 - 913e: d80a bhi.n 9156 - if(mask_new <= LV_OPA_MIN) return 0; - 9140: 2905 cmp r1, #5 - 9142: d907 bls.n 9154 - - return LV_MATH_UDIV255(mask_act * mask_new);// >> 8); - 9144: fb10 f001 smulbb r0, r0, r1 - 9148: f248 0381 movw r3, #32897 ; 0x8081 - 914c: 4358 muls r0, r3 - 914e: f3c0 50c7 ubfx r0, r0, #23, #8 - 9152: 4770 bx lr - if(mask_new <= LV_OPA_MIN) return 0; - 9154: 2000 movs r0, #0 -} - 9156: 4770 bx lr - -00009158 : -{ - 9158: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} - 915c: 9e08 ldr r6, [sp, #32] - 915e: 461c mov r4, r3 - abs_y -= p->origo.y; - 9160: 8ab3 ldrh r3, [r6, #20] - 9162: 1ad2 subs r2, r2, r3 - abs_x -= p->origo.x; - 9164: 8a73 ldrh r3, [r6, #18] - 9166: 1ac9 subs r1, r1, r3 - 9168: b20f sxth r7, r1 - if(p->flat) { - 916a: f896 3028 ldrb.w r3, [r6, #40] ; 0x28 - if(p->steep == 0) { - 916e: 6a31 ldr r1, [r6, #32] -{ - 9170: 4605 mov r5, r0 - abs_y -= p->origo.y; - 9172: b212 sxth r2, r2 - if(p->flat) { - 9174: f003 0001 and.w r0, r3, #1 - if(p->steep == 0) { - 9178: bb99 cbnz r1, 91e2 - if(p->cfg.side == LV_DRAW_MASK_LINE_SIDE_LEFT || - 917a: 7c33 ldrb r3, [r6, #16] - 917c: f003 0602 and.w r6, r3, #2 - if(p->flat) { - 9180: b180 cbz r0, 91a4 - if(p->cfg.side == LV_DRAW_MASK_LINE_SIDE_LEFT || - 9182: b13e cbz r6, 9194 - else if(p->cfg.side == LV_DRAW_MASK_LINE_SIDE_TOP && abs_y + 1 < 0) return LV_DRAW_MASK_RES_FULL_COVER; - 9184: f003 0303 and.w r3, r3, #3 - 9188: 2b02 cmp r3, #2 - 918a: d105 bne.n 9198 - p->cfg.side == LV_DRAW_MASK_LINE_SIDE_RIGHT) return LV_DRAW_MASK_RES_FULL_COVER; - 918c: 3201 adds r2, #1 - 918e: bfac ite ge - 9190: 2000 movge r0, #0 - 9192: 2001 movlt r0, #1 -} - 9194: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} - else if(p->cfg.side == LV_DRAW_MASK_LINE_SIDE_BOTTOM && abs_y > 0) return LV_DRAW_MASK_RES_FULL_COVER; - 9198: 2b03 cmp r3, #3 - 919a: d101 bne.n 91a0 - 919c: 2a00 cmp r2, #0 - 919e: dcf9 bgt.n 9194 - return LV_DRAW_MASK_RES_TRANSP; - 91a0: 2000 movs r0, #0 - 91a2: e7f7 b.n 9194 - if(p->cfg.side == LV_DRAW_MASK_LINE_SIDE_TOP || - 91a4: 2e00 cmp r6, #0 - 91a6: f040 8187 bne.w 94b8 - else if(p->cfg.side == LV_DRAW_MASK_LINE_SIDE_RIGHT && abs_x > 0) return LV_DRAW_MASK_RES_FULL_COVER; - 91aa: f003 0003 and.w r0, r3, #3 - 91ae: 2801 cmp r0, #1 - 91b0: d10a bne.n 91c8 - 91b2: 2f00 cmp r7, #0 - 91b4: dcee bgt.n 9194 - if(abs_x + len < 0) return LV_DRAW_MASK_RES_TRANSP; - 91b6: 42e7 cmn r7, r4 - 91b8: d4f2 bmi.n 91a0 - if(k < 0) k = 0; - 91ba: 2f00 cmp r7, #0 - 91bc: f300 817e bgt.w 94bc - int32_t k = - abs_x; - 91c0: 4279 negs r1, r7 - if(k >= len) return LV_DRAW_MASK_RES_TRANSP; - 91c2: 428c cmp r4, r1 - 91c4: ddec ble.n 91a0 - 91c6: e09b b.n 9300 - else if(p->cfg.side == LV_DRAW_MASK_LINE_SIDE_LEFT) { - 91c8: 2800 cmp r0, #0 - 91ca: d1f4 bne.n 91b6 - if(abs_x + len < 0) return LV_DRAW_MASK_RES_FULL_COVER; - 91cc: 1939 adds r1, r7, r4 - 91ce: f100 8173 bmi.w 94b8 - if(k < 0) return LV_DRAW_MASK_RES_TRANSP; - 91d2: 2f00 cmp r7, #0 - 91d4: dce4 bgt.n 91a0 - int32_t k = - abs_x; - 91d6: 4278 negs r0, r7 - if(k >= 0 && k < len) _lv_memset_00(&mask_buf[k], len - k); - 91d8: 42a0 cmp r0, r4 - 91da: f2c0 809c blt.w 9316 - return LV_DRAW_MASK_RES_CHANGED; - 91de: 2002 movs r0, #2 - 91e0: e7d8 b.n 9194 - if(p->flat) { - 91e2: f003 0c02 and.w ip, r3, #2 - 91e6: 2800 cmp r0, #0 - 91e8: f000 8097 beq.w 931a - y_at_x = (int32_t)((int32_t)p->yx_steep * abs_x) >> 10; - 91ec: 69f1 ldr r1, [r6, #28] - 91ee: fb07 f301 mul.w r3, r7, r1 - if(p->yx_steep > 0) { - 91f2: 2900 cmp r1, #0 - y_at_x = (int32_t)((int32_t)p->yx_steep * abs_x) >> 10; - 91f4: ea4f 23a3 mov.w r3, r3, asr #10 - if(p->inv) { - 91f8: fa5f f08c uxtb.w r0, ip - if(p->yx_steep > 0) { - 91fc: dd05 ble.n 920a - if(y_at_x > abs_y) { - 91fe: 429a cmp r2, r3 - 9200: da05 bge.n 920e - p->cfg.side == LV_DRAW_MASK_LINE_SIDE_RIGHT) return LV_DRAW_MASK_RES_FULL_COVER; - 9202: 3800 subs r0, #0 - 9204: bf18 it ne - 9206: 2001 movne r0, #1 - 9208: e7c4 b.n 9194 - if(y_at_x < abs_y) { - 920a: 429a cmp r2, r3 - 920c: dcf9 bgt.n 9202 - y_at_x = (int32_t)((int32_t)p->yx_steep * (abs_x + len)) >> 10; - 920e: 193b adds r3, r7, r4 - 9210: 434b muls r3, r1 - if(p->yx_steep > 0) { - 9212: 2900 cmp r1, #0 - y_at_x = (int32_t)((int32_t)p->yx_steep * (abs_x + len)) >> 10; - 9214: ea4f 23a3 mov.w r3, r3, asr #10 - if(p->yx_steep > 0) { - 9218: dd05 ble.n 9226 - if(y_at_x < abs_y) { - 921a: 429a cmp r2, r3 - 921c: dd06 ble.n 922c - p->cfg.side == LV_DRAW_MASK_LINE_SIDE_RIGHT) return LV_DRAW_MASK_RES_FULL_COVER; - 921e: fab0 f080 clz r0, r0 - 9222: 0940 lsrs r0, r0, #5 - 9224: e7b6 b.n 9194 - if(y_at_x > abs_y) { - 9226: 429a cmp r2, r3 - 9228: dbf9 blt.n 921e - else xe = (((abs_y + 1) << 8) * p->xy_steep) >> 10; - 922a: 3201 adds r2, #1 - 922c: 69b3 ldr r3, [r6, #24] - 922e: 0212 lsls r2, r2, #8 - 9230: 435a muls r2, r3 - 9232: 1292 asrs r2, r2, #10 - int32_t xei = xe >> 8; - 9234: 1211 asrs r1, r2, #8 - if(xef == 0) px_h = 255; - 9236: f012 02ff ands.w r2, r2, #255 ; 0xff - else px_h = 255 - (((255 - xef) * p->spx) >> 8); - 923a: bf1f itttt ne - 923c: 6a73 ldrne r3, [r6, #36] ; 0x24 - 923e: f1c2 08ff rsbne r8, r2, #255 ; 0xff - 9242: fb03 f808 mulne.w r8, r3, r8 - 9246: ea4f 2828 movne.w r8, r8, asr #8 - 924a: bf14 ite ne - 924c: f1c8 08ff rsbne r8, r8, #255 ; 0xff - if(xef == 0) px_h = 255; - 9250: f04f 08ff moveq.w r8, #255 ; 0xff - int32_t k = xei - abs_x; - 9254: 1bcf subs r7, r1, r7 - if(xef) { - 9256: 2a00 cmp r2, #0 - 9258: d054 beq.n 9304 - if(k >= 0 && k < len) { - 925a: 2f00 cmp r7, #0 - 925c: db0f blt.n 927e - 925e: 42bc cmp r4, r7 - 9260: dd0d ble.n 927e - m = 255 - (((255 - xef) * (255 - px_h)) >> 9); - 9262: f1c2 01ff rsb r1, r2, #255 ; 0xff - 9266: f1c8 03ff rsb r3, r8, #255 ; 0xff - 926a: 4359 muls r1, r3 - 926c: f3c1 2147 ubfx r1, r1, #9, #8 - if(p->inv) m = 255 - m; - 9270: b908 cbnz r0, 9276 - m = 255 - (((255 - xef) * (255 - px_h)) >> 9); - 9272: 43c9 mvns r1, r1 - 9274: b2c9 uxtb r1, r1 - mask_buf[k] = mask_mix(mask_buf[k], m); - 9276: 5de8 ldrb r0, [r5, r7] - 9278: 4ba3 ldr r3, [pc, #652] ; (9508 ) - 927a: 4798 blx r3 - 927c: 55e8 strb r0, [r5, r7] - k++; - 927e: 1c7a adds r2, r7, #1 - mask_buf[k] = mask_mix(mask_buf[k], m); - 9280: f8df 9284 ldr.w r9, [pc, #644] ; 9508 - while(px_h > p->spx) { - 9284: 6a71 ldr r1, [r6, #36] ; 0x24 - if(p->inv) m = 255 - m; - 9286: f896 3028 ldrb.w r3, [r6, #40] ; 0x28 - while(px_h > p->spx) { - 928a: 4588 cmp r8, r1 - if(p->inv) m = 255 - m; - 928c: f003 0302 and.w r3, r3, #2 - while(px_h > p->spx) { - 9290: dc18 bgt.n 92c4 - if(k < len && k >= 0) { - 9292: 4294 cmp r4, r2 - 9294: dd29 ble.n 92ea - 9296: 2a00 cmp r2, #0 - 9298: db27 blt.n 92ea - int32_t x_inters = (px_h * p->xy_steep) >> 10; - 929a: 69b1 ldr r1, [r6, #24] - if(p->yx_steep < 0) m = 255 - m; - 929c: 69f0 ldr r0, [r6, #28] - int32_t x_inters = (px_h * p->xy_steep) >> 10; - 929e: fb01 f108 mul.w r1, r1, r8 - 92a2: 1289 asrs r1, r1, #10 - m = (x_inters * px_h) >> 9; - 92a4: fb08 f101 mul.w r1, r8, r1 - 92a8: f3c1 2147 ubfx r1, r1, #9, #8 - if(p->yx_steep < 0) m = 255 - m; - 92ac: 2800 cmp r0, #0 - 92ae: bfbc itt lt - 92b0: 43c9 mvnlt r1, r1 - 92b2: b2c9 uxtblt r1, r1 - if(p->inv) m = 255 - m; - 92b4: b10b cbz r3, 92ba - 92b6: 43c9 mvns r1, r1 - 92b8: b2c9 uxtb r1, r1 - mask_buf[k] = mask_mix(mask_buf[k], m); - 92ba: 5ca8 ldrb r0, [r5, r2] - 92bc: 4b92 ldr r3, [pc, #584] ; (9508 ) - 92be: 4798 blx r3 - 92c0: 54a8 strb r0, [r5, r2] - 92c2: e012 b.n 92ea - if(k >= 0 && k < len) { - 92c4: 2a00 cmp r2, #0 - 92c6: db0a blt.n 92de - 92c8: 4294 cmp r4, r2 - 92ca: dd08 ble.n 92de - m = px_h - (p->spx >> 1); - 92cc: eba8 0161 sub.w r1, r8, r1, asr #1 - 92d0: b2c9 uxtb r1, r1 - if(p->inv) m = 255 - m; - 92d2: b10b cbz r3, 92d8 - 92d4: 43c9 mvns r1, r1 - 92d6: b2c9 uxtb r1, r1 - mask_buf[k] = mask_mix(mask_buf[k], m); - 92d8: 5ca8 ldrb r0, [r5, r2] - 92da: 47c8 blx r9 - 92dc: 54a8 strb r0, [r5, r2] - px_h -= p->spx; - 92de: 6a73 ldr r3, [r6, #36] ; 0x24 - k++; - 92e0: 3201 adds r2, #1 - if(k >= len) break; - 92e2: 4294 cmp r4, r2 - px_h -= p->spx; - 92e4: eba8 0803 sub.w r8, r8, r3 - if(k >= len) break; - 92e8: dccc bgt.n 9284 - if(p->inv) { - 92ea: f896 3028 ldrb.w r3, [r6, #40] ; 0x28 - 92ee: 0799 lsls r1, r3, #30 - 92f0: d50a bpl.n 9308 - if(k > len) { - 92f2: 42bc cmp r4, r7 - 92f4: f6ff af54 blt.w 91a0 - if(k >= 0) { - 92f8: 2f00 cmp r7, #0 - 92fa: f6ff af70 blt.w 91de - _lv_memset_00(&mask_buf[0], k); - 92fe: 4639 mov r1, r7 - if(k >= 0) _lv_memset_00(&mask_buf[0], k); - 9300: 4628 mov r0, r5 - 9302: e083 b.n 940c - int32_t k = xei - abs_x; - 9304: 463a mov r2, r7 - 9306: e7bb b.n 9280 - if(k < 0) { - 9308: 1c50 adds r0, r2, #1 - 930a: f53f af49 bmi.w 91a0 - if(k <= len) { - 930e: 4284 cmp r4, r0 - if(k >= 0) _lv_memset_00(&mask_buf[k], len - k); - 9310: f6ff af65 blt.w 91de - 9314: 1a21 subs r1, r4, r0 - 9316: 4428 add r0, r5 - 9318: e078 b.n 940c - x_at_y = (int32_t)((int32_t)p->xy_steep * abs_y) >> 10; - 931a: 69b1 ldr r1, [r6, #24] - 931c: fb01 f302 mul.w r3, r1, r2 - if(p->xy_steep > 0) x_at_y++; - 9320: 2900 cmp r1, #0 - x_at_y = (int32_t)((int32_t)p->xy_steep * abs_y) >> 10; - 9322: ea4f 23a3 mov.w r3, r3, asr #10 - if(p->xy_steep > 0) x_at_y++; - 9326: bfcc ite gt - 9328: f103 0e01 addgt.w lr, r3, #1 - x_at_y = (int32_t)((int32_t)p->xy_steep * abs_y) >> 10; - 932c: 469e movle lr, r3 - if(x_at_y < abs_x) { - 932e: 4577 cmp r7, lr - if(p->inv) { - 9330: fa5f f08c uxtb.w r0, ip - if(x_at_y < abs_x) { - 9334: f73f af65 bgt.w 9202 - if(x_at_y > abs_x + len) { - 9338: eb07 0c04 add.w ip, r7, r4 - 933c: 4563 cmp r3, ip - 933e: f73f af6e bgt.w 921e - int32_t xs = ((abs_y << 8) * p->xy_steep) >> 10; - 9342: ea4f 2c02 mov.w ip, r2, lsl #8 - int32_t xe = (((abs_y + 1) << 8) * p->xy_steep) >> 10; - 9346: 3201 adds r2, #1 - 9348: 0212 lsls r2, r2, #8 - 934a: 434a muls r2, r1 - int32_t xs = ((abs_y << 8) * p->xy_steep) >> 10; - 934c: fb01 fc0c mul.w ip, r1, ip - int32_t xei = xe >> 8; - 9350: ea4f 49a2 mov.w r9, r2, asr #18 - if(xsi != xei && (p->xy_steep < 0 && xsf == 0)) { - 9354: ebb9 4fac cmp.w r9, ip, asr #18 - int32_t xsf = xs & 0xFF; - 9358: f3cc 2387 ubfx r3, ip, #10, #8 - k = xsi - abs_x; - 935c: ebc7 4aac rsb sl, r7, ip, asr #18 - if(xsi != xei && (p->xy_steep < 0 && xsf == 0)) { - 9360: f000 80ae beq.w 94c0 - 9364: 2900 cmp r1, #0 - 9366: da5a bge.n 941e - k--; - 9368: f10a 38ff add.w r8, sl, #4294967295 ; 0xffffffff - if(xsi != xei && (p->xy_steep < 0 && xsf == 0)) { - 936c: 2b00 cmp r3, #0 - 936e: f000 80c9 beq.w 9504 - y_inters = (xsf * (-p->yx_steep)) >> 10; - 9372: 69f2 ldr r2, [r6, #28] - 9374: 4252 negs r2, r2 - 9376: 435a muls r2, r3 - if(k >= 0 && k < len) { - 9378: f1ba 0f00 cmp.w sl, #0 - y_inters = (xsf * (-p->yx_steep)) >> 10; - 937c: ea4f 22a2 mov.w r2, r2, asr #10 - if(k >= 0 && k < len) { - 9380: db0d blt.n 939e - 9382: 4554 cmp r4, sl - 9384: dd0b ble.n 939e - m = (y_inters * xsf) >> 9; - 9386: 4353 muls r3, r2 - 9388: f3c3 2147 ubfx r1, r3, #9, #8 - if(p->inv) m = 255 - m; - 938c: b108 cbz r0, 9392 - 938e: 43c9 mvns r1, r1 - 9390: b2c9 uxtb r1, r1 - mask_buf[k] = mask_mix(mask_buf[k], m); - 9392: f815 000a ldrb.w r0, [r5, sl] - 9396: 4b5c ldr r3, [pc, #368] ; (9508 ) - 9398: 4798 blx r3 - 939a: f805 000a strb.w r0, [r5, sl] - if(k >= 0 && k < len) { - 939e: f1b8 0f00 cmp.w r8, #0 - 93a2: db17 blt.n 93d4 - 93a4: 4544 cmp r4, r8 - 93a6: dd15 ble.n 93d4 - int32_t x_inters = ((255 - y_inters) * (-p->xy_steep)) >> 10; - 93a8: 69b3 ldr r3, [r6, #24] - mask_buf[k] = mask_mix(mask_buf[k], m); - 93aa: f815 0008 ldrb.w r0, [r5, r8] - int32_t x_inters = ((255 - y_inters) * (-p->xy_steep)) >> 10; - 93ae: f1c2 02ff rsb r2, r2, #255 ; 0xff - 93b2: 4259 negs r1, r3 - 93b4: 4351 muls r1, r2 - if(p->inv) m = 255 - m; - 93b6: f896 3028 ldrb.w r3, [r6, #40] ; 0x28 - int32_t x_inters = ((255 - y_inters) * (-p->xy_steep)) >> 10; - 93ba: 1289 asrs r1, r1, #10 - m = 255 - (((255 - y_inters) * x_inters) >> 9); - 93bc: 4351 muls r1, r2 - if(p->inv) m = 255 - m; - 93be: 079f lsls r7, r3, #30 - m = 255 - (((255 - y_inters) * x_inters) >> 9); - 93c0: f3c1 2147 ubfx r1, r1, #9, #8 - 93c4: bf58 it pl - 93c6: 43c9 mvnpl r1, r1 - mask_buf[k] = mask_mix(mask_buf[k], m); - 93c8: 4b4f ldr r3, [pc, #316] ; (9508 ) - m = 255 - (((255 - y_inters) * x_inters) >> 9); - 93ca: bf58 it pl - 93cc: b2c9 uxtbpl r1, r1 - mask_buf[k] = mask_mix(mask_buf[k], m); - 93ce: 4798 blx r3 - 93d0: f805 0008 strb.w r0, [r5, r8] - if(p->inv) { - 93d4: f896 3028 ldrb.w r3, [r6, #40] ; 0x28 - 93d8: 079e lsls r6, r3, #30 - 93da: d51a bpl.n 9412 - if(k > len) k = len; - 93dc: 4544 cmp r4, r8 - 93de: f6ff aefe blt.w 91de - else if(k > 0) _lv_memset_00(&mask_buf[0], k); - 93e2: f1b8 0f00 cmp.w r8, #0 - 93e6: f77f aefa ble.w 91de - 93ea: 4641 mov r1, r8 - 93ec: e788 b.n 9300 - k++; - 93ee: f108 0801 add.w r8, r8, #1 - 93f2: 45a0 cmp r8, r4 - 93f4: bfa8 it ge - 93f6: 46a0 movge r8, r4 - if(k == 0) return LV_DRAW_MASK_RES_TRANSP; - 93f8: f1b8 0f00 cmp.w r8, #0 - 93fc: f43f aed0 beq.w 91a0 - else if(k > 0) _lv_memset_00(&mask_buf[k], len - k); - 9400: f77f aeed ble.w 91de - 9404: eba4 0108 sub.w r1, r4, r8 - 9408: eb05 0008 add.w r0, r5, r8 - else if(k > 0) _lv_memset_00(&mask_buf[k], len - k); - 940c: 4b3f ldr r3, [pc, #252] ; (950c ) - 940e: 4798 blx r3 - 9410: e6e5 b.n 91de - k += 2; - 9412: f10a 0001 add.w r0, sl, #1 - if(k > len) return LV_DRAW_MASK_RES_FULL_COVER; - 9416: 4284 cmp r4, r0 - 9418: db4e blt.n 94b8 - if(k >= 0) _lv_memset_00(&mask_buf[k], len - k); - 941a: 2800 cmp r0, #0 - 941c: e778 b.n 9310 - y_inters = ((255 - xsf) * p->yx_steep) >> 10; - 941e: 69f7 ldr r7, [r6, #28] - 9420: f1c3 03ff rsb r3, r3, #255 ; 0xff - 9424: 435f muls r7, r3 - if(k >= 0 && k < len) { - 9426: f1ba 0f00 cmp.w sl, #0 - y_inters = ((255 - xsf) * p->yx_steep) >> 10; - 942a: ea4f 27a7 mov.w r7, r7, asr #10 - if(k >= 0 && k < len) { - 942e: db0d blt.n 944c - 9430: 4554 cmp r4, sl - 9432: dd0b ble.n 944c - m = 255 - ((y_inters * (255 - xsf)) >> 9); - 9434: 437b muls r3, r7 - 9436: f3c3 2147 ubfx r1, r3, #9, #8 - if(p->inv) m = 255 - m; - 943a: b908 cbnz r0, 9440 - m = 255 - ((y_inters * (255 - xsf)) >> 9); - 943c: 43c9 mvns r1, r1 - 943e: b2c9 uxtb r1, r1 - mask_buf[k] = mask_mix(mask_buf[k], m); - 9440: f815 000a ldrb.w r0, [r5, sl] - 9444: 4b30 ldr r3, [pc, #192] ; (9508 ) - 9446: 4798 blx r3 - 9448: f805 000a strb.w r0, [r5, sl] - if(k >= 0 && k < len) { - 944c: f11a 0201 adds.w r2, sl, #1 - 9450: d415 bmi.n 947e - 9452: 4294 cmp r4, r2 - 9454: dd13 ble.n 947e - int32_t x_inters = ((255 - y_inters) * p->xy_steep) >> 10; - 9456: 69b3 ldr r3, [r6, #24] - 9458: f1c7 07ff rsb r7, r7, #255 ; 0xff - 945c: fb03 f107 mul.w r1, r3, r7 - 9460: 1289 asrs r1, r1, #10 - if(p->inv) m = 255 - m; - 9462: f896 3028 ldrb.w r3, [r6, #40] ; 0x28 - m = ((255 - y_inters) * x_inters) >> 9; - 9466: 4379 muls r1, r7 - if(p->inv) m = 255 - m; - 9468: 0798 lsls r0, r3, #30 - m = ((255 - y_inters) * x_inters) >> 9; - 946a: f3c1 2147 ubfx r1, r1, #9, #8 - if(p->inv) m = 255 - m; - 946e: bf48 it mi - 9470: 43c9 mvnmi r1, r1 - mask_buf[k] = mask_mix(mask_buf[k], m); - 9472: 5ca8 ldrb r0, [r5, r2] - 9474: 4b24 ldr r3, [pc, #144] ; (9508 ) - if(p->inv) m = 255 - m; - 9476: bf48 it mi - 9478: b2c9 uxtbmi r1, r1 - mask_buf[k] = mask_mix(mask_buf[k], m); - 947a: 4798 blx r3 - 947c: 54a8 strb r0, [r5, r2] - if(p->inv) { - 947e: f896 3028 ldrb.w r3, [r6, #40] ; 0x28 - 9482: 079b lsls r3, r3, #30 - 9484: d508 bpl.n 9498 - if(k > len) return LV_DRAW_MASK_RES_TRANSP; - 9486: 4554 cmp r4, sl - 9488: f6ff ae8a blt.w 91a0 - if(k >= 0) _lv_memset_00(&mask_buf[0], k); - 948c: f1ba 0f00 cmp.w sl, #0 - 9490: f6ff aea5 blt.w 91de - 9494: 4651 mov r1, sl - 9496: e733 b.n 9300 - k++; - 9498: f10a 0a02 add.w sl, sl, #2 - 949c: 45a2 cmp sl, r4 - 949e: bfa8 it ge - 94a0: 46a2 movge sl, r4 - if(k == 0) return LV_DRAW_MASK_RES_TRANSP; - 94a2: f1ba 0f00 cmp.w sl, #0 - 94a6: f43f ae7b beq.w 91a0 - else if(k > 0) _lv_memset_00(&mask_buf[k], len - k); - 94aa: f77f ae98 ble.w 91de - 94ae: eba4 010a sub.w r1, r4, sl - 94b2: eb05 000a add.w r0, r5, sl - 94b6: e7a9 b.n 940c - if(k > len) return LV_DRAW_MASK_RES_FULL_COVER; - 94b8: 2001 movs r0, #1 - 94ba: e66b b.n 9194 - if(k >= len) return LV_DRAW_MASK_RES_TRANSP; - 94bc: 2c00 cmp r4, #0 - 94be: e681 b.n 91c4 - k = xsi - abs_x; - 94c0: 46d0 mov r8, sl - if(k >= 0 && k < len) { - 94c2: f1b8 0f00 cmp.w r8, #0 - 94c6: db0f blt.n 94e8 - 94c8: 4544 cmp r4, r8 - 94ca: dd0d ble.n 94e8 - int32_t xef = xe & 0xFF; - 94cc: f3c2 2187 ubfx r1, r2, #10, #8 - m = (xsf + xef) >> 1; - 94d0: 4419 add r1, r3 - 94d2: f3c1 0147 ubfx r1, r1, #1, #8 - if(p->inv) m = 255 - m; - 94d6: b108 cbz r0, 94dc - 94d8: 43c9 mvns r1, r1 - 94da: b2c9 uxtb r1, r1 - mask_buf[k] = mask_mix(mask_buf[k], m); - 94dc: f815 0008 ldrb.w r0, [r5, r8] - 94e0: 4b09 ldr r3, [pc, #36] ; (9508 ) - 94e2: 4798 blx r3 - 94e4: f805 0008 strb.w r0, [r5, r8] - if(p->inv) { - 94e8: f896 3028 ldrb.w r3, [r6, #40] ; 0x28 - 94ec: 079b lsls r3, r3, #30 - 94ee: f57f af7e bpl.w 93ee - k = xsi - abs_x; - 94f2: eba9 0107 sub.w r1, r9, r7 - if(k >= len) { - 94f6: 428c cmp r4, r1 - 94f8: f77f ae52 ble.w 91a0 - if(k >= 0) _lv_memset_00(&mask_buf[0], k); - 94fc: 2900 cmp r1, #0 - 94fe: f6ff ae6e blt.w 91de - 9502: e6fd b.n 9300 - xsf = 0xFF; - 9504: 23ff movs r3, #255 ; 0xff - 9506: e7dc b.n 94c2 - 9508: 0000913d .word 0x0000913d - 950c: 0000f2a9 .word 0x0000f2a9 - -00009510 : - while(len) { - 9510: 3901 subs r1, #1 - 9512: f100 0308 add.w r3, r0, #8 - *d8 = *s8; - 9516: f811 2f01 ldrb.w r2, [r1, #1]! - 951a: f800 2b01 strb.w r2, [r0], #1 - while(len) { - 951e: 4298 cmp r0, r3 - 9520: d1f9 bne.n 9516 -} - 9522: 4770 bx lr - -00009524 : -{ - 9524: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - 9528: b08d sub sp, #52 ; 0x34 - 952a: 461d mov r5, r3 - 952c: f8dd 8058 ldr.w r8, [sp, #88] ; 0x58 - bool outer = p->cfg.outer; - 9530: f898 9012 ldrb.w r9, [r8, #18] - int32_t radius = p->cfg.radius; - 9534: f9b8 a010 ldrsh.w sl, [r8, #16] -{ - 9538: 2300 movs r3, #0 - 953a: e9cd 3302 strd r3, r3, [sp, #8] - 953e: 4606 mov r6, r0 - lv_area_copy(&rect, &p->cfg.rect); - 9540: 4b8b ldr r3, [pc, #556] ; (9770 ) -{ - 9542: 468b mov fp, r1 - lv_area_copy(&rect, &p->cfg.rect); - 9544: a80a add r0, sp, #40 ; 0x28 - 9546: f108 0108 add.w r1, r8, #8 - bool outer = p->cfg.outer; - 954a: f009 0901 and.w r9, r9, #1 -{ - 954e: 4617 mov r7, r2 - lv_area_copy(&rect, &p->cfg.rect); - 9550: 4798 blx r3 - if(outer == false) { - 9552: f9bd 302a ldrsh.w r3, [sp, #42] ; 0x2a - 9556: f1b9 0f00 cmp.w r9, #0 - 955a: d13a bne.n 95d2 - if(abs_y < rect.y1 || abs_y > rect.y2) { - 955c: 42bb cmp r3, r7 - 955e: dd01 ble.n 9564 - return LV_DRAW_MASK_RES_TRANSP; - 9560: 2000 movs r0, #0 - 9562: e039 b.n 95d8 - if(abs_y < rect.y1 || abs_y > rect.y2) { - 9564: f9bd 202e ldrsh.w r2, [sp, #46] ; 0x2e - 9568: 42ba cmp r2, r7 - 956a: dbf9 blt.n 9560 - if((abs_x >= rect.x1 + radius && abs_x + len <= rect.x2 - radius) || - 956c: f9bd 1028 ldrsh.w r1, [sp, #40] ; 0x28 - 9570: eb01 020a add.w r2, r1, sl - 9574: 4593 cmp fp, r2 - 9576: eba1 040b sub.w r4, r1, fp - 957a: db07 blt.n 958c - 957c: f9bd 202c ldrsh.w r2, [sp, #44] ; 0x2c - 9580: eb05 000b add.w r0, r5, fp - 9584: eba2 020a sub.w r2, r2, sl - 9588: 4290 cmp r0, r2 - 958a: dd09 ble.n 95a0 - (abs_y >= rect.y1 + radius && abs_y <= rect.y2 - radius)) { - 958c: eb03 020a add.w r2, r3, sl - if((abs_x >= rect.x1 + radius && abs_x + len <= rect.x2 - radius) || - 9590: 4297 cmp r7, r2 - if(abs_y < rect.y1 || abs_y > rect.y2) { - 9592: f9bd 002e ldrsh.w r0, [sp, #46] ; 0x2e - if((abs_x >= rect.x1 + radius && abs_x + len <= rect.x2 - radius) || - 9596: db3d blt.n 9614 - (abs_y >= rect.y1 + radius && abs_y <= rect.y2 - radius)) { - 9598: eba0 020a sub.w r2, r0, sl - 959c: 4297 cmp r7, r2 - 959e: dc39 bgt.n 9614 - if(outer == false) { - 95a0: f1b9 0f00 cmp.w r9, #0 - 95a4: d125 bne.n 95f2 - if(last > len) return LV_DRAW_MASK_RES_TRANSP; - 95a6: 42a5 cmp r5, r4 - 95a8: dbda blt.n 9560 - if(last >= 0) { - 95aa: 2c00 cmp r4, #0 - 95ac: db03 blt.n 95b6 - _lv_memset_00(&mask_buf[0], last); - 95ae: 4b71 ldr r3, [pc, #452] ; (9774 ) - 95b0: 4621 mov r1, r4 - 95b2: 4630 mov r0, r6 - 95b4: 4798 blx r3 - int32_t first = rect.x2 - abs_x + 1; - 95b6: f9bd 002c ldrsh.w r0, [sp, #44] ; 0x2c - 95ba: eba0 000b sub.w r0, r0, fp - 95be: 3001 adds r0, #1 - if(first <= 0) return LV_DRAW_MASK_RES_TRANSP; - 95c0: 2800 cmp r0, #0 - 95c2: ddcd ble.n 9560 - else if(first < len) { - 95c4: 42a8 cmp r0, r5 - 95c6: da0f bge.n 95e8 - _lv_memset_00(&mask_buf[kr], len - kr); - 95c8: 1a29 subs r1, r5, r0 - _lv_memset_00(&mask_buf[first], len_tmp); - 95ca: 4430 add r0, r6 - if(kr < len) _lv_memset_00(&mask_buf[kr], len - kr); - 95cc: 4b69 ldr r3, [pc, #420] ; (9774 ) - 95ce: 4798 blx r3 - 95d0: e00d b.n 95ee - if(abs_y < rect.y1 || abs_y > rect.y2) { - 95d2: 42bb cmp r3, r7 - 95d4: dd03 ble.n 95de - return LV_DRAW_MASK_RES_FULL_COVER; - 95d6: 2001 movs r0, #1 -} - 95d8: b00d add sp, #52 ; 0x34 - 95da: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - if(abs_y < rect.y1 || abs_y > rect.y2) { - 95de: f9bd 202e ldrsh.w r2, [sp, #46] ; 0x2e - 95e2: 42ba cmp r2, r7 - 95e4: dac2 bge.n 956c - 95e6: e7f6 b.n 95d6 - if(last == 0 && first == len) return LV_DRAW_MASK_RES_FULL_COVER; - 95e8: b90c cbnz r4, 95ee - 95ea: 42a8 cmp r0, r5 - 95ec: d0f3 beq.n 95d6 - return LV_DRAW_MASK_RES_CHANGED; - 95ee: 2002 movs r0, #2 - 95f0: e7f2 b.n 95d8 - if(first < 0) first = 0; - 95f2: ea24 70e4 bic.w r0, r4, r4, asr #31 - if(first <= len) { - 95f6: 42a8 cmp r0, r5 - 95f8: dcf9 bgt.n 95ee - int32_t last = rect.x2 - abs_x - first + 1; - 95fa: f9bd 102c ldrsh.w r1, [sp, #44] ; 0x2c - 95fe: eba1 010b sub.w r1, r1, fp - 9602: 1a09 subs r1, r1, r0 - 9604: 3101 adds r1, #1 - if(first + last > len) last = len - first; - 9606: 1843 adds r3, r0, r1 - 9608: 42ab cmp r3, r5 - 960a: dd00 ble.n 960e - 960c: 1a29 subs r1, r5, r0 - if(first < len && len_tmp >= 0) { - 960e: 2900 cmp r1, #0 - 9610: dbed blt.n 95ee - 9612: e7da b.n 95ca - return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - 9614: f8bd 202c ldrh.w r2, [sp, #44] ; 0x2c - return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - 9618: b29b uxth r3, r3 - 961a: 3001 adds r0, #1 - 961c: 1ac0 subs r0, r0, r3 - abs_y -= rect.y1; - 961e: 1aff subs r7, r7, r3 - return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - 9620: 3201 adds r2, #1 - uint32_t r2 = p->cfg.radius * p->cfg.radius; - 9622: f9b8 3010 ldrsh.w r3, [r8, #16] - 9626: 1a52 subs r2, r2, r1 - abs_y -= rect.y1; - 9628: b23f sxth r7, r7 - int32_t w = lv_area_get_width(&rect); - 962a: b212 sxth r2, r2 - uint32_t r2 = p->cfg.radius * p->cfg.radius; - 962c: 435b muls r3, r3 - if(abs_y < radius || abs_y > h - radius - 1) { - 962e: 45ba cmp sl, r7 - int32_t w = lv_area_get_width(&rect); - 9630: 9204 str r2, [sp, #16] - int32_t h = lv_area_get_height(&rect); - 9632: b200 sxth r0, r0 - uint32_t r2 = p->cfg.radius * p->cfg.radius; - 9634: 9301 str r3, [sp, #4] - if(abs_y < radius || abs_y > h - radius - 1) { - 9636: f300 8190 bgt.w 995a - 963a: eba0 030a sub.w r3, r0, sl - 963e: 429f cmp r7, r3 - 9640: dbd5 blt.n 95ee - y = radius - (h - abs_y) + 1; - 9642: 1bc0 subs r0, r0, r7 - if((y - 1) == p->y_prev) { - 9644: f8d8 3014 ldr.w r3, [r8, #20] - if(radius <= 256) sqrt_mask = 0x800; - 9648: f5ba 7f80 cmp.w sl, #256 ; 0x100 - y = radius - (h - abs_y) + 1; - 964c: ebaa 0000 sub.w r0, sl, r0 - if(radius <= 256) sqrt_mask = 0x800; - 9650: bfd4 ite le - 9652: f44f 6200 movle.w r2, #2048 ; 0x800 - 9656: f44f 4200 movgt.w r2, #32768 ; 0x8000 - if((y - 1) == p->y_prev) { - 965a: 4298 cmp r0, r3 - y = radius - (h - abs_y) + 1; - 965c: f100 0701 add.w r7, r0, #1 - if((y - 1) == p->y_prev) { - 9660: d067 beq.n 9732 - _lv_sqrt(r2 - ((y - 1) * (y - 1)), &x1, sqrt_mask); - 9662: 9b01 ldr r3, [sp, #4] - 9664: 9205 str r2, [sp, #20] - 9666: fb00 3010 mls r0, r0, r0, r3 - 966a: a907 add r1, sp, #28 - 966c: 4b42 ldr r3, [pc, #264] ; (9778 ) - 966e: 4798 blx r3 - 9670: 9a05 ldr r2, [sp, #20] - 9672: e061 b.n 9738 - x0.i = p->y_prev_x.i; - 9674: f8d8 3018 ldr.w r3, [r8, #24] - 9678: 9306 str r3, [sp, #24] - _lv_sqrt(r2 - ((y - 1) * (y - 1)), &x1, sqrt_mask); - 967a: 9b01 ldr r3, [sp, #4] - 967c: 9205 str r2, [sp, #20] - 967e: f107 3bff add.w fp, r7, #4294967295 ; 0xffffffff - 9682: fb0b 301b mls r0, fp, fp, r3 - 9686: a907 add r1, sp, #28 - 9688: 4b3b ldr r3, [pc, #236] ; (9778 ) - 968a: 4798 blx r3 - p->y_prev_x.f = x1.f; - 968c: f8bd 301e ldrh.w r3, [sp, #30] - 9690: f8a8 301a strh.w r3, [r8, #26] - p->y_prev_x.i = x1.i; - 9694: f8bd 301c ldrh.w r3, [sp, #28] - p->y_prev = y - 1; - 9698: f8c8 b014 str.w fp, [r8, #20] - if(x0.i == x1.i - 1 && x1.f == 0) { - 969c: f8bd 101c ldrh.w r1, [sp, #28] - p->y_prev_x.i = x1.i; - 96a0: f8a8 3018 strh.w r3, [r8, #24] - if(x0.i == x1.i - 1 && x1.f == 0) { - 96a4: f8bd 3018 ldrh.w r3, [sp, #24] - p->y_prev_x.i = x0.i; - 96a8: 9a05 ldr r2, [sp, #20] - if(x0.i == x1.i - 1 && x1.f == 0) { - 96aa: 3901 subs r1, #1 - 96ac: 428b cmp r3, r1 - 96ae: d107 bne.n 96c0 - 96b0: f8bd 101e ldrh.w r1, [sp, #30] - 96b4: b921 cbnz r1, 96c0 - x1.f = 0xFF; - 96b6: 21ff movs r1, #255 ; 0xff - x1.i--; - 96b8: f8ad 301c strh.w r3, [sp, #28] - x1.f = 0xFF; - 96bc: f8ad 101e strh.w r1, [sp, #30] - if(x0.i == x1.i) { - 96c0: f8bd 101c ldrh.w r1, [sp, #28] - 96c4: 4299 cmp r1, r3 - 96c6: d15b bne.n 9780 - lv_opa_t m = (x0.f + x1.f) >> 1; - 96c8: f8bd 101a ldrh.w r1, [sp, #26] - 96cc: f8bd 201e ldrh.w r2, [sp, #30] - 96d0: 4411 add r1, r2 - 96d2: f3c1 0147 ubfx r1, r1, #1, #8 - if(outer) m = 255 - m; - 96d6: f1b9 0f00 cmp.w r9, #0 - 96da: d001 beq.n 96e0 - 96dc: 43c9 mvns r1, r1 - 96de: b2c9 uxtb r1, r1 - int32_t ofs = radius - x0.i - 1; - 96e0: ebaa 0303 sub.w r3, sl, r3 - 96e4: 1e5a subs r2, r3, #1 - if(kl >= 0 && kl < len) { - 96e6: 18a7 adds r7, r4, r2 - 96e8: d405 bmi.n 96f6 - 96ea: 42af cmp r7, r5 - 96ec: da03 bge.n 96f6 - mask_buf[kl] = mask_mix(mask_buf[kl], m); - 96ee: 5df0 ldrb r0, [r6, r7] - 96f0: 4b22 ldr r3, [pc, #136] ; (977c ) - 96f2: 4798 blx r3 - 96f4: 55f0 strb r0, [r6, r7] - int32_t kr = k + (w - ofs - 1); - 96f6: 9b04 ldr r3, [sp, #16] - 96f8: 1a9a subs r2, r3, r2 - 96fa: 1e50 subs r0, r2, #1 - if(kr >= 0 && kr < len) { - 96fc: 1904 adds r4, r0, r4 - 96fe: d405 bmi.n 970c - 9700: 42ac cmp r4, r5 - 9702: da03 bge.n 970c - mask_buf[kr] = mask_mix(mask_buf[kr], m); - 9704: 5d30 ldrb r0, [r6, r4] - 9706: 4b1d ldr r3, [pc, #116] ; (977c ) - 9708: 4798 blx r3 - 970a: 5530 strb r0, [r6, r4] - if(outer == false) { - 970c: f1b9 0f00 cmp.w r9, #0 - 9710: d122 bne.n 9758 - if(kl > len) { - 9712: 42af cmp r7, r5 - 9714: f73f af24 bgt.w 9560 - if(kl >= 0) { - 9718: 2f00 cmp r7, #0 - 971a: db03 blt.n 9724 - _lv_memset_00(&mask_buf[0], kl); - 971c: 4b15 ldr r3, [pc, #84] ; (9774 ) - 971e: 4639 mov r1, r7 - 9720: 4630 mov r0, r6 - 9722: 4798 blx r3 - if(kr < 0) { - 9724: 1c60 adds r0, r4, #1 - 9726: f53f af1b bmi.w 9560 - if(kr <= len) { - 972a: 42a8 cmp r0, r5 - 972c: f73f af5f bgt.w 95ee - 9730: e74a b.n 95c8 - x1.i = p->y_prev_x.i; - 9732: f8d8 3018 ldr.w r3, [r8, #24] - 9736: 9307 str r3, [sp, #28] - _lv_sqrt(r2 - (y * y), &x0, sqrt_mask); - 9738: 9b01 ldr r3, [sp, #4] - 973a: 9205 str r2, [sp, #20] - 973c: fb07 3017 mls r0, r7, r7, r3 - 9740: a906 add r1, sp, #24 - 9742: 4b0d ldr r3, [pc, #52] ; (9778 ) - 9744: 4798 blx r3 - p->y_prev_x.f = x0.f; - 9746: f8bd 301a ldrh.w r3, [sp, #26] - 974a: f8a8 301a strh.w r3, [r8, #26] - p->y_prev = y; - 974e: f8c8 7014 str.w r7, [r8, #20] - p->y_prev_x.i = x0.i; - 9752: f8bd 3018 ldrh.w r3, [sp, #24] - 9756: e7a1 b.n 969c - kl++; - 9758: 1c78 adds r0, r7, #1 - 975a: ea20 70e0 bic.w r0, r0, r0, asr #31 - if(len_tmp + first > len) len_tmp = len - first; - 975e: 42ac cmp r4, r5 - int32_t len_tmp = kr - first; - 9760: bfd4 ite le - 9762: 1a21 suble r1, r4, r0 - if(len_tmp + first > len) len_tmp = len - first; - 9764: 1a29 subgt r1, r5, r0 - if(first < len && len_tmp >= 0) { - 9766: 42a8 cmp r0, r5 - 9768: f6bf af41 bge.w 95ee - 976c: e74f b.n 960e - 976e: bf00 nop - 9770: 00009511 .word 0x00009511 - 9774: 0000f2a9 .word 0x0000f2a9 - 9778: 0000ec25 .word 0x0000ec25 - 977c: 0000913d .word 0x0000913d - int32_t kr = k + (w - ofs - 1); - 9780: 9904 ldr r1, [sp, #16] - int32_t ofs = radius - (x0.i + 1); - 9782: 3301 adds r3, #1 - 9784: ebaa 0303 sub.w r3, sl, r3 - int32_t kl = k + ofs; - 9788: eb04 0803 add.w r8, r4, r3 - int32_t kr = k + (w - ofs - 1); - 978c: 1acb subs r3, r1, r3 - 978e: 3b01 subs r3, #1 - 9790: 441c add r4, r3 - if(outer) { - 9792: f1b9 0f00 cmp.w r9, #0 - 9796: d010 beq.n 97ba - int32_t first = kl + 1; - 9798: f108 0001 add.w r0, r8, #1 - 979c: ea20 70e0 bic.w r0, r0, r0, asr #31 - if(len_tmp + first > len) len_tmp = len - first; - 97a0: 42a5 cmp r5, r4 - int32_t len_tmp = kr - first; - 97a2: bfac ite ge - 97a4: 1a21 subge r1, r4, r0 - if(len_tmp + first > len) len_tmp = len - first; - 97a6: 1a29 sublt r1, r5, r0 - if(first < len && len_tmp >= 0) { - 97a8: 42a8 cmp r0, r5 - 97aa: da06 bge.n 97ba - 97ac: 2900 cmp r1, #0 - 97ae: db04 blt.n 97ba - _lv_memset_00(&mask_buf[first], len_tmp); - 97b0: 4b75 ldr r3, [pc, #468] ; (9988 ) - 97b2: 9204 str r2, [sp, #16] - 97b4: 4430 add r0, r6 - 97b6: 4798 blx r3 - 97b8: 9a04 ldr r2, [sp, #16] - uint32_t i = x0.i + 1; - 97ba: f8bd b018 ldrh.w fp, [sp, #24] - _lv_sqrt(r2 - (x0.i * x0.i), &y_prev, sqrt_mask); - 97be: 9b01 ldr r3, [sp, #4] - 97c0: 9204 str r2, [sp, #16] - 97c2: a908 add r1, sp, #32 - 97c4: fb0b 301b mls r0, fp, fp, r3 - 97c8: 4b70 ldr r3, [pc, #448] ; (998c ) - 97ca: 4798 blx r3 - if(y_prev.f == 0) { - 97cc: f8bd 1022 ldrh.w r1, [sp, #34] ; 0x22 - 97d0: 4b6e ldr r3, [pc, #440] ; (998c ) - 97d2: 9a04 ldr r2, [sp, #16] - uint32_t i = x0.i + 1; - 97d4: f10b 0a01 add.w sl, fp, #1 - if(y_prev.f == 0) { - 97d8: b939 cbnz r1, 97ea - y_prev.i--; - 97da: f8bd 1020 ldrh.w r1, [sp, #32] - 97de: 3901 subs r1, #1 - 97e0: f8ad 1020 strh.w r1, [sp, #32] - y_prev.f = 0xFF; - 97e4: 21ff movs r1, #255 ; 0xff - 97e6: f8ad 1022 strh.w r1, [sp, #34] ; 0x22 - if(y_prev.i >= y) { - 97ea: f8bd 1020 ldrh.w r1, [sp, #32] - 97ee: 42b9 cmp r1, r7 - 97f0: db2e blt.n 9850 - _lv_sqrt(r2 - (i * i), &y_next, sqrt_mask); - 97f2: 9801 ldr r0, [sp, #4] - 97f4: a909 add r1, sp, #36 ; 0x24 - 97f6: fb0a 001a mls r0, sl, sl, r0 - 97fa: 4798 blx r3 - m = 255 - (((255 - x0.f) * (255 - y_next.f)) >> 9); - 97fc: f8bd 2026 ldrh.w r2, [sp, #38] ; 0x26 - 9800: f8bd 101a ldrh.w r1, [sp, #26] - 9804: f1c2 03ff rsb r3, r2, #255 ; 0xff - 9808: f1c1 01ff rsb r1, r1, #255 ; 0xff - 980c: 4359 muls r1, r3 - 980e: f3c1 2147 ubfx r1, r1, #9, #8 - if(outer) m = 255 - m; - 9812: f1b9 0f00 cmp.w r9, #0 - 9816: d101 bne.n 981c - m = 255 - (((255 - x0.f) * (255 - y_next.f)) >> 9); - 9818: 43c9 mvns r1, r1 - 981a: b2c9 uxtb r1, r1 - if(kl >= 0 && kl < len) mask_buf[kl] = mask_mix(mask_buf[kl], m); - 981c: f1b8 0f00 cmp.w r8, #0 - 9820: db07 blt.n 9832 - 9822: 4545 cmp r5, r8 - 9824: dd05 ble.n 9832 - 9826: f816 0008 ldrb.w r0, [r6, r8] - 982a: 4b59 ldr r3, [pc, #356] ; (9990 ) - 982c: 4798 blx r3 - 982e: f806 0008 strb.w r0, [r6, r8] - if(kr >= 0 && kr < len) mask_buf[kr] = mask_mix(mask_buf[kr], m); - 9832: 2c00 cmp r4, #0 - 9834: db05 blt.n 9842 - 9836: 42a5 cmp r5, r4 - 9838: dd03 ble.n 9842 - 983a: 5d30 ldrb r0, [r6, r4] - 983c: 4b54 ldr r3, [pc, #336] ; (9990 ) - 983e: 4798 blx r3 - 9840: 5530 strb r0, [r6, r4] - kl--; - 9842: f108 38ff add.w r8, r8, #4294967295 ; 0xffffffff - kr++; - 9846: 3401 adds r4, #1 - y_prev.f = y_next.f; - 9848: f8ad 2022 strh.w r2, [sp, #34] ; 0x22 - i++; - 984c: f10b 0a02 add.w sl, fp, #2 - */ -LV_ATTRIBUTE_FAST_MEM static inline void sqrt_approx(lv_sqrt_res_t * q, lv_sqrt_res_t * ref, uint32_t x) -{ - x = x << 8; /*Upscale for extra precision*/ - - uint32_t raw = (ref->i << 4) + (ref->f >> 4); - 9850: f8bd 2020 ldrh.w r2, [sp, #32] - for(; i <= x1.i; i++) { - 9854: f8bd b01c ldrh.w fp, [sp, #28] - 9858: f8bd 1022 ldrh.w r1, [sp, #34] ; 0x22 - if(kl >= 0 && kl < len) mask_buf[kl] = mask_mix(mask_buf[kl], m); - 985c: 4f4c ldr r7, [pc, #304] ; (9990 ) - uint32_t raw = (ref->i << 4) + (ref->f >> 4); - 985e: 0112 lsls r2, r2, #4 - 9860: 2300 movs r3, #0 - for(; i <= x1.i; i++) { - 9862: 45d3 cmp fp, sl - 9864: d242 bcs.n 98ec - 9866: b13b cbz r3, 9878 - 9868: 9b02 ldr r3, [sp, #8] - 986a: f8ad 3026 strh.w r3, [sp, #38] ; 0x26 - 986e: 9b03 ldr r3, [sp, #12] - 9870: f8ad 3024 strh.w r3, [sp, #36] ; 0x24 - 9874: f8ad 1022 strh.w r1, [sp, #34] ; 0x22 - if(y_prev.f) { - 9878: f8bd 3022 ldrh.w r3, [sp, #34] ; 0x22 - 987c: b1fb cbz r3, 98be - m = (y_prev.f * x1.f) >> 9; - 987e: f8bd 101e ldrh.w r1, [sp, #30] - 9882: 4359 muls r1, r3 - 9884: f3c1 2147 ubfx r1, r1, #9, #8 - if(outer) m = 255 - m; - 9888: f1b9 0f00 cmp.w r9, #0 - 988c: d001 beq.n 9892 - 988e: 43c9 mvns r1, r1 - 9890: b2c9 uxtb r1, r1 - if(kl >= 0 && kl < len) mask_buf[kl] = mask_mix(mask_buf[kl], m); - 9892: f1b8 0f00 cmp.w r8, #0 - 9896: db07 blt.n 98a8 - 9898: 4545 cmp r5, r8 - 989a: dd05 ble.n 98a8 - 989c: f816 0008 ldrb.w r0, [r6, r8] - 98a0: 4b3b ldr r3, [pc, #236] ; (9990 ) - 98a2: 4798 blx r3 - 98a4: f806 0008 strb.w r0, [r6, r8] - if(kr >= 0 && kr < len) mask_buf[kr] = mask_mix(mask_buf[kr], m); - 98a8: 2c00 cmp r4, #0 - 98aa: db05 blt.n 98b8 - 98ac: 42a5 cmp r5, r4 - 98ae: dd03 ble.n 98b8 - 98b0: 5d30 ldrb r0, [r6, r4] - 98b2: 4b37 ldr r3, [pc, #220] ; (9990 ) - 98b4: 4798 blx r3 - 98b6: 5530 strb r0, [r6, r4] - kl--; - 98b8: f108 38ff add.w r8, r8, #4294967295 ; 0xffffffff - kr++; - 98bc: 3401 adds r4, #1 - if(outer == 0) { - 98be: f1b9 0f00 cmp.w r9, #0 - 98c2: f47f ae94 bne.w 95ee - kl++; - 98c6: f108 0101 add.w r1, r8, #1 - if(kl > len) { - 98ca: 428d cmp r5, r1 - 98cc: f6ff ae48 blt.w 9560 - if(kl >= 0) _lv_memset_00(&mask_buf[0], kl); - 98d0: 2900 cmp r1, #0 - 98d2: db02 blt.n 98da - 98d4: 4b2c ldr r3, [pc, #176] ; (9988 ) - 98d6: 4630 mov r0, r6 - 98d8: 4798 blx r3 - if(kr < 0) { - 98da: 2c00 cmp r4, #0 - 98dc: f6ff ae40 blt.w 9560 - if(kr < len) _lv_memset_00(&mask_buf[kr], len - kr); - 98e0: 42a5 cmp r5, r4 - 98e2: f77f ae84 ble.w 95ee - 98e6: 1b29 subs r1, r5, r4 - 98e8: 1930 adds r0, r6, r4 - 98ea: e66f b.n 95cc - sqrt_approx(&y_next, &y_prev, r2 - (i * i)); - 98ec: 9b01 ldr r3, [sp, #4] - uint32_t raw = (ref->i << 4) + (ref->f >> 4); - 98ee: f3c1 100f ubfx r0, r1, #4, #16 - 98f2: 4410 add r0, r2 - sqrt_approx(&y_next, &y_prev, r2 - (i * i)); - 98f4: fb0a 3c1a mls ip, sl, sl, r3 - uint32_t raw2 = raw * raw; - 98f8: fb00 f300 mul.w r3, r0, r0 - - int32_t d = x - raw2; - 98fc: ebc3 230c rsb r3, r3, ip, lsl #8 - d = (int32_t)d / (int32_t)(2 * raw) + raw; - 9900: ea4f 0c40 mov.w ip, r0, lsl #1 - 9904: fb93 f3fc sdiv r3, r3, ip - 9908: 4403 add r3, r0 - - q->i = d >> 4; - 990a: f3c3 100f ubfx r0, r3, #4, #16 - q->f = (d & 0xF) << 4; - 990e: 011b lsls r3, r3, #4 - 9910: f003 03f0 and.w r3, r3, #240 ; 0xf0 - m = (y_prev.f + y_next.f) >> 1; - 9914: 4419 add r1, r3 - q->i = d >> 4; - 9916: 9003 str r0, [sp, #12] - q->f = (d & 0xF) << 4; - 9918: 9302 str r3, [sp, #8] - m = (y_prev.f + y_next.f) >> 1; - 991a: f3c1 0147 ubfx r1, r1, #1, #8 - if(outer) m = 255 - m; - 991e: f1b9 0f00 cmp.w r9, #0 - 9922: d001 beq.n 9928 - 9924: 43c9 mvns r1, r1 - 9926: b2c9 uxtb r1, r1 - if(kl >= 0 && kl < len) mask_buf[kl] = mask_mix(mask_buf[kl], m); - 9928: f1b8 0f00 cmp.w r8, #0 - 992c: db06 blt.n 993c - 992e: 4545 cmp r5, r8 - 9930: dd04 ble.n 993c - 9932: f816 0008 ldrb.w r0, [r6, r8] - 9936: 47b8 blx r7 - 9938: f806 0008 strb.w r0, [r6, r8] - if(kr >= 0 && kr < len) mask_buf[kr] = mask_mix(mask_buf[kr], m); - 993c: 2c00 cmp r4, #0 - 993e: db04 blt.n 994a - 9940: 42a5 cmp r5, r4 - 9942: dd02 ble.n 994a - 9944: 5d30 ldrb r0, [r6, r4] - 9946: 47b8 blx r7 - 9948: 5530 strb r0, [r6, r4] - y_prev.f = y_next.f; - 994a: 9902 ldr r1, [sp, #8] - kl--; - 994c: f108 38ff add.w r8, r8, #4294967295 ; 0xffffffff - kr++; - 9950: 3401 adds r4, #1 - for(; i <= x1.i; i++) { - 9952: f10a 0a01 add.w sl, sl, #1 - 9956: 2301 movs r3, #1 - 9958: e783 b.n 9862 - if(y == p->y_prev) { - 995a: f8d8 3014 ldr.w r3, [r8, #20] - if(radius <= 256) sqrt_mask = 0x800; - 995e: f5ba 7f80 cmp.w sl, #256 ; 0x100 - y = radius - abs_y; - 9962: ebaa 0707 sub.w r7, sl, r7 - if(radius <= 256) sqrt_mask = 0x800; - 9966: bfd4 ite le - 9968: f44f 6200 movle.w r2, #2048 ; 0x800 - 996c: f44f 4200 movgt.w r2, #32768 ; 0x8000 - if(y == p->y_prev) { - 9970: 42bb cmp r3, r7 - 9972: f43f ae7f beq.w 9674 - _lv_sqrt(r2 - (y * y), &x0, sqrt_mask); - 9976: 9b01 ldr r3, [sp, #4] - 9978: 9205 str r2, [sp, #20] - 997a: fb07 3017 mls r0, r7, r7, r3 - 997e: a906 add r1, sp, #24 - 9980: 4b02 ldr r3, [pc, #8] ; (998c ) - 9982: 4798 blx r3 - 9984: 9a05 ldr r2, [sp, #20] - 9986: e678 b.n 967a - 9988: 0000f2a9 .word 0x0000f2a9 - 998c: 0000ec25 .word 0x0000ec25 - 9990: 0000913d .word 0x0000913d - -00009994 : -{ - 9994: b573 push {r0, r1, r4, r5, r6, lr} - if(LV_GC_ROOT(_lv_draw_mask_list[i]).param == NULL) break; - 9996: 4c0e ldr r4, [pc, #56] ; (99d0 ) -{ - 9998: 2300 movs r3, #0 - if(LV_GC_ROOT(_lv_draw_mask_list[i]).param == NULL) break; - 999a: f854 6033 ldr.w r6, [r4, r3, lsl #3] - 999e: b2da uxtb r2, r3 - 99a0: eb04 05c3 add.w r5, r4, r3, lsl #3 - 99a4: b176 cbz r6, 99c4 - for(i = 0; i < _LV_MASK_MAX_NUM; i++) { - 99a6: 3301 adds r3, #1 - 99a8: 2b10 cmp r3, #16 - 99aa: d1f6 bne.n 999a - LV_LOG_WARN("lv_mask_add: no place to add the mask"); - 99ac: 4b09 ldr r3, [pc, #36] ; (99d4 ) - 99ae: 9300 str r3, [sp, #0] - 99b0: 2002 movs r0, #2 - 99b2: 4b09 ldr r3, [pc, #36] ; (99d8 ) - 99b4: 4909 ldr r1, [pc, #36] ; (99dc ) - 99b6: 4c0a ldr r4, [pc, #40] ; (99e0 ) - 99b8: 2257 movs r2, #87 ; 0x57 - 99ba: 47a0 blx r4 - return LV_MASK_ID_INV; - 99bc: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff -} - 99c0: b002 add sp, #8 - 99c2: bd70 pop {r4, r5, r6, pc} - LV_GC_ROOT(_lv_draw_mask_list[i]).param = param; - 99c4: f844 0033 str.w r0, [r4, r3, lsl #3] - LV_GC_ROOT(_lv_draw_mask_list[i]).custom_id = custom_id; - 99c8: 6069 str r1, [r5, #4] - return i; - 99ca: b210 sxth r0, r2 - 99cc: e7f8 b.n 99c0 - 99ce: bf00 nop - 99d0: 200036c4 .word 0x200036c4 - 99d4: 000277bc .word 0x000277bc - 99d8: 000277e2 .word 0x000277e2 - 99dc: 00027787 .word 0x00027787 - 99e0: 0000eb79 .word 0x0000eb79 - -000099e4 : -{ - 99e4: e92d 47f3 stmdb sp!, {r0, r1, r4, r5, r6, r7, r8, r9, sl, lr} - _lv_draw_mask_saved_t * m = LV_GC_ROOT(_lv_draw_mask_list); - 99e8: 4e0d ldr r6, [pc, #52] ; (9a20 ) -{ - 99ea: 4607 mov r7, r0 - 99ec: 4688 mov r8, r1 - 99ee: 4691 mov r9, r2 - 99f0: 469a mov sl, r3 - bool changed = false; - 99f2: 2400 movs r4, #0 - while(m->param) { - 99f4: 6835 ldr r5, [r6, #0] - 99f6: b925 cbnz r5, 9a02 - return changed ? LV_DRAW_MASK_RES_CHANGED : LV_DRAW_MASK_RES_FULL_COVER; - 99f8: 3401 adds r4, #1 - 99fa: b2e0 uxtb r0, r4 -} - 99fc: b002 add sp, #8 - 99fe: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} - res = dsc->cb(mask_buf, abs_x, abs_y, len, (void *)m->param); - 9a02: 9500 str r5, [sp, #0] - 9a04: 682d ldr r5, [r5, #0] - 9a06: 4653 mov r3, sl - 9a08: 464a mov r2, r9 - 9a0a: 4641 mov r1, r8 - 9a0c: 4638 mov r0, r7 - 9a0e: 47a8 blx r5 - if(res == LV_DRAW_MASK_RES_TRANSP) return LV_DRAW_MASK_RES_TRANSP; - 9a10: 2800 cmp r0, #0 - 9a12: d0f3 beq.n 99fc - else if(res == LV_DRAW_MASK_RES_CHANGED) changed = true; - 9a14: 2802 cmp r0, #2 - 9a16: bf08 it eq - 9a18: 2401 moveq r4, #1 - m++; - 9a1a: 3608 adds r6, #8 - 9a1c: e7ea b.n 99f4 - 9a1e: bf00 nop - 9a20: 200036c4 .word 0x200036c4 - -00009a24 : - if(id != LV_MASK_ID_INV) { - 9a24: 1c43 adds r3, r0, #1 - p = LV_GC_ROOT(_lv_draw_mask_list[id]).param; - 9a26: bf18 it ne - 9a28: 4b07 ldrne r3, [pc, #28] ; (9a48 ) - 9a2a: f04f 0200 mov.w r2, #0 - 9a2e: bf1d ittte ne - 9a30: f853 1030 ldrne.w r1, [r3, r0, lsl #3] - LV_GC_ROOT(_lv_draw_mask_list[id]).param = NULL; - 9a34: f843 2030 strne.w r2, [r3, r0, lsl #3] - LV_GC_ROOT(_lv_draw_mask_list[id]).custom_id = NULL; - 9a38: eb03 03c0 addne.w r3, r3, r0, lsl #3 - void * p = NULL; - 9a3c: 4611 moveq r1, r2 - LV_GC_ROOT(_lv_draw_mask_list[id]).custom_id = NULL; - 9a3e: bf18 it ne - 9a40: 605a strne r2, [r3, #4] -} - 9a42: 4608 mov r0, r1 - 9a44: 4770 bx lr - 9a46: bf00 nop - 9a48: 200036c4 .word 0x200036c4 - -00009a4c : -{ - 9a4c: 2200 movs r2, #0 - 9a4e: 4b08 ldr r3, [pc, #32] ; (9a70 ) - 9a50: b530 push {r4, r5, lr} - void * p = NULL; - 9a52: 4611 mov r1, r2 - LV_GC_ROOT(_lv_draw_mask_list[i]).param = NULL; - 9a54: 4614 mov r4, r2 - if(LV_GC_ROOT(_lv_draw_mask_list[i]).custom_id == custom_id) { - 9a56: 685d ldr r5, [r3, #4] - for(i = 0; i < _LV_MASK_MAX_NUM; i++) { - 9a58: 3201 adds r2, #1 - if(LV_GC_ROOT(_lv_draw_mask_list[i]).custom_id == custom_id) { - 9a5a: 4285 cmp r5, r0 - p = LV_GC_ROOT(_lv_draw_mask_list[i]).param; - 9a5c: bf04 itt eq - 9a5e: 6819 ldreq r1, [r3, #0] - LV_GC_ROOT(_lv_draw_mask_list[i]).custom_id = NULL; - 9a60: e9c3 4400 strdeq r4, r4, [r3] - for(i = 0; i < _LV_MASK_MAX_NUM; i++) { - 9a64: 2a10 cmp r2, #16 - 9a66: f103 0308 add.w r3, r3, #8 - 9a6a: d1f4 bne.n 9a56 -} - 9a6c: 4608 mov r0, r1 - 9a6e: bd30 pop {r4, r5, pc} - 9a70: 200036c4 .word 0x200036c4 - -00009a74 : -{ - 9a74: 2300 movs r3, #0 - if(LV_GC_ROOT(_lv_draw_mask_list[i]).param) cnt++; - 9a76: 4a05 ldr r2, [pc, #20] ; (9a8c ) - uint8_t cnt = 0; - 9a78: 4618 mov r0, r3 - if(LV_GC_ROOT(_lv_draw_mask_list[i]).param) cnt++; - 9a7a: f852 1033 ldr.w r1, [r2, r3, lsl #3] - 9a7e: b109 cbz r1, 9a84 - 9a80: 3001 adds r0, #1 - 9a82: b2c0 uxtb r0, r0 - for(i = 0; i < _LV_MASK_MAX_NUM; i++) { - 9a84: 3301 adds r3, #1 - 9a86: 2b10 cmp r3, #16 - 9a88: d1f7 bne.n 9a7a -} - 9a8a: 4770 bx lr - 9a8c: 200036c4 .word 0x200036c4 - -00009a90 : -{ - 9a90: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} - 9a94: f9bd 8018 ldrsh.w r8, [sp, #24] - 9a98: 4615 mov r5, r2 - 9a9a: 460e mov r6, r1 - 9a9c: 461f mov r7, r3 - _lv_memset_00(param, sizeof(lv_draw_mask_line_param_t)); - 9a9e: 212c movs r1, #44 ; 0x2c - 9aa0: 4b3b ldr r3, [pc, #236] ; (9b90 ) -{ - 9aa2: 4604 mov r4, r0 - _lv_memset_00(param, sizeof(lv_draw_mask_line_param_t)); - 9aa4: 4798 blx r3 - if(p1y > p2y) { - 9aa6: 4545 cmp r5, r8 - 9aa8: dd05 ble.n 9ab6 - 9aaa: 462b mov r3, r5 - 9aac: 4645 mov r5, r8 - 9aae: 4698 mov r8, r3 - 9ab0: 4633 mov r3, r6 - p1x = t; - 9ab2: 463e mov r6, r7 - p2x = p1x; - 9ab4: 461f mov r7, r3 - param->cfg.side = side; - 9ab6: 7c23 ldrb r3, [r4, #16] - 9ab8: f89d 201c ldrb.w r2, [sp, #28] - param->cfg.p1.y = p1y; - 9abc: 8165 strh r5, [r4, #10] - param->cfg.side = side; - 9abe: f362 0301 bfi r3, r2, #0, #2 - 9ac2: 7423 strb r3, [r4, #16] - param->flat = (LV_MATH_ABS(p2x - p1x) > LV_MATH_ABS(p2y - p1y)) ? 1 : 0; - 9ac4: eba8 0205 sub.w r2, r8, r5 - 9ac8: 1bbb subs r3, r7, r6 - 9aca: ea83 70e3 eor.w r0, r3, r3, asr #31 - 9ace: ea82 71e2 eor.w r1, r2, r2, asr #31 - 9ad2: eba0 70e3 sub.w r0, r0, r3, asr #31 - 9ad6: eba1 71e2 sub.w r1, r1, r2, asr #31 - 9ada: 4288 cmp r0, r1 - 9adc: f894 1028 ldrb.w r1, [r4, #40] ; 0x28 - param->origo.y = p1y; - 9ae0: 82a5 strh r5, [r4, #20] - param->flat = (LV_MATH_ABS(p2x - p1x) > LV_MATH_ABS(p2y - p1y)) ? 1 : 0; - 9ae2: bfd4 ite le - 9ae4: 2000 movle r0, #0 - 9ae6: 2001 movgt r0, #1 - 9ae8: f360 0100 bfi r1, r0, #0, #1 - param->dsc.cb = (lv_draw_mask_xcb_t)lv_draw_mask_line; - 9aec: 4d29 ldr r5, [pc, #164] ; (9b94 ) - param->flat = (LV_MATH_ABS(p2x - p1x) > LV_MATH_ABS(p2y - p1y)) ? 1 : 0; - 9aee: f884 1028 strb.w r1, [r4, #40] ; 0x28 - param->yx_steep = 0; - 9af2: 2000 movs r0, #0 - if(param->flat) { - 9af4: 07c9 lsls r1, r1, #31 - param->xy_steep = 0; - 9af6: e9c4 0006 strd r0, r0, [r4, #24] - param->cfg.p1.x = p1x; - 9afa: 8126 strh r6, [r4, #8] - param->cfg.p2.x = p2x; - 9afc: 81a7 strh r7, [r4, #12] - param->cfg.p2.y = p2y; - 9afe: f8a4 800e strh.w r8, [r4, #14] - param->origo.x = p1x; - 9b02: 8266 strh r6, [r4, #18] - param->dsc.cb = (lv_draw_mask_xcb_t)lv_draw_mask_line; - 9b04: 6025 str r5, [r4, #0] - param->dsc.type = LV_DRAW_MASK_TYPE_LINE; - 9b06: 7120 strb r0, [r4, #4] - if(param->flat) { - 9b08: d52b bpl.n 9b62 - if(dx) { - 9b0a: b133 cbz r3, 9b1a - m = (1 << 20) / dx; /*m is multiplier to normalize y (upscaled by 1024)*/ - 9b0c: f44f 1180 mov.w r1, #1048576 ; 0x100000 - 9b10: fb91 f1f3 sdiv r1, r1, r3 - param->yx_steep = (m * dy) >> 10; - 9b14: 4351 muls r1, r2 - 9b16: 1289 asrs r1, r1, #10 - 9b18: 61e1 str r1, [r4, #28] - if(dy) { - 9b1a: b132 cbz r2, 9b2a - m = (1 << 20) / dy; /*m is multiplier to normalize x (upscaled by 1024)*/ - 9b1c: f44f 1180 mov.w r1, #1048576 ; 0x100000 - 9b20: fb91 f2f2 sdiv r2, r1, r2 - param->xy_steep = (m * dx) >> 10; - 9b24: 4353 muls r3, r2 - 9b26: 129b asrs r3, r3, #10 - 9b28: 61a3 str r3, [r4, #24] - param->steep = param->yx_steep; - 9b2a: 69e2 ldr r2, [r4, #28] - if(param->cfg.side == LV_DRAW_MASK_LINE_SIDE_LEFT) param->inv = 0; - 9b2c: 7c23 ldrb r3, [r4, #16] - param->steep = param->yx_steep; - 9b2e: 6222 str r2, [r4, #32] - if(param->cfg.side == LV_DRAW_MASK_LINE_SIDE_LEFT) param->inv = 0; - 9b30: f013 0303 ands.w r3, r3, #3 - 9b34: d007 beq.n 9b46 - else if(param->cfg.side == LV_DRAW_MASK_LINE_SIDE_RIGHT) param->inv = 1; - 9b36: 2b01 cmp r3, #1 - 9b38: d005 beq.n 9b46 - else if(param->cfg.side == LV_DRAW_MASK_LINE_SIDE_TOP) { - 9b3a: 2b02 cmp r3, #2 - 9b3c: d123 bne.n 9b86 - if(param->steep > 0) param->inv = 1; - 9b3e: 2a00 cmp r2, #0 - 9b40: bfd4 ite le - 9b42: 2300 movle r3, #0 - 9b44: 2301 movgt r3, #1 - if(param->cfg.side == LV_DRAW_MASK_LINE_SIDE_LEFT) param->inv = 0; - 9b46: f894 1028 ldrb.w r1, [r4, #40] ; 0x28 - if(param->steep < 0) param->spx = -param->spx; - 9b4a: 2a00 cmp r2, #0 - if(param->cfg.side == LV_DRAW_MASK_LINE_SIDE_LEFT) param->inv = 0; - 9b4c: f363 0141 bfi r1, r3, #1, #1 - param->spx = param->steep >> 2; - 9b50: ea4f 03a2 mov.w r3, r2, asr #2 - if(param->steep < 0) param->spx = -param->spx; - 9b54: bfb8 it lt - 9b56: 425b neglt r3, r3 - if(param->cfg.side == LV_DRAW_MASK_LINE_SIDE_LEFT) param->inv = 0; - 9b58: f884 1028 strb.w r1, [r4, #40] ; 0x28 - if(param->steep < 0) param->spx = -param->spx; - 9b5c: 6263 str r3, [r4, #36] ; 0x24 -} - 9b5e: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} - if(dy) { - 9b62: b132 cbz r2, 9b72 - m = (1 << 20) / dy; /*m is multiplier to normalize x (upscaled by 1024)*/ - 9b64: f44f 1180 mov.w r1, #1048576 ; 0x100000 - 9b68: fb91 f1f2 sdiv r1, r1, r2 - param->xy_steep = (m * dx) >> 10; - 9b6c: 4359 muls r1, r3 - 9b6e: 1289 asrs r1, r1, #10 - 9b70: 61a1 str r1, [r4, #24] - if(dx) { - 9b72: b133 cbz r3, 9b82 - m = (1 << 20) / dx; /*m is multiplier to normalize x (upscaled by 1024)*/ - 9b74: f44f 1180 mov.w r1, #1048576 ; 0x100000 - 9b78: fb91 f3f3 sdiv r3, r1, r3 - param->yx_steep = (m * dy) >> 10; - 9b7c: 4353 muls r3, r2 - 9b7e: 129b asrs r3, r3, #10 - 9b80: 61e3 str r3, [r4, #28] - param->steep = param->xy_steep; - 9b82: 69a2 ldr r2, [r4, #24] - 9b84: e7d2 b.n 9b2c - if(param->steep > 0) param->inv = 0; - 9b86: 2a00 cmp r2, #0 - 9b88: bfcc ite gt - 9b8a: 2300 movgt r3, #0 - 9b8c: 2301 movle r3, #1 - 9b8e: e7da b.n 9b46 - 9b90: 0000f2a9 .word 0x0000f2a9 - 9b94: 00009159 .word 0x00009159 - -00009b98 : -{ - 9b98: b5f8 push {r3, r4, r5, r6, r7, lr} - 9b9a: 4604 mov r4, r0 - return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - 9b9c: 88c8 ldrh r0, [r1, #6] - return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - 9b9e: 888d ldrh r5, [r1, #4] - 9ba0: 461f mov r7, r3 - return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - 9ba2: 884b ldrh r3, [r1, #2] - 9ba4: 3001 adds r0, #1 - 9ba6: 1ac0 subs r0, r0, r3 - return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - 9ba8: 880b ldrh r3, [r1, #0] - 9baa: 3501 adds r5, #1 - 9bac: 1aed subs r5, r5, r3 - int32_t short_side = LV_MATH_MIN(w, h); - 9bae: b200 sxth r0, r0 - 9bb0: b22d sxth r5, r5 - 9bb2: 42a8 cmp r0, r5 - 9bb4: bfa8 it ge - 9bb6: 4628 movge r0, r5 - if(radius > short_side >> 1) radius = short_side >> 1; - 9bb8: ebb2 0f60 cmp.w r2, r0, asr #1 - 9bbc: ea4f 0360 mov.w r3, r0, asr #1 -{ - 9bc0: 4616 mov r6, r2 - lv_area_copy(¶m->cfg.rect, rect); - 9bc2: f104 0008 add.w r0, r4, #8 - if(radius > short_side >> 1) radius = short_side >> 1; - 9bc6: bfc8 it gt - 9bc8: b21e sxthgt r6, r3 - lv_area_copy(¶m->cfg.rect, rect); - 9bca: 4b08 ldr r3, [pc, #32] ; (9bec ) - 9bcc: 4798 blx r3 - param->cfg.outer = inv ? 1 : 0; - 9bce: 7ca3 ldrb r3, [r4, #18] - param->cfg.radius = radius; - 9bd0: 8226 strh r6, [r4, #16] - param->cfg.outer = inv ? 1 : 0; - 9bd2: f367 0300 bfi r3, r7, #0, #1 - 9bd6: 74a3 strb r3, [r4, #18] - param->dsc.cb = (lv_draw_mask_xcb_t)lv_draw_mask_radius; - 9bd8: 4b05 ldr r3, [pc, #20] ; (9bf0 ) - 9bda: 6023 str r3, [r4, #0] - param->dsc.type = LV_DRAW_MASK_TYPE_RADIUS; - 9bdc: 2302 movs r3, #2 - 9bde: 7123 strb r3, [r4, #4] - param->y_prev_x.i = 0; - 9be0: f04f 4200 mov.w r2, #2147483648 ; 0x80000000 - 9be4: 2300 movs r3, #0 - 9be6: e9c4 2305 strd r2, r3, [r4, #20] -} - 9bea: bdf8 pop {r3, r4, r5, r6, r7, pc} - 9bec: 00009511 .word 0x00009511 - 9bf0: 00009525 .word 0x00009525 - -00009bf4 : - lv_draw_mask_remove_id(mask_rout_id); - _lv_mem_buf_release(mask_buf); -} - -LV_ATTRIBUTE_FAST_MEM static inline lv_color_t grad_get(lv_draw_rect_dsc_t * dsc, lv_coord_t s, lv_coord_t i) -{ - 9bf4: b570 push {r4, r5, r6, lr} - int32_t min = (dsc->bg_main_color_stop * s) >> 8; - 9bf6: f9b0 4008 ldrsh.w r4, [r0, #8] - 9bfa: fb04 f301 mul.w r3, r4, r1 - if(i <= min) return dsc->bg_color; - 9bfe: ebb2 2f23 cmp.w r2, r3, asr #8 - int32_t min = (dsc->bg_main_color_stop * s) >> 8; - 9c02: ea4f 2523 mov.w r5, r3, asr #8 - if(i <= min) return dsc->bg_color; - 9c06: dc01 bgt.n 9c0c - 9c08: 8840 ldrh r0, [r0, #2] - int32_t d = dsc->bg_grad_color_stop - dsc->bg_main_color_stop; - d = (s * d) >> 8; - i -= min; - lv_opa_t mix = (i * 255) / d; - return lv_color_mix(dsc->bg_grad_color, dsc->bg_color, mix); -} - 9c0a: bd70 pop {r4, r5, r6, pc} - int32_t max = (dsc->bg_grad_color_stop * s) >> 8; - 9c0c: f9b0 300a ldrsh.w r3, [r0, #10] - 9c10: fb01 f603 mul.w r6, r1, r3 - if(i >= max) return dsc->bg_grad_color; - 9c14: ebb2 2f26 cmp.w r2, r6, asr #8 - 9c18: db01 blt.n 9c1e - 9c1a: 8880 ldrh r0, [r0, #4] - 9c1c: e7f5 b.n 9c0a - int32_t d = dsc->bg_grad_color_stop - dsc->bg_main_color_stop; - 9c1e: 1b1b subs r3, r3, r4 - d = (s * d) >> 8; - 9c20: 4359 muls r1, r3 - i -= min; - 9c22: 1b52 subs r2, r2, r5 - d = (s * d) >> 8; - 9c24: 120b asrs r3, r1, #8 - lv_opa_t mix = (i * 255) / d; - 9c26: b212 sxth r2, r2 -{ - lv_color_t ret; -#if LV_COLOR_DEPTH != 1 - /*LV_COLOR_DEPTH == 8, 16 or 32*/ - LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix))); - LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix))); - 9c28: 8841 ldrh r1, [r0, #2] - LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix))); - 9c2a: 7906 ldrb r6, [r0, #4] - 9c2c: ebc2 2202 rsb r2, r2, r2, lsl #8 - 9c30: fb92 f3f3 sdiv r3, r2, r3 - LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix))); - 9c34: 8882 ldrh r2, [r0, #4] - 9c36: b2db uxtb r3, r3 - LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix))); - 9c38: f1c3 05ff rsb r5, r3, #255 ; 0xff - LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix))); - 9c3c: f3c1 1145 ubfx r1, r1, #5, #6 - 9c40: f3c2 1245 ubfx r2, r2, #5, #6 - 9c44: 4369 muls r1, r5 - 9c46: fb03 1102 mla r1, r3, r2, r1 - LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix))); - 9c4a: 7882 ldrb r2, [r0, #2] - 9c4c: f002 021f and.w r2, r2, #31 - 9c50: f006 061f and.w r6, r6, #31 - 9c54: 436a muls r2, r5 - LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix))); - 9c56: f248 0481 movw r4, #32897 ; 0x8081 - LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix))); - 9c5a: fb03 2206 mla r2, r3, r6, r2 - LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix))); - 9c5e: 4361 muls r1, r4 - LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix))); - 9c60: 4362 muls r2, r4 - 9c62: f3c1 51c5 ubfx r1, r1, #23, #6 - 9c66: f3c2 52c4 ubfx r2, r2, #23, #5 - 9c6a: ea42 1241 orr.w r2, r2, r1, lsl #5 - LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix))); - 9c6e: 78c1 ldrb r1, [r0, #3] - 9c70: 7946 ldrb r6, [r0, #5] - 9c72: 08c9 lsrs r1, r1, #3 - 9c74: 08f6 lsrs r6, r6, #3 - 9c76: 4369 muls r1, r5 - 9c78: fb03 1306 mla r3, r3, r6, r1 - 9c7c: 4363 muls r3, r4 - 9c7e: 0ddb lsrs r3, r3, #23 - 9c80: ea42 20c3 orr.w r0, r2, r3, lsl #11 - return lv_color_mix(dsc->bg_grad_color, dsc->bg_color, mix); - 9c84: e7c1 b.n 9c0a - ... - -00009c88 : -#endif - -} - -LV_ATTRIBUTE_FAST_MEM static void shadow_blur_corner(lv_coord_t size, lv_coord_t sw, uint16_t * sh_ups_buf) -{ - 9c88: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - int32_t s_left = sw >> 1; - int32_t s_right = (sw >> 1); - if((sw & 1) == 0) s_left--; - - /*Horizontal blur*/ - uint16_t * sh_ups_blur_buf = _lv_mem_buf_get(size * sizeof(uint16_t)); - 9c8c: 0045 lsls r5, r0, #1 - int32_t s_left = sw >> 1; - 9c8e: ea4f 0961 mov.w r9, r1, asr #1 -{ - 9c92: b087 sub sp, #28 - if((sw & 1) == 0) s_left--; - 9c94: 07cb lsls r3, r1, #31 -{ - 9c96: 4604 mov r4, r0 - uint16_t * sh_ups_blur_buf = _lv_mem_buf_get(size * sizeof(uint16_t)); - 9c98: 4b5a ldr r3, [pc, #360] ; (9e04 ) - 9c9a: 4628 mov r0, r5 -{ - 9c9c: 460e mov r6, r1 - 9c9e: 4617 mov r7, r2 - int32_t s_left = sw >> 1; - 9ca0: 46ca mov sl, r9 - if((sw & 1) == 0) s_left--; - 9ca2: bf58 it pl - 9ca4: f109 3aff addpl.w sl, r9, #4294967295 ; 0xffffffff - uint16_t * sh_ups_blur_buf = _lv_mem_buf_get(size * sizeof(uint16_t)); - 9ca8: 4798 blx r3 - int32_t y; - - uint16_t * sh_ups_tmp_buf = sh_ups_buf; - - for(y = 0; y < size; y++) { - int32_t v = sh_ups_tmp_buf[size - 1] * sw; - 9caa: 1eab subs r3, r5, #2 - 9cac: 9300 str r3, [sp, #0] - 9cae: ea4f 0349 mov.w r3, r9, lsl #1 - 9cb2: 9301 str r3, [sp, #4] - 9cb4: f06f 0301 mvn.w r3, #1 - 9cb8: fb0a 3303 mla r3, sl, r3, r3 - uint16_t * sh_ups_blur_buf = _lv_mem_buf_get(size * sizeof(uint16_t)); - 9cbc: 4601 mov r1, r0 - for(y = 0; y < size; y++) { - 9cbe: 46b8 mov r8, r7 - 9cc0: f04f 0b00 mov.w fp, #0 - 9cc4: 9302 str r3, [sp, #8] - 9cc6: 455c cmp r4, fp - 9cc8: dc22 bgt.n 9d10 - sh_ups_tmp_buf += size; - } - - /*Vertical blur*/ - uint32_t i; - sh_ups_buf[0] = sh_ups_buf[0] / sw; - 9cca: 883b ldrh r3, [r7, #0] - 9ccc: fb93 f3f6 sdiv r3, r3, r6 - for(i = 1; i < (uint32_t)size * size; i++) { - 9cd0: fb04 f804 mul.w r8, r4, r4 - sh_ups_buf[0] = sh_ups_buf[0] / sw; - 9cd4: 803b strh r3, [r7, #0] - for(i = 1; i < (uint32_t)size * size; i++) { - 9cd6: 463a mov r2, r7 - 9cd8: 463b mov r3, r7 - 9cda: f04f 0c01 mov.w ip, #1 - 9cde: 45c4 cmp ip, r8 - 9ce0: d341 bcc.n 9d66 - 9ce2: 426b negs r3, r5 - 9ce4: fb09 f303 mul.w r3, r9, r3 - 9ce8: 9303 str r3, [sp, #12] - v -= top_val; - - /*Add the bottom pixel*/ - uint32_t bottom_val; - if(y + s_left + 1 < size) bottom_val = sh_ups_buf[(y + s_left + 1) * size + x]; - else bottom_val = sh_ups_buf[(size - 1) * size + x]; - 9cea: 1e63 subs r3, r4, #1 - 9cec: fb05 7303 mla r3, r5, r3, r7 - 9cf0: 9302 str r3, [sp, #8] - 9cf2: f10a 0301 add.w r3, sl, #1 - 9cf6: 9301 str r3, [sp, #4] - 9cf8: fb0a 5a05 mla sl, sl, r5, r5 - for(x = 0; x < size; x++) { - 9cfc: f04f 0c00 mov.w ip, #0 - 9d00: 4564 cmp r4, ip - 9d02: dc3e bgt.n 9d82 - for(y = 0; y < size; y++, sh_ups_tmp_buf += size) { - (*sh_ups_tmp_buf) = sh_ups_blur_buf[y]; - } - } - - _lv_mem_buf_release(sh_ups_blur_buf); - 9d04: 4b40 ldr r3, [pc, #256] ; (9e08 ) - 9d06: 4608 mov r0, r1 -} - 9d08: b007 add sp, #28 - 9d0a: e8bd 4ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - _lv_mem_buf_release(sh_ups_blur_buf); - 9d0e: 4718 bx r3 - int32_t v = sh_ups_tmp_buf[size - 1] * sw; - 9d10: 9b00 ldr r3, [sp, #0] - 9d12: 9801 ldr r0, [sp, #4] - 9d14: f838 2003 ldrh.w r2, [r8, r3] - 9d18: eb00 0c08 add.w ip, r0, r8 - 9d1c: 9802 ldr r0, [sp, #8] - 9d1e: 4372 muls r2, r6 - for(x = size - 1; x >= 0; x--) { - 9d20: 1e63 subs r3, r4, #1 - 9d22: 4440 add r0, r8 - sh_ups_blur_buf[x] = v; - 9d24: f821 2013 strh.w r2, [r1, r3, lsl #1] - if(x + s_right < size) right_val = sh_ups_tmp_buf[x + s_right]; - 9d28: eb03 0e09 add.w lr, r3, r9 - 9d2c: 4574 cmp r4, lr - 9d2e: bfcc ite gt - 9d30: f83c e013 ldrhgt.w lr, [ip, r3, lsl #1] - uint32_t right_val = 0; - 9d34: f04f 0e00 movle.w lr, #0 - v -= right_val; - 9d38: eba2 0e0e sub.w lr, r2, lr - if(x - s_left - 1 < 0) left_val = sh_ups_tmp_buf[0]; - 9d3c: eba3 020a sub.w r2, r3, sl - 9d40: 2a00 cmp r2, #0 - 9d42: bfd4 ite le - 9d44: f8b8 2000 ldrhle.w r2, [r8] - else left_val = sh_ups_tmp_buf[x - s_left - 1]; - 9d48: f830 2013 ldrhgt.w r2, [r0, r3, lsl #1] - for(x = size - 1; x >= 0; x--) { - 9d4c: 3b01 subs r3, #1 - v += left_val; - 9d4e: 4472 add r2, lr - for(x = size - 1; x >= 0; x--) { - 9d50: d2e8 bcs.n 9d24 - _lv_memcpy(sh_ups_tmp_buf, sh_ups_blur_buf, size * sizeof(uint16_t)); - 9d52: 4640 mov r0, r8 - 9d54: 4b2d ldr r3, [pc, #180] ; (9e0c ) - 9d56: 9103 str r1, [sp, #12] - 9d58: 462a mov r2, r5 - 9d5a: 4798 blx r3 - sh_ups_tmp_buf += size; - 9d5c: 44a8 add r8, r5 - for(y = 0; y < size; y++) { - 9d5e: 9903 ldr r1, [sp, #12] - 9d60: f10b 0b01 add.w fp, fp, #1 - 9d64: e7af b.n 9cc6 - if(sh_ups_buf[i] == sh_ups_buf[i - 1]) sh_ups_buf[i] = sh_ups_buf[i - 1]; - 9d66: 8858 ldrh r0, [r3, #2] - 9d68: f833 eb02 ldrh.w lr, [r3], #2 - 9d6c: 4570 cmp r0, lr - else sh_ups_buf[i] = sh_ups_buf[i] / sw; - 9d6e: bf1c itt ne - 9d70: fb90 f0f6 sdivne r0, r0, r6 - 9d74: fa1f fe80 uxthne.w lr, r0 - 9d78: f8a3 e000 strh.w lr, [r3] - for(i = 1; i < (uint32_t)size * size; i++) { - 9d7c: f10c 0c01 add.w ip, ip, #1 - 9d80: e7ad b.n 9cde - sh_ups_tmp_buf = &sh_ups_buf[x]; - 9d82: 9803 ldr r0, [sp, #12] - int32_t v = sh_ups_tmp_buf[0] * sw; - 9d84: 8813 ldrh r3, [r2, #0] - 9d86: 1810 adds r0, r2, r0 - 9d88: 4373 muls r3, r6 - 9d8a: 9005 str r0, [sp, #20] - 9d8c: 2700 movs r7, #0 - 9d8e: eb0a 0002 add.w r0, sl, r2 - 9d92: 9004 str r0, [sp, #16] - sh_ups_tmp_buf = &sh_ups_buf[x]; - 9d94: 4696 mov lr, r2 - int32_t v = sh_ups_tmp_buf[0] * sw; - 9d96: 9300 str r3, [sp, #0] - 9d98: 4690 mov r8, r2 - for(y = 0; y < size ; y++, sh_ups_tmp_buf += size) { - 9d9a: 4638 mov r0, r7 - sh_ups_blur_buf[y] = v < 0 ? 0 : (v >> SHADOW_UPSACALE_SHIFT); - 9d9c: 9b00 ldr r3, [sp, #0] - 9d9e: 2b00 cmp r3, #0 - 9da0: bfac ite ge - 9da2: f3c3 1b8f ubfxge fp, r3, #6, #16 - 9da6: f04f 0b00 movlt.w fp, #0 - 9daa: f821 b010 strh.w fp, [r1, r0, lsl #1] - if(y - s_right <= 0) top_val = sh_ups_tmp_buf[0]; - 9dae: eba0 0b09 sub.w fp, r0, r9 - 9db2: f1bb 0f00 cmp.w fp, #0 - else top_val = sh_ups_buf[(y - s_right) * size + x]; - 9db6: bfca itet gt - 9db8: 9b05 ldrgt r3, [sp, #20] - if(y - s_right <= 0) top_val = sh_ups_tmp_buf[0]; - 9dba: f8b8 b000 ldrhle.w fp, [r8] - else top_val = sh_ups_buf[(y - s_right) * size + x]; - 9dbe: f833 b007 ldrhgt.w fp, [r3, r7] - v -= top_val; - 9dc2: 9b00 ldr r3, [sp, #0] - 9dc4: eba3 0b0b sub.w fp, r3, fp - if(y + s_left + 1 < size) bottom_val = sh_ups_buf[(y + s_left + 1) * size + x]; - 9dc8: 9b01 ldr r3, [sp, #4] - 9dca: 4403 add r3, r0 - 9dcc: 429c cmp r4, r3 - 9dce: bfcb itete gt - 9dd0: 9b04 ldrgt r3, [sp, #16] - else bottom_val = sh_ups_buf[(size - 1) * size + x]; - 9dd2: 9b02 ldrle r3, [sp, #8] - if(y + s_left + 1 < size) bottom_val = sh_ups_buf[(y + s_left + 1) * size + x]; - 9dd4: 5bdb ldrhgt r3, [r3, r7] - else bottom_val = sh_ups_buf[(size - 1) * size + x]; - 9dd6: f833 301c ldrhle.w r3, [r3, ip, lsl #1] - for(y = 0; y < size ; y++, sh_ups_tmp_buf += size) { - 9dda: 3001 adds r0, #1 - v += bottom_val; - 9ddc: 445b add r3, fp - for(y = 0; y < size ; y++, sh_ups_tmp_buf += size) { - 9dde: 4284 cmp r4, r0 - v += bottom_val; - 9de0: 9300 str r3, [sp, #0] - for(y = 0; y < size ; y++, sh_ups_tmp_buf += size) { - 9de2: 44a8 add r8, r5 - 9de4: 442f add r7, r5 - 9de6: dcd9 bgt.n 9d9c - for(y = 0; y < size; y++, sh_ups_tmp_buf += size) { - 9de8: 2300 movs r3, #0 - (*sh_ups_tmp_buf) = sh_ups_blur_buf[y]; - 9dea: f831 0013 ldrh.w r0, [r1, r3, lsl #1] - 9dee: f8ae 0000 strh.w r0, [lr] - for(y = 0; y < size; y++, sh_ups_tmp_buf += size) { - 9df2: 3301 adds r3, #1 - 9df4: 429c cmp r4, r3 - 9df6: 44ae add lr, r5 - 9df8: dcf7 bgt.n 9dea - for(x = 0; x < size; x++) { - 9dfa: f10c 0c01 add.w ip, ip, #1 - 9dfe: 3202 adds r2, #2 - 9e00: e77e b.n 9d00 - 9e02: bf00 nop - 9e04: 0000f145 .word 0x0000f145 - 9e08: 0000edf9 .word 0x0000edf9 - 9e0c: 0000eec1 .word 0x0000eec1 - -00009e10 : -LV_ATTRIBUTE_FAST_MEM static inline void * _lv_memcpy_small(void * dst, const void * src, size_t len) -{ - uint8_t * d8 = (uint8_t *)dst; - const uint8_t * s8 = (const uint8_t *)src; - - while(len) { - 9e10: 3901 subs r1, #1 - 9e12: f100 0308 add.w r3, r0, #8 - *d8 = *s8; - 9e16: f811 2f01 ldrb.w r2, [r1, #1]! - 9e1a: f800 2b01 strb.w r2, [r0], #1 - while(len) { - 9e1e: 4298 cmp r0, r3 - 9e20: d1f9 bne.n 9e16 - * @param src pointer to the source area - */ -inline static void lv_area_copy(lv_area_t * dest, const lv_area_t * src) -{ - _lv_memcpy_small(dest, src, sizeof(lv_area_t)); -} - 9e22: 4770 bx lr - -00009e24 : -{ - 9e24: b510 push {r4, lr} - _lv_memset_00(dsc, sizeof(lv_draw_rect_dsc_t)); - 9e26: 4b0f ldr r3, [pc, #60] ; (9e64 ) - 9e28: 2154 movs r1, #84 ; 0x54 -{ - 9e2a: 4604 mov r4, r0 - _lv_memset_00(dsc, sizeof(lv_draw_rect_dsc_t)); - 9e2c: 4798 blx r3 - dsc->bg_color = LV_COLOR_WHITE; - 9e2e: 4b0e ldr r3, [pc, #56] ; (9e68 ) - 9e30: 881b ldrh r3, [r3, #0] - 9e32: 8063 strh r3, [r4, #2] - dsc->bg_grad_color = LV_COLOR_BLACK; - 9e34: 2200 movs r2, #0 - dsc->bg_grad_color_stop = 0xFF; - 9e36: 23ff movs r3, #255 ; 0xff - dsc->bg_grad_color = LV_COLOR_BLACK; - 9e38: 80a2 strh r2, [r4, #4] - dsc->border_color = LV_COLOR_BLACK; - 9e3a: 81e2 strh r2, [r4, #14] - dsc->value_color = LV_COLOR_BLACK; - 9e3c: f8a4 2046 strh.w r2, [r4, #70] ; 0x46 - dsc->shadow_color = LV_COLOR_BLACK; - 9e40: 83e2 strh r2, [r4, #30] - dsc->bg_grad_color_stop = 0xFF; - 9e42: 8163 strh r3, [r4, #10] - dsc->bg_opa = LV_OPA_COVER; - 9e44: 7323 strb r3, [r4, #12] - dsc->outline_opa = LV_OPA_COVER; - 9e46: 7723 strb r3, [r4, #28] - dsc->border_opa = LV_OPA_COVER; - 9e48: 7523 strb r3, [r4, #20] - dsc->pattern_recolor = LV_COLOR_BLACK; - 9e4a: 86a2 strh r2, [r4, #52] ; 0x34 - dsc->pattern_opa = LV_OPA_COVER; - 9e4c: f884 3036 strb.w r3, [r4, #54] ; 0x36 - dsc->pattern_font = LV_THEME_DEFAULT_FONT_NORMAL; - 9e50: 4a06 ldr r2, [pc, #24] ; (9e6c ) - dsc->value_opa = LV_OPA_COVER; - 9e52: f884 3044 strb.w r3, [r4, #68] ; 0x44 - dsc->shadow_opa = LV_OPA_COVER; - 9e56: f884 3028 strb.w r3, [r4, #40] ; 0x28 - dsc->border_side = LV_BORDER_SIDE_FULL; - 9e5a: 230f movs r3, #15 - dsc->pattern_font = LV_THEME_DEFAULT_FONT_NORMAL; - 9e5c: 6322 str r2, [r4, #48] ; 0x30 - dsc->value_font = LV_THEME_DEFAULT_FONT_NORMAL; - 9e5e: 6422 str r2, [r4, #64] ; 0x40 - dsc->border_side = LV_BORDER_SIDE_FULL; - 9e60: 8263 strh r3, [r4, #18] -} - 9e62: bd10 pop {r4, pc} - 9e64: 0000f2a9 .word 0x0000f2a9 - 9e68: 00027874 .word 0x00027874 - 9e6c: 20000004 .word 0x20000004 - -00009e70 : -{ - 9e70: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - 9e74: 4692 mov sl, r2 - * @param area_p pointer to an area - * @return the height of the area (if y1 == y2 -> height = 1) - */ -static inline lv_coord_t lv_area_get_height(const lv_area_t * area_p) -{ - return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - 9e76: 88c2 ldrh r2, [r0, #6] - 9e78: 8845 ldrh r5, [r0, #2] - 9e7a: 1c53 adds r3, r2, #1 - 9e7c: ed2d 8b04 vpush {d8-d9} - 9e80: 1b5b subs r3, r3, r5 - if(lv_area_get_height(coords) < 1 || lv_area_get_width(coords) < 1) return; - 9e82: b21b sxth r3, r3 - 9e84: 2b00 cmp r3, #0 -{ - 9e86: b0ad sub sp, #180 ; 0xb4 - 9e88: 4683 mov fp, r0 - 9e8a: 4688 mov r8, r1 - if(lv_area_get_height(coords) < 1 || lv_area_get_width(coords) < 1) return; - 9e8c: f341 816e ble.w b16c - return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - 9e90: 8881 ldrh r1, [r0, #4] - 9e92: 8800 ldrh r0, [r0, #0] - 9e94: 1c4b adds r3, r1, #1 - 9e96: 1a1b subs r3, r3, r0 - 9e98: b21b sxth r3, r3 - 9e9a: 2b00 cmp r3, #0 - 9e9c: f341 8166 ble.w b16c - if(dsc->shadow_width == 0) return; - 9ea0: f9ba 4020 ldrsh.w r4, [sl, #32] - 9ea4: 2c00 cmp r4, #0 - 9ea6: f000 8542 beq.w a92e - if(dsc->shadow_opa <= LV_OPA_MIN) return; - 9eaa: f89a 3028 ldrb.w r3, [sl, #40] ; 0x28 - 9eae: 9308 str r3, [sp, #32] - 9eb0: 2b05 cmp r3, #5 - 9eb2: f240 853c bls.w a92e - if(dsc->shadow_width == 1 && dsc->shadow_ofs_x == 0 && - 9eb6: f8da 7020 ldr.w r7, [sl, #32] - dsc->shadow_ofs_y == 0 && dsc->shadow_spread <= 0) { - 9eba: f9ba 6024 ldrsh.w r6, [sl, #36] ; 0x24 - 9ebe: f9ba 3026 ldrsh.w r3, [sl, #38] ; 0x26 - if(dsc->shadow_width == 1 && dsc->shadow_ofs_x == 0 && - 9ec2: 2f01 cmp r7, #1 - 9ec4: d103 bne.n 9ece - 9ec6: b916 cbnz r6, 9ece - dsc->shadow_ofs_y == 0 && dsc->shadow_spread <= 0) { - 9ec8: 2b00 cmp r3, #0 - 9eca: f340 8530 ble.w a92e - sh_rect_area.x1 = coords->x1 + dsc->shadow_ofs_x - dsc->shadow_spread; - 9ece: f8ba 7022 ldrh.w r7, [sl, #34] ; 0x22 - 9ed2: b29b uxth r3, r3 - 9ed4: eba7 0c03 sub.w ip, r7, r3 - sh_rect_area.y1 = coords->y1 + dsc->shadow_ofs_y - dsc->shadow_spread; - 9ed8: b2b6 uxth r6, r6 - sh_rect_area.x2 = coords->x2 + dsc->shadow_ofs_x + dsc->shadow_spread; - 9eda: 441f add r7, r3 - 9edc: 4439 add r1, r7 - sh_rect_area.y1 = coords->y1 + dsc->shadow_ofs_y - dsc->shadow_spread; - 9ede: 1af7 subs r7, r6, r3 - sh_rect_area.y2 = coords->y2 + dsc->shadow_ofs_y + dsc->shadow_spread; - 9ee0: 4433 add r3, r6 - 9ee2: 441a add r2, r3 - sh_area.x1 = sh_rect_area.x1 - sw / 2 - 1; - 9ee4: eb04 73d4 add.w r3, r4, r4, lsr #31 - 9ee8: 105b asrs r3, r3, #1 - 9eea: 425b negs r3, r3 - sh_rect_area.y2 = coords->y2 + dsc->shadow_ofs_y + dsc->shadow_spread; - 9eec: b292 uxth r2, r2 - 9eee: 1e5e subs r6, r3, #1 - sh_rect_area.x2 = coords->x2 + dsc->shadow_ofs_x + dsc->shadow_spread; - 9ef0: b289 uxth r1, r1 - 9ef2: f1c3 0301 rsb r3, r3, #1 - 9ef6: f8ad 1044 strh.w r1, [sp, #68] ; 0x44 - sh_area.x2 = sh_rect_area.x2 + sw / 2 + 1; - 9efa: fa11 f183 uxtah r1, r1, r3 - sh_area.y2 = sh_rect_area.y2 + sw / 2 + 1; - 9efe: fa12 f383 uxtah r3, r2, r3 - 9f02: f8ad 304e strh.w r3, [sp, #78] ; 0x4e - if(opa > LV_OPA_MAX) opa = LV_OPA_COVER; - 9f06: 9b08 ldr r3, [sp, #32] - sh_rect_area.y2 = coords->y2 + dsc->shadow_ofs_y + dsc->shadow_spread; - 9f08: f8ad 2046 strh.w r2, [sp, #70] ; 0x46 - sh_rect_area.x1 = coords->x1 + dsc->shadow_ofs_x - dsc->shadow_spread; - 9f0c: 4460 add r0, ip - sh_rect_area.y1 = coords->y1 + dsc->shadow_ofs_y - dsc->shadow_spread; - 9f0e: 443d add r5, r7 - if(opa > LV_OPA_MAX) opa = LV_OPA_COVER; - 9f10: 2bfb cmp r3, #251 ; 0xfb - sh_rect_area.y1 = coords->y1 + dsc->shadow_ofs_y - dsc->shadow_spread; - 9f12: b2ad uxth r5, r5 - sh_rect_area.x1 = coords->x1 + dsc->shadow_ofs_x - dsc->shadow_spread; - 9f14: b280 uxth r0, r0 - if(opa > LV_OPA_MAX) opa = LV_OPA_COVER; - 9f16: bf28 it cs - 9f18: 23ff movcs r3, #255 ; 0xff - sh_rect_area.x1 = coords->x1 + dsc->shadow_ofs_x - dsc->shadow_spread; - 9f1a: f8ad 0040 strh.w r0, [sp, #64] ; 0x40 - sh_area.x1 = sh_rect_area.x1 - sw / 2 - 1; - 9f1e: fa10 f086 uxtah r0, r0, r6 - sh_area.y1 = sh_rect_area.y1 - sw / 2 - 1; - 9f22: fa15 f686 uxtah r6, r5, r6 - sh_area.x2 = sh_rect_area.x2 + sw / 2 + 1; - 9f26: f8ad 104c strh.w r1, [sp, #76] ; 0x4c - sh_rect_area.y1 = coords->y1 + dsc->shadow_ofs_y - dsc->shadow_spread; - 9f2a: f8ad 5042 strh.w r5, [sp, #66] ; 0x42 - if(opa > LV_OPA_MAX) opa = LV_OPA_COVER; - 9f2e: 9308 str r3, [sp, #32] - sh_area.x1 = sh_rect_area.x1 - sw / 2 - 1; - 9f30: f8ad 0048 strh.w r0, [sp, #72] ; 0x48 - lv_disp_t * disp = _lv_refr_get_disp_refreshing(); - 9f34: 4bac ldr r3, [pc, #688] ; (a1e8 ) - sh_area.y1 = sh_rect_area.y1 - sw / 2 - 1; - 9f36: f8ad 604a strh.w r6, [sp, #74] ; 0x4a - lv_disp_t * disp = _lv_refr_get_disp_refreshing(); - 9f3a: 4798 blx r3 - lv_disp_buf_t * vdb = lv_disp_get_buf(disp); - 9f3c: 4bab ldr r3, [pc, #684] ; (a1ec ) - 9f3e: 4798 blx r3 - is_common = _lv_area_intersect(&draw_area, &sh_area, clip); - 9f40: 4bab ldr r3, [pc, #684] ; (a1f0 ) - lv_disp_buf_t * vdb = lv_disp_get_buf(disp); - 9f42: 4605 mov r5, r0 - is_common = _lv_area_intersect(&draw_area, &sh_area, clip); - 9f44: 4642 mov r2, r8 - 9f46: a912 add r1, sp, #72 ; 0x48 - 9f48: a814 add r0, sp, #80 ; 0x50 - 9f4a: 4798 blx r3 - if(is_common == false) return; - 9f4c: 2800 cmp r0, #0 - 9f4e: f000 84ee beq.w a92e - draw_area.x1 -= disp_area->x1; - 9f52: 8a29 ldrh r1, [r5, #16] - 9f54: f8bd 3050 ldrh.w r3, [sp, #80] ; 0x50 - draw_area.y1 -= disp_area->y1; - 9f58: 8a6a ldrh r2, [r5, #18] - draw_area.x1 -= disp_area->x1; - 9f5a: 1a5b subs r3, r3, r1 - 9f5c: f8ad 3050 strh.w r3, [sp, #80] ; 0x50 - draw_area.y1 -= disp_area->y1; - 9f60: f8bd 3052 ldrh.w r3, [sp, #82] ; 0x52 - 9f64: 1a9b subs r3, r3, r2 - 9f66: f8ad 3052 strh.w r3, [sp, #82] ; 0x52 - draw_area.x2 -= disp_area->x1; - 9f6a: f8bd 3054 ldrh.w r3, [sp, #84] ; 0x54 - 9f6e: 1a5b subs r3, r3, r1 - 9f70: f8ad 3054 strh.w r3, [sp, #84] ; 0x54 - draw_area.y2 -= disp_area->y1; - 9f74: f8bd 3056 ldrh.w r3, [sp, #86] ; 0x56 - 9f78: 1a9b subs r3, r3, r2 - 9f7a: f8ad 3056 strh.w r3, [sp, #86] ; 0x56 - lv_area_copy(&bg_coords, coords); - 9f7e: 4659 mov r1, fp - 9f80: 4b9c ldr r3, [pc, #624] ; (a1f4 ) - 9f82: a816 add r0, sp, #88 ; 0x58 - 9f84: 4798 blx r3 - bg_coords.x1 += 1; - 9f86: f8bd 5058 ldrh.w r5, [sp, #88] ; 0x58 - bg_coords.y1 += 1; - 9f8a: f8bd 005a ldrh.w r0, [sp, #90] ; 0x5a - bg_coords.x2 -= 1; - 9f8e: f8bd 205c ldrh.w r2, [sp, #92] ; 0x5c - bg_coords.y2 -= 1; - 9f92: f8bd 105e ldrh.w r1, [sp, #94] ; 0x5e - 9f96: f8bd 7044 ldrh.w r7, [sp, #68] ; 0x44 - bg_coords.x1 += 1; - 9f9a: 3501 adds r5, #1 - bg_coords.y1 += 1; - 9f9c: 3001 adds r0, #1 - bg_coords.x1 += 1; - 9f9e: b2ad uxth r5, r5 - bg_coords.y1 += 1; - 9fa0: b280 uxth r0, r0 - bg_coords.x2 -= 1; - 9fa2: 1e53 subs r3, r2, #1 - 9fa4: f8ad 305c strh.w r3, [sp, #92] ; 0x5c - 9fa8: 1b52 subs r2, r2, r5 - bg_coords.y2 -= 1; - 9faa: 1e4b subs r3, r1, #1 - return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - 9fac: 1a09 subs r1, r1, r0 - return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - 9fae: b212 sxth r2, r2 - return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - 9fb0: b209 sxth r1, r1 - int32_t short_side = LV_MATH_MIN(lv_area_get_width(&bg_coords), lv_area_get_height(&bg_coords)); - 9fb2: 428a cmp r2, r1 - 9fb4: bfa8 it ge - 9fb6: 460a movge r2, r1 - bg_coords.y2 -= 1; - 9fb8: f8ad 305e strh.w r3, [sp, #94] ; 0x5e - int32_t r_bg = dsc->radius; - 9fbc: f9ba 3000 ldrsh.w r3, [sl] - 9fc0: f8bd 1042 ldrh.w r1, [sp, #66] ; 0x42 - bg_coords.y1 += 1; - 9fc4: f8ad 005a strh.w r0, [sp, #90] ; 0x5a - if(r_bg > short_side >> 1) r_bg = short_side >> 1; - 9fc8: 1052 asrs r2, r2, #1 - 9fca: 429a cmp r2, r3 - 9fcc: bfa8 it ge - 9fce: 461a movge r2, r3 - 9fd0: ee08 2a90 vmov s17, r2 - return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - 9fd4: f8bd 2040 ldrh.w r2, [sp, #64] ; 0x40 - bg_coords.x1 += 1; - 9fd8: f8ad 5058 strh.w r5, [sp, #88] ; 0x58 - 9fdc: 3701 adds r7, #1 - 9fde: 1abf subs r7, r7, r2 - return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - 9fe0: f8bd 2046 ldrh.w r2, [sp, #70] ; 0x46 - sh_buf = _lv_mem_buf_get(corner_size * corner_size * sizeof(uint16_t)); - 9fe4: 4d84 ldr r5, [pc, #528] ; (a1f8 ) - 9fe6: 3201 adds r2, #1 - 9fe8: 1a52 subs r2, r2, r1 - 9fea: b212 sxth r2, r2 - return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - 9fec: b23f sxth r7, r7 - short_side = LV_MATH_MIN(lv_area_get_width(&sh_rect_area), lv_area_get_height(&sh_rect_area)); - 9fee: 4297 cmp r7, r2 - 9ff0: bfa8 it ge - 9ff2: 4617 movge r7, r2 - if(r_sh > short_side >> 1) r_sh = short_side >> 1; - 9ff4: 107f asrs r7, r7, #1 - 9ff6: 429f cmp r7, r3 - 9ff8: bfa8 it ge - 9ffa: 461f movge r7, r3 - int32_t corner_size = sw + r_sh; - 9ffc: eb04 0907 add.w r9, r4, r7 - sh_buf = _lv_mem_buf_get(corner_size * corner_size * sizeof(uint16_t)); - a000: fb09 f009 mul.w r0, r9, r9 - a004: 0040 lsls r0, r0, #1 - a006: 47a8 blx r5 - shadow_draw_corner_buf(&sh_rect_area, (uint16_t *)sh_buf, dsc->shadow_width, r_sh); - a008: f9ba 4020 ldrsh.w r4, [sl, #32] - lv_area_copy(&sh_area, coords); - a00c: 4b79 ldr r3, [pc, #484] ; (a1f4 ) - sh_buf = _lv_mem_buf_get(corner_size * corner_size * sizeof(uint16_t)); - a00e: 9006 str r0, [sp, #24] - lv_area_copy(&sh_area, coords); - a010: a910 add r1, sp, #64 ; 0x40 - a012: a81e add r0, sp, #120 ; 0x78 - a014: 4798 blx r3 - a016: f004 0201 and.w r2, r4, #1 - sh_area.x2 = sw / 2 + r - 1 - ((sw & 1) ? 0 : 1); - a01a: eb04 73d4 add.w r3, r4, r4, lsr #31 - sh_area.x1 = sh_area.x2 - lv_area_get_width(coords); - a01e: f8bd 1040 ldrh.w r1, [sp, #64] ; 0x40 - a022: 920a str r2, [sp, #40] ; 0x28 - sh_area.x2 = sw / 2 + r - 1 - ((sw & 1) ? 0 : 1); - a024: f3c3 034f ubfx r3, r3, #1, #16 - a028: f064 0201 orn r2, r4, #1 - sh_area.x1 = sh_area.x2 - lv_area_get_width(coords); - a02c: f8bd 0044 ldrh.w r0, [sp, #68] ; 0x44 - sh_area.x2 = sw / 2 + r - 1 - ((sw & 1) ? 0 : 1); - a030: 441a add r2, r3 - a032: 443a add r2, r7 - sh_area.x1 = sh_area.x2 - lv_area_get_width(coords); - a034: 3901 subs r1, #1 - a036: 1a09 subs r1, r1, r0 - sh_area.x2 = sw / 2 + r - 1 - ((sw & 1) ? 0 : 1); - a038: b292 uxth r2, r2 - a03a: f8ad 207c strh.w r2, [sp, #124] ; 0x7c - sh_area.x1 = sh_area.x2 - lv_area_get_width(coords); - a03e: 440a add r2, r1 - a040: f8ad 2078 strh.w r2, [sp, #120] ; 0x78 - return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - a044: f8bd 2046 ldrh.w r2, [sp, #70] ; 0x46 - a048: f8bd 1042 ldrh.w r1, [sp, #66] ; 0x42 - sh_area.y1 = sw / 2 + 1; - a04c: 3301 adds r3, #1 - a04e: 3201 adds r2, #1 - a050: 1a52 subs r2, r2, r1 - a052: b29b uxth r3, r3 - a054: f8ad 307a strh.w r3, [sp, #122] ; 0x7a - sh_area.y2 = sh_area.y1 + lv_area_get_height(coords); - a058: 4413 add r3, r2 - int32_t size = sw_ori + r; - a05a: 193e adds r6, r7, r4 - lv_draw_mask_radius_init(&mask_param, &sh_area, r, false); - a05c: 463a mov r2, r7 - sh_area.y2 = sh_area.y1 + lv_area_get_height(coords); - a05e: f8ad 307e strh.w r3, [sp, #126] ; 0x7e - lv_draw_mask_radius_init(&mask_param, &sh_area, r, false); - a062: 4f66 ldr r7, [pc, #408] ; (a1fc ) - a064: 2300 movs r3, #0 - a066: a91e add r1, sp, #120 ; 0x78 - a068: a825 add r0, sp, #148 ; 0x94 - a06a: 47b8 blx r7 - if(sw_ori == 1) sw = 1; - a06c: 2c01 cmp r4, #1 - lv_opa_t * mask_line = _lv_mem_buf_get(size); - a06e: 4630 mov r0, r6 - else sw = sw_ori >> 1; - a070: bf18 it ne - a072: 1064 asrne r4, r4, #1 - lv_opa_t * mask_line = _lv_mem_buf_get(size); - a074: 47a8 blx r5 - _lv_memset_00(sh_ups_tmp_buf, size * sizeof(sh_ups_tmp_buf[0])); - a076: 0073 lsls r3, r6, #1 - a078: 9309 str r3, [sp, #36] ; 0x24 - sh_buf = _lv_mem_buf_get(corner_size * corner_size * sizeof(uint16_t)); - a07a: 9b06 ldr r3, [sp, #24] - a07c: 9305 str r3, [sp, #20] - for(y = 0; y < size; y++) { - a07e: 2300 movs r3, #0 - a080: 9307 str r3, [sp, #28] - lv_draw_mask_res_t mask_res = mask_param.dsc.cb(mask_line, 0, y, size, &mask_param); - a082: b233 sxth r3, r6 - a084: ee08 3a10 vmov s16, r3 - lv_opa_t * mask_line = _lv_mem_buf_get(size); - a088: 4607 mov r7, r0 - for(y = 0; y < size; y++) { - a08a: 9b07 ldr r3, [sp, #28] - a08c: 429e cmp r6, r3 - a08e: dc08 bgt.n a0a2 - _lv_mem_buf_release(mask_line); - a090: 4b5b ldr r3, [pc, #364] ; (a200 ) - a092: 4638 mov r0, r7 - a094: 4798 blx r3 - if(sw == 1) { - a096: 2c01 cmp r4, #1 - for(x = 0; x < size * size; x++) { - a098: fb06 f506 mul.w r5, r6, r6 - if(sw == 1) { - a09c: d174 bne.n a188 - for(i = 0; i < size * size; i++) { - a09e: 2300 movs r3, #0 - a0a0: e03e b.n a120 - _lv_memset_ff(mask_line, size); - a0a2: 4b58 ldr r3, [pc, #352] ; (a204 ) - a0a4: 4631 mov r1, r6 - a0a6: 4638 mov r0, r7 - a0a8: 4798 blx r3 - lv_draw_mask_res_t mask_res = mask_param.dsc.cb(mask_line, 0, y, size, &mask_param); - a0aa: ab25 add r3, sp, #148 ; 0x94 - a0ac: 9300 str r3, [sp, #0] - a0ae: f9bd 201c ldrsh.w r2, [sp, #28] - a0b2: 9d25 ldr r5, [sp, #148] ; 0x94 - a0b4: ee18 3a10 vmov r3, s16 - a0b8: 2100 movs r1, #0 - a0ba: 4638 mov r0, r7 - a0bc: 47a8 blx r5 - if(mask_res == LV_DRAW_MASK_RES_TRANSP) { - a0be: b958 cbnz r0, a0d8 - _lv_memset_00(sh_ups_tmp_buf, size * sizeof(sh_ups_tmp_buf[0])); - a0c0: 9909 ldr r1, [sp, #36] ; 0x24 - a0c2: 9805 ldr r0, [sp, #20] - a0c4: 4b50 ldr r3, [pc, #320] ; (a208 ) - a0c6: 4798 blx r3 - sh_ups_tmp_buf += size; - a0c8: 9b09 ldr r3, [sp, #36] ; 0x24 - a0ca: 9a05 ldr r2, [sp, #20] - a0cc: 441a add r2, r3 - for(y = 0; y < size; y++) { - a0ce: 9b07 ldr r3, [sp, #28] - sh_ups_tmp_buf += size; - a0d0: 9205 str r2, [sp, #20] - for(y = 0; y < size; y++) { - a0d2: 3301 adds r3, #1 - a0d4: 9307 str r3, [sp, #28] - a0d6: e7d8 b.n a08a - sh_ups_tmp_buf[0] = (mask_line[0] << SHADOW_UPSACALE_SHIFT) / sw; - a0d8: 783b ldrb r3, [r7, #0] - a0da: 9a05 ldr r2, [sp, #20] - a0dc: 9805 ldr r0, [sp, #20] - a0de: 019b lsls r3, r3, #6 - a0e0: fb93 f3f4 sdiv r3, r3, r4 - a0e4: f822 3b02 strh.w r3, [r2], #2 - for(i = 1; i < size; i++) { - a0e8: 9b09 ldr r3, [sp, #36] ; 0x24 - a0ea: 4639 mov r1, r7 - a0ec: 1818 adds r0, r3, r0 - a0ee: 4282 cmp r2, r0 - a0f0: d0ea beq.n a0c8 - if(mask_line[i] == mask_line[i - 1]) sh_ups_tmp_buf[i] = sh_ups_tmp_buf[i - 1]; - a0f2: 468c mov ip, r1 - a0f4: f811 3f01 ldrb.w r3, [r1, #1]! - a0f8: f89c c000 ldrb.w ip, [ip] - a0fc: 459c cmp ip, r3 - else sh_ups_tmp_buf[i] = (mask_line[i] << SHADOW_UPSACALE_SHIFT) / sw; - a0fe: bf17 itett ne - a100: 019b lslne r3, r3, #6 - if(mask_line[i] == mask_line[i - 1]) sh_ups_tmp_buf[i] = sh_ups_tmp_buf[i - 1]; - a102: f832 3c02 ldrheq.w r3, [r2, #-2] - else sh_ups_tmp_buf[i] = (mask_line[i] << SHADOW_UPSACALE_SHIFT) / sw; - a106: fb93 f3f4 sdivne r3, r3, r4 - a10a: b29b uxthne r3, r3 - if(mask_line[i] == mask_line[i - 1]) sh_ups_tmp_buf[i] = sh_ups_tmp_buf[i - 1]; - a10c: f822 3b02 strh.w r3, [r2], #2 - for(i = 1; i < size; i++) { - a110: e7ed b.n a0ee - res_buf[i] = (sh_buf[i] >> SHADOW_UPSACALE_SHIFT); - a112: 9a06 ldr r2, [sp, #24] - a114: 9906 ldr r1, [sp, #24] - a116: f832 2013 ldrh.w r2, [r2, r3, lsl #1] - a11a: 0992 lsrs r2, r2, #6 - a11c: 54ca strb r2, [r1, r3] - for(i = 0; i < size * size; i++) { - a11e: 3301 adds r3, #1 - a120: 42ab cmp r3, r5 - a122: d1f6 bne.n a112 - a124: f8bd 304e ldrh.w r3, [sp, #78] ; 0x4e - lv_coord_t h_half = sh_area.y1 + lv_area_get_height(&sh_area) / 2; - a128: f8bd 204a ldrh.w r2, [sp, #74] ; 0x4a - a12c: 3301 adds r3, #1 - a12e: 1a9b subs r3, r3, r2 - a130: f3c3 31c0 ubfx r1, r3, #15, #1 - a134: fa01 f383 sxtah r3, r1, r3 - a138: eb02 0363 add.w r3, r2, r3, asr #1 - a13c: b29a uxth r2, r3 - a13e: b21b sxth r3, r3 - a140: 9309 str r3, [sp, #36] ; 0x24 - return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - a142: f8bd 304c ldrh.w r3, [sp, #76] ; 0x4c - a146: 920b str r2, [sp, #44] ; 0x2c - lv_coord_t w_half = sh_area.x1 + lv_area_get_width(&sh_area) / 2; - a148: f8bd 2048 ldrh.w r2, [sp, #72] ; 0x48 - a14c: 3301 adds r3, #1 - a14e: 1a9b subs r3, r3, r2 - a150: f3c3 31c0 ubfx r1, r3, #15, #1 - a154: fa01 f383 sxtah r3, r1, r3 - a158: eb02 0363 add.w r3, r2, r3, asr #1 - a15c: b29a uxth r2, r3 - a15e: b21b sxth r3, r3 - a160: 930a str r3, [sp, #40] ; 0x28 - if(lv_draw_mask_get_cnt() > 0) simple_mode = false; - a162: 4b2a ldr r3, [pc, #168] ; (a20c ) - lv_coord_t w_half = sh_area.x1 + lv_area_get_width(&sh_area) / 2; - a164: 920c str r2, [sp, #48] ; 0x30 - if(lv_draw_mask_get_cnt() > 0) simple_mode = false; - a166: 4798 blx r3 - a168: 2800 cmp r0, #0 - a16a: d13b bne.n a1e4 - else if(dsc->shadow_ofs_x != 0 || dsc->shadow_ofs_y != 0) simple_mode = false; - a16c: f9ba 3022 ldrsh.w r3, [sl, #34] ; 0x22 - a170: 2b00 cmp r3, #0 - a172: d14f bne.n a214 - a174: f9ba 2024 ldrsh.w r2, [sl, #36] ; 0x24 - a178: b922 cbnz r2, a184 - else if(dsc->shadow_spread != 0) simple_mode = false; - a17a: f9ba 3026 ldrsh.w r3, [sl, #38] ; 0x26 - a17e: fab3 f383 clz r3, r3 - a182: 095b lsrs r3, r3, #5 - if(lv_draw_mask_get_cnt() > 0) simple_mode = false; - a184: 9307 str r3, [sp, #28] - a186: e046 b.n a216 - shadow_blur_corner(size, sw, sh_buf); - a188: b230 sxth r0, r6 - a18a: 4621 mov r1, r4 - a18c: 9a06 ldr r2, [sp, #24] - a18e: 4f20 ldr r7, [pc, #128] ; (a210 ) - a190: 9005 str r0, [sp, #20] - a192: 47b8 blx r7 - sw += sw_ori & 1; - a194: 990a ldr r1, [sp, #40] ; 0x28 - a196: 4421 add r1, r4 - if(sw > 1) { - a198: 2901 cmp r1, #1 - a19a: dd0c ble.n a1b6 - sh_buf[0] = (sh_buf[0] << SHADOW_UPSACALE_SHIFT) / sw; - a19c: 9b06 ldr r3, [sp, #24] - a19e: 9a06 ldr r2, [sp, #24] - a1a0: 881b ldrh r3, [r3, #0] - for(i = 1; i < (uint32_t) size * size; i++) { - a1a2: 9805 ldr r0, [sp, #20] - sh_buf[0] = (sh_buf[0] << SHADOW_UPSACALE_SHIFT) / sw; - a1a4: 019b lsls r3, r3, #6 - for(i = 1; i < (uint32_t) size * size; i++) { - a1a6: 2401 movs r4, #1 - sh_buf[0] = (sh_buf[0] << SHADOW_UPSACALE_SHIFT) / sw; - a1a8: fbb3 f3f1 udiv r3, r3, r1 - a1ac: 8013 strh r3, [r2, #0] - for(i = 1; i < (uint32_t) size * size; i++) { - a1ae: 42ac cmp r4, r5 - a1b0: d303 bcc.n a1ba - shadow_blur_corner(size, sw, sh_buf); - a1b2: 9a06 ldr r2, [sp, #24] - a1b4: 47b8 blx r7 - for(i = 1; i < (uint32_t) size * size; i++) { - a1b6: 2300 movs r3, #0 - a1b8: e011 b.n a1de - if(sh_buf[i] == sh_buf[i - 1]) sh_buf[i] = sh_buf[i - 1]; - a1ba: 8853 ldrh r3, [r2, #2] - a1bc: f832 6b02 ldrh.w r6, [r2], #2 - a1c0: 42b3 cmp r3, r6 - else sh_buf[i] = (sh_buf[i] << SHADOW_UPSACALE_SHIFT) / sw; - a1c2: bf1e ittt ne - a1c4: 019b lslne r3, r3, #6 - a1c6: fbb3 f3f1 udivne r3, r3, r1 - a1ca: b29e uxthne r6, r3 - a1cc: 8016 strh r6, [r2, #0] - for(i = 1; i < (uint32_t) size * size; i++) { - a1ce: 3401 adds r4, #1 - a1d0: e7ed b.n a1ae - res_buf[x] = sh_buf[x]; - a1d2: 9a06 ldr r2, [sp, #24] - a1d4: 9906 ldr r1, [sp, #24] - a1d6: f832 2013 ldrh.w r2, [r2, r3, lsl #1] - a1da: 54ca strb r2, [r1, r3] - for(x = 0; x < size * size; x++) { - a1dc: 3301 adds r3, #1 - a1de: 42ab cmp r3, r5 - a1e0: d1f7 bne.n a1d2 - a1e2: e79f b.n a124 - if(lv_draw_mask_get_cnt() > 0) simple_mode = false; - a1e4: 2300 movs r3, #0 - a1e6: e7cd b.n a184 - a1e8: 0000526d .word 0x0000526d - a1ec: 0000dc65 .word 0x0000dc65 - a1f0: 0000e111 .word 0x0000e111 - a1f4: 00009e11 .word 0x00009e11 - a1f8: 0000f145 .word 0x0000f145 - a1fc: 00009b99 .word 0x00009b99 - a200: 0000edf9 .word 0x0000edf9 - a204: 0000f305 .word 0x0000f305 - a208: 0000f2a9 .word 0x0000f2a9 - a20c: 00009a75 .word 0x00009a75 - a210: 00009c89 .word 0x00009c89 - a214: 9007 str r0, [sp, #28] - a216: f8bd 004c ldrh.w r0, [sp, #76] ; 0x4c - a21a: f8bd 3048 ldrh.w r3, [sp, #72] ; 0x48 - lv_draw_mask_radius_init(&mask_rout_param, &bg_coords, r_bg, true); - a21e: 4db2 ldr r5, [pc, #712] ; (a4e8 ) - a220: 3001 adds r0, #1 - a222: 1ac0 subs r0, r0, r3 - lv_opa_t * mask_buf = _lv_mem_buf_get(lv_area_get_width(&sh_area)); - a224: b200 sxth r0, r0 - a226: 4bb1 ldr r3, [pc, #708] ; (a4ec ) - a228: 4798 blx r3 - lv_draw_mask_radius_init(&mask_rout_param, &bg_coords, r_bg, true); - a22a: ee18 2a90 vmov r2, s17 - a22e: 2301 movs r3, #1 - a230: a916 add r1, sp, #88 ; 0x58 - lv_opa_t * mask_buf = _lv_mem_buf_get(lv_area_get_width(&sh_area)); - a232: ee08 0a10 vmov s16, r0 - lv_draw_mask_radius_init(&mask_rout_param, &bg_coords, r_bg, true); - a236: a825 add r0, sp, #148 ; 0x94 - a238: 47a8 blx r5 - int16_t mask_rout_id = lv_draw_mask_add(&mask_rout_param, NULL); - a23a: 4bad ldr r3, [pc, #692] ; (a4f0 ) - a23c: 2100 movs r1, #0 - a23e: a825 add r0, sp, #148 ; 0x94 - a240: 4798 blx r3 - a.x2 = sh_area.x2; - a242: f9bd 304c ldrsh.w r3, [sp, #76] ; 0x4c - a246: f8ad 3064 strh.w r3, [sp, #100] ; 0x64 - a.x1 = a.x2 - corner_size + 1; - a24a: fa1f f289 uxth.w r2, r9 - a24e: 3301 adds r3, #1 - a250: 1a9b subs r3, r3, r2 - a252: f8ad 3060 strh.w r3, [sp, #96] ; 0x60 - a.y1 = sh_area.y1; - a256: f9bd 304a ldrsh.w r3, [sp, #74] ; 0x4a - a25a: f8ad 3062 strh.w r3, [sp, #98] ; 0x62 - a.y2 = a.y1 + corner_size - 1; - a25e: 3b01 subs r3, #1 - a260: 4413 add r3, r2 - int16_t mask_rout_id = lv_draw_mask_add(&mask_rout_param, NULL); - a262: ee08 0a90 vmov s17, r0 - a.x1 = a.x2 - corner_size + 1; - a266: 9205 str r2, [sp, #20] - a.y2 = a.y1 + corner_size - 1; - a268: f8ad 3066 strh.w r3, [sp, #102] ; 0x66 - bool has_com = _lv_area_intersect(&ca, &a, clip); - a26c: 4642 mov r2, r8 - a26e: 4ba1 ldr r3, [pc, #644] ; (a4f4 ) - a270: a918 add r1, sp, #96 ; 0x60 - a272: a81a add r0, sp, #104 ; 0x68 - a274: 4798 blx r3 - if(has_com) { - a276: 2800 cmp r0, #0 - a278: d039 beq.n a2ee - if(ca.y2 > h_half) ca.y2 = h_half; - a27a: f9bd 306e ldrsh.w r3, [sp, #110] ; 0x6e - a27e: 9a09 ldr r2, [sp, #36] ; 0x24 - a280: f8bd 606c ldrh.w r6, [sp, #108] ; 0x6c - a284: 4293 cmp r3, r2 - a286: bfc4 itt gt - a288: 4613 movgt r3, r2 - a28a: f8ad 306e strhgt.w r3, [sp, #110] ; 0x6e - if(ca.x1 <= w_half) ca.x1 = w_half + 1; - a28e: 9a0a ldr r2, [sp, #40] ; 0x28 - a290: f9bd 3068 ldrsh.w r3, [sp, #104] ; 0x68 - a294: 4293 cmp r3, r2 - a296: bfd8 it le - a298: 9b0c ldrle r3, [sp, #48] ; 0x30 - return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - a29a: f9bd 206a ldrsh.w r2, [sp, #106] ; 0x6a - a29e: bfdc itt le - a2a0: 3301 addle r3, #1 - a2a2: f8ad 3068 strhle.w r3, [sp, #104] ; 0x68 - return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - a2a6: f9bd 5068 ldrsh.w r5, [sp, #104] ; 0x68 - return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - a2aa: f9bd 306e ldrsh.w r3, [sp, #110] ; 0x6e - return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - a2ae: 3601 adds r6, #1 - a2b0: 1b76 subs r6, r6, r5 - a2b2: b236 sxth r6, r6 - if(w > 0) { - a2b4: 2e00 cmp r6, #0 - a2b6: dd1a ble.n a2ee - return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - a2b8: 3301 adds r3, #1 - a2ba: 1a9b subs r3, r3, r2 - a2bc: b21b sxth r3, r3 - a2be: 930d str r3, [sp, #52] ; 0x34 - sh_buf_tmp += corner_size * (ca.y1 - a.y1); - a2c0: f9bd 3062 ldrsh.w r3, [sp, #98] ; 0x62 - a2c4: 1ad2 subs r2, r2, r3 - sh_buf_tmp = sh_buf + (ca.x1 - a.x1); - a2c6: f9bd 3060 ldrsh.w r3, [sp, #96] ; 0x60 - a2ca: 1aed subs r5, r5, r3 - sh_buf_tmp += corner_size * (ca.y1 - a.y1); - a2cc: 9b06 ldr r3, [sp, #24] - a2ce: fb09 5502 mla r5, r9, r2, r5 - a2d2: 441d add r5, r3 - lv_area_copy(&fa, &ca); - a2d4: a91a add r1, sp, #104 ; 0x68 - a2d6: 4b88 ldr r3, [pc, #544] ; (a4f8 ) - a2d8: a81e add r0, sp, #120 ; 0x78 - a2da: 4798 blx r3 - fa.y2 = fa.y1; - a2dc: f9bd 307a ldrsh.w r3, [sp, #122] ; 0x7a - for(y = 0; y < h; y++) { - a2e0: 2700 movs r7, #0 - fa.y2 = fa.y1; - a2e2: f8ad 307e strh.w r3, [sp, #126] ; 0x7e - for(y = 0; y < h; y++) { - a2e6: 9b0d ldr r3, [sp, #52] ; 0x34 - a2e8: 429f cmp r7, r3 - a2ea: f2c0 80a3 blt.w a434 - a.x2 = sh_area.x2; - a2ee: f9bd 304c ldrsh.w r3, [sp, #76] ; 0x4c - a.x1 = a.x2 - corner_size + 1; - a2f2: 9a05 ldr r2, [sp, #20] - a.x2 = sh_area.x2; - a2f4: f8ad 3064 strh.w r3, [sp, #100] ; 0x64 - a.x1 = a.x2 - corner_size + 1; - a2f8: 3301 adds r3, #1 - a2fa: 1a9b subs r3, r3, r2 - a.y1 = sh_area.y2 - corner_size + 1; - a2fc: f9bd 204e ldrsh.w r2, [sp, #78] ; 0x4e - a300: 9905 ldr r1, [sp, #20] - a.x1 = a.x2 - corner_size + 1; - a302: f8ad 3060 strh.w r3, [sp, #96] ; 0x60 - a.y1 = sh_area.y2 - corner_size + 1; - a306: 1c53 adds r3, r2, #1 - a308: 1a5b subs r3, r3, r1 - a30a: f8ad 3062 strh.w r3, [sp, #98] ; 0x62 - a.y2 = sh_area.y2; - a30e: f8ad 2066 strh.w r2, [sp, #102] ; 0x66 - has_com = _lv_area_intersect(&ca, &a, clip); - a312: 4b78 ldr r3, [pc, #480] ; (a4f4 ) - a314: 4642 mov r2, r8 - a316: a918 add r1, sp, #96 ; 0x60 - a318: a81a add r0, sp, #104 ; 0x68 - a31a: 4798 blx r3 - if(has_com) { - a31c: 2800 cmp r0, #0 - a31e: d03a beq.n a396 - if(ca.y1 <= h_half) ca.y1 = h_half + 1; - a320: f9bd 306a ldrsh.w r3, [sp, #106] ; 0x6a - a324: 9a09 ldr r2, [sp, #36] ; 0x24 - return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - a326: f8bd 606c ldrh.w r6, [sp, #108] ; 0x6c - a32a: 4293 cmp r3, r2 - a32c: bfd8 it le - a32e: 9b0b ldrle r3, [sp, #44] ; 0x2c - if(ca.x1 <= w_half) ca.x1 = w_half + 1; - a330: 9a0a ldr r2, [sp, #40] ; 0x28 - if(ca.y1 <= h_half) ca.y1 = h_half + 1; - a332: bfdc itt le - a334: 3301 addle r3, #1 - a336: f8ad 306a strhle.w r3, [sp, #106] ; 0x6a - if(ca.x1 <= w_half) ca.x1 = w_half + 1; - a33a: f9bd 3068 ldrsh.w r3, [sp, #104] ; 0x68 - return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - a33e: f9bd 106a ldrsh.w r1, [sp, #106] ; 0x6a - a342: 4293 cmp r3, r2 - a344: bfd8 it le - a346: 9b0c ldrle r3, [sp, #48] ; 0x30 - a348: f9bd 206e ldrsh.w r2, [sp, #110] ; 0x6e - a34c: bfdc itt le - a34e: 3301 addle r3, #1 - a350: f8ad 3068 strhle.w r3, [sp, #104] ; 0x68 - return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - a354: f9bd 5068 ldrsh.w r5, [sp, #104] ; 0x68 - a358: 3601 adds r6, #1 - a35a: 1b76 subs r6, r6, r5 - a35c: b236 sxth r6, r6 - if(w > 0) { - a35e: 2e00 cmp r6, #0 - a360: dd19 ble.n a396 - return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - a362: 1c53 adds r3, r2, #1 - a364: 1a5b subs r3, r3, r1 - a366: b21b sxth r3, r3 - a368: 930c str r3, [sp, #48] ; 0x30 - sh_buf_tmp += corner_size * (a.y2 - ca.y2); - a36a: f9bd 3066 ldrsh.w r3, [sp, #102] ; 0x66 - a36e: 1a9b subs r3, r3, r2 - sh_buf_tmp = sh_buf + (ca.x1 - a.x1); - a370: f9bd 2060 ldrsh.w r2, [sp, #96] ; 0x60 - a374: 1aad subs r5, r5, r2 - sh_buf_tmp += corner_size * (a.y2 - ca.y2); - a376: fb09 5503 mla r5, r9, r3, r5 - a37a: 9b06 ldr r3, [sp, #24] - lv_area_copy(&fa, &ca); - a37c: a91a add r1, sp, #104 ; 0x68 - sh_buf_tmp += corner_size * (a.y2 - ca.y2); - a37e: 441d add r5, r3 - lv_area_copy(&fa, &ca); - a380: a81e add r0, sp, #120 ; 0x78 - a382: 4b5d ldr r3, [pc, #372] ; (a4f8 ) - a384: 4798 blx r3 - fa.y1 = fa.y2; /*Fill from bottom to top*/ - a386: f8bd 307e ldrh.w r3, [sp, #126] ; 0x7e - a38a: f8ad 307a strh.w r3, [sp, #122] ; 0x7a - for(y = 0; y < h; y++) { - a38e: 2700 movs r7, #0 - a390: 9b0c ldr r3, [sp, #48] ; 0x30 - a392: 429f cmp r7, r3 - a394: db7a blt.n a48c - a.x2 = sh_area.x2; - a396: f9bd 304c ldrsh.w r3, [sp, #76] ; 0x4c - a.x1 = a.x2 - corner_size + 1; - a39a: 9a05 ldr r2, [sp, #20] - a.x2 = sh_area.x2; - a39c: f8ad 3064 strh.w r3, [sp, #100] ; 0x64 - a.x1 = a.x2 - corner_size + 1; - a3a0: 3301 adds r3, #1 - a3a2: 1a9b subs r3, r3, r2 - a3a4: f8ad 3060 strh.w r3, [sp, #96] ; 0x60 - a.y1 = sh_area.y1 + corner_size; - a3a8: f8bd 304a ldrh.w r3, [sp, #74] ; 0x4a - a3ac: 4413 add r3, r2 - a3ae: f8ad 3062 strh.w r3, [sp, #98] ; 0x62 - a.y2 = sh_area.y2 - corner_size; - a3b2: f8bd 304e ldrh.w r3, [sp, #78] ; 0x4e - a3b6: 1a9b subs r3, r3, r2 - a3b8: f8ad 3066 strh.w r3, [sp, #102] ; 0x66 - has_com = _lv_area_intersect(&ca, &a, clip); - a3bc: 4642 mov r2, r8 - a3be: 4b4d ldr r3, [pc, #308] ; (a4f4 ) - a3c0: a918 add r1, sp, #96 ; 0x60 - a3c2: a81a add r0, sp, #104 ; 0x68 - a3c4: 4798 blx r3 - if(has_com) { - a3c6: b380 cbz r0, a42a - if(simple_mode) ca.x1 = LV_MATH_MAX(ca.x1, coords->x2); - a3c8: 9b07 ldr r3, [sp, #28] - a3ca: b143 cbz r3, a3de - a3cc: f9bb 3004 ldrsh.w r3, [fp, #4] - a3d0: f9bd 2068 ldrsh.w r2, [sp, #104] ; 0x68 - a3d4: 4293 cmp r3, r2 - a3d6: bfb8 it lt - a3d8: 4613 movlt r3, r2 - a3da: f8ad 3068 strh.w r3, [sp, #104] ; 0x68 - return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - a3de: f8bd 506c ldrh.w r5, [sp, #108] ; 0x6c - a3e2: f9bd 6068 ldrsh.w r6, [sp, #104] ; 0x68 - a3e6: 3501 adds r5, #1 - a3e8: 1bad subs r5, r5, r6 - a3ea: b22d sxth r5, r5 - if(w > 0) { - a3ec: 2d00 cmp r5, #0 - a3ee: dd1c ble.n a42a - return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - a3f0: f8bd 306e ldrh.w r3, [sp, #110] ; 0x6e - a3f4: f8bd 206a ldrh.w r2, [sp, #106] ; 0x6a - a3f8: 3301 adds r3, #1 - a3fa: 1a9b subs r3, r3, r2 - sh_buf_tmp += ca.x1 - a.x1; - a3fc: f9bd 2060 ldrsh.w r2, [sp, #96] ; 0x60 - a400: b21b sxth r3, r3 - a402: 930c str r3, [sp, #48] ; 0x30 - a404: 1ab6 subs r6, r6, r2 - sh_buf_tmp = sh_buf + corner_size * (corner_size - 1); - a406: f109 33ff add.w r3, r9, #4294967295 ; 0xffffffff - sh_buf_tmp += ca.x1 - a.x1; - a40a: fb09 6603 mla r6, r9, r3, r6 - a40e: 9b06 ldr r3, [sp, #24] - lv_area_copy(&fa, &ca); - a410: a91a add r1, sp, #104 ; 0x68 - sh_buf_tmp += ca.x1 - a.x1; - a412: 441e add r6, r3 - lv_area_copy(&fa, &ca); - a414: a81e add r0, sp, #120 ; 0x78 - a416: 4b38 ldr r3, [pc, #224] ; (a4f8 ) - a418: 4798 blx r3 - fa.y2 = fa.y1; - a41a: f9bd 307a ldrsh.w r3, [sp, #122] ; 0x7a - for(y = 0; y < h; y++) { - a41e: 2700 movs r7, #0 - fa.y2 = fa.y1; - a420: f8ad 307e strh.w r3, [sp, #126] ; 0x7e - for(y = 0; y < h; y++) { - a424: 9b0c ldr r3, [sp, #48] ; 0x30 - a426: 429f cmp r7, r3 - a428: db6e blt.n a508 - sh_buf = _lv_mem_buf_get(corner_size * corner_size * sizeof(uint16_t)); - a42a: 9a06 ldr r2, [sp, #24] - for(x = 0; x < corner_size / 2; x++) { - a42c: ea4f 0669 mov.w r6, r9, asr #1 - a430: 2000 movs r0, #0 - a432: e0a3 b.n a57c - _lv_memcpy(mask_buf, sh_buf_tmp, w); - a434: 4629 mov r1, r5 - a436: 4b31 ldr r3, [pc, #196] ; (a4fc ) - mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w); - a438: 4c31 ldr r4, [pc, #196] ; (a500 ) - _lv_memcpy(mask_buf, sh_buf_tmp, w); - a43a: 4632 mov r2, r6 - a43c: ee18 0a10 vmov r0, s16 - a440: 4798 blx r3 - mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w); - a442: f9bd 207a ldrsh.w r2, [sp, #122] ; 0x7a - a446: f9bd 1078 ldrsh.w r1, [sp, #120] ; 0x78 - a44a: 4633 mov r3, r6 - a44c: ee18 0a10 vmov r0, s16 - a450: 47a0 blx r4 - _lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf, - a452: f89a 3029 ldrb.w r3, [sl, #41] ; 0x29 - a456: 9302 str r3, [sp, #8] - if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) mask_res = LV_DRAW_MASK_RES_CHANGED; - a458: 2801 cmp r0, #1 - _lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf, - a45a: 9b08 ldr r3, [sp, #32] - a45c: 4c29 ldr r4, [pc, #164] ; (a504 ) - if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) mask_res = LV_DRAW_MASK_RES_CHANGED; - a45e: bf08 it eq - a460: 2002 moveq r0, #2 - _lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf, - a462: e9cd 0300 strd r0, r3, [sp] - a466: a91e add r1, sp, #120 ; 0x78 - a468: ee18 3a10 vmov r3, s16 - a46c: f8ba 201e ldrh.w r2, [sl, #30] - a470: 4640 mov r0, r8 - a472: 47a0 blx r4 - fa.y1++; - a474: f8bd 307a ldrh.w r3, [sp, #122] ; 0x7a - a478: 3301 adds r3, #1 - a47a: f8ad 307a strh.w r3, [sp, #122] ; 0x7a - fa.y2++; - a47e: f8bd 307e ldrh.w r3, [sp, #126] ; 0x7e - a482: 3301 adds r3, #1 - a484: b21b sxth r3, r3 - sh_buf_tmp += corner_size; - a486: 444d add r5, r9 - for(y = 0; y < h; y++) { - a488: 3701 adds r7, #1 - a48a: e72a b.n a2e2 - _lv_memcpy(mask_buf, sh_buf_tmp, w); - a48c: 4629 mov r1, r5 - a48e: 4b1b ldr r3, [pc, #108] ; (a4fc ) - mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w); - a490: 4c1b ldr r4, [pc, #108] ; (a500 ) - _lv_memcpy(mask_buf, sh_buf_tmp, w); - a492: 4632 mov r2, r6 - a494: ee18 0a10 vmov r0, s16 - a498: 4798 blx r3 - mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w); - a49a: f9bd 207a ldrsh.w r2, [sp, #122] ; 0x7a - a49e: f9bd 1078 ldrsh.w r1, [sp, #120] ; 0x78 - a4a2: 4633 mov r3, r6 - a4a4: ee18 0a10 vmov r0, s16 - a4a8: 47a0 blx r4 - _lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf, - a4aa: f89a 3029 ldrb.w r3, [sl, #41] ; 0x29 - a4ae: 9302 str r3, [sp, #8] - if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) mask_res = LV_DRAW_MASK_RES_CHANGED; - a4b0: 2801 cmp r0, #1 - _lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf, - a4b2: 9b08 ldr r3, [sp, #32] - a4b4: 4c13 ldr r4, [pc, #76] ; (a504 ) - if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) mask_res = LV_DRAW_MASK_RES_CHANGED; - a4b6: bf08 it eq - a4b8: 2002 moveq r0, #2 - _lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf, - a4ba: e9cd 0300 strd r0, r3, [sp] - a4be: a91e add r1, sp, #120 ; 0x78 - a4c0: ee18 3a10 vmov r3, s16 - a4c4: f8ba 201e ldrh.w r2, [sl, #30] - a4c8: 4640 mov r0, r8 - a4ca: 47a0 blx r4 - fa.y1--; - a4cc: f8bd 307a ldrh.w r3, [sp, #122] ; 0x7a - a4d0: 3b01 subs r3, #1 - a4d2: f8ad 307a strh.w r3, [sp, #122] ; 0x7a - fa.y2--; - a4d6: f8bd 307e ldrh.w r3, [sp, #126] ; 0x7e - a4da: 3b01 subs r3, #1 - a4dc: f8ad 307e strh.w r3, [sp, #126] ; 0x7e - sh_buf_tmp += corner_size; - a4e0: 444d add r5, r9 - for(y = 0; y < h; y++) { - a4e2: 3701 adds r7, #1 - a4e4: e754 b.n a390 - a4e6: bf00 nop - a4e8: 00009b99 .word 0x00009b99 - a4ec: 0000f145 .word 0x0000f145 - a4f0: 00009995 .word 0x00009995 - a4f4: 0000e111 .word 0x0000e111 - a4f8: 00009e11 .word 0x00009e11 - a4fc: 0000eec1 .word 0x0000eec1 - a500: 000099e5 .word 0x000099e5 - a504: 00006475 .word 0x00006475 - _lv_memcpy(mask_buf, sh_buf_tmp, w); - a508: 4b20 ldr r3, [pc, #128] ; (a58c ) - a50a: ee18 0a10 vmov r0, s16 - a50e: 462a mov r2, r5 - a510: 4631 mov r1, r6 - a512: 4798 blx r3 - if(simple_mode) { - a514: 9b07 ldr r3, [sp, #28] - a516: b953 cbnz r3, a52e - mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w); - a518: f9bd 207a ldrsh.w r2, [sp, #122] ; 0x7a - a51c: f9bd 1078 ldrsh.w r1, [sp, #120] ; 0x78 - a520: 4c1b ldr r4, [pc, #108] ; (a590 ) - a522: ee18 0a10 vmov r0, s16 - a526: 462b mov r3, r5 - a528: 47a0 blx r4 - if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) mask_res = LV_DRAW_MASK_RES_CHANGED; - a52a: 2801 cmp r0, #1 - a52c: d100 bne.n a530 - a52e: 2002 movs r0, #2 - _lv_blend_fill(clip, &fa, - a530: f89a 3029 ldrb.w r3, [sl, #41] ; 0x29 - a534: 9302 str r3, [sp, #8] - a536: f89a 3028 ldrb.w r3, [sl, #40] ; 0x28 - a53a: 4c16 ldr r4, [pc, #88] ; (a594 ) - a53c: e9cd 0300 strd r0, r3, [sp] - a540: a91e add r1, sp, #120 ; 0x78 - a542: ee18 3a10 vmov r3, s16 - a546: f8ba 201e ldrh.w r2, [sl, #30] - a54a: 4640 mov r0, r8 - a54c: 47a0 blx r4 - fa.y1++; - a54e: f8bd 307a ldrh.w r3, [sp, #122] ; 0x7a - a552: 3301 adds r3, #1 - a554: f8ad 307a strh.w r3, [sp, #122] ; 0x7a - fa.y2++; - a558: f8bd 307e ldrh.w r3, [sp, #126] ; 0x7e - a55c: 3301 adds r3, #1 - a55e: b21b sxth r3, r3 - for(y = 0; y < h; y++) { - a560: 3701 adds r7, #1 - a562: e75d b.n a420 - lv_opa_t tmp = sh_buf_tmp[x]; - a564: f811 7f01 ldrb.w r7, [r1, #1]! - sh_buf_tmp[x] = sh_buf_tmp[corner_size - x - 1]; - a568: f813 cd01 ldrb.w ip, [r3, #-1]! - a56c: f881 c000 strb.w ip, [r1] - sh_buf_tmp[corner_size - x - 1] = tmp; - a570: 701f strb r7, [r3, #0] - for(x = 0; x < corner_size / 2; x++) { - a572: 1aef subs r7, r5, r3 - a574: 42be cmp r6, r7 - a576: dcf5 bgt.n a564 - sh_buf_tmp += corner_size; - a578: 444a add r2, r9 - for(y = 0; y < corner_size; y++) { - a57a: 3001 adds r0, #1 - a57c: 4581 cmp r9, r0 - a57e: dd0b ble.n a598 - a580: eb09 0502 add.w r5, r9, r2 - a584: 1e51 subs r1, r2, #1 - a586: 462b mov r3, r5 - a588: e7f3 b.n a572 - a58a: bf00 nop - a58c: 0000eec1 .word 0x0000eec1 - a590: 000099e5 .word 0x000099e5 - a594: 00006475 .word 0x00006475 - a.x1 = sh_area.x1; - a598: f9bd 3048 ldrsh.w r3, [sp, #72] ; 0x48 - a.x2 = a.x1 + corner_size - 1; - a59c: 9a05 ldr r2, [sp, #20] - a.x1 = sh_area.x1; - a59e: f8ad 3060 strh.w r3, [sp, #96] ; 0x60 - a.x2 = a.x1 + corner_size - 1; - a5a2: 3b01 subs r3, #1 - a5a4: 4413 add r3, r2 - a5a6: f8ad 3064 strh.w r3, [sp, #100] ; 0x64 - a.y1 = sh_area.y1; - a5aa: f9bd 304a ldrsh.w r3, [sp, #74] ; 0x4a - a5ae: f8ad 3062 strh.w r3, [sp, #98] ; 0x62 - a.y2 = a.y1 + corner_size - 1; - a5b2: 3b01 subs r3, #1 - a5b4: 4413 add r3, r2 - a5b6: f8ad 3066 strh.w r3, [sp, #102] ; 0x66 - has_com = _lv_area_intersect(&ca, &a, clip); - a5ba: 4642 mov r2, r8 - a5bc: 4bb8 ldr r3, [pc, #736] ; (a8a0 ) - a5be: a918 add r1, sp, #96 ; 0x60 - a5c0: a81a add r0, sp, #104 ; 0x68 - a5c2: 4798 blx r3 - if(has_com) { - a5c4: 2800 cmp r0, #0 - a5c6: d037 beq.n a638 - if(ca.y2 > h_half) ca.y2 = h_half; - a5c8: f9bd 306e ldrsh.w r3, [sp, #110] ; 0x6e - a5cc: 9a09 ldr r2, [sp, #36] ; 0x24 - return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - a5ce: f9bd 5068 ldrsh.w r5, [sp, #104] ; 0x68 - a5d2: 4293 cmp r3, r2 - a5d4: bfc4 itt gt - a5d6: 4613 movgt r3, r2 - a5d8: f8ad 306e strhgt.w r3, [sp, #110] ; 0x6e - if(ca.x2 > w_half) ca.x2 = w_half; - a5dc: 9a0a ldr r2, [sp, #40] ; 0x28 - a5de: f9bd 306c ldrsh.w r3, [sp, #108] ; 0x6c - a5e2: 4293 cmp r3, r2 - a5e4: bfc4 itt gt - a5e6: 4613 movgt r3, r2 - a5e8: f8ad 306c strhgt.w r3, [sp, #108] ; 0x6c - a5ec: f8bd 606c ldrh.w r6, [sp, #108] ; 0x6c - return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - a5f0: f9bd 306e ldrsh.w r3, [sp, #110] ; 0x6e - a5f4: f9bd 206a ldrsh.w r2, [sp, #106] ; 0x6a - return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - a5f8: 3601 adds r6, #1 - a5fa: 1b76 subs r6, r6, r5 - a5fc: b236 sxth r6, r6 - if(w > 0) { - a5fe: 2e00 cmp r6, #0 - a600: dd1a ble.n a638 - return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - a602: 3301 adds r3, #1 - a604: 1a9b subs r3, r3, r2 - a606: b21b sxth r3, r3 - a608: 930c str r3, [sp, #48] ; 0x30 - sh_buf_tmp += corner_size * (ca.y1 - a.y1); - a60a: f9bd 3062 ldrsh.w r3, [sp, #98] ; 0x62 - a60e: 1ad2 subs r2, r2, r3 - sh_buf_tmp = sh_buf + (ca.x1 - a.x1); - a610: f9bd 3060 ldrsh.w r3, [sp, #96] ; 0x60 - a614: 1aed subs r5, r5, r3 - sh_buf_tmp += corner_size * (ca.y1 - a.y1); - a616: 9b06 ldr r3, [sp, #24] - a618: fb09 5502 mla r5, r9, r2, r5 - a61c: 441d add r5, r3 - lv_area_copy(&fa, &ca); - a61e: a91a add r1, sp, #104 ; 0x68 - a620: 4ba0 ldr r3, [pc, #640] ; (a8a4 ) - a622: a81e add r0, sp, #120 ; 0x78 - a624: 4798 blx r3 - fa.y2 = fa.y1; - a626: f9bd 307a ldrsh.w r3, [sp, #122] ; 0x7a - for(y = 0; y < h; y++) { - a62a: 2700 movs r7, #0 - fa.y2 = fa.y1; - a62c: f8ad 307e strh.w r3, [sp, #126] ; 0x7e - for(y = 0; y < h; y++) { - a630: 9b0c ldr r3, [sp, #48] ; 0x30 - a632: 429f cmp r7, r3 - a634: f2c0 859f blt.w b176 - a.x1 = sh_area.x1; - a638: f9bd 3048 ldrsh.w r3, [sp, #72] ; 0x48 - a.x2 = a.x1 + corner_size - 1; - a63c: 9a05 ldr r2, [sp, #20] - a.x1 = sh_area.x1; - a63e: f8ad 3060 strh.w r3, [sp, #96] ; 0x60 - a.x2 = a.x1 + corner_size - 1; - a642: 3b01 subs r3, #1 - a644: 4413 add r3, r2 - a.y1 = sh_area.y2 - corner_size + 1; - a646: f9bd 204e ldrsh.w r2, [sp, #78] ; 0x4e - a64a: 9905 ldr r1, [sp, #20] - a.x2 = a.x1 + corner_size - 1; - a64c: f8ad 3064 strh.w r3, [sp, #100] ; 0x64 - a.y1 = sh_area.y2 - corner_size + 1; - a650: 1c53 adds r3, r2, #1 - a652: 1a5b subs r3, r3, r1 - a654: f8ad 3062 strh.w r3, [sp, #98] ; 0x62 - a.y2 = sh_area.y2; - a658: f8ad 2066 strh.w r2, [sp, #102] ; 0x66 - has_com = _lv_area_intersect(&ca, &a, clip); - a65c: 4b90 ldr r3, [pc, #576] ; (a8a0 ) - a65e: 4642 mov r2, r8 - a660: a918 add r1, sp, #96 ; 0x60 - a662: a81a add r0, sp, #104 ; 0x68 - a664: 4798 blx r3 - if(has_com) { - a666: 2800 cmp r0, #0 - a668: d039 beq.n a6de - if(ca.y1 <= h_half) ca.y1 = h_half + 1; - a66a: f9bd 306a ldrsh.w r3, [sp, #106] ; 0x6a - a66e: 9a09 ldr r2, [sp, #36] ; 0x24 - return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - a670: f9bd 5068 ldrsh.w r5, [sp, #104] ; 0x68 - a674: 4293 cmp r3, r2 - a676: bfd8 it le - a678: 9b0b ldrle r3, [sp, #44] ; 0x2c - if(ca.x2 > w_half) ca.x2 = w_half; - a67a: 9a0a ldr r2, [sp, #40] ; 0x28 - if(ca.y1 <= h_half) ca.y1 = h_half + 1; - a67c: bfdc itt le - a67e: 3301 addle r3, #1 - a680: f8ad 306a strhle.w r3, [sp, #106] ; 0x6a - if(ca.x2 > w_half) ca.x2 = w_half; - a684: f9bd 306c ldrsh.w r3, [sp, #108] ; 0x6c - return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - a688: f9bd 106a ldrsh.w r1, [sp, #106] ; 0x6a - a68c: 4293 cmp r3, r2 - a68e: bfc4 itt gt - a690: 4613 movgt r3, r2 - a692: f8ad 306c strhgt.w r3, [sp, #108] ; 0x6c - return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - a696: f8bd 606c ldrh.w r6, [sp, #108] ; 0x6c - return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - a69a: f9bd 206e ldrsh.w r2, [sp, #110] ; 0x6e - return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - a69e: 3601 adds r6, #1 - a6a0: 1b76 subs r6, r6, r5 - a6a2: b236 sxth r6, r6 - if(w > 0) { - a6a4: 2e00 cmp r6, #0 - a6a6: dd1a ble.n a6de - return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - a6a8: 1c53 adds r3, r2, #1 - a6aa: 1a5b subs r3, r3, r1 - a6ac: b21b sxth r3, r3 - a6ae: 9309 str r3, [sp, #36] ; 0x24 - sh_buf_tmp += corner_size * (a.y2 - ca.y2); - a6b0: f9bd 3066 ldrsh.w r3, [sp, #102] ; 0x66 - a6b4: 1a9b subs r3, r3, r2 - sh_buf_tmp = sh_buf + (ca.x1 - a.x1); - a6b6: f9bd 2060 ldrsh.w r2, [sp, #96] ; 0x60 - a6ba: 1aad subs r5, r5, r2 - sh_buf_tmp += corner_size * (a.y2 - ca.y2); - a6bc: fb09 5503 mla r5, r9, r3, r5 - a6c0: 9b06 ldr r3, [sp, #24] - lv_area_copy(&fa, &ca); - a6c2: a91a add r1, sp, #104 ; 0x68 - sh_buf_tmp += corner_size * (a.y2 - ca.y2); - a6c4: 441d add r5, r3 - lv_area_copy(&fa, &ca); - a6c6: a81e add r0, sp, #120 ; 0x78 - a6c8: 4b76 ldr r3, [pc, #472] ; (a8a4 ) - a6ca: 4798 blx r3 - fa.y1 = fa.y2; /*Fill from bottom to top*/ - a6cc: f8bd 307e ldrh.w r3, [sp, #126] ; 0x7e - a6d0: f8ad 307a strh.w r3, [sp, #122] ; 0x7a - for(y = 0; y < h; y++) { - a6d4: 2700 movs r7, #0 - a6d6: 9b09 ldr r3, [sp, #36] ; 0x24 - a6d8: 429f cmp r7, r3 - a6da: f2c0 8579 blt.w b1d0 - a.x1 = sh_area.x1; - a6de: f9bd 3048 ldrsh.w r3, [sp, #72] ; 0x48 - a.x2 = a.x1 + corner_size - 1; - a6e2: 9a05 ldr r2, [sp, #20] - a.x1 = sh_area.x1; - a6e4: f8ad 3060 strh.w r3, [sp, #96] ; 0x60 - a.x2 = a.x1 + corner_size - 1; - a6e8: 3b01 subs r3, #1 - a6ea: 4413 add r3, r2 - a6ec: f8ad 3064 strh.w r3, [sp, #100] ; 0x64 - a.y1 = sh_area.y1 + corner_size; - a6f0: f8bd 304a ldrh.w r3, [sp, #74] ; 0x4a - a6f4: 4413 add r3, r2 - a6f6: f8ad 3062 strh.w r3, [sp, #98] ; 0x62 - a.y2 = sh_area.y2 - corner_size; - a6fa: f8bd 304e ldrh.w r3, [sp, #78] ; 0x4e - a6fe: 1a9b subs r3, r3, r2 - a700: f8ad 3066 strh.w r3, [sp, #102] ; 0x66 - has_com = _lv_area_intersect(&ca, &a, clip); - a704: 4642 mov r2, r8 - a706: 4b66 ldr r3, [pc, #408] ; (a8a0 ) - a708: a918 add r1, sp, #96 ; 0x60 - a70a: a81a add r0, sp, #104 ; 0x68 - a70c: 4798 blx r3 - if(has_com) { - a70e: b388 cbz r0, a774 - if(simple_mode) ca.x2 = LV_MATH_MIN(coords->x1, ca.x2); - a710: 9b07 ldr r3, [sp, #28] - a712: b143 cbz r3, a726 - a714: f9bb 3000 ldrsh.w r3, [fp] - a718: f9bd 206c ldrsh.w r2, [sp, #108] ; 0x6c - a71c: 4293 cmp r3, r2 - a71e: bfa8 it ge - a720: 4613 movge r3, r2 - a722: f8ad 306c strh.w r3, [sp, #108] ; 0x6c - return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - a726: f8bd 506c ldrh.w r5, [sp, #108] ; 0x6c - a72a: f9bd 6068 ldrsh.w r6, [sp, #104] ; 0x68 - a72e: 3501 adds r5, #1 - a730: 1bad subs r5, r5, r6 - a732: b22d sxth r5, r5 - if(w > 0) { - a734: 2d00 cmp r5, #0 - a736: dd1d ble.n a774 - return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - a738: f8bd 306e ldrh.w r3, [sp, #110] ; 0x6e - a73c: f8bd 206a ldrh.w r2, [sp, #106] ; 0x6a - a740: 3301 adds r3, #1 - a742: 1a9b subs r3, r3, r2 - sh_buf_tmp += ca.x1 - a.x1; - a744: f9bd 2060 ldrsh.w r2, [sp, #96] ; 0x60 - a748: b21b sxth r3, r3 - a74a: 9309 str r3, [sp, #36] ; 0x24 - a74c: 1ab6 subs r6, r6, r2 - sh_buf_tmp = sh_buf + corner_size * (corner_size - 1); - a74e: f109 33ff add.w r3, r9, #4294967295 ; 0xffffffff - sh_buf_tmp += ca.x1 - a.x1; - a752: fb09 6603 mla r6, r9, r3, r6 - a756: 9b06 ldr r3, [sp, #24] - lv_area_copy(&fa, &ca); - a758: a91a add r1, sp, #104 ; 0x68 - sh_buf_tmp += ca.x1 - a.x1; - a75a: 441e add r6, r3 - lv_area_copy(&fa, &ca); - a75c: a81e add r0, sp, #120 ; 0x78 - a75e: 4b51 ldr r3, [pc, #324] ; (a8a4 ) - a760: 4798 blx r3 - fa.y2 = fa.y1; - a762: f9bd 307a ldrsh.w r3, [sp, #122] ; 0x7a - for(y = 0; y < h; y++) { - a766: 2700 movs r7, #0 - fa.y2 = fa.y1; - a768: f8ad 307e strh.w r3, [sp, #126] ; 0x7e - for(y = 0; y < h; y++) { - a76c: 9b09 ldr r3, [sp, #36] ; 0x24 - a76e: 429f cmp r7, r3 - a770: f2c0 855c blt.w b22c - a.x1 = sh_area.x1 + corner_size; - a774: 9a05 ldr r2, [sp, #20] - a776: f8bd 3048 ldrh.w r3, [sp, #72] ; 0x48 - a77a: 4413 add r3, r2 - a77c: f8ad 3060 strh.w r3, [sp, #96] ; 0x60 - a.x2 = sh_area.x2 - corner_size; - a780: f8bd 304c ldrh.w r3, [sp, #76] ; 0x4c - a784: 1a9b subs r3, r3, r2 - a786: f8ad 3064 strh.w r3, [sp, #100] ; 0x64 - a.y1 = sh_area.y1; - a78a: f9bd 304a ldrsh.w r3, [sp, #74] ; 0x4a - a78e: f8ad 3062 strh.w r3, [sp, #98] ; 0x62 - a.y2 = sh_area.y1 + corner_size - 1; - a792: 3b01 subs r3, #1 - a794: 4413 add r3, r2 - a796: f8ad 3066 strh.w r3, [sp, #102] ; 0x66 - has_com = _lv_area_intersect(&ca, &a, clip); - a79a: 4642 mov r2, r8 - a79c: 4b40 ldr r3, [pc, #256] ; (a8a0 ) - a79e: a918 add r1, sp, #96 ; 0x60 - a7a0: a81a add r0, sp, #104 ; 0x68 - a7a2: 4798 blx r3 - if(has_com) { - a7a4: b378 cbz r0, a806 - if(simple_mode) ca.y2 = LV_MATH_MIN(ca.y2, coords->y1); - a7a6: 9b07 ldr r3, [sp, #28] - a7a8: b143 cbz r3, a7bc - a7aa: f9bb 3002 ldrsh.w r3, [fp, #2] - a7ae: f9bd 206e ldrsh.w r2, [sp, #110] ; 0x6e - a7b2: 4293 cmp r3, r2 - a7b4: bfa8 it ge - a7b6: 4613 movge r3, r2 - a7b8: f8ad 306e strh.w r3, [sp, #110] ; 0x6e - return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - a7bc: f8bd 506c ldrh.w r5, [sp, #108] ; 0x6c - a7c0: f8bd 3068 ldrh.w r3, [sp, #104] ; 0x68 - return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - a7c4: f9bd 206a ldrsh.w r2, [sp, #106] ; 0x6a - return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - a7c8: 3501 adds r5, #1 - a7ca: 1aed subs r5, r5, r3 - return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - a7cc: f8bd 306e ldrh.w r3, [sp, #110] ; 0x6e - a7d0: 3301 adds r3, #1 - a7d2: 1a9b subs r3, r3, r2 - a7d4: b21b sxth r3, r3 - a7d6: 9309 str r3, [sp, #36] ; 0x24 - sh_buf_tmp += corner_size * (ca.y1 - a.y1); - a7d8: f9bd 3062 ldrsh.w r3, [sp, #98] ; 0x62 - sh_buf_tmp = sh_buf + corner_size - 1; - a7dc: f109 36ff add.w r6, r9, #4294967295 ; 0xffffffff - sh_buf_tmp += corner_size * (ca.y1 - a.y1); - a7e0: 1ad2 subs r2, r2, r3 - a7e2: 9b06 ldr r3, [sp, #24] - a7e4: fb09 6602 mla r6, r9, r2, r6 - a7e8: 441e add r6, r3 - lv_area_copy(&fa, &ca); - a7ea: a91a add r1, sp, #104 ; 0x68 - a7ec: 4b2d ldr r3, [pc, #180] ; (a8a4 ) - a7ee: a81e add r0, sp, #120 ; 0x78 - a7f0: 4798 blx r3 - fa.y2 = fa.y1; - a7f2: f9bd 307a ldrsh.w r3, [sp, #122] ; 0x7a - return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - a7f6: b22d sxth r5, r5 - for(y = 0; y < h; y++) { - a7f8: 2700 movs r7, #0 - fa.y2 = fa.y1; - a7fa: f8ad 307e strh.w r3, [sp, #126] ; 0x7e - for(y = 0; y < h; y++) { - a7fe: 9b09 ldr r3, [sp, #36] ; 0x24 - a800: 429f cmp r7, r3 - a802: f2c0 8542 blt.w b28a - a.x1 = sh_area.x1 + corner_size; - a806: 9a05 ldr r2, [sp, #20] - a808: f8bd 3048 ldrh.w r3, [sp, #72] ; 0x48 - a.y1 = sh_area.y2 - corner_size + 1; - a80c: 9905 ldr r1, [sp, #20] - a.x1 = sh_area.x1 + corner_size; - a80e: 4413 add r3, r2 - a810: f8ad 3060 strh.w r3, [sp, #96] ; 0x60 - a.x2 = sh_area.x2 - corner_size; - a814: f8bd 304c ldrh.w r3, [sp, #76] ; 0x4c - a818: 1a9b subs r3, r3, r2 - a.y1 = sh_area.y2 - corner_size + 1; - a81a: f9bd 204e ldrsh.w r2, [sp, #78] ; 0x4e - a.x2 = sh_area.x2 - corner_size; - a81e: f8ad 3064 strh.w r3, [sp, #100] ; 0x64 - a.y1 = sh_area.y2 - corner_size + 1; - a822: 1c53 adds r3, r2, #1 - a824: 1a5b subs r3, r3, r1 - a826: f8ad 3062 strh.w r3, [sp, #98] ; 0x62 - a.y2 = sh_area.y2; - a82a: f8ad 2066 strh.w r2, [sp, #102] ; 0x66 - has_com = _lv_area_intersect(&ca, &a, clip); - a82e: 4b1c ldr r3, [pc, #112] ; (a8a0 ) - a830: 4642 mov r2, r8 - a832: a918 add r1, sp, #96 ; 0x60 - a834: a81a add r0, sp, #104 ; 0x68 - a836: 4798 blx r3 - if(has_com) { - a838: 2800 cmp r0, #0 - a83a: d035 beq.n a8a8 - if(simple_mode) ca.y1 = LV_MATH_MAX(ca.y1, coords->y2); - a83c: 9b07 ldr r3, [sp, #28] - a83e: b143 cbz r3, a852 - a840: f9bb 3006 ldrsh.w r3, [fp, #6] - a844: f9bd 206a ldrsh.w r2, [sp, #106] ; 0x6a - a848: 4293 cmp r3, r2 - a84a: bfb8 it lt - a84c: 4613 movlt r3, r2 - a84e: f8ad 306a strh.w r3, [sp, #106] ; 0x6a - a852: f8bd 506c ldrh.w r5, [sp, #108] ; 0x6c - a856: f8bd 3068 ldrh.w r3, [sp, #104] ; 0x68 - return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - a85a: f9bd 206e ldrsh.w r2, [sp, #110] ; 0x6e - a85e: f8bd 106a ldrh.w r1, [sp, #106] ; 0x6a - return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - a862: 3501 adds r5, #1 - a864: 1aed subs r5, r5, r3 - return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - a866: 1c53 adds r3, r2, #1 - a868: 1a5b subs r3, r3, r1 - a86a: b21b sxth r3, r3 - a86c: 9309 str r3, [sp, #36] ; 0x24 - sh_buf_tmp += corner_size * (a.y2 - ca.y2); - a86e: f9bd 3066 ldrsh.w r3, [sp, #102] ; 0x66 - sh_buf_tmp = sh_buf + corner_size - 1; - a872: f109 36ff add.w r6, r9, #4294967295 ; 0xffffffff - sh_buf_tmp += corner_size * (a.y2 - ca.y2); - a876: 1a9b subs r3, r3, r2 - a878: fb09 6603 mla r6, r9, r3, r6 - a87c: 9b06 ldr r3, [sp, #24] - lv_area_copy(&fa, &ca); - a87e: a91a add r1, sp, #104 ; 0x68 - sh_buf_tmp += corner_size * (a.y2 - ca.y2); - a880: 441e add r6, r3 - lv_area_copy(&fa, &ca); - a882: a81e add r0, sp, #120 ; 0x78 - a884: 4b07 ldr r3, [pc, #28] ; (a8a4 ) - a886: 4798 blx r3 - fa.y1 = fa.y2; - a888: f8bd 307e ldrh.w r3, [sp, #126] ; 0x7e - a88c: f8ad 307a strh.w r3, [sp, #122] ; 0x7a - return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - a890: b22d sxth r5, r5 - for(y = 0; y < h; y++) { - a892: 2700 movs r7, #0 - a894: 9b09 ldr r3, [sp, #36] ; 0x24 - a896: 429f cmp r7, r3 - a898: f2c0 8542 blt.w b320 - a89c: e004 b.n a8a8 - a89e: bf00 nop - a8a0: 0000e111 .word 0x0000e111 - a8a4: 00009e11 .word 0x00009e11 - a.x1 = sh_area.x1 + corner_size; - a8a8: 9a05 ldr r2, [sp, #20] - a8aa: f8bd 3048 ldrh.w r3, [sp, #72] ; 0x48 - a8ae: 4413 add r3, r2 - a8b0: f8ad 3060 strh.w r3, [sp, #96] ; 0x60 - a.x2 = sh_area.x2 - corner_size; - a8b4: f8bd 304c ldrh.w r3, [sp, #76] ; 0x4c - a8b8: 1a9b subs r3, r3, r2 - a8ba: f8ad 3064 strh.w r3, [sp, #100] ; 0x64 - a.y1 = sh_area.y1 + corner_size; - a8be: f8bd 304a ldrh.w r3, [sp, #74] ; 0x4a - a8c2: 4413 add r3, r2 - a8c4: f8ad 3062 strh.w r3, [sp, #98] ; 0x62 - a.y2 = sh_area.y2 - corner_size; - a8c8: f8bd 304e ldrh.w r3, [sp, #78] ; 0x4e - a8cc: 1a9b subs r3, r3, r2 - a8ce: f8ad 3066 strh.w r3, [sp, #102] ; 0x66 - has_com = _lv_area_intersect(&ca, &a, clip); - a8d2: 4642 mov r2, r8 - a8d4: 4bb9 ldr r3, [pc, #740] ; (abbc ) - a8d6: a918 add r1, sp, #96 ; 0x60 - a8d8: a81a add r0, sp, #104 ; 0x68 - a8da: 4798 blx r3 - if(has_com && simple_mode == false) { - a8dc: b1e8 cbz r0, a91a - a8de: 9b07 ldr r3, [sp, #28] - a8e0: b9db cbnz r3, a91a - a8e2: f8bd 606c ldrh.w r6, [sp, #108] ; 0x6c - a8e6: f8bd 3068 ldrh.w r3, [sp, #104] ; 0x68 - return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - a8ea: f8bd 706e ldrh.w r7, [sp, #110] ; 0x6e - _lv_memset(mask_buf, dsc->shadow_opa, w); - a8ee: f8df 9310 ldr.w r9, [pc, #784] ; ac00 - return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - a8f2: 3601 adds r6, #1 - a8f4: 1af6 subs r6, r6, r3 - return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - a8f6: f8bd 306a ldrh.w r3, [sp, #106] ; 0x6a - a8fa: 3701 adds r7, #1 - a8fc: 1aff subs r7, r7, r3 - lv_area_copy(&fa, &ca); - a8fe: a91a add r1, sp, #104 ; 0x68 - a900: 4baf ldr r3, [pc, #700] ; (abc0 ) - a902: a81e add r0, sp, #120 ; 0x78 - a904: 4798 blx r3 - fa.y2 = fa.y1; - a906: f9bd 307a ldrsh.w r3, [sp, #122] ; 0x7a - for(y = 0; y < h; y++) { - a90a: 9d07 ldr r5, [sp, #28] - return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - a90c: b236 sxth r6, r6 - return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - a90e: b23f sxth r7, r7 - a910: 42bd cmp r5, r7 - fa.y2 = fa.y1; - a912: f8ad 307e strh.w r3, [sp, #126] ; 0x7e - for(y = 0; y < h; y++) { - a916: f2c0 853c blt.w b392 - lv_draw_mask_remove_id(mask_rout_id); - a91a: 4baa ldr r3, [pc, #680] ; (abc4 ) - _lv_mem_buf_release(mask_buf); - a91c: 4caa ldr r4, [pc, #680] ; (abc8 ) - lv_draw_mask_remove_id(mask_rout_id); - a91e: ee18 0a90 vmov r0, s17 - a922: 4798 blx r3 - _lv_mem_buf_release(mask_buf); - a924: ee18 0a10 vmov r0, s16 - a928: 47a0 blx r4 - _lv_mem_buf_release(sh_buf); - a92a: 9806 ldr r0, [sp, #24] - a92c: 47a0 blx r4 - if(dsc->bg_opa <= LV_OPA_MIN) return; - a92e: f89a 300c ldrb.w r3, [sl, #12] - a932: 2b05 cmp r3, #5 - a934: f240 80a8 bls.w aa88 - lv_area_copy(&coords_bg, coords); - a938: 4ba1 ldr r3, [pc, #644] ; (abc0 ) - a93a: 4659 mov r1, fp - a93c: a816 add r0, sp, #88 ; 0x58 - a93e: 4798 blx r3 - if(dsc->border_width > 1 && dsc->border_opa >= LV_OPA_MAX && dsc->radius != 0) { - a940: f9ba 3010 ldrsh.w r3, [sl, #16] - a944: 2b01 cmp r3, #1 - a946: dd24 ble.n a992 - a948: f89a 3014 ldrb.w r3, [sl, #20] - a94c: 2bf9 cmp r3, #249 ; 0xf9 - a94e: d920 bls.n a992 - a950: f9ba 3000 ldrsh.w r3, [sl] - a954: b1eb cbz r3, a992 - coords_bg.x1 += (dsc->border_side & LV_BORDER_SIDE_LEFT) ? 1 : 0; - a956: f8ba 3012 ldrh.w r3, [sl, #18] - a95a: f8bd 1058 ldrh.w r1, [sp, #88] ; 0x58 - a95e: f3c3 0280 ubfx r2, r3, #2, #1 - a962: 440a add r2, r1 - coords_bg.y1 += (dsc->border_side & LV_BORDER_SIDE_TOP) ? 1 : 0; - a964: f8bd 105a ldrh.w r1, [sp, #90] ; 0x5a - coords_bg.x1 += (dsc->border_side & LV_BORDER_SIDE_LEFT) ? 1 : 0; - a968: f8ad 2058 strh.w r2, [sp, #88] ; 0x58 - coords_bg.y1 += (dsc->border_side & LV_BORDER_SIDE_TOP) ? 1 : 0; - a96c: f3c3 0240 ubfx r2, r3, #1, #1 - a970: 440a add r2, r1 - a972: f8ad 205a strh.w r2, [sp, #90] ; 0x5a - coords_bg.x2 -= (dsc->border_side & LV_BORDER_SIDE_RIGHT) ? 1 : 0; - a976: f8bd 205c ldrh.w r2, [sp, #92] ; 0x5c - a97a: f3c3 01c0 ubfx r1, r3, #3, #1 - a97e: 1a52 subs r2, r2, r1 - a980: f8ad 205c strh.w r2, [sp, #92] ; 0x5c - coords_bg.y2 -= (dsc->border_side & LV_BORDER_SIDE_BOTTOM) ? 1 : 0; - a984: f8bd 205e ldrh.w r2, [sp, #94] ; 0x5e - a988: f003 0301 and.w r3, r3, #1 - a98c: 1ad3 subs r3, r2, r3 - a98e: f8ad 305e strh.w r3, [sp, #94] ; 0x5e - lv_opa_t opa = dsc->bg_opa; - a992: f89a 900c ldrb.w r9, [sl, #12] - lv_disp_t * disp = _lv_refr_get_disp_refreshing(); - a996: 4b8d ldr r3, [pc, #564] ; (abcc ) - if(opa > LV_OPA_MAX) opa = LV_OPA_COVER; - a998: f1b9 0ffb cmp.w r9, #251 ; 0xfb - a99c: bf28 it cs - a99e: f04f 09ff movcs.w r9, #255 ; 0xff - lv_disp_t * disp = _lv_refr_get_disp_refreshing(); - a9a2: 4798 blx r3 - lv_disp_buf_t * vdb = lv_disp_get_buf(disp); - a9a4: 4b8a ldr r3, [pc, #552] ; (abd0 ) - a9a6: 4798 blx r3 - is_common = _lv_area_intersect(&draw_area, &coords_bg, clip); - a9a8: 4b84 ldr r3, [pc, #528] ; (abbc ) - lv_disp_buf_t * vdb = lv_disp_get_buf(disp); - a9aa: 9005 str r0, [sp, #20] - is_common = _lv_area_intersect(&draw_area, &coords_bg, clip); - a9ac: 4642 mov r2, r8 - a9ae: a916 add r1, sp, #88 ; 0x58 - a9b0: a818 add r0, sp, #96 ; 0x60 - a9b2: 4798 blx r3 - if(is_common == false) return; - a9b4: 2800 cmp r0, #0 - a9b6: d067 beq.n aa88 - draw_area.x1 -= disp_area->x1; - a9b8: 9b05 ldr r3, [sp, #20] - a9ba: f8bd 1060 ldrh.w r1, [sp, #96] ; 0x60 - a9be: 8a1a ldrh r2, [r3, #16] - a9c0: 1a8b subs r3, r1, r2 - a9c2: f8ad 3060 strh.w r3, [sp, #96] ; 0x60 - draw_area.y1 -= disp_area->y1; - a9c6: 9b05 ldr r3, [sp, #20] - a9c8: 8a58 ldrh r0, [r3, #18] - a9ca: f8bd 3062 ldrh.w r3, [sp, #98] ; 0x62 - a9ce: 1a1b subs r3, r3, r0 - a9d0: f8ad 3062 strh.w r3, [sp, #98] ; 0x62 - draw_area.x2 -= disp_area->x1; - a9d4: f8bd 3064 ldrh.w r3, [sp, #100] ; 0x64 - a9d8: 1a9a subs r2, r3, r2 - a9da: f8ad 2064 strh.w r2, [sp, #100] ; 0x64 - return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - a9de: 3301 adds r3, #1 - draw_area.y2 -= disp_area->y1; - a9e0: f8bd 2066 ldrh.w r2, [sp, #102] ; 0x66 - a9e4: 1a5b subs r3, r3, r1 - a9e6: 1a12 subs r2, r2, r0 - a9e8: b21b sxth r3, r3 - a9ea: f8ad 2066 strh.w r2, [sp, #102] ; 0x66 - lv_opa_t * mask_buf = _lv_mem_buf_get(draw_area_w); - a9ee: 4618 mov r0, r3 - a9f0: ee08 3a90 vmov s17, r3 - a9f4: 4b77 ldr r3, [pc, #476] ; (abd4 ) - a9f6: 4798 blx r3 - uint16_t other_mask_cnt = lv_draw_mask_get_cnt(); - a9f8: 4b77 ldr r3, [pc, #476] ; (abd8 ) - lv_opa_t * mask_buf = _lv_mem_buf_get(draw_area_w); - a9fa: 4605 mov r5, r0 - uint16_t other_mask_cnt = lv_draw_mask_get_cnt(); - a9fc: 4798 blx r3 - a9fe: 900c str r0, [sp, #48] ; 0x30 - aa00: f8bd 3030 ldrh.w r3, [sp, #48] ; 0x30 - aa04: 930d str r3, [sp, #52] ; 0x34 - if(other_mask_cnt) simple_mode = false; - aa06: 2b00 cmp r3, #0 - aa08: f040 84ef bne.w b3ea - else if(dsc->bg_grad_dir == LV_GRAD_DIR_HOR) simple_mode = false; - aa0c: f89a 3006 ldrb.w r3, [sl, #6] - aa10: 3b02 subs r3, #2 - aa12: bf18 it ne - aa14: 2301 movne r3, #1 - aa16: f8bd 605c ldrh.w r6, [sp, #92] ; 0x5c - if(other_mask_cnt) simple_mode = false; - aa1a: 9308 str r3, [sp, #32] - aa1c: f8bd 3058 ldrh.w r3, [sp, #88] ; 0x58 - return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - aa20: f8bd 405e ldrh.w r4, [sp, #94] ; 0x5e - return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - aa24: 3601 adds r6, #1 - aa26: 1af6 subs r6, r6, r3 - return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - aa28: f8bd 305a ldrh.w r3, [sp, #90] ; 0x5a - aa2c: 3401 adds r4, #1 - aa2e: 1ae4 subs r4, r4, r3 - int32_t coords_h = lv_area_get_height(&coords_bg); - aa30: b224 sxth r4, r4 - return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - aa32: b236 sxth r6, r6 - int32_t short_side = LV_MATH_MIN(coords_w, coords_h); - aa34: 42b4 cmp r4, r6 - int32_t rout = dsc->radius; - aa36: f9ba 3000 ldrsh.w r3, [sl] - int32_t short_side = LV_MATH_MIN(coords_w, coords_h); - aa3a: bfa8 it ge - aa3c: 4634 movge r4, r6 - if(rout > short_side >> 1) rout = short_side >> 1; - aa3e: 1064 asrs r4, r4, #1 - aa40: 429c cmp r4, r3 - aa42: bfa8 it ge - aa44: 461c movge r4, r3 - if(simple_mode && rout == 0 && (dsc->bg_grad_dir == LV_GRAD_DIR_NONE)) { - aa46: 9b08 ldr r3, [sp, #32] - aa48: 2b00 cmp r3, #0 - aa4a: f000 84d1 beq.w b3f0 - aa4e: 2c00 cmp r4, #0 - aa50: f040 84ce bne.w b3f0 - aa54: f89a 3006 ldrb.w r3, [sl, #6] - aa58: 2b00 cmp r3, #0 - aa5a: f040 857c bne.w b556 - _lv_blend_fill(clip, &coords_bg, - aa5e: f89a 200d ldrb.w r2, [sl, #13] - aa62: 4c5e ldr r4, [pc, #376] ; (abdc ) - aa64: e9cd 9201 strd r9, r2, [sp, #4] - aa68: 2201 movs r2, #1 - aa6a: 9200 str r2, [sp, #0] - aa6c: f8ba 2002 ldrh.w r2, [sl, #2] - aa70: a916 add r1, sp, #88 ; 0x58 - aa72: 4640 mov r0, r8 - aa74: 47a0 blx r4 - int16_t mask_rout_id = LV_MASK_ID_INV; - aa76: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff - aa7a: 930b str r3, [sp, #44] ; 0x2c - lv_draw_mask_remove_id(mask_rout_id); - aa7c: 4b51 ldr r3, [pc, #324] ; (abc4 ) - aa7e: 980b ldr r0, [sp, #44] ; 0x2c - aa80: 4798 blx r3 - _lv_mem_buf_release(mask_buf); - aa82: 4b51 ldr r3, [pc, #324] ; (abc8 ) - aa84: 4628 mov r0, r5 - aa86: 4798 blx r3 - _lv_mem_buf_release(mask_buf); -} - -static void draw_pattern(const lv_area_t * coords, const lv_area_t * clip, lv_draw_rect_dsc_t * dsc) -{ - if(dsc->pattern_image == NULL) return; - aa88: f8da 002c ldr.w r0, [sl, #44] ; 0x2c - aa8c: b1d0 cbz r0, aac4 - if(dsc->pattern_opa <= LV_OPA_MIN) return; - aa8e: f89a 3036 ldrb.w r3, [sl, #54] ; 0x36 - aa92: 2b05 cmp r3, #5 - aa94: d916 bls.n aac4 - - lv_img_src_t src_type = lv_img_src_get_type(dsc->pattern_image); - aa96: 4b52 ldr r3, [pc, #328] ; (abe0 ) - aa98: 4798 blx r3 - lv_draw_img_dsc_t img_dsc; - lv_draw_label_dsc_t label_dsc; - int32_t img_w; - int32_t img_h; - - if(src_type == LV_IMG_SRC_FILE || src_type == LV_IMG_SRC_VARIABLE) { - aa9a: 2801 cmp r0, #1 - lv_img_src_t src_type = lv_img_src_get_type(dsc->pattern_image); - aa9c: 4606 mov r6, r0 - if(src_type == LV_IMG_SRC_FILE || src_type == LV_IMG_SRC_VARIABLE) { - aa9e: f200 86bc bhi.w b81a - lv_img_header_t header; - lv_res_t res = lv_img_decoder_get_info(dsc->pattern_image, &header); - aaa2: f8da 002c ldr.w r0, [sl, #44] ; 0x2c - aaa6: 4b4f ldr r3, [pc, #316] ; (abe4 ) - aaa8: a925 add r1, sp, #148 ; 0x94 - aaaa: 4798 blx r3 - if(res != LV_RES_OK) { - aaac: 2801 cmp r0, #1 - aaae: f000 8656 beq.w b75e - LV_LOG_WARN("draw_img: can't get image info"); - aab2: 4b4d ldr r3, [pc, #308] ; (abe8 ) - aab4: 9300 str r3, [sp, #0] - aab6: 494d ldr r1, [pc, #308] ; (abec ) - aab8: 4b4d ldr r3, [pc, #308] ; (abf0 ) - aaba: 4c4e ldr r4, [pc, #312] ; (abf4 ) - aabc: f240 5294 movw r2, #1428 ; 0x594 - aac0: 2002 movs r0, #2 - aac2: 47a0 blx r4 - if(dsc->border_opa <= LV_OPA_MIN) return; - aac4: f89a 3014 ldrb.w r3, [sl, #20] - aac8: 9305 str r3, [sp, #20] - aaca: 2b05 cmp r3, #5 - aacc: f240 8174 bls.w adb8 - if(dsc->border_width == 0) return; - aad0: f9ba 3010 ldrsh.w r3, [sl, #16] - aad4: 2b00 cmp r3, #0 - aad6: f000 816f beq.w adb8 - if(dsc->border_side == LV_BORDER_SIDE_NONE) return; - aada: f9ba 3012 ldrsh.w r3, [sl, #18] - aade: 2b00 cmp r3, #0 - aae0: f000 816a beq.w adb8 - if(opa > LV_OPA_MAX) opa = LV_OPA_COVER; - aae4: 9b05 ldr r3, [sp, #20] - aae6: 2bfb cmp r3, #251 ; 0xfb - aae8: bf28 it cs - aaea: 23ff movcs r3, #255 ; 0xff - aaec: 9305 str r3, [sp, #20] - lv_disp_t * disp = _lv_refr_get_disp_refreshing(); - aaee: 4b37 ldr r3, [pc, #220] ; (abcc ) - aaf0: 4798 blx r3 - lv_disp_buf_t * vdb = lv_disp_get_buf(disp); - aaf2: 4b37 ldr r3, [pc, #220] ; (abd0 ) - aaf4: 4798 blx r3 - is_common = _lv_area_intersect(&draw_area, coords, clip); - aaf6: 4b31 ldr r3, [pc, #196] ; (abbc ) - lv_disp_buf_t * vdb = lv_disp_get_buf(disp); - aaf8: 9006 str r0, [sp, #24] - is_common = _lv_area_intersect(&draw_area, coords, clip); - aafa: 4642 mov r2, r8 - aafc: 4659 mov r1, fp - aafe: a814 add r0, sp, #80 ; 0x50 - ab00: 4798 blx r3 - if(is_common == false) return; - ab02: 2800 cmp r0, #0 - ab04: f000 8158 beq.w adb8 - draw_area.x1 -= disp_area->x1; - ab08: 9b06 ldr r3, [sp, #24] - ab0a: f8bd 1050 ldrh.w r1, [sp, #80] ; 0x50 - ab0e: 8a1a ldrh r2, [r3, #16] - ab10: 1a8b subs r3, r1, r2 - ab12: f8ad 3050 strh.w r3, [sp, #80] ; 0x50 - draw_area.y1 -= disp_area->y1; - ab16: 9b06 ldr r3, [sp, #24] - ab18: 8a58 ldrh r0, [r3, #18] - ab1a: f8bd 3052 ldrh.w r3, [sp, #82] ; 0x52 - ab1e: 1a1b subs r3, r3, r0 - ab20: f8ad 3052 strh.w r3, [sp, #82] ; 0x52 - draw_area.x2 -= disp_area->x1; - ab24: f8bd 3054 ldrh.w r3, [sp, #84] ; 0x54 - ab28: 1a9a subs r2, r3, r2 - ab2a: f8ad 2054 strh.w r2, [sp, #84] ; 0x54 - ab2e: 3301 adds r3, #1 - draw_area.y2 -= disp_area->y1; - ab30: f8bd 2056 ldrh.w r2, [sp, #86] ; 0x56 - ab34: 1a5b subs r3, r3, r1 - ab36: 1a12 subs r2, r2, r0 - ab38: fa0f f983 sxth.w r9, r3 - ab3c: f8ad 2056 strh.w r2, [sp, #86] ; 0x56 - lv_opa_t * mask_buf = _lv_mem_buf_get(draw_area_w); - ab40: 4b24 ldr r3, [pc, #144] ; (abd4 ) - ab42: 4648 mov r0, r9 - ab44: 4798 blx r3 - uint8_t other_mask_cnt = lv_draw_mask_get_cnt(); - ab46: 4b24 ldr r3, [pc, #144] ; (abd8 ) - lv_opa_t * mask_buf = _lv_mem_buf_get(draw_area_w); - ab48: 4604 mov r4, r0 - uint8_t other_mask_cnt = lv_draw_mask_get_cnt(); - ab4a: 4798 blx r3 - if(other_mask_cnt) simple_mode = false; - ab4c: 2800 cmp r0, #0 - ab4e: f040 8749 bne.w b9e4 - else if(dsc->border_side != LV_BORDER_SIDE_FULL) simple_mode = false; - ab52: f9ba 3012 ldrsh.w r3, [sl, #18] - ab56: f1a3 050f sub.w r5, r3, #15 - ab5a: 426b negs r3, r5 - ab5c: 416b adcs r3, r5 - if(other_mask_cnt) simple_mode = false; - ab5e: 461f mov r7, r3 - ab60: f8bb 3004 ldrh.w r3, [fp, #4] - ab64: f8bb 2000 ldrh.w r2, [fp] - return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - ab68: f8bb 1002 ldrh.w r1, [fp, #2] - return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - ab6c: 3301 adds r3, #1 - ab6e: 1a9b subs r3, r3, r2 - return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - ab70: f8bb 2006 ldrh.w r2, [fp, #6] - ab74: 3201 adds r2, #1 - ab76: 1a52 subs r2, r2, r1 - int32_t coords_w = lv_area_get_width(coords); - ab78: b21b sxth r3, r3 - int32_t coords_h = lv_area_get_height(coords); - ab7a: b212 sxth r2, r2 - int32_t short_side = LV_MATH_MIN(coords_w, coords_h); - ab7c: 4293 cmp r3, r2 - ab7e: bfa8 it ge - ab80: 4613 movge r3, r2 - int32_t rout = dsc->radius; - ab82: f9ba 2000 ldrsh.w r2, [sl] - if(rout > short_side >> 1) rout = short_side >> 1; - ab86: 105b asrs r3, r3, #1 - ab88: 4293 cmp r3, r2 - ab8a: bfa8 it ge - ab8c: 4613 movge r3, r2 - if(rout > 0) { - ab8e: 2b00 cmp r3, #0 - ab90: 9309 str r3, [sp, #36] ; 0x24 - ab92: f340 872a ble.w b9ea - lv_draw_mask_radius_init(&mask_rout_param, coords, rout, false); - ab96: 9a09 ldr r2, [sp, #36] ; 0x24 - ab98: 4d17 ldr r5, [pc, #92] ; (abf8 ) - ab9a: 2300 movs r3, #0 - ab9c: 4659 mov r1, fp - ab9e: a81e add r0, sp, #120 ; 0x78 - aba0: 47a8 blx r5 - mask_rout_id = lv_draw_mask_add(&mask_rout_param, NULL); - aba2: 4b16 ldr r3, [pc, #88] ; (abfc ) - aba4: 2100 movs r1, #0 - aba6: a81e add r0, sp, #120 ; 0x78 - aba8: 4798 blx r3 - abaa: 900c str r0, [sp, #48] ; 0x30 - lv_area_copy(&area_small, coords); - abac: a816 add r0, sp, #88 ; 0x58 - abae: 4b04 ldr r3, [pc, #16] ; (abc0 ) - abb0: 4659 mov r1, fp - abb2: 4798 blx r3 - area_small.x1 += ((dsc->border_side & LV_BORDER_SIDE_LEFT) ? dsc->border_width : - (dsc->border_width + rout)); - abb4: f8ba 1012 ldrh.w r1, [sl, #18] - abb8: e024 b.n ac04 - abba: bf00 nop - abbc: 0000e111 .word 0x0000e111 - abc0: 00009e11 .word 0x00009e11 - abc4: 00009a25 .word 0x00009a25 - abc8: 0000edf9 .word 0x0000edf9 - abcc: 0000526d .word 0x0000526d - abd0: 0000dc65 .word 0x0000dc65 - abd4: 0000f145 .word 0x0000f145 - abd8: 00009a75 .word 0x00009a75 - abdc: 00006475 .word 0x00006475 - abe0: 00007a89 .word 0x00007a89 - abe4: 0000d1ad .word 0x0000d1ad - abe8: 00027828 .word 0x00027828 - abec: 000277f3 .word 0x000277f3 - abf0: 00027876 .word 0x00027876 - abf4: 0000eb79 .word 0x0000eb79 - abf8: 00009b99 .word 0x00009b99 - abfc: 00009995 .word 0x00009995 - ac00: 0000f249 .word 0x0000f249 - ac04: f8bd 5024 ldrh.w r5, [sp, #36] ; 0x24 - ac08: f8ba 3010 ldrh.w r3, [sl, #16] - ac0c: f8bd 2058 ldrh.w r2, [sp, #88] ; 0x58 - ac10: 0748 lsls r0, r1, #29 - ac12: bf5e ittt pl - ac14: 195b addpl r3, r3, r5 - ac16: 425b negpl r3, r3 - ac18: b29b uxthpl r3, r3 - ac1a: 4413 add r3, r2 - ac1c: f8ba 2010 ldrh.w r2, [sl, #16] - ac20: f8ad 3058 strh.w r3, [sp, #88] ; 0x58 - area_small.x2 -= ((dsc->border_side & LV_BORDER_SIDE_RIGHT) ? dsc->border_width : - (dsc->border_width + rout)); - ac24: 070b lsls r3, r1, #28 - ac26: bf58 it pl - ac28: 1953 addpl r3, r2, r5 - ac2a: f8bd 005c ldrh.w r0, [sp, #92] ; 0x5c - ac2e: bf56 itet pl - ac30: 425b negpl r3, r3 - ac32: 4613 movmi r3, r2 - ac34: b29b uxthpl r3, r3 - ac36: 1ac3 subs r3, r0, r3 - area_small.y1 += ((dsc->border_side & LV_BORDER_SIDE_TOP) ? dsc->border_width : - (dsc->border_width + rout)); - ac38: 078e lsls r6, r1, #30 - area_small.x2 -= ((dsc->border_side & LV_BORDER_SIDE_RIGHT) ? dsc->border_width : - (dsc->border_width + rout)); - ac3a: f8ad 305c strh.w r3, [sp, #92] ; 0x5c - area_small.y1 += ((dsc->border_side & LV_BORDER_SIDE_TOP) ? dsc->border_width : - (dsc->border_width + rout)); - ac3e: bf58 it pl - ac40: 1953 addpl r3, r2, r5 - ac42: f8bd 005a ldrh.w r0, [sp, #90] ; 0x5a - lv_draw_mask_radius_init(&mask_rin_param, &area_small, rout - dsc->border_width, true); - ac46: 4ec3 ldr r6, [pc, #780] ; (af54 ) - area_small.y1 += ((dsc->border_side & LV_BORDER_SIDE_TOP) ? dsc->border_width : - (dsc->border_width + rout)); - ac48: bf56 itet pl - ac4a: 425b negpl r3, r3 - ac4c: 4613 movmi r3, r2 - ac4e: b29b uxthpl r3, r3 - ac50: 4403 add r3, r0 - ac52: f8ad 305a strh.w r3, [sp, #90] ; 0x5a - area_small.y2 -= ((dsc->border_side & LV_BORDER_SIDE_BOTTOM) ? dsc->border_width : - (dsc->border_width + rout)); - ac56: 07cb lsls r3, r1, #31 - ac58: bf5c itt pl - ac5a: 1953 addpl r3, r2, r5 - ac5c: 425b negpl r3, r3 - ac5e: f8bd 005e ldrh.w r0, [sp, #94] ; 0x5e - ac62: bf4c ite mi - ac64: 4613 movmi r3, r2 - ac66: b29b uxthpl r3, r3 - ac68: 1ac3 subs r3, r0, r3 - lv_draw_mask_radius_init(&mask_rin_param, &area_small, rout - dsc->border_width, true); - ac6a: 1aaa subs r2, r5, r2 - ac6c: b212 sxth r2, r2 - area_small.y2 -= ((dsc->border_side & LV_BORDER_SIDE_BOTTOM) ? dsc->border_width : - (dsc->border_width + rout)); - ac6e: f8ad 305e strh.w r3, [sp, #94] ; 0x5e - lv_draw_mask_radius_init(&mask_rin_param, &area_small, rout - dsc->border_width, true); - ac72: a916 add r1, sp, #88 ; 0x58 - ac74: 2301 movs r3, #1 - ac76: a825 add r0, sp, #148 ; 0x94 - ac78: 47b0 blx r6 - int16_t mask_rin_id = lv_draw_mask_add(&mask_rin_param, NULL); - ac7a: 4bb7 ldr r3, [pc, #732] ; (af58 ) - ac7c: 2100 movs r1, #0 - ac7e: a825 add r0, sp, #148 ; 0x94 - ac80: 4798 blx r3 - int32_t corner_size = LV_MATH_MAX(rout, dsc->border_width - 1); - ac82: f9ba 3010 ldrsh.w r3, [sl, #16] - ac86: 9a09 ldr r2, [sp, #36] ; 0x24 - fill_area.y1 = disp_area->y1 + draw_area.y1; - ac88: f9bd 6052 ldrsh.w r6, [sp, #82] ; 0x52 - upper_corner_end = LV_MATH_MIN(upper_corner_end, draw_area.y2); - ac8c: f9bd c056 ldrsh.w ip, [sp, #86] ; 0x56 - fill_area.x1 = coords->x1; - ac90: f9bb 1000 ldrsh.w r1, [fp] - int32_t corner_size = LV_MATH_MAX(rout, dsc->border_width - 1); - ac94: 429a cmp r2, r3 - ac96: bfa8 it ge - ac98: 9b09 ldrge r3, [sp, #36] ; 0x24 - fill_area.x2 = coords->x2; - ac9a: f9bb 2004 ldrsh.w r2, [fp, #4] - int32_t corner_size = LV_MATH_MAX(rout, dsc->border_width - 1); - ac9e: bfb8 it lt - aca0: f103 33ff addlt.w r3, r3, #4294967295 ; 0xffffffff - aca4: 9308 str r3, [sp, #32] - lv_color_t color = dsc->border_color; - aca6: f8ba 300e ldrh.w r3, [sl, #14] - acaa: ee08 3a10 vmov s16, r3 - lv_blend_mode_t blend_mode = dsc->border_blend_mode; - acae: f89a 3015 ldrb.w r3, [sl, #21] - acb2: 9307 str r3, [sp, #28] - int32_t upper_corner_end = coords->y1 - disp_area->y1 + corner_size; - acb4: 9b06 ldr r3, [sp, #24] - acb6: f9b3 e012 ldrsh.w lr, [r3, #18] - fill_area.y1 = disp_area->y1 + draw_area.y1; - acba: eb0e 0306 add.w r3, lr, r6 - int16_t mask_rin_id = lv_draw_mask_add(&mask_rin_param, NULL); - acbe: ee08 0a90 vmov s17, r0 - fill_area.y1 = disp_area->y1 + draw_area.y1; - acc2: b21b sxth r3, r3 - if(simple_mode) { - acc4: 2f00 cmp r7, #0 - acc6: f000 879d beq.w bc04 - int32_t upper_corner_end = coords->y1 - disp_area->y1 + corner_size; - acca: f9bb 0002 ldrsh.w r0, [fp, #2] - acce: 9f08 ldr r7, [sp, #32] - fill_area.x1 = coords->x1; - acd0: f8ad 1060 strh.w r1, [sp, #96] ; 0x60 - int32_t upper_corner_end = coords->y1 - disp_area->y1 + corner_size; - acd4: eba0 000e sub.w r0, r0, lr - acd8: 4438 add r0, r7 - upper_corner_end = LV_MATH_MIN(upper_corner_end, draw_area.y2); - acda: 4584 cmp ip, r0 - acdc: bfa8 it ge - acde: 4684 movge ip, r0 - ace0: f8cd c028 str.w ip, [sp, #40] ; 0x28 - fill_area.x2 = coords->x2; - ace4: f8ad 2064 strh.w r2, [sp, #100] ; 0x64 - fill_area.y1 = disp_area->y1 + draw_area.y1; - ace8: f8ad 3062 strh.w r3, [sp, #98] ; 0x62 - fill_area.y2 = fill_area.y1; - acec: f8ad 3066 strh.w r3, [sp, #102] ; 0x66 - for(h = draw_area.y1; h <= upper_corner_end; h++) { - acf0: 9b0a ldr r3, [sp, #40] ; 0x28 - acf2: 42b3 cmp r3, r6 - acf4: f280 867e bge.w b9f4 - int32_t lower_corner_end = coords->y2 - disp_area->y1 - corner_size; - acf8: 9b06 ldr r3, [sp, #24] - acfa: f9bb 2006 ldrsh.w r2, [fp, #6] - acfe: f9b3 3012 ldrsh.w r3, [r3, #18] - ad02: 9908 ldr r1, [sp, #32] - lower_corner_end = LV_MATH_MAX(lower_corner_end, draw_area.y1); - ad04: f9bd 6052 ldrsh.w r6, [sp, #82] ; 0x52 - int32_t lower_corner_end = coords->y2 - disp_area->y1 - corner_size; - ad08: 1ad2 subs r2, r2, r3 - ad0a: 1a52 subs r2, r2, r1 - lower_corner_end = LV_MATH_MAX(lower_corner_end, draw_area.y1); - ad0c: 4296 cmp r6, r2 - ad0e: bfb8 it lt - ad10: 4616 movlt r6, r2 - if(lower_corner_end <= upper_corner_end) lower_corner_end = upper_corner_end + 1; - ad12: 9a0a ldr r2, [sp, #40] ; 0x28 - ad14: 42b2 cmp r2, r6 - ad16: bfa4 itt ge - ad18: 4616 movge r6, r2 - ad1a: 3601 addge r6, #1 - fill_area.y1 = disp_area->y1 + lower_corner_end; - ad1c: 4433 add r3, r6 - ad1e: b21b sxth r3, r3 - ad20: f8ad 3062 strh.w r3, [sp, #98] ; 0x62 - fill_area.y2 = fill_area.y1; - ad24: f8ad 3066 strh.w r3, [sp, #102] ; 0x66 - for(h = lower_corner_end; h <= draw_area.y2; h++) { - ad28: f9bd 3056 ldrsh.w r3, [sp, #86] ; 0x56 - ad2c: 429e cmp r6, r3 - ad2e: f340 86dd ble.w baec - fill_area.y1 = coords->y1 + corner_size + 1; - ad32: f8bb 3002 ldrh.w r3, [fp, #2] - ad36: 9a08 ldr r2, [sp, #32] - _lv_blend_fill(clip, &fill_area, color, NULL, LV_DRAW_MASK_RES_FULL_COVER, opa, blend_mode); - ad38: 4d88 ldr r5, [pc, #544] ; (af5c ) - fill_area.y1 = coords->y1 + corner_size + 1; - ad3a: 3301 adds r3, #1 - ad3c: fa13 f382 uxtah r3, r3, r2 - ad40: f8ad 3062 strh.w r3, [sp, #98] ; 0x62 - fill_area.y2 = coords->y2 - corner_size - 1; - ad44: f8bb 3006 ldrh.w r3, [fp, #6] - ad48: 3b01 subs r3, #1 - ad4a: 1a9b subs r3, r3, r2 - fill_area.x2 = coords->x1 + dsc->border_width - 1; - ad4c: f8ba 2010 ldrh.w r2, [sl, #16] - fill_area.y2 = coords->y2 - corner_size - 1; - ad50: f8ad 3066 strh.w r3, [sp, #102] ; 0x66 - fill_area.x1 = coords->x1; - ad54: f9bb 3000 ldrsh.w r3, [fp] - ad58: f8ad 3060 strh.w r3, [sp, #96] ; 0x60 - fill_area.x2 = coords->x1 + dsc->border_width - 1; - ad5c: 3a01 subs r2, #1 - ad5e: 4413 add r3, r2 - ad60: f8ad 3064 strh.w r3, [sp, #100] ; 0x64 - _lv_blend_fill(clip, &fill_area, color, NULL, LV_DRAW_MASK_RES_FULL_COVER, opa, blend_mode); - ad64: 9b07 ldr r3, [sp, #28] - ad66: 9302 str r3, [sp, #8] - ad68: 2601 movs r6, #1 - ad6a: 9b05 ldr r3, [sp, #20] - ad6c: 9301 str r3, [sp, #4] - ad6e: ee18 2a10 vmov r2, s16 - ad72: 2300 movs r3, #0 - ad74: a918 add r1, sp, #96 ; 0x60 - ad76: 4640 mov r0, r8 - ad78: 9600 str r6, [sp, #0] - ad7a: 47a8 blx r5 - fill_area.x1 = coords->x2 - dsc->border_width + 1; - ad7c: f8ba 3010 ldrh.w r3, [sl, #16] - ad80: f9bb 2004 ldrsh.w r2, [fp, #4] - fill_area.x2 = coords->x2; - ad84: f8ad 2064 strh.w r2, [sp, #100] ; 0x64 - fill_area.x1 = coords->x2 - dsc->border_width + 1; - ad88: 1af3 subs r3, r6, r3 - ad8a: 4413 add r3, r2 - ad8c: f8ad 3060 strh.w r3, [sp, #96] ; 0x60 - _lv_blend_fill(clip, &fill_area, color, NULL, LV_DRAW_MASK_RES_FULL_COVER, opa, blend_mode); - ad90: 9b07 ldr r3, [sp, #28] - ad92: 9302 str r3, [sp, #8] - ad94: 9b05 ldr r3, [sp, #20] - ad96: ee18 2a10 vmov r2, s16 - ad9a: e9cd 6300 strd r6, r3, [sp] - ad9e: a918 add r1, sp, #96 ; 0x60 - ada0: 2300 movs r3, #0 - ada2: 4640 mov r0, r8 - ada4: 47a8 blx r5 - lv_draw_mask_remove_id(mask_rin_id); - ada6: 4d6e ldr r5, [pc, #440] ; (af60 ) - ada8: ee18 0a90 vmov r0, s17 - adac: 47a8 blx r5 - lv_draw_mask_remove_id(mask_rout_id); - adae: 980c ldr r0, [sp, #48] ; 0x30 - adb0: 47a8 blx r5 - _lv_mem_buf_release(mask_buf); - adb2: 4b6c ldr r3, [pc, #432] ; (af64 ) - adb4: 4620 mov r0, r4 - adb6: 4798 blx r3 -} - - -static void draw_value(const lv_area_t * coords, const lv_area_t * clip, lv_draw_rect_dsc_t * dsc) -{ - if(dsc->value_str == NULL) return; - adb8: f8da 103c ldr.w r1, [sl, #60] ; 0x3c - adbc: 2900 cmp r1, #0 - adbe: d064 beq.n ae8a - if(dsc->value_opa <= LV_OPA_MIN) return; - adc0: f89a 3044 ldrb.w r3, [sl, #68] ; 0x44 - adc4: 2b05 cmp r3, #5 - adc6: d960 bls.n ae8a - - lv_point_t s; - _lv_txt_get_size(&s, dsc->value_str, dsc->value_font, dsc->value_letter_space, dsc->value_line_space, LV_COORD_MAX, - adc8: 2400 movs r4, #0 - adca: f647 4318 movw r3, #31768 ; 0x7c18 - adce: e9cd 3401 strd r3, r4, [sp, #4] - add2: f9ba 304e ldrsh.w r3, [sl, #78] ; 0x4e - add6: 9300 str r3, [sp, #0] - add8: f9ba 304c ldrsh.w r3, [sl, #76] ; 0x4c - addc: f8da 2040 ldr.w r2, [sl, #64] ; 0x40 - ade0: 4d61 ldr r5, [pc, #388] ; (af68 ) - ade2: a818 add r0, sp, #96 ; 0x60 - ade4: 47a8 blx r5 - LV_TXT_FLAG_NONE); - - lv_area_t value_area; - value_area.x1 = 0; - value_area.y1 = 0; - value_area.x2 = s.x - 1; - ade6: f8bd 3060 ldrh.w r3, [sp, #96] ; 0x60 - value_area.y2 = s.y - 1; - - lv_point_t p_align; - _lv_area_align(coords, &value_area, dsc->value_align, &p_align); - adea: f89a 2050 ldrb.w r2, [sl, #80] ; 0x50 - value_area.x1 = 0; - adee: 941e str r4, [sp, #120] ; 0x78 - value_area.x2 = s.x - 1; - adf0: 3b01 subs r3, #1 - adf2: f8ad 307c strh.w r3, [sp, #124] ; 0x7c - value_area.y2 = s.y - 1; - adf6: f8bd 3062 ldrh.w r3, [sp, #98] ; 0x62 - _lv_area_align(coords, &value_area, dsc->value_align, &p_align); - adfa: 4d5c ldr r5, [pc, #368] ; (af6c ) - value_area.y2 = s.y - 1; - adfc: 3b01 subs r3, #1 - adfe: f8ad 307e strh.w r3, [sp, #126] ; 0x7e - _lv_area_align(coords, &value_area, dsc->value_align, &p_align); - ae02: a91e add r1, sp, #120 ; 0x78 - ae04: ab1a add r3, sp, #104 ; 0x68 - ae06: 4658 mov r0, fp - ae08: 47a8 blx r5 - - value_area.x1 += p_align.x + dsc->value_ofs_x; - ae0a: f8ba 3048 ldrh.w r3, [sl, #72] ; 0x48 - ae0e: f8bd 2068 ldrh.w r2, [sp, #104] ; 0x68 - value_area.y1 += p_align.y + dsc->value_ofs_y; - ae12: f8ba 104a ldrh.w r1, [sl, #74] ; 0x4a - value_area.x1 += p_align.x + dsc->value_ofs_x; - ae16: 441a add r2, r3 - ae18: f8bd 3078 ldrh.w r3, [sp, #120] ; 0x78 - ae1c: fa13 f382 uxtah r3, r3, r2 - ae20: f8ad 3078 strh.w r3, [sp, #120] ; 0x78 - value_area.y1 += p_align.y + dsc->value_ofs_y; - ae24: f8bd 306a ldrh.w r3, [sp, #106] ; 0x6a - ae28: 440b add r3, r1 - ae2a: f8bd 107a ldrh.w r1, [sp, #122] ; 0x7a - ae2e: fa11 f183 uxtah r1, r1, r3 - ae32: f8ad 107a strh.w r1, [sp, #122] ; 0x7a - value_area.x2 += p_align.x + dsc->value_ofs_x; - ae36: f8bd 107c ldrh.w r1, [sp, #124] ; 0x7c - ae3a: fa11 f282 uxtah r2, r1, r2 - ae3e: f8ad 207c strh.w r2, [sp, #124] ; 0x7c - value_area.y2 += p_align.y + dsc->value_ofs_y; - ae42: f8bd 207e ldrh.w r2, [sp, #126] ; 0x7e - ae46: fa12 f383 uxtah r3, r2, r3 - ae4a: f8ad 307e strh.w r3, [sp, #126] ; 0x7e - - lv_draw_label_dsc_t label_dsc; - lv_draw_label_dsc_init(&label_dsc); - ae4e: a825 add r0, sp, #148 ; 0x94 - ae50: 4b47 ldr r3, [pc, #284] ; (af70 ) - ae52: 4798 blx r3 - label_dsc.font = dsc->value_font; - ae54: f8da 3040 ldr.w r3, [sl, #64] ; 0x40 - ae58: 9326 str r3, [sp, #152] ; 0x98 - label_dsc.letter_space = dsc->value_letter_space; - ae5a: f8ba 304c ldrh.w r3, [sl, #76] ; 0x4c - ae5e: f8ad 30a0 strh.w r3, [sp, #160] ; 0xa0 - label_dsc.line_space = dsc->value_line_space; - ae62: f8ba 304e ldrh.w r3, [sl, #78] ; 0x4e - ae66: f8ad 309e strh.w r3, [sp, #158] ; 0x9e - label_dsc.color = dsc->value_color; - ae6a: f8ba 3046 ldrh.w r3, [sl, #70] ; 0x46 - ae6e: f8ad 3094 strh.w r3, [sp, #148] ; 0x94 - label_dsc.opa = dsc->value_opa; - ae72: f89a 3044 ldrb.w r3, [sl, #68] ; 0x44 - - lv_draw_label(&value_area, clip, &label_dsc, dsc->value_str, NULL); - ae76: 9400 str r4, [sp, #0] - label_dsc.opa = dsc->value_opa; - ae78: f88d 309c strb.w r3, [sp, #156] ; 0x9c - lv_draw_label(&value_area, clip, &label_dsc, dsc->value_str, NULL); - ae7c: 4c3d ldr r4, [pc, #244] ; (af74 ) - ae7e: f8da 303c ldr.w r3, [sl, #60] ; 0x3c - ae82: aa25 add r2, sp, #148 ; 0x94 - ae84: 4641 mov r1, r8 - ae86: a81e add r0, sp, #120 ; 0x78 - ae88: 47a0 blx r4 - if(dsc->outline_opa <= LV_OPA_MIN) return; - ae8a: f89a 301c ldrb.w r3, [sl, #28] - ae8e: 9305 str r3, [sp, #20] - ae90: 2b05 cmp r3, #5 - ae92: f240 816b bls.w b16c - if(dsc->outline_width == 0) return; - ae96: f9ba 3018 ldrsh.w r3, [sl, #24] - ae9a: 2b00 cmp r3, #0 - ae9c: f000 8166 beq.w b16c - if(opa > LV_OPA_MAX) opa = LV_OPA_COVER; - aea0: 9b05 ldr r3, [sp, #20] - lv_area_copy(&area_inner, coords); - aea2: 4d35 ldr r5, [pc, #212] ; (af78 ) - if(opa > LV_OPA_MAX) opa = LV_OPA_COVER; - aea4: 2bfb cmp r3, #251 ; 0xfb - aea6: bf28 it cs - aea8: 23ff movcs r3, #255 ; 0xff - aeaa: 9305 str r3, [sp, #20] - uint8_t other_mask_cnt = lv_draw_mask_get_cnt(); - aeac: 4b33 ldr r3, [pc, #204] ; (af7c ) - aeae: 4798 blx r3 - lv_area_copy(&area_inner, coords); - aeb0: 4659 mov r1, fp - uint8_t other_mask_cnt = lv_draw_mask_get_cnt(); - aeb2: 900b str r0, [sp, #44] ; 0x2c - lv_area_copy(&area_inner, coords); - aeb4: a812 add r0, sp, #72 ; 0x48 - aeb6: 47a8 blx r5 - area_inner.x1 -= dsc->outline_pad; - aeb8: f8ba 701a ldrh.w r7, [sl, #26] - aebc: f8bd 9048 ldrh.w r9, [sp, #72] ; 0x48 - area_inner.x2 += dsc->outline_pad; - aec0: f8bd 404c ldrh.w r4, [sp, #76] ; 0x4c - area_inner.x1 -= dsc->outline_pad; - aec4: eba9 0307 sub.w r3, r9, r7 - aec8: f8ad 3048 strh.w r3, [sp, #72] ; 0x48 - area_inner.y1 -= dsc->outline_pad; - aecc: f8bd 304a ldrh.w r3, [sp, #74] ; 0x4a - aed0: 9307 str r3, [sp, #28] - aed2: 1bdb subs r3, r3, r7 - aed4: f8ad 304a strh.w r3, [sp, #74] ; 0x4a - area_inner.y2 += dsc->outline_pad; - aed8: f8bd 304e ldrh.w r3, [sp, #78] ; 0x4e - aedc: 443b add r3, r7 - aede: b29b uxth r3, r3 - area_inner.x2 += dsc->outline_pad; - aee0: 443c add r4, r7 - area_inner.y2 += dsc->outline_pad; - aee2: 9308 str r3, [sp, #32] - aee4: f8ad 304e strh.w r3, [sp, #78] ; 0x4e - area_inner.x2 += dsc->outline_pad; - aee8: b2a4 uxth r4, r4 - int32_t rin = dsc->radius; - aeea: f9ba 3000 ldrsh.w r3, [sl] - aeee: 930c str r3, [sp, #48] ; 0x30 - lv_area_copy(&area_outer, &area_inner); - aef0: a912 add r1, sp, #72 ; 0x48 - int32_t rout = rin + dsc->outline_width; - aef2: f9ba 3018 ldrsh.w r3, [sl, #24] - area_inner.x2 += dsc->outline_pad; - aef6: f8ad 404c strh.w r4, [sp, #76] ; 0x4c - lv_area_copy(&area_outer, &area_inner); - aefa: a814 add r0, sp, #80 ; 0x50 - int32_t rout = rin + dsc->outline_width; - aefc: 930d str r3, [sp, #52] ; 0x34 - lv_area_copy(&area_outer, &area_inner); - aefe: 47a8 blx r5 - area_outer.x1 -= dsc->outline_width; - af00: f8ba 6018 ldrh.w r6, [sl, #24] - af04: f8bd 3050 ldrh.w r3, [sp, #80] ; 0x50 - af08: 9309 str r3, [sp, #36] ; 0x24 - af0a: 1b9b subs r3, r3, r6 - af0c: f8ad 3050 strh.w r3, [sp, #80] ; 0x50 - area_outer.x2 += dsc->outline_width; - af10: f8bd 3054 ldrh.w r3, [sp, #84] ; 0x54 - area_outer.y2 += dsc->outline_width; - af14: f8bd 5056 ldrh.w r5, [sp, #86] ; 0x56 - area_outer.x2 += dsc->outline_width; - af18: 4433 add r3, r6 - af1a: fa1f fb83 uxth.w fp, r3 - area_outer.y1 -= dsc->outline_width; - af1e: f8bd 3052 ldrh.w r3, [sp, #82] ; 0x52 - af22: 930a str r3, [sp, #40] ; 0x28 - area_outer.y2 += dsc->outline_width; - af24: 4435 add r5, r6 - area_outer.y1 -= dsc->outline_width; - af26: 1b9b subs r3, r3, r6 - area_outer.y2 += dsc->outline_width; - af28: b2ad uxth r5, r5 - area_outer.y1 -= dsc->outline_width; - af2a: f8ad 3052 strh.w r3, [sp, #82] ; 0x52 - area_outer.x2 += dsc->outline_width; - af2e: f8ad b054 strh.w fp, [sp, #84] ; 0x54 - lv_disp_t * disp = _lv_refr_get_disp_refreshing(); - af32: 4b13 ldr r3, [pc, #76] ; (af80 ) - area_outer.y2 += dsc->outline_width; - af34: f8ad 5056 strh.w r5, [sp, #86] ; 0x56 - lv_disp_t * disp = _lv_refr_get_disp_refreshing(); - af38: 4798 blx r3 - lv_disp_buf_t * vdb = lv_disp_get_buf(disp); - af3a: 4b12 ldr r3, [pc, #72] ; (af84 ) - af3c: 4798 blx r3 - is_common = _lv_area_intersect(&draw_area, &area_outer, clip); - af3e: 4b12 ldr r3, [pc, #72] ; (af88 ) - lv_disp_buf_t * vdb = lv_disp_get_buf(disp); - af40: 9006 str r0, [sp, #24] - is_common = _lv_area_intersect(&draw_area, &area_outer, clip); - af42: 4642 mov r2, r8 - af44: a914 add r1, sp, #80 ; 0x50 - af46: a816 add r0, sp, #88 ; 0x58 - af48: 4798 blx r3 - if(is_common == false) return; - af4a: 2800 cmp r0, #0 - af4c: f000 810e beq.w b16c - af50: e01c b.n af8c - af52: bf00 nop - af54: 00009b99 .word 0x00009b99 - af58: 00009995 .word 0x00009995 - af5c: 00006475 .word 0x00006475 - af60: 00009a25 .word 0x00009a25 - af64: 0000edf9 .word 0x0000edf9 - af68: 0001042d .word 0x0001042d - af6c: 0000e3b5 .word 0x0000e3b5 - af70: 00007ac9 .word 0x00007ac9 - af74: 00007af9 .word 0x00007af9 - af78: 00009e11 .word 0x00009e11 - af7c: 00009a75 .word 0x00009a75 - af80: 0000526d .word 0x0000526d - af84: 0000dc65 .word 0x0000dc65 - af88: 0000e111 .word 0x0000e111 - af8c: 9b07 ldr r3, [sp, #28] - draw_area.x1 -= disp_area->x1; - af8e: f8bd 1058 ldrh.w r1, [sp, #88] ; 0x58 - af92: f1c3 0301 rsb r3, r3, #1 - return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - af96: f1c9 0901 rsb r9, r9, #1 - af9a: 44b9 add r9, r7 - return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - af9c: 441f add r7, r3 - af9e: 9b08 ldr r3, [sp, #32] - return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - afa0: eb04 0209 add.w r2, r4, r9 - return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - afa4: 443b add r3, r7 - int32_t inner_w = lv_area_get_width(&area_inner); - afa6: b212 sxth r2, r2 - int32_t inner_h = lv_area_get_height(&area_inner); - afa8: b21b sxth r3, r3 - int32_t short_side = LV_MATH_MIN(inner_w, inner_h); - afaa: 429a cmp r2, r3 - afac: bfa8 it ge - afae: 461a movge r2, r3 - afb0: 9b0c ldr r3, [sp, #48] ; 0x30 - if(rin > short_side >> 1) rin = short_side >> 1; - afb2: 1052 asrs r2, r2, #1 - afb4: 429a cmp r2, r3 - afb6: bfa8 it ge - afb8: 461a movge r2, r3 - return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - afba: 9b09 ldr r3, [sp, #36] ; 0x24 - afbc: f1c3 0301 rsb r3, r3, #1 - afc0: 4433 add r3, r6 - afc2: 449b add fp, r3 - return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - afc4: 9b0a ldr r3, [sp, #40] ; 0x28 - afc6: f1c3 0301 rsb r3, r3, #1 - afca: 441e add r6, r3 - afcc: 4435 add r5, r6 - int32_t coords_out_w = lv_area_get_width(&area_outer); - afce: fa0f fb8b sxth.w fp, fp - int32_t coords_out_h = lv_area_get_height(&area_outer); - afd2: b22d sxth r5, r5 - short_side = LV_MATH_MIN(coords_out_w, coords_out_h); - afd4: 45ab cmp fp, r5 - int32_t rout = rin + dsc->outline_width; - afd6: 9b0d ldr r3, [sp, #52] ; 0x34 - lv_draw_mask_radius_init(&mask_rin_param, &area_inner, rin, true); - afd8: 4ec8 ldr r6, [pc, #800] ; (b2fc ) - short_side = LV_MATH_MIN(coords_out_w, coords_out_h); - afda: bfa8 it ge - afdc: 46ab movge fp, r5 - int32_t rout = rin + dsc->outline_width; - afde: 4413 add r3, r2 - if(rout > short_side >> 1) rout = short_side >> 1; - afe0: ea4f 0b6b mov.w fp, fp, asr #1 - afe4: 459b cmp fp, r3 - afe6: 46d9 mov r9, fp - afe8: bfa8 it ge - afea: 4699 movge r9, r3 - draw_area.x1 -= disp_area->x1; - afec: 9b06 ldr r3, [sp, #24] - draw_area.x2 -= disp_area->x1; - afee: f8bd 505c ldrh.w r5, [sp, #92] ; 0x5c - draw_area.x1 -= disp_area->x1; - aff2: 8a1b ldrh r3, [r3, #16] - aff4: 1ac8 subs r0, r1, r3 - aff6: f8ad 0058 strh.w r0, [sp, #88] ; 0x58 - draw_area.y1 -= disp_area->y1; - affa: 9806 ldr r0, [sp, #24] - draw_area.x2 -= disp_area->x1; - affc: 1aeb subs r3, r5, r3 - draw_area.y1 -= disp_area->y1; - affe: 8a44 ldrh r4, [r0, #18] - draw_area.x2 -= disp_area->x1; - b000: f8ad 305c strh.w r3, [sp, #92] ; 0x5c - draw_area.y2 -= disp_area->y1; - b004: f8bd 305e ldrh.w r3, [sp, #94] ; 0x5e - draw_area.y1 -= disp_area->y1; - b008: f8bd 005a ldrh.w r0, [sp, #90] ; 0x5a - return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - b00c: 3501 adds r5, #1 - draw_area.y2 -= disp_area->y1; - b00e: 1b1b subs r3, r3, r4 - b010: 1a6d subs r5, r5, r1 - draw_area.y1 -= disp_area->y1; - b012: 1b00 subs r0, r0, r4 - draw_area.y2 -= disp_area->y1; - b014: f8ad 305e strh.w r3, [sp, #94] ; 0x5e - b018: b22b sxth r3, r5 - b01a: ee08 3a10 vmov s16, r3 - draw_area.y1 -= disp_area->y1; - b01e: f8ad 005a strh.w r0, [sp, #90] ; 0x5a - lv_draw_mask_radius_init(&mask_rin_param, &area_inner, rin, true); - b022: 2301 movs r3, #1 - b024: a912 add r1, sp, #72 ; 0x48 - b026: a81e add r0, sp, #120 ; 0x78 - b028: 47b0 blx r6 - int16_t mask_rin_id = lv_draw_mask_add(&mask_rin_param, NULL); - b02a: 4cb5 ldr r4, [pc, #724] ; (b300 ) - b02c: 2100 movs r1, #0 - b02e: a81e add r0, sp, #120 ; 0x78 - b030: 47a0 blx r4 - lv_draw_mask_radius_init(&mask_rout_param, &area_outer, rout, false); - b032: fa0f f289 sxth.w r2, r9 - b036: 2300 movs r3, #0 - b038: a914 add r1, sp, #80 ; 0x50 - int16_t mask_rin_id = lv_draw_mask_add(&mask_rin_param, NULL); - b03a: ee08 0a90 vmov s17, r0 - lv_draw_mask_radius_init(&mask_rout_param, &area_outer, rout, false); - b03e: a825 add r0, sp, #148 ; 0x94 - b040: 47b0 blx r6 - int16_t mask_rout_id = lv_draw_mask_add(&mask_rout_param, NULL); - b042: 2100 movs r1, #0 - b044: a825 add r0, sp, #148 ; 0x94 - b046: 47a0 blx r4 - lv_opa_t * mask_buf = _lv_mem_buf_get(draw_area_w); - b048: 4bae ldr r3, [pc, #696] ; (b304 ) - int16_t mask_rout_id = lv_draw_mask_add(&mask_rout_param, NULL); - b04a: ee09 0a10 vmov s18, r0 - lv_opa_t * mask_buf = _lv_mem_buf_get(draw_area_w); - b04e: ee18 0a10 vmov r0, s16 - b052: 4798 blx r3 - int32_t corner_size = LV_MATH_MAX(rout, dsc->outline_width - 1); - b054: f9ba 3018 ldrsh.w r3, [sl, #24] - fill_area.y1 = disp_area->y1 + draw_area.y1; - b058: f9bd 605a ldrsh.w r6, [sp, #90] ; 0x5a - if(simple_mode) { - b05c: 9a0b ldr r2, [sp, #44] ; 0x2c - lv_color_t color = dsc->outline_color; - b05e: f8ba 7016 ldrh.w r7, [sl, #22] - lv_blend_mode_t blend_mode = dsc->outline_blend_mode; - b062: f89a b01d ldrb.w fp, [sl, #29] - fill_area.x2 = area_outer.x2; - b066: f9bd 1054 ldrsh.w r1, [sp, #84] ; 0x54 - int32_t corner_size = LV_MATH_MAX(rout, dsc->outline_width - 1); - b06a: 4599 cmp r9, r3 - b06c: bfbc itt lt - b06e: f103 33ff addlt.w r3, r3, #4294967295 ; 0xffffffff - b072: 9307 strlt r3, [sp, #28] - int32_t upper_corner_end = area_outer.y1 - disp_area->y1 + corner_size; - b074: 9b06 ldr r3, [sp, #24] - b076: bfa8 it ge - b078: f8cd 901c strge.w r9, [sp, #28] - b07c: f9b3 c012 ldrsh.w ip, [r3, #18] - fill_area.y1 = disp_area->y1 + draw_area.y1; - b080: eb0c 0306 add.w r3, ip, r6 - lv_opa_t * mask_buf = _lv_mem_buf_get(draw_area_w); - b084: 4604 mov r4, r0 - fill_area.y1 = disp_area->y1 + draw_area.y1; - b086: b21b sxth r3, r3 - fill_area.x1 = area_outer.x1; - b088: f9bd 0050 ldrsh.w r0, [sp, #80] ; 0x50 - if(simple_mode) { - b08c: 2a00 cmp r2, #0 - b08e: f040 873f bne.w bf10 - int32_t upper_corner_end = area_outer.y1 - disp_area->y1 + corner_size; - b092: f9bd 2052 ldrsh.w r2, [sp, #82] ; 0x52 - b096: 9d07 ldr r5, [sp, #28] - fill_area.x1 = area_outer.x1; - b098: f8ad 0060 strh.w r0, [sp, #96] ; 0x60 - int32_t upper_corner_end = area_outer.y1 - disp_area->y1 + corner_size; - b09c: eba2 020c sub.w r2, r2, ip - b0a0: 442a add r2, r5 - b0a2: 9208 str r2, [sp, #32] - fill_area.x2 = area_outer.x2; - b0a4: f8ad 1064 strh.w r1, [sp, #100] ; 0x64 - fill_area.y1 = disp_area->y1 + draw_area.y1; - b0a8: f8ad 3062 strh.w r3, [sp, #98] ; 0x62 - fill_area.y2 = fill_area.y1; - b0ac: f8ad 3066 strh.w r3, [sp, #102] ; 0x66 - for(h = draw_area.y1; h <= upper_corner_end; h++) { - b0b0: 9b08 ldr r3, [sp, #32] - b0b2: 42b3 cmp r3, r6 - b0b4: f280 8624 bge.w bd00 - int32_t lower_corner_end = area_outer.y2 - disp_area->y1 - corner_size; - b0b8: 9b06 ldr r3, [sp, #24] - b0ba: f9bd 6056 ldrsh.w r6, [sp, #86] ; 0x56 - b0be: f9b3 3012 ldrsh.w r3, [r3, #18] - b0c2: 9a07 ldr r2, [sp, #28] - b0c4: 1af6 subs r6, r6, r3 - b0c6: 1ab6 subs r6, r6, r2 - if(lower_corner_end <= upper_corner_end) lower_corner_end = upper_corner_end + 1; - b0c8: 9a08 ldr r2, [sp, #32] - b0ca: 42b2 cmp r2, r6 - b0cc: bfa4 itt ge - b0ce: 4616 movge r6, r2 - b0d0: 3601 addge r6, #1 - fill_area.y1 = disp_area->y1 + lower_corner_end; - b0d2: 4433 add r3, r6 - b0d4: b21b sxth r3, r3 - b0d6: f8ad 3062 strh.w r3, [sp, #98] ; 0x62 - fill_area.y2 = fill_area.y1; - b0da: f8ad 3066 strh.w r3, [sp, #102] ; 0x66 - for(h = lower_corner_end; h <= draw_area.y2; h++) { - b0de: f9bd 305e ldrsh.w r3, [sp, #94] ; 0x5e - b0e2: 429e cmp r6, r3 - b0e4: f340 868d ble.w be02 - fill_area.y1 = area_outer.y1 + corner_size + 1; - b0e8: f8bd 3052 ldrh.w r3, [sp, #82] ; 0x52 - b0ec: 9a07 ldr r2, [sp, #28] - _lv_blend_fill(clip, &fill_area, color, NULL, LV_DRAW_MASK_RES_FULL_COVER, opa, blend_mode); - b0ee: 4d86 ldr r5, [pc, #536] ; (b308 ) - fill_area.y1 = area_outer.y1 + corner_size + 1; - b0f0: 3301 adds r3, #1 - b0f2: fa13 f382 uxtah r3, r3, r2 - b0f6: f8ad 3062 strh.w r3, [sp, #98] ; 0x62 - fill_area.y2 = area_outer.y2 - corner_size - 1; - b0fa: f8bd 3056 ldrh.w r3, [sp, #86] ; 0x56 - b0fe: 3b01 subs r3, #1 - b100: 1a9b subs r3, r3, r2 - b102: f8ad 3066 strh.w r3, [sp, #102] ; 0x66 - fill_area.x1 = area_outer.x1; - b106: f9bd 3050 ldrsh.w r3, [sp, #80] ; 0x50 - fill_area.x2 = area_outer.x1 + dsc->outline_width - 1; - b10a: f8ba 2018 ldrh.w r2, [sl, #24] - fill_area.x1 = area_outer.x1; - b10e: f8ad 3060 strh.w r3, [sp, #96] ; 0x60 - fill_area.x2 = area_outer.x1 + dsc->outline_width - 1; - b112: 3b01 subs r3, #1 - b114: 4413 add r3, r2 - _lv_blend_fill(clip, &fill_area, color, NULL, LV_DRAW_MASK_RES_FULL_COVER, opa, blend_mode); - b116: 2601 movs r6, #1 - fill_area.x2 = area_outer.x1 + dsc->outline_width - 1; - b118: f8ad 3064 strh.w r3, [sp, #100] ; 0x64 - _lv_blend_fill(clip, &fill_area, color, NULL, LV_DRAW_MASK_RES_FULL_COVER, opa, blend_mode); - b11c: 9b05 ldr r3, [sp, #20] - b11e: 9301 str r3, [sp, #4] - b120: 463a mov r2, r7 - b122: 2300 movs r3, #0 - b124: a918 add r1, sp, #96 ; 0x60 - b126: 4640 mov r0, r8 - b128: f8cd b008 str.w fp, [sp, #8] - b12c: 9600 str r6, [sp, #0] - b12e: 47a8 blx r5 - fill_area.x1 = area_outer.x2 - dsc->outline_width + 1; - b130: f9bd 2054 ldrsh.w r2, [sp, #84] ; 0x54 - b134: f8ba 1018 ldrh.w r1, [sl, #24] - fill_area.x2 = area_outer.x2; - b138: f8ad 2064 strh.w r2, [sp, #100] ; 0x64 - fill_area.x1 = area_outer.x2 - dsc->outline_width + 1; - b13c: 1993 adds r3, r2, r6 - b13e: 1a5b subs r3, r3, r1 - b140: f8ad 3060 strh.w r3, [sp, #96] ; 0x60 - _lv_blend_fill(clip, &fill_area, color, NULL, LV_DRAW_MASK_RES_FULL_COVER, opa, blend_mode); - b144: 9b05 ldr r3, [sp, #20] - b146: f8cd b008 str.w fp, [sp, #8] - b14a: e9cd 6300 strd r6, r3, [sp] - b14e: 463a mov r2, r7 - b150: 2300 movs r3, #0 - b152: a918 add r1, sp, #96 ; 0x60 - b154: 4640 mov r0, r8 - b156: 47a8 blx r5 - lv_draw_mask_remove_id(mask_rin_id); - b158: 4d6c ldr r5, [pc, #432] ; (b30c ) - b15a: ee18 0a90 vmov r0, s17 - b15e: 47a8 blx r5 - lv_draw_mask_remove_id(mask_rout_id); - b160: ee19 0a10 vmov r0, s18 - b164: 47a8 blx r5 - _lv_mem_buf_release(mask_buf); - b166: 4b6a ldr r3, [pc, #424] ; (b310 ) - b168: 4620 mov r0, r4 - b16a: 4798 blx r3 -} - b16c: b02d add sp, #180 ; 0xb4 - b16e: ecbd 8b04 vpop {d8-d9} - b172: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - _lv_memcpy(mask_buf, sh_buf_tmp, w); - b176: 4629 mov r1, r5 - b178: 4b66 ldr r3, [pc, #408] ; (b314 ) - mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w); - b17a: 4c67 ldr r4, [pc, #412] ; (b318 ) - _lv_memcpy(mask_buf, sh_buf_tmp, w); - b17c: 4632 mov r2, r6 - b17e: ee18 0a10 vmov r0, s16 - b182: 4798 blx r3 - mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w); - b184: f9bd 207a ldrsh.w r2, [sp, #122] ; 0x7a - b188: f9bd 1078 ldrsh.w r1, [sp, #120] ; 0x78 - b18c: 4633 mov r3, r6 - b18e: ee18 0a10 vmov r0, s16 - b192: 47a0 blx r4 - _lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf, - b194: f89a 3029 ldrb.w r3, [sl, #41] ; 0x29 - b198: 9302 str r3, [sp, #8] - if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) mask_res = LV_DRAW_MASK_RES_CHANGED; - b19a: 2801 cmp r0, #1 - _lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf, - b19c: 9b08 ldr r3, [sp, #32] - b19e: 4c5a ldr r4, [pc, #360] ; (b308 ) - if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) mask_res = LV_DRAW_MASK_RES_CHANGED; - b1a0: bf08 it eq - b1a2: 2002 moveq r0, #2 - _lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf, - b1a4: e9cd 0300 strd r0, r3, [sp] - b1a8: a91e add r1, sp, #120 ; 0x78 - b1aa: ee18 3a10 vmov r3, s16 - b1ae: f8ba 201e ldrh.w r2, [sl, #30] - b1b2: 4640 mov r0, r8 - b1b4: 47a0 blx r4 - fa.y1++; - b1b6: f8bd 307a ldrh.w r3, [sp, #122] ; 0x7a - b1ba: 3301 adds r3, #1 - b1bc: f8ad 307a strh.w r3, [sp, #122] ; 0x7a - fa.y2++; - b1c0: f8bd 307e ldrh.w r3, [sp, #126] ; 0x7e - b1c4: 3301 adds r3, #1 - b1c6: b21b sxth r3, r3 - sh_buf_tmp += corner_size; - b1c8: 444d add r5, r9 - for(y = 0; y < h; y++) { - b1ca: 3701 adds r7, #1 - b1cc: f7ff ba2e b.w a62c - _lv_memcpy(mask_buf, sh_buf_tmp, w); - b1d0: 4629 mov r1, r5 - b1d2: 4b50 ldr r3, [pc, #320] ; (b314 ) - mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w); - b1d4: 4c50 ldr r4, [pc, #320] ; (b318 ) - _lv_memcpy(mask_buf, sh_buf_tmp, w); - b1d6: 4632 mov r2, r6 - b1d8: ee18 0a10 vmov r0, s16 - b1dc: 4798 blx r3 - mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w); - b1de: f9bd 207a ldrsh.w r2, [sp, #122] ; 0x7a - b1e2: f9bd 1078 ldrsh.w r1, [sp, #120] ; 0x78 - b1e6: 4633 mov r3, r6 - b1e8: ee18 0a10 vmov r0, s16 - b1ec: 47a0 blx r4 - _lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf, - b1ee: f89a 3029 ldrb.w r3, [sl, #41] ; 0x29 - b1f2: 9302 str r3, [sp, #8] - if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) mask_res = LV_DRAW_MASK_RES_CHANGED; - b1f4: 2801 cmp r0, #1 - _lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf, - b1f6: 9b08 ldr r3, [sp, #32] - b1f8: 4c43 ldr r4, [pc, #268] ; (b308 ) - if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) mask_res = LV_DRAW_MASK_RES_CHANGED; - b1fa: bf08 it eq - b1fc: 2002 moveq r0, #2 - _lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf, - b1fe: e9cd 0300 strd r0, r3, [sp] - b202: a91e add r1, sp, #120 ; 0x78 - b204: ee18 3a10 vmov r3, s16 - b208: f8ba 201e ldrh.w r2, [sl, #30] - b20c: 4640 mov r0, r8 - b20e: 47a0 blx r4 - fa.y1--; - b210: f8bd 307a ldrh.w r3, [sp, #122] ; 0x7a - b214: 3b01 subs r3, #1 - b216: f8ad 307a strh.w r3, [sp, #122] ; 0x7a - fa.y2--; - b21a: f8bd 307e ldrh.w r3, [sp, #126] ; 0x7e - b21e: 3b01 subs r3, #1 - b220: f8ad 307e strh.w r3, [sp, #126] ; 0x7e - sh_buf_tmp += corner_size; - b224: 444d add r5, r9 - for(y = 0; y < h; y++) { - b226: 3701 adds r7, #1 - b228: f7ff ba55 b.w a6d6 - _lv_memcpy(mask_buf, sh_buf_tmp, w); - b22c: 4b39 ldr r3, [pc, #228] ; (b314 ) - b22e: ee18 0a10 vmov r0, s16 - b232: 462a mov r2, r5 - b234: 4631 mov r1, r6 - b236: 4798 blx r3 - if(simple_mode) { - b238: 9b07 ldr r3, [sp, #28] - b23a: b953 cbnz r3, b252 - mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w); - b23c: f9bd 207a ldrsh.w r2, [sp, #122] ; 0x7a - b240: f9bd 1078 ldrsh.w r1, [sp, #120] ; 0x78 - b244: 4c34 ldr r4, [pc, #208] ; (b318 ) - b246: ee18 0a10 vmov r0, s16 - b24a: 462b mov r3, r5 - b24c: 47a0 blx r4 - if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) mask_res = LV_DRAW_MASK_RES_CHANGED; - b24e: 2801 cmp r0, #1 - b250: d100 bne.n b254 - b252: 2002 movs r0, #2 - _lv_blend_fill(clip, &fa, - b254: f89a 3029 ldrb.w r3, [sl, #41] ; 0x29 - b258: 9302 str r3, [sp, #8] - b25a: f89a 3028 ldrb.w r3, [sl, #40] ; 0x28 - b25e: 4c2a ldr r4, [pc, #168] ; (b308 ) - b260: e9cd 0300 strd r0, r3, [sp] - b264: a91e add r1, sp, #120 ; 0x78 - b266: ee18 3a10 vmov r3, s16 - b26a: f8ba 201e ldrh.w r2, [sl, #30] - b26e: 4640 mov r0, r8 - b270: 47a0 blx r4 - fa.y1++; - b272: f8bd 307a ldrh.w r3, [sp, #122] ; 0x7a - b276: 3301 adds r3, #1 - b278: f8ad 307a strh.w r3, [sp, #122] ; 0x7a - fa.y2++; - b27c: f8bd 307e ldrh.w r3, [sp, #126] ; 0x7e - b280: 3301 adds r3, #1 - b282: b21b sxth r3, r3 - for(y = 0; y < h; y++) { - b284: 3701 adds r7, #1 - b286: f7ff ba6f b.w a768 - lv_opa_t opa_tmp = sh_buf_tmp[0]; - b28a: 7833 ldrb r3, [r6, #0] - if(opa_tmp != LV_OPA_COVER || opa != LV_OPA_COVER) opa_tmp = (opa * opa_tmp) >> 8; - b28c: 9a08 ldr r2, [sp, #32] - b28e: ea02 0103 and.w r1, r2, r3 - b292: 29ff cmp r1, #255 ; 0xff - b294: bf1c itt ne - b296: fb12 f303 smulbbne r3, r2, r3 - b29a: f3c3 2107 ubfxne r1, r3, #8, #8 - _lv_memset(mask_buf, opa_tmp, w); - b29e: ee18 0a10 vmov r0, s16 - b2a2: 4b1e ldr r3, [pc, #120] ; (b31c ) - b2a4: 462a mov r2, r5 - b2a6: 4798 blx r3 - if(simple_mode) { - b2a8: 9b07 ldr r3, [sp, #28] - b2aa: b953 cbnz r3, b2c2 - mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w); - b2ac: f9bd 207a ldrsh.w r2, [sp, #122] ; 0x7a - b2b0: f9bd 1078 ldrsh.w r1, [sp, #120] ; 0x78 - b2b4: 4c18 ldr r4, [pc, #96] ; (b318 ) - b2b6: ee18 0a10 vmov r0, s16 - b2ba: 462b mov r3, r5 - b2bc: 47a0 blx r4 - if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) mask_res = LV_DRAW_MASK_RES_CHANGED; - b2be: 2801 cmp r0, #1 - b2c0: d100 bne.n b2c4 - b2c2: 2002 movs r0, #2 - _lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf, - b2c4: f89a 3029 ldrb.w r3, [sl, #41] ; 0x29 - b2c8: 9302 str r3, [sp, #8] - b2ca: 23ff movs r3, #255 ; 0xff - b2cc: e9cd 0300 strd r0, r3, [sp] - b2d0: 4c0d ldr r4, [pc, #52] ; (b308 ) - b2d2: f8ba 201e ldrh.w r2, [sl, #30] - b2d6: ee18 3a10 vmov r3, s16 - b2da: a91e add r1, sp, #120 ; 0x78 - b2dc: 4640 mov r0, r8 - b2de: 47a0 blx r4 - fa.y1++; - b2e0: f8bd 307a ldrh.w r3, [sp, #122] ; 0x7a - b2e4: 3301 adds r3, #1 - b2e6: f8ad 307a strh.w r3, [sp, #122] ; 0x7a - fa.y2++; - b2ea: f8bd 307e ldrh.w r3, [sp, #126] ; 0x7e - b2ee: 3301 adds r3, #1 - b2f0: b21b sxth r3, r3 - sh_buf_tmp += corner_size; - b2f2: 444e add r6, r9 - for(y = 0; y < h; y++) { - b2f4: 3701 adds r7, #1 - b2f6: f7ff ba80 b.w a7fa - b2fa: bf00 nop - b2fc: 00009b99 .word 0x00009b99 - b300: 00009995 .word 0x00009995 - b304: 0000f145 .word 0x0000f145 - b308: 00006475 .word 0x00006475 - b30c: 00009a25 .word 0x00009a25 - b310: 0000edf9 .word 0x0000edf9 - b314: 0000eec1 .word 0x0000eec1 - b318: 000099e5 .word 0x000099e5 - b31c: 0000f249 .word 0x0000f249 - lv_opa_t opa_tmp = sh_buf_tmp[0]; - b320: 7833 ldrb r3, [r6, #0] - if(opa_tmp != LV_OPA_COVER || opa != LV_OPA_COVER) opa_tmp = (opa * opa_tmp) >> 8; - b322: 9a08 ldr r2, [sp, #32] - b324: ea02 0103 and.w r1, r2, r3 - b328: 29ff cmp r1, #255 ; 0xff - b32a: bf1c itt ne - b32c: fb12 f303 smulbbne r3, r2, r3 - b330: f3c3 2107 ubfxne r1, r3, #8, #8 - _lv_memset(mask_buf, opa_tmp, w); - b334: ee18 0a10 vmov r0, s16 - b338: 4bb5 ldr r3, [pc, #724] ; (b610 ) - b33a: 462a mov r2, r5 - b33c: 4798 blx r3 - if(simple_mode) { - b33e: 9b07 ldr r3, [sp, #28] - b340: b953 cbnz r3, b358 - mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w); - b342: f9bd 207a ldrsh.w r2, [sp, #122] ; 0x7a - b346: f9bd 1078 ldrsh.w r1, [sp, #120] ; 0x78 - b34a: 4cb2 ldr r4, [pc, #712] ; (b614 ) - b34c: ee18 0a10 vmov r0, s16 - b350: 462b mov r3, r5 - b352: 47a0 blx r4 - if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) mask_res = LV_DRAW_MASK_RES_CHANGED; - b354: 2801 cmp r0, #1 - b356: d100 bne.n b35a - b358: 2002 movs r0, #2 - _lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf, - b35a: f89a 3029 ldrb.w r3, [sl, #41] ; 0x29 - b35e: 9302 str r3, [sp, #8] - b360: 23ff movs r3, #255 ; 0xff - b362: e9cd 0300 strd r0, r3, [sp] - b366: 4cac ldr r4, [pc, #688] ; (b618 ) - b368: f8ba 201e ldrh.w r2, [sl, #30] - b36c: ee18 3a10 vmov r3, s16 - b370: a91e add r1, sp, #120 ; 0x78 - b372: 4640 mov r0, r8 - b374: 47a0 blx r4 - fa.y1--; - b376: f8bd 307a ldrh.w r3, [sp, #122] ; 0x7a - b37a: 3b01 subs r3, #1 - b37c: f8ad 307a strh.w r3, [sp, #122] ; 0x7a - fa.y2--; - b380: f8bd 307e ldrh.w r3, [sp, #126] ; 0x7e - b384: 3b01 subs r3, #1 - b386: f8ad 307e strh.w r3, [sp, #126] ; 0x7e - sh_buf_tmp += corner_size; - b38a: 444e add r6, r9 - for(y = 0; y < h; y++) { - b38c: 3701 adds r7, #1 - b38e: f7ff ba81 b.w a894 - _lv_memset(mask_buf, dsc->shadow_opa, w); - b392: f89a 1028 ldrb.w r1, [sl, #40] ; 0x28 - mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w); - b396: 4c9f ldr r4, [pc, #636] ; (b614 ) - _lv_memset(mask_buf, dsc->shadow_opa, w); - b398: ee18 0a10 vmov r0, s16 - b39c: 4632 mov r2, r6 - b39e: 47c8 blx r9 - mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w); - b3a0: f9bd 207a ldrsh.w r2, [sp, #122] ; 0x7a - b3a4: f9bd 1078 ldrsh.w r1, [sp, #120] ; 0x78 - b3a8: 4633 mov r3, r6 - b3aa: ee18 0a10 vmov r0, s16 - b3ae: 47a0 blx r4 - _lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf, - b3b0: f89a 3029 ldrb.w r3, [sl, #41] ; 0x29 - b3b4: 9302 str r3, [sp, #8] - if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) mask_res = LV_DRAW_MASK_RES_CHANGED; - b3b6: 2801 cmp r0, #1 - b3b8: bf08 it eq - b3ba: 2002 moveq r0, #2 - _lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf, - b3bc: 23ff movs r3, #255 ; 0xff - b3be: e9cd 0300 strd r0, r3, [sp] - b3c2: 4c95 ldr r4, [pc, #596] ; (b618 ) - b3c4: f8ba 201e ldrh.w r2, [sl, #30] - b3c8: ee18 3a10 vmov r3, s16 - b3cc: a91e add r1, sp, #120 ; 0x78 - b3ce: 4640 mov r0, r8 - b3d0: 47a0 blx r4 - fa.y1++; - b3d2: f8bd 307a ldrh.w r3, [sp, #122] ; 0x7a - b3d6: 3301 adds r3, #1 - b3d8: f8ad 307a strh.w r3, [sp, #122] ; 0x7a - fa.y2++; - b3dc: f8bd 307e ldrh.w r3, [sp, #126] ; 0x7e - b3e0: 3301 adds r3, #1 - b3e2: b21b sxth r3, r3 - for(y = 0; y < h; y++) { - b3e4: 3501 adds r5, #1 - b3e6: f7ff ba93 b.w a910 - if(other_mask_cnt) simple_mode = false; - b3ea: 2300 movs r3, #0 - b3ec: f7ff bb13 b.w aa16 - if(rout > 0) { - b3f0: 2c00 cmp r4, #0 - b3f2: f340 80b0 ble.w b556 - lv_draw_mask_radius_init(&mask_rout_param, &coords_bg, rout, false); - b3f6: 2300 movs r3, #0 - b3f8: 4622 mov r2, r4 - b3fa: a916 add r1, sp, #88 ; 0x58 - b3fc: a825 add r0, sp, #148 ; 0x94 - b3fe: 4f87 ldr r7, [pc, #540] ; (b61c ) - b400: 47b8 blx r7 - mask_rout_id = lv_draw_mask_add(&mask_rout_param, NULL); - b402: 4b87 ldr r3, [pc, #540] ; (b620 ) - b404: 2100 movs r1, #0 - b406: a825 add r0, sp, #148 ; 0x94 - b408: 4798 blx r3 - b40a: 900b str r0, [sp, #44] ; 0x2c - lv_color_t grad_color = dsc->bg_color; - b40c: f8ba 3002 ldrh.w r3, [sl, #2] - b410: ee08 3a10 vmov s16, r3 - if(dsc->bg_grad_dir == LV_GRAD_DIR_HOR && dsc->bg_color.full != dsc->bg_grad_color.full) { - b414: f89a 3006 ldrb.w r3, [sl, #6] - b418: 2b02 cmp r3, #2 - b41a: f040 80a9 bne.w b570 - b41e: f8ba 2004 ldrh.w r2, [sl, #4] - b422: f8ba 3002 ldrh.w r3, [sl, #2] - b426: 429a cmp r2, r3 - b428: f000 80a2 beq.w b570 - grad_map = _lv_mem_buf_get(coords_w * sizeof(lv_color_t)); - b42c: 4b7d ldr r3, [pc, #500] ; (b624 ) - b42e: 0070 lsls r0, r6, #1 - b430: 4798 blx r3 - for(i = 0; i < coords_w; i++) { - b432: 2700 movs r7, #0 - grad_map = _lv_mem_buf_get(coords_w * sizeof(lv_color_t)); - b434: 9006 str r0, [sp, #24] - for(i = 0; i < coords_w; i++) { - b436: 42be cmp r6, r7 - b438: 4b7b ldr r3, [pc, #492] ; (b628 ) - b43a: f300 8090 bgt.w b55e - b43e: f9bd 205c ldrsh.w r2, [sp, #92] ; 0x5c - b442: f9bd 1058 ldrsh.w r1, [sp, #88] ; 0x58 - fill_area.x2 = coords_bg.x2; - b446: f8ad 206c strh.w r2, [sp, #108] ; 0x6c - b44a: 1c53 adds r3, r2, #1 - b44c: 1a5b subs r3, r3, r1 - if(lv_area_get_width(&coords_bg) - 2 * rout > SPLIT_LIMIT) split = true; - b44e: b21b sxth r3, r3 - b450: eba3 0344 sub.w r3, r3, r4, lsl #1 - b454: 930a str r3, [sp, #40] ; 0x28 - fill_area.y1 = disp_area->y1 + draw_area.y1; - b456: 9b05 ldr r3, [sp, #20] - b458: f9bd 2062 ldrsh.w r2, [sp, #98] ; 0x62 - b45c: 8a5b ldrh r3, [r3, #18] - fill_area.x1 = coords_bg.x1; - b45e: f8ad 1068 strh.w r1, [sp, #104] ; 0x68 - fill_area.y1 = disp_area->y1 + draw_area.y1; - b462: 4413 add r3, r2 - b464: b21b sxth r3, r3 - b466: f8ad 306a strh.w r3, [sp, #106] ; 0x6a - for(h = draw_area.y1; h <= draw_area.y2; h++) { - b46a: 9207 str r2, [sp, #28] - b46c: 9a07 ldr r2, [sp, #28] - fill_area.y2 = fill_area.y1; - b46e: f8ad 306e strh.w r3, [sp, #110] ; 0x6e - for(h = draw_area.y1; h <= draw_area.y2; h++) { - b472: f9bd 3066 ldrsh.w r3, [sp, #102] ; 0x66 - b476: 429a cmp r2, r3 - b478: dd7d ble.n b576 - if(dsc->bg_grad_dir == LV_GRAD_DIR_NONE && other_mask_cnt == 0 && split) { - b47a: f89a 3006 ldrb.w r3, [sl, #6] - b47e: 9a0c ldr r2, [sp, #48] ; 0x30 - b480: 431a orrs r2, r3 - b482: f012 03ff ands.w r3, r2, #255 ; 0xff - b486: d15d bne.n b544 - b488: 9a0a ldr r2, [sp, #40] ; 0x28 - b48a: 2a32 cmp r2, #50 ; 0x32 - b48c: dd5a ble.n b544 - fill_area.x1 = coords_bg.x1 + rout; - b48e: f8bd 2058 ldrh.w r2, [sp, #88] ; 0x58 - b492: fa12 f284 uxtah r2, r2, r4 - b496: f8ad 2068 strh.w r2, [sp, #104] ; 0x68 - fill_area.x2 = coords_bg.x2 - rout; - b49a: f8bd 205c ldrh.w r2, [sp, #92] ; 0x5c - fill_area.x1 = coords_bg.x1 + rout; - b49e: b2a6 uxth r6, r4 - fill_area.x2 = coords_bg.x2 - rout; - b4a0: 1b92 subs r2, r2, r6 - b4a2: f8ad 206c strh.w r2, [sp, #108] ; 0x6c - fill_area.y1 = coords_bg.y1; - b4a6: f9bd 205a ldrsh.w r2, [sp, #90] ; 0x5a - b4aa: f8ad 206a strh.w r2, [sp, #106] ; 0x6a - fill_area.y2 = coords_bg.y1 + rout; - b4ae: 4432 add r2, r6 - b4b0: f8ad 206e strh.w r2, [sp, #110] ; 0x6e - _lv_blend_fill(clip, &fill_area, - b4b4: f89a 200d ldrb.w r2, [sl, #13] - b4b8: 4c57 ldr r4, [pc, #348] ; (b618 ) - b4ba: e9cd 9201 strd r9, r2, [sp, #4] - b4be: 2201 movs r2, #1 - b4c0: 9200 str r2, [sp, #0] - b4c2: f8ba 2002 ldrh.w r2, [sl, #2] - b4c6: a91a add r1, sp, #104 ; 0x68 - b4c8: 4640 mov r0, r8 - b4ca: 47a0 blx r4 - fill_area.y1 = coords_bg.y2 - rout; - b4cc: f9bd 105e ldrsh.w r1, [sp, #94] ; 0x5e - if(fill_area.y1 <= fill_area.y2) fill_area.y1 = fill_area.y2 + 1; /*Avoid overdrawing the last line*/ - b4d0: f9bd 306e ldrsh.w r3, [sp, #110] ; 0x6e - _lv_blend_fill(clip, &fill_area, - b4d4: 4c50 ldr r4, [pc, #320] ; (b618 ) - fill_area.y2 = coords_bg.y2; - b4d6: f8ad 106e strh.w r1, [sp, #110] ; 0x6e - fill_area.y1 = coords_bg.y2 - rout; - b4da: 1b8a subs r2, r1, r6 - b4dc: b212 sxth r2, r2 - if(fill_area.y1 <= fill_area.y2) fill_area.y1 = fill_area.y2 + 1; /*Avoid overdrawing the last line*/ - b4de: 429a cmp r2, r3 - b4e0: bfd8 it le - b4e2: 3301 addle r3, #1 - fill_area.y1 = coords_bg.y2 - rout; - b4e4: f8ad 206a strh.w r2, [sp, #106] ; 0x6a - if(fill_area.y1 <= fill_area.y2) fill_area.y1 = fill_area.y2 + 1; /*Avoid overdrawing the last line*/ - b4e8: bfd8 it le - b4ea: f8ad 306a strhle.w r3, [sp, #106] ; 0x6a - _lv_blend_fill(clip, &fill_area, - b4ee: f89a 300d ldrb.w r3, [sl, #13] - b4f2: e9cd 9301 strd r9, r3, [sp, #4] - b4f6: 2701 movs r7, #1 - b4f8: 9700 str r7, [sp, #0] - b4fa: f8ba 2002 ldrh.w r2, [sl, #2] - b4fe: 2300 movs r3, #0 - b500: a91a add r1, sp, #104 ; 0x68 - b502: 4640 mov r0, r8 - b504: 47a0 blx r4 - fill_area.x1 = coords_bg.x1; - b506: f8bd 3058 ldrh.w r3, [sp, #88] ; 0x58 - b50a: f8ad 3068 strh.w r3, [sp, #104] ; 0x68 - fill_area.x2 = coords_bg.x2; - b50e: f8bd 305c ldrh.w r3, [sp, #92] ; 0x5c - b512: f8ad 306c strh.w r3, [sp, #108] ; 0x6c - fill_area.y1 = coords_bg.y1 + rout + 1; - b516: f8bd 305a ldrh.w r3, [sp, #90] ; 0x5a - b51a: 443b add r3, r7 - b51c: 4433 add r3, r6 - b51e: f8ad 306a strh.w r3, [sp, #106] ; 0x6a - fill_area.y2 = coords_bg.y2 - rout - 1; - b522: f8bd 305e ldrh.w r3, [sp, #94] ; 0x5e - b526: 3b01 subs r3, #1 - b528: 1b9b subs r3, r3, r6 - b52a: f8ad 306e strh.w r3, [sp, #110] ; 0x6e - _lv_blend_fill(clip, &fill_area, - b52e: f89a 300d ldrb.w r3, [sl, #13] - b532: 9700 str r7, [sp, #0] - b534: e9cd 9301 strd r9, r3, [sp, #4] - b538: a91a add r1, sp, #104 ; 0x68 - b53a: f8ba 2002 ldrh.w r2, [sl, #2] - b53e: 2300 movs r3, #0 - b540: 4640 mov r0, r8 - b542: 47a0 blx r4 - if(grad_map) _lv_mem_buf_release(grad_map); - b544: 9b06 ldr r3, [sp, #24] - b546: 2b00 cmp r3, #0 - b548: f43f aa98 beq.w aa7c - b54c: 4618 mov r0, r3 - b54e: 4b37 ldr r3, [pc, #220] ; (b62c ) - b550: 4798 blx r3 - b552: f7ff ba93 b.w aa7c - int16_t mask_rout_id = LV_MASK_ID_INV; - b556: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff - b55a: 930b str r3, [sp, #44] ; 0x2c - b55c: e756 b.n b40c - grad_map[i] = grad_get(dsc, coords_w, i); - b55e: b23a sxth r2, r7 - b560: 4631 mov r1, r6 - b562: 4650 mov r0, sl - b564: 4798 blx r3 - b566: 9b06 ldr r3, [sp, #24] - b568: f823 0017 strh.w r0, [r3, r7, lsl #1] - for(i = 0; i < coords_w; i++) { - b56c: 3701 adds r7, #1 - b56e: e762 b.n b436 - lv_color_t * grad_map = NULL; - b570: 2300 movs r3, #0 - b572: 9306 str r3, [sp, #24] - b574: e763 b.n b43e - int32_t y = h + vdb->area.y1; - b576: 9b05 ldr r3, [sp, #20] - b578: f9b3 7012 ldrsh.w r7, [r3, #18] - b57c: 9b07 ldr r3, [sp, #28] - b57e: 441f add r7, r3 - if(y > coords_bg.y1 + rout + 1 && - b580: f9bd 305a ldrsh.w r3, [sp, #90] ; 0x5a - b584: 4423 add r3, r4 - b586: 3301 adds r3, #1 - b588: 429f cmp r7, r3 - b58a: dd08 ble.n b59e - y < coords_bg.y2 - rout - 1) { - b58c: f9bd 305e ldrsh.w r3, [sp, #94] ; 0x5e - b590: 1b1b subs r3, r3, r4 - b592: 3b01 subs r3, #1 - if(y > coords_bg.y1 + rout + 1 && - b594: 429f cmp r7, r3 - b596: da02 bge.n b59e - if(simple_mode == false) { - b598: 9b08 ldr r3, [sp, #32] - b59a: 2b00 cmp r3, #0 - b59c: d136 bne.n b60c - _lv_memset_ff(mask_buf, draw_area_w); - b59e: ee18 1a90 vmov r1, s17 - b5a2: 4b23 ldr r3, [pc, #140] ; (b630 ) - mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w); - b5a4: 4e1b ldr r6, [pc, #108] ; (b614 ) - _lv_memset_ff(mask_buf, draw_area_w); - b5a6: 4628 mov r0, r5 - b5a8: 4798 blx r3 - mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w); - b5aa: 9b05 ldr r3, [sp, #20] - b5ac: 8a5a ldrh r2, [r3, #18] - b5ae: 9b07 ldr r3, [sp, #28] - b5b0: 441a add r2, r3 - b5b2: 9b05 ldr r3, [sp, #20] - b5b4: 8a19 ldrh r1, [r3, #16] - b5b6: f8bd 3060 ldrh.w r3, [sp, #96] ; 0x60 - b5ba: 4419 add r1, r3 - b5bc: b212 sxth r2, r2 - b5be: ee18 3a90 vmov r3, s17 - b5c2: b209 sxth r1, r1 - b5c4: 4628 mov r0, r5 - b5c6: 47b0 blx r6 - b5c8: 4606 mov r6, r0 - if(dsc->bg_grad_dir == LV_GRAD_DIR_VER && dsc->bg_color.full != dsc->bg_grad_color.full) { - b5ca: f89a 3006 ldrb.w r3, [sl, #6] - b5ce: 9309 str r3, [sp, #36] ; 0x24 - b5d0: 2b01 cmp r3, #1 - b5d2: d12f bne.n b634 - b5d4: f8ba 2002 ldrh.w r2, [sl, #2] - b5d8: f8ba 3004 ldrh.w r3, [sl, #4] - b5dc: 429a cmp r2, r3 - b5de: d00d beq.n b5fc - return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - b5e0: f8bd 105e ldrh.w r1, [sp, #94] ; 0x5e - b5e4: f8bd 305a ldrh.w r3, [sp, #90] ; 0x5a - b5e8: 3101 adds r1, #1 - grad_color = grad_get(dsc, lv_area_get_height(&coords_bg), y - coords_bg.y1); - b5ea: 1afa subs r2, r7, r3 - b5ec: 1ac9 subs r1, r1, r3 - b5ee: b212 sxth r2, r2 - b5f0: 4b0d ldr r3, [pc, #52] ; (b628 ) - b5f2: b209 sxth r1, r1 - b5f4: 4650 mov r0, sl - b5f6: 4798 blx r3 - b5f8: ee08 0a10 vmov s16, r0 - if(simple_mode && split && - b5fc: 9b08 ldr r3, [sp, #32] - b5fe: 2b00 cmp r3, #0 - b600: f000 80a3 beq.w b74a - b604: 9b0a ldr r3, [sp, #40] ; 0x28 - b606: 2b32 cmp r3, #50 ; 0x32 - b608: dc1c bgt.n b644 - b60a: e09e b.n b74a - mask_res = LV_DRAW_MASK_RES_FULL_COVER; - b60c: 2601 movs r6, #1 - b60e: e7dc b.n b5ca - b610: 0000f249 .word 0x0000f249 - b614: 000099e5 .word 0x000099e5 - b618: 00006475 .word 0x00006475 - b61c: 00009b99 .word 0x00009b99 - b620: 00009995 .word 0x00009995 - b624: 0000f145 .word 0x0000f145 - b628: 00009bf5 .word 0x00009bf5 - b62c: 0000edf9 .word 0x0000edf9 - b630: 0000f305 .word 0x0000f305 - if(simple_mode && split && - b634: 9b08 ldr r3, [sp, #32] - b636: 2b00 cmp r3, #0 - b638: f000 84a2 beq.w bf80 - b63c: 9b0a ldr r3, [sp, #40] ; 0x28 - b63e: 2b32 cmp r3, #50 ; 0x32 - b640: f340 849e ble.w bf80 - (y < coords_bg.y1 + rout + 1 || - b644: f9bd 305a ldrsh.w r3, [sp, #90] ; 0x5a - b648: 4423 add r3, r4 - if(simple_mode && split && - b64a: 429f cmp r7, r3 - b64c: dd04 ble.n b658 - y > coords_bg.y2 - rout - 1)) { - b64e: f9bd 305e ldrsh.w r3, [sp, #94] ; 0x5e - b652: 1b1b subs r3, r3, r4 - (y < coords_bg.y1 + rout + 1 || - b654: 429f cmp r7, r3 - b656: db5a blt.n b70e - fill_area2.x1 = coords_bg.x1; - b658: f9bd 3058 ldrsh.w r3, [sp, #88] ; 0x58 - b65c: f8ad 3078 strh.w r3, [sp, #120] ; 0x78 - fill_area2.x2 = coords_bg.x1 + rout - 1; - b660: 3b01 subs r3, #1 - b662: fa13 f384 uxtah r3, r3, r4 - b666: f8ad 307c strh.w r3, [sp, #124] ; 0x7c - fill_area2.y1 = fill_area.y1; - b66a: f8bd 306a ldrh.w r3, [sp, #106] ; 0x6a - b66e: f8ad 307a strh.w r3, [sp, #122] ; 0x7a - fill_area2.y2 = fill_area.y2; - b672: f8bd 306e ldrh.w r3, [sp, #110] ; 0x6e - b676: f8ad 307e strh.w r3, [sp, #126] ; 0x7e - _lv_blend_fill(clip, &fill_area2, - b67a: f89a 300d ldrb.w r3, [sl, #13] - b67e: 4f9e ldr r7, [pc, #632] ; (b8f8 ) - b680: 9600 str r6, [sp, #0] - fill_area2.x2 = coords_bg.x1 + rout - 1; - b682: b2a2 uxth r2, r4 - _lv_blend_fill(clip, &fill_area2, - b684: e9cd 9301 strd r9, r3, [sp, #4] - fill_area2.x2 = coords_bg.x1 + rout - 1; - b688: 9209 str r2, [sp, #36] ; 0x24 - _lv_blend_fill(clip, &fill_area2, - b68a: 462b mov r3, r5 - b68c: ee18 2a10 vmov r2, s16 - b690: a91e add r1, sp, #120 ; 0x78 - b692: 4640 mov r0, r8 - b694: 47b8 blx r7 - if(dsc->bg_grad_dir == LV_GRAD_DIR_VER) { - b696: f89a 2006 ldrb.w r2, [sl, #6] - b69a: 2a01 cmp r2, #1 - b69c: d115 bne.n b6ca - fill_area2.x1 = coords_bg.x1 + rout; - b69e: 9909 ldr r1, [sp, #36] ; 0x24 - b6a0: f8bd 3058 ldrh.w r3, [sp, #88] ; 0x58 - b6a4: 440b add r3, r1 - b6a6: f8ad 3078 strh.w r3, [sp, #120] ; 0x78 - fill_area2.x2 = coords_bg.x2 - rout; - b6aa: f8bd 305c ldrh.w r3, [sp, #92] ; 0x5c - b6ae: 1a5b subs r3, r3, r1 - b6b0: f8ad 307c strh.w r3, [sp, #124] ; 0x7c - _lv_blend_fill(clip, &fill_area2, - b6b4: f89a 300d ldrb.w r3, [sl, #13] - b6b8: 9200 str r2, [sp, #0] - b6ba: e9cd 9301 strd r9, r3, [sp, #4] - b6be: ee18 2a10 vmov r2, s16 - b6c2: 2300 movs r3, #0 - b6c4: a91e add r1, sp, #120 ; 0x78 - b6c6: 4640 mov r0, r8 - b6c8: 47b8 blx r7 - fill_area2.x1 = coords_bg.x2 - rout + 1; - b6ca: f9bd 305c ldrsh.w r3, [sp, #92] ; 0x5c - b6ce: 9909 ldr r1, [sp, #36] ; 0x24 - fill_area2.x2 = coords_bg.x2; - b6d0: f8ad 307c strh.w r3, [sp, #124] ; 0x7c - fill_area2.x1 = coords_bg.x2 - rout + 1; - b6d4: 1c5a adds r2, r3, #1 - b6d6: 1a52 subs r2, r2, r1 - b6d8: f8ad 2078 strh.w r2, [sp, #120] ; 0x78 - int32_t mask_ofs = (coords_bg.x2 - rout + 1) - (vdb->area.x1 + draw_area.x1); - b6dc: 9a05 ldr r2, [sp, #20] - b6de: f9bd 1060 ldrsh.w r1, [sp, #96] ; 0x60 - b6e2: f9b2 2010 ldrsh.w r2, [r2, #16] - b6e6: 1b1b subs r3, r3, r4 - b6e8: 440a add r2, r1 - b6ea: 3301 adds r3, #1 - b6ec: 1a9b subs r3, r3, r2 - _lv_blend_fill(clip, &fill_area2, - b6ee: f89a 200d ldrb.w r2, [sl, #13] - b6f2: 9600 str r6, [sp, #0] - b6f4: e9cd 9201 strd r9, r2, [sp, #4] - b6f8: ee18 2a10 vmov r2, s16 - b6fc: 2b00 cmp r3, #0 - b6fe: bfac ite ge - b700: 18eb addge r3, r5, r3 - b702: 1c2b addlt r3, r5, #0 - b704: a91e add r1, sp, #120 ; 0x78 - _lv_blend_fill(clip, &fill_area, - b706: 4e7c ldr r6, [pc, #496] ; (b8f8 ) - b708: 4640 mov r0, r8 - b70a: 47b0 blx r6 - b70c: e00d b.n b72a - if(dsc->bg_grad_dir == LV_GRAD_DIR_HOR) { - b70e: 9b09 ldr r3, [sp, #36] ; 0x24 - b710: 2b02 cmp r3, #2 - b712: d116 bne.n b742 - _lv_blend_map(clip, &fill_area, grad_map, mask_buf, mask_res, opa, dsc->bg_blend_mode); - b714: f89a 300d ldrb.w r3, [sl, #13] - b718: 9a06 ldr r2, [sp, #24] - b71a: 9600 str r6, [sp, #0] - b71c: e9cd 9301 strd r9, r3, [sp, #4] - b720: 4e76 ldr r6, [pc, #472] ; (b8fc ) - b722: 462b mov r3, r5 - b724: a91a add r1, sp, #104 ; 0x68 - b726: 4640 mov r0, r8 - b728: 47b0 blx r6 - fill_area.y1++; - b72a: f8bd 306a ldrh.w r3, [sp, #106] ; 0x6a - for(h = draw_area.y1; h <= draw_area.y2; h++) { - b72e: 9a07 ldr r2, [sp, #28] - fill_area.y1++; - b730: 3301 adds r3, #1 - b732: f8ad 306a strh.w r3, [sp, #106] ; 0x6a - fill_area.y2++; - b736: f8bd 306e ldrh.w r3, [sp, #110] ; 0x6e - b73a: 3301 adds r3, #1 - b73c: b21b sxth r3, r3 - for(h = draw_area.y1; h <= draw_area.y2; h++) { - b73e: 3201 adds r2, #1 - b740: e693 b.n b46a - else if(dsc->bg_grad_dir == LV_GRAD_DIR_VER) { - b742: 9b09 ldr r3, [sp, #36] ; 0x24 - b744: 2b01 cmp r3, #1 - b746: f040 841f bne.w bf88 - _lv_blend_fill(clip, &fill_area, - b74a: f89a 300d ldrb.w r3, [sl, #13] - b74e: 9600 str r6, [sp, #0] - b750: e9cd 9301 strd r9, r3, [sp, #4] - b754: ee18 2a10 vmov r2, s16 - b758: 462b mov r3, r5 - b75a: a91a add r1, sp, #104 ; 0x68 - b75c: e7d3 b.n b706 - img_h = header.h; - b75e: f8bd 3096 ldrh.w r3, [sp, #150] ; 0x96 - img_w = header.w; - b762: 9d25 ldr r5, [sp, #148] ; 0x94 - img_h = header.h; - b764: f3c3 174a ubfx r7, r3, #5, #11 - lv_draw_img_dsc_init(&img_dsc); - b768: a81a add r0, sp, #104 ; 0x68 - b76a: 4b65 ldr r3, [pc, #404] ; (b900 ) - b76c: 4798 blx r3 - img_dsc.opa = dsc->pattern_opa; - b76e: f89a 3036 ldrb.w r3, [sl, #54] ; 0x36 - b772: f88d 3068 strb.w r3, [sp, #104] ; 0x68 - img_dsc.recolor_opa = dsc->pattern_recolor_opa; - b776: f89a 3037 ldrb.w r3, [sl, #55] ; 0x37 - b77a: f88d 3072 strb.w r3, [sp, #114] ; 0x72 - img_dsc.recolor = dsc->pattern_recolor; - b77e: f8ba 3034 ldrh.w r3, [sl, #52] ; 0x34 - b782: f8ad 3074 strh.w r3, [sp, #116] ; 0x74 - img_w = header.w; - b786: f3c5 258a ubfx r5, r5, #10, #11 - coords_tmp.y2 = coords_tmp.y1 + img_h - 1; - b78a: b2bb uxth r3, r7 - b78c: f103 39ff add.w r9, r3, #4294967295 ; 0xffffffff - b790: 9305 str r3, [sp, #20] - if(dsc->pattern_repeat) { - b792: f89a 3038 ldrb.w r3, [sl, #56] ; 0x38 - lv_draw_mask_radius_init(&radius_mask_param, coords, dsc->radius, false); - b796: f9ba 2000 ldrsh.w r2, [sl] - if(dsc->pattern_repeat) { - b79a: 07db lsls r3, r3, #31 - b79c: fa1f f989 uxth.w r9, r9 - b7a0: f140 80c6 bpl.w b930 - lv_draw_mask_radius_init(&radius_mask_param, coords, dsc->radius, false); - b7a4: 4c57 ldr r4, [pc, #348] ; (b904 ) - b7a6: 2300 movs r3, #0 - b7a8: 4659 mov r1, fp - b7aa: a825 add r0, sp, #148 ; 0x94 - b7ac: 47a0 blx r4 - int16_t radius_mask_id = lv_draw_mask_add(&radius_mask_param, NULL); - b7ae: 4b56 ldr r3, [pc, #344] ; (b908 ) - b7b0: 2100 movs r1, #0 - b7b2: a825 add r0, sp, #148 ; 0x94 - b7b4: 4798 blx r3 - return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - b7b6: f8bb 4004 ldrh.w r4, [fp, #4] - b7ba: f8bb 3000 ldrh.w r3, [fp] - return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - b7be: f8bb 2006 ldrh.w r2, [fp, #6] - return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - b7c2: 3401 adds r4, #1 - b7c4: 1ae4 subs r4, r4, r3 - int32_t ofs_x = (lv_area_get_width(coords) - (lv_area_get_width(coords) / img_w) * img_w) / 2; - b7c6: b224 sxth r4, r4 - b7c8: fb94 f3f5 sdiv r3, r4, r5 - b7cc: fb05 4413 mls r4, r5, r3, r4 - return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - b7d0: f8bb 3002 ldrh.w r3, [fp, #2] - b7d4: 3201 adds r2, #1 - b7d6: 1ad2 subs r2, r2, r3 - int32_t ofs_y = (lv_area_get_height(coords) - (lv_area_get_height(coords) / img_h) * img_h) / 2; - b7d8: b212 sxth r2, r2 - b7da: fb92 f1f7 sdiv r1, r2, r7 - b7de: fb07 2211 mls r2, r7, r1, r2 - b7e2: eb02 72d2 add.w r2, r2, r2, lsr #31 - coords_tmp.y1 = coords->y1 - ofs_y; - b7e6: eba3 0362 sub.w r3, r3, r2, asr #1 - b7ea: b29b uxth r3, r3 - int32_t ofs_x = (lv_area_get_width(coords) - (lv_area_get_width(coords) / img_w) * img_w) / 2; - b7ec: eb04 74d4 add.w r4, r4, r4, lsr #31 - int16_t radius_mask_id = lv_draw_mask_add(&radius_mask_param, NULL); - b7f0: ee08 0a10 vmov s16, r0 - coords_tmp.y1 = coords->y1 - ofs_y; - b7f4: f8ad 3062 strh.w r3, [sp, #98] ; 0x62 - int32_t ofs_x = (lv_area_get_width(coords) - (lv_area_get_width(coords) / img_w) * img_w) / 2; - b7f8: 1064 asrs r4, r4, #1 - coords_tmp.y2 = coords_tmp.y1 + img_h - 1; - b7fa: 444b add r3, r9 - for(; coords_tmp.y1 <= coords->y2; coords_tmp.y1 += img_h, coords_tmp.y2 += img_h) { - b7fc: b21b sxth r3, r3 - b7fe: f9bd 2062 ldrsh.w r2, [sp, #98] ; 0x62 - coords_tmp.y2 = coords_tmp.y1 + img_h - 1; - b802: f8ad 3066 strh.w r3, [sp, #102] ; 0x66 - for(; coords_tmp.y1 <= coords->y2; coords_tmp.y1 += img_h, coords_tmp.y2 += img_h) { - b806: f9bb 3006 ldrsh.w r3, [fp, #6] - b80a: 429a cmp r2, r3 - b80c: dd3a ble.n b884 - lv_draw_mask_remove_id(radius_mask_id); - b80e: ee18 0a10 vmov r0, s16 - lv_draw_mask_remove_id(radius_mask_id); - b812: 4b3e ldr r3, [pc, #248] ; (b90c ) - b814: 4798 blx r3 - b816: f7ff b955 b.w aac4 - else if(src_type == LV_IMG_SRC_SYMBOL) { - b81a: 2802 cmp r0, #2 - b81c: d121 bne.n b862 - lv_draw_label_dsc_init(&label_dsc); - b81e: 4b3c ldr r3, [pc, #240] ; (b910 ) - _lv_txt_get_size(&s, dsc->pattern_image, label_dsc.font, label_dsc.letter_space, label_dsc.line_space, LV_COORD_MAX, - b820: 4c3c ldr r4, [pc, #240] ; (b914 ) - lv_draw_label_dsc_init(&label_dsc); - b822: a81e add r0, sp, #120 ; 0x78 - b824: 4798 blx r3 - label_dsc.color = dsc->pattern_recolor; - b826: f8ba 3034 ldrh.w r3, [sl, #52] ; 0x34 - b82a: f8ad 3078 strh.w r3, [sp, #120] ; 0x78 - label_dsc.opa = dsc->pattern_opa; - b82e: f89a 3036 ldrb.w r3, [sl, #54] ; 0x36 - b832: f88d 3080 strb.w r3, [sp, #128] ; 0x80 - _lv_txt_get_size(&s, dsc->pattern_image, label_dsc.font, label_dsc.letter_space, label_dsc.line_space, LV_COORD_MAX, - b836: 2100 movs r1, #0 - b838: f647 4318 movw r3, #31768 ; 0x7c18 - label_dsc.font = dsc->pattern_font; - b83c: f8da 2030 ldr.w r2, [sl, #48] ; 0x30 - b840: 921f str r2, [sp, #124] ; 0x7c - _lv_txt_get_size(&s, dsc->pattern_image, label_dsc.font, label_dsc.letter_space, label_dsc.line_space, LV_COORD_MAX, - b842: e9cd 3101 strd r3, r1, [sp, #4] - b846: f9bd 3082 ldrsh.w r3, [sp, #130] ; 0x82 - b84a: 9300 str r3, [sp, #0] - b84c: f8da 102c ldr.w r1, [sl, #44] ; 0x2c - b850: f9bd 3084 ldrsh.w r3, [sp, #132] ; 0x84 - b854: a825 add r0, sp, #148 ; 0x94 - b856: 47a0 blx r4 - img_w = s.x; - b858: f9bd 5094 ldrsh.w r5, [sp, #148] ; 0x94 - img_h = s.y; - b85c: f9bd 7096 ldrsh.w r7, [sp, #150] ; 0x96 - b860: e793 b.n b78a - LV_LOG_WARN("lv_img_design: image source type is unknown"); - b862: 4b2d ldr r3, [pc, #180] ; (b918 ) - b864: 9300 str r3, [sp, #0] - b866: 492d ldr r1, [pc, #180] ; (b91c ) - b868: 4b2d ldr r3, [pc, #180] ; (b920 ) - b86a: 4c2e ldr r4, [pc, #184] ; (b924 ) - b86c: f240 52ae movw r2, #1454 ; 0x5ae - b870: 2002 movs r0, #2 - b872: 47a0 blx r4 - lv_draw_img(coords, clip, NULL, NULL); - b874: 2300 movs r3, #0 - b876: 4c2c ldr r4, [pc, #176] ; (b928 ) - b878: 461a mov r2, r3 - b87a: 4641 mov r1, r8 - b87c: 4658 mov r0, fp - b87e: 47a0 blx r4 - return; - b880: f7ff b920 b.w aac4 - coords_tmp.x1 = coords->x1 - ofs_x; - b884: f8bb 3000 ldrh.w r3, [fp] - coords_tmp.x2 = coords_tmp.x1 + img_w - 1; - b888: fa1f f985 uxth.w r9, r5 - coords_tmp.x1 = coords->x1 - ofs_x; - b88c: 1b1b subs r3, r3, r4 - b88e: b29b uxth r3, r3 - coords_tmp.x2 = coords_tmp.x1 + img_w - 1; - b890: f109 32ff add.w r2, r9, #4294967295 ; 0xffffffff - coords_tmp.x1 = coords->x1 - ofs_x; - b894: f8ad 3060 strh.w r3, [sp, #96] ; 0x60 - coords_tmp.x2 = coords_tmp.x1 + img_w - 1; - b898: 4413 add r3, r2 - for(; coords_tmp.x1 <= coords->x2; coords_tmp.x1 += img_w, coords_tmp.x2 += img_w) { - b89a: b21b sxth r3, r3 - b89c: f9bd 2060 ldrsh.w r2, [sp, #96] ; 0x60 - coords_tmp.x2 = coords_tmp.x1 + img_w - 1; - b8a0: f8ad 3064 strh.w r3, [sp, #100] ; 0x64 - for(; coords_tmp.x1 <= coords->x2; coords_tmp.x1 += img_w, coords_tmp.x2 += img_w) { - b8a4: f9bb 3004 ldrsh.w r3, [fp, #4] - b8a8: 429a cmp r2, r3 - b8aa: dd09 ble.n b8c0 - for(; coords_tmp.y1 <= coords->y2; coords_tmp.y1 += img_h, coords_tmp.y2 += img_h) { - b8ac: f8bd 3062 ldrh.w r3, [sp, #98] ; 0x62 - b8b0: 9a05 ldr r2, [sp, #20] - b8b2: 4413 add r3, r2 - b8b4: f8ad 3062 strh.w r3, [sp, #98] ; 0x62 - b8b8: f8bd 3066 ldrh.w r3, [sp, #102] ; 0x66 - b8bc: 4413 add r3, r2 - b8be: e79d b.n b7fc - if(src_type == LV_IMG_SRC_SYMBOL) lv_draw_label(&coords_tmp, clip, &label_dsc, dsc->pattern_image, NULL); - b8c0: 2e02 cmp r6, #2 - b8c2: f8da 202c ldr.w r2, [sl, #44] ; 0x2c - b8c6: d110 bne.n b8ea - b8c8: 2300 movs r3, #0 - b8ca: 9300 str r3, [sp, #0] - b8cc: 4f17 ldr r7, [pc, #92] ; (b92c ) - b8ce: 4613 mov r3, r2 - b8d0: 4641 mov r1, r8 - b8d2: aa1e add r2, sp, #120 ; 0x78 - b8d4: a818 add r0, sp, #96 ; 0x60 - b8d6: 47b8 blx r7 - for(; coords_tmp.x1 <= coords->x2; coords_tmp.x1 += img_w, coords_tmp.x2 += img_w) { - b8d8: f8bd 3060 ldrh.w r3, [sp, #96] ; 0x60 - b8dc: 444b add r3, r9 - b8de: f8ad 3060 strh.w r3, [sp, #96] ; 0x60 - b8e2: f8bd 3064 ldrh.w r3, [sp, #100] ; 0x64 - b8e6: 444b add r3, r9 - b8e8: e7d7 b.n b89a - else lv_draw_img(&coords_tmp, clip, dsc->pattern_image, &img_dsc); - b8ea: 4f0f ldr r7, [pc, #60] ; (b928 ) - b8ec: ab1a add r3, sp, #104 ; 0x68 - b8ee: 4641 mov r1, r8 - b8f0: a818 add r0, sp, #96 ; 0x60 - b8f2: 47b8 blx r7 - b8f4: e7f0 b.n b8d8 - b8f6: bf00 nop - b8f8: 00006475 .word 0x00006475 - b8fc: 00006a81 .word 0x00006a81 - b900: 000077dd .word 0x000077dd - b904: 00009b99 .word 0x00009b99 - b908: 00009995 .word 0x00009995 - b90c: 00009a25 .word 0x00009a25 - b910: 00007ac9 .word 0x00007ac9 - b914: 0001042d .word 0x0001042d - b918: 00027847 .word 0x00027847 - b91c: 000277f3 .word 0x000277f3 - b920: 00027876 .word 0x00027876 - b924: 0000eb79 .word 0x0000eb79 - b928: 00007845 .word 0x00007845 - b92c: 00007af9 .word 0x00007af9 - return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - b930: f8bb 1004 ldrh.w r1, [fp, #4] - b934: f8bb 4000 ldrh.w r4, [fp] - return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - b938: f8bb 3006 ldrh.w r3, [fp, #6] - b93c: f8bb 0002 ldrh.w r0, [fp, #2] - return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - b940: 3101 adds r1, #1 - b942: 1b09 subs r1, r1, r4 - return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - b944: 3301 adds r3, #1 - b946: 1a1b subs r3, r3, r0 - int32_t obj_w = lv_area_get_width(coords); - b948: b209 sxth r1, r1 - coords_tmp.x1 = coords->x1 + (obj_w - img_w) / 2; - b94a: 1b49 subs r1, r1, r5 - int32_t obj_h = lv_area_get_height(coords); - b94c: b21b sxth r3, r3 - coords_tmp.x1 = coords->x1 + (obj_w - img_w) / 2; - b94e: eb01 71d1 add.w r1, r1, r1, lsr #31 - coords_tmp.y1 = coords->y1 + (obj_h - img_h) / 2; - b952: 1bdb subs r3, r3, r7 - coords_tmp.x1 = coords->x1 + (obj_w - img_w) / 2; - b954: eb04 0461 add.w r4, r4, r1, asr #1 - coords_tmp.y1 = coords->y1 + (obj_h - img_h) / 2; - b958: eb03 71d3 add.w r1, r3, r3, lsr #31 - b95c: eb00 0061 add.w r0, r0, r1, asr #1 - b960: b280 uxth r0, r0 - coords_tmp.x1 = coords->x1 + (obj_w - img_w) / 2; - b962: b2a4 uxth r4, r4 - coords_tmp.x2 = coords_tmp.x1 + img_w - 1; - b964: 3d01 subs r5, #1 - coords_tmp.y2 = coords_tmp.y1 + img_h - 1; - b966: 4481 add r9, r0 - coords_tmp.x1 = coords->x1 + (obj_w - img_w) / 2; - b968: f8ad 4060 strh.w r4, [sp, #96] ; 0x60 - coords_tmp.y2 = coords_tmp.y1 + img_h - 1; - b96c: fa1f f989 uxth.w r9, r9 - coords_tmp.x2 = coords_tmp.x1 + img_w - 1; - b970: 442c add r4, r5 - if(src_type == LV_IMG_SRC_SYMBOL) { - b972: 2e02 cmp r6, #2 - coords_tmp.y1 = coords->y1 + (obj_h - img_h) / 2; - b974: f8ad 0062 strh.w r0, [sp, #98] ; 0x62 - coords_tmp.x2 = coords_tmp.x1 + img_w - 1; - b978: f8ad 4064 strh.w r4, [sp, #100] ; 0x64 - coords_tmp.y2 = coords_tmp.y1 + img_h - 1; - b97c: f8ad 9066 strh.w r9, [sp, #102] ; 0x66 - if(src_type == LV_IMG_SRC_SYMBOL) { - b980: d107 bne.n b992 - coords_tmp.y1 += y_corr; - b982: f003 0301 and.w r3, r3, #1 - b986: 4418 add r0, r3 - coords_tmp.y2 += y_corr; - b988: 4499 add r9, r3 - coords_tmp.y1 += y_corr; - b98a: f8ad 0062 strh.w r0, [sp, #98] ; 0x62 - coords_tmp.y2 += y_corr; - b98e: f8ad 9066 strh.w r9, [sp, #102] ; 0x66 - if(_lv_area_is_in(&coords_tmp, coords, dsc->radius) == false) { - b992: 4b94 ldr r3, [pc, #592] ; (bbe4 ) - b994: 4659 mov r1, fp - b996: a818 add r0, sp, #96 ; 0x60 - b998: 4798 blx r3 - b99a: 4604 mov r4, r0 - b99c: b9c8 cbnz r0, b9d2 - lv_draw_mask_radius_init(&radius_mask_param, coords, dsc->radius, false); - b99e: 4603 mov r3, r0 - b9a0: f9ba 2000 ldrsh.w r2, [sl] - b9a4: 4d90 ldr r5, [pc, #576] ; (bbe8 ) - b9a6: 4659 mov r1, fp - b9a8: a825 add r0, sp, #148 ; 0x94 - b9aa: 47a8 blx r5 - radius_mask_id = lv_draw_mask_add(&radius_mask_param, NULL); - b9ac: 4621 mov r1, r4 - b9ae: 4b8f ldr r3, [pc, #572] ; (bbec ) - b9b0: a825 add r0, sp, #148 ; 0x94 - b9b2: 4798 blx r3 - b9b4: 4604 mov r4, r0 - if(src_type == LV_IMG_SRC_SYMBOL) lv_draw_label(&coords_tmp, clip, &label_dsc, dsc->pattern_image, NULL); - b9b6: 2e02 cmp r6, #2 - b9b8: f8da 202c ldr.w r2, [sl, #44] ; 0x2c - b9bc: d10c bne.n b9d8 - b9be: 2300 movs r3, #0 - b9c0: 9300 str r3, [sp, #0] - b9c2: 4d8b ldr r5, [pc, #556] ; (bbf0 ) - b9c4: 4613 mov r3, r2 - b9c6: 4641 mov r1, r8 - b9c8: aa1e add r2, sp, #120 ; 0x78 - b9ca: a818 add r0, sp, #96 ; 0x60 - b9cc: 47a8 blx r5 - lv_draw_mask_remove_id(radius_mask_id); - b9ce: 4620 mov r0, r4 - b9d0: e71f b.n b812 - int16_t radius_mask_id = LV_MASK_ID_INV; - b9d2: f04f 34ff mov.w r4, #4294967295 ; 0xffffffff - b9d6: e7ee b.n b9b6 - else lv_draw_img(&coords_tmp, clip, dsc->pattern_image, &img_dsc); - b9d8: 4d86 ldr r5, [pc, #536] ; (bbf4 ) - b9da: ab1a add r3, sp, #104 ; 0x68 - b9dc: 4641 mov r1, r8 - b9de: a818 add r0, sp, #96 ; 0x60 - b9e0: 47a8 blx r5 - b9e2: e7f4 b.n b9ce - if(other_mask_cnt) simple_mode = false; - b9e4: 2300 movs r3, #0 - b9e6: f7ff b8ba b.w ab5e - int16_t mask_rout_id = LV_MASK_ID_INV; - b9ea: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff - b9ee: 930c str r3, [sp, #48] ; 0x30 - b9f0: f7ff b8dc b.w abac - _lv_memset_ff(mask_buf, draw_area_w); - b9f4: 4b80 ldr r3, [pc, #512] ; (bbf8 ) - mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w); - b9f6: 4f81 ldr r7, [pc, #516] ; (bbfc ) - _lv_memset_ff(mask_buf, draw_area_w); - b9f8: 4649 mov r1, r9 - b9fa: 4620 mov r0, r4 - b9fc: 4798 blx r3 - mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w); - b9fe: 9b06 ldr r3, [sp, #24] - ba00: 8a5a ldrh r2, [r3, #18] - ba02: 8a19 ldrh r1, [r3, #16] - ba04: f8bd 3050 ldrh.w r3, [sp, #80] ; 0x50 - ba08: 4432 add r2, r6 - ba0a: 4419 add r1, r3 - ba0c: b212 sxth r2, r2 - ba0e: 464b mov r3, r9 - ba10: b209 sxth r1, r1 - ba12: 4620 mov r0, r4 - ba14: 47b8 blx r7 - fill_area2.y1 = fill_area.y1; - ba16: f8bd 3062 ldrh.w r3, [sp, #98] ; 0x62 - ba1a: f8ad 306a strh.w r3, [sp, #106] ; 0x6a - fill_area2.y2 = fill_area.y2; - ba1e: f8bd 3066 ldrh.w r3, [sp, #102] ; 0x66 - ba22: f8ad 306e strh.w r3, [sp, #110] ; 0x6e - fill_area2.x1 = coords->x1; - ba26: f9bb 3000 ldrsh.w r3, [fp] - ba2a: f8ad 3068 strh.w r3, [sp, #104] ; 0x68 - fill_area2.x2 = coords->x1 + rout - 1; - ba2e: 3b01 subs r3, #1 - ba30: 442b add r3, r5 - ba32: f8ad 306c strh.w r3, [sp, #108] ; 0x6c - _lv_blend_fill(clip, &fill_area2, color, mask_buf, mask_res, opa, blend_mode); - ba36: 9b07 ldr r3, [sp, #28] - ba38: 9302 str r3, [sp, #8] - ba3a: 9b05 ldr r3, [sp, #20] - mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w); - ba3c: 900b str r0, [sp, #44] ; 0x2c - _lv_blend_fill(clip, &fill_area2, color, mask_buf, mask_res, opa, blend_mode); - ba3e: ee18 2a10 vmov r2, s16 - ba42: 9301 str r3, [sp, #4] - ba44: 9000 str r0, [sp, #0] - ba46: 4623 mov r3, r4 - ba48: a91a add r1, sp, #104 ; 0x68 - ba4a: 4f6d ldr r7, [pc, #436] ; (bc00 ) - ba4c: 4640 mov r0, r8 - ba4e: 47b8 blx r7 - if(fill_area2.y2 < coords->y1 + dsc->border_width) { - ba50: f9bb 3002 ldrsh.w r3, [fp, #2] - ba54: f9ba 1010 ldrsh.w r1, [sl, #16] - ba58: f9bd 206e ldrsh.w r2, [sp, #110] ; 0x6e - ba5c: 440b add r3, r1 - ba5e: 429a cmp r2, r3 - ba60: da15 bge.n ba8e - fill_area2.x1 = coords->x1 + rout; - ba62: f8bb 3000 ldrh.w r3, [fp] - ba66: 442b add r3, r5 - ba68: f8ad 3068 strh.w r3, [sp, #104] ; 0x68 - fill_area2.x2 = coords->x2 - rout; - ba6c: f8bb 3004 ldrh.w r3, [fp, #4] - ba70: 1b5b subs r3, r3, r5 - ba72: f8ad 306c strh.w r3, [sp, #108] ; 0x6c - _lv_blend_fill(clip, &fill_area2, color, NULL, LV_DRAW_MASK_RES_FULL_COVER, opa, blend_mode); - ba76: 9b07 ldr r3, [sp, #28] - ba78: 9302 str r3, [sp, #8] - ba7a: 9b05 ldr r3, [sp, #20] - ba7c: 9301 str r3, [sp, #4] - ba7e: 2301 movs r3, #1 - ba80: 9300 str r3, [sp, #0] - ba82: ee18 2a10 vmov r2, s16 - ba86: 2300 movs r3, #0 - ba88: a91a add r1, sp, #104 ; 0x68 - ba8a: 4640 mov r0, r8 - ba8c: 47b8 blx r7 - fill_area2.x1 = coords->x2 - rout + 1; - ba8e: f9bb 3004 ldrsh.w r3, [fp, #4] - fill_area2.x2 = coords->x2; - ba92: f8ad 306c strh.w r3, [sp, #108] ; 0x6c - fill_area2.x1 = coords->x2 - rout + 1; - ba96: 1c5a adds r2, r3, #1 - ba98: 1b52 subs r2, r2, r5 - ba9a: f8ad 2068 strh.w r2, [sp, #104] ; 0x68 - int32_t mask_ofs = (coords->x2 - rout + 1) - (vdb->area.x1 + draw_area.x1); - ba9e: 9a09 ldr r2, [sp, #36] ; 0x24 - baa0: f9bd 1050 ldrsh.w r1, [sp, #80] ; 0x50 - _lv_blend_fill(clip, &fill_area2, color, mask_buf + mask_ofs, mask_res, opa, blend_mode); - baa4: 4f56 ldr r7, [pc, #344] ; (bc00 ) - int32_t mask_ofs = (coords->x2 - rout + 1) - (vdb->area.x1 + draw_area.x1); - baa6: 1a9b subs r3, r3, r2 - baa8: 9a06 ldr r2, [sp, #24] - baaa: f9b2 2010 ldrsh.w r2, [r2, #16] - baae: 3301 adds r3, #1 - bab0: 440a add r2, r1 - bab2: 1a9b subs r3, r3, r2 - _lv_blend_fill(clip, &fill_area2, color, mask_buf + mask_ofs, mask_res, opa, blend_mode); - bab4: 9a07 ldr r2, [sp, #28] - bab6: 9202 str r2, [sp, #8] - bab8: 9a05 ldr r2, [sp, #20] - baba: 9201 str r2, [sp, #4] - babc: 9a0b ldr r2, [sp, #44] ; 0x2c - babe: 9200 str r2, [sp, #0] - bac0: 2b00 cmp r3, #0 - bac2: bfac ite ge - bac4: 18e3 addge r3, r4, r3 - bac6: 1c23 addlt r3, r4, #0 - bac8: ee18 2a10 vmov r2, s16 - bacc: a91a add r1, sp, #104 ; 0x68 - bace: 4640 mov r0, r8 - bad0: 47b8 blx r7 - fill_area.y1++; - bad2: f8bd 3062 ldrh.w r3, [sp, #98] ; 0x62 - bad6: 3301 adds r3, #1 - bad8: f8ad 3062 strh.w r3, [sp, #98] ; 0x62 - fill_area.y2++; - badc: f8bd 3066 ldrh.w r3, [sp, #102] ; 0x66 - bae0: 3301 adds r3, #1 - bae2: f8ad 3066 strh.w r3, [sp, #102] ; 0x66 - for(h = draw_area.y1; h <= upper_corner_end; h++) { - bae6: 3601 adds r6, #1 - bae8: f7ff b902 b.w acf0 - _lv_memset_ff(mask_buf, draw_area_w); - baec: 4b42 ldr r3, [pc, #264] ; (bbf8 ) - mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w); - baee: 4f43 ldr r7, [pc, #268] ; (bbfc ) - _lv_memset_ff(mask_buf, draw_area_w); - baf0: 4649 mov r1, r9 - baf2: 4620 mov r0, r4 - baf4: 4798 blx r3 - mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w); - baf6: 9b06 ldr r3, [sp, #24] - baf8: 8a5a ldrh r2, [r3, #18] - bafa: 8a19 ldrh r1, [r3, #16] - bafc: f8bd 3050 ldrh.w r3, [sp, #80] ; 0x50 - bb00: 4432 add r2, r6 - bb02: 4419 add r1, r3 - bb04: b212 sxth r2, r2 - bb06: 464b mov r3, r9 - bb08: b209 sxth r1, r1 - bb0a: 4620 mov r0, r4 - bb0c: 47b8 blx r7 - fill_area2.x1 = coords->x1; - bb0e: f9bb 3000 ldrsh.w r3, [fp] - bb12: f8ad 3068 strh.w r3, [sp, #104] ; 0x68 - fill_area2.x2 = coords->x1 + rout - 1; - bb16: 3b01 subs r3, #1 - bb18: 442b add r3, r5 - bb1a: f8ad 306c strh.w r3, [sp, #108] ; 0x6c - fill_area2.y1 = fill_area.y1; - bb1e: f8bd 3062 ldrh.w r3, [sp, #98] ; 0x62 - bb22: f8ad 306a strh.w r3, [sp, #106] ; 0x6a - fill_area2.y2 = fill_area.y2; - bb26: f8bd 3066 ldrh.w r3, [sp, #102] ; 0x66 - bb2a: f8ad 306e strh.w r3, [sp, #110] ; 0x6e - _lv_blend_fill(clip, &fill_area2, color, mask_buf, mask_res, opa, blend_mode); - bb2e: 9b07 ldr r3, [sp, #28] - bb30: 9302 str r3, [sp, #8] - bb32: 9b05 ldr r3, [sp, #20] - mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w); - bb34: 900a str r0, [sp, #40] ; 0x28 - _lv_blend_fill(clip, &fill_area2, color, mask_buf, mask_res, opa, blend_mode); - bb36: ee18 2a10 vmov r2, s16 - bb3a: 9301 str r3, [sp, #4] - bb3c: 9000 str r0, [sp, #0] - bb3e: 4623 mov r3, r4 - bb40: a91a add r1, sp, #104 ; 0x68 - bb42: 4f2f ldr r7, [pc, #188] ; (bc00 ) - bb44: 4640 mov r0, r8 - bb46: 47b8 blx r7 - if(fill_area2.y2 > coords->y2 - dsc->border_width) { - bb48: f9bb 3006 ldrsh.w r3, [fp, #6] - bb4c: f9ba 1010 ldrsh.w r1, [sl, #16] - bb50: f9bd 206e ldrsh.w r2, [sp, #110] ; 0x6e - bb54: 1a5b subs r3, r3, r1 - bb56: 429a cmp r2, r3 - bb58: dd15 ble.n bb86 - fill_area2.x1 = coords->x1 + rout; - bb5a: f8bb 3000 ldrh.w r3, [fp] - bb5e: 442b add r3, r5 - bb60: f8ad 3068 strh.w r3, [sp, #104] ; 0x68 - fill_area2.x2 = coords->x2 - rout; - bb64: f8bb 3004 ldrh.w r3, [fp, #4] - bb68: 1b5b subs r3, r3, r5 - bb6a: f8ad 306c strh.w r3, [sp, #108] ; 0x6c - _lv_blend_fill(clip, &fill_area2, color, NULL, LV_DRAW_MASK_RES_FULL_COVER, opa, blend_mode); - bb6e: 9b07 ldr r3, [sp, #28] - bb70: 9302 str r3, [sp, #8] - bb72: 9b05 ldr r3, [sp, #20] - bb74: 9301 str r3, [sp, #4] - bb76: 2301 movs r3, #1 - bb78: 9300 str r3, [sp, #0] - bb7a: ee18 2a10 vmov r2, s16 - bb7e: 2300 movs r3, #0 - bb80: a91a add r1, sp, #104 ; 0x68 - bb82: 4640 mov r0, r8 - bb84: 47b8 blx r7 - fill_area2.x1 = coords->x2 - rout + 1; - bb86: f9bb 3004 ldrsh.w r3, [fp, #4] - fill_area2.x2 = coords->x2; - bb8a: f8ad 306c strh.w r3, [sp, #108] ; 0x6c - fill_area2.x1 = coords->x2 - rout + 1; - bb8e: 1c5a adds r2, r3, #1 - bb90: 1b52 subs r2, r2, r5 - bb92: f8ad 2068 strh.w r2, [sp, #104] ; 0x68 - int32_t mask_ofs = (coords->x2 - rout + 1) - (vdb->area.x1 + draw_area.x1); - bb96: 9a09 ldr r2, [sp, #36] ; 0x24 - bb98: f9bd 1050 ldrsh.w r1, [sp, #80] ; 0x50 - _lv_blend_fill(clip, &fill_area2, color, mask_buf + mask_ofs, mask_res, opa, blend_mode); - bb9c: 4f18 ldr r7, [pc, #96] ; (bc00 ) - int32_t mask_ofs = (coords->x2 - rout + 1) - (vdb->area.x1 + draw_area.x1); - bb9e: 1a9b subs r3, r3, r2 - bba0: 9a06 ldr r2, [sp, #24] - bba2: f9b2 2010 ldrsh.w r2, [r2, #16] - bba6: 3301 adds r3, #1 - bba8: 440a add r2, r1 - bbaa: 1a9b subs r3, r3, r2 - _lv_blend_fill(clip, &fill_area2, color, mask_buf + mask_ofs, mask_res, opa, blend_mode); - bbac: 9a07 ldr r2, [sp, #28] - bbae: 9202 str r2, [sp, #8] - bbb0: 9a05 ldr r2, [sp, #20] - bbb2: 9201 str r2, [sp, #4] - bbb4: 9a0a ldr r2, [sp, #40] ; 0x28 - bbb6: 9200 str r2, [sp, #0] - bbb8: 2b00 cmp r3, #0 - bbba: bfac ite ge - bbbc: 18e3 addge r3, r4, r3 - bbbe: 1c23 addlt r3, r4, #0 - bbc0: ee18 2a10 vmov r2, s16 - bbc4: a91a add r1, sp, #104 ; 0x68 - bbc6: 4640 mov r0, r8 - bbc8: 47b8 blx r7 - fill_area.y1++; - bbca: f8bd 3062 ldrh.w r3, [sp, #98] ; 0x62 - bbce: 3301 adds r3, #1 - bbd0: f8ad 3062 strh.w r3, [sp, #98] ; 0x62 - fill_area.y2++; - bbd4: f8bd 3066 ldrh.w r3, [sp, #102] ; 0x66 - bbd8: 3301 adds r3, #1 - bbda: f8ad 3066 strh.w r3, [sp, #102] ; 0x66 - for(h = lower_corner_end; h <= draw_area.y2; h++) { - bbde: 3601 adds r6, #1 - bbe0: f7ff b8a2 b.w ad28 - bbe4: 0000e315 .word 0x0000e315 - bbe8: 00009b99 .word 0x00009b99 - bbec: 00009995 .word 0x00009995 - bbf0: 00007af9 .word 0x00007af9 - bbf4: 00007845 .word 0x00007845 - bbf8: 0000f305 .word 0x0000f305 - bbfc: 000099e5 .word 0x000099e5 - bc00: 00006475 .word 0x00006475 - fill_area.y1 = disp_area->y1 + draw_area.y1; - bc04: f8ad 3062 strh.w r3, [sp, #98] ; 0x62 - fill_area.y2 = fill_area.y1; - bc08: f8ad 3066 strh.w r3, [sp, #102] ; 0x66 - if(dsc->border_side == LV_BORDER_SIDE_LEFT) fill_area.x2 = coords->x1 + corner_size; - bc0c: f9ba 3012 ldrsh.w r3, [sl, #18] - fill_area.x1 = coords->x1; - bc10: f8ad 1060 strh.w r1, [sp, #96] ; 0x60 - if(dsc->border_side == LV_BORDER_SIDE_LEFT) fill_area.x2 = coords->x1 + corner_size; - bc14: 2b04 cmp r3, #4 - fill_area.x2 = coords->x2; - bc16: f8ad 2064 strh.w r2, [sp, #100] ; 0x64 - if(dsc->border_side == LV_BORDER_SIDE_LEFT) fill_area.x2 = coords->x1 + corner_size; - bc1a: d15e bne.n bcda - bc1c: 9a08 ldr r2, [sp, #32] - bc1e: 4411 add r1, r2 - bc20: f8ad 1064 strh.w r1, [sp, #100] ; 0x64 - volatile bool top_only = false; - bc24: 2200 movs r2, #0 - if(dsc->border_side == LV_BORDER_SIDE_TOP) top_only = true; - bc26: 2b02 cmp r3, #2 - volatile bool top_only = false; - bc28: f88d 203e strb.w r2, [sp, #62] ; 0x3e - volatile bool bottom_only = false; - bc2c: f88d 203f strb.w r2, [sp, #63] ; 0x3f - if(dsc->border_side == LV_BORDER_SIDE_TOP) top_only = true; - bc30: d15a bne.n bce8 - bc32: 2301 movs r3, #1 - bc34: f88d 303e strb.w r3, [sp, #62] ; 0x3e - volatile bool normal = !top_only && !bottom_only ? true : false; - bc38: f89d 303e ldrb.w r3, [sp, #62] ; 0x3e - bc3c: 2b00 cmp r3, #0 - bc3e: d15d bne.n bcfc - bc40: f89d 303f ldrb.w r3, [sp, #63] ; 0x3f - bc44: f083 0301 eor.w r3, r3, #1 - bc48: f003 0301 and.w r3, r3, #1 - _lv_blend_fill(clip, &fill_area, color, mask_buf, mask_res, opa, blend_mode); - bc4c: 4dad ldr r5, [pc, #692] ; (bf04 ) - volatile bool normal = !top_only && !bottom_only ? true : false; - bc4e: f88d 3040 strb.w r3, [sp, #64] ; 0x40 - for(h = draw_area.y1; h <= draw_area.y2; h++) { - bc52: f9bd 3056 ldrsh.w r3, [sp, #86] ; 0x56 - bc56: 429e cmp r6, r3 - bc58: f73f a8a5 bgt.w ada6 - if(normal || - bc5c: f89d 3040 ldrb.w r3, [sp, #64] ; 0x40 - bc60: b99b cbnz r3, bc8a - (top_only && fill_area.y1 <= coords->y1 + corner_size) || - bc62: f89d 303e ldrb.w r3, [sp, #62] ; 0x3e - bc66: f9bd 2062 ldrsh.w r2, [sp, #98] ; 0x62 - if(normal || - bc6a: b12b cbz r3, bc78 - (top_only && fill_area.y1 <= coords->y1 + corner_size) || - bc6c: f9bb 3002 ldrsh.w r3, [fp, #2] - bc70: 9908 ldr r1, [sp, #32] - bc72: 440b add r3, r1 - bc74: 429a cmp r2, r3 - bc76: dd08 ble.n bc8a - (bottom_only && fill_area.y1 >= coords->y2 - corner_size)) { - bc78: f89d 303f ldrb.w r3, [sp, #63] ; 0x3f - (top_only && fill_area.y1 <= coords->y1 + corner_size) || - bc7c: b30b cbz r3, bcc2 - (bottom_only && fill_area.y1 >= coords->y2 - corner_size)) { - bc7e: f9bb 3006 ldrsh.w r3, [fp, #6] - bc82: 9908 ldr r1, [sp, #32] - bc84: 1a5b subs r3, r3, r1 - bc86: 429a cmp r2, r3 - bc88: db1b blt.n bcc2 - _lv_memset_ff(mask_buf, draw_area_w); - bc8a: 4b9f ldr r3, [pc, #636] ; (bf08 ) - mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w); - bc8c: 4f9f ldr r7, [pc, #636] ; (bf0c ) - _lv_memset_ff(mask_buf, draw_area_w); - bc8e: 4649 mov r1, r9 - bc90: 4620 mov r0, r4 - bc92: 4798 blx r3 - mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w); - bc94: 9b06 ldr r3, [sp, #24] - bc96: 8a5a ldrh r2, [r3, #18] - bc98: 8a19 ldrh r1, [r3, #16] - bc9a: f8bd 3050 ldrh.w r3, [sp, #80] ; 0x50 - bc9e: 4432 add r2, r6 - bca0: 4419 add r1, r3 - bca2: b212 sxth r2, r2 - bca4: 464b mov r3, r9 - bca6: b209 sxth r1, r1 - bca8: 4620 mov r0, r4 - bcaa: 47b8 blx r7 - _lv_blend_fill(clip, &fill_area, color, mask_buf, mask_res, opa, blend_mode); - bcac: 9b07 ldr r3, [sp, #28] - bcae: 9302 str r3, [sp, #8] - bcb0: 9b05 ldr r3, [sp, #20] - bcb2: ee18 2a10 vmov r2, s16 - bcb6: e9cd 0300 strd r0, r3, [sp] - bcba: a918 add r1, sp, #96 ; 0x60 - bcbc: 4623 mov r3, r4 - bcbe: 4640 mov r0, r8 - bcc0: 47a8 blx r5 - fill_area.y1++; - bcc2: f8bd 3062 ldrh.w r3, [sp, #98] ; 0x62 - bcc6: 3301 adds r3, #1 - bcc8: f8ad 3062 strh.w r3, [sp, #98] ; 0x62 - fill_area.y2++; - bccc: f8bd 3066 ldrh.w r3, [sp, #102] ; 0x66 - bcd0: 3301 adds r3, #1 - bcd2: f8ad 3066 strh.w r3, [sp, #102] ; 0x66 - for(h = draw_area.y1; h <= draw_area.y2; h++) { - bcd6: 3601 adds r6, #1 - bcd8: e7bb b.n bc52 - else if(dsc->border_side == LV_BORDER_SIDE_RIGHT) fill_area.x1 = coords->x2 - corner_size; - bcda: 2b08 cmp r3, #8 - bcdc: bf02 ittt eq - bcde: 9908 ldreq r1, [sp, #32] - bce0: 1a52 subeq r2, r2, r1 - bce2: f8ad 2060 strheq.w r2, [sp, #96] ; 0x60 - bce6: e79d b.n bc24 - if(dsc->border_side == LV_BORDER_SIDE_BOTTOM) bottom_only = true; - bce8: 2b01 cmp r3, #1 - bcea: d004 beq.n bcf6 - if(dsc->border_side == (LV_BORDER_SIDE_TOP | LV_BORDER_SIDE_BOTTOM)) { - bcec: 2b03 cmp r3, #3 - bcee: d1a3 bne.n bc38 - top_only = true; - bcf0: 2301 movs r3, #1 - bcf2: f88d 303e strb.w r3, [sp, #62] ; 0x3e - bottom_only = true; - bcf6: f88d 303f strb.w r3, [sp, #63] ; 0x3f - bcfa: e79d b.n bc38 - volatile bool normal = !top_only && !bottom_only ? true : false; - bcfc: 2300 movs r3, #0 - bcfe: e7a3 b.n bc48 - _lv_memset_ff(mask_buf, draw_area_w); - bd00: ee18 1a10 vmov r1, s16 - bd04: 4b80 ldr r3, [pc, #512] ; (bf08 ) - mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w); - bd06: 4d81 ldr r5, [pc, #516] ; (bf0c ) - _lv_memset_ff(mask_buf, draw_area_w); - bd08: 4620 mov r0, r4 - bd0a: 4798 blx r3 - mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w); - bd0c: 9b06 ldr r3, [sp, #24] - bd0e: 8a5a ldrh r2, [r3, #18] - bd10: 8a19 ldrh r1, [r3, #16] - bd12: f8bd 3058 ldrh.w r3, [sp, #88] ; 0x58 - bd16: 4432 add r2, r6 - bd18: 4419 add r1, r3 - bd1a: b212 sxth r2, r2 - bd1c: ee18 3a10 vmov r3, s16 - bd20: b209 sxth r1, r1 - bd22: 4620 mov r0, r4 - bd24: 47a8 blx r5 - fill_area2.y1 = fill_area.y1; - bd26: f8bd 3062 ldrh.w r3, [sp, #98] ; 0x62 - bd2a: f8ad 306a strh.w r3, [sp, #106] ; 0x6a - fill_area2.y2 = fill_area.y2; - bd2e: f8bd 3066 ldrh.w r3, [sp, #102] ; 0x66 - bd32: f8ad 306e strh.w r3, [sp, #110] ; 0x6e - fill_area2.x1 = area_outer.x1; - bd36: f9bd 3050 ldrsh.w r3, [sp, #80] ; 0x50 - bd3a: f8ad 3068 strh.w r3, [sp, #104] ; 0x68 - fill_area2.x2 = area_outer.x1 + rout - 1; - bd3e: 3b01 subs r3, #1 - bd40: fa13 f389 uxtah r3, r3, r9 - bd44: fa1f f289 uxth.w r2, r9 - bd48: f8ad 306c strh.w r3, [sp, #108] ; 0x6c - _lv_blend_fill(clip, &fill_area2, color, mask_buf, mask_res, opa, blend_mode); - bd4c: 9b05 ldr r3, [sp, #20] - mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w); - bd4e: 900a str r0, [sp, #40] ; 0x28 - fill_area2.x2 = area_outer.x1 + rout - 1; - bd50: 9209 str r2, [sp, #36] ; 0x24 - _lv_blend_fill(clip, &fill_area2, color, mask_buf, mask_res, opa, blend_mode); - bd52: 9301 str r3, [sp, #4] - bd54: 9000 str r0, [sp, #0] - bd56: 4623 mov r3, r4 - bd58: 463a mov r2, r7 - bd5a: a91a add r1, sp, #104 ; 0x68 - bd5c: 4d69 ldr r5, [pc, #420] ; (bf04 ) - bd5e: f8cd b008 str.w fp, [sp, #8] - bd62: 4640 mov r0, r8 - bd64: 47a8 blx r5 - if(fill_area2.y2 < area_outer.y1 + dsc->outline_width) { - bd66: f9bd 3052 ldrsh.w r3, [sp, #82] ; 0x52 - bd6a: f9ba 1018 ldrsh.w r1, [sl, #24] - bd6e: f9bd 206e ldrsh.w r2, [sp, #110] ; 0x6e - bd72: 440b add r3, r1 - bd74: 429a cmp r2, r3 - bd76: da15 bge.n bda4 - fill_area2.x1 = area_outer.x1 + rout; - bd78: 9a09 ldr r2, [sp, #36] ; 0x24 - bd7a: f8bd 3050 ldrh.w r3, [sp, #80] ; 0x50 - _lv_blend_fill(clip, &fill_area2, color, NULL, LV_DRAW_MASK_RES_FULL_COVER, opa, blend_mode); - bd7e: f8cd b008 str.w fp, [sp, #8] - fill_area2.x1 = area_outer.x1 + rout; - bd82: 4413 add r3, r2 - bd84: f8ad 3068 strh.w r3, [sp, #104] ; 0x68 - fill_area2.x2 = area_outer.x2 - rout; - bd88: f8bd 3054 ldrh.w r3, [sp, #84] ; 0x54 - bd8c: 1a9b subs r3, r3, r2 - bd8e: f8ad 306c strh.w r3, [sp, #108] ; 0x6c - _lv_blend_fill(clip, &fill_area2, color, NULL, LV_DRAW_MASK_RES_FULL_COVER, opa, blend_mode); - bd92: 9b05 ldr r3, [sp, #20] - bd94: 9301 str r3, [sp, #4] - bd96: 2301 movs r3, #1 - bd98: 9300 str r3, [sp, #0] - bd9a: 463a mov r2, r7 - bd9c: 2300 movs r3, #0 - bd9e: a91a add r1, sp, #104 ; 0x68 - bda0: 4640 mov r0, r8 - bda2: 47a8 blx r5 - fill_area2.x1 = area_outer.x2 - rout + 1; - bda4: f9bd 3054 ldrsh.w r3, [sp, #84] ; 0x54 - bda8: 9909 ldr r1, [sp, #36] ; 0x24 - fill_area2.x2 = area_outer.x2; - bdaa: f8ad 306c strh.w r3, [sp, #108] ; 0x6c - fill_area2.x1 = area_outer.x2 - rout + 1; - bdae: 1c5a adds r2, r3, #1 - bdb0: 1a52 subs r2, r2, r1 - bdb2: f8ad 2068 strh.w r2, [sp, #104] ; 0x68 - int32_t mask_ofs = (area_outer.x2 - rout + 1) - (vdb->area.x1 + draw_area.x1); - bdb6: 9a06 ldr r2, [sp, #24] - bdb8: f9bd 1058 ldrsh.w r1, [sp, #88] ; 0x58 - bdbc: f9b2 2010 ldrsh.w r2, [r2, #16] - _lv_blend_fill(clip, &fill_area2, color, mask_buf + mask_ofs, mask_res, opa, blend_mode); - bdc0: 4d50 ldr r5, [pc, #320] ; (bf04 ) - bdc2: f8cd b008 str.w fp, [sp, #8] - int32_t mask_ofs = (area_outer.x2 - rout + 1) - (vdb->area.x1 + draw_area.x1); - bdc6: eba3 0309 sub.w r3, r3, r9 - bdca: 440a add r2, r1 - bdcc: 3301 adds r3, #1 - bdce: 1a9b subs r3, r3, r2 - _lv_blend_fill(clip, &fill_area2, color, mask_buf + mask_ofs, mask_res, opa, blend_mode); - bdd0: 9a05 ldr r2, [sp, #20] - bdd2: 9201 str r2, [sp, #4] - bdd4: 9a0a ldr r2, [sp, #40] ; 0x28 - bdd6: 9200 str r2, [sp, #0] - bdd8: 2b00 cmp r3, #0 - bdda: bfac ite ge - bddc: 18e3 addge r3, r4, r3 - bdde: 1c23 addlt r3, r4, #0 - bde0: 463a mov r2, r7 - bde2: a91a add r1, sp, #104 ; 0x68 - bde4: 4640 mov r0, r8 - bde6: 47a8 blx r5 - fill_area.y1++; - bde8: f8bd 3062 ldrh.w r3, [sp, #98] ; 0x62 - bdec: 3301 adds r3, #1 - bdee: f8ad 3062 strh.w r3, [sp, #98] ; 0x62 - fill_area.y2++; - bdf2: f8bd 3066 ldrh.w r3, [sp, #102] ; 0x66 - bdf6: 3301 adds r3, #1 - bdf8: f8ad 3066 strh.w r3, [sp, #102] ; 0x66 - for(h = draw_area.y1; h <= upper_corner_end; h++) { - bdfc: 3601 adds r6, #1 - bdfe: f7ff b957 b.w b0b0 - _lv_memset_ff(mask_buf, draw_area_w); - be02: ee18 1a10 vmov r1, s16 - be06: 4b40 ldr r3, [pc, #256] ; (bf08 ) - mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w); - be08: 4d40 ldr r5, [pc, #256] ; (bf0c ) - _lv_memset_ff(mask_buf, draw_area_w); - be0a: 4620 mov r0, r4 - be0c: 4798 blx r3 - mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w); - be0e: 9b06 ldr r3, [sp, #24] - be10: 8a5a ldrh r2, [r3, #18] - be12: 8a19 ldrh r1, [r3, #16] - be14: f8bd 3058 ldrh.w r3, [sp, #88] ; 0x58 - be18: 4432 add r2, r6 - be1a: 4419 add r1, r3 - be1c: b212 sxth r2, r2 - be1e: ee18 3a10 vmov r3, s16 - be22: b209 sxth r1, r1 - be24: 4620 mov r0, r4 - be26: 47a8 blx r5 - fill_area2.x1 = area_outer.x1; - be28: f9bd 3050 ldrsh.w r3, [sp, #80] ; 0x50 - be2c: f8ad 3068 strh.w r3, [sp, #104] ; 0x68 - fill_area2.x2 = area_outer.x1 + rout - 1; - be30: 3b01 subs r3, #1 - be32: fa13 f389 uxtah r3, r3, r9 - be36: f8ad 306c strh.w r3, [sp, #108] ; 0x6c - fill_area2.y1 = fill_area.y1; - be3a: f8bd 3062 ldrh.w r3, [sp, #98] ; 0x62 - be3e: f8ad 306a strh.w r3, [sp, #106] ; 0x6a - fill_area2.y2 = fill_area.y2; - be42: f8bd 3066 ldrh.w r3, [sp, #102] ; 0x66 - be46: f8ad 306e strh.w r3, [sp, #110] ; 0x6e - fill_area2.x2 = area_outer.x1 + rout - 1; - be4a: fa1f f289 uxth.w r2, r9 - _lv_blend_fill(clip, &fill_area2, color, mask_buf, mask_res, opa, blend_mode); - be4e: 9b05 ldr r3, [sp, #20] - mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w); - be50: 9009 str r0, [sp, #36] ; 0x24 - fill_area2.x2 = area_outer.x1 + rout - 1; - be52: 9208 str r2, [sp, #32] - _lv_blend_fill(clip, &fill_area2, color, mask_buf, mask_res, opa, blend_mode); - be54: 9301 str r3, [sp, #4] - be56: 9000 str r0, [sp, #0] - be58: 4623 mov r3, r4 - be5a: 463a mov r2, r7 - be5c: a91a add r1, sp, #104 ; 0x68 - be5e: 4d29 ldr r5, [pc, #164] ; (bf04 ) - be60: f8cd b008 str.w fp, [sp, #8] - be64: 4640 mov r0, r8 - be66: 47a8 blx r5 - if(fill_area2.y2 > area_outer.y2 - dsc->outline_width) { - be68: f9bd 3056 ldrsh.w r3, [sp, #86] ; 0x56 - be6c: f9ba 1018 ldrsh.w r1, [sl, #24] - be70: f9bd 206e ldrsh.w r2, [sp, #110] ; 0x6e - be74: 1a5b subs r3, r3, r1 - be76: 429a cmp r2, r3 - be78: dd15 ble.n bea6 - fill_area2.x1 = area_outer.x1 + rout; - be7a: 9a08 ldr r2, [sp, #32] - be7c: f8bd 3050 ldrh.w r3, [sp, #80] ; 0x50 - _lv_blend_fill(clip, &fill_area2, color, NULL, LV_DRAW_MASK_RES_FULL_COVER, opa, blend_mode); - be80: f8cd b008 str.w fp, [sp, #8] - fill_area2.x1 = area_outer.x1 + rout; - be84: 4413 add r3, r2 - be86: f8ad 3068 strh.w r3, [sp, #104] ; 0x68 - fill_area2.x2 = area_outer.x2 - rout; - be8a: f8bd 3054 ldrh.w r3, [sp, #84] ; 0x54 - be8e: 1a9b subs r3, r3, r2 - be90: f8ad 306c strh.w r3, [sp, #108] ; 0x6c - _lv_blend_fill(clip, &fill_area2, color, NULL, LV_DRAW_MASK_RES_FULL_COVER, opa, blend_mode); - be94: 9b05 ldr r3, [sp, #20] - be96: 9301 str r3, [sp, #4] - be98: 2301 movs r3, #1 - be9a: 9300 str r3, [sp, #0] - be9c: 463a mov r2, r7 - be9e: 2300 movs r3, #0 - bea0: a91a add r1, sp, #104 ; 0x68 - bea2: 4640 mov r0, r8 - bea4: 47a8 blx r5 - fill_area2.x1 = area_outer.x2 - rout + 1; - bea6: f9bd 3054 ldrsh.w r3, [sp, #84] ; 0x54 - beaa: 9908 ldr r1, [sp, #32] - fill_area2.x2 = area_outer.x2; - beac: f8ad 306c strh.w r3, [sp, #108] ; 0x6c - fill_area2.x1 = area_outer.x2 - rout + 1; - beb0: 1c5a adds r2, r3, #1 - beb2: 1a52 subs r2, r2, r1 - beb4: f8ad 2068 strh.w r2, [sp, #104] ; 0x68 - int32_t mask_ofs = (area_outer.x2 - rout + 1) - (vdb->area.x1 + draw_area.x1); - beb8: 9a06 ldr r2, [sp, #24] - beba: f9bd 1058 ldrsh.w r1, [sp, #88] ; 0x58 - bebe: f9b2 2010 ldrsh.w r2, [r2, #16] - _lv_blend_fill(clip, &fill_area2, color, mask_buf + mask_ofs, mask_res, opa, blend_mode); - bec2: 4d10 ldr r5, [pc, #64] ; (bf04 ) - bec4: f8cd b008 str.w fp, [sp, #8] - int32_t mask_ofs = (area_outer.x2 - rout + 1) - (vdb->area.x1 + draw_area.x1); - bec8: eba3 0309 sub.w r3, r3, r9 - becc: 440a add r2, r1 - bece: 3301 adds r3, #1 - bed0: 1a9b subs r3, r3, r2 - _lv_blend_fill(clip, &fill_area2, color, mask_buf + mask_ofs, mask_res, opa, blend_mode); - bed2: 9a05 ldr r2, [sp, #20] - bed4: 9201 str r2, [sp, #4] - bed6: 9a09 ldr r2, [sp, #36] ; 0x24 - bed8: 9200 str r2, [sp, #0] - beda: 2b00 cmp r3, #0 - bedc: bfac ite ge - bede: 18e3 addge r3, r4, r3 - bee0: 1c23 addlt r3, r4, #0 - bee2: 463a mov r2, r7 - bee4: a91a add r1, sp, #104 ; 0x68 - bee6: 4640 mov r0, r8 - bee8: 47a8 blx r5 - fill_area.y1++; - beea: f8bd 3062 ldrh.w r3, [sp, #98] ; 0x62 - beee: 3301 adds r3, #1 - bef0: f8ad 3062 strh.w r3, [sp, #98] ; 0x62 - fill_area.y2++; - bef4: f8bd 3066 ldrh.w r3, [sp, #102] ; 0x66 - bef8: 3301 adds r3, #1 - befa: f8ad 3066 strh.w r3, [sp, #102] ; 0x66 - for(h = lower_corner_end; h <= draw_area.y2; h++) { - befe: 3601 adds r6, #1 - bf00: f7ff b8ed b.w b0de - bf04: 00006475 .word 0x00006475 - bf08: 0000f305 .word 0x0000f305 - bf0c: 000099e5 .word 0x000099e5 - _lv_memset_ff(mask_buf, draw_area_w); - bf10: f8df 908c ldr.w r9, [pc, #140] ; bfa0 - _lv_blend_fill(clip, &fill_area, color, mask_buf, mask_res, opa, blend_mode); - bf14: f8df a08c ldr.w sl, [pc, #140] ; bfa4 - fill_area.x1 = area_outer.x1; - bf18: f8ad 0060 strh.w r0, [sp, #96] ; 0x60 - fill_area.x2 = area_outer.x2; - bf1c: f8ad 1064 strh.w r1, [sp, #100] ; 0x64 - fill_area.y1 = disp_area->y1 + draw_area.y1; - bf20: f8ad 3062 strh.w r3, [sp, #98] ; 0x62 - fill_area.y2 = fill_area.y1; - bf24: f8ad 3066 strh.w r3, [sp, #102] ; 0x66 - for(h = draw_area.y1; h <= draw_area.y2; h++) { - bf28: f9bd 305e ldrsh.w r3, [sp, #94] ; 0x5e - bf2c: 429e cmp r6, r3 - bf2e: f73f a913 bgt.w b158 - _lv_memset_ff(mask_buf, draw_area_w); - bf32: ee18 1a10 vmov r1, s16 - bf36: 4620 mov r0, r4 - bf38: 47c8 blx r9 - mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w); - bf3a: 9b06 ldr r3, [sp, #24] - bf3c: 4d17 ldr r5, [pc, #92] ; (bf9c ) - bf3e: 8a5a ldrh r2, [r3, #18] - bf40: 8a19 ldrh r1, [r3, #16] - bf42: f8bd 3058 ldrh.w r3, [sp, #88] ; 0x58 - bf46: 4432 add r2, r6 - bf48: 4419 add r1, r3 - bf4a: b212 sxth r2, r2 - bf4c: ee18 3a10 vmov r3, s16 - bf50: b209 sxth r1, r1 - bf52: 4620 mov r0, r4 - bf54: 47a8 blx r5 - _lv_blend_fill(clip, &fill_area, color, mask_buf, mask_res, opa, blend_mode); - bf56: 9b05 ldr r3, [sp, #20] - bf58: f8cd b008 str.w fp, [sp, #8] - bf5c: e9cd 0300 strd r0, r3, [sp] - bf60: 463a mov r2, r7 - bf62: 4623 mov r3, r4 - bf64: a918 add r1, sp, #96 ; 0x60 - bf66: 4640 mov r0, r8 - bf68: 47d0 blx sl - fill_area.y1++; - bf6a: f8bd 3062 ldrh.w r3, [sp, #98] ; 0x62 - bf6e: 3301 adds r3, #1 - bf70: f8ad 3062 strh.w r3, [sp, #98] ; 0x62 - fill_area.y2++; - bf74: f8bd 3066 ldrh.w r3, [sp, #102] ; 0x66 - bf78: 3301 adds r3, #1 - bf7a: b21b sxth r3, r3 - for(h = draw_area.y1; h <= draw_area.y2; h++) { - bf7c: 3601 adds r6, #1 - bf7e: e7d1 b.n bf24 - if(dsc->bg_grad_dir == LV_GRAD_DIR_HOR) { - bf80: 9b09 ldr r3, [sp, #36] ; 0x24 - bf82: 2b02 cmp r3, #2 - bf84: f43f abc6 beq.w b714 - else if(other_mask_cnt != 0 || !split) { - bf88: 9b0d ldr r3, [sp, #52] ; 0x34 - bf8a: 2b00 cmp r3, #0 - bf8c: f47f abdd bne.w b74a - bf90: 9b0a ldr r3, [sp, #40] ; 0x28 - bf92: 2b32 cmp r3, #50 ; 0x32 - bf94: f73f abc9 bgt.w b72a - bf98: f7ff bbd7 b.w b74a - bf9c: 000099e5 .word 0x000099e5 - bfa0: 0000f305 .word 0x0000f305 - bfa4: 00006475 .word 0x00006475 - -0000bfa8 : -{ - bfa8: b5f0 push {r4, r5, r6, r7, lr} - LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix))); - bfaa: f3c1 1345 ubfx r3, r1, #5, #6 - LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix))); - bfae: f1c2 06ff rsb r6, r2, #255 ; 0xff - LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix))); - bfb2: f3c0 1445 ubfx r4, r0, #5, #6 - bfb6: 4373 muls r3, r6 - bfb8: fb04 3302 mla r3, r4, r2, r3 - LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix))); - bfbc: f001 041f and.w r4, r1, #31 - bfc0: f000 071f and.w r7, r0, #31 - bfc4: 4374 muls r4, r6 - LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix))); - bfc6: f248 0581 movw r5, #32897 ; 0x8081 - LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix))); - bfca: fb07 4402 mla r4, r7, r2, r4 - LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix))); - bfce: 436b muls r3, r5 - LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix))); - bfd0: 436c muls r4, r5 - return ret; - bfd2: f3c3 53c5 ubfx r3, r3, #23, #6 - bfd6: f3c4 54c4 ubfx r4, r4, #23, #5 - bfda: ea44 1443 orr.w r4, r4, r3, lsl #5 - LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix))); - bfde: f3c1 23c4 ubfx r3, r1, #11, #5 - bfe2: 4373 muls r3, r6 - bfe4: f3c0 20c4 ubfx r0, r0, #11, #5 - bfe8: fb00 3202 mla r2, r0, r2, r3 - bfec: fb05 f302 mul.w r3, r5, r2 - bff0: 0ddb lsrs r3, r3, #23 -} - bff2: ea44 20c3 orr.w r0, r4, r3, lsl #11 - bff6: bdf0 pop {r4, r5, r6, r7, pc} - -0000bff8 <_lv_memcpy_small.isra.0>: -LV_ATTRIBUTE_FAST_MEM static inline void * _lv_memcpy_small(void * dst, const void * src, size_t len) - bff8: 3901 subs r1, #1 - bffa: 4402 add r2, r0 - while(len) { - bffc: 4290 cmp r0, r2 - bffe: d100 bne.n c002 - s8++; - len--; - } - - return dst; -} - c000: 4770 bx lr - *d8 = *s8; - c002: f811 3f01 ldrb.w r3, [r1, #1]! - c006: f800 3b01 strb.w r3, [r0], #1 - len--; - c00a: e7f7 b.n bffc <_lv_memcpy_small.isra.0+0x4> - -0000c00c : - * Not used in other cases. - * @param safe true: check out of bounds - * @return color of the point - */ -lv_color_t lv_img_buf_get_px_color(lv_img_dsc_t * dsc, lv_coord_t x, lv_coord_t y, lv_color_t color) -{ - c00c: b5f7 push {r0, r1, r2, r4, r5, r6, r7, lr} - lv_color_t p_color = LV_COLOR_BLACK; - uint8_t * buf_u8 = (uint8_t *)dsc->data; - c00e: 6886 ldr r6, [r0, #8] -{ - c010: 4607 mov r7, r0 - - if(dsc->header.cf == LV_IMG_CF_TRUE_COLOR || dsc->header.cf == LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED || - c012: 7800 ldrb r0, [r0, #0] -{ - c014: 4615 mov r5, r2 - lv_color_t p_color = LV_COLOR_BLACK; - c016: 2200 movs r2, #0 - c018: f8ad 2004 strh.w r2, [sp, #4] - if(dsc->header.cf == LV_IMG_CF_TRUE_COLOR || dsc->header.cf == LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED || - c01c: f000 021f and.w r2, r0, #31 - c020: 2a04 cmp r2, #4 -{ - c022: 460c mov r4, r1 - if(dsc->header.cf == LV_IMG_CF_TRUE_COLOR || dsc->header.cf == LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED || - c024: d009 beq.n c03a - c026: 3a05 subs r2, #5 - c028: 2a09 cmp r2, #9 - c02a: d81a bhi.n c062 - c02c: e8df f002 tbb [pc, r2] - c030: 321d0505 .word 0x321d0505 - c034: 2f2f5843 .word 0x2f2f5843 - c038: 2f2f .short 0x2f2f - dsc->header.cf == LV_IMG_CF_TRUE_COLOR_ALPHA) { - uint8_t px_size = lv_img_cf_get_px_size(dsc->header.cf) >> 3; - c03a: 4b2e ldr r3, [pc, #184] ; (c0f4 ) - c03c: f000 001f and.w r0, r0, #31 - c040: 4798 blx r3 - uint32_t px = dsc->header.w * y * px_size + x * px_size; - c042: 683b ldr r3, [r7, #0] - uint8_t px_size = lv_img_cf_get_px_size(dsc->header.cf) >> 3; - c044: f3c0 00c7 ubfx r0, r0, #3, #8 - uint32_t px = dsc->header.w * y * px_size + x * px_size; - c048: f3c3 238a ubfx r3, r3, #10, #11 - c04c: fb13 f305 smulbb r3, r3, r5 - c050: fb10 f104 smulbb r1, r0, r4 - c054: fb00 1103 mla r1, r0, r3, r1 - _lv_memcpy_small(&p_color, &buf_u8[px], sizeof(lv_color_t)); - c058: 2202 movs r2, #2 - c05a: 4b27 ldr r3, [pc, #156] ; (c0f8 ) - c05c: 4431 add r1, r6 - c05e: a801 add r0, sp, #4 - c060: 4798 blx r3 - else if(dsc->header.cf == LV_IMG_CF_ALPHA_1BIT || dsc->header.cf == LV_IMG_CF_ALPHA_2BIT || - dsc->header.cf == LV_IMG_CF_ALPHA_4BIT || dsc->header.cf == LV_IMG_CF_ALPHA_8BIT) { - p_color = color; - } - return p_color; -} - c062: f8bd 0004 ldrh.w r0, [sp, #4] - c066: b003 add sp, #12 - c068: bdf0 pop {r4, r5, r6, r7, pc} - uint32_t px = ((dsc->header.w + 7) >> 3) * y + x; - c06a: 683b ldr r3, [r7, #0] - c06c: f3c3 238a ubfx r3, r3, #10, #11 - c070: 3307 adds r3, #7 - c072: 10db asrs r3, r3, #3 - p_color.full = (buf_u8[px] & (1 << (7 - bit))) >> (7 - bit); - c074: fb05 6303 mla r3, r5, r3, r6 - c078: eb03 03e4 add.w r3, r3, r4, asr #3 - c07c: f004 0207 and.w r2, r4, #7 - c080: 7a1b ldrb r3, [r3, #8] - c082: f1c2 0207 rsb r2, r2, #7 - c086: 2101 movs r1, #1 - p_color.full = (buf_u8[px] & (3 << (6 - bit))) >> (6 - bit); - c088: 4091 lsls r1, r2 - c08a: 400b ands r3, r1 - c08c: 4113 asrs r3, r2 - p_color = color; - c08e: f8ad 3004 strh.w r3, [sp, #4] - c092: e7e6 b.n c062 - uint32_t px = ((dsc->header.w + 3) >> 2) * y + x; - c094: 683b ldr r3, [r7, #0] - c096: f3c3 238a ubfx r3, r3, #10, #11 - c09a: 3303 adds r3, #3 - c09c: 109b asrs r3, r3, #2 - p_color.full = (buf_u8[px] & (3 << (6 - bit))) >> (6 - bit); - c09e: fb05 6303 mla r3, r5, r3, r6 - uint8_t bit = (x & 0x3) * 2; - c0a2: f004 0203 and.w r2, r4, #3 - p_color.full = (buf_u8[px] & (3 << (6 - bit))) >> (6 - bit); - c0a6: eb03 03a4 add.w r3, r3, r4, asr #2 - c0aa: 0052 lsls r2, r2, #1 - c0ac: 7c1b ldrb r3, [r3, #16] - c0ae: f1c2 0206 rsb r2, r2, #6 - c0b2: 2103 movs r1, #3 - c0b4: e7e8 b.n c088 - uint32_t px = ((dsc->header.w + 1) >> 1) * y + x; - c0b6: 683b ldr r3, [r7, #0] - c0b8: f3c3 238a ubfx r3, r3, #10, #11 - c0bc: 3301 adds r3, #1 - c0be: 105b asrs r3, r3, #1 - p_color.full = (buf_u8[px] & (0xF << (4 - bit))) >> (4 - bit); - c0c0: fb05 6203 mla r2, r5, r3, r6 - c0c4: eb02 0264 add.w r2, r2, r4, asr #1 - uint8_t bit = (x & 0x1) * 4; - c0c8: f004 0101 and.w r1, r4, #1 - p_color.full = (buf_u8[px] & (0xF << (4 - bit))) >> (4 - bit); - c0cc: 0089 lsls r1, r1, #2 - c0ce: f892 3040 ldrb.w r3, [r2, #64] ; 0x40 - c0d2: f1c1 0104 rsb r1, r1, #4 - c0d6: 220f movs r2, #15 - c0d8: 408a lsls r2, r1 - c0da: 4013 ands r3, r2 - c0dc: 410b asrs r3, r1 - c0de: e7d6 b.n c08e - uint32_t px = dsc->header.w * y + x; - c0e0: 683b ldr r3, [r7, #0] - c0e2: f3c3 238a ubfx r3, r3, #10, #11 - c0e6: fb15 4503 smlabb r5, r5, r3, r4 - p_color.full = buf_u8[px]; - c0ea: 442e add r6, r5 - c0ec: f896 3400 ldrb.w r3, [r6, #1024] ; 0x400 - c0f0: e7cd b.n c08e - c0f2: bf00 nop - c0f4: 00007805 .word 0x00007805 - c0f8: 0000bff9 .word 0x0000bff9 - -0000c0fc : - * @param y x coordinate of the point to set - * @param safe true: check out of bounds - * @return alpha value of the point - */ -lv_opa_t lv_img_buf_get_px_alpha(lv_img_dsc_t * dsc, lv_coord_t x, lv_coord_t y) -{ - c0fc: b5f0 push {r4, r5, r6, r7, lr} - c0fe: 460b mov r3, r1 - uint8_t * buf_u8 = (uint8_t *)dsc->data; - - if(dsc->header.cf == LV_IMG_CF_TRUE_COLOR_ALPHA) { - c100: 7801 ldrb r1, [r0, #0] - uint8_t * buf_u8 = (uint8_t *)dsc->data; - c102: 6885 ldr r5, [r0, #8] - if(dsc->header.cf == LV_IMG_CF_TRUE_COLOR_ALPHA) { - c104: f001 011f and.w r1, r1, #31 - c108: 2905 cmp r1, #5 -{ - c10a: b085 sub sp, #20 - c10c: 4604 mov r4, r0 - if(dsc->header.cf == LV_IMG_CF_TRUE_COLOR_ALPHA) { - c10e: d10a bne.n c126 - uint32_t px = dsc->header.w * y * LV_IMG_PX_SIZE_ALPHA_BYTE + x * LV_IMG_PX_SIZE_ALPHA_BYTE; - c110: 6801 ldr r1, [r0, #0] - c112: f3c1 218a ubfx r1, r1, #10, #11 - c116: fb12 3201 smlabb r2, r2, r1, r3 - return buf_u8[px + LV_IMG_PX_SIZE_ALPHA_BYTE - 1]; - c11a: eb02 0242 add.w r2, r2, r2, lsl #1 - c11e: 442a add r2, r5 - c120: 7890 ldrb r0, [r2, #2] - uint32_t px = dsc->header.w * y + x; - return buf_u8[px]; - } - - return LV_OPA_COVER; -} - c122: b005 add sp, #20 - c124: bdf0 pop {r4, r5, r6, r7, pc} - else if(dsc->header.cf == LV_IMG_CF_ALPHA_1BIT) { - c126: 390b subs r1, #11 - c128: 2903 cmp r1, #3 - c12a: d856 bhi.n c1da - c12c: e8df f001 tbb [pc, r1] - c130: 4e321902 .word 0x4e321902 - uint32_t px = ((dsc->header.w + 7) >> 3) * y + x; - c134: 6821 ldr r1, [r4, #0] - c136: f3c1 218a ubfx r1, r1, #10, #11 - c13a: 3107 adds r1, #7 - c13c: 10c9 asrs r1, r1, #3 - uint8_t px_opa = (buf_u8[px] & (1 << (7 - bit))) >> (7 - bit); - c13e: f003 0007 and.w r0, r3, #7 - c142: fb02 5201 mla r2, r2, r1, r5 - uint32_t px = ((dsc->header.w + 7) >> 3) * y + x; - c146: 10db asrs r3, r3, #3 - uint8_t px_opa = (buf_u8[px] & (1 << (7 - bit))) >> (7 - bit); - c148: f1c0 0007 rsb r0, r0, #7 - c14c: 5cd3 ldrb r3, [r2, r3] - c14e: 2201 movs r2, #1 - c150: 4082 lsls r2, r0 - c152: 4013 ands r3, r2 - return px_opa ? LV_OPA_TRANSP : LV_OPA_COVER; - c154: 4103 asrs r3, r0 - c156: bf0c ite eq - c158: f04f 30ff moveq.w r0, #4294967295 ; 0xffffffff - c15c: 2000 movne r0, #0 - c15e: b2c0 uxtb r0, r0 - c160: e7df b.n c122 - const uint8_t opa_table[4] = {0, 85, 170, 255}; /*Opacity mapping with bpp = 2*/ - c162: 491f ldr r1, [pc, #124] ; (c1e0 ) - c164: 9100 str r1, [sp, #0] - uint32_t px = ((dsc->header.w + 3) >> 2) * y + x; - c166: 6821 ldr r1, [r4, #0] - c168: f3c1 218a ubfx r1, r1, #10, #11 - c16c: 3103 adds r1, #3 - c16e: 1089 asrs r1, r1, #2 - uint8_t bit = (x & 0x3) * 2; - c170: f003 0003 and.w r0, r3, #3 - uint8_t px_opa = (buf_u8[px] & (3 << (6 - bit))) >> (6 - bit); - c174: fb02 5201 mla r2, r2, r1, r5 - uint32_t px = ((dsc->header.w + 3) >> 2) * y + x; - c178: 109b asrs r3, r3, #2 - uint8_t px_opa = (buf_u8[px] & (3 << (6 - bit))) >> (6 - bit); - c17a: 0040 lsls r0, r0, #1 - c17c: 5cd3 ldrb r3, [r2, r3] - c17e: f1c0 0006 rsb r0, r0, #6 - c182: 2203 movs r2, #3 - uint8_t px_opa = (buf_u8[px] & (0xF << (4 - bit))) >> (4 - bit); - c184: 4082 lsls r2, r0 - c186: 4013 ands r3, r2 - c188: 4103 asrs r3, r0 - return opa_table[px_opa]; - c18a: 3310 adds r3, #16 - c18c: 446b add r3, sp - c18e: f813 0c10 ldrb.w r0, [r3, #-16] - c192: e7c6 b.n c122 - const uint8_t opa_table[16] = {0, 17, 34, 51, /*Opacity mapping with bpp = 4*/ - c194: 4e13 ldr r6, [pc, #76] ; (c1e4 ) - c196: 46ec mov ip, sp - c198: f106 0e10 add.w lr, r6, #16 - c19c: 6830 ldr r0, [r6, #0] - c19e: 6871 ldr r1, [r6, #4] - c1a0: 4667 mov r7, ip - c1a2: c703 stmia r7!, {r0, r1} - c1a4: 3608 adds r6, #8 - c1a6: 4576 cmp r6, lr - c1a8: 46bc mov ip, r7 - c1aa: d1f7 bne.n c19c - uint32_t px = ((dsc->header.w + 1) >> 1) * y + x; - c1ac: 6821 ldr r1, [r4, #0] - c1ae: f3c1 218a ubfx r1, r1, #10, #11 - c1b2: 3101 adds r1, #1 - c1b4: 1049 asrs r1, r1, #1 - uint8_t bit = (x & 0x1) * 4; - c1b6: f003 0001 and.w r0, r3, #1 - uint8_t px_opa = (buf_u8[px] & (0xF << (4 - bit))) >> (4 - bit); - c1ba: fb02 5201 mla r2, r2, r1, r5 - uint32_t px = ((dsc->header.w + 1) >> 1) * y + x; - c1be: 105b asrs r3, r3, #1 - uint8_t px_opa = (buf_u8[px] & (0xF << (4 - bit))) >> (4 - bit); - c1c0: 0080 lsls r0, r0, #2 - c1c2: 5cd3 ldrb r3, [r2, r3] - c1c4: f1c0 0004 rsb r0, r0, #4 - c1c8: 220f movs r2, #15 - c1ca: e7db b.n c184 - uint32_t px = dsc->header.w * y + x; - c1cc: 6821 ldr r1, [r4, #0] - c1ce: f3c1 218a ubfx r1, r1, #10, #11 - c1d2: fb12 3201 smlabb r2, r2, r1, r3 - return buf_u8[px]; - c1d6: 5ca8 ldrb r0, [r5, r2] - c1d8: e7a3 b.n c122 - if(dsc->header.cf == LV_IMG_CF_TRUE_COLOR_ALPHA) { - c1da: 20ff movs r0, #255 ; 0xff - c1dc: e7a1 b.n c122 - c1de: bf00 nop - c1e0: ffaa5500 .word 0xffaa5500 - c1e4: 00027883 .word 0x00027883 - -0000c1e8 <_lv_img_buf_transform_init>: -/** - * Initialize a descriptor to tranform an image - * @param dsc pointer to an `lv_img_transform_dsc_t` variable whose `cfg` field is initialized - */ -void _lv_img_buf_transform_init(lv_img_transform_dsc_t * dsc) -{ - c1e8: e92d 4ff8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr} - dsc->tmp.pivot_x_256 = dsc->cfg.pivot_x * 256; - c1ec: f9b0 3008 ldrsh.w r3, [r0, #8] - - int32_t angle_low = dsc->cfg.angle / 10; - int32_t angle_hight = angle_low + 1; - int32_t angle_rem = dsc->cfg.angle - (angle_low * 10); - - int32_t s1 = _lv_trigo_sin(-angle_low); - c1f0: f8df 80ec ldr.w r8, [pc, #236] ; c2e0 <_lv_img_buf_transform_init+0xf8> - dsc->tmp.pivot_x_256 = dsc->cfg.pivot_x * 256; - c1f4: 021b lsls r3, r3, #8 - c1f6: 6243 str r3, [r0, #36] ; 0x24 - dsc->tmp.pivot_y_256 = dsc->cfg.pivot_y * 256; - c1f8: f9b0 300a ldrsh.w r3, [r0, #10] - c1fc: 021b lsls r3, r3, #8 - int32_t angle_low = dsc->cfg.angle / 10; - c1fe: 260a movs r6, #10 - dsc->tmp.pivot_y_256 = dsc->cfg.pivot_y * 256; - c200: 6283 str r3, [r0, #40] ; 0x28 - int32_t angle_low = dsc->cfg.angle / 10; - c202: f9b0 300c ldrsh.w r3, [r0, #12] - c206: fb93 f5f6 sdiv r5, r3, r6 - int32_t s1 = _lv_trigo_sin(-angle_low); - c20a: fa1f f985 uxth.w r9, r5 -{ - c20e: 4604 mov r4, r0 - int32_t s1 = _lv_trigo_sin(-angle_low); - c210: f1c9 0000 rsb r0, r9, #0 - int32_t angle_rem = dsc->cfg.angle - (angle_low * 10); - c214: f64f 77f6 movw r7, #65526 ; 0xfff6 - int32_t s1 = _lv_trigo_sin(-angle_low); - c218: b200 sxth r0, r0 - int32_t angle_rem = dsc->cfg.angle - (angle_low * 10); - c21a: fb15 3707 smlabb r7, r5, r7, r3 - int32_t s1 = _lv_trigo_sin(-angle_low); - c21e: 47c0 blx r8 - int32_t angle_hight = angle_low + 1; - c220: 3501 adds r5, #1 - int32_t s2 = _lv_trigo_sin(-angle_hight); - c222: b2ad uxth r5, r5 - int32_t s1 = _lv_trigo_sin(-angle_low); - c224: 4682 mov sl, r0 - int32_t s2 = _lv_trigo_sin(-angle_hight); - c226: 4268 negs r0, r5 - c228: b200 sxth r0, r0 - c22a: 47c0 blx r8 - c22c: 4683 mov fp, r0 - - int32_t c1 = _lv_trigo_sin(-angle_low + 90); - c22e: f1c9 005a rsb r0, r9, #90 ; 0x5a - c232: b200 sxth r0, r0 - c234: 47c0 blx r8 - int32_t c2 = _lv_trigo_sin(-angle_hight + 90); - c236: f1c5 055a rsb r5, r5, #90 ; 0x5a - int32_t c1 = _lv_trigo_sin(-angle_low + 90); - c23a: 4681 mov r9, r0 - int32_t c2 = _lv_trigo_sin(-angle_hight + 90); - c23c: b228 sxth r0, r5 - c23e: 47c0 blx r8 - - dsc->tmp.sinma = (s1 * (10 - angle_rem) + s2 * angle_rem) / 10; - c240: 1bf2 subs r2, r6, r7 - c242: fb07 f30b mul.w r3, r7, fp - c246: fb02 330a mla r3, r2, sl, r3 - c24a: fb93 f3f6 sdiv r3, r3, r6 - c24e: 62e3 str r3, [r4, #44] ; 0x2c - dsc->tmp.cosma = (c1 * (10 - angle_rem) + c2 * angle_rem) / 10; - c250: fb07 f300 mul.w r3, r7, r0 - c254: fb02 3009 mla r0, r2, r9, r3 - - dsc->tmp.chroma_keyed = lv_img_cf_is_chroma_keyed(dsc->cfg.cf) ? 1 : 0; - c258: 4b1f ldr r3, [pc, #124] ; (c2d8 <_lv_img_buf_transform_init+0xf0>) - dsc->tmp.cosma = (c1 * (10 - angle_rem) + c2 * angle_rem) / 10; - c25a: fb90 f0f6 sdiv r0, r0, r6 - c25e: 6320 str r0, [r4, #48] ; 0x30 - dsc->tmp.chroma_keyed = lv_img_cf_is_chroma_keyed(dsc->cfg.cf) ? 1 : 0; - c260: 7ca0 ldrb r0, [r4, #18] - c262: 4798 blx r3 - c264: f894 3034 ldrb.w r3, [r4, #52] ; 0x34 - c268: f360 0300 bfi r3, r0, #0, #1 - c26c: f884 3034 strb.w r3, [r4, #52] ; 0x34 - dsc->tmp.has_alpha = lv_img_cf_has_alpha(dsc->cfg.cf) ? 1 : 0; - c270: 7ca0 ldrb r0, [r4, #18] - c272: 4b1a ldr r3, [pc, #104] ; (c2dc <_lv_img_buf_transform_init+0xf4>) - c274: 4798 blx r3 - if(dsc->cfg.cf == LV_IMG_CF_TRUE_COLOR || dsc->cfg.cf == LV_IMG_CF_TRUE_COLOR_ALPHA || - c276: 7ca3 ldrb r3, [r4, #18] - c278: 1f19 subs r1, r3, #4 - c27a: 2902 cmp r1, #2 - c27c: bf8c ite hi - c27e: 2100 movhi r1, #0 - c280: 2101 movls r1, #1 - dsc->tmp.has_alpha = lv_img_cf_has_alpha(dsc->cfg.cf) ? 1 : 0; - c282: 0042 lsls r2, r0, #1 - c284: ea42 0281 orr.w r2, r2, r1, lsl #2 - c288: f894 1034 ldrb.w r1, [r4, #52] ; 0x34 - c28c: f002 0206 and.w r2, r2, #6 - c290: f021 0106 bic.w r1, r1, #6 - c294: 430a orrs r2, r1 - c296: f884 2034 strb.w r2, [r4, #52] ; 0x34 - } - else { - dsc->tmp.native_color = 0; - } - - dsc->tmp.img_dsc.data = dsc->cfg.src; - c29a: 6822 ldr r2, [r4, #0] - c29c: 6222 str r2, [r4, #32] - dsc->tmp.img_dsc.header.always_zero = 0; - dsc->tmp.img_dsc.header.cf = dsc->cfg.cf; - c29e: 88a2 ldrh r2, [r4, #4] - c2a0: f003 031f and.w r3, r3, #31 - c2a4: f3c2 020a ubfx r2, r2, #0, #11 - c2a8: ea43 2382 orr.w r3, r3, r2, lsl #10 - c2ac: f9b4 2006 ldrsh.w r2, [r4, #6] - c2b0: ea43 5342 orr.w r3, r3, r2, lsl #21 - c2b4: 69a2 ldr r2, [r4, #24] - c2b6: f402 7240 and.w r2, r2, #768 ; 0x300 - c2ba: 4313 orrs r3, r2 - c2bc: 61a3 str r3, [r4, #24] - dsc->tmp.img_dsc.header.w = dsc->cfg.src_w; - dsc->tmp.img_dsc.header.h = dsc->cfg.src_h; - - dsc->tmp.zoom_inv = (256 * 256) / dsc->cfg.zoom; - c2be: 89e2 ldrh r2, [r4, #14] - c2c0: f44f 3380 mov.w r3, #65536 ; 0x10000 - c2c4: fbb3 f3f2 udiv r3, r3, r2 - c2c8: 86e3 strh r3, [r4, #54] ; 0x36 - - dsc->res.opa = LV_OPA_COVER; - c2ca: 23ff movs r3, #255 ; 0xff - c2cc: 75a3 strb r3, [r4, #22] - dsc->res.color = dsc->cfg.color; - c2ce: 8a23 ldrh r3, [r4, #16] - c2d0: 82a3 strh r3, [r4, #20] -} - c2d2: e8bd 8ff8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} - c2d6: bf00 nop - c2d8: 0000781d .word 0x0000781d - c2dc: 00007831 .word 0x00007831 - c2e0: 0000ebcd .word 0x0000ebcd - -0000c2e4 <_lv_img_buf_get_transformed_area>: - * @param zoom zoom, (256 no zoom) - * @param pivot x,y pivot coordinates of rotation - */ -void _lv_img_buf_get_transformed_area(lv_area_t * res, lv_coord_t w, lv_coord_t h, int16_t angle, uint16_t zoom, - lv_point_t * pivot) -{ - c2e4: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - c2e8: b085 sub sp, #20 - c2ea: 4607 mov r7, r0 -#if LV_USE_IMG_TRANSFORM - int32_t angle_low = angle / 10; - int32_t angle_hight = angle_low + 1; - int32_t angle_rem = angle - (angle_low * 10); - - int32_t s1 = _lv_trigo_sin(angle_low); - c2ec: f8df b174 ldr.w fp, [pc, #372] ; c464 <_lv_img_buf_get_transformed_area+0x180> -{ - c2f0: f8bd 8038 ldrh.w r8, [sp, #56] ; 0x38 - c2f4: 9102 str r1, [sp, #8] - int32_t angle_low = angle / 10; - c2f6: 260a movs r6, #10 - int32_t angle_rem = angle - (angle_low * 10); - c2f8: f64f 7af6 movw sl, #65526 ; 0xfff6 - int32_t angle_low = angle / 10; - c2fc: fb93 f9f6 sdiv r9, r3, r6 - int32_t s1 = _lv_trigo_sin(angle_low); - c300: 4648 mov r0, r9 - int32_t angle_rem = angle - (angle_low * 10); - c302: fb19 3a0a smlabb sl, r9, sl, r3 -{ - c306: 4614 mov r4, r2 - int32_t s1 = _lv_trigo_sin(angle_low); - c308: 47d8 blx fp - int32_t angle_hight = angle_low + 1; - c30a: f109 0501 add.w r5, r9, #1 - int32_t s1 = _lv_trigo_sin(angle_low); - c30e: 9003 str r0, [sp, #12] - int32_t s2 = _lv_trigo_sin(angle_hight); - c310: b228 sxth r0, r5 - c312: 47d8 blx fp - c314: 4605 mov r5, r0 - - int32_t c1 = _lv_trigo_sin(angle_low + 90); - c316: f109 005a add.w r0, r9, #90 ; 0x5a - c31a: b200 sxth r0, r0 - c31c: 47d8 blx fp - c31e: 9001 str r0, [sp, #4] - int32_t c2 = _lv_trigo_sin(angle_hight + 90); - c320: f109 005b add.w r0, r9, #91 ; 0x5b - c324: b200 sxth r0, r0 - c326: 47d8 blx fp - - int32_t sinma = (s1 * (10 - angle_rem) + s2 * angle_rem) / 10; - int32_t cosma = (c1 * (10 - angle_rem) + c2 * angle_rem) / 10; - c328: 9b01 ldr r3, [sp, #4] - int32_t sinma = (s1 * (10 - angle_rem) + s2 * angle_rem) / 10; - c32a: 9903 ldr r1, [sp, #12] - c32c: eba6 0c0a sub.w ip, r6, sl - int32_t cosma = (c1 * (10 - angle_rem) + c2 * angle_rem) / 10; - c330: fb0a f000 mul.w r0, sl, r0 - c334: fb0c 0003 mla r0, ip, r3, r0 - - lv_coord_t xt; - lv_coord_t yt; - - lv_area_t a; - a.x1 = ((-pivot->x) * zoom) >> 8; - c338: 9b0f ldr r3, [sp, #60] ; 0x3c - int32_t cosma = (c1 * (10 - angle_rem) + c2 * angle_rem) / 10; - c33a: fb90 f0f6 sdiv r0, r0, r6 - int32_t sinma = (s1 * (10 - angle_rem) + s2 * angle_rem) / 10; - c33e: fb0a f505 mul.w r5, sl, r5 - a.x1 = ((-pivot->x) * zoom) >> 8; - c342: f9b3 e000 ldrsh.w lr, [r3] - int32_t sinma = (s1 * (10 - angle_rem) + s2 * angle_rem) / 10; - c346: fb0c 5501 mla r5, ip, r1, r5 - a.y1 = ((-pivot->y) * zoom) >> 8; - c34a: f9b3 c002 ldrsh.w ip, [r3, #2] - int32_t sinma = (s1 * (10 - angle_rem) + s2 * angle_rem) / 10; - c34e: fb95 f5f6 sdiv r5, r5, r6 - a.x1 = ((-pivot->x) * zoom) >> 8; - c352: f1ce 0300 rsb r3, lr, #0 - a.y1 = ((-pivot->y) * zoom) >> 8; - c356: f1cc 0200 rsb r2, ip, #0 - a.x1 = ((-pivot->x) * zoom) >> 8; - c35a: fb08 f303 mul.w r3, r8, r3 - a.y1 = ((-pivot->y) * zoom) >> 8; - c35e: fb08 f202 mul.w r2, r8, r2 - a.x2 = ((w - pivot->x) * zoom) >> 8; - a.y2 = ((h - pivot->y) * zoom) >> 8; - - xt = a.x1; - yt = a.y1; - lt.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x; - c362: f343 230f sbfx r3, r3, #8, #16 - c366: f342 220f sbfx r2, r2, #8, #16 - c36a: fb00 f903 mul.w r9, r0, r3 - c36e: fb05 fa02 mul.w sl, r5, r2 - lt.y = ((sinma * xt + cosma * yt) >> LV_TRIGO_SHIFT) + pivot->y; - c372: 436b muls r3, r5 - c374: 4342 muls r2, r0 - c376: 1899 adds r1, r3, r2 - c378: 13c9 asrs r1, r1, #15 - c37a: fa11 f18c uxtah r1, r1, ip - c37e: b209 sxth r1, r1 - c380: 9101 str r1, [sp, #4] - a.x2 = ((w - pivot->x) * zoom) >> 8; - c382: 9902 ldr r1, [sp, #8] - c384: eba1 010e sub.w r1, r1, lr - c388: fb08 f101 mul.w r1, r8, r1 - - xt = a.x2; - yt = a.y1; - rt.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x; - c38c: f341 210f sbfx r1, r1, #8, #16 - a.y2 = ((h - pivot->y) * zoom) >> 8; - c390: eba4 040c sub.w r4, r4, ip - rt.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x; - c394: fb00 fb01 mul.w fp, r0, r1 - a.y2 = ((h - pivot->y) * zoom) >> 8; - c398: fb08 f404 mul.w r4, r8, r4 - lt.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x; - c39c: eba9 060a sub.w r6, r9, sl - rt.y = ((sinma * xt + cosma * yt) >> LV_TRIGO_SHIFT) + pivot->y; - - xt = a.x1; - yt = a.y2; - lb.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x; - c3a0: f344 240f sbfx r4, r4, #8, #16 - rt.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x; - c3a4: ebab 0a0a sub.w sl, fp, sl - rt.y = ((sinma * xt + cosma * yt) >> LV_TRIGO_SHIFT) + pivot->y; - c3a8: 4369 muls r1, r5 - lt.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x; - c3aa: 13f6 asrs r6, r6, #15 - lb.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x; - c3ac: 4365 muls r5, r4 - rt.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x; - c3ae: ea4f 3aea mov.w sl, sl, asr #15 - lb.y = ((sinma * xt + cosma * yt) >> LV_TRIGO_SHIFT) + pivot->y; - c3b2: 4344 muls r4, r0 - lt.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x; - c3b4: fa16 f68e uxtah r6, r6, lr - rt.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x; - c3b8: fa1a fa8e uxtah sl, sl, lr - lb.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x; - c3bc: eba9 0905 sub.w r9, r9, r5 - lt.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x; - c3c0: b236 sxth r6, r6 - rt.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x; - c3c2: fa0f fa8a sxth.w sl, sl - rt.y = ((sinma * xt + cosma * yt) >> LV_TRIGO_SHIFT) + pivot->y; - c3c6: 440a add r2, r1 - lb.y = ((sinma * xt + cosma * yt) >> LV_TRIGO_SHIFT) + pivot->y; - c3c8: 4423 add r3, r4 - - xt = a.x2; - yt = a.y2; - rb.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x; - rb.y = ((sinma * xt + cosma * yt) >> LV_TRIGO_SHIFT) + pivot->y; - c3ca: 4421 add r1, r4 - lb.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x; - c3cc: ea4f 39e9 mov.w r9, r9, asr #15 - - res->x1 = LV_MATH_MIN4(lb.x, lt.x, rb.x, rt.x); - c3d0: 4556 cmp r6, sl - lb.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x; - c3d2: fa19 f98e uxtah r9, r9, lr - rb.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x; - c3d6: ebab 0b05 sub.w fp, fp, r5 - rb.y = ((sinma * xt + cosma * yt) >> LV_TRIGO_SHIFT) + pivot->y; - c3da: ea4f 31e1 mov.w r1, r1, asr #15 - rt.y = ((sinma * xt + cosma * yt) >> LV_TRIGO_SHIFT) + pivot->y; - c3de: ea4f 32e2 mov.w r2, r2, asr #15 - lb.y = ((sinma * xt + cosma * yt) >> LV_TRIGO_SHIFT) + pivot->y; - c3e2: ea4f 33e3 mov.w r3, r3, asr #15 - lb.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x; - c3e6: fa0f f989 sxth.w r9, r9 - rt.y = ((sinma * xt + cosma * yt) >> LV_TRIGO_SHIFT) + pivot->y; - c3ea: fa12 f28c uxtah r2, r2, ip - lb.y = ((sinma * xt + cosma * yt) >> LV_TRIGO_SHIFT) + pivot->y; - c3ee: fa13 f38c uxtah r3, r3, ip - rb.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x; - c3f2: ea4f 3beb mov.w fp, fp, asr #15 - rb.y = ((sinma * xt + cosma * yt) >> LV_TRIGO_SHIFT) + pivot->y; - c3f6: fa11 fc8c uxtah ip, r1, ip - res->x1 = LV_MATH_MIN4(lb.x, lt.x, rb.x, rt.x); - c3fa: 4631 mov r1, r6 - c3fc: bfa8 it ge - c3fe: 4651 movge r1, sl - c400: 4549 cmp r1, r9 - rb.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x; - c402: fa1b fe8e uxtah lr, fp, lr - c406: fa0f fe8e sxth.w lr, lr - res->x1 = LV_MATH_MIN4(lb.x, lt.x, rb.x, rt.x); - c40a: bfa8 it ge - c40c: 4649 movge r1, r9 - c40e: 4571 cmp r1, lr - c410: bfa8 it ge - c412: 4671 movge r1, lr - res->x2 = LV_MATH_MAX4(lb.x, lt.x, rb.x, rt.x); - c414: 4556 cmp r6, sl - c416: bfb8 it lt - c418: 4656 movlt r6, sl - c41a: 454e cmp r6, r9 - c41c: bfb8 it lt - c41e: 464e movlt r6, r9 - res->x1 = LV_MATH_MIN4(lb.x, lt.x, rb.x, rt.x); - c420: 8039 strh r1, [r7, #0] - res->y1 = LV_MATH_MIN4(lb.y, lt.y, rb.y, rt.y); - c422: 9901 ldr r1, [sp, #4] - rt.y = ((sinma * xt + cosma * yt) >> LV_TRIGO_SHIFT) + pivot->y; - c424: b212 sxth r2, r2 - res->x2 = LV_MATH_MAX4(lb.x, lt.x, rb.x, rt.x); - c426: 4576 cmp r6, lr - c428: bfb8 it lt - c42a: 4676 movlt r6, lr - res->y1 = LV_MATH_MIN4(lb.y, lt.y, rb.y, rt.y); - c42c: 4291 cmp r1, r2 - lb.y = ((sinma * xt + cosma * yt) >> LV_TRIGO_SHIFT) + pivot->y; - c42e: b21b sxth r3, r3 - res->y1 = LV_MATH_MIN4(lb.y, lt.y, rb.y, rt.y); - c430: bfa8 it ge - c432: 4611 movge r1, r2 - c434: 4299 cmp r1, r3 - rb.y = ((sinma * xt + cosma * yt) >> LV_TRIGO_SHIFT) + pivot->y; - c436: fa0f fc8c sxth.w ip, ip - res->y1 = LV_MATH_MIN4(lb.y, lt.y, rb.y, rt.y); - c43a: bfa8 it ge - c43c: 4619 movge r1, r3 - c43e: 4561 cmp r1, ip - c440: bfa8 it ge - c442: 4661 movge r1, ip - c444: 8079 strh r1, [r7, #2] - res->y2 = LV_MATH_MAX4(lb.y, lt.y, rb.y, rt.y); - c446: 9901 ldr r1, [sp, #4] - res->x2 = LV_MATH_MAX4(lb.x, lt.x, rb.x, rt.x); - c448: 80be strh r6, [r7, #4] - res->y2 = LV_MATH_MAX4(lb.y, lt.y, rb.y, rt.y); - c44a: 428a cmp r2, r1 - c44c: bfb8 it lt - c44e: 460a movlt r2, r1 - c450: 4293 cmp r3, r2 - c452: bfb8 it lt - c454: 4613 movlt r3, r2 - c456: 4563 cmp r3, ip - c458: bfb8 it lt - c45a: 4663 movlt r3, ip - c45c: 80fb strh r3, [r7, #6] - res->x1 = 0; - res->y1 = 0; - res->x2 = w; - res->y2 = h; -#endif -} - c45e: b005 add sp, #20 - c460: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - c464: 0000ebcd .word 0x0000ebcd - -0000c468 <_lv_img_buf_transform_anti_alias>: -/** - * Continue transformation by taking the neighbors into account - * @param dsc pointer to the transformation descriptor - */ -bool _lv_img_buf_transform_anti_alias(lv_img_transform_dsc_t * dsc) -{ - c468: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - c46c: f890 2038 ldrb.w r2, [r0, #56] ; 0x38 - const uint8_t * src_u8 = dsc->cfg.src; - c470: f8d0 8000 ldr.w r8, [r0] - - /*Get the fractional part of the source pixel*/ - int xs_fract = dsc->tmp.xs & 0xff; - c474: f9b0 5038 ldrsh.w r5, [r0, #56] ; 0x38 - int ys_fract = dsc->tmp.ys & 0xff; - c478: f9b0 603a ldrsh.w r6, [r0, #58] ; 0x3a - c47c: f890 303a ldrb.w r3, [r0, #58] ; 0x3a - int32_t xn; /*x neightboor*/ - lv_opa_t xr; /*x mix ratio*/ - - if(xs_fract < 0x70) { - c480: 2a6f cmp r2, #111 ; 0x6f -{ - c482: b089 sub sp, #36 ; 0x24 - c484: 4604 mov r4, r0 - if(xs_fract < 0x70) { - c486: f200 8092 bhi.w c5ae <_lv_img_buf_transform_anti_alias+0x146> - xn = - 1; - if(dsc->tmp.xs_int + xn < 0) xn = 0; - c48a: f9b0 903c ldrsh.w r9, [r0, #60] ; 0x3c - c48e: f1b9 0f00 cmp.w r9, #0 - c492: bfd4 ite le - c494: f04f 0900 movle.w r9, #0 - c498: f04f 0901 movgt.w r9, #1 - c49c: f1c9 0900 rsb r9, r9, #0 - xr = xs_fract + 0x80; - c4a0: 3d80 subs r5, #128 ; 0x80 - } - else if(xs_fract > 0x90) { - xn = 1; - if(dsc->tmp.xs_int + xn >= dsc->cfg.src_w) xn = 0; - xr = (0xFF - xs_fract) + 0x80; - c4a2: b2ed uxtb r5, r5 - } - - int32_t yn; /*x neightboor*/ - lv_opa_t yr; /*x mix ratio*/ - - if(ys_fract < 0x70) { - c4a4: 2b6f cmp r3, #111 ; 0x6f - c4a6: f200 8097 bhi.w c5d8 <_lv_img_buf_transform_anti_alias+0x170> - yn = - 1; - if(dsc->tmp.ys_int + yn < 0) yn = 0; - c4aa: f9b4 703e ldrsh.w r7, [r4, #62] ; 0x3e - c4ae: 2f00 cmp r7, #0 - c4b0: bfd4 ite le - c4b2: 2700 movle r7, #0 - c4b4: 2701 movgt r7, #1 - c4b6: 427f negs r7, r7 - - yr = ys_fract + 0x80; - c4b8: 3e80 subs r6, #128 ; 0x80 - } - else if(ys_fract > 0x90) { - yn = 1; - if(dsc->tmp.ys_int + yn >= dsc->cfg.src_h) yn = 0; - - yr = (0xFF - ys_fract) + 0x80; - c4ba: b2f6 uxtb r6, r6 - else { - yn = 0; - yr = 0xFF; - } - - lv_color_t c00 = dsc->res.color; - c4bc: 8aa3 ldrh r3, [r4, #20] - c4be: f8ad 300a strh.w r3, [sp, #10] - lv_color_t c01; - lv_color_t c10; - lv_color_t c11; - - lv_opa_t a00 = dsc->res.opa; - c4c2: 7da3 ldrb r3, [r4, #22] - c4c4: 9301 str r3, [sp, #4] - lv_opa_t a10 = 0; - lv_opa_t a01 = 0; - lv_opa_t a11 = 0; - - if(dsc->tmp.native_color) { - c4c6: f894 3034 ldrb.w r3, [r4, #52] ; 0x34 - c4ca: 0758 lsls r0, r3, #29 - c4cc: f140 80a9 bpl.w c622 <_lv_img_buf_transform_anti_alias+0x1ba> - _lv_memcpy_small(&c01, &src_u8[dsc->tmp.pxi + dsc->tmp.px_size * xn], sizeof(lv_color_t)); - c4d0: f894 3044 ldrb.w r3, [r4, #68] ; 0x44 - c4d4: 6c21 ldr r1, [r4, #64] ; 0x40 - c4d6: f8df a248 ldr.w sl, [pc, #584] ; c720 <_lv_img_buf_transform_anti_alias+0x2b8> - c4da: fb09 1103 mla r1, r9, r3, r1 - c4de: 2202 movs r2, #2 - c4e0: 4441 add r1, r8 - c4e2: a805 add r0, sp, #20 - c4e4: 47d0 blx sl - _lv_memcpy_small(&c10, &src_u8[dsc->tmp.pxi + dsc->cfg.src_w * dsc->tmp.px_size * yn], sizeof(lv_color_t)); - c4e6: 88a2 ldrh r2, [r4, #4] - c4e8: f894 3044 ldrb.w r3, [r4, #68] ; 0x44 - c4ec: 6c21 ldr r1, [r4, #64] ; 0x40 - c4ee: fb13 f302 smulbb r3, r3, r2 - c4f2: fb07 1103 mla r1, r7, r3, r1 - c4f6: 2202 movs r2, #2 - c4f8: 4441 add r1, r8 - c4fa: a806 add r0, sp, #24 - c4fc: 47d0 blx sl - _lv_memcpy_small(&c11, &src_u8[dsc->tmp.pxi + dsc->cfg.src_w * dsc->tmp.px_size * yn + dsc->tmp.px_size * xn], - c4fe: f894 2044 ldrb.w r2, [r4, #68] ; 0x44 - c502: 88a3 ldrh r3, [r4, #4] - c504: 6c21 ldr r1, [r4, #64] ; 0x40 - c506: fb13 f302 smulbb r3, r3, r2 - c50a: fb09 1102 mla r1, r9, r2, r1 - c50e: fb07 1103 mla r1, r7, r3, r1 - c512: 4441 add r1, r8 - c514: 2202 movs r2, #2 - c516: a807 add r0, sp, #28 - c518: 47d0 blx sl - sizeof(lv_color_t)); - if(dsc->tmp.has_alpha) { - c51a: f894 3034 ldrb.w r3, [r4, #52] ; 0x34 - c51e: 0799 lsls r1, r3, #30 - c520: d46b bmi.n c5fa <_lv_img_buf_transform_anti_alias+0x192> - lv_opa_t a11 = 0; - c522: 2000 movs r0, #0 - lv_opa_t a01 = 0; - c524: 4607 mov r7, r0 - lv_opa_t a10 = 0; - c526: 4683 mov fp, r0 - } - } - - lv_opa_t xr0 = xr; - lv_opa_t xr1 = xr; - if(dsc->tmp.has_alpha) { - c528: f894 3034 ldrb.w r3, [r4, #52] ; 0x34 - c52c: 079b lsls r3, r3, #30 - c52e: f140 80c7 bpl.w c6c0 <_lv_img_buf_transform_anti_alias+0x258> - lv_opa_t a0 = (a00 * xr + (a10 * (255 - xr))) >> 8; - c532: 9a01 ldr r2, [sp, #4] - c534: f1c5 03ff rsb r3, r5, #255 ; 0xff - c538: fb12 f105 smulbb r1, r2, r5 - c53c: fb03 110b mla r1, r3, fp, r1 - lv_opa_t a1 = (a01 * xr + (a11 * (255 - xr))) >> 8; - c540: 4343 muls r3, r0 - dsc->res.opa = (a0 * yr + (a1 * (255 - yr))) >> 8; - c542: f3c1 2107 ubfx r1, r1, #8, #8 - lv_opa_t a1 = (a01 * xr + (a11 * (255 - xr))) >> 8; - c546: fb15 3307 smlabb r3, r5, r7, r3 - c54a: f3c3 2307 ubfx r3, r3, #8, #8 - dsc->res.opa = (a0 * yr + (a1 * (255 - yr))) >> 8; - c54e: f1c6 0cff rsb ip, r6, #255 ; 0xff - c552: fb06 f201 mul.w r2, r6, r1 - c556: fb03 220c mla r2, r3, ip, r2 - c55a: 1212 asrs r2, r2, #8 - - if(a0 <= LV_OPA_MIN && a1 <= LV_OPA_MIN) return false; - c55c: 2905 cmp r1, #5 - dsc->res.opa = (a0 * yr + (a1 * (255 - yr))) >> 8; - c55e: 75a2 strb r2, [r4, #22] - if(a0 <= LV_OPA_MIN && a1 <= LV_OPA_MIN) return false; - c560: f200 80aa bhi.w c6b8 <_lv_img_buf_transform_anti_alias+0x250> - c564: 2b05 cmp r3, #5 - c566: f240 80d4 bls.w c712 <_lv_img_buf_transform_anti_alias+0x2aa> - if(a0 <= LV_OPA_MIN) yr = LV_OPA_TRANSP; - c56a: 2600 movs r6, #0 - if(a1 <= LV_OPA_MIN) yr = LV_OPA_COVER; - if(a00 <= LV_OPA_MIN) xr0 = LV_OPA_TRANSP; - c56c: 9b01 ldr r3, [sp, #4] - c56e: 2b05 cmp r3, #5 - c570: bf94 ite ls - c572: 2200 movls r2, #0 - c574: 462a movhi r2, r5 - if(a10 <= LV_OPA_MIN) xr0 = LV_OPA_COVER; - c576: f1bb 0f05 cmp.w fp, #5 - c57a: bf98 it ls - c57c: 22ff movls r2, #255 ; 0xff - if(a01 <= LV_OPA_MIN) xr1 = LV_OPA_TRANSP; - c57e: 2f05 cmp r7, #5 - c580: bf98 it ls - c582: 2500 movls r5, #0 - if(a11 <= LV_OPA_MIN) xr1 = LV_OPA_COVER; - c584: 2805 cmp r0, #5 - c586: bf98 it ls - c588: 25ff movls r5, #255 ; 0xff - xr1 = xr; - dsc->res.opa = LV_OPA_COVER; - } - - lv_color_t c0; - if(xr0 == LV_OPA_TRANSP) c0 = c01; - c58a: 2a00 cmp r2, #0 - c58c: f040 809c bne.w c6c8 <_lv_img_buf_transform_anti_alias+0x260> - c590: f8bd 7014 ldrh.w r7, [sp, #20] - else if(xr0 == LV_OPA_COVER) c0 = c00; - else c0 = lv_color_mix(c00, c01, xr0); - - lv_color_t c1; - if(xr1 == LV_OPA_TRANSP) c1 = c11; - c594: 2d00 cmp r5, #0 - c596: f040 80a4 bne.w c6e2 <_lv_img_buf_transform_anti_alias+0x27a> - c59a: f8bd 101c ldrh.w r1, [sp, #28] - else if(xr1 == LV_OPA_COVER) c1 = c10; - else c1 = lv_color_mix(c10, c11, xr1); - - if(yr == LV_OPA_TRANSP) dsc->res.color = c1; - c59e: 2e00 cmp r6, #0 - c5a0: f040 80ad bne.w c6fe <_lv_img_buf_transform_anti_alias+0x296> - c5a4: 82a1 strh r1, [r4, #20] - else if(yr == LV_OPA_COVER) dsc->res.color = c0; - else dsc->res.color = lv_color_mix(c0, c1, yr); - - return true; - c5a6: 2001 movs r0, #1 -} - c5a8: b009 add sp, #36 ; 0x24 - c5aa: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - else if(xs_fract > 0x90) { - c5ae: 2a90 cmp r2, #144 ; 0x90 - c5b0: d90e bls.n c5d0 <_lv_img_buf_transform_anti_alias+0x168> - if(dsc->tmp.xs_int + xn >= dsc->cfg.src_w) xn = 0; - c5b2: f9b0 903c ldrsh.w r9, [r0, #60] ; 0x3c - c5b6: f9b0 2004 ldrsh.w r2, [r0, #4] - c5ba: f109 0901 add.w r9, r9, #1 - c5be: 4591 cmp r9, r2 - c5c0: bfac ite ge - c5c2: f04f 0900 movge.w r9, #0 - c5c6: f04f 0901 movlt.w r9, #1 - xr = (0xFF - xs_fract) + 0x80; - c5ca: f1c5 057f rsb r5, r5, #127 ; 0x7f - c5ce: e768 b.n c4a2 <_lv_img_buf_transform_anti_alias+0x3a> - xr = 0xFF; - c5d0: 25ff movs r5, #255 ; 0xff - xn = 0; - c5d2: f04f 0900 mov.w r9, #0 - c5d6: e765 b.n c4a4 <_lv_img_buf_transform_anti_alias+0x3c> - else if(ys_fract > 0x90) { - c5d8: 2b90 cmp r3, #144 ; 0x90 - c5da: d90b bls.n c5f4 <_lv_img_buf_transform_anti_alias+0x18c> - if(dsc->tmp.ys_int + yn >= dsc->cfg.src_h) yn = 0; - c5dc: f9b4 703e ldrsh.w r7, [r4, #62] ; 0x3e - c5e0: f9b4 3006 ldrsh.w r3, [r4, #6] - c5e4: 3701 adds r7, #1 - c5e6: 429f cmp r7, r3 - c5e8: bfac ite ge - c5ea: 2700 movge r7, #0 - c5ec: 2701 movlt r7, #1 - yr = (0xFF - ys_fract) + 0x80; - c5ee: f1c6 067f rsb r6, r6, #127 ; 0x7f - c5f2: e762 b.n c4ba <_lv_img_buf_transform_anti_alias+0x52> - yr = 0xFF; - c5f4: 26ff movs r6, #255 ; 0xff - yn = 0; - c5f6: 2700 movs r7, #0 - c5f8: e760 b.n c4bc <_lv_img_buf_transform_anti_alias+0x54> - a10 = src_u8[dsc->tmp.pxi + dsc->tmp.px_size * xn + dsc->tmp.px_size - 1]; - c5fa: 6c22 ldr r2, [r4, #64] ; 0x40 - c5fc: f894 1044 ldrb.w r1, [r4, #68] ; 0x44 - a01 = src_u8[dsc->tmp.pxi + dsc->cfg.src_w * dsc->tmp.px_size * yn + dsc->tmp.px_size - 1]; - c600: 88a3 ldrh r3, [r4, #4] - c602: 3a01 subs r2, #1 - c604: 440a add r2, r1 - a10 = src_u8[dsc->tmp.pxi + dsc->tmp.px_size * xn + dsc->tmp.px_size - 1]; - c606: fb09 2901 mla r9, r9, r1, r2 - a01 = src_u8[dsc->tmp.pxi + dsc->cfg.src_w * dsc->tmp.px_size * yn + dsc->tmp.px_size - 1]; - c60a: fb13 f301 smulbb r3, r3, r1 - c60e: 437b muls r3, r7 - c610: eb08 0103 add.w r1, r8, r3 - a10 = src_u8[dsc->tmp.pxi + dsc->tmp.px_size * xn + dsc->tmp.px_size - 1]; - c614: f818 b009 ldrb.w fp, [r8, r9] - a01 = src_u8[dsc->tmp.pxi + dsc->cfg.src_w * dsc->tmp.px_size * yn + dsc->tmp.px_size - 1]; - c618: 5c8f ldrb r7, [r1, r2] - a11 = src_u8[dsc->tmp.pxi + dsc->cfg.src_w * dsc->tmp.px_size * yn + dsc->tmp.px_size * xn + dsc->tmp.px_size - 1]; - c61a: 44c8 add r8, r9 - c61c: f818 0003 ldrb.w r0, [r8, r3] - c620: e782 b.n c528 <_lv_img_buf_transform_anti_alias+0xc0> - c01 = lv_img_buf_get_px_color(&dsc->tmp.img_dsc, dsc->tmp.xs_int + xn, dsc->tmp.ys_int, dsc->cfg.color); - c622: 8fa3 ldrh r3, [r4, #60] ; 0x3c - c624: f8df b0fc ldr.w fp, [pc, #252] ; c724 <_lv_img_buf_transform_anti_alias+0x2bc> - c628: f9b4 203e ldrsh.w r2, [r4, #62] ; 0x3e - c62c: f104 0a18 add.w sl, r4, #24 - c630: fa13 f189 uxtah r1, r3, r9 - c634: b209 sxth r1, r1 - c636: 8a23 ldrh r3, [r4, #16] - c638: 4650 mov r0, sl - c63a: 47d8 blx fp - c10 = lv_img_buf_get_px_color(&dsc->tmp.img_dsc, dsc->tmp.xs_int, dsc->tmp.ys_int + yn, dsc->cfg.color); - c63c: 8fe3 ldrh r3, [r4, #62] ; 0x3e - c63e: f9b4 103c ldrsh.w r1, [r4, #60] ; 0x3c - c01 = lv_img_buf_get_px_color(&dsc->tmp.img_dsc, dsc->tmp.xs_int + xn, dsc->tmp.ys_int, dsc->cfg.color); - c642: f8ad 0014 strh.w r0, [sp, #20] - c10 = lv_img_buf_get_px_color(&dsc->tmp.img_dsc, dsc->tmp.xs_int, dsc->tmp.ys_int + yn, dsc->cfg.color); - c646: fa13 f287 uxtah r2, r3, r7 - c64a: b212 sxth r2, r2 - c64c: 8a23 ldrh r3, [r4, #16] - c64e: 4650 mov r0, sl - c650: 47d8 blx fp - c11 = lv_img_buf_get_px_color(&dsc->tmp.img_dsc, dsc->tmp.xs_int + xn, dsc->tmp.ys_int + yn, dsc->cfg.color); - c652: 8fe2 ldrh r2, [r4, #62] ; 0x3e - c654: 8fa1 ldrh r1, [r4, #60] ; 0x3c - c656: 8a23 ldrh r3, [r4, #16] - c10 = lv_img_buf_get_px_color(&dsc->tmp.img_dsc, dsc->tmp.xs_int, dsc->tmp.ys_int + yn, dsc->cfg.color); - c658: f8ad 0018 strh.w r0, [sp, #24] - c01 = lv_img_buf_get_px_color(&dsc->tmp.img_dsc, dsc->tmp.xs_int + xn, dsc->tmp.ys_int, dsc->cfg.color); - c65c: fa1f f889 uxth.w r8, r9 - c10 = lv_img_buf_get_px_color(&dsc->tmp.img_dsc, dsc->tmp.xs_int, dsc->tmp.ys_int + yn, dsc->cfg.color); - c660: fa1f f987 uxth.w r9, r7 - c11 = lv_img_buf_get_px_color(&dsc->tmp.img_dsc, dsc->tmp.xs_int + xn, dsc->tmp.ys_int + yn, dsc->cfg.color); - c664: 444a add r2, r9 - c666: 4441 add r1, r8 - c668: b212 sxth r2, r2 - c66a: b209 sxth r1, r1 - c66c: 4650 mov r0, sl - c66e: 47d8 blx fp - if(dsc->tmp.has_alpha) { - c670: f894 3034 ldrb.w r3, [r4, #52] ; 0x34 - c11 = lv_img_buf_get_px_color(&dsc->tmp.img_dsc, dsc->tmp.xs_int + xn, dsc->tmp.ys_int + yn, dsc->cfg.color); - c674: f8ad 001c strh.w r0, [sp, #28] - if(dsc->tmp.has_alpha) { - c678: 079a lsls r2, r3, #30 - c67a: f57f af52 bpl.w c522 <_lv_img_buf_transform_anti_alias+0xba> - a10 = lv_img_buf_get_px_alpha(&dsc->tmp.img_dsc, dsc->tmp.xs_int + xn, dsc->tmp.ys_int); - c67e: f9b4 703c ldrsh.w r7, [r4, #60] ; 0x3c - c682: f9b4 203e ldrsh.w r2, [r4, #62] ; 0x3e - c686: 4b24 ldr r3, [pc, #144] ; (c718 <_lv_img_buf_transform_anti_alias+0x2b0>) - c688: 9203 str r2, [sp, #12] - c68a: 44b8 add r8, r7 - c68c: fa0f f888 sxth.w r8, r8 - c690: 4641 mov r1, r8 - c692: 4650 mov r0, sl - c694: 4798 blx r3 - a01 = lv_img_buf_get_px_alpha(&dsc->tmp.img_dsc, dsc->tmp.xs_int, dsc->tmp.ys_int + yn); - c696: 9a03 ldr r2, [sp, #12] - c698: 4b1f ldr r3, [pc, #124] ; (c718 <_lv_img_buf_transform_anti_alias+0x2b0>) - c69a: 4491 add r9, r2 - c69c: fa0f f289 sxth.w r2, r9 - c6a0: 4639 mov r1, r7 - a10 = lv_img_buf_get_px_alpha(&dsc->tmp.img_dsc, dsc->tmp.xs_int + xn, dsc->tmp.ys_int); - c6a2: 4683 mov fp, r0 - a01 = lv_img_buf_get_px_alpha(&dsc->tmp.img_dsc, dsc->tmp.xs_int, dsc->tmp.ys_int + yn); - c6a4: 4650 mov r0, sl - c6a6: 9203 str r2, [sp, #12] - c6a8: 4798 blx r3 - a11 = lv_img_buf_get_px_alpha(&dsc->tmp.img_dsc, dsc->tmp.xs_int + xn, dsc->tmp.ys_int + yn); - c6aa: 9a03 ldr r2, [sp, #12] - c6ac: 4b1a ldr r3, [pc, #104] ; (c718 <_lv_img_buf_transform_anti_alias+0x2b0>) - a01 = lv_img_buf_get_px_alpha(&dsc->tmp.img_dsc, dsc->tmp.xs_int, dsc->tmp.ys_int + yn); - c6ae: 4607 mov r7, r0 - a11 = lv_img_buf_get_px_alpha(&dsc->tmp.img_dsc, dsc->tmp.xs_int + xn, dsc->tmp.ys_int + yn); - c6b0: 4641 mov r1, r8 - c6b2: 4650 mov r0, sl - c6b4: 4798 blx r3 - c6b6: e737 b.n c528 <_lv_img_buf_transform_anti_alias+0xc0> - if(a1 <= LV_OPA_MIN) yr = LV_OPA_COVER; - c6b8: 2b05 cmp r3, #5 - c6ba: bf98 it ls - c6bc: 26ff movls r6, #255 ; 0xff - c6be: e755 b.n c56c <_lv_img_buf_transform_anti_alias+0x104> - dsc->res.opa = LV_OPA_COVER; - c6c0: 23ff movs r3, #255 ; 0xff - c6c2: 75a3 strb r3, [r4, #22] - xr0 = xr; - c6c4: 462a mov r2, r5 - c6c6: e760 b.n c58a <_lv_img_buf_transform_anti_alias+0x122> - else if(xr0 == LV_OPA_COVER) c0 = c00; - c6c8: 2aff cmp r2, #255 ; 0xff - c6ca: d102 bne.n c6d2 <_lv_img_buf_transform_anti_alias+0x26a> - c6cc: f8bd 700a ldrh.w r7, [sp, #10] - c6d0: e760 b.n c594 <_lv_img_buf_transform_anti_alias+0x12c> - else c0 = lv_color_mix(c00, c01, xr0); - c6d2: f8bd 1014 ldrh.w r1, [sp, #20] - c6d6: f8bd 000a ldrh.w r0, [sp, #10] - c6da: 4b10 ldr r3, [pc, #64] ; (c71c <_lv_img_buf_transform_anti_alias+0x2b4>) - c6dc: 4798 blx r3 - c6de: 4607 mov r7, r0 - c6e0: e758 b.n c594 <_lv_img_buf_transform_anti_alias+0x12c> - else if(xr1 == LV_OPA_COVER) c1 = c10; - c6e2: 2dff cmp r5, #255 ; 0xff - c6e4: d102 bne.n c6ec <_lv_img_buf_transform_anti_alias+0x284> - c6e6: f8bd 1018 ldrh.w r1, [sp, #24] - c6ea: e758 b.n c59e <_lv_img_buf_transform_anti_alias+0x136> - else c1 = lv_color_mix(c10, c11, xr1); - c6ec: f8bd 101c ldrh.w r1, [sp, #28] - c6f0: f8bd 0018 ldrh.w r0, [sp, #24] - c6f4: 4b09 ldr r3, [pc, #36] ; (c71c <_lv_img_buf_transform_anti_alias+0x2b4>) - c6f6: 462a mov r2, r5 - c6f8: 4798 blx r3 - c6fa: 4601 mov r1, r0 - c6fc: e74f b.n c59e <_lv_img_buf_transform_anti_alias+0x136> - else if(yr == LV_OPA_COVER) dsc->res.color = c0; - c6fe: 2eff cmp r6, #255 ; 0xff - c700: d101 bne.n c706 <_lv_img_buf_transform_anti_alias+0x29e> - c702: 82a7 strh r7, [r4, #20] - c704: e74f b.n c5a6 <_lv_img_buf_transform_anti_alias+0x13e> - else dsc->res.color = lv_color_mix(c0, c1, yr); - c706: 4b05 ldr r3, [pc, #20] ; (c71c <_lv_img_buf_transform_anti_alias+0x2b4>) - c708: 4632 mov r2, r6 - c70a: 4638 mov r0, r7 - c70c: 4798 blx r3 - c70e: 82a0 strh r0, [r4, #20] - c710: e749 b.n c5a6 <_lv_img_buf_transform_anti_alias+0x13e> - if(a0 <= LV_OPA_MIN && a1 <= LV_OPA_MIN) return false; - c712: 2000 movs r0, #0 - c714: e748 b.n c5a8 <_lv_img_buf_transform_anti_alias+0x140> - c716: bf00 nop - c718: 0000c0fd .word 0x0000c0fd - c71c: 0000bfa9 .word 0x0000bfa9 - c720: 0000bff9 .word 0x0000bff9 - c724: 0000c00d .word 0x0000c00d - -0000c728 <_lv_img_cache_open>: - * @param src source of the image. Path to file or pointer to an `lv_img_dsc_t` variable - * @param style style of the image - * @return pointer to the cache entry or NULL if can open the image - */ -lv_img_cache_entry_t * _lv_img_cache_open(const void * src, lv_color_t color) -{ - c728: e92d 4ff7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr} - if(entry_cnt == 0) { - c72c: f8df 8190 ldr.w r8, [pc, #400] ; c8c0 <_lv_img_cache_open+0x198> - c730: f8b8 4000 ldrh.w r4, [r8] -{ - c734: 4605 mov r5, r0 - c736: 460e mov r6, r1 - if(entry_cnt == 0) { - c738: b95c cbnz r4, c752 <_lv_img_cache_open+0x2a> - LV_LOG_WARN("lv_img_cache_open: the cache size is 0"); - c73a: 4b52 ldr r3, [pc, #328] ; (c884 <_lv_img_cache_open+0x15c>) - c73c: 9300 str r3, [sp, #0] - c73e: 4952 ldr r1, [pc, #328] ; (c888 <_lv_img_cache_open+0x160>) - c740: 4b52 ldr r3, [pc, #328] ; (c88c <_lv_img_cache_open+0x164>) - c742: 4d53 ldr r5, [pc, #332] ; (c890 <_lv_img_cache_open+0x168>) - c744: 2244 movs r2, #68 ; 0x44 - c746: 2002 movs r0, #2 - c748: 47a8 blx r5 - - if(cached_src->dec_dsc.time_to_open == 0) cached_src->dec_dsc.time_to_open = 1; - } - - return cached_src; -} - c74a: 4620 mov r0, r4 - c74c: b003 add sp, #12 - c74e: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - lv_img_cache_entry_t * cache = LV_GC_ROOT(_lv_img_cache_array); - c752: 4b50 ldr r3, [pc, #320] ; (c894 <_lv_img_cache_open+0x16c>) - if(cache[i].life > INT32_MIN + LV_IMG_CACHE_AGING) { - c754: 4850 ldr r0, [pc, #320] ; (c898 <_lv_img_cache_open+0x170>) - lv_img_cache_entry_t * cache = LV_GC_ROOT(_lv_img_cache_array); - c756: 681f ldr r7, [r3, #0] - for(i = 0; i < entry_cnt; i++) { - c758: 2300 movs r3, #0 - c75a: 463a mov r2, r7 - if(cache[i].life > INT32_MIN + LV_IMG_CACHE_AGING) { - c75c: 6a11 ldr r1, [r2, #32] - for(i = 0; i < entry_cnt; i++) { - c75e: 3301 adds r3, #1 - if(cache[i].life > INT32_MIN + LV_IMG_CACHE_AGING) { - c760: 4281 cmp r1, r0 - cache[i].life -= LV_IMG_CACHE_AGING; - c762: bfa8 it ge - c764: f101 31ff addge.w r1, r1, #4294967295 ; 0xffffffff - for(i = 0; i < entry_cnt; i++) { - c768: b29b uxth r3, r3 - cache[i].life -= LV_IMG_CACHE_AGING; - c76a: bfa8 it ge - c76c: 6211 strge r1, [r2, #32] - for(i = 0; i < entry_cnt; i++) { - c76e: 429c cmp r4, r3 - c770: f102 0224 add.w r2, r2, #36 ; 0x24 - c774: d1f2 bne.n c75c <_lv_img_cache_open+0x34> - if(strcmp(cache[i].dec_dsc.src, src) == 0) match = true; - c776: f8df b14c ldr.w fp, [pc, #332] ; c8c4 <_lv_img_cache_open+0x19c> - c77a: f04f 0a00 mov.w sl, #0 - lv_img_src_t src_type = lv_img_src_get_type(cache[i].dec_dsc.src); - c77e: f04f 0924 mov.w r9, #36 ; 0x24 - for(i = 0; i < entry_cnt; i++) { - c782: f8b8 1000 ldrh.w r1, [r8] - c786: fa1f f28a uxth.w r2, sl - c78a: 4291 cmp r1, r2 - c78c: d839 bhi.n c802 <_lv_img_cache_open+0xda> - c78e: f107 0224 add.w r2, r7, #36 ; 0x24 - cached_src = &cache[0]; - c792: 463c mov r4, r7 - for(i = 1; i < entry_cnt; i++) { - c794: 2301 movs r3, #1 - c796: 4299 cmp r1, r3 - c798: d856 bhi.n c848 <_lv_img_cache_open+0x120> - if(cached_src->dec_dsc.src) { - c79a: 6863 ldr r3, [r4, #4] - c79c: f8df 80f0 ldr.w r8, [pc, #240] ; c890 <_lv_img_cache_open+0x168> - c7a0: 2b00 cmp r3, #0 - c7a2: d05a beq.n c85a <_lv_img_cache_open+0x132> - lv_img_decoder_close(&cached_src->dec_dsc); - c7a4: 4b3d ldr r3, [pc, #244] ; (c89c <_lv_img_cache_open+0x174>) - c7a6: 4620 mov r0, r4 - c7a8: 4798 blx r3 - LV_LOG_INFO("image draw: cache miss, close and reuse an entry"); - c7aa: 4b3d ldr r3, [pc, #244] ; (c8a0 <_lv_img_cache_open+0x178>) - c7ac: 9300 str r3, [sp, #0] - c7ae: 4b37 ldr r3, [pc, #220] ; (c88c <_lv_img_cache_open+0x164>) - c7b0: 2277 movs r2, #119 ; 0x77 - LV_LOG_INFO("image draw: cache miss, cached to an empty entry"); - c7b2: 4935 ldr r1, [pc, #212] ; (c888 <_lv_img_cache_open+0x160>) - c7b4: 2001 movs r0, #1 - c7b6: 47c0 blx r8 - t_start = lv_tick_get(); - c7b8: 4b3a ldr r3, [pc, #232] ; (c8a4 <_lv_img_cache_open+0x17c>) - c7ba: 4798 blx r3 - cached_src->dec_dsc.time_to_open = 0; - c7bc: f04f 0900 mov.w r9, #0 - lv_res_t open_res = lv_img_decoder_open(&cached_src->dec_dsc, src, color); - c7c0: 4629 mov r1, r5 - c7c2: 4b39 ldr r3, [pc, #228] ; (c8a8 <_lv_img_cache_open+0x180>) - cached_src->dec_dsc.time_to_open = 0; - c7c4: f8c4 9014 str.w r9, [r4, #20] - t_start = lv_tick_get(); - c7c8: 4607 mov r7, r0 - lv_res_t open_res = lv_img_decoder_open(&cached_src->dec_dsc, src, color); - c7ca: 4632 mov r2, r6 - c7cc: 4620 mov r0, r4 - c7ce: 4798 blx r3 - if(open_res == LV_RES_INV) { - c7d0: 4605 mov r5, r0 - c7d2: 2800 cmp r0, #0 - c7d4: d146 bne.n c864 <_lv_img_cache_open+0x13c> - LV_LOG_WARN("Image draw cannot open the image resource"); - c7d6: 4b35 ldr r3, [pc, #212] ; (c8ac <_lv_img_cache_open+0x184>) - c7d8: 492b ldr r1, [pc, #172] ; (c888 <_lv_img_cache_open+0x160>) - c7da: 9300 str r3, [sp, #0] - c7dc: 2283 movs r2, #131 ; 0x83 - c7de: 4b2b ldr r3, [pc, #172] ; (c88c <_lv_img_cache_open+0x164>) - _lv_memset_00(&cached_src->dec_dsc, sizeof(lv_img_decoder_dsc_t)); - c7e0: 4e33 ldr r6, [pc, #204] ; (c8b0 <_lv_img_cache_open+0x188>) - LV_LOG_WARN("Image draw cannot open the image resource"); - c7e2: 2002 movs r0, #2 - c7e4: 47c0 blx r8 - lv_img_decoder_close(&cached_src->dec_dsc); - c7e6: 4b2d ldr r3, [pc, #180] ; (c89c <_lv_img_cache_open+0x174>) - c7e8: 4620 mov r0, r4 - c7ea: 4798 blx r3 - _lv_memset_00(&cached_src->dec_dsc, sizeof(lv_img_decoder_dsc_t)); - c7ec: 4620 mov r0, r4 - c7ee: 2120 movs r1, #32 - c7f0: 47b0 blx r6 - _lv_memset_00(cached_src, sizeof(lv_img_cache_entry_t)); - c7f2: 4620 mov r0, r4 - c7f4: 2124 movs r1, #36 ; 0x24 - c7f6: 47b0 blx r6 - cached_src->life = INT32_MIN; /*Make the empty entry very "weak" to force its use */ - c7f8: f04f 4300 mov.w r3, #2147483648 ; 0x80000000 - c7fc: 6223 str r3, [r4, #32] - return NULL; - c7fe: 462c mov r4, r5 - c800: e7a3 b.n c74a <_lv_img_cache_open+0x22> - lv_img_src_t src_type = lv_img_src_get_type(cache[i].dec_dsc.src); - c802: fa1f f48a uxth.w r4, sl - c806: fb09 7404 mla r4, r9, r4, r7 - c80a: 4b2a ldr r3, [pc, #168] ; (c8b4 <_lv_img_cache_open+0x18c>) - c80c: 6860 ldr r0, [r4, #4] - c80e: 4798 blx r3 - if(src_type == LV_IMG_SRC_VARIABLE) { - c810: b980 cbnz r0, c834 <_lv_img_cache_open+0x10c> - if(cache[i].dec_dsc.src == src && cache[i].dec_dsc.color.full == color.full) match = true; - c812: 6862 ldr r2, [r4, #4] - c814: 42aa cmp r2, r5 - c816: d114 bne.n c842 <_lv_img_cache_open+0x11a> - c818: 8921 ldrh r1, [r4, #8] - c81a: b2b2 uxth r2, r6 - c81c: 4291 cmp r1, r2 - c81e: d110 bne.n c842 <_lv_img_cache_open+0x11a> - cached_src->life += cached_src->dec_dsc.time_to_open * LV_IMG_CACHE_LIFE_GAIN; - c820: 6a23 ldr r3, [r4, #32] - c822: 6962 ldr r2, [r4, #20] - c824: 4413 add r3, r2 - c826: f5b3 7f7a cmp.w r3, #1000 ; 0x3e8 - c82a: bfa8 it ge - c82c: f44f 737a movge.w r3, #1000 ; 0x3e8 - c830: 6223 str r3, [r4, #32] - if(cached_src == NULL) { - c832: e78a b.n c74a <_lv_img_cache_open+0x22> - else if(src_type == LV_IMG_SRC_FILE) { - c834: 2801 cmp r0, #1 - c836: d104 bne.n c842 <_lv_img_cache_open+0x11a> - if(strcmp(cache[i].dec_dsc.src, src) == 0) match = true; - c838: 6860 ldr r0, [r4, #4] - c83a: 4629 mov r1, r5 - c83c: 47d8 blx fp - c83e: 2800 cmp r0, #0 - c840: d0ee beq.n c820 <_lv_img_cache_open+0xf8> - for(i = 0; i < entry_cnt; i++) { - c842: f10a 0a01 add.w sl, sl, #1 - c846: e79c b.n c782 <_lv_img_cache_open+0x5a> - if(cache[i].life < cached_src->life) { - c848: 6a17 ldr r7, [r2, #32] - c84a: 6a20 ldr r0, [r4, #32] - for(i = 1; i < entry_cnt; i++) { - c84c: 3301 adds r3, #1 - if(cache[i].life < cached_src->life) { - c84e: 4287 cmp r7, r0 - c850: bfb8 it lt - c852: 4614 movlt r4, r2 - for(i = 1; i < entry_cnt; i++) { - c854: b29b uxth r3, r3 - c856: 3224 adds r2, #36 ; 0x24 - c858: e79d b.n c796 <_lv_img_cache_open+0x6e> - LV_LOG_INFO("image draw: cache miss, cached to an empty entry"); - c85a: 4b17 ldr r3, [pc, #92] ; (c8b8 <_lv_img_cache_open+0x190>) - c85c: 9300 str r3, [sp, #0] - c85e: 227a movs r2, #122 ; 0x7a - c860: 4b0a ldr r3, [pc, #40] ; (c88c <_lv_img_cache_open+0x164>) - c862: e7a6 b.n c7b2 <_lv_img_cache_open+0x8a> - if(cached_src->dec_dsc.time_to_open == 0) { - c864: 6963 ldr r3, [r4, #20] - cached_src->life = 0; - c866: f8c4 9020 str.w r9, [r4, #32] - if(cached_src->dec_dsc.time_to_open == 0) { - c86a: 2b00 cmp r3, #0 - c86c: f47f af6d bne.w c74a <_lv_img_cache_open+0x22> - cached_src->dec_dsc.time_to_open = lv_tick_elaps(t_start); - c870: 4b12 ldr r3, [pc, #72] ; (c8bc <_lv_img_cache_open+0x194>) - c872: 4638 mov r0, r7 - c874: 4798 blx r3 - if(cached_src->dec_dsc.time_to_open == 0) cached_src->dec_dsc.time_to_open = 1; - c876: b108 cbz r0, c87c <_lv_img_cache_open+0x154> - cached_src->dec_dsc.time_to_open = lv_tick_elaps(t_start); - c878: 6160 str r0, [r4, #20] - c87a: e766 b.n c74a <_lv_img_cache_open+0x22> - if(cached_src->dec_dsc.time_to_open == 0) cached_src->dec_dsc.time_to_open = 1; - c87c: 2301 movs r3, #1 - c87e: 6163 str r3, [r4, #20] - c880: e763 b.n c74a <_lv_img_cache_open+0x22> - c882: bf00 nop - c884: 000278df .word 0x000278df - c888: 000278aa .word 0x000278aa - c88c: 00027992 .word 0x00027992 - c890: 0000eb79 .word 0x0000eb79 - c894: 2000363c .word 0x2000363c - c898: 80000002 .word 0x80000002 - c89c: 0000d2d1 .word 0x0000d2d1 - c8a0: 00027906 .word 0x00027906 - c8a4: 0000dccd .word 0x0000dccd - c8a8: 0000d201 .word 0x0000d201 - c8ac: 00027968 .word 0x00027968 - c8b0: 0000f2a9 .word 0x0000f2a9 - c8b4: 00007a89 .word 0x00007a89 - c8b8: 00027937 .word 0x00027937 - c8bc: 0000dce1 .word 0x0000dce1 - c8c0: 200035a0 .word 0x200035a0 - c8c4: 000170c9 .word 0x000170c9 - -0000c8c8 : - * @param src an image source path to a file or pointer to an `lv_img_dsc_t` variable. - */ -void lv_img_cache_invalidate_src(const void * src) -{ - - lv_img_cache_entry_t * cache = LV_GC_ROOT(_lv_img_cache_array); - c8c8: 4b14 ldr r3, [pc, #80] ; (c91c ) -{ - c8ca: e92d 43f7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, lr} - lv_img_cache_entry_t * cache = LV_GC_ROOT(_lv_img_cache_array); - c8ce: 681f ldr r7, [r3, #0] - - uint16_t i; - for(i = 0; i < entry_cnt; i++) { - c8d0: 4e13 ldr r6, [pc, #76] ; (c920 ) - if(cache[i].dec_dsc.src == src || src == NULL) { - if(cache[i].dec_dsc.src != NULL) { - lv_img_decoder_close(&cache[i].dec_dsc); - } - - _lv_memset_00(&cache[i].dec_dsc, sizeof(lv_img_decoder_dsc_t)); - c8d2: 4d14 ldr r5, [pc, #80] ; (c924 ) - lv_img_decoder_close(&cache[i].dec_dsc); - c8d4: f8df 8050 ldr.w r8, [pc, #80] ; c928 -{ - c8d8: 4604 mov r4, r0 - for(i = 0; i < entry_cnt; i++) { - c8da: f04f 0900 mov.w r9, #0 - c8de: 8832 ldrh r2, [r6, #0] - c8e0: fa1f f389 uxth.w r3, r9 - c8e4: 429a cmp r2, r3 - c8e6: d802 bhi.n c8ee - _lv_memset_00(&cache[i], sizeof(lv_img_cache_entry_t)); - } - } -} - c8e8: b003 add sp, #12 - c8ea: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} - if(cache[i].dec_dsc.src == src || src == NULL) { - c8ee: fa1f f389 uxth.w r3, r9 - c8f2: 2224 movs r2, #36 ; 0x24 - c8f4: fb02 7003 mla r0, r2, r3, r7 - c8f8: 6843 ldr r3, [r0, #4] - c8fa: 42a3 cmp r3, r4 - c8fc: d000 beq.n c900 - c8fe: b94c cbnz r4, c914 - if(cache[i].dec_dsc.src != NULL) { - c900: b113 cbz r3, c908 - lv_img_decoder_close(&cache[i].dec_dsc); - c902: 9001 str r0, [sp, #4] - c904: 47c0 blx r8 - c906: 9801 ldr r0, [sp, #4] - _lv_memset_00(&cache[i].dec_dsc, sizeof(lv_img_decoder_dsc_t)); - c908: 9001 str r0, [sp, #4] - c90a: 2120 movs r1, #32 - c90c: 47a8 blx r5 - _lv_memset_00(&cache[i], sizeof(lv_img_cache_entry_t)); - c90e: 9801 ldr r0, [sp, #4] - c910: 2124 movs r1, #36 ; 0x24 - c912: 47a8 blx r5 - for(i = 0; i < entry_cnt; i++) { - c914: f109 0901 add.w r9, r9, #1 - c918: e7e1 b.n c8de - c91a: bf00 nop - c91c: 2000363c .word 0x2000363c - c920: 200035a0 .word 0x200035a0 - c924: 0000f2a9 .word 0x0000f2a9 - c928: 0000d2d1 .word 0x0000d2d1 - -0000c92c : -{ - c92c: e92d 43f7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, lr} - if(LV_GC_ROOT(_lv_img_cache_array) != NULL) { - c930: 4c1f ldr r4, [pc, #124] ; (c9b0 ) - c932: 6823 ldr r3, [r4, #0] -{ - c934: 4605 mov r5, r0 - if(LV_GC_ROOT(_lv_img_cache_array) != NULL) { - c936: b12b cbz r3, c944 - lv_img_cache_invalidate_src(NULL); - c938: 4b1e ldr r3, [pc, #120] ; (c9b4 ) - c93a: 2000 movs r0, #0 - c93c: 4798 blx r3 - lv_mem_free(LV_GC_ROOT(_lv_img_cache_array)); - c93e: 6820 ldr r0, [r4, #0] - c940: 4b1d ldr r3, [pc, #116] ; (c9b8 ) - c942: 4798 blx r3 - LV_GC_ROOT(_lv_img_cache_array) = lv_mem_alloc(sizeof(lv_img_cache_entry_t) * new_entry_cnt); - c944: 2724 movs r7, #36 ; 0x24 - c946: 4b1d ldr r3, [pc, #116] ; (c9bc ) - c948: fb07 f005 mul.w r0, r7, r5 - c94c: 4798 blx r3 - LV_ASSERT_MEM(LV_GC_ROOT(_lv_img_cache_array)); - c94e: 4b1c ldr r3, [pc, #112] ; (c9c0 ) - LV_GC_ROOT(_lv_img_cache_array) = lv_mem_alloc(sizeof(lv_img_cache_entry_t) * new_entry_cnt); - c950: 6020 str r0, [r4, #0] - LV_ASSERT_MEM(LV_GC_ROOT(_lv_img_cache_array)); - c952: 4798 blx r3 - c954: 4606 mov r6, r0 - c956: b960 cbnz r0, c972 - c958: 4b1a ldr r3, [pc, #104] ; (c9c4 ) - c95a: 491b ldr r1, [pc, #108] ; (c9c8 ) - c95c: 9300 str r3, [sp, #0] - c95e: 22a8 movs r2, #168 ; 0xa8 - c960: 2003 movs r0, #3 - c962: 4d1a ldr r5, [pc, #104] ; (c9cc ) - c964: 47a8 blx r5 - c966: 6822 ldr r2, [r4, #0] - c968: 4819 ldr r0, [pc, #100] ; (c9d0 ) - c96a: 491a ldr r1, [pc, #104] ; (c9d4 ) - c96c: 4633 mov r3, r6 - c96e: 4788 blx r1 - c970: e7fe b.n c970 - if(LV_GC_ROOT(_lv_img_cache_array) == NULL) { - c972: 6823 ldr r3, [r4, #0] - c974: f8df 8060 ldr.w r8, [pc, #96] ; c9d8 - c978: b923 cbnz r3, c984 - entry_cnt = 0; - c97a: f8a8 3000 strh.w r3, [r8] -} - c97e: b003 add sp, #12 - c980: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} - _lv_memset_00(&LV_GC_ROOT(_lv_img_cache_array)[i].dec_dsc, sizeof(lv_img_decoder_dsc_t)); - c984: f8df 9054 ldr.w r9, [pc, #84] ; c9dc - entry_cnt = new_entry_cnt; - c988: f8a8 5000 strh.w r5, [r8] - for(i = 0; i < entry_cnt; i++) { - c98c: 2500 movs r5, #0 - c98e: f8b8 2000 ldrh.w r2, [r8] - c992: b2ab uxth r3, r5 - c994: 429a cmp r2, r3 - c996: d9f2 bls.n c97e - _lv_memset_00(&LV_GC_ROOT(_lv_img_cache_array)[i].dec_dsc, sizeof(lv_img_decoder_dsc_t)); - c998: 6820 ldr r0, [r4, #0] - c99a: b2ae uxth r6, r5 - c99c: 437e muls r6, r7 - c99e: 2120 movs r1, #32 - c9a0: 4430 add r0, r6 - c9a2: 47c8 blx r9 - _lv_memset_00(&LV_GC_ROOT(_lv_img_cache_array)[i], sizeof(lv_img_cache_entry_t)); - c9a4: 6820 ldr r0, [r4, #0] - c9a6: 2124 movs r1, #36 ; 0x24 - c9a8: 4430 add r0, r6 - c9aa: 47c8 blx r9 - for(i = 0; i < entry_cnt; i++) { - c9ac: 3501 adds r5, #1 - c9ae: e7ee b.n c98e - c9b0: 2000363c .word 0x2000363c - c9b4: 0000c8c9 .word 0x0000c8c9 - c9b8: 0000ed75 .word 0x0000ed75 - c9bc: 0000ecbd .word 0x0000ecbd - c9c0: 00001a65 .word 0x00001a65 - c9c4: 000279a5 .word 0x000279a5 - c9c8: 000278aa .word 0x000278aa - c9cc: 0000eb79 .word 0x0000eb79 - c9d0: 00026842 .word 0x00026842 - c9d4: 00001a6d .word 0x00001a6d - c9d8: 200035a0 .word 0x200035a0 - c9dc: 0000f2a9 .word 0x0000f2a9 - -0000c9e0 : - * @param src the image source: pointer to an `lv_img_dsc_t` variable, a file path or a symbol - * @param header store the image data here - * @return LV_RES_OK: the info is successfully stored in `header`; LV_RES_INV: unknown format or other error. - */ -lv_res_t lv_img_decoder_built_in_info(lv_img_decoder_t * decoder, const void * src, lv_img_header_t * header) -{ - c9e0: b570 push {r4, r5, r6, lr} - (void)decoder; /*Unused*/ - - lv_img_src_t src_type = lv_img_src_get_type(src); - c9e2: 4b2c ldr r3, [pc, #176] ; (ca94 ) -{ - c9e4: b086 sub sp, #24 - lv_img_src_t src_type = lv_img_src_get_type(src); - c9e6: 4608 mov r0, r1 -{ - c9e8: 460e mov r6, r1 - c9ea: 4615 mov r5, r2 - lv_img_src_t src_type = lv_img_src_get_type(src); - c9ec: 4798 blx r3 - if(src_type == LV_IMG_SRC_VARIABLE) { - c9ee: 4604 mov r4, r0 - c9f0: b9d8 cbnz r0, ca2a - lv_img_cf_t cf = ((lv_img_dsc_t *)src)->header.cf; - c9f2: 7833 ldrb r3, [r6, #0] - c9f4: f3c3 0304 ubfx r3, r3, #0, #5 - if(cf < CF_BUILT_IN_FIRST || cf > CF_BUILT_IN_LAST) return LV_RES_INV; - c9f8: 3b04 subs r3, #4 - c9fa: b2db uxtb r3, r3 - c9fc: 2b0a cmp r3, #10 - c9fe: d811 bhi.n ca24 - - header->w = ((lv_img_dsc_t *)src)->header.w; - header->h = ((lv_img_dsc_t *)src)->header.h; - ca00: 8873 ldrh r3, [r6, #2] - ca02: 886a ldrh r2, [r5, #2] - lv_img_cf_t cf = ((lv_img_dsc_t *)src)->header.cf; - ca04: 6831 ldr r1, [r6, #0] - header->h = ((lv_img_dsc_t *)src)->header.h; - ca06: f3c3 134a ubfx r3, r3, #5, #11 - ca0a: f363 124f bfi r2, r3, #5, #11 - ca0e: 806a strh r2, [r5, #2] - header->cf = ((lv_img_dsc_t *)src)->header.cf; - ca10: 682b ldr r3, [r5, #0] - ca12: 4a21 ldr r2, [pc, #132] ; (ca98 ) - ca14: f023 131f bic.w r3, r3, #2031647 ; 0x1f001f - ca18: f423 437c bic.w r3, r3, #64512 ; 0xfc00 - ca1c: 400a ands r2, r1 - * function*/ - header->w = 1; - header->h = 1; - /* Symbols always have transparent parts. Important because of cover check in the design - * function. The actual value doesn't matter because lv_draw_label will draw it*/ - header->cf = LV_IMG_CF_ALPHA_1BIT; - ca1e: 4313 orrs r3, r2 - ca20: 602b str r3, [r5, #0] - } - else { - LV_LOG_WARN("Image get info found unknown src type"); - return LV_RES_INV; - } - return LV_RES_OK; - ca22: 2401 movs r4, #1 -} - ca24: 4620 mov r0, r4 - ca26: b006 add sp, #24 - ca28: bd70 pop {r4, r5, r6, pc} - else if(src_type == LV_IMG_SRC_FILE) { - ca2a: 2801 cmp r0, #1 - ca2c: d125 bne.n ca7a - res = lv_fs_open(&file, src, LV_FS_MODE_RD); - ca2e: 4b1b ldr r3, [pc, #108] ; (ca9c ) - ca30: 2202 movs r2, #2 - ca32: 4631 mov r1, r6 - ca34: a804 add r0, sp, #16 - ca36: 4798 blx r3 - if(res == LV_FS_RES_OK) { - ca38: b9b8 cbnz r0, ca6a - res = lv_fs_read(&file, header, sizeof(lv_img_header_t), &rn); - ca3a: 4e19 ldr r6, [pc, #100] ; (caa0 ) - ca3c: ab03 add r3, sp, #12 - ca3e: 2204 movs r2, #4 - ca40: 4629 mov r1, r5 - ca42: a804 add r0, sp, #16 - ca44: 47b0 blx r6 - lv_fs_close(&file); - ca46: 4b17 ldr r3, [pc, #92] ; (caa4 ) - res = lv_fs_read(&file, header, sizeof(lv_img_header_t), &rn); - ca48: 4606 mov r6, r0 - lv_fs_close(&file); - ca4a: a804 add r0, sp, #16 - ca4c: 4798 blx r3 - if(res != LV_FS_RES_OK || rn != sizeof(lv_img_header_t)) { - ca4e: b916 cbnz r6, ca56 - ca50: 9b03 ldr r3, [sp, #12] - ca52: 2b04 cmp r3, #4 - ca54: d009 beq.n ca6a - LV_LOG_WARN("Image get info get read file header"); - ca56: 4b14 ldr r3, [pc, #80] ; (caa8 ) - ca58: 9300 str r3, [sp, #0] - ca5a: 4b14 ldr r3, [pc, #80] ; (caac ) - ca5c: f240 1221 movw r2, #289 ; 0x121 - LV_LOG_WARN("Image get info found unknown src type"); - ca60: 4913 ldr r1, [pc, #76] ; (cab0 ) - ca62: 4c14 ldr r4, [pc, #80] ; (cab4 ) - ca64: 2002 movs r0, #2 - ca66: 47a0 blx r4 - ca68: e005 b.n ca76 - if(header->cf < CF_BUILT_IN_FIRST || header->cf > CF_BUILT_IN_LAST) return LV_RES_INV; - ca6a: 782b ldrb r3, [r5, #0] - ca6c: 331c adds r3, #28 - ca6e: f003 031f and.w r3, r3, #31 - ca72: 2b0a cmp r3, #10 - ca74: d9d6 bls.n ca24 - return LV_RES_INV; - ca76: 2400 movs r4, #0 - ca78: e7d4 b.n ca24 - else if(src_type == LV_IMG_SRC_SYMBOL) { - ca7a: 2802 cmp r0, #2 - ca7c: d104 bne.n ca88 - header->cf = LV_IMG_CF_ALPHA_1BIT; - ca7e: 682b ldr r3, [r5, #0] - ca80: f403 7278 and.w r2, r3, #992 ; 0x3e0 - ca84: 4b0c ldr r3, [pc, #48] ; (cab8 ) - ca86: e7ca b.n ca1e - LV_LOG_WARN("Image get info found unknown src type"); - ca88: 4b0c ldr r3, [pc, #48] ; (cabc ) - ca8a: 9300 str r3, [sp, #0] - ca8c: f44f 729a mov.w r2, #308 ; 0x134 - ca90: 4b06 ldr r3, [pc, #24] ; (caac ) - ca92: e7e5 b.n ca60 - ca94: 00007a89 .word 0x00007a89 - ca98: 001ffc1f .word 0x001ffc1f - ca9c: 0000e725 .word 0x0000e725 - caa0: 0000e69d .word 0x0000e69d - caa4: 0000e66d .word 0x0000e66d - caa8: 000279f2 .word 0x000279f2 - caac: 00027b60 .word 0x00027b60 - cab0: 000279bb .word 0x000279bb - cab4: 0000eb79 .word 0x0000eb79 - cab8: 0020040b .word 0x0020040b - cabc: 00027a16 .word 0x00027a16 - -0000cac0 : - * Close the pending decoding. Free resources etc. - * @param decoder pointer to the decoder the function associated with - * @param dsc pointer to decoder descriptor - */ -void lv_img_decoder_built_in_close(lv_img_decoder_t * decoder, lv_img_decoder_dsc_t * dsc) -{ - cac0: b570 push {r4, r5, r6, lr} - (void)decoder; /*Unused*/ - - lv_img_decoder_built_in_data_t * user_data = dsc->user_data; - cac2: 69cc ldr r4, [r1, #28] -{ - cac4: 460d mov r5, r1 - if(user_data) { - cac6: b184 cbz r4, caea -#if LV_USE_FILESYSTEM - if(user_data->f) { - cac8: 6820 ldr r0, [r4, #0] - caca: 4e08 ldr r6, [pc, #32] ; (caec ) - cacc: b118 cbz r0, cad6 - lv_fs_close(user_data->f); - cace: 4b08 ldr r3, [pc, #32] ; (caf0 ) - cad0: 4798 blx r3 - lv_mem_free(user_data->f); - cad2: 6820 ldr r0, [r4, #0] - cad4: 47b0 blx r6 - } -#endif - if(user_data->palette) lv_mem_free(user_data->palette); - cad6: 6860 ldr r0, [r4, #4] - cad8: b100 cbz r0, cadc - cada: 47b0 blx r6 - if(user_data->opa) lv_mem_free(user_data->opa); - cadc: 68a0 ldr r0, [r4, #8] - cade: b100 cbz r0, cae2 - cae0: 47b0 blx r6 - - lv_mem_free(user_data); - cae2: 4620 mov r0, r4 - cae4: 47b0 blx r6 - - dsc->user_data = NULL; - cae6: 2300 movs r3, #0 - cae8: 61eb str r3, [r5, #28] - } -} - caea: bd70 pop {r4, r5, r6, pc} - caec: 0000ed75 .word 0x0000ed75 - caf0: 0000e66d .word 0x0000e66d - -0000caf4 : -{ - caf4: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - if(dsc->header.cf == LV_IMG_CF_TRUE_COLOR || dsc->header.cf == LV_IMG_CF_TRUE_COLOR_ALPHA || - caf8: 7b08 ldrb r0, [r1, #12] -{ - cafa: b08d sub sp, #52 ; 0x34 - cafc: 4698 mov r8, r3 - if(dsc->header.cf == LV_IMG_CF_TRUE_COLOR || dsc->header.cf == LV_IMG_CF_TRUE_COLOR_ALPHA || - cafe: f000 031e and.w r3, r0, #30 - cb02: 2b04 cmp r3, #4 -{ - cb04: f9bd a058 ldrsh.w sl, [sp, #88] ; 0x58 - cb08: 9e17 ldr r6, [sp, #92] ; 0x5c - cb0a: 460d mov r5, r1 - cb0c: 4614 mov r4, r2 - if(dsc->header.cf == LV_IMG_CF_TRUE_COLOR || dsc->header.cf == LV_IMG_CF_TRUE_COLOR_ALPHA || - cb0e: d003 beq.n cb18 - dsc->header.cf == LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED) { - cb10: f000 031f and.w r3, r0, #31 - if(dsc->header.cf == LV_IMG_CF_TRUE_COLOR || dsc->header.cf == LV_IMG_CF_TRUE_COLOR_ALPHA || - cb14: 2b06 cmp r3, #6 - cb16: d13e bne.n cb96 - if(dsc->src_type == LV_IMG_SRC_FILE) { - cb18: f895 900a ldrb.w r9, [r5, #10] - cb1c: f1b9 0f01 cmp.w r9, #1 - cb20: d136 bne.n cb90 - lv_coord_t len, uint8_t * buf) -{ -#if LV_USE_FILESYSTEM - lv_img_decoder_built_in_data_t * user_data = dsc->user_data; - lv_fs_res_t res; - uint8_t px_size = lv_img_cf_get_px_size(dsc->header.cf); - cb22: 4baf ldr r3, [pc, #700] ; (cde0 ) - lv_img_decoder_built_in_data_t * user_data = dsc->user_data; - cb24: f8d5 b01c ldr.w fp, [r5, #28] - uint8_t px_size = lv_img_cf_get_px_size(dsc->header.cf); - cb28: f000 001f and.w r0, r0, #31 - cb2c: 4798 blx r3 - - uint32_t pos = ((y * dsc->header.w + x) * px_size) >> 3; - cb2e: 68e9 ldr r1, [r5, #12] - pos += 4; /*Skip the header*/ - res = lv_fs_seek(user_data->f, pos); - cb30: 4bac ldr r3, [pc, #688] ; (cde4 ) - uint32_t pos = ((y * dsc->header.w + x) * px_size) >> 3; - cb32: f3c1 218a ubfx r1, r1, #10, #11 - cb36: fb18 4101 smlabb r1, r8, r1, r4 - cb3a: 4341 muls r1, r0 - cb3c: 10c9 asrs r1, r1, #3 - uint8_t px_size = lv_img_cf_get_px_size(dsc->header.cf); - cb3e: 4607 mov r7, r0 - res = lv_fs_seek(user_data->f, pos); - cb40: 3104 adds r1, #4 - cb42: f8db 0000 ldr.w r0, [fp] - cb46: 4798 blx r3 - if(res != LV_FS_RES_OK) { - cb48: b148 cbz r0, cb5e - LV_LOG_WARN("Built-in image decoder seek failed"); - cb4a: 4ba7 ldr r3, [pc, #668] ; (cde8 ) - cb4c: 9300 str r3, [sp, #0] - cb4e: 4ba7 ldr r3, [pc, #668] ; (cdec ) - cb50: f240 222e movw r2, #558 ; 0x22e - LV_LOG_WARN("Built-in image decoder read not supports the color format"); - cb54: 49a6 ldr r1, [pc, #664] ; (cdf0 ) - cb56: 4ca7 ldr r4, [pc, #668] ; (cdf4 ) - cb58: 2002 movs r0, #2 - cb5a: 47a0 blx r4 - return LV_RES_INV; - cb5c: e018 b.n cb90 - return LV_RES_INV; - } - uint32_t btr = len * (px_size >> 3); - cb5e: f3c7 07c7 ubfx r7, r7, #3, #8 - cb62: fb17 f70a smulbb r7, r7, sl - uint32_t br = 0; - cb66: 9008 str r0, [sp, #32] - lv_fs_read(user_data->f, buf, btr, &br); - cb68: ab08 add r3, sp, #32 - cb6a: f8db 0000 ldr.w r0, [fp] - cb6e: 4da2 ldr r5, [pc, #648] ; (cdf8 ) - cb70: 463a mov r2, r7 - cb72: 4631 mov r1, r6 - cb74: 47a8 blx r5 - if(res != LV_FS_RES_OK || btr != br) { - cb76: 9b08 ldr r3, [sp, #32] - cb78: 429f cmp r7, r3 - cb7a: f000 80db beq.w cd34 - LV_LOG_WARN("Built-in image decoder read failed"); - cb7e: 4b9f ldr r3, [pc, #636] ; (cdfc ) - cb80: 9300 str r3, [sp, #0] - cb82: 499b ldr r1, [pc, #620] ; (cdf0 ) - cb84: 4b99 ldr r3, [pc, #612] ; (cdec ) - cb86: 4d9b ldr r5, [pc, #620] ; (cdf4 ) - cb88: f240 2235 movw r2, #565 ; 0x235 - cb8c: 2002 movs r0, #2 - cb8e: 47a8 blx r5 - lv_res_t res = LV_RES_INV; - cb90: f04f 0900 mov.w r9, #0 - cb94: e0ce b.n cd34 - else if(dsc->header.cf == LV_IMG_CF_ALPHA_1BIT || dsc->header.cf == LV_IMG_CF_ALPHA_2BIT || - cb96: f1a3 020b sub.w r2, r3, #11 - cb9a: 2a03 cmp r2, #3 - cb9c: f200 80ce bhi.w cd3c -static lv_res_t lv_img_decoder_built_in_line_alpha(lv_img_decoder_dsc_t * dsc, lv_coord_t x, lv_coord_t y, - lv_coord_t len, uint8_t * buf) -{ - -#if LV_IMG_CF_ALPHA - const lv_opa_t alpha1_opa_table[2] = {0, 255}; /*Opacity mapping with bpp = 1 (Just for compatibility)*/ - cba0: f44f 437f mov.w r3, #65280 ; 0xff00 - cba4: f8ad 3018 strh.w r3, [sp, #24] - const lv_opa_t alpha2_opa_table[4] = {0, 85, 170, 255}; /*Opacity mapping with bpp = 2*/ - cba8: f5a3 03ad sub.w r3, r3, #5668864 ; 0x568000 - cbac: f5a3 5328 sub.w r3, r3, #10752 ; 0x2a00 - cbb0: 9307 str r3, [sp, #28] - const lv_opa_t alpha4_opa_table[16] = {0, 17, 34, 51, /*Opacity mapping with bpp = 4*/ - cbb2: 4b93 ldr r3, [pc, #588] ; (ce00 ) - cbb4: aa08 add r2, sp, #32 - cbb6: f103 0e10 add.w lr, r3, #16 - cbba: 4617 mov r7, r2 - cbbc: 6818 ldr r0, [r3, #0] - cbbe: 6859 ldr r1, [r3, #4] - cbc0: 4694 mov ip, r2 - cbc2: e8ac 0003 stmia.w ip!, {r0, r1} - cbc6: 3308 adds r3, #8 - cbc8: 4573 cmp r3, lr - cbca: 4662 mov r2, ip - cbcc: d1f6 bne.n cbbc - 68, 85, 102, 119, 136, 153, 170, 187, 204, 221, 238, 255 - }; - - /*Simply fill the buffer with the color. Later only the alpha value will be modified.*/ - lv_color_t bg_color = dsc->color; - cbce: 8929 ldrh r1, [r5, #8] - lv_coord_t i; - for(i = 0; i < len; i++) { - cbd0: 4633 mov r3, r6 -#if LV_COLOR_DEPTH == 8 || LV_COLOR_DEPTH == 1 - buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE] = bg_color.full; -#elif LV_COLOR_DEPTH == 16 - /*Because of Alpha byte 16 bit color can start on odd address which can cause crash*/ - buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE] = bg_color.full & 0xFF; - buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE + 1] = (bg_color.full >> 8) & 0xFF; - cbd2: ea4f 2c11 mov.w ip, r1, lsr #8 - for(i = 0; i < len; i++) { - cbd6: 2200 movs r2, #0 - cbd8: b210 sxth r0, r2 - cbda: 4582 cmp sl, r0 - cbdc: f103 0303 add.w r3, r3, #3 - cbe0: dc14 bgt.n cc0c -#error "Invalid LV_COLOR_DEPTH. Check it in lv_conf.h" -#endif - } - - const lv_opa_t * opa_table = NULL; - uint8_t px_size = lv_img_cf_get_px_size(dsc->header.cf); - cbe2: 7b28 ldrb r0, [r5, #12] - cbe4: 4b7e ldr r3, [pc, #504] ; (cde0 ) - cbe6: f000 001f and.w r0, r0, #31 - cbea: 4798 blx r3 - uint16_t mask = (1 << px_size) - 1; /*E.g. px_size = 2; mask = 0x03*/ - cbec: 2301 movs r3, #1 - cbee: 4083 lsls r3, r0 - cbf0: 3b01 subs r3, #1 - cbf2: b29b uxth r3, r3 - cbf4: 9304 str r3, [sp, #16] - - lv_coord_t w = 0; - uint32_t ofs = 0; - int8_t pos = 0; - switch(dsc->header.cf) { - cbf6: 7b2b ldrb r3, [r5, #12] - cbf8: f003 031f and.w r3, r3, #31 - cbfc: 3b0b subs r3, #11 - uint8_t px_size = lv_img_cf_get_px_size(dsc->header.cf); - cbfe: 4681 mov r9, r0 - switch(dsc->header.cf) { - cc00: 2b03 cmp r3, #3 - cc02: d85f bhi.n ccc4 - cc04: e8df f003 tbb [pc, r3] - cc08: 55422e08 .word 0x55422e08 - buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE] = bg_color.full & 0xFF; - cc0c: f803 1c03 strb.w r1, [r3, #-3] - buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE + 1] = (bg_color.full >> 8) & 0xFF; - cc10: f803 cc02 strb.w ip, [r3, #-2] - for(i = 0; i < len; i++) { - cc14: 3201 adds r2, #1 - cc16: e7df b.n cbd8 - case LV_IMG_CF_ALPHA_1BIT: - w = (dsc->header.w >> 3); /*E.g. w = 20 -> w = 2 + 1*/ - cc18: 68eb ldr r3, [r5, #12] - cc1a: f3c3 3247 ubfx r2, r3, #13, #8 - if(dsc->header.w & 0x7) w++; - cc1e: f413 5fe0 tst.w r3, #7168 ; 0x1c00 - ofs += w * y + (x >> 3); /*First pixel*/ - cc22: ea4f 01e4 mov.w r1, r4, asr #3 - w = (dsc->header.w >> 3); /*E.g. w = 20 -> w = 2 + 1*/ - cc26: bf0c ite eq - cc28: fa0f fb82 sxtheq.w fp, r2 - if(dsc->header.w & 0x7) w++; - cc2c: f102 0b01 addne.w fp, r2, #1 - pos = 7 - (x & 0x7); - cc30: 43e4 mvns r4, r4 - ofs += w * y + (x >> 3); /*First pixel*/ - cc32: fb0b 1108 mla r1, fp, r8, r1 - pos = 7 - (x & 0x7); - cc36: f004 0407 and.w r4, r4, #7 - opa_table = alpha1_opa_table; - cc3a: af06 add r7, sp, #24 - pos = 0; - break; - } - -#if LV_USE_FILESYSTEM - lv_img_decoder_built_in_data_t * user_data = dsc->user_data; - cc3c: 69eb ldr r3, [r5, #28] - cc3e: 9303 str r3, [sp, #12] - uint8_t * fs_buf = _lv_mem_buf_get(w); - cc40: 4658 mov r0, fp - cc42: 4b70 ldr r3, [pc, #448] ; (ce04 ) - cc44: 9105 str r1, [sp, #20] - cc46: 4798 blx r3 -#endif - - const uint8_t * data_tmp = NULL; - if(dsc->src_type == LV_IMG_SRC_VARIABLE) { - cc48: 7aab ldrb r3, [r5, #10] - cc4a: 9905 ldr r1, [sp, #20] - uint8_t * fs_buf = _lv_mem_buf_get(w); - cc4c: 4680 mov r8, r0 - if(dsc->src_type == LV_IMG_SRC_VARIABLE) { - cc4e: 2b00 cmp r3, #0 - cc50: d13c bne.n cccc - const lv_img_dsc_t * img_dsc = dsc->src; - - data_tmp = img_dsc->data + ofs; - cc52: 686b ldr r3, [r5, #4] - cc54: 689a ldr r2, [r3, #8] - cc56: 440a add r2, r1 - buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE + LV_IMG_PX_SIZE_ALPHA_BYTE - 1] = - dsc->header.cf == LV_IMG_CF_ALPHA_8BIT ? val_act : opa_table[val_act]; - - pos -= px_size; - if(pos < 0) { - pos = 8 - px_size; - cc58: f1c9 0008 rsb r0, r9, #8 - data_tmp = fs_buf; - cc5c: 2100 movs r1, #0 - buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE + LV_IMG_PX_SIZE_ALPHA_BYTE - 1] = - cc5e: 3602 adds r6, #2 - pos = 8 - px_size; - cc60: b240 sxtb r0, r0 - cc62: e05f b.n cd24 - w = (dsc->header.w >> 2); /*E.g. w = 13 -> w = 3 + 1 (bytes)*/ - cc64: 68eb ldr r3, [r5, #12] - ofs += w * y + (x >> 2); /*First pixel*/ - cc66: 10a1 asrs r1, r4, #2 - w = (dsc->header.w >> 2); /*E.g. w = 13 -> w = 3 + 1 (bytes)*/ - cc68: f3c3 3208 ubfx r2, r3, #12, #9 - if(dsc->header.w & 0x3) w++; - cc6c: f413 6f40 tst.w r3, #3072 ; 0xc00 - pos = 6 - ((x & 0x3) * 2); - cc70: ea6f 0404 mvn.w r4, r4 - w = (dsc->header.w >> 2); /*E.g. w = 13 -> w = 3 + 1 (bytes)*/ - cc74: bf0c ite eq - cc76: fa0f fb82 sxtheq.w fp, r2 - if(dsc->header.w & 0x3) w++; - cc7a: f102 0b01 addne.w fp, r2, #1 - pos = 6 - ((x & 0x3) * 2); - cc7e: f004 0403 and.w r4, r4, #3 - ofs += w * y + (x >> 2); /*First pixel*/ - cc82: fb0b 1108 mla r1, fp, r8, r1 - pos = 6 - ((x & 0x3) * 2); - cc86: 0064 lsls r4, r4, #1 - opa_table = alpha2_opa_table; - cc88: af07 add r7, sp, #28 - break; - cc8a: e7d7 b.n cc3c - w = (dsc->header.w >> 1); /*E.g. w = 13 -> w = 6 + 1 (bytes)*/ - cc8c: 68eb ldr r3, [r5, #12] - if(dsc->header.w & 0x1) w++; - cc8e: 0559 lsls r1, r3, #21 - w = (dsc->header.w >> 1); /*E.g. w = 13 -> w = 6 + 1 (bytes)*/ - cc90: f3c3 22c9 ubfx r2, r3, #11, #10 - ofs += w * y + (x >> 1); /*First pixel*/ - cc94: ea4f 0164 mov.w r1, r4, asr #1 - pos = 4 - ((x & 0x1) * 4); - cc98: ea6f 0404 mvn.w r4, r4 - w = (dsc->header.w >> 1); /*E.g. w = 13 -> w = 6 + 1 (bytes)*/ - cc9c: bf54 ite pl - cc9e: fa0f fb82 sxthpl.w fp, r2 - if(dsc->header.w & 0x1) w++; - cca2: f102 0b01 addmi.w fp, r2, #1 - pos = 4 - ((x & 0x1) * 4); - cca6: f004 0401 and.w r4, r4, #1 - ofs += w * y + (x >> 1); /*First pixel*/ - ccaa: fb0b 1108 mla r1, fp, r8, r1 - pos = 4 - ((x & 0x1) * 4); - ccae: 00a4 lsls r4, r4, #2 - ccb0: e7c4 b.n cc3c - w = dsc->header.w; /*E.g. x = 7 -> w = 7 (bytes)*/ - ccb2: 68ea ldr r2, [r5, #12] - ccb4: f3c2 218a ubfx r1, r2, #10, #11 - ccb8: 468b mov fp, r1 - ofs += w * y + x; /*First pixel*/ - ccba: fb18 4101 smlabb r1, r8, r1, r4 - pos = 0; - ccbe: 2400 movs r4, #0 - switch(dsc->header.cf) { - ccc0: 4627 mov r7, r4 - ccc2: e7bb b.n cc3c - ccc4: 2400 movs r4, #0 - ccc6: 4621 mov r1, r4 - ccc8: 46a3 mov fp, r4 - ccca: e7f9 b.n ccc0 - lv_fs_seek(user_data->f, ofs + 4); /*+4 to skip the header*/ - cccc: 9b03 ldr r3, [sp, #12] - ccce: 3104 adds r1, #4 - ccd0: 6818 ldr r0, [r3, #0] - ccd2: 4b44 ldr r3, [pc, #272] ; (cde4 ) - ccd4: 4798 blx r3 - lv_fs_read(user_data->f, fs_buf, w, NULL); - ccd6: 9803 ldr r0, [sp, #12] - ccd8: 465a mov r2, fp - ccda: 6800 ldr r0, [r0, #0] - ccdc: f8df b118 ldr.w fp, [pc, #280] ; cdf8 - cce0: 2300 movs r3, #0 - cce2: 4641 mov r1, r8 - cce4: 47d8 blx fp - data_tmp = fs_buf; - cce6: 4642 mov r2, r8 - cce8: e7b6 b.n cc58 - uint8_t val_act = (*data_tmp & (mask << pos)) >> pos; - ccea: 9b04 ldr r3, [sp, #16] - ccec: f892 e000 ldrb.w lr, [r2] - ccf0: fa03 fc04 lsl.w ip, r3, r4 - ccf4: ea0e 030c and.w r3, lr, ip - dsc->header.cf == LV_IMG_CF_ALPHA_8BIT ? val_act : opa_table[val_act]; - ccf8: f895 c00c ldrb.w ip, [r5, #12] - uint8_t val_act = (*data_tmp & (mask << pos)) >> pos; - ccfc: 4123 asrs r3, r4 - buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE + LV_IMG_PX_SIZE_ALPHA_BYTE - 1] = - ccfe: f00c 0c1f and.w ip, ip, #31 - cd02: f1bc 0f0e cmp.w ip, #14 - pos -= px_size; - cd06: eba4 0409 sub.w r4, r4, r9 - buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE + LV_IMG_PX_SIZE_ALPHA_BYTE - 1] = - cd0a: eb01 0c41 add.w ip, r1, r1, lsl #1 - cd0e: bf14 ite ne - cd10: 5cfb ldrbne r3, [r7, r3] - uint8_t val_act = (*data_tmp & (mask << pos)) >> pos; - cd12: b2db uxtbeq r3, r3 - pos -= px_size; - cd14: b264 sxtb r4, r4 - if(pos < 0) { - cd16: 2c00 cmp r4, #0 - buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE + LV_IMG_PX_SIZE_ALPHA_BYTE - 1] = - cd18: f806 300c strb.w r3, [r6, ip] - pos = 8 - px_size; - cd1c: bfbc itt lt - cd1e: 4604 movlt r4, r0 - data_tmp++; - cd20: 3201 addlt r2, #1 - for(i = 0; i < len; i++) { - cd22: 3101 adds r1, #1 - cd24: b20b sxth r3, r1 - cd26: 459a cmp sl, r3 - cd28: dcdf bgt.n ccea - pos = 8 - px_size; - data_tmp++; - } - } -#if LV_USE_FILESYSTEM - _lv_mem_buf_release(fs_buf); - cd2a: 4b37 ldr r3, [pc, #220] ; (ce08 ) - cd2c: 4640 mov r0, r8 - cd2e: 4798 blx r3 - res = lv_img_decoder_built_in_line_indexed(dsc, x, y, len, buf); - cd30: f04f 0901 mov.w r9, #1 -} - cd34: 4648 mov r0, r9 - cd36: b00d add sp, #52 ; 0x34 - cd38: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - else if(dsc->header.cf == LV_IMG_CF_INDEXED_1BIT || dsc->header.cf == LV_IMG_CF_INDEXED_2BIT || - cd3c: 3b07 subs r3, #7 - cd3e: 2b03 cmp r3, #3 - cd40: f200 80b0 bhi.w cea4 - uint8_t px_size = lv_img_cf_get_px_size(dsc->header.cf); - cd44: 4b26 ldr r3, [pc, #152] ; (cde0 ) - cd46: f000 001f and.w r0, r0, #31 - cd4a: 4798 blx r3 - uint16_t mask = (1 << px_size) - 1; /*E.g. px_size = 2; mask = 0x03*/ - cd4c: 2701 movs r7, #1 - cd4e: 4087 lsls r7, r0 - cd50: 3f01 subs r7, #1 - cd52: b2bb uxth r3, r7 - cd54: 9303 str r3, [sp, #12] - switch(dsc->header.cf) { - cd56: 7b2b ldrb r3, [r5, #12] - cd58: f003 031f and.w r3, r3, #31 - cd5c: 3b07 subs r3, #7 - uint8_t px_size = lv_img_cf_get_px_size(dsc->header.cf); - cd5e: 4681 mov r9, r0 - switch(dsc->header.cf) { - cd60: 2b03 cmp r3, #3 - cd62: d870 bhi.n ce46 - cd64: e8df f003 tbb [pc, r3] - cd68: 65522702 .word 0x65522702 - w = (dsc->header.w >> 3); /*E.g. w = 20 -> w = 2 + 1*/ - cd6c: 68eb ldr r3, [r5, #12] - cd6e: f3c3 3247 ubfx r2, r3, #13, #8 - if(dsc->header.w & 0x7) w++; - cd72: f413 5fe0 tst.w r3, #7168 ; 0x1c00 - w = (dsc->header.w >> 3); /*E.g. w = 20 -> w = 2 + 1*/ - cd76: bf08 it eq - cd78: b217 sxtheq r7, r2 - ofs += w * y + (x >> 3); /*First pixel*/ - cd7a: ea4f 03e4 mov.w r3, r4, asr #3 - if(dsc->header.w & 0x7) w++; - cd7e: bf18 it ne - cd80: 1c57 addne r7, r2, #1 - ofs += w * y + (x >> 3); /*First pixel*/ - cd82: fb07 3308 mla r3, r7, r8, r3 - pos = 7 - (x & 0x7); - cd86: 43e4 mvns r4, r4 - ofs += 8; /*Skip the palette*/ - cd88: f103 0108 add.w r1, r3, #8 - pos = 7 - (x & 0x7); - cd8c: f004 0407 and.w r4, r4, #7 - uint8_t * fs_buf = _lv_mem_buf_get(w); - cd90: 4b1c ldr r3, [pc, #112] ; (ce04 ) - cd92: 9104 str r1, [sp, #16] - cd94: 4638 mov r0, r7 - lv_img_decoder_built_in_data_t * user_data = dsc->user_data; - cd96: f8d5 b01c ldr.w fp, [r5, #28] - uint8_t * fs_buf = _lv_mem_buf_get(w); - cd9a: 4798 blx r3 - if(dsc->src_type == LV_IMG_SRC_VARIABLE) { - cd9c: 7aab ldrb r3, [r5, #10] - cd9e: 9904 ldr r1, [sp, #16] - uint8_t * fs_buf = _lv_mem_buf_get(w); - cda0: 4680 mov r8, r0 - if(dsc->src_type == LV_IMG_SRC_VARIABLE) { - cda2: 2b00 cmp r3, #0 - cda4: d153 bne.n ce4e - data_tmp = img_dsc->data + ofs; - cda6: 686b ldr r3, [r5, #4] - cda8: 689b ldr r3, [r3, #8] - cdaa: 440b add r3, r1 - pos = 8 - px_size; - cdac: f1c9 0508 rsb r5, r9, #8 - data_tmp = fs_buf; - cdb0: 2000 movs r0, #0 - pos = 8 - px_size; - cdb2: b26d sxtb r5, r5 - cdb4: e072 b.n ce9c - w = (dsc->header.w >> 2); /*E.g. w = 13 -> w = 3 + 1 (bytes)*/ - cdb6: 68eb ldr r3, [r5, #12] - cdb8: f3c3 3208 ubfx r2, r3, #12, #9 - if(dsc->header.w & 0x3) w++; - cdbc: f413 6f40 tst.w r3, #3072 ; 0xc00 - w = (dsc->header.w >> 2); /*E.g. w = 13 -> w = 3 + 1 (bytes)*/ - cdc0: bf08 it eq - cdc2: b217 sxtheq r7, r2 - ofs += w * y + (x >> 2); /*First pixel*/ - cdc4: ea4f 03a4 mov.w r3, r4, asr #2 - if(dsc->header.w & 0x3) w++; - cdc8: bf18 it ne - cdca: 1c57 addne r7, r2, #1 - pos = 6 - ((x & 0x3) * 2); - cdcc: 43e4 mvns r4, r4 - ofs += w * y + (x >> 2); /*First pixel*/ - cdce: fb07 3308 mla r3, r7, r8, r3 - pos = 6 - ((x & 0x3) * 2); - cdd2: f004 0403 and.w r4, r4, #3 - ofs += 16; /*Skip the palette*/ - cdd6: f103 0110 add.w r1, r3, #16 - pos = 6 - ((x & 0x3) * 2); - cdda: 0064 lsls r4, r4, #1 - break; - cddc: e7d8 b.n cd90 - cdde: bf00 nop - cde0: 00007805 .word 0x00007805 - cde4: 0000e6d3 .word 0x0000e6d3 - cde8: 00027a3c .word 0x00027a3c - cdec: 00027b7d .word 0x00027b7d - cdf0: 000279bb .word 0x000279bb - cdf4: 0000eb79 .word 0x0000eb79 - cdf8: 0000e69d .word 0x0000e69d - cdfc: 00027a5f .word 0x00027a5f - ce00: 00027ba5 .word 0x00027ba5 - ce04: 0000f145 .word 0x0000f145 - ce08: 0000edf9 .word 0x0000edf9 - w = (dsc->header.w >> 1); /*E.g. w = 13 -> w = 6 + 1 (bytes)*/ - ce0c: 68eb ldr r3, [r5, #12] - ce0e: f3c3 22c9 ubfx r2, r3, #11, #10 - if(dsc->header.w & 0x1) w++; - ce12: 055b lsls r3, r3, #21 - w = (dsc->header.w >> 1); /*E.g. w = 13 -> w = 6 + 1 (bytes)*/ - ce14: bf58 it pl - ce16: b217 sxthpl r7, r2 - ofs += w * y + (x >> 1); /*First pixel*/ - ce18: ea4f 0364 mov.w r3, r4, asr #1 - if(dsc->header.w & 0x1) w++; - ce1c: bf48 it mi - ce1e: 1c57 addmi r7, r2, #1 - pos = 4 - ((x & 0x1) * 4); - ce20: 43e4 mvns r4, r4 - ofs += w * y + (x >> 1); /*First pixel*/ - ce22: fb07 3308 mla r3, r7, r8, r3 - pos = 4 - ((x & 0x1) * 4); - ce26: f004 0401 and.w r4, r4, #1 - ofs += 64; /*Skip the palette*/ - ce2a: f103 0140 add.w r1, r3, #64 ; 0x40 - pos = 4 - ((x & 0x1) * 4); - ce2e: 00a4 lsls r4, r4, #2 - ce30: e7ae b.n cd90 - w = dsc->header.w; /*E.g. x = 7 -> w = 7 (bytes)*/ - ce32: 68ef ldr r7, [r5, #12] - ce34: f3c7 238a ubfx r3, r7, #10, #11 - ofs += w * y + x; /*First pixel*/ - ce38: fb18 4803 smlabb r8, r8, r3, r4 - w = dsc->header.w; /*E.g. x = 7 -> w = 7 (bytes)*/ - ce3c: 461f mov r7, r3 - ofs += 1024; /*Skip the palette*/ - ce3e: f508 6180 add.w r1, r8, #1024 ; 0x400 - pos = 0; - ce42: 2400 movs r4, #0 - break; - ce44: e7a4 b.n cd90 - switch(dsc->header.cf) { - ce46: 2100 movs r1, #0 - ce48: 460c mov r4, r1 - ce4a: 460f mov r7, r1 - ce4c: e7a0 b.n cd90 - lv_fs_seek(user_data->f, ofs + 4); /*+4 to skip the header*/ - ce4e: 4b18 ldr r3, [pc, #96] ; (ceb0 ) - ce50: f8db 0000 ldr.w r0, [fp] - lv_fs_read(user_data->f, fs_buf, w, NULL); - ce54: 4d17 ldr r5, [pc, #92] ; (ceb4 ) - lv_fs_seek(user_data->f, ofs + 4); /*+4 to skip the header*/ - ce56: 3104 adds r1, #4 - ce58: 4798 blx r3 - lv_fs_read(user_data->f, fs_buf, w, NULL); - ce5a: 2300 movs r3, #0 - ce5c: f8db 0000 ldr.w r0, [fp] - ce60: 463a mov r2, r7 - ce62: 4641 mov r1, r8 - ce64: 47a8 blx r5 - data_tmp = fs_buf; - ce66: 4643 mov r3, r8 - ce68: e7a0 b.n cdac - uint8_t val_act = (*data_tmp & (mask << pos)) >> pos; - ce6a: 9903 ldr r1, [sp, #12] - ce6c: 781a ldrb r2, [r3, #0] - ce6e: 40a1 lsls r1, r4 - ce70: 400a ands r2, r1 - ce72: 4122 asrs r2, r4 - lv_color_t color = user_data->palette[val_act]; - ce74: f8db 1004 ldr.w r1, [fp, #4] - ce78: f831 1012 ldrh.w r1, [r1, r2, lsl #1] - buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE] = color.full & 0xFF; - ce7c: 7031 strb r1, [r6, #0] - buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE + 1] = (color.full >> 8) & 0xFF; - ce7e: 0a09 lsrs r1, r1, #8 - ce80: 7071 strb r1, [r6, #1] - buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE + LV_IMG_PX_SIZE_ALPHA_BYTE - 1] = user_data->opa[val_act]; - ce82: f8db 1008 ldr.w r1, [fp, #8] - pos -= px_size; - ce86: eba4 0409 sub.w r4, r4, r9 - ce8a: b264 sxtb r4, r4 - if(pos < 0) { - ce8c: 2c00 cmp r4, #0 - buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE + LV_IMG_PX_SIZE_ALPHA_BYTE - 1] = user_data->opa[val_act]; - ce8e: 5c8a ldrb r2, [r1, r2] - ce90: 70b2 strb r2, [r6, #2] - pos = 8 - px_size; - ce92: bfbc itt lt - ce94: 462c movlt r4, r5 - data_tmp++; - ce96: 3301 addlt r3, #1 - for(i = 0; i < len; i++) { - ce98: 3001 adds r0, #1 - ce9a: 3603 adds r6, #3 - ce9c: b202 sxth r2, r0 - ce9e: 4592 cmp sl, r2 - cea0: dce3 bgt.n ce6a - cea2: e742 b.n cd2a - LV_LOG_WARN("Built-in image decoder read not supports the color format"); - cea4: 4b04 ldr r3, [pc, #16] ; (ceb8 ) - cea6: 9300 str r3, [sp, #0] - cea8: f44f 72fe mov.w r2, #508 ; 0x1fc - ceac: 4b03 ldr r3, [pc, #12] ; (cebc ) - ceae: e651 b.n cb54 - ceb0: 0000e6d3 .word 0x0000e6d3 - ceb4: 0000e69d .word 0x0000e69d - ceb8: 00027a82 .word 0x00027a82 - cebc: 00027bb5 .word 0x00027bb5 - -0000cec0 : -{ - cec0: e92d 47ff stmdb sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, lr} - cec4: 4606 mov r6, r0 - if(dsc->src_type == LV_IMG_SRC_FILE) { - cec6: 7a88 ldrb r0, [r1, #10] - cec8: 2801 cmp r0, #1 -{ - ceca: 460c mov r4, r1 - if(dsc->src_type == LV_IMG_SRC_FILE) { - cecc: d178 bne.n cfc0 - if(strcmp(lv_fs_get_ext(dsc->src), "bin")) return LV_RES_INV; - cece: 6848 ldr r0, [r1, #4] - ced0: 4b8b ldr r3, [pc, #556] ; (d100 ) - ced2: 4798 blx r3 - ced4: 498b ldr r1, [pc, #556] ; (d104 ) - ced6: 4b8c ldr r3, [pc, #560] ; (d108 ) - ced8: 4798 blx r3 - ceda: 2800 cmp r0, #0 - cedc: f040 80a9 bne.w d032 - lv_fs_res_t res = lv_fs_open(&f, dsc->src, LV_FS_MODE_RD); - cee0: 6861 ldr r1, [r4, #4] - cee2: 4b8a ldr r3, [pc, #552] ; (d10c ) - cee4: 2202 movs r2, #2 - cee6: a802 add r0, sp, #8 - cee8: 4798 blx r3 - if(res != LV_FS_RES_OK) { - ceea: b138 cbz r0, cefc - LV_LOG_WARN("Built-in image decoder can't open the file"); - ceec: 4b88 ldr r3, [pc, #544] ; (d110 ) - ceee: 9300 str r3, [sp, #0] - cef0: 4b88 ldr r3, [pc, #544] ; (d114 ) - cef2: f44f 72a6 mov.w r2, #332 ; 0x14c - LV_LOG_WARN("Image decoder open: unknown color format") - cef6: 4988 ldr r1, [pc, #544] ; (d118 ) - cef8: 2002 movs r0, #2 - cefa: e022 b.n cf42 - if(dsc->user_data == NULL) { - cefc: 69e3 ldr r3, [r4, #28] - cefe: f8df 923c ldr.w r9, [pc, #572] ; d13c - cf02: f8df 823c ldr.w r8, [pc, #572] ; d140 - cf06: bb13 cbnz r3, cf4e - dsc->user_data = lv_mem_alloc(sizeof(lv_img_decoder_built_in_data_t)); - cf08: 200c movs r0, #12 - cf0a: 47c8 blx r9 - cf0c: 61e0 str r0, [r4, #28] - LV_ASSERT_MEM(dsc->user_data); - cf0e: 47c0 blx r8 - cf10: 4605 mov r5, r0 - cf12: b968 cbnz r0, cf30 - cf14: 4b7f ldr r3, [pc, #508] ; (d114 ) - cf16: 4980 ldr r1, [pc, #512] ; (d118 ) - cf18: 9300 str r3, [sp, #0] - cf1a: f240 1253 movw r2, #339 ; 0x153 - cf1e: 2003 movs r0, #3 - cf20: 4e7e ldr r6, [pc, #504] ; (d11c ) - cf22: 47b0 blx r6 - cf24: 69e2 ldr r2, [r4, #28] - cf26: 487e ldr r0, [pc, #504] ; (d120 ) - cf28: 497e ldr r1, [pc, #504] ; (d124 ) - cf2a: 462b mov r3, r5 - cf2c: 4788 blx r1 - cf2e: e7fe b.n cf2e - if(dsc->user_data == NULL) { - cf30: 69e0 ldr r0, [r4, #28] - cf32: b948 cbnz r0, cf48 - LV_LOG_ERROR("img_decoder_built_in_open: out of memory"); - cf34: 4b7c ldr r3, [pc, #496] ; (d128 ) - cf36: 9300 str r3, [sp, #0] - cf38: 4977 ldr r1, [pc, #476] ; (d118 ) - cf3a: 4b76 ldr r3, [pc, #472] ; (d114 ) - cf3c: f240 1255 movw r2, #341 ; 0x155 - cf40: 2003 movs r0, #3 - LV_LOG_WARN("Image decoder open: unknown color format") - cf42: 4c76 ldr r4, [pc, #472] ; (d11c ) - cf44: 47a0 blx r4 - cf46: e074 b.n d032 - _lv_memset_00(dsc->user_data, sizeof(lv_img_decoder_built_in_data_t)); - cf48: 4b78 ldr r3, [pc, #480] ; (d12c ) - cf4a: 210c movs r1, #12 - cf4c: 4798 blx r3 - user_data->f = lv_mem_alloc(sizeof(f)); - cf4e: 2008 movs r0, #8 - lv_img_decoder_built_in_data_t * user_data = dsc->user_data; - cf50: 69e7 ldr r7, [r4, #28] - user_data->f = lv_mem_alloc(sizeof(f)); - cf52: 47c8 blx r9 - cf54: 6038 str r0, [r7, #0] - LV_ASSERT_MEM(user_data->f); - cf56: 47c0 blx r8 - cf58: 4605 mov r5, r0 - cf5a: b968 cbnz r0, cf78 - cf5c: 4b6d ldr r3, [pc, #436] ; (d114 ) - cf5e: 496e ldr r1, [pc, #440] ; (d118 ) - cf60: 9300 str r3, [sp, #0] - cf62: f240 125d movw r2, #349 ; 0x15d - cf66: 2003 movs r0, #3 - cf68: 4c6c ldr r4, [pc, #432] ; (d11c ) - cf6a: 47a0 blx r4 - cf6c: 683a ldr r2, [r7, #0] - cf6e: 486c ldr r0, [pc, #432] ; (d120 ) - cf70: 496c ldr r1, [pc, #432] ; (d124 ) - cf72: 462b mov r3, r5 - cf74: 4788 blx r1 - cf76: e7fe b.n cf76 - if(user_data->f == NULL) { - cf78: 683b ldr r3, [r7, #0] - cf7a: b94b cbnz r3, cf90 - LV_LOG_ERROR("img_decoder_built_in_open: out of memory"); - cf7c: 4b6a ldr r3, [pc, #424] ; (d128 ) - cf7e: 9300 str r3, [sp, #0] - cf80: 4b64 ldr r3, [pc, #400] ; (d114 ) - cf82: f240 125f movw r2, #351 ; 0x15f - LV_LOG_ERROR("img_decoder_built_in_open: out of memory"); - cf86: 4964 ldr r1, [pc, #400] ; (d118 ) - cf88: 4d64 ldr r5, [pc, #400] ; (d11c ) - cf8a: 2003 movs r0, #3 - cf8c: 47a8 blx r5 - cf8e: e04c b.n d02a - cf90: aa02 add r2, sp, #8 - cf92: f103 0108 add.w r1, r3, #8 - *d8 = *s8; - cf96: f812 0b01 ldrb.w r0, [r2], #1 - cf9a: f803 0b01 strb.w r0, [r3], #1 - while(len) { - cf9e: 428b cmp r3, r1 - cfa0: d1f9 bne.n cf96 - lv_img_cf_t cf = dsc->header.cf; - cfa2: 7b23 ldrb r3, [r4, #12] - cfa4: f003 001f and.w r0, r3, #31 - if(cf == LV_IMG_CF_TRUE_COLOR || cf == LV_IMG_CF_TRUE_COLOR_ALPHA || cf == LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED) { - cfa8: 1f02 subs r2, r0, #4 - cfaa: 2a02 cmp r2, #2 - cfac: d811 bhi.n cfd2 - if(dsc->src_type == LV_IMG_SRC_VARIABLE) { - cfae: 7aa3 ldrb r3, [r4, #10] - cfb0: 2b00 cmp r3, #0 - cfb2: f040 8088 bne.w d0c6 - dsc->img_data = ((lv_img_dsc_t *)dsc->src)->data; - cfb6: 6863 ldr r3, [r4, #4] - cfb8: 689b ldr r3, [r3, #8] - dsc->img_data = NULL; - cfba: 6123 str r3, [r4, #16] - return LV_RES_OK; - cfbc: 2001 movs r0, #1 - cfbe: e005 b.n cfcc - else if(dsc->src_type == LV_IMG_SRC_VARIABLE) { - cfc0: 2800 cmp r0, #0 - cfc2: d1ee bne.n cfa2 - if(((lv_img_dsc_t *)dsc->src)->data == NULL) { - cfc4: 684a ldr r2, [r1, #4] - cfc6: 6892 ldr r2, [r2, #8] - cfc8: 2a00 cmp r2, #0 - cfca: d1ea bne.n cfa2 -} - cfcc: b004 add sp, #16 - cfce: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} - else if(cf == LV_IMG_CF_INDEXED_1BIT || cf == LV_IMG_CF_INDEXED_2BIT || cf == LV_IMG_CF_INDEXED_4BIT || - cfd2: 1fc2 subs r2, r0, #7 - cfd4: 2a03 cmp r2, #3 - cfd6: f200 80d4 bhi.w d182 - uint8_t px_size = lv_img_cf_get_px_size(cf); - cfda: 4b55 ldr r3, [pc, #340] ; (d130 ) - cfdc: f8df a15c ldr.w sl, [pc, #348] ; d13c - cfe0: f8df 915c ldr.w r9, [pc, #348] ; d140 - cfe4: 4798 blx r3 - if(dsc->user_data == NULL) { - cfe6: 69e3 ldr r3, [r4, #28] - uint8_t px_size = lv_img_cf_get_px_size(cf); - cfe8: 4680 mov r8, r0 - if(dsc->user_data == NULL) { - cfea: bb43 cbnz r3, d03e - dsc->user_data = lv_mem_alloc(sizeof(lv_img_decoder_built_in_data_t)); - cfec: 200c movs r0, #12 - cfee: 47d0 blx sl - cff0: 61e0 str r0, [r4, #28] - LV_ASSERT_MEM(dsc->user_data); - cff2: 47c8 blx r9 - cff4: 4605 mov r5, r0 - cff6: b968 cbnz r0, d014 - cff8: 4b46 ldr r3, [pc, #280] ; (d114 ) - cffa: 4947 ldr r1, [pc, #284] ; (d118 ) - cffc: 9300 str r3, [sp, #0] - cffe: f44f 72c6 mov.w r2, #396 ; 0x18c - d002: 2003 movs r0, #3 - d004: 4e45 ldr r6, [pc, #276] ; (d11c ) - d006: 47b0 blx r6 - d008: 69e2 ldr r2, [r4, #28] - d00a: 4845 ldr r0, [pc, #276] ; (d120 ) - d00c: 4945 ldr r1, [pc, #276] ; (d124 ) - d00e: 462b mov r3, r5 - d010: 4788 blx r1 - d012: e7fe b.n d012 - if(dsc->user_data == NULL) { - d014: 69e5 ldr r5, [r4, #28] - d016: b975 cbnz r5, d036 - LV_LOG_ERROR("img_decoder_built_in_open: out of memory"); - d018: 4b43 ldr r3, [pc, #268] ; (d128 ) - d01a: 9300 str r3, [sp, #0] - d01c: 493e ldr r1, [pc, #248] ; (d118 ) - d01e: 4b3d ldr r3, [pc, #244] ; (d114 ) - d020: 4f3e ldr r7, [pc, #248] ; (d11c ) - d022: f44f 72c7 mov.w r2, #398 ; 0x18e - d026: 2003 movs r0, #3 - d028: 47b8 blx r7 - lv_img_decoder_built_in_close(decoder, dsc); - d02a: 4b42 ldr r3, [pc, #264] ; (d134 ) - d02c: 4621 mov r1, r4 - d02e: 4630 mov r0, r6 - d030: 4798 blx r3 - return LV_RES_INV; - d032: 2000 movs r0, #0 - d034: e7ca b.n cfcc - _lv_memset_00(dsc->user_data, sizeof(lv_img_decoder_built_in_data_t)); - d036: 4b3d ldr r3, [pc, #244] ; (d12c ) - d038: 210c movs r1, #12 - d03a: 4628 mov r0, r5 - d03c: 4798 blx r3 - user_data->palette = lv_mem_alloc(palette_size * sizeof(lv_color_t)); - d03e: 2002 movs r0, #2 - d040: fa00 f008 lsl.w r0, r0, r8 - lv_img_decoder_built_in_data_t * user_data = dsc->user_data; - d044: 69e5 ldr r5, [r4, #28] - user_data->palette = lv_mem_alloc(palette_size * sizeof(lv_color_t)); - d046: 47d0 blx sl - d048: 6068 str r0, [r5, #4] - LV_ASSERT_MEM(user_data->palette); - d04a: 47c8 blx r9 - d04c: 4607 mov r7, r0 - d04e: b968 cbnz r0, d06c - d050: 4b30 ldr r3, [pc, #192] ; (d114 ) - d052: 4931 ldr r1, [pc, #196] ; (d118 ) - d054: 9300 str r3, [sp, #0] - d056: f240 1297 movw r2, #407 ; 0x197 - d05a: 2003 movs r0, #3 - d05c: 4c2f ldr r4, [pc, #188] ; (d11c ) - d05e: 47a0 blx r4 - d060: 686a ldr r2, [r5, #4] - d062: 482f ldr r0, [pc, #188] ; (d120 ) - d064: 492f ldr r1, [pc, #188] ; (d124 ) - d066: 463b mov r3, r7 - d068: 4788 blx r1 - d06a: e7fe b.n d06a - uint32_t palette_size = 1 << px_size; - d06c: 2701 movs r7, #1 - d06e: fa07 f708 lsl.w r7, r7, r8 - user_data->opa = lv_mem_alloc(palette_size * sizeof(lv_opa_t)); - d072: 4638 mov r0, r7 - d074: 47d0 blx sl - d076: 60a8 str r0, [r5, #8] - LV_ASSERT_MEM(user_data->opa); - d078: 47c8 blx r9 - d07a: 4680 mov r8, r0 - d07c: b968 cbnz r0, d09a - d07e: 4b25 ldr r3, [pc, #148] ; (d114 ) - d080: 4925 ldr r1, [pc, #148] ; (d118 ) - d082: 9300 str r3, [sp, #0] - d084: f240 1299 movw r2, #409 ; 0x199 - d088: 2003 movs r0, #3 - d08a: 4c24 ldr r4, [pc, #144] ; (d11c ) - d08c: 47a0 blx r4 - d08e: 68aa ldr r2, [r5, #8] - d090: 4823 ldr r0, [pc, #140] ; (d120 ) - d092: 4924 ldr r1, [pc, #144] ; (d124 ) - d094: 4643 mov r3, r8 - d096: 4788 blx r1 - d098: e7fe b.n d098 - if(user_data->palette == NULL || user_data->opa == NULL) { - d09a: 686b ldr r3, [r5, #4] - d09c: b10b cbz r3, d0a2 - d09e: 68ab ldr r3, [r5, #8] - d0a0: b92b cbnz r3, d0ae - LV_LOG_ERROR("img_decoder_built_in_open: out of memory"); - d0a2: 4b21 ldr r3, [pc, #132] ; (d128 ) - d0a4: 9300 str r3, [sp, #0] - d0a6: f240 129b movw r2, #411 ; 0x19b - d0aa: 4b1a ldr r3, [pc, #104] ; (d114 ) - d0ac: e76b b.n cf86 - if(dsc->src_type == LV_IMG_SRC_FILE) { - d0ae: 7aa3 ldrb r3, [r4, #10] - d0b0: 2b01 cmp r3, #1 - d0b2: d149 bne.n d148 - lv_fs_seek(user_data->f, 4); /*Skip the header*/ - d0b4: 6828 ldr r0, [r5, #0] - d0b6: 4b20 ldr r3, [pc, #128] ; (d138 ) - lv_fs_read(user_data->f, &cur_color, sizeof(lv_color32_t), NULL); - d0b8: f8df 8088 ldr.w r8, [pc, #136] ; d144 - lv_fs_seek(user_data->f, 4); /*Skip the header*/ - d0bc: 2104 movs r1, #4 - d0be: 4798 blx r3 - for(i = 0; i < palette_size; i++) { - d0c0: 2600 movs r6, #0 - d0c2: 42be cmp r6, r7 - d0c4: d101 bne.n d0ca - dsc->img_data = NULL; - d0c6: 2300 movs r3, #0 - d0c8: e777 b.n cfba - lv_fs_read(user_data->f, &cur_color, sizeof(lv_color32_t), NULL); - d0ca: 2300 movs r3, #0 - d0cc: 2204 movs r2, #4 - d0ce: a902 add r1, sp, #8 - d0d0: 6828 ldr r0, [r5, #0] - d0d2: 47c0 blx r8 -#define LV_COLOR_MAKE(r8, g8, b8) ((lv_color_t){{b8, g8, r8, 0xff}}) /*Fix 0xff alpha*/ -#endif - -static inline lv_color_t lv_color_make(uint8_t r, uint8_t g, uint8_t b) -{ - return LV_COLOR_MAKE(r, g, b); - d0d4: f89d 1009 ldrb.w r1, [sp, #9] - d0d8: f89d 3008 ldrb.w r3, [sp, #8] - user_data->palette[i] = lv_color_make(cur_color.ch.red, cur_color.ch.green, cur_color.ch.blue); - d0dc: 686a ldr r2, [r5, #4] - d0de: 0889 lsrs r1, r1, #2 - d0e0: 08db lsrs r3, r3, #3 - d0e2: ea43 1341 orr.w r3, r3, r1, lsl #5 - d0e6: f89d 100a ldrb.w r1, [sp, #10] - d0ea: 08c9 lsrs r1, r1, #3 - d0ec: ea43 23c1 orr.w r3, r3, r1, lsl #11 - d0f0: f822 3016 strh.w r3, [r2, r6, lsl #1] - user_data->opa[i] = cur_color.ch.alpha; - d0f4: 68ab ldr r3, [r5, #8] - d0f6: f89d 200b ldrb.w r2, [sp, #11] - d0fa: 559a strb r2, [r3, r6] - for(i = 0; i < palette_size; i++) { - d0fc: 3601 adds r6, #1 - d0fe: e7e0 b.n d0c2 - d100: 0000e7f1 .word 0x0000e7f1 - d104: 00027abc .word 0x00027abc - d108: 000170c9 .word 0x000170c9 - d10c: 0000e725 .word 0x0000e725 - d110: 00027ac0 .word 0x00027ac0 - d114: 00027bd7 .word 0x00027bd7 - d118: 000279bb .word 0x000279bb - d11c: 0000eb79 .word 0x0000eb79 - d120: 00026842 .word 0x00026842 - d124: 00001a6d .word 0x00001a6d - d128: 00027aeb .word 0x00027aeb - d12c: 0000f2a9 .word 0x0000f2a9 - d130: 00007805 .word 0x00007805 - d134: 0000cac1 .word 0x0000cac1 - d138: 0000e6d3 .word 0x0000e6d3 - d13c: 0000ecbd .word 0x0000ecbd - d140: 00001a65 .word 0x00001a65 - d144: 0000e69d .word 0x0000e69d - lv_color32_t * palette_p = (lv_color32_t *)((lv_img_dsc_t *)dsc->src)->data; - d148: 6863 ldr r3, [r4, #4] - d14a: 6899 ldr r1, [r3, #8] - for(i = 0; i < palette_size; i++) { - d14c: 2000 movs r0, #0 - d14e: 42b8 cmp r0, r7 - d150: f101 0104 add.w r1, r1, #4 - d154: d0b7 beq.n d0c6 - d156: f811 6c03 ldrb.w r6, [r1, #-3] - d15a: f811 3c04 ldrb.w r3, [r1, #-4] - user_data->palette[i] = lv_color_make(palette_p[i].ch.red, palette_p[i].ch.green, palette_p[i].ch.blue); - d15e: 686a ldr r2, [r5, #4] - d160: 08b6 lsrs r6, r6, #2 - d162: 08db lsrs r3, r3, #3 - d164: ea43 1346 orr.w r3, r3, r6, lsl #5 - d168: f811 6c02 ldrb.w r6, [r1, #-2] - d16c: 08f6 lsrs r6, r6, #3 - d16e: ea43 23c6 orr.w r3, r3, r6, lsl #11 - d172: f822 3010 strh.w r3, [r2, r0, lsl #1] - user_data->opa[i] = palette_p[i].ch.alpha; - d176: 68ab ldr r3, [r5, #8] - d178: f811 2c01 ldrb.w r2, [r1, #-1] - d17c: 541a strb r2, [r3, r0] - for(i = 0; i < palette_size; i++) { - d17e: 3001 adds r0, #1 - d180: e7e5 b.n d14e - else if(cf == LV_IMG_CF_ALPHA_1BIT || cf == LV_IMG_CF_ALPHA_2BIT || cf == LV_IMG_CF_ALPHA_4BIT || - d182: f1a0 030b sub.w r3, r0, #11 - d186: 2b03 cmp r3, #3 - d188: d99d bls.n d0c6 - lv_img_decoder_built_in_close(decoder, dsc); - d18a: 4b05 ldr r3, [pc, #20] ; (d1a0 ) - d18c: 4621 mov r1, r4 - d18e: 4630 mov r0, r6 - d190: 4798 blx r3 - LV_LOG_WARN("Image decoder open: unknown color format") - d192: 4b04 ldr r3, [pc, #16] ; (d1a4 ) - d194: 9300 str r3, [sp, #0] - d196: f240 12d3 movw r2, #467 ; 0x1d3 - d19a: 4b03 ldr r3, [pc, #12] ; (d1a8 ) - d19c: e6ab b.n cef6 - d19e: bf00 nop - d1a0: 0000cac1 .word 0x0000cac1 - d1a4: 00027b14 .word 0x00027b14 - d1a8: 00027bd7 .word 0x00027bd7 - -0000d1ac : -{ - d1ac: e92d 43f8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, lr} - header->always_zero = 0; - d1b0: 780b ldrb r3, [r1, #0] - _LV_LL_READ(LV_GC_ROOT(_lv_img_defoder_ll), d) { - d1b2: f8df 8044 ldr.w r8, [pc, #68] ; d1f8 - d1b6: f8df 9044 ldr.w r9, [pc, #68] ; d1fc - header->always_zero = 0; - d1ba: f36f 1347 bfc r3, #5, #3 - d1be: 700b strb r3, [r1, #0] -{ - d1c0: 4607 mov r7, r0 - _LV_LL_READ(LV_GC_ROOT(_lv_img_defoder_ll), d) { - d1c2: 4b0c ldr r3, [pc, #48] ; (d1f4 ) - d1c4: 480c ldr r0, [pc, #48] ; (d1f8 ) -{ - d1c6: 460e mov r6, r1 - _LV_LL_READ(LV_GC_ROOT(_lv_img_defoder_ll), d) { - d1c8: 4798 blx r3 - lv_res_t res = LV_RES_INV; - d1ca: 2400 movs r4, #0 - _LV_LL_READ(LV_GC_ROOT(_lv_img_defoder_ll), d) { - d1cc: 4605 mov r5, r0 - d1ce: b915 cbnz r5, d1d6 -} - d1d0: 4620 mov r0, r4 - d1d2: e8bd 83f8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, pc} - if(d->info_cb) { - d1d6: 682c ldr r4, [r5, #0] - d1d8: b134 cbz r4, d1e8 - res = d->info_cb(d, src, header); - d1da: 4632 mov r2, r6 - d1dc: 4639 mov r1, r7 - d1de: 4628 mov r0, r5 - d1e0: 47a0 blx r4 - if(res == LV_RES_OK) break; - d1e2: 2801 cmp r0, #1 - res = d->info_cb(d, src, header); - d1e4: 4604 mov r4, r0 - if(res == LV_RES_OK) break; - d1e6: d0f3 beq.n d1d0 - _LV_LL_READ(LV_GC_ROOT(_lv_img_defoder_ll), d) { - d1e8: 4629 mov r1, r5 - d1ea: 4640 mov r0, r8 - d1ec: 47c8 blx r9 - d1ee: 4605 mov r5, r0 - d1f0: e7ed b.n d1ce - d1f2: bf00 nop - d1f4: 0000e92d .word 0x0000e92d - d1f8: 20003624 .word 0x20003624 - d1fc: 0000e939 .word 0x0000e939 - -0000d200 : -{ - d200: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} - dsc->src_type = lv_img_src_get_type(src); - d204: 4b22 ldr r3, [pc, #136] ; (d290 ) - dsc->color = color; - d206: 8102 strh r2, [r0, #8] -{ - d208: 4604 mov r4, r0 - dsc->src_type = lv_img_src_get_type(src); - d20a: 4608 mov r0, r1 -{ - d20c: 460f mov r7, r1 - dsc->src_type = lv_img_src_get_type(src); - d20e: 4798 blx r3 - dsc->user_data = NULL; - d210: 2300 movs r3, #0 - if(dsc->src_type == LV_IMG_SRC_FILE) { - d212: 2801 cmp r0, #1 - dsc->src_type = lv_img_src_get_type(src); - d214: 72a0 strb r0, [r4, #10] - dsc->user_data = NULL; - d216: 61e3 str r3, [r4, #28] - if(dsc->src_type == LV_IMG_SRC_FILE) { - d218: d11d bne.n d256 - size_t fnlen = strlen(src); - d21a: 4b1e ldr r3, [pc, #120] ; (d294 ) - d21c: 4638 mov r0, r7 - d21e: 4798 blx r3 - dsc->src = lv_mem_alloc(fnlen + 1); - d220: 4b1d ldr r3, [pc, #116] ; (d298 ) - d222: 3001 adds r0, #1 - d224: 4798 blx r3 -__ssp_bos_icheck3(memset, void *, int) -__ssp_bos_icheck2_restrict(stpcpy, char *, const char *) -#if __GNUC_PREREQ__(4,8) || defined(__clang__) -__ssp_bos_icheck3_restrict(stpncpy, char *, const char *) -#endif -__ssp_bos_icheck2_restrict(strcpy, char *, const char *) - d226: 4b1d ldr r3, [pc, #116] ; (d29c ) - d228: 6060 str r0, [r4, #4] - d22a: 4639 mov r1, r7 - d22c: 4798 blx r3 - _LV_LL_READ(LV_GC_ROOT(_lv_img_defoder_ll), d) { - d22e: 481c ldr r0, [pc, #112] ; (d2a0 ) - d230: 4b1c ldr r3, [pc, #112] ; (d2a4 ) - d232: f8df 906c ldr.w r9, [pc, #108] ; d2a0 - d236: f8df a074 ldr.w sl, [pc, #116] ; d2ac - d23a: 4798 blx r3 - lv_res_t res = LV_RES_INV; - d23c: 2600 movs r6, #0 - _LV_LL_READ(LV_GC_ROOT(_lv_img_defoder_ll), d) { - d23e: 4605 mov r5, r0 - res = d->info_cb(d, src, &dsc->header); - d240: f104 080c add.w r8, r4, #12 - _LV_LL_READ(LV_GC_ROOT(_lv_img_defoder_ll), d) { - d244: b94d cbnz r5, d25a - if(res == LV_RES_INV) { - d246: b91e cbnz r6, d250 - _lv_memset_00(dsc, sizeof(lv_img_decoder_dsc_t)); - d248: 4b17 ldr r3, [pc, #92] ; (d2a8 ) - d24a: 2120 movs r1, #32 - d24c: 4620 mov r0, r4 - d24e: 4798 blx r3 -} - d250: 4630 mov r0, r6 - d252: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} - dsc->src = src; - d256: 6067 str r7, [r4, #4] - d258: e7e9 b.n d22e - if(d->info_cb == NULL || d->open_cb == NULL) continue; - d25a: 682b ldr r3, [r5, #0] - d25c: b19b cbz r3, d286 - d25e: 686a ldr r2, [r5, #4] - d260: b18a cbz r2, d286 - res = d->info_cb(d, src, &dsc->header); - d262: 4642 mov r2, r8 - d264: 4639 mov r1, r7 - d266: 4628 mov r0, r5 - d268: 4798 blx r3 - if(res != LV_RES_OK) continue; - d26a: 2801 cmp r0, #1 - res = d->info_cb(d, src, &dsc->header); - d26c: 4606 mov r6, r0 - if(res != LV_RES_OK) continue; - d26e: d10a bne.n d286 - dsc->error_msg = NULL; - d270: 2300 movs r3, #0 - d272: 61a3 str r3, [r4, #24] - dsc->img_data = NULL; - d274: 6123 str r3, [r4, #16] - dsc->decoder = d; - d276: 6025 str r5, [r4, #0] - res = d->open_cb(d, dsc); - d278: 686b ldr r3, [r5, #4] - d27a: 4621 mov r1, r4 - d27c: 4628 mov r0, r5 - d27e: 4798 blx r3 - if(res == LV_RES_OK) break; - d280: 2801 cmp r0, #1 - res = d->open_cb(d, dsc); - d282: 4606 mov r6, r0 - if(res == LV_RES_OK) break; - d284: d0e4 beq.n d250 - _LV_LL_READ(LV_GC_ROOT(_lv_img_defoder_ll), d) { - d286: 4629 mov r1, r5 - d288: 4648 mov r0, r9 - d28a: 47d0 blx sl - d28c: 4605 mov r5, r0 - d28e: e7d9 b.n d244 - d290: 00007a89 .word 0x00007a89 - d294: 00017481 .word 0x00017481 - d298: 0000ecbd .word 0x0000ecbd - d29c: 0001739d .word 0x0001739d - d2a0: 20003624 .word 0x20003624 - d2a4: 0000e92d .word 0x0000e92d - d2a8: 0000f2a9 .word 0x0000f2a9 - d2ac: 0000e939 .word 0x0000e939 - -0000d2b0 : -{ - d2b0: b573 push {r0, r1, r4, r5, r6, lr} - if(dsc->decoder->read_line_cb) res = dsc->decoder->read_line_cb(dsc->decoder, dsc, x, y, len, buf); - d2b2: 6805 ldr r5, [r0, #0] - d2b4: 68ac ldr r4, [r5, #8] - d2b6: b14c cbz r4, d2cc - d2b8: 9e06 ldr r6, [sp, #24] - d2ba: e9cd 3600 strd r3, r6, [sp] - d2be: 4613 mov r3, r2 - d2c0: 460a mov r2, r1 - d2c2: 4601 mov r1, r0 - d2c4: 4628 mov r0, r5 - d2c6: 47a0 blx r4 -} - d2c8: b002 add sp, #8 - d2ca: bd70 pop {r4, r5, r6, pc} - lv_res_t res = LV_RES_INV; - d2cc: 4620 mov r0, r4 - d2ce: e7fb b.n d2c8 - -0000d2d0 : -{ - d2d0: b510 push {r4, lr} - d2d2: 4604 mov r4, r0 - if(dsc->decoder) { - d2d4: 6800 ldr r0, [r0, #0] - d2d6: b158 cbz r0, d2f0 - if(dsc->decoder->close_cb) dsc->decoder->close_cb(dsc->decoder, dsc); - d2d8: 68c3 ldr r3, [r0, #12] - d2da: b10b cbz r3, d2e0 - d2dc: 4621 mov r1, r4 - d2de: 4798 blx r3 - if(dsc->src_type == LV_IMG_SRC_FILE) { - d2e0: 7aa3 ldrb r3, [r4, #10] - d2e2: 2b01 cmp r3, #1 - d2e4: d104 bne.n d2f0 - lv_mem_free(dsc->src); - d2e6: 4b03 ldr r3, [pc, #12] ; (d2f4 ) - d2e8: 6860 ldr r0, [r4, #4] - d2ea: 4798 blx r3 - dsc->src = NULL; - d2ec: 2300 movs r3, #0 - d2ee: 6063 str r3, [r4, #4] -} - d2f0: bd10 pop {r4, pc} - d2f2: bf00 nop - d2f4: 0000ed75 .word 0x0000ed75 - -0000d2f8 : -{ - d2f8: b573 push {r0, r1, r4, r5, r6, lr} - decoder = _lv_ll_ins_head(&LV_GC_ROOT(_lv_img_defoder_ll)); - d2fa: 4b0e ldr r3, [pc, #56] ; (d334 ) - d2fc: 480e ldr r0, [pc, #56] ; (d338 ) - d2fe: 4798 blx r3 - LV_ASSERT_MEM(decoder); - d300: 4b0e ldr r3, [pc, #56] ; (d33c ) - decoder = _lv_ll_ins_head(&LV_GC_ROOT(_lv_img_defoder_ll)); - d302: 4604 mov r4, r0 - LV_ASSERT_MEM(decoder); - d304: 4798 blx r3 - d306: 4605 mov r5, r0 - d308: b960 cbnz r0, d324 - d30a: 4b0d ldr r3, [pc, #52] ; (d340 ) - d30c: 490d ldr r1, [pc, #52] ; (d344 ) - d30e: 9300 str r3, [sp, #0] - d310: 22c9 movs r2, #201 ; 0xc9 - d312: 2003 movs r0, #3 - d314: 4e0c ldr r6, [pc, #48] ; (d348 ) - d316: 47b0 blx r6 - d318: 480c ldr r0, [pc, #48] ; (d34c ) - d31a: 490d ldr r1, [pc, #52] ; (d350 ) - d31c: 4622 mov r2, r4 - d31e: 462b mov r3, r5 - d320: 4788 blx r1 - d322: e7fe b.n d322 - if(decoder == NULL) return NULL; - d324: b11c cbz r4, d32e - _lv_memset_00(decoder, sizeof(lv_img_decoder_t)); - d326: 4b0b ldr r3, [pc, #44] ; (d354 ) - d328: 2110 movs r1, #16 - d32a: 4620 mov r0, r4 - d32c: 4798 blx r3 -} - d32e: 4620 mov r0, r4 - d330: b002 add sp, #8 - d332: bd70 pop {r4, r5, r6, pc} - d334: 0000e89d .word 0x0000e89d - d338: 20003624 .word 0x20003624 - d33c: 00001a65 .word 0x00001a65 - d340: 00027bf4 .word 0x00027bf4 - d344: 000279bb .word 0x000279bb - d348: 0000eb79 .word 0x0000eb79 - d34c: 00026842 .word 0x00026842 - d350: 00001a6d .word 0x00001a6d - d354: 0000f2a9 .word 0x0000f2a9 - -0000d358 <_lv_img_decoder_init>: -{ - d358: b537 push {r0, r1, r2, r4, r5, lr} - _lv_ll_init(&LV_GC_ROOT(_lv_img_defoder_ll), sizeof(lv_img_decoder_t)); - d35a: 4b15 ldr r3, [pc, #84] ; (d3b0 <_lv_img_decoder_init+0x58>) - d35c: 4815 ldr r0, [pc, #84] ; (d3b4 <_lv_img_decoder_init+0x5c>) - d35e: 2110 movs r1, #16 - d360: 4798 blx r3 - decoder = lv_img_decoder_create(); - d362: 4b15 ldr r3, [pc, #84] ; (d3b8 <_lv_img_decoder_init+0x60>) - d364: 4798 blx r3 - if(decoder == NULL) { - d366: 4604 mov r4, r0 - d368: b9b8 cbnz r0, d39a <_lv_img_decoder_init+0x42> - LV_LOG_WARN("lv_img_decoder_init: out of memory"); - d36a: 4a14 ldr r2, [pc, #80] ; (d3bc <_lv_img_decoder_init+0x64>) - d36c: 9200 str r2, [sp, #0] - d36e: 2002 movs r0, #2 - d370: 2247 movs r2, #71 ; 0x47 - d372: 4b13 ldr r3, [pc, #76] ; (d3c0 <_lv_img_decoder_init+0x68>) - d374: 4913 ldr r1, [pc, #76] ; (d3c4 <_lv_img_decoder_init+0x6c>) - d376: 4d14 ldr r5, [pc, #80] ; (d3c8 <_lv_img_decoder_init+0x70>) - d378: 47a8 blx r5 - LV_ASSERT_MEM(decoder); - d37a: 4a14 ldr r2, [pc, #80] ; (d3cc <_lv_img_decoder_init+0x74>) - d37c: 4620 mov r0, r4 - d37e: 4790 blx r2 - d380: b998 cbnz r0, d3aa <_lv_img_decoder_init+0x52> - d382: 4b0f ldr r3, [pc, #60] ; (d3c0 <_lv_img_decoder_init+0x68>) - d384: 490f ldr r1, [pc, #60] ; (d3c4 <_lv_img_decoder_init+0x6c>) - d386: 9300 str r3, [sp, #0] - d388: 2248 movs r2, #72 ; 0x48 - d38a: 2003 movs r0, #3 - d38c: 47a8 blx r5 - d38e: 4810 ldr r0, [pc, #64] ; (d3d0 <_lv_img_decoder_init+0x78>) - d390: 4910 ldr r1, [pc, #64] ; (d3d4 <_lv_img_decoder_init+0x7c>) - d392: 2200 movs r2, #0 - d394: 2300 movs r3, #0 - d396: 4788 blx r1 - d398: e7fe b.n d398 <_lv_img_decoder_init+0x40> - decoder->info_cb = info_cb; - d39a: 4b0f ldr r3, [pc, #60] ; (d3d8 <_lv_img_decoder_init+0x80>) - d39c: 6003 str r3, [r0, #0] - decoder->open_cb = open_cb; - d39e: 4b0f ldr r3, [pc, #60] ; (d3dc <_lv_img_decoder_init+0x84>) - d3a0: 6043 str r3, [r0, #4] - decoder->read_line_cb = read_line_cb; - d3a2: 4b0f ldr r3, [pc, #60] ; (d3e0 <_lv_img_decoder_init+0x88>) - d3a4: 6083 str r3, [r0, #8] - decoder->close_cb = close_cb; - d3a6: 4b0f ldr r3, [pc, #60] ; (d3e4 <_lv_img_decoder_init+0x8c>) - d3a8: 60c3 str r3, [r0, #12] -} - d3aa: b003 add sp, #12 - d3ac: bd30 pop {r4, r5, pc} - d3ae: bf00 nop - d3b0: 0000e889 .word 0x0000e889 - d3b4: 20003624 .word 0x20003624 - d3b8: 0000d2f9 .word 0x0000d2f9 - d3bc: 00027b3d .word 0x00027b3d - d3c0: 00027c0a .word 0x00027c0a - d3c4: 000279bb .word 0x000279bb - d3c8: 0000eb79 .word 0x0000eb79 - d3cc: 00001a65 .word 0x00001a65 - d3d0: 00026842 .word 0x00026842 - d3d4: 00001a6d .word 0x00001a6d - d3d8: 0000c9e1 .word 0x0000c9e1 - d3dc: 0000cec1 .word 0x0000cec1 - d3e0: 0000caf5 .word 0x0000caf5 - d3e4: 0000cac1 .word 0x0000cac1 - -0000d3e8 : - * @param letter an UNICODE character code - * @return pointer to the bitmap of the letter - */ -const uint8_t * lv_font_get_glyph_bitmap(const lv_font_t * font_p, uint32_t letter) -{ - return font_p->get_glyph_bitmap(font_p, letter); - d3e8: 6843 ldr r3, [r0, #4] - d3ea: 4718 bx r3 - -0000d3ec : - * @return true: descriptor is successfully loaded into `dsc_out`. - * false: the letter was not found, no data is loaded to `dsc_out` - */ -bool lv_font_get_glyph_dsc(const lv_font_t * font_p, lv_font_glyph_dsc_t * dsc_out, uint32_t letter, - uint32_t letter_next) -{ - d3ec: b410 push {r4} - return font_p->get_glyph_dsc(font_p, dsc_out, letter, letter_next); - d3ee: 6804 ldr r4, [r0, #0] - d3f0: 46a4 mov ip, r4 -} - d3f2: f85d 4b04 ldr.w r4, [sp], #4 - return font_p->get_glyph_dsc(font_p, dsc_out, letter, letter_next); - d3f6: 4760 bx ip - -0000d3f8 : - * @param letter an UNICODE letter - * @param letter_next the next letter after `letter`. Used for kerning - * @return the width of the glyph - */ -uint16_t lv_font_get_glyph_width(const lv_font_t * font, uint32_t letter, uint32_t letter_next) -{ - d3f8: b51f push {r0, r1, r2, r3, r4, lr} - d3fa: 4613 mov r3, r2 - lv_font_glyph_dsc_t g; - bool ret; - ret = lv_font_get_glyph_dsc(font, &g, letter, letter_next); - d3fc: 4c04 ldr r4, [pc, #16] ; (d410 ) - d3fe: 460a mov r2, r1 - d400: a901 add r1, sp, #4 - d402: 47a0 blx r4 - if(ret) return g.adv_w; - d404: b108 cbz r0, d40a - d406: f8bd 0004 ldrh.w r0, [sp, #4] - else return 0; -} - d40a: b004 add sp, #16 - d40c: bd10 pop {r4, pc} - d40e: bf00 nop - d410: 0000d3ed .word 0x0000d3ed - -0000d414 : -{ - const uint8_t * ref8_p = ref; - const uint8_t * element8_p = element; - - /*If the MSB is different it will matter. If not return the diff. of the LSB*/ - if(ref8_p[0] != element8_p[0]) return (int32_t)ref8_p[0] - element8_p[0]; - d414: 7803 ldrb r3, [r0, #0] - d416: 780a ldrb r2, [r1, #0] - d418: 4293 cmp r3, r2 - else return (int32_t) ref8_p[1] - element8_p[1]; - d41a: bf09 itett eq - d41c: 784b ldrbeq r3, [r1, #1] - if(ref8_p[0] != element8_p[0]) return (int32_t)ref8_p[0] - element8_p[0]; - d41e: 1a98 subne r0, r3, r2 - else return (int32_t) ref8_p[1] - element8_p[1]; - d420: 7840 ldrbeq r0, [r0, #1] - d422: 1ac0 subeq r0, r0, r3 - -} - d424: 4770 bx lr - -0000d426 : -{ - const uint16_t * ref16_p = ref; - const uint16_t * element16_p = element; - - /*If the MSB is different it will matter. If not return the diff. of the LSB*/ - if(ref16_p[0] != element16_p[0]) return (int32_t)ref16_p[0] - element16_p[0]; - d426: 8803 ldrh r3, [r0, #0] - d428: 880a ldrh r2, [r1, #0] - d42a: 4293 cmp r3, r2 - else return (int32_t) ref16_p[1] - element16_p[1]; - d42c: bf09 itett eq - d42e: 884b ldrheq r3, [r1, #2] - if(ref16_p[0] != element16_p[0]) return (int32_t)ref16_p[0] - element16_p[0]; - d430: 1a98 subne r0, r3, r2 - else return (int32_t) ref16_p[1] - element16_p[1]; - d432: 8840 ldrheq r0, [r0, #2] - d434: 1ac0 subeq r0, r0, r3 -} - d436: 4770 bx lr - -0000d438 : - * @return the read bits - */ -static inline uint8_t get_bits(const uint8_t * in, uint32_t bit_pos, uint8_t len) -{ - uint8_t bit_mask; - switch(len) { - d438: 1e53 subs r3, r2, #1 -{ - d43a: b530 push {r4, r5, lr} - switch(len) { - d43c: 2b07 cmp r3, #7 - d43e: d81f bhi.n d480 - d440: e8df f003 tbb [pc, r3] - d444: 1a180423 .word 0x1a180423 - d448: 1c1e1e1e .word 0x1c1e1e1e - case 1: - bit_mask = 0x1; - break; - case 2: - bit_mask = 0x3; - d44c: 2303 movs r3, #3 - break; - default: - bit_mask = (uint16_t)((uint16_t) 1 << len) - 1; - } - - uint32_t byte_pos = bit_pos >> 3; - d44e: 08cd lsrs r5, r1, #3 - bit_pos = bit_pos & 0x7; - d450: f001 0107 and.w r1, r1, #7 - - if(bit_pos + len >= 8) { - d454: 440a add r2, r1 - d456: 2a07 cmp r2, #7 - uint16_t in16 = (in[byte_pos] << 8) + in[byte_pos + 1]; - d458: 5d44 ldrb r4, [r0, r5] - if(bit_pos + len >= 8) { - d45a: d918 bls.n d48e - uint16_t in16 = (in[byte_pos] << 8) + in[byte_pos + 1]; - d45c: 4428 add r0, r5 - return (in16 >> (16 - bit_pos - len)) & bit_mask; - d45e: f1c2 0210 rsb r2, r2, #16 - uint16_t in16 = (in[byte_pos] << 8) + in[byte_pos + 1]; - d462: 7841 ldrb r1, [r0, #1] - d464: eb01 2104 add.w r1, r1, r4, lsl #8 - return (in16 >> (16 - bit_pos - len)) & bit_mask; - d468: b289 uxth r1, r1 - d46a: fa41 f202 asr.w r2, r1, r2 - d46e: ea03 0002 and.w r0, r3, r2 - } - else { - return (in[byte_pos] >> (8 - bit_pos - len)) & bit_mask; - } -} - d472: bd30 pop {r4, r5, pc} - bit_mask = 0x7; - d474: 2307 movs r3, #7 - break; - d476: e7ea b.n d44e - bit_mask = 0xF; - d478: 230f movs r3, #15 - break; - d47a: e7e8 b.n d44e - bit_mask = 0xFF; - d47c: 23ff movs r3, #255 ; 0xff - break; - d47e: e7e6 b.n d44e - bit_mask = (uint16_t)((uint16_t) 1 << len) - 1; - d480: 2301 movs r3, #1 - d482: 4093 lsls r3, r2 - d484: 3b01 subs r3, #1 - d486: b2db uxtb r3, r3 - d488: e7e1 b.n d44e - switch(len) { - d48a: 4613 mov r3, r2 - d48c: e7df b.n d44e - return (in[byte_pos] >> (8 - bit_pos - len)) & bit_mask; - d48e: f1c2 0208 rsb r2, r2, #8 - d492: 4114 asrs r4, r2 - d494: ea03 0004 and.w r0, r3, r4 - d498: e7eb b.n d472 - ... - -0000d49c : - * @param len length of bits to write from `val`. (Counted from the LSB). - * @note `len == 3` will be converted to `len = 4` and `val` will be upscaled too - */ -static inline void bits_write(uint8_t * out, uint32_t bit_pos, uint8_t val, uint8_t len) -{ - if(len == 3) { - d49c: 2b03 cmp r3, #3 -{ - d49e: b530 push {r4, r5, lr} - if(len == 3) { - d4a0: d104 bne.n d4ac - len = 4; - switch(val) { - d4a2: 2a07 cmp r2, #7 - d4a4: bf9c itt ls - d4a6: 4b0b ldrls r3, [pc, #44] ; (d4d4 ) - d4a8: 5c9a ldrbls r2, [r3, r2] - len = 4; - d4aa: 2304 movs r3, #4 - break; - } - } - - uint16_t byte_pos = bit_pos >> 3; - bit_pos = bit_pos & 0x7; - d4ac: f001 0507 and.w r5, r1, #7 - bit_pos = 8 - bit_pos - len; - - uint8_t bit_mask = (uint16_t)((uint16_t) 1 << len) - 1; - out[byte_pos] &= ((~bit_mask) << bit_pos); - d4b0: f04f 34ff mov.w r4, #4294967295 ; 0xffffffff - d4b4: f3c1 01cf ubfx r1, r1, #3, #16 - d4b8: f1c5 0508 rsb r5, r5, #8 - bit_pos = 8 - bit_pos - len; - d4bc: 1aed subs r5, r5, r3 - out[byte_pos] &= ((~bit_mask) << bit_pos); - d4be: fa04 f303 lsl.w r3, r4, r3 - d4c2: f063 03ff orn r3, r3, #255 ; 0xff - d4c6: 5c44 ldrb r4, [r0, r1] - d4c8: 40ab lsls r3, r5 - d4ca: 4023 ands r3, r4 - out[byte_pos] |= (val << bit_pos); - d4cc: 40aa lsls r2, r5 - d4ce: 431a orrs r2, r3 - d4d0: 5442 strb r2, [r0, r1] -} - d4d2: bd30 pop {r4, r5, pc} - d4d4: 00027c57 .word 0x00027c57 - -0000d4d8 : -{ - d4d8: e92d 4ff7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr} - } - else if(rle_state == RLE_STATE_COUNTER) { - ret = rle_prev_v; - rle_cnt--; - if(rle_cnt == 0) { - ret = get_bits(rle_in, rle_rdp, rle_bpp); - d4dc: 4c39 ldr r4, [pc, #228] ; (d5c4 ) - d4de: f8df a0e8 ldr.w sl, [pc, #232] ; d5c8 - d4e2: f8d4 9000 ldr.w r9, [r4] - d4e6: 7927 ldrb r7, [r4, #4] - d4e8: 1843 adds r3, r0, r1 - d4ea: 4680 mov r8, r0 - d4ec: 9300 str r3, [sp, #0] - rle_state = RLE_STATE_COUNTER; - d4ee: f04f 0b02 mov.w fp, #2 - for(i = 0; i < w; i++) { - d4f2: 9b00 ldr r3, [sp, #0] - d4f4: 4543 cmp r3, r8 - d4f6: d102 bne.n d4fe -} - d4f8: b003 add sp, #12 - d4fa: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - if(rle_state == RLE_STATE_SINGLE) { - d4fe: 7963 ldrb r3, [r4, #5] - d500: b9a3 cbnz r3, d52c - ret = get_bits(rle_in, rle_rdp, rle_bpp); - d502: 68a6 ldr r6, [r4, #8] - d504: 9301 str r3, [sp, #4] - d506: 463a mov r2, r7 - d508: 4631 mov r1, r6 - d50a: 4648 mov r0, r9 - d50c: 47d0 blx sl - d50e: 4605 mov r5, r0 - if(rle_rdp != 0 && rle_prev_v == ret) { - d510: b136 cbz r6, d520 - d512: 7b22 ldrb r2, [r4, #12] - d514: 9b01 ldr r3, [sp, #4] - d516: 4282 cmp r2, r0 - rle_cnt = 0; - d518: bf02 ittt eq - d51a: 7363 strbeq r3, [r4, #13] - rle_state = RLE_STATE_REPEATE; - d51c: 2301 moveq r3, #1 - d51e: 7163 strbeq r3, [r4, #5] - rle_rdp += rle_bpp; - d520: 443e add r6, r7 - rle_prev_v = ret; - d522: 7325 strb r5, [r4, #12] - rle_rdp += rle_bpp; - d524: 60a6 str r6, [r4, #8] - out[i] = rle_next(); - d526: f808 5b01 strb.w r5, [r8], #1 - for(i = 0; i < w; i++) { - d52a: e7e2 b.n d4f2 - else if(rle_state == RLE_STATE_REPEATE) { - d52c: 2b01 cmp r3, #1 - d52e: d131 bne.n d594 - v = get_bits(rle_in, rle_rdp, 1); - d530: 68a6 ldr r6, [r4, #8] - d532: 461a mov r2, r3 - d534: 4631 mov r1, r6 - d536: 4648 mov r0, r9 - d538: 47d0 blx sl - rle_cnt++; - d53a: 7b63 ldrb r3, [r4, #13] - d53c: 3301 adds r3, #1 - d53e: b2db uxtb r3, r3 - rle_rdp += 1; - d540: 1c71 adds r1, r6, #1 - if(v == 1) { - d542: 2801 cmp r0, #1 - rle_cnt++; - d544: 7363 strb r3, [r4, #13] - rle_rdp += 1; - d546: 60a1 str r1, [r4, #8] - if(v == 1) { - d548: d118 bne.n d57c - if(rle_cnt == 11) { - d54a: 2b0b cmp r3, #11 - ret = rle_prev_v; - d54c: 7b25 ldrb r5, [r4, #12] - if(rle_cnt == 11) { - d54e: d1ea bne.n d526 - rle_cnt = get_bits(rle_in, rle_rdp, 6); - d550: 2206 movs r2, #6 - d552: 4648 mov r0, r9 - d554: 47d0 blx sl - rle_rdp += 6; - d556: 3607 adds r6, #7 - rle_cnt = get_bits(rle_in, rle_rdp, 6); - d558: 7360 strb r0, [r4, #13] - rle_rdp += 6; - d55a: 60a6 str r6, [r4, #8] - if(rle_cnt != 0) { - d55c: b110 cbz r0, d564 - rle_state = RLE_STATE_COUNTER; - d55e: f884 b005 strb.w fp, [r4, #5] - d562: e7e0 b.n d526 - d564: 9001 str r0, [sp, #4] - ret = get_bits(rle_in, rle_rdp, rle_bpp); - d566: 4631 mov r1, r6 - d568: 463a mov r2, r7 - d56a: 4648 mov r0, r9 - d56c: 47d0 blx sl - rle_rdp += rle_bpp; - d56e: 443e add r6, r7 - rle_state = RLE_STATE_SINGLE; - d570: 9b01 ldr r3, [sp, #4] - rle_prev_v = ret; - d572: 7320 strb r0, [r4, #12] - ret = get_bits(rle_in, rle_rdp, rle_bpp); - d574: 4605 mov r5, r0 - rle_rdp += rle_bpp; - d576: 60a6 str r6, [r4, #8] - rle_state = RLE_STATE_SINGLE; - d578: 7163 strb r3, [r4, #5] - d57a: e7d4 b.n d526 - ret = get_bits(rle_in, rle_rdp, rle_bpp); - d57c: 463a mov r2, r7 - d57e: 4648 mov r0, r9 - d580: 9101 str r1, [sp, #4] - d582: 47d0 blx sl - rle_rdp += rle_bpp; - d584: 9901 ldr r1, [sp, #4] - rle_prev_v = ret; - d586: 7320 strb r0, [r4, #12] - rle_rdp += rle_bpp; - d588: 4439 add r1, r7 - ret = get_bits(rle_in, rle_rdp, rle_bpp); - d58a: 4605 mov r5, r0 - rle_rdp += rle_bpp; - d58c: 60a1 str r1, [r4, #8] - rle_state = RLE_STATE_SINGLE; - d58e: f04f 0300 mov.w r3, #0 - d592: e7f1 b.n d578 - else if(rle_state == RLE_STATE_COUNTER) { - d594: 2b02 cmp r3, #2 - d596: d112 bne.n d5be - rle_cnt--; - d598: 7b66 ldrb r6, [r4, #13] - ret = rle_prev_v; - d59a: 7b25 ldrb r5, [r4, #12] - rle_cnt--; - d59c: 3e01 subs r6, #1 - d59e: b2f6 uxtb r6, r6 - d5a0: 7366 strb r6, [r4, #13] - if(rle_cnt == 0) { - d5a2: 2e00 cmp r6, #0 - d5a4: d1bf bne.n d526 - ret = get_bits(rle_in, rle_rdp, rle_bpp); - d5a6: 68a1 ldr r1, [r4, #8] - d5a8: 9101 str r1, [sp, #4] - d5aa: 463a mov r2, r7 - d5ac: 4648 mov r0, r9 - d5ae: 47d0 blx sl - rle_prev_v = ret; - rle_rdp += rle_bpp; - d5b0: 9901 ldr r1, [sp, #4] - rle_prev_v = ret; - d5b2: 7320 strb r0, [r4, #12] - rle_rdp += rle_bpp; - d5b4: 4439 add r1, r7 - ret = get_bits(rle_in, rle_rdp, rle_bpp); - d5b6: 4605 mov r5, r0 - rle_rdp += rle_bpp; - d5b8: 60a1 str r1, [r4, #8] - rle_state = RLE_STATE_SINGLE; - d5ba: 7166 strb r6, [r4, #5] - d5bc: e7b3 b.n d526 - uint8_t ret = 0; - d5be: 2500 movs r5, #0 - d5c0: e7b1 b.n d526 - d5c2: bf00 nop - d5c4: 200035a4 .word 0x200035a4 - d5c8: 0000d439 .word 0x0000d439 - -0000d5cc : - * @retval > 0 Reference is less than element. - * - */ -static int32_t unicode_list_compare(const void * ref, const void * element) -{ - return ((int32_t)(*(uint16_t *)ref)) - ((int32_t)(*(uint16_t *)element)); - d5cc: 8800 ldrh r0, [r0, #0] - d5ce: 880b ldrh r3, [r1, #0] -} - d5d0: 1ac0 subs r0, r0, r3 - d5d2: 4770 bx lr - -0000d5d4 : -{ - d5d4: b5f0 push {r4, r5, r6, r7, lr} - if(letter == '\0') return 0; - d5d6: 460c mov r4, r1 -{ - d5d8: b085 sub sp, #20 - if(letter == '\0') return 0; - d5da: b121 cbz r1, d5e6 - d5dc: 6905 ldr r5, [r0, #16] - if(letter == fdsc->last_letter) return fdsc->last_glyph_id; - d5de: 69ab ldr r3, [r5, #24] - d5e0: 4299 cmp r1, r3 - d5e2: d146 bne.n d672 - d5e4: 69ec ldr r4, [r5, #28] -} - d5e6: 4620 mov r0, r4 - d5e8: b005 add sp, #20 - d5ea: bdf0 pop {r4, r5, r6, r7, pc} - uint32_t rcp = letter - fdsc->cmaps[i].range_start; - d5ec: 68aa ldr r2, [r5, #8] - d5ee: fb00 f603 mul.w r6, r0, r3 - d5f2: 1991 adds r1, r2, r6 - d5f4: 5992 ldr r2, [r2, r6] - if(rcp > fdsc->cmaps[i].range_length) continue; - d5f6: 888f ldrh r7, [r1, #4] - uint32_t rcp = letter - fdsc->cmaps[i].range_start; - d5f8: 1aa2 subs r2, r4, r2 - if(rcp > fdsc->cmaps[i].range_length) continue; - d5fa: 42ba cmp r2, r7 - uint32_t rcp = letter - fdsc->cmaps[i].range_start; - d5fc: 9203 str r2, [sp, #12] - if(rcp > fdsc->cmaps[i].range_length) continue; - d5fe: f103 0301 add.w r3, r3, #1 - d602: d838 bhi.n d676 - if(fdsc->cmaps[i].type == LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY) { - d604: 7c8b ldrb r3, [r1, #18] - d606: b913 cbnz r3, d60e - glyph_id = fdsc->cmaps[i].glyph_id_start + rcp; - d608: 88cb ldrh r3, [r1, #6] - glyph_id = fdsc->cmaps[i].glyph_id_start + gid_ofs_16[ofs]; - d60a: 4413 add r3, r2 - d60c: e010 b.n d630 - else if(fdsc->cmaps[i].type == LV_FONT_FMT_TXT_CMAP_FORMAT0_FULL) { - d60e: 2b01 cmp r3, #1 - d610: d103 bne.n d61a - glyph_id = fdsc->cmaps[i].glyph_id_start + gid_ofs_8[rcp]; - d612: 68cb ldr r3, [r1, #12] - d614: 5c9b ldrb r3, [r3, r2] - d616: 88ca ldrh r2, [r1, #6] - d618: e7f7 b.n d60a - else if(fdsc->cmaps[i].type == LV_FONT_FMT_TXT_CMAP_SPARSE_TINY) { - d61a: 2b02 cmp r3, #2 - d61c: d114 bne.n d648 - uint8_t * p = _lv_utils_bsearch(&rcp, fdsc->cmaps[i].unicode_list, fdsc->cmaps[i].list_length, - d61e: 481b ldr r0, [pc, #108] ; (d68c ) - d620: 8a0a ldrh r2, [r1, #16] - d622: 9000 str r0, [sp, #0] - d624: 6889 ldr r1, [r1, #8] - d626: 4f1a ldr r7, [pc, #104] ; (d690 ) - d628: a803 add r0, sp, #12 - d62a: 47b8 blx r7 - if(p) { - d62c: b920 cbnz r0, d638 - uint32_t glyph_id = 0; - d62e: 2300 movs r3, #0 - fdsc->last_glyph_id = glyph_id; - d630: e9c5 4306 strd r4, r3, [r5, #24] - return glyph_id; - d634: 461c mov r4, r3 - d636: e7d6 b.n d5e6 - lv_uintptr_t ofs = (lv_uintptr_t)(p - (uint8_t *) fdsc->cmaps[i].unicode_list); - d638: 68ab ldr r3, [r5, #8] - d63a: 4433 add r3, r6 - d63c: 689a ldr r2, [r3, #8] - glyph_id = fdsc->cmaps[i].glyph_id_start + ofs; - d63e: 88db ldrh r3, [r3, #6] - lv_uintptr_t ofs = (lv_uintptr_t)(p - (uint8_t *) fdsc->cmaps[i].unicode_list); - d640: 1a80 subs r0, r0, r2 - glyph_id = fdsc->cmaps[i].glyph_id_start + ofs; - d642: eb03 0350 add.w r3, r3, r0, lsr #1 - d646: e7f3 b.n d630 - else if(fdsc->cmaps[i].type == LV_FONT_FMT_TXT_CMAP_SPARSE_FULL) { - d648: 2b03 cmp r3, #3 - d64a: d1f0 bne.n d62e - uint8_t * p = _lv_utils_bsearch(&rcp, fdsc->cmaps[i].unicode_list, fdsc->cmaps[i].list_length, - d64c: 4b0f ldr r3, [pc, #60] ; (d68c ) - d64e: 8a0a ldrh r2, [r1, #16] - d650: 9300 str r3, [sp, #0] - d652: 6889 ldr r1, [r1, #8] - d654: 4f0e ldr r7, [pc, #56] ; (d690 ) - d656: 2302 movs r3, #2 - d658: a803 add r0, sp, #12 - d65a: 47b8 blx r7 - if(p) { - d65c: 2800 cmp r0, #0 - d65e: d0e6 beq.n d62e - lv_uintptr_t ofs = (lv_uintptr_t)(p - (uint8_t *) fdsc->cmaps[i].unicode_list); - d660: 68aa ldr r2, [r5, #8] - d662: 4432 add r2, r6 - d664: 6893 ldr r3, [r2, #8] - d666: 1ac0 subs r0, r0, r3 - ofs = ofs >> 1; /*The list stores `uint16_t` so the get the index divide by 2*/ - d668: 0840 lsrs r0, r0, #1 - glyph_id = fdsc->cmaps[i].glyph_id_start + gid_ofs_16[ofs]; - d66a: 68d3 ldr r3, [r2, #12] - d66c: 88d2 ldrh r2, [r2, #6] - d66e: 5c1b ldrb r3, [r3, r0] - d670: e7cb b.n d60a - d672: 2300 movs r3, #0 - d674: 2014 movs r0, #20 - for(i = 0; i < fdsc->cmap_num; i++) { - d676: 8a6a ldrh r2, [r5, #18] - d678: b299 uxth r1, r3 - d67a: f3c2 0209 ubfx r2, r2, #0, #10 - d67e: 428a cmp r2, r1 - d680: d8b4 bhi.n d5ec - fdsc->last_letter = letter; - d682: 61ac str r4, [r5, #24] - fdsc->last_glyph_id = 0; - d684: 2400 movs r4, #0 - d686: 61ec str r4, [r5, #28] - return 0; - d688: e7ad b.n d5e6 - d68a: bf00 nop - d68c: 0000d5cd .word 0x0000d5cd - d690: 0001051d .word 0x0001051d - -0000d694 : -{ - d694: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - d698: ed2d 8b02 vpush {d8} - if(unicode_letter == '\t') unicode_letter = ' '; - d69c: 2909 cmp r1, #9 - uint32_t gid = get_glyph_dsc_id(font, unicode_letter); - d69e: 4b68 ldr r3, [pc, #416] ; (d840 ) - lv_font_fmt_txt_dsc_t * fdsc = (lv_font_fmt_txt_dsc_t *) font->dsc; - d6a0: 6905 ldr r5, [r0, #16] -{ - d6a2: b08b sub sp, #44 ; 0x2c - uint32_t gid = get_glyph_dsc_id(font, unicode_letter); - d6a4: bf08 it eq - d6a6: 2120 moveq r1, #32 - d6a8: 4798 blx r3 - if(!gid) return NULL; - d6aa: 4607 mov r7, r0 - d6ac: b928 cbnz r0, d6ba - d6ae: 2000 movs r0, #0 -} - d6b0: b00b add sp, #44 ; 0x2c - d6b2: ecbd 8b02 vpop {d8} - d6b6: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - if(fdsc->bitmap_format == LV_FONT_FMT_TXT_PLAIN) { - d6ba: 7d2b ldrb r3, [r5, #20] - const lv_font_fmt_txt_glyph_dsc_t * gdsc = &fdsc->glyph_dsc[gid]; - d6bc: f8d5 9004 ldr.w r9, [r5, #4] - if(fdsc->bitmap_format == LV_FONT_FMT_TXT_PLAIN) { - d6c0: 079b lsls r3, r3, #30 - const lv_font_fmt_txt_glyph_dsc_t * gdsc = &fdsc->glyph_dsc[gid]; - d6c2: eb09 08c0 add.w r8, r9, r0, lsl #3 - if(fdsc->bitmap_format == LV_FONT_FMT_TXT_PLAIN) { - d6c6: d109 bne.n d6dc - if(gdsc) return &fdsc->glyph_bitmap[gdsc->bitmap_index]; - d6c8: f1b8 0f00 cmp.w r8, #0 - d6cc: d0ef beq.n d6ae - d6ce: f859 3030 ldr.w r3, [r9, r0, lsl #3] - d6d2: 6828 ldr r0, [r5, #0] - d6d4: f3c3 0313 ubfx r3, r3, #0, #20 - d6d8: 4418 add r0, r3 - d6da: e7e9 b.n d6b0 - uint32_t gsize = gdsc->box_w * gdsc->box_h; - d6dc: f898 4004 ldrb.w r4, [r8, #4] - d6e0: f898 3005 ldrb.w r3, [r8, #5] - d6e4: fb14 f403 smulbb r4, r4, r3 - if(gsize == 0) return NULL; - d6e8: 2c00 cmp r4, #0 - d6ea: d0e0 beq.n d6ae - switch(fdsc->bpp) { - d6ec: 7ceb ldrb r3, [r5, #19] - d6ee: f3c3 0383 ubfx r3, r3, #2, #4 - d6f2: 3b01 subs r3, #1 - d6f4: 2b03 cmp r3, #3 - d6f6: d805 bhi.n d704 - d6f8: e8df f003 tbb [pc, r3] - d6fc: 53535002 .word 0x53535002 - buf_size = (gsize + 7) >> 3; - d700: 3407 adds r4, #7 - d702: 08e4 lsrs r4, r4, #3 - if(_lv_mem_get_size(decompr_buf) < buf_size) { - d704: 4e4f ldr r6, [pc, #316] ; (d844 ) - d706: 4b50 ldr r3, [pc, #320] ; (d848 ) - d708: 6930 ldr r0, [r6, #16] - d70a: 4798 blx r3 - d70c: 42a0 cmp r0, r4 - d70e: d34b bcc.n d7a8 - decompress(&fdsc->glyph_bitmap[gdsc->bitmap_index], decompr_buf, gdsc->box_w, gdsc->box_h, (uint8_t)fdsc->bpp); - d710: f859 2037 ldr.w r2, [r9, r7, lsl #3] - d714: 682b ldr r3, [r5, #0] - d716: 7ced ldrb r5, [r5, #19] - d718: f898 7004 ldrb.w r7, [r8, #4] - d71c: f3c2 0213 ubfx r2, r2, #0, #20 - d720: 4413 add r3, r2 - d722: 6932 ldr r2, [r6, #16] - rle_in = in; - d724: 6033 str r3, [r6, #0] - decompress(&fdsc->glyph_bitmap[gdsc->bitmap_index], decompr_buf, gdsc->box_w, gdsc->box_h, (uint8_t)fdsc->bpp); - d726: ee08 2a10 vmov s16, r2 - d72a: f898 2005 ldrb.w r2, [r8, #5] - d72e: 9207 str r2, [sp, #28] - d730: f3c5 0283 ubfx r2, r5, #2, #4 - d734: 2a03 cmp r2, #3 - rle_state = RLE_STATE_SINGLE; - d736: f04f 0b00 mov.w fp, #0 - decompress(&fdsc->glyph_bitmap[gdsc->bitmap_index], decompr_buf, gdsc->box_w, gdsc->box_h, (uint8_t)fdsc->bpp); - d73a: 4611 mov r1, r2 - rle_bpp = bpp; - d73c: 7132 strb r2, [r6, #4] - d73e: bf08 it eq - d740: 2104 moveq r1, #4 - rle_state = RLE_STATE_SINGLE; - d742: f886 b005 strb.w fp, [r6, #5] - rle_rdp = 0; - d746: f8c6 b008 str.w fp, [r6, #8] - rle_prev_v = 0; - d74a: f886 b00c strb.w fp, [r6, #12] - rle_cnt = 0; - d74e: f886 b00d strb.w fp, [r6, #13] - uint8_t * line_buf1 = _lv_mem_buf_get(w); - d752: 4638 mov r0, r7 - d754: 4e3d ldr r6, [pc, #244] ; (d84c ) - decompress(&fdsc->glyph_bitmap[gdsc->bitmap_index], decompr_buf, gdsc->box_w, gdsc->box_h, (uint8_t)fdsc->bpp); - d756: 9203 str r2, [sp, #12] - if(bpp == 3) wr_size = 4; - d758: 9104 str r1, [sp, #16] - uint8_t * line_buf1 = _lv_mem_buf_get(w); - d75a: 47b0 blx r6 - d75c: 4604 mov r4, r0 - uint8_t * line_buf2 = _lv_mem_buf_get(w); - d75e: 4638 mov r0, r7 - d760: 47b0 blx r6 - decompress_line(line_buf1, w); - d762: 4b3b ldr r3, [pc, #236] ; (d850 ) - uint8_t * line_buf2 = _lv_mem_buf_get(w); - d764: 4606 mov r6, r0 - decompress_line(line_buf1, w); - d766: 4639 mov r1, r7 - d768: 4620 mov r0, r4 - d76a: 4798 blx r3 - decompress(&fdsc->glyph_bitmap[gdsc->bitmap_index], decompr_buf, gdsc->box_w, gdsc->box_h, (uint8_t)fdsc->bpp); - d76c: 46b9 mov r9, r7 - d76e: 46a0 mov r8, r4 - d770: eb07 0a04 add.w sl, r7, r4 - for(x = 0; x < w; x++) { - d774: 45d0 cmp r8, sl - d776: d131 bne.n d7dc - d778: 9b04 ldr r3, [sp, #16] - d77a: fb17 f303 smulbb r3, r7, r3 - d77e: 9306 str r3, [sp, #24] - d780: 469a mov sl, r3 - for(y = 1; y < h; y++) { - d782: f04f 0801 mov.w r8, #1 - d786: 9b07 ldr r3, [sp, #28] - d788: 4543 cmp r3, r8 - d78a: dc32 bgt.n d7f2 - _lv_mem_buf_release(line_buf1); - d78c: 4620 mov r0, r4 - d78e: 4c31 ldr r4, [pc, #196] ; (d854 ) - d790: 47a0 blx r4 - _lv_mem_buf_release(line_buf2); - d792: 4630 mov r0, r6 - d794: 47a0 blx r4 - return decompr_buf; - d796: 4b2b ldr r3, [pc, #172] ; (d844 ) - d798: 6918 ldr r0, [r3, #16] - d79a: e789 b.n d6b0 - buf_size = (gsize + 3) >> 2; - d79c: 3403 adds r4, #3 - d79e: 08a4 lsrs r4, r4, #2 - break; - d7a0: e7b0 b.n d704 - buf_size = (gsize + 1) >> 1; - d7a2: 3401 adds r4, #1 - d7a4: 0864 lsrs r4, r4, #1 - break; - d7a6: e7ad b.n d704 - decompr_buf = lv_mem_realloc(decompr_buf, buf_size); - d7a8: 4621 mov r1, r4 - d7aa: 4b2b ldr r3, [pc, #172] ; (d858 ) - d7ac: 6930 ldr r0, [r6, #16] - d7ae: 4798 blx r3 - LV_ASSERT_MEM(decompr_buf); - d7b0: 4b2a ldr r3, [pc, #168] ; (d85c ) - decompr_buf = lv_mem_realloc(decompr_buf, buf_size); - d7b2: 6130 str r0, [r6, #16] - LV_ASSERT_MEM(decompr_buf); - d7b4: 4798 blx r3 - d7b6: 4604 mov r4, r0 - d7b8: b960 cbnz r0, d7d4 - d7ba: 4b29 ldr r3, [pc, #164] ; (d860 ) - d7bc: 4929 ldr r1, [pc, #164] ; (d864 ) - d7be: 9300 str r3, [sp, #0] - d7c0: 2272 movs r2, #114 ; 0x72 - d7c2: 2003 movs r0, #3 - d7c4: 4d28 ldr r5, [pc, #160] ; (d868 ) - d7c6: 47a8 blx r5 - d7c8: 6932 ldr r2, [r6, #16] - d7ca: 4828 ldr r0, [pc, #160] ; (d86c ) - d7cc: 4928 ldr r1, [pc, #160] ; (d870 ) - d7ce: 4623 mov r3, r4 - d7d0: 4788 blx r1 - d7d2: e7fe b.n d7d2 - if(decompr_buf == NULL) return NULL; - d7d4: 6933 ldr r3, [r6, #16] - d7d6: 2b00 cmp r3, #0 - d7d8: d19a bne.n d710 - d7da: e768 b.n d6ae - bits_write(out, wrp, line_buf1[x], bpp); - d7dc: 9b03 ldr r3, [sp, #12] - d7de: f818 2b01 ldrb.w r2, [r8], #1 - d7e2: 4d24 ldr r5, [pc, #144] ; (d874 ) - d7e4: 4659 mov r1, fp - d7e6: ee18 0a10 vmov r0, s16 - d7ea: 47a8 blx r5 - wrp += wr_size; - d7ec: 9b04 ldr r3, [sp, #16] - d7ee: 449b add fp, r3 - for(x = 0; x < w; x++) { - d7f0: e7c0 b.n d774 - decompress_line(line_buf2, w); - d7f2: 4b17 ldr r3, [pc, #92] ; (d850 ) - d7f4: 4649 mov r1, r9 - d7f6: 4630 mov r0, r6 - d7f8: 4798 blx r3 - for(x = 0; x < w; x++) { - d7fa: 1e63 subs r3, r4, #1 - d7fc: 9305 str r3, [sp, #20] - d7fe: 19f3 adds r3, r6, r7 - d800: 46b3 mov fp, r6 - d802: 9308 str r3, [sp, #32] - d804: 4651 mov r1, sl - d806: 9b08 ldr r3, [sp, #32] - d808: 459b cmp fp, r3 - d80a: d106 bne.n d81a - d80c: 9b06 ldr r3, [sp, #24] - d80e: f108 0801 add.w r8, r8, #1 - d812: 449a add sl, r3 - for(y = 1; y < h; y++) { - d814: fa0f f888 sxth.w r8, r8 - d818: e7b5 b.n d786 - line_buf1[x] = line_buf2[x] ^ line_buf1[x]; - d81a: 9805 ldr r0, [sp, #20] - d81c: f81b 2b01 ldrb.w r2, [fp], #1 - d820: f810 3f01 ldrb.w r3, [r0, #1]! - d824: 9005 str r0, [sp, #20] - d826: 405a eors r2, r3 - d828: 7002 strb r2, [r0, #0] - bits_write(out, wrp, line_buf1[x], bpp); - d82a: 9b03 ldr r3, [sp, #12] - d82c: 4d11 ldr r5, [pc, #68] ; (d874 ) - d82e: 9109 str r1, [sp, #36] ; 0x24 - d830: ee18 0a10 vmov r0, s16 - d834: 47a8 blx r5 - wrp += wr_size; - d836: 9b04 ldr r3, [sp, #16] - d838: 9909 ldr r1, [sp, #36] ; 0x24 - d83a: 4419 add r1, r3 - for(x = 0; x < w; x++) { - d83c: e7e3 b.n d806 - d83e: bf00 nop - d840: 0000d5d5 .word 0x0000d5d5 - d844: 200035a4 .word 0x200035a4 - d848: 0000eddd .word 0x0000eddd - d84c: 0000f145 .word 0x0000f145 - d850: 0000d4d9 .word 0x0000d4d9 - d854: 0000edf9 .word 0x0000edf9 - d858: 0000f0a5 .word 0x0000f0a5 - d85c: 00001a65 .word 0x00001a65 - d860: 00027c5f .word 0x00027c5f - d864: 00027c1f .word 0x00027c1f - d868: 0000eb79 .word 0x0000eb79 - d86c: 00026842 .word 0x00026842 - d870: 00001a6d .word 0x00001a6d - d874: 0000d49d .word 0x0000d49d - -0000d878 : - if(unicode_letter == '\t') { - d878: 2a09 cmp r2, #9 -{ - d87a: e92d 47ff stmdb sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, lr} - uint32_t gid = get_glyph_dsc_id(font, unicode_letter); - d87e: f8df a13c ldr.w sl, [pc, #316] ; d9bc - lv_font_fmt_txt_dsc_t * fdsc = (lv_font_fmt_txt_dsc_t *) font->dsc; - d882: 6907 ldr r7, [r0, #16] -{ - d884: 460c mov r4, r1 - d886: 4611 mov r1, r2 - unicode_letter = ' '; - d888: bf08 it eq - d88a: 2120 moveq r1, #32 -{ - d88c: 4680 mov r8, r0 - d88e: 4699 mov r9, r3 - is_tab = true; - d890: bf0c ite eq - d892: 2601 moveq r6, #1 - bool is_tab = false; - d894: 2600 movne r6, #0 - uint32_t gid = get_glyph_dsc_id(font, unicode_letter); - d896: 47d0 blx sl - if(!gid) return false; - d898: 4605 mov r5, r0 - d89a: 2800 cmp r0, #0 - d89c: f000 8086 beq.w d9ac - if(fdsc->kern_dsc) { - d8a0: 68fb ldr r3, [r7, #12] - d8a2: bb3b cbnz r3, d8f4 - int8_t kvalue = 0; - d8a4: 2300 movs r3, #0 - const lv_font_fmt_txt_glyph_dsc_t * gdsc = &fdsc->glyph_dsc[gid]; - d8a6: 6879 ldr r1, [r7, #4] - int32_t kv = ((int32_t)((int32_t)kvalue * fdsc->kern_scale) >> 4); - d8a8: 8a3a ldrh r2, [r7, #16] - const lv_font_fmt_txt_glyph_dsc_t * gdsc = &fdsc->glyph_dsc[gid]; - d8aa: eb01 01c5 add.w r1, r1, r5, lsl #3 - int32_t kv = ((int32_t)((int32_t)kvalue * fdsc->kern_scale) >> 4); - d8ae: 4353 muls r3, r2 - uint32_t adv_w = gdsc->adv_w; - d8b0: 884a ldrh r2, [r1, #2] - d8b2: f3c2 100b ubfx r0, r2, #4, #12 - int32_t kv = ((int32_t)((int32_t)kvalue * fdsc->kern_scale) >> 4); - d8b6: 111b asrs r3, r3, #4 - uint32_t adv_w = gdsc->adv_w; - d8b8: 4602 mov r2, r0 - if(is_tab) adv_w *= 2; - d8ba: b10e cbz r6, d8c0 - d8bc: b202 sxth r2, r0 - d8be: 0052 lsls r2, r2, #1 - adv_w = (adv_w + (1 << 3)) >> 4; - d8c0: 3308 adds r3, #8 - d8c2: 4413 add r3, r2 - d8c4: 091b lsrs r3, r3, #4 - dsc_out->adv_w = adv_w; - d8c6: 8023 strh r3, [r4, #0] - dsc_out->box_h = gdsc->box_h; - d8c8: 794b ldrb r3, [r1, #5] - d8ca: 80a3 strh r3, [r4, #4] - dsc_out->box_w = gdsc->box_w; - d8cc: 790b ldrb r3, [r1, #4] - d8ce: 8063 strh r3, [r4, #2] - dsc_out->ofs_x = gdsc->ofs_x; - d8d0: f991 2006 ldrsb.w r2, [r1, #6] - d8d4: 80e2 strh r2, [r4, #6] - dsc_out->ofs_y = gdsc->ofs_y; - d8d6: f991 2007 ldrsb.w r2, [r1, #7] - d8da: 8122 strh r2, [r4, #8] - dsc_out->bpp = (uint8_t)fdsc->bpp; - d8dc: 7cfa ldrb r2, [r7, #19] - d8de: f3c2 0283 ubfx r2, r2, #2, #4 - d8e2: 72a2 strb r2, [r4, #10] - if(is_tab) dsc_out->box_w = dsc_out->box_w * 2; - d8e4: 2e00 cmp r6, #0 - d8e6: d063 beq.n d9b0 - d8e8: 005b lsls r3, r3, #1 - d8ea: 8063 strh r3, [r4, #2] -} - d8ec: 4630 mov r0, r6 - d8ee: b004 add sp, #16 - d8f0: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} - uint32_t gid_next = get_glyph_dsc_id(font, unicode_letter_next); - d8f4: 4649 mov r1, r9 - d8f6: 4640 mov r0, r8 - d8f8: 47d0 blx sl - if(gid_next) { - d8fa: 2800 cmp r0, #0 - d8fc: d0d2 beq.n d8a4 - kvalue = get_kern_value(font, gid, gid_next); - d8fe: f8d8 2010 ldr.w r2, [r8, #16] - const lv_font_fmt_txt_kern_pair_t * kdsc = fdsc->kern_dsc; - d902: f8d2 800c ldr.w r8, [r2, #12] - if(fdsc->kern_classes == 0) { - d906: 7cd2 ldrb r2, [r2, #19] - d908: 0653 lsls r3, r2, #25 - d90a: d43a bmi.n d982 - if(kdsc->glyph_ids_size == 0) { - d90c: f898 200b ldrb.w r2, [r8, #11] - d910: f012 0203 ands.w r2, r2, #3 - d914: d11b bne.n d94e - const uint8_t * g_ids = kdsc->glyph_ids; - d916: f8d8 9000 ldr.w r9, [r8] - uint8_t * kid_p = _lv_utils_bsearch(&g_id_both, g_ids, kdsc->pair_cnt, 2, kern_pair_8_compare); - d91a: f8d8 2008 ldr.w r2, [r8, #8] - d91e: f8df a0a0 ldr.w sl, [pc, #160] ; d9c0 - uint16_t g_id_both = (gid_right << 8) + gid_left; /*Create one number from the ids*/ - d922: eb05 2300 add.w r3, r5, r0, lsl #8 - d926: f8ad 300c strh.w r3, [sp, #12] - uint8_t * kid_p = _lv_utils_bsearch(&g_id_both, g_ids, kdsc->pair_cnt, 2, kern_pair_8_compare); - d92a: 4b22 ldr r3, [pc, #136] ; (d9b4 ) - d92c: 9300 str r3, [sp, #0] - d92e: f022 427f bic.w r2, r2, #4278190080 ; 0xff000000 - d932: 2302 movs r3, #2 - d934: 4649 mov r1, r9 - d936: a803 add r0, sp, #12 - d938: 47d0 blx sl - if(kid_p) { - d93a: 4603 mov r3, r0 - d93c: 2800 cmp r0, #0 - d93e: d0b2 beq.n d8a6 - lv_uintptr_t ofs = (lv_uintptr_t)(kid_p - g_ids); - d940: eba0 0309 sub.w r3, r0, r9 - ofs = ofs >> 1; /*ofs is for pair, divide by 2 to refer as a single value*/ - d944: 085b lsrs r3, r3, #1 - value = kdsc->values[ofs]; - d946: f8d8 2004 ldr.w r2, [r8, #4] - d94a: 56d3 ldrsb r3, [r2, r3] - d94c: e7ab b.n d8a6 - else if(kdsc->glyph_ids_size == 1) { - d94e: 2a01 cmp r2, #1 - d950: d1a8 bne.n d8a4 - const uint16_t * g_ids = kdsc->glyph_ids; - d952: f8d8 9000 ldr.w r9, [r8] - uint8_t * kid_p = _lv_utils_bsearch(&g_id_both, g_ids, kdsc->pair_cnt, 4, kern_pair_16_compare); - d956: f8d8 2008 ldr.w r2, [r8, #8] - d95a: 4b17 ldr r3, [pc, #92] ; (d9b8 ) - d95c: 9300 str r3, [sp, #0] - lv_uintptr_t g_id_both = (uint32_t)((uint32_t)gid_right << 8) + gid_left; /*Create one number from the ids*/ - d95e: eb05 2000 add.w r0, r5, r0, lsl #8 - d962: 9003 str r0, [sp, #12] - uint8_t * kid_p = _lv_utils_bsearch(&g_id_both, g_ids, kdsc->pair_cnt, 4, kern_pair_16_compare); - d964: 2304 movs r3, #4 - d966: f8df a058 ldr.w sl, [pc, #88] ; d9c0 - d96a: f022 427f bic.w r2, r2, #4278190080 ; 0xff000000 - d96e: 4649 mov r1, r9 - d970: a803 add r0, sp, #12 - d972: 47d0 blx sl - if(kid_p) { - d974: 4603 mov r3, r0 - d976: 2800 cmp r0, #0 - d978: d095 beq.n d8a6 - lv_uintptr_t ofs = (lv_uintptr_t)(kid_p - (const uint8_t *)g_ids); - d97a: eba0 0309 sub.w r3, r0, r9 - ofs = ofs >> 4; /*ofs is 4 byte pairs, divide by 4 to refer as a single value*/ - d97e: 091b lsrs r3, r3, #4 - d980: e7e1 b.n d946 - uint8_t left_class = kdsc->left_class_mapping[gid_left]; - d982: f8d8 2004 ldr.w r2, [r8, #4] - uint8_t right_class = kdsc->right_class_mapping[gid_right]; - d986: f8d8 1008 ldr.w r1, [r8, #8] - uint8_t left_class = kdsc->left_class_mapping[gid_left]; - d98a: 5d52 ldrb r2, [r2, r5] - uint8_t right_class = kdsc->right_class_mapping[gid_right]; - d98c: 5c09 ldrb r1, [r1, r0] - if(left_class > 0 && right_class > 0) { - d98e: 2a00 cmp r2, #0 - d990: d088 beq.n d8a4 - d992: 2900 cmp r1, #0 - d994: d086 beq.n d8a4 - value = kdsc->class_pair_values[(left_class - 1) * kdsc->right_class_cnt + (right_class - 1)]; - d996: f8d8 3000 ldr.w r3, [r8] - d99a: f898 000d ldrb.w r0, [r8, #13] - d99e: 3a01 subs r2, #1 - d9a0: 440b add r3, r1 - d9a2: fb00 3302 mla r3, r0, r2, r3 - d9a6: f913 3c01 ldrsb.w r3, [r3, #-1] - d9aa: e77c b.n d8a6 - if(!gid) return false; - d9ac: 4606 mov r6, r0 - d9ae: e79d b.n d8ec - return true; - d9b0: 2601 movs r6, #1 - d9b2: e79b b.n d8ec - d9b4: 0000d415 .word 0x0000d415 - d9b8: 0000d427 .word 0x0000d427 - d9bc: 0000d5d5 .word 0x0000d5d5 - d9c0: 0001051d .word 0x0001051d - -0000d9c4 <_lv_font_clean_up_fmt_txt>: -{ - d9c4: b510 push {r4, lr} - if(decompr_buf) { - d9c6: 4c04 ldr r4, [pc, #16] ; (d9d8 <_lv_font_clean_up_fmt_txt+0x14>) - d9c8: 6920 ldr r0, [r4, #16] - d9ca: b118 cbz r0, d9d4 <_lv_font_clean_up_fmt_txt+0x10> - lv_mem_free(decompr_buf); - d9cc: 4b03 ldr r3, [pc, #12] ; (d9dc <_lv_font_clean_up_fmt_txt+0x18>) - d9ce: 4798 blx r3 - decompr_buf = NULL; - d9d0: 2300 movs r3, #0 - d9d2: 6123 str r3, [r4, #16] -} - d9d4: bd10 pop {r4, pc} - d9d6: bf00 nop - d9d8: 200035a4 .word 0x200035a4 - d9dc: 0000ed75 .word 0x0000ed75 - -0000d9e0 : - * It is used to surly have known values in the fields ant not memory junk. - * After it you can set the fields. - * @param driver pointer to driver variable to initialize - */ -void lv_disp_drv_init(lv_disp_drv_t * driver) -{ - d9e0: b510 push {r4, lr} - _lv_memset_00(driver, sizeof(lv_disp_drv_t)); - d9e2: 4b0d ldr r3, [pc, #52] ; (da18 ) - d9e4: 212c movs r1, #44 ; 0x2c -{ - d9e6: 4604 mov r4, r0 - _lv_memset_00(driver, sizeof(lv_disp_drv_t)); - d9e8: 4798 blx r3 - - driver->flush_cb = NULL; - driver->hor_res = LV_HOR_RES_MAX; - d9ea: 4b0c ldr r3, [pc, #48] ; (da1c ) - driver->flush_cb = NULL; - d9ec: 2200 movs r2, #0 - driver->ver_res = LV_VER_RES_MAX; - driver->buffer = NULL; - d9ee: e9c4 3200 strd r3, r2, [r4] - driver->rotated = 0; - driver->color_chroma_key = LV_COLOR_TRANSP; - driver->dpi = LV_DPI; - -#if LV_ANTIALIAS - driver->antialiasing = true; - d9f2: 8923 ldrh r3, [r4, #8] - driver->flush_cb = NULL; - d9f4: 60e2 str r2, [r4, #12] - driver->antialiasing = true; - d9f6: f423 637f bic.w r3, r3, #4080 ; 0xff0 - d9fa: f023 030f bic.w r3, r3, #15 - d9fe: f443 7302 orr.w r3, r3, #520 ; 0x208 - da02: f043 0301 orr.w r3, r3, #1 - da06: 8123 strh r3, [r4, #8] - driver->color_chroma_key = LV_COLOR_TRANSP; - da08: f44f 63fc mov.w r3, #2016 ; 0x7e0 - driver->screen_transp = 1; -#endif - -#if LV_USE_GPU - driver->gpu_blend_cb = NULL; - driver->gpu_fill_cb = NULL; - da0c: e9c4 2208 strd r2, r2, [r4, #32] - driver->color_chroma_key = LV_COLOR_TRANSP; - da10: 8523 strh r3, [r4, #40] ; 0x28 - -#if LV_USE_USER_DATA - driver->user_data = NULL; -#endif - - driver->set_px_cb = NULL; - da12: 6162 str r2, [r4, #20] -} - da14: bd10 pop {r4, pc} - da16: bf00 nop - da18: 0000f2a9 .word 0x0000f2a9 - da1c: 011001e0 .word 0x011001e0 - -0000da20 : - * It lets LVGL to render next frame into the other buffer while previous is being - * sent. Set to `NULL` if unused. - * @param size_in_px_cnt size of the `buf1` and `buf2` in pixel count. - */ -void lv_disp_buf_init(lv_disp_buf_t * disp_buf, void * buf1, void * buf2, uint32_t size_in_px_cnt) -{ - da20: b5f8 push {r3, r4, r5, r6, r7, lr} - da22: 4604 mov r4, r0 - da24: 460d mov r5, r1 - da26: 4617 mov r7, r2 - da28: 461e mov r6, r3 - _lv_memset_00(disp_buf, sizeof(lv_disp_buf_t)); - da2a: 2124 movs r1, #36 ; 0x24 - da2c: 4b03 ldr r3, [pc, #12] ; (da3c ) - da2e: 4798 blx r3 - - disp_buf->buf1 = buf1; - disp_buf->buf2 = buf2; - da30: e9c4 5700 strd r5, r7, [r4] - disp_buf->buf_act = disp_buf->buf1; - disp_buf->size = size_in_px_cnt; - da34: e9c4 5602 strd r5, r6, [r4, #8] -} - da38: bdf8 pop {r3, r4, r5, r6, r7, pc} - da3a: bf00 nop - da3c: 0000f2a9 .word 0x0000f2a9 - -0000da40 : - * Automatically set the first display as active. - * @param driver pointer to an initialized 'lv_disp_drv_t' variable (can be local variable) - * @return pointer to the new display or NULL on error - */ -lv_disp_t * lv_disp_drv_register(lv_disp_drv_t * driver) -{ - da40: e92d 41f3 stmdb sp!, {r0, r1, r4, r5, r6, r7, r8, lr} - lv_disp_t * disp = _lv_ll_ins_head(&LV_GC_ROOT(_lv_disp_ll)); - da44: 4b3b ldr r3, [pc, #236] ; (db34 ) - da46: 4e3c ldr r6, [pc, #240] ; (db38 ) -{ - da48: 4605 mov r5, r0 - lv_disp_t * disp = _lv_ll_ins_head(&LV_GC_ROOT(_lv_disp_ll)); - da4a: 483c ldr r0, [pc, #240] ; (db3c ) - da4c: 4798 blx r3 - if(!disp) { - da4e: 4604 mov r4, r0 - da50: b998 cbnz r0, da7a - LV_ASSERT_MEM(disp); - da52: 47b0 blx r6 - da54: b120 cbz r0, da60 - return NULL; - da56: 2400 movs r4, #0 - disp_def = disp_def_tmp; /*Revert the default display*/ - - lv_task_ready(disp->refr_task); /*Be sure the screen will be refreshed immediately on start up*/ - - return disp; -} - da58: 4620 mov r0, r4 - da5a: b002 add sp, #8 - da5c: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} - LV_ASSERT_MEM(disp); - da60: 4b37 ldr r3, [pc, #220] ; (db40 ) - da62: 4938 ldr r1, [pc, #224] ; (db44 ) - da64: 9300 str r3, [sp, #0] - da66: 227c movs r2, #124 ; 0x7c - da68: 2003 movs r0, #3 - da6a: 4c37 ldr r4, [pc, #220] ; (db48 ) - da6c: 47a0 blx r4 - da6e: 4837 ldr r0, [pc, #220] ; (db4c ) - da70: 4937 ldr r1, [pc, #220] ; (db50 ) - da72: 2200 movs r2, #0 - da74: 2300 movs r3, #0 - da76: 4788 blx r1 - da78: e7fe b.n da78 - _lv_memset_00(disp, sizeof(lv_disp_t)); - da7a: 4b36 ldr r3, [pc, #216] ; (db54 ) - da7c: f44f 71b8 mov.w r1, #368 ; 0x170 - da80: 4798 blx r3 - _lv_memcpy(&disp->driver, driver, sizeof(lv_disp_drv_t)); - da82: 4629 mov r1, r5 - da84: 4b34 ldr r3, [pc, #208] ; (db58 ) - if(disp_def == NULL) disp_def = disp; - da86: 4d35 ldr r5, [pc, #212] ; (db5c ) - _lv_memcpy(&disp->driver, driver, sizeof(lv_disp_drv_t)); - da88: 222c movs r2, #44 ; 0x2c - da8a: 4620 mov r0, r4 - da8c: 4798 blx r3 - _lv_ll_init(&disp->scr_ll, sizeof(lv_obj_t)); - da8e: 4b34 ldr r3, [pc, #208] ; (db60 ) - da90: 214c movs r1, #76 ; 0x4c - da92: f104 0030 add.w r0, r4, #48 ; 0x30 - da96: 4798 blx r3 - disp->last_activity_time = 0; - da98: 2300 movs r3, #0 - da9a: f8c4 316c str.w r3, [r4, #364] ; 0x16c - if(disp_def == NULL) disp_def = disp; - da9e: 682b ldr r3, [r5, #0] - daa0: b903 cbnz r3, daa4 - daa2: 602c str r4, [r5, #0] - disp->refr_task = lv_task_create(_lv_disp_refr_task, LV_DISP_DEF_REFR_PERIOD, LV_REFR_TASK_PRIO, disp); - daa4: 4623 mov r3, r4 - daa6: 2203 movs r2, #3 - daa8: 211e movs r1, #30 - daaa: 482e ldr r0, [pc, #184] ; (db64 ) - daac: f8df 80cc ldr.w r8, [pc, #204] ; db7c - lv_disp_t * disp_def_tmp = disp_def; - dab0: 682f ldr r7, [r5, #0] - disp_def = disp; /*Temporarily change the default screen to create the default screens on the - dab2: 602c str r4, [r5, #0] - disp->refr_task = lv_task_create(_lv_disp_refr_task, LV_DISP_DEF_REFR_PERIOD, LV_REFR_TASK_PRIO, disp); - dab4: 47c0 blx r8 - dab6: 62e0 str r0, [r4, #44] ; 0x2c - LV_ASSERT_MEM(disp->refr_task); - dab8: 47b0 blx r6 - daba: 4606 mov r6, r0 - dabc: b960 cbnz r0, dad8 - dabe: 4b20 ldr r3, [pc, #128] ; (db40 ) - dac0: 4920 ldr r1, [pc, #128] ; (db44 ) - dac2: 9300 str r3, [sp, #0] - dac4: 228d movs r2, #141 ; 0x8d - dac6: 2003 movs r0, #3 - dac8: 4d1f ldr r5, [pc, #124] ; (db48 ) - daca: 47a8 blx r5 - dacc: 6ae2 ldr r2, [r4, #44] ; 0x2c - dace: 481f ldr r0, [pc, #124] ; (db4c ) - dad0: 491f ldr r1, [pc, #124] ; (db50 ) - dad2: 4633 mov r3, r6 - dad4: 4788 blx r1 - dad6: e7fe b.n dad6 - if(disp->refr_task == NULL) return NULL; - dad8: 6ae3 ldr r3, [r4, #44] ; 0x2c - dada: 2b00 cmp r3, #0 - dadc: d0bb beq.n da56 - disp->inv_p = 0; - dade: f8b4 3168 ldrh.w r3, [r4, #360] ; 0x168 - disp->act_scr = lv_obj_create(NULL, NULL); /*Create a default screen on the display*/ - dae2: 4e21 ldr r6, [pc, #132] ; (db68 ) - disp->inv_p = 0; - dae4: f36f 0309 bfc r3, #0, #10 - disp->last_activity_time = 0; - dae8: 2100 movs r1, #0 - disp->inv_p = 0; - daea: f8a4 3168 strh.w r3, [r4, #360] ; 0x168 - disp->last_activity_time = 0; - daee: f8c4 116c str.w r1, [r4, #364] ; 0x16c - disp->act_scr = lv_obj_create(NULL, NULL); /*Create a default screen on the display*/ - daf2: 4608 mov r0, r1 - daf4: 47b0 blx r6 - disp->top_layer = lv_obj_create(NULL, NULL); /*Create top layer on the display*/ - daf6: 2100 movs r1, #0 - disp->act_scr = lv_obj_create(NULL, NULL); /*Create a default screen on the display*/ - daf8: 63e0 str r0, [r4, #60] ; 0x3c - disp->top_layer = lv_obj_create(NULL, NULL); /*Create top layer on the display*/ - dafa: 4608 mov r0, r1 - dafc: 47b0 blx r6 - disp->sys_layer = lv_obj_create(NULL, NULL); /*Create sys layer on the display*/ - dafe: 2100 movs r1, #0 - disp->top_layer = lv_obj_create(NULL, NULL); /*Create top layer on the display*/ - db00: 6420 str r0, [r4, #64] ; 0x40 - disp->sys_layer = lv_obj_create(NULL, NULL); /*Create sys layer on the display*/ - db02: 4608 mov r0, r1 - db04: 47b0 blx r6 - lv_obj_reset_style_list(disp->top_layer, LV_OBJ_PART_MAIN); - db06: 4e19 ldr r6, [pc, #100] ; (db6c ) - disp->sys_layer = lv_obj_create(NULL, NULL); /*Create sys layer on the display*/ - db08: 6460 str r0, [r4, #68] ; 0x44 - lv_obj_reset_style_list(disp->top_layer, LV_OBJ_PART_MAIN); - db0a: 2100 movs r1, #0 - db0c: 6c20 ldr r0, [r4, #64] ; 0x40 - db0e: 47b0 blx r6 - lv_obj_reset_style_list(disp->sys_layer, LV_OBJ_PART_MAIN); - db10: 6c60 ldr r0, [r4, #68] ; 0x44 - db12: 2100 movs r1, #0 - db14: 47b0 blx r6 - lv_obj_set_click(disp->top_layer, false); - db16: 6c20 ldr r0, [r4, #64] ; 0x40 - db18: 4e15 ldr r6, [pc, #84] ; (db70 ) - db1a: 2100 movs r1, #0 - db1c: 47b0 blx r6 - lv_obj_set_click(disp->sys_layer, false); - db1e: 6c60 ldr r0, [r4, #68] ; 0x44 - db20: 2100 movs r1, #0 - db22: 47b0 blx r6 - lv_obj_invalidate(disp->act_scr); - db24: 6be0 ldr r0, [r4, #60] ; 0x3c - db26: 4b13 ldr r3, [pc, #76] ; (db74 ) - db28: 4798 blx r3 - lv_task_ready(disp->refr_task); /*Be sure the screen will be refreshed immediately on start up*/ - db2a: 6ae0 ldr r0, [r4, #44] ; 0x2c - db2c: 4b12 ldr r3, [pc, #72] ; (db78 ) - disp_def = disp_def_tmp; /*Revert the default display*/ - db2e: 602f str r7, [r5, #0] - lv_task_ready(disp->refr_task); /*Be sure the screen will be refreshed immediately on start up*/ - db30: 4798 blx r3 - return disp; - db32: e791 b.n da58 - db34: 0000e89d .word 0x0000e89d - db38: 00001a65 .word 0x00001a65 - db3c: 200035dc .word 0x200035dc - db40: 0002b953 .word 0x0002b953 - db44: 0002b920 .word 0x0002b920 - db48: 0000eb79 .word 0x0000eb79 - db4c: 00026842 .word 0x00026842 - db50: 00001a6d .word 0x00001a6d - db54: 0000f2a9 .word 0x0000f2a9 - db58: 0000eec1 .word 0x0000eec1 - db5c: 200035b8 .word 0x200035b8 - db60: 0000e889 .word 0x0000e889 - db64: 00005279 .word 0x00005279 - db68: 00003369 .word 0x00003369 - db6c: 00003119 .word 0x00003119 - db70: 000020e1 .word 0x000020e1 - db74: 00002a09 .word 0x00002a09 - db78: 0000fed1 .word 0x0000fed1 - db7c: 0000fe61 .word 0x0000fe61 - -0000db80 : - * @return pointer to the default display - */ -lv_disp_t * lv_disp_get_default(void) -{ - return disp_def; -} - db80: 4b01 ldr r3, [pc, #4] ; (db88 ) - db82: 6818 ldr r0, [r3, #0] - db84: 4770 bx lr - db86: bf00 nop - db88: 200035b8 .word 0x200035b8 - -0000db8c : - * @param disp pointer to a display (NULL to use the default display) - * @return the horizontal resolution of the display - */ -lv_coord_t lv_disp_get_hor_res(lv_disp_t * disp) -{ - if(disp == NULL) disp = lv_disp_get_default(); - db8c: b910 cbnz r0, db94 - return disp_def; - db8e: 4b07 ldr r3, [pc, #28] ; (dbac ) - db90: 6818 ldr r0, [r3, #0] - - if(disp == NULL) - db92: b138 cbz r0, dba4 - return LV_HOR_RES_MAX; - else - return disp->driver.rotated == 0 ? disp->driver.hor_res : disp->driver.ver_res; - db94: 7a03 ldrb r3, [r0, #8] - db96: 079b lsls r3, r3, #30 - db98: bf54 ite pl - db9a: f9b0 0000 ldrshpl.w r0, [r0] - db9e: f9b0 0002 ldrshmi.w r0, [r0, #2] - dba2: 4770 bx lr - return LV_HOR_RES_MAX; - dba4: f44f 70f0 mov.w r0, #480 ; 0x1e0 -} - dba8: 4770 bx lr - dbaa: bf00 nop - dbac: 200035b8 .word 0x200035b8 - -0000dbb0 : - * @param disp pointer to a display (NULL to use the default display) - * @return the vertical resolution of the display - */ -lv_coord_t lv_disp_get_ver_res(lv_disp_t * disp) -{ - if(disp == NULL) disp = lv_disp_get_default(); - dbb0: b910 cbnz r0, dbb8 - return disp_def; - dbb2: 4b07 ldr r3, [pc, #28] ; (dbd0 ) - dbb4: 6818 ldr r0, [r3, #0] - - if(disp == NULL) - dbb6: b138 cbz r0, dbc8 - return LV_VER_RES_MAX; - else - return disp->driver.rotated == 0 ? disp->driver.ver_res : disp->driver.hor_res; - dbb8: 7a03 ldrb r3, [r0, #8] - dbba: 079b lsls r3, r3, #30 - dbbc: bf54 ite pl - dbbe: f9b0 0002 ldrshpl.w r0, [r0, #2] - dbc2: f9b0 0000 ldrshmi.w r0, [r0] - dbc6: 4770 bx lr - return LV_VER_RES_MAX; - dbc8: f44f 7088 mov.w r0, #272 ; 0x110 -} - dbcc: 4770 bx lr - dbce: bf00 nop - dbd0: 200035b8 .word 0x200035b8 - -0000dbd4 : - * @param disp pointer to a display (NULL to use the default display) - * @return dpi of the display - */ -lv_coord_t lv_disp_get_dpi(lv_disp_t * disp) -{ - if(disp == NULL) disp = lv_disp_get_default(); - dbd4: b910 cbnz r0, dbdc - return disp_def; - dbd6: 4b04 ldr r3, [pc, #16] ; (dbe8 ) - dbd8: 6818 ldr r0, [r3, #0] - if(disp == NULL) return LV_DPI; /*Do not return 0 because it might be a divider*/ - dbda: b118 cbz r0, dbe4 - return disp->driver.dpi; - dbdc: 8900 ldrh r0, [r0, #8] - dbde: f3c0 0089 ubfx r0, r0, #2, #10 - dbe2: 4770 bx lr - if(disp == NULL) return LV_DPI; /*Do not return 0 because it might be a divider*/ - dbe4: 2082 movs r0, #130 ; 0x82 -} - dbe6: 4770 bx lr - dbe8: 200035b8 .word 0x200035b8 - -0000dbec : - * Get the size category of the display based on it's hor. res. and dpi. - * @param disp pointer to a display (NULL to use the default display) - * @return LV_DISP_SIZE_SMALL/MEDIUM/LARGE/EXTRA_LARGE - */ -lv_disp_size_t lv_disp_get_size_category(lv_disp_t * disp) -{ - dbec: b508 push {r3, lr} - if(disp == NULL) disp = lv_disp_get_default(); - dbee: 4601 mov r1, r0 - dbf0: b910 cbnz r0, dbf8 - return disp_def; - dbf2: 4b0f ldr r3, [pc, #60] ; (dc30 ) - dbf4: 6819 ldr r1, [r3, #0] - - uint32_t w; - if(disp == NULL) w = LV_HOR_RES_MAX; - dbf6: b199 cbz r1, dc20 - else w = lv_disp_get_hor_res(disp); - dbf8: 4b0e ldr r3, [pc, #56] ; (dc34 ) - dbfa: 4608 mov r0, r1 - dbfc: 4798 blx r3 - dbfe: 4602 mov r2, r0 - - uint32_t dpi = lv_disp_get_dpi(disp); - dc00: 4b0d ldr r3, [pc, #52] ; (dc38 ) - dc02: 4608 mov r0, r1 - dc04: 4798 blx r3 - - w = w * 10 / dpi; - dc06: 230a movs r3, #10 - dc08: 435a muls r2, r3 - dc0a: fbb2 f0f0 udiv r0, r2, r0 - - if(w < LV_DISP_SMALL_LIMIT) return LV_DISP_SIZE_SMALL; - dc0e: 281d cmp r0, #29 - dc10: d909 bls.n dc26 - if(w < LV_DISP_MEDIUM_LIMIT) return LV_DISP_SIZE_MEDIUM; - dc12: 2831 cmp r0, #49 ; 0x31 - dc14: d909 bls.n dc2a - if(w < LV_DISP_LARGE_LIMIT) return LV_DISP_SIZE_LARGE; - else return LV_DISP_SIZE_EXTRA_LARGE; - dc16: 2846 cmp r0, #70 ; 0x46 - dc18: bf34 ite cc - dc1a: 2002 movcc r0, #2 - dc1c: 2003 movcs r0, #3 -} - dc1e: bd08 pop {r3, pc} - if(disp == NULL) w = LV_HOR_RES_MAX; - dc20: f44f 72f0 mov.w r2, #480 ; 0x1e0 - dc24: e7ec b.n dc00 - if(w < LV_DISP_SMALL_LIMIT) return LV_DISP_SIZE_SMALL; - dc26: 2000 movs r0, #0 - dc28: e7f9 b.n dc1e - if(w < LV_DISP_MEDIUM_LIMIT) return LV_DISP_SIZE_MEDIUM; - dc2a: 2001 movs r0, #1 - dc2c: e7f7 b.n dc1e - dc2e: bf00 nop - dc30: 200035b8 .word 0x200035b8 - dc34: 0000db8d .word 0x0000db8d - dc38: 0000dbd5 .word 0x0000dbd5 - -0000dc3c : - if(disp_drv->screen_transp) { - _lv_memset_00(disp_drv->buffer->buf_act, disp_drv->buffer->size * sizeof(lv_color32_t)); - } -#endif - - disp_drv->buffer->flushing = 0; - dc3c: 6843 ldr r3, [r0, #4] - dc3e: 2200 movs r2, #0 - dc40: 619a str r2, [r3, #24] - disp_drv->buffer->flushing_last = 0; - dc42: 61da str r2, [r3, #28] -} - dc44: 4770 bx lr - ... - -0000dc48 : - * @param disp pointer to the current display. NULL to initialize. - * @return the next display or NULL if no more. Give the first display when the parameter is NULL - */ -lv_disp_t * lv_disp_get_next(lv_disp_t * disp) -{ - if(disp == NULL) - dc48: 4601 mov r1, r0 - return _lv_ll_get_head(&LV_GC_ROOT(_lv_disp_ll)); - dc4a: 4803 ldr r0, [pc, #12] ; (dc58 ) - if(disp == NULL) - dc4c: b909 cbnz r1, dc52 - return _lv_ll_get_head(&LV_GC_ROOT(_lv_disp_ll)); - dc4e: 4b03 ldr r3, [pc, #12] ; (dc5c ) - dc50: 4718 bx r3 - else - return _lv_ll_get_next(&LV_GC_ROOT(_lv_disp_ll), disp); - dc52: 4b03 ldr r3, [pc, #12] ; (dc60 ) - dc54: 4718 bx r3 - dc56: bf00 nop - dc58: 200035dc .word 0x200035dc - dc5c: 0000e92d .word 0x0000e92d - dc60: 0000e939 .word 0x0000e939 - -0000dc64 : - * @return pointer to the internal buffers - */ -lv_disp_buf_t * lv_disp_get_buf(lv_disp_t * disp) -{ - return disp->driver.buffer; -} - dc64: 6840 ldr r0, [r0, #4] - dc66: 4770 bx lr - -0000dc68 : - * @param disp pointer to to display to check - * @return true: double buffered; false: not double buffered - */ -bool lv_disp_is_double_buf(lv_disp_t * disp) -{ - if(disp->driver.buffer->buf1 && disp->driver.buffer->buf2) - dc68: 6843 ldr r3, [r0, #4] - dc6a: 6818 ldr r0, [r3, #0] - dc6c: b118 cbz r0, dc76 - dc6e: 6858 ldr r0, [r3, #4] - dc70: 3800 subs r0, #0 - dc72: bf18 it ne - dc74: 2001 movne r0, #1 - return true; - else - return false; -} - dc76: 4770 bx lr - -0000dc78 : - * `size` is screen sized) - * @param disp pointer to to display to check - * @return true: double buffered; false: not double buffered - */ -bool lv_disp_is_true_double_buf(lv_disp_t * disp) -{ - dc78: b508 push {r3, lr} - uint32_t scr_size = disp->driver.hor_res * disp->driver.ver_res; - - if(lv_disp_is_double_buf(disp) && disp->driver.buffer->size == scr_size) { - dc7a: 4b07 ldr r3, [pc, #28] ; (dc98 ) -{ - dc7c: 4602 mov r2, r0 - if(lv_disp_is_double_buf(disp) && disp->driver.buffer->size == scr_size) { - dc7e: 4798 blx r3 - dc80: b140 cbz r0, dc94 - uint32_t scr_size = disp->driver.hor_res * disp->driver.ver_res; - dc82: 8813 ldrh r3, [r2, #0] - dc84: 8851 ldrh r1, [r2, #2] - if(lv_disp_is_double_buf(disp) && disp->driver.buffer->size == scr_size) { - dc86: 6852 ldr r2, [r2, #4] - dc88: 68d0 ldr r0, [r2, #12] - uint32_t scr_size = disp->driver.hor_res * disp->driver.ver_res; - dc8a: fb13 f301 smulbb r3, r3, r1 - if(lv_disp_is_double_buf(disp) && disp->driver.buffer->size == scr_size) { - dc8e: 1a1b subs r3, r3, r0 - dc90: 4258 negs r0, r3 - dc92: 4158 adcs r0, r3 - return true; - } - else { - return false; - } -} - dc94: bd08 pop {r3, pc} - dc96: bf00 nop - dc98: 0000dc69 .word 0x0000dc69 - -0000dc9c : - * @return the next input devise or NULL if no more. Give the first input device when the parameter - * is NULL - */ -lv_indev_t * lv_indev_get_next(lv_indev_t * indev) -{ - if(indev == NULL) - dc9c: 4601 mov r1, r0 - return _lv_ll_get_head(&LV_GC_ROOT(_lv_indev_ll)); - dc9e: 4803 ldr r0, [pc, #12] ; (dcac ) - if(indev == NULL) - dca0: b909 cbnz r1, dca6 - return _lv_ll_get_head(&LV_GC_ROOT(_lv_indev_ll)); - dca2: 4b03 ldr r3, [pc, #12] ; (dcb0 ) - dca4: 4718 bx r3 - else - return _lv_ll_get_next(&LV_GC_ROOT(_lv_indev_ll), indev); - dca6: 4b03 ldr r3, [pc, #12] ; (dcb4 ) - dca8: 4718 bx r3 - dcaa: bf00 nop - dcac: 200035e8 .word 0x200035e8 - dcb0: 0000e92d .word 0x0000e92d - dcb4: 0000e939 .word 0x0000e939 - -0000dcb8 : - * You have to call this function periodically - * @param tick_period the call period of this function in milliseconds - */ -LV_ATTRIBUTE_TICK_INC void lv_tick_inc(uint32_t tick_period) -{ - tick_irq_flag = 0; - dcb8: 4b03 ldr r3, [pc, #12] ; (dcc8 ) - dcba: 2200 movs r2, #0 - dcbc: 701a strb r2, [r3, #0] - sys_time += tick_period; - dcbe: 685a ldr r2, [r3, #4] - dcc0: 4410 add r0, r2 - dcc2: 6058 str r0, [r3, #4] -} - dcc4: 4770 bx lr - dcc6: bf00 nop - dcc8: 200035bc .word 0x200035bc - -0000dccc : -{ -#if LV_TICK_CUSTOM == 0 - uint32_t result; - do { - tick_irq_flag = 1; - result = sys_time; - dccc: 4b03 ldr r3, [pc, #12] ; (dcdc ) - dcce: 6858 ldr r0, [r3, #4] - tick_irq_flag = 1; - dcd0: 2101 movs r1, #1 - dcd2: 7019 strb r1, [r3, #0] - } while(!tick_irq_flag); /*'lv_tick_inc()' clears this flag which can be in an interrupt. - dcd4: 781a ldrb r2, [r3, #0] - dcd6: 2a00 cmp r2, #0 - dcd8: d0fb beq.n dcd2 - - return result; -#else - return LV_TICK_CUSTOM_SYS_TIME_EXPR; -#endif -} - dcda: 4770 bx lr - dcdc: 200035bc .word 0x200035bc - -0000dce0 : - * Get the elapsed milliseconds since a previous time stamp - * @param prev_tick a previous time stamp (return value of systick_get() ) - * @return the elapsed milliseconds since 'prev_tick' - */ -uint32_t lv_tick_elaps(uint32_t prev_tick) -{ - dce0: b510 push {r4, lr} - uint32_t act_time = lv_tick_get(); - dce2: 4b02 ldr r3, [pc, #8] ; (dcec ) -{ - dce4: 4604 mov r4, r0 - uint32_t act_time = lv_tick_get(); - dce6: 4798 blx r3 - prev_tick = UINT32_MAX - prev_tick + 1; - prev_tick += act_time; - } - - return prev_tick; -} - dce8: 1b00 subs r0, r0, r4 - dcea: bd10 pop {r4, pc} - dcec: 0000dccd .word 0x0000dccd - -0000dcf0 : -{ - LV_UNUSED(path); - - /*Calculate the current step*/ - uint32_t step; - if(a->time == a->act_time) { - dcf0: e9d1 2308 ldrd r2, r3, [r1, #32] - dcf4: 429a cmp r2, r3 - step = LV_ANIM_RESOLUTION; /*Use the last value if the time fully elapsed*/ - } - else { - step = ((int32_t)a->act_time * LV_ANIM_RESOLUTION) / a->time; - dcf6: bf1c itt ne - dcf8: 029b lslne r3, r3, #10 - dcfa: fb93 f3f2 sdivne r3, r3, r2 - } - - /* Get the new value which will be proportional to `step` - * and the `start` and `end` values*/ - int32_t new_value; - new_value = (int32_t)step * (a->end - a->start); - dcfe: e9d1 0206 ldrd r0, r2, [r1, #24] - step = LV_ANIM_RESOLUTION; /*Use the last value if the time fully elapsed*/ - dd02: bf08 it eq - dd04: f44f 6380 moveq.w r3, #1024 ; 0x400 - new_value = (int32_t)step * (a->end - a->start); - dd08: 1a12 subs r2, r2, r0 - dd0a: 4353 muls r3, r2 - new_value = new_value >> LV_ANIM_RES_SHIFT; - new_value += a->start; - dd0c: eb00 20a3 add.w r0, r0, r3, asr #10 - - return (lv_anim_value_t)new_value; -} - dd10: b200 sxth r0, r0 - dd12: 4770 bx lr - -0000dd14 : - } - - return anim_list_changed; -} -static void anim_mark_list_change(void) -{ - dd14: b510 push {r4, lr} - anim_list_changed = true; - dd16: 4c07 ldr r4, [pc, #28] ; (dd34 ) - if(_lv_ll_get_head(&LV_GC_ROOT(_lv_anim_ll)) == NULL) - dd18: 4807 ldr r0, [pc, #28] ; (dd38 ) - anim_list_changed = true; - dd1a: 2301 movs r3, #1 - dd1c: 7023 strb r3, [r4, #0] - if(_lv_ll_get_head(&LV_GC_ROOT(_lv_anim_ll)) == NULL) - dd1e: 4b07 ldr r3, [pc, #28] ; (dd3c ) - dd20: 4798 blx r3 - dd22: 4b07 ldr r3, [pc, #28] ; (dd40 ) - dd24: 4601 mov r1, r0 - dd26: b918 cbnz r0, dd30 - lv_task_set_prio(_lv_anim_task, LV_TASK_PRIO_OFF); - else - lv_task_set_prio(_lv_anim_task, LV_ANIM_TASK_PRIO); - dd28: 6860 ldr r0, [r4, #4] -} - dd2a: e8bd 4010 ldmia.w sp!, {r4, lr} - lv_task_set_prio(_lv_anim_task, LV_ANIM_TASK_PRIO); - dd2e: 4718 bx r3 - dd30: 2104 movs r1, #4 - dd32: e7f9 b.n dd28 - dd34: 200035c4 .word 0x200035c4 - dd38: 2000360c .word 0x2000360c - dd3c: 0000e92d .word 0x0000e92d - dd40: 0000fdfd .word 0x0000fdfd - -0000dd44 : -{ - dd44: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} - _LV_LL_READ(LV_GC_ROOT(_lv_anim_ll), a) { - dd48: 484f ldr r0, [pc, #316] ; (de88 ) - dd4a: 4f50 ldr r7, [pc, #320] ; (de8c ) - dd4c: 4c4e ldr r4, [pc, #312] ; (de88 ) - dd4e: 4d50 ldr r5, [pc, #320] ; (de90 ) -{ - dd50: b090 sub sp, #64 ; 0x40 - _LV_LL_READ(LV_GC_ROOT(_lv_anim_ll), a) { - dd52: 47b8 blx r7 - dd54: b9a0 cbnz r0, dd80 - uint32_t elaps = lv_tick_elaps(last_task_run); - dd56: 4d4f ldr r5, [pc, #316] ; (de94 ) - dd58: 4b4f ldr r3, [pc, #316] ; (de98 ) - dd5a: 68a8 ldr r0, [r5, #8] - a = _lv_ll_get_next(&LV_GC_ROOT(_lv_anim_ll), a); - dd5c: f8df 8128 ldr.w r8, [pc, #296] ; de88 - dd60: f8df 912c ldr.w r9, [pc, #300] ; de90 - _lv_memcpy(&a_tmp, a, sizeof(lv_anim_t)); - dd64: f8df a148 ldr.w sl, [pc, #328] ; deb0 - uint32_t elaps = lv_tick_elaps(last_task_run); - dd68: 4798 blx r3 - dd6a: 4606 mov r6, r0 - a = _lv_ll_get_head(&LV_GC_ROOT(_lv_anim_ll)); - dd6c: 4846 ldr r0, [pc, #280] ; (de88 ) - dd6e: 47b8 blx r7 - dd70: 4604 mov r4, r0 - while(a != NULL) { - dd72: b97c cbnz r4, dd94 - last_task_run = lv_tick_get(); - dd74: 4b49 ldr r3, [pc, #292] ; (de9c ) - dd76: 4798 blx r3 - dd78: 60a8 str r0, [r5, #8] -} - dd7a: b010 add sp, #64 ; 0x40 - dd7c: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} - a->has_run = 0; - dd80: f890 303c ldrb.w r3, [r0, #60] ; 0x3c - dd84: f36f 0341 bfc r3, #1, #1 - dd88: f880 303c strb.w r3, [r0, #60] ; 0x3c - _LV_LL_READ(LV_GC_ROOT(_lv_anim_ll), a) { - dd8c: 4601 mov r1, r0 - dd8e: 4620 mov r0, r4 - dd90: 47a8 blx r5 - dd92: e7df b.n dd54 - anim_list_changed = false; - dd94: 2300 movs r3, #0 - dd96: 702b strb r3, [r5, #0] - if(!a->has_run) { - dd98: f894 303c ldrb.w r3, [r4, #60] ; 0x3c - dd9c: 079a lsls r2, r3, #30 - dd9e: d46f bmi.n de80 - a->has_run = 1; /*The list readying might be reseted so need to know which anim has run already*/ - dda0: f043 0302 orr.w r3, r3, #2 - dda4: f884 303c strb.w r3, [r4, #60] ; 0x3c - int32_t new_act_time = a->act_time + elaps; - dda8: 6a63 ldr r3, [r4, #36] ; 0x24 - if(a->act_time <= 0 && new_act_time >= 0) { - ddaa: 2b00 cmp r3, #0 - ddac: dc05 bgt.n ddba - ddae: 42f3 cmn r3, r6 - ddb0: d403 bmi.n ddba - if(a->start_cb) a->start_cb(a); - ddb2: 68a3 ldr r3, [r4, #8] - ddb4: b10b cbz r3, ddba - ddb6: 4620 mov r0, r4 - ddb8: 4798 blx r3 - a->act_time += elaps; - ddba: 6a63 ldr r3, [r4, #36] ; 0x24 - ddbc: 4433 add r3, r6 - if(a->act_time >= 0) { - ddbe: 2b00 cmp r3, #0 - a->act_time += elaps; - ddc0: 6263 str r3, [r4, #36] ; 0x24 - if(a->act_time >= 0) { - ddc2: db2e blt.n de22 - if(a->act_time > a->time) a->act_time = a->time; - ddc4: 6a22 ldr r2, [r4, #32] - ddc6: 429a cmp r2, r3 - ddc8: bfd4 ite le - ddca: 6262 strle r2, [r4, #36] ; 0x24 - ddcc: 6263 strgt r3, [r4, #36] ; 0x24 - if(a->path.cb) new_value = a->path.cb(&a->path, a); - ddce: 4620 mov r0, r4 - ddd0: 4621 mov r1, r4 - ddd2: f850 3f10 ldr.w r3, [r0, #16]! - ddd6: b353 cbz r3, de2e - ddd8: 4798 blx r3 - if(a->exec_cb) a->exec_cb(a->var, new_value); - ddda: 6863 ldr r3, [r4, #4] - dddc: b113 cbz r3, dde4 - ddde: b201 sxth r1, r0 - dde0: 6820 ldr r0, [r4, #0] - dde2: 4798 blx r3 - if(a->act_time >= a->time) { - dde4: e9d4 3208 ldrd r3, r2, [r4, #32] - dde8: 429a cmp r2, r3 - ddea: db1a blt.n de22 - if(a->playback_now == 0 && a->repeat_cnt > 0 && a->repeat_cnt != LV_ANIM_REPEAT_INFINITE) { - ddec: f894 303c ldrb.w r3, [r4, #60] ; 0x3c - ddf0: 8ea2 ldrh r2, [r4, #52] ; 0x34 - ddf2: 6ae1 ldr r1, [r4, #44] ; 0x2c - ddf4: f013 0301 ands.w r3, r3, #1 - ddf8: d122 bne.n de40 - ddfa: b9da cbnz r2, de34 - if(a->repeat_cnt == 0 && ((a->playback_time == 0) || (a->playback_time && a->playback_now == 1))) { - ddfc: 2900 cmp r1, #0 - ddfe: d13c bne.n de7a - _lv_memcpy(&a_tmp, a, sizeof(lv_anim_t)); - de00: 2240 movs r2, #64 ; 0x40 - de02: 4621 mov r1, r4 - de04: 4668 mov r0, sp - de06: 47d0 blx sl - _lv_ll_remove(&LV_GC_ROOT(_lv_anim_ll), a); - de08: 4621 mov r1, r4 - de0a: 4b25 ldr r3, [pc, #148] ; (dea0 ) - de0c: 4640 mov r0, r8 - de0e: 4798 blx r3 - lv_mem_free(a); - de10: 4b24 ldr r3, [pc, #144] ; (dea4 ) - de12: 4620 mov r0, r4 - de14: 4798 blx r3 - anim_mark_list_change(); - de16: 4b24 ldr r3, [pc, #144] ; (dea8 ) - de18: 4798 blx r3 - if(a_tmp.ready_cb != NULL) a_tmp.ready_cb(&a_tmp); - de1a: 9b03 ldr r3, [sp, #12] - de1c: b10b cbz r3, de22 - de1e: 4668 mov r0, sp - de20: 4798 blx r3 - if(anim_list_changed) - de22: 782b ldrb r3, [r5, #0] - de24: b363 cbz r3, de80 - a = _lv_ll_get_head(&LV_GC_ROOT(_lv_anim_ll)); - de26: 4640 mov r0, r8 - de28: 47b8 blx r7 - a = _lv_ll_get_next(&LV_GC_ROOT(_lv_anim_ll), a); - de2a: 4604 mov r4, r0 - de2c: e7a1 b.n dd72 - else new_value = lv_anim_path_linear(&a->path, a); - de2e: 4b1f ldr r3, [pc, #124] ; (deac ) - de30: 4798 blx r3 - de32: e7d2 b.n ddda - if(a->playback_now == 0 && a->repeat_cnt > 0 && a->repeat_cnt != LV_ANIM_REPEAT_INFINITE) { - de34: f64f 70ff movw r0, #65535 ; 0xffff - de38: 4282 cmp r2, r0 - de3a: d004 beq.n de46 - a->repeat_cnt--; - de3c: 3a01 subs r2, #1 - de3e: 86a2 strh r2, [r4, #52] ; 0x34 - if(a->repeat_cnt == 0 && ((a->playback_time == 0) || (a->playback_time && a->playback_now == 1))) { - de40: 8ea2 ldrh r2, [r4, #52] ; 0x34 - de42: 2a00 cmp r2, #0 - de44: d0da beq.n ddfc - a->act_time = -a->repeat_delay; /*Restart the animation*/ - de46: 6b22 ldr r2, [r4, #48] ; 0x30 - de48: 4252 negs r2, r2 - de4a: 6262 str r2, [r4, #36] ; 0x24 - if(a->playback_time != 0) { - de4c: 2900 cmp r1, #0 - de4e: d0e8 beq.n de22 - if(a->playback_now == 0) a->act_time = -a->playback_delay; - de50: b913 cbnz r3, de58 - de52: 6aa2 ldr r2, [r4, #40] ; 0x28 - de54: 4252 negs r2, r2 - de56: 6262 str r2, [r4, #36] ; 0x24 - a->playback_now = a->playback_now == 0 ? 1 : 0; - de58: f083 0201 eor.w r2, r3, #1 - de5c: f894 303c ldrb.w r3, [r4, #60] ; 0x3c - de60: f362 0300 bfi r3, r2, #0, #1 - a->start = a->end; - de64: e9d4 0206 ldrd r0, r2, [r4, #24] - a->playback_now = a->playback_now == 0 ? 1 : 0; - de68: f884 303c strb.w r3, [r4, #60] ; 0x3c - a->time = a->playback_now == 0 ? a->time_orig : a->playback_time; - de6c: 07db lsls r3, r3, #31 - de6e: bf58 it pl - de70: 6ba1 ldrpl r1, [r4, #56] ; 0x38 - de72: 6221 str r1, [r4, #32] - a->end = tmp; - de74: e9c4 2006 strd r2, r0, [r4, #24] - a->time = a->playback_now == 0 ? a->time_orig : a->playback_time; - de78: e7d3 b.n de22 - if(a->repeat_cnt == 0 && ((a->playback_time == 0) || (a->playback_time && a->playback_now == 1))) { - de7a: 2b00 cmp r3, #0 - de7c: d0e3 beq.n de46 - de7e: e7bf b.n de00 - a = _lv_ll_get_next(&LV_GC_ROOT(_lv_anim_ll), a); - de80: 4621 mov r1, r4 - de82: 4640 mov r0, r8 - de84: 47c8 blx r9 - de86: e7d0 b.n de2a - de88: 2000360c .word 0x2000360c - de8c: 0000e92d .word 0x0000e92d - de90: 0000e939 .word 0x0000e939 - de94: 200035c4 .word 0x200035c4 - de98: 0000dce1 .word 0x0000dce1 - de9c: 0000dccd .word 0x0000dccd - dea0: 0000e9f1 .word 0x0000e9f1 - dea4: 0000ed75 .word 0x0000ed75 - dea8: 0000dd15 .word 0x0000dd15 - deac: 0000dcf1 .word 0x0000dcf1 - deb0: 0000eec1 .word 0x0000eec1 - -0000deb4 <_lv_anim_core_init>: -{ - deb4: b538 push {r3, r4, r5, lr} - _lv_ll_init(&LV_GC_ROOT(_lv_anim_ll), sizeof(lv_anim_t)); - deb6: 2140 movs r1, #64 ; 0x40 - deb8: 4809 ldr r0, [pc, #36] ; (dee0 <_lv_anim_core_init+0x2c>) - deba: 4b0a ldr r3, [pc, #40] ; (dee4 <_lv_anim_core_init+0x30>) - last_task_run = lv_tick_get(); - debc: 4c0a ldr r4, [pc, #40] ; (dee8 <_lv_anim_core_init+0x34>) - _lv_anim_task = lv_task_create(anim_task, LV_DISP_DEF_REFR_PERIOD, LV_ANIM_TASK_PRIO, NULL); - debe: 4d0b ldr r5, [pc, #44] ; (deec <_lv_anim_core_init+0x38>) - _lv_ll_init(&LV_GC_ROOT(_lv_anim_ll), sizeof(lv_anim_t)); - dec0: 4798 blx r3 - last_task_run = lv_tick_get(); - dec2: 4b0b ldr r3, [pc, #44] ; (def0 <_lv_anim_core_init+0x3c>) - dec4: 4798 blx r3 - _lv_anim_task = lv_task_create(anim_task, LV_DISP_DEF_REFR_PERIOD, LV_ANIM_TASK_PRIO, NULL); - dec6: 2300 movs r3, #0 - last_task_run = lv_tick_get(); - dec8: 60a0 str r0, [r4, #8] - _lv_anim_task = lv_task_create(anim_task, LV_DISP_DEF_REFR_PERIOD, LV_ANIM_TASK_PRIO, NULL); - deca: 2204 movs r2, #4 - decc: 211e movs r1, #30 - dece: 4809 ldr r0, [pc, #36] ; (def4 <_lv_anim_core_init+0x40>) - ded0: 47a8 blx r5 - anim_mark_list_change(); /*Turn off the animation task*/ - ded2: 4b09 ldr r3, [pc, #36] ; (def8 <_lv_anim_core_init+0x44>) - _lv_anim_task = lv_task_create(anim_task, LV_DISP_DEF_REFR_PERIOD, LV_ANIM_TASK_PRIO, NULL); - ded4: 6060 str r0, [r4, #4] - anim_mark_list_change(); /*Turn off the animation task*/ - ded6: 4798 blx r3 - anim_list_changed = false; /*The list has not actaully changed*/ - ded8: 2300 movs r3, #0 - deda: 7023 strb r3, [r4, #0] -} - dedc: bd38 pop {r3, r4, r5, pc} - dede: bf00 nop - dee0: 2000360c .word 0x2000360c - dee4: 0000e889 .word 0x0000e889 - dee8: 200035c4 .word 0x200035c4 - deec: 0000fe61 .word 0x0000fe61 - def0: 0000dccd .word 0x0000dccd - def4: 0000dd45 .word 0x0000dd45 - def8: 0000dd15 .word 0x0000dd15 - -0000defc : -{ - defc: b510 push {r4, lr} - _lv_memset_00(a, sizeof(lv_anim_t)); - defe: 4b0b ldr r3, [pc, #44] ; (df2c ) -{ - df00: 4604 mov r4, r0 - _lv_memset_00(a, sizeof(lv_anim_t)); - df02: 2140 movs r1, #64 ; 0x40 - df04: 4798 blx r3 - a->time = 500; - df06: f44f 73fa mov.w r3, #500 ; 0x1f4 - df0a: 6223 str r3, [r4, #32] - a->end = 100; - df0c: 2100 movs r1, #0 - df0e: 2364 movs r3, #100 ; 0x64 - df10: e9c4 1306 strd r1, r3, [r4, #24] -{ - uint8_t * d8 = (uint8_t *)dst; - const uint8_t * s8 = (const uint8_t *)src; - - while(len) { - *d8 = *s8; - df14: 4b06 ldr r3, [pc, #24] ; (df30 ) - df16: 6123 str r3, [r4, #16] - a->repeat_cnt = 1; - df18: 2301 movs r3, #1 - df1a: 86a3 strh r3, [r4, #52] ; 0x34 - a->early_apply = 1; - df1c: f894 3036 ldrb.w r3, [r4, #54] ; 0x36 - df20: f043 0301 orr.w r3, r3, #1 - df24: f884 3036 strb.w r3, [r4, #54] ; 0x36 -} - df28: bd10 pop {r4, pc} - df2a: bf00 nop - df2c: 0000f2a9 .word 0x0000f2a9 - df30: 0000dcf1 .word 0x0000dcf1 - -0000df34 : -{ - df34: e92d 4ff8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr} - a = _lv_ll_get_head(&LV_GC_ROOT(_lv_anim_ll)); - df38: 4b14 ldr r3, [pc, #80] ; (df8c ) - a_next = _lv_ll_get_next(&LV_GC_ROOT(_lv_anim_ll), a); - df3a: f8df 9054 ldr.w r9, [pc, #84] ; df90 - df3e: f8df a05c ldr.w sl, [pc, #92] ; df9c - _lv_ll_remove(&LV_GC_ROOT(_lv_anim_ll), a); - df42: f8df b05c ldr.w fp, [pc, #92] ; dfa0 -{ - df46: 4606 mov r6, r0 - a = _lv_ll_get_head(&LV_GC_ROOT(_lv_anim_ll)); - df48: 4811 ldr r0, [pc, #68] ; (df90 ) -{ - df4a: 460d mov r5, r1 - a = _lv_ll_get_head(&LV_GC_ROOT(_lv_anim_ll)); - df4c: 4798 blx r3 - bool del = false; - df4e: f04f 0800 mov.w r8, #0 - a = _lv_ll_get_head(&LV_GC_ROOT(_lv_anim_ll)); - df52: 4604 mov r4, r0 - while(a != NULL) { - df54: b914 cbnz r4, df5c -} - df56: 4640 mov r0, r8 - df58: e8bd 8ff8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} - a_next = _lv_ll_get_next(&LV_GC_ROOT(_lv_anim_ll), a); - df5c: 4621 mov r1, r4 - df5e: 4648 mov r0, r9 - df60: 47d0 blx sl - if(a->var == var && (a->exec_cb == exec_cb || exec_cb == NULL)) { - df62: 6823 ldr r3, [r4, #0] - df64: 42b3 cmp r3, r6 - a_next = _lv_ll_get_next(&LV_GC_ROOT(_lv_anim_ll), a); - df66: 4607 mov r7, r0 - if(a->var == var && (a->exec_cb == exec_cb || exec_cb == NULL)) { - df68: d10d bne.n df86 - df6a: 6863 ldr r3, [r4, #4] - df6c: 42ab cmp r3, r5 - df6e: d000 beq.n df72 - df70: b94d cbnz r5, df86 - _lv_ll_remove(&LV_GC_ROOT(_lv_anim_ll), a); - df72: 4621 mov r1, r4 - df74: 4648 mov r0, r9 - df76: 47d8 blx fp - lv_mem_free(a); - df78: 4b06 ldr r3, [pc, #24] ; (df94 ) - df7a: 4620 mov r0, r4 - df7c: 4798 blx r3 - anim_mark_list_change(); /*Read by `anim_task`. It need to know if a delete occurred in - df7e: 4b06 ldr r3, [pc, #24] ; (df98 ) - df80: 4798 blx r3 - del = true; - df82: f04f 0801 mov.w r8, #1 - df86: 463c mov r4, r7 - df88: e7e4 b.n df54 - df8a: bf00 nop - df8c: 0000e92d .word 0x0000e92d - df90: 2000360c .word 0x2000360c - df94: 0000ed75 .word 0x0000ed75 - df98: 0000dd15 .word 0x0000dd15 - df9c: 0000e939 .word 0x0000e939 - dfa0: 0000e9f1 .word 0x0000e9f1 - -0000dfa4 : -{ - dfa4: b573 push {r0, r1, r4, r5, r6, lr} - if(a->exec_cb != NULL) lv_anim_del(a->var, a->exec_cb); /*fp == NULL would delete all animations of var*/ - dfa6: 6841 ldr r1, [r0, #4] -{ - dfa8: 4605 mov r5, r0 - if(a->exec_cb != NULL) lv_anim_del(a->var, a->exec_cb); /*fp == NULL would delete all animations of var*/ - dfaa: b111 cbz r1, dfb2 - dfac: 6800 ldr r0, [r0, #0] - dfae: 4b1d ldr r3, [pc, #116] ; (e024 ) - dfb0: 4798 blx r3 - if(_lv_ll_is_empty(&LV_GC_ROOT(_lv_anim_ll))) { - dfb2: 481d ldr r0, [pc, #116] ; (e028 ) - dfb4: 4b1d ldr r3, [pc, #116] ; (e02c ) - dfb6: 4798 blx r3 - dfb8: b120 cbz r0, dfc4 - last_task_run = lv_tick_get() - 1; - dfba: 4b1d ldr r3, [pc, #116] ; (e030 ) - dfbc: 4798 blx r3 - dfbe: 4b1d ldr r3, [pc, #116] ; (e034 ) - dfc0: 3801 subs r0, #1 - dfc2: 6098 str r0, [r3, #8] - lv_anim_t * new_anim = _lv_ll_ins_head(&LV_GC_ROOT(_lv_anim_ll)); - dfc4: 4b1c ldr r3, [pc, #112] ; (e038 ) - dfc6: 4818 ldr r0, [pc, #96] ; (e028 ) - dfc8: 4798 blx r3 - LV_ASSERT_MEM(new_anim); - dfca: 4b1c ldr r3, [pc, #112] ; (e03c ) - lv_anim_t * new_anim = _lv_ll_ins_head(&LV_GC_ROOT(_lv_anim_ll)); - dfcc: 4604 mov r4, r0 - LV_ASSERT_MEM(new_anim); - dfce: 4798 blx r3 - dfd0: 4606 mov r6, r0 - dfd2: b960 cbnz r0, dfee - dfd4: 4b1a ldr r3, [pc, #104] ; (e040 ) - dfd6: 491b ldr r1, [pc, #108] ; (e044 ) - dfd8: 9300 str r3, [sp, #0] - dfda: 226a movs r2, #106 ; 0x6a - dfdc: 2003 movs r0, #3 - dfde: 4d1a ldr r5, [pc, #104] ; (e048 ) - dfe0: 47a8 blx r5 - dfe2: 481a ldr r0, [pc, #104] ; (e04c ) - dfe4: 491a ldr r1, [pc, #104] ; (e050 ) - dfe6: 4622 mov r2, r4 - dfe8: 4633 mov r3, r6 - dfea: 4788 blx r1 - dfec: e7fe b.n dfec - if(new_anim == NULL) return; - dfee: b1b4 cbz r4, e01e - a->time_orig = a->time; - dff0: 6a2b ldr r3, [r5, #32] - dff2: 63ab str r3, [r5, #56] ; 0x38 - _lv_memcpy(new_anim, a, sizeof(lv_anim_t)); - dff4: 2240 movs r2, #64 ; 0x40 - dff6: 4b17 ldr r3, [pc, #92] ; (e054 ) - dff8: 4629 mov r1, r5 - dffa: 4620 mov r0, r4 - dffc: 4798 blx r3 - if(new_anim->early_apply) { - dffe: f894 3036 ldrb.w r3, [r4, #54] ; 0x36 - e002: 07db lsls r3, r3, #31 - e004: d506 bpl.n e014 - if(new_anim->exec_cb && new_anim->var) new_anim->exec_cb(new_anim->var, new_anim->start); - e006: 6863 ldr r3, [r4, #4] - e008: b123 cbz r3, e014 - e00a: 6820 ldr r0, [r4, #0] - e00c: b110 cbz r0, e014 - e00e: f9b4 1018 ldrsh.w r1, [r4, #24] - e012: 4798 blx r3 - anim_mark_list_change(); - e014: 4b10 ldr r3, [pc, #64] ; (e058 ) -} - e016: b002 add sp, #8 - e018: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr} - anim_mark_list_change(); - e01c: 4718 bx r3 -} - e01e: b002 add sp, #8 - e020: bd70 pop {r4, r5, r6, pc} - e022: bf00 nop - e024: 0000df35 .word 0x0000df35 - e028: 2000360c .word 0x2000360c - e02c: 0000eb55 .word 0x0000eb55 - e030: 0000dccd .word 0x0000dccd - e034: 200035c4 .word 0x200035c4 - e038: 0000e89d .word 0x0000e89d - e03c: 00001a65 .word 0x00001a65 - e040: 0002b998 .word 0x0002b998 - e044: 0002b968 .word 0x0002b968 - e048: 0000eb79 .word 0x0000eb79 - e04c: 00026842 .word 0x00026842 - e050: 00001a6d .word 0x00001a6d - e054: 0000eec1 .word 0x0000eec1 - e058: 0000dd15 .word 0x0000dd15 - -0000e05c : -{ - e05c: b5f8 push {r3, r4, r5, r6, r7, lr} - _LV_LL_READ(LV_GC_ROOT(_lv_anim_ll), a) { - e05e: 4b09 ldr r3, [pc, #36] ; (e084 ) - e060: 4e09 ldr r6, [pc, #36] ; (e088 ) - e062: 4f0a ldr r7, [pc, #40] ; (e08c ) -{ - e064: 4604 mov r4, r0 - _LV_LL_READ(LV_GC_ROOT(_lv_anim_ll), a) { - e066: 4808 ldr r0, [pc, #32] ; (e088 ) -{ - e068: 460d mov r5, r1 - _LV_LL_READ(LV_GC_ROOT(_lv_anim_ll), a) { - e06a: 4798 blx r3 - e06c: b900 cbnz r0, e070 -} - e06e: bdf8 pop {r3, r4, r5, r6, r7, pc} - if(a->var == var && a->exec_cb == exec_cb) { - e070: 6803 ldr r3, [r0, #0] - e072: 42a3 cmp r3, r4 - e074: d102 bne.n e07c - e076: 6843 ldr r3, [r0, #4] - e078: 42ab cmp r3, r5 - e07a: d0f8 beq.n e06e - _LV_LL_READ(LV_GC_ROOT(_lv_anim_ll), a) { - e07c: 4601 mov r1, r0 - e07e: 4630 mov r0, r6 - e080: 47b8 blx r7 - e082: e7f3 b.n e06c - e084: 0000e92d .word 0x0000e92d - e088: 2000360c .word 0x2000360c - e08c: 0000e939 .word 0x0000e939 - -0000e090 : - int32_t d = LV_MATH_ABS((int32_t)start - end); - e090: 1a8a subs r2, r1, r2 - e092: 2a00 cmp r2, #0 - e094: bfb8 it lt - e096: 4252 neglt r2, r2 - uint32_t time = (int32_t)((int32_t)(d * 1000) / speed); - e098: f44f 737a mov.w r3, #1000 ; 0x3e8 - e09c: 435a muls r2, r3 - e09e: fbb2 f0f0 udiv r0, r2, r0 - return time; - e0a2: 2801 cmp r0, #1 - e0a4: bf38 it cc - e0a6: 2001 movcc r0, #1 - e0a8: f64f 73ff movw r3, #65535 ; 0xffff - e0ac: 4298 cmp r0, r3 - e0ae: bf28 it cs - e0b0: 4618 movcs r0, r3 -} - e0b2: b280 uxth r0, r0 - e0b4: 4770 bx lr - -0000e0b6 : - -/********************** - * STATIC FUNCTIONS - **********************/ - -static bool lv_point_within_circle(const lv_area_t * area, const lv_point_t * p) - e0b6: b530 push {r4, r5, lr} -{ - lv_coord_t r = (area->x2 - area->x1) / 2; - e0b8: f9b0 3004 ldrsh.w r3, [r0, #4] - e0bc: f9b0 5000 ldrsh.w r5, [r0] - lv_coord_t cx = area->x1 + r; - lv_coord_t cy = area->y1 + r; - - /*Simplify the code by moving everything to (0, 0) */ - lv_coord_t px = p->x - cx; - lv_coord_t py = p->y - cy; - e0c0: 8840 ldrh r0, [r0, #2] - lv_coord_t r = (area->x2 - area->x1) / 2; - e0c2: 1b5b subs r3, r3, r5 - e0c4: eb03 73d3 add.w r3, r3, r3, lsr #31 - lv_coord_t py = p->y - cy; - e0c8: 1a12 subs r2, r2, r0 - lv_coord_t r = (area->x2 - area->x1) / 2; - e0ca: 105c asrs r4, r3, #1 - lv_coord_t cx = area->x1 + r; - e0cc: f3c3 034f ubfx r3, r3, #1, #16 - lv_coord_t px = p->x - cx; - e0d0: 1b49 subs r1, r1, r5 - lv_coord_t py = p->y - cy; - e0d2: 1ad2 subs r2, r2, r3 - lv_coord_t px = p->x - cx; - e0d4: 1ac9 subs r1, r1, r3 - - int32_t r_sqrd = r * r; - int32_t dist = (px * px) + (py * py); - e0d6: fb12 f202 smulbb r2, r2, r2 - int32_t r_sqrd = r * r; - e0da: 4364 muls r4, r4 - int32_t dist = (px * px) + (py * py); - e0dc: fb11 2101 smlabb r1, r1, r1, r2 - - if(dist <= r_sqrd) - return true; - else - return false; -} - e0e0: 428c cmp r4, r1 - e0e2: bfb4 ite lt - e0e4: 2000 movlt r0, #0 - e0e6: 2001 movge r0, #1 - e0e8: bd30 pop {r4, r5, pc} - -0000e0ea : - area_p->y2 = area_p->y1 + h - 1; - e0ea: 8843 ldrh r3, [r0, #2] - e0ec: 3901 subs r1, #1 - e0ee: 4419 add r1, r3 - e0f0: 80c1 strh r1, [r0, #6] -} - e0f2: 4770 bx lr - -0000e0f4 : - size = (uint32_t)(area_p->x2 - area_p->x1 + 1) * (area_p->y2 - area_p->y1 + 1); - e0f4: f9b0 3000 ldrsh.w r3, [r0] - e0f8: f9b0 2004 ldrsh.w r2, [r0, #4] - e0fc: f9b0 1002 ldrsh.w r1, [r0, #2] - e100: 1ad2 subs r2, r2, r3 - e102: f9b0 3006 ldrsh.w r3, [r0, #6] - e106: 1a58 subs r0, r3, r1 - e108: 3001 adds r0, #1 -} - e10a: fb02 0000 mla r0, r2, r0, r0 - e10e: 4770 bx lr - -0000e110 <_lv_area_intersect>: - res_p->x1 = LV_MATH_MAX(a1_p->x1, a2_p->x1); - e110: f9b1 3000 ldrsh.w r3, [r1] -{ - e114: b570 push {r4, r5, r6, lr} - res_p->x1 = LV_MATH_MAX(a1_p->x1, a2_p->x1); - e116: f9b2 5000 ldrsh.w r5, [r2] - res_p->y1 = LV_MATH_MAX(a1_p->y1, a2_p->y1); - e11a: f9b1 4002 ldrsh.w r4, [r1, #2] - res_p->x2 = LV_MATH_MIN(a1_p->x2, a2_p->x2); - e11e: f9b1 6004 ldrsh.w r6, [r1, #4] - res_p->y2 = LV_MATH_MIN(a1_p->y2, a2_p->y2); - e122: f9b1 1006 ldrsh.w r1, [r1, #6] - res_p->x1 = LV_MATH_MAX(a1_p->x1, a2_p->x1); - e126: 429d cmp r5, r3 - e128: bfb8 it lt - e12a: 461d movlt r5, r3 - res_p->y1 = LV_MATH_MAX(a1_p->y1, a2_p->y1); - e12c: f9b2 3002 ldrsh.w r3, [r2, #2] - res_p->x1 = LV_MATH_MAX(a1_p->x1, a2_p->x1); - e130: 8005 strh r5, [r0, #0] - res_p->y1 = LV_MATH_MAX(a1_p->y1, a2_p->y1); - e132: 42a3 cmp r3, r4 - e134: bfb8 it lt - e136: 4623 movlt r3, r4 - res_p->x2 = LV_MATH_MIN(a1_p->x2, a2_p->x2); - e138: f9b2 4004 ldrsh.w r4, [r2, #4] - res_p->y2 = LV_MATH_MIN(a1_p->y2, a2_p->y2); - e13c: f9b2 2006 ldrsh.w r2, [r2, #6] - res_p->y1 = LV_MATH_MAX(a1_p->y1, a2_p->y1); - e140: 8043 strh r3, [r0, #2] - res_p->x2 = LV_MATH_MIN(a1_p->x2, a2_p->x2); - e142: 42b4 cmp r4, r6 - e144: bfa8 it ge - e146: 4634 movge r4, r6 - res_p->y2 = LV_MATH_MIN(a1_p->y2, a2_p->y2); - e148: 428a cmp r2, r1 - e14a: bfa8 it ge - e14c: 460a movge r2, r1 - if((res_p->x1 > res_p->x2) || (res_p->y1 > res_p->y2)) { - e14e: 42a5 cmp r5, r4 - res_p->x2 = LV_MATH_MIN(a1_p->x2, a2_p->x2); - e150: 8084 strh r4, [r0, #4] - res_p->y2 = LV_MATH_MIN(a1_p->y2, a2_p->y2); - e152: 80c2 strh r2, [r0, #6] - if((res_p->x1 > res_p->x2) || (res_p->y1 > res_p->y2)) { - e154: dc04 bgt.n e160 <_lv_area_intersect+0x50> - e156: 4293 cmp r3, r2 - e158: bfcc ite gt - e15a: 2000 movgt r0, #0 - e15c: 2001 movle r0, #1 -} - e15e: bd70 pop {r4, r5, r6, pc} - union_ok = false; - e160: 2000 movs r0, #0 - e162: e7fc b.n e15e <_lv_area_intersect+0x4e> - -0000e164 <_lv_area_join>: - a_res_p->x1 = LV_MATH_MIN(a1_p->x1, a2_p->x1); - e164: f9b2 3000 ldrsh.w r3, [r2] -{ - e168: b510 push {r4, lr} - a_res_p->x1 = LV_MATH_MIN(a1_p->x1, a2_p->x1); - e16a: f9b1 4000 ldrsh.w r4, [r1] - e16e: 42a3 cmp r3, r4 - e170: bfa8 it ge - e172: 4623 movge r3, r4 - e174: 8003 strh r3, [r0, #0] - a_res_p->y1 = LV_MATH_MIN(a1_p->y1, a2_p->y1); - e176: f9b1 4002 ldrsh.w r4, [r1, #2] - e17a: f9b2 3002 ldrsh.w r3, [r2, #2] - e17e: 42a3 cmp r3, r4 - e180: bfa8 it ge - e182: 4623 movge r3, r4 - e184: 8043 strh r3, [r0, #2] - a_res_p->x2 = LV_MATH_MAX(a1_p->x2, a2_p->x2); - e186: f9b1 4004 ldrsh.w r4, [r1, #4] - e18a: f9b2 3004 ldrsh.w r3, [r2, #4] - e18e: 42a3 cmp r3, r4 - e190: bfb8 it lt - e192: 4623 movlt r3, r4 - e194: 8083 strh r3, [r0, #4] - a_res_p->y2 = LV_MATH_MAX(a1_p->y2, a2_p->y2); - e196: f9b2 3006 ldrsh.w r3, [r2, #6] - e19a: f9b1 2006 ldrsh.w r2, [r1, #6] - e19e: 4293 cmp r3, r2 - e1a0: bfb8 it lt - e1a2: 4613 movlt r3, r2 - e1a4: 80c3 strh r3, [r0, #6] -} - e1a6: bd10 pop {r4, pc} - -0000e1a8 <_lv_area_is_point_on>: -{ - e1a8: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - if((p_p->x >= a_p->x1 && p_p->x <= a_p->x2) && ((p_p->y >= a_p->y1 && p_p->y <= a_p->y2))) { - e1ac: f9b1 9000 ldrsh.w r9, [r1] - e1b0: f9b0 4000 ldrsh.w r4, [r0] - e1b4: 45a1 cmp r9, r4 -{ - e1b6: b087 sub sp, #28 - e1b8: 4688 mov r8, r1 - if((p_p->x >= a_p->x1 && p_p->x <= a_p->x2) && ((p_p->y >= a_p->y1 && p_p->y <= a_p->y2))) { - e1ba: f2c0 8088 blt.w e2ce <_lv_area_is_point_on+0x126> - e1be: f9b0 3004 ldrsh.w r3, [r0, #4] - e1c2: 9301 str r3, [sp, #4] - e1c4: 4599 cmp r9, r3 - e1c6: f300 8082 bgt.w e2ce <_lv_area_is_point_on+0x126> - e1ca: f9b1 a002 ldrsh.w sl, [r1, #2] - e1ce: f9b0 b002 ldrsh.w fp, [r0, #2] - e1d2: 45da cmp sl, fp - e1d4: db7b blt.n e2ce <_lv_area_is_point_on+0x126> - e1d6: f9b0 3006 ldrsh.w r3, [r0, #6] - e1da: 459a cmp sl, r3 - e1dc: dc77 bgt.n e2ce <_lv_area_is_point_on+0x126> - if(radius <= 0) { - e1de: 2a00 cmp r2, #0 - e1e0: dc03 bgt.n e1ea <_lv_area_is_point_on+0x42> - return true; - e1e2: 2001 movs r0, #1 -} - e1e4: b007 add sp, #28 - e1e6: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - * @param area_p pointer to an area - * @return the width of the area (if x1 == x2 -> width = 1) - */ -static inline lv_coord_t lv_area_get_width(const lv_area_t * area_p) -{ - return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - e1ea: f8bd 0004 ldrh.w r0, [sp, #4] - e1ee: 9002 str r0, [sp, #8] - e1f0: b2a7 uxth r7, r4 - e1f2: 3001 adds r0, #1 - e1f4: 1bc0 subs r0, r0, r7 - * @param area_p pointer to an area - * @return the height of the area (if y1 == y2 -> height = 1) - */ -static inline lv_coord_t lv_area_get_height(const lv_area_t * area_p) -{ - return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - e1f6: b29e uxth r6, r3 - corner_area.x1 = a_p->x1; - e1f8: f8ad 4010 strh.w r4, [sp, #16] - lv_coord_t w = lv_area_get_width(a_p) / 2; - e1fc: f3c0 34c0 ubfx r4, r0, #15, #1 - e200: fa1f fc8b uxth.w ip, fp - e204: fa04 f080 sxtah r0, r4, r0 - e208: 1c74 adds r4, r6, #1 - e20a: eba4 040c sub.w r4, r4, ip - lv_coord_t h = lv_area_get_height(a_p) / 2; - e20e: f3c4 35c0 ubfx r5, r4, #15, #1 - e212: fa05 f584 sxtah r5, r5, r4 - lv_coord_t max_radius = LV_MATH_MIN(w, h); - e216: 1040 asrs r0, r0, #1 - e218: 106d asrs r5, r5, #1 - corner_area.x2 = a_p->x1 + radius; - e21a: 42a8 cmp r0, r5 - e21c: bfa8 it ge - e21e: 4628 movge r0, r5 - e220: 4290 cmp r0, r2 - e222: bfa8 it ge - e224: 4610 movge r0, r2 - corner_area.y2 = a_p->y1 + radius; - e226: fa1c f480 uxtah r4, ip, r0 - corner_area.x2 = a_p->x1 + radius; - e22a: fa17 f780 uxtah r7, r7, r0 - if(_lv_area_is_point_on(&corner_area, p_p, 0)) { - e22e: 2200 movs r2, #0 - corner_area.x2 = a_p->x1 + radius; - e230: b285 uxth r5, r0 - e232: b2bf uxth r7, r7 - corner_area.y2 = a_p->y1 + radius; - e234: b224 sxth r4, r4 - if(_lv_area_is_point_on(&corner_area, p_p, 0)) { - e236: a804 add r0, sp, #16 - e238: 9303 str r3, [sp, #12] - corner_area.x2 = a_p->x1 + radius; - e23a: f8ad 7014 strh.w r7, [sp, #20] - corner_area.y1 = a_p->y1; - e23e: f8ad b012 strh.w fp, [sp, #18] - corner_area.y2 = a_p->y1 + radius; - e242: f8ad 4016 strh.w r4, [sp, #22] - if(_lv_area_is_point_on(&corner_area, p_p, 0)) { - e246: f7ff ffaf bl e1a8 <_lv_area_is_point_on> - e24a: 9b03 ldr r3, [sp, #12] - e24c: 4602 mov r2, r0 - e24e: b140 cbz r0, e262 <_lv_area_is_point_on+0xba> - corner_area.x2 += radius; - e250: 443d add r5, r7 - e252: f8ad 5014 strh.w r5, [sp, #20] - return lv_point_within_circle(&corner_area, p_p); - e256: 4b1f ldr r3, [pc, #124] ; (e2d4 <_lv_area_is_point_on+0x12c>) - e258: 4652 mov r2, sl - e25a: 4649 mov r1, r9 - e25c: a804 add r0, sp, #16 - e25e: 4798 blx r3 - e260: e7c0 b.n e1e4 <_lv_area_is_point_on+0x3c> - corner_area.y1 = a_p->y2 - radius; - e262: 1b76 subs r6, r6, r5 - e264: b2b6 uxth r6, r6 - if(_lv_area_is_point_on(&corner_area, p_p, 0)) { - e266: 4641 mov r1, r8 - e268: a804 add r0, sp, #16 - corner_area.y1 = a_p->y2 - radius; - e26a: f8ad 6012 strh.w r6, [sp, #18] - corner_area.y2 = a_p->y2; - e26e: f8ad 3016 strh.w r3, [sp, #22] - if(_lv_area_is_point_on(&corner_area, p_p, 0)) { - e272: f7ff ff99 bl e1a8 <_lv_area_is_point_on> - e276: 4602 mov r2, r0 - e278: b130 cbz r0, e288 <_lv_area_is_point_on+0xe0> - corner_area.x2 += radius; - e27a: 442f add r7, r5 - corner_area.y1 -= radius; - e27c: 1b75 subs r5, r6, r5 - corner_area.x2 += radius; - e27e: f8ad 7014 strh.w r7, [sp, #20] - corner_area.y1 -= radius; - e282: f8ad 5012 strh.w r5, [sp, #18] - return lv_point_within_circle(&corner_area, p_p); - e286: e7e6 b.n e256 <_lv_area_is_point_on+0xae> - corner_area.x1 = a_p->x2 - radius; - e288: 9b02 ldr r3, [sp, #8] - e28a: 1b5f subs r7, r3, r5 - e28c: b2bf uxth r7, r7 - corner_area.x2 = a_p->x2; - e28e: 9b01 ldr r3, [sp, #4] - corner_area.x1 = a_p->x2 - radius; - e290: f8ad 7010 strh.w r7, [sp, #16] - if(_lv_area_is_point_on(&corner_area, p_p, 0)) { - e294: 4641 mov r1, r8 - e296: a804 add r0, sp, #16 - corner_area.x2 = a_p->x2; - e298: f8ad 3014 strh.w r3, [sp, #20] - if(_lv_area_is_point_on(&corner_area, p_p, 0)) { - e29c: f7ff ff84 bl e1a8 <_lv_area_is_point_on> - e2a0: 4602 mov r2, r0 - e2a2: b130 cbz r0, e2b2 <_lv_area_is_point_on+0x10a> - corner_area.x1 -= radius; - e2a4: 1b7f subs r7, r7, r5 - corner_area.y1 -= radius; - e2a6: 1b76 subs r6, r6, r5 - corner_area.x1 -= radius; - e2a8: f8ad 7010 strh.w r7, [sp, #16] - corner_area.y1 -= radius; - e2ac: f8ad 6012 strh.w r6, [sp, #18] - return lv_point_within_circle(&corner_area, p_p); - e2b0: e7d1 b.n e256 <_lv_area_is_point_on+0xae> - if(_lv_area_is_point_on(&corner_area, p_p, 0)) { - e2b2: 4641 mov r1, r8 - e2b4: a804 add r0, sp, #16 - corner_area.y1 = a_p->y1; - e2b6: f8ad b012 strh.w fp, [sp, #18] - corner_area.y2 = a_p->y1 + radius; - e2ba: f8ad 4016 strh.w r4, [sp, #22] - if(_lv_area_is_point_on(&corner_area, p_p, 0)) { - e2be: f7ff ff73 bl e1a8 <_lv_area_is_point_on> - e2c2: 2800 cmp r0, #0 - e2c4: d08d beq.n e1e2 <_lv_area_is_point_on+0x3a> - corner_area.x1 -= radius; - e2c6: 1b7f subs r7, r7, r5 - e2c8: f8ad 7010 strh.w r7, [sp, #16] - e2cc: e7c3 b.n e256 <_lv_area_is_point_on+0xae> - return false; - e2ce: 2000 movs r0, #0 - e2d0: e788 b.n e1e4 <_lv_area_is_point_on+0x3c> - e2d2: bf00 nop - e2d4: 0000e0b7 .word 0x0000e0b7 - -0000e2d8 <_lv_area_is_on>: - if((a1_p->x1 <= a2_p->x2) && (a1_p->x2 >= a2_p->x1) && (a1_p->y1 <= a2_p->y2) && (a1_p->y2 >= a2_p->y1)) { - e2d8: f9b0 2000 ldrsh.w r2, [r0] - e2dc: f9b1 3004 ldrsh.w r3, [r1, #4] - e2e0: 429a cmp r2, r3 - e2e2: dc14 bgt.n e30e <_lv_area_is_on+0x36> - e2e4: f9b0 2004 ldrsh.w r2, [r0, #4] - e2e8: f9b1 3000 ldrsh.w r3, [r1] - e2ec: 429a cmp r2, r3 - e2ee: db0e blt.n e30e <_lv_area_is_on+0x36> - e2f0: f9b0 2002 ldrsh.w r2, [r0, #2] - e2f4: f9b1 3006 ldrsh.w r3, [r1, #6] - e2f8: 429a cmp r2, r3 - e2fa: dc08 bgt.n e30e <_lv_area_is_on+0x36> - e2fc: f9b0 0006 ldrsh.w r0, [r0, #6] - e300: f9b1 3002 ldrsh.w r3, [r1, #2] - e304: 4298 cmp r0, r3 - e306: bfb4 ite lt - e308: 2000 movlt r0, #0 - e30a: 2001 movge r0, #1 - e30c: 4770 bx lr - return false; - e30e: 2000 movs r0, #0 -} - e310: 4770 bx lr - ... - -0000e314 <_lv_area_is_in>: -{ - e314: e92d 41ff stmdb sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, lr} - if(ain_p->x1 >= aholder_p->x1 && ain_p->y1 >= aholder_p->y1 && ain_p->x2 <= aholder_p->x2 && - e318: f9b0 7000 ldrsh.w r7, [r0] - e31c: f9b1 3000 ldrsh.w r3, [r1] - e320: 42bb cmp r3, r7 -{ - e322: 4605 mov r5, r0 - e324: 460c mov r4, r1 - if(ain_p->x1 >= aholder_p->x1 && ain_p->y1 >= aholder_p->y1 && ain_p->x2 <= aholder_p->x2 && - e326: dc24 bgt.n e372 <_lv_area_is_in+0x5e> - e328: f9b0 1002 ldrsh.w r1, [r0, #2] - e32c: f9b4 3002 ldrsh.w r3, [r4, #2] - e330: 4299 cmp r1, r3 - e332: db1e blt.n e372 <_lv_area_is_in+0x5e> - e334: f9b0 1004 ldrsh.w r1, [r0, #4] - e338: f9b4 3004 ldrsh.w r3, [r4, #4] - e33c: 4299 cmp r1, r3 - e33e: dc18 bgt.n e372 <_lv_area_is_in+0x5e> - e340: f9b0 3006 ldrsh.w r3, [r0, #6] - e344: f9b4 1006 ldrsh.w r1, [r4, #6] - e348: 428b cmp r3, r1 - e34a: bfcc ite gt - e34c: 2000 movgt r0, #0 - e34e: 2001 movle r0, #1 - if(radius == 0) return is_in; - e350: b162 cbz r2, e36c <_lv_area_is_in+0x58> - p.y = ain_p->y1; - e352: 886b ldrh r3, [r5, #2] - if(_lv_area_is_point_on(aholder_p, &p, radius) == false) return false; - e354: 4e16 ldr r6, [pc, #88] ; (e3b0 <_lv_area_is_in+0x9c>) - e356: 9201 str r2, [sp, #4] - e358: a903 add r1, sp, #12 - e35a: 4620 mov r0, r4 - p.x = ain_p->x1; - e35c: f8ad 700c strh.w r7, [sp, #12] - p.y = ain_p->y1; - e360: f8ad 300e strh.w r3, [sp, #14] - if(_lv_area_is_point_on(aholder_p, &p, radius) == false) return false; - e364: 47b0 blx r6 - e366: 9a01 ldr r2, [sp, #4] - e368: b928 cbnz r0, e376 <_lv_area_is_in+0x62> - e36a: 2000 movs r0, #0 -} - e36c: b004 add sp, #16 - e36e: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} - bool is_in = false; - e372: 2000 movs r0, #0 - e374: e7ec b.n e350 <_lv_area_is_in+0x3c> - p.x = ain_p->x2; - e376: f9b5 8004 ldrsh.w r8, [r5, #4] - e37a: f8ad 800c strh.w r8, [sp, #12] - if(_lv_area_is_point_on(aholder_p, &p, radius) == false) return false; - e37e: a903 add r1, sp, #12 - e380: 4620 mov r0, r4 - e382: 9201 str r2, [sp, #4] - e384: 47b0 blx r6 - e386: 2800 cmp r0, #0 - e388: d0ef beq.n e36a <_lv_area_is_in+0x56> - p.y = ain_p->y2; - e38a: 88eb ldrh r3, [r5, #6] - if(_lv_area_is_point_on(aholder_p, &p, radius) == false) return false; - e38c: 9a01 ldr r2, [sp, #4] - p.x = ain_p->x1; - e38e: f8ad 700c strh.w r7, [sp, #12] - if(_lv_area_is_point_on(aholder_p, &p, radius) == false) return false; - e392: a903 add r1, sp, #12 - e394: 4620 mov r0, r4 - p.y = ain_p->y2; - e396: f8ad 300e strh.w r3, [sp, #14] - if(_lv_area_is_point_on(aholder_p, &p, radius) == false) return false; - e39a: 47b0 blx r6 - e39c: 2800 cmp r0, #0 - e39e: d0e4 beq.n e36a <_lv_area_is_in+0x56> - if(_lv_area_is_point_on(aholder_p, &p, radius) == false) return false; - e3a0: 9a01 ldr r2, [sp, #4] - p.x = ain_p->x2; - e3a2: f8ad 800c strh.w r8, [sp, #12] - if(_lv_area_is_point_on(aholder_p, &p, radius) == false) return false; - e3a6: a903 add r1, sp, #12 - e3a8: 4620 mov r0, r4 - e3aa: 47b0 blx r6 - e3ac: e7de b.n e36c <_lv_area_is_in+0x58> - e3ae: bf00 nop - e3b0: 0000e1a9 .word 0x0000e1a9 - -0000e3b4 <_lv_area_align>: -{ - e3b4: b5f0 push {r4, r5, r6, r7, lr} - e3b6: 8844 ldrh r4, [r0, #2] - return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - e3b8: 8805 ldrh r5, [r0, #0] - switch(align) { - e3ba: 2a14 cmp r2, #20 - e3bc: d83f bhi.n e43e <_lv_area_align+0x8a> - e3be: e8df f012 tbh [pc, r2, lsl #1] - e3c2: 0015 .short 0x0015 - e3c4: 0045003b .word 0x0045003b - e3c8: 0061005a .word 0x0061005a - e3cc: 007c0069 .word 0x007c0069 - e3d0: 00850083 .word 0x00850083 - e3d4: 0093008c .word 0x0093008c - e3d8: 00ad00a6 .word 0x00ad00a6 - e3dc: 00c600b3 .word 0x00c600b3 - e3e0: 00d200cd .word 0x00d200cd - e3e4: 00dc00d7 .word 0x00dc00d7 - e3e8: 00e200df .word 0x00e200df - e3ec: 8882 ldrh r2, [r0, #4] - e3ee: 880f ldrh r7, [r1, #0] - e3f0: 3201 adds r2, #1 - e3f2: 1b52 subs r2, r2, r5 - res->x = lv_area_get_width(base) / 2 - lv_area_get_width(to_align) / 2; - e3f4: f3c2 36c0 ubfx r6, r2, #15, #1 - e3f8: fa06 f682 sxtah r6, r6, r2 - e3fc: 888a ldrh r2, [r1, #4] - e3fe: 3201 adds r2, #1 - e400: 1bd2 subs r2, r2, r7 - e402: f3c2 37c0 ubfx r7, r2, #15, #1 - e406: fa07 f282 sxtah r2, r7, r2 - e40a: 1052 asrs r2, r2, #1 - e40c: ebc2 0266 rsb r2, r2, r6, asr #1 - res->x = lv_area_get_width(base); - e410: 801a strh r2, [r3, #0] - return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - e412: 88c2 ldrh r2, [r0, #6] - e414: 3201 adds r2, #1 - e416: 1b12 subs r2, r2, r4 - res->y = lv_area_get_height(base) / 2 - lv_area_get_height(to_align) / 2; - e418: f3c2 30c0 ubfx r0, r2, #15, #1 - e41c: fa00 f082 sxtah r0, r0, r2 - e420: 88ca ldrh r2, [r1, #6] - e422: 8849 ldrh r1, [r1, #2] - e424: 3201 adds r2, #1 - e426: 1a52 subs r2, r2, r1 - e428: f3c2 31c0 ubfx r1, r2, #15, #1 - e42c: fa01 f282 sxtah r2, r1, r2 - e430: 1052 asrs r2, r2, #1 - e432: ebc2 0260 rsb r2, r2, r0, asr #1 - e436: e001 b.n e43c <_lv_area_align+0x88> - res->x = 0; - e438: 2200 movs r2, #0 - e43a: 801a strh r2, [r3, #0] - res->y = lv_area_get_height(base) - lv_area_get_height(to_align); - e43c: 805a strh r2, [r3, #2] - res->x += base->x1; - e43e: 881a ldrh r2, [r3, #0] - e440: 4415 add r5, r2 - res->y += base->y1; - e442: 885a ldrh r2, [r3, #2] - res->x += base->x1; - e444: 801d strh r5, [r3, #0] - res->y += base->y1; - e446: 4414 add r4, r2 - e448: 805c strh r4, [r3, #2] -} - e44a: bdf0 pop {r4, r5, r6, r7, pc} - return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - e44c: 8882 ldrh r2, [r0, #4] - e44e: 3201 adds r2, #1 - e450: 1b52 subs r2, r2, r5 - res->x = lv_area_get_width(base) / 2 - lv_area_get_width(to_align) / 2; - e452: f3c2 30c0 ubfx r0, r2, #15, #1 - e456: fa00 f082 sxtah r0, r0, r2 - e45a: 888a ldrh r2, [r1, #4] - e45c: 8809 ldrh r1, [r1, #0] - e45e: 3201 adds r2, #1 - e460: 1a52 subs r2, r2, r1 - e462: f3c2 31c0 ubfx r1, r2, #15, #1 - e466: fa01 f282 sxtah r2, r1, r2 - e46a: 1052 asrs r2, r2, #1 - e46c: ebc2 0260 rsb r2, r2, r0, asr #1 - res->x = lv_area_get_width(base); - e470: 801a strh r2, [r3, #0] - res->y = 0; - e472: 2200 movs r2, #0 - e474: e7e2 b.n e43c <_lv_area_align+0x88> - res->x = lv_area_get_width(base) - lv_area_get_width(to_align); - e476: 880a ldrh r2, [r1, #0] - e478: 8889 ldrh r1, [r1, #4] - e47a: 1a52 subs r2, r2, r1 - e47c: 8881 ldrh r1, [r0, #4] - e47e: 440a add r2, r1 - e480: 1b52 subs r2, r2, r5 - e482: e7f5 b.n e470 <_lv_area_align+0xbc> - res->x = 0; - e484: 2200 movs r2, #0 - res->x = lv_area_get_width(base); - e486: 801a strh r2, [r3, #0] - res->y = lv_area_get_height(base) - lv_area_get_height(to_align); - e488: 884a ldrh r2, [r1, #2] - e48a: 88c9 ldrh r1, [r1, #6] - e48c: 1a52 subs r2, r2, r1 - e48e: 88c1 ldrh r1, [r0, #6] - e490: 440a add r2, r1 - e492: e047 b.n e524 <_lv_area_align+0x170> - e494: 8882 ldrh r2, [r0, #4] - e496: 880f ldrh r7, [r1, #0] - e498: 3201 adds r2, #1 - e49a: 1b52 subs r2, r2, r5 - res->x = lv_area_get_width(base) / 2 - lv_area_get_width(to_align) / 2; - e49c: f3c2 36c0 ubfx r6, r2, #15, #1 - e4a0: fa06 f682 sxtah r6, r6, r2 - e4a4: 888a ldrh r2, [r1, #4] - e4a6: 3201 adds r2, #1 - e4a8: 1bd2 subs r2, r2, r7 - e4aa: f3c2 37c0 ubfx r7, r2, #15, #1 - e4ae: fa07 f282 sxtah r2, r7, r2 - e4b2: 1052 asrs r2, r2, #1 - e4b4: ebc2 0266 rsb r2, r2, r6, asr #1 - e4b8: e7e5 b.n e486 <_lv_area_align+0xd2> - res->x = lv_area_get_width(base) - lv_area_get_width(to_align); - e4ba: 888e ldrh r6, [r1, #4] - e4bc: 880a ldrh r2, [r1, #0] - e4be: 1b92 subs r2, r2, r6 - e4c0: 8886 ldrh r6, [r0, #4] - e4c2: 4432 add r2, r6 - e4c4: 1b52 subs r2, r2, r5 - e4c6: e7de b.n e486 <_lv_area_align+0xd2> - res->x = 0; - e4c8: 2200 movs r2, #0 - e4ca: e7a1 b.n e410 <_lv_area_align+0x5c> - res->x = lv_area_get_width(base) - lv_area_get_width(to_align); - e4cc: 888e ldrh r6, [r1, #4] - e4ce: 880a ldrh r2, [r1, #0] - e4d0: 1b92 subs r2, r2, r6 - e4d2: 8886 ldrh r6, [r0, #4] - e4d4: 4432 add r2, r6 - e4d6: 1b52 subs r2, r2, r5 - e4d8: e79a b.n e410 <_lv_area_align+0x5c> - res->x = 0; - e4da: 2200 movs r2, #0 - res->x = lv_area_get_width(base) - lv_area_get_width(to_align); - e4dc: 801a strh r2, [r3, #0] - res->y = -lv_area_get_height(to_align); - e4de: 884a ldrh r2, [r1, #2] - e4e0: 88c9 ldrh r1, [r1, #6] - e4e2: 3a01 subs r2, #1 - e4e4: 1a52 subs r2, r2, r1 - e4e6: e7a9 b.n e43c <_lv_area_align+0x88> - e4e8: 8882 ldrh r2, [r0, #4] - e4ea: 880e ldrh r6, [r1, #0] - e4ec: 3201 adds r2, #1 - e4ee: 1b52 subs r2, r2, r5 - res->x = lv_area_get_width(base) / 2 - lv_area_get_width(to_align) / 2; - e4f0: f3c2 30c0 ubfx r0, r2, #15, #1 - e4f4: fa00 f082 sxtah r0, r0, r2 - e4f8: 888a ldrh r2, [r1, #4] - e4fa: 3201 adds r2, #1 - e4fc: 1b92 subs r2, r2, r6 - e4fe: f3c2 36c0 ubfx r6, r2, #15, #1 - e502: fa06 f282 sxtah r2, r6, r2 - e506: 1052 asrs r2, r2, #1 - e508: ebc2 0260 rsb r2, r2, r0, asr #1 - e50c: e7e6 b.n e4dc <_lv_area_align+0x128> - res->x = lv_area_get_width(base) - lv_area_get_width(to_align); - e50e: 880a ldrh r2, [r1, #0] - e510: 888e ldrh r6, [r1, #4] - e512: 8880 ldrh r0, [r0, #4] - e514: 1b92 subs r2, r2, r6 - e516: 4402 add r2, r0 - e518: 1b52 subs r2, r2, r5 - e51a: e7df b.n e4dc <_lv_area_align+0x128> - res->x = 0; - e51c: 2200 movs r2, #0 - res->x = lv_area_get_width(base) - lv_area_get_width(to_align); - e51e: 801a strh r2, [r3, #0] - return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - e520: 88c2 ldrh r2, [r0, #6] - e522: 3201 adds r2, #1 - res->y = lv_area_get_height(base) - lv_area_get_height(to_align); - e524: 1b12 subs r2, r2, r4 - e526: e789 b.n e43c <_lv_area_align+0x88> - return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - e528: 8882 ldrh r2, [r0, #4] - e52a: 3201 adds r2, #1 - e52c: 1b52 subs r2, r2, r5 - res->x = lv_area_get_width(base) / 2 - lv_area_get_width(to_align) / 2; - e52e: f3c2 36c0 ubfx r6, r2, #15, #1 - e532: fa06 f682 sxtah r6, r6, r2 - e536: 888a ldrh r2, [r1, #4] - e538: 8809 ldrh r1, [r1, #0] - e53a: 3201 adds r2, #1 - e53c: 1a52 subs r2, r2, r1 - e53e: f3c2 31c0 ubfx r1, r2, #15, #1 - e542: fa01 f282 sxtah r2, r1, r2 - e546: 1052 asrs r2, r2, #1 - e548: ebc2 0266 rsb r2, r2, r6, asr #1 - e54c: e7e7 b.n e51e <_lv_area_align+0x16a> - res->x = lv_area_get_width(base) - lv_area_get_width(to_align); - e54e: 880a ldrh r2, [r1, #0] - e550: 8889 ldrh r1, [r1, #4] - e552: 1a52 subs r2, r2, r1 - e554: 8881 ldrh r1, [r0, #4] - e556: 440a add r2, r1 - e558: 1b52 subs r2, r2, r5 - e55a: e7e0 b.n e51e <_lv_area_align+0x16a> - res->x = -lv_area_get_width(to_align); - e55c: 880a ldrh r2, [r1, #0] - e55e: 8889 ldrh r1, [r1, #4] - e560: 3a01 subs r2, #1 - e562: 1a52 subs r2, r2, r1 - e564: e784 b.n e470 <_lv_area_align+0xbc> - res->x = -lv_area_get_width(to_align); - e566: 880a ldrh r2, [r1, #0] - e568: 888e ldrh r6, [r1, #4] - e56a: 3a01 subs r2, #1 - e56c: 1b92 subs r2, r2, r6 - e56e: e74f b.n e410 <_lv_area_align+0x5c> - res->x = -lv_area_get_width(to_align); - e570: 880a ldrh r2, [r1, #0] - e572: 888e ldrh r6, [r1, #4] - e574: 3a01 subs r2, #1 - e576: 1b92 subs r2, r2, r6 - e578: e785 b.n e486 <_lv_area_align+0xd2> - e57a: 8882 ldrh r2, [r0, #4] - e57c: 3201 adds r2, #1 - e57e: e77f b.n e480 <_lv_area_align+0xcc> - e580: 8882 ldrh r2, [r0, #4] - e582: 3201 adds r2, #1 - e584: e7a7 b.n e4d6 <_lv_area_align+0x122> - e586: 8882 ldrh r2, [r0, #4] - e588: 3201 adds r2, #1 - e58a: e79b b.n e4c4 <_lv_area_align+0x110> - -0000e58c : - -LV_ATTRIBUTE_FAST_MEM void lv_color_fill(lv_color_t * buf, lv_color_t color, uint32_t px_num) -{ -#if LV_COLOR_DEPTH == 16 - uintptr_t buf_int = (uintptr_t) buf; - if(buf_int & 0x3) { - e58c: 0783 lsls r3, r0, #30 -{ - e58e: b510 push {r4, lr} - e590: b28c uxth r4, r1 - *buf = color; - e592: bf1c itt ne - e594: f820 1b02 strhne.w r1, [r0], #2 - buf++; - px_num--; - e598: f102 32ff addne.w r2, r2, #4294967295 ; 0xffffffff - } - - uint32_t c32 = color.full + (color.full << 16); - e59c: eb04 4304 add.w r3, r4, r4, lsl #16 - uint32_t * buf32 = (uint32_t *)buf; - - while(px_num > 16) { - e5a0: 2a10 cmp r2, #16 - e5a2: 4601 mov r1, r0 - e5a4: f100 0020 add.w r0, r0, #32 - e5a8: d804 bhi.n e5b4 - e5aa: eb01 0242 add.w r2, r1, r2, lsl #1 - px_num -= 16; - } - - buf = (lv_color_t *)buf32; - - while(px_num) { - e5ae: 428a cmp r2, r1 - e5b0: d10a bne.n e5c8 - *buf = color; - buf++; - px_num --; - } -#endif -} - e5b2: bd10 pop {r4, pc} - *buf32 = c32; - e5b4: e940 3308 strd r3, r3, [r0, #-32] - *buf32 = c32; - e5b8: e940 3306 strd r3, r3, [r0, #-24] - *buf32 = c32; - e5bc: e940 3304 strd r3, r3, [r0, #-16] - *buf32 = c32; - e5c0: e940 3302 strd r3, r3, [r0, #-8] - px_num -= 16; - e5c4: 3a10 subs r2, #16 - e5c6: e7eb b.n e5a0 - *buf = color; - e5c8: f821 4b02 strh.w r4, [r1], #2 - px_num --; - e5cc: e7ef b.n e5ae - -0000e5ce : - - -lv_color_t lv_color_lighten(lv_color_t c, lv_opa_t lvl) -{ - e5ce: b530 push {r4, r5, lr} -LV_ATTRIBUTE_FAST_MEM static inline lv_color_t lv_color_mix(lv_color_t c1, lv_color_t c2, uint8_t mix) -{ - lv_color_t ret; -#if LV_COLOR_DEPTH != 1 - /*LV_COLOR_DEPTH == 8, 16 or 32*/ - LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix))); - e5d0: f1c1 04ff rsb r4, r1, #255 ; 0xff - LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix))); - e5d4: f3c0 1545 ubfx r5, r0, #5, #6 - e5d8: 4365 muls r5, r4 - e5da: 233f movs r3, #63 ; 0x3f - LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix))); - e5dc: ebc1 1241 rsb r2, r1, r1, lsl #5 - LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix))); - e5e0: fb13 5101 smlabb r1, r3, r1, r5 - LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix))); - e5e4: f000 031f and.w r3, r0, #31 - LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix))); - e5e8: f248 0581 movw r5, #32897 ; 0x8081 - LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix))); - e5ec: fb04 2303 mla r3, r4, r3, r2 - LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix))); - e5f0: f3c0 20c4 ubfx r0, r0, #11, #5 - LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix))); - e5f4: 4369 muls r1, r5 - LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix))); - e5f6: 436b muls r3, r5 - LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix))); - e5f8: fb04 2000 mla r0, r4, r0, r2 - e5fc: f3c1 51c5 ubfx r1, r1, #23, #6 - e600: 4368 muls r0, r5 - e602: f3c3 53c4 ubfx r3, r3, #23, #5 - e606: ea43 1341 orr.w r3, r3, r1, lsl #5 - e60a: 0dc0 lsrs r0, r0, #23 - return lv_color_mix(LV_COLOR_WHITE, c, lvl); -} - e60c: ea43 20c0 orr.w r0, r3, r0, lsl #11 - e610: bd30 pop {r4, r5, pc} - -0000e612 : - e612: f1c1 01ff rsb r1, r1, #255 ; 0xff - - -lv_color_t lv_color_darken(lv_color_t c, lv_opa_t lvl) -{ - e616: b510 push {r4, lr} - LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix))); - e618: f3c0 1245 ubfx r2, r0, #5, #6 - LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix))); - e61c: f000 031f and.w r3, r0, #31 - LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix))); - e620: f248 0481 movw r4, #32897 ; 0x8081 - e624: 434a muls r2, r1 - LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix))); - e626: 434b muls r3, r1 - LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix))); - e628: f3c0 20c4 ubfx r0, r0, #11, #5 - LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix))); - e62c: 4362 muls r2, r4 - LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix))); - e62e: 4363 muls r3, r4 - LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix))); - e630: 4348 muls r0, r1 - LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix))); - e632: 0dd2 lsrs r2, r2, #23 - LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix))); - e634: 4360 muls r0, r4 - LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix))); - e636: 0ddb lsrs r3, r3, #23 - e638: ea43 1342 orr.w r3, r3, r2, lsl #5 - LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix))); - e63c: 0dc0 lsrs r0, r0, #23 - return lv_color_mix(LV_COLOR_BLACK, c, lvl); -} - e63e: ea43 20c0 orr.w r0, r3, r0, lsl #11 - e642: bd10 pop {r4, pc} - -0000e644 : -static const char * lv_fs_get_real_path(const char * path) -{ - /* Example path: "S:/folder/file.txt" - * Leave the letter and the : / \ characters*/ - - path++; /*Ignore the driver letter*/ - e644: 1c43 adds r3, r0, #1 - e646: 4618 mov r0, r3 - - while(*path != '\0') { - e648: f813 2b01 ldrb.w r2, [r3], #1 - e64c: b12a cbz r2, e65a - if(*path == ':' || *path == '\\' || *path == '/') { - e64e: 2a3a cmp r2, #58 ; 0x3a - e650: d0f9 beq.n e646 - e652: 2a5c cmp r2, #92 ; 0x5c - e654: d0f7 beq.n e646 - e656: 2a2f cmp r2, #47 ; 0x2f - e658: d0f5 beq.n e646 - break; - } - } - - return path; -} - e65a: 4770 bx lr - -0000e65c <_lv_fs_init>: - _lv_ll_init(&LV_GC_ROOT(_lv_drv_ll), sizeof(lv_fs_drv_t)); - e65c: 4801 ldr r0, [pc, #4] ; (e664 <_lv_fs_init+0x8>) - e65e: 4b02 ldr r3, [pc, #8] ; (e668 <_lv_fs_init+0xc>) - e660: 2144 movs r1, #68 ; 0x44 - e662: 4718 bx r3 - e664: 200035f4 .word 0x200035f4 - e668: 0000e889 .word 0x0000e889 - -0000e66c : -{ - e66c: b538 push {r3, r4, r5, lr} - e66e: 4604 mov r4, r0 - if(file_p->drv == NULL) { - e670: 6840 ldr r0, [r0, #4] - e672: b160 cbz r0, e68e - if(file_p->drv->close_cb == NULL) { - e674: 6903 ldr r3, [r0, #16] - e676: b163 cbz r3, e692 - lv_fs_res_t res = file_p->drv->close_cb(file_p->drv, file_p->file_d); - e678: 6821 ldr r1, [r4, #0] - e67a: 4798 blx r3 - lv_mem_free(file_p->file_d); /*Clean up*/ - e67c: 4b06 ldr r3, [pc, #24] ; (e698 ) - lv_fs_res_t res = file_p->drv->close_cb(file_p->drv, file_p->file_d); - e67e: 4605 mov r5, r0 - lv_mem_free(file_p->file_d); /*Clean up*/ - e680: 6820 ldr r0, [r4, #0] - e682: 4798 blx r3 - file_p->file_d = NULL; - e684: 2300 movs r3, #0 - file_p->drv = NULL; - e686: e9c4 3300 strd r3, r3, [r4] -} - e68a: 4628 mov r0, r5 - e68c: bd38 pop {r3, r4, r5, pc} - return LV_FS_RES_INV_PARAM; - e68e: 250b movs r5, #11 - e690: e7fb b.n e68a - return LV_FS_RES_NOT_IMP; - e692: 2509 movs r5, #9 - e694: e7f9 b.n e68a - e696: bf00 nop - e698: 0000ed75 .word 0x0000ed75 - -0000e69c : -{ - e69c: b57f push {r0, r1, r2, r3, r4, r5, r6, lr} - e69e: 4605 mov r5, r0 - if(br != NULL) *br = 0; - e6a0: 461c mov r4, r3 - e6a2: b10b cbz r3, e6a8 - e6a4: 2300 movs r3, #0 - e6a6: 6023 str r3, [r4, #0] - if(file_p->drv == NULL) return LV_FS_RES_INV_PARAM; - e6a8: 6868 ldr r0, [r5, #4] - e6aa: b170 cbz r0, e6ca - if(file_p->drv->read_cb == NULL) return LV_FS_RES_NOT_IMP; - e6ac: 6986 ldr r6, [r0, #24] - e6ae: b176 cbz r6, e6ce - uint32_t br_tmp = 0; - e6b0: 2300 movs r3, #0 - e6b2: 9303 str r3, [sp, #12] - lv_fs_res_t res = file_p->drv->read_cb(file_p->drv, file_p->file_d, buf, btr, &br_tmp); - e6b4: ab03 add r3, sp, #12 - e6b6: 9300 str r3, [sp, #0] - e6b8: 4613 mov r3, r2 - e6ba: 460a mov r2, r1 - e6bc: 6829 ldr r1, [r5, #0] - e6be: 47b0 blx r6 - if(br != NULL) *br = br_tmp; - e6c0: b10c cbz r4, e6c6 - e6c2: 9b03 ldr r3, [sp, #12] - e6c4: 6023 str r3, [r4, #0] -} - e6c6: b004 add sp, #16 - e6c8: bd70 pop {r4, r5, r6, pc} - if(file_p->drv == NULL) return LV_FS_RES_INV_PARAM; - e6ca: 200b movs r0, #11 - e6cc: e7fb b.n e6c6 - if(file_p->drv->read_cb == NULL) return LV_FS_RES_NOT_IMP; - e6ce: 2009 movs r0, #9 - e6d0: e7f9 b.n e6c6 - -0000e6d2 : - if(file_p->drv == NULL) { - e6d2: 6843 ldr r3, [r0, #4] -{ - e6d4: b410 push {r4} - e6d6: 460a mov r2, r1 - if(file_p->drv == NULL) { - e6d8: b13b cbz r3, e6ea - if(file_p->drv->seek_cb == NULL) { - e6da: 6a1c ldr r4, [r3, #32] - e6dc: b14c cbz r4, e6f2 - lv_fs_res_t res = file_p->drv->seek_cb(file_p->drv, file_p->file_d, pos); - e6de: 6801 ldr r1, [r0, #0] - e6e0: 4618 mov r0, r3 - e6e2: 4623 mov r3, r4 -} - e6e4: f85d 4b04 ldr.w r4, [sp], #4 - lv_fs_res_t res = file_p->drv->seek_cb(file_p->drv, file_p->file_d, pos); - e6e8: 4718 bx r3 - return LV_FS_RES_INV_PARAM; - e6ea: 200b movs r0, #11 -} - e6ec: f85d 4b04 ldr.w r4, [sp], #4 - e6f0: 4770 bx lr - return LV_FS_RES_NOT_IMP; - e6f2: 2009 movs r0, #9 - e6f4: e7fa b.n e6ec - ... - -0000e6f8 : -{ - e6f8: b570 push {r4, r5, r6, lr} - _LV_LL_READ(LV_GC_ROOT(_lv_drv_ll), drv) { - e6fa: 4b07 ldr r3, [pc, #28] ; (e718 ) - e6fc: 4d07 ldr r5, [pc, #28] ; (e71c ) - e6fe: 4e08 ldr r6, [pc, #32] ; (e720 ) -{ - e700: 4604 mov r4, r0 - _LV_LL_READ(LV_GC_ROOT(_lv_drv_ll), drv) { - e702: 4806 ldr r0, [pc, #24] ; (e71c ) - e704: 4798 blx r3 - e706: b900 cbnz r0, e70a -} - e708: bd70 pop {r4, r5, r6, pc} - if(drv->letter == letter) { - e70a: 7803 ldrb r3, [r0, #0] - e70c: 42a3 cmp r3, r4 - e70e: d0fb beq.n e708 - _LV_LL_READ(LV_GC_ROOT(_lv_drv_ll), drv) { - e710: 4601 mov r1, r0 - e712: 4628 mov r0, r5 - e714: 47b0 blx r6 - e716: e7f6 b.n e706 - e718: 0000e92d .word 0x0000e92d - e71c: 200035f4 .word 0x200035f4 - e720: 0000e939 .word 0x0000e939 - -0000e724 : - file_p->drv = NULL; - e724: 2300 movs r3, #0 -{ - e726: e92d 41f3 stmdb sp!, {r0, r1, r4, r5, r6, r7, r8, lr} - file_p->file_d = NULL; - e72a: e9c0 3300 strd r3, r3, [r0] -{ - e72e: 4604 mov r4, r0 - e730: 4617 mov r7, r2 - if(path == NULL) return LV_FS_RES_INV_PARAM; - e732: 460e mov r6, r1 - e734: 2900 cmp r1, #0 - e736: d043 beq.n e7c0 - file_p->drv = lv_fs_get_drv(letter); - e738: 7808 ldrb r0, [r1, #0] - e73a: 4b23 ldr r3, [pc, #140] ; (e7c8 ) - e73c: 4798 blx r3 - e73e: 6060 str r0, [r4, #4] - if(file_p->drv == NULL) { - e740: b928 cbnz r0, e74e - file_p->file_d = NULL; - e742: 6020 str r0, [r4, #0] - return LV_FS_RES_NOT_EX; - e744: 2503 movs r5, #3 -} - e746: 4628 mov r0, r5 - e748: b002 add sp, #8 - e74a: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} - if(file_p->drv->ready_cb != NULL) { - e74e: 6883 ldr r3, [r0, #8] - e750: b12b cbz r3, e75e - if(file_p->drv->ready_cb(file_p->drv) == false) { - e752: 4798 blx r3 - e754: b918 cbnz r0, e75e - file_p->file_d = NULL; - e756: e9c4 0000 strd r0, r0, [r4] - return LV_FS_RES_HW_ERR; - e75a: 2501 movs r5, #1 - e75c: e7f3 b.n e746 - file_p->file_d = lv_mem_alloc(file_p->drv->file_size); - e75e: 6863 ldr r3, [r4, #4] - e760: 8858 ldrh r0, [r3, #2] - e762: 4b1a ldr r3, [pc, #104] ; (e7cc ) - e764: 4798 blx r3 - LV_ASSERT_MEM(file_p->file_d); - e766: 4b1a ldr r3, [pc, #104] ; (e7d0 ) - file_p->file_d = lv_mem_alloc(file_p->drv->file_size); - e768: 6020 str r0, [r4, #0] - LV_ASSERT_MEM(file_p->file_d); - e76a: 4798 blx r3 - e76c: 4605 mov r5, r0 - e76e: b960 cbnz r0, e78a - e770: 4b18 ldr r3, [pc, #96] ; (e7d4 ) - e772: 4919 ldr r1, [pc, #100] ; (e7d8 ) - e774: 9300 str r3, [sp, #0] - e776: 226f movs r2, #111 ; 0x6f - e778: 2003 movs r0, #3 - e77a: 4e18 ldr r6, [pc, #96] ; (e7dc ) - e77c: 47b0 blx r6 - e77e: 6822 ldr r2, [r4, #0] - e780: 4817 ldr r0, [pc, #92] ; (e7e0 ) - e782: 4918 ldr r1, [pc, #96] ; (e7e4 ) - e784: 462b mov r3, r5 - e786: 4788 blx r1 - e788: e7fe b.n e788 - if(file_p->file_d == NULL) { - e78a: 6821 ldr r1, [r4, #0] - e78c: b911 cbnz r1, e794 - file_p->drv = NULL; - e78e: 6061 str r1, [r4, #4] - return LV_FS_RES_OUT_OF_MEM; /* Out of memory */ - e790: 250a movs r5, #10 - e792: e7d8 b.n e746 - if(file_p->drv->open_cb == NULL) { - e794: f8d4 8004 ldr.w r8, [r4, #4] - e798: f8d8 500c ldr.w r5, [r8, #12] - e79c: b195 cbz r5, e7c4 - const char * real_path = lv_fs_get_real_path(path); - e79e: 4b12 ldr r3, [pc, #72] ; (e7e8 ) - e7a0: 4630 mov r0, r6 - e7a2: 4798 blx r3 - lv_fs_res_t res = file_p->drv->open_cb(file_p->drv, file_p->file_d, real_path, mode); - e7a4: 463b mov r3, r7 - const char * real_path = lv_fs_get_real_path(path); - e7a6: 4602 mov r2, r0 - lv_fs_res_t res = file_p->drv->open_cb(file_p->drv, file_p->file_d, real_path, mode); - e7a8: 4640 mov r0, r8 - e7aa: 47a8 blx r5 - if(res != LV_FS_RES_OK) { - e7ac: 4605 mov r5, r0 - e7ae: 2800 cmp r0, #0 - e7b0: d0c9 beq.n e746 - lv_mem_free(file_p->file_d); - e7b2: 4b0e ldr r3, [pc, #56] ; (e7ec ) - e7b4: 6820 ldr r0, [r4, #0] - e7b6: 4798 blx r3 - file_p->file_d = NULL; - e7b8: 2300 movs r3, #0 - file_p->drv = NULL; - e7ba: e9c4 3300 strd r3, r3, [r4] - e7be: e7c2 b.n e746 - if(path == NULL) return LV_FS_RES_INV_PARAM; - e7c0: 250b movs r5, #11 - e7c2: e7c0 b.n e746 - return LV_FS_RES_NOT_IMP; - e7c4: 2509 movs r5, #9 - e7c6: e7be b.n e746 - e7c8: 0000e6f9 .word 0x0000e6f9 - e7cc: 0000ecbd .word 0x0000ecbd - e7d0: 00001a65 .word 0x00001a65 - e7d4: 0002b9f1 .word 0x0002b9f1 - e7d8: 0002b9b0 .word 0x0002b9b0 - e7dc: 0000eb79 .word 0x0000eb79 - e7e0: 00026842 .word 0x00026842 - e7e4: 00001a6d .word 0x00001a6d - e7e8: 0000e645 .word 0x0000e645 - e7ec: 0000ed75 .word 0x0000ed75 - -0000e7f0 : -{ - e7f0: b510 push {r4, lr} - for(i = strlen(fn); i > 0; i--) { - e7f2: 4b09 ldr r3, [pc, #36] ; (e818 ) -{ - e7f4: 4604 mov r4, r0 - for(i = strlen(fn); i > 0; i--) { - e7f6: 4798 blx r3 - e7f8: b908 cbnz r0, e7fe - return ""; /*No extension if a '\' or '/' found*/ - e7fa: 4808 ldr r0, [pc, #32] ; (e81c ) - e7fc: e004 b.n e808 - if(fn[i] == '.') { - e7fe: 5c23 ldrb r3, [r4, r0] - e800: 2b2e cmp r3, #46 ; 0x2e - e802: d102 bne.n e80a - return &fn[i + 1]; - e804: 3001 adds r0, #1 - e806: 4420 add r0, r4 -} - e808: bd10 pop {r4, pc} - else if(fn[i] == '/' || fn[i] == '\\') { - e80a: 2b2f cmp r3, #47 ; 0x2f - e80c: d0f5 beq.n e7fa - e80e: 2b5c cmp r3, #92 ; 0x5c - e810: d0f3 beq.n e7fa - for(i = strlen(fn); i > 0; i--) { - e812: 3801 subs r0, #1 - e814: e7f0 b.n e7f8 - e816: bf00 nop - e818: 00017481 .word 0x00017481 - e81c: 0001df01 .word 0x0001df01 - -0000e820 <_lv_memcpy_small.constprop.0.isra.0>: - while(len) { - e820: 3901 subs r1, #1 - e822: 1d03 adds r3, r0, #4 - *d8 = *s8; - e824: f811 2f01 ldrb.w r2, [r1, #1]! - e828: f800 2b01 strb.w r2, [r0], #1 - while(len) { - e82c: 4298 cmp r0, r3 - e82e: d1f9 bne.n e824 <_lv_memcpy_small.constprop.0.isra.0+0x4> - s8++; - len--; - } - - return dst; -} - e830: 4770 bx lr - ... - -0000e834 : - * @param ll_p pointer to linked list - * @param act pointer to a node which prev. node pointer should be set - * @param prev pointer to a node which should be the previous node before 'act' - */ -static void node_set_prev(lv_ll_t * ll_p, lv_ll_node_t * act, lv_ll_node_t * prev) -{ - e834: b507 push {r0, r1, r2, lr} - e836: 9201 str r2, [sp, #4] - if(act == NULL) return; /*Can't set the prev node of `NULL`*/ - e838: b129 cbz r1, e846 - - uint32_t node_p_size = sizeof(lv_ll_node_t *); - if(prev) - _lv_memcpy_small(act + LL_PREV_P_OFFSET(ll_p), &prev, node_p_size); - e83a: 6800 ldr r0, [r0, #0] - e83c: 4408 add r0, r1 - if(prev) - e83e: b12a cbz r2, e84c - _lv_memcpy_small(act + LL_PREV_P_OFFSET(ll_p), &prev, node_p_size); - e840: 4b04 ldr r3, [pc, #16] ; (e854 ) - e842: a901 add r1, sp, #4 - e844: 4798 blx r3 - else - _lv_memset_00(act + LL_PREV_P_OFFSET(ll_p), node_p_size); -} - e846: b003 add sp, #12 - e848: f85d fb04 ldr.w pc, [sp], #4 - _lv_memset_00(act + LL_PREV_P_OFFSET(ll_p), node_p_size); - e84c: 4b02 ldr r3, [pc, #8] ; (e858 ) - e84e: 2104 movs r1, #4 - e850: 4798 blx r3 - e852: e7f8 b.n e846 - e854: 0000e821 .word 0x0000e821 - e858: 0000f2a9 .word 0x0000f2a9 - -0000e85c : - * @param ll_p pointer to linked list - * @param act pointer to a node which next node pointer should be set - * @param next pointer to a node which should be the next node before 'act' - */ -static void node_set_next(lv_ll_t * ll_p, lv_ll_node_t * act, lv_ll_node_t * next) -{ - e85c: b507 push {r0, r1, r2, lr} - e85e: 9201 str r2, [sp, #4] - if(act == NULL) return; /*Can't set the next node of `NULL`*/ - e860: b131 cbz r1, e870 - - uint32_t node_p_size = sizeof(lv_ll_node_t *); - if(next) - _lv_memcpy_small(act + LL_NEXT_P_OFFSET(ll_p), &next, node_p_size); - e862: 6803 ldr r3, [r0, #0] - e864: 3304 adds r3, #4 - e866: 18c8 adds r0, r1, r3 - if(next) - e868: b12a cbz r2, e876 - _lv_memcpy_small(act + LL_NEXT_P_OFFSET(ll_p), &next, node_p_size); - e86a: 4b05 ldr r3, [pc, #20] ; (e880 ) - e86c: a901 add r1, sp, #4 - e86e: 4798 blx r3 - else - _lv_memset_00(act + LL_NEXT_P_OFFSET(ll_p), node_p_size); -} - e870: b003 add sp, #12 - e872: f85d fb04 ldr.w pc, [sp], #4 - _lv_memset_00(act + LL_NEXT_P_OFFSET(ll_p), node_p_size); - e876: 4b03 ldr r3, [pc, #12] ; (e884 ) - e878: 2104 movs r1, #4 - e87a: 4798 blx r3 - e87c: e7f8 b.n e870 - e87e: bf00 nop - e880: 0000e821 .word 0x0000e821 - e884: 0000f2a9 .word 0x0000f2a9 - -0000e888 <_lv_ll_init>: - ll_p->head = NULL; - e888: 2300 movs r3, #0 - ll_p->tail = NULL; - e88a: e9c0 3301 strd r3, r3, [r0, #4] - if(node_size & 0x3) { - e88e: 078b lsls r3, r1, #30 - node_size = node_size & (~0x3); - e890: bf1c itt ne - e892: f021 0103 bicne.w r1, r1, #3 - node_size += 4; - e896: 3104 addne r1, #4 - ll_p->n_size = node_size; - e898: 6001 str r1, [r0, #0] -} - e89a: 4770 bx lr - -0000e89c <_lv_ll_ins_head>: -{ - e89c: b570 push {r4, r5, r6, lr} - e89e: 4604 mov r4, r0 - n_new = lv_mem_alloc(ll_p->n_size + LL_NODE_META_SIZE); - e8a0: 6800 ldr r0, [r0, #0] - e8a2: 4b0d ldr r3, [pc, #52] ; (e8d8 <_lv_ll_ins_head+0x3c>) - e8a4: 3008 adds r0, #8 - e8a6: 4798 blx r3 - if(n_new != NULL) { - e8a8: 4605 mov r5, r0 - e8aa: b190 cbz r0, e8d2 <_lv_ll_ins_head+0x36> - node_set_prev(ll_p, n_new, NULL); /*No prev. before the new head*/ - e8ac: 4601 mov r1, r0 - e8ae: 2200 movs r2, #0 - e8b0: 4620 mov r0, r4 - e8b2: 4e0a ldr r6, [pc, #40] ; (e8dc <_lv_ll_ins_head+0x40>) - e8b4: 47b0 blx r6 - node_set_next(ll_p, n_new, ll_p->head); /*After new comes the old head*/ - e8b6: 4629 mov r1, r5 - e8b8: 6862 ldr r2, [r4, #4] - e8ba: 4b09 ldr r3, [pc, #36] ; (e8e0 <_lv_ll_ins_head+0x44>) - e8bc: 4620 mov r0, r4 - e8be: 4798 blx r3 - if(ll_p->head != NULL) { /*If there is old head then before it goes the new*/ - e8c0: 6861 ldr r1, [r4, #4] - e8c2: b111 cbz r1, e8ca <_lv_ll_ins_head+0x2e> - node_set_prev(ll_p, ll_p->head, n_new); - e8c4: 462a mov r2, r5 - e8c6: 4620 mov r0, r4 - e8c8: 47b0 blx r6 - if(ll_p->tail == NULL) { /*If there is no tail (1. node) set the tail too*/ - e8ca: 68a3 ldr r3, [r4, #8] - ll_p->head = n_new; /*Set the new head in the dsc.*/ - e8cc: 6065 str r5, [r4, #4] - if(ll_p->tail == NULL) { /*If there is no tail (1. node) set the tail too*/ - e8ce: b903 cbnz r3, e8d2 <_lv_ll_ins_head+0x36> - ll_p->tail = n_new; - e8d0: 60a5 str r5, [r4, #8] -} - e8d2: 4628 mov r0, r5 - e8d4: bd70 pop {r4, r5, r6, pc} - e8d6: bf00 nop - e8d8: 0000ecbd .word 0x0000ecbd - e8dc: 0000e835 .word 0x0000e835 - e8e0: 0000e85d .word 0x0000e85d - -0000e8e4 <_lv_ll_ins_tail>: -{ - e8e4: b570 push {r4, r5, r6, lr} - e8e6: 4604 mov r4, r0 - n_new = lv_mem_alloc(ll_p->n_size + LL_NODE_META_SIZE); - e8e8: 6800 ldr r0, [r0, #0] - e8ea: 4b0d ldr r3, [pc, #52] ; (e920 <_lv_ll_ins_tail+0x3c>) - e8ec: 3008 adds r0, #8 - e8ee: 4798 blx r3 - if(n_new != NULL) { - e8f0: 4605 mov r5, r0 - e8f2: b190 cbz r0, e91a <_lv_ll_ins_tail+0x36> - node_set_next(ll_p, n_new, NULL); /*No next after the new tail*/ - e8f4: 4601 mov r1, r0 - e8f6: 2200 movs r2, #0 - e8f8: 4620 mov r0, r4 - e8fa: 4e0a ldr r6, [pc, #40] ; (e924 <_lv_ll_ins_tail+0x40>) - e8fc: 47b0 blx r6 - node_set_prev(ll_p, n_new, ll_p->tail); /*The prev. before new is tho old tail*/ - e8fe: 4629 mov r1, r5 - e900: 68a2 ldr r2, [r4, #8] - e902: 4b09 ldr r3, [pc, #36] ; (e928 <_lv_ll_ins_tail+0x44>) - e904: 4620 mov r0, r4 - e906: 4798 blx r3 - if(ll_p->tail != NULL) { /*If there is old tail then the new comes after it*/ - e908: 68a1 ldr r1, [r4, #8] - e90a: b111 cbz r1, e912 <_lv_ll_ins_tail+0x2e> - node_set_next(ll_p, ll_p->tail, n_new); - e90c: 462a mov r2, r5 - e90e: 4620 mov r0, r4 - e910: 47b0 blx r6 - if(ll_p->head == NULL) { /*If there is no head (1. node) set the head too*/ - e912: 6863 ldr r3, [r4, #4] - ll_p->tail = n_new; /*Set the new tail in the dsc.*/ - e914: 60a5 str r5, [r4, #8] - if(ll_p->head == NULL) { /*If there is no head (1. node) set the head too*/ - e916: b903 cbnz r3, e91a <_lv_ll_ins_tail+0x36> - ll_p->head = n_new; - e918: 6065 str r5, [r4, #4] -} - e91a: 4628 mov r0, r5 - e91c: bd70 pop {r4, r5, r6, pc} - e91e: bf00 nop - e920: 0000ecbd .word 0x0000ecbd - e924: 0000e85d .word 0x0000e85d - e928: 0000e835 .word 0x0000e835 - -0000e92c <_lv_ll_get_head>: - if(ll_p != NULL) { - e92c: b100 cbz r0, e930 <_lv_ll_get_head+0x4> - head = ll_p->head; - e92e: 6840 ldr r0, [r0, #4] -} - e930: 4770 bx lr - -0000e932 <_lv_ll_get_tail>: - if(ll_p != NULL) { - e932: b100 cbz r0, e936 <_lv_ll_get_tail+0x4> - tail = ll_p->tail; - e934: 6880 ldr r0, [r0, #8] -} - e936: 4770 bx lr - -0000e938 <_lv_ll_get_next>: -{ - e938: b507 push {r0, r1, r2, lr} - void * next = NULL; - e93a: 2300 movs r3, #0 - e93c: 9301 str r3, [sp, #4] - if(ll_p != NULL) { - e93e: b128 cbz r0, e94c <_lv_ll_get_next+0x14> - _lv_memcpy_small(&next, n_act_d + LL_NEXT_P_OFFSET(ll_p), sizeof(void *)); - e940: 6803 ldr r3, [r0, #0] - e942: 3304 adds r3, #4 - e944: 4419 add r1, r3 - e946: a801 add r0, sp, #4 - e948: 4b02 ldr r3, [pc, #8] ; (e954 <_lv_ll_get_next+0x1c>) - e94a: 4798 blx r3 -} - e94c: 9801 ldr r0, [sp, #4] - e94e: b003 add sp, #12 - e950: f85d fb04 ldr.w pc, [sp], #4 - e954: 0000e821 .word 0x0000e821 - -0000e958 <_lv_ll_get_prev>: -{ - e958: b507 push {r0, r1, r2, lr} - void * prev = NULL; - e95a: 2300 movs r3, #0 - e95c: 9301 str r3, [sp, #4] - if(ll_p != NULL) { - e95e: b120 cbz r0, e96a <_lv_ll_get_prev+0x12> - _lv_memcpy_small(&prev, n_act_d + LL_PREV_P_OFFSET(ll_p), sizeof(void *)); - e960: 6803 ldr r3, [r0, #0] - e962: a801 add r0, sp, #4 - e964: 4419 add r1, r3 - e966: 4b03 ldr r3, [pc, #12] ; (e974 <_lv_ll_get_prev+0x1c>) - e968: 4798 blx r3 -} - e96a: 9801 ldr r0, [sp, #4] - e96c: b003 add sp, #12 - e96e: f85d fb04 ldr.w pc, [sp], #4 - e972: bf00 nop - e974: 0000e821 .word 0x0000e821 - -0000e978 <_lv_ll_ins_prev>: -{ - e978: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} - e97c: 460e mov r6, r1 - if(NULL == ll_p || NULL == n_act) return NULL; - e97e: 4604 mov r4, r0 - e980: b340 cbz r0, e9d4 <_lv_ll_ins_prev+0x5c> - e982: b349 cbz r1, e9d8 <_lv_ll_ins_prev+0x60> - if(_lv_ll_get_head(ll_p) == n_act) { - e984: 6843 ldr r3, [r0, #4] - e986: 4299 cmp r1, r3 - e988: d103 bne.n e992 <_lv_ll_ins_prev+0x1a> -} - e98a: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr} - n_new = _lv_ll_ins_head(ll_p); - e98e: 4b13 ldr r3, [pc, #76] ; (e9dc <_lv_ll_ins_prev+0x64>) - e990: 4718 bx r3 - n_new = lv_mem_alloc(ll_p->n_size + LL_NODE_META_SIZE); - e992: 6800 ldr r0, [r0, #0] - e994: 4b12 ldr r3, [pc, #72] ; (e9e0 <_lv_ll_ins_prev+0x68>) - e996: 3008 adds r0, #8 - e998: 4798 blx r3 - if(n_new == NULL) return NULL; - e99a: 4605 mov r5, r0 - e99c: b1b8 cbz r0, e9ce <_lv_ll_ins_prev+0x56> - n_prev = _lv_ll_get_prev(ll_p, n_act); - e99e: 4b11 ldr r3, [pc, #68] ; (e9e4 <_lv_ll_ins_prev+0x6c>) - node_set_next(ll_p, n_prev, n_new); - e9a0: f8df 8048 ldr.w r8, [pc, #72] ; e9ec <_lv_ll_ins_prev+0x74> - n_prev = _lv_ll_get_prev(ll_p, n_act); - e9a4: 4631 mov r1, r6 - e9a6: 4620 mov r0, r4 - e9a8: 4798 blx r3 - node_set_next(ll_p, n_prev, n_new); - e9aa: 462a mov r2, r5 - n_prev = _lv_ll_get_prev(ll_p, n_act); - e9ac: 4607 mov r7, r0 - node_set_next(ll_p, n_prev, n_new); - e9ae: 4601 mov r1, r0 - e9b0: 4620 mov r0, r4 - e9b2: 47c0 blx r8 - node_set_prev(ll_p, n_new, n_prev); - e9b4: 463a mov r2, r7 - e9b6: 4629 mov r1, r5 - e9b8: 4f0b ldr r7, [pc, #44] ; (e9e8 <_lv_ll_ins_prev+0x70>) - e9ba: 4620 mov r0, r4 - e9bc: 47b8 blx r7 - node_set_prev(ll_p, n_act, n_new); - e9be: 462a mov r2, r5 - e9c0: 4631 mov r1, r6 - e9c2: 4620 mov r0, r4 - e9c4: 47b8 blx r7 - node_set_next(ll_p, n_new, n_act); - e9c6: 4632 mov r2, r6 - e9c8: 4629 mov r1, r5 - e9ca: 4620 mov r0, r4 - e9cc: 47c0 blx r8 -} - e9ce: 4628 mov r0, r5 - e9d0: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} - if(NULL == ll_p || NULL == n_act) return NULL; - e9d4: 4605 mov r5, r0 - e9d6: e7fa b.n e9ce <_lv_ll_ins_prev+0x56> - e9d8: 460d mov r5, r1 - e9da: e7f8 b.n e9ce <_lv_ll_ins_prev+0x56> - e9dc: 0000e89d .word 0x0000e89d - e9e0: 0000ecbd .word 0x0000ecbd - e9e4: 0000e959 .word 0x0000e959 - e9e8: 0000e835 .word 0x0000e835 - e9ec: 0000e85d .word 0x0000e85d - -0000e9f0 <_lv_ll_remove>: -{ - e9f0: b570 push {r4, r5, r6, lr} - e9f2: 460d mov r5, r1 - if(ll_p != NULL) { - e9f4: 4604 mov r4, r0 - e9f6: b1f8 cbz r0, ea38 <_lv_ll_remove+0x48> - if(_lv_ll_get_head(ll_p) == node_p) { - e9f8: 6843 ldr r3, [r0, #4] - e9fa: 4299 cmp r1, r3 - e9fc: d10c bne.n ea18 <_lv_ll_remove+0x28> - ll_p->head = _lv_ll_get_next(ll_p, node_p); - e9fe: 4629 mov r1, r5 - ea00: 4b17 ldr r3, [pc, #92] ; (ea60 <_lv_ll_remove+0x70>) - ea02: 4620 mov r0, r4 - ea04: 4798 blx r3 - ea06: 4601 mov r1, r0 - ea08: 6060 str r0, [r4, #4] - if(ll_p->head == NULL) { - ea0a: b908 cbnz r0, ea10 <_lv_ll_remove+0x20> - ll_p->tail = NULL; - ea0c: 60a0 str r0, [r4, #8] -} - ea0e: bd70 pop {r4, r5, r6, pc} - node_set_prev(ll_p, ll_p->head, NULL); - ea10: 2200 movs r2, #0 - node_set_prev(ll_p, n_next, n_prev); - ea12: 4b14 ldr r3, [pc, #80] ; (ea64 <_lv_ll_remove+0x74>) - ea14: 4620 mov r0, r4 - ea16: e00c b.n ea32 <_lv_ll_remove+0x42> - else if(_lv_ll_get_tail(ll_p) == node_p) { - ea18: 6883 ldr r3, [r0, #8] - ea1a: 4299 cmp r1, r3 - ea1c: d10e bne.n ea3c <_lv_ll_remove+0x4c> - ll_p->tail = _lv_ll_get_prev(ll_p, node_p); - ea1e: 4b12 ldr r3, [pc, #72] ; (ea68 <_lv_ll_remove+0x78>) - ea20: 4798 blx r3 - ea22: 4601 mov r1, r0 - ea24: 60a0 str r0, [r4, #8] - if(ll_p->tail == NULL) { - ea26: b908 cbnz r0, ea2c <_lv_ll_remove+0x3c> - ll_p->head = NULL; - ea28: 6060 str r0, [r4, #4] - ea2a: e7f0 b.n ea0e <_lv_ll_remove+0x1e> - node_set_next(ll_p, ll_p->tail, NULL); - ea2c: 4b0f ldr r3, [pc, #60] ; (ea6c <_lv_ll_remove+0x7c>) - ea2e: 2200 movs r2, #0 - ea30: 4620 mov r0, r4 -} - ea32: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr} - node_set_prev(ll_p, n_next, n_prev); - ea36: 4718 bx r3 - if(_lv_ll_get_head(ll_p) == node_p) { - ea38: 2900 cmp r1, #0 - ea3a: d0e0 beq.n e9fe <_lv_ll_remove+0xe> - lv_ll_node_t * n_prev = _lv_ll_get_prev(ll_p, node_p); - ea3c: 4629 mov r1, r5 - ea3e: 4b0a ldr r3, [pc, #40] ; (ea68 <_lv_ll_remove+0x78>) - ea40: 4620 mov r0, r4 - ea42: 4798 blx r3 - lv_ll_node_t * n_next = _lv_ll_get_next(ll_p, node_p); - ea44: 4629 mov r1, r5 - lv_ll_node_t * n_prev = _lv_ll_get_prev(ll_p, node_p); - ea46: 4606 mov r6, r0 - lv_ll_node_t * n_next = _lv_ll_get_next(ll_p, node_p); - ea48: 4b05 ldr r3, [pc, #20] ; (ea60 <_lv_ll_remove+0x70>) - ea4a: 4620 mov r0, r4 - ea4c: 4798 blx r3 - node_set_next(ll_p, n_prev, n_next); - ea4e: 4631 mov r1, r6 - ea50: 4602 mov r2, r0 - lv_ll_node_t * n_next = _lv_ll_get_next(ll_p, node_p); - ea52: 4605 mov r5, r0 - node_set_next(ll_p, n_prev, n_next); - ea54: 4b05 ldr r3, [pc, #20] ; (ea6c <_lv_ll_remove+0x7c>) - ea56: 4620 mov r0, r4 - ea58: 4798 blx r3 - node_set_prev(ll_p, n_next, n_prev); - ea5a: 4632 mov r2, r6 - ea5c: 4629 mov r1, r5 - ea5e: e7d8 b.n ea12 <_lv_ll_remove+0x22> - ea60: 0000e939 .word 0x0000e939 - ea64: 0000e835 .word 0x0000e835 - ea68: 0000e959 .word 0x0000e959 - ea6c: 0000e85d .word 0x0000e85d - -0000ea70 <_lv_ll_chg_list>: -{ - ea70: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} - ea74: 460c mov r4, r1 - ea76: 461e mov r6, r3 - _lv_ll_remove(ll_ori_p, node); - ea78: 4611 mov r1, r2 - ea7a: 4b16 ldr r3, [pc, #88] ; (ead4 <_lv_ll_chg_list+0x64>) - ea7c: f8df 805c ldr.w r8, [pc, #92] ; eadc <_lv_ll_chg_list+0x6c> - ea80: 4f15 ldr r7, [pc, #84] ; (ead8 <_lv_ll_chg_list+0x68>) -{ - ea82: 4615 mov r5, r2 - _lv_ll_remove(ll_ori_p, node); - ea84: 4798 blx r3 - if(head) { - ea86: b196 cbz r6, eaae <_lv_ll_chg_list+0x3e> - node_set_prev(ll_new_p, node, NULL); - ea88: 2200 movs r2, #0 - ea8a: 4629 mov r1, r5 - ea8c: 4620 mov r0, r4 - ea8e: 47c0 blx r8 - node_set_next(ll_new_p, node, ll_new_p->head); - ea90: 4629 mov r1, r5 - ea92: 6862 ldr r2, [r4, #4] - ea94: 4620 mov r0, r4 - ea96: 47b8 blx r7 - if(ll_new_p->head != NULL) { /*If there is old head then before it goes the new*/ - ea98: 6861 ldr r1, [r4, #4] - ea9a: b111 cbz r1, eaa2 <_lv_ll_chg_list+0x32> - node_set_prev(ll_new_p, ll_new_p->head, node); - ea9c: 462a mov r2, r5 - ea9e: 4620 mov r0, r4 - eaa0: 47c0 blx r8 - if(ll_new_p->tail == NULL) { /*If there is no tail (first node) set the tail too*/ - eaa2: 68a3 ldr r3, [r4, #8] - ll_new_p->head = node; /*Set the new head in the dsc.*/ - eaa4: 6065 str r5, [r4, #4] - if(ll_new_p->tail == NULL) { /*If there is no tail (first node) set the tail too*/ - eaa6: b903 cbnz r3, eaaa <_lv_ll_chg_list+0x3a> - ll_new_p->tail = node; - eaa8: 60a5 str r5, [r4, #8] -} - eaaa: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} - node_set_prev(ll_new_p, node, ll_new_p->tail); - eaae: 68a2 ldr r2, [r4, #8] - eab0: 4629 mov r1, r5 - eab2: 4620 mov r0, r4 - eab4: 47c0 blx r8 - node_set_next(ll_new_p, node, NULL); - eab6: 4629 mov r1, r5 - eab8: 4632 mov r2, r6 - eaba: 4620 mov r0, r4 - eabc: 47b8 blx r7 - if(ll_new_p->tail != NULL) { /*If there is old tail then after it goes the new*/ - eabe: 68a1 ldr r1, [r4, #8] - eac0: b111 cbz r1, eac8 <_lv_ll_chg_list+0x58> - node_set_next(ll_new_p, ll_new_p->tail, node); - eac2: 462a mov r2, r5 - eac4: 4620 mov r0, r4 - eac6: 47b8 blx r7 - if(ll_new_p->head == NULL) { /*If there is no head (first node) set the head too*/ - eac8: 6863 ldr r3, [r4, #4] - ll_new_p->tail = node; /*Set the new tail in the dsc.*/ - eaca: 60a5 str r5, [r4, #8] - if(ll_new_p->head == NULL) { /*If there is no head (first node) set the head too*/ - eacc: 2b00 cmp r3, #0 - eace: d1ec bne.n eaaa <_lv_ll_chg_list+0x3a> - ll_new_p->head = node; - ead0: 6065 str r5, [r4, #4] -} - ead2: e7ea b.n eaaa <_lv_ll_chg_list+0x3a> - ead4: 0000e9f1 .word 0x0000e9f1 - ead8: 0000e85d .word 0x0000e85d - eadc: 0000e835 .word 0x0000e835 - -0000eae0 <_lv_ll_move_before>: - if(n_act == n_after) return; /*Can't move before itself*/ - eae0: 4291 cmp r1, r2 -{ - eae2: e92d 43f8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, lr} - eae6: 4604 mov r4, r0 - eae8: 460d mov r5, r1 - eaea: 4617 mov r7, r2 - if(n_act == n_after) return; /*Can't move before itself*/ - eaec: d022 beq.n eb34 <_lv_ll_move_before+0x54> - if(n_after != NULL) - eaee: b31a cbz r2, eb38 <_lv_ll_move_before+0x58> - n_before = _lv_ll_get_prev(ll_p, n_after); - eaf0: 4b14 ldr r3, [pc, #80] ; (eb44 <_lv_ll_move_before+0x64>) - eaf2: 4611 mov r1, r2 - eaf4: 4798 blx r3 - eaf6: 4606 mov r6, r0 - if(n_act == n_before) return; /*Already before `n_after`*/ - eaf8: 42ae cmp r6, r5 - eafa: d01b beq.n eb34 <_lv_ll_move_before+0x54> - _lv_ll_remove(ll_p, n_act); - eafc: 4b12 ldr r3, [pc, #72] ; (eb48 <_lv_ll_move_before+0x68>) - node_set_next(ll_p, n_before, n_act); - eafe: f8df 804c ldr.w r8, [pc, #76] ; eb4c <_lv_ll_move_before+0x6c> - node_set_prev(ll_p, n_act, n_before); - eb02: f8df 904c ldr.w r9, [pc, #76] ; eb50 <_lv_ll_move_before+0x70> - _lv_ll_remove(ll_p, n_act); - eb06: 4629 mov r1, r5 - eb08: 4620 mov r0, r4 - eb0a: 4798 blx r3 - node_set_next(ll_p, n_before, n_act); - eb0c: 462a mov r2, r5 - eb0e: 4631 mov r1, r6 - eb10: 4620 mov r0, r4 - eb12: 47c0 blx r8 - node_set_prev(ll_p, n_act, n_before); - eb14: 4632 mov r2, r6 - eb16: 4629 mov r1, r5 - eb18: 4620 mov r0, r4 - eb1a: 47c8 blx r9 - node_set_prev(ll_p, n_after, n_act); - eb1c: 462a mov r2, r5 - eb1e: 4639 mov r1, r7 - eb20: 4620 mov r0, r4 - eb22: 47c8 blx r9 - node_set_next(ll_p, n_act, n_after); - eb24: 463a mov r2, r7 - eb26: 4629 mov r1, r5 - eb28: 4620 mov r0, r4 - eb2a: 47c0 blx r8 - if(n_after == NULL) ll_p->tail = n_act; - eb2c: b907 cbnz r7, eb30 <_lv_ll_move_before+0x50> - eb2e: 60a5 str r5, [r4, #8] - if(n_before == NULL) ll_p->head = n_act; - eb30: b906 cbnz r6, eb34 <_lv_ll_move_before+0x54> - eb32: 6065 str r5, [r4, #4] -} - eb34: e8bd 83f8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, pc} - if(ll_p != NULL) { - eb38: b108 cbz r0, eb3e <_lv_ll_move_before+0x5e> - tail = ll_p->tail; - eb3a: 6886 ldr r6, [r0, #8] - eb3c: e7dc b.n eaf8 <_lv_ll_move_before+0x18> - void * tail = NULL; - eb3e: 4606 mov r6, r0 - eb40: e7da b.n eaf8 <_lv_ll_move_before+0x18> - eb42: bf00 nop - eb44: 0000e959 .word 0x0000e959 - eb48: 0000e9f1 .word 0x0000e9f1 - eb4c: 0000e85d .word 0x0000e85d - eb50: 0000e835 .word 0x0000e835 - -0000eb54 <_lv_ll_is_empty>: - if(ll_p == NULL) return true; - eb54: b130 cbz r0, eb64 <_lv_ll_is_empty+0x10> - if(ll_p->head == NULL && ll_p->tail == NULL) return true; - eb56: 6843 ldr r3, [r0, #4] - eb58: b933 cbnz r3, eb68 <_lv_ll_is_empty+0x14> - eb5a: 6880 ldr r0, [r0, #8] - eb5c: fab0 f080 clz r0, r0 - eb60: 0940 lsrs r0, r0, #5 - eb62: 4770 bx lr - if(ll_p == NULL) return true; - eb64: 2001 movs r0, #1 - eb66: 4770 bx lr - return false; - eb68: 2000 movs r0, #0 -} - eb6a: 4770 bx lr - -0000eb6c : - * and send the formatted log message to a consol or serial port. - * @param print_cb a function pointer to print a log - */ -void lv_log_register_print_cb(lv_log_print_g_cb_t print_cb) -{ - custom_print_cb = print_cb; - eb6c: 4b01 ldr r3, [pc, #4] ; (eb74 ) - eb6e: 6018 str r0, [r3, #0] -} - eb70: 4770 bx lr - eb72: bf00 nop - eb74: 20003754 .word 0x20003754 - -0000eb78 <_lv_log_add>: - * @param func name of the function when the log added - * @param format printf-like format string - * @param ... parameters for `format` - */ -void _lv_log_add(lv_log_level_t level, const char * file, int line, const char * func, const char * format, ...) -{ - eb78: e92d 43f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} - eb7c: 461f mov r7, r3 - if(level >= _LV_LOG_LEVEL_NUM) return; /*Invalid level*/ - - if(level >= LV_LOG_LEVEL) { - eb7e: 1e43 subs r3, r0, #1 - eb80: b2db uxtb r3, r3 - eb82: 2b04 cmp r3, #4 -{ - eb84: b0c5 sub sp, #276 ; 0x114 - eb86: 4604 mov r4, r0 - eb88: 460d mov r5, r1 - eb8a: 4616 mov r6, r2 - if(level >= LV_LOG_LEVEL) { - eb8c: d817 bhi.n ebbe <_lv_log_add+0x46> - va_list args; - va_start(args, format); - eb8e: ab4d add r3, sp, #308 ; 0x134 - char buf[256]; - lv_vsnprintf(buf, sizeof(buf), format, args); - eb90: f10d 0910 add.w r9, sp, #16 - eb94: f8df 8030 ldr.w r8, [pc, #48] ; ebc8 <_lv_log_add+0x50> - va_start(args, format); - eb98: 9303 str r3, [sp, #12] - lv_vsnprintf(buf, sizeof(buf), format, args); - eb9a: 9a4c ldr r2, [sp, #304] ; 0x130 - eb9c: f44f 7180 mov.w r1, #256 ; 0x100 - eba0: 4648 mov r0, r9 - eba2: 47c0 blx r8 - } - - static const char * lvl_prefix[] = {"Trace", "Info", "Warn", "Error", "User"}; - printf("%s: %s \t(%s #%d %s())\n", lvl_prefix[level], buf, &file[p], line, func); -#else - if(custom_print_cb) custom_print_cb(level, file, line, func, buf); - eba4: 4b07 ldr r3, [pc, #28] ; (ebc4 <_lv_log_add+0x4c>) - eba6: f8d3 8000 ldr.w r8, [r3] - ebaa: f1b8 0f00 cmp.w r8, #0 - ebae: d006 beq.n ebbe <_lv_log_add+0x46> - ebb0: f8cd 9000 str.w r9, [sp] - ebb4: 463b mov r3, r7 - ebb6: 4632 mov r2, r6 - ebb8: 4629 mov r1, r5 - ebba: 4620 mov r0, r4 - ebbc: 47c0 blx r8 -#endif - } -} - ebbe: b045 add sp, #276 ; 0x114 - ebc0: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} - ebc4: 20003754 .word 0x20003754 - ebc8: 0000fab1 .word 0x0000fab1 - -0000ebcc <_lv_trigo_sin>: - * @return sinus of 'angle'. sin(-90) = -32767, sin(90) = 32767 - */ -LV_ATTRIBUTE_FAST_MEM int16_t _lv_trigo_sin(int16_t angle) -{ - int16_t ret = 0; - angle = angle % 360; - ebcc: f44f 73b4 mov.w r3, #360 ; 0x168 - ebd0: fb90 f2f3 sdiv r2, r0, r3 - ebd4: fb02 0013 mls r0, r2, r3, r0 - ebd8: b200 sxth r0, r0 - - if(angle < 0) angle = 360 + angle; - ebda: 2800 cmp r0, #0 - ebdc: bfbc itt lt - ebde: 18c0 addlt r0, r0, r3 - ebe0: b200 sxthlt r0, r0 - - if(angle < 90) { - ebe2: 2859 cmp r0, #89 ; 0x59 - ebe4: 4b0e ldr r3, [pc, #56] ; (ec20 <_lv_trigo_sin+0x54>) - ebe6: dc02 bgt.n ebee <_lv_trigo_sin+0x22> - ret = sin0_90_table[angle]; - } - else if(angle >= 90 && angle < 180) { - angle = 180 - angle; - ret = sin0_90_table[angle]; - ebe8: f933 0010 ldrsh.w r0, [r3, r0, lsl #1] - ebec: 4770 bx lr - else if(angle >= 90 && angle < 180) { - ebee: b280 uxth r0, r0 - ebf0: f1a0 025a sub.w r2, r0, #90 ; 0x5a - ebf4: 2a59 cmp r2, #89 ; 0x59 - ebf6: d803 bhi.n ec00 <_lv_trigo_sin+0x34> - angle = 180 - angle; - ebf8: f1c0 00b4 rsb r0, r0, #180 ; 0xb4 - ret = sin0_90_table[angle]; - ebfc: b280 uxth r0, r0 - ebfe: e7f3 b.n ebe8 <_lv_trigo_sin+0x1c> - } - else if(angle >= 180 && angle < 270) { - ec00: f1a0 02b4 sub.w r2, r0, #180 ; 0xb4 - ec04: b292 uxth r2, r2 - ec06: 2a59 cmp r2, #89 ; 0x59 - angle = angle - 180; - ret = -sin0_90_table[angle]; - } - else { /*angle >=270*/ - angle = 360 - angle; - ec08: bf85 ittet hi - ec0a: f5c0 70b4 rsbhi r0, r0, #360 ; 0x168 - ret = -sin0_90_table[angle]; - ec0e: b280 uxthhi r0, r0 - ret = -sin0_90_table[angle]; - ec10: f833 0012 ldrhls.w r0, [r3, r2, lsl #1] - ret = -sin0_90_table[angle]; - ec14: f833 0010 ldrhhi.w r0, [r3, r0, lsl #1] - ec18: 4240 negs r0, r0 - ec1a: b200 sxth r0, r0 - } - - return ret; -} - ec1c: 4770 bx lr - ec1e: bf00 nop - ec20: 0002ba0c .word 0x0002ba0c - -0000ec24 <_lv_sqrt>: - * If root < 16: mask = 0x80 - * If root < 256: mask = 0x800 - * Else: mask = 0x8000 - */ -LV_ATTRIBUTE_FAST_MEM void _lv_sqrt(uint32_t x, lv_sqrt_res_t * q, uint32_t mask) -{ - ec24: b530 push {r4, r5, lr} - x = x << 8; /*To get 4 bit precision. (sqrt(256) = 16 = 4 bit)*/ - ec26: 0200 lsls r0, r0, #8 - - uint32_t root = 0; - ec28: 2300 movs r3, #0 - uint32_t trial; - // http://ww1.microchip.com/...en/AppNotes/91040a.pdf - do { - trial = root + mask; - ec2a: 18d4 adds r4, r2, r3 - if((uint32_t)trial * trial <= x) root = trial; - ec2c: fb04 f504 mul.w r5, r4, r4 - ec30: 42a8 cmp r0, r5 - ec32: bf28 it cs - ec34: 4623 movcs r3, r4 - mask = mask >> 1; - } while(mask); - ec36: 0852 lsrs r2, r2, #1 - ec38: d1f7 bne.n ec2a <_lv_sqrt+0x6> - - q->i = (uint32_t) root >> 4; - ec3a: 091a lsrs r2, r3, #4 - q->f = (uint32_t)(root & 0xf) << 4; - ec3c: 011b lsls r3, r3, #4 - ec3e: b2db uxtb r3, r3 - q->i = (uint32_t) root >> 4; - ec40: 800a strh r2, [r1, #0] - q->f = (uint32_t)(root & 0xf) << 4; - ec42: 804b strh r3, [r1, #2] -} - ec44: bd30 pop {r4, r5, pc} - ... - -0000ec48 : -static lv_mem_ent_t * ent_get_next(lv_mem_ent_t * act_e) -{ - lv_mem_ent_t * next_e = NULL; - - if(act_e == NULL) { /*NULL means: get the first entry*/ - next_e = (lv_mem_ent_t *)work_mem; - ec48: 4a07 ldr r2, [pc, #28] ; (ec68 ) -{ - ec4a: 4603 mov r3, r0 - next_e = (lv_mem_ent_t *)work_mem; - ec4c: 6810 ldr r0, [r2, #0] - if(act_e == NULL) { /*NULL means: get the first entry*/ - ec4e: b153 cbz r3, ec66 - } - else { /*Get the next entry */ - uint8_t * data = &act_e->first_data; - next_e = (lv_mem_ent_t *)&data[act_e->header.s.d_size]; - ec50: f853 2b04 ldr.w r2, [r3], #4 - ec54: eb03 0352 add.w r3, r3, r2, lsr #1 - - if(&next_e->first_data >= &work_mem[LV_MEM_SIZE]) next_e = NULL; - ec58: 1d19 adds r1, r3, #4 - ec5a: f500 5200 add.w r2, r0, #8192 ; 0x2000 - ec5e: 4291 cmp r1, r2 - ec60: bf34 ite cc - ec62: 4618 movcc r0, r3 - ec64: 2000 movcs r0, #0 - } - - return next_e; -} - ec66: 4770 bx lr - ec68: 20003758 .word 0x20003758 - -0000ec6c : - size = size & (~0x7); - size += 8; - } -#else - /*Round the size up to 4*/ - if(size & 0x3) { - ec6c: 078b lsls r3, r1, #30 - size = size & (~0x3); - ec6e: bf18 it ne - ec70: f021 0103 bicne.w r1, r1, #3 - size += 4; - } -#endif - - /*Don't let empty space only for a header without data*/ - if(e->header.s.d_size == size + sizeof(lv_mem_header_t)) { - ec74: 6802 ldr r2, [r0, #0] - size += 4; - ec76: bf18 it ne - ec78: 3104 addne r1, #4 -{ - ec7a: b510 push {r4, lr} - if(e->header.s.d_size == size + sizeof(lv_mem_header_t)) { - ec7c: 1d0c adds r4, r1, #4 - ec7e: ebb4 0f52 cmp.w r4, r2, lsr #1 - ec82: f3c2 035e ubfx r3, r2, #1, #31 - ec86: d00b beq.n eca0 - size = e->header.s.d_size; - } - - /* Create the new entry after the current if there is space for it */ - if(e->header.s.d_size != size) { - ec88: 428b cmp r3, r1 - ec8a: d004 beq.n ec96 - uint8_t * e_data = &e->first_data; - lv_mem_ent_t * after_new_e = (lv_mem_ent_t *)&e_data[size]; - after_new_e->header.s.used = 0; - after_new_e->header.s.d_size = (uint32_t)e->header.s.d_size - size - sizeof(lv_mem_header_t); - ec8c: 3b04 subs r3, #4 - after_new_e->header.s.used = 0; - ec8e: 1842 adds r2, r0, r1 - after_new_e->header.s.d_size = (uint32_t)e->header.s.d_size - size - sizeof(lv_mem_header_t); - ec90: 1a5b subs r3, r3, r1 - after_new_e->header.s.used = 0; - ec92: 005b lsls r3, r3, #1 - ec94: 6053 str r3, [r2, #4] - } - - /* Set the new size for the original entry */ - e->header.s.d_size = (uint32_t)size; - ec96: 6803 ldr r3, [r0, #0] - ec98: f361 035f bfi r3, r1, #1, #31 - ec9c: 6003 str r3, [r0, #0] -} - ec9e: bd10 pop {r4, pc} - eca0: 4619 mov r1, r3 - eca2: e7f8 b.n ec96 - -0000eca4 <_lv_mem_init>: - work_mem = (uint8_t *)work_mem_int; - eca4: 4a03 ldr r2, [pc, #12] ; (ecb4 <_lv_mem_init+0x10>) - eca6: 4b04 ldr r3, [pc, #16] ; (ecb8 <_lv_mem_init+0x14>) - eca8: 6013 str r3, [r2, #0] - full->header.s.used = 0; - ecaa: f643 72f8 movw r2, #16376 ; 0x3ff8 - ecae: 601a str r2, [r3, #0] -} - ecb0: 4770 bx lr - ecb2: bf00 nop - ecb4: 20003758 .word 0x20003758 - ecb8: 20003764 .word 0x20003764 - -0000ecbc : -{ - ecbc: b573 push {r0, r1, r4, r5, r6, lr} - if(size == 0) { - ecbe: 4605 mov r5, r0 - ecc0: b1e8 cbz r0, ecfe - if(size & 0x3) { - ecc2: 0782 lsls r2, r0, #30 - size = size & (~0x3); - ecc4: bf18 it ne - ecc6: f020 0503 bicne.w r5, r0, #3 - e = ent_get_next(e); - ecca: 4e12 ldr r6, [pc, #72] ; (ed14 ) - size += 4; - eccc: bf18 it ne - ecce: 3504 addne r5, #4 - lv_mem_ent_t * e = NULL; - ecd0: 2400 movs r4, #0 - e = ent_get_next(e); - ecd2: 4620 mov r0, r4 - ecd4: 47b0 blx r6 - if(e != NULL) { - ecd6: 4604 mov r4, r0 - ecd8: b198 cbz r0, ed02 - if(e->header.s.used == 0 && e->header.s.d_size >= size) { - ecda: 7803 ldrb r3, [r0, #0] - ecdc: 07db lsls r3, r3, #31 - ecde: d4f8 bmi.n ecd2 - ece0: 6803 ldr r3, [r0, #0] - ece2: ebb5 0f53 cmp.w r5, r3, lsr #1 - ece6: d8f4 bhi.n ecd2 - ent_trunc(e, size); - ece8: 4b0b ldr r3, [pc, #44] ; (ed18 ) - ecea: 4629 mov r1, r5 - ecec: 4798 blx r3 - e->header.s.used = 1; - ecee: 7803 ldrb r3, [r0, #0] - ecf0: f043 0301 orr.w r3, r3, #1 - ecf4: f804 3b04 strb.w r3, [r4], #4 -} - ecf8: 4620 mov r0, r4 - ecfa: b002 add sp, #8 - ecfc: bd70 pop {r4, r5, r6, pc} - return &zero_mem; - ecfe: 4c07 ldr r4, [pc, #28] ; (ed1c ) - ed00: e7fa b.n ecf8 - if(alloc == NULL) LV_LOG_WARN("Couldn't allocate memory"); - ed02: 4b07 ldr r3, [pc, #28] ; (ed20 ) - ed04: 9300 str r3, [sp, #0] - ed06: 4907 ldr r1, [pc, #28] ; (ed24 ) - ed08: 4b07 ldr r3, [pc, #28] ; (ed28 ) - ed0a: 4d08 ldr r5, [pc, #32] ; (ed2c ) - ed0c: 22d1 movs r2, #209 ; 0xd1 - ed0e: 2002 movs r0, #2 - ed10: 47a8 blx r5 - ed12: e7f1 b.n ecf8 - ed14: 0000ec49 .word 0x0000ec49 - ed18: 0000ec6d .word 0x0000ec6d - ed1c: 2000375c .word 0x2000375c - ed20: 0002baf1 .word 0x0002baf1 - ed24: 0002bac2 .word 0x0002bac2 - ed28: 0002bbd6 .word 0x0002bbd6 - ed2c: 0000eb79 .word 0x0000eb79 - -0000ed30 : -{ - ed30: b538 push {r3, r4, r5, lr} - next_e = (lv_mem_ent_t *)work_mem; - ed32: 4b0e ldr r3, [pc, #56] ; (ed6c ) - e_free = ent_get_next(e_free); - ed34: 4d0e ldr r5, [pc, #56] ; (ed70 ) - next_e = (lv_mem_ent_t *)work_mem; - ed36: 681c ldr r4, [r3, #0] - while(e_free != NULL) { - ed38: b904 cbnz r4, ed3c -} - ed3a: bd38 pop {r3, r4, r5, pc} - e_free = ent_get_next(e_free); - ed3c: 4620 mov r0, r4 - ed3e: 47a8 blx r5 - if(e_free->header.s.used != 0) { - ed40: 7823 ldrb r3, [r4, #0] - ed42: 07da lsls r2, r3, #31 - ed44: d50f bpl.n ed66 -{ - ed46: 4604 mov r4, r0 - ed48: e7f6 b.n ed38 - if(e_next->header.s.used == 0) { - ed4a: 7803 ldrb r3, [r0, #0] - ed4c: 07db lsls r3, r3, #31 - ed4e: d4fa bmi.n ed46 - e_free->header.s.d_size += e_next->header.s.d_size + sizeof(e_next->header); - ed50: 6823 ldr r3, [r4, #0] - ed52: 6801 ldr r1, [r0, #0] - ed54: f3c3 025e ubfx r2, r3, #1, #31 - ed58: 3204 adds r2, #4 - ed5a: eb02 0251 add.w r2, r2, r1, lsr #1 - ed5e: f362 035f bfi r3, r2, #1, #31 - ed62: 6023 str r3, [r4, #0] - e_next = ent_get_next(e_next); - ed64: 47a8 blx r5 - while(e_next != NULL) { - ed66: 2800 cmp r0, #0 - ed68: d1ef bne.n ed4a - ed6a: e7e6 b.n ed3a - ed6c: 20003758 .word 0x20003758 - ed70: 0000ec49 .word 0x0000ec49 - -0000ed74 : - if(data == &zero_mem) return; - ed74: 4a16 ldr r2, [pc, #88] ; (edd0 ) - ed76: 1d13 adds r3, r2, #4 - ed78: 4298 cmp r0, r3 -{ - ed7a: b570 push {r4, r5, r6, lr} - ed7c: 4604 mov r4, r0 - if(data == &zero_mem) return; - ed7e: d010 beq.n eda2 - if(data == NULL) return; - ed80: b178 cbz r0, eda2 - e->header.s.used = 0; - ed82: f810 3c04 ldrb.w r3, [r0, #-4] - ed86: f36f 0300 bfc r3, #0, #1 - ed8a: f800 3c04 strb.w r3, [r0, #-4] - full_defrag_cnt++; - ed8e: 8913 ldrh r3, [r2, #8] - ed90: 3301 adds r3, #1 - ed92: b29b uxth r3, r3 - if(full_defrag_cnt < LV_MEM_FULL_DEFRAG_CNT) { - ed94: 2b0f cmp r3, #15 - full_defrag_cnt++; - ed96: 8113 strh r3, [r2, #8] - if(full_defrag_cnt < LV_MEM_FULL_DEFRAG_CNT) { - ed98: d814 bhi.n edc4 - e_next = ent_get_next(e); - ed9a: 4d0e ldr r5, [pc, #56] ; (edd4 ) - ed9c: 3804 subs r0, #4 - e_next = ent_get_next(e_next); - ed9e: 47a8 blx r5 - while(e_next != NULL) { - eda0: b900 cbnz r0, eda4 -} - eda2: bd70 pop {r4, r5, r6, pc} - if(e_next->header.s.used == 0) { - eda4: 7803 ldrb r3, [r0, #0] - eda6: 07db lsls r3, r3, #31 - eda8: d4fb bmi.n eda2 - e->header.s.d_size += e_next->header.s.d_size + sizeof(e->header); - edaa: f854 3c04 ldr.w r3, [r4, #-4] - edae: 6801 ldr r1, [r0, #0] - edb0: f3c3 025e ubfx r2, r3, #1, #31 - edb4: 3204 adds r2, #4 - edb6: eb02 0251 add.w r2, r2, r1, lsr #1 - edba: f362 035f bfi r3, r2, #1, #31 - edbe: f844 3c04 str.w r3, [r4, #-4] - edc2: e7ec b.n ed9e - full_defrag_cnt = 0; - edc4: 2300 movs r3, #0 - edc6: 8113 strh r3, [r2, #8] -} - edc8: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr} - lv_mem_defrag(); - edcc: 4b02 ldr r3, [pc, #8] ; (edd8 ) - edce: 4718 bx r3 - edd0: 20003758 .word 0x20003758 - edd4: 0000ec49 .word 0x0000ec49 - edd8: 0000ed31 .word 0x0000ed31 - -0000eddc <_lv_mem_get_size>: - if(data == NULL) return 0; - eddc: b140 cbz r0, edf0 <_lv_mem_get_size+0x14> - if(data == &zero_mem) return 0; - edde: 4b05 ldr r3, [pc, #20] ; (edf4 <_lv_mem_get_size+0x18>) - ede0: 4298 cmp r0, r3 - ede2: d004 beq.n edee <_lv_mem_get_size+0x12> - return e->header.s.d_size; - ede4: f850 0c04 ldr.w r0, [r0, #-4] - ede8: f3c0 005e ubfx r0, r0, #1, #31 - edec: 4770 bx lr - if(data == NULL) return 0; - edee: 2000 movs r0, #0 -} - edf0: 4770 bx lr - edf2: bf00 nop - edf4: 2000375c .word 0x2000375c - -0000edf8 <_lv_mem_buf_release>: - if(mem_buf_small[i].p == p) { - edf8: 4b16 ldr r3, [pc, #88] ; (ee54 <_lv_mem_buf_release+0x5c>) - edfa: 681a ldr r2, [r3, #0] - edfc: 4290 cmp r0, r2 -{ - edfe: b513 push {r0, r1, r4, lr} - if(mem_buf_small[i].p == p) { - ee00: d00b beq.n ee1a <_lv_mem_buf_release+0x22> - ee02: 689a ldr r2, [r3, #8] - ee04: 4290 cmp r0, r2 - ee06: d10a bne.n ee1e <_lv_mem_buf_release+0x26> - ee08: 2201 movs r2, #1 - mem_buf_small[i].used = 0; - ee0a: eb03 03c2 add.w r3, r3, r2, lsl #3 - ee0e: 799a ldrb r2, [r3, #6] - ee10: f36f 0200 bfc r2, #0, #1 - ee14: 719a strb r2, [r3, #6] -} - ee16: b002 add sp, #8 - ee18: bd10 pop {r4, pc} - if(mem_buf_small[i].p == p) { - ee1a: 2200 movs r2, #0 - ee1c: e7f5 b.n ee0a <_lv_mem_buf_release+0x12> - if(LV_GC_ROOT(_lv_mem_buf[i]).p == p) { - ee1e: 4a0e ldr r2, [pc, #56] ; (ee58 <_lv_mem_buf_release+0x60>) - if(mem_buf_small[i].p == p) { - ee20: 2300 movs r3, #0 - if(LV_GC_ROOT(_lv_mem_buf[i]).p == p) { - ee22: f852 4033 ldr.w r4, [r2, r3, lsl #3] - ee26: 4284 cmp r4, r0 - ee28: eb02 01c3 add.w r1, r2, r3, lsl #3 - ee2c: d104 bne.n ee38 <_lv_mem_buf_release+0x40> - LV_GC_ROOT(_lv_mem_buf[i]).used = 0; - ee2e: 798b ldrb r3, [r1, #6] - ee30: f36f 0300 bfc r3, #0, #1 - ee34: 718b strb r3, [r1, #6] - return; - ee36: e7ee b.n ee16 <_lv_mem_buf_release+0x1e> - for(i = 0; i < LV_MEM_BUF_MAX_NUM; i++) { - ee38: 3301 adds r3, #1 - ee3a: 2b10 cmp r3, #16 - ee3c: d1f1 bne.n ee22 <_lv_mem_buf_release+0x2a> - LV_LOG_ERROR("lv_mem_buf_release: p is not a known buffer") - ee3e: 4b07 ldr r3, [pc, #28] ; (ee5c <_lv_mem_buf_release+0x64>) - ee40: 9300 str r3, [sp, #0] - ee42: 4907 ldr r1, [pc, #28] ; (ee60 <_lv_mem_buf_release+0x68>) - ee44: 4b07 ldr r3, [pc, #28] ; (ee64 <_lv_mem_buf_release+0x6c>) - ee46: 4c08 ldr r4, [pc, #32] ; (ee68 <_lv_mem_buf_release+0x70>) - ee48: f240 2232 movw r2, #562 ; 0x232 - ee4c: 2003 movs r0, #3 - ee4e: 47a0 blx r4 - ee50: e7e1 b.n ee16 <_lv_mem_buf_release+0x1e> - ee52: bf00 nop - ee54: 20000038 .word 0x20000038 - ee58: 20003644 .word 0x20003644 - ee5c: 0002bb0a .word 0x0002bb0a - ee60: 0002bac2 .word 0x0002bac2 - ee64: 0002bbe3 .word 0x0002bbe3 - ee68: 0000eb79 .word 0x0000eb79 - -0000ee6c <_lv_mem_buf_free_all>: - mem_buf_small[i].used = 0; - ee6c: 4b11 ldr r3, [pc, #68] ; (eeb4 <_lv_mem_buf_free_all+0x48>) - ee6e: 799a ldrb r2, [r3, #6] - ee70: f36f 0200 bfc r2, #0, #1 -{ - ee74: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} - mem_buf_small[i].used = 0; - ee78: 719a strb r2, [r3, #6] - ee7a: 7b9a ldrb r2, [r3, #14] - ee7c: 4c0e ldr r4, [pc, #56] ; (eeb8 <_lv_mem_buf_free_all+0x4c>) - lv_mem_free(LV_GC_ROOT(_lv_mem_buf[i]).p); - ee7e: f8df 803c ldr.w r8, [pc, #60] ; eebc <_lv_mem_buf_free_all+0x50> - mem_buf_small[i].used = 0; - ee82: f36f 0200 bfc r2, #0, #1 - ee86: 2500 movs r5, #0 - ee88: 739a strb r2, [r3, #14] - for(i = 0; i < LV_MEM_BUF_MAX_NUM; i++) { - ee8a: 4627 mov r7, r4 - LV_GC_ROOT(_lv_mem_buf[i]).p = NULL; - ee8c: 462e mov r6, r5 - if(LV_GC_ROOT(_lv_mem_buf[i]).p) { - ee8e: 6820 ldr r0, [r4, #0] - ee90: b140 cbz r0, eea4 <_lv_mem_buf_free_all+0x38> - lv_mem_free(LV_GC_ROOT(_lv_mem_buf[i]).p); - ee92: 47c0 blx r8 - LV_GC_ROOT(_lv_mem_buf[i]).used = 0; - ee94: eb07 03c5 add.w r3, r7, r5, lsl #3 - LV_GC_ROOT(_lv_mem_buf[i]).p = NULL; - ee98: 6026 str r6, [r4, #0] - LV_GC_ROOT(_lv_mem_buf[i]).used = 0; - ee9a: 799a ldrb r2, [r3, #6] - ee9c: f366 0200 bfi r2, r6, #0, #1 - eea0: 719a strb r2, [r3, #6] - LV_GC_ROOT(_lv_mem_buf[i]).size = 0; - eea2: 80a6 strh r6, [r4, #4] - for(i = 0; i < LV_MEM_BUF_MAX_NUM; i++) { - eea4: 3501 adds r5, #1 - eea6: 2d10 cmp r5, #16 - eea8: f104 0408 add.w r4, r4, #8 - eeac: d1ef bne.n ee8e <_lv_mem_buf_free_all+0x22> -} - eeae: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} - eeb2: bf00 nop - eeb4: 20000038 .word 0x20000038 - eeb8: 20003644 .word 0x20003644 - eebc: 0000ed75 .word 0x0000ed75 - -0000eec0 <_lv_memcpy>: -{ - eec0: b570 push {r4, r5, r6, lr} - lv_uintptr_t d_align = (lv_uintptr_t)d8 & ALIGN_MASK; - eec2: f000 0503 and.w r5, r0, #3 - lv_uintptr_t s_align = (lv_uintptr_t)s8 & ALIGN_MASK; - eec6: f001 0603 and.w r6, r1, #3 - if(s_align != d_align) { - eeca: 42b5 cmp r5, r6 - lv_uintptr_t d_align = (lv_uintptr_t)d8 & ALIGN_MASK; - eecc: 4604 mov r4, r0 - lv_uintptr_t s_align = (lv_uintptr_t)s8 & ALIGN_MASK; - eece: 460b mov r3, r1 - if(s_align != d_align) { - eed0: f040 8098 bne.w f004 <_lv_memcpy+0x144> - if(d_align) { - eed4: 2d00 cmp r5, #0 - eed6: f040 80a8 bne.w f02a <_lv_memcpy+0x16a> - uint8_t * d8 = dst; - eeda: 4605 mov r5, r0 - eedc: 462b mov r3, r5 - while(len > 32) { - eede: 2a20 cmp r2, #32 - eee0: 461c mov r4, r3 - eee2: f101 0520 add.w r5, r1, #32 - eee6: f103 0320 add.w r3, r3, #32 - eeea: f200 80b0 bhi.w f04e <_lv_memcpy+0x18e> - while(len > 4) { - eeee: 2a04 cmp r2, #4 - eef0: 460e mov r6, r1 - eef2: f240 809f bls.w f034 <_lv_memcpy+0x174> - COPY32; - eef6: f851 3b04 ldr.w r3, [r1], #4 - eefa: f844 3b04 str.w r3, [r4], #4 - len -= 4; - eefe: 3a04 subs r2, #4 - ef00: e7f5 b.n eeee <_lv_memcpy+0x2e> - REPEAT8(COPY8); - ef02: f813 1c20 ldrb.w r1, [r3, #-32] - ef06: f804 1c20 strb.w r1, [r4, #-32] - ef0a: f813 1c1f ldrb.w r1, [r3, #-31] - ef0e: f804 1c1f strb.w r1, [r4, #-31] - ef12: f813 1c1e ldrb.w r1, [r3, #-30] - ef16: f804 1c1e strb.w r1, [r4, #-30] - ef1a: f813 1c1d ldrb.w r1, [r3, #-29] - ef1e: f804 1c1d strb.w r1, [r4, #-29] - ef22: f813 1c1c ldrb.w r1, [r3, #-28] - ef26: f804 1c1c strb.w r1, [r4, #-28] - ef2a: f813 1c1b ldrb.w r1, [r3, #-27] - ef2e: f804 1c1b strb.w r1, [r4, #-27] - ef32: f813 1c1a ldrb.w r1, [r3, #-26] - ef36: f804 1c1a strb.w r1, [r4, #-26] - ef3a: f813 1c19 ldrb.w r1, [r3, #-25] - ef3e: f804 1c19 strb.w r1, [r4, #-25] - REPEAT8(COPY8); - ef42: f813 1c18 ldrb.w r1, [r3, #-24] - ef46: f804 1c18 strb.w r1, [r4, #-24] - ef4a: f813 1c17 ldrb.w r1, [r3, #-23] - ef4e: f804 1c17 strb.w r1, [r4, #-23] - ef52: f813 1c16 ldrb.w r1, [r3, #-22] - ef56: f804 1c16 strb.w r1, [r4, #-22] - ef5a: f813 1c15 ldrb.w r1, [r3, #-21] - ef5e: f804 1c15 strb.w r1, [r4, #-21] - ef62: f813 1c14 ldrb.w r1, [r3, #-20] - ef66: f804 1c14 strb.w r1, [r4, #-20] - ef6a: f813 1c13 ldrb.w r1, [r3, #-19] - ef6e: f804 1c13 strb.w r1, [r4, #-19] - ef72: f813 1c12 ldrb.w r1, [r3, #-18] - ef76: f804 1c12 strb.w r1, [r4, #-18] - ef7a: f813 1c11 ldrb.w r1, [r3, #-17] - ef7e: f804 1c11 strb.w r1, [r4, #-17] - REPEAT8(COPY8); - ef82: f813 1c10 ldrb.w r1, [r3, #-16] - ef86: f804 1c10 strb.w r1, [r4, #-16] - ef8a: f813 1c0f ldrb.w r1, [r3, #-15] - ef8e: f804 1c0f strb.w r1, [r4, #-15] - ef92: f813 1c0e ldrb.w r1, [r3, #-14] - ef96: f804 1c0e strb.w r1, [r4, #-14] - ef9a: f813 1c0d ldrb.w r1, [r3, #-13] - ef9e: f804 1c0d strb.w r1, [r4, #-13] - efa2: f813 1c0c ldrb.w r1, [r3, #-12] - efa6: f804 1c0c strb.w r1, [r4, #-12] - efaa: f813 1c0b ldrb.w r1, [r3, #-11] - efae: f804 1c0b strb.w r1, [r4, #-11] - efb2: f813 1c0a ldrb.w r1, [r3, #-10] - efb6: f804 1c0a strb.w r1, [r4, #-10] - efba: f813 1c09 ldrb.w r1, [r3, #-9] - efbe: f804 1c09 strb.w r1, [r4, #-9] - REPEAT8(COPY8); - efc2: f813 1c08 ldrb.w r1, [r3, #-8] - efc6: f804 1c08 strb.w r1, [r4, #-8] - efca: f813 1c07 ldrb.w r1, [r3, #-7] - efce: f804 1c07 strb.w r1, [r4, #-7] - efd2: f813 1c06 ldrb.w r1, [r3, #-6] - efd6: f804 1c06 strb.w r1, [r4, #-6] - efda: f813 1c05 ldrb.w r1, [r3, #-5] - efde: f804 1c05 strb.w r1, [r4, #-5] - efe2: f813 1c04 ldrb.w r1, [r3, #-4] - efe6: f804 1c04 strb.w r1, [r4, #-4] - efea: f813 1c03 ldrb.w r1, [r3, #-3] - efee: f804 1c03 strb.w r1, [r4, #-3] - eff2: f813 1c02 ldrb.w r1, [r3, #-2] - eff6: f804 1c02 strb.w r1, [r4, #-2] - effa: f813 1c01 ldrb.w r1, [r3, #-1] - effe: f804 1c01 strb.w r1, [r4, #-1] - len -= 32; - f002: 3a20 subs r2, #32 - while(len > 32) { - f004: 2a20 cmp r2, #32 - f006: 461d mov r5, r3 - f008: 4621 mov r1, r4 - f00a: f103 0320 add.w r3, r3, #32 - f00e: f104 0420 add.w r4, r4, #32 - f012: f63f af76 bhi.w ef02 <_lv_memcpy+0x42> - f016: 1e6b subs r3, r5, #1 - f018: 440a add r2, r1 - while(len) { - f01a: 4291 cmp r1, r2 - f01c: d100 bne.n f020 <_lv_memcpy+0x160> -} - f01e: bd70 pop {r4, r5, r6, pc} - COPY8 - f020: f813 4f01 ldrb.w r4, [r3, #1]! - f024: f801 4b01 strb.w r4, [r1], #1 - len--; - f028: e7f7 b.n f01a <_lv_memcpy+0x15a> - d_align = ALIGN_MASK + 1 - d_align; - f02a: f1c5 0504 rsb r5, r5, #4 - f02e: 4405 add r5, r0 - f030: 461e mov r6, r3 - while(d_align && len) { - f032: b912 cbnz r2, f03a <_lv_memcpy+0x17a> - f034: 1e73 subs r3, r6, #1 - f036: 4422 add r2, r4 - f038: e030 b.n f09c <_lv_memcpy+0x1dc> - COPY8; - f03a: f813 1b01 ldrb.w r1, [r3], #1 - f03e: f804 1b01 strb.w r1, [r4], #1 - while(d_align && len) { - f042: 42ac cmp r4, r5 - COPY8; - f044: 4619 mov r1, r3 - len--; - f046: f102 32ff add.w r2, r2, #4294967295 ; 0xffffffff - while(d_align && len) { - f04a: d1f1 bne.n f030 <_lv_memcpy+0x170> - f04c: e746 b.n eedc <_lv_memcpy+0x1c> - REPEAT8(COPY32) - f04e: f855 1c20 ldr.w r1, [r5, #-32] - f052: f843 1c20 str.w r1, [r3, #-32] - f056: f855 1c1c ldr.w r1, [r5, #-28] - f05a: f843 1c1c str.w r1, [r3, #-28] - f05e: f855 1c18 ldr.w r1, [r5, #-24] - f062: f843 1c18 str.w r1, [r3, #-24] - f066: f855 1c14 ldr.w r1, [r5, #-20] - f06a: f843 1c14 str.w r1, [r3, #-20] - f06e: f855 1c10 ldr.w r1, [r5, #-16] - f072: f843 1c10 str.w r1, [r3, #-16] - f076: f855 1c0c ldr.w r1, [r5, #-12] - f07a: f843 1c0c str.w r1, [r3, #-12] - f07e: f855 1c08 ldr.w r1, [r5, #-8] - f082: f843 1c08 str.w r1, [r3, #-8] - f086: f855 1c04 ldr.w r1, [r5, #-4] - f08a: f843 1c04 str.w r1, [r3, #-4] - len -= 32; - f08e: 3a20 subs r2, #32 - f090: 4629 mov r1, r5 - f092: e724 b.n eede <_lv_memcpy+0x1e> - COPY8 - f094: f813 1f01 ldrb.w r1, [r3, #1]! - f098: f804 1b01 strb.w r1, [r4], #1 - while(len) { - f09c: 4294 cmp r4, r2 - f09e: d1f9 bne.n f094 <_lv_memcpy+0x1d4> - f0a0: e7bd b.n f01e <_lv_memcpy+0x15e> - ... - -0000f0a4 : - if(new_size & 0x3) { - f0a4: 078b lsls r3, r1, #30 -{ - f0a6: b5f7 push {r0, r1, r2, r4, r5, r6, r7, lr} - f0a8: 460d mov r5, r1 - new_size = new_size & (~0x3); - f0aa: bf18 it ne - f0ac: f021 0503 bicne.w r5, r1, #3 -{ - f0b0: 4604 mov r4, r0 - new_size += 4; - f0b2: bf18 it ne - f0b4: 3504 addne r5, #4 - if(data_p != NULL) { - f0b6: b128 cbz r0, f0c4 - if(e->header.s.used == 0) { - f0b8: f810 3c04 ldrb.w r3, [r0, #-4] - data_p = NULL; - f0bc: f013 0f01 tst.w r3, #1 - f0c0: bf08 it eq - f0c2: 2400 moveq r4, #0 - uint32_t old_size = _lv_mem_get_size(data_p); - f0c4: 4b16 ldr r3, [pc, #88] ; (f120 ) - f0c6: 4620 mov r0, r4 - f0c8: 4798 blx r3 - if(old_size == new_size) return data_p; /*Also avoid reallocating the same memory*/ - f0ca: 4285 cmp r5, r0 - uint32_t old_size = _lv_mem_get_size(data_p); - f0cc: 4607 mov r7, r0 - if(old_size == new_size) return data_p; /*Also avoid reallocating the same memory*/ - f0ce: d004 beq.n f0da - if(new_size < old_size) { - f0d0: d205 bcs.n f0de - ent_trunc(e, new_size); - f0d2: 4b14 ldr r3, [pc, #80] ; (f124 ) - f0d4: 4629 mov r1, r5 - f0d6: 1f20 subs r0, r4, #4 - f0d8: 4798 blx r3 - return &e->first_data; - f0da: 4626 mov r6, r4 - f0dc: e00d b.n f0fa - new_p = lv_mem_alloc(new_size); - f0de: 4b12 ldr r3, [pc, #72] ; (f128 ) - f0e0: 4628 mov r0, r5 - f0e2: 4798 blx r3 - if(new_p == NULL) { - f0e4: 4606 mov r6, r0 - f0e6: b958 cbnz r0, f100 - LV_LOG_WARN("Couldn't allocate memory"); - f0e8: 4b10 ldr r3, [pc, #64] ; (f12c ) - f0ea: 9300 str r3, [sp, #0] - f0ec: 4910 ldr r1, [pc, #64] ; (f130 ) - f0ee: 4b11 ldr r3, [pc, #68] ; (f134 ) - f0f0: 4c11 ldr r4, [pc, #68] ; (f138 ) - f0f2: f240 123f movw r2, #319 ; 0x13f - f0f6: 2002 movs r0, #2 - f0f8: 47a0 blx r4 -} - f0fa: 4630 mov r0, r6 - f0fc: b003 add sp, #12 - f0fe: bdf0 pop {r4, r5, r6, r7, pc} - if(data_p != NULL) { - f100: 2c00 cmp r4, #0 - f102: d0fa beq.n f0fa - if(old_size != 0) { - f104: 2f00 cmp r7, #0 - f106: d0f8 beq.n f0fa - _lv_memcpy(new_p, data_p, LV_MATH_MIN(new_size, old_size)); - f108: 42bd cmp r5, r7 - f10a: 462a mov r2, r5 - f10c: 4b0b ldr r3, [pc, #44] ; (f13c ) - f10e: bf28 it cs - f110: 463a movcs r2, r7 - f112: 4621 mov r1, r4 - f114: 4798 blx r3 - lv_mem_free(data_p); - f116: 4b0a ldr r3, [pc, #40] ; (f140 ) - f118: 4620 mov r0, r4 - f11a: 4798 blx r3 - f11c: e7ed b.n f0fa - f11e: bf00 nop - f120: 0000eddd .word 0x0000eddd - f124: 0000ec6d .word 0x0000ec6d - f128: 0000ecbd .word 0x0000ecbd - f12c: 0002baf1 .word 0x0002baf1 - f130: 0002bac2 .word 0x0002bac2 - f134: 0002bbf7 .word 0x0002bbf7 - f138: 0000eb79 .word 0x0000eb79 - f13c: 0000eec1 .word 0x0000eec1 - f140: 0000ed75 .word 0x0000ed75 - -0000f144 <_lv_mem_buf_get>: -{ - f144: b5f7 push {r0, r1, r2, r4, r5, r6, r7, lr} - if(size == 0) return NULL; - f146: b190 cbz r0, f16e <_lv_mem_buf_get+0x2a> - if(size <= MEM_BUF_SMALL_SIZE) { - f148: 2810 cmp r0, #16 - f14a: d812 bhi.n f172 <_lv_mem_buf_get+0x2e> - if(mem_buf_small[i].used == 0) { - f14c: 4a36 ldr r2, [pc, #216] ; (f228 <_lv_mem_buf_get+0xe4>) - f14e: 7993 ldrb r3, [r2, #6] - f150: f013 0301 ands.w r3, r3, #1 - f154: d003 beq.n f15e <_lv_mem_buf_get+0x1a> - f156: 7b93 ldrb r3, [r2, #14] - f158: 07de lsls r6, r3, #31 - f15a: d40a bmi.n f172 <_lv_mem_buf_get+0x2e> - f15c: 2301 movs r3, #1 - mem_buf_small[i].used = 1; - f15e: eb02 00c3 add.w r0, r2, r3, lsl #3 - f162: 7981 ldrb r1, [r0, #6] - f164: f041 0101 orr.w r1, r1, #1 - f168: 7181 strb r1, [r0, #6] - return mem_buf_small[i].p; - f16a: f852 0033 ldr.w r0, [r2, r3, lsl #3] -} - f16e: b003 add sp, #12 - f170: bdf0 pop {r4, r5, r6, r7, pc} - if(LV_GC_ROOT(_lv_mem_buf[i]).used == 0 && LV_GC_ROOT(_lv_mem_buf[i]).size >= size) { - f172: 4c2e ldr r4, [pc, #184] ; (f22c <_lv_mem_buf_get+0xe8>) - if(mem_buf_small[i].used == 0) { - f174: 2300 movs r3, #0 - f176: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff - if(LV_GC_ROOT(_lv_mem_buf[i]).used == 0 && LV_GC_ROOT(_lv_mem_buf[i]).size >= size) { - f17a: 1d27 adds r7, r4, #4 - f17c: eb04 06c3 add.w r6, r4, r3, lsl #3 - f180: 79b5 ldrb r5, [r6, #6] - f182: 4629 mov r1, r5 - f184: 07ed lsls r5, r5, #31 - f186: d413 bmi.n f1b0 <_lv_mem_buf_get+0x6c> - f188: f837 5033 ldrh.w r5, [r7, r3, lsl #3] - f18c: 4285 cmp r5, r0 - f18e: d30f bcc.n f1b0 <_lv_mem_buf_get+0x6c> - if(LV_GC_ROOT(_lv_mem_buf[i]).size == size) { - f190: d105 bne.n f19e <_lv_mem_buf_get+0x5a> - LV_GC_ROOT(_lv_mem_buf[i]).used = 1; - f192: f041 0101 orr.w r1, r1, #1 - return LV_GC_ROOT(_lv_mem_buf[i]).p; - f196: f854 0033 ldr.w r0, [r4, r3, lsl #3] - LV_GC_ROOT(_lv_mem_buf[i]).used = 1; - f19a: 71b1 strb r1, [r6, #6] - return LV_GC_ROOT(_lv_mem_buf[i]).p; - f19c: e7e7 b.n f16e <_lv_mem_buf_get+0x2a> - else if(i_guess < 0) { - f19e: 1c56 adds r6, r2, #1 - f1a0: d101 bne.n f1a6 <_lv_mem_buf_get+0x62> - i_guess = i; - f1a2: b25a sxtb r2, r3 - f1a4: e004 b.n f1b0 <_lv_mem_buf_get+0x6c> - else if(LV_GC_ROOT(_lv_mem_buf[i]).size < LV_GC_ROOT(_lv_mem_buf[i_guess]).size) { - f1a6: eb04 01c2 add.w r1, r4, r2, lsl #3 - f1aa: 8889 ldrh r1, [r1, #4] - f1ac: 42a9 cmp r1, r5 - f1ae: d8f8 bhi.n f1a2 <_lv_mem_buf_get+0x5e> - for(i = 0; i < LV_MEM_BUF_MAX_NUM; i++) { - f1b0: 3301 adds r3, #1 - f1b2: 2b10 cmp r3, #16 - f1b4: d1e2 bne.n f17c <_lv_mem_buf_get+0x38> - if(i_guess >= 0) { - f1b6: 1c55 adds r5, r2, #1 - f1b8: d008 beq.n f1cc <_lv_mem_buf_get+0x88> - LV_GC_ROOT(_lv_mem_buf[i_guess]).used = 1; - f1ba: eb04 01c2 add.w r1, r4, r2, lsl #3 - return LV_GC_ROOT(_lv_mem_buf[i_guess]).p; - f1be: f854 0032 ldr.w r0, [r4, r2, lsl #3] - LV_GC_ROOT(_lv_mem_buf[i_guess]).used = 1; - f1c2: 798b ldrb r3, [r1, #6] - f1c4: f043 0301 orr.w r3, r3, #1 - f1c8: 718b strb r3, [r1, #6] - return LV_GC_ROOT(_lv_mem_buf[i_guess]).p; - f1ca: e7d0 b.n f16e <_lv_mem_buf_get+0x2a> - f1cc: 2500 movs r5, #0 - if(LV_GC_ROOT(_lv_mem_buf[i]).used == 0) { - f1ce: eb04 03c5 add.w r3, r4, r5, lsl #3 - f1d2: 7999 ldrb r1, [r3, #6] - f1d4: 460a mov r2, r1 - f1d6: 07c9 lsls r1, r1, #31 - f1d8: d417 bmi.n f20a <_lv_mem_buf_get+0xc6> - LV_GC_ROOT(_lv_mem_buf[i]).used = 1; - f1da: f042 0201 orr.w r2, r2, #1 - LV_GC_ROOT(_lv_mem_buf[i]).size = size; - f1de: 8098 strh r0, [r3, #4] - LV_GC_ROOT(_lv_mem_buf[i]).used = 1; - f1e0: 719a strb r2, [r3, #6] - LV_GC_ROOT(_lv_mem_buf[i]).p = lv_mem_realloc(LV_GC_ROOT(_lv_mem_buf[i]).p, size); - f1e2: 4601 mov r1, r0 - f1e4: 4b12 ldr r3, [pc, #72] ; (f230 <_lv_mem_buf_get+0xec>) - f1e6: f854 0035 ldr.w r0, [r4, r5, lsl #3] - f1ea: 4798 blx r3 - f1ec: f844 0035 str.w r0, [r4, r5, lsl #3] - if(LV_GC_ROOT(_lv_mem_buf[i]).p == NULL) { - f1f0: b940 cbnz r0, f204 <_lv_mem_buf_get+0xc0> - LV_LOG_ERROR("lv_mem_buf_get: Out of memory, can't allocate a new buffer (increase your LV_MEM_SIZE/heap size)") - f1f2: 4b10 ldr r3, [pc, #64] ; (f234 <_lv_mem_buf_get+0xf0>) - f1f4: 9300 str r3, [sp, #0] - f1f6: 4910 ldr r1, [pc, #64] ; (f238 <_lv_mem_buf_get+0xf4>) - f1f8: 4b10 ldr r3, [pc, #64] ; (f23c <_lv_mem_buf_get+0xf8>) - f1fa: 4e11 ldr r6, [pc, #68] ; (f240 <_lv_mem_buf_get+0xfc>) - f1fc: f44f 7204 mov.w r2, #528 ; 0x210 - f200: 2003 movs r0, #3 - f202: 47b0 blx r6 - return LV_GC_ROOT(_lv_mem_buf[i]).p; - f204: f854 0035 ldr.w r0, [r4, r5, lsl #3] - f208: e7b1 b.n f16e <_lv_mem_buf_get+0x2a> - for(i = 0; i < LV_MEM_BUF_MAX_NUM; i++) { - f20a: 3501 adds r5, #1 - f20c: 2d10 cmp r5, #16 - f20e: d1de bne.n f1ce <_lv_mem_buf_get+0x8a> - LV_LOG_ERROR("lv_mem_buf_get: no free buffer. Increase LV_DRAW_BUF_MAX_NUM."); - f210: 4b0c ldr r3, [pc, #48] ; (f244 <_lv_mem_buf_get+0x100>) - f212: 9300 str r3, [sp, #0] - f214: 2003 movs r0, #3 - f216: 4b09 ldr r3, [pc, #36] ; (f23c <_lv_mem_buf_get+0xf8>) - f218: 4907 ldr r1, [pc, #28] ; (f238 <_lv_mem_buf_get+0xf4>) - f21a: 4c09 ldr r4, [pc, #36] ; (f240 <_lv_mem_buf_get+0xfc>) - f21c: f240 2216 movw r2, #534 ; 0x216 - f220: 47a0 blx r4 - return NULL; - f222: 2000 movs r0, #0 - f224: e7a3 b.n f16e <_lv_mem_buf_get+0x2a> - f226: bf00 nop - f228: 20000038 .word 0x20000038 - f22c: 20003644 .word 0x20003644 - f230: 0000f0a5 .word 0x0000f0a5 - f234: 0002bb36 .word 0x0002bb36 - f238: 0002bac2 .word 0x0002bac2 - f23c: 0002bc06 .word 0x0002bc06 - f240: 0000eb79 .word 0x0000eb79 - f244: 0002bb98 .word 0x0002bb98 - -0000f248 <_lv_memset>: - if(d_align) { - f248: f010 0303 ands.w r3, r0, #3 -{ - f24c: b410 push {r4} - if(d_align) { - f24e: d009 beq.n f264 <_lv_memset+0x1c> - d_align = ALIGN_MASK + 1 - d_align; - f250: f1c3 0304 rsb r3, r3, #4 - f254: 4403 add r3, r0 - while(d_align && len) { - f256: b12a cbz r2, f264 <_lv_memset+0x1c> - *d8 = v; - f258: f800 1b01 strb.w r1, [r0], #1 - while(d_align && len) { - f25c: 4298 cmp r0, r3 - len--; - f25e: f102 32ff add.w r2, r2, #4294967295 ; 0xffffffff - while(d_align && len) { - f262: d1f8 bne.n f256 <_lv_memset+0xe> - uint32_t v32 = v + (v << 8) + (v << 16) + (v << 24); - f264: eb01 2401 add.w r4, r1, r1, lsl #8 - f268: eb04 4401 add.w r4, r4, r1, lsl #16 - f26c: eb04 6401 add.w r4, r4, r1, lsl #24 - while(len > 32) { - f270: 4603 mov r3, r0 - f272: 2a20 cmp r2, #32 - f274: 4618 mov r0, r3 - f276: f103 0320 add.w r3, r3, #32 - f27a: d805 bhi.n f288 <_lv_memset+0x40> - while(len > 4) { - f27c: 2a04 cmp r2, #4 - f27e: d80d bhi.n f29c <_lv_memset+0x54> - *d8 = v; - f280: 4b08 ldr r3, [pc, #32] ; (f2a4 <_lv_memset+0x5c>) -} - f282: f85d 4b04 ldr.w r4, [sp], #4 - *d8 = v; - f286: 4718 bx r3 - SET32(v32); - f288: e943 4408 strd r4, r4, [r3, #-32] - SET32(v32); - f28c: e943 4406 strd r4, r4, [r3, #-24] - SET32(v32); - f290: e943 4404 strd r4, r4, [r3, #-16] - SET32(v32); - f294: e943 4402 strd r4, r4, [r3, #-8] - len -= 32; - f298: 3a20 subs r2, #32 - f29a: e7ea b.n f272 <_lv_memset+0x2a> - SET32(v32); - f29c: f840 4b04 str.w r4, [r0], #4 - len -= 4; - f2a0: 3a04 subs r2, #4 - f2a2: e7eb b.n f27c <_lv_memset+0x34> - f2a4: 00016f51 .word 0x00016f51 - -0000f2a8 <_lv_memset_00>: - if(d_align) { - f2a8: f010 0303 ands.w r3, r0, #3 -{ - f2ac: 460a mov r2, r1 - if(d_align) { - f2ae: d10d bne.n f2cc <_lv_memset_00+0x24> - f2b0: 4603 mov r3, r0 - SET32(0); - f2b2: 2100 movs r1, #0 - while(len > 32) { - f2b4: 2a20 cmp r2, #32 - f2b6: 4618 mov r0, r3 - f2b8: f103 0320 add.w r3, r3, #32 - f2bc: d815 bhi.n f2ea <_lv_memset_00+0x42> - SET32(0); - f2be: 2300 movs r3, #0 - while(len > 4) { - f2c0: 2a04 cmp r2, #4 - f2c2: d908 bls.n f2d6 <_lv_memset_00+0x2e> - SET32(0); - f2c4: f840 3b04 str.w r3, [r0], #4 - len -= 4; - f2c8: 3a04 subs r2, #4 - f2ca: e7f9 b.n f2c0 <_lv_memset_00+0x18> - d_align = ALIGN_MASK + 1 - d_align; - f2cc: f1c3 0304 rsb r3, r3, #4 - f2d0: 4403 add r3, r0 - *d8 = 0x00; - f2d2: 2100 movs r1, #0 - while(d_align && len) { - f2d4: b912 cbnz r2, f2dc <_lv_memset_00+0x34> - *d8 = 0; - f2d6: 4b0a ldr r3, [pc, #40] ; (f300 <_lv_memset_00+0x58>) - f2d8: 2100 movs r1, #0 - f2da: 4718 bx r3 - *d8 = 0x00; - f2dc: f800 1b01 strb.w r1, [r0], #1 - while(d_align && len) { - f2e0: 4283 cmp r3, r0 - len--; - f2e2: f102 32ff add.w r2, r2, #4294967295 ; 0xffffffff - while(d_align && len) { - f2e6: d1f5 bne.n f2d4 <_lv_memset_00+0x2c> - f2e8: e7e2 b.n f2b0 <_lv_memset_00+0x8> - SET32(0); - f2ea: e943 1108 strd r1, r1, [r3, #-32] - SET32(0); - f2ee: e943 1106 strd r1, r1, [r3, #-24] - SET32(0); - f2f2: e943 1104 strd r1, r1, [r3, #-16] - SET32(0); - f2f6: e943 1102 strd r1, r1, [r3, #-8] - len -= 32; - f2fa: 3a20 subs r2, #32 - f2fc: e7da b.n f2b4 <_lv_memset_00+0xc> - f2fe: bf00 nop - f300: 00016f51 .word 0x00016f51 - -0000f304 <_lv_memset_ff>: - if(d_align) { - f304: f010 0303 ands.w r3, r0, #3 -{ - f308: 460a mov r2, r1 - if(d_align) { - f30a: d10f bne.n f32c <_lv_memset_ff+0x28> - f30c: 4603 mov r3, r0 - SET32(0xFFFFFFFF); - f30e: f04f 31ff mov.w r1, #4294967295 ; 0xffffffff - while(len > 32) { - f312: 2a20 cmp r2, #32 - f314: 4618 mov r0, r3 - f316: f103 0320 add.w r3, r3, #32 - f31a: d816 bhi.n f34a <_lv_memset_ff+0x46> - SET32(0xFFFFFFFF); - f31c: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff - while(len > 4) { - f320: 2a04 cmp r2, #4 - f322: d908 bls.n f336 <_lv_memset_ff+0x32> - SET32(0xFFFFFFFF); - f324: f840 3b04 str.w r3, [r0], #4 - len -= 4; - f328: 3a04 subs r2, #4 - f32a: e7f9 b.n f320 <_lv_memset_ff+0x1c> - d_align = ALIGN_MASK + 1 - d_align; - f32c: f1c3 0304 rsb r3, r3, #4 - f330: 4403 add r3, r0 - *d8 = 0xFF; - f332: 21ff movs r1, #255 ; 0xff - while(d_align && len) { - f334: b912 cbnz r2, f33c <_lv_memset_ff+0x38> - *d8 = 0xFF; - f336: 4b0a ldr r3, [pc, #40] ; (f360 <_lv_memset_ff+0x5c>) - f338: 21ff movs r1, #255 ; 0xff - f33a: 4718 bx r3 - *d8 = 0xFF; - f33c: f800 1b01 strb.w r1, [r0], #1 - while(d_align && len) { - f340: 4283 cmp r3, r0 - len--; - f342: f102 32ff add.w r2, r2, #4294967295 ; 0xffffffff - while(d_align && len) { - f346: d1f5 bne.n f334 <_lv_memset_ff+0x30> - f348: e7e0 b.n f30c <_lv_memset_ff+0x8> - SET32(0xFFFFFFFF); - f34a: e943 1108 strd r1, r1, [r3, #-32] - SET32(0xFFFFFFFF); - f34e: e943 1106 strd r1, r1, [r3, #-24] - SET32(0xFFFFFFFF); - f352: e943 1104 strd r1, r1, [r3, #-16] - SET32(0xFFFFFFFF); - f356: e943 1102 strd r1, r1, [r3, #-8] - len -= 32; - f35a: 3a20 subs r2, #32 - f35c: e7d9 b.n f312 <_lv_memset_ff+0xe> - f35e: bf00 nop - f360: 00016f51 .word 0x00016f51 - -0000f364 <_out_buffer>: - - -// internal buffer output -static inline void _out_buffer(char character, void * buffer, size_t idx, size_t maxlen) -{ - if(idx < maxlen) { - f364: 429a cmp r2, r3 - ((char *)buffer)[idx] = character; - f366: bf38 it cc - f368: 5488 strbcc r0, [r1, r2] - } -} - f36a: 4770 bx lr - -0000f36c <_out_null>: -{ - (void)character; - (void)buffer; - (void)idx; - (void)maxlen; -} - f36c: 4770 bx lr - -0000f36e <_ntoa_format>: - - -// internal itoa format -static size_t _ntoa_format(out_fct_type out, char * buffer, size_t idx, size_t maxlen, char * buf, size_t len, - bool negative, unsigned int base, unsigned int prec, unsigned int width, unsigned int flags) -{ - f36e: e92d 4ff7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr} - f372: 4617 mov r7, r2 - f374: e9dd 6211 ldrd r6, r2, [sp, #68] ; 0x44 - // pad leading zeros - if(!(flags & FLAGS_LEFT)) { - f378: f012 0a02 ands.w sl, r2, #2 -{ - f37c: 4680 mov r8, r0 - f37e: e9dd 540c ldrd r5, r4, [sp, #48] ; 0x30 - f382: e9dd 0c0f ldrd r0, ip, [sp, #60] ; 0x3c - f386: f89d e038 ldrb.w lr, [sp, #56] ; 0x38 - if(!(flags & FLAGS_LEFT)) { - f38a: d11f bne.n f3cc <_ntoa_format+0x5e> - if(width && (flags & FLAGS_ZEROPAD) && (negative || (flags & (FLAGS_PLUS | FLAGS_SPACE)))) { - f38c: f002 0901 and.w r9, r2, #1 - f390: b14e cbz r6, f3a6 <_ntoa_format+0x38> - f392: f1b9 0f00 cmp.w r9, #0 - f396: d006 beq.n f3a6 <_ntoa_format+0x38> - f398: f1be 0f00 cmp.w lr, #0 - f39c: d102 bne.n f3a4 <_ntoa_format+0x36> - f39e: f012 0f0c tst.w r2, #12 - f3a2: d000 beq.n f3a6 <_ntoa_format+0x38> - width--; - f3a4: 3e01 subs r6, #1 - } - while((len < prec) && (len < PRINTF_NTOA_BUFFER_SIZE)) { - buf[len++] = '0'; - f3a6: f04f 0b30 mov.w fp, #48 ; 0x30 - f3aa: e002 b.n f3b2 <_ntoa_format+0x44> - f3ac: f805 b004 strb.w fp, [r5, r4] - f3b0: 3401 adds r4, #1 - while((len < prec) && (len < PRINTF_NTOA_BUFFER_SIZE)) { - f3b2: 45a4 cmp ip, r4 - f3b4: d901 bls.n f3ba <_ntoa_format+0x4c> - f3b6: 2c20 cmp r4, #32 - f3b8: d1f8 bne.n f3ac <_ntoa_format+0x3e> - } - while((flags & FLAGS_ZEROPAD) && (len < width) && (len < PRINTF_NTOA_BUFFER_SIZE)) { - buf[len++] = '0'; - f3ba: f04f 0b30 mov.w fp, #48 ; 0x30 - while((flags & FLAGS_ZEROPAD) && (len < width) && (len < PRINTF_NTOA_BUFFER_SIZE)) { - f3be: f1b9 0f00 cmp.w r9, #0 - f3c2: d003 beq.n f3cc <_ntoa_format+0x5e> - f3c4: 42a6 cmp r6, r4 - f3c6: d901 bls.n f3cc <_ntoa_format+0x5e> - f3c8: 2c20 cmp r4, #32 - f3ca: d137 bne.n f43c <_ntoa_format+0xce> - } - } - - // handle hash - if(flags & FLAGS_HASH) { - f3cc: f012 0f10 tst.w r2, #16 - f3d0: d019 beq.n f406 <_ntoa_format+0x98> - if(!(flags & FLAGS_PRECISION) && len && ((len == prec) || (len == width))) { - f3d2: f412 6f80 tst.w r2, #1024 ; 0x400 - f3d6: d136 bne.n f446 <_ntoa_format+0xd8> - f3d8: b3ac cbz r4, f446 <_ntoa_format+0xd8> - f3da: 4564 cmp r4, ip - f3dc: d001 beq.n f3e2 <_ntoa_format+0x74> - f3de: 42b4 cmp r4, r6 - f3e0: d131 bne.n f446 <_ntoa_format+0xd8> - len--; - if(len && (base == 16U)) { - f3e2: f1b4 0c01 subs.w ip, r4, #1 - f3e6: d02d beq.n f444 <_ntoa_format+0xd6> - f3e8: 2810 cmp r0, #16 - f3ea: d16a bne.n f4c2 <_ntoa_format+0x154> - len--; - f3ec: 3c02 subs r4, #2 - } - } - if((base == 16U) && !(flags & FLAGS_UPPERCASE) && (len < PRINTF_NTOA_BUFFER_SIZE)) { - f3ee: 0690 lsls r0, r2, #26 - f3f0: d431 bmi.n f456 <_ntoa_format+0xe8> - f3f2: 2c1f cmp r4, #31 - f3f4: d80f bhi.n f416 <_ntoa_format+0xa8> - buf[len++] = 'x'; - f3f6: 2078 movs r0, #120 ; 0x78 - } - else if((base == 16U) && (flags & FLAGS_UPPERCASE) && (len < PRINTF_NTOA_BUFFER_SIZE)) { - buf[len++] = 'X'; - } - else if((base == 2U) && (len < PRINTF_NTOA_BUFFER_SIZE)) { - buf[len++] = 'b'; - f3f8: 5528 strb r0, [r5, r4] - f3fa: 3401 adds r4, #1 - } - if(len < PRINTF_NTOA_BUFFER_SIZE) { - f3fc: 2c1f cmp r4, #31 - f3fe: d80a bhi.n f416 <_ntoa_format+0xa8> - buf[len++] = '0'; - f400: 2030 movs r0, #48 ; 0x30 - f402: 5528 strb r0, [r5, r4] - f404: 3401 adds r4, #1 - } - } - - if(len < PRINTF_NTOA_BUFFER_SIZE) { - f406: 2c20 cmp r4, #32 - f408: d005 beq.n f416 <_ntoa_format+0xa8> - if(negative) { - f40a: f1be 0f00 cmp.w lr, #0 - f40e: d026 beq.n f45e <_ntoa_format+0xf0> - buf[len++] = '-'; - f410: 202d movs r0, #45 ; 0x2d - } - else if(flags & FLAGS_PLUS) { - buf[len++] = '+'; // ignore the space if the '+' exists - } - else if(flags & FLAGS_SPACE) { - buf[len++] = ' '; - f412: 5528 strb r0, [r5, r4] - f414: 3401 adds r4, #1 - if(!(flags & FLAGS_LEFT) && !(flags & FLAGS_ZEROPAD)) { - f416: 0792 lsls r2, r2, #30 - f418: d03b beq.n f492 <_ntoa_format+0x124> - f41a: 463a mov r2, r7 - f41c: 4425 add r5, r4 - f41e: 4414 add r4, r2 - while(len) { - f420: 42a2 cmp r2, r4 - f422: d13a bne.n f49a <_ntoa_format+0x12c> - if(flags & FLAGS_LEFT) { - f424: f1ba 0f00 cmp.w sl, #0 - f428: d004 beq.n f434 <_ntoa_format+0xc6> - f42a: 1bd5 subs r5, r2, r7 - while(idx - start_idx < width) { - f42c: 42b5 cmp r5, r6 - f42e: eb05 0407 add.w r4, r5, r7 - f432: d33d bcc.n f4b0 <_ntoa_format+0x142> - } - } - - return _out_rev(out, buffer, idx, maxlen, buf, len, width, flags); -} - f434: 4620 mov r0, r4 - f436: b003 add sp, #12 - f438: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - buf[len++] = '0'; - f43c: f805 b004 strb.w fp, [r5, r4] - f440: 3401 adds r4, #1 - f442: e7bc b.n f3be <_ntoa_format+0x50> - f444: 4664 mov r4, ip - if((base == 16U) && !(flags & FLAGS_UPPERCASE) && (len < PRINTF_NTOA_BUFFER_SIZE)) { - f446: 2810 cmp r0, #16 - f448: d0d1 beq.n f3ee <_ntoa_format+0x80> - else if((base == 2U) && (len < PRINTF_NTOA_BUFFER_SIZE)) { - f44a: 2802 cmp r0, #2 - f44c: d1d6 bne.n f3fc <_ntoa_format+0x8e> - f44e: 2c1f cmp r4, #31 - f450: d8e1 bhi.n f416 <_ntoa_format+0xa8> - buf[len++] = 'b'; - f452: 2062 movs r0, #98 ; 0x62 - f454: e7d0 b.n f3f8 <_ntoa_format+0x8a> - else if((base == 16U) && (flags & FLAGS_UPPERCASE) && (len < PRINTF_NTOA_BUFFER_SIZE)) { - f456: 2c1f cmp r4, #31 - f458: d8dd bhi.n f416 <_ntoa_format+0xa8> - buf[len++] = 'X'; - f45a: 2058 movs r0, #88 ; 0x58 - f45c: e7cc b.n f3f8 <_ntoa_format+0x8a> - else if(flags & FLAGS_PLUS) { - f45e: 0750 lsls r0, r2, #29 - f460: d501 bpl.n f466 <_ntoa_format+0xf8> - buf[len++] = '+'; // ignore the space if the '+' exists - f462: 202b movs r0, #43 ; 0x2b - f464: e7d5 b.n f412 <_ntoa_format+0xa4> - else if(flags & FLAGS_SPACE) { - f466: 0710 lsls r0, r2, #28 - f468: d5d5 bpl.n f416 <_ntoa_format+0xa8> - buf[len++] = ' '; - f46a: 2020 movs r0, #32 - f46c: e7d1 b.n f412 <_ntoa_format+0xa4> - out(' ', buffer, idx++, maxlen); - f46e: 2020 movs r0, #32 - f470: e9cd 1300 strd r1, r3, [sp] - f474: 47c0 blx r8 - for(i = len; i < width; i++) { - f476: e9dd 1300 ldrd r1, r3, [sp] - f47a: f109 0901 add.w r9, r9, #1 - f47e: 454e cmp r6, r9 - f480: eb0b 0209 add.w r2, fp, r9 - f484: d8f3 bhi.n f46e <_ntoa_format+0x100> - f486: 1b32 subs r2, r6, r4 - f488: 42b4 cmp r4, r6 - f48a: bf88 it hi - f48c: 2200 movhi r2, #0 - f48e: 443a add r2, r7 - f490: e7c4 b.n f41c <_ntoa_format+0xae> - f492: 46a1 mov r9, r4 - f494: eba7 0b04 sub.w fp, r7, r4 - f498: e7f1 b.n f47e <_ntoa_format+0x110> - out(buf[--len], buffer, idx++, maxlen); - f49a: f102 0901 add.w r9, r2, #1 - f49e: f815 0d01 ldrb.w r0, [r5, #-1]! - f4a2: e9cd 1300 strd r1, r3, [sp] - f4a6: 47c0 blx r8 - f4a8: e9dd 1300 ldrd r1, r3, [sp] - f4ac: 464a mov r2, r9 - f4ae: e7b7 b.n f420 <_ntoa_format+0xb2> - out(' ', buffer, idx++, maxlen); - f4b0: 4622 mov r2, r4 - f4b2: 2020 movs r0, #32 - f4b4: 9301 str r3, [sp, #4] - f4b6: 9100 str r1, [sp, #0] - f4b8: 3501 adds r5, #1 - f4ba: 47c0 blx r8 - f4bc: e9dd 1300 ldrd r1, r3, [sp] - f4c0: e7b4 b.n f42c <_ntoa_format+0xbe> - else if((base == 2U) && (len < PRINTF_NTOA_BUFFER_SIZE)) { - f4c2: 2802 cmp r0, #2 - f4c4: 4664 mov r4, ip - f4c6: d199 bne.n f3fc <_ntoa_format+0x8e> - f4c8: e7c3 b.n f452 <_ntoa_format+0xe4> - ... - -0000f4cc <_ntoa_long>: - - -// internal itoa for 'long' type -static size_t _ntoa_long(out_fct_type out, char * buffer, size_t idx, size_t maxlen, unsigned long value, bool negative, - unsigned long base, unsigned int prec, unsigned int width, unsigned int flags) -{ - f4cc: e92d 43f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} - f4d0: b091 sub sp, #68 ; 0x44 - f4d2: 9d18 ldr r5, [sp, #96] ; 0x60 - f4d4: 9e1a ldr r6, [sp, #104] ; 0x68 - f4d6: 9f1d ldr r7, [sp, #116] ; 0x74 - char buf[PRINTF_NTOA_BUFFER_SIZE]; - size_t len = 0U; - - // no hash for 0 values - if(!value) { - f4d8: b90d cbnz r5, f4de <_ntoa_long+0x12> - flags &= ~FLAGS_HASH; - f4da: f027 0710 bic.w r7, r7, #16 - } - - // write if precision != 0 and value is != 0 - if(!(flags & FLAGS_PRECISION) || value) { - f4de: 057c lsls r4, r7, #21 - f4e0: d500 bpl.n f4e4 <_ntoa_long+0x18> - f4e2: b315 cbz r5, f52a <_ntoa_long+0x5e> - f4e4: f017 0f20 tst.w r7, #32 - f4e8: bf14 ite ne - f4ea: f04f 0e41 movne.w lr, #65 ; 0x41 - f4ee: f04f 0e61 moveq.w lr, #97 ; 0x61 - do { - const char digit = (char)(value % base); - buf[len++] = digit < 10 ? '0' + digit : (flags & FLAGS_UPPERCASE ? 'A' : 'a') + digit - 10; - f4f2: 46ac mov ip, r5 - f4f4: f10d 0820 add.w r8, sp, #32 - f4f8: 2500 movs r5, #0 - f4fa: f1ae 0e0a sub.w lr, lr, #10 - const char digit = (char)(value % base); - f4fe: fbbc f9f6 udiv r9, ip, r6 - f502: fb06 c919 mls r9, r6, r9, ip - f506: fa5f f489 uxtb.w r4, r9 - buf[len++] = digit < 10 ? '0' + digit : (flags & FLAGS_UPPERCASE ? 'A' : 'a') + digit - 10; - f50a: f1b9 0f09 cmp.w r9, #9 - f50e: bf94 ite ls - f510: 3430 addls r4, #48 ; 0x30 - f512: 4474 addhi r4, lr - f514: b2e4 uxtb r4, r4 - value /= base; - } while(value && (len < PRINTF_NTOA_BUFFER_SIZE)); - f516: 45b4 cmp ip, r6 - buf[len++] = digit < 10 ? '0' + digit : (flags & FLAGS_UPPERCASE ? 'A' : 'a') + digit - 10; - f518: f808 4b01 strb.w r4, [r8], #1 - value /= base; - f51c: fbbc f4f6 udiv r4, ip, r6 - buf[len++] = digit < 10 ? '0' + digit : (flags & FLAGS_UPPERCASE ? 'A' : 'a') + digit - 10; - f520: f105 0501 add.w r5, r5, #1 - } while(value && (len < PRINTF_NTOA_BUFFER_SIZE)); - f524: d301 bcc.n f52a <_ntoa_long+0x5e> - f526: 2d20 cmp r5, #32 - f528: d110 bne.n f54c <_ntoa_long+0x80> - } - - return _ntoa_format(out, buffer, idx, maxlen, buf, len, negative, (unsigned int)base, prec, width, flags); - f52a: 9c1c ldr r4, [sp, #112] ; 0x70 - f52c: 9405 str r4, [sp, #20] - f52e: 9c1b ldr r4, [sp, #108] ; 0x6c - f530: 9706 str r7, [sp, #24] - f532: e9cd 6403 strd r6, r4, [sp, #12] - f536: f89d 4064 ldrb.w r4, [sp, #100] ; 0x64 - f53a: e9cd 5401 strd r5, r4, [sp, #4] - f53e: ac08 add r4, sp, #32 - f540: 9400 str r4, [sp, #0] - f542: 4c03 ldr r4, [pc, #12] ; (f550 <_ntoa_long+0x84>) - f544: 47a0 blx r4 -} - f546: b011 add sp, #68 ; 0x44 - f548: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} - value /= base; - f54c: 46a4 mov ip, r4 - f54e: e7d6 b.n f4fe <_ntoa_long+0x32> - f550: 0000f36f .word 0x0000f36f - -0000f554 <_ntoa_long_long>: - -// internal itoa for 'long long' type -#if defined(PRINTF_SUPPORT_LONG_LONG) -static size_t _ntoa_long_long(out_fct_type out, char * buffer, size_t idx, size_t maxlen, unsigned long long value, - bool negative, unsigned long long base, unsigned int prec, unsigned int width, unsigned int flags) -{ - f554: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - f558: ed2d 8b04 vpush {d8-d9} - f55c: b093 sub sp, #76 ; 0x4c - f55e: e9dd 6420 ldrd r6, r4, [sp, #128] ; 0x80 - f562: 469a mov sl, r3 - char buf[PRINTF_NTOA_BUFFER_SIZE]; - size_t len = 0U; - - // no hash for 0 values - if(!value) { - f564: ea56 0304 orrs.w r3, r6, r4 - flags &= ~FLAGS_HASH; - f568: bf02 ittt eq - f56a: 9b28 ldreq r3, [sp, #160] ; 0xa0 - f56c: f023 0310 biceq.w r3, r3, #16 - f570: 9328 streq r3, [sp, #160] ; 0xa0 - } - - // write if precision != 0 and value is != 0 - if(!(flags & FLAGS_PRECISION) || value) { - f572: 9b28 ldr r3, [sp, #160] ; 0xa0 - f574: 055b lsls r3, r3, #21 -{ - f576: e9dd b924 ldrd fp, r9, [sp, #144] ; 0x90 - f57a: ee08 0a10 vmov s16, r0 - f57e: ee08 1a90 vmov s17, r1 - f582: ee09 2a10 vmov s18, r2 - if(!(flags & FLAGS_PRECISION) || value) { - f586: d502 bpl.n f58e <_ntoa_long_long+0x3a> - f588: ea56 0304 orrs.w r3, r6, r4 - f58c: d03f beq.n f60e <_ntoa_long_long+0xba> - f58e: 9b28 ldr r3, [sp, #160] ; 0xa0 - f590: f013 0f20 tst.w r3, #32 - f594: bf14 ite ne - f596: 2341 movne r3, #65 ; 0x41 - f598: 2361 moveq r3, #97 ; 0x61 - do { - const char digit = (char)(value % base); - buf[len++] = digit < 10 ? '0' + digit : (flags & FLAGS_UPPERCASE ? 'A' : 'a') + digit - 10; - f59a: 3b0a subs r3, #10 - f59c: f10d 0828 add.w r8, sp, #40 ; 0x28 - f5a0: 2500 movs r5, #0 - f5a2: 9309 str r3, [sp, #36] ; 0x24 - const char digit = (char)(value % base); - f5a4: 4621 mov r1, r4 - f5a6: 4f1b ldr r7, [pc, #108] ; (f614 <_ntoa_long_long+0xc0>) - f5a8: 465a mov r2, fp - f5aa: 464b mov r3, r9 - f5ac: 4630 mov r0, r6 - f5ae: 47b8 blx r7 - f5b0: b2d2 uxtb r2, r2 - buf[len++] = digit < 10 ? '0' + digit : (flags & FLAGS_UPPERCASE ? 'A' : 'a') + digit - 10; - f5b2: 2a09 cmp r2, #9 - f5b4: bf8a itet hi - f5b6: 9b09 ldrhi r3, [sp, #36] ; 0x24 - f5b8: 3230 addls r2, #48 ; 0x30 - f5ba: 18d2 addhi r2, r2, r3 - value /= base; - } while(value && (len < PRINTF_NTOA_BUFFER_SIZE)); - f5bc: 455e cmp r6, fp - buf[len++] = digit < 10 ? '0' + digit : (flags & FLAGS_UPPERCASE ? 'A' : 'a') + digit - 10; - f5be: b2d2 uxtb r2, r2 - } while(value && (len < PRINTF_NTOA_BUFFER_SIZE)); - f5c0: eb74 0409 sbcs.w r4, r4, r9 - buf[len++] = digit < 10 ? '0' + digit : (flags & FLAGS_UPPERCASE ? 'A' : 'a') + digit - 10; - f5c4: f808 2b01 strb.w r2, [r8], #1 - f5c8: f105 0501 add.w r5, r5, #1 - } while(value && (len < PRINTF_NTOA_BUFFER_SIZE)); - f5cc: d301 bcc.n f5d2 <_ntoa_long_long+0x7e> - f5ce: 2d20 cmp r5, #32 - f5d0: d11a bne.n f608 <_ntoa_long_long+0xb4> - } - - return _ntoa_format(out, buffer, idx, maxlen, buf, len, negative, (unsigned int)base, prec, width, flags); - f5d2: 9b28 ldr r3, [sp, #160] ; 0xa0 - f5d4: 9306 str r3, [sp, #24] - f5d6: 9b27 ldr r3, [sp, #156] ; 0x9c - f5d8: 9305 str r3, [sp, #20] - f5da: 9b26 ldr r3, [sp, #152] ; 0x98 - f5dc: 4c0e ldr r4, [pc, #56] ; (f618 <_ntoa_long_long+0xc4>) - f5de: e9cd b303 strd fp, r3, [sp, #12] - f5e2: f89d 3088 ldrb.w r3, [sp, #136] ; 0x88 - f5e6: e9cd 5301 strd r5, r3, [sp, #4] - f5ea: ab0a add r3, sp, #40 ; 0x28 - f5ec: 9300 str r3, [sp, #0] - f5ee: ee19 2a10 vmov r2, s18 - f5f2: ee18 1a90 vmov r1, s17 - f5f6: ee18 0a10 vmov r0, s16 - f5fa: 4653 mov r3, sl - f5fc: 47a0 blx r4 -} - f5fe: b013 add sp, #76 ; 0x4c - f600: ecbd 8b04 vpop {d8-d9} - f604: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - value /= base; - f608: 4606 mov r6, r0 - f60a: 460c mov r4, r1 - f60c: e7ca b.n f5a4 <_ntoa_long_long+0x50> - size_t len = 0U; - f60e: 2500 movs r5, #0 - f610: e7df b.n f5d2 <_ntoa_long_long+0x7e> - f612: bf00 nop - f614: 0001696d .word 0x0001696d - f618: 0000f36f .word 0x0000f36f - -0000f61c <_vsnprintf.constprop.0>: -#endif // PRINTF_SUPPORT_EXPONENTIAL -#endif // PRINTF_SUPPORT_FLOAT - - -// internal vsnprintf -static int _vsnprintf(out_fct_type out, char * buffer, const size_t maxlen, const char * format, va_list va) - f61c: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - f620: 4617 mov r7, r2 - f622: 461e mov r6, r3 - unsigned int flags, width, precision, n; - size_t idx = 0U; - - if(!buffer) { - // use null output function - out = _out_null; - f624: 4aac ldr r2, [pc, #688] ; (f8d8 <_vsnprintf.constprop.0+0x2bc>) - f626: 4bad ldr r3, [pc, #692] ; (f8dc <_vsnprintf.constprop.0+0x2c0>) -static int _vsnprintf(out_fct_type out, char * buffer, const size_t maxlen, const char * format, va_list va) - f628: 4689 mov r9, r1 - out = _out_null; - f62a: 1e01 subs r1, r0, #0 -static int _vsnprintf(out_fct_type out, char * buffer, const size_t maxlen, const char * format, va_list va) - f62c: b091 sub sp, #68 ; 0x44 - out = _out_null; - f62e: bf14 ite ne - f630: 4693 movne fp, r2 - f632: 469b moveq fp, r3 - out('%', buffer, idx++, maxlen); - format++; - break; - - default : - out(*format, buffer, idx++, maxlen); - f634: 2500 movs r5, #0 - while(*format) { - f636: 7838 ldrb r0, [r7, #0] - f638: b958 cbnz r0, f652 <_vsnprintf.constprop.0+0x36> - break; - } - } - - // termination - out((char)0, buffer, idx < maxlen ? idx : maxlen - 1U, maxlen); - f63a: 454d cmp r5, r9 - f63c: bf2c ite cs - f63e: f109 32ff addcs.w r2, r9, #4294967295 ; 0xffffffff - f642: 462a movcc r2, r5 - f644: 464b mov r3, r9 - f646: 2000 movs r0, #0 - f648: 47d8 blx fp - - // return written chars without terminating \0 - return (int)idx; -} - f64a: 4628 mov r0, r5 - f64c: b011 add sp, #68 ; 0x44 - f64e: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - if(*format != '%') { - f652: 2825 cmp r0, #37 ; 0x25 - format++; - f654: f107 0701 add.w r7, r7, #1 - if(*format != '%') { - f658: d006 beq.n f668 <_vsnprintf.constprop.0+0x4c> - out(*format, buffer, idx++, maxlen); - f65a: 1c6c adds r4, r5, #1 - f65c: 464b mov r3, r9 - f65e: 462a mov r2, r5 - f660: 910a str r1, [sp, #40] ; 0x28 - out(*format, buffer, idx++, maxlen); - f662: 47d8 blx fp - f664: 4625 mov r5, r4 - f666: e0d2 b.n f80e <_vsnprintf.constprop.0+0x1f2> - flags = 0U; - f668: 2300 movs r3, #0 - f66a: e006 b.n f67a <_vsnprintf.constprop.0+0x5e> - switch(*format) { - f66c: 2a2d cmp r2, #45 ; 0x2d - f66e: d016 beq.n f69e <_vsnprintf.constprop.0+0x82> - f670: 2a30 cmp r2, #48 ; 0x30 - f672: d10c bne.n f68e <_vsnprintf.constprop.0+0x72> - flags |= FLAGS_ZEROPAD; - f674: f043 0301 orr.w r3, r3, #1 - format++; - f678: 4607 mov r7, r0 - switch(*format) { - f67a: 4638 mov r0, r7 - f67c: f810 2b01 ldrb.w r2, [r0], #1 - f680: 2a2b cmp r2, #43 ; 0x2b - f682: d00f beq.n f6a4 <_vsnprintf.constprop.0+0x88> - f684: d8f2 bhi.n f66c <_vsnprintf.constprop.0+0x50> - f686: 2a20 cmp r2, #32 - f688: d00f beq.n f6aa <_vsnprintf.constprop.0+0x8e> - f68a: 2a23 cmp r2, #35 ; 0x23 - f68c: d010 beq.n f6b0 <_vsnprintf.constprop.0+0x94> - if(_is_digit(*format)) { - f68e: f1a2 0430 sub.w r4, r2, #48 ; 0x30 - f692: 2c09 cmp r4, #9 - f694: d82c bhi.n f6f0 <_vsnprintf.constprop.0+0xd4> - unsigned int i = 0U; - f696: f04f 0800 mov.w r8, #0 - i = i * 10U + (unsigned int)(*((*str)++) - '0'); - f69a: 240a movs r4, #10 - f69c: e010 b.n f6c0 <_vsnprintf.constprop.0+0xa4> - flags |= FLAGS_LEFT; - f69e: f043 0302 orr.w r3, r3, #2 - } while(n); - f6a2: e7e9 b.n f678 <_vsnprintf.constprop.0+0x5c> - flags |= FLAGS_PLUS; - f6a4: f043 0304 orr.w r3, r3, #4 - } while(n); - f6a8: e7e6 b.n f678 <_vsnprintf.constprop.0+0x5c> - flags |= FLAGS_SPACE; - f6aa: f043 0308 orr.w r3, r3, #8 - } while(n); - f6ae: e7e3 b.n f678 <_vsnprintf.constprop.0+0x5c> - flags |= FLAGS_HASH; - f6b0: f043 0310 orr.w r3, r3, #16 - } while(n); - f6b4: e7e0 b.n f678 <_vsnprintf.constprop.0+0x5c> - i = i * 10U + (unsigned int)(*((*str)++) - '0'); - f6b6: fb04 2208 mla r2, r4, r8, r2 - f6ba: f1a2 0830 sub.w r8, r2, #48 ; 0x30 - f6be: 4607 mov r7, r0 - while(_is_digit(**str)) { - f6c0: 4638 mov r0, r7 - f6c2: f810 2b01 ldrb.w r2, [r0], #1 - f6c6: f1a2 0c30 sub.w ip, r2, #48 ; 0x30 - f6ca: f1bc 0f09 cmp.w ip, #9 - f6ce: d9f2 bls.n f6b6 <_vsnprintf.constprop.0+0x9a> - if(*format == '.') { - f6d0: 783a ldrb r2, [r7, #0] - f6d2: 2a2e cmp r2, #46 ; 0x2e - f6d4: d15a bne.n f78c <_vsnprintf.constprop.0+0x170> - if(_is_digit(*format)) { - f6d6: 7878 ldrb r0, [r7, #1] - f6d8: f1a0 0430 sub.w r4, r0, #48 ; 0x30 - f6dc: 2c09 cmp r4, #9 - format++; - f6de: f107 0201 add.w r2, r7, #1 - flags |= FLAGS_PRECISION; - f6e2: f443 6380 orr.w r3, r3, #1024 ; 0x400 - if(_is_digit(*format)) { - f6e6: d848 bhi.n f77a <_vsnprintf.constprop.0+0x15e> - unsigned int i = 0U; - f6e8: 2400 movs r4, #0 - i = i * 10U + (unsigned int)(*((*str)++) - '0'); - f6ea: f04f 0e0a mov.w lr, #10 - f6ee: e014 b.n f71a <_vsnprintf.constprop.0+0xfe> - else if(*format == '*') { - f6f0: 2a2a cmp r2, #42 ; 0x2a - f6f2: d10a bne.n f70a <_vsnprintf.constprop.0+0xee> - const int w = va_arg(va, int); - f6f4: f856 8b04 ldr.w r8, [r6], #4 - if(w < 0) { - f6f8: f1b8 0f00 cmp.w r8, #0 - flags |= FLAGS_LEFT; // reverse padding - f6fc: bfbc itt lt - f6fe: f043 0302 orrlt.w r3, r3, #2 - width = (unsigned int) - w; - f702: f1c8 0800 rsblt r8, r8, #0 - const int w = va_arg(va, int); - f706: 4607 mov r7, r0 - f708: e7e2 b.n f6d0 <_vsnprintf.constprop.0+0xb4> - width = 0U; - f70a: f04f 0800 mov.w r8, #0 - f70e: e7df b.n f6d0 <_vsnprintf.constprop.0+0xb4> - i = i * 10U + (unsigned int)(*((*str)++) - '0'); - f710: fb0e 0004 mla r0, lr, r4, r0 - f714: f1a0 0430 sub.w r4, r0, #48 ; 0x30 - f718: 463a mov r2, r7 - while(_is_digit(**str)) { - f71a: 4617 mov r7, r2 - f71c: f817 0b01 ldrb.w r0, [r7], #1 - f720: f1a0 0c30 sub.w ip, r0, #48 ; 0x30 - f724: f1bc 0f09 cmp.w ip, #9 - f728: d9f2 bls.n f710 <_vsnprintf.constprop.0+0xf4> - f72a: 4617 mov r7, r2 - switch(*format) { - f72c: 463a mov r2, r7 - f72e: f812 0b01 ldrb.w r0, [r2], #1 - f732: 286c cmp r0, #108 ; 0x6c - f734: d033 beq.n f79e <_vsnprintf.constprop.0+0x182> - f736: d82b bhi.n f790 <_vsnprintf.constprop.0+0x174> - f738: 2868 cmp r0, #104 ; 0x68 - f73a: d037 beq.n f7ac <_vsnprintf.constprop.0+0x190> - f73c: 286a cmp r0, #106 ; 0x6a - f73e: d03f beq.n f7c0 <_vsnprintf.constprop.0+0x1a4> - switch(*format) { - f740: f817 eb01 ldrb.w lr, [r7], #1 - f744: f1be 0f78 cmp.w lr, #120 ; 0x78 - f748: d811 bhi.n f76e <_vsnprintf.constprop.0+0x152> - f74a: f1be 0f63 cmp.w lr, #99 ; 0x63 - f74e: d83a bhi.n f7c6 <_vsnprintf.constprop.0+0x1aa> - f750: f1be 0f62 cmp.w lr, #98 ; 0x62 - f754: f000 80a2 beq.w f89c <_vsnprintf.constprop.0+0x280> - f758: f1be 0f63 cmp.w lr, #99 ; 0x63 - f75c: f000 80fc beq.w f958 <_vsnprintf.constprop.0+0x33c> - f760: f1be 0f25 cmp.w lr, #37 ; 0x25 - f764: d003 beq.n f76e <_vsnprintf.constprop.0+0x152> - f766: f1be 0f58 cmp.w lr, #88 ; 0x58 - f76a: f000 8093 beq.w f894 <_vsnprintf.constprop.0+0x278> - out(*format, buffer, idx++, maxlen); - f76e: 1c6c adds r4, r5, #1 - f770: 464b mov r3, r9 - f772: 462a mov r2, r5 - f774: 910a str r1, [sp, #40] ; 0x28 - f776: 4670 mov r0, lr - f778: e773 b.n f662 <_vsnprintf.constprop.0+0x46> - else if(*format == '*') { - f77a: 282a cmp r0, #42 ; 0x2a - f77c: d105 bne.n f78a <_vsnprintf.constprop.0+0x16e> - precision = prec > 0 ? (unsigned int)prec : 0U; - f77e: f856 4b04 ldr.w r4, [r6], #4 - format++; - f782: 3702 adds r7, #2 - precision = prec > 0 ? (unsigned int)prec : 0U; - f784: ea24 74e4 bic.w r4, r4, r4, asr #31 - format++; - f788: e7d0 b.n f72c <_vsnprintf.constprop.0+0x110> - format++; - f78a: 4617 mov r7, r2 - precision = 0U; - f78c: 2400 movs r4, #0 - f78e: e7cd b.n f72c <_vsnprintf.constprop.0+0x110> - switch(*format) { - f790: 2874 cmp r0, #116 ; 0x74 - f792: d001 beq.n f798 <_vsnprintf.constprop.0+0x17c> - f794: 287a cmp r0, #122 ; 0x7a - f796: d1d3 bne.n f740 <_vsnprintf.constprop.0+0x124> - flags |= (sizeof(size_t) == sizeof(long) ? FLAGS_LONG : FLAGS_LONG_LONG); - f798: f443 7380 orr.w r3, r3, #256 ; 0x100 - f79c: e00b b.n f7b6 <_vsnprintf.constprop.0+0x19a> - if(*format == 'l') { - f79e: 7878 ldrb r0, [r7, #1] - f7a0: 286c cmp r0, #108 ; 0x6c - f7a2: d1f9 bne.n f798 <_vsnprintf.constprop.0+0x17c> - flags |= FLAGS_LONG_LONG; - f7a4: f443 7340 orr.w r3, r3, #768 ; 0x300 - format++; - f7a8: 3702 adds r7, #2 - f7aa: e7c9 b.n f740 <_vsnprintf.constprop.0+0x124> - if(*format == 'h') { - f7ac: 7878 ldrb r0, [r7, #1] - f7ae: 2868 cmp r0, #104 ; 0x68 - f7b0: d003 beq.n f7ba <_vsnprintf.constprop.0+0x19e> - flags |= FLAGS_SHORT; - f7b2: f043 0380 orr.w r3, r3, #128 ; 0x80 - format++; - f7b6: 4617 mov r7, r2 - break; - f7b8: e7c2 b.n f740 <_vsnprintf.constprop.0+0x124> - flags |= FLAGS_CHAR; - f7ba: f043 03c0 orr.w r3, r3, #192 ; 0xc0 - f7be: e7f3 b.n f7a8 <_vsnprintf.constprop.0+0x18c> - flags |= (sizeof(intmax_t) == sizeof(long) ? FLAGS_LONG : FLAGS_LONG_LONG); - f7c0: f443 7300 orr.w r3, r3, #512 ; 0x200 - break; - f7c4: e7f7 b.n f7b6 <_vsnprintf.constprop.0+0x19a> - f7c6: f1ae 0c64 sub.w ip, lr, #100 ; 0x64 - f7ca: 4845 ldr r0, [pc, #276] ; (f8e0 <_vsnprintf.constprop.0+0x2c4>) - f7cc: fa5f fc8c uxtb.w ip, ip - f7d0: 2201 movs r2, #1 - f7d2: fa02 f20c lsl.w r2, r2, ip - f7d6: 4002 ands r2, r0 - f7d8: d11b bne.n f812 <_vsnprintf.constprop.0+0x1f6> - f7da: f1be 0f73 cmp.w lr, #115 ; 0x73 - f7de: f000 80fb beq.w f9d8 <_vsnprintf.constprop.0+0x3bc> - f7e2: f1be 0f70 cmp.w lr, #112 ; 0x70 - f7e6: d1c2 bne.n f76e <_vsnprintf.constprop.0+0x152> - flags |= FLAGS_ZEROPAD | FLAGS_UPPERCASE; - f7e8: f043 0321 orr.w r3, r3, #33 ; 0x21 - idx = _ntoa_long(out, buffer, idx, maxlen, (unsigned long)((uintptr_t)va_arg(va, void *)), false, 16U, precision, width, - f7ec: 9305 str r3, [sp, #20] - f7ee: 2308 movs r3, #8 - f7f0: e9cd 4303 strd r4, r3, [sp, #12] - f7f4: 2310 movs r3, #16 - f7f6: e9cd 2301 strd r2, r3, [sp, #4] - f7fa: f856 3b04 ldr.w r3, [r6], #4 - f7fe: 9300 str r3, [sp, #0] - f800: 462a mov r2, r5 - f802: 4c38 ldr r4, [pc, #224] ; (f8e4 <_vsnprintf.constprop.0+0x2c8>) - f804: 910a str r1, [sp, #40] ; 0x28 - f806: 464b mov r3, r9 - f808: 4658 mov r0, fp - f80a: 47a0 blx r4 - f80c: 4605 mov r5, r0 - out(*format, buffer, idx++, maxlen); - f80e: 990a ldr r1, [sp, #40] ; 0x28 - break; - f810: e711 b.n f636 <_vsnprintf.constprop.0+0x1a> - if(*format == 'x' || *format == 'X') { - f812: f1be 0f78 cmp.w lr, #120 ; 0x78 - f816: d03f beq.n f898 <_vsnprintf.constprop.0+0x27c> - f818: f1be 0f6f cmp.w lr, #111 ; 0x6f - f81c: f000 8144 beq.w faa8 <_vsnprintf.constprop.0+0x48c> - if((*format != 'i') && (*format != 'd')) { - f820: f1be 0f69 cmp.w lr, #105 ; 0x69 - flags &= ~FLAGS_HASH; // no hash for dec format - f824: f023 0310 bic.w r3, r3, #16 - base = 10U; - f828: f04f 020a mov.w r2, #10 - if((*format != 'i') && (*format != 'd')) { - f82c: d002 beq.n f834 <_vsnprintf.constprop.0+0x218> - f82e: f1be 0f64 cmp.w lr, #100 ; 0x64 - f832: d134 bne.n f89e <_vsnprintf.constprop.0+0x282> - if(flags & FLAGS_PRECISION) { - f834: 0558 lsls r0, r3, #21 - flags &= ~FLAGS_ZEROPAD; - f836: bf48 it mi - f838: f023 0301 bicmi.w r3, r3, #1 - if((*format == 'i') || (*format == 'd')) { - f83c: f1be 0f69 cmp.w lr, #105 ; 0x69 - if(flags & FLAGS_LONG_LONG) { - f840: f403 7c00 and.w ip, r3, #512 ; 0x200 - if((*format == 'i') || (*format == 'd')) { - f844: d002 beq.n f84c <_vsnprintf.constprop.0+0x230> - f846: f1be 0f64 cmp.w lr, #100 ; 0x64 - f84a: d14f bne.n f8ec <_vsnprintf.constprop.0+0x2d0> - if(flags & FLAGS_LONG_LONG) { - f84c: f1bc 0f00 cmp.w ip, #0 - f850: d028 beq.n f8a4 <_vsnprintf.constprop.0+0x288> - const long long value = va_arg(va, long long); - f852: 3607 adds r6, #7 - f854: f026 0607 bic.w r6, r6, #7 - f858: 46b2 mov sl, r6 - f85a: 6876 ldr r6, [r6, #4] - f85c: f85a 0b08 ldr.w r0, [sl], #8 - idx = _ntoa_long_long(out, buffer, idx, maxlen, (unsigned long long)(value > 0 ? value : 0 - value), value < 0, base, - f860: 9406 str r4, [sp, #24] - f862: e9cd 8307 strd r8, r3, [sp, #28] - f866: 2300 movs r3, #0 - f868: 9305 str r3, [sp, #20] - f86a: 0ff3 lsrs r3, r6, #31 - f86c: 2e00 cmp r6, #0 - f86e: 9302 str r3, [sp, #8] - f870: 9204 str r2, [sp, #16] - f872: 4603 mov r3, r0 - f874: da02 bge.n f87c <_vsnprintf.constprop.0+0x260> - f876: 4243 negs r3, r0 - f878: eb66 0646 sbc.w r6, r6, r6, lsl #1 - f87c: e9cd 3600 strd r3, r6, [sp] - idx = _ntoa_long_long(out, buffer, idx, maxlen, va_arg(va, unsigned long long), false, base, precision, width, flags); - f880: 4c19 ldr r4, [pc, #100] ; (f8e8 <_vsnprintf.constprop.0+0x2cc>) - f882: 910a str r1, [sp, #40] ; 0x28 - f884: 464b mov r3, r9 - f886: 462a mov r2, r5 - f888: 4658 mov r0, fp - f88a: 47a0 blx r4 - idx = _ntoa_long(out, buffer, idx, maxlen, value, false, base, precision, width, flags); - f88c: 990a ldr r1, [sp, #40] ; 0x28 - f88e: 4605 mov r5, r0 - break; - f890: 4656 mov r6, sl - f892: e6d0 b.n f636 <_vsnprintf.constprop.0+0x1a> - flags |= FLAGS_UPPERCASE; - f894: f043 0320 orr.w r3, r3, #32 - base = 16U; - f898: 2210 movs r2, #16 - f89a: e000 b.n f89e <_vsnprintf.constprop.0+0x282> - switch(*format) { - f89c: 2202 movs r2, #2 - flags &= ~(FLAGS_PLUS | FLAGS_SPACE); - f89e: f023 030c bic.w r3, r3, #12 - f8a2: e7c7 b.n f834 <_vsnprintf.constprop.0+0x218> - else if(flags & FLAGS_LONG) { - f8a4: 05d8 lsls r0, r3, #23 - idx = _ntoa_long(out, buffer, idx, maxlen, va_arg(va, unsigned long), false, base, precision, width, flags); - f8a6: f106 0a04 add.w sl, r6, #4 - else if(flags & FLAGS_LONG) { - f8aa: d501 bpl.n f8b0 <_vsnprintf.constprop.0+0x294> - int) : va_arg(va, int); - f8ac: 6830 ldr r0, [r6, #0] - f8ae: e002 b.n f8b6 <_vsnprintf.constprop.0+0x29a> - const int value = (flags & FLAGS_CHAR) ? (char)va_arg(va, int) : (flags & FLAGS_SHORT) ? (short int)va_arg(va, - f8b0: 0658 lsls r0, r3, #25 - f8b2: d50c bpl.n f8ce <_vsnprintf.constprop.0+0x2b2> - f8b4: 7830 ldrb r0, [r6, #0] - idx = _ntoa_long(out, buffer, idx, maxlen, (unsigned int)(value > 0 ? value : 0 - value), value < 0, base, precision, - f8b6: e9cd 2402 strd r2, r4, [sp, #8] - f8ba: e9cd 8304 strd r8, r3, [sp, #16] - f8be: 2800 cmp r0, #0 - f8c0: ea4f 73d0 mov.w r3, r0, lsr #31 - f8c4: 9301 str r3, [sp, #4] - f8c6: bfb8 it lt - f8c8: 4240 neglt r0, r0 - idx = _ntoa_long(out, buffer, idx, maxlen, value, false, base, precision, width, flags); - f8ca: 9000 str r0, [sp, #0] - f8cc: e02d b.n f92a <_vsnprintf.constprop.0+0x30e> - int) : va_arg(va, int); - f8ce: 0618 lsls r0, r3, #24 - f8d0: d5ec bpl.n f8ac <_vsnprintf.constprop.0+0x290> - f8d2: f9b6 0000 ldrsh.w r0, [r6] - f8d6: e7ee b.n f8b6 <_vsnprintf.constprop.0+0x29a> - f8d8: 0000f365 .word 0x0000f365 - f8dc: 0000f36d .word 0x0000f36d - f8e0: 00120821 .word 0x00120821 - f8e4: 0000f4cd .word 0x0000f4cd - f8e8: 0000f555 .word 0x0000f555 - if(flags & FLAGS_LONG_LONG) { - f8ec: f1bc 0f00 cmp.w ip, #0 - f8f0: d00f beq.n f912 <_vsnprintf.constprop.0+0x2f6> - idx = _ntoa_long_long(out, buffer, idx, maxlen, va_arg(va, unsigned long long), false, base, precision, width, flags); - f8f2: e9cd 8307 strd r8, r3, [sp, #28] - f8f6: 2300 movs r3, #0 - f8f8: e9cd 2304 strd r2, r3, [sp, #16] - f8fc: f106 0a07 add.w sl, r6, #7 - f900: f02a 0a07 bic.w sl, sl, #7 - f904: 9406 str r4, [sp, #24] - f906: 9302 str r3, [sp, #8] - f908: e8fa 2302 ldrd r2, r3, [sl], #8 - f90c: e9cd 2300 strd r2, r3, [sp] - f910: e7b6 b.n f880 <_vsnprintf.constprop.0+0x264> - else if(flags & FLAGS_LONG) { - f912: 05d8 lsls r0, r3, #23 - idx = _ntoa_long(out, buffer, idx, maxlen, va_arg(va, unsigned long), false, base, precision, width, flags); - f914: f106 0a04 add.w sl, r6, #4 - else if(flags & FLAGS_LONG) { - f918: d50e bpl.n f938 <_vsnprintf.constprop.0+0x31c> - idx = _ntoa_long(out, buffer, idx, maxlen, va_arg(va, unsigned long), false, base, precision, width, flags); - f91a: e9cd 8304 strd r8, r3, [sp, #16] - f91e: e9cd 2402 strd r2, r4, [sp, #8] - f922: f8cd c004 str.w ip, [sp, #4] - f926: 6833 ldr r3, [r6, #0] - f928: 9300 str r3, [sp, #0] - idx = _ntoa_long(out, buffer, idx, maxlen, value, false, base, precision, width, flags); - f92a: 4c60 ldr r4, [pc, #384] ; (faac <_vsnprintf.constprop.0+0x490>) - f92c: 910a str r1, [sp, #40] ; 0x28 - f92e: 464b mov r3, r9 - f930: 462a mov r2, r5 - f932: 4658 mov r0, fp - f934: 47a0 blx r4 - f936: e7a9 b.n f88c <_vsnprintf.constprop.0+0x270> - unsigned int) : (flags & FLAGS_SHORT) ? (unsigned short int)va_arg(va, unsigned int) : va_arg(va, unsigned int); - f938: 0658 lsls r0, r3, #25 - f93a: d507 bpl.n f94c <_vsnprintf.constprop.0+0x330> - f93c: 7830 ldrb r0, [r6, #0] - idx = _ntoa_long(out, buffer, idx, maxlen, value, false, base, precision, width, flags); - f93e: e9cd 8304 strd r8, r3, [sp, #16] - f942: 2300 movs r3, #0 - f944: e9cd 2402 strd r2, r4, [sp, #8] - f948: 9301 str r3, [sp, #4] - f94a: e7be b.n f8ca <_vsnprintf.constprop.0+0x2ae> - f94c: 6830 ldr r0, [r6, #0] - unsigned int) : (flags & FLAGS_SHORT) ? (unsigned short int)va_arg(va, unsigned int) : va_arg(va, unsigned int); - f94e: f013 0f80 tst.w r3, #128 ; 0x80 - f952: bf18 it ne - f954: b280 uxthne r0, r0 - f956: e7f2 b.n f93e <_vsnprintf.constprop.0+0x322> - if(!(flags & FLAGS_LEFT)) { - f958: f013 0402 ands.w r4, r3, #2 - f95c: d026 beq.n f9ac <_vsnprintf.constprop.0+0x390> - unsigned int l = 1U; - f95e: f04f 0a01 mov.w sl, #1 - out((char)va_arg(va, int), buffer, idx++, maxlen); - f962: 1c6b adds r3, r5, #1 - f964: 930a str r3, [sp, #40] ; 0x28 - f966: 910b str r1, [sp, #44] ; 0x2c - f968: f816 0b04 ldrb.w r0, [r6], #4 - f96c: 464b mov r3, r9 - f96e: 462a mov r2, r5 - f970: 47d8 blx fp - if(flags & FLAGS_LEFT) { - f972: 990b ldr r1, [sp, #44] ; 0x2c - f974: b374 cbz r4, f9d4 <_vsnprintf.constprop.0+0x3b8> - out((char)va_arg(va, int), buffer, idx++, maxlen); - f976: 9a0a ldr r2, [sp, #40] ; 0x28 - f978: 4654 mov r4, sl - f97a: e021 b.n f9c0 <_vsnprintf.constprop.0+0x3a4> - out(' ', buffer, idx++, maxlen); - f97c: 910a str r1, [sp, #40] ; 0x28 - f97e: 464b mov r3, r9 - f980: 2020 movs r0, #32 - f982: 47d8 blx fp - f984: 990a ldr r1, [sp, #40] ; 0x28 - f986: eb05 020a add.w r2, r5, sl - while(l++ < width) { - f98a: f10a 0a01 add.w sl, sl, #1 - f98e: 45c2 cmp sl, r8 - f990: d3f4 bcc.n f97c <_vsnprintf.constprop.0+0x360> - f992: f1b8 0f00 cmp.w r8, #0 - f996: f108 33ff add.w r3, r8, #4294967295 ; 0xffffffff - f99a: bf08 it eq - f99c: 2300 moveq r3, #0 - f99e: f108 0a01 add.w sl, r8, #1 - f9a2: 441d add r5, r3 - f9a4: bf08 it eq - f9a6: f04f 0a02 moveq.w sl, #2 - f9aa: e7da b.n f962 <_vsnprintf.constprop.0+0x346> - f9ac: 46a2 mov sl, r4 - f9ae: e7ea b.n f986 <_vsnprintf.constprop.0+0x36a> - out(' ', buffer, idx++, maxlen); - f9b0: 910b str r1, [sp, #44] ; 0x2c - f9b2: 464b mov r3, r9 - f9b4: 2020 movs r0, #32 - f9b6: 1c55 adds r5, r2, #1 - f9b8: 47d8 blx fp - f9ba: 990b ldr r1, [sp, #44] ; 0x2c - f9bc: 3401 adds r4, #1 - f9be: 462a mov r2, r5 - while(l++ < width) { - f9c0: 4544 cmp r4, r8 - f9c2: d3f5 bcc.n f9b0 <_vsnprintf.constprop.0+0x394> - f9c4: 9a0a ldr r2, [sp, #40] ; 0x28 - f9c6: eba8 030a sub.w r3, r8, sl - f9ca: 45d0 cmp r8, sl - f9cc: bf38 it cc - f9ce: 2300 movcc r3, #0 - f9d0: 441a add r2, r3 - f9d2: 920a str r2, [sp, #40] ; 0x28 - break; - f9d4: 9d0a ldr r5, [sp, #40] ; 0x28 - f9d6: e62e b.n f636 <_vsnprintf.constprop.0+0x1a> - const char * p = va_arg(va, char *); - f9d8: 4632 mov r2, r6 - unsigned int l = _strnlen_s(p, precision ? precision : (size_t) -1); - f9da: 2c00 cmp r4, #0 - const char * p = va_arg(va, char *); - f9dc: f852 6b04 ldr.w r6, [r2], #4 - f9e0: 920a str r2, [sp, #40] ; 0x28 - unsigned int l = _strnlen_s(p, precision ? precision : (size_t) -1); - f9e2: bf14 ite ne - f9e4: 4620 movne r0, r4 - f9e6: f04f 30ff moveq.w r0, #4294967295 ; 0xffffffff - f9ea: 4430 add r0, r6 - f9ec: 4632 mov r2, r6 - for(s = str; *s && maxsize--; ++s); - f9ee: f892 c000 ldrb.w ip, [r2] - f9f2: f1bc 0f00 cmp.w ip, #0 - f9f6: d001 beq.n f9fc <_vsnprintf.constprop.0+0x3e0> - f9f8: 4290 cmp r0, r2 - f9fa: d111 bne.n fa20 <_vsnprintf.constprop.0+0x404> - return (unsigned int)(s - str); - f9fc: eba2 0a06 sub.w sl, r2, r6 - if(flags & FLAGS_PRECISION) { - fa00: f413 6280 ands.w r2, r3, #1024 ; 0x400 - fa04: 920b str r2, [sp, #44] ; 0x2c - fa06: d002 beq.n fa0e <_vsnprintf.constprop.0+0x3f2> - l = (l < precision ? l : precision); - fa08: 45a2 cmp sl, r4 - fa0a: bf28 it cs - fa0c: 46a2 movcs sl, r4 - if(!(flags & FLAGS_LEFT)) { - fa0e: f013 0302 ands.w r3, r3, #2 - fa12: 930c str r3, [sp, #48] ; 0x30 - fa14: d11c bne.n fa50 <_vsnprintf.constprop.0+0x434> - fa16: ebaa 0305 sub.w r3, sl, r5 - fa1a: 462a mov r2, r5 - fa1c: 930e str r3, [sp, #56] ; 0x38 - fa1e: e009 b.n fa34 <_vsnprintf.constprop.0+0x418> - for(s = str; *s && maxsize--; ++s); - fa20: 3201 adds r2, #1 - fa22: e7e4 b.n f9ee <_vsnprintf.constprop.0+0x3d2> - out(' ', buffer, idx++, maxlen); - fa24: 1c53 adds r3, r2, #1 - fa26: 930d str r3, [sp, #52] ; 0x34 - fa28: 910f str r1, [sp, #60] ; 0x3c - fa2a: 464b mov r3, r9 - fa2c: 2020 movs r0, #32 - fa2e: 47d8 blx fp - fa30: 9a0d ldr r2, [sp, #52] ; 0x34 - fa32: 990f ldr r1, [sp, #60] ; 0x3c - while(l++ < width) { - fa34: 9b0e ldr r3, [sp, #56] ; 0x38 - fa36: 18d3 adds r3, r2, r3 - fa38: 4543 cmp r3, r8 - fa3a: d3f3 bcc.n fa24 <_vsnprintf.constprop.0+0x408> - fa3c: eba8 030a sub.w r3, r8, sl - fa40: 45d0 cmp r8, sl - fa42: bf38 it cc - fa44: 2300 movcc r3, #0 - fa46: f10a 0201 add.w r2, sl, #1 - fa4a: 441d add r5, r3 - fa4c: eb03 0a02 add.w sl, r3, r2 - fa50: 1bab subs r3, r5, r6 - fa52: 930d str r3, [sp, #52] ; 0x34 - fa54: e005 b.n fa62 <_vsnprintf.constprop.0+0x446> - fa56: 461c mov r4, r3 - out(*(p++), buffer, idx++, maxlen); - fa58: 910e str r1, [sp, #56] ; 0x38 - fa5a: 464b mov r3, r9 - fa5c: 462a mov r2, r5 - fa5e: 47d8 blx fp - fa60: 990e ldr r1, [sp, #56] ; 0x38 - fa62: 9b0d ldr r3, [sp, #52] ; 0x34 - fa64: 199d adds r5, r3, r6 - while((*p != 0) && (!(flags & FLAGS_PRECISION) || precision--)) { - fa66: f816 0b01 ldrb.w r0, [r6], #1 - fa6a: b128 cbz r0, fa78 <_vsnprintf.constprop.0+0x45c> - fa6c: 9b0b ldr r3, [sp, #44] ; 0x2c - fa6e: 2b00 cmp r3, #0 - fa70: d0f2 beq.n fa58 <_vsnprintf.constprop.0+0x43c> - fa72: 1e63 subs r3, r4, #1 - fa74: 2c00 cmp r4, #0 - fa76: d1ee bne.n fa56 <_vsnprintf.constprop.0+0x43a> - if(flags & FLAGS_LEFT) { - fa78: 9b0c ldr r3, [sp, #48] ; 0x30 - fa7a: b19b cbz r3, faa4 <_vsnprintf.constprop.0+0x488> - fa7c: 462a mov r2, r5 - fa7e: ebaa 0405 sub.w r4, sl, r5 - fa82: e006 b.n fa92 <_vsnprintf.constprop.0+0x476> - out(' ', buffer, idx++, maxlen); - fa84: 910b str r1, [sp, #44] ; 0x2c - fa86: 464b mov r3, r9 - fa88: 2020 movs r0, #32 - fa8a: 1c56 adds r6, r2, #1 - fa8c: 47d8 blx fp - fa8e: 990b ldr r1, [sp, #44] ; 0x2c - fa90: 4632 mov r2, r6 - while(l++ < width) { - fa92: 18a3 adds r3, r4, r2 - fa94: 4598 cmp r8, r3 - fa96: d8f5 bhi.n fa84 <_vsnprintf.constprop.0+0x468> - fa98: eba8 030a sub.w r3, r8, sl - fa9c: 45d0 cmp r8, sl - fa9e: bf38 it cc - faa0: 2300 movcc r3, #0 - faa2: 441d add r5, r3 - const char * p = va_arg(va, char *); - faa4: 9e0a ldr r6, [sp, #40] ; 0x28 - break; - faa6: e5c6 b.n f636 <_vsnprintf.constprop.0+0x1a> - if(*format == 'x' || *format == 'X') { - faa8: 2208 movs r2, #8 - faaa: e6f8 b.n f89e <_vsnprintf.constprop.0+0x282> - faac: 0000f4cd .word 0x0000f4cd - -0000fab0 : - va_end(va); - return ret; -} - -int lv_vsnprintf(char * buffer, size_t count, const char * format, va_list va) -{ - fab0: b410 push {r4} - return _vsnprintf(_out_buffer, buffer, count, format, va); - fab2: 4c02 ldr r4, [pc, #8] ; (fabc ) - fab4: 46a4 mov ip, r4 -} - fab6: f85d 4b04 ldr.w r4, [sp], #4 - return _vsnprintf(_out_buffer, buffer, count, format, va); - faba: 4760 bx ip - fabc: 0000f61d .word 0x0000f61d - -0000fac0 <_lv_task_core_init>: - -/** - * Init the lv_task module - */ -void _lv_task_core_init(void) -{ - fac0: b508 push {r3, lr} - _lv_ll_init(&LV_GC_ROOT(_lv_task_ll), sizeof(lv_task_t)); - fac2: 4805 ldr r0, [pc, #20] ; (fad8 <_lv_task_core_init+0x18>) - fac4: 4b05 ldr r3, [pc, #20] ; (fadc <_lv_task_core_init+0x1c>) - fac6: 2118 movs r1, #24 - fac8: 4798 blx r3 - - task_list_changed = false; - faca: 4b05 ldr r3, [pc, #20] ; (fae0 <_lv_task_core_init+0x20>) - facc: 2200 movs r2, #0 - face: 701a strb r2, [r3, #0] - * Enable or disable the whole lv_task handling - * @param en: true: lv_task handling is running, false: lv_task handling is suspended - */ -void lv_task_enable(bool en) -{ - lv_task_run = en; - fad0: 2201 movs r2, #1 - fad2: 705a strb r2, [r3, #1] -} - fad4: bd08 pop {r3, pc} - fad6: bf00 nop - fad8: 200035d0 .word 0x200035d0 - fadc: 0000e889 .word 0x0000e889 - fae0: 20005784 .word 0x20005784 - -0000fae4 : -{ - fae4: b5f7 push {r0, r1, r2, r4, r5, r6, r7, lr} - tmp = _lv_ll_get_head(&LV_GC_ROOT(_lv_task_ll)); - fae6: 4b36 ldr r3, [pc, #216] ; (fbc0 ) - fae8: 4836 ldr r0, [pc, #216] ; (fbc4 ) - faea: 4798 blx r3 - if(NULL == tmp) { - faec: 4605 mov r5, r0 - faee: b1e0 cbz r0, fb2a - tmp = _lv_ll_get_next(&LV_GC_ROOT(_lv_task_ll), tmp); - faf0: 4e34 ldr r6, [pc, #208] ; (fbc4 ) - faf2: 4c35 ldr r4, [pc, #212] ; (fbc8 ) - if(tmp->prio <= DEF_PRIO) { - faf4: 7d2b ldrb r3, [r5, #20] - faf6: f003 0307 and.w r3, r3, #7 - fafa: 2b03 cmp r3, #3 - new_task = _lv_ll_ins_prev(&LV_GC_ROOT(_lv_task_ll), tmp); - fafc: 4629 mov r1, r5 - if(tmp->prio <= DEF_PRIO) { - fafe: d82e bhi.n fb5e - new_task = _lv_ll_ins_prev(&LV_GC_ROOT(_lv_task_ll), tmp); - fb00: 4b32 ldr r3, [pc, #200] ; (fbcc ) - fb02: 4830 ldr r0, [pc, #192] ; (fbc4 ) - fb04: 4798 blx r3 - LV_ASSERT_MEM(new_task); - fb06: 4b32 ldr r3, [pc, #200] ; (fbd0 ) - new_task = _lv_ll_ins_prev(&LV_GC_ROOT(_lv_task_ll), tmp); - fb08: 4604 mov r4, r0 - LV_ASSERT_MEM(new_task); - fb0a: 4798 blx r3 - fb0c: 4605 mov r5, r0 - fb0e: bb08 cbnz r0, fb54 - fb10: 4b30 ldr r3, [pc, #192] ; (fbd4 ) - fb12: 4931 ldr r1, [pc, #196] ; (fbd8 ) - fb14: 9300 str r3, [sp, #0] - fb16: 22db movs r2, #219 ; 0xdb - fb18: 2003 movs r0, #3 - fb1a: 4e30 ldr r6, [pc, #192] ; (fbdc ) - fb1c: 47b0 blx r6 - fb1e: 4830 ldr r0, [pc, #192] ; (fbe0 ) - fb20: 4930 ldr r1, [pc, #192] ; (fbe4 ) - fb22: 4622 mov r2, r4 - fb24: 462b mov r3, r5 - fb26: 4788 blx r1 - fb28: e7fe b.n fb28 - new_task = _lv_ll_ins_head(&LV_GC_ROOT(_lv_task_ll)); - fb2a: 4b2f ldr r3, [pc, #188] ; (fbe8 ) - fb2c: 4825 ldr r0, [pc, #148] ; (fbc4 ) - fb2e: 4798 blx r3 - LV_ASSERT_MEM(new_task); - fb30: 4b27 ldr r3, [pc, #156] ; (fbd0 ) - new_task = _lv_ll_ins_head(&LV_GC_ROOT(_lv_task_ll)); - fb32: 4604 mov r4, r0 - LV_ASSERT_MEM(new_task); - fb34: 4798 blx r3 - fb36: 4605 mov r5, r0 - fb38: b960 cbnz r0, fb54 - fb3a: 4b26 ldr r3, [pc, #152] ; (fbd4 ) - fb3c: 4926 ldr r1, [pc, #152] ; (fbd8 ) - fb3e: 9300 str r3, [sp, #0] - fb40: 22d3 movs r2, #211 ; 0xd3 - fb42: 2003 movs r0, #3 - fb44: 4e25 ldr r6, [pc, #148] ; (fbdc ) - fb46: 47b0 blx r6 - fb48: 4825 ldr r0, [pc, #148] ; (fbe0 ) - fb4a: 4926 ldr r1, [pc, #152] ; (fbe4 ) - fb4c: 4622 mov r2, r4 - fb4e: 462b mov r3, r5 - fb50: 4788 blx r1 - fb52: e7fe b.n fb52 - if(new_task == NULL) return NULL; - fb54: b9ec cbnz r4, fb92 - fb56: 2400 movs r4, #0 -} - fb58: 4620 mov r0, r4 - fb5a: b003 add sp, #12 - fb5c: bdf0 pop {r4, r5, r6, r7, pc} - tmp = _lv_ll_get_next(&LV_GC_ROOT(_lv_task_ll), tmp); - fb5e: 4630 mov r0, r6 - fb60: 47a0 blx r4 - } while(tmp != NULL); - fb62: 4605 mov r5, r0 - fb64: 2800 cmp r0, #0 - fb66: d1c5 bne.n faf4 - new_task = _lv_ll_ins_tail(&LV_GC_ROOT(_lv_task_ll)); - fb68: 4b20 ldr r3, [pc, #128] ; (fbec ) - fb6a: 4816 ldr r0, [pc, #88] ; (fbc4 ) - fb6c: 4798 blx r3 - LV_ASSERT_MEM(new_task); - fb6e: 4b18 ldr r3, [pc, #96] ; (fbd0 ) - new_task = _lv_ll_ins_tail(&LV_GC_ROOT(_lv_task_ll)); - fb70: 4604 mov r4, r0 - LV_ASSERT_MEM(new_task); - fb72: 4798 blx r3 - fb74: 2800 cmp r0, #0 - fb76: d1ed bne.n fb54 - fb78: 4b16 ldr r3, [pc, #88] ; (fbd4 ) - fb7a: 4917 ldr r1, [pc, #92] ; (fbd8 ) - fb7c: 9300 str r3, [sp, #0] - fb7e: 22e5 movs r2, #229 ; 0xe5 - fb80: 2003 movs r0, #3 - fb82: 4e16 ldr r6, [pc, #88] ; (fbdc ) - fb84: 47b0 blx r6 - fb86: 4816 ldr r0, [pc, #88] ; (fbe0 ) - fb88: 4916 ldr r1, [pc, #88] ; (fbe4 ) - fb8a: 4622 mov r2, r4 - fb8c: 462b mov r3, r5 - fb8e: 4788 blx r1 - fb90: e7fe b.n fb90 - new_task->period = DEF_PERIOD; - fb92: f44f 73fa mov.w r3, #500 ; 0x1f4 - fb96: 6023 str r3, [r4, #0] - new_task->prio = DEF_PRIO; - fb98: 7d23 ldrb r3, [r4, #20] - task_list_changed = true; - fb9a: 4d15 ldr r5, [pc, #84] ; (fbf0 ) - new_task->prio = DEF_PRIO; - fb9c: 2203 movs r2, #3 - fb9e: f362 0302 bfi r3, r2, #0, #3 - new_task->task_cb = NULL; - fba2: 2700 movs r7, #0 - new_task->prio = DEF_PRIO; - fba4: 7523 strb r3, [r4, #20] - new_task->repeat_count = -1; - fba6: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff - task_list_changed = true; - fbaa: 2601 movs r6, #1 - new_task->repeat_count = -1; - fbac: 6123 str r3, [r4, #16] - new_task->task_cb = NULL; - fbae: 60a7 str r7, [r4, #8] - new_task->last_run = lv_tick_get(); - fbb0: 4b10 ldr r3, [pc, #64] ; (fbf4 ) - task_list_changed = true; - fbb2: 702e strb r6, [r5, #0] - new_task->last_run = lv_tick_get(); - fbb4: 4798 blx r3 - new_task->user_data = NULL; - fbb6: 60e7 str r7, [r4, #12] - new_task->last_run = lv_tick_get(); - fbb8: 6060 str r0, [r4, #4] - task_created = true; - fbba: 70ae strb r6, [r5, #2] - return new_task; - fbbc: e7cc b.n fb58 - fbbe: bf00 nop - fbc0: 0000e92d .word 0x0000e92d - fbc4: 200035d0 .word 0x200035d0 - fbc8: 0000e939 .word 0x0000e939 - fbcc: 0000e979 .word 0x0000e979 - fbd0: 00001a65 .word 0x00001a65 - fbd4: 0002bc46 .word 0x0002bc46 - fbd8: 0002bc16 .word 0x0002bc16 - fbdc: 0000eb79 .word 0x0000eb79 - fbe0: 00026842 .word 0x00026842 - fbe4: 00001a6d .word 0x00001a6d - fbe8: 0000e89d .word 0x0000e89d - fbec: 0000e8e5 .word 0x0000e8e5 - fbf0: 20005784 .word 0x20005784 - fbf4: 0000dccd .word 0x0000dccd - -0000fbf8 : -{ - fbf8: b570 push {r4, r5, r6, lr} - _lv_ll_remove(&LV_GC_ROOT(_lv_task_ll), task); - fbfa: 4601 mov r1, r0 -{ - fbfc: 4604 mov r4, r0 - _lv_ll_remove(&LV_GC_ROOT(_lv_task_ll), task); - fbfe: 4b07 ldr r3, [pc, #28] ; (fc1c ) - fc00: 4807 ldr r0, [pc, #28] ; (fc20 ) - task_list_changed = true; - fc02: 4d08 ldr r5, [pc, #32] ; (fc24 ) - _lv_ll_remove(&LV_GC_ROOT(_lv_task_ll), task); - fc04: 4798 blx r3 - task_list_changed = true; - fc06: 2601 movs r6, #1 - lv_mem_free(task); - fc08: 4b07 ldr r3, [pc, #28] ; (fc28 ) - task_list_changed = true; - fc0a: 702e strb r6, [r5, #0] - lv_mem_free(task); - fc0c: 4620 mov r0, r4 - fc0e: 4798 blx r3 - if(LV_GC_ROOT(_lv_task_act) == task) task_deleted = true; /*The active task was deleted*/ - fc10: 4b06 ldr r3, [pc, #24] ; (fc2c ) - fc12: 681b ldr r3, [r3, #0] - fc14: 42a3 cmp r3, r4 - fc16: bf08 it eq - fc18: 70ee strbeq r6, [r5, #3] -} - fc1a: bd70 pop {r4, r5, r6, pc} - fc1c: 0000e9f1 .word 0x0000e9f1 - fc20: 200035d0 .word 0x200035d0 - fc24: 20005784 .word 0x20005784 - fc28: 0000ed75 .word 0x0000ed75 - fc2c: 20003640 .word 0x20003640 - -0000fc30 : - * Execute task if its the priority is appropriate - * @param task pointer to lv_task - * @return true: execute, false: not executed - */ -static bool lv_task_exec(lv_task_t * task) -{ - fc30: b538 push {r3, r4, r5, lr} - * @return the time remaining, or 0 if it needs to be run again - */ -static uint32_t lv_task_time_remaining(lv_task_t * task) -{ - /*Check if at least 'period' time elapsed*/ - uint32_t elp = lv_tick_elaps(task->last_run); - fc32: 4b12 ldr r3, [pc, #72] ; (fc7c ) -{ - fc34: 4604 mov r4, r0 - uint32_t elp = lv_tick_elaps(task->last_run); - fc36: 6840 ldr r0, [r0, #4] - fc38: 4798 blx r3 - if(lv_task_time_remaining(task) == 0) { - fc3a: 6823 ldr r3, [r4, #0] - fc3c: 4298 cmp r0, r3 - fc3e: d31b bcc.n fc78 - task->last_run = lv_tick_get(); - fc40: 4b0f ldr r3, [pc, #60] ; (fc80 ) - task_deleted = false; - fc42: 4d10 ldr r5, [pc, #64] ; (fc84 ) - task->last_run = lv_tick_get(); - fc44: 4798 blx r3 - task_deleted = false; - fc46: 2300 movs r3, #0 - fc48: 70eb strb r3, [r5, #3] - task_created = false; - fc4a: 70ab strb r3, [r5, #2] - if(task->task_cb) task->task_cb(task); - fc4c: 68a3 ldr r3, [r4, #8] - task->last_run = lv_tick_get(); - fc4e: 6060 str r0, [r4, #4] - if(task->task_cb) task->task_cb(task); - fc50: b943 cbnz r3, fc64 - if(task->repeat_count > 0) { - fc52: 6923 ldr r3, [r4, #16] - fc54: 2b00 cmp r3, #0 - fc56: dc0c bgt.n fc72 - if(task->repeat_count == 0) { - fc58: 6923 ldr r3, [r4, #16] - fc5a: b943 cbnz r3, fc6e - lv_task_del(task); - fc5c: 4b0a ldr r3, [pc, #40] ; (fc88 ) - fc5e: 4620 mov r0, r4 - fc60: 4798 blx r3 - fc62: e004 b.n fc6e - if(task->task_cb) task->task_cb(task); - fc64: 4620 mov r0, r4 - fc66: 4798 blx r3 - if(task_deleted == false) { /*The task might be deleted by itself as well*/ - fc68: 78eb ldrb r3, [r5, #3] - fc6a: 2b00 cmp r3, #0 - fc6c: d0f1 beq.n fc52 - lv_task_del(task); - fc6e: 2001 movs r0, #1 -} - fc70: bd38 pop {r3, r4, r5, pc} - task->repeat_count--; - fc72: 3b01 subs r3, #1 - fc74: 6123 str r3, [r4, #16] - fc76: e7ef b.n fc58 - bool exec = false; - fc78: 2000 movs r0, #0 - fc7a: e7f9 b.n fc70 - fc7c: 0000dce1 .word 0x0000dce1 - fc80: 0000dccd .word 0x0000dccd - fc84: 20005784 .word 0x20005784 - fc88: 0000fbf9 .word 0x0000fbf9 - -0000fc8c : -{ - fc8c: e92d 4ff8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr} - if(already_running) return 1; - fc90: f8df b15c ldr.w fp, [pc, #348] ; fdf0 - fc94: f89b 4004 ldrb.w r4, [fp, #4] - fc98: 2001 movs r0, #1 - fc9a: b934 cbnz r4, fcaa - if(lv_task_run == false) { - fc9c: f89b 2001 ldrb.w r2, [fp, #1] - already_running = true; - fca0: f88b 0004 strb.w r0, [fp, #4] - if(lv_task_run == false) { - fca4: b91a cbnz r2, fcae - already_running = false; /*Release mutex*/ - fca6: f88b 2004 strb.w r2, [fp, #4] -} - fcaa: e8bd 8ff8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} - handler_start = lv_tick_get(); - fcae: f8df 8144 ldr.w r8, [pc, #324] ; fdf4 - LV_GC_ROOT(_lv_task_act) = _lv_ll_get_head(&LV_GC_ROOT(_lv_task_ll)); - fcb2: f8df a138 ldr.w sl, [pc, #312] ; fdec - fcb6: f8df 9140 ldr.w r9, [pc, #320] ; fdf8 - handler_start = lv_tick_get(); - fcba: 47c0 blx r8 - fcbc: f8cb 0008 str.w r0, [fp, #8] - task_deleted = false; - fcc0: 2200 movs r2, #0 - LV_GC_ROOT(_lv_task_act) = _lv_ll_get_head(&LV_GC_ROOT(_lv_task_ll)); - fcc2: 4650 mov r0, sl - task_deleted = false; - fcc4: f88b 2003 strb.w r2, [fp, #3] - task_created = false; - fcc8: f88b 2002 strb.w r2, [fp, #2] - LV_GC_ROOT(_lv_task_act) = _lv_ll_get_head(&LV_GC_ROOT(_lv_task_ll)); - fccc: 47c8 blx r9 - fcce: 4d43 ldr r5, [pc, #268] ; (fddc ) - if(lv_task_exec(LV_GC_ROOT(_lv_task_act))) { - fcd0: 4f43 ldr r7, [pc, #268] ; (fde0 ) - LV_GC_ROOT(_lv_task_act) = _lv_ll_get_head(&LV_GC_ROOT(_lv_task_ll)); - fcd2: 6028 str r0, [r5, #0] - while(LV_GC_ROOT(_lv_task_act)) { - fcd4: 6829 ldr r1, [r5, #0] - fcd6: b189 cbz r1, fcfc - next = _lv_ll_get_next(&LV_GC_ROOT(_lv_task_ll), LV_GC_ROOT(_lv_task_act)); - fcd8: 4b42 ldr r3, [pc, #264] ; (fde4 ) - fcda: 4650 mov r0, sl - fcdc: 4798 blx r3 - fcde: 4606 mov r6, r0 - if(((lv_task_t *)LV_GC_ROOT(_lv_task_act))->prio == LV_TASK_PRIO_OFF) { - fce0: 6828 ldr r0, [r5, #0] - fce2: 7d02 ldrb r2, [r0, #20] - fce4: f012 0107 ands.w r1, r2, #7 - fce8: d008 beq.n fcfc - if(LV_GC_ROOT(_lv_task_act) == task_interrupter) { - fcea: 42a0 cmp r0, r4 - fcec: d050 beq.n fd90 - if(((lv_task_t *)LV_GC_ROOT(_lv_task_act))->prio == LV_TASK_PRIO_HIGHEST) { - fcee: 2905 cmp r1, #5 - fcf0: d139 bne.n fd66 - lv_task_exec(LV_GC_ROOT(_lv_task_act)); - fcf2: 47b8 blx r7 - if(task_created || task_deleted) { - fcf4: f89b 2002 ldrb.w r2, [fp, #2] - fcf8: 2a00 cmp r2, #0 - fcfa: d062 beq.n fdc2 - busy_time += lv_tick_elaps(handler_start); - fcfc: 4c3a ldr r4, [pc, #232] ; (fde8 ) - fcfe: f8db 0008 ldr.w r0, [fp, #8] - fd02: 47a0 blx r4 - fd04: f8db 200c ldr.w r2, [fp, #12] - fd08: 4410 add r0, r2 - fd0a: f8cb 000c str.w r0, [fp, #12] - uint32_t idle_period_time = lv_tick_elaps(idle_period_start); - fd0e: f8db 0014 ldr.w r0, [fp, #20] - fd12: 47a0 blx r4 - if(idle_period_time >= IDLE_MEAS_PERIOD) { - fd14: f5b0 7ffa cmp.w r0, #500 ; 0x1f4 - fd18: d316 bcc.n fd48 - idle_last = (uint32_t)((uint32_t)busy_time * 100) / IDLE_MEAS_PERIOD; /*Calculate the busy percentage*/ - fd1a: f8db 200c ldr.w r2, [fp, #12] - fd1e: 2164 movs r1, #100 ; 0x64 - fd20: 434a muls r2, r1 - fd22: f44f 71fa mov.w r1, #500 ; 0x1f4 - fd26: fbb2 f2f1 udiv r2, r2, r1 - fd2a: b2d2 uxtb r2, r2 - idle_last = idle_last > 100 ? 0 : 100 - idle_last; /*But we need idle time*/ - fd2c: 2a64 cmp r2, #100 ; 0x64 - fd2e: bf9a itte ls - fd30: f1c2 0264 rsbls r2, r2, #100 ; 0x64 - fd34: b2d2 uxtbls r2, r2 - fd36: 2200 movhi r2, #0 - fd38: f88b 2010 strb.w r2, [fp, #16] - busy_time = 0; - fd3c: 2200 movs r2, #0 - fd3e: f8cb 200c str.w r2, [fp, #12] - idle_period_start = lv_tick_get(); - fd42: 47c0 blx r8 - fd44: f8cb 0014 str.w r0, [fp, #20] - time_till_next = LV_NO_TASK_READY; - fd48: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff - next = _lv_ll_get_head(&LV_GC_ROOT(_lv_task_ll)); - fd4c: 4827 ldr r0, [pc, #156] ; (fdec ) - time_till_next = LV_NO_TASK_READY; - fd4e: f8cb 2018 str.w r2, [fp, #24] - next = _lv_ll_get_head(&LV_GC_ROOT(_lv_task_ll)); - fd52: 47c8 blx r9 - next = _lv_ll_get_next(&LV_GC_ROOT(_lv_task_ll), next); /*Find the next task*/ - fd54: 4e25 ldr r6, [pc, #148] ; (fdec ) - fd56: 4f23 ldr r7, [pc, #140] ; (fde4 ) - next = _lv_ll_get_head(&LV_GC_ROOT(_lv_task_ll)); - fd58: 4605 mov r5, r0 - while(next) { - fd5a: b9e5 cbnz r5, fd96 - return time_till_next; - fd5c: f8db 0018 ldr.w r0, [fp, #24] - already_running = false; /*Release the mutex*/ - fd60: f88b 5004 strb.w r5, [fp, #4] - return time_till_next; - fd64: e7a1 b.n fcaa - else if(task_interrupter) { - fd66: b134 cbz r4, fd76 - if(((lv_task_t *)LV_GC_ROOT(_lv_task_act))->prio > task_interrupter->prio) { - fd68: 7d21 ldrb r1, [r4, #20] - fd6a: f002 0207 and.w r2, r2, #7 - fd6e: f001 0107 and.w r1, r1, #7 - fd72: 428a cmp r2, r1 - fd74: d9be bls.n fcf4 - if(lv_task_exec(LV_GC_ROOT(_lv_task_act))) { - fd76: 47b8 blx r7 - fd78: 2800 cmp r0, #0 - fd7a: d0bb beq.n fcf4 - if(!task_created && !task_deleted) { - fd7c: f89b 2002 ldrb.w r2, [fp, #2] - fd80: 2a00 cmp r2, #0 - fd82: d1bb bne.n fcfc - fd84: f89b 2003 ldrb.w r2, [fp, #3] - fd88: 2a00 cmp r2, #0 - fd8a: d1b7 bne.n fcfc - task_interrupter = LV_GC_ROOT(_lv_task_act); /*Check all tasks again from the highest priority */ - fd8c: 682c ldr r4, [r5, #0] - } while(!end_flag); - fd8e: e797 b.n fcc0 - task_interrupter = NULL; /*From this point only task after the interrupter comes, so - fd90: 2400 movs r4, #0 - LV_GC_ROOT(_lv_task_act) = next; - fd92: 602e str r6, [r5, #0] - fd94: e79e b.n fcd4 - if(next->prio != LV_TASK_PRIO_OFF) { - fd96: 7d2a ldrb r2, [r5, #20] - fd98: 0753 lsls r3, r2, #29 - fd9a: d00d beq.n fdb8 - uint32_t elp = lv_tick_elaps(task->last_run); - fd9c: 6868 ldr r0, [r5, #4] - fd9e: 47a0 blx r4 - if(elp >= task->period) - fda0: 682a ldr r2, [r5, #0] - fda2: 4290 cmp r0, r2 - return 0; - return task->period - elp; - fda4: bf38 it cc - fda6: 1a10 subcc r0, r2, r0 - if(delay < time_till_next) - fda8: f8db 2018 ldr.w r2, [fp, #24] - return 0; - fdac: bf28 it cs - fdae: 2000 movcs r0, #0 - if(delay < time_till_next) - fdb0: 4282 cmp r2, r0 - time_till_next = delay; - fdb2: bf88 it hi - fdb4: f8cb 0018 strhi.w r0, [fp, #24] - next = _lv_ll_get_next(&LV_GC_ROOT(_lv_task_ll), next); /*Find the next task*/ - fdb8: 4629 mov r1, r5 - fdba: 4630 mov r0, r6 - fdbc: 47b8 blx r7 - fdbe: 4605 mov r5, r0 - fdc0: e7cb b.n fd5a - if(task_created || task_deleted) { - fdc2: f89b 2003 ldrb.w r2, [fp, #3] - fdc6: 2a00 cmp r2, #0 - fdc8: d198 bne.n fcfc - if(task_list_changed) { - fdca: f89b 1000 ldrb.w r1, [fp] - fdce: 2900 cmp r1, #0 - fdd0: d0df beq.n fd92 - task_list_changed = false; - fdd2: f88b 2000 strb.w r2, [fp] - task_interrupter = NULL; - fdd6: 4614 mov r4, r2 - fdd8: e772 b.n fcc0 - fdda: bf00 nop - fddc: 20003640 .word 0x20003640 - fde0: 0000fc31 .word 0x0000fc31 - fde4: 0000e939 .word 0x0000e939 - fde8: 0000dce1 .word 0x0000dce1 - fdec: 200035d0 .word 0x200035d0 - fdf0: 20005784 .word 0x20005784 - fdf4: 0000dccd .word 0x0000dccd - fdf8: 0000e92d .word 0x0000e92d - -0000fdfc : -{ - fdfc: b5f8 push {r3, r4, r5, r6, r7, lr} - if(task->prio == prio) return; - fdfe: 7d03 ldrb r3, [r0, #20] - fe00: f003 0307 and.w r3, r3, #7 - fe04: 428b cmp r3, r1 -{ - fe06: 4604 mov r4, r0 - fe08: 460d mov r5, r1 - if(task->prio == prio) return; - fe0a: d018 beq.n fe3e - _LV_LL_READ(LV_GC_ROOT(_lv_task_ll), i) { - fe0c: 480f ldr r0, [pc, #60] ; (fe4c ) - fe0e: 4b10 ldr r3, [pc, #64] ; (fe50 ) - fe10: 4e0e ldr r6, [pc, #56] ; (fe4c ) - fe12: 4f10 ldr r7, [pc, #64] ; (fe54 ) - fe14: 4798 blx r3 - fe16: 4602 mov r2, r0 - fe18: b132 cbz r2, fe28 - if(i->prio <= prio) { - fe1a: 7d13 ldrb r3, [r2, #20] - fe1c: f003 0307 and.w r3, r3, #7 - fe20: 429d cmp r5, r3 - fe22: db0d blt.n fe40 - if(i != task) _lv_ll_move_before(&LV_GC_ROOT(_lv_task_ll), task, i); - fe24: 42a2 cmp r2, r4 - fe26: d003 beq.n fe30 - _lv_ll_move_before(&LV_GC_ROOT(_lv_task_ll), task, NULL); - fe28: 4808 ldr r0, [pc, #32] ; (fe4c ) - fe2a: 4b0b ldr r3, [pc, #44] ; (fe58 ) - fe2c: 4621 mov r1, r4 - fe2e: 4798 blx r3 - task_list_changed = true; - fe30: 4b0a ldr r3, [pc, #40] ; (fe5c ) - fe32: 2201 movs r2, #1 - fe34: 701a strb r2, [r3, #0] - task->prio = prio; - fe36: 7d23 ldrb r3, [r4, #20] - fe38: f365 0302 bfi r3, r5, #0, #3 - fe3c: 7523 strb r3, [r4, #20] -} - fe3e: bdf8 pop {r3, r4, r5, r6, r7, pc} - _LV_LL_READ(LV_GC_ROOT(_lv_task_ll), i) { - fe40: 4611 mov r1, r2 - fe42: 4630 mov r0, r6 - fe44: 47b8 blx r7 - fe46: 4602 mov r2, r0 - fe48: e7e6 b.n fe18 - fe4a: bf00 nop - fe4c: 200035d0 .word 0x200035d0 - fe50: 0000e92d .word 0x0000e92d - fe54: 0000e939 .word 0x0000e939 - fe58: 0000eae1 .word 0x0000eae1 - fe5c: 20005784 .word 0x20005784 - -0000fe60 : -{ - fe60: e92d 41ff stmdb sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, lr} - fe64: 461e mov r6, r3 - lv_task_t * new_task = lv_task_create_basic(); - fe66: 4b12 ldr r3, [pc, #72] ; (feb0 ) -{ - fe68: 9203 str r2, [sp, #12] - fe6a: 460f mov r7, r1 - fe6c: 4680 mov r8, r0 - lv_task_t * new_task = lv_task_create_basic(); - fe6e: 4798 blx r3 - LV_ASSERT_MEM(new_task); - fe70: 4b10 ldr r3, [pc, #64] ; (feb4 ) - lv_task_t * new_task = lv_task_create_basic(); - fe72: 4604 mov r4, r0 - LV_ASSERT_MEM(new_task); - fe74: 4798 blx r3 - fe76: 9903 ldr r1, [sp, #12] - fe78: 4605 mov r5, r0 - fe7a: b968 cbnz r0, fe98 - fe7c: 4b0e ldr r3, [pc, #56] ; (feb8 ) - fe7e: 490f ldr r1, [pc, #60] ; (febc ) - fe80: 9300 str r3, [sp, #0] - fe82: f44f 7283 mov.w r2, #262 ; 0x106 - fe86: 2003 movs r0, #3 - fe88: 4e0d ldr r6, [pc, #52] ; (fec0 ) - fe8a: 47b0 blx r6 - fe8c: 480d ldr r0, [pc, #52] ; (fec4 ) - fe8e: 490e ldr r1, [pc, #56] ; (fec8 ) - fe90: 4622 mov r2, r4 - fe92: 462b mov r3, r5 - fe94: 4788 blx r1 - fe96: e7fe b.n fe96 - if(new_task == NULL) return NULL; - fe98: b134 cbz r4, fea8 - lv_task_set_prio(new_task, prio); - fe9a: 4b0c ldr r3, [pc, #48] ; (fecc ) - task->task_cb = task_cb; - fe9c: f8c4 8008 str.w r8, [r4, #8] - task->period = period; - fea0: 6027 str r7, [r4, #0] - lv_task_set_prio(new_task, prio); - fea2: 4620 mov r0, r4 - fea4: 4798 blx r3 - new_task->user_data = user_data; - fea6: 60e6 str r6, [r4, #12] -} - fea8: 4620 mov r0, r4 - feaa: b004 add sp, #16 - feac: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} - feb0: 0000fae5 .word 0x0000fae5 - feb4: 00001a65 .word 0x00001a65 - feb8: 0002bc5b .word 0x0002bc5b - febc: 0002bc16 .word 0x0002bc16 - fec0: 0000eb79 .word 0x0000eb79 - fec4: 00026842 .word 0x00026842 - fec8: 00001a6d .word 0x00001a6d - fecc: 0000fdfd .word 0x0000fdfd - -0000fed0 : -{ - fed0: b510 push {r4, lr} - task->last_run = lv_tick_get() - task->period - 1; - fed2: 4b04 ldr r3, [pc, #16] ; (fee4 ) -{ - fed4: 4604 mov r4, r0 - task->last_run = lv_tick_get() - task->period - 1; - fed6: 4798 blx r3 - fed8: 6823 ldr r3, [r4, #0] - feda: 1ac3 subs r3, r0, r3 - fedc: 3b01 subs r3, #1 - fede: 6063 str r3, [r4, #4] -} - fee0: bd10 pop {r4, pc} - fee2: bf00 nop - fee4: 0000dccd .word 0x0000dccd - -0000fee8 : - * @param str pointer to a character in a string - * @return length of the UTF-8 character (1,2,3 or 4). O on invalid code - */ -static uint8_t lv_txt_utf8_size(const char * str) -{ - if((str[0] & 0x80) == 0) - fee8: f990 2000 ldrsb.w r2, [r0] - feec: 7803 ldrb r3, [r0, #0] - feee: 2a00 cmp r2, #0 - fef0: da0f bge.n ff12 - return 1; - else if((str[0] & 0xE0) == 0xC0) - fef2: f003 02e0 and.w r2, r3, #224 ; 0xe0 - fef6: 2ac0 cmp r2, #192 ; 0xc0 - fef8: d00d beq.n ff16 - return 2; - else if((str[0] & 0xF0) == 0xE0) - fefa: f003 02f0 and.w r2, r3, #240 ; 0xf0 - fefe: 2ae0 cmp r2, #224 ; 0xe0 - ff00: d00b beq.n ff1a - return 3; - else if((str[0] & 0xF8) == 0xF0) - ff02: f003 00f8 and.w r0, r3, #248 ; 0xf8 - ff06: f1a0 03f0 sub.w r3, r0, #240 ; 0xf0 - ff0a: 4258 negs r0, r3 - ff0c: 4158 adcs r0, r3 - ff0e: 0080 lsls r0, r0, #2 - ff10: 4770 bx lr - return 1; - ff12: 2001 movs r0, #1 - ff14: 4770 bx lr - return 2; - ff16: 2002 movs r0, #2 - ff18: 4770 bx lr - return 3; - ff1a: 2003 movs r0, #3 - return 4; - return 0; /*If the char was invalid tell it's 1 byte long*/ -} - ff1c: 4770 bx lr - -0000ff1e : - * After call it will point to the next UTF-8 char in 'txt'. - * NULL to use txt[0] as index - * @return the decoded Unicode character or 0 on invalid UTF-8 code - */ -static uint32_t lv_txt_utf8_next(const char * txt, uint32_t * i) -{ - ff1e: b573 push {r0, r1, r4, r5, r6, lr} - * */ - - uint32_t result = 0; - - /*Dummy 'i' pointer is required*/ - uint32_t i_tmp = 0; - ff20: 2300 movs r3, #0 - ff22: 9301 str r3, [sp, #4] - if(i == NULL) i = &i_tmp; - ff24: b901 cbnz r1, ff28 - ff26: a901 add r1, sp, #4 - - /*Normal ASCII*/ - if((txt[*i] & 0x80) == 0) { - ff28: 680a ldr r2, [r1, #0] - ff2a: 5685 ldrsb r5, [r0, r2] - ff2c: 5c83 ldrb r3, [r0, r2] - ff2e: 2d00 cmp r5, #0 - result = txt[*i]; - (*i)++; - ff30: f102 0401 add.w r4, r2, #1 - if((txt[*i] & 0x80) == 0) { - ff34: db03 blt.n ff3e - result = txt[*i]; - ff36: 4618 mov r0, r3 - (*i)++; - ff38: 600c str r4, [r1, #0] - else { - (*i)++; /*Not UTF-8 char. Go the next.*/ - } - } - return result; -} - ff3a: b002 add sp, #8 - ff3c: bd70 pop {r4, r5, r6, pc} - if((txt[*i] & 0xE0) == 0xC0) { - ff3e: f003 05e0 and.w r5, r3, #224 ; 0xe0 - ff42: 2dc0 cmp r5, #192 ; 0xc0 - ff44: d110 bne.n ff68 - (*i)++; - ff46: 600c str r4, [r1, #0] - if((txt[*i] & 0xC0) != 0x80) return 0; /*Invalid UTF-8 code*/ - ff48: 5d00 ldrb r0, [r0, r4] - ff4a: f000 04c0 and.w r4, r0, #192 ; 0xc0 - ff4e: 2c80 cmp r4, #128 ; 0x80 - ff50: d001 beq.n ff56 - uint32_t result = 0; - ff52: 2000 movs r0, #0 - ff54: e7f1 b.n ff3a - result = (uint32_t)(txt[*i] & 0x1F) << 6; - ff56: 019b lsls r3, r3, #6 - ff58: f403 63f8 and.w r3, r3, #1984 ; 0x7c0 - result += (txt[*i] & 0x3F); - ff5c: f000 003f and.w r0, r0, #63 ; 0x3f - ff60: 4418 add r0, r3 - (*i)++; - ff62: 3202 adds r2, #2 - (*i)++; - ff64: 600a str r2, [r1, #0] - ff66: e7e8 b.n ff3a - else if((txt[*i] & 0xF0) == 0xE0) { - ff68: f003 05f0 and.w r5, r3, #240 ; 0xf0 - ff6c: 2de0 cmp r5, #224 ; 0xe0 - ff6e: d117 bne.n ffa0 - (*i)++; - ff70: 600c str r4, [r1, #0] - if((txt[*i] & 0xC0) != 0x80) return 0; /*Invalid UTF-8 code*/ - ff72: 5d04 ldrb r4, [r0, r4] - ff74: f004 05c0 and.w r5, r4, #192 ; 0xc0 - ff78: 2d80 cmp r5, #128 ; 0x80 - ff7a: d1ea bne.n ff52 - (*i)++; - ff7c: 1c95 adds r5, r2, #2 - ff7e: 600d str r5, [r1, #0] - if((txt[*i] & 0xC0) != 0x80) return 0; /*Invalid UTF-8 code*/ - ff80: 5d45 ldrb r5, [r0, r5] - ff82: f005 00c0 and.w r0, r5, #192 ; 0xc0 - ff86: 2880 cmp r0, #128 ; 0x80 - ff88: d1e3 bne.n ff52 - result = (uint32_t)(txt[*i] & 0x0F) << 12; - ff8a: 0318 lsls r0, r3, #12 - ff8c: b280 uxth r0, r0 - result += (txt[*i] & 0x3F); - ff8e: f005 053f and.w r5, r5, #63 ; 0x3f - result += (uint32_t)(txt[*i] & 0x3F) << 6; - ff92: 01a4 lsls r4, r4, #6 - ff94: 4428 add r0, r5 - ff96: f404 647c and.w r4, r4, #4032 ; 0xfc0 - result += (txt[*i] & 0x3F); - ff9a: 4420 add r0, r4 - (*i)++; - ff9c: 3203 adds r2, #3 - ff9e: e7e1 b.n ff64 - else if((txt[*i] & 0xF8) == 0xF0) { - ffa0: f003 05f8 and.w r5, r3, #248 ; 0xf8 - ffa4: 2df0 cmp r5, #240 ; 0xf0 - (*i)++; - ffa6: 600c str r4, [r1, #0] - else if((txt[*i] & 0xF8) == 0xF0) { - ffa8: d1d3 bne.n ff52 - if((txt[*i] & 0xC0) != 0x80) return 0; /*Invalid UTF-8 code*/ - ffaa: 5d04 ldrb r4, [r0, r4] - ffac: f004 05c0 and.w r5, r4, #192 ; 0xc0 - ffb0: 2d80 cmp r5, #128 ; 0x80 - ffb2: d1ce bne.n ff52 - (*i)++; - ffb4: 1c95 adds r5, r2, #2 - ffb6: 600d str r5, [r1, #0] - if((txt[*i] & 0xC0) != 0x80) return 0; /*Invalid UTF-8 code*/ - ffb8: 5d45 ldrb r5, [r0, r5] - ffba: f005 06c0 and.w r6, r5, #192 ; 0xc0 - ffbe: 2e80 cmp r6, #128 ; 0x80 - ffc0: d1c7 bne.n ff52 - (*i)++; - ffc2: 1cd6 adds r6, r2, #3 - ffc4: 600e str r6, [r1, #0] - if((txt[*i] & 0xC0) != 0x80) return 0; /*Invalid UTF-8 code*/ - ffc6: 5d80 ldrb r0, [r0, r6] - ffc8: f000 06c0 and.w r6, r0, #192 ; 0xc0 - ffcc: 2e80 cmp r6, #128 ; 0x80 - ffce: d1c0 bne.n ff52 - result = (uint32_t)(txt[*i] & 0x07) << 18; - ffd0: 049b lsls r3, r3, #18 - result += (uint32_t)(txt[*i] & 0x3F) << 12; - ffd2: 0324 lsls r4, r4, #12 - result += (uint32_t)(txt[*i] & 0x3F) << 6; - ffd4: 01ad lsls r5, r5, #6 - result += txt[*i] & 0x3F; - ffd6: f000 003f and.w r0, r0, #63 ; 0x3f - result = (uint32_t)(txt[*i] & 0x07) << 18; - ffda: f403 13e0 and.w r3, r3, #1835008 ; 0x1c0000 - result += (uint32_t)(txt[*i] & 0x3F) << 12; - ffde: f404 347c and.w r4, r4, #258048 ; 0x3f000 - result += (uint32_t)(txt[*i] & 0x3F) << 6; - ffe2: f405 657c and.w r5, r5, #4032 ; 0xfc0 - result += (uint32_t)(txt[*i] & 0x3F) << 12; - ffe6: 431c orrs r4, r3 - result += txt[*i] & 0x3F; - ffe8: 4405 add r5, r0 - ffea: 1928 adds r0, r5, r4 - (*i)++; - ffec: 3204 adds r2, #4 - ffee: e7b9 b.n ff64 - -0000fff0 : -{ - uint8_t c_size; - uint8_t cnt = 0; - - /*Try to find a !0 long UTF-8 char by stepping one character back*/ - (*i)--; - fff0: 680b ldr r3, [r1, #0] -{ - fff2: b5f7 push {r0, r1, r2, r4, r5, r6, r7, lr} - (*i)--; - fff4: 3b01 subs r3, #1 - do { - if(cnt >= 4) return 0; /*No UTF-8 char found before the initial*/ - - c_size = _lv_txt_encoded_size(&txt[*i]); - fff6: 4f0d ldr r7, [pc, #52] ; (1002c ) - (*i)--; - fff8: 600b str r3, [r1, #0] -{ - fffa: 4606 mov r6, r0 - fffc: 460c mov r4, r1 - (*i)--; - fffe: 2504 movs r5, #4 - c_size = _lv_txt_encoded_size(&txt[*i]); - 10000: 6820 ldr r0, [r4, #0] - 10002: 683b ldr r3, [r7, #0] - 10004: 4430 add r0, r6 - 10006: 4798 blx r3 - if(c_size == 0) { - 10008: 6823 ldr r3, [r4, #0] - 1000a: b948 cbnz r0, 10020 - if(*i != 0) - 1000c: b12b cbz r3, 1001a - if(cnt >= 4) return 0; /*No UTF-8 char found before the initial*/ - 1000e: 3d01 subs r5, #1 - (*i)--; - 10010: 3b01 subs r3, #1 - if(cnt >= 4) return 0; /*No UTF-8 char found before the initial*/ - 10012: f015 05ff ands.w r5, r5, #255 ; 0xff - (*i)--; - 10016: 6023 str r3, [r4, #0] - if(cnt >= 4) return 0; /*No UTF-8 char found before the initial*/ - 10018: d1f2 bne.n 10000 - 1001a: 2000 movs r0, #0 - - uint32_t i_tmp = *i; - uint32_t letter = _lv_txt_encoded_next(txt, &i_tmp); /*Character found, get it*/ - - return letter; -} - 1001c: b003 add sp, #12 - 1001e: bdf0 pop {r4, r5, r6, r7, pc} - uint32_t i_tmp = *i; - 10020: 9301 str r3, [sp, #4] - uint32_t letter = _lv_txt_encoded_next(txt, &i_tmp); /*Character found, get it*/ - 10022: a901 add r1, sp, #4 - 10024: 687b ldr r3, [r7, #4] - 10026: 4630 mov r0, r6 - 10028: 4798 blx r3 - return letter; - 1002a: e7f7 b.n 1001c - 1002c: 20000048 .word 0x20000048 - -00010030 : - * @param txt a '\0' terminated UTF-8 string - * @param utf8_id character index - * @return byte index of the 'utf8_id'th letter - */ -static uint32_t lv_txt_utf8_get_byte_id(const char * txt, uint32_t utf8_id) -{ - 10030: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} - uint32_t i; - uint32_t byte_cnt = 0; - 10034: 2400 movs r4, #0 - for(i = 0; i < utf8_id; i++) { - uint8_t c_size = _lv_txt_encoded_size(&txt[byte_cnt]); - 10036: f8df 8028 ldr.w r8, [pc, #40] ; 10060 -{ - 1003a: 4607 mov r7, r0 - 1003c: 460d mov r5, r1 - for(i = 0; i < utf8_id; i++) { - 1003e: 4626 mov r6, r4 - 10040: 42ae cmp r6, r5 - 10042: d102 bne.n 1004a - byte_cnt += c_size > 0 ? c_size : 1; - } - - return byte_cnt; -} - 10044: 4620 mov r0, r4 - 10046: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} - uint8_t c_size = _lv_txt_encoded_size(&txt[byte_cnt]); - 1004a: 1938 adds r0, r7, r4 - 1004c: f8d8 3000 ldr.w r3, [r8] - 10050: 4798 blx r3 - byte_cnt += c_size > 0 ? c_size : 1; - 10052: 2801 cmp r0, #1 - 10054: bf38 it cc - 10056: 2001 movcc r0, #1 - 10058: fa54 f480 uxtab r4, r4, r0 - for(i = 0; i < utf8_id; i++) { - 1005c: 3601 adds r6, #1 - 1005e: e7ef b.n 10040 - 10060: 20000048 .word 0x20000048 - -00010064 : - * @param txt a '\0' terminated UTF-8 string - * @param byte_id byte index - * @return character index of the letter at 'byte_id'th position - */ -static uint32_t lv_txt_utf8_get_char_id(const char * txt, uint32_t byte_id) -{ - 10064: b5f7 push {r0, r1, r2, r4, r5, r6, r7, lr} - uint32_t i = 0; - 10066: 2400 movs r4, #0 - uint32_t char_cnt = 0; - - while(i < byte_id) { - _lv_txt_encoded_next(txt, &i); /*'i' points to the next letter so use the prev. value*/ - 10068: 4f07 ldr r7, [pc, #28] ; (10088 ) - uint32_t i = 0; - 1006a: 9401 str r4, [sp, #4] -{ - 1006c: 4606 mov r6, r0 - 1006e: 460d mov r5, r1 - while(i < byte_id) { - 10070: 9b01 ldr r3, [sp, #4] - 10072: 42ab cmp r3, r5 - 10074: d302 bcc.n 1007c - char_cnt++; - } - - return char_cnt; -} - 10076: 4620 mov r0, r4 - 10078: b003 add sp, #12 - 1007a: bdf0 pop {r4, r5, r6, r7, pc} - _lv_txt_encoded_next(txt, &i); /*'i' points to the next letter so use the prev. value*/ - 1007c: 687b ldr r3, [r7, #4] - 1007e: a901 add r1, sp, #4 - 10080: 4630 mov r0, r6 - 10082: 4798 blx r3 - char_cnt++; - 10084: 3401 adds r4, #1 - 10086: e7f3 b.n 10070 - 10088: 20000048 .word 0x20000048 - -0001008c : - * E.g.: "ÁBC" is 3 characters (but 4 bytes) - * @param txt a '\0' terminated char string - * @return number of characters - */ -static uint32_t lv_txt_utf8_get_length(const char * txt) -{ - 1008c: b573 push {r0, r1, r4, r5, r6, lr} - uint32_t len = 0; - uint32_t i = 0; - 1008e: 2400 movs r4, #0 - - while(txt[i] != '\0') { - _lv_txt_encoded_next(txt, &i); - 10090: 4e07 ldr r6, [pc, #28] ; (100b0 ) - uint32_t i = 0; - 10092: 9401 str r4, [sp, #4] -{ - 10094: 4605 mov r5, r0 - while(txt[i] != '\0') { - 10096: 9b01 ldr r3, [sp, #4] - 10098: 5ceb ldrb r3, [r5, r3] - 1009a: b913 cbnz r3, 100a2 - len++; - } - - return len; -} - 1009c: 4620 mov r0, r4 - 1009e: b002 add sp, #8 - 100a0: bd70 pop {r4, r5, r6, pc} - _lv_txt_encoded_next(txt, &i); - 100a2: 6873 ldr r3, [r6, #4] - 100a4: a901 add r1, sp, #4 - 100a6: 4628 mov r0, r5 - 100a8: 4798 blx r3 - len++; - 100aa: 3401 adds r4, #1 - 100ac: e7f3 b.n 10096 - 100ae: bf00 nop - 100b0: 20000048 .word 0x20000048 - -000100b4 : - if(letter_uni < 128) return letter_uni; - 100b4: 287f cmp r0, #127 ; 0x7f -{ - 100b6: b082 sub sp, #8 - if(letter_uni < 128) return letter_uni; - 100b8: d911 bls.n 100de - if(letter_uni < 0x0800) { - 100ba: f5b0 6f00 cmp.w r0, #2048 ; 0x800 - 100be: d210 bcs.n 100e2 - bytes[0] = ((letter_uni >> 6) & 0x1F) | 0xC0; - 100c0: 0983 lsrs r3, r0, #6 - 100c2: f063 033f orn r3, r3, #63 ; 0x3f - bytes[1] = ((letter_uni >> 0) & 0x3F) | 0x80; - 100c6: f000 003f and.w r0, r0, #63 ; 0x3f - bytes[0] = ((letter_uni >> 6) & 0x1F) | 0xC0; - 100ca: f88d 3004 strb.w r3, [sp, #4] - bytes[1] = ((letter_uni >> 0) & 0x3F) | 0x80; - 100ce: f060 007f orn r0, r0, #127 ; 0x7f - bytes[2] = 0; - 100d2: 2300 movs r3, #0 - bytes[1] = ((letter_uni >> 0) & 0x3F) | 0x80; - 100d4: f88d 0005 strb.w r0, [sp, #5] - bytes[2] = 0; - 100d8: f8ad 3006 strh.w r3, [sp, #6] - return *res_p; - 100dc: 9801 ldr r0, [sp, #4] -} - 100de: b002 add sp, #8 - 100e0: 4770 bx lr - else if(letter_uni < 0x010000) { - 100e2: f5b0 3f80 cmp.w r0, #65536 ; 0x10000 - 100e6: d214 bcs.n 10112 - bytes[0] = ((letter_uni >> 12) & 0x0F) | 0xE0; - 100e8: 0b03 lsrs r3, r0, #12 - 100ea: f063 031f orn r3, r3, #31 - 100ee: f88d 3004 strb.w r3, [sp, #4] - bytes[1] = ((letter_uni >> 6) & 0x3F) | 0x80; - 100f2: f3c0 1385 ubfx r3, r0, #6, #6 - 100f6: f063 037f orn r3, r3, #127 ; 0x7f - bytes[2] = ((letter_uni >> 0) & 0x3F) | 0x80; - 100fa: f000 003f and.w r0, r0, #63 ; 0x3f - bytes[1] = ((letter_uni >> 6) & 0x3F) | 0x80; - 100fe: f88d 3005 strb.w r3, [sp, #5] - bytes[2] = ((letter_uni >> 0) & 0x3F) | 0x80; - 10102: f060 007f orn r0, r0, #127 ; 0x7f - bytes[3] = 0; - 10106: 2300 movs r3, #0 - bytes[2] = ((letter_uni >> 0) & 0x3F) | 0x80; - 10108: f88d 0006 strb.w r0, [sp, #6] - bytes[3] = 0; - 1010c: f88d 3007 strb.w r3, [sp, #7] - 10110: e7e4 b.n 100dc - else if(letter_uni < 0x110000) { - 10112: f5b0 1f88 cmp.w r0, #1114112 ; 0x110000 - 10116: d2e1 bcs.n 100dc - bytes[0] = ((letter_uni >> 18) & 0x07) | 0xF0; - 10118: 0c83 lsrs r3, r0, #18 - 1011a: f063 030f orn r3, r3, #15 - 1011e: f88d 3004 strb.w r3, [sp, #4] - bytes[1] = ((letter_uni >> 12) & 0x3F) | 0x80; - 10122: f3c0 3305 ubfx r3, r0, #12, #6 - 10126: f063 037f orn r3, r3, #127 ; 0x7f - 1012a: f88d 3005 strb.w r3, [sp, #5] - bytes[2] = ((letter_uni >> 6) & 0x3F) | 0x80; - 1012e: f3c0 1385 ubfx r3, r0, #6, #6 - bytes[3] = ((letter_uni >> 0) & 0x3F) | 0x80; - 10132: f000 003f and.w r0, r0, #63 ; 0x3f - bytes[2] = ((letter_uni >> 6) & 0x3F) | 0x80; - 10136: f063 037f orn r3, r3, #127 ; 0x7f - bytes[3] = ((letter_uni >> 0) & 0x3F) | 0x80; - 1013a: f060 007f orn r0, r0, #127 ; 0x7f - bytes[2] = ((letter_uni >> 6) & 0x3F) | 0x80; - 1013e: f88d 3006 strb.w r3, [sp, #6] - bytes[3] = ((letter_uni >> 0) & 0x3F) | 0x80; - 10142: f88d 0007 strb.w r0, [sp, #7] - 10146: e7c9 b.n 100dc - -00010148 : - if((c & 0x80) != 0) { - 10148: 0603 lsls r3, r0, #24 - 1014a: d512 bpl.n 10172 - swapped = (c8[0] << 24) + (c8[1] << 16) + (c8[2] << 8) + (c8[3]); - 1014c: f3c0 2207 ubfx r2, r0, #8, #8 - 10150: 0603 lsls r3, r0, #24 - 10152: eb03 4302 add.w r3, r3, r2, lsl #16 - 10156: f3c0 4207 ubfx r2, r0, #16, #8 - 1015a: eb03 2302 add.w r3, r3, r2, lsl #8 - 1015e: eb03 6010 add.w r0, r3, r0, lsr #24 - 10162: 2304 movs r3, #4 - if((swapped & 0xFF) == 0) - 10164: b2c2 uxtb r2, r0 - 10166: b902 cbnz r2, 1016a - swapped = (swapped >> 8); /*Ignore leading zeros (they were in the end originally)*/ - 10168: 0a00 lsrs r0, r0, #8 - for(i = 0; i < 4; i++) { - 1016a: 3b01 subs r3, #1 - 1016c: f013 03ff ands.w r3, r3, #255 ; 0xff - 10170: d1f8 bne.n 10164 -} - 10172: 4770 bx lr - -00010174 <_lv_txt_is_cmd>: - if(c == (uint32_t)LV_TXT_COLOR_CMD[0]) { - 10174: 2923 cmp r1, #35 ; 0x23 - 10176: d116 bne.n 101a6 <_lv_txt_is_cmd+0x32> - if(*state == LV_TXT_CMD_STATE_WAIT) { /*Start char*/ - 10178: 7802 ldrb r2, [r0, #0] - 1017a: b95a cbnz r2, 10194 <_lv_txt_is_cmd+0x20> - *state = LV_TXT_CMD_STATE_PAR; - 1017c: 2301 movs r3, #1 - *state = LV_TXT_CMD_STATE_WAIT; - 1017e: 7003 strb r3, [r0, #0] - if(*state == LV_TXT_CMD_STATE_PAR) { - 10180: 7802 ldrb r2, [r0, #0] - 10182: 2a01 cmp r2, #1 - 10184: d104 bne.n 10190 <_lv_txt_is_cmd+0x1c> - if(c == ' ') { - 10186: 2920 cmp r1, #32 - *state = LV_TXT_CMD_STATE_IN; /*After the parameter the text is in the command*/ - 10188: bf04 itt eq - 1018a: 2302 moveq r3, #2 - 1018c: 7003 strbeq r3, [r0, #0] - ret = true; - 1018e: 4613 mov r3, r2 -} - 10190: 4618 mov r0, r3 - 10192: 4770 bx lr - else if(*state == LV_TXT_CMD_STATE_PAR) { - 10194: 2a01 cmp r2, #1 - 10196: f04f 0300 mov.w r3, #0 - 1019a: d0f0 beq.n 1017e <_lv_txt_is_cmd+0xa> - else if(*state == LV_TXT_CMD_STATE_IN) { - 1019c: 2a02 cmp r2, #2 - 1019e: d1ef bne.n 10180 <_lv_txt_is_cmd+0xc> - *state = LV_TXT_CMD_STATE_WAIT; - 101a0: 7003 strb r3, [r0, #0] - ret = true; - 101a2: 2301 movs r3, #1 - 101a4: e7ec b.n 10180 <_lv_txt_is_cmd+0xc> - bool ret = false; - 101a6: 2300 movs r3, #0 - 101a8: e7ea b.n 10180 <_lv_txt_is_cmd+0xc> - ... - -000101ac <_lv_txt_get_width>: -{ - 101ac: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - 101b0: 4688 mov r8, r1 - 101b2: b085 sub sp, #20 - 101b4: 4617 mov r7, r2 - 101b6: 461e mov r6, r3 - if(txt == NULL) return 0; - 101b8: 4605 mov r5, r0 - 101ba: 2400 movs r4, #0 - 101bc: 2800 cmp r0, #0 - 101be: d03e beq.n 1023e <_lv_txt_get_width+0x92> - if(font == NULL) return 0; - 101c0: 2a00 cmp r2, #0 - 101c2: d03e beq.n 10242 <_lv_txt_get_width+0x96> - uint32_t i = 0; - 101c4: 9403 str r4, [sp, #12] - lv_txt_cmd_state_t cmd_state = LV_TXT_CMD_STATE_WAIT; - 101c6: f88d 400b strb.w r4, [sp, #11] - if(length != 0) { - 101ca: 2900 cmp r1, #0 - 101cc: d035 beq.n 1023a <_lv_txt_get_width+0x8e> - if((flag & LV_TXT_FLAG_RECOLOR) != 0) { - 101ce: f89d 9038 ldrb.w r9, [sp, #56] ; 0x38 - uint32_t letter = _lv_txt_encoded_next(txt, &i); - 101d2: f8df a07c ldr.w sl, [pc, #124] ; 10250 <_lv_txt_get_width+0xa4> - if((flag & LV_TXT_FLAG_RECOLOR) != 0) { - 101d6: f009 0901 and.w r9, r9, #1 - uint32_t letter = _lv_txt_encoded_next(txt, &i); - 101da: f8da 3004 ldr.w r3, [sl, #4] - 101de: a903 add r1, sp, #12 - 101e0: 4628 mov r0, r5 - 101e2: 4798 blx r3 - 101e4: 4683 mov fp, r0 - uint32_t letter_next = _lv_txt_encoded_next(&txt[i], NULL); - 101e6: 9803 ldr r0, [sp, #12] - 101e8: f8da 2004 ldr.w r2, [sl, #4] - 101ec: 2100 movs r1, #0 - 101ee: 4428 add r0, r5 - 101f0: 4790 blx r2 - 101f2: 4602 mov r2, r0 - if((flag & LV_TXT_FLAG_RECOLOR) != 0) { - 101f4: f1b9 0f00 cmp.w r9, #0 - 101f8: d111 bne.n 1021e <_lv_txt_get_width+0x72> - lv_coord_t char_width = lv_font_get_glyph_width(font, letter, letter_next); - 101fa: 4b13 ldr r3, [pc, #76] ; (10248 <_lv_txt_get_width+0x9c>) - 101fc: 4659 mov r1, fp - 101fe: 4638 mov r0, r7 - 10200: 4798 blx r3 - if(char_width > 0) { - 10202: b203 sxth r3, r0 - 10204: 2b00 cmp r3, #0 - 10206: dc14 bgt.n 10232 <_lv_txt_get_width+0x86> - while(i < length) { - 10208: 9b03 ldr r3, [sp, #12] - 1020a: 4598 cmp r8, r3 - 1020c: d8e5 bhi.n 101da <_lv_txt_get_width+0x2e> - if(width > 0) { - 1020e: 2c00 cmp r4, #0 - 10210: dd01 ble.n 10216 <_lv_txt_get_width+0x6a> - width -= letter_space; /*Trim the last letter space. Important if the text is center - 10212: 1ba6 subs r6, r4, r6 - 10214: b234 sxth r4, r6 -} - 10216: 4620 mov r0, r4 - 10218: b005 add sp, #20 - 1021a: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - 1021e: 9001 str r0, [sp, #4] - if(_lv_txt_is_cmd(&cmd_state, letter) != false) { - 10220: 4b0a ldr r3, [pc, #40] ; (1024c <_lv_txt_get_width+0xa0>) - 10222: 4659 mov r1, fp - 10224: f10d 000b add.w r0, sp, #11 - 10228: 4798 blx r3 - 1022a: 9a01 ldr r2, [sp, #4] - 1022c: 2800 cmp r0, #0 - 1022e: d0e4 beq.n 101fa <_lv_txt_get_width+0x4e> - 10230: e7ea b.n 10208 <_lv_txt_get_width+0x5c> - width += letter_space; - 10232: 4434 add r4, r6 - 10234: 4420 add r0, r4 - 10236: b204 sxth r4, r0 - 10238: e7e6 b.n 10208 <_lv_txt_get_width+0x5c> - lv_coord_t width = 0; - 1023a: 460c mov r4, r1 - 1023c: e7eb b.n 10216 <_lv_txt_get_width+0x6a> - if(txt == NULL) return 0; - 1023e: 4604 mov r4, r0 - 10240: e7e9 b.n 10216 <_lv_txt_get_width+0x6a> - 10242: 4614 mov r4, r2 - 10244: e7e7 b.n 10216 <_lv_txt_get_width+0x6a> - 10246: bf00 nop - 10248: 0000d3f9 .word 0x0000d3f9 - 1024c: 00010175 .word 0x00010175 - 10250: 20000048 .word 0x20000048 - -00010254 <_lv_txt_get_next_line>: -{ - 10254: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - 10258: b08f sub sp, #60 ; 0x3c - 1025a: 4699 mov r9, r3 - 1025c: f89d 3060 ldrb.w r3, [sp, #96] ; 0x60 - 10260: 9102 str r1, [sp, #8] - 10262: 9204 str r2, [sp, #16] - 10264: 9303 str r3, [sp, #12] - if(txt == NULL) return 0; - 10266: 4607 mov r7, r0 - 10268: b198 cbz r0, 10292 <_lv_txt_get_next_line+0x3e> - if(font == NULL) return 0; - 1026a: 2900 cmp r1, #0 - 1026c: f000 80d2 beq.w 10414 <_lv_txt_get_next_line+0x1c0> - if((flag & LV_TXT_FLAG_EXPAND) || (flag & LV_TXT_FLAG_FIT)) { - 10270: 9b03 ldr r3, [sp, #12] - 10272: f013 0312 ands.w r3, r3, #18 - 10276: d00f beq.n 10298 <_lv_txt_get_next_line+0x44> - for(i = 0; txt[i] != '\n' && txt[i] != '\r' && txt[i] != '\0'; i++) { - 10278: 2000 movs r0, #0 - 1027a: e000 b.n 1027e <_lv_txt_get_next_line+0x2a> - 1027c: 3001 adds r0, #1 - 1027e: 5c3b ldrb r3, [r7, r0] - 10280: 2b0a cmp r3, #10 - 10282: f000 80c9 beq.w 10418 <_lv_txt_get_next_line+0x1c4> - 10286: 2b0d cmp r3, #13 - 10288: f000 80c6 beq.w 10418 <_lv_txt_get_next_line+0x1c4> - 1028c: 2b00 cmp r3, #0 - 1028e: d1f5 bne.n 1027c <_lv_txt_get_next_line+0x28> - return i; - 10290: b280 uxth r0, r0 -} - 10292: b00f add sp, #60 ; 0x3c - 10294: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - if(flag & LV_TXT_FLAG_EXPAND) max_width = LV_COORD_MAX; - 10298: 9a03 ldr r2, [sp, #12] - lv_txt_cmd_state_t cmd_state = LV_TXT_CMD_STATE_WAIT; - 1029a: f88d 302b strb.w r3, [sp, #43] ; 0x2b - if(flag & LV_TXT_FLAG_EXPAND) max_width = LV_COORD_MAX; - 1029e: f012 0202 ands.w r2, r2, #2 - 102a2: 9205 str r2, [sp, #20] - 102a4: f647 4218 movw r2, #31768 ; 0x7c18 - 102a8: bf18 it ne - 102aa: 4691 movne r9, r2 - uint32_t i = 0; /* Iterating index into txt */ - 102ac: 930b str r3, [sp, #44] ; 0x2c - while(txt[i] != '\0' && max_width > 0) { - 102ae: 9b0b ldr r3, [sp, #44] ; 0x2c - 102b0: 9300 str r3, [sp, #0] - 102b2: eb07 0b03 add.w fp, r7, r3 - 102b6: 5cfb ldrb r3, [r7, r3] - 102b8: 2b00 cmp r3, #0 - 102ba: f000 808e beq.w 103da <_lv_txt_get_next_line+0x186> - 102be: f1b9 0f00 cmp.w r9, #0 - 102c2: f340 808a ble.w 103da <_lv_txt_get_next_line+0x186> - if(flag & LV_TXT_FLAG_EXPAND) max_width = LV_COORD_MAX; - 102c6: 9a05 ldr r2, [sp, #20] - 102c8: f647 4318 movw r3, #31768 ; 0x7c18 - 102cc: 2a00 cmp r2, #0 - 102ce: bf08 it eq - 102d0: 464b moveq r3, r9 - 102d2: 9307 str r3, [sp, #28] - letter = _lv_txt_encoded_next(txt, &i_next); - 102d4: 4b51 ldr r3, [pc, #324] ; (1041c <_lv_txt_get_next_line+0x1c8>) - uint32_t i = 0, i_next = 0, i_next_next = 0; /* Iterating index into txt */ - 102d6: 2500 movs r5, #0 - letter = _lv_txt_encoded_next(txt, &i_next); - 102d8: 685b ldr r3, [r3, #4] - uint32_t i = 0, i_next = 0, i_next_next = 0; /* Iterating index into txt */ - 102da: e9cd 550c strd r5, r5, [sp, #48] ; 0x30 - letter = _lv_txt_encoded_next(txt, &i_next); - 102de: a90c add r1, sp, #48 ; 0x30 - 102e0: 4658 mov r0, fp - 102e2: 4798 blx r3 - i_next_next = i_next; - 102e4: 9b0c ldr r3, [sp, #48] ; 0x30 - 102e6: 930d str r3, [sp, #52] ; 0x34 - if((flag & LV_TXT_FLAG_RECOLOR) != 0) { - 102e8: 9b03 ldr r3, [sp, #12] - uint32_t word_len = 0; /* Number of characters in the transversed word */ - 102ea: 9501 str r5, [sp, #4] - if((flag & LV_TXT_FLAG_RECOLOR) != 0) { - 102ec: f003 0301 and.w r3, r3, #1 - letter = _lv_txt_encoded_next(txt, &i_next); - 102f0: 4680 mov r8, r0 - uint32_t break_index = NO_BREAK_FOUND; /* only used for "long" words */ - 102f2: f04f 3aff mov.w sl, #4294967295 ; 0xffffffff - lv_coord_t cur_w = 0; /* Pixel Width of transversed string */ - 102f6: 462e mov r6, r5 - uint32_t letter_next = 0; /* Letter at i_next */ - 102f8: 462a mov r2, r5 - uint32_t i = 0, i_next = 0, i_next_next = 0; /* Iterating index into txt */ - 102fa: 462c mov r4, r5 - if((flag & LV_TXT_FLAG_RECOLOR) != 0) { - 102fc: 9308 str r3, [sp, #32] - while(txt[i] != '\0') { - 102fe: f81b 3004 ldrb.w r3, [fp, r4] - 10302: b943 cbnz r3, 10316 <_lv_txt_get_next_line+0xc2> - if(break_index == NO_BREAK_FOUND) { - 10304: f1ba 3fff cmp.w sl, #4294967295 ; 0xffffffff - 10308: d052 beq.n 103b0 <_lv_txt_get_next_line+0x15c> - if(force) return break_index; - 1030a: 9b00 ldr r3, [sp, #0] - 1030c: 2b00 cmp r3, #0 - 1030e: d16e bne.n 103ee <_lv_txt_get_next_line+0x19a> - 10310: fa1f f48a uxth.w r4, sl - 10314: e055 b.n 103c2 <_lv_txt_get_next_line+0x16e> - letter_next = _lv_txt_encoded_next(txt, &i_next_next); - 10316: 4b41 ldr r3, [pc, #260] ; (1041c <_lv_txt_get_next_line+0x1c8>) - 10318: a90d add r1, sp, #52 ; 0x34 - 1031a: 685b ldr r3, [r3, #4] - 1031c: 4658 mov r0, fp - 1031e: 4798 blx r3 - word_len++; - 10320: 9b01 ldr r3, [sp, #4] - 10322: 3301 adds r3, #1 - 10324: 9306 str r3, [sp, #24] - if((flag & LV_TXT_FLAG_RECOLOR) != 0) { - 10326: 9b08 ldr r3, [sp, #32] - letter_next = _lv_txt_encoded_next(txt, &i_next_next); - 10328: 4602 mov r2, r0 - if((flag & LV_TXT_FLAG_RECOLOR) != 0) { - 1032a: b173 cbz r3, 1034a <_lv_txt_get_next_line+0xf6> - 1032c: 9009 str r0, [sp, #36] ; 0x24 - if(_lv_txt_is_cmd(cmd_state, letter) != false) { - 1032e: 4b3c ldr r3, [pc, #240] ; (10420 <_lv_txt_get_next_line+0x1cc>) - 10330: 4641 mov r1, r8 - 10332: f10d 002b add.w r0, sp, #43 ; 0x2b - 10336: 4798 blx r3 - 10338: 9a09 ldr r2, [sp, #36] ; 0x24 - 1033a: b130 cbz r0, 1034a <_lv_txt_get_next_line+0xf6> - i_next = i_next_next; - 1033c: e9dd 430c ldrd r4, r3, [sp, #48] ; 0x30 - 10340: 930c str r3, [sp, #48] ; 0x30 - 10342: 9b06 ldr r3, [sp, #24] - 10344: 9301 str r3, [sp, #4] - letter_next = _lv_txt_encoded_next(txt, &i_next_next); - 10346: 4690 mov r8, r2 - 10348: e7d9 b.n 102fe <_lv_txt_get_next_line+0xaa> - letter_w = lv_font_get_glyph_width(font, letter, letter_next); - 1034a: 4b36 ldr r3, [pc, #216] ; (10424 <_lv_txt_get_next_line+0x1d0>) - 1034c: 9802 ldr r0, [sp, #8] - 1034e: 9209 str r2, [sp, #36] ; 0x24 - 10350: 4641 mov r1, r8 - 10352: 4798 blx r3 - cur_w += letter_w; - 10354: 4406 add r6, r0 - if(letter_w > 0) { - 10356: b200 sxth r0, r0 - 10358: 2800 cmp r0, #0 - cur_w += letter_space; - 1035a: bfc8 it gt - 1035c: 9b04 ldrgt r3, [sp, #16] - if(letter_w > 0) { - 1035e: 9a09 ldr r2, [sp, #36] ; 0x24 - cur_w += letter_w; - 10360: b2b6 uxth r6, r6 - cur_w += letter_space; - 10362: bfc4 itt gt - 10364: 18f6 addgt r6, r6, r3 - 10366: b2b6 uxthgt r6, r6 - if(break_index == NO_BREAK_FOUND && (cur_w - letter_space) > max_width) { - 10368: f1ba 3fff cmp.w sl, #4294967295 ; 0xffffffff - 1036c: b236 sxth r6, r6 - 1036e: d105 bne.n 1037c <_lv_txt_get_next_line+0x128> - 10370: 9b04 ldr r3, [sp, #16] - 10372: 9907 ldr r1, [sp, #28] - 10374: 1af3 subs r3, r6, r3 - 10376: 428b cmp r3, r1 - 10378: bfc8 it gt - 1037a: 46a2 movgt sl, r4 - if(letter == '\n' || letter == '\r' || is_break_char(letter)) { - 1037c: f1b8 0f0a cmp.w r8, #10 - 10380: d010 beq.n 103a4 <_lv_txt_get_next_line+0x150> - 10382: f1b8 0f0d cmp.w r8, #13 - 10386: d00d beq.n 103a4 <_lv_txt_get_next_line+0x150> -{ - uint8_t i; - bool ret = false; - - /*Compare the letter to TXT_BREAK_CHARS*/ - for(i = 0; LV_TXT_BREAK_CHARS[i] != '\0'; i++) { - 10388: 4827 ldr r0, [pc, #156] ; (10428 <_lv_txt_get_next_line+0x1d4>) - 1038a: 2300 movs r3, #0 - 1038c: b2d9 uxtb r1, r3 - 1038e: 5c41 ldrb r1, [r0, r1] - 10390: b921 cbnz r1, 1039c <_lv_txt_get_next_line+0x148> - if(word_w_ptr != NULL && break_index == NO_BREAK_FOUND) *word_w_ptr = cur_w; - 10392: f1ba 3fff cmp.w sl, #4294967295 ; 0xffffffff - 10396: bf08 it eq - 10398: 4635 moveq r5, r6 - 1039a: e7cf b.n 1033c <_lv_txt_get_next_line+0xe8> - if(letter == (uint32_t)LV_TXT_BREAK_CHARS[i]) { - 1039c: 4588 cmp r8, r1 - 1039e: f103 0301 add.w r3, r3, #1 - 103a2: d1f3 bne.n 1038c <_lv_txt_get_next_line+0x138> - if(i == 0 && break_index == NO_BREAK_FOUND && word_w_ptr != NULL) *word_w_ptr = cur_w; - 103a4: 2c00 cmp r4, #0 - 103a6: d1ad bne.n 10304 <_lv_txt_get_next_line+0xb0> - 103a8: f1ba 3fff cmp.w sl, #4294967295 ; 0xffffffff - 103ac: d1ad bne.n 1030a <_lv_txt_get_next_line+0xb6> - 103ae: 4635 mov r5, r6 - if(word_len == 0 || (letter == '\r' && letter_next == '\n')) i = i_next; - 103b0: 9b01 ldr r3, [sp, #4] - 103b2: b123 cbz r3, 103be <_lv_txt_get_next_line+0x16a> - 103b4: f1b8 0f0d cmp.w r8, #13 - 103b8: d102 bne.n 103c0 <_lv_txt_get_next_line+0x16c> - 103ba: 2a0a cmp r2, #10 - 103bc: d100 bne.n 103c0 <_lv_txt_get_next_line+0x16c> - 103be: 9c0c ldr r4, [sp, #48] ; 0x30 - return i; - 103c0: b2a4 uxth r4, r4 - max_width -= word_w; - 103c2: eba9 0505 sub.w r5, r9, r5 - if(i == 0) _lv_txt_encoded_next(txt, &i); // prevent inf loops - 103c6: 9b0b ldr r3, [sp, #44] ; 0x2c - max_width -= word_w; - 103c8: fa0f f985 sxth.w r9, r5 - if(advance == 0) { - 103cc: b994 cbnz r4, 103f4 <_lv_txt_get_next_line+0x1a0> - if(i == 0) _lv_txt_encoded_next(txt, &i); // prevent inf loops - 103ce: b95b cbnz r3, 103e8 <_lv_txt_get_next_line+0x194> - 103d0: 4b12 ldr r3, [pc, #72] ; (1041c <_lv_txt_get_next_line+0x1c8>) - 103d2: a90b add r1, sp, #44 ; 0x2c - 103d4: 685b ldr r3, [r3, #4] - 103d6: 4638 mov r0, r7 - 103d8: 4798 blx r3 - if(i == 0) { - 103da: 9b0b ldr r3, [sp, #44] ; 0x2c - 103dc: b923 cbnz r3, 103e8 <_lv_txt_get_next_line+0x194> - _lv_txt_encoded_next(txt, &i); - 103de: 4b0f ldr r3, [pc, #60] ; (1041c <_lv_txt_get_next_line+0x1c8>) - 103e0: a90b add r1, sp, #44 ; 0x2c - 103e2: 685b ldr r3, [r3, #4] - 103e4: 4638 mov r0, r7 - 103e6: 4798 blx r3 - return i; - 103e8: f8bd 002c ldrh.w r0, [sp, #44] ; 0x2c - 103ec: e751 b.n 10292 <_lv_txt_get_next_line+0x3e> - if(word_w_ptr != NULL) *word_w_ptr = 0; /* Return no word */ - 103ee: 2500 movs r5, #0 - return 0; - 103f0: 462c mov r4, r5 - 103f2: e7e6 b.n 103c2 <_lv_txt_get_next_line+0x16e> - i += advance; - 103f4: 441c add r4, r3 - if(txt[0] == '\n' || txt[0] == '\r') break; - 103f6: 783b ldrb r3, [r7, #0] - i += advance; - 103f8: 940b str r4, [sp, #44] ; 0x2c - if(txt[0] == '\n' || txt[0] == '\r') break; - 103fa: 2b0a cmp r3, #10 - 103fc: d0ed beq.n 103da <_lv_txt_get_next_line+0x186> - 103fe: 2b0d cmp r3, #13 - 10400: d0eb beq.n 103da <_lv_txt_get_next_line+0x186> - if(txt[i] == '\n' || txt[i] == '\r') { - 10402: 5d3b ldrb r3, [r7, r4] - 10404: 2b0a cmp r3, #10 - 10406: d002 beq.n 1040e <_lv_txt_get_next_line+0x1ba> - 10408: 2b0d cmp r3, #13 - 1040a: f47f af50 bne.w 102ae <_lv_txt_get_next_line+0x5a> - i++; /* Include the following newline in the current line */ - 1040e: 3401 adds r4, #1 - 10410: 940b str r4, [sp, #44] ; 0x2c - break; - 10412: e7e2 b.n 103da <_lv_txt_get_next_line+0x186> - if(txt == NULL) return 0; - 10414: 9802 ldr r0, [sp, #8] - 10416: e73c b.n 10292 <_lv_txt_get_next_line+0x3e> - if(txt[i] != '\0') i++; /*To go beyond `\n`*/ - 10418: 3001 adds r0, #1 - 1041a: e739 b.n 10290 <_lv_txt_get_next_line+0x3c> - 1041c: 20000048 .word 0x20000048 - 10420: 00010175 .word 0x00010175 - 10424: 0000d3f9 .word 0x0000d3f9 - 10428: 0002bc6a .word 0x0002bc6a - -0001042c <_lv_txt_get_size>: -{ - 1042c: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - 10430: b089 sub sp, #36 ; 0x24 - size_res->x = 0; - 10432: 2500 movs r5, #0 -{ - 10434: 4698 mov r8, r3 - 10436: f89d 3050 ldrb.w r3, [sp, #80] ; 0x50 - 1043a: f9bd b048 ldrsh.w fp, [sp, #72] ; 0x48 - 1043e: f9bd a04c ldrsh.w sl, [sp, #76] ; 0x4c - 10442: 9304 str r3, [sp, #16] - 10444: 4604 mov r4, r0 - 10446: 4616 mov r6, r2 - size_res->x = 0; - 10448: 8005 strh r5, [r0, #0] - size_res->y = 0; - 1044a: 8045 strh r5, [r0, #2] - if(text == NULL) return; - 1044c: 9103 str r1, [sp, #12] - 1044e: b329 cbz r1, 1049c <_lv_txt_get_size+0x70> - if(font == NULL) return; - 10450: b322 cbz r2, 1049c <_lv_txt_get_size+0x70> - if(flag & LV_TXT_FLAG_EXPAND) max_width = LV_COORD_MAX; - 10452: 9b04 ldr r3, [sp, #16] - 10454: f013 0f02 tst.w r3, #2 - 10458: f647 4318 movw r3, #31768 ; 0x7c18 - 1045c: bf18 it ne - 1045e: 469a movne sl, r3 - * @param font_p pointer to a font - * @return the height of a font - */ -static inline lv_coord_t lv_font_get_line_height(const lv_font_t * font_p) -{ - return font_p->line_height; - 10460: f9b2 3008 ldrsh.w r3, [r2, #8] - 10464: 9306 str r3, [sp, #24] - uint16_t letter_height = lv_font_get_line_height(font); - 10466: 8913 ldrh r3, [r2, #8] - 10468: 9305 str r3, [sp, #20] - if((unsigned long)size_res->y + (unsigned long)letter_height + (unsigned long)line_space > LV_MAX_OF(lv_coord_t)) { - 1046a: 445b add r3, fp - 1046c: 9307 str r3, [sp, #28] - while(text[line_start] != '\0') { - 1046e: 9b03 ldr r3, [sp, #12] - 10470: eb03 0905 add.w r9, r3, r5 - 10474: 5d5b ldrb r3, [r3, r5] - 10476: b9a3 cbnz r3, 104a2 <_lv_txt_get_size+0x76> - if((line_start != 0) && (text[line_start - 1] == '\n' || text[line_start - 1] == '\r')) { - 10478: b155 cbz r5, 10490 <_lv_txt_get_size+0x64> - 1047a: f819 3c01 ldrb.w r3, [r9, #-1] - 1047e: 2b0a cmp r3, #10 - 10480: d001 beq.n 10486 <_lv_txt_get_size+0x5a> - 10482: 2b0d cmp r3, #13 - 10484: d104 bne.n 10490 <_lv_txt_get_size+0x64> - size_res->y += letter_height + line_space; - 10486: 9b05 ldr r3, [sp, #20] - 10488: 8862 ldrh r2, [r4, #2] - 1048a: 445b add r3, fp - 1048c: 4413 add r3, r2 - 1048e: 8063 strh r3, [r4, #2] - if(size_res->y == 0) - 10490: f9b4 3002 ldrsh.w r3, [r4, #2] - 10494: 2b00 cmp r3, #0 - 10496: d131 bne.n 104fc <_lv_txt_get_size+0xd0> - size_res->y = letter_height; - 10498: 9b06 ldr r3, [sp, #24] - size_res->y -= line_space; - 1049a: 8063 strh r3, [r4, #2] -} - 1049c: b009 add sp, #36 ; 0x24 - 1049e: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - new_line_start += _lv_txt_get_next_line(&text[line_start], font, letter_space, max_width, flag); - 104a2: 9b04 ldr r3, [sp, #16] - 104a4: 9300 str r3, [sp, #0] - 104a6: 4642 mov r2, r8 - 104a8: 4653 mov r3, sl - 104aa: 4631 mov r1, r6 - 104ac: 4f15 ldr r7, [pc, #84] ; (10504 <_lv_txt_get_size+0xd8>) - 104ae: 4648 mov r0, r9 - 104b0: 47b8 blx r7 - if((unsigned long)size_res->y + (unsigned long)letter_height + (unsigned long)line_space > LV_MAX_OF(lv_coord_t)) { - 104b2: f9b4 3002 ldrsh.w r3, [r4, #2] - 104b6: 9a07 ldr r2, [sp, #28] - 104b8: 4413 add r3, r2 - 104ba: f5b3 4f00 cmp.w r3, #32768 ; 0x8000 - new_line_start += _lv_txt_get_next_line(&text[line_start], font, letter_space, max_width, flag); - 104be: 4601 mov r1, r0 - 104c0: 4405 add r5, r0 - if((unsigned long)size_res->y + (unsigned long)letter_height + (unsigned long)line_space > LV_MAX_OF(lv_coord_t)) { - 104c2: d30b bcc.n 104dc <_lv_txt_get_size+0xb0> - LV_LOG_WARN("lv_txt_get_size: integer overflow while calculating text height"); - 104c4: 4b10 ldr r3, [pc, #64] ; (10508 <_lv_txt_get_size+0xdc>) - 104c6: 4c11 ldr r4, [pc, #68] ; (1050c <_lv_txt_get_size+0xe0>) - 104c8: 9312 str r3, [sp, #72] ; 0x48 - 104ca: 4911 ldr r1, [pc, #68] ; (10510 <_lv_txt_get_size+0xe4>) - 104cc: 4b11 ldr r3, [pc, #68] ; (10514 <_lv_txt_get_size+0xe8>) - 104ce: 2271 movs r2, #113 ; 0x71 - 104d0: 2002 movs r0, #2 - 104d2: 46a4 mov ip, r4 -} - 104d4: b009 add sp, #36 ; 0x24 - 104d6: e8bd 4ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - LV_LOG_WARN("lv_txt_get_size: integer overflow while calculating text height"); - 104da: 4760 bx ip - size_res->y += line_space; - 104dc: 8063 strh r3, [r4, #2] - lv_coord_t act_line_length = _lv_txt_get_width(&text[line_start], new_line_start - line_start, font, letter_space, - 104de: 9b04 ldr r3, [sp, #16] - 104e0: 9300 str r3, [sp, #0] - 104e2: 4648 mov r0, r9 - 104e4: 4643 mov r3, r8 - 104e6: f8df 9030 ldr.w r9, [pc, #48] ; 10518 <_lv_txt_get_size+0xec> - 104ea: 4632 mov r2, r6 - 104ec: 47c8 blx r9 - size_res->x = LV_MATH_MAX(act_line_length, size_res->x); - 104ee: f9b4 3000 ldrsh.w r3, [r4] - 104f2: 4298 cmp r0, r3 - 104f4: bfb8 it lt - 104f6: 4618 movlt r0, r3 - 104f8: 8020 strh r0, [r4, #0] - line_start = new_line_start; - 104fa: e7b8 b.n 1046e <_lv_txt_get_size+0x42> - size_res->y -= line_space; - 104fc: eba3 030b sub.w r3, r3, fp - 10500: e7cb b.n 1049a <_lv_txt_get_size+0x6e> - 10502: bf00 nop - 10504: 00010255 .word 0x00010255 - 10508: 0002bca1 .word 0x0002bca1 - 1050c: 0000eb79 .word 0x0000eb79 - 10510: 0002bc72 .word 0x0002bc72 - 10514: 0002bce1 .word 0x0002bce1 - 10518: 000101ad .word 0x000101ad - -0001051c <_lv_utils_bsearch>: - * - * @return a pointer to a matching item, or NULL if none exists. - */ -void * _lv_utils_bsearch(const void * key, const void * base, uint32_t n, uint32_t size, - int32_t (*cmp)(const void * pRef, const void * pElement)) -{ - 1051c: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} - 10520: 9d08 ldr r5, [sp, #32] - 10522: 4680 mov r8, r0 - 10524: 460f mov r7, r1 - 10526: 4614 mov r4, r2 - 10528: 4699 mov r9, r3 - const char * middle; - int32_t c; - - for(middle = base; n != 0;) { - 1052a: b90c cbnz r4, 10530 <_lv_utils_bsearch+0x14> - } - else { - return (char *)middle; - } - } - return NULL; - 1052c: 4626 mov r6, r4 - 1052e: e012 b.n 10556 <_lv_utils_bsearch+0x3a> - middle += (n / 2) * size; - 10530: ea4f 0a54 mov.w sl, r4, lsr #1 - 10534: fb09 760a mla r6, r9, sl, r7 - if((c = (*cmp)(key, middle)) > 0) { - 10538: 4631 mov r1, r6 - 1053a: 4640 mov r0, r8 - 1053c: 47a8 blx r5 - 1053e: 2800 cmp r0, #0 - 10540: dd08 ble.n 10554 <_lv_utils_bsearch+0x38> - n = (n / 2) - ((n & 1) == 0); - 10542: 43e4 mvns r4, r4 - 10544: f004 0401 and.w r4, r4, #1 - 10548: ebaa 0a04 sub.w sl, sl, r4 - base = (middle += size); - 1054c: eb06 0709 add.w r7, r6, r9 -{ - 10550: 4654 mov r4, sl - 10552: e7ea b.n 1052a <_lv_utils_bsearch+0xe> - else if(c < 0) { - 10554: d1fc bne.n 10550 <_lv_utils_bsearch+0x34> -} - 10556: 4630 mov r0, r6 - 10558: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} - -0001055c : - * From now, all the created objects will use styles from this theme by default - * @param th pointer to theme (return value of: 'lv_theme_init_xxx()') - */ -void lv_theme_set_act(lv_theme_t * th) -{ - act_theme = th; - 1055c: 4b01 ldr r3, [pc, #4] ; (10564 ) - 1055e: 6018 str r0, [r3, #0] -} - 10560: 4770 bx lr - 10562: bf00 nop - 10564: 200057a0 .word 0x200057a0 - -00010568 : - * Get the normal font of the theme - * @return pointer to the font - */ -const lv_font_t * lv_theme_get_font_normal(void) -{ - return act_theme->font_normal; - 10568: 4b01 ldr r3, [pc, #4] ; (10570 ) - 1056a: 681b ldr r3, [r3, #0] -} - 1056c: 68d8 ldr r0, [r3, #12] - 1056e: 4770 bx lr - 10570: 200057a0 .word 0x200057a0 - -00010574 : - return act_theme->flags; -} - -void lv_theme_apply(lv_obj_t * obj, lv_theme_style_t name) -{ - act_theme->apply_xcb(obj, name); - 10574: 4b01 ldr r3, [pc, #4] ; (1057c ) - 10576: 681b ldr r3, [r3, #0] - 10578: 681b ldr r3, [r3, #0] - 1057a: 4718 bx r3 - 1057c: 200057a0 .word 0x200057a0 - -00010580 : - return lv_color_make((uint8_t)((c >> 16) & 0xFF), (uint8_t)((c >> 8) & 0xFF), (uint8_t)(c & 0xFF)); -} - -static inline lv_color_t lv_color_hex3(uint32_t c) -{ - return lv_color_make((uint8_t)(((c >> 4) & 0xF0) | ((c >> 8) & 0xF)), (uint8_t)((c & 0xF0) | ((c & 0xF0) >> 4)), - 10580: f3c0 1303 ubfx r3, r0, #4, #4 -{ - 10584: b510 push {r4, lr} - return lv_color_make((uint8_t)(((c >> 4) & 0xF0) | ((c >> 8) & 0xF)), (uint8_t)((c & 0xF0) | ((c & 0xF0) >> 4)), - 10586: f000 01f0 and.w r1, r0, #240 ; 0xf0 - 1058a: b2c4 uxtb r4, r0 - 1058c: f3c0 1207 ubfx r2, r0, #4, #8 - return LV_COLOR_MAKE(r, g, b); - 10590: 4319 orrs r1, r3 - (uint8_t)((c & 0xF) | ((c & 0xF) << 4))); - 10592: f000 030f and.w r3, r0, #15 - return lv_color_make((uint8_t)(((c >> 4) & 0xF0) | ((c >> 8) & 0xF)), (uint8_t)((c & 0xF0) | ((c & 0xF0) >> 4)), - 10596: ea43 1304 orr.w r3, r3, r4, lsl #4 - 1059a: f022 020f bic.w r2, r2, #15 - 1059e: 0889 lsrs r1, r1, #2 - 105a0: ea42 2010 orr.w r0, r2, r0, lsr #8 - 105a4: f3c3 03c4 ubfx r3, r3, #3, #5 - 105a8: ea43 1341 orr.w r3, r3, r1, lsl #5 - 105ac: f3c0 00c4 ubfx r0, r0, #3, #5 -} - 105b0: ea43 20c0 orr.w r0, r3, r0, lsl #11 - 105b4: bd10 pop {r4, pc} - ... - -000105b8 : - -static void theme_apply(lv_obj_t * obj, lv_theme_style_t name) -{ - lv_style_list_t * list; - - switch(name) { - 105b8: 3901 subs r1, #1 -{ - 105ba: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} - 105be: 4604 mov r4, r0 - switch(name) { - 105c0: 2927 cmp r1, #39 ; 0x27 - 105c2: d834 bhi.n 1062e - 105c4: e8df f011 tbh [pc, r1, lsl #1] - 105c8: 00390028 .word 0x00390028 - 105cc: 008200bb .word 0x008200bb - 105d0: 004f0044 .word 0x004f0044 - 105d4: 00b70347 .word 0x00b70347 - 105d8: 0256010f .word 0x0256010f - 105dc: 036f0039 .word 0x036f0039 - 105e0: 03950220 .word 0x03950220 - 105e4: 00b700b7 .word 0x00b700b7 - 105e8: 00b70071 .word 0x00b70071 - 105ec: 00b70151 .word 0x00b70151 - 105f0: 021501f7 .word 0x021501f7 - 105f4: 012a0385 .word 0x012a0385 - 105f8: 01ef013b .word 0x01ef013b - 105fc: 01d30166 .word 0x01d30166 - 10600: 031b00eb .word 0x031b00eb - 10604: 00d70337 .word 0x00d70337 - 10608: 02840098 .word 0x02840098 - 1060c: 01b9018e .word 0x01b9018e - 10610: 01c702f0 .word 0x01c702f0 - 10614: 02e502be .word 0x02e502be - case LV_THEME_NONE: - break; - - case LV_THEME_SCR: - lv_obj_clean_style_list(obj, LV_OBJ_PART_MAIN); - 10618: 4b99 ldr r3, [pc, #612] ; (10880 ) - 1061a: 2100 movs r1, #0 - 1061c: 4798 blx r3 - list = lv_obj_get_style_list(obj, LV_OBJ_PART_MAIN); - 1061e: 4b99 ldr r3, [pc, #612] ; (10884 ) - 10620: 2100 movs r1, #0 - 10622: 4620 mov r0, r4 - 10624: 4798 blx r3 - _lv_style_list_add_style(list, &styles->scr); - 10626: 4b98 ldr r3, [pc, #608] ; (10888 ) - 10628: 6819 ldr r1, [r3, #0] - break; - case LV_THEME_OBJ: - lv_obj_clean_style_list(obj, LV_OBJ_PART_MAIN); - list = lv_obj_get_style_list(obj, LV_OBJ_PART_MAIN); - _lv_style_list_add_style(list, &styles->bg); - 1062a: 4b98 ldr r3, [pc, #608] ; (1088c ) - 1062c: 4798 blx r3 -#endif - default: - break; - } - - lv_obj_refresh_style(obj, LV_STYLE_PROP_ALL); - 1062e: 4620 mov r0, r4 - 10630: 4b97 ldr r3, [pc, #604] ; (10890 ) -} - 10632: e8bd 47f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr} - lv_obj_refresh_style(obj, LV_STYLE_PROP_ALL); - 10636: 21ff movs r1, #255 ; 0xff - 10638: 4718 bx r3 - lv_obj_clean_style_list(obj, LV_OBJ_PART_MAIN); - 1063a: 4b91 ldr r3, [pc, #580] ; (10880 ) - 1063c: 2100 movs r1, #0 - 1063e: 4798 blx r3 - list = lv_obj_get_style_list(obj, LV_OBJ_PART_MAIN); - 10640: 4b90 ldr r3, [pc, #576] ; (10884 ) - 10642: 2100 movs r1, #0 - 10644: 4620 mov r0, r4 - 10646: 4798 blx r3 - _lv_style_list_add_style(list, &styles->bg); - 10648: 4b8f ldr r3, [pc, #572] ; (10888 ) - 1064a: 6819 ldr r1, [r3, #0] - 1064c: 3104 adds r1, #4 - 1064e: e7ec b.n 1062a - lv_obj_clean_style_list(obj, LV_BTN_PART_MAIN); - 10650: 4b8b ldr r3, [pc, #556] ; (10880 ) - 10652: 2100 movs r1, #0 - 10654: 4798 blx r3 - list = lv_obj_get_style_list(obj, LV_BTN_PART_MAIN); - 10656: 4b8b ldr r3, [pc, #556] ; (10884 ) - 10658: 2100 movs r1, #0 - 1065a: 4620 mov r0, r4 - 1065c: 4798 blx r3 - _lv_style_list_add_style(list, &styles->btn); - 1065e: 4b8a ldr r3, [pc, #552] ; (10888 ) - 10660: 6819 ldr r1, [r3, #0] - 10662: 3110 adds r1, #16 - 10664: e7e1 b.n 1062a - _lv_style_list_add_style(list, &styles->bg); - 10666: 4e88 ldr r6, [pc, #544] ; (10888 ) - lv_obj_clean_style_list(obj, LV_BTNMATRIX_PART_BG); - 10668: f8df 9214 ldr.w r9, [pc, #532] ; 10880 - list = lv_obj_get_style_list(obj, LV_BTNMATRIX_PART_BG); - 1066c: f8df 8214 ldr.w r8, [pc, #532] ; 10884 - _lv_style_list_add_style(list, &styles->bg); - 10670: 4d86 ldr r5, [pc, #536] ; (1088c ) - lv_obj_clean_style_list(obj, LV_BTNMATRIX_PART_BG); - 10672: 2100 movs r1, #0 - 10674: 47c8 blx r9 - list = lv_obj_get_style_list(obj, LV_BTNMATRIX_PART_BG); - 10676: 2100 movs r1, #0 - 10678: 4620 mov r0, r4 - 1067a: 47c0 blx r8 - _lv_style_list_add_style(list, &styles->bg); - 1067c: 6831 ldr r1, [r6, #0] - 1067e: 3104 adds r1, #4 - list = lv_obj_get_style_list(obj, LV_BTNMATRIX_PART_BG); - 10680: 4607 mov r7, r0 - _lv_style_list_add_style(list, &styles->bg); - 10682: 47a8 blx r5 - _lv_style_list_add_style(list, &styles->pad_small); - 10684: 6831 ldr r1, [r6, #0] - 10686: 3118 adds r1, #24 - _lv_style_list_add_style(list, &styles->kb_bg); - 10688: 4638 mov r0, r7 - 1068a: 47a8 blx r5 - lv_obj_clean_style_list(obj, LV_KEYBOARD_PART_BTN); - 1068c: 2101 movs r1, #1 - 1068e: 4620 mov r0, r4 - 10690: 47c8 blx r9 - list = lv_obj_get_style_list(obj, LV_KEYBOARD_PART_BTN); - 10692: 2101 movs r1, #1 - 10694: 4620 mov r0, r4 - 10696: 47c0 blx r8 - _lv_style_list_add_style(list, &styles->bg); - 10698: 6831 ldr r1, [r6, #0] - 1069a: 3104 adds r1, #4 - list = lv_obj_get_style_list(obj, LV_KEYBOARD_PART_BTN); - 1069c: 4607 mov r7, r0 - _lv_style_list_add_style(list, &styles->bg); - 1069e: 47a8 blx r5 - _lv_style_list_add_style(list, &styles->bg_click); - 106a0: 6831 ldr r1, [r6, #0] - 106a2: 4638 mov r0, r7 - 106a4: 3108 adds r1, #8 - _lv_style_list_add_style(list, &styles->gauge_needle); - 106a6: 47a8 blx r5 - break; - 106a8: e7c1 b.n 1062e - lv_obj_clean_style_list(obj, LV_KEYBOARD_PART_BG); - 106aa: 2100 movs r1, #0 - 106ac: f8df 91d0 ldr.w r9, [pc, #464] ; 10880 - list = lv_obj_get_style_list(obj, LV_KEYBOARD_PART_BG); - 106b0: f8df 81d0 ldr.w r8, [pc, #464] ; 10884 - _lv_style_list_add_style(list, &styles->scr); - 106b4: 4e74 ldr r6, [pc, #464] ; (10888 ) - 106b6: 4d75 ldr r5, [pc, #468] ; (1088c ) - lv_obj_clean_style_list(obj, LV_KEYBOARD_PART_BG); - 106b8: 47c8 blx r9 - list = lv_obj_get_style_list(obj, LV_KEYBOARD_PART_BG); - 106ba: 2100 movs r1, #0 - 106bc: 4620 mov r0, r4 - 106be: 47c0 blx r8 - _lv_style_list_add_style(list, &styles->scr); - 106c0: 6831 ldr r1, [r6, #0] - list = lv_obj_get_style_list(obj, LV_KEYBOARD_PART_BG); - 106c2: 4607 mov r7, r0 - _lv_style_list_add_style(list, &styles->scr); - 106c4: 47a8 blx r5 - _lv_style_list_add_style(list, &styles->kb_bg); - 106c6: 6831 ldr r1, [r6, #0] - 106c8: 3168 adds r1, #104 ; 0x68 - 106ca: e7dd b.n 10688 - lv_obj_clean_style_list(obj, LV_BAR_PART_BG); - 106cc: f8df 81b0 ldr.w r8, [pc, #432] ; 10880 - _lv_style_list_add_style(list, &styles->bar_bg); - 106d0: 4e6d ldr r6, [pc, #436] ; (10888 ) - list = lv_obj_get_style_list(obj, LV_BAR_PART_BG); - 106d2: 4f6c ldr r7, [pc, #432] ; (10884 ) - _lv_style_list_add_style(list, &styles->bar_bg); - 106d4: 4d6d ldr r5, [pc, #436] ; (1088c ) - lv_obj_clean_style_list(obj, LV_BAR_PART_BG); - 106d6: 2100 movs r1, #0 - 106d8: 47c0 blx r8 - list = lv_obj_get_style_list(obj, LV_BAR_PART_BG); - 106da: 2100 movs r1, #0 - 106dc: 4620 mov r0, r4 - 106de: 47b8 blx r7 - _lv_style_list_add_style(list, &styles->bar_bg); - 106e0: 6831 ldr r1, [r6, #0] - 106e2: 3124 adds r1, #36 ; 0x24 - 106e4: 47a8 blx r5 - lv_obj_clean_style_list(obj, LV_BAR_PART_INDIC); - 106e6: 2101 movs r1, #1 - 106e8: 4620 mov r0, r4 - 106ea: 47c0 blx r8 - list = lv_obj_get_style_list(obj, LV_BAR_PART_INDIC); - 106ec: 2101 movs r1, #1 - 106ee: 4620 mov r0, r4 - 106f0: 47b8 blx r7 - _lv_style_list_add_style(list, &styles->bar_indic); - 106f2: 6831 ldr r1, [r6, #0] - 106f4: 3128 adds r1, #40 ; 0x28 - 106f6: e7d6 b.n 106a6 - lv_obj_clean_style_list(obj, LV_SWITCH_PART_BG); - 106f8: f8df 8184 ldr.w r8, [pc, #388] ; 10880 - _lv_style_list_add_style(list, &styles->bar_bg); - 106fc: 4e62 ldr r6, [pc, #392] ; (10888 ) - list = lv_obj_get_style_list(obj, LV_SWITCH_PART_BG); - 106fe: 4f61 ldr r7, [pc, #388] ; (10884 ) - _lv_style_list_add_style(list, &styles->bar_bg); - 10700: 4d62 ldr r5, [pc, #392] ; (1088c ) - lv_obj_clean_style_list(obj, LV_SWITCH_PART_BG); - 10702: 2100 movs r1, #0 - 10704: 47c0 blx r8 - list = lv_obj_get_style_list(obj, LV_SWITCH_PART_BG); - 10706: 2100 movs r1, #0 - 10708: 4620 mov r0, r4 - 1070a: 47b8 blx r7 - _lv_style_list_add_style(list, &styles->bar_bg); - 1070c: 6831 ldr r1, [r6, #0] - 1070e: 3124 adds r1, #36 ; 0x24 - 10710: 47a8 blx r5 - lv_obj_clean_style_list(obj, LV_SWITCH_PART_INDIC); - 10712: 2101 movs r1, #1 - 10714: 4620 mov r0, r4 - 10716: 47c0 blx r8 - list = lv_obj_get_style_list(obj, LV_SWITCH_PART_INDIC); - 10718: 2101 movs r1, #1 - 1071a: 4620 mov r0, r4 - 1071c: 47b8 blx r7 - _lv_style_list_add_style(list, &styles->bar_indic); - 1071e: 6831 ldr r1, [r6, #0] - 10720: 3128 adds r1, #40 ; 0x28 - 10722: 47a8 blx r5 - lv_obj_clean_style_list(obj, LV_SWITCH_PART_KNOB); - 10724: 2102 movs r1, #2 - 10726: 4620 mov r0, r4 - 10728: 47c0 blx r8 - list = lv_obj_get_style_list(obj, LV_SWITCH_PART_KNOB); - 1072a: 2102 movs r1, #2 - 1072c: 4620 mov r0, r4 - 1072e: 47b8 blx r7 - _lv_style_list_add_style(list, &styles->sw_knob); - 10730: 6831 ldr r1, [r6, #0] - 10732: 319c adds r1, #156 ; 0x9c - 10734: e7b7 b.n 106a6 - lv_obj_clean_style_list(obj, LV_CANVAS_PART_MAIN); - 10736: 4b52 ldr r3, [pc, #328] ; (10880 ) - 10738: 2100 movs r1, #0 - 1073a: 4798 blx r3 - break; - 1073c: e777 b.n 1062e - lv_obj_clean_style_list(obj, LV_ARC_PART_BG); - 1073e: f8df 9140 ldr.w r9, [pc, #320] ; 10880 - _lv_style_list_add_style(list, &styles->bg); - 10742: 4e51 ldr r6, [pc, #324] ; (10888 ) - list = lv_obj_get_style_list(obj, LV_ARC_PART_BG); - 10744: f8df 813c ldr.w r8, [pc, #316] ; 10884 - _lv_style_list_add_style(list, &styles->bg); - 10748: 4d50 ldr r5, [pc, #320] ; (1088c ) - lv_obj_clean_style_list(obj, LV_ARC_PART_BG); - 1074a: 2100 movs r1, #0 - 1074c: 47c8 blx r9 - list = lv_obj_get_style_list(obj, LV_ARC_PART_BG); - 1074e: 2100 movs r1, #0 - 10750: 4620 mov r0, r4 - 10752: 47c0 blx r8 - _lv_style_list_add_style(list, &styles->bg); - 10754: 6831 ldr r1, [r6, #0] - 10756: 3104 adds r1, #4 - list = lv_obj_get_style_list(obj, LV_ARC_PART_BG); - 10758: 4607 mov r7, r0 - _lv_style_list_add_style(list, &styles->bg); - 1075a: 47a8 blx r5 - _lv_style_list_add_style(list, &styles->arc_bg); - 1075c: 6831 ldr r1, [r6, #0] - 1075e: 4638 mov r0, r7 - 10760: 3120 adds r1, #32 - 10762: 47a8 blx r5 - lv_obj_clean_style_list(obj, LV_ARC_PART_INDIC); - 10764: 2101 movs r1, #1 - 10766: 4620 mov r0, r4 - 10768: 47c8 blx r9 - list = lv_obj_get_style_list(obj, LV_ARC_PART_INDIC); - 1076a: 2101 movs r1, #1 - 1076c: 4620 mov r0, r4 - 1076e: 47c0 blx r8 - _lv_style_list_add_style(list, &styles->arc_indic); - 10770: 6831 ldr r1, [r6, #0] - 10772: 311c adds r1, #28 - 10774: e797 b.n 106a6 - lv_obj_clean_style_list(obj, LV_SPINNER_PART_BG); - 10776: f8df 8108 ldr.w r8, [pc, #264] ; 10880 - _lv_style_list_add_style(list, &styles->arc_bg); - 1077a: 4e43 ldr r6, [pc, #268] ; (10888 ) - list = lv_obj_get_style_list(obj, LV_SPINNER_PART_BG); - 1077c: 4f41 ldr r7, [pc, #260] ; (10884 ) - _lv_style_list_add_style(list, &styles->arc_bg); - 1077e: 4d43 ldr r5, [pc, #268] ; (1088c ) - lv_obj_clean_style_list(obj, LV_SPINNER_PART_BG); - 10780: 2100 movs r1, #0 - 10782: 47c0 blx r8 - list = lv_obj_get_style_list(obj, LV_SPINNER_PART_BG); - 10784: 2100 movs r1, #0 - 10786: 4620 mov r0, r4 - 10788: 47b8 blx r7 - _lv_style_list_add_style(list, &styles->arc_bg); - 1078a: 6831 ldr r1, [r6, #0] - 1078c: 3120 adds r1, #32 - 1078e: 47a8 blx r5 - lv_obj_clean_style_list(obj, LV_SPINNER_PART_INDIC); - 10790: 4620 mov r0, r4 - 10792: 2101 movs r1, #1 - 10794: 47c0 blx r8 - list = lv_obj_get_style_list(obj, LV_SPINNER_PART_INDIC); - 10796: 2101 movs r1, #1 - 10798: 4620 mov r0, r4 - 1079a: 47b8 blx r7 - 1079c: e7e8 b.n 10770 - _lv_style_list_add_style(list, &styles->bar_bg); - 1079e: 4e3a ldr r6, [pc, #232] ; (10888 ) - lv_obj_clean_style_list(obj, LV_SLIDER_PART_BG); - 107a0: f8df 80dc ldr.w r8, [pc, #220] ; 10880 - list = lv_obj_get_style_list(obj, LV_SLIDER_PART_BG); - 107a4: 4f37 ldr r7, [pc, #220] ; (10884 ) - _lv_style_list_add_style(list, &styles->bar_bg); - 107a6: 4d39 ldr r5, [pc, #228] ; (1088c ) - lv_obj_clean_style_list(obj, LV_SLIDER_PART_BG); - 107a8: 2100 movs r1, #0 - 107aa: 47c0 blx r8 - list = lv_obj_get_style_list(obj, LV_SLIDER_PART_BG); - 107ac: 2100 movs r1, #0 - 107ae: 4620 mov r0, r4 - 107b0: 47b8 blx r7 - _lv_style_list_add_style(list, &styles->bar_bg); - 107b2: 6831 ldr r1, [r6, #0] - 107b4: 3124 adds r1, #36 ; 0x24 - list = lv_obj_get_style_list(obj, LV_SLIDER_PART_BG); - 107b6: 4681 mov r9, r0 - _lv_style_list_add_style(list, &styles->bar_bg); - 107b8: 47a8 blx r5 - _lv_style_list_add_style(list, &styles->slider_bg); - 107ba: 6831 ldr r1, [r6, #0] - 107bc: 4648 mov r0, r9 - 107be: 3194 adds r1, #148 ; 0x94 - 107c0: 47a8 blx r5 - lv_obj_clean_style_list(obj, LV_SLIDER_PART_INDIC); - 107c2: 2101 movs r1, #1 - 107c4: 4620 mov r0, r4 - 107c6: 47c0 blx r8 - list = lv_obj_get_style_list(obj, LV_SLIDER_PART_INDIC); - 107c8: 2101 movs r1, #1 - 107ca: 4620 mov r0, r4 - 107cc: 47b8 blx r7 - _lv_style_list_add_style(list, &styles->bar_indic); - 107ce: 6831 ldr r1, [r6, #0] - 107d0: 3128 adds r1, #40 ; 0x28 - 107d2: 47a8 blx r5 - lv_obj_clean_style_list(obj, LV_SLIDER_PART_KNOB); - 107d4: 2102 movs r1, #2 - 107d6: 4620 mov r0, r4 - 107d8: 47c0 blx r8 - list = lv_obj_get_style_list(obj, LV_SLIDER_PART_KNOB); - 107da: 2102 movs r1, #2 - 107dc: 4620 mov r0, r4 - 107de: 47b8 blx r7 - _lv_style_list_add_style(list, &styles->slider_knob); - 107e0: 6831 ldr r1, [r6, #0] - 107e2: 3190 adds r1, #144 ; 0x90 - 107e4: e75f b.n 106a6 - _lv_style_list_add_style(list, &styles->cb_bg); - 107e6: 4f28 ldr r7, [pc, #160] ; (10888 ) - lv_obj_clean_style_list(obj, LV_CHECKBOX_PART_BG); - 107e8: f8df 8094 ldr.w r8, [pc, #148] ; 10880 - list = lv_obj_get_style_list(obj, LV_CHECKBOX_PART_BG); - 107ec: 4e25 ldr r6, [pc, #148] ; (10884 ) - _lv_style_list_add_style(list, &styles->cb_bg); - 107ee: 4d27 ldr r5, [pc, #156] ; (1088c ) - lv_obj_clean_style_list(obj, LV_CHECKBOX_PART_BG); - 107f0: 2100 movs r1, #0 - 107f2: 47c0 blx r8 - list = lv_obj_get_style_list(obj, LV_CHECKBOX_PART_BG); - 107f4: 2100 movs r1, #0 - 107f6: 4620 mov r0, r4 - 107f8: 47b0 blx r6 - _lv_style_list_add_style(list, &styles->cb_bg); - 107fa: 6839 ldr r1, [r7, #0] - 107fc: 314c adds r1, #76 ; 0x4c - 107fe: 47a8 blx r5 - lv_obj_clean_style_list(obj, LV_CHECKBOX_PART_BULLET); - 10800: 2140 movs r1, #64 ; 0x40 - 10802: 4620 mov r0, r4 - 10804: 47c0 blx r8 - list = lv_obj_get_style_list(obj, LV_CHECKBOX_PART_BULLET); - 10806: 2140 movs r1, #64 ; 0x40 - 10808: 4620 mov r0, r4 - 1080a: 47b0 blx r6 - _lv_style_list_add_style(list, &styles->btn); - 1080c: 6839 ldr r1, [r7, #0] - 1080e: 3110 adds r1, #16 - list = lv_obj_get_style_list(obj, LV_CHECKBOX_PART_BULLET); - 10810: 4606 mov r6, r0 - _lv_style_list_add_style(list, &styles->btn); - 10812: 47a8 blx r5 - _lv_style_list_add_style(list, &styles->cb_bullet); - 10814: 6839 ldr r1, [r7, #0] - 10816: 4630 mov r0, r6 - 10818: 3150 adds r1, #80 ; 0x50 - 1081a: e744 b.n 106a6 - lv_obj_clean_style_list(obj, LV_MSGBOX_PART_BG); - 1081c: 4b18 ldr r3, [pc, #96] ; (10880 ) - _lv_style_list_add_style(list, &styles->bg); - 1081e: 4f1a ldr r7, [pc, #104] ; (10888 ) - 10820: 4e1a ldr r6, [pc, #104] ; (1088c ) - lv_obj_clean_style_list(obj, LV_MSGBOX_PART_BG); - 10822: 2100 movs r1, #0 - 10824: 4798 blx r3 - list = lv_obj_get_style_list(obj, LV_MSGBOX_PART_BG); - 10826: 4b17 ldr r3, [pc, #92] ; (10884 ) - 10828: 2100 movs r1, #0 - 1082a: 4620 mov r0, r4 - 1082c: 4798 blx r3 - _lv_style_list_add_style(list, &styles->bg); - 1082e: 6839 ldr r1, [r7, #0] - 10830: 3104 adds r1, #4 - list = lv_obj_get_style_list(obj, LV_MSGBOX_PART_BG); - 10832: 4605 mov r5, r0 - _lv_style_list_add_style(list, &styles->bg); - 10834: 47b0 blx r6 - _lv_style_list_add_style(list, &styles->mbox_bg); - 10836: 6839 ldr r1, [r7, #0] - 10838: 317c adds r1, #124 ; 0x7c - _lv_style_list_add_style(list, &styles->lmeter); - 1083a: 4628 mov r0, r5 - 1083c: e07b b.n 10936 - lv_obj_clean_style_list(obj, LV_MSGBOX_PART_BTN_BG); - 1083e: f8df 8040 ldr.w r8, [pc, #64] ; 10880 - _lv_style_list_add_style(list, &styles->pad_small); - 10842: 4e11 ldr r6, [pc, #68] ; (10888 ) - list = lv_obj_get_style_list(obj, LV_MSGBOX_PART_BTN_BG); - 10844: 4f0f ldr r7, [pc, #60] ; (10884 ) - _lv_style_list_add_style(list, &styles->pad_small); - 10846: 4d11 ldr r5, [pc, #68] ; (1088c ) - lv_obj_clean_style_list(obj, LV_MSGBOX_PART_BTN_BG); - 10848: 2140 movs r1, #64 ; 0x40 - 1084a: 47c0 blx r8 - list = lv_obj_get_style_list(obj, LV_MSGBOX_PART_BTN_BG); - 1084c: 2140 movs r1, #64 ; 0x40 - 1084e: 4620 mov r0, r4 - 10850: 47b8 blx r7 - _lv_style_list_add_style(list, &styles->pad_small); - 10852: 6831 ldr r1, [r6, #0] - 10854: 3118 adds r1, #24 - 10856: 47a8 blx r5 - lv_obj_clean_style_list(obj, LV_MSGBOX_PART_BTN); - 10858: 2141 movs r1, #65 ; 0x41 - 1085a: 4620 mov r0, r4 - 1085c: 47c0 blx r8 - list = lv_obj_get_style_list(obj, LV_MSGBOX_PART_BTN); - 1085e: 2141 movs r1, #65 ; 0x41 - 10860: 4620 mov r0, r4 - 10862: 47b8 blx r7 - _lv_style_list_add_style(list, &styles->btn); - 10864: 6831 ldr r1, [r6, #0] - 10866: 3110 adds r1, #16 - 10868: e71d b.n 106a6 - lv_obj_clean_style_list(obj, LV_LED_PART_MAIN); - 1086a: 4b05 ldr r3, [pc, #20] ; (10880 ) - 1086c: 2100 movs r1, #0 - 1086e: 4798 blx r3 - list = lv_obj_get_style_list(obj, LV_LED_PART_MAIN); - 10870: 4b04 ldr r3, [pc, #16] ; (10884 ) - 10872: 2100 movs r1, #0 - 10874: 4620 mov r0, r4 - 10876: 4798 blx r3 - _lv_style_list_add_style(list, &styles->led); - 10878: 4b03 ldr r3, [pc, #12] ; (10888 ) - 1087a: 6819 ldr r1, [r3, #0] - 1087c: 316c adds r1, #108 ; 0x6c - 1087e: e6d4 b.n 1062a - 10880: 000027cd .word 0x000027cd - 10884: 00002711 .word 0x00002711 - 10888: 200057a4 .word 0x200057a4 - 1088c: 0000589d .word 0x0000589d - 10890: 00003015 .word 0x00003015 - lv_obj_clean_style_list(obj, LV_PAGE_PART_BG); - 10894: f8df 82a8 ldr.w r8, [pc, #680] ; 10b40 - _lv_style_list_add_style(list, &styles->bg); - 10898: 4ea6 ldr r6, [pc, #664] ; (10b34 ) - list = lv_obj_get_style_list(obj, LV_PAGE_PART_BG); - 1089a: 4fa7 ldr r7, [pc, #668] ; (10b38 ) - _lv_style_list_add_style(list, &styles->bg); - 1089c: 4da7 ldr r5, [pc, #668] ; (10b3c ) - lv_obj_clean_style_list(obj, LV_PAGE_PART_BG); - 1089e: 2100 movs r1, #0 - 108a0: 47c0 blx r8 - list = lv_obj_get_style_list(obj, LV_PAGE_PART_BG); - 108a2: 2100 movs r1, #0 - 108a4: 4620 mov r0, r4 - 108a6: 47b8 blx r7 - _lv_style_list_add_style(list, &styles->bg); - 108a8: 6831 ldr r1, [r6, #0] - 108aa: 3104 adds r1, #4 - 108ac: 47a8 blx r5 - lv_obj_clean_style_list(obj, LV_PAGE_PART_SCROLLABLE); - 108ae: 2140 movs r1, #64 ; 0x40 - 108b0: 4620 mov r0, r4 - 108b2: 47c0 blx r8 - list = lv_obj_get_style_list(obj, LV_PAGE_PART_SCROLLABLE); - 108b4: 2140 movs r1, #64 ; 0x40 - 108b6: 4620 mov r0, r4 - 108b8: 47b8 blx r7 - _lv_style_list_add_style(list, &styles->pad_inner); - 108ba: 6831 ldr r1, [r6, #0] - 108bc: 3114 adds r1, #20 - _lv_style_list_add_style(list, &styles->scr); - 108be: 47a8 blx r5 - lv_obj_clean_style_list(obj, LV_TILEVIEW_PART_SCROLLBAR); - 108c0: 2101 movs r1, #1 - 108c2: 4620 mov r0, r4 - 108c4: 47c0 blx r8 - list = lv_obj_get_style_list(obj, LV_TILEVIEW_PART_SCROLLBAR); - 108c6: 2101 movs r1, #1 - 108c8: 4620 mov r0, r4 - 108ca: 47b8 blx r7 - _lv_style_list_add_style(list, &styles->sb); - 108cc: 6831 ldr r1, [r6, #0] - 108ce: 3180 adds r1, #128 ; 0x80 - 108d0: 47a8 blx r5 - lv_obj_clean_style_list(obj, LV_TILEVIEW_PART_EDGE_FLASH); - 108d2: 2102 movs r1, #2 - 108d4: 4620 mov r0, r4 - 108d6: 47c0 blx r8 - list = lv_obj_get_style_list(obj, LV_TILEVIEW_PART_EDGE_FLASH); - 108d8: 2102 movs r1, #2 - 108da: 4620 mov r0, r4 - 108dc: 47b8 blx r7 - _lv_style_list_add_style(list, &styles->edge_flash); - 108de: 6831 ldr r1, [r6, #0] - 108e0: 3184 adds r1, #132 ; 0x84 - 108e2: e6e0 b.n 106a6 - lv_obj_clean_style_list(obj, LV_TABVIEW_PART_BG); - 108e4: 4d96 ldr r5, [pc, #600] ; (10b40 ) - _lv_style_list_add_style(list, &styles->scr); - 108e6: 4f93 ldr r7, [pc, #588] ; (10b34 ) - list = lv_obj_get_style_list(obj, LV_TABVIEW_PART_BG); - 108e8: f8df 824c ldr.w r8, [pc, #588] ; 10b38 - _lv_style_list_add_style(list, &styles->scr); - 108ec: 4e93 ldr r6, [pc, #588] ; (10b3c ) - lv_obj_clean_style_list(obj, LV_TABVIEW_PART_BG); - 108ee: 2100 movs r1, #0 - 108f0: 47a8 blx r5 - list = lv_obj_get_style_list(obj, LV_TABVIEW_PART_BG); - 108f2: 2100 movs r1, #0 - 108f4: 4620 mov r0, r4 - 108f6: 47c0 blx r8 - _lv_style_list_add_style(list, &styles->scr); - 108f8: 6839 ldr r1, [r7, #0] - 108fa: 47b0 blx r6 - lv_obj_clean_style_list(obj, LV_TABVIEW_PART_BG_SCRLLABLE); - 108fc: 2140 movs r1, #64 ; 0x40 - 108fe: 4620 mov r0, r4 - 10900: 47a8 blx r5 - lv_obj_clean_style_list(obj, LV_TABVIEW_PART_TAB_BG); - 10902: 2141 movs r1, #65 ; 0x41 - 10904: 4620 mov r0, r4 - 10906: 47a8 blx r5 - list = lv_obj_get_style_list(obj, LV_TABVIEW_PART_TAB_BG); - 10908: 2141 movs r1, #65 ; 0x41 - 1090a: 4620 mov r0, r4 - 1090c: 47c0 blx r8 - _lv_style_list_add_style(list, &styles->tabview_btns_bg); - 1090e: 6839 ldr r1, [r7, #0] - 10910: 31a8 adds r1, #168 ; 0xa8 - 10912: 47b0 blx r6 - lv_obj_clean_style_list(obj, LV_TABVIEW_PART_INDIC); - 10914: 2143 movs r1, #67 ; 0x43 - 10916: 4620 mov r0, r4 - 10918: 47a8 blx r5 - list = lv_obj_get_style_list(obj, LV_TABVIEW_PART_INDIC); - 1091a: 2143 movs r1, #67 ; 0x43 - 1091c: 4620 mov r0, r4 - 1091e: 47c0 blx r8 - _lv_style_list_add_style(list, &styles->tabview_indic); - 10920: 6839 ldr r1, [r7, #0] - 10922: 31ac adds r1, #172 ; 0xac - 10924: 47b0 blx r6 - lv_obj_clean_style_list(obj, LV_TABVIEW_PART_TAB_BTN); - 10926: 2142 movs r1, #66 ; 0x42 - 10928: 4620 mov r0, r4 - 1092a: 47a8 blx r5 - list = lv_obj_get_style_list(obj, LV_TABVIEW_PART_TAB_BTN); - 1092c: 2142 movs r1, #66 ; 0x42 - 1092e: 4620 mov r0, r4 - 10930: 47c0 blx r8 - _lv_style_list_add_style(list, &styles->tabview_btns); - 10932: 6839 ldr r1, [r7, #0] - 10934: 31a4 adds r1, #164 ; 0xa4 - _lv_style_list_add_style(list, &styles->lmeter); - 10936: 47b0 blx r6 - break; - 10938: e679 b.n 1062e - lv_obj_clean_style_list(obj, LV_PAGE_PART_BG); - 1093a: 4d81 ldr r5, [pc, #516] ; (10b40 ) - 1093c: 2100 movs r1, #0 - 1093e: 47a8 blx r5 - lv_obj_clean_style_list(obj, LV_PAGE_PART_SCROLLABLE); - 10940: 2140 movs r1, #64 ; 0x40 - 10942: 4620 mov r0, r4 - 10944: 47a8 blx r5 - list = lv_obj_get_style_list(obj, LV_PAGE_PART_SCROLLABLE); - 10946: 4b7c ldr r3, [pc, #496] ; (10b38 ) - 10948: 2140 movs r1, #64 ; 0x40 - 1094a: 4620 mov r0, r4 - 1094c: 4798 blx r3 - _lv_style_list_add_style(list, &styles->tabview_page_scrl); - 1094e: 4b79 ldr r3, [pc, #484] ; (10b34 ) - 10950: 6819 ldr r1, [r3, #0] - 10952: 31b0 adds r1, #176 ; 0xb0 - 10954: e669 b.n 1062a - lv_obj_clean_style_list(obj, LV_TILEVIEW_PART_BG); - 10956: 2100 movs r1, #0 - 10958: f8df 81e4 ldr.w r8, [pc, #484] ; 10b40 - _lv_style_list_add_style(list, &styles->scr); - 1095c: 4e75 ldr r6, [pc, #468] ; (10b34 ) - list = lv_obj_get_style_list(obj, LV_TILEVIEW_PART_BG); - 1095e: 4f76 ldr r7, [pc, #472] ; (10b38 ) - _lv_style_list_add_style(list, &styles->scr); - 10960: 4d76 ldr r5, [pc, #472] ; (10b3c ) - lv_obj_clean_style_list(obj, LV_TILEVIEW_PART_BG); - 10962: 47c0 blx r8 - list = lv_obj_get_style_list(obj, LV_TILEVIEW_PART_BG); - 10964: 2100 movs r1, #0 - 10966: 4620 mov r0, r4 - 10968: 47b8 blx r7 - _lv_style_list_add_style(list, &styles->scr); - 1096a: 6831 ldr r1, [r6, #0] - 1096c: e7a7 b.n 108be - _lv_style_list_add_style(list, &styles->bg); - 1096e: 4e71 ldr r6, [pc, #452] ; (10b34 ) - lv_obj_clean_style_list(obj, LV_ROLLER_PART_BG); - 10970: f8df 91cc ldr.w r9, [pc, #460] ; 10b40 - list = lv_obj_get_style_list(obj, LV_ROLLER_PART_BG); - 10974: f8df 81c0 ldr.w r8, [pc, #448] ; 10b38 - _lv_style_list_add_style(list, &styles->bg); - 10978: 4d70 ldr r5, [pc, #448] ; (10b3c ) - lv_obj_clean_style_list(obj, LV_ROLLER_PART_BG); - 1097a: 2100 movs r1, #0 - 1097c: 47c8 blx r9 - list = lv_obj_get_style_list(obj, LV_ROLLER_PART_BG); - 1097e: 2100 movs r1, #0 - 10980: 4620 mov r0, r4 - 10982: 47c0 blx r8 - _lv_style_list_add_style(list, &styles->bg); - 10984: 6831 ldr r1, [r6, #0] - 10986: 3104 adds r1, #4 - list = lv_obj_get_style_list(obj, LV_ROLLER_PART_BG); - 10988: 4607 mov r7, r0 - _lv_style_list_add_style(list, &styles->bg); - 1098a: 47a8 blx r5 - _lv_style_list_add_style(list, &styles->roller_bg); - 1098c: 6831 ldr r1, [r6, #0] - 1098e: 4638 mov r0, r7 - 10990: 3188 adds r1, #136 ; 0x88 - 10992: 47a8 blx r5 - lv_obj_clean_style_list(obj, LV_ROLLER_PART_SELECTED); - 10994: 2103 movs r1, #3 - 10996: 4620 mov r0, r4 - 10998: 47c8 blx r9 - list = lv_obj_get_style_list(obj, LV_ROLLER_PART_SELECTED); - 1099a: 2103 movs r1, #3 - 1099c: 4620 mov r0, r4 - 1099e: 47c0 blx r8 - _lv_style_list_add_style(list, &styles->roller_sel); - 109a0: 6831 ldr r1, [r6, #0] - 109a2: 318c adds r1, #140 ; 0x8c - 109a4: e67f b.n 106a6 - lv_obj_clean_style_list(obj, LV_OBJMASK_PART_MAIN); - 109a6: 4b66 ldr r3, [pc, #408] ; (10b40 ) - 109a8: 2100 movs r1, #0 - 109aa: 4798 blx r3 - list = lv_obj_get_style_list(obj, LV_OBJMASK_PART_MAIN); - 109ac: 4b62 ldr r3, [pc, #392] ; (10b38 ) - 109ae: 2100 movs r1, #0 - 109b0: 4620 mov r0, r4 - 109b2: 4798 blx r3 - break; - 109b4: e63b b.n 1062e - lv_obj_clean_style_list(obj, LV_LIST_PART_BG); - 109b6: 4f62 ldr r7, [pc, #392] ; (10b40 ) - _lv_style_list_add_style(list, &styles->bg); - 109b8: 4e5e ldr r6, [pc, #376] ; (10b34 ) - list = lv_obj_get_style_list(obj, LV_LIST_PART_BG); - 109ba: f8df 917c ldr.w r9, [pc, #380] ; 10b38 - _lv_style_list_add_style(list, &styles->bg); - 109be: 4d5f ldr r5, [pc, #380] ; (10b3c ) - lv_obj_clean_style_list(obj, LV_LIST_PART_BG); - 109c0: 2100 movs r1, #0 - 109c2: 47b8 blx r7 - list = lv_obj_get_style_list(obj, LV_LIST_PART_BG); - 109c4: 2100 movs r1, #0 - 109c6: 4620 mov r0, r4 - 109c8: 47c8 blx r9 - _lv_style_list_add_style(list, &styles->bg); - 109ca: 6831 ldr r1, [r6, #0] - 109cc: 3104 adds r1, #4 - list = lv_obj_get_style_list(obj, LV_LIST_PART_BG); - 109ce: 4680 mov r8, r0 - _lv_style_list_add_style(list, &styles->bg); - 109d0: 47a8 blx r5 - _lv_style_list_add_style(list, &styles->list_bg); - 109d2: 6831 ldr r1, [r6, #0] - 109d4: 4640 mov r0, r8 - 109d6: 3174 adds r1, #116 ; 0x74 - 109d8: 47a8 blx r5 - lv_obj_clean_style_list(obj, LV_LIST_PART_SCROLLABLE); - 109da: 2140 movs r1, #64 ; 0x40 - 109dc: 4620 mov r0, r4 - 109de: 47b8 blx r7 - lv_obj_clean_style_list(obj, LV_LIST_PART_SCROLLBAR); - 109e0: 2101 movs r1, #1 - 109e2: 4620 mov r0, r4 - 109e4: 47b8 blx r7 - list = lv_obj_get_style_list(obj, LV_LIST_PART_SCROLLBAR); - 109e6: 2101 movs r1, #1 - 109e8: 4620 mov r0, r4 - 109ea: 47c8 blx r9 - _lv_style_list_add_style(list, &styles->sb); - 109ec: 6831 ldr r1, [r6, #0] - 109ee: 3180 adds r1, #128 ; 0x80 - 109f0: e659 b.n 106a6 - lv_obj_clean_style_list(obj, LV_BTN_PART_MAIN); - 109f2: 4b53 ldr r3, [pc, #332] ; (10b40 ) - 109f4: 2100 movs r1, #0 - 109f6: 4798 blx r3 - list = lv_obj_get_style_list(obj, LV_BTN_PART_MAIN); - 109f8: 4b4f ldr r3, [pc, #316] ; (10b38 ) - 109fa: 2100 movs r1, #0 - 109fc: 4620 mov r0, r4 - 109fe: 4798 blx r3 - _lv_style_list_add_style(list, &styles->list_btn); - 10a00: 4b4c ldr r3, [pc, #304] ; (10b34 ) - 10a02: 6819 ldr r1, [r3, #0] - 10a04: 3178 adds r1, #120 ; 0x78 - 10a06: e610 b.n 1062a - _lv_style_list_add_style(list, &styles->bg); - 10a08: 4e4a ldr r6, [pc, #296] ; (10b34 ) - lv_obj_clean_style_list(obj, LV_DROPDOWN_PART_MAIN); - 10a0a: f8df 8134 ldr.w r8, [pc, #308] ; 10b40 - list = lv_obj_get_style_list(obj, LV_DROPDOWN_PART_MAIN); - 10a0e: 4f4a ldr r7, [pc, #296] ; (10b38 ) - _lv_style_list_add_style(list, &styles->bg); - 10a10: 4d4a ldr r5, [pc, #296] ; (10b3c ) - lv_obj_clean_style_list(obj, LV_DROPDOWN_PART_MAIN); - 10a12: 2100 movs r1, #0 - 10a14: 47c0 blx r8 - list = lv_obj_get_style_list(obj, LV_DROPDOWN_PART_MAIN); - 10a16: 2100 movs r1, #0 - 10a18: 4620 mov r0, r4 - 10a1a: 47b8 blx r7 - _lv_style_list_add_style(list, &styles->bg); - 10a1c: 6831 ldr r1, [r6, #0] - 10a1e: 3104 adds r1, #4 - list = lv_obj_get_style_list(obj, LV_DROPDOWN_PART_MAIN); - 10a20: 4681 mov r9, r0 - _lv_style_list_add_style(list, &styles->bg); - 10a22: 47a8 blx r5 - _lv_style_list_add_style(list, &styles->bg_click); - 10a24: 6831 ldr r1, [r6, #0] - 10a26: 4648 mov r0, r9 - 10a28: 3108 adds r1, #8 - 10a2a: 47a8 blx r5 - _lv_style_list_add_style(list, &styles->pad_small); - 10a2c: 6831 ldr r1, [r6, #0] - 10a2e: 4648 mov r0, r9 - 10a30: 3118 adds r1, #24 - 10a32: 47a8 blx r5 - lv_obj_clean_style_list(obj, LV_DROPDOWN_PART_LIST); - 10a34: 2140 movs r1, #64 ; 0x40 - 10a36: 4620 mov r0, r4 - 10a38: 47c0 blx r8 - list = lv_obj_get_style_list(obj, LV_DROPDOWN_PART_LIST); - 10a3a: 2140 movs r1, #64 ; 0x40 - 10a3c: 4620 mov r0, r4 - 10a3e: 47b8 blx r7 - _lv_style_list_add_style(list, &styles->bg); - 10a40: 6831 ldr r1, [r6, #0] - 10a42: 3104 adds r1, #4 - list = lv_obj_get_style_list(obj, LV_DROPDOWN_PART_LIST); - 10a44: 4681 mov r9, r0 - _lv_style_list_add_style(list, &styles->bg); - 10a46: 47a8 blx r5 - _lv_style_list_add_style(list, &styles->ddlist_page); - 10a48: 6831 ldr r1, [r6, #0] - 10a4a: 4648 mov r0, r9 - 10a4c: 3154 adds r1, #84 ; 0x54 - 10a4e: 47a8 blx r5 - lv_obj_clean_style_list(obj, LV_DROPDOWN_PART_SCROLLBAR); - 10a50: 2141 movs r1, #65 ; 0x41 - 10a52: 4620 mov r0, r4 - 10a54: 47c0 blx r8 - list = lv_obj_get_style_list(obj, LV_DROPDOWN_PART_SCROLLBAR); - 10a56: 2141 movs r1, #65 ; 0x41 - 10a58: 4620 mov r0, r4 - 10a5a: 47b8 blx r7 - _lv_style_list_add_style(list, &styles->sb); - 10a5c: 6831 ldr r1, [r6, #0] - 10a5e: 3180 adds r1, #128 ; 0x80 - 10a60: 47a8 blx r5 - lv_obj_clean_style_list(obj, LV_DROPDOWN_PART_SELECTED); - 10a62: 2142 movs r1, #66 ; 0x42 - 10a64: 4620 mov r0, r4 - 10a66: 47c0 blx r8 - list = lv_obj_get_style_list(obj, LV_DROPDOWN_PART_SELECTED); - 10a68: 2142 movs r1, #66 ; 0x42 - 10a6a: 4620 mov r0, r4 - 10a6c: 47b8 blx r7 - _lv_style_list_add_style(list, &styles->ddlist_sel); - 10a6e: 6831 ldr r1, [r6, #0] - 10a70: 3158 adds r1, #88 ; 0x58 - 10a72: e618 b.n 106a6 - _lv_style_list_add_style(list, &styles->bg); - 10a74: 4e2f ldr r6, [pc, #188] ; (10b34 ) - lv_obj_clean_style_list(obj, LV_CHART_PART_BG); - 10a76: f8df 90c8 ldr.w r9, [pc, #200] ; 10b40 - list = lv_obj_get_style_list(obj, LV_CHART_PART_BG); - 10a7a: f8df 80bc ldr.w r8, [pc, #188] ; 10b38 - _lv_style_list_add_style(list, &styles->bg); - 10a7e: 4d2f ldr r5, [pc, #188] ; (10b3c ) - lv_obj_clean_style_list(obj, LV_CHART_PART_BG); - 10a80: 2100 movs r1, #0 - 10a82: 47c8 blx r9 - list = lv_obj_get_style_list(obj, LV_CHART_PART_BG); - 10a84: 2100 movs r1, #0 - 10a86: 4620 mov r0, r4 - 10a88: 47c0 blx r8 - _lv_style_list_add_style(list, &styles->bg); - 10a8a: 6831 ldr r1, [r6, #0] - 10a8c: 3104 adds r1, #4 - list = lv_obj_get_style_list(obj, LV_CHART_PART_BG); - 10a8e: 4607 mov r7, r0 - _lv_style_list_add_style(list, &styles->bg); - 10a90: 47a8 blx r5 - _lv_style_list_add_style(list, &styles->chart_bg); - 10a92: 6831 ldr r1, [r6, #0] - 10a94: 4638 mov r0, r7 - 10a96: 3140 adds r1, #64 ; 0x40 - 10a98: 47a8 blx r5 - _lv_style_list_add_style(list, &styles->pad_small); - 10a9a: 6831 ldr r1, [r6, #0] - 10a9c: 4638 mov r0, r7 - 10a9e: 3118 adds r1, #24 - 10aa0: 47a8 blx r5 - lv_obj_clean_style_list(obj, LV_CHART_PART_SERIES_BG); - 10aa2: 2101 movs r1, #1 - 10aa4: 4620 mov r0, r4 - 10aa6: 47c8 blx r9 - list = lv_obj_get_style_list(obj, LV_CHART_PART_SERIES_BG); - 10aa8: 2101 movs r1, #1 - 10aaa: 4620 mov r0, r4 - 10aac: 47c0 blx r8 - _lv_style_list_add_style(list, &styles->pad_small); - 10aae: 6831 ldr r1, [r6, #0] - 10ab0: 3118 adds r1, #24 - list = lv_obj_get_style_list(obj, LV_CHART_PART_SERIES_BG); - 10ab2: 4607 mov r7, r0 - _lv_style_list_add_style(list, &styles->pad_small); - 10ab4: 47a8 blx r5 - _lv_style_list_add_style(list, &styles->chart_series_bg); - 10ab6: 6831 ldr r1, [r6, #0] - 10ab8: 4638 mov r0, r7 - 10aba: 3144 adds r1, #68 ; 0x44 - 10abc: 47a8 blx r5 - lv_obj_clean_style_list(obj, LV_CHART_PART_SERIES); - 10abe: 2102 movs r1, #2 - 10ac0: 4620 mov r0, r4 - 10ac2: 47c8 blx r9 - list = lv_obj_get_style_list(obj, LV_CHART_PART_SERIES); - 10ac4: 2102 movs r1, #2 - 10ac6: 4620 mov r0, r4 - 10ac8: 47c0 blx r8 - _lv_style_list_add_style(list, &styles->chart_series); - 10aca: 6831 ldr r1, [r6, #0] - 10acc: 3148 adds r1, #72 ; 0x48 - 10ace: e5ea b.n 106a6 - lv_obj_clean_style_list(obj, LV_TABLE_PART_BG); - 10ad0: f8df 806c ldr.w r8, [pc, #108] ; 10b40 - _lv_style_list_add_style(list, &styles->bg); - 10ad4: 4e17 ldr r6, [pc, #92] ; (10b34 ) - list = lv_obj_get_style_list(obj, LV_TABLE_PART_BG); - 10ad6: 4f18 ldr r7, [pc, #96] ; (10b38 ) - _lv_style_list_add_style(list, &styles->bg); - 10ad8: 4d18 ldr r5, [pc, #96] ; (10b3c ) - lv_obj_clean_style_list(obj, LV_TABLE_PART_BG); - 10ada: 2100 movs r1, #0 - 10adc: 47c0 blx r8 - list = lv_obj_get_style_list(obj, LV_TABLE_PART_BG); - 10ade: 2100 movs r1, #0 - 10ae0: 4620 mov r0, r4 - 10ae2: 47b8 blx r7 - _lv_style_list_add_style(list, &styles->bg); - 10ae4: 6831 ldr r1, [r6, #0] - 10ae6: 3104 adds r1, #4 - 10ae8: 47a8 blx r5 - lv_obj_clean_style_list(obj, LV_TABLE_PART_CELL1); - 10aea: 2101 movs r1, #1 - 10aec: 4620 mov r0, r4 - 10aee: 47c0 blx r8 - list = lv_obj_get_style_list(obj, LV_TABLE_PART_CELL1); - 10af0: 2101 movs r1, #1 - 10af2: 4620 mov r0, r4 - 10af4: 47b8 blx r7 - _lv_style_list_add_style(list, &styles->table_cell); - 10af6: 6831 ldr r1, [r6, #0] - 10af8: 31a0 adds r1, #160 ; 0xa0 - 10afa: 47a8 blx r5 - lv_obj_clean_style_list(obj, LV_TABLE_PART_CELL2); - 10afc: 2102 movs r1, #2 - 10afe: 4620 mov r0, r4 - 10b00: 47c0 blx r8 - list = lv_obj_get_style_list(obj, LV_TABLE_PART_CELL2); - 10b02: 2102 movs r1, #2 - 10b04: 4620 mov r0, r4 - 10b06: 47b8 blx r7 - _lv_style_list_add_style(list, &styles->table_cell); - 10b08: 6831 ldr r1, [r6, #0] - 10b0a: 31a0 adds r1, #160 ; 0xa0 - 10b0c: 47a8 blx r5 - lv_obj_clean_style_list(obj, LV_TABLE_PART_CELL3); - 10b0e: 2103 movs r1, #3 - 10b10: 4620 mov r0, r4 - 10b12: 47c0 blx r8 - list = lv_obj_get_style_list(obj, LV_TABLE_PART_CELL3); - 10b14: 2103 movs r1, #3 - 10b16: 4620 mov r0, r4 - 10b18: 47b8 blx r7 - _lv_style_list_add_style(list, &styles->table_cell); - 10b1a: 6831 ldr r1, [r6, #0] - 10b1c: 31a0 adds r1, #160 ; 0xa0 - 10b1e: 47a8 blx r5 - lv_obj_clean_style_list(obj, LV_TABLE_PART_CELL4); - 10b20: 2104 movs r1, #4 - 10b22: 4620 mov r0, r4 - 10b24: 47c0 blx r8 - list = lv_obj_get_style_list(obj, LV_TABLE_PART_CELL4); - 10b26: 2104 movs r1, #4 - 10b28: 4620 mov r0, r4 - 10b2a: 47b8 blx r7 - _lv_style_list_add_style(list, &styles->table_cell); - 10b2c: 6831 ldr r1, [r6, #0] - 10b2e: 31a0 adds r1, #160 ; 0xa0 - 10b30: e5b9 b.n 106a6 - 10b32: bf00 nop - 10b34: 200057a4 .word 0x200057a4 - 10b38: 00002711 .word 0x00002711 - 10b3c: 0000589d .word 0x0000589d - 10b40: 000027cd .word 0x000027cd - lv_obj_clean_style_list(obj, LV_WIN_PART_BG); - 10b44: f8df 8200 ldr.w r8, [pc, #512] ; 10d48 - _lv_style_list_add_style(list, &styles->scr); - 10b48: 4e7c ldr r6, [pc, #496] ; (10d3c ) - list = lv_obj_get_style_list(obj, LV_WIN_PART_BG); - 10b4a: 4f7d ldr r7, [pc, #500] ; (10d40 ) - _lv_style_list_add_style(list, &styles->scr); - 10b4c: 4d7d ldr r5, [pc, #500] ; (10d44 ) - lv_obj_clean_style_list(obj, LV_WIN_PART_BG); - 10b4e: 2100 movs r1, #0 - 10b50: 47c0 blx r8 - list = lv_obj_get_style_list(obj, LV_WIN_PART_BG); - 10b52: 2100 movs r1, #0 - 10b54: 4620 mov r0, r4 - 10b56: 47b8 blx r7 - _lv_style_list_add_style(list, &styles->scr); - 10b58: 6831 ldr r1, [r6, #0] - 10b5a: 47a8 blx r5 - lv_obj_clean_style_list(obj, LV_WIN_PART_SCROLLBAR); - 10b5c: 2142 movs r1, #66 ; 0x42 - 10b5e: 4620 mov r0, r4 - 10b60: 47c0 blx r8 - list = lv_obj_get_style_list(obj, LV_WIN_PART_SCROLLBAR); - 10b62: 2142 movs r1, #66 ; 0x42 - 10b64: 4620 mov r0, r4 - 10b66: 47b8 blx r7 - _lv_style_list_add_style(list, &styles->sb); - 10b68: 6831 ldr r1, [r6, #0] - 10b6a: 3180 adds r1, #128 ; 0x80 - 10b6c: 47a8 blx r5 - lv_obj_clean_style_list(obj, LV_WIN_PART_CONTENT_SCROLLABLE); - 10b6e: 2141 movs r1, #65 ; 0x41 - 10b70: 4620 mov r0, r4 - 10b72: 47c0 blx r8 - list = lv_obj_get_style_list(obj, LV_WIN_PART_CONTENT_SCROLLABLE); - 10b74: 2141 movs r1, #65 ; 0x41 - 10b76: 4620 mov r0, r4 - 10b78: 47b8 blx r7 - _lv_style_list_add_style(list, &styles->tabview_page_scrl); - 10b7a: 6831 ldr r1, [r6, #0] - 10b7c: 31b0 adds r1, #176 ; 0xb0 - 10b7e: 47a8 blx r5 - lv_obj_clean_style_list(obj, LV_WIN_PART_HEADER); - 10b80: 2140 movs r1, #64 ; 0x40 - 10b82: 4620 mov r0, r4 - 10b84: 47c0 blx r8 - list = lv_obj_get_style_list(obj, LV_WIN_PART_HEADER); - 10b86: 2140 movs r1, #64 ; 0x40 - 10b88: 4620 mov r0, r4 - 10b8a: 47b8 blx r7 - _lv_style_list_add_style(list, &styles->tabview_btns_bg); - 10b8c: 6831 ldr r1, [r6, #0] - 10b8e: 31a8 adds r1, #168 ; 0xa8 - 10b90: e589 b.n 106a6 - lv_obj_clean_style_list(obj, LV_BTN_PART_MAIN); - 10b92: 4b6d ldr r3, [pc, #436] ; (10d48 ) - 10b94: 2100 movs r1, #0 - 10b96: 4798 blx r3 - list = lv_obj_get_style_list(obj, LV_BTN_PART_MAIN); - 10b98: 4b69 ldr r3, [pc, #420] ; (10d40 ) - 10b9a: 2100 movs r1, #0 - 10b9c: 4620 mov r0, r4 - 10b9e: 4798 blx r3 - _lv_style_list_add_style(list, &styles->tabview_btns); - 10ba0: 4b66 ldr r3, [pc, #408] ; (10d3c ) - 10ba2: 6819 ldr r1, [r3, #0] - 10ba4: 31a4 adds r1, #164 ; 0xa4 - 10ba6: e540 b.n 1062a - lv_obj_clean_style_list(obj, LV_TEXTAREA_PART_BG); - 10ba8: f8df 819c ldr.w r8, [pc, #412] ; 10d48 - _lv_style_list_add_style(list, &styles->bg); - 10bac: 4e63 ldr r6, [pc, #396] ; (10d3c ) - list = lv_obj_get_style_list(obj, LV_TEXTAREA_PART_BG); - 10bae: 4f64 ldr r7, [pc, #400] ; (10d40 ) - _lv_style_list_add_style(list, &styles->bg); - 10bb0: 4d64 ldr r5, [pc, #400] ; (10d44 ) - lv_obj_clean_style_list(obj, LV_TEXTAREA_PART_BG); - 10bb2: 2100 movs r1, #0 - 10bb4: 47c0 blx r8 - list = lv_obj_get_style_list(obj, LV_TEXTAREA_PART_BG); - 10bb6: 2100 movs r1, #0 - 10bb8: 4620 mov r0, r4 - 10bba: 47b8 blx r7 - _lv_style_list_add_style(list, &styles->bg); - 10bbc: 6831 ldr r1, [r6, #0] - 10bbe: 3104 adds r1, #4 - list = lv_obj_get_style_list(obj, LV_TEXTAREA_PART_BG); - 10bc0: 4681 mov r9, r0 - _lv_style_list_add_style(list, &styles->bg); - 10bc2: 47a8 blx r5 - _lv_style_list_add_style(list, &styles->pad_small); - 10bc4: 6831 ldr r1, [r6, #0] - 10bc6: 4648 mov r0, r9 - 10bc8: 3118 adds r1, #24 - 10bca: 47a8 blx r5 - lv_obj_clean_style_list(obj, LV_TEXTAREA_PART_PLACEHOLDER); - 10bcc: 4620 mov r0, r4 - 10bce: 2104 movs r1, #4 - 10bd0: 47c0 blx r8 - list = lv_obj_get_style_list(obj, LV_TEXTAREA_PART_PLACEHOLDER); - 10bd2: 2104 movs r1, #4 - 10bd4: 4620 mov r0, r4 - 10bd6: 47b8 blx r7 - _lv_style_list_add_style(list, &styles->ta_placeholder); - 10bd8: 6831 ldr r1, [r6, #0] - 10bda: 31b8 adds r1, #184 ; 0xb8 - 10bdc: 47a8 blx r5 - lv_obj_clean_style_list(obj, LV_TEXTAREA_PART_CURSOR); - 10bde: 4620 mov r0, r4 - 10be0: 2103 movs r1, #3 - 10be2: 47c0 blx r8 - list = lv_obj_get_style_list(obj, LV_TEXTAREA_PART_CURSOR); - 10be4: 2103 movs r1, #3 - 10be6: 4620 mov r0, r4 - 10be8: 47b8 blx r7 - _lv_style_list_add_style(list, &styles->ta_cursor); - 10bea: 6831 ldr r1, [r6, #0] - 10bec: 31b4 adds r1, #180 ; 0xb4 - 10bee: 47a8 blx r5 - lv_obj_clean_style_list(obj, LV_TEXTAREA_PART_SCROLLBAR); - 10bf0: 4620 mov r0, r4 - 10bf2: 2101 movs r1, #1 - 10bf4: 47c0 blx r8 - list = lv_obj_get_style_list(obj, LV_TEXTAREA_PART_SCROLLBAR); - 10bf6: 2101 movs r1, #1 - 10bf8: 4620 mov r0, r4 - 10bfa: 47b8 blx r7 - 10bfc: e6f6 b.n 109ec - _lv_style_list_add_style(list, &styles->bg); - 10bfe: 4e4f ldr r6, [pc, #316] ; (10d3c ) - lv_obj_clean_style_list(obj, LV_SPINBOX_PART_BG); - 10c00: f8df 9144 ldr.w r9, [pc, #324] ; 10d48 - list = lv_obj_get_style_list(obj, LV_SPINBOX_PART_BG); - 10c04: f8df 8138 ldr.w r8, [pc, #312] ; 10d40 - _lv_style_list_add_style(list, &styles->bg); - 10c08: 4d4e ldr r5, [pc, #312] ; (10d44 ) - lv_obj_clean_style_list(obj, LV_SPINBOX_PART_BG); - 10c0a: 2100 movs r1, #0 - 10c0c: 47c8 blx r9 - list = lv_obj_get_style_list(obj, LV_SPINBOX_PART_BG); - 10c0e: 2100 movs r1, #0 - 10c10: 4620 mov r0, r4 - 10c12: 47c0 blx r8 - _lv_style_list_add_style(list, &styles->bg); - 10c14: 6831 ldr r1, [r6, #0] - 10c16: 3104 adds r1, #4 - list = lv_obj_get_style_list(obj, LV_SPINBOX_PART_BG); - 10c18: 4607 mov r7, r0 - _lv_style_list_add_style(list, &styles->bg); - 10c1a: 47a8 blx r5 - _lv_style_list_add_style(list, &styles->pad_small); - 10c1c: 6831 ldr r1, [r6, #0] - 10c1e: 4638 mov r0, r7 - 10c20: 3118 adds r1, #24 - 10c22: 47a8 blx r5 - lv_obj_clean_style_list(obj, LV_SPINBOX_PART_CURSOR); - 10c24: 2103 movs r1, #3 - 10c26: 4620 mov r0, r4 - 10c28: 47c8 blx r9 - list = lv_obj_get_style_list(obj, LV_SPINBOX_PART_CURSOR); - 10c2a: 2103 movs r1, #3 - 10c2c: 4620 mov r0, r4 - 10c2e: 47c0 blx r8 - _lv_style_list_add_style(list, &styles->spinbox_cursor); - 10c30: 6831 ldr r1, [r6, #0] - 10c32: 3198 adds r1, #152 ; 0x98 - 10c34: e537 b.n 106a6 - lv_obj_clean_style_list(obj, LV_BTN_PART_MAIN); - 10c36: 4b44 ldr r3, [pc, #272] ; (10d48 ) - _lv_style_list_add_style(list, &styles->bg); - 10c38: 4f40 ldr r7, [pc, #256] ; (10d3c ) - 10c3a: 4e42 ldr r6, [pc, #264] ; (10d44 ) - lv_obj_clean_style_list(obj, LV_BTN_PART_MAIN); - 10c3c: 2100 movs r1, #0 - 10c3e: 4798 blx r3 - list = lv_obj_get_style_list(obj, LV_BTN_PART_MAIN); - 10c40: 4b3f ldr r3, [pc, #252] ; (10d40 ) - 10c42: 2100 movs r1, #0 - 10c44: 4620 mov r0, r4 - 10c46: 4798 blx r3 - _lv_style_list_add_style(list, &styles->bg); - 10c48: 6839 ldr r1, [r7, #0] - 10c4a: 3104 adds r1, #4 - list = lv_obj_get_style_list(obj, LV_BTN_PART_MAIN); - 10c4c: 4605 mov r5, r0 - _lv_style_list_add_style(list, &styles->bg); - 10c4e: 47b0 blx r6 - _lv_style_list_add_style(list, &styles->bg_click); - 10c50: 6839 ldr r1, [r7, #0] - 10c52: 3108 adds r1, #8 - 10c54: e5f1 b.n 1083a - lv_obj_clean_style_list(obj, LV_CALENDAR_PART_BG); - 10c56: f8df 80f0 ldr.w r8, [pc, #240] ; 10d48 - _lv_style_list_add_style(list, &styles->bg); - 10c5a: 4e38 ldr r6, [pc, #224] ; (10d3c ) - list = lv_obj_get_style_list(obj, LV_CALENDAR_PART_BG); - 10c5c: 4f38 ldr r7, [pc, #224] ; (10d40 ) - _lv_style_list_add_style(list, &styles->bg); - 10c5e: 4d39 ldr r5, [pc, #228] ; (10d44 ) - lv_obj_clean_style_list(obj, LV_CALENDAR_PART_BG); - 10c60: 2100 movs r1, #0 - 10c62: 47c0 blx r8 - list = lv_obj_get_style_list(obj, LV_CALENDAR_PART_BG); - 10c64: 2100 movs r1, #0 - 10c66: 4620 mov r0, r4 - 10c68: 47b8 blx r7 - _lv_style_list_add_style(list, &styles->bg); - 10c6a: 6831 ldr r1, [r6, #0] - 10c6c: 3104 adds r1, #4 - 10c6e: 47a8 blx r5 - lv_obj_clean_style_list(obj, LV_CALENDAR_PART_DATE); - 10c70: 2103 movs r1, #3 - 10c72: 4620 mov r0, r4 - 10c74: 47c0 blx r8 - list = lv_obj_get_style_list(obj, LV_CALENDAR_PART_DATE); - 10c76: 2103 movs r1, #3 - 10c78: 4620 mov r0, r4 - 10c7a: 47b8 blx r7 - _lv_style_list_add_style(list, &styles->calendar_date_nums); - 10c7c: 6831 ldr r1, [r6, #0] - 10c7e: 312c adds r1, #44 ; 0x2c - 10c80: 47a8 blx r5 - lv_obj_clean_style_list(obj, LV_CALENDAR_PART_HEADER); - 10c82: 2101 movs r1, #1 - 10c84: 4620 mov r0, r4 - 10c86: 47c0 blx r8 - list = lv_obj_get_style_list(obj, LV_CALENDAR_PART_HEADER); - 10c88: 2101 movs r1, #1 - 10c8a: 4620 mov r0, r4 - 10c8c: 47b8 blx r7 - _lv_style_list_add_style(list, &styles->calendar_header); - 10c8e: 6831 ldr r1, [r6, #0] - 10c90: 3130 adds r1, #48 ; 0x30 - 10c92: 47a8 blx r5 - lv_obj_clean_style_list(obj, LV_CALENDAR_PART_DAY_NAMES); - 10c94: 2102 movs r1, #2 - 10c96: 4620 mov r0, r4 - 10c98: 47c0 blx r8 - list = lv_obj_get_style_list(obj, LV_CALENDAR_PART_DAY_NAMES); - 10c9a: 2102 movs r1, #2 - 10c9c: 4620 mov r0, r4 - 10c9e: 47b8 blx r7 - _lv_style_list_add_style(list, &styles->calendar_daynames); - 10ca0: 6831 ldr r1, [r6, #0] - 10ca2: 3134 adds r1, #52 ; 0x34 - 10ca4: e4ff b.n 106a6 - lv_obj_clean_style_list(obj, LV_CPICKER_PART_MAIN); - 10ca6: f8df 80a0 ldr.w r8, [pc, #160] ; 10d48 - _lv_style_list_add_style(list, &styles->cpicker_bg); - 10caa: 4e24 ldr r6, [pc, #144] ; (10d3c ) - list = lv_obj_get_style_list(obj, LV_CPICKER_PART_MAIN); - 10cac: 4f24 ldr r7, [pc, #144] ; (10d40 ) - _lv_style_list_add_style(list, &styles->cpicker_bg); - 10cae: 4d25 ldr r5, [pc, #148] ; (10d44 ) - lv_obj_clean_style_list(obj, LV_CPICKER_PART_MAIN); - 10cb0: 2100 movs r1, #0 - 10cb2: 47c0 blx r8 - list = lv_obj_get_style_list(obj, LV_CPICKER_PART_MAIN); - 10cb4: 2100 movs r1, #0 - 10cb6: 4620 mov r0, r4 - 10cb8: 47b8 blx r7 - _lv_style_list_add_style(list, &styles->cpicker_bg); - 10cba: 6831 ldr r1, [r6, #0] - 10cbc: 3138 adds r1, #56 ; 0x38 - 10cbe: 47a8 blx r5 - lv_obj_clean_style_list(obj, LV_CPICKER_PART_KNOB); - 10cc0: 2101 movs r1, #1 - 10cc2: 4620 mov r0, r4 - 10cc4: 47c0 blx r8 - list = lv_obj_get_style_list(obj, LV_CPICKER_PART_KNOB); - 10cc6: 2101 movs r1, #1 - 10cc8: 4620 mov r0, r4 - 10cca: 47b8 blx r7 - _lv_style_list_add_style(list, &styles->cpicker_indic); - 10ccc: 6831 ldr r1, [r6, #0] - 10cce: 313c adds r1, #60 ; 0x3c - 10cd0: e4e9 b.n 106a6 - lv_obj_clean_style_list(obj, LV_LINEMETER_PART_MAIN); - 10cd2: 4b1d ldr r3, [pc, #116] ; (10d48 ) - _lv_style_list_add_style(list, &styles->bg); - 10cd4: 4f19 ldr r7, [pc, #100] ; (10d3c ) - 10cd6: 4e1b ldr r6, [pc, #108] ; (10d44 ) - lv_obj_clean_style_list(obj, LV_LINEMETER_PART_MAIN); - 10cd8: 2100 movs r1, #0 - 10cda: 4798 blx r3 - list = lv_obj_get_style_list(obj, LV_LINEMETER_PART_MAIN); - 10cdc: 4b18 ldr r3, [pc, #96] ; (10d40 ) - 10cde: 2100 movs r1, #0 - 10ce0: 4620 mov r0, r4 - 10ce2: 4798 blx r3 - _lv_style_list_add_style(list, &styles->bg); - 10ce4: 6839 ldr r1, [r7, #0] - 10ce6: 3104 adds r1, #4 - list = lv_obj_get_style_list(obj, LV_LINEMETER_PART_MAIN); - 10ce8: 4605 mov r5, r0 - _lv_style_list_add_style(list, &styles->bg); - 10cea: 47b0 blx r6 - _lv_style_list_add_style(list, &styles->lmeter); - 10cec: 6839 ldr r1, [r7, #0] - 10cee: 3170 adds r1, #112 ; 0x70 - 10cf0: e5a3 b.n 1083a - _lv_style_list_add_style(list, &styles->bg); - 10cf2: 4e12 ldr r6, [pc, #72] ; (10d3c ) - lv_obj_clean_style_list(obj, LV_GAUGE_PART_MAIN); - 10cf4: f8df 8050 ldr.w r8, [pc, #80] ; 10d48 - list = lv_obj_get_style_list(obj, LV_GAUGE_PART_MAIN); - 10cf8: 4f11 ldr r7, [pc, #68] ; (10d40 ) - _lv_style_list_add_style(list, &styles->bg); - 10cfa: 4d12 ldr r5, [pc, #72] ; (10d44 ) - lv_obj_clean_style_list(obj, LV_GAUGE_PART_MAIN); - 10cfc: 2100 movs r1, #0 - 10cfe: 47c0 blx r8 - list = lv_obj_get_style_list(obj, LV_GAUGE_PART_MAIN); - 10d00: 2100 movs r1, #0 - 10d02: 4620 mov r0, r4 - 10d04: 47b8 blx r7 - _lv_style_list_add_style(list, &styles->bg); - 10d06: 6831 ldr r1, [r6, #0] - 10d08: 3104 adds r1, #4 - list = lv_obj_get_style_list(obj, LV_GAUGE_PART_MAIN); - 10d0a: 4681 mov r9, r0 - _lv_style_list_add_style(list, &styles->bg); - 10d0c: 47a8 blx r5 - _lv_style_list_add_style(list, &styles->gauge_main); - 10d0e: 6831 ldr r1, [r6, #0] - 10d10: 4648 mov r0, r9 - 10d12: 315c adds r1, #92 ; 0x5c - 10d14: 47a8 blx r5 - lv_obj_clean_style_list(obj, LV_GAUGE_PART_MAJOR); - 10d16: 2101 movs r1, #1 - 10d18: 4620 mov r0, r4 - 10d1a: 47c0 blx r8 - list = lv_obj_get_style_list(obj, LV_GAUGE_PART_MAJOR); - 10d1c: 2101 movs r1, #1 - 10d1e: 4620 mov r0, r4 - 10d20: 47b8 blx r7 - _lv_style_list_add_style(list, &styles->gauge_strong); - 10d22: 6831 ldr r1, [r6, #0] - 10d24: 3160 adds r1, #96 ; 0x60 - 10d26: 47a8 blx r5 - lv_obj_clean_style_list(obj, LV_GAUGE_PART_NEEDLE); - 10d28: 2102 movs r1, #2 - 10d2a: 4620 mov r0, r4 - 10d2c: 47c0 blx r8 - list = lv_obj_get_style_list(obj, LV_GAUGE_PART_NEEDLE); - 10d2e: 2102 movs r1, #2 - 10d30: 4620 mov r0, r4 - 10d32: 47b8 blx r7 - _lv_style_list_add_style(list, &styles->gauge_needle); - 10d34: 6831 ldr r1, [r6, #0] - 10d36: 3164 adds r1, #100 ; 0x64 - 10d38: e4b5 b.n 106a6 - 10d3a: bf00 nop - 10d3c: 200057a4 .word 0x200057a4 - 10d40: 00002711 .word 0x00002711 - 10d44: 0000589d .word 0x0000589d - 10d48: 000027cd .word 0x000027cd - -00010d4c : - * STATIC FUNCTIONS - **********************/ - -static void style_init_reset(lv_style_t * style) -{ - if(inited) lv_style_reset(style); - 10d4c: 4b03 ldr r3, [pc, #12] ; (10d5c ) - 10d4e: 791b ldrb r3, [r3, #4] - 10d50: b10b cbz r3, 10d56 - 10d52: 4b03 ldr r3, [pc, #12] ; (10d60 ) - else lv_style_init(style); - 10d54: 4718 bx r3 - 10d56: 4b03 ldr r3, [pc, #12] ; (10d64 ) - 10d58: e7fc b.n 10d54 - 10d5a: bf00 nop - 10d5c: 200057a4 .word 0x200057a4 - 10d60: 00005a19 .word 0x00005a19 - 10d64: 000057b5 .word 0x000057b5 - -00010d68 : -{ - 10d68: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} - style_init_reset(&styles->sw_knob); - 10d6c: 4d3a ldr r5, [pc, #232] ; (10e58 ) - 10d6e: 4b3b ldr r3, [pc, #236] ; (10e5c ) - 10d70: 6828 ldr r0, [r5, #0] -#define _LV_OBJ_STYLE_SET_GET_DECLARE(prop_name, func_name, value_type, style_type, scalar) \ - _OBJ_GET_STYLE_##scalar(prop_name, func_name, value_type, style_type) \ - _OBJ_SET_STYLE_LOCAL_##scalar(prop_name, func_name, value_type, style_type) \ - _OBJ_SET_STYLE_##scalar(prop_name, func_name, value_type, style_type) - -_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar) - 10d72: 4e3b ldr r6, [pc, #236] ; (10e60 ) - lv_style_set_pad_top(&styles->sw_knob, LV_STATE_DEFAULT, - LV_DPX(4)); - 10d74: 4c3b ldr r4, [pc, #236] ; (10e64 ) - style_init_reset(&styles->sw_knob); - 10d76: 309c adds r0, #156 ; 0x9c - 10d78: 4798 blx r3 - lv_style_set_bg_opa(&styles->sw_knob, LV_STATE_DEFAULT, LV_OPA_COVER); - 10d7a: 6828 ldr r0, [r5, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(BG_MAIN_STOP, bg_main_stop, lv_style_int_t, _int, scalar) -_LV_OBJ_STYLE_SET_GET_DECLARE(BG_GRAD_STOP, bg_grad_stop, lv_style_int_t, _int, scalar) -_LV_OBJ_STYLE_SET_GET_DECLARE(BG_GRAD_DIR, bg_grad_dir, lv_grad_dir_t, _int, scalar) -_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar) -_LV_OBJ_STYLE_SET_GET_DECLARE(BG_GRAD_COLOR, bg_grad_color, lv_color_t, _color, nonscalar) -_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar) - 10d7c: 4b3a ldr r3, [pc, #232] ; (10e68 ) - 10d7e: 22ff movs r2, #255 ; 0xff - 10d80: 212c movs r1, #44 ; 0x2c - 10d82: 309c adds r0, #156 ; 0x9c - 10d84: 4798 blx r3 - lv_style_set_bg_color(&styles->sw_knob, LV_STATE_DEFAULT, LV_COLOR_WHITE); - 10d86: 6828 ldr r0, [r5, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar) - 10d88: 4b38 ldr r3, [pc, #224] ; (10e6c ) - 10d8a: 2129 movs r1, #41 ; 0x29 - 10d8c: 881a ldrh r2, [r3, #0] - 10d8e: 4b38 ldr r3, [pc, #224] ; (10e70 ) - 10d90: 309c adds r0, #156 ; 0x9c - 10d92: 4798 blx r3 - lv_style_set_radius(&styles->sw_knob, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE); - 10d94: 6828 ldr r0, [r5, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar) - 10d96: f647 72ff movw r2, #32767 ; 0x7fff - 10d9a: 2101 movs r1, #1 - 10d9c: 309c adds r0, #156 ; 0x9c - 10d9e: 47b0 blx r6 - lv_style_set_pad_top(&styles->sw_knob, LV_STATE_DEFAULT, - LV_DPX(4)); - 10da0: 2000 movs r0, #0 - 10da2: 682f ldr r7, [r5, #0] - 10da4: 47a0 blx r4 - 10da6: 283b cmp r0, #59 ; 0x3b - 10da8: f107 079c add.w r7, r7, #156 ; 0x9c - 10dac: dd47 ble.n 10e3e - 10dae: 2000 movs r0, #0 - 10db0: 47a0 blx r4 - 10db2: f06f 0327 mvn.w r3, #39 ; 0x27 - 10db6: f100 0214 add.w r2, r0, #20 - 10dba: fb92 f2f3 sdiv r2, r2, r3 - 10dbe: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar) - 10dc0: 4638 mov r0, r7 - 10dc2: 2110 movs r1, #16 - 10dc4: 47b0 blx r6 - lv_style_set_pad_bottom(&styles->sw_knob, LV_STATE_DEFAULT, - LV_DPX(4)); - 10dc6: 2000 movs r0, #0 - 10dc8: 682f ldr r7, [r5, #0] - 10dca: 47a0 blx r4 - 10dcc: 283b cmp r0, #59 ; 0x3b - 10dce: f107 079c add.w r7, r7, #156 ; 0x9c - 10dd2: dd37 ble.n 10e44 - 10dd4: 2000 movs r0, #0 - 10dd6: 47a0 blx r4 - 10dd8: f06f 0327 mvn.w r3, #39 ; 0x27 - 10ddc: f100 0214 add.w r2, r0, #20 - 10de0: fb92 f2f3 sdiv r2, r2, r3 - 10de4: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar) - 10de6: 4638 mov r0, r7 - 10de8: 2111 movs r1, #17 - 10dea: 47b0 blx r6 - lv_style_set_pad_left(&styles->sw_knob, LV_STATE_DEFAULT, - LV_DPX(4)); - 10dec: 2000 movs r0, #0 - 10dee: 682f ldr r7, [r5, #0] - 10df0: 47a0 blx r4 - 10df2: 283b cmp r0, #59 ; 0x3b - 10df4: f107 079c add.w r7, r7, #156 ; 0x9c - 10df8: dd27 ble.n 10e4a - 10dfa: 2000 movs r0, #0 - 10dfc: 47a0 blx r4 - 10dfe: f06f 0327 mvn.w r3, #39 ; 0x27 - 10e02: f100 0214 add.w r2, r0, #20 - 10e06: fb92 f2f3 sdiv r2, r2, r3 - 10e0a: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar) - 10e0c: 2112 movs r1, #18 - 10e0e: 4638 mov r0, r7 - 10e10: 47b0 blx r6 - lv_style_set_pad_right(&styles->sw_knob, LV_STATE_DEFAULT, - LV_DPX(4)); - 10e12: 2000 movs r0, #0 - 10e14: 682d ldr r5, [r5, #0] - 10e16: 47a0 blx r4 - 10e18: 283b cmp r0, #59 ; 0x3b - 10e1a: f105 059c add.w r5, r5, #156 ; 0x9c - 10e1e: dd17 ble.n 10e50 - 10e20: 2000 movs r0, #0 - 10e22: 47a0 blx r4 - 10e24: f06f 0327 mvn.w r3, #39 ; 0x27 - 10e28: f100 0214 add.w r2, r0, #20 - 10e2c: fb92 f2f3 sdiv r2, r2, r3 - 10e30: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar) - 10e32: 4628 mov r0, r5 - 10e34: 4633 mov r3, r6 - 10e36: 2113 movs r1, #19 -} - 10e38: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr} - 10e3c: 4718 bx r3 - lv_style_set_pad_top(&styles->sw_knob, LV_STATE_DEFAULT, - LV_DPX(4)); - 10e3e: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff - 10e42: e7bd b.n 10dc0 - lv_style_set_pad_bottom(&styles->sw_knob, LV_STATE_DEFAULT, - LV_DPX(4)); - 10e44: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff - 10e48: e7cd b.n 10de6 - lv_style_set_pad_left(&styles->sw_knob, LV_STATE_DEFAULT, - LV_DPX(4)); - 10e4a: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff - 10e4e: e7dd b.n 10e0c - lv_style_set_pad_right(&styles->sw_knob, LV_STATE_DEFAULT, - LV_DPX(4)); - 10e50: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff - 10e54: e7ed b.n 10e32 - 10e56: bf00 nop - 10e58: 200057a4 .word 0x200057a4 - 10e5c: 00010d4d .word 0x00010d4d - 10e60: 00005afd .word 0x00005afd - 10e64: 0000dbd5 .word 0x0000dbd5 - 10e68: 00005c9d .word 0x00005c9d - 10e6c: 0002bcf6 .word 0x0002bcf6 - 10e70: 00005bcd .word 0x00005bcd - -00010e74 : -{ - 10e74: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} - style_init_reset(&styles->lmeter); - 10e78: 4d6b ldr r5, [pc, #428] ; (11028 ) - 10e7a: 4b6c ldr r3, [pc, #432] ; (1102c ) - 10e7c: 6828 ldr r0, [r5, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar) - 10e7e: 4e6c ldr r6, [pc, #432] ; (11030 ) - lv_style_set_pad_left(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(20)); - 10e80: 4c6c ldr r4, [pc, #432] ; (11034 ) - style_init_reset(&styles->lmeter); - 10e82: 3070 adds r0, #112 ; 0x70 - 10e84: 4798 blx r3 - lv_style_set_radius(&styles->lmeter, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE); - 10e86: 6828 ldr r0, [r5, #0] - 10e88: f647 72ff movw r2, #32767 ; 0x7fff - 10e8c: 2101 movs r1, #1 - 10e8e: 3070 adds r0, #112 ; 0x70 - 10e90: 47b0 blx r6 - lv_style_set_pad_left(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(20)); - 10e92: 2000 movs r0, #0 - 10e94: 682f ldr r7, [r5, #0] - 10e96: 47a0 blx r4 - 10e98: eb00 0080 add.w r0, r0, r0, lsl #2 - 10e9c: 0080 lsls r0, r0, #2 - 10e9e: 28ef cmp r0, #239 ; 0xef - 10ea0: f107 0770 add.w r7, r7, #112 ; 0x70 - 10ea4: f340 80b2 ble.w 1100c - 10ea8: 2000 movs r0, #0 - 10eaa: 47a0 blx r4 - 10eac: 2314 movs r3, #20 - 10eae: 2250 movs r2, #80 ; 0x50 - 10eb0: fb00 2203 mla r2, r0, r3, r2 - 10eb4: 23a0 movs r3, #160 ; 0xa0 - 10eb6: fb92 f2f3 sdiv r2, r2, r3 - 10eba: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar) - 10ebc: 4638 mov r0, r7 - 10ebe: 2112 movs r1, #18 - 10ec0: 47b0 blx r6 - lv_style_set_pad_right(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(20)); - 10ec2: 2000 movs r0, #0 - 10ec4: 682f ldr r7, [r5, #0] - 10ec6: 47a0 blx r4 - 10ec8: eb00 0080 add.w r0, r0, r0, lsl #2 - 10ecc: 0080 lsls r0, r0, #2 - 10ece: 28ef cmp r0, #239 ; 0xef - 10ed0: f107 0770 add.w r7, r7, #112 ; 0x70 - 10ed4: f340 809c ble.w 11010 - 10ed8: 2000 movs r0, #0 - 10eda: 47a0 blx r4 - 10edc: 2314 movs r3, #20 - 10ede: 2250 movs r2, #80 ; 0x50 - 10ee0: fb00 2203 mla r2, r0, r3, r2 - 10ee4: 23a0 movs r3, #160 ; 0xa0 - 10ee6: fb92 f2f3 sdiv r2, r2, r3 - 10eea: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar) - 10eec: 4638 mov r0, r7 - 10eee: 2113 movs r1, #19 - 10ef0: 47b0 blx r6 - lv_style_set_pad_top(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(20)); - 10ef2: 2000 movs r0, #0 - 10ef4: 682f ldr r7, [r5, #0] - 10ef6: 47a0 blx r4 - 10ef8: eb00 0080 add.w r0, r0, r0, lsl #2 - 10efc: 0080 lsls r0, r0, #2 - 10efe: 28ef cmp r0, #239 ; 0xef - 10f00: f107 0770 add.w r7, r7, #112 ; 0x70 - 10f04: f340 8086 ble.w 11014 - 10f08: 2000 movs r0, #0 - 10f0a: 47a0 blx r4 - 10f0c: 2314 movs r3, #20 - 10f0e: 2250 movs r2, #80 ; 0x50 - 10f10: fb00 2203 mla r2, r0, r3, r2 - 10f14: 23a0 movs r3, #160 ; 0xa0 - 10f16: fb92 f2f3 sdiv r2, r2, r3 - 10f1a: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar) - 10f1c: 4638 mov r0, r7 - 10f1e: 2110 movs r1, #16 - 10f20: 47b0 blx r6 - lv_style_set_pad_inner(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(30)); - 10f22: 2000 movs r0, #0 - 10f24: 682f ldr r7, [r5, #0] - 10f26: 47a0 blx r4 - 10f28: ebc0 1000 rsb r0, r0, r0, lsl #4 - 10f2c: 0040 lsls r0, r0, #1 - 10f2e: 28ef cmp r0, #239 ; 0xef - 10f30: f107 0770 add.w r7, r7, #112 ; 0x70 - 10f34: dd70 ble.n 11018 - 10f36: 2000 movs r0, #0 - 10f38: 47a0 blx r4 - 10f3a: 231e movs r3, #30 - 10f3c: 2250 movs r2, #80 ; 0x50 - 10f3e: fb00 2203 mla r2, r0, r3, r2 - 10f42: 23a0 movs r3, #160 ; 0xa0 - 10f44: fb92 f2f3 sdiv r2, r2, r3 - 10f48: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar) - 10f4a: 4638 mov r0, r7 - 10f4c: 2114 movs r1, #20 - 10f4e: 47b0 blx r6 - lv_style_set_scale_width(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(25)); - 10f50: 2000 movs r0, #0 - 10f52: 682f ldr r7, [r5, #0] - 10f54: 47a0 blx r4 - 10f56: eb00 0080 add.w r0, r0, r0, lsl #2 - 10f5a: eb00 0080 add.w r0, r0, r0, lsl #2 - 10f5e: 28ef cmp r0, #239 ; 0xef - 10f60: f107 0770 add.w r7, r7, #112 ; 0x70 - 10f64: dd5a ble.n 1101c - 10f66: 2000 movs r0, #0 - 10f68: 47a0 blx r4 - 10f6a: 2319 movs r3, #25 - 10f6c: 2250 movs r2, #80 ; 0x50 - 10f6e: fb00 2203 mla r2, r0, r3, r2 - 10f72: 23a0 movs r3, #160 ; 0xa0 - 10f74: fb92 f2f3 sdiv r2, r2, r3 - 10f78: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PATH, transition_path, lv_anim_path_t *, _ptr, scalar) -#else -/*For compatibility*/ -_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PATH, transition_path, const void *, _ptr, scalar) -#endif -_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_WIDTH, scale_width, lv_style_int_t, _int, scalar) - 10f7a: 4638 mov r0, r7 - 10f7c: 21c0 movs r1, #192 ; 0xc0 - 10f7e: 47b0 blx r6 - lv_style_set_line_color(&styles->lmeter, LV_STATE_DEFAULT, theme.color_primary); - 10f80: 6828 ldr r0, [r5, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_COLOR, line_color, lv_color_t, _color, nonscalar) - 10f82: 4f2d ldr r7, [pc, #180] ; (11038 ) - 10f84: 89aa ldrh r2, [r5, #12] - 10f86: 2199 movs r1, #153 ; 0x99 - 10f88: 3070 adds r0, #112 ; 0x70 - 10f8a: 47b8 blx r7 - lv_style_set_scale_grad_color(&styles->lmeter, LV_STATE_DEFAULT, theme.color_primary); - 10f8c: 6828 ldr r0, [r5, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_BORDER_WIDTH, scale_border_width, lv_style_int_t, _int, scalar) -_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_END_BORDER_WIDTH, scale_end_border_width, lv_style_int_t, _int, scalar) -_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_END_LINE_WIDTH, scale_end_line_width, lv_style_int_t, _int, scalar) -_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_GRAD_COLOR, scale_grad_color, lv_color_t, _color, nonscalar) - 10f8e: 89aa ldrh r2, [r5, #12] - 10f90: 21c9 movs r1, #201 ; 0xc9 - 10f92: 3070 adds r0, #112 ; 0x70 - 10f94: 47b8 blx r7 - lv_style_set_scale_end_color(&styles->lmeter, LV_STATE_DEFAULT, lv_color_hex3(0x888)); - 10f96: 6828 ldr r0, [r5, #0] - 10f98: 4b28 ldr r3, [pc, #160] ; (1103c ) - 10f9a: f100 0870 add.w r8, r0, #112 ; 0x70 - 10f9e: f640 0088 movw r0, #2184 ; 0x888 - 10fa2: 4798 blx r3 -_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_END_COLOR, scale_end_color, lv_color_t, _color, nonscalar) - 10fa4: 21ca movs r1, #202 ; 0xca - 10fa6: 4602 mov r2, r0 - 10fa8: 4640 mov r0, r8 - 10faa: 47b8 blx r7 - lv_style_set_line_width(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(10)); - 10fac: 2000 movs r0, #0 - 10fae: 682f ldr r7, [r5, #0] - 10fb0: 47a0 blx r4 - 10fb2: eb00 0080 add.w r0, r0, r0, lsl #2 - 10fb6: 0040 lsls r0, r0, #1 - 10fb8: 28ef cmp r0, #239 ; 0xef - 10fba: f107 0770 add.w r7, r7, #112 ; 0x70 - 10fbe: dd2f ble.n 11020 - 10fc0: 2000 movs r0, #0 - 10fc2: 47a0 blx r4 - 10fc4: 230a movs r3, #10 - 10fc6: 2250 movs r2, #80 ; 0x50 - 10fc8: fb00 2203 mla r2, r0, r3, r2 - 10fcc: 23a0 movs r3, #160 ; 0xa0 - 10fce: fb92 f2f3 sdiv r2, r2, r3 - 10fd2: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_WIDTH, line_width, lv_style_int_t, _int, scalar) - 10fd4: 2190 movs r1, #144 ; 0x90 - 10fd6: 4638 mov r0, r7 - 10fd8: 47b0 blx r6 - lv_style_set_scale_end_line_width(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(7)); - 10fda: 2000 movs r0, #0 - 10fdc: 682d ldr r5, [r5, #0] - 10fde: 47a0 blx r4 - 10fe0: ebc0 00c0 rsb r0, r0, r0, lsl #3 - 10fe4: 28ef cmp r0, #239 ; 0xef - 10fe6: f105 0570 add.w r5, r5, #112 ; 0x70 - 10fea: dd1b ble.n 11024 - 10fec: 2000 movs r0, #0 - 10fee: 47a0 blx r4 - 10ff0: 2307 movs r3, #7 - 10ff2: 2250 movs r2, #80 ; 0x50 - 10ff4: fb00 2203 mla r2, r0, r3, r2 - 10ff8: 23a0 movs r3, #160 ; 0xa0 - 10ffa: fb92 f2f3 sdiv r2, r2, r3 - 10ffe: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_END_LINE_WIDTH, scale_end_line_width, lv_style_int_t, _int, scalar) - 11000: 4628 mov r0, r5 - 11002: 4633 mov r3, r6 - 11004: 21c3 movs r1, #195 ; 0xc3 -} - 11006: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr} - 1100a: 4718 bx r3 - lv_style_set_pad_left(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(20)); - 1100c: 2201 movs r2, #1 - 1100e: e755 b.n 10ebc - lv_style_set_pad_right(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(20)); - 11010: 2201 movs r2, #1 - 11012: e76b b.n 10eec - lv_style_set_pad_top(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(20)); - 11014: 2201 movs r2, #1 - 11016: e781 b.n 10f1c - lv_style_set_pad_inner(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(30)); - 11018: 2201 movs r2, #1 - 1101a: e796 b.n 10f4a - lv_style_set_scale_width(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(25)); - 1101c: 2201 movs r2, #1 - 1101e: e7ac b.n 10f7a - lv_style_set_line_width(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(10)); - 11020: 2201 movs r2, #1 - 11022: e7d7 b.n 10fd4 - lv_style_set_scale_end_line_width(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(7)); - 11024: 2201 movs r2, #1 - 11026: e7eb b.n 11000 - 11028: 200057a4 .word 0x200057a4 - 1102c: 00010d4d .word 0x00010d4d - 11030: 00005afd .word 0x00005afd - 11034: 0000dbd5 .word 0x0000dbd5 - 11038: 00005bcd .word 0x00005bcd - 1103c: 00010581 .word 0x00010581 - -00011040 : -{ - 11040: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} - style_init_reset(&styles->led); - 11044: 4c32 ldr r4, [pc, #200] ; (11110 ) - 11046: 4b33 ldr r3, [pc, #204] ; (11114 ) - 11048: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar) - 1104a: 4f33 ldr r7, [pc, #204] ; (11118 ) -_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar) - 1104c: 4e33 ldr r6, [pc, #204] ; (1111c ) -_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar) - 1104e: 4d34 ldr r5, [pc, #208] ; (11120 ) - 11050: 306c adds r0, #108 ; 0x6c - 11052: 4798 blx r3 - lv_style_set_bg_opa(&styles->led, LV_STATE_DEFAULT, LV_OPA_COVER); - 11054: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar) - 11056: 22ff movs r2, #255 ; 0xff - 11058: 212c movs r1, #44 ; 0x2c - 1105a: 306c adds r0, #108 ; 0x6c - 1105c: 47b8 blx r7 - lv_style_set_bg_color(&styles->led, LV_STATE_DEFAULT, theme.color_primary); - 1105e: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar) - 11060: 89a2 ldrh r2, [r4, #12] - 11062: 2129 movs r1, #41 ; 0x29 - 11064: 306c adds r0, #108 ; 0x6c - 11066: 47b0 blx r6 - lv_style_set_border_width(&styles->led, LV_STATE_DEFAULT, 2); - 11068: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar) - 1106a: 2202 movs r2, #2 - 1106c: 2130 movs r1, #48 ; 0x30 - 1106e: 306c adds r0, #108 ; 0x6c - 11070: 47a8 blx r5 - lv_style_set_border_opa(&styles->led, LV_STATE_DEFAULT, LV_OPA_50); - 11072: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_OPA, border_opa, lv_opa_t, _opa, scalar) - 11074: 227f movs r2, #127 ; 0x7f - 11076: 213c movs r1, #60 ; 0x3c - 11078: 306c adds r0, #108 ; 0x6c - 1107a: 47b8 blx r7 - lv_style_set_border_color(&styles->led, LV_STATE_DEFAULT, lv_color_lighten(theme.color_primary, LV_OPA_30)); - 1107c: 6820 ldr r0, [r4, #0] - 1107e: 4b29 ldr r3, [pc, #164] ; (11124 ) - 11080: f100 076c add.w r7, r0, #108 ; 0x6c - 11084: 214c movs r1, #76 ; 0x4c - 11086: 89a0 ldrh r0, [r4, #12] - 11088: 4798 blx r3 -_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar) - 1108a: 2139 movs r1, #57 ; 0x39 - 1108c: 4602 mov r2, r0 - 1108e: 4638 mov r0, r7 - 11090: 47b0 blx r6 - lv_style_set_radius(&styles->led, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE); - 11092: 6820 ldr r0, [r4, #0] - lv_style_set_shadow_width(&styles->led, LV_STATE_DEFAULT, LV_DPX(15)); - 11094: 4f24 ldr r7, [pc, #144] ; (11128 ) -_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar) - 11096: f647 72ff movw r2, #32767 ; 0x7fff - 1109a: 2101 movs r1, #1 - 1109c: 306c adds r0, #108 ; 0x6c - 1109e: 47a8 blx r5 - 110a0: 6823 ldr r3, [r4, #0] - 110a2: 2000 movs r0, #0 - 110a4: f103 086c add.w r8, r3, #108 ; 0x6c - 110a8: 47b8 blx r7 - 110aa: ebc0 1000 rsb r0, r0, r0, lsl #4 - 110ae: 28ef cmp r0, #239 ; 0xef - 110b0: dd2a ble.n 11108 - 110b2: 2000 movs r0, #0 - 110b4: 47b8 blx r7 - 110b6: 230f movs r3, #15 - 110b8: 2250 movs r2, #80 ; 0x50 - 110ba: fb00 2203 mla r2, r0, r3, r2 - 110be: 23a0 movs r3, #160 ; 0xa0 - 110c0: fb92 f2f3 sdiv r2, r2, r3 - 110c4: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_WIDTH, shadow_width, lv_style_int_t, _int, scalar) - 110c6: 2150 movs r1, #80 ; 0x50 - 110c8: 4640 mov r0, r8 - 110ca: 47a8 blx r5 - lv_style_set_shadow_color(&styles->led, LV_STATE_DEFAULT, theme.color_primary); - 110cc: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_COLOR, shadow_color, lv_color_t, _color, nonscalar) - 110ce: 89a2 ldrh r2, [r4, #12] - 110d0: 2159 movs r1, #89 ; 0x59 - 110d2: 306c adds r0, #108 ; 0x6c - 110d4: 47b0 blx r6 - lv_style_set_shadow_spread(&styles->led, LV_STATE_DEFAULT, LV_DPX(5)); - 110d6: 2000 movs r0, #0 - 110d8: 6824 ldr r4, [r4, #0] - 110da: 47b8 blx r7 - 110dc: eb00 0080 add.w r0, r0, r0, lsl #2 - 110e0: 28ef cmp r0, #239 ; 0xef - 110e2: f104 046c add.w r4, r4, #108 ; 0x6c - 110e6: dd11 ble.n 1110c - 110e8: 2000 movs r0, #0 - 110ea: 47b8 blx r7 - 110ec: 2305 movs r3, #5 - 110ee: 2250 movs r2, #80 ; 0x50 - 110f0: fb00 2203 mla r2, r0, r3, r2 - 110f4: 23a0 movs r3, #160 ; 0xa0 - 110f6: fb92 f2f3 sdiv r2, r2, r3 - 110fa: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_SPREAD, shadow_spread, lv_style_int_t, _int, scalar) - 110fc: 4620 mov r0, r4 - 110fe: 462b mov r3, r5 - 11100: 2153 movs r1, #83 ; 0x53 -} - 11102: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr} - 11106: 4718 bx r3 - lv_style_set_shadow_width(&styles->led, LV_STATE_DEFAULT, LV_DPX(15)); - 11108: 2201 movs r2, #1 - 1110a: e7dc b.n 110c6 - lv_style_set_shadow_spread(&styles->led, LV_STATE_DEFAULT, LV_DPX(5)); - 1110c: 2201 movs r2, #1 - 1110e: e7f5 b.n 110fc - 11110: 200057a4 .word 0x200057a4 - 11114: 00010d4d .word 0x00010d4d - 11118: 00005c9d .word 0x00005c9d - 1111c: 00005bcd .word 0x00005bcd - 11120: 00005afd .word 0x00005afd - 11124: 0000e5cf .word 0x0000e5cf - 11128: 0000dbd5 .word 0x0000dbd5 - -0001112c : - return LV_COLOR_MAKE(r, g, b); - 1112c: f3c0 2285 ubfx r2, r0, #10, #6 - 11130: f3c0 03c4 ubfx r3, r0, #3, #5 - 11134: ea43 1342 orr.w r3, r3, r2, lsl #5 - 11138: f3c0 40c4 ubfx r0, r0, #19, #5 -} - 1113c: ea43 20c0 orr.w r0, r3, r0, lsl #11 - 11140: 4770 bx lr - ... - -00011144 : -{ - 11144: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} - style_init_reset(&styles->bar_bg); - 11148: 4c43 ldr r4, [pc, #268] ; (11258 ) - 1114a: f8df 9134 ldr.w r9, [pc, #308] ; 11280 - 1114e: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar) - 11150: 4e42 ldr r6, [pc, #264] ; (1125c ) -_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar) - 11152: 4f43 ldr r7, [pc, #268] ; (11260 ) - 11154: f8df 812c ldr.w r8, [pc, #300] ; 11284 - 11158: 3024 adds r0, #36 ; 0x24 - 1115a: 47c8 blx r9 - lv_style_set_radius(&styles->bar_bg, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE); - 1115c: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar) - 1115e: f647 72ff movw r2, #32767 ; 0x7fff - 11162: 2101 movs r1, #1 - 11164: 3024 adds r0, #36 ; 0x24 - 11166: 47b0 blx r6 - lv_style_set_bg_opa(&styles->bar_bg, LV_STATE_DEFAULT, LV_OPA_COVER); - 11168: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar) - 1116a: 22ff movs r2, #255 ; 0xff - 1116c: 3024 adds r0, #36 ; 0x24 - 1116e: 212c movs r1, #44 ; 0x2c - 11170: 47b8 blx r7 - lv_style_set_bg_color(&styles->bar_bg, LV_STATE_DEFAULT, COLOR_BG_SEC); - 11172: 6a23 ldr r3, [r4, #32] - 11174: 6825 ldr r5, [r4, #0] - 11176: f013 0f02 tst.w r3, #2 - 1117a: bf14 ite ne - 1117c: 4839 ldrne r0, [pc, #228] ; (11264 ) - 1117e: 483a ldreq r0, [pc, #232] ; (11268 ) - 11180: 47c0 blx r8 - 11182: 3524 adds r5, #36 ; 0x24 -_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar) - 11184: 4602 mov r2, r0 - 11186: 2129 movs r1, #41 ; 0x29 - 11188: 4628 mov r0, r5 - 1118a: 4d38 ldr r5, [pc, #224] ; (1126c ) - 1118c: 47a8 blx r5 - lv_style_set_value_color(&styles->bar_bg, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x31404f) : LV_COLOR_WHITE); - 1118e: 6823 ldr r3, [r4, #0] - 11190: f103 0a24 add.w sl, r3, #36 ; 0x24 - 11194: 6a23 ldr r3, [r4, #32] - 11196: 079a lsls r2, r3, #30 - 11198: d558 bpl.n 1124c - 1119a: 4835 ldr r0, [pc, #212] ; (11270 ) - 1119c: 47c0 blx r8 - 1119e: 4602 mov r2, r0 -_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_COLOR, value_color, lv_color_t, _color, nonscalar) - 111a0: 2179 movs r1, #121 ; 0x79 - 111a2: 4650 mov r0, sl - 111a4: 47a8 blx r5 - lv_style_set_outline_color(&styles->bar_bg, LV_STATE_DEFAULT, theme.color_primary); - 111a6: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_COLOR, outline_color, lv_color_t, _color, nonscalar) - 111a8: 89a2 ldrh r2, [r4, #12] - 111aa: 2149 movs r1, #73 ; 0x49 - 111ac: 3024 adds r0, #36 ; 0x24 - 111ae: 47a8 blx r5 - lv_style_set_outline_color(&styles->bar_bg, LV_STATE_EDITED, theme.color_secondary); - 111b0: 6820 ldr r0, [r4, #0] - 111b2: 89e2 ldrh r2, [r4, #14] - 111b4: f240 4149 movw r1, #1097 ; 0x449 - 111b8: 3024 adds r0, #36 ; 0x24 - 111ba: 47a8 blx r5 - lv_style_set_outline_opa(&styles->bar_bg, LV_STATE_DEFAULT, LV_OPA_TRANSP); - 111bc: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_OPA, outline_opa, lv_opa_t, _opa, scalar) - 111be: 2200 movs r2, #0 - 111c0: 214c movs r1, #76 ; 0x4c - 111c2: 3024 adds r0, #36 ; 0x24 - 111c4: 47b8 blx r7 - lv_style_set_outline_opa(&styles->bar_bg, LV_STATE_FOCUSED, LV_OPA_50); - 111c6: 6820 ldr r0, [r4, #0] - 111c8: 227f movs r2, #127 ; 0x7f - 111ca: f44f 7113 mov.w r1, #588 ; 0x24c - 111ce: 3024 adds r0, #36 ; 0x24 - 111d0: 47b8 blx r7 - lv_style_set_outline_width(&styles->bar_bg, LV_STATE_DEFAULT, 3); - 111d2: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_WIDTH, outline_width, lv_style_int_t, _int, scalar) - 111d4: 2203 movs r2, #3 - 111d6: 2140 movs r1, #64 ; 0x40 - 111d8: 3024 adds r0, #36 ; 0x24 - 111da: 47b0 blx r6 - lv_style_set_transition_time(&styles->bar_bg, LV_STATE_DEFAULT, TRANSITION_TIME); - 111dc: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_TIME, transition_time, lv_style_int_t, _int, scalar) - 111de: 2296 movs r2, #150 ; 0x96 - 111e0: 21b0 movs r1, #176 ; 0xb0 - 111e2: 3024 adds r0, #36 ; 0x24 - 111e4: 47b0 blx r6 - lv_style_set_transition_prop_6(&styles->bar_bg, LV_STATE_DEFAULT, LV_STYLE_OUTLINE_OPA); - 111e6: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_6, transition_prop_6, lv_style_int_t, _int, scalar) - 111e8: 224c movs r2, #76 ; 0x4c - 111ea: 21b7 movs r1, #183 ; 0xb7 - 111ec: 3024 adds r0, #36 ; 0x24 - 111ee: 47b0 blx r6 - style_init_reset(&styles->bar_indic); - 111f0: 6820 ldr r0, [r4, #0] - 111f2: 3028 adds r0, #40 ; 0x28 - 111f4: 47c8 blx r9 - lv_style_set_bg_opa(&styles->bar_indic, LV_STATE_DEFAULT, LV_OPA_COVER); - 111f6: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar) - 111f8: 22ff movs r2, #255 ; 0xff - 111fa: 212c movs r1, #44 ; 0x2c - 111fc: 3028 adds r0, #40 ; 0x28 - 111fe: 47b8 blx r7 - lv_style_set_radius(&styles->bar_indic, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE); - 11200: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar) - 11202: f647 72ff movw r2, #32767 ; 0x7fff - 11206: 2101 movs r1, #1 - 11208: 3028 adds r0, #40 ; 0x28 - 1120a: 47b0 blx r6 - lv_style_set_bg_color(&styles->bar_indic, LV_STATE_DEFAULT, theme.color_primary); - 1120c: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar) - 1120e: 89a2 ldrh r2, [r4, #12] - 11210: 2129 movs r1, #41 ; 0x29 - 11212: 3028 adds r0, #40 ; 0x28 - 11214: 47a8 blx r5 - lv_style_set_bg_color(&styles->bar_indic, LV_STATE_DISABLED, lv_color_hex3(0x888)); - 11216: 6820 ldr r0, [r4, #0] - 11218: 4b16 ldr r3, [pc, #88] ; (11274 ) - 1121a: f100 0628 add.w r6, r0, #40 ; 0x28 - 1121e: f640 0088 movw r0, #2184 ; 0x888 - 11222: 4798 blx r3 - 11224: f242 0129 movw r1, #8233 ; 0x2029 - 11228: 4602 mov r2, r0 - 1122a: 4630 mov r0, r6 - 1122c: 47a8 blx r5 - lv_style_set_value_color(&styles->bar_indic, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x41404f) : LV_COLOR_WHITE); - 1122e: 6a23 ldr r3, [r4, #32] - 11230: 6820 ldr r0, [r4, #0] - 11232: 079b lsls r3, r3, #30 - 11234: f100 0628 add.w r6, r0, #40 ; 0x28 - 11238: d50b bpl.n 11252 - 1123a: 480f ldr r0, [pc, #60] ; (11278 ) - 1123c: 47c0 blx r8 - 1123e: 4602 mov r2, r0 -_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_COLOR, value_color, lv_color_t, _color, nonscalar) - 11240: 4630 mov r0, r6 - 11242: 462b mov r3, r5 - 11244: 2179 movs r1, #121 ; 0x79 -} - 11246: e8bd 47f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr} - 1124a: 4718 bx r3 - lv_style_set_value_color(&styles->bar_bg, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x31404f) : LV_COLOR_WHITE); - 1124c: 4b0b ldr r3, [pc, #44] ; (1127c ) - 1124e: 881a ldrh r2, [r3, #0] - 11250: e7a6 b.n 111a0 - lv_style_set_value_color(&styles->bar_indic, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x41404f) : LV_COLOR_WHITE); - 11252: 4b0a ldr r3, [pc, #40] ; (1127c ) - 11254: 881a ldrh r2, [r3, #0] - 11256: e7f3 b.n 11240 - 11258: 200057a4 .word 0x200057a4 - 1125c: 00005afd .word 0x00005afd - 11260: 00005c9d .word 0x00005c9d - 11264: 00d4d7d9 .word 0x00d4d7d9 - 11268: 0045494d .word 0x0045494d - 1126c: 00005bcd .word 0x00005bcd - 11270: 0031404f .word 0x0031404f - 11274: 00010581 .word 0x00010581 - 11278: 0041404f .word 0x0041404f - 1127c: 0002bcf6 .word 0x0002bcf6 - 11280: 00010d4d .word 0x00010d4d - 11284: 0001112d .word 0x0001112d - -00011288 : -{ - 11288: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} - style_init_reset(&styles->slider_knob); - 1128c: 4c7d ldr r4, [pc, #500] ; (11484 ) - 1128e: 4f7e ldr r7, [pc, #504] ; (11488 ) - 11290: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar) - 11292: 4d7e ldr r5, [pc, #504] ; (1148c ) - 11294: 3090 adds r0, #144 ; 0x90 - 11296: 47b8 blx r7 - lv_style_set_bg_opa(&styles->slider_knob, LV_STATE_DEFAULT, LV_OPA_COVER); - 11298: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar) - 1129a: 4b7d ldr r3, [pc, #500] ; (11490 ) - 1129c: 22ff movs r2, #255 ; 0xff - 1129e: 212c movs r1, #44 ; 0x2c - 112a0: 3090 adds r0, #144 ; 0x90 - 112a2: 4798 blx r3 - lv_style_set_bg_color(&styles->slider_knob, LV_STATE_DEFAULT, IS_LIGHT ? theme.color_primary : LV_COLOR_WHITE); - 112a4: 6a23 ldr r3, [r4, #32] - 112a6: 6820 ldr r0, [r4, #0] - 112a8: 079a lsls r2, r3, #30 - 112aa: bf56 itet pl - 112ac: 4b79 ldrpl r3, [pc, #484] ; (11494 ) - 112ae: 89a2 ldrhmi r2, [r4, #12] - 112b0: 881a ldrhpl r2, [r3, #0] - 112b2: 3090 adds r0, #144 ; 0x90 -_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar) - 112b4: 2129 movs r1, #41 ; 0x29 - 112b6: 47a8 blx r5 - lv_style_set_value_color(&styles->slider_knob, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x31404f) : LV_COLOR_WHITE); - 112b8: 6a23 ldr r3, [r4, #32] - 112ba: 6826 ldr r6, [r4, #0] - 112bc: 079b lsls r3, r3, #30 - 112be: f106 0690 add.w r6, r6, #144 ; 0x90 - 112c2: f140 80cc bpl.w 1145e - 112c6: 4874 ldr r0, [pc, #464] ; (11498 ) - 112c8: 4b74 ldr r3, [pc, #464] ; (1149c ) - 112ca: 4798 blx r3 - 112cc: 4602 mov r2, r0 -_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_COLOR, value_color, lv_color_t, _color, nonscalar) - 112ce: 4630 mov r0, r6 - 112d0: 2179 movs r1, #121 ; 0x79 - 112d2: 47a8 blx r5 - lv_style_set_radius(&styles->slider_knob, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE); - 112d4: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar) - 112d6: 4e72 ldr r6, [pc, #456] ; (114a0 ) - lv_style_set_pad_left(&styles->slider_knob, LV_STATE_DEFAULT, LV_DPX(7)); - 112d8: 4d72 ldr r5, [pc, #456] ; (114a4 ) - 112da: f647 72ff movw r2, #32767 ; 0x7fff - 112de: 2101 movs r1, #1 - 112e0: 3090 adds r0, #144 ; 0x90 - 112e2: 47b0 blx r6 - 112e4: 6823 ldr r3, [r4, #0] - 112e6: 2000 movs r0, #0 - 112e8: f103 0890 add.w r8, r3, #144 ; 0x90 - 112ec: 47a8 blx r5 - 112ee: ebc0 00c0 rsb r0, r0, r0, lsl #3 - 112f2: 28ef cmp r0, #239 ; 0xef - 112f4: f340 80b6 ble.w 11464 - 112f8: 2000 movs r0, #0 - 112fa: 47a8 blx r5 - 112fc: 2307 movs r3, #7 - 112fe: 2250 movs r2, #80 ; 0x50 - 11300: fb00 2203 mla r2, r0, r3, r2 - 11304: 23a0 movs r3, #160 ; 0xa0 - 11306: fb92 f2f3 sdiv r2, r2, r3 - 1130a: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar) - 1130c: 4640 mov r0, r8 - 1130e: 2112 movs r1, #18 - 11310: 47b0 blx r6 - lv_style_set_pad_right(&styles->slider_knob, LV_STATE_DEFAULT, LV_DPX(7)); - 11312: 6823 ldr r3, [r4, #0] - 11314: 2000 movs r0, #0 - 11316: f103 0890 add.w r8, r3, #144 ; 0x90 - 1131a: 47a8 blx r5 - 1131c: ebc0 00c0 rsb r0, r0, r0, lsl #3 - 11320: 28ef cmp r0, #239 ; 0xef - 11322: f340 80a1 ble.w 11468 - 11326: 2000 movs r0, #0 - 11328: 47a8 blx r5 - 1132a: 2307 movs r3, #7 - 1132c: 2250 movs r2, #80 ; 0x50 - 1132e: fb00 2203 mla r2, r0, r3, r2 - 11332: 23a0 movs r3, #160 ; 0xa0 - 11334: fb92 f2f3 sdiv r2, r2, r3 - 11338: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar) - 1133a: 4640 mov r0, r8 - 1133c: 2113 movs r1, #19 - 1133e: 47b0 blx r6 - lv_style_set_pad_top(&styles->slider_knob, LV_STATE_DEFAULT, LV_DPX(7)); - 11340: 6823 ldr r3, [r4, #0] - 11342: 2000 movs r0, #0 - 11344: f103 0890 add.w r8, r3, #144 ; 0x90 - 11348: 47a8 blx r5 - 1134a: ebc0 00c0 rsb r0, r0, r0, lsl #3 - 1134e: 28ef cmp r0, #239 ; 0xef - 11350: f340 808c ble.w 1146c - 11354: 2000 movs r0, #0 - 11356: 47a8 blx r5 - 11358: 2307 movs r3, #7 - 1135a: 2250 movs r2, #80 ; 0x50 - 1135c: fb00 2203 mla r2, r0, r3, r2 - 11360: 23a0 movs r3, #160 ; 0xa0 - 11362: fb92 f2f3 sdiv r2, r2, r3 - 11366: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar) - 11368: 4640 mov r0, r8 - 1136a: 2110 movs r1, #16 - 1136c: 47b0 blx r6 - lv_style_set_pad_bottom(&styles->slider_knob, LV_STATE_DEFAULT, LV_DPX(7)); - 1136e: 6823 ldr r3, [r4, #0] - 11370: 2000 movs r0, #0 - 11372: f103 0890 add.w r8, r3, #144 ; 0x90 - 11376: 47a8 blx r5 - 11378: ebc0 00c0 rsb r0, r0, r0, lsl #3 - 1137c: 28ef cmp r0, #239 ; 0xef - 1137e: dd77 ble.n 11470 - 11380: 2000 movs r0, #0 - 11382: 47a8 blx r5 - 11384: 2307 movs r3, #7 - 11386: 2250 movs r2, #80 ; 0x50 - 11388: fb00 2203 mla r2, r0, r3, r2 - 1138c: 23a0 movs r3, #160 ; 0xa0 - 1138e: fb92 f2f3 sdiv r2, r2, r3 - 11392: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar) - 11394: 2111 movs r1, #17 - 11396: 4640 mov r0, r8 - 11398: 47b0 blx r6 - style_init_reset(&styles->slider_bg); - 1139a: 6820 ldr r0, [r4, #0] - 1139c: 3094 adds r0, #148 ; 0x94 - 1139e: 47b8 blx r7 - lv_style_set_margin_left(&styles->slider_bg, LV_STATE_DEFAULT, LV_DPX(10)); - 113a0: 2000 movs r0, #0 - 113a2: 6827 ldr r7, [r4, #0] - 113a4: 47a8 blx r5 - 113a6: eb00 0080 add.w r0, r0, r0, lsl #2 - 113aa: 0040 lsls r0, r0, #1 - 113ac: 28ef cmp r0, #239 ; 0xef - 113ae: f107 0794 add.w r7, r7, #148 ; 0x94 - 113b2: dd5f ble.n 11474 - 113b4: 2000 movs r0, #0 - 113b6: 47a8 blx r5 - 113b8: 230a movs r3, #10 - 113ba: 2250 movs r2, #80 ; 0x50 - 113bc: fb00 2203 mla r2, r0, r3, r2 - 113c0: 23a0 movs r3, #160 ; 0xa0 - 113c2: fb92 f2f3 sdiv r2, r2, r3 - 113c6: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(MARGIN_LEFT, margin_left, lv_style_int_t, _int, scalar) - 113c8: 4638 mov r0, r7 - 113ca: 2117 movs r1, #23 - 113cc: 47b0 blx r6 - lv_style_set_margin_right(&styles->slider_bg, LV_STATE_DEFAULT, LV_DPX(10)); - 113ce: 2000 movs r0, #0 - 113d0: 6827 ldr r7, [r4, #0] - 113d2: 47a8 blx r5 - 113d4: eb00 0080 add.w r0, r0, r0, lsl #2 - 113d8: 0040 lsls r0, r0, #1 - 113da: 28ef cmp r0, #239 ; 0xef - 113dc: f107 0794 add.w r7, r7, #148 ; 0x94 - 113e0: dd4a ble.n 11478 - 113e2: 2000 movs r0, #0 - 113e4: 47a8 blx r5 - 113e6: 230a movs r3, #10 - 113e8: 2250 movs r2, #80 ; 0x50 - 113ea: fb00 2203 mla r2, r0, r3, r2 - 113ee: 23a0 movs r3, #160 ; 0xa0 - 113f0: fb92 f2f3 sdiv r2, r2, r3 - 113f4: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(MARGIN_RIGHT, margin_right, lv_style_int_t, _int, scalar) - 113f6: 4638 mov r0, r7 - 113f8: 2118 movs r1, #24 - 113fa: 47b0 blx r6 - lv_style_set_margin_top(&styles->slider_bg, LV_STATE_DEFAULT, LV_DPX(10)); - 113fc: 2000 movs r0, #0 - 113fe: 6827 ldr r7, [r4, #0] - 11400: 47a8 blx r5 - 11402: eb00 0080 add.w r0, r0, r0, lsl #2 - 11406: 0040 lsls r0, r0, #1 - 11408: 28ef cmp r0, #239 ; 0xef - 1140a: f107 0794 add.w r7, r7, #148 ; 0x94 - 1140e: dd35 ble.n 1147c - 11410: 2000 movs r0, #0 - 11412: 47a8 blx r5 - 11414: 230a movs r3, #10 - 11416: 2250 movs r2, #80 ; 0x50 - 11418: fb00 2203 mla r2, r0, r3, r2 - 1141c: 23a0 movs r3, #160 ; 0xa0 - 1141e: fb92 f2f3 sdiv r2, r2, r3 - 11422: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(MARGIN_TOP, margin_top, lv_style_int_t, _int, scalar) - 11424: 2115 movs r1, #21 - 11426: 4638 mov r0, r7 - 11428: 47b0 blx r6 - lv_style_set_margin_bottom(&styles->slider_bg, LV_STATE_DEFAULT, LV_DPX(10)); - 1142a: 2000 movs r0, #0 - 1142c: 6824 ldr r4, [r4, #0] - 1142e: 47a8 blx r5 - 11430: eb00 0080 add.w r0, r0, r0, lsl #2 - 11434: 0040 lsls r0, r0, #1 - 11436: 28ef cmp r0, #239 ; 0xef - 11438: f104 0494 add.w r4, r4, #148 ; 0x94 - 1143c: dd20 ble.n 11480 - 1143e: 2000 movs r0, #0 - 11440: 47a8 blx r5 - 11442: 230a movs r3, #10 - 11444: 2250 movs r2, #80 ; 0x50 - 11446: fb00 2203 mla r2, r0, r3, r2 - 1144a: 23a0 movs r3, #160 ; 0xa0 - 1144c: fb92 f2f3 sdiv r2, r2, r3 - 11450: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(MARGIN_BOTTOM, margin_bottom, lv_style_int_t, _int, scalar) - 11452: 4620 mov r0, r4 - 11454: 4633 mov r3, r6 - 11456: 2116 movs r1, #22 -} - 11458: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr} - 1145c: 4718 bx r3 - lv_style_set_value_color(&styles->slider_knob, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x31404f) : LV_COLOR_WHITE); - 1145e: 4b0d ldr r3, [pc, #52] ; (11494 ) - 11460: 881a ldrh r2, [r3, #0] - 11462: e734 b.n 112ce - lv_style_set_pad_left(&styles->slider_knob, LV_STATE_DEFAULT, LV_DPX(7)); - 11464: 2201 movs r2, #1 - 11466: e751 b.n 1130c - lv_style_set_pad_right(&styles->slider_knob, LV_STATE_DEFAULT, LV_DPX(7)); - 11468: 2201 movs r2, #1 - 1146a: e766 b.n 1133a - lv_style_set_pad_top(&styles->slider_knob, LV_STATE_DEFAULT, LV_DPX(7)); - 1146c: 2201 movs r2, #1 - 1146e: e77b b.n 11368 - lv_style_set_pad_bottom(&styles->slider_knob, LV_STATE_DEFAULT, LV_DPX(7)); - 11470: 2201 movs r2, #1 - 11472: e78f b.n 11394 - lv_style_set_margin_left(&styles->slider_bg, LV_STATE_DEFAULT, LV_DPX(10)); - 11474: 2201 movs r2, #1 - 11476: e7a7 b.n 113c8 - lv_style_set_margin_right(&styles->slider_bg, LV_STATE_DEFAULT, LV_DPX(10)); - 11478: 2201 movs r2, #1 - 1147a: e7bc b.n 113f6 - lv_style_set_margin_top(&styles->slider_bg, LV_STATE_DEFAULT, LV_DPX(10)); - 1147c: 2201 movs r2, #1 - 1147e: e7d1 b.n 11424 - lv_style_set_margin_bottom(&styles->slider_bg, LV_STATE_DEFAULT, LV_DPX(10)); - 11480: 2201 movs r2, #1 - 11482: e7e6 b.n 11452 - 11484: 200057a4 .word 0x200057a4 - 11488: 00010d4d .word 0x00010d4d - 1148c: 00005bcd .word 0x00005bcd - 11490: 00005c9d .word 0x00005c9d - 11494: 0002bcf6 .word 0x0002bcf6 - 11498: 0031404f .word 0x0031404f - 1149c: 0001112d .word 0x0001112d - 114a0: 00005afd .word 0x00005afd - 114a4: 0000dbd5 .word 0x0000dbd5 - -000114a8 : -{ - 114a8: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} - style_init_reset(&styles->gauge_main); - 114ac: 4cb6 ldr r4, [pc, #728] ; (11788 ) - 114ae: f8df 82f4 ldr.w r8, [pc, #756] ; 117a4 - 114b2: 6820 ldr r0, [r4, #0] - lv_style_set_line_color(&styles->gauge_main, LV_STATE_DEFAULT, lv_color_hex3(0x888)); - 114b4: f8df 92f0 ldr.w r9, [pc, #752] ; 117a8 -_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_COLOR, line_color, lv_color_t, _color, nonscalar) - 114b8: 4fb4 ldr r7, [pc, #720] ; (1178c ) - style_init_reset(&styles->gauge_main); - 114ba: 305c adds r0, #92 ; 0x5c - 114bc: 47c0 blx r8 - lv_style_set_line_color(&styles->gauge_main, LV_STATE_DEFAULT, lv_color_hex3(0x888)); - 114be: 6820 ldr r0, [r4, #0] - 114c0: f100 055c add.w r5, r0, #92 ; 0x5c - 114c4: f640 0088 movw r0, #2184 ; 0x888 - 114c8: 47c8 blx r9 - 114ca: 2199 movs r1, #153 ; 0x99 - 114cc: 4602 mov r2, r0 - 114ce: 4628 mov r0, r5 - 114d0: 47b8 blx r7 - lv_style_set_scale_grad_color(&styles->gauge_main, LV_STATE_DEFAULT, lv_color_hex3(0x888)); - 114d2: 6820 ldr r0, [r4, #0] - 114d4: f100 055c add.w r5, r0, #92 ; 0x5c - 114d8: f640 0088 movw r0, #2184 ; 0x888 - 114dc: 47c8 blx r9 -_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_GRAD_COLOR, scale_grad_color, lv_color_t, _color, nonscalar) - 114de: 21c9 movs r1, #201 ; 0xc9 - 114e0: 4602 mov r2, r0 - 114e2: 4628 mov r0, r5 - 114e4: 47b8 blx r7 - lv_style_set_scale_end_color(&styles->gauge_main, LV_STATE_DEFAULT, theme.color_primary); - 114e6: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_END_COLOR, scale_end_color, lv_color_t, _color, nonscalar) - 114e8: 89a2 ldrh r2, [r4, #12] - lv_style_set_line_width(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(5)); - 114ea: 4da9 ldr r5, [pc, #676] ; (11790 ) - 114ec: 21ca movs r1, #202 ; 0xca - 114ee: 305c adds r0, #92 ; 0x5c - 114f0: 47b8 blx r7 - 114f2: 2000 movs r0, #0 - 114f4: 6826 ldr r6, [r4, #0] - 114f6: 47a8 blx r5 - 114f8: eb00 0080 add.w r0, r0, r0, lsl #2 - 114fc: 28ef cmp r0, #239 ; 0xef - 114fe: f106 065c add.w r6, r6, #92 ; 0x5c - 11502: f340 818d ble.w 11820 - 11506: 2000 movs r0, #0 - 11508: 47a8 blx r5 - 1150a: 2305 movs r3, #5 - 1150c: 2250 movs r2, #80 ; 0x50 - 1150e: fb00 2203 mla r2, r0, r3, r2 - 11512: 23a0 movs r3, #160 ; 0xa0 - 11514: fb92 f2f3 sdiv r2, r2, r3 - 11518: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_WIDTH, line_width, lv_style_int_t, _int, scalar) - 1151a: 4630 mov r0, r6 - 1151c: 2190 movs r1, #144 ; 0x90 - 1151e: 4e9d ldr r6, [pc, #628] ; (11794 ) - 11520: 47b0 blx r6 - lv_style_set_scale_end_line_width(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(4)); - 11522: 6823 ldr r3, [r4, #0] - 11524: 2000 movs r0, #0 - 11526: f103 0a5c add.w sl, r3, #92 ; 0x5c - 1152a: 47a8 blx r5 - 1152c: 283b cmp r0, #59 ; 0x3b - 1152e: f340 8179 ble.w 11824 - 11532: 2000 movs r0, #0 - 11534: 47a8 blx r5 - 11536: 2328 movs r3, #40 ; 0x28 - 11538: f100 0214 add.w r2, r0, #20 - 1153c: fb92 f2f3 sdiv r2, r2, r3 - 11540: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_END_LINE_WIDTH, scale_end_line_width, lv_style_int_t, _int, scalar) - 11542: 4650 mov r0, sl - 11544: 21c3 movs r1, #195 ; 0xc3 - 11546: 47b0 blx r6 - lv_style_set_scale_end_border_width(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(8)); - 11548: 6823 ldr r3, [r4, #0] - 1154a: 2000 movs r0, #0 - 1154c: f103 0a5c add.w sl, r3, #92 ; 0x5c - 11550: 47a8 blx r5 - 11552: 281d cmp r0, #29 - 11554: f340 8168 ble.w 11828 - 11558: 2000 movs r0, #0 - 1155a: 47a8 blx r5 - 1155c: 2314 movs r3, #20 - 1155e: f100 020a add.w r2, r0, #10 - 11562: fb92 f2f3 sdiv r2, r2, r3 - 11566: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_END_BORDER_WIDTH, scale_end_border_width, lv_style_int_t, _int, scalar) - 11568: 4650 mov r0, sl - 1156a: 21c2 movs r1, #194 ; 0xc2 - 1156c: 47b0 blx r6 - lv_style_set_pad_left(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(20)); - 1156e: 6823 ldr r3, [r4, #0] - 11570: 2000 movs r0, #0 - 11572: f103 0a5c add.w sl, r3, #92 ; 0x5c - 11576: 47a8 blx r5 - 11578: eb00 0080 add.w r0, r0, r0, lsl #2 - 1157c: 0080 lsls r0, r0, #2 - 1157e: 28ef cmp r0, #239 ; 0xef - 11580: f340 8154 ble.w 1182c - 11584: 2000 movs r0, #0 - 11586: 47a8 blx r5 - 11588: 2314 movs r3, #20 - 1158a: 2250 movs r2, #80 ; 0x50 - 1158c: fb00 2203 mla r2, r0, r3, r2 - 11590: 23a0 movs r3, #160 ; 0xa0 - 11592: fb92 f2f3 sdiv r2, r2, r3 - 11596: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar) - 11598: 4650 mov r0, sl - 1159a: 2112 movs r1, #18 - 1159c: 47b0 blx r6 - lv_style_set_pad_right(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(20)); - 1159e: 6823 ldr r3, [r4, #0] - 115a0: 2000 movs r0, #0 - 115a2: f103 0a5c add.w sl, r3, #92 ; 0x5c - 115a6: 47a8 blx r5 - 115a8: eb00 0080 add.w r0, r0, r0, lsl #2 - 115ac: 0080 lsls r0, r0, #2 - 115ae: 28ef cmp r0, #239 ; 0xef - 115b0: f340 813e ble.w 11830 - 115b4: 2000 movs r0, #0 - 115b6: 47a8 blx r5 - 115b8: 2314 movs r3, #20 - 115ba: 2250 movs r2, #80 ; 0x50 - 115bc: fb00 2203 mla r2, r0, r3, r2 - 115c0: 23a0 movs r3, #160 ; 0xa0 - 115c2: fb92 f2f3 sdiv r2, r2, r3 - 115c6: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar) - 115c8: 4650 mov r0, sl - 115ca: 2113 movs r1, #19 - 115cc: 47b0 blx r6 - lv_style_set_pad_top(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(20)); - 115ce: 6823 ldr r3, [r4, #0] - 115d0: 2000 movs r0, #0 - 115d2: f103 0a5c add.w sl, r3, #92 ; 0x5c - 115d6: 47a8 blx r5 - 115d8: eb00 0080 add.w r0, r0, r0, lsl #2 - 115dc: 0080 lsls r0, r0, #2 - 115de: 28ef cmp r0, #239 ; 0xef - 115e0: f340 8128 ble.w 11834 - 115e4: 2000 movs r0, #0 - 115e6: 47a8 blx r5 - 115e8: 2314 movs r3, #20 - 115ea: 2250 movs r2, #80 ; 0x50 - 115ec: fb00 2203 mla r2, r0, r3, r2 - 115f0: 23a0 movs r3, #160 ; 0xa0 - 115f2: fb92 f2f3 sdiv r2, r2, r3 - 115f6: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar) - 115f8: 4650 mov r0, sl - 115fa: 2110 movs r1, #16 - 115fc: 47b0 blx r6 - lv_style_set_pad_inner(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(20)); - 115fe: 6823 ldr r3, [r4, #0] - 11600: 2000 movs r0, #0 - 11602: f103 0a5c add.w sl, r3, #92 ; 0x5c - 11606: 47a8 blx r5 - 11608: eb00 0080 add.w r0, r0, r0, lsl #2 - 1160c: 0080 lsls r0, r0, #2 - 1160e: 28ef cmp r0, #239 ; 0xef - 11610: f340 8112 ble.w 11838 - 11614: 2000 movs r0, #0 - 11616: 47a8 blx r5 - 11618: 2314 movs r3, #20 - 1161a: 2250 movs r2, #80 ; 0x50 - 1161c: fb00 2203 mla r2, r0, r3, r2 - 11620: 23a0 movs r3, #160 ; 0xa0 - 11622: fb92 f2f3 sdiv r2, r2, r3 - 11626: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar) - 11628: 4650 mov r0, sl - 1162a: 2114 movs r1, #20 - 1162c: 47b0 blx r6 - lv_style_set_scale_width(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(15)); - 1162e: 6823 ldr r3, [r4, #0] - 11630: 2000 movs r0, #0 - 11632: f103 0a5c add.w sl, r3, #92 ; 0x5c - 11636: 47a8 blx r5 - 11638: ebc0 1000 rsb r0, r0, r0, lsl #4 - 1163c: 28ef cmp r0, #239 ; 0xef - 1163e: f340 80fd ble.w 1183c - 11642: 2000 movs r0, #0 - 11644: 47a8 blx r5 - 11646: 230f movs r3, #15 - 11648: 2250 movs r2, #80 ; 0x50 - 1164a: fb00 2203 mla r2, r0, r3, r2 - 1164e: 23a0 movs r3, #160 ; 0xa0 - 11650: fb92 f2f3 sdiv r2, r2, r3 - 11654: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_WIDTH, scale_width, lv_style_int_t, _int, scalar) - 11656: 4650 mov r0, sl - 11658: 21c0 movs r1, #192 ; 0xc0 - 1165a: 47b0 blx r6 - lv_style_set_radius(&styles->gauge_main, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE); - 1165c: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar) - 1165e: f647 72ff movw r2, #32767 ; 0x7fff - 11662: 2101 movs r1, #1 - 11664: 305c adds r0, #92 ; 0x5c - 11666: 47b0 blx r6 - style_init_reset(&styles->gauge_strong); - 11668: 6820 ldr r0, [r4, #0] - 1166a: 3060 adds r0, #96 ; 0x60 - 1166c: 47c0 blx r8 - lv_style_set_line_color(&styles->gauge_strong, LV_STATE_DEFAULT, lv_color_hex3(0x888)); - 1166e: 6820 ldr r0, [r4, #0] - 11670: f100 0a60 add.w sl, r0, #96 ; 0x60 - 11674: f640 0088 movw r0, #2184 ; 0x888 - 11678: 47c8 blx r9 -_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_COLOR, line_color, lv_color_t, _color, nonscalar) - 1167a: 2199 movs r1, #153 ; 0x99 - 1167c: 4602 mov r2, r0 - 1167e: 4650 mov r0, sl - 11680: 47b8 blx r7 - lv_style_set_scale_grad_color(&styles->gauge_strong, LV_STATE_DEFAULT, lv_color_hex3(0x888)); - 11682: 6820 ldr r0, [r4, #0] - 11684: f100 0a60 add.w sl, r0, #96 ; 0x60 - 11688: f640 0088 movw r0, #2184 ; 0x888 - 1168c: 47c8 blx r9 -_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_GRAD_COLOR, scale_grad_color, lv_color_t, _color, nonscalar) - 1168e: 21c9 movs r1, #201 ; 0xc9 - 11690: 4602 mov r2, r0 - 11692: 4650 mov r0, sl - 11694: 47b8 blx r7 - lv_style_set_scale_end_color(&styles->gauge_strong, LV_STATE_DEFAULT, theme.color_primary); - 11696: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_END_COLOR, scale_end_color, lv_color_t, _color, nonscalar) - 11698: 89a2 ldrh r2, [r4, #12] - 1169a: 21ca movs r1, #202 ; 0xca - 1169c: 3060 adds r0, #96 ; 0x60 - 1169e: 47b8 blx r7 - lv_style_set_line_width(&styles->gauge_strong, LV_STATE_DEFAULT, LV_DPX(8)); - 116a0: 6823 ldr r3, [r4, #0] - 116a2: 2000 movs r0, #0 - 116a4: f103 0960 add.w r9, r3, #96 ; 0x60 - 116a8: 47a8 blx r5 - 116aa: 281d cmp r0, #29 - 116ac: f340 80c8 ble.w 11840 - 116b0: 2000 movs r0, #0 - 116b2: 47a8 blx r5 - 116b4: 2314 movs r3, #20 - 116b6: f100 020a add.w r2, r0, #10 - 116ba: fb92 f2f3 sdiv r2, r2, r3 - 116be: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_WIDTH, line_width, lv_style_int_t, _int, scalar) - 116c0: 4648 mov r0, r9 - 116c2: 2190 movs r1, #144 ; 0x90 - 116c4: 47b0 blx r6 - lv_style_set_scale_end_line_width(&styles->gauge_strong, LV_STATE_DEFAULT, LV_DPX(8)); - 116c6: 6823 ldr r3, [r4, #0] - 116c8: 2000 movs r0, #0 - 116ca: f103 0960 add.w r9, r3, #96 ; 0x60 - 116ce: 47a8 blx r5 - 116d0: 281d cmp r0, #29 - 116d2: f340 80b7 ble.w 11844 - 116d6: 2000 movs r0, #0 - 116d8: 47a8 blx r5 - 116da: 2314 movs r3, #20 - 116dc: f100 020a add.w r2, r0, #10 - 116e0: fb92 f2f3 sdiv r2, r2, r3 - 116e4: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_END_LINE_WIDTH, scale_end_line_width, lv_style_int_t, _int, scalar) - 116e6: 4648 mov r0, r9 - 116e8: 21c3 movs r1, #195 ; 0xc3 - 116ea: 47b0 blx r6 - lv_style_set_scale_width(&styles->gauge_strong, LV_STATE_DEFAULT, LV_DPX(25)); - 116ec: 6823 ldr r3, [r4, #0] - 116ee: 2000 movs r0, #0 - 116f0: f103 0960 add.w r9, r3, #96 ; 0x60 - 116f4: 47a8 blx r5 - 116f6: eb00 0080 add.w r0, r0, r0, lsl #2 - 116fa: eb00 0080 add.w r0, r0, r0, lsl #2 - 116fe: 28ef cmp r0, #239 ; 0xef - 11700: f340 80a2 ble.w 11848 - 11704: 2000 movs r0, #0 - 11706: 47a8 blx r5 - 11708: 2319 movs r3, #25 - 1170a: 2250 movs r2, #80 ; 0x50 - 1170c: fb00 2203 mla r2, r0, r3, r2 - 11710: 23a0 movs r3, #160 ; 0xa0 - 11712: fb92 f2f3 sdiv r2, r2, r3 - 11716: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_WIDTH, scale_width, lv_style_int_t, _int, scalar) - 11718: 21c0 movs r1, #192 ; 0xc0 - 1171a: 4648 mov r0, r9 - 1171c: 47b0 blx r6 - style_init_reset(&styles->gauge_needle); - 1171e: 6820 ldr r0, [r4, #0] - 11720: 3064 adds r0, #100 ; 0x64 - 11722: 47c0 blx r8 - lv_style_set_line_color(&styles->gauge_needle, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x464b5b) : LV_COLOR_WHITE); - 11724: 6823 ldr r3, [r4, #0] - 11726: f103 0864 add.w r8, r3, #100 ; 0x64 - 1172a: 6a23 ldr r3, [r4, #32] - 1172c: 079a lsls r2, r3, #30 - 1172e: f140 808d bpl.w 1184c - 11732: 4819 ldr r0, [pc, #100] ; (11798 ) - 11734: 4b19 ldr r3, [pc, #100] ; (1179c ) - 11736: 4798 blx r3 - 11738: 4602 mov r2, r0 -_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_COLOR, line_color, lv_color_t, _color, nonscalar) - 1173a: 4640 mov r0, r8 - 1173c: 2199 movs r1, #153 ; 0x99 - 1173e: 47b8 blx r7 - lv_style_set_line_width(&styles->gauge_needle, LV_STATE_DEFAULT, LV_DPX(8)); - 11740: 6823 ldr r3, [r4, #0] - 11742: 2000 movs r0, #0 - 11744: f103 0864 add.w r8, r3, #100 ; 0x64 - 11748: 47a8 blx r5 - 1174a: 281d cmp r0, #29 - 1174c: f340 8081 ble.w 11852 - 11750: 2000 movs r0, #0 - 11752: 47a8 blx r5 - 11754: 2314 movs r3, #20 - 11756: f100 020a add.w r2, r0, #10 - 1175a: fb92 f2f3 sdiv r2, r2, r3 - 1175e: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_WIDTH, line_width, lv_style_int_t, _int, scalar) - 11760: 4640 mov r0, r8 - 11762: 2190 movs r1, #144 ; 0x90 - 11764: 47b0 blx r6 - lv_style_set_bg_opa(&styles->gauge_needle, LV_STATE_DEFAULT, LV_OPA_COVER); - 11766: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar) - 11768: 4b0d ldr r3, [pc, #52] ; (117a0 ) - 1176a: 22ff movs r2, #255 ; 0xff - 1176c: 212c movs r1, #44 ; 0x2c - 1176e: 3064 adds r0, #100 ; 0x64 - 11770: 4798 blx r3 - lv_style_set_bg_color(&styles->gauge_needle, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x464b5b) : LV_COLOR_WHITE); - 11772: 6823 ldr r3, [r4, #0] - 11774: f103 0864 add.w r8, r3, #100 ; 0x64 - 11778: 6a23 ldr r3, [r4, #32] - 1177a: 079b lsls r3, r3, #30 - 1177c: d56b bpl.n 11856 - 1177e: 4806 ldr r0, [pc, #24] ; (11798 ) - 11780: 4b06 ldr r3, [pc, #24] ; (1179c ) - 11782: 4798 blx r3 - 11784: 4602 mov r2, r0 - 11786: e011 b.n 117ac - 11788: 200057a4 .word 0x200057a4 - 1178c: 00005bcd .word 0x00005bcd - 11790: 0000dbd5 .word 0x0000dbd5 - 11794: 00005afd .word 0x00005afd - 11798: 00464b5b .word 0x00464b5b - 1179c: 0001112d .word 0x0001112d - 117a0: 00005c9d .word 0x00005c9d - 117a4: 00010d4d .word 0x00010d4d - 117a8: 00010581 .word 0x00010581 -_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar) - 117ac: 2129 movs r1, #41 ; 0x29 - 117ae: 4640 mov r0, r8 - 117b0: 47b8 blx r7 - lv_style_set_radius(&styles->gauge_needle, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE); - 117b2: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar) - 117b4: f647 72ff movw r2, #32767 ; 0x7fff - 117b8: 2101 movs r1, #1 - 117ba: 3064 adds r0, #100 ; 0x64 - 117bc: 47b0 blx r6 - lv_style_set_size(&styles->gauge_needle, LV_STATE_DEFAULT, LV_DPX(30)); - 117be: 2000 movs r0, #0 - 117c0: 6827 ldr r7, [r4, #0] - 117c2: 47a8 blx r5 - 117c4: ebc0 1000 rsb r0, r0, r0, lsl #4 - 117c8: 0040 lsls r0, r0, #1 - 117ca: 28ef cmp r0, #239 ; 0xef - 117cc: f107 0764 add.w r7, r7, #100 ; 0x64 - 117d0: dd44 ble.n 1185c - 117d2: 2000 movs r0, #0 - 117d4: 47a8 blx r5 - 117d6: 231e movs r3, #30 - 117d8: 2250 movs r2, #80 ; 0x50 - 117da: fb00 2203 mla r2, r0, r3, r2 - 117de: 23a0 movs r3, #160 ; 0xa0 - 117e0: fb92 f2f3 sdiv r2, r2, r3 - 117e4: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(SIZE, size, lv_style_int_t, _int, scalar) - 117e6: 2103 movs r1, #3 - 117e8: 4638 mov r0, r7 - 117ea: 47b0 blx r6 - lv_style_set_pad_inner(&styles->gauge_needle, LV_STATE_DEFAULT, LV_DPX(10)); - 117ec: 2000 movs r0, #0 - 117ee: 6824 ldr r4, [r4, #0] - 117f0: 47a8 blx r5 - 117f2: eb00 0080 add.w r0, r0, r0, lsl #2 - 117f6: 0040 lsls r0, r0, #1 - 117f8: 28ef cmp r0, #239 ; 0xef - 117fa: f104 0464 add.w r4, r4, #100 ; 0x64 - 117fe: dd2f ble.n 11860 - 11800: 2000 movs r0, #0 - 11802: 47a8 blx r5 - 11804: 230a movs r3, #10 - 11806: 2250 movs r2, #80 ; 0x50 - 11808: fb00 2203 mla r2, r0, r3, r2 - 1180c: 23a0 movs r3, #160 ; 0xa0 - 1180e: fb92 f2f3 sdiv r2, r2, r3 - 11812: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar) - 11814: 4620 mov r0, r4 - 11816: 4633 mov r3, r6 - 11818: 2114 movs r1, #20 -} - 1181a: e8bd 47f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr} - 1181e: 4718 bx r3 - lv_style_set_line_width(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(5)); - 11820: 2201 movs r2, #1 - 11822: e67a b.n 1151a - lv_style_set_scale_end_line_width(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(4)); - 11824: 2201 movs r2, #1 - 11826: e68c b.n 11542 - lv_style_set_scale_end_border_width(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(8)); - 11828: 2201 movs r2, #1 - 1182a: e69d b.n 11568 - lv_style_set_pad_left(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(20)); - 1182c: 2201 movs r2, #1 - 1182e: e6b3 b.n 11598 - lv_style_set_pad_right(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(20)); - 11830: 2201 movs r2, #1 - 11832: e6c9 b.n 115c8 - lv_style_set_pad_top(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(20)); - 11834: 2201 movs r2, #1 - 11836: e6df b.n 115f8 - lv_style_set_pad_inner(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(20)); - 11838: 2201 movs r2, #1 - 1183a: e6f5 b.n 11628 - lv_style_set_scale_width(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(15)); - 1183c: 2201 movs r2, #1 - 1183e: e70a b.n 11656 - lv_style_set_line_width(&styles->gauge_strong, LV_STATE_DEFAULT, LV_DPX(8)); - 11840: 2201 movs r2, #1 - 11842: e73d b.n 116c0 - lv_style_set_scale_end_line_width(&styles->gauge_strong, LV_STATE_DEFAULT, LV_DPX(8)); - 11844: 2201 movs r2, #1 - 11846: e74e b.n 116e6 - lv_style_set_scale_width(&styles->gauge_strong, LV_STATE_DEFAULT, LV_DPX(25)); - 11848: 2201 movs r2, #1 - 1184a: e765 b.n 11718 - lv_style_set_line_color(&styles->gauge_needle, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x464b5b) : LV_COLOR_WHITE); - 1184c: 4b05 ldr r3, [pc, #20] ; (11864 ) - 1184e: 881a ldrh r2, [r3, #0] - 11850: e773 b.n 1173a - lv_style_set_line_width(&styles->gauge_needle, LV_STATE_DEFAULT, LV_DPX(8)); - 11852: 2201 movs r2, #1 - 11854: e784 b.n 11760 - lv_style_set_bg_color(&styles->gauge_needle, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x464b5b) : LV_COLOR_WHITE); - 11856: 4b03 ldr r3, [pc, #12] ; (11864 ) - 11858: 881a ldrh r2, [r3, #0] - 1185a: e7a7 b.n 117ac - lv_style_set_size(&styles->gauge_needle, LV_STATE_DEFAULT, LV_DPX(30)); - 1185c: 2201 movs r2, #1 - 1185e: e7c2 b.n 117e6 - lv_style_set_pad_inner(&styles->gauge_needle, LV_STATE_DEFAULT, LV_DPX(10)); - 11860: 2201 movs r2, #1 - 11862: e7d7 b.n 11814 - 11864: 0002bcf6 .word 0x0002bcf6 - -00011868 : -{ - 11868: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} - style_init_reset(&styles->chart_bg); - 1186c: 4d68 ldr r5, [pc, #416] ; (11a10 ) - 1186e: 4f69 ldr r7, [pc, #420] ; (11a14 ) - 11870: 6828 ldr r0, [r5, #0] - 11872: f8df 91bc ldr.w r9, [pc, #444] ; 11a30 - 11876: 3040 adds r0, #64 ; 0x40 - 11878: 47b8 blx r7 - lv_style_set_text_color(&styles->chart_bg, LV_STATE_DEFAULT, IS_LIGHT ? COLOR_BG_TEXT_DIS : lv_color_hex(0xa1adbd)); - 1187a: 6a2b ldr r3, [r5, #32] - 1187c: 682c ldr r4, [r5, #0] - 1187e: f013 0f02 tst.w r3, #2 - 11882: f104 0440 add.w r4, r4, #64 ; 0x40 - 11886: f000 80b1 beq.w 119ec - 1188a: 4b63 ldr r3, [pc, #396] ; (11a18 ) - 1188c: f640 20aa movw r0, #2730 ; 0xaaa - 11890: 4798 blx r3 -_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar) - 11892: 4602 mov r2, r0 - 11894: f248 0189 movw r1, #32905 ; 0x8089 - 11898: 4620 mov r0, r4 - 1189a: f8df 8198 ldr.w r8, [pc, #408] ; 11a34 - lv_style_set_line_width(&styles->chart_series_bg, LV_STATE_DEFAULT, LV_DPX(1)); - 1189e: 4c5f ldr r4, [pc, #380] ; (11a1c ) - 118a0: 47c0 blx r8 - style_init_reset(&styles->chart_series_bg); - 118a2: 6828 ldr r0, [r5, #0] - 118a4: 3044 adds r0, #68 ; 0x44 - 118a6: 47b8 blx r7 - lv_style_set_line_width(&styles->chart_series_bg, LV_STATE_DEFAULT, LV_DPX(1)); - 118a8: 2000 movs r0, #0 - 118aa: 682e ldr r6, [r5, #0] - 118ac: 47a0 blx r4 - 118ae: 28ef cmp r0, #239 ; 0xef - 118b0: f106 0644 add.w r6, r6, #68 ; 0x44 - 118b4: f340 809d ble.w 119f2 - 118b8: 2000 movs r0, #0 - 118ba: 47a0 blx r4 - 118bc: 23a0 movs r3, #160 ; 0xa0 - 118be: f100 0250 add.w r2, r0, #80 ; 0x50 - 118c2: fb92 f2f3 sdiv r2, r2, r3 - 118c6: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_WIDTH, line_width, lv_style_int_t, _int, scalar) - 118c8: 4630 mov r0, r6 - 118ca: 2190 movs r1, #144 ; 0x90 - 118cc: 4e54 ldr r6, [pc, #336] ; (11a20 ) - 118ce: 47b0 blx r6 - lv_style_set_line_dash_width(&styles->chart_series_bg, LV_STATE_DEFAULT, LV_DPX(10)); - 118d0: 682b ldr r3, [r5, #0] - 118d2: 2000 movs r0, #0 - 118d4: f103 0a44 add.w sl, r3, #68 ; 0x44 - 118d8: 47a0 blx r4 - 118da: eb00 0080 add.w r0, r0, r0, lsl #2 - 118de: 0040 lsls r0, r0, #1 - 118e0: 28ef cmp r0, #239 ; 0xef - 118e2: f340 8088 ble.w 119f6 - 118e6: 2000 movs r0, #0 - 118e8: 47a0 blx r4 - 118ea: 230a movs r3, #10 - 118ec: 2250 movs r2, #80 ; 0x50 - 118ee: fb00 2203 mla r2, r0, r3, r2 - 118f2: 23a0 movs r3, #160 ; 0xa0 - 118f4: fb92 f2f3 sdiv r2, r2, r3 - 118f8: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_DASH_WIDTH, line_dash_width, lv_style_int_t, _int, scalar) - 118fa: 4650 mov r0, sl - 118fc: 2192 movs r1, #146 ; 0x92 - 118fe: 47b0 blx r6 - lv_style_set_line_dash_gap(&styles->chart_series_bg, LV_STATE_DEFAULT, LV_DPX(10)); - 11900: 682b ldr r3, [r5, #0] - 11902: 2000 movs r0, #0 - 11904: f103 0a44 add.w sl, r3, #68 ; 0x44 - 11908: 47a0 blx r4 - 1190a: eb00 0080 add.w r0, r0, r0, lsl #2 - 1190e: 0040 lsls r0, r0, #1 - 11910: 28ef cmp r0, #239 ; 0xef - 11912: dd72 ble.n 119fa - 11914: 2000 movs r0, #0 - 11916: 47a0 blx r4 - 11918: 230a movs r3, #10 - 1191a: 2250 movs r2, #80 ; 0x50 - 1191c: fb00 2203 mla r2, r0, r3, r2 - 11920: 23a0 movs r3, #160 ; 0xa0 - 11922: fb92 f2f3 sdiv r2, r2, r3 - 11926: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_DASH_GAP, line_dash_gap, lv_style_int_t, _int, scalar) - 11928: 4650 mov r0, sl - 1192a: 2193 movs r1, #147 ; 0x93 - 1192c: 47b0 blx r6 - lv_style_set_line_color(&styles->chart_series_bg, LV_STATE_DEFAULT, COLOR_BG_BORDER); - 1192e: 682b ldr r3, [r5, #0] - 11930: f103 0a44 add.w sl, r3, #68 ; 0x44 - 11934: 6a2b ldr r3, [r5, #32] - 11936: 079b lsls r3, r3, #30 - 11938: bf4c ite mi - 1193a: 483a ldrmi r0, [pc, #232] ; (11a24 ) - 1193c: 483a ldrpl r0, [pc, #232] ; (11a28 ) - 1193e: 47c8 blx r9 -_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_COLOR, line_color, lv_color_t, _color, nonscalar) - 11940: 2199 movs r1, #153 ; 0x99 - 11942: 4602 mov r2, r0 - 11944: 4650 mov r0, sl - 11946: 47c0 blx r8 - style_init_reset(&styles->chart_series); - 11948: 6828 ldr r0, [r5, #0] - 1194a: 3048 adds r0, #72 ; 0x48 - 1194c: 47b8 blx r7 - lv_style_set_line_width(&styles->chart_series, LV_STATE_DEFAULT, LV_DPX(3)); - 1194e: 2000 movs r0, #0 - 11950: 682f ldr r7, [r5, #0] - 11952: 47a0 blx r4 - 11954: eb00 0040 add.w r0, r0, r0, lsl #1 - 11958: 28ef cmp r0, #239 ; 0xef - 1195a: f107 0748 add.w r7, r7, #72 ; 0x48 - 1195e: dd4e ble.n 119fe - 11960: 2000 movs r0, #0 - 11962: 47a0 blx r4 - 11964: 2303 movs r3, #3 - 11966: 2250 movs r2, #80 ; 0x50 - 11968: fb00 2203 mla r2, r0, r3, r2 - 1196c: 23a0 movs r3, #160 ; 0xa0 - 1196e: fb92 f2f3 sdiv r2, r2, r3 - 11972: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_WIDTH, line_width, lv_style_int_t, _int, scalar) - 11974: 4638 mov r0, r7 - 11976: 2190 movs r1, #144 ; 0x90 - 11978: 47b0 blx r6 - lv_style_set_size(&styles->chart_series, LV_STATE_DEFAULT, LV_DPX(4)); - 1197a: 2000 movs r0, #0 - 1197c: 682f ldr r7, [r5, #0] - 1197e: 47a0 blx r4 - 11980: 283b cmp r0, #59 ; 0x3b - 11982: f107 0748 add.w r7, r7, #72 ; 0x48 - 11986: dd3c ble.n 11a02 - 11988: 2000 movs r0, #0 - 1198a: 47a0 blx r4 - 1198c: 2328 movs r3, #40 ; 0x28 - 1198e: f100 0214 add.w r2, r0, #20 - 11992: fb92 f2f3 sdiv r2, r2, r3 - 11996: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(SIZE, size, lv_style_int_t, _int, scalar) - 11998: 4638 mov r0, r7 - 1199a: 2103 movs r1, #3 - 1199c: 47b0 blx r6 - lv_style_set_pad_inner(&styles->chart_series, LV_STATE_DEFAULT, LV_DPX(2)); /*Space between columns*/ - 1199e: 2000 movs r0, #0 - 119a0: 682f ldr r7, [r5, #0] - 119a2: 47a0 blx r4 - 119a4: 2877 cmp r0, #119 ; 0x77 - 119a6: f107 0748 add.w r7, r7, #72 ; 0x48 - 119aa: dd2c ble.n 11a06 - 119ac: 2000 movs r0, #0 - 119ae: 47a0 blx r4 - 119b0: 2350 movs r3, #80 ; 0x50 - 119b2: f100 0228 add.w r2, r0, #40 ; 0x28 - 119b6: fb92 f2f3 sdiv r2, r2, r3 - 119ba: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar) - 119bc: 2114 movs r1, #20 - 119be: 4638 mov r0, r7 - 119c0: 47b0 blx r6 - lv_style_set_radius(&styles->chart_series, LV_STATE_DEFAULT, LV_DPX(1)); - 119c2: 2000 movs r0, #0 - 119c4: 682d ldr r5, [r5, #0] - 119c6: 47a0 blx r4 - 119c8: 28ef cmp r0, #239 ; 0xef - 119ca: f105 0548 add.w r5, r5, #72 ; 0x48 - 119ce: dd1c ble.n 11a0a - 119d0: 2000 movs r0, #0 - 119d2: 47a0 blx r4 - 119d4: 23a0 movs r3, #160 ; 0xa0 - 119d6: f100 0250 add.w r2, r0, #80 ; 0x50 - 119da: fb92 f2f3 sdiv r2, r2, r3 - 119de: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar) - 119e0: 4628 mov r0, r5 - 119e2: 4633 mov r3, r6 - 119e4: 2101 movs r1, #1 -} - 119e6: e8bd 47f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr} - 119ea: 4718 bx r3 - lv_style_set_text_color(&styles->chart_bg, LV_STATE_DEFAULT, IS_LIGHT ? COLOR_BG_TEXT_DIS : lv_color_hex(0xa1adbd)); - 119ec: 480f ldr r0, [pc, #60] ; (11a2c ) - 119ee: 47c8 blx r9 - 119f0: e74f b.n 11892 - lv_style_set_line_width(&styles->chart_series_bg, LV_STATE_DEFAULT, LV_DPX(1)); - 119f2: 2201 movs r2, #1 - 119f4: e768 b.n 118c8 - lv_style_set_line_dash_width(&styles->chart_series_bg, LV_STATE_DEFAULT, LV_DPX(10)); - 119f6: 2201 movs r2, #1 - 119f8: e77f b.n 118fa - lv_style_set_line_dash_gap(&styles->chart_series_bg, LV_STATE_DEFAULT, LV_DPX(10)); - 119fa: 2201 movs r2, #1 - 119fc: e794 b.n 11928 - lv_style_set_line_width(&styles->chart_series, LV_STATE_DEFAULT, LV_DPX(3)); - 119fe: 2201 movs r2, #1 - 11a00: e7b8 b.n 11974 - lv_style_set_size(&styles->chart_series, LV_STATE_DEFAULT, LV_DPX(4)); - 11a02: 2201 movs r2, #1 - 11a04: e7c8 b.n 11998 - lv_style_set_pad_inner(&styles->chart_series, LV_STATE_DEFAULT, LV_DPX(2)); /*Space between columns*/ - 11a06: 2201 movs r2, #1 - 11a08: e7d8 b.n 119bc - lv_style_set_radius(&styles->chart_series, LV_STATE_DEFAULT, LV_DPX(1)); - 11a0a: 2201 movs r2, #1 - 11a0c: e7e8 b.n 119e0 - 11a0e: bf00 nop - 11a10: 200057a4 .word 0x200057a4 - 11a14: 00010d4d .word 0x00010d4d - 11a18: 00010581 .word 0x00010581 - 11a1c: 0000dbd5 .word 0x0000dbd5 - 11a20: 00005afd .word 0x00005afd - 11a24: 00d6dde3 .word 0x00d6dde3 - 11a28: 00808a97 .word 0x00808a97 - 11a2c: 00a1adbd .word 0x00a1adbd - 11a30: 0001112d .word 0x0001112d - 11a34: 00005bcd .word 0x00005bcd - -00011a38 : -{ - 11a38: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - 11a3c: ed2d 8b02 vpush {d8} - style_init_reset(&styles->scr); - 11a40: 4ca1 ldr r4, [pc, #644] ; (11cc8 ) - 11a42: 4fa2 ldr r7, [pc, #648] ; (11ccc ) - 11a44: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar) - 11a46: 4da2 ldr r5, [pc, #648] ; (11cd0 ) -_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar) - 11a48: f8df a2b0 ldr.w sl, [pc, #688] ; 11cfc -{ - 11a4c: b083 sub sp, #12 - style_init_reset(&styles->scr); - 11a4e: 47b8 blx r7 -_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar) - 11a50: 6820 ldr r0, [r4, #0] - 11a52: 22ff movs r2, #255 ; 0xff - 11a54: 212c movs r1, #44 ; 0x2c - 11a56: 47a8 blx r5 - lv_style_set_bg_color(&styles->scr, LV_STATE_DEFAULT, COLOR_SCR); - 11a58: 6a23 ldr r3, [r4, #32] - 11a5a: 6826 ldr r6, [r4, #0] - 11a5c: f013 0f02 tst.w r3, #2 - 11a60: bf14 ite ne - 11a62: 489c ldrne r0, [pc, #624] ; (11cd4 ) - 11a64: 489c ldreq r0, [pc, #624] ; (11cd8 ) - 11a66: 46ab mov fp, r5 - 11a68: 4d9c ldr r5, [pc, #624] ; (11cdc ) - 11a6a: 47a8 blx r5 -_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar) - 11a6c: 46b9 mov r9, r7 - 11a6e: 4602 mov r2, r0 - 11a70: 4f9b ldr r7, [pc, #620] ; (11ce0 ) - 11a72: 4630 mov r0, r6 - 11a74: 2129 movs r1, #41 ; 0x29 - 11a76: 47b8 blx r7 - lv_style_set_text_color(&styles->scr, LV_STATE_DEFAULT, COLOR_SCR_TEXT); - 11a78: 6a23 ldr r3, [r4, #32] - 11a7a: 6826 ldr r6, [r4, #0] - 11a7c: 0798 lsls r0, r3, #30 - 11a7e: bf4c ite mi - 11a80: 4898 ldrmi r0, [pc, #608] ; (11ce4 ) - 11a82: 4899 ldrpl r0, [pc, #612] ; (11ce8 ) - 11a84: 47a8 blx r5 -_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar) - 11a86: f248 0189 movw r1, #32905 ; 0x8089 - 11a8a: 4602 mov r2, r0 - 11a8c: 4630 mov r0, r6 - 11a8e: 47b8 blx r7 - lv_style_set_value_color(&styles->scr, LV_STATE_DEFAULT, COLOR_SCR_TEXT); - 11a90: 6a23 ldr r3, [r4, #32] - 11a92: 6826 ldr r6, [r4, #0] - 11a94: 0799 lsls r1, r3, #30 - 11a96: bf4c ite mi - 11a98: 4892 ldrmi r0, [pc, #584] ; (11ce4 ) - 11a9a: 4893 ldrpl r0, [pc, #588] ; (11ce8 ) - 11a9c: 47a8 blx r5 -_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_COLOR, value_color, lv_color_t, _color, nonscalar) - 11a9e: 2179 movs r1, #121 ; 0x79 - 11aa0: 4602 mov r2, r0 - 11aa2: 4630 mov r0, r6 - 11aa4: 47b8 blx r7 -_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar) - 11aa6: 6962 ldr r2, [r4, #20] - 11aa8: 6820 ldr r0, [r4, #0] - lv_style_set_radius(&styles->bg, LV_STATE_DEFAULT, LV_DPX(8)); - 11aaa: 4e90 ldr r6, [pc, #576] ; (11cec ) - 11aac: f248 018e movw r1, #32910 ; 0x808e - 11ab0: 47d0 blx sl -_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_FONT, value_font, const lv_font_t *, _ptr, scalar) - 11ab2: 6962 ldr r2, [r4, #20] - 11ab4: 6820 ldr r0, [r4, #0] - 11ab6: 217e movs r1, #126 ; 0x7e - 11ab8: 47d0 blx sl - style_init_reset(&styles->bg); - 11aba: 6820 ldr r0, [r4, #0] - 11abc: 3004 adds r0, #4 - 11abe: 47c8 blx r9 - lv_style_set_radius(&styles->bg, LV_STATE_DEFAULT, LV_DPX(8)); - 11ac0: 6823 ldr r3, [r4, #0] - 11ac2: 2000 movs r0, #0 - 11ac4: f103 0804 add.w r8, r3, #4 - 11ac8: 47b0 blx r6 - 11aca: 281d cmp r0, #29 - 11acc: f340 8568 ble.w 125a0 - 11ad0: 2000 movs r0, #0 - 11ad2: 47b0 blx r6 - 11ad4: 2314 movs r3, #20 - 11ad6: f100 020a add.w r2, r0, #10 - 11ada: fb92 f2f3 sdiv r2, r2, r3 - 11ade: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar) - 11ae0: 4640 mov r0, r8 - 11ae2: 2101 movs r1, #1 - 11ae4: f8df 8218 ldr.w r8, [pc, #536] ; 11d00 - 11ae8: 47c0 blx r8 - lv_style_set_bg_opa(&styles->bg, LV_STATE_DEFAULT, LV_OPA_COVER); - 11aea: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar) - 11aec: 22ff movs r2, #255 ; 0xff - 11aee: 3004 adds r0, #4 - 11af0: 212c movs r1, #44 ; 0x2c - 11af2: 47d8 blx fp - lv_style_set_bg_color(&styles->bg, LV_STATE_DEFAULT, COLOR_BG); - 11af4: 6823 ldr r3, [r4, #0] - 11af6: f103 0b04 add.w fp, r3, #4 - 11afa: 6a23 ldr r3, [r4, #32] - 11afc: 079a lsls r2, r3, #30 - 11afe: bf54 ite pl - 11b00: 487b ldrpl r0, [pc, #492] ; (11cf0 ) - 11b02: f06f 407f mvnmi.w r0, #4278190080 ; 0xff000000 - 11b06: 47a8 blx r5 -_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar) - 11b08: 2129 movs r1, #41 ; 0x29 - 11b0a: 4602 mov r2, r0 - 11b0c: 4658 mov r0, fp - 11b0e: 47b8 blx r7 - lv_style_set_border_color(&styles->bg, LV_STATE_DEFAULT, COLOR_BG_BORDER); - 11b10: 6823 ldr r3, [r4, #0] - 11b12: f103 0b04 add.w fp, r3, #4 - 11b16: 6a23 ldr r3, [r4, #32] - 11b18: 079b lsls r3, r3, #30 - 11b1a: bf4c ite mi - 11b1c: 4875 ldrmi r0, [pc, #468] ; (11cf4 ) - 11b1e: 4876 ldrpl r0, [pc, #472] ; (11cf8 ) - 11b20: 47a8 blx r5 -_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar) - 11b22: 2139 movs r1, #57 ; 0x39 - 11b24: 4602 mov r2, r0 - 11b26: 4658 mov r0, fp - 11b28: 47b8 blx r7 - lv_style_set_border_color(&styles->bg, LV_STATE_FOCUSED, theme.color_primary); - 11b2a: 6820 ldr r0, [r4, #0] - 11b2c: 89a2 ldrh r2, [r4, #12] - 11b2e: f240 2139 movw r1, #569 ; 0x239 - 11b32: 3004 adds r0, #4 - 11b34: 47b8 blx r7 - lv_style_set_border_color(&styles->bg, LV_STATE_EDITED, theme.color_secondary); - 11b36: 6820 ldr r0, [r4, #0] - 11b38: 89e2 ldrh r2, [r4, #14] - 11b3a: f240 4139 movw r1, #1081 ; 0x439 - 11b3e: 3004 adds r0, #4 - 11b40: 47b8 blx r7 - lv_style_set_border_width(&styles->bg, LV_STATE_DEFAULT, BORDER_WIDTH); - 11b42: 6823 ldr r3, [r4, #0] - 11b44: 2000 movs r0, #0 - 11b46: f103 0b04 add.w fp, r3, #4 - 11b4a: 47b0 blx r6 - 11b4c: 2877 cmp r0, #119 ; 0x77 - 11b4e: f340 852a ble.w 125a6 - 11b52: 2000 movs r0, #0 - 11b54: 47b0 blx r6 - 11b56: 2350 movs r3, #80 ; 0x50 - 11b58: f100 0228 add.w r2, r0, #40 ; 0x28 - 11b5c: fb92 f2f3 sdiv r2, r2, r3 - 11b60: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar) - 11b62: 4658 mov r0, fp - 11b64: 2130 movs r1, #48 ; 0x30 - 11b66: 47c0 blx r8 - lv_style_set_border_post(&styles->bg, LV_STATE_DEFAULT, true); - 11b68: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_POST, border_post, bool, _int, scalar) - 11b6a: 2201 movs r2, #1 - 11b6c: 2133 movs r1, #51 ; 0x33 - 11b6e: 3004 adds r0, #4 - 11b70: 47c0 blx r8 - lv_style_set_text_font(&styles->bg, LV_STATE_DEFAULT, theme.font_normal); - 11b72: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar) - 11b74: 6962 ldr r2, [r4, #20] - 11b76: 3004 adds r0, #4 - 11b78: f248 018e movw r1, #32910 ; 0x808e - 11b7c: 47d0 blx sl - lv_style_set_text_color(&styles->bg, LV_STATE_DEFAULT, COLOR_BG_TEXT); - 11b7e: 6823 ldr r3, [r4, #0] - 11b80: f103 0b04 add.w fp, r3, #4 - 11b84: 6a23 ldr r3, [r4, #32] - 11b86: 0798 lsls r0, r3, #30 - 11b88: bf4c ite mi - 11b8a: 4856 ldrmi r0, [pc, #344] ; (11ce4 ) - 11b8c: f06f 407f mvnpl.w r0, #4278190080 ; 0xff000000 - 11b90: 47a8 blx r5 -_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar) - 11b92: f248 0189 movw r1, #32905 ; 0x8089 - 11b96: 4602 mov r2, r0 - 11b98: 4658 mov r0, fp - 11b9a: 47b8 blx r7 - lv_style_set_value_font(&styles->bg, LV_STATE_DEFAULT, theme.font_normal); - 11b9c: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_FONT, value_font, const lv_font_t *, _ptr, scalar) - 11b9e: 6962 ldr r2, [r4, #20] - 11ba0: 3004 adds r0, #4 - 11ba2: 217e movs r1, #126 ; 0x7e - 11ba4: 47d0 blx sl - lv_style_set_value_color(&styles->bg, LV_STATE_DEFAULT, COLOR_BG_TEXT); - 11ba6: 6823 ldr r3, [r4, #0] - 11ba8: f103 0a04 add.w sl, r3, #4 - 11bac: 6a23 ldr r3, [r4, #32] - 11bae: 0799 lsls r1, r3, #30 - 11bb0: bf4c ite mi - 11bb2: 484c ldrmi r0, [pc, #304] ; (11ce4 ) - 11bb4: f06f 407f mvnpl.w r0, #4278190080 ; 0xff000000 - 11bb8: 47a8 blx r5 -_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_COLOR, value_color, lv_color_t, _color, nonscalar) - 11bba: 2179 movs r1, #121 ; 0x79 - 11bbc: 4602 mov r2, r0 - 11bbe: 4650 mov r0, sl - 11bc0: 47b8 blx r7 - lv_style_set_image_recolor(&styles->bg, LV_STATE_DEFAULT, COLOR_BG_TEXT); - 11bc2: 6823 ldr r3, [r4, #0] - 11bc4: f103 0a04 add.w sl, r3, #4 - 11bc8: 6a23 ldr r3, [r4, #32] - 11bca: 079a lsls r2, r3, #30 - 11bcc: bf4c ite mi - 11bce: 4845 ldrmi r0, [pc, #276] ; (11ce4 ) - 11bd0: f06f 407f mvnpl.w r0, #4278190080 ; 0xff000000 - 11bd4: 47a8 blx r5 -_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_RECOLOR, image_recolor, lv_color_t, _color, nonscalar) - 11bd6: f248 01a9 movw r1, #32937 ; 0x80a9 - 11bda: 4602 mov r2, r0 - 11bdc: 4650 mov r0, sl - 11bde: 47b8 blx r7 - lv_style_set_line_color(&styles->bg, LV_STATE_DEFAULT, COLOR_BG_TEXT); - 11be0: 6823 ldr r3, [r4, #0] - 11be2: f103 0a04 add.w sl, r3, #4 - 11be6: 6a23 ldr r3, [r4, #32] - 11be8: 079b lsls r3, r3, #30 - 11bea: bf4c ite mi - 11bec: 483d ldrmi r0, [pc, #244] ; (11ce4 ) - 11bee: f06f 407f mvnpl.w r0, #4278190080 ; 0xff000000 - 11bf2: 47a8 blx r5 -_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_COLOR, line_color, lv_color_t, _color, nonscalar) - 11bf4: 2199 movs r1, #153 ; 0x99 - 11bf6: 4602 mov r2, r0 - 11bf8: 4650 mov r0, sl - 11bfa: 47b8 blx r7 - lv_style_set_line_width(&styles->bg, LV_STATE_DEFAULT, 1); - 11bfc: 6820 ldr r0, [r4, #0] - lv_style_set_pad_left(&styles->bg, LV_STATE_DEFAULT, PAD_DEF + BORDER_WIDTH); - 11bfe: f8df a104 ldr.w sl, [pc, #260] ; 11d04 -_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_WIDTH, line_width, lv_style_int_t, _int, scalar) - 11c02: 2201 movs r2, #1 - 11c04: 2190 movs r1, #144 ; 0x90 - 11c06: 3004 adds r0, #4 - 11c08: 47c0 blx r8 - 11c0a: 6823 ldr r3, [r4, #0] - 11c0c: 2000 movs r0, #0 - 11c0e: 3304 adds r3, #4 - 11c10: ee08 3a10 vmov s16, r3 - 11c14: 47d0 blx sl - 11c16: 2801 cmp r0, #1 - 11c18: f04f 0000 mov.w r0, #0 - 11c1c: f200 84d3 bhi.w 125c6 - 11c20: 47b0 blx r6 - 11c22: ebc0 1000 rsb r0, r0, r0, lsl #4 - 11c26: 28ef cmp r0, #239 ; 0xef - 11c28: f300 84c0 bgt.w 125ac - 11c2c: f04f 0b01 mov.w fp, #1 - 11c30: 2000 movs r0, #0 - 11c32: 47b0 blx r6 - 11c34: 2877 cmp r0, #119 ; 0x77 - 11c36: f340 84d1 ble.w 125dc - 11c3a: 2000 movs r0, #0 - 11c3c: 47b0 blx r6 - 11c3e: 2350 movs r3, #80 ; 0x50 - 11c40: 3028 adds r0, #40 ; 0x28 - 11c42: fb90 f0f3 sdiv r0, r0, r3 - 11c46: b280 uxth r0, r0 - 11c48: eb0b 0200 add.w r2, fp, r0 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar) - 11c4c: b212 sxth r2, r2 - 11c4e: ee18 0a10 vmov r0, s16 - 11c52: 2112 movs r1, #18 - 11c54: 47c0 blx r8 - lv_style_set_pad_right(&styles->bg, LV_STATE_DEFAULT, PAD_DEF + BORDER_WIDTH); - 11c56: 6823 ldr r3, [r4, #0] - 11c58: 2000 movs r0, #0 - 11c5a: 3304 adds r3, #4 - 11c5c: ee08 3a10 vmov s16, r3 - 11c60: 47d0 blx sl - 11c62: 2801 cmp r0, #1 - 11c64: f04f 0000 mov.w r0, #0 - 11c68: f200 84c8 bhi.w 125fc - 11c6c: 47b0 blx r6 - 11c6e: ebc0 1000 rsb r0, r0, r0, lsl #4 - 11c72: 28ef cmp r0, #239 ; 0xef - 11c74: f300 84b5 bgt.w 125e2 - 11c78: f04f 0b01 mov.w fp, #1 - 11c7c: 2000 movs r0, #0 - 11c7e: 47b0 blx r6 - 11c80: 2877 cmp r0, #119 ; 0x77 - 11c82: f340 84c6 ble.w 12612 - 11c86: 2000 movs r0, #0 - 11c88: 47b0 blx r6 - 11c8a: 2350 movs r3, #80 ; 0x50 - 11c8c: 3028 adds r0, #40 ; 0x28 - 11c8e: fb90 f0f3 sdiv r0, r0, r3 - 11c92: b280 uxth r0, r0 - 11c94: eb0b 0200 add.w r2, fp, r0 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar) - 11c98: b212 sxth r2, r2 - 11c9a: ee18 0a10 vmov r0, s16 - 11c9e: 2113 movs r1, #19 - 11ca0: 47c0 blx r8 - lv_style_set_pad_top(&styles->bg, LV_STATE_DEFAULT, PAD_DEF + BORDER_WIDTH); - 11ca2: 6823 ldr r3, [r4, #0] - 11ca4: 2000 movs r0, #0 - 11ca6: 3304 adds r3, #4 - 11ca8: ee08 3a10 vmov s16, r3 - 11cac: 47d0 blx sl - 11cae: 2801 cmp r0, #1 - 11cb0: f04f 0000 mov.w r0, #0 - 11cb4: f200 84bd bhi.w 12632 - 11cb8: 47b0 blx r6 - 11cba: ebc0 1000 rsb r0, r0, r0, lsl #4 - 11cbe: 28ef cmp r0, #239 ; 0xef - 11cc0: f300 84aa bgt.w 12618 - 11cc4: e020 b.n 11d08 - 11cc6: bf00 nop - 11cc8: 200057a4 .word 0x200057a4 - 11ccc: 00010d4d .word 0x00010d4d - 11cd0: 00005c9d .word 0x00005c9d - 11cd4: 00eaeff3 .word 0x00eaeff3 - 11cd8: 00444b5a .word 0x00444b5a - 11cdc: 0001112d .word 0x0001112d - 11ce0: 00005bcd .word 0x00005bcd - 11ce4: 003b3e42 .word 0x003b3e42 - 11ce8: 00e7e9ec .word 0x00e7e9ec - 11cec: 0000dbd5 .word 0x0000dbd5 - 11cf0: 00586273 .word 0x00586273 - 11cf4: 00d6dde3 .word 0x00d6dde3 - 11cf8: 00808a97 .word 0x00808a97 - 11cfc: 00005d71 .word 0x00005d71 - 11d00: 00005afd .word 0x00005afd - 11d04: 0000dbed .word 0x0000dbed - 11d08: f04f 0b01 mov.w fp, #1 - 11d0c: 2000 movs r0, #0 - 11d0e: 47b0 blx r6 - 11d10: 2877 cmp r0, #119 ; 0x77 - 11d12: f340 8499 ble.w 12648 - 11d16: 2000 movs r0, #0 - 11d18: 47b0 blx r6 - 11d1a: 2350 movs r3, #80 ; 0x50 - 11d1c: 3028 adds r0, #40 ; 0x28 - 11d1e: fb90 f0f3 sdiv r0, r0, r3 - 11d22: b280 uxth r0, r0 - 11d24: eb0b 0200 add.w r2, fp, r0 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar) - 11d28: b212 sxth r2, r2 - 11d2a: ee18 0a10 vmov r0, s16 - 11d2e: 2110 movs r1, #16 - 11d30: 47c0 blx r8 - lv_style_set_pad_bottom(&styles->bg, LV_STATE_DEFAULT, PAD_DEF + BORDER_WIDTH); - 11d32: 6823 ldr r3, [r4, #0] - 11d34: 2000 movs r0, #0 - 11d36: 3304 adds r3, #4 - 11d38: ee08 3a10 vmov s16, r3 - 11d3c: 47d0 blx sl - 11d3e: 2801 cmp r0, #1 - 11d40: f04f 0000 mov.w r0, #0 - 11d44: f200 8490 bhi.w 12668 - 11d48: 47b0 blx r6 - 11d4a: ebc0 1000 rsb r0, r0, r0, lsl #4 - 11d4e: 28ef cmp r0, #239 ; 0xef - 11d50: f300 847d bgt.w 1264e - 11d54: f04f 0b01 mov.w fp, #1 - 11d58: 2000 movs r0, #0 - 11d5a: 47b0 blx r6 - 11d5c: 2877 cmp r0, #119 ; 0x77 - 11d5e: f340 848e ble.w 1267e - 11d62: 2000 movs r0, #0 - 11d64: 47b0 blx r6 - 11d66: 2350 movs r3, #80 ; 0x50 - 11d68: 3028 adds r0, #40 ; 0x28 - 11d6a: fb90 f0f3 sdiv r0, r0, r3 - 11d6e: b280 uxth r0, r0 - 11d70: eb0b 0200 add.w r2, fp, r0 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar) - 11d74: b212 sxth r2, r2 - 11d76: ee18 0a10 vmov r0, s16 - 11d7a: 2111 movs r1, #17 - 11d7c: 47c0 blx r8 - lv_style_set_pad_inner(&styles->bg, LV_STATE_DEFAULT, PAD_DEF); - 11d7e: 6823 ldr r3, [r4, #0] - 11d80: 2000 movs r0, #0 - 11d82: f103 0b04 add.w fp, r3, #4 - 11d86: 47d0 blx sl - 11d88: 2801 cmp r0, #1 - 11d8a: f04f 0000 mov.w r0, #0 - 11d8e: f200 8485 bhi.w 1269c - 11d92: 47b0 blx r6 - 11d94: ebc0 1000 rsb r0, r0, r0, lsl #4 - 11d98: 28ef cmp r0, #239 ; 0xef - 11d9a: f300 8473 bgt.w 12684 - 11d9e: 2201 movs r2, #1 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar) - 11da0: 2114 movs r1, #20 - 11da2: 4658 mov r0, fp - 11da4: 47c0 blx r8 - lv_style_set_transition_time(&styles->bg, LV_STATE_DEFAULT, TRANSITION_TIME); - 11da6: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_TIME, transition_time, lv_style_int_t, _int, scalar) - 11da8: 2296 movs r2, #150 ; 0x96 - 11daa: 21b0 movs r1, #176 ; 0xb0 - 11dac: 3004 adds r0, #4 - 11dae: 47c0 blx r8 - lv_style_set_transition_prop_6(&styles->bg, LV_STATE_DEFAULT, LV_STYLE_BORDER_COLOR); - 11db0: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_6, transition_prop_6, lv_style_int_t, _int, scalar) - 11db2: 2239 movs r2, #57 ; 0x39 - 11db4: 21b7 movs r1, #183 ; 0xb7 - 11db6: 3004 adds r0, #4 - 11db8: 47c0 blx r8 - style_init_reset(&styles->bg_sec); - 11dba: 6820 ldr r0, [r4, #0] - 11dbc: 300c adds r0, #12 - 11dbe: 47c8 blx r9 - lv_style_copy(&styles->bg_sec, &styles->bg); - 11dc0: 6820 ldr r0, [r4, #0] - 11dc2: 4bac ldr r3, [pc, #688] ; (12074 ) - 11dc4: 1d01 adds r1, r0, #4 - 11dc6: 300c adds r0, #12 - 11dc8: 4798 blx r3 - lv_style_set_bg_color(&styles->bg_sec, LV_STATE_DEFAULT, COLOR_BG_SEC); - 11dca: 6a23 ldr r3, [r4, #32] - 11dcc: 6826 ldr r6, [r4, #0] - 11dce: 0798 lsls r0, r3, #30 - 11dd0: bf4c ite mi - 11dd2: 48a9 ldrmi r0, [pc, #676] ; (12078 ) - 11dd4: 48a9 ldrpl r0, [pc, #676] ; (1207c ) - 11dd6: 47a8 blx r5 - 11dd8: 360c adds r6, #12 -_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar) - 11dda: 4602 mov r2, r0 - 11ddc: 2129 movs r1, #41 ; 0x29 - 11dde: 4630 mov r0, r6 - 11de0: 47b8 blx r7 - lv_style_set_border_color(&styles->bg_sec, LV_STATE_DEFAULT, COLOR_BG_SEC_BORDER); - 11de2: 6a23 ldr r3, [r4, #32] - 11de4: 6826 ldr r6, [r4, #0] - 11de6: 0799 lsls r1, r3, #30 - 11de8: bf4c ite mi - 11dea: 48a5 ldrmi r0, [pc, #660] ; (12080 ) - 11dec: 48a5 ldrpl r0, [pc, #660] ; (12084 ) - 11dee: 47a8 blx r5 - 11df0: 360c adds r6, #12 -_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar) - 11df2: 4602 mov r2, r0 - 11df4: 2139 movs r1, #57 ; 0x39 - 11df6: 4630 mov r0, r6 - 11df8: 47b8 blx r7 - lv_style_set_text_color(&styles->bg_sec, LV_STATE_DEFAULT, COLOR_BG_SEC_TEXT); - 11dfa: 6a23 ldr r3, [r4, #32] - 11dfc: 6826 ldr r6, [r4, #0] - 11dfe: 079a lsls r2, r3, #30 - 11e00: bf4c ite mi - 11e02: 48a1 ldrmi r0, [pc, #644] ; (12088 ) - 11e04: 48a1 ldrpl r0, [pc, #644] ; (1208c ) - 11e06: 47a8 blx r5 - 11e08: 360c adds r6, #12 -_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar) - 11e0a: 4602 mov r2, r0 - 11e0c: f248 0189 movw r1, #32905 ; 0x8089 - 11e10: 4630 mov r0, r6 - 11e12: 47b8 blx r7 - lv_style_set_value_color(&styles->bg_sec, LV_STATE_DEFAULT, COLOR_BG_SEC_TEXT); - 11e14: 6a23 ldr r3, [r4, #32] - 11e16: 6826 ldr r6, [r4, #0] - 11e18: 079b lsls r3, r3, #30 - 11e1a: bf4c ite mi - 11e1c: 489a ldrmi r0, [pc, #616] ; (12088 ) - 11e1e: 489b ldrpl r0, [pc, #620] ; (1208c ) - 11e20: 47a8 blx r5 - 11e22: 360c adds r6, #12 -_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_COLOR, value_color, lv_color_t, _color, nonscalar) - 11e24: 4602 mov r2, r0 - 11e26: 2179 movs r1, #121 ; 0x79 - 11e28: 4630 mov r0, r6 - 11e2a: 47b8 blx r7 - lv_style_set_image_recolor(&styles->bg_sec, LV_STATE_DEFAULT, COLOR_BG_SEC_TEXT); - 11e2c: 6a23 ldr r3, [r4, #32] - 11e2e: 6826 ldr r6, [r4, #0] - 11e30: 0798 lsls r0, r3, #30 - 11e32: bf4c ite mi - 11e34: 4894 ldrmi r0, [pc, #592] ; (12088 ) - 11e36: 4895 ldrpl r0, [pc, #596] ; (1208c ) - 11e38: 47a8 blx r5 - 11e3a: 360c adds r6, #12 -_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_RECOLOR, image_recolor, lv_color_t, _color, nonscalar) - 11e3c: 4602 mov r2, r0 - 11e3e: f248 01a9 movw r1, #32937 ; 0x80a9 - 11e42: 4630 mov r0, r6 - 11e44: 47b8 blx r7 - lv_style_set_line_color(&styles->bg_sec, LV_STATE_DEFAULT, COLOR_BG_SEC_TEXT); - 11e46: 6a23 ldr r3, [r4, #32] - 11e48: 6826 ldr r6, [r4, #0] - 11e4a: 0799 lsls r1, r3, #30 - 11e4c: bf4c ite mi - 11e4e: 488e ldrmi r0, [pc, #568] ; (12088 ) - 11e50: 488e ldrpl r0, [pc, #568] ; (1208c ) - 11e52: 47a8 blx r5 - 11e54: 360c adds r6, #12 -_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_COLOR, line_color, lv_color_t, _color, nonscalar) - 11e56: 4602 mov r2, r0 - 11e58: 2199 movs r1, #153 ; 0x99 - 11e5a: 4630 mov r0, r6 - 11e5c: 47b8 blx r7 - style_init_reset(&styles->bg_click); - 11e5e: 6820 ldr r0, [r4, #0] - 11e60: 3008 adds r0, #8 - 11e62: 47c8 blx r9 - lv_style_set_bg_color(&styles->bg_click, LV_STATE_PRESSED, COLOR_BG_PR); - 11e64: 6a23 ldr r3, [r4, #32] - 11e66: 6826 ldr r6, [r4, #0] - lv_style_set_bg_color(&styles->bg_click, LV_STATE_PRESSED | LV_STATE_CHECKED, COLOR_BG_PR_CHK); - 11e68: f8df 9250 ldr.w r9, [pc, #592] ; 120bc - lv_style_set_bg_color(&styles->bg_click, LV_STATE_PRESSED, COLOR_BG_PR); - 11e6c: 079a lsls r2, r3, #30 - 11e6e: bf4c ite mi - 11e70: 4887 ldrmi r0, [pc, #540] ; (12090 ) - 11e72: 4888 ldrpl r0, [pc, #544] ; (12094 ) - 11e74: 47a8 blx r5 - 11e76: 3608 adds r6, #8 -_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar) - 11e78: 4602 mov r2, r0 - 11e7a: f241 0129 movw r1, #4137 ; 0x1029 - 11e7e: 4630 mov r0, r6 - 11e80: 47b8 blx r7 - lv_style_set_bg_color(&styles->bg_click, LV_STATE_CHECKED, COLOR_BG_CHK); - 11e82: 6820 ldr r0, [r4, #0] - 11e84: 89a2 ldrh r2, [r4, #12] - 11e86: f240 1129 movw r1, #297 ; 0x129 - 11e8a: 3008 adds r0, #8 - 11e8c: 47b8 blx r7 - lv_style_set_bg_color(&styles->bg_click, LV_STATE_PRESSED | LV_STATE_CHECKED, COLOR_BG_PR_CHK); - 11e8e: 6820 ldr r0, [r4, #0] - 11e90: 2133 movs r1, #51 ; 0x33 - 11e92: f100 0608 add.w r6, r0, #8 - 11e96: 89a0 ldrh r0, [r4, #12] - 11e98: 47c8 blx r9 - 11e9a: f241 1129 movw r1, #4393 ; 0x1129 - 11e9e: 4602 mov r2, r0 - 11ea0: 4630 mov r0, r6 - 11ea2: 47b8 blx r7 - lv_style_set_bg_color(&styles->bg_click, LV_STATE_DISABLED, COLOR_BG_DIS); - 11ea4: 6a23 ldr r3, [r4, #32] - 11ea6: 6826 ldr r6, [r4, #0] - 11ea8: 079b lsls r3, r3, #30 - 11eaa: bf54 ite pl - 11eac: 487a ldrpl r0, [pc, #488] ; (12098 ) - 11eae: f06f 407f mvnmi.w r0, #4278190080 ; 0xff000000 - 11eb2: 47a8 blx r5 - 11eb4: 3608 adds r6, #8 - 11eb6: 4602 mov r2, r0 - 11eb8: f242 0129 movw r1, #8233 ; 0x2029 - 11ebc: 4630 mov r0, r6 - 11ebe: 47b8 blx r7 - lv_style_set_border_width(&styles->bg_click, LV_STATE_CHECKED, 0); - 11ec0: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar) - 11ec2: 2200 movs r2, #0 - 11ec4: f44f 7198 mov.w r1, #304 ; 0x130 - 11ec8: 3008 adds r0, #8 - 11eca: 47c0 blx r8 - lv_style_set_border_color(&styles->bg_click, LV_STATE_FOCUSED | LV_STATE_PRESSED, lv_color_darken(theme.color_primary, - 11ecc: 6820 ldr r0, [r4, #0] - 11ece: f8df 81f0 ldr.w r8, [pc, #496] ; 120c0 - 11ed2: f100 0608 add.w r6, r0, #8 - 11ed6: 2133 movs r1, #51 ; 0x33 - 11ed8: 89a0 ldrh r0, [r4, #12] - 11eda: 47c8 blx r9 -_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar) - 11edc: f241 2139 movw r1, #4665 ; 0x1239 - 11ee0: 4602 mov r2, r0 - 11ee2: 4630 mov r0, r6 - 11ee4: 47b8 blx r7 - lv_style_set_border_color(&styles->bg_click, LV_STATE_PRESSED, COLOR_BG_BORDER_PR); - 11ee6: 6a23 ldr r3, [r4, #32] - 11ee8: 6826 ldr r6, [r4, #0] - 11eea: f013 0f02 tst.w r3, #2 - 11eee: f106 0608 add.w r6, r6, #8 - 11ef2: f000 83de beq.w 126b2 - 11ef6: f640 40cc movw r0, #3276 ; 0xccc - 11efa: 47c0 blx r8 - 11efc: 4602 mov r2, r0 - 11efe: f241 0139 movw r1, #4153 ; 0x1039 - 11f02: 4630 mov r0, r6 - 11f04: 47b8 blx r7 - lv_style_set_border_color(&styles->bg_click, LV_STATE_CHECKED, COLOR_BG_BORDER_CHK); - 11f06: 6a23 ldr r3, [r4, #32] - 11f08: 6826 ldr r6, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar) - 11f0a: f8df b1b8 ldr.w fp, [pc, #440] ; 120c4 - 11f0e: 0798 lsls r0, r3, #30 - 11f10: bf4c ite mi - 11f12: 4862 ldrmi r0, [pc, #392] ; (1209c ) - 11f14: 4862 ldrpl r0, [pc, #392] ; (120a0 ) - 11f16: 47a8 blx r5 - 11f18: 3608 adds r6, #8 -_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar) - 11f1a: 4602 mov r2, r0 - 11f1c: f240 1139 movw r1, #313 ; 0x139 - 11f20: 4630 mov r0, r6 - 11f22: 47b8 blx r7 - lv_style_set_border_color(&styles->bg_click, LV_STATE_PRESSED | LV_STATE_CHECKED, COLOR_BG_BORDER_CHK_PR); - 11f24: 6a23 ldr r3, [r4, #32] - 11f26: 4d5f ldr r5, [pc, #380] ; (120a4 ) - 11f28: 6826 ldr r6, [r4, #0] - lv_style_set_border_color(&styles->bg_click, LV_STATE_DISABLED, COLOR_BG_BORDER_DIS); - 11f2a: 4c5f ldr r4, [pc, #380] ; (120a8 ) - lv_style_set_border_color(&styles->bg_click, LV_STATE_PRESSED | LV_STATE_CHECKED, COLOR_BG_BORDER_CHK_PR); - 11f2c: f013 0f02 tst.w r3, #2 - 11f30: bf14 ite ne - 11f32: 485a ldrne r0, [pc, #360] ; (1209c ) - 11f34: 485a ldreq r0, [pc, #360] ; (120a0 ) - 11f36: 47a8 blx r5 - 11f38: 3608 adds r6, #8 - 11f3a: 4602 mov r2, r0 - 11f3c: f241 1139 movw r1, #4409 ; 0x1139 - 11f40: 4630 mov r0, r6 - 11f42: 47b8 blx r7 - lv_style_set_border_color(&styles->bg_click, LV_STATE_DISABLED, COLOR_BG_BORDER_DIS); - 11f44: 6a23 ldr r3, [r4, #32] - 11f46: 6826 ldr r6, [r4, #0] - 11f48: 0799 lsls r1, r3, #30 - 11f4a: bf4c ite mi - 11f4c: 4857 ldrmi r0, [pc, #348] ; (120ac ) - 11f4e: 4854 ldrpl r0, [pc, #336] ; (120a0 ) - 11f50: 47a8 blx r5 - 11f52: 3608 adds r6, #8 - 11f54: 4602 mov r2, r0 - 11f56: f242 0139 movw r1, #8249 ; 0x2039 - 11f5a: 4630 mov r0, r6 - 11f5c: 4e54 ldr r6, [pc, #336] ; (120b0 ) - 11f5e: 47b0 blx r6 - lv_style_set_text_color(&styles->bg_click, LV_STATE_PRESSED, COLOR_BG_TEXT_PR); - 11f60: 6a23 ldr r3, [r4, #32] - 11f62: 6827 ldr r7, [r4, #0] - 11f64: 079a lsls r2, r3, #30 - 11f66: bf4c ite mi - 11f68: 484c ldrmi r0, [pc, #304] ; (1209c ) - 11f6a: f06f 407f mvnpl.w r0, #4278190080 ; 0xff000000 - 11f6e: 47a8 blx r5 - 11f70: 3708 adds r7, #8 -_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar) - 11f72: 4602 mov r2, r0 - 11f74: f249 0189 movw r1, #37001 ; 0x9089 - 11f78: 4638 mov r0, r7 - 11f7a: 47b0 blx r6 - lv_style_set_text_color(&styles->bg_click, LV_STATE_CHECKED, COLOR_BG_TEXT_CHK); - 11f7c: 6820 ldr r0, [r4, #0] - 11f7e: f100 0708 add.w r7, r0, #8 - 11f82: f06f 407f mvn.w r0, #4278190080 ; 0xff000000 - 11f86: 47a8 blx r5 - 11f88: f248 1189 movw r1, #33161 ; 0x8189 - 11f8c: 4602 mov r2, r0 - 11f8e: 4638 mov r0, r7 - 11f90: 47b0 blx r6 - lv_style_set_text_color(&styles->bg_click, LV_STATE_PRESSED | LV_STATE_CHECKED, COLOR_BG_TEXT_CHK_PR); - 11f92: 6820 ldr r0, [r4, #0] - 11f94: f100 0708 add.w r7, r0, #8 - 11f98: f06f 407f mvn.w r0, #4278190080 ; 0xff000000 - 11f9c: 47a8 blx r5 - 11f9e: f249 1189 movw r1, #37257 ; 0x9189 - 11fa2: 4602 mov r2, r0 - 11fa4: 4638 mov r0, r7 - 11fa6: 47b0 blx r6 - lv_style_set_text_color(&styles->bg_click, LV_STATE_DISABLED, COLOR_BG_TEXT_DIS); - 11fa8: 6a23 ldr r3, [r4, #32] - 11faa: 6827 ldr r7, [r4, #0] - 11fac: 079b lsls r3, r3, #30 - 11fae: bf4c ite mi - 11fb0: f640 20aa movwmi r0, #2730 ; 0xaaa - 11fb4: f640 1099 movwpl r0, #2457 ; 0x999 - 11fb8: 47c0 blx r8 - 11fba: 3708 adds r7, #8 - 11fbc: 4602 mov r2, r0 - 11fbe: f24a 0189 movw r1, #41097 ; 0xa089 - 11fc2: 4638 mov r0, r7 - 11fc4: 47b0 blx r6 - lv_style_set_image_recolor(&styles->bg_click, LV_STATE_PRESSED, COLOR_BG_TEXT_PR); - 11fc6: 6a23 ldr r3, [r4, #32] - 11fc8: 6827 ldr r7, [r4, #0] - 11fca: 0798 lsls r0, r3, #30 - 11fcc: bf4c ite mi - 11fce: 4833 ldrmi r0, [pc, #204] ; (1209c ) - 11fd0: f06f 407f mvnpl.w r0, #4278190080 ; 0xff000000 - 11fd4: 47a8 blx r5 - 11fd6: 3708 adds r7, #8 -_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_RECOLOR, image_recolor, lv_color_t, _color, nonscalar) - 11fd8: 4602 mov r2, r0 - 11fda: f249 01a9 movw r1, #37033 ; 0x90a9 - 11fde: 4638 mov r0, r7 - 11fe0: 47b0 blx r6 - lv_style_set_image_recolor(&styles->bg_click, LV_STATE_CHECKED, COLOR_BG_TEXT_CHK); - 11fe2: 6820 ldr r0, [r4, #0] - 11fe4: f100 0708 add.w r7, r0, #8 - 11fe8: f06f 407f mvn.w r0, #4278190080 ; 0xff000000 - 11fec: 47a8 blx r5 - 11fee: f248 11a9 movw r1, #33193 ; 0x81a9 - 11ff2: 4602 mov r2, r0 - 11ff4: 4638 mov r0, r7 - 11ff6: 47b0 blx r6 - lv_style_set_image_recolor(&styles->bg_click, LV_STATE_PRESSED | LV_STATE_CHECKED, COLOR_BG_TEXT_CHK_PR); - 11ff8: 6820 ldr r0, [r4, #0] - 11ffa: f100 0708 add.w r7, r0, #8 - 11ffe: f06f 407f mvn.w r0, #4278190080 ; 0xff000000 - 12002: 47a8 blx r5 - 12004: f249 11a9 movw r1, #37289 ; 0x91a9 - 12008: 4602 mov r2, r0 - 1200a: 4638 mov r0, r7 - 1200c: 47b0 blx r6 - lv_style_set_image_recolor(&styles->bg_click, LV_STATE_DISABLED, COLOR_BG_TEXT_DIS); - 1200e: 6a23 ldr r3, [r4, #32] - 12010: 6827 ldr r7, [r4, #0] - 12012: 0799 lsls r1, r3, #30 - 12014: bf4c ite mi - 12016: f640 20aa movwmi r0, #2730 ; 0xaaa - 1201a: f640 1099 movwpl r0, #2457 ; 0x999 - 1201e: 47c0 blx r8 - 12020: 3708 adds r7, #8 - 12022: 4602 mov r2, r0 - 12024: f24a 01a9 movw r1, #41129 ; 0xa0a9 - 12028: 4638 mov r0, r7 - 1202a: 47b0 blx r6 - lv_style_set_transition_prop_5(&styles->bg_click, LV_STATE_DEFAULT, LV_STYLE_BG_COLOR); - 1202c: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_5, transition_prop_5, lv_style_int_t, _int, scalar) - 1202e: 4f21 ldr r7, [pc, #132] ; (120b4 ) - 12030: 2229 movs r2, #41 ; 0x29 - 12032: 21b6 movs r1, #182 ; 0xb6 - 12034: 3008 adds r0, #8 - 12036: 47b8 blx r7 - style_init_reset(&styles->btn); - 12038: 6820 ldr r0, [r4, #0] - 1203a: 4b1f ldr r3, [pc, #124] ; (120b8 ) - 1203c: 3010 adds r0, #16 - 1203e: 4798 blx r3 - lv_style_set_radius(&styles->btn, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE); - 12040: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar) - 12042: f647 72ff movw r2, #32767 ; 0x7fff - 12046: 2101 movs r1, #1 - 12048: 3010 adds r0, #16 - 1204a: 47b8 blx r7 - lv_style_set_bg_opa(&styles->btn, LV_STATE_DEFAULT, LV_OPA_COVER); - 1204c: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar) - 1204e: 22ff movs r2, #255 ; 0xff - 12050: 3010 adds r0, #16 - 12052: 212c movs r1, #44 ; 0x2c - 12054: 47d8 blx fp - lv_style_set_bg_color(&styles->btn, LV_STATE_DEFAULT, COLOR_BTN); - 12056: 6823 ldr r3, [r4, #0] - 12058: f8cd b004 str.w fp, [sp, #4] - 1205c: f103 0a10 add.w sl, r3, #16 - 12060: 6a23 ldr r3, [r4, #32] - 12062: f013 0f02 tst.w r3, #2 - 12066: bf0c ite eq - 12068: 480b ldreq r0, [pc, #44] ; (12098 ) - 1206a: f06f 407f mvnne.w r0, #4278190080 ; 0xff000000 - 1206e: 47a8 blx r5 -_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar) - 12070: 2129 movs r1, #41 ; 0x29 - 12072: e029 b.n 120c8 - 12074: 00005a5d .word 0x00005a5d - 12078: 00d4d7d9 .word 0x00d4d7d9 - 1207c: 0045494d .word 0x0045494d - 12080: 00dfe7ed .word 0x00dfe7ed - 12084: 00404040 .word 0x00404040 - 12088: 0031404f .word 0x0031404f - 1208c: 00a5a8ad .word 0x00a5a8ad - 12090: 00eeeeee .word 0x00eeeeee - 12094: 00494f57 .word 0x00494f57 - 12098: 00586273 .word 0x00586273 - 1209c: 003b3e42 .word 0x003b3e42 - 120a0: 005f656e .word 0x005f656e - 120a4: 0001112d .word 0x0001112d - 120a8: 200057a4 .word 0x200057a4 - 120ac: 00d6dde3 .word 0x00d6dde3 - 120b0: 00005bcd .word 0x00005bcd - 120b4: 00005afd .word 0x00005afd - 120b8: 00010d4d .word 0x00010d4d - 120bc: 0000e613 .word 0x0000e613 - 120c0: 00010581 .word 0x00010581 - 120c4: 00005c9d .word 0x00005c9d - 120c8: 4602 mov r2, r0 - 120ca: 4650 mov r0, sl - 120cc: 47b0 blx r6 - lv_style_set_bg_color(&styles->btn, LV_STATE_PRESSED, COLOR_BTN_PR); - 120ce: 6823 ldr r3, [r4, #0] - 120d0: f103 0a10 add.w sl, r3, #16 - 120d4: 6a23 ldr r3, [r4, #32] - 120d6: 079a lsls r2, r3, #30 - 120d8: f140 82ee bpl.w 126b8 - 120dc: f06f 407f mvn.w r0, #4278190080 ; 0xff000000 - 120e0: 47a8 blx r5 - LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix))); - 120e2: 7b61 ldrb r1, [r4, #13] - LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix))); - 120e4: f8b4 c00c ldrh.w ip, [r4, #12] - LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix))); - 120e8: f04f 0be6 mov.w fp, #230 ; 0xe6 - 120ec: f3c0 22c4 ubfx r2, r0, #11, #5 - 120f0: 2319 movs r3, #25 - 120f2: fb0b f202 mul.w r2, fp, r2 - 120f6: 08c9 lsrs r1, r1, #3 - 120f8: fb13 2101 smlabb r1, r3, r1, r2 - LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix))); - 120fc: f3c0 1245 ubfx r2, r0, #5, #6 - 12100: fb0b f202 mul.w r2, fp, r2 - 12104: f3cc 1c45 ubfx ip, ip, #5, #6 - 12108: fb13 2c0c smlabb ip, r3, ip, r2 - LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix))); - 1210c: 7b22 ldrb r2, [r4, #12] - 1210e: f000 001f and.w r0, r0, #31 - LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix))); - 12112: f248 0e81 movw lr, #32897 ; 0x8081 - LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix))); - 12116: f002 021f and.w r2, r2, #31 - 1211a: fb0b f000 mul.w r0, fp, r0 - LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix))); - 1211e: fb0e f101 mul.w r1, lr, r1 - LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix))); - 12122: fb0e fc0c mul.w ip, lr, ip - LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix))); - 12126: fb13 0202 smlabb r2, r3, r2, r0 - LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix))); - 1212a: f3c1 51c4 ubfx r1, r1, #23, #5 - LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix))); - 1212e: f3cc 5cc5 ubfx ip, ip, #23, #6 - LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix))); - 12132: fb0e f202 mul.w r2, lr, r2 - 12136: f3c2 52c4 ubfx r2, r2, #23, #5 - 1213a: ea42 124c orr.w r2, r2, ip, lsl #5 - 1213e: ea42 22c1 orr.w r2, r2, r1, lsl #11 - 12142: 4650 mov r0, sl - 12144: f241 0129 movw r1, #4137 ; 0x1029 - 12148: 47b0 blx r6 - lv_style_set_bg_color(&styles->btn, LV_STATE_CHECKED, COLOR_BTN_CHK); - 1214a: 6820 ldr r0, [r4, #0] - 1214c: 89a2 ldrh r2, [r4, #12] - 1214e: f240 1129 movw r1, #297 ; 0x129 - 12152: 3010 adds r0, #16 - 12154: 47b0 blx r6 - lv_style_set_bg_color(&styles->btn, LV_STATE_CHECKED | LV_STATE_PRESSED, COLOR_BTN_CHK_PR); - 12156: 6820 ldr r0, [r4, #0] - 12158: 214c movs r1, #76 ; 0x4c - 1215a: f100 0a10 add.w sl, r0, #16 - 1215e: 89a0 ldrh r0, [r4, #12] - 12160: 47c8 blx r9 - 12162: f241 1129 movw r1, #4393 ; 0x1129 - 12166: 4602 mov r2, r0 - 12168: 4650 mov r0, sl - 1216a: 47b0 blx r6 - lv_style_set_bg_color(&styles->btn, LV_STATE_DISABLED, COLOR_BTN); - 1216c: 6823 ldr r3, [r4, #0] - 1216e: f103 0910 add.w r9, r3, #16 - 12172: 6a23 ldr r3, [r4, #32] - 12174: 079b lsls r3, r3, #30 - 12176: bf54 ite pl - 12178: 48b2 ldrpl r0, [pc, #712] ; (12444 ) - 1217a: f06f 407f mvnmi.w r0, #4278190080 ; 0xff000000 - 1217e: 47a8 blx r5 - 12180: f242 0129 movw r1, #8233 ; 0x2029 - 12184: 4602 mov r2, r0 - 12186: 4648 mov r0, r9 - 12188: 47b0 blx r6 - lv_style_set_bg_color(&styles->btn, LV_STATE_DISABLED | LV_STATE_CHECKED, COLOR_BTN_DIS); - 1218a: 6823 ldr r3, [r4, #0] - 1218c: f103 0910 add.w r9, r3, #16 - 12190: 6a23 ldr r3, [r4, #32] - 12192: 0798 lsls r0, r3, #30 - 12194: bf4c ite mi - 12196: f640 40cc movwmi r0, #3276 ; 0xccc - 1219a: f640 0088 movwpl r0, #2184 ; 0x888 - 1219e: 47c0 blx r8 - 121a0: f242 1129 movw r1, #8489 ; 0x2129 - 121a4: 4602 mov r2, r0 - 121a6: 4648 mov r0, r9 - 121a8: 47b0 blx r6 - lv_style_set_border_color(&styles->btn, LV_STATE_DEFAULT, COLOR_BTN_BORDER); - 121aa: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar) - 121ac: 89a2 ldrh r2, [r4, #12] - 121ae: 2139 movs r1, #57 ; 0x39 - 121b0: 3010 adds r0, #16 - 121b2: 47b0 blx r6 - lv_style_set_border_color(&styles->btn, LV_STATE_PRESSED, COLOR_BTN_BORDER_PR); - 121b4: 6820 ldr r0, [r4, #0] - 121b6: 89a2 ldrh r2, [r4, #12] - 121b8: f241 0139 movw r1, #4153 ; 0x1039 - 121bc: 3010 adds r0, #16 - 121be: 47b0 blx r6 - lv_style_set_border_color(&styles->btn, LV_STATE_DISABLED, COLOR_BTN_BORDER_INA); - 121c0: 6823 ldr r3, [r4, #0] - 121c2: f103 0910 add.w r9, r3, #16 - 121c6: 6a23 ldr r3, [r4, #32] - 121c8: 0799 lsls r1, r3, #30 - 121ca: f140 82a0 bpl.w 1270e - 121ce: f640 0088 movw r0, #2184 ; 0x888 - 121d2: 47c0 blx r8 - 121d4: 4602 mov r2, r0 - 121d6: f242 0139 movw r1, #8249 ; 0x2039 - 121da: 4648 mov r0, r9 - 121dc: 47b0 blx r6 - lv_style_set_border_width(&styles->btn, LV_STATE_DEFAULT, BORDER_WIDTH); - 121de: 6823 ldr r3, [r4, #0] - 121e0: f8df 8270 ldr.w r8, [pc, #624] ; 12454 - 121e4: 2000 movs r0, #0 - 121e6: f103 0910 add.w r9, r3, #16 - 121ea: 47c0 blx r8 - 121ec: 2877 cmp r0, #119 ; 0x77 - 121ee: f340 8291 ble.w 12714 - 121f2: 2000 movs r0, #0 - 121f4: 47c0 blx r8 - 121f6: 2350 movs r3, #80 ; 0x50 - 121f8: f100 0228 add.w r2, r0, #40 ; 0x28 - 121fc: fb92 f2f3 sdiv r2, r2, r3 - 12200: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar) - 12202: 4648 mov r0, r9 - 12204: 2130 movs r1, #48 ; 0x30 - 12206: f8df 9250 ldr.w r9, [pc, #592] ; 12458 - 1220a: 47c8 blx r9 - lv_style_set_border_opa(&styles->btn, LV_STATE_CHECKED, LV_OPA_TRANSP); - 1220c: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_OPA, border_opa, lv_opa_t, _opa, scalar) - 1220e: 4b8e ldr r3, [pc, #568] ; (12448 ) - 12210: 2200 movs r2, #0 - 12212: 3010 adds r0, #16 - 12214: f44f 719e mov.w r1, #316 ; 0x13c - 12218: 4798 blx r3 - lv_style_set_text_color(&styles->btn, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x31404f) : lv_color_hex(0xffffff)); - 1221a: 6823 ldr r3, [r4, #0] - 1221c: f103 0a10 add.w sl, r3, #16 - 12220: 6a23 ldr r3, [r4, #32] - 12222: 079a lsls r2, r3, #30 - 12224: bf4c ite mi - 12226: 4889 ldrmi r0, [pc, #548] ; (1244c ) - 12228: f06f 407f mvnpl.w r0, #4278190080 ; 0xff000000 - 1222c: 47a8 blx r5 -_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar) - 1222e: f248 0189 movw r1, #32905 ; 0x8089 - 12232: 4602 mov r2, r0 - 12234: 4650 mov r0, sl - 12236: 47b0 blx r6 - lv_style_set_text_color(&styles->btn, LV_STATE_PRESSED, IS_LIGHT ? lv_color_hex(0x31404f) : lv_color_hex(0xffffff)); - 12238: 6823 ldr r3, [r4, #0] - 1223a: f103 0a10 add.w sl, r3, #16 - 1223e: 6a23 ldr r3, [r4, #32] - 12240: 079b lsls r3, r3, #30 - 12242: bf4c ite mi - 12244: 4881 ldrmi r0, [pc, #516] ; (1244c ) - 12246: f06f 407f mvnpl.w r0, #4278190080 ; 0xff000000 - 1224a: 47a8 blx r5 - 1224c: f249 0189 movw r1, #37001 ; 0x9089 - 12250: 4602 mov r2, r0 - 12252: 4650 mov r0, sl - 12254: 47b0 blx r6 - lv_style_set_text_color(&styles->btn, LV_STATE_CHECKED, lv_color_hex(0xffffff)); - 12256: 6820 ldr r0, [r4, #0] - 12258: f100 0a10 add.w sl, r0, #16 - 1225c: f06f 407f mvn.w r0, #4278190080 ; 0xff000000 - 12260: 47a8 blx r5 - 12262: f248 1189 movw r1, #33161 ; 0x8189 - 12266: 4602 mov r2, r0 - 12268: 4650 mov r0, sl - 1226a: 47b0 blx r6 - lv_style_set_text_color(&styles->btn, LV_STATE_CHECKED | LV_STATE_PRESSED, lv_color_hex(0xffffff)); - 1226c: 6820 ldr r0, [r4, #0] - 1226e: f100 0a10 add.w sl, r0, #16 - 12272: f06f 407f mvn.w r0, #4278190080 ; 0xff000000 - 12276: 47a8 blx r5 - 12278: f249 1189 movw r1, #37257 ; 0x9189 - 1227c: 4602 mov r2, r0 - 1227e: 4650 mov r0, sl - 12280: 47b0 blx r6 - lv_style_set_text_color(&styles->btn, LV_STATE_DISABLED, IS_LIGHT ? lv_color_hex(0x888888) : lv_color_hex(0x888888)); - 12282: 6820 ldr r0, [r4, #0] - 12284: f100 0a10 add.w sl, r0, #16 - 12288: 4871 ldr r0, [pc, #452] ; (12450 ) - 1228a: 47a8 blx r5 - 1228c: f24a 0189 movw r1, #41097 ; 0xa089 - 12290: 4602 mov r2, r0 - 12292: 4650 mov r0, sl - 12294: 47b0 blx r6 - lv_style_set_image_recolor(&styles->btn, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x31404f) : lv_color_hex(0xffffff)); - 12296: 6823 ldr r3, [r4, #0] - 12298: f103 0a10 add.w sl, r3, #16 - 1229c: 6a23 ldr r3, [r4, #32] - 1229e: 0798 lsls r0, r3, #30 - 122a0: bf4c ite mi - 122a2: 486a ldrmi r0, [pc, #424] ; (1244c ) - 122a4: f06f 407f mvnpl.w r0, #4278190080 ; 0xff000000 - 122a8: 47a8 blx r5 -_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_RECOLOR, image_recolor, lv_color_t, _color, nonscalar) - 122aa: f248 01a9 movw r1, #32937 ; 0x80a9 - 122ae: 4602 mov r2, r0 - 122b0: 4650 mov r0, sl - 122b2: 47b0 blx r6 - lv_style_set_image_recolor(&styles->btn, LV_STATE_PRESSED, IS_LIGHT ? lv_color_hex(0x31404f) : lv_color_hex(0xffffff)); - 122b4: 6823 ldr r3, [r4, #0] - 122b6: f103 0a10 add.w sl, r3, #16 - 122ba: 6a23 ldr r3, [r4, #32] - 122bc: 0799 lsls r1, r3, #30 - 122be: bf4c ite mi - 122c0: 4862 ldrmi r0, [pc, #392] ; (1244c ) - 122c2: f06f 407f mvnpl.w r0, #4278190080 ; 0xff000000 - 122c6: 47a8 blx r5 - 122c8: f249 01a9 movw r1, #37033 ; 0x90a9 - 122cc: 4602 mov r2, r0 - 122ce: 4650 mov r0, sl - 122d0: 47b0 blx r6 - lv_style_set_image_recolor(&styles->btn, LV_STATE_PRESSED, lv_color_hex(0xffffff)); - 122d2: 6820 ldr r0, [r4, #0] - 122d4: f100 0a10 add.w sl, r0, #16 - 122d8: f06f 407f mvn.w r0, #4278190080 ; 0xff000000 - 122dc: 47a8 blx r5 - 122de: f249 01a9 movw r1, #37033 ; 0x90a9 - 122e2: 4602 mov r2, r0 - 122e4: 4650 mov r0, sl - 122e6: 47b0 blx r6 - lv_style_set_image_recolor(&styles->btn, LV_STATE_CHECKED | LV_STATE_PRESSED, lv_color_hex(0xffffff)); - 122e8: 6820 ldr r0, [r4, #0] - 122ea: f100 0a10 add.w sl, r0, #16 - 122ee: f06f 407f mvn.w r0, #4278190080 ; 0xff000000 - 122f2: 47a8 blx r5 - 122f4: f249 11a9 movw r1, #37289 ; 0x91a9 - 122f8: 4602 mov r2, r0 - 122fa: 4650 mov r0, sl - 122fc: 47b0 blx r6 - lv_style_set_image_recolor(&styles->btn, LV_STATE_DISABLED, IS_LIGHT ? lv_color_hex(0x888888) : lv_color_hex(0x888888)); - 122fe: 6820 ldr r0, [r4, #0] - 12300: f100 0a10 add.w sl, r0, #16 - 12304: 4852 ldr r0, [pc, #328] ; (12450 ) - 12306: 47a8 blx r5 - 12308: f24a 01a9 movw r1, #41129 ; 0xa0a9 - 1230c: 4602 mov r2, r0 - 1230e: 4650 mov r0, sl - 12310: 47b0 blx r6 - lv_style_set_value_color(&styles->btn, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x31404f) : lv_color_hex(0xffffff)); - 12312: 6823 ldr r3, [r4, #0] - 12314: f103 0a10 add.w sl, r3, #16 - 12318: 6a23 ldr r3, [r4, #32] - 1231a: 079a lsls r2, r3, #30 - 1231c: bf4c ite mi - 1231e: 484b ldrmi r0, [pc, #300] ; (1244c ) - 12320: f06f 407f mvnpl.w r0, #4278190080 ; 0xff000000 - 12324: 47a8 blx r5 -_LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_COLOR, value_color, lv_color_t, _color, nonscalar) - 12326: 2179 movs r1, #121 ; 0x79 - 12328: 4602 mov r2, r0 - 1232a: 4650 mov r0, sl - 1232c: 47b0 blx r6 - lv_style_set_value_color(&styles->btn, LV_STATE_PRESSED, IS_LIGHT ? lv_color_hex(0x31404f) : lv_color_hex(0xffffff)); - 1232e: 6823 ldr r3, [r4, #0] - 12330: f103 0a10 add.w sl, r3, #16 - 12334: 6a23 ldr r3, [r4, #32] - 12336: 079b lsls r3, r3, #30 - 12338: bf4c ite mi - 1233a: 4844 ldrmi r0, [pc, #272] ; (1244c ) - 1233c: f06f 407f mvnpl.w r0, #4278190080 ; 0xff000000 - 12340: 47a8 blx r5 - 12342: f241 0179 movw r1, #4217 ; 0x1079 - 12346: 4602 mov r2, r0 - 12348: 4650 mov r0, sl - 1234a: 47b0 blx r6 - lv_style_set_value_color(&styles->btn, LV_STATE_CHECKED, lv_color_hex(0xffffff)); - 1234c: 6820 ldr r0, [r4, #0] - 1234e: f100 0a10 add.w sl, r0, #16 - 12352: f06f 407f mvn.w r0, #4278190080 ; 0xff000000 - 12356: 47a8 blx r5 - 12358: f240 1179 movw r1, #377 ; 0x179 - 1235c: 4602 mov r2, r0 - 1235e: 4650 mov r0, sl - 12360: 47b0 blx r6 - lv_style_set_value_color(&styles->btn, LV_STATE_CHECKED | LV_STATE_PRESSED, lv_color_hex(0xffffff)); - 12362: 6820 ldr r0, [r4, #0] - 12364: f100 0a10 add.w sl, r0, #16 - 12368: f06f 407f mvn.w r0, #4278190080 ; 0xff000000 - 1236c: 47a8 blx r5 - 1236e: f241 1179 movw r1, #4473 ; 0x1179 - 12372: 4602 mov r2, r0 - 12374: 4650 mov r0, sl - 12376: 47b0 blx r6 - lv_style_set_value_color(&styles->btn, LV_STATE_DISABLED, IS_LIGHT ? lv_color_hex(0x888888) : lv_color_hex(0x888888)); - 12378: 6820 ldr r0, [r4, #0] - 1237a: f100 0a10 add.w sl, r0, #16 - 1237e: 4834 ldr r0, [pc, #208] ; (12450 ) - 12380: 47a8 blx r5 - 12382: f242 0179 movw r1, #8313 ; 0x2079 - 12386: 4602 mov r2, r0 - 12388: 4650 mov r0, sl - 1238a: 47b0 blx r6 - lv_style_set_pad_left(&styles->btn, LV_STATE_DEFAULT, LV_DPX(40)); - 1238c: 2000 movs r0, #0 - 1238e: 6825 ldr r5, [r4, #0] - 12390: 47c0 blx r8 - 12392: eb00 0080 add.w r0, r0, r0, lsl #2 - 12396: 00c0 lsls r0, r0, #3 - 12398: 28ef cmp r0, #239 ; 0xef - 1239a: f105 0510 add.w r5, r5, #16 - 1239e: f340 81bb ble.w 12718 - 123a2: 2000 movs r0, #0 - 123a4: 47c0 blx r8 - 123a6: 2328 movs r3, #40 ; 0x28 - 123a8: 2250 movs r2, #80 ; 0x50 - 123aa: fb00 2203 mla r2, r0, r3, r2 - 123ae: 23a0 movs r3, #160 ; 0xa0 - 123b0: fb92 f2f3 sdiv r2, r2, r3 - 123b4: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar) - 123b6: 4628 mov r0, r5 - 123b8: 2112 movs r1, #18 - 123ba: 47c8 blx r9 - lv_style_set_pad_right(&styles->btn, LV_STATE_DEFAULT, LV_DPX(40)); - 123bc: 2000 movs r0, #0 - 123be: 6825 ldr r5, [r4, #0] - 123c0: 47c0 blx r8 - 123c2: eb00 0080 add.w r0, r0, r0, lsl #2 - 123c6: 00c0 lsls r0, r0, #3 - 123c8: 28ef cmp r0, #239 ; 0xef - 123ca: f105 0510 add.w r5, r5, #16 - 123ce: f340 81a5 ble.w 1271c - 123d2: 2000 movs r0, #0 - 123d4: 47c0 blx r8 - 123d6: 2328 movs r3, #40 ; 0x28 - 123d8: 2250 movs r2, #80 ; 0x50 - 123da: fb00 2203 mla r2, r0, r3, r2 - 123de: 23a0 movs r3, #160 ; 0xa0 - 123e0: fb92 f2f3 sdiv r2, r2, r3 - 123e4: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar) - 123e6: 4628 mov r0, r5 - 123e8: 2113 movs r1, #19 - 123ea: 47c8 blx r9 - lv_style_set_pad_top(&styles->btn, LV_STATE_DEFAULT, LV_DPX(15)); - 123ec: 2000 movs r0, #0 - 123ee: 6825 ldr r5, [r4, #0] - 123f0: 47c0 blx r8 - 123f2: ebc0 1000 rsb r0, r0, r0, lsl #4 - 123f6: 28ef cmp r0, #239 ; 0xef - 123f8: f105 0510 add.w r5, r5, #16 - 123fc: f340 8190 ble.w 12720 - 12400: 2000 movs r0, #0 - 12402: 47c0 blx r8 - 12404: 230f movs r3, #15 - 12406: 2250 movs r2, #80 ; 0x50 - 12408: fb00 2203 mla r2, r0, r3, r2 - 1240c: 23a0 movs r3, #160 ; 0xa0 - 1240e: fb92 f2f3 sdiv r2, r2, r3 - 12412: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar) - 12414: 4628 mov r0, r5 - 12416: 2110 movs r1, #16 - 12418: 47c8 blx r9 - lv_style_set_pad_bottom(&styles->btn, LV_STATE_DEFAULT, LV_DPX(15)); - 1241a: 2000 movs r0, #0 - 1241c: 6825 ldr r5, [r4, #0] - 1241e: 47c0 blx r8 - 12420: ebc0 1000 rsb r0, r0, r0, lsl #4 - 12424: 28ef cmp r0, #239 ; 0xef - 12426: f105 0510 add.w r5, r5, #16 - 1242a: f340 817b ble.w 12724 - 1242e: 2000 movs r0, #0 - 12430: 47c0 blx r8 - 12432: 230f movs r3, #15 - 12434: 2250 movs r2, #80 ; 0x50 - 12436: fb00 2203 mla r2, r0, r3, r2 - 1243a: 23a0 movs r3, #160 ; 0xa0 - 1243c: fb92 f2f3 sdiv r2, r2, r3 - 12440: b212 sxth r2, r2 - 12442: e00b b.n 1245c - 12444: 00586273 .word 0x00586273 - 12448: 00005c9d .word 0x00005c9d - 1244c: 0031404f .word 0x0031404f - 12450: 00888888 .word 0x00888888 - 12454: 0000dbd5 .word 0x0000dbd5 - 12458: 00005afd .word 0x00005afd -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar) - 1245c: 4628 mov r0, r5 - 1245e: 2111 movs r1, #17 - 12460: 47c8 blx r9 - lv_style_set_pad_inner(&styles->btn, LV_STATE_DEFAULT, LV_DPX(20)); - 12462: 2000 movs r0, #0 - 12464: 6825 ldr r5, [r4, #0] - 12466: 47c0 blx r8 - 12468: eb00 0080 add.w r0, r0, r0, lsl #2 - 1246c: 0080 lsls r0, r0, #2 - 1246e: 28ef cmp r0, #239 ; 0xef - 12470: f105 0510 add.w r5, r5, #16 - 12474: f340 8158 ble.w 12728 - 12478: 2000 movs r0, #0 - 1247a: 47c0 blx r8 - 1247c: 2314 movs r3, #20 - 1247e: 2250 movs r2, #80 ; 0x50 - 12480: fb00 2203 mla r2, r0, r3, r2 - 12484: 23a0 movs r3, #160 ; 0xa0 - 12486: fb92 f2f3 sdiv r2, r2, r3 - 1248a: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar) - 1248c: 4628 mov r0, r5 - 1248e: 2114 movs r1, #20 - 12490: 47b8 blx r7 - lv_style_set_outline_width(&styles->btn, LV_STATE_DEFAULT, 3); - 12492: 6820 ldr r0, [r4, #0] - style_init_reset(&styles->pad_inner); - 12494: 4dbb ldr r5, [pc, #748] ; (12784 ) -_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_WIDTH, outline_width, lv_style_int_t, _int, scalar) - 12496: 2203 movs r2, #3 - 12498: 2140 movs r1, #64 ; 0x40 - 1249a: 3010 adds r0, #16 - 1249c: 47b8 blx r7 - lv_style_set_outline_opa(&styles->btn, LV_STATE_DEFAULT, LV_OPA_0); - 1249e: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_OPA, outline_opa, lv_opa_t, _opa, scalar) - 124a0: 9b01 ldr r3, [sp, #4] - 124a2: 2200 movs r2, #0 - 124a4: 214c movs r1, #76 ; 0x4c - 124a6: 3010 adds r0, #16 - 124a8: 4798 blx r3 - lv_style_set_outline_opa(&styles->btn, LV_STATE_FOCUSED, LV_OPA_50); - 124aa: 6820 ldr r0, [r4, #0] - 124ac: 9b01 ldr r3, [sp, #4] - 124ae: 227f movs r2, #127 ; 0x7f - 124b0: f44f 7113 mov.w r1, #588 ; 0x24c - 124b4: 3010 adds r0, #16 - 124b6: 4798 blx r3 - lv_style_set_outline_color(&styles->btn, LV_STATE_DEFAULT, theme.color_primary); - 124b8: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_COLOR, outline_color, lv_color_t, _color, nonscalar) - 124ba: 89a2 ldrh r2, [r4, #12] - 124bc: 2149 movs r1, #73 ; 0x49 - 124be: 3010 adds r0, #16 - 124c0: 47b0 blx r6 - lv_style_set_outline_color(&styles->btn, LV_STATE_EDITED, theme.color_secondary); - 124c2: 6820 ldr r0, [r4, #0] - 124c4: 89e2 ldrh r2, [r4, #14] - 124c6: f240 4149 movw r1, #1097 ; 0x449 - 124ca: 3010 adds r0, #16 - 124cc: 47b0 blx r6 - lv_style_set_transition_time(&styles->btn, LV_STATE_DEFAULT, TRANSITION_TIME); - 124ce: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_TIME, transition_time, lv_style_int_t, _int, scalar) - 124d0: 2296 movs r2, #150 ; 0x96 - 124d2: 21b0 movs r1, #176 ; 0xb0 - 124d4: 3010 adds r0, #16 - 124d6: 47b8 blx r7 - lv_style_set_transition_prop_4(&styles->btn, LV_STATE_DEFAULT, LV_STYLE_BORDER_OPA); - 124d8: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_4, transition_prop_4, lv_style_int_t, _int, scalar) - 124da: 223c movs r2, #60 ; 0x3c - 124dc: 21b5 movs r1, #181 ; 0xb5 - 124de: 3010 adds r0, #16 - 124e0: 47b8 blx r7 - lv_style_set_transition_prop_5(&styles->btn, LV_STATE_DEFAULT, LV_STYLE_BG_COLOR); - 124e2: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_5, transition_prop_5, lv_style_int_t, _int, scalar) - 124e4: 2229 movs r2, #41 ; 0x29 - 124e6: 21b6 movs r1, #182 ; 0xb6 - 124e8: 3010 adds r0, #16 - 124ea: 47b8 blx r7 - lv_style_set_transition_prop_6(&styles->btn, LV_STATE_DEFAULT, LV_STYLE_OUTLINE_OPA); - 124ec: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_6, transition_prop_6, lv_style_int_t, _int, scalar) - 124ee: 224c movs r2, #76 ; 0x4c - 124f0: 21b7 movs r1, #183 ; 0xb7 - 124f2: 3010 adds r0, #16 - 124f4: 47b8 blx r7 - lv_style_set_transition_delay(&styles->btn, LV_STATE_DEFAULT, TRANSITION_TIME); - 124f6: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_DELAY, transition_delay, lv_style_int_t, _int, scalar) - 124f8: 2296 movs r2, #150 ; 0x96 - 124fa: 21b1 movs r1, #177 ; 0xb1 - 124fc: 3010 adds r0, #16 - 124fe: 47b8 blx r7 - lv_style_set_transition_delay(&styles->btn, LV_STATE_PRESSED, 0); - 12500: 6820 ldr r0, [r4, #0] - 12502: 2200 movs r2, #0 - 12504: f241 01b1 movw r1, #4273 ; 0x10b1 - 12508: 3010 adds r0, #16 - 1250a: 47b8 blx r7 - style_init_reset(&styles->pad_inner); - 1250c: 6820 ldr r0, [r4, #0] - lv_disp_get_size_category(NULL) <= LV_DISP_MEDIUM_LIMIT ? LV_DPX(20) : LV_DPX(40)); - 1250e: 4f9e ldr r7, [pc, #632] ; (12788 ) - style_init_reset(&styles->pad_inner); - 12510: 3014 adds r0, #20 - 12512: 47a8 blx r5 - lv_disp_get_size_category(NULL) <= LV_DISP_MEDIUM_LIMIT ? LV_DPX(20) : LV_DPX(40)); - 12514: 2000 movs r0, #0 - lv_style_set_pad_inner(&styles->pad_inner, LV_STATE_DEFAULT, - 12516: 6826 ldr r6, [r4, #0] - lv_disp_get_size_category(NULL) <= LV_DISP_MEDIUM_LIMIT ? LV_DPX(20) : LV_DPX(40)); - 12518: 47b8 blx r7 - lv_style_set_pad_inner(&styles->pad_inner, LV_STATE_DEFAULT, - 1251a: 2832 cmp r0, #50 ; 0x32 - 1251c: f106 0614 add.w r6, r6, #20 - lv_disp_get_size_category(NULL) <= LV_DISP_MEDIUM_LIMIT ? LV_DPX(20) : LV_DPX(40)); - 12520: f04f 0000 mov.w r0, #0 - lv_style_set_pad_inner(&styles->pad_inner, LV_STATE_DEFAULT, - 12524: f200 810d bhi.w 12742 - lv_disp_get_size_category(NULL) <= LV_DISP_MEDIUM_LIMIT ? LV_DPX(20) : LV_DPX(40)); - 12528: 47c0 blx r8 - 1252a: eb00 0080 add.w r0, r0, r0, lsl #2 - 1252e: 0080 lsls r0, r0, #2 - lv_style_set_pad_inner(&styles->pad_inner, LV_STATE_DEFAULT, - 12530: 28ef cmp r0, #239 ; 0xef - 12532: f300 80fb bgt.w 1272c - 12536: 2201 movs r2, #1 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar) - 12538: 2114 movs r1, #20 - 1253a: 4630 mov r0, r6 - 1253c: 47c8 blx r9 - style_init_reset(&styles->pad_small); - 1253e: 6820 ldr r0, [r4, #0] - 12540: 3018 adds r0, #24 - 12542: 47a8 blx r5 - lv_style_int_t pad_small_value = lv_disp_get_size_category(NULL) <= LV_DISP_MEDIUM_LIMIT ? LV_DPX(10) : LV_DPX(20); - 12544: 2000 movs r0, #0 - 12546: 47b8 blx r7 - 12548: 2832 cmp r0, #50 ; 0x32 - 1254a: f04f 0000 mov.w r0, #0 - 1254e: f200 810e bhi.w 1276e - 12552: 47c0 blx r8 - 12554: eb00 0080 add.w r0, r0, r0, lsl #2 - 12558: 0040 lsls r0, r0, #1 - 1255a: 28ef cmp r0, #239 ; 0xef - 1255c: f300 80fc bgt.w 12758 - 12560: 2201 movs r2, #1 - lv_style_set_pad_left(&styles->pad_small, LV_STATE_DEFAULT, pad_small_value); - 12562: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar) - 12564: 9201 str r2, [sp, #4] - 12566: 2112 movs r1, #18 - 12568: 3018 adds r0, #24 - 1256a: 47c8 blx r9 - lv_style_set_pad_right(&styles->pad_small, LV_STATE_DEFAULT, pad_small_value); - 1256c: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar) - 1256e: 9a01 ldr r2, [sp, #4] - 12570: 2113 movs r1, #19 - 12572: 3018 adds r0, #24 - 12574: 47c8 blx r9 - lv_style_set_pad_top(&styles->pad_small, LV_STATE_DEFAULT, pad_small_value); - 12576: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar) - 12578: 9a01 ldr r2, [sp, #4] - 1257a: 2110 movs r1, #16 - 1257c: 3018 adds r0, #24 - 1257e: 47c8 blx r9 - lv_style_set_pad_bottom(&styles->pad_small, LV_STATE_DEFAULT, pad_small_value); - 12580: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar) - 12582: 9a01 ldr r2, [sp, #4] - 12584: 2111 movs r1, #17 - 12586: 3018 adds r0, #24 - 12588: 47c8 blx r9 - lv_style_set_pad_inner(&styles->pad_small, LV_STATE_DEFAULT, pad_small_value); - 1258a: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar) - 1258c: 9a01 ldr r2, [sp, #4] - 1258e: 2114 movs r1, #20 - 12590: 3018 adds r0, #24 - 12592: 464b mov r3, r9 -} - 12594: b003 add sp, #12 - 12596: ecbd 8b02 vpop {d8} - 1259a: e8bd 4ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - 1259e: 4718 bx r3 - lv_style_set_radius(&styles->bg, LV_STATE_DEFAULT, LV_DPX(8)); - 125a0: 2201 movs r2, #1 - 125a2: f7ff ba9d b.w 11ae0 - lv_style_set_border_width(&styles->bg, LV_STATE_DEFAULT, BORDER_WIDTH); - 125a6: 2201 movs r2, #1 - 125a8: f7ff badb b.w 11b62 - lv_style_set_pad_left(&styles->bg, LV_STATE_DEFAULT, PAD_DEF + BORDER_WIDTH); - 125ac: 2000 movs r0, #0 - 125ae: 47b0 blx r6 - 125b0: 230f movs r3, #15 - 125b2: 2250 movs r2, #80 ; 0x50 - 125b4: fb00 2203 mla r2, r0, r3, r2 - 125b8: 23a0 movs r3, #160 ; 0xa0 - 125ba: fb92 f2f3 sdiv r2, r2, r3 - 125be: fa1f fb82 uxth.w fp, r2 - 125c2: f7ff bb35 b.w 11c30 - 125c6: 47b0 blx r6 - 125c8: ebc0 1000 rsb r0, r0, r0, lsl #4 - 125cc: 0040 lsls r0, r0, #1 - 125ce: 28ef cmp r0, #239 ; 0xef - 125d0: f77f ab2c ble.w 11c2c - 125d4: 2000 movs r0, #0 - 125d6: 47b0 blx r6 - 125d8: 231e movs r3, #30 - 125da: e7ea b.n 125b2 - 125dc: 2001 movs r0, #1 - 125de: f7ff bb33 b.w 11c48 - lv_style_set_pad_right(&styles->bg, LV_STATE_DEFAULT, PAD_DEF + BORDER_WIDTH); - 125e2: 2000 movs r0, #0 - 125e4: 47b0 blx r6 - 125e6: 230f movs r3, #15 - 125e8: 2250 movs r2, #80 ; 0x50 - 125ea: fb00 2203 mla r2, r0, r3, r2 - 125ee: 23a0 movs r3, #160 ; 0xa0 - 125f0: fb92 f2f3 sdiv r2, r2, r3 - 125f4: fa1f fb82 uxth.w fp, r2 - 125f8: f7ff bb40 b.w 11c7c - 125fc: 47b0 blx r6 - 125fe: ebc0 1000 rsb r0, r0, r0, lsl #4 - 12602: 0040 lsls r0, r0, #1 - 12604: 28ef cmp r0, #239 ; 0xef - 12606: f77f ab37 ble.w 11c78 - 1260a: 2000 movs r0, #0 - 1260c: 47b0 blx r6 - 1260e: 231e movs r3, #30 - 12610: e7ea b.n 125e8 - 12612: 2001 movs r0, #1 - 12614: f7ff bb3e b.w 11c94 - lv_style_set_pad_top(&styles->bg, LV_STATE_DEFAULT, PAD_DEF + BORDER_WIDTH); - 12618: 2000 movs r0, #0 - 1261a: 47b0 blx r6 - 1261c: 230f movs r3, #15 - 1261e: 2250 movs r2, #80 ; 0x50 - 12620: fb00 2203 mla r2, r0, r3, r2 - 12624: 23a0 movs r3, #160 ; 0xa0 - 12626: fb92 f2f3 sdiv r2, r2, r3 - 1262a: fa1f fb82 uxth.w fp, r2 - 1262e: f7ff bb6d b.w 11d0c - 12632: 47b0 blx r6 - 12634: ebc0 1000 rsb r0, r0, r0, lsl #4 - 12638: 0040 lsls r0, r0, #1 - 1263a: 28ef cmp r0, #239 ; 0xef - 1263c: f77f ab64 ble.w 11d08 - 12640: 2000 movs r0, #0 - 12642: 47b0 blx r6 - 12644: 231e movs r3, #30 - 12646: e7ea b.n 1261e - 12648: 2001 movs r0, #1 - 1264a: f7ff bb6b b.w 11d24 - lv_style_set_pad_bottom(&styles->bg, LV_STATE_DEFAULT, PAD_DEF + BORDER_WIDTH); - 1264e: 2000 movs r0, #0 - 12650: 47b0 blx r6 - 12652: 230f movs r3, #15 - 12654: 2250 movs r2, #80 ; 0x50 - 12656: fb00 2203 mla r2, r0, r3, r2 - 1265a: 23a0 movs r3, #160 ; 0xa0 - 1265c: fb92 f2f3 sdiv r2, r2, r3 - 12660: fa1f fb82 uxth.w fp, r2 - 12664: f7ff bb78 b.w 11d58 - 12668: 47b0 blx r6 - 1266a: ebc0 1000 rsb r0, r0, r0, lsl #4 - 1266e: 0040 lsls r0, r0, #1 - 12670: 28ef cmp r0, #239 ; 0xef - 12672: f77f ab6f ble.w 11d54 - 12676: 2000 movs r0, #0 - 12678: 47b0 blx r6 - 1267a: 231e movs r3, #30 - 1267c: e7ea b.n 12654 - 1267e: 2001 movs r0, #1 - 12680: f7ff bb76 b.w 11d70 - lv_style_set_pad_inner(&styles->bg, LV_STATE_DEFAULT, PAD_DEF); - 12684: 2000 movs r0, #0 - 12686: 47b0 blx r6 - 12688: 230f movs r3, #15 - 1268a: 2250 movs r2, #80 ; 0x50 - 1268c: fb00 2203 mla r2, r0, r3, r2 - 12690: 23a0 movs r3, #160 ; 0xa0 - 12692: fb92 f2f3 sdiv r2, r2, r3 - 12696: b212 sxth r2, r2 - 12698: f7ff bb82 b.w 11da0 - 1269c: 47b0 blx r6 - 1269e: ebc0 1000 rsb r0, r0, r0, lsl #4 - 126a2: 0040 lsls r0, r0, #1 - 126a4: 28ef cmp r0, #239 ; 0xef - 126a6: f77f ab7a ble.w 11d9e - 126aa: 2000 movs r0, #0 - 126ac: 47b0 blx r6 - 126ae: 231e movs r3, #30 - 126b0: e7eb b.n 1268a - lv_style_set_border_color(&styles->bg_click, LV_STATE_PRESSED, COLOR_BG_BORDER_PR); - 126b2: 4836 ldr r0, [pc, #216] ; (1278c ) - 126b4: 47a8 blx r5 - 126b6: e421 b.n 11efc - lv_style_set_bg_color(&styles->btn, LV_STATE_PRESSED, COLOR_BTN_PR); - 126b8: 4835 ldr r0, [pc, #212] ; (12790 ) - 126ba: 47a8 blx r5 - LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix))); - 126bc: 89a2 ldrh r2, [r4, #12] - LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix))); - 126be: 7b63 ldrb r3, [r4, #13] - 126c0: f04f 0bb3 mov.w fp, #179 ; 0xb3 - LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix))); - 126c4: f3c0 1c45 ubfx ip, r0, #5, #6 - LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix))); - 126c8: f04f 0e4c mov.w lr, #76 ; 0x4c - LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix))); - 126cc: f3c2 1245 ubfx r2, r2, #5, #6 - 126d0: fb0b fc0c mul.w ip, fp, ip - LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix))); - 126d4: f3c0 21c4 ubfx r1, r0, #11, #5 - LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix))); - 126d8: fb0e cc02 mla ip, lr, r2, ip - LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix))); - 126dc: 7b22 ldrb r2, [r4, #12] - LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix))); - 126de: 08db lsrs r3, r3, #3 - 126e0: fb0b f101 mul.w r1, fp, r1 - LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix))); - 126e4: f000 001f and.w r0, r0, #31 - LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix))); - 126e8: fb0e 1103 mla r1, lr, r3, r1 - LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix))); - 126ec: f002 021f and.w r2, r2, #31 - LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix))); - 126f0: f248 0381 movw r3, #32897 ; 0x8081 - LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix))); - 126f4: fb0b f000 mul.w r0, fp, r0 - LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix))); - 126f8: 4359 muls r1, r3 - LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix))); - 126fa: fb03 fc0c mul.w ip, r3, ip - LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix))); - 126fe: fb0e 0202 mla r2, lr, r2, r0 - LV_COLOR_SET_R(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_R(c1) * mix + LV_COLOR_GET_R(c2) * (255 - mix))); - 12702: f3c1 51c4 ubfx r1, r1, #23, #5 - LV_COLOR_SET_G(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_G(c1) * mix + LV_COLOR_GET_G(c2) * (255 - mix))); - 12706: f3cc 5cc5 ubfx ip, ip, #23, #6 - LV_COLOR_SET_B(ret, LV_MATH_UDIV255((uint16_t) LV_COLOR_GET_B(c1) * mix + LV_COLOR_GET_B(c2) * (255 - mix))); - 1270a: 435a muls r2, r3 - 1270c: e513 b.n 12136 - lv_style_set_border_color(&styles->btn, LV_STATE_DISABLED, COLOR_BTN_BORDER_INA); - 1270e: 4821 ldr r0, [pc, #132] ; (12794 ) - 12710: 47a8 blx r5 - 12712: e55f b.n 121d4 - lv_style_set_border_width(&styles->btn, LV_STATE_DEFAULT, BORDER_WIDTH); - 12714: 2201 movs r2, #1 - 12716: e574 b.n 12202 - lv_style_set_pad_left(&styles->btn, LV_STATE_DEFAULT, LV_DPX(40)); - 12718: 2201 movs r2, #1 - 1271a: e64c b.n 123b6 - lv_style_set_pad_right(&styles->btn, LV_STATE_DEFAULT, LV_DPX(40)); - 1271c: 2201 movs r2, #1 - 1271e: e662 b.n 123e6 - lv_style_set_pad_top(&styles->btn, LV_STATE_DEFAULT, LV_DPX(15)); - 12720: 2201 movs r2, #1 - 12722: e677 b.n 12414 - lv_style_set_pad_bottom(&styles->btn, LV_STATE_DEFAULT, LV_DPX(15)); - 12724: 2201 movs r2, #1 - 12726: e699 b.n 1245c - lv_style_set_pad_inner(&styles->btn, LV_STATE_DEFAULT, LV_DPX(20)); - 12728: 2201 movs r2, #1 - 1272a: e6af b.n 1248c - lv_disp_get_size_category(NULL) <= LV_DISP_MEDIUM_LIMIT ? LV_DPX(20) : LV_DPX(40)); - 1272c: 2000 movs r0, #0 - 1272e: 47c0 blx r8 - 12730: 2314 movs r3, #20 - 12732: 2250 movs r2, #80 ; 0x50 - 12734: fb00 2203 mla r2, r0, r3, r2 - 12738: 23a0 movs r3, #160 ; 0xa0 - 1273a: fb92 f2f3 sdiv r2, r2, r3 - lv_style_set_pad_inner(&styles->pad_inner, LV_STATE_DEFAULT, - 1273e: b212 sxth r2, r2 - 12740: e6fa b.n 12538 - lv_disp_get_size_category(NULL) <= LV_DISP_MEDIUM_LIMIT ? LV_DPX(20) : LV_DPX(40)); - 12742: 47c0 blx r8 - 12744: eb00 0080 add.w r0, r0, r0, lsl #2 - 12748: 00c0 lsls r0, r0, #3 - lv_style_set_pad_inner(&styles->pad_inner, LV_STATE_DEFAULT, - 1274a: 28ef cmp r0, #239 ; 0xef - 1274c: f77f aef3 ble.w 12536 - lv_disp_get_size_category(NULL) <= LV_DISP_MEDIUM_LIMIT ? LV_DPX(20) : LV_DPX(40)); - 12750: 2000 movs r0, #0 - 12752: 47c0 blx r8 - 12754: 2328 movs r3, #40 ; 0x28 - 12756: e7ec b.n 12732 - lv_style_int_t pad_small_value = lv_disp_get_size_category(NULL) <= LV_DISP_MEDIUM_LIMIT ? LV_DPX(10) : LV_DPX(20); - 12758: 2000 movs r0, #0 - 1275a: 47c0 blx r8 - 1275c: 230a movs r3, #10 - 1275e: 2250 movs r2, #80 ; 0x50 - 12760: fb00 2203 mla r2, r0, r3, r2 - 12764: 23a0 movs r3, #160 ; 0xa0 - 12766: fb92 f2f3 sdiv r2, r2, r3 - 1276a: b212 sxth r2, r2 - 1276c: e6f9 b.n 12562 - 1276e: 47c0 blx r8 - 12770: eb00 0080 add.w r0, r0, r0, lsl #2 - 12774: 0080 lsls r0, r0, #2 - 12776: 28ef cmp r0, #239 ; 0xef - 12778: f77f aef2 ble.w 12560 - 1277c: 2000 movs r0, #0 - 1277e: 47c0 blx r8 - 12780: 2314 movs r3, #20 - 12782: e7ec b.n 1275e - 12784: 00010d4d .word 0x00010d4d - 12788: 0000dbed .word 0x0000dbed - 1278c: 005f656e .word 0x005f656e - 12790: 00586273 .word 0x00586273 - 12794: 00404040 .word 0x00404040 - -00012798 : -{ - 12798: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - if(!inited) { - 1279c: 4cb4 ldr r4, [pc, #720] ; (12a70 ) -{ - 1279e: ed2d 8b02 vpush {d8} - 127a2: 461e mov r6, r3 - if(!inited) { - 127a4: 7923 ldrb r3, [r4, #4] -{ - 127a6: b083 sub sp, #12 - 127a8: 4680 mov r8, r0 - 127aa: 460f mov r7, r1 - 127ac: 4615 mov r5, r2 - if(!inited) { - 127ae: b92b cbnz r3, 127bc - LV_GC_ROOT(_lv_theme_material_styles) = lv_mem_alloc(sizeof(theme_styles_t)); - 127b0: 4bb0 ldr r3, [pc, #704] ; (12a74 ) - 127b2: 20bc movs r0, #188 ; 0xbc - 127b4: 4798 blx r3 - 127b6: 4bb0 ldr r3, [pc, #704] ; (12a78 ) - styles = (theme_styles_t *)LV_GC_ROOT(_lv_theme_material_styles); - 127b8: 6020 str r0, [r4, #0] - LV_GC_ROOT(_lv_theme_material_styles) = lv_mem_alloc(sizeof(theme_styles_t)); - 127ba: 6018 str r0, [r3, #0] - theme.font_normal = font_normal; - 127bc: 9b0e ldr r3, [sp, #56] ; 0x38 - 127be: 6163 str r3, [r4, #20] - theme.font_subtitle = font_subtitle; - 127c0: 9b0f ldr r3, [sp, #60] ; 0x3c - 127c2: 61a3 str r3, [r4, #24] - theme.font_title = font_title; - 127c4: 9b10 ldr r3, [sp, #64] ; 0x40 - theme.color_primary = color_primary; - 127c6: f8a4 800c strh.w r8, [r4, #12] - theme.flags = flags; - 127ca: e9c4 3507 strd r3, r5, [r4, #28] - basic_init(); - 127ce: 4bab ldr r3, [pc, #684] ; (12a7c ) - theme.color_secondary = color_secondary; - 127d0: 81e7 strh r7, [r4, #14] - theme.font_small = font_small; - 127d2: 6126 str r6, [r4, #16] - basic_init(); - 127d4: 4798 blx r3 - bar_init(); - 127d6: 4baa ldr r3, [pc, #680] ; (12a80 ) - style_init_reset(&styles->arc_indic); - 127d8: f8df 82dc ldr.w r8, [pc, #732] ; 12ab8 -_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_COLOR, line_color, lv_color_t, _color, nonscalar) - 127dc: 4fa9 ldr r7, [pc, #676] ; (12a84 ) - lv_style_set_line_width(&styles->arc_indic, LV_STATE_DEFAULT, LV_DPX(25)); - 127de: 4daa ldr r5, [pc, #680] ; (12a88 ) - bar_init(); - 127e0: 4798 blx r3 - led_init(); - 127e2: 4baa ldr r3, [pc, #680] ; (12a8c ) - 127e4: 4798 blx r3 - slider_init(); - 127e6: 4baa ldr r3, [pc, #680] ; (12a90 ) - 127e8: 4798 blx r3 - switch_init(); - 127ea: 4baa ldr r3, [pc, #680] ; (12a94 ) - 127ec: 4798 blx r3 - linemeter_init(); - 127ee: 4baa ldr r3, [pc, #680] ; (12a98 ) - 127f0: 4798 blx r3 - gauge_init(); - 127f2: 4baa ldr r3, [pc, #680] ; (12a9c ) - 127f4: 4798 blx r3 - style_init_reset(&styles->arc_indic); - 127f6: 6820 ldr r0, [r4, #0] - 127f8: 301c adds r0, #28 - 127fa: 47c0 blx r8 - lv_style_set_line_color(&styles->arc_indic, LV_STATE_DEFAULT, theme.color_primary); - 127fc: 6820 ldr r0, [r4, #0] - 127fe: 89a2 ldrh r2, [r4, #12] - 12800: 2199 movs r1, #153 ; 0x99 - 12802: 301c adds r0, #28 - 12804: 47b8 blx r7 - lv_style_set_line_width(&styles->arc_indic, LV_STATE_DEFAULT, LV_DPX(25)); - 12806: 2000 movs r0, #0 - 12808: 6826 ldr r6, [r4, #0] - 1280a: 47a8 blx r5 - 1280c: eb00 0080 add.w r0, r0, r0, lsl #2 - 12810: eb00 0080 add.w r0, r0, r0, lsl #2 - 12814: 28ef cmp r0, #239 ; 0xef - 12816: f106 061c add.w r6, r6, #28 - 1281a: f341 8256 ble.w 13cca - 1281e: 2000 movs r0, #0 - 12820: 47a8 blx r5 - 12822: 2319 movs r3, #25 - 12824: 2250 movs r2, #80 ; 0x50 - 12826: fb00 2203 mla r2, r0, r3, r2 - 1282a: 23a0 movs r3, #160 ; 0xa0 - 1282c: fb92 f2f3 sdiv r2, r2, r3 - 12830: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_WIDTH, line_width, lv_style_int_t, _int, scalar) - 12832: 4630 mov r0, r6 - 12834: 2190 movs r1, #144 ; 0x90 - 12836: 4e9a ldr r6, [pc, #616] ; (12aa0 ) - 12838: f8df a280 ldr.w sl, [pc, #640] ; 12abc - 1283c: 47b0 blx r6 - lv_style_set_line_rounded(&styles->arc_indic, LV_STATE_DEFAULT, true); - 1283e: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_ROUNDED, line_rounded, bool, _int, scalar) - 12840: 2201 movs r2, #1 - 12842: 2194 movs r1, #148 ; 0x94 - 12844: 301c adds r0, #28 - 12846: 47b0 blx r6 - style_init_reset(&styles->arc_bg); - 12848: 6820 ldr r0, [r4, #0] - 1284a: 3020 adds r0, #32 - 1284c: 47c0 blx r8 - lv_style_set_line_color(&styles->arc_bg, LV_STATE_DEFAULT, COLOR_BG_SEC); - 1284e: 6823 ldr r3, [r4, #0] - 12850: f103 0920 add.w r9, r3, #32 - 12854: 6a23 ldr r3, [r4, #32] - 12856: f013 0f02 tst.w r3, #2 - 1285a: bf14 ite ne - 1285c: 4891 ldrne r0, [pc, #580] ; (12aa4 ) - 1285e: 4892 ldreq r0, [pc, #584] ; (12aa8 ) - 12860: 47d0 blx sl -_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_COLOR, line_color, lv_color_t, _color, nonscalar) - 12862: 2199 movs r1, #153 ; 0x99 - 12864: 4602 mov r2, r0 - 12866: 4648 mov r0, r9 - 12868: 47b8 blx r7 - lv_style_set_line_width(&styles->arc_bg, LV_STATE_DEFAULT, LV_DPX(25)); - 1286a: 6823 ldr r3, [r4, #0] - 1286c: 2000 movs r0, #0 - 1286e: f103 0920 add.w r9, r3, #32 - 12872: 47a8 blx r5 - 12874: eb00 0080 add.w r0, r0, r0, lsl #2 - 12878: eb00 0080 add.w r0, r0, r0, lsl #2 - 1287c: 28ef cmp r0, #239 ; 0xef - 1287e: f341 8227 ble.w 13cd0 - 12882: 2000 movs r0, #0 - 12884: 47a8 blx r5 - 12886: 2319 movs r3, #25 - 12888: 2250 movs r2, #80 ; 0x50 - 1288a: fb00 2203 mla r2, r0, r3, r2 - 1288e: 23a0 movs r3, #160 ; 0xa0 - 12890: fb92 f2f3 sdiv r2, r2, r3 - 12894: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_WIDTH, line_width, lv_style_int_t, _int, scalar) - 12896: 4648 mov r0, r9 - 12898: 2190 movs r1, #144 ; 0x90 - 1289a: 47b0 blx r6 - lv_style_set_line_rounded(&styles->arc_bg, LV_STATE_DEFAULT, true); - 1289c: 6820 ldr r0, [r4, #0] - lv_style_set_pad_top(&styles->calendar_header, LV_STATE_DEFAULT, PAD_DEF); - 1289e: f8df 9220 ldr.w r9, [pc, #544] ; 12ac0 -_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_ROUNDED, line_rounded, bool, _int, scalar) - 128a2: 2201 movs r2, #1 - 128a4: 2194 movs r1, #148 ; 0x94 - 128a6: 3020 adds r0, #32 - 128a8: 47b0 blx r6 - chart_init(); - 128aa: 4b80 ldr r3, [pc, #512] ; (12aac ) - 128ac: 4798 blx r3 - style_init_reset(&styles->calendar_header); - 128ae: 6820 ldr r0, [r4, #0] - 128b0: 3030 adds r0, #48 ; 0x30 - 128b2: 47c0 blx r8 - lv_style_set_pad_top(&styles->calendar_header, LV_STATE_DEFAULT, PAD_DEF); - 128b4: 6823 ldr r3, [r4, #0] - 128b6: 2000 movs r0, #0 - 128b8: f103 0b30 add.w fp, r3, #48 ; 0x30 - 128bc: 47c8 blx r9 - 128be: 2801 cmp r0, #1 - 128c0: f04f 0000 mov.w r0, #0 - 128c4: f201 8213 bhi.w 13cee - 128c8: 47a8 blx r5 - 128ca: ebc0 1000 rsb r0, r0, r0, lsl #4 - 128ce: 28ef cmp r0, #239 ; 0xef - 128d0: f301 8201 bgt.w 13cd6 - 128d4: 2201 movs r2, #1 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar) - 128d6: 4658 mov r0, fp - 128d8: 2110 movs r1, #16 - 128da: 47b0 blx r6 - lv_style_set_pad_left(&styles->calendar_header, LV_STATE_DEFAULT, PAD_DEF); - 128dc: 6823 ldr r3, [r4, #0] - 128de: 2000 movs r0, #0 - 128e0: f103 0b30 add.w fp, r3, #48 ; 0x30 - 128e4: 47c8 blx r9 - 128e6: 2801 cmp r0, #1 - 128e8: f04f 0000 mov.w r0, #0 - 128ec: f201 8216 bhi.w 13d1c - 128f0: 47a8 blx r5 - 128f2: ebc0 1000 rsb r0, r0, r0, lsl #4 - 128f6: 28ef cmp r0, #239 ; 0xef - 128f8: f301 8204 bgt.w 13d04 - 128fc: 2201 movs r2, #1 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar) - 128fe: 4658 mov r0, fp - 12900: 2112 movs r1, #18 - 12902: 47b0 blx r6 - lv_style_set_pad_right(&styles->calendar_header, LV_STATE_DEFAULT, PAD_DEF); - 12904: 6823 ldr r3, [r4, #0] - 12906: 2000 movs r0, #0 - 12908: f103 0b30 add.w fp, r3, #48 ; 0x30 - 1290c: 47c8 blx r9 - 1290e: 2801 cmp r0, #1 - 12910: f04f 0000 mov.w r0, #0 - 12914: f201 8219 bhi.w 13d4a - 12918: 47a8 blx r5 - 1291a: ebc0 1000 rsb r0, r0, r0, lsl #4 - 1291e: 28ef cmp r0, #239 ; 0xef - 12920: f301 8207 bgt.w 13d32 - 12924: 2201 movs r2, #1 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar) - 12926: 4658 mov r0, fp - 12928: 2113 movs r1, #19 - 1292a: 47b0 blx r6 - lv_style_set_pad_bottom(&styles->calendar_header, LV_STATE_DEFAULT, PAD_DEF); - 1292c: 6823 ldr r3, [r4, #0] - 1292e: 2000 movs r0, #0 - 12930: f103 0b30 add.w fp, r3, #48 ; 0x30 - 12934: 47c8 blx r9 - 12936: 2801 cmp r0, #1 - 12938: f04f 0000 mov.w r0, #0 - 1293c: f201 821c bhi.w 13d78 - 12940: 47a8 blx r5 - 12942: ebc0 1000 rsb r0, r0, r0, lsl #4 - 12946: 28ef cmp r0, #239 ; 0xef - 12948: f301 820a bgt.w 13d60 - 1294c: 2201 movs r2, #1 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar) - 1294e: 4658 mov r0, fp - 12950: 2111 movs r1, #17 - 12952: 47b0 blx r6 - lv_style_set_text_color(&styles->calendar_header, LV_STATE_PRESSED, IS_LIGHT ? lv_color_hex(0x888888) : LV_COLOR_WHITE); - 12954: 6a22 ldr r2, [r4, #32] - 12956: 6823 ldr r3, [r4, #0] - 12958: f8df b168 ldr.w fp, [pc, #360] ; 12ac4 - 1295c: f012 0f02 tst.w r2, #2 - 12960: f103 0330 add.w r3, r3, #48 ; 0x30 - 12964: f001 8213 beq.w 13d8e - 12968: 4851 ldr r0, [pc, #324] ; (12ab0 ) - 1296a: 9301 str r3, [sp, #4] - 1296c: 47d0 blx sl - 1296e: 9b01 ldr r3, [sp, #4] - 12970: 4602 mov r2, r0 -_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar) - 12972: 4618 mov r0, r3 - 12974: f249 0189 movw r1, #37001 ; 0x9089 - 12978: 47b8 blx r7 - style_init_reset(&styles->calendar_daynames); - 1297a: 6820 ldr r0, [r4, #0] - 1297c: 3034 adds r0, #52 ; 0x34 - 1297e: 47c0 blx r8 - lv_style_set_text_color(&styles->calendar_daynames, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x31404f) : lv_color_hex3(0xeee)); - 12980: 6823 ldr r3, [r4, #0] - 12982: 3334 adds r3, #52 ; 0x34 - 12984: ee07 3a90 vmov s15, r3 - 12988: 6a23 ldr r3, [r4, #32] - 1298a: 0798 lsls r0, r3, #30 - 1298c: f141 8203 bpl.w 13d96 - 12990: 4848 ldr r0, [pc, #288] ; (12ab4 ) - 12992: 47d0 blx sl - 12994: 4602 mov r2, r0 - 12996: f248 0189 movw r1, #32905 ; 0x8089 - 1299a: ee17 0a90 vmov r0, s15 - 1299e: 47b8 blx r7 - lv_style_set_pad_left(&styles->calendar_daynames, LV_STATE_DEFAULT, PAD_DEF); - 129a0: 6823 ldr r3, [r4, #0] - 129a2: 2000 movs r0, #0 - 129a4: 3334 adds r3, #52 ; 0x34 - 129a6: ee08 3a10 vmov s16, r3 - 129aa: 47c8 blx r9 - 129ac: 2801 cmp r0, #1 - 129ae: f04f 0000 mov.w r0, #0 - 129b2: f201 8202 bhi.w 13dba - 129b6: 47a8 blx r5 - 129b8: ebc0 1000 rsb r0, r0, r0, lsl #4 - 129bc: 28ef cmp r0, #239 ; 0xef - 129be: f301 81f0 bgt.w 13da2 - 129c2: 2201 movs r2, #1 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar) - 129c4: ee18 0a10 vmov r0, s16 - 129c8: 2112 movs r1, #18 - 129ca: 47b0 blx r6 - lv_style_set_pad_right(&styles->calendar_daynames, LV_STATE_DEFAULT, PAD_DEF); - 129cc: 6823 ldr r3, [r4, #0] - 129ce: 2000 movs r0, #0 - 129d0: 3334 adds r3, #52 ; 0x34 - 129d2: ee08 3a10 vmov s16, r3 - 129d6: 47c8 blx r9 - 129d8: 2801 cmp r0, #1 - 129da: f04f 0000 mov.w r0, #0 - 129de: f201 8203 bhi.w 13de8 - 129e2: 47a8 blx r5 - 129e4: ebc0 1000 rsb r0, r0, r0, lsl #4 - 129e8: 28ef cmp r0, #239 ; 0xef - 129ea: f301 81f1 bgt.w 13dd0 - 129ee: 2201 movs r2, #1 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar) - 129f0: ee18 0a10 vmov r0, s16 - 129f4: 2113 movs r1, #19 - 129f6: 47b0 blx r6 - lv_style_set_pad_bottom(&styles->calendar_daynames, LV_STATE_DEFAULT, PAD_DEF); - 129f8: 6823 ldr r3, [r4, #0] - 129fa: 2000 movs r0, #0 - 129fc: 3334 adds r3, #52 ; 0x34 - 129fe: ee08 3a10 vmov s16, r3 - 12a02: 47c8 blx r9 - 12a04: 2801 cmp r0, #1 - 12a06: f04f 0000 mov.w r0, #0 - 12a0a: f201 8204 bhi.w 13e16 - 12a0e: 47a8 blx r5 - 12a10: ebc0 1000 rsb r0, r0, r0, lsl #4 - 12a14: 28ef cmp r0, #239 ; 0xef - 12a16: f301 81f2 bgt.w 13dfe - 12a1a: 2201 movs r2, #1 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar) - 12a1c: ee18 0a10 vmov r0, s16 - 12a20: 2111 movs r1, #17 - 12a22: 47b0 blx r6 - style_init_reset(&styles->calendar_date_nums); - 12a24: 6820 ldr r0, [r4, #0] - 12a26: 302c adds r0, #44 ; 0x2c - 12a28: 47c0 blx r8 - lv_style_set_radius(&styles->calendar_date_nums, LV_STATE_DEFAULT, LV_DPX(4)); - 12a2a: 6823 ldr r3, [r4, #0] - 12a2c: 2000 movs r0, #0 - 12a2e: 332c adds r3, #44 ; 0x2c - 12a30: ee08 3a10 vmov s16, r3 - 12a34: 47a8 blx r5 - 12a36: 283b cmp r0, #59 ; 0x3b - 12a38: f341 81f8 ble.w 13e2c - 12a3c: 2000 movs r0, #0 - 12a3e: 47a8 blx r5 - 12a40: 2328 movs r3, #40 ; 0x28 - 12a42: f100 0214 add.w r2, r0, #20 - 12a46: fb92 f2f3 sdiv r2, r2, r3 - 12a4a: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar) - 12a4c: 2101 movs r1, #1 - 12a4e: ee18 0a10 vmov r0, s16 - 12a52: 47b0 blx r6 - lv_style_set_text_color(&styles->calendar_date_nums, LV_STATE_CHECKED, IS_LIGHT ? lv_color_hex(0x31404f) : LV_COLOR_WHITE); - 12a54: 6a22 ldr r2, [r4, #32] - 12a56: 6823 ldr r3, [r4, #0] - 12a58: 0791 lsls r1, r2, #30 - 12a5a: f103 032c add.w r3, r3, #44 ; 0x2c - 12a5e: f141 81e8 bpl.w 13e32 - 12a62: 4814 ldr r0, [pc, #80] ; (12ab4 ) - 12a64: 9301 str r3, [sp, #4] - 12a66: 47d0 blx sl - 12a68: 9b01 ldr r3, [sp, #4] - 12a6a: 4602 mov r2, r0 - 12a6c: e02c b.n 12ac8 - 12a6e: bf00 nop - 12a70: 200057a4 .word 0x200057a4 - 12a74: 0000ecbd .word 0x0000ecbd - 12a78: 20003744 .word 0x20003744 - 12a7c: 00011a39 .word 0x00011a39 - 12a80: 00011145 .word 0x00011145 - 12a84: 00005bcd .word 0x00005bcd - 12a88: 0000dbd5 .word 0x0000dbd5 - 12a8c: 00011041 .word 0x00011041 - 12a90: 00011289 .word 0x00011289 - 12a94: 00010d69 .word 0x00010d69 - 12a98: 00010e75 .word 0x00010e75 - 12a9c: 000114a9 .word 0x000114a9 - 12aa0: 00005afd .word 0x00005afd - 12aa4: 00d4d7d9 .word 0x00d4d7d9 - 12aa8: 0045494d .word 0x0045494d - 12aac: 00011869 .word 0x00011869 - 12ab0: 00888888 .word 0x00888888 - 12ab4: 0031404f .word 0x0031404f - 12ab8: 00010d4d .word 0x00010d4d - 12abc: 0001112d .word 0x0001112d - 12ac0: 0000dbed .word 0x0000dbed - 12ac4: 0002bcf6 .word 0x0002bcf6 -_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar) - 12ac8: 4618 mov r0, r3 - 12aca: f248 1189 movw r1, #33161 ; 0x8189 - 12ace: 47b8 blx r7 - lv_style_set_bg_opa(&styles->calendar_date_nums, LV_STATE_CHECKED, IS_LIGHT ? LV_OPA_20 : LV_OPA_40); - 12ad0: 6a23 ldr r3, [r4, #32] - 12ad2: 6820 ldr r0, [r4, #0] - 12ad4: f013 0f02 tst.w r3, #2 -_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar) - 12ad8: bf14 ite ne - 12ada: 2233 movne r2, #51 ; 0x33 - 12adc: 2266 moveq r2, #102 ; 0x66 - 12ade: 4bc0 ldr r3, [pc, #768] ; (12de0 ) - 12ae0: f44f 7196 mov.w r1, #300 ; 0x12c - 12ae4: 302c adds r0, #44 ; 0x2c - 12ae6: 4798 blx r3 - lv_style_set_bg_opa(&styles->calendar_date_nums, LV_STATE_PRESSED, LV_OPA_20); - 12ae8: 6820 ldr r0, [r4, #0] - 12aea: 4bbd ldr r3, [pc, #756] ; (12de0 ) - 12aec: 2233 movs r2, #51 ; 0x33 - 12aee: f241 012c movw r1, #4140 ; 0x102c - 12af2: 302c adds r0, #44 ; 0x2c - 12af4: 4798 blx r3 - lv_style_set_bg_opa(&styles->calendar_date_nums, LV_STATE_FOCUSED, LV_OPA_COVER); - 12af6: 6820 ldr r0, [r4, #0] - 12af8: 4bb9 ldr r3, [pc, #740] ; (12de0 ) - 12afa: 22ff movs r2, #255 ; 0xff - 12afc: f44f 710b mov.w r1, #556 ; 0x22c - 12b00: 302c adds r0, #44 ; 0x2c - 12b02: 4798 blx r3 - lv_style_set_text_color(&styles->calendar_date_nums, LV_STATE_FOCUSED, LV_COLOR_WHITE); - 12b04: f8bb 3000 ldrh.w r3, [fp] - 12b08: 6820 ldr r0, [r4, #0] - 12b0a: f8ad 3004 strh.w r3, [sp, #4] -_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar) - 12b0e: b29a uxth r2, r3 - 12b10: f248 2189 movw r1, #33417 ; 0x8289 - 12b14: 302c adds r0, #44 ; 0x2c - 12b16: 47b8 blx r7 - lv_style_set_bg_color(&styles->calendar_date_nums, LV_STATE_FOCUSED, theme.color_primary); - 12b18: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar) - 12b1a: 89a2 ldrh r2, [r4, #12] - 12b1c: f240 2129 movw r1, #553 ; 0x229 - 12b20: 302c adds r0, #44 ; 0x2c - 12b22: 47b8 blx r7 - lv_style_set_bg_color(&styles->calendar_date_nums, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x666666) : LV_COLOR_WHITE); - 12b24: 6a22 ldr r2, [r4, #32] - 12b26: 6823 ldr r3, [r4, #0] - 12b28: 0792 lsls r2, r2, #30 - 12b2a: f103 032c add.w r3, r3, #44 ; 0x2c - 12b2e: f141 8184 bpl.w 13e3a - 12b32: 48ac ldr r0, [pc, #688] ; (12de4 ) - 12b34: 9301 str r3, [sp, #4] - 12b36: 47d0 blx sl - 12b38: 9b01 ldr r3, [sp, #4] - 12b3a: 4602 mov r2, r0 - 12b3c: 4618 mov r0, r3 - 12b3e: 2129 movs r1, #41 ; 0x29 - 12b40: 47b8 blx r7 - lv_style_set_bg_color(&styles->calendar_date_nums, LV_STATE_CHECKED, theme.color_primary); - 12b42: 6820 ldr r0, [r4, #0] - 12b44: 89a2 ldrh r2, [r4, #12] - 12b46: f240 1129 movw r1, #297 ; 0x129 - 12b4a: 302c adds r0, #44 ; 0x2c - 12b4c: 47b8 blx r7 - lv_style_set_border_width(&styles->calendar_date_nums, LV_STATE_CHECKED, 2); - 12b4e: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar) - 12b50: 2202 movs r2, #2 - 12b52: f44f 7198 mov.w r1, #304 ; 0x130 - 12b56: 302c adds r0, #44 ; 0x2c - 12b58: 47b0 blx r6 - lv_style_set_border_side(&styles->calendar_date_nums, LV_STATE_CHECKED, LV_BORDER_SIDE_LEFT); - 12b5a: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_SIDE, border_side, lv_border_side_t, _int, scalar) - 12b5c: 2204 movs r2, #4 - 12b5e: f240 1131 movw r1, #305 ; 0x131 - 12b62: 302c adds r0, #44 ; 0x2c - 12b64: 47b0 blx r6 - lv_style_set_border_color(&styles->calendar_date_nums, LV_STATE_CHECKED, theme.color_primary); - 12b66: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar) - 12b68: 89a2 ldrh r2, [r4, #12] - 12b6a: f240 1139 movw r1, #313 ; 0x139 - 12b6e: 302c adds r0, #44 ; 0x2c - 12b70: 47b8 blx r7 - lv_style_set_pad_inner(&styles->calendar_date_nums, LV_STATE_DEFAULT, LV_DPX(3)); - 12b72: 6823 ldr r3, [r4, #0] - 12b74: 2000 movs r0, #0 - 12b76: 332c adds r3, #44 ; 0x2c - 12b78: ee08 3a10 vmov s16, r3 - 12b7c: 47a8 blx r5 - 12b7e: eb00 0040 add.w r0, r0, r0, lsl #1 - 12b82: 28ef cmp r0, #239 ; 0xef - 12b84: f341 815d ble.w 13e42 - 12b88: 2000 movs r0, #0 - 12b8a: 47a8 blx r5 - 12b8c: 2303 movs r3, #3 - 12b8e: 2250 movs r2, #80 ; 0x50 - 12b90: fb00 2203 mla r2, r0, r3, r2 - 12b94: 23a0 movs r3, #160 ; 0xa0 - 12b96: fb92 f2f3 sdiv r2, r2, r3 - 12b9a: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar) - 12b9c: ee18 0a10 vmov r0, s16 - 12ba0: 2114 movs r1, #20 - 12ba2: 47b0 blx r6 - lv_style_set_pad_left(&styles->calendar_date_nums, LV_STATE_DEFAULT, PAD_DEF); - 12ba4: 6823 ldr r3, [r4, #0] - 12ba6: 2000 movs r0, #0 - 12ba8: 332c adds r3, #44 ; 0x2c - 12baa: ee08 3a10 vmov s16, r3 - 12bae: 47c8 blx r9 - 12bb0: 2801 cmp r0, #1 - 12bb2: f04f 0000 mov.w r0, #0 - 12bb6: f201 8153 bhi.w 13e60 - 12bba: 47a8 blx r5 - 12bbc: ebc0 1000 rsb r0, r0, r0, lsl #4 - 12bc0: 28ef cmp r0, #239 ; 0xef - 12bc2: f301 8141 bgt.w 13e48 - 12bc6: 2201 movs r2, #1 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar) - 12bc8: ee18 0a10 vmov r0, s16 - 12bcc: 2112 movs r1, #18 - 12bce: 47b0 blx r6 - lv_style_set_pad_right(&styles->calendar_date_nums, LV_STATE_DEFAULT, PAD_DEF); - 12bd0: 6823 ldr r3, [r4, #0] - 12bd2: 2000 movs r0, #0 - 12bd4: 332c adds r3, #44 ; 0x2c - 12bd6: ee08 3a10 vmov s16, r3 - 12bda: 47c8 blx r9 - 12bdc: 2801 cmp r0, #1 - 12bde: f04f 0000 mov.w r0, #0 - 12be2: f201 8154 bhi.w 13e8e - 12be6: 47a8 blx r5 - 12be8: ebc0 1000 rsb r0, r0, r0, lsl #4 - 12bec: 28ef cmp r0, #239 ; 0xef - 12bee: f301 8142 bgt.w 13e76 - 12bf2: 2201 movs r2, #1 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar) - 12bf4: ee18 0a10 vmov r0, s16 - 12bf8: 2113 movs r1, #19 - 12bfa: 47b0 blx r6 - lv_style_set_pad_bottom(&styles->calendar_date_nums, LV_STATE_DEFAULT, PAD_DEF); - 12bfc: 6823 ldr r3, [r4, #0] - 12bfe: 2000 movs r0, #0 - 12c00: 332c adds r3, #44 ; 0x2c - 12c02: ee08 3a10 vmov s16, r3 - 12c06: 47c8 blx r9 - 12c08: 2801 cmp r0, #1 - 12c0a: f04f 0000 mov.w r0, #0 - 12c0e: f201 8155 bhi.w 13ebc - 12c12: 47a8 blx r5 - 12c14: ebc0 1000 rsb r0, r0, r0, lsl #4 - 12c18: 28ef cmp r0, #239 ; 0xef - 12c1a: f301 8143 bgt.w 13ea4 - 12c1e: 2201 movs r2, #1 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar) - 12c20: 2111 movs r1, #17 - 12c22: ee18 0a10 vmov r0, s16 - 12c26: 47b0 blx r6 - style_init_reset(&styles->cpicker_bg); - 12c28: 6820 ldr r0, [r4, #0] - 12c2a: 3038 adds r0, #56 ; 0x38 - 12c2c: 47c0 blx r8 - lv_style_set_scale_width(&styles->cpicker_bg, LV_STATE_DEFAULT, LV_DPX(30)); - 12c2e: 6823 ldr r3, [r4, #0] - 12c30: 2000 movs r0, #0 - 12c32: f103 0938 add.w r9, r3, #56 ; 0x38 - 12c36: 47a8 blx r5 - 12c38: ebc0 1000 rsb r0, r0, r0, lsl #4 - 12c3c: 0040 lsls r0, r0, #1 - 12c3e: 28ef cmp r0, #239 ; 0xef - 12c40: f341 8147 ble.w 13ed2 - 12c44: 2000 movs r0, #0 - 12c46: 47a8 blx r5 - 12c48: 231e movs r3, #30 - 12c4a: 2250 movs r2, #80 ; 0x50 - 12c4c: fb00 2203 mla r2, r0, r3, r2 - 12c50: 23a0 movs r3, #160 ; 0xa0 - 12c52: fb92 f2f3 sdiv r2, r2, r3 - 12c56: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_WIDTH, scale_width, lv_style_int_t, _int, scalar) - 12c58: 4648 mov r0, r9 - 12c5a: 21c0 movs r1, #192 ; 0xc0 - 12c5c: 47b0 blx r6 - lv_style_set_bg_opa(&styles->cpicker_bg, LV_STATE_DEFAULT, LV_OPA_COVER); - 12c5e: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar) - 12c60: 4b5f ldr r3, [pc, #380] ; (12de0 ) - 12c62: 3038 adds r0, #56 ; 0x38 - 12c64: 22ff movs r2, #255 ; 0xff - 12c66: 212c movs r1, #44 ; 0x2c - 12c68: 4798 blx r3 - lv_style_set_bg_color(&styles->cpicker_bg, LV_STATE_DEFAULT, COLOR_SCR); - 12c6a: 6823 ldr r3, [r4, #0] - 12c6c: f103 0938 add.w r9, r3, #56 ; 0x38 - 12c70: 6a23 ldr r3, [r4, #32] - 12c72: 079b lsls r3, r3, #30 - 12c74: bf4c ite mi - 12c76: 485c ldrmi r0, [pc, #368] ; (12de8 ) - 12c78: 485c ldrpl r0, [pc, #368] ; (12dec ) - 12c7a: 47d0 blx sl -_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar) - 12c7c: 2129 movs r1, #41 ; 0x29 - 12c7e: 4602 mov r2, r0 - 12c80: 4648 mov r0, r9 - 12c82: 47b8 blx r7 - lv_style_set_pad_inner(&styles->cpicker_bg, LV_STATE_DEFAULT, LV_DPX(20)); - 12c84: 6823 ldr r3, [r4, #0] - 12c86: 2000 movs r0, #0 - 12c88: f103 0938 add.w r9, r3, #56 ; 0x38 - 12c8c: 47a8 blx r5 - 12c8e: eb00 0080 add.w r0, r0, r0, lsl #2 - 12c92: 0080 lsls r0, r0, #2 - 12c94: 28ef cmp r0, #239 ; 0xef - 12c96: f341 811f ble.w 13ed8 - 12c9a: 2000 movs r0, #0 - 12c9c: 47a8 blx r5 - 12c9e: 2314 movs r3, #20 - 12ca0: 2250 movs r2, #80 ; 0x50 - 12ca2: fb00 2203 mla r2, r0, r3, r2 - 12ca6: 23a0 movs r3, #160 ; 0xa0 - 12ca8: fb92 f2f3 sdiv r2, r2, r3 - 12cac: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar) - 12cae: 4648 mov r0, r9 - 12cb0: 2114 movs r1, #20 - 12cb2: 47b0 blx r6 - lv_style_set_radius(&styles->cpicker_bg, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE); - 12cb4: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar) - 12cb6: f8df 9128 ldr.w r9, [pc, #296] ; 12de0 -_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar) - 12cba: f647 72ff movw r2, #32767 ; 0x7fff - 12cbe: 2101 movs r1, #1 - 12cc0: 3038 adds r0, #56 ; 0x38 - 12cc2: 47b0 blx r6 - style_init_reset(&styles->cpicker_indic); - 12cc4: 6820 ldr r0, [r4, #0] - 12cc6: 303c adds r0, #60 ; 0x3c - 12cc8: 47c0 blx r8 - lv_style_set_radius(&styles->cpicker_indic, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE); - 12cca: 6820 ldr r0, [r4, #0] - 12ccc: f647 72ff movw r2, #32767 ; 0x7fff - 12cd0: 2101 movs r1, #1 - 12cd2: 303c adds r0, #60 ; 0x3c - 12cd4: 47b0 blx r6 - lv_style_set_bg_color(&styles->cpicker_indic, LV_STATE_DEFAULT, LV_COLOR_WHITE); - 12cd6: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar) - 12cd8: f8bb 2000 ldrh.w r2, [fp] - 12cdc: 2129 movs r1, #41 ; 0x29 - 12cde: 303c adds r0, #60 ; 0x3c - 12ce0: 47b8 blx r7 - lv_style_set_bg_opa(&styles->cpicker_indic, LV_STATE_DEFAULT, LV_OPA_COVER); - 12ce2: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar) - 12ce4: 22ff movs r2, #255 ; 0xff - 12ce6: 212c movs r1, #44 ; 0x2c - 12ce8: 303c adds r0, #60 ; 0x3c - 12cea: 47c8 blx r9 - lv_style_set_border_width(&styles->cpicker_indic, LV_STATE_DEFAULT, 2); - 12cec: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar) - 12cee: 2202 movs r2, #2 - 12cf0: 2130 movs r1, #48 ; 0x30 - 12cf2: 303c adds r0, #60 ; 0x3c - 12cf4: 47b0 blx r6 - lv_style_set_border_color(&styles->cpicker_indic, LV_STATE_DEFAULT, LV_COLOR_GRAY); - 12cf6: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar) - 12cf8: f8bb 2002 ldrh.w r2, [fp, #2] - 12cfc: 2139 movs r1, #57 ; 0x39 - 12cfe: 303c adds r0, #60 ; 0x3c - 12d00: 47b8 blx r7 - lv_style_set_border_color(&styles->cpicker_indic, LV_STATE_FOCUSED, theme.color_primary); - 12d02: 6820 ldr r0, [r4, #0] - 12d04: 89a2 ldrh r2, [r4, #12] - 12d06: f240 2139 movw r1, #569 ; 0x239 - 12d0a: 303c adds r0, #60 ; 0x3c - 12d0c: 47b8 blx r7 - lv_style_set_border_color(&styles->cpicker_indic, LV_STATE_EDITED, theme.color_secondary); - 12d0e: 6820 ldr r0, [r4, #0] - 12d10: 89e2 ldrh r2, [r4, #14] - 12d12: f240 4139 movw r1, #1081 ; 0x439 - 12d16: 303c adds r0, #60 ; 0x3c - 12d18: 47b8 blx r7 - lv_style_set_pad_left(&styles->cpicker_indic, LV_STATE_DEFAULT, LV_DPX(13)); - 12d1a: 6823 ldr r3, [r4, #0] - 12d1c: 2000 movs r0, #0 - 12d1e: f103 0a3c add.w sl, r3, #60 ; 0x3c - 12d22: 47a8 blx r5 - 12d24: eb00 0340 add.w r3, r0, r0, lsl #1 - 12d28: eb00 0083 add.w r0, r0, r3, lsl #2 - 12d2c: 28ef cmp r0, #239 ; 0xef - 12d2e: f341 80d6 ble.w 13ede - 12d32: 2000 movs r0, #0 - 12d34: 47a8 blx r5 - 12d36: 230d movs r3, #13 - 12d38: 2250 movs r2, #80 ; 0x50 - 12d3a: fb00 2203 mla r2, r0, r3, r2 - 12d3e: 23a0 movs r3, #160 ; 0xa0 - 12d40: fb92 f2f3 sdiv r2, r2, r3 - 12d44: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar) - 12d46: 4650 mov r0, sl - 12d48: 2112 movs r1, #18 - 12d4a: 47b0 blx r6 - lv_style_set_pad_right(&styles->cpicker_indic, LV_STATE_DEFAULT, LV_DPX(13)); - 12d4c: 6823 ldr r3, [r4, #0] - 12d4e: 2000 movs r0, #0 - 12d50: f103 0a3c add.w sl, r3, #60 ; 0x3c - 12d54: 47a8 blx r5 - 12d56: eb00 0340 add.w r3, r0, r0, lsl #1 - 12d5a: eb00 0083 add.w r0, r0, r3, lsl #2 - 12d5e: 28ef cmp r0, #239 ; 0xef - 12d60: f341 80c0 ble.w 13ee4 - 12d64: 2000 movs r0, #0 - 12d66: 47a8 blx r5 - 12d68: 230d movs r3, #13 - 12d6a: 2250 movs r2, #80 ; 0x50 - 12d6c: fb00 2203 mla r2, r0, r3, r2 - 12d70: 23a0 movs r3, #160 ; 0xa0 - 12d72: fb92 f2f3 sdiv r2, r2, r3 - 12d76: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar) - 12d78: 4650 mov r0, sl - 12d7a: 2113 movs r1, #19 - 12d7c: 47b0 blx r6 - lv_style_set_pad_top(&styles->cpicker_indic, LV_STATE_DEFAULT, LV_DPX(13)); - 12d7e: 6823 ldr r3, [r4, #0] - 12d80: 2000 movs r0, #0 - 12d82: f103 0a3c add.w sl, r3, #60 ; 0x3c - 12d86: 47a8 blx r5 - 12d88: eb00 0340 add.w r3, r0, r0, lsl #1 - 12d8c: eb00 0083 add.w r0, r0, r3, lsl #2 - 12d90: 28ef cmp r0, #239 ; 0xef - 12d92: f341 80aa ble.w 13eea - 12d96: 2000 movs r0, #0 - 12d98: 47a8 blx r5 - 12d9a: 230d movs r3, #13 - 12d9c: 2250 movs r2, #80 ; 0x50 - 12d9e: fb00 2203 mla r2, r0, r3, r2 - 12da2: 23a0 movs r3, #160 ; 0xa0 - 12da4: fb92 f2f3 sdiv r2, r2, r3 - 12da8: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar) - 12daa: 4650 mov r0, sl - 12dac: 2110 movs r1, #16 - 12dae: 47b0 blx r6 - lv_style_set_pad_bottom(&styles->cpicker_indic, LV_STATE_DEFAULT, LV_DPX(13)); - 12db0: 6823 ldr r3, [r4, #0] - 12db2: 2000 movs r0, #0 - 12db4: f103 0a3c add.w sl, r3, #60 ; 0x3c - 12db8: 47a8 blx r5 - 12dba: eb00 0340 add.w r3, r0, r0, lsl #1 - 12dbe: eb00 0083 add.w r0, r0, r3, lsl #2 - 12dc2: 28ef cmp r0, #239 ; 0xef - 12dc4: f341 8094 ble.w 13ef0 - 12dc8: 2000 movs r0, #0 - 12dca: 47a8 blx r5 - 12dcc: 230d movs r3, #13 - 12dce: 2250 movs r2, #80 ; 0x50 - 12dd0: fb00 2203 mla r2, r0, r3, r2 - 12dd4: 23a0 movs r3, #160 ; 0xa0 - 12dd6: fb92 f2f3 sdiv r2, r2, r3 - 12dda: b212 sxth r2, r2 - 12ddc: e008 b.n 12df0 - 12dde: bf00 nop - 12de0: 00005c9d .word 0x00005c9d - 12de4: 00666666 .word 0x00666666 - 12de8: 00eaeff3 .word 0x00eaeff3 - 12dec: 00444b5a .word 0x00444b5a -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar) - 12df0: 2111 movs r1, #17 - 12df2: 4650 mov r0, sl - 12df4: 47b0 blx r6 - style_init_reset(&styles->cb_bg); - 12df6: 6820 ldr r0, [r4, #0] - 12df8: 304c adds r0, #76 ; 0x4c - 12dfa: 47c0 blx r8 - lv_style_set_radius(&styles->cb_bg, LV_STATE_DEFAULT, LV_DPX(4)); - 12dfc: 6823 ldr r3, [r4, #0] - 12dfe: 2000 movs r0, #0 - 12e00: f103 084c add.w r8, r3, #76 ; 0x4c - 12e04: 47a8 blx r5 - 12e06: 283b cmp r0, #59 ; 0x3b - 12e08: f341 8075 ble.w 13ef6 - 12e0c: 2000 movs r0, #0 - 12e0e: 47a8 blx r5 - 12e10: 2328 movs r3, #40 ; 0x28 - 12e12: f100 0214 add.w r2, r0, #20 - 12e16: fb92 f2f3 sdiv r2, r2, r3 - 12e1a: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar) - 12e1c: 4640 mov r0, r8 - 12e1e: 2101 movs r1, #1 - 12e20: 47b0 blx r6 - lv_style_set_pad_inner(&styles->cb_bg, LV_STATE_DEFAULT, LV_DPX(10)); - 12e22: 6823 ldr r3, [r4, #0] - 12e24: 2000 movs r0, #0 - 12e26: f103 084c add.w r8, r3, #76 ; 0x4c - 12e2a: 47a8 blx r5 - 12e2c: eb00 0080 add.w r0, r0, r0, lsl #2 - 12e30: 0040 lsls r0, r0, #1 - 12e32: 28ef cmp r0, #239 ; 0xef - 12e34: f341 8062 ble.w 13efc - 12e38: 2000 movs r0, #0 - 12e3a: 47a8 blx r5 - 12e3c: 230a movs r3, #10 - 12e3e: 2250 movs r2, #80 ; 0x50 - 12e40: fb00 2203 mla r2, r0, r3, r2 - 12e44: 23a0 movs r3, #160 ; 0xa0 - 12e46: fb92 f2f3 sdiv r2, r2, r3 - 12e4a: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar) - 12e4c: 2114 movs r1, #20 - 12e4e: 4640 mov r0, r8 - 12e50: 47b0 blx r6 - lv_style_set_outline_color(&styles->cb_bg, LV_STATE_DEFAULT, theme.color_primary); - 12e52: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_COLOR, outline_color, lv_color_t, _color, nonscalar) - 12e54: 89a2 ldrh r2, [r4, #12] - 12e56: 2149 movs r1, #73 ; 0x49 - 12e58: 304c adds r0, #76 ; 0x4c - 12e5a: 47b8 blx r7 - lv_style_set_outline_opa(&styles->cb_bg, LV_STATE_DEFAULT, LV_OPA_TRANSP); - 12e5c: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_OPA, outline_opa, lv_opa_t, _opa, scalar) - 12e5e: 214c movs r1, #76 ; 0x4c - 12e60: 4408 add r0, r1 - 12e62: 2200 movs r2, #0 - 12e64: 47c8 blx r9 - lv_style_set_outline_opa(&styles->cb_bg, LV_STATE_FOCUSED, LV_OPA_50); - 12e66: 6820 ldr r0, [r4, #0] - 12e68: 227f movs r2, #127 ; 0x7f - 12e6a: f44f 7113 mov.w r1, #588 ; 0x24c - 12e6e: 304c adds r0, #76 ; 0x4c - 12e70: 47c8 blx r9 - lv_style_set_outline_width(&styles->cb_bg, LV_STATE_DEFAULT, LV_DPX(3)); - 12e72: 2000 movs r0, #0 - 12e74: 6824 ldr r4, [r4, #0] - 12e76: 47a8 blx r5 - 12e78: eb00 0040 add.w r0, r0, r0, lsl #1 - 12e7c: 28ef cmp r0, #239 ; 0xef - 12e7e: f104 044c add.w r4, r4, #76 ; 0x4c - 12e82: f341 803e ble.w 13f02 - 12e86: 2000 movs r0, #0 - 12e88: 47a8 blx r5 - 12e8a: 2303 movs r3, #3 - 12e8c: 2250 movs r2, #80 ; 0x50 - 12e8e: fb00 2203 mla r2, r0, r3, r2 - 12e92: 23a0 movs r3, #160 ; 0xa0 - 12e94: fb92 f2f3 sdiv r2, r2, r3 - 12e98: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_WIDTH, outline_width, lv_style_int_t, _int, scalar) - 12e9a: 4620 mov r0, r4 - 12e9c: 2140 movs r1, #64 ; 0x40 - lv_style_set_outline_pad(&styles->cb_bg, LV_STATE_DEFAULT, LV_DPX(10)); - 12e9e: 4cbf ldr r4, [pc, #764] ; (1319c ) - 12ea0: 47b0 blx r6 - 12ea2: 2000 movs r0, #0 - 12ea4: 6827 ldr r7, [r4, #0] - 12ea6: 47a8 blx r5 - 12ea8: eb00 0080 add.w r0, r0, r0, lsl #2 - 12eac: 0040 lsls r0, r0, #1 - 12eae: 28ef cmp r0, #239 ; 0xef - 12eb0: f107 074c add.w r7, r7, #76 ; 0x4c - 12eb4: f341 8028 ble.w 13f08 - 12eb8: 2000 movs r0, #0 - 12eba: 47a8 blx r5 - 12ebc: 230a movs r3, #10 - 12ebe: 2250 movs r2, #80 ; 0x50 - 12ec0: fb00 2203 mla r2, r0, r3, r2 - 12ec4: 23a0 movs r3, #160 ; 0xa0 - 12ec6: fb92 f2f3 sdiv r2, r2, r3 - 12eca: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_PAD, outline_pad, lv_style_int_t, _int, scalar) - 12ecc: 2141 movs r1, #65 ; 0x41 - 12ece: 4638 mov r0, r7 - 12ed0: 47b0 blx r6 - lv_style_set_transition_time(&styles->cb_bg, LV_STATE_DEFAULT, TRANSITION_TIME); - 12ed2: 6820 ldr r0, [r4, #0] - lv_style_set_radius(&styles->cb_bullet, LV_STATE_DEFAULT, LV_DPX(4)); - 12ed4: f8df 82e4 ldr.w r8, [pc, #740] ; 131bc -_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_TIME, transition_time, lv_style_int_t, _int, scalar) - 12ed8: 2296 movs r2, #150 ; 0x96 - 12eda: 21b0 movs r1, #176 ; 0xb0 - 12edc: 304c adds r0, #76 ; 0x4c - 12ede: 47b0 blx r6 - lv_style_set_transition_prop_6(&styles->cb_bg, LV_STATE_DEFAULT, LV_STYLE_OUTLINE_OPA); - 12ee0: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_6, transition_prop_6, lv_style_int_t, _int, scalar) - 12ee2: 224c movs r2, #76 ; 0x4c - 12ee4: 4410 add r0, r2 - 12ee6: 21b7 movs r1, #183 ; 0xb7 - 12ee8: 47b0 blx r6 - style_init_reset(&styles->cb_bullet); - 12eea: 6820 ldr r0, [r4, #0] - 12eec: 4eac ldr r6, [pc, #688] ; (131a0 ) - 12eee: 3050 adds r0, #80 ; 0x50 - 12ef0: 47b0 blx r6 - lv_style_set_outline_opa(&styles->cb_bullet, LV_STATE_FOCUSED, LV_OPA_TRANSP); - 12ef2: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_OPA, outline_opa, lv_opa_t, _opa, scalar) - 12ef4: 2200 movs r2, #0 - 12ef6: f44f 7113 mov.w r1, #588 ; 0x24c - 12efa: 3050 adds r0, #80 ; 0x50 - 12efc: 47c8 blx r9 - lv_style_set_radius(&styles->cb_bullet, LV_STATE_DEFAULT, LV_DPX(4)); - 12efe: 2000 movs r0, #0 - 12f00: 6825 ldr r5, [r4, #0] - 12f02: 47c0 blx r8 - 12f04: 283b cmp r0, #59 ; 0x3b - 12f06: f105 0550 add.w r5, r5, #80 ; 0x50 - 12f0a: 46b2 mov sl, r6 - 12f0c: f341 8012 ble.w 13f34 - 12f10: 2000 movs r0, #0 - 12f12: 47c0 blx r8 - 12f14: 2328 movs r3, #40 ; 0x28 - 12f16: f100 0214 add.w r2, r0, #20 - 12f1a: fb92 f2f3 sdiv r2, r2, r3 - 12f1e: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar) - 12f20: 4628 mov r0, r5 - 12f22: 2101 movs r1, #1 - 12f24: 4d9f ldr r5, [pc, #636] ; (131a4 ) -_LV_OBJ_STYLE_SET_GET_DECLARE(PATTERN_IMAGE, pattern_image, const void *, _ptr, scalar) - 12f26: 4fa0 ldr r7, [pc, #640] ; (131a8 ) -_LV_OBJ_STYLE_SET_GET_DECLARE(PATTERN_RECOLOR, pattern_recolor, lv_color_t, _color, nonscalar) - 12f28: 4ea0 ldr r6, [pc, #640] ; (131ac ) -_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar) - 12f2a: 47a8 blx r5 - lv_style_set_pattern_image(&styles->cb_bullet, LV_STATE_CHECKED, LV_SYMBOL_OK); - 12f2c: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(PATTERN_IMAGE, pattern_image, const void *, _ptr, scalar) - 12f2e: 4aa0 ldr r2, [pc, #640] ; (131b0 ) - 12f30: f44f 71b7 mov.w r1, #366 ; 0x16e - 12f34: 3050 adds r0, #80 ; 0x50 - 12f36: 47b8 blx r7 - lv_style_set_pattern_recolor(&styles->cb_bullet, LV_STATE_CHECKED, LV_COLOR_WHITE); - 12f38: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(PATTERN_RECOLOR, pattern_recolor, lv_color_t, _color, nonscalar) - 12f3a: f8bb 2000 ldrh.w r2, [fp] - 12f3e: f240 1169 movw r1, #361 ; 0x169 - 12f42: 3050 adds r0, #80 ; 0x50 - 12f44: 47b0 blx r6 - lv_style_set_text_font(&styles->cb_bullet, LV_STATE_CHECKED, theme.font_small); - 12f46: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar) - 12f48: 6922 ldr r2, [r4, #16] - 12f4a: f248 118e movw r1, #33166 ; 0x818e - 12f4e: 3050 adds r0, #80 ; 0x50 - 12f50: 47b8 blx r7 - lv_style_set_pad_left(&styles->cb_bullet, LV_STATE_DEFAULT, LV_DPX(3)); - 12f52: 2000 movs r0, #0 - 12f54: 6827 ldr r7, [r4, #0] - 12f56: 47c0 blx r8 - 12f58: eb00 0040 add.w r0, r0, r0, lsl #1 - 12f5c: 28ef cmp r0, #239 ; 0xef - 12f5e: f107 0750 add.w r7, r7, #80 ; 0x50 - 12f62: f340 87ea ble.w 13f3a - 12f66: 2000 movs r0, #0 - 12f68: 47c0 blx r8 - 12f6a: 2303 movs r3, #3 - 12f6c: 2250 movs r2, #80 ; 0x50 - 12f6e: fb00 2203 mla r2, r0, r3, r2 - 12f72: 23a0 movs r3, #160 ; 0xa0 - 12f74: fb92 f2f3 sdiv r2, r2, r3 - 12f78: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar) - 12f7a: 4638 mov r0, r7 - 12f7c: 2112 movs r1, #18 - 12f7e: 47a8 blx r5 - lv_style_set_pad_right(&styles->cb_bullet, LV_STATE_DEFAULT, LV_DPX(3)); - 12f80: 2000 movs r0, #0 - 12f82: 6827 ldr r7, [r4, #0] - 12f84: 47c0 blx r8 - 12f86: eb00 0040 add.w r0, r0, r0, lsl #1 - 12f8a: 28ef cmp r0, #239 ; 0xef - 12f8c: f107 0750 add.w r7, r7, #80 ; 0x50 - 12f90: f340 87d6 ble.w 13f40 - 12f94: 2000 movs r0, #0 - 12f96: 47c0 blx r8 - 12f98: 2303 movs r3, #3 - 12f9a: 2250 movs r2, #80 ; 0x50 - 12f9c: fb00 2203 mla r2, r0, r3, r2 - 12fa0: 23a0 movs r3, #160 ; 0xa0 - 12fa2: fb92 f2f3 sdiv r2, r2, r3 - 12fa6: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar) - 12fa8: 4638 mov r0, r7 - 12faa: 2113 movs r1, #19 - 12fac: 47a8 blx r5 - lv_style_set_pad_top(&styles->cb_bullet, LV_STATE_DEFAULT, LV_DPX(3)); - 12fae: 2000 movs r0, #0 - 12fb0: 6827 ldr r7, [r4, #0] - 12fb2: 47c0 blx r8 - 12fb4: eb00 0040 add.w r0, r0, r0, lsl #1 - 12fb8: 28ef cmp r0, #239 ; 0xef - 12fba: f107 0750 add.w r7, r7, #80 ; 0x50 - 12fbe: f340 87c2 ble.w 13f46 - 12fc2: 2000 movs r0, #0 - 12fc4: 47c0 blx r8 - 12fc6: 2303 movs r3, #3 - 12fc8: 2250 movs r2, #80 ; 0x50 - 12fca: fb00 2203 mla r2, r0, r3, r2 - 12fce: 23a0 movs r3, #160 ; 0xa0 - 12fd0: fb92 f2f3 sdiv r2, r2, r3 - 12fd4: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar) - 12fd6: 4638 mov r0, r7 - 12fd8: 2110 movs r1, #16 - 12fda: 47a8 blx r5 - lv_style_set_pad_bottom(&styles->cb_bullet, LV_STATE_DEFAULT, LV_DPX(3)); - 12fdc: 2000 movs r0, #0 - 12fde: 6827 ldr r7, [r4, #0] - 12fe0: 47c0 blx r8 - 12fe2: eb00 0040 add.w r0, r0, r0, lsl #1 - 12fe6: 28ef cmp r0, #239 ; 0xef - 12fe8: f107 0750 add.w r7, r7, #80 ; 0x50 - 12fec: f340 87ae ble.w 13f4c - 12ff0: 2000 movs r0, #0 - 12ff2: 47c0 blx r8 - 12ff4: 2303 movs r3, #3 - 12ff6: 2250 movs r2, #80 ; 0x50 - 12ff8: fb00 2203 mla r2, r0, r3, r2 - 12ffc: 23a0 movs r3, #160 ; 0xa0 - 12ffe: fb92 f2f3 sdiv r2, r2, r3 - 13002: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar) - 13004: 2111 movs r1, #17 - 13006: 4638 mov r0, r7 - 13008: 47a8 blx r5 - style_init_reset(&styles->kb_bg); - 1300a: 6820 ldr r0, [r4, #0] - 1300c: 3068 adds r0, #104 ; 0x68 - 1300e: 47d0 blx sl - lv_style_set_radius(&styles->kb_bg, LV_STATE_DEFAULT, 0); - 13010: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar) - 13012: 2200 movs r2, #0 - 13014: 2101 movs r1, #1 - 13016: 3068 adds r0, #104 ; 0x68 - 13018: 47a8 blx r5 - lv_style_set_border_width(&styles->kb_bg, LV_STATE_DEFAULT, LV_DPX(4)); - 1301a: 2000 movs r0, #0 - 1301c: 6827 ldr r7, [r4, #0] - 1301e: 47c0 blx r8 - 13020: 283b cmp r0, #59 ; 0x3b - 13022: f107 0768 add.w r7, r7, #104 ; 0x68 - 13026: f340 8794 ble.w 13f52 - 1302a: 2000 movs r0, #0 - 1302c: 47c0 blx r8 - 1302e: 2328 movs r3, #40 ; 0x28 - 13030: f100 0214 add.w r2, r0, #20 - 13034: fb92 f2f3 sdiv r2, r2, r3 - 13038: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar) - 1303a: 4638 mov r0, r7 - 1303c: 2130 movs r1, #48 ; 0x30 - 1303e: 47a8 blx r5 - lv_style_set_border_side(&styles->kb_bg, LV_STATE_DEFAULT, LV_BORDER_SIDE_TOP); - 13040: 6820 ldr r0, [r4, #0] - 13042: 4f5c ldr r7, [pc, #368] ; (131b4 ) -_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_SIDE, border_side, lv_border_side_t, _int, scalar) - 13044: 3068 adds r0, #104 ; 0x68 - 13046: 2202 movs r2, #2 - 13048: 2131 movs r1, #49 ; 0x31 - 1304a: 47a8 blx r5 - lv_style_set_border_color(&styles->kb_bg, LV_STATE_DEFAULT, IS_LIGHT ? COLOR_BG_TEXT : LV_COLOR_BLACK); - 1304c: 6a20 ldr r0, [r4, #32] - 1304e: 6823 ldr r3, [r4, #0] - 13050: f010 0002 ands.w r0, r0, #2 - 13054: f103 0b68 add.w fp, r3, #104 ; 0x68 - 13058: f000 877e beq.w 13f58 - 1305c: 4856 ldr r0, [pc, #344] ; (131b8 ) - 1305e: 47b8 blx r7 - 13060: f000 021f and.w r2, r0, #31 - 13064: f3c0 1345 ubfx r3, r0, #5, #6 - 13068: f3c0 20c4 ubfx r0, r0, #11, #5 -_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar) - 1306c: ea42 1243 orr.w r2, r2, r3, lsl #5 - 13070: ea42 22c0 orr.w r2, r2, r0, lsl #11 - 13074: 2139 movs r1, #57 ; 0x39 - 13076: 4658 mov r0, fp - 13078: 47b0 blx r6 - lv_style_set_border_color(&styles->kb_bg, LV_STATE_EDITED, theme.color_secondary); - 1307a: 6820 ldr r0, [r4, #0] - 1307c: 89e2 ldrh r2, [r4, #14] - 1307e: f240 4139 movw r1, #1081 ; 0x439 - 13082: 3068 adds r0, #104 ; 0x68 - 13084: 47b0 blx r6 - lv_style_set_pad_left(&styles->kb_bg, LV_STATE_DEFAULT, LV_DPX(5)); - 13086: 6823 ldr r3, [r4, #0] - 13088: 2000 movs r0, #0 - 1308a: f103 0b68 add.w fp, r3, #104 ; 0x68 - 1308e: 47c0 blx r8 - 13090: eb00 0080 add.w r0, r0, r0, lsl #2 - 13094: 28ef cmp r0, #239 ; 0xef - 13096: f340 8763 ble.w 13f60 - 1309a: 2000 movs r0, #0 - 1309c: 47c0 blx r8 - 1309e: 2305 movs r3, #5 - 130a0: 2250 movs r2, #80 ; 0x50 - 130a2: fb00 2203 mla r2, r0, r3, r2 - 130a6: 23a0 movs r3, #160 ; 0xa0 - 130a8: fb92 f2f3 sdiv r2, r2, r3 - 130ac: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar) - 130ae: 4658 mov r0, fp - 130b0: 2112 movs r1, #18 - 130b2: 47a8 blx r5 - lv_style_set_pad_right(&styles->kb_bg, LV_STATE_DEFAULT, LV_DPX(5)); - 130b4: 6823 ldr r3, [r4, #0] - 130b6: 2000 movs r0, #0 - 130b8: f103 0b68 add.w fp, r3, #104 ; 0x68 - 130bc: 47c0 blx r8 - 130be: eb00 0080 add.w r0, r0, r0, lsl #2 - 130c2: 28ef cmp r0, #239 ; 0xef - 130c4: f340 874f ble.w 13f66 - 130c8: 2000 movs r0, #0 - 130ca: 47c0 blx r8 - 130cc: 2305 movs r3, #5 - 130ce: 2250 movs r2, #80 ; 0x50 - 130d0: fb00 2203 mla r2, r0, r3, r2 - 130d4: 23a0 movs r3, #160 ; 0xa0 - 130d6: fb92 f2f3 sdiv r2, r2, r3 - 130da: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar) - 130dc: 4658 mov r0, fp - 130de: 2113 movs r1, #19 - 130e0: 47a8 blx r5 - lv_style_set_pad_top(&styles->kb_bg, LV_STATE_DEFAULT, LV_DPX(5)); - 130e2: 6823 ldr r3, [r4, #0] - 130e4: 2000 movs r0, #0 - 130e6: f103 0b68 add.w fp, r3, #104 ; 0x68 - 130ea: 47c0 blx r8 - 130ec: eb00 0080 add.w r0, r0, r0, lsl #2 - 130f0: 28ef cmp r0, #239 ; 0xef - 130f2: f340 873b ble.w 13f6c - 130f6: 2000 movs r0, #0 - 130f8: 47c0 blx r8 - 130fa: 2305 movs r3, #5 - 130fc: 2250 movs r2, #80 ; 0x50 - 130fe: fb00 2203 mla r2, r0, r3, r2 - 13102: 23a0 movs r3, #160 ; 0xa0 - 13104: fb92 f2f3 sdiv r2, r2, r3 - 13108: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar) - 1310a: 4658 mov r0, fp - 1310c: 2110 movs r1, #16 - 1310e: 47a8 blx r5 - lv_style_set_pad_bottom(&styles->kb_bg, LV_STATE_DEFAULT, LV_DPX(5)); - 13110: 6823 ldr r3, [r4, #0] - 13112: 2000 movs r0, #0 - 13114: f103 0b68 add.w fp, r3, #104 ; 0x68 - 13118: 47c0 blx r8 - 1311a: eb00 0080 add.w r0, r0, r0, lsl #2 - 1311e: 28ef cmp r0, #239 ; 0xef - 13120: f340 8727 ble.w 13f72 - 13124: 2000 movs r0, #0 - 13126: 47c0 blx r8 - 13128: 2305 movs r3, #5 - 1312a: 2250 movs r2, #80 ; 0x50 - 1312c: fb00 2203 mla r2, r0, r3, r2 - 13130: 23a0 movs r3, #160 ; 0xa0 - 13132: fb92 f2f3 sdiv r2, r2, r3 - 13136: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar) - 13138: 4658 mov r0, fp - 1313a: 2111 movs r1, #17 - 1313c: 47a8 blx r5 - lv_style_set_pad_inner(&styles->kb_bg, LV_STATE_DEFAULT, LV_DPX(3)); - 1313e: 6823 ldr r3, [r4, #0] - 13140: 2000 movs r0, #0 - 13142: f103 0b68 add.w fp, r3, #104 ; 0x68 - 13146: 47c0 blx r8 - 13148: eb00 0040 add.w r0, r0, r0, lsl #1 - 1314c: 28ef cmp r0, #239 ; 0xef - 1314e: f340 8713 ble.w 13f78 - 13152: 2000 movs r0, #0 - 13154: 47c0 blx r8 - 13156: 2303 movs r3, #3 - 13158: 2250 movs r2, #80 ; 0x50 - 1315a: fb00 2203 mla r2, r0, r3, r2 - 1315e: 23a0 movs r3, #160 ; 0xa0 - 13160: fb92 f2f3 sdiv r2, r2, r3 - 13164: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar) - 13166: 2114 movs r1, #20 - 13168: 4658 mov r0, fp - 1316a: 47a8 blx r5 - style_init_reset(&styles->mbox_bg); - 1316c: 6820 ldr r0, [r4, #0] - 1316e: 307c adds r0, #124 ; 0x7c - 13170: 47d0 blx sl - lv_style_set_shadow_width(&styles->mbox_bg, LV_STATE_DEFAULT, LV_DPX(50)); - 13172: 6823 ldr r3, [r4, #0] - 13174: 2000 movs r0, #0 - 13176: f103 0b7c add.w fp, r3, #124 ; 0x7c - 1317a: 47c0 blx r8 - 1317c: 2332 movs r3, #50 ; 0x32 - 1317e: 4358 muls r0, r3 - 13180: 28ef cmp r0, #239 ; 0xef - 13182: f340 86fc ble.w 13f7e - 13186: 2000 movs r0, #0 - 13188: 47c0 blx r8 - 1318a: 2332 movs r3, #50 ; 0x32 - 1318c: 2250 movs r2, #80 ; 0x50 - 1318e: fb00 2203 mla r2, r0, r3, r2 - 13192: 23a0 movs r3, #160 ; 0xa0 - 13194: fb92 f2f3 sdiv r2, r2, r3 - 13198: b212 sxth r2, r2 - 1319a: e011 b.n 131c0 - 1319c: 200057a4 .word 0x200057a4 - 131a0: 00010d4d .word 0x00010d4d - 131a4: 00005afd .word 0x00005afd - 131a8: 00005d71 .word 0x00005d71 - 131ac: 00005bcd .word 0x00005bcd - 131b0: 0002bcf2 .word 0x0002bcf2 - 131b4: 0001112d .word 0x0001112d - 131b8: 003b3e42 .word 0x003b3e42 - 131bc: 0000dbd5 .word 0x0000dbd5 -_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_WIDTH, shadow_width, lv_style_int_t, _int, scalar) - 131c0: 4658 mov r0, fp - 131c2: 2150 movs r1, #80 ; 0x50 - 131c4: 47a8 blx r5 - lv_style_set_shadow_color(&styles->mbox_bg, LV_STATE_DEFAULT, IS_LIGHT ? LV_COLOR_SILVER : lv_color_hex3(0x999)); - 131c6: 6823 ldr r3, [r4, #0] - 131c8: f103 0b7c add.w fp, r3, #124 ; 0x7c - 131cc: 6a23 ldr r3, [r4, #32] - 131ce: 0798 lsls r0, r3, #30 - 131d0: f140 86d8 bpl.w 13f84 - 131d4: 4bb6 ldr r3, [pc, #728] ; (134b0 ) - 131d6: 889a ldrh r2, [r3, #4] -_LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_COLOR, shadow_color, lv_color_t, _color, nonscalar) - 131d8: 2159 movs r1, #89 ; 0x59 - 131da: 4658 mov r0, fp - 131dc: 47b0 blx r6 - style_init_reset(&styles->sb); - 131de: 6820 ldr r0, [r4, #0] - 131e0: 3080 adds r0, #128 ; 0x80 - 131e2: 47d0 blx sl - lv_style_set_bg_opa(&styles->sb, LV_STATE_DEFAULT, LV_OPA_COVER); - 131e4: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar) - 131e6: 22ff movs r2, #255 ; 0xff - 131e8: 3080 adds r0, #128 ; 0x80 - 131ea: 212c movs r1, #44 ; 0x2c - 131ec: 47c8 blx r9 - lv_style_set_bg_color(&styles->sb, LV_STATE_DEFAULT, (IS_LIGHT ? lv_color_hex(0xcccfd1) : lv_color_hex(0x777f85))); - 131ee: 6823 ldr r3, [r4, #0] - 131f0: f103 0b80 add.w fp, r3, #128 ; 0x80 - 131f4: 6a23 ldr r3, [r4, #32] - 131f6: 0799 lsls r1, r3, #30 - 131f8: bf4c ite mi - 131fa: 48ae ldrmi r0, [pc, #696] ; (134b4 ) - 131fc: 48ae ldrpl r0, [pc, #696] ; (134b8 ) - 131fe: 47b8 blx r7 -_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar) - 13200: 2129 movs r1, #41 ; 0x29 - 13202: 4602 mov r2, r0 - 13204: 4658 mov r0, fp - 13206: 47b0 blx r6 - lv_style_set_radius(&styles->sb, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE); - 13208: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar) - 1320a: f647 72ff movw r2, #32767 ; 0x7fff - 1320e: 2101 movs r1, #1 - 13210: 3080 adds r0, #128 ; 0x80 - 13212: 47a8 blx r5 - lv_style_set_size(&styles->sb, LV_STATE_DEFAULT, LV_DPX(7)); - 13214: 6823 ldr r3, [r4, #0] - 13216: 2000 movs r0, #0 - 13218: f103 0b80 add.w fp, r3, #128 ; 0x80 - 1321c: 47c0 blx r8 - 1321e: ebc0 00c0 rsb r0, r0, r0, lsl #3 - 13222: 28ef cmp r0, #239 ; 0xef - 13224: f340 86b5 ble.w 13f92 - 13228: 2000 movs r0, #0 - 1322a: 47c0 blx r8 - 1322c: 2307 movs r3, #7 - 1322e: 2250 movs r2, #80 ; 0x50 - 13230: fb00 2203 mla r2, r0, r3, r2 - 13234: 23a0 movs r3, #160 ; 0xa0 - 13236: fb92 f2f3 sdiv r2, r2, r3 - 1323a: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(SIZE, size, lv_style_int_t, _int, scalar) - 1323c: 4658 mov r0, fp - 1323e: 2103 movs r1, #3 - 13240: 47a8 blx r5 - lv_style_set_pad_right(&styles->sb, LV_STATE_DEFAULT, LV_DPX(7)); - 13242: 6823 ldr r3, [r4, #0] - 13244: 2000 movs r0, #0 - 13246: f103 0b80 add.w fp, r3, #128 ; 0x80 - 1324a: 47c0 blx r8 - 1324c: ebc0 00c0 rsb r0, r0, r0, lsl #3 - 13250: 28ef cmp r0, #239 ; 0xef - 13252: f340 86a1 ble.w 13f98 - 13256: 2000 movs r0, #0 - 13258: 47c0 blx r8 - 1325a: 2307 movs r3, #7 - 1325c: 2250 movs r2, #80 ; 0x50 - 1325e: fb00 2203 mla r2, r0, r3, r2 - 13262: 23a0 movs r3, #160 ; 0xa0 - 13264: fb92 f2f3 sdiv r2, r2, r3 - 13268: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar) - 1326a: 4658 mov r0, fp - 1326c: 2113 movs r1, #19 - 1326e: 47a8 blx r5 - lv_style_set_pad_bottom(&styles->sb, LV_STATE_DEFAULT, LV_DPX(7)); - 13270: 6823 ldr r3, [r4, #0] - 13272: 2000 movs r0, #0 - 13274: f103 0b80 add.w fp, r3, #128 ; 0x80 - 13278: 47c0 blx r8 - 1327a: ebc0 00c0 rsb r0, r0, r0, lsl #3 - 1327e: 28ef cmp r0, #239 ; 0xef - 13280: f340 868d ble.w 13f9e - 13284: 2000 movs r0, #0 - 13286: 47c0 blx r8 - 13288: 2307 movs r3, #7 - 1328a: 2250 movs r2, #80 ; 0x50 - 1328c: fb00 2203 mla r2, r0, r3, r2 - 13290: 23a0 movs r3, #160 ; 0xa0 - 13292: fb92 f2f3 sdiv r2, r2, r3 - 13296: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar) - 13298: 2111 movs r1, #17 - 1329a: 4658 mov r0, fp - 1329c: 47a8 blx r5 - style_init_reset(&styles->edge_flash); - 1329e: 6820 ldr r0, [r4, #0] - 132a0: 3084 adds r0, #132 ; 0x84 - 132a2: 47d0 blx sl - lv_style_set_bg_opa(&styles->edge_flash, LV_STATE_DEFAULT, LV_OPA_COVER); - 132a4: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar) - 132a6: 22ff movs r2, #255 ; 0xff - 132a8: 212c movs r1, #44 ; 0x2c - 132aa: 3084 adds r0, #132 ; 0x84 - 132ac: 47c8 blx r9 - lv_style_set_bg_color(&styles->edge_flash, LV_STATE_DEFAULT, lv_color_hex3(0x888)); - 132ae: 6823 ldr r3, [r4, #0] - 132b0: f640 0088 movw r0, #2184 ; 0x888 - 132b4: f103 0b84 add.w fp, r3, #132 ; 0x84 - 132b8: 4b80 ldr r3, [pc, #512] ; (134bc ) - 132ba: 4798 blx r3 -_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar) - 132bc: 2129 movs r1, #41 ; 0x29 - 132be: 4602 mov r2, r0 - 132c0: 4658 mov r0, fp - 132c2: 47b0 blx r6 - style_init_reset(&styles->ta_cursor); - 132c4: 6820 ldr r0, [r4, #0] - 132c6: 30b4 adds r0, #180 ; 0xb4 - 132c8: 47d0 blx sl - lv_style_set_border_color(&styles->ta_cursor, LV_STATE_DEFAULT, COLOR_BG_SEC_TEXT); - 132ca: 6823 ldr r3, [r4, #0] - 132cc: f103 0bb4 add.w fp, r3, #180 ; 0xb4 - 132d0: 6a23 ldr r3, [r4, #32] - 132d2: 079a lsls r2, r3, #30 - 132d4: bf4c ite mi - 132d6: 487a ldrmi r0, [pc, #488] ; (134c0 ) - 132d8: 487a ldrpl r0, [pc, #488] ; (134c4 ) - 132da: 47b8 blx r7 -_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar) - 132dc: 2139 movs r1, #57 ; 0x39 - 132de: 4602 mov r2, r0 - 132e0: 4658 mov r0, fp - 132e2: 47b0 blx r6 - lv_style_set_border_width(&styles->ta_cursor, LV_STATE_DEFAULT, LV_DPX(2)); - 132e4: 6823 ldr r3, [r4, #0] - 132e6: 2000 movs r0, #0 - 132e8: f103 0bb4 add.w fp, r3, #180 ; 0xb4 - 132ec: 47c0 blx r8 - 132ee: 2877 cmp r0, #119 ; 0x77 - 132f0: f340 8658 ble.w 13fa4 - 132f4: 2000 movs r0, #0 - 132f6: 47c0 blx r8 - 132f8: 2350 movs r3, #80 ; 0x50 - 132fa: f100 0228 add.w r2, r0, #40 ; 0x28 - 132fe: fb92 f2f3 sdiv r2, r2, r3 - 13302: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar) - 13304: 4658 mov r0, fp - 13306: 2130 movs r1, #48 ; 0x30 - 13308: 47a8 blx r5 - lv_style_set_pad_left(&styles->ta_cursor, LV_STATE_DEFAULT, LV_DPX(1)); - 1330a: 6823 ldr r3, [r4, #0] - 1330c: 2000 movs r0, #0 - 1330e: f103 0bb4 add.w fp, r3, #180 ; 0xb4 - 13312: 47c0 blx r8 - 13314: 28ef cmp r0, #239 ; 0xef - 13316: f340 8648 ble.w 13faa - 1331a: 2000 movs r0, #0 - 1331c: 47c0 blx r8 - 1331e: 23a0 movs r3, #160 ; 0xa0 - 13320: f100 0250 add.w r2, r0, #80 ; 0x50 - 13324: fb92 f2f3 sdiv r2, r2, r3 - 13328: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar) - 1332a: 4658 mov r0, fp - 1332c: 2112 movs r1, #18 - 1332e: 47a8 blx r5 - lv_style_set_border_side(&styles->ta_cursor, LV_STATE_DEFAULT, LV_BORDER_SIDE_LEFT); - 13330: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_SIDE, border_side, lv_border_side_t, _int, scalar) - 13332: 2204 movs r2, #4 - 13334: 2131 movs r1, #49 ; 0x31 - 13336: 30b4 adds r0, #180 ; 0xb4 - 13338: 47a8 blx r5 - style_init_reset(&styles->ta_placeholder); - 1333a: 6820 ldr r0, [r4, #0] - 1333c: 30b8 adds r0, #184 ; 0xb8 - 1333e: 47d0 blx sl - lv_style_set_text_color(&styles->ta_placeholder, LV_STATE_DEFAULT, IS_LIGHT ? COLOR_BG_TEXT_DIS : lv_color_hex(0xa1adbd)); - 13340: 6823 ldr r3, [r4, #0] - 13342: f103 0bb8 add.w fp, r3, #184 ; 0xb8 - 13346: 6a23 ldr r3, [r4, #32] - 13348: 079b lsls r3, r3, #30 - 1334a: f140 8631 bpl.w 13fb0 - 1334e: 4b5b ldr r3, [pc, #364] ; (134bc ) - 13350: f640 20aa movw r0, #2730 ; 0xaaa - 13354: 4798 blx r3 -_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar) - 13356: 4602 mov r2, r0 - 13358: f248 0189 movw r1, #32905 ; 0x8089 - 1335c: 4658 mov r0, fp - 1335e: 47b0 blx r6 - style_init_reset(&styles->spinbox_cursor); - 13360: 6820 ldr r0, [r4, #0] - 13362: 3098 adds r0, #152 ; 0x98 - 13364: 47d0 blx sl - lv_style_set_bg_opa(&styles->spinbox_cursor, LV_STATE_DEFAULT, LV_OPA_COVER); - 13366: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar) - 13368: 22ff movs r2, #255 ; 0xff - 1336a: 212c movs r1, #44 ; 0x2c - 1336c: 3098 adds r0, #152 ; 0x98 - 1336e: 47c8 blx r9 - lv_style_set_bg_color(&styles->spinbox_cursor, LV_STATE_DEFAULT, theme.color_primary); - 13370: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar) - 13372: 89a2 ldrh r2, [r4, #12] - 13374: 2129 movs r1, #41 ; 0x29 - 13376: 3098 adds r0, #152 ; 0x98 - 13378: 47b0 blx r6 -_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar) - 1337a: 4b4d ldr r3, [pc, #308] ; (134b0 ) - lv_style_set_text_color(&styles->spinbox_cursor, LV_STATE_DEFAULT, LV_COLOR_WHITE); - 1337c: 6820 ldr r0, [r4, #0] - 1337e: 881a ldrh r2, [r3, #0] - 13380: f248 0189 movw r1, #32905 ; 0x8089 - 13384: 3098 adds r0, #152 ; 0x98 - 13386: 47b0 blx r6 - lv_style_set_pad_top(&styles->spinbox_cursor, LV_STATE_DEFAULT, LV_DPX(100)); - 13388: 6823 ldr r3, [r4, #0] - 1338a: 2000 movs r0, #0 - 1338c: f103 0998 add.w r9, r3, #152 ; 0x98 - 13390: 47c0 blx r8 - 13392: f04f 0b64 mov.w fp, #100 ; 0x64 - 13396: fb00 f00b mul.w r0, r0, fp - 1339a: 28ef cmp r0, #239 ; 0xef - 1339c: f340 860c ble.w 13fb8 - 133a0: 2000 movs r0, #0 - 133a2: 47c0 blx r8 - 133a4: 2250 movs r2, #80 ; 0x50 - 133a6: fb00 220b mla r2, r0, fp, r2 - 133aa: 23a0 movs r3, #160 ; 0xa0 - 133ac: fb92 f2f3 sdiv r2, r2, r3 - 133b0: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar) - 133b2: 4648 mov r0, r9 - 133b4: 2110 movs r1, #16 - 133b6: 47a8 blx r5 - lv_style_set_pad_bottom(&styles->spinbox_cursor, LV_STATE_DEFAULT, LV_DPX(100)); - 133b8: 6823 ldr r3, [r4, #0] - 133ba: 2000 movs r0, #0 - 133bc: f103 0998 add.w r9, r3, #152 ; 0x98 - 133c0: 47c0 blx r8 - 133c2: f04f 0b64 mov.w fp, #100 ; 0x64 - 133c6: fb00 f00b mul.w r0, r0, fp - 133ca: 28ef cmp r0, #239 ; 0xef - 133cc: f340 85f7 ble.w 13fbe - 133d0: 2000 movs r0, #0 - 133d2: 47c0 blx r8 - 133d4: 2250 movs r2, #80 ; 0x50 - 133d6: fb00 220b mla r2, r0, fp, r2 - 133da: 23a0 movs r3, #160 ; 0xa0 - 133dc: fb92 f2f3 sdiv r2, r2, r3 - 133e0: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar) - 133e2: 2111 movs r1, #17 - 133e4: 4648 mov r0, r9 - 133e6: 47a8 blx r5 - style_init_reset(&styles->list_bg); - 133e8: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar) - 133ea: f8df 90ec ldr.w r9, [pc, #236] ; 134d8 - 133ee: 3074 adds r0, #116 ; 0x74 - 133f0: 47d0 blx sl - lv_style_set_clip_corner(&styles->list_bg, LV_STATE_DEFAULT, true); - 133f2: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(CLIP_CORNER, clip_corner, bool, _int, scalar) - 133f4: 2201 movs r2, #1 - 133f6: 2102 movs r1, #2 - 133f8: 3074 adds r0, #116 ; 0x74 - 133fa: 47a8 blx r5 - lv_style_set_pad_left(&styles->list_bg, LV_STATE_DEFAULT, 0); - 133fc: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar) - 133fe: 2200 movs r2, #0 - 13400: 2112 movs r1, #18 - 13402: 3074 adds r0, #116 ; 0x74 - 13404: 47a8 blx r5 - lv_style_set_pad_right(&styles->list_bg, LV_STATE_DEFAULT, 0); - 13406: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar) - 13408: 2200 movs r2, #0 - 1340a: 2113 movs r1, #19 - 1340c: 3074 adds r0, #116 ; 0x74 - 1340e: 47a8 blx r5 - lv_style_set_pad_top(&styles->list_bg, LV_STATE_DEFAULT, 0); - 13410: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar) - 13412: 2200 movs r2, #0 - 13414: 2110 movs r1, #16 - 13416: 3074 adds r0, #116 ; 0x74 - 13418: 47a8 blx r5 - lv_style_set_pad_bottom(&styles->list_bg, LV_STATE_DEFAULT, 0); - 1341a: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar) - 1341c: 2200 movs r2, #0 - 1341e: 2111 movs r1, #17 - 13420: 3074 adds r0, #116 ; 0x74 - 13422: 47a8 blx r5 - lv_style_set_pad_inner(&styles->list_bg, LV_STATE_DEFAULT, 0); - 13424: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar) - 13426: 2200 movs r2, #0 - 13428: 2114 movs r1, #20 - 1342a: 3074 adds r0, #116 ; 0x74 - 1342c: 47a8 blx r5 - style_init_reset(&styles->list_btn); - 1342e: 6820 ldr r0, [r4, #0] - 13430: 3078 adds r0, #120 ; 0x78 - 13432: 47d0 blx sl - lv_style_set_bg_opa(&styles->list_btn, LV_STATE_DEFAULT, LV_OPA_COVER); - 13434: 6820 ldr r0, [r4, #0] - 13436: f8df a084 ldr.w sl, [pc, #132] ; 134bc -_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar) - 1343a: 3078 adds r0, #120 ; 0x78 - 1343c: 22ff movs r2, #255 ; 0xff - 1343e: 212c movs r1, #44 ; 0x2c - 13440: 47c8 blx r9 - lv_style_set_bg_color(&styles->list_btn, LV_STATE_DEFAULT, COLOR_BG); - 13442: 6823 ldr r3, [r4, #0] - 13444: f103 0878 add.w r8, r3, #120 ; 0x78 - 13448: 6a23 ldr r3, [r4, #32] - 1344a: 0798 lsls r0, r3, #30 - 1344c: bf54 ite pl - 1344e: 481e ldrpl r0, [pc, #120] ; (134c8 ) - 13450: f06f 407f mvnmi.w r0, #4278190080 ; 0xff000000 - 13454: 47b8 blx r7 -_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar) - 13456: 2129 movs r1, #41 ; 0x29 - 13458: 4602 mov r2, r0 - 1345a: 4640 mov r0, r8 - 1345c: 47b0 blx r6 - lv_style_set_bg_color(&styles->list_btn, LV_STATE_PRESSED, COLOR_BG_PR); - 1345e: 6823 ldr r3, [r4, #0] - 13460: f103 0878 add.w r8, r3, #120 ; 0x78 - 13464: 6a23 ldr r3, [r4, #32] - 13466: 0799 lsls r1, r3, #30 - 13468: bf4c ite mi - 1346a: 4818 ldrmi r0, [pc, #96] ; (134cc ) - 1346c: 4818 ldrpl r0, [pc, #96] ; (134d0 ) - 1346e: 47b8 blx r7 - 13470: f241 0129 movw r1, #4137 ; 0x1029 - 13474: 4602 mov r2, r0 - 13476: 4640 mov r0, r8 - 13478: 47b0 blx r6 - lv_style_set_bg_color(&styles->list_btn, LV_STATE_DISABLED, COLOR_BG_DIS); - 1347a: 6823 ldr r3, [r4, #0] - 1347c: f103 0878 add.w r8, r3, #120 ; 0x78 - 13480: 6a23 ldr r3, [r4, #32] - 13482: 079a lsls r2, r3, #30 - 13484: bf54 ite pl - 13486: 4810 ldrpl r0, [pc, #64] ; (134c8 ) - 13488: f06f 407f mvnmi.w r0, #4278190080 ; 0xff000000 - 1348c: 47b8 blx r7 - 1348e: f242 0129 movw r1, #8233 ; 0x2029 - 13492: 4602 mov r2, r0 - 13494: 4640 mov r0, r8 - 13496: 47b0 blx r6 - lv_style_set_bg_color(&styles->list_btn, LV_STATE_CHECKED, COLOR_BG_CHK); - 13498: 6820 ldr r0, [r4, #0] - 1349a: 89a2 ldrh r2, [r4, #12] - 1349c: f240 1129 movw r1, #297 ; 0x129 - 134a0: 3078 adds r0, #120 ; 0x78 - 134a2: 47b0 blx r6 - lv_style_set_bg_color(&styles->list_btn, LV_STATE_CHECKED | LV_STATE_PRESSED, COLOR_BG_PR_CHK); - 134a4: 6820 ldr r0, [r4, #0] - 134a6: 4b0b ldr r3, [pc, #44] ; (134d4 ) - 134a8: f100 0878 add.w r8, r0, #120 ; 0x78 - 134ac: e016 b.n 134dc - 134ae: bf00 nop - 134b0: 0002bcf6 .word 0x0002bcf6 - 134b4: 00cccfd1 .word 0x00cccfd1 - 134b8: 00777f85 .word 0x00777f85 - 134bc: 00010581 .word 0x00010581 - 134c0: 0031404f .word 0x0031404f - 134c4: 00a5a8ad .word 0x00a5a8ad - 134c8: 00586273 .word 0x00586273 - 134cc: 00eeeeee .word 0x00eeeeee - 134d0: 00494f57 .word 0x00494f57 - 134d4: 0000e613 .word 0x0000e613 - 134d8: 00005c9d .word 0x00005c9d - 134dc: 2133 movs r1, #51 ; 0x33 - 134de: 89a0 ldrh r0, [r4, #12] - 134e0: 4798 blx r3 - 134e2: f241 1129 movw r1, #4393 ; 0x1129 - 134e6: 4602 mov r2, r0 - 134e8: 4640 mov r0, r8 - 134ea: 47b0 blx r6 - lv_style_set_text_color(&styles->list_btn, LV_STATE_DEFAULT, COLOR_BG_TEXT); - 134ec: 6823 ldr r3, [r4, #0] - 134ee: f103 0878 add.w r8, r3, #120 ; 0x78 - 134f2: 6a23 ldr r3, [r4, #32] - 134f4: 079b lsls r3, r3, #30 - 134f6: bf4c ite mi - 134f8: 48ba ldrmi r0, [pc, #744] ; (137e4 ) - 134fa: f06f 407f mvnpl.w r0, #4278190080 ; 0xff000000 - 134fe: 47b8 blx r7 -_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar) - 13500: f248 0189 movw r1, #32905 ; 0x8089 - 13504: 4602 mov r2, r0 - 13506: 4640 mov r0, r8 - 13508: 47b0 blx r6 - lv_style_set_text_color(&styles->list_btn, LV_STATE_CHECKED, COLOR_BG_TEXT_CHK); - 1350a: 6820 ldr r0, [r4, #0] - 1350c: f100 0878 add.w r8, r0, #120 ; 0x78 - 13510: f06f 407f mvn.w r0, #4278190080 ; 0xff000000 - 13514: 47b8 blx r7 - 13516: f248 1189 movw r1, #33161 ; 0x8189 - 1351a: 4602 mov r2, r0 - 1351c: 4640 mov r0, r8 - 1351e: 47b0 blx r6 - lv_style_set_text_color(&styles->list_btn, LV_STATE_DISABLED, COLOR_BG_TEXT_DIS); - 13520: 6823 ldr r3, [r4, #0] - 13522: f103 0878 add.w r8, r3, #120 ; 0x78 - 13526: 6a23 ldr r3, [r4, #32] - 13528: f013 0f02 tst.w r3, #2 - 1352c: bf14 ite ne - 1352e: f640 20aa movwne r0, #2730 ; 0xaaa - 13532: f640 1099 movweq r0, #2457 ; 0x999 - 13536: 47d0 blx sl - 13538: f24a 0189 movw r1, #41097 ; 0xa089 - 1353c: 4602 mov r2, r0 - 1353e: 4640 mov r0, r8 - 13540: 47b0 blx r6 - lv_style_set_image_recolor(&styles->list_btn, LV_STATE_DEFAULT, COLOR_BG_TEXT); - 13542: 6823 ldr r3, [r4, #0] - 13544: f103 0878 add.w r8, r3, #120 ; 0x78 - 13548: 6a23 ldr r3, [r4, #32] - lv_style_set_image_recolor(&styles->list_btn, LV_STATE_CHECKED, COLOR_BG_TEXT_CHK); - 1354a: 4ca7 ldr r4, [pc, #668] ; (137e8 ) - lv_style_set_image_recolor(&styles->list_btn, LV_STATE_DEFAULT, COLOR_BG_TEXT); - 1354c: 0798 lsls r0, r3, #30 - 1354e: bf4c ite mi - 13550: 48a4 ldrmi r0, [pc, #656] ; (137e4 ) - 13552: f06f 407f mvnpl.w r0, #4278190080 ; 0xff000000 - 13556: 47b8 blx r7 -_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_RECOLOR, image_recolor, lv_color_t, _color, nonscalar) - 13558: f248 01a9 movw r1, #32937 ; 0x80a9 - 1355c: 4602 mov r2, r0 - 1355e: 4640 mov r0, r8 - 13560: 47b0 blx r6 - lv_style_set_image_recolor(&styles->list_btn, LV_STATE_CHECKED, COLOR_BG_TEXT_CHK); - 13562: 6820 ldr r0, [r4, #0] - 13564: f100 0878 add.w r8, r0, #120 ; 0x78 - 13568: f06f 407f mvn.w r0, #4278190080 ; 0xff000000 - 1356c: 47b8 blx r7 - 1356e: f248 11a9 movw r1, #33193 ; 0x81a9 - 13572: 4602 mov r2, r0 - 13574: 4640 mov r0, r8 - 13576: 47b0 blx r6 - lv_style_set_image_recolor(&styles->list_btn, LV_STATE_DISABLED, COLOR_BG_TEXT_DIS); - 13578: 6823 ldr r3, [r4, #0] - 1357a: f103 0878 add.w r8, r3, #120 ; 0x78 - 1357e: 6a23 ldr r3, [r4, #32] - 13580: 0799 lsls r1, r3, #30 - 13582: bf4c ite mi - 13584: f640 20aa movwmi r0, #2730 ; 0xaaa - 13588: f640 1099 movwpl r0, #2457 ; 0x999 - 1358c: 47d0 blx sl - 1358e: f24a 01a9 movw r1, #41129 ; 0xa0a9 - 13592: 4602 mov r2, r0 - 13594: 4640 mov r0, r8 - 13596: 47b0 blx r6 - lv_style_set_border_side(&styles->list_btn, LV_STATE_DEFAULT, LV_BORDER_SIDE_BOTTOM); - 13598: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar) - 1359a: 4e94 ldr r6, [pc, #592] ; (137ec ) - lv_style_set_pad_left(&styles->list_btn, LV_STATE_DEFAULT, PAD_DEF); - 1359c: f8df 8268 ldr.w r8, [pc, #616] ; 13808 -_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_SIDE, border_side, lv_border_side_t, _int, scalar) - 135a0: 2201 movs r2, #1 - 135a2: 3078 adds r0, #120 ; 0x78 - 135a4: 2131 movs r1, #49 ; 0x31 - 135a6: 47a8 blx r5 - lv_style_set_border_color(&styles->list_btn, LV_STATE_DEFAULT, COLOR_BG_BORDER); - 135a8: 6a23 ldr r3, [r4, #32] - 135aa: 6825 ldr r5, [r4, #0] - 135ac: 079a lsls r2, r3, #30 - 135ae: bf4c ite mi - 135b0: 488f ldrmi r0, [pc, #572] ; (137f0 ) - 135b2: 4890 ldrpl r0, [pc, #576] ; (137f4 ) - 135b4: 47b8 blx r7 - 135b6: 3578 adds r5, #120 ; 0x78 -_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar) - 135b8: 4602 mov r2, r0 - 135ba: 4f8f ldr r7, [pc, #572] ; (137f8 ) - 135bc: 4628 mov r0, r5 - 135be: 2139 movs r1, #57 ; 0x39 - 135c0: 47b8 blx r7 - lv_style_set_border_color(&styles->list_btn, LV_STATE_FOCUSED, theme.color_primary); - 135c2: 6820 ldr r0, [r4, #0] - 135c4: 89a2 ldrh r2, [r4, #12] - 135c6: 4d8d ldr r5, [pc, #564] ; (137fc ) - 135c8: f240 2139 movw r1, #569 ; 0x239 - 135cc: 3078 adds r0, #120 ; 0x78 - 135ce: 47b8 blx r7 - lv_style_set_border_width(&styles->list_btn, LV_STATE_DEFAULT, 1); - 135d0: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar) - 135d2: 2201 movs r2, #1 - 135d4: 2130 movs r1, #48 ; 0x30 - 135d6: 3078 adds r0, #120 ; 0x78 - 135d8: 47b0 blx r6 - lv_style_set_pad_left(&styles->list_btn, LV_STATE_DEFAULT, PAD_DEF); - 135da: 6823 ldr r3, [r4, #0] - 135dc: 2000 movs r0, #0 - 135de: f103 0b78 add.w fp, r3, #120 ; 0x78 - 135e2: 47c0 blx r8 - 135e4: 2801 cmp r0, #1 - 135e6: f04f 0000 mov.w r0, #0 - 135ea: f200 84f7 bhi.w 13fdc - 135ee: 47a8 blx r5 - 135f0: ebc0 1000 rsb r0, r0, r0, lsl #4 - 135f4: 28ef cmp r0, #239 ; 0xef - 135f6: f300 84e5 bgt.w 13fc4 - 135fa: 2201 movs r2, #1 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar) - 135fc: 4658 mov r0, fp - 135fe: 2112 movs r1, #18 - 13600: 47b0 blx r6 - lv_style_set_pad_right(&styles->list_btn, LV_STATE_DEFAULT, PAD_DEF); - 13602: 6823 ldr r3, [r4, #0] - 13604: 2000 movs r0, #0 - 13606: f103 0b78 add.w fp, r3, #120 ; 0x78 - 1360a: 47c0 blx r8 - 1360c: 2801 cmp r0, #1 - 1360e: f04f 0000 mov.w r0, #0 - 13612: f200 84fa bhi.w 1400a - 13616: 47a8 blx r5 - 13618: ebc0 1000 rsb r0, r0, r0, lsl #4 - 1361c: 28ef cmp r0, #239 ; 0xef - 1361e: f300 84e8 bgt.w 13ff2 - 13622: 2201 movs r2, #1 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar) - 13624: 4658 mov r0, fp - 13626: 2113 movs r1, #19 - 13628: 47b0 blx r6 - lv_style_set_pad_top(&styles->list_btn, LV_STATE_DEFAULT, PAD_DEF); - 1362a: 6823 ldr r3, [r4, #0] - 1362c: 2000 movs r0, #0 - 1362e: f103 0b78 add.w fp, r3, #120 ; 0x78 - 13632: 47c0 blx r8 - 13634: 2801 cmp r0, #1 - 13636: f04f 0000 mov.w r0, #0 - 1363a: f200 84fd bhi.w 14038 - 1363e: 47a8 blx r5 - 13640: ebc0 1000 rsb r0, r0, r0, lsl #4 - 13644: 28ef cmp r0, #239 ; 0xef - 13646: f300 84eb bgt.w 14020 - 1364a: 2201 movs r2, #1 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar) - 1364c: 4658 mov r0, fp - 1364e: 2110 movs r1, #16 - 13650: 47b0 blx r6 - lv_style_set_pad_bottom(&styles->list_btn, LV_STATE_DEFAULT, PAD_DEF); - 13652: 6823 ldr r3, [r4, #0] - 13654: 2000 movs r0, #0 - 13656: f103 0b78 add.w fp, r3, #120 ; 0x78 - 1365a: 47c0 blx r8 - 1365c: 2801 cmp r0, #1 - 1365e: f04f 0000 mov.w r0, #0 - 13662: f200 8500 bhi.w 14066 - 13666: 47a8 blx r5 - 13668: ebc0 1000 rsb r0, r0, r0, lsl #4 - 1366c: 28ef cmp r0, #239 ; 0xef - 1366e: f300 84ee bgt.w 1404e - 13672: 2201 movs r2, #1 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar) - 13674: 4658 mov r0, fp - 13676: 2111 movs r1, #17 - 13678: 47b0 blx r6 - lv_style_set_pad_inner(&styles->list_btn, LV_STATE_DEFAULT, PAD_DEF); - 1367a: 6823 ldr r3, [r4, #0] - 1367c: 2000 movs r0, #0 - 1367e: f103 0b78 add.w fp, r3, #120 ; 0x78 - 13682: 47c0 blx r8 - 13684: 2801 cmp r0, #1 - 13686: f04f 0000 mov.w r0, #0 - 1368a: f200 8503 bhi.w 14094 - 1368e: 47a8 blx r5 - 13690: ebc0 1000 rsb r0, r0, r0, lsl #4 - 13694: 28ef cmp r0, #239 ; 0xef - 13696: f300 84f1 bgt.w 1407c - 1369a: 2201 movs r2, #1 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar) - 1369c: 4658 mov r0, fp - 1369e: 2114 movs r1, #20 - 136a0: 47b0 blx r6 - lv_style_set_transform_width(&styles->list_btn, LV_STATE_DEFAULT, - PAD_DEF); - 136a2: 6823 ldr r3, [r4, #0] - 136a4: 2000 movs r0, #0 - 136a6: f103 0b78 add.w fp, r3, #120 ; 0x78 - 136aa: 47c0 blx r8 - 136ac: 2801 cmp r0, #1 - 136ae: f04f 0000 mov.w r0, #0 - 136b2: f200 8507 bhi.w 140c4 - 136b6: 47a8 blx r5 - 136b8: ebc0 1000 rsb r0, r0, r0, lsl #4 - 136bc: 28ef cmp r0, #239 ; 0xef - 136be: f300 84f4 bgt.w 140aa - 136c2: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff -_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_WIDTH, transform_width, lv_style_int_t, _int, scalar) - 136c6: 4658 mov r0, fp - 136c8: 2104 movs r1, #4 - 136ca: 47b0 blx r6 - lv_style_set_transform_width(&styles->list_btn, LV_STATE_PRESSED, 0); - 136cc: 6820 ldr r0, [r4, #0] - style_init_reset(&styles->ddlist_page); - 136ce: f8df b13c ldr.w fp, [pc, #316] ; 1380c - 136d2: 2200 movs r2, #0 - 136d4: f241 0104 movw r1, #4100 ; 0x1004 - 136d8: 3078 adds r0, #120 ; 0x78 - 136da: 47b0 blx r6 - lv_style_set_transform_width(&styles->list_btn, LV_STATE_CHECKED, 0); - 136dc: 6820 ldr r0, [r4, #0] - 136de: 2200 movs r2, #0 - 136e0: f44f 7182 mov.w r1, #260 ; 0x104 - 136e4: 3078 adds r0, #120 ; 0x78 - 136e6: 47b0 blx r6 - lv_style_set_transform_width(&styles->list_btn, LV_STATE_DISABLED, 0); - 136e8: 6820 ldr r0, [r4, #0] - 136ea: 2200 movs r2, #0 - 136ec: f242 0104 movw r1, #8196 ; 0x2004 - 136f0: 3078 adds r0, #120 ; 0x78 - 136f2: 47b0 blx r6 - lv_style_set_transition_time(&styles->list_btn, LV_STATE_DEFAULT, TRANSITION_TIME); - 136f4: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_TIME, transition_time, lv_style_int_t, _int, scalar) - 136f6: 2296 movs r2, #150 ; 0x96 - 136f8: 21b0 movs r1, #176 ; 0xb0 - 136fa: 3078 adds r0, #120 ; 0x78 - 136fc: 47b0 blx r6 - lv_style_set_transition_prop_6(&styles->list_btn, LV_STATE_DEFAULT, LV_STYLE_BG_COLOR); - 136fe: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_6, transition_prop_6, lv_style_int_t, _int, scalar) - 13700: 2229 movs r2, #41 ; 0x29 - 13702: 21b7 movs r1, #183 ; 0xb7 - 13704: 3078 adds r0, #120 ; 0x78 - 13706: 47b0 blx r6 - lv_style_set_transition_prop_5(&styles->list_btn, LV_STATE_DEFAULT, LV_STYLE_TRANSFORM_WIDTH); - 13708: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_5, transition_prop_5, lv_style_int_t, _int, scalar) - 1370a: 2204 movs r2, #4 - 1370c: 21b6 movs r1, #182 ; 0xb6 - 1370e: 3078 adds r0, #120 ; 0x78 - 13710: 47b0 blx r6 - style_init_reset(&styles->ddlist_page); - 13712: 6820 ldr r0, [r4, #0] - 13714: 3054 adds r0, #84 ; 0x54 - 13716: 47d8 blx fp - lv_style_set_text_line_space(&styles->ddlist_page, LV_STATE_DEFAULT, LV_DPX(20)); - 13718: 6823 ldr r3, [r4, #0] - 1371a: 2000 movs r0, #0 - 1371c: f103 0854 add.w r8, r3, #84 ; 0x54 - 13720: 47a8 blx r5 - 13722: eb00 0080 add.w r0, r0, r0, lsl #2 - 13726: 0080 lsls r0, r0, #2 - 13728: 28ef cmp r0, #239 ; 0xef - 1372a: f8cd b004 str.w fp, [sp, #4] - 1372e: f340 84d4 ble.w 140da - 13732: 2000 movs r0, #0 - 13734: 47a8 blx r5 - 13736: 2314 movs r3, #20 - 13738: 2250 movs r2, #80 ; 0x50 - 1373a: fb00 2203 mla r2, r0, r3, r2 - 1373e: 23a0 movs r3, #160 ; 0xa0 - 13740: fb92 f2f3 sdiv r2, r2, r3 - 13744: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LINE_SPACE, text_line_space, lv_style_int_t, _int, scalar) - 13746: 4640 mov r0, r8 - 13748: f248 0181 movw r1, #32897 ; 0x8081 - 1374c: 47b0 blx r6 - lv_style_set_clip_corner(&styles->ddlist_page, LV_STATE_DEFAULT, true); - 1374e: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(CLIP_CORNER, clip_corner, bool, _int, scalar) - 13750: 2201 movs r2, #1 - 13752: 2102 movs r1, #2 - 13754: 3054 adds r0, #84 ; 0x54 - 13756: 47b0 blx r6 - style_init_reset(&styles->ddlist_sel); - 13758: 6820 ldr r0, [r4, #0] - 1375a: 9b01 ldr r3, [sp, #4] - 1375c: 3058 adds r0, #88 ; 0x58 - 1375e: 4798 blx r3 - lv_style_set_bg_opa(&styles->ddlist_sel, LV_STATE_DEFAULT, LV_OPA_COVER); - 13760: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar) - 13762: 22ff movs r2, #255 ; 0xff - 13764: 212c movs r1, #44 ; 0x2c - 13766: 3058 adds r0, #88 ; 0x58 - 13768: 47c8 blx r9 - lv_style_set_bg_color(&styles->ddlist_sel, LV_STATE_DEFAULT, theme.color_primary); - 1376a: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar) - 1376c: 89a2 ldrh r2, [r4, #12] - 1376e: 2129 movs r1, #41 ; 0x29 - 13770: 3058 adds r0, #88 ; 0x58 - 13772: 47b8 blx r7 - lv_style_set_text_color(&styles->ddlist_sel, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex3(0xfff) : lv_color_hex3(0xfff)); - 13774: 6823 ldr r3, [r4, #0] - 13776: f640 70ff movw r0, #4095 ; 0xfff - 1377a: f103 0858 add.w r8, r3, #88 ; 0x58 - 1377e: 47d0 blx sl -_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar) - 13780: f248 0189 movw r1, #32905 ; 0x8089 - 13784: 4602 mov r2, r0 - 13786: 4640 mov r0, r8 - 13788: 47b8 blx r7 - lv_style_set_bg_color(&styles->ddlist_sel, LV_STATE_PRESSED, COLOR_BG_PR); - 1378a: 6823 ldr r3, [r4, #0] - 1378c: f8df 8080 ldr.w r8, [pc, #128] ; 13810 - 13790: f103 0b58 add.w fp, r3, #88 ; 0x58 - 13794: 6a23 ldr r3, [r4, #32] - 13796: f013 0f02 tst.w r3, #2 - 1379a: bf14 ite ne - 1379c: 4818 ldrne r0, [pc, #96] ; (13800 ) - 1379e: 4819 ldreq r0, [pc, #100] ; (13804 ) - 137a0: 47c0 blx r8 -_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar) - 137a2: f241 0129 movw r1, #4137 ; 0x1029 - 137a6: 4602 mov r2, r0 - 137a8: 4658 mov r0, fp - 137aa: 47b8 blx r7 - lv_style_set_text_color(&styles->ddlist_sel, LV_STATE_PRESSED, COLOR_BG_TEXT_PR); - 137ac: 6823 ldr r3, [r4, #0] - 137ae: f103 0b58 add.w fp, r3, #88 ; 0x58 - 137b2: 6a23 ldr r3, [r4, #32] - 137b4: 079b lsls r3, r3, #30 - 137b6: bf4c ite mi - 137b8: 480a ldrmi r0, [pc, #40] ; (137e4 ) - 137ba: f06f 407f mvnpl.w r0, #4278190080 ; 0xff000000 - 137be: 47c0 blx r8 -_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar) - 137c0: f249 0189 movw r1, #37001 ; 0x9089 - 137c4: 4602 mov r2, r0 - 137c6: 4658 mov r0, fp - 137c8: 47b8 blx r7 - style_init_reset(&styles->roller_bg); - 137ca: 6820 ldr r0, [r4, #0] - 137cc: 9b01 ldr r3, [sp, #4] - 137ce: 3088 adds r0, #136 ; 0x88 - 137d0: 4798 blx r3 - lv_style_set_text_line_space(&styles->roller_bg, LV_STATE_DEFAULT, LV_DPX(25)); - 137d2: 6823 ldr r3, [r4, #0] - 137d4: 2000 movs r0, #0 - 137d6: f103 0888 add.w r8, r3, #136 ; 0x88 - 137da: 47a8 blx r5 - 137dc: eb00 0080 add.w r0, r0, r0, lsl #2 - 137e0: e018 b.n 13814 - 137e2: bf00 nop - 137e4: 003b3e42 .word 0x003b3e42 - 137e8: 200057a4 .word 0x200057a4 - 137ec: 00005afd .word 0x00005afd - 137f0: 00d6dde3 .word 0x00d6dde3 - 137f4: 00808a97 .word 0x00808a97 - 137f8: 00005bcd .word 0x00005bcd - 137fc: 0000dbd5 .word 0x0000dbd5 - 13800: 00eeeeee .word 0x00eeeeee - 13804: 00494f57 .word 0x00494f57 - 13808: 0000dbed .word 0x0000dbed - 1380c: 00010d4d .word 0x00010d4d - 13810: 0001112d .word 0x0001112d - 13814: eb00 0080 add.w r0, r0, r0, lsl #2 - 13818: 28ef cmp r0, #239 ; 0xef - 1381a: f340 8461 ble.w 140e0 - 1381e: 2000 movs r0, #0 - 13820: 47a8 blx r5 - 13822: 2319 movs r3, #25 - 13824: 2250 movs r2, #80 ; 0x50 - 13826: fb00 2203 mla r2, r0, r3, r2 - 1382a: 23a0 movs r3, #160 ; 0xa0 - 1382c: fb92 f2f3 sdiv r2, r2, r3 - 13830: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LINE_SPACE, text_line_space, lv_style_int_t, _int, scalar) - 13832: f248 0181 movw r1, #32897 ; 0x8081 - 13836: 4640 mov r0, r8 - 13838: 47b0 blx r6 - style_init_reset(&styles->roller_sel); - 1383a: 6820 ldr r0, [r4, #0] - 1383c: f8df 8308 ldr.w r8, [pc, #776] ; 13b48 - 13840: 308c adds r0, #140 ; 0x8c - 13842: 47c0 blx r8 - lv_style_set_bg_opa(&styles->roller_sel, LV_STATE_DEFAULT, LV_OPA_COVER); - 13844: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar) - 13846: 22ff movs r2, #255 ; 0xff - 13848: 212c movs r1, #44 ; 0x2c - 1384a: 308c adds r0, #140 ; 0x8c - 1384c: 47c8 blx r9 - lv_style_set_bg_color(&styles->roller_sel, LV_STATE_DEFAULT, theme.color_primary); - 1384e: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar) - 13850: 89a2 ldrh r2, [r4, #12] - 13852: 2129 movs r1, #41 ; 0x29 - 13854: 308c adds r0, #140 ; 0x8c - 13856: 47b8 blx r7 -_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar) - 13858: 4bb4 ldr r3, [pc, #720] ; (13b2c ) - lv_style_set_text_color(&styles->roller_sel, LV_STATE_DEFAULT, LV_COLOR_WHITE); - 1385a: 6820 ldr r0, [r4, #0] - 1385c: 881a ldrh r2, [r3, #0] - 1385e: f248 0189 movw r1, #32905 ; 0x8089 - 13862: 308c adds r0, #140 ; 0x8c - 13864: 47b8 blx r7 - style_init_reset(&styles->tabview_btns_bg); - 13866: 6820 ldr r0, [r4, #0] - 13868: 30a8 adds r0, #168 ; 0xa8 - 1386a: 47c0 blx r8 - lv_style_set_bg_opa(&styles->tabview_btns_bg, LV_STATE_DEFAULT, LV_OPA_COVER); - 1386c: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar) - 1386e: 22ff movs r2, #255 ; 0xff - 13870: 30a8 adds r0, #168 ; 0xa8 - 13872: 212c movs r1, #44 ; 0x2c - 13874: 47c8 blx r9 - lv_style_set_bg_color(&styles->tabview_btns_bg, LV_STATE_DEFAULT, COLOR_BG); - 13876: 6823 ldr r3, [r4, #0] - 13878: f8cd 8004 str.w r8, [sp, #4] - 1387c: f103 0ba8 add.w fp, r3, #168 ; 0xa8 - 13880: 6a23 ldr r3, [r4, #32] - 13882: f8df 82c8 ldr.w r8, [pc, #712] ; 13b4c - 13886: f013 0f02 tst.w r3, #2 - 1388a: bf0c ite eq - 1388c: 48a8 ldreq r0, [pc, #672] ; (13b30 ) - 1388e: f06f 407f mvnne.w r0, #4278190080 ; 0xff000000 - 13892: 47c0 blx r8 -_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar) - 13894: 2129 movs r1, #41 ; 0x29 - 13896: 4602 mov r2, r0 - 13898: 4658 mov r0, fp - 1389a: 47b8 blx r7 - lv_style_set_border_color(&styles->tabview_btns_bg, LV_STATE_DEFAULT, - 1389c: 6823 ldr r3, [r4, #0] - 1389e: f103 0ba8 add.w fp, r3, #168 ; 0xa8 - IS_LIGHT ? lv_color_hex(0xe4eaf0) : lv_color_hex(0x3b3e42)); - 138a2: 6a23 ldr r3, [r4, #32] - lv_style_set_border_color(&styles->tabview_btns_bg, LV_STATE_DEFAULT, - 138a4: 0798 lsls r0, r3, #30 - IS_LIGHT ? lv_color_hex(0xe4eaf0) : lv_color_hex(0x3b3e42)); - 138a6: bf4c ite mi - 138a8: 48a2 ldrmi r0, [pc, #648] ; (13b34 ) - 138aa: 48a3 ldrpl r0, [pc, #652] ; (13b38 ) - 138ac: 47c0 blx r8 -_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar) - 138ae: 2139 movs r1, #57 ; 0x39 - 138b0: 4602 mov r2, r0 - 138b2: 4658 mov r0, fp - 138b4: 47b8 blx r7 - lv_style_set_border_width(&styles->tabview_btns_bg, LV_STATE_DEFAULT, LV_DPX(5)); - 138b6: 6823 ldr r3, [r4, #0] - 138b8: 2000 movs r0, #0 - 138ba: f103 0ba8 add.w fp, r3, #168 ; 0xa8 - 138be: 47a8 blx r5 - 138c0: eb00 0080 add.w r0, r0, r0, lsl #2 - 138c4: 28ef cmp r0, #239 ; 0xef - 138c6: f340 840e ble.w 140e6 - 138ca: 2000 movs r0, #0 - 138cc: 47a8 blx r5 - 138ce: 2305 movs r3, #5 - 138d0: 2250 movs r2, #80 ; 0x50 - 138d2: fb00 2203 mla r2, r0, r3, r2 - 138d6: 23a0 movs r3, #160 ; 0xa0 - 138d8: fb92 f2f3 sdiv r2, r2, r3 - 138dc: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar) - 138de: 4658 mov r0, fp - 138e0: 2130 movs r1, #48 ; 0x30 - 138e2: 47b0 blx r6 - lv_style_set_border_side(&styles->tabview_btns_bg, LV_STATE_DEFAULT, LV_BORDER_SIDE_BOTTOM); - 138e4: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_SIDE, border_side, lv_border_side_t, _int, scalar) - 138e6: 2201 movs r2, #1 - 138e8: 30a8 adds r0, #168 ; 0xa8 - 138ea: 2131 movs r1, #49 ; 0x31 - 138ec: 47b0 blx r6 - lv_style_set_text_color(&styles->tabview_btns_bg, LV_STATE_DEFAULT, COLOR_SCR_TEXT); - 138ee: 6823 ldr r3, [r4, #0] - 138f0: f103 0ba8 add.w fp, r3, #168 ; 0xa8 - 138f4: 6a23 ldr r3, [r4, #32] - 138f6: 0799 lsls r1, r3, #30 - 138f8: bf4c ite mi - 138fa: 488f ldrmi r0, [pc, #572] ; (13b38 ) - 138fc: 488f ldrpl r0, [pc, #572] ; (13b3c ) - 138fe: 47c0 blx r8 -_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar) - 13900: f248 0189 movw r1, #32905 ; 0x8089 - 13904: 4602 mov r2, r0 - 13906: 4658 mov r0, fp - 13908: 47b8 blx r7 - lv_style_set_text_font(&styles->tabview_btns_bg, LV_STATE_DEFAULT, theme.font_normal); - 1390a: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar) - 1390c: 6962 ldr r2, [r4, #20] - 1390e: 4b8c ldr r3, [pc, #560] ; (13b40 ) - 13910: f248 018e movw r1, #32910 ; 0x808e - 13914: 30a8 adds r0, #168 ; 0xa8 - 13916: 4798 blx r3 - lv_style_set_image_recolor(&styles->tabview_btns_bg, LV_STATE_DEFAULT, lv_color_hex(0x979a9f)); - 13918: 6823 ldr r3, [r4, #0] - 1391a: 488a ldr r0, [pc, #552] ; (13b44 ) - 1391c: f103 0ba8 add.w fp, r3, #168 ; 0xa8 - 13920: 47c0 blx r8 -_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_RECOLOR, image_recolor, lv_color_t, _color, nonscalar) - 13922: f248 01a9 movw r1, #32937 ; 0x80a9 - 13926: 4602 mov r2, r0 - 13928: 4658 mov r0, fp - 1392a: 47b8 blx r7 - lv_style_set_pad_top(&styles->tabview_btns_bg, LV_STATE_DEFAULT, LV_DPX(7)); - 1392c: 6823 ldr r3, [r4, #0] - 1392e: 2000 movs r0, #0 - 13930: f103 0ba8 add.w fp, r3, #168 ; 0xa8 - 13934: 47a8 blx r5 - 13936: ebc0 00c0 rsb r0, r0, r0, lsl #3 - 1393a: 28ef cmp r0, #239 ; 0xef - 1393c: f340 83d6 ble.w 140ec - 13940: 2000 movs r0, #0 - 13942: 47a8 blx r5 - 13944: 2307 movs r3, #7 - 13946: 2250 movs r2, #80 ; 0x50 - 13948: fb00 2203 mla r2, r0, r3, r2 - 1394c: 23a0 movs r3, #160 ; 0xa0 - 1394e: fb92 f2f3 sdiv r2, r2, r3 - 13952: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar) - 13954: 4658 mov r0, fp - 13956: 2110 movs r1, #16 - 13958: 47b0 blx r6 - lv_style_set_pad_left(&styles->tabview_btns_bg, LV_STATE_DEFAULT, LV_DPX(7)); - 1395a: 6823 ldr r3, [r4, #0] - 1395c: 2000 movs r0, #0 - 1395e: f103 0ba8 add.w fp, r3, #168 ; 0xa8 - 13962: 47a8 blx r5 - 13964: ebc0 00c0 rsb r0, r0, r0, lsl #3 - 13968: 28ef cmp r0, #239 ; 0xef - 1396a: f340 83c1 ble.w 140f0 - 1396e: 2000 movs r0, #0 - 13970: 47a8 blx r5 - 13972: 2307 movs r3, #7 - 13974: 2250 movs r2, #80 ; 0x50 - 13976: fb00 2203 mla r2, r0, r3, r2 - 1397a: 23a0 movs r3, #160 ; 0xa0 - 1397c: fb92 f2f3 sdiv r2, r2, r3 - 13980: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar) - 13982: 4658 mov r0, fp - 13984: 2112 movs r1, #18 - 13986: 47b0 blx r6 - lv_style_set_pad_right(&styles->tabview_btns_bg, LV_STATE_DEFAULT, LV_DPX(7)); - 13988: 6823 ldr r3, [r4, #0] - 1398a: 2000 movs r0, #0 - 1398c: f103 0ba8 add.w fp, r3, #168 ; 0xa8 - 13990: 47a8 blx r5 - 13992: ebc0 00c0 rsb r0, r0, r0, lsl #3 - 13996: 28ef cmp r0, #239 ; 0xef - 13998: f340 83ac ble.w 140f4 - 1399c: 2000 movs r0, #0 - 1399e: 47a8 blx r5 - 139a0: 2307 movs r3, #7 - 139a2: 2250 movs r2, #80 ; 0x50 - 139a4: fb00 2203 mla r2, r0, r3, r2 - 139a8: 23a0 movs r3, #160 ; 0xa0 - 139aa: fb92 f2f3 sdiv r2, r2, r3 - 139ae: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar) - 139b0: 2113 movs r1, #19 - 139b2: 4658 mov r0, fp - 139b4: 47b0 blx r6 - style_init_reset(&styles->tabview_btns); - 139b6: 6820 ldr r0, [r4, #0] - 139b8: 9b01 ldr r3, [sp, #4] - 139ba: 30a4 adds r0, #164 ; 0xa4 - 139bc: 4798 blx r3 - lv_style_set_bg_opa(&styles->tabview_btns, LV_STATE_PRESSED, LV_OPA_50); - 139be: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar) - 139c0: 227f movs r2, #127 ; 0x7f - 139c2: f241 012c movw r1, #4140 ; 0x102c - 139c6: 30a4 adds r0, #164 ; 0xa4 - 139c8: 47c8 blx r9 - lv_style_set_bg_color(&styles->tabview_btns, LV_STATE_PRESSED, lv_color_hex3(0x888)); - 139ca: 6823 ldr r3, [r4, #0] - 139cc: f640 0088 movw r0, #2184 ; 0x888 - 139d0: f103 0ba4 add.w fp, r3, #164 ; 0xa4 - 139d4: 47d0 blx sl -_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar) - 139d6: f241 0129 movw r1, #4137 ; 0x1029 - 139da: 4602 mov r2, r0 - 139dc: 4658 mov r0, fp - 139de: 47b8 blx r7 - lv_style_set_text_color(&styles->tabview_btns, LV_STATE_CHECKED, COLOR_SCR_TEXT); - 139e0: 6823 ldr r3, [r4, #0] - 139e2: f103 0aa4 add.w sl, r3, #164 ; 0xa4 - 139e6: 6a23 ldr r3, [r4, #32] - 139e8: 079a lsls r2, r3, #30 - 139ea: bf4c ite mi - 139ec: 4852 ldrmi r0, [pc, #328] ; (13b38 ) - 139ee: 4853 ldrpl r0, [pc, #332] ; (13b3c ) - 139f0: 47c0 blx r8 -_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar) - 139f2: f248 1189 movw r1, #33161 ; 0x8189 - 139f6: 4602 mov r2, r0 - 139f8: 4650 mov r0, sl - 139fa: 47b8 blx r7 - lv_style_set_pad_top(&styles->tabview_btns, LV_STATE_DEFAULT, LV_DPX(20)); - 139fc: 6823 ldr r3, [r4, #0] - 139fe: 2000 movs r0, #0 - 13a00: f103 0aa4 add.w sl, r3, #164 ; 0xa4 - 13a04: 47a8 blx r5 - 13a06: eb00 0080 add.w r0, r0, r0, lsl #2 - 13a0a: 0080 lsls r0, r0, #2 - 13a0c: 28ef cmp r0, #239 ; 0xef - 13a0e: f340 8373 ble.w 140f8 - 13a12: 2000 movs r0, #0 - 13a14: 47a8 blx r5 - 13a16: 2314 movs r3, #20 - 13a18: 2250 movs r2, #80 ; 0x50 - 13a1a: fb00 2203 mla r2, r0, r3, r2 - 13a1e: 23a0 movs r3, #160 ; 0xa0 - 13a20: fb92 f2f3 sdiv r2, r2, r3 - 13a24: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar) - 13a26: 4650 mov r0, sl - 13a28: 2110 movs r1, #16 - 13a2a: 47b0 blx r6 - lv_style_set_pad_bottom(&styles->tabview_btns, LV_STATE_DEFAULT, LV_DPX(20)); - 13a2c: 6823 ldr r3, [r4, #0] - 13a2e: 2000 movs r0, #0 - 13a30: f103 0aa4 add.w sl, r3, #164 ; 0xa4 - 13a34: 47a8 blx r5 - 13a36: eb00 0080 add.w r0, r0, r0, lsl #2 - 13a3a: 0080 lsls r0, r0, #2 - 13a3c: 28ef cmp r0, #239 ; 0xef - 13a3e: f340 835d ble.w 140fc - 13a42: 2000 movs r0, #0 - 13a44: 47a8 blx r5 - 13a46: 2314 movs r3, #20 - 13a48: 2250 movs r2, #80 ; 0x50 - 13a4a: fb00 2203 mla r2, r0, r3, r2 - 13a4e: 23a0 movs r3, #160 ; 0xa0 - 13a50: fb92 f2f3 sdiv r2, r2, r3 - 13a54: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar) - 13a56: 2111 movs r1, #17 - 13a58: 4650 mov r0, sl - 13a5a: 47b0 blx r6 - lv_style_set_text_color(&styles->tabview_btns, LV_STATE_FOCUSED, theme.color_primary); - 13a5c: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar) - 13a5e: 89a2 ldrh r2, [r4, #12] - 13a60: f248 2189 movw r1, #33417 ; 0x8289 - 13a64: 30a4 adds r0, #164 ; 0xa4 - 13a66: 47b8 blx r7 - lv_style_set_text_color(&styles->tabview_btns, LV_STATE_EDITED, theme.color_secondary); - 13a68: 6820 ldr r0, [r4, #0] - 13a6a: 89e2 ldrh r2, [r4, #14] - 13a6c: f248 4189 movw r1, #33929 ; 0x8489 - 13a70: 30a4 adds r0, #164 ; 0xa4 - 13a72: 47b8 blx r7 - style_init_reset(&styles->tabview_indic); - 13a74: 6820 ldr r0, [r4, #0] - 13a76: 9b01 ldr r3, [sp, #4] - 13a78: 30ac adds r0, #172 ; 0xac - 13a7a: 4798 blx r3 - lv_style_set_bg_opa(&styles->tabview_indic, LV_STATE_DEFAULT, LV_OPA_COVER); - 13a7c: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar) - 13a7e: 22ff movs r2, #255 ; 0xff - 13a80: 212c movs r1, #44 ; 0x2c - 13a82: 30ac adds r0, #172 ; 0xac - 13a84: 47c8 blx r9 - lv_style_set_bg_color(&styles->tabview_indic, LV_STATE_DEFAULT, theme.color_primary); - 13a86: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar) - 13a88: 89a2 ldrh r2, [r4, #12] - 13a8a: 2129 movs r1, #41 ; 0x29 - 13a8c: 30ac adds r0, #172 ; 0xac - 13a8e: 47b8 blx r7 - lv_style_set_bg_color(&styles->tabview_indic, LV_STATE_EDITED, theme.color_secondary); - 13a90: 6820 ldr r0, [r4, #0] - 13a92: 89e2 ldrh r2, [r4, #14] - 13a94: f240 4129 movw r1, #1065 ; 0x429 - 13a98: 30ac adds r0, #172 ; 0xac - 13a9a: 47b8 blx r7 - lv_style_set_size(&styles->tabview_indic, LV_STATE_DEFAULT, LV_DPX(5)); - 13a9c: 6823 ldr r3, [r4, #0] - 13a9e: 2000 movs r0, #0 - 13aa0: f103 09ac add.w r9, r3, #172 ; 0xac - 13aa4: 47a8 blx r5 - 13aa6: eb00 0080 add.w r0, r0, r0, lsl #2 - 13aaa: 28ef cmp r0, #239 ; 0xef - 13aac: f340 8328 ble.w 14100 - 13ab0: 2000 movs r0, #0 - 13ab2: 47a8 blx r5 - 13ab4: 2305 movs r3, #5 - 13ab6: 2250 movs r2, #80 ; 0x50 - 13ab8: fb00 2203 mla r2, r0, r3, r2 - 13abc: 23a0 movs r3, #160 ; 0xa0 - 13abe: fb92 f2f3 sdiv r2, r2, r3 - 13ac2: b212 sxth r2, r2 -_LV_OBJ_STYLE_SET_GET_DECLARE(SIZE, size, lv_style_int_t, _int, scalar) - 13ac4: 4648 mov r0, r9 - 13ac6: 2103 movs r1, #3 - 13ac8: 47b0 blx r6 - lv_style_set_radius(&styles->tabview_indic, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE); - 13aca: 6820 ldr r0, [r4, #0] - lv_style_set_pad_top(&styles->tabview_page_scrl, LV_STATE_DEFAULT, PAD_DEF); - 13acc: f8df 9080 ldr.w r9, [pc, #128] ; 13b50 -_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar) - 13ad0: f647 72ff movw r2, #32767 ; 0x7fff - 13ad4: 2101 movs r1, #1 - 13ad6: 30ac adds r0, #172 ; 0xac - 13ad8: 47b0 blx r6 - style_init_reset(&styles->tabview_page_scrl); - 13ada: 6820 ldr r0, [r4, #0] - 13adc: 9b01 ldr r3, [sp, #4] - 13ade: 30b0 adds r0, #176 ; 0xb0 - 13ae0: 4798 blx r3 - lv_style_set_pad_top(&styles->tabview_page_scrl, LV_STATE_DEFAULT, PAD_DEF); - 13ae2: 6823 ldr r3, [r4, #0] - 13ae4: 2000 movs r0, #0 - 13ae6: f103 0ab0 add.w sl, r3, #176 ; 0xb0 - 13aea: 47c8 blx r9 - 13aec: 2801 cmp r0, #1 - 13aee: f04f 0000 mov.w r0, #0 - 13af2: f200 8312 bhi.w 1411a - 13af6: 47a8 blx r5 - 13af8: ebc0 1000 rsb r0, r0, r0, lsl #4 - 13afc: 28ef cmp r0, #239 ; 0xef - 13afe: f300 8301 bgt.w 14104 - 13b02: 2201 movs r2, #1 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar) - 13b04: 4650 mov r0, sl - 13b06: 2110 movs r1, #16 - 13b08: 47b0 blx r6 - lv_style_set_pad_bottom(&styles->tabview_page_scrl, LV_STATE_DEFAULT, PAD_DEF); - 13b0a: 6823 ldr r3, [r4, #0] - 13b0c: 2000 movs r0, #0 - 13b0e: f103 0ab0 add.w sl, r3, #176 ; 0xb0 - 13b12: 47c8 blx r9 - 13b14: 2801 cmp r0, #1 - 13b16: f04f 0000 mov.w r0, #0 - 13b1a: f200 8314 bhi.w 14146 - 13b1e: 47a8 blx r5 - 13b20: ebc0 1000 rsb r0, r0, r0, lsl #4 - 13b24: 28ef cmp r0, #239 ; 0xef - 13b26: f300 8303 bgt.w 14130 - 13b2a: e013 b.n 13b54 - 13b2c: 0002bcf6 .word 0x0002bcf6 - 13b30: 00586273 .word 0x00586273 - 13b34: 00e4eaf0 .word 0x00e4eaf0 - 13b38: 003b3e42 .word 0x003b3e42 - 13b3c: 00e7e9ec .word 0x00e7e9ec - 13b40: 00005d71 .word 0x00005d71 - 13b44: 00979a9f .word 0x00979a9f - 13b48: 00010d4d .word 0x00010d4d - 13b4c: 0001112d .word 0x0001112d - 13b50: 0000dbed .word 0x0000dbed - 13b54: 2201 movs r2, #1 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar) - 13b56: 4650 mov r0, sl - 13b58: 2111 movs r1, #17 - 13b5a: 47b0 blx r6 - lv_style_set_pad_left(&styles->tabview_page_scrl, LV_STATE_DEFAULT, PAD_DEF); - 13b5c: 6823 ldr r3, [r4, #0] - 13b5e: 2000 movs r0, #0 - 13b60: f103 0ab0 add.w sl, r3, #176 ; 0xb0 - 13b64: 47c8 blx r9 - 13b66: 2801 cmp r0, #1 - 13b68: f04f 0000 mov.w r0, #0 - 13b6c: f200 8301 bhi.w 14172 - 13b70: 47a8 blx r5 - 13b72: ebc0 1000 rsb r0, r0, r0, lsl #4 - 13b76: 28ef cmp r0, #239 ; 0xef - 13b78: f300 82f0 bgt.w 1415c - 13b7c: 2201 movs r2, #1 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar) - 13b7e: 4650 mov r0, sl - 13b80: 2112 movs r1, #18 - 13b82: 47b0 blx r6 - lv_style_set_pad_right(&styles->tabview_page_scrl, LV_STATE_DEFAULT, PAD_DEF); - 13b84: 6823 ldr r3, [r4, #0] - 13b86: 2000 movs r0, #0 - 13b88: f103 0ab0 add.w sl, r3, #176 ; 0xb0 - 13b8c: 47c8 blx r9 - 13b8e: 2801 cmp r0, #1 - 13b90: f04f 0000 mov.w r0, #0 - 13b94: f200 8303 bhi.w 1419e - 13b98: 47a8 blx r5 - 13b9a: ebc0 1000 rsb r0, r0, r0, lsl #4 - 13b9e: 28ef cmp r0, #239 ; 0xef - 13ba0: f300 82f2 bgt.w 14188 - 13ba4: 2201 movs r2, #1 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar) - 13ba6: 4650 mov r0, sl - 13ba8: 2113 movs r1, #19 - 13baa: 47b0 blx r6 - lv_style_set_pad_inner(&styles->tabview_page_scrl, LV_STATE_DEFAULT, PAD_DEF); - 13bac: 6823 ldr r3, [r4, #0] - 13bae: 2000 movs r0, #0 - 13bb0: f103 0ab0 add.w sl, r3, #176 ; 0xb0 - 13bb4: 47c8 blx r9 - 13bb6: 2801 cmp r0, #1 - 13bb8: f04f 0000 mov.w r0, #0 - 13bbc: f200 8305 bhi.w 141ca - 13bc0: 47a8 blx r5 - 13bc2: ebc0 1000 rsb r0, r0, r0, lsl #4 - 13bc6: 28ef cmp r0, #239 ; 0xef - 13bc8: f300 82f4 bgt.w 141b4 - 13bcc: 2201 movs r2, #1 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar) - 13bce: 2114 movs r1, #20 - 13bd0: 4650 mov r0, sl - 13bd2: 47b0 blx r6 - style_init_reset(&styles->table_cell); - 13bd4: 6820 ldr r0, [r4, #0] - 13bd6: 9b01 ldr r3, [sp, #4] - 13bd8: 30a0 adds r0, #160 ; 0xa0 - 13bda: 4798 blx r3 - lv_style_set_border_color(&styles->table_cell, LV_STATE_DEFAULT, COLOR_BG_BORDER); - 13bdc: 6823 ldr r3, [r4, #0] - 13bde: f103 0aa0 add.w sl, r3, #160 ; 0xa0 - 13be2: 6a23 ldr r3, [r4, #32] - 13be4: 079b lsls r3, r3, #30 - 13be6: bf4c ite mi - 13be8: 48c9 ldrmi r0, [pc, #804] ; (13f10 ) - 13bea: 48ca ldrpl r0, [pc, #808] ; (13f14 ) - 13bec: 47c0 blx r8 -_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar) - 13bee: 2139 movs r1, #57 ; 0x39 - 13bf0: 4602 mov r2, r0 - 13bf2: 4650 mov r0, sl - 13bf4: 47b8 blx r7 - lv_style_set_border_width(&styles->table_cell, LV_STATE_DEFAULT, 1); - 13bf6: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar) - 13bf8: 2201 movs r2, #1 - 13bfa: 2130 movs r1, #48 ; 0x30 - 13bfc: 30a0 adds r0, #160 ; 0xa0 - 13bfe: 47b0 blx r6 - lv_style_set_border_side(&styles->table_cell, LV_STATE_DEFAULT, LV_BORDER_SIDE_TOP | LV_BORDER_SIDE_BOTTOM); - 13c00: 6820 ldr r0, [r4, #0] -_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_SIDE, border_side, lv_border_side_t, _int, scalar) - 13c02: 2203 movs r2, #3 - 13c04: 2131 movs r1, #49 ; 0x31 - 13c06: 30a0 adds r0, #160 ; 0xa0 - 13c08: 47b0 blx r6 - lv_style_set_pad_left(&styles->table_cell, LV_STATE_DEFAULT, PAD_DEF); - 13c0a: 2000 movs r0, #0 - 13c0c: 6827 ldr r7, [r4, #0] - 13c0e: 47c8 blx r9 - 13c10: 2801 cmp r0, #1 - 13c12: f107 07a0 add.w r7, r7, #160 ; 0xa0 - 13c16: f04f 0000 mov.w r0, #0 - 13c1a: f200 82ec bhi.w 141f6 - 13c1e: 47a8 blx r5 - 13c20: ebc0 1000 rsb r0, r0, r0, lsl #4 - 13c24: 28ef cmp r0, #239 ; 0xef - 13c26: f300 82db bgt.w 141e0 - 13c2a: 2201 movs r2, #1 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar) - 13c2c: 2112 movs r1, #18 - 13c2e: 4638 mov r0, r7 - 13c30: 47b0 blx r6 - lv_style_set_pad_right(&styles->table_cell, LV_STATE_DEFAULT, PAD_DEF); - 13c32: 2000 movs r0, #0 - 13c34: 6824 ldr r4, [r4, #0] - 13c36: 47c8 blx r9 - 13c38: 2801 cmp r0, #1 - 13c3a: f104 04a0 add.w r4, r4, #160 ; 0xa0 - 13c3e: f04f 0000 mov.w r0, #0 - 13c42: f200 82ee bhi.w 14222 - 13c46: 47a8 blx r5 - 13c48: ebc0 1000 rsb r0, r0, r0, lsl #4 - 13c4c: 28ef cmp r0, #239 ; 0xef - 13c4e: f300 82dd bgt.w 1420c - 13c52: 2201 movs r2, #1 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar) - 13c54: 4620 mov r0, r4 - 13c56: 2113 movs r1, #19 - lv_style_set_pad_top(&styles->table_cell, LV_STATE_DEFAULT, PAD_DEF); - 13c58: 4caf ldr r4, [pc, #700] ; (13f18 ) - 13c5a: 47b0 blx r6 - 13c5c: 2000 movs r0, #0 - 13c5e: 6827 ldr r7, [r4, #0] - 13c60: 47c8 blx r9 - 13c62: 2801 cmp r0, #1 - 13c64: f107 07a0 add.w r7, r7, #160 ; 0xa0 - 13c68: f04f 0000 mov.w r0, #0 - 13c6c: f200 82ef bhi.w 1424e - 13c70: 47a8 blx r5 - 13c72: ebc0 1000 rsb r0, r0, r0, lsl #4 - 13c76: 28ef cmp r0, #239 ; 0xef - 13c78: f300 82de bgt.w 14238 - 13c7c: 2201 movs r2, #1 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar) - 13c7e: 2110 movs r1, #16 - 13c80: 4638 mov r0, r7 - 13c82: 47b0 blx r6 - lv_style_set_pad_bottom(&styles->table_cell, LV_STATE_DEFAULT, PAD_DEF); - 13c84: 2000 movs r0, #0 - 13c86: 6825 ldr r5, [r4, #0] - 13c88: 4ea4 ldr r6, [pc, #656] ; (13f1c ) - 13c8a: 47c8 blx r9 - 13c8c: 2801 cmp r0, #1 - 13c8e: f105 05a0 add.w r5, r5, #160 ; 0xa0 - 13c92: f04f 0000 mov.w r0, #0 - 13c96: f200 82f0 bhi.w 1427a - 13c9a: 47b0 blx r6 - 13c9c: ebc0 1000 rsb r0, r0, r0, lsl #4 - 13ca0: 28ef cmp r0, #239 ; 0xef - 13ca2: f300 82df bgt.w 14264 - 13ca6: 2201 movs r2, #1 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar) - 13ca8: 2111 movs r1, #17 - 13caa: 4628 mov r0, r5 - 13cac: 4b9c ldr r3, [pc, #624] ; (13f20 ) - 13cae: 4798 blx r3 - theme.apply_xcb = theme_apply; - 13cb0: 4b9c ldr r3, [pc, #624] ; (13f24 ) - 13cb2: 60a3 str r3, [r4, #8] - inited = true; - 13cb4: 2301 movs r3, #1 - 13cb6: 7123 strb r3, [r4, #4] - lv_obj_report_style_mod(NULL); - 13cb8: 2000 movs r0, #0 - 13cba: 4b9b ldr r3, [pc, #620] ; (13f28 ) - 13cbc: 4798 blx r3 -} - 13cbe: 489b ldr r0, [pc, #620] ; (13f2c ) - 13cc0: b003 add sp, #12 - 13cc2: ecbd 8b02 vpop {d8} - 13cc6: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - lv_style_set_line_width(&styles->arc_indic, LV_STATE_DEFAULT, LV_DPX(25)); - 13cca: 2201 movs r2, #1 - 13ccc: f7fe bdb1 b.w 12832 - lv_style_set_line_width(&styles->arc_bg, LV_STATE_DEFAULT, LV_DPX(25)); - 13cd0: 2201 movs r2, #1 - 13cd2: f7fe bde0 b.w 12896 - lv_style_set_pad_top(&styles->calendar_header, LV_STATE_DEFAULT, PAD_DEF); - 13cd6: 2000 movs r0, #0 - 13cd8: 47a8 blx r5 - 13cda: 230f movs r3, #15 - 13cdc: 2250 movs r2, #80 ; 0x50 - 13cde: fb00 2203 mla r2, r0, r3, r2 - 13ce2: 23a0 movs r3, #160 ; 0xa0 - 13ce4: fb92 f2f3 sdiv r2, r2, r3 - 13ce8: b212 sxth r2, r2 - 13cea: f7fe bdf4 b.w 128d6 - 13cee: 47a8 blx r5 - 13cf0: ebc0 1000 rsb r0, r0, r0, lsl #4 - 13cf4: 0040 lsls r0, r0, #1 - 13cf6: 28ef cmp r0, #239 ; 0xef - 13cf8: f77e adec ble.w 128d4 - 13cfc: 2000 movs r0, #0 - 13cfe: 47a8 blx r5 - 13d00: 231e movs r3, #30 - 13d02: e7eb b.n 13cdc - lv_style_set_pad_left(&styles->calendar_header, LV_STATE_DEFAULT, PAD_DEF); - 13d04: 2000 movs r0, #0 - 13d06: 47a8 blx r5 - 13d08: 230f movs r3, #15 - 13d0a: 2250 movs r2, #80 ; 0x50 - 13d0c: fb00 2203 mla r2, r0, r3, r2 - 13d10: 23a0 movs r3, #160 ; 0xa0 - 13d12: fb92 f2f3 sdiv r2, r2, r3 - 13d16: b212 sxth r2, r2 - 13d18: f7fe bdf1 b.w 128fe - 13d1c: 47a8 blx r5 - 13d1e: ebc0 1000 rsb r0, r0, r0, lsl #4 - 13d22: 0040 lsls r0, r0, #1 - 13d24: 28ef cmp r0, #239 ; 0xef - 13d26: f77e ade9 ble.w 128fc - 13d2a: 2000 movs r0, #0 - 13d2c: 47a8 blx r5 - 13d2e: 231e movs r3, #30 - 13d30: e7eb b.n 13d0a - lv_style_set_pad_right(&styles->calendar_header, LV_STATE_DEFAULT, PAD_DEF); - 13d32: 2000 movs r0, #0 - 13d34: 47a8 blx r5 - 13d36: 230f movs r3, #15 - 13d38: 2250 movs r2, #80 ; 0x50 - 13d3a: fb00 2203 mla r2, r0, r3, r2 - 13d3e: 23a0 movs r3, #160 ; 0xa0 - 13d40: fb92 f2f3 sdiv r2, r2, r3 - 13d44: b212 sxth r2, r2 - 13d46: f7fe bdee b.w 12926 - 13d4a: 47a8 blx r5 - 13d4c: ebc0 1000 rsb r0, r0, r0, lsl #4 - 13d50: 0040 lsls r0, r0, #1 - 13d52: 28ef cmp r0, #239 ; 0xef - 13d54: f77e ade6 ble.w 12924 - 13d58: 2000 movs r0, #0 - 13d5a: 47a8 blx r5 - 13d5c: 231e movs r3, #30 - 13d5e: e7eb b.n 13d38 - lv_style_set_pad_bottom(&styles->calendar_header, LV_STATE_DEFAULT, PAD_DEF); - 13d60: 2000 movs r0, #0 - 13d62: 47a8 blx r5 - 13d64: 230f movs r3, #15 - 13d66: 2250 movs r2, #80 ; 0x50 - 13d68: fb00 2203 mla r2, r0, r3, r2 - 13d6c: 23a0 movs r3, #160 ; 0xa0 - 13d6e: fb92 f2f3 sdiv r2, r2, r3 - 13d72: b212 sxth r2, r2 - 13d74: f7fe bdeb b.w 1294e - 13d78: 47a8 blx r5 - 13d7a: ebc0 1000 rsb r0, r0, r0, lsl #4 - 13d7e: 0040 lsls r0, r0, #1 - 13d80: 28ef cmp r0, #239 ; 0xef - 13d82: f77e ade3 ble.w 1294c - 13d86: 2000 movs r0, #0 - 13d88: 47a8 blx r5 - 13d8a: 231e movs r3, #30 - 13d8c: e7eb b.n 13d66 - lv_style_set_text_color(&styles->calendar_header, LV_STATE_PRESSED, IS_LIGHT ? lv_color_hex(0x888888) : LV_COLOR_WHITE); - 13d8e: f8bb 2000 ldrh.w r2, [fp] - 13d92: f7fe bdee b.w 12972 - lv_style_set_text_color(&styles->calendar_daynames, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x31404f) : lv_color_hex3(0xeee)); - 13d96: 4b66 ldr r3, [pc, #408] ; (13f30 ) - 13d98: f640 60ee movw r0, #3822 ; 0xeee - 13d9c: 4798 blx r3 - 13d9e: f7fe bdf9 b.w 12994 - lv_style_set_pad_left(&styles->calendar_daynames, LV_STATE_DEFAULT, PAD_DEF); - 13da2: 2000 movs r0, #0 - 13da4: 47a8 blx r5 - 13da6: 230f movs r3, #15 - 13da8: 2250 movs r2, #80 ; 0x50 - 13daa: fb00 2203 mla r2, r0, r3, r2 - 13dae: 23a0 movs r3, #160 ; 0xa0 - 13db0: fb92 f2f3 sdiv r2, r2, r3 - 13db4: b212 sxth r2, r2 - 13db6: f7fe be05 b.w 129c4 - 13dba: 47a8 blx r5 - 13dbc: ebc0 1000 rsb r0, r0, r0, lsl #4 - 13dc0: 0040 lsls r0, r0, #1 - 13dc2: 28ef cmp r0, #239 ; 0xef - 13dc4: f77e adfd ble.w 129c2 - 13dc8: 2000 movs r0, #0 - 13dca: 47a8 blx r5 - 13dcc: 231e movs r3, #30 - 13dce: e7eb b.n 13da8 - lv_style_set_pad_right(&styles->calendar_daynames, LV_STATE_DEFAULT, PAD_DEF); - 13dd0: 2000 movs r0, #0 - 13dd2: 47a8 blx r5 - 13dd4: 230f movs r3, #15 - 13dd6: 2250 movs r2, #80 ; 0x50 - 13dd8: fb00 2203 mla r2, r0, r3, r2 - 13ddc: 23a0 movs r3, #160 ; 0xa0 - 13dde: fb92 f2f3 sdiv r2, r2, r3 - 13de2: b212 sxth r2, r2 - 13de4: f7fe be04 b.w 129f0 - 13de8: 47a8 blx r5 - 13dea: ebc0 1000 rsb r0, r0, r0, lsl #4 - 13dee: 0040 lsls r0, r0, #1 - 13df0: 28ef cmp r0, #239 ; 0xef - 13df2: f77e adfc ble.w 129ee - 13df6: 2000 movs r0, #0 - 13df8: 47a8 blx r5 - 13dfa: 231e movs r3, #30 - 13dfc: e7eb b.n 13dd6 - lv_style_set_pad_bottom(&styles->calendar_daynames, LV_STATE_DEFAULT, PAD_DEF); - 13dfe: 2000 movs r0, #0 - 13e00: 47a8 blx r5 - 13e02: 230f movs r3, #15 - 13e04: 2250 movs r2, #80 ; 0x50 - 13e06: fb00 2203 mla r2, r0, r3, r2 - 13e0a: 23a0 movs r3, #160 ; 0xa0 - 13e0c: fb92 f2f3 sdiv r2, r2, r3 - 13e10: b212 sxth r2, r2 - 13e12: f7fe be03 b.w 12a1c - 13e16: 47a8 blx r5 - 13e18: ebc0 1000 rsb r0, r0, r0, lsl #4 - 13e1c: 0040 lsls r0, r0, #1 - 13e1e: 28ef cmp r0, #239 ; 0xef - 13e20: f77e adfb ble.w 12a1a - 13e24: 2000 movs r0, #0 - 13e26: 47a8 blx r5 - 13e28: 231e movs r3, #30 - 13e2a: e7eb b.n 13e04 - lv_style_set_radius(&styles->calendar_date_nums, LV_STATE_DEFAULT, LV_DPX(4)); - 13e2c: 2201 movs r2, #1 - 13e2e: f7fe be0d b.w 12a4c - lv_style_set_text_color(&styles->calendar_date_nums, LV_STATE_CHECKED, IS_LIGHT ? lv_color_hex(0x31404f) : LV_COLOR_WHITE); - 13e32: f8bb 2000 ldrh.w r2, [fp] - 13e36: f7fe be47 b.w 12ac8 - lv_style_set_bg_color(&styles->calendar_date_nums, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x666666) : LV_COLOR_WHITE); - 13e3a: f8bd 2004 ldrh.w r2, [sp, #4] - 13e3e: f7fe be7d b.w 12b3c - lv_style_set_pad_inner(&styles->calendar_date_nums, LV_STATE_DEFAULT, LV_DPX(3)); - 13e42: 2201 movs r2, #1 - 13e44: f7fe beaa b.w 12b9c - lv_style_set_pad_left(&styles->calendar_date_nums, LV_STATE_DEFAULT, PAD_DEF); - 13e48: 2000 movs r0, #0 - 13e4a: 47a8 blx r5 - 13e4c: 230f movs r3, #15 - 13e4e: 2250 movs r2, #80 ; 0x50 - 13e50: fb00 2203 mla r2, r0, r3, r2 - 13e54: 23a0 movs r3, #160 ; 0xa0 - 13e56: fb92 f2f3 sdiv r2, r2, r3 - 13e5a: b212 sxth r2, r2 - 13e5c: f7fe beb4 b.w 12bc8 - 13e60: 47a8 blx r5 - 13e62: ebc0 1000 rsb r0, r0, r0, lsl #4 - 13e66: 0040 lsls r0, r0, #1 - 13e68: 28ef cmp r0, #239 ; 0xef - 13e6a: f77e aeac ble.w 12bc6 - 13e6e: 2000 movs r0, #0 - 13e70: 47a8 blx r5 - 13e72: 231e movs r3, #30 - 13e74: e7eb b.n 13e4e - lv_style_set_pad_right(&styles->calendar_date_nums, LV_STATE_DEFAULT, PAD_DEF); - 13e76: 2000 movs r0, #0 - 13e78: 47a8 blx r5 - 13e7a: 230f movs r3, #15 - 13e7c: 2250 movs r2, #80 ; 0x50 - 13e7e: fb00 2203 mla r2, r0, r3, r2 - 13e82: 23a0 movs r3, #160 ; 0xa0 - 13e84: fb92 f2f3 sdiv r2, r2, r3 - 13e88: b212 sxth r2, r2 - 13e8a: f7fe beb3 b.w 12bf4 - 13e8e: 47a8 blx r5 - 13e90: ebc0 1000 rsb r0, r0, r0, lsl #4 - 13e94: 0040 lsls r0, r0, #1 - 13e96: 28ef cmp r0, #239 ; 0xef - 13e98: f77e aeab ble.w 12bf2 - 13e9c: 2000 movs r0, #0 - 13e9e: 47a8 blx r5 - 13ea0: 231e movs r3, #30 - 13ea2: e7eb b.n 13e7c - lv_style_set_pad_bottom(&styles->calendar_date_nums, LV_STATE_DEFAULT, PAD_DEF); - 13ea4: 2000 movs r0, #0 - 13ea6: 47a8 blx r5 - 13ea8: 230f movs r3, #15 - 13eaa: 2250 movs r2, #80 ; 0x50 - 13eac: fb00 2203 mla r2, r0, r3, r2 - 13eb0: 23a0 movs r3, #160 ; 0xa0 - 13eb2: fb92 f2f3 sdiv r2, r2, r3 - 13eb6: b212 sxth r2, r2 - 13eb8: f7fe beb2 b.w 12c20 - 13ebc: 47a8 blx r5 - 13ebe: ebc0 1000 rsb r0, r0, r0, lsl #4 - 13ec2: 0040 lsls r0, r0, #1 - 13ec4: 28ef cmp r0, #239 ; 0xef - 13ec6: f77e aeaa ble.w 12c1e - 13eca: 2000 movs r0, #0 - 13ecc: 47a8 blx r5 - 13ece: 231e movs r3, #30 - 13ed0: e7eb b.n 13eaa - lv_style_set_scale_width(&styles->cpicker_bg, LV_STATE_DEFAULT, LV_DPX(30)); - 13ed2: 2201 movs r2, #1 - 13ed4: f7fe bec0 b.w 12c58 - lv_style_set_pad_inner(&styles->cpicker_bg, LV_STATE_DEFAULT, LV_DPX(20)); - 13ed8: 2201 movs r2, #1 - 13eda: f7fe bee8 b.w 12cae - lv_style_set_pad_left(&styles->cpicker_indic, LV_STATE_DEFAULT, LV_DPX(13)); - 13ede: 2201 movs r2, #1 - 13ee0: f7fe bf31 b.w 12d46 - lv_style_set_pad_right(&styles->cpicker_indic, LV_STATE_DEFAULT, LV_DPX(13)); - 13ee4: 2201 movs r2, #1 - 13ee6: f7fe bf47 b.w 12d78 - lv_style_set_pad_top(&styles->cpicker_indic, LV_STATE_DEFAULT, LV_DPX(13)); - 13eea: 2201 movs r2, #1 - 13eec: f7fe bf5d b.w 12daa - lv_style_set_pad_bottom(&styles->cpicker_indic, LV_STATE_DEFAULT, LV_DPX(13)); - 13ef0: 2201 movs r2, #1 - 13ef2: f7fe bf7d b.w 12df0 - lv_style_set_radius(&styles->cb_bg, LV_STATE_DEFAULT, LV_DPX(4)); - 13ef6: 2201 movs r2, #1 - 13ef8: f7fe bf90 b.w 12e1c - lv_style_set_pad_inner(&styles->cb_bg, LV_STATE_DEFAULT, LV_DPX(10)); - 13efc: 2201 movs r2, #1 - 13efe: f7fe bfa5 b.w 12e4c - lv_style_set_outline_width(&styles->cb_bg, LV_STATE_DEFAULT, LV_DPX(3)); - 13f02: 2201 movs r2, #1 - 13f04: f7fe bfc9 b.w 12e9a - lv_style_set_outline_pad(&styles->cb_bg, LV_STATE_DEFAULT, LV_DPX(10)); - 13f08: 2201 movs r2, #1 - 13f0a: f7fe bfdf b.w 12ecc - 13f0e: bf00 nop - 13f10: 00d6dde3 .word 0x00d6dde3 - 13f14: 00808a97 .word 0x00808a97 - 13f18: 200057a4 .word 0x200057a4 - 13f1c: 0000dbd5 .word 0x0000dbd5 - 13f20: 00005afd .word 0x00005afd - 13f24: 000105b9 .word 0x000105b9 - 13f28: 000031bd .word 0x000031bd - 13f2c: 200057ac .word 0x200057ac - 13f30: 00010581 .word 0x00010581 - lv_style_set_radius(&styles->cb_bullet, LV_STATE_DEFAULT, LV_DPX(4)); - 13f34: 2201 movs r2, #1 - 13f36: f7fe bff3 b.w 12f20 - lv_style_set_pad_left(&styles->cb_bullet, LV_STATE_DEFAULT, LV_DPX(3)); - 13f3a: 2201 movs r2, #1 - 13f3c: f7ff b81d b.w 12f7a - lv_style_set_pad_right(&styles->cb_bullet, LV_STATE_DEFAULT, LV_DPX(3)); - 13f40: 2201 movs r2, #1 - 13f42: f7ff b831 b.w 12fa8 - lv_style_set_pad_top(&styles->cb_bullet, LV_STATE_DEFAULT, LV_DPX(3)); - 13f46: 2201 movs r2, #1 - 13f48: f7ff b845 b.w 12fd6 - lv_style_set_pad_bottom(&styles->cb_bullet, LV_STATE_DEFAULT, LV_DPX(3)); - 13f4c: 2201 movs r2, #1 - 13f4e: f7ff b859 b.w 13004 - lv_style_set_border_width(&styles->kb_bg, LV_STATE_DEFAULT, LV_DPX(4)); - 13f52: 2201 movs r2, #1 - 13f54: f7ff b871 b.w 1303a - lv_style_set_border_color(&styles->kb_bg, LV_STATE_DEFAULT, IS_LIGHT ? COLOR_BG_TEXT : LV_COLOR_BLACK); - 13f58: 4603 mov r3, r0 - 13f5a: 4602 mov r2, r0 - 13f5c: f7ff b886 b.w 1306c - lv_style_set_pad_left(&styles->kb_bg, LV_STATE_DEFAULT, LV_DPX(5)); - 13f60: 2201 movs r2, #1 - 13f62: f7ff b8a4 b.w 130ae - lv_style_set_pad_right(&styles->kb_bg, LV_STATE_DEFAULT, LV_DPX(5)); - 13f66: 2201 movs r2, #1 - 13f68: f7ff b8b8 b.w 130dc - lv_style_set_pad_top(&styles->kb_bg, LV_STATE_DEFAULT, LV_DPX(5)); - 13f6c: 2201 movs r2, #1 - 13f6e: f7ff b8cc b.w 1310a - lv_style_set_pad_bottom(&styles->kb_bg, LV_STATE_DEFAULT, LV_DPX(5)); - 13f72: 2201 movs r2, #1 - 13f74: f7ff b8e0 b.w 13138 - lv_style_set_pad_inner(&styles->kb_bg, LV_STATE_DEFAULT, LV_DPX(3)); - 13f78: 2201 movs r2, #1 - 13f7a: f7ff b8f4 b.w 13166 - lv_style_set_shadow_width(&styles->mbox_bg, LV_STATE_DEFAULT, LV_DPX(50)); - 13f7e: 2201 movs r2, #1 - 13f80: f7ff b91e b.w 131c0 - lv_style_set_shadow_color(&styles->mbox_bg, LV_STATE_DEFAULT, IS_LIGHT ? LV_COLOR_SILVER : lv_color_hex3(0x999)); - 13f84: 4bc2 ldr r3, [pc, #776] ; (14290 ) - 13f86: f640 1099 movw r0, #2457 ; 0x999 - 13f8a: 4798 blx r3 - 13f8c: 4602 mov r2, r0 - 13f8e: f7ff b923 b.w 131d8 - lv_style_set_size(&styles->sb, LV_STATE_DEFAULT, LV_DPX(7)); - 13f92: 2201 movs r2, #1 - 13f94: f7ff b952 b.w 1323c - lv_style_set_pad_right(&styles->sb, LV_STATE_DEFAULT, LV_DPX(7)); - 13f98: 2201 movs r2, #1 - 13f9a: f7ff b966 b.w 1326a - lv_style_set_pad_bottom(&styles->sb, LV_STATE_DEFAULT, LV_DPX(7)); - 13f9e: 2201 movs r2, #1 - 13fa0: f7ff b97a b.w 13298 - lv_style_set_border_width(&styles->ta_cursor, LV_STATE_DEFAULT, LV_DPX(2)); - 13fa4: 2201 movs r2, #1 - 13fa6: f7ff b9ad b.w 13304 - lv_style_set_pad_left(&styles->ta_cursor, LV_STATE_DEFAULT, LV_DPX(1)); - 13faa: 2201 movs r2, #1 - 13fac: f7ff b9bd b.w 1332a - lv_style_set_text_color(&styles->ta_placeholder, LV_STATE_DEFAULT, IS_LIGHT ? COLOR_BG_TEXT_DIS : lv_color_hex(0xa1adbd)); - 13fb0: 48b8 ldr r0, [pc, #736] ; (14294 ) - 13fb2: 47b8 blx r7 - 13fb4: f7ff b9cf b.w 13356 - lv_style_set_pad_top(&styles->spinbox_cursor, LV_STATE_DEFAULT, LV_DPX(100)); - 13fb8: 2201 movs r2, #1 - 13fba: f7ff b9fa b.w 133b2 - lv_style_set_pad_bottom(&styles->spinbox_cursor, LV_STATE_DEFAULT, LV_DPX(100)); - 13fbe: 2201 movs r2, #1 - 13fc0: f7ff ba0f b.w 133e2 - lv_style_set_pad_left(&styles->list_btn, LV_STATE_DEFAULT, PAD_DEF); - 13fc4: 2000 movs r0, #0 - 13fc6: 47a8 blx r5 - 13fc8: 230f movs r3, #15 - 13fca: 2250 movs r2, #80 ; 0x50 - 13fcc: fb00 2203 mla r2, r0, r3, r2 - 13fd0: 23a0 movs r3, #160 ; 0xa0 - 13fd2: fb92 f2f3 sdiv r2, r2, r3 - 13fd6: b212 sxth r2, r2 - 13fd8: f7ff bb10 b.w 135fc - 13fdc: 47a8 blx r5 - 13fde: ebc0 1000 rsb r0, r0, r0, lsl #4 - 13fe2: 0040 lsls r0, r0, #1 - 13fe4: 28ef cmp r0, #239 ; 0xef - 13fe6: f77f ab08 ble.w 135fa - 13fea: 2000 movs r0, #0 - 13fec: 47a8 blx r5 - 13fee: 231e movs r3, #30 - 13ff0: e7eb b.n 13fca - lv_style_set_pad_right(&styles->list_btn, LV_STATE_DEFAULT, PAD_DEF); - 13ff2: 2000 movs r0, #0 - 13ff4: 47a8 blx r5 - 13ff6: 230f movs r3, #15 - 13ff8: 2250 movs r2, #80 ; 0x50 - 13ffa: fb00 2203 mla r2, r0, r3, r2 - 13ffe: 23a0 movs r3, #160 ; 0xa0 - 14000: fb92 f2f3 sdiv r2, r2, r3 - 14004: b212 sxth r2, r2 - 14006: f7ff bb0d b.w 13624 - 1400a: 47a8 blx r5 - 1400c: ebc0 1000 rsb r0, r0, r0, lsl #4 - 14010: 0040 lsls r0, r0, #1 - 14012: 28ef cmp r0, #239 ; 0xef - 14014: f77f ab05 ble.w 13622 - 14018: 2000 movs r0, #0 - 1401a: 47a8 blx r5 - 1401c: 231e movs r3, #30 - 1401e: e7eb b.n 13ff8 - lv_style_set_pad_top(&styles->list_btn, LV_STATE_DEFAULT, PAD_DEF); - 14020: 2000 movs r0, #0 - 14022: 47a8 blx r5 - 14024: 230f movs r3, #15 - 14026: 2250 movs r2, #80 ; 0x50 - 14028: fb00 2203 mla r2, r0, r3, r2 - 1402c: 23a0 movs r3, #160 ; 0xa0 - 1402e: fb92 f2f3 sdiv r2, r2, r3 - 14032: b212 sxth r2, r2 - 14034: f7ff bb0a b.w 1364c - 14038: 47a8 blx r5 - 1403a: ebc0 1000 rsb r0, r0, r0, lsl #4 - 1403e: 0040 lsls r0, r0, #1 - 14040: 28ef cmp r0, #239 ; 0xef - 14042: f77f ab02 ble.w 1364a - 14046: 2000 movs r0, #0 - 14048: 47a8 blx r5 - 1404a: 231e movs r3, #30 - 1404c: e7eb b.n 14026 - lv_style_set_pad_bottom(&styles->list_btn, LV_STATE_DEFAULT, PAD_DEF); - 1404e: 2000 movs r0, #0 - 14050: 47a8 blx r5 - 14052: 230f movs r3, #15 - 14054: 2250 movs r2, #80 ; 0x50 - 14056: fb00 2203 mla r2, r0, r3, r2 - 1405a: 23a0 movs r3, #160 ; 0xa0 - 1405c: fb92 f2f3 sdiv r2, r2, r3 - 14060: b212 sxth r2, r2 - 14062: f7ff bb07 b.w 13674 - 14066: 47a8 blx r5 - 14068: ebc0 1000 rsb r0, r0, r0, lsl #4 - 1406c: 0040 lsls r0, r0, #1 - 1406e: 28ef cmp r0, #239 ; 0xef - 14070: f77f aaff ble.w 13672 - 14074: 2000 movs r0, #0 - 14076: 47a8 blx r5 - 14078: 231e movs r3, #30 - 1407a: e7eb b.n 14054 - lv_style_set_pad_inner(&styles->list_btn, LV_STATE_DEFAULT, PAD_DEF); - 1407c: 2000 movs r0, #0 - 1407e: 47a8 blx r5 - 14080: 230f movs r3, #15 - 14082: 2250 movs r2, #80 ; 0x50 - 14084: fb00 2203 mla r2, r0, r3, r2 - 14088: 23a0 movs r3, #160 ; 0xa0 - 1408a: fb92 f2f3 sdiv r2, r2, r3 - 1408e: b212 sxth r2, r2 - 14090: f7ff bb04 b.w 1369c - 14094: 47a8 blx r5 - 14096: ebc0 1000 rsb r0, r0, r0, lsl #4 - 1409a: 0040 lsls r0, r0, #1 - 1409c: 28ef cmp r0, #239 ; 0xef - 1409e: f77f aafc ble.w 1369a - 140a2: 2000 movs r0, #0 - 140a4: 47a8 blx r5 - 140a6: 231e movs r3, #30 - 140a8: e7eb b.n 14082 - lv_style_set_transform_width(&styles->list_btn, LV_STATE_DEFAULT, - PAD_DEF); - 140aa: 2000 movs r0, #0 - 140ac: 47a8 blx r5 - 140ae: 230f movs r3, #15 - 140b0: 2250 movs r2, #80 ; 0x50 - 140b2: fb00 2203 mla r2, r0, r3, r2 - 140b6: f06f 039f mvn.w r3, #159 ; 0x9f - 140ba: fb92 f2f3 sdiv r2, r2, r3 - 140be: b212 sxth r2, r2 - 140c0: f7ff bb01 b.w 136c6 - 140c4: 47a8 blx r5 - 140c6: ebc0 1000 rsb r0, r0, r0, lsl #4 - 140ca: 0040 lsls r0, r0, #1 - 140cc: 28ef cmp r0, #239 ; 0xef - 140ce: f77f aaf8 ble.w 136c2 - 140d2: 2000 movs r0, #0 - 140d4: 47a8 blx r5 - 140d6: 231e movs r3, #30 - 140d8: e7ea b.n 140b0 - lv_style_set_text_line_space(&styles->ddlist_page, LV_STATE_DEFAULT, LV_DPX(20)); - 140da: 2201 movs r2, #1 - 140dc: f7ff bb33 b.w 13746 - lv_style_set_text_line_space(&styles->roller_bg, LV_STATE_DEFAULT, LV_DPX(25)); - 140e0: 2201 movs r2, #1 - 140e2: f7ff bba6 b.w 13832 - lv_style_set_border_width(&styles->tabview_btns_bg, LV_STATE_DEFAULT, LV_DPX(5)); - 140e6: 2201 movs r2, #1 - 140e8: f7ff bbf9 b.w 138de - lv_style_set_pad_top(&styles->tabview_btns_bg, LV_STATE_DEFAULT, LV_DPX(7)); - 140ec: 2201 movs r2, #1 - 140ee: e431 b.n 13954 - lv_style_set_pad_left(&styles->tabview_btns_bg, LV_STATE_DEFAULT, LV_DPX(7)); - 140f0: 2201 movs r2, #1 - 140f2: e446 b.n 13982 - lv_style_set_pad_right(&styles->tabview_btns_bg, LV_STATE_DEFAULT, LV_DPX(7)); - 140f4: 2201 movs r2, #1 - 140f6: e45b b.n 139b0 - lv_style_set_pad_top(&styles->tabview_btns, LV_STATE_DEFAULT, LV_DPX(20)); - 140f8: 2201 movs r2, #1 - 140fa: e494 b.n 13a26 - lv_style_set_pad_bottom(&styles->tabview_btns, LV_STATE_DEFAULT, LV_DPX(20)); - 140fc: 2201 movs r2, #1 - 140fe: e4aa b.n 13a56 - lv_style_set_size(&styles->tabview_indic, LV_STATE_DEFAULT, LV_DPX(5)); - 14100: 2201 movs r2, #1 - 14102: e4df b.n 13ac4 - lv_style_set_pad_top(&styles->tabview_page_scrl, LV_STATE_DEFAULT, PAD_DEF); - 14104: 2000 movs r0, #0 - 14106: 47a8 blx r5 - 14108: 230f movs r3, #15 - 1410a: 2250 movs r2, #80 ; 0x50 - 1410c: fb00 2203 mla r2, r0, r3, r2 - 14110: 23a0 movs r3, #160 ; 0xa0 - 14112: fb92 f2f3 sdiv r2, r2, r3 - 14116: b212 sxth r2, r2 - 14118: e4f4 b.n 13b04 - 1411a: 47a8 blx r5 - 1411c: ebc0 1000 rsb r0, r0, r0, lsl #4 - 14120: 0040 lsls r0, r0, #1 - 14122: 28ef cmp r0, #239 ; 0xef - 14124: f77f aced ble.w 13b02 - 14128: 2000 movs r0, #0 - 1412a: 47a8 blx r5 - 1412c: 231e movs r3, #30 - 1412e: e7ec b.n 1410a - lv_style_set_pad_bottom(&styles->tabview_page_scrl, LV_STATE_DEFAULT, PAD_DEF); - 14130: 2000 movs r0, #0 - 14132: 47a8 blx r5 - 14134: 230f movs r3, #15 - 14136: 2250 movs r2, #80 ; 0x50 - 14138: fb00 2203 mla r2, r0, r3, r2 - 1413c: 23a0 movs r3, #160 ; 0xa0 - 1413e: fb92 f2f3 sdiv r2, r2, r3 - 14142: b212 sxth r2, r2 - 14144: e507 b.n 13b56 - 14146: 47a8 blx r5 - 14148: ebc0 1000 rsb r0, r0, r0, lsl #4 - 1414c: 0040 lsls r0, r0, #1 - 1414e: 28ef cmp r0, #239 ; 0xef - 14150: f77f ad00 ble.w 13b54 - 14154: 2000 movs r0, #0 - 14156: 47a8 blx r5 - 14158: 231e movs r3, #30 - 1415a: e7ec b.n 14136 - lv_style_set_pad_left(&styles->tabview_page_scrl, LV_STATE_DEFAULT, PAD_DEF); - 1415c: 2000 movs r0, #0 - 1415e: 47a8 blx r5 - 14160: 230f movs r3, #15 - 14162: 2250 movs r2, #80 ; 0x50 - 14164: fb00 2203 mla r2, r0, r3, r2 - 14168: 23a0 movs r3, #160 ; 0xa0 - 1416a: fb92 f2f3 sdiv r2, r2, r3 - 1416e: b212 sxth r2, r2 - 14170: e505 b.n 13b7e - 14172: 47a8 blx r5 - 14174: ebc0 1000 rsb r0, r0, r0, lsl #4 - 14178: 0040 lsls r0, r0, #1 - 1417a: 28ef cmp r0, #239 ; 0xef - 1417c: f77f acfe ble.w 13b7c - 14180: 2000 movs r0, #0 - 14182: 47a8 blx r5 - 14184: 231e movs r3, #30 - 14186: e7ec b.n 14162 - lv_style_set_pad_right(&styles->tabview_page_scrl, LV_STATE_DEFAULT, PAD_DEF); - 14188: 2000 movs r0, #0 - 1418a: 47a8 blx r5 - 1418c: 230f movs r3, #15 - 1418e: 2250 movs r2, #80 ; 0x50 - 14190: fb00 2203 mla r2, r0, r3, r2 - 14194: 23a0 movs r3, #160 ; 0xa0 - 14196: fb92 f2f3 sdiv r2, r2, r3 - 1419a: b212 sxth r2, r2 - 1419c: e503 b.n 13ba6 - 1419e: 47a8 blx r5 - 141a0: ebc0 1000 rsb r0, r0, r0, lsl #4 - 141a4: 0040 lsls r0, r0, #1 - 141a6: 28ef cmp r0, #239 ; 0xef - 141a8: f77f acfc ble.w 13ba4 - 141ac: 2000 movs r0, #0 - 141ae: 47a8 blx r5 - 141b0: 231e movs r3, #30 - 141b2: e7ec b.n 1418e - lv_style_set_pad_inner(&styles->tabview_page_scrl, LV_STATE_DEFAULT, PAD_DEF); - 141b4: 2000 movs r0, #0 - 141b6: 47a8 blx r5 - 141b8: 230f movs r3, #15 - 141ba: 2250 movs r2, #80 ; 0x50 - 141bc: fb00 2203 mla r2, r0, r3, r2 - 141c0: 23a0 movs r3, #160 ; 0xa0 - 141c2: fb92 f2f3 sdiv r2, r2, r3 - 141c6: b212 sxth r2, r2 - 141c8: e501 b.n 13bce - 141ca: 47a8 blx r5 - 141cc: ebc0 1000 rsb r0, r0, r0, lsl #4 - 141d0: 0040 lsls r0, r0, #1 - 141d2: 28ef cmp r0, #239 ; 0xef - 141d4: f77f acfa ble.w 13bcc - 141d8: 2000 movs r0, #0 - 141da: 47a8 blx r5 - 141dc: 231e movs r3, #30 - 141de: e7ec b.n 141ba - lv_style_set_pad_left(&styles->table_cell, LV_STATE_DEFAULT, PAD_DEF); - 141e0: 2000 movs r0, #0 - 141e2: 47a8 blx r5 - 141e4: 230f movs r3, #15 - 141e6: 2250 movs r2, #80 ; 0x50 - 141e8: fb00 2203 mla r2, r0, r3, r2 - 141ec: 23a0 movs r3, #160 ; 0xa0 - 141ee: fb92 f2f3 sdiv r2, r2, r3 - 141f2: b212 sxth r2, r2 - 141f4: e51a b.n 13c2c - 141f6: 47a8 blx r5 - 141f8: ebc0 1000 rsb r0, r0, r0, lsl #4 - 141fc: 0040 lsls r0, r0, #1 - 141fe: 28ef cmp r0, #239 ; 0xef - 14200: f77f ad13 ble.w 13c2a - 14204: 2000 movs r0, #0 - 14206: 47a8 blx r5 - 14208: 231e movs r3, #30 - 1420a: e7ec b.n 141e6 - lv_style_set_pad_right(&styles->table_cell, LV_STATE_DEFAULT, PAD_DEF); - 1420c: 2000 movs r0, #0 - 1420e: 47a8 blx r5 - 14210: 230f movs r3, #15 - 14212: 2250 movs r2, #80 ; 0x50 - 14214: fb00 2203 mla r2, r0, r3, r2 - 14218: 23a0 movs r3, #160 ; 0xa0 - 1421a: fb92 f2f3 sdiv r2, r2, r3 - 1421e: b212 sxth r2, r2 - 14220: e518 b.n 13c54 - 14222: 47a8 blx r5 - 14224: ebc0 1000 rsb r0, r0, r0, lsl #4 - 14228: 0040 lsls r0, r0, #1 - 1422a: 28ef cmp r0, #239 ; 0xef - 1422c: f77f ad11 ble.w 13c52 - 14230: 2000 movs r0, #0 - 14232: 47a8 blx r5 - 14234: 231e movs r3, #30 - 14236: e7ec b.n 14212 - lv_style_set_pad_top(&styles->table_cell, LV_STATE_DEFAULT, PAD_DEF); - 14238: 2000 movs r0, #0 - 1423a: 47a8 blx r5 - 1423c: 230f movs r3, #15 - 1423e: 2250 movs r2, #80 ; 0x50 - 14240: fb00 2203 mla r2, r0, r3, r2 - 14244: 23a0 movs r3, #160 ; 0xa0 - 14246: fb92 f2f3 sdiv r2, r2, r3 - 1424a: b212 sxth r2, r2 - 1424c: e517 b.n 13c7e - 1424e: 47a8 blx r5 - 14250: ebc0 1000 rsb r0, r0, r0, lsl #4 - 14254: 0040 lsls r0, r0, #1 - 14256: 28ef cmp r0, #239 ; 0xef - 14258: f77f ad10 ble.w 13c7c - 1425c: 2000 movs r0, #0 - 1425e: 47a8 blx r5 - 14260: 231e movs r3, #30 - 14262: e7ec b.n 1423e - lv_style_set_pad_bottom(&styles->table_cell, LV_STATE_DEFAULT, PAD_DEF); - 14264: 2000 movs r0, #0 - 14266: 47b0 blx r6 - 14268: 230f movs r3, #15 - 1426a: 2250 movs r2, #80 ; 0x50 - 1426c: fb00 2203 mla r2, r0, r3, r2 - 14270: 23a0 movs r3, #160 ; 0xa0 - 14272: fb92 f2f3 sdiv r2, r2, r3 - 14276: b212 sxth r2, r2 - 14278: e516 b.n 13ca8 - 1427a: 47b0 blx r6 - 1427c: ebc0 1000 rsb r0, r0, r0, lsl #4 - 14280: 0040 lsls r0, r0, #1 - 14282: 28ef cmp r0, #239 ; 0xef - 14284: f77f ad0f ble.w 13ca6 - 14288: 2000 movs r0, #0 - 1428a: 47b0 blx r6 - 1428c: 231e movs r3, #30 - 1428e: e7ec b.n 1426a - 14290: 00010581 .word 0x00010581 - 14294: 00a1adbd .word 0x00a1adbd - -00014298 : - * LV_DESIGN_DRAW: draw the object (always return 'true') - * LV_DESIGN_DRAW_POST: drawing after every children are drawn - * @param return an element of `lv_design_res_t` - */ -static lv_design_res_t lv_img_design(lv_obj_t * img, const lv_area_t * clip_area, lv_design_mode_t mode) -{ - 14298: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - lv_img_ext_t * ext = lv_obj_get_ext_attr(img); - 1429c: 4ba4 ldr r3, [pc, #656] ; (14530 ) -{ - 1429e: b0a7 sub sp, #156 ; 0x9c - 142a0: 4616 mov r6, r2 - 142a2: 4604 mov r4, r0 - 142a4: 460f mov r7, r1 - lv_img_ext_t * ext = lv_obj_get_ext_attr(img); - 142a6: 4798 blx r3 - - if(mode == LV_DESIGN_COVER_CHK) { - 142a8: 2e02 cmp r6, #2 - lv_img_ext_t * ext = lv_obj_get_ext_attr(img); - 142aa: 4605 mov r5, r0 - if(mode == LV_DESIGN_COVER_CHK) { - 142ac: d163 bne.n 14376 - _OBJ_GET_STYLE_##scalar(prop_name, func_name, value_type, style_type) \ - _OBJ_SET_STYLE_LOCAL_##scalar(prop_name, func_name, value_type, style_type) \ - _OBJ_SET_STYLE_##scalar(prop_name, func_name, value_type, style_type) - -_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar) -_LV_OBJ_STYLE_SET_GET_DECLARE(CLIP_CORNER, clip_corner, bool, _int, scalar) - 142ae: f8df 82b4 ldr.w r8, [pc, #692] ; 14564 - 142b2: 4632 mov r2, r6 - 142b4: 2100 movs r1, #0 - 142b6: 4620 mov r0, r4 - 142b8: 47c0 blx r8 - - if(lv_obj_get_style_clip_corner(img, LV_IMG_PART_MAIN)) return LV_DESIGN_RES_MASKED; - 142ba: 2800 cmp r0, #0 - 142bc: f040 81ff bne.w 146be - - if(ext->src_type == LV_IMG_SRC_UNKNOWN || ext->src_type == LV_IMG_SRC_SYMBOL) return LV_DESIGN_RES_NOT_COVER; - 142c0: 7d2b ldrb r3, [r5, #20] - 142c2: 0799 lsls r1, r3, #30 - 142c4: d42a bmi.n 1431c - - /*Non true color format might have "holes"*/ - if(ext->cf != LV_IMG_CF_TRUE_COLOR && ext->cf != LV_IMG_CF_RAW) return LV_DESIGN_RES_NOT_COVER; - 142c6: f003 03f8 and.w r3, r3, #248 ; 0xf8 - 142ca: 2b20 cmp r3, #32 - 142cc: d001 beq.n 142d2 - 142ce: 2b08 cmp r3, #8 - 142d0: d124 bne.n 1431c -_LV_OBJ_STYLE_SET_GET_DECLARE(SIZE, size, lv_style_int_t, _int, scalar) -_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_WIDTH, transform_width, lv_style_int_t, _int, scalar) -_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_HEIGHT, transform_height, lv_style_int_t, _int, scalar) -_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_ANGLE, transform_angle, lv_style_int_t, _int, scalar) - 142d2: 2206 movs r2, #6 - 142d4: 2100 movs r1, #0 - 142d6: 4620 mov r0, r4 - 142d8: 47c0 blx r8 - - int32_t angle_final = lv_obj_get_style_transform_angle(img, LV_IMG_PART_MAIN); - angle_final += ext->angle; - 142da: 89ab ldrh r3, [r5, #12] - - if(angle_final == 0) return LV_DESIGN_RES_NOT_COVER; - 142dc: 42c3 cmn r3, r0 - 142de: d01d beq.n 1431c -_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_ZOOM, transform_zoom, lv_style_int_t, _int, scalar) - 142e0: 2207 movs r2, #7 - 142e2: 2100 movs r1, #0 - 142e4: 4620 mov r0, r4 - 142e6: 47c0 blx r8 - - int32_t zoom_final = lv_obj_get_style_transform_zoom(img, LV_IMG_PART_MAIN); - zoom_final = (zoom_final * ext->zoom) >> 8; - 142e8: f8b5 8012 ldrh.w r8, [r5, #18] - 142ec: f8df 9278 ldr.w r9, [pc, #632] ; 14568 - 142f0: fb00 f808 mul.w r8, r0, r8 - 142f4: ea4f 2828 mov.w r8, r8, asr #8 - - if(zoom_final != LV_IMG_ZOOM_NONE) { - 142f8: f5b8 7f80 cmp.w r8, #256 ; 0x100 - 142fc: d012 beq.n 14324 - if(_lv_area_is_in(clip_area, &img->coords, 0) == false) return LV_DESIGN_RES_NOT_COVER; - 142fe: 2200 movs r2, #0 - 14300: f104 0110 add.w r1, r4, #16 - a.x1 += img->coords.x1; - a.y1 += img->coords.y1; - a.x2 += img->coords.x1; - a.y2 += img->coords.y1; - - if(_lv_area_is_in(clip_area, &a, 0) == false) return LV_DESIGN_RES_NOT_COVER; - 14304: 4638 mov r0, r7 - 14306: 47c8 blx r9 - 14308: b140 cbz r0, 1431c -_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_ROUNDED, line_rounded, bool, _int, scalar) -_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_COLOR, line_color, lv_color_t, _color, nonscalar) -_LV_OBJ_STYLE_SET_GET_DECLARE(LINE_OPA, line_opa, lv_opa_t, _opa, scalar) -_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_BLEND_MODE, image_blend_mode, lv_blend_mode_t, _int, scalar) -_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_RECOLOR, image_recolor, lv_color_t, _color, nonscalar) -_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_OPA, image_opa, lv_opa_t, _opa, scalar) - 1430a: 4b8a ldr r3, [pc, #552] ; (14534 ) - 1430c: f248 02ac movw r2, #32940 ; 0x80ac - 14310: 2100 movs r1, #0 - 14312: 4620 mov r0, r4 - 14314: 4798 blx r3 - } - - if(lv_obj_get_style_image_opa(img, LV_IMG_PART_MAIN) != LV_OPA_COVER) return LV_DESIGN_RES_NOT_COVER; - - return LV_DESIGN_RES_COVER; - 14316: 28ff cmp r0, #255 ; 0xff - 14318: bf08 it eq - 1431a: 2601 moveq r6, #1 - lv_draw_rect(&img->coords, clip_area, &draw_dsc); - } - } - - return LV_DESIGN_RES_OK; -} - 1431c: 4630 mov r0, r6 - 1431e: b027 add sp, #156 ; 0x9c - 14320: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - _lv_img_buf_get_transformed_area(&a, lv_obj_get_width(img), lv_obj_get_height(img), 0, zoom_final, &ext->pivot); - 14324: 4b84 ldr r3, [pc, #528] ; (14538 ) - 14326: 4620 mov r0, r4 - 14328: 4798 blx r3 - 1432a: 4b84 ldr r3, [pc, #528] ; (1453c ) - 1432c: 9003 str r0, [sp, #12] - 1432e: 4620 mov r0, r4 - 14330: 4798 blx r3 - 14332: 350e adds r5, #14 - 14334: 4602 mov r2, r0 - 14336: e9cd 8500 strd r8, r5, [sp] - 1433a: 9903 ldr r1, [sp, #12] - 1433c: 4d80 ldr r5, [pc, #512] ; (14540 ) - 1433e: 2300 movs r3, #0 - 14340: a811 add r0, sp, #68 ; 0x44 - 14342: 47a8 blx r5 - a.x1 += img->coords.x1; - 14344: 8a22 ldrh r2, [r4, #16] - 14346: f8bd 3044 ldrh.w r3, [sp, #68] ; 0x44 - a.y1 += img->coords.y1; - 1434a: f8bd 1046 ldrh.w r1, [sp, #70] ; 0x46 - a.x1 += img->coords.x1; - 1434e: 4413 add r3, r2 - 14350: f8ad 3044 strh.w r3, [sp, #68] ; 0x44 - a.y1 += img->coords.y1; - 14354: 8a63 ldrh r3, [r4, #18] - 14356: 4419 add r1, r3 - 14358: f8ad 1046 strh.w r1, [sp, #70] ; 0x46 - a.x2 += img->coords.x1; - 1435c: f8bd 1048 ldrh.w r1, [sp, #72] ; 0x48 - 14360: 440a add r2, r1 - 14362: f8ad 2048 strh.w r2, [sp, #72] ; 0x48 - a.y2 += img->coords.y1; - 14366: f8bd 204a ldrh.w r2, [sp, #74] ; 0x4a - 1436a: 4413 add r3, r2 - 1436c: f8ad 304a strh.w r3, [sp, #74] ; 0x4a - if(_lv_area_is_in(clip_area, &a, 0) == false) return LV_DESIGN_RES_NOT_COVER; - 14370: 2200 movs r2, #0 - 14372: a911 add r1, sp, #68 ; 0x44 - 14374: e7c6 b.n 14304 - else if(mode == LV_DESIGN_DRAW_MAIN) { - 14376: 2e00 cmp r6, #0 - 14378: f040 8176 bne.w 14668 - if(ext->h == 0 || ext->w == 0) return true; - 1437c: f9b0 300a ldrsh.w r3, [r0, #10] - 14380: 2b00 cmp r3, #0 - 14382: f000 816f beq.w 14664 - 14386: f9b0 3008 ldrsh.w r3, [r0, #8] - 1438a: 2b00 cmp r3, #0 - 1438c: f000 816a beq.w 14664 - lv_obj_get_coords(img, &img_coords); - 14390: a904 add r1, sp, #16 - 14392: 4b6c ldr r3, [pc, #432] ; (14544 ) -_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_POST, border_post, bool, _int, scalar) - 14394: f8df 91cc ldr.w r9, [pc, #460] ; 14564 - 14398: 4620 mov r0, r4 - 1439a: 4798 blx r3 - lv_draw_rect_dsc_init(&bg_dsc); - 1439c: 4b6a ldr r3, [pc, #424] ; (14548 ) - 1439e: a811 add r0, sp, #68 ; 0x44 - 143a0: 4798 blx r3 - lv_obj_init_draw_rect_dsc(img, LV_IMG_PART_MAIN, &bg_dsc); - 143a2: aa11 add r2, sp, #68 ; 0x44 - 143a4: 4631 mov r1, r6 - 143a6: 4620 mov r0, r4 - 143a8: 4b68 ldr r3, [pc, #416] ; (1454c ) - 143aa: 4798 blx r3 - 143ac: 2233 movs r2, #51 ; 0x33 - 143ae: 4631 mov r1, r6 - 143b0: 4620 mov r0, r4 - 143b2: 47c8 blx r9 - if(lv_obj_get_style_border_post(img, LV_OBJ_PART_MAIN)) { - 143b4: b108 cbz r0, 143ba - bg_dsc.border_opa = LV_OPA_TRANSP; - 143b6: f88d 6058 strb.w r6, [sp, #88] ; 0x58 -_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_ZOOM, transform_zoom, lv_style_int_t, _int, scalar) - 143ba: 2207 movs r2, #7 - 143bc: 2100 movs r1, #0 - 143be: 4620 mov r0, r4 - 143c0: 47c8 blx r9 - zoom_final = (zoom_final * ext->zoom) >> 8; - 143c2: f8b5 8012 ldrh.w r8, [r5, #18] - 143c6: fb00 f008 mul.w r0, r0, r8 - if(zoom_final == 0) return LV_DESIGN_RES_OK; - 143ca: ea5f 2820 movs.w r8, r0, asr #8 - 143ce: d0a5 beq.n 1431c -_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_ANGLE, transform_angle, lv_style_int_t, _int, scalar) - 143d0: 2206 movs r2, #6 - 143d2: 2100 movs r1, #0 - 143d4: 4620 mov r0, r4 - 143d6: 47c8 blx r9 - * @param area_p pointer to an area - * @return the height of the area (if y1 == y2 -> height = 1) - */ -static inline lv_coord_t lv_area_get_height(const lv_area_t * area_p) -{ - return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - 143d8: f8bd 2016 ldrh.w r2, [sp, #22] - 143dc: f8bd 3012 ldrh.w r3, [sp, #18] - return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - 143e0: f8bd 1014 ldrh.w r1, [sp, #20] - angle_final += ext->angle; - 143e4: f8b5 a00c ldrh.w sl, [r5, #12] - _lv_img_buf_get_transformed_area(&bg_coords, lv_area_get_width(&img_coords), lv_area_get_height(&img_coords), - 143e8: f8df b154 ldr.w fp, [pc, #340] ; 14540 - return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - 143ec: 3201 adds r2, #1 - 143ee: 1ad2 subs r2, r2, r3 - return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - 143f0: f8bd 3010 ldrh.w r3, [sp, #16] - 143f4: 3101 adds r1, #1 - angle_final += ext->angle; - 143f6: 4482 add sl, r0 - 143f8: 1ac9 subs r1, r1, r3 - _lv_img_buf_get_transformed_area(&bg_coords, lv_area_get_width(&img_coords), lv_area_get_height(&img_coords), - 143fa: fa1f f888 uxth.w r8, r8 - 143fe: f105 030e add.w r3, r5, #14 - 14402: e9cd 8300 strd r8, r3, [sp] - 14406: b212 sxth r2, r2 - 14408: fa0f f38a sxth.w r3, sl - 1440c: b209 sxth r1, r1 - 1440e: a806 add r0, sp, #24 - 14410: 47d8 blx fp - bg_coords.x1 += img_coords.x1; - 14412: f8bd 2010 ldrh.w r2, [sp, #16] - 14416: f8bd 3018 ldrh.w r3, [sp, #24] - bg_coords.y1 += img_coords.y1; - 1441a: f8bd 101a ldrh.w r1, [sp, #26] - bg_coords.x1 += img_coords.x1; - 1441e: 4413 add r3, r2 - 14420: f8ad 3018 strh.w r3, [sp, #24] - bg_coords.y1 += img_coords.y1; - 14424: f8bd 3012 ldrh.w r3, [sp, #18] - 14428: 4419 add r1, r3 - 1442a: f8ad 101a strh.w r1, [sp, #26] - bg_coords.x2 += img_coords.x1; - 1442e: f8bd 101c ldrh.w r1, [sp, #28] - 14432: 440a add r2, r1 - 14434: f8ad 201c strh.w r2, [sp, #28] - bg_coords.y2 += img_coords.y1; - 14438: f8bd 201e ldrh.w r2, [sp, #30] -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar) - 1443c: 2100 movs r1, #0 - 1443e: 4413 add r3, r2 - 14440: 4620 mov r0, r4 - 14442: 2212 movs r2, #18 - 14444: f8ad 301e strh.w r3, [sp, #30] - 14448: 47c8 blx r9 - bg_coords.x1 -= lv_obj_get_style_pad_left(img, LV_IMG_PART_MAIN); - 1444a: f8bd 3018 ldrh.w r3, [sp, #24] - 1444e: 1a18 subs r0, r3, r0 - 14450: f8ad 0018 strh.w r0, [sp, #24] -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar) - 14454: 2213 movs r2, #19 - 14456: 2100 movs r1, #0 - 14458: 4620 mov r0, r4 - 1445a: 47c8 blx r9 - bg_coords.x2 += lv_obj_get_style_pad_right(img, LV_IMG_PART_MAIN); - 1445c: f8bd 301c ldrh.w r3, [sp, #28] - 14460: 4418 add r0, r3 - 14462: f8ad 001c strh.w r0, [sp, #28] -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar) - 14466: 2210 movs r2, #16 - 14468: 2100 movs r1, #0 - 1446a: 4620 mov r0, r4 - 1446c: 47c8 blx r9 - bg_coords.y1 -= lv_obj_get_style_pad_top(img, LV_IMG_PART_MAIN); - 1446e: f8bd 301a ldrh.w r3, [sp, #26] - 14472: 1a18 subs r0, r3, r0 - 14474: f8ad 001a strh.w r0, [sp, #26] -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar) - 14478: 2211 movs r2, #17 - 1447a: 2100 movs r1, #0 - 1447c: 4620 mov r0, r4 - 1447e: 47c8 blx r9 - bg_coords.y2 += lv_obj_get_style_pad_bottom(img, LV_IMG_PART_MAIN); - 14480: f8bd 301e ldrh.w r3, [sp, #30] - 14484: 4418 add r0, r3 - 14486: f8ad 001e strh.w r0, [sp, #30] - lv_draw_rect(&bg_coords, clip_area, &bg_dsc); - 1448a: aa11 add r2, sp, #68 ; 0x44 - 1448c: 4639 mov r1, r7 - 1448e: a806 add r0, sp, #24 - 14490: 4b2f ldr r3, [pc, #188] ; (14550 ) - 14492: 4798 blx r3 -_LV_OBJ_STYLE_SET_GET_DECLARE(CLIP_CORNER, clip_corner, bool, _int, scalar) - 14494: 2202 movs r2, #2 - 14496: 2100 movs r1, #0 - 14498: 4620 mov r0, r4 - 1449a: 47c8 blx r9 - if(lv_obj_get_style_clip_corner(img, LV_OBJ_PART_MAIN)) { - 1449c: b198 cbz r0, 144c6 - lv_draw_mask_radius_param_t * mp = _lv_mem_buf_get(sizeof(lv_draw_mask_radius_param_t)); - 1449e: 4b2d ldr r3, [pc, #180] ; (14554 ) - 144a0: 201c movs r0, #28 - 144a2: 4798 blx r3 -_LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar) - 144a4: 2201 movs r2, #1 - 144a6: 4683 mov fp, r0 - 144a8: 2100 movs r1, #0 - 144aa: 4620 mov r0, r4 - 144ac: 47c8 blx r9 - lv_draw_mask_radius_init(mp, &bg_coords, r, false); - 144ae: 2300 movs r3, #0 - 144b0: 4602 mov r2, r0 - 144b2: a906 add r1, sp, #24 - 144b4: 4658 mov r0, fp - 144b6: f8df 90b4 ldr.w r9, [pc, #180] ; 1456c - 144ba: 47c8 blx r9 - lv_draw_mask_add(mp, img + 8); - 144bc: 4b26 ldr r3, [pc, #152] ; (14558 ) - 144be: f504 7118 add.w r1, r4, #608 ; 0x260 - 144c2: 4658 mov r0, fp - 144c4: 4798 blx r3 - if(ext->src_type == LV_IMG_SRC_FILE || ext->src_type == LV_IMG_SRC_VARIABLE) { - 144c6: 7d2b ldrb r3, [r5, #20] - 144c8: 079a lsls r2, r3, #30 - 144ca: f100 809d bmi.w 14608 - img_coords.x1 += ext->offset.x; - 144ce: f8bd 2010 ldrh.w r2, [sp, #16] - 144d2: 88ab ldrh r3, [r5, #4] - if(img_coords.x1 > img->coords.x1) img_coords.x1 -= ext->w; - 144d4: f9b4 c010 ldrsh.w ip, [r4, #16] - img_coords.y1 += ext->offset.y; - 144d8: 88e9 ldrh r1, [r5, #6] - img_coords.x1 += ext->offset.x; - 144da: 441a add r2, r3 - 144dc: b290 uxth r0, r2 - 144de: b212 sxth r2, r2 - if(img_coords.x1 > img->coords.x1) img_coords.x1 -= ext->w; - 144e0: 4594 cmp ip, r2 - img_coords.x1 += ext->offset.x; - 144e2: f8ad 2010 strh.w r2, [sp, #16] - if(img_coords.x1 > img->coords.x1) img_coords.x1 -= ext->w; - 144e6: bfb8 it lt - 144e8: 892a ldrhlt r2, [r5, #8] - img_coords.y1 += ext->offset.y; - 144ea: f8bd 3012 ldrh.w r3, [sp, #18] - if(img_coords.x1 > img->coords.x1) img_coords.x1 -= ext->w; - 144ee: bfbc itt lt - 144f0: 1a82 sublt r2, r0, r2 - 144f2: f8ad 2010 strhlt.w r2, [sp, #16] - img_coords.y1 += ext->offset.y; - 144f6: 440b add r3, r1 - if(img_coords.y1 > img->coords.y1) img_coords.y1 -= ext->h; - 144f8: f9b4 2012 ldrsh.w r2, [r4, #18] - img_coords.y1 += ext->offset.y; - 144fc: b299 uxth r1, r3 - 144fe: b21b sxth r3, r3 - if(img_coords.y1 > img->coords.y1) img_coords.y1 -= ext->h; - 14500: 429a cmp r2, r3 - img_coords.y1 += ext->offset.y; - 14502: f8ad 3012 strh.w r3, [sp, #18] - if(img_coords.y1 > img->coords.y1) img_coords.y1 -= ext->h; - 14506: bfbe ittt lt - 14508: 896b ldrhlt r3, [r5, #10] - 1450a: 1acb sublt r3, r1, r3 - 1450c: f8ad 3012 strhlt.w r3, [sp, #18] - lv_draw_img_dsc_init(&img_dsc); - 14510: a80a add r0, sp, #40 ; 0x28 - 14512: 4b12 ldr r3, [pc, #72] ; (1455c ) - 14514: 4798 blx r3 - lv_obj_init_draw_img_dsc(img, LV_IMG_PART_MAIN, &img_dsc); - 14516: 4b12 ldr r3, [pc, #72] ; (14560 ) - 14518: aa0a add r2, sp, #40 ; 0x28 - 1451a: 2100 movs r1, #0 - 1451c: 4620 mov r0, r4 - 1451e: 4798 blx r3 - img_dsc.zoom = zoom_final; - 14520: f8ad 8030 strh.w r8, [sp, #48] ; 0x30 - if(img_dsc.zoom == 0) return LV_DESIGN_RES_OK; - 14524: f1b8 0f00 cmp.w r8, #0 - 14528: d122 bne.n 14570 - return LV_DESIGN_RES_OK; - 1452a: 2600 movs r6, #0 - 1452c: e6f6 b.n 1431c - 1452e: bf00 nop - 14530: 0000422d .word 0x0000422d - 14534: 00003abd .word 0x00003abd - 14538: 00002671 .word 0x00002671 - 1453c: 000026c1 .word 0x000026c1 - 14540: 0000c2e5 .word 0x0000c2e5 - 14544: 00002559 .word 0x00002559 - 14548: 00009e25 .word 0x00009e25 - 1454c: 0000452d .word 0x0000452d - 14550: 00009e71 .word 0x00009e71 - 14554: 0000f145 .word 0x0000f145 - 14558: 00009995 .word 0x00009995 - 1455c: 000077dd .word 0x000077dd - 14560: 00004b21 .word 0x00004b21 - 14564: 00003995 .word 0x00003995 - 14568: 0000e315 .word 0x0000e315 - 1456c: 00009b99 .word 0x00009b99 - img_dsc.pivot.x = ext->pivot.x; - 14570: 89eb ldrh r3, [r5, #14] - 14572: f8ad 302c strh.w r3, [sp, #44] ; 0x2c - img_dsc.pivot.y = ext->pivot.y; - 14576: 8a2b ldrh r3, [r5, #16] - 14578: f8ad 302e strh.w r3, [sp, #46] ; 0x2e - img_dsc.antialias = ext->antialias; - 1457c: 7d6b ldrb r3, [r5, #21] - 1457e: f89d 2037 ldrb.w r2, [sp, #55] ; 0x37 - lv_draw_img(&cords_tmp, clip_area, ext->src, &img_dsc); - 14582: 4c50 ldr r4, [pc, #320] ; (146c4 ) - img_dsc.angle = angle_final; - 14584: f8ad a02a strh.w sl, [sp, #42] ; 0x2a - img_dsc.antialias = ext->antialias; - 14588: f3c3 0300 ubfx r3, r3, #0, #1 - 1458c: f363 0200 bfi r2, r3, #0, #1 - 14590: f88d 2037 strb.w r2, [sp, #55] ; 0x37 - cords_tmp.y1 = img_coords.y1; - 14594: f9bd 3012 ldrsh.w r3, [sp, #18] - cords_tmp.y2 = img_coords.y1 + ext->h - 1; - 14598: 896a ldrh r2, [r5, #10] - cords_tmp.y1 = img_coords.y1; - 1459a: f8ad 3022 strh.w r3, [sp, #34] ; 0x22 - cords_tmp.y2 = img_coords.y1 + ext->h - 1; - 1459e: 3b01 subs r3, #1 - 145a0: 4413 add r3, r2 - 145a2: b21b sxth r3, r3 - for(; cords_tmp.y1 <= img_coords.y2; cords_tmp.y1 += ext->h, cords_tmp.y2 += ext->h) { - 145a4: f9bd 2022 ldrsh.w r2, [sp, #34] ; 0x22 - cords_tmp.y2 = img_coords.y1 + ext->h - 1; - 145a8: f8ad 3026 strh.w r3, [sp, #38] ; 0x26 - for(; cords_tmp.y1 <= img_coords.y2; cords_tmp.y1 += ext->h, cords_tmp.y2 += ext->h) { - 145ac: f9bd 3016 ldrsh.w r3, [sp, #22] - 145b0: 429a cmp r2, r3 - 145b2: f73f aeb3 bgt.w 1431c - cords_tmp.x1 = img_coords.x1; - 145b6: f9bd 3010 ldrsh.w r3, [sp, #16] - cords_tmp.x2 = img_coords.x1 + ext->w - 1; - 145ba: 892a ldrh r2, [r5, #8] - cords_tmp.x1 = img_coords.x1; - 145bc: f8ad 3020 strh.w r3, [sp, #32] - cords_tmp.x2 = img_coords.x1 + ext->w - 1; - 145c0: 3b01 subs r3, #1 - for(; cords_tmp.x1 <= img_coords.x2; cords_tmp.x1 += ext->w, cords_tmp.x2 += ext->w) { - 145c2: 4413 add r3, r2 - 145c4: b21b sxth r3, r3 - 145c6: f9bd 2020 ldrsh.w r2, [sp, #32] - cords_tmp.x2 = img_coords.x1 + ext->w - 1; - 145ca: f8ad 3024 strh.w r3, [sp, #36] ; 0x24 - for(; cords_tmp.x1 <= img_coords.x2; cords_tmp.x1 += ext->w, cords_tmp.x2 += ext->w) { - 145ce: f9bd 3014 ldrsh.w r3, [sp, #20] - 145d2: 429a cmp r2, r3 - 145d4: dd0a ble.n 145ec - for(; cords_tmp.y1 <= img_coords.y2; cords_tmp.y1 += ext->h, cords_tmp.y2 += ext->h) { - 145d6: 896b ldrh r3, [r5, #10] - 145d8: f8bd 2022 ldrh.w r2, [sp, #34] ; 0x22 - 145dc: 441a add r2, r3 - 145de: f8ad 2022 strh.w r2, [sp, #34] ; 0x22 - 145e2: f8bd 2026 ldrh.w r2, [sp, #38] ; 0x26 - 145e6: 4413 add r3, r2 - 145e8: b21b sxth r3, r3 - 145ea: e7db b.n 145a4 - lv_draw_img(&cords_tmp, clip_area, ext->src, &img_dsc); - 145ec: 682a ldr r2, [r5, #0] - 145ee: ab0a add r3, sp, #40 ; 0x28 - 145f0: 4639 mov r1, r7 - 145f2: a808 add r0, sp, #32 - 145f4: 47a0 blx r4 - for(; cords_tmp.x1 <= img_coords.x2; cords_tmp.x1 += ext->w, cords_tmp.x2 += ext->w) { - 145f6: f8bd 2020 ldrh.w r2, [sp, #32] - 145fa: 892b ldrh r3, [r5, #8] - 145fc: 441a add r2, r3 - 145fe: f8ad 2020 strh.w r2, [sp, #32] - 14602: f8bd 2024 ldrh.w r2, [sp, #36] ; 0x24 - 14606: e7dc b.n 145c2 - else if(ext->src_type == LV_IMG_SRC_SYMBOL) { - 14608: f003 0303 and.w r3, r3, #3 - 1460c: 2b02 cmp r3, #2 - 1460e: d118 bne.n 14642 - lv_draw_label_dsc_init(&label_dsc); - 14610: a80a add r0, sp, #40 ; 0x28 - 14612: 4b2d ldr r3, [pc, #180] ; (146c8 ) - 14614: 4798 blx r3 - lv_obj_init_draw_label_dsc(img, LV_IMG_PART_MAIN, &label_dsc); - 14616: aa0a add r2, sp, #40 ; 0x28 - 14618: 4620 mov r0, r4 - 1461a: 4b2c ldr r3, [pc, #176] ; (146cc ) - 1461c: 2100 movs r1, #0 - 1461e: 4798 blx r3 -_LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_RECOLOR, image_recolor, lv_color_t, _color, nonscalar) - 14620: 4b2b ldr r3, [pc, #172] ; (146d0 ) - 14622: f248 02a9 movw r2, #32937 ; 0x80a9 - 14626: 2100 movs r1, #0 - 14628: 4620 mov r0, r4 - 1462a: 4798 blx r3 - lv_draw_label(&img_coords, clip_area, &label_dsc, ext->src, NULL); - 1462c: 2300 movs r3, #0 - 1462e: 9300 str r3, [sp, #0] - label_dsc.color = lv_obj_get_style_image_recolor(img, LV_IMG_PART_MAIN); - 14630: f8ad 0028 strh.w r0, [sp, #40] ; 0x28 - lv_draw_label(&img_coords, clip_area, &label_dsc, ext->src, NULL); - 14634: 682b ldr r3, [r5, #0] - 14636: 4c27 ldr r4, [pc, #156] ; (146d4 ) - 14638: aa0a add r2, sp, #40 ; 0x28 - 1463a: 4639 mov r1, r7 - 1463c: a804 add r0, sp, #16 - 1463e: 47a0 blx r4 - 14640: e66c b.n 1431c - LV_LOG_WARN("lv_img_design: image source type is unknown"); - 14642: 4b25 ldr r3, [pc, #148] ; (146d8 ) - 14644: 9300 str r3, [sp, #0] - 14646: 4925 ldr r1, [pc, #148] ; (146dc ) - 14648: 4b25 ldr r3, [pc, #148] ; (146e0 ) - 1464a: 4d26 ldr r5, [pc, #152] ; (146e4 ) - 1464c: f240 22bb movw r2, #699 ; 0x2bb - 14650: 2002 movs r0, #2 - 14652: 47a8 blx r5 - lv_draw_img(&img->coords, clip_area, NULL, NULL); - 14654: 2300 movs r3, #0 - 14656: f104 0010 add.w r0, r4, #16 - 1465a: 461a mov r2, r3 - 1465c: 4c19 ldr r4, [pc, #100] ; (146c4 ) - 1465e: 4639 mov r1, r7 - 14660: 47a0 blx r4 - 14662: e65b b.n 1431c - if(ext->h == 0 || ext->w == 0) return true; - 14664: 2601 movs r6, #1 - 14666: e659 b.n 1431c - else if(mode == LV_DESIGN_DRAW_POST) { - 14668: 2e01 cmp r6, #1 - 1466a: f47f af5e bne.w 1452a -_LV_OBJ_STYLE_SET_GET_DECLARE(CLIP_CORNER, clip_corner, bool, _int, scalar) - 1466e: 4d1e ldr r5, [pc, #120] ; (146e8 ) - 14670: 2202 movs r2, #2 - 14672: 2100 movs r1, #0 - 14674: 4620 mov r0, r4 - 14676: 47a8 blx r5 - if(lv_obj_get_style_clip_corner(img, LV_OBJ_PART_MAIN)) { - 14678: b128 cbz r0, 14686 - lv_draw_mask_radius_param_t * param = lv_draw_mask_remove_custom(img + 8); - 1467a: 4b1c ldr r3, [pc, #112] ; (146ec ) - 1467c: f504 7018 add.w r0, r4, #608 ; 0x260 - 14680: 4798 blx r3 - _lv_mem_buf_release(param); - 14682: 4b1b ldr r3, [pc, #108] ; (146f0 ) - 14684: 4798 blx r3 - lv_draw_rect_dsc_init(&draw_dsc); - 14686: a811 add r0, sp, #68 ; 0x44 - 14688: 4b1a ldr r3, [pc, #104] ; (146f4 ) - 1468a: 4798 blx r3 -_LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_POST, border_post, bool, _int, scalar) - 1468c: 2233 movs r2, #51 ; 0x33 - 1468e: 2100 movs r1, #0 - 14690: 4620 mov r0, r4 - 14692: 47a8 blx r5 - if(lv_obj_get_style_border_post(img, LV_OBJ_PART_MAIN)) { - 14694: 2800 cmp r0, #0 - 14696: f43f af48 beq.w 1452a - draw_dsc.bg_opa = LV_OPA_TRANSP; - 1469a: 2100 movs r1, #0 - 1469c: f88d 1050 strb.w r1, [sp, #80] ; 0x50 - draw_dsc.pattern_opa = LV_OPA_TRANSP; - 146a0: f88d 107a strb.w r1, [sp, #122] ; 0x7a - draw_dsc.shadow_opa = LV_OPA_TRANSP; - 146a4: f88d 106c strb.w r1, [sp, #108] ; 0x6c - lv_obj_init_draw_rect_dsc(img, LV_OBJ_PART_MAIN, &draw_dsc); - 146a8: aa11 add r2, sp, #68 ; 0x44 - 146aa: 4620 mov r0, r4 - 146ac: 4b12 ldr r3, [pc, #72] ; (146f8 ) - 146ae: 4798 blx r3 - lv_draw_rect(&img->coords, clip_area, &draw_dsc); - 146b0: 4b12 ldr r3, [pc, #72] ; (146fc ) - 146b2: aa11 add r2, sp, #68 ; 0x44 - 146b4: 4639 mov r1, r7 - 146b6: f104 0010 add.w r0, r4, #16 - 146ba: 4798 blx r3 - 146bc: e735 b.n 1452a - if(lv_obj_get_style_clip_corner(img, LV_IMG_PART_MAIN)) return LV_DESIGN_RES_MASKED; - 146be: 2603 movs r6, #3 - 146c0: e62c b.n 1431c - 146c2: bf00 nop - 146c4: 00007845 .word 0x00007845 - 146c8: 00007ac9 .word 0x00007ac9 - 146cc: 00004a69 .word 0x00004a69 - 146d0: 00003a39 .word 0x00003a39 - 146d4: 00007af9 .word 0x00007af9 - 146d8: 00027847 .word 0x00027847 - 146dc: 0002bcfc .word 0x0002bcfc - 146e0: 0002bdb5 .word 0x0002bdb5 - 146e4: 0000eb79 .word 0x0000eb79 - 146e8: 00003995 .word 0x00003995 - 146ec: 00009a4d .word 0x00009a4d - 146f0: 0000edf9 .word 0x0000edf9 - 146f4: 00009e25 .word 0x00009e25 - 146f8: 0000452d .word 0x0000452d - 146fc: 00009e71 .word 0x00009e71 - -00014700 : -{ - 14700: b573 push {r0, r1, r4, r5, r6, lr} - LV_ASSERT_OBJ(img, LV_OBJX_NAME); - 14702: 4b0d ldr r3, [pc, #52] ; (14738 ) -{ - 14704: 4604 mov r4, r0 - LV_ASSERT_OBJ(img, LV_OBJX_NAME); - 14706: 4798 blx r3 - 14708: 4605 mov r5, r0 - 1470a: b968 cbnz r0, 14728 - 1470c: 4b0b ldr r3, [pc, #44] ; (1473c ) - 1470e: 490c ldr r1, [pc, #48] ; (14740 ) - 14710: 9300 str r3, [sp, #0] - 14712: f44f 72e7 mov.w r2, #462 ; 0x1ce - 14716: 2003 movs r0, #3 - 14718: 4e0a ldr r6, [pc, #40] ; (14744 ) - 1471a: 47b0 blx r6 - 1471c: 480a ldr r0, [pc, #40] ; (14748 ) - 1471e: 490b ldr r1, [pc, #44] ; (1474c ) - 14720: 4622 mov r2, r4 - 14722: 462b mov r3, r5 - 14724: 4788 blx r1 - 14726: e7fe b.n 14726 - lv_img_ext_t * ext = lv_obj_get_ext_attr(img); - 14728: 4b09 ldr r3, [pc, #36] ; (14750 ) - 1472a: 4620 mov r0, r4 - 1472c: 4798 blx r3 - return ext->auto_size == 0 ? false : true; - 1472e: 7d00 ldrb r0, [r0, #20] -} - 14730: f3c0 0080 ubfx r0, r0, #2, #1 - 14734: b002 add sp, #8 - 14736: bd70 pop {r4, r5, r6, pc} - 14738: 00001a65 .word 0x00001a65 - 1473c: 0002be24 .word 0x0002be24 - 14740: 0002bcfc .word 0x0002bcfc - 14744: 0000eb79 .word 0x0000eb79 - 14748: 00026943 .word 0x00026943 - 1474c: 00001a6d .word 0x00001a6d - 14750: 0000422d .word 0x0000422d - -00014754 : -{ - 14754: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} - LV_ASSERT_OBJ(img, LV_OBJX_NAME); - 14758: f8df a244 ldr.w sl, [pc, #580] ; 149a0 -{ - 1475c: b088 sub sp, #32 - 1475e: 4606 mov r6, r0 - 14760: 460f mov r7, r1 - LV_ASSERT_OBJ(img, LV_OBJX_NAME); - 14762: 47d0 blx sl - 14764: 4604 mov r4, r0 - 14766: b960 cbnz r0, 14782 - 14768: 4b77 ldr r3, [pc, #476] ; (14948 ) - 1476a: 4978 ldr r1, [pc, #480] ; (1494c ) - 1476c: 9300 str r3, [sp, #0] - 1476e: 228f movs r2, #143 ; 0x8f - 14770: 2003 movs r0, #3 - 14772: 4d77 ldr r5, [pc, #476] ; (14950 ) - 14774: 47a8 blx r5 - 14776: 4877 ldr r0, [pc, #476] ; (14954 ) - 14778: 4977 ldr r1, [pc, #476] ; (14958 ) - 1477a: 4632 mov r2, r6 - 1477c: 4623 mov r3, r4 - 1477e: 4788 blx r1 - 14780: e7fe b.n 14780 - lv_img_src_t src_type = lv_img_src_get_type(src_img); - 14782: 4b76 ldr r3, [pc, #472] ; (1495c ) - 14784: 4638 mov r0, r7 - 14786: 4798 blx r3 - lv_img_ext_t * ext = lv_obj_get_ext_attr(img); - 14788: 4b75 ldr r3, [pc, #468] ; (14960 ) - lv_img_src_t src_type = lv_img_src_get_type(src_img); - 1478a: 4605 mov r5, r0 - lv_img_ext_t * ext = lv_obj_get_ext_attr(img); - 1478c: 4630 mov r0, r6 - 1478e: 4798 blx r3 - switch(src_type) { - 14790: 2d02 cmp r5, #2 - lv_img_ext_t * ext = lv_obj_get_ext_attr(img); - 14792: 4604 mov r4, r0 - switch(src_type) { - 14794: d923 bls.n 147de - LV_LOG_WARN("lv_img_set_src: unknown type"); - 14796: 4b73 ldr r3, [pc, #460] ; (14964 ) - 14798: 9300 str r3, [sp, #0] - 1479a: 496c ldr r1, [pc, #432] ; (1494c ) - 1479c: 4b6a ldr r3, [pc, #424] ; (14948 ) - 1479e: f8df 81b0 ldr.w r8, [pc, #432] ; 14950 - 147a2: 22a0 movs r2, #160 ; 0xa0 - 147a4: 2002 movs r0, #2 - 147a6: 47c0 blx r8 - if(src_type == LV_IMG_SRC_UNKNOWN) { - 147a8: 2d03 cmp r5, #3 - 147aa: d118 bne.n 147de - LV_LOG_WARN("lv_img_set_src: unknown image type"); - 147ac: 4b6e ldr r3, [pc, #440] ; (14968 ) - 147ae: 9300 str r3, [sp, #0] - 147b0: 4966 ldr r1, [pc, #408] ; (1494c ) - 147b2: 4b65 ldr r3, [pc, #404] ; (14948 ) - 147b4: 22a6 movs r2, #166 ; 0xa6 - 147b6: 2002 movs r0, #2 - 147b8: 47c0 blx r8 - if(ext->src_type == LV_IMG_SRC_SYMBOL || ext->src_type == LV_IMG_SRC_FILE) { - 147ba: 7d23 ldrb r3, [r4, #20] - 147bc: f003 0303 and.w r3, r3, #3 - 147c0: 3b01 subs r3, #1 - 147c2: 2b01 cmp r3, #1 - 147c4: d802 bhi.n 147cc - lv_mem_free(ext->src); - 147c6: 6820 ldr r0, [r4, #0] - 147c8: 4b68 ldr r3, [pc, #416] ; (1496c ) - 147ca: 4798 blx r3 - ext->src = NULL; - 147cc: 2300 movs r3, #0 - 147ce: 6023 str r3, [r4, #0] - ext->src_type = LV_IMG_SRC_UNKNOWN; - 147d0: 7d23 ldrb r3, [r4, #20] - 147d2: f043 0303 orr.w r3, r3, #3 - 147d6: 7523 strb r3, [r4, #20] -} - 147d8: b008 add sp, #32 - 147da: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} - lv_img_decoder_get_info(src_img, &header); - 147de: 4b64 ldr r3, [pc, #400] ; (14970 ) - 147e0: a906 add r1, sp, #24 - 147e2: 4638 mov r0, r7 - 147e4: 4798 blx r3 - if(src_type == LV_IMG_SRC_VARIABLE) { - 147e6: 2d00 cmp r5, #0 - 147e8: d146 bne.n 14878 - LV_LOG_INFO("lv_img_set_src: `LV_IMG_SRC_VARIABLE` type found"); - 147ea: 4b62 ldr r3, [pc, #392] ; (14974 ) - 147ec: 9300 str r3, [sp, #0] - 147ee: 4957 ldr r1, [pc, #348] ; (1494c ) - 147f0: 4b55 ldr r3, [pc, #340] ; (14948 ) - 147f2: f8df 815c ldr.w r8, [pc, #348] ; 14950 - 147f6: 22b4 movs r2, #180 ; 0xb4 - 147f8: 2001 movs r0, #1 - 147fa: 47c0 blx r8 - if(ext->src_type == LV_IMG_SRC_FILE || ext->src_type == LV_IMG_SRC_SYMBOL) { - 147fc: 7d23 ldrb r3, [r4, #20] - 147fe: f003 0303 and.w r3, r3, #3 - 14802: 3b01 subs r3, #1 - 14804: 2b01 cmp r3, #1 - 14806: d802 bhi.n 1480e - lv_mem_free(ext->src); - 14808: 6820 ldr r0, [r4, #0] - 1480a: 4b58 ldr r3, [pc, #352] ; (1496c ) - 1480c: 4798 blx r3 - ext->src = src_img; - 1480e: 6027 str r7, [r4, #0] - ext->w = header.w; - 14810: 9a06 ldr r2, [sp, #24] - 14812: f3c2 238a ubfx r3, r2, #10, #11 - 14816: 8123 strh r3, [r4, #8] - ext->h = header.h; - 14818: f8bd 301a ldrh.w r3, [sp, #26] - 1481c: f3c3 114a ubfx r1, r3, #5, #11 - 14820: 8161 strh r1, [r4, #10] - ext->cf = header.cf; - 14822: f89d 1018 ldrb.w r1, [sp, #24] - ext->src_type = src_type; - 14826: f005 0503 and.w r5, r5, #3 - ext->cf = header.cf; - 1482a: f3c1 0104 ubfx r1, r1, #0, #5 - ext->src_type = src_type; - 1482e: ea45 05c1 orr.w r5, r5, r1, lsl #3 - 14832: 7d21 ldrb r1, [r4, #20] - 14834: f001 0104 and.w r1, r1, #4 - ext->pivot.y = header.h / 2; - 14838: f3c3 1389 ubfx r3, r3, #6, #10 - ext->src_type = src_type; - 1483c: 430d orrs r5, r1 - ext->pivot.x = header.w / 2; - 1483e: f3c2 22c9 ubfx r2, r2, #11, #10 - ext->pivot.y = header.h / 2; - 14842: 8223 strh r3, [r4, #16] - ext->src_type = src_type; - 14844: 7525 strb r5, [r4, #20] - if(lv_img_get_auto_size(img) != false) { - 14846: 4b4c ldr r3, [pc, #304] ; (14978 ) - ext->pivot.x = header.w / 2; - 14848: 81e2 strh r2, [r4, #14] - if(lv_img_get_auto_size(img) != false) { - 1484a: 4630 mov r0, r6 - 1484c: 4798 blx r3 - 1484e: b130 cbz r0, 1485e - lv_obj_set_size(img, ext->w, ext->h); - 14850: f9b4 200a ldrsh.w r2, [r4, #10] - 14854: f9b4 1008 ldrsh.w r1, [r4, #8] - 14858: 4b48 ldr r3, [pc, #288] ; (1497c ) - 1485a: 4630 mov r0, r6 - 1485c: 4798 blx r3 - if(ext->angle || ext->zoom != LV_IMG_ZOOM_NONE) lv_obj_refresh_ext_draw_pad(img); - 1485e: 89a3 ldrh r3, [r4, #12] - 14860: b91b cbnz r3, 1486a - 14862: 8a63 ldrh r3, [r4, #18] - 14864: f5b3 7f80 cmp.w r3, #256 ; 0x100 - 14868: d002 beq.n 14870 - 1486a: 4b45 ldr r3, [pc, #276] ; (14980 ) - 1486c: 4630 mov r0, r6 - 1486e: 4798 blx r3 - lv_obj_invalidate(img); - 14870: 4b44 ldr r3, [pc, #272] ; (14984 ) - 14872: 4630 mov r0, r6 - 14874: 4798 blx r3 - 14876: e7af b.n 147d8 - else if(src_type == LV_IMG_SRC_FILE || src_type == LV_IMG_SRC_SYMBOL) { - 14878: 1e6b subs r3, r5, #1 - 1487a: b2db uxtb r3, r3 - 1487c: 2b01 cmp r3, #1 - 1487e: d831 bhi.n 148e4 - if(ext->src != src_img) { - 14880: f8d4 9000 ldr.w r9, [r4] - 14884: 454f cmp r7, r9 - 14886: d02d beq.n 148e4 - if(ext->src_type == LV_IMG_SRC_FILE || ext->src_type == LV_IMG_SRC_SYMBOL) { - 14888: 7d23 ldrb r3, [r4, #20] - 1488a: f003 0303 and.w r3, r3, #3 - 1488e: 3b01 subs r3, #1 - const void * old_src = NULL; - 14890: 2b01 cmp r3, #1 - char * new_str = lv_mem_alloc(strlen(src_img) + 1); - 14892: 4638 mov r0, r7 - 14894: 4b3c ldr r3, [pc, #240] ; (14988 ) - const void * old_src = NULL; - 14896: bf88 it hi - 14898: f04f 0900 movhi.w r9, #0 - char * new_str = lv_mem_alloc(strlen(src_img) + 1); - 1489c: 4798 blx r3 - 1489e: 4b3b ldr r3, [pc, #236] ; (1498c ) - 148a0: 3001 adds r0, #1 - 148a2: 4798 blx r3 - 148a4: 4680 mov r8, r0 - LV_ASSERT_MEM(new_str); - 148a6: 47d0 blx sl - 148a8: 4682 mov sl, r0 - 148aa: b960 cbnz r0, 148c6 - 148ac: 4b26 ldr r3, [pc, #152] ; (14948 ) - 148ae: 4927 ldr r1, [pc, #156] ; (1494c ) - 148b0: 9300 str r3, [sp, #0] - 148b2: 22c7 movs r2, #199 ; 0xc7 - 148b4: 2003 movs r0, #3 - 148b6: 4c26 ldr r4, [pc, #152] ; (14950 ) - 148b8: 47a0 blx r4 - 148ba: 4835 ldr r0, [pc, #212] ; (14990 ) - 148bc: 4926 ldr r1, [pc, #152] ; (14958 ) - 148be: 4642 mov r2, r8 - 148c0: 4653 mov r3, sl - 148c2: 4788 blx r1 - 148c4: e7fe b.n 148c4 - if(new_str == NULL) return; - 148c6: f1b8 0f00 cmp.w r8, #0 - 148ca: d085 beq.n 147d8 - 148cc: 4b31 ldr r3, [pc, #196] ; (14994 ) - 148ce: 4639 mov r1, r7 - 148d0: 4640 mov r0, r8 - 148d2: 4798 blx r3 - ext->src = new_str; - 148d4: f8c4 8000 str.w r8, [r4] - if(old_src) lv_mem_free(old_src); - 148d8: f1b9 0f00 cmp.w r9, #0 - 148dc: d002 beq.n 148e4 - 148de: 4b23 ldr r3, [pc, #140] ; (1496c ) - 148e0: 4648 mov r0, r9 - 148e2: 4798 blx r3 - if(src_type == LV_IMG_SRC_SYMBOL) { - 148e4: 2d02 cmp r5, #2 - 148e6: d193 bne.n 14810 -_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar) - 148e8: 4b2b ldr r3, [pc, #172] ; (14998 ) -_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LETTER_SPACE, text_letter_space, lv_style_int_t, _int, scalar) - 148ea: f8df 90b8 ldr.w r9, [pc, #184] ; 149a4 -_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar) - 148ee: f248 028e movw r2, #32910 ; 0x808e - 148f2: 2100 movs r1, #0 - 148f4: 4630 mov r0, r6 - 148f6: 4798 blx r3 -_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LETTER_SPACE, text_letter_space, lv_style_int_t, _int, scalar) - 148f8: f248 0280 movw r2, #32896 ; 0x8080 -_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar) - 148fc: 4680 mov r8, r0 -_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LETTER_SPACE, text_letter_space, lv_style_int_t, _int, scalar) - 148fe: 2100 movs r1, #0 - 14900: 4630 mov r0, r6 - 14902: 47c8 blx r9 -_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LINE_SPACE, text_line_space, lv_style_int_t, _int, scalar) - 14904: f248 0281 movw r2, #32897 ; 0x8081 -_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LETTER_SPACE, text_letter_space, lv_style_int_t, _int, scalar) - 14908: 9005 str r0, [sp, #20] -_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LINE_SPACE, text_line_space, lv_style_int_t, _int, scalar) - 1490a: 2100 movs r1, #0 - 1490c: 4630 mov r0, r6 - 1490e: 47c8 blx r9 - _lv_txt_get_size(&size, src_img, font, letter_space, line_space, - 14910: f647 4218 movw r2, #31768 ; 0x7c18 - 14914: 2300 movs r3, #0 - 14916: e9cd 2301 strd r2, r3, [sp, #4] - 1491a: 9000 str r0, [sp, #0] - 1491c: 9b05 ldr r3, [sp, #20] - 1491e: 4642 mov r2, r8 - 14920: 4639 mov r1, r7 - 14922: a807 add r0, sp, #28 - 14924: 4f1d ldr r7, [pc, #116] ; (1499c ) - 14926: 47b8 blx r7 - header.w = size.x; - 14928: f8bd 201c ldrh.w r2, [sp, #28] - 1492c: f9bd 301e ldrsh.w r3, [sp, #30] - 14930: f3c2 020a ubfx r2, r2, #0, #11 - 14934: 055b lsls r3, r3, #21 - 14936: ea43 2382 orr.w r3, r3, r2, lsl #10 - 1493a: 9a06 ldr r2, [sp, #24] - 1493c: f3c2 0209 ubfx r2, r2, #0, #10 - 14940: 4313 orrs r3, r2 - 14942: 9306 str r3, [sp, #24] - 14944: e764 b.n 14810 - 14946: bf00 nop - 14948: 0002be39 .word 0x0002be39 - 1494c: 0002bcfc .word 0x0002bcfc - 14950: 0000eb79 .word 0x0000eb79 - 14954: 00026943 .word 0x00026943 - 14958: 00001a6d .word 0x00001a6d - 1495c: 00007a89 .word 0x00007a89 - 14960: 0000422d .word 0x0000422d - 14964: 0002bd2e .word 0x0002bd2e - 14968: 0002bd4b .word 0x0002bd4b - 1496c: 0000ed75 .word 0x0000ed75 - 14970: 0000d1ad .word 0x0000d1ad - 14974: 0002bd6e .word 0x0002bd6e - 14978: 00014701 .word 0x00014701 - 1497c: 00003765 .word 0x00003765 - 14980: 00002355 .word 0x00002355 - 14984: 00002a09 .word 0x00002a09 - 14988: 00017481 .word 0x00017481 - 1498c: 0000ecbd .word 0x0000ecbd - 14990: 00026842 .word 0x00026842 - 14994: 0001739d .word 0x0001739d - 14998: 00003b4d .word 0x00003b4d - 1499c: 0001042d .word 0x0001042d - 149a0: 00001a65 .word 0x00001a65 - 149a4: 00003995 .word 0x00003995 - -000149a8 : -{ - 149a8: e92d 41f3 stmdb sp!, {r0, r1, r4, r5, r6, r7, r8, lr} - lv_obj_t * img = lv_obj_create(par, copy); - 149ac: 4b53 ldr r3, [pc, #332] ; (14afc ) - LV_ASSERT_MEM(img); - 149ae: f8df 81a8 ldr.w r8, [pc, #424] ; 14b58 -{ - 149b2: 460e mov r6, r1 - 149b4: 4607 mov r7, r0 - lv_obj_t * img = lv_obj_create(par, copy); - 149b6: 4798 blx r3 - 149b8: 4605 mov r5, r0 - LV_ASSERT_MEM(img); - 149ba: 47c0 blx r8 - 149bc: 4604 mov r4, r0 - 149be: b960 cbnz r0, 149da - 149c0: 4b4f ldr r3, [pc, #316] ; (14b00 ) - 149c2: 4950 ldr r1, [pc, #320] ; (14b04 ) - 149c4: 9300 str r3, [sp, #0] - 149c6: 2242 movs r2, #66 ; 0x42 - 149c8: 2003 movs r0, #3 - 149ca: 4e4f ldr r6, [pc, #316] ; (14b08 ) - 149cc: 47b0 blx r6 - 149ce: 484f ldr r0, [pc, #316] ; (14b0c ) - 149d0: 494f ldr r1, [pc, #316] ; (14b10 ) - 149d2: 462a mov r2, r5 - 149d4: 4623 mov r3, r4 - 149d6: 4788 blx r1 - 149d8: e7fe b.n 149d8 - if(img == NULL) return NULL; - 149da: b315 cbz r5, 14a22 - if(ancestor_signal == NULL) ancestor_signal = lv_obj_get_signal_cb(img); - 149dc: 4c4d ldr r4, [pc, #308] ; (14b14 ) - 149de: 6823 ldr r3, [r4, #0] - 149e0: b91b cbnz r3, 149ea - 149e2: 4b4d ldr r3, [pc, #308] ; (14b18 ) - 149e4: 4628 mov r0, r5 - 149e6: 4798 blx r3 - 149e8: 6020 str r0, [r4, #0] - lv_img_ext_t * ext = lv_obj_allocate_ext_attr(img, sizeof(lv_img_ext_t)); - 149ea: 4b4c ldr r3, [pc, #304] ; (14b1c ) - 149ec: 2118 movs r1, #24 - 149ee: 4628 mov r0, r5 - 149f0: 4798 blx r3 - 149f2: 4604 mov r4, r0 - LV_ASSERT_MEM(ext); - 149f4: 47c0 blx r8 - 149f6: 4680 mov r8, r0 - 149f8: b960 cbnz r0, 14a14 - 149fa: 4b41 ldr r3, [pc, #260] ; (14b00 ) - 149fc: 4941 ldr r1, [pc, #260] ; (14b04 ) - 149fe: 9300 str r3, [sp, #0] - 14a00: 2249 movs r2, #73 ; 0x49 - 14a02: 2003 movs r0, #3 - 14a04: 4d40 ldr r5, [pc, #256] ; (14b08 ) - 14a06: 47a8 blx r5 - 14a08: 4840 ldr r0, [pc, #256] ; (14b0c ) - 14a0a: 4941 ldr r1, [pc, #260] ; (14b10 ) - 14a0c: 4622 mov r2, r4 - 14a0e: 4643 mov r3, r8 - 14a10: 4788 blx r1 - 14a12: e7fe b.n 14a12 - if(ext == NULL) { - 14a14: f04f 0800 mov.w r8, #0 - 14a18: b93c cbnz r4, 14a2a - lv_obj_del(img); - 14a1a: 4628 mov r0, r5 - 14a1c: 4b40 ldr r3, [pc, #256] ; (14b20 ) - 14a1e: 4798 blx r3 - return NULL; - 14a20: 4625 mov r5, r4 -} - 14a22: 4628 mov r0, r5 - 14a24: b002 add sp, #8 - 14a26: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} - ext->src_type = LV_IMG_SRC_UNKNOWN; - 14a2a: 7d23 ldrb r3, [r4, #20] - ext->src = NULL; - 14a2c: f8c4 8000 str.w r8, [r4] - ext->src_type = LV_IMG_SRC_UNKNOWN; - 14a30: f003 0304 and.w r3, r3, #4 - 14a34: f043 0303 orr.w r3, r3, #3 - 14a38: 7523 strb r3, [r4, #20] - ext->w = lv_obj_get_width(img); - 14a3a: 4628 mov r0, r5 - 14a3c: 4b39 ldr r3, [pc, #228] ; (14b24 ) - 14a3e: 4798 blx r3 - ext->h = lv_obj_get_height(img); - 14a40: 4b39 ldr r3, [pc, #228] ; (14b28 ) - ext->w = lv_obj_get_width(img); - 14a42: 8120 strh r0, [r4, #8] - ext->h = lv_obj_get_height(img); - 14a44: 4628 mov r0, r5 - 14a46: 4798 blx r3 - ext->pivot.y = 0; - 14a48: f04f 7380 mov.w r3, #16777216 ; 0x1000000 - 14a4c: 6123 str r3, [r4, #16] - ext->auto_size = 1; - 14a4e: 8aa3 ldrh r3, [r4, #20] - lv_obj_set_signal_cb(img, lv_img_signal); - 14a50: 4936 ldr r1, [pc, #216] ; (14b2c ) - ext->h = lv_obj_get_height(img); - 14a52: 8160 strh r0, [r4, #10] - ext->auto_size = 1; - 14a54: f443 7382 orr.w r3, r3, #260 ; 0x104 - 14a58: 82a3 strh r3, [r4, #20] - lv_obj_set_signal_cb(img, lv_img_signal); - 14a5a: 4628 mov r0, r5 - 14a5c: 4b34 ldr r3, [pc, #208] ; (14b30 ) - ext->offset.x = 0; - 14a5e: f8c4 8004 str.w r8, [r4, #4] - ext->angle = 0; - 14a62: f8c4 800c str.w r8, [r4, #12] - lv_obj_set_signal_cb(img, lv_img_signal); - 14a66: 4798 blx r3 - lv_obj_set_design_cb(img, lv_img_design); - 14a68: 4932 ldr r1, [pc, #200] ; (14b34 ) - 14a6a: 4b33 ldr r3, [pc, #204] ; (14b38 ) - 14a6c: 4628 mov r0, r5 - 14a6e: 4798 blx r3 - if(copy == NULL) { - 14a70: b9e6 cbnz r6, 14aac - lv_theme_apply(img, LV_THEME_IMAGE); - 14a72: 4b32 ldr r3, [pc, #200] ; (14b3c ) - 14a74: 210f movs r1, #15 - 14a76: 4628 mov r0, r5 - 14a78: 4798 blx r3 - lv_obj_set_click(img, false); - 14a7a: 4b31 ldr r3, [pc, #196] ; (14b40 ) - 14a7c: 4631 mov r1, r6 - 14a7e: 4628 mov r0, r5 - 14a80: 4798 blx r3 - lv_obj_set_adv_hittest(img, true); /*Images have fast hit-testing*/ - 14a82: 4b30 ldr r3, [pc, #192] ; (14b44 ) - 14a84: 2101 movs r1, #1 - 14a86: 4628 mov r0, r5 - 14a88: 4798 blx r3 - if(par != NULL) { - 14a8a: 7d23 ldrb r3, [r4, #20] - 14a8c: b15f cbz r7, 14aa6 - ext->auto_size = 1; - 14a8e: f043 0304 orr.w r3, r3, #4 - ext->auto_size = 0; - 14a92: 7523 strb r3, [r4, #20] - LV_LOG_INFO("image created"); - 14a94: 4b2c ldr r3, [pc, #176] ; (14b48 ) - 14a96: 9300 str r3, [sp, #0] - 14a98: 491a ldr r1, [pc, #104] ; (14b04 ) - 14a9a: 4b19 ldr r3, [pc, #100] ; (14b00 ) - 14a9c: 4c1a ldr r4, [pc, #104] ; (14b08 ) - 14a9e: 227f movs r2, #127 ; 0x7f - 14aa0: 2001 movs r0, #1 - 14aa2: 47a0 blx r4 - return img; - 14aa4: e7bd b.n 14a22 - ext->auto_size = 0; - 14aa6: f367 0382 bfi r3, r7, #2, #1 - 14aaa: e7f2 b.n 14a92 - lv_img_ext_t * copy_ext = lv_obj_get_ext_attr(copy); - 14aac: 4b27 ldr r3, [pc, #156] ; (14b4c ) - 14aae: 4630 mov r0, r6 - 14ab0: 4798 blx r3 - ext->auto_size = copy_ext->auto_size; - 14ab2: 7d03 ldrb r3, [r0, #20] - 14ab4: 7d22 ldrb r2, [r4, #20] - 14ab6: f3c3 0380 ubfx r3, r3, #2, #1 - 14aba: f363 0282 bfi r2, r3, #2, #1 - 14abe: 7522 strb r2, [r4, #20] - ext->zoom = copy_ext->zoom; - 14ac0: 8a43 ldrh r3, [r0, #18] - 14ac2: 8263 strh r3, [r4, #18] - ext->angle = copy_ext->angle; - 14ac4: 8983 ldrh r3, [r0, #12] - ext->antialias = copy_ext->antialias; - 14ac6: 7d42 ldrb r2, [r0, #21] - ext->angle = copy_ext->angle; - 14ac8: 81a3 strh r3, [r4, #12] - ext->antialias = copy_ext->antialias; - 14aca: 7d63 ldrb r3, [r4, #21] - 14acc: f362 0300 bfi r3, r2, #0, #1 - 14ad0: 7563 strb r3, [r4, #21] - ext->offset.x = copy_ext->offset.x; - 14ad2: f9b0 3004 ldrsh.w r3, [r0, #4] - 14ad6: 80a3 strh r3, [r4, #4] - ext->offset.y = copy_ext->offset.y; - 14ad8: f9b0 3006 ldrsh.w r3, [r0, #6] - 14adc: 80e3 strh r3, [r4, #6] - ext->pivot.x = copy_ext->pivot.x; - 14ade: f9b0 300e ldrsh.w r3, [r0, #14] - 14ae2: 81e3 strh r3, [r4, #14] - ext->pivot.y = copy_ext->pivot.y; - 14ae4: f9b0 3010 ldrsh.w r3, [r0, #16] - lv_img_set_src(img, copy_ext->src); - 14ae8: 6801 ldr r1, [r0, #0] - ext->pivot.y = copy_ext->pivot.y; - 14aea: 8223 strh r3, [r4, #16] - lv_img_set_src(img, copy_ext->src); - 14aec: 4628 mov r0, r5 - 14aee: 4b18 ldr r3, [pc, #96] ; (14b50 ) - 14af0: 4798 blx r3 - lv_obj_refresh_style(img, LV_STYLE_PROP_ALL); - 14af2: 4b18 ldr r3, [pc, #96] ; (14b54 ) - 14af4: 21ff movs r1, #255 ; 0xff - 14af6: 4628 mov r0, r5 - 14af8: 4798 blx r3 - 14afa: e7cb b.n 14a94 - 14afc: 00003369 .word 0x00003369 - 14b00: 0002be48 .word 0x0002be48 - 14b04: 0002bcfc .word 0x0002bcfc - 14b08: 0000eb79 .word 0x0000eb79 - 14b0c: 00026842 .word 0x00026842 - 14b10: 00001a6d .word 0x00001a6d - 14b14: 200057c8 .word 0x200057c8 - 14b18: 000041e5 .word 0x000041e5 - 14b1c: 000022fd .word 0x000022fd - 14b20: 000043e5 .word 0x000043e5 - 14b24: 00002671 .word 0x00002671 - 14b28: 000026c1 .word 0x000026c1 - 14b2c: 00014b5d .word 0x00014b5d - 14b30: 00002261 .word 0x00002261 - 14b34: 00014299 .word 0x00014299 - 14b38: 000022b5 .word 0x000022b5 - 14b3c: 00010575 .word 0x00010575 - 14b40: 000020e1 .word 0x000020e1 - 14b44: 0000208d .word 0x0000208d - 14b48: 0002bda0 .word 0x0002bda0 - 14b4c: 0000422d .word 0x0000422d - 14b50: 00014755 .word 0x00014755 - 14b54: 00003015 .word 0x00003015 - 14b58: 00001a65 .word 0x00001a65 - -00014b5c : - * @param sign a signal type from lv_signal_t enum - * @param param pointer to a signal specific variable - * @return LV_RES_OK: the object is not deleted in the function; LV_RES_INV: the object is deleted - */ -static lv_res_t lv_img_signal(lv_obj_t * img, lv_signal_t sign, void * param) -{ - 14b5c: e92d 43f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} - lv_res_t res; - if(sign == LV_SIGNAL_GET_STYLE) { - 14b60: 2908 cmp r1, #8 -{ - 14b62: b085 sub sp, #20 - 14b64: 4604 mov r4, r0 - 14b66: 4689 mov r9, r1 - 14b68: 4616 mov r6, r2 - if(sign == LV_SIGNAL_GET_STYLE) { - 14b6a: d110 bne.n 14b8e - - -static lv_style_list_t * lv_img_get_style(lv_obj_t * img, uint8_t type) -{ - lv_style_list_t * style_dsc_p; - switch(type) { - 14b6c: 7813 ldrb r3, [r2, #0] - 14b6e: b13b cbz r3, 14b80 - info->result = lv_img_get_style(img, info->part); - 14b70: 2300 movs r3, #0 - 14b72: 6053 str r3, [r2, #4] - else return ancestor_signal(img, sign, param); - 14b74: 4b83 ldr r3, [pc, #524] ; (14d84 ) - 14b76: 681b ldr r3, [r3, #0] -} - 14b78: b005 add sp, #20 - 14b7a: e8bd 43f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, lr} - else return ancestor_signal(img, sign, param); - 14b7e: 4718 bx r3 - case LV_IMG_PART_MAIN: - style_dsc_p = &img->style_list; - 14b80: 3428 adds r4, #40 ; 0x28 - info->result = lv_img_get_style(img, info->part); - 14b82: 6054 str r4, [r2, #4] - if(info->result != NULL) return LV_RES_OK; - 14b84: 2701 movs r7, #1 -} - 14b86: 4638 mov r0, r7 - 14b88: b005 add sp, #20 - 14b8a: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} - res = ancestor_signal(img, sign, param); - 14b8e: 4b7d ldr r3, [pc, #500] ; (14d84 ) - 14b90: 681b ldr r3, [r3, #0] - 14b92: 4798 blx r3 - if(res != LV_RES_OK) return res; - 14b94: 2801 cmp r0, #1 - res = ancestor_signal(img, sign, param); - 14b96: 4607 mov r7, r0 - if(res != LV_RES_OK) return res; - 14b98: d1f5 bne.n 14b86 - if(sign == LV_SIGNAL_GET_TYPE) return lv_obj_handle_get_type_signal(param, LV_OBJX_NAME); - 14b9a: f1b9 0f07 cmp.w r9, #7 - 14b9e: d106 bne.n 14bae - 14ba0: 4979 ldr r1, [pc, #484] ; (14d88 ) - 14ba2: 4b7a ldr r3, [pc, #488] ; (14d8c ) - 14ba4: 4630 mov r0, r6 -} - 14ba6: b005 add sp, #20 - 14ba8: e8bd 43f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, lr} - if(sign == LV_SIGNAL_GET_TYPE) return lv_obj_handle_get_type_signal(param, LV_OBJX_NAME); - 14bac: 4718 bx r3 - lv_img_ext_t * ext = lv_obj_get_ext_attr(img); - 14bae: 4b78 ldr r3, [pc, #480] ; (14d90 ) - 14bb0: 4620 mov r0, r4 - 14bb2: 4798 blx r3 - 14bb4: 4605 mov r5, r0 - if(sign == LV_SIGNAL_CLEANUP) { - 14bb6: f1b9 0f00 cmp.w r9, #0 - 14bba: d10f bne.n 14bdc - if(ext->src_type == LV_IMG_SRC_FILE || ext->src_type == LV_IMG_SRC_SYMBOL) { - 14bbc: 7d03 ldrb r3, [r0, #20] - 14bbe: f003 0303 and.w r3, r3, #3 - 14bc2: 3b01 subs r3, #1 - 14bc4: 2b01 cmp r3, #1 - 14bc6: d8de bhi.n 14b86 - lv_mem_free(ext->src); - 14bc8: 4b72 ldr r3, [pc, #456] ; (14d94 ) - 14bca: 6800 ldr r0, [r0, #0] - 14bcc: 4798 blx r3 - ext->src_type = LV_IMG_SRC_UNKNOWN; - 14bce: 7d2b ldrb r3, [r5, #20] - ext->src = NULL; - 14bd0: f8c5 9000 str.w r9, [r5] - ext->src_type = LV_IMG_SRC_UNKNOWN; - 14bd4: f043 0303 orr.w r3, r3, #3 - 14bd8: 752b strb r3, [r5, #20] - 14bda: e7d4 b.n 14b86 - else if(sign == LV_SIGNAL_STYLE_CHG) { - 14bdc: f1b9 0f04 cmp.w r9, #4 - 14be0: d109 bne.n 14bf6 - if(ext->src_type == LV_IMG_SRC_SYMBOL) { - 14be2: 7d03 ldrb r3, [r0, #20] - 14be4: f003 0303 and.w r3, r3, #3 - 14be8: 2b02 cmp r3, #2 - 14bea: d1cc bne.n 14b86 - lv_img_set_src(img, ext->src); - 14bec: 6801 ldr r1, [r0, #0] - 14bee: 4b6a ldr r3, [pc, #424] ; (14d98 ) - 14bf0: 4620 mov r0, r4 - 14bf2: 4798 blx r3 - 14bf4: e7c7 b.n 14b86 - else if(sign == LV_SIGNAL_REFR_EXT_DRAW_PAD) { - 14bf6: f1b9 0f06 cmp.w r9, #6 - 14bfa: d16e bne.n 14cda -_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_ZOOM, transform_zoom, lv_style_int_t, _int, scalar) - 14bfc: 4e67 ldr r6, [pc, #412] ; (14d9c ) - 14bfe: 2207 movs r2, #7 - 14c00: 2100 movs r1, #0 - 14c02: 4620 mov r0, r4 - 14c04: 47b0 blx r6 - transf_zoom = (transf_zoom * ext->zoom) >> 8; - 14c06: f8b5 8012 ldrh.w r8, [r5, #18] -_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_ANGLE, transform_angle, lv_style_int_t, _int, scalar) - 14c0a: 464a mov r2, r9 - 14c0c: fb00 f808 mul.w r8, r0, r8 - 14c10: 2100 movs r1, #0 - 14c12: 4620 mov r0, r4 - 14c14: 47b0 blx r6 - transf_angle += ext->angle; - 14c16: 89ab ldrh r3, [r5, #12] - 14c18: 4418 add r0, r3 - 14c1a: b203 sxth r3, r0 - transf_zoom = (transf_zoom * ext->zoom) >> 8; - 14c1c: ea4f 2828 mov.w r8, r8, asr #8 - if(transf_angle || transf_zoom != LV_IMG_ZOOM_NONE) { - 14c20: b923 cbnz r3, 14c2c - 14c22: fa0f f288 sxth.w r2, r8 - 14c26: f5b2 7f80 cmp.w r2, #256 ; 0x100 - 14c2a: d031 beq.n 14c90 - _lv_img_buf_get_transformed_area(&a, ext->w, ext->h, transf_angle, transf_zoom, &ext->pivot); - 14c2c: f105 000e add.w r0, r5, #14 - 14c30: f9b5 200a ldrsh.w r2, [r5, #10] - 14c34: f9b5 1008 ldrsh.w r1, [r5, #8] - 14c38: 9001 str r0, [sp, #4] - 14c3a: fa1f f088 uxth.w r0, r8 - 14c3e: 9000 str r0, [sp, #0] - 14c40: f8df 8164 ldr.w r8, [pc, #356] ; 14da8 - 14c44: a802 add r0, sp, #8 - 14c46: 47c0 blx r8 - img->ext_draw_pad = LV_MATH_MAX(img->ext_draw_pad, pad_ori - a.x1); - 14c48: f9b4 1032 ldrsh.w r1, [r4, #50] ; 0x32 - 14c4c: f9bd 3008 ldrsh.w r3, [sp, #8] - img->ext_draw_pad = LV_MATH_MAX(img->ext_draw_pad, pad_ori - a.y1); - 14c50: f9bd 200a ldrsh.w r2, [sp, #10] - img->ext_draw_pad = LV_MATH_MAX(img->ext_draw_pad, pad_ori + a.x2 - ext->w); - 14c54: f9b5 0008 ldrsh.w r0, [r5, #8] - img->ext_draw_pad = LV_MATH_MAX(img->ext_draw_pad, pad_ori - a.x1); - 14c58: 1acb subs r3, r1, r3 - 14c5a: 428b cmp r3, r1 - 14c5c: bfb8 it lt - 14c5e: 460b movlt r3, r1 - img->ext_draw_pad = LV_MATH_MAX(img->ext_draw_pad, pad_ori - a.y1); - 14c60: 1a8a subs r2, r1, r2 - 14c62: b21b sxth r3, r3 - 14c64: 4293 cmp r3, r2 - 14c66: bfb8 it lt - 14c68: 4613 movlt r3, r2 - img->ext_draw_pad = LV_MATH_MAX(img->ext_draw_pad, pad_ori + a.x2 - ext->w); - 14c6a: f9bd 200c ldrsh.w r2, [sp, #12] - 14c6e: 440a add r2, r1 - 14c70: b21b sxth r3, r3 - 14c72: 1a12 subs r2, r2, r0 - 14c74: 4293 cmp r3, r2 - 14c76: bfb8 it lt - 14c78: 4613 movlt r3, r2 - img->ext_draw_pad = LV_MATH_MAX(img->ext_draw_pad, pad_ori + a.y2 - ext->h); - 14c7a: f9bd 200e ldrsh.w r2, [sp, #14] - 14c7e: 440a add r2, r1 - 14c80: f9b5 100a ldrsh.w r1, [r5, #10] - 14c84: b21b sxth r3, r3 - 14c86: 1a52 subs r2, r2, r1 - 14c88: 4293 cmp r3, r2 - 14c8a: bfb8 it lt - 14c8c: 4613 movlt r3, r2 - 14c8e: 8663 strh r3, [r4, #50] ; 0x32 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar) - 14c90: 2212 movs r2, #18 - 14c92: 2100 movs r1, #0 - 14c94: 4620 mov r0, r4 - 14c96: 47b0 blx r6 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar) - 14c98: 2213 movs r2, #19 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar) - 14c9a: 4681 mov r9, r0 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar) - 14c9c: 2100 movs r1, #0 - 14c9e: 4620 mov r0, r4 - 14ca0: 47b0 blx r6 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar) - 14ca2: 2210 movs r2, #16 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar) - 14ca4: 4605 mov r5, r0 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar) - 14ca6: 2100 movs r1, #0 - 14ca8: 4620 mov r0, r4 - 14caa: 47b0 blx r6 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar) - 14cac: 2211 movs r2, #17 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar) - 14cae: 4680 mov r8, r0 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar) - 14cb0: 2100 movs r1, #0 - 14cb2: 4620 mov r0, r4 - 14cb4: 47b0 blx r6 - img->ext_draw_pad = LV_MATH_MAX(img->ext_draw_pad, right); - 14cb6: 454d cmp r5, r9 - 14cb8: f9b4 3032 ldrsh.w r3, [r4, #50] ; 0x32 - 14cbc: bfb8 it lt - 14cbe: 464d movlt r5, r9 - 14cc0: b22d sxth r5, r5 - img->ext_draw_pad = LV_MATH_MAX(img->ext_draw_pad, top); - 14cc2: 42ab cmp r3, r5 - 14cc4: bfb8 it lt - 14cc6: 462b movlt r3, r5 - 14cc8: 4543 cmp r3, r8 - 14cca: bfb8 it lt - 14ccc: 4643 movlt r3, r8 - img->ext_draw_pad = LV_MATH_MAX(img->ext_draw_pad, bottom); - 14cce: b21b sxth r3, r3 - 14cd0: 4298 cmp r0, r3 - 14cd2: bfb8 it lt - 14cd4: 4618 movlt r0, r3 - 14cd6: 8660 strh r0, [r4, #50] ; 0x32 - 14cd8: e755 b.n 14b86 - else if(sign == LV_SIGNAL_HIT_TEST) { - 14cda: f1b9 0f0a cmp.w r9, #10 - 14cde: f47f af52 bne.w 14b86 - if(ext->zoom != 256 && ext->angle == 0) { - 14ce2: f8b0 c012 ldrh.w ip, [r0, #18] - 14ce6: f5bc 7f80 cmp.w ip, #256 ; 0x100 - 14cea: d045 beq.n 14d78 - 14cec: 8983 ldrh r3, [r0, #12] - 14cee: 2b00 cmp r3, #0 - 14cf0: d142 bne.n 14d78 - 14cf2: 8aa5 ldrh r5, [r4, #20] - 14cf4: 8a23 ldrh r3, [r4, #16] - return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - 14cf6: 8a62 ldrh r2, [r4, #18] -{ - uint8_t * d8 = (uint8_t *)dst; - const uint8_t * s8 = (const uint8_t *)src; - - while(len) { - *d8 = *s8; - 14cf8: 6920 ldr r0, [r4, #16] - 14cfa: 6961 ldr r1, [r4, #20] - return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - 14cfc: 3501 adds r5, #1 - 14cfe: 1aed subs r5, r5, r3 - return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - 14d00: 8ae3 ldrh r3, [r4, #22] - 14d02: 3301 adds r3, #1 - lv_coord_t scaled_width = (origin_width * ext->zoom + 255) / 256; - 14d04: b22d sxth r5, r5 - 14d06: 1a9b subs r3, r3, r2 - 14d08: aa02 add r2, sp, #8 - 14d0a: c203 stmia r2!, {r0, r1} - 14d0c: fb0c f205 mul.w r2, ip, r5 - 14d10: 32ff adds r2, #255 ; 0xff - 14d12: bf48 it mi - 14d14: 32ff addmi r2, #255 ; 0xff - lv_coord_t width_offset = (origin_width - scaled_width) / 2; - 14d16: f342 220f sbfx r2, r2, #8, #16 - 14d1a: 1aad subs r5, r5, r2 - 14d1c: eb05 75d5 add.w r5, r5, r5, lsr #31 - coords.x1 += width_offset; - 14d20: f8bd 2008 ldrh.w r2, [sp, #8] - info->result = _lv_area_is_point_on(&coords, info->point, 0); - 14d24: 6831 ldr r1, [r6, #0] - coords.x1 += width_offset; - 14d26: f3c5 054f ubfx r5, r5, #1, #16 - 14d2a: 442a add r2, r5 - 14d2c: f8ad 2008 strh.w r2, [sp, #8] - coords.x2 -= width_offset; - 14d30: f8bd 200c ldrh.w r2, [sp, #12] - lv_coord_t scaled_height = (origin_height * ext->zoom + 255) / 256; - 14d34: b21b sxth r3, r3 - 14d36: fb03 fc0c mul.w ip, r3, ip - coords.x2 -= width_offset; - 14d3a: 1b52 subs r2, r2, r5 - 14d3c: f8ad 200c strh.w r2, [sp, #12] - lv_coord_t scaled_height = (origin_height * ext->zoom + 255) / 256; - 14d40: f11c 02ff adds.w r2, ip, #255 ; 0xff - 14d44: bf48 it mi - 14d46: f50c 72ff addmi.w r2, ip, #510 ; 0x1fe - lv_coord_t height_offset = (origin_height - scaled_height) / 2; - 14d4a: f342 220f sbfx r2, r2, #8, #16 - 14d4e: 1a9b subs r3, r3, r2 - 14d50: eb03 73d3 add.w r3, r3, r3, lsr #31 - coords.y1 += height_offset; - 14d54: f8bd 200a ldrh.w r2, [sp, #10] - 14d58: f3c3 034f ubfx r3, r3, #1, #16 - 14d5c: 441a add r2, r3 - 14d5e: f8ad 200a strh.w r2, [sp, #10] - coords.y2 -= height_offset; - 14d62: f8bd 200e ldrh.w r2, [sp, #14] - 14d66: 1ad3 subs r3, r2, r3 - 14d68: f8ad 300e strh.w r3, [sp, #14] - info->result = _lv_area_is_point_on(&coords, info->point, 0); - 14d6c: 2200 movs r2, #0 - 14d6e: 4b0c ldr r3, [pc, #48] ; (14da0 ) - 14d70: a802 add r0, sp, #8 - 14d72: 4798 blx r3 - info->result = lv_obj_is_point_on_coords(img, info->point); - 14d74: 7130 strb r0, [r6, #4] - 14d76: e706 b.n 14b86 - 14d78: 6831 ldr r1, [r6, #0] - 14d7a: 4b0a ldr r3, [pc, #40] ; (14da4 ) - 14d7c: 4620 mov r0, r4 - 14d7e: 4798 blx r3 - 14d80: e7f8 b.n 14d74 - 14d82: bf00 nop - 14d84: 200057c8 .word 0x200057c8 - 14d88: 0002bdae .word 0x0002bdae - 14d8c: 00004511 .word 0x00004511 - 14d90: 0000422d .word 0x0000422d - 14d94: 0000ed75 .word 0x0000ed75 - 14d98: 00014755 .word 0x00014755 - 14d9c: 00003995 .word 0x00003995 - 14da0: 0000e1a9 .word 0x0000e1a9 - 14da4: 000044d5 .word 0x000044d5 - 14da8: 0000c2e5 .word 0x0000c2e5 - -00014dac : - * Free the dot_tmp_ptr field if it was previously allocated. - * Always clears the field - * @param label pointer to label object. - */ -static void lv_label_dot_tmp_free(lv_obj_t * label) -{ - 14dac: b510 push {r4, lr} - lv_label_ext_t * ext = lv_obj_get_ext_attr(label); - 14dae: 4b08 ldr r3, [pc, #32] ; (14dd0 ) - 14db0: 4798 blx r3 - if(ext->dot_tmp_alloc && ext->dot.tmp_ptr) { - 14db2: 7c43 ldrb r3, [r0, #17] - 14db4: 07db lsls r3, r3, #31 - lv_label_ext_t * ext = lv_obj_get_ext_attr(label); - 14db6: 4604 mov r4, r0 - if(ext->dot_tmp_alloc && ext->dot.tmp_ptr) { - 14db8: d503 bpl.n 14dc2 - 14dba: 6840 ldr r0, [r0, #4] - 14dbc: b108 cbz r0, 14dc2 - lv_mem_free(ext->dot.tmp_ptr); - 14dbe: 4b05 ldr r3, [pc, #20] ; (14dd4 ) - 14dc0: 4798 blx r3 - } - ext->dot_tmp_alloc = false; - 14dc2: 7c63 ldrb r3, [r4, #17] - 14dc4: f36f 0300 bfc r3, #0, #1 - 14dc8: 7463 strb r3, [r4, #17] - ext->dot.tmp_ptr = NULL; - 14dca: 2300 movs r3, #0 - 14dcc: 6063 str r3, [r4, #4] -} - 14dce: bd10 pop {r4, pc} - 14dd0: 0000422d .word 0x0000422d - 14dd4: 0000ed75 .word 0x0000ed75 - -00014dd8 : -{ - 14dd8: b5f8 push {r3, r4, r5, r6, r7, lr} - lv_label_ext_t * ext = lv_obj_get_ext_attr(label); - 14dda: 4e1a ldr r6, [pc, #104] ; (14e44 ) -{ - 14ddc: 4605 mov r5, r0 - lv_label_ext_t * ext = lv_obj_get_ext_attr(label); - 14dde: 47b0 blx r6 - if(ext->long_mode != LV_LABEL_LONG_DOT) return; - 14de0: 7c03 ldrb r3, [r0, #16] - 14de2: f003 0307 and.w r3, r3, #7 - 14de6: 2b02 cmp r3, #2 - lv_label_ext_t * ext = lv_obj_get_ext_attr(label); - 14de8: 4604 mov r4, r0 - if(ext->long_mode != LV_LABEL_LONG_DOT) return; - 14dea: d128 bne.n 14e3e - if(ext->dot_end == LV_LABEL_DOT_END_INV) return; - 14dec: 8901 ldrh r1, [r0, #8] - 14dee: f64f 73ff movw r3, #65535 ; 0xffff - 14df2: 4299 cmp r1, r3 - 14df4: d023 beq.n 14e3e - uint32_t byte_i = _lv_txt_encoded_get_byte_id(ext->text, letter_i); - 14df6: 4b14 ldr r3, [pc, #80] ; (14e48 ) - 14df8: 6800 ldr r0, [r0, #0] - 14dfa: 681b ldr r3, [r3, #0] - 14dfc: 3903 subs r1, #3 - 14dfe: 4798 blx r3 - 14e00: 4607 mov r7, r0 - lv_label_ext_t * ext = lv_obj_get_ext_attr(label); - 14e02: 4628 mov r0, r5 - 14e04: 47b0 blx r6 - if(ext->dot_tmp_alloc) { - 14e06: 7c42 ldrb r2, [r0, #17] - 14e08: 07d2 lsls r2, r2, #31 - lv_label_ext_t * ext = lv_obj_get_ext_attr(label); - 14e0a: 4603 mov r3, r0 - return ext->dot.tmp_ptr; - 14e0c: bf4c ite mi - 14e0e: 6843 ldrmi r3, [r0, #4] - return ext->dot.tmp; - 14e10: 3304 addpl r3, #4 - while(ext->text[byte_i + i] != '\0') { - 14e12: 2200 movs r2, #0 - 14e14: fa57 f182 uxtab r1, r7, r2 - 14e18: 6826 ldr r6, [r4, #0] - 14e1a: b2d0 uxtb r0, r2 - 14e1c: f816 e001 ldrb.w lr, [r6, r1] - ext->text[byte_i + i] = dot_tmp[i]; - 14e20: 5c18 ldrb r0, [r3, r0] - while(ext->text[byte_i + i] != '\0') { - 14e22: eb06 0c01 add.w ip, r6, r1 - 14e26: 3201 adds r2, #1 - 14e28: f1be 0f00 cmp.w lr, #0 - 14e2c: d108 bne.n 14e40 - lv_label_dot_tmp_free(label); - 14e2e: 4b07 ldr r3, [pc, #28] ; (14e4c ) - ext->text[byte_i + i] = dot_tmp[i]; - 14e30: f88c 0000 strb.w r0, [ip] - lv_label_dot_tmp_free(label); - 14e34: 4628 mov r0, r5 - 14e36: 4798 blx r3 - ext->dot_end = LV_LABEL_DOT_END_INV; - 14e38: f64f 73ff movw r3, #65535 ; 0xffff - 14e3c: 8123 strh r3, [r4, #8] -} - 14e3e: bdf8 pop {r3, r4, r5, r6, r7, pc} - ext->text[byte_i + i] = dot_tmp[i]; - 14e40: 5470 strb r0, [r6, r1] - i++; - 14e42: e7e7 b.n 14e14 - 14e44: 0000422d .word 0x0000422d - 14e48: 20000050 .word 0x20000050 - 14e4c: 00014dad .word 0x00014dad - -00014e50 : -{ - 14e50: b570 push {r4, r5, r6, lr} - lv_label_ext_t * ext = lv_obj_get_ext_attr(label); - 14e52: 4b05 ldr r3, [pc, #20] ; (14e68 ) -{ - 14e54: 4604 mov r4, r0 - 14e56: 460d mov r5, r1 - lv_label_ext_t * ext = lv_obj_get_ext_attr(label); - 14e58: 4798 blx r3 - lv_obj_invalidate(label); - 14e5a: 4b04 ldr r3, [pc, #16] ; (14e6c ) - ext->offset.y = y; - 14e5c: 81c5 strh r5, [r0, #14] - lv_obj_invalidate(label); - 14e5e: 4620 mov r0, r4 -} - 14e60: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr} - lv_obj_invalidate(label); - 14e64: 4718 bx r3 - 14e66: bf00 nop - 14e68: 0000422d .word 0x0000422d - 14e6c: 00002a09 .word 0x00002a09 - -00014e70 : -{ - 14e70: b570 push {r4, r5, r6, lr} - lv_label_ext_t * ext = lv_obj_get_ext_attr(label); - 14e72: 4b05 ldr r3, [pc, #20] ; (14e88 ) -{ - 14e74: 4604 mov r4, r0 - 14e76: 460d mov r5, r1 - lv_label_ext_t * ext = lv_obj_get_ext_attr(label); - 14e78: 4798 blx r3 - lv_obj_invalidate(label); - 14e7a: 4b04 ldr r3, [pc, #16] ; (14e8c ) - ext->offset.x = x; - 14e7c: 8185 strh r5, [r0, #12] - lv_obj_invalidate(label); - 14e7e: 4620 mov r0, r4 -} - 14e80: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr} - lv_obj_invalidate(label); - 14e84: 4718 bx r3 - 14e86: bf00 nop - 14e88: 0000422d .word 0x0000422d - 14e8c: 00002a09 .word 0x00002a09 - -00014e90 : -{ - 14e90: b57f push {r0, r1, r2, r3, r4, r5, r6, lr} - lv_label_ext_t * ext = lv_obj_get_ext_attr(label); - 14e92: 4b1a ldr r3, [pc, #104] ; (14efc ) -{ - 14e94: 9103 str r1, [sp, #12] - 14e96: 4616 mov r6, r2 - 14e98: 4604 mov r4, r0 - lv_label_ext_t * ext = lv_obj_get_ext_attr(label); - 14e9a: 4798 blx r3 - lv_label_dot_tmp_free(label); /* Deallocate any existing space */ - 14e9c: 4b18 ldr r3, [pc, #96] ; (14f00 ) - lv_label_ext_t * ext = lv_obj_get_ext_attr(label); - 14e9e: 4605 mov r5, r0 - lv_label_dot_tmp_free(label); /* Deallocate any existing space */ - 14ea0: 4620 mov r0, r4 - 14ea2: 4798 blx r3 - if(len > sizeof(char *)) { - 14ea4: 2e04 cmp r6, #4 - 14ea6: 9903 ldr r1, [sp, #12] - 14ea8: d91e bls.n 14ee8 - ext->dot.tmp_ptr = lv_mem_alloc(len + 1); - 14eaa: 4b16 ldr r3, [pc, #88] ; (14f04 ) - 14eac: 1c70 adds r0, r6, #1 - 14eae: 4798 blx r3 - if(ext->dot.tmp_ptr == NULL) { - 14eb0: 9903 ldr r1, [sp, #12] - ext->dot.tmp_ptr = lv_mem_alloc(len + 1); - 14eb2: 6068 str r0, [r5, #4] - 14eb4: 4604 mov r4, r0 - if(ext->dot.tmp_ptr == NULL) { - 14eb6: b958 cbnz r0, 14ed0 - LV_LOG_ERROR("Failed to allocate memory for dot_tmp_ptr"); - 14eb8: 4b13 ldr r3, [pc, #76] ; (14f08 ) - 14eba: 9300 str r3, [sp, #0] - 14ebc: 2003 movs r0, #3 - 14ebe: 4b13 ldr r3, [pc, #76] ; (14f0c ) - 14ec0: 4913 ldr r1, [pc, #76] ; (14f10 ) - 14ec2: 4d14 ldr r5, [pc, #80] ; (14f14 ) - 14ec4: f240 52b5 movw r2, #1461 ; 0x5b5 - 14ec8: 47a8 blx r5 - return false; - 14eca: 4620 mov r0, r4 -} - 14ecc: b004 add sp, #16 - 14ece: bd70 pop {r4, r5, r6, pc} - _lv_memcpy(ext->dot.tmp_ptr, data, len); - 14ed0: 4b11 ldr r3, [pc, #68] ; (14f18 ) - 14ed2: 4632 mov r2, r6 - 14ed4: 4798 blx r3 - ext->dot.tmp_ptr[len] = '\0'; - 14ed6: 686b ldr r3, [r5, #4] - 14ed8: 2200 movs r2, #0 - 14eda: 559a strb r2, [r3, r6] - ext->dot_tmp_alloc = true; - 14edc: 7c6b ldrb r3, [r5, #17] - 14ede: f043 0301 orr.w r3, r3, #1 - 14ee2: 746b strb r3, [r5, #17] - return true; - 14ee4: 2001 movs r0, #1 - 14ee6: e7f1 b.n 14ecc - ext->dot_tmp_alloc = false; - 14ee8: 7c6b ldrb r3, [r5, #17] - 14eea: f36f 0300 bfc r3, #0, #1 - 14eee: 746b strb r3, [r5, #17] - _lv_memcpy(ext->dot.tmp, data, len); - 14ef0: 4632 mov r2, r6 - 14ef2: 4b09 ldr r3, [pc, #36] ; (14f18 ) - 14ef4: 1d28 adds r0, r5, #4 - 14ef6: 4798 blx r3 - 14ef8: e7f4 b.n 14ee4 - 14efa: bf00 nop - 14efc: 0000422d .word 0x0000422d - 14f00: 00014dad .word 0x00014dad - 14f04: 0000ecbd .word 0x0000ecbd - 14f08: 0002bef9 .word 0x0002bef9 - 14f0c: 0002bf3f .word 0x0002bf3f - 14f10: 0002bec5 .word 0x0002bec5 - 14f14: 0000eb79 .word 0x0000eb79 - 14f18: 0000eec1 .word 0x0000eec1 - -00014f1c : - -static void get_txt_coords(const lv_obj_t * label, lv_area_t * area) -{ - 14f1c: e92d 43f8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, lr} - lv_obj_get_coords(label, area); - 14f20: 4b13 ldr r3, [pc, #76] ; (14f70 ) -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar) - 14f22: f8df 8050 ldr.w r8, [pc, #80] ; 14f74 -{ - 14f26: 4605 mov r5, r0 - 14f28: 460c mov r4, r1 - lv_obj_get_coords(label, area); - 14f2a: 4798 blx r3 - 14f2c: 2212 movs r2, #18 - 14f2e: 2100 movs r1, #0 - 14f30: 4628 mov r0, r5 - 14f32: 47c0 blx r8 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar) - 14f34: 2213 movs r2, #19 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar) - 14f36: 4607 mov r7, r0 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar) - 14f38: 2100 movs r1, #0 - 14f3a: 4628 mov r0, r5 - 14f3c: 47c0 blx r8 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar) - 14f3e: 2210 movs r2, #16 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar) - 14f40: 4681 mov r9, r0 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar) - 14f42: 2100 movs r1, #0 - 14f44: 4628 mov r0, r5 - 14f46: 47c0 blx r8 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar) - 14f48: 2211 movs r2, #17 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar) - 14f4a: 4606 mov r6, r0 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar) - 14f4c: 2100 movs r1, #0 - 14f4e: 4628 mov r0, r5 - 14f50: 47c0 blx r8 - - lv_coord_t left = lv_obj_get_style_pad_left(label, LV_LABEL_PART_MAIN); - lv_coord_t right = lv_obj_get_style_pad_right(label, LV_LABEL_PART_MAIN); - lv_coord_t top = lv_obj_get_style_pad_top(label, LV_LABEL_PART_MAIN); - lv_coord_t bottom = lv_obj_get_style_pad_bottom(label, LV_LABEL_PART_MAIN); - area->x1 += left; - 14f52: 8823 ldrh r3, [r4, #0] - 14f54: 441f add r7, r3 - area->x2 -= right; - 14f56: 88a3 ldrh r3, [r4, #4] - area->x1 += left; - 14f58: 8027 strh r7, [r4, #0] - area->x2 -= right; - 14f5a: eba3 0309 sub.w r3, r3, r9 - 14f5e: 80a3 strh r3, [r4, #4] - area->y1 += top; - 14f60: 8863 ldrh r3, [r4, #2] - 14f62: 441e add r6, r3 - area->y2 -= bottom; - 14f64: 88e3 ldrh r3, [r4, #6] - area->y1 += top; - 14f66: 8066 strh r6, [r4, #2] - area->y2 -= bottom; - 14f68: 1a18 subs r0, r3, r0 - 14f6a: 80e0 strh r0, [r4, #6] -} - 14f6c: e8bd 83f8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, pc} - 14f70: 00002559 .word 0x00002559 - 14f74: 00003995 .word 0x00003995 - -00014f78 : -{ - 14f78: b573 push {r0, r1, r4, r5, r6, lr} - LV_ASSERT_OBJ(label, LV_OBJX_NAME); - 14f7a: 4b13 ldr r3, [pc, #76] ; (14fc8 ) -{ - 14f7c: 4604 mov r4, r0 - 14f7e: 460d mov r5, r1 - LV_ASSERT_OBJ(label, LV_OBJX_NAME); - 14f80: 4798 blx r3 - 14f82: 4606 mov r6, r0 - 14f84: b968 cbnz r0, 14fa2 - 14f86: 4b11 ldr r3, [pc, #68] ; (14fcc ) - 14f88: 4911 ldr r1, [pc, #68] ; (14fd0 ) - 14f8a: 9300 str r3, [sp, #0] - 14f8c: f44f 72c4 mov.w r2, #392 ; 0x188 - 14f90: 2003 movs r0, #3 - 14f92: 4d10 ldr r5, [pc, #64] ; (14fd4 ) - 14f94: 47a8 blx r5 - 14f96: 4810 ldr r0, [pc, #64] ; (14fd8 ) - 14f98: 4910 ldr r1, [pc, #64] ; (14fdc ) - 14f9a: 4622 mov r2, r4 - 14f9c: 4633 mov r3, r6 - 14f9e: 4788 blx r1 - 14fa0: e7fe b.n 14fa0 - lv_label_ext_t * ext = lv_obj_get_ext_attr(label); - 14fa2: 4b0f ldr r3, [pc, #60] ; (14fe0 ) - 14fa4: 4620 mov r0, r4 - 14fa6: 4798 blx r3 - if(ext->align == align) return; - 14fa8: 7c03 ldrb r3, [r0, #16] - 14faa: f3c3 1201 ubfx r2, r3, #4, #2 - 14fae: 42aa cmp r2, r5 - 14fb0: d008 beq.n 14fc4 - ext->align = align; - 14fb2: f365 1305 bfi r3, r5, #4, #2 - 14fb6: 7403 strb r3, [r0, #16] - lv_obj_invalidate(label); /*Enough to invalidate because alignment is only drawing related - 14fb8: 4b0a ldr r3, [pc, #40] ; (14fe4 ) - 14fba: 4620 mov r0, r4 -} - 14fbc: b002 add sp, #8 - 14fbe: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr} - lv_obj_invalidate(label); /*Enough to invalidate because alignment is only drawing related - 14fc2: 4718 bx r3 -} - 14fc4: b002 add sp, #8 - 14fc6: bd70 pop {r4, r5, r6, pc} - 14fc8: 00001a65 .word 0x00001a65 - 14fcc: 0002bf54 .word 0x0002bf54 - 14fd0: 0002bec5 .word 0x0002bec5 - 14fd4: 0000eb79 .word 0x0000eb79 - 14fd8: 00026943 .word 0x00026943 - 14fdc: 00001a6d .word 0x00001a6d - 14fe0: 0000422d .word 0x0000422d - 14fe4: 00002a09 .word 0x00002a09 - -00014fe8 : -{ - 14fe8: b573 push {r0, r1, r4, r5, r6, lr} - LV_ASSERT_OBJ(label, LV_OBJX_NAME); - 14fea: 4b0c ldr r3, [pc, #48] ; (1501c ) -{ - 14fec: 4604 mov r4, r0 - LV_ASSERT_OBJ(label, LV_OBJX_NAME); - 14fee: 4798 blx r3 - 14ff0: 4605 mov r5, r0 - 14ff2: b968 cbnz r0, 15010 - 14ff4: 4b0a ldr r3, [pc, #40] ; (15020 ) - 14ff6: 490b ldr r1, [pc, #44] ; (15024 ) - 14ff8: 9300 str r3, [sp, #0] - 14ffa: f44f 72f2 mov.w r2, #484 ; 0x1e4 - 14ffe: 2003 movs r0, #3 - 15000: 4e09 ldr r6, [pc, #36] ; (15028 ) - 15002: 47b0 blx r6 - 15004: 4809 ldr r0, [pc, #36] ; (1502c ) - 15006: 490a ldr r1, [pc, #40] ; (15030 ) - 15008: 4622 mov r2, r4 - 1500a: 462b mov r3, r5 - 1500c: 4788 blx r1 - 1500e: e7fe b.n 1500e - lv_label_ext_t * ext = lv_obj_get_ext_attr(label); - 15010: 4b08 ldr r3, [pc, #32] ; (15034 ) - 15012: 4620 mov r0, r4 - 15014: 4798 blx r3 -} - 15016: 6800 ldr r0, [r0, #0] - 15018: b002 add sp, #8 - 1501a: bd70 pop {r4, r5, r6, pc} - 1501c: 00001a65 .word 0x00001a65 - 15020: 0002bf9d .word 0x0002bf9d - 15024: 0002bec5 .word 0x0002bec5 - 15028: 0000eb79 .word 0x0000eb79 - 1502c: 00026943 .word 0x00026943 - 15030: 00001a6d .word 0x00001a6d - 15034: 0000422d .word 0x0000422d - -00015038 : -{ - 15038: b573 push {r0, r1, r4, r5, r6, lr} - LV_ASSERT_OBJ(label, LV_OBJX_NAME); - 1503a: 4b0d ldr r3, [pc, #52] ; (15070 ) -{ - 1503c: 4604 mov r4, r0 - LV_ASSERT_OBJ(label, LV_OBJX_NAME); - 1503e: 4798 blx r3 - 15040: 4605 mov r5, r0 - 15042: b968 cbnz r0, 15060 - 15044: 4b0b ldr r3, [pc, #44] ; (15074 ) - 15046: 490c ldr r1, [pc, #48] ; (15078 ) - 15048: 9300 str r3, [sp, #0] - 1504a: f44f 72f9 mov.w r2, #498 ; 0x1f2 - 1504e: 2003 movs r0, #3 - 15050: 4e0a ldr r6, [pc, #40] ; (1507c ) - 15052: 47b0 blx r6 - 15054: 480a ldr r0, [pc, #40] ; (15080 ) - 15056: 490b ldr r1, [pc, #44] ; (15084 ) - 15058: 4622 mov r2, r4 - 1505a: 462b mov r3, r5 - 1505c: 4788 blx r1 - 1505e: e7fe b.n 1505e - lv_label_ext_t * ext = lv_obj_get_ext_attr(label); - 15060: 4b09 ldr r3, [pc, #36] ; (15088 ) - 15062: 4620 mov r0, r4 - 15064: 4798 blx r3 - return ext->long_mode; - 15066: 7c00 ldrb r0, [r0, #16] -} - 15068: f000 0007 and.w r0, r0, #7 - 1506c: b002 add sp, #8 - 1506e: bd70 pop {r4, r5, r6, pc} - 15070: 00001a65 .word 0x00001a65 - 15074: 0002bfaf .word 0x0002bfaf - 15078: 0002bec5 .word 0x0002bec5 - 1507c: 0000eb79 .word 0x0000eb79 - 15080: 00026943 .word 0x00026943 - 15084: 00001a6d .word 0x00001a6d - 15088: 0000422d .word 0x0000422d - -0001508c : -{ - 1508c: b573 push {r0, r1, r4, r5, r6, lr} - LV_ASSERT_OBJ(label, LV_OBJX_NAME); - 1508e: 4b0f ldr r3, [pc, #60] ; (150cc ) -{ - 15090: 4604 mov r4, r0 - LV_ASSERT_OBJ(label, LV_OBJX_NAME); - 15092: 4798 blx r3 - 15094: 4605 mov r5, r0 - 15096: b968 cbnz r0, 150b4 - 15098: 4b0d ldr r3, [pc, #52] ; (150d0 ) - 1509a: 490e ldr r1, [pc, #56] ; (150d4 ) - 1509c: 9300 str r3, [sp, #0] - 1509e: f240 12ff movw r2, #511 ; 0x1ff - 150a2: 2003 movs r0, #3 - 150a4: 4e0c ldr r6, [pc, #48] ; (150d8 ) - 150a6: 47b0 blx r6 - 150a8: 480c ldr r0, [pc, #48] ; (150dc ) - 150aa: 490d ldr r1, [pc, #52] ; (150e0 ) - 150ac: 4622 mov r2, r4 - 150ae: 462b mov r3, r5 - 150b0: 4788 blx r1 - 150b2: e7fe b.n 150b2 - lv_label_ext_t * ext = lv_obj_get_ext_attr(label); - 150b4: 4b0b ldr r3, [pc, #44] ; (150e4 ) - 150b6: 4620 mov r0, r4 - 150b8: 4798 blx r3 - lv_label_align_t align = ext->align; - 150ba: 7c00 ldrb r0, [r0, #16] - 150bc: f3c0 1001 ubfx r0, r0, #4, #2 - align = LV_LABEL_ALIGN_LEFT; - 150c0: 2803 cmp r0, #3 -} - 150c2: bf08 it eq - 150c4: 2000 moveq r0, #0 - 150c6: b002 add sp, #8 - 150c8: bd70 pop {r4, r5, r6, pc} - 150ca: bf00 nop - 150cc: 00001a65 .word 0x00001a65 - 150d0: 0002bfc6 .word 0x0002bfc6 - 150d4: 0002bec5 .word 0x0002bec5 - 150d8: 0000eb79 .word 0x0000eb79 - 150dc: 00026943 .word 0x00026943 - 150e0: 00001a6d .word 0x00001a6d - 150e4: 0000422d .word 0x0000422d - -000150e8 : -{ - 150e8: b573 push {r0, r1, r4, r5, r6, lr} - LV_ASSERT_OBJ(label, LV_OBJX_NAME); - 150ea: 4b0d ldr r3, [pc, #52] ; (15120 ) -{ - 150ec: 4604 mov r4, r0 - LV_ASSERT_OBJ(label, LV_OBJX_NAME); - 150ee: 4798 blx r3 - 150f0: 4605 mov r5, r0 - 150f2: b968 cbnz r0, 15110 - 150f4: 4b0b ldr r3, [pc, #44] ; (15124 ) - 150f6: 490c ldr r1, [pc, #48] ; (15128 ) - 150f8: 9300 str r3, [sp, #0] - 150fa: f240 221b movw r2, #539 ; 0x21b - 150fe: 2003 movs r0, #3 - 15100: 4e0a ldr r6, [pc, #40] ; (1512c ) - 15102: 47b0 blx r6 - 15104: 480a ldr r0, [pc, #40] ; (15130 ) - 15106: 490b ldr r1, [pc, #44] ; (15134 ) - 15108: 4622 mov r2, r4 - 1510a: 462b mov r3, r5 - 1510c: 4788 blx r1 - 1510e: e7fe b.n 1510e - lv_label_ext_t * ext = lv_obj_get_ext_attr(label); - 15110: 4b09 ldr r3, [pc, #36] ; (15138 ) - 15112: 4620 mov r0, r4 - 15114: 4798 blx r3 - return ext->recolor == 0 ? false : true; - 15116: 7c00 ldrb r0, [r0, #16] -} - 15118: f3c0 1080 ubfx r0, r0, #6, #1 - 1511c: b002 add sp, #8 - 1511e: bd70 pop {r4, r5, r6, pc} - 15120: 00001a65 .word 0x00001a65 - 15124: 0002bfd9 .word 0x0002bfd9 - 15128: 0002bec5 .word 0x0002bec5 - 1512c: 0000eb79 .word 0x0000eb79 - 15130: 00026943 .word 0x00026943 - 15134: 00001a6d .word 0x00001a6d - 15138: 0000422d .word 0x0000422d - -0001513c : -{ - 1513c: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - 15140: ed2d 8b02 vpush {d8} - 15144: b08b sub sp, #44 ; 0x2c - LV_ASSERT_OBJ(label, LV_OBJX_NAME); - 15146: 4e93 ldr r6, [pc, #588] ; (15394 ) -{ - 15148: 9102 str r1, [sp, #8] - 1514a: 4604 mov r4, r0 - LV_ASSERT_OBJ(label, LV_OBJX_NAME); - 1514c: 47b0 blx r6 - 1514e: 4605 mov r5, r0 - 15150: b968 cbnz r0, 1516e - 15152: 4b91 ldr r3, [pc, #580] ; (15398 ) - 15154: 4991 ldr r1, [pc, #580] ; (1539c ) - 15156: 9300 str r3, [sp, #0] - 15158: f240 22a5 movw r2, #677 ; 0x2a5 - 1515c: 2003 movs r0, #3 - 1515e: 4e90 ldr r6, [pc, #576] ; (153a0 ) - 15160: 47b0 blx r6 - 15162: 4890 ldr r0, [pc, #576] ; (153a4 ) - 15164: 4990 ldr r1, [pc, #576] ; (153a8 ) - 15166: 4622 mov r2, r4 - 15168: 462b mov r3, r5 - 1516a: 4788 blx r1 - 1516c: e7fe b.n 1516c - LV_ASSERT_NULL(pos); - 1516e: 9802 ldr r0, [sp, #8] - 15170: 47b0 blx r6 - 15172: 4605 mov r5, r0 - 15174: b968 cbnz r0, 15192 - 15176: 4b88 ldr r3, [pc, #544] ; (15398 ) - 15178: 4988 ldr r1, [pc, #544] ; (1539c ) - 1517a: 9300 str r3, [sp, #0] - 1517c: f240 22a6 movw r2, #678 ; 0x2a6 - 15180: 2003 movs r0, #3 - 15182: 4c87 ldr r4, [pc, #540] ; (153a0 ) - 15184: 47a0 blx r4 - 15186: 9a02 ldr r2, [sp, #8] - 15188: 4886 ldr r0, [pc, #536] ; (153a4 ) - 1518a: 4987 ldr r1, [pc, #540] ; (153a8 ) - 1518c: 462b mov r3, r5 - 1518e: 4788 blx r1 - 15190: e7fe b.n 15190 - get_txt_coords(label, &txt_coords); - 15192: a908 add r1, sp, #32 - 15194: 4620 mov r0, r4 - 15196: 4b85 ldr r3, [pc, #532] ; (153ac ) -_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LINE_SPACE, text_line_space, lv_style_int_t, _int, scalar) - 15198: 4f85 ldr r7, [pc, #532] ; (153b0 ) - 1519a: 4798 blx r3 - const char * txt = lv_label_get_text(label); - 1519c: 4b85 ldr r3, [pc, #532] ; (153b4 ) - 1519e: 4620 mov r0, r4 - 151a0: 4798 blx r3 - lv_label_ext_t * ext = lv_obj_get_ext_attr(label); - 151a2: 4b85 ldr r3, [pc, #532] ; (153b8 ) - const char * txt = lv_label_get_text(label); - 151a4: 4680 mov r8, r0 - lv_label_ext_t * ext = lv_obj_get_ext_attr(label); - 151a6: 4620 mov r0, r4 - 151a8: 4798 blx r3 - return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - 151aa: f8bd 3024 ldrh.w r3, [sp, #36] ; 0x24 - 151ae: f8bd 2020 ldrh.w r2, [sp, #32] - 151b2: 3301 adds r3, #1 - 151b4: 1a9b subs r3, r3, r2 - 151b6: b21b sxth r3, r3 - 151b8: 4606 mov r6, r0 -_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar) - 151ba: f248 028e movw r2, #32910 ; 0x808e - 151be: 2100 movs r1, #0 - 151c0: 4620 mov r0, r4 - 151c2: ee08 3a90 vmov s17, r3 - 151c6: 4b7d ldr r3, [pc, #500] ; (153bc ) - 151c8: 4798 blx r3 -_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LINE_SPACE, text_line_space, lv_style_int_t, _int, scalar) - 151ca: f248 0281 movw r2, #32897 ; 0x8081 -_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar) - 151ce: 4682 mov sl, r0 -_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LINE_SPACE, text_line_space, lv_style_int_t, _int, scalar) - 151d0: 2100 movs r1, #0 - 151d2: 4620 mov r0, r4 - 151d4: 47b8 blx r7 -_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LETTER_SPACE, text_letter_space, lv_style_int_t, _int, scalar) - 151d6: f248 0280 movw r2, #32896 ; 0x8080 - 151da: 2100 movs r1, #0 -_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LINE_SPACE, text_line_space, lv_style_int_t, _int, scalar) - 151dc: 4605 mov r5, r0 -_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LETTER_SPACE, text_letter_space, lv_style_int_t, _int, scalar) - 151de: 4620 mov r0, r4 - 151e0: 47b8 blx r7 - * @param font_p pointer to a font - * @return the height of a font - */ -static inline lv_coord_t lv_font_get_line_height(const lv_font_t * font_p) -{ - return font_p->line_height; - 151e2: f9ba 3008 ldrsh.w r3, [sl, #8] - 151e6: 9303 str r3, [sp, #12] - if(ext->recolor != 0) flag |= LV_TXT_FLAG_RECOLOR; - 151e8: 7c33 ldrb r3, [r6, #16] - lv_txt_flag_t flag = LV_TXT_FLAG_NONE; - 151ea: f3c3 1680 ubfx r6, r3, #6, #1 - if(ext->expand != 0) flag |= LV_TXT_FLAG_EXPAND; - 151ee: 061a lsls r2, r3, #24 - 151f0: bf48 it mi - 151f2: f046 0602 orrmi.w r6, r6, #2 - 151f6: ee08 0a10 vmov s16, r0 - if(ext->long_mode == LV_LABEL_LONG_EXPAND) flag |= LV_TXT_FLAG_FIT; - 151fa: 075b lsls r3, r3, #29 - lv_label_align_t align = lv_label_get_align(label); - 151fc: 4620 mov r0, r4 - 151fe: 4b70 ldr r3, [pc, #448] ; (153c0 ) - if(ext->long_mode == LV_LABEL_LONG_EXPAND) flag |= LV_TXT_FLAG_FIT; - 15200: bf08 it eq - 15202: f046 0610 orreq.w r6, r6, #16 - lv_label_align_t align = lv_label_get_align(label); - 15206: 4798 blx r3 - if(align == LV_LABEL_ALIGN_CENTER) flag |= LV_TXT_FLAG_CENTER; - 15208: 2801 cmp r0, #1 - lv_label_align_t align = lv_label_get_align(label); - 1520a: 4604 mov r4, r0 - if(align == LV_LABEL_ALIGN_CENTER) flag |= LV_TXT_FLAG_CENTER; - 1520c: d108 bne.n 15220 - 1520e: f046 0604 orr.w r6, r6, #4 - y += letter_height + line_space; - 15212: 9b03 ldr r3, [sp, #12] - new_line_start += _lv_txt_get_next_line(&txt[line_start], font, letter_space, max_w, flag); - 15214: f04f 0b00 mov.w fp, #0 - y += letter_height + line_space; - 15218: 442b add r3, r5 - new_line_start += _lv_txt_get_next_line(&txt[line_start], font, letter_space, max_w, flag); - 1521a: 465f mov r7, fp - y += letter_height + line_space; - 1521c: 9304 str r3, [sp, #16] - 1521e: e059 b.n 152d4 - if(align == LV_LABEL_ALIGN_RIGHT) flag |= LV_TXT_FLAG_RIGHT; - 15220: 2802 cmp r0, #2 - 15222: d1f6 bne.n 15212 - 15224: f046 0608 orr.w r6, r6, #8 - 15228: e7f3 b.n 15212 - new_line_start += _lv_txt_get_next_line(&txt[line_start], font, letter_space, max_w, flag); - 1522a: ee18 3a90 vmov r3, s17 - 1522e: ee18 2a10 vmov r2, s16 - 15232: 4d64 ldr r5, [pc, #400] ; (153c4 ) - 15234: 9600 str r6, [sp, #0] - 15236: 4651 mov r1, sl - 15238: 4648 mov r0, r9 - 1523a: 47a8 blx r5 - if(pos->y <= y + letter_height) { - 1523c: 9b02 ldr r3, [sp, #8] - 1523e: f9b3 2002 ldrsh.w r2, [r3, #2] - 15242: 9b03 ldr r3, [sp, #12] - 15244: 445b add r3, fp - 15246: 429a cmp r2, r3 - new_line_start += _lv_txt_get_next_line(&txt[line_start], font, letter_space, max_w, flag); - 15248: eb00 0507 add.w r5, r0, r7 - if(pos->y <= y + letter_height) { - 1524c: dc3d bgt.n 152ca - letter = _lv_txt_encoded_prev(txt, &tmp); - 1524e: 4b5e ldr r3, [pc, #376] ; (153c8 ) - uint32_t tmp = new_line_start; - 15250: 9507 str r5, [sp, #28] - letter = _lv_txt_encoded_prev(txt, &tmp); - 15252: 681b ldr r3, [r3, #0] - 15254: a907 add r1, sp, #28 - 15256: 4640 mov r0, r8 - 15258: 4798 blx r3 - if(letter != '\n' && txt[new_line_start] == '\0') new_line_start++; - 1525a: 280a cmp r0, #10 - 1525c: d003 beq.n 15266 - 1525e: f818 3005 ldrb.w r3, [r8, r5] - 15262: b903 cbnz r3, 15266 - 15264: 3501 adds r5, #1 - if(align == LV_LABEL_ALIGN_CENTER) { - 15266: 2c01 cmp r4, #1 - 15268: d13c bne.n 152e4 - line_w = _lv_txt_get_width(bidi_txt, new_line_start - line_start, font, letter_space, flag); - 1526a: 1be9 subs r1, r5, r7 - 1526c: ee18 3a10 vmov r3, s16 - 15270: 4c56 ldr r4, [pc, #344] ; (153cc ) - 15272: 9600 str r6, [sp, #0] - 15274: 4652 mov r2, sl - 15276: b289 uxth r1, r1 - 15278: 4648 mov r0, r9 - 1527a: 47a0 blx r4 - 1527c: f8bd 3024 ldrh.w r3, [sp, #36] ; 0x24 - 15280: f8bd 2020 ldrh.w r2, [sp, #32] - 15284: 3301 adds r3, #1 - 15286: 1a9b subs r3, r3, r2 - x += lv_area_get_width(&txt_coords) / 2 - line_w / 2; - 15288: f3c3 32c0 ubfx r2, r3, #15, #1 - 1528c: eb00 74d0 add.w r4, r0, r0, lsr #31 - 15290: fa02 f383 sxtah r3, r2, r3 - 15294: 1064 asrs r4, r4, #1 - 15296: ebc4 0463 rsb r4, r4, r3, asr #1 - x += lv_area_get_width(&txt_coords) - line_w; - 1529a: b224 sxth r4, r4 - lv_txt_cmd_state_t cmd_state = LV_TXT_CMD_STATE_WAIT; - 1529c: 2300 movs r3, #0 - 1529e: f88d 301b strb.w r3, [sp, #27] - uint32_t i = 0; - 152a2: 9307 str r3, [sp, #28] - if(new_line_start > 0) { - 152a4: 2d00 cmp r5, #0 - 152a6: d16d bne.n 15384 - logical_pos = _lv_txt_encoded_get_char_id(bidi_txt, i); - 152a8: 4d49 ldr r5, [pc, #292] ; (153d0 ) - 152aa: 9907 ldr r1, [sp, #28] - 152ac: 682b ldr r3, [r5, #0] - 152ae: 4648 mov r0, r9 - 152b0: 4798 blx r3 - return logical_pos + _lv_txt_encoded_get_char_id(txt, line_start); - 152b2: 682b ldr r3, [r5, #0] - logical_pos = _lv_txt_encoded_get_char_id(bidi_txt, i); - 152b4: 4604 mov r4, r0 - return logical_pos + _lv_txt_encoded_get_char_id(txt, line_start); - 152b6: 4639 mov r1, r7 - 152b8: 4640 mov r0, r8 - 152ba: 4798 blx r3 - 152bc: 4420 add r0, r4 -} - 152be: b280 uxth r0, r0 - 152c0: b00b add sp, #44 ; 0x2c - 152c2: ecbd 8b02 vpop {d8} - 152c6: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - y += letter_height + line_space; - 152ca: 9b04 ldr r3, [sp, #16] - 152cc: 449b add fp, r3 - 152ce: fa0f fb8b sxth.w fp, fp - new_line_start += _lv_txt_get_next_line(&txt[line_start], font, letter_space, max_w, flag); - 152d2: 462f mov r7, r5 - while(txt[line_start] != '\0') { - 152d4: f818 3007 ldrb.w r3, [r8, r7] - 152d8: eb08 0907 add.w r9, r8, r7 - 152dc: 2b00 cmp r3, #0 - 152de: d1a4 bne.n 1522a - 152e0: 463d mov r5, r7 - 152e2: e7c0 b.n 15266 - else if(align == LV_LABEL_ALIGN_RIGHT) { - 152e4: 2c02 cmp r4, #2 - 152e6: d110 bne.n 1530a - line_w = _lv_txt_get_width(bidi_txt, new_line_start - line_start, font, letter_space, flag); - 152e8: 1be9 subs r1, r5, r7 - 152ea: ee18 3a10 vmov r3, s16 - 152ee: 4c37 ldr r4, [pc, #220] ; (153cc ) - 152f0: 9600 str r6, [sp, #0] - 152f2: 4652 mov r2, sl - 152f4: b289 uxth r1, r1 - 152f6: 4648 mov r0, r9 - 152f8: 47a0 blx r4 - 152fa: f8bd 4024 ldrh.w r4, [sp, #36] ; 0x24 - 152fe: f8bd 3020 ldrh.w r3, [sp, #32] - 15302: 3401 adds r4, #1 - 15304: 1ae4 subs r4, r4, r3 - x += lv_area_get_width(&txt_coords) - line_w; - 15306: 1a24 subs r4, r4, r0 - 15308: e7c7 b.n 1529a - lv_coord_t x = 0; - 1530a: 2400 movs r4, #0 - 1530c: e7c6 b.n 1529c - if(_lv_txt_is_cmd(&cmd_state, bidi_txt[i]) != false) { - 1530e: 9b07 ldr r3, [sp, #28] - 15310: 9005 str r0, [sp, #20] - 15312: f819 1003 ldrb.w r1, [r9, r3] - 15316: 4b2f ldr r3, [pc, #188] ; (153d4 ) - 15318: f10d 001b add.w r0, sp, #27 - 1531c: 4798 blx r3 - 1531e: 9a05 ldr r2, [sp, #20] - 15320: b198 cbz r0, 1534a - while(i + line_start < new_line_start) { - 15322: 9b07 ldr r3, [sp, #28] - 15324: 443b add r3, r7 - 15326: 429d cmp r5, r3 - 15328: d9be bls.n 152a8 - uint32_t letter = _lv_txt_encoded_next(bidi_txt, &i); - 1532a: f8db 3000 ldr.w r3, [fp] - 1532e: a907 add r1, sp, #28 - 15330: 4648 mov r0, r9 - 15332: 4798 blx r3 - 15334: 4606 mov r6, r0 - uint32_t letter_next = _lv_txt_encoded_next(&bidi_txt[i], NULL); - 15336: 9807 ldr r0, [sp, #28] - 15338: f8db 3000 ldr.w r3, [fp] - 1533c: 2100 movs r1, #0 - 1533e: 4448 add r0, r9 - 15340: 4798 blx r3 - if((flag & LV_TXT_FLAG_RECOLOR) != 0) { - 15342: 9b04 ldr r3, [sp, #16] - uint32_t letter_next = _lv_txt_encoded_next(&bidi_txt[i], NULL); - 15344: 4602 mov r2, r0 - if((flag & LV_TXT_FLAG_RECOLOR) != 0) { - 15346: 2b00 cmp r3, #0 - 15348: d1e1 bne.n 1530e - x += lv_font_get_glyph_width(font, letter, letter_next); - 1534a: 4b23 ldr r3, [pc, #140] ; (153d8 ) - 1534c: 4631 mov r1, r6 - 1534e: 4650 mov r0, sl - 15350: 4798 blx r3 - if(pos->x < x || i + line_start == new_line_start || txt[i + line_start] == '\0') { - 15352: 9b02 ldr r3, [sp, #8] - x += lv_font_get_glyph_width(font, letter, letter_next); - 15354: 4420 add r0, r4 - if(pos->x < x || i + line_start == new_line_start || txt[i + line_start] == '\0') { - 15356: f9b3 3000 ldrsh.w r3, [r3] - x += lv_font_get_glyph_width(font, letter, letter_next); - 1535a: b284 uxth r4, r0 - if(pos->x < x || i + line_start == new_line_start || txt[i + line_start] == '\0') { - 1535c: b200 sxth r0, r0 - 1535e: 4283 cmp r3, r0 - 15360: da02 bge.n 15368 - i = i_act; - 15362: 9b03 ldr r3, [sp, #12] - 15364: 9307 str r3, [sp, #28] - break; - 15366: e79f b.n 152a8 - if(pos->x < x || i + line_start == new_line_start || txt[i + line_start] == '\0') { - 15368: 9b07 ldr r3, [sp, #28] - 1536a: 18fa adds r2, r7, r3 - 1536c: 4295 cmp r5, r2 - 1536e: d0f8 beq.n 15362 - 15370: f818 2002 ldrb.w r2, [r8, r2] - 15374: 2a00 cmp r2, #0 - 15376: d0f4 beq.n 15362 - x += letter_space; - 15378: ee18 2a10 vmov r2, s16 - 1537c: 4414 add r4, r2 - 1537e: b224 sxth r4, r4 - i_act = i; - 15380: 9303 str r3, [sp, #12] - 15382: e7ce b.n 15322 - uint32_t i_act = i; - 15384: 9303 str r3, [sp, #12] - if((flag & LV_TXT_FLAG_RECOLOR) != 0) { - 15386: f006 0301 and.w r3, r6, #1 - uint32_t letter = _lv_txt_encoded_next(bidi_txt, &i); - 1538a: f8df b050 ldr.w fp, [pc, #80] ; 153dc - if((flag & LV_TXT_FLAG_RECOLOR) != 0) { - 1538e: 9304 str r3, [sp, #16] - 15390: e7c7 b.n 15322 - 15392: bf00 nop - 15394: 00001a65 .word 0x00001a65 - 15398: 0002c01e .word 0x0002c01e - 1539c: 0002bec5 .word 0x0002bec5 - 153a0: 0000eb79 .word 0x0000eb79 - 153a4: 00026943 .word 0x00026943 - 153a8: 00001a6d .word 0x00001a6d - 153ac: 00014f1d .word 0x00014f1d - 153b0: 00003995 .word 0x00003995 - 153b4: 00014fe9 .word 0x00014fe9 - 153b8: 0000422d .word 0x0000422d - 153bc: 00003b4d .word 0x00003b4d - 153c0: 0001508d .word 0x0001508d - 153c4: 00010255 .word 0x00010255 - 153c8: 2000005c .word 0x2000005c - 153cc: 000101ad .word 0x000101ad - 153d0: 20000058 .word 0x20000058 - 153d4: 00010175 .word 0x00010175 - 153d8: 0000d3f9 .word 0x0000d3f9 - 153dc: 2000004c .word 0x2000004c - -000153e0 : -{ - 153e0: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - lv_label_ext_t * ext = lv_obj_get_ext_attr(label); - 153e4: 4b8d ldr r3, [pc, #564] ; (1561c ) -{ - 153e6: b09b sub sp, #108 ; 0x6c - 153e8: 4604 mov r4, r0 - lv_label_ext_t * ext = lv_obj_get_ext_attr(label); - 153ea: 4798 blx r3 - if(ext->text == NULL) return; - 153ec: 6803 ldr r3, [r0, #0] - lv_label_ext_t * ext = lv_obj_get_ext_attr(label); - 153ee: 4605 mov r5, r0 - if(ext->text == NULL) return; - 153f0: 2b00 cmp r3, #0 - 153f2: d062 beq.n 154ba - get_txt_coords(label, &txt_coords); - 153f4: 4b8a ldr r3, [pc, #552] ; (15620 ) -_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LINE_SPACE, text_line_space, lv_style_int_t, _int, scalar) - 153f6: f8df 8258 ldr.w r8, [pc, #600] ; 15650 - 153fa: a908 add r1, sp, #32 - 153fc: 4620 mov r0, r4 - 153fe: 4798 blx r3 - 15400: f8bd a024 ldrh.w sl, [sp, #36] ; 0x24 - 15404: f8bd 3020 ldrh.w r3, [sp, #32] - 15408: f10a 0a01 add.w sl, sl, #1 - 1540c: ebaa 0a03 sub.w sl, sl, r3 -_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar) - 15410: f248 028e movw r2, #32910 ; 0x808e - 15414: 4b83 ldr r3, [pc, #524] ; (15624 ) - 15416: 2100 movs r1, #0 - 15418: 4620 mov r0, r4 - 1541a: 4798 blx r3 -_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LINE_SPACE, text_line_space, lv_style_int_t, _int, scalar) - 1541c: f248 0281 movw r2, #32897 ; 0x8081 -_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar) - 15420: 4606 mov r6, r0 -_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LINE_SPACE, text_line_space, lv_style_int_t, _int, scalar) - 15422: 2100 movs r1, #0 - 15424: 4620 mov r0, r4 - 15426: 47c0 blx r8 -_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LETTER_SPACE, text_letter_space, lv_style_int_t, _int, scalar) - 15428: 2100 movs r1, #0 -_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LINE_SPACE, text_line_space, lv_style_int_t, _int, scalar) - 1542a: 4607 mov r7, r0 -_LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LETTER_SPACE, text_letter_space, lv_style_int_t, _int, scalar) - 1542c: f248 0280 movw r2, #32896 ; 0x8080 - 15430: 4620 mov r0, r4 - 15432: 47c0 blx r8 - if(ext->recolor != 0) flag |= LV_TXT_FLAG_RECOLOR; - 15434: 7c2a ldrb r2, [r5, #16] - _lv_txt_get_size(&size, ext->text, font, letter_space, line_space, max_w, flag); - 15436: 9700 str r7, [sp, #0] - lv_txt_flag_t flag = LV_TXT_FLAG_NONE; - 15438: f3c2 1380 ubfx r3, r2, #6, #1 - if(ext->expand != 0) flag |= LV_TXT_FLAG_EXPAND; - 1543c: 0611 lsls r1, r2, #24 - 1543e: bf48 it mi - 15440: f043 0302 orrmi.w r3, r3, #2 - if(ext->long_mode == LV_LABEL_LONG_EXPAND) flag |= LV_TXT_FLAG_FIT; - 15444: 0752 lsls r2, r2, #29 - 15446: bf08 it eq - 15448: f043 0310 orreq.w r3, r3, #16 - 1544c: fa0f fa8a sxth.w sl, sl - _lv_txt_get_size(&size, ext->text, font, letter_space, line_space, max_w, flag); - 15450: e9cd a301 strd sl, r3, [sp, #4] - 15454: 4681 mov r9, r0 - 15456: 6829 ldr r1, [r5, #0] - 15458: f8df a1f8 ldr.w sl, [pc, #504] ; 15654 - 1545c: 4603 mov r3, r0 - 1545e: 4632 mov r2, r6 - 15460: a806 add r0, sp, #24 - 15462: 47d0 blx sl - if(ext->long_mode == LV_LABEL_LONG_EXPAND) { - 15464: 7c29 ldrb r1, [r5, #16] - 15466: f011 0107 ands.w r1, r1, #7 - 1546a: d129 bne.n 154c0 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar) - 1546c: 2212 movs r2, #18 - 1546e: 4620 mov r0, r4 - 15470: 9105 str r1, [sp, #20] - 15472: 47c0 blx r8 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar) - 15474: 9905 ldr r1, [sp, #20] -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar) - 15476: 4605 mov r5, r0 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar) - 15478: 2213 movs r2, #19 - 1547a: 4620 mov r0, r4 - 1547c: 47c0 blx r8 - size.x += lv_obj_get_style_pad_left(label, LV_LABEL_PART_MAIN) + lv_obj_get_style_pad_right(label, LV_LABEL_PART_MAIN); - 1547e: f8bd 3018 ldrh.w r3, [sp, #24] -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar) - 15482: 9905 ldr r1, [sp, #20] - 15484: 4428 add r0, r5 - 15486: 4418 add r0, r3 - 15488: f8ad 0018 strh.w r0, [sp, #24] - 1548c: 2210 movs r2, #16 - 1548e: 4620 mov r0, r4 - 15490: 47c0 blx r8 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar) - 15492: 9905 ldr r1, [sp, #20] -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar) - 15494: 4605 mov r5, r0 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar) - 15496: 2211 movs r2, #17 - 15498: 4620 mov r0, r4 - 1549a: 47c0 blx r8 - size.y += lv_obj_get_style_pad_top(label, LV_LABEL_PART_MAIN) + lv_obj_get_style_pad_bottom(label, LV_LABEL_PART_MAIN); - 1549c: f8bd 301a ldrh.w r3, [sp, #26] - lv_obj_set_size(label, size.x, size.y); - 154a0: f9bd 1018 ldrsh.w r1, [sp, #24] - size.y += lv_obj_get_style_pad_top(label, LV_LABEL_PART_MAIN) + lv_obj_get_style_pad_bottom(label, LV_LABEL_PART_MAIN); - 154a4: 182a adds r2, r5, r0 - 154a6: 441a add r2, r3 - 154a8: b212 sxth r2, r2 - lv_obj_set_size(label, size.x, size.y); - 154aa: 4b5f ldr r3, [pc, #380] ; (15628 ) - size.y += lv_obj_get_style_pad_top(label, LV_LABEL_PART_MAIN) + lv_obj_get_style_pad_bottom(label, LV_LABEL_PART_MAIN); - 154ac: f8ad 201a strh.w r2, [sp, #26] - lv_obj_set_size(label, size.x, size.y); - 154b0: 4620 mov r0, r4 - 154b2: 4798 blx r3 - lv_obj_invalidate(label); - 154b4: 4b5d ldr r3, [pc, #372] ; (1562c ) - 154b6: 4620 mov r0, r4 - 154b8: 4798 blx r3 -} - 154ba: b01b add sp, #108 ; 0x6c - 154bc: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - else if(ext->long_mode == LV_LABEL_LONG_SROLL) { - 154c0: 3901 subs r1, #1 - 154c2: 2903 cmp r1, #3 - 154c4: d8f6 bhi.n 154b4 - 154c6: e8df f011 tbh [pc, r1, lsl #1] - 154ca: 01c8 .short 0x01c8 - 154cc: 0004013c .word 0x0004013c - 154d0: 00c7 .short 0x00c7 - lv_anim_init(&a); - 154d2: 4b57 ldr r3, [pc, #348] ; (15630 ) - 154d4: a80a add r0, sp, #40 ; 0x28 - 154d6: 4798 blx r3 - lv_anim_set_playback_delay(&a, (((lv_font_get_glyph_width(font, ' ', ' ') + letter_space) * 1000) / - 154d8: 2220 movs r2, #32 - * @param a pointer to an initialized `lv_anim_t` variable - * @param cnt repeat count or `LV_ANIM_REPEAT_INFINITE` for infinite repetition. 0: to disable repetition. - */ -static inline void lv_anim_set_repeat_count(lv_anim_t * a, uint16_t cnt) -{ - a->repeat_cnt = cnt; - 154da: f64f 73ff movw r3, #65535 ; 0xffff - 154de: 4611 mov r1, r2 - 154e0: f8ad 305c strh.w r3, [sp, #92] ; 0x5c - a->var = var; - 154e4: 940a str r4, [sp, #40] ; 0x28 - 154e6: 4b53 ldr r3, [pc, #332] ; (15634 ) - 154e8: 4630 mov r0, r6 - 154ea: 4798 blx r3 - 154ec: f44f 727a mov.w r2, #1000 ; 0x3e8 - 154f0: eb00 0309 add.w r3, r0, r9 - ext->anim_speed) * - 154f4: 896f ldrh r7, [r5, #10] - if(size.x > lv_area_get_width(&txt_coords)) { - 154f6: f9bd 1018 ldrsh.w r1, [sp, #24] - lv_anim_set_playback_delay(&a, (((lv_font_get_glyph_width(font, ' ', ' ') + letter_space) * 1000) / - 154fa: 4353 muls r3, r2 - 154fc: fb93 f3f7 sdiv r3, r3, r7 - 15500: eb03 0343 add.w r3, r3, r3, lsl #1 - a->playback_delay = delay; - 15504: b29b uxth r3, r3 - 15506: 9314 str r3, [sp, #80] ; 0x50 - * @param a pointer to an initialized `lv_anim_t` variable - * @param delay delay in milliseconds before repeating the animation. - */ -static inline void lv_anim_set_repeat_delay(lv_anim_t * a, uint16_t delay) -{ - a->repeat_delay = delay; - 15508: 9316 str r3, [sp, #88] ; 0x58 - 1550a: f8bd 3024 ldrh.w r3, [sp, #36] ; 0x24 - 1550e: f8bd 2020 ldrh.w r2, [sp, #32] - 15512: 3301 adds r3, #1 - 15514: 1a9b subs r3, r3, r2 - 15516: b29a uxth r2, r3 - if(size.x > lv_area_get_width(&txt_coords)) { - 15518: b21b sxth r3, r3 - 1551a: 4299 cmp r1, r3 - 1551c: dd74 ble.n 15608 - lv_anim_set_values(&a, 0, lv_area_get_width(&txt_coords) - size.x); - 1551e: 1a52 subs r2, r2, r1 - a->exec_cb = exec_cb; - 15520: f8df 8124 ldr.w r8, [pc, #292] ; 15648 - lv_anim_set_time(&a, lv_anim_speed_to_time(ext->anim_speed, a.start, a.end)); - 15524: 4b44 ldr r3, [pc, #272] ; (15638 ) - 15526: f8cd 802c str.w r8, [sp, #44] ; 0x2c - a->start = start; - 1552a: 2100 movs r1, #0 - lv_anim_set_values(&a, 0, lv_area_get_width(&txt_coords) - size.x); - 1552c: b212 sxth r2, r2 - a->end = end; - 1552e: e9cd 1210 strd r1, r2, [sp, #64] ; 0x40 - lv_anim_set_time(&a, lv_anim_speed_to_time(ext->anim_speed, a.start, a.end)); - 15532: 4638 mov r0, r7 - 15534: 4798 blx r3 - lv_anim_t * anim_cur = lv_anim_get(label, (lv_anim_exec_xcb_t)lv_label_set_offset_x); - 15536: 4b41 ldr r3, [pc, #260] ; (1563c ) - a->time = duration; - 15538: 9012 str r0, [sp, #72] ; 0x48 - lv_anim_set_time(&a, lv_anim_speed_to_time(ext->anim_speed, a.start, a.end)); - 1553a: 9015 str r0, [sp, #84] ; 0x54 - lv_anim_t * anim_cur = lv_anim_get(label, (lv_anim_exec_xcb_t)lv_label_set_offset_x); - 1553c: 4641 mov r1, r8 - 1553e: 4620 mov r0, r4 - 15540: 4798 blx r3 - if(anim_cur) { - 15542: 2800 cmp r0, #0 - 15544: d05e beq.n 15604 - act_time = anim_cur->act_time; - 15546: 6a43 ldr r3, [r0, #36] ; 0x24 - playback_now = anim_cur->playback_now; - 15548: f890 003c ldrb.w r0, [r0, #60] ; 0x3c - 1554c: f000 0001 and.w r0, r0, #1 - if(act_time < a.time) { - 15550: 9a12 ldr r2, [sp, #72] ; 0x48 - 15552: 429a cmp r2, r3 - 15554: dd11 ble.n 1557a - a.act_time = act_time; /*To keep the old position*/ - 15556: 9313 str r3, [sp, #76] ; 0x4c - a.early_apply = 0; - 15558: f89d 305e ldrb.w r3, [sp, #94] ; 0x5e - 1555c: f36f 0300 bfc r3, #0, #1 - 15560: f88d 305e strb.w r3, [sp, #94] ; 0x5e - if(playback_now) { - 15564: b148 cbz r0, 1557a - a.playback_now = 1; - 15566: f89d 3064 ldrb.w r3, [sp, #100] ; 0x64 - 1556a: f043 0301 orr.w r3, r3, #1 - 1556e: f88d 3064 strb.w r3, [sp, #100] ; 0x64 - a.start = a.end; - 15572: e9dd 3210 ldrd r3, r2, [sp, #64] ; 0x40 - a.end = tmp; - 15576: e9cd 2310 strd r2, r3, [sp, #64] ; 0x40 - lv_anim_start(&a); - 1557a: 4b31 ldr r3, [pc, #196] ; (15640 ) - 1557c: a80a add r0, sp, #40 ; 0x28 - 1557e: 4798 blx r3 - hor_anim = true; - 15580: 2701 movs r7, #1 - return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - 15582: f8bd 3026 ldrh.w r3, [sp, #38] ; 0x26 - 15586: f8bd 2022 ldrh.w r2, [sp, #34] ; 0x22 - if(size.y > lv_area_get_height(&txt_coords) && hor_anim == false) { - 1558a: f9bd 101a ldrsh.w r1, [sp, #26] - 1558e: 3301 adds r3, #1 - 15590: 1a9b subs r3, r3, r2 - 15592: b29a uxth r2, r3 - 15594: b21b sxth r3, r3 - 15596: 4299 cmp r1, r3 - 15598: f340 80cc ble.w 15734 - 1559c: 2f00 cmp r7, #0 - 1559e: f040 80c9 bne.w 15734 - lv_anim_set_values(&a, 0, lv_area_get_height(&txt_coords) - size.y - (lv_font_get_line_height(font))); - 155a2: 8933 ldrh r3, [r6, #8] - a->exec_cb = exec_cb; - 155a4: 4e27 ldr r6, [pc, #156] ; (15644 ) - lv_anim_set_time(&a, lv_anim_speed_to_time(ext->anim_speed, a.start, a.end)); - 155a6: 8968 ldrh r0, [r5, #10] - 155a8: 960b str r6, [sp, #44] ; 0x2c - lv_anim_set_values(&a, 0, lv_area_get_height(&txt_coords) - size.y - (lv_font_get_line_height(font))); - 155aa: 1a52 subs r2, r2, r1 - 155ac: 1ad2 subs r2, r2, r3 - 155ae: b212 sxth r2, r2 - lv_anim_set_time(&a, lv_anim_speed_to_time(ext->anim_speed, a.start, a.end)); - 155b0: 4b21 ldr r3, [pc, #132] ; (15638 ) - 155b2: 4639 mov r1, r7 - a->end = end; - 155b4: e9cd 7210 strd r7, r2, [sp, #64] ; 0x40 - 155b8: 4798 blx r3 - lv_anim_t * anim_cur = lv_anim_get(label, (lv_anim_exec_xcb_t)lv_label_set_offset_y); - 155ba: 4b20 ldr r3, [pc, #128] ; (1563c ) - a->time = duration; - 155bc: 9012 str r0, [sp, #72] ; 0x48 - lv_anim_set_time(&a, lv_anim_speed_to_time(ext->anim_speed, a.start, a.end)); - 155be: 9015 str r0, [sp, #84] ; 0x54 - lv_anim_t * anim_cur = lv_anim_get(label, (lv_anim_exec_xcb_t)lv_label_set_offset_y); - 155c0: 4631 mov r1, r6 - 155c2: 4620 mov r0, r4 - 155c4: 4798 blx r3 - if(anim_cur) { - 155c6: b330 cbz r0, 15616 - playback_now = anim_cur->playback_now; - 155c8: f890 703c ldrb.w r7, [r0, #60] ; 0x3c - act_time = anim_cur->act_time; - 155cc: 6a43 ldr r3, [r0, #36] ; 0x24 - playback_now = anim_cur->playback_now; - 155ce: f007 0701 and.w r7, r7, #1 - if(act_time < a.time) { - 155d2: 9a12 ldr r2, [sp, #72] ; 0x48 - 155d4: 429a cmp r2, r3 - 155d6: dd11 ble.n 155fc - a.act_time = act_time; /*To keep the old position*/ - 155d8: 9313 str r3, [sp, #76] ; 0x4c - a.early_apply = 0; - 155da: f89d 305e ldrb.w r3, [sp, #94] ; 0x5e - 155de: f36f 0300 bfc r3, #0, #1 - 155e2: f88d 305e strb.w r3, [sp, #94] ; 0x5e - if(playback_now) { - 155e6: b14f cbz r7, 155fc - a.playback_now = 1; - 155e8: f89d 3064 ldrb.w r3, [sp, #100] ; 0x64 - 155ec: f043 0301 orr.w r3, r3, #1 - 155f0: f88d 3064 strb.w r3, [sp, #100] ; 0x64 - a.start = a.end; - 155f4: e9dd 3210 ldrd r3, r2, [sp, #64] ; 0x40 - a.end = tmp; - 155f8: e9cd 2310 strd r2, r3, [sp, #64] ; 0x40 - lv_anim_start(&a); - 155fc: 4b10 ldr r3, [pc, #64] ; (15640 ) - 155fe: a80a add r0, sp, #40 ; 0x28 - 15600: 4798 blx r3 - if(size.y > lv_area_get_height(&txt_coords) && hor_anim == false) { - 15602: e757 b.n 154b4 - int32_t act_time = 0; - 15604: 4603 mov r3, r0 - 15606: e7a3 b.n 15550 - lv_anim_del(label, (lv_anim_exec_xcb_t)lv_label_set_offset_x); - 15608: 490f ldr r1, [pc, #60] ; (15648 ) - 1560a: 4b10 ldr r3, [pc, #64] ; (1564c ) - 1560c: 4620 mov r0, r4 - ext->offset.x = 0; - 1560e: 2700 movs r7, #0 - lv_anim_del(label, (lv_anim_exec_xcb_t)lv_label_set_offset_x); - 15610: 4798 blx r3 - ext->offset.x = 0; - 15612: 81af strh r7, [r5, #12] - 15614: e7b5 b.n 15582 - int32_t act_time = 0; - 15616: 463b mov r3, r7 - 15618: e7db b.n 155d2 - 1561a: bf00 nop - 1561c: 0000422d .word 0x0000422d - 15620: 00014f1d .word 0x00014f1d - 15624: 00003b4d .word 0x00003b4d - 15628: 00003765 .word 0x00003765 - 1562c: 00002a09 .word 0x00002a09 - 15630: 0000defd .word 0x0000defd - 15634: 0000d3f9 .word 0x0000d3f9 - 15638: 0000e091 .word 0x0000e091 - 1563c: 0000e05d .word 0x0000e05d - 15640: 0000dfa5 .word 0x0000dfa5 - 15644: 00014e51 .word 0x00014e51 - 15648: 00014e71 .word 0x00014e71 - 1564c: 0000df35 .word 0x0000df35 - 15650: 00003995 .word 0x00003995 - 15654: 0001042d .word 0x0001042d - lv_anim_init(&a); - 15658: 4b8a ldr r3, [pc, #552] ; (15884 ) - 1565a: a80a add r0, sp, #40 ; 0x28 - 1565c: 4798 blx r3 - a->repeat_cnt = cnt; - 1565e: f64f 73ff movw r3, #65535 ; 0xffff - 15662: f8ad 305c strh.w r3, [sp, #92] ; 0x5c - return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - 15666: f8bd 3024 ldrh.w r3, [sp, #36] ; 0x24 - 1566a: f8bd 2020 ldrh.w r2, [sp, #32] - a->var = var; - 1566e: 940a str r4, [sp, #40] ; 0x28 - 15670: 3301 adds r3, #1 - 15672: 1a9b subs r3, r3, r2 - if(size.x > lv_area_get_width(&txt_coords)) { - 15674: f9bd 2018 ldrsh.w r2, [sp, #24] - 15678: b21b sxth r3, r3 - 1567a: 429a cmp r2, r3 - 1567c: dd53 ble.n 15726 - lv_anim_set_values(&a, 0, -size.x - lv_font_get_glyph_width(font, ' ', ' ') * LV_LABEL_WAIT_CHAR_COUNT); - 1567e: 2220 movs r2, #32 - 15680: 4611 mov r1, r2 - 15682: 4b81 ldr r3, [pc, #516] ; (15888 ) - a->exec_cb = exec_cb; - 15684: 4f81 ldr r7, [pc, #516] ; (1588c ) - 15686: 4630 mov r0, r6 - 15688: 4798 blx r3 - 1568a: ebc0 3380 rsb r3, r0, r0, lsl #14 - 1568e: eb00 0283 add.w r2, r0, r3, lsl #2 - 15692: f8bd 3018 ldrh.w r3, [sp, #24] - lv_anim_set_time(&a, lv_anim_speed_to_time(ext->anim_speed, a.start, a.end)); - 15696: 8968 ldrh r0, [r5, #10] - 15698: 970b str r7, [sp, #44] ; 0x2c - lv_anim_set_values(&a, 0, -size.x - lv_font_get_glyph_width(font, ' ', ' ') * LV_LABEL_WAIT_CHAR_COUNT); - 1569a: 1ad2 subs r2, r2, r3 - a->start = start; - 1569c: 2100 movs r1, #0 - 1569e: b212 sxth r2, r2 - a->end = end; - 156a0: e9cd 1210 strd r1, r2, [sp, #64] ; 0x40 - lv_anim_set_time(&a, lv_anim_speed_to_time(ext->anim_speed, a.start, a.end)); - 156a4: 4b7a ldr r3, [pc, #488] ; (15890 ) - 156a6: 4798 blx r3 - lv_anim_t * anim_cur = lv_anim_get(label, (lv_anim_exec_xcb_t)lv_label_set_offset_x); - 156a8: 4b7a ldr r3, [pc, #488] ; (15894 ) - a->time = duration; - 156aa: 9012 str r0, [sp, #72] ; 0x48 - 156ac: 4639 mov r1, r7 - 156ae: 4620 mov r0, r4 - 156b0: 4798 blx r3 - int32_t act_time = anim_cur ? anim_cur->act_time : 0; - 156b2: b100 cbz r0, 156b6 - 156b4: 6a40 ldr r0, [r0, #36] ; 0x24 - if(act_time < a.time) { - 156b6: 9b12 ldr r3, [sp, #72] ; 0x48 - 156b8: 4283 cmp r3, r0 - a.early_apply = 0; - 156ba: bfc1 itttt gt - 156bc: f89d 305e ldrbgt.w r3, [sp, #94] ; 0x5e - a.act_time = act_time; /*To keep the old position*/ - 156c0: 9013 strgt r0, [sp, #76] ; 0x4c - a.early_apply = 0; - 156c2: f36f 0300 bfcgt r3, #0, #1 - 156c6: f88d 305e strbgt.w r3, [sp, #94] ; 0x5e - lv_anim_start(&a); - 156ca: a80a add r0, sp, #40 ; 0x28 - 156cc: 4b72 ldr r3, [pc, #456] ; (15898 ) - 156ce: 4798 blx r3 - hor_anim = true; - 156d0: 2701 movs r7, #1 - return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - 156d2: f8bd 3026 ldrh.w r3, [sp, #38] ; 0x26 - 156d6: f8bd 1022 ldrh.w r1, [sp, #34] ; 0x22 - if(size.y > lv_area_get_height(&txt_coords) && hor_anim == false) { - 156da: f9bd 201a ldrsh.w r2, [sp, #26] - 156de: 3301 adds r3, #1 - 156e0: 1a5b subs r3, r3, r1 - 156e2: b21b sxth r3, r3 - 156e4: 429a cmp r2, r3 - 156e6: dd25 ble.n 15734 - 156e8: bb27 cbnz r7, 15734 - lv_anim_set_values(&a, 0, -size.y - (lv_font_get_line_height(font))); - 156ea: 8933 ldrh r3, [r6, #8] - a->exec_cb = exec_cb; - 156ec: 4e6b ldr r6, [pc, #428] ; (1589c ) - lv_anim_set_time(&a, lv_anim_speed_to_time(ext->anim_speed, a.start, a.end)); - 156ee: 8968 ldrh r0, [r5, #10] - 156f0: 960b str r6, [sp, #44] ; 0x2c - lv_anim_set_values(&a, 0, -size.y - (lv_font_get_line_height(font))); - 156f2: 441a add r2, r3 - 156f4: 4252 negs r2, r2 - 156f6: b212 sxth r2, r2 - lv_anim_set_time(&a, lv_anim_speed_to_time(ext->anim_speed, a.start, a.end)); - 156f8: 4b65 ldr r3, [pc, #404] ; (15890 ) - 156fa: 4639 mov r1, r7 - a->end = end; - 156fc: e9cd 7210 strd r7, r2, [sp, #64] ; 0x40 - 15700: 4798 blx r3 - lv_anim_t * anim_cur = lv_anim_get(label, (lv_anim_exec_xcb_t)lv_label_set_offset_y); - 15702: 4b64 ldr r3, [pc, #400] ; (15894 ) - a->time = duration; - 15704: 9012 str r0, [sp, #72] ; 0x48 - 15706: 4631 mov r1, r6 - 15708: 4620 mov r0, r4 - 1570a: 4798 blx r3 - int32_t act_time = anim_cur ? anim_cur->act_time : 0; - 1570c: b100 cbz r0, 15710 - 1570e: 6a47 ldr r7, [r0, #36] ; 0x24 - if(act_time < a.time) { - 15710: 9b12 ldr r3, [sp, #72] ; 0x48 - 15712: 42bb cmp r3, r7 - a.early_apply = 0; - 15714: bfc1 itttt gt - 15716: f89d 305e ldrbgt.w r3, [sp, #94] ; 0x5e - a.act_time = act_time; /*To keep the old position*/ - 1571a: 9713 strgt r7, [sp, #76] ; 0x4c - a.early_apply = 0; - 1571c: f36f 0300 bfcgt r3, #0, #1 - 15720: f88d 305e strbgt.w r3, [sp, #94] ; 0x5e - 15724: e76a b.n 155fc - lv_anim_del(label, (lv_anim_exec_xcb_t)lv_label_set_offset_x); - 15726: 4959 ldr r1, [pc, #356] ; (1588c ) - 15728: 4b5d ldr r3, [pc, #372] ; (158a0 ) - 1572a: 4620 mov r0, r4 - ext->offset.x = 0; - 1572c: 2700 movs r7, #0 - lv_anim_del(label, (lv_anim_exec_xcb_t)lv_label_set_offset_x); - 1572e: 4798 blx r3 - ext->offset.x = 0; - 15730: 81af strh r7, [r5, #12] - 15732: e7ce b.n 156d2 - lv_anim_del(label, (lv_anim_exec_xcb_t)lv_label_set_offset_y); - 15734: 4b5a ldr r3, [pc, #360] ; (158a0 ) - 15736: 4959 ldr r1, [pc, #356] ; (1589c ) - 15738: 4620 mov r0, r4 - 1573a: 4798 blx r3 - ext->offset.y = 0; - 1573c: 2300 movs r3, #0 - 1573e: 81eb strh r3, [r5, #14] - 15740: e6b8 b.n 154b4 - 15742: f8bd 3026 ldrh.w r3, [sp, #38] ; 0x26 - 15746: f8bd 2022 ldrh.w r2, [sp, #34] ; 0x22 - 1574a: 3301 adds r3, #1 - 1574c: 1a9b subs r3, r3, r2 - if(size.y <= lv_area_get_height(&txt_coords)) { /*No dots are required, the text is short enough*/ - 1574e: f9bd 201a ldrsh.w r2, [sp, #26] - 15752: b21b sxth r3, r3 - 15754: 429a cmp r2, r3 - 15756: dc03 bgt.n 15760 - ext->dot_end = LV_LABEL_DOT_END_INV; - 15758: f64f 73ff movw r3, #65535 ; 0xffff - 1575c: 812b strh r3, [r5, #8] - 1575e: e6a9 b.n 154b4 - else if(_lv_txt_get_encoded_length(ext->text) <= LV_LABEL_DOT_NUM) { /*Don't turn to dots all the characters*/ - 15760: 4b50 ldr r3, [pc, #320] ; (158a4 ) - 15762: 6828 ldr r0, [r5, #0] - 15764: 681b ldr r3, [r3, #0] - 15766: 4798 blx r3 - 15768: 2803 cmp r0, #3 - 1576a: d9f5 bls.n 15758 - return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - 1576c: f8bd 8024 ldrh.w r8, [sp, #36] ; 0x24 - 15770: f8bd 3020 ldrh.w r3, [sp, #32] - (lv_font_get_glyph_width(font, '.', '.') + letter_space) * - 15774: 222e movs r2, #46 ; 0x2e - 15776: f108 0801 add.w r8, r8, #1 - 1577a: 4611 mov r1, r2 - 1577c: eba8 0803 sub.w r8, r8, r3 - 15780: 4630 mov r0, r6 - 15782: 4b41 ldr r3, [pc, #260] ; (15888 ) - 15784: 4798 blx r3 - 15786: 4448 add r0, r9 - p.x = lv_area_get_width(&txt_coords) - - 15788: ebc0 3380 rsb r3, r0, r0, lsl #14 - 1578c: eb00 0083 add.w r0, r0, r3, lsl #2 - return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - 15790: f8bd 3026 ldrh.w r3, [sp, #38] ; 0x26 - 15794: f8bd 2022 ldrh.w r2, [sp, #34] ; 0x22 - byte_id -= _lv_txt_encoded_size(&ext->text[byte_id]); - 15798: f8df 9124 ldr.w r9, [pc, #292] ; 158c0 - 1579c: 3301 adds r3, #1 - 1579e: 1a9b subs r3, r3, r2 - (lv_font_get_line_height(font) + line_space); /*Round down to the last line*/ - 157a0: f9b6 2008 ldrsh.w r2, [r6, #8] - 157a4: b29b uxth r3, r3 - 157a6: 443a add r2, r7 - p.y -= line_space; /*Trim the last line space*/ - 157a8: 1bd9 subs r1, r3, r7 - return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - 157aa: fa1f f888 uxth.w r8, r8 - p.y -= p.y % - 157ae: b21b sxth r3, r3 - p.x = lv_area_get_width(&txt_coords) - - 157b0: 4480 add r8, r0 - p.y -= p.y % - 157b2: fb93 f0f2 sdiv r0, r3, r2 - 157b6: fb02 3310 mls r3, r2, r0, r3 - p.y -= line_space; /*Trim the last line space*/ - 157ba: 1acb subs r3, r1, r3 - 157bc: f8ad 301e strh.w r3, [sp, #30] - uint32_t letter_id = lv_label_get_letter_on(label, &p); - 157c0: a907 add r1, sp, #28 - 157c2: 4b39 ldr r3, [pc, #228] ; (158a8 ) - p.x = lv_area_get_width(&txt_coords) - - 157c4: f8ad 801c strh.w r8, [sp, #28] - uint32_t letter_id = lv_label_get_letter_on(label, &p); - 157c8: 4620 mov r0, r4 - 157ca: 4798 blx r3 - size_t txt_len = strlen(ext->text); - 157cc: 682e ldr r6, [r5, #0] - 157ce: 4b37 ldr r3, [pc, #220] ; (158ac ) - uint32_t letter_id = lv_label_get_letter_on(label, &p); - 157d0: 4607 mov r7, r0 - size_t txt_len = strlen(ext->text); - 157d2: 4630 mov r0, r6 - 157d4: 4798 blx r3 - uint32_t byte_id = _lv_txt_encoded_get_byte_id(ext->text, letter_id); - 157d6: 4b36 ldr r3, [pc, #216] ; (158b0 ) - size_t txt_len = strlen(ext->text); - 157d8: 4680 mov r8, r0 - uint32_t byte_id = _lv_txt_encoded_get_byte_id(ext->text, letter_id); - 157da: 681b ldr r3, [r3, #0] - 157dc: 4630 mov r0, r6 - 157de: 4639 mov r1, r7 - 157e0: 4798 blx r3 - 157e2: 4606 mov r6, r0 - byte_id -= _lv_txt_encoded_size(&ext->text[byte_id]); - 157e4: 6828 ldr r0, [r5, #0] - 157e6: f8d9 3000 ldr.w r3, [r9] - uint32_t byte_id = _lv_txt_encoded_get_byte_id(ext->text, letter_id); - 157ea: 960a str r6, [sp, #40] ; 0x28 - while(byte_id + LV_LABEL_DOT_NUM > txt_len) { - 157ec: f106 0b03 add.w fp, r6, #3 - 157f0: 45c3 cmp fp, r8 - byte_id -= _lv_txt_encoded_size(&ext->text[byte_id]); - 157f2: 4430 add r0, r6 - while(byte_id + LV_LABEL_DOT_NUM > txt_len) { - 157f4: d82c bhi.n 15850 - 157f6: f04f 0a04 mov.w sl, #4 - uint8_t len = 0; - 157fa: f04f 0800 mov.w r8, #0 - len += _lv_txt_encoded_size(&ext->text[byte_id]); - 157fe: 9a0a ldr r2, [sp, #40] ; 0x28 - 15800: 6828 ldr r0, [r5, #0] - 15802: f8d9 3000 ldr.w r3, [r9] - 15806: 4410 add r0, r2 - 15808: 4798 blx r3 - _lv_txt_encoded_next(ext->text, &byte_id); - 1580a: 4b2a ldr r3, [pc, #168] ; (158b4 ) - len += _lv_txt_encoded_size(&ext->text[byte_id]); - 1580c: 4440 add r0, r8 - _lv_txt_encoded_next(ext->text, &byte_id); - 1580e: 681b ldr r3, [r3, #0] - len += _lv_txt_encoded_size(&ext->text[byte_id]); - 15810: fa5f f880 uxtb.w r8, r0 - _lv_txt_encoded_next(ext->text, &byte_id); - 15814: a90a add r1, sp, #40 ; 0x28 - 15816: 6828 ldr r0, [r5, #0] - 15818: 4798 blx r3 - for(i = 0; i <= LV_LABEL_DOT_NUM; i++) { - 1581a: f1ba 0a01 subs.w sl, sl, #1 - 1581e: d1ee bne.n 157fe - if(lv_label_set_dot_tmp(label, &ext->text[byte_id_ori], len)) { - 15820: 6829 ldr r1, [r5, #0] - 15822: 4b25 ldr r3, [pc, #148] ; (158b8 ) - 15824: 4642 mov r2, r8 - 15826: 4431 add r1, r6 - 15828: 4620 mov r0, r4 - 1582a: 4798 blx r3 - 1582c: 2800 cmp r0, #0 - 1582e: f43f ae41 beq.w 154b4 - ext->text[byte_id_ori + i] = '.'; - 15832: 682b ldr r3, [r5, #0] - 15834: 222e movs r2, #46 ; 0x2e - 15836: 559a strb r2, [r3, r6] - 15838: 682b ldr r3, [r5, #0] - 1583a: 4433 add r3, r6 - ext->dot_end = letter_id + LV_LABEL_DOT_NUM; - 1583c: 3703 adds r7, #3 - ext->text[byte_id_ori + i] = '.'; - 1583e: 705a strb r2, [r3, #1] - 15840: 682b ldr r3, [r5, #0] - 15842: 4433 add r3, r6 - 15844: 709a strb r2, [r3, #2] - ext->text[byte_id_ori + LV_LABEL_DOT_NUM] = '\0'; - 15846: 682b ldr r3, [r5, #0] - 15848: f803 a00b strb.w sl, [r3, fp] - ext->dot_end = letter_id + LV_LABEL_DOT_NUM; - 1584c: 812f strh r7, [r5, #8] - 1584e: e631 b.n 154b4 - byte_id -= _lv_txt_encoded_size(&ext->text[byte_id]); - 15850: 4798 blx r3 - 15852: 9e0a ldr r6, [sp, #40] ; 0x28 - letter_id--; - 15854: 3f01 subs r7, #1 - byte_id -= _lv_txt_encoded_size(&ext->text[byte_id]); - 15856: 1a36 subs r6, r6, r0 - letter_id--; - 15858: e7c4 b.n 157e4 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar) - 1585a: 2210 movs r2, #16 - 1585c: 2100 movs r1, #0 - 1585e: 4620 mov r0, r4 - 15860: 47c0 blx r8 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar) - 15862: 2211 movs r2, #17 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar) - 15864: 4605 mov r5, r0 -_LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar) - 15866: 2100 movs r1, #0 - 15868: 4620 mov r0, r4 - 1586a: 47c0 blx r8 - size.y += lv_obj_get_style_pad_top(label, LV_LABEL_PART_MAIN) + lv_obj_get_style_pad_bottom(label, LV_LABEL_PART_MAIN); - 1586c: f8bd 301a ldrh.w r3, [sp, #26] - 15870: 1829 adds r1, r5, r0 - 15872: 4419 add r1, r3 - 15874: b209 sxth r1, r1 - lv_obj_set_height(label, size.y); - 15876: 4b11 ldr r3, [pc, #68] ; (158bc ) - size.y += lv_obj_get_style_pad_top(label, LV_LABEL_PART_MAIN) + lv_obj_get_style_pad_bottom(label, LV_LABEL_PART_MAIN); - 15878: f8ad 101a strh.w r1, [sp, #26] - lv_obj_set_height(label, size.y); - 1587c: 4620 mov r0, r4 - 1587e: 4798 blx r3 - 15880: e618 b.n 154b4 - 15882: bf00 nop - 15884: 0000defd .word 0x0000defd - 15888: 0000d3f9 .word 0x0000d3f9 - 1588c: 00014e71 .word 0x00014e71 - 15890: 0000e091 .word 0x0000e091 - 15894: 0000e05d .word 0x0000e05d - 15898: 0000dfa5 .word 0x0000dfa5 - 1589c: 00014e51 .word 0x00014e51 - 158a0: 0000df35 .word 0x0000df35 - 158a4: 20000054 .word 0x20000054 - 158a8: 0001513d .word 0x0001513d - 158ac: 00017481 .word 0x00017481 - 158b0: 20000050 .word 0x20000050 - 158b4: 2000004c .word 0x2000004c - 158b8: 00014e91 .word 0x00014e91 - 158bc: 00003875 .word 0x00003875 - 158c0: 20000048 .word 0x20000048 - -000158c4 : -{ - 158c4: e92d 43f7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, lr} - LV_ASSERT_OBJ(label, LV_OBJX_NAME); - 158c8: 4f40 ldr r7, [pc, #256] ; (159cc ) -{ - 158ca: 4606 mov r6, r0 - 158cc: 460d mov r5, r1 - LV_ASSERT_OBJ(label, LV_OBJX_NAME); - 158ce: 47b8 blx r7 - 158d0: 4604 mov r4, r0 - 158d2: b960 cbnz r0, 158ee - 158d4: 4b3e ldr r3, [pc, #248] ; (159d0 ) - 158d6: 493f ldr r1, [pc, #252] ; (159d4 ) - 158d8: 9300 str r3, [sp, #0] - 158da: 22b8 movs r2, #184 ; 0xb8 - 158dc: 2003 movs r0, #3 - 158de: 4d3e ldr r5, [pc, #248] ; (159d8 ) - 158e0: 47a8 blx r5 - 158e2: 483e ldr r0, [pc, #248] ; (159dc ) - 158e4: 493e ldr r1, [pc, #248] ; (159e0 ) - 158e6: 4632 mov r2, r6 - 158e8: 4623 mov r3, r4 - 158ea: 4788 blx r1 - 158ec: e7fe b.n 158ec - lv_obj_invalidate(label); - 158ee: 4b3d ldr r3, [pc, #244] ; (159e4 ) - 158f0: 4630 mov r0, r6 - 158f2: 4798 blx r3 - lv_label_ext_t * ext = lv_obj_get_ext_attr(label); - 158f4: 4b3c ldr r3, [pc, #240] ; (159e8 ) - 158f6: 4630 mov r0, r6 - 158f8: 4798 blx r3 - 158fa: 4604 mov r4, r0 - if(text == NULL) { - 158fc: b92d cbnz r5, 1590a - lv_label_refr_text(label); - 158fe: 4b3b ldr r3, [pc, #236] ; (159ec ) - 15900: 4630 mov r0, r6 -} - 15902: b003 add sp, #12 - 15904: e8bd 43f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, lr} - lv_label_refr_text(label); - 15908: 4718 bx r3 - LV_ASSERT_STR(text); - 1590a: 4628 mov r0, r5 - 1590c: 47b8 blx r7 - 1590e: 4680 mov r8, r0 - 15910: b960 cbnz r0, 1592c - 15912: 4b2f ldr r3, [pc, #188] ; (159d0 ) - 15914: 492f ldr r1, [pc, #188] ; (159d4 ) - 15916: 9300 str r3, [sp, #0] - 15918: 22c4 movs r2, #196 ; 0xc4 - 1591a: 2003 movs r0, #3 - 1591c: 4c2e ldr r4, [pc, #184] ; (159d8 ) - 1591e: 47a0 blx r4 - 15920: 482e ldr r0, [pc, #184] ; (159dc ) - 15922: 492f ldr r1, [pc, #188] ; (159e0 ) - 15924: 462a mov r2, r5 - 15926: 4643 mov r3, r8 - 15928: 4788 blx r1 - 1592a: e7fe b.n 1592a - if(ext->text == text && ext->static_txt == 0) { - 1592c: 6820 ldr r0, [r4, #0] - 1592e: f8df 90d4 ldr.w r9, [pc, #212] ; 15a04 - 15932: 4285 cmp r5, r0 - 15934: d11f bne.n 15976 - 15936: 7c23 ldrb r3, [r4, #16] - 15938: 071b lsls r3, r3, #28 - 1593a: d425 bmi.n 15988 - ext->text = lv_mem_realloc(ext->text, strlen(ext->text) + 1); - 1593c: 4628 mov r0, r5 - 1593e: 47c8 blx r9 - 15940: 4b2b ldr r3, [pc, #172] ; (159f0 ) - 15942: 1c41 adds r1, r0, #1 - 15944: 4628 mov r0, r5 - 15946: 4798 blx r3 - 15948: 6020 str r0, [r4, #0] - LV_ASSERT_MEM(ext->text); - 1594a: 47b8 blx r7 - 1594c: 4605 mov r5, r0 - 1594e: b960 cbnz r0, 1596a - 15950: 4b1f ldr r3, [pc, #124] ; (159d0 ) - 15952: 4920 ldr r1, [pc, #128] ; (159d4 ) - 15954: 9300 str r3, [sp, #0] - 15956: 22d5 movs r2, #213 ; 0xd5 - 15958: 2003 movs r0, #3 - 1595a: 4e1f ldr r6, [pc, #124] ; (159d8 ) - 1595c: 47b0 blx r6 - 1595e: 6822 ldr r2, [r4, #0] - 15960: 4824 ldr r0, [pc, #144] ; (159f4 ) - 15962: 491f ldr r1, [pc, #124] ; (159e0 ) - 15964: 462b mov r3, r5 - 15966: 4788 blx r1 - 15968: e7fe b.n 15968 - if(ext->text == NULL) return; - 1596a: 6823 ldr r3, [r4, #0] - 1596c: 2b00 cmp r3, #0 - 1596e: d1c6 bne.n 158fe -} - 15970: b003 add sp, #12 - 15972: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} - if(ext->text != NULL && ext->static_txt == 0) { - 15976: b138 cbz r0, 15988 - 15978: 7c23 ldrb r3, [r4, #16] - 1597a: f013 0808 ands.w r8, r3, #8 - 1597e: d103 bne.n 15988 - lv_mem_free(ext->text); - 15980: 4b1d ldr r3, [pc, #116] ; (159f8 ) - 15982: 4798 blx r3 - ext->text = NULL; - 15984: f8c4 8000 str.w r8, [r4] - size_t len = strlen(text) + 1; - 15988: 4628 mov r0, r5 - 1598a: 47c8 blx r9 - ext->text = lv_mem_alloc(len); - 1598c: 4b1b ldr r3, [pc, #108] ; (159fc ) - 1598e: 3001 adds r0, #1 - 15990: 4798 blx r3 - 15992: 6020 str r0, [r4, #0] - LV_ASSERT_MEM(ext->text); - 15994: 47b8 blx r7 - 15996: 4607 mov r7, r0 - 15998: b960 cbnz r0, 159b4 - 1599a: 4b0d ldr r3, [pc, #52] ; (159d0 ) - 1599c: 490d ldr r1, [pc, #52] ; (159d4 ) - 1599e: 9300 str r3, [sp, #0] - 159a0: 22ee movs r2, #238 ; 0xee - 159a2: 2003 movs r0, #3 - 159a4: 4d0c ldr r5, [pc, #48] ; (159d8 ) - 159a6: 47a8 blx r5 - 159a8: 6822 ldr r2, [r4, #0] - 159aa: 4812 ldr r0, [pc, #72] ; (159f4 ) - 159ac: 490c ldr r1, [pc, #48] ; (159e0 ) - 159ae: 463b mov r3, r7 - 159b0: 4788 blx r1 - 159b2: e7fe b.n 159b2 - if(ext->text == NULL) return; - 159b4: 6820 ldr r0, [r4, #0] - 159b6: 2800 cmp r0, #0 - 159b8: d0da beq.n 15970 - 159ba: 4b11 ldr r3, [pc, #68] ; (15a00 ) - 159bc: 4629 mov r1, r5 - 159be: 4798 blx r3 - ext->static_txt = 0; - 159c0: 7c23 ldrb r3, [r4, #16] - 159c2: f36f 03c3 bfc r3, #3, #1 - 159c6: 7423 strb r3, [r4, #16] - 159c8: e799 b.n 158fe - 159ca: bf00 nop - 159cc: 00001a65 .word 0x00001a65 - 159d0: 0002c035 .word 0x0002c035 - 159d4: 0002bec5 .word 0x0002bec5 - 159d8: 0000eb79 .word 0x0000eb79 - 159dc: 00026943 .word 0x00026943 - 159e0: 00001a6d .word 0x00001a6d - 159e4: 00002a09 .word 0x00002a09 - 159e8: 0000422d .word 0x0000422d - 159ec: 000153e1 .word 0x000153e1 - 159f0: 0000f0a5 .word 0x0000f0a5 - 159f4: 00026842 .word 0x00026842 - 159f8: 0000ed75 .word 0x0000ed75 - 159fc: 0000ecbd .word 0x0000ecbd - 15a00: 0001739d .word 0x0001739d - 15a04: 00017481 .word 0x00017481 - -00015a08 : -{ - 15a08: b5f7 push {r0, r1, r2, r4, r5, r6, r7, lr} - LV_ASSERT_OBJ(label, LV_OBJX_NAME); - 15a0a: 4b16 ldr r3, [pc, #88] ; (15a64 ) -{ - 15a0c: 4605 mov r5, r0 - 15a0e: 460e mov r6, r1 - LV_ASSERT_OBJ(label, LV_OBJX_NAME); - 15a10: 4798 blx r3 - 15a12: 4604 mov r4, r0 - 15a14: b968 cbnz r0, 15a32 - 15a16: 4b14 ldr r3, [pc, #80] ; (15a68 ) - 15a18: 4914 ldr r1, [pc, #80] ; (15a6c ) - 15a1a: 9300 str r3, [sp, #0] - 15a1c: f44f 72a6 mov.w r2, #332 ; 0x14c - 15a20: 2003 movs r0, #3 - 15a22: 4e13 ldr r6, [pc, #76] ; (15a70 ) - 15a24: 47b0 blx r6 - 15a26: 4813 ldr r0, [pc, #76] ; (15a74 ) - 15a28: 4913 ldr r1, [pc, #76] ; (15a78 ) - 15a2a: 462a mov r2, r5 - 15a2c: 4623 mov r3, r4 - 15a2e: 4788 blx r1 - 15a30: e7fe b.n 15a30 - lv_label_ext_t * ext = lv_obj_get_ext_attr(label); - 15a32: 4b12 ldr r3, [pc, #72] ; (15a7c ) - 15a34: 4628 mov r0, r5 - 15a36: 4798 blx r3 - if(ext->static_txt == 0 && ext->text != NULL) { - 15a38: 7c03 ldrb r3, [r0, #16] - 15a3a: f013 0708 ands.w r7, r3, #8 - lv_label_ext_t * ext = lv_obj_get_ext_attr(label); - 15a3e: 4604 mov r4, r0 - if(ext->static_txt == 0 && ext->text != NULL) { - 15a40: d104 bne.n 15a4c - 15a42: 6800 ldr r0, [r0, #0] - 15a44: b110 cbz r0, 15a4c - lv_mem_free(ext->text); - 15a46: 4b0e ldr r3, [pc, #56] ; (15a80 ) - 15a48: 4798 blx r3 - ext->text = NULL; - 15a4a: 6027 str r7, [r4, #0] - if(text != NULL) { - 15a4c: b126 cbz r6, 15a58 - ext->static_txt = 1; - 15a4e: 7c23 ldrb r3, [r4, #16] - ext->text = (char *)text; - 15a50: 6026 str r6, [r4, #0] - ext->static_txt = 1; - 15a52: f043 0308 orr.w r3, r3, #8 - 15a56: 7423 strb r3, [r4, #16] - lv_label_refr_text(label); - 15a58: 4b0a ldr r3, [pc, #40] ; (15a84 ) - 15a5a: 4628 mov r0, r5 -} - 15a5c: b003 add sp, #12 - 15a5e: e8bd 40f0 ldmia.w sp!, {r4, r5, r6, r7, lr} - lv_label_refr_text(label); - 15a62: 4718 bx r3 - 15a64: 00001a65 .word 0x00001a65 - 15a68: 0002c05d .word 0x0002c05d - 15a6c: 0002bec5 .word 0x0002bec5 - 15a70: 0000eb79 .word 0x0000eb79 - 15a74: 00026943 .word 0x00026943 - 15a78: 00001a6d .word 0x00001a6d - 15a7c: 0000422d .word 0x0000422d - 15a80: 0000ed75 .word 0x0000ed75 - 15a84: 000153e1 .word 0x000153e1 - -00015a88 : -{ - 15a88: b5f7 push {r0, r1, r2, r4, r5, r6, r7, lr} - LV_ASSERT_OBJ(label, LV_OBJX_NAME); - 15a8a: 4b23 ldr r3, [pc, #140] ; (15b18 ) -{ - 15a8c: 4604 mov r4, r0 - 15a8e: 460e mov r6, r1 - LV_ASSERT_OBJ(label, LV_OBJX_NAME); - 15a90: 4798 blx r3 - 15a92: 4605 mov r5, r0 - 15a94: b968 cbnz r0, 15ab2 - 15a96: 4b21 ldr r3, [pc, #132] ; (15b1c ) - 15a98: 4921 ldr r1, [pc, #132] ; (15b20 ) - 15a9a: 9300 str r3, [sp, #0] - 15a9c: f240 1265 movw r2, #357 ; 0x165 - 15aa0: 2003 movs r0, #3 - 15aa2: 4e20 ldr r6, [pc, #128] ; (15b24 ) - 15aa4: 47b0 blx r6 - 15aa6: 4820 ldr r0, [pc, #128] ; (15b28 ) - 15aa8: 4920 ldr r1, [pc, #128] ; (15b2c ) - 15aaa: 4622 mov r2, r4 - 15aac: 462b mov r3, r5 - 15aae: 4788 blx r1 - 15ab0: e7fe b.n 15ab0 - lv_label_ext_t * ext = lv_obj_get_ext_attr(label); - 15ab2: 4b1f ldr r3, [pc, #124] ; (15b30 ) - lv_anim_del(label, (lv_anim_exec_xcb_t)lv_obj_set_x); - 15ab4: 4f1f ldr r7, [pc, #124] ; (15b34 ) - lv_label_ext_t * ext = lv_obj_get_ext_attr(label); - 15ab6: 4620 mov r0, r4 - 15ab8: 4798 blx r3 - lv_anim_del(label, (lv_anim_exec_xcb_t)lv_obj_set_x); - 15aba: 491f ldr r1, [pc, #124] ; (15b38 ) - lv_label_ext_t * ext = lv_obj_get_ext_attr(label); - 15abc: 4605 mov r5, r0 - lv_anim_del(label, (lv_anim_exec_xcb_t)lv_obj_set_x); - 15abe: 4620 mov r0, r4 - 15ac0: 47b8 blx r7 - lv_anim_del(label, (lv_anim_exec_xcb_t)lv_obj_set_y); - 15ac2: 491e ldr r1, [pc, #120] ; (15b3c ) - 15ac4: 4620 mov r0, r4 - 15ac6: 47b8 blx r7 - lv_anim_del(label, (lv_anim_exec_xcb_t)lv_label_set_offset_x); - 15ac8: 491d ldr r1, [pc, #116] ; (15b40 ) - 15aca: 4620 mov r0, r4 - 15acc: 47b8 blx r7 - lv_anim_del(label, (lv_anim_exec_xcb_t)lv_label_set_offset_y); - 15ace: 491d ldr r1, [pc, #116] ; (15b44 ) - 15ad0: 4620 mov r0, r4 - 15ad2: 47b8 blx r7 - if(long_mode == LV_LABEL_LONG_SROLL || long_mode == LV_LABEL_LONG_SROLL_CIRC || long_mode == LV_LABEL_LONG_CROP) - 15ad4: 1ef2 subs r2, r6, #3 - ext->offset.x = 0; - 15ad6: 2300 movs r3, #0 - if(long_mode == LV_LABEL_LONG_SROLL || long_mode == LV_LABEL_LONG_SROLL_CIRC || long_mode == LV_LABEL_LONG_CROP) - 15ad8: 2a02 cmp r2, #2 - ext->offset.x = 0; - 15ada: 60eb str r3, [r5, #12] - 15adc: 7c2b ldrb r3, [r5, #16] - if(long_mode == LV_LABEL_LONG_SROLL || long_mode == LV_LABEL_LONG_SROLL_CIRC || long_mode == LV_LABEL_LONG_CROP) - 15ade: bf8c ite hi - 15ae0: 2200 movhi r2, #0 - 15ae2: 2201 movls r2, #1 - 15ae4: f362 13c7 bfi r3, r2, #7, #1 - 15ae8: 742b strb r3, [r5, #16] - if(ext->long_mode == LV_LABEL_LONG_DOT && ext->dot_end != LV_LABEL_DOT_END_INV) { - 15aea: f003 0307 and.w r3, r3, #7 - 15aee: 2b02 cmp r3, #2 - 15af0: d107 bne.n 15b02 - 15af2: 892a ldrh r2, [r5, #8] - 15af4: f64f 73ff movw r3, #65535 ; 0xffff - 15af8: 429a cmp r2, r3 - 15afa: d002 beq.n 15b02 - lv_label_revert_dots(label); - 15afc: 4b12 ldr r3, [pc, #72] ; (15b48 ) - 15afe: 4620 mov r0, r4 - 15b00: 4798 blx r3 - ext->long_mode = long_mode; - 15b02: 7c2b ldrb r3, [r5, #16] - 15b04: f366 0302 bfi r3, r6, #0, #3 - 15b08: 742b strb r3, [r5, #16] - lv_label_refr_text(label); - 15b0a: 4b10 ldr r3, [pc, #64] ; (15b4c ) - 15b0c: 4620 mov r0, r4 -} - 15b0e: b003 add sp, #12 - 15b10: e8bd 40f0 ldmia.w sp!, {r4, r5, r6, r7, lr} - lv_label_refr_text(label); - 15b14: 4718 bx r3 - 15b16: bf00 nop - 15b18: 00001a65 .word 0x00001a65 - 15b1c: 0002c076 .word 0x0002c076 - 15b20: 0002bec5 .word 0x0002bec5 - 15b24: 0000eb79 .word 0x0000eb79 - 15b28: 00026943 .word 0x00026943 - 15b2c: 00001a6d .word 0x00001a6d - 15b30: 0000422d .word 0x0000422d - 15b34: 0000df35 .word 0x0000df35 - 15b38: 00002c0d .word 0x00002c0d - 15b3c: 00002c6d .word 0x00002c6d - 15b40: 00014e71 .word 0x00014e71 - 15b44: 00014e51 .word 0x00014e51 - 15b48: 00014dd9 .word 0x00014dd9 - 15b4c: 000153e1 .word 0x000153e1 - -00015b50 : -{ - 15b50: b573 push {r0, r1, r4, r5, r6, lr} - LV_ASSERT_OBJ(label, LV_OBJX_NAME); - 15b52: 4b13 ldr r3, [pc, #76] ; (15ba0 ) -{ - 15b54: 4604 mov r4, r0 - 15b56: 460d mov r5, r1 - LV_ASSERT_OBJ(label, LV_OBJX_NAME); - 15b58: 4798 blx r3 - 15b5a: 4606 mov r6, r0 - 15b5c: b968 cbnz r0, 15b7a - 15b5e: 4b11 ldr r3, [pc, #68] ; (15ba4 ) - 15b60: 4911 ldr r1, [pc, #68] ; (15ba8 ) - 15b62: 9300 str r3, [sp, #0] - 15b64: f44f 72cd mov.w r2, #410 ; 0x19a - 15b68: 2003 movs r0, #3 - 15b6a: 4d10 ldr r5, [pc, #64] ; (15bac ) - 15b6c: 47a8 blx r5 - 15b6e: 4810 ldr r0, [pc, #64] ; (15bb0 ) - 15b70: 4910 ldr r1, [pc, #64] ; (15bb4 ) - 15b72: 4622 mov r2, r4 - 15b74: 4633 mov r3, r6 - 15b76: 4788 blx r1 - 15b78: e7fe b.n 15b78 - lv_label_ext_t * ext = lv_obj_get_ext_attr(label); - 15b7a: 4b0f ldr r3, [pc, #60] ; (15bb8 ) - 15b7c: 4620 mov r0, r4 - 15b7e: 4798 blx r3 - if(ext->recolor == en) return; - 15b80: 7c03 ldrb r3, [r0, #16] - 15b82: f3c3 1280 ubfx r2, r3, #6, #1 - 15b86: 42aa cmp r2, r5 - 15b88: d008 beq.n 15b9c - ext->recolor = en == false ? 0 : 1; - 15b8a: f365 1386 bfi r3, r5, #6, #1 - 15b8e: 7403 strb r3, [r0, #16] - lv_label_refr_text(label); /*Refresh the text because the potential colo codes in text needs to - 15b90: 4b0a ldr r3, [pc, #40] ; (15bbc ) - 15b92: 4620 mov r0, r4 -} - 15b94: b002 add sp, #8 - 15b96: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr} - lv_label_refr_text(label); /*Refresh the text because the potential colo codes in text needs to - 15b9a: 4718 bx r3 -} - 15b9c: b002 add sp, #8 - 15b9e: bd70 pop {r4, r5, r6, pc} - 15ba0: 00001a65 .word 0x00001a65 - 15ba4: 0002c08d .word 0x0002c08d - 15ba8: 0002bec5 .word 0x0002bec5 - 15bac: 0000eb79 .word 0x0000eb79 - 15bb0: 00026943 .word 0x00026943 - 15bb4: 00001a6d .word 0x00001a6d - 15bb8: 0000422d .word 0x0000422d - 15bbc: 000153e1 .word 0x000153e1 - -00015bc0 : -{ - 15bc0: e92d 43f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} - lv_obj_t * new_label = lv_obj_create(par, copy); - 15bc4: 4b71 ldr r3, [pc, #452] ; (15d8c ) - LV_ASSERT_MEM(new_label); - 15bc6: f8df 8248 ldr.w r8, [pc, #584] ; 15e10 -{ - 15bca: b085 sub sp, #20 - 15bcc: 460f mov r7, r1 - lv_obj_t * new_label = lv_obj_create(par, copy); - 15bce: 4798 blx r3 - 15bd0: 4605 mov r5, r0 - LV_ASSERT_MEM(new_label); - 15bd2: 47c0 blx r8 - 15bd4: 4604 mov r4, r0 - 15bd6: b960 cbnz r0, 15bf2 - 15bd8: 4b6d ldr r3, [pc, #436] ; (15d90 ) - 15bda: 496e ldr r1, [pc, #440] ; (15d94 ) - 15bdc: 9300 str r3, [sp, #0] - 15bde: 2254 movs r2, #84 ; 0x54 - 15be0: 2003 movs r0, #3 - 15be2: 4e6d ldr r6, [pc, #436] ; (15d98 ) - 15be4: 47b0 blx r6 - 15be6: 486d ldr r0, [pc, #436] ; (15d9c ) - 15be8: 496d ldr r1, [pc, #436] ; (15da0 ) - 15bea: 462a mov r2, r5 - 15bec: 4623 mov r3, r4 - 15bee: 4788 blx r1 - 15bf0: e7fe b.n 15bf0 - if(new_label == NULL) return NULL; - 15bf2: b925 cbnz r5, 15bfe - 15bf4: 2400 movs r4, #0 -} - 15bf6: 4620 mov r0, r4 - 15bf8: b005 add sp, #20 - 15bfa: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} - if(ancestor_signal == NULL) ancestor_signal = lv_obj_get_signal_cb(new_label); - 15bfe: 4c69 ldr r4, [pc, #420] ; (15da4 ) - 15c00: 6823 ldr r3, [r4, #0] - 15c02: b91b cbnz r3, 15c0c - 15c04: 4b68 ldr r3, [pc, #416] ; (15da8 ) - 15c06: 4628 mov r0, r5 - 15c08: 4798 blx r3 - 15c0a: 6020 str r0, [r4, #0] - lv_obj_allocate_ext_attr(new_label, sizeof(lv_label_ext_t)); - 15c0c: 4b67 ldr r3, [pc, #412] ; (15dac ) - lv_label_ext_t * ext = lv_obj_get_ext_attr(new_label); - 15c0e: 4e68 ldr r6, [pc, #416] ; (15db0 ) - lv_obj_allocate_ext_attr(new_label, sizeof(lv_label_ext_t)); - 15c10: 2114 movs r1, #20 - 15c12: 4628 mov r0, r5 - 15c14: 4798 blx r3 - lv_label_ext_t * ext = lv_obj_get_ext_attr(new_label); - 15c16: 4628 mov r0, r5 - 15c18: 47b0 blx r6 - 15c1a: 4604 mov r4, r0 - LV_ASSERT_MEM(ext); - 15c1c: 47c0 blx r8 - 15c1e: 4681 mov r9, r0 - 15c20: b960 cbnz r0, 15c3c - 15c22: 4b5b ldr r3, [pc, #364] ; (15d90 ) - 15c24: 495b ldr r1, [pc, #364] ; (15d94 ) - 15c26: 9300 str r3, [sp, #0] - 15c28: 225d movs r2, #93 ; 0x5d - 15c2a: 2003 movs r0, #3 - 15c2c: 4d5a ldr r5, [pc, #360] ; (15d98 ) - 15c2e: 47a8 blx r5 - 15c30: 485a ldr r0, [pc, #360] ; (15d9c ) - 15c32: 495b ldr r1, [pc, #364] ; (15da0 ) - 15c34: 4622 mov r2, r4 - 15c36: 464b mov r3, r9 - 15c38: 4788 blx r1 - 15c3a: e7fe b.n 15c3a - if(ext == NULL) { - 15c3c: b91c cbnz r4, 15c46 - lv_obj_del(new_label); - 15c3e: 4b5d ldr r3, [pc, #372] ; (15db4 ) - 15c40: 4628 mov r0, r5 - 15c42: 4798 blx r3 - return NULL; - 15c44: e7d7 b.n 15bf6 - ext->dot_end = LV_LABEL_DOT_END_INV; - 15c46: 4a5c ldr r2, [pc, #368] ; (15db8 ) - lv_obj_set_design_cb(new_label, lv_label_design); - 15c48: 495c ldr r1, [pc, #368] ; (15dbc ) - 15c4a: f8df 91c8 ldr.w r9, [pc, #456] ; 15e14 - ext->text = NULL; - 15c4e: 2300 movs r3, #0 - ext->offset.x = 0; - 15c50: e9c4 2302 strd r2, r3, [r4, #8] - ext->dot.tmp_ptr = NULL; - 15c54: e9c4 3300 strd r3, r3, [r4] - ext->long_mode = LV_LABEL_LONG_EXPAND; - 15c58: 8a23 ldrh r3, [r4, #16] - 15c5a: f423 73bf bic.w r3, r3, #382 ; 0x17e - 15c5e: f023 0301 bic.w r3, r3, #1 - 15c62: f043 0330 orr.w r3, r3, #48 ; 0x30 - 15c66: 8223 strh r3, [r4, #16] - lv_obj_set_design_cb(new_label, lv_label_design); - 15c68: 4628 mov r0, r5 - 15c6a: 4b55 ldr r3, [pc, #340] ; (15dc0 ) - 15c6c: 4798 blx r3 - lv_obj_set_signal_cb(new_label, lv_label_signal); - 15c6e: 4955 ldr r1, [pc, #340] ; (15dc4 ) - 15c70: 4b55 ldr r3, [pc, #340] ; (15dc8 ) - 15c72: 4628 mov r0, r5 - 15c74: 4798 blx r3 - if(copy == NULL) { - 15c76: b9c7 cbnz r7, 15caa - lv_theme_apply(new_label, LV_THEME_LABEL); - 15c78: 4b54 ldr r3, [pc, #336] ; (15dcc ) - 15c7a: 2112 movs r1, #18 - 15c7c: 4628 mov r0, r5 - 15c7e: 4798 blx r3 - lv_obj_set_click(new_label, false); - 15c80: 4b53 ldr r3, [pc, #332] ; (15dd0 ) - 15c82: 4639 mov r1, r7 - 15c84: 4628 mov r0, r5 - 15c86: 4798 blx r3 - lv_label_set_long_mode(new_label, LV_LABEL_LONG_EXPAND); - 15c88: 4639 mov r1, r7 - 15c8a: 4628 mov r0, r5 - 15c8c: 47c8 blx r9 - lv_label_set_text(new_label, "Text"); - 15c8e: 4951 ldr r1, [pc, #324] ; (15dd4 ) - 15c90: 4b51 ldr r3, [pc, #324] ; (15dd8 ) - 15c92: 4628 mov r0, r5 - 15c94: 4798 blx r3 - LV_LOG_INFO("label created"); - 15c96: 4b51 ldr r3, [pc, #324] ; (15ddc ) - 15c98: 4c3f ldr r4, [pc, #252] ; (15d98 ) - 15c9a: 9300 str r3, [sp, #0] - 15c9c: 493d ldr r1, [pc, #244] ; (15d94 ) - 15c9e: 4b3c ldr r3, [pc, #240] ; (15d90 ) - 15ca0: 22a8 movs r2, #168 ; 0xa8 - 15ca2: 2001 movs r0, #1 - 15ca4: 47a0 blx r4 - return new_label; - 15ca6: 462c mov r4, r5 - 15ca8: e7a5 b.n 15bf6 - lv_label_ext_t * copy_ext = lv_obj_get_ext_attr(copy); - 15caa: 4638 mov r0, r7 - 15cac: 47b0 blx r6 - lv_label_set_long_mode(new_label, lv_label_get_long_mode(copy)); - 15cae: 4b4c ldr r3, [pc, #304] ; (15de0 ) - lv_label_ext_t * copy_ext = lv_obj_get_ext_attr(copy); - 15cb0: 4606 mov r6, r0 - lv_label_set_long_mode(new_label, lv_label_get_long_mode(copy)); - 15cb2: 4638 mov r0, r7 - 15cb4: 4798 blx r3 - 15cb6: 4601 mov r1, r0 - 15cb8: 4628 mov r0, r5 - 15cba: 47c8 blx r9 - lv_label_set_recolor(new_label, lv_label_get_recolor(copy)); - 15cbc: 4b49 ldr r3, [pc, #292] ; (15de4 ) - 15cbe: 4638 mov r0, r7 - 15cc0: 4798 blx r3 - 15cc2: 4b49 ldr r3, [pc, #292] ; (15de8 ) - 15cc4: 4601 mov r1, r0 - 15cc6: 4628 mov r0, r5 - 15cc8: 4798 blx r3 - lv_label_set_align(new_label, lv_label_get_align(copy)); - 15cca: 4b48 ldr r3, [pc, #288] ; (15dec ) - 15ccc: 4638 mov r0, r7 - 15cce: 4798 blx r3 - 15cd0: 4b47 ldr r3, [pc, #284] ; (15df0 ) - 15cd2: 4601 mov r1, r0 - 15cd4: 4628 mov r0, r5 - 15cd6: 4798 blx r3 - if(copy_ext->static_txt == 0) - 15cd8: 7c33 ldrb r3, [r6, #16] - 15cda: f013 0f08 tst.w r3, #8 - lv_label_set_text(new_label, lv_label_get_text(copy)); - 15cde: 4638 mov r0, r7 - 15ce0: 4b44 ldr r3, [pc, #272] ; (15df4 ) - if(copy_ext->static_txt == 0) - 15ce2: d123 bne.n 15d2c - lv_label_set_text(new_label, lv_label_get_text(copy)); - 15ce4: 4798 blx r3 - 15ce6: 4b3c ldr r3, [pc, #240] ; (15dd8 ) - 15ce8: 4601 mov r1, r0 - 15cea: 4628 mov r0, r5 - lv_label_set_text_static(new_label, lv_label_get_text(copy)); - 15cec: 4798 blx r3 - if(copy_ext->long_mode == LV_LABEL_LONG_DOT) { - 15cee: 7c33 ldrb r3, [r6, #16] - 15cf0: f003 0307 and.w r3, r3, #7 - 15cf4: 2b02 cmp r3, #2 - 15cf6: d12b bne.n 15d50 - ext->text = lv_mem_realloc(ext->text, _lv_mem_get_size(copy_ext->text)); - 15cf8: 6830 ldr r0, [r6, #0] - 15cfa: f8df 911c ldr.w r9, [pc, #284] ; 15e18 - 15cfe: 6827 ldr r7, [r4, #0] - 15d00: 47c8 blx r9 - 15d02: 4b3d ldr r3, [pc, #244] ; (15df8 ) - 15d04: 4601 mov r1, r0 - 15d06: 4638 mov r0, r7 - 15d08: 4798 blx r3 - 15d0a: 6020 str r0, [r4, #0] - LV_ASSERT_MEM(ext->text); - 15d0c: 47c0 blx r8 - 15d0e: 4607 mov r7, r0 - 15d10: b988 cbnz r0, 15d36 - 15d12: 4b1f ldr r3, [pc, #124] ; (15d90 ) - 15d14: 491f ldr r1, [pc, #124] ; (15d94 ) - 15d16: 9300 str r3, [sp, #0] - 15d18: 2295 movs r2, #149 ; 0x95 - 15d1a: 2003 movs r0, #3 - 15d1c: 4d1e ldr r5, [pc, #120] ; (15d98 ) - 15d1e: 47a8 blx r5 - 15d20: 6822 ldr r2, [r4, #0] - 15d22: 481e ldr r0, [pc, #120] ; (15d9c ) - 15d24: 491e ldr r1, [pc, #120] ; (15da0 ) - 15d26: 463b mov r3, r7 - 15d28: 4788 blx r1 - 15d2a: e7fe b.n 15d2a - lv_label_set_text_static(new_label, lv_label_get_text(copy)); - 15d2c: 4798 blx r3 - 15d2e: 4b33 ldr r3, [pc, #204] ; (15dfc ) - 15d30: 4601 mov r1, r0 - 15d32: 4628 mov r0, r5 - 15d34: e7da b.n 15cec - if(ext->text == NULL) return NULL; - 15d36: 6827 ldr r7, [r4, #0] - 15d38: 2f00 cmp r7, #0 - 15d3a: f43f af5b beq.w 15bf4 - _lv_memcpy(ext->text, copy_ext->text, _lv_mem_get_size(copy_ext->text)); - 15d3e: 6831 ldr r1, [r6, #0] - 15d40: 9103 str r1, [sp, #12] - 15d42: 4608 mov r0, r1 - 15d44: 47c8 blx r9 - 15d46: 9903 ldr r1, [sp, #12] - 15d48: 4b2d ldr r3, [pc, #180] ; (15e00 ) - 15d4a: 4602 mov r2, r0 - 15d4c: 4638 mov r0, r7 - 15d4e: 4798 blx r3 - if(copy_ext->dot_tmp_alloc && copy_ext->dot.tmp_ptr) { - 15d50: 7c73 ldrb r3, [r6, #17] - 15d52: 07db lsls r3, r3, #31 - 15d54: d514 bpl.n 15d80 - 15d56: 6870 ldr r0, [r6, #4] - 15d58: b190 cbz r0, 15d80 - uint16_t len = (uint16_t)strlen(copy_ext->dot.tmp_ptr); - 15d5a: 4b2a ldr r3, [pc, #168] ; (15e04 ) - 15d5c: 4798 blx r3 - lv_label_set_dot_tmp(new_label, ext->dot.tmp_ptr, len); - 15d5e: 6861 ldr r1, [r4, #4] - 15d60: 4b29 ldr r3, [pc, #164] ; (15e08 ) - 15d62: b282 uxth r2, r0 - 15d64: 4628 mov r0, r5 - 15d66: 4798 blx r3 - ext->dot_tmp_alloc = copy_ext->dot_tmp_alloc; - 15d68: 7c72 ldrb r2, [r6, #17] - 15d6a: 7c63 ldrb r3, [r4, #17] - 15d6c: f362 0300 bfi r3, r2, #0, #1 - 15d70: 7463 strb r3, [r4, #17] - ext->dot_end = copy_ext->dot_end; - 15d72: 8933 ldrh r3, [r6, #8] - 15d74: 8123 strh r3, [r4, #8] - lv_obj_refresh_style(new_label, LV_STYLE_PROP_ALL); - 15d76: 21ff movs r1, #255 ; 0xff - 15d78: 4b24 ldr r3, [pc, #144] ; (15e0c ) - 15d7a: 4628 mov r0, r5 - 15d7c: 4798 blx r3 - 15d7e: e78a b.n 15c96 - _lv_memcpy(ext->dot.tmp, copy_ext->dot.tmp, sizeof(ext->dot.tmp)); - 15d80: 2204 movs r2, #4 - 15d82: 4b1f ldr r3, [pc, #124] ; (15e00 ) - 15d84: 18b1 adds r1, r6, r2 - 15d86: 18a0 adds r0, r4, r2 - 15d88: 4798 blx r3 - 15d8a: e7ed b.n 15d68 - 15d8c: 00003369 .word 0x00003369 - 15d90: 0002c0a2 .word 0x0002c0a2 - 15d94: 0002bec5 .word 0x0002bec5 - 15d98: 0000eb79 .word 0x0000eb79 - 15d9c: 00026842 .word 0x00026842 - 15da0: 00001a6d .word 0x00001a6d - 15da4: 200057cc .word 0x200057cc - 15da8: 000041e5 .word 0x000041e5 - 15dac: 000022fd .word 0x000022fd - 15db0: 0000422d .word 0x0000422d - 15db4: 000043e5 .word 0x000043e5 - 15db8: 0019ffff .word 0x0019ffff - 15dbc: 00015f79 .word 0x00015f79 - 15dc0: 000022b5 .word 0x000022b5 - 15dc4: 00015e1d .word 0x00015e1d - 15dc8: 00002261 .word 0x00002261 - 15dcc: 00010575 .word 0x00010575 - 15dd0: 000020e1 .word 0x000020e1 - 15dd4: 0002bf23 .word 0x0002bf23 - 15dd8: 000158c5 .word 0x000158c5 - 15ddc: 0002bf28 .word 0x0002bf28 - 15de0: 00015039 .word 0x00015039 - 15de4: 000150e9 .word 0x000150e9 - 15de8: 00015b51 .word 0x00015b51 - 15dec: 0001508d .word 0x0001508d - 15df0: 00014f79 .word 0x00014f79 - 15df4: 00014fe9 .word 0x00014fe9 - 15df8: 0000f0a5 .word 0x0000f0a5 - 15dfc: 00015a09 .word 0x00015a09 - 15e00: 0000eec1 .word 0x0000eec1 - 15e04: 00017481 .word 0x00017481 - 15e08: 00014e91 .word 0x00014e91 - 15e0c: 00003015 .word 0x00003015 - 15e10: 00001a65 .word 0x00001a65 - 15e14: 00015a89 .word 0x00015a89 - 15e18: 0000eddd .word 0x0000eddd - -00015e1c : - if(sign == LV_SIGNAL_GET_STYLE) { - 15e1c: 2908 cmp r1, #8 -{ - 15e1e: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} - 15e22: 4604 mov r4, r0 - 15e24: 460e mov r6, r1 - 15e26: 4615 mov r5, r2 - if(sign == LV_SIGNAL_GET_STYLE) { - 15e28: d10e bne.n 15e48 - switch(type) { - 15e2a: 7813 ldrb r3, [r2, #0] - 15e2c: b133 cbz r3, 15e3c - info->result = lv_label_get_style(label, info->part); - 15e2e: 2300 movs r3, #0 - 15e30: 6053 str r3, [r2, #4] - else return ancestor_signal(label, sign, param); - 15e32: 4b25 ldr r3, [pc, #148] ; (15ec8 ) -} - 15e34: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr} - else return ancestor_signal(label, sign, param); - 15e38: 681b ldr r3, [r3, #0] - 15e3a: 4718 bx r3 - style_dsc_p = &label->style_list; - 15e3c: 3428 adds r4, #40 ; 0x28 - info->result = lv_label_get_style(label, info->part); - 15e3e: 6054 str r4, [r2, #4] - if(info->result != NULL) return LV_RES_OK; - 15e40: 2701 movs r7, #1 -} - 15e42: 4638 mov r0, r7 - 15e44: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} - res = ancestor_signal(label, sign, param); - 15e48: 4b1f ldr r3, [pc, #124] ; (15ec8 ) - 15e4a: 681b ldr r3, [r3, #0] - 15e4c: 4798 blx r3 - if(res != LV_RES_OK) return res; - 15e4e: 2801 cmp r0, #1 - res = ancestor_signal(label, sign, param); - 15e50: 4607 mov r7, r0 - if(res != LV_RES_OK) return res; - 15e52: d1f6 bne.n 15e42 - if(sign == LV_SIGNAL_GET_TYPE) return lv_obj_handle_get_type_signal(param, LV_OBJX_NAME); - 15e54: 2e07 cmp r6, #7 - 15e56: d105 bne.n 15e64 - 15e58: 4628 mov r0, r5 - 15e5a: 491c ldr r1, [pc, #112] ; (15ecc ) - 15e5c: 4b1c ldr r3, [pc, #112] ; (15ed0 ) -} - 15e5e: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr} - if(sign == LV_SIGNAL_GET_TYPE) return lv_obj_handle_get_type_signal(param, LV_OBJX_NAME); - 15e62: 4718 bx r3 - lv_label_ext_t * ext = lv_obj_get_ext_attr(label); - 15e64: 4b1b ldr r3, [pc, #108] ; (15ed4 ) - 15e66: 4620 mov r0, r4 - 15e68: 4798 blx r3 - 15e6a: 4680 mov r8, r0 - if(sign == LV_SIGNAL_CLEANUP) { - 15e6c: b966 cbnz r6, 15e88 - if(ext->static_txt == 0) { - 15e6e: 7c03 ldrb r3, [r0, #16] - 15e70: f013 0508 ands.w r5, r3, #8 - 15e74: d104 bne.n 15e80 - lv_mem_free(ext->text); - 15e76: 6800 ldr r0, [r0, #0] - 15e78: 4b17 ldr r3, [pc, #92] ; (15ed8 ) - 15e7a: 4798 blx r3 - ext->text = NULL; - 15e7c: f8c8 5000 str.w r5, [r8] - lv_label_dot_tmp_free(label); - 15e80: 4b16 ldr r3, [pc, #88] ; (15edc ) - 15e82: 4620 mov r0, r4 - lv_label_refr_text(label); - 15e84: 4798 blx r3 - 15e86: e7dc b.n 15e42 - else if(sign == LV_SIGNAL_STYLE_CHG) { - 15e88: 2e04 cmp r6, #4 - 15e8a: d105 bne.n 15e98 - lv_label_revert_dots(label); - 15e8c: 4b14 ldr r3, [pc, #80] ; (15ee0 ) - 15e8e: 4620 mov r0, r4 - 15e90: 4798 blx r3 - lv_label_refr_text(label); - 15e92: 4b14 ldr r3, [pc, #80] ; (15ee4 ) - 15e94: 4620 mov r0, r4 - 15e96: e7f5 b.n 15e84 - else if(sign == LV_SIGNAL_COORD_CHG) { - 15e98: 2e02 cmp r6, #2 - 15e9a: d1d2 bne.n 15e42 - 15e9c: 8a23 ldrh r3, [r4, #16] - 15e9e: 8aa2 ldrh r2, [r4, #20] - 15ea0: 8829 ldrh r1, [r5, #0] - 15ea2: 1ad2 subs r2, r2, r3 - 15ea4: 88ab ldrh r3, [r5, #4] - 15ea6: 1a5b subs r3, r3, r1 - if(lv_area_get_width(&label->coords) != lv_area_get_width(param) || - 15ea8: b292 uxth r2, r2 - 15eaa: b29b uxth r3, r3 - 15eac: 429a cmp r2, r3 - 15eae: d1ed bne.n 15e8c - return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - 15eb0: 8a63 ldrh r3, [r4, #18] - 15eb2: 8ae2 ldrh r2, [r4, #22] - 15eb4: 8869 ldrh r1, [r5, #2] - 15eb6: 1ad2 subs r2, r2, r3 - 15eb8: 88eb ldrh r3, [r5, #6] - 15eba: 1a5b subs r3, r3, r1 - 15ebc: b292 uxth r2, r2 - 15ebe: b29b uxth r3, r3 - 15ec0: 429a cmp r2, r3 - 15ec2: d1e3 bne.n 15e8c - 15ec4: e7bd b.n 15e42 - 15ec6: bf00 nop - 15ec8: 200057cc .word 0x200057cc - 15ecc: 0002bf36 .word 0x0002bf36 - 15ed0: 00004511 .word 0x00004511 - 15ed4: 0000422d .word 0x0000422d - 15ed8: 0000ed75 .word 0x0000ed75 - 15edc: 00014dad .word 0x00014dad - 15ee0: 00014dd9 .word 0x00014dd9 - 15ee4: 000153e1 .word 0x000153e1 - -00015ee8 : -{ - 15ee8: b573 push {r0, r1, r4, r5, r6, lr} - LV_ASSERT_OBJ(label, LV_OBJX_NAME); - 15eea: 4b0b ldr r3, [pc, #44] ; (15f18 ) -{ - 15eec: 4605 mov r5, r0 - LV_ASSERT_OBJ(label, LV_OBJX_NAME); - 15eee: 4798 blx r3 - 15ef0: 4604 mov r4, r0 - 15ef2: b968 cbnz r0, 15f10 - 15ef4: 4b09 ldr r3, [pc, #36] ; (15f1c ) - 15ef6: 490a ldr r1, [pc, #40] ; (15f20 ) - 15ef8: 9300 str r3, [sp, #0] - 15efa: f240 321d movw r2, #797 ; 0x31d - 15efe: 2003 movs r0, #3 - 15f00: 4e08 ldr r6, [pc, #32] ; (15f24 ) - 15f02: 47b0 blx r6 - 15f04: 4808 ldr r0, [pc, #32] ; (15f28 ) - 15f06: 4909 ldr r1, [pc, #36] ; (15f2c ) - 15f08: 462a mov r2, r5 - 15f0a: 4623 mov r3, r4 - 15f0c: 4788 blx r1 - 15f0e: e7fe b.n 15f0e -} - 15f10: f64f 70ff movw r0, #65535 ; 0xffff - 15f14: b002 add sp, #8 - 15f16: bd70 pop {r4, r5, r6, pc} - 15f18: 00001a65 .word 0x00001a65 - 15f1c: 0002c0ca .word 0x0002c0ca - 15f20: 0002bec5 .word 0x0002bec5 - 15f24: 0000eb79 .word 0x0000eb79 - 15f28: 00026943 .word 0x00026943 - 15f2c: 00001a6d .word 0x00001a6d - -00015f30 : -{ - 15f30: b573 push {r0, r1, r4, r5, r6, lr} - LV_ASSERT_OBJ(label, LV_OBJX_NAME); - 15f32: 4b0b ldr r3, [pc, #44] ; (15f60 ) -{ - 15f34: 4605 mov r5, r0 - LV_ASSERT_OBJ(label, LV_OBJX_NAME); - 15f36: 4798 blx r3 - 15f38: 4604 mov r4, r0 - 15f3a: b968 cbnz r0, 15f58 - 15f3c: 4b09 ldr r3, [pc, #36] ; (15f64 ) - 15f3e: 490a ldr r1, [pc, #40] ; (15f68 ) - 15f40: 9300 str r3, [sp, #0] - 15f42: f44f 724c mov.w r2, #816 ; 0x330 - 15f46: 2003 movs r0, #3 - 15f48: 4e08 ldr r6, [pc, #32] ; (15f6c ) - 15f4a: 47b0 blx r6 - 15f4c: 4808 ldr r0, [pc, #32] ; (15f70 ) - 15f4e: 4909 ldr r1, [pc, #36] ; (15f74 ) - 15f50: 462a mov r2, r5 - 15f52: 4623 mov r3, r4 - 15f54: 4788 blx r1 - 15f56: e7fe b.n 15f56 -} - 15f58: f64f 70ff movw r0, #65535 ; 0xffff - 15f5c: b002 add sp, #8 - 15f5e: bd70 pop {r4, r5, r6, pc} - 15f60: 00001a65 .word 0x00001a65 - 15f64: 0002c0e6 .word 0x0002c0e6 - 15f68: 0002bec5 .word 0x0002bec5 - 15f6c: 0000eb79 .word 0x0000eb79 - 15f70: 00026943 .word 0x00026943 - 15f74: 00001a6d .word 0x00001a6d - -00015f78 : -{ - 15f78: e92d 43f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} - if(mode == LV_DESIGN_COVER_CHK) - 15f7c: 2a02 cmp r2, #2 -{ - 15f7e: b0a9 sub sp, #164 ; 0xa4 - 15f80: 4605 mov r5, r0 - 15f82: 4688 mov r8, r1 - 15f84: 4617 mov r7, r2 - if(mode == LV_DESIGN_COVER_CHK) - 15f86: f000 80fa beq.w 1617e - else if(mode == LV_DESIGN_DRAW_MAIN) { - 15f8a: 2a00 cmp r2, #0 - 15f8c: f040 8100 bne.w 16190 - lv_label_ext_t * ext = lv_obj_get_ext_attr(label); - 15f90: 4b80 ldr r3, [pc, #512] ; (16194 ) -_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_WIDTH, transform_width, lv_style_int_t, _int, scalar) - 15f92: f8df 9238 ldr.w r9, [pc, #568] ; 161cc - 15f96: 4798 blx r3 - 15f98: 2204 movs r2, #4 - 15f9a: 4639 mov r1, r7 - 15f9c: 4604 mov r4, r0 - 15f9e: 4628 mov r0, r5 - 15fa0: 47c8 blx r9 -_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_HEIGHT, transform_height, lv_style_int_t, _int, scalar) - 15fa2: 2205 movs r2, #5 -_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_WIDTH, transform_width, lv_style_int_t, _int, scalar) - 15fa4: 4606 mov r6, r0 -_LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_HEIGHT, transform_height, lv_style_int_t, _int, scalar) - 15fa6: 4639 mov r1, r7 - 15fa8: 4628 mov r0, r5 - 15faa: 47c8 blx r9 - 15fac: 6969 ldr r1, [r5, #20] - 15fae: 4603 mov r3, r0 - 15fb0: 6928 ldr r0, [r5, #16] - 15fb2: aa06 add r2, sp, #24 - 15fb4: c203 stmia r2!, {r0, r1} - bg_coords.x1 -= w; - 15fb6: f8bd 2018 ldrh.w r2, [sp, #24] - 15fba: b2b0 uxth r0, r6 - 15fbc: 1a12 subs r2, r2, r0 - 15fbe: f8ad 2018 strh.w r2, [sp, #24] - bg_coords.x2 += w; - 15fc2: f8bd 201c ldrh.w r2, [sp, #28] - 15fc6: 4410 add r0, r2 - 15fc8: f8ad 001c strh.w r0, [sp, #28] - bg_coords.y1 -= h; - 15fcc: b298 uxth r0, r3 - 15fce: f8bd 301a ldrh.w r3, [sp, #26] - 15fd2: 1a1b subs r3, r3, r0 - 15fd4: f8ad 301a strh.w r3, [sp, #26] - bg_coords.y2 += h; - 15fd8: f8bd 301e ldrh.w r3, [sp, #30] - 15fdc: 4418 add r0, r3 - 15fde: f8ad 001e strh.w r0, [sp, #30] - lv_draw_rect_dsc_init(&draw_rect_dsc); - 15fe2: 4b6d ldr r3, [pc, #436] ; (16198 ) - 15fe4: a813 add r0, sp, #76 ; 0x4c - 15fe6: 4798 blx r3 - lv_obj_init_draw_rect_dsc(label, LV_LABEL_PART_MAIN, &draw_rect_dsc); - 15fe8: 4b6c ldr r3, [pc, #432] ; (1619c ) - 15fea: aa13 add r2, sp, #76 ; 0x4c - 15fec: 4639 mov r1, r7 - 15fee: 4628 mov r0, r5 - 15ff0: 4798 blx r3 - lv_draw_rect(&bg_coords, clip_area, &draw_rect_dsc); - 15ff2: aa13 add r2, sp, #76 ; 0x4c - 15ff4: 4b6a ldr r3, [pc, #424] ; (161a0 ) - 15ff6: 4641 mov r1, r8 - 15ff8: a806 add r0, sp, #24 - 15ffa: 4798 blx r3 - get_txt_coords(label, &txt_coords); - 15ffc: 4b69 ldr r3, [pc, #420] ; (161a4 ) - 15ffe: a908 add r1, sp, #32 - 16000: 4628 mov r0, r5 - 16002: 4798 blx r3 - bool is_common = _lv_area_intersect(&txt_clip, clip_area, &txt_coords); - 16004: 4b68 ldr r3, [pc, #416] ; (161a8 ) - 16006: aa08 add r2, sp, #32 - 16008: 4641 mov r1, r8 - 1600a: a80a add r0, sp, #40 ; 0x28 - 1600c: 4798 blx r3 - if(!is_common) return LV_DESIGN_RES_OK; - 1600e: 2800 cmp r0, #0 - 16010: f000 80b5 beq.w 1617e - lv_label_align_t align = lv_label_get_align(label); - 16014: 4b65 ldr r3, [pc, #404] ; (161ac ) - 16016: 4628 mov r0, r5 - 16018: 4798 blx r3 - if(ext->recolor != 0) flag |= LV_TXT_FLAG_RECOLOR; - 1601a: 7c23 ldrb r3, [r4, #16] - lv_txt_flag_t flag = LV_TXT_FLAG_NONE; - 1601c: f3c3 1680 ubfx r6, r3, #6, #1 - if(ext->expand != 0) flag |= LV_TXT_FLAG_EXPAND; - 16020: 061a lsls r2, r3, #24 - 16022: bf48 it mi - 16024: f046 0602 orrmi.w r6, r6, #2 - if(ext->long_mode == LV_LABEL_LONG_EXPAND) flag |= LV_TXT_FLAG_FIT; - 16028: 075b lsls r3, r3, #29 - 1602a: bf08 it eq - 1602c: f046 0610 orreq.w r6, r6, #16 - if(align == LV_LABEL_ALIGN_CENTER) flag |= LV_TXT_FLAG_CENTER; - 16030: 2801 cmp r0, #1 - 16032: f040 80a8 bne.w 16186 - 16036: f046 0604 orr.w r6, r6, #4 - lv_draw_label_dsc_init(&label_draw_dsc); - 1603a: 4b5d ldr r3, [pc, #372] ; (161b0 ) - 1603c: a80c add r0, sp, #48 ; 0x30 - 1603e: 4798 blx r3 - label_draw_dsc.sel_start = lv_label_get_text_sel_start(label); - 16040: 4b5c ldr r3, [pc, #368] ; (161b4 ) - 16042: 4628 mov r0, r5 - 16044: 4798 blx r3 - label_draw_dsc.sel_end = lv_label_get_text_sel_end(label); - 16046: 4b5c ldr r3, [pc, #368] ; (161b8 ) - label_draw_dsc.sel_start = lv_label_get_text_sel_start(label); - 16048: f8ad 003e strh.w r0, [sp, #62] ; 0x3e - label_draw_dsc.sel_end = lv_label_get_text_sel_end(label); - 1604c: 4628 mov r0, r5 - 1604e: 4798 blx r3 - label_draw_dsc.ofs_x = ext->offset.x; - 16050: 89a3 ldrh r3, [r4, #12] - 16052: f8ad 3042 strh.w r3, [sp, #66] ; 0x42 - label_draw_dsc.ofs_y = ext->offset.y; - 16056: 89e3 ldrh r3, [r4, #14] - label_draw_dsc.sel_end = lv_label_get_text_sel_end(label); - 16058: f8ad 0040 strh.w r0, [sp, #64] ; 0x40 - label_draw_dsc.ofs_y = ext->offset.y; - 1605c: f8ad 3044 strh.w r3, [sp, #68] ; 0x44 - lv_obj_init_draw_label_dsc(label, LV_LABEL_PART_MAIN, &label_draw_dsc); - 16060: aa0c add r2, sp, #48 ; 0x30 - 16062: 4b56 ldr r3, [pc, #344] ; (161bc ) - label_draw_dsc.flag = flag; - 16064: f88d 6047 strb.w r6, [sp, #71] ; 0x47 - lv_obj_init_draw_label_dsc(label, LV_LABEL_PART_MAIN, &label_draw_dsc); - 16068: 2100 movs r1, #0 - 1606a: 4628 mov r0, r5 - 1606c: 4798 blx r3 - if((ext->long_mode == LV_LABEL_LONG_SROLL || ext->long_mode == LV_LABEL_LONG_SROLL_CIRC) && - 1606e: 7c23 ldrb r3, [r4, #16] - 16070: f003 0207 and.w r2, r3, #7 - 16074: 3a03 subs r2, #3 - 16076: 2a01 cmp r2, #1 - 16078: d824 bhi.n 160c4 - (ext->align == LV_LABEL_ALIGN_CENTER || ext->align == LV_LABEL_ALIGN_RIGHT)) { - 1607a: f003 0330 and.w r3, r3, #48 ; 0x30 - if((ext->long_mode == LV_LABEL_LONG_SROLL || ext->long_mode == LV_LABEL_LONG_SROLL_CIRC) && - 1607e: 2b10 cmp r3, #16 - 16080: d001 beq.n 16086 - (ext->align == LV_LABEL_ALIGN_CENTER || ext->align == LV_LABEL_ALIGN_RIGHT)) { - 16082: 2b20 cmp r3, #32 - 16084: d11e bne.n 160c4 - _lv_txt_get_size(&size, ext->text, label_draw_dsc.font, label_draw_dsc.letter_space, label_draw_dsc.line_space, - 16086: f647 4318 movw r3, #31768 ; 0x7c18 - 1608a: 9301 str r3, [sp, #4] - 1608c: f9bd 303a ldrsh.w r3, [sp, #58] ; 0x3a - 16090: 9300 str r3, [sp, #0] - 16092: 9602 str r6, [sp, #8] - 16094: f9bd 303c ldrsh.w r3, [sp, #60] ; 0x3c - 16098: 9a0d ldr r2, [sp, #52] ; 0x34 - 1609a: 6821 ldr r1, [r4, #0] - 1609c: 4d48 ldr r5, [pc, #288] ; (161c0 ) - 1609e: a805 add r0, sp, #20 - 160a0: 47a8 blx r5 - return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); - 160a2: f8bd 3024 ldrh.w r3, [sp, #36] ; 0x24 - 160a6: f8bd 2020 ldrh.w r2, [sp, #32] - 160aa: 3301 adds r3, #1 - 160ac: 1a9b subs r3, r3, r2 - if(size.x > lv_area_get_width(&txt_coords)) { - 160ae: f9bd 2014 ldrsh.w r2, [sp, #20] - 160b2: b21b sxth r3, r3 - 160b4: 429a cmp r2, r3 - label_draw_dsc.flag &= ~LV_TXT_FLAG_CENTER; - 160b6: bfc2 ittt gt - 160b8: f89d 3047 ldrbgt.w r3, [sp, #71] ; 0x47 - 160bc: f023 030c bicgt.w r3, r3, #12 - 160c0: f88d 3047 strbgt.w r3, [sp, #71] ; 0x47 - lv_draw_label(&txt_coords, &txt_clip, &label_draw_dsc, ext->text, hint); - 160c4: f04f 0900 mov.w r9, #0 - 160c8: f8cd 9000 str.w r9, [sp] - 160cc: 6823 ldr r3, [r4, #0] - 160ce: f8df 80f8 ldr.w r8, [pc, #248] ; 161c8 - 160d2: aa0c add r2, sp, #48 ; 0x30 - 160d4: a90a add r1, sp, #40 ; 0x28 - 160d6: a808 add r0, sp, #32 - 160d8: 47c0 blx r8 - if(ext->long_mode == LV_LABEL_LONG_SROLL_CIRC) { - 160da: 7c23 ldrb r3, [r4, #16] - 160dc: f003 0307 and.w r3, r3, #7 - 160e0: 2b04 cmp r3, #4 - 160e2: d14c bne.n 1617e - _lv_txt_get_size(&size, ext->text, label_draw_dsc.font, label_draw_dsc.letter_space, label_draw_dsc.line_space, - 160e4: f647 4318 movw r3, #31768 ; 0x7c18 - 160e8: 9301 str r3, [sp, #4] - 160ea: f9bd 303a ldrsh.w r3, [sp, #58] ; 0x3a - 160ee: 9300 str r3, [sp, #0] - 160f0: 9602 str r6, [sp, #8] - 160f2: f9bd 303c ldrsh.w r3, [sp, #60] ; 0x3c - 160f6: 9a0d ldr r2, [sp, #52] ; 0x34 - 160f8: 6821 ldr r1, [r4, #0] - 160fa: 4d31 ldr r5, [pc, #196] ; (161c0 ) - 160fc: a805 add r0, sp, #20 - 160fe: 47a8 blx r5 - 16100: f8bd 2024 ldrh.w r2, [sp, #36] ; 0x24 - 16104: f8bd 1020 ldrh.w r1, [sp, #32] - if(size.x > lv_area_get_width(&txt_coords)) { - 16108: f9bd 3014 ldrsh.w r3, [sp, #20] - 1610c: 3201 adds r2, #1 - 1610e: 1a52 subs r2, r2, r1 - 16110: b212 sxth r2, r2 - 16112: 4293 cmp r3, r2 - 16114: dd16 ble.n 16144 - label_draw_dsc.ofs_x = ext->offset.x + size.x + - 16116: 89a2 ldrh r2, [r4, #12] - lv_font_get_glyph_width(label_draw_dsc.font, ' ', ' ') * LV_LABEL_WAIT_CHAR_COUNT; - 16118: 980d ldr r0, [sp, #52] ; 0x34 - label_draw_dsc.ofs_x = ext->offset.x + size.x + - 1611a: 4413 add r3, r2 - lv_font_get_glyph_width(label_draw_dsc.font, ' ', ' ') * LV_LABEL_WAIT_CHAR_COUNT; - 1611c: 2220 movs r2, #32 - 1611e: 4611 mov r1, r2 - label_draw_dsc.ofs_x = ext->offset.x + size.x + - 16120: b29d uxth r5, r3 - lv_font_get_glyph_width(label_draw_dsc.font, ' ', ' ') * LV_LABEL_WAIT_CHAR_COUNT; - 16122: 4b28 ldr r3, [pc, #160] ; (161c4 ) - 16124: 4798 blx r3 - label_draw_dsc.ofs_y = ext->offset.y; - 16126: 89e3 ldrh r3, [r4, #14] - lv_draw_label(&txt_coords, &txt_clip, &label_draw_dsc, ext->text, hint); - 16128: f8cd 9000 str.w r9, [sp] - label_draw_dsc.ofs_x = ext->offset.x + size.x + - 1612c: eb00 0040 add.w r0, r0, r0, lsl #1 - 16130: 4405 add r5, r0 - label_draw_dsc.ofs_y = ext->offset.y; - 16132: f8ad 3044 strh.w r3, [sp, #68] ; 0x44 - lv_draw_label(&txt_coords, &txt_clip, &label_draw_dsc, ext->text, hint); - 16136: aa0c add r2, sp, #48 ; 0x30 - 16138: 6823 ldr r3, [r4, #0] - label_draw_dsc.ofs_x = ext->offset.x + size.x + - 1613a: f8ad 5042 strh.w r5, [sp, #66] ; 0x42 - lv_draw_label(&txt_coords, &txt_clip, &label_draw_dsc, ext->text, hint); - 1613e: a90a add r1, sp, #40 ; 0x28 - 16140: a808 add r0, sp, #32 - 16142: 47c0 blx r8 - return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); - 16144: f8bd 3026 ldrh.w r3, [sp, #38] ; 0x26 - 16148: f8bd 1022 ldrh.w r1, [sp, #34] ; 0x22 - if(size.y > lv_area_get_height(&txt_coords)) { - 1614c: f9bd 2016 ldrsh.w r2, [sp, #22] - 16150: 3301 adds r3, #1 - 16152: 1a5b subs r3, r3, r1 - 16154: b21b sxth r3, r3 - 16156: 429a cmp r2, r3 - 16158: dd11 ble.n 1617e - label_draw_dsc.ofs_x = ext->offset.x; - 1615a: 89a3 ldrh r3, [r4, #12] - 1615c: f8ad 3042 strh.w r3, [sp, #66] ; 0x42 - 16160: 9b0d ldr r3, [sp, #52] ; 0x34 - label_draw_dsc.ofs_y = ext->offset.y + size.y + lv_font_get_line_height(label_draw_dsc.font); - 16162: 891b ldrh r3, [r3, #8] - 16164: 441a add r2, r3 - 16166: 89e3 ldrh r3, [r4, #14] - 16168: 441a add r2, r3 - lv_draw_label(&txt_coords, &txt_clip, &label_draw_dsc, ext->text, hint); - 1616a: 2300 movs r3, #0 - 1616c: 9300 str r3, [sp, #0] - 1616e: 6823 ldr r3, [r4, #0] - label_draw_dsc.ofs_y = ext->offset.y + size.y + lv_font_get_line_height(label_draw_dsc.font); - 16170: f8ad 2044 strh.w r2, [sp, #68] ; 0x44 - lv_draw_label(&txt_coords, &txt_clip, &label_draw_dsc, ext->text, hint); - 16174: 4c14 ldr r4, [pc, #80] ; (161c8 ) - 16176: aa0c add r2, sp, #48 ; 0x30 - 16178: a90a add r1, sp, #40 ; 0x28 - 1617a: a808 add r0, sp, #32 - 1617c: 47a0 blx r4 -} - 1617e: 4638 mov r0, r7 - 16180: b029 add sp, #164 ; 0xa4 - 16182: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} - if(align == LV_LABEL_ALIGN_RIGHT) flag |= LV_TXT_FLAG_RIGHT; - 16186: 2802 cmp r0, #2 - 16188: bf08 it eq - 1618a: f046 0608 orreq.w r6, r6, #8 - 1618e: e754 b.n 1603a - return LV_DESIGN_RES_OK; - 16190: 2700 movs r7, #0 - 16192: e7f4 b.n 1617e - 16194: 0000422d .word 0x0000422d - 16198: 00009e25 .word 0x00009e25 - 1619c: 0000452d .word 0x0000452d - 161a0: 00009e71 .word 0x00009e71 - 161a4: 00014f1d .word 0x00014f1d - 161a8: 0000e111 .word 0x0000e111 - 161ac: 0001508d .word 0x0001508d - 161b0: 00007ac9 .word 0x00007ac9 - 161b4: 00015ee9 .word 0x00015ee9 - 161b8: 00015f31 .word 0x00015f31 - 161bc: 00004a69 .word 0x00004a69 - 161c0: 0001042d .word 0x0001042d - 161c4: 0000d3f9 .word 0x0000d3f9 - 161c8: 00007af9 .word 0x00007af9 - 161cc: 00003995 .word 0x00003995 - -000161d0 <__aeabi_drsub>: - 161d0: f081 4100 eor.w r1, r1, #2147483648 ; 0x80000000 - 161d4: e002 b.n 161dc <__adddf3> - 161d6: bf00 nop - -000161d8 <__aeabi_dsub>: - 161d8: f083 4300 eor.w r3, r3, #2147483648 ; 0x80000000 - -000161dc <__adddf3>: - 161dc: b530 push {r4, r5, lr} - 161de: ea4f 0441 mov.w r4, r1, lsl #1 - 161e2: ea4f 0543 mov.w r5, r3, lsl #1 - 161e6: ea94 0f05 teq r4, r5 - 161ea: bf08 it eq - 161ec: ea90 0f02 teqeq r0, r2 - 161f0: bf1f itttt ne - 161f2: ea54 0c00 orrsne.w ip, r4, r0 - 161f6: ea55 0c02 orrsne.w ip, r5, r2 - 161fa: ea7f 5c64 mvnsne.w ip, r4, asr #21 - 161fe: ea7f 5c65 mvnsne.w ip, r5, asr #21 - 16202: f000 80e2 beq.w 163ca <__adddf3+0x1ee> - 16206: ea4f 5454 mov.w r4, r4, lsr #21 - 1620a: ebd4 5555 rsbs r5, r4, r5, lsr #21 - 1620e: bfb8 it lt - 16210: 426d neglt r5, r5 - 16212: dd0c ble.n 1622e <__adddf3+0x52> - 16214: 442c add r4, r5 - 16216: ea80 0202 eor.w r2, r0, r2 - 1621a: ea81 0303 eor.w r3, r1, r3 - 1621e: ea82 0000 eor.w r0, r2, r0 - 16222: ea83 0101 eor.w r1, r3, r1 - 16226: ea80 0202 eor.w r2, r0, r2 - 1622a: ea81 0303 eor.w r3, r1, r3 - 1622e: 2d36 cmp r5, #54 ; 0x36 - 16230: bf88 it hi - 16232: bd30 pophi {r4, r5, pc} - 16234: f011 4f00 tst.w r1, #2147483648 ; 0x80000000 - 16238: ea4f 3101 mov.w r1, r1, lsl #12 - 1623c: f44f 1c80 mov.w ip, #1048576 ; 0x100000 - 16240: ea4c 3111 orr.w r1, ip, r1, lsr #12 - 16244: d002 beq.n 1624c <__adddf3+0x70> - 16246: 4240 negs r0, r0 - 16248: eb61 0141 sbc.w r1, r1, r1, lsl #1 - 1624c: f013 4f00 tst.w r3, #2147483648 ; 0x80000000 - 16250: ea4f 3303 mov.w r3, r3, lsl #12 - 16254: ea4c 3313 orr.w r3, ip, r3, lsr #12 - 16258: d002 beq.n 16260 <__adddf3+0x84> - 1625a: 4252 negs r2, r2 - 1625c: eb63 0343 sbc.w r3, r3, r3, lsl #1 - 16260: ea94 0f05 teq r4, r5 - 16264: f000 80a7 beq.w 163b6 <__adddf3+0x1da> - 16268: f1a4 0401 sub.w r4, r4, #1 - 1626c: f1d5 0e20 rsbs lr, r5, #32 - 16270: db0d blt.n 1628e <__adddf3+0xb2> - 16272: fa02 fc0e lsl.w ip, r2, lr - 16276: fa22 f205 lsr.w r2, r2, r5 - 1627a: 1880 adds r0, r0, r2 - 1627c: f141 0100 adc.w r1, r1, #0 - 16280: fa03 f20e lsl.w r2, r3, lr - 16284: 1880 adds r0, r0, r2 - 16286: fa43 f305 asr.w r3, r3, r5 - 1628a: 4159 adcs r1, r3 - 1628c: e00e b.n 162ac <__adddf3+0xd0> - 1628e: f1a5 0520 sub.w r5, r5, #32 - 16292: f10e 0e20 add.w lr, lr, #32 - 16296: 2a01 cmp r2, #1 - 16298: fa03 fc0e lsl.w ip, r3, lr - 1629c: bf28 it cs - 1629e: f04c 0c02 orrcs.w ip, ip, #2 - 162a2: fa43 f305 asr.w r3, r3, r5 - 162a6: 18c0 adds r0, r0, r3 - 162a8: eb51 71e3 adcs.w r1, r1, r3, asr #31 - 162ac: f001 4500 and.w r5, r1, #2147483648 ; 0x80000000 - 162b0: d507 bpl.n 162c2 <__adddf3+0xe6> - 162b2: f04f 0e00 mov.w lr, #0 - 162b6: f1dc 0c00 rsbs ip, ip, #0 - 162ba: eb7e 0000 sbcs.w r0, lr, r0 - 162be: eb6e 0101 sbc.w r1, lr, r1 - 162c2: f5b1 1f80 cmp.w r1, #1048576 ; 0x100000 - 162c6: d31b bcc.n 16300 <__adddf3+0x124> - 162c8: f5b1 1f00 cmp.w r1, #2097152 ; 0x200000 - 162cc: d30c bcc.n 162e8 <__adddf3+0x10c> - 162ce: 0849 lsrs r1, r1, #1 - 162d0: ea5f 0030 movs.w r0, r0, rrx - 162d4: ea4f 0c3c mov.w ip, ip, rrx - 162d8: f104 0401 add.w r4, r4, #1 - 162dc: ea4f 5244 mov.w r2, r4, lsl #21 - 162e0: f512 0f80 cmn.w r2, #4194304 ; 0x400000 - 162e4: f080 809a bcs.w 1641c <__adddf3+0x240> - 162e8: f1bc 4f00 cmp.w ip, #2147483648 ; 0x80000000 - 162ec: bf08 it eq - 162ee: ea5f 0c50 movseq.w ip, r0, lsr #1 - 162f2: f150 0000 adcs.w r0, r0, #0 - 162f6: eb41 5104 adc.w r1, r1, r4, lsl #20 - 162fa: ea41 0105 orr.w r1, r1, r5 - 162fe: bd30 pop {r4, r5, pc} - 16300: ea5f 0c4c movs.w ip, ip, lsl #1 - 16304: 4140 adcs r0, r0 - 16306: eb41 0101 adc.w r1, r1, r1 - 1630a: 3c01 subs r4, #1 - 1630c: bf28 it cs - 1630e: f5b1 1f80 cmpcs.w r1, #1048576 ; 0x100000 - 16312: d2e9 bcs.n 162e8 <__adddf3+0x10c> - 16314: f091 0f00 teq r1, #0 - 16318: bf04 itt eq - 1631a: 4601 moveq r1, r0 - 1631c: 2000 moveq r0, #0 - 1631e: fab1 f381 clz r3, r1 - 16322: bf08 it eq - 16324: 3320 addeq r3, #32 - 16326: f1a3 030b sub.w r3, r3, #11 - 1632a: f1b3 0220 subs.w r2, r3, #32 - 1632e: da0c bge.n 1634a <__adddf3+0x16e> - 16330: 320c adds r2, #12 - 16332: dd08 ble.n 16346 <__adddf3+0x16a> - 16334: f102 0c14 add.w ip, r2, #20 - 16338: f1c2 020c rsb r2, r2, #12 - 1633c: fa01 f00c lsl.w r0, r1, ip - 16340: fa21 f102 lsr.w r1, r1, r2 - 16344: e00c b.n 16360 <__adddf3+0x184> - 16346: f102 0214 add.w r2, r2, #20 - 1634a: bfd8 it le - 1634c: f1c2 0c20 rsble ip, r2, #32 - 16350: fa01 f102 lsl.w r1, r1, r2 - 16354: fa20 fc0c lsr.w ip, r0, ip - 16358: bfdc itt le - 1635a: ea41 010c orrle.w r1, r1, ip - 1635e: 4090 lslle r0, r2 - 16360: 1ae4 subs r4, r4, r3 - 16362: bfa2 ittt ge - 16364: eb01 5104 addge.w r1, r1, r4, lsl #20 - 16368: 4329 orrge r1, r5 - 1636a: bd30 popge {r4, r5, pc} - 1636c: ea6f 0404 mvn.w r4, r4 - 16370: 3c1f subs r4, #31 - 16372: da1c bge.n 163ae <__adddf3+0x1d2> - 16374: 340c adds r4, #12 - 16376: dc0e bgt.n 16396 <__adddf3+0x1ba> - 16378: f104 0414 add.w r4, r4, #20 - 1637c: f1c4 0220 rsb r2, r4, #32 - 16380: fa20 f004 lsr.w r0, r0, r4 - 16384: fa01 f302 lsl.w r3, r1, r2 - 16388: ea40 0003 orr.w r0, r0, r3 - 1638c: fa21 f304 lsr.w r3, r1, r4 - 16390: ea45 0103 orr.w r1, r5, r3 - 16394: bd30 pop {r4, r5, pc} - 16396: f1c4 040c rsb r4, r4, #12 - 1639a: f1c4 0220 rsb r2, r4, #32 - 1639e: fa20 f002 lsr.w r0, r0, r2 - 163a2: fa01 f304 lsl.w r3, r1, r4 - 163a6: ea40 0003 orr.w r0, r0, r3 - 163aa: 4629 mov r1, r5 - 163ac: bd30 pop {r4, r5, pc} - 163ae: fa21 f004 lsr.w r0, r1, r4 - 163b2: 4629 mov r1, r5 - 163b4: bd30 pop {r4, r5, pc} - 163b6: f094 0f00 teq r4, #0 - 163ba: f483 1380 eor.w r3, r3, #1048576 ; 0x100000 - 163be: bf06 itte eq - 163c0: f481 1180 eoreq.w r1, r1, #1048576 ; 0x100000 - 163c4: 3401 addeq r4, #1 - 163c6: 3d01 subne r5, #1 - 163c8: e74e b.n 16268 <__adddf3+0x8c> - 163ca: ea7f 5c64 mvns.w ip, r4, asr #21 - 163ce: bf18 it ne - 163d0: ea7f 5c65 mvnsne.w ip, r5, asr #21 - 163d4: d029 beq.n 1642a <__adddf3+0x24e> - 163d6: ea94 0f05 teq r4, r5 - 163da: bf08 it eq - 163dc: ea90 0f02 teqeq r0, r2 - 163e0: d005 beq.n 163ee <__adddf3+0x212> - 163e2: ea54 0c00 orrs.w ip, r4, r0 - 163e6: bf04 itt eq - 163e8: 4619 moveq r1, r3 - 163ea: 4610 moveq r0, r2 - 163ec: bd30 pop {r4, r5, pc} - 163ee: ea91 0f03 teq r1, r3 - 163f2: bf1e ittt ne - 163f4: 2100 movne r1, #0 - 163f6: 2000 movne r0, #0 - 163f8: bd30 popne {r4, r5, pc} - 163fa: ea5f 5c54 movs.w ip, r4, lsr #21 - 163fe: d105 bne.n 1640c <__adddf3+0x230> - 16400: 0040 lsls r0, r0, #1 - 16402: 4149 adcs r1, r1 - 16404: bf28 it cs - 16406: f041 4100 orrcs.w r1, r1, #2147483648 ; 0x80000000 - 1640a: bd30 pop {r4, r5, pc} - 1640c: f514 0480 adds.w r4, r4, #4194304 ; 0x400000 - 16410: bf3c itt cc - 16412: f501 1180 addcc.w r1, r1, #1048576 ; 0x100000 - 16416: bd30 popcc {r4, r5, pc} - 16418: f001 4500 and.w r5, r1, #2147483648 ; 0x80000000 - 1641c: f045 41fe orr.w r1, r5, #2130706432 ; 0x7f000000 - 16420: f441 0170 orr.w r1, r1, #15728640 ; 0xf00000 - 16424: f04f 0000 mov.w r0, #0 - 16428: bd30 pop {r4, r5, pc} - 1642a: ea7f 5c64 mvns.w ip, r4, asr #21 - 1642e: bf1a itte ne - 16430: 4619 movne r1, r3 - 16432: 4610 movne r0, r2 - 16434: ea7f 5c65 mvnseq.w ip, r5, asr #21 - 16438: bf1c itt ne - 1643a: 460b movne r3, r1 - 1643c: 4602 movne r2, r0 - 1643e: ea50 3401 orrs.w r4, r0, r1, lsl #12 - 16442: bf06 itte eq - 16444: ea52 3503 orrseq.w r5, r2, r3, lsl #12 - 16448: ea91 0f03 teqeq r1, r3 - 1644c: f441 2100 orrne.w r1, r1, #524288 ; 0x80000 - 16450: bd30 pop {r4, r5, pc} - 16452: bf00 nop - -00016454 <__aeabi_ui2d>: - 16454: f090 0f00 teq r0, #0 - 16458: bf04 itt eq - 1645a: 2100 moveq r1, #0 - 1645c: 4770 bxeq lr - 1645e: b530 push {r4, r5, lr} - 16460: f44f 6480 mov.w r4, #1024 ; 0x400 - 16464: f104 0432 add.w r4, r4, #50 ; 0x32 - 16468: f04f 0500 mov.w r5, #0 - 1646c: f04f 0100 mov.w r1, #0 - 16470: e750 b.n 16314 <__adddf3+0x138> - 16472: bf00 nop - -00016474 <__aeabi_i2d>: - 16474: f090 0f00 teq r0, #0 - 16478: bf04 itt eq - 1647a: 2100 moveq r1, #0 - 1647c: 4770 bxeq lr - 1647e: b530 push {r4, r5, lr} - 16480: f44f 6480 mov.w r4, #1024 ; 0x400 - 16484: f104 0432 add.w r4, r4, #50 ; 0x32 - 16488: f010 4500 ands.w r5, r0, #2147483648 ; 0x80000000 - 1648c: bf48 it mi - 1648e: 4240 negmi r0, r0 - 16490: f04f 0100 mov.w r1, #0 - 16494: e73e b.n 16314 <__adddf3+0x138> - 16496: bf00 nop - -00016498 <__aeabi_f2d>: - 16498: 0042 lsls r2, r0, #1 - 1649a: ea4f 01e2 mov.w r1, r2, asr #3 - 1649e: ea4f 0131 mov.w r1, r1, rrx - 164a2: ea4f 7002 mov.w r0, r2, lsl #28 - 164a6: bf1f itttt ne - 164a8: f012 437f andsne.w r3, r2, #4278190080 ; 0xff000000 - 164ac: f093 4f7f teqne r3, #4278190080 ; 0xff000000 - 164b0: f081 5160 eorne.w r1, r1, #939524096 ; 0x38000000 - 164b4: 4770 bxne lr - 164b6: f032 427f bics.w r2, r2, #4278190080 ; 0xff000000 - 164ba: bf08 it eq - 164bc: 4770 bxeq lr - 164be: f093 4f7f teq r3, #4278190080 ; 0xff000000 - 164c2: bf04 itt eq - 164c4: f441 2100 orreq.w r1, r1, #524288 ; 0x80000 - 164c8: 4770 bxeq lr - 164ca: b530 push {r4, r5, lr} - 164cc: f44f 7460 mov.w r4, #896 ; 0x380 - 164d0: f001 4500 and.w r5, r1, #2147483648 ; 0x80000000 - 164d4: f021 4100 bic.w r1, r1, #2147483648 ; 0x80000000 - 164d8: e71c b.n 16314 <__adddf3+0x138> - 164da: bf00 nop - -000164dc <__aeabi_ul2d>: - 164dc: ea50 0201 orrs.w r2, r0, r1 - 164e0: bf08 it eq - 164e2: 4770 bxeq lr - 164e4: b530 push {r4, r5, lr} - 164e6: f04f 0500 mov.w r5, #0 - 164ea: e00a b.n 16502 <__aeabi_l2d+0x16> - -000164ec <__aeabi_l2d>: - 164ec: ea50 0201 orrs.w r2, r0, r1 - 164f0: bf08 it eq - 164f2: 4770 bxeq lr - 164f4: b530 push {r4, r5, lr} - 164f6: f011 4500 ands.w r5, r1, #2147483648 ; 0x80000000 - 164fa: d502 bpl.n 16502 <__aeabi_l2d+0x16> - 164fc: 4240 negs r0, r0 - 164fe: eb61 0141 sbc.w r1, r1, r1, lsl #1 - 16502: f44f 6480 mov.w r4, #1024 ; 0x400 - 16506: f104 0432 add.w r4, r4, #50 ; 0x32 - 1650a: ea5f 5c91 movs.w ip, r1, lsr #22 - 1650e: f43f aed8 beq.w 162c2 <__adddf3+0xe6> - 16512: f04f 0203 mov.w r2, #3 - 16516: ea5f 0cdc movs.w ip, ip, lsr #3 - 1651a: bf18 it ne - 1651c: 3203 addne r2, #3 - 1651e: ea5f 0cdc movs.w ip, ip, lsr #3 - 16522: bf18 it ne - 16524: 3203 addne r2, #3 - 16526: eb02 02dc add.w r2, r2, ip, lsr #3 - 1652a: f1c2 0320 rsb r3, r2, #32 - 1652e: fa00 fc03 lsl.w ip, r0, r3 - 16532: fa20 f002 lsr.w r0, r0, r2 - 16536: fa01 fe03 lsl.w lr, r1, r3 - 1653a: ea40 000e orr.w r0, r0, lr - 1653e: fa21 f102 lsr.w r1, r1, r2 - 16542: 4414 add r4, r2 - 16544: e6bd b.n 162c2 <__adddf3+0xe6> - 16546: bf00 nop - -00016548 <__aeabi_dmul>: - 16548: b570 push {r4, r5, r6, lr} - 1654a: f04f 0cff mov.w ip, #255 ; 0xff - 1654e: f44c 6ce0 orr.w ip, ip, #1792 ; 0x700 - 16552: ea1c 5411 ands.w r4, ip, r1, lsr #20 - 16556: bf1d ittte ne - 16558: ea1c 5513 andsne.w r5, ip, r3, lsr #20 - 1655c: ea94 0f0c teqne r4, ip - 16560: ea95 0f0c teqne r5, ip - 16564: f000 f8de bleq 16724 <__aeabi_dmul+0x1dc> - 16568: 442c add r4, r5 - 1656a: ea81 0603 eor.w r6, r1, r3 - 1656e: ea21 514c bic.w r1, r1, ip, lsl #21 - 16572: ea23 534c bic.w r3, r3, ip, lsl #21 - 16576: ea50 3501 orrs.w r5, r0, r1, lsl #12 - 1657a: bf18 it ne - 1657c: ea52 3503 orrsne.w r5, r2, r3, lsl #12 - 16580: f441 1180 orr.w r1, r1, #1048576 ; 0x100000 - 16584: f443 1380 orr.w r3, r3, #1048576 ; 0x100000 - 16588: d038 beq.n 165fc <__aeabi_dmul+0xb4> - 1658a: fba0 ce02 umull ip, lr, r0, r2 - 1658e: f04f 0500 mov.w r5, #0 - 16592: fbe1 e502 umlal lr, r5, r1, r2 - 16596: f006 4200 and.w r2, r6, #2147483648 ; 0x80000000 - 1659a: fbe0 e503 umlal lr, r5, r0, r3 - 1659e: f04f 0600 mov.w r6, #0 - 165a2: fbe1 5603 umlal r5, r6, r1, r3 - 165a6: f09c 0f00 teq ip, #0 - 165aa: bf18 it ne - 165ac: f04e 0e01 orrne.w lr, lr, #1 - 165b0: f1a4 04ff sub.w r4, r4, #255 ; 0xff - 165b4: f5b6 7f00 cmp.w r6, #512 ; 0x200 - 165b8: f564 7440 sbc.w r4, r4, #768 ; 0x300 - 165bc: d204 bcs.n 165c8 <__aeabi_dmul+0x80> - 165be: ea5f 0e4e movs.w lr, lr, lsl #1 - 165c2: 416d adcs r5, r5 - 165c4: eb46 0606 adc.w r6, r6, r6 - 165c8: ea42 21c6 orr.w r1, r2, r6, lsl #11 - 165cc: ea41 5155 orr.w r1, r1, r5, lsr #21 - 165d0: ea4f 20c5 mov.w r0, r5, lsl #11 - 165d4: ea40 505e orr.w r0, r0, lr, lsr #21 - 165d8: ea4f 2ece mov.w lr, lr, lsl #11 - 165dc: f1b4 0cfd subs.w ip, r4, #253 ; 0xfd - 165e0: bf88 it hi - 165e2: f5bc 6fe0 cmphi.w ip, #1792 ; 0x700 - 165e6: d81e bhi.n 16626 <__aeabi_dmul+0xde> - 165e8: f1be 4f00 cmp.w lr, #2147483648 ; 0x80000000 - 165ec: bf08 it eq - 165ee: ea5f 0e50 movseq.w lr, r0, lsr #1 - 165f2: f150 0000 adcs.w r0, r0, #0 - 165f6: eb41 5104 adc.w r1, r1, r4, lsl #20 - 165fa: bd70 pop {r4, r5, r6, pc} - 165fc: f006 4600 and.w r6, r6, #2147483648 ; 0x80000000 - 16600: ea46 0101 orr.w r1, r6, r1 - 16604: ea40 0002 orr.w r0, r0, r2 - 16608: ea81 0103 eor.w r1, r1, r3 - 1660c: ebb4 045c subs.w r4, r4, ip, lsr #1 - 16610: bfc2 ittt gt - 16612: ebd4 050c rsbsgt r5, r4, ip - 16616: ea41 5104 orrgt.w r1, r1, r4, lsl #20 - 1661a: bd70 popgt {r4, r5, r6, pc} - 1661c: f441 1180 orr.w r1, r1, #1048576 ; 0x100000 - 16620: f04f 0e00 mov.w lr, #0 - 16624: 3c01 subs r4, #1 - 16626: f300 80ab bgt.w 16780 <__aeabi_dmul+0x238> - 1662a: f114 0f36 cmn.w r4, #54 ; 0x36 - 1662e: bfde ittt le - 16630: 2000 movle r0, #0 - 16632: f001 4100 andle.w r1, r1, #2147483648 ; 0x80000000 - 16636: bd70 pople {r4, r5, r6, pc} - 16638: f1c4 0400 rsb r4, r4, #0 - 1663c: 3c20 subs r4, #32 - 1663e: da35 bge.n 166ac <__aeabi_dmul+0x164> - 16640: 340c adds r4, #12 - 16642: dc1b bgt.n 1667c <__aeabi_dmul+0x134> - 16644: f104 0414 add.w r4, r4, #20 - 16648: f1c4 0520 rsb r5, r4, #32 - 1664c: fa00 f305 lsl.w r3, r0, r5 - 16650: fa20 f004 lsr.w r0, r0, r4 - 16654: fa01 f205 lsl.w r2, r1, r5 - 16658: ea40 0002 orr.w r0, r0, r2 - 1665c: f001 4200 and.w r2, r1, #2147483648 ; 0x80000000 - 16660: f021 4100 bic.w r1, r1, #2147483648 ; 0x80000000 - 16664: eb10 70d3 adds.w r0, r0, r3, lsr #31 - 16668: fa21 f604 lsr.w r6, r1, r4 - 1666c: eb42 0106 adc.w r1, r2, r6 - 16670: ea5e 0e43 orrs.w lr, lr, r3, lsl #1 - 16674: bf08 it eq - 16676: ea20 70d3 biceq.w r0, r0, r3, lsr #31 - 1667a: bd70 pop {r4, r5, r6, pc} - 1667c: f1c4 040c rsb r4, r4, #12 - 16680: f1c4 0520 rsb r5, r4, #32 - 16684: fa00 f304 lsl.w r3, r0, r4 - 16688: fa20 f005 lsr.w r0, r0, r5 - 1668c: fa01 f204 lsl.w r2, r1, r4 - 16690: ea40 0002 orr.w r0, r0, r2 - 16694: f001 4100 and.w r1, r1, #2147483648 ; 0x80000000 - 16698: eb10 70d3 adds.w r0, r0, r3, lsr #31 - 1669c: f141 0100 adc.w r1, r1, #0 - 166a0: ea5e 0e43 orrs.w lr, lr, r3, lsl #1 - 166a4: bf08 it eq - 166a6: ea20 70d3 biceq.w r0, r0, r3, lsr #31 - 166aa: bd70 pop {r4, r5, r6, pc} - 166ac: f1c4 0520 rsb r5, r4, #32 - 166b0: fa00 f205 lsl.w r2, r0, r5 - 166b4: ea4e 0e02 orr.w lr, lr, r2 - 166b8: fa20 f304 lsr.w r3, r0, r4 - 166bc: fa01 f205 lsl.w r2, r1, r5 - 166c0: ea43 0302 orr.w r3, r3, r2 - 166c4: fa21 f004 lsr.w r0, r1, r4 - 166c8: f001 4100 and.w r1, r1, #2147483648 ; 0x80000000 - 166cc: fa21 f204 lsr.w r2, r1, r4 - 166d0: ea20 0002 bic.w r0, r0, r2 - 166d4: eb00 70d3 add.w r0, r0, r3, lsr #31 - 166d8: ea5e 0e43 orrs.w lr, lr, r3, lsl #1 - 166dc: bf08 it eq - 166de: ea20 70d3 biceq.w r0, r0, r3, lsr #31 - 166e2: bd70 pop {r4, r5, r6, pc} - 166e4: f094 0f00 teq r4, #0 - 166e8: d10f bne.n 1670a <__aeabi_dmul+0x1c2> - 166ea: f001 4600 and.w r6, r1, #2147483648 ; 0x80000000 - 166ee: 0040 lsls r0, r0, #1 - 166f0: eb41 0101 adc.w r1, r1, r1 - 166f4: f411 1f80 tst.w r1, #1048576 ; 0x100000 - 166f8: bf08 it eq - 166fa: 3c01 subeq r4, #1 - 166fc: d0f7 beq.n 166ee <__aeabi_dmul+0x1a6> - 166fe: ea41 0106 orr.w r1, r1, r6 - 16702: f095 0f00 teq r5, #0 - 16706: bf18 it ne - 16708: 4770 bxne lr - 1670a: f003 4600 and.w r6, r3, #2147483648 ; 0x80000000 - 1670e: 0052 lsls r2, r2, #1 - 16710: eb43 0303 adc.w r3, r3, r3 - 16714: f413 1f80 tst.w r3, #1048576 ; 0x100000 - 16718: bf08 it eq - 1671a: 3d01 subeq r5, #1 - 1671c: d0f7 beq.n 1670e <__aeabi_dmul+0x1c6> - 1671e: ea43 0306 orr.w r3, r3, r6 - 16722: 4770 bx lr - 16724: ea94 0f0c teq r4, ip - 16728: ea0c 5513 and.w r5, ip, r3, lsr #20 - 1672c: bf18 it ne - 1672e: ea95 0f0c teqne r5, ip - 16732: d00c beq.n 1674e <__aeabi_dmul+0x206> - 16734: ea50 0641 orrs.w r6, r0, r1, lsl #1 - 16738: bf18 it ne - 1673a: ea52 0643 orrsne.w r6, r2, r3, lsl #1 - 1673e: d1d1 bne.n 166e4 <__aeabi_dmul+0x19c> - 16740: ea81 0103 eor.w r1, r1, r3 - 16744: f001 4100 and.w r1, r1, #2147483648 ; 0x80000000 - 16748: f04f 0000 mov.w r0, #0 - 1674c: bd70 pop {r4, r5, r6, pc} - 1674e: ea50 0641 orrs.w r6, r0, r1, lsl #1 - 16752: bf06 itte eq - 16754: 4610 moveq r0, r2 - 16756: 4619 moveq r1, r3 - 16758: ea52 0643 orrsne.w r6, r2, r3, lsl #1 - 1675c: d019 beq.n 16792 <__aeabi_dmul+0x24a> - 1675e: ea94 0f0c teq r4, ip - 16762: d102 bne.n 1676a <__aeabi_dmul+0x222> - 16764: ea50 3601 orrs.w r6, r0, r1, lsl #12 - 16768: d113 bne.n 16792 <__aeabi_dmul+0x24a> - 1676a: ea95 0f0c teq r5, ip - 1676e: d105 bne.n 1677c <__aeabi_dmul+0x234> - 16770: ea52 3603 orrs.w r6, r2, r3, lsl #12 - 16774: bf1c itt ne - 16776: 4610 movne r0, r2 - 16778: 4619 movne r1, r3 - 1677a: d10a bne.n 16792 <__aeabi_dmul+0x24a> - 1677c: ea81 0103 eor.w r1, r1, r3 - 16780: f001 4100 and.w r1, r1, #2147483648 ; 0x80000000 - 16784: f041 41fe orr.w r1, r1, #2130706432 ; 0x7f000000 - 16788: f441 0170 orr.w r1, r1, #15728640 ; 0xf00000 - 1678c: f04f 0000 mov.w r0, #0 - 16790: bd70 pop {r4, r5, r6, pc} - 16792: f041 41fe orr.w r1, r1, #2130706432 ; 0x7f000000 - 16796: f441 0178 orr.w r1, r1, #16252928 ; 0xf80000 - 1679a: bd70 pop {r4, r5, r6, pc} - -0001679c <__aeabi_ddiv>: - 1679c: b570 push {r4, r5, r6, lr} - 1679e: f04f 0cff mov.w ip, #255 ; 0xff - 167a2: f44c 6ce0 orr.w ip, ip, #1792 ; 0x700 - 167a6: ea1c 5411 ands.w r4, ip, r1, lsr #20 - 167aa: bf1d ittte ne - 167ac: ea1c 5513 andsne.w r5, ip, r3, lsr #20 - 167b0: ea94 0f0c teqne r4, ip - 167b4: ea95 0f0c teqne r5, ip - 167b8: f000 f8a7 bleq 1690a <__aeabi_ddiv+0x16e> - 167bc: eba4 0405 sub.w r4, r4, r5 - 167c0: ea81 0e03 eor.w lr, r1, r3 - 167c4: ea52 3503 orrs.w r5, r2, r3, lsl #12 - 167c8: ea4f 3101 mov.w r1, r1, lsl #12 - 167cc: f000 8088 beq.w 168e0 <__aeabi_ddiv+0x144> - 167d0: ea4f 3303 mov.w r3, r3, lsl #12 - 167d4: f04f 5580 mov.w r5, #268435456 ; 0x10000000 - 167d8: ea45 1313 orr.w r3, r5, r3, lsr #4 - 167dc: ea43 6312 orr.w r3, r3, r2, lsr #24 - 167e0: ea4f 2202 mov.w r2, r2, lsl #8 - 167e4: ea45 1511 orr.w r5, r5, r1, lsr #4 - 167e8: ea45 6510 orr.w r5, r5, r0, lsr #24 - 167ec: ea4f 2600 mov.w r6, r0, lsl #8 - 167f0: f00e 4100 and.w r1, lr, #2147483648 ; 0x80000000 - 167f4: 429d cmp r5, r3 - 167f6: bf08 it eq - 167f8: 4296 cmpeq r6, r2 - 167fa: f144 04fd adc.w r4, r4, #253 ; 0xfd - 167fe: f504 7440 add.w r4, r4, #768 ; 0x300 - 16802: d202 bcs.n 1680a <__aeabi_ddiv+0x6e> - 16804: 085b lsrs r3, r3, #1 - 16806: ea4f 0232 mov.w r2, r2, rrx - 1680a: 1ab6 subs r6, r6, r2 - 1680c: eb65 0503 sbc.w r5, r5, r3 - 16810: 085b lsrs r3, r3, #1 - 16812: ea4f 0232 mov.w r2, r2, rrx - 16816: f44f 1080 mov.w r0, #1048576 ; 0x100000 - 1681a: f44f 2c00 mov.w ip, #524288 ; 0x80000 - 1681e: ebb6 0e02 subs.w lr, r6, r2 - 16822: eb75 0e03 sbcs.w lr, r5, r3 - 16826: bf22 ittt cs - 16828: 1ab6 subcs r6, r6, r2 - 1682a: 4675 movcs r5, lr - 1682c: ea40 000c orrcs.w r0, r0, ip - 16830: 085b lsrs r3, r3, #1 - 16832: ea4f 0232 mov.w r2, r2, rrx - 16836: ebb6 0e02 subs.w lr, r6, r2 - 1683a: eb75 0e03 sbcs.w lr, r5, r3 - 1683e: bf22 ittt cs - 16840: 1ab6 subcs r6, r6, r2 - 16842: 4675 movcs r5, lr - 16844: ea40 005c orrcs.w r0, r0, ip, lsr #1 - 16848: 085b lsrs r3, r3, #1 - 1684a: ea4f 0232 mov.w r2, r2, rrx - 1684e: ebb6 0e02 subs.w lr, r6, r2 - 16852: eb75 0e03 sbcs.w lr, r5, r3 - 16856: bf22 ittt cs - 16858: 1ab6 subcs r6, r6, r2 - 1685a: 4675 movcs r5, lr - 1685c: ea40 009c orrcs.w r0, r0, ip, lsr #2 - 16860: 085b lsrs r3, r3, #1 - 16862: ea4f 0232 mov.w r2, r2, rrx - 16866: ebb6 0e02 subs.w lr, r6, r2 - 1686a: eb75 0e03 sbcs.w lr, r5, r3 - 1686e: bf22 ittt cs - 16870: 1ab6 subcs r6, r6, r2 - 16872: 4675 movcs r5, lr - 16874: ea40 00dc orrcs.w r0, r0, ip, lsr #3 - 16878: ea55 0e06 orrs.w lr, r5, r6 - 1687c: d018 beq.n 168b0 <__aeabi_ddiv+0x114> - 1687e: ea4f 1505 mov.w r5, r5, lsl #4 - 16882: ea45 7516 orr.w r5, r5, r6, lsr #28 - 16886: ea4f 1606 mov.w r6, r6, lsl #4 - 1688a: ea4f 03c3 mov.w r3, r3, lsl #3 - 1688e: ea43 7352 orr.w r3, r3, r2, lsr #29 - 16892: ea4f 02c2 mov.w r2, r2, lsl #3 - 16896: ea5f 1c1c movs.w ip, ip, lsr #4 - 1689a: d1c0 bne.n 1681e <__aeabi_ddiv+0x82> - 1689c: f411 1f80 tst.w r1, #1048576 ; 0x100000 - 168a0: d10b bne.n 168ba <__aeabi_ddiv+0x11e> - 168a2: ea41 0100 orr.w r1, r1, r0 - 168a6: f04f 0000 mov.w r0, #0 - 168aa: f04f 4c00 mov.w ip, #2147483648 ; 0x80000000 - 168ae: e7b6 b.n 1681e <__aeabi_ddiv+0x82> - 168b0: f411 1f80 tst.w r1, #1048576 ; 0x100000 - 168b4: bf04 itt eq - 168b6: 4301 orreq r1, r0 - 168b8: 2000 moveq r0, #0 - 168ba: f1b4 0cfd subs.w ip, r4, #253 ; 0xfd - 168be: bf88 it hi - 168c0: f5bc 6fe0 cmphi.w ip, #1792 ; 0x700 - 168c4: f63f aeaf bhi.w 16626 <__aeabi_dmul+0xde> - 168c8: ebb5 0c03 subs.w ip, r5, r3 - 168cc: bf04 itt eq - 168ce: ebb6 0c02 subseq.w ip, r6, r2 - 168d2: ea5f 0c50 movseq.w ip, r0, lsr #1 - 168d6: f150 0000 adcs.w r0, r0, #0 - 168da: eb41 5104 adc.w r1, r1, r4, lsl #20 - 168de: bd70 pop {r4, r5, r6, pc} - 168e0: f00e 4e00 and.w lr, lr, #2147483648 ; 0x80000000 - 168e4: ea4e 3111 orr.w r1, lr, r1, lsr #12 - 168e8: eb14 045c adds.w r4, r4, ip, lsr #1 - 168ec: bfc2 ittt gt - 168ee: ebd4 050c rsbsgt r5, r4, ip - 168f2: ea41 5104 orrgt.w r1, r1, r4, lsl #20 - 168f6: bd70 popgt {r4, r5, r6, pc} - 168f8: f441 1180 orr.w r1, r1, #1048576 ; 0x100000 - 168fc: f04f 0e00 mov.w lr, #0 - 16900: 3c01 subs r4, #1 - 16902: e690 b.n 16626 <__aeabi_dmul+0xde> - 16904: ea45 0e06 orr.w lr, r5, r6 - 16908: e68d b.n 16626 <__aeabi_dmul+0xde> - 1690a: ea0c 5513 and.w r5, ip, r3, lsr #20 - 1690e: ea94 0f0c teq r4, ip - 16912: bf08 it eq - 16914: ea95 0f0c teqeq r5, ip - 16918: f43f af3b beq.w 16792 <__aeabi_dmul+0x24a> - 1691c: ea94 0f0c teq r4, ip - 16920: d10a bne.n 16938 <__aeabi_ddiv+0x19c> - 16922: ea50 3401 orrs.w r4, r0, r1, lsl #12 - 16926: f47f af34 bne.w 16792 <__aeabi_dmul+0x24a> - 1692a: ea95 0f0c teq r5, ip - 1692e: f47f af25 bne.w 1677c <__aeabi_dmul+0x234> - 16932: 4610 mov r0, r2 - 16934: 4619 mov r1, r3 - 16936: e72c b.n 16792 <__aeabi_dmul+0x24a> - 16938: ea95 0f0c teq r5, ip - 1693c: d106 bne.n 1694c <__aeabi_ddiv+0x1b0> - 1693e: ea52 3503 orrs.w r5, r2, r3, lsl #12 - 16942: f43f aefd beq.w 16740 <__aeabi_dmul+0x1f8> - 16946: 4610 mov r0, r2 - 16948: 4619 mov r1, r3 - 1694a: e722 b.n 16792 <__aeabi_dmul+0x24a> - 1694c: ea50 0641 orrs.w r6, r0, r1, lsl #1 - 16950: bf18 it ne - 16952: ea52 0643 orrsne.w r6, r2, r3, lsl #1 - 16956: f47f aec5 bne.w 166e4 <__aeabi_dmul+0x19c> - 1695a: ea50 0441 orrs.w r4, r0, r1, lsl #1 - 1695e: f47f af0d bne.w 1677c <__aeabi_dmul+0x234> - 16962: ea52 0543 orrs.w r5, r2, r3, lsl #1 - 16966: f47f aeeb bne.w 16740 <__aeabi_dmul+0x1f8> - 1696a: e712 b.n 16792 <__aeabi_dmul+0x24a> - -0001696c <__aeabi_uldivmod>: - 1696c: b953 cbnz r3, 16984 <__aeabi_uldivmod+0x18> - 1696e: b94a cbnz r2, 16984 <__aeabi_uldivmod+0x18> - 16970: 2900 cmp r1, #0 - 16972: bf08 it eq - 16974: 2800 cmpeq r0, #0 - 16976: bf1c itt ne - 16978: f04f 31ff movne.w r1, #4294967295 ; 0xffffffff - 1697c: f04f 30ff movne.w r0, #4294967295 ; 0xffffffff - 16980: f000 b978 b.w 16c74 <__aeabi_idiv0> - 16984: f1ad 0c08 sub.w ip, sp, #8 - 16988: e96d ce04 strd ip, lr, [sp, #-16]! - 1698c: f000 f806 bl 1699c <__udivmoddi4> - 16990: f8dd e004 ldr.w lr, [sp, #4] - 16994: e9dd 2302 ldrd r2, r3, [sp, #8] - 16998: b004 add sp, #16 - 1699a: 4770 bx lr - -0001699c <__udivmoddi4>: - 1699c: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} - 169a0: 9d08 ldr r5, [sp, #32] - 169a2: 460e mov r6, r1 - 169a4: 4604 mov r4, r0 - 169a6: 460f mov r7, r1 - 169a8: 2b00 cmp r3, #0 - 169aa: d14a bne.n 16a42 <__udivmoddi4+0xa6> - 169ac: 428a cmp r2, r1 - 169ae: 4694 mov ip, r2 - 169b0: d965 bls.n 16a7e <__udivmoddi4+0xe2> - 169b2: fab2 f282 clz r2, r2 - 169b6: b142 cbz r2, 169ca <__udivmoddi4+0x2e> - 169b8: f1c2 0320 rsb r3, r2, #32 - 169bc: 4097 lsls r7, r2 - 169be: fa20 f303 lsr.w r3, r0, r3 - 169c2: fa0c fc02 lsl.w ip, ip, r2 - 169c6: 431f orrs r7, r3 - 169c8: 4094 lsls r4, r2 - 169ca: ea4f 4e1c mov.w lr, ip, lsr #16 - 169ce: fa1f f68c uxth.w r6, ip - 169d2: fbb7 f1fe udiv r1, r7, lr - 169d6: 0c23 lsrs r3, r4, #16 - 169d8: fb0e 7711 mls r7, lr, r1, r7 - 169dc: ea43 4307 orr.w r3, r3, r7, lsl #16 - 169e0: fb01 f006 mul.w r0, r1, r6 - 169e4: 4298 cmp r0, r3 - 169e6: d90a bls.n 169fe <__udivmoddi4+0x62> - 169e8: eb1c 0303 adds.w r3, ip, r3 - 169ec: f101 37ff add.w r7, r1, #4294967295 ; 0xffffffff - 169f0: f080 8120 bcs.w 16c34 <__udivmoddi4+0x298> - 169f4: 4298 cmp r0, r3 - 169f6: f240 811d bls.w 16c34 <__udivmoddi4+0x298> - 169fa: 3902 subs r1, #2 - 169fc: 4463 add r3, ip - 169fe: 1a1b subs r3, r3, r0 - 16a00: b2a4 uxth r4, r4 - 16a02: fbb3 f0fe udiv r0, r3, lr - 16a06: fb0e 3310 mls r3, lr, r0, r3 - 16a0a: ea44 4403 orr.w r4, r4, r3, lsl #16 - 16a0e: fb00 f606 mul.w r6, r0, r6 - 16a12: 42a6 cmp r6, r4 - 16a14: d90a bls.n 16a2c <__udivmoddi4+0x90> - 16a16: eb1c 0404 adds.w r4, ip, r4 - 16a1a: f100 33ff add.w r3, r0, #4294967295 ; 0xffffffff - 16a1e: f080 810b bcs.w 16c38 <__udivmoddi4+0x29c> - 16a22: 42a6 cmp r6, r4 - 16a24: f240 8108 bls.w 16c38 <__udivmoddi4+0x29c> - 16a28: 4464 add r4, ip - 16a2a: 3802 subs r0, #2 - 16a2c: ea40 4001 orr.w r0, r0, r1, lsl #16 - 16a30: 1ba4 subs r4, r4, r6 - 16a32: 2100 movs r1, #0 - 16a34: b11d cbz r5, 16a3e <__udivmoddi4+0xa2> - 16a36: 40d4 lsrs r4, r2 - 16a38: 2300 movs r3, #0 - 16a3a: e9c5 4300 strd r4, r3, [r5] - 16a3e: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} - 16a42: 428b cmp r3, r1 - 16a44: d908 bls.n 16a58 <__udivmoddi4+0xbc> - 16a46: 2d00 cmp r5, #0 - 16a48: f000 80f1 beq.w 16c2e <__udivmoddi4+0x292> - 16a4c: 2100 movs r1, #0 - 16a4e: e9c5 0600 strd r0, r6, [r5] - 16a52: 4608 mov r0, r1 - 16a54: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} - 16a58: fab3 f183 clz r1, r3 - 16a5c: 2900 cmp r1, #0 - 16a5e: d14a bne.n 16af6 <__udivmoddi4+0x15a> - 16a60: 42b3 cmp r3, r6 - 16a62: d302 bcc.n 16a6a <__udivmoddi4+0xce> - 16a64: 4282 cmp r2, r0 - 16a66: f200 8100 bhi.w 16c6a <__udivmoddi4+0x2ce> - 16a6a: 1a84 subs r4, r0, r2 - 16a6c: eb66 0203 sbc.w r2, r6, r3 - 16a70: 2001 movs r0, #1 - 16a72: 4617 mov r7, r2 - 16a74: 2d00 cmp r5, #0 - 16a76: d0e2 beq.n 16a3e <__udivmoddi4+0xa2> - 16a78: e9c5 4700 strd r4, r7, [r5] - 16a7c: e7df b.n 16a3e <__udivmoddi4+0xa2> - 16a7e: b902 cbnz r2, 16a82 <__udivmoddi4+0xe6> - 16a80: deff udf #255 ; 0xff - 16a82: fab2 f282 clz r2, r2 - 16a86: 2a00 cmp r2, #0 - 16a88: f040 8094 bne.w 16bb4 <__udivmoddi4+0x218> - 16a8c: eba1 030c sub.w r3, r1, ip - 16a90: ea4f 471c mov.w r7, ip, lsr #16 - 16a94: fa1f fe8c uxth.w lr, ip - 16a98: 2101 movs r1, #1 - 16a9a: fbb3 f6f7 udiv r6, r3, r7 - 16a9e: fb07 3016 mls r0, r7, r6, r3 - 16aa2: 0c23 lsrs r3, r4, #16 - 16aa4: ea43 4300 orr.w r3, r3, r0, lsl #16 - 16aa8: fb0e f006 mul.w r0, lr, r6 - 16aac: 4298 cmp r0, r3 - 16aae: d908 bls.n 16ac2 <__udivmoddi4+0x126> - 16ab0: eb1c 0303 adds.w r3, ip, r3 - 16ab4: f106 38ff add.w r8, r6, #4294967295 ; 0xffffffff - 16ab8: d202 bcs.n 16ac0 <__udivmoddi4+0x124> - 16aba: 4298 cmp r0, r3 - 16abc: f200 80d2 bhi.w 16c64 <__udivmoddi4+0x2c8> - 16ac0: 4646 mov r6, r8 - 16ac2: 1a1b subs r3, r3, r0 - 16ac4: b2a4 uxth r4, r4 - 16ac6: fbb3 f0f7 udiv r0, r3, r7 - 16aca: fb07 3310 mls r3, r7, r0, r3 - 16ace: ea44 4403 orr.w r4, r4, r3, lsl #16 - 16ad2: fb0e fe00 mul.w lr, lr, r0 - 16ad6: 45a6 cmp lr, r4 - 16ad8: d908 bls.n 16aec <__udivmoddi4+0x150> - 16ada: eb1c 0404 adds.w r4, ip, r4 - 16ade: f100 33ff add.w r3, r0, #4294967295 ; 0xffffffff - 16ae2: d202 bcs.n 16aea <__udivmoddi4+0x14e> - 16ae4: 45a6 cmp lr, r4 - 16ae6: f200 80ba bhi.w 16c5e <__udivmoddi4+0x2c2> - 16aea: 4618 mov r0, r3 - 16aec: eba4 040e sub.w r4, r4, lr - 16af0: ea40 4006 orr.w r0, r0, r6, lsl #16 - 16af4: e79e b.n 16a34 <__udivmoddi4+0x98> - 16af6: f1c1 0720 rsb r7, r1, #32 - 16afa: 408b lsls r3, r1 - 16afc: fa22 fc07 lsr.w ip, r2, r7 - 16b00: ea4c 0c03 orr.w ip, ip, r3 - 16b04: fa06 fe01 lsl.w lr, r6, r1 - 16b08: fa20 f407 lsr.w r4, r0, r7 - 16b0c: fa26 f307 lsr.w r3, r6, r7 - 16b10: ea44 040e orr.w r4, r4, lr - 16b14: fa00 f801 lsl.w r8, r0, r1 - 16b18: ea4f 401c mov.w r0, ip, lsr #16 - 16b1c: ea4f 4914 mov.w r9, r4, lsr #16 - 16b20: fbb3 fef0 udiv lr, r3, r0 - 16b24: fa1f f68c uxth.w r6, ip - 16b28: fb00 331e mls r3, r0, lr, r3 - 16b2c: ea49 4303 orr.w r3, r9, r3, lsl #16 - 16b30: fb0e f906 mul.w r9, lr, r6 - 16b34: 4599 cmp r9, r3 - 16b36: fa02 f201 lsl.w r2, r2, r1 - 16b3a: d90b bls.n 16b54 <__udivmoddi4+0x1b8> - 16b3c: eb1c 0303 adds.w r3, ip, r3 - 16b40: f10e 3aff add.w sl, lr, #4294967295 ; 0xffffffff - 16b44: f080 8089 bcs.w 16c5a <__udivmoddi4+0x2be> - 16b48: 4599 cmp r9, r3 - 16b4a: f240 8086 bls.w 16c5a <__udivmoddi4+0x2be> - 16b4e: f1ae 0e02 sub.w lr, lr, #2 - 16b52: 4463 add r3, ip - 16b54: eba3 0909 sub.w r9, r3, r9 - 16b58: b2a4 uxth r4, r4 - 16b5a: fbb9 f3f0 udiv r3, r9, r0 - 16b5e: fb00 9913 mls r9, r0, r3, r9 - 16b62: ea44 4409 orr.w r4, r4, r9, lsl #16 - 16b66: fb03 f606 mul.w r6, r3, r6 - 16b6a: 42a6 cmp r6, r4 - 16b6c: d908 bls.n 16b80 <__udivmoddi4+0x1e4> - 16b6e: eb1c 0404 adds.w r4, ip, r4 - 16b72: f103 30ff add.w r0, r3, #4294967295 ; 0xffffffff - 16b76: d26c bcs.n 16c52 <__udivmoddi4+0x2b6> - 16b78: 42a6 cmp r6, r4 - 16b7a: d96a bls.n 16c52 <__udivmoddi4+0x2b6> - 16b7c: 3b02 subs r3, #2 - 16b7e: 4464 add r4, ip - 16b80: ea43 400e orr.w r0, r3, lr, lsl #16 - 16b84: 1ba4 subs r4, r4, r6 - 16b86: fba0 e602 umull lr, r6, r0, r2 - 16b8a: 42b4 cmp r4, r6 - 16b8c: 4673 mov r3, lr - 16b8e: 46b1 mov r9, r6 - 16b90: d356 bcc.n 16c40 <__udivmoddi4+0x2a4> - 16b92: d053 beq.n 16c3c <__udivmoddi4+0x2a0> - 16b94: 2d00 cmp r5, #0 - 16b96: d06a beq.n 16c6e <__udivmoddi4+0x2d2> - 16b98: ebb8 0203 subs.w r2, r8, r3 - 16b9c: eb64 0409 sbc.w r4, r4, r9 - 16ba0: fa22 f301 lsr.w r3, r2, r1 - 16ba4: fa04 f707 lsl.w r7, r4, r7 - 16ba8: 431f orrs r7, r3 - 16baa: 40cc lsrs r4, r1 - 16bac: e9c5 7400 strd r7, r4, [r5] - 16bb0: 2100 movs r1, #0 - 16bb2: e744 b.n 16a3e <__udivmoddi4+0xa2> - 16bb4: f1c2 0120 rsb r1, r2, #32 - 16bb8: fa20 f301 lsr.w r3, r0, r1 - 16bbc: fa0c fc02 lsl.w ip, ip, r2 - 16bc0: fa26 f101 lsr.w r1, r6, r1 - 16bc4: 4096 lsls r6, r2 - 16bc6: 4333 orrs r3, r6 - 16bc8: ea4f 471c mov.w r7, ip, lsr #16 - 16bcc: fa1f fe8c uxth.w lr, ip - 16bd0: fbb1 f0f7 udiv r0, r1, r7 - 16bd4: fb07 1610 mls r6, r7, r0, r1 - 16bd8: 0c19 lsrs r1, r3, #16 - 16bda: ea41 4106 orr.w r1, r1, r6, lsl #16 - 16bde: fb00 f60e mul.w r6, r0, lr - 16be2: 428e cmp r6, r1 - 16be4: fa04 f402 lsl.w r4, r4, r2 - 16be8: d908 bls.n 16bfc <__udivmoddi4+0x260> - 16bea: eb1c 0101 adds.w r1, ip, r1 - 16bee: f100 38ff add.w r8, r0, #4294967295 ; 0xffffffff - 16bf2: d230 bcs.n 16c56 <__udivmoddi4+0x2ba> - 16bf4: 428e cmp r6, r1 - 16bf6: d92e bls.n 16c56 <__udivmoddi4+0x2ba> - 16bf8: 3802 subs r0, #2 - 16bfa: 4461 add r1, ip - 16bfc: 1b89 subs r1, r1, r6 - 16bfe: b29b uxth r3, r3 - 16c00: fbb1 f6f7 udiv r6, r1, r7 - 16c04: fb07 1116 mls r1, r7, r6, r1 - 16c08: ea43 4301 orr.w r3, r3, r1, lsl #16 - 16c0c: fb06 f10e mul.w r1, r6, lr - 16c10: 4299 cmp r1, r3 - 16c12: d908 bls.n 16c26 <__udivmoddi4+0x28a> - 16c14: eb1c 0303 adds.w r3, ip, r3 - 16c18: f106 38ff add.w r8, r6, #4294967295 ; 0xffffffff - 16c1c: d217 bcs.n 16c4e <__udivmoddi4+0x2b2> - 16c1e: 4299 cmp r1, r3 - 16c20: d915 bls.n 16c4e <__udivmoddi4+0x2b2> - 16c22: 3e02 subs r6, #2 - 16c24: 4463 add r3, ip - 16c26: 1a5b subs r3, r3, r1 - 16c28: ea46 4100 orr.w r1, r6, r0, lsl #16 - 16c2c: e735 b.n 16a9a <__udivmoddi4+0xfe> - 16c2e: 4629 mov r1, r5 - 16c30: 4628 mov r0, r5 - 16c32: e704 b.n 16a3e <__udivmoddi4+0xa2> - 16c34: 4639 mov r1, r7 - 16c36: e6e2 b.n 169fe <__udivmoddi4+0x62> - 16c38: 4618 mov r0, r3 - 16c3a: e6f7 b.n 16a2c <__udivmoddi4+0x90> - 16c3c: 45f0 cmp r8, lr - 16c3e: d2a9 bcs.n 16b94 <__udivmoddi4+0x1f8> - 16c40: ebbe 0302 subs.w r3, lr, r2 - 16c44: eb66 060c sbc.w r6, r6, ip - 16c48: 3801 subs r0, #1 - 16c4a: 46b1 mov r9, r6 - 16c4c: e7a2 b.n 16b94 <__udivmoddi4+0x1f8> - 16c4e: 4646 mov r6, r8 - 16c50: e7e9 b.n 16c26 <__udivmoddi4+0x28a> - 16c52: 4603 mov r3, r0 - 16c54: e794 b.n 16b80 <__udivmoddi4+0x1e4> - 16c56: 4640 mov r0, r8 - 16c58: e7d0 b.n 16bfc <__udivmoddi4+0x260> - 16c5a: 46d6 mov lr, sl - 16c5c: e77a b.n 16b54 <__udivmoddi4+0x1b8> - 16c5e: 4464 add r4, ip - 16c60: 3802 subs r0, #2 - 16c62: e743 b.n 16aec <__udivmoddi4+0x150> - 16c64: 3e02 subs r6, #2 - 16c66: 4463 add r3, ip - 16c68: e72b b.n 16ac2 <__udivmoddi4+0x126> - 16c6a: 4608 mov r0, r1 - 16c6c: e702 b.n 16a74 <__udivmoddi4+0xd8> - 16c6e: 4629 mov r1, r5 - 16c70: e6e5 b.n 16a3e <__udivmoddi4+0xa2> - 16c72: bf00 nop - -00016c74 <__aeabi_idiv0>: - 16c74: 4770 bx lr - 16c76: bf00 nop - -00016c78 <__libc_init_array>: - 16c78: b570 push {r4, r5, r6, lr} - 16c7a: 4e0d ldr r6, [pc, #52] ; (16cb0 <__libc_init_array+0x38>) - 16c7c: 4d0d ldr r5, [pc, #52] ; (16cb4 <__libc_init_array+0x3c>) - 16c7e: 1b76 subs r6, r6, r5 - 16c80: 10b6 asrs r6, r6, #2 - 16c82: d006 beq.n 16c92 <__libc_init_array+0x1a> - 16c84: 2400 movs r4, #0 - 16c86: f855 3b04 ldr.w r3, [r5], #4 - 16c8a: 3401 adds r4, #1 - 16c8c: 4798 blx r3 - 16c8e: 42a6 cmp r6, r4 - 16c90: d1f9 bne.n 16c86 <__libc_init_array+0xe> - 16c92: 4e09 ldr r6, [pc, #36] ; (16cb8 <__libc_init_array+0x40>) - 16c94: 4d09 ldr r5, [pc, #36] ; (16cbc <__libc_init_array+0x44>) - 16c96: 1b76 subs r6, r6, r5 - 16c98: f015 fc6a bl 2c570 <_init> - 16c9c: 10b6 asrs r6, r6, #2 - 16c9e: d006 beq.n 16cae <__libc_init_array+0x36> - 16ca0: 2400 movs r4, #0 - 16ca2: f855 3b04 ldr.w r3, [r5], #4 - 16ca6: 3401 adds r4, #1 - 16ca8: 4798 blx r3 - 16caa: 42a6 cmp r6, r4 - 16cac: d1f9 bne.n 16ca2 <__libc_init_array+0x2a> - 16cae: bd70 pop {r4, r5, r6, pc} - 16cb0: 0002c57c .word 0x0002c57c - 16cb4: 0002c57c .word 0x0002c57c - 16cb8: 0002c580 .word 0x0002c580 - 16cbc: 0002c57c .word 0x0002c57c - -00016cc0 : - 16cc0: 2a03 cmp r2, #3 - 16cc2: b510 push {r4, lr} - 16cc4: d916 bls.n 16cf4 - 16cc6: ea40 0301 orr.w r3, r0, r1 - 16cca: 079b lsls r3, r3, #30 - 16ccc: d124 bne.n 16d18 - 16cce: 4604 mov r4, r0 - 16cd0: 460b mov r3, r1 - 16cd2: 4619 mov r1, r3 - 16cd4: 4620 mov r0, r4 - 16cd6: f8d1 e000 ldr.w lr, [r1] - 16cda: f8d0 c000 ldr.w ip, [r0] - 16cde: 45f4 cmp ip, lr - 16ce0: f104 0404 add.w r4, r4, #4 - 16ce4: f103 0304 add.w r3, r3, #4 - 16ce8: d116 bne.n 16d18 - 16cea: 3a04 subs r2, #4 - 16cec: 2a03 cmp r2, #3 - 16cee: 4620 mov r0, r4 - 16cf0: 4619 mov r1, r3 - 16cf2: d8ee bhi.n 16cd2 - 16cf4: 1e54 subs r4, r2, #1 - 16cf6: b19a cbz r2, 16d20 - 16cf8: 1e42 subs r2, r0, #1 - 16cfa: 3901 subs r1, #1 - 16cfc: e001 b.n 16d02 - 16cfe: 18c3 adds r3, r0, r3 - 16d00: d00c beq.n 16d1c - 16d02: f812 ef01 ldrb.w lr, [r2, #1]! - 16d06: f811 cf01 ldrb.w ip, [r1, #1]! - 16d0a: 45e6 cmp lr, ip - 16d0c: eba4 0302 sub.w r3, r4, r2 - 16d10: d0f5 beq.n 16cfe - 16d12: ebae 000c sub.w r0, lr, ip - 16d16: bd10 pop {r4, pc} - 16d18: 1e54 subs r4, r2, #1 - 16d1a: e7ed b.n 16cf8 - 16d1c: 4618 mov r0, r3 - 16d1e: bd10 pop {r4, pc} - 16d20: 4610 mov r0, r2 - 16d22: bd10 pop {r4, pc} - -00016d24 : - 16d24: 4684 mov ip, r0 - 16d26: ea41 0300 orr.w r3, r1, r0 - 16d2a: f013 0303 ands.w r3, r3, #3 - 16d2e: d16d bne.n 16e0c - 16d30: 3a40 subs r2, #64 ; 0x40 - 16d32: d341 bcc.n 16db8 - 16d34: f851 3b04 ldr.w r3, [r1], #4 - 16d38: f840 3b04 str.w r3, [r0], #4 - 16d3c: f851 3b04 ldr.w r3, [r1], #4 - 16d40: f840 3b04 str.w r3, [r0], #4 - 16d44: f851 3b04 ldr.w r3, [r1], #4 - 16d48: f840 3b04 str.w r3, [r0], #4 - 16d4c: f851 3b04 ldr.w r3, [r1], #4 - 16d50: f840 3b04 str.w r3, [r0], #4 - 16d54: f851 3b04 ldr.w r3, [r1], #4 - 16d58: f840 3b04 str.w r3, [r0], #4 - 16d5c: f851 3b04 ldr.w r3, [r1], #4 - 16d60: f840 3b04 str.w r3, [r0], #4 - 16d64: f851 3b04 ldr.w r3, [r1], #4 - 16d68: f840 3b04 str.w r3, [r0], #4 - 16d6c: f851 3b04 ldr.w r3, [r1], #4 - 16d70: f840 3b04 str.w r3, [r0], #4 - 16d74: f851 3b04 ldr.w r3, [r1], #4 - 16d78: f840 3b04 str.w r3, [r0], #4 - 16d7c: f851 3b04 ldr.w r3, [r1], #4 - 16d80: f840 3b04 str.w r3, [r0], #4 - 16d84: f851 3b04 ldr.w r3, [r1], #4 - 16d88: f840 3b04 str.w r3, [r0], #4 - 16d8c: f851 3b04 ldr.w r3, [r1], #4 - 16d90: f840 3b04 str.w r3, [r0], #4 - 16d94: f851 3b04 ldr.w r3, [r1], #4 - 16d98: f840 3b04 str.w r3, [r0], #4 - 16d9c: f851 3b04 ldr.w r3, [r1], #4 - 16da0: f840 3b04 str.w r3, [r0], #4 - 16da4: f851 3b04 ldr.w r3, [r1], #4 - 16da8: f840 3b04 str.w r3, [r0], #4 - 16dac: f851 3b04 ldr.w r3, [r1], #4 - 16db0: f840 3b04 str.w r3, [r0], #4 - 16db4: 3a40 subs r2, #64 ; 0x40 - 16db6: d2bd bcs.n 16d34 - 16db8: 3230 adds r2, #48 ; 0x30 - 16dba: d311 bcc.n 16de0 - 16dbc: f851 3b04 ldr.w r3, [r1], #4 - 16dc0: f840 3b04 str.w r3, [r0], #4 - 16dc4: f851 3b04 ldr.w r3, [r1], #4 - 16dc8: f840 3b04 str.w r3, [r0], #4 - 16dcc: f851 3b04 ldr.w r3, [r1], #4 - 16dd0: f840 3b04 str.w r3, [r0], #4 - 16dd4: f851 3b04 ldr.w r3, [r1], #4 - 16dd8: f840 3b04 str.w r3, [r0], #4 - 16ddc: 3a10 subs r2, #16 - 16dde: d2ed bcs.n 16dbc - 16de0: 320c adds r2, #12 - 16de2: d305 bcc.n 16df0 - 16de4: f851 3b04 ldr.w r3, [r1], #4 - 16de8: f840 3b04 str.w r3, [r0], #4 - 16dec: 3a04 subs r2, #4 - 16dee: d2f9 bcs.n 16de4 - 16df0: 3204 adds r2, #4 - 16df2: d008 beq.n 16e06 - 16df4: 07d2 lsls r2, r2, #31 - 16df6: bf1c itt ne - 16df8: f811 3b01 ldrbne.w r3, [r1], #1 - 16dfc: f800 3b01 strbne.w r3, [r0], #1 - 16e00: d301 bcc.n 16e06 - 16e02: 880b ldrh r3, [r1, #0] - 16e04: 8003 strh r3, [r0, #0] - 16e06: 4660 mov r0, ip - 16e08: 4770 bx lr - 16e0a: bf00 nop - 16e0c: 2a08 cmp r2, #8 - 16e0e: d313 bcc.n 16e38 - 16e10: 078b lsls r3, r1, #30 - 16e12: d08d beq.n 16d30 - 16e14: f010 0303 ands.w r3, r0, #3 - 16e18: d08a beq.n 16d30 - 16e1a: f1c3 0304 rsb r3, r3, #4 - 16e1e: 1ad2 subs r2, r2, r3 - 16e20: 07db lsls r3, r3, #31 - 16e22: bf1c itt ne - 16e24: f811 3b01 ldrbne.w r3, [r1], #1 - 16e28: f800 3b01 strbne.w r3, [r0], #1 - 16e2c: d380 bcc.n 16d30 - 16e2e: f831 3b02 ldrh.w r3, [r1], #2 - 16e32: f820 3b02 strh.w r3, [r0], #2 - 16e36: e77b b.n 16d30 - 16e38: 3a04 subs r2, #4 - 16e3a: d3d9 bcc.n 16df0 - 16e3c: 3a01 subs r2, #1 - 16e3e: f811 3b01 ldrb.w r3, [r1], #1 - 16e42: f800 3b01 strb.w r3, [r0], #1 - 16e46: d2f9 bcs.n 16e3c - 16e48: 780b ldrb r3, [r1, #0] - 16e4a: 7003 strb r3, [r0, #0] - 16e4c: 784b ldrb r3, [r1, #1] - 16e4e: 7043 strb r3, [r0, #1] - 16e50: 788b ldrb r3, [r1, #2] - 16e52: 7083 strb r3, [r0, #2] - 16e54: 4660 mov r0, ip - 16e56: 4770 bx lr - -00016e58 : - 16e58: 4288 cmp r0, r1 - 16e5a: d90d bls.n 16e78 - 16e5c: 188b adds r3, r1, r2 - 16e5e: 4283 cmp r3, r0 - 16e60: d90a bls.n 16e78 - 16e62: eb00 0c02 add.w ip, r0, r2 - 16e66: b1ba cbz r2, 16e98 - 16e68: 4662 mov r2, ip - 16e6a: f813 cd01 ldrb.w ip, [r3, #-1]! - 16e6e: f802 cd01 strb.w ip, [r2, #-1]! - 16e72: 4299 cmp r1, r3 - 16e74: d1f9 bne.n 16e6a - 16e76: 4770 bx lr - 16e78: 2a0f cmp r2, #15 - 16e7a: d80e bhi.n 16e9a - 16e7c: 4603 mov r3, r0 - 16e7e: f102 3cff add.w ip, r2, #4294967295 ; 0xffffffff - 16e82: b14a cbz r2, 16e98 - 16e84: f10c 0c01 add.w ip, ip, #1 - 16e88: 3b01 subs r3, #1 - 16e8a: 448c add ip, r1 - 16e8c: f811 2b01 ldrb.w r2, [r1], #1 - 16e90: f803 2f01 strb.w r2, [r3, #1]! - 16e94: 4561 cmp r1, ip - 16e96: d1f9 bne.n 16e8c - 16e98: 4770 bx lr - 16e9a: ea40 0301 orr.w r3, r0, r1 - 16e9e: 079b lsls r3, r3, #30 - 16ea0: d150 bne.n 16f44 - 16ea2: f1a2 0310 sub.w r3, r2, #16 - 16ea6: b570 push {r4, r5, r6, lr} - 16ea8: f101 0c20 add.w ip, r1, #32 - 16eac: f023 050f bic.w r5, r3, #15 - 16eb0: f101 0e10 add.w lr, r1, #16 - 16eb4: f100 0410 add.w r4, r0, #16 - 16eb8: 44ac add ip, r5 - 16eba: 091b lsrs r3, r3, #4 - 16ebc: f85e 5c10 ldr.w r5, [lr, #-16] - 16ec0: f844 5c10 str.w r5, [r4, #-16] - 16ec4: f85e 5c0c ldr.w r5, [lr, #-12] - 16ec8: f844 5c0c str.w r5, [r4, #-12] - 16ecc: f85e 5c08 ldr.w r5, [lr, #-8] - 16ed0: f844 5c08 str.w r5, [r4, #-8] - 16ed4: f85e 5c04 ldr.w r5, [lr, #-4] - 16ed8: f844 5c04 str.w r5, [r4, #-4] - 16edc: f10e 0e10 add.w lr, lr, #16 - 16ee0: 45e6 cmp lr, ip - 16ee2: f104 0410 add.w r4, r4, #16 - 16ee6: d1e9 bne.n 16ebc - 16ee8: 3301 adds r3, #1 - 16eea: f012 0f0c tst.w r2, #12 - 16eee: eb01 1103 add.w r1, r1, r3, lsl #4 - 16ef2: f002 040f and.w r4, r2, #15 - 16ef6: eb00 1303 add.w r3, r0, r3, lsl #4 - 16efa: d027 beq.n 16f4c - 16efc: 3c04 subs r4, #4 - 16efe: f024 0603 bic.w r6, r4, #3 - 16f02: ea4f 0c94 mov.w ip, r4, lsr #2 - 16f06: 441e add r6, r3 - 16f08: 1f1c subs r4, r3, #4 - 16f0a: 468e mov lr, r1 - 16f0c: f85e 5b04 ldr.w r5, [lr], #4 - 16f10: f844 5f04 str.w r5, [r4, #4]! - 16f14: 42b4 cmp r4, r6 - 16f16: d1f9 bne.n 16f0c - 16f18: f10c 0401 add.w r4, ip, #1 - 16f1c: f002 0203 and.w r2, r2, #3 - 16f20: eb03 0384 add.w r3, r3, r4, lsl #2 - 16f24: eb01 0184 add.w r1, r1, r4, lsl #2 - 16f28: f102 3cff add.w ip, r2, #4294967295 ; 0xffffffff - 16f2c: b14a cbz r2, 16f42 - 16f2e: f10c 0c01 add.w ip, ip, #1 - 16f32: 3b01 subs r3, #1 - 16f34: 448c add ip, r1 - 16f36: f811 2b01 ldrb.w r2, [r1], #1 - 16f3a: f803 2f01 strb.w r2, [r3, #1]! - 16f3e: 4561 cmp r1, ip - 16f40: d1f9 bne.n 16f36 - 16f42: bd70 pop {r4, r5, r6, pc} - 16f44: f102 3cff add.w ip, r2, #4294967295 ; 0xffffffff - 16f48: 4603 mov r3, r0 - 16f4a: e79b b.n 16e84 - 16f4c: 4622 mov r2, r4 - 16f4e: e7eb b.n 16f28 - -00016f50 : - 16f50: 0783 lsls r3, r0, #30 - 16f52: b530 push {r4, r5, lr} - 16f54: d048 beq.n 16fe8 - 16f56: 1e54 subs r4, r2, #1 - 16f58: 2a00 cmp r2, #0 - 16f5a: d03f beq.n 16fdc - 16f5c: b2ca uxtb r2, r1 - 16f5e: 4603 mov r3, r0 - 16f60: e001 b.n 16f66 - 16f62: 3c01 subs r4, #1 - 16f64: d33a bcc.n 16fdc - 16f66: f803 2b01 strb.w r2, [r3], #1 - 16f6a: 079d lsls r5, r3, #30 - 16f6c: d1f9 bne.n 16f62 - 16f6e: 2c03 cmp r4, #3 - 16f70: d92d bls.n 16fce - 16f72: b2cd uxtb r5, r1 - 16f74: ea45 2505 orr.w r5, r5, r5, lsl #8 - 16f78: 2c0f cmp r4, #15 - 16f7a: ea45 4505 orr.w r5, r5, r5, lsl #16 - 16f7e: d936 bls.n 16fee - 16f80: f1a4 0210 sub.w r2, r4, #16 - 16f84: f022 0c0f bic.w ip, r2, #15 - 16f88: f103 0e20 add.w lr, r3, #32 - 16f8c: 44e6 add lr, ip - 16f8e: ea4f 1c12 mov.w ip, r2, lsr #4 - 16f92: f103 0210 add.w r2, r3, #16 - 16f96: e942 5504 strd r5, r5, [r2, #-16] - 16f9a: e942 5502 strd r5, r5, [r2, #-8] - 16f9e: 3210 adds r2, #16 - 16fa0: 4572 cmp r2, lr - 16fa2: d1f8 bne.n 16f96 - 16fa4: f10c 0201 add.w r2, ip, #1 - 16fa8: f014 0f0c tst.w r4, #12 - 16fac: eb03 1202 add.w r2, r3, r2, lsl #4 - 16fb0: f004 0c0f and.w ip, r4, #15 - 16fb4: d013 beq.n 16fde - 16fb6: f1ac 0304 sub.w r3, ip, #4 - 16fba: f023 0303 bic.w r3, r3, #3 - 16fbe: 3304 adds r3, #4 - 16fc0: 4413 add r3, r2 - 16fc2: f842 5b04 str.w r5, [r2], #4 - 16fc6: 4293 cmp r3, r2 - 16fc8: d1fb bne.n 16fc2 - 16fca: f00c 0403 and.w r4, ip, #3 - 16fce: b12c cbz r4, 16fdc - 16fd0: b2c9 uxtb r1, r1 - 16fd2: 441c add r4, r3 - 16fd4: f803 1b01 strb.w r1, [r3], #1 - 16fd8: 429c cmp r4, r3 - 16fda: d1fb bne.n 16fd4 - 16fdc: bd30 pop {r4, r5, pc} - 16fde: 4664 mov r4, ip - 16fe0: 4613 mov r3, r2 - 16fe2: 2c00 cmp r4, #0 - 16fe4: d1f4 bne.n 16fd0 - 16fe6: e7f9 b.n 16fdc - 16fe8: 4603 mov r3, r0 - 16fea: 4614 mov r4, r2 - 16fec: e7bf b.n 16f6e - 16fee: 461a mov r2, r3 - 16ff0: 46a4 mov ip, r4 - 16ff2: e7e0 b.n 16fb6 - -00016ff4 : - 16ff4: b40f push {r0, r1, r2, r3} - 16ff6: b500 push {lr} - 16ff8: 4907 ldr r1, [pc, #28] ; (17018 ) - 16ffa: b083 sub sp, #12 - 16ffc: ab04 add r3, sp, #16 - 16ffe: 6808 ldr r0, [r1, #0] - 17000: f853 2b04 ldr.w r2, [r3], #4 - 17004: 6881 ldr r1, [r0, #8] - 17006: 9301 str r3, [sp, #4] - 17008: f001 fc68 bl 188dc <_vfprintf_r> - 1700c: b003 add sp, #12 - 1700e: f85d eb04 ldr.w lr, [sp], #4 - 17012: b004 add sp, #16 - 17014: 4770 bx lr - 17016: bf00 nop - 17018: 20000068 .word 0x20000068 - -0001701c : - 1701c: b40c push {r2, r3} - 1701e: b510 push {r4, lr} - 17020: 4b1f ldr r3, [pc, #124] ; (170a0 ) - 17022: 2900 cmp r1, #0 - 17024: 681c ldr r4, [r3, #0] - 17026: b09a sub sp, #104 ; 0x68 - 17028: db35 blt.n 17096 - 1702a: f44f 7302 mov.w r3, #520 ; 0x208 - 1702e: f8ad 3010 strh.w r3, [sp, #16] - 17032: 9001 str r0, [sp, #4] - 17034: 9005 str r0, [sp, #20] - 17036: ab1d add r3, sp, #116 ; 0x74 - 17038: d018 beq.n 1706c - 1703a: 3901 subs r1, #1 - 1703c: f64f 72ff movw r2, #65535 ; 0xffff - 17040: 9103 str r1, [sp, #12] - 17042: 9106 str r1, [sp, #24] - 17044: f8ad 2012 strh.w r2, [sp, #18] - 17048: a901 add r1, sp, #4 - 1704a: 9a1c ldr r2, [sp, #112] ; 0x70 - 1704c: 9300 str r3, [sp, #0] - 1704e: 4620 mov r0, r4 - 17050: f000 fa84 bl 1755c <_svfprintf_r> - 17054: 1c42 adds r2, r0, #1 - 17056: da01 bge.n 1705c - 17058: 238b movs r3, #139 ; 0x8b - 1705a: 6023 str r3, [r4, #0] - 1705c: 9b01 ldr r3, [sp, #4] - 1705e: 2200 movs r2, #0 - 17060: 701a strb r2, [r3, #0] - 17062: b01a add sp, #104 ; 0x68 - 17064: e8bd 4010 ldmia.w sp!, {r4, lr} - 17068: b002 add sp, #8 - 1706a: 4770 bx lr - 1706c: f64f 72ff movw r2, #65535 ; 0xffff - 17070: 9103 str r1, [sp, #12] - 17072: 9106 str r1, [sp, #24] - 17074: f8ad 2012 strh.w r2, [sp, #18] - 17078: a901 add r1, sp, #4 - 1707a: 9a1c ldr r2, [sp, #112] ; 0x70 - 1707c: 9300 str r3, [sp, #0] - 1707e: 4620 mov r0, r4 - 17080: f000 fa6c bl 1755c <_svfprintf_r> - 17084: 1c43 adds r3, r0, #1 - 17086: da01 bge.n 1708c - 17088: 238b movs r3, #139 ; 0x8b - 1708a: 6023 str r3, [r4, #0] - 1708c: b01a add sp, #104 ; 0x68 - 1708e: e8bd 4010 ldmia.w sp!, {r4, lr} - 17092: b002 add sp, #8 - 17094: 4770 bx lr - 17096: 238b movs r3, #139 ; 0x8b - 17098: 6023 str r3, [r4, #0] - 1709a: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff - 1709e: e7f5 b.n 1708c - 170a0: 20000068 .word 0x20000068 - ... - 170c0: eba2 0003 sub.w r0, r2, r3 - 170c4: 4770 bx lr - 170c6: bf00 nop - -000170c8 : - 170c8: 7802 ldrb r2, [r0, #0] - 170ca: 780b ldrb r3, [r1, #0] - 170cc: 2a01 cmp r2, #1 - 170ce: bf28 it cs - 170d0: 429a cmpcs r2, r3 - 170d2: d1f5 bne.n 170c0 - 170d4: e96d 4504 strd r4, r5, [sp, #-16]! - 170d8: ea40 0401 orr.w r4, r0, r1 - 170dc: e9cd 6702 strd r6, r7, [sp, #8] - 170e0: f06f 0c00 mvn.w ip, #0 - 170e4: ea4f 7244 mov.w r2, r4, lsl #29 - 170e8: b312 cbz r2, 17130 - 170ea: ea80 0401 eor.w r4, r0, r1 - 170ee: f014 0f07 tst.w r4, #7 - 170f2: d16a bne.n 171ca - 170f4: f000 0407 and.w r4, r0, #7 - 170f8: f020 0007 bic.w r0, r0, #7 - 170fc: f004 0503 and.w r5, r4, #3 - 17100: f021 0107 bic.w r1, r1, #7 - 17104: ea4f 05c5 mov.w r5, r5, lsl #3 - 17108: e8f0 2304 ldrd r2, r3, [r0], #16 - 1710c: f014 0f04 tst.w r4, #4 - 17110: e8f1 6704 ldrd r6, r7, [r1], #16 - 17114: fa0c f405 lsl.w r4, ip, r5 - 17118: ea62 0204 orn r2, r2, r4 - 1711c: ea66 0604 orn r6, r6, r4 - 17120: d00a beq.n 17138 - 17122: ea63 0304 orn r3, r3, r4 - 17126: 4662 mov r2, ip - 17128: ea67 0704 orn r7, r7, r4 - 1712c: 4666 mov r6, ip - 1712e: e003 b.n 17138 - 17130: e8f0 2304 ldrd r2, r3, [r0], #16 - 17134: e8f1 6704 ldrd r6, r7, [r1], #16 - 17138: fa82 f54c uadd8 r5, r2, ip - 1713c: ea82 0406 eor.w r4, r2, r6 - 17140: faa4 f48c sel r4, r4, ip - 17144: bb6c cbnz r4, 171a2 - 17146: fa83 f54c uadd8 r5, r3, ip - 1714a: ea83 0507 eor.w r5, r3, r7 - 1714e: faa5 f58c sel r5, r5, ip - 17152: b995 cbnz r5, 1717a - 17154: e950 2302 ldrd r2, r3, [r0, #-8] - 17158: e951 6702 ldrd r6, r7, [r1, #-8] - 1715c: fa82 f54c uadd8 r5, r2, ip - 17160: ea82 0406 eor.w r4, r2, r6 - 17164: faa4 f48c sel r4, r4, ip - 17168: fa83 f54c uadd8 r5, r3, ip - 1716c: ea83 0507 eor.w r5, r3, r7 - 17170: faa5 f58c sel r5, r5, ip - 17174: 4325 orrs r5, r4 - 17176: d0db beq.n 17130 - 17178: b99c cbnz r4, 171a2 - 1717a: ba2d rev r5, r5 - 1717c: fab5 f485 clz r4, r5 - 17180: f024 0407 bic.w r4, r4, #7 - 17184: fa27 f104 lsr.w r1, r7, r4 - 17188: e9dd 6702 ldrd r6, r7, [sp, #8] - 1718c: fa23 f304 lsr.w r3, r3, r4 - 17190: f003 00ff and.w r0, r3, #255 ; 0xff - 17194: f001 01ff and.w r1, r1, #255 ; 0xff - 17198: e8fd 4504 ldrd r4, r5, [sp], #16 - 1719c: eba0 0001 sub.w r0, r0, r1 - 171a0: 4770 bx lr - 171a2: ba24 rev r4, r4 - 171a4: fab4 f484 clz r4, r4 - 171a8: f024 0407 bic.w r4, r4, #7 - 171ac: fa26 f104 lsr.w r1, r6, r4 - 171b0: e9dd 6702 ldrd r6, r7, [sp, #8] - 171b4: fa22 f204 lsr.w r2, r2, r4 - 171b8: f002 00ff and.w r0, r2, #255 ; 0xff - 171bc: f001 01ff and.w r1, r1, #255 ; 0xff - 171c0: e8fd 4504 ldrd r4, r5, [sp], #16 - 171c4: eba0 0001 sub.w r0, r0, r1 - 171c8: 4770 bx lr - 171ca: f014 0f03 tst.w r4, #3 - 171ce: d13c bne.n 1724a - 171d0: f010 0403 ands.w r4, r0, #3 - 171d4: d128 bne.n 17228 - 171d6: f850 2b08 ldr.w r2, [r0], #8 - 171da: f851 3b08 ldr.w r3, [r1], #8 - 171de: fa82 f54c uadd8 r5, r2, ip - 171e2: ea82 0503 eor.w r5, r2, r3 - 171e6: faa5 f58c sel r5, r5, ip - 171ea: b95d cbnz r5, 17204 - 171ec: f850 2c04 ldr.w r2, [r0, #-4] - 171f0: f851 3c04 ldr.w r3, [r1, #-4] - 171f4: fa82 f54c uadd8 r5, r2, ip - 171f8: ea82 0503 eor.w r5, r2, r3 - 171fc: faa5 f58c sel r5, r5, ip - 17200: 2d00 cmp r5, #0 - 17202: d0e8 beq.n 171d6 - 17204: ba2d rev r5, r5 - 17206: fab5 f485 clz r4, r5 - 1720a: f024 0407 bic.w r4, r4, #7 - 1720e: fa23 f104 lsr.w r1, r3, r4 - 17212: fa22 f204 lsr.w r2, r2, r4 - 17216: f002 00ff and.w r0, r2, #255 ; 0xff - 1721a: f001 01ff and.w r1, r1, #255 ; 0xff - 1721e: e8fd 4504 ldrd r4, r5, [sp], #16 - 17222: eba0 0001 sub.w r0, r0, r1 - 17226: 4770 bx lr - 17228: ea4f 04c4 mov.w r4, r4, lsl #3 - 1722c: f020 0003 bic.w r0, r0, #3 - 17230: f850 2b08 ldr.w r2, [r0], #8 - 17234: f021 0103 bic.w r1, r1, #3 - 17238: f851 3b08 ldr.w r3, [r1], #8 - 1723c: fa0c f404 lsl.w r4, ip, r4 - 17240: ea62 0204 orn r2, r2, r4 - 17244: ea63 0304 orn r3, r3, r4 - 17248: e7c9 b.n 171de - 1724a: f010 0403 ands.w r4, r0, #3 - 1724e: d01a beq.n 17286 - 17250: eba1 0104 sub.w r1, r1, r4 - 17254: f020 0003 bic.w r0, r0, #3 - 17258: 07e4 lsls r4, r4, #31 - 1725a: f850 2b04 ldr.w r2, [r0], #4 - 1725e: d006 beq.n 1726e - 17260: d20f bcs.n 17282 - 17262: 788b ldrb r3, [r1, #2] - 17264: fa5f f4a2 uxtb.w r4, r2, ror #16 - 17268: 1ae4 subs r4, r4, r3 - 1726a: d106 bne.n 1727a - 1726c: b12b cbz r3, 1727a - 1726e: 78cb ldrb r3, [r1, #3] - 17270: fa5f f4b2 uxtb.w r4, r2, ror #24 - 17274: 1ae4 subs r4, r4, r3 - 17276: d100 bne.n 1727a - 17278: b91b cbnz r3, 17282 - 1727a: 4620 mov r0, r4 - 1727c: f85d 4b10 ldr.w r4, [sp], #16 - 17280: 4770 bx lr - 17282: f101 0104 add.w r1, r1, #4 - 17286: f850 2b04 ldr.w r2, [r0], #4 - 1728a: 07cc lsls r4, r1, #31 - 1728c: f021 0103 bic.w r1, r1, #3 - 17290: f851 3b04 ldr.w r3, [r1], #4 - 17294: d848 bhi.n 17328 - 17296: d224 bcs.n 172e2 - 17298: f022 447f bic.w r4, r2, #4278190080 ; 0xff000000 - 1729c: fa82 f54c uadd8 r5, r2, ip - 172a0: ea94 2513 eors.w r5, r4, r3, lsr #8 - 172a4: faa5 f58c sel r5, r5, ip - 172a8: d10a bne.n 172c0 - 172aa: b965 cbnz r5, 172c6 - 172ac: f851 3b04 ldr.w r3, [r1], #4 - 172b0: ea84 0402 eor.w r4, r4, r2 - 172b4: ebb4 6f03 cmp.w r4, r3, lsl #24 - 172b8: d10e bne.n 172d8 - 172ba: f850 2b04 ldr.w r2, [r0], #4 - 172be: e7eb b.n 17298 - 172c0: ea4f 2313 mov.w r3, r3, lsr #8 - 172c4: e055 b.n 17372 - 172c6: f035 457f bics.w r5, r5, #4278190080 ; 0xff000000 - 172ca: d14d bne.n 17368 - 172cc: 7808 ldrb r0, [r1, #0] - 172ce: e8fd 4504 ldrd r4, r5, [sp], #16 - 172d2: f1c0 0000 rsb r0, r0, #0 - 172d6: 4770 bx lr - 172d8: ea4f 6212 mov.w r2, r2, lsr #24 - 172dc: f003 03ff and.w r3, r3, #255 ; 0xff - 172e0: e047 b.n 17372 - 172e2: ea02 441c and.w r4, r2, ip, lsr #16 - 172e6: fa82 f54c uadd8 r5, r2, ip - 172ea: ea94 4513 eors.w r5, r4, r3, lsr #16 - 172ee: faa5 f58c sel r5, r5, ip - 172f2: d10a bne.n 1730a - 172f4: b965 cbnz r5, 17310 - 172f6: f851 3b04 ldr.w r3, [r1], #4 - 172fa: ea84 0402 eor.w r4, r4, r2 - 172fe: ebb4 4f03 cmp.w r4, r3, lsl #16 - 17302: d10c bne.n 1731e - 17304: f850 2b04 ldr.w r2, [r0], #4 - 17308: e7eb b.n 172e2 - 1730a: ea4f 4313 mov.w r3, r3, lsr #16 - 1730e: e030 b.n 17372 - 17310: ea15 451c ands.w r5, r5, ip, lsr #16 - 17314: d128 bne.n 17368 - 17316: 880b ldrh r3, [r1, #0] - 17318: ea4f 4212 mov.w r2, r2, lsr #16 - 1731c: e029 b.n 17372 - 1731e: ea4f 4212 mov.w r2, r2, lsr #16 - 17322: ea03 431c and.w r3, r3, ip, lsr #16 - 17326: e024 b.n 17372 - 17328: f002 04ff and.w r4, r2, #255 ; 0xff - 1732c: fa82 f54c uadd8 r5, r2, ip - 17330: ea94 6513 eors.w r5, r4, r3, lsr #24 - 17334: faa5 f58c sel r5, r5, ip - 17338: d10a bne.n 17350 - 1733a: b965 cbnz r5, 17356 - 1733c: f851 3b04 ldr.w r3, [r1], #4 - 17340: ea84 0402 eor.w r4, r4, r2 - 17344: ebb4 2f03 cmp.w r4, r3, lsl #8 - 17348: d109 bne.n 1735e - 1734a: f850 2b04 ldr.w r2, [r0], #4 - 1734e: e7eb b.n 17328 - 17350: ea4f 6313 mov.w r3, r3, lsr #24 - 17354: e00d b.n 17372 - 17356: f015 0fff tst.w r5, #255 ; 0xff - 1735a: d105 bne.n 17368 - 1735c: 680b ldr r3, [r1, #0] - 1735e: ea4f 2212 mov.w r2, r2, lsr #8 - 17362: f023 437f bic.w r3, r3, #4278190080 ; 0xff000000 - 17366: e004 b.n 17372 - 17368: f04f 0000 mov.w r0, #0 - 1736c: e8fd 4504 ldrd r4, r5, [sp], #16 - 17370: 4770 bx lr - 17372: ba12 rev r2, r2 - 17374: ba1b rev r3, r3 - 17376: fa82 f44c uadd8 r4, r2, ip - 1737a: ea82 0403 eor.w r4, r2, r3 - 1737e: faa4 f58c sel r5, r4, ip - 17382: fab5 f485 clz r4, r5 - 17386: fa02 f204 lsl.w r2, r2, r4 - 1738a: fa03 f304 lsl.w r3, r3, r4 - 1738e: ea4f 6012 mov.w r0, r2, lsr #24 - 17392: e8fd 4504 ldrd r4, r5, [sp], #16 - 17396: eba0 6013 sub.w r0, r0, r3, lsr #24 - 1739a: 4770 bx lr - -0001739c : - 1739c: ea80 0201 eor.w r2, r0, r1 - 173a0: 4684 mov ip, r0 - 173a2: f012 0f03 tst.w r2, #3 - 173a6: d14f bne.n 17448 - 173a8: f011 0f03 tst.w r1, #3 - 173ac: d132 bne.n 17414 - 173ae: f84d 4d04 str.w r4, [sp, #-4]! - 173b2: f011 0f04 tst.w r1, #4 - 173b6: f851 3b04 ldr.w r3, [r1], #4 - 173ba: d00b beq.n 173d4 - 173bc: f1a3 3201 sub.w r2, r3, #16843009 ; 0x1010101 - 173c0: 439a bics r2, r3 - 173c2: f012 3f80 tst.w r2, #2155905152 ; 0x80808080 - 173c6: bf04 itt eq - 173c8: f84c 3b04 streq.w r3, [ip], #4 - 173cc: f851 3b04 ldreq.w r3, [r1], #4 - 173d0: d116 bne.n 17400 - 173d2: bf00 nop - 173d4: f851 4b04 ldr.w r4, [r1], #4 - 173d8: f1a3 3201 sub.w r2, r3, #16843009 ; 0x1010101 - 173dc: 439a bics r2, r3 - 173de: f012 3f80 tst.w r2, #2155905152 ; 0x80808080 - 173e2: f1a4 3201 sub.w r2, r4, #16843009 ; 0x1010101 - 173e6: d10b bne.n 17400 - 173e8: f84c 3b04 str.w r3, [ip], #4 - 173ec: 43a2 bics r2, r4 - 173ee: f012 3f80 tst.w r2, #2155905152 ; 0x80808080 - 173f2: bf04 itt eq - 173f4: f851 3b04 ldreq.w r3, [r1], #4 - 173f8: f84c 4b04 streq.w r4, [ip], #4 - 173fc: d0ea beq.n 173d4 - 173fe: 4623 mov r3, r4 - 17400: f80c 3b01 strb.w r3, [ip], #1 - 17404: f013 0fff tst.w r3, #255 ; 0xff - 17408: ea4f 2333 mov.w r3, r3, ror #8 - 1740c: d1f8 bne.n 17400 - 1740e: f85d 4b04 ldr.w r4, [sp], #4 - 17412: 4770 bx lr - 17414: f011 0f01 tst.w r1, #1 - 17418: d006 beq.n 17428 - 1741a: f811 2b01 ldrb.w r2, [r1], #1 - 1741e: f80c 2b01 strb.w r2, [ip], #1 - 17422: 2a00 cmp r2, #0 - 17424: bf08 it eq - 17426: 4770 bxeq lr - 17428: f011 0f02 tst.w r1, #2 - 1742c: d0bf beq.n 173ae - 1742e: f831 2b02 ldrh.w r2, [r1], #2 - 17432: f012 0fff tst.w r2, #255 ; 0xff - 17436: bf16 itet ne - 17438: f82c 2b02 strhne.w r2, [ip], #2 - 1743c: f88c 2000 strbeq.w r2, [ip] - 17440: f412 4f7f tstne.w r2, #65280 ; 0xff00 - 17444: d1b3 bne.n 173ae - 17446: 4770 bx lr - 17448: f811 2b01 ldrb.w r2, [r1], #1 - 1744c: f80c 2b01 strb.w r2, [ip], #1 - 17450: 2a00 cmp r2, #0 - 17452: d1f9 bne.n 17448 - 17454: 4770 bx lr - 17456: bf00 nop - ... - -00017480 : - 17480: f890 f000 pld [r0] - 17484: e96d 4502 strd r4, r5, [sp, #-8]! - 17488: f020 0107 bic.w r1, r0, #7 - 1748c: f06f 0c00 mvn.w ip, #0 - 17490: f010 0407 ands.w r4, r0, #7 - 17494: f891 f020 pld [r1, #32] - 17498: f040 8049 bne.w 1752e - 1749c: f04f 0400 mov.w r4, #0 - 174a0: f06f 0007 mvn.w r0, #7 - 174a4: e9d1 2300 ldrd r2, r3, [r1] - 174a8: f891 f040 pld [r1, #64] ; 0x40 - 174ac: f100 0008 add.w r0, r0, #8 - 174b0: fa82 f24c uadd8 r2, r2, ip - 174b4: faa4 f28c sel r2, r4, ip - 174b8: fa83 f34c uadd8 r3, r3, ip - 174bc: faa2 f38c sel r3, r2, ip - 174c0: bb4b cbnz r3, 17516 - 174c2: e9d1 2302 ldrd r2, r3, [r1, #8] - 174c6: fa82 f24c uadd8 r2, r2, ip - 174ca: f100 0008 add.w r0, r0, #8 - 174ce: faa4 f28c sel r2, r4, ip - 174d2: fa83 f34c uadd8 r3, r3, ip - 174d6: faa2 f38c sel r3, r2, ip - 174da: b9e3 cbnz r3, 17516 - 174dc: e9d1 2304 ldrd r2, r3, [r1, #16] - 174e0: fa82 f24c uadd8 r2, r2, ip - 174e4: f100 0008 add.w r0, r0, #8 - 174e8: faa4 f28c sel r2, r4, ip - 174ec: fa83 f34c uadd8 r3, r3, ip - 174f0: faa2 f38c sel r3, r2, ip - 174f4: b97b cbnz r3, 17516 - 174f6: e9d1 2306 ldrd r2, r3, [r1, #24] - 174fa: f101 0120 add.w r1, r1, #32 - 174fe: fa82 f24c uadd8 r2, r2, ip - 17502: f100 0008 add.w r0, r0, #8 - 17506: faa4 f28c sel r2, r4, ip - 1750a: fa83 f34c uadd8 r3, r3, ip - 1750e: faa2 f38c sel r3, r2, ip - 17512: 2b00 cmp r3, #0 - 17514: d0c6 beq.n 174a4 - 17516: 2a00 cmp r2, #0 - 17518: bf04 itt eq - 1751a: 3004 addeq r0, #4 - 1751c: 461a moveq r2, r3 - 1751e: ba12 rev r2, r2 - 17520: fab2 f282 clz r2, r2 - 17524: e8fd 4502 ldrd r4, r5, [sp], #8 - 17528: eb00 00d2 add.w r0, r0, r2, lsr #3 - 1752c: 4770 bx lr - 1752e: e9d1 2300 ldrd r2, r3, [r1] - 17532: f004 0503 and.w r5, r4, #3 - 17536: f1c4 0000 rsb r0, r4, #0 - 1753a: ea4f 05c5 mov.w r5, r5, lsl #3 - 1753e: f014 0f04 tst.w r4, #4 - 17542: f891 f040 pld [r1, #64] ; 0x40 - 17546: fa0c f505 lsl.w r5, ip, r5 - 1754a: ea62 0205 orn r2, r2, r5 - 1754e: bf1c itt ne - 17550: ea63 0305 ornne r3, r3, r5 - 17554: 4662 movne r2, ip - 17556: f04f 0400 mov.w r4, #0 - 1755a: e7a9 b.n 174b0 - -0001755c <_svfprintf_r>: - 1755c: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - 17560: b0bf sub sp, #252 ; 0xfc - 17562: 468a mov sl, r1 - 17564: 4690 mov r8, r2 - 17566: 930d str r3, [sp, #52] ; 0x34 - 17568: 900c str r0, [sp, #48] ; 0x30 - 1756a: f003 fee5 bl 1b338 <_localeconv_r> - 1756e: 6803 ldr r3, [r0, #0] - 17570: 9315 str r3, [sp, #84] ; 0x54 - 17572: 4618 mov r0, r3 - 17574: f7ff ff84 bl 17480 - 17578: f8ba 300c ldrh.w r3, [sl, #12] - 1757c: 9014 str r0, [sp, #80] ; 0x50 - 1757e: 061f lsls r7, r3, #24 - 17580: d504 bpl.n 1758c <_svfprintf_r+0x30> - 17582: f8da 3010 ldr.w r3, [sl, #16] - 17586: 2b00 cmp r3, #0 - 17588: f000 8690 beq.w 182ac <_svfprintf_r+0xd50> - 1758c: 2300 movs r3, #0 - 1758e: e9cd 3322 strd r3, r3, [sp, #136] ; 0x88 - 17592: 9312 str r3, [sp, #72] ; 0x48 - 17594: 9313 str r3, [sp, #76] ; 0x4c - 17596: 9316 str r3, [sp, #88] ; 0x58 - 17598: 9309 str r3, [sp, #36] ; 0x24 - 1759a: 2400 movs r4, #0 - 1759c: 2300 movs r3, #0 - 1759e: e9cd 3410 strd r3, r4, [sp, #64] ; 0x40 - 175a2: aa2e add r2, sp, #184 ; 0xb8 - 175a4: 9221 str r2, [sp, #132] ; 0x84 - 175a6: 4691 mov r9, r2 - 175a8: 46d3 mov fp, sl - 175aa: f898 3000 ldrb.w r3, [r8] - 175ae: 2b00 cmp r3, #0 - 175b0: f000 8137 beq.w 17822 <_svfprintf_r+0x2c6> - 175b4: 4644 mov r4, r8 - 175b6: e004 b.n 175c2 <_svfprintf_r+0x66> - 175b8: f814 3f01 ldrb.w r3, [r4, #1]! - 175bc: 2b00 cmp r3, #0 - 175be: f000 8087 beq.w 176d0 <_svfprintf_r+0x174> - 175c2: 2b25 cmp r3, #37 ; 0x25 - 175c4: d1f8 bne.n 175b8 <_svfprintf_r+0x5c> - 175c6: ebb4 0508 subs.w r5, r4, r8 - 175ca: f040 8085 bne.w 176d8 <_svfprintf_r+0x17c> - 175ce: 7823 ldrb r3, [r4, #0] - 175d0: 2b00 cmp r3, #0 - 175d2: f000 8126 beq.w 17822 <_svfprintf_r+0x2c6> - 175d6: 2300 movs r3, #0 - 175d8: 1c62 adds r2, r4, #1 - 175da: f88d 3067 strb.w r3, [sp, #103] ; 0x67 - 175de: 4618 mov r0, r3 - 175e0: f04f 35ff mov.w r5, #4294967295 ; 0xffffffff - 175e4: 4619 mov r1, r3 - 175e6: 461c mov r4, r3 - 175e8: 4690 mov r8, r2 - 175ea: f818 7b01 ldrb.w r7, [r8], #1 - 175ee: f1a7 0220 sub.w r2, r7, #32 - 175f2: 2a58 cmp r2, #88 ; 0x58 - 175f4: f200 808b bhi.w 1770e <_svfprintf_r+0x1b2> - 175f8: e8df f012 tbh [pc, r2, lsl #1] - 175fc: 00890296 .word 0x00890296 - 17600: 02880089 .word 0x02880089 - 17604: 00890089 .word 0x00890089 - 17608: 00890089 .word 0x00890089 - 1760c: 00890089 .word 0x00890089 - 17610: 06470194 .word 0x06470194 - 17614: 019c0089 .word 0x019c0089 - 17618: 0089019f .word 0x0089019f - 1761c: 005902a8 .word 0x005902a8 - 17620: 00590059 .word 0x00590059 - 17624: 00590059 .word 0x00590059 - 17628: 00590059 .word 0x00590059 - 1762c: 00590059 .word 0x00590059 - 17630: 00890089 .word 0x00890089 - 17634: 00890089 .word 0x00890089 - 17638: 00890089 .word 0x00890089 - 1763c: 00890089 .word 0x00890089 - 17640: 00890089 .word 0x00890089 - 17644: 0125029c .word 0x0125029c - 17648: 01250089 .word 0x01250089 - 1764c: 00890089 .word 0x00890089 - 17650: 00890089 .word 0x00890089 - 17654: 00890258 .word 0x00890258 - 17658: 02640089 .word 0x02640089 - 1765c: 00890089 .word 0x00890089 - 17660: 00890089 .word 0x00890089 - 17664: 025b0089 .word 0x025b0089 - 17668: 00890089 .word 0x00890089 - 1766c: 0089027d .word 0x0089027d - 17670: 00890089 .word 0x00890089 - 17674: 00890089 .word 0x00890089 - 17678: 00890089 .word 0x00890089 - 1767c: 00890089 .word 0x00890089 - 17680: 026e0089 .word 0x026e0089 - 17684: 0125016a .word 0x0125016a - 17688: 01250125 .word 0x01250125 - 1768c: 016a0285 .word 0x016a0285 - 17690: 00890089 .word 0x00890089 - 17694: 00890067 .word 0x00890067 - 17698: 02310243 .word 0x02310243 - 1769c: 00670220 .word 0x00670220 - 176a0: 01fa0089 .word 0x01fa0089 - 176a4: 01ea0089 .word 0x01ea0089 - 176a8: 00890089 .word 0x00890089 - 176ac: 01b6 .short 0x01b6 - 176ae: f1a7 0230 sub.w r2, r7, #48 ; 0x30 - 176b2: 2100 movs r1, #0 - 176b4: f818 7b01 ldrb.w r7, [r8], #1 - 176b8: eb01 0181 add.w r1, r1, r1, lsl #2 - 176bc: eb02 0141 add.w r1, r2, r1, lsl #1 - 176c0: f1a7 0230 sub.w r2, r7, #48 ; 0x30 - 176c4: 2a09 cmp r2, #9 - 176c6: d9f5 bls.n 176b4 <_svfprintf_r+0x158> - 176c8: e791 b.n 175ee <_svfprintf_r+0x92> - 176ca: f044 0410 orr.w r4, r4, #16 - 176ce: e78c b.n 175ea <_svfprintf_r+0x8e> - 176d0: ebb4 0508 subs.w r5, r4, r8 - 176d4: f000 80a5 beq.w 17822 <_svfprintf_r+0x2c6> - 176d8: 9b23 ldr r3, [sp, #140] ; 0x8c - 176da: 442b add r3, r5 - 176dc: 9323 str r3, [sp, #140] ; 0x8c - 176de: 9b22 ldr r3, [sp, #136] ; 0x88 - 176e0: 3301 adds r3, #1 - 176e2: 2b07 cmp r3, #7 - 176e4: e9c9 8500 strd r8, r5, [r9] - 176e8: 9322 str r3, [sp, #136] ; 0x88 - 176ea: dc05 bgt.n 176f8 <_svfprintf_r+0x19c> - 176ec: f109 0908 add.w r9, r9, #8 - 176f0: 9b09 ldr r3, [sp, #36] ; 0x24 - 176f2: 442b add r3, r5 - 176f4: 9309 str r3, [sp, #36] ; 0x24 - 176f6: e76a b.n 175ce <_svfprintf_r+0x72> - 176f8: 980c ldr r0, [sp, #48] ; 0x30 - 176fa: aa21 add r2, sp, #132 ; 0x84 - 176fc: 4659 mov r1, fp - 176fe: f004 fddf bl 1c2c0 <__ssprint_r> - 17702: 2800 cmp r0, #0 - 17704: f040 834f bne.w 17da6 <_svfprintf_r+0x84a> - 17708: f10d 09b8 add.w r9, sp, #184 ; 0xb8 - 1770c: e7f0 b.n 176f0 <_svfprintf_r+0x194> - 1770e: 910b str r1, [sp, #44] ; 0x2c - 17710: 2b00 cmp r3, #0 - 17712: f040 8795 bne.w 18640 <_svfprintf_r+0x10e4> - 17716: 2f00 cmp r7, #0 - 17718: f000 8083 beq.w 17822 <_svfprintf_r+0x2c6> - 1771c: 2300 movs r3, #0 - 1771e: f88d 3067 strb.w r3, [sp, #103] ; 0x67 - 17722: 2301 movs r3, #1 - 17724: f88d 7090 strb.w r7, [sp, #144] ; 0x90 - 17728: 9307 str r3, [sp, #28] - 1772a: 930a str r3, [sp, #40] ; 0x28 - 1772c: ad24 add r5, sp, #144 ; 0x90 - 1772e: 2300 movs r3, #0 - 17730: 9406 str r4, [sp, #24] - 17732: 9308 str r3, [sp, #32] - 17734: 930f str r3, [sp, #60] ; 0x3c - 17736: 9b06 ldr r3, [sp, #24] - 17738: f013 0302 ands.w r3, r3, #2 - 1773c: d002 beq.n 17744 <_svfprintf_r+0x1e8> - 1773e: 9a07 ldr r2, [sp, #28] - 17740: 3202 adds r2, #2 - 17742: 9207 str r2, [sp, #28] - 17744: 9a06 ldr r2, [sp, #24] - 17746: 9c23 ldr r4, [sp, #140] ; 0x8c - 17748: f012 0284 ands.w r2, r2, #132 ; 0x84 - 1774c: 920e str r2, [sp, #56] ; 0x38 - 1774e: d105 bne.n 1775c <_svfprintf_r+0x200> - 17750: 9a0b ldr r2, [sp, #44] ; 0x2c - 17752: 9907 ldr r1, [sp, #28] - 17754: 1a56 subs r6, r2, r1 - 17756: 2e00 cmp r6, #0 - 17758: f300 8388 bgt.w 17e6c <_svfprintf_r+0x910> - 1775c: f89d 2067 ldrb.w r2, [sp, #103] ; 0x67 - 17760: b18a cbz r2, 17786 <_svfprintf_r+0x22a> - 17762: 9a22 ldr r2, [sp, #136] ; 0x88 - 17764: f10d 0167 add.w r1, sp, #103 ; 0x67 - 17768: 3201 adds r2, #1 - 1776a: 3401 adds r4, #1 - 1776c: f8c9 1000 str.w r1, [r9] - 17770: 2a07 cmp r2, #7 - 17772: f04f 0101 mov.w r1, #1 - 17776: 9423 str r4, [sp, #140] ; 0x8c - 17778: 9222 str r2, [sp, #136] ; 0x88 - 1777a: f8c9 1004 str.w r1, [r9, #4] - 1777e: f300 83c9 bgt.w 17f14 <_svfprintf_r+0x9b8> - 17782: f109 0908 add.w r9, r9, #8 - 17786: b183 cbz r3, 177aa <_svfprintf_r+0x24e> - 17788: 9b22 ldr r3, [sp, #136] ; 0x88 - 1778a: aa1a add r2, sp, #104 ; 0x68 - 1778c: 3301 adds r3, #1 - 1778e: 3402 adds r4, #2 - 17790: f8c9 2000 str.w r2, [r9] - 17794: 2b07 cmp r3, #7 - 17796: f04f 0202 mov.w r2, #2 - 1779a: 9423 str r4, [sp, #140] ; 0x8c - 1779c: 9322 str r3, [sp, #136] ; 0x88 - 1779e: f8c9 2004 str.w r2, [r9, #4] - 177a2: f300 83ab bgt.w 17efc <_svfprintf_r+0x9a0> - 177a6: f109 0908 add.w r9, r9, #8 - 177aa: 9b0e ldr r3, [sp, #56] ; 0x38 - 177ac: 2b80 cmp r3, #128 ; 0x80 - 177ae: f000 8266 beq.w 17c7e <_svfprintf_r+0x722> - 177b2: 9b08 ldr r3, [sp, #32] - 177b4: 9a0a ldr r2, [sp, #40] ; 0x28 - 177b6: eba3 0a02 sub.w sl, r3, r2 - 177ba: f1ba 0f00 cmp.w sl, #0 - 177be: f300 82a8 bgt.w 17d12 <_svfprintf_r+0x7b6> - 177c2: 9b06 ldr r3, [sp, #24] - 177c4: 05de lsls r6, r3, #23 - 177c6: f100 81ea bmi.w 17b9e <_svfprintf_r+0x642> - 177ca: 9b0a ldr r3, [sp, #40] ; 0x28 - 177cc: f8c9 3004 str.w r3, [r9, #4] - 177d0: 441c add r4, r3 - 177d2: 9b22 ldr r3, [sp, #136] ; 0x88 - 177d4: f8c9 5000 str.w r5, [r9] - 177d8: 3301 adds r3, #1 - 177da: 2b07 cmp r3, #7 - 177dc: 9423 str r4, [sp, #140] ; 0x8c - 177de: 9322 str r3, [sp, #136] ; 0x88 - 177e0: f300 82ee bgt.w 17dc0 <_svfprintf_r+0x864> - 177e4: f109 0908 add.w r9, r9, #8 - 177e8: 9b06 ldr r3, [sp, #24] - 177ea: 075a lsls r2, r3, #29 - 177ec: d505 bpl.n 177fa <_svfprintf_r+0x29e> - 177ee: 9b0b ldr r3, [sp, #44] ; 0x2c - 177f0: 9a07 ldr r2, [sp, #28] - 177f2: 1a9d subs r5, r3, r2 - 177f4: 2d00 cmp r5, #0 - 177f6: f300 839b bgt.w 17f30 <_svfprintf_r+0x9d4> - 177fa: 9b09 ldr r3, [sp, #36] ; 0x24 - 177fc: 9a0b ldr r2, [sp, #44] ; 0x2c - 177fe: 9907 ldr r1, [sp, #28] - 17800: 428a cmp r2, r1 - 17802: bfac ite ge - 17804: 189b addge r3, r3, r2 - 17806: 185b addlt r3, r3, r1 - 17808: 9309 str r3, [sp, #36] ; 0x24 - 1780a: 2c00 cmp r4, #0 - 1780c: f040 82c3 bne.w 17d96 <_svfprintf_r+0x83a> - 17810: 2300 movs r3, #0 - 17812: 9322 str r3, [sp, #136] ; 0x88 - 17814: f898 3000 ldrb.w r3, [r8] - 17818: f10d 09b8 add.w r9, sp, #184 ; 0xb8 - 1781c: 2b00 cmp r3, #0 - 1781e: f47f aec9 bne.w 175b4 <_svfprintf_r+0x58> - 17822: 9b23 ldr r3, [sp, #140] ; 0x8c - 17824: 46da mov sl, fp - 17826: 2b00 cmp r3, #0 - 17828: f040 87b1 bne.w 1878e <_svfprintf_r+0x1232> - 1782c: f8ba 300c ldrh.w r3, [sl, #12] - 17830: f013 0f40 tst.w r3, #64 ; 0x40 - 17834: 9b09 ldr r3, [sp, #36] ; 0x24 - 17836: bf18 it ne - 17838: f04f 33ff movne.w r3, #4294967295 ; 0xffffffff - 1783c: 9309 str r3, [sp, #36] ; 0x24 - 1783e: 9809 ldr r0, [sp, #36] ; 0x24 - 17840: b03f add sp, #252 ; 0xfc - 17842: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - 17846: 910b str r1, [sp, #44] ; 0x2c - 17848: 9508 str r5, [sp, #32] - 1784a: 2b00 cmp r3, #0 - 1784c: f040 87aa bne.w 187a4 <_svfprintf_r+0x1248> - 17850: 9b0d ldr r3, [sp, #52] ; 0x34 - 17852: 3307 adds r3, #7 - 17854: f023 0107 bic.w r1, r3, #7 - 17858: e8f1 2302 ldrd r2, r3, [r1], #8 - 1785c: f023 4500 bic.w r5, r3, #2147483648 ; 0x80000000 - 17860: e9cd 2310 strd r2, r3, [sp, #64] ; 0x40 - 17864: 910d str r1, [sp, #52] ; 0x34 - 17866: 4616 mov r6, r2 - 17868: 4610 mov r0, r2 - 1786a: 4baa ldr r3, [pc, #680] ; (17b14 <_svfprintf_r+0x5b8>) - 1786c: 4629 mov r1, r5 - 1786e: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff - 17872: f006 fa21 bl 1dcb8 <__aeabi_dcmpun> - 17876: 2800 cmp r0, #0 - 17878: f040 849c bne.w 181b4 <_svfprintf_r+0xc58> - 1787c: 4ba5 ldr r3, [pc, #660] ; (17b14 <_svfprintf_r+0x5b8>) - 1787e: 4630 mov r0, r6 - 17880: 4629 mov r1, r5 - 17882: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff - 17886: f006 f9f9 bl 1dc7c <__aeabi_dcmple> - 1788a: 2800 cmp r0, #0 - 1788c: f040 8492 bne.w 181b4 <_svfprintf_r+0xc58> - 17890: e9dd 0110 ldrd r0, r1, [sp, #64] ; 0x40 - 17894: 2200 movs r2, #0 - 17896: 2300 movs r3, #0 - 17898: f006 f9e6 bl 1dc68 <__aeabi_dcmplt> - 1789c: 2800 cmp r0, #0 - 1789e: f040 86a7 bne.w 185f0 <_svfprintf_r+0x1094> - 178a2: f89d 1067 ldrb.w r1, [sp, #103] ; 0x67 - 178a6: 4d9c ldr r5, [pc, #624] ; (17b18 <_svfprintf_r+0x5bc>) - 178a8: f024 0380 bic.w r3, r4, #128 ; 0x80 - 178ac: 9306 str r3, [sp, #24] - 178ae: 4b9b ldr r3, [pc, #620] ; (17b1c <_svfprintf_r+0x5c0>) - 178b0: 2200 movs r2, #0 - 178b2: 2f47 cmp r7, #71 ; 0x47 - 178b4: bfc8 it gt - 178b6: 461d movgt r5, r3 - 178b8: 2303 movs r3, #3 - 178ba: e9cd 3207 strd r3, r2, [sp, #28] - 178be: 930a str r3, [sp, #40] ; 0x28 - 178c0: 920f str r2, [sp, #60] ; 0x3c - 178c2: 2900 cmp r1, #0 - 178c4: f43f af37 beq.w 17736 <_svfprintf_r+0x1da> - 178c8: 9b07 ldr r3, [sp, #28] - 178ca: 3301 adds r3, #1 - 178cc: 9307 str r3, [sp, #28] - 178ce: e732 b.n 17736 <_svfprintf_r+0x1da> - 178d0: 910b str r1, [sp, #44] ; 0x2c - 178d2: 9508 str r5, [sp, #32] - 178d4: 2b00 cmp r3, #0 - 178d6: f040 8769 bne.w 187ac <_svfprintf_r+0x1250> - 178da: 9b0d ldr r3, [sp, #52] ; 0x34 - 178dc: 06e5 lsls r5, r4, #27 - 178de: f853 2b04 ldr.w r2, [r3], #4 - 178e2: 930d str r3, [sp, #52] ; 0x34 - 178e4: d402 bmi.n 178ec <_svfprintf_r+0x390> - 178e6: 0660 lsls r0, r4, #25 - 178e8: f100 8460 bmi.w 181ac <_svfprintf_r+0xc50> - 178ec: 4613 mov r3, r2 - 178ee: 2a00 cmp r2, #0 - 178f0: f2c0 842a blt.w 18148 <_svfprintf_r+0xbec> - 178f4: 9808 ldr r0, [sp, #32] - 178f6: f89d 1067 ldrb.w r1, [sp, #103] ; 0x67 - 178fa: 3001 adds r0, #1 - 178fc: d006 beq.n 1790c <_svfprintf_r+0x3b0> - 178fe: f024 0080 bic.w r0, r4, #128 ; 0x80 - 17902: 9006 str r0, [sp, #24] - 17904: 2a00 cmp r2, #0 - 17906: f000 83c2 beq.w 1808e <_svfprintf_r+0xb32> - 1790a: 9c06 ldr r4, [sp, #24] - 1790c: 2b09 cmp r3, #9 - 1790e: f200 851c bhi.w 1834a <_svfprintf_r+0xdee> - 17912: 3330 adds r3, #48 ; 0x30 - 17914: f88d 30b7 strb.w r3, [sp, #183] ; 0xb7 - 17918: 2301 movs r3, #1 - 1791a: 9406 str r4, [sp, #24] - 1791c: 930a str r3, [sp, #40] ; 0x28 - 1791e: f10d 05b7 add.w r5, sp, #183 ; 0xb7 - 17922: e133 b.n 17b8c <_svfprintf_r+0x630> - 17924: 9a0d ldr r2, [sp, #52] ; 0x34 - 17926: f852 1b04 ldr.w r1, [r2], #4 - 1792a: 2900 cmp r1, #0 - 1792c: f280 842a bge.w 18184 <_svfprintf_r+0xc28> - 17930: 4249 negs r1, r1 - 17932: 920d str r2, [sp, #52] ; 0x34 - 17934: f044 0404 orr.w r4, r4, #4 - 17938: e657 b.n 175ea <_svfprintf_r+0x8e> - 1793a: f818 7b01 ldrb.w r7, [r8], #1 - 1793e: 2f2a cmp r7, #42 ; 0x2a - 17940: f000 87b0 beq.w 188a4 <_svfprintf_r+0x1348> - 17944: f1a7 0230 sub.w r2, r7, #48 ; 0x30 - 17948: 2a09 cmp r2, #9 - 1794a: f04f 0500 mov.w r5, #0 - 1794e: f63f ae4e bhi.w 175ee <_svfprintf_r+0x92> - 17952: f818 7b01 ldrb.w r7, [r8], #1 - 17956: eb05 0585 add.w r5, r5, r5, lsl #2 - 1795a: eb02 0545 add.w r5, r2, r5, lsl #1 - 1795e: f1a7 0230 sub.w r2, r7, #48 ; 0x30 - 17962: 2a09 cmp r2, #9 - 17964: d9f5 bls.n 17952 <_svfprintf_r+0x3f6> - 17966: e642 b.n 175ee <_svfprintf_r+0x92> - 17968: 910b str r1, [sp, #44] ; 0x2c - 1796a: 9508 str r5, [sp, #32] - 1796c: 2b00 cmp r3, #0 - 1796e: f040 8706 bne.w 1877e <_svfprintf_r+0x1222> - 17972: 4b6b ldr r3, [pc, #428] ; (17b20 <_svfprintf_r+0x5c4>) - 17974: 9313 str r3, [sp, #76] ; 0x4c - 17976: 9a0d ldr r2, [sp, #52] ; 0x34 - 17978: 06e1 lsls r1, r4, #27 - 1797a: f852 3b04 ldr.w r3, [r2], #4 - 1797e: 920d str r2, [sp, #52] ; 0x34 - 17980: d402 bmi.n 17988 <_svfprintf_r+0x42c> - 17982: 0662 lsls r2, r4, #25 - 17984: bf48 it mi - 17986: b29b uxthmi r3, r3 - 17988: 07e6 lsls r6, r4, #31 - 1798a: d502 bpl.n 17992 <_svfprintf_r+0x436> - 1798c: 2b00 cmp r3, #0 - 1798e: f040 8403 bne.w 18198 <_svfprintf_r+0xc3c> - 17992: 2202 movs r2, #2 - 17994: 2100 movs r1, #0 - 17996: 9808 ldr r0, [sp, #32] - 17998: f88d 1067 strb.w r1, [sp, #103] ; 0x67 - 1799c: 1c45 adds r5, r0, #1 - 1799e: f000 80d9 beq.w 17b54 <_svfprintf_r+0x5f8> - 179a2: f024 0580 bic.w r5, r4, #128 ; 0x80 - 179a6: 9506 str r5, [sp, #24] - 179a8: 2b00 cmp r3, #0 - 179aa: f040 80d2 bne.w 17b52 <_svfprintf_r+0x5f6> - 179ae: 2800 cmp r0, #0 - 179b0: f040 8150 bne.w 17c54 <_svfprintf_r+0x6f8> - 179b4: 2a00 cmp r2, #0 - 179b6: f040 836e bne.w 18096 <_svfprintf_r+0xb3a> - 179ba: f014 0301 ands.w r3, r4, #1 - 179be: 930a str r3, [sp, #40] ; 0x28 - 179c0: f000 83e3 beq.w 1818a <_svfprintf_r+0xc2e> - 179c4: 2330 movs r3, #48 ; 0x30 - 179c6: f88d 30b7 strb.w r3, [sp, #183] ; 0xb7 - 179ca: f10d 05b7 add.w r5, sp, #183 ; 0xb7 - 179ce: e0dd b.n 17b8c <_svfprintf_r+0x630> - 179d0: 910b str r1, [sp, #44] ; 0x2c - 179d2: 9508 str r5, [sp, #32] - 179d4: 2b00 cmp r3, #0 - 179d6: f040 86e1 bne.w 1879c <_svfprintf_r+0x1240> - 179da: 9a0d ldr r2, [sp, #52] ; 0x34 - 179dc: 06e6 lsls r6, r4, #27 - 179de: f852 3b04 ldr.w r3, [r2], #4 - 179e2: 920d str r2, [sp, #52] ; 0x34 - 179e4: d402 bmi.n 179ec <_svfprintf_r+0x490> - 179e6: 0660 lsls r0, r4, #25 - 179e8: bf48 it mi - 179ea: b29b uxthmi r3, r3 - 179ec: 2201 movs r2, #1 - 179ee: e7d1 b.n 17994 <_svfprintf_r+0x438> - 179f0: 9e0d ldr r6, [sp, #52] ; 0x34 - 179f2: 9508 str r5, [sp, #32] - 179f4: f856 5b04 ldr.w r5, [r6], #4 - 179f8: 9b08 ldr r3, [sp, #32] - 179fa: 910b str r1, [sp, #44] ; 0x2c - 179fc: f04f 0a00 mov.w sl, #0 - 17a00: f88d a067 strb.w sl, [sp, #103] ; 0x67 - 17a04: 2d00 cmp r5, #0 - 17a06: f000 8522 beq.w 1844e <_svfprintf_r+0xef2> - 17a0a: 1c5a adds r2, r3, #1 - 17a0c: f000 8486 beq.w 1831c <_svfprintf_r+0xdc0> - 17a10: 461a mov r2, r3 - 17a12: 4651 mov r1, sl - 17a14: 4628 mov r0, r5 - 17a16: f003 ffb3 bl 1b980 - 17a1a: 2800 cmp r0, #0 - 17a1c: f000 86a4 beq.w 18768 <_svfprintf_r+0x120c> - 17a20: 1b43 subs r3, r0, r5 - 17a22: 930a str r3, [sp, #40] ; 0x28 - 17a24: ea23 73e3 bic.w r3, r3, r3, asr #31 - 17a28: f89d 1067 ldrb.w r1, [sp, #103] ; 0x67 - 17a2c: f8cd a020 str.w sl, [sp, #32] - 17a30: 960d str r6, [sp, #52] ; 0x34 - 17a32: 9406 str r4, [sp, #24] - 17a34: 9307 str r3, [sp, #28] - 17a36: f8cd a03c str.w sl, [sp, #60] ; 0x3c - 17a3a: e742 b.n 178c2 <_svfprintf_r+0x366> - 17a3c: 9a0d ldr r2, [sp, #52] ; 0x34 - 17a3e: 910b str r1, [sp, #44] ; 0x2c - 17a40: f852 3b04 ldr.w r3, [r2], #4 - 17a44: 920d str r2, [sp, #52] ; 0x34 - 17a46: f647 0230 movw r2, #30768 ; 0x7830 - 17a4a: f8ad 2068 strh.w r2, [sp, #104] ; 0x68 - 17a4e: 4a34 ldr r2, [pc, #208] ; (17b20 <_svfprintf_r+0x5c4>) - 17a50: 9213 str r2, [sp, #76] ; 0x4c - 17a52: 9508 str r5, [sp, #32] - 17a54: f044 0402 orr.w r4, r4, #2 - 17a58: 2202 movs r2, #2 - 17a5a: 2778 movs r7, #120 ; 0x78 - 17a5c: e79a b.n 17994 <_svfprintf_r+0x438> - 17a5e: 910b str r1, [sp, #44] ; 0x2c - 17a60: 9508 str r5, [sp, #32] - 17a62: 2b00 cmp r3, #0 - 17a64: f040 86a6 bne.w 187b4 <_svfprintf_r+0x1258> - 17a68: 9a0d ldr r2, [sp, #52] ; 0x34 - 17a6a: f014 0110 ands.w r1, r4, #16 - 17a6e: f852 3b04 ldr.w r3, [r2], #4 - 17a72: 920d str r2, [sp, #52] ; 0x34 - 17a74: d12e bne.n 17ad4 <_svfprintf_r+0x578> - 17a76: f014 0240 ands.w r2, r4, #64 ; 0x40 - 17a7a: d08b beq.n 17994 <_svfprintf_r+0x438> - 17a7c: b29b uxth r3, r3 - 17a7e: 460a mov r2, r1 - 17a80: e788 b.n 17994 <_svfprintf_r+0x438> - 17a82: 2b00 cmp r3, #0 - 17a84: f040 869a bne.w 187bc <_svfprintf_r+0x1260> - 17a88: 9a0d ldr r2, [sp, #52] ; 0x34 - 17a8a: 06e0 lsls r0, r4, #27 - 17a8c: f102 0304 add.w r3, r2, #4 - 17a90: d407 bmi.n 17aa2 <_svfprintf_r+0x546> - 17a92: 0661 lsls r1, r4, #25 - 17a94: 9a0d ldr r2, [sp, #52] ; 0x34 - 17a96: d504 bpl.n 17aa2 <_svfprintf_r+0x546> - 17a98: 6812 ldr r2, [r2, #0] - 17a9a: 9909 ldr r1, [sp, #36] ; 0x24 - 17a9c: 8011 strh r1, [r2, #0] - 17a9e: 930d str r3, [sp, #52] ; 0x34 - 17aa0: e583 b.n 175aa <_svfprintf_r+0x4e> - 17aa2: 6812 ldr r2, [r2, #0] - 17aa4: 9909 ldr r1, [sp, #36] ; 0x24 - 17aa6: 6011 str r1, [r2, #0] - 17aa8: 930d str r3, [sp, #52] ; 0x34 - 17aaa: e57e b.n 175aa <_svfprintf_r+0x4e> - 17aac: f044 0408 orr.w r4, r4, #8 - 17ab0: e59b b.n 175ea <_svfprintf_r+0x8e> - 17ab2: 9a0d ldr r2, [sp, #52] ; 0x34 - 17ab4: 910b str r1, [sp, #44] ; 0x2c - 17ab6: f852 3b04 ldr.w r3, [r2], #4 - 17aba: 9508 str r5, [sp, #32] - 17abc: f044 0410 orr.w r4, r4, #16 - 17ac0: 920d str r2, [sp, #52] ; 0x34 - 17ac2: e793 b.n 179ec <_svfprintf_r+0x490> - 17ac4: 9a0d ldr r2, [sp, #52] ; 0x34 - 17ac6: 910b str r1, [sp, #44] ; 0x2c - 17ac8: f852 3b04 ldr.w r3, [r2], #4 - 17acc: 9508 str r5, [sp, #32] - 17ace: f044 0410 orr.w r4, r4, #16 - 17ad2: 920d str r2, [sp, #52] ; 0x34 - 17ad4: 2200 movs r2, #0 - 17ad6: e75d b.n 17994 <_svfprintf_r+0x438> - 17ad8: 9b0d ldr r3, [sp, #52] ; 0x34 - 17ada: 910b str r1, [sp, #44] ; 0x2c - 17adc: 2200 movs r2, #0 - 17ade: f88d 2067 strb.w r2, [sp, #103] ; 0x67 - 17ae2: f853 2b04 ldr.w r2, [r3], #4 - 17ae6: 930d str r3, [sp, #52] ; 0x34 - 17ae8: 2301 movs r3, #1 - 17aea: f88d 2090 strb.w r2, [sp, #144] ; 0x90 - 17aee: 9307 str r3, [sp, #28] - 17af0: 930a str r3, [sp, #40] ; 0x28 - 17af2: ad24 add r5, sp, #144 ; 0x90 - 17af4: e61b b.n 1772e <_svfprintf_r+0x1d2> - 17af6: 910b str r1, [sp, #44] ; 0x2c - 17af8: 9508 str r5, [sp, #32] - 17afa: 2b00 cmp r3, #0 - 17afc: f040 8662 bne.w 187c4 <_svfprintf_r+0x1268> - 17b00: 4b08 ldr r3, [pc, #32] ; (17b24 <_svfprintf_r+0x5c8>) - 17b02: 9313 str r3, [sp, #76] ; 0x4c - 17b04: e737 b.n 17976 <_svfprintf_r+0x41a> - 17b06: f044 0440 orr.w r4, r4, #64 ; 0x40 - 17b0a: e56e b.n 175ea <_svfprintf_r+0x8e> - 17b0c: f044 0401 orr.w r4, r4, #1 - 17b10: e56b b.n 175ea <_svfprintf_r+0x8e> - 17b12: bf00 nop - 17b14: 7fefffff .word 0x7fefffff - 17b18: 0002c140 .word 0x0002c140 - 17b1c: 0002c144 .word 0x0002c144 - 17b20: 0002c164 .word 0x0002c164 - 17b24: 0002c150 .word 0x0002c150 - 17b28: 2800 cmp r0, #0 - 17b2a: f47f ad5e bne.w 175ea <_svfprintf_r+0x8e> - 17b2e: 2301 movs r3, #1 - 17b30: 2020 movs r0, #32 - 17b32: e55a b.n 175ea <_svfprintf_r+0x8e> - 17b34: 910b str r1, [sp, #44] ; 0x2c - 17b36: 9508 str r5, [sp, #32] - 17b38: 2b00 cmp r3, #0 - 17b3a: f040 8624 bne.w 18786 <_svfprintf_r+0x122a> - 17b3e: 9b0d ldr r3, [sp, #52] ; 0x34 - 17b40: f853 2b04 ldr.w r2, [r3], #4 - 17b44: 930d str r3, [sp, #52] ; 0x34 - 17b46: f044 0410 orr.w r4, r4, #16 - 17b4a: e6cf b.n 178ec <_svfprintf_r+0x390> - 17b4c: f044 0480 orr.w r4, r4, #128 ; 0x80 - 17b50: e54b b.n 175ea <_svfprintf_r+0x8e> - 17b52: 9c06 ldr r4, [sp, #24] - 17b54: 2a01 cmp r2, #1 - 17b56: f43f aed9 beq.w 1790c <_svfprintf_r+0x3b0> - 17b5a: 2a02 cmp r2, #2 - 17b5c: f000 8081 beq.w 17c62 <_svfprintf_r+0x706> - 17b60: ad2e add r5, sp, #184 ; 0xb8 - 17b62: f003 0207 and.w r2, r3, #7 - 17b66: 3230 adds r2, #48 ; 0x30 - 17b68: 08db lsrs r3, r3, #3 - 17b6a: 4628 mov r0, r5 - 17b6c: f805 2d01 strb.w r2, [r5, #-1]! - 17b70: d1f7 bne.n 17b62 <_svfprintf_r+0x606> - 17b72: 07e3 lsls r3, r4, #31 - 17b74: d57e bpl.n 17c74 <_svfprintf_r+0x718> - 17b76: 2a30 cmp r2, #48 ; 0x30 - 17b78: d07c beq.n 17c74 <_svfprintf_r+0x718> - 17b7a: 2330 movs r3, #48 ; 0x30 - 17b7c: 3802 subs r0, #2 - 17b7e: f805 3c01 strb.w r3, [r5, #-1] - 17b82: ab2e add r3, sp, #184 ; 0xb8 - 17b84: 1a1b subs r3, r3, r0 - 17b86: 9406 str r4, [sp, #24] - 17b88: 930a str r3, [sp, #40] ; 0x28 - 17b8a: 4605 mov r5, r0 - 17b8c: 9b08 ldr r3, [sp, #32] - 17b8e: 9a0a ldr r2, [sp, #40] ; 0x28 - 17b90: 4293 cmp r3, r2 - 17b92: bfb8 it lt - 17b94: 4613 movlt r3, r2 - 17b96: 9307 str r3, [sp, #28] - 17b98: 2300 movs r3, #0 - 17b9a: 930f str r3, [sp, #60] ; 0x3c - 17b9c: e691 b.n 178c2 <_svfprintf_r+0x366> - 17b9e: 2f65 cmp r7, #101 ; 0x65 - 17ba0: f340 8119 ble.w 17dd6 <_svfprintf_r+0x87a> - 17ba4: e9dd 0110 ldrd r0, r1, [sp, #64] ; 0x40 - 17ba8: 2200 movs r2, #0 - 17baa: 2300 movs r3, #0 - 17bac: f006 f852 bl 1dc54 <__aeabi_dcmpeq> - 17bb0: 2800 cmp r0, #0 - 17bb2: f000 81f8 beq.w 17fa6 <_svfprintf_r+0xa4a> - 17bb6: 9b22 ldr r3, [sp, #136] ; 0x88 - 17bb8: 4ab3 ldr r2, [pc, #716] ; (17e88 <_svfprintf_r+0x92c>) - 17bba: f8c9 2000 str.w r2, [r9] - 17bbe: 3301 adds r3, #1 - 17bc0: 3401 adds r4, #1 - 17bc2: 2201 movs r2, #1 - 17bc4: 2b07 cmp r3, #7 - 17bc6: 9423 str r4, [sp, #140] ; 0x8c - 17bc8: 9322 str r3, [sp, #136] ; 0x88 - 17bca: f8c9 2004 str.w r2, [r9, #4] - 17bce: f300 8417 bgt.w 18400 <_svfprintf_r+0xea4> - 17bd2: f109 0908 add.w r9, r9, #8 - 17bd6: 9b1b ldr r3, [sp, #108] ; 0x6c - 17bd8: 9a12 ldr r2, [sp, #72] ; 0x48 - 17bda: 4293 cmp r3, r2 - 17bdc: db03 blt.n 17be6 <_svfprintf_r+0x68a> - 17bde: 9b06 ldr r3, [sp, #24] - 17be0: 07dd lsls r5, r3, #31 - 17be2: f57f ae01 bpl.w 177e8 <_svfprintf_r+0x28c> - 17be6: 9b14 ldr r3, [sp, #80] ; 0x50 - 17be8: 9a15 ldr r2, [sp, #84] ; 0x54 - 17bea: 441c add r4, r3 - 17bec: e9c9 2300 strd r2, r3, [r9] - 17bf0: 9b22 ldr r3, [sp, #136] ; 0x88 - 17bf2: 9423 str r4, [sp, #140] ; 0x8c - 17bf4: 3301 adds r3, #1 - 17bf6: 2b07 cmp r3, #7 - 17bf8: 9322 str r3, [sp, #136] ; 0x88 - 17bfa: f300 841b bgt.w 18434 <_svfprintf_r+0xed8> - 17bfe: f109 0908 add.w r9, r9, #8 - 17c02: 9b12 ldr r3, [sp, #72] ; 0x48 - 17c04: 1e5d subs r5, r3, #1 - 17c06: 2d00 cmp r5, #0 - 17c08: f77f adee ble.w 177e8 <_svfprintf_r+0x28c> - 17c0c: 2d10 cmp r5, #16 - 17c0e: 9b22 ldr r3, [sp, #136] ; 0x88 - 17c10: 4e9e ldr r6, [pc, #632] ; (17e8c <_svfprintf_r+0x930>) - 17c12: f340 80ca ble.w 17daa <_svfprintf_r+0x84e> - 17c16: f8dd a030 ldr.w sl, [sp, #48] ; 0x30 - 17c1a: 2710 movs r7, #16 - 17c1c: e005 b.n 17c2a <_svfprintf_r+0x6ce> - 17c1e: f109 0908 add.w r9, r9, #8 - 17c22: 3d10 subs r5, #16 - 17c24: 2d10 cmp r5, #16 - 17c26: f340 80c0 ble.w 17daa <_svfprintf_r+0x84e> - 17c2a: 3301 adds r3, #1 - 17c2c: 3410 adds r4, #16 - 17c2e: 2b07 cmp r3, #7 - 17c30: e9c9 6700 strd r6, r7, [r9] - 17c34: e9cd 3422 strd r3, r4, [sp, #136] ; 0x88 - 17c38: ddf1 ble.n 17c1e <_svfprintf_r+0x6c2> - 17c3a: aa21 add r2, sp, #132 ; 0x84 - 17c3c: 4659 mov r1, fp - 17c3e: 4650 mov r0, sl - 17c40: f004 fb3e bl 1c2c0 <__ssprint_r> - 17c44: 2800 cmp r0, #0 - 17c46: f040 80ae bne.w 17da6 <_svfprintf_r+0x84a> - 17c4a: e9dd 3422 ldrd r3, r4, [sp, #136] ; 0x88 - 17c4e: f10d 09b8 add.w r9, sp, #184 ; 0xb8 - 17c52: e7e6 b.n 17c22 <_svfprintf_r+0x6c6> - 17c54: 2a01 cmp r2, #1 - 17c56: f000 854c beq.w 186f2 <_svfprintf_r+0x1196> - 17c5a: 2a02 cmp r2, #2 - 17c5c: 9c06 ldr r4, [sp, #24] - 17c5e: f47f af7f bne.w 17b60 <_svfprintf_r+0x604> - 17c62: 9813 ldr r0, [sp, #76] ; 0x4c - 17c64: ad2e add r5, sp, #184 ; 0xb8 - 17c66: f003 020f and.w r2, r3, #15 - 17c6a: 091b lsrs r3, r3, #4 - 17c6c: 5c82 ldrb r2, [r0, r2] - 17c6e: f805 2d01 strb.w r2, [r5, #-1]! - 17c72: d1f8 bne.n 17c66 <_svfprintf_r+0x70a> - 17c74: ab2e add r3, sp, #184 ; 0xb8 - 17c76: 1b5b subs r3, r3, r5 - 17c78: 9406 str r4, [sp, #24] - 17c7a: 930a str r3, [sp, #40] ; 0x28 - 17c7c: e786 b.n 17b8c <_svfprintf_r+0x630> - 17c7e: 9b0b ldr r3, [sp, #44] ; 0x2c - 17c80: 9a07 ldr r2, [sp, #28] - 17c82: eba3 0a02 sub.w sl, r3, r2 - 17c86: f1ba 0f00 cmp.w sl, #0 - 17c8a: f77f ad92 ble.w 177b2 <_svfprintf_r+0x256> - 17c8e: f1ba 0f10 cmp.w sl, #16 - 17c92: 9b22 ldr r3, [sp, #136] ; 0x88 - 17c94: 4e7d ldr r6, [pc, #500] ; (17e8c <_svfprintf_r+0x930>) - 17c96: dd2e ble.n 17cf6 <_svfprintf_r+0x79a> - 17c98: 4632 mov r2, r6 - 17c9a: 950e str r5, [sp, #56] ; 0x38 - 17c9c: 465e mov r6, fp - 17c9e: 9d0c ldr r5, [sp, #48] ; 0x30 - 17ca0: 46bb mov fp, r7 - 17ca2: 4617 mov r7, r2 - 17ca4: e006 b.n 17cb4 <_svfprintf_r+0x758> - 17ca6: f1aa 0a10 sub.w sl, sl, #16 - 17caa: f1ba 0f10 cmp.w sl, #16 - 17cae: f109 0908 add.w r9, r9, #8 - 17cb2: dd1b ble.n 17cec <_svfprintf_r+0x790> - 17cb4: 3301 adds r3, #1 - 17cb6: 3410 adds r4, #16 - 17cb8: 2210 movs r2, #16 - 17cba: 2b07 cmp r3, #7 - 17cbc: e9cd 3422 strd r3, r4, [sp, #136] ; 0x88 - 17cc0: f8c9 7000 str.w r7, [r9] - 17cc4: f8c9 2004 str.w r2, [r9, #4] - 17cc8: dded ble.n 17ca6 <_svfprintf_r+0x74a> - 17cca: aa21 add r2, sp, #132 ; 0x84 - 17ccc: 4631 mov r1, r6 - 17cce: 4628 mov r0, r5 - 17cd0: f10d 09b8 add.w r9, sp, #184 ; 0xb8 - 17cd4: f004 faf4 bl 1c2c0 <__ssprint_r> - 17cd8: 2800 cmp r0, #0 - 17cda: f040 8162 bne.w 17fa2 <_svfprintf_r+0xa46> - 17cde: f1aa 0a10 sub.w sl, sl, #16 - 17ce2: f1ba 0f10 cmp.w sl, #16 - 17ce6: e9dd 3422 ldrd r3, r4, [sp, #136] ; 0x88 - 17cea: dce3 bgt.n 17cb4 <_svfprintf_r+0x758> - 17cec: 463a mov r2, r7 - 17cee: 9d0e ldr r5, [sp, #56] ; 0x38 - 17cf0: 465f mov r7, fp - 17cf2: 46b3 mov fp, r6 - 17cf4: 4616 mov r6, r2 - 17cf6: 3301 adds r3, #1 - 17cf8: 4454 add r4, sl - 17cfa: 2b07 cmp r3, #7 - 17cfc: e9cd 3422 strd r3, r4, [sp, #136] ; 0x88 - 17d00: f8c9 6000 str.w r6, [r9] - 17d04: f8c9 a004 str.w sl, [r9, #4] - 17d08: f300 8387 bgt.w 1841a <_svfprintf_r+0xebe> - 17d0c: f109 0908 add.w r9, r9, #8 - 17d10: e54f b.n 177b2 <_svfprintf_r+0x256> - 17d12: f1ba 0f10 cmp.w sl, #16 - 17d16: 9b22 ldr r3, [sp, #136] ; 0x88 - 17d18: 4e5c ldr r6, [pc, #368] ; (17e8c <_svfprintf_r+0x930>) - 17d1a: dd2e ble.n 17d7a <_svfprintf_r+0x81e> - 17d1c: 4632 mov r2, r6 - 17d1e: 9508 str r5, [sp, #32] - 17d20: 465e mov r6, fp - 17d22: 9d0c ldr r5, [sp, #48] ; 0x30 - 17d24: 46bb mov fp, r7 - 17d26: 4617 mov r7, r2 - 17d28: e006 b.n 17d38 <_svfprintf_r+0x7dc> - 17d2a: f1aa 0a10 sub.w sl, sl, #16 - 17d2e: f1ba 0f10 cmp.w sl, #16 - 17d32: f109 0908 add.w r9, r9, #8 - 17d36: dd1b ble.n 17d70 <_svfprintf_r+0x814> - 17d38: 3301 adds r3, #1 - 17d3a: 3410 adds r4, #16 - 17d3c: 2210 movs r2, #16 - 17d3e: 2b07 cmp r3, #7 - 17d40: e9cd 3422 strd r3, r4, [sp, #136] ; 0x88 - 17d44: f8c9 7000 str.w r7, [r9] - 17d48: f8c9 2004 str.w r2, [r9, #4] - 17d4c: dded ble.n 17d2a <_svfprintf_r+0x7ce> - 17d4e: aa21 add r2, sp, #132 ; 0x84 - 17d50: 4631 mov r1, r6 - 17d52: 4628 mov r0, r5 - 17d54: f004 fab4 bl 1c2c0 <__ssprint_r> - 17d58: 2800 cmp r0, #0 - 17d5a: f040 8122 bne.w 17fa2 <_svfprintf_r+0xa46> - 17d5e: f1aa 0a10 sub.w sl, sl, #16 - 17d62: f1ba 0f10 cmp.w sl, #16 - 17d66: e9dd 3422 ldrd r3, r4, [sp, #136] ; 0x88 - 17d6a: f10d 09b8 add.w r9, sp, #184 ; 0xb8 - 17d6e: dce3 bgt.n 17d38 <_svfprintf_r+0x7dc> - 17d70: 463a mov r2, r7 - 17d72: 9d08 ldr r5, [sp, #32] - 17d74: 465f mov r7, fp - 17d76: 46b3 mov fp, r6 - 17d78: 4616 mov r6, r2 - 17d7a: 3301 adds r3, #1 - 17d7c: 4454 add r4, sl - 17d7e: 2b07 cmp r3, #7 - 17d80: e9cd 3422 strd r3, r4, [sp, #136] ; 0x88 - 17d84: f8c9 6000 str.w r6, [r9] - 17d88: f8c9 a004 str.w sl, [r9, #4] - 17d8c: f300 81cf bgt.w 1812e <_svfprintf_r+0xbd2> - 17d90: f109 0908 add.w r9, r9, #8 - 17d94: e515 b.n 177c2 <_svfprintf_r+0x266> - 17d96: 980c ldr r0, [sp, #48] ; 0x30 - 17d98: aa21 add r2, sp, #132 ; 0x84 - 17d9a: 4659 mov r1, fp - 17d9c: f004 fa90 bl 1c2c0 <__ssprint_r> - 17da0: 2800 cmp r0, #0 - 17da2: f43f ad35 beq.w 17810 <_svfprintf_r+0x2b4> - 17da6: 46da mov sl, fp - 17da8: e540 b.n 1782c <_svfprintf_r+0x2d0> - 17daa: 3301 adds r3, #1 - 17dac: 442c add r4, r5 - 17dae: 2b07 cmp r3, #7 - 17db0: f8c9 6000 str.w r6, [r9] - 17db4: f8c9 5004 str.w r5, [r9, #4] - 17db8: e9cd 3422 strd r3, r4, [sp, #136] ; 0x88 - 17dbc: f77f ad12 ble.w 177e4 <_svfprintf_r+0x288> - 17dc0: 980c ldr r0, [sp, #48] ; 0x30 - 17dc2: aa21 add r2, sp, #132 ; 0x84 - 17dc4: 4659 mov r1, fp - 17dc6: f004 fa7b bl 1c2c0 <__ssprint_r> - 17dca: 2800 cmp r0, #0 - 17dcc: d1eb bne.n 17da6 <_svfprintf_r+0x84a> - 17dce: 9c23 ldr r4, [sp, #140] ; 0x8c - 17dd0: f10d 09b8 add.w r9, sp, #184 ; 0xb8 - 17dd4: e508 b.n 177e8 <_svfprintf_r+0x28c> - 17dd6: 9b12 ldr r3, [sp, #72] ; 0x48 - 17dd8: 9f22 ldr r7, [sp, #136] ; 0x88 - 17dda: 2b01 cmp r3, #1 - 17ddc: f104 0401 add.w r4, r4, #1 - 17de0: f107 0701 add.w r7, r7, #1 - 17de4: f109 0a08 add.w sl, r9, #8 - 17de8: f340 815a ble.w 180a0 <_svfprintf_r+0xb44> - 17dec: 2301 movs r3, #1 - 17dee: 2f07 cmp r7, #7 - 17df0: e9cd 7422 strd r7, r4, [sp, #136] ; 0x88 - 17df4: f8c9 5000 str.w r5, [r9] - 17df8: f8c9 3004 str.w r3, [r9, #4] - 17dfc: f300 81a8 bgt.w 18150 <_svfprintf_r+0xbf4> - 17e00: 9b14 ldr r3, [sp, #80] ; 0x50 - 17e02: 9a15 ldr r2, [sp, #84] ; 0x54 - 17e04: 3701 adds r7, #1 - 17e06: 441c add r4, r3 - 17e08: 2f07 cmp r7, #7 - 17e0a: e9ca 2300 strd r2, r3, [sl] - 17e0e: e9cd 7422 strd r7, r4, [sp, #136] ; 0x88 - 17e12: f300 81aa bgt.w 1816a <_svfprintf_r+0xc0e> - 17e16: f10a 0a08 add.w sl, sl, #8 - 17e1a: 9b12 ldr r3, [sp, #72] ; 0x48 - 17e1c: e9dd 0110 ldrd r0, r1, [sp, #64] ; 0x40 - 17e20: f103 39ff add.w r9, r3, #4294967295 ; 0xffffffff - 17e24: 2200 movs r2, #0 - 17e26: 2300 movs r3, #0 - 17e28: f005 ff14 bl 1dc54 <__aeabi_dcmpeq> - 17e2c: 2800 cmp r0, #0 - 17e2e: f040 8152 bne.w 180d6 <_svfprintf_r+0xb7a> - 17e32: 3701 adds r7, #1 - 17e34: 3501 adds r5, #1 - 17e36: 444c add r4, r9 - 17e38: 2f07 cmp r7, #7 - 17e3a: e9cd 7422 strd r7, r4, [sp, #136] ; 0x88 - 17e3e: f8ca 5000 str.w r5, [sl] - 17e42: f8ca 9004 str.w r9, [sl, #4] - 17e46: f300 8139 bgt.w 180bc <_svfprintf_r+0xb60> - 17e4a: f10a 0a08 add.w sl, sl, #8 - 17e4e: 9b16 ldr r3, [sp, #88] ; 0x58 - 17e50: f8ca 3004 str.w r3, [sl, #4] - 17e54: 3701 adds r7, #1 - 17e56: 441c add r4, r3 - 17e58: 2f07 cmp r7, #7 - 17e5a: ab1d add r3, sp, #116 ; 0x74 - 17e5c: e9cd 7422 strd r7, r4, [sp, #136] ; 0x88 - 17e60: f8ca 3000 str.w r3, [sl] - 17e64: dcac bgt.n 17dc0 <_svfprintf_r+0x864> - 17e66: f10a 0908 add.w r9, sl, #8 - 17e6a: e4bd b.n 177e8 <_svfprintf_r+0x28c> - 17e6c: 2e10 cmp r6, #16 - 17e6e: 9a22 ldr r2, [sp, #136] ; 0x88 - 17e70: dd35 ble.n 17ede <_svfprintf_r+0x982> - 17e72: 4659 mov r1, fp - 17e74: 9317 str r3, [sp, #92] ; 0x5c - 17e76: 46b3 mov fp, r6 - 17e78: 4623 mov r3, r4 - 17e7a: 462e mov r6, r5 - 17e7c: 9c0c ldr r4, [sp, #48] ; 0x30 - 17e7e: f04f 0a10 mov.w sl, #16 - 17e82: 460d mov r5, r1 - 17e84: e00b b.n 17e9e <_svfprintf_r+0x942> - 17e86: bf00 nop - 17e88: 0002c180 .word 0x0002c180 - 17e8c: 0002c194 .word 0x0002c194 - 17e90: f1ab 0b10 sub.w fp, fp, #16 - 17e94: f1bb 0f10 cmp.w fp, #16 - 17e98: f109 0908 add.w r9, r9, #8 - 17e9c: dd19 ble.n 17ed2 <_svfprintf_r+0x976> - 17e9e: 3201 adds r2, #1 - 17ea0: 49bb ldr r1, [pc, #748] ; (18190 <_svfprintf_r+0xc34>) - 17ea2: 3310 adds r3, #16 - 17ea4: 2a07 cmp r2, #7 - 17ea6: e9c9 1a00 strd r1, sl, [r9] - 17eaa: e9cd 2322 strd r2, r3, [sp, #136] ; 0x88 - 17eae: ddef ble.n 17e90 <_svfprintf_r+0x934> - 17eb0: aa21 add r2, sp, #132 ; 0x84 - 17eb2: 4629 mov r1, r5 - 17eb4: 4620 mov r0, r4 - 17eb6: f10d 09b8 add.w r9, sp, #184 ; 0xb8 - 17eba: f004 fa01 bl 1c2c0 <__ssprint_r> - 17ebe: 2800 cmp r0, #0 - 17ec0: f040 829b bne.w 183fa <_svfprintf_r+0xe9e> - 17ec4: f1ab 0b10 sub.w fp, fp, #16 - 17ec8: f1bb 0f10 cmp.w fp, #16 - 17ecc: e9dd 2322 ldrd r2, r3, [sp, #136] ; 0x88 - 17ed0: dce5 bgt.n 17e9e <_svfprintf_r+0x942> - 17ed2: 4629 mov r1, r5 - 17ed4: 461c mov r4, r3 - 17ed6: 9b17 ldr r3, [sp, #92] ; 0x5c - 17ed8: 4635 mov r5, r6 - 17eda: 465e mov r6, fp - 17edc: 468b mov fp, r1 - 17ede: 3201 adds r2, #1 - 17ee0: 49ab ldr r1, [pc, #684] ; (18190 <_svfprintf_r+0xc34>) - 17ee2: f8c9 6004 str.w r6, [r9, #4] - 17ee6: 4434 add r4, r6 - 17ee8: 2a07 cmp r2, #7 - 17eea: e9cd 2422 strd r2, r4, [sp, #136] ; 0x88 - 17eee: f8c9 1000 str.w r1, [r9] - 17ef2: f300 8273 bgt.w 183dc <_svfprintf_r+0xe80> - 17ef6: f109 0908 add.w r9, r9, #8 - 17efa: e42f b.n 1775c <_svfprintf_r+0x200> - 17efc: 980c ldr r0, [sp, #48] ; 0x30 - 17efe: aa21 add r2, sp, #132 ; 0x84 - 17f00: 4659 mov r1, fp - 17f02: f004 f9dd bl 1c2c0 <__ssprint_r> - 17f06: 2800 cmp r0, #0 - 17f08: f47f af4d bne.w 17da6 <_svfprintf_r+0x84a> - 17f0c: 9c23 ldr r4, [sp, #140] ; 0x8c - 17f0e: f10d 09b8 add.w r9, sp, #184 ; 0xb8 - 17f12: e44a b.n 177aa <_svfprintf_r+0x24e> - 17f14: 980c ldr r0, [sp, #48] ; 0x30 - 17f16: 9317 str r3, [sp, #92] ; 0x5c - 17f18: aa21 add r2, sp, #132 ; 0x84 - 17f1a: 4659 mov r1, fp - 17f1c: f004 f9d0 bl 1c2c0 <__ssprint_r> - 17f20: 2800 cmp r0, #0 - 17f22: f47f af40 bne.w 17da6 <_svfprintf_r+0x84a> - 17f26: 9c23 ldr r4, [sp, #140] ; 0x8c - 17f28: 9b17 ldr r3, [sp, #92] ; 0x5c - 17f2a: f10d 09b8 add.w r9, sp, #184 ; 0xb8 - 17f2e: e42a b.n 17786 <_svfprintf_r+0x22a> - 17f30: 2d10 cmp r5, #16 - 17f32: 9b22 ldr r3, [sp, #136] ; 0x88 - 17f34: dd1f ble.n 17f76 <_svfprintf_r+0xa1a> - 17f36: 9f0c ldr r7, [sp, #48] ; 0x30 - 17f38: 2610 movs r6, #16 - 17f3a: e004 b.n 17f46 <_svfprintf_r+0x9ea> - 17f3c: 3d10 subs r5, #16 - 17f3e: 2d10 cmp r5, #16 - 17f40: f109 0908 add.w r9, r9, #8 - 17f44: dd17 ble.n 17f76 <_svfprintf_r+0xa1a> - 17f46: 3301 adds r3, #1 - 17f48: 4a91 ldr r2, [pc, #580] ; (18190 <_svfprintf_r+0xc34>) - 17f4a: 3410 adds r4, #16 - 17f4c: 2b07 cmp r3, #7 - 17f4e: e9c9 2600 strd r2, r6, [r9] - 17f52: e9cd 3422 strd r3, r4, [sp, #136] ; 0x88 - 17f56: ddf1 ble.n 17f3c <_svfprintf_r+0x9e0> - 17f58: aa21 add r2, sp, #132 ; 0x84 - 17f5a: 4659 mov r1, fp - 17f5c: 4638 mov r0, r7 - 17f5e: f10d 09b8 add.w r9, sp, #184 ; 0xb8 - 17f62: f004 f9ad bl 1c2c0 <__ssprint_r> - 17f66: 2800 cmp r0, #0 - 17f68: f47f af1d bne.w 17da6 <_svfprintf_r+0x84a> - 17f6c: 3d10 subs r5, #16 - 17f6e: 2d10 cmp r5, #16 - 17f70: e9dd 3422 ldrd r3, r4, [sp, #136] ; 0x88 - 17f74: dce7 bgt.n 17f46 <_svfprintf_r+0x9ea> - 17f76: 3301 adds r3, #1 - 17f78: 4a85 ldr r2, [pc, #532] ; (18190 <_svfprintf_r+0xc34>) - 17f7a: f8c9 5004 str.w r5, [r9, #4] - 17f7e: 442c add r4, r5 - 17f80: 2b07 cmp r3, #7 - 17f82: e9cd 3422 strd r3, r4, [sp, #136] ; 0x88 - 17f86: f8c9 2000 str.w r2, [r9] - 17f8a: f77f ac36 ble.w 177fa <_svfprintf_r+0x29e> - 17f8e: 980c ldr r0, [sp, #48] ; 0x30 - 17f90: aa21 add r2, sp, #132 ; 0x84 - 17f92: 4659 mov r1, fp - 17f94: f004 f994 bl 1c2c0 <__ssprint_r> - 17f98: 2800 cmp r0, #0 - 17f9a: f47f af04 bne.w 17da6 <_svfprintf_r+0x84a> - 17f9e: 9c23 ldr r4, [sp, #140] ; 0x8c - 17fa0: e42b b.n 177fa <_svfprintf_r+0x29e> - 17fa2: 46b2 mov sl, r6 - 17fa4: e442 b.n 1782c <_svfprintf_r+0x2d0> - 17fa6: 991b ldr r1, [sp, #108] ; 0x6c - 17fa8: 2900 cmp r1, #0 - 17faa: f340 81e3 ble.w 18374 <_svfprintf_r+0xe18> - 17fae: 9e12 ldr r6, [sp, #72] ; 0x48 - 17fb0: 9b0f ldr r3, [sp, #60] ; 0x3c - 17fb2: 429e cmp r6, r3 - 17fb4: bfa8 it ge - 17fb6: 461e movge r6, r3 - 17fb8: 2e00 cmp r6, #0 - 17fba: dd0b ble.n 17fd4 <_svfprintf_r+0xa78> - 17fbc: 9b22 ldr r3, [sp, #136] ; 0x88 - 17fbe: 3301 adds r3, #1 - 17fc0: 4434 add r4, r6 - 17fc2: 2b07 cmp r3, #7 - 17fc4: e9c9 5600 strd r5, r6, [r9] - 17fc8: 9423 str r4, [sp, #140] ; 0x8c - 17fca: 9322 str r3, [sp, #136] ; 0x88 - 17fcc: f300 83ae bgt.w 1872c <_svfprintf_r+0x11d0> - 17fd0: f109 0908 add.w r9, r9, #8 - 17fd4: 9f0f ldr r7, [sp, #60] ; 0x3c - 17fd6: 2e00 cmp r6, #0 - 17fd8: bfa8 it ge - 17fda: 1bbf subge r7, r7, r6 - 17fdc: 2f00 cmp r7, #0 - 17fde: f300 8175 bgt.w 182cc <_svfprintf_r+0xd70> - 17fe2: 9a1b ldr r2, [sp, #108] ; 0x6c - 17fe4: 9b12 ldr r3, [sp, #72] ; 0x48 - 17fe6: 429a cmp r2, r3 - 17fe8: f280 8153 bge.w 18292 <_svfprintf_r+0xd36> - 17fec: 9b14 ldr r3, [sp, #80] ; 0x50 - 17fee: 9915 ldr r1, [sp, #84] ; 0x54 - 17ff0: 441c add r4, r3 - 17ff2: e9c9 1300 strd r1, r3, [r9] - 17ff6: 9b22 ldr r3, [sp, #136] ; 0x88 - 17ff8: 9423 str r4, [sp, #140] ; 0x8c - 17ffa: 3301 adds r3, #1 - 17ffc: 2b07 cmp r3, #7 - 17ffe: 9322 str r3, [sp, #136] ; 0x88 - 18000: f300 82fb bgt.w 185fa <_svfprintf_r+0x109e> - 18004: f109 0908 add.w r9, r9, #8 - 18008: 9b12 ldr r3, [sp, #72] ; 0x48 - 1800a: 990f ldr r1, [sp, #60] ; 0x3c - 1800c: 1a9a subs r2, r3, r2 - 1800e: 1a5e subs r6, r3, r1 - 18010: 4296 cmp r6, r2 - 18012: bfa8 it ge - 18014: 4616 movge r6, r2 - 18016: 2e00 cmp r6, #0 - 18018: dd0e ble.n 18038 <_svfprintf_r+0xadc> - 1801a: 9b22 ldr r3, [sp, #136] ; 0x88 - 1801c: f8c9 6004 str.w r6, [r9, #4] - 18020: 3301 adds r3, #1 - 18022: 440d add r5, r1 - 18024: 4434 add r4, r6 - 18026: 2b07 cmp r3, #7 - 18028: f8c9 5000 str.w r5, [r9] - 1802c: 9423 str r4, [sp, #140] ; 0x8c - 1802e: 9322 str r3, [sp, #136] ; 0x88 - 18030: f300 838b bgt.w 1874a <_svfprintf_r+0x11ee> - 18034: f109 0908 add.w r9, r9, #8 - 18038: 2e00 cmp r6, #0 - 1803a: bfac ite ge - 1803c: 1b95 subge r5, r2, r6 - 1803e: 4615 movlt r5, r2 - 18040: 2d00 cmp r5, #0 - 18042: f77f abd1 ble.w 177e8 <_svfprintf_r+0x28c> - 18046: 2d10 cmp r5, #16 - 18048: 9b22 ldr r3, [sp, #136] ; 0x88 - 1804a: 4e52 ldr r6, [pc, #328] ; (18194 <_svfprintf_r+0xc38>) - 1804c: f77f aead ble.w 17daa <_svfprintf_r+0x84e> - 18050: f8dd a030 ldr.w sl, [sp, #48] ; 0x30 - 18054: 2710 movs r7, #16 - 18056: e005 b.n 18064 <_svfprintf_r+0xb08> - 18058: f109 0908 add.w r9, r9, #8 - 1805c: 3d10 subs r5, #16 - 1805e: 2d10 cmp r5, #16 - 18060: f77f aea3 ble.w 17daa <_svfprintf_r+0x84e> - 18064: 3301 adds r3, #1 - 18066: 3410 adds r4, #16 - 18068: 2b07 cmp r3, #7 - 1806a: e9c9 6700 strd r6, r7, [r9] - 1806e: e9cd 3422 strd r3, r4, [sp, #136] ; 0x88 - 18072: ddf1 ble.n 18058 <_svfprintf_r+0xafc> - 18074: aa21 add r2, sp, #132 ; 0x84 - 18076: 4659 mov r1, fp - 18078: 4650 mov r0, sl - 1807a: f004 f921 bl 1c2c0 <__ssprint_r> - 1807e: 2800 cmp r0, #0 - 18080: f47f ae91 bne.w 17da6 <_svfprintf_r+0x84a> - 18084: e9dd 3422 ldrd r3, r4, [sp, #136] ; 0x88 - 18088: f10d 09b8 add.w r9, sp, #184 ; 0xb8 - 1808c: e7e6 b.n 1805c <_svfprintf_r+0xb00> - 1808e: 9a08 ldr r2, [sp, #32] - 18090: 2a00 cmp r2, #0 - 18092: f040 832e bne.w 186f2 <_svfprintf_r+0x1196> - 18096: 2300 movs r3, #0 - 18098: 9308 str r3, [sp, #32] - 1809a: 930a str r3, [sp, #40] ; 0x28 - 1809c: ad2e add r5, sp, #184 ; 0xb8 - 1809e: e575 b.n 17b8c <_svfprintf_r+0x630> - 180a0: 9b06 ldr r3, [sp, #24] - 180a2: 07d9 lsls r1, r3, #31 - 180a4: f53f aea2 bmi.w 17dec <_svfprintf_r+0x890> - 180a8: 2301 movs r3, #1 - 180aa: 2f07 cmp r7, #7 - 180ac: e9cd 7422 strd r7, r4, [sp, #136] ; 0x88 - 180b0: f8c9 5000 str.w r5, [r9] - 180b4: f8c9 3004 str.w r3, [r9, #4] - 180b8: f77f aec9 ble.w 17e4e <_svfprintf_r+0x8f2> - 180bc: 980c ldr r0, [sp, #48] ; 0x30 - 180be: aa21 add r2, sp, #132 ; 0x84 - 180c0: 4659 mov r1, fp - 180c2: f004 f8fd bl 1c2c0 <__ssprint_r> - 180c6: 2800 cmp r0, #0 - 180c8: f47f ae6d bne.w 17da6 <_svfprintf_r+0x84a> - 180cc: e9dd 7422 ldrd r7, r4, [sp, #136] ; 0x88 - 180d0: f10d 0ab8 add.w sl, sp, #184 ; 0xb8 - 180d4: e6bb b.n 17e4e <_svfprintf_r+0x8f2> - 180d6: f1b9 0f00 cmp.w r9, #0 - 180da: f77f aeb8 ble.w 17e4e <_svfprintf_r+0x8f2> - 180de: f1b9 0f10 cmp.w r9, #16 - 180e2: 4e2c ldr r6, [pc, #176] ; (18194 <_svfprintf_r+0xc38>) - 180e4: f340 81be ble.w 18464 <_svfprintf_r+0xf08> - 180e8: f8cd 8020 str.w r8, [sp, #32] - 180ec: 2510 movs r5, #16 - 180ee: f8dd 8030 ldr.w r8, [sp, #48] ; 0x30 - 180f2: e007 b.n 18104 <_svfprintf_r+0xba8> - 180f4: f10a 0a08 add.w sl, sl, #8 - 180f8: f1a9 0910 sub.w r9, r9, #16 - 180fc: f1b9 0f10 cmp.w r9, #16 - 18100: f340 81ae ble.w 18460 <_svfprintf_r+0xf04> - 18104: 3701 adds r7, #1 - 18106: 3410 adds r4, #16 - 18108: 2f07 cmp r7, #7 - 1810a: e9ca 6500 strd r6, r5, [sl] - 1810e: e9cd 7422 strd r7, r4, [sp, #136] ; 0x88 - 18112: ddef ble.n 180f4 <_svfprintf_r+0xb98> - 18114: aa21 add r2, sp, #132 ; 0x84 - 18116: 4659 mov r1, fp - 18118: 4640 mov r0, r8 - 1811a: f004 f8d1 bl 1c2c0 <__ssprint_r> - 1811e: 2800 cmp r0, #0 - 18120: f47f ae41 bne.w 17da6 <_svfprintf_r+0x84a> - 18124: e9dd 7422 ldrd r7, r4, [sp, #136] ; 0x88 - 18128: f10d 0ab8 add.w sl, sp, #184 ; 0xb8 - 1812c: e7e4 b.n 180f8 <_svfprintf_r+0xb9c> - 1812e: 980c ldr r0, [sp, #48] ; 0x30 - 18130: aa21 add r2, sp, #132 ; 0x84 - 18132: 4659 mov r1, fp - 18134: f004 f8c4 bl 1c2c0 <__ssprint_r> - 18138: 2800 cmp r0, #0 - 1813a: f47f ae34 bne.w 17da6 <_svfprintf_r+0x84a> - 1813e: 9c23 ldr r4, [sp, #140] ; 0x8c - 18140: f10d 09b8 add.w r9, sp, #184 ; 0xb8 - 18144: f7ff bb3d b.w 177c2 <_svfprintf_r+0x266> - 18148: 4253 negs r3, r2 - 1814a: 212d movs r1, #45 ; 0x2d - 1814c: 2201 movs r2, #1 - 1814e: e422 b.n 17996 <_svfprintf_r+0x43a> - 18150: 980c ldr r0, [sp, #48] ; 0x30 - 18152: aa21 add r2, sp, #132 ; 0x84 - 18154: 4659 mov r1, fp - 18156: f004 f8b3 bl 1c2c0 <__ssprint_r> - 1815a: 2800 cmp r0, #0 - 1815c: f47f ae23 bne.w 17da6 <_svfprintf_r+0x84a> - 18160: e9dd 7422 ldrd r7, r4, [sp, #136] ; 0x88 - 18164: f10d 0ab8 add.w sl, sp, #184 ; 0xb8 - 18168: e64a b.n 17e00 <_svfprintf_r+0x8a4> - 1816a: 980c ldr r0, [sp, #48] ; 0x30 - 1816c: aa21 add r2, sp, #132 ; 0x84 - 1816e: 4659 mov r1, fp - 18170: f004 f8a6 bl 1c2c0 <__ssprint_r> - 18174: 2800 cmp r0, #0 - 18176: f47f ae16 bne.w 17da6 <_svfprintf_r+0x84a> - 1817a: e9dd 7422 ldrd r7, r4, [sp, #136] ; 0x88 - 1817e: f10d 0ab8 add.w sl, sp, #184 ; 0xb8 - 18182: e64a b.n 17e1a <_svfprintf_r+0x8be> - 18184: 920d str r2, [sp, #52] ; 0x34 - 18186: f7ff ba30 b.w 175ea <_svfprintf_r+0x8e> - 1818a: ad2e add r5, sp, #184 ; 0xb8 - 1818c: e4fe b.n 17b8c <_svfprintf_r+0x630> - 1818e: bf00 nop - 18190: 0002c184 .word 0x0002c184 - 18194: 0002c194 .word 0x0002c194 - 18198: 2230 movs r2, #48 ; 0x30 - 1819a: f88d 2068 strb.w r2, [sp, #104] ; 0x68 - 1819e: f88d 7069 strb.w r7, [sp, #105] ; 0x69 - 181a2: f044 0402 orr.w r4, r4, #2 - 181a6: 2202 movs r2, #2 - 181a8: f7ff bbf4 b.w 17994 <_svfprintf_r+0x438> - 181ac: b212 sxth r2, r2 - 181ae: 4613 mov r3, r2 - 181b0: f7ff bb9d b.w 178ee <_svfprintf_r+0x392> - 181b4: e9dd 0110 ldrd r0, r1, [sp, #64] ; 0x40 - 181b8: 4602 mov r2, r0 - 181ba: 460b mov r3, r1 - 181bc: f005 fd7c bl 1dcb8 <__aeabi_dcmpun> - 181c0: 2800 cmp r0, #0 - 181c2: f040 833e bne.w 18842 <_svfprintf_r+0x12e6> - 181c6: 9a08 ldr r2, [sp, #32] - 181c8: f027 0320 bic.w r3, r7, #32 - 181cc: 1c51 adds r1, r2, #1 - 181ce: 930a str r3, [sp, #40] ; 0x28 - 181d0: f000 82b8 beq.w 18744 <_svfprintf_r+0x11e8> - 181d4: 2b47 cmp r3, #71 ; 0x47 - 181d6: f000 80b2 beq.w 1833e <_svfprintf_r+0xde2> - 181da: e9dd 1210 ldrd r1, r2, [sp, #64] ; 0x40 - 181de: f444 7380 orr.w r3, r4, #256 ; 0x100 - 181e2: 9306 str r3, [sp, #24] - 181e4: 4613 mov r3, r2 - 181e6: 2b00 cmp r3, #0 - 181e8: f2c0 8221 blt.w 1862e <_svfprintf_r+0x10d2> - 181ec: 9307 str r3, [sp, #28] - 181ee: f8dd a040 ldr.w sl, [sp, #64] ; 0x40 - 181f2: 2300 movs r3, #0 - 181f4: 930e str r3, [sp, #56] ; 0x38 - 181f6: 2f66 cmp r7, #102 ; 0x66 - 181f8: f000 8174 beq.w 184e4 <_svfprintf_r+0xf88> - 181fc: 2f46 cmp r7, #70 ; 0x46 - 181fe: f000 8171 beq.w 184e4 <_svfprintf_r+0xf88> - 18202: 9b0a ldr r3, [sp, #40] ; 0x28 - 18204: 2b45 cmp r3, #69 ; 0x45 - 18206: 4652 mov r2, sl - 18208: 9b07 ldr r3, [sp, #28] - 1820a: f000 8275 beq.w 186f8 <_svfprintf_r+0x119c> - 1820e: a91f add r1, sp, #124 ; 0x7c - 18210: 9104 str r1, [sp, #16] - 18212: a91c add r1, sp, #112 ; 0x70 - 18214: 9103 str r1, [sp, #12] - 18216: a91b add r1, sp, #108 ; 0x6c - 18218: 9e08 ldr r6, [sp, #32] - 1821a: 9102 str r1, [sp, #8] - 1821c: 2102 movs r1, #2 - 1821e: 980c ldr r0, [sp, #48] ; 0x30 - 18220: 9601 str r6, [sp, #4] - 18222: 9100 str r1, [sp, #0] - 18224: f001 fea4 bl 19f70 <_dtoa_r> - 18228: 2f67 cmp r7, #103 ; 0x67 - 1822a: 4605 mov r5, r0 - 1822c: f040 8345 bne.w 188ba <_svfprintf_r+0x135e> - 18230: 07e3 lsls r3, r4, #31 - 18232: f100 8273 bmi.w 1871c <_svfprintf_r+0x11c0> - 18236: 9b1f ldr r3, [sp, #124] ; 0x7c - 18238: 1b5b subs r3, r3, r5 - 1823a: 9312 str r3, [sp, #72] ; 0x48 - 1823c: 9b1b ldr r3, [sp, #108] ; 0x6c - 1823e: 930f str r3, [sp, #60] ; 0x3c - 18240: 9b0a ldr r3, [sp, #40] ; 0x28 - 18242: 2b47 cmp r3, #71 ; 0x47 - 18244: f040 819b bne.w 1857e <_svfprintf_r+0x1022> - 18248: 9b0f ldr r3, [sp, #60] ; 0x3c - 1824a: 1cde adds r6, r3, #3 - 1824c: f2c0 8196 blt.w 1857c <_svfprintf_r+0x1020> - 18250: 9a08 ldr r2, [sp, #32] - 18252: 429a cmp r2, r3 - 18254: f2c0 8192 blt.w 1857c <_svfprintf_r+0x1020> - 18258: 9b12 ldr r3, [sp, #72] ; 0x48 - 1825a: 9a0f ldr r2, [sp, #60] ; 0x3c - 1825c: 4293 cmp r3, r2 - 1825e: f300 82d6 bgt.w 1880e <_svfprintf_r+0x12b2> - 18262: 07e4 lsls r4, r4, #31 - 18264: 9b0f ldr r3, [sp, #60] ; 0x3c - 18266: f100 82fd bmi.w 18864 <_svfprintf_r+0x1308> - 1826a: ea23 72e3 bic.w r2, r3, r3, asr #31 - 1826e: 9207 str r2, [sp, #28] - 18270: 930a str r3, [sp, #40] ; 0x28 - 18272: 2767 movs r7, #103 ; 0x67 - 18274: 9b0e ldr r3, [sp, #56] ; 0x38 - 18276: 2b00 cmp r3, #0 - 18278: f000 8252 beq.w 18720 <_svfprintf_r+0x11c4> - 1827c: 232d movs r3, #45 ; 0x2d - 1827e: f88d 3067 strb.w r3, [sp, #103] ; 0x67 - 18282: 2300 movs r3, #0 - 18284: 9308 str r3, [sp, #32] - 18286: f7ff bb1f b.w 178c8 <_svfprintf_r+0x36c> - 1828a: 2301 movs r3, #1 - 1828c: 202b movs r0, #43 ; 0x2b - 1828e: f7ff b9ac b.w 175ea <_svfprintf_r+0x8e> - 18292: 9b06 ldr r3, [sp, #24] - 18294: 07d8 lsls r0, r3, #31 - 18296: f53f aea9 bmi.w 17fec <_svfprintf_r+0xa90> - 1829a: 9b12 ldr r3, [sp, #72] ; 0x48 - 1829c: 990f ldr r1, [sp, #60] ; 0x3c - 1829e: 1a9a subs r2, r3, r2 - 182a0: 1a5b subs r3, r3, r1 - 182a2: 4293 cmp r3, r2 - 182a4: bfa8 it ge - 182a6: 4613 movge r3, r2 - 182a8: 461e mov r6, r3 - 182aa: e6c5 b.n 18038 <_svfprintf_r+0xadc> - 182ac: 980c ldr r0, [sp, #48] ; 0x30 - 182ae: 2140 movs r1, #64 ; 0x40 - 182b0: f003 f8b6 bl 1b420 <_malloc_r> - 182b4: f8ca 0000 str.w r0, [sl] - 182b8: f8ca 0010 str.w r0, [sl, #16] - 182bc: 2800 cmp r0, #0 - 182be: f000 82fe beq.w 188be <_svfprintf_r+0x1362> - 182c2: 2340 movs r3, #64 ; 0x40 - 182c4: f8ca 3014 str.w r3, [sl, #20] - 182c8: f7ff b960 b.w 1758c <_svfprintf_r+0x30> - 182cc: 2f10 cmp r7, #16 - 182ce: 9b22 ldr r3, [sp, #136] ; 0x88 - 182d0: 4ea6 ldr r6, [pc, #664] ; (1856c <_svfprintf_r+0x1010>) - 182d2: f340 8180 ble.w 185d6 <_svfprintf_r+0x107a> - 182d6: 4632 mov r2, r6 - 182d8: 9508 str r5, [sp, #32] - 182da: 465e mov r6, fp - 182dc: 9d0c ldr r5, [sp, #48] ; 0x30 - 182de: f04f 0a10 mov.w sl, #16 - 182e2: 4693 mov fp, r2 - 182e4: e005 b.n 182f2 <_svfprintf_r+0xd96> - 182e6: f109 0908 add.w r9, r9, #8 - 182ea: 3f10 subs r7, #16 - 182ec: 2f10 cmp r7, #16 - 182ee: f340 816e ble.w 185ce <_svfprintf_r+0x1072> - 182f2: 3301 adds r3, #1 - 182f4: 3410 adds r4, #16 - 182f6: 2b07 cmp r3, #7 - 182f8: e9c9 ba00 strd fp, sl, [r9] - 182fc: e9cd 3422 strd r3, r4, [sp, #136] ; 0x88 - 18300: ddf1 ble.n 182e6 <_svfprintf_r+0xd8a> - 18302: aa21 add r2, sp, #132 ; 0x84 - 18304: 4631 mov r1, r6 - 18306: 4628 mov r0, r5 - 18308: f003 ffda bl 1c2c0 <__ssprint_r> - 1830c: 2800 cmp r0, #0 - 1830e: f47f ae48 bne.w 17fa2 <_svfprintf_r+0xa46> - 18312: e9dd 3422 ldrd r3, r4, [sp, #136] ; 0x88 - 18316: f10d 09b8 add.w r9, sp, #184 ; 0xb8 - 1831a: e7e6 b.n 182ea <_svfprintf_r+0xd8e> - 1831c: 4628 mov r0, r5 - 1831e: f8cd a020 str.w sl, [sp, #32] - 18322: 960d str r6, [sp, #52] ; 0x34 - 18324: 9406 str r4, [sp, #24] - 18326: f7ff f8ab bl 17480 - 1832a: ea20 73e0 bic.w r3, r0, r0, asr #31 - 1832e: f89d 1067 ldrb.w r1, [sp, #103] ; 0x67 - 18332: 900a str r0, [sp, #40] ; 0x28 - 18334: 9307 str r3, [sp, #28] - 18336: f8cd a03c str.w sl, [sp, #60] ; 0x3c - 1833a: f7ff bac2 b.w 178c2 <_svfprintf_r+0x366> - 1833e: 2a00 cmp r2, #0 - 18340: 4613 mov r3, r2 - 18342: bf08 it eq - 18344: 2301 moveq r3, #1 - 18346: 9308 str r3, [sp, #32] - 18348: e747 b.n 181da <_svfprintf_r+0xc7e> - 1834a: 4e89 ldr r6, [pc, #548] ; (18570 <_svfprintf_r+0x1014>) - 1834c: ad2e add r5, sp, #184 ; 0xb8 - 1834e: fba6 0203 umull r0, r2, r6, r3 - 18352: 08d2 lsrs r2, r2, #3 - 18354: eb02 0082 add.w r0, r2, r2, lsl #2 - 18358: eba3 0040 sub.w r0, r3, r0, lsl #1 - 1835c: 3030 adds r0, #48 ; 0x30 - 1835e: f805 0d01 strb.w r0, [r5, #-1]! - 18362: 4618 mov r0, r3 - 18364: 2809 cmp r0, #9 - 18366: 4613 mov r3, r2 - 18368: d8f1 bhi.n 1834e <_svfprintf_r+0xdf2> - 1836a: ab2e add r3, sp, #184 ; 0xb8 - 1836c: 1b5b subs r3, r3, r5 - 1836e: 9406 str r4, [sp, #24] - 18370: 930a str r3, [sp, #40] ; 0x28 - 18372: e40b b.n 17b8c <_svfprintf_r+0x630> - 18374: 9b22 ldr r3, [sp, #136] ; 0x88 - 18376: 4a7f ldr r2, [pc, #508] ; (18574 <_svfprintf_r+0x1018>) - 18378: f8c9 2000 str.w r2, [r9] - 1837c: 3301 adds r3, #1 - 1837e: 3401 adds r4, #1 - 18380: 2201 movs r2, #1 - 18382: 2b07 cmp r3, #7 - 18384: 9423 str r4, [sp, #140] ; 0x8c - 18386: 9322 str r3, [sp, #136] ; 0x88 - 18388: f8c9 2004 str.w r2, [r9, #4] - 1838c: f300 8142 bgt.w 18614 <_svfprintf_r+0x10b8> - 18390: f109 0908 add.w r9, r9, #8 - 18394: 2900 cmp r1, #0 - 18396: d171 bne.n 1847c <_svfprintf_r+0xf20> - 18398: 9b06 ldr r3, [sp, #24] - 1839a: 9a12 ldr r2, [sp, #72] ; 0x48 - 1839c: f003 0301 and.w r3, r3, #1 - 183a0: 4313 orrs r3, r2 - 183a2: f43f aa21 beq.w 177e8 <_svfprintf_r+0x28c> - 183a6: 9b14 ldr r3, [sp, #80] ; 0x50 - 183a8: 9915 ldr r1, [sp, #84] ; 0x54 - 183aa: 191a adds r2, r3, r4 - 183ac: e9c9 1300 strd r1, r3, [r9] - 183b0: 9b22 ldr r3, [sp, #136] ; 0x88 - 183b2: 9223 str r2, [sp, #140] ; 0x8c - 183b4: 3301 adds r3, #1 - 183b6: 2b07 cmp r3, #7 - 183b8: 9322 str r3, [sp, #136] ; 0x88 - 183ba: f300 8180 bgt.w 186be <_svfprintf_r+0x1162> - 183be: f109 0908 add.w r9, r9, #8 - 183c2: 9912 ldr r1, [sp, #72] ; 0x48 - 183c4: f8c9 5000 str.w r5, [r9] - 183c8: 3301 adds r3, #1 - 183ca: 188c adds r4, r1, r2 - 183cc: 2b07 cmp r3, #7 - 183ce: e9cd 3422 strd r3, r4, [sp, #136] ; 0x88 - 183d2: f8c9 1004 str.w r1, [r9, #4] - 183d6: f77f aa05 ble.w 177e4 <_svfprintf_r+0x288> - 183da: e4f1 b.n 17dc0 <_svfprintf_r+0x864> - 183dc: 980c ldr r0, [sp, #48] ; 0x30 - 183de: 9317 str r3, [sp, #92] ; 0x5c - 183e0: aa21 add r2, sp, #132 ; 0x84 - 183e2: 4659 mov r1, fp - 183e4: f003 ff6c bl 1c2c0 <__ssprint_r> - 183e8: 2800 cmp r0, #0 - 183ea: f47f acdc bne.w 17da6 <_svfprintf_r+0x84a> - 183ee: 9c23 ldr r4, [sp, #140] ; 0x8c - 183f0: 9b17 ldr r3, [sp, #92] ; 0x5c - 183f2: f10d 09b8 add.w r9, sp, #184 ; 0xb8 - 183f6: f7ff b9b1 b.w 1775c <_svfprintf_r+0x200> - 183fa: 46aa mov sl, r5 - 183fc: f7ff ba16 b.w 1782c <_svfprintf_r+0x2d0> - 18400: 980c ldr r0, [sp, #48] ; 0x30 - 18402: aa21 add r2, sp, #132 ; 0x84 - 18404: 4659 mov r1, fp - 18406: f003 ff5b bl 1c2c0 <__ssprint_r> - 1840a: 2800 cmp r0, #0 - 1840c: f47f accb bne.w 17da6 <_svfprintf_r+0x84a> - 18410: 9c23 ldr r4, [sp, #140] ; 0x8c - 18412: f10d 09b8 add.w r9, sp, #184 ; 0xb8 - 18416: f7ff bbde b.w 17bd6 <_svfprintf_r+0x67a> - 1841a: 980c ldr r0, [sp, #48] ; 0x30 - 1841c: aa21 add r2, sp, #132 ; 0x84 - 1841e: 4659 mov r1, fp - 18420: f003 ff4e bl 1c2c0 <__ssprint_r> - 18424: 2800 cmp r0, #0 - 18426: f47f acbe bne.w 17da6 <_svfprintf_r+0x84a> - 1842a: 9c23 ldr r4, [sp, #140] ; 0x8c - 1842c: f10d 09b8 add.w r9, sp, #184 ; 0xb8 - 18430: f7ff b9bf b.w 177b2 <_svfprintf_r+0x256> - 18434: 980c ldr r0, [sp, #48] ; 0x30 - 18436: aa21 add r2, sp, #132 ; 0x84 - 18438: 4659 mov r1, fp - 1843a: f003 ff41 bl 1c2c0 <__ssprint_r> - 1843e: 2800 cmp r0, #0 - 18440: f47f acb1 bne.w 17da6 <_svfprintf_r+0x84a> - 18444: 9c23 ldr r4, [sp, #140] ; 0x8c - 18446: f10d 09b8 add.w r9, sp, #184 ; 0xb8 - 1844a: f7ff bbda b.w 17c02 <_svfprintf_r+0x6a6> - 1844e: 2b06 cmp r3, #6 - 18450: bf28 it cs - 18452: 2306 movcs r3, #6 - 18454: 4d48 ldr r5, [pc, #288] ; (18578 <_svfprintf_r+0x101c>) - 18456: 930a str r3, [sp, #40] ; 0x28 - 18458: 960d str r6, [sp, #52] ; 0x34 - 1845a: 9307 str r3, [sp, #28] - 1845c: f7ff b967 b.w 1772e <_svfprintf_r+0x1d2> - 18460: f8dd 8020 ldr.w r8, [sp, #32] - 18464: f8ca 6000 str.w r6, [sl] - 18468: 3701 adds r7, #1 - 1846a: 444c add r4, r9 - 1846c: 2f07 cmp r7, #7 - 1846e: e9cd 7422 strd r7, r4, [sp, #136] ; 0x88 - 18472: f8ca 9004 str.w r9, [sl, #4] - 18476: f77f ace8 ble.w 17e4a <_svfprintf_r+0x8ee> - 1847a: e61f b.n 180bc <_svfprintf_r+0xb60> - 1847c: 9b14 ldr r3, [sp, #80] ; 0x50 - 1847e: 9815 ldr r0, [sp, #84] ; 0x54 - 18480: 191a adds r2, r3, r4 - 18482: e9c9 0300 strd r0, r3, [r9] - 18486: 9b22 ldr r3, [sp, #136] ; 0x88 - 18488: 9223 str r2, [sp, #140] ; 0x8c - 1848a: 3301 adds r3, #1 - 1848c: 2b07 cmp r3, #7 - 1848e: 9322 str r3, [sp, #136] ; 0x88 - 18490: f300 8115 bgt.w 186be <_svfprintf_r+0x1162> - 18494: f109 0908 add.w r9, r9, #8 - 18498: 2900 cmp r1, #0 - 1849a: da92 bge.n 183c2 <_svfprintf_r+0xe66> - 1849c: 424f negs r7, r1 - 1849e: 3110 adds r1, #16 - 184a0: 4e32 ldr r6, [pc, #200] ; (1856c <_svfprintf_r+0x1010>) - 184a2: f280 8193 bge.w 187cc <_svfprintf_r+0x1270> - 184a6: f8dd a030 ldr.w sl, [sp, #48] ; 0x30 - 184aa: 2410 movs r4, #16 - 184ac: e005 b.n 184ba <_svfprintf_r+0xf5e> - 184ae: f109 0908 add.w r9, r9, #8 - 184b2: 3f10 subs r7, #16 - 184b4: 2f10 cmp r7, #16 - 184b6: f340 8189 ble.w 187cc <_svfprintf_r+0x1270> - 184ba: 3301 adds r3, #1 - 184bc: 3210 adds r2, #16 - 184be: 2b07 cmp r3, #7 - 184c0: e9c9 6400 strd r6, r4, [r9] - 184c4: e9cd 3222 strd r3, r2, [sp, #136] ; 0x88 - 184c8: ddf1 ble.n 184ae <_svfprintf_r+0xf52> - 184ca: aa21 add r2, sp, #132 ; 0x84 - 184cc: 4659 mov r1, fp - 184ce: 4650 mov r0, sl - 184d0: f003 fef6 bl 1c2c0 <__ssprint_r> - 184d4: 2800 cmp r0, #0 - 184d6: f47f ac66 bne.w 17da6 <_svfprintf_r+0x84a> - 184da: e9dd 3222 ldrd r3, r2, [sp, #136] ; 0x88 - 184de: f10d 09b8 add.w r9, sp, #184 ; 0xb8 - 184e2: e7e6 b.n 184b2 <_svfprintf_r+0xf56> - 184e4: a91f add r1, sp, #124 ; 0x7c - 184e6: e9dd 3607 ldrd r3, r6, [sp, #28] - 184ea: 9104 str r1, [sp, #16] - 184ec: a91c add r1, sp, #112 ; 0x70 - 184ee: 9103 str r1, [sp, #12] - 184f0: a91b add r1, sp, #108 ; 0x6c - 184f2: 9102 str r1, [sp, #8] - 184f4: 2103 movs r1, #3 - 184f6: 9601 str r6, [sp, #4] - 184f8: 980c ldr r0, [sp, #48] ; 0x30 - 184fa: 9100 str r1, [sp, #0] - 184fc: 4652 mov r2, sl - 184fe: f001 fd37 bl 19f70 <_dtoa_r> - 18502: 4605 mov r5, r0 - 18504: 1986 adds r6, r0, r6 - 18506: 782b ldrb r3, [r5, #0] - 18508: 2b30 cmp r3, #48 ; 0x30 - 1850a: f000 818c beq.w 18826 <_svfprintf_r+0x12ca> - 1850e: 9b1b ldr r3, [sp, #108] ; 0x6c - 18510: 441e add r6, r3 - 18512: 9907 ldr r1, [sp, #28] - 18514: 4650 mov r0, sl - 18516: 2200 movs r2, #0 - 18518: 2300 movs r3, #0 - 1851a: f005 fb9b bl 1dc54 <__aeabi_dcmpeq> - 1851e: 2800 cmp r0, #0 - 18520: f040 808c bne.w 1863c <_svfprintf_r+0x10e0> - 18524: 9b1f ldr r3, [sp, #124] ; 0x7c - 18526: 42b3 cmp r3, r6 - 18528: d206 bcs.n 18538 <_svfprintf_r+0xfdc> - 1852a: 2130 movs r1, #48 ; 0x30 - 1852c: 1c5a adds r2, r3, #1 - 1852e: 921f str r2, [sp, #124] ; 0x7c - 18530: 7019 strb r1, [r3, #0] - 18532: 9b1f ldr r3, [sp, #124] ; 0x7c - 18534: 429e cmp r6, r3 - 18536: d8f9 bhi.n 1852c <_svfprintf_r+0xfd0> - 18538: 1b5b subs r3, r3, r5 - 1853a: 9312 str r3, [sp, #72] ; 0x48 - 1853c: 9b1b ldr r3, [sp, #108] ; 0x6c - 1853e: 930f str r3, [sp, #60] ; 0x3c - 18540: 9b0a ldr r3, [sp, #40] ; 0x28 - 18542: 2b47 cmp r3, #71 ; 0x47 - 18544: f43f ae80 beq.w 18248 <_svfprintf_r+0xcec> - 18548: 2f66 cmp r7, #102 ; 0x66 - 1854a: d118 bne.n 1857e <_svfprintf_r+0x1022> - 1854c: 9a08 ldr r2, [sp, #32] - 1854e: f004 0301 and.w r3, r4, #1 - 18552: 4313 orrs r3, r2 - 18554: 9a0f ldr r2, [sp, #60] ; 0x3c - 18556: 2a00 cmp r2, #0 - 18558: f340 80aa ble.w 186b0 <_svfprintf_r+0x1154> - 1855c: 2b00 cmp r3, #0 - 1855e: f040 8189 bne.w 18874 <_svfprintf_r+0x1318> - 18562: 9b0f ldr r3, [sp, #60] ; 0x3c - 18564: 9307 str r3, [sp, #28] - 18566: 930a str r3, [sp, #40] ; 0x28 - 18568: e684 b.n 18274 <_svfprintf_r+0xd18> - 1856a: bf00 nop - 1856c: 0002c194 .word 0x0002c194 - 18570: cccccccd .word 0xcccccccd - 18574: 0002c180 .word 0x0002c180 - 18578: 0002c178 .word 0x0002c178 - 1857c: 3f02 subs r7, #2 - 1857e: 9a0f ldr r2, [sp, #60] ; 0x3c - 18580: f88d 7074 strb.w r7, [sp, #116] ; 0x74 - 18584: 1e53 subs r3, r2, #1 - 18586: 2b00 cmp r3, #0 - 18588: 931b str r3, [sp, #108] ; 0x6c - 1858a: bfb6 itet lt - 1858c: f1c2 0301 rsblt r3, r2, #1 - 18590: 222b movge r2, #43 ; 0x2b - 18592: 222d movlt r2, #45 ; 0x2d - 18594: 2b09 cmp r3, #9 - 18596: f88d 2075 strb.w r2, [sp, #117] ; 0x75 - 1859a: dc55 bgt.n 18648 <_svfprintf_r+0x10ec> - 1859c: 3330 adds r3, #48 ; 0x30 - 1859e: f88d 3077 strb.w r3, [sp, #119] ; 0x77 - 185a2: 2330 movs r3, #48 ; 0x30 - 185a4: f88d 3076 strb.w r3, [sp, #118] ; 0x76 - 185a8: 2304 movs r3, #4 - 185aa: 9316 str r3, [sp, #88] ; 0x58 - 185ac: 9a12 ldr r2, [sp, #72] ; 0x48 - 185ae: 9b16 ldr r3, [sp, #88] ; 0x58 - 185b0: 2a01 cmp r2, #1 - 185b2: 4413 add r3, r2 - 185b4: 930a str r3, [sp, #40] ; 0x28 - 185b6: f340 8121 ble.w 187fc <_svfprintf_r+0x12a0> - 185ba: 9b0a ldr r3, [sp, #40] ; 0x28 - 185bc: 9a14 ldr r2, [sp, #80] ; 0x50 - 185be: 4413 add r3, r2 - 185c0: 930a str r3, [sp, #40] ; 0x28 - 185c2: ea23 73e3 bic.w r3, r3, r3, asr #31 - 185c6: 9307 str r3, [sp, #28] - 185c8: 2300 movs r3, #0 - 185ca: 930f str r3, [sp, #60] ; 0x3c - 185cc: e652 b.n 18274 <_svfprintf_r+0xd18> - 185ce: 465a mov r2, fp - 185d0: 9d08 ldr r5, [sp, #32] - 185d2: 46b3 mov fp, r6 - 185d4: 4616 mov r6, r2 - 185d6: 3301 adds r3, #1 - 185d8: 443c add r4, r7 - 185da: 2b07 cmp r3, #7 - 185dc: e9cd 3422 strd r3, r4, [sp, #136] ; 0x88 - 185e0: f8c9 6000 str.w r6, [r9] - 185e4: f8c9 7004 str.w r7, [r9, #4] - 185e8: dc77 bgt.n 186da <_svfprintf_r+0x117e> - 185ea: f109 0908 add.w r9, r9, #8 - 185ee: e4f8 b.n 17fe2 <_svfprintf_r+0xa86> - 185f0: 212d movs r1, #45 ; 0x2d - 185f2: f88d 1067 strb.w r1, [sp, #103] ; 0x67 - 185f6: f7ff b956 b.w 178a6 <_svfprintf_r+0x34a> - 185fa: 980c ldr r0, [sp, #48] ; 0x30 - 185fc: aa21 add r2, sp, #132 ; 0x84 - 185fe: 4659 mov r1, fp - 18600: f003 fe5e bl 1c2c0 <__ssprint_r> - 18604: 2800 cmp r0, #0 - 18606: f47f abce bne.w 17da6 <_svfprintf_r+0x84a> - 1860a: 9a1b ldr r2, [sp, #108] ; 0x6c - 1860c: 9c23 ldr r4, [sp, #140] ; 0x8c - 1860e: f10d 09b8 add.w r9, sp, #184 ; 0xb8 - 18612: e4f9 b.n 18008 <_svfprintf_r+0xaac> - 18614: 980c ldr r0, [sp, #48] ; 0x30 - 18616: aa21 add r2, sp, #132 ; 0x84 - 18618: 4659 mov r1, fp - 1861a: f003 fe51 bl 1c2c0 <__ssprint_r> - 1861e: 2800 cmp r0, #0 - 18620: f47f abc1 bne.w 17da6 <_svfprintf_r+0x84a> - 18624: 991b ldr r1, [sp, #108] ; 0x6c - 18626: 9c23 ldr r4, [sp, #140] ; 0x8c - 18628: f10d 09b8 add.w r9, sp, #184 ; 0xb8 - 1862c: e6b2 b.n 18394 <_svfprintf_r+0xe38> - 1862e: f103 4300 add.w r3, r3, #2147483648 ; 0x80000000 - 18632: 9307 str r3, [sp, #28] - 18634: 232d movs r3, #45 ; 0x2d - 18636: 468a mov sl, r1 - 18638: 930e str r3, [sp, #56] ; 0x38 - 1863a: e5dc b.n 181f6 <_svfprintf_r+0xc9a> - 1863c: 4633 mov r3, r6 - 1863e: e77b b.n 18538 <_svfprintf_r+0xfdc> - 18640: f88d 0067 strb.w r0, [sp, #103] ; 0x67 - 18644: f7ff b867 b.w 17716 <_svfprintf_r+0x1ba> - 18648: f10d 0683 add.w r6, sp, #131 ; 0x83 - 1864c: f8df c280 ldr.w ip, [pc, #640] ; 188d0 <_svfprintf_r+0x1374> - 18650: 4632 mov r2, r6 - 18652: 4610 mov r0, r2 - 18654: fb8c 2103 smull r2, r1, ip, r3 - 18658: 17da asrs r2, r3, #31 - 1865a: ebc2 02a1 rsb r2, r2, r1, asr #2 - 1865e: eb02 0182 add.w r1, r2, r2, lsl #2 - 18662: eba3 0141 sub.w r1, r3, r1, lsl #1 - 18666: 3130 adds r1, #48 ; 0x30 - 18668: f800 1c01 strb.w r1, [r0, #-1] - 1866c: 4619 mov r1, r3 - 1866e: 2963 cmp r1, #99 ; 0x63 - 18670: 4613 mov r3, r2 - 18672: f100 32ff add.w r2, r0, #4294967295 ; 0xffffffff - 18676: dcec bgt.n 18652 <_svfprintf_r+0x10f6> - 18678: 3330 adds r3, #48 ; 0x30 - 1867a: b2d9 uxtb r1, r3 - 1867c: 1e83 subs r3, r0, #2 - 1867e: 429e cmp r6, r3 - 18680: f802 1c01 strb.w r1, [r2, #-1] - 18684: f240 8116 bls.w 188b4 <_svfprintf_r+0x1358> - 18688: 4613 mov r3, r2 - 1868a: f10d 0276 add.w r2, sp, #118 ; 0x76 - 1868e: e001 b.n 18694 <_svfprintf_r+0x1138> - 18690: f813 1b01 ldrb.w r1, [r3], #1 - 18694: f802 1b01 strb.w r1, [r2], #1 - 18698: 429e cmp r6, r3 - 1869a: d1f9 bne.n 18690 <_svfprintf_r+0x1134> - 1869c: f10d 0385 add.w r3, sp, #133 ; 0x85 - 186a0: f10d 0276 add.w r2, sp, #118 ; 0x76 - 186a4: 1a1b subs r3, r3, r0 - 186a6: 4413 add r3, r2 - 186a8: aa1d add r2, sp, #116 ; 0x74 - 186aa: 1a9b subs r3, r3, r2 - 186ac: 9316 str r3, [sp, #88] ; 0x58 - 186ae: e77d b.n 185ac <_svfprintf_r+0x1050> - 186b0: 2b00 cmp r3, #0 - 186b2: f040 80f4 bne.w 1889e <_svfprintf_r+0x1342> - 186b6: 2301 movs r3, #1 - 186b8: 9307 str r3, [sp, #28] - 186ba: 930a str r3, [sp, #40] ; 0x28 - 186bc: e5da b.n 18274 <_svfprintf_r+0xd18> - 186be: 980c ldr r0, [sp, #48] ; 0x30 - 186c0: aa21 add r2, sp, #132 ; 0x84 - 186c2: 4659 mov r1, fp - 186c4: f003 fdfc bl 1c2c0 <__ssprint_r> - 186c8: 2800 cmp r0, #0 - 186ca: f47f ab6c bne.w 17da6 <_svfprintf_r+0x84a> - 186ce: e9dd 3222 ldrd r3, r2, [sp, #136] ; 0x88 - 186d2: 991b ldr r1, [sp, #108] ; 0x6c - 186d4: f10d 09b8 add.w r9, sp, #184 ; 0xb8 - 186d8: e6de b.n 18498 <_svfprintf_r+0xf3c> - 186da: 980c ldr r0, [sp, #48] ; 0x30 - 186dc: aa21 add r2, sp, #132 ; 0x84 - 186de: 4659 mov r1, fp - 186e0: f003 fdee bl 1c2c0 <__ssprint_r> - 186e4: 2800 cmp r0, #0 - 186e6: f47f ab5e bne.w 17da6 <_svfprintf_r+0x84a> - 186ea: 9c23 ldr r4, [sp, #140] ; 0x8c - 186ec: f10d 09b8 add.w r9, sp, #184 ; 0xb8 - 186f0: e477 b.n 17fe2 <_svfprintf_r+0xa86> - 186f2: 9c06 ldr r4, [sp, #24] - 186f4: f7ff b90d b.w 17912 <_svfprintf_r+0x3b6> - 186f8: 9908 ldr r1, [sp, #32] - 186fa: 980c ldr r0, [sp, #48] ; 0x30 - 186fc: 1c4e adds r6, r1, #1 - 186fe: a91f add r1, sp, #124 ; 0x7c - 18700: 9104 str r1, [sp, #16] - 18702: a91c add r1, sp, #112 ; 0x70 - 18704: 9103 str r1, [sp, #12] - 18706: a91b add r1, sp, #108 ; 0x6c - 18708: 9102 str r1, [sp, #8] - 1870a: 2102 movs r1, #2 - 1870c: 9601 str r6, [sp, #4] - 1870e: 9100 str r1, [sp, #0] - 18710: f001 fc2e bl 19f70 <_dtoa_r> - 18714: 4605 mov r5, r0 - 18716: 2f47 cmp r7, #71 ; 0x47 - 18718: f43f ad8a beq.w 18230 <_svfprintf_r+0xcd4> - 1871c: 442e add r6, r5 - 1871e: e6f8 b.n 18512 <_svfprintf_r+0xfb6> - 18720: 9b0e ldr r3, [sp, #56] ; 0x38 - 18722: f89d 1067 ldrb.w r1, [sp, #103] ; 0x67 - 18726: 9308 str r3, [sp, #32] - 18728: f7ff b8cb b.w 178c2 <_svfprintf_r+0x366> - 1872c: 980c ldr r0, [sp, #48] ; 0x30 - 1872e: aa21 add r2, sp, #132 ; 0x84 - 18730: 4659 mov r1, fp - 18732: f003 fdc5 bl 1c2c0 <__ssprint_r> - 18736: 2800 cmp r0, #0 - 18738: f47f ab35 bne.w 17da6 <_svfprintf_r+0x84a> - 1873c: 9c23 ldr r4, [sp, #140] ; 0x8c - 1873e: f10d 09b8 add.w r9, sp, #184 ; 0xb8 - 18742: e447 b.n 17fd4 <_svfprintf_r+0xa78> - 18744: 2306 movs r3, #6 - 18746: 9308 str r3, [sp, #32] - 18748: e547 b.n 181da <_svfprintf_r+0xc7e> - 1874a: 980c ldr r0, [sp, #48] ; 0x30 - 1874c: aa21 add r2, sp, #132 ; 0x84 - 1874e: 4659 mov r1, fp - 18750: f003 fdb6 bl 1c2c0 <__ssprint_r> - 18754: 2800 cmp r0, #0 - 18756: f47f ab26 bne.w 17da6 <_svfprintf_r+0x84a> - 1875a: 9a1b ldr r2, [sp, #108] ; 0x6c - 1875c: 9b12 ldr r3, [sp, #72] ; 0x48 - 1875e: 9c23 ldr r4, [sp, #140] ; 0x8c - 18760: 1a9a subs r2, r3, r2 - 18762: f10d 09b8 add.w r9, sp, #184 ; 0xb8 - 18766: e467 b.n 18038 <_svfprintf_r+0xadc> - 18768: 9b08 ldr r3, [sp, #32] - 1876a: f89d 1067 ldrb.w r1, [sp, #103] ; 0x67 - 1876e: 960d str r6, [sp, #52] ; 0x34 - 18770: 9406 str r4, [sp, #24] - 18772: 9307 str r3, [sp, #28] - 18774: 930a str r3, [sp, #40] ; 0x28 - 18776: 9008 str r0, [sp, #32] - 18778: 900f str r0, [sp, #60] ; 0x3c - 1877a: f7ff b8a2 b.w 178c2 <_svfprintf_r+0x366> - 1877e: f88d 0067 strb.w r0, [sp, #103] ; 0x67 - 18782: f7ff b8f6 b.w 17972 <_svfprintf_r+0x416> - 18786: f88d 0067 strb.w r0, [sp, #103] ; 0x67 - 1878a: f7ff b9d8 b.w 17b3e <_svfprintf_r+0x5e2> - 1878e: 980c ldr r0, [sp, #48] ; 0x30 - 18790: aa21 add r2, sp, #132 ; 0x84 - 18792: 4659 mov r1, fp - 18794: f003 fd94 bl 1c2c0 <__ssprint_r> - 18798: f7ff b848 b.w 1782c <_svfprintf_r+0x2d0> - 1879c: f88d 0067 strb.w r0, [sp, #103] ; 0x67 - 187a0: f7ff b91b b.w 179da <_svfprintf_r+0x47e> - 187a4: f88d 0067 strb.w r0, [sp, #103] ; 0x67 - 187a8: f7ff b852 b.w 17850 <_svfprintf_r+0x2f4> - 187ac: f88d 0067 strb.w r0, [sp, #103] ; 0x67 - 187b0: f7ff b893 b.w 178da <_svfprintf_r+0x37e> - 187b4: f88d 0067 strb.w r0, [sp, #103] ; 0x67 - 187b8: f7ff b956 b.w 17a68 <_svfprintf_r+0x50c> - 187bc: f88d 0067 strb.w r0, [sp, #103] ; 0x67 - 187c0: f7ff b962 b.w 17a88 <_svfprintf_r+0x52c> - 187c4: f88d 0067 strb.w r0, [sp, #103] ; 0x67 - 187c8: f7ff b99a b.w 17b00 <_svfprintf_r+0x5a4> - 187cc: 3301 adds r3, #1 - 187ce: 443a add r2, r7 - 187d0: 2b07 cmp r3, #7 - 187d2: e9cd 3222 strd r3, r2, [sp, #136] ; 0x88 - 187d6: f8c9 6000 str.w r6, [r9] - 187da: f8c9 7004 str.w r7, [r9, #4] - 187de: f77f adee ble.w 183be <_svfprintf_r+0xe62> - 187e2: 980c ldr r0, [sp, #48] ; 0x30 - 187e4: aa21 add r2, sp, #132 ; 0x84 - 187e6: 4659 mov r1, fp - 187e8: f003 fd6a bl 1c2c0 <__ssprint_r> - 187ec: 2800 cmp r0, #0 - 187ee: f47f aada bne.w 17da6 <_svfprintf_r+0x84a> - 187f2: e9dd 3222 ldrd r3, r2, [sp, #136] ; 0x88 - 187f6: f10d 09b8 add.w r9, sp, #184 ; 0xb8 - 187fa: e5e2 b.n 183c2 <_svfprintf_r+0xe66> - 187fc: f014 0201 ands.w r2, r4, #1 - 18800: 920f str r2, [sp, #60] ; 0x3c - 18802: f47f aeda bne.w 185ba <_svfprintf_r+0x105e> - 18806: ea23 73e3 bic.w r3, r3, r3, asr #31 - 1880a: 9307 str r3, [sp, #28] - 1880c: e532 b.n 18274 <_svfprintf_r+0xd18> - 1880e: 9a14 ldr r2, [sp, #80] ; 0x50 - 18810: 9b12 ldr r3, [sp, #72] ; 0x48 - 18812: 4413 add r3, r2 - 18814: 9a0f ldr r2, [sp, #60] ; 0x3c - 18816: 930a str r3, [sp, #40] ; 0x28 - 18818: 2a00 cmp r2, #0 - 1881a: dd35 ble.n 18888 <_svfprintf_r+0x132c> - 1881c: ea23 73e3 bic.w r3, r3, r3, asr #31 - 18820: 9307 str r3, [sp, #28] - 18822: 2767 movs r7, #103 ; 0x67 - 18824: e526 b.n 18274 <_svfprintf_r+0xd18> - 18826: 9907 ldr r1, [sp, #28] - 18828: 4650 mov r0, sl - 1882a: 2200 movs r2, #0 - 1882c: 2300 movs r3, #0 - 1882e: f005 fa11 bl 1dc54 <__aeabi_dcmpeq> - 18832: 2800 cmp r0, #0 - 18834: f47f ae6b bne.w 1850e <_svfprintf_r+0xfb2> - 18838: 9b08 ldr r3, [sp, #32] - 1883a: f1c3 0301 rsb r3, r3, #1 - 1883e: 931b str r3, [sp, #108] ; 0x6c - 18840: e666 b.n 18510 <_svfprintf_r+0xfb4> - 18842: 9b11 ldr r3, [sp, #68] ; 0x44 - 18844: 4d23 ldr r5, [pc, #140] ; (188d4 <_svfprintf_r+0x1378>) - 18846: 2b00 cmp r3, #0 - 18848: bfb8 it lt - 1884a: 212d movlt r1, #45 ; 0x2d - 1884c: f024 0380 bic.w r3, r4, #128 ; 0x80 - 18850: 9306 str r3, [sp, #24] - 18852: bfa8 it ge - 18854: f89d 1067 ldrbge.w r1, [sp, #103] ; 0x67 - 18858: 4b1f ldr r3, [pc, #124] ; (188d8 <_svfprintf_r+0x137c>) - 1885a: bfb8 it lt - 1885c: f88d 1067 strblt.w r1, [sp, #103] ; 0x67 - 18860: f7ff b826 b.w 178b0 <_svfprintf_r+0x354> - 18864: 9a14 ldr r2, [sp, #80] ; 0x50 - 18866: 4413 add r3, r2 - 18868: 930a str r3, [sp, #40] ; 0x28 - 1886a: ea23 73e3 bic.w r3, r3, r3, asr #31 - 1886e: 9307 str r3, [sp, #28] - 18870: 2767 movs r7, #103 ; 0x67 - 18872: e4ff b.n 18274 <_svfprintf_r+0xd18> - 18874: 9b0f ldr r3, [sp, #60] ; 0x3c - 18876: 9a14 ldr r2, [sp, #80] ; 0x50 - 18878: 4413 add r3, r2 - 1887a: 9a08 ldr r2, [sp, #32] - 1887c: 441a add r2, r3 - 1887e: ea22 73e2 bic.w r3, r2, r2, asr #31 - 18882: 920a str r2, [sp, #40] ; 0x28 - 18884: 9307 str r3, [sp, #28] - 18886: e4f5 b.n 18274 <_svfprintf_r+0xd18> - 18888: 9b0f ldr r3, [sp, #60] ; 0x3c - 1888a: 9a0a ldr r2, [sp, #40] ; 0x28 - 1888c: f1c3 0301 rsb r3, r3, #1 - 18890: 441a add r2, r3 - 18892: ea22 73e2 bic.w r3, r2, r2, asr #31 - 18896: 920a str r2, [sp, #40] ; 0x28 - 18898: 9307 str r3, [sp, #28] - 1889a: 2767 movs r7, #103 ; 0x67 - 1889c: e4ea b.n 18274 <_svfprintf_r+0xd18> - 1889e: 9b14 ldr r3, [sp, #80] ; 0x50 - 188a0: 3301 adds r3, #1 - 188a2: e7ea b.n 1887a <_svfprintf_r+0x131e> - 188a4: 9a0d ldr r2, [sp, #52] ; 0x34 - 188a6: f852 5b04 ldr.w r5, [r2], #4 - 188aa: 920d str r2, [sp, #52] ; 0x34 - 188ac: ea45 75e5 orr.w r5, r5, r5, asr #31 - 188b0: f7fe be9b b.w 175ea <_svfprintf_r+0x8e> - 188b4: 2302 movs r3, #2 - 188b6: 9316 str r3, [sp, #88] ; 0x58 - 188b8: e678 b.n 185ac <_svfprintf_r+0x1050> - 188ba: 9e08 ldr r6, [sp, #32] - 188bc: e72b b.n 18716 <_svfprintf_r+0x11ba> - 188be: 9a0c ldr r2, [sp, #48] ; 0x30 - 188c0: 230c movs r3, #12 - 188c2: 6013 str r3, [r2, #0] - 188c4: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff - 188c8: 9309 str r3, [sp, #36] ; 0x24 - 188ca: f7fe bfb8 b.w 1783e <_svfprintf_r+0x2e2> - 188ce: bf00 nop - 188d0: 66666667 .word 0x66666667 - 188d4: 0002c148 .word 0x0002c148 - 188d8: 0002c14c .word 0x0002c14c - -000188dc <_vfprintf_r>: - 188dc: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - 188e0: b0bf sub sp, #252 ; 0xfc - 188e2: 461c mov r4, r3 - 188e4: 468a mov sl, r1 - 188e6: 4690 mov r8, r2 - 188e8: 4605 mov r5, r0 - 188ea: 900c str r0, [sp, #48] ; 0x30 - 188ec: f002 fd24 bl 1b338 <_localeconv_r> - 188f0: 6802 ldr r2, [r0, #0] - 188f2: 9215 str r2, [sp, #84] ; 0x54 - 188f4: 4610 mov r0, r2 - 188f6: 940d str r4, [sp, #52] ; 0x34 - 188f8: f7fe fdc2 bl 17480 - 188fc: 9013 str r0, [sp, #76] ; 0x4c - 188fe: b11d cbz r5, 18908 <_vfprintf_r+0x2c> - 18900: 6bab ldr r3, [r5, #56] ; 0x38 - 18902: 2b00 cmp r3, #0 - 18904: f000 81d7 beq.w 18cb6 <_vfprintf_r+0x3da> - 18908: f9ba 300c ldrsh.w r3, [sl, #12] - 1890c: 0499 lsls r1, r3, #18 - 1890e: b29a uxth r2, r3 - 18910: d40a bmi.n 18928 <_vfprintf_r+0x4c> - 18912: f443 5300 orr.w r3, r3, #8192 ; 0x2000 - 18916: f8aa 300c strh.w r3, [sl, #12] - 1891a: b29a uxth r2, r3 - 1891c: f8da 3060 ldr.w r3, [sl, #96] ; 0x60 - 18920: f423 5300 bic.w r3, r3, #8192 ; 0x2000 - 18924: f8ca 3060 str.w r3, [sl, #96] ; 0x60 - 18928: 0717 lsls r7, r2, #28 - 1892a: f140 80ac bpl.w 18a86 <_vfprintf_r+0x1aa> - 1892e: f8da 3010 ldr.w r3, [sl, #16] - 18932: 2b00 cmp r3, #0 - 18934: f000 80a7 beq.w 18a86 <_vfprintf_r+0x1aa> - 18938: f002 021a and.w r2, r2, #26 - 1893c: 2a0a cmp r2, #10 - 1893e: f000 80b0 beq.w 18aa2 <_vfprintf_r+0x1c6> - 18942: 2300 movs r3, #0 - 18944: e9cd 3322 strd r3, r3, [sp, #136] ; 0x88 - 18948: 9312 str r3, [sp, #72] ; 0x48 - 1894a: 9314 str r3, [sp, #80] ; 0x50 - 1894c: 9316 str r3, [sp, #88] ; 0x58 - 1894e: 9309 str r3, [sp, #36] ; 0x24 - 18950: 2400 movs r4, #0 - 18952: 2300 movs r3, #0 - 18954: e9cd 3410 strd r3, r4, [sp, #64] ; 0x40 - 18958: aa2e add r2, sp, #184 ; 0xb8 - 1895a: 9221 str r2, [sp, #132] ; 0x84 - 1895c: 4691 mov r9, r2 - 1895e: 46d3 mov fp, sl - 18960: f898 3000 ldrb.w r3, [r8] - 18964: 2b00 cmp r3, #0 - 18966: f000 8153 beq.w 18c10 <_vfprintf_r+0x334> - 1896a: 4644 mov r4, r8 - 1896c: e004 b.n 18978 <_vfprintf_r+0x9c> - 1896e: f814 3f01 ldrb.w r3, [r4, #1]! - 18972: 2b00 cmp r3, #0 - 18974: f000 80a3 beq.w 18abe <_vfprintf_r+0x1e2> - 18978: 2b25 cmp r3, #37 ; 0x25 - 1897a: d1f8 bne.n 1896e <_vfprintf_r+0x92> - 1897c: ebb4 0508 subs.w r5, r4, r8 - 18980: f040 80a1 bne.w 18ac6 <_vfprintf_r+0x1ea> - 18984: 7823 ldrb r3, [r4, #0] - 18986: 2b00 cmp r3, #0 - 18988: f000 8142 beq.w 18c10 <_vfprintf_r+0x334> - 1898c: 2300 movs r3, #0 - 1898e: 1c62 adds r2, r4, #1 - 18990: f88d 3067 strb.w r3, [sp, #103] ; 0x67 - 18994: 4618 mov r0, r3 - 18996: f04f 35ff mov.w r5, #4294967295 ; 0xffffffff - 1899a: 4619 mov r1, r3 - 1899c: 461c mov r4, r3 - 1899e: 4690 mov r8, r2 - 189a0: f818 7b01 ldrb.w r7, [r8], #1 - 189a4: f1a7 0220 sub.w r2, r7, #32 - 189a8: 2a58 cmp r2, #88 ; 0x58 - 189aa: f200 80a7 bhi.w 18afc <_vfprintf_r+0x220> - 189ae: e8df f012 tbh [pc, r2, lsl #1] - 189b2: 01ef .short 0x01ef - 189b4: 00a500a5 .word 0x00a500a5 - 189b8: 00a501ec .word 0x00a501ec - 189bc: 00a500a5 .word 0x00a500a5 - 189c0: 00a500a5 .word 0x00a500a5 - 189c4: 01b800a5 .word 0x01b800a5 - 189c8: 00a50684 .word 0x00a50684 - 189cc: 01c301c0 .word 0x01c301c0 - 189d0: 01e900a5 .word 0x01e900a5 - 189d4: 00590059 .word 0x00590059 - 189d8: 00590059 .word 0x00590059 - 189dc: 00590059 .word 0x00590059 - 189e0: 00590059 .word 0x00590059 - 189e4: 00a50059 .word 0x00a50059 - 189e8: 00a500a5 .word 0x00a500a5 - 189ec: 00a500a5 .word 0x00a500a5 - 189f0: 00a500a5 .word 0x00a500a5 - 189f4: 00a500a5 .word 0x00a500a5 - 189f8: 01dd00a5 .word 0x01dd00a5 - 189fc: 00a5013d .word 0x00a5013d - 18a00: 00a5013d .word 0x00a5013d - 18a04: 00a500a5 .word 0x00a500a5 - 18a08: 023800a5 .word 0x023800a5 - 18a0c: 00a500a5 .word 0x00a500a5 - 18a10: 00a50245 .word 0x00a50245 - 18a14: 00a500a5 .word 0x00a500a5 - 18a18: 00a500a5 .word 0x00a500a5 - 18a1c: 00a5023b .word 0x00a5023b - 18a20: 020400a5 .word 0x020400a5 - 18a24: 00a500a5 .word 0x00a500a5 - 18a28: 00a500a5 .word 0x00a500a5 - 18a2c: 00a500a5 .word 0x00a500a5 - 18a30: 00a500a5 .word 0x00a500a5 - 18a34: 00a500a5 .word 0x00a500a5 - 18a38: 018601f5 .word 0x018601f5 - 18a3c: 013d013d .word 0x013d013d - 18a40: 01da013d .word 0x01da013d - 18a44: 00a50186 .word 0x00a50186 - 18a48: 006700a5 .word 0x006700a5 - 18a4c: 02ba00a5 .word 0x02ba00a5 - 18a50: 028c02a7 .word 0x028c02a7 - 18a54: 00a50067 .word 0x00a50067 - 18a58: 00a50266 .word 0x00a50266 - 18a5c: 00a50257 .word 0x00a50257 - 18a60: 024f00a5 .word 0x024f00a5 - 18a64: f1a7 0230 sub.w r2, r7, #48 ; 0x30 - 18a68: 2100 movs r1, #0 - 18a6a: f818 7b01 ldrb.w r7, [r8], #1 - 18a6e: eb01 0181 add.w r1, r1, r1, lsl #2 - 18a72: eb02 0141 add.w r1, r2, r1, lsl #1 - 18a76: f1a7 0230 sub.w r2, r7, #48 ; 0x30 - 18a7a: 2a09 cmp r2, #9 - 18a7c: d9f5 bls.n 18a6a <_vfprintf_r+0x18e> - 18a7e: e791 b.n 189a4 <_vfprintf_r+0xc8> - 18a80: f044 0410 orr.w r4, r4, #16 - 18a84: e78c b.n 189a0 <_vfprintf_r+0xc4> - 18a86: 980c ldr r0, [sp, #48] ; 0x30 - 18a88: 4651 mov r1, sl - 18a8a: f001 f953 bl 19d34 <__swsetup_r> - 18a8e: 2800 cmp r0, #0 - 18a90: f041 8096 bne.w 19bc0 <_vfprintf_r+0x12e4> - 18a94: f8ba 200c ldrh.w r2, [sl, #12] - 18a98: f002 021a and.w r2, r2, #26 - 18a9c: 2a0a cmp r2, #10 - 18a9e: f47f af50 bne.w 18942 <_vfprintf_r+0x66> - 18aa2: f9ba 300e ldrsh.w r3, [sl, #14] - 18aa6: 2b00 cmp r3, #0 - 18aa8: f6ff af4b blt.w 18942 <_vfprintf_r+0x66> - 18aac: 980c ldr r0, [sp, #48] ; 0x30 - 18aae: 4623 mov r3, r4 - 18ab0: 4642 mov r2, r8 - 18ab2: 4651 mov r1, sl - 18ab4: b03f add sp, #252 ; 0xfc - 18ab6: e8bd 4ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - 18aba: f001 b8ef b.w 19c9c <__sbprintf> - 18abe: ebb4 0508 subs.w r5, r4, r8 - 18ac2: f000 80a5 beq.w 18c10 <_vfprintf_r+0x334> - 18ac6: 9b23 ldr r3, [sp, #140] ; 0x8c - 18ac8: 442b add r3, r5 - 18aca: 9323 str r3, [sp, #140] ; 0x8c - 18acc: 9b22 ldr r3, [sp, #136] ; 0x88 - 18ace: 3301 adds r3, #1 - 18ad0: 2b07 cmp r3, #7 - 18ad2: e9c9 8500 strd r8, r5, [r9] - 18ad6: 9322 str r3, [sp, #136] ; 0x88 - 18ad8: dc05 bgt.n 18ae6 <_vfprintf_r+0x20a> - 18ada: f109 0908 add.w r9, r9, #8 - 18ade: 9b09 ldr r3, [sp, #36] ; 0x24 - 18ae0: 442b add r3, r5 - 18ae2: 9309 str r3, [sp, #36] ; 0x24 - 18ae4: e74e b.n 18984 <_vfprintf_r+0xa8> - 18ae6: 980c ldr r0, [sp, #48] ; 0x30 - 18ae8: aa21 add r2, sp, #132 ; 0x84 - 18aea: 4659 mov r1, fp - 18aec: f003 fcb2 bl 1c454 <__sprint_r> - 18af0: 2800 cmp r0, #0 - 18af2: f040 834a bne.w 1918a <_vfprintf_r+0x8ae> - 18af6: f10d 09b8 add.w r9, sp, #184 ; 0xb8 - 18afa: e7f0 b.n 18ade <_vfprintf_r+0x202> - 18afc: 910b str r1, [sp, #44] ; 0x2c - 18afe: 2b00 cmp r3, #0 - 18b00: f040 878b bne.w 19a1a <_vfprintf_r+0x113e> - 18b04: 2f00 cmp r7, #0 - 18b06: f000 8083 beq.w 18c10 <_vfprintf_r+0x334> - 18b0a: 2300 movs r3, #0 - 18b0c: f88d 3067 strb.w r3, [sp, #103] ; 0x67 - 18b10: 2301 movs r3, #1 - 18b12: f88d 7090 strb.w r7, [sp, #144] ; 0x90 - 18b16: 9307 str r3, [sp, #28] - 18b18: 930a str r3, [sp, #40] ; 0x28 - 18b1a: ad24 add r5, sp, #144 ; 0x90 - 18b1c: 2300 movs r3, #0 - 18b1e: 9406 str r4, [sp, #24] - 18b20: 9308 str r3, [sp, #32] - 18b22: 930f str r3, [sp, #60] ; 0x3c - 18b24: 9b06 ldr r3, [sp, #24] - 18b26: f013 0302 ands.w r3, r3, #2 - 18b2a: d002 beq.n 18b32 <_vfprintf_r+0x256> - 18b2c: 9a07 ldr r2, [sp, #28] - 18b2e: 3202 adds r2, #2 - 18b30: 9207 str r2, [sp, #28] - 18b32: 9a06 ldr r2, [sp, #24] - 18b34: 9c23 ldr r4, [sp, #140] ; 0x8c - 18b36: f012 0284 ands.w r2, r2, #132 ; 0x84 - 18b3a: 920e str r2, [sp, #56] ; 0x38 - 18b3c: d105 bne.n 18b4a <_vfprintf_r+0x26e> - 18b3e: 9a0b ldr r2, [sp, #44] ; 0x2c - 18b40: 9907 ldr r1, [sp, #28] - 18b42: 1a56 subs r6, r2, r1 - 18b44: 2e00 cmp r6, #0 - 18b46: f300 8383 bgt.w 19250 <_vfprintf_r+0x974> - 18b4a: f89d 2067 ldrb.w r2, [sp, #103] ; 0x67 - 18b4e: b18a cbz r2, 18b74 <_vfprintf_r+0x298> - 18b50: 9a22 ldr r2, [sp, #136] ; 0x88 - 18b52: f10d 0167 add.w r1, sp, #103 ; 0x67 - 18b56: 3201 adds r2, #1 - 18b58: 3401 adds r4, #1 - 18b5a: f8c9 1000 str.w r1, [r9] - 18b5e: 2a07 cmp r2, #7 - 18b60: f04f 0101 mov.w r1, #1 - 18b64: 9423 str r4, [sp, #140] ; 0x8c - 18b66: 9222 str r2, [sp, #136] ; 0x88 - 18b68: f8c9 1004 str.w r1, [r9, #4] - 18b6c: f300 83c4 bgt.w 192f8 <_vfprintf_r+0xa1c> - 18b70: f109 0908 add.w r9, r9, #8 - 18b74: b183 cbz r3, 18b98 <_vfprintf_r+0x2bc> - 18b76: 9b22 ldr r3, [sp, #136] ; 0x88 - 18b78: aa1a add r2, sp, #104 ; 0x68 - 18b7a: 3301 adds r3, #1 - 18b7c: 3402 adds r4, #2 - 18b7e: f8c9 2000 str.w r2, [r9] - 18b82: 2b07 cmp r3, #7 - 18b84: f04f 0202 mov.w r2, #2 - 18b88: 9423 str r4, [sp, #140] ; 0x8c - 18b8a: 9322 str r3, [sp, #136] ; 0x88 - 18b8c: f8c9 2004 str.w r2, [r9, #4] - 18b90: f300 83a6 bgt.w 192e0 <_vfprintf_r+0xa04> - 18b94: f109 0908 add.w r9, r9, #8 - 18b98: 9b0e ldr r3, [sp, #56] ; 0x38 - 18b9a: 2b80 cmp r3, #128 ; 0x80 - 18b9c: f000 8261 beq.w 19062 <_vfprintf_r+0x786> - 18ba0: 9b08 ldr r3, [sp, #32] - 18ba2: 9a0a ldr r2, [sp, #40] ; 0x28 - 18ba4: eba3 0a02 sub.w sl, r3, r2 - 18ba8: f1ba 0f00 cmp.w sl, #0 - 18bac: f300 82a3 bgt.w 190f6 <_vfprintf_r+0x81a> - 18bb0: 9b06 ldr r3, [sp, #24] - 18bb2: 05db lsls r3, r3, #23 - 18bb4: f100 81e9 bmi.w 18f8a <_vfprintf_r+0x6ae> - 18bb8: 9b0a ldr r3, [sp, #40] ; 0x28 - 18bba: f8c9 3004 str.w r3, [r9, #4] - 18bbe: 441c add r4, r3 - 18bc0: 9b22 ldr r3, [sp, #136] ; 0x88 - 18bc2: f8c9 5000 str.w r5, [r9] - 18bc6: 3301 adds r3, #1 - 18bc8: 2b07 cmp r3, #7 - 18bca: 9423 str r4, [sp, #140] ; 0x8c - 18bcc: 9322 str r3, [sp, #136] ; 0x88 - 18bce: f300 82e9 bgt.w 191a4 <_vfprintf_r+0x8c8> - 18bd2: f109 0908 add.w r9, r9, #8 - 18bd6: 9b06 ldr r3, [sp, #24] - 18bd8: 0759 lsls r1, r3, #29 - 18bda: d505 bpl.n 18be8 <_vfprintf_r+0x30c> - 18bdc: 9b0b ldr r3, [sp, #44] ; 0x2c - 18bde: 9a07 ldr r2, [sp, #28] - 18be0: 1a9d subs r5, r3, r2 - 18be2: 2d00 cmp r5, #0 - 18be4: f300 8396 bgt.w 19314 <_vfprintf_r+0xa38> - 18be8: 9b09 ldr r3, [sp, #36] ; 0x24 - 18bea: 9a0b ldr r2, [sp, #44] ; 0x2c - 18bec: 9907 ldr r1, [sp, #28] - 18bee: 428a cmp r2, r1 - 18bf0: bfac ite ge - 18bf2: 189b addge r3, r3, r2 - 18bf4: 185b addlt r3, r3, r1 - 18bf6: 9309 str r3, [sp, #36] ; 0x24 - 18bf8: 2c00 cmp r4, #0 - 18bfa: f040 82be bne.w 1917a <_vfprintf_r+0x89e> - 18bfe: 2300 movs r3, #0 - 18c00: 9322 str r3, [sp, #136] ; 0x88 - 18c02: f898 3000 ldrb.w r3, [r8] - 18c06: f10d 09b8 add.w r9, sp, #184 ; 0xb8 - 18c0a: 2b00 cmp r3, #0 - 18c0c: f47f aead bne.w 1896a <_vfprintf_r+0x8e> - 18c10: 9b23 ldr r3, [sp, #140] ; 0x8c - 18c12: 46da mov sl, fp - 18c14: 2b00 cmp r3, #0 - 18c16: f040 86f9 bne.w 19a0c <_vfprintf_r+0x1130> - 18c1a: f8ba 300c ldrh.w r3, [sl, #12] - 18c1e: 065a lsls r2, r3, #25 - 18c20: f100 87ce bmi.w 19bc0 <_vfprintf_r+0x12e4> - 18c24: 9809 ldr r0, [sp, #36] ; 0x24 - 18c26: b03f add sp, #252 ; 0xfc - 18c28: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - 18c2c: 910b str r1, [sp, #44] ; 0x2c - 18c2e: 9508 str r5, [sp, #32] - 18c30: 2b00 cmp r3, #0 - 18c32: f040 87a8 bne.w 19b86 <_vfprintf_r+0x12aa> - 18c36: 9b0d ldr r3, [sp, #52] ; 0x34 - 18c38: 3307 adds r3, #7 - 18c3a: f023 0107 bic.w r1, r3, #7 - 18c3e: e8f1 2302 ldrd r2, r3, [r1], #8 - 18c42: f023 4500 bic.w r5, r3, #2147483648 ; 0x80000000 - 18c46: e9cd 2310 strd r2, r3, [sp, #64] ; 0x40 - 18c4a: 910d str r1, [sp, #52] ; 0x34 - 18c4c: 4616 mov r6, r2 - 18c4e: 4610 mov r0, r2 - 18c50: 4ba6 ldr r3, [pc, #664] ; (18eec <_vfprintf_r+0x610>) - 18c52: 4629 mov r1, r5 - 18c54: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff - 18c58: f005 f82e bl 1dcb8 <__aeabi_dcmpun> - 18c5c: 2800 cmp r0, #0 - 18c5e: f040 847d bne.w 1955c <_vfprintf_r+0xc80> - 18c62: 4ba2 ldr r3, [pc, #648] ; (18eec <_vfprintf_r+0x610>) - 18c64: 4630 mov r0, r6 - 18c66: 4629 mov r1, r5 - 18c68: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff - 18c6c: f005 f806 bl 1dc7c <__aeabi_dcmple> - 18c70: 2800 cmp r0, #0 - 18c72: f040 8473 bne.w 1955c <_vfprintf_r+0xc80> - 18c76: e9dd 0110 ldrd r0, r1, [sp, #64] ; 0x40 - 18c7a: 2200 movs r2, #0 - 18c7c: 2300 movs r3, #0 - 18c7e: f004 fff3 bl 1dc68 <__aeabi_dcmplt> - 18c82: 2800 cmp r0, #0 - 18c84: f040 86a9 bne.w 199da <_vfprintf_r+0x10fe> - 18c88: f89d 1067 ldrb.w r1, [sp, #103] ; 0x67 - 18c8c: 4d98 ldr r5, [pc, #608] ; (18ef0 <_vfprintf_r+0x614>) - 18c8e: f024 0380 bic.w r3, r4, #128 ; 0x80 - 18c92: 9306 str r3, [sp, #24] - 18c94: 4b97 ldr r3, [pc, #604] ; (18ef4 <_vfprintf_r+0x618>) - 18c96: 2200 movs r2, #0 - 18c98: 2f47 cmp r7, #71 ; 0x47 - 18c9a: bfc8 it gt - 18c9c: 461d movgt r5, r3 - 18c9e: 2303 movs r3, #3 - 18ca0: e9cd 3207 strd r3, r2, [sp, #28] - 18ca4: 930a str r3, [sp, #40] ; 0x28 - 18ca6: 920f str r2, [sp, #60] ; 0x3c - 18ca8: 2900 cmp r1, #0 - 18caa: f43f af3b beq.w 18b24 <_vfprintf_r+0x248> - 18cae: 9b07 ldr r3, [sp, #28] - 18cb0: 3301 adds r3, #1 - 18cb2: 9307 str r3, [sp, #28] - 18cb4: e736 b.n 18b24 <_vfprintf_r+0x248> - 18cb6: 980c ldr r0, [sp, #48] ; 0x30 - 18cb8: f002 f9c8 bl 1b04c <__sinit> - 18cbc: e624 b.n 18908 <_vfprintf_r+0x2c> - 18cbe: 910b str r1, [sp, #44] ; 0x2c - 18cc0: 9508 str r5, [sp, #32] - 18cc2: 2b00 cmp r3, #0 - 18cc4: f040 8753 bne.w 19b6e <_vfprintf_r+0x1292> - 18cc8: 9b0d ldr r3, [sp, #52] ; 0x34 - 18cca: 06e5 lsls r5, r4, #27 - 18ccc: f853 2b04 ldr.w r2, [r3], #4 - 18cd0: 930d str r3, [sp, #52] ; 0x34 - 18cd2: d402 bmi.n 18cda <_vfprintf_r+0x3fe> - 18cd4: 0660 lsls r0, r4, #25 - 18cd6: f100 8438 bmi.w 1954a <_vfprintf_r+0xc6e> - 18cda: 4613 mov r3, r2 - 18cdc: 2a00 cmp r2, #0 - 18cde: f2c0 8425 blt.w 1952c <_vfprintf_r+0xc50> - 18ce2: 9808 ldr r0, [sp, #32] - 18ce4: f89d 1067 ldrb.w r1, [sp, #103] ; 0x67 - 18ce8: 3001 adds r0, #1 - 18cea: d006 beq.n 18cfa <_vfprintf_r+0x41e> - 18cec: f024 0080 bic.w r0, r4, #128 ; 0x80 - 18cf0: 9006 str r0, [sp, #24] - 18cf2: 2a00 cmp r2, #0 - 18cf4: f000 83d8 beq.w 194a8 <_vfprintf_r+0xbcc> - 18cf8: 9c06 ldr r4, [sp, #24] - 18cfa: 2b09 cmp r3, #9 - 18cfc: f200 8545 bhi.w 1978a <_vfprintf_r+0xeae> - 18d00: 3330 adds r3, #48 ; 0x30 - 18d02: f88d 30b7 strb.w r3, [sp, #183] ; 0xb7 - 18d06: 2301 movs r3, #1 - 18d08: 9406 str r4, [sp, #24] - 18d0a: 930a str r3, [sp, #40] ; 0x28 - 18d0c: f10d 05b7 add.w r5, sp, #183 ; 0xb7 - 18d10: 9b08 ldr r3, [sp, #32] - 18d12: 9a0a ldr r2, [sp, #40] ; 0x28 - 18d14: 4293 cmp r3, r2 - 18d16: bfb8 it lt - 18d18: 4613 movlt r3, r2 - 18d1a: 9307 str r3, [sp, #28] - 18d1c: 2300 movs r3, #0 - 18d1e: 930f str r3, [sp, #60] ; 0x3c - 18d20: e7c2 b.n 18ca8 <_vfprintf_r+0x3cc> - 18d22: 9a0d ldr r2, [sp, #52] ; 0x34 - 18d24: f852 1b04 ldr.w r1, [r2], #4 - 18d28: 2900 cmp r1, #0 - 18d2a: f280 8408 bge.w 1953e <_vfprintf_r+0xc62> - 18d2e: 4249 negs r1, r1 - 18d30: 920d str r2, [sp, #52] ; 0x34 - 18d32: f044 0404 orr.w r4, r4, #4 - 18d36: e633 b.n 189a0 <_vfprintf_r+0xc4> - 18d38: f818 7b01 ldrb.w r7, [r8], #1 - 18d3c: 2f2a cmp r7, #42 ; 0x2a - 18d3e: f000 879b beq.w 19c78 <_vfprintf_r+0x139c> - 18d42: f1a7 0230 sub.w r2, r7, #48 ; 0x30 - 18d46: 2a09 cmp r2, #9 - 18d48: f04f 0500 mov.w r5, #0 - 18d4c: f63f ae2a bhi.w 189a4 <_vfprintf_r+0xc8> - 18d50: f818 7b01 ldrb.w r7, [r8], #1 - 18d54: eb05 0585 add.w r5, r5, r5, lsl #2 - 18d58: eb02 0545 add.w r5, r2, r5, lsl #1 - 18d5c: f1a7 0230 sub.w r2, r7, #48 ; 0x30 - 18d60: 2a09 cmp r2, #9 - 18d62: d9f5 bls.n 18d50 <_vfprintf_r+0x474> - 18d64: e61e b.n 189a4 <_vfprintf_r+0xc8> - 18d66: f044 0440 orr.w r4, r4, #64 ; 0x40 - 18d6a: e619 b.n 189a0 <_vfprintf_r+0xc4> - 18d6c: 910b str r1, [sp, #44] ; 0x2c - 18d6e: 9508 str r5, [sp, #32] - 18d70: 2b00 cmp r3, #0 - 18d72: f040 86f0 bne.w 19b56 <_vfprintf_r+0x127a> - 18d76: 9b0d ldr r3, [sp, #52] ; 0x34 - 18d78: f853 2b04 ldr.w r2, [r3], #4 - 18d7c: 930d str r3, [sp, #52] ; 0x34 - 18d7e: f044 0410 orr.w r4, r4, #16 - 18d82: e7aa b.n 18cda <_vfprintf_r+0x3fe> - 18d84: f044 0480 orr.w r4, r4, #128 ; 0x80 - 18d88: e60a b.n 189a0 <_vfprintf_r+0xc4> - 18d8a: f044 0401 orr.w r4, r4, #1 - 18d8e: e607 b.n 189a0 <_vfprintf_r+0xc4> - 18d90: 2800 cmp r0, #0 - 18d92: f47f ae05 bne.w 189a0 <_vfprintf_r+0xc4> - 18d96: 2301 movs r3, #1 - 18d98: 2020 movs r0, #32 - 18d9a: e601 b.n 189a0 <_vfprintf_r+0xc4> - 18d9c: 9b0d ldr r3, [sp, #52] ; 0x34 - 18d9e: 910b str r1, [sp, #44] ; 0x2c - 18da0: 2200 movs r2, #0 - 18da2: f88d 2067 strb.w r2, [sp, #103] ; 0x67 - 18da6: f853 2b04 ldr.w r2, [r3], #4 - 18daa: 930d str r3, [sp, #52] ; 0x34 - 18dac: 2301 movs r3, #1 - 18dae: f88d 2090 strb.w r2, [sp, #144] ; 0x90 - 18db2: 9307 str r3, [sp, #28] - 18db4: 930a str r3, [sp, #40] ; 0x28 - 18db6: ad24 add r5, sp, #144 ; 0x90 - 18db8: e6b0 b.n 18b1c <_vfprintf_r+0x240> - 18dba: 910b str r1, [sp, #44] ; 0x2c - 18dbc: 9508 str r5, [sp, #32] - 18dbe: 2b00 cmp r3, #0 - 18dc0: f040 86e5 bne.w 19b8e <_vfprintf_r+0x12b2> - 18dc4: 4b4c ldr r3, [pc, #304] ; (18ef8 <_vfprintf_r+0x61c>) - 18dc6: 9314 str r3, [sp, #80] ; 0x50 - 18dc8: 9a0d ldr r2, [sp, #52] ; 0x34 - 18dca: 06e1 lsls r1, r4, #27 - 18dcc: f852 3b04 ldr.w r3, [r2], #4 - 18dd0: 920d str r2, [sp, #52] ; 0x34 - 18dd2: d402 bmi.n 18dda <_vfprintf_r+0x4fe> - 18dd4: 0662 lsls r2, r4, #25 - 18dd6: bf48 it mi - 18dd8: b29b uxthmi r3, r3 - 18dda: 07e6 lsls r6, r4, #31 - 18ddc: d502 bpl.n 18de4 <_vfprintf_r+0x508> - 18dde: 2b00 cmp r3, #0 - 18de0: f040 8461 bne.w 196a6 <_vfprintf_r+0xdca> - 18de4: 2202 movs r2, #2 - 18de6: 2100 movs r1, #0 - 18de8: 9808 ldr r0, [sp, #32] - 18dea: f88d 1067 strb.w r1, [sp, #103] ; 0x67 - 18dee: 1c45 adds r5, r0, #1 - 18df0: f000 80af beq.w 18f52 <_vfprintf_r+0x676> - 18df4: f024 0580 bic.w r5, r4, #128 ; 0x80 - 18df8: 9506 str r5, [sp, #24] - 18dfa: 2b00 cmp r3, #0 - 18dfc: f040 80a8 bne.w 18f50 <_vfprintf_r+0x674> - 18e00: 2800 cmp r0, #0 - 18e02: f040 811a bne.w 1903a <_vfprintf_r+0x75e> - 18e06: 2a00 cmp r2, #0 - 18e08: f040 8352 bne.w 194b0 <_vfprintf_r+0xbd4> - 18e0c: f014 0301 ands.w r3, r4, #1 - 18e10: 930a str r3, [sp, #40] ; 0x28 - 18e12: f000 8397 beq.w 19544 <_vfprintf_r+0xc68> - 18e16: 2330 movs r3, #48 ; 0x30 - 18e18: f88d 30b7 strb.w r3, [sp, #183] ; 0xb7 - 18e1c: f10d 05b7 add.w r5, sp, #183 ; 0xb7 - 18e20: e776 b.n 18d10 <_vfprintf_r+0x434> - 18e22: f044 0408 orr.w r4, r4, #8 - 18e26: e5bb b.n 189a0 <_vfprintf_r+0xc4> - 18e28: 9a0d ldr r2, [sp, #52] ; 0x34 - 18e2a: 910b str r1, [sp, #44] ; 0x2c - 18e2c: f852 3b04 ldr.w r3, [r2], #4 - 18e30: 9508 str r5, [sp, #32] - 18e32: f044 0410 orr.w r4, r4, #16 - 18e36: 920d str r2, [sp, #52] ; 0x34 - 18e38: 2201 movs r2, #1 - 18e3a: e7d4 b.n 18de6 <_vfprintf_r+0x50a> - 18e3c: 9a0d ldr r2, [sp, #52] ; 0x34 - 18e3e: 910b str r1, [sp, #44] ; 0x2c - 18e40: f852 3b04 ldr.w r3, [r2], #4 - 18e44: 9508 str r5, [sp, #32] - 18e46: f044 0410 orr.w r4, r4, #16 - 18e4a: 920d str r2, [sp, #52] ; 0x34 - 18e4c: 2200 movs r2, #0 - 18e4e: e7ca b.n 18de6 <_vfprintf_r+0x50a> - 18e50: 910b str r1, [sp, #44] ; 0x2c - 18e52: 9508 str r5, [sp, #32] - 18e54: 2b00 cmp r3, #0 - 18e56: f040 8682 bne.w 19b5e <_vfprintf_r+0x1282> - 18e5a: 4b28 ldr r3, [pc, #160] ; (18efc <_vfprintf_r+0x620>) - 18e5c: 9314 str r3, [sp, #80] ; 0x50 - 18e5e: e7b3 b.n 18dc8 <_vfprintf_r+0x4ec> - 18e60: 910b str r1, [sp, #44] ; 0x2c - 18e62: 9508 str r5, [sp, #32] - 18e64: 2b00 cmp r3, #0 - 18e66: f040 867e bne.w 19b66 <_vfprintf_r+0x128a> - 18e6a: 9a0d ldr r2, [sp, #52] ; 0x34 - 18e6c: 06e6 lsls r6, r4, #27 - 18e6e: f852 3b04 ldr.w r3, [r2], #4 - 18e72: 920d str r2, [sp, #52] ; 0x34 - 18e74: d4e0 bmi.n 18e38 <_vfprintf_r+0x55c> - 18e76: 0660 lsls r0, r4, #25 - 18e78: bf48 it mi - 18e7a: b29b uxthmi r3, r3 - 18e7c: e7dc b.n 18e38 <_vfprintf_r+0x55c> - 18e7e: 9e0d ldr r6, [sp, #52] ; 0x34 - 18e80: 9508 str r5, [sp, #32] - 18e82: f856 5b04 ldr.w r5, [r6], #4 - 18e86: 9b08 ldr r3, [sp, #32] - 18e88: 910b str r1, [sp, #44] ; 0x2c - 18e8a: f04f 0a00 mov.w sl, #0 - 18e8e: f88d a067 strb.w sl, [sp, #103] ; 0x67 - 18e92: 2d00 cmp r5, #0 - 18e94: f000 842e beq.w 196f4 <_vfprintf_r+0xe18> - 18e98: 1c5a adds r2, r3, #1 - 18e9a: f000 852e beq.w 198fa <_vfprintf_r+0x101e> - 18e9e: 461a mov r2, r3 - 18ea0: 4651 mov r1, sl - 18ea2: 4628 mov r0, r5 - 18ea4: f002 fd6c bl 1b980 - 18ea8: 2800 cmp r0, #0 - 18eaa: f000 8649 beq.w 19b40 <_vfprintf_r+0x1264> - 18eae: 1b43 subs r3, r0, r5 - 18eb0: 930a str r3, [sp, #40] ; 0x28 - 18eb2: ea23 73e3 bic.w r3, r3, r3, asr #31 - 18eb6: f89d 1067 ldrb.w r1, [sp, #103] ; 0x67 - 18eba: f8cd a020 str.w sl, [sp, #32] - 18ebe: 960d str r6, [sp, #52] ; 0x34 - 18ec0: 9406 str r4, [sp, #24] - 18ec2: 9307 str r3, [sp, #28] - 18ec4: f8cd a03c str.w sl, [sp, #60] ; 0x3c - 18ec8: e6ee b.n 18ca8 <_vfprintf_r+0x3cc> - 18eca: 9a0d ldr r2, [sp, #52] ; 0x34 - 18ecc: 910b str r1, [sp, #44] ; 0x2c - 18ece: f852 3b04 ldr.w r3, [r2], #4 - 18ed2: 920d str r2, [sp, #52] ; 0x34 - 18ed4: f647 0230 movw r2, #30768 ; 0x7830 - 18ed8: f8ad 2068 strh.w r2, [sp, #104] ; 0x68 - 18edc: 4a07 ldr r2, [pc, #28] ; (18efc <_vfprintf_r+0x620>) - 18ede: 9214 str r2, [sp, #80] ; 0x50 - 18ee0: 9508 str r5, [sp, #32] - 18ee2: f044 0402 orr.w r4, r4, #2 - 18ee6: 2202 movs r2, #2 - 18ee8: 2778 movs r7, #120 ; 0x78 - 18eea: e77c b.n 18de6 <_vfprintf_r+0x50a> - 18eec: 7fefffff .word 0x7fefffff - 18ef0: 0002c140 .word 0x0002c140 - 18ef4: 0002c144 .word 0x0002c144 - 18ef8: 0002c150 .word 0x0002c150 - 18efc: 0002c164 .word 0x0002c164 - 18f00: 910b str r1, [sp, #44] ; 0x2c - 18f02: 9508 str r5, [sp, #32] - 18f04: 2b00 cmp r3, #0 - 18f06: f040 8636 bne.w 19b76 <_vfprintf_r+0x129a> - 18f0a: 9a0d ldr r2, [sp, #52] ; 0x34 - 18f0c: f014 0110 ands.w r1, r4, #16 - 18f10: f852 3b04 ldr.w r3, [r2], #4 - 18f14: 920d str r2, [sp, #52] ; 0x34 - 18f16: d199 bne.n 18e4c <_vfprintf_r+0x570> - 18f18: f014 0240 ands.w r2, r4, #64 ; 0x40 - 18f1c: f43f af63 beq.w 18de6 <_vfprintf_r+0x50a> - 18f20: b29b uxth r3, r3 - 18f22: 460a mov r2, r1 - 18f24: e75f b.n 18de6 <_vfprintf_r+0x50a> - 18f26: 2b00 cmp r3, #0 - 18f28: f040 8629 bne.w 19b7e <_vfprintf_r+0x12a2> - 18f2c: 9a0d ldr r2, [sp, #52] ; 0x34 - 18f2e: 06e0 lsls r0, r4, #27 - 18f30: f102 0304 add.w r3, r2, #4 - 18f34: d407 bmi.n 18f46 <_vfprintf_r+0x66a> - 18f36: 0661 lsls r1, r4, #25 - 18f38: 9a0d ldr r2, [sp, #52] ; 0x34 - 18f3a: d504 bpl.n 18f46 <_vfprintf_r+0x66a> - 18f3c: 6812 ldr r2, [r2, #0] - 18f3e: 9909 ldr r1, [sp, #36] ; 0x24 - 18f40: 8011 strh r1, [r2, #0] - 18f42: 930d str r3, [sp, #52] ; 0x34 - 18f44: e50c b.n 18960 <_vfprintf_r+0x84> - 18f46: 6812 ldr r2, [r2, #0] - 18f48: 9909 ldr r1, [sp, #36] ; 0x24 - 18f4a: 6011 str r1, [r2, #0] - 18f4c: 930d str r3, [sp, #52] ; 0x34 - 18f4e: e507 b.n 18960 <_vfprintf_r+0x84> - 18f50: 9c06 ldr r4, [sp, #24] - 18f52: 2a01 cmp r2, #1 - 18f54: f43f aed1 beq.w 18cfa <_vfprintf_r+0x41e> - 18f58: 2a02 cmp r2, #2 - 18f5a: d074 beq.n 19046 <_vfprintf_r+0x76a> - 18f5c: ad2e add r5, sp, #184 ; 0xb8 - 18f5e: f003 0207 and.w r2, r3, #7 - 18f62: 3230 adds r2, #48 ; 0x30 - 18f64: 08db lsrs r3, r3, #3 - 18f66: 4628 mov r0, r5 - 18f68: f805 2d01 strb.w r2, [r5, #-1]! - 18f6c: d1f7 bne.n 18f5e <_vfprintf_r+0x682> - 18f6e: 07e6 lsls r6, r4, #31 - 18f70: d572 bpl.n 19058 <_vfprintf_r+0x77c> - 18f72: 2a30 cmp r2, #48 ; 0x30 - 18f74: d070 beq.n 19058 <_vfprintf_r+0x77c> - 18f76: 2330 movs r3, #48 ; 0x30 - 18f78: 3802 subs r0, #2 - 18f7a: f805 3c01 strb.w r3, [r5, #-1] - 18f7e: ab2e add r3, sp, #184 ; 0xb8 - 18f80: 1a1b subs r3, r3, r0 - 18f82: 9406 str r4, [sp, #24] - 18f84: 930a str r3, [sp, #40] ; 0x28 - 18f86: 4605 mov r5, r0 - 18f88: e6c2 b.n 18d10 <_vfprintf_r+0x434> - 18f8a: 2f65 cmp r7, #101 ; 0x65 - 18f8c: f340 8115 ble.w 191ba <_vfprintf_r+0x8de> - 18f90: e9dd 0110 ldrd r0, r1, [sp, #64] ; 0x40 - 18f94: 2200 movs r2, #0 - 18f96: 2300 movs r3, #0 - 18f98: f004 fe5c bl 1dc54 <__aeabi_dcmpeq> - 18f9c: 2800 cmp r0, #0 - 18f9e: f000 81f4 beq.w 1938a <_vfprintf_r+0xaae> - 18fa2: 9b22 ldr r3, [sp, #136] ; 0x88 - 18fa4: 4ab1 ldr r2, [pc, #708] ; (1926c <_vfprintf_r+0x990>) - 18fa6: f8c9 2000 str.w r2, [r9] - 18faa: 3301 adds r3, #1 - 18fac: 3401 adds r4, #1 - 18fae: 2201 movs r2, #1 - 18fb0: 2b07 cmp r3, #7 - 18fb2: 9423 str r4, [sp, #140] ; 0x8c - 18fb4: 9322 str r3, [sp, #136] ; 0x88 - 18fb6: f8c9 2004 str.w r2, [r9, #4] - 18fba: f300 8442 bgt.w 19842 <_vfprintf_r+0xf66> - 18fbe: f109 0908 add.w r9, r9, #8 - 18fc2: 9b1b ldr r3, [sp, #108] ; 0x6c - 18fc4: 9a12 ldr r2, [sp, #72] ; 0x48 - 18fc6: 4293 cmp r3, r2 - 18fc8: f280 82b4 bge.w 19534 <_vfprintf_r+0xc58> - 18fcc: 9b13 ldr r3, [sp, #76] ; 0x4c - 18fce: 9a15 ldr r2, [sp, #84] ; 0x54 - 18fd0: 441c add r4, r3 - 18fd2: e9c9 2300 strd r2, r3, [r9] - 18fd6: 9b22 ldr r3, [sp, #136] ; 0x88 - 18fd8: 9423 str r4, [sp, #140] ; 0x8c - 18fda: 3301 adds r3, #1 - 18fdc: 2b07 cmp r3, #7 - 18fde: 9322 str r3, [sp, #136] ; 0x88 - 18fe0: f300 837c bgt.w 196dc <_vfprintf_r+0xe00> - 18fe4: f109 0908 add.w r9, r9, #8 - 18fe8: 9b12 ldr r3, [sp, #72] ; 0x48 - 18fea: 1e5d subs r5, r3, #1 - 18fec: 2d00 cmp r5, #0 - 18fee: f77f adf2 ble.w 18bd6 <_vfprintf_r+0x2fa> - 18ff2: 2d10 cmp r5, #16 - 18ff4: 9b22 ldr r3, [sp, #136] ; 0x88 - 18ff6: 4e9e ldr r6, [pc, #632] ; (19270 <_vfprintf_r+0x994>) - 18ff8: f340 80c9 ble.w 1918e <_vfprintf_r+0x8b2> - 18ffc: f8dd a030 ldr.w sl, [sp, #48] ; 0x30 - 19000: 2710 movs r7, #16 - 19002: e005 b.n 19010 <_vfprintf_r+0x734> - 19004: f109 0908 add.w r9, r9, #8 - 19008: 3d10 subs r5, #16 - 1900a: 2d10 cmp r5, #16 - 1900c: f340 80bf ble.w 1918e <_vfprintf_r+0x8b2> - 19010: 3301 adds r3, #1 - 19012: 3410 adds r4, #16 - 19014: 2b07 cmp r3, #7 - 19016: e9c9 6700 strd r6, r7, [r9] - 1901a: e9cd 3422 strd r3, r4, [sp, #136] ; 0x88 - 1901e: ddf1 ble.n 19004 <_vfprintf_r+0x728> - 19020: aa21 add r2, sp, #132 ; 0x84 - 19022: 4659 mov r1, fp - 19024: 4650 mov r0, sl - 19026: f003 fa15 bl 1c454 <__sprint_r> - 1902a: 2800 cmp r0, #0 - 1902c: f040 80ad bne.w 1918a <_vfprintf_r+0x8ae> - 19030: e9dd 3422 ldrd r3, r4, [sp, #136] ; 0x88 - 19034: f10d 09b8 add.w r9, sp, #184 ; 0xb8 - 19038: e7e6 b.n 19008 <_vfprintf_r+0x72c> - 1903a: 2a01 cmp r2, #1 - 1903c: f000 851e beq.w 19a7c <_vfprintf_r+0x11a0> - 19040: 2a02 cmp r2, #2 - 19042: 9c06 ldr r4, [sp, #24] - 19044: d18a bne.n 18f5c <_vfprintf_r+0x680> - 19046: 9814 ldr r0, [sp, #80] ; 0x50 - 19048: ad2e add r5, sp, #184 ; 0xb8 - 1904a: f003 020f and.w r2, r3, #15 - 1904e: 091b lsrs r3, r3, #4 - 19050: 5c82 ldrb r2, [r0, r2] - 19052: f805 2d01 strb.w r2, [r5, #-1]! - 19056: d1f8 bne.n 1904a <_vfprintf_r+0x76e> - 19058: ab2e add r3, sp, #184 ; 0xb8 - 1905a: 1b5b subs r3, r3, r5 - 1905c: 9406 str r4, [sp, #24] - 1905e: 930a str r3, [sp, #40] ; 0x28 - 19060: e656 b.n 18d10 <_vfprintf_r+0x434> - 19062: 9b0b ldr r3, [sp, #44] ; 0x2c - 19064: 9a07 ldr r2, [sp, #28] - 19066: eba3 0a02 sub.w sl, r3, r2 - 1906a: f1ba 0f00 cmp.w sl, #0 - 1906e: f77f ad97 ble.w 18ba0 <_vfprintf_r+0x2c4> - 19072: f1ba 0f10 cmp.w sl, #16 - 19076: 9b22 ldr r3, [sp, #136] ; 0x88 - 19078: 4e7d ldr r6, [pc, #500] ; (19270 <_vfprintf_r+0x994>) - 1907a: dd2e ble.n 190da <_vfprintf_r+0x7fe> - 1907c: 4632 mov r2, r6 - 1907e: 950e str r5, [sp, #56] ; 0x38 - 19080: 465e mov r6, fp - 19082: 9d0c ldr r5, [sp, #48] ; 0x30 - 19084: 46bb mov fp, r7 - 19086: 4617 mov r7, r2 - 19088: e006 b.n 19098 <_vfprintf_r+0x7bc> - 1908a: f1aa 0a10 sub.w sl, sl, #16 - 1908e: f1ba 0f10 cmp.w sl, #16 - 19092: f109 0908 add.w r9, r9, #8 - 19096: dd1b ble.n 190d0 <_vfprintf_r+0x7f4> - 19098: 3301 adds r3, #1 - 1909a: 3410 adds r4, #16 - 1909c: 2210 movs r2, #16 - 1909e: 2b07 cmp r3, #7 - 190a0: e9cd 3422 strd r3, r4, [sp, #136] ; 0x88 - 190a4: f8c9 7000 str.w r7, [r9] - 190a8: f8c9 2004 str.w r2, [r9, #4] - 190ac: dded ble.n 1908a <_vfprintf_r+0x7ae> - 190ae: aa21 add r2, sp, #132 ; 0x84 - 190b0: 4631 mov r1, r6 - 190b2: 4628 mov r0, r5 - 190b4: f10d 09b8 add.w r9, sp, #184 ; 0xb8 - 190b8: f003 f9cc bl 1c454 <__sprint_r> - 190bc: 2800 cmp r0, #0 - 190be: f040 8162 bne.w 19386 <_vfprintf_r+0xaaa> - 190c2: f1aa 0a10 sub.w sl, sl, #16 - 190c6: f1ba 0f10 cmp.w sl, #16 - 190ca: e9dd 3422 ldrd r3, r4, [sp, #136] ; 0x88 - 190ce: dce3 bgt.n 19098 <_vfprintf_r+0x7bc> - 190d0: 463a mov r2, r7 - 190d2: 9d0e ldr r5, [sp, #56] ; 0x38 - 190d4: 465f mov r7, fp - 190d6: 46b3 mov fp, r6 - 190d8: 4616 mov r6, r2 - 190da: 3301 adds r3, #1 - 190dc: 4454 add r4, sl - 190de: 2b07 cmp r3, #7 - 190e0: e9cd 3422 strd r3, r4, [sp, #136] ; 0x88 - 190e4: f8c9 6000 str.w r6, [r9] - 190e8: f8c9 a004 str.w sl, [r9, #4] - 190ec: f300 83b6 bgt.w 1985c <_vfprintf_r+0xf80> - 190f0: f109 0908 add.w r9, r9, #8 - 190f4: e554 b.n 18ba0 <_vfprintf_r+0x2c4> - 190f6: f1ba 0f10 cmp.w sl, #16 - 190fa: 9b22 ldr r3, [sp, #136] ; 0x88 - 190fc: 4e5c ldr r6, [pc, #368] ; (19270 <_vfprintf_r+0x994>) - 190fe: dd2e ble.n 1915e <_vfprintf_r+0x882> - 19100: 4632 mov r2, r6 - 19102: 9508 str r5, [sp, #32] - 19104: 465e mov r6, fp - 19106: 9d0c ldr r5, [sp, #48] ; 0x30 - 19108: 46bb mov fp, r7 - 1910a: 4617 mov r7, r2 - 1910c: e006 b.n 1911c <_vfprintf_r+0x840> - 1910e: f1aa 0a10 sub.w sl, sl, #16 - 19112: f1ba 0f10 cmp.w sl, #16 - 19116: f109 0908 add.w r9, r9, #8 - 1911a: dd1b ble.n 19154 <_vfprintf_r+0x878> - 1911c: 3301 adds r3, #1 - 1911e: 3410 adds r4, #16 - 19120: 2210 movs r2, #16 - 19122: 2b07 cmp r3, #7 - 19124: e9cd 3422 strd r3, r4, [sp, #136] ; 0x88 - 19128: f8c9 7000 str.w r7, [r9] - 1912c: f8c9 2004 str.w r2, [r9, #4] - 19130: dded ble.n 1910e <_vfprintf_r+0x832> - 19132: aa21 add r2, sp, #132 ; 0x84 - 19134: 4631 mov r1, r6 - 19136: 4628 mov r0, r5 - 19138: f003 f98c bl 1c454 <__sprint_r> - 1913c: 2800 cmp r0, #0 - 1913e: f040 8122 bne.w 19386 <_vfprintf_r+0xaaa> - 19142: f1aa 0a10 sub.w sl, sl, #16 - 19146: f1ba 0f10 cmp.w sl, #16 - 1914a: e9dd 3422 ldrd r3, r4, [sp, #136] ; 0x88 - 1914e: f10d 09b8 add.w r9, sp, #184 ; 0xb8 - 19152: dce3 bgt.n 1911c <_vfprintf_r+0x840> - 19154: 463a mov r2, r7 - 19156: 9d08 ldr r5, [sp, #32] - 19158: 465f mov r7, fp - 1915a: 46b3 mov fp, r6 - 1915c: 4616 mov r6, r2 - 1915e: 3301 adds r3, #1 - 19160: 4454 add r4, sl - 19162: 2b07 cmp r3, #7 - 19164: e9cd 3422 strd r3, r4, [sp, #136] ; 0x88 - 19168: f8c9 6000 str.w r6, [r9] - 1916c: f8c9 a004 str.w sl, [r9, #4] - 19170: f300 81cf bgt.w 19512 <_vfprintf_r+0xc36> - 19174: f109 0908 add.w r9, r9, #8 - 19178: e51a b.n 18bb0 <_vfprintf_r+0x2d4> - 1917a: 980c ldr r0, [sp, #48] ; 0x30 - 1917c: aa21 add r2, sp, #132 ; 0x84 - 1917e: 4659 mov r1, fp - 19180: f003 f968 bl 1c454 <__sprint_r> - 19184: 2800 cmp r0, #0 - 19186: f43f ad3a beq.w 18bfe <_vfprintf_r+0x322> - 1918a: 46da mov sl, fp - 1918c: e545 b.n 18c1a <_vfprintf_r+0x33e> - 1918e: 3301 adds r3, #1 - 19190: 442c add r4, r5 - 19192: 2b07 cmp r3, #7 - 19194: f8c9 6000 str.w r6, [r9] - 19198: f8c9 5004 str.w r5, [r9, #4] - 1919c: e9cd 3422 strd r3, r4, [sp, #136] ; 0x88 - 191a0: f77f ad17 ble.w 18bd2 <_vfprintf_r+0x2f6> - 191a4: 980c ldr r0, [sp, #48] ; 0x30 - 191a6: aa21 add r2, sp, #132 ; 0x84 - 191a8: 4659 mov r1, fp - 191aa: f003 f953 bl 1c454 <__sprint_r> - 191ae: 2800 cmp r0, #0 - 191b0: d1eb bne.n 1918a <_vfprintf_r+0x8ae> - 191b2: 9c23 ldr r4, [sp, #140] ; 0x8c - 191b4: f10d 09b8 add.w r9, sp, #184 ; 0xb8 - 191b8: e50d b.n 18bd6 <_vfprintf_r+0x2fa> - 191ba: 9b12 ldr r3, [sp, #72] ; 0x48 - 191bc: 9f22 ldr r7, [sp, #136] ; 0x88 - 191be: 2b01 cmp r3, #1 - 191c0: f104 0401 add.w r4, r4, #1 - 191c4: f107 0701 add.w r7, r7, #1 - 191c8: f109 0a08 add.w sl, r9, #8 - 191cc: f340 8151 ble.w 19472 <_vfprintf_r+0xb96> - 191d0: 2301 movs r3, #1 - 191d2: 2f07 cmp r7, #7 - 191d4: e9cd 7422 strd r7, r4, [sp, #136] ; 0x88 - 191d8: f8c9 5000 str.w r5, [r9] - 191dc: f8c9 3004 str.w r3, [r9, #4] - 191e0: f300 82b9 bgt.w 19756 <_vfprintf_r+0xe7a> - 191e4: 9b13 ldr r3, [sp, #76] ; 0x4c - 191e6: 9a15 ldr r2, [sp, #84] ; 0x54 - 191e8: 3701 adds r7, #1 - 191ea: 441c add r4, r3 - 191ec: 2f07 cmp r7, #7 - 191ee: e9ca 2300 strd r2, r3, [sl] - 191f2: e9cd 7422 strd r7, r4, [sp, #136] ; 0x88 - 191f6: f300 82bb bgt.w 19770 <_vfprintf_r+0xe94> - 191fa: f10a 0a08 add.w sl, sl, #8 - 191fe: 9b12 ldr r3, [sp, #72] ; 0x48 - 19200: e9dd 0110 ldrd r0, r1, [sp, #64] ; 0x40 - 19204: f103 39ff add.w r9, r3, #4294967295 ; 0xffffffff - 19208: 2200 movs r2, #0 - 1920a: 2300 movs r3, #0 - 1920c: f004 fd22 bl 1dc54 <__aeabi_dcmpeq> - 19210: 2800 cmp r0, #0 - 19212: f040 8152 bne.w 194ba <_vfprintf_r+0xbde> - 19216: 3701 adds r7, #1 - 19218: 3501 adds r5, #1 - 1921a: 444c add r4, r9 - 1921c: 2f07 cmp r7, #7 - 1921e: e9cd 7422 strd r7, r4, [sp, #136] ; 0x88 - 19222: f8ca 5000 str.w r5, [sl] - 19226: f8ca 9004 str.w r9, [sl, #4] - 1922a: f300 8130 bgt.w 1948e <_vfprintf_r+0xbb2> - 1922e: f10a 0a08 add.w sl, sl, #8 - 19232: 9b16 ldr r3, [sp, #88] ; 0x58 - 19234: f8ca 3004 str.w r3, [sl, #4] - 19238: 3701 adds r7, #1 - 1923a: 441c add r4, r3 - 1923c: 2f07 cmp r7, #7 - 1923e: ab1d add r3, sp, #116 ; 0x74 - 19240: e9cd 7422 strd r7, r4, [sp, #136] ; 0x88 - 19244: f8ca 3000 str.w r3, [sl] - 19248: dcac bgt.n 191a4 <_vfprintf_r+0x8c8> - 1924a: f10a 0908 add.w r9, sl, #8 - 1924e: e4c2 b.n 18bd6 <_vfprintf_r+0x2fa> - 19250: 2e10 cmp r6, #16 - 19252: 9a22 ldr r2, [sp, #136] ; 0x88 - 19254: dd35 ble.n 192c2 <_vfprintf_r+0x9e6> - 19256: 4659 mov r1, fp - 19258: 9317 str r3, [sp, #92] ; 0x5c - 1925a: 46b3 mov fp, r6 - 1925c: 4623 mov r3, r4 - 1925e: 462e mov r6, r5 - 19260: 9c0c ldr r4, [sp, #48] ; 0x30 - 19262: f04f 0a10 mov.w sl, #16 - 19266: 460d mov r5, r1 - 19268: e00b b.n 19282 <_vfprintf_r+0x9a6> - 1926a: bf00 nop - 1926c: 0002c180 .word 0x0002c180 - 19270: 0002c1b4 .word 0x0002c1b4 - 19274: f1ab 0b10 sub.w fp, fp, #16 - 19278: f1bb 0f10 cmp.w fp, #16 - 1927c: f109 0908 add.w r9, r9, #8 - 19280: dd19 ble.n 192b6 <_vfprintf_r+0x9da> - 19282: 3201 adds r2, #1 - 19284: 49b3 ldr r1, [pc, #716] ; (19554 <_vfprintf_r+0xc78>) - 19286: 3310 adds r3, #16 - 19288: 2a07 cmp r2, #7 - 1928a: e9c9 1a00 strd r1, sl, [r9] - 1928e: e9cd 2322 strd r2, r3, [sp, #136] ; 0x88 - 19292: ddef ble.n 19274 <_vfprintf_r+0x998> - 19294: aa21 add r2, sp, #132 ; 0x84 - 19296: 4629 mov r1, r5 - 19298: 4620 mov r0, r4 - 1929a: f10d 09b8 add.w r9, sp, #184 ; 0xb8 - 1929e: f003 f8d9 bl 1c454 <__sprint_r> - 192a2: 2800 cmp r0, #0 - 192a4: f040 82ca bne.w 1983c <_vfprintf_r+0xf60> - 192a8: f1ab 0b10 sub.w fp, fp, #16 - 192ac: f1bb 0f10 cmp.w fp, #16 - 192b0: e9dd 2322 ldrd r2, r3, [sp, #136] ; 0x88 - 192b4: dce5 bgt.n 19282 <_vfprintf_r+0x9a6> - 192b6: 4629 mov r1, r5 - 192b8: 461c mov r4, r3 - 192ba: 9b17 ldr r3, [sp, #92] ; 0x5c - 192bc: 4635 mov r5, r6 - 192be: 465e mov r6, fp - 192c0: 468b mov fp, r1 - 192c2: 3201 adds r2, #1 - 192c4: 49a3 ldr r1, [pc, #652] ; (19554 <_vfprintf_r+0xc78>) - 192c6: f8c9 6004 str.w r6, [r9, #4] - 192ca: 4434 add r4, r6 - 192cc: 2a07 cmp r2, #7 - 192ce: e9cd 2422 strd r2, r4, [sp, #136] ; 0x88 - 192d2: f8c9 1000 str.w r1, [r9] - 192d6: f300 82a2 bgt.w 1981e <_vfprintf_r+0xf42> - 192da: f109 0908 add.w r9, r9, #8 - 192de: e434 b.n 18b4a <_vfprintf_r+0x26e> - 192e0: 980c ldr r0, [sp, #48] ; 0x30 - 192e2: aa21 add r2, sp, #132 ; 0x84 - 192e4: 4659 mov r1, fp - 192e6: f003 f8b5 bl 1c454 <__sprint_r> - 192ea: 2800 cmp r0, #0 - 192ec: f47f af4d bne.w 1918a <_vfprintf_r+0x8ae> - 192f0: 9c23 ldr r4, [sp, #140] ; 0x8c - 192f2: f10d 09b8 add.w r9, sp, #184 ; 0xb8 - 192f6: e44f b.n 18b98 <_vfprintf_r+0x2bc> - 192f8: 980c ldr r0, [sp, #48] ; 0x30 - 192fa: 9317 str r3, [sp, #92] ; 0x5c - 192fc: aa21 add r2, sp, #132 ; 0x84 - 192fe: 4659 mov r1, fp - 19300: f003 f8a8 bl 1c454 <__sprint_r> - 19304: 2800 cmp r0, #0 - 19306: f47f af40 bne.w 1918a <_vfprintf_r+0x8ae> - 1930a: 9c23 ldr r4, [sp, #140] ; 0x8c - 1930c: 9b17 ldr r3, [sp, #92] ; 0x5c - 1930e: f10d 09b8 add.w r9, sp, #184 ; 0xb8 - 19312: e42f b.n 18b74 <_vfprintf_r+0x298> - 19314: 2d10 cmp r5, #16 - 19316: 9b22 ldr r3, [sp, #136] ; 0x88 - 19318: dd1f ble.n 1935a <_vfprintf_r+0xa7e> - 1931a: 9f0c ldr r7, [sp, #48] ; 0x30 - 1931c: 2610 movs r6, #16 - 1931e: e004 b.n 1932a <_vfprintf_r+0xa4e> - 19320: 3d10 subs r5, #16 - 19322: 2d10 cmp r5, #16 - 19324: f109 0908 add.w r9, r9, #8 - 19328: dd17 ble.n 1935a <_vfprintf_r+0xa7e> - 1932a: 3301 adds r3, #1 - 1932c: 4a89 ldr r2, [pc, #548] ; (19554 <_vfprintf_r+0xc78>) - 1932e: 3410 adds r4, #16 - 19330: 2b07 cmp r3, #7 - 19332: e9c9 2600 strd r2, r6, [r9] - 19336: e9cd 3422 strd r3, r4, [sp, #136] ; 0x88 - 1933a: ddf1 ble.n 19320 <_vfprintf_r+0xa44> - 1933c: aa21 add r2, sp, #132 ; 0x84 - 1933e: 4659 mov r1, fp - 19340: 4638 mov r0, r7 - 19342: f10d 09b8 add.w r9, sp, #184 ; 0xb8 - 19346: f003 f885 bl 1c454 <__sprint_r> - 1934a: 2800 cmp r0, #0 - 1934c: f47f af1d bne.w 1918a <_vfprintf_r+0x8ae> - 19350: 3d10 subs r5, #16 - 19352: 2d10 cmp r5, #16 - 19354: e9dd 3422 ldrd r3, r4, [sp, #136] ; 0x88 - 19358: dce7 bgt.n 1932a <_vfprintf_r+0xa4e> - 1935a: 3301 adds r3, #1 - 1935c: 4a7d ldr r2, [pc, #500] ; (19554 <_vfprintf_r+0xc78>) - 1935e: f8c9 5004 str.w r5, [r9, #4] - 19362: 442c add r4, r5 - 19364: 2b07 cmp r3, #7 - 19366: e9cd 3422 strd r3, r4, [sp, #136] ; 0x88 - 1936a: f8c9 2000 str.w r2, [r9] - 1936e: f77f ac3b ble.w 18be8 <_vfprintf_r+0x30c> - 19372: 980c ldr r0, [sp, #48] ; 0x30 - 19374: aa21 add r2, sp, #132 ; 0x84 - 19376: 4659 mov r1, fp - 19378: f003 f86c bl 1c454 <__sprint_r> - 1937c: 2800 cmp r0, #0 - 1937e: f47f af04 bne.w 1918a <_vfprintf_r+0x8ae> - 19382: 9c23 ldr r4, [sp, #140] ; 0x8c - 19384: e430 b.n 18be8 <_vfprintf_r+0x30c> - 19386: 46b2 mov sl, r6 - 19388: e447 b.n 18c1a <_vfprintf_r+0x33e> - 1938a: 991b ldr r1, [sp, #108] ; 0x6c - 1938c: 2900 cmp r1, #0 - 1938e: f340 8212 ble.w 197b6 <_vfprintf_r+0xeda> - 19392: 9e0f ldr r6, [sp, #60] ; 0x3c - 19394: 9b12 ldr r3, [sp, #72] ; 0x48 - 19396: 429e cmp r6, r3 - 19398: bfa8 it ge - 1939a: 461e movge r6, r3 - 1939c: 2e00 cmp r6, #0 - 1939e: dd0b ble.n 193b8 <_vfprintf_r+0xadc> - 193a0: 9b22 ldr r3, [sp, #136] ; 0x88 - 193a2: 3301 adds r3, #1 - 193a4: 4434 add r4, r6 - 193a6: 2b07 cmp r3, #7 - 193a8: e9c9 5600 strd r5, r6, [r9] - 193ac: 9423 str r4, [sp, #140] ; 0x8c - 193ae: 9322 str r3, [sp, #136] ; 0x88 - 193b0: f300 83a8 bgt.w 19b04 <_vfprintf_r+0x1228> - 193b4: f109 0908 add.w r9, r9, #8 - 193b8: 9f0f ldr r7, [sp, #60] ; 0x3c - 193ba: 2e00 cmp r6, #0 - 193bc: bfa8 it ge - 193be: 1bbf subge r7, r7, r6 - 193c0: 2f00 cmp r7, #0 - 193c2: f300 81a0 bgt.w 19706 <_vfprintf_r+0xe2a> - 193c6: 9a1b ldr r2, [sp, #108] ; 0x6c - 193c8: 9b12 ldr r3, [sp, #72] ; 0x48 - 193ca: 429a cmp r2, r3 - 193cc: f280 8179 bge.w 196c2 <_vfprintf_r+0xde6> - 193d0: 9b13 ldr r3, [sp, #76] ; 0x4c - 193d2: 9915 ldr r1, [sp, #84] ; 0x54 - 193d4: 441c add r4, r3 - 193d6: e9c9 1300 strd r1, r3, [r9] - 193da: 9b22 ldr r3, [sp, #136] ; 0x88 - 193dc: 9423 str r4, [sp, #140] ; 0x8c - 193de: 3301 adds r3, #1 - 193e0: 2b07 cmp r3, #7 - 193e2: 9322 str r3, [sp, #136] ; 0x88 - 193e4: f300 8373 bgt.w 19ace <_vfprintf_r+0x11f2> - 193e8: f109 0908 add.w r9, r9, #8 - 193ec: 9b12 ldr r3, [sp, #72] ; 0x48 - 193ee: 990f ldr r1, [sp, #60] ; 0x3c - 193f0: 1a9a subs r2, r3, r2 - 193f2: 1a5e subs r6, r3, r1 - 193f4: 4296 cmp r6, r2 - 193f6: bfa8 it ge - 193f8: 4616 movge r6, r2 - 193fa: 2e00 cmp r6, #0 - 193fc: dd0e ble.n 1941c <_vfprintf_r+0xb40> - 193fe: 9b22 ldr r3, [sp, #136] ; 0x88 - 19400: f8c9 6004 str.w r6, [r9, #4] - 19404: 3301 adds r3, #1 - 19406: 440d add r5, r1 - 19408: 4434 add r4, r6 - 1940a: 2b07 cmp r3, #7 - 1940c: f8c9 5000 str.w r5, [r9] - 19410: 9423 str r4, [sp, #140] ; 0x8c - 19412: 9322 str r3, [sp, #136] ; 0x88 - 19414: f300 8385 bgt.w 19b22 <_vfprintf_r+0x1246> - 19418: f109 0908 add.w r9, r9, #8 - 1941c: 2e00 cmp r6, #0 - 1941e: bfac ite ge - 19420: 1b95 subge r5, r2, r6 - 19422: 4615 movlt r5, r2 - 19424: 2d00 cmp r5, #0 - 19426: f77f abd6 ble.w 18bd6 <_vfprintf_r+0x2fa> - 1942a: 2d10 cmp r5, #16 - 1942c: 9b22 ldr r3, [sp, #136] ; 0x88 - 1942e: 4e4a ldr r6, [pc, #296] ; (19558 <_vfprintf_r+0xc7c>) - 19430: f77f aead ble.w 1918e <_vfprintf_r+0x8b2> - 19434: f8dd a030 ldr.w sl, [sp, #48] ; 0x30 - 19438: 2710 movs r7, #16 - 1943a: e005 b.n 19448 <_vfprintf_r+0xb6c> - 1943c: f109 0908 add.w r9, r9, #8 - 19440: 3d10 subs r5, #16 - 19442: 2d10 cmp r5, #16 - 19444: f77f aea3 ble.w 1918e <_vfprintf_r+0x8b2> - 19448: 3301 adds r3, #1 - 1944a: 3410 adds r4, #16 - 1944c: 2b07 cmp r3, #7 - 1944e: e9c9 6700 strd r6, r7, [r9] - 19452: e9cd 3422 strd r3, r4, [sp, #136] ; 0x88 - 19456: ddf1 ble.n 1943c <_vfprintf_r+0xb60> - 19458: aa21 add r2, sp, #132 ; 0x84 - 1945a: 4659 mov r1, fp - 1945c: 4650 mov r0, sl - 1945e: f002 fff9 bl 1c454 <__sprint_r> - 19462: 2800 cmp r0, #0 - 19464: f47f ae91 bne.w 1918a <_vfprintf_r+0x8ae> - 19468: e9dd 3422 ldrd r3, r4, [sp, #136] ; 0x88 - 1946c: f10d 09b8 add.w r9, sp, #184 ; 0xb8 - 19470: e7e6 b.n 19440 <_vfprintf_r+0xb64> - 19472: 9b06 ldr r3, [sp, #24] - 19474: 07d8 lsls r0, r3, #31 - 19476: f53f aeab bmi.w 191d0 <_vfprintf_r+0x8f4> - 1947a: 2301 movs r3, #1 - 1947c: 2f07 cmp r7, #7 - 1947e: e9cd 7422 strd r7, r4, [sp, #136] ; 0x88 - 19482: f8c9 5000 str.w r5, [r9] - 19486: f8c9 3004 str.w r3, [r9, #4] - 1948a: f77f aed2 ble.w 19232 <_vfprintf_r+0x956> - 1948e: 980c ldr r0, [sp, #48] ; 0x30 - 19490: aa21 add r2, sp, #132 ; 0x84 - 19492: 4659 mov r1, fp - 19494: f002 ffde bl 1c454 <__sprint_r> - 19498: 2800 cmp r0, #0 - 1949a: f47f ae76 bne.w 1918a <_vfprintf_r+0x8ae> - 1949e: e9dd 7422 ldrd r7, r4, [sp, #136] ; 0x88 - 194a2: f10d 0ab8 add.w sl, sp, #184 ; 0xb8 - 194a6: e6c4 b.n 19232 <_vfprintf_r+0x956> - 194a8: 9a08 ldr r2, [sp, #32] - 194aa: 2a00 cmp r2, #0 - 194ac: f040 82e6 bne.w 19a7c <_vfprintf_r+0x11a0> - 194b0: 2300 movs r3, #0 - 194b2: 9308 str r3, [sp, #32] - 194b4: 930a str r3, [sp, #40] ; 0x28 - 194b6: ad2e add r5, sp, #184 ; 0xb8 - 194b8: e42a b.n 18d10 <_vfprintf_r+0x434> - 194ba: f1b9 0f00 cmp.w r9, #0 - 194be: f77f aeb8 ble.w 19232 <_vfprintf_r+0x956> - 194c2: f1b9 0f10 cmp.w r9, #16 - 194c6: 4e24 ldr r6, [pc, #144] ; (19558 <_vfprintf_r+0xc7c>) - 194c8: f340 820b ble.w 198e2 <_vfprintf_r+0x1006> - 194cc: f8cd 8020 str.w r8, [sp, #32] - 194d0: 2510 movs r5, #16 - 194d2: f8dd 8030 ldr.w r8, [sp, #48] ; 0x30 - 194d6: e007 b.n 194e8 <_vfprintf_r+0xc0c> - 194d8: f10a 0a08 add.w sl, sl, #8 - 194dc: f1a9 0910 sub.w r9, r9, #16 - 194e0: f1b9 0f10 cmp.w r9, #16 - 194e4: f340 81fb ble.w 198de <_vfprintf_r+0x1002> - 194e8: 3701 adds r7, #1 - 194ea: 3410 adds r4, #16 - 194ec: 2f07 cmp r7, #7 - 194ee: e9ca 6500 strd r6, r5, [sl] - 194f2: e9cd 7422 strd r7, r4, [sp, #136] ; 0x88 - 194f6: ddef ble.n 194d8 <_vfprintf_r+0xbfc> - 194f8: aa21 add r2, sp, #132 ; 0x84 - 194fa: 4659 mov r1, fp - 194fc: 4640 mov r0, r8 - 194fe: f002 ffa9 bl 1c454 <__sprint_r> - 19502: 2800 cmp r0, #0 - 19504: f47f ae41 bne.w 1918a <_vfprintf_r+0x8ae> - 19508: e9dd 7422 ldrd r7, r4, [sp, #136] ; 0x88 - 1950c: f10d 0ab8 add.w sl, sp, #184 ; 0xb8 - 19510: e7e4 b.n 194dc <_vfprintf_r+0xc00> - 19512: 980c ldr r0, [sp, #48] ; 0x30 - 19514: aa21 add r2, sp, #132 ; 0x84 - 19516: 4659 mov r1, fp - 19518: f002 ff9c bl 1c454 <__sprint_r> - 1951c: 2800 cmp r0, #0 - 1951e: f47f ae34 bne.w 1918a <_vfprintf_r+0x8ae> - 19522: 9c23 ldr r4, [sp, #140] ; 0x8c - 19524: f10d 09b8 add.w r9, sp, #184 ; 0xb8 - 19528: f7ff bb42 b.w 18bb0 <_vfprintf_r+0x2d4> - 1952c: 4253 negs r3, r2 - 1952e: 212d movs r1, #45 ; 0x2d - 19530: 2201 movs r2, #1 - 19532: e459 b.n 18de8 <_vfprintf_r+0x50c> - 19534: 9b06 ldr r3, [sp, #24] - 19536: 07df lsls r7, r3, #31 - 19538: f57f ab4d bpl.w 18bd6 <_vfprintf_r+0x2fa> - 1953c: e546 b.n 18fcc <_vfprintf_r+0x6f0> - 1953e: 920d str r2, [sp, #52] ; 0x34 - 19540: f7ff ba2e b.w 189a0 <_vfprintf_r+0xc4> - 19544: ad2e add r5, sp, #184 ; 0xb8 - 19546: f7ff bbe3 b.w 18d10 <_vfprintf_r+0x434> - 1954a: b212 sxth r2, r2 - 1954c: 4613 mov r3, r2 - 1954e: f7ff bbc5 b.w 18cdc <_vfprintf_r+0x400> - 19552: bf00 nop - 19554: 0002c1a4 .word 0x0002c1a4 - 19558: 0002c1b4 .word 0x0002c1b4 - 1955c: e9dd 0110 ldrd r0, r1, [sp, #64] ; 0x40 - 19560: 4602 mov r2, r0 - 19562: 460b mov r3, r1 - 19564: f004 fba8 bl 1dcb8 <__aeabi_dcmpun> - 19568: 2800 cmp r0, #0 - 1956a: f040 834f bne.w 19c0c <_vfprintf_r+0x1330> - 1956e: 9a08 ldr r2, [sp, #32] - 19570: f027 0320 bic.w r3, r7, #32 - 19574: 1c51 adds r1, r2, #1 - 19576: 930a str r3, [sp, #40] ; 0x28 - 19578: f000 82d0 beq.w 19b1c <_vfprintf_r+0x1240> - 1957c: 2b47 cmp r3, #71 ; 0x47 - 1957e: f000 825d beq.w 19a3c <_vfprintf_r+0x1160> - 19582: e9dd 1210 ldrd r1, r2, [sp, #64] ; 0x40 - 19586: f444 7380 orr.w r3, r4, #256 ; 0x100 - 1958a: 9306 str r3, [sp, #24] - 1958c: 4613 mov r3, r2 - 1958e: 2b00 cmp r3, #0 - 19590: f2c0 8228 blt.w 199e4 <_vfprintf_r+0x1108> - 19594: 9307 str r3, [sp, #28] - 19596: f8dd a040 ldr.w sl, [sp, #64] ; 0x40 - 1959a: 2300 movs r3, #0 - 1959c: 930e str r3, [sp, #56] ; 0x38 - 1959e: 2f66 cmp r7, #102 ; 0x66 - 195a0: f000 81c6 beq.w 19930 <_vfprintf_r+0x1054> - 195a4: 2f46 cmp r7, #70 ; 0x46 - 195a6: f000 81c3 beq.w 19930 <_vfprintf_r+0x1054> - 195aa: 9b0a ldr r3, [sp, #40] ; 0x28 - 195ac: 2b45 cmp r3, #69 ; 0x45 - 195ae: 4652 mov r2, sl - 195b0: 9b07 ldr r3, [sp, #28] - 195b2: f000 8266 beq.w 19a82 <_vfprintf_r+0x11a6> - 195b6: a91f add r1, sp, #124 ; 0x7c - 195b8: 9104 str r1, [sp, #16] - 195ba: a91c add r1, sp, #112 ; 0x70 - 195bc: 9103 str r1, [sp, #12] - 195be: a91b add r1, sp, #108 ; 0x6c - 195c0: 9e08 ldr r6, [sp, #32] - 195c2: 9102 str r1, [sp, #8] - 195c4: 2102 movs r1, #2 - 195c6: 980c ldr r0, [sp, #48] ; 0x30 - 195c8: 9601 str r6, [sp, #4] - 195ca: 9100 str r1, [sp, #0] - 195cc: f000 fcd0 bl 19f70 <_dtoa_r> - 195d0: 2f67 cmp r7, #103 ; 0x67 - 195d2: 4605 mov r5, r0 - 195d4: f040 835b bne.w 19c8e <_vfprintf_r+0x13b2> - 195d8: 07e3 lsls r3, r4, #31 - 195da: f100 8264 bmi.w 19aa6 <_vfprintf_r+0x11ca> - 195de: 9b1f ldr r3, [sp, #124] ; 0x7c - 195e0: 1b5b subs r3, r3, r5 - 195e2: 9312 str r3, [sp, #72] ; 0x48 - 195e4: 9b1b ldr r3, [sp, #108] ; 0x6c - 195e6: 930f str r3, [sp, #60] ; 0x3c - 195e8: 9b0a ldr r3, [sp, #40] ; 0x28 - 195ea: 2b47 cmp r3, #71 ; 0x47 - 195ec: d107 bne.n 195fe <_vfprintf_r+0xd22> - 195ee: 9b0f ldr r3, [sp, #60] ; 0x3c - 195f0: 1cde adds r6, r3, #3 - 195f2: db03 blt.n 195fc <_vfprintf_r+0xd20> - 195f4: 9a08 ldr r2, [sp, #32] - 195f6: 429a cmp r2, r3 - 195f8: f280 8276 bge.w 19ae8 <_vfprintf_r+0x120c> - 195fc: 3f02 subs r7, #2 - 195fe: 9a0f ldr r2, [sp, #60] ; 0x3c - 19600: f88d 7074 strb.w r7, [sp, #116] ; 0x74 - 19604: 1e53 subs r3, r2, #1 - 19606: 2b00 cmp r3, #0 - 19608: 931b str r3, [sp, #108] ; 0x6c - 1960a: bfb6 itet lt - 1960c: f1c2 0301 rsblt r3, r2, #1 - 19610: 222b movge r2, #43 ; 0x2b - 19612: 222d movlt r2, #45 ; 0x2d - 19614: 2b09 cmp r3, #9 - 19616: f88d 2075 strb.w r2, [sp, #117] ; 0x75 - 1961a: f340 82bc ble.w 19b96 <_vfprintf_r+0x12ba> - 1961e: f10d 0683 add.w r6, sp, #131 ; 0x83 - 19622: f8df c2f8 ldr.w ip, [pc, #760] ; 1991c <_vfprintf_r+0x1040> - 19626: 4632 mov r2, r6 - 19628: 4610 mov r0, r2 - 1962a: fb8c 2103 smull r2, r1, ip, r3 - 1962e: 17da asrs r2, r3, #31 - 19630: ebc2 02a1 rsb r2, r2, r1, asr #2 - 19634: eb02 0182 add.w r1, r2, r2, lsl #2 - 19638: eba3 0141 sub.w r1, r3, r1, lsl #1 - 1963c: 3130 adds r1, #48 ; 0x30 - 1963e: f800 1c01 strb.w r1, [r0, #-1] - 19642: 4619 mov r1, r3 - 19644: 2963 cmp r1, #99 ; 0x63 - 19646: 4613 mov r3, r2 - 19648: f100 32ff add.w r2, r0, #4294967295 ; 0xffffffff - 1964c: dcec bgt.n 19628 <_vfprintf_r+0xd4c> - 1964e: 3330 adds r3, #48 ; 0x30 - 19650: b2d9 uxtb r1, r3 - 19652: 1e83 subs r3, r0, #2 - 19654: 429e cmp r6, r3 - 19656: f802 1c01 strb.w r1, [r2, #-1] - 1965a: f240 8315 bls.w 19c88 <_vfprintf_r+0x13ac> - 1965e: 4613 mov r3, r2 - 19660: f10d 0276 add.w r2, sp, #118 ; 0x76 - 19664: e001 b.n 1966a <_vfprintf_r+0xd8e> - 19666: f813 1b01 ldrb.w r1, [r3], #1 - 1966a: f802 1b01 strb.w r1, [r2], #1 - 1966e: 429e cmp r6, r3 - 19670: d1f9 bne.n 19666 <_vfprintf_r+0xd8a> - 19672: f10d 0385 add.w r3, sp, #133 ; 0x85 - 19676: f10d 0276 add.w r2, sp, #118 ; 0x76 - 1967a: 1a1b subs r3, r3, r0 - 1967c: 4413 add r3, r2 - 1967e: aa1d add r2, sp, #116 ; 0x74 - 19680: 1a9b subs r3, r3, r2 - 19682: 9316 str r3, [sp, #88] ; 0x58 - 19684: 9a12 ldr r2, [sp, #72] ; 0x48 - 19686: 9b16 ldr r3, [sp, #88] ; 0x58 - 19688: 2a01 cmp r2, #1 - 1968a: 4413 add r3, r2 - 1968c: 930a str r3, [sp, #40] ; 0x28 - 1968e: f340 82b4 ble.w 19bfa <_vfprintf_r+0x131e> - 19692: 9b0a ldr r3, [sp, #40] ; 0x28 - 19694: 9a13 ldr r2, [sp, #76] ; 0x4c - 19696: 4413 add r3, r2 - 19698: 930a str r3, [sp, #40] ; 0x28 - 1969a: ea23 73e3 bic.w r3, r3, r3, asr #31 - 1969e: 9307 str r3, [sp, #28] - 196a0: 2300 movs r3, #0 - 196a2: 930f str r3, [sp, #60] ; 0x3c - 196a4: e17d b.n 199a2 <_vfprintf_r+0x10c6> - 196a6: 2230 movs r2, #48 ; 0x30 - 196a8: f88d 2068 strb.w r2, [sp, #104] ; 0x68 - 196ac: f88d 7069 strb.w r7, [sp, #105] ; 0x69 - 196b0: f044 0402 orr.w r4, r4, #2 - 196b4: 2202 movs r2, #2 - 196b6: f7ff bb96 b.w 18de6 <_vfprintf_r+0x50a> - 196ba: 2301 movs r3, #1 - 196bc: 202b movs r0, #43 ; 0x2b - 196be: f7ff b96f b.w 189a0 <_vfprintf_r+0xc4> - 196c2: 9b06 ldr r3, [sp, #24] - 196c4: 07de lsls r6, r3, #31 - 196c6: f53f ae83 bmi.w 193d0 <_vfprintf_r+0xaf4> - 196ca: 9b12 ldr r3, [sp, #72] ; 0x48 - 196cc: 990f ldr r1, [sp, #60] ; 0x3c - 196ce: 1a9a subs r2, r3, r2 - 196d0: 1a5b subs r3, r3, r1 - 196d2: 4293 cmp r3, r2 - 196d4: bfa8 it ge - 196d6: 4613 movge r3, r2 - 196d8: 461e mov r6, r3 - 196da: e69f b.n 1941c <_vfprintf_r+0xb40> - 196dc: 980c ldr r0, [sp, #48] ; 0x30 - 196de: aa21 add r2, sp, #132 ; 0x84 - 196e0: 4659 mov r1, fp - 196e2: f002 feb7 bl 1c454 <__sprint_r> - 196e6: 2800 cmp r0, #0 - 196e8: f47f ad4f bne.w 1918a <_vfprintf_r+0x8ae> - 196ec: 9c23 ldr r4, [sp, #140] ; 0x8c - 196ee: f10d 09b8 add.w r9, sp, #184 ; 0xb8 - 196f2: e479 b.n 18fe8 <_vfprintf_r+0x70c> - 196f4: 2b06 cmp r3, #6 - 196f6: bf28 it cs - 196f8: 2306 movcs r3, #6 - 196fa: 4d89 ldr r5, [pc, #548] ; (19920 <_vfprintf_r+0x1044>) - 196fc: 930a str r3, [sp, #40] ; 0x28 - 196fe: 960d str r6, [sp, #52] ; 0x34 - 19700: 9307 str r3, [sp, #28] - 19702: f7ff ba0b b.w 18b1c <_vfprintf_r+0x240> - 19706: 2f10 cmp r7, #16 - 19708: 9b22 ldr r3, [sp, #136] ; 0x88 - 1970a: 4e86 ldr r6, [pc, #536] ; (19924 <_vfprintf_r+0x1048>) - 1970c: f340 8158 ble.w 199c0 <_vfprintf_r+0x10e4> - 19710: 4632 mov r2, r6 - 19712: 9508 str r5, [sp, #32] - 19714: 465e mov r6, fp - 19716: 9d0c ldr r5, [sp, #48] ; 0x30 - 19718: f04f 0a10 mov.w sl, #16 - 1971c: 4693 mov fp, r2 - 1971e: e005 b.n 1972c <_vfprintf_r+0xe50> - 19720: f109 0908 add.w r9, r9, #8 - 19724: 3f10 subs r7, #16 - 19726: 2f10 cmp r7, #16 - 19728: f340 8146 ble.w 199b8 <_vfprintf_r+0x10dc> - 1972c: 3301 adds r3, #1 - 1972e: 3410 adds r4, #16 - 19730: 2b07 cmp r3, #7 - 19732: e9c9 ba00 strd fp, sl, [r9] - 19736: e9cd 3422 strd r3, r4, [sp, #136] ; 0x88 - 1973a: ddf1 ble.n 19720 <_vfprintf_r+0xe44> - 1973c: aa21 add r2, sp, #132 ; 0x84 - 1973e: 4631 mov r1, r6 - 19740: 4628 mov r0, r5 - 19742: f002 fe87 bl 1c454 <__sprint_r> - 19746: 2800 cmp r0, #0 - 19748: f47f ae1d bne.w 19386 <_vfprintf_r+0xaaa> - 1974c: e9dd 3422 ldrd r3, r4, [sp, #136] ; 0x88 - 19750: f10d 09b8 add.w r9, sp, #184 ; 0xb8 - 19754: e7e6 b.n 19724 <_vfprintf_r+0xe48> - 19756: 980c ldr r0, [sp, #48] ; 0x30 - 19758: aa21 add r2, sp, #132 ; 0x84 - 1975a: 4659 mov r1, fp - 1975c: f002 fe7a bl 1c454 <__sprint_r> - 19760: 2800 cmp r0, #0 - 19762: f47f ad12 bne.w 1918a <_vfprintf_r+0x8ae> - 19766: e9dd 7422 ldrd r7, r4, [sp, #136] ; 0x88 - 1976a: f10d 0ab8 add.w sl, sp, #184 ; 0xb8 - 1976e: e539 b.n 191e4 <_vfprintf_r+0x908> - 19770: 980c ldr r0, [sp, #48] ; 0x30 - 19772: aa21 add r2, sp, #132 ; 0x84 - 19774: 4659 mov r1, fp - 19776: f002 fe6d bl 1c454 <__sprint_r> - 1977a: 2800 cmp r0, #0 - 1977c: f47f ad05 bne.w 1918a <_vfprintf_r+0x8ae> - 19780: e9dd 7422 ldrd r7, r4, [sp, #136] ; 0x88 - 19784: f10d 0ab8 add.w sl, sp, #184 ; 0xb8 - 19788: e539 b.n 191fe <_vfprintf_r+0x922> - 1978a: 4e67 ldr r6, [pc, #412] ; (19928 <_vfprintf_r+0x104c>) - 1978c: ad2e add r5, sp, #184 ; 0xb8 - 1978e: fba6 0203 umull r0, r2, r6, r3 - 19792: 08d2 lsrs r2, r2, #3 - 19794: eb02 0082 add.w r0, r2, r2, lsl #2 - 19798: eba3 0040 sub.w r0, r3, r0, lsl #1 - 1979c: 3030 adds r0, #48 ; 0x30 - 1979e: f805 0d01 strb.w r0, [r5, #-1]! - 197a2: 4618 mov r0, r3 - 197a4: 2809 cmp r0, #9 - 197a6: 4613 mov r3, r2 - 197a8: d8f1 bhi.n 1978e <_vfprintf_r+0xeb2> - 197aa: ab2e add r3, sp, #184 ; 0xb8 - 197ac: 1b5b subs r3, r3, r5 - 197ae: 9406 str r4, [sp, #24] - 197b0: 930a str r3, [sp, #40] ; 0x28 - 197b2: f7ff baad b.w 18d10 <_vfprintf_r+0x434> - 197b6: 9b22 ldr r3, [sp, #136] ; 0x88 - 197b8: 4a5c ldr r2, [pc, #368] ; (1992c <_vfprintf_r+0x1050>) - 197ba: f8c9 2000 str.w r2, [r9] - 197be: 3301 adds r3, #1 - 197c0: 3401 adds r4, #1 - 197c2: 2201 movs r2, #1 - 197c4: 2b07 cmp r3, #7 - 197c6: 9423 str r4, [sp, #140] ; 0x8c - 197c8: 9322 str r3, [sp, #136] ; 0x88 - 197ca: f8c9 2004 str.w r2, [r9, #4] - 197ce: f300 8110 bgt.w 199f2 <_vfprintf_r+0x1116> - 197d2: f109 0908 add.w r9, r9, #8 - 197d6: 2900 cmp r1, #0 - 197d8: d14d bne.n 19876 <_vfprintf_r+0xf9a> - 197da: 9b06 ldr r3, [sp, #24] - 197dc: 9a12 ldr r2, [sp, #72] ; 0x48 - 197de: f003 0301 and.w r3, r3, #1 - 197e2: 4313 orrs r3, r2 - 197e4: f43f a9f7 beq.w 18bd6 <_vfprintf_r+0x2fa> - 197e8: 9b13 ldr r3, [sp, #76] ; 0x4c - 197ea: 9915 ldr r1, [sp, #84] ; 0x54 - 197ec: 191a adds r2, r3, r4 - 197ee: e9c9 1300 strd r1, r3, [r9] - 197f2: 9b22 ldr r3, [sp, #136] ; 0x88 - 197f4: 9223 str r2, [sp, #140] ; 0x8c - 197f6: 3301 adds r3, #1 - 197f8: 2b07 cmp r3, #7 - 197fa: 9322 str r3, [sp, #136] ; 0x88 - 197fc: f300 8124 bgt.w 19a48 <_vfprintf_r+0x116c> - 19800: f109 0908 add.w r9, r9, #8 - 19804: 9912 ldr r1, [sp, #72] ; 0x48 - 19806: f8c9 5000 str.w r5, [r9] - 1980a: 3301 adds r3, #1 - 1980c: 188c adds r4, r1, r2 - 1980e: 2b07 cmp r3, #7 - 19810: e9cd 3422 strd r3, r4, [sp, #136] ; 0x88 - 19814: f8c9 1004 str.w r1, [r9, #4] - 19818: f77f a9db ble.w 18bd2 <_vfprintf_r+0x2f6> - 1981c: e4c2 b.n 191a4 <_vfprintf_r+0x8c8> - 1981e: 980c ldr r0, [sp, #48] ; 0x30 - 19820: 9317 str r3, [sp, #92] ; 0x5c - 19822: aa21 add r2, sp, #132 ; 0x84 - 19824: 4659 mov r1, fp - 19826: f002 fe15 bl 1c454 <__sprint_r> - 1982a: 2800 cmp r0, #0 - 1982c: f47f acad bne.w 1918a <_vfprintf_r+0x8ae> - 19830: 9c23 ldr r4, [sp, #140] ; 0x8c - 19832: 9b17 ldr r3, [sp, #92] ; 0x5c - 19834: f10d 09b8 add.w r9, sp, #184 ; 0xb8 - 19838: f7ff b987 b.w 18b4a <_vfprintf_r+0x26e> - 1983c: 46aa mov sl, r5 - 1983e: f7ff b9ec b.w 18c1a <_vfprintf_r+0x33e> - 19842: 980c ldr r0, [sp, #48] ; 0x30 - 19844: aa21 add r2, sp, #132 ; 0x84 - 19846: 4659 mov r1, fp - 19848: f002 fe04 bl 1c454 <__sprint_r> - 1984c: 2800 cmp r0, #0 - 1984e: f47f ac9c bne.w 1918a <_vfprintf_r+0x8ae> - 19852: 9c23 ldr r4, [sp, #140] ; 0x8c - 19854: f10d 09b8 add.w r9, sp, #184 ; 0xb8 - 19858: f7ff bbb3 b.w 18fc2 <_vfprintf_r+0x6e6> - 1985c: 980c ldr r0, [sp, #48] ; 0x30 - 1985e: aa21 add r2, sp, #132 ; 0x84 - 19860: 4659 mov r1, fp - 19862: f002 fdf7 bl 1c454 <__sprint_r> - 19866: 2800 cmp r0, #0 - 19868: f47f ac8f bne.w 1918a <_vfprintf_r+0x8ae> - 1986c: 9c23 ldr r4, [sp, #140] ; 0x8c - 1986e: f10d 09b8 add.w r9, sp, #184 ; 0xb8 - 19872: f7ff b995 b.w 18ba0 <_vfprintf_r+0x2c4> - 19876: 9b13 ldr r3, [sp, #76] ; 0x4c - 19878: 9815 ldr r0, [sp, #84] ; 0x54 - 1987a: 191a adds r2, r3, r4 - 1987c: e9c9 0300 strd r0, r3, [r9] - 19880: 9b22 ldr r3, [sp, #136] ; 0x88 - 19882: 9223 str r2, [sp, #140] ; 0x8c - 19884: 3301 adds r3, #1 - 19886: 2b07 cmp r3, #7 - 19888: 9322 str r3, [sp, #136] ; 0x88 - 1988a: f300 80dd bgt.w 19a48 <_vfprintf_r+0x116c> - 1988e: f109 0908 add.w r9, r9, #8 - 19892: 2900 cmp r1, #0 - 19894: dab6 bge.n 19804 <_vfprintf_r+0xf28> - 19896: 424f negs r7, r1 - 19898: 3110 adds r1, #16 - 1989a: 4e22 ldr r6, [pc, #136] ; (19924 <_vfprintf_r+0x1048>) - 1989c: f280 8195 bge.w 19bca <_vfprintf_r+0x12ee> - 198a0: f8dd a030 ldr.w sl, [sp, #48] ; 0x30 - 198a4: 2410 movs r4, #16 - 198a6: e005 b.n 198b4 <_vfprintf_r+0xfd8> - 198a8: f109 0908 add.w r9, r9, #8 - 198ac: 3f10 subs r7, #16 - 198ae: 2f10 cmp r7, #16 - 198b0: f340 818b ble.w 19bca <_vfprintf_r+0x12ee> - 198b4: 3301 adds r3, #1 - 198b6: 3210 adds r2, #16 - 198b8: 2b07 cmp r3, #7 - 198ba: e9c9 6400 strd r6, r4, [r9] - 198be: e9cd 3222 strd r3, r2, [sp, #136] ; 0x88 - 198c2: ddf1 ble.n 198a8 <_vfprintf_r+0xfcc> - 198c4: aa21 add r2, sp, #132 ; 0x84 - 198c6: 4659 mov r1, fp - 198c8: 4650 mov r0, sl - 198ca: f002 fdc3 bl 1c454 <__sprint_r> - 198ce: 2800 cmp r0, #0 - 198d0: f47f ac5b bne.w 1918a <_vfprintf_r+0x8ae> - 198d4: e9dd 3222 ldrd r3, r2, [sp, #136] ; 0x88 - 198d8: f10d 09b8 add.w r9, sp, #184 ; 0xb8 - 198dc: e7e6 b.n 198ac <_vfprintf_r+0xfd0> - 198de: f8dd 8020 ldr.w r8, [sp, #32] - 198e2: f8ca 6000 str.w r6, [sl] - 198e6: 3701 adds r7, #1 - 198e8: 444c add r4, r9 - 198ea: 2f07 cmp r7, #7 - 198ec: e9cd 7422 strd r7, r4, [sp, #136] ; 0x88 - 198f0: f8ca 9004 str.w r9, [sl, #4] - 198f4: f77f ac9b ble.w 1922e <_vfprintf_r+0x952> - 198f8: e5c9 b.n 1948e <_vfprintf_r+0xbb2> - 198fa: 4628 mov r0, r5 - 198fc: f8cd a020 str.w sl, [sp, #32] - 19900: 960d str r6, [sp, #52] ; 0x34 - 19902: 9406 str r4, [sp, #24] - 19904: f7fd fdbc bl 17480 - 19908: ea20 73e0 bic.w r3, r0, r0, asr #31 - 1990c: f89d 1067 ldrb.w r1, [sp, #103] ; 0x67 - 19910: 900a str r0, [sp, #40] ; 0x28 - 19912: 9307 str r3, [sp, #28] - 19914: f8cd a03c str.w sl, [sp, #60] ; 0x3c - 19918: f7ff b9c6 b.w 18ca8 <_vfprintf_r+0x3cc> - 1991c: 66666667 .word 0x66666667 - 19920: 0002c178 .word 0x0002c178 - 19924: 0002c1b4 .word 0x0002c1b4 - 19928: cccccccd .word 0xcccccccd - 1992c: 0002c180 .word 0x0002c180 - 19930: a91f add r1, sp, #124 ; 0x7c - 19932: e9dd 3607 ldrd r3, r6, [sp, #28] - 19936: 9104 str r1, [sp, #16] - 19938: a91c add r1, sp, #112 ; 0x70 - 1993a: 9103 str r1, [sp, #12] - 1993c: a91b add r1, sp, #108 ; 0x6c - 1993e: 9102 str r1, [sp, #8] - 19940: 2103 movs r1, #3 - 19942: 9601 str r6, [sp, #4] - 19944: 980c ldr r0, [sp, #48] ; 0x30 - 19946: 9100 str r1, [sp, #0] - 19948: 4652 mov r2, sl - 1994a: f000 fb11 bl 19f70 <_dtoa_r> - 1994e: 4605 mov r5, r0 - 19950: 1986 adds r6, r0, r6 - 19952: 782b ldrb r3, [r5, #0] - 19954: 2b30 cmp r3, #48 ; 0x30 - 19956: d064 beq.n 19a22 <_vfprintf_r+0x1146> - 19958: 9b1b ldr r3, [sp, #108] ; 0x6c - 1995a: 441e add r6, r3 - 1995c: 9907 ldr r1, [sp, #28] - 1995e: 4650 mov r0, sl - 19960: 2200 movs r2, #0 - 19962: 2300 movs r3, #0 - 19964: f004 f976 bl 1dc54 <__aeabi_dcmpeq> - 19968: 2800 cmp r0, #0 - 1996a: f000 809e beq.w 19aaa <_vfprintf_r+0x11ce> - 1996e: 4633 mov r3, r6 - 19970: 1b5b subs r3, r3, r5 - 19972: 9312 str r3, [sp, #72] ; 0x48 - 19974: 9b1b ldr r3, [sp, #108] ; 0x6c - 19976: 930f str r3, [sp, #60] ; 0x3c - 19978: 9b0a ldr r3, [sp, #40] ; 0x28 - 1997a: 2b47 cmp r3, #71 ; 0x47 - 1997c: f43f ae37 beq.w 195ee <_vfprintf_r+0xd12> - 19980: 2f66 cmp r7, #102 ; 0x66 - 19982: f47f ae3c bne.w 195fe <_vfprintf_r+0xd22> - 19986: 9a08 ldr r2, [sp, #32] - 19988: f004 0301 and.w r3, r4, #1 - 1998c: 4313 orrs r3, r2 - 1998e: 9a0f ldr r2, [sp, #60] ; 0x3c - 19990: 2a00 cmp r2, #0 - 19992: f340 8169 ble.w 19c68 <_vfprintf_r+0x138c> - 19996: 2b00 cmp r3, #0 - 19998: f040 8149 bne.w 19c2e <_vfprintf_r+0x1352> - 1999c: 9b0f ldr r3, [sp, #60] ; 0x3c - 1999e: 9307 str r3, [sp, #28] - 199a0: 930a str r3, [sp, #40] ; 0x28 - 199a2: 9b0e ldr r3, [sp, #56] ; 0x38 - 199a4: 2b00 cmp r3, #0 - 199a6: f000 808c beq.w 19ac2 <_vfprintf_r+0x11e6> - 199aa: 232d movs r3, #45 ; 0x2d - 199ac: f88d 3067 strb.w r3, [sp, #103] ; 0x67 - 199b0: 2300 movs r3, #0 - 199b2: 9308 str r3, [sp, #32] - 199b4: f7ff b97b b.w 18cae <_vfprintf_r+0x3d2> - 199b8: 465a mov r2, fp - 199ba: 9d08 ldr r5, [sp, #32] - 199bc: 46b3 mov fp, r6 - 199be: 4616 mov r6, r2 - 199c0: 3301 adds r3, #1 - 199c2: 443c add r4, r7 - 199c4: 2b07 cmp r3, #7 - 199c6: e9cd 3422 strd r3, r4, [sp, #136] ; 0x88 - 199ca: f8c9 6000 str.w r6, [r9] - 199ce: f8c9 7004 str.w r7, [r9, #4] - 199d2: dc47 bgt.n 19a64 <_vfprintf_r+0x1188> - 199d4: f109 0908 add.w r9, r9, #8 - 199d8: e4f5 b.n 193c6 <_vfprintf_r+0xaea> - 199da: 212d movs r1, #45 ; 0x2d - 199dc: f88d 1067 strb.w r1, [sp, #103] ; 0x67 - 199e0: f7ff b954 b.w 18c8c <_vfprintf_r+0x3b0> - 199e4: f103 4300 add.w r3, r3, #2147483648 ; 0x80000000 - 199e8: 9307 str r3, [sp, #28] - 199ea: 232d movs r3, #45 ; 0x2d - 199ec: 468a mov sl, r1 - 199ee: 930e str r3, [sp, #56] ; 0x38 - 199f0: e5d5 b.n 1959e <_vfprintf_r+0xcc2> - 199f2: 980c ldr r0, [sp, #48] ; 0x30 - 199f4: aa21 add r2, sp, #132 ; 0x84 - 199f6: 4659 mov r1, fp - 199f8: f002 fd2c bl 1c454 <__sprint_r> - 199fc: 2800 cmp r0, #0 - 199fe: f47f abc4 bne.w 1918a <_vfprintf_r+0x8ae> - 19a02: 991b ldr r1, [sp, #108] ; 0x6c - 19a04: 9c23 ldr r4, [sp, #140] ; 0x8c - 19a06: f10d 09b8 add.w r9, sp, #184 ; 0xb8 - 19a0a: e6e4 b.n 197d6 <_vfprintf_r+0xefa> - 19a0c: 980c ldr r0, [sp, #48] ; 0x30 - 19a0e: aa21 add r2, sp, #132 ; 0x84 - 19a10: 4659 mov r1, fp - 19a12: f002 fd1f bl 1c454 <__sprint_r> - 19a16: f7ff b900 b.w 18c1a <_vfprintf_r+0x33e> - 19a1a: f88d 0067 strb.w r0, [sp, #103] ; 0x67 - 19a1e: f7ff b871 b.w 18b04 <_vfprintf_r+0x228> - 19a22: 9907 ldr r1, [sp, #28] - 19a24: 4650 mov r0, sl - 19a26: 2200 movs r2, #0 - 19a28: 2300 movs r3, #0 - 19a2a: f004 f913 bl 1dc54 <__aeabi_dcmpeq> - 19a2e: 2800 cmp r0, #0 - 19a30: d192 bne.n 19958 <_vfprintf_r+0x107c> - 19a32: 9b08 ldr r3, [sp, #32] - 19a34: f1c3 0301 rsb r3, r3, #1 - 19a38: 931b str r3, [sp, #108] ; 0x6c - 19a3a: e78e b.n 1995a <_vfprintf_r+0x107e> - 19a3c: 2a00 cmp r2, #0 - 19a3e: 4613 mov r3, r2 - 19a40: bf08 it eq - 19a42: 2301 moveq r3, #1 - 19a44: 9308 str r3, [sp, #32] - 19a46: e59c b.n 19582 <_vfprintf_r+0xca6> - 19a48: 980c ldr r0, [sp, #48] ; 0x30 - 19a4a: aa21 add r2, sp, #132 ; 0x84 - 19a4c: 4659 mov r1, fp - 19a4e: f002 fd01 bl 1c454 <__sprint_r> - 19a52: 2800 cmp r0, #0 - 19a54: f47f ab99 bne.w 1918a <_vfprintf_r+0x8ae> - 19a58: e9dd 3222 ldrd r3, r2, [sp, #136] ; 0x88 - 19a5c: 991b ldr r1, [sp, #108] ; 0x6c - 19a5e: f10d 09b8 add.w r9, sp, #184 ; 0xb8 - 19a62: e716 b.n 19892 <_vfprintf_r+0xfb6> - 19a64: 980c ldr r0, [sp, #48] ; 0x30 - 19a66: aa21 add r2, sp, #132 ; 0x84 - 19a68: 4659 mov r1, fp - 19a6a: f002 fcf3 bl 1c454 <__sprint_r> - 19a6e: 2800 cmp r0, #0 - 19a70: f47f ab8b bne.w 1918a <_vfprintf_r+0x8ae> - 19a74: 9c23 ldr r4, [sp, #140] ; 0x8c - 19a76: f10d 09b8 add.w r9, sp, #184 ; 0xb8 - 19a7a: e4a4 b.n 193c6 <_vfprintf_r+0xaea> - 19a7c: 9c06 ldr r4, [sp, #24] - 19a7e: f7ff b93f b.w 18d00 <_vfprintf_r+0x424> - 19a82: 9908 ldr r1, [sp, #32] - 19a84: 980c ldr r0, [sp, #48] ; 0x30 - 19a86: 1c4e adds r6, r1, #1 - 19a88: a91f add r1, sp, #124 ; 0x7c - 19a8a: 9104 str r1, [sp, #16] - 19a8c: a91c add r1, sp, #112 ; 0x70 - 19a8e: 9103 str r1, [sp, #12] - 19a90: a91b add r1, sp, #108 ; 0x6c - 19a92: 9102 str r1, [sp, #8] - 19a94: 2102 movs r1, #2 - 19a96: 9601 str r6, [sp, #4] - 19a98: 9100 str r1, [sp, #0] - 19a9a: f000 fa69 bl 19f70 <_dtoa_r> - 19a9e: 4605 mov r5, r0 - 19aa0: 2f47 cmp r7, #71 ; 0x47 - 19aa2: f43f ad99 beq.w 195d8 <_vfprintf_r+0xcfc> - 19aa6: 442e add r6, r5 - 19aa8: e758 b.n 1995c <_vfprintf_r+0x1080> - 19aaa: 9b1f ldr r3, [sp, #124] ; 0x7c - 19aac: 42b3 cmp r3, r6 - 19aae: f4bf af5f bcs.w 19970 <_vfprintf_r+0x1094> - 19ab2: 2130 movs r1, #48 ; 0x30 - 19ab4: 1c5a adds r2, r3, #1 - 19ab6: 921f str r2, [sp, #124] ; 0x7c - 19ab8: 7019 strb r1, [r3, #0] - 19aba: 9b1f ldr r3, [sp, #124] ; 0x7c - 19abc: 429e cmp r6, r3 - 19abe: d8f9 bhi.n 19ab4 <_vfprintf_r+0x11d8> - 19ac0: e756 b.n 19970 <_vfprintf_r+0x1094> - 19ac2: 9b0e ldr r3, [sp, #56] ; 0x38 - 19ac4: f89d 1067 ldrb.w r1, [sp, #103] ; 0x67 - 19ac8: 9308 str r3, [sp, #32] - 19aca: f7ff b8ed b.w 18ca8 <_vfprintf_r+0x3cc> - 19ace: 980c ldr r0, [sp, #48] ; 0x30 - 19ad0: aa21 add r2, sp, #132 ; 0x84 - 19ad2: 4659 mov r1, fp - 19ad4: f002 fcbe bl 1c454 <__sprint_r> - 19ad8: 2800 cmp r0, #0 - 19ada: f47f ab56 bne.w 1918a <_vfprintf_r+0x8ae> - 19ade: 9a1b ldr r2, [sp, #108] ; 0x6c - 19ae0: 9c23 ldr r4, [sp, #140] ; 0x8c - 19ae2: f10d 09b8 add.w r9, sp, #184 ; 0xb8 - 19ae6: e481 b.n 193ec <_vfprintf_r+0xb10> - 19ae8: 9b12 ldr r3, [sp, #72] ; 0x48 - 19aea: 9a0f ldr r2, [sp, #60] ; 0x3c - 19aec: 4293 cmp r3, r2 - 19aee: dc5b bgt.n 19ba8 <_vfprintf_r+0x12cc> - 19af0: 07e4 lsls r4, r4, #31 - 19af2: 9b0f ldr r3, [sp, #60] ; 0x3c - 19af4: f100 80a5 bmi.w 19c42 <_vfprintf_r+0x1366> - 19af8: ea23 72e3 bic.w r2, r3, r3, asr #31 - 19afc: 9207 str r2, [sp, #28] - 19afe: 930a str r3, [sp, #40] ; 0x28 - 19b00: 2767 movs r7, #103 ; 0x67 - 19b02: e74e b.n 199a2 <_vfprintf_r+0x10c6> - 19b04: 980c ldr r0, [sp, #48] ; 0x30 - 19b06: aa21 add r2, sp, #132 ; 0x84 - 19b08: 4659 mov r1, fp - 19b0a: f002 fca3 bl 1c454 <__sprint_r> - 19b0e: 2800 cmp r0, #0 - 19b10: f47f ab3b bne.w 1918a <_vfprintf_r+0x8ae> - 19b14: 9c23 ldr r4, [sp, #140] ; 0x8c - 19b16: f10d 09b8 add.w r9, sp, #184 ; 0xb8 - 19b1a: e44d b.n 193b8 <_vfprintf_r+0xadc> - 19b1c: 2306 movs r3, #6 - 19b1e: 9308 str r3, [sp, #32] - 19b20: e52f b.n 19582 <_vfprintf_r+0xca6> - 19b22: 980c ldr r0, [sp, #48] ; 0x30 - 19b24: aa21 add r2, sp, #132 ; 0x84 - 19b26: 4659 mov r1, fp - 19b28: f002 fc94 bl 1c454 <__sprint_r> - 19b2c: 2800 cmp r0, #0 - 19b2e: f47f ab2c bne.w 1918a <_vfprintf_r+0x8ae> - 19b32: 9a1b ldr r2, [sp, #108] ; 0x6c - 19b34: 9b12 ldr r3, [sp, #72] ; 0x48 - 19b36: 9c23 ldr r4, [sp, #140] ; 0x8c - 19b38: 1a9a subs r2, r3, r2 - 19b3a: f10d 09b8 add.w r9, sp, #184 ; 0xb8 - 19b3e: e46d b.n 1941c <_vfprintf_r+0xb40> - 19b40: 9b08 ldr r3, [sp, #32] - 19b42: f89d 1067 ldrb.w r1, [sp, #103] ; 0x67 - 19b46: 960d str r6, [sp, #52] ; 0x34 - 19b48: 9406 str r4, [sp, #24] - 19b4a: 9307 str r3, [sp, #28] - 19b4c: 930a str r3, [sp, #40] ; 0x28 - 19b4e: 9008 str r0, [sp, #32] - 19b50: 900f str r0, [sp, #60] ; 0x3c - 19b52: f7ff b8a9 b.w 18ca8 <_vfprintf_r+0x3cc> - 19b56: f88d 0067 strb.w r0, [sp, #103] ; 0x67 - 19b5a: f7ff b90c b.w 18d76 <_vfprintf_r+0x49a> - 19b5e: f88d 0067 strb.w r0, [sp, #103] ; 0x67 - 19b62: f7ff b97a b.w 18e5a <_vfprintf_r+0x57e> - 19b66: f88d 0067 strb.w r0, [sp, #103] ; 0x67 - 19b6a: f7ff b97e b.w 18e6a <_vfprintf_r+0x58e> - 19b6e: f88d 0067 strb.w r0, [sp, #103] ; 0x67 - 19b72: f7ff b8a9 b.w 18cc8 <_vfprintf_r+0x3ec> - 19b76: f88d 0067 strb.w r0, [sp, #103] ; 0x67 - 19b7a: f7ff b9c6 b.w 18f0a <_vfprintf_r+0x62e> - 19b7e: f88d 0067 strb.w r0, [sp, #103] ; 0x67 - 19b82: f7ff b9d3 b.w 18f2c <_vfprintf_r+0x650> - 19b86: f88d 0067 strb.w r0, [sp, #103] ; 0x67 - 19b8a: f7ff b854 b.w 18c36 <_vfprintf_r+0x35a> - 19b8e: f88d 0067 strb.w r0, [sp, #103] ; 0x67 - 19b92: f7ff b917 b.w 18dc4 <_vfprintf_r+0x4e8> - 19b96: 3330 adds r3, #48 ; 0x30 - 19b98: f88d 3077 strb.w r3, [sp, #119] ; 0x77 - 19b9c: 2330 movs r3, #48 ; 0x30 - 19b9e: f88d 3076 strb.w r3, [sp, #118] ; 0x76 - 19ba2: 2304 movs r3, #4 - 19ba4: 9316 str r3, [sp, #88] ; 0x58 - 19ba6: e56d b.n 19684 <_vfprintf_r+0xda8> - 19ba8: e9dd 3212 ldrd r3, r2, [sp, #72] ; 0x48 - 19bac: 4413 add r3, r2 - 19bae: 9a0f ldr r2, [sp, #60] ; 0x3c - 19bb0: 930a str r3, [sp, #40] ; 0x28 - 19bb2: 2a00 cmp r2, #0 - 19bb4: dd4d ble.n 19c52 <_vfprintf_r+0x1376> - 19bb6: ea23 73e3 bic.w r3, r3, r3, asr #31 - 19bba: 9307 str r3, [sp, #28] - 19bbc: 2767 movs r7, #103 ; 0x67 - 19bbe: e6f0 b.n 199a2 <_vfprintf_r+0x10c6> - 19bc0: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff - 19bc4: 9309 str r3, [sp, #36] ; 0x24 - 19bc6: f7ff b82d b.w 18c24 <_vfprintf_r+0x348> - 19bca: 3301 adds r3, #1 - 19bcc: 443a add r2, r7 - 19bce: 2b07 cmp r3, #7 - 19bd0: e9cd 3222 strd r3, r2, [sp, #136] ; 0x88 - 19bd4: f8c9 6000 str.w r6, [r9] - 19bd8: f8c9 7004 str.w r7, [r9, #4] - 19bdc: f77f ae10 ble.w 19800 <_vfprintf_r+0xf24> - 19be0: 980c ldr r0, [sp, #48] ; 0x30 - 19be2: aa21 add r2, sp, #132 ; 0x84 - 19be4: 4659 mov r1, fp - 19be6: f002 fc35 bl 1c454 <__sprint_r> - 19bea: 2800 cmp r0, #0 - 19bec: f47f aacd bne.w 1918a <_vfprintf_r+0x8ae> - 19bf0: e9dd 3222 ldrd r3, r2, [sp, #136] ; 0x88 - 19bf4: f10d 09b8 add.w r9, sp, #184 ; 0xb8 - 19bf8: e604 b.n 19804 <_vfprintf_r+0xf28> - 19bfa: f014 0201 ands.w r2, r4, #1 - 19bfe: 920f str r2, [sp, #60] ; 0x3c - 19c00: f47f ad47 bne.w 19692 <_vfprintf_r+0xdb6> - 19c04: ea23 73e3 bic.w r3, r3, r3, asr #31 - 19c08: 9307 str r3, [sp, #28] - 19c0a: e6ca b.n 199a2 <_vfprintf_r+0x10c6> - 19c0c: 9b11 ldr r3, [sp, #68] ; 0x44 - 19c0e: 4d21 ldr r5, [pc, #132] ; (19c94 <_vfprintf_r+0x13b8>) - 19c10: 2b00 cmp r3, #0 - 19c12: bfb8 it lt - 19c14: 212d movlt r1, #45 ; 0x2d - 19c16: f024 0380 bic.w r3, r4, #128 ; 0x80 - 19c1a: 9306 str r3, [sp, #24] - 19c1c: bfa8 it ge - 19c1e: f89d 1067 ldrbge.w r1, [sp, #103] ; 0x67 - 19c22: 4b1d ldr r3, [pc, #116] ; (19c98 <_vfprintf_r+0x13bc>) - 19c24: bfb8 it lt - 19c26: f88d 1067 strblt.w r1, [sp, #103] ; 0x67 - 19c2a: f7ff b834 b.w 18c96 <_vfprintf_r+0x3ba> - 19c2e: 9b0f ldr r3, [sp, #60] ; 0x3c - 19c30: 9a13 ldr r2, [sp, #76] ; 0x4c - 19c32: 4413 add r3, r2 - 19c34: 9a08 ldr r2, [sp, #32] - 19c36: 441a add r2, r3 - 19c38: ea22 73e2 bic.w r3, r2, r2, asr #31 - 19c3c: 920a str r2, [sp, #40] ; 0x28 - 19c3e: 9307 str r3, [sp, #28] - 19c40: e6af b.n 199a2 <_vfprintf_r+0x10c6> - 19c42: 9a13 ldr r2, [sp, #76] ; 0x4c - 19c44: 4413 add r3, r2 - 19c46: 930a str r3, [sp, #40] ; 0x28 - 19c48: ea23 73e3 bic.w r3, r3, r3, asr #31 - 19c4c: 9307 str r3, [sp, #28] - 19c4e: 2767 movs r7, #103 ; 0x67 - 19c50: e6a7 b.n 199a2 <_vfprintf_r+0x10c6> - 19c52: 9b0f ldr r3, [sp, #60] ; 0x3c - 19c54: 9a0a ldr r2, [sp, #40] ; 0x28 - 19c56: f1c3 0301 rsb r3, r3, #1 - 19c5a: 441a add r2, r3 - 19c5c: ea22 73e2 bic.w r3, r2, r2, asr #31 - 19c60: 920a str r2, [sp, #40] ; 0x28 - 19c62: 9307 str r3, [sp, #28] - 19c64: 2767 movs r7, #103 ; 0x67 - 19c66: e69c b.n 199a2 <_vfprintf_r+0x10c6> - 19c68: b91b cbnz r3, 19c72 <_vfprintf_r+0x1396> - 19c6a: 2301 movs r3, #1 - 19c6c: 9307 str r3, [sp, #28] - 19c6e: 930a str r3, [sp, #40] ; 0x28 - 19c70: e697 b.n 199a2 <_vfprintf_r+0x10c6> - 19c72: 9b13 ldr r3, [sp, #76] ; 0x4c - 19c74: 3301 adds r3, #1 - 19c76: e7dd b.n 19c34 <_vfprintf_r+0x1358> - 19c78: 9a0d ldr r2, [sp, #52] ; 0x34 - 19c7a: f852 5b04 ldr.w r5, [r2], #4 - 19c7e: 920d str r2, [sp, #52] ; 0x34 - 19c80: ea45 75e5 orr.w r5, r5, r5, asr #31 - 19c84: f7fe be8c b.w 189a0 <_vfprintf_r+0xc4> - 19c88: 2302 movs r3, #2 - 19c8a: 9316 str r3, [sp, #88] ; 0x58 - 19c8c: e4fa b.n 19684 <_vfprintf_r+0xda8> - 19c8e: 9e08 ldr r6, [sp, #32] - 19c90: e706 b.n 19aa0 <_vfprintf_r+0x11c4> - 19c92: bf00 nop - 19c94: 0002c148 .word 0x0002c148 - 19c98: 0002c14c .word 0x0002c14c - -00019c9c <__sbprintf>: - 19c9c: b570 push {r4, r5, r6, lr} - 19c9e: 460c mov r4, r1 - 19ca0: 8989 ldrh r1, [r1, #12] - 19ca2: f5ad 6d8d sub.w sp, sp, #1128 ; 0x468 - 19ca6: f021 0102 bic.w r1, r1, #2 - 19caa: f8ad 1010 strh.w r1, [sp, #16] - 19cae: 6e21 ldr r1, [r4, #96] ; 0x60 - 19cb0: 9119 str r1, [sp, #100] ; 0x64 - 19cb2: 89e1 ldrh r1, [r4, #14] - 19cb4: f8ad 1012 strh.w r1, [sp, #18] - 19cb8: 69e1 ldr r1, [r4, #28] - 19cba: 9108 str r1, [sp, #32] - 19cbc: 6a61 ldr r1, [r4, #36] ; 0x24 - 19cbe: 910a str r1, [sp, #40] ; 0x28 - 19cc0: a91a add r1, sp, #104 ; 0x68 - 19cc2: 9101 str r1, [sp, #4] - 19cc4: 9105 str r1, [sp, #20] - 19cc6: f44f 6180 mov.w r1, #1024 ; 0x400 - 19cca: 9103 str r1, [sp, #12] - 19ccc: 9106 str r1, [sp, #24] - 19cce: 2100 movs r1, #0 - 19cd0: 9107 str r1, [sp, #28] - 19cd2: a901 add r1, sp, #4 - 19cd4: 4606 mov r6, r0 - 19cd6: f7fe fe01 bl 188dc <_vfprintf_r> - 19cda: 1e05 subs r5, r0, #0 - 19cdc: db07 blt.n 19cee <__sbprintf+0x52> - 19cde: a901 add r1, sp, #4 - 19ce0: 4630 mov r0, r6 - 19ce2: f001 f92b bl 1af3c <_fflush_r> - 19ce6: 2800 cmp r0, #0 - 19ce8: bf18 it ne - 19cea: f04f 35ff movne.w r5, #4294967295 ; 0xffffffff - 19cee: f8bd 3010 ldrh.w r3, [sp, #16] - 19cf2: 065b lsls r3, r3, #25 - 19cf4: d503 bpl.n 19cfe <__sbprintf+0x62> - 19cf6: 89a3 ldrh r3, [r4, #12] - 19cf8: f043 0340 orr.w r3, r3, #64 ; 0x40 - 19cfc: 81a3 strh r3, [r4, #12] - 19cfe: 4628 mov r0, r5 - 19d00: f50d 6d8d add.w sp, sp, #1128 ; 0x468 - 19d04: bd70 pop {r4, r5, r6, pc} - 19d06: bf00 nop - -00019d08 <__vsprintf_chk>: - 19d08: b510 push {r4, lr} - 19d0a: 1e14 subs r4, r2, #0 - 19d0c: 4619 mov r1, r3 - 19d0e: 9b02 ldr r3, [sp, #8] - 19d10: db08 blt.n 19d24 <__vsprintf_chk+0x1c> - 19d12: 460a mov r2, r1 - 19d14: 4621 mov r1, r4 - 19d16: f003 f947 bl 1cfa8 - 19d1a: 2800 cmp r0, #0 - 19d1c: db01 blt.n 19d22 <__vsprintf_chk+0x1a> - 19d1e: 42a0 cmp r0, r4 - 19d20: d205 bcs.n 19d2e <__vsprintf_chk+0x26> - 19d22: bd10 pop {r4, pc} - 19d24: e8bd 4010 ldmia.w sp!, {r4, lr} - 19d28: 461a mov r2, r3 - 19d2a: f003 b975 b.w 1d018 - 19d2e: f000 f86b bl 19e08 <__chk_fail> - 19d32: bf00 nop - -00019d34 <__swsetup_r>: - 19d34: b538 push {r3, r4, r5, lr} - 19d36: 4b33 ldr r3, [pc, #204] ; (19e04 <__swsetup_r+0xd0>) - 19d38: 681b ldr r3, [r3, #0] - 19d3a: 4605 mov r5, r0 - 19d3c: 460c mov r4, r1 - 19d3e: b10b cbz r3, 19d44 <__swsetup_r+0x10> - 19d40: 6b9a ldr r2, [r3, #56] ; 0x38 - 19d42: b312 cbz r2, 19d8a <__swsetup_r+0x56> - 19d44: f9b4 300c ldrsh.w r3, [r4, #12] - 19d48: 0718 lsls r0, r3, #28 - 19d4a: b29a uxth r2, r3 - 19d4c: d525 bpl.n 19d9a <__swsetup_r+0x66> - 19d4e: 6921 ldr r1, [r4, #16] - 19d50: 2900 cmp r1, #0 - 19d52: d02d beq.n 19db0 <__swsetup_r+0x7c> - 19d54: f012 0001 ands.w r0, r2, #1 - 19d58: d007 beq.n 19d6a <__swsetup_r+0x36> - 19d5a: 2000 movs r0, #0 - 19d5c: 60a0 str r0, [r4, #8] - 19d5e: 6960 ldr r0, [r4, #20] - 19d60: 4240 negs r0, r0 - 19d62: 61a0 str r0, [r4, #24] - 19d64: b139 cbz r1, 19d76 <__swsetup_r+0x42> - 19d66: 2000 movs r0, #0 - 19d68: bd38 pop {r3, r4, r5, pc} - 19d6a: 0795 lsls r5, r2, #30 - 19d6c: bf58 it pl - 19d6e: 6960 ldrpl r0, [r4, #20] - 19d70: 60a0 str r0, [r4, #8] - 19d72: 2900 cmp r1, #0 - 19d74: d1f7 bne.n 19d66 <__swsetup_r+0x32> - 19d76: 0612 lsls r2, r2, #24 - 19d78: bf58 it pl - 19d7a: 4608 movpl r0, r1 - 19d7c: d5f4 bpl.n 19d68 <__swsetup_r+0x34> - 19d7e: f043 0340 orr.w r3, r3, #64 ; 0x40 - 19d82: 81a3 strh r3, [r4, #12] - 19d84: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff - 19d88: bd38 pop {r3, r4, r5, pc} - 19d8a: 4618 mov r0, r3 - 19d8c: f001 f95e bl 1b04c <__sinit> - 19d90: f9b4 300c ldrsh.w r3, [r4, #12] - 19d94: 0718 lsls r0, r3, #28 - 19d96: b29a uxth r2, r3 - 19d98: d4d9 bmi.n 19d4e <__swsetup_r+0x1a> - 19d9a: 06d1 lsls r1, r2, #27 - 19d9c: d52a bpl.n 19df4 <__swsetup_r+0xc0> - 19d9e: 0752 lsls r2, r2, #29 - 19da0: d414 bmi.n 19dcc <__swsetup_r+0x98> - 19da2: 6921 ldr r1, [r4, #16] - 19da4: f043 0308 orr.w r3, r3, #8 - 19da8: 81a3 strh r3, [r4, #12] - 19daa: b29a uxth r2, r3 - 19dac: 2900 cmp r1, #0 - 19dae: d1d1 bne.n 19d54 <__swsetup_r+0x20> - 19db0: f402 7020 and.w r0, r2, #640 ; 0x280 - 19db4: f5b0 7f00 cmp.w r0, #512 ; 0x200 - 19db8: d0cc beq.n 19d54 <__swsetup_r+0x20> - 19dba: 4621 mov r1, r4 - 19dbc: 4628 mov r0, r5 - 19dbe: f001 fabf bl 1b340 <__smakebuf_r> - 19dc2: f9b4 300c ldrsh.w r3, [r4, #12] - 19dc6: 6921 ldr r1, [r4, #16] - 19dc8: b29a uxth r2, r3 - 19dca: e7c3 b.n 19d54 <__swsetup_r+0x20> - 19dcc: 6b21 ldr r1, [r4, #48] ; 0x30 - 19dce: b151 cbz r1, 19de6 <__swsetup_r+0xb2> - 19dd0: f104 0240 add.w r2, r4, #64 ; 0x40 - 19dd4: 4291 cmp r1, r2 - 19dd6: d004 beq.n 19de2 <__swsetup_r+0xae> - 19dd8: 4628 mov r0, r5 - 19dda: f001 f98d bl 1b0f8 <_free_r> - 19dde: f9b4 300c ldrsh.w r3, [r4, #12] - 19de2: 2200 movs r2, #0 - 19de4: 6322 str r2, [r4, #48] ; 0x30 - 19de6: 6921 ldr r1, [r4, #16] - 19de8: 2200 movs r2, #0 - 19dea: e9c4 1200 strd r1, r2, [r4] - 19dee: f023 0324 bic.w r3, r3, #36 ; 0x24 - 19df2: e7d7 b.n 19da4 <__swsetup_r+0x70> - 19df4: 2209 movs r2, #9 - 19df6: f043 0340 orr.w r3, r3, #64 ; 0x40 - 19dfa: 602a str r2, [r5, #0] - 19dfc: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff - 19e00: 81a3 strh r3, [r4, #12] - 19e02: bd38 pop {r3, r4, r5, pc} - 19e04: 20000068 .word 0x20000068 - -00019e08 <__chk_fail>: - 19e08: b500 push {lr} - 19e0a: 4c0e ldr r4, [pc, #56] ; (19e44 <__chk_fail+0x3c>) - 19e0c: cc0f ldmia r4!, {r0, r1, r2, r3} - 19e0e: b08d sub sp, #52 ; 0x34 - 19e10: 46ec mov ip, sp - 19e12: e8ac 000f stmia.w ip!, {r0, r1, r2, r3} - 19e16: cc0f ldmia r4!, {r0, r1, r2, r3} - 19e18: e8ac 000f stmia.w ip!, {r0, r1, r2, r3} - 19e1c: e894 000f ldmia.w r4, {r0, r1, r2, r3} - 19e20: e8ac 0007 stmia.w ip!, {r0, r1, r2} - 19e24: 4668 mov r0, sp - 19e26: f8ac 3000 strh.w r3, [ip] - 19e2a: f7fd fb29 bl 17480 - 19e2e: 4669 mov r1, sp - 19e30: 4602 mov r2, r0 - 19e32: 2002 movs r0, #2 - 19e34: f002 fac6 bl 1c3c4 - 19e38: 2006 movs r0, #6 - 19e3a: f002 f9b5 bl 1c1a8 - 19e3e: 207f movs r0, #127 ; 0x7f - 19e40: f7e6 faa8 bl 394 <_exit> - 19e44: 0002c1c4 .word 0x0002c1c4 - -00019e48 : - 19e48: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - 19e4c: 6903 ldr r3, [r0, #16] - 19e4e: 690c ldr r4, [r1, #16] - 19e50: 42a3 cmp r3, r4 - 19e52: b083 sub sp, #12 - 19e54: f2c0 8088 blt.w 19f68 - 19e58: 3c01 subs r4, #1 - 19e5a: f101 0514 add.w r5, r1, #20 - 19e5e: 00a3 lsls r3, r4, #2 - 19e60: f100 0814 add.w r8, r0, #20 - 19e64: 9300 str r3, [sp, #0] - 19e66: f855 3024 ldr.w r3, [r5, r4, lsl #2] - 19e6a: f858 2024 ldr.w r2, [r8, r4, lsl #2] - 19e6e: 3301 adds r3, #1 - 19e70: 468a mov sl, r1 - 19e72: 429a cmp r2, r3 - 19e74: eb08 0184 add.w r1, r8, r4, lsl #2 - 19e78: 4681 mov r9, r0 - 19e7a: eb05 0784 add.w r7, r5, r4, lsl #2 - 19e7e: 9101 str r1, [sp, #4] - 19e80: fbb2 f6f3 udiv r6, r2, r3 - 19e84: d33a bcc.n 19efc - 19e86: f04f 0c00 mov.w ip, #0 - 19e8a: 46ae mov lr, r5 - 19e8c: 4640 mov r0, r8 - 19e8e: 4662 mov r2, ip - 19e90: 4663 mov r3, ip - 19e92: f85e bb04 ldr.w fp, [lr], #4 - 19e96: 6801 ldr r1, [r0, #0] - 19e98: fa1f fc8b uxth.w ip, fp - 19e9c: fb06 330c mla r3, r6, ip, r3 - 19ea0: ea4f 4c13 mov.w ip, r3, lsr #16 - 19ea4: ea4f 4b1b mov.w fp, fp, lsr #16 - 19ea8: fb06 cc0b mla ip, r6, fp, ip - 19eac: b29b uxth r3, r3 - 19eae: 1ad3 subs r3, r2, r3 - 19eb0: fa1f f28c uxth.w r2, ip - 19eb4: fa13 f381 uxtah r3, r3, r1 - 19eb8: ebc2 4211 rsb r2, r2, r1, lsr #16 - 19ebc: eb02 4223 add.w r2, r2, r3, asr #16 - 19ec0: b29b uxth r3, r3 - 19ec2: ea43 4302 orr.w r3, r3, r2, lsl #16 - 19ec6: 4577 cmp r7, lr - 19ec8: f840 3b04 str.w r3, [r0], #4 - 19ecc: ea4f 4222 mov.w r2, r2, asr #16 - 19ed0: ea4f 431c mov.w r3, ip, lsr #16 - 19ed4: d2dd bcs.n 19e92 - 19ed6: 9b00 ldr r3, [sp, #0] - 19ed8: f858 3003 ldr.w r3, [r8, r3] - 19edc: b973 cbnz r3, 19efc - 19ede: 9b01 ldr r3, [sp, #4] - 19ee0: 3b04 subs r3, #4 - 19ee2: 4598 cmp r8, r3 - 19ee4: d304 bcc.n 19ef0 - 19ee6: e007 b.n 19ef8 - 19ee8: 4598 cmp r8, r3 - 19eea: f104 34ff add.w r4, r4, #4294967295 ; 0xffffffff - 19eee: d203 bcs.n 19ef8 - 19ef0: f853 2904 ldr.w r2, [r3], #-4 - 19ef4: 2a00 cmp r2, #0 - 19ef6: d0f7 beq.n 19ee8 - 19ef8: f8c9 4010 str.w r4, [r9, #16] - 19efc: 4651 mov r1, sl - 19efe: 4648 mov r0, r9 - 19f00: f002 f816 bl 1bf30 <__mcmp> - 19f04: 2800 cmp r0, #0 - 19f06: db2b blt.n 19f60 - 19f08: 3601 adds r6, #1 - 19f0a: 4641 mov r1, r8 - 19f0c: 2300 movs r3, #0 - 19f0e: f855 0b04 ldr.w r0, [r5], #4 - 19f12: f8d1 c000 ldr.w ip, [r1] - 19f16: b282 uxth r2, r0 - 19f18: 1a9a subs r2, r3, r2 - 19f1a: 0c03 lsrs r3, r0, #16 - 19f1c: fa12 f28c uxtah r2, r2, ip - 19f20: ebc3 431c rsb r3, r3, ip, lsr #16 - 19f24: eb03 4322 add.w r3, r3, r2, asr #16 - 19f28: b292 uxth r2, r2 - 19f2a: ea42 4203 orr.w r2, r2, r3, lsl #16 - 19f2e: 42af cmp r7, r5 - 19f30: f841 2b04 str.w r2, [r1], #4 - 19f34: ea4f 4323 mov.w r3, r3, asr #16 - 19f38: d2e9 bcs.n 19f0e - 19f3a: f858 2024 ldr.w r2, [r8, r4, lsl #2] - 19f3e: eb08 0384 add.w r3, r8, r4, lsl #2 - 19f42: b96a cbnz r2, 19f60 - 19f44: 3b04 subs r3, #4 - 19f46: 4598 cmp r8, r3 - 19f48: d304 bcc.n 19f54 - 19f4a: e007 b.n 19f5c - 19f4c: 4598 cmp r8, r3 - 19f4e: f104 34ff add.w r4, r4, #4294967295 ; 0xffffffff - 19f52: d203 bcs.n 19f5c - 19f54: f853 2904 ldr.w r2, [r3], #-4 - 19f58: 2a00 cmp r2, #0 - 19f5a: d0f7 beq.n 19f4c - 19f5c: f8c9 4010 str.w r4, [r9, #16] - 19f60: 4630 mov r0, r6 - 19f62: b003 add sp, #12 - 19f64: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - 19f68: 2000 movs r0, #0 - 19f6a: b003 add sp, #12 - 19f6c: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - -00019f70 <_dtoa_r>: - 19f70: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - 19f74: 6c01 ldr r1, [r0, #64] ; 0x40 - 19f76: b09f sub sp, #124 ; 0x7c - 19f78: 4616 mov r6, r2 - 19f7a: 461f mov r7, r3 - 19f7c: e9cd 6704 strd r6, r7, [sp, #16] - 19f80: 9c2b ldr r4, [sp, #172] ; 0xac - 19f82: 4682 mov sl, r0 - 19f84: b149 cbz r1, 19f9a <_dtoa_r+0x2a> - 19f86: 6c42 ldr r2, [r0, #68] ; 0x44 - 19f88: 604a str r2, [r1, #4] - 19f8a: 2301 movs r3, #1 - 19f8c: 4093 lsls r3, r2 - 19f8e: 608b str r3, [r1, #8] - 19f90: f001 fd70 bl 1ba74 <_Bfree> - 19f94: 2300 movs r3, #0 - 19f96: f8ca 3040 str.w r3, [sl, #64] ; 0x40 - 19f9a: f1b7 0800 subs.w r8, r7, #0 - 19f9e: bfb4 ite lt - 19fa0: 2301 movlt r3, #1 - 19fa2: 2300 movge r3, #0 - 19fa4: 6023 str r3, [r4, #0] - 19fa6: 4b76 ldr r3, [pc, #472] ; (1a180 <_dtoa_r+0x210>) - 19fa8: bfbc itt lt - 19faa: f028 4800 biclt.w r8, r8, #2147483648 ; 0x80000000 - 19fae: f8cd 8014 strlt.w r8, [sp, #20] - 19fb2: ea33 0308 bics.w r3, r3, r8 - 19fb6: f000 80ac beq.w 1a112 <_dtoa_r+0x1a2> - 19fba: e9dd 3404 ldrd r3, r4, [sp, #16] - 19fbe: 2200 movs r2, #0 - 19fc0: 4618 mov r0, r3 - 19fc2: 4621 mov r1, r4 - 19fc4: 2300 movs r3, #0 - 19fc6: e9cd 010a strd r0, r1, [sp, #40] ; 0x28 - 19fca: f003 fe43 bl 1dc54 <__aeabi_dcmpeq> - 19fce: 4605 mov r5, r0 - 19fd0: b178 cbz r0, 19ff2 <_dtoa_r+0x82> - 19fd2: 9a2a ldr r2, [sp, #168] ; 0xa8 - 19fd4: 2301 movs r3, #1 - 19fd6: 6013 str r3, [r2, #0] - 19fd8: 9b2c ldr r3, [sp, #176] ; 0xb0 - 19fda: 2b00 cmp r3, #0 - 19fdc: f000 8391 beq.w 1a702 <_dtoa_r+0x792> - 19fe0: 4b68 ldr r3, [pc, #416] ; (1a184 <_dtoa_r+0x214>) - 19fe2: 9a2c ldr r2, [sp, #176] ; 0xb0 - 19fe4: 6013 str r3, [r2, #0] - 19fe6: 3b01 subs r3, #1 - 19fe8: 9303 str r3, [sp, #12] - 19fea: 9803 ldr r0, [sp, #12] - 19fec: b01f add sp, #124 ; 0x7c - 19fee: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - 19ff2: ab1c add r3, sp, #112 ; 0x70 - 19ff4: 9301 str r3, [sp, #4] - 19ff6: ab1d add r3, sp, #116 ; 0x74 - 19ff8: 9300 str r3, [sp, #0] - 19ffa: 4650 mov r0, sl - 19ffc: e9dd 230a ldrd r2, r3, [sp, #40] ; 0x28 - 1a000: f002 f860 bl 1c0c4 <__d2b> - 1a004: ea5f 5418 movs.w r4, r8, lsr #20 - 1a008: 4683 mov fp, r0 - 1a00a: f040 8098 bne.w 1a13e <_dtoa_r+0x1ce> - 1a00e: e9dd 541c ldrd r5, r4, [sp, #112] ; 0x70 - 1a012: 442c add r4, r5 - 1a014: f204 4332 addw r3, r4, #1074 ; 0x432 - 1a018: 2b20 cmp r3, #32 - 1a01a: f340 8388 ble.w 1a72e <_dtoa_r+0x7be> - 1a01e: f1c3 0340 rsb r3, r3, #64 ; 0x40 - 1a022: fa08 f803 lsl.w r8, r8, r3 - 1a026: f204 4312 addw r3, r4, #1042 ; 0x412 - 1a02a: fa26 f303 lsr.w r3, r6, r3 - 1a02e: ea48 0003 orr.w r0, r8, r3 - 1a032: f7fc fa0f bl 16454 <__aeabi_ui2d> - 1a036: 2301 movs r3, #1 - 1a038: 3c01 subs r4, #1 - 1a03a: f1a1 71f8 sub.w r1, r1, #32505856 ; 0x1f00000 - 1a03e: 9312 str r3, [sp, #72] ; 0x48 - 1a040: 4b51 ldr r3, [pc, #324] ; (1a188 <_dtoa_r+0x218>) - 1a042: 2200 movs r2, #0 - 1a044: f7fc f8c8 bl 161d8 <__aeabi_dsub> - 1a048: a347 add r3, pc, #284 ; (adr r3, 1a168 <_dtoa_r+0x1f8>) - 1a04a: e9d3 2300 ldrd r2, r3, [r3] - 1a04e: f7fc fa7b bl 16548 <__aeabi_dmul> - 1a052: a347 add r3, pc, #284 ; (adr r3, 1a170 <_dtoa_r+0x200>) - 1a054: e9d3 2300 ldrd r2, r3, [r3] - 1a058: f7fc f8c0 bl 161dc <__adddf3> - 1a05c: 4606 mov r6, r0 - 1a05e: 4620 mov r0, r4 - 1a060: 460f mov r7, r1 - 1a062: f7fc fa07 bl 16474 <__aeabi_i2d> - 1a066: a344 add r3, pc, #272 ; (adr r3, 1a178 <_dtoa_r+0x208>) - 1a068: e9d3 2300 ldrd r2, r3, [r3] - 1a06c: f7fc fa6c bl 16548 <__aeabi_dmul> - 1a070: 4602 mov r2, r0 - 1a072: 460b mov r3, r1 - 1a074: 4630 mov r0, r6 - 1a076: 4639 mov r1, r7 - 1a078: f7fc f8b0 bl 161dc <__adddf3> - 1a07c: 4606 mov r6, r0 - 1a07e: 460f mov r7, r1 - 1a080: f003 fe30 bl 1dce4 <__aeabi_d2iz> - 1a084: 2200 movs r2, #0 - 1a086: 4680 mov r8, r0 - 1a088: 9006 str r0, [sp, #24] - 1a08a: 2300 movs r3, #0 - 1a08c: 4630 mov r0, r6 - 1a08e: 4639 mov r1, r7 - 1a090: f003 fdea bl 1dc68 <__aeabi_dcmplt> - 1a094: 2800 cmp r0, #0 - 1a096: f040 8326 bne.w 1a6e6 <_dtoa_r+0x776> - 1a09a: 1b2d subs r5, r5, r4 - 1a09c: 9c06 ldr r4, [sp, #24] - 1a09e: 1e6b subs r3, r5, #1 - 1a0a0: 2c16 cmp r4, #22 - 1a0a2: 9308 str r3, [sp, #32] - 1a0a4: f200 8313 bhi.w 1a6ce <_dtoa_r+0x75e> - 1a0a8: 4b38 ldr r3, [pc, #224] ; (1a18c <_dtoa_r+0x21c>) - 1a0aa: eb03 03c4 add.w r3, r3, r4, lsl #3 - 1a0ae: e9d3 2300 ldrd r2, r3, [r3] - 1a0b2: e9dd 010a ldrd r0, r1, [sp, #40] ; 0x28 - 1a0b6: f003 fdd7 bl 1dc68 <__aeabi_dcmplt> - 1a0ba: 2800 cmp r0, #0 - 1a0bc: d06c beq.n 1a198 <_dtoa_r+0x228> - 1a0be: 1e63 subs r3, r4, #1 - 1a0c0: 9306 str r3, [sp, #24] - 1a0c2: 2300 movs r3, #0 - 1a0c4: 930f str r3, [sp, #60] ; 0x3c - 1a0c6: 1e6b subs r3, r5, #1 - 1a0c8: 2b00 cmp r3, #0 - 1a0ca: f2c0 8306 blt.w 1a6da <_dtoa_r+0x76a> - 1a0ce: 2300 movs r3, #0 - 1a0d0: 930c str r3, [sp, #48] ; 0x30 - 1a0d2: 9b06 ldr r3, [sp, #24] - 1a0d4: 2b00 cmp r3, #0 - 1a0d6: da65 bge.n 1a1a4 <_dtoa_r+0x234> - 1a0d8: 9b06 ldr r3, [sp, #24] - 1a0da: 9a0c ldr r2, [sp, #48] ; 0x30 - 1a0dc: 930d str r3, [sp, #52] ; 0x34 - 1a0de: 1ad2 subs r2, r2, r3 - 1a0e0: f1c3 0900 rsb r9, r3, #0 - 1a0e4: 2300 movs r3, #0 - 1a0e6: 9306 str r3, [sp, #24] - 1a0e8: 9b28 ldr r3, [sp, #160] ; 0xa0 - 1a0ea: 920c str r2, [sp, #48] ; 0x30 - 1a0ec: 2b09 cmp r3, #9 - 1a0ee: d863 bhi.n 1a1b8 <_dtoa_r+0x248> - 1a0f0: 2b05 cmp r3, #5 - 1a0f2: f340 831a ble.w 1a72a <_dtoa_r+0x7ba> - 1a0f6: 3b04 subs r3, #4 - 1a0f8: 9328 str r3, [sp, #160] ; 0xa0 - 1a0fa: 2400 movs r4, #0 - 1a0fc: 9b28 ldr r3, [sp, #160] ; 0xa0 - 1a0fe: 3b02 subs r3, #2 - 1a100: 2b03 cmp r3, #3 - 1a102: f200 865a bhi.w 1adba <_dtoa_r+0xe4a> - 1a106: e8df f013 tbh [pc, r3, lsl #1] - 1a10a: 041e .short 0x041e - 1a10c: 0412041b .word 0x0412041b - 1a110: 03f3 .short 0x03f3 - 1a112: 9a2a ldr r2, [sp, #168] ; 0xa8 - 1a114: f3c8 0813 ubfx r8, r8, #0, #20 - 1a118: f242 730f movw r3, #9999 ; 0x270f - 1a11c: ea58 0806 orrs.w r8, r8, r6 - 1a120: 6013 str r3, [r2, #0] - 1a122: d11a bne.n 1a15a <_dtoa_r+0x1ea> - 1a124: 9b2c ldr r3, [sp, #176] ; 0xb0 - 1a126: 2b00 cmp r3, #0 - 1a128: f000 8657 beq.w 1adda <_dtoa_r+0xe6a> - 1a12c: 4b18 ldr r3, [pc, #96] ; (1a190 <_dtoa_r+0x220>) - 1a12e: 9303 str r3, [sp, #12] - 1a130: 3308 adds r3, #8 - 1a132: 9a2c ldr r2, [sp, #176] ; 0xb0 - 1a134: 9803 ldr r0, [sp, #12] - 1a136: 6013 str r3, [r2, #0] - 1a138: b01f add sp, #124 ; 0x7c - 1a13a: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - 1a13e: e9dd 120a ldrd r1, r2, [sp, #40] ; 0x28 - 1a142: f3c2 0313 ubfx r3, r2, #0, #20 - 1a146: 4608 mov r0, r1 - 1a148: f043 517f orr.w r1, r3, #1069547520 ; 0x3fc00000 - 1a14c: 9512 str r5, [sp, #72] ; 0x48 - 1a14e: f2a4 34ff subw r4, r4, #1023 ; 0x3ff - 1a152: 9d1c ldr r5, [sp, #112] ; 0x70 - 1a154: f441 1140 orr.w r1, r1, #3145728 ; 0x300000 - 1a158: e772 b.n 1a040 <_dtoa_r+0xd0> - 1a15a: 9b2c ldr r3, [sp, #176] ; 0xb0 - 1a15c: 2b00 cmp r3, #0 - 1a15e: f040 83b5 bne.w 1a8cc <_dtoa_r+0x95c> - 1a162: 4b0c ldr r3, [pc, #48] ; (1a194 <_dtoa_r+0x224>) - 1a164: 9303 str r3, [sp, #12] - 1a166: e740 b.n 19fea <_dtoa_r+0x7a> - 1a168: 636f4361 .word 0x636f4361 - 1a16c: 3fd287a7 .word 0x3fd287a7 - 1a170: 8b60c8b3 .word 0x8b60c8b3 - 1a174: 3fc68a28 .word 0x3fc68a28 - 1a178: 509f79fb .word 0x509f79fb - 1a17c: 3fd34413 .word 0x3fd34413 - 1a180: 7ff00000 .word 0x7ff00000 - 1a184: 0002c181 .word 0x0002c181 - 1a188: 3ff80000 .word 0x3ff80000 - 1a18c: 0002c328 .word 0x0002c328 - 1a190: 0002c1f4 .word 0x0002c1f4 - 1a194: 0002c200 .word 0x0002c200 - 1a198: 1e6b subs r3, r5, #1 - 1a19a: 2b00 cmp r3, #0 - 1a19c: f2c0 847a blt.w 1aa94 <_dtoa_r+0xb24> - 1a1a0: 900f str r0, [sp, #60] ; 0x3c - 1a1a2: 900c str r0, [sp, #48] ; 0x30 - 1a1a4: 9b08 ldr r3, [sp, #32] - 1a1a6: 9a06 ldr r2, [sp, #24] - 1a1a8: 920d str r2, [sp, #52] ; 0x34 - 1a1aa: 4413 add r3, r2 - 1a1ac: 9308 str r3, [sp, #32] - 1a1ae: 9b28 ldr r3, [sp, #160] ; 0xa0 - 1a1b0: 2b09 cmp r3, #9 - 1a1b2: f04f 0900 mov.w r9, #0 - 1a1b6: d99b bls.n 1a0f0 <_dtoa_r+0x180> - 1a1b8: 2300 movs r3, #0 - 1a1ba: e9cd 3328 strd r3, r3, [sp, #160] ; 0xa0 - 1a1be: 2401 movs r4, #1 - 1a1c0: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff - 1a1c4: 940e str r4, [sp, #56] ; 0x38 - 1a1c6: 9309 str r3, [sp, #36] ; 0x24 - 1a1c8: 9b09 ldr r3, [sp, #36] ; 0x24 - 1a1ca: 9313 str r3, [sp, #76] ; 0x4c - 1a1cc: 2100 movs r1, #0 - 1a1ce: f8ca 1044 str.w r1, [sl, #68] ; 0x44 - 1a1d2: 4650 mov r0, sl - 1a1d4: f001 fc28 bl 1ba28 <_Balloc> - 1a1d8: 9003 str r0, [sp, #12] - 1a1da: 2800 cmp r0, #0 - 1a1dc: f000 85f6 beq.w 1adcc <_dtoa_r+0xe5c> - 1a1e0: 9b03 ldr r3, [sp, #12] - 1a1e2: f8ca 3040 str.w r3, [sl, #64] ; 0x40 - 1a1e6: 9b09 ldr r3, [sp, #36] ; 0x24 - 1a1e8: 2b0e cmp r3, #14 - 1a1ea: f200 80f9 bhi.w 1a3e0 <_dtoa_r+0x470> - 1a1ee: 2c00 cmp r4, #0 - 1a1f0: f000 80f6 beq.w 1a3e0 <_dtoa_r+0x470> - 1a1f4: 990d ldr r1, [sp, #52] ; 0x34 - 1a1f6: 2900 cmp r1, #0 - 1a1f8: f340 844e ble.w 1aa98 <_dtoa_r+0xb28> - 1a1fc: 4bbb ldr r3, [pc, #748] ; (1a4ec <_dtoa_r+0x57c>) - 1a1fe: f001 020f and.w r2, r1, #15 - 1a202: eb03 03c2 add.w r3, r3, r2, lsl #3 - 1a206: 05c8 lsls r0, r1, #23 - 1a208: e9d3 4500 ldrd r4, r5, [r3] - 1a20c: ea4f 1621 mov.w r6, r1, asr #4 - 1a210: f140 83dc bpl.w 1a9cc <_dtoa_r+0xa5c> - 1a214: 4bb6 ldr r3, [pc, #728] ; (1a4f0 <_dtoa_r+0x580>) - 1a216: e9dd 010a ldrd r0, r1, [sp, #40] ; 0x28 - 1a21a: e9d3 2308 ldrd r2, r3, [r3, #32] - 1a21e: f7fc fabd bl 1679c <__aeabi_ddiv> - 1a222: e9cd 0110 strd r0, r1, [sp, #64] ; 0x40 - 1a226: f006 060f and.w r6, r6, #15 - 1a22a: f04f 0803 mov.w r8, #3 - 1a22e: b186 cbz r6, 1a252 <_dtoa_r+0x2e2> - 1a230: 4faf ldr r7, [pc, #700] ; (1a4f0 <_dtoa_r+0x580>) - 1a232: 07f1 lsls r1, r6, #31 - 1a234: d509 bpl.n 1a24a <_dtoa_r+0x2da> - 1a236: 4620 mov r0, r4 - 1a238: 4629 mov r1, r5 - 1a23a: e9d7 2300 ldrd r2, r3, [r7] - 1a23e: f7fc f983 bl 16548 <__aeabi_dmul> - 1a242: f108 0801 add.w r8, r8, #1 - 1a246: 4604 mov r4, r0 - 1a248: 460d mov r5, r1 - 1a24a: 1076 asrs r6, r6, #1 - 1a24c: f107 0708 add.w r7, r7, #8 - 1a250: d1ef bne.n 1a232 <_dtoa_r+0x2c2> - 1a252: e9dd 0110 ldrd r0, r1, [sp, #64] ; 0x40 - 1a256: 4622 mov r2, r4 - 1a258: 462b mov r3, r5 - 1a25a: f7fc fa9f bl 1679c <__aeabi_ddiv> - 1a25e: 4606 mov r6, r0 - 1a260: 460f mov r7, r1 - 1a262: 9b0f ldr r3, [sp, #60] ; 0x3c - 1a264: b143 cbz r3, 1a278 <_dtoa_r+0x308> - 1a266: 4ba3 ldr r3, [pc, #652] ; (1a4f4 <_dtoa_r+0x584>) - 1a268: 2200 movs r2, #0 - 1a26a: 4630 mov r0, r6 - 1a26c: 4639 mov r1, r7 - 1a26e: f003 fcfb bl 1dc68 <__aeabi_dcmplt> - 1a272: 2800 cmp r0, #0 - 1a274: f040 851d bne.w 1acb2 <_dtoa_r+0xd42> - 1a278: 4640 mov r0, r8 - 1a27a: f7fc f8fb bl 16474 <__aeabi_i2d> - 1a27e: 4632 mov r2, r6 - 1a280: 463b mov r3, r7 - 1a282: f7fc f961 bl 16548 <__aeabi_dmul> - 1a286: 4b9c ldr r3, [pc, #624] ; (1a4f8 <_dtoa_r+0x588>) - 1a288: 2200 movs r2, #0 - 1a28a: f7fb ffa7 bl 161dc <__adddf3> - 1a28e: f1a1 7350 sub.w r3, r1, #54525952 ; 0x3400000 - 1a292: e9cd 0114 strd r0, r1, [sp, #80] ; 0x50 - 1a296: 9315 str r3, [sp, #84] ; 0x54 - 1a298: 9b09 ldr r3, [sp, #36] ; 0x24 - 1a29a: 2b00 cmp r3, #0 - 1a29c: f000 83db beq.w 1aa56 <_dtoa_r+0xae6> - 1a2a0: 9b0d ldr r3, [sp, #52] ; 0x34 - 1a2a2: 931a str r3, [sp, #104] ; 0x68 - 1a2a4: 9b09 ldr r3, [sp, #36] ; 0x24 - 1a2a6: 9310 str r3, [sp, #64] ; 0x40 - 1a2a8: e9dd 3414 ldrd r3, r4, [sp, #80] ; 0x50 - 1a2ac: 9903 ldr r1, [sp, #12] - 1a2ae: 4630 mov r0, r6 - 1a2b0: f101 0801 add.w r8, r1, #1 - 1a2b4: 4639 mov r1, r7 - 1a2b6: e9cd 3416 strd r3, r4, [sp, #88] ; 0x58 - 1a2ba: f003 fd13 bl 1dce4 <__aeabi_d2iz> - 1a2be: f100 0330 add.w r3, r0, #48 ; 0x30 - 1a2c2: b2dc uxtb r4, r3 - 1a2c4: 9d10 ldr r5, [sp, #64] ; 0x40 - 1a2c6: 4b89 ldr r3, [pc, #548] ; (1a4ec <_dtoa_r+0x57c>) - 1a2c8: 9414 str r4, [sp, #80] ; 0x50 - 1a2ca: eb03 03c5 add.w r3, r3, r5, lsl #3 - 1a2ce: e953 1202 ldrd r1, r2, [r3, #-8] - 1a2d2: e9cd 1218 strd r1, r2, [sp, #96] ; 0x60 - 1a2d6: f7fc f8cd bl 16474 <__aeabi_i2d> - 1a2da: 460b mov r3, r1 - 1a2dc: 4602 mov r2, r0 - 1a2de: 4639 mov r1, r7 - 1a2e0: 4630 mov r0, r6 - 1a2e2: f7fb ff79 bl 161d8 <__aeabi_dsub> - 1a2e6: 9b0e ldr r3, [sp, #56] ; 0x38 - 1a2e8: 4604 mov r4, r0 - 1a2ea: 460d mov r5, r1 - 1a2ec: 2b00 cmp r3, #0 - 1a2ee: f000 848b beq.w 1ac08 <_dtoa_r+0xc98> - 1a2f2: e9dd 2318 ldrd r2, r3, [sp, #96] ; 0x60 - 1a2f6: 4981 ldr r1, [pc, #516] ; (1a4fc <_dtoa_r+0x58c>) - 1a2f8: 2000 movs r0, #0 - 1a2fa: f7fc fa4f bl 1679c <__aeabi_ddiv> - 1a2fe: e9dd 2316 ldrd r2, r3, [sp, #88] ; 0x58 - 1a302: f7fb ff69 bl 161d8 <__aeabi_dsub> - 1a306: 9f03 ldr r7, [sp, #12] - 1a308: 9e14 ldr r6, [sp, #80] ; 0x50 - 1a30a: 703e strb r6, [r7, #0] - 1a30c: 4602 mov r2, r0 - 1a30e: 460b mov r3, r1 - 1a310: e9cd 2314 strd r2, r3, [sp, #80] ; 0x50 - 1a314: 4622 mov r2, r4 - 1a316: 462b mov r3, r5 - 1a318: f003 fcc4 bl 1dca4 <__aeabi_dcmpgt> - 1a31c: 2800 cmp r0, #0 - 1a31e: f040 84c0 bne.w 1aca2 <_dtoa_r+0xd32> - 1a322: 2700 movs r7, #0 - 1a324: f8cd 906c str.w r9, [sp, #108] ; 0x6c - 1a328: f8cd b058 str.w fp, [sp, #88] ; 0x58 - 1a32c: f8cd a060 str.w sl, [sp, #96] ; 0x60 - 1a330: 46b9 mov r9, r7 - 1a332: e9dd ab14 ldrd sl, fp, [sp, #80] ; 0x50 - 1a336: e02b b.n 1a390 <_dtoa_r+0x420> - 1a338: 9b10 ldr r3, [sp, #64] ; 0x40 - 1a33a: f109 0901 add.w r9, r9, #1 - 1a33e: 4599 cmp r9, r3 - 1a340: da48 bge.n 1a3d4 <_dtoa_r+0x464> - 1a342: 4b6f ldr r3, [pc, #444] ; (1a500 <_dtoa_r+0x590>) - 1a344: 4650 mov r0, sl - 1a346: 4659 mov r1, fp - 1a348: 2200 movs r2, #0 - 1a34a: f7fc f8fd bl 16548 <__aeabi_dmul> - 1a34e: 4b6c ldr r3, [pc, #432] ; (1a500 <_dtoa_r+0x590>) - 1a350: 2200 movs r2, #0 - 1a352: 4682 mov sl, r0 - 1a354: 468b mov fp, r1 - 1a356: 4620 mov r0, r4 - 1a358: 4629 mov r1, r5 - 1a35a: f7fc f8f5 bl 16548 <__aeabi_dmul> - 1a35e: 460f mov r7, r1 - 1a360: 4606 mov r6, r0 - 1a362: f003 fcbf bl 1dce4 <__aeabi_d2iz> - 1a366: 4605 mov r5, r0 - 1a368: f7fc f884 bl 16474 <__aeabi_i2d> - 1a36c: 4602 mov r2, r0 - 1a36e: 460b mov r3, r1 - 1a370: 4630 mov r0, r6 - 1a372: 4639 mov r1, r7 - 1a374: f7fb ff30 bl 161d8 <__aeabi_dsub> - 1a378: 3530 adds r5, #48 ; 0x30 - 1a37a: f808 5b01 strb.w r5, [r8], #1 - 1a37e: 4652 mov r2, sl - 1a380: 465b mov r3, fp - 1a382: 4604 mov r4, r0 - 1a384: 460d mov r5, r1 - 1a386: f003 fc6f bl 1dc68 <__aeabi_dcmplt> - 1a38a: 2800 cmp r0, #0 - 1a38c: f040 84e9 bne.w 1ad62 <_dtoa_r+0xdf2> - 1a390: 4622 mov r2, r4 - 1a392: 462b mov r3, r5 - 1a394: 4957 ldr r1, [pc, #348] ; (1a4f4 <_dtoa_r+0x584>) - 1a396: 2000 movs r0, #0 - 1a398: f7fb ff1e bl 161d8 <__aeabi_dsub> - 1a39c: 4652 mov r2, sl - 1a39e: 465b mov r3, fp - 1a3a0: f003 fc62 bl 1dc68 <__aeabi_dcmplt> - 1a3a4: 2800 cmp r0, #0 - 1a3a6: d0c7 beq.n 1a338 <_dtoa_r+0x3c8> - 1a3a8: 9c1a ldr r4, [sp, #104] ; 0x68 - 1a3aa: f8dd b058 ldr.w fp, [sp, #88] ; 0x58 - 1a3ae: f8dd a060 ldr.w sl, [sp, #96] ; 0x60 - 1a3b2: 9a03 ldr r2, [sp, #12] - 1a3b4: 4646 mov r6, r8 - 1a3b6: 3401 adds r4, #1 - 1a3b8: e002 b.n 1a3c0 <_dtoa_r+0x450> - 1a3ba: 42b2 cmp r2, r6 - 1a3bc: f000 84a6 beq.w 1ad0c <_dtoa_r+0xd9c> - 1a3c0: 46b0 mov r8, r6 - 1a3c2: f816 3d01 ldrb.w r3, [r6, #-1]! - 1a3c6: 2b39 cmp r3, #57 ; 0x39 - 1a3c8: d0f7 beq.n 1a3ba <_dtoa_r+0x44a> - 1a3ca: 3301 adds r3, #1 - 1a3cc: b2db uxtb r3, r3 - 1a3ce: 7033 strb r3, [r6, #0] - 1a3d0: 9404 str r4, [sp, #16] - 1a3d2: e168 b.n 1a6a6 <_dtoa_r+0x736> - 1a3d4: f8dd 906c ldr.w r9, [sp, #108] ; 0x6c - 1a3d8: f8dd b058 ldr.w fp, [sp, #88] ; 0x58 - 1a3dc: f8dd a060 ldr.w sl, [sp, #96] ; 0x60 - 1a3e0: 9b1d ldr r3, [sp, #116] ; 0x74 - 1a3e2: 2b00 cmp r3, #0 - 1a3e4: f2c0 8090 blt.w 1a508 <_dtoa_r+0x598> - 1a3e8: 9a0d ldr r2, [sp, #52] ; 0x34 - 1a3ea: 2a0e cmp r2, #14 - 1a3ec: f300 808c bgt.w 1a508 <_dtoa_r+0x598> - 1a3f0: 4b3e ldr r3, [pc, #248] ; (1a4ec <_dtoa_r+0x57c>) - 1a3f2: eb03 03c2 add.w r3, r3, r2, lsl #3 - 1a3f6: e9d3 8900 ldrd r8, r9, [r3] - 1a3fa: 9b29 ldr r3, [sp, #164] ; 0xa4 - 1a3fc: 2b00 cmp r3, #0 - 1a3fe: da1b bge.n 1a438 <_dtoa_r+0x4c8> - 1a400: 9b09 ldr r3, [sp, #36] ; 0x24 - 1a402: 2b00 cmp r3, #0 - 1a404: dc18 bgt.n 1a438 <_dtoa_r+0x4c8> - 1a406: f040 8341 bne.w 1aa8c <_dtoa_r+0xb1c> - 1a40a: 4b3e ldr r3, [pc, #248] ; (1a504 <_dtoa_r+0x594>) - 1a40c: 4649 mov r1, r9 - 1a40e: 2200 movs r2, #0 - 1a410: 4640 mov r0, r8 - 1a412: f7fc f899 bl 16548 <__aeabi_dmul> - 1a416: 4602 mov r2, r0 - 1a418: 460b mov r3, r1 - 1a41a: e9dd 010a ldrd r0, r1, [sp, #40] ; 0x28 - 1a41e: f003 fc2d bl 1dc7c <__aeabi_dcmple> - 1a422: f8dd 9024 ldr.w r9, [sp, #36] ; 0x24 - 1a426: 464c mov r4, r9 - 1a428: 2800 cmp r0, #0 - 1a42a: f000 82a3 beq.w 1a974 <_dtoa_r+0xa04> - 1a42e: 9b29 ldr r3, [sp, #164] ; 0xa4 - 1a430: f8dd 800c ldr.w r8, [sp, #12] - 1a434: 43df mvns r7, r3 - 1a436: e2a4 b.n 1a982 <_dtoa_r+0xa12> - 1a438: e9dd 450a ldrd r4, r5, [sp, #40] ; 0x28 - 1a43c: 4642 mov r2, r8 - 1a43e: 464b mov r3, r9 - 1a440: 4620 mov r0, r4 - 1a442: 4629 mov r1, r5 - 1a444: f7fc f9aa bl 1679c <__aeabi_ddiv> - 1a448: f003 fc4c bl 1dce4 <__aeabi_d2iz> - 1a44c: 4607 mov r7, r0 - 1a44e: f7fc f811 bl 16474 <__aeabi_i2d> - 1a452: 4642 mov r2, r8 - 1a454: 464b mov r3, r9 - 1a456: f7fc f877 bl 16548 <__aeabi_dmul> - 1a45a: 9e03 ldr r6, [sp, #12] - 1a45c: 460b mov r3, r1 - 1a45e: 4602 mov r2, r0 - 1a460: 4629 mov r1, r5 - 1a462: 4620 mov r0, r4 - 1a464: f7fb feb8 bl 161d8 <__aeabi_dsub> - 1a468: f107 0330 add.w r3, r7, #48 ; 0x30 - 1a46c: f806 3b01 strb.w r3, [r6], #1 - 1a470: 9b09 ldr r3, [sp, #36] ; 0x24 - 1a472: 2b01 cmp r3, #1 - 1a474: f000 837d beq.w 1ab72 <_dtoa_r+0xc02> - 1a478: f8cd a018 str.w sl, [sp, #24] - 1a47c: 2701 movs r7, #1 - 1a47e: f8cd b010 str.w fp, [sp, #16] - 1a482: 469a mov sl, r3 - 1a484: e01c b.n 1a4c0 <_dtoa_r+0x550> - 1a486: 4642 mov r2, r8 - 1a488: 464b mov r3, r9 - 1a48a: 4620 mov r0, r4 - 1a48c: 4629 mov r1, r5 - 1a48e: f7fc f985 bl 1679c <__aeabi_ddiv> - 1a492: f003 fc27 bl 1dce4 <__aeabi_d2iz> - 1a496: 4683 mov fp, r0 - 1a498: f7fb ffec bl 16474 <__aeabi_i2d> - 1a49c: 4642 mov r2, r8 - 1a49e: 464b mov r3, r9 - 1a4a0: f7fc f852 bl 16548 <__aeabi_dmul> - 1a4a4: 3701 adds r7, #1 - 1a4a6: 460b mov r3, r1 - 1a4a8: 4602 mov r2, r0 - 1a4aa: 4629 mov r1, r5 - 1a4ac: 4620 mov r0, r4 - 1a4ae: f7fb fe93 bl 161d8 <__aeabi_dsub> - 1a4b2: f10b 0330 add.w r3, fp, #48 ; 0x30 - 1a4b6: 4557 cmp r7, sl - 1a4b8: f806 3b01 strb.w r3, [r6], #1 - 1a4bc: f000 8354 beq.w 1ab68 <_dtoa_r+0xbf8> - 1a4c0: 4b0f ldr r3, [pc, #60] ; (1a500 <_dtoa_r+0x590>) - 1a4c2: 2200 movs r2, #0 - 1a4c4: f7fc f840 bl 16548 <__aeabi_dmul> - 1a4c8: 2200 movs r2, #0 - 1a4ca: 2300 movs r3, #0 - 1a4cc: 4604 mov r4, r0 - 1a4ce: 460d mov r5, r1 - 1a4d0: f003 fbc0 bl 1dc54 <__aeabi_dcmpeq> - 1a4d4: 2800 cmp r0, #0 - 1a4d6: d0d6 beq.n 1a486 <_dtoa_r+0x516> - 1a4d8: 9b0d ldr r3, [sp, #52] ; 0x34 - 1a4da: f8dd b010 ldr.w fp, [sp, #16] - 1a4de: f8dd a018 ldr.w sl, [sp, #24] - 1a4e2: 3301 adds r3, #1 - 1a4e4: 9304 str r3, [sp, #16] - 1a4e6: 46b0 mov r8, r6 - 1a4e8: e0dd b.n 1a6a6 <_dtoa_r+0x736> - 1a4ea: bf00 nop - 1a4ec: 0002c328 .word 0x0002c328 - 1a4f0: 0002c300 .word 0x0002c300 - 1a4f4: 3ff00000 .word 0x3ff00000 - 1a4f8: 401c0000 .word 0x401c0000 - 1a4fc: 3fe00000 .word 0x3fe00000 - 1a500: 40240000 .word 0x40240000 - 1a504: 40140000 .word 0x40140000 - 1a508: 9a0e ldr r2, [sp, #56] ; 0x38 - 1a50a: 2a00 cmp r2, #0 - 1a50c: f000 80ff beq.w 1a70e <_dtoa_r+0x79e> - 1a510: 9a28 ldr r2, [sp, #160] ; 0xa0 - 1a512: 2a01 cmp r2, #1 - 1a514: f340 8279 ble.w 1aa0a <_dtoa_r+0xa9a> - 1a518: 9b09 ldr r3, [sp, #36] ; 0x24 - 1a51a: 1e5e subs r6, r3, #1 - 1a51c: 45b1 cmp r9, r6 - 1a51e: f280 8241 bge.w 1a9a4 <_dtoa_r+0xa34> - 1a522: 9a06 ldr r2, [sp, #24] - 1a524: eba6 0309 sub.w r3, r6, r9 - 1a528: 441a add r2, r3 - 1a52a: 46b1 mov r9, r6 - 1a52c: 9206 str r2, [sp, #24] - 1a52e: 2600 movs r6, #0 - 1a530: 9b09 ldr r3, [sp, #36] ; 0x24 - 1a532: 2b00 cmp r3, #0 - 1a534: f2c0 8352 blt.w 1abdc <_dtoa_r+0xc6c> - 1a538: 9a08 ldr r2, [sp, #32] - 1a53a: 441a add r2, r3 - 1a53c: 9208 str r2, [sp, #32] - 1a53e: 9a0c ldr r2, [sp, #48] ; 0x30 - 1a540: 4615 mov r5, r2 - 1a542: 441a add r2, r3 - 1a544: 920c str r2, [sp, #48] ; 0x30 - 1a546: 2101 movs r1, #1 - 1a548: 4650 mov r0, sl - 1a54a: f001 fb3d bl 1bbc8 <__i2b> - 1a54e: 4604 mov r4, r0 - 1a550: b165 cbz r5, 1a56c <_dtoa_r+0x5fc> - 1a552: 9908 ldr r1, [sp, #32] - 1a554: 2900 cmp r1, #0 - 1a556: 460b mov r3, r1 - 1a558: dd08 ble.n 1a56c <_dtoa_r+0x5fc> - 1a55a: 9a0c ldr r2, [sp, #48] ; 0x30 - 1a55c: 42a9 cmp r1, r5 - 1a55e: bfa8 it ge - 1a560: 462b movge r3, r5 - 1a562: 1ad2 subs r2, r2, r3 - 1a564: 1aed subs r5, r5, r3 - 1a566: 1acb subs r3, r1, r3 - 1a568: 920c str r2, [sp, #48] ; 0x30 - 1a56a: 9308 str r3, [sp, #32] - 1a56c: f1b9 0f00 cmp.w r9, #0 - 1a570: d00a beq.n 1a588 <_dtoa_r+0x618> - 1a572: 9b0e ldr r3, [sp, #56] ; 0x38 - 1a574: 2b00 cmp r3, #0 - 1a576: f000 82d3 beq.w 1ab20 <_dtoa_r+0xbb0> - 1a57a: 2e00 cmp r6, #0 - 1a57c: f300 8215 bgt.w 1a9aa <_dtoa_r+0xa3a> - 1a580: ebb9 0206 subs.w r2, r9, r6 - 1a584: f040 833a bne.w 1abfc <_dtoa_r+0xc8c> - 1a588: 2101 movs r1, #1 - 1a58a: 4650 mov r0, sl - 1a58c: f001 fb1c bl 1bbc8 <__i2b> - 1a590: 9a06 ldr r2, [sp, #24] - 1a592: 2a00 cmp r2, #0 - 1a594: 4681 mov r9, r0 - 1a596: f300 80cf bgt.w 1a738 <_dtoa_r+0x7c8> - 1a59a: 9b28 ldr r3, [sp, #160] ; 0xa0 - 1a59c: 2b01 cmp r3, #1 - 1a59e: f340 819b ble.w 1a8d8 <_dtoa_r+0x968> - 1a5a2: 2700 movs r7, #0 - 1a5a4: 9b06 ldr r3, [sp, #24] - 1a5a6: 2001 movs r0, #1 - 1a5a8: 2b00 cmp r3, #0 - 1a5aa: f040 80cf bne.w 1a74c <_dtoa_r+0x7dc> - 1a5ae: 9b08 ldr r3, [sp, #32] - 1a5b0: 4418 add r0, r3 - 1a5b2: f010 001f ands.w r0, r0, #31 - 1a5b6: f000 818d beq.w 1a8d4 <_dtoa_r+0x964> - 1a5ba: f1c0 0320 rsb r3, r0, #32 - 1a5be: 2b04 cmp r3, #4 - 1a5c0: f300 80a9 bgt.w 1a716 <_dtoa_r+0x7a6> - 1a5c4: f040 8209 bne.w 1a9da <_dtoa_r+0xa6a> - 1a5c8: 9b0c ldr r3, [sp, #48] ; 0x30 - 1a5ca: 2b00 cmp r3, #0 - 1a5cc: dd05 ble.n 1a5da <_dtoa_r+0x66a> - 1a5ce: 4659 mov r1, fp - 1a5d0: 461a mov r2, r3 - 1a5d2: 4650 mov r0, sl - 1a5d4: f001 fc34 bl 1be40 <__lshift> - 1a5d8: 4683 mov fp, r0 - 1a5da: 9b08 ldr r3, [sp, #32] - 1a5dc: 2b00 cmp r3, #0 - 1a5de: dd05 ble.n 1a5ec <_dtoa_r+0x67c> - 1a5e0: 4649 mov r1, r9 - 1a5e2: 461a mov r2, r3 - 1a5e4: 4650 mov r0, sl - 1a5e6: f001 fc2b bl 1be40 <__lshift> - 1a5ea: 4681 mov r9, r0 - 1a5ec: 9b0f ldr r3, [sp, #60] ; 0x3c - 1a5ee: 2b00 cmp r3, #0 - 1a5f0: f040 8150 bne.w 1a894 <_dtoa_r+0x924> - 1a5f4: 9b09 ldr r3, [sp, #36] ; 0x24 - 1a5f6: 2b00 cmp r3, #0 - 1a5f8: f340 8137 ble.w 1a86a <_dtoa_r+0x8fa> - 1a5fc: 9b0e ldr r3, [sp, #56] ; 0x38 - 1a5fe: 2b00 cmp r3, #0 - 1a600: f040 80bb bne.w 1a77a <_dtoa_r+0x80a> - 1a604: 9b0d ldr r3, [sp, #52] ; 0x34 - 1a606: 3301 adds r3, #1 - 1a608: 9304 str r3, [sp, #16] - 1a60a: 9e03 ldr r6, [sp, #12] - 1a60c: 9f09 ldr r7, [sp, #36] ; 0x24 - 1a60e: 2501 movs r5, #1 - 1a610: e007 b.n 1a622 <_dtoa_r+0x6b2> - 1a612: 4659 mov r1, fp - 1a614: 2300 movs r3, #0 - 1a616: 220a movs r2, #10 - 1a618: 4650 mov r0, sl - 1a61a: f001 fa35 bl 1ba88 <__multadd> - 1a61e: 3501 adds r5, #1 - 1a620: 4683 mov fp, r0 - 1a622: 4649 mov r1, r9 - 1a624: 4658 mov r0, fp - 1a626: f7ff fc0f bl 19e48 - 1a62a: 42af cmp r7, r5 - 1a62c: f100 0330 add.w r3, r0, #48 ; 0x30 - 1a630: f806 3b01 strb.w r3, [r6], #1 - 1a634: dced bgt.n 1a612 <_dtoa_r+0x6a2> - 1a636: 9a09 ldr r2, [sp, #36] ; 0x24 - 1a638: 2a00 cmp r2, #0 - 1a63a: bfc8 it gt - 1a63c: 4615 movgt r5, r2 - 1a63e: 9a03 ldr r2, [sp, #12] - 1a640: bfd8 it le - 1a642: 2501 movle r5, #1 - 1a644: 4415 add r5, r2 - 1a646: 2200 movs r2, #0 - 1a648: 9206 str r2, [sp, #24] - 1a64a: 4659 mov r1, fp - 1a64c: 2201 movs r2, #1 - 1a64e: 4650 mov r0, sl - 1a650: 9308 str r3, [sp, #32] - 1a652: f001 fbf5 bl 1be40 <__lshift> - 1a656: 4649 mov r1, r9 - 1a658: 4683 mov fp, r0 - 1a65a: f001 fc69 bl 1bf30 <__mcmp> - 1a65e: 2800 cmp r0, #0 - 1a660: f340 81c8 ble.w 1a9f4 <_dtoa_r+0xa84> - 1a664: f815 3c01 ldrb.w r3, [r5, #-1] - 1a668: 9a03 ldr r2, [sp, #12] - 1a66a: 3d01 subs r5, #1 - 1a66c: e004 b.n 1a678 <_dtoa_r+0x708> - 1a66e: 42aa cmp r2, r5 - 1a670: f000 81da beq.w 1aa28 <_dtoa_r+0xab8> - 1a674: f815 3d01 ldrb.w r3, [r5, #-1]! - 1a678: 2b39 cmp r3, #57 ; 0x39 - 1a67a: f105 0801 add.w r8, r5, #1 - 1a67e: d0f6 beq.n 1a66e <_dtoa_r+0x6fe> - 1a680: 3301 adds r3, #1 - 1a682: 702b strb r3, [r5, #0] - 1a684: 4649 mov r1, r9 - 1a686: 4650 mov r0, sl - 1a688: f001 f9f4 bl 1ba74 <_Bfree> - 1a68c: b15c cbz r4, 1a6a6 <_dtoa_r+0x736> - 1a68e: 9b06 ldr r3, [sp, #24] - 1a690: b12b cbz r3, 1a69e <_dtoa_r+0x72e> - 1a692: 42a3 cmp r3, r4 - 1a694: d003 beq.n 1a69e <_dtoa_r+0x72e> - 1a696: 4619 mov r1, r3 - 1a698: 4650 mov r0, sl - 1a69a: f001 f9eb bl 1ba74 <_Bfree> - 1a69e: 4621 mov r1, r4 - 1a6a0: 4650 mov r0, sl - 1a6a2: f001 f9e7 bl 1ba74 <_Bfree> - 1a6a6: 4659 mov r1, fp - 1a6a8: 4650 mov r0, sl - 1a6aa: f001 f9e3 bl 1ba74 <_Bfree> - 1a6ae: 2300 movs r3, #0 - 1a6b0: f888 3000 strb.w r3, [r8] - 1a6b4: 9b2a ldr r3, [sp, #168] ; 0xa8 - 1a6b6: 9a04 ldr r2, [sp, #16] - 1a6b8: 601a str r2, [r3, #0] - 1a6ba: 9b2c ldr r3, [sp, #176] ; 0xb0 - 1a6bc: 2b00 cmp r3, #0 - 1a6be: f43f ac94 beq.w 19fea <_dtoa_r+0x7a> - 1a6c2: 9803 ldr r0, [sp, #12] - 1a6c4: f8c3 8000 str.w r8, [r3] - 1a6c8: b01f add sp, #124 ; 0x7c - 1a6ca: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - 1a6ce: 2301 movs r3, #1 - 1a6d0: 930f str r3, [sp, #60] ; 0x3c - 1a6d2: 1e6b subs r3, r5, #1 - 1a6d4: 2b00 cmp r3, #0 - 1a6d6: f6bf acfa bge.w 1a0ce <_dtoa_r+0x15e> - 1a6da: f1c5 0301 rsb r3, r5, #1 - 1a6de: 930c str r3, [sp, #48] ; 0x30 - 1a6e0: 2300 movs r3, #0 - 1a6e2: 9308 str r3, [sp, #32] - 1a6e4: e4f5 b.n 1a0d2 <_dtoa_r+0x162> - 1a6e6: 4640 mov r0, r8 - 1a6e8: f7fb fec4 bl 16474 <__aeabi_i2d> - 1a6ec: 4632 mov r2, r6 - 1a6ee: 463b mov r3, r7 - 1a6f0: f003 fab0 bl 1dc54 <__aeabi_dcmpeq> - 1a6f4: 2800 cmp r0, #0 - 1a6f6: f47f acd0 bne.w 1a09a <_dtoa_r+0x12a> - 1a6fa: f108 33ff add.w r3, r8, #4294967295 ; 0xffffffff - 1a6fe: 9306 str r3, [sp, #24] - 1a700: e4cb b.n 1a09a <_dtoa_r+0x12a> - 1a702: 4bba ldr r3, [pc, #744] ; (1a9ec <_dtoa_r+0xa7c>) - 1a704: 9303 str r3, [sp, #12] - 1a706: 9803 ldr r0, [sp, #12] - 1a708: b01f add sp, #124 ; 0x7c - 1a70a: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - 1a70e: 9d0c ldr r5, [sp, #48] ; 0x30 - 1a710: 9c0e ldr r4, [sp, #56] ; 0x38 - 1a712: 464e mov r6, r9 - 1a714: e71c b.n 1a550 <_dtoa_r+0x5e0> - 1a716: f1c0 001c rsb r0, r0, #28 - 1a71a: 9b0c ldr r3, [sp, #48] ; 0x30 - 1a71c: 4403 add r3, r0 - 1a71e: 930c str r3, [sp, #48] ; 0x30 - 1a720: 9b08 ldr r3, [sp, #32] - 1a722: 4403 add r3, r0 - 1a724: 4405 add r5, r0 - 1a726: 9308 str r3, [sp, #32] - 1a728: e74e b.n 1a5c8 <_dtoa_r+0x658> - 1a72a: 2401 movs r4, #1 - 1a72c: e4e6 b.n 1a0fc <_dtoa_r+0x18c> - 1a72e: f1c3 0320 rsb r3, r3, #32 - 1a732: fa06 f003 lsl.w r0, r6, r3 - 1a736: e47c b.n 1a032 <_dtoa_r+0xc2> - 1a738: 4601 mov r1, r0 - 1a73a: 4650 mov r0, sl - 1a73c: f001 fb20 bl 1bd80 <__pow5mult> - 1a740: 9b28 ldr r3, [sp, #160] ; 0xa0 - 1a742: 2b01 cmp r3, #1 - 1a744: 4681 mov r9, r0 - 1a746: f340 81d3 ble.w 1aaf0 <_dtoa_r+0xb80> - 1a74a: 2700 movs r7, #0 - 1a74c: f8d9 3010 ldr.w r3, [r9, #16] - 1a750: eb09 0383 add.w r3, r9, r3, lsl #2 - 1a754: 6918 ldr r0, [r3, #16] - 1a756: f001 f9e7 bl 1bb28 <__hi0bits> - 1a75a: f1c0 0020 rsb r0, r0, #32 - 1a75e: e726 b.n 1a5ae <_dtoa_r+0x63e> - 1a760: 4621 mov r1, r4 - 1a762: 2300 movs r3, #0 - 1a764: 220a movs r2, #10 - 1a766: 4650 mov r0, sl - 1a768: f001 f98e bl 1ba88 <__multadd> - 1a76c: 9b13 ldr r3, [sp, #76] ; 0x4c - 1a76e: 2b00 cmp r3, #0 - 1a770: 4604 mov r4, r0 - 1a772: f340 830f ble.w 1ad94 <_dtoa_r+0xe24> - 1a776: 960d str r6, [sp, #52] ; 0x34 - 1a778: 9309 str r3, [sp, #36] ; 0x24 - 1a77a: 2d00 cmp r5, #0 - 1a77c: f300 810b bgt.w 1a996 <_dtoa_r+0xa26> - 1a780: 2f00 cmp r7, #0 - 1a782: f040 8214 bne.w 1abae <_dtoa_r+0xc3e> - 1a786: 4626 mov r6, r4 - 1a788: 9b04 ldr r3, [sp, #16] - 1a78a: 9f03 ldr r7, [sp, #12] - 1a78c: 9909 ldr r1, [sp, #36] ; 0x24 - 1a78e: f003 0201 and.w r2, r3, #1 - 1a792: 1e7b subs r3, r7, #1 - 1a794: 4419 add r1, r3 - 1a796: 9b28 ldr r3, [sp, #160] ; 0xa0 - 1a798: 920a str r2, [sp, #40] ; 0x28 - 1a79a: 4313 orrs r3, r2 - 1a79c: 9109 str r1, [sp, #36] ; 0x24 - 1a79e: 930c str r3, [sp, #48] ; 0x30 - 1a7a0: 4649 mov r1, r9 - 1a7a2: 4658 mov r0, fp - 1a7a4: f7ff fb50 bl 19e48 - 1a7a8: 4621 mov r1, r4 - 1a7aa: 9004 str r0, [sp, #16] - 1a7ac: 4658 mov r0, fp - 1a7ae: f001 fbbf bl 1bf30 <__mcmp> - 1a7b2: 4632 mov r2, r6 - 1a7b4: 4680 mov r8, r0 - 1a7b6: 4649 mov r1, r9 - 1a7b8: 4650 mov r0, sl - 1a7ba: f001 fbd9 bl 1bf70 <__mdiff> - 1a7be: 9b04 ldr r3, [sp, #16] - 1a7c0: 68c2 ldr r2, [r0, #12] - 1a7c2: 4605 mov r5, r0 - 1a7c4: 3330 adds r3, #48 ; 0x30 - 1a7c6: 2a00 cmp r2, #0 - 1a7c8: d141 bne.n 1a84e <_dtoa_r+0x8de> - 1a7ca: 4601 mov r1, r0 - 1a7cc: 4658 mov r0, fp - 1a7ce: 9308 str r3, [sp, #32] - 1a7d0: f001 fbae bl 1bf30 <__mcmp> - 1a7d4: 4629 mov r1, r5 - 1a7d6: 9006 str r0, [sp, #24] - 1a7d8: 4650 mov r0, sl - 1a7da: f001 f94b bl 1ba74 <_Bfree> - 1a7de: 9a06 ldr r2, [sp, #24] - 1a7e0: 9b08 ldr r3, [sp, #32] - 1a7e2: b91a cbnz r2, 1a7ec <_dtoa_r+0x87c> - 1a7e4: 990c ldr r1, [sp, #48] ; 0x30 - 1a7e6: 2900 cmp r1, #0 - 1a7e8: f000 82c0 beq.w 1ad6c <_dtoa_r+0xdfc> - 1a7ec: 1c79 adds r1, r7, #1 - 1a7ee: f1b8 0f00 cmp.w r8, #0 - 1a7f2: 460d mov r5, r1 - 1a7f4: f2c0 819b blt.w 1ab2e <_dtoa_r+0xbbe> - 1a7f8: 9828 ldr r0, [sp, #160] ; 0xa0 - 1a7fa: ea48 0800 orr.w r8, r8, r0 - 1a7fe: 980a ldr r0, [sp, #40] ; 0x28 - 1a800: ea50 0808 orrs.w r8, r0, r8 - 1a804: f000 8193 beq.w 1ab2e <_dtoa_r+0xbbe> - 1a808: 2a00 cmp r2, #0 - 1a80a: f300 81eb bgt.w 1abe4 <_dtoa_r+0xc74> - 1a80e: 9a09 ldr r2, [sp, #36] ; 0x24 - 1a810: 703b strb r3, [r7, #0] - 1a812: 4297 cmp r7, r2 - 1a814: f000 81ec beq.w 1abf0 <_dtoa_r+0xc80> - 1a818: 4659 mov r1, fp - 1a81a: 2300 movs r3, #0 - 1a81c: 220a movs r2, #10 - 1a81e: 4650 mov r0, sl - 1a820: f001 f932 bl 1ba88 <__multadd> - 1a824: 42b4 cmp r4, r6 - 1a826: 4683 mov fp, r0 - 1a828: 4621 mov r1, r4 - 1a82a: f04f 0300 mov.w r3, #0 - 1a82e: f04f 020a mov.w r2, #10 - 1a832: 4650 mov r0, sl - 1a834: d013 beq.n 1a85e <_dtoa_r+0x8ee> - 1a836: f001 f927 bl 1ba88 <__multadd> - 1a83a: 4631 mov r1, r6 - 1a83c: 4604 mov r4, r0 - 1a83e: 2300 movs r3, #0 - 1a840: 220a movs r2, #10 - 1a842: 4650 mov r0, sl - 1a844: f001 f920 bl 1ba88 <__multadd> - 1a848: 462f mov r7, r5 - 1a84a: 4606 mov r6, r0 - 1a84c: e7a8 b.n 1a7a0 <_dtoa_r+0x830> - 1a84e: 4601 mov r1, r0 - 1a850: 4650 mov r0, sl - 1a852: 9306 str r3, [sp, #24] - 1a854: f001 f90e bl 1ba74 <_Bfree> - 1a858: 9b06 ldr r3, [sp, #24] - 1a85a: 2201 movs r2, #1 - 1a85c: e7c6 b.n 1a7ec <_dtoa_r+0x87c> - 1a85e: f001 f913 bl 1ba88 <__multadd> - 1a862: 462f mov r7, r5 - 1a864: 4604 mov r4, r0 - 1a866: 4606 mov r6, r0 - 1a868: e79a b.n 1a7a0 <_dtoa_r+0x830> - 1a86a: 9b28 ldr r3, [sp, #160] ; 0xa0 - 1a86c: 2b02 cmp r3, #2 - 1a86e: dc70 bgt.n 1a952 <_dtoa_r+0x9e2> - 1a870: 9b0e ldr r3, [sp, #56] ; 0x38 - 1a872: 2b00 cmp r3, #0 - 1a874: d181 bne.n 1a77a <_dtoa_r+0x80a> - 1a876: 9b0d ldr r3, [sp, #52] ; 0x34 - 1a878: 4649 mov r1, r9 - 1a87a: 3301 adds r3, #1 - 1a87c: 4658 mov r0, fp - 1a87e: 9304 str r3, [sp, #16] - 1a880: f7ff fae2 bl 19e48 - 1a884: 9d03 ldr r5, [sp, #12] - 1a886: f100 0330 add.w r3, r0, #48 ; 0x30 - 1a88a: 2200 movs r2, #0 - 1a88c: f805 3b01 strb.w r3, [r5], #1 - 1a890: 9206 str r2, [sp, #24] - 1a892: e6da b.n 1a64a <_dtoa_r+0x6da> - 1a894: 4649 mov r1, r9 - 1a896: 4658 mov r0, fp - 1a898: f001 fb4a bl 1bf30 <__mcmp> - 1a89c: 2800 cmp r0, #0 - 1a89e: f6bf aea9 bge.w 1a5f4 <_dtoa_r+0x684> - 1a8a2: 4659 mov r1, fp - 1a8a4: 2300 movs r3, #0 - 1a8a6: 220a movs r2, #10 - 1a8a8: 4650 mov r0, sl - 1a8aa: f001 f8ed bl 1ba88 <__multadd> - 1a8ae: 9b0d ldr r3, [sp, #52] ; 0x34 - 1a8b0: 1e5e subs r6, r3, #1 - 1a8b2: 9b0e ldr r3, [sp, #56] ; 0x38 - 1a8b4: 4683 mov fp, r0 - 1a8b6: 2b00 cmp r3, #0 - 1a8b8: f47f af52 bne.w 1a760 <_dtoa_r+0x7f0> - 1a8bc: 9b13 ldr r3, [sp, #76] ; 0x4c - 1a8be: 2b00 cmp r3, #0 - 1a8c0: f340 8260 ble.w 1ad84 <_dtoa_r+0xe14> - 1a8c4: 9a0d ldr r2, [sp, #52] ; 0x34 - 1a8c6: 9204 str r2, [sp, #16] - 1a8c8: 9309 str r3, [sp, #36] ; 0x24 - 1a8ca: e69e b.n 1a60a <_dtoa_r+0x69a> - 1a8cc: 4b48 ldr r3, [pc, #288] ; (1a9f0 <_dtoa_r+0xa80>) - 1a8ce: 9303 str r3, [sp, #12] - 1a8d0: 3303 adds r3, #3 - 1a8d2: e42e b.n 1a132 <_dtoa_r+0x1c2> - 1a8d4: 201c movs r0, #28 - 1a8d6: e720 b.n 1a71a <_dtoa_r+0x7aa> - 1a8d8: e9dd 1204 ldrd r1, r2, [sp, #16] - 1a8dc: 2900 cmp r1, #0 - 1a8de: f47f ae60 bne.w 1a5a2 <_dtoa_r+0x632> - 1a8e2: f3c2 0313 ubfx r3, r2, #0, #20 - 1a8e6: 2b00 cmp r3, #0 - 1a8e8: f000 810d beq.w 1ab06 <_dtoa_r+0xb96> - 1a8ec: 9f04 ldr r7, [sp, #16] - 1a8ee: e659 b.n 1a5a4 <_dtoa_r+0x634> - 1a8f0: 2301 movs r3, #1 - 1a8f2: 930e str r3, [sp, #56] ; 0x38 - 1a8f4: 9b29 ldr r3, [sp, #164] ; 0xa4 - 1a8f6: 9a0d ldr r2, [sp, #52] ; 0x34 - 1a8f8: 4413 add r3, r2 - 1a8fa: 9313 str r3, [sp, #76] ; 0x4c - 1a8fc: 3301 adds r3, #1 - 1a8fe: 2b01 cmp r3, #1 - 1a900: 461d mov r5, r3 - 1a902: 9309 str r3, [sp, #36] ; 0x24 - 1a904: bfb8 it lt - 1a906: 2501 movlt r5, #1 - 1a908: 2100 movs r1, #0 - 1a90a: 2d17 cmp r5, #23 - 1a90c: f8ca 1044 str.w r1, [sl, #68] ; 0x44 - 1a910: f77f ac5f ble.w 1a1d2 <_dtoa_r+0x262> - 1a914: 2201 movs r2, #1 - 1a916: 2304 movs r3, #4 - 1a918: 005b lsls r3, r3, #1 - 1a91a: f103 0014 add.w r0, r3, #20 - 1a91e: 42a8 cmp r0, r5 - 1a920: 4611 mov r1, r2 - 1a922: f102 0201 add.w r2, r2, #1 - 1a926: d9f7 bls.n 1a918 <_dtoa_r+0x9a8> - 1a928: f8ca 1044 str.w r1, [sl, #68] ; 0x44 - 1a92c: e451 b.n 1a1d2 <_dtoa_r+0x262> - 1a92e: 2301 movs r3, #1 - 1a930: 930e str r3, [sp, #56] ; 0x38 - 1a932: 9b29 ldr r3, [sp, #164] ; 0xa4 - 1a934: 2b00 cmp r3, #0 - 1a936: dd53 ble.n 1a9e0 <_dtoa_r+0xa70> - 1a938: 9313 str r3, [sp, #76] ; 0x4c - 1a93a: 9309 str r3, [sp, #36] ; 0x24 - 1a93c: 461d mov r5, r3 - 1a93e: e7e3 b.n 1a908 <_dtoa_r+0x998> - 1a940: 2300 movs r3, #0 - 1a942: 930e str r3, [sp, #56] ; 0x38 - 1a944: e7d6 b.n 1a8f4 <_dtoa_r+0x984> - 1a946: 2300 movs r3, #0 - 1a948: 930e str r3, [sp, #56] ; 0x38 - 1a94a: e7f2 b.n 1a932 <_dtoa_r+0x9c2> - 1a94c: 9b13 ldr r3, [sp, #76] ; 0x4c - 1a94e: 9309 str r3, [sp, #36] ; 0x24 - 1a950: 960d str r6, [sp, #52] ; 0x34 - 1a952: 9b09 ldr r3, [sp, #36] ; 0x24 - 1a954: 2b00 cmp r3, #0 - 1a956: f47f ad6a bne.w 1a42e <_dtoa_r+0x4be> - 1a95a: 4649 mov r1, r9 - 1a95c: 2205 movs r2, #5 - 1a95e: 4650 mov r0, sl - 1a960: f001 f892 bl 1ba88 <__multadd> - 1a964: 4601 mov r1, r0 - 1a966: 4681 mov r9, r0 - 1a968: 4658 mov r0, fp - 1a96a: f001 fae1 bl 1bf30 <__mcmp> - 1a96e: 2800 cmp r0, #0 - 1a970: f77f ad5d ble.w 1a42e <_dtoa_r+0x4be> - 1a974: f8dd 800c ldr.w r8, [sp, #12] - 1a978: 9f0d ldr r7, [sp, #52] ; 0x34 - 1a97a: 2331 movs r3, #49 ; 0x31 - 1a97c: f808 3b01 strb.w r3, [r8], #1 - 1a980: 3701 adds r7, #1 - 1a982: 1c7b adds r3, r7, #1 - 1a984: 4649 mov r1, r9 - 1a986: 4650 mov r0, sl - 1a988: 9304 str r3, [sp, #16] - 1a98a: f001 f873 bl 1ba74 <_Bfree> - 1a98e: 2c00 cmp r4, #0 - 1a990: f47f ae85 bne.w 1a69e <_dtoa_r+0x72e> - 1a994: e687 b.n 1a6a6 <_dtoa_r+0x736> - 1a996: 4621 mov r1, r4 - 1a998: 462a mov r2, r5 - 1a99a: 4650 mov r0, sl - 1a99c: f001 fa50 bl 1be40 <__lshift> - 1a9a0: 4604 mov r4, r0 - 1a9a2: e6ed b.n 1a780 <_dtoa_r+0x810> - 1a9a4: eba9 0606 sub.w r6, r9, r6 - 1a9a8: e5c2 b.n 1a530 <_dtoa_r+0x5c0> - 1a9aa: 4621 mov r1, r4 - 1a9ac: 4632 mov r2, r6 - 1a9ae: 4650 mov r0, sl - 1a9b0: f001 f9e6 bl 1bd80 <__pow5mult> - 1a9b4: 465a mov r2, fp - 1a9b6: 4601 mov r1, r0 - 1a9b8: 4604 mov r4, r0 - 1a9ba: 4650 mov r0, sl - 1a9bc: f001 f932 bl 1bc24 <__multiply> - 1a9c0: 4659 mov r1, fp - 1a9c2: 4683 mov fp, r0 - 1a9c4: 4650 mov r0, sl - 1a9c6: f001 f855 bl 1ba74 <_Bfree> - 1a9ca: e5d9 b.n 1a580 <_dtoa_r+0x610> - 1a9cc: e9dd 230a ldrd r2, r3, [sp, #40] ; 0x28 - 1a9d0: f04f 0802 mov.w r8, #2 - 1a9d4: e9cd 2310 strd r2, r3, [sp, #64] ; 0x40 - 1a9d8: e429 b.n 1a22e <_dtoa_r+0x2be> - 1a9da: f1c0 003c rsb r0, r0, #60 ; 0x3c - 1a9de: e69c b.n 1a71a <_dtoa_r+0x7aa> - 1a9e0: 2301 movs r3, #1 - 1a9e2: 9329 str r3, [sp, #164] ; 0xa4 - 1a9e4: 9309 str r3, [sp, #36] ; 0x24 - 1a9e6: f7ff bbef b.w 1a1c8 <_dtoa_r+0x258> - 1a9ea: bf00 nop - 1a9ec: 0002c180 .word 0x0002c180 - 1a9f0: 0002c200 .word 0x0002c200 - 1a9f4: d103 bne.n 1a9fe <_dtoa_r+0xa8e> - 1a9f6: 9b08 ldr r3, [sp, #32] - 1a9f8: 07db lsls r3, r3, #31 - 1a9fa: f53f ae33 bmi.w 1a664 <_dtoa_r+0x6f4> - 1a9fe: 46a8 mov r8, r5 - 1aa00: f815 3d01 ldrb.w r3, [r5, #-1]! - 1aa04: 2b30 cmp r3, #48 ; 0x30 - 1aa06: d0fa beq.n 1a9fe <_dtoa_r+0xa8e> - 1aa08: e63c b.n 1a684 <_dtoa_r+0x714> - 1aa0a: 9a12 ldr r2, [sp, #72] ; 0x48 - 1aa0c: 2a00 cmp r2, #0 - 1aa0e: f000 814c beq.w 1acaa <_dtoa_r+0xd3a> - 1aa12: f203 4333 addw r3, r3, #1075 ; 0x433 - 1aa16: 9a08 ldr r2, [sp, #32] - 1aa18: 441a add r2, r3 - 1aa1a: 9208 str r2, [sp, #32] - 1aa1c: 9a0c ldr r2, [sp, #48] ; 0x30 - 1aa1e: 4615 mov r5, r2 - 1aa20: 441a add r2, r3 - 1aa22: 920c str r2, [sp, #48] ; 0x30 - 1aa24: 464e mov r6, r9 - 1aa26: e58e b.n 1a546 <_dtoa_r+0x5d6> - 1aa28: 9b04 ldr r3, [sp, #16] - 1aa2a: 9a03 ldr r2, [sp, #12] - 1aa2c: 3301 adds r3, #1 - 1aa2e: 9304 str r3, [sp, #16] - 1aa30: 2331 movs r3, #49 ; 0x31 - 1aa32: 7013 strb r3, [r2, #0] - 1aa34: e626 b.n 1a684 <_dtoa_r+0x714> - 1aa36: 4640 mov r0, r8 - 1aa38: f7fb fd1c bl 16474 <__aeabi_i2d> - 1aa3c: 4632 mov r2, r6 - 1aa3e: 463b mov r3, r7 - 1aa40: f7fb fd82 bl 16548 <__aeabi_dmul> - 1aa44: 4bb8 ldr r3, [pc, #736] ; (1ad28 <_dtoa_r+0xdb8>) - 1aa46: 2200 movs r2, #0 - 1aa48: f7fb fbc8 bl 161dc <__adddf3> - 1aa4c: f1a1 7350 sub.w r3, r1, #54525952 ; 0x3400000 - 1aa50: e9cd 0114 strd r0, r1, [sp, #80] ; 0x50 - 1aa54: 9315 str r3, [sp, #84] ; 0x54 - 1aa56: 4bb5 ldr r3, [pc, #724] ; (1ad2c <_dtoa_r+0xdbc>) - 1aa58: 4639 mov r1, r7 - 1aa5a: 2200 movs r2, #0 - 1aa5c: 4630 mov r0, r6 - 1aa5e: f7fb fbbb bl 161d8 <__aeabi_dsub> - 1aa62: e9dd 7814 ldrd r7, r8, [sp, #80] ; 0x50 - 1aa66: 463a mov r2, r7 - 1aa68: 4643 mov r3, r8 - 1aa6a: 4604 mov r4, r0 - 1aa6c: 460d mov r5, r1 - 1aa6e: f003 f919 bl 1dca4 <__aeabi_dcmpgt> - 1aa72: 2800 cmp r0, #0 - 1aa74: f040 8166 bne.w 1ad44 <_dtoa_r+0xdd4> - 1aa78: 463a mov r2, r7 - 1aa7a: f108 4300 add.w r3, r8, #2147483648 ; 0x80000000 - 1aa7e: 4620 mov r0, r4 - 1aa80: 4629 mov r1, r5 - 1aa82: f003 f8f1 bl 1dc68 <__aeabi_dcmplt> - 1aa86: 2800 cmp r0, #0 - 1aa88: f43f acaa beq.w 1a3e0 <_dtoa_r+0x470> - 1aa8c: f04f 0900 mov.w r9, #0 - 1aa90: 464c mov r4, r9 - 1aa92: e4cc b.n 1a42e <_dtoa_r+0x4be> - 1aa94: 900f str r0, [sp, #60] ; 0x3c - 1aa96: e620 b.n 1a6da <_dtoa_r+0x76a> - 1aa98: f000 8132 beq.w 1ad00 <_dtoa_r+0xd90> - 1aa9c: 9a0d ldr r2, [sp, #52] ; 0x34 - 1aa9e: 4ba4 ldr r3, [pc, #656] ; (1ad30 <_dtoa_r+0xdc0>) - 1aaa0: 4254 negs r4, r2 - 1aaa2: f004 020f and.w r2, r4, #15 - 1aaa6: eb03 03c2 add.w r3, r3, r2, lsl #3 - 1aaaa: e9d3 2300 ldrd r2, r3, [r3] - 1aaae: e9dd 010a ldrd r0, r1, [sp, #40] ; 0x28 - 1aab2: f7fb fd49 bl 16548 <__aeabi_dmul> - 1aab6: 1124 asrs r4, r4, #4 - 1aab8: 4606 mov r6, r0 - 1aaba: 460f mov r7, r1 - 1aabc: f000 8172 beq.w 1ada4 <_dtoa_r+0xe34> - 1aac0: 4d9c ldr r5, [pc, #624] ; (1ad34 <_dtoa_r+0xdc4>) - 1aac2: 2300 movs r3, #0 - 1aac4: f04f 0802 mov.w r8, #2 - 1aac8: 07e2 lsls r2, r4, #31 - 1aaca: d506 bpl.n 1aada <_dtoa_r+0xb6a> - 1aacc: e9d5 2300 ldrd r2, r3, [r5] - 1aad0: f7fb fd3a bl 16548 <__aeabi_dmul> - 1aad4: f108 0801 add.w r8, r8, #1 - 1aad8: 2301 movs r3, #1 - 1aada: 1064 asrs r4, r4, #1 - 1aadc: f105 0508 add.w r5, r5, #8 - 1aae0: d1f2 bne.n 1aac8 <_dtoa_r+0xb58> - 1aae2: 2b00 cmp r3, #0 - 1aae4: f43f abbd beq.w 1a262 <_dtoa_r+0x2f2> - 1aae8: 4606 mov r6, r0 - 1aaea: 460f mov r7, r1 - 1aaec: f7ff bbb9 b.w 1a262 <_dtoa_r+0x2f2> - 1aaf0: 9b04 ldr r3, [sp, #16] - 1aaf2: 2b00 cmp r3, #0 - 1aaf4: f47f ae29 bne.w 1a74a <_dtoa_r+0x7da> - 1aaf8: e9dd 1204 ldrd r1, r2, [sp, #16] - 1aafc: f3c2 0313 ubfx r3, r2, #0, #20 - 1ab00: 2b00 cmp r3, #0 - 1ab02: f47f ae22 bne.w 1a74a <_dtoa_r+0x7da> - 1ab06: 4f8c ldr r7, [pc, #560] ; (1ad38 <_dtoa_r+0xdc8>) - 1ab08: 4017 ands r7, r2 - 1ab0a: 2f00 cmp r7, #0 - 1ab0c: f43f ad4a beq.w 1a5a4 <_dtoa_r+0x634> - 1ab10: 9b0c ldr r3, [sp, #48] ; 0x30 - 1ab12: 3301 adds r3, #1 - 1ab14: 930c str r3, [sp, #48] ; 0x30 - 1ab16: 9b08 ldr r3, [sp, #32] - 1ab18: 3301 adds r3, #1 - 1ab1a: 9308 str r3, [sp, #32] - 1ab1c: 2701 movs r7, #1 - 1ab1e: e541 b.n 1a5a4 <_dtoa_r+0x634> - 1ab20: 4659 mov r1, fp - 1ab22: 464a mov r2, r9 - 1ab24: 4650 mov r0, sl - 1ab26: f001 f92b bl 1bd80 <__pow5mult> - 1ab2a: 4683 mov fp, r0 - 1ab2c: e52c b.n 1a588 <_dtoa_r+0x618> - 1ab2e: 2a00 cmp r2, #0 - 1ab30: 4688 mov r8, r1 - 1ab32: dd12 ble.n 1ab5a <_dtoa_r+0xbea> - 1ab34: 4659 mov r1, fp - 1ab36: 2201 movs r2, #1 - 1ab38: 4650 mov r0, sl - 1ab3a: 9306 str r3, [sp, #24] - 1ab3c: f001 f980 bl 1be40 <__lshift> - 1ab40: 4649 mov r1, r9 - 1ab42: 4683 mov fp, r0 - 1ab44: f001 f9f4 bl 1bf30 <__mcmp> - 1ab48: 2800 cmp r0, #0 - 1ab4a: 9b06 ldr r3, [sp, #24] - 1ab4c: f340 8103 ble.w 1ad56 <_dtoa_r+0xde6> - 1ab50: 2b39 cmp r3, #57 ; 0x39 - 1ab52: f000 80e0 beq.w 1ad16 <_dtoa_r+0xda6> - 1ab56: 9b04 ldr r3, [sp, #16] - 1ab58: 3331 adds r3, #49 ; 0x31 - 1ab5a: 703b strb r3, [r7, #0] - 1ab5c: 9b0d ldr r3, [sp, #52] ; 0x34 - 1ab5e: 9406 str r4, [sp, #24] - 1ab60: 3301 adds r3, #1 - 1ab62: 9304 str r3, [sp, #16] - 1ab64: 4634 mov r4, r6 - 1ab66: e58d b.n 1a684 <_dtoa_r+0x714> - 1ab68: 465f mov r7, fp - 1ab6a: f8dd a018 ldr.w sl, [sp, #24] - 1ab6e: f8dd b010 ldr.w fp, [sp, #16] - 1ab72: 9b0d ldr r3, [sp, #52] ; 0x34 - 1ab74: 3301 adds r3, #1 - 1ab76: 9304 str r3, [sp, #16] - 1ab78: 4602 mov r2, r0 - 1ab7a: 461c mov r4, r3 - 1ab7c: 460b mov r3, r1 - 1ab7e: f7fb fb2d bl 161dc <__adddf3> - 1ab82: 4602 mov r2, r0 - 1ab84: 460b mov r3, r1 - 1ab86: e9cd 2306 strd r2, r3, [sp, #24] - 1ab8a: 4642 mov r2, r8 - 1ab8c: 464b mov r3, r9 - 1ab8e: f003 f889 bl 1dca4 <__aeabi_dcmpgt> - 1ab92: b940 cbnz r0, 1aba6 <_dtoa_r+0xc36> - 1ab94: e9dd 0106 ldrd r0, r1, [sp, #24] - 1ab98: 4642 mov r2, r8 - 1ab9a: 464b mov r3, r9 - 1ab9c: f003 f85a bl 1dc54 <__aeabi_dcmpeq> - 1aba0: b118 cbz r0, 1abaa <_dtoa_r+0xc3a> - 1aba2: 07f9 lsls r1, r7, #31 - 1aba4: d501 bpl.n 1abaa <_dtoa_r+0xc3a> - 1aba6: 9a03 ldr r2, [sp, #12] - 1aba8: e40a b.n 1a3c0 <_dtoa_r+0x450> - 1abaa: 46b0 mov r8, r6 - 1abac: e57b b.n 1a6a6 <_dtoa_r+0x736> - 1abae: 6861 ldr r1, [r4, #4] - 1abb0: 4650 mov r0, sl - 1abb2: f000 ff39 bl 1ba28 <_Balloc> - 1abb6: 4605 mov r5, r0 - 1abb8: 2800 cmp r0, #0 - 1abba: f000 80f7 beq.w 1adac <_dtoa_r+0xe3c> - 1abbe: 6923 ldr r3, [r4, #16] - 1abc0: 3302 adds r3, #2 - 1abc2: 009a lsls r2, r3, #2 - 1abc4: f104 010c add.w r1, r4, #12 - 1abc8: 300c adds r0, #12 - 1abca: f7fc f8ab bl 16d24 - 1abce: 4629 mov r1, r5 - 1abd0: 2201 movs r2, #1 - 1abd2: 4650 mov r0, sl - 1abd4: f001 f934 bl 1be40 <__lshift> - 1abd8: 4606 mov r6, r0 - 1abda: e5d5 b.n 1a788 <_dtoa_r+0x818> - 1abdc: 9b0c ldr r3, [sp, #48] ; 0x30 - 1abde: 9a09 ldr r2, [sp, #36] ; 0x24 - 1abe0: 1a9d subs r5, r3, r2 - 1abe2: e4b0 b.n 1a546 <_dtoa_r+0x5d6> - 1abe4: 2b39 cmp r3, #57 ; 0x39 - 1abe6: 4688 mov r8, r1 - 1abe8: f000 8095 beq.w 1ad16 <_dtoa_r+0xda6> - 1abec: 3301 adds r3, #1 - 1abee: e7b4 b.n 1ab5a <_dtoa_r+0xbea> - 1abf0: 9a0d ldr r2, [sp, #52] ; 0x34 - 1abf2: 9406 str r4, [sp, #24] - 1abf4: 3201 adds r2, #1 - 1abf6: 9204 str r2, [sp, #16] - 1abf8: 4634 mov r4, r6 - 1abfa: e526 b.n 1a64a <_dtoa_r+0x6da> - 1abfc: 4659 mov r1, fp - 1abfe: 4650 mov r0, sl - 1ac00: f001 f8be bl 1bd80 <__pow5mult> - 1ac04: 4683 mov fp, r0 - 1ac06: e4bf b.n 1a588 <_dtoa_r+0x618> - 1ac08: e9dd 2318 ldrd r2, r3, [sp, #96] ; 0x60 - 1ac0c: e9dd 0116 ldrd r0, r1, [sp, #88] ; 0x58 - 1ac10: f7fb fc9a bl 16548 <__aeabi_dmul> - 1ac14: 9a03 ldr r2, [sp, #12] - 1ac16: 9b14 ldr r3, [sp, #80] ; 0x50 - 1ac18: 7013 strb r3, [r2, #0] - 1ac1a: 9b10 ldr r3, [sp, #64] ; 0x40 - 1ac1c: 2b01 cmp r3, #1 - 1ac1e: e9cd 0114 strd r0, r1, [sp, #80] ; 0x50 - 1ac22: f000 80b5 beq.w 1ad90 <_dtoa_r+0xe20> - 1ac26: 9e10 ldr r6, [sp, #64] ; 0x40 - 1ac28: 9b03 ldr r3, [sp, #12] - 1ac2a: 441e add r6, r3 - 1ac2c: 4b43 ldr r3, [pc, #268] ; (1ad3c <_dtoa_r+0xdcc>) - 1ac2e: 2200 movs r2, #0 - 1ac30: 4620 mov r0, r4 - 1ac32: 4629 mov r1, r5 - 1ac34: f7fb fc88 bl 16548 <__aeabi_dmul> - 1ac38: 460d mov r5, r1 - 1ac3a: 4604 mov r4, r0 - 1ac3c: f003 f852 bl 1dce4 <__aeabi_d2iz> - 1ac40: 4607 mov r7, r0 - 1ac42: f7fb fc17 bl 16474 <__aeabi_i2d> - 1ac46: 3730 adds r7, #48 ; 0x30 - 1ac48: 4602 mov r2, r0 - 1ac4a: 460b mov r3, r1 - 1ac4c: 4620 mov r0, r4 - 1ac4e: 4629 mov r1, r5 - 1ac50: f7fb fac2 bl 161d8 <__aeabi_dsub> - 1ac54: f808 7b01 strb.w r7, [r8], #1 - 1ac58: 45b0 cmp r8, r6 - 1ac5a: 4604 mov r4, r0 - 1ac5c: 460d mov r5, r1 - 1ac5e: d1e5 bne.n 1ac2c <_dtoa_r+0xcbc> - 1ac60: e9dd 7814 ldrd r7, r8, [sp, #80] ; 0x50 - 1ac64: 4b36 ldr r3, [pc, #216] ; (1ad40 <_dtoa_r+0xdd0>) - 1ac66: 2200 movs r2, #0 - 1ac68: 4638 mov r0, r7 - 1ac6a: 4641 mov r1, r8 - 1ac6c: f7fb fab6 bl 161dc <__adddf3> - 1ac70: 4622 mov r2, r4 - 1ac72: 462b mov r3, r5 - 1ac74: f002 fff8 bl 1dc68 <__aeabi_dcmplt> - 1ac78: 2800 cmp r0, #0 - 1ac7a: d167 bne.n 1ad4c <_dtoa_r+0xddc> - 1ac7c: 463a mov r2, r7 - 1ac7e: 4643 mov r3, r8 - 1ac80: 492f ldr r1, [pc, #188] ; (1ad40 <_dtoa_r+0xdd0>) - 1ac82: 2000 movs r0, #0 - 1ac84: f7fb faa8 bl 161d8 <__aeabi_dsub> - 1ac88: 4622 mov r2, r4 - 1ac8a: 462b mov r3, r5 - 1ac8c: f003 f80a bl 1dca4 <__aeabi_dcmpgt> - 1ac90: 2800 cmp r0, #0 - 1ac92: f43f aba5 beq.w 1a3e0 <_dtoa_r+0x470> - 1ac96: 46b0 mov r8, r6 - 1ac98: 3e01 subs r6, #1 - 1ac9a: f818 3c01 ldrb.w r3, [r8, #-1] - 1ac9e: 2b30 cmp r3, #48 ; 0x30 - 1aca0: d0f9 beq.n 1ac96 <_dtoa_r+0xd26> - 1aca2: 9b1a ldr r3, [sp, #104] ; 0x68 - 1aca4: 3301 adds r3, #1 - 1aca6: 9304 str r3, [sp, #16] - 1aca8: e4fd b.n 1a6a6 <_dtoa_r+0x736> - 1acaa: 9b1c ldr r3, [sp, #112] ; 0x70 - 1acac: f1c3 0336 rsb r3, r3, #54 ; 0x36 - 1acb0: e6b1 b.n 1aa16 <_dtoa_r+0xaa6> - 1acb2: 9b09 ldr r3, [sp, #36] ; 0x24 - 1acb4: 2b00 cmp r3, #0 - 1acb6: f43f aebe beq.w 1aa36 <_dtoa_r+0xac6> - 1acba: 9b13 ldr r3, [sp, #76] ; 0x4c - 1acbc: 2b00 cmp r3, #0 - 1acbe: f77f ab8f ble.w 1a3e0 <_dtoa_r+0x470> - 1acc2: 9a0d ldr r2, [sp, #52] ; 0x34 - 1acc4: 9310 str r3, [sp, #64] ; 0x40 - 1acc6: 3a01 subs r2, #1 - 1acc8: 4b1c ldr r3, [pc, #112] ; (1ad3c <_dtoa_r+0xdcc>) - 1acca: 921a str r2, [sp, #104] ; 0x68 - 1accc: 4630 mov r0, r6 - 1acce: 2200 movs r2, #0 - 1acd0: 4639 mov r1, r7 - 1acd2: f7fb fc39 bl 16548 <__aeabi_dmul> - 1acd6: 4606 mov r6, r0 - 1acd8: 460f mov r7, r1 - 1acda: f108 0001 add.w r0, r8, #1 - 1acde: f7fb fbc9 bl 16474 <__aeabi_i2d> - 1ace2: 4632 mov r2, r6 - 1ace4: 463b mov r3, r7 - 1ace6: f7fb fc2f bl 16548 <__aeabi_dmul> - 1acea: 4b0f ldr r3, [pc, #60] ; (1ad28 <_dtoa_r+0xdb8>) - 1acec: 2200 movs r2, #0 - 1acee: f7fb fa75 bl 161dc <__adddf3> - 1acf2: f1a1 7350 sub.w r3, r1, #54525952 ; 0x3400000 - 1acf6: e9cd 0114 strd r0, r1, [sp, #80] ; 0x50 - 1acfa: 9315 str r3, [sp, #84] ; 0x54 - 1acfc: f7ff bad4 b.w 1a2a8 <_dtoa_r+0x338> - 1ad00: e9dd 670a ldrd r6, r7, [sp, #40] ; 0x28 - 1ad04: f04f 0802 mov.w r8, #2 - 1ad08: f7ff baab b.w 1a262 <_dtoa_r+0x2f2> - 1ad0c: 3401 adds r4, #1 - 1ad0e: 2331 movs r3, #49 ; 0x31 - 1ad10: f7ff bb5d b.w 1a3ce <_dtoa_r+0x45e> - 1ad14: 1c7d adds r5, r7, #1 - 1ad16: 9b0d ldr r3, [sp, #52] ; 0x34 - 1ad18: 9406 str r4, [sp, #24] - 1ad1a: 3301 adds r3, #1 - 1ad1c: 9304 str r3, [sp, #16] - 1ad1e: 2339 movs r3, #57 ; 0x39 - 1ad20: 4634 mov r4, r6 - 1ad22: 703b strb r3, [r7, #0] - 1ad24: e4a0 b.n 1a668 <_dtoa_r+0x6f8> - 1ad26: bf00 nop - 1ad28: 401c0000 .word 0x401c0000 - 1ad2c: 40140000 .word 0x40140000 - 1ad30: 0002c328 .word 0x0002c328 - 1ad34: 0002c300 .word 0x0002c300 - 1ad38: 7ff00000 .word 0x7ff00000 - 1ad3c: 40240000 .word 0x40240000 - 1ad40: 3fe00000 .word 0x3fe00000 - 1ad44: f04f 0900 mov.w r9, #0 - 1ad48: 464c mov r4, r9 - 1ad4a: e613 b.n 1a974 <_dtoa_r+0xa04> - 1ad4c: 9c1a ldr r4, [sp, #104] ; 0x68 - 1ad4e: 9a03 ldr r2, [sp, #12] - 1ad50: 3401 adds r4, #1 - 1ad52: f7ff bb35 b.w 1a3c0 <_dtoa_r+0x450> - 1ad56: f47f af00 bne.w 1ab5a <_dtoa_r+0xbea> - 1ad5a: 07da lsls r2, r3, #31 - 1ad5c: f57f aefd bpl.w 1ab5a <_dtoa_r+0xbea> - 1ad60: e6f6 b.n 1ab50 <_dtoa_r+0xbe0> - 1ad62: f8dd b058 ldr.w fp, [sp, #88] ; 0x58 - 1ad66: f8dd a060 ldr.w sl, [sp, #96] ; 0x60 - 1ad6a: e79a b.n 1aca2 <_dtoa_r+0xd32> - 1ad6c: 2b39 cmp r3, #57 ; 0x39 - 1ad6e: 4642 mov r2, r8 - 1ad70: d0d0 beq.n 1ad14 <_dtoa_r+0xda4> - 1ad72: 2a00 cmp r2, #0 - 1ad74: bfc8 it gt - 1ad76: 9b04 ldrgt r3, [sp, #16] - 1ad78: 46b8 mov r8, r7 - 1ad7a: bfc8 it gt - 1ad7c: 3331 addgt r3, #49 ; 0x31 - 1ad7e: f808 3b01 strb.w r3, [r8], #1 - 1ad82: e6eb b.n 1ab5c <_dtoa_r+0xbec> - 1ad84: 9b28 ldr r3, [sp, #160] ; 0xa0 - 1ad86: 2b02 cmp r3, #2 - 1ad88: f73f ade0 bgt.w 1a94c <_dtoa_r+0x9dc> - 1ad8c: 960d str r6, [sp, #52] ; 0x34 - 1ad8e: e572 b.n 1a876 <_dtoa_r+0x906> - 1ad90: 4646 mov r6, r8 - 1ad92: e765 b.n 1ac60 <_dtoa_r+0xcf0> - 1ad94: 9b28 ldr r3, [sp, #160] ; 0xa0 - 1ad96: 2b02 cmp r3, #2 - 1ad98: f73f add8 bgt.w 1a94c <_dtoa_r+0x9dc> - 1ad9c: 9b13 ldr r3, [sp, #76] ; 0x4c - 1ad9e: 960d str r6, [sp, #52] ; 0x34 - 1ada0: 9309 str r3, [sp, #36] ; 0x24 - 1ada2: e4ea b.n 1a77a <_dtoa_r+0x80a> - 1ada4: f04f 0802 mov.w r8, #2 - 1ada8: f7ff ba5b b.w 1a262 <_dtoa_r+0x2f2> - 1adac: 4b13 ldr r3, [pc, #76] ; (1adfc <_dtoa_r+0xe8c>) - 1adae: 4814 ldr r0, [pc, #80] ; (1ae00 <_dtoa_r+0xe90>) - 1adb0: 462a mov r2, r5 - 1adb2: f240 21ea movw r1, #746 ; 0x2ea - 1adb6: f002 f961 bl 1d07c <__assert_func> - 1adba: 2400 movs r4, #0 - 1adbc: f8ca 4044 str.w r4, [sl, #68] ; 0x44 - 1adc0: 4621 mov r1, r4 - 1adc2: 4650 mov r0, sl - 1adc4: f000 fe30 bl 1ba28 <_Balloc> - 1adc8: 9003 str r0, [sp, #12] - 1adca: b950 cbnz r0, 1ade2 <_dtoa_r+0xe72> - 1adcc: 4b0b ldr r3, [pc, #44] ; (1adfc <_dtoa_r+0xe8c>) - 1adce: 480c ldr r0, [pc, #48] ; (1ae00 <_dtoa_r+0xe90>) - 1add0: 2200 movs r2, #0 - 1add2: f44f 71d5 mov.w r1, #426 ; 0x1aa - 1add6: f002 f951 bl 1d07c <__assert_func> - 1adda: 4b0a ldr r3, [pc, #40] ; (1ae04 <_dtoa_r+0xe94>) - 1addc: 9303 str r3, [sp, #12] - 1adde: f7ff b904 b.w 19fea <_dtoa_r+0x7a> - 1ade2: 9b03 ldr r3, [sp, #12] - 1ade4: f8ca 3040 str.w r3, [sl, #64] ; 0x40 - 1ade8: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff - 1adec: 9313 str r3, [sp, #76] ; 0x4c - 1adee: 9309 str r3, [sp, #36] ; 0x24 - 1adf0: 2301 movs r3, #1 - 1adf2: 9429 str r4, [sp, #164] ; 0xa4 - 1adf4: 930e str r3, [sp, #56] ; 0x38 - 1adf6: f7ff baf3 b.w 1a3e0 <_dtoa_r+0x470> - 1adfa: bf00 nop - 1adfc: 0002c204 .word 0x0002c204 - 1ae00: 0002c218 .word 0x0002c218 - 1ae04: 0002c1f4 .word 0x0002c1f4 - -0001ae08 <__sflush_r>: - 1ae08: f9b1 200c ldrsh.w r2, [r1, #12] - 1ae0c: b5f8 push {r3, r4, r5, r6, r7, lr} - 1ae0e: 460c mov r4, r1 - 1ae10: 0711 lsls r1, r2, #28 - 1ae12: 4607 mov r7, r0 - 1ae14: d443 bmi.n 1ae9e <__sflush_r+0x96> - 1ae16: 6863 ldr r3, [r4, #4] - 1ae18: f442 6200 orr.w r2, r2, #2048 ; 0x800 - 1ae1c: 2b00 cmp r3, #0 - 1ae1e: 81a2 strh r2, [r4, #12] - 1ae20: dd5a ble.n 1aed8 <__sflush_r+0xd0> - 1ae22: 6aa5 ldr r5, [r4, #40] ; 0x28 - 1ae24: 2d00 cmp r5, #0 - 1ae26: d055 beq.n 1aed4 <__sflush_r+0xcc> - 1ae28: 2300 movs r3, #0 - 1ae2a: 683e ldr r6, [r7, #0] - 1ae2c: 603b str r3, [r7, #0] - 1ae2e: b293 uxth r3, r2 - 1ae30: f412 5280 ands.w r2, r2, #4096 ; 0x1000 - 1ae34: 69e1 ldr r1, [r4, #28] - 1ae36: d153 bne.n 1aee0 <__sflush_r+0xd8> - 1ae38: 2301 movs r3, #1 - 1ae3a: 4638 mov r0, r7 - 1ae3c: 47a8 blx r5 - 1ae3e: 1c42 adds r2, r0, #1 - 1ae40: d064 beq.n 1af0c <__sflush_r+0x104> - 1ae42: 89a3 ldrh r3, [r4, #12] - 1ae44: 6aa5 ldr r5, [r4, #40] ; 0x28 - 1ae46: 69e1 ldr r1, [r4, #28] - 1ae48: 075b lsls r3, r3, #29 - 1ae4a: d505 bpl.n 1ae58 <__sflush_r+0x50> - 1ae4c: 6863 ldr r3, [r4, #4] - 1ae4e: 1ac0 subs r0, r0, r3 - 1ae50: 6b23 ldr r3, [r4, #48] ; 0x30 - 1ae52: b10b cbz r3, 1ae58 <__sflush_r+0x50> - 1ae54: 6be3 ldr r3, [r4, #60] ; 0x3c - 1ae56: 1ac0 subs r0, r0, r3 - 1ae58: 4602 mov r2, r0 - 1ae5a: 2300 movs r3, #0 - 1ae5c: 4638 mov r0, r7 - 1ae5e: 47a8 blx r5 - 1ae60: 1c45 adds r5, r0, #1 - 1ae62: d146 bne.n 1aef2 <__sflush_r+0xea> - 1ae64: 683a ldr r2, [r7, #0] - 1ae66: f9b4 300c ldrsh.w r3, [r4, #12] - 1ae6a: 2a00 cmp r2, #0 - 1ae6c: d05a beq.n 1af24 <__sflush_r+0x11c> - 1ae6e: 2a1d cmp r2, #29 - 1ae70: d001 beq.n 1ae76 <__sflush_r+0x6e> - 1ae72: 2a16 cmp r2, #22 - 1ae74: d139 bne.n 1aeea <__sflush_r+0xe2> - 1ae76: 6922 ldr r2, [r4, #16] - 1ae78: 6022 str r2, [r4, #0] - 1ae7a: f423 6300 bic.w r3, r3, #2048 ; 0x800 - 1ae7e: 2100 movs r1, #0 - 1ae80: 6061 str r1, [r4, #4] - 1ae82: 81a3 strh r3, [r4, #12] - 1ae84: 6b21 ldr r1, [r4, #48] ; 0x30 - 1ae86: 603e str r6, [r7, #0] - 1ae88: b321 cbz r1, 1aed4 <__sflush_r+0xcc> - 1ae8a: f104 0340 add.w r3, r4, #64 ; 0x40 - 1ae8e: 4299 cmp r1, r3 - 1ae90: d002 beq.n 1ae98 <__sflush_r+0x90> - 1ae92: 4638 mov r0, r7 - 1ae94: f000 f930 bl 1b0f8 <_free_r> - 1ae98: 2000 movs r0, #0 - 1ae9a: 6320 str r0, [r4, #48] ; 0x30 - 1ae9c: bdf8 pop {r3, r4, r5, r6, r7, pc} - 1ae9e: 6926 ldr r6, [r4, #16] - 1aea0: b1c6 cbz r6, 1aed4 <__sflush_r+0xcc> - 1aea2: b293 uxth r3, r2 - 1aea4: 6825 ldr r5, [r4, #0] - 1aea6: 6026 str r6, [r4, #0] - 1aea8: 0799 lsls r1, r3, #30 - 1aeaa: bf0c ite eq - 1aeac: 6963 ldreq r3, [r4, #20] - 1aeae: 2300 movne r3, #0 - 1aeb0: 1bad subs r5, r5, r6 - 1aeb2: 60a3 str r3, [r4, #8] - 1aeb4: e00c b.n 1aed0 <__sflush_r+0xc8> - 1aeb6: f8d4 c024 ldr.w ip, [r4, #36] ; 0x24 - 1aeba: 69e1 ldr r1, [r4, #28] - 1aebc: 462b mov r3, r5 - 1aebe: 4632 mov r2, r6 - 1aec0: 4638 mov r0, r7 - 1aec2: 47e0 blx ip - 1aec4: f1b0 0c00 subs.w ip, r0, #0 - 1aec8: eba5 050c sub.w r5, r5, ip - 1aecc: 4466 add r6, ip - 1aece: dd09 ble.n 1aee4 <__sflush_r+0xdc> - 1aed0: 2d00 cmp r5, #0 - 1aed2: dcf0 bgt.n 1aeb6 <__sflush_r+0xae> - 1aed4: 2000 movs r0, #0 - 1aed6: bdf8 pop {r3, r4, r5, r6, r7, pc} - 1aed8: 6be3 ldr r3, [r4, #60] ; 0x3c - 1aeda: 2b00 cmp r3, #0 - 1aedc: dca1 bgt.n 1ae22 <__sflush_r+0x1a> - 1aede: e7f9 b.n 1aed4 <__sflush_r+0xcc> - 1aee0: 6d20 ldr r0, [r4, #80] ; 0x50 - 1aee2: e7b1 b.n 1ae48 <__sflush_r+0x40> - 1aee4: 89a3 ldrh r3, [r4, #12] - 1aee6: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff - 1aeea: f043 0340 orr.w r3, r3, #64 ; 0x40 - 1aeee: 81a3 strh r3, [r4, #12] - 1aef0: bdf8 pop {r3, r4, r5, r6, r7, pc} - 1aef2: f9b4 300c ldrsh.w r3, [r4, #12] - 1aef6: 6922 ldr r2, [r4, #16] - 1aef8: 6022 str r2, [r4, #0] - 1aefa: f423 6300 bic.w r3, r3, #2048 ; 0x800 - 1aefe: 2200 movs r2, #0 - 1af00: 6062 str r2, [r4, #4] - 1af02: 04da lsls r2, r3, #19 - 1af04: 81a3 strh r3, [r4, #12] - 1af06: d5bd bpl.n 1ae84 <__sflush_r+0x7c> - 1af08: 6520 str r0, [r4, #80] ; 0x50 - 1af0a: e7bb b.n 1ae84 <__sflush_r+0x7c> - 1af0c: 683b ldr r3, [r7, #0] - 1af0e: 2b00 cmp r3, #0 - 1af10: d097 beq.n 1ae42 <__sflush_r+0x3a> - 1af12: 2b1d cmp r3, #29 - 1af14: d00f beq.n 1af36 <__sflush_r+0x12e> - 1af16: 2b16 cmp r3, #22 - 1af18: d00d beq.n 1af36 <__sflush_r+0x12e> - 1af1a: 89a3 ldrh r3, [r4, #12] - 1af1c: f043 0340 orr.w r3, r3, #64 ; 0x40 - 1af20: 81a3 strh r3, [r4, #12] - 1af22: bdf8 pop {r3, r4, r5, r6, r7, pc} - 1af24: f423 6300 bic.w r3, r3, #2048 ; 0x800 - 1af28: 6062 str r2, [r4, #4] - 1af2a: 81a3 strh r3, [r4, #12] - 1af2c: 6922 ldr r2, [r4, #16] - 1af2e: 6022 str r2, [r4, #0] - 1af30: 04db lsls r3, r3, #19 - 1af32: d5a7 bpl.n 1ae84 <__sflush_r+0x7c> - 1af34: e7e8 b.n 1af08 <__sflush_r+0x100> - 1af36: 603e str r6, [r7, #0] - 1af38: e7cc b.n 1aed4 <__sflush_r+0xcc> - 1af3a: bf00 nop - -0001af3c <_fflush_r>: - 1af3c: b538 push {r3, r4, r5, lr} - 1af3e: 460d mov r5, r1 - 1af40: 4604 mov r4, r0 - 1af42: b108 cbz r0, 1af48 <_fflush_r+0xc> - 1af44: 6b83 ldr r3, [r0, #56] ; 0x38 - 1af46: b11b cbz r3, 1af50 <_fflush_r+0x14> - 1af48: f9b5 000c ldrsh.w r0, [r5, #12] - 1af4c: b930 cbnz r0, 1af5c <_fflush_r+0x20> - 1af4e: bd38 pop {r3, r4, r5, pc} - 1af50: f000 f87c bl 1b04c <__sinit> - 1af54: f9b5 000c ldrsh.w r0, [r5, #12] - 1af58: 2800 cmp r0, #0 - 1af5a: d0f8 beq.n 1af4e <_fflush_r+0x12> - 1af5c: 4629 mov r1, r5 - 1af5e: 4620 mov r0, r4 - 1af60: e8bd 4038 ldmia.w sp!, {r3, r4, r5, lr} - 1af64: f7ff bf50 b.w 1ae08 <__sflush_r> - -0001af68 <_cleanup_r>: - 1af68: 4901 ldr r1, [pc, #4] ; (1af70 <_cleanup_r+0x8>) - 1af6a: f000 b9c1 b.w 1b2f0 <_fwalk_reent> - 1af6e: bf00 nop - 1af70: 0001d165 .word 0x0001d165 - -0001af74 <__sinit.part.0>: - 1af74: e92d 4ff8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr} - 1af78: 4a2d ldr r2, [pc, #180] ; (1b030 <__sinit.part.0+0xbc>) - 1af7a: 6846 ldr r6, [r0, #4] - 1af7c: 63c2 str r2, [r0, #60] ; 0x3c - 1af7e: 2400 movs r4, #0 - 1af80: 2303 movs r3, #3 - 1af82: e9c0 43b8 strd r4, r3, [r0, #736] ; 0x2e0 - 1af86: 4607 mov r7, r0 - 1af88: f500 723b add.w r2, r0, #748 ; 0x2ec - 1af8c: 2304 movs r3, #4 - 1af8e: f8c0 22e8 str.w r2, [r0, #744] ; 0x2e8 - 1af92: 4621 mov r1, r4 - 1af94: e9c6 4302 strd r4, r3, [r6, #8] - 1af98: 2208 movs r2, #8 - 1af9a: e9c6 4400 strd r4, r4, [r6] - 1af9e: e9c6 4404 strd r4, r4, [r6, #16] - 1afa2: 6634 str r4, [r6, #96] ; 0x60 - 1afa4: 61b4 str r4, [r6, #24] - 1afa6: f106 0058 add.w r0, r6, #88 ; 0x58 - 1afaa: f7fb ffd1 bl 16f50 - 1afae: f8df b084 ldr.w fp, [pc, #132] ; 1b034 <__sinit.part.0+0xc0> - 1afb2: 68bd ldr r5, [r7, #8] - 1afb4: f8df a080 ldr.w sl, [pc, #128] ; 1b038 <__sinit.part.0+0xc4> - 1afb8: f8df 9080 ldr.w r9, [pc, #128] ; 1b03c <__sinit.part.0+0xc8> - 1afbc: f8df 8080 ldr.w r8, [pc, #128] ; 1b040 <__sinit.part.0+0xcc> - 1afc0: 4b20 ldr r3, [pc, #128] ; (1b044 <__sinit.part.0+0xd0>) - 1afc2: f8c6 a024 str.w sl, [r6, #36] ; 0x24 - 1afc6: e9c6 6b07 strd r6, fp, [r6, #28] - 1afca: f8c6 9028 str.w r9, [r6, #40] ; 0x28 - 1afce: f8c6 802c str.w r8, [r6, #44] ; 0x2c - 1afd2: 2208 movs r2, #8 - 1afd4: 60eb str r3, [r5, #12] - 1afd6: e9c5 4400 strd r4, r4, [r5] - 1afda: e9c5 4404 strd r4, r4, [r5, #16] - 1afde: 662c str r4, [r5, #96] ; 0x60 - 1afe0: 60ac str r4, [r5, #8] - 1afe2: 61ac str r4, [r5, #24] - 1afe4: 4621 mov r1, r4 - 1afe6: f105 0058 add.w r0, r5, #88 ; 0x58 - 1afea: f7fb ffb1 bl 16f50 - 1afee: e9c5 5b07 strd r5, fp, [r5, #28] - 1aff2: e9c5 a909 strd sl, r9, [r5, #36] ; 0x24 - 1aff6: f8c5 802c str.w r8, [r5, #44] ; 0x2c - 1affa: 68fd ldr r5, [r7, #12] - 1affc: 4b12 ldr r3, [pc, #72] ; (1b048 <__sinit.part.0+0xd4>) - 1affe: 60eb str r3, [r5, #12] - 1b000: e9c5 4400 strd r4, r4, [r5] - 1b004: e9c5 4404 strd r4, r4, [r5, #16] - 1b008: 662c str r4, [r5, #96] ; 0x60 - 1b00a: 60ac str r4, [r5, #8] - 1b00c: 61ac str r4, [r5, #24] - 1b00e: 4621 mov r1, r4 - 1b010: 2208 movs r2, #8 - 1b012: f105 0058 add.w r0, r5, #88 ; 0x58 - 1b016: f7fb ff9b bl 16f50 - 1b01a: 2301 movs r3, #1 - 1b01c: e9c5 5b07 strd r5, fp, [r5, #28] - 1b020: e9c5 980a strd r9, r8, [r5, #40] ; 0x28 - 1b024: f8c5 a024 str.w sl, [r5, #36] ; 0x24 - 1b028: 63bb str r3, [r7, #56] ; 0x38 - 1b02a: e8bd 8ff8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} - 1b02e: bf00 nop - 1b030: 0001af69 .word 0x0001af69 - 1b034: 0001c235 .word 0x0001c235 - 1b038: 0001c259 .word 0x0001c259 - 1b03c: 0001c299 .word 0x0001c299 - 1b040: 0001c2b9 .word 0x0001c2b9 - 1b044: 00010009 .word 0x00010009 - 1b048: 00020012 .word 0x00020012 - -0001b04c <__sinit>: - 1b04c: 6b83 ldr r3, [r0, #56] ; 0x38 - 1b04e: b103 cbz r3, 1b052 <__sinit+0x6> - 1b050: 4770 bx lr - 1b052: f7ff bf8f b.w 1af74 <__sinit.part.0> - 1b056: bf00 nop - -0001b058 <_malloc_trim_r>: - 1b058: b5f8 push {r3, r4, r5, r6, r7, lr} - 1b05a: 4f24 ldr r7, [pc, #144] ; (1b0ec <_malloc_trim_r+0x94>) - 1b05c: 460c mov r4, r1 - 1b05e: 4606 mov r6, r0 - 1b060: f000 fcde bl 1ba20 <__malloc_lock> - 1b064: 68bb ldr r3, [r7, #8] - 1b066: 685d ldr r5, [r3, #4] - 1b068: f5c4 617e rsb r1, r4, #4064 ; 0xfe0 - 1b06c: 310f adds r1, #15 - 1b06e: f025 0503 bic.w r5, r5, #3 - 1b072: 194b adds r3, r1, r5 - 1b074: f423 637f bic.w r3, r3, #4080 ; 0xff0 - 1b078: f023 030f bic.w r3, r3, #15 - 1b07c: f5a3 5480 sub.w r4, r3, #4096 ; 0x1000 - 1b080: f5b4 5f80 cmp.w r4, #4096 ; 0x1000 - 1b084: db07 blt.n 1b096 <_malloc_trim_r+0x3e> - 1b086: 2100 movs r1, #0 - 1b088: 4630 mov r0, r6 - 1b08a: f001 f87b bl 1c184 <_sbrk_r> - 1b08e: 68bb ldr r3, [r7, #8] - 1b090: 442b add r3, r5 - 1b092: 4298 cmp r0, r3 - 1b094: d004 beq.n 1b0a0 <_malloc_trim_r+0x48> - 1b096: 4630 mov r0, r6 - 1b098: f000 fcc4 bl 1ba24 <__malloc_unlock> - 1b09c: 2000 movs r0, #0 - 1b09e: bdf8 pop {r3, r4, r5, r6, r7, pc} - 1b0a0: 4261 negs r1, r4 - 1b0a2: 4630 mov r0, r6 - 1b0a4: f001 f86e bl 1c184 <_sbrk_r> - 1b0a8: 3001 adds r0, #1 - 1b0aa: d00d beq.n 1b0c8 <_malloc_trim_r+0x70> - 1b0ac: 4a10 ldr r2, [pc, #64] ; (1b0f0 <_malloc_trim_r+0x98>) - 1b0ae: 68bb ldr r3, [r7, #8] - 1b0b0: 1b2d subs r5, r5, r4 - 1b0b2: f045 0501 orr.w r5, r5, #1 - 1b0b6: 605d str r5, [r3, #4] - 1b0b8: 6813 ldr r3, [r2, #0] - 1b0ba: 4630 mov r0, r6 - 1b0bc: 1b1b subs r3, r3, r4 - 1b0be: 6013 str r3, [r2, #0] - 1b0c0: f000 fcb0 bl 1ba24 <__malloc_unlock> - 1b0c4: 2001 movs r0, #1 - 1b0c6: bdf8 pop {r3, r4, r5, r6, r7, pc} - 1b0c8: 2100 movs r1, #0 - 1b0ca: 4630 mov r0, r6 - 1b0cc: f001 f85a bl 1c184 <_sbrk_r> - 1b0d0: 68ba ldr r2, [r7, #8] - 1b0d2: 1a83 subs r3, r0, r2 - 1b0d4: 2b0f cmp r3, #15 - 1b0d6: ddde ble.n 1b096 <_malloc_trim_r+0x3e> - 1b0d8: f043 0301 orr.w r3, r3, #1 - 1b0dc: 6053 str r3, [r2, #4] - 1b0de: 4b05 ldr r3, [pc, #20] ; (1b0f4 <_malloc_trim_r+0x9c>) - 1b0e0: 4903 ldr r1, [pc, #12] ; (1b0f0 <_malloc_trim_r+0x98>) - 1b0e2: 681b ldr r3, [r3, #0] - 1b0e4: 1ac0 subs r0, r0, r3 - 1b0e6: 6008 str r0, [r1, #0] - 1b0e8: e7d5 b.n 1b096 <_malloc_trim_r+0x3e> - 1b0ea: bf00 nop - 1b0ec: 20000488 .word 0x20000488 - 1b0f0: 200057d0 .word 0x200057d0 - 1b0f4: 20000890 .word 0x20000890 - -0001b0f8 <_free_r>: - 1b0f8: 2900 cmp r1, #0 - 1b0fa: d05f beq.n 1b1bc <_free_r+0xc4> - 1b0fc: b5f8 push {r3, r4, r5, r6, r7, lr} - 1b0fe: 460c mov r4, r1 - 1b100: 4606 mov r6, r0 - 1b102: f000 fc8d bl 1ba20 <__malloc_lock> - 1b106: f854 3c04 ldr.w r3, [r4, #-4] - 1b10a: 4f76 ldr r7, [pc, #472] ; (1b2e4 <_free_r+0x1ec>) - 1b10c: f1a4 0508 sub.w r5, r4, #8 - 1b110: f023 0101 bic.w r1, r3, #1 - 1b114: 186a adds r2, r5, r1 - 1b116: f8d7 c008 ldr.w ip, [r7, #8] - 1b11a: 6850 ldr r0, [r2, #4] - 1b11c: 4594 cmp ip, r2 - 1b11e: f020 0003 bic.w r0, r0, #3 - 1b122: f000 8086 beq.w 1b232 <_free_r+0x13a> - 1b126: 07db lsls r3, r3, #31 - 1b128: 6050 str r0, [r2, #4] - 1b12a: eb02 0c00 add.w ip, r2, r0 - 1b12e: d433 bmi.n 1b198 <_free_r+0xa0> - 1b130: f854 4c08 ldr.w r4, [r4, #-8] - 1b134: f8dc 3004 ldr.w r3, [ip, #4] - 1b138: 1b2d subs r5, r5, r4 - 1b13a: 4421 add r1, r4 - 1b13c: 68ac ldr r4, [r5, #8] - 1b13e: f107 0c08 add.w ip, r7, #8 - 1b142: 4564 cmp r4, ip - 1b144: f003 0301 and.w r3, r3, #1 - 1b148: d063 beq.n 1b212 <_free_r+0x11a> - 1b14a: f8d5 e00c ldr.w lr, [r5, #12] - 1b14e: f8c4 e00c str.w lr, [r4, #12] - 1b152: f8ce 4008 str.w r4, [lr, #8] - 1b156: 2b00 cmp r3, #0 - 1b158: f000 808f beq.w 1b27a <_free_r+0x182> - 1b15c: f041 0301 orr.w r3, r1, #1 - 1b160: 606b str r3, [r5, #4] - 1b162: 6011 str r1, [r2, #0] - 1b164: f5b1 7f00 cmp.w r1, #512 ; 0x200 - 1b168: d231 bcs.n 1b1ce <_free_r+0xd6> - 1b16a: 6878 ldr r0, [r7, #4] - 1b16c: 08cb lsrs r3, r1, #3 - 1b16e: 2201 movs r2, #1 - 1b170: 0949 lsrs r1, r1, #5 - 1b172: 3301 adds r3, #1 - 1b174: 408a lsls r2, r1 - 1b176: 4302 orrs r2, r0 - 1b178: f857 1033 ldr.w r1, [r7, r3, lsl #3] - 1b17c: 607a str r2, [r7, #4] - 1b17e: eb07 02c3 add.w r2, r7, r3, lsl #3 - 1b182: 3a08 subs r2, #8 - 1b184: e9c5 1202 strd r1, r2, [r5, #8] - 1b188: f847 5033 str.w r5, [r7, r3, lsl #3] - 1b18c: 60cd str r5, [r1, #12] - 1b18e: 4630 mov r0, r6 - 1b190: e8bd 40f8 ldmia.w sp!, {r3, r4, r5, r6, r7, lr} - 1b194: f000 bc46 b.w 1ba24 <__malloc_unlock> - 1b198: f8dc 3004 ldr.w r3, [ip, #4] - 1b19c: 07db lsls r3, r3, #31 - 1b19e: d40e bmi.n 1b1be <_free_r+0xc6> - 1b1a0: 4401 add r1, r0 - 1b1a2: f107 0c08 add.w ip, r7, #8 - 1b1a6: 6893 ldr r3, [r2, #8] - 1b1a8: 4563 cmp r3, ip - 1b1aa: f041 0001 orr.w r0, r1, #1 - 1b1ae: d06c beq.n 1b28a <_free_r+0x192> - 1b1b0: 68d2 ldr r2, [r2, #12] - 1b1b2: 60da str r2, [r3, #12] - 1b1b4: 6093 str r3, [r2, #8] - 1b1b6: 6068 str r0, [r5, #4] - 1b1b8: 5069 str r1, [r5, r1] - 1b1ba: e7d3 b.n 1b164 <_free_r+0x6c> - 1b1bc: 4770 bx lr - 1b1be: f041 0301 orr.w r3, r1, #1 - 1b1c2: f5b1 7f00 cmp.w r1, #512 ; 0x200 - 1b1c6: f844 3c04 str.w r3, [r4, #-4] - 1b1ca: 6011 str r1, [r2, #0] - 1b1cc: d3cd bcc.n 1b16a <_free_r+0x72> - 1b1ce: f5b1 6f20 cmp.w r1, #2560 ; 0xa00 - 1b1d2: ea4f 2351 mov.w r3, r1, lsr #9 - 1b1d6: d245 bcs.n 1b264 <_free_r+0x16c> - 1b1d8: 098b lsrs r3, r1, #6 - 1b1da: f103 0039 add.w r0, r3, #57 ; 0x39 - 1b1de: f103 0238 add.w r2, r3, #56 ; 0x38 - 1b1e2: 00c3 lsls r3, r0, #3 - 1b1e4: 18f8 adds r0, r7, r3 - 1b1e6: 58fb ldr r3, [r7, r3] - 1b1e8: 3808 subs r0, #8 - 1b1ea: 4298 cmp r0, r3 - 1b1ec: d054 beq.n 1b298 <_free_r+0x1a0> - 1b1ee: 685a ldr r2, [r3, #4] - 1b1f0: f022 0203 bic.w r2, r2, #3 - 1b1f4: 428a cmp r2, r1 - 1b1f6: d902 bls.n 1b1fe <_free_r+0x106> - 1b1f8: 689b ldr r3, [r3, #8] - 1b1fa: 4298 cmp r0, r3 - 1b1fc: d1f7 bne.n 1b1ee <_free_r+0xf6> - 1b1fe: 68d8 ldr r0, [r3, #12] - 1b200: e9c5 3002 strd r3, r0, [r5, #8] - 1b204: 6085 str r5, [r0, #8] - 1b206: 60dd str r5, [r3, #12] - 1b208: 4630 mov r0, r6 - 1b20a: e8bd 40f8 ldmia.w sp!, {r3, r4, r5, r6, r7, lr} - 1b20e: f000 bc09 b.w 1ba24 <__malloc_unlock> - 1b212: 2b00 cmp r3, #0 - 1b214: d161 bne.n 1b2da <_free_r+0x1e2> - 1b216: e9d2 2302 ldrd r2, r3, [r2, #8] - 1b21a: 4408 add r0, r1 - 1b21c: 60d3 str r3, [r2, #12] - 1b21e: 609a str r2, [r3, #8] - 1b220: f040 0301 orr.w r3, r0, #1 - 1b224: 606b str r3, [r5, #4] - 1b226: 5028 str r0, [r5, r0] - 1b228: 4630 mov r0, r6 - 1b22a: e8bd 40f8 ldmia.w sp!, {r3, r4, r5, r6, r7, lr} - 1b22e: f000 bbf9 b.w 1ba24 <__malloc_unlock> - 1b232: 07da lsls r2, r3, #31 - 1b234: 4408 add r0, r1 - 1b236: d407 bmi.n 1b248 <_free_r+0x150> - 1b238: f854 3c08 ldr.w r3, [r4, #-8] - 1b23c: 1aed subs r5, r5, r3 - 1b23e: 4418 add r0, r3 - 1b240: e9d5 2302 ldrd r2, r3, [r5, #8] - 1b244: 60d3 str r3, [r2, #12] - 1b246: 609a str r2, [r3, #8] - 1b248: f040 0301 orr.w r3, r0, #1 - 1b24c: 606b str r3, [r5, #4] - 1b24e: 4b26 ldr r3, [pc, #152] ; (1b2e8 <_free_r+0x1f0>) - 1b250: 60bd str r5, [r7, #8] - 1b252: 681b ldr r3, [r3, #0] - 1b254: 4283 cmp r3, r0 - 1b256: d89a bhi.n 1b18e <_free_r+0x96> - 1b258: 4b24 ldr r3, [pc, #144] ; (1b2ec <_free_r+0x1f4>) - 1b25a: 4630 mov r0, r6 - 1b25c: 6819 ldr r1, [r3, #0] - 1b25e: f7ff fefb bl 1b058 <_malloc_trim_r> - 1b262: e794 b.n 1b18e <_free_r+0x96> - 1b264: 2b14 cmp r3, #20 - 1b266: d90a bls.n 1b27e <_free_r+0x186> - 1b268: 2b54 cmp r3, #84 ; 0x54 - 1b26a: d81d bhi.n 1b2a8 <_free_r+0x1b0> - 1b26c: 0b0b lsrs r3, r1, #12 - 1b26e: f103 006f add.w r0, r3, #111 ; 0x6f - 1b272: f103 026e add.w r2, r3, #110 ; 0x6e - 1b276: 00c3 lsls r3, r0, #3 - 1b278: e7b4 b.n 1b1e4 <_free_r+0xec> - 1b27a: 4401 add r1, r0 - 1b27c: e793 b.n 1b1a6 <_free_r+0xae> - 1b27e: f103 005c add.w r0, r3, #92 ; 0x5c - 1b282: f103 025b add.w r2, r3, #91 ; 0x5b - 1b286: 00c3 lsls r3, r0, #3 - 1b288: e7ac b.n 1b1e4 <_free_r+0xec> - 1b28a: e9c7 5504 strd r5, r5, [r7, #16] - 1b28e: e9c5 cc02 strd ip, ip, [r5, #8] - 1b292: 6068 str r0, [r5, #4] - 1b294: 5069 str r1, [r5, r1] - 1b296: e77a b.n 1b18e <_free_r+0x96> - 1b298: 6879 ldr r1, [r7, #4] - 1b29a: 1092 asrs r2, r2, #2 - 1b29c: 2401 movs r4, #1 - 1b29e: fa04 f202 lsl.w r2, r4, r2 - 1b2a2: 430a orrs r2, r1 - 1b2a4: 607a str r2, [r7, #4] - 1b2a6: e7ab b.n 1b200 <_free_r+0x108> - 1b2a8: f5b3 7faa cmp.w r3, #340 ; 0x154 - 1b2ac: d806 bhi.n 1b2bc <_free_r+0x1c4> - 1b2ae: 0bcb lsrs r3, r1, #15 - 1b2b0: f103 0078 add.w r0, r3, #120 ; 0x78 - 1b2b4: f103 0277 add.w r2, r3, #119 ; 0x77 - 1b2b8: 00c3 lsls r3, r0, #3 - 1b2ba: e793 b.n 1b1e4 <_free_r+0xec> - 1b2bc: f240 5254 movw r2, #1364 ; 0x554 - 1b2c0: 4293 cmp r3, r2 - 1b2c2: d806 bhi.n 1b2d2 <_free_r+0x1da> - 1b2c4: 0c8b lsrs r3, r1, #18 - 1b2c6: f103 007d add.w r0, r3, #125 ; 0x7d - 1b2ca: f103 027c add.w r2, r3, #124 ; 0x7c - 1b2ce: 00c3 lsls r3, r0, #3 - 1b2d0: e788 b.n 1b1e4 <_free_r+0xec> - 1b2d2: f44f 737e mov.w r3, #1016 ; 0x3f8 - 1b2d6: 227e movs r2, #126 ; 0x7e - 1b2d8: e784 b.n 1b1e4 <_free_r+0xec> - 1b2da: f041 0301 orr.w r3, r1, #1 - 1b2de: 606b str r3, [r5, #4] - 1b2e0: 6011 str r1, [r2, #0] - 1b2e2: e754 b.n 1b18e <_free_r+0x96> - 1b2e4: 20000488 .word 0x20000488 - 1b2e8: 20000894 .word 0x20000894 - 1b2ec: 20005800 .word 0x20005800 - -0001b2f0 <_fwalk_reent>: - 1b2f0: e92d 43f8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, lr} - 1b2f4: 4607 mov r7, r0 - 1b2f6: 4688 mov r8, r1 - 1b2f8: f500 7638 add.w r6, r0, #736 ; 0x2e0 - 1b2fc: f04f 0900 mov.w r9, #0 - 1b300: e9d6 5401 ldrd r5, r4, [r6, #4] - 1b304: 3d01 subs r5, #1 - 1b306: d411 bmi.n 1b32c <_fwalk_reent+0x3c> - 1b308: 89a3 ldrh r3, [r4, #12] - 1b30a: 2b01 cmp r3, #1 - 1b30c: f105 35ff add.w r5, r5, #4294967295 ; 0xffffffff - 1b310: d908 bls.n 1b324 <_fwalk_reent+0x34> - 1b312: f9b4 300e ldrsh.w r3, [r4, #14] - 1b316: 3301 adds r3, #1 - 1b318: 4621 mov r1, r4 - 1b31a: d003 beq.n 1b324 <_fwalk_reent+0x34> - 1b31c: 4638 mov r0, r7 - 1b31e: 47c0 blx r8 - 1b320: ea49 0900 orr.w r9, r9, r0 - 1b324: 1c6b adds r3, r5, #1 - 1b326: f104 0464 add.w r4, r4, #100 ; 0x64 - 1b32a: d1ed bne.n 1b308 <_fwalk_reent+0x18> - 1b32c: 6836 ldr r6, [r6, #0] - 1b32e: 2e00 cmp r6, #0 - 1b330: d1e6 bne.n 1b300 <_fwalk_reent+0x10> - 1b332: 4648 mov r0, r9 - 1b334: e8bd 83f8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, pc} - -0001b338 <_localeconv_r>: - 1b338: 4800 ldr r0, [pc, #0] ; (1b33c <_localeconv_r+0x4>) - 1b33a: 4770 bx lr - 1b33c: 20000988 .word 0x20000988 - -0001b340 <__smakebuf_r>: - 1b340: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} - 1b344: 898b ldrh r3, [r1, #12] - 1b346: 460c mov r4, r1 - 1b348: 0799 lsls r1, r3, #30 - 1b34a: b096 sub sp, #88 ; 0x58 - 1b34c: d508 bpl.n 1b360 <__smakebuf_r+0x20> - 1b34e: f104 0343 add.w r3, r4, #67 ; 0x43 - 1b352: 2201 movs r2, #1 - 1b354: e9c4 3204 strd r3, r2, [r4, #16] - 1b358: 6023 str r3, [r4, #0] - 1b35a: b016 add sp, #88 ; 0x58 - 1b35c: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} - 1b360: f9b4 100e ldrsh.w r1, [r4, #14] - 1b364: 2900 cmp r1, #0 - 1b366: 4606 mov r6, r0 - 1b368: db27 blt.n 1b3ba <__smakebuf_r+0x7a> - 1b36a: 466a mov r2, sp - 1b36c: f001 ffb4 bl 1d2d8 <_fstat_r> - 1b370: 2800 cmp r0, #0 - 1b372: db21 blt.n 1b3b8 <__smakebuf_r+0x78> - 1b374: 9d01 ldr r5, [sp, #4] - 1b376: f405 4570 and.w r5, r5, #61440 ; 0xf000 - 1b37a: f5a5 5500 sub.w r5, r5, #8192 ; 0x2000 - 1b37e: fab5 f585 clz r5, r5 - 1b382: f44f 6880 mov.w r8, #1024 ; 0x400 - 1b386: 096d lsrs r5, r5, #5 - 1b388: f44f 6700 mov.w r7, #2048 ; 0x800 - 1b38c: 4641 mov r1, r8 - 1b38e: 4630 mov r0, r6 - 1b390: f000 f846 bl 1b420 <_malloc_r> - 1b394: f9b4 300c ldrsh.w r3, [r4, #12] - 1b398: b1f0 cbz r0, 1b3d8 <__smakebuf_r+0x98> - 1b39a: 4a20 ldr r2, [pc, #128] ; (1b41c <__smakebuf_r+0xdc>) - 1b39c: 63f2 str r2, [r6, #60] ; 0x3c - 1b39e: f043 0380 orr.w r3, r3, #128 ; 0x80 - 1b3a2: f8c4 8014 str.w r8, [r4, #20] - 1b3a6: 81a3 strh r3, [r4, #12] - 1b3a8: 6020 str r0, [r4, #0] - 1b3aa: 6120 str r0, [r4, #16] - 1b3ac: bb35 cbnz r5, 1b3fc <__smakebuf_r+0xbc> - 1b3ae: 433b orrs r3, r7 - 1b3b0: 81a3 strh r3, [r4, #12] - 1b3b2: b016 add sp, #88 ; 0x58 - 1b3b4: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} - 1b3b8: 89a3 ldrh r3, [r4, #12] - 1b3ba: f013 0580 ands.w r5, r3, #128 ; 0x80 - 1b3be: d019 beq.n 1b3f4 <__smakebuf_r+0xb4> - 1b3c0: f04f 0840 mov.w r8, #64 ; 0x40 - 1b3c4: 4641 mov r1, r8 - 1b3c6: 4630 mov r0, r6 - 1b3c8: f000 f82a bl 1b420 <_malloc_r> - 1b3cc: 2500 movs r5, #0 - 1b3ce: f9b4 300c ldrsh.w r3, [r4, #12] - 1b3d2: 462f mov r7, r5 - 1b3d4: 2800 cmp r0, #0 - 1b3d6: d1e0 bne.n 1b39a <__smakebuf_r+0x5a> - 1b3d8: 059a lsls r2, r3, #22 - 1b3da: d4be bmi.n 1b35a <__smakebuf_r+0x1a> - 1b3dc: f023 0303 bic.w r3, r3, #3 - 1b3e0: f104 0243 add.w r2, r4, #67 ; 0x43 - 1b3e4: f043 0302 orr.w r3, r3, #2 - 1b3e8: 2101 movs r1, #1 - 1b3ea: e9c4 2104 strd r2, r1, [r4, #16] - 1b3ee: 81a3 strh r3, [r4, #12] - 1b3f0: 6022 str r2, [r4, #0] - 1b3f2: e7b2 b.n 1b35a <__smakebuf_r+0x1a> - 1b3f4: f44f 6880 mov.w r8, #1024 ; 0x400 - 1b3f8: 462f mov r7, r5 - 1b3fa: e7c7 b.n 1b38c <__smakebuf_r+0x4c> - 1b3fc: f9b4 100e ldrsh.w r1, [r4, #14] - 1b400: 4630 mov r0, r6 - 1b402: f002 f903 bl 1d60c <_isatty_r> - 1b406: b910 cbnz r0, 1b40e <__smakebuf_r+0xce> - 1b408: f9b4 300c ldrsh.w r3, [r4, #12] - 1b40c: e7cf b.n 1b3ae <__smakebuf_r+0x6e> - 1b40e: 89a3 ldrh r3, [r4, #12] - 1b410: f023 0303 bic.w r3, r3, #3 - 1b414: f043 0301 orr.w r3, r3, #1 - 1b418: b21b sxth r3, r3 - 1b41a: e7c8 b.n 1b3ae <__smakebuf_r+0x6e> - 1b41c: 0001af69 .word 0x0001af69 - -0001b420 <_malloc_r>: - 1b420: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - 1b424: f101 060b add.w r6, r1, #11 - 1b428: 2e16 cmp r6, #22 - 1b42a: b083 sub sp, #12 - 1b42c: 4605 mov r5, r0 - 1b42e: d824 bhi.n 1b47a <_malloc_r+0x5a> - 1b430: 2910 cmp r1, #16 - 1b432: f200 80a3 bhi.w 1b57c <_malloc_r+0x15c> - 1b436: f000 faf3 bl 1ba20 <__malloc_lock> - 1b43a: 2610 movs r6, #16 - 1b43c: 2218 movs r2, #24 - 1b43e: f04f 0c02 mov.w ip, #2 - 1b442: 4fb0 ldr r7, [pc, #704] ; (1b704 <_malloc_r+0x2e4>) - 1b444: 443a add r2, r7 - 1b446: f1a2 0308 sub.w r3, r2, #8 - 1b44a: 6854 ldr r4, [r2, #4] - 1b44c: 429c cmp r4, r3 - 1b44e: f000 80a2 beq.w 1b596 <_malloc_r+0x176> - 1b452: 6863 ldr r3, [r4, #4] - 1b454: 68e2 ldr r2, [r4, #12] - 1b456: 68a1 ldr r1, [r4, #8] - 1b458: f023 0303 bic.w r3, r3, #3 - 1b45c: 4423 add r3, r4 - 1b45e: 60ca str r2, [r1, #12] - 1b460: 6091 str r1, [r2, #8] - 1b462: 685a ldr r2, [r3, #4] - 1b464: f042 0201 orr.w r2, r2, #1 - 1b468: 4628 mov r0, r5 - 1b46a: 605a str r2, [r3, #4] - 1b46c: 3408 adds r4, #8 - 1b46e: f000 fad9 bl 1ba24 <__malloc_unlock> - 1b472: 4620 mov r0, r4 - 1b474: b003 add sp, #12 - 1b476: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - 1b47a: f036 0607 bics.w r6, r6, #7 - 1b47e: d47d bmi.n 1b57c <_malloc_r+0x15c> - 1b480: 42b1 cmp r1, r6 - 1b482: d87b bhi.n 1b57c <_malloc_r+0x15c> - 1b484: f000 facc bl 1ba20 <__malloc_lock> - 1b488: f5b6 7ffc cmp.w r6, #504 ; 0x1f8 - 1b48c: f0c0 8198 bcc.w 1b7c0 <_malloc_r+0x3a0> - 1b490: 0a73 lsrs r3, r6, #9 - 1b492: d07a beq.n 1b58a <_malloc_r+0x16a> - 1b494: 2b04 cmp r3, #4 - 1b496: f200 8164 bhi.w 1b762 <_malloc_r+0x342> - 1b49a: 09b3 lsrs r3, r6, #6 - 1b49c: f103 0c39 add.w ip, r3, #57 ; 0x39 - 1b4a0: f103 0438 add.w r4, r3, #56 ; 0x38 - 1b4a4: ea4f 03cc mov.w r3, ip, lsl #3 - 1b4a8: 4f96 ldr r7, [pc, #600] ; (1b704 <_malloc_r+0x2e4>) - 1b4aa: 443b add r3, r7 - 1b4ac: f1a3 0008 sub.w r0, r3, #8 - 1b4b0: 685b ldr r3, [r3, #4] - 1b4b2: 4298 cmp r0, r3 - 1b4b4: d106 bne.n 1b4c4 <_malloc_r+0xa4> - 1b4b6: e00c b.n 1b4d2 <_malloc_r+0xb2> - 1b4b8: 2900 cmp r1, #0 - 1b4ba: f280 8114 bge.w 1b6e6 <_malloc_r+0x2c6> - 1b4be: 68db ldr r3, [r3, #12] - 1b4c0: 4298 cmp r0, r3 - 1b4c2: d006 beq.n 1b4d2 <_malloc_r+0xb2> - 1b4c4: 685a ldr r2, [r3, #4] - 1b4c6: f022 0203 bic.w r2, r2, #3 - 1b4ca: 1b91 subs r1, r2, r6 - 1b4cc: 290f cmp r1, #15 - 1b4ce: ddf3 ble.n 1b4b8 <_malloc_r+0x98> - 1b4d0: 46a4 mov ip, r4 - 1b4d2: 693c ldr r4, [r7, #16] - 1b4d4: f8df 8230 ldr.w r8, [pc, #560] ; 1b708 <_malloc_r+0x2e8> - 1b4d8: 4544 cmp r4, r8 - 1b4da: d068 beq.n 1b5ae <_malloc_r+0x18e> - 1b4dc: 6861 ldr r1, [r4, #4] - 1b4de: f021 0103 bic.w r1, r1, #3 - 1b4e2: 1b8b subs r3, r1, r6 - 1b4e4: 2b0f cmp r3, #15 - 1b4e6: f300 817a bgt.w 1b7de <_malloc_r+0x3be> - 1b4ea: 2b00 cmp r3, #0 - 1b4ec: e9c7 8804 strd r8, r8, [r7, #16] - 1b4f0: f280 816b bge.w 1b7ca <_malloc_r+0x3aa> - 1b4f4: f5b1 7f00 cmp.w r1, #512 ; 0x200 - 1b4f8: f080 8112 bcs.w 1b720 <_malloc_r+0x300> - 1b4fc: 08cb lsrs r3, r1, #3 - 1b4fe: 6878 ldr r0, [r7, #4] - 1b500: 3301 adds r3, #1 - 1b502: 0949 lsrs r1, r1, #5 - 1b504: 2201 movs r2, #1 - 1b506: 408a lsls r2, r1 - 1b508: 4302 orrs r2, r0 - 1b50a: eb07 01c3 add.w r1, r7, r3, lsl #3 - 1b50e: f857 0033 ldr.w r0, [r7, r3, lsl #3] - 1b512: 60a0 str r0, [r4, #8] - 1b514: 3908 subs r1, #8 - 1b516: 60e1 str r1, [r4, #12] - 1b518: 607a str r2, [r7, #4] - 1b51a: f847 4033 str.w r4, [r7, r3, lsl #3] - 1b51e: 60c4 str r4, [r0, #12] - 1b520: ea4f 03ac mov.w r3, ip, asr #2 - 1b524: 2001 movs r0, #1 - 1b526: 4098 lsls r0, r3 - 1b528: 4290 cmp r0, r2 - 1b52a: d847 bhi.n 1b5bc <_malloc_r+0x19c> - 1b52c: 4210 tst r0, r2 - 1b52e: d106 bne.n 1b53e <_malloc_r+0x11e> - 1b530: f02c 0c03 bic.w ip, ip, #3 - 1b534: 0040 lsls r0, r0, #1 - 1b536: 4210 tst r0, r2 - 1b538: f10c 0c04 add.w ip, ip, #4 - 1b53c: d0fa beq.n 1b534 <_malloc_r+0x114> - 1b53e: eb07 0acc add.w sl, r7, ip, lsl #3 - 1b542: 4653 mov r3, sl - 1b544: 46e1 mov r9, ip - 1b546: 68d9 ldr r1, [r3, #12] - 1b548: e00e b.n 1b568 <_malloc_r+0x148> - 1b54a: 684a ldr r2, [r1, #4] - 1b54c: f022 0203 bic.w r2, r2, #3 - 1b550: eba2 0e06 sub.w lr, r2, r6 - 1b554: f1be 0f0f cmp.w lr, #15 - 1b558: 460c mov r4, r1 - 1b55a: 68c9 ldr r1, [r1, #12] - 1b55c: f300 810e bgt.w 1b77c <_malloc_r+0x35c> - 1b560: f1be 0f00 cmp.w lr, #0 - 1b564: f280 811f bge.w 1b7a6 <_malloc_r+0x386> - 1b568: 428b cmp r3, r1 - 1b56a: d1ee bne.n 1b54a <_malloc_r+0x12a> - 1b56c: f109 0901 add.w r9, r9, #1 - 1b570: f019 0f03 tst.w r9, #3 - 1b574: f103 0308 add.w r3, r3, #8 - 1b578: d1e5 bne.n 1b546 <_malloc_r+0x126> - 1b57a: e165 b.n 1b848 <_malloc_r+0x428> - 1b57c: 2400 movs r4, #0 - 1b57e: 230c movs r3, #12 - 1b580: 4620 mov r0, r4 - 1b582: 602b str r3, [r5, #0] - 1b584: b003 add sp, #12 - 1b586: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - 1b58a: f44f 7300 mov.w r3, #512 ; 0x200 - 1b58e: f04f 0c40 mov.w ip, #64 ; 0x40 - 1b592: 243f movs r4, #63 ; 0x3f - 1b594: e788 b.n 1b4a8 <_malloc_r+0x88> - 1b596: 68d4 ldr r4, [r2, #12] - 1b598: 42a2 cmp r2, r4 - 1b59a: bf08 it eq - 1b59c: f10c 0c02 addeq.w ip, ip, #2 - 1b5a0: f47f af57 bne.w 1b452 <_malloc_r+0x32> - 1b5a4: 693c ldr r4, [r7, #16] - 1b5a6: f8df 8160 ldr.w r8, [pc, #352] ; 1b708 <_malloc_r+0x2e8> - 1b5aa: 4544 cmp r4, r8 - 1b5ac: d196 bne.n 1b4dc <_malloc_r+0xbc> - 1b5ae: 687a ldr r2, [r7, #4] - 1b5b0: ea4f 03ac mov.w r3, ip, asr #2 - 1b5b4: 2001 movs r0, #1 - 1b5b6: 4098 lsls r0, r3 - 1b5b8: 4290 cmp r0, r2 - 1b5ba: d9b7 bls.n 1b52c <_malloc_r+0x10c> - 1b5bc: 68bc ldr r4, [r7, #8] - 1b5be: 6863 ldr r3, [r4, #4] - 1b5c0: f023 0903 bic.w r9, r3, #3 - 1b5c4: 454e cmp r6, r9 - 1b5c6: d803 bhi.n 1b5d0 <_malloc_r+0x1b0> - 1b5c8: eba9 0306 sub.w r3, r9, r6 - 1b5cc: 2b0f cmp r3, #15 - 1b5ce: dc7a bgt.n 1b6c6 <_malloc_r+0x2a6> - 1b5d0: f8df b138 ldr.w fp, [pc, #312] ; 1b70c <_malloc_r+0x2ec> - 1b5d4: 4b4e ldr r3, [pc, #312] ; (1b710 <_malloc_r+0x2f0>) - 1b5d6: f8db 2000 ldr.w r2, [fp] - 1b5da: 681b ldr r3, [r3, #0] - 1b5dc: 3201 adds r2, #1 - 1b5de: 4433 add r3, r6 - 1b5e0: eb04 0a09 add.w sl, r4, r9 - 1b5e4: f000 8146 beq.w 1b874 <_malloc_r+0x454> - 1b5e8: f503 5380 add.w r3, r3, #4096 ; 0x1000 - 1b5ec: 330f adds r3, #15 - 1b5ee: f423 687f bic.w r8, r3, #4080 ; 0xff0 - 1b5f2: f028 080f bic.w r8, r8, #15 - 1b5f6: 4641 mov r1, r8 - 1b5f8: 4628 mov r0, r5 - 1b5fa: f000 fdc3 bl 1c184 <_sbrk_r> - 1b5fe: 1c41 adds r1, r0, #1 - 1b600: 4602 mov r2, r0 - 1b602: f000 8105 beq.w 1b810 <_malloc_r+0x3f0> - 1b606: 4582 cmp sl, r0 - 1b608: f200 8100 bhi.w 1b80c <_malloc_r+0x3ec> - 1b60c: 4b41 ldr r3, [pc, #260] ; (1b714 <_malloc_r+0x2f4>) - 1b60e: 6819 ldr r1, [r3, #0] - 1b610: 4441 add r1, r8 - 1b612: 6019 str r1, [r3, #0] - 1b614: 4608 mov r0, r1 - 1b616: f000 8162 beq.w 1b8de <_malloc_r+0x4be> - 1b61a: f8db 1000 ldr.w r1, [fp] - 1b61e: 9301 str r3, [sp, #4] - 1b620: 3101 adds r1, #1 - 1b622: bf1b ittet ne - 1b624: eba2 010a subne.w r1, r2, sl - 1b628: 1809 addne r1, r1, r0 - 1b62a: f8cb 2000 streq.w r2, [fp] - 1b62e: 6019 strne r1, [r3, #0] - 1b630: f012 0b07 ands.w fp, r2, #7 - 1b634: f000 812a beq.w 1b88c <_malloc_r+0x46c> - 1b638: f1cb 0108 rsb r1, fp, #8 - 1b63c: 440a add r2, r1 - 1b63e: f5cb 5180 rsb r1, fp, #4096 ; 0x1000 - 1b642: 4490 add r8, r2 - 1b644: 3108 adds r1, #8 - 1b646: eba1 0108 sub.w r1, r1, r8 - 1b64a: f3c1 0a0b ubfx sl, r1, #0, #12 - 1b64e: 4651 mov r1, sl - 1b650: 4628 mov r0, r5 - 1b652: 9200 str r2, [sp, #0] - 1b654: f000 fd96 bl 1c184 <_sbrk_r> - 1b658: 1c42 adds r2, r0, #1 - 1b65a: e9dd 2300 ldrd r2, r3, [sp] - 1b65e: f000 8164 beq.w 1b92a <_malloc_r+0x50a> - 1b662: 1a80 subs r0, r0, r2 - 1b664: eb00 080a add.w r8, r0, sl - 1b668: 6819 ldr r1, [r3, #0] - 1b66a: 60ba str r2, [r7, #8] - 1b66c: f048 0001 orr.w r0, r8, #1 - 1b670: 4451 add r1, sl - 1b672: 42bc cmp r4, r7 - 1b674: 6050 str r0, [r2, #4] - 1b676: 6019 str r1, [r3, #0] - 1b678: f000 813d beq.w 1b8f6 <_malloc_r+0x4d6> - 1b67c: f1b9 0f0f cmp.w r9, #15 - 1b680: f240 813b bls.w 1b8fa <_malloc_r+0x4da> - 1b684: 6860 ldr r0, [r4, #4] - 1b686: f1a9 0c0c sub.w ip, r9, #12 - 1b68a: f02c 0c07 bic.w ip, ip, #7 - 1b68e: f000 0001 and.w r0, r0, #1 - 1b692: ea40 000c orr.w r0, r0, ip - 1b696: 6060 str r0, [r4, #4] - 1b698: f04f 0e05 mov.w lr, #5 - 1b69c: eb04 000c add.w r0, r4, ip - 1b6a0: f1bc 0f0f cmp.w ip, #15 - 1b6a4: e9c0 ee01 strd lr, lr, [r0, #4] - 1b6a8: f200 8147 bhi.w 1b93a <_malloc_r+0x51a> - 1b6ac: 6850 ldr r0, [r2, #4] - 1b6ae: 4614 mov r4, r2 - 1b6b0: 4b19 ldr r3, [pc, #100] ; (1b718 <_malloc_r+0x2f8>) - 1b6b2: 681a ldr r2, [r3, #0] - 1b6b4: 428a cmp r2, r1 - 1b6b6: bf38 it cc - 1b6b8: 6019 strcc r1, [r3, #0] - 1b6ba: 4b18 ldr r3, [pc, #96] ; (1b71c <_malloc_r+0x2fc>) - 1b6bc: 681a ldr r2, [r3, #0] - 1b6be: 428a cmp r2, r1 - 1b6c0: bf38 it cc - 1b6c2: 6019 strcc r1, [r3, #0] - 1b6c4: e0a6 b.n 1b814 <_malloc_r+0x3f4> - 1b6c6: 19a2 adds r2, r4, r6 - 1b6c8: f043 0301 orr.w r3, r3, #1 - 1b6cc: f046 0601 orr.w r6, r6, #1 - 1b6d0: 6066 str r6, [r4, #4] - 1b6d2: 4628 mov r0, r5 - 1b6d4: 60ba str r2, [r7, #8] - 1b6d6: 6053 str r3, [r2, #4] - 1b6d8: f000 f9a4 bl 1ba24 <__malloc_unlock> - 1b6dc: 3408 adds r4, #8 - 1b6de: 4620 mov r0, r4 - 1b6e0: b003 add sp, #12 - 1b6e2: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - 1b6e6: e9d3 4102 ldrd r4, r1, [r3, #8] - 1b6ea: 441a add r2, r3 - 1b6ec: 60e1 str r1, [r4, #12] - 1b6ee: 608c str r4, [r1, #8] - 1b6f0: 6851 ldr r1, [r2, #4] - 1b6f2: f041 0101 orr.w r1, r1, #1 - 1b6f6: 4628 mov r0, r5 - 1b6f8: 6051 str r1, [r2, #4] - 1b6fa: f103 0408 add.w r4, r3, #8 - 1b6fe: f000 f991 bl 1ba24 <__malloc_unlock> - 1b702: e6b6 b.n 1b472 <_malloc_r+0x52> - 1b704: 20000488 .word 0x20000488 - 1b708: 20000490 .word 0x20000490 - 1b70c: 20000890 .word 0x20000890 - 1b710: 20005800 .word 0x20005800 - 1b714: 200057d0 .word 0x200057d0 - 1b718: 200057f8 .word 0x200057f8 - 1b71c: 200057fc .word 0x200057fc - 1b720: f5b1 6f20 cmp.w r1, #2560 ; 0xa00 - 1b724: ea4f 2251 mov.w r2, r1, lsr #9 - 1b728: d36a bcc.n 1b800 <_malloc_r+0x3e0> - 1b72a: 2a14 cmp r2, #20 - 1b72c: f200 80bf bhi.w 1b8ae <_malloc_r+0x48e> - 1b730: f102 035c add.w r3, r2, #92 ; 0x5c - 1b734: 00db lsls r3, r3, #3 - 1b736: 325b adds r2, #91 ; 0x5b - 1b738: 18f8 adds r0, r7, r3 - 1b73a: 58fb ldr r3, [r7, r3] - 1b73c: 3808 subs r0, #8 - 1b73e: 4298 cmp r0, r3 - 1b740: f000 809b beq.w 1b87a <_malloc_r+0x45a> - 1b744: 685a ldr r2, [r3, #4] - 1b746: f022 0203 bic.w r2, r2, #3 - 1b74a: 428a cmp r2, r1 - 1b74c: d902 bls.n 1b754 <_malloc_r+0x334> - 1b74e: 689b ldr r3, [r3, #8] - 1b750: 4298 cmp r0, r3 - 1b752: d1f7 bne.n 1b744 <_malloc_r+0x324> - 1b754: 68d8 ldr r0, [r3, #12] - 1b756: 687a ldr r2, [r7, #4] - 1b758: e9c4 3002 strd r3, r0, [r4, #8] - 1b75c: 6084 str r4, [r0, #8] - 1b75e: 60dc str r4, [r3, #12] - 1b760: e6de b.n 1b520 <_malloc_r+0x100> - 1b762: 2b14 cmp r3, #20 - 1b764: d964 bls.n 1b830 <_malloc_r+0x410> - 1b766: 2b54 cmp r3, #84 ; 0x54 - 1b768: f200 80a9 bhi.w 1b8be <_malloc_r+0x49e> - 1b76c: 0b33 lsrs r3, r6, #12 - 1b76e: f103 0c6f add.w ip, r3, #111 ; 0x6f - 1b772: f103 046e add.w r4, r3, #110 ; 0x6e - 1b776: ea4f 03cc mov.w r3, ip, lsl #3 - 1b77a: e695 b.n 1b4a8 <_malloc_r+0x88> - 1b77c: 4628 mov r0, r5 - 1b77e: 68a5 ldr r5, [r4, #8] - 1b780: 19a3 adds r3, r4, r6 - 1b782: f046 0601 orr.w r6, r6, #1 - 1b786: 6066 str r6, [r4, #4] - 1b788: 60e9 str r1, [r5, #12] - 1b78a: 608d str r5, [r1, #8] - 1b78c: f04e 0101 orr.w r1, lr, #1 - 1b790: e9c7 3304 strd r3, r3, [r7, #16] - 1b794: e9c3 8802 strd r8, r8, [r3, #8] - 1b798: 6059 str r1, [r3, #4] - 1b79a: f844 e002 str.w lr, [r4, r2] - 1b79e: f000 f941 bl 1ba24 <__malloc_unlock> - 1b7a2: 3408 adds r4, #8 - 1b7a4: e665 b.n 1b472 <_malloc_r+0x52> - 1b7a6: 4422 add r2, r4 - 1b7a8: 4628 mov r0, r5 - 1b7aa: 6853 ldr r3, [r2, #4] - 1b7ac: f043 0301 orr.w r3, r3, #1 - 1b7b0: 6053 str r3, [r2, #4] - 1b7b2: f854 3f08 ldr.w r3, [r4, #8]! - 1b7b6: 60d9 str r1, [r3, #12] - 1b7b8: 608b str r3, [r1, #8] - 1b7ba: f000 f933 bl 1ba24 <__malloc_unlock> - 1b7be: e658 b.n 1b472 <_malloc_r+0x52> - 1b7c0: ea4f 0cd6 mov.w ip, r6, lsr #3 - 1b7c4: f106 0208 add.w r2, r6, #8 - 1b7c8: e63b b.n 1b442 <_malloc_r+0x22> - 1b7ca: 4421 add r1, r4 - 1b7cc: 4628 mov r0, r5 - 1b7ce: 684b ldr r3, [r1, #4] - 1b7d0: f043 0301 orr.w r3, r3, #1 - 1b7d4: 604b str r3, [r1, #4] - 1b7d6: 3408 adds r4, #8 - 1b7d8: f000 f924 bl 1ba24 <__malloc_unlock> - 1b7dc: e649 b.n 1b472 <_malloc_r+0x52> - 1b7de: 19a2 adds r2, r4, r6 - 1b7e0: 4628 mov r0, r5 - 1b7e2: f046 0601 orr.w r6, r6, #1 - 1b7e6: f043 0501 orr.w r5, r3, #1 - 1b7ea: 6066 str r6, [r4, #4] - 1b7ec: e9c7 2204 strd r2, r2, [r7, #16] - 1b7f0: e9c2 8802 strd r8, r8, [r2, #8] - 1b7f4: 6055 str r5, [r2, #4] - 1b7f6: 5063 str r3, [r4, r1] - 1b7f8: f000 f914 bl 1ba24 <__malloc_unlock> - 1b7fc: 3408 adds r4, #8 - 1b7fe: e638 b.n 1b472 <_malloc_r+0x52> - 1b800: 098a lsrs r2, r1, #6 - 1b802: f102 0339 add.w r3, r2, #57 ; 0x39 - 1b806: 00db lsls r3, r3, #3 - 1b808: 3238 adds r2, #56 ; 0x38 - 1b80a: e795 b.n 1b738 <_malloc_r+0x318> - 1b80c: 42bc cmp r4, r7 - 1b80e: d061 beq.n 1b8d4 <_malloc_r+0x4b4> - 1b810: 68bc ldr r4, [r7, #8] - 1b812: 6860 ldr r0, [r4, #4] - 1b814: f020 0803 bic.w r8, r0, #3 - 1b818: 4546 cmp r6, r8 - 1b81a: eba8 0306 sub.w r3, r8, r6 - 1b81e: d802 bhi.n 1b826 <_malloc_r+0x406> - 1b820: 2b0f cmp r3, #15 - 1b822: f73f af50 bgt.w 1b6c6 <_malloc_r+0x2a6> - 1b826: 4628 mov r0, r5 - 1b828: f000 f8fc bl 1ba24 <__malloc_unlock> - 1b82c: 2400 movs r4, #0 - 1b82e: e620 b.n 1b472 <_malloc_r+0x52> - 1b830: f103 0c5c add.w ip, r3, #92 ; 0x5c - 1b834: f103 045b add.w r4, r3, #91 ; 0x5b - 1b838: ea4f 03cc mov.w r3, ip, lsl #3 - 1b83c: e634 b.n 1b4a8 <_malloc_r+0x88> - 1b83e: f85a 3908 ldr.w r3, [sl], #-8 - 1b842: 4553 cmp r3, sl - 1b844: f040 8098 bne.w 1b978 <_malloc_r+0x558> - 1b848: f01c 0f03 tst.w ip, #3 - 1b84c: f10c 3cff add.w ip, ip, #4294967295 ; 0xffffffff - 1b850: d1f5 bne.n 1b83e <_malloc_r+0x41e> - 1b852: 687b ldr r3, [r7, #4] - 1b854: ea23 0300 bic.w r3, r3, r0 - 1b858: 607b str r3, [r7, #4] - 1b85a: 0040 lsls r0, r0, #1 - 1b85c: 4298 cmp r0, r3 - 1b85e: f63f aead bhi.w 1b5bc <_malloc_r+0x19c> - 1b862: b918 cbnz r0, 1b86c <_malloc_r+0x44c> - 1b864: e6aa b.n 1b5bc <_malloc_r+0x19c> - 1b866: 0040 lsls r0, r0, #1 - 1b868: f109 0904 add.w r9, r9, #4 - 1b86c: 4218 tst r0, r3 - 1b86e: d0fa beq.n 1b866 <_malloc_r+0x446> - 1b870: 46cc mov ip, r9 - 1b872: e664 b.n 1b53e <_malloc_r+0x11e> - 1b874: f103 0810 add.w r8, r3, #16 - 1b878: e6bd b.n 1b5f6 <_malloc_r+0x1d6> - 1b87a: 6879 ldr r1, [r7, #4] - 1b87c: 1092 asrs r2, r2, #2 - 1b87e: f04f 0e01 mov.w lr, #1 - 1b882: fa0e f202 lsl.w r2, lr, r2 - 1b886: 430a orrs r2, r1 - 1b888: 607a str r2, [r7, #4] - 1b88a: e765 b.n 1b758 <_malloc_r+0x338> - 1b88c: eb02 0108 add.w r1, r2, r8 - 1b890: 4249 negs r1, r1 - 1b892: f3c1 0a0b ubfx sl, r1, #0, #12 - 1b896: 4651 mov r1, sl - 1b898: 4628 mov r0, r5 - 1b89a: 9200 str r2, [sp, #0] - 1b89c: f000 fc72 bl 1c184 <_sbrk_r> - 1b8a0: 1c43 adds r3, r0, #1 - 1b8a2: e9dd 2300 ldrd r2, r3, [sp] - 1b8a6: f47f aedc bne.w 1b662 <_malloc_r+0x242> - 1b8aa: 46da mov sl, fp - 1b8ac: e6dc b.n 1b668 <_malloc_r+0x248> - 1b8ae: 2a54 cmp r2, #84 ; 0x54 - 1b8b0: d826 bhi.n 1b900 <_malloc_r+0x4e0> - 1b8b2: 0b0a lsrs r2, r1, #12 - 1b8b4: f102 036f add.w r3, r2, #111 ; 0x6f - 1b8b8: 00db lsls r3, r3, #3 - 1b8ba: 326e adds r2, #110 ; 0x6e - 1b8bc: e73c b.n 1b738 <_malloc_r+0x318> - 1b8be: f5b3 7faa cmp.w r3, #340 ; 0x154 - 1b8c2: d826 bhi.n 1b912 <_malloc_r+0x4f2> - 1b8c4: 0bf3 lsrs r3, r6, #15 - 1b8c6: f103 0c78 add.w ip, r3, #120 ; 0x78 - 1b8ca: f103 0477 add.w r4, r3, #119 ; 0x77 - 1b8ce: ea4f 03cc mov.w r3, ip, lsl #3 - 1b8d2: e5e9 b.n 1b4a8 <_malloc_r+0x88> - 1b8d4: 4b29 ldr r3, [pc, #164] ; (1b97c <_malloc_r+0x55c>) - 1b8d6: 6818 ldr r0, [r3, #0] - 1b8d8: 4440 add r0, r8 - 1b8da: 6018 str r0, [r3, #0] - 1b8dc: e69d b.n 1b61a <_malloc_r+0x1fa> - 1b8de: f3ca 0c0b ubfx ip, sl, #0, #12 - 1b8e2: f1bc 0f00 cmp.w ip, #0 - 1b8e6: f47f ae98 bne.w 1b61a <_malloc_r+0x1fa> - 1b8ea: 68bc ldr r4, [r7, #8] - 1b8ec: 44c8 add r8, r9 - 1b8ee: f048 0001 orr.w r0, r8, #1 - 1b8f2: 6060 str r0, [r4, #4] - 1b8f4: e6dc b.n 1b6b0 <_malloc_r+0x290> - 1b8f6: 4614 mov r4, r2 - 1b8f8: e6da b.n 1b6b0 <_malloc_r+0x290> - 1b8fa: 2301 movs r3, #1 - 1b8fc: 6053 str r3, [r2, #4] - 1b8fe: e792 b.n 1b826 <_malloc_r+0x406> - 1b900: f5b2 7faa cmp.w r2, #340 ; 0x154 - 1b904: d824 bhi.n 1b950 <_malloc_r+0x530> - 1b906: 0bca lsrs r2, r1, #15 - 1b908: f102 0378 add.w r3, r2, #120 ; 0x78 - 1b90c: 00db lsls r3, r3, #3 - 1b90e: 3277 adds r2, #119 ; 0x77 - 1b910: e712 b.n 1b738 <_malloc_r+0x318> - 1b912: f240 5254 movw r2, #1364 ; 0x554 - 1b916: 4293 cmp r3, r2 - 1b918: d824 bhi.n 1b964 <_malloc_r+0x544> - 1b91a: 0cb3 lsrs r3, r6, #18 - 1b91c: f103 0c7d add.w ip, r3, #125 ; 0x7d - 1b920: f103 047c add.w r4, r3, #124 ; 0x7c - 1b924: ea4f 03cc mov.w r3, ip, lsl #3 - 1b928: e5be b.n 1b4a8 <_malloc_r+0x88> - 1b92a: f1ab 0b08 sub.w fp, fp, #8 - 1b92e: 44d8 add r8, fp - 1b930: eba8 0802 sub.w r8, r8, r2 - 1b934: f04f 0a00 mov.w sl, #0 - 1b938: e696 b.n 1b668 <_malloc_r+0x248> - 1b93a: f104 0108 add.w r1, r4, #8 - 1b93e: 4628 mov r0, r5 - 1b940: 9300 str r3, [sp, #0] - 1b942: f7ff fbd9 bl 1b0f8 <_free_r> - 1b946: 68bc ldr r4, [r7, #8] - 1b948: 9b00 ldr r3, [sp, #0] - 1b94a: 6860 ldr r0, [r4, #4] - 1b94c: 6819 ldr r1, [r3, #0] - 1b94e: e6af b.n 1b6b0 <_malloc_r+0x290> - 1b950: f240 5354 movw r3, #1364 ; 0x554 - 1b954: 429a cmp r2, r3 - 1b956: d80b bhi.n 1b970 <_malloc_r+0x550> - 1b958: 0c8a lsrs r2, r1, #18 - 1b95a: f102 037d add.w r3, r2, #125 ; 0x7d - 1b95e: 00db lsls r3, r3, #3 - 1b960: 327c adds r2, #124 ; 0x7c - 1b962: e6e9 b.n 1b738 <_malloc_r+0x318> - 1b964: f44f 737e mov.w r3, #1016 ; 0x3f8 - 1b968: f04f 0c7f mov.w ip, #127 ; 0x7f - 1b96c: 247e movs r4, #126 ; 0x7e - 1b96e: e59b b.n 1b4a8 <_malloc_r+0x88> - 1b970: f44f 737e mov.w r3, #1016 ; 0x3f8 - 1b974: 227e movs r2, #126 ; 0x7e - 1b976: e6df b.n 1b738 <_malloc_r+0x318> - 1b978: 687b ldr r3, [r7, #4] - 1b97a: e76e b.n 1b85a <_malloc_r+0x43a> - 1b97c: 200057d0 .word 0x200057d0 - -0001b980 : - 1b980: f001 01ff and.w r1, r1, #255 ; 0xff - 1b984: 2a10 cmp r2, #16 - 1b986: db2b blt.n 1b9e0 - 1b988: f010 0f07 tst.w r0, #7 - 1b98c: d008 beq.n 1b9a0 - 1b98e: f810 3b01 ldrb.w r3, [r0], #1 - 1b992: 3a01 subs r2, #1 - 1b994: 428b cmp r3, r1 - 1b996: d02d beq.n 1b9f4 - 1b998: f010 0f07 tst.w r0, #7 - 1b99c: b342 cbz r2, 1b9f0 - 1b99e: d1f6 bne.n 1b98e - 1b9a0: b4f0 push {r4, r5, r6, r7} - 1b9a2: ea41 2101 orr.w r1, r1, r1, lsl #8 - 1b9a6: ea41 4101 orr.w r1, r1, r1, lsl #16 - 1b9aa: f022 0407 bic.w r4, r2, #7 - 1b9ae: f07f 0700 mvns.w r7, #0 - 1b9b2: 2300 movs r3, #0 - 1b9b4: e8f0 5602 ldrd r5, r6, [r0], #8 - 1b9b8: 3c08 subs r4, #8 - 1b9ba: ea85 0501 eor.w r5, r5, r1 - 1b9be: ea86 0601 eor.w r6, r6, r1 - 1b9c2: fa85 f547 uadd8 r5, r5, r7 - 1b9c6: faa3 f587 sel r5, r3, r7 - 1b9ca: fa86 f647 uadd8 r6, r6, r7 - 1b9ce: faa5 f687 sel r6, r5, r7 - 1b9d2: b98e cbnz r6, 1b9f8 - 1b9d4: d1ee bne.n 1b9b4 - 1b9d6: bcf0 pop {r4, r5, r6, r7} - 1b9d8: f001 01ff and.w r1, r1, #255 ; 0xff - 1b9dc: f002 0207 and.w r2, r2, #7 - 1b9e0: b132 cbz r2, 1b9f0 - 1b9e2: f810 3b01 ldrb.w r3, [r0], #1 - 1b9e6: 3a01 subs r2, #1 - 1b9e8: ea83 0301 eor.w r3, r3, r1 - 1b9ec: b113 cbz r3, 1b9f4 - 1b9ee: d1f8 bne.n 1b9e2 - 1b9f0: 2000 movs r0, #0 - 1b9f2: 4770 bx lr - 1b9f4: 3801 subs r0, #1 - 1b9f6: 4770 bx lr - 1b9f8: 2d00 cmp r5, #0 - 1b9fa: bf06 itte eq - 1b9fc: 4635 moveq r5, r6 - 1b9fe: 3803 subeq r0, #3 - 1ba00: 3807 subne r0, #7 - 1ba02: f015 0f01 tst.w r5, #1 - 1ba06: d107 bne.n 1ba18 - 1ba08: 3001 adds r0, #1 - 1ba0a: f415 7f80 tst.w r5, #256 ; 0x100 - 1ba0e: bf02 ittt eq - 1ba10: 3001 addeq r0, #1 - 1ba12: f415 3fc0 tsteq.w r5, #98304 ; 0x18000 - 1ba16: 3001 addeq r0, #1 - 1ba18: bcf0 pop {r4, r5, r6, r7} - 1ba1a: 3801 subs r0, #1 - 1ba1c: 4770 bx lr - 1ba1e: bf00 nop - -0001ba20 <__malloc_lock>: - 1ba20: 4770 bx lr - 1ba22: bf00 nop - -0001ba24 <__malloc_unlock>: - 1ba24: 4770 bx lr - 1ba26: bf00 nop - -0001ba28 <_Balloc>: - 1ba28: 6cc3 ldr r3, [r0, #76] ; 0x4c - 1ba2a: b570 push {r4, r5, r6, lr} - 1ba2c: 4605 mov r5, r0 - 1ba2e: 460c mov r4, r1 - 1ba30: b14b cbz r3, 1ba46 <_Balloc+0x1e> - 1ba32: f853 0024 ldr.w r0, [r3, r4, lsl #2] - 1ba36: b180 cbz r0, 1ba5a <_Balloc+0x32> - 1ba38: 6802 ldr r2, [r0, #0] - 1ba3a: f843 2024 str.w r2, [r3, r4, lsl #2] - 1ba3e: 2300 movs r3, #0 - 1ba40: e9c0 3303 strd r3, r3, [r0, #12] - 1ba44: bd70 pop {r4, r5, r6, pc} - 1ba46: 2221 movs r2, #33 ; 0x21 - 1ba48: 2104 movs r1, #4 - 1ba4a: f001 fb37 bl 1d0bc <_calloc_r> - 1ba4e: 4603 mov r3, r0 - 1ba50: 64e8 str r0, [r5, #76] ; 0x4c - 1ba52: 2800 cmp r0, #0 - 1ba54: d1ed bne.n 1ba32 <_Balloc+0xa> - 1ba56: 2000 movs r0, #0 - 1ba58: bd70 pop {r4, r5, r6, pc} - 1ba5a: 2101 movs r1, #1 - 1ba5c: fa01 f604 lsl.w r6, r1, r4 - 1ba60: 1d72 adds r2, r6, #5 - 1ba62: 0092 lsls r2, r2, #2 - 1ba64: 4628 mov r0, r5 - 1ba66: f001 fb29 bl 1d0bc <_calloc_r> - 1ba6a: 2800 cmp r0, #0 - 1ba6c: d0f3 beq.n 1ba56 <_Balloc+0x2e> - 1ba6e: e9c0 4601 strd r4, r6, [r0, #4] - 1ba72: e7e4 b.n 1ba3e <_Balloc+0x16> - -0001ba74 <_Bfree>: - 1ba74: b131 cbz r1, 1ba84 <_Bfree+0x10> - 1ba76: 6cc3 ldr r3, [r0, #76] ; 0x4c - 1ba78: 684a ldr r2, [r1, #4] - 1ba7a: f853 0022 ldr.w r0, [r3, r2, lsl #2] - 1ba7e: 6008 str r0, [r1, #0] - 1ba80: f843 1022 str.w r1, [r3, r2, lsl #2] - 1ba84: 4770 bx lr - 1ba86: bf00 nop - -0001ba88 <__multadd>: - 1ba88: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} - 1ba8c: 690d ldr r5, [r1, #16] - 1ba8e: 4607 mov r7, r0 - 1ba90: 460e mov r6, r1 - 1ba92: 461c mov r4, r3 - 1ba94: f101 0e14 add.w lr, r1, #20 - 1ba98: 2000 movs r0, #0 - 1ba9a: f8de 1000 ldr.w r1, [lr] - 1ba9e: b28b uxth r3, r1 - 1baa0: fb02 4303 mla r3, r2, r3, r4 - 1baa4: ea4f 4c13 mov.w ip, r3, lsr #16 - 1baa8: 0c09 lsrs r1, r1, #16 - 1baaa: fb02 cc01 mla ip, r2, r1, ip - 1baae: 3001 adds r0, #1 - 1bab0: b29b uxth r3, r3 - 1bab2: eb03 430c add.w r3, r3, ip, lsl #16 - 1bab6: 4285 cmp r5, r0 - 1bab8: f84e 3b04 str.w r3, [lr], #4 - 1babc: ea4f 441c mov.w r4, ip, lsr #16 - 1bac0: dceb bgt.n 1ba9a <__multadd+0x12> - 1bac2: b13c cbz r4, 1bad4 <__multadd+0x4c> - 1bac4: 68b3 ldr r3, [r6, #8] - 1bac6: 42ab cmp r3, r5 - 1bac8: dd07 ble.n 1bada <__multadd+0x52> - 1baca: eb06 0385 add.w r3, r6, r5, lsl #2 - 1bace: 3501 adds r5, #1 - 1bad0: 615c str r4, [r3, #20] - 1bad2: 6135 str r5, [r6, #16] - 1bad4: 4630 mov r0, r6 - 1bad6: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} - 1bada: 6871 ldr r1, [r6, #4] - 1badc: 4638 mov r0, r7 - 1bade: 3101 adds r1, #1 - 1bae0: f7ff ffa2 bl 1ba28 <_Balloc> - 1bae4: 4680 mov r8, r0 - 1bae6: b1a8 cbz r0, 1bb14 <__multadd+0x8c> - 1bae8: 6932 ldr r2, [r6, #16] - 1baea: 3202 adds r2, #2 - 1baec: f106 010c add.w r1, r6, #12 - 1baf0: 0092 lsls r2, r2, #2 - 1baf2: 300c adds r0, #12 - 1baf4: f7fb f916 bl 16d24 - 1baf8: 6cfb ldr r3, [r7, #76] ; 0x4c - 1bafa: 6872 ldr r2, [r6, #4] - 1bafc: f853 1022 ldr.w r1, [r3, r2, lsl #2] - 1bb00: 6031 str r1, [r6, #0] - 1bb02: f843 6022 str.w r6, [r3, r2, lsl #2] - 1bb06: 4646 mov r6, r8 - 1bb08: eb06 0385 add.w r3, r6, r5, lsl #2 - 1bb0c: 3501 adds r5, #1 - 1bb0e: 615c str r4, [r3, #20] - 1bb10: 6135 str r5, [r6, #16] - 1bb12: e7df b.n 1bad4 <__multadd+0x4c> - 1bb14: 4b02 ldr r3, [pc, #8] ; (1bb20 <__multadd+0x98>) - 1bb16: 4803 ldr r0, [pc, #12] ; (1bb24 <__multadd+0x9c>) - 1bb18: 4642 mov r2, r8 - 1bb1a: 21b5 movs r1, #181 ; 0xb5 - 1bb1c: f001 faae bl 1d07c <__assert_func> - 1bb20: 0002c204 .word 0x0002c204 - 1bb24: 0002c288 .word 0x0002c288 - -0001bb28 <__hi0bits>: - 1bb28: 0c02 lsrs r2, r0, #16 - 1bb2a: 0412 lsls r2, r2, #16 - 1bb2c: 4603 mov r3, r0 - 1bb2e: b9ca cbnz r2, 1bb64 <__hi0bits+0x3c> - 1bb30: 0403 lsls r3, r0, #16 - 1bb32: 2010 movs r0, #16 - 1bb34: f013 4f7f tst.w r3, #4278190080 ; 0xff000000 - 1bb38: bf04 itt eq - 1bb3a: 021b lsleq r3, r3, #8 - 1bb3c: 3008 addeq r0, #8 - 1bb3e: f013 4f70 tst.w r3, #4026531840 ; 0xf0000000 - 1bb42: bf04 itt eq - 1bb44: 011b lsleq r3, r3, #4 - 1bb46: 3004 addeq r0, #4 - 1bb48: f013 4f40 tst.w r3, #3221225472 ; 0xc0000000 - 1bb4c: bf04 itt eq - 1bb4e: 009b lsleq r3, r3, #2 - 1bb50: 3002 addeq r0, #2 - 1bb52: 2b00 cmp r3, #0 - 1bb54: db05 blt.n 1bb62 <__hi0bits+0x3a> - 1bb56: f013 4f80 tst.w r3, #1073741824 ; 0x40000000 - 1bb5a: f100 0001 add.w r0, r0, #1 - 1bb5e: bf08 it eq - 1bb60: 2020 moveq r0, #32 - 1bb62: 4770 bx lr - 1bb64: 2000 movs r0, #0 - 1bb66: e7e5 b.n 1bb34 <__hi0bits+0xc> - -0001bb68 <__lo0bits>: - 1bb68: 6803 ldr r3, [r0, #0] - 1bb6a: f013 0207 ands.w r2, r3, #7 - 1bb6e: 4601 mov r1, r0 - 1bb70: d007 beq.n 1bb82 <__lo0bits+0x1a> - 1bb72: 07da lsls r2, r3, #31 - 1bb74: d41f bmi.n 1bbb6 <__lo0bits+0x4e> - 1bb76: 0798 lsls r0, r3, #30 - 1bb78: d521 bpl.n 1bbbe <__lo0bits+0x56> - 1bb7a: 085b lsrs r3, r3, #1 - 1bb7c: 600b str r3, [r1, #0] - 1bb7e: 2001 movs r0, #1 - 1bb80: 4770 bx lr - 1bb82: b298 uxth r0, r3 - 1bb84: b1a0 cbz r0, 1bbb0 <__lo0bits+0x48> - 1bb86: 4610 mov r0, r2 - 1bb88: b2da uxtb r2, r3 - 1bb8a: b90a cbnz r2, 1bb90 <__lo0bits+0x28> - 1bb8c: 3008 adds r0, #8 - 1bb8e: 0a1b lsrs r3, r3, #8 - 1bb90: 071a lsls r2, r3, #28 - 1bb92: bf04 itt eq - 1bb94: 091b lsreq r3, r3, #4 - 1bb96: 3004 addeq r0, #4 - 1bb98: 079a lsls r2, r3, #30 - 1bb9a: bf04 itt eq - 1bb9c: 089b lsreq r3, r3, #2 - 1bb9e: 3002 addeq r0, #2 - 1bba0: 07da lsls r2, r3, #31 - 1bba2: d403 bmi.n 1bbac <__lo0bits+0x44> - 1bba4: 085b lsrs r3, r3, #1 - 1bba6: f100 0001 add.w r0, r0, #1 - 1bbaa: d006 beq.n 1bbba <__lo0bits+0x52> - 1bbac: 600b str r3, [r1, #0] - 1bbae: 4770 bx lr - 1bbb0: 0c1b lsrs r3, r3, #16 - 1bbb2: 2010 movs r0, #16 - 1bbb4: e7e8 b.n 1bb88 <__lo0bits+0x20> - 1bbb6: 2000 movs r0, #0 - 1bbb8: 4770 bx lr - 1bbba: 2020 movs r0, #32 - 1bbbc: 4770 bx lr - 1bbbe: 089b lsrs r3, r3, #2 - 1bbc0: 600b str r3, [r1, #0] - 1bbc2: 2002 movs r0, #2 - 1bbc4: 4770 bx lr - 1bbc6: bf00 nop - -0001bbc8 <__i2b>: - 1bbc8: b538 push {r3, r4, r5, lr} - 1bbca: 6cc3 ldr r3, [r0, #76] ; 0x4c - 1bbcc: 4604 mov r4, r0 - 1bbce: 460d mov r5, r1 - 1bbd0: b14b cbz r3, 1bbe6 <__i2b+0x1e> - 1bbd2: 6858 ldr r0, [r3, #4] - 1bbd4: b1b0 cbz r0, 1bc04 <__i2b+0x3c> - 1bbd6: 6802 ldr r2, [r0, #0] - 1bbd8: 605a str r2, [r3, #4] - 1bbda: 2200 movs r2, #0 - 1bbdc: 2301 movs r3, #1 - 1bbde: e9c0 3504 strd r3, r5, [r0, #16] - 1bbe2: 60c2 str r2, [r0, #12] - 1bbe4: bd38 pop {r3, r4, r5, pc} - 1bbe6: 2221 movs r2, #33 ; 0x21 - 1bbe8: 2104 movs r1, #4 - 1bbea: f001 fa67 bl 1d0bc <_calloc_r> - 1bbee: 4603 mov r3, r0 - 1bbf0: 64e0 str r0, [r4, #76] ; 0x4c - 1bbf2: 2800 cmp r0, #0 - 1bbf4: d1ed bne.n 1bbd2 <__i2b+0xa> - 1bbf6: 4b09 ldr r3, [pc, #36] ; (1bc1c <__i2b+0x54>) - 1bbf8: 4809 ldr r0, [pc, #36] ; (1bc20 <__i2b+0x58>) - 1bbfa: 2200 movs r2, #0 - 1bbfc: f44f 71a0 mov.w r1, #320 ; 0x140 - 1bc00: f001 fa3c bl 1d07c <__assert_func> - 1bc04: 221c movs r2, #28 - 1bc06: 2101 movs r1, #1 - 1bc08: 4620 mov r0, r4 - 1bc0a: f001 fa57 bl 1d0bc <_calloc_r> - 1bc0e: 2800 cmp r0, #0 - 1bc10: d0f1 beq.n 1bbf6 <__i2b+0x2e> - 1bc12: 2201 movs r2, #1 - 1bc14: 2302 movs r3, #2 - 1bc16: e9c0 2301 strd r2, r3, [r0, #4] - 1bc1a: e7de b.n 1bbda <__i2b+0x12> - 1bc1c: 0002c204 .word 0x0002c204 - 1bc20: 0002c288 .word 0x0002c288 - -0001bc24 <__multiply>: - 1bc24: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - 1bc28: 690e ldr r6, [r1, #16] - 1bc2a: 6915 ldr r5, [r2, #16] - 1bc2c: 42ae cmp r6, r5 - 1bc2e: b085 sub sp, #20 - 1bc30: 4688 mov r8, r1 - 1bc32: 4614 mov r4, r2 - 1bc34: db05 blt.n 1bc42 <__multiply+0x1e> - 1bc36: 462a mov r2, r5 - 1bc38: 4623 mov r3, r4 - 1bc3a: 4635 mov r5, r6 - 1bc3c: 460c mov r4, r1 - 1bc3e: 4616 mov r6, r2 - 1bc40: 4698 mov r8, r3 - 1bc42: 68a3 ldr r3, [r4, #8] - 1bc44: 6861 ldr r1, [r4, #4] - 1bc46: 19af adds r7, r5, r6 - 1bc48: 42bb cmp r3, r7 - 1bc4a: bfb8 it lt - 1bc4c: 3101 addlt r1, #1 - 1bc4e: f7ff feeb bl 1ba28 <_Balloc> - 1bc52: 9001 str r0, [sp, #4] - 1bc54: 2800 cmp r0, #0 - 1bc56: f000 8087 beq.w 1bd68 <__multiply+0x144> - 1bc5a: 9b01 ldr r3, [sp, #4] - 1bc5c: f103 0914 add.w r9, r3, #20 - 1bc60: eb09 0a87 add.w sl, r9, r7, lsl #2 - 1bc64: 45d1 cmp r9, sl - 1bc66: d205 bcs.n 1bc74 <__multiply+0x50> - 1bc68: 464b mov r3, r9 - 1bc6a: 2200 movs r2, #0 - 1bc6c: f843 2b04 str.w r2, [r3], #4 - 1bc70: 459a cmp sl, r3 - 1bc72: d8fb bhi.n 1bc6c <__multiply+0x48> - 1bc74: f108 0814 add.w r8, r8, #20 - 1bc78: eb08 0b86 add.w fp, r8, r6, lsl #2 - 1bc7c: f104 0314 add.w r3, r4, #20 - 1bc80: 45d8 cmp r8, fp - 1bc82: 461a mov r2, r3 - 1bc84: eb03 0585 add.w r5, r3, r5, lsl #2 - 1bc88: d25f bcs.n 1bd4a <__multiply+0x126> - 1bc8a: 1b2b subs r3, r5, r4 - 1bc8c: 3b15 subs r3, #21 - 1bc8e: f023 0303 bic.w r3, r3, #3 - 1bc92: 3304 adds r3, #4 - 1bc94: 3415 adds r4, #21 - 1bc96: 42a5 cmp r5, r4 - 1bc98: bf38 it cc - 1bc9a: 2304 movcc r3, #4 - 1bc9c: e9cd a702 strd sl, r7, [sp, #8] - 1bca0: 46ac mov ip, r5 - 1bca2: 461f mov r7, r3 - 1bca4: 4692 mov sl, r2 - 1bca6: e005 b.n 1bcb4 <__multiply+0x90> - 1bca8: 0c09 lsrs r1, r1, #16 - 1bcaa: d129 bne.n 1bd00 <__multiply+0xdc> - 1bcac: 45c3 cmp fp, r8 - 1bcae: f109 0904 add.w r9, r9, #4 - 1bcb2: d948 bls.n 1bd46 <__multiply+0x122> - 1bcb4: f858 1b04 ldr.w r1, [r8], #4 - 1bcb8: b28d uxth r5, r1 - 1bcba: 2d00 cmp r5, #0 - 1bcbc: d0f4 beq.n 1bca8 <__multiply+0x84> - 1bcbe: 4656 mov r6, sl - 1bcc0: 464c mov r4, r9 - 1bcc2: 2300 movs r3, #0 - 1bcc4: f856 1b04 ldr.w r1, [r6], #4 - 1bcc8: 6822 ldr r2, [r4, #0] - 1bcca: fa1f fe81 uxth.w lr, r1 - 1bcce: b290 uxth r0, r2 - 1bcd0: 0c09 lsrs r1, r1, #16 - 1bcd2: fb05 000e mla r0, r5, lr, r0 - 1bcd6: 0c12 lsrs r2, r2, #16 - 1bcd8: 4403 add r3, r0 - 1bcda: fb05 2201 mla r2, r5, r1, r2 - 1bcde: eb02 4213 add.w r2, r2, r3, lsr #16 - 1bce2: b29b uxth r3, r3 - 1bce4: ea43 4302 orr.w r3, r3, r2, lsl #16 - 1bce8: 45b4 cmp ip, r6 - 1bcea: f844 3b04 str.w r3, [r4], #4 - 1bcee: ea4f 4312 mov.w r3, r2, lsr #16 - 1bcf2: d8e7 bhi.n 1bcc4 <__multiply+0xa0> - 1bcf4: f849 3007 str.w r3, [r9, r7] - 1bcf8: f858 1c04 ldr.w r1, [r8, #-4] - 1bcfc: 0c09 lsrs r1, r1, #16 - 1bcfe: d0d5 beq.n 1bcac <__multiply+0x88> - 1bd00: f8d9 3000 ldr.w r3, [r9] - 1bd04: 4650 mov r0, sl - 1bd06: 461a mov r2, r3 - 1bd08: 464c mov r4, r9 - 1bd0a: 2600 movs r6, #0 - 1bd0c: 8805 ldrh r5, [r0, #0] - 1bd0e: 0c12 lsrs r2, r2, #16 - 1bd10: fb01 2205 mla r2, r1, r5, r2 - 1bd14: 4416 add r6, r2 - 1bd16: b29b uxth r3, r3 - 1bd18: ea43 4306 orr.w r3, r3, r6, lsl #16 - 1bd1c: f844 3b04 str.w r3, [r4], #4 - 1bd20: f850 5b04 ldr.w r5, [r0], #4 - 1bd24: 6822 ldr r2, [r4, #0] - 1bd26: 0c2d lsrs r5, r5, #16 - 1bd28: b293 uxth r3, r2 - 1bd2a: fb01 3305 mla r3, r1, r5, r3 - 1bd2e: eb03 4316 add.w r3, r3, r6, lsr #16 - 1bd32: 4584 cmp ip, r0 - 1bd34: ea4f 4613 mov.w r6, r3, lsr #16 - 1bd38: d8e8 bhi.n 1bd0c <__multiply+0xe8> - 1bd3a: 45c3 cmp fp, r8 - 1bd3c: f849 3007 str.w r3, [r9, r7] - 1bd40: f109 0904 add.w r9, r9, #4 - 1bd44: d8b6 bhi.n 1bcb4 <__multiply+0x90> - 1bd46: e9dd a702 ldrd sl, r7, [sp, #8] - 1bd4a: 2f00 cmp r7, #0 - 1bd4c: dc02 bgt.n 1bd54 <__multiply+0x130> - 1bd4e: e005 b.n 1bd5c <__multiply+0x138> - 1bd50: 3f01 subs r7, #1 - 1bd52: d003 beq.n 1bd5c <__multiply+0x138> - 1bd54: f85a 3d04 ldr.w r3, [sl, #-4]! - 1bd58: 2b00 cmp r3, #0 - 1bd5a: d0f9 beq.n 1bd50 <__multiply+0x12c> - 1bd5c: 9b01 ldr r3, [sp, #4] - 1bd5e: 4618 mov r0, r3 - 1bd60: 611f str r7, [r3, #16] - 1bd62: b005 add sp, #20 - 1bd64: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - 1bd68: 4b03 ldr r3, [pc, #12] ; (1bd78 <__multiply+0x154>) - 1bd6a: 4804 ldr r0, [pc, #16] ; (1bd7c <__multiply+0x158>) - 1bd6c: 9a01 ldr r2, [sp, #4] - 1bd6e: f240 115d movw r1, #349 ; 0x15d - 1bd72: f001 f983 bl 1d07c <__assert_func> - 1bd76: bf00 nop - 1bd78: 0002c204 .word 0x0002c204 - 1bd7c: 0002c288 .word 0x0002c288 - -0001bd80 <__pow5mult>: - 1bd80: f012 0303 ands.w r3, r2, #3 - 1bd84: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} - 1bd88: 4614 mov r4, r2 - 1bd8a: 4606 mov r6, r0 - 1bd8c: d132 bne.n 1bdf4 <__pow5mult+0x74> - 1bd8e: 460d mov r5, r1 - 1bd90: 10a4 asrs r4, r4, #2 - 1bd92: d020 beq.n 1bdd6 <__pow5mult+0x56> - 1bd94: f8d6 8048 ldr.w r8, [r6, #72] ; 0x48 - 1bd98: f1b8 0f00 cmp.w r8, #0 - 1bd9c: d033 beq.n 1be06 <__pow5mult+0x86> - 1bd9e: 07e3 lsls r3, r4, #31 - 1bda0: f04f 0700 mov.w r7, #0 - 1bda4: d407 bmi.n 1bdb6 <__pow5mult+0x36> - 1bda6: 1064 asrs r4, r4, #1 - 1bda8: d015 beq.n 1bdd6 <__pow5mult+0x56> - 1bdaa: f8d8 0000 ldr.w r0, [r8] - 1bdae: b1a8 cbz r0, 1bddc <__pow5mult+0x5c> - 1bdb0: 4680 mov r8, r0 - 1bdb2: 07e3 lsls r3, r4, #31 - 1bdb4: d5f7 bpl.n 1bda6 <__pow5mult+0x26> - 1bdb6: 4642 mov r2, r8 - 1bdb8: 4629 mov r1, r5 - 1bdba: 4630 mov r0, r6 - 1bdbc: f7ff ff32 bl 1bc24 <__multiply> - 1bdc0: b1b5 cbz r5, 1bdf0 <__pow5mult+0x70> - 1bdc2: 6869 ldr r1, [r5, #4] - 1bdc4: 6cf3 ldr r3, [r6, #76] ; 0x4c - 1bdc6: 1064 asrs r4, r4, #1 - 1bdc8: f853 2021 ldr.w r2, [r3, r1, lsl #2] - 1bdcc: 602a str r2, [r5, #0] - 1bdce: f843 5021 str.w r5, [r3, r1, lsl #2] - 1bdd2: 4605 mov r5, r0 - 1bdd4: d1e9 bne.n 1bdaa <__pow5mult+0x2a> - 1bdd6: 4628 mov r0, r5 - 1bdd8: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} - 1bddc: 4642 mov r2, r8 - 1bdde: 4641 mov r1, r8 - 1bde0: 4630 mov r0, r6 - 1bde2: f7ff ff1f bl 1bc24 <__multiply> - 1bde6: f8c8 0000 str.w r0, [r8] - 1bdea: 6007 str r7, [r0, #0] - 1bdec: 4680 mov r8, r0 - 1bdee: e7e0 b.n 1bdb2 <__pow5mult+0x32> - 1bdf0: 4605 mov r5, r0 - 1bdf2: e7d8 b.n 1bda6 <__pow5mult+0x26> - 1bdf4: 3b01 subs r3, #1 - 1bdf6: 4a0f ldr r2, [pc, #60] ; (1be34 <__pow5mult+0xb4>) - 1bdf8: f852 2023 ldr.w r2, [r2, r3, lsl #2] - 1bdfc: 2300 movs r3, #0 - 1bdfe: f7ff fe43 bl 1ba88 <__multadd> - 1be02: 4605 mov r5, r0 - 1be04: e7c4 b.n 1bd90 <__pow5mult+0x10> - 1be06: 2101 movs r1, #1 - 1be08: 4630 mov r0, r6 - 1be0a: f7ff fe0d bl 1ba28 <_Balloc> - 1be0e: 4680 mov r8, r0 - 1be10: b140 cbz r0, 1be24 <__pow5mult+0xa4> - 1be12: 2301 movs r3, #1 - 1be14: f240 2271 movw r2, #625 ; 0x271 - 1be18: e9c0 3204 strd r3, r2, [r0, #16] - 1be1c: 2300 movs r3, #0 - 1be1e: 64b0 str r0, [r6, #72] ; 0x48 - 1be20: 6003 str r3, [r0, #0] - 1be22: e7bc b.n 1bd9e <__pow5mult+0x1e> - 1be24: 4b04 ldr r3, [pc, #16] ; (1be38 <__pow5mult+0xb8>) - 1be26: 4805 ldr r0, [pc, #20] ; (1be3c <__pow5mult+0xbc>) - 1be28: 4642 mov r2, r8 - 1be2a: f44f 71a0 mov.w r1, #320 ; 0x140 - 1be2e: f001 f925 bl 1d07c <__assert_func> - 1be32: bf00 nop - 1be34: 0002c3f0 .word 0x0002c3f0 - 1be38: 0002c204 .word 0x0002c204 - 1be3c: 0002c288 .word 0x0002c288 - -0001be40 <__lshift>: - 1be40: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} - 1be44: 460c mov r4, r1 - 1be46: 4690 mov r8, r2 - 1be48: 6926 ldr r6, [r4, #16] - 1be4a: 68a3 ldr r3, [r4, #8] - 1be4c: 6849 ldr r1, [r1, #4] - 1be4e: eb06 1662 add.w r6, r6, r2, asr #5 - 1be52: 1c75 adds r5, r6, #1 - 1be54: 429d cmp r5, r3 - 1be56: 4607 mov r7, r0 - 1be58: ea4f 1962 mov.w r9, r2, asr #5 - 1be5c: dd04 ble.n 1be68 <__lshift+0x28> - 1be5e: 005b lsls r3, r3, #1 - 1be60: 429d cmp r5, r3 - 1be62: f101 0101 add.w r1, r1, #1 - 1be66: dcfa bgt.n 1be5e <__lshift+0x1e> - 1be68: 4638 mov r0, r7 - 1be6a: f7ff fddd bl 1ba28 <_Balloc> - 1be6e: 4684 mov ip, r0 - 1be70: 2800 cmp r0, #0 - 1be72: d051 beq.n 1bf18 <__lshift+0xd8> - 1be74: f1b9 0f00 cmp.w r9, #0 - 1be78: f100 0014 add.w r0, r0, #20 - 1be7c: dd0e ble.n 1be9c <__lshift+0x5c> - 1be7e: f109 0205 add.w r2, r9, #5 - 1be82: ea4f 0e82 mov.w lr, r2, lsl #2 - 1be86: 4603 mov r3, r0 - 1be88: eb0c 0282 add.w r2, ip, r2, lsl #2 - 1be8c: 2100 movs r1, #0 - 1be8e: f843 1b04 str.w r1, [r3], #4 - 1be92: 4293 cmp r3, r2 - 1be94: d1fb bne.n 1be8e <__lshift+0x4e> - 1be96: f1ae 0314 sub.w r3, lr, #20 - 1be9a: 4418 add r0, r3 - 1be9c: 6921 ldr r1, [r4, #16] - 1be9e: f104 0314 add.w r3, r4, #20 - 1bea2: f018 081f ands.w r8, r8, #31 - 1bea6: eb03 0181 add.w r1, r3, r1, lsl #2 - 1beaa: d02d beq.n 1bf08 <__lshift+0xc8> - 1beac: f1c8 0920 rsb r9, r8, #32 - 1beb0: 4686 mov lr, r0 - 1beb2: f04f 0a00 mov.w sl, #0 - 1beb6: 681a ldr r2, [r3, #0] - 1beb8: fa02 f208 lsl.w r2, r2, r8 - 1bebc: ea42 020a orr.w r2, r2, sl - 1bec0: f84e 2b04 str.w r2, [lr], #4 - 1bec4: f853 2b04 ldr.w r2, [r3], #4 - 1bec8: 4299 cmp r1, r3 - 1beca: fa22 fa09 lsr.w sl, r2, r9 - 1bece: d8f2 bhi.n 1beb6 <__lshift+0x76> - 1bed0: 1b0b subs r3, r1, r4 - 1bed2: 3b15 subs r3, #21 - 1bed4: f023 0303 bic.w r3, r3, #3 - 1bed8: 3304 adds r3, #4 - 1beda: f104 0215 add.w r2, r4, #21 - 1bede: 4291 cmp r1, r2 - 1bee0: bf38 it cc - 1bee2: 2304 movcc r3, #4 - 1bee4: f1ba 0f00 cmp.w sl, #0 - 1bee8: bf18 it ne - 1beea: 462e movne r6, r5 - 1beec: f840 a003 str.w sl, [r0, r3] - 1bef0: 6cfb ldr r3, [r7, #76] ; 0x4c - 1bef2: 6862 ldr r2, [r4, #4] - 1bef4: f8cc 6010 str.w r6, [ip, #16] - 1bef8: f853 1022 ldr.w r1, [r3, r2, lsl #2] - 1befc: 6021 str r1, [r4, #0] - 1befe: 4660 mov r0, ip - 1bf00: f843 4022 str.w r4, [r3, r2, lsl #2] - 1bf04: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} - 1bf08: 3804 subs r0, #4 - 1bf0a: f853 2b04 ldr.w r2, [r3], #4 - 1bf0e: f840 2f04 str.w r2, [r0, #4]! - 1bf12: 4299 cmp r1, r3 - 1bf14: d8f9 bhi.n 1bf0a <__lshift+0xca> - 1bf16: e7eb b.n 1bef0 <__lshift+0xb0> - 1bf18: 4b03 ldr r3, [pc, #12] ; (1bf28 <__lshift+0xe8>) - 1bf1a: 4804 ldr r0, [pc, #16] ; (1bf2c <__lshift+0xec>) - 1bf1c: 4662 mov r2, ip - 1bf1e: f240 11d9 movw r1, #473 ; 0x1d9 - 1bf22: f001 f8ab bl 1d07c <__assert_func> - 1bf26: bf00 nop - 1bf28: 0002c204 .word 0x0002c204 - 1bf2c: 0002c288 .word 0x0002c288 - -0001bf30 <__mcmp>: - 1bf30: 690b ldr r3, [r1, #16] - 1bf32: 4684 mov ip, r0 - 1bf34: 6900 ldr r0, [r0, #16] - 1bf36: 1ac0 subs r0, r0, r3 - 1bf38: d115 bne.n 1bf66 <__mcmp+0x36> - 1bf3a: f10c 0c14 add.w ip, ip, #20 - 1bf3e: 3114 adds r1, #20 - 1bf40: eb0c 0283 add.w r2, ip, r3, lsl #2 - 1bf44: b410 push {r4} - 1bf46: eb01 0383 add.w r3, r1, r3, lsl #2 - 1bf4a: e001 b.n 1bf50 <__mcmp+0x20> - 1bf4c: 4594 cmp ip, r2 - 1bf4e: d208 bcs.n 1bf62 <__mcmp+0x32> - 1bf50: f852 4d04 ldr.w r4, [r2, #-4]! - 1bf54: f853 1d04 ldr.w r1, [r3, #-4]! - 1bf58: 428c cmp r4, r1 - 1bf5a: d0f7 beq.n 1bf4c <__mcmp+0x1c> - 1bf5c: d204 bcs.n 1bf68 <__mcmp+0x38> - 1bf5e: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff - 1bf62: bc10 pop {r4} - 1bf64: 4770 bx lr - 1bf66: 4770 bx lr - 1bf68: 2001 movs r0, #1 - 1bf6a: bc10 pop {r4} - 1bf6c: 4770 bx lr - 1bf6e: bf00 nop - -0001bf70 <__mdiff>: - 1bf70: e92d 4ff8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr} - 1bf74: 690f ldr r7, [r1, #16] - 1bf76: 6913 ldr r3, [r2, #16] - 1bf78: 1aff subs r7, r7, r3 - 1bf7a: 2f00 cmp r7, #0 - 1bf7c: 460e mov r6, r1 - 1bf7e: 4690 mov r8, r2 - 1bf80: d17f bne.n 1c082 <__mdiff+0x112> - 1bf82: f101 0514 add.w r5, r1, #20 - 1bf86: 3214 adds r2, #20 - 1bf88: eb02 0283 add.w r2, r2, r3, lsl #2 - 1bf8c: eb05 0383 add.w r3, r5, r3, lsl #2 - 1bf90: e001 b.n 1bf96 <__mdiff+0x26> - 1bf92: 429d cmp r5, r3 - 1bf94: d278 bcs.n 1c088 <__mdiff+0x118> - 1bf96: f853 1d04 ldr.w r1, [r3, #-4]! - 1bf9a: f852 4d04 ldr.w r4, [r2, #-4]! - 1bf9e: 42a1 cmp r1, r4 - 1bfa0: d0f7 beq.n 1bf92 <__mdiff+0x22> - 1bfa2: d369 bcc.n 1c078 <__mdiff+0x108> - 1bfa4: 6871 ldr r1, [r6, #4] - 1bfa6: f7ff fd3f bl 1ba28 <_Balloc> - 1bfaa: 4681 mov r9, r0 - 1bfac: 2800 cmp r0, #0 - 1bfae: d077 beq.n 1c0a0 <__mdiff+0x130> - 1bfb0: 6935 ldr r5, [r6, #16] - 1bfb2: f8d8 2010 ldr.w r2, [r8, #16] - 1bfb6: 60c7 str r7, [r0, #12] - 1bfb8: f108 0e14 add.w lr, r8, #20 - 1bfbc: f106 0014 add.w r0, r6, #20 - 1bfc0: f109 0a14 add.w sl, r9, #20 - 1bfc4: f106 0110 add.w r1, r6, #16 - 1bfc8: eb0e 0282 add.w r2, lr, r2, lsl #2 - 1bfcc: eb00 0785 add.w r7, r0, r5, lsl #2 - 1bfd0: 4656 mov r6, sl - 1bfd2: f04f 0c00 mov.w ip, #0 - 1bfd6: f85e 4b04 ldr.w r4, [lr], #4 - 1bfda: f851 bf04 ldr.w fp, [r1, #4]! - 1bfde: b2a3 uxth r3, r4 - 1bfe0: fa1c fc8b uxtah ip, ip, fp - 1bfe4: ebac 0303 sub.w r3, ip, r3 - 1bfe8: ea4f 4c14 mov.w ip, r4, lsr #16 - 1bfec: ebcc 4c1b rsb ip, ip, fp, lsr #16 - 1bff0: eb0c 4c23 add.w ip, ip, r3, asr #16 - 1bff4: b29b uxth r3, r3 - 1bff6: ea43 430c orr.w r3, r3, ip, lsl #16 - 1bffa: 4572 cmp r2, lr - 1bffc: f846 3b04 str.w r3, [r6], #4 - 1c000: ea4f 4c2c mov.w ip, ip, asr #16 - 1c004: d8e7 bhi.n 1bfd6 <__mdiff+0x66> - 1c006: eba2 0108 sub.w r1, r2, r8 - 1c00a: 3915 subs r1, #21 - 1c00c: f108 0815 add.w r8, r8, #21 - 1c010: 4542 cmp r2, r8 - 1c012: f021 0403 bic.w r4, r1, #3 - 1c016: f104 0404 add.w r4, r4, #4 - 1c01a: bf38 it cc - 1c01c: 2404 movcc r4, #4 - 1c01e: 4420 add r0, r4 - 1c020: f021 0203 bic.w r2, r1, #3 - 1c024: bf38 it cc - 1c026: 2200 movcc r2, #0 - 1c028: 4287 cmp r7, r0 - 1c02a: 4452 add r2, sl - 1c02c: 4454 add r4, sl - 1c02e: d918 bls.n 1c062 <__mdiff+0xf2> - 1c030: 4626 mov r6, r4 - 1c032: 4601 mov r1, r0 - 1c034: f851 3b04 ldr.w r3, [r1], #4 - 1c038: fa1c fc83 uxtah ip, ip, r3 - 1c03c: ea4f 422c mov.w r2, ip, asr #16 - 1c040: eb02 4213 add.w r2, r2, r3, lsr #16 - 1c044: fa1f fc8c uxth.w ip, ip - 1c048: ea4c 4302 orr.w r3, ip, r2, lsl #16 - 1c04c: 428f cmp r7, r1 - 1c04e: f846 3b04 str.w r3, [r6], #4 - 1c052: ea4f 4c22 mov.w ip, r2, asr #16 - 1c056: d8ed bhi.n 1c034 <__mdiff+0xc4> - 1c058: 3f01 subs r7, #1 - 1c05a: 1a3f subs r7, r7, r0 - 1c05c: f027 0703 bic.w r7, r7, #3 - 1c060: 19e2 adds r2, r4, r7 - 1c062: b923 cbnz r3, 1c06e <__mdiff+0xfe> - 1c064: f852 3d04 ldr.w r3, [r2, #-4]! - 1c068: 3d01 subs r5, #1 - 1c06a: 2b00 cmp r3, #0 - 1c06c: d0fa beq.n 1c064 <__mdiff+0xf4> - 1c06e: f8c9 5010 str.w r5, [r9, #16] - 1c072: 4648 mov r0, r9 - 1c074: e8bd 8ff8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} - 1c078: 4633 mov r3, r6 - 1c07a: 2701 movs r7, #1 - 1c07c: 4646 mov r6, r8 - 1c07e: 4698 mov r8, r3 - 1c080: e790 b.n 1bfa4 <__mdiff+0x34> - 1c082: dbf9 blt.n 1c078 <__mdiff+0x108> - 1c084: 2700 movs r7, #0 - 1c086: e78d b.n 1bfa4 <__mdiff+0x34> - 1c088: 2100 movs r1, #0 - 1c08a: f7ff fccd bl 1ba28 <_Balloc> - 1c08e: 4681 mov r9, r0 - 1c090: b168 cbz r0, 1c0ae <__mdiff+0x13e> - 1c092: 2201 movs r2, #1 - 1c094: 2300 movs r3, #0 - 1c096: e9c9 2304 strd r2, r3, [r9, #16] - 1c09a: 4648 mov r0, r9 - 1c09c: e8bd 8ff8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} - 1c0a0: 4b06 ldr r3, [pc, #24] ; (1c0bc <__mdiff+0x14c>) - 1c0a2: 4807 ldr r0, [pc, #28] ; (1c0c0 <__mdiff+0x150>) - 1c0a4: 464a mov r2, r9 - 1c0a6: f44f 7110 mov.w r1, #576 ; 0x240 - 1c0aa: f000 ffe7 bl 1d07c <__assert_func> - 1c0ae: 4b03 ldr r3, [pc, #12] ; (1c0bc <__mdiff+0x14c>) - 1c0b0: 4803 ldr r0, [pc, #12] ; (1c0c0 <__mdiff+0x150>) - 1c0b2: 464a mov r2, r9 - 1c0b4: f240 2132 movw r1, #562 ; 0x232 - 1c0b8: f000 ffe0 bl 1d07c <__assert_func> - 1c0bc: 0002c204 .word 0x0002c204 - 1c0c0: 0002c288 .word 0x0002c288 - -0001c0c4 <__d2b>: - 1c0c4: b570 push {r4, r5, r6, lr} - 1c0c6: 2101 movs r1, #1 - 1c0c8: b082 sub sp, #8 - 1c0ca: 4616 mov r6, r2 - 1c0cc: 461d mov r5, r3 - 1c0ce: f7ff fcab bl 1ba28 <_Balloc> - 1c0d2: 4604 mov r4, r0 - 1c0d4: 2800 cmp r0, #0 - 1c0d6: d049 beq.n 1c16c <__d2b+0xa8> - 1c0d8: 462b mov r3, r5 - 1c0da: f3c5 550a ubfx r5, r5, #20, #11 - 1c0de: f3c3 0313 ubfx r3, r3, #0, #20 - 1c0e2: b10d cbz r5, 1c0e8 <__d2b+0x24> - 1c0e4: f443 1380 orr.w r3, r3, #1048576 ; 0x100000 - 1c0e8: 2e00 cmp r6, #0 - 1c0ea: 9301 str r3, [sp, #4] - 1c0ec: d114 bne.n 1c118 <__d2b+0x54> - 1c0ee: a801 add r0, sp, #4 - 1c0f0: f7ff fd3a bl 1bb68 <__lo0bits> - 1c0f4: 9b01 ldr r3, [sp, #4] - 1c0f6: 6163 str r3, [r4, #20] - 1c0f8: 2101 movs r1, #1 - 1c0fa: 3020 adds r0, #32 - 1c0fc: 6121 str r1, [r4, #16] - 1c0fe: b315 cbz r5, 1c146 <__d2b+0x82> - 1c100: 9b06 ldr r3, [sp, #24] - 1c102: f2a5 4533 subw r5, r5, #1075 ; 0x433 - 1c106: 4405 add r5, r0 - 1c108: 601d str r5, [r3, #0] - 1c10a: 9b07 ldr r3, [sp, #28] - 1c10c: f1c0 0035 rsb r0, r0, #53 ; 0x35 - 1c110: 6018 str r0, [r3, #0] - 1c112: 4620 mov r0, r4 - 1c114: b002 add sp, #8 - 1c116: bd70 pop {r4, r5, r6, pc} - 1c118: 4668 mov r0, sp - 1c11a: 9600 str r6, [sp, #0] - 1c11c: f7ff fd24 bl 1bb68 <__lo0bits> - 1c120: 9b01 ldr r3, [sp, #4] - 1c122: b300 cbz r0, 1c166 <__d2b+0xa2> - 1c124: 9900 ldr r1, [sp, #0] - 1c126: f1c0 0220 rsb r2, r0, #32 - 1c12a: fa03 f202 lsl.w r2, r3, r2 - 1c12e: 430a orrs r2, r1 - 1c130: 40c3 lsrs r3, r0 - 1c132: 9301 str r3, [sp, #4] - 1c134: 6162 str r2, [r4, #20] - 1c136: 2b00 cmp r3, #0 - 1c138: bf14 ite ne - 1c13a: 2102 movne r1, #2 - 1c13c: 2101 moveq r1, #1 - 1c13e: 61a3 str r3, [r4, #24] - 1c140: 6121 str r1, [r4, #16] - 1c142: 2d00 cmp r5, #0 - 1c144: d1dc bne.n 1c100 <__d2b+0x3c> - 1c146: eb04 0281 add.w r2, r4, r1, lsl #2 - 1c14a: f2a0 4332 subw r3, r0, #1074 ; 0x432 - 1c14e: 6910 ldr r0, [r2, #16] - 1c150: 9a06 ldr r2, [sp, #24] - 1c152: 6013 str r3, [r2, #0] - 1c154: f7ff fce8 bl 1bb28 <__hi0bits> - 1c158: 9b07 ldr r3, [sp, #28] - 1c15a: ebc0 1041 rsb r0, r0, r1, lsl #5 - 1c15e: 6018 str r0, [r3, #0] - 1c160: 4620 mov r0, r4 - 1c162: b002 add sp, #8 - 1c164: bd70 pop {r4, r5, r6, pc} - 1c166: 9a00 ldr r2, [sp, #0] - 1c168: 6162 str r2, [r4, #20] - 1c16a: e7e4 b.n 1c136 <__d2b+0x72> - 1c16c: 4b03 ldr r3, [pc, #12] ; (1c17c <__d2b+0xb8>) - 1c16e: 4804 ldr r0, [pc, #16] ; (1c180 <__d2b+0xbc>) - 1c170: 4622 mov r2, r4 - 1c172: f240 310a movw r1, #778 ; 0x30a - 1c176: f000 ff81 bl 1d07c <__assert_func> - 1c17a: bf00 nop - 1c17c: 0002c204 .word 0x0002c204 - 1c180: 0002c288 .word 0x0002c288 - -0001c184 <_sbrk_r>: - 1c184: b538 push {r3, r4, r5, lr} - 1c186: 4d07 ldr r5, [pc, #28] ; (1c1a4 <_sbrk_r+0x20>) - 1c188: 2200 movs r2, #0 - 1c18a: 4604 mov r4, r0 - 1c18c: 4608 mov r0, r1 - 1c18e: 602a str r2, [r5, #0] - 1c190: f7e4 f8e6 bl 360 <_sbrk> - 1c194: 1c43 adds r3, r0, #1 - 1c196: d000 beq.n 1c19a <_sbrk_r+0x16> - 1c198: bd38 pop {r3, r4, r5, pc} - 1c19a: 682b ldr r3, [r5, #0] - 1c19c: 2b00 cmp r3, #0 - 1c19e: d0fb beq.n 1c198 <_sbrk_r+0x14> - 1c1a0: 6023 str r3, [r4, #0] - 1c1a2: bd38 pop {r3, r4, r5, pc} - 1c1a4: 20005804 .word 0x20005804 - -0001c1a8 : - 1c1a8: b538 push {r3, r4, r5, lr} - 1c1aa: 4b15 ldr r3, [pc, #84] ; (1c200 ) - 1c1ac: 281f cmp r0, #31 - 1c1ae: 681d ldr r5, [r3, #0] - 1c1b0: d820 bhi.n 1c1f4 - 1c1b2: f8d5 22dc ldr.w r2, [r5, #732] ; 0x2dc - 1c1b6: 4604 mov r4, r0 - 1c1b8: b162 cbz r2, 1c1d4 - 1c1ba: f852 3020 ldr.w r3, [r2, r0, lsl #2] - 1c1be: b14b cbz r3, 1c1d4 - 1c1c0: 2b01 cmp r3, #1 - 1c1c2: d015 beq.n 1c1f0 - 1c1c4: 1c59 adds r1, r3, #1 - 1c1c6: d00f beq.n 1c1e8 - 1c1c8: 2500 movs r5, #0 - 1c1ca: f842 5020 str.w r5, [r2, r0, lsl #2] - 1c1ce: 4798 blx r3 - 1c1d0: 4628 mov r0, r5 - 1c1d2: bd38 pop {r3, r4, r5, pc} - 1c1d4: 4628 mov r0, r5 - 1c1d6: f000 f82b bl 1c230 <_getpid_r> - 1c1da: 4622 mov r2, r4 - 1c1dc: 4601 mov r1, r0 - 1c1de: 4628 mov r0, r5 - 1c1e0: e8bd 4038 ldmia.w sp!, {r3, r4, r5, lr} - 1c1e4: f000 b80e b.w 1c204 <_kill_r> - 1c1e8: 2316 movs r3, #22 - 1c1ea: 602b str r3, [r5, #0] - 1c1ec: 2001 movs r0, #1 - 1c1ee: bd38 pop {r3, r4, r5, pc} - 1c1f0: 2000 movs r0, #0 - 1c1f2: bd38 pop {r3, r4, r5, pc} - 1c1f4: 2316 movs r3, #22 - 1c1f6: 602b str r3, [r5, #0] - 1c1f8: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff - 1c1fc: bd38 pop {r3, r4, r5, pc} - 1c1fe: bf00 nop - 1c200: 20000068 .word 0x20000068 - -0001c204 <_kill_r>: - 1c204: b570 push {r4, r5, r6, lr} - 1c206: 460c mov r4, r1 - 1c208: 4d08 ldr r5, [pc, #32] ; (1c22c <_kill_r+0x28>) - 1c20a: 4603 mov r3, r0 - 1c20c: 2600 movs r6, #0 - 1c20e: 4620 mov r0, r4 - 1c210: 4611 mov r1, r2 - 1c212: 461c mov r4, r3 - 1c214: 602e str r6, [r5, #0] - 1c216: f7e4 f8c7 bl 3a8 <_kill> - 1c21a: 1c43 adds r3, r0, #1 - 1c21c: d000 beq.n 1c220 <_kill_r+0x1c> - 1c21e: bd70 pop {r4, r5, r6, pc} - 1c220: 682b ldr r3, [r5, #0] - 1c222: 2b00 cmp r3, #0 - 1c224: d0fb beq.n 1c21e <_kill_r+0x1a> - 1c226: 6023 str r3, [r4, #0] - 1c228: bd70 pop {r4, r5, r6, pc} - 1c22a: bf00 nop - 1c22c: 20005804 .word 0x20005804 - -0001c230 <_getpid_r>: - 1c230: f7e4 b8bb b.w 3aa <_getpid> - -0001c234 <__sread>: - 1c234: b510 push {r4, lr} - 1c236: 460c mov r4, r1 - 1c238: f9b1 100e ldrsh.w r1, [r1, #14] - 1c23c: f001 fa2a bl 1d694 <_read_r> - 1c240: 2800 cmp r0, #0 - 1c242: db03 blt.n 1c24c <__sread+0x18> - 1c244: 6d23 ldr r3, [r4, #80] ; 0x50 - 1c246: 4403 add r3, r0 - 1c248: 6523 str r3, [r4, #80] ; 0x50 - 1c24a: bd10 pop {r4, pc} - 1c24c: 89a3 ldrh r3, [r4, #12] - 1c24e: f423 5380 bic.w r3, r3, #4096 ; 0x1000 - 1c252: 81a3 strh r3, [r4, #12] - 1c254: bd10 pop {r4, pc} - 1c256: bf00 nop - -0001c258 <__swrite>: - 1c258: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} - 1c25c: 460c mov r4, r1 - 1c25e: f9b1 100c ldrsh.w r1, [r1, #12] - 1c262: 461f mov r7, r3 - 1c264: 05cb lsls r3, r1, #23 - 1c266: 4605 mov r5, r0 - 1c268: 4616 mov r6, r2 - 1c26a: d40b bmi.n 1c284 <__swrite+0x2c> - 1c26c: f421 5180 bic.w r1, r1, #4096 ; 0x1000 - 1c270: 81a1 strh r1, [r4, #12] - 1c272: 463b mov r3, r7 - 1c274: f9b4 100e ldrsh.w r1, [r4, #14] - 1c278: 4632 mov r2, r6 - 1c27a: 4628 mov r0, r5 - 1c27c: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr} - 1c280: f000 bee6 b.w 1d050 <_write_r> - 1c284: f9b4 100e ldrsh.w r1, [r4, #14] - 1c288: 2302 movs r3, #2 - 1c28a: 2200 movs r2, #0 - 1c28c: f001 f9d6 bl 1d63c <_lseek_r> - 1c290: f9b4 100c ldrsh.w r1, [r4, #12] - 1c294: e7ea b.n 1c26c <__swrite+0x14> - 1c296: bf00 nop - -0001c298 <__sseek>: - 1c298: b510 push {r4, lr} - 1c29a: 460c mov r4, r1 - 1c29c: f9b1 100e ldrsh.w r1, [r1, #14] - 1c2a0: f001 f9cc bl 1d63c <_lseek_r> - 1c2a4: 89a3 ldrh r3, [r4, #12] - 1c2a6: 1c42 adds r2, r0, #1 - 1c2a8: bf0e itee eq - 1c2aa: f423 5380 biceq.w r3, r3, #4096 ; 0x1000 - 1c2ae: f443 5380 orrne.w r3, r3, #4096 ; 0x1000 - 1c2b2: 6520 strne r0, [r4, #80] ; 0x50 - 1c2b4: 81a3 strh r3, [r4, #12] - 1c2b6: bd10 pop {r4, pc} - -0001c2b8 <__sclose>: - 1c2b8: f9b1 100e ldrsh.w r1, [r1, #14] - 1c2bc: f000 bf3a b.w 1d134 <_close_r> - -0001c2c0 <__ssprint_r>: - 1c2c0: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - 1c2c4: 6893 ldr r3, [r2, #8] - 1c2c6: 6816 ldr r6, [r2, #0] - 1c2c8: b083 sub sp, #12 - 1c2ca: 4692 mov sl, r2 - 1c2cc: 2b00 cmp r3, #0 - 1c2ce: d071 beq.n 1c3b4 <__ssprint_r+0xf4> - 1c2d0: 688b ldr r3, [r1, #8] - 1c2d2: 680a ldr r2, [r1, #0] - 1c2d4: 4681 mov r9, r0 - 1c2d6: 460c mov r4, r1 - 1c2d8: 3608 adds r6, #8 - 1c2da: e043 b.n 1c364 <__ssprint_r+0xa4> - 1c2dc: 89a3 ldrh r3, [r4, #12] - 1c2de: f413 6f90 tst.w r3, #1152 ; 0x480 - 1c2e2: d02d beq.n 1c340 <__ssprint_r+0x80> - 1c2e4: e9d4 1004 ldrd r1, r0, [r4, #16] - 1c2e8: 1a57 subs r7, r2, r1 - 1c2ea: eb00 0840 add.w r8, r0, r0, lsl #1 - 1c2ee: eb08 78d8 add.w r8, r8, r8, lsr #31 - 1c2f2: 1c78 adds r0, r7, #1 - 1c2f4: ea4f 0868 mov.w r8, r8, asr #1 - 1c2f8: 4428 add r0, r5 - 1c2fa: 4540 cmp r0, r8 - 1c2fc: 4642 mov r2, r8 - 1c2fe: bf84 itt hi - 1c300: 4680 movhi r8, r0 - 1c302: 4642 movhi r2, r8 - 1c304: 055b lsls r3, r3, #21 - 1c306: d539 bpl.n 1c37c <__ssprint_r+0xbc> - 1c308: 4611 mov r1, r2 - 1c30a: 4648 mov r0, r9 - 1c30c: f7ff f888 bl 1b420 <_malloc_r> - 1c310: 9001 str r0, [sp, #4] - 1c312: 2800 cmp r0, #0 - 1c314: d03c beq.n 1c390 <__ssprint_r+0xd0> - 1c316: 463a mov r2, r7 - 1c318: 6921 ldr r1, [r4, #16] - 1c31a: f7fa fd03 bl 16d24 - 1c31e: 89a2 ldrh r2, [r4, #12] - 1c320: 9b01 ldr r3, [sp, #4] - 1c322: f422 6290 bic.w r2, r2, #1152 ; 0x480 - 1c326: f042 0280 orr.w r2, r2, #128 ; 0x80 - 1c32a: 81a2 strh r2, [r4, #12] - 1c32c: 19d8 adds r0, r3, r7 - 1c32e: eba8 0707 sub.w r7, r8, r7 - 1c332: 60a7 str r7, [r4, #8] - 1c334: f8c4 8014 str.w r8, [r4, #20] - 1c338: 6123 str r3, [r4, #16] - 1c33a: 6020 str r0, [r4, #0] - 1c33c: 46a8 mov r8, r5 - 1c33e: 462f mov r7, r5 - 1c340: 463a mov r2, r7 - 1c342: 4659 mov r1, fp - 1c344: f7fa fd88 bl 16e58 - 1c348: f8da 1008 ldr.w r1, [sl, #8] - 1c34c: 68a3 ldr r3, [r4, #8] - 1c34e: 6822 ldr r2, [r4, #0] - 1c350: eba3 0308 sub.w r3, r3, r8 - 1c354: 443a add r2, r7 - 1c356: 1b49 subs r1, r1, r5 - 1c358: 60a3 str r3, [r4, #8] - 1c35a: 6022 str r2, [r4, #0] - 1c35c: f8ca 1008 str.w r1, [sl, #8] - 1c360: b341 cbz r1, 1c3b4 <__ssprint_r+0xf4> - 1c362: 3608 adds r6, #8 - 1c364: e956 b502 ldrd fp, r5, [r6, #-8] - 1c368: 4698 mov r8, r3 - 1c36a: 461f mov r7, r3 - 1c36c: 4610 mov r0, r2 - 1c36e: 2d00 cmp r5, #0 - 1c370: d0f7 beq.n 1c362 <__ssprint_r+0xa2> - 1c372: 42ab cmp r3, r5 - 1c374: d9b2 bls.n 1c2dc <__ssprint_r+0x1c> - 1c376: 46a8 mov r8, r5 - 1c378: 462f mov r7, r5 - 1c37a: e7e1 b.n 1c340 <__ssprint_r+0x80> - 1c37c: 4648 mov r0, r9 - 1c37e: f001 f99f bl 1d6c0 <_realloc_r> - 1c382: 4603 mov r3, r0 - 1c384: 2800 cmp r0, #0 - 1c386: d1d1 bne.n 1c32c <__ssprint_r+0x6c> - 1c388: 6921 ldr r1, [r4, #16] - 1c38a: 4648 mov r0, r9 - 1c38c: f7fe feb4 bl 1b0f8 <_free_r> - 1c390: 89a3 ldrh r3, [r4, #12] - 1c392: 220c movs r2, #12 - 1c394: f043 0340 orr.w r3, r3, #64 ; 0x40 - 1c398: f8c9 2000 str.w r2, [r9] - 1c39c: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff - 1c3a0: 81a3 strh r3, [r4, #12] - 1c3a2: 2200 movs r2, #0 - 1c3a4: 2300 movs r3, #0 - 1c3a6: f8ca 2008 str.w r2, [sl, #8] - 1c3aa: f8ca 3004 str.w r3, [sl, #4] - 1c3ae: b003 add sp, #12 - 1c3b0: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - 1c3b4: 2000 movs r0, #0 - 1c3b6: 2300 movs r3, #0 - 1c3b8: f8ca 3004 str.w r3, [sl, #4] - 1c3bc: b003 add sp, #12 - 1c3be: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - 1c3c2: bf00 nop - -0001c3c4 : - 1c3c4: b410 push {r4} - 1c3c6: 4c04 ldr r4, [pc, #16] ; (1c3d8 ) - 1c3c8: 4684 mov ip, r0 - 1c3ca: 4613 mov r3, r2 - 1c3cc: 6820 ldr r0, [r4, #0] - 1c3ce: bc10 pop {r4} - 1c3d0: 460a mov r2, r1 - 1c3d2: 4661 mov r1, ip - 1c3d4: f000 be3c b.w 1d050 <_write_r> - 1c3d8: 20000068 .word 0x20000068 - -0001c3dc <__sprint_r.part.0>: - 1c3dc: e92d 4ff8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr} - 1c3e0: 6e0b ldr r3, [r1, #96] ; 0x60 - 1c3e2: 049c lsls r4, r3, #18 - 1c3e4: 4690 mov r8, r2 - 1c3e6: d52d bpl.n 1c444 <__sprint_r.part.0+0x68> - 1c3e8: 6893 ldr r3, [r2, #8] - 1c3ea: 6812 ldr r2, [r2, #0] - 1c3ec: b343 cbz r3, 1c440 <__sprint_r.part.0+0x64> - 1c3ee: 468b mov fp, r1 - 1c3f0: 4606 mov r6, r0 - 1c3f2: f102 0908 add.w r9, r2, #8 - 1c3f6: e959 5a02 ldrd r5, sl, [r9, #-8] - 1c3fa: ea5f 079a movs.w r7, sl, lsr #2 - 1c3fe: d015 beq.n 1c42c <__sprint_r.part.0+0x50> - 1c400: 3d04 subs r5, #4 - 1c402: 2400 movs r4, #0 - 1c404: e001 b.n 1c40a <__sprint_r.part.0+0x2e> - 1c406: 42a7 cmp r7, r4 - 1c408: d00e beq.n 1c428 <__sprint_r.part.0+0x4c> - 1c40a: f855 1f04 ldr.w r1, [r5, #4]! - 1c40e: 465a mov r2, fp - 1c410: 4630 mov r0, r6 - 1c412: f000 ff4f bl 1d2b4 <_fputwc_r> - 1c416: 1c43 adds r3, r0, #1 - 1c418: f104 0401 add.w r4, r4, #1 - 1c41c: d1f3 bne.n 1c406 <__sprint_r.part.0+0x2a> - 1c41e: 2300 movs r3, #0 - 1c420: e9c8 3301 strd r3, r3, [r8, #4] - 1c424: e8bd 8ff8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} - 1c428: f8d8 3008 ldr.w r3, [r8, #8] - 1c42c: f02a 0a03 bic.w sl, sl, #3 - 1c430: eba3 030a sub.w r3, r3, sl - 1c434: f8c8 3008 str.w r3, [r8, #8] - 1c438: f109 0908 add.w r9, r9, #8 - 1c43c: 2b00 cmp r3, #0 - 1c43e: d1da bne.n 1c3f6 <__sprint_r.part.0+0x1a> - 1c440: 2000 movs r0, #0 - 1c442: e7ec b.n 1c41e <__sprint_r.part.0+0x42> - 1c444: f000 ff5e bl 1d304 <__sfvwrite_r> - 1c448: 2300 movs r3, #0 - 1c44a: e9c8 3301 strd r3, r3, [r8, #4] - 1c44e: e8bd 8ff8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} - 1c452: bf00 nop - -0001c454 <__sprint_r>: - 1c454: b410 push {r4} - 1c456: 6894 ldr r4, [r2, #8] - 1c458: b114 cbz r4, 1c460 <__sprint_r+0xc> - 1c45a: bc10 pop {r4} - 1c45c: f7ff bfbe b.w 1c3dc <__sprint_r.part.0> - 1c460: 4620 mov r0, r4 - 1c462: 6054 str r4, [r2, #4] - 1c464: bc10 pop {r4} - 1c466: 4770 bx lr - -0001c468 <_vfiprintf_r>: - 1c468: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - 1c46c: b0ab sub sp, #172 ; 0xac - 1c46e: 461c mov r4, r3 - 1c470: 4688 mov r8, r1 - 1c472: 4617 mov r7, r2 - 1c474: 9306 str r3, [sp, #24] - 1c476: 4683 mov fp, r0 - 1c478: b118 cbz r0, 1c482 <_vfiprintf_r+0x1a> - 1c47a: 6b83 ldr r3, [r0, #56] ; 0x38 - 1c47c: 2b00 cmp r3, #0 - 1c47e: f000 81c6 beq.w 1c80e <_vfiprintf_r+0x3a6> - 1c482: f9b8 100c ldrsh.w r1, [r8, #12] - 1c486: 0488 lsls r0, r1, #18 - 1c488: b28a uxth r2, r1 - 1c48a: d40a bmi.n 1c4a2 <_vfiprintf_r+0x3a> - 1c48c: f8d8 3060 ldr.w r3, [r8, #96] ; 0x60 - 1c490: f441 5100 orr.w r1, r1, #8192 ; 0x2000 - 1c494: f423 5300 bic.w r3, r3, #8192 ; 0x2000 - 1c498: f8a8 100c strh.w r1, [r8, #12] - 1c49c: b28a uxth r2, r1 - 1c49e: f8c8 3060 str.w r3, [r8, #96] ; 0x60 - 1c4a2: 0711 lsls r1, r2, #28 - 1c4a4: f140 80a6 bpl.w 1c5f4 <_vfiprintf_r+0x18c> - 1c4a8: f8d8 3010 ldr.w r3, [r8, #16] - 1c4ac: 2b00 cmp r3, #0 - 1c4ae: f000 80a1 beq.w 1c5f4 <_vfiprintf_r+0x18c> - 1c4b2: f002 021a and.w r2, r2, #26 - 1c4b6: 2a0a cmp r2, #10 - 1c4b8: f000 80aa beq.w 1c610 <_vfiprintf_r+0x1a8> - 1c4bc: ab1a add r3, sp, #104 ; 0x68 - 1c4be: 930d str r3, [sp, #52] ; 0x34 - 1c4c0: 2300 movs r3, #0 - 1c4c2: e9cd 330e strd r3, r3, [sp, #56] ; 0x38 - 1c4c6: 9309 str r3, [sp, #36] ; 0x24 - 1c4c8: f10d 0968 add.w r9, sp, #104 ; 0x68 - 1c4cc: 9304 str r3, [sp, #16] - 1c4ce: 783b ldrb r3, [r7, #0] - 1c4d0: 2b00 cmp r3, #0 - 1c4d2: f000 80c9 beq.w 1c668 <_vfiprintf_r+0x200> - 1c4d6: 463c mov r4, r7 - 1c4d8: e004 b.n 1c4e4 <_vfiprintf_r+0x7c> - 1c4da: f814 3f01 ldrb.w r3, [r4, #1]! - 1c4de: 2b00 cmp r3, #0 - 1c4e0: f000 80a4 beq.w 1c62c <_vfiprintf_r+0x1c4> - 1c4e4: 2b25 cmp r3, #37 ; 0x25 - 1c4e6: d1f8 bne.n 1c4da <_vfiprintf_r+0x72> - 1c4e8: 1be5 subs r5, r4, r7 - 1c4ea: f040 80a1 bne.w 1c630 <_vfiprintf_r+0x1c8> - 1c4ee: 7823 ldrb r3, [r4, #0] - 1c4f0: 2b00 cmp r3, #0 - 1c4f2: f000 80b9 beq.w 1c668 <_vfiprintf_r+0x200> - 1c4f6: 2100 movs r1, #0 - 1c4f8: 3401 adds r4, #1 - 1c4fa: f04f 0300 mov.w r3, #0 - 1c4fe: 4627 mov r7, r4 - 1c500: f88d 302f strb.w r3, [sp, #47] ; 0x2f - 1c504: 4608 mov r0, r1 - 1c506: f04f 3aff mov.w sl, #4294967295 ; 0xffffffff - 1c50a: 460d mov r5, r1 - 1c50c: 460c mov r4, r1 - 1c50e: f817 2b01 ldrb.w r2, [r7], #1 - 1c512: f1a2 0320 sub.w r3, r2, #32 - 1c516: 2b58 cmp r3, #88 ; 0x58 - 1c518: f200 80b3 bhi.w 1c682 <_vfiprintf_r+0x21a> - 1c51c: e8df f013 tbh [pc, r3, lsl #1] - 1c520: 00b10263 .word 0x00b10263 - 1c524: 026000b1 .word 0x026000b1 - 1c528: 00b100b1 .word 0x00b100b1 - 1c52c: 00b100b1 .word 0x00b100b1 - 1c530: 00b100b1 .word 0x00b100b1 - 1c534: 048f017a .word 0x048f017a - 1c538: 018200b1 .word 0x018200b1 - 1c53c: 00b10185 .word 0x00b10185 - 1c540: 00590274 .word 0x00590274 - 1c544: 00590059 .word 0x00590059 - 1c548: 00590059 .word 0x00590059 - 1c54c: 00590059 .word 0x00590059 - 1c550: 00590059 .word 0x00590059 - 1c554: 00b100b1 .word 0x00b100b1 - 1c558: 00b100b1 .word 0x00b100b1 - 1c55c: 00b100b1 .word 0x00b100b1 - 1c560: 00b100b1 .word 0x00b100b1 - 1c564: 00b100b1 .word 0x00b100b1 - 1c568: 00b10269 .word 0x00b10269 - 1c56c: 00b100b1 .word 0x00b100b1 - 1c570: 00b100b1 .word 0x00b100b1 - 1c574: 00b100b1 .word 0x00b100b1 - 1c578: 00b100b1 .word 0x00b100b1 - 1c57c: 022d00b1 .word 0x022d00b1 - 1c580: 00b100b1 .word 0x00b100b1 - 1c584: 00b100b1 .word 0x00b100b1 - 1c588: 022500b1 .word 0x022500b1 - 1c58c: 00b100b1 .word 0x00b100b1 - 1c590: 00b1021e .word 0x00b1021e - 1c594: 00b100b1 .word 0x00b100b1 - 1c598: 00b100b1 .word 0x00b100b1 - 1c59c: 00b100b1 .word 0x00b100b1 - 1c5a0: 00b100b1 .word 0x00b100b1 - 1c5a4: 020e00b1 .word 0x020e00b1 - 1c5a8: 00b1014e .word 0x00b1014e - 1c5ac: 00b100b1 .word 0x00b100b1 - 1c5b0: 014e025d .word 0x014e025d - 1c5b4: 00b100b1 .word 0x00b100b1 - 1c5b8: 00b10067 .word 0x00b10067 - 1c5bc: 02360248 .word 0x02360248 - 1c5c0: 006701ff .word 0x006701ff - 1c5c4: 01df00b1 .word 0x01df00b1 - 1c5c8: 01d000b1 .word 0x01d000b1 - 1c5cc: 00b100b1 .word 0x00b100b1 - 1c5d0: 019c .short 0x019c - 1c5d2: f1a2 0330 sub.w r3, r2, #48 ; 0x30 - 1c5d6: 2400 movs r4, #0 - 1c5d8: f817 2b01 ldrb.w r2, [r7], #1 - 1c5dc: eb04 0484 add.w r4, r4, r4, lsl #2 - 1c5e0: eb03 0444 add.w r4, r3, r4, lsl #1 - 1c5e4: f1a2 0330 sub.w r3, r2, #48 ; 0x30 - 1c5e8: 2b09 cmp r3, #9 - 1c5ea: d9f5 bls.n 1c5d8 <_vfiprintf_r+0x170> - 1c5ec: e791 b.n 1c512 <_vfiprintf_r+0xaa> - 1c5ee: f045 0510 orr.w r5, r5, #16 - 1c5f2: e78c b.n 1c50e <_vfiprintf_r+0xa6> - 1c5f4: 4641 mov r1, r8 - 1c5f6: 4658 mov r0, fp - 1c5f8: f7fd fb9c bl 19d34 <__swsetup_r> - 1c5fc: 2800 cmp r0, #0 - 1c5fe: f040 848a bne.w 1cf16 <_vfiprintf_r+0xaae> - 1c602: f8b8 200c ldrh.w r2, [r8, #12] - 1c606: f002 021a and.w r2, r2, #26 - 1c60a: 2a0a cmp r2, #10 - 1c60c: f47f af56 bne.w 1c4bc <_vfiprintf_r+0x54> - 1c610: f9b8 300e ldrsh.w r3, [r8, #14] - 1c614: 2b00 cmp r3, #0 - 1c616: f6ff af51 blt.w 1c4bc <_vfiprintf_r+0x54> - 1c61a: 4623 mov r3, r4 - 1c61c: 463a mov r2, r7 - 1c61e: 4641 mov r1, r8 - 1c620: 4658 mov r0, fp - 1c622: b02b add sp, #172 ; 0xac - 1c624: e8bd 4ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - 1c628: f000 bc88 b.w 1cf3c <__sbprintf> - 1c62c: 1be5 subs r5, r4, r7 - 1c62e: d01b beq.n 1c668 <_vfiprintf_r+0x200> - 1c630: 9b0e ldr r3, [sp, #56] ; 0x38 - 1c632: 9a0f ldr r2, [sp, #60] ; 0x3c - 1c634: 3301 adds r3, #1 - 1c636: 442a add r2, r5 - 1c638: 2b07 cmp r3, #7 - 1c63a: e9c9 7500 strd r7, r5, [r9] - 1c63e: 920f str r2, [sp, #60] ; 0x3c - 1c640: 930e str r3, [sp, #56] ; 0x38 - 1c642: dc05 bgt.n 1c650 <_vfiprintf_r+0x1e8> - 1c644: f109 0908 add.w r9, r9, #8 - 1c648: 9b04 ldr r3, [sp, #16] - 1c64a: 442b add r3, r5 - 1c64c: 9304 str r3, [sp, #16] - 1c64e: e74e b.n 1c4ee <_vfiprintf_r+0x86> - 1c650: 2a00 cmp r2, #0 - 1c652: f000 839e beq.w 1cd92 <_vfiprintf_r+0x92a> - 1c656: aa0d add r2, sp, #52 ; 0x34 - 1c658: 4641 mov r1, r8 - 1c65a: 4658 mov r0, fp - 1c65c: f7ff febe bl 1c3dc <__sprint_r.part.0> - 1c660: b930 cbnz r0, 1c670 <_vfiprintf_r+0x208> - 1c662: f10d 0968 add.w r9, sp, #104 ; 0x68 - 1c666: e7ef b.n 1c648 <_vfiprintf_r+0x1e0> - 1c668: 9b0f ldr r3, [sp, #60] ; 0x3c - 1c66a: 2b00 cmp r3, #0 - 1c66c: f040 8424 bne.w 1ceb8 <_vfiprintf_r+0xa50> - 1c670: f8b8 300c ldrh.w r3, [r8, #12] - 1c674: 065b lsls r3, r3, #25 - 1c676: f100 844e bmi.w 1cf16 <_vfiprintf_r+0xaae> - 1c67a: 9804 ldr r0, [sp, #16] - 1c67c: b02b add sp, #172 ; 0xac - 1c67e: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - 1c682: 9405 str r4, [sp, #20] - 1c684: 2900 cmp r1, #0 - 1c686: f040 8413 bne.w 1ceb0 <_vfiprintf_r+0xa48> - 1c68a: 2a00 cmp r2, #0 - 1c68c: d0ec beq.n 1c668 <_vfiprintf_r+0x200> - 1c68e: f04f 0300 mov.w r3, #0 - 1c692: f88d 302f strb.w r3, [sp, #47] ; 0x2f - 1c696: 2301 movs r3, #1 - 1c698: f88d 2040 strb.w r2, [sp, #64] ; 0x40 - 1c69c: 9301 str r3, [sp, #4] - 1c69e: 9303 str r3, [sp, #12] - 1c6a0: ac10 add r4, sp, #64 ; 0x40 - 1c6a2: 9502 str r5, [sp, #8] - 1c6a4: f04f 0a00 mov.w sl, #0 - 1c6a8: 9b02 ldr r3, [sp, #8] - 1c6aa: f013 0302 ands.w r3, r3, #2 - 1c6ae: 9307 str r3, [sp, #28] - 1c6b0: d002 beq.n 1c6b8 <_vfiprintf_r+0x250> - 1c6b2: 9b01 ldr r3, [sp, #4] - 1c6b4: 3302 adds r3, #2 - 1c6b6: 9301 str r3, [sp, #4] - 1c6b8: e9dd 2c0e ldrd r2, ip, [sp, #56] ; 0x38 - 1c6bc: 9b02 ldr r3, [sp, #8] - 1c6be: 1c50 adds r0, r2, #1 - 1c6c0: f013 0384 ands.w r3, r3, #132 ; 0x84 - 1c6c4: 4601 mov r1, r0 - 1c6c6: 9308 str r3, [sp, #32] - 1c6c8: d105 bne.n 1c6d6 <_vfiprintf_r+0x26e> - 1c6ca: 9b05 ldr r3, [sp, #20] - 1c6cc: 9d01 ldr r5, [sp, #4] - 1c6ce: 1b5d subs r5, r3, r5 - 1c6d0: 2d00 cmp r5, #0 - 1c6d2: f300 82a7 bgt.w 1cc24 <_vfiprintf_r+0x7bc> - 1c6d6: f89d 002f ldrb.w r0, [sp, #47] ; 0x2f - 1c6da: b190 cbz r0, 1c702 <_vfiprintf_r+0x29a> - 1c6dc: f10d 022f add.w r2, sp, #47 ; 0x2f - 1c6e0: f10c 0c01 add.w ip, ip, #1 - 1c6e4: f8c9 2000 str.w r2, [r9] - 1c6e8: 2907 cmp r1, #7 - 1c6ea: f04f 0201 mov.w r2, #1 - 1c6ee: e9cd 1c0e strd r1, ip, [sp, #56] ; 0x38 - 1c6f2: f8c9 2004 str.w r2, [r9, #4] - 1c6f6: f300 8276 bgt.w 1cbe6 <_vfiprintf_r+0x77e> - 1c6fa: 460a mov r2, r1 - 1c6fc: f109 0908 add.w r9, r9, #8 - 1c700: 3101 adds r1, #1 - 1c702: 9b07 ldr r3, [sp, #28] - 1c704: b1eb cbz r3, 1c742 <_vfiprintf_r+0x2da> - 1c706: ab0c add r3, sp, #48 ; 0x30 - 1c708: f10c 0c02 add.w ip, ip, #2 - 1c70c: f8c9 3000 str.w r3, [r9] - 1c710: 2907 cmp r1, #7 - 1c712: f04f 0302 mov.w r3, #2 - 1c716: e9cd 1c0e strd r1, ip, [sp, #56] ; 0x38 - 1c71a: f8c9 3004 str.w r3, [r9, #4] - 1c71e: f340 827c ble.w 1cc1a <_vfiprintf_r+0x7b2> - 1c722: f1bc 0f00 cmp.w ip, #0 - 1c726: f000 832f beq.w 1cd88 <_vfiprintf_r+0x920> - 1c72a: aa0d add r2, sp, #52 ; 0x34 - 1c72c: 4641 mov r1, r8 - 1c72e: 4658 mov r0, fp - 1c730: f7ff fe54 bl 1c3dc <__sprint_r.part.0> - 1c734: 2800 cmp r0, #0 - 1c736: d19b bne.n 1c670 <_vfiprintf_r+0x208> - 1c738: e9dd 2c0e ldrd r2, ip, [sp, #56] ; 0x38 - 1c73c: f10d 0968 add.w r9, sp, #104 ; 0x68 - 1c740: 1c51 adds r1, r2, #1 - 1c742: 9b08 ldr r3, [sp, #32] - 1c744: 2b80 cmp r3, #128 ; 0x80 - 1c746: f000 81a8 beq.w 1ca9a <_vfiprintf_r+0x632> - 1c74a: 9b03 ldr r3, [sp, #12] - 1c74c: ebaa 0603 sub.w r6, sl, r3 - 1c750: 2e00 cmp r6, #0 - 1c752: f300 81fe bgt.w 1cb52 <_vfiprintf_r+0x6ea> - 1c756: 9a03 ldr r2, [sp, #12] - 1c758: f8c9 4000 str.w r4, [r9] - 1c75c: eb02 030c add.w r3, r2, ip - 1c760: 2907 cmp r1, #7 - 1c762: e9cd 130e strd r1, r3, [sp, #56] ; 0x38 - 1c766: f8c9 2004 str.w r2, [r9, #4] - 1c76a: f340 817f ble.w 1ca6c <_vfiprintf_r+0x604> - 1c76e: 2b00 cmp r3, #0 - 1c770: f000 829e beq.w 1ccb0 <_vfiprintf_r+0x848> - 1c774: aa0d add r2, sp, #52 ; 0x34 - 1c776: 4641 mov r1, r8 - 1c778: 4658 mov r0, fp - 1c77a: f7ff fe2f bl 1c3dc <__sprint_r.part.0> - 1c77e: 2800 cmp r0, #0 - 1c780: f47f af76 bne.w 1c670 <_vfiprintf_r+0x208> - 1c784: 9b0f ldr r3, [sp, #60] ; 0x3c - 1c786: f10d 0968 add.w r9, sp, #104 ; 0x68 - 1c78a: 9a02 ldr r2, [sp, #8] - 1c78c: 0752 lsls r2, r2, #29 - 1c78e: d505 bpl.n 1c79c <_vfiprintf_r+0x334> - 1c790: 9a05 ldr r2, [sp, #20] - 1c792: 9901 ldr r1, [sp, #4] - 1c794: 1a54 subs r4, r2, r1 - 1c796: 2c00 cmp r4, #0 - 1c798: f300 8295 bgt.w 1ccc6 <_vfiprintf_r+0x85e> - 1c79c: e9dd 2104 ldrd r2, r1, [sp, #16] - 1c7a0: 9801 ldr r0, [sp, #4] - 1c7a2: 4281 cmp r1, r0 - 1c7a4: bfac ite ge - 1c7a6: 1852 addge r2, r2, r1 - 1c7a8: 1812 addlt r2, r2, r0 - 1c7aa: 9204 str r2, [sp, #16] - 1c7ac: 2b00 cmp r3, #0 - 1c7ae: f040 820c bne.w 1cbca <_vfiprintf_r+0x762> - 1c7b2: 2300 movs r3, #0 - 1c7b4: 930e str r3, [sp, #56] ; 0x38 - 1c7b6: f10d 0968 add.w r9, sp, #104 ; 0x68 - 1c7ba: e688 b.n 1c4ce <_vfiprintf_r+0x66> - 1c7bc: 9405 str r4, [sp, #20] - 1c7be: 2900 cmp r1, #0 - 1c7c0: f040 83a0 bne.w 1cf04 <_vfiprintf_r+0xa9c> - 1c7c4: 9b06 ldr r3, [sp, #24] - 1c7c6: 06ee lsls r6, r5, #27 - 1c7c8: f853 2b04 ldr.w r2, [r3], #4 - 1c7cc: 9306 str r3, [sp, #24] - 1c7ce: d402 bmi.n 1c7d6 <_vfiprintf_r+0x36e> - 1c7d0: 066c lsls r4, r5, #25 - 1c7d2: f100 8320 bmi.w 1ce16 <_vfiprintf_r+0x9ae> - 1c7d6: 4613 mov r3, r2 - 1c7d8: 2a00 cmp r2, #0 - 1c7da: f2c0 82e8 blt.w 1cdae <_vfiprintf_r+0x946> - 1c7de: f1ba 3fff cmp.w sl, #4294967295 ; 0xffffffff - 1c7e2: f89d 102f ldrb.w r1, [sp, #47] ; 0x2f - 1c7e6: d006 beq.n 1c7f6 <_vfiprintf_r+0x38e> - 1c7e8: f025 0080 bic.w r0, r5, #128 ; 0x80 - 1c7ec: 9002 str r0, [sp, #8] - 1c7ee: 2a00 cmp r2, #0 - 1c7f0: f000 82d3 beq.w 1cd9a <_vfiprintf_r+0x932> - 1c7f4: 9d02 ldr r5, [sp, #8] - 1c7f6: 2b09 cmp r3, #9 - 1c7f8: f200 82ee bhi.w 1cdd8 <_vfiprintf_r+0x970> - 1c7fc: 3330 adds r3, #48 ; 0x30 - 1c7fe: f88d 3067 strb.w r3, [sp, #103] ; 0x67 - 1c802: 2301 movs r3, #1 - 1c804: 9502 str r5, [sp, #8] - 1c806: 9303 str r3, [sp, #12] - 1c808: f10d 0467 add.w r4, sp, #103 ; 0x67 - 1c80c: e11b b.n 1ca46 <_vfiprintf_r+0x5de> - 1c80e: f7fe fc1d bl 1b04c <__sinit> - 1c812: e636 b.n 1c482 <_vfiprintf_r+0x1a> - 1c814: 9b06 ldr r3, [sp, #24] - 1c816: f853 4b04 ldr.w r4, [r3], #4 - 1c81a: 2c00 cmp r4, #0 - 1c81c: f280 82f1 bge.w 1ce02 <_vfiprintf_r+0x99a> - 1c820: 4264 negs r4, r4 - 1c822: 9306 str r3, [sp, #24] - 1c824: f045 0504 orr.w r5, r5, #4 - 1c828: e671 b.n 1c50e <_vfiprintf_r+0xa6> - 1c82a: f817 2b01 ldrb.w r2, [r7], #1 - 1c82e: 2a2a cmp r2, #42 ; 0x2a - 1c830: f000 8376 beq.w 1cf20 <_vfiprintf_r+0xab8> - 1c834: f1a2 0330 sub.w r3, r2, #48 ; 0x30 - 1c838: 2b09 cmp r3, #9 - 1c83a: f04f 0a00 mov.w sl, #0 - 1c83e: f63f ae68 bhi.w 1c512 <_vfiprintf_r+0xaa> - 1c842: f817 2b01 ldrb.w r2, [r7], #1 - 1c846: eb0a 0a8a add.w sl, sl, sl, lsl #2 - 1c84a: eb03 0a4a add.w sl, r3, sl, lsl #1 - 1c84e: f1a2 0330 sub.w r3, r2, #48 ; 0x30 - 1c852: 2b09 cmp r3, #9 - 1c854: d9f5 bls.n 1c842 <_vfiprintf_r+0x3da> - 1c856: e65c b.n 1c512 <_vfiprintf_r+0xaa> - 1c858: 9405 str r4, [sp, #20] - 1c85a: 2900 cmp r1, #0 - 1c85c: f040 8346 bne.w 1ceec <_vfiprintf_r+0xa84> - 1c860: 4b94 ldr r3, [pc, #592] ; (1cab4 <_vfiprintf_r+0x64c>) - 1c862: 9309 str r3, [sp, #36] ; 0x24 - 1c864: 9906 ldr r1, [sp, #24] - 1c866: 06ec lsls r4, r5, #27 - 1c868: f851 3b04 ldr.w r3, [r1], #4 - 1c86c: 9106 str r1, [sp, #24] - 1c86e: d402 bmi.n 1c876 <_vfiprintf_r+0x40e> - 1c870: 0668 lsls r0, r5, #25 - 1c872: bf48 it mi - 1c874: b29b uxthmi r3, r3 - 1c876: 07e9 lsls r1, r5, #31 - 1c878: d502 bpl.n 1c880 <_vfiprintf_r+0x418> - 1c87a: 2b00 cmp r3, #0 - 1c87c: f040 82ce bne.w 1ce1c <_vfiprintf_r+0x9b4> - 1c880: 2202 movs r2, #2 - 1c882: 2100 movs r1, #0 - 1c884: f1ba 3fff cmp.w sl, #4294967295 ; 0xffffffff - 1c888: f88d 102f strb.w r1, [sp, #47] ; 0x2f - 1c88c: f000 80c0 beq.w 1ca10 <_vfiprintf_r+0x5a8> - 1c890: f025 0080 bic.w r0, r5, #128 ; 0x80 - 1c894: 9002 str r0, [sp, #8] - 1c896: 2b00 cmp r3, #0 - 1c898: f040 80b9 bne.w 1ca0e <_vfiprintf_r+0x5a6> - 1c89c: f1ba 0f00 cmp.w sl, #0 - 1c8a0: f040 80e7 bne.w 1ca72 <_vfiprintf_r+0x60a> - 1c8a4: 2a00 cmp r2, #0 - 1c8a6: f040 827c bne.w 1cda2 <_vfiprintf_r+0x93a> - 1c8aa: f015 0301 ands.w r3, r5, #1 - 1c8ae: 9303 str r3, [sp, #12] - 1c8b0: f000 82aa beq.w 1ce08 <_vfiprintf_r+0x9a0> - 1c8b4: 2330 movs r3, #48 ; 0x30 - 1c8b6: f88d 3067 strb.w r3, [sp, #103] ; 0x67 - 1c8ba: f10d 0467 add.w r4, sp, #103 ; 0x67 - 1c8be: e0c2 b.n 1ca46 <_vfiprintf_r+0x5de> - 1c8c0: 9405 str r4, [sp, #20] - 1c8c2: 2900 cmp r1, #0 - 1c8c4: f040 8315 bne.w 1cef2 <_vfiprintf_r+0xa8a> - 1c8c8: 9a06 ldr r2, [sp, #24] - 1c8ca: f852 3b04 ldr.w r3, [r2], #4 - 1c8ce: 9206 str r2, [sp, #24] - 1c8d0: 06ea lsls r2, r5, #27 - 1c8d2: d402 bmi.n 1c8da <_vfiprintf_r+0x472> - 1c8d4: 066e lsls r6, r5, #25 - 1c8d6: bf48 it mi - 1c8d8: b29b uxthmi r3, r3 - 1c8da: 2201 movs r2, #1 - 1c8dc: e7d1 b.n 1c882 <_vfiprintf_r+0x41a> - 1c8de: 9e06 ldr r6, [sp, #24] - 1c8e0: 9405 str r4, [sp, #20] - 1c8e2: f856 4b04 ldr.w r4, [r6], #4 - 1c8e6: f04f 0300 mov.w r3, #0 - 1c8ea: f88d 302f strb.w r3, [sp, #47] ; 0x2f - 1c8ee: 2c00 cmp r4, #0 - 1c8f0: f000 82c7 beq.w 1ce82 <_vfiprintf_r+0xa1a> - 1c8f4: f1ba 3fff cmp.w sl, #4294967295 ; 0xffffffff - 1c8f8: f000 82ac beq.w 1ce54 <_vfiprintf_r+0x9ec> - 1c8fc: 4652 mov r2, sl - 1c8fe: 2100 movs r1, #0 - 1c900: 4620 mov r0, r4 - 1c902: f7ff f83d bl 1b980 - 1c906: 2800 cmp r0, #0 - 1c908: f000 82df beq.w 1ceca <_vfiprintf_r+0xa62> - 1c90c: 1b03 subs r3, r0, r4 - 1c90e: f89d 102f ldrb.w r1, [sp, #47] ; 0x2f - 1c912: 9303 str r3, [sp, #12] - 1c914: 9606 str r6, [sp, #24] - 1c916: 9502 str r5, [sp, #8] - 1c918: f04f 0a00 mov.w sl, #0 - 1c91c: e093 b.n 1ca46 <_vfiprintf_r+0x5de> - 1c91e: 9a06 ldr r2, [sp, #24] - 1c920: 9405 str r4, [sp, #20] - 1c922: f852 3b04 ldr.w r3, [r2], #4 - 1c926: 9206 str r2, [sp, #24] - 1c928: f647 0230 movw r2, #30768 ; 0x7830 - 1c92c: f8ad 2030 strh.w r2, [sp, #48] ; 0x30 - 1c930: 4a60 ldr r2, [pc, #384] ; (1cab4 <_vfiprintf_r+0x64c>) - 1c932: 9209 str r2, [sp, #36] ; 0x24 - 1c934: f045 0502 orr.w r5, r5, #2 - 1c938: 2202 movs r2, #2 - 1c93a: e7a2 b.n 1c882 <_vfiprintf_r+0x41a> - 1c93c: 9b06 ldr r3, [sp, #24] - 1c93e: 9405 str r4, [sp, #20] - 1c940: f04f 0200 mov.w r2, #0 - 1c944: f88d 202f strb.w r2, [sp, #47] ; 0x2f - 1c948: f853 2b04 ldr.w r2, [r3], #4 - 1c94c: 9306 str r3, [sp, #24] - 1c94e: 2301 movs r3, #1 - 1c950: f88d 2040 strb.w r2, [sp, #64] ; 0x40 - 1c954: 9301 str r3, [sp, #4] - 1c956: 9303 str r3, [sp, #12] - 1c958: ac10 add r4, sp, #64 ; 0x40 - 1c95a: e6a2 b.n 1c6a2 <_vfiprintf_r+0x23a> - 1c95c: 9405 str r4, [sp, #20] - 1c95e: 2900 cmp r1, #0 - 1c960: f040 82ca bne.w 1cef8 <_vfiprintf_r+0xa90> - 1c964: 4b54 ldr r3, [pc, #336] ; (1cab8 <_vfiprintf_r+0x650>) - 1c966: 9309 str r3, [sp, #36] ; 0x24 - 1c968: e77c b.n 1c864 <_vfiprintf_r+0x3fc> - 1c96a: 9a06 ldr r2, [sp, #24] - 1c96c: 9405 str r4, [sp, #20] - 1c96e: f852 3b04 ldr.w r3, [r2], #4 - 1c972: 9206 str r2, [sp, #24] - 1c974: f045 0510 orr.w r5, r5, #16 - 1c978: e7af b.n 1c8da <_vfiprintf_r+0x472> - 1c97a: 9a06 ldr r2, [sp, #24] - 1c97c: 9405 str r4, [sp, #20] - 1c97e: f852 3b04 ldr.w r3, [r2], #4 - 1c982: 9206 str r2, [sp, #24] - 1c984: f045 0510 orr.w r5, r5, #16 - 1c988: 2200 movs r2, #0 - 1c98a: e77a b.n 1c882 <_vfiprintf_r+0x41a> - 1c98c: 9405 str r4, [sp, #20] - 1c98e: 2900 cmp r1, #0 - 1c990: f040 82a3 bne.w 1ceda <_vfiprintf_r+0xa72> - 1c994: 9a06 ldr r2, [sp, #24] - 1c996: f015 0110 ands.w r1, r5, #16 - 1c99a: f852 3b04 ldr.w r3, [r2], #4 - 1c99e: 9206 str r2, [sp, #24] - 1c9a0: d1f2 bne.n 1c988 <_vfiprintf_r+0x520> - 1c9a2: f015 0240 ands.w r2, r5, #64 ; 0x40 - 1c9a6: f43f af6c beq.w 1c882 <_vfiprintf_r+0x41a> - 1c9aa: b29b uxth r3, r3 - 1c9ac: 460a mov r2, r1 - 1c9ae: e768 b.n 1c882 <_vfiprintf_r+0x41a> - 1c9b0: 2900 cmp r1, #0 - 1c9b2: f040 8295 bne.w 1cee0 <_vfiprintf_r+0xa78> - 1c9b6: 9a06 ldr r2, [sp, #24] - 1c9b8: 06e8 lsls r0, r5, #27 - 1c9ba: f102 0304 add.w r3, r2, #4 - 1c9be: d407 bmi.n 1c9d0 <_vfiprintf_r+0x568> - 1c9c0: 0669 lsls r1, r5, #25 - 1c9c2: 9a06 ldr r2, [sp, #24] - 1c9c4: d504 bpl.n 1c9d0 <_vfiprintf_r+0x568> - 1c9c6: 6812 ldr r2, [r2, #0] - 1c9c8: 9904 ldr r1, [sp, #16] - 1c9ca: 8011 strh r1, [r2, #0] - 1c9cc: 9306 str r3, [sp, #24] - 1c9ce: e57e b.n 1c4ce <_vfiprintf_r+0x66> - 1c9d0: 6812 ldr r2, [r2, #0] - 1c9d2: 9904 ldr r1, [sp, #16] - 1c9d4: 6011 str r1, [r2, #0] - 1c9d6: 9306 str r3, [sp, #24] - 1c9d8: e579 b.n 1c4ce <_vfiprintf_r+0x66> - 1c9da: f045 0540 orr.w r5, r5, #64 ; 0x40 - 1c9de: e596 b.n 1c50e <_vfiprintf_r+0xa6> - 1c9e0: f045 0501 orr.w r5, r5, #1 - 1c9e4: e593 b.n 1c50e <_vfiprintf_r+0xa6> - 1c9e6: 2800 cmp r0, #0 - 1c9e8: f47f ad91 bne.w 1c50e <_vfiprintf_r+0xa6> - 1c9ec: 2101 movs r1, #1 - 1c9ee: 2020 movs r0, #32 - 1c9f0: e58d b.n 1c50e <_vfiprintf_r+0xa6> - 1c9f2: 9405 str r4, [sp, #20] - 1c9f4: 2900 cmp r1, #0 - 1c9f6: f040 8276 bne.w 1cee6 <_vfiprintf_r+0xa7e> - 1c9fa: 9b06 ldr r3, [sp, #24] - 1c9fc: f853 2b04 ldr.w r2, [r3], #4 - 1ca00: 9306 str r3, [sp, #24] - 1ca02: f045 0510 orr.w r5, r5, #16 - 1ca06: e6e6 b.n 1c7d6 <_vfiprintf_r+0x36e> - 1ca08: f045 0580 orr.w r5, r5, #128 ; 0x80 - 1ca0c: e57f b.n 1c50e <_vfiprintf_r+0xa6> - 1ca0e: 9d02 ldr r5, [sp, #8] - 1ca10: 2a01 cmp r2, #1 - 1ca12: f43f aef0 beq.w 1c7f6 <_vfiprintf_r+0x38e> - 1ca16: 2a02 cmp r2, #2 - 1ca18: d031 beq.n 1ca7e <_vfiprintf_r+0x616> - 1ca1a: ac1a add r4, sp, #104 ; 0x68 - 1ca1c: f003 0207 and.w r2, r3, #7 - 1ca20: 3230 adds r2, #48 ; 0x30 - 1ca22: 08db lsrs r3, r3, #3 - 1ca24: 4620 mov r0, r4 - 1ca26: f804 2d01 strb.w r2, [r4, #-1]! - 1ca2a: d1f7 bne.n 1ca1c <_vfiprintf_r+0x5b4> - 1ca2c: 07ee lsls r6, r5, #31 - 1ca2e: d52f bpl.n 1ca90 <_vfiprintf_r+0x628> - 1ca30: 2a30 cmp r2, #48 ; 0x30 - 1ca32: d02d beq.n 1ca90 <_vfiprintf_r+0x628> - 1ca34: 2330 movs r3, #48 ; 0x30 - 1ca36: 3802 subs r0, #2 - 1ca38: f804 3c01 strb.w r3, [r4, #-1] - 1ca3c: ab1a add r3, sp, #104 ; 0x68 - 1ca3e: 1a1b subs r3, r3, r0 - 1ca40: 9502 str r5, [sp, #8] - 1ca42: 9303 str r3, [sp, #12] - 1ca44: 4604 mov r4, r0 - 1ca46: 9b03 ldr r3, [sp, #12] - 1ca48: 4553 cmp r3, sl - 1ca4a: bfb8 it lt - 1ca4c: 4653 movlt r3, sl - 1ca4e: 9301 str r3, [sp, #4] - 1ca50: 2900 cmp r1, #0 - 1ca52: f43f ae29 beq.w 1c6a8 <_vfiprintf_r+0x240> - 1ca56: 3301 adds r3, #1 - 1ca58: 9301 str r3, [sp, #4] - 1ca5a: e625 b.n 1c6a8 <_vfiprintf_r+0x240> - 1ca5c: 9b03 ldr r3, [sp, #12] - 1ca5e: 941a str r4, [sp, #104] ; 0x68 - 1ca60: 2201 movs r2, #1 - 1ca62: 931b str r3, [sp, #108] ; 0x6c - 1ca64: 930f str r3, [sp, #60] ; 0x3c - 1ca66: 920e str r2, [sp, #56] ; 0x38 - 1ca68: f10d 0968 add.w r9, sp, #104 ; 0x68 - 1ca6c: f109 0908 add.w r9, r9, #8 - 1ca70: e68b b.n 1c78a <_vfiprintf_r+0x322> - 1ca72: 2a01 cmp r2, #1 - 1ca74: f000 8227 beq.w 1cec6 <_vfiprintf_r+0xa5e> - 1ca78: 2a02 cmp r2, #2 - 1ca7a: 9d02 ldr r5, [sp, #8] - 1ca7c: d1cd bne.n 1ca1a <_vfiprintf_r+0x5b2> - 1ca7e: 9809 ldr r0, [sp, #36] ; 0x24 - 1ca80: ac1a add r4, sp, #104 ; 0x68 - 1ca82: f003 020f and.w r2, r3, #15 - 1ca86: 091b lsrs r3, r3, #4 - 1ca88: 5c82 ldrb r2, [r0, r2] - 1ca8a: f804 2d01 strb.w r2, [r4, #-1]! - 1ca8e: d1f8 bne.n 1ca82 <_vfiprintf_r+0x61a> - 1ca90: ab1a add r3, sp, #104 ; 0x68 - 1ca92: 1b1b subs r3, r3, r4 - 1ca94: 9502 str r5, [sp, #8] - 1ca96: 9303 str r3, [sp, #12] - 1ca98: e7d5 b.n 1ca46 <_vfiprintf_r+0x5de> - 1ca9a: 9b05 ldr r3, [sp, #20] - 1ca9c: 9801 ldr r0, [sp, #4] - 1ca9e: 1a1e subs r6, r3, r0 - 1caa0: 2e00 cmp r6, #0 - 1caa2: f77f ae52 ble.w 1c74a <_vfiprintf_r+0x2e2> - 1caa6: 2e10 cmp r6, #16 - 1caa8: f340 8232 ble.w 1cf10 <_vfiprintf_r+0xaa8> - 1caac: 4d03 ldr r5, [pc, #12] ; (1cabc <_vfiprintf_r+0x654>) - 1caae: 4663 mov r3, ip - 1cab0: e00d b.n 1cace <_vfiprintf_r+0x666> - 1cab2: bf00 nop - 1cab4: 0002c164 .word 0x0002c164 - 1cab8: 0002c150 .word 0x0002c150 - 1cabc: 0002c40c .word 0x0002c40c - 1cac0: 1c91 adds r1, r2, #2 - 1cac2: f109 0908 add.w r9, r9, #8 - 1cac6: 4602 mov r2, r0 - 1cac8: 3e10 subs r6, #16 - 1caca: 2e10 cmp r6, #16 - 1cacc: dd1d ble.n 1cb0a <_vfiprintf_r+0x6a2> - 1cace: 1c50 adds r0, r2, #1 - 1cad0: 3310 adds r3, #16 - 1cad2: 2110 movs r1, #16 - 1cad4: 2807 cmp r0, #7 - 1cad6: e9cd 030e strd r0, r3, [sp, #56] ; 0x38 - 1cada: f8c9 5000 str.w r5, [r9] - 1cade: f8c9 1004 str.w r1, [r9, #4] - 1cae2: dded ble.n 1cac0 <_vfiprintf_r+0x658> - 1cae4: aa0d add r2, sp, #52 ; 0x34 - 1cae6: 2b00 cmp r3, #0 - 1cae8: d078 beq.n 1cbdc <_vfiprintf_r+0x774> - 1caea: 4641 mov r1, r8 - 1caec: 4658 mov r0, fp - 1caee: f10d 0968 add.w r9, sp, #104 ; 0x68 - 1caf2: f7ff fc73 bl 1c3dc <__sprint_r.part.0> - 1caf6: 2800 cmp r0, #0 - 1caf8: f47f adba bne.w 1c670 <_vfiprintf_r+0x208> - 1cafc: e9dd 230e ldrd r2, r3, [sp, #56] ; 0x38 - 1cb00: 3e10 subs r6, #16 - 1cb02: 2e10 cmp r6, #16 - 1cb04: f102 0101 add.w r1, r2, #1 - 1cb08: dce1 bgt.n 1cace <_vfiprintf_r+0x666> - 1cb0a: 4608 mov r0, r1 - 1cb0c: 469c mov ip, r3 - 1cb0e: 44b4 add ip, r6 - 1cb10: 2807 cmp r0, #7 - 1cb12: e9cd 0c0e strd r0, ip, [sp, #56] ; 0x38 - 1cb16: f8c9 5000 str.w r5, [r9] - 1cb1a: f8c9 6004 str.w r6, [r9, #4] - 1cb1e: f340 8175 ble.w 1ce0c <_vfiprintf_r+0x9a4> - 1cb22: f1bc 0f00 cmp.w ip, #0 - 1cb26: f000 81b5 beq.w 1ce94 <_vfiprintf_r+0xa2c> - 1cb2a: aa0d add r2, sp, #52 ; 0x34 - 1cb2c: 4641 mov r1, r8 - 1cb2e: 4658 mov r0, fp - 1cb30: f7ff fc54 bl 1c3dc <__sprint_r.part.0> - 1cb34: 2800 cmp r0, #0 - 1cb36: f47f ad9b bne.w 1c670 <_vfiprintf_r+0x208> - 1cb3a: 9b03 ldr r3, [sp, #12] - 1cb3c: e9dd 2c0e ldrd r2, ip, [sp, #56] ; 0x38 - 1cb40: ebaa 0603 sub.w r6, sl, r3 - 1cb44: 2e00 cmp r6, #0 - 1cb46: f102 0101 add.w r1, r2, #1 - 1cb4a: f10d 0968 add.w r9, sp, #104 ; 0x68 - 1cb4e: f77f ae02 ble.w 1c756 <_vfiprintf_r+0x2ee> - 1cb52: 2e10 cmp r6, #16 - 1cb54: 4dbc ldr r5, [pc, #752] ; (1ce48 <_vfiprintf_r+0x9e0>) - 1cb56: dd25 ble.n 1cba4 <_vfiprintf_r+0x73c> - 1cb58: f04f 0a10 mov.w sl, #16 - 1cb5c: 4663 mov r3, ip - 1cb5e: e006 b.n 1cb6e <_vfiprintf_r+0x706> - 1cb60: 1c91 adds r1, r2, #2 - 1cb62: f109 0908 add.w r9, r9, #8 - 1cb66: 4602 mov r2, r0 - 1cb68: 3e10 subs r6, #16 - 1cb6a: 2e10 cmp r6, #16 - 1cb6c: dd19 ble.n 1cba2 <_vfiprintf_r+0x73a> - 1cb6e: 1c50 adds r0, r2, #1 - 1cb70: 3310 adds r3, #16 - 1cb72: 2807 cmp r0, #7 - 1cb74: e9c9 5a00 strd r5, sl, [r9] - 1cb78: e9cd 030e strd r0, r3, [sp, #56] ; 0x38 - 1cb7c: ddf0 ble.n 1cb60 <_vfiprintf_r+0x6f8> - 1cb7e: aa0d add r2, sp, #52 ; 0x34 - 1cb80: 4641 mov r1, r8 - 1cb82: b1eb cbz r3, 1cbc0 <_vfiprintf_r+0x758> - 1cb84: 4658 mov r0, fp - 1cb86: f10d 0968 add.w r9, sp, #104 ; 0x68 - 1cb8a: f7ff fc27 bl 1c3dc <__sprint_r.part.0> - 1cb8e: 2800 cmp r0, #0 - 1cb90: f47f ad6e bne.w 1c670 <_vfiprintf_r+0x208> - 1cb94: e9dd 230e ldrd r2, r3, [sp, #56] ; 0x38 - 1cb98: 3e10 subs r6, #16 - 1cb9a: 2e10 cmp r6, #16 - 1cb9c: f102 0101 add.w r1, r2, #1 - 1cba0: dce5 bgt.n 1cb6e <_vfiprintf_r+0x706> - 1cba2: 469c mov ip, r3 - 1cba4: 44b4 add ip, r6 - 1cba6: 2907 cmp r1, #7 - 1cba8: e9cd 1c0e strd r1, ip, [sp, #56] ; 0x38 - 1cbac: f8c9 5000 str.w r5, [r9] - 1cbb0: f8c9 6004 str.w r6, [r9, #4] - 1cbb4: f300 80d2 bgt.w 1cd5c <_vfiprintf_r+0x8f4> - 1cbb8: f109 0908 add.w r9, r9, #8 - 1cbbc: 3101 adds r1, #1 - 1cbbe: e5ca b.n 1c756 <_vfiprintf_r+0x2ee> - 1cbc0: 2101 movs r1, #1 - 1cbc2: 461a mov r2, r3 - 1cbc4: f10d 0968 add.w r9, sp, #104 ; 0x68 - 1cbc8: e7ce b.n 1cb68 <_vfiprintf_r+0x700> - 1cbca: aa0d add r2, sp, #52 ; 0x34 - 1cbcc: 4641 mov r1, r8 - 1cbce: 4658 mov r0, fp - 1cbd0: f7ff fc04 bl 1c3dc <__sprint_r.part.0> - 1cbd4: 2800 cmp r0, #0 - 1cbd6: f43f adec beq.w 1c7b2 <_vfiprintf_r+0x34a> - 1cbda: e549 b.n 1c670 <_vfiprintf_r+0x208> - 1cbdc: 2101 movs r1, #1 - 1cbde: 461a mov r2, r3 - 1cbe0: f10d 0968 add.w r9, sp, #104 ; 0x68 - 1cbe4: e770 b.n 1cac8 <_vfiprintf_r+0x660> - 1cbe6: f1bc 0f00 cmp.w ip, #0 - 1cbea: f000 80ca beq.w 1cd82 <_vfiprintf_r+0x91a> - 1cbee: aa0d add r2, sp, #52 ; 0x34 - 1cbf0: 4641 mov r1, r8 - 1cbf2: 4658 mov r0, fp - 1cbf4: f7ff fbf2 bl 1c3dc <__sprint_r.part.0> - 1cbf8: 2800 cmp r0, #0 - 1cbfa: f47f ad39 bne.w 1c670 <_vfiprintf_r+0x208> - 1cbfe: e9dd 2c0e ldrd r2, ip, [sp, #56] ; 0x38 - 1cc02: f10d 0968 add.w r9, sp, #104 ; 0x68 - 1cc06: 1c51 adds r1, r2, #1 - 1cc08: e57b b.n 1c702 <_vfiprintf_r+0x29a> - 1cc0a: 2302 movs r3, #2 - 1cc0c: 931b str r3, [sp, #108] ; 0x6c - 1cc0e: 469c mov ip, r3 - 1cc10: ab0c add r3, sp, #48 ; 0x30 - 1cc12: 931a str r3, [sp, #104] ; 0x68 - 1cc14: 2101 movs r1, #1 - 1cc16: f10d 0968 add.w r9, sp, #104 ; 0x68 - 1cc1a: 460a mov r2, r1 - 1cc1c: f109 0908 add.w r9, r9, #8 - 1cc20: 1c51 adds r1, r2, #1 - 1cc22: e58e b.n 1c742 <_vfiprintf_r+0x2da> - 1cc24: 2d10 cmp r5, #16 - 1cc26: f340 816a ble.w 1cefe <_vfiprintf_r+0xa96> - 1cc2a: 4649 mov r1, r9 - 1cc2c: 4e87 ldr r6, [pc, #540] ; (1ce4c <_vfiprintf_r+0x9e4>) - 1cc2e: 46b9 mov r9, r7 - 1cc30: 2310 movs r3, #16 - 1cc32: 4627 mov r7, r4 - 1cc34: 4664 mov r4, ip - 1cc36: e007 b.n 1cc48 <_vfiprintf_r+0x7e0> - 1cc38: f102 0e02 add.w lr, r2, #2 - 1cc3c: 3108 adds r1, #8 - 1cc3e: 4602 mov r2, r0 - 1cc40: 3d10 subs r5, #16 - 1cc42: 2d10 cmp r5, #16 - 1cc44: dd1a ble.n 1cc7c <_vfiprintf_r+0x814> - 1cc46: 1c50 adds r0, r2, #1 - 1cc48: 3410 adds r4, #16 - 1cc4a: 2807 cmp r0, #7 - 1cc4c: e9c1 6300 strd r6, r3, [r1] - 1cc50: e9cd 040e strd r0, r4, [sp, #56] ; 0x38 - 1cc54: ddf0 ble.n 1cc38 <_vfiprintf_r+0x7d0> - 1cc56: aa0d add r2, sp, #52 ; 0x34 - 1cc58: 4641 mov r1, r8 - 1cc5a: 4658 mov r0, fp - 1cc5c: b31c cbz r4, 1cca6 <_vfiprintf_r+0x83e> - 1cc5e: f7ff fbbd bl 1c3dc <__sprint_r.part.0> - 1cc62: 2800 cmp r0, #0 - 1cc64: f47f ad04 bne.w 1c670 <_vfiprintf_r+0x208> - 1cc68: e9dd 240e ldrd r2, r4, [sp, #56] ; 0x38 - 1cc6c: 3d10 subs r5, #16 - 1cc6e: 2d10 cmp r5, #16 - 1cc70: f102 0e01 add.w lr, r2, #1 - 1cc74: a91a add r1, sp, #104 ; 0x68 - 1cc76: f04f 0310 mov.w r3, #16 - 1cc7a: dce4 bgt.n 1cc46 <_vfiprintf_r+0x7de> - 1cc7c: 46a4 mov ip, r4 - 1cc7e: 463c mov r4, r7 - 1cc80: 464f mov r7, r9 - 1cc82: 4689 mov r9, r1 - 1cc84: 44ac add ip, r5 - 1cc86: f1be 0f07 cmp.w lr, #7 - 1cc8a: e9cd ec0e strd lr, ip, [sp, #56] ; 0x38 - 1cc8e: f8c9 6000 str.w r6, [r9] - 1cc92: f8c9 5004 str.w r5, [r9, #4] - 1cc96: f300 808e bgt.w 1cdb6 <_vfiprintf_r+0x94e> - 1cc9a: f109 0908 add.w r9, r9, #8 - 1cc9e: f10e 0101 add.w r1, lr, #1 - 1cca2: 4672 mov r2, lr - 1cca4: e517 b.n 1c6d6 <_vfiprintf_r+0x26e> - 1cca6: 4622 mov r2, r4 - 1cca8: f04f 0e01 mov.w lr, #1 - 1ccac: a91a add r1, sp, #104 ; 0x68 - 1ccae: e7c7 b.n 1cc40 <_vfiprintf_r+0x7d8> - 1ccb0: 9a02 ldr r2, [sp, #8] - 1ccb2: 930e str r3, [sp, #56] ; 0x38 - 1ccb4: 0751 lsls r1, r2, #29 - 1ccb6: d548 bpl.n 1cd4a <_vfiprintf_r+0x8e2> - 1ccb8: 9a05 ldr r2, [sp, #20] - 1ccba: 9901 ldr r1, [sp, #4] - 1ccbc: 1a54 subs r4, r2, r1 - 1ccbe: 2c00 cmp r4, #0 - 1ccc0: dd43 ble.n 1cd4a <_vfiprintf_r+0x8e2> - 1ccc2: f10d 0968 add.w r9, sp, #104 ; 0x68 - 1ccc6: 2c10 cmp r4, #16 - 1ccc8: 990e ldr r1, [sp, #56] ; 0x38 - 1ccca: f340 811e ble.w 1cf0a <_vfiprintf_r+0xaa2> - 1ccce: 4e5f ldr r6, [pc, #380] ; (1ce4c <_vfiprintf_r+0x9e4>) - 1ccd0: 2510 movs r5, #16 - 1ccd2: 4608 mov r0, r1 - 1ccd4: e006 b.n 1cce4 <_vfiprintf_r+0x87c> - 1ccd6: 1c81 adds r1, r0, #2 - 1ccd8: f109 0908 add.w r9, r9, #8 - 1ccdc: 4610 mov r0, r2 - 1ccde: 3c10 subs r4, #16 - 1cce0: 2c10 cmp r4, #16 - 1cce2: dd19 ble.n 1cd18 <_vfiprintf_r+0x8b0> - 1cce4: 1c42 adds r2, r0, #1 - 1cce6: 3310 adds r3, #16 - 1cce8: 2a07 cmp r2, #7 - 1ccea: e9c9 6500 strd r6, r5, [r9] - 1ccee: e9cd 230e strd r2, r3, [sp, #56] ; 0x38 - 1ccf2: ddf0 ble.n 1ccd6 <_vfiprintf_r+0x86e> - 1ccf4: aa0d add r2, sp, #52 ; 0x34 - 1ccf6: b31b cbz r3, 1cd40 <_vfiprintf_r+0x8d8> - 1ccf8: 4641 mov r1, r8 - 1ccfa: 4658 mov r0, fp - 1ccfc: f7ff fb6e bl 1c3dc <__sprint_r.part.0> - 1cd00: 2800 cmp r0, #0 - 1cd02: f47f acb5 bne.w 1c670 <_vfiprintf_r+0x208> - 1cd06: e9dd 030e ldrd r0, r3, [sp, #56] ; 0x38 - 1cd0a: 3c10 subs r4, #16 - 1cd0c: 2c10 cmp r4, #16 - 1cd0e: f100 0101 add.w r1, r0, #1 - 1cd12: f10d 0968 add.w r9, sp, #104 ; 0x68 - 1cd16: dce5 bgt.n 1cce4 <_vfiprintf_r+0x87c> - 1cd18: 4608 mov r0, r1 - 1cd1a: 4423 add r3, r4 - 1cd1c: 2807 cmp r0, #7 - 1cd1e: e9c9 6400 strd r6, r4, [r9] - 1cd22: e9cd 030e strd r0, r3, [sp, #56] ; 0x38 - 1cd26: f77f ad39 ble.w 1c79c <_vfiprintf_r+0x334> - 1cd2a: b173 cbz r3, 1cd4a <_vfiprintf_r+0x8e2> - 1cd2c: aa0d add r2, sp, #52 ; 0x34 - 1cd2e: 4641 mov r1, r8 - 1cd30: 4658 mov r0, fp - 1cd32: f7ff fb53 bl 1c3dc <__sprint_r.part.0> - 1cd36: 2800 cmp r0, #0 - 1cd38: f47f ac9a bne.w 1c670 <_vfiprintf_r+0x208> - 1cd3c: 9b0f ldr r3, [sp, #60] ; 0x3c - 1cd3e: e52d b.n 1c79c <_vfiprintf_r+0x334> - 1cd40: 2101 movs r1, #1 - 1cd42: 4618 mov r0, r3 - 1cd44: f10d 0968 add.w r9, sp, #104 ; 0x68 - 1cd48: e7c9 b.n 1ccde <_vfiprintf_r+0x876> - 1cd4a: e9dd 3204 ldrd r3, r2, [sp, #16] - 1cd4e: 9901 ldr r1, [sp, #4] - 1cd50: 428a cmp r2, r1 - 1cd52: bfac ite ge - 1cd54: 189b addge r3, r3, r2 - 1cd56: 185b addlt r3, r3, r1 - 1cd58: 9304 str r3, [sp, #16] - 1cd5a: e52a b.n 1c7b2 <_vfiprintf_r+0x34a> - 1cd5c: f1bc 0f00 cmp.w ip, #0 - 1cd60: f43f ae7c beq.w 1ca5c <_vfiprintf_r+0x5f4> - 1cd64: aa0d add r2, sp, #52 ; 0x34 - 1cd66: 4641 mov r1, r8 - 1cd68: 4658 mov r0, fp - 1cd6a: f7ff fb37 bl 1c3dc <__sprint_r.part.0> - 1cd6e: 2800 cmp r0, #0 - 1cd70: f47f ac7e bne.w 1c670 <_vfiprintf_r+0x208> - 1cd74: 990e ldr r1, [sp, #56] ; 0x38 - 1cd76: f8dd c03c ldr.w ip, [sp, #60] ; 0x3c - 1cd7a: 3101 adds r1, #1 - 1cd7c: f10d 0968 add.w r9, sp, #104 ; 0x68 - 1cd80: e4e9 b.n 1c756 <_vfiprintf_r+0x2ee> - 1cd82: 9b07 ldr r3, [sp, #28] - 1cd84: 2b00 cmp r3, #0 - 1cd86: d152 bne.n 1ce2e <_vfiprintf_r+0x9c6> - 1cd88: 2101 movs r1, #1 - 1cd8a: 4662 mov r2, ip - 1cd8c: f10d 0968 add.w r9, sp, #104 ; 0x68 - 1cd90: e4d7 b.n 1c742 <_vfiprintf_r+0x2da> - 1cd92: 920e str r2, [sp, #56] ; 0x38 - 1cd94: f10d 0968 add.w r9, sp, #104 ; 0x68 - 1cd98: e456 b.n 1c648 <_vfiprintf_r+0x1e0> - 1cd9a: f1ba 0f00 cmp.w sl, #0 - 1cd9e: f040 8092 bne.w 1cec6 <_vfiprintf_r+0xa5e> - 1cda2: f04f 0a00 mov.w sl, #0 - 1cda6: f8cd a00c str.w sl, [sp, #12] - 1cdaa: ac1a add r4, sp, #104 ; 0x68 - 1cdac: e64b b.n 1ca46 <_vfiprintf_r+0x5de> - 1cdae: 4253 negs r3, r2 - 1cdb0: 212d movs r1, #45 ; 0x2d - 1cdb2: 2201 movs r2, #1 - 1cdb4: e566 b.n 1c884 <_vfiprintf_r+0x41c> - 1cdb6: f1bc 0f00 cmp.w ip, #0 - 1cdba: d056 beq.n 1ce6a <_vfiprintf_r+0xa02> - 1cdbc: aa0d add r2, sp, #52 ; 0x34 - 1cdbe: 4641 mov r1, r8 - 1cdc0: 4658 mov r0, fp - 1cdc2: f7ff fb0b bl 1c3dc <__sprint_r.part.0> - 1cdc6: 2800 cmp r0, #0 - 1cdc8: f47f ac52 bne.w 1c670 <_vfiprintf_r+0x208> - 1cdcc: e9dd 2c0e ldrd r2, ip, [sp, #56] ; 0x38 - 1cdd0: f10d 0968 add.w r9, sp, #104 ; 0x68 - 1cdd4: 1c51 adds r1, r2, #1 - 1cdd6: e47e b.n 1c6d6 <_vfiprintf_r+0x26e> - 1cdd8: 4e1d ldr r6, [pc, #116] ; (1ce50 <_vfiprintf_r+0x9e8>) - 1cdda: ac1a add r4, sp, #104 ; 0x68 - 1cddc: fba6 0203 umull r0, r2, r6, r3 - 1cde0: 08d2 lsrs r2, r2, #3 - 1cde2: eb02 0082 add.w r0, r2, r2, lsl #2 - 1cde6: eba3 0040 sub.w r0, r3, r0, lsl #1 - 1cdea: 3030 adds r0, #48 ; 0x30 - 1cdec: f804 0d01 strb.w r0, [r4, #-1]! - 1cdf0: 4618 mov r0, r3 - 1cdf2: 2809 cmp r0, #9 - 1cdf4: 4613 mov r3, r2 - 1cdf6: d8f1 bhi.n 1cddc <_vfiprintf_r+0x974> - 1cdf8: ab1a add r3, sp, #104 ; 0x68 - 1cdfa: 1b1b subs r3, r3, r4 - 1cdfc: 9502 str r5, [sp, #8] - 1cdfe: 9303 str r3, [sp, #12] - 1ce00: e621 b.n 1ca46 <_vfiprintf_r+0x5de> - 1ce02: 9306 str r3, [sp, #24] - 1ce04: f7ff bb83 b.w 1c50e <_vfiprintf_r+0xa6> - 1ce08: ac1a add r4, sp, #104 ; 0x68 - 1ce0a: e61c b.n 1ca46 <_vfiprintf_r+0x5de> - 1ce0c: f109 0908 add.w r9, r9, #8 - 1ce10: 1c41 adds r1, r0, #1 - 1ce12: 4602 mov r2, r0 - 1ce14: e499 b.n 1c74a <_vfiprintf_r+0x2e2> - 1ce16: b212 sxth r2, r2 - 1ce18: 4613 mov r3, r2 - 1ce1a: e4dd b.n 1c7d8 <_vfiprintf_r+0x370> - 1ce1c: f88d 2031 strb.w r2, [sp, #49] ; 0x31 - 1ce20: 2230 movs r2, #48 ; 0x30 - 1ce22: f88d 2030 strb.w r2, [sp, #48] ; 0x30 - 1ce26: f045 0502 orr.w r5, r5, #2 - 1ce2a: 2202 movs r2, #2 - 1ce2c: e529 b.n 1c882 <_vfiprintf_r+0x41a> - 1ce2e: 2302 movs r3, #2 - 1ce30: 931b str r3, [sp, #108] ; 0x6c - 1ce32: 469c mov ip, r3 - 1ce34: ab0c add r3, sp, #48 ; 0x30 - 1ce36: 931a str r3, [sp, #104] ; 0x68 - 1ce38: f10d 0968 add.w r9, sp, #104 ; 0x68 - 1ce3c: e6ee b.n 1cc1c <_vfiprintf_r+0x7b4> - 1ce3e: 2101 movs r1, #1 - 1ce40: 202b movs r0, #43 ; 0x2b - 1ce42: f7ff bb64 b.w 1c50e <_vfiprintf_r+0xa6> - 1ce46: bf00 nop - 1ce48: 0002c40c .word 0x0002c40c - 1ce4c: 0002c3fc .word 0x0002c3fc - 1ce50: cccccccd .word 0xcccccccd - 1ce54: 4620 mov r0, r4 - 1ce56: 9606 str r6, [sp, #24] - 1ce58: 9502 str r5, [sp, #8] - 1ce5a: f7fa fb11 bl 17480 - 1ce5e: f04f 0a00 mov.w sl, #0 - 1ce62: f89d 102f ldrb.w r1, [sp, #47] ; 0x2f - 1ce66: 9003 str r0, [sp, #12] - 1ce68: e5ed b.n 1ca46 <_vfiprintf_r+0x5de> - 1ce6a: f89d 202f ldrb.w r2, [sp, #47] ; 0x2f - 1ce6e: b1b2 cbz r2, 1ce9e <_vfiprintf_r+0xa36> - 1ce70: 2101 movs r1, #1 - 1ce72: f10d 022f add.w r2, sp, #47 ; 0x2f - 1ce76: 911b str r1, [sp, #108] ; 0x6c - 1ce78: 921a str r2, [sp, #104] ; 0x68 - 1ce7a: f10d 0968 add.w r9, sp, #104 ; 0x68 - 1ce7e: 468c mov ip, r1 - 1ce80: e43b b.n 1c6fa <_vfiprintf_r+0x292> - 1ce82: 4653 mov r3, sl - 1ce84: 2b06 cmp r3, #6 - 1ce86: bf28 it cs - 1ce88: 2306 movcs r3, #6 - 1ce8a: 4c29 ldr r4, [pc, #164] ; (1cf30 <_vfiprintf_r+0xac8>) - 1ce8c: 9303 str r3, [sp, #12] - 1ce8e: 9606 str r6, [sp, #24] - 1ce90: 9301 str r3, [sp, #4] - 1ce92: e406 b.n 1c6a2 <_vfiprintf_r+0x23a> - 1ce94: 2101 movs r1, #1 - 1ce96: 4662 mov r2, ip - 1ce98: f10d 0968 add.w r9, sp, #104 ; 0x68 - 1ce9c: e455 b.n 1c74a <_vfiprintf_r+0x2e2> - 1ce9e: 9b07 ldr r3, [sp, #28] - 1cea0: 2b00 cmp r3, #0 - 1cea2: f47f aeb2 bne.w 1cc0a <_vfiprintf_r+0x7a2> - 1cea6: 4662 mov r2, ip - 1cea8: 2101 movs r1, #1 - 1ceaa: f10d 0968 add.w r9, sp, #104 ; 0x68 - 1ceae: e44c b.n 1c74a <_vfiprintf_r+0x2e2> - 1ceb0: f88d 002f strb.w r0, [sp, #47] ; 0x2f - 1ceb4: f7ff bbe9 b.w 1c68a <_vfiprintf_r+0x222> - 1ceb8: aa0d add r2, sp, #52 ; 0x34 - 1ceba: 4641 mov r1, r8 - 1cebc: 4658 mov r0, fp - 1cebe: f7ff fa8d bl 1c3dc <__sprint_r.part.0> - 1cec2: f7ff bbd5 b.w 1c670 <_vfiprintf_r+0x208> - 1cec6: 9d02 ldr r5, [sp, #8] - 1cec8: e498 b.n 1c7fc <_vfiprintf_r+0x394> - 1ceca: f8cd a00c str.w sl, [sp, #12] - 1cece: f89d 102f ldrb.w r1, [sp, #47] ; 0x2f - 1ced2: 9606 str r6, [sp, #24] - 1ced4: 9502 str r5, [sp, #8] - 1ced6: 4682 mov sl, r0 - 1ced8: e5b5 b.n 1ca46 <_vfiprintf_r+0x5de> - 1ceda: f88d 002f strb.w r0, [sp, #47] ; 0x2f - 1cede: e559 b.n 1c994 <_vfiprintf_r+0x52c> - 1cee0: f88d 002f strb.w r0, [sp, #47] ; 0x2f - 1cee4: e567 b.n 1c9b6 <_vfiprintf_r+0x54e> - 1cee6: f88d 002f strb.w r0, [sp, #47] ; 0x2f - 1ceea: e586 b.n 1c9fa <_vfiprintf_r+0x592> - 1ceec: f88d 002f strb.w r0, [sp, #47] ; 0x2f - 1cef0: e4b6 b.n 1c860 <_vfiprintf_r+0x3f8> - 1cef2: f88d 002f strb.w r0, [sp, #47] ; 0x2f - 1cef6: e4e7 b.n 1c8c8 <_vfiprintf_r+0x460> - 1cef8: f88d 002f strb.w r0, [sp, #47] ; 0x2f - 1cefc: e532 b.n 1c964 <_vfiprintf_r+0x4fc> - 1cefe: 4e0d ldr r6, [pc, #52] ; (1cf34 <_vfiprintf_r+0xacc>) - 1cf00: 4686 mov lr, r0 - 1cf02: e6bf b.n 1cc84 <_vfiprintf_r+0x81c> - 1cf04: f88d 002f strb.w r0, [sp, #47] ; 0x2f - 1cf08: e45c b.n 1c7c4 <_vfiprintf_r+0x35c> - 1cf0a: 4e0a ldr r6, [pc, #40] ; (1cf34 <_vfiprintf_r+0xacc>) - 1cf0c: 1c48 adds r0, r1, #1 - 1cf0e: e704 b.n 1cd1a <_vfiprintf_r+0x8b2> - 1cf10: 4d09 ldr r5, [pc, #36] ; (1cf38 <_vfiprintf_r+0xad0>) - 1cf12: 4608 mov r0, r1 - 1cf14: e5fb b.n 1cb0e <_vfiprintf_r+0x6a6> - 1cf16: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff - 1cf1a: 9304 str r3, [sp, #16] - 1cf1c: f7ff bbad b.w 1c67a <_vfiprintf_r+0x212> - 1cf20: 9b06 ldr r3, [sp, #24] - 1cf22: f853 2b04 ldr.w r2, [r3], #4 - 1cf26: 9306 str r3, [sp, #24] - 1cf28: ea42 7ae2 orr.w sl, r2, r2, asr #31 - 1cf2c: f7ff baef b.w 1c50e <_vfiprintf_r+0xa6> - 1cf30: 0002c178 .word 0x0002c178 - 1cf34: 0002c3fc .word 0x0002c3fc - 1cf38: 0002c40c .word 0x0002c40c - -0001cf3c <__sbprintf>: - 1cf3c: b570 push {r4, r5, r6, lr} - 1cf3e: 460c mov r4, r1 - 1cf40: 8989 ldrh r1, [r1, #12] - 1cf42: f5ad 6d8d sub.w sp, sp, #1128 ; 0x468 - 1cf46: f021 0102 bic.w r1, r1, #2 - 1cf4a: f8ad 1010 strh.w r1, [sp, #16] - 1cf4e: 6e21 ldr r1, [r4, #96] ; 0x60 - 1cf50: 9119 str r1, [sp, #100] ; 0x64 - 1cf52: 89e1 ldrh r1, [r4, #14] - 1cf54: f8ad 1012 strh.w r1, [sp, #18] - 1cf58: 69e1 ldr r1, [r4, #28] - 1cf5a: 9108 str r1, [sp, #32] - 1cf5c: 6a61 ldr r1, [r4, #36] ; 0x24 - 1cf5e: 910a str r1, [sp, #40] ; 0x28 - 1cf60: a91a add r1, sp, #104 ; 0x68 - 1cf62: 9101 str r1, [sp, #4] - 1cf64: 9105 str r1, [sp, #20] - 1cf66: f44f 6180 mov.w r1, #1024 ; 0x400 - 1cf6a: 9103 str r1, [sp, #12] - 1cf6c: 9106 str r1, [sp, #24] - 1cf6e: 2100 movs r1, #0 - 1cf70: 9107 str r1, [sp, #28] - 1cf72: a901 add r1, sp, #4 - 1cf74: 4606 mov r6, r0 - 1cf76: f7ff fa77 bl 1c468 <_vfiprintf_r> - 1cf7a: 1e05 subs r5, r0, #0 - 1cf7c: db07 blt.n 1cf8e <__sbprintf+0x52> - 1cf7e: a901 add r1, sp, #4 - 1cf80: 4630 mov r0, r6 - 1cf82: f7fd ffdb bl 1af3c <_fflush_r> - 1cf86: 2800 cmp r0, #0 - 1cf88: bf18 it ne - 1cf8a: f04f 35ff movne.w r5, #4294967295 ; 0xffffffff - 1cf8e: f8bd 3010 ldrh.w r3, [sp, #16] - 1cf92: 065b lsls r3, r3, #25 - 1cf94: d503 bpl.n 1cf9e <__sbprintf+0x62> - 1cf96: 89a3 ldrh r3, [r4, #12] - 1cf98: f043 0340 orr.w r3, r3, #64 ; 0x40 - 1cf9c: 81a3 strh r3, [r4, #12] - 1cf9e: 4628 mov r0, r5 - 1cfa0: f50d 6d8d add.w sp, sp, #1128 ; 0x468 - 1cfa4: bd70 pop {r4, r5, r6, pc} - 1cfa6: bf00 nop - -0001cfa8 : - 1cfa8: b510 push {r4, lr} - 1cfaa: 4c1a ldr r4, [pc, #104] ; (1d014 ) - 1cfac: 2900 cmp r1, #0 - 1cfae: 6824 ldr r4, [r4, #0] - 1cfb0: b09a sub sp, #104 ; 0x68 - 1cfb2: db2a blt.n 1d00a - 1cfb4: 9001 str r0, [sp, #4] - 1cfb6: 9005 str r0, [sp, #20] - 1cfb8: f44f 7002 mov.w r0, #520 ; 0x208 - 1cfbc: f8ad 0010 strh.w r0, [sp, #16] - 1cfc0: d013 beq.n 1cfea - 1cfc2: 3901 subs r1, #1 - 1cfc4: f64f 70ff movw r0, #65535 ; 0xffff - 1cfc8: 9103 str r1, [sp, #12] - 1cfca: 9106 str r1, [sp, #24] - 1cfcc: f8ad 0012 strh.w r0, [sp, #18] - 1cfd0: a901 add r1, sp, #4 - 1cfd2: 4620 mov r0, r4 - 1cfd4: f7fa fac2 bl 1755c <_svfprintf_r> - 1cfd8: 1c42 adds r2, r0, #1 - 1cfda: da01 bge.n 1cfe0 - 1cfdc: 238b movs r3, #139 ; 0x8b - 1cfde: 6023 str r3, [r4, #0] - 1cfe0: 9b01 ldr r3, [sp, #4] - 1cfe2: 2200 movs r2, #0 - 1cfe4: 701a strb r2, [r3, #0] - 1cfe6: b01a add sp, #104 ; 0x68 - 1cfe8: bd10 pop {r4, pc} - 1cfea: f64f 70ff movw r0, #65535 ; 0xffff - 1cfee: 9103 str r1, [sp, #12] - 1cff0: 9106 str r1, [sp, #24] - 1cff2: f8ad 0012 strh.w r0, [sp, #18] - 1cff6: a901 add r1, sp, #4 - 1cff8: 4620 mov r0, r4 - 1cffa: f7fa faaf bl 1755c <_svfprintf_r> - 1cffe: 1c43 adds r3, r0, #1 - 1d000: da01 bge.n 1d006 - 1d002: 238b movs r3, #139 ; 0x8b - 1d004: 6023 str r3, [r4, #0] - 1d006: b01a add sp, #104 ; 0x68 - 1d008: bd10 pop {r4, pc} - 1d00a: 238b movs r3, #139 ; 0x8b - 1d00c: 6023 str r3, [r4, #0] - 1d00e: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff - 1d012: e7f8 b.n 1d006 - 1d014: 20000068 .word 0x20000068 - -0001d018 : - 1d018: b570 push {r4, r5, r6, lr} - 1d01a: 4e0b ldr r6, [pc, #44] ; (1d048 ) - 1d01c: b09a sub sp, #104 ; 0x68 - 1d01e: 4604 mov r4, r0 - 1d020: f06f 4500 mvn.w r5, #2147483648 ; 0x80000000 - 1d024: e9cd 4505 strd r4, r5, [sp, #20] - 1d028: 4613 mov r3, r2 - 1d02a: 9401 str r4, [sp, #4] - 1d02c: 460a mov r2, r1 - 1d02e: 6830 ldr r0, [r6, #0] - 1d030: 4c06 ldr r4, [pc, #24] ; (1d04c ) - 1d032: 9503 str r5, [sp, #12] - 1d034: a901 add r1, sp, #4 - 1d036: 9404 str r4, [sp, #16] - 1d038: f7fa fa90 bl 1755c <_svfprintf_r> - 1d03c: 9b01 ldr r3, [sp, #4] - 1d03e: 2200 movs r2, #0 - 1d040: 701a strb r2, [r3, #0] - 1d042: b01a add sp, #104 ; 0x68 - 1d044: bd70 pop {r4, r5, r6, pc} - 1d046: bf00 nop - 1d048: 20000068 .word 0x20000068 - 1d04c: ffff0208 .word 0xffff0208 - -0001d050 <_write_r>: - 1d050: b538 push {r3, r4, r5, lr} - 1d052: 460c mov r4, r1 - 1d054: 4d08 ldr r5, [pc, #32] ; (1d078 <_write_r+0x28>) - 1d056: 4684 mov ip, r0 - 1d058: 4611 mov r1, r2 - 1d05a: 4620 mov r0, r4 - 1d05c: 461a mov r2, r3 - 1d05e: 2300 movs r3, #0 - 1d060: 602b str r3, [r5, #0] - 1d062: 4664 mov r4, ip - 1d064: f000 fe6e bl 1dd44 <_write> - 1d068: 1c43 adds r3, r0, #1 - 1d06a: d000 beq.n 1d06e <_write_r+0x1e> - 1d06c: bd38 pop {r3, r4, r5, pc} - 1d06e: 682b ldr r3, [r5, #0] - 1d070: 2b00 cmp r3, #0 - 1d072: d0fb beq.n 1d06c <_write_r+0x1c> - 1d074: 6023 str r3, [r4, #0] - 1d076: bd38 pop {r3, r4, r5, pc} - 1d078: 20005804 .word 0x20005804 - -0001d07c <__assert_func>: - 1d07c: b500 push {lr} - 1d07e: 4c0b ldr r4, [pc, #44] ; (1d0ac <__assert_func+0x30>) - 1d080: 6825 ldr r5, [r4, #0] - 1d082: 4614 mov r4, r2 - 1d084: 68ee ldr r6, [r5, #12] - 1d086: 461a mov r2, r3 - 1d088: b085 sub sp, #20 - 1d08a: 4603 mov r3, r0 - 1d08c: 460d mov r5, r1 - 1d08e: b14c cbz r4, 1d0a4 <__assert_func+0x28> - 1d090: 4907 ldr r1, [pc, #28] ; (1d0b0 <__assert_func+0x34>) - 1d092: 9500 str r5, [sp, #0] - 1d094: e9cd 1401 strd r1, r4, [sp, #4] - 1d098: 4630 mov r0, r6 - 1d09a: 4906 ldr r1, [pc, #24] ; (1d0b4 <__assert_func+0x38>) - 1d09c: f000 f8a2 bl 1d1e4 - 1d0a0: f000 fd7a bl 1db98 - 1d0a4: 4904 ldr r1, [pc, #16] ; (1d0b8 <__assert_func+0x3c>) - 1d0a6: 460c mov r4, r1 - 1d0a8: e7f3 b.n 1d092 <__assert_func+0x16> - 1d0aa: bf00 nop - 1d0ac: 20000068 .word 0x20000068 - 1d0b0: 0002c41c .word 0x0002c41c - 1d0b4: 0002c42c .word 0x0002c42c - 1d0b8: 0002c428 .word 0x0002c428 - -0001d0bc <_calloc_r>: - 1d0bc: b538 push {r3, r4, r5, lr} - 1d0be: fba1 1402 umull r1, r4, r1, r2 - 1d0c2: bb8c cbnz r4, 1d128 <_calloc_r+0x6c> - 1d0c4: f7fe f9ac bl 1b420 <_malloc_r> - 1d0c8: 4605 mov r5, r0 - 1d0ca: b1e0 cbz r0, 1d106 <_calloc_r+0x4a> - 1d0cc: f850 2c04 ldr.w r2, [r0, #-4] - 1d0d0: f022 0203 bic.w r2, r2, #3 - 1d0d4: 3a04 subs r2, #4 - 1d0d6: 2a24 cmp r2, #36 ; 0x24 - 1d0d8: d817 bhi.n 1d10a <_calloc_r+0x4e> - 1d0da: 2a13 cmp r2, #19 - 1d0dc: d91a bls.n 1d114 <_calloc_r+0x58> - 1d0de: 2a1b cmp r2, #27 - 1d0e0: e9c0 4400 strd r4, r4, [r0] - 1d0e4: d91d bls.n 1d122 <_calloc_r+0x66> - 1d0e6: 2a24 cmp r2, #36 ; 0x24 - 1d0e8: bf14 ite ne - 1d0ea: f100 0210 addne.w r2, r0, #16 - 1d0ee: f100 0218 addeq.w r2, r0, #24 - 1d0f2: f04f 0300 mov.w r3, #0 - 1d0f6: e9c0 4402 strd r4, r4, [r0, #8] - 1d0fa: bf04 itt eq - 1d0fc: 6104 streq r4, [r0, #16] - 1d0fe: 6144 streq r4, [r0, #20] - 1d100: e9c2 3300 strd r3, r3, [r2] - 1d104: 6093 str r3, [r2, #8] - 1d106: 4628 mov r0, r5 - 1d108: bd38 pop {r3, r4, r5, pc} - 1d10a: 4621 mov r1, r4 - 1d10c: f7f9 ff20 bl 16f50 - 1d110: 4628 mov r0, r5 - 1d112: bd38 pop {r3, r4, r5, pc} - 1d114: 4602 mov r2, r0 - 1d116: 2300 movs r3, #0 - 1d118: e9c2 3300 strd r3, r3, [r2] - 1d11c: 6093 str r3, [r2, #8] - 1d11e: 4628 mov r0, r5 - 1d120: bd38 pop {r3, r4, r5, pc} - 1d122: f100 0208 add.w r2, r0, #8 - 1d126: e7f6 b.n 1d116 <_calloc_r+0x5a> - 1d128: f000 f816 bl 1d158 <__errno> - 1d12c: 230c movs r3, #12 - 1d12e: 2500 movs r5, #0 - 1d130: 6003 str r3, [r0, #0] - 1d132: e7e8 b.n 1d106 <_calloc_r+0x4a> - -0001d134 <_close_r>: - 1d134: b538 push {r3, r4, r5, lr} - 1d136: 4d07 ldr r5, [pc, #28] ; (1d154 <_close_r+0x20>) - 1d138: 2200 movs r2, #0 - 1d13a: 4604 mov r4, r0 - 1d13c: 4608 mov r0, r1 - 1d13e: 602a str r2, [r5, #0] - 1d140: f7e3 f91c bl 37c <_close> - 1d144: 1c43 adds r3, r0, #1 - 1d146: d000 beq.n 1d14a <_close_r+0x16> - 1d148: bd38 pop {r3, r4, r5, pc} - 1d14a: 682b ldr r3, [r5, #0] - 1d14c: 2b00 cmp r3, #0 - 1d14e: d0fb beq.n 1d148 <_close_r+0x14> - 1d150: 6023 str r3, [r4, #0] - 1d152: bd38 pop {r3, r4, r5, pc} - 1d154: 20005804 .word 0x20005804 - -0001d158 <__errno>: - 1d158: 4b01 ldr r3, [pc, #4] ; (1d160 <__errno+0x8>) - 1d15a: 6818 ldr r0, [r3, #0] - 1d15c: 4770 bx lr - 1d15e: bf00 nop - 1d160: 20000068 .word 0x20000068 - -0001d164 <_fclose_r>: - 1d164: b570 push {r4, r5, r6, lr} - 1d166: b139 cbz r1, 1d178 <_fclose_r+0x14> - 1d168: 4606 mov r6, r0 - 1d16a: 460c mov r4, r1 - 1d16c: b108 cbz r0, 1d172 <_fclose_r+0xe> - 1d16e: 6b83 ldr r3, [r0, #56] ; 0x38 - 1d170: b363 cbz r3, 1d1cc <_fclose_r+0x68> - 1d172: f9b4 300c ldrsh.w r3, [r4, #12] - 1d176: b913 cbnz r3, 1d17e <_fclose_r+0x1a> - 1d178: 2500 movs r5, #0 - 1d17a: 4628 mov r0, r5 - 1d17c: bd70 pop {r4, r5, r6, pc} - 1d17e: 4621 mov r1, r4 - 1d180: 4630 mov r0, r6 - 1d182: f7fd fe41 bl 1ae08 <__sflush_r> - 1d186: 6ae3 ldr r3, [r4, #44] ; 0x2c - 1d188: 4605 mov r5, r0 - 1d18a: b133 cbz r3, 1d19a <_fclose_r+0x36> - 1d18c: 69e1 ldr r1, [r4, #28] - 1d18e: 4630 mov r0, r6 - 1d190: 4798 blx r3 - 1d192: 2800 cmp r0, #0 - 1d194: bfb8 it lt - 1d196: f04f 35ff movlt.w r5, #4294967295 ; 0xffffffff - 1d19a: 89a3 ldrh r3, [r4, #12] - 1d19c: 061b lsls r3, r3, #24 - 1d19e: d41c bmi.n 1d1da <_fclose_r+0x76> - 1d1a0: 6b21 ldr r1, [r4, #48] ; 0x30 - 1d1a2: b141 cbz r1, 1d1b6 <_fclose_r+0x52> - 1d1a4: f104 0340 add.w r3, r4, #64 ; 0x40 - 1d1a8: 4299 cmp r1, r3 - 1d1aa: d002 beq.n 1d1b2 <_fclose_r+0x4e> - 1d1ac: 4630 mov r0, r6 - 1d1ae: f7fd ffa3 bl 1b0f8 <_free_r> - 1d1b2: 2300 movs r3, #0 - 1d1b4: 6323 str r3, [r4, #48] ; 0x30 - 1d1b6: 6c61 ldr r1, [r4, #68] ; 0x44 - 1d1b8: b121 cbz r1, 1d1c4 <_fclose_r+0x60> - 1d1ba: 4630 mov r0, r6 - 1d1bc: f7fd ff9c bl 1b0f8 <_free_r> - 1d1c0: 2300 movs r3, #0 - 1d1c2: 6463 str r3, [r4, #68] ; 0x44 - 1d1c4: 2300 movs r3, #0 - 1d1c6: 81a3 strh r3, [r4, #12] - 1d1c8: 4628 mov r0, r5 - 1d1ca: bd70 pop {r4, r5, r6, pc} - 1d1cc: f7fd ff3e bl 1b04c <__sinit> - 1d1d0: f9b4 300c ldrsh.w r3, [r4, #12] - 1d1d4: 2b00 cmp r3, #0 - 1d1d6: d0cf beq.n 1d178 <_fclose_r+0x14> - 1d1d8: e7d1 b.n 1d17e <_fclose_r+0x1a> - 1d1da: 6921 ldr r1, [r4, #16] - 1d1dc: 4630 mov r0, r6 - 1d1de: f7fd ff8b bl 1b0f8 <_free_r> - 1d1e2: e7dd b.n 1d1a0 <_fclose_r+0x3c> - -0001d1e4 : - 1d1e4: b40e push {r1, r2, r3} - 1d1e6: b510 push {r4, lr} - 1d1e8: b083 sub sp, #12 - 1d1ea: ab05 add r3, sp, #20 - 1d1ec: 4c06 ldr r4, [pc, #24] ; (1d208 ) - 1d1ee: f853 2b04 ldr.w r2, [r3], #4 - 1d1f2: 9301 str r3, [sp, #4] - 1d1f4: 4601 mov r1, r0 - 1d1f6: 6820 ldr r0, [r4, #0] - 1d1f8: f7ff f936 bl 1c468 <_vfiprintf_r> - 1d1fc: b003 add sp, #12 - 1d1fe: e8bd 4010 ldmia.w sp!, {r4, lr} - 1d202: b003 add sp, #12 - 1d204: 4770 bx lr - 1d206: bf00 nop - 1d208: 20000068 .word 0x20000068 - -0001d20c <__fputwc>: - 1d20c: e92d 43f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} - 1d210: b083 sub sp, #12 - 1d212: 4607 mov r7, r0 - 1d214: 4688 mov r8, r1 - 1d216: 4614 mov r4, r2 - 1d218: f000 fa0a bl 1d630 <__locale_mb_cur_max> - 1d21c: 2801 cmp r0, #1 - 1d21e: d103 bne.n 1d228 <__fputwc+0x1c> - 1d220: f108 33ff add.w r3, r8, #4294967295 ; 0xffffffff - 1d224: 2bfe cmp r3, #254 ; 0xfe - 1d226: d937 bls.n 1d298 <__fputwc+0x8c> - 1d228: 4642 mov r2, r8 - 1d22a: f104 0358 add.w r3, r4, #88 ; 0x58 - 1d22e: a901 add r1, sp, #4 - 1d230: 4638 mov r0, r7 - 1d232: f000 fc89 bl 1db48 <_wcrtomb_r> - 1d236: 1c42 adds r2, r0, #1 - 1d238: 4606 mov r6, r0 - 1d23a: d033 beq.n 1d2a4 <__fputwc+0x98> - 1d23c: b338 cbz r0, 1d28e <__fputwc+0x82> - 1d23e: f89d c004 ldrb.w ip, [sp, #4] - 1d242: f10d 0905 add.w r9, sp, #5 - 1d246: 2500 movs r5, #0 - 1d248: e009 b.n 1d25e <__fputwc+0x52> - 1d24a: 6823 ldr r3, [r4, #0] - 1d24c: 1c5a adds r2, r3, #1 - 1d24e: 6022 str r2, [r4, #0] - 1d250: f883 c000 strb.w ip, [r3] - 1d254: 3501 adds r5, #1 - 1d256: 42b5 cmp r5, r6 - 1d258: d219 bcs.n 1d28e <__fputwc+0x82> - 1d25a: f819 cb01 ldrb.w ip, [r9], #1 - 1d25e: 68a3 ldr r3, [r4, #8] - 1d260: 3b01 subs r3, #1 - 1d262: 2b00 cmp r3, #0 - 1d264: 60a3 str r3, [r4, #8] - 1d266: daf0 bge.n 1d24a <__fputwc+0x3e> - 1d268: f8d4 e018 ldr.w lr, [r4, #24] - 1d26c: 4573 cmp r3, lr - 1d26e: 4661 mov r1, ip - 1d270: 4622 mov r2, r4 - 1d272: 4638 mov r0, r7 - 1d274: db02 blt.n 1d27c <__fputwc+0x70> - 1d276: f1bc 0f0a cmp.w ip, #10 - 1d27a: d1e6 bne.n 1d24a <__fputwc+0x3e> - 1d27c: f000 fc0c bl 1da98 <__swbuf_r> - 1d280: 1c43 adds r3, r0, #1 - 1d282: d1e7 bne.n 1d254 <__fputwc+0x48> - 1d284: 4606 mov r6, r0 - 1d286: 4630 mov r0, r6 - 1d288: b003 add sp, #12 - 1d28a: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} - 1d28e: 4646 mov r6, r8 - 1d290: 4630 mov r0, r6 - 1d292: b003 add sp, #12 - 1d294: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} - 1d298: fa5f fc88 uxtb.w ip, r8 - 1d29c: f88d c004 strb.w ip, [sp, #4] - 1d2a0: 4606 mov r6, r0 - 1d2a2: e7ce b.n 1d242 <__fputwc+0x36> - 1d2a4: 89a3 ldrh r3, [r4, #12] - 1d2a6: 4630 mov r0, r6 - 1d2a8: f043 0340 orr.w r3, r3, #64 ; 0x40 - 1d2ac: 81a3 strh r3, [r4, #12] - 1d2ae: b003 add sp, #12 - 1d2b0: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} - -0001d2b4 <_fputwc_r>: - 1d2b4: f9b2 300c ldrsh.w r3, [r2, #12] - 1d2b8: f413 5f00 tst.w r3, #8192 ; 0x2000 - 1d2bc: d10a bne.n 1d2d4 <_fputwc_r+0x20> - 1d2be: b410 push {r4} - 1d2c0: 6e14 ldr r4, [r2, #96] ; 0x60 - 1d2c2: f443 5300 orr.w r3, r3, #8192 ; 0x2000 - 1d2c6: f444 5400 orr.w r4, r4, #8192 ; 0x2000 - 1d2ca: 6614 str r4, [r2, #96] ; 0x60 - 1d2cc: 8193 strh r3, [r2, #12] - 1d2ce: bc10 pop {r4} - 1d2d0: f7ff bf9c b.w 1d20c <__fputwc> - 1d2d4: f7ff bf9a b.w 1d20c <__fputwc> - -0001d2d8 <_fstat_r>: - 1d2d8: b570 push {r4, r5, r6, lr} - 1d2da: 460c mov r4, r1 - 1d2dc: 4d08 ldr r5, [pc, #32] ; (1d300 <_fstat_r+0x28>) - 1d2de: 4603 mov r3, r0 - 1d2e0: 2600 movs r6, #0 - 1d2e2: 4620 mov r0, r4 - 1d2e4: 4611 mov r1, r2 - 1d2e6: 461c mov r4, r3 - 1d2e8: 602e str r6, [r5, #0] - 1d2ea: f7e3 f84a bl 382 <_fstat> - 1d2ee: 1c43 adds r3, r0, #1 - 1d2f0: d000 beq.n 1d2f4 <_fstat_r+0x1c> - 1d2f2: bd70 pop {r4, r5, r6, pc} - 1d2f4: 682b ldr r3, [r5, #0] - 1d2f6: 2b00 cmp r3, #0 - 1d2f8: d0fb beq.n 1d2f2 <_fstat_r+0x1a> - 1d2fa: 6023 str r3, [r4, #0] - 1d2fc: bd70 pop {r4, r5, r6, pc} - 1d2fe: bf00 nop - 1d300: 20005804 .word 0x20005804 - -0001d304 <__sfvwrite_r>: - 1d304: 6893 ldr r3, [r2, #8] - 1d306: 2b00 cmp r3, #0 - 1d308: f000 80fc beq.w 1d504 <__sfvwrite_r+0x200> - 1d30c: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} - 1d310: f9b1 300c ldrsh.w r3, [r1, #12] - 1d314: fa1f fc83 uxth.w ip, r3 - 1d318: 071b lsls r3, r3, #28 - 1d31a: b083 sub sp, #12 - 1d31c: 4690 mov r8, r2 - 1d31e: 4681 mov r9, r0 - 1d320: 460c mov r4, r1 - 1d322: d531 bpl.n 1d388 <__sfvwrite_r+0x84> - 1d324: 690b ldr r3, [r1, #16] - 1d326: b37b cbz r3, 1d388 <__sfvwrite_r+0x84> - 1d328: f01c 0702 ands.w r7, ip, #2 - 1d32c: f8d8 6000 ldr.w r6, [r8] - 1d330: d03a beq.n 1d3a8 <__sfvwrite_r+0xa4> - 1d332: 2700 movs r7, #0 - 1d334: f8d4 b024 ldr.w fp, [r4, #36] ; 0x24 - 1d338: 69e1 ldr r1, [r4, #28] - 1d33a: f8df a2cc ldr.w sl, [pc, #716] ; 1d608 <__sfvwrite_r+0x304> - 1d33e: 463d mov r5, r7 - 1d340: 4555 cmp r5, sl - 1d342: 462b mov r3, r5 - 1d344: 463a mov r2, r7 - 1d346: bf28 it cs - 1d348: 4653 movcs r3, sl - 1d34a: 4648 mov r0, r9 - 1d34c: b1c5 cbz r5, 1d380 <__sfvwrite_r+0x7c> - 1d34e: 47d8 blx fp - 1d350: 2800 cmp r0, #0 - 1d352: f340 80cd ble.w 1d4f0 <__sfvwrite_r+0x1ec> - 1d356: f8d8 3008 ldr.w r3, [r8, #8] - 1d35a: 1a1b subs r3, r3, r0 - 1d35c: 4407 add r7, r0 - 1d35e: 1a2d subs r5, r5, r0 - 1d360: f8c8 3008 str.w r3, [r8, #8] - 1d364: 2b00 cmp r3, #0 - 1d366: f000 80b9 beq.w 1d4dc <__sfvwrite_r+0x1d8> - 1d36a: 4555 cmp r5, sl - 1d36c: 462b mov r3, r5 - 1d36e: f8d4 b024 ldr.w fp, [r4, #36] ; 0x24 - 1d372: 69e1 ldr r1, [r4, #28] - 1d374: bf28 it cs - 1d376: 4653 movcs r3, sl - 1d378: 463a mov r2, r7 - 1d37a: 4648 mov r0, r9 - 1d37c: 2d00 cmp r5, #0 - 1d37e: d1e6 bne.n 1d34e <__sfvwrite_r+0x4a> - 1d380: e9d6 7500 ldrd r7, r5, [r6] - 1d384: 3608 adds r6, #8 - 1d386: e7db b.n 1d340 <__sfvwrite_r+0x3c> - 1d388: 4621 mov r1, r4 - 1d38a: 4648 mov r0, r9 - 1d38c: f7fc fcd2 bl 19d34 <__swsetup_r> - 1d390: 2800 cmp r0, #0 - 1d392: f040 8136 bne.w 1d602 <__sfvwrite_r+0x2fe> - 1d396: f9b4 300c ldrsh.w r3, [r4, #12] - 1d39a: f8d8 6000 ldr.w r6, [r8] - 1d39e: fa1f fc83 uxth.w ip, r3 - 1d3a2: f01c 0702 ands.w r7, ip, #2 - 1d3a6: d1c4 bne.n 1d332 <__sfvwrite_r+0x2e> - 1d3a8: f01c 0a01 ands.w sl, ip, #1 - 1d3ac: d166 bne.n 1d47c <__sfvwrite_r+0x178> - 1d3ae: 6823 ldr r3, [r4, #0] - 1d3b0: 68a1 ldr r1, [r4, #8] - 1d3b2: 4657 mov r7, sl - 1d3b4: 4618 mov r0, r3 - 1d3b6: 468b mov fp, r1 - 1d3b8: 2f00 cmp r7, #0 - 1d3ba: d05b beq.n 1d474 <__sfvwrite_r+0x170> - 1d3bc: f41c 7f00 tst.w ip, #512 ; 0x200 - 1d3c0: f000 80b4 beq.w 1d52c <__sfvwrite_r+0x228> - 1d3c4: 42b9 cmp r1, r7 - 1d3c6: 460a mov r2, r1 - 1d3c8: f200 80e0 bhi.w 1d58c <__sfvwrite_r+0x288> - 1d3cc: f41c 6f90 tst.w ip, #1152 ; 0x480 - 1d3d0: d030 beq.n 1d434 <__sfvwrite_r+0x130> - 1d3d2: 6921 ldr r1, [r4, #16] - 1d3d4: 1a5d subs r5, r3, r1 - 1d3d6: 6963 ldr r3, [r4, #20] - 1d3d8: eb03 0b43 add.w fp, r3, r3, lsl #1 - 1d3dc: eb0b 7bdb add.w fp, fp, fp, lsr #31 - 1d3e0: 1c6b adds r3, r5, #1 - 1d3e2: ea4f 0b6b mov.w fp, fp, asr #1 - 1d3e6: 443b add r3, r7 - 1d3e8: 455b cmp r3, fp - 1d3ea: 465a mov r2, fp - 1d3ec: bf84 itt hi - 1d3ee: 469b movhi fp, r3 - 1d3f0: 465a movhi r2, fp - 1d3f2: f41c 6f80 tst.w ip, #1024 ; 0x400 - 1d3f6: f000 80e8 beq.w 1d5ca <__sfvwrite_r+0x2c6> - 1d3fa: 4611 mov r1, r2 - 1d3fc: 4648 mov r0, r9 - 1d3fe: f7fe f80f bl 1b420 <_malloc_r> - 1d402: 2800 cmp r0, #0 - 1d404: f000 80f7 beq.w 1d5f6 <__sfvwrite_r+0x2f2> - 1d408: 462a mov r2, r5 - 1d40a: 6921 ldr r1, [r4, #16] - 1d40c: 9001 str r0, [sp, #4] - 1d40e: f7f9 fc89 bl 16d24 - 1d412: 89a2 ldrh r2, [r4, #12] - 1d414: 9b01 ldr r3, [sp, #4] - 1d416: f422 6290 bic.w r2, r2, #1152 ; 0x480 - 1d41a: f042 0280 orr.w r2, r2, #128 ; 0x80 - 1d41e: 81a2 strh r2, [r4, #12] - 1d420: 1958 adds r0, r3, r5 - 1d422: ebab 0505 sub.w r5, fp, r5 - 1d426: f8c4 b014 str.w fp, [r4, #20] - 1d42a: 6123 str r3, [r4, #16] - 1d42c: 60a5 str r5, [r4, #8] - 1d42e: 6020 str r0, [r4, #0] - 1d430: 46bb mov fp, r7 - 1d432: 463a mov r2, r7 - 1d434: 4651 mov r1, sl - 1d436: 9201 str r2, [sp, #4] - 1d438: f7f9 fd0e bl 16e58 - 1d43c: 68a1 ldr r1, [r4, #8] - 1d43e: 6823 ldr r3, [r4, #0] - 1d440: 9a01 ldr r2, [sp, #4] - 1d442: eba1 010b sub.w r1, r1, fp - 1d446: 441a add r2, r3 - 1d448: 463d mov r5, r7 - 1d44a: 60a1 str r1, [r4, #8] - 1d44c: 6022 str r2, [r4, #0] - 1d44e: 2700 movs r7, #0 - 1d450: f8d8 3008 ldr.w r3, [r8, #8] - 1d454: 1b5b subs r3, r3, r5 - 1d456: 44aa add sl, r5 - 1d458: f8c8 3008 str.w r3, [r8, #8] - 1d45c: 2b00 cmp r3, #0 - 1d45e: d03d beq.n 1d4dc <__sfvwrite_r+0x1d8> - 1d460: f9b4 c00c ldrsh.w ip, [r4, #12] - 1d464: 6823 ldr r3, [r4, #0] - 1d466: 68a1 ldr r1, [r4, #8] - 1d468: fa1f fc8c uxth.w ip, ip - 1d46c: 4618 mov r0, r3 - 1d46e: 468b mov fp, r1 - 1d470: 2f00 cmp r7, #0 - 1d472: d1a3 bne.n 1d3bc <__sfvwrite_r+0xb8> - 1d474: e9d6 a700 ldrd sl, r7, [r6] - 1d478: 3608 adds r6, #8 - 1d47a: e79b b.n 1d3b4 <__sfvwrite_r+0xb0> - 1d47c: 4638 mov r0, r7 - 1d47e: 46bb mov fp, r7 - 1d480: 463d mov r5, r7 - 1d482: 2d00 cmp r5, #0 - 1d484: d040 beq.n 1d508 <__sfvwrite_r+0x204> - 1d486: 2800 cmp r0, #0 - 1d488: d045 beq.n 1d516 <__sfvwrite_r+0x212> - 1d48a: 463a mov r2, r7 - 1d48c: e9d4 c304 ldrd ip, r3, [r4, #16] - 1d490: 6820 ldr r0, [r4, #0] - 1d492: 68a1 ldr r1, [r4, #8] - 1d494: 42aa cmp r2, r5 - 1d496: bf28 it cs - 1d498: 462a movcs r2, r5 - 1d49a: 4560 cmp r0, ip - 1d49c: d904 bls.n 1d4a8 <__sfvwrite_r+0x1a4> - 1d49e: eb01 0a03 add.w sl, r1, r3 - 1d4a2: 4552 cmp r2, sl - 1d4a4: f300 8082 bgt.w 1d5ac <__sfvwrite_r+0x2a8> - 1d4a8: 4293 cmp r3, r2 - 1d4aa: dc72 bgt.n 1d592 <__sfvwrite_r+0x28e> - 1d4ac: 69e1 ldr r1, [r4, #28] - 1d4ae: f8d4 c024 ldr.w ip, [r4, #36] ; 0x24 - 1d4b2: 465a mov r2, fp - 1d4b4: 4648 mov r0, r9 - 1d4b6: 47e0 blx ip - 1d4b8: f1b0 0a00 subs.w sl, r0, #0 - 1d4bc: dd18 ble.n 1d4f0 <__sfvwrite_r+0x1ec> - 1d4be: ebb7 070a subs.w r7, r7, sl - 1d4c2: d00f beq.n 1d4e4 <__sfvwrite_r+0x1e0> - 1d4c4: 2001 movs r0, #1 - 1d4c6: f8d8 3008 ldr.w r3, [r8, #8] - 1d4ca: eba3 030a sub.w r3, r3, sl - 1d4ce: 44d3 add fp, sl - 1d4d0: eba5 050a sub.w r5, r5, sl - 1d4d4: f8c8 3008 str.w r3, [r8, #8] - 1d4d8: 2b00 cmp r3, #0 - 1d4da: d1d2 bne.n 1d482 <__sfvwrite_r+0x17e> - 1d4dc: 2000 movs r0, #0 - 1d4de: b003 add sp, #12 - 1d4e0: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - 1d4e4: 4621 mov r1, r4 - 1d4e6: 4648 mov r0, r9 - 1d4e8: f7fd fd28 bl 1af3c <_fflush_r> - 1d4ec: 2800 cmp r0, #0 - 1d4ee: d0ea beq.n 1d4c6 <__sfvwrite_r+0x1c2> - 1d4f0: f9b4 300c ldrsh.w r3, [r4, #12] - 1d4f4: f043 0340 orr.w r3, r3, #64 ; 0x40 - 1d4f8: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff - 1d4fc: 81a3 strh r3, [r4, #12] - 1d4fe: b003 add sp, #12 - 1d500: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} - 1d504: 2000 movs r0, #0 - 1d506: 4770 bx lr - 1d508: 6875 ldr r5, [r6, #4] - 1d50a: 4633 mov r3, r6 - 1d50c: 3608 adds r6, #8 - 1d50e: 2d00 cmp r5, #0 - 1d510: d0fa beq.n 1d508 <__sfvwrite_r+0x204> - 1d512: f8d3 b000 ldr.w fp, [r3] - 1d516: 462a mov r2, r5 - 1d518: 210a movs r1, #10 - 1d51a: 4658 mov r0, fp - 1d51c: f7fe fa30 bl 1b980 - 1d520: 2800 cmp r0, #0 - 1d522: d065 beq.n 1d5f0 <__sfvwrite_r+0x2ec> - 1d524: 3001 adds r0, #1 - 1d526: eba0 070b sub.w r7, r0, fp - 1d52a: e7ae b.n 1d48a <__sfvwrite_r+0x186> - 1d52c: 6922 ldr r2, [r4, #16] - 1d52e: 429a cmp r2, r3 - 1d530: d314 bcc.n 1d55c <__sfvwrite_r+0x258> - 1d532: 6962 ldr r2, [r4, #20] - 1d534: 42ba cmp r2, r7 - 1d536: d811 bhi.n 1d55c <__sfvwrite_r+0x258> - 1d538: f06f 4300 mvn.w r3, #2147483648 ; 0x80000000 - 1d53c: 42bb cmp r3, r7 - 1d53e: bf28 it cs - 1d540: 463b movcs r3, r7 - 1d542: 6a65 ldr r5, [r4, #36] ; 0x24 - 1d544: fb93 f3f2 sdiv r3, r3, r2 - 1d548: 69e1 ldr r1, [r4, #28] - 1d54a: fb02 f303 mul.w r3, r2, r3 - 1d54e: 4648 mov r0, r9 - 1d550: 4652 mov r2, sl - 1d552: 47a8 blx r5 - 1d554: 1e05 subs r5, r0, #0 - 1d556: ddcb ble.n 1d4f0 <__sfvwrite_r+0x1ec> - 1d558: 1b7f subs r7, r7, r5 - 1d55a: e779 b.n 1d450 <__sfvwrite_r+0x14c> - 1d55c: 42b9 cmp r1, r7 - 1d55e: bf28 it cs - 1d560: 4639 movcs r1, r7 - 1d562: 460d mov r5, r1 - 1d564: 4618 mov r0, r3 - 1d566: 460a mov r2, r1 - 1d568: 4651 mov r1, sl - 1d56a: f7f9 fc75 bl 16e58 - 1d56e: 68a1 ldr r1, [r4, #8] - 1d570: 6823 ldr r3, [r4, #0] - 1d572: 1b49 subs r1, r1, r5 - 1d574: 442b add r3, r5 - 1d576: 60a1 str r1, [r4, #8] - 1d578: 6023 str r3, [r4, #0] - 1d57a: 2900 cmp r1, #0 - 1d57c: d1ec bne.n 1d558 <__sfvwrite_r+0x254> - 1d57e: 4621 mov r1, r4 - 1d580: 4648 mov r0, r9 - 1d582: f7fd fcdb bl 1af3c <_fflush_r> - 1d586: 2800 cmp r0, #0 - 1d588: d0e6 beq.n 1d558 <__sfvwrite_r+0x254> - 1d58a: e7b1 b.n 1d4f0 <__sfvwrite_r+0x1ec> - 1d58c: 46bb mov fp, r7 - 1d58e: 463a mov r2, r7 - 1d590: e750 b.n 1d434 <__sfvwrite_r+0x130> - 1d592: 4659 mov r1, fp - 1d594: 9201 str r2, [sp, #4] - 1d596: f7f9 fc5f bl 16e58 - 1d59a: 9a01 ldr r2, [sp, #4] - 1d59c: 68a3 ldr r3, [r4, #8] - 1d59e: 1a9b subs r3, r3, r2 - 1d5a0: 60a3 str r3, [r4, #8] - 1d5a2: 6823 ldr r3, [r4, #0] - 1d5a4: 4413 add r3, r2 - 1d5a6: 6023 str r3, [r4, #0] - 1d5a8: 4692 mov sl, r2 - 1d5aa: e788 b.n 1d4be <__sfvwrite_r+0x1ba> - 1d5ac: 4659 mov r1, fp - 1d5ae: 4652 mov r2, sl - 1d5b0: f7f9 fc52 bl 16e58 - 1d5b4: 6823 ldr r3, [r4, #0] - 1d5b6: 4453 add r3, sl - 1d5b8: 6023 str r3, [r4, #0] - 1d5ba: 4621 mov r1, r4 - 1d5bc: 4648 mov r0, r9 - 1d5be: f7fd fcbd bl 1af3c <_fflush_r> - 1d5c2: 2800 cmp r0, #0 - 1d5c4: f43f af7b beq.w 1d4be <__sfvwrite_r+0x1ba> - 1d5c8: e792 b.n 1d4f0 <__sfvwrite_r+0x1ec> - 1d5ca: 4648 mov r0, r9 - 1d5cc: f000 f878 bl 1d6c0 <_realloc_r> - 1d5d0: 4603 mov r3, r0 - 1d5d2: 2800 cmp r0, #0 - 1d5d4: f47f af24 bne.w 1d420 <__sfvwrite_r+0x11c> - 1d5d8: 6921 ldr r1, [r4, #16] - 1d5da: 4648 mov r0, r9 - 1d5dc: f7fd fd8c bl 1b0f8 <_free_r> - 1d5e0: f9b4 300c ldrsh.w r3, [r4, #12] - 1d5e4: 220c movs r2, #12 - 1d5e6: f023 0380 bic.w r3, r3, #128 ; 0x80 - 1d5ea: f8c9 2000 str.w r2, [r9] - 1d5ee: e781 b.n 1d4f4 <__sfvwrite_r+0x1f0> - 1d5f0: 1c6a adds r2, r5, #1 - 1d5f2: 4617 mov r7, r2 - 1d5f4: e74a b.n 1d48c <__sfvwrite_r+0x188> - 1d5f6: 220c movs r2, #12 - 1d5f8: f9b4 300c ldrsh.w r3, [r4, #12] - 1d5fc: f8c9 2000 str.w r2, [r9] - 1d600: e778 b.n 1d4f4 <__sfvwrite_r+0x1f0> - 1d602: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff - 1d606: e76a b.n 1d4de <__sfvwrite_r+0x1da> - 1d608: 7ffffc00 .word 0x7ffffc00 - -0001d60c <_isatty_r>: - 1d60c: b538 push {r3, r4, r5, lr} - 1d60e: 4d07 ldr r5, [pc, #28] ; (1d62c <_isatty_r+0x20>) - 1d610: 2200 movs r2, #0 - 1d612: 4604 mov r4, r0 - 1d614: 4608 mov r0, r1 - 1d616: 602a str r2, [r5, #0] - 1d618: f7e2 feb8 bl 38c <_isatty> - 1d61c: 1c43 adds r3, r0, #1 - 1d61e: d000 beq.n 1d622 <_isatty_r+0x16> - 1d620: bd38 pop {r3, r4, r5, pc} - 1d622: 682b ldr r3, [r5, #0] - 1d624: 2b00 cmp r3, #0 - 1d626: d0fb beq.n 1d620 <_isatty_r+0x14> - 1d628: 6023 str r3, [r4, #0] - 1d62a: bd38 pop {r3, r4, r5, pc} - 1d62c: 20005804 .word 0x20005804 - -0001d630 <__locale_mb_cur_max>: - 1d630: 4b01 ldr r3, [pc, #4] ; (1d638 <__locale_mb_cur_max+0x8>) - 1d632: f893 0128 ldrb.w r0, [r3, #296] ; 0x128 - 1d636: 4770 bx lr - 1d638: 20000898 .word 0x20000898 - -0001d63c <_lseek_r>: - 1d63c: b538 push {r3, r4, r5, lr} - 1d63e: 460c mov r4, r1 - 1d640: 4d08 ldr r5, [pc, #32] ; (1d664 <_lseek_r+0x28>) - 1d642: 4684 mov ip, r0 - 1d644: 4611 mov r1, r2 - 1d646: 4620 mov r0, r4 - 1d648: 461a mov r2, r3 - 1d64a: 2300 movs r3, #0 - 1d64c: 602b str r3, [r5, #0] - 1d64e: 4664 mov r4, ip - 1d650: f7e2 fe9e bl 390 <_lseek> - 1d654: 1c43 adds r3, r0, #1 - 1d656: d000 beq.n 1d65a <_lseek_r+0x1e> - 1d658: bd38 pop {r3, r4, r5, pc} - 1d65a: 682b ldr r3, [r5, #0] - 1d65c: 2b00 cmp r3, #0 - 1d65e: d0fb beq.n 1d658 <_lseek_r+0x1c> - 1d660: 6023 str r3, [r4, #0] - 1d662: bd38 pop {r3, r4, r5, pc} - 1d664: 20005804 .word 0x20005804 - -0001d668 <__ascii_mbtowc>: - 1d668: b082 sub sp, #8 - 1d66a: b149 cbz r1, 1d680 <__ascii_mbtowc+0x18> - 1d66c: b15a cbz r2, 1d686 <__ascii_mbtowc+0x1e> - 1d66e: b16b cbz r3, 1d68c <__ascii_mbtowc+0x24> - 1d670: 7813 ldrb r3, [r2, #0] - 1d672: 600b str r3, [r1, #0] - 1d674: 7812 ldrb r2, [r2, #0] - 1d676: 1e10 subs r0, r2, #0 - 1d678: bf18 it ne - 1d67a: 2001 movne r0, #1 - 1d67c: b002 add sp, #8 - 1d67e: 4770 bx lr - 1d680: a901 add r1, sp, #4 - 1d682: 2a00 cmp r2, #0 - 1d684: d1f3 bne.n 1d66e <__ascii_mbtowc+0x6> - 1d686: 4610 mov r0, r2 - 1d688: b002 add sp, #8 - 1d68a: 4770 bx lr - 1d68c: f06f 0001 mvn.w r0, #1 - 1d690: e7f4 b.n 1d67c <__ascii_mbtowc+0x14> - 1d692: bf00 nop - -0001d694 <_read_r>: - 1d694: b538 push {r3, r4, r5, lr} - 1d696: 460c mov r4, r1 - 1d698: 4d08 ldr r5, [pc, #32] ; (1d6bc <_read_r+0x28>) - 1d69a: 4684 mov ip, r0 - 1d69c: 4611 mov r1, r2 - 1d69e: 4620 mov r0, r4 - 1d6a0: 461a mov r2, r3 - 1d6a2: 2300 movs r3, #0 - 1d6a4: 602b str r3, [r5, #0] - 1d6a6: 4664 mov r4, ip - 1d6a8: f000 fb44 bl 1dd34 <_read> - 1d6ac: 1c43 adds r3, r0, #1 - 1d6ae: d000 beq.n 1d6b2 <_read_r+0x1e> - 1d6b0: bd38 pop {r3, r4, r5, pc} - 1d6b2: 682b ldr r3, [r5, #0] - 1d6b4: 2b00 cmp r3, #0 - 1d6b6: d0fb beq.n 1d6b0 <_read_r+0x1c> - 1d6b8: 6023 str r3, [r4, #0] - 1d6ba: bd38 pop {r3, r4, r5, pc} - 1d6bc: 20005804 .word 0x20005804 - -0001d6c0 <_realloc_r>: - 1d6c0: e92d 4ff8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr} - 1d6c4: 4616 mov r6, r2 - 1d6c6: 2900 cmp r1, #0 - 1d6c8: f000 809c beq.w 1d804 <_realloc_r+0x144> - 1d6cc: 460c mov r4, r1 - 1d6ce: f106 050b add.w r5, r6, #11 - 1d6d2: 4607 mov r7, r0 - 1d6d4: f7fe f9a4 bl 1ba20 <__malloc_lock> - 1d6d8: 2d16 cmp r5, #22 - 1d6da: f854 0c04 ldr.w r0, [r4, #-4] - 1d6de: d85d bhi.n 1d79c <_realloc_r+0xdc> - 1d6e0: 2510 movs r5, #16 - 1d6e2: 462a mov r2, r5 - 1d6e4: 42ae cmp r6, r5 - 1d6e6: d85e bhi.n 1d7a6 <_realloc_r+0xe6> - 1d6e8: f020 0803 bic.w r8, r0, #3 - 1d6ec: 4590 cmp r8, r2 - 1d6ee: f1a4 0908 sub.w r9, r4, #8 - 1d6f2: da63 bge.n 1d7bc <_realloc_r+0xfc> - 1d6f4: 4bbc ldr r3, [pc, #752] ; (1d9e8 <_realloc_r+0x328>) - 1d6f6: f8d3 e008 ldr.w lr, [r3, #8] - 1d6fa: eb09 0c08 add.w ip, r9, r8 - 1d6fe: 45e6 cmp lr, ip - 1d700: f8dc 1004 ldr.w r1, [ip, #4] - 1d704: f000 8094 beq.w 1d830 <_realloc_r+0x170> - 1d708: f021 0301 bic.w r3, r1, #1 - 1d70c: 4463 add r3, ip - 1d70e: 685b ldr r3, [r3, #4] - 1d710: 07db lsls r3, r3, #31 - 1d712: d46c bmi.n 1d7ee <_realloc_r+0x12e> - 1d714: f021 0e03 bic.w lr, r1, #3 - 1d718: eb08 030e add.w r3, r8, lr - 1d71c: 4293 cmp r3, r2 - 1d71e: da48 bge.n 1d7b2 <_realloc_r+0xf2> - 1d720: 07c0 lsls r0, r0, #31 - 1d722: d411 bmi.n 1d748 <_realloc_r+0x88> - 1d724: f854 3c08 ldr.w r3, [r4, #-8] - 1d728: eba9 0b03 sub.w fp, r9, r3 - 1d72c: f8db 3004 ldr.w r3, [fp, #4] - 1d730: f023 0103 bic.w r1, r3, #3 - 1d734: 448e add lr, r1 - 1d736: 44c6 add lr, r8 - 1d738: 4596 cmp lr, r2 - 1d73a: f280 810f bge.w 1d95c <_realloc_r+0x29c> - 1d73e: eb08 0301 add.w r3, r8, r1 - 1d742: 4293 cmp r3, r2 - 1d744: f280 80e4 bge.w 1d910 <_realloc_r+0x250> - 1d748: 4631 mov r1, r6 - 1d74a: 4638 mov r0, r7 - 1d74c: f7fd fe68 bl 1b420 <_malloc_r> - 1d750: 4606 mov r6, r0 - 1d752: b1e8 cbz r0, 1d790 <_realloc_r+0xd0> - 1d754: f854 3c04 ldr.w r3, [r4, #-4] - 1d758: f023 0301 bic.w r3, r3, #1 - 1d75c: 444b add r3, r9 - 1d75e: f1a0 0208 sub.w r2, r0, #8 - 1d762: 4293 cmp r3, r2 - 1d764: f000 80ce beq.w 1d904 <_realloc_r+0x244> - 1d768: f1a8 0204 sub.w r2, r8, #4 - 1d76c: 2a24 cmp r2, #36 ; 0x24 - 1d76e: f200 80f1 bhi.w 1d954 <_realloc_r+0x294> - 1d772: 2a13 cmp r2, #19 - 1d774: f200 80a8 bhi.w 1d8c8 <_realloc_r+0x208> - 1d778: 4603 mov r3, r0 - 1d77a: 4622 mov r2, r4 - 1d77c: 6811 ldr r1, [r2, #0] - 1d77e: 6019 str r1, [r3, #0] - 1d780: 6851 ldr r1, [r2, #4] - 1d782: 6059 str r1, [r3, #4] - 1d784: 6892 ldr r2, [r2, #8] - 1d786: 609a str r2, [r3, #8] - 1d788: 4621 mov r1, r4 - 1d78a: 4638 mov r0, r7 - 1d78c: f7fd fcb4 bl 1b0f8 <_free_r> - 1d790: 4638 mov r0, r7 - 1d792: f7fe f947 bl 1ba24 <__malloc_unlock> - 1d796: 4630 mov r0, r6 - 1d798: e8bd 8ff8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} - 1d79c: f025 0507 bic.w r5, r5, #7 - 1d7a0: 2d00 cmp r5, #0 - 1d7a2: 462a mov r2, r5 - 1d7a4: da9e bge.n 1d6e4 <_realloc_r+0x24> - 1d7a6: 230c movs r3, #12 - 1d7a8: 603b str r3, [r7, #0] - 1d7aa: 2600 movs r6, #0 - 1d7ac: 4630 mov r0, r6 - 1d7ae: e8bd 8ff8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} - 1d7b2: 4698 mov r8, r3 - 1d7b4: e9dc 2302 ldrd r2, r3, [ip, #8] - 1d7b8: 60d3 str r3, [r2, #12] - 1d7ba: 609a str r2, [r3, #8] - 1d7bc: f8d9 3004 ldr.w r3, [r9, #4] - 1d7c0: eba8 0205 sub.w r2, r8, r5 - 1d7c4: 2a0f cmp r2, #15 - 1d7c6: f003 0301 and.w r3, r3, #1 - 1d7ca: eb09 0008 add.w r0, r9, r8 - 1d7ce: d81e bhi.n 1d80e <_realloc_r+0x14e> - 1d7d0: ea48 0303 orr.w r3, r8, r3 - 1d7d4: f8c9 3004 str.w r3, [r9, #4] - 1d7d8: 6843 ldr r3, [r0, #4] - 1d7da: f043 0301 orr.w r3, r3, #1 - 1d7de: 6043 str r3, [r0, #4] - 1d7e0: 4638 mov r0, r7 - 1d7e2: 4626 mov r6, r4 - 1d7e4: f7fe f91e bl 1ba24 <__malloc_unlock> - 1d7e8: 4630 mov r0, r6 - 1d7ea: e8bd 8ff8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} - 1d7ee: 07c3 lsls r3, r0, #31 - 1d7f0: d4aa bmi.n 1d748 <_realloc_r+0x88> - 1d7f2: f854 3c08 ldr.w r3, [r4, #-8] - 1d7f6: eba9 0b03 sub.w fp, r9, r3 - 1d7fa: f8db 1004 ldr.w r1, [fp, #4] - 1d7fe: f021 0103 bic.w r1, r1, #3 - 1d802: e79c b.n 1d73e <_realloc_r+0x7e> - 1d804: e8bd 4ff8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr} - 1d808: 4611 mov r1, r2 - 1d80a: f7fd be09 b.w 1b420 <_malloc_r> - 1d80e: eb09 0105 add.w r1, r9, r5 - 1d812: 432b orrs r3, r5 - 1d814: f042 0201 orr.w r2, r2, #1 - 1d818: f8c9 3004 str.w r3, [r9, #4] - 1d81c: 604a str r2, [r1, #4] - 1d81e: 6843 ldr r3, [r0, #4] - 1d820: f043 0301 orr.w r3, r3, #1 - 1d824: 6043 str r3, [r0, #4] - 1d826: 3108 adds r1, #8 - 1d828: 4638 mov r0, r7 - 1d82a: f7fd fc65 bl 1b0f8 <_free_r> - 1d82e: e7d7 b.n 1d7e0 <_realloc_r+0x120> - 1d830: f021 0e03 bic.w lr, r1, #3 - 1d834: eb08 010e add.w r1, r8, lr - 1d838: f105 0c10 add.w ip, r5, #16 - 1d83c: 4561 cmp r1, ip - 1d83e: da4e bge.n 1d8de <_realloc_r+0x21e> - 1d840: 07c1 lsls r1, r0, #31 - 1d842: d481 bmi.n 1d748 <_realloc_r+0x88> - 1d844: f854 1c08 ldr.w r1, [r4, #-8] - 1d848: eba9 0b01 sub.w fp, r9, r1 - 1d84c: f8db 1004 ldr.w r1, [fp, #4] - 1d850: f021 0103 bic.w r1, r1, #3 - 1d854: 448e add lr, r1 - 1d856: eb0e 0a08 add.w sl, lr, r8 - 1d85a: 45d4 cmp ip, sl - 1d85c: f73f af6f bgt.w 1d73e <_realloc_r+0x7e> - 1d860: 465e mov r6, fp - 1d862: f8db 100c ldr.w r1, [fp, #12] - 1d866: f856 0f08 ldr.w r0, [r6, #8]! - 1d86a: f1a8 0204 sub.w r2, r8, #4 - 1d86e: 2a24 cmp r2, #36 ; 0x24 - 1d870: 60c1 str r1, [r0, #12] - 1d872: 6088 str r0, [r1, #8] - 1d874: f200 80dd bhi.w 1da32 <_realloc_r+0x372> - 1d878: 2a13 cmp r2, #19 - 1d87a: f240 80d8 bls.w 1da2e <_realloc_r+0x36e> - 1d87e: 6821 ldr r1, [r4, #0] - 1d880: f8cb 1008 str.w r1, [fp, #8] - 1d884: 6861 ldr r1, [r4, #4] - 1d886: f8cb 100c str.w r1, [fp, #12] - 1d88a: 2a1b cmp r2, #27 - 1d88c: f200 80e1 bhi.w 1da52 <_realloc_r+0x392> - 1d890: 3408 adds r4, #8 - 1d892: f10b 0210 add.w r2, fp, #16 - 1d896: 6821 ldr r1, [r4, #0] - 1d898: 6011 str r1, [r2, #0] - 1d89a: 6861 ldr r1, [r4, #4] - 1d89c: 6051 str r1, [r2, #4] - 1d89e: 68a1 ldr r1, [r4, #8] - 1d8a0: 6091 str r1, [r2, #8] - 1d8a2: eb0b 0105 add.w r1, fp, r5 - 1d8a6: ebaa 0205 sub.w r2, sl, r5 - 1d8aa: f042 0201 orr.w r2, r2, #1 - 1d8ae: 6099 str r1, [r3, #8] - 1d8b0: 604a str r2, [r1, #4] - 1d8b2: f8db 3004 ldr.w r3, [fp, #4] - 1d8b6: f003 0301 and.w r3, r3, #1 - 1d8ba: 432b orrs r3, r5 - 1d8bc: 4638 mov r0, r7 - 1d8be: f8cb 3004 str.w r3, [fp, #4] - 1d8c2: f7fe f8af bl 1ba24 <__malloc_unlock> - 1d8c6: e771 b.n 1d7ac <_realloc_r+0xec> - 1d8c8: 6823 ldr r3, [r4, #0] - 1d8ca: 6003 str r3, [r0, #0] - 1d8cc: 6863 ldr r3, [r4, #4] - 1d8ce: 6043 str r3, [r0, #4] - 1d8d0: 2a1b cmp r2, #27 - 1d8d2: d869 bhi.n 1d9a8 <_realloc_r+0x2e8> - 1d8d4: f104 0208 add.w r2, r4, #8 - 1d8d8: f100 0308 add.w r3, r0, #8 - 1d8dc: e74e b.n 1d77c <_realloc_r+0xbc> - 1d8de: eb09 0205 add.w r2, r9, r5 - 1d8e2: 609a str r2, [r3, #8] - 1d8e4: 1b4b subs r3, r1, r5 - 1d8e6: f043 0301 orr.w r3, r3, #1 - 1d8ea: 6053 str r3, [r2, #4] - 1d8ec: f854 3c04 ldr.w r3, [r4, #-4] - 1d8f0: f003 0301 and.w r3, r3, #1 - 1d8f4: 432b orrs r3, r5 - 1d8f6: 4638 mov r0, r7 - 1d8f8: f844 3c04 str.w r3, [r4, #-4] - 1d8fc: f7fe f892 bl 1ba24 <__malloc_unlock> - 1d900: 4626 mov r6, r4 - 1d902: e753 b.n 1d7ac <_realloc_r+0xec> - 1d904: f850 3c04 ldr.w r3, [r0, #-4] - 1d908: f023 0303 bic.w r3, r3, #3 - 1d90c: 4498 add r8, r3 - 1d90e: e755 b.n 1d7bc <_realloc_r+0xfc> - 1d910: 465e mov r6, fp - 1d912: f8db 100c ldr.w r1, [fp, #12] - 1d916: f856 0f08 ldr.w r0, [r6, #8]! - 1d91a: f1a8 0204 sub.w r2, r8, #4 - 1d91e: 2a24 cmp r2, #36 ; 0x24 - 1d920: 60c1 str r1, [r0, #12] - 1d922: 6088 str r0, [r1, #8] - 1d924: d84d bhi.n 1d9c2 <_realloc_r+0x302> - 1d926: 2a13 cmp r2, #19 - 1d928: d949 bls.n 1d9be <_realloc_r+0x2fe> - 1d92a: 6821 ldr r1, [r4, #0] - 1d92c: f8cb 1008 str.w r1, [fp, #8] - 1d930: 6861 ldr r1, [r4, #4] - 1d932: f8cb 100c str.w r1, [fp, #12] - 1d936: 2a1b cmp r2, #27 - 1d938: d858 bhi.n 1d9ec <_realloc_r+0x32c> - 1d93a: 3408 adds r4, #8 - 1d93c: f10b 0210 add.w r2, fp, #16 - 1d940: 4698 mov r8, r3 - 1d942: 6823 ldr r3, [r4, #0] - 1d944: 6013 str r3, [r2, #0] - 1d946: 6863 ldr r3, [r4, #4] - 1d948: 6053 str r3, [r2, #4] - 1d94a: 68a3 ldr r3, [r4, #8] - 1d94c: 6093 str r3, [r2, #8] - 1d94e: 46d9 mov r9, fp - 1d950: 4634 mov r4, r6 - 1d952: e733 b.n 1d7bc <_realloc_r+0xfc> - 1d954: 4621 mov r1, r4 - 1d956: f7f9 fa7f bl 16e58 - 1d95a: e715 b.n 1d788 <_realloc_r+0xc8> - 1d95c: e9dc 1302 ldrd r1, r3, [ip, #8] - 1d960: 465e mov r6, fp - 1d962: 60cb str r3, [r1, #12] - 1d964: 6099 str r1, [r3, #8] - 1d966: f856 1f08 ldr.w r1, [r6, #8]! - 1d96a: f8db 300c ldr.w r3, [fp, #12] - 1d96e: 60cb str r3, [r1, #12] - 1d970: f1a8 0204 sub.w r2, r8, #4 - 1d974: 2a24 cmp r2, #36 ; 0x24 - 1d976: 6099 str r1, [r3, #8] - 1d978: d82d bhi.n 1d9d6 <_realloc_r+0x316> - 1d97a: 2a13 cmp r2, #19 - 1d97c: d929 bls.n 1d9d2 <_realloc_r+0x312> - 1d97e: 6823 ldr r3, [r4, #0] - 1d980: f8cb 3008 str.w r3, [fp, #8] - 1d984: 6863 ldr r3, [r4, #4] - 1d986: f8cb 300c str.w r3, [fp, #12] - 1d98a: 2a1b cmp r2, #27 - 1d98c: d843 bhi.n 1da16 <_realloc_r+0x356> - 1d98e: 3408 adds r4, #8 - 1d990: f10b 0310 add.w r3, fp, #16 - 1d994: 6822 ldr r2, [r4, #0] - 1d996: 601a str r2, [r3, #0] - 1d998: 6862 ldr r2, [r4, #4] - 1d99a: 605a str r2, [r3, #4] - 1d99c: 68a2 ldr r2, [r4, #8] - 1d99e: 609a str r2, [r3, #8] - 1d9a0: 46f0 mov r8, lr - 1d9a2: 46d9 mov r9, fp - 1d9a4: 4634 mov r4, r6 - 1d9a6: e709 b.n 1d7bc <_realloc_r+0xfc> - 1d9a8: 68a3 ldr r3, [r4, #8] - 1d9aa: 6083 str r3, [r0, #8] - 1d9ac: 68e3 ldr r3, [r4, #12] - 1d9ae: 60c3 str r3, [r0, #12] - 1d9b0: 2a24 cmp r2, #36 ; 0x24 - 1d9b2: d027 beq.n 1da04 <_realloc_r+0x344> - 1d9b4: f104 0210 add.w r2, r4, #16 - 1d9b8: f100 0310 add.w r3, r0, #16 - 1d9bc: e6de b.n 1d77c <_realloc_r+0xbc> - 1d9be: 4632 mov r2, r6 - 1d9c0: e7be b.n 1d940 <_realloc_r+0x280> - 1d9c2: 4621 mov r1, r4 - 1d9c4: 4630 mov r0, r6 - 1d9c6: 4698 mov r8, r3 - 1d9c8: 46d9 mov r9, fp - 1d9ca: f7f9 fa45 bl 16e58 - 1d9ce: 4634 mov r4, r6 - 1d9d0: e6f4 b.n 1d7bc <_realloc_r+0xfc> - 1d9d2: 4633 mov r3, r6 - 1d9d4: e7de b.n 1d994 <_realloc_r+0x2d4> - 1d9d6: 4621 mov r1, r4 - 1d9d8: 4630 mov r0, r6 - 1d9da: 46f0 mov r8, lr - 1d9dc: 46d9 mov r9, fp - 1d9de: f7f9 fa3b bl 16e58 - 1d9e2: 4634 mov r4, r6 - 1d9e4: e6ea b.n 1d7bc <_realloc_r+0xfc> - 1d9e6: bf00 nop - 1d9e8: 20000488 .word 0x20000488 - 1d9ec: 68a1 ldr r1, [r4, #8] - 1d9ee: f8cb 1010 str.w r1, [fp, #16] - 1d9f2: 68e1 ldr r1, [r4, #12] - 1d9f4: f8cb 1014 str.w r1, [fp, #20] - 1d9f8: 2a24 cmp r2, #36 ; 0x24 - 1d9fa: d020 beq.n 1da3e <_realloc_r+0x37e> - 1d9fc: 3410 adds r4, #16 - 1d9fe: f10b 0218 add.w r2, fp, #24 - 1da02: e79d b.n 1d940 <_realloc_r+0x280> - 1da04: 6923 ldr r3, [r4, #16] - 1da06: 6103 str r3, [r0, #16] - 1da08: 6961 ldr r1, [r4, #20] - 1da0a: 6141 str r1, [r0, #20] - 1da0c: f104 0218 add.w r2, r4, #24 - 1da10: f100 0318 add.w r3, r0, #24 - 1da14: e6b2 b.n 1d77c <_realloc_r+0xbc> - 1da16: 68a3 ldr r3, [r4, #8] - 1da18: f8cb 3010 str.w r3, [fp, #16] - 1da1c: 68e3 ldr r3, [r4, #12] - 1da1e: f8cb 3014 str.w r3, [fp, #20] - 1da22: 2a24 cmp r2, #36 ; 0x24 - 1da24: d021 beq.n 1da6a <_realloc_r+0x3aa> - 1da26: 3410 adds r4, #16 - 1da28: f10b 0318 add.w r3, fp, #24 - 1da2c: e7b2 b.n 1d994 <_realloc_r+0x2d4> - 1da2e: 4632 mov r2, r6 - 1da30: e731 b.n 1d896 <_realloc_r+0x1d6> - 1da32: 4621 mov r1, r4 - 1da34: 4630 mov r0, r6 - 1da36: f7f9 fa0f bl 16e58 - 1da3a: 4b16 ldr r3, [pc, #88] ; (1da94 <_realloc_r+0x3d4>) - 1da3c: e731 b.n 1d8a2 <_realloc_r+0x1e2> - 1da3e: 6922 ldr r2, [r4, #16] - 1da40: f8cb 2018 str.w r2, [fp, #24] - 1da44: 6962 ldr r2, [r4, #20] - 1da46: f8cb 201c str.w r2, [fp, #28] - 1da4a: 3418 adds r4, #24 - 1da4c: f10b 0220 add.w r2, fp, #32 - 1da50: e776 b.n 1d940 <_realloc_r+0x280> - 1da52: 68a1 ldr r1, [r4, #8] - 1da54: f8cb 1010 str.w r1, [fp, #16] - 1da58: 68e1 ldr r1, [r4, #12] - 1da5a: f8cb 1014 str.w r1, [fp, #20] - 1da5e: 2a24 cmp r2, #36 ; 0x24 - 1da60: d00d beq.n 1da7e <_realloc_r+0x3be> - 1da62: 3410 adds r4, #16 - 1da64: f10b 0218 add.w r2, fp, #24 - 1da68: e715 b.n 1d896 <_realloc_r+0x1d6> - 1da6a: 6923 ldr r3, [r4, #16] - 1da6c: f8cb 3018 str.w r3, [fp, #24] - 1da70: 6963 ldr r3, [r4, #20] - 1da72: f8cb 301c str.w r3, [fp, #28] - 1da76: 3418 adds r4, #24 - 1da78: f10b 0320 add.w r3, fp, #32 - 1da7c: e78a b.n 1d994 <_realloc_r+0x2d4> - 1da7e: 6922 ldr r2, [r4, #16] - 1da80: f8cb 2018 str.w r2, [fp, #24] - 1da84: 6962 ldr r2, [r4, #20] - 1da86: f8cb 201c str.w r2, [fp, #28] - 1da8a: 3418 adds r4, #24 - 1da8c: f10b 0220 add.w r2, fp, #32 - 1da90: e701 b.n 1d896 <_realloc_r+0x1d6> - 1da92: bf00 nop - 1da94: 20000488 .word 0x20000488 - -0001da98 <__swbuf_r>: - 1da98: b5f8 push {r3, r4, r5, r6, r7, lr} - 1da9a: 460d mov r5, r1 - 1da9c: 4614 mov r4, r2 - 1da9e: 4606 mov r6, r0 - 1daa0: b110 cbz r0, 1daa8 <__swbuf_r+0x10> - 1daa2: 6b83 ldr r3, [r0, #56] ; 0x38 - 1daa4: 2b00 cmp r3, #0 - 1daa6: d043 beq.n 1db30 <__swbuf_r+0x98> - 1daa8: f9b4 200c ldrsh.w r2, [r4, #12] - 1daac: 69a3 ldr r3, [r4, #24] - 1daae: 60a3 str r3, [r4, #8] - 1dab0: 0717 lsls r7, r2, #28 - 1dab2: b290 uxth r0, r2 - 1dab4: d51b bpl.n 1daee <__swbuf_r+0x56> - 1dab6: 6923 ldr r3, [r4, #16] - 1dab8: b1cb cbz r3, 1daee <__swbuf_r+0x56> - 1daba: b2ed uxtb r5, r5 - 1dabc: 0481 lsls r1, r0, #18 - 1dabe: 462f mov r7, r5 - 1dac0: d522 bpl.n 1db08 <__swbuf_r+0x70> - 1dac2: 6822 ldr r2, [r4, #0] - 1dac4: 6961 ldr r1, [r4, #20] - 1dac6: 1ad3 subs r3, r2, r3 - 1dac8: 4299 cmp r1, r3 - 1daca: dd29 ble.n 1db20 <__swbuf_r+0x88> - 1dacc: 3301 adds r3, #1 - 1dace: 68a1 ldr r1, [r4, #8] - 1dad0: 3901 subs r1, #1 - 1dad2: 60a1 str r1, [r4, #8] - 1dad4: 1c51 adds r1, r2, #1 - 1dad6: 6021 str r1, [r4, #0] - 1dad8: 7015 strb r5, [r2, #0] - 1dada: 6962 ldr r2, [r4, #20] - 1dadc: 429a cmp r2, r3 - 1dade: d02a beq.n 1db36 <__swbuf_r+0x9e> - 1dae0: 89a3 ldrh r3, [r4, #12] - 1dae2: 07db lsls r3, r3, #31 - 1dae4: d501 bpl.n 1daea <__swbuf_r+0x52> - 1dae6: 2d0a cmp r5, #10 - 1dae8: d025 beq.n 1db36 <__swbuf_r+0x9e> - 1daea: 4638 mov r0, r7 - 1daec: bdf8 pop {r3, r4, r5, r6, r7, pc} - 1daee: 4621 mov r1, r4 - 1daf0: 4630 mov r0, r6 - 1daf2: f7fc f91f bl 19d34 <__swsetup_r> - 1daf6: bb20 cbnz r0, 1db42 <__swbuf_r+0xaa> - 1daf8: f9b4 200c ldrsh.w r2, [r4, #12] - 1dafc: 6923 ldr r3, [r4, #16] - 1dafe: b290 uxth r0, r2 - 1db00: b2ed uxtb r5, r5 - 1db02: 0481 lsls r1, r0, #18 - 1db04: 462f mov r7, r5 - 1db06: d4dc bmi.n 1dac2 <__swbuf_r+0x2a> - 1db08: f442 5200 orr.w r2, r2, #8192 ; 0x2000 - 1db0c: 81a2 strh r2, [r4, #12] - 1db0e: 6e22 ldr r2, [r4, #96] ; 0x60 - 1db10: 6961 ldr r1, [r4, #20] - 1db12: f422 5200 bic.w r2, r2, #8192 ; 0x2000 - 1db16: 6622 str r2, [r4, #96] ; 0x60 - 1db18: 6822 ldr r2, [r4, #0] - 1db1a: 1ad3 subs r3, r2, r3 - 1db1c: 4299 cmp r1, r3 - 1db1e: dcd5 bgt.n 1dacc <__swbuf_r+0x34> - 1db20: 4621 mov r1, r4 - 1db22: 4630 mov r0, r6 - 1db24: f7fd fa0a bl 1af3c <_fflush_r> - 1db28: b958 cbnz r0, 1db42 <__swbuf_r+0xaa> - 1db2a: 6822 ldr r2, [r4, #0] - 1db2c: 2301 movs r3, #1 - 1db2e: e7ce b.n 1dace <__swbuf_r+0x36> - 1db30: f7fd fa8c bl 1b04c <__sinit> - 1db34: e7b8 b.n 1daa8 <__swbuf_r+0x10> - 1db36: 4621 mov r1, r4 - 1db38: 4630 mov r0, r6 - 1db3a: f7fd f9ff bl 1af3c <_fflush_r> - 1db3e: 2800 cmp r0, #0 - 1db40: d0d3 beq.n 1daea <__swbuf_r+0x52> - 1db42: f04f 37ff mov.w r7, #4294967295 ; 0xffffffff - 1db46: e7d0 b.n 1daea <__swbuf_r+0x52> - -0001db48 <_wcrtomb_r>: - 1db48: b570 push {r4, r5, r6, lr} - 1db4a: 4d0b ldr r5, [pc, #44] ; (1db78 <_wcrtomb_r+0x30>) - 1db4c: b084 sub sp, #16 - 1db4e: f8d5 50e0 ldr.w r5, [r5, #224] ; 0xe0 - 1db52: 4604 mov r4, r0 - 1db54: 461e mov r6, r3 - 1db56: b121 cbz r1, 1db62 <_wcrtomb_r+0x1a> - 1db58: 47a8 blx r5 - 1db5a: 1c43 adds r3, r0, #1 - 1db5c: d006 beq.n 1db6c <_wcrtomb_r+0x24> - 1db5e: b004 add sp, #16 - 1db60: bd70 pop {r4, r5, r6, pc} - 1db62: 460a mov r2, r1 - 1db64: a901 add r1, sp, #4 - 1db66: 47a8 blx r5 - 1db68: 1c43 adds r3, r0, #1 - 1db6a: d1f8 bne.n 1db5e <_wcrtomb_r+0x16> - 1db6c: 2200 movs r2, #0 - 1db6e: 238a movs r3, #138 ; 0x8a - 1db70: 6032 str r2, [r6, #0] - 1db72: 6023 str r3, [r4, #0] - 1db74: b004 add sp, #16 - 1db76: bd70 pop {r4, r5, r6, pc} - 1db78: 20000898 .word 0x20000898 - -0001db7c <__ascii_wctomb>: - 1db7c: b149 cbz r1, 1db92 <__ascii_wctomb+0x16> - 1db7e: 2aff cmp r2, #255 ; 0xff - 1db80: d802 bhi.n 1db88 <__ascii_wctomb+0xc> - 1db82: 700a strb r2, [r1, #0] - 1db84: 2001 movs r0, #1 - 1db86: 4770 bx lr - 1db88: 238a movs r3, #138 ; 0x8a - 1db8a: 6003 str r3, [r0, #0] - 1db8c: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff - 1db90: 4770 bx lr - 1db92: 4608 mov r0, r1 - 1db94: 4770 bx lr - 1db96: bf00 nop - -0001db98 : - 1db98: b508 push {r3, lr} - 1db9a: 2006 movs r0, #6 - 1db9c: f7fe fb04 bl 1c1a8 - 1dba0: 2001 movs r0, #1 - 1dba2: f7e2 fbf7 bl 394 <_exit> - 1dba6: bf00 nop - -0001dba8 <__gedf2>: - 1dba8: f04f 3cff mov.w ip, #4294967295 ; 0xffffffff - 1dbac: e006 b.n 1dbbc <__cmpdf2+0x4> - 1dbae: bf00 nop - -0001dbb0 <__ledf2>: - 1dbb0: f04f 0c01 mov.w ip, #1 - 1dbb4: e002 b.n 1dbbc <__cmpdf2+0x4> - 1dbb6: bf00 nop - -0001dbb8 <__cmpdf2>: - 1dbb8: f04f 0c01 mov.w ip, #1 - 1dbbc: f84d cd04 str.w ip, [sp, #-4]! - 1dbc0: ea4f 0c41 mov.w ip, r1, lsl #1 - 1dbc4: ea7f 5c6c mvns.w ip, ip, asr #21 - 1dbc8: ea4f 0c43 mov.w ip, r3, lsl #1 - 1dbcc: bf18 it ne - 1dbce: ea7f 5c6c mvnsne.w ip, ip, asr #21 - 1dbd2: d01b beq.n 1dc0c <__cmpdf2+0x54> - 1dbd4: b001 add sp, #4 - 1dbd6: ea50 0c41 orrs.w ip, r0, r1, lsl #1 - 1dbda: bf0c ite eq - 1dbdc: ea52 0c43 orrseq.w ip, r2, r3, lsl #1 - 1dbe0: ea91 0f03 teqne r1, r3 - 1dbe4: bf02 ittt eq - 1dbe6: ea90 0f02 teqeq r0, r2 - 1dbea: 2000 moveq r0, #0 - 1dbec: 4770 bxeq lr - 1dbee: f110 0f00 cmn.w r0, #0 - 1dbf2: ea91 0f03 teq r1, r3 - 1dbf6: bf58 it pl - 1dbf8: 4299 cmppl r1, r3 - 1dbfa: bf08 it eq - 1dbfc: 4290 cmpeq r0, r2 - 1dbfe: bf2c ite cs - 1dc00: 17d8 asrcs r0, r3, #31 - 1dc02: ea6f 70e3 mvncc.w r0, r3, asr #31 - 1dc06: f040 0001 orr.w r0, r0, #1 - 1dc0a: 4770 bx lr - 1dc0c: ea4f 0c41 mov.w ip, r1, lsl #1 - 1dc10: ea7f 5c6c mvns.w ip, ip, asr #21 - 1dc14: d102 bne.n 1dc1c <__cmpdf2+0x64> - 1dc16: ea50 3c01 orrs.w ip, r0, r1, lsl #12 - 1dc1a: d107 bne.n 1dc2c <__cmpdf2+0x74> - 1dc1c: ea4f 0c43 mov.w ip, r3, lsl #1 - 1dc20: ea7f 5c6c mvns.w ip, ip, asr #21 - 1dc24: d1d6 bne.n 1dbd4 <__cmpdf2+0x1c> - 1dc26: ea52 3c03 orrs.w ip, r2, r3, lsl #12 - 1dc2a: d0d3 beq.n 1dbd4 <__cmpdf2+0x1c> - 1dc2c: f85d 0b04 ldr.w r0, [sp], #4 - 1dc30: 4770 bx lr - 1dc32: bf00 nop - -0001dc34 <__aeabi_cdrcmple>: - 1dc34: 4684 mov ip, r0 - 1dc36: 4610 mov r0, r2 - 1dc38: 4662 mov r2, ip - 1dc3a: 468c mov ip, r1 - 1dc3c: 4619 mov r1, r3 - 1dc3e: 4663 mov r3, ip - 1dc40: e000 b.n 1dc44 <__aeabi_cdcmpeq> - 1dc42: bf00 nop - -0001dc44 <__aeabi_cdcmpeq>: - 1dc44: b501 push {r0, lr} - 1dc46: f7ff ffb7 bl 1dbb8 <__cmpdf2> - 1dc4a: 2800 cmp r0, #0 - 1dc4c: bf48 it mi - 1dc4e: f110 0f00 cmnmi.w r0, #0 - 1dc52: bd01 pop {r0, pc} - -0001dc54 <__aeabi_dcmpeq>: - 1dc54: f84d ed08 str.w lr, [sp, #-8]! - 1dc58: f7ff fff4 bl 1dc44 <__aeabi_cdcmpeq> - 1dc5c: bf0c ite eq - 1dc5e: 2001 moveq r0, #1 - 1dc60: 2000 movne r0, #0 - 1dc62: f85d fb08 ldr.w pc, [sp], #8 - 1dc66: bf00 nop - -0001dc68 <__aeabi_dcmplt>: - 1dc68: f84d ed08 str.w lr, [sp, #-8]! - 1dc6c: f7ff ffea bl 1dc44 <__aeabi_cdcmpeq> - 1dc70: bf34 ite cc - 1dc72: 2001 movcc r0, #1 - 1dc74: 2000 movcs r0, #0 - 1dc76: f85d fb08 ldr.w pc, [sp], #8 - 1dc7a: bf00 nop - -0001dc7c <__aeabi_dcmple>: - 1dc7c: f84d ed08 str.w lr, [sp, #-8]! - 1dc80: f7ff ffe0 bl 1dc44 <__aeabi_cdcmpeq> - 1dc84: bf94 ite ls - 1dc86: 2001 movls r0, #1 - 1dc88: 2000 movhi r0, #0 - 1dc8a: f85d fb08 ldr.w pc, [sp], #8 - 1dc8e: bf00 nop - -0001dc90 <__aeabi_dcmpge>: - 1dc90: f84d ed08 str.w lr, [sp, #-8]! - 1dc94: f7ff ffce bl 1dc34 <__aeabi_cdrcmple> - 1dc98: bf94 ite ls - 1dc9a: 2001 movls r0, #1 - 1dc9c: 2000 movhi r0, #0 - 1dc9e: f85d fb08 ldr.w pc, [sp], #8 - 1dca2: bf00 nop - -0001dca4 <__aeabi_dcmpgt>: - 1dca4: f84d ed08 str.w lr, [sp, #-8]! - 1dca8: f7ff ffc4 bl 1dc34 <__aeabi_cdrcmple> - 1dcac: bf34 ite cc - 1dcae: 2001 movcc r0, #1 - 1dcb0: 2000 movcs r0, #0 - 1dcb2: f85d fb08 ldr.w pc, [sp], #8 - 1dcb6: bf00 nop - -0001dcb8 <__aeabi_dcmpun>: - 1dcb8: ea4f 0c41 mov.w ip, r1, lsl #1 - 1dcbc: ea7f 5c6c mvns.w ip, ip, asr #21 - 1dcc0: d102 bne.n 1dcc8 <__aeabi_dcmpun+0x10> - 1dcc2: ea50 3c01 orrs.w ip, r0, r1, lsl #12 - 1dcc6: d10a bne.n 1dcde <__aeabi_dcmpun+0x26> - 1dcc8: ea4f 0c43 mov.w ip, r3, lsl #1 - 1dccc: ea7f 5c6c mvns.w ip, ip, asr #21 - 1dcd0: d102 bne.n 1dcd8 <__aeabi_dcmpun+0x20> - 1dcd2: ea52 3c03 orrs.w ip, r2, r3, lsl #12 - 1dcd6: d102 bne.n 1dcde <__aeabi_dcmpun+0x26> - 1dcd8: f04f 0000 mov.w r0, #0 - 1dcdc: 4770 bx lr - 1dcde: f04f 0001 mov.w r0, #1 - 1dce2: 4770 bx lr - -0001dce4 <__aeabi_d2iz>: - 1dce4: ea4f 0241 mov.w r2, r1, lsl #1 - 1dce8: f512 1200 adds.w r2, r2, #2097152 ; 0x200000 - 1dcec: d215 bcs.n 1dd1a <__aeabi_d2iz+0x36> - 1dcee: d511 bpl.n 1dd14 <__aeabi_d2iz+0x30> - 1dcf0: f46f 7378 mvn.w r3, #992 ; 0x3e0 - 1dcf4: ebb3 5262 subs.w r2, r3, r2, asr #21 - 1dcf8: d912 bls.n 1dd20 <__aeabi_d2iz+0x3c> - 1dcfa: ea4f 23c1 mov.w r3, r1, lsl #11 - 1dcfe: f043 4300 orr.w r3, r3, #2147483648 ; 0x80000000 - 1dd02: ea43 5350 orr.w r3, r3, r0, lsr #21 - 1dd06: f011 4f00 tst.w r1, #2147483648 ; 0x80000000 - 1dd0a: fa23 f002 lsr.w r0, r3, r2 - 1dd0e: bf18 it ne - 1dd10: 4240 negne r0, r0 - 1dd12: 4770 bx lr - 1dd14: f04f 0000 mov.w r0, #0 - 1dd18: 4770 bx lr - 1dd1a: ea50 3001 orrs.w r0, r0, r1, lsl #12 - 1dd1e: d105 bne.n 1dd2c <__aeabi_d2iz+0x48> - 1dd20: f011 4000 ands.w r0, r1, #2147483648 ; 0x80000000 - 1dd24: bf08 it eq - 1dd26: f06f 4000 mvneq.w r0, #2147483648 ; 0x80000000 - 1dd2a: 4770 bx lr - 1dd2c: f04f 0000 mov.w r0, #0 - 1dd30: 4770 bx lr - 1dd32: bf00 nop - -0001dd34 <_read>: - 1dd34: 4b02 ldr r3, [pc, #8] ; (1dd40 <_read+0xc>) - 1dd36: 2258 movs r2, #88 ; 0x58 - 1dd38: 601a str r2, [r3, #0] - 1dd3a: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff - 1dd3e: 4770 bx lr - 1dd40: 20005804 .word 0x20005804 - -0001dd44 <_write>: - 1dd44: 4b02 ldr r3, [pc, #8] ; (1dd50 <_write+0xc>) - 1dd46: 2258 movs r2, #88 ; 0x58 - 1dd48: 601a str r2, [r3, #0] - 1dd4a: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff - 1dd4e: 4770 bx lr - 1dd50: 20005804 .word 0x20005804 - 1dd54: 682f2e2e .word 0x682f2e2e - 1dd58: 732f6c61 .word 0x732f6c61 - 1dd5c: 682f6372 .word 0x682f6372 - 1dd60: 695f6c61 .word 0x695f6c61 - 1dd64: 00632e6f .word 0x00632e6f - 1dd68: 74697845 .word 0x74697845 - 1dd6c: 20676e69 .word 0x20676e69 - 1dd70: 68746977 .word 0x68746977 - 1dd74: 61747320 .word 0x61747320 - 1dd78: 20737574 .word 0x20737574 - 1dd7c: 0a2e6425 .word 0x0a2e6425 - 1dd80: 00 .byte 0x00 - 1dd81: 2e .byte 0x2e - 1dd82: 2f2e .short 0x2f2e - 1dd84: 2f6c6168 .word 0x2f6c6168 - 1dd88: 2f637273 .word 0x2f637273 - 1dd8c: 5f6c6168 .word 0x5f6c6168 - 1dd90: 656d6974 .word 0x656d6974 - 1dd94: 00632e72 .word 0x00632e72 - 1dd98: 682f2e2e .word 0x682f2e2e - 1dd9c: 752f6c61 .word 0x752f6c61 - 1dda0: 736c6974 .word 0x736c6974 - 1dda4: 6372732f .word 0x6372732f - 1dda8: 6974752f .word 0x6974752f - 1ddac: 6c5f736c .word 0x6c5f736c - 1ddb0: 2e747369 .word 0x2e747369 - 1ddb4: 0063 .short 0x0063 - 1ddb6: 2e2e .short 0x2e2e - 1ddb8: 6c70682f .word 0x6c70682f - 1ddbc: 7265732f .word 0x7265732f - 1ddc0: 2f6d6f63 .word 0x2f6d6f63 - 1ddc4: 5f6c7068 .word 0x5f6c7068 - 1ddc8: 63726573 .word 0x63726573 - 1ddcc: 632e6d6f .word 0x632e6d6f - 1ddd0: 00000000 .word 0x00000000 - 1ddd4: 40003000 .word 0x40003000 - 1ddd8: 40003400 .word 0x40003400 - 1dddc: 41012000 .word 0x41012000 - 1dde0: 41014000 .word 0x41014000 - 1dde4: 43000000 .word 0x43000000 - 1dde8: 43000400 .word 0x43000400 - 1ddec: 43000800 .word 0x43000800 - 1ddf0: 43000c00 .word 0x43000c00 - -0001ddf4 <_i2cms>: - 1ddf4: 00000003 00200014 00000100 000000ff ...... ......... - 1de04: 00d70000 07270400 ......'. - -0001de0c : - ... - 1de1c: 2f2e2e00 2f6c6168 2f637273 5f6c6168 .../hal/src/hal_ - 1de2c: 72617375 73615f74 2e636e79 2e2e0063 usart_async.c... - 1de3c: 6c61682f 6974752f 732f736c 752f6372 /hal/utils/src/u - 1de4c: 736c6974 6e69725f 66756267 2e726566 tils_ringbuffer. - 1de5c: 2e2e0063 6c70682f 2f63742f 5f6c7068 c.../hpl/tc/hpl_ - 1de6c: 632e6374 00000000 40003800 40003c00 tc.c.....8.@.<.@ - 1de7c: 4101a000 4101c000 42001400 42001800 ...A...A...B...B - 1de8c: 43001400 43001800 ...C...C - -0001de94 <_tcs>: - 1de94: 006b0000 00000308 00000000 00003a97 ..k..........:.. - 1dea4: 00000000 682f2e2e 702f6c70 2f74726f ....../hpl/port/ - 1deb4: 5f6c7068 6f697067 7361625f 00682e65 hpl_gpio_base.h. - 1dec4: 75323025 3230253a 30253a75 253a7532 %02u:%02u:%02u:% - 1ded4: 00753330 454e4f4e 41525400 5b004543 03u.NONE.TRACE.[ - 1dee4: 4c47564c 73255b5d 73255b5d 73255b5d LVGL][%s][%s][%s - 1def4: 64255b5d 2d2d205d 0d732509 4e49000a ][%d] --.%s...IN - 1df04: 57004f46 004e5241 4f525245 00000052 FO.WARN.ERROR... - -0001df14 : - 1df14: 0001df02 0001df07 0001df0c 6c6c6548 ............Hell - 1df24: 6f57206f 00646c72 o World. - -0001df2c : - 1df2c: 1662e40a 0000855b 0001df38 ..b.[...8... - -0001df38 : - 1df38: ff07060b ffac882c ff871f25 ff895139 ....,...%...9Q.. - 1df48: ffdcc46d ffc88348 ffc65632 ff46434d m...H...2V..MCF. - 1df58: ff480a16 ffbca25c ffc22d38 ff8b6c67 ..H.\...8-..gl.. - 1df68: ff48272d ff893622 ffc76d41 ffc38576 -'H."6..Am..v... - 1df78: ffc6a49a ffa53520 ff692621 ffa95139 .... 5..!&i.9Q.. - 1df88: ffe8e2a9 ff26242e ffe96e40 ffe98843 .....$&.@n..C... - 1df98: ffaea64b ff873848 ffc5c4c9 ffa86e33 K...H8......3n.. - 1dfa8: ff69646a ffe45640 ff69342e ff280917 jdi.@V...4i...(. - 1dfb8: ffa8554e ffe7a996 ff838383 ff67101b NU............g. - 1dfc8: ff9e8880 ffc76e60 ffe7a65f ffe99647 ....`n.._...G... - 1dfd8: ffe68779 ffa9202e ff694527 ff8a4335 y.... ..'Ei.5C.. - 1dfe8: ffa76f64 ff493329 ffc0b5af ff89575f do..)3I....._W.. - 1dff8: ffc75543 ffa9462d ff9f9789 ffab603f CU..-F......?`.. - 1e008: ff882c1d ffc97948 ff27151b ffc69482 .,..Hy....'..... - 1e018: ff69282f ffe6b669 ffdfd484 ff48151b /(i.i.........H. - 1e028: ffc89364 ffe66e5b ffc14715 ffe4c4bc d...[n...G...... - 1e038: ff98371e ffc66343 ffe1e4e8 ff73542a .7..Cc......*Ts. - 1e048: ff673a3e ffb7532b ff872b32 ffe68a60 >:g.+S..2+..`... - 1e058: ff19141e ffd68448 ff38373f ffea9964 ....H...?78.d... - 1e068: ffd69881 ff875f47 ff592621 ff37161a ....G_..!&Y...7. - 1e078: ffe65550 ff886e77 ffd8a894 ffa97a73 PU..wn......sz.. - 1e088: ff571922 ffeba872 fff6f3de ffa3a59e ".W.r........... - 1e098: ffe03d49 ff671c24 ffa28c94 ffa86254 I=..$.g.....Tb.. - 1e0a8: ffecc483 ffd76e48 ffa9473f ffa93a38 ....Hn..?G..8:.. - 1e0b8: ffd5d4d6 ffa77937 ffe76254 ff595861 ....7y..Tb..aXY. - 1e0c8: ff884648 ffd6b4a7 ffb0999a ff9b5036 HF..........6P.. - 1e0d8: ff782620 ff392328 ffb3b5b4 ffe77a45 &x.(#9.....Ez.. - 1e0e8: ffe8b596 ff593331 ffd87a46 ffc19aa2 ....13Y.Fz...... - 1e0f8: ff160c16 ffb1887e ff886263 ff797679 ....~...cb..yvy. - 1e108: ff762930 ffc13d43 ff973c30 ff79362d 0)v.C=..0<..-6y. - 1e118: ff67474c ff994530 ffbfb560 fff7975f LGg.0E..`..._... - 1e128: ffd7624b ffc9875c ff952d18 ffe87959 Kb..\....-..Yy.. - 1e138: ffc04945 ff94968f ff9c9729 ffebddae EI......)....... - 1e148: ffc0aa64 ffe99a78 fff3ead1 ffc56232 d...x.......2b.. - 1e158: ffd8343e ff685a61 ffda9842 fff1643e >4..aZh.B...>d.. - 1e168: ff928678 ffd8b859 ffc67a62 ffe4dcdd x...Y...bz...... - 1e178: ff867c7c ff574a54 ffdaa94f ffd58a7b ||..TJW.O...{... - 1e188: ffafa9a4 ffd9a57b ffd6cdcd ff766b6f ....{.......okv. - 1e198: ffecd27c fff7b894 ffa99931 ff84766c |.......1...lv.. - 1e1a8: ffe1cb82 ffd85019 fff5b57b ffb96d49 .....P..{...Im.. - 1e1b8: ffbb7947 ffac2b34 ffd7895e ffa48654 Gy..4+..^...T... - 1e1c8: ff972129 ff570c18 ffc3aaaf ffede6bf )!....W......... - 1e1d8: ffacac64 ff370815 fff9a55c ff7b4432 d.....7.\...2D{. - 1e1e8: ffc1bcbf fff69b7e ff78575a ffb76e5f ....~...ZWx._n.. - 1e1f8: ff99614b ffb97a64 ff771a22 ff994747 Ka..dz..".w.GG.. - 1e208: ff986266 fff68745 fff6a996 ff77121c fb..E.........w. - 1e218: fff7964c ffd8544a fffbc7b6 ff783a40 L...JT......@:x. - 1e228: fffa875f fff5a67a ffae8b97 ff78484a _...z.......JHx. - 1e238: fff8d7bb fffbfaf8 fff2c89a ffeeebeb ................ - 1e248: fffb6e49 ffb7624f fffb6459 ffd97965 In..Ob..Yd..ey.. - 1e258: ff883930 ff973747 ff483942 ff291825 09..G7..B9H.%.). - 1e268: ffe4da9b ff481725 ffd79d99 ff381825 ....%.H.....%.8. - 1e278: fff75652 ff995249 ffe5bcb4 ff5a373e RV..IR......>7Z. - 1e288: ff98944c ffd99566 fffcd2d4 ffb7584e L...f.......NX.. - 1e298: ff97595d ffc3343f ffdc494b ff95786b ]Y..?4..KI..kx.. - 1e2a8: ffb9613b ff982931 fff97a43 ffd03c46 ;a..1)..Cz..F<.. - 1e2b8: fffb785b ff997b7b ffa63c23 ffc79d8b [x..{{..#<...... - 1e2c8: ffdadbdf ff885350 ff9f9b96 ffeab97a ....PS......z... - 1e2d8: ffb7553a ff572a2f ffd7aba7 ffd9babb :U../*W......... - 1e2e8: ff382938 ff8e8b89 ffdbbb69 ffecd7a1 8)8.....i....... - 1e2f8: fff8b8ab ff966f68 ffab6c51 ffd86f5d ....ho..Ql..]o.. - 1e308: fffb6e5b ff997077 ffd56331 ffd14848 [n..wp..1c..HH.. - 1e318: fffc5a44 ffdccc73 ff4b4b54 ffc38c7a DZ..s...TKK.z... - 1e328: ffc6ac9f ff2b2c37 ffcbcbcf ff6b6b6f ....7,+.....okk. - 1e338: 70707070 70707070 70707070 70704870 pppppppppppppHpp - 1e348: 48487070 36363648 e90c69cb 7744442d ppHHH666.i..-DDw - 1e358: 771212e9 133179c8 c8763113 133179c8 ...w.y1..1v..y1. - 1e368: e2e23131 407e40e2 40e2e2e2 25c531e2 11...@~@...@.1.% - 1e378: 30c785a2 0d76b35e 46464646 404040dd ...0^.v.FFFF.@@@ - 1e388: d1135e5f 5f762bb3 c876765f 9ca240c8 _^...+v__vv..@.. - 1e398: e714c156 bd0439bd 9c263ae7 140404a7 V....9...:&..... - 1e3a8: 7be0bce7 8047efef f3bc3d80 569c4733 ...{..G..=..3G.V - 1e3b8: 5c56c1c1 9ce79cee 56ef39f9 9c86f93a ..V\.....9.V:... - 1e3c8: 0e0ec785 9ccc55c7 c156e74b 9f35a2c2 .....U..K.V...5. - 1e3d8: 9f9f9f9f 339f9f9f 67672033 20677979 .......33 ggyyg - 1e3e8: dc132020 1e126717 7070704e 70707070 ...g..Nppppppp - 1e3f8: 70707070 70487070 48487070 36364848 ppppppHpppHHHH66 - 1e408: 694e0c36 2b2b2d69 744e1e2b 3179c877 6.Nii-+++.Ntw.y1 - 1e418: 7631315e 3179c8c8 e2313113 3440e2e2 ^11v..y1.11...@4 - 1e428: e2313140 9f9fd731 c72825c5 76b35e30 @11.1....%(.0^.v - 1e438: 4634340d 40407e46 13b37640 2b2bb3d1 .44FF~@@@v....++ - 1e448: 40765f5f 6e407676 86c1869c f9e73904 __v@vv@n.....9.. - 1e458: 559c3955 ee9c869c f4bc5c14 4783ef7b U9.U.....\..{..G - 1e468: bc625e80 044720f3 c1c1c186 c28304f9 .^b.. G......... - 1e478: 9c39f9e7 a7f9ccc1 35354b9c a75cd535 ..9......K555.\. - 1e488: 565c55ef 3cd5efc1 7d7d7d7d 05050505 .U\V...<}}}}.... - 1e498: c59f9fa0 33333333 dc333333 77136e17 ....3333333..n.w - 1e4a8: 7070740d 70707070 70707070 36487070 .tppppppppppppH6 - 1e4b8: 48707048 cb364848 4e4ecb36 bb1e1e0c HppHHH6.6.NN.... - 1e4c8: 4ec82bb3 2bc87777 79797979 79c8c876 .+.Nww.+yyyyv..y - 1e4d8: 31131331 40e2e231 1331e240 13c5af33 1..11..@@.1.3... - 1e4e8: 28f3e831 b35ee8f3 34340d76 7e7e4646 1..(..^.v.44FF~~ - 1e4f8: b3764040 2bb3d113 76315f2b 40767640 @@v....++_1v@vv@ - 1e508: 86a79c6e e7393a56 f955553a 9c86e726 n...V:9.:UU.&... - 1e518: b59c83ee 83efbce0 7cb35e4b 6e13f3e0 ........K^.|...n - 1e528: c1c186e7 a73a3ac1 550455e7 0483c19c .....::..U.U.... - 1e538: 67a2e73a 5c55a2a0 5c9e14a7 2683c156 :..g..U\...\V..& - 1e548: 3c3c3cd5 7d7d3c3c 9f350505 9fdcdc9f .<<<<<}}..5..... - 1e558: 3113c5c5 33336e0e 700d0d34 70707070 ...1.n334..ppppp - 1e568: 70707070 48707070 70704836 36484848 pppppppH6HppHHH6 - 1e578: 1e6936cb bb790c0c c82bbbbb c877744e .6i...y...+.Ntw. - 1e588: 2b2bc8c8 76c8c8c8 13133179 31313131 ..++...vy1..1111 - 1e598: c53176e2 7613c5af 25e83176 b3e841f3 .v1....vv1.%.A.. - 1e5a8: 340d76b3 34343434 5f114040 b3d1d1b3 .v.44444@@._.... - 1e5b8: 3131762b 76767676 c2e7f340 04a7c1c0 +v11vvvv@....... - 1e5c8: 55553a04 86e72604 9ccc8d3a c2bce0b8 .:UU.&..:....... - 1e5d8: b35e4bcc d13de07c c1a7396e 8383c1c1 .K^.|.=.n9...... - 1e5e8: 042639a7 14c19c55 9f4b9ee7 99853564 .9&.U.....K.d5.. - 1e5f8: 9e14a75c 83c186e7 7d3cd526 7d3c3c3c \.......&.<}<<<} - 1e608: a005057d 33dc9f9f 13dcc5dc 0d794579 }......3....yEy. - 1e618: 0d74680d 70707070 70707070 70707070 .ht.pppppppppppp - 1e628: 70704836 36484870 cfcbcbcb 2b1e6912 6HpppHH6.....i.+ - 1e638: 2b6dbbbb 7774122b 762b2bc8 c8c8c876 ..m++.tw.++vv... - 1e648: 13317976 13313113 9f133131 407933af vy1..11.11...3y@ - 1e658: 790d7676 5ee8e8e8 0d76b3b3 34343434 vv.y...^..v.4444 - 1e668: 11407e34 1313b35f 31767967 76767631 4~@._...gyv11vvv - 1e678: 390e7676 c1c156ef 39cc043a 39260426 vv.9.V..:..9&.&9 - 1e688: cc8def86 bce0b89c 5e4bcc5c 3dbc7c64 ........\.K^d|.= - 1e698: a7550ed1 a7c1c1c1 26e7a7cc 569c55ee ..U........&.U.V - 1e6a8: 35475583 2149f1b0 14143a9c c186e79e .UG5..I!.:...... - 1e6b8: 3cd52683 7d7d7d7d 3505057d dc9fa035 .&.<}}}}}..55... - 1e6c8: 13133333 0d767979 12743379 70707068 33..yyv.y3t.hppp - 1e6d8: 70707070 70707070 70704848 36484870 ppppppppHHpppHH6 - 1e6e8: cbcbcb36 c80c3636 d344bb2b 7412bb79 6...66..+.D.y..t - 1e6f8: 792bc877 76797979 3179c8c8 13131313 w.+yyyyv..y1.... - 1e708: af9f1331 763113dc e6344040 3131e22c 1.....1v@@4.,.11 - 1e718: 7679b35e 34340d0d 40403434 13b35f11 ^.yv..4444@@._.. - 1e728: 76b31313 7679315f 417676c8 c1c11439 ...v_1yv.vvA9... - 1e738: 1404ccc1 26ee4be7 8d83a755 f4b89c3a .....K.&U...:... - 1e748: 4bcce7bc bc7cb35e 260e133d c1c1c183 ...K^.|.=..&.... - 1e758: e7a79c83 e755e726 0e4befa7 a2f2f5dc ....&.U...K..... - 1e768: 143acc5c ef55e714 d52683c1 a27d7d3c \.:...U...&.<}}. - 1e778: 05057d7d 9f356e35 311333dc 40767979 }}..5n5..3.1yyv@ - 1e788: c87d3334 70701268 70707070 70704870 43}.h.pppppppHpp - 1e798: 70707070 48487070 cbcbcb36 773636cb ppppppHH6....66w - 1e7a8: 44bb2b76 1ee91ebb 2bc87774 31317979 v+.D....tw.+yy11 - 1e7b8: 79c8c879 e8e81331 c5b19fe8 31313131 y..y1.......1111 - 1e7c8: 647e0d40 5e406fc1 b35e5e5e 34340d76 @.~d.o@^^^^.v.44 - 1e7d8: 40343434 b35f4040 5e131313 31313176 444@@@_....^v111 - 1e7e8: 76767631 56ef3941 f914c1c1 397b5ca7 1vvvA9.V.....\{9 - 1e7f8: 83a72626 273a9c8d 3a39e0f4 b9b3804b &&....:'..9:K... - 1e808: c5133dbc c1c18355 869c83c1 55e7269c .=..U........&.U - 1e818: c75c3ae7 33e633dc 3a145cd5 bde714cc .:\..3.3.\.:.... - 1e828: 26ef865c 7d7d3c3c 05057d7d 35491735 \..&<<}}}}..5.I5 - 1e838: 1333dc9f 0d0d7979 c513680d 7074680d ..3.yy...h...htp - 1e848: 48487070 70364870 70483670 48707070 ppHHpH6pp6HppppH - 1e858: cbcbcb48 cbcbcbcb bb2b7677 771e6d44 H.......wv+.Dm.w - 1e868: 77771277 3179792b c8c87931 e8131379 w.ww+yy11y..y... - 1e878: d78e8ec5 31e2e231 024040e2 40a6c1be ....1..1.@@....@ - 1e888: 5e5e5e5e 340d76b3 0d346834 5f404040 ^^^^.v.44h4.@@@_ - 1e898: 1313135e 31315e5e 795e3131 5c264176 ^...^^1111^yvA&\ - 1e8a8: a7c1c186 7b9ca7f9 83264b55 3a048da7 .......{UK&....: - 1e8b8: bdf4f44b 5e807b3a 5b3de030 c18699af K...:{.^0.=[.... - 1e8c8: 9c14c1c1 554b9c86 4be75555 662ce89f ......KUUU.K..,f - 1e8d8: 145c4b33 e714cc3a efcc9ebd 7d3c7d85 3K\.:........}<} - 1e8e8: 057d7d7d 6e176e05 33dc9f35 0d767913 }}}..n.n5..3.yv. - 1e8f8: 79680d0d 74687413 70707070 48367070 ..hy.thtpppppp6H - 1e908: 36367070 48707048 cbcb3648 69cbcbcb pp66HppHH6.....i - 1e918: bb1e6936 bb44d344 777777c8 792b2b77 6i..D.D..wwww++y - 1e928: c8c87979 e8137979 e8257d8e 40403113 yy..yy...}%..1@@ - 1e938: 4040e2e2 60c1fe68 5e5e3176 0d76b35e ..@@h..`v1^^^.v. - 1e948: bb72680d 11e27eb2 13135e5f 315ee813 .hr..~.._^....^1 - 1e958: 5ee85e31 aa877931 c1c1869e 3aa7f9a7 1^.^1y.........: - 1e968: 4b4b267b ee26a783 f4f44b3a 307b9cad {&KK..&.:K....{0 - 1e978: 17e0e85e 83c210b1 a7c1c156 4b9c869c ^.......V......K - 1e988: 477b5555 6613dc0e 5c4bdc24 cc3a9ccc UU{G...f$.K\..:. - 1e998: 5cbdade7 7d7dd55c 7d7d7d7d 49173505 ...\\.}}}}}}.5.I - 1e9a8: dc9f9f35 76797913 340d0d0d 68687468 5....yyv...4hthh - 1e9b8: 70707068 70707070 48703670 70484836 hpppppppp6pH6HHp - 1e9c8: cbcb4848 cbcbcbcb 69cbcbcb 2b44d32d HH.........i-.D+ - 1e9d8: 770dc8ab 2b2b7777 c8c8792b 9f137979 ...www+++y..yy.. - 1e9e8: d7418e8e 344031e8 40e2e27e 5642e534 ..A..1@4~..@4.BV - 1e9f8: 5e5fd156 76b35e5e 2eb20d0d 7e7766c1 V._^^^.v.....fw~ - 1ea08: 135e31e2 5ee81313 13133131 6e311313 .1^....^11....1n - 1ea18: c156e7aa 863a86c1 4b4b7bcc 39a7cc4b ..V...:..{KKK..9 - 1ea28: e04bf939 7be77bc6 27dc5e30 5510fc85 9.K..{.{0^.'...U - 1ea38: c1c1569c 9c86f9a7 bcad4b4b 67dce80e .V......KK.....g - 1ea48: d50eb4ac 9c9c3a5c 85ade7cc 7dd59e9e ....\:.........} - 1ea58: 7d7d7d7d 4935057d dc9f3535 79791333 }}}}}.5I55..3.yy - 1ea68: 0d0d4076 6868340d 70707474 70707070 v@...4hhttpppppp - 1ea78: 70487070 4836cf48 cb484870 cb15cbcb ppHpH.6HpHH..... - 1ea88: 0ccbcbcb 44d32d0c 7979ab2b 2b77c840 .....-.D+.yy@.w+ - 1ea98: 7931792b 8edc7979 4141258e 7e1131d7 +y1yyy...%AA.1.~ - 1eaa8: 11117e34 c3e10240 4053c1c3 b35e5e5e 4~..@.....S@^^^. - 1eab8: 340d0d76 42c142bb 5e3134f1 13131313 v..4.B.B.41^.... - 1eac8: 13135e5e dcc535e8 569c4b27 3a86c1c1 ^^...5..'K.V...: - 1ead8: 7b7bcca7 a73a4b4b 4bee2639 e7bcc6e0 ..{{KK:.9&.K.... - 1eae8: 8ac5b97b 5b715255 c156ee47 86f9a7c1 {...URq[G.V..... - 1eaf8: bc7b4b3a 1313e85d 0ed11ab4 9c3ae7d5 :K{.].........:. - 1eb08: ad5ccc9c a2555585 7d7d7d7d 05057d7d ..\..UU.}}}}}}.. - 1eb18: 9f9f3505 793113dc 76767979 76767676 .5....1yyyvvvvvv - 1eb28: 70120d0d 48707070 70707070 36cfcf70 ...ppppHppppp..6 - 1eb38: 36487036 69cbcbcb e9cb6969 6d4477c8 6pH6...iii...wDm - 1eb48: 132bd344 c80d795e dc13792b 8eaf1313 D.+.^y..+y...... - 1eb58: 2541c525 11e2e841 117e347e 94684011 %.A%A...~4~..@h. - 1eb68: 10c1c3c3 5e5e5e40 460d76b3 c172b240 ....@^^^.v.F@.r. - 1eb78: c894c1c1 131313e2 135e5e5e dc3939e8 ........^^^..99. - 1eb88: 9c47dcdc 56c1c156 27cca7f9 9c277bb8 ..G.V..V...'.{'. - 1eb98: 394b39a7 bcc6e07b d5f37b55 20b13755 .9K9{...U{..U7. - 1eba8: 86396ed1 f9a7c1c1 bc27efa7 e813e87f .n9.......'..... - 1ebb8: 13ac6679 f9e7856e 5c3a5c5c d5d585bd yf..n...\\:\.... - 1ebc8: 7d7d7dd5 05050505 35350505 1313dc35 .}}}......555... - 1ebd8: 79797979 79797979 c8797979 70707070 yyyyyyyyyyy.pppp - 1ebe8: 70707048 cbcf3600 48483636 cbcbcb36 Hppp.6..66HH6... - 1ebf8: cb696969 bb77c877 ababb3bb 0d763113 iii.w.w......1v. - 1ec08: 13792bc8 9fb19fc5 41d7e813 e245e841 .+y........AA.E. - 1ec18: 7e347e11 68401111 c1c3c32e 5e31c896 .~4~..@h......1^ - 1ec28: 0d76b35e 5940460d c1c1c194 2079d160 ^.v..F@Y....`.y - 1ec38: 5eb3b3d1 9f9895e8 47313113 c1c1869c ...^.....11G.... - 1ec48: cca73a56 17b8bc27 b839a79c d0f4b8aa V:..'.....9..... - 1ec58: 21b69ebc 205bb195 395dd1d1 a7c1c1a7 ...!..[ ..]9.... - 1ec68: 273aa7f9 1313dc3d be1a79e8 e7ad47e8 ..:'=....y...G.. - 1ec78: 3a5ce79c a285bd5c 7da24bd5 a005057d ..\:\....K.}}... - 1ec88: 350505a0 13130e6e 79767979 31797979 ...5n...yyvyyyy1 - 1ec98: 5e5e315e 70707079 70704848 36004870 ^1^^ypppHHpppH.6 - 1eca8: 48cb36cf cbcbcb48 69696915 c8c869cb .6.HH....iii.i.. - 1ecb8: b3b32b1e 4076b32b 79797940 138e8e13 .+..+.v@@yyy.... - 1ecc8: 31317979 31314531 3440e2e2 40e2117e yy111E11..@4~..@ - 1ecd8: c3c360c8 31d1c3c1 7679b313 46460d0d .`.....1..yv..FF - 1ece8: c1e47734 53c3c1c1 b3b31379 9fd59f5e 4w.....Sy...^... - 1ecf8: 31311313 c1a70447 a73a56c1 b8e04bcc ..11G....V:..K.. - 1ed08: 55a7e7b5 e0b5bce0 babaadf4 b320c54c ...U........L. . - 1ed18: 5db3d1b3 c1c18326 cc830486 13134127 ...]&.......'A.. - 1ed28: e4d81313 adad5db4 e7e79c9e 85bd5c3a .....]......:\.. - 1ed38: a285d5a2 a0057d7d a0a0a0a0 13339f9f ....}}........3. - 1ed48: 0d2b7913 31797976 795e3131 70707979 .y+.vyy111^yyypp - 1ed58: 70483648 480ce969 cb363670 cbcb4836 H6Hpi..Hp66.6H.. - 1ed68: 696915cb 794ecb69 abab6d77 40312b67 ..iii.Nywm..g+1@ - 1ed78: 13131376 13af8e33 79797979 e2317979 v...3...yyyyyy1. - 1ed88: 4011e2e2 e2117e34 8f42e57e 53c1c342 ...@4~..~.B.B..S - 1ed98: b37913e2 460d0d76 72a44034 c1c156c1 ..y.v..F4@.r.V.. - 1eda8: b37971c1 13d75eb3 795e135e a7046e76 .qy..^..^.^yvn.. - 1edb8: f956c1c1 e04b1414 14e7b8b5 bce06226 ..V...K.....&b.. - 1edc8: babaadbc 5e807cad b3d1b364 c1cc265d .....|.^d...]&.. - 1edd8: cc0486c1 31e8273a 24791331 ad47d860 ....:'.11.y$`.G. - 1ede8: e79c9e85 bd5c9ce7 85d5a285 7d7d7da2 ......\......}}} - 1edf8: a0a0057d 9f9fa0a0 79133333 760d0d0d }.......33.y...v - 1ee08: 5e793179 7079795e 36364870 0c0c7000 y1y^^yyppH66.p.. - 1ee18: 367070cb cb484836 6969cbcb 4ecb6969 .pp66HH...iiii.N - 1ee28: bb1ee9c8 79b32b64 c5d71376 13c57d8e ....d+.yv....}.. - 1ee38: 76767679 76797979 11e2e240 117e347e yvvvyyyv@...~4~. - 1ee48: c3e57ee2 c1c3e4e4 79137610 0d0d7679 .~.......v.yyv.. - 1ee58: 5f403434 c3c16602 37c1c1c1 5e5eb3c8 44@_.f.....7..^^ - 1ee68: 315e5e5e ee6e7676 56c1c114 4b14ccf9 ^^^1vvn....V...K - 1ee78: 39b5b5e0 bc414b3a adf0babd 80dabcbd ...9:KA......... - 1ee88: 20b3645e 3a2641b3 0486c156 13179c9c ^d. .A&:V....... - 1ee98: c8135e79 adc56aac 9c398585 5c9ce7e7 y^...j....9....\ - 1eea8: 4bd585bd 3c7dd5ad 7d7d3c3c a0a07d7d ...K..}<<<}}}}.. - 1eeb8: 3333339f 0d2b6733 79790d0d b3b35e79 .3333g+...yyy^.. - 1eec8: 36367070 36000070 7048360c 48487070 pp66p..6.6HpppHH - 1eed8: 69cbcbcb cb696969 abe9cbcb 1364642b ...iiii.....+dd. - 1eee8: c5133179 13c57d0f 76767913 79797976 y1...}...yvvvyyy - 1eef8: 11404076 7e347e40 f17ee211 c36060c1 v@@.@~4~..~..``. - 1ef08: 137696c1 0d767979 11403446 6077e211 ..v.yyv.F4@...w` - 1ef18: 565642c3 5e0d6fc1 5e795e5e 5d40765e .BVV.o.^^^y^^v@] - 1ef28: c1c1cc39 14ccf956 b5bce026 8ed59c26 9...V...&...&... - 1ef38: e0f0d699 dae07be0 b3645e80 2741b320 .....{...^d. .A' - 1ef48: 86c186f9 49040404 31137913 f35ae4e5 .......I.y.1..Z. - 1ef58: 558555bd 9c9ee75c d5bdbd9c 9595b685 .U.U\........... - 1ef68: 216c2121 52525252 b13ce395 13339fa0 !!l!RRRR..<...3. - 1ef78: 0d34c879 b3797676 700036b3 70487048 y.4.vvy..6.pHpHp - 1ef88: 36363670 48707070 15cbcb48 69696969 p666pppHH...iiii - 1ef98: e90c69cb 206413bb c5137920 d7c58e0f .i....d y...... - 1efa8: 76311313 79797676 11404079 347e4011 ..1vvvyyy@@..@~4 - 1efb8: 02e21134 fe60c15a d856c1c3 76797931 4...Z.`...V.1yyv - 1efc8: 40340d0d 11315f11 8fe4c12f 66c156c3 ..4@._1./....V.f - 1efd8: 765e5e0d 0d765e5e 56cc3941 3af956c1 .^^v^^v.A9.V.V.: - 1efe8: e0f426cc 219ebdb5 bc9eba65 e0bcc6c6 .&.....!e....... - 1eff8: 195e75da d7b32064 c1860427 ee048d86 .u^.d ..'....... - 1f008: 1379136e f542e179 85555547 9e9ee755 n.y.y.B.GUU.U... - 1f018: 99993a3a d2baf06c 3c4c9521 7d7d3c3c ::..l...!.L<<<}} - 1f028: 4c3c7d7d fbce5252 c879139f 0d34340d }}E. - 21d8c: e887dce8 06e845e8 4545e8e8 45e8dce8 .....E....EE...E - 21d9c: 13f6de87 37797679 0d0db0fc 7774740d ....yvy7.....ttw - 21dac: 74777777 77777474 bbbb77bb 69e90c38 wwwtttww.w..8..i - 21dbc: 0ccfcfcf 483648cf cbcb48cb 89579169 .....H6H.H..i.W. - 21dcc: 69690c2d e944bf44 1ebb6444 771e1e1e -.iiD.D.Dd.....w - 21ddc: 79792b77 0dc8c82b 4141e876 76797913 w+yy+...v.AA.yyv - 21dec: 76404040 79797676 40763131 e2e24040 @@@vvvyy11v@@@.. - 21dfc: 7d333140 13a09552 31e23131 404040e2 @13}R...11.1.@@@ - 21e0c: 12114011 ff735722 4a979797 00000000 .@.."Ws....J.... - 21e1c: 00000000 1c1c97ec 739797ff 70704897 ...........s.Hpp - 21e2c: 60cf7070 31134066 45313131 acace640 pp.`f@.1111E@... - 21e3c: 32e1db24 4545e2e6 87dce8e8 4545e806 $..2..EE......EE - 21e4c: 45e8e8e8 e8e8e845 13e80645 e3677631 ...EE...E...1vg. - 21e5c: 7774b0fc 74747477 77777777 38747474 ..twwtttwwwwttt8 - 21e6c: bb772b77 cde9bbab cfcfcf69 366969cf w+w.....i....ii6 - 21e7c: 6d69cbcb e61c6969 6969ec91 d1e5780c ..imii....ii.x.. - 21e8c: 1e6d6dab 1e1e6464 792b771e c8c82b2b .mm.dd...w+y++.. - 21e9c: 5d30790d 76791341 40404076 79767676 .y0]A.yvv@@@vvvy - 21eac: 79313179 31404040 523c9f13 e2319f4c y11y@@@1.. - 2364c: 4a6391ab 00000048 00000000 70700000 ..cJH.........pp - 2365c: cf4fcfcf cd4ecd4f 545454cd cd54544e ..O.O.N..TTTNTT. - 2366c: 4e54543b 12771212 46a1df68 cd545459 ;TTN..w.h..FYTT. - 2367c: 232354cd a9a9a9a5 a9a9a9a9 080808a9 .T##............ - 2368c: 08080808 08080808 a5a5a508 a5a5a5a5 ................ - 2369c: a5a5a5a5 08a5a5a5 d9b2a9a9 2323a4df ..............## - 236ac: a5a52323 a5a90223 a5a5a5a5 b202b7a5 ##..#........... - 236bc: a4d9ddb7 89897391 4444e978 44ed4444 .....s..x.DDDD.D - 236cc: f7f7b975 5f75dff7 b702a4a1 59b2b2b7 u.....u_.......Y - 236dc: 54a55459 3b3ba93b 4f4fcdcd 1f4f3636 YT.T;.;;..OO66O. - 236ec: 1f363636 701f1f70 48707070 70707070 666.p..ppppHpppp - 236fc: cb364848 79690c69 ec89aef6 00000048 HH6.i.iy....H... - 2370c: 00000000 70000000 cd1fcd1f 4ecdcdcd .......p.......N - 2371c: 5454cdcd 54545454 54543b54 12124e54 ..TTTTTTT;TTTN.. - 2372c: a968d959 1f1f1f1f 701f1f1f a9a5a5a9 Y.h........p.... - 2373c: a9a9a9a9 a9a9a9a9 0808a908 08080808 ................ - 2374c: a5080808 a5a5a5a5 a9a908a5 08a9a9a9 ................ - 2375c: dfd90254 2323a4d9 a5a52323 08a423a5 T.....####...#.. - 2376c: a5a5a508 b7a5a5a5 02b7b2b2 89971c59 ............Y... - 2377c: 6de96d89 2278d344 dd02dd74 a1a1a1a1 .m.mD.x"t....... - 2378c: a4a4dda1 b2020202 54a55459 3ba90854 ........YT.TT..; - 2379c: 4f3bcd3b 36361f4f 3636361f 361f1f70 ;.;OO.66.666p..6 - 237ac: 70707036 70707070 36cb3670 770c69cb 6pppppppp6.6.i.w - 237bc: ec91338b 00000048 00007000 70000000 .3..H....p.....p - 237cc: 364fcf70 4e4fcdcd 54cd3b38 544e4e54 p.O6..ON8;.TTNNT - 237dc: 54545454 12545454 1f3bdd54 1f1f1f1f TTTTTTT.T.;..... - 237ec: 1f1f1f1f 0870701f a9a9a9a5 a9a9a9a9 .....pp......... - 237fc: a9a9a9a9 08080808 08080808 08a50808 ................ - 2380c: b2a5a9a9 d9a1a1dd d95858d9 2323a4a1 .........XX...## - 2381c: a5232323 a4a5a5a5 a5a5a959 a5a5a5a5 ###.....Y....... - 2382c: b2b223a5 89970cb7 e9e97889 89e9d36d .#.......x..m... - 2383c: dfda021c 2323b2a1 23b7b7b7 54232323 ......##...####T - 2384c: 3b545454 3ba93b3b 4f3b3b3b 1f1f1f4f TTT;;;.;;;;OO... - 2385c: 361f1f36 3670701f 48707036 70707070 6..6.pp66ppHpppp - 2386c: cb707048 6d69cf69 6944f606 00007036 Hpp.i.im..Di6p.. - 2387c: 00700000 00000000 36cd7000 cdcdcd1f ..p......p.6.... - 2388c: 4ecd4ee9 545454cd 54545454 54545454 .N.N.TTTTTTTTTTT - 2389c: 1f3b5954 1f1f1fa9 1f1f1f1f 1f1f1f1f TY;............. - 238ac: a9a5a970 a9a9a9a9 a9a9a9a9 0808a9a9 p............... - 238bc: 08080808 a9080808 d9a10208 58585858 ............XXXX - 238cc: d9d9dfdf 2323a4a1 a5232323 a508a5a5 ......#####..... - 238dc: a51f0202 a5a5a5a5 23a5a5a5 97fae546 ...........#F... - 238ec: e9788989 e96de9e9 2308911c a1d9a102 ..x...m....#.... - 238fc: a523b2a4 080808a5 cd54543b a93b3b3b ..#.....;TT.;;;. - 2390c: 1f4f3b3b 4fa91f1f 1f70704f 70707070 ;;O....OOpp.pppp - 2391c: 70707036 70707070 70363670 d30c6936 6pppppppp66p6i.. - 2392c: 69798b67 007048cb 00000000 00000000 g.yi.Hp......... - 2393c: 4f700000 cdcd4f1f 543bcd1e 545438e9 ..pO.O....;T.8TT - 2394c: 5454544e 54545454 a9545459 1f1f1fa9 NTTTTTTTYTT..... - 2395c: 1f1f1f1f 1f1f1f1f a9701f1f a9a9a9a5 ..........p..... - 2396c: a9a9a9a9 a9a9a9a9 0808a9a9 08a90808 ................ - 2397c: d9d9d9dd d9dfdfdf a1d9d9d9 23b702a1 ...............# - 2398c: a5232323 08a5a5a5 a9a10223 a5a5a508 ###.....#....... - 2399c: a5a5a5a5 6389e644 2d898989 6de90c0c ....D..c...-...m - 239ac: 0a1effe9 b7b2dda1 020202b2 02a4a402 ................ - 239bc: 3ba559b2 3ba9a908 543ba9a9 d9a1ddb2 .Y.;...;..;T.... - 239cc: 4f298888 70701f70 48707070 70707070 ..)Op.pppppHpppp - 239dc: cb487070 78693636 0c3e06e5 7048cb69 ppH.66ix..>.i.Hp - ... - 239f4: 70700000 4f4f7070 cdcd1e4e bbbb4e4e ..ppppOON...NN.. - 23a04: 54544e54 54545454 08545454 1f1f1fa9 TNTTTTTTTTT..... - 23a14: 1f1f1f1f 1f1f1f1f 1f1f1f1f a908a91f ................ - 23a24: a9a9a9a9 a9a9a9a9 a9a9a9a9 591f08a9 ...............Y - 23a34: d9a1a1d9 dfdfdfdf a1d9d9d9 23b70229 ............)..# - 23a44: a5232323 a5a5a5a5 a1b22308 08a5a9b2 ###......#...... - 23a54: 54a5a5a5 69bfe651 918991ff 2d0c0c0c ...TQ..i.......- - 23a64: 741c6d2d 58585888 0a0a8858 b202dda1 -m.t.XXXX....... - 23a74: 88d9ddb2 d90ad9d9 88d9d9d9 88888888 ................ - 23a84: 88888888 701f7029 70707070 70707070 ....)p.ppppppppp - 23a94: 70487070 892d6936 0ce2c889 4848cb69 ppHp6i-.....i.HH - 23aa4: 00000070 00000000 70000000 36707070 p..........pppp6 - 23ab4: 3b381ecd 381eab1e 54543864 54545454 ..8;...8d8TTTTTT - 23ac4: cd545454 1f1fa9a9 1f1f1f1f 1f1f1f1f TTT............. - 23ad4: 1f1f1f1f 081f1f1f a9a91f08 a9a9a9a9 ................ - 23ae4: a9a9a9a9 591f08a9 dfd9d958 d9d9df58 .......YX...X... - 23af4: a1a1d9d9 232302a4 a5232323 a5a5a5a5 ......#####..... - 23b04: b22308a5 08a9a1dd 44a508a5 08388ced ..#........D..8. - 23b14: 89911cca 0c0c0c91 63d30c2d d9a12923 ........-..c#).. - 23b24: 888888d9 58585858 59b229d9 d9d9a102 ....XXXX.).Y.... - 23b34: 880a0ad9 0a0a0ad9 0a0a0a0a 704f0a0a ..............Op - 23b44: 70707070 70707070 48707070 89cacb48 pppppppppppHH... - 23b54: 4e0d2d91 4836cbcb 00007070 00000000 .-.N..6Hpp...... - 23b64: 00000000 36707000 cd38cd1f bb1e7977 .....pp6..8.wy.. - 23b74: 54abbb1e 54545454 3b545454 a9a9083b ...TTTTTTTT;;... - 23b84: 1f1f1f1f a9a91f1f 1f1f1f1f 1f1f1f1f ................ - 23b94: a9a90800 a9a9a9a9 a9a9a9a9 08a9a9a9 ................ - 23ba4: 0854dd88 d9465908 a1a1a1d9 b723b7a4 ..T..YF.......#. - 23bb4: a5232323 a5a5a5a5 2308a5a5 b2d902b2 ###........#.... - 23bc4: 5154081f a508bfed 918963a9 0ccdca63 ..TQ.....c..c... - 23bd4: 910c2d0c a4a4b791 0a0aa1a1 dfd9d90a .-.............. - 23be4: 5858dfdf 6859ddd9 a1a1a129 0a0a0a0a ..XX..Yh)....... - 23bf4: a1a10a0a cfdda1a1 70703670 70707070 ........p6pppppp - 23c04: 70707070 6391ec48 cdcd69ca 4836cbcb ppppH..c.i....6H - 23c14: 00007048 00000000 00000000 70700000 Hp............pp - 23c24: 4f4fcd4f 54c80e4e 641e1e1e 54545438 O.OON..T...d8TTT - 23c34: 54545454 a9083b3b 1f1f1fa9 1f1f1f1f TTTT;;.......... - 23c44: 1f1fa9a9 1f1f1f1f 08a9cd1f a9a9a9a9 ................ - 23c54: a9a9a9a9 1fa9a9a9 1f00a502 1f1f1f1f ................ - 23c64: a1d9dda9 2323b702 a5a5a523 a5a5a5a5 ......###....... - 23c74: 08a5a5a5 a1b2b223 e6d3540a 08084e90 ....#....T...N.. - 23c84: 91ffcb08 690c6391 0c2d0c0c a4b72d63 .....c.i..-.c-.. - 23c94: a1a12929 a1a1a1a1 88d9d9d9 d958dfd9 ))............X. - 23ca4: a42959b2 a1a129a4 dda1a1a1 6846dddd .Y)..)........Fh - 23cb4: 7036703b 70707070 70707070 07910769 ;p6pppppppppi... - 23cc4: 36484815 48483648 00707048 00000000 .HH6H6HHHpp..... - 23cd4: 00000000 70007000 cdcd7070 12dc33cd .....p.ppp...3.. - 23ce4: 4e4e4e12 5454bbab 54545454 08543b54 .NNN..TTTTTTT;T. - 23cf4: 1f1fa9a9 1f1f1f1f 1fa91fa9 1f1f1f1f ................ - 23d04: 12131e1f a9a9a9a9 a9a9a9a9 1fa9a9a9 ................ - 23d14: a9000808 a9a9a9a9 021f1fa9 2323b2a1 ..............## - 23d24: a5a5a523 a5a5a5a5 08a5a5a5 b2b22308 #............#.. - 23d34: e69380a4 08080878 1c4a0808 69916391 ....x.....J..c.i - 23d44: 0c0c0c69 a5cf632d a40223a5 29a12929 i...-c...#..)).) - 23d54: a1a1a1a1 d9df88d9 cd0258df 54545968 .........X..hYTT - 23d64: 59595454 59595959 1f70cd54 70707070 TTYYYYYYT.p.pppp - 23d74: cb707070 ec91fa4a 48707048 48484848 ppp.J...HppHHHHH - 23d84: 70704848 00000000 00000000 00000000 HHpp............ - 23d94: 36367000 77791e4f 54e94e77 54ab1e54 .p66O.ywwN.TT..T - 23da4: 54545454 54545454 1fa9a908 1f1f1f1f TTTTTTTT........ - 23db4: a9a9a91f 1f1f1f1f 67331e1f a9084f79 ..........3gyO.. - 23dc4: 1fa9a9a9 a9a9a9a9 1f1fa91f 1f1f1f1f ................ - 23dd4: a9a9a91f 23dddd1f a5a52323 08a508a5 .......###...... - 23de4: a5a5a5a5 b2230808 ceea5bb2 08a9a95e ......#..[..^... - 23df4: 63a90808 ca639163 0c0c6969 a963ca0c ...cc.c.ii....c. - 23e04: a5a508a5 a4a4b2a5 dda1dddd dfd9a1dd ................ - 23e14: dfd9d9df b212cd68 595959b2 cdcd5454 ....h....YYYTT.. - 23e24: 70cfcdcd 70707070 4acb7070 cbec0707 ...ppppppp.J.... - 23e34: 70707048 48484870 48484848 00000070 HppppHHHHHHHp... - 23e44: 00000000 001f0000 4f700000 541ecd4f ..........pOO..T - 23e54: 4e4e774e 3838544e 54545454 54595454 NwNNNT88TTTTTTYT - 23e64: a9a90854 1f1f1f1f a9a91f1f 1f1f1fa9 T............... - 23e74: 1379121f a9123113 a9a9a9a9 a9a91f1f ..y..1.......... - 23e84: 1fa91fa9 1f1f1f1f a91f1f1f a1a91fa9 ................ - 23e94: a5a5a5b2 08080808 08080808 23080808 ...............# - 23ea4: 5ba66619 08290aa1 3608a91f 639191ff .f.[..)....6...c - 23eb4: 0cec690c fa91ec2d a5a5a508 a5080808 .i..-........... - 23ec4: 020202b2 4646dddd d9dfd9a1 cf54d9d9 ......FF......T. - 23ed4: 595454cd 59595959 cd545959 70707070 .TTYYYYYYYT.pppp - 23ee4: ca154870 70cb4a07 70700000 48487070 pH...J.p..ppppHH - 23ef4: 48484848 00007070 00000000 70000000 HHHHpp.........p - 23f04: 70000070 4ecf3b36 381e543b 1e544e4e p..p6;.N;T.8NNT. - 23f14: 54545454 59545454 08a53b59 a91f1fa9 TTTTTTTYY;...... - 23f24: a9a91f1f 1fa9a9a9 0d34121f 79131379 ..........4.y..y - 23f34: a9a908a9 1f1f1fa9 a91fa9a9 1f1f1f1f ................ - 23f44: 1f1f1f1f 1fa91f1f a5a5a454 08080808 ........T....... - 23f54: 08080808 cd08a508 7453a6f1 0aa12902 ..........St.).. - 23f64: 1f1f23a1 6391ff4a ec696991 63ec2d0c .#..J..c.ii..-.c - 23f74: a5a508ca 3ba5a5a5 b2543b3b dd466802 .......;;;T..hF. - 23f84: d9dd5968 a1d9d9df cdcfcfcf cdcdcdcd hY.............. - 23f94: 545454cd 7070704f 07ca1548 7070154a .TTTOpppH...J.pp - 23fa4: 70700070 70707070 48484848 00707070 p.ppppppHHHHppp. - ... - 23fc0: 4f1f7000 38cd3b4e 544e5438 544e5454 .p.ON;.88TNTTTNT - 23fd0: 54545454 a9595959 1fa9a908 a91f1f1f TTTTYYY......... - 23fe0: 1fa9a9a9 686868a9 13790d34 08081279 .....hhh4.y.y... - 23ff0: 1fa9a9a9 1f1f1f1f 1f1f1fa9 1f1f1f1f ................ - 24000: 1f1f1f1f b7b21fa9 080808a5 08080808 ................ - 24010: 44080808 596466e6 a1a40223 a4290a0a ...D.fdY#.....). - 24020: 63fffaa9 69690763 0c0cecec 08086963 ...cc.ii....ci.. - 24030: 08080808 3b3b3b3b 6868593b 5468dd68 ....;;;;;Yhhh.hT - 24040: a1d9d946 cdcb68d9 cdcdcdcd cdcdcd54 F....h......T... - 24050: 36704f54 4a07caec 70704815 70007070 TOp6...J.Hpppp.p - 24060: 70707070 70704848 70707070 00000000 ppppHHpppppp.... - 24070: 70000000 0000701f 70707000 cd3b544f ...p.p...pppOT;. - 24080: 4e4e3838 4e4e5454 54545459 12595959 88NNTTNNYTTTYYY. - 24090: 1f1fa959 a9a91f1f a91f1f1f 68686854 Y...........Thhh - 240a0: 76343468 08797979 a9a9a908 1f1f1f1f h44vyyy......... - 240b0: 1f1fa91f 1f1f1f1f 1f1f1f1f 3b1fa91f ...............; - 240c0: 0808a502 08080808 5154083b 23597294 ........;.TQ.rY# - 240d0: 02b223b2 a1a1a1a4 ffec0229 69ec631c .#......)....c.i - 240e0: ececec69 a5a963ca 3b3b3b08 3b3b3b3b i....c...;;;;;;; - 240f0: 54cdcd3b 46686868 d9745468 cfa1a1a1 ;..ThhhFhTt..... - 24100: cdcdcdcf cdcdcdcd 1536cdcd cbec4aca ..........6..J.. - 24110: 70707070 70707070 70707000 70707070 pppppppp.ppppppp - 24120: 70704870 00000070 00000000 001f7000 pHppp........p.. - 24130: a9700000 1f1f7070 381e38cd 3854544e ..p.pp...8.8NTT8 - 24140: 5454541e 12595959 3b591212 1f1f1fa9 .TTTYYY...Y;.... - 24150: 593ba91f 68b26868 34346868 310d0d0d ..;Yhh.hhh44...1 - 24160: a9a9a912 1f1fa9a9 1f081f1f 1f1f1f1f ................ - 24170: 1f1f1f1f a9a91f1f 0823021f 3b080808 ..........#....; - 24180: e6783b3b a508e9ed 2323b259 a1a102b2 ;;x.....Y.##.... - 24190: a5292929 699163ec ececec69 1ffa07ec )))..c.ii....... - 241a0: 3b3b0808 3b3b3b4f cdcd3b3b 686854cd ..;;O;;;;;...Thh - 241b0: cd6868b2 d9a1a168 cfcfcf54 cdcdcdcd .hh.h...T....... - 241c0: 36cdcdcd 704815ec 70707070 70707070 ...6..Hppppppppp - 241d0: 70707070 70707070 70484870 00000070 pppppppppHHpp... - 241e0: 00000000 00707000 00000000 1f70701f .....pp......pp. - 241f0: 1e38cd1f 5454381e 5412bb12 59595959 ..8..8TT...TYYYY - 24200: 59121259 59595959 0d741259 6868680d Y..YYYYYY.t..hhh - 24210: 34346868 0d343434 a9a97931 1fa9a9a9 hh44444.1y...... - 24220: a91f1f1f 1f1f1fa9 1f1f1f1f a9a91f1f ................ - 24230: b259364f 08080808 94e1e908 3b083bae O6Y..........;.; - 24240: 23b223a5 a4b259a5 29292929 ca697002 .#.#.Y..)))).pi. - 24250: ecec6969 4a91ecec 08a94fa9 4f4f3b3b ii.....J.O..;;OO - 24260: 3bcf4f4f 54cdcdcd 6868b2b2 a1ddcd54 OO.;...T..hhT... - 24270: cfcb46d9 cfcdcfcf cfcdcfcf 70707070 .F..........pppp - 24280: 70707070 70364848 70707070 70707070 ppppHH6ppppppppp - 24290: 70484870 00007070 00000000 00000000 pHHppp.......... - 242a0: 00000000 70707070 383b1f1f 544e3838 ....pppp..;888NT - 242b0: 12771254 59595959 59681259 b2595959 T.w.YYYYY.hYYYY. - 242c0: 683468b2 0dc82bc8 34686868 34343434 .h4h.+..hhh44444 - 242d0: 3b131340 a9a9a9a9 1f1f1f1f 1f1f081f @..;............ - 242e0: 1f1f1f1f a91f1f1f 0d1e4f4f 083b3bb2 ........OO...;;. - 242f0: 90e6ae08 083b08e9 59a5a53b b723a523 ......;.;..Y#.#. - 24300: 2929a4b2 cba92929 ec6969cf 63ececec ..))))...ii....c - 24310: a94fa9ec 4f4f4f4f cf4f4f4f cdcdcfcf ..O.OOOOOOO..... - 24320: 59b259cd 546868b2 cfa14654 cfcfcfcf .Y.Y.hhTTF...... - 24330: cdcfcfcf 7070001f 70707070 36363636 ......pppppp6666 - 24340: 00707048 70700070 70487070 00007070 Hpp.p.ppppHppp.. - ... - 2435c: 701f7000 a91f7070 5454543b 38121254 .p.ppp..;TTTT..8 - 2436c: 12125959 68126812 34685959 0d0d6868 YY...h.hYYh4hh.. - 2437c: c8c87468 68340dc8 34343434 e8314034 ht....4h44444@1. - 2438c: a9a9a912 1f1f1fa9 1f08701f 1f1f1f1f .........p...... - 2439c: 4fa9a91f 161e4f4f 0854b245 78e6ed6d ...OOO..E.T.m..x - 243ac: 083b3b3b a5a53ba9 a5082359 2902b723 ;;;..;..Y#..#..) - 243bc: 1fa5b729 151569cb ecececec a9a936fa )....i.......6.. - 243cc: 4f4f4fa9 4f4f4f4f cfcfcfcf 54cdcd4f .OOOOOOO....O..T - 243dc: 36540259 54484848 cfcfcfcd cfcfcfcf Y.T6HHHT........ - 243ec: 707070cf 48707070 4e4f3636 0070704f .ppppppH66ONOpp. - 243fc: 00000000 70707000 00000000 00000000 .....ppp........ - 2440c: 00000000 00007070 00000000 3b707070 ....pp......ppp; - 2441c: 543ba9a9 59545454 59591259 68686868 ..;TTTTYY.YYhhhh - 2442c: 0db2b268 c8683476 6868680d 34c80d0d h...v4h..hhh...4 - 2443c: 34340234 31403434 a9a9c813 1f1fa91f 4.4444@1........ - 2444c: a91f1f1f 1f1f1fa9 a9a9a9a9 06774fa9 .............Ow. - 2445c: 4e23e8b5 0c51e697 3b3bcd08 a53ba93b ..#N..Q...;;;.;. - 2446c: a52323a5 b702b2a5 00000008 15360000 .##...........6. - 2447c: ecec1569 4f1ffafa a9a9a9a9 4f4f4f4f i......O....OOOO - 2448c: cfcf4f4f cf4fcfcf 483659cd 48cbcb36 OO....O..Y6H6..H - 2449c: cfcb4f36 cfcfcfcf 700036cf 36707070 6O.......6.pppp6 - 244ac: 404f3636 70703640 00000000 70000000 66O@@6pp.......p - 244bc: 00000070 00000000 00000000 00000000 p............... - 244cc: 70000000 70700070 3b08a9a9 59125454 ...pp.pp...;TT.Y - 244dc: 77123812 68746812 b2b26868 3476130d .8.w.hthhh....v4 - 244ec: b268c876 0d346868 34023434 40343434 v.h.hh4.44.4444@ - 244fc: 3b797979 1f1f1fa9 701f1f1f a91fa9a9 yyy;.......p.... - 2450c: 1fa9a9a9 31c8cd1f bf79f687 a9d3edbe .......1..y..... - 2451c: 3bcdcd3b 3ba9083b 23a5a5a5 08022308 ;..;;..;...#.#.. - ... - 24534: 70700000 1f15cb70 a9a9a9a9 4fa9a9a9 ..ppp..........O - 24544: 4f4f4f4f cfcfcf4f 481f59cf 48483636 OOOOO....Y.H66HH - 24554: cf4f3648 4f4fcfcf 7070cf4f 70707070 H6O...OOO.pppppp - 24564: 344f4f36 7036129d 00000070 00000000 6OO4..6pp....... - 24574: 00000070 70007070 00007070 70700000 p...pp.ppp....pp - 24584: 00000000 70007070 4f1f1f70 3838593b ....pp.pp..O;Y88 - 24594: 12771212 74127477 68686868 340d68b2 ..w.wt.thhhh.h.4 - 245a4: 68767634 0d68b2b2 3434340d 34343434 4vvh..h..4444444 - 245b4: af79400d 1f1f08b4 1f1f1f1f 1fa91f1f .@y............. - 245c4: 701fa9a9 79311e4f e35b7976 a94fbf5a ...pO.1yvy[.Z.O. - 245d4: cdcd3b3b 4f3b3bcd a508a53b 0023b2a5 ;;...;;O;.....#. - ... - 245ec: 70000000 701fa91f a94f1f4f a9a9a9a9 ...p...pO.O..... - 245fc: 4f4f4f4f cb364f4f 481f594f 48483636 OOOOOO6.OY.H66HH - 2460c: 363b4848 364fcfcf 0048cb36 70707070 HH;6..O66.H.pppp - 2461c: 124fcf36 364fe29d 00000070 70000000 6.O...O6p......p - 2462c: 00000000 48707000 70707048 00000070 .....ppHHpppp... - ... - 24644: 1f1f7070 383854a9 77123838 59747412 pp...T8888.w.ttY - 24654: 68681268 59b26868 3468b2b2 68686834 h.hhhh.Y..h44hhh - 24664: 340dc8c8 34020234 fc37f279 a9543765 ...44..4y.7.e7T. - 24674: 1f1fa91f a91f1fa9 4f1f1fa9 7913791e ...........O.y.y - 24684: 65fbd176 3b081e0f cd3b4fa9 4f4fcdcd v..e...;.O;...OO - 24694: a53b3b4f 00a559a5 00000000 00000000 O;;..Y.......... - 246a4: 00000000 4f1f1f1f 1f361f1f 3636361f .......O..6..666 - 246b4: 4f4f3636 364f3636 48a95436 48484836 66OO66O66T.H6HHH - 246c4: 1fcf4848 36364f36 0036cb36 70707070 HH..6O666.6.pppp - 246d4: 4ecf3670 36129d3e 70007036 00000000 p6.N>..66p.p.... - 246e4: 70000070 48487070 48484848 00004848 p..pppHHHHHHHH.. - ... - 246fc: 1f707000 7454a91f 12383874 74741274 .pp...Ttt88.t.tt - 2470c: 68b25959 68686868 b2686868 686868b2 YY.hhhhhhhh..hhh - 2471c: c8790d68 2c2b3434 fbfc2ee3 c831795b h.y.44+,....[y1. - 2472c: a91f1fa9 a91f1fa9 1e4f1f1f 79314513 ..........O..E1y - 2473c: e3657167 4f740dd1 3b4fa908 4fcfcdcd gqe...tO..O;...O - 2474c: 3b4f4f4f 00a9233b 00000000 00000000 OOO;;#.......... - 2475c: 00000000 701f1f70 3670a91f 361f1f1f ....p..p..p6...6 - 2476c: 36363636 364f4f36 70083b36 48484848 66666OO66;.pHHHH - 2477c: 1f364848 36364f36 00363636 70707070 HH6.6O66666.pppp - 2478c: 3b4f361f cde29d40 00004836 70007000 .6O;@...6H...p.p - 2479c: 70707000 48484848 15484848 00fd1515 .pppHHHHHHH..... - 247ac: 00007070 70000000 70707070 54a9361f pp.....ppppp.6.T - 247bc: 74747412 68121212 68595974 68686868 .ttt...htYYhhhhh - 247cc: 68686868 68b26868 0d343468 fce32c79 hhhhhh.hh44.y,.. - 247dc: 76d153e3 79764040 1fa97745 1f1f1f1f .S.v@@vyEw...... - 247ec: 13c84ea9 133113e8 f2fcfcaf 0d0d0dc8 .N....1......... - 247fc: a9a9a93b cfcdcd4f a9a94f4f 00a9543b ;...O...OO..;T.. - ... - 24814: 48151500 1f007070 1fa9701f 36361f1f ...Hpp...p....66 - 24824: 36361f1f 36363636 703b3b36 48484848 ..6666666;;pHHHH - 24834: a9364848 36364f1f 70363636 70707000 HH6..O66666p.ppp - 24844: 4f363670 123e3e12 00703636 00000000 p66O.>>.66p..... - 24854: 48487070 15484848 fd151515 07074a4a ppHHHHH.....JJ.. - ... - 2486c: 1f700000 4f361f1f 7412543b 12681274 ..p...6O;T.tt.h. - 2487c: 5959340d 740d6868 68687434 b2686868 .4YYhh.t4thhhhh. - 2488c: c8346868 71fcfc53 34340dd1 76767676 hh4.S..q..44vvvv - 2489c: 31453131 4e541277 e8e86777 af313113 11E1w.TNwg...11. - 248ac: 79716510 0d0d0d0d a9a94e0d cfcf4fa9 .eqy.....N...O.. - 248bc: a94f4fcf 001fa5a9 00000000 00000000 .OO............. - 248cc: cb150000 70707048 1f1f7000 1f1f70a9 ....Hppp.p...p.. - 248dc: 1f36361f 36363636 703b4f36 48484870 .66.66666O;ppHHH - 248ec: 1f364848 36363648 70483636 70707070 HH6.H66666Hppppp - 248fc: 36367070 343e403b 7048364f 00000000 pp66;@>4O6Hp.... - 2490c: 48484870 15151548 07074afd 4a4a0707 pHHHH....J....JJ - 2491c: 000000fd 00000000 70700000 361f1f1f ..........pp...6 - 2492c: 12543b4f 68127474 b268130d 0d68b2b2 O;T.tt.h..h...h. - 2493c: 34346874 68686868 712b6868 79b46ffc th44hhhhhh+q.o.y - 2494c: 340d0d0d 76797634 31313176 13e8e813 ...44vyvv111.... - 2495c: 1313e845 37333113 76d13765 0d0dc876 E....137e7.vv... - 2496c: 4f74770d cf4fa9a9 a94fcfcf 007008a9 .wtO..O...O...p. - ... - 24984: 15480000 70707015 70007070 1f70a91f ..H..ppppp.p..p. - 24994: 361f1f1f 36363636 703b3636 70007070 ...6666666;ppp.p - 249a4: 36484848 48484870 00704836 70707070 HHH6pHHH6Hp.pppp - 249b4: 36707070 e23e1236 704836cd 48707070 ppp66.>..6HppppH - 249c4: 48484848 4afd1515 4a070707 1515fd4a HHHH...J...JJ... - 249d4: 00004848 00000000 00000000 1f363670 HH..........p66. - 249e4: 543b4f36 12747459 68c80d74 68b25959 6O;TYtt.t..hYY.h - 249f4: 68686868 68686834 fc53c8b2 68345b10 hhhh4hhh..S..[4h - 24a04: 0dc8c834 79763434 31313176 13131331 4...44vyv1111... - 24a14: 13131313 650f1331 76795b10 c80dc876 ....1..e.[yvv... - 24a24: 7474770d 4f3b1f4e 4f4fcfcf 0070a93b .wttN.;O..OO;.p. - ... - 24a3c: 15000000 700015cb 70707070 a91f0070 .......pppppp... - 24a4c: 36363670 36363636 704f3648 70701f70 p6666666H6Opp.pp - 24a5c: 48487070 36364870 70707048 70707070 ppHHpH66Hppppppp - 24a6c: 36707070 e240cf36 483636cd 48484870 ppp66.@..66HpHHH - 24a7c: 15484848 07074afd 15fd4a4a 48481515 HHH..J..JJ....HH - 24a8c: 00484848 00000000 00000000 1f700000 HHH...........p. - 24a9c: cd363670 59595454 74127459 68685912 p66.TTYYYt.t.Yhh - 24aac: 68686868 b2683468 711053c8 34767664 hhhhh4h..S.qdvv4 - 24abc: 0d0d3468 0d34340d 13137676 13133131 h4...44.vv..11.. - 24acc: 31131313 eafcaf13 797979b1 c8c8c876 ...1.....yyyv... - 24adc: 74770dc8 1fcf7474 3bcdcd3b 00001f3b ..wttt..;..;;... - ... - 24af8: 00481515 70707070 00707070 36701f1f ..H.ppppppp...p6 - 24b08: 48363636 70a94f36 70701f70 70707070 666H6O.pp.pppppp - 24b18: 48707070 70007070 70707070 70707070 pppHpp.ppppppppp - 24b28: 34cd3636 483636cd 48484848 4afd1548 66.4.66HHHHHH..J - 24b38: fd4a074a 48151515 48484848 00707048 J.J....HHHHHHpp. - 24b48: 00000000 70000000 70000000 4f367070 .......p...ppp6O - 24b58: 5454cdcd 12125959 68685974 0d686868 ..TTYY..tYhhhhh. - 24b68: 77b26868 2b241053 0d346868 34683434 hh.wS.$+hh4.44h4 - 24b78: 34343434 31404034 31313113 13131313 44444@@1.111.... - 24b88: 0f65e35b 79797967 c8c8c82b 777777c8 [.e.gyyy+....www - 24b98: 74383874 4f4f7070 0000701f 00000000 t88tppOO.p...... - ... - 24bb0: 48151548 70707000 70707070 00707070 H..H.pppppppppp. - 24bc0: 361f7070 701fa936 70707070 70707070 pp.66..ppppppppp - 24bd0: 70707070 70707070 70707070 70707070 pppppppppppppppp - 24be0: cf364870 48cbcbcf 15484848 074afd15 pH6....HHHH...J. - 24bf0: 1515fd4a 48484815 70484848 00000070 J....HHHHHHpp... - ... - 24c08: 70000070 4f487070 121254cf 12125959 p..pppHO.T..YY.. - 24c18: 68595974 68343434 f1746868 b2c85310 tYYh444hhht..S.. - 24c28: 68686868 34343468 34686868 400d3434 hhhhh444hhh444.@ - 24c38: 31311331 33313131 33e365fb 76797979 1.111113.e.3yyyv - 24c48: c8c8c876 797977c8 38387477 00000038 v....wyywt888... - ... - 24c68: 15154800 70700000 70707070 70707070 .H....pppppppppp - 24c78: 70000070 70707070 70707070 70707070 p..ppppppppppppp - 24c88: 70707070 70707070 70707070 70707070 pppppppppppppppp - 24c98: 36487070 cbcbcb36 fd151515 fd4a074a ppH66.......J.J. - 24ca8: 48481515 48484848 00707048 00000000 ..HHHHHHHpp..... - ... - 24cc0: 70000000 36707070 0d12cdcd 59595968 ...pppp6....hYYY - 24cd0: 59595959 34686868 66e56868 34682bbe YYYYhhh4hh.f.+h4 - 24ce0: 68686868 34686868 34686834 34343434 hhhhhhh44hh44444 - 24cf0: 31317634 b1133131 79f210fc 76767979 4v1111.....yyyvv - 24d00: c8c8c8c8 45c877c8 381e74c8 00006938 .....w.E.t.88i.. - 24d10: 00707070 00000000 00000000 00000000 ppp............. - 24d20: 15150000 70000015 70707070 70707070 .......ppppppppp - 24d30: 70707070 70707070 70707070 70707070 pppppppppppppppp - 24d40: 70707070 70707070 70707070 70707070 pppppppppppppppp - 24d50: 48487070 cbcbcbcb 074aec15 15fd4a07 ppHH......J..J.. - 24d60: 48484848 00704848 00000000 00000000 HHHHHHp......... - ... - 24d7c: 70707070 4554cd4f 59595976 59595959 ppppO.TEvYYYYYYY - 24d8c: 68685959 66be2b68 0d6868e5 68683434 YYhhh+.f.hh.44hh - 24d9c: 68686868 34686868 34460d34 76763434 hhhhhhh44.F444vv - 24dac: e3f27940 7967b1fc c8767679 c8c8c8c8 @y....gyyvv..... - 24dbc: 77777777 381e1e77 00483838 70707000 wwwww..888H..ppp - ... - 24dd8: 15700000 00004815 70707070 70707070 ..p..H..pppppppp - 24de8: 70707070 701f7070 70707070 70707070 pppppp.ppppppppp - 24df8: 70707070 70707070 70707070 70707070 pppppppppppppppp - 24e08: 48484848 15cb4848 ca91074a 4815694a HHHHHH..J...Ji.H - 24e18: 70484848 00000000 00000000 00000000 HHHp............ - ... - 24e34: 70700000 ab4f3636 59126887 59595959 ..pp66O..h.YYYYY - 24e44: 68685959 dba6f174 6868b274 68340d0d YYhht...t.hh..4h - 24e54: 68686868 34686868 0d0d3434 40343446 hhhhhhh444..F44@ - 24e64: e3372c79 764067b1 c8c8c876 77c8c8c8 y,7..g@vv......w - 24e74: 77777777 1e1e1e1e 000c3838 70000000 wwww....88.....p - ... - 24e90: 48000000 00701515 70707000 70707070 ...H..p..ppppppp - 24ea0: 70707070 70707070 70707070 70707070 pppppppppppppppp - 24eb0: 70707070 70707070 70707070 70707070 pppppppppppppppp - 24ec0: 48484848 ca15cbcb eccafa91 4815e969 HHHH........i..H - 24ed0: 00004848 00000000 00000000 00000000 HH.............. - ... - 24ee8: 70000000 70007070 0c363636 121277dc ...ppp.p666..w.. - 24ef8: 59595959 68595959 646666d1 68686868 YYYYYYYh.ffdhhhh - 24f08: 68680d68 68686868 34686868 46346834 h.hhhhhhhhh44h4F - 24f18: 2b34460d f27171f1 76767679 c8c8c876 .F4+.qq.yvvvv... - 24f28: 7777c8c8 77777777 381e1e1e cb384e38 ..wwwwww...88N8. - 24f38: 00000000 00000070 00000000 00000000 ....p........... - 24f48: 00000000 00151515 70700000 70707070 ..........pppppp - 24f58: 70707070 70707070 70707070 70707070 pppppppppppppppp - 24f68: 70707070 70707070 4f367070 48707070 pppppppppp6OpppH - 24f78: 48cb4848 6307fd48 15154a91 48e9e9cb HH.HH..c.J.....H - 24f88: 00007048 00000000 00000000 00000000 Hp.............. - ... - 24fa0: 00007000 70707070 36cfcf1f 4e6979ab .p..pppp...6.yiN - 24fb0: 54545454 12595959 74f16553 68686868 TTTTYYY.Se.thhhh - 24fc0: 68686868 68686868 34686868 6868340d hhhhhhhhhhh4.4hh - 24fd0: b02b4634 0d67f153 4076400d c80d0d0d 4F+.S.g..@v@.... - 24fe0: 7777c8c8 1e1e7777 381e1e1e e94ee938 ..wwww.....88.N. - 24ff0: 00000048 00007000 00000000 00000000 H....p.......... - 25000: 00000000 1548fd00 70000000 70707070 ......H....ppppp - 25010: 70707070 70707070 70707070 70707070 pppppppppppppppp - 25020: 70707070 70707070 594f7070 4848703b ppppppppppOY;pHH - 25030: 48cbcb48 9163faec 15cb154a 691e69cb H..H..c.J....i.i - 25040: 00007048 00000000 00000000 00000000 Hp.............. - ... - 25058: 00707000 70700000 4f367070 cf691e0c .pp...pppp6O..i. - 25068: 54cdcdcf bb545954 682b5a66 68686868 ...TTYT.fZ+hhhhh - 25078: 68686834 34686868 68686834 340d0d68 4hhhhhh44hhhh..4 - 25088: b0640d68 34462bb0 0d0d0d34 0d0d0d0d h.d..+F44....... - 25098: 7777c8c8 1e1e1e77 381e1e1e 4ee9e9e9 ..www......8...N - 250a8: 0000000c 00700000 00000000 00000000 ......p......... - 250b8: 00000000 15fd4800 70000048 70707070 .....H..H..ppppp - 250c8: 70707070 70707070 70707070 70707070 pppppppppppppppp - 250d8: 70707070 70707070 59367070 48483659 pppppppppp6YY6HH - 250e8: ec4848cb 4a631c63 cbcb1515 124ecbcb .HH.c.cJ......N. - 250f8: 00007036 00000000 00000000 00000000 6p.............. - ... - 25110: 70700000 70707070 36367070 cfcfcf36 ..pppppppp666... - 25120: 59cdcfcf 2f545459 59597294 68686812 ...YYTT/.rYY.hhh - 25130: 68346868 34686868 6874460d 0d466868 hh4hhhh4.FthhhF. - 25140: 2b2bc80d 46464646 0d343446 0d0d0d0d ..++FFFFF44..... - 25150: 7777c80d 1e1e7777 e91e3838 4ee9e9e9 ..wwww..88.....N - 25160: 0000cb4e 70000000 00000000 00000000 N......p........ - 25170: 00000000 15150000 00007015 70707070 .........p..pppp - 25180: 70707070 70707070 70707070 70707070 pppppppppppppppp - 25190: 48707070 70707048 cf487070 cb483654 pppHHpppppH.T6H. - 251a0: 631548cb 154a6397 484815cb 12693648 .H.c.cJ...HHH6i. - 251b0: 0070703b 00000000 00000000 00000000 ;pp............. - ... - 251c8: 70700000 70707070 4f707070 3636364f ..pppppppppOO666 - 251d8: 544fcf4f 0b545968 59a5bf94 74681259 O.OThYT....YY.ht - 251e8: 34686868 6868400d 74460d68 74686868 hhh4.@hhh.Fthhht - 251f8: 74460d0d 46746868 46746874 0d0d3434 ..FthhtFthtF44.. - 25208: c80dc80d 1e1e7779 e9e9381e 4ee9e9e9 ....yw...8.....N - 25218: 00480c0c 00000000 00000070 00000000 ..H.....p....... - 25228: 00000000 fd000000 00001548 70707000 ........H....ppp - 25238: 70707070 70707070 70707070 70707070 pppppppppppppppp - 25248: 361f7070 70363636 36707070 15cb36cf pp.6666pppp6.6.. - 25258: 73071548 48154a1c 48484848 4e484848 H..s.J.HHHHHHHHN - 25268: 00703612 00000000 00000000 00000000 .6p............. - ... - 25280: 70700000 70707070 70707070 36364f4f ..ppppppppppOO66 - 25290: cfcf3636 24387454 54541e94 12595959 66..Tt8$..TTYYY. - 252a0: 68687474 6831f640 68686868 74686874 tthh@.1hhhhhthht - 252b0: 68747474 68687468 74686868 0d464646 ttthhthhhhhtFFF. - 252c0: 79c80d0d 387731f6 e9e9e938 0c0ce9e9 ...y.1w88....... - 252d0: 0069cdcd 00000000 00007000 00000000 ..i......p...... - ... - 252e8: 001548fd 70700000 70707070 70707070 .H....pppppppppp - 252f8: 70707070 70707070 36367070 4f543636 pppppppppp6666TO - 25308: 48707070 15cb3636 73ff4acb 48481507 pppH66...J.s..HH - 25318: 48484848 cb484848 70704f12 00000000 HHHHHHH..Opp.... - ... - 25338: 70000000 70707070 701f1f70 36361f70 ...pppppp..pp.66 - 25348: cf363636 5a4ecdcf cd3b38e6 5959593b 666...NZ.8;.;YYY - 25358: 68747412 3487f634 68686834 74747468 .tth4..44hhhhttt - 25368: 74747474 68687474 74746868 46467468 tttttthhhhtthtFF - 25378: 31c8c80d 1ec8f616 e9e9e91e cd0ce9e9 ...1............ - 25388: cbcdcdcd 00000000 00000000 00000000 ................ - 25398: 70700000 00000070 4848fd48 48000000 ..ppp...H.HH...H - 253a8: 70707070 70707070 70707070 70707070 pppppppppppppppp - 253b8: 36367070 59684f36 48484836 cb15cb36 pp666OhY6HHH6... - 253c8: 63736315 48154815 48484848 48484848 .csc.H.HHHHHHHHH - 253d8: 7070cdcd 00000000 00000000 00000000 ..pp............ - ... - 253f4: 361f1f70 36361f1f 1f1f1f1f cf363636 p..6..66....666. - 25404: 32e9cfcf cd54e932 59543b3b 74746859 ...22.T.;;TYYhtt - 25414: 34877968 68686868 74746868 68686868 hy.4hhhhhhtthhhh - 25424: 68686874 74746868 74747468 79c80d74 thhhhhtthtttt..y - 25434: 7479165d e9e9e91e cd0c0c0c cdcdcdcd ].yt............ - 25444: 00000048 00000000 70000000 36363636 H..........p6666 - 25454: 00363636 48151500 00000000 70707048 666....H....Hppp - 25464: 70707070 70707070 70707070 36484870 pppppppppppppHH6 - 25474: 34684f36 4848484f 15151548 4aff73ca 6Oh4OHHHH....s.J - 25484: 48481548 70704848 48487070 0048cd36 H.HHHHppppHH6.H. - ... - 254ac: 361f1f00 36363636 36363636 36363636 ...6666666666666 - 254bc: e66dcfcb 59544e5a 543b3b54 74125959 ..m.ZNTYT;;TYY.t - 254cc: 34406874 68686868 68686868 68686868 th@4hhhhhhhhhhhh - 254dc: 68121268 74741212 74686874 c80d7474 h..h..ttthhttt.. - 254ec: 77e816f6 0ce9e91e cd0c0c0c cfcdcdcd ...w............ - 254fc: 00007069 00000000 cb000000 36cbcfcf ip.............6 - 2550c: 48703636 48fd0070 00000015 70704800 66pHp..H.....Hpp - 2551c: 70707070 70707070 70707070 36487070 ppppppppppppppH6 - 2552c: 7e593636 48363654 fdcb1548 15fa901c 66Y~T66HH....... - 2553c: 48481515 70704848 70707070 00363648 ..HHHHppppppH66. - ... - 25564: 1f1f0000 3636361f 36363636 36363636 .....66666666666 - 25574: 576d4f36 54cf4e24 3b3b5974 12595954 6OmW$N.TtY;;TYY. - 25584: 68747474 68686868 12686812 12747474 ttthhhhh.hh.ttt. - 25594: 12121274 74121212 12127474 c8747412 t......ttt...tt. - 255a4: c8871606 0ce9381e cdcdcd0c cfcfcfcd .....8.......... - 255b4: 0000cbcf 00000000 36000000 36cbcfcf ...........6...6 - 255c4: 48363636 fd707048 00004848 70700000 666HHpp.HH....pp - 255d4: 70707070 70487070 48707070 48487048 ppppppHppppHHpHH - 255e4: 7e543636 cb36cf68 071515cb 484aff73 66T~h.6.....s.JH - 255f4: 48484815 70707048 70707070 70707070 .HHHHppppppppppp - ... - 2561c: 1f000000 361f1f1f 36363636 36363636 .......666666666 - 2562c: 57e93636 cfcd548c cd5454cf 59543b4f 66.W.T...TT.O;TY - 2563c: 74747459 12686868 12686812 38743812 Yttthhh..hh..8t8 - 2564c: 12121212 12121212 12383812 74741212 .........88...tt - 2565c: c8f61613 0ce9381e cfcdcdcd cfcfcfcf .....8.......... - 2566c: 0048cfcf 00000000 70000000 cbcbcfcf ..H........p.... - 2567c: 483636cb 48704848 007048fd 70000000 .66HHHpH.Hp....p - 2568c: 70707070 70707070 70707070 48484870 pppppppppppppHHH - 2569c: 343b3636 cbcbcd68 1cfd4815 1515fa22 66;4h....H.."... - 256ac: 48484815 70707048 70707070 00707070 .HHHHpppppppppp. - ... - 256d8: 1f36361f 3636361f 36363636 e60c3636 .66..666666666.. - 256e8: cdcfcded cfcfcfcf 3b4f4fcf 38121254 .........OO;T..8 - 256f8: 12121238 12686812 12121212 12121212 8....hh......... - 25708: 12121212 12125959 12121212 c8f6f60d ....YY.......... - 25718: 0ce93838 cfcfcdcd cfcfcfcf 70cfcfcf 88.............p - ... - 25730: cbcbcfcb 363636cb 70484848 004815fd .....666HHHp..H. - 25740: 00000000 70707070 70707070 70707070 ....pppppppppppp - 25750: 48487070 68cf3648 cbcb5402 7307cbcb ppHHH6.h.T.....s - 25760: 1548fdff 70484848 70707070 70707070 ..H.HHHppppppppp - 25770: 00707070 00000000 00000000 00000000 ppp............. - ... - 25790: 36363600 1f36361f 36361f1f edcd3636 .666.66...6666.. - 257a0: cf4f0c32 cfcfcfcf 3b4f54cf 12593b3b 2.O......TO;;;Y. - 257b0: 12121212 12681212 12121259 12123838 ......h.Y...88.. - 257c0: 59121212 59595912 59595959 77310d12 ...Y.YYYYYYY..1w - 257d0: 0ce94e12 cfcfcfcd cfcfcfcf 36cfcfcf .N.............6 - ... - 257e8: cbcfcf70 36363636 48484848 4848fd70 p...6666HHHHp.HH - 257f8: 00000000 70707000 48707070 70707070 .....ppppppHpppp - 25808: 48707070 59364848 69695402 226315cb pppHHH6Y.Tii..c" - 25818: 151515fa 70484848 70707070 70707070 ....HHHppppppppp - 25828: 70707070 00000000 00000000 00000000 pppp............ - ... - 25848: 1f1f0000 1f361f1f 1f1f1f36 9bcf3636 ......6.6...66.. - 25858: cf366d57 cfcfcfcf 3636cfcf 593b4f36 Wm6.......666O;Y - 25868: 59121212 59125959 12121212 12121212 ...YYY.Y........ - 25878: 59121212 54595959 54545454 4e125454 ...YYYYTTTTTTT.N - 25888: cd0c4e4e cfcfcfcf cfcfcfcf cb3636cb NN...........66. - 25898: 00000048 00000000 cbcfcb00 483636cb H............66H - 258a8: 48484848 48fd4870 00000048 70700000 HHHHpH.HH.....pp - 258b8: 70707070 70707048 70707070 cd484848 ppppHpppppppHHH. - 258c8: 69695968 7397eccb 4815484a 70704848 hYii...sJH.HHHpp - 258d8: 70707070 70707070 70707070 00000070 ppppppppppppp... - ... - 25900: 1f000000 1f1f1f1f 361f1f1f 891f361f ...........6.6.. - 25910: cb1f7857 cdcfcbcf 54cfcfcf 3b3b4fcd Wx.........T.O;; - 25920: 59121259 59595959 59126812 59595959 Y..YYYYY.h.YYYYY - 25930: 54595959 54545454 54545454 54545454 YYYTTTTTTTTTTTTT - 25940: cdcdcd54 cfcfcfcf cbcbcbcf 363636cb T............666 - 25950: 00007036 00000000 cbcf7000 703636cb 6p.......p...66p - 25960: 48487070 15157048 00007048 70000000 ppHHHp..Hp.....p - 25970: 70707070 70707070 70707070 36484870 pppppppppppppHH6 - 25980: 15695454 6373cacb 48484815 70484848 TTi...sc.HHHHHHp - 25990: 70707070 70707070 00000070 00000000 ppppppppp....... - ... - 259bc: 70707070 1f707070 2d1f361f 364f9781 ppppppp..6.-..O6 - 259cc: cd4f3636 cf69cfcd 4f4f4fcd 125959cd 66O...i..OOO.YY. - 259dc: 59595959 59121259 54545959 54545454 YYYYY..YYYTTTTTT - 259ec: 54545454 54545454 cdcd5454 cfcdcdcd TTTTTTTTTT...... - 259fc: 4f4fcfcf 36363636 36363636 00003636 ..OO6666666666.. - 25a0c: 00000000 cb360000 483636cb 48707048 ......6..66HHppH - 25a1c: fd704848 00004848 00000000 70707070 HHp.HH......pppp - 25a2c: 70707070 70707070 48487070 cbcbcf36 ppppppppppHH6... - 25a3c: ca736315 48481548 70707048 70707070 .cs.H.HHHppppppp - 25a4c: 70707070 00000070 00000000 00000000 ppppp........... - ... - 25a74: 70707000 70707070 cf1f1f70 1f692273 .pppppppp...s"i. - 25a84: 36363636 cd69cf4f 36cf4e0c 5954cf36 6666O.i..N.66.TY - 25a94: 54595959 54545459 54545454 54544e54 YYYTYTTTTTTTTNTT - 25aa4: 54545454 54545454 3bcdcd3b 4f4f3b3b TTTTTTTT;..;;;OO - 25ab4: 364f4f4f 36363636 36363636 00703636 OOO66666666666p. - 25ac4: 00000000 36000000 483636cb 48484848 .......6.66HHHHH - 25ad4: 48484848 0048484a 00000000 70707000 HHHHJHH......ppp - 25ae4: 70707070 70707070 48707070 cbcbcb48 pppppppppppHH... - 25af4: fd1c1cec 48481548 70707070 70707070 ....H.HHpppppppp - 25b04: 00707070 00000070 00000000 00000000 ppp.p........... - ... - 25b2c: 70700000 70707070 1f707070 7091ed91 ..ppppppppp....p - 25b3c: 36361f70 0ccdcf36 cd2b2b0c cdcf4fcf p.666....++..O.. - 25b4c: 54545454 54545454 54545454 54545454 TTTTTTTTTTTTTTTT - 25b5c: 54545454 3b54cd54 4fa9a9a9 1f1fa91f TTTTT.T;...O.... - 25b6c: 1f1f701f 361f1f1f 36361f1f 00701f36 .p.....6..666.p. - 25b7c: 00000000 70000000 48363636 48704848 .......p666HHHpH - 25b8c: 70484848 4848fd48 00000000 70480000 HHHpH.HH......Hp - 25b9c: 70707048 70707070 48707070 cbcb4848 HppppppppppHHH.. - 25bac: 15631c4a 48484848 70707070 70707070 J.c.HHHHpppppppp - 25bbc: 00000000 70007000 00000000 00000000 .....p.p........ - ... - 25be4: 70000000 70707070 70707070 361cff69 ...pppppppppi..6 - 25bf4: 36707070 cdcd3636 1e6eab0c 4f3636cf ppp666....n..66O - 25c04: 545454cf 54545454 54545454 54545454 .TTTTTTTTTTTTTTT - 25c14: 3b3b3b3b a93b3b3b 701f1f1f 70707070 ;;;;;;;....ppppp - 25c24: 70707070 701f1f70 70707070 70707070 ppppp..ppppppppp - ... - 25c3c: 36367070 48484870 48487070 4815fd70 pp66pHHHppHHp..H - 25c4c: 00000070 70000000 70707070 70707070 p......ppppppppp - 25c5c: 48707070 48cb4848 48071c4a 70484848 pppHHH.HJ..HHHHp - 25c6c: 00000070 00007000 00000000 00007000 p....p.......p.. - ... - 25ca0: 70707070 70707070 4affca70 70707070 ppppppppp..Jpppp - 25cb0: cf363636 0e6ee9cd 3636cf0c 54544f36 666...n...666OTT - 25cc0: 3bcdcd54 cdcdcdcd 3b54cd3b 3b3b3b3b T..;....;.T;;;;; - 25cd0: 1f3b3b3b 7070701f 70707070 00007000 ;;;..ppppppp.p.. - 25ce0: 70700000 70707070 00707070 00000000 ..ppppppppp..... - 25cf0: 00000000 48707000 70484848 48484848 .....ppHHHHpHHHH - 25d00: 48fd0048 00000048 70000000 70707070 H..HH......ppppp - 25d10: 70700070 48707070 48484848 484a634a p.pppppHHHHHJcJH - 25d20: 70704848 00000070 00007070 00000070 HHppp...pp..p... - 25d30: 00707000 00000000 00000000 00000000 .pp............. - ... - 25d58: 70707000 70707070 91633670 70707036 .pppppppp6c.6ppp - 25d68: 36367070 b5670ccf 36cdcdab 3b4f3636 pp66..g....666O; - 25d78: 3b3b3bcd 3b3b3b3b 4f3b3b3b 1f1fa94f .;;;;;;;;;;OO... - 25d88: 701fa9a9 70707070 00707070 00000000 ...pppppppp..... - 25d98: 00000000 00707000 00700000 00000000 .....pp...p..... - 25da8: 00000000 70700000 70704870 70487070 ......pppHppppHp - 25db8: 4a707048 00004848 00000000 00707000 HppJHH.......pp. - 25dc8: 00000000 70707000 48484848 48fd634a .....pppHHHHJc.H - 25dd8: 70704848 00007070 00000000 00000000 HHpppp.......... - 25de8: 70700000 00000070 00000000 00000000 ..ppp........... - ... - 25e10: 70700000 70707070 63ec7000 707070ec ..pppppp.p.c.ppp - 25e20: 36707070 6e4e4f36 cf690c87 4f1f7036 ppp66ONn..i.6p.O - 25e30: 3b3b3b3b a9080808 70a9a91f 1f707070 ;;;;.......pppp. - 25e40: 7070701f 00707070 00000070 00000000 .pppppp.p....... - ... - 25e64: 70000000 70707070 70707070 48007070 ...ppppppppppp.H - 25e74: 007070fd 00000000 00700000 00000000 .pp.......p..... - 25e84: 70700000 48484848 4815fa4a 00704848 ..ppHHHHJ..HHHp. - 25e94: 00007000 00000000 00000000 70700000 .p............pp - 25ea4: 00007036 00000000 00000000 00000000 6p.............. - ... - 25ec8: 70000000 00707070 4a700000 000036fa ...pppp...pJ.6.. - 25ed8: 70700000 2a363670 4f4f1e6e 70707036 ..ppp66*n.OO6ppp - 25ee8: 1f4f4f1f 1f1fa91f 70700070 70707070 .OO.....p.pppppp - 25ef8: 70707070 00707070 00000000 00000000 ppppppp......... - 25f08: 00000000 00007000 00000000 00000000 .....p.......... - ... - 25f20: 70707000 70707070 00707070 00701515 .pppppppppp...p. - ... - 25f3c: 70700000 48484848 48154a4a 00704848 ..ppHHHHJJ.HHHp. - ... - 25f58: 70700000 00704f36 00000000 00000000 ..pp6Op......... - ... - 25f84: 00007070 70000000 00704a4a 70000000 pp.....pJJp....p - 25f94: 36367070 4f4fab67 70703636 1f1f7070 pp66g.OO66pppp.. - 25fa4: 00707070 70707000 70707070 70707070 ppp..ppppppppppp - 25fb4: 70707070 00000000 00000000 00000000 pppp............ - 25fc4: 00700000 00000000 00000000 00000000 ..p............. - 25fd4: 00000000 70000000 00007070 00000000 .......ppp...... - 25fe4: 70481500 00000000 00000000 00000000 ..Hp............ - 25ff4: 70000000 48484848 48484afd 00007048 ...pHHHH.JHHHp.. - ... - 26010: 70000000 00363b70 00000000 00000000 ...pp;6......... - ... - 2603c: 00707000 00000000 70154a70 00000000 .pp.....pJ.p.... - 2604c: 70707000 36364e4f 70703636 70707070 .pppON6666pppppp - 2605c: 70707070 00000070 70707000 70707070 ppppp....ppppppp - 2606c: 00707070 00000000 00000000 00000000 ppp............. - ... - 2609c: 00150000 00000000 00000000 00000000 ................ - 260ac: 70000000 48484870 4848fdfd 00007048 ...ppHHH..HHHp.. - ... - 260c8: 70000000 703b4f70 00000000 00000000 ...ppO;p........ - ... - 260fc: cb4a4800 00000000 70700000 36707070 .HJ.......ppppp6 - 2610c: 7070701f 70707070 70707070 00007070 .ppppppppppppp.. - 2611c: 00000000 70000000 00000000 00000000 .......p........ - ... - 26154: 48700000 00000000 00000000 00000000 ..pH............ - 26164: 00000000 48484870 4848fdfd 00007048 ....pHHH..HHHp.. - ... - 26184: 364f1f70 00000070 00000000 00000000 p.O6p........... - ... - 261b4: fd480000 00000048 00000000 70707070 ..H.H.......pppp - 261c4: 70707070 70000070 70707070 00707070 ppppp..pppppppp. - ... - 26220: 48487070 48481515 00000070 00000000 ppHH..HHp....... - ... - 2623c: 4f4f7000 00000070 00000000 00000000 .pOOp........... - ... - 2626c: 48000000 00004848 00000000 70000000 ...HHH.........p - 2627c: 70707070 00000070 70707000 00000070 ppppp....pppp... - ... - 262d8: 48487000 48481515 00000070 00000000 .pHH..HHp....... - ... - 262f4: 4f1f0000 0000001f 00000000 00000000 ...O............ - ... - 26324: 70000000 70484848 00000000 00000000 ...pHHHp........ - 26334: 70000000 00000000 70000000 00000070 ...p.......pp... - ... - 26390: 48700000 48481515 00000070 00000000 ..pH..HHp....... - ... - 263ac: 36700000 00007036 00000000 00000000 ..p66p.......... - ... - 263e0: 48484870 00000000 00000000 00000000 pHHH............ - ... - 26448: 70000000 70481548 00000070 00000000 ...pH.Hpp....... - ... - 26464: 70000000 00007036 00000000 00000000 ...p6p.......... - ... - 26490: 2e000000 68732f2e 64657261 6968742f ...../shared/thi - 264a0: 61706472 2f797472 6c67766c 6372732f rdparty/lvgl/src - 264b0: 5f766c2f 65726f63 5f766c2f 75626564 /lv_core/lv_debu - 264c0: 00632e67 645f766c 67756265 6568635f g.c.lv_debug_che - 264d0: 735f6b63 203a7274 6f6e2061 53412d6e ck_str: a non-AS - 264e0: 20494943 72616863 73616820 70657220 CII char has rep - 264f0: 65746165 6f6d2064 74206572 206e6168 eated more than - 26500: 445f564c 47554245 5254535f 58414d5f LV_DEBUG_STR_MAX - 26510: 5045525f 20544145 656d6974 6c002973 _REPEAT times).l - 26520: 65645f76 5f677562 63656863 74735f6b v_debug_check_st - 26530: 69203a72 6c61766e 63206469 20726168 r: invalid char - 26540: 74206e69 73206568 6e697274 3c282067 in the string (< - 26550: 20303120 756c6176 6c002965 65645f76 10 value).lv_de - 26560: 5f677562 63656863 74735f6b 73203a72 bug_check_str: s - 26570: 6e697274 73692067 6e6f6c20 20726567 tring is longer - 26580: 6e616874 5f564c20 55424544 54535f47 than LV_DEBUG_ST - 26590: 414d5f52 454c5f58 4854474e R_MAX_LENGTH. - -0002659d <__func__.2>: - 2659d: 645f766c 67756265 6568635f 735f6b63 lv_debug_check_s - 265ad: tr. - -000265b0 : - 265b0: 33323130 37363534 42413938 46454443 0123456789ABCDEF - ... - -000265c1 <__func__.0>: - 265c1: 645f766c 67756265 676f6c5f 7272655f lv_debug_log_err - 265d1: 2e00726f 68732f2e 64657261 6968742f or.../shared/thi - 265e1: 61706472 2f797472 6c67766c 6372732f rdparty/lvgl/src - 265f1: 5f766c2f 65726f63 5f766c2f 70736964 /lv_core/lv_disp - 26601: 6c00632e 63735f76 63615f72 6e203a74 .c.lv_scr_act: n - 26611: 6964206f 616c7073 65722079 74736967 o display regist - 26621: 64657265 206f7420 20746567 20737469 ered to get its - 26631: 2e746361 72637320 006e6565 6c5f766c act. screen.lv_l - 26641: 72657961 706f745f 6f6e203a 73696420 ayer_top: no dis - 26651: 79616c70 67657220 65747369 20646572 play registered - 26661: 67206f74 69207465 74207374 6c20706f to get its top l - 26671: 72657961 5f766c00 6579616c 79735f72 ayer.lv_layer_sy - 26681: 6e203a73 6964206f 616c7073 65722079 s: no display re - 26691: 74736967 64657265 206f7420 20746567 gistered to get - 266a1: 20737469 2e737973 79616c20 6c007265 its sys. layer.l - 266b1: 69645f76 615f7073 67697373 63735f6e v_disp_assign_sc - 266c1: 6e656572 7274203a 6f742079 73736120 reen: try to ass - 266d1: 206e6769 6f6e2061 63732d6e 6e656572 ign a non-screen - 266e1: 6a626f20 00746365 645f766c 5f707369 object.lv_disp_ - 266f1: 5f746567 63616e69 65766974 6d69745f get_inactive_tim - 26701: 6e203a65 6964206f 616c7073 65722079 e: no display re - 26711: 74736967 64657265 5f766c00 70736964 gistered.lv_disp - 26721: 6972745f 63615f67 69766974 203a7974 _trig_activity: - 26731: 64206f6e 6c707369 72207961 73696765 no display regis - 26741: 65726574 766c0064 7369645f 65675f70 tered.lv_disp_ge - 26751: 65725f74 745f7266 3a6b7361 206f6e20 t_refr_task: no - 26761: 70736964 2079616c 69676572 72657473 display register - 26771: ed. - -00026774 <__func__.6>: - 26774: 645f766c 5f707369 5f746567 5f726373 lv_disp_get_scr_ - 26784: 00746361 act. - -00026788 <__func__.5>: - 26788: 645f766c 5f707369 5f746567 6579616c lv_disp_get_laye - 26798: 6f745f72 r_top. - -0002679e <__func__.4>: - 2679e: 645f766c 5f707369 5f746567 6579616c lv_disp_get_laye - 267ae: 79735f72 r_sys. - -000267b4 <__func__.3>: - 267b4: 645f766c 5f707369 69737361 735f6e67 lv_disp_assign_s - 267c4: 65657263 creen. - -000267ca <__func__.2>: - 267ca: 645f766c 5f707369 5f746567 63616e69 lv_disp_get_inac - 267da: 65766974 6d69745f tive_time. - -000267e4 <__func__.1>: - 267e4: 645f766c 5f707369 67697274 7463615f lv_disp_trig_act - 267f4: 74697669 ivity. - -000267fa <__func__.0>: - 267fa: 5f766c5f 70736964 7465675f 6665725f _lv_disp_get_ref - 2680a: 61745f72 2e006b73 68732f2e 64657261 r_task.../shared - 2681a: 6968742f 61706472 2f797472 6c67766c /thirdparty/lvgl - 2682a: 6372732f 5f766c2f 65726f63 5f766c2f /src/lv_core/lv_ - 2683a: 756f7267 00632e70 2074754f 6d20666f group.c.Out of m - 2684a: 726f6d65 766c0079 6f72675f 615f7075 emory.lv_group_a - 2685a: 6f5f6464 203a6a62 20656874 656a626f dd_obj: the obje - 2686a: 69207463 6c612073 64616572 64612079 ct is already ad - 2687a: 20646564 74206f74 20736968 756f7267 ded to this grou - 2688a: 766c0070 6f72675f 615f7075 6f5f6464 p.lv_group_add_o - 2689a: 203a6a62 69737361 6f206e67 63656a62 bj: assign objec - 268aa: 6f742074 206e6120 6568746f 72672072 t to an other gr - 268ba: 0070756f oup. - -000268be <__func__.1>: - 268be: 675f766c 70756f72 6572635f 00657461 lv_group_create. - -000268ce <__func__.0>: - 268ce: 675f766c 70756f72 6464615f 6a626f5f lv_group_add_obj - 268de: 2f2e2e00 72616873 742f6465 64726968 .../shared/third - 268ee: 74726170 766c2f79 732f6c67 6c2f6372 party/lvgl/src/l - 268fe: 6f635f76 6c2f6572 626f5f76 00632e6a v_core/lv_obj.c. - 2690e: 695f766c 3a74696e 726c6120 79646165 lv_init: already - 2691e: 696e6920 00646574 695f766c 2074696e inited.lv_init - 2692e: 64616572 766c0079 6965645f 2074696e ready.lv_deinit - 2693e: 656e6f64 4c554e00 6f70204c 65746e69 done.NULL pointe - 2694e: 766c0072 7263735f 7465675f 7369645f r.lv_scr_get_dis - 2695e: 73203a70 65657263 6f6e206e 6f662074 p: screen not fo - 2696e: 00646e75 6f5f766c 735f6a62 625f7465 und.lv_obj_set_b - 2697e: 5f657361 3a726964 766e6920 64696c61 ase_dir: invalid - 2698e: 73616220 69642065 766c0072 6a626f5f base dir.lv_obj - 2699e: 656c635f 735f6e61 656c7974 73696c5f _clean_style_lis - 269ae: 63203a74 74276e61 6e696620 74732064 t: can't find st - 269be: 20656c79 68746977 61706020 00607472 yle with `part`. - 269ce: 6f5f766c 735f6a62 705f7465 203a736f lv_obj_set_pos: - 269de: 20746f6e 6e616863 676e6967 736f7020 not changing pos - 269ee: 6f697469 666f206e 72637320 206e6565 ition of screen - 269fe: 656a626f 6c007463 626f5f76 64615f6a object.lv_obj_ad - 26a0e: 74735f64 3a656c79 6e616320 66207427 d_style: can't f - 26a1e: 20646e69 6c797473 69772065 60206874 ind style with ` - 26a2e: 65707974 766c0060 6a626f5f 6572635f type`.lv_obj_cre - 26a3e: 3a657461 746f6e20 73696420 79616c70 ate: not display - 26a4e: 65726320 64657461 206f7420 66206f73 created to so f - 26a5e: 202e7261 70206f4e 6563616c 206f7420 ar. No place to - 26a6e: 69737361 74206e67 6e206568 73207765 assign the new s - 26a7e: 65657263 624f006e 7463656a 65726320 creen.Object cre - 26a8e: 20657461 64616572 61430079 2074276e ate ready.Can't - 26a9e: 20746573 20656874 65726170 6f20746e set the parent o - 26aae: 20612066 65726373 43006e65 74276e61 f a screen.Can't - 26abe: 74657320 72617020 20746e65 4e203d3d set parent == N - 26ace: 204c4c55 61206f74 626f206e 7463656a ULL to an object - 26ade: 5f766c00 006a626f .lv_obj. - -00026ae6 <__func__.90>: - 26ae6: 695f766c 0074696e lv_init. - -00026aee <__func__.89>: - 26aee: 645f766c 696e6965 lv_deinit. - -00026af8 <__func__.86>: - 26af8: 6f5f766c 645f6a62 615f6c65 636e7973 lv_obj_del_async - ... - -00026b09 <__func__.69>: - 26b09: 6f5f766c 735f6a62 615f7465 5f6f7475 lv_obj_set_auto_ - 26b19: 6c616572 006e6769 realign. - -00026b21 <__func__.68>: - 26b21: 6f5f766c 735f6a62 655f7465 635f7478 lv_obj_set_ext_c - 26b31: 6b63696c 6572615f lick_area. - -00026b3b <__func__.62>: - 26b3b: 6f5f766c 735f6a62 615f7465 685f7664 lv_obj_set_adv_h - 26b4b: 65747469 ittest. - -00026b52 <__func__.61>: - 26b52: 6f5f766c 735f6a62 635f7465 6b63696c lv_obj_set_click - ... - -00026b63 <__func__.60>: - 26b63: 6f5f766c 735f6a62 745f7465 lv_obj_set_top. - -00026b72 <__func__.59>: - 26b72: 6f5f766c 735f6a62 645f7465 00676172 lv_obj_set_drag. - -00026b82 <__func__.58>: - 26b82: 6f5f766c 735f6a62 645f7465 5f676172 lv_obj_set_drag_ - 26b92: 00726964 dir. - -00026b96 <__func__.57>: - 26b96: 6f5f766c 735f6a62 645f7465 5f676172 lv_obj_set_drag_ - 26ba6: 6f726874 throw. - -00026bac <__func__.56>: - 26bac: 6f5f766c 735f6a62 645f7465 5f676172 lv_obj_set_drag_ - 26bbc: 65726170 parent. - -00026bc3 <__func__.55>: - 26bc3: 6f5f766c 735f6a62 705f7465 6e657261 lv_obj_set_paren - 26bd3: 76655f74 00746e65 t_event. - -00026bdb <__func__.53>: - 26bdb: 6f5f766c 615f6a62 705f6464 65746f72 lv_obj_add_prote - 26beb: ct. - -00026bee <__func__.52>: - 26bee: 6f5f766c 635f6a62 7261656c 6f72705f lv_obj_clear_pro - 26bfe: 74636574 tect. - -00026c03 <__func__.47>: - 26c03: 6f5f766c 735f6a62 655f7465 746e6576 lv_obj_set_event - 26c13: 0062635f _cb. - -00026c17 <__func__.45>: - 26c17: 655f766c 746e6576 6e65735f 75665f64 lv_event_send_fu - 26c27: nc. - -00026c2a <__func__.46>: - 26c2a: 655f766c 746e6576 6e65735f lv_event_send. - -00026c38 <__func__.44>: - 26c38: 6f5f766c 735f6a62 735f7465 616e6769 lv_obj_set_signa - 26c48: 62635f6c l_cb. - -00026c4d <__func__.43>: - 26c4d: 6f5f766c 735f6a62 645f7465 67697365 lv_obj_set_desig - 26c5d: 62635f6e n_cb. - -00026c62 <__func__.42>: - 26c62: 6f5f766c 615f6a62 636f6c6c 5f657461 lv_obj_allocate_ - 26c72: 5f747865 72747461 ext_attr. - -00026c7b <__func__.41>: - 26c7b: 6f5f766c 725f6a62 65726665 655f6873 lv_obj_refresh_e - 26c8b: 645f7478 5f776172 00646170 xt_draw_pad. - -00026c97 <__func__.38>: - 26c97: 6f5f766c 675f6a62 705f7465 6e657261 lv_obj_get_paren - 26ca7: t. - -00026ca9 <__func__.40>: - 26ca9: 6f5f766c 675f6a62 735f7465 65657263 lv_obj_get_scree - 26cb9: n. - -00026cbb <__func__.39>: - 26cbb: 6f5f766c 675f6a62 645f7465 00707369 lv_obj_get_disp. - -00026ccb <__func__.37>: - 26ccb: 6f5f766c 675f6a62 635f7465 646c6968 lv_obj_get_child - ... - -00026cdc <__func__.54>: - 26cdc: 6f5f766c 735f6a62 625f7465 5f657361 lv_obj_set_base_ - 26cec: 00726964 dir. - -00026cf0 <__func__.36>: - 26cf0: 6f5f766c 675f6a62 635f7465 646c6968 lv_obj_get_child - 26d00: 6361625f _back. - -00026d06 <__func__.35>: - 26d06: 6f5f766c 635f6a62 746e756f 6968635f lv_obj_count_chi - 26d16: 6572646c ldren. - -00026d1c <__func__.34>: - 26d1c: 6f5f766c 635f6a62 746e756f 6968635f lv_obj_count_chi - 26d2c: 6572646c 65725f6e 73727563 00657669 ldren_recursive. - -00026d3c <__func__.33>: - 26d3c: 6f5f766c 675f6a62 635f7465 64726f6f lv_obj_get_coord - 26d4c: s. - -00026d4e <__func__.31>: - 26d4e: 6f5f766c 675f6a62 785f7465 lv_obj_get_x. - -00026d5b <__func__.30>: - 26d5b: 6f5f766c 675f6a62 795f7465 lv_obj_get_y. - -00026d68 <__func__.29>: - 26d68: 6f5f766c 675f6a62 775f7465 68746469 lv_obj_get_width - ... - -00026d79 <__func__.28>: - 26d79: 6f5f766c 675f6a62 685f7465 68676965 lv_obj_get_heigh - 26d89: t. - -00026d8b <__func__.25>: - 26d8b: 6f5f766c 675f6a62 615f7465 5f6f7475 lv_obj_get_auto_ - 26d9b: 6c616572 006e6769 realign. - -00026da3 <__func__.24>: - 26da3: 6f5f766c 675f6a62 655f7465 635f7478 lv_obj_get_ext_c - 26db3: 6b63696c 6461705f 66656c5f lick_pad_left. - -00026dc1 <__func__.23>: - 26dc1: 6f5f766c 675f6a62 655f7465 635f7478 lv_obj_get_ext_c - 26dd1: 6b63696c 6461705f 6769725f lick_pad_right. - -00026de0 <__func__.22>: - 26de0: 6f5f766c 675f6a62 655f7465 635f7478 lv_obj_get_ext_c - 26df0: 6b63696c 6461705f 706f745f lick_pad_top. - -00026dfd <__func__.21>: - 26dfd: 6f5f766c 675f6a62 655f7465 635f7478 lv_obj_get_ext_c - 26e0d: 6b63696c 6461705f 746f625f 006d6f74 lick_pad_bottom. - -00026e1d <__func__.20>: - 26e1d: 6f5f766c 675f6a62 655f7465 645f7478 lv_obj_get_ext_d - 26e2d: 5f776172 00646170 raw_pad. - -00026e35 <__func__.66>: - 26e35: 6f5f766c 635f6a62 6e61656c 7974735f lv_obj_clean_sty - 26e45: 6c5f656c 00747369 le_list. - -00026e4d <__func__.19>: - 26e4d: 6f5f766c 675f6a62 6c5f7465 6c61636f lv_obj_get_local - 26e5d: 7974735f _style. - -00026e64 <__func__.65>: - 26e64: 6f5f766c 725f6a62 766f6d65 74735f65 lv_obj_remove_st - 26e74: 5f656c79 61636f6c 72705f6c yle_local_prop. - -00026e83 <__func__.18>: - 26e83: 6f5f766c 675f6a62 685f7465 65646469 lv_obj_get_hidde - 26e93: n. - -00026e95 <__func__.83>: - 26e95: 6f5f766c 695f6a62 6c61766e 74616469 lv_obj_invalidat - 26ea5: 72615f65 e_area. - -00026eac <__func__.82>: - 26eac: 6f5f766c 695f6a62 6c61766e 74616469 lv_obj_invalidat - 26ebc: e. - -00026ebe <__func__.80>: - 26ebe: 6f5f766c 6d5f6a62 5f65766f 65726f66 lv_obj_move_fore - 26ece: 756f7267 ground. - -00026ed5 <__func__.79>: - 26ed5: 6f5f766c 6d5f6a62 5f65766f 6b636162 lv_obj_move_back - 26ee5: 756f7267 ground. - -00026eec <__func__.78>: - 26eec: 6f5f766c 735f6a62 705f7465 lv_obj_set_pos. - -00026efb <__func__.77>: - 26efb: 6f5f766c 735f6a62 785f7465 lv_obj_set_x. - -00026f08 <__func__.76>: - 26f08: 6f5f766c 735f6a62 795f7465 lv_obj_set_y. - -00026f15 <__func__.72>: - 26f15: 6f5f766c 615f6a62 6e67696c lv_obj_align. - -00026f22 <__func__.71>: - 26f22: 6f5f766c 615f6a62 6e67696c 69726f5f lv_obj_align_ori - 26f32: go. - -00026f35 <__func__.70>: - 26f35: 6f5f766c 725f6a62 696c6165 lv_obj_realign. - -00026f44 <__func__.64>: - 26f44: 6f5f766c 725f6a62 65726665 735f6873 lv_obj_refresh_s - 26f54: 656c7974 tyle. - -00026f59 <__func__.67>: - 26f59: 6f5f766c 615f6a62 735f6464 656c7974 lv_obj_add_style - ... - -00026f6a <__func__.63>: - 26f6a: 6f5f766c 735f6a62 685f7465 65646469 lv_obj_set_hidde - 26f7a: n. - -00026f7c <__func__.17>: - 26f7c: 6f5f766c 675f6a62 615f7465 685f7664 lv_obj_get_adv_h - 26f8c: 65747469 ittest. - -00026f93 <__func__.16>: - 26f93: 6f5f766c 675f6a62 635f7465 6b63696c lv_obj_get_click - ... - -00026fa4 <__func__.15>: - 26fa4: 6f5f766c 675f6a62 745f7465 lv_obj_get_top. - -00026fb3 <__func__.14>: - 26fb3: 6f5f766c 675f6a62 645f7465 00676172 lv_obj_get_drag. - -00026fc3 <__func__.13>: - 26fc3: 6f5f766c 675f6a62 645f7465 5f676172 lv_obj_get_drag_ - 26fd3: 00726964 dir. - -00026fd7 <__func__.12>: - 26fd7: 6f5f766c 675f6a62 645f7465 5f676172 lv_obj_get_drag_ - 26fe7: 6f726874 throw. - -00026fed <__func__.11>: - 26fed: 6f5f766c 675f6a62 705f7465 6e657261 lv_obj_get_paren - 26ffd: 76655f74 00746e65 t_event. - -00027005 <__func__.10>: - 27005: 6f5f766c 675f6a62 625f7465 5f657361 lv_obj_get_base_ - 27015: 00726964 dir. - -00027019 <__func__.88>: - 27019: 6f5f766c 635f6a62 74616572 lv_obj_create. - -00027027 <__func__.81>: - 27027: 6f5f766c 735f6a62 705f7465 6e657261 lv_obj_set_paren - 27037: t. - -00027039 <__func__.75>: - 27039: 6f5f766c 735f6a62 735f7465 00657a69 lv_obj_set_size. - -00027049 <__func__.74>: - 27049: 6f5f766c 735f6a62 775f7465 68746469 lv_obj_set_width - ... - -0002705a <__func__.73>: - 2705a: 6f5f766c 735f6a62 685f7465 68676965 lv_obj_set_heigh - 2706a: t. - -0002706c <__func__.9>: - 2706c: 6f5f766c 675f6a62 705f7465 65746f72 lv_obj_get_prote - 2707c: ct. - -0002707f <__func__.8>: - 2707f: 6f5f766c 695f6a62 72705f73 6365746f lv_obj_is_protec - 2708f: 00646574 ted. - -00027093 <__func__.7>: - 27093: 6f5f766c 675f6a62 735f7465 65746174 lv_obj_get_state - ... - -000270a4 <__func__.27>: - 270a4: 6f5f766c 675f6a62 775f7465 68746469 lv_obj_get_width - 270b4: 7469665f _fit. - -000270b9 <__func__.26>: - 270b9: 6f5f766c 675f6a62 685f7465 68676965 lv_obj_get_heigh - 270c9: 69665f74 t_fit. - -000270cf <__func__.32>: - 270cf: 6f5f766c 675f6a62 695f7465 72656e6e lv_obj_get_inner - 270df: 6f6f635f 00736472 _coords.... - -000270ea <__func__.51>: - 270ea: 6f5f766c 735f6a62 735f7465 65746174 lv_obj_set_state - ... - -000270fb <__func__.50>: - 270fb: 6e617274 72635f73 65746165 trans_create. - -00027108 <__func__.49>: - 27108: 6f5f766c 615f6a62 735f6464 65746174 lv_obj_add_state - ... - -00027119 <__func__.48>: - 27119: 6f5f766c 635f6a62 7261656c 6174735f lv_obj_clear_sta - 27129: te. - -0002712c <__func__.6>: - 2712c: 6f5f766c 675f6a62 735f7465 616e6769 lv_obj_get_signa - 2713c: 62635f6c l_cb. - -00027141 <__func__.5>: - 27141: 6f5f766c 675f6a62 645f7465 67697365 lv_obj_get_desig - 27151: 62635f6e n_cb. - -00027156 <__func__.4>: - 27156: 6f5f766c 675f6a62 655f7465 746e6576 lv_obj_get_event - 27166: 0062635f _cb. - -0002716a <__func__.3>: - 2716a: 6f5f766c 675f6a62 655f7465 615f7478 lv_obj_get_ext_a - 2717a: 00727474 ttr. - -0002717e <__func__.2>: - 2717e: 6f5f766c 675f6a62 745f7465 00657079 lv_obj_get_type. - -0002718e <__func__.1>: - 2718e: 6f5f766c 675f6a62 675f7465 70756f72 lv_obj_get_group - ... - -0002719f <__func__.87>: - 2719f: 6f5f766c 645f6a62 lv_obj_del. - -000271aa <__func__.85>: - 271aa: 6f5f766c 645f6a62 615f6c65 636e7973 lv_obj_del_async - 271ba: 0062635f _cb. - -000271be <__func__.84>: - 271be: 6f5f766c 635f6a62 6e61656c lv_obj_clean. - -000271cb <__func__.0>: - 271cb: 6f5f766c 695f6a62 6f665f73 65737563 lv_obj_is_focuse - 271db: 2e2e0064 6168732f 2f646572 72696874 d.../shared/thir - 271eb: 72617064 6c2f7974 2f6c6776 2f637273 dparty/lvgl/src/ - 271fb: 635f766c 2f65726f 725f766c 2e726665 lv_core/lv_refr. - 2720b: 61430063 2074276e 20746573 20424456 c.Can't set VDB - 2721b: 67696568 75207468 676e6973 65687420 height using the - 2722b: 756f7220 6620646e 74636e75 2e6e6f69 round function. - 2723b: 72572820 20676e6f 6e756f72 62635f64 (Wrong round_cb - 2724b: 20726f20 73206f74 6c6c616d 42445620 or to small VDB - 2725b: ). - -0002725d <__func__.0>: - 2725d: 725f766c 5f726665 61657261 2f2e2e00 lv_refr_area.../ - 2726d: 72616873 742f6465 64726968 74726170 shared/thirdpart - 2727d: 766c2f79 732f6c67 6c2f6372 6f635f76 y/lvgl/src/lv_co - 2728d: 6c2f6572 74735f76 2e656c79 766c0063 re/lv_style.c.lv - 2729d: 7974735f 6c5f656c 5f747369 6f6d6572 _style_list_remo - 272ad: 735f6576 656c7974 6f63203a 6e646c75 ve_style: couldn - 272bd: 72207427 6c6c6165 7461636f 6c632065 't reallocate cl - 272cd: 20737361 7473696c 5f766c00 6c797473 ass list.lv_styl - 272dd: 696c5f65 615f7473 735f6464 656c7974 e_list_add_style - 272ed: 6f63203a 6e646c75 61207427 74206464 : couldn't add t - 272fd: 63206568 7373616c 74656700 636f6c5f he class.get_loc - 2730d: 735f6c61 656c7974 6f63203a 6e646c75 al_style: couldn - 2731d: 63207427 74616572 6f6c2065 206c6163 't create local - 2732d: 6c797473 766c0065 7974735f 6c5f656c style.lv_style_l - 2733d: 5f747369 5f646461 6e617274 74735f73 ist_add_trans_st - 2734d: 3a656c79 756f6320 276e646c 72632074 yle: couldn't cr - 2735d: 65746165 61727420 7469736e 206e6f69 eate transition - 2736d: 6c797473 style. - -00027373 <__func__.5>: - 27373: 5f766c5f 6c797473 696c5f65 725f7473 _lv_style_list_r - 27383: 766f6d65 74735f65 00656c79 emove_style. - -0002738f <__func__.6>: - 2738f: 5f766c5f 6c797473 696c5f65 615f7473 _lv_style_list_a - 2739f: 735f6464 656c7974 dd_style. - -000273a8 <__func__.7>: - 273a8: 5f746567 6f6c6c61 6f6c5f63 5f6c6163 get_alloc_local_ - 273b8: 6c797473 style. - -000273be <__func__.4>: - 273be: 5f766c5f 6c797473 65735f65 6e695f74 _lv_style_set_in - 273ce: t. - -000273d0 <__func__.3>: - 273d0: 5f766c5f 6c797473 65735f65 6f635f74 _lv_style_set_co - 273e0: 00726f6c lor. - -000273e4 <__func__.2>: - 273e4: 5f766c5f 6c797473 65735f65 706f5f74 _lv_style_set_op - 273f4: a. - -000273f6 <__func__.1>: - 273f6: 5f766c5f 6c797473 65735f65 74705f74 _lv_style_set_pt - 27406: r. - -00027408 <__func__.0>: - 27408: 5f766c5f 6c797473 696c5f65 615f7473 _lv_style_list_a - 27418: 745f6464 736e6172 7974735f 2e00656c dd_trans_style.. - 27428: 68732f2e 64657261 6968742f 61706472 ./shared/thirdpa - 27438: 2f797472 6c67766c 6372732f 5f766c2f rty/lvgl/src/lv_ - 27448: 77617264 5f766c2f 77617264 656c625f draw/lv_draw_ble - 27458: 632e646e 6c696600 6c625f6c 65646e65 nd.c.fill_blende - 27468: 75203a64 7075736e 74726f70 62206465 d: unsupported b - 27478: 646e656c 646f6d20 lend mode. - -00027482 <__func__.1>: - 27482: 6c6c6966 656c625f 6465646e fill_blended. - -0002748f <__func__.0>: - 2748f: 5f70616d 6e656c62 00646564 732f2e2e map_blended.../s - 2749f: 65726168 68742f64 70647269 79747261 hared/thirdparty - 274af: 67766c2f 72732f6c 766c2f63 6172645f /lvgl/src/lv_dra - 274bf: 766c2f77 6172645f 6d695f77 00632e67 w/lv_draw_img.c. - 274cf: 67616d49 72642065 203a7761 20637273 Image draw: src - 274df: 4e207369 004c4c55 640a6f4e 00617461 is NULL.No.data. - 274ef: 67616d49 72642065 65207761 726f7272 Image draw error - 274ff: 616d4900 64206567 20776172 276e6163 .Image draw can' - 2750f: 65722074 74206461 6c206568 00656e69 t read the line. - 2751f: ... - -00027522 : - 27522: 01101810 01080402 ........... - -0002752d <__func__.2>: - 2752d: 645f766c 5f776172 00676d69 lv_draw_img. - -00027539 <__func__.1>: - 27539: 695f766c 645f676d 5f776172 65726f63 lv_img_draw_core - 27549: 2f2e2e00 72616873 742f6465 64726968 .../shared/third - 27559: 74726170 766c2f79 732f6c67 6c2f6372 party/lvgl/src/l - 27569: 72645f76 6c2f7761 72645f76 6c5f7761 v_draw/lv_draw_l - 27579: 6c656261 6c00632e 72645f76 6c5f7761 abel.c.lv_draw_l - 27589: 65747465 67203a72 6870796c 63736420 etter: glyph dsc - 27599: 6f6e202e 6f662074 00646e75 645f766c . not found.lv_d - 275a9: 5f776172 7474656c 203a7265 72616863 raw_letter: char - 275b9: 65746361 20732772 6d746962 6e207061 acter's bitmap n - 275c9: 6620746f 646e756f 5f766c00 77617264 ot found.lv_draw - 275d9: 74656c5f 3a726574 766e6920 64696c61 _letter: invalid - 275e9: 70706220 746f6e20 756f6620 6c00646e bpp not found.l - 275f9: 72645f76 6c5f7761 65747465 69203a72 v_draw_letter: i - 27609: 6c61766e 62206469 nvalid bpp. - -00027614 <_lv_bpp1_opa_table>: - 27614: .. - -00027616 <_lv_bpp2_opa_table>: - 27616: ffaa5500 .U.. - -0002761a <_lv_bpp4_opa_table>: - 2761a: 33221100 77665544 bbaa9988 ffeeddcc .."3DUfw........ - -0002762a <_lv_bpp8_opa_table>: - 2762a: 03020100 07060504 0b0a0908 0f0e0d0c ................ - 2763a: 13121110 17161514 1b1a1918 1f1e1d1c ................ - 2764a: 23222120 27262524 2b2a2928 2f2e2d2c !"#$%&'()*+,-./ - 2765a: 33323130 37363534 3b3a3938 3f3e3d3c 0123456789:;<=>? - 2766a: 43424140 47464544 4b4a4948 4f4e4d4c @ABCDEFGHIJKLMNO - 2767a: 53525150 57565554 5b5a5958 5f5e5d5c PQRSTUVWXYZ[\]^_ - 2768a: 63626160 67666564 6b6a6968 6f6e6d6c `abcdefghijklmno - 2769a: 73727170 77767574 7b7a7978 7f7e7d7c pqrstuvwxyz{|}~. - 276aa: 83828180 87868584 8b8a8988 8f8e8d8c ................ - 276ba: 93929190 97969594 9b9a9998 9f9e9d9c ................ - 276ca: a3a2a1a0 a7a6a5a4 abaaa9a8 afaeadac ................ - 276da: b3b2b1b0 b7b6b5b4 bbbab9b8 bfbebdbc ................ - 276ea: c3c2c1c0 c7c6c5c4 cbcac9c8 cfcecdcc ................ - 276fa: d3d2d1d0 d7d6d5d4 dbdad9d8 dfdedddc ................ - 2770a: e3e2e1e0 e7e6e5e4 ebeae9e8 efeeedec ................ - 2771a: f3f2f1f0 f7f6f5f4 fbfaf9f8 fffefdfc ................ - -0002772a <__func__.5>: - 2772a: 645f766c 5f776172 7474656c lv_draw_letter. - -00027739 <__func__.4>: - 27739: 77617264 74656c5f 5f726574 70627573 draw_letter_subp - 27749: x. - -0002774b <__func__.3>: - 2774b: 77617264 74656c5f 5f726574 6d726f6e draw_letter_norm - 2775b: al. - -0002775e <_lv_bpp3_opa_table>: - 2775e: 6d492400 ffdbb692 .$Im.... - -00027766 : - 27766: 81808080 83828281 87868584 8d8c8a89 ................ - 27776: 9593918f 9e9b9997 a7a5a2a0 b2afadaa ................ - 27786: 2f2e2eb5 72616873 742f6465 64726968 .../shared/third - 27796: 74726170 766c2f79 732f6c67 6c2f6372 party/lvgl/src/l - 277a6: 72645f76 6c2f7761 72645f76 6d5f7761 v_draw/lv_draw_m - 277b6: 2e6b7361 766c0063 73616d5f 64615f6b ask.c.lv_mask_ad - 277c6: 6e203a64 6c70206f 20656361 61206f74 d: no place to a - 277d6: 74206464 6d206568 006b7361 dd the mask. - -000277e2 <__func__.1>: - 277e2: 645f766c 5f776172 6b73616d 6464615f lv_draw_mask_add - 277f2: 2f2e2e00 72616873 742f6465 64726968 .../shared/third - 27802: 74726170 766c2f79 732f6c67 6c2f6372 party/lvgl/src/l - 27812: 72645f76 6c2f7761 72645f76 725f7761 v_draw/lv_draw_r - 27822: 2e746365 72640063 695f7761 203a676d ect.c.draw_img: - 27832: 276e6163 65672074 6d692074 20656761 can't get image - 27842: 6f666e69 5f766c00 5f676d69 69736564 info.lv_img_desi - 27852: 203a6e67 67616d69 6f732065 65637275 gn: image source - 27862: 70797420 73692065 6b6e7520 6e776f6e type is unknown - 27872: ffff0000 .... - -00027876 <__func__.0>: - 27876: 77617264 7461705f 6e726574 22110000 draw_pattern..." - 27886: 66554433 aa998877 eeddccbb 3DUfw........ - -00027893 <__func__.0>: - 27893: 695f766c 625f676d 735f6675 705f7465 lv_img_buf_set_p - 278a3: 74656c61 2e006574 68732f2e 64657261 alette.../shared - 278b3: 6968742f 61706472 2f797472 6c67766c /thirdparty/lvgl - 278c3: 6372732f 5f766c2f 77617264 5f766c2f /src/lv_draw/lv_ - 278d3: 5f676d69 68636163 00632e65 695f766c img_cache.c.lv_i - 278e3: 635f676d 65686361 65706f5f 74203a6e mg_cache_open: t - 278f3: 63206568 65686361 7a697320 73692065 he cache size is - 27903: 69003020 6567616d 61726420 63203a77 0.image draw: c - 27913: 65686361 73696d20 63202c73 65736f6c ache miss, close - 27923: 646e6120 75657220 61206573 6e65206e and reuse an en - 27933: 00797274 67616d69 72642065 203a7761 try.image draw: - 27943: 68636163 696d2065 202c7373 68636163 cache miss, cach - 27953: 74206465 6e61206f 706d6520 65207974 ed to an empty e - 27963: 7972746e 616d4900 64206567 20776172 ntry.Image draw - 27973: 6e6e6163 6f20746f 206e6570 20656874 cannot open the - 27983: 67616d69 65722065 72756f73 image resource. - -00027992 <__func__.1>: - 27992: 5f766c5f 5f676d69 68636163 706f5f65 _lv_img_cache_op - 279a2: en. - -000279a5 <__func__.0>: - 279a5: 695f766c 635f676d 65686361 7465735f lv_img_cache_set - 279b5: 7a69735f 2e2e0065 6168732f 2f646572 _size.../shared/ - 279c5: 72696874 72617064 6c2f7974 2f6c6776 thirdparty/lvgl/ - 279d5: 2f637273 645f766c 2f776172 695f766c src/lv_draw/lv_i - 279e5: 645f676d 646f6365 632e7265 616d4900 mg_decoder.c.Ima - 279f5: 67206567 69207465 206f666e 20746567 ge get info get - 27a05: 64616572 6c696620 65682065 72656461 read file header - 27a15: 616d4900 67206567 69207465 206f666e .Image get info - 27a25: 6e756f66 6e752064 776f6e6b 7273206e found unknown sr - 27a35: 79742063 42006570 746c6975 206e692d c type.Built-in - 27a45: 67616d69 65642065 65646f63 65732072 image decoder se - 27a55: 66206b65 656c6961 75420064 2d746c69 ek failed.Built- - 27a65: 69206e69 6567616d 63656420 7265646f in image decoder - 27a75: 61657220 61662064 64656c69 69754200 read failed.Bui - 27a85: 692d746c 6d69206e 20656761 6f636564 lt-in image deco - 27a95: 20726564 64616572 746f6e20 70757320 der read not sup - 27aa5: 74726f70 68742073 6f632065 20726f6c ports the color - 27ab5: 6d726f66 62007461 42006e69 746c6975 format.bin.Built - 27ac5: 206e692d 67616d69 65642065 65646f63 -in image decode - 27ad5: 61632072 2074276e 6e65706f 65687420 r can't open the - 27ae5: 6c696620 6d690065 65645f67 65646f63 file.img_decode - 27af5: 75625f72 5f746c69 6f5f6e69 3a6e6570 r_built_in_open: - 27b05: 74756f20 20666f20 6f6d656d 49007972 out of memory.I - 27b15: 6567616d 63656420 7265646f 65706f20 mage decoder ope - 27b25: 75203a6e 6f6e6b6e 63206e77 726f6c6f n: unknown color - 27b35: 726f6620 0074616d 695f766c 645f676d format.lv_img_d - 27b45: 646f6365 695f7265 3a74696e 74756f20 ecoder_init: out - 27b55: 20666f20 6f6d656d of memory. - -00027b60 <__func__.3>: - 27b60: 695f766c 645f676d 646f6365 625f7265 lv_img_decoder_b - 27b70: 746c6975 5f6e695f 6f666e69 uilt_in_info. - -00027b7d <__func__.0>: - 27b7d: 695f766c 645f676d 646f6365 625f7265 lv_img_decoder_b - 27b8d: 746c6975 5f6e695f 656e696c 7572745f uilt_in_line_tru - 27b9d: 6f635f65 00726f6c 33221100 77665544 e_color..."3DUfw - 27bad: bbaa9988 ffeeddcc ........ - -00027bb5 <__func__.1>: - 27bb5: 695f766c 645f676d 646f6365 625f7265 lv_img_decoder_b - 27bc5: 746c6975 5f6e695f 64616572 6e696c5f uilt_in_read_lin - 27bd5: e. - -00027bd7 <__func__.2>: - 27bd7: 695f766c 645f676d 646f6365 625f7265 lv_img_decoder_b - 27be7: 746c6975 5f6e695f 6e65706f uilt_in_open. - -00027bf4 <__func__.4>: - 27bf4: 695f766c 645f676d 646f6365 635f7265 lv_img_decoder_c - 27c04: 74616572 reate. - -00027c0a <__func__.5>: - 27c0a: 5f766c5f 5f676d69 6f636564 5f726564 _lv_img_decoder_ - 27c1a: 74696e69 2f2e2e00 72616873 742f6465 init.../shared/t - 27c2a: 64726968 74726170 766c2f79 732f6c67 hirdparty/lvgl/s - 27c3a: 6c2f6372 6f665f76 6c2f746e 6f665f76 rc/lv_font/lv_fo - 27c4a: 665f746e 745f746d 632e7478 nt_fmt_txt.c. - -00027c57 : - 27c57: 06040200 0f0d0b09 ........ - -00027c5f <__func__.0>: - 27c5f: 665f766c 5f746e6f 5f746567 6d746962 lv_font_get_bitm - 27c6f: 665f7061 745f746d 00007478 ap_fmt_txt... - -00027c7c : - 27c7c: 00027c8c 000288d4 00028839 0000313d .|......9...=1.. - -00027c8c : - 27c8c: 00000100 00000000 00000100 00000003 ................ - 27c9c: 00000200 00000000 00000000 00000000 ................ - 27cac: 00010000 00000000 00000000 00000000 ................ - 27cbc: 000c0100 0000fa07 f1f20000 04060c02 ................ - 27ccc: 010d02f6 0008030b 00000000 00000000 ................ - 27cdc: 020f0000 000000fe 00000000 00000000 ................ - 27cec: f8000500 00000000 0504fb00 00fd0000 ................ - 27cfc: fd0003fe fbfffd00 00000000 fd0000fd ................ - 27d0c: fd0000fc 0000fb00 00000000 fd000000 ................ - 27d1c: 00fc00fd 00e100f9 0500fb00 fb000008 ................ - 27d2c: 05080303 000005fc 000000f1 00000000 ................ - 27d3c: 00000000 000000f7 00000000 00000000 ................ - 27d4c: f9000000 f600f3fd 000000fe 000a0100 ................ - 27d5c: 01fffef8 0000fc00 0000edfe 00000000 ................ - 27d6c: 00000000 0afeec00 00000000 00000000 ................ - 27d7c: 00000000 000000f6 00000000 08000000 ................ - 27d8c: 00000300 000000fb 00000000 00000000 ................ - 27d9c: 00000000 020a0000 00000001 00000000 ................ - ... - 27dcc: 000000f7 00000000 00000000 00000000 ................ - 27ddc: 00000000 02000000 fd080305 fd050000 ................ - 27dec: 0702ddf8 00fd0105 00080009 00e80008 ................ - 27dfc: 080008fd 000305fd 00fd0100 0014fc00 ................ - 27e0c: 00080014 0804030b f7000000 00000000 ................ - 27e1c: 0200fe01 02fbfdfb 0000fd00 0000f600 ................ - ... - 27e34: 0000ef00 00000000 00000000 00000000 ................ - 27e44: 00f20100 000000f0 1900fe00 0303fdfd ................ - 27e54: 03fd00fe 00f20000 00000000 00000000 ................ - 27e64: 00e70000 00000003 00000000 00000000 ................ - 27e74: 0f00f000 00f70000 e7ef0008 0008fbef ................ - 27e84: 0300ef00 00fc00fa 00000000 00000000 ................ - 27e94: 07000000 0000e108 00000000 00000000 ................ - 27ea4: 000c0000 00000002 02020000 ff00fbfd ................ - 27eb4: 0000fdff 000000fe 00fe00fb fa00fbfa ................ - 27ec4: 00fbf8f8 00fb00fb fe000000 00030000 ................ - 27ed4: 0100fd02 03000000 000000fe ff0303fe ................ - 27ee4: fb000000 0000ff00 01000000 00fe0300 ................ - 27ef4: 00fc00fd 0800fe00 00fd0000 00000000 ................ - 27f04: fefe01ff 00fd0000 000000fd 00000000 ................ - 27f14: ffff0000 00fdfd00 00000000 fe000001 ................ - 27f24: fdfdfd00 00000000 00000000 0000fe00 ................ - 27f34: fdfe0000 f800fc00 0005f8fe 0503fb00 ................ - 27f44: fffa0007 f4ff00fd f202fe03 01000003 ................ - 27f54: fef200f3 f300feea 00070500 00000003 ................ - 27f64: fb000100 00f800fd 00fd0000 00fd0000 ................ - 27f74: 00000000 ff00ffff 000000fd 00000000 ................ - 27f84: fe00fdfd 0000fefd 000000fd 00000000 ................ - 27f94: 00000000 fd00fefe fb00fe00 fd000003 ................ - 27fa4: 00030301 00000000 0000fe00 02000000 ................ - 27fb4: 00fd0000 00fdfefd 00000000 00020000 ................ - 27fc4: 000000fe 00fcfd00 fe0800fb 0000f801 ................ - 27fd4: f5f3f307 fe0003fb fb00fbef fb04fb00 ................ - 27fe4: 00f900f0 02ff0100 000300fe f300f6f8 ................ - 27ff4: f8fafbfa fbfff9fd 010002f9 0000fd00 ................ - 28004: 03000200 00000000 00000000 fd000000 ................ - 28014: ff00ff00 fafc00fd f800fffa 00000000 ................ - 28024: 00fe0000 01000000 000000fe 00000003 ................ - 28034: 00000000 00000c00 00000000 00000002 ................ - 28044: 000000fd 00000000 00000000 000300fb ................ - ... - 28060: 000000fe 000000fb 00f8f300 f3fc0000 ................ - 28070: 03fd0000 0000f900 00000000 00000000 ................ - 28080: fb0000fc 00000000 00000000 00000000 ................ - 28090: 00fb0003 03000000 fbfb0200 fdfdfd00 ................ - 280a0: 00000000 00f80000 fdfc00fd f8fafa00 ................ - 280b0: 00fb00fe 000000f8 00001400 fd000001 ................ - 280c0: f5000300 00000000 08fbe800 00f5fe08 ................ - 280d0: f300fc03 ee03fdff 040003fd f8f7fcf7 ................ - 280e0: f10000f5 00000f00 000000ff f9fdffff ................ - 280f0: 00e8fff8 00000000 00000000 00000001 ................ - ... - 2810c: ff00fd00 0000fcfd 00fd00fb 00000000 ................ - ... - 28124: 00ff0000 050000fb fa0003ff f9fffe03 ................ - 28134: fdfd00fd fcfc00fe fffe0000 00fdfcfe ................ - 28144: 0300fd00 00fa00fe 00fb0000 fcfc00fc ................ - 28154: 00000003 00000000 0003fb00 fdfe00fc ................ - 28164: fefefef8 fffdfeff 00000000 fefefd00 ................ - 28174: 00000000 fe00fe03 fe000000 fdfefefd ................ - 28184: 0a0200fe 00f900ff fd0005fe 0004fdf5 ................ - 28194: 03fcf400 fe0002fc fc00f8fe fc000001 ................ - 281a4: 03000000 00fbfb03 fdfcfdfc 01fc00fd ................ - 281b4: 0008fcfb 00000000 00000000 00000003 ................ - ... - 281d8: 000000fc 00000000 00000000 00000000 ................ - ... - 28204: 000000fe 00000000 00000000 00000000 ................ - ... - 28220: fdfe0000 00000000 00000000 00000000 ................ - 28230: fd0000fc fdfd0000 00000000 000000fd ................ - 28240: 0000ff00 fe000000 00000000 00fb00fc ................ - 28250: 00f80000 0105fa02 0000f4fe f600fdfa ................ - 28260: 0000f9fa f6f6fdf5 00f900f4 00fd1102 ................ - 28270: fdfffdfa f7fbf9fc 00fdfaf6 0100fe00 ................ - 28280: feee0000 f7fa0608 00f80100 05fdfef3 ................ - 28290: 0001fde8 f3fdef00 0000edfd 010f00ee ................ - 282a0: 0000fe00 feff0000 ef00fef6 00000000 ................ - 282b0: 00fe00f8 00f4f9ff f8fcff00 00fe00fd ................ - 282c0: f4000000 fef8f8fd fcfdfafc f8fefb00 ................ - 282d0: fbfd00fc 0100fbfd 00f8fe00 00fb0005 ................ - 282e0: 03000000 0afb0200 fdfdfd00 00000000 ................ - 282f0: 00f80000 fdfc00fd f8fafa00 02fb00fe ................ - 28300: 0000000a 00001400 fd000001 00000300 ................ - 28310: 00000000 00ff0000 00000000 0000fbfe ................ - 28320: ff000000 fd000000 fb0000fd fb0000fd ................ - 28330: 00ff0400 00000000 00000100 05040000 ................ - 28340: f800fe02 f80800fc 0afbfbf8 feea0305 ................ - 28350: fd00fd05 00f7fd03 fefd03fd 0000fef8 ................ - 28360: f9000508 07fdf200 fd01f6fd 0afdf8f8 ................ - 28370: 00fc0003 080200f9 faf6f7fa ed010008 ................ - 28380: fefc03fe f7fa00fa 00fefcfc fdfbfa00 ................ - 28390: fd060800 fcf200f2 fff1f700 f9f8fcf8 ................ - 283a0: fd000007 00fefb00 0400fbfd 000003f8 ................ - 283b0: fafd00f2 faf8fefc f800faf8 f8fbfafd ................ - 283c0: 010000fd f800fc0c fbfd00fd f6f9f9fa ................ - 283d0: 0005fbfd fdf300fc f7f80502 fd08f8fb ................ - 283e0: 05fbe801 00f7fcfa fdfdf5f8 f8fbfdfe ................ - 283f0: 080000ff 00effe07 f606faf1 f5f7fbef ................ - 28400: 0005f8f3 fd000000 fd030000 05fb0205 ................ - 28410: fff80000 0100ff00 0000fe01 00000000 ................ - 28420: 000000fd 01080200 0000fd00 fefe0000 ................ - 28430: 000000fd 00000201 00020000 000a00fe ................ - 28440: fd010105 00000500 00000200 00000000 ................ - 28450: 00000000 07000800 00000000 00000000 ................ - 28460: 00000000 00f10000 080004fd 03190000 ................ - 28470: 0303fbfb 00f301fe 00f10c00 00000000 ................ - 28480: 00000000 0aef0000 00000024 00000000 ........$....... - 28490: 00000000 0000f100 00000000 00000000 ................ - ... - 284b0: fb0000fc 000000fe 00000000 00000000 ................ - ... - 284c8: 00f900fe 00000100 fefb2103 03f90708 .........!...... - 284d8: 03030000 000000fd 00000000 00000000 ................ - 284e8: 000007df 00000000 00000000 00000000 ................ - 284f8: f9000000 f9000000 00000000 0000fffa ................ - 28508: fd00fa00 0000f400 00000000 00000000 ................ - 28518: 0000ef00 00010000 00000000 0000fd00 ................ - 28528: 00fc00fb 000000f9 00fd03fc fafdf900 ................ - 28538: 00f90000 00f400fd eb0000fd f7fdf6fb ................ - 28548: 00ef0000 0000fff9 00000000 fbfc0000 ................ - 28558: 0000fcfe 00fa0000 05fd03fa fefafe00 ................ - 28568: fd00fbfc f902feff 000000ff 00fcfee9 ................ - 28578: f4fe00fa fe0000fe 000000fe fe000200 ................ - 28588: 0004fefc 00000000 00000000 00000000 ................ - ... - 285b4: 00030000 00000000 fe00fa00 fb000000 ................ - 285c4: 00000003 00fbfdf9 fd00f900 0000f400 ................ - 285d4: 00e70000 00f3f7fb fe00ef00 000000fc ................ - 285e4: 00000000 fffcfd00 000001fc 0800fd04 ................ - 285f4: f8fdfd0d 06040d03 030b03f9 00070607 ................ - ... - 2860c: 0c100000 fe00fdfb 00140b14 00030000 ................ - 2861c: 00000900 000000fc 00000000 00fe0000 ................ - 2862c: 00000000 04000000 00000000 f6fefdea ................ - 2863c: ef0000f3 00000000 00000000 00000000 ................ - 2864c: 00000000 0000fc00 00000000 fe000000 ................ - ... - 28664: 00000004 fefdea00 0000f3f6 000000f6 ................ - ... - 28684: 000000fe fd0003fa f8030502 03feff00 ................ - 28694: 00000200 00fa0000 00fbfefe 1000f6fe ................ - 286a4: fefa00fd 00fcfe00 fdfbf9fd fc000000 ................ - ... - 286bc: 0000fe00 00000000 00040000 ea000000 ................ - 286cc: f3f6fefd 00ef0000 00000000 00000d00 ................ - ... - 286e4: fdf800fc fdfe08fe 01fe01f6 0601f9fe ................ - 286f4: 02010201 00fdf6fa f5f9fbf6 fbfc00f6 ................ - 28704: fefefdfd fe00fefd 040004ff 000800fe ................ - ... - 2871c: fe000000 0000fdfd 00ff00f9 000000fc ................ - ... - 28734: 000000f1 00000000 00000000 fd00fdfd ................ - 28744: 00000000 fc0000fe fc0003fd f900fefb ................ - 28754: fdfefafe 0000fc00 00000000 00000000 ................ - 28764: 0800ef00 00fb0000 fd000000 0000fd00 ................ - 28774: fe0000ff 0000fa00 f8f8fd0b ff030302 ................ - 28784: 020402f9 fe080208 f60000f9 f9f80000 ................ - 28794: 00fb0000 fc00fcfd fe00fc00 f8fe0004 ................ - 287a4: 000009fd 00fb00fe 00fa0300 0002fd03 ................ - 287b4: fe00f800 03fd00ff 000000fe 00fafdf6 ................ - 287c4: f40000f8 00fd0900 000200fb f8fd00fd ................ - 287d4: 0003fd00 fe000000 fd030000 fd000001 ................ - 287e4: 00fd00fe 00000000 00000000 00000000 ................ - 287f4: 00000000 000600f0 0000fe00 00010000 ................ - 28804: 0000fdfd 06000500 00000000 01f1f000 ................ - 28814: f604080b 09000b02 00000500 00000000 ................ - 28824: 00000000 00000e00 00000000 00000000 ................ - 28834: 00000000 ..... - -00028839 : - 28839: 02010000 05040300 08070602 0a090a09 ................ - 28849: 0e0d0c0b 0c11100f 15141312 00000015 ................ - 28859: 19181716 19191917 1a191917 19191919 ................ - 28869: 19171917 1d1c1b03 201f1e1d 00232221 ........... !"#. - 28879: 26250024 00272727 29282627 2a2a2626 $.%&'''.'&()&&** - 28889: 2a272a27 2e2d2c2b 302e2f2e 09230000 '*'*+,-../.0..#. - 28899: 00000931 00000000 00000000 00000000 1............... - ... - -000288d4 : - 288d4: 02010000 05040300 08070602 0a090a09 ................ - 288e4: 0d000c0b 11100f0e 140c1312 00000014 ................ - 288f4: 18171615 1b1a1619 1e1d1d1c 1d1d201f ............. .. - 28904: 23222116 251e2403 28272625 002b2a29 .!"#.$.%%&'()*+. - 28914: 2e2d002c 3231302f 34342d33 2d2d3035 ,.-./0123-4450-- - 28924: 37362e2e 3a333938 3c3a3b3a 09000029 ..67893::;:<)... - 28934: 0000093d 00000000 00000000 00000000 =............... - ... - -00028970 : - 28970: 00000020 0001005f 00000000 00000000 ..._........... - 28980: 00000000 000000b0 0060f7f3 00028998 ..........`..... - 28990: 00000000 0002003b ....;... - -00028998 : - 28998: 1f720000 ef58ef51 ef5cef5b ef61ef5d ..r.Q.X.[.\.].a. - 289a8: ef65ef63 ef6cef69 ef76ef71 ef78ef77 c.e.i.l.q.v.w.x. - 289b8: ef98ef8e ef9cef9b efa1ef9d efa3efa2 ................ - 289c8: efb7efa4 efbeefb8 efc1efc0 efc7efc4 ................ - 289d8: efc9efc8 efe3efcb f014efe5 f017f015 ................ - 289e8: f03af037 f06cf043 f0abf074 f190f13b 7.:.C.l.t...;... - 289f8: f192f191 f194f193 f1e3f1d7 f254f23d ............=.T. - 28a08: f712f4aa 0000f7f2 ........ - -00028a10 : - ... - 28a18: 04500000 00000000 04500000 00010c03 ..P.......P..... - 28a28: 06400012 07010505 0b40001f 00000c0b ..@.......@..... - 28a38: 09f00061 fe00100a 0d8000b1 00000c0d a............... - 28a48: 0b0000ff ff000d0b 03600147 07010502 ........G.`..... - 28a58: 0560014c fd010f04 0570016a fd000f04 L.`.....j.p..... - 28a68: 06600188 05000707 095001a1 02010808 ..`.......P..... - 28a78: 03a001c1 fe000503 062001c9 03000306 .......... ..... - 28a88: 03a001d2 00000303 05a001d7 feff1008 ................ - 28a98: 0ab00217 00000c0a 05f00253 00000c05 ........S....... - 28aa8: 09300271 00000c09 092002a7 00000c09 q.0....... ..... - 28ab8: 0ab002dd 00000c0b 0930031f 00000c09 ..........0..... - 28ac8: 09e00355 00000c0a 09900391 00000c09 U............... - 28ad8: 0a5003c7 00000c0a 09e00403 00000c0a ..P............. - 28ae8: 03a0043f 00000903 03a0044d fd000c03 ?.......M....... - 28af8: 0950045f 02010808 0950047f 03010608 _.P.......P..... - 28b08: 09500497 02010808 093004b7 00000c09 ..P.......0..... - 28b18: 109004ed fd000f10 0bb00565 00ff0c0d ........e....... - 28b28: 0c2005b3 00010c0b 0b9005f5 00000c0b .. ............. - 28b38: 0d300637 00010c0c 0ac0067f 00010c09 7.0............. - 28b48: 0a3006b5 00010c09 0c6006eb 00000c0c ..0.......`..... - 28b58: 0d000733 00010c0b 04f00775 00010c03 3.......u....... - 28b68: 08300787 00ff0c08 0b8007b7 00010c0b ..0............. - 28b78: 098007f9 00010c09 0f40082f 00010c0d ......../.@..... - 28b88: 0d00087d 00010c0b 0d7008bf 00000c0d }.........p..... - 28b98: 0b90090d 00010c0a 0d700949 fd000f0e ........I.p..... - 28ba8: 0ba009b2 00010c0a 09f009ee 00000c0a ................ - 28bb8: 09600a2a 00000c0a 0ca00a66 00010c0b *.`.....f....... - 28bc8: 0b600aa8 00ff0c0d 12000af6 00000c12 ..`............. - 28bd8: 0ac00b62 00000c0b 0a600ba4 00ff0c0c b.........`..... - 28be8: 0a800bec 00000c0b 05500c2e fd010f05 ..........P..... - 28bf8: 05a00c54 feff1008 05500c94 fd000f04 T.........P..... - 28c08: 09500cb2 02010708 08000cce fe000208 ..P............. - 28c18: 09a00cd6 0a010205 09900cdb 00000909 ................ - 28c28: 0af00d04 00010c0a 09200d40 00000909 ........@. ..... - 28c38: 0af00d69 00000c0a 09d00da5 0000090a i............... - 28c48: 05a00dd2 00000c07 0b100dfc fd000c0a ................ - 28c58: 0ae00e38 00010c09 04700e6e 00010c03 8.......n.p..... - 28c68: 04900e80 fdfe0f06 09e00ead 00010c09 ................ - 28c78: 04700ee3 00010c02 10f00eef 0001090f ..p............. - 28c88: 0ae00f33 00010909 0a300f5c 0000090a 3.......\.0..... - 28c98: 0af00f89 fd010c0a 0af00fc5 fd000c0a ................ - 28ca8: 06901001 00010906 0800101c 00000908 ................ - 28cb8: 06a01040 00000b07 0ad01067 00010909 @.......g....... - 28cc8: 08f01090 00ff090a 0e6010bd 0000090f ..........`..... - 28cd8: 08d01101 00000909 08f0112a fdff0c0a ........*....... - 28ce8: 08501166 00000908 05a0118a fd000f06 f.P............. - 28cf8: 04d011b7 fd010f03 05a011ce fd000f05 ................ - 28d08: 095011f4 04000509 06b0120b 06000606 ..P............. - 28d18: 0500121d 03010403 10001223 fe001110 ........#....... - 28d28: 100012ab 00000c10 1000130b ff000e10 ................ - 28d38: 1000137b 00000c10 0b0013db 00000c0b {............... - 28d48: 1000141d fe001010 1000149d fe001010 ................ - 28d58: 1200151d ff000e12 1000159b fe001010 ................ - 28d68: 1200161b 00000c12 10001687 fe001010 ................ - 28d78: 08001707 ff000e08 0c00173f ff000e0c ........?....... - 28d88: 12001793 fe001012 10001823 00000c10 ........#....... - 28d98: 0e001883 fe02100a 0e0018d3 fd00120e ................ - 28da8: 0e001951 ff000f0e 0e0019ba ff000e0e Q............... - 28db8: 0e001a1c fe02100a 0e001a6c ffff0e10 ........l....... - 28dc8: 0a001adc ff000e0a 0a001b22 ff000e0a ........"....... - 28dd8: 0e001b68 ff000e0e 0e001bca 0400040e h............... - 28de8: 12001be6 00000c12 14001c52 fe001014 ........R....... - 28df8: 12001cf2 feff1014 10001d92 fe001010 ................ - 28e08: 0e001e12 01000a0e 0e001e58 01000a0e ........X....... - 28e18: 14001e9e ff000e14 10001f2a 00000c10 ........*....... - 28e28: 10001f8a fe001010 1000200a feff1111 ......... ...... - 28e38: 0e00209b ff000e0f 0e002104 fe00100e . .......!...... - 28e48: 0e002174 ff000e0e 0a0021d6 feff100c t!.......!...... - 28e58: 0e002236 fe00100e 0e0022a6 fe00100e 6"......."...... - 28e68: 12002316 00000c12 10002382 fdff1212 .#.......#...... - 28e78: 0c002424 fe00100c 14002484 ff000f14 $$.......$...... - 28e88: 1400251a 01000a14 1400257e 01000a14 .%......~%...... - 28e98: 140025e2 01000a14 14002646 01000a14 .%......F&...... - 28ea8: 140026aa 01000a14 1400270e ff000e15 .&.......'...... - 28eb8: 0e0027a1 fe01100c 0e002801 fe00100e .'.......(...... - 28ec8: 10002871 fdff1111 14002902 00000c14 q(.......)...... - 28ed8: 0c00297a fe00100c 102029da 01000b11 z).......) ..... - -00028ee8 : - 28ee8: aff00bbf 089ee00a c0078cd0 bf100000 ................ - 28ef8: 1ff5e01a e4f3513f f2403e0f 00100872 ....?Q...>@.r... - 28f08: e003c005 007a0000 0900005c 01a00780 ......z.\....... - 28f18: ffffffff 733e03fd 0030833c 00c500f2 ......>s<.0..... - 28f28: 0e100f00 f0020030 9f00f200 ffffffff ....0........... - 28f38: 36c33841 890030e3 00005c00 a007700a A8.6.0...\...p.. - 28f48: 79000000 00000000 00000079 20e9ff5c ...y....y...\.. - 28f58: 9ebcfc06 79b00e90 800f1000 0d000079 .......y....y... - 28f68: 000079f5 50fdef03 cf060000 000040fe .y.....P.....@.. - 28f78: 00f15e79 f3057900 07790007 bce92ff1 y^...y....y../.. - 28f88: ae03a0af 0000d7ff 00007900 00790000 .........y....y. - 28f98: 80de0300 00d00500 01500ce4 004c00e3 ..........P...L. - 28fa8: 00a9005a c004a006 4c00004e 500d5a00 Z.......N..L.Z.P - 28fb8: 1ce40000 0000a058 e173ce03 0000e93c ....X.....s.<... - 28fc8: 400ed600 7c0000a8 d003c003 3c202e00 ...@...|...... < - 28fd8: 0b003d00 09e20070 00d00680 00a0dd04 .=..p........... - 28fe8: 00b1ef09 3ce40900 d90000a0 00007d00 .......<.....}.. - 28ff8: a01cc00c ae3f0000 010000c1 0000c0df ......?......... - 29008: 708feb03 00db0018 3ff0657f ea8f0040 ...p.....e.?@... - 29018: 0000f703 f90b70cf 40bfcf66 30eadf08 .....p..f..@...0 - 29028: 000000a5 f5000000 72e4e4f5 f205da00 ...........r.... - 29038: 700fc00b 205f403f 007f106f 205f106f ...p?@_ o...o._ - 29048: 700f403f f205c00b 303fda00 f106b00c ?@.p......?0.... - 29058: e900f601 ad00bc00 ad00ae00 e900bc00 ................ - 29068: f106f601 303fb00c 06004a00 2ba0a474 ......?0.J..t..+ - 29078: 7f00e5ff 6b7b20fb a004008d 00130000 ..... {k........ - 29088: 10050000 500f0000 500f0000 511f0100 .......P...P...Q - 29098: ffffef10 744f34f3 500f0040 500f0000 .....4Ot@..P...P - 290a8: fd520900 0fc5a00b 10110100 04f3ff1f ..R............. - 290b8: 12034044 00901efc 00f10500 00b00a00 D@.............. - 290c8: 00600f00 00105f00 0000ab00 0000f600 ..`.._.......... - 290d8: 0000f105 0000b00a 0000600f 0000104f .........`..O... - 290e8: 000000ac 040000f6 0a0000f1 0e0000c0 ................ - 290f8: 4f000060 00000010 00c5ef08 cfa8cf00 `..O............ - 29108: 00f50770 c00df20a 1ff80100 dc000080 p............... - 29118: 0000603f 00603fbd 801fbd00 0ddc0000 ?`...?`......... - 29128: f80100c0 0a00f507 a8cf00f2 080070cf .............p.. - 29138: ef00c5ef f37a36ff 05305f00 305f00f3 .....6z.._0..._0 - 29148: 5f00f305 00f30530 f305305f 05305f00 ..._0..._0..._0. - 29158: fdbe04f3 98fd0770 002890cf 0000bf00 ....p.....(..... - 29168: 00f20700 00af0000 804f0000 c03f0000 ..........O...?. - 29178: c13e0000 c12e0000 d12e0000 f82e0000 ..>............. - 29188: ff467777 6ffaffff 02ffffff b09f7777 wwF....o....ww.. - 29198: e10c0000 f3090000 f6050000 df000000 ................ - 291a8: 040010e9 0000fd59 00f40600 643f0000 ....Y.........?d - 291b8: f3080040 fb8cc9bf d7ff7c00 01000000 @........|...... - 291c8: 000000eb 0010be00 506f0000 2f000000 ..........oP.../ - 291d8: 00000090 0000d00c 01f30800 f80300d5 ................ - 291e8: 00602f00 f72322ed ffff6f21 5581ffff ./`.."#.!o.....U - 291f8: 52f95655 2f000000 00000060 0500f602 UV.R.../`....... - 29208: 00ffffff 7077777f 0000e008 0000ad00 .....wwp........ - 29218: 10c20b00 ffdf0000 550430fb 0020ff68 .........0.Uh. . - 29228: 00f80400 920f0000 f6050050 fd8ad98f ........P....... - 29238: e9ef5b10 ce050010 9f0060fc 05708bc8 .[.......`....p. - 29248: 000000f8 0000d00c 00801f00 682f0000 ............../h - 29258: 3f10faef d08f64ee 0600f12f 00c00ef4 ...?.d../....... - 29268: f109f602 01f30600 b09f86de d8ef1900 ................ - 29278: ffff8f00 77f7e8ff 008ffc77 90554f00 .......ww....OU. - 29288: 00e00b00 00f80200 109f0000 b00f0000 ................ - 29298: f4060000 dd000000 3f000000 0a000070 ...........?p... - 292a8: 010000f1 000000f9 00d7ff5c af76fc06 ........\.....v. - 292b8: 00d00ca0 c00df109 07f20700 c05e11f7 ..............^. - 292c8: feffbf00 54f90910 802fd07e 4ff60400 .......T~./....O - 292d8: f8000050 0500a01f 76fb09f6 6c00d0af P..........v...l - 292e8: 0010d8ff 0080fd8e fc68f80c 00505f00 ..........h.._P. - 292f8: 008f703f 7fc00e00 f01f0030 cf13d41f ?p......0....... - 29308: ffef04f1 0200f0a9 00f00a31 a00e0000 ........1....... - 29318: 9f000000 8da70930 df0700f7 1e0040eb ....0........@.. - 29328: 1003fc92 00000000 1efc1203 fc921e90 ................ - 29338: 00001003 01000000 a8d01fe9 00a0300e .............0.. - 29348: 00420000 03f37d01 bf10e89f ee0000b5 ..B..}.......... - 29358: 17000081 0000b4df 00d2af04 ef820100 ................ - 29368: 45f3ffff 00515555 01000000 ef101111 ...EUUQ......... - 29378: 34f3ffff 50404444 ef000000 06000092 ...4DD@P........ - 29388: 0000b5cf 00e29f03 02f36c00 bf20e99e .........l.... . - 29398: 930000c6 04000000 0770fdbe a0bf77fc ..........p..w.. - 293a8: cf000027 09000000 010000f0 010000ea '............... - 293b8: 000010dd 000010ce 0000603f 00003001 ........?`...0.. - 293c8: 00000100 00f50600 405f0000 17000000 .........._@.... - 293d8: 00b5fdce fb050000 c27d2353 406e0000 ........S#}...n@ - 293e8: 8e000000 01f40210 493ffaae 1e900ab0 ..........?I.... - 293f8: 40ef5be6 8f300fe3 40af0010 d9001f98 .[.@..0....@.... - 29408: 403f0000 e8003f6a 401f0000 d9001f5c ..?@j?.....@\... - 29418: 403f0000 8f300f6a 40af0010 1e900a98 ..?@j.0....@.... - 29428: a6de5ad6 01f303f2 ee16faaf 406e0050 .Z..........P.n@ - 29438: 00000000 fb060000 00752353 17000000 ........S#u..... - 29448: 00a3fdce 02000000 000000fd f49f0000 ................ - 29458: 00000000 00b09e0f f2060000 0000207f ............. .. - 29468: f801dc00 4f000000 00e00b60 00f00b00 .......O`....... - 29478: 0100604f ed1111fa ff8f0000 00f3ffff O`.............. - 29488: 4444c40e f406a04f af000000 0000cd10 ..DDO........... - 29498: 5ff80200 40ebffff 5755f805 405f40df ..._...@..UW.@_@ - 294a8: 05fa0100 0f0000f4 11515fa0 ff05f43a ........._Q.:... - 294b8: 00faffff 5944745f 00f405fa 5ff20800 ...._tDY......._ - 294c8: 5f000040 0000f445 855ff209 05fb6a55 @.._E....._.Uj.. - 294d8: d7ffffff 8d020000 0400b4fe f99db8ff ................ - 294e8: 0020fd02 20bf5008 0f000000 000000a0 .. ..P. ........ - 294f8: 0000f602 602f0000 00000000 000000fa ....../`........ - 29508: 00f20b00 2f000000 850000d2 89fb5f00 ......./....._.. - 29518: 290080df 5f40ebdf 30eaffff 77975f00 ...)..@_...0._.w - 29528: 5f00f89e af000040 00405f60 5fe00d00 ..._@...`_@...._ - 29538: 06000040 00405ff4 5ff60300 03000040 @...._@...._@... - 29548: 00405ff6 5ff40600 0d000040 00405fe0 ._@...._@...._@. - 29558: 5f60af00 f89e7797 ffff5f00 5f0030ea ..`_.w..._...0._ - 29568: 95ffffff 747777f9 0000405f 0000f405 .....wwt_@...... - 29578: 11515f00 ffff0511 745fe0ff f4054444 ._Q......._tDD.. - 29588: 5f000000 05000040 000000f4 7777975f ..._@......._.ww - 29598: ffffff65 ffff5ffd 77f995ff 405f7477 e...._.....wwt_@ - 295a8: f4050000 5f000000 05000040 102222f5 ......._@...."". - 295b8: feffff5f 5555f805 00405f40 00f40500 _.....UU@_@..... - 295c8: 405f0000 f4050000 00000000 b5fe8d01 .._@............ - 295d8: fb4f0000 02b0df89 060020fd 00f20b60 ..O...... ..`... - 295e8: 0f000000 000000a0 00602f00 2f000000 ........./`..../ - 295f8: 09000060 00a00ff0 0bf00900 090000f2 `............... - 29608: 20fd02f0 00f00a00 df89fb4f 8d0200c0 ... ....O....... - 29618: 5f00c6fe 4f000040 0000f455 405ff504 ..._@..OU....._@ - 29628: 554f0000 040000f4 22525ff5 ff555f22 ..OU....._R""_U. - 29638: f5ffffff 5555855f 00f4558f 5ff50400 ...._.UU.U....._ - 29648: 4f000040 0000f455 405ff504 554f0000 @..OU....._@..OU - 29658: 040000f4 f4455ff5 5ff4455f 455ff445 ....._E._E._E._E - 29668: f4455ff4 00f4455f 00faffff 00fa7777 ._E._E......ww.. - 29678: 00fa0000 00fa0000 00fa0000 00fa0000 ................ - 29688: 00fa0000 00fa0000 07f90000 0df60320 ............ ... - 29698: 01f18ee9 5f30fbae eb020040 0100f405 ......0_@....... - 296a8: 405f00ec 0510de01 20ce00f4 bf405f00 .._@....... ._@. - 296b8: f4050030 0000909f 40efcf5f 91ff0500 0......._..@.... - 296c8: 5f0010ee 00fc03a0 0600f405 405f00f8 ..._.........._@ - 296d8: 05f50900 0c0000f4 00405ff2 00f40500 ........._@..... - 296e8: 405f0000 f4050000 5f000000 05000040 .._@......._@... - 296f8: 000000f4 0000405f 0000f405 00405f00 ...._@......._@. - 29708: 00f40500 975f0000 ff257777 5ff5ffff ......_.ww%...._ - 29718: 00000040 00fc951e f9080000 0000f55f @..........._... - 29728: fd95ff02 ae0000e0 705f5ff9 955f3f00 .........__p.?_. - 29738: 0b108ff3 315ff9c0 0ff304e9 f207f395 ......_1........ - 29748: 5ff900db 20ef0d30 00f3950f f900905f ..._0.. ...._... - 29758: 7100305f f3950f00 00000000 00505ff9 _0.q........._P. - 29768: ff554f00 f5040020 0000fd5f f9fa554f .OU. ..._...OU.. - 29778: 5ff50400 4f00f54a f20df455 405ff504 ..._J..OU....._@ - 29788: 554fd02f 946f00f4 00405ff5 f455afaf /.OU..o.._@...U. - 29798: f5df0000 0200405f 00f455ff 00f50600 ...._@...U...... - 297a8: b5fe8d01 ff040000 00fa9eb8 0020fd02 .............. . - 297b8: bf00f908 0a000020 00a00ff2 723f0000 .... .........?r - 297c8: 000000f6 602ff900 0f000000 0000fa90 ....../`........ - 297d8: 0bf70300 000000f2 d22f20af 908f0000 ......... /..... - 297e8: 89fb4f00 0000a0ef 50ebdf28 ffff5f00 .O......(..P._.. - 297f8: 975f00d7 5fc0bf78 f6070040 0000405f .._.x.._@..._@.. - 29808: 00405ffa 405ffa00 5ff80300 f16e2362 ._@..._@..._b#n. - 29818: fdffff5f 54855f30 405f0020 5f000000 _...0_.T ._@..._ - 29828: 00000040 0000405f 8d010000 0000b5fe @..._@.......... - 29838: 89fb4e00 0200a0ef 080020fd f20a00f9 .N....... ...... - 29848: af000000 00a00f20 703f0000 0000602f .... .....?p/`.. - 29858: 2f900f00 00000060 901f900f 2f000000 .../`........../ - 29868: 00f10b70 20af0000 0010fc03 0000f907 p...... ........ - 29878: df78fa6f 030000b0 00c5ffae 00000000 o.x............. - 29888: b015d43e 02000000 0080ffbf 01000000 >............... - 29898: ff5f0031 5f00d7ff c0bf7897 0700405f 1._...._.x.._@.. - 298a8: 00405ff6 405ffa00 5ffa0000 f8030040 ._@..._@..._@... - 298b8: 6e23525f ffff5fe1 855f30fc 5f00f955 _R#n._...0_.U.._ - 298c8: 407f0040 0c00405f 00405fe0 5c00f902 @..@_@..._@....\ - 298d8: 0720d9ef 90af87fc 0100c00e 00800f10 .. ............. - 298e8: f50d0000 03000000 0050eaef feae0500 ..........P..... - 298f8: 00000040 0000f14e 08f30500 f2080000 @...N........... - 29908: bf77fa2f ff9d02a0 ffff00c7 67f5ffff /.w............g - 29918: 7277fb78 00f70100 f7010000 01000000 x.wr............ - 29928: 000000f7 0000f701 00f70100 f7010000 ................ - 29938: 01000000 000000f7 0000f701 00f70100 ................ - 29948: f7010000 306f0000 168f0000 080000f3 ......o0........ - 29958: 00306ff1 f3168f00 f1080000 0000306f .o0.........o0.. - 29968: 00f3168f 6ff10800 8f000030 0000f405 .......o0....... - 29978: 703ff009 00cd0000 5f0020de a8ff0480 ..?p..... ._.... - 29988: 0300d0bf 0081fdbe 0000e00c 6f306f00 .............o0o - 29998: 0c000050 00fb00c0 00f60300 0000f209 P............... - 299a8: 2f0000ae 901f0080 00ce0000 0000f207 .../............ - 299b8: db00f605 0e000000 00504fc0 3b8f0000 .........OP....; - 299c8: 000000e0 00f8fb02 0b000000 000010ff ................ - 299d8: b04f0000 405f0000 00df0000 0ff50200 ..O..._@........ - 299e8: ff020090 f0070040 0700e00b 0c0090fe ....@........... - 299f8: 00f306b0 00e0aa0c f801601f f3541f00 .........`....T. - 29a08: 00106f00 107f00cd 00cc00f8 cb207f00 .o............ . - 29a18: f701ad00 712f0000 265f00f6 0d0000f2 ....../q.._&.... - 29a28: 0f00f1c6 0000d07b 00c0fd08 0080df0b ....{........... - 29a38: 70ff0300 30ff0600 ef000000 fe010020 ...p...0.... ... - 29a48: 903f0000 00cd0000 7f00408f 10de0030 ..?......@..0... - 29a58: 0300802f 00d00cfa f3fb0700 0c000000 /............... - 29a68: 000000f8 00c0ef01 7fbf0000 6f000070 ............p..o - 29a78: 0020af60 ed01b02f 00f10c00 f607f804 `. ./........... - 29a88: f3090000 0000e00c f703f207 901f0000 ................ - 29a98: 0010af00 1f00109e 00f602a0 0bf30800 ................ - 29aa8: 000000d0 00404fec fb5f0000 00000000 .....O@..._..... - 29ab8: 0000f20c f0090000 00000000 0000f009 ................ - 29ac8: f0090000 00000000 0000f009 ffffff3f ............?... - 29ad8: 777701fd 0090bf77 c01e0000 0c000000 ..www........... - 29ae8: 000000f2 0000f508 00f90400 ec010000 ................ - 29af8: 00000000 000020cf 00508f00 904f0000 ..... ....P...O. - 29b08: 1e000000 777777f8 ffffff05 ff5ff0ff .....www......_. - 29b18: 5f50f705 00f30530 f305305f 05305f00 ..P_0..._0..._0. - 29b28: 305f00f3 5f00f305 00f30530 f705305f .._0..._0..._0.. - 29b38: 00ff5f50 0000007e 0000401f 0000900c P_..~....@...... - 29b48: 0000e007 0000f402 0000c900 00007e00 .............~.. - 29b58: 00402f00 00900c00 00e00700 00f30200 ./@............. - 29b68: 00d90000 007e0000 302f0000 900d0000 ......~.../0.... - 29b78: e0070000 ea35fabf ea00ea00 ea00ea00 ......5......... - 29b88: ea00ea00 ea00ea00 ea00ea00 ea35ea00 ..............5. - 29b98: 2f00fabf 9d000080 f30000e0 d00600d5 .../............ - 29ba8: 600c007b 103f201f 009a800b ffffe004 {..`. ?......... - 29bb8: 1111ffff f6071111 01e70300 0080fd9e ................ - 29bc8: 90af87ce af000002 06000000 ffbe02f2 ................ - 29bd8: 42ec20ff 502ff227 ec207f00 02f27f42 . .B'./P.. .B... - 29be8: 206ffbbf 0000008f 00008f00 008f0000 ..o ............ - 29bf8: 8f000000 00b3fe2b ef78ec8f 00a08f30 ....+.....x.0... - 29c08: 208fc01e 8ff10700 f3050000 0700208f ... ......... .. - 29c18: 00a08ff1 ec8fd01e 8e30ef78 00b3fe2b ........x.0.+... - 29c28: c4ef3a00 7cd84f00 00d00df4 00f61307 .:...O.|........ - 29c38: 304f0000 f6030000 0d000000 100600d0 ..O0............ - 29c48: f47cd74f c4ef3a00 00000000 0000f701 O.|..:.......... - 29c58: 00f70100 f7010000 a3ff3b00 87fd04f7 .........;...... - 29c68: d00ef7ce 3ff70b00 f7030060 0100304f .......?`...O0.. - 29c78: 00503ff7 c00ef703 04f70a00 f7be65fc .?P..........e.. - 29c88: b2ff3b00 fe3b00f7 fc0400a2 0e20ee67 .;....;.....g. . - 29c98: a01e00c0 0700503f ffff4ff0 723ff1ff ....?P...O....?r - 29ca8: 0e202222 000200c0 af87fd04 ef3a0050 "" .........P.:. - 29cb8: 5d0000d6 b52f00fc 00f30470 a0ffff0c ...]../.p....... - 29cc8: 0053f748 0500305f 5f0000f3 f3050030 H.S._0....._0... - 29cd8: 305f0000 00f30500 00305f00 b2ff3b00 .._0....._0..;.. - 29ce8: 87fe04e9 d10ef9cf 3ff90a00 f9010060 ...........?`... - 29cf8: 0000404f 00603ff9 d00ef901 04f90900 O@...?`......... - 29d08: f8cf87fd b3ff3b00 000000f7 e909f405 .....;.......... - 29d18: 01b0af77 00d8ff7c 0000008f 0000f008 w...|........... - 29d28: 00008f00 bff20800 fb8f10ea f808fd89 ................ - 29d38: 8ff40600 781f0010 f80000f0 0f00008f .......x........ - 29d48: 0000f088 00008ff8 00f0880f 1a9ef800 ................ - 29d58: f00800f2 8ff0088f 088ff008 f0088ff0 ................ - 29d68: 00e20700 0000f309 f1070000 00f10700 ................ - 29d78: 0700f107 f10700f1 00f10700 0700f107 ................ - 29d88: f10700f1 18f00800 fc3ec06e 00008f20 ........n.>. ... - 29d98: 00f00800 008f0000 f0080000 8fd11d00 ................ - 29da8: 08e21d00 00e21df0 00f32d8f 70fffe08 .........-.....p - 29db8: bfe28f00 01f20830 008f10ee f008fb03 ....0........... - 29dc8: 8ff70700 8f8f8f8f 8f8f8f8f 8e8f8f8f ................ - 29dd8: 3b91fe3c ff08a2fe c6cf9f96 708fd08f <..;...........p - 29de8: 00c09f00 00f1585f 0100f605 00008ff7 ...._X.......... - 29df8: 0f00404f 0400f088 f80000f4 4f00008f O@.............O - 29e08: 880f0040 f40400f0 8ff80000 404f0000 @.............O@ - 29e18: 8e800f00 08a1fe3b d08fa6ff 6f00808f ....;..........o - 29e28: 0100f148 00008ff7 00f0880f 008ff800 H............... - 29e38: f0880f00 8ff80000 800f0000 c4ef3b00 .............;.. - 29e48: 87fd0400 d00e60cf 3ff10b00 f5030060 .....`.....?`... - 29e58: 0100304f 00603ff7 d00ef503 04f10b00 O0...?`......... - 29e68: 60cf77fd c4ef3b00 fe3b8e00 fb8f00b3 .w.`.;....;..... - 29e78: 8f30df57 c00d0090 0700108f 00008ff1 W.0............. - 29e88: 208ff305 8ff10700 d01e00a0 ef78ec8f ... ..........x. - 29e98: fe2b8f30 008f00b3 8f000000 00000000 0.+............. - 29ea8: 0000008f ff3b0000 fd04f7a2 0ef7de87 ......;......... - 29eb8: f70b00d0 0300603f 00304ff7 603ff701 ....?`...O0...?` - 29ec8: 0ef70300 f70b00d0 ce77fd04 ff3b00f7 ..........w...;. - 29ed8: 0000f7a3 00f70100 f7010000 01000000 ................ - 29ee8: f02b8ef7 8f90ed8f 208f00a0 00008f00 ..+........ .... - 29ef8: 8f00008f 008f0000 00008f00 91fdae02 ................ - 29f08: d069d71e 0000304f 0010b42f 60fdef06 ..i.O0../......` - 29f18: f55b0100 f7000001 f36ba75f 40ecdf19 ..[....._.k....@ - 29f28: 0000f305 cf00305f 8f04faff f3053075 ...._0......u0.. - 29f38: 305f0000 00f30500 00305f00 0000f404 .._0....._0..... - 29f48: 0080c61f ae10fc5d 5a2f0000 f50200e0 ....]...../Z.... - 29f58: 2f0000ae 0200e05a 0000aef5 00f0592f .../Z......./Y.. - 29f68: 306ff504 ee51af00 02f5bf76 503ffbbe ..o0..Q.v.....?P - 29f78: 0000c00d 00f206cb f900f502 00e00900 ................ - 29f88: 800f009e 6f602f00 c00c0010 050000cb ...../`o........ - 29f98: 0000f4f6 00d0ef00 708f0000 0000bb00 ...........p.... - 29fa8: 4f00109f 0e00f116 c00900f6 fc05600f ...O.........`.. - 29fb8: 00f600b0 5fab00ac 05105f10 f7500ff1 ......._._....P. - 29fc8: 0f00b00a c009f076 ac0000f5 8f4f00ba ....v.........O. - 29fd8: ff040000 a0ef0040 e00e0000 00f40800 ....@........... - 29fe8: 00704f00 308f209f cd00505f 0200902e .Op.. .0_P...... - 29ff8: 0000d0ff 0000f60a 00e1fd04 c00deb01 ................ - 2a008: 3f10be00 00406f80 c00d407f 06cb0000 ...?.o@..@...... - 2a018: f40200f3 0900ea00 108f00d0 1f00701f .............p.. - 2a028: 00107f70 00d9e00a f2f90300 cf000000 p............... - 2a038: 000000b0 0000406f 0000ad00 00f5791c ....o@.......y.. - 2a048: 70ee1a00 ff4f0000 5515f9ff 0000f45b ...p..O....U[... - 2a058: 0100804f 0b0000ec 8f0000e1 f7040040 O...........@... - 2a068: e51e0000 ff5f5355 2c00fcff 61af00f5 ....US_....,...a - 2a078: 0000cc00 db0000db 00db0000 1f00ea02 ................ - 2a088: fa0500f4 00db0000 0000db00 cc0000db ................ - 2a098: 61af0000 5ff52c00 155ff115 f1155ff1 ...a.,._.._.._.. - 2a0a8: 5ff1155f 155ff115 f1155ff1 80be105f _.._.._.._.._... - 2a0b8: 0140af03 701f00f6 1f00f701 00f90070 ..@....p....p... - 2a0c8: fb00fb0a 01701f20 701f00f7 af03f601 .... .p....p.... - 2a0d8: 0090be40 00000000 00e43d00 f5860cb5 @........=...... - 2a0e8: 03f0201e 000290ef 02001000 400d90ce . .............@ - 2a0f8: 0e003b89 0d0e003b ce028940 f8080090 .;..;...@....... - 2a108: 00f7e7ef 00000000 00000000 00000000 ................ - 2a118: 00dc4900 16000000 00ffffbf ff8d0300 .I.............. - 2a128: 00ffffff ffffcf00 00ffffff ffffff00 ................ - 2a138: 00ffc7ff eaffff00 00ff0051 0083ff00 ........Q....... - 2a148: 00ff0000 0000ff00 00ff0000 0000ff00 ................ - 2a158: 00ff0000 0000ff00 00ff0000 0000ff00 ................ - 2a168: 00ffff2b 0000ff00 2bffffdf 0000ffff +..........+.... - 2a178: dffdffdf 0000ffff dfb2ff2b 0000fdff ........+....... - 2a188: 2b000000 0000b2ff d0000000 ffffff0f ...+............ - 2a198: ff0df0ff 8888c8ff f0ffff8c 0000800f ................ - 2a1a8: f00ff008 0000800f ff0ff008 000080ff ................ - 2a1b8: f0ffff08 ccccec0f f00ff0ce ccccec0f ................ - 2a1c8: ff0ff0ce 000080ff f0ffff08 0000800f ................ - 2a1d8: f00ff008 0000800f ff0ff008 8888c8ff ................ - 2a1e8: d0ffff8c ffffff0f df0df0ff ffff73ff .............s.. - 2a1f8: fffdffff ffffa5ff ffffffff ffffa5ff ................ - 2a208: dfffffff ffff73ff 00fdffff 00000000 .....s.......... - 2a218: df000000 ffff73ff fffdffff ffffa5ff .....s.......... - 2a228: ffffffff ffffa5ff dfffffff ffff73ff .............s.. - 2a238: 00fdffff 00000000 df000000 ffff73ff .............s.. - 2a248: fffdffff ffffa5ff ffffffff ffffa5ff ................ - 2a258: dfffffff ffff73ff 00fdffff 00000000 .....s.......... - 2a268: 00b10a00 00000000 00fcbf00 00000000 ................ - 2a278: 00fbff0b 00000000 1bc0ffbf 0b0000a0 ................ - 2a288: cf00fcff bf0000fb bf00c0ff ff0bb0ff ................ - 2a298: 0c0000fc ffbffbff 000000c0 fbffffcf ................ - 2a2a8: 00000000 b0ffff0c 00000000 00fbbf00 ................ - 2a2b8: 00000000 00b00b00 03000000 03000000 ................ - 2a2c8: 0010fc08 fcfff81c f5ff1c10 ff2cfcff ..............,. - 2a2d8: ffff05f5 0500f5ff 00f5ffff fdff1d00 ................ - 2a2e8: ff1c0010 1c10fcff fcfff9ff 05f5ff1c ................ - 2a2f8: f5dffcff d1ff0500 040000a4 000000a1 ................ - 2a308: 0000e04f 10020000 1003f16f d05f0000 O.......o....._. - 2a318: d13ff16f f1ff0300 fd5ff16f 40ff0d00 o.?.....o._....@ - 2a328: ff09f16f 00f74f70 cf00f16f 00f09fe0 o...pO..o....... - 2a338: 5f00f16f 00c0bff3 2f00f16f 00c0bff5 o.._....o../.... - 2a348: 1f00e04f 00e0aff6 4f000000 00f46ff4 O..........O.o.. - 2a358: af000000 10fe0ff0 ff050000 d3ff06a0 ................ - 2a368: ff7f0000 ff9f0020 f4ffbeda ff060000 .... ........... - 2a378: 30fdffff 17000000 0050cabd 00000000 ...0......P..... - 2a388: 0000b88b 00000000 0000ffff 06300000 ..............0. - 2a398: 0360ffff dffd0400 effdffff ffff0d40 ..`.........@... - 2a3a8: ffffffff ffff4fd0 ffff9ff9 ffff08f4 .....O.......... - 2a3b8: ffff0220 f9ff0080 ff9f0000 f9ff0000 ............... - 2a3c8: ff9f0000 ffff0800 ffff0220 ffff4f80 ........ ....O.. - 2a3d8: ffff9ff9 ffff0df4 ffffffff dffe04d0 ................ - 2a3e8: dffdffff 06300040 0360ffff 00000000 ....@.0...`..... - 2a3f8: 0000ffff 00000000 0000b88b 00000000 ................ - 2a408: 3f30dd03 000000f3 f5ff6f00 0000f44f ..0?.....o..O... - 2a418: 99ff0900 00f4bfff f6bf0100 f4ff6f22 ............"o.. - 2a428: fe2d0000 ef53ff35 ff0400f4 f8ff8fc1 ..-.5.S......... - 2a438: 7f40fe2d ffff1afa f7afa1ff ffdf82cf -.@............. - 2a448: 28fdffff ff0e14fc ffffffff 0f0041e0 ...(.........A.. - 2a458: ffffffff 0000f0ff 00f9ff0f 00f0ff8f ................ - 2a468: f8ff0f00 f0ff8f00 ff0f0000 ff8f00f8 ................ - 2a478: 0e0000f0 6f00f6ff 0000e0ff fddf0000 .......o........ - 2a488: 00000000 ffff0000 00000000 ffff0000 ................ - 2a498: 00000000 ffff0000 00000000 ffff0000 ................ - 2a4a8: 00000000 ffff0000 00000000 ffffff4f ............O... - 2a4b8: 0000f4ff ffffff0b 0000b0ff ffffbf00 ................ - 2a4c8: 000000fb ffff0b00 000000b0 fbbf0000 ................ - 2a4d8: df000000 b11bfcff fffdffcf 2cc2ffff ..............., - 2a4e8: ffffffff ffffffff ffffffff ffffffff ................ - 2a4f8: dfffe0f0 ffffffff 00fdffff ffffef04 ................ - 2a508: 0040feff ffff1e00 e1ffffff b0af0000 ..@............. - 2a518: 0b000000 ff0500fa 00000010 1e50ff01 ..............P. - 2a528: 000000f6 e16f0000 0000b0af 0b000000 ......o......... - 2a538: fffffffa ff080080 ffffffff 1f00f1ff ................ - 2a548: ffffffff ffffffff ffffffff ffffffff ................ - 2a558: ffffffff ffffffff ffffffff ff8fffff ................ - 2a568: ffffffff 00f8ffff dabd0600 00ff0250 ............P... - 2a578: ffffef05 00ff42fe 7ba7ff7f 05fff9ff .....B.....{.... - 2a588: 0000c1ff 0effff2c 020000fc 5fffdf22 ....,.......".._ - 2a598: 0f0000f2 8fffffff 0f0000b0 00ffffff ................ - ... - 2a5b4: ff000000 00f0ffff fff80b00 00f0ffff ................ - 2a5c4: fff42f00 002022fd ffe0cf00 0000c2ff ./..." ......... - 2a5d4: ff40ff2c 6ab7ff9f ff00f7ff ffffdf24 ,.@....j....$... - 2a5e4: ff0050fe dbac0520 00000060 00000000 .P.. ...`....... - 2a5f4: 008d0000 00ff0800 dfff8f00 ffffffff ................ - 2a604: ffffffff ffffffff ffffffff dfffffff ................ - 2a614: 00ffffff 00ff8f00 00ff0800 008d0000 ................ - ... - 2a630: 0000008d 00ff0800 8f000000 cf0000ff ................ - 2a640: 01ffffff ffffff50 fff706ff 00ffffff ....P........... - 2a650: ffffffbe ffae00ff 05ffffff ffffdff8 ................ - 2a660: 006002ff 00ff9f00 09000000 000000ff ..`............. - 2a670: 009e0000 00000000 00000000 00000000 ................ - 2a680: 00100600 00000000 d21f0000 00000000 ................ - 2a690: 0300008d 000010ee 0a00ff08 00b02fb1 ............./.. - 2a6a0: 00ff8f00 f407fc05 ffffffdf 605f5002 .............P_` - 2a6b0: fffffff9 0df706ff ffffbdc0 ae00ffff ................ - 2a6c0: ff9ff009 00ffffff 8ff009ae ffffffff ................ - 2a6d0: c00df706 ffffdfad 5f5002ff 0000e960 ..........P_`... - 2a6e0: 0500ff8f 00f406fc 00ff0800 b02fb10a ............../. - 2a6f0: 8d000000 ee020000 00000010 1f000000 ................ - 2a700: 000000d2 00000000 8f001006 ffffffff ................ - 2a710: fff8ffff fffffffc ffffffff ffff2f20 ............ /.. - 2a720: fcffffff ffff0c00 ffffffee feff2f20 ............ /.. - 2a730: ffffef22 e2fffffc ffff2e00 20fe4efe "............N. - 2a740: ffff0200 00c202e2 ffff0000 00000020 ............ ... - 2a750: ffff0000 00000000 ffff0000 ffffffff ................ - 2a760: 8fffffff ffffffff 00f8ffff 00000000 ................ - 2a770: 010030ff 0040ffcc 40ffff2d ffffef03 .0....@.-..@.... - 2a780: ffff3f40 ffff44ff ff9fffff ffffffff @?...D.......... - 2a790: ffffffff ffffffff ffffafff ff45ffff ..............E. - 2a7a0: 40ffffff ffffff4f ffef0340 2e0040ff ...@O...@....@.. - 2a7b0: 0030ffff 0000cc01 00000000 00000000 ..0............. - 2a7c0: 918f0000 00000000 70ffff00 00000000 ...........p.... - 2a7d0: 40fdffff ff000000 10faffff ffff0000 ...@............ - 2a7e0: 00f7ffff ffffff00 00d5ffff ffffffff ................ - 2a7f0: ffb2ffff ffffffff fffffdff ffffffff ................ - 2a800: fffffffd b2ffffff ffffffff ff00d5ff ................ - 2a810: f7ffffff ffff0000 0010faff fdffff00 ................ - 2a820: 00000040 0070ffff 8e000000 000000a1 @.....p......... - ... - 2a840: 00f8ff8f fff8ff8f ff00ffff ffffffff ................ - 2a850: ffff00ff ffffffff ffffff00 00ffffff ................ - 2a860: ffffffff ff00ffff ffffffff ffff00ff ................ - 2a870: ffffffff ffffff00 00ffffff ffffffff ................ - 2a880: ff00ffff ffffffff ffff00ff ffffffff ................ - 2a890: ffffff00 00ffffff 7fffffff 7f00f7ff ................ - 2a8a0: ff8ff7ff ffffffff fffffff8 ffffffff ................ - 2a8b0: ffffffff ffffffff ffffffff ffffffff ................ - 2a8c0: ffffffff ffffffff ffffffff ffffffff ................ - 2a8d0: ffffffff ffffffff ffffffff ffffffff ................ - 2a8e0: ffffffff ffffffff ffffffff ffffffff ................ - 2a8f0: ffffffff ffffffff ffffffff ffff8fff ................ - 2a900: f8ffffff 00000000 0010cc00 d2ffff03 ................ - 2a910: ffff0400 ff0430fe 04f4ffff ffffffff .....0.......... - 2a920: ffffff54 fffff9ff ffffffff ffffffff T............... - 2a930: ffffffff fffffff9 ffff44ff ff04f3ff .........D...... - 2a940: 0430feff 00d2ffff 10ccff04 00ff0300 ..0............. - 2a950: 00000000 2d000000 000000d2 ef010000 .......-........ - 2a960: 000010fe ff1d0000 0000d1ff ffcf0000 ................ - 2a970: 0000fcff ffff0b00 00b0ffff ffffaf00 ................ - 2a980: 00faffff ffffff09 90ffffff ffffff0f ................ - 2a990: f0ffffff ffffff08 80ffffff 00000000 ................ - 2a9a0: 00000000 ffffff0c c0ffffff ffffff0f ................ - 2a9b0: f0ffffff ffffff0f f0ffffff ffffff0c ................ - 2a9c0: c0ffffff 1a000000 01000040 0000f0df ........@....... - 2a9d0: 00a0ff1d 00fadf01 a0ff1d00 fadf0100 ................ - 2a9e0: ff0c0000 0d0000a0 000080ff 00f8df01 ................ - 2a9f0: ff1d0000 01000080 0000f8df 80ff1d00 ................ - 2aa00: df010000 000000f0 a104501b 0f000000 .........P...... - 2aa10: 000010fd 00d1ff0a fdaf0000 0a000010 ................ - 2aa20: 0000d1ff 10fdaf00 ff0a0000 080000c0 ................ - 2aa30: 0000d0ff 0010fd8f 00d1ff08 10fd8f00 ................ - 2aa40: d1ff0800 fd0f0000 05000010 000000b1 ................ - 2aa50: ff040000 00000040 80ff0800 00000000 ....@........... - 2aa60: 0080ff08 08000000 000080ff ff080000 ................ - 2aa70: 48000080 c8ff8c88 ffff8488 ffffffff ...H............ - 2aa80: ffffffff ffffffff ff8c8848 008488c8 ........H....... - 2aa90: 80ff0800 00000000 0080ff08 08000000 ................ - 2aaa0: 000080ff ff080000 00000080 40ff0400 ...............@ - 2aab0: 44140000 44444444 ffffef41 feffffff ...DDDDDA....... - 2aac0: ffffffff 7bffffff bbbbbbbb 0000b7bb .......{........ - 2aad0: daffad05 00000050 88fcdf04 0040fdcf ....P.........@. - 2aae0: 40fe7f00 f7ef0400 f4ff0700 4f809e00 ...@...........O - 2aaf0: ff4f70ff f8af00c0 dff4ff0c ff9a80ff .pO............. - 2ab00: fdff08fe ef80ffdf ff08feff c0ff4ffd .............O.. - 2ab10: 0cf8ff8f ff07f4ff 80ee08f4 0070ff4f ............O.p. - 2ab20: 0040fe7f 00f8ef04 fcdf0400 40fdcf88 ..@............@ - 2ab30: 05000000 50daffad 208c0000 00000000 .......P... .... - 2ab40: 00000000 0000e4df 00000000 ff1b0000 ................ - 2ab50: fddf4980 000000a5 ffff7f00 d4ff8cd8 .I.............. - 2ab60: 04000000 0000f8ef 0070ff4e ff1c0000 ........N.p..... - 2ab70: ff04e869 e30400f7 fffe9f00 40ffcf80 i..............@ - 2ab80: 0570ff0d 8fe0ffff ff0dd0ff ff2d00f7 ..p...........-. - 2ab90: d0ff8fe0 00fcff04 cff8af00 7f0030ff .............0.. - 2aba0: 060040ff 00f7ffff f4ff0800 ff3e0000 .@............>. - 2abb0: 000000a0 82c8ff4d 00f7bf01 5a000000 ....M..........Z - 2abc0: 0810fcdf 0000a0ff 00000000 fd4e0000 ..............N. - ... - 2abd8: 0000c802 d22d0000 00000000 00000000 ......-......... - 2abe8: 0000fbbf 00000000 ffff0500 00000050 ............P... - 2abf8: 0d000000 00d0ffff 00000000 ffff7f00 ................ - 2ac08: 000000f7 ff010000 10ff8dd8 00000000 ................ - 2ac18: 0aa0ff0a 0000a0ff ff3f0000 f3ff0bb0 ..........?..... - 2ac28: 00000000 0cc0ffcf 0000fcff ffff0500 ................ - 2ac38: ffff0dd0 0e000050 9ff9ffff 00e0ffff ....P........... - 2ac48: ffff8f00 ffff2ee2 ff0200f8 0990ffff ................ - 2ac58: 10ffffff ffffff0a ffff3ee3 ff0fa0ff .........>...... - 2ac68: ffffffff f0ffffff ffffff08 ffffffff ................ - 2ac78: 000080ff 00000000 00000000 00000000 ................ - 2ac88: 000000d8 00000000 ffff80ff ff070070 ............p... - 2ac98: fffff8ff ff6f00f6 8e78fdff e8ff15ff ......o...x..... - 2aca8: 0200e2ff 20fe4fe5 000020fe 00f3ff13 .....O. . ...... - 2acb8: 00000052 0031ff3f 02000052 205ef4ef R...?.1.R.....^ - 2acc8: 8e7820fe e8ff51ff ffffe2ff ff6f00f6 . x..Q........o. - 2acd8: fffffdff ff070070 0000f8ff 00000000 ....p........... - 2ace8: 000080ff 00000000 000000d8 00000000 ................ - ... - 2ad00: 01000000 000010dd ff1d0000 000000d1 ................ - 2ad10: fdffdf01 1d000010 d1ff99ff f9df0100 ................ - 2ad20: 10fd9f00 0090ff1d bfd1ff09 000000f9 ................ - 2ad30: 905ffb9f 09000000 000000f5 00000000 .._............. - 2ad40: 00000000 5f000000 00000090 f9bff509 ......._........ - 2ad50: 9f000000 90ff1dfb d1ff0900 00f9df01 ................ - 2ad60: 0010fd9f ff99ff1d 010000d1 10fdffdf ................ - 2ad70: 1d000000 0000d1ff dd010000 00000010 ................ - ... - 2ad90: 00d11d00 00000000 df010000 ffef10fd ................ - 2ada0: 00d0ffff d1ffff1d ffffffaf cfcf00f0 ................ - 2adb0: 0000fcfc 00f00f00 b6f11f6b 0f000000 ........k....... - 2adc0: 0f0000f0 000000f0 00f00f00 00f00f00 ................ - 2add0: 0f000000 0f0000f0 000000f0 b6f11f6b ............k... - 2ade0: 00f00f00 cfcf0000 0f00fcfc faffffff ................ - 2adf0: d1ffff1d ffff0d00 df01feff 000010fd ................ - 2ae00: 00000000 00d11d00 00000000 00000000 ................ - 2ae10: ff8f0000 0000e2ff ffff0000 0020feff .............. . - 2ae20: ffff0000 ffffffff fffff8ff ffffffff ................ - 2ae30: ffffffff ffffffff ffffffff ffffffff ................ - 2ae40: ffffffff ffffffff ffffffff ffffffff ................ - 2ae50: ffffffff ffffffff ffffffff ffffffff ................ - 2ae60: ffffffff ffffffff ff8fffff ffffffff ................ - 2ae70: 0000f8ff 00b00b00 00000000 00fbbf00 ................ - 2ae80: 00000000 b0ffff0b 00000000 fbffffbf ................ - 2ae90: 0b000000 ffffffff 4f0000b0 ffffffff ...........O.... - 2aea0: 000000f4 00ffff00 00000000 00ffff00 ................ - 2aeb0: 00000000 00ffff00 00000000 00ffff00 ................ - 2aec0: 00000000 00ffff00 ffdf0000 0ffddff0 ................ - 2aed0: fffffdff 9f0000f9 ffffffff ffffffff ................ - 2aee0: ffffffff f0ffffff ffdfffe0 ffffffff ................ - 2aef0: 0000fdff 00000000 00000000 00000000 ................ - 2af00: 0062ea0a 00000000 f0ffff02 00000000 ..b............. - 2af10: ffff9f00 00000000 ffff0f00 000000d0 ................ - 2af20: ffff0200 000000fb ef030000 000070ff .............p.. - 2af30: 04000000 0000f2ff 00000000 0000fbbf ................ - 2af40: 00000000 0030ff6f 00000200 0090ff4f ....o.0.....O... - 2af50: 00f38f02 00d0ff6f e4ffff0a 00d1ffbf ....o........... - 2af60: ffffef00 00d1ffff ffff0a00 0090ffff ................ - 2af70: ff6f0000 0030fbff ff020000 000072db ..o...0......r.. - 2af80: 08000000 000080ee ff086106 2d0080ff .........a.....- - 2af90: 33efd0ff ff2e00fe 3ff30ef3 f3ff2ee0 ...3.......?.... - 2afa0: ffff8f00 00f3ff6e ffff8e00 0000f3ff ....n........... - 2afb0: ffef0200 000000f3 ffff2e00 08000030 ............0... - 2afc0: ffffffef ff080030 ffeff6ff 33ef0030 ....0.......0..3 - 2afd0: ffef02fe 3ff30e30 ffef02e0 f8ff8f30 ....0..?....0... - 2afe0: fddf0200 00e88e00 10660000 ffdf0000 ..........f..... - 2aff0: 00200dff ffffff00 0000e20f 0fffffff .. ............. - 2b000: fff0dffd 0020ffff fffff0ff ffffffff ...... ......... - 2b010: fffffff0 f0ffffff ffffffff fff0ffff ................ - 2b020: ffffffff fffff0ff ffffffff fffffff0 ................ - 2b030: f0ffffff ffffffff fff0ffff ffffffff ................ - 2b040: ffdff0ff fffdffff 000000f9 ffff0000 ................ - 2b050: 00ffffff ffffdf00 0000fdff ffffff8f ................ - 2b060: ff00c2ff ffffffff 00ff20fe ff010000 ......... ...... - 2b070: 0000ffe2 fcff0000 000000ff ffffff00 ................ - 2b080: 00000000 ffffffff ffffffff ffffffff ................ - 2b090: ffffffff 11fbffff ffffffbf 1f00f1ff ................ - 2b0a0: ffffffff ff1f00f1 fbffffff ffffbf11 ................ - 2b0b0: ffffffff 8fffffff ffffffff df00f8ff ................ - 2b0c0: 0000fdff fcffff01 ff030000 0000f7ff ................ - 2b0d0: f2ffff06 ff080000 0000d0ff ffffff0a ................ - 2b0e0: ff0cd0ff a0ffffff ffffff0e ff0d20ff ............. .. - 2b0f0: 00f8ffff ff0a0000 000000e0 0050ff0e ..............P. - 2b100: fc2f0000 00000000 0000f35f a09f0000 ../....._....... - 2b110: 00000000 000010df 00d70000 04000000 ................ - 2b120: 000040ee 99ffdf00 0000fdff ff99ffff .@.............. - 2b130: ff0000ff ffffffff ffff0000 00000090 ................ - 2b140: 0dffff00 200dffff ff0fffff ffe20fff ....... ........ - 2b150: ffff0fff fffffd0f 20ffff0f 0fffff00 ........... .... - 2b160: ffffffff ff0fffff ffffffff ffff0fff ................ - 2b170: ffdfffff ffffff0f 0f0000ff ffffffff ................ - 2b180: ff0f0000 00ffffff ffff0d00 0000fdff ................ - 2b190: 0000cc00 02000000 000030ff ffbf0100 .........0...... - 2b1a0: 000020fc ffffff1e 9f0000e1 f8ffffff . .............. - 2b1b0: ffef0000 00fdffff ffffff00 0100ffff ................ - 2b1c0: ffffffff ff0300ff ffffffff ffff0830 ............0... - 2b1d0: 80ffffff ffffff1e cfe1ffff ffffffff ................ - 2b1e0: ffcffcff ffffffff 000000fc 00000000 ................ - 2b1f0: ff0e0000 000000e0 40ee0400 ff8f0000 ...........@.... - 2b200: ffffffff fff8ffff ffffffff ffffffff ................ - 2b210: 0ff000ff 000ff000 f000ffff 0ff0000f ................ - 2b220: ffffff00 ffffffff ffffffff 888008f8 ................ - 2b230: ff8f8008 8008f8ff 8f800888 ffffffff ................ - 2b240: ffffffff 00ffffff 000000f0 ffff000f ................ - 2b250: 0000f000 ff000f00 ffffffff ffffffff ................ - 2b260: ffff8fff ffffffff 0000f8ff 00000000 ................ - ... - 2b278: 70af0300 00000000 ffcf0400 000000f0 ...p............ - 2b288: ffdf0600 0000a0ff ffef1700 0030ffff ..............0. - 2b298: ffff1800 00fcffff ffff2a00 f4ffffff .........*...... - 2b2a8: ffff0800 ffffffff ff0f00d0 ffffffff ................ - 2b2b8: 080060ff ffffffff 0000feff 00000000 .`.............. - 2b2c8: 00f7ffff 00000000 f1ffff00 00000000 ................ - 2b2d8: ffff0000 00000080 ff000000 000010ff ................ - 2b2e8: 00000000 0000faff 00000000 00f2ff00 ................ - 2b2f8: 00000000 808f0000 00000000 00000000 ................ - 2b308: 00000000 f0ffffdf ffff00d2 20fef0ff ............... - 2b318: f0ffffff ffffe2ff fdfff0ff f2ffffff ................ - 2b328: ffff0000 ffffffff ffffffff ffffffff ................ - 2b338: ffffffff ffffffff ffffffff ffffffff ................ - 2b348: ffffffff ffffffff ffffffff ffffffff ................ - 2b358: ffffffff ffffffff ffffffff ffdfffff ................ - 2b368: fdffffff 00000000 00000000 00000000 ................ - 2b378: feef9c04 000040c9 ffef0700 feffffff .....@.......... - 2b388: df040070 8aa8fcff 40fdffcf 00d5ff6f p..........@o... - 2b398: 5d000000 f6cff6ff 00000000 fc6f0000 ...]..........o. - 2b3a8: 5a00301a 00a5fddf 0000a103 ffffff4d .0.Z........M... - 2b3b8: 0000d4ff feff0500 ffef8aa8 01000050 ............P... - 2b3c8: 000070df 0010fd07 00120000 21000000 .p.............! - 2b3d8: 00000000 e44e0000 00000000 00000000 ......N......... - 2b3e8: 0000feef 00000000 feef0000 00000000 ................ - 2b3f8: 00000000 0000e44e ff8f0000 ffffffff ....N........... - 2b408: 80ffffff ffffffff ffffffff 00fff0ff ................ - 2b418: 00000000 fd0f0000 ffff0fff ffffffff ................ - 2b428: 0fffff0f ffffffff ff00ffff ffff0fff ................ - 2b438: ffffffff 0fffff00 ffffffff ff0fffff ................ - 2b448: 000000ff 00000000 fffffd0f ffffffff ................ - 2b458: f0ffffff ffffff8f ffffffff ff8f80ff ................ - 2b468: ffffffff 80ffffff ffffffff ffffffff ................ - 2b478: 00fff0ff 00000000 fd0f0000 ffff0fff ................ - 2b488: 00f0ffff 0fffff0f ffffffff ff0000f0 ................ - 2b498: ffff0fff 00f0ffff 0fffff00 ffffffff ................ - 2b4a8: ff0f00f0 000000ff 00000000 fffffd0f ................ - 2b4b8: ffffffff f0ffffff ffffff8f ffffffff ................ - 2b4c8: ff8f80ff ffffffff 80ffffff ffffffff ................ - 2b4d8: ffffffff 00fff0ff 00000000 fd0f0000 ................ - 2b4e8: ffff0fff 000000ff 0fffff0f 00ffffff ................ - 2b4f8: ff000000 ffff0fff 000000ff 0fffff00 ................ - 2b508: 00ffffff ff0f0000 000000ff 00000000 ................ - 2b518: fffffd0f ffffffff f0ffffff ffffff8f ................ - 2b528: ffffffff ff8f80ff ffffffff 80ffffff ................ - 2b538: ffffffff ffffffff 00fff0ff 00000000 ................ - 2b548: fd0f0000 f0ff0fff 00000000 0fffff0f ................ - 2b558: 0000f0ff ff000000 f0ff0fff 00000000 ................ - 2b568: 0fffff00 0000f0ff ff0f0000 000000ff ................ - 2b578: 00000000 fffffd0f ffffffff f0ffffff ................ - 2b588: ffffff8f ffffffff ff8f80ff ffffffff ................ - 2b598: 80ffffff ffffffff ffffffff 00fff0ff ................ - 2b5a8: 00000000 fd0f0000 000000ff 00000000 ................ - 2b5b8: 00ffff0f 00000000 ff000000 000000ff ................ - 2b5c8: 00000000 00ffff00 00000000 ff0f0000 ................ - 2b5d8: 000000ff 00000000 fffffd0f ffffffff ................ - 2b5e8: f0ffffff ffffff8f ffffffff 000080ff ................ - 2b5f8: 01000000 00000000 00000000 10fd0700 ................ - 2b608: 00000000 cf010000 0000f5ff 00000000 ................ - 2b618: fe29b900 00000010 3f000000 00000210 ..)........?.... - 2b628: df030000 00900a80 70030000 77ffdf00 ...........p...w - 2b638: 555555f7 0fd38f55 dfccfdff cdccccdc .UUUU........... - 2b648: fe8fb0ff 00aa0010 404d0000 00104600 ..........M@.F.. - 2b658: 3302f201 00000010 09000000 00f9cfb1 ...3............ - 2b668: 00000000 ff0a0000 000090ff 00000000 ................ - 2b678: f9bf0000 00000000 00000000 00002201 .............".. - 2b688: df180000 020092fd ffeffbef faff0d30 ............0... - 2b698: 4fe0ff2e ff03faff fafa9ff5 cffa4f35 ...O........5O.. - 2b6a8: 0b3d8ac0 03fbeffd fffe8f12 ff06b0ff ..=............. - 2b6b8: d1ffffff efffff08 9f1011fd 59d1dfff ...............Y - 2b6c8: affd0b3b 1d38fad7 faff5ffb 0df7df01 ;.....8.._...... - 2b6d8: ff1dfaff fcef03f1 0050ffdf a3fedf18 ..........P..... - 2b6e8: 7f000000 0000f7ff ffffffef effeffff ................ - 2b6f8: ffffffff 0000feff 00000000 ffff0f00 ................ - 2b708: f0ffffff ffffff0f 0ff0ffff f9999ff9 ................ - 2b718: f80ff09f 8ff8888f 8ff80ff0 f08ff888 ................ - 2b728: 888ff80f 0ff08ff8 f8888ff8 f80ff08f ................ - 2b738: 8ff8888f 8ff80ff0 f08ff888 999ff90f ................ - 2b748: 0ff09ff9 ffffffff ff08f0ff ffffffff ................ - 2b758: 00000080 7f000000 000000a0 8f000000 ................ - 2b768: 0000b0ff 0d000000 00a0ffff 8a000000 ................ - 2b778: 00ffff1d 8f000000 70ff1dfa 8f000000 ...........p.... - 2b788: 801dfaff 8f000000 00faffff 8f000000 ................ - 2b798: 80ffffff 8f000000 80ffffff 8f000000 ................ - 2b7a8: 80ffffff 8f000000 80ffffff 6f000000 ...............o - 2b7b8: 80ffffff 0b000000 80ffffff 00000000 ................ - 2b7c8: 80ffffdf 00000000 80ffff0e 00000000 ................ - 2b7d8: 60dbde00 00000000 00000000 00000000 ...`............ - 2b7e8: 00000000 ffffff1b e4ffffff ffdf0100 ................ - 2b7f8: ffffffff 1d00feff effaffff ffffaffe ................ - 2b808: ffffdf01 0ae22ea0 ff1dffff 02e2ffff ................ - 2b818: ffff2e20 ffffffcf ef0220fe ffcfffff ........ ...... - 2b828: 20feffff ffffef02 ffffff1d 2e2002e2 ... .......... . - 2b838: df01ffff 2ea0ffff ffff0ae2 ffff1d00 ................ - 2b848: affeeffa 0100ffff ffffffdf feffffff ................ - 2b858: ff1b0000 ffffffff 0800e4ff e4ffffff ................ - 2b868: ffff8f00 f808feff ff400b0f 0b0ff88f ..........@..... - 2b878: f8ffff40 ff400b0f ffffffff ffffffff @.....@......... - 2b888: ffffffff ffffffff ffffffff ffffffff ................ - 2b898: ffffffff ffffffff ffffffff ffffffff ................ - 2b8a8: ffffffff ffffffff ffffffff ffefffff ................ - 2b8b8: feffffff ffffff4e 0000e4ff 00000000 ....N........... - 2b8c8: 00000100 00000000 00e00300 00001000 ................ - 2b8d8: 10ef0200 0000bf00 f17f0000 00f1cf00 ................ - 2b8e8: ff070000 77ffcf11 bf777777 ffffcff1 .......wwww..... - 2b8f8: ffffffff ffff17ff ffffffff ff07e0ff ................ - 2b908: 000000f1 06000000 000010ff 00000000 ................ - 2b918: 0000a005 00000000 732f2e2e 65726168 ........../share - 2b928: 68742f64 70647269 79747261 67766c2f d/thirdparty/lvg - 2b938: 72732f6c 766c2f63 6c61685f 5f766c2f l/src/lv_hal/lv_ - 2b948: 5f6c6168 70736964 hal_disp.c. - -0002b953 <__func__.0>: - 2b953: 645f766c 5f707369 5f767264 69676572 lv_disp_drv_regi - 2b963: 72657473 2f2e2e00 72616873 742f6465 ster.../shared/t - 2b973: 64726968 74726170 766c2f79 732f6c67 hirdparty/lvgl/s - 2b983: 6c2f6372 696d5f76 6c2f6373 6e615f76 rc/lv_misc/lv_an - 2b993: 632e6d69 im.c. - -0002b998 <__func__.0>: - 2b998: 615f766c 5f6d696e 72617473 00000074 lv_anim_start... - -0002b9a8 : - 2b9a8: 0000dcf1 00000000 732f2e2e 65726168 ........../share - 2b9b8: 68742f64 70647269 79747261 67766c2f d/thirdparty/lvg - 2b9c8: 72732f6c 766c2f63 73696d5f 766c2f63 l/src/lv_misc/lv - 2b9d8: 2e73665f _fs.c. - -0002b9de <__func__.0>: - 2b9de: 665f766c 72645f73 65725f76 74736967 lv_fs_drv_regist - 2b9ee: er. - -0002b9f1 <__func__.2>: - 2b9f1: 665f766c 706f5f73 lv_fs_open. - -0002b9fc <__func__.1>: - 2b9fc: 665f766c 69645f73 706f5f72 00006e65 lv_fs_dir_open.. - -0002ba0c : - 2ba0c: 023c0000 06b30478 0b2808ee 0f990d61 ..<.x.....(.a... - 2ba1c: 140611d0 186c163a 1ccb1a9d 21211ef7 ....:.l.......!! - 2ba2c: 256c2348 29ac278e 2ddf2bc7 32032ff3 H#l%.'.).+.-./.2 - 2ba3c: 36183410 3a1c381c 3e0e3c17 41ec3fff .4.6.8.:.<.>.?.A - 2ba4c: 45b643d4 496a4793 4d084b3c 508d4ecd .C.E.GjI: - 2bbd6: 6d5f766c 615f6d65 636f6c6c lv_mem_alloc. - -0002bbe3 <__func__.0>: - 2bbe3: 5f766c5f 5f6d656d 5f667562 656c6572 _lv_mem_buf_rele - 2bbf3: 00657361 ase. - -0002bbf7 <__func__.2>: - 2bbf7: 6d5f766c 725f6d65 6c6c6165 lv_mem_realloc. - -0002bc06 <__func__.1>: - 2bc06: 5f766c5f 5f6d656d 5f667562 00746567 _lv_mem_buf_get. - 2bc16: 732f2e2e 65726168 68742f64 70647269 ../shared/thirdp - 2bc26: 79747261 67766c2f 72732f6c 766c2f63 arty/lvgl/src/lv - 2bc36: 73696d5f 766c2f63 7361745f 00632e6b _misc/lv_task.c. - -0002bc46 <__func__.1>: - 2bc46: 745f766c 5f6b7361 61657263 625f6574 lv_task_create_b - 2bc56: 63697361 asic. - -0002bc5b <__func__.0>: - 2bc5b: 745f766c 5f6b7361 61657263 20006574 lv_task_create. - 2bc6b: 3a3b2e2c 2e005f2d 68732f2e 64657261 ,.;:-_.../shared - 2bc7b: 6968742f 61706472 2f797472 6c67766c /thirdparty/lvgl - 2bc8b: 6372732f 5f766c2f 6373696d 5f766c2f /src/lv_misc/lv_ - 2bc9b: 2e747874 766c0063 7478745f 7465675f txt.c.lv_txt_get - 2bcab: 7a69735f 69203a65 6765746e 6f207265 _size: integer o - 2bcbb: 66726576 20776f6c 6c696877 61632065 verflow while ca - 2bccb: 6c75636c 6e697461 65742067 68207478 lculating text h - 2bcdb: 68676965 eight. - -0002bce1 <__func__.0>: - 2bce1: 5f766c5f 5f747874 5f746567 657a6973 _lv_txt_get_size - 2bcf1: 8c80ef00 10ffff00 2ec61884 68732f2e ............./sh - 2bd01: 64657261 6968742f 61706472 2f797472 ared/thirdparty/ - 2bd11: 6c67766c 6372732f 5f766c2f 67646977 lvgl/src/lv_widg - 2bd21: 2f737465 695f766c 632e676d 5f766c00 ets/lv_img.c.lv_ - 2bd31: 5f676d69 5f746573 3a637273 6b6e7520 img_set_src: unk - 2bd41: 6e776f6e 70797420 766c0065 676d695f nown type.lv_img - 2bd51: 7465735f 6372735f 6e75203a 776f6e6b _set_src: unknow - 2bd61: 6d69206e 20656761 65707974 5f766c00 n image type.lv_ - 2bd71: 5f676d69 5f746573 3a637273 4c602020 img_set_src: `L - 2bd81: 4d495f56 52535f47 41565f43 42414952 V_IMG_SRC_VARIAB - 2bd91: 2060454c 65707974 756f6620 6900646e LE` type found.i - 2bda1: 6567616d 65726320 64657461 5f766c00 mage created.lv_ - 2bdb1: 00676d69 img. - -0002bdb5 <__func__.13>: - 2bdb5: 695f766c 645f676d 67697365 lv_img_design. - -0002bdc3 <__func__.11>: - 2bdc3: 695f766c 735f676d 615f7465 5f6f7475 lv_img_set_auto_ - 2bdd3: 657a6973 size. - -0002bdd8 <__func__.10>: - 2bdd8: 695f766c 735f676d 6f5f7465 65736666 lv_img_set_offse - 2bde8: 00785f74 t_x. - -0002bdec <__func__.9>: - 2bdec: 695f766c 735f676d 6f5f7465 65736666 lv_img_set_offse - 2bdfc: 00795f74 t_y. - -0002be00 <__func__.8>: - 2be00: 695f766c 675f676d 735f7465 lv_img_get_src. - -0002be0f <__func__.7>: - 2be0f: 695f766c 675f676d 665f7465 5f656c69 lv_img_get_file_ - 2be1f: 656d616e name. - -0002be24 <__func__.6>: - 2be24: 695f766c 675f676d 615f7465 5f6f7475 lv_img_get_auto_ - 2be34: 657a6973 size. - -0002be39 <__func__.12>: - 2be39: 695f766c 735f676d 735f7465 lv_img_set_src. - -0002be48 <__func__.14>: - 2be48: 695f766c 635f676d 74616572 lv_img_create. - -0002be56 <__func__.5>: - 2be56: 695f766c 675f676d 6f5f7465 65736666 lv_img_get_offse - 2be66: 00785f74 t_x. - -0002be6a <__func__.4>: - 2be6a: 695f766c 675f676d 6f5f7465 65736666 lv_img_get_offse - 2be7a: 00795f74 t_y. - -0002be7e <__func__.3>: - 2be7e: 695f766c 675f676d 705f7465 746f7669 lv_img_get_pivot - ... - -0002be8f <__func__.2>: - 2be8f: 695f766c 675f676d 615f7465 656c676e lv_img_get_angle - ... - -0002bea0 <__func__.1>: - 2bea0: 695f766c 675f676d 7a5f7465 006d6f6f lv_img_get_zoom. - -0002beb0 <__func__.0>: - 2beb0: 695f766c 675f676d 615f7465 6169746e lv_img_get_antia - 2bec0: 7361696c 2f2e2e00 72616873 742f6465 lias.../shared/t - 2bed0: 64726968 74726170 766c2f79 732f6c67 hirdparty/lvgl/s - 2bee0: 6c2f6372 69775f76 74656764 766c2f73 rc/lv_widgets/lv - 2bef0: 62616c5f 632e6c65 69614600 2064656c _label.c.Failed - 2bf00: 61206f74 636f6c6c 20657461 6f6d656d to allocate memo - 2bf10: 66207972 6420726f 745f746f 705f706d ry for dot_tmp_p - 2bf20: 54007274 00747865 6562616c 7263206c tr.Text.label cr - 2bf30: 65746165 766c0064 62616c5f eated.lv_label. - -0002bf3f <__func__.21>: - 2bf3f: 6c5f766c 6c656261 7465735f 746f645f lv_label_set_dot - 2bf4f: 706d745f _tmp. - -0002bf54 <__func__.16>: - 2bf54: 6c5f766c 6c656261 7465735f 696c615f lv_label_set_ali - 2bf64: gn. - -0002bf67 <__func__.13>: - 2bf67: 6c5f766c 6c656261 7465735f 7865745f lv_label_set_tex - 2bf77: 65735f74 74735f6c 00747261 t_sel_start. - -0002bf83 <__func__.12>: - 2bf83: 6c5f766c 6c656261 7465735f 7865745f lv_label_set_tex - 2bf93: 65735f74 6e655f6c t_sel_end. - -0002bf9d <__func__.11>: - 2bf9d: 6c5f766c 6c656261 7465675f 7865745f lv_label_get_tex - 2bfad: t. - -0002bfaf <__func__.10>: - 2bfaf: 6c5f766c 6c656261 7465675f 6e6f6c5f lv_label_get_lon - 2bfbf: 6f6d5f67 g_mode. - -0002bfc6 <__func__.9>: - 2bfc6: 6c5f766c 6c656261 7465675f 696c615f lv_label_get_ali - 2bfd6: gn. - -0002bfd9 <__func__.8>: - 2bfd9: 6c5f766c 6c656261 7465675f 6365725f lv_label_get_rec - 2bfe9: 726f6c6f olor. - -0002bfee <__func__.7>: - 2bfee: 6c5f766c 6c656261 7465675f 696e615f lv_label_get_ani - 2bffe: 70735f6d 00646565 m_speed. - -0002c006 <__func__.6>: - 2c006: 6c5f766c 6c656261 7465675f 74656c5f lv_label_get_let - 2c016: 5f726574 00736f70 ter_pos. - -0002c01e <__func__.5>: - 2c01e: 6c5f766c 6c656261 7465675f 74656c5f lv_label_get_let - 2c02e: 5f726574 ter_on. - -0002c035 <__func__.20>: - 2c035: 6c5f766c 6c656261 7465735f 7865745f lv_label_set_tex - 2c045: t. - -0002c047 <__func__.19>: - 2c047: 6c5f766c 6c656261 7465735f 7865745f lv_label_set_tex - 2c057: 6d665f74 t_fmt. - -0002c05d <__func__.18>: - 2c05d: 6c5f766c 6c656261 7465735f 7865745f lv_label_set_tex - 2c06d: 74735f74 63697461 t_static. - -0002c076 <__func__.17>: - 2c076: 6c5f766c 6c656261 7465735f 6e6f6c5f lv_label_set_lon - 2c086: 6f6d5f67 g_mode. - -0002c08d <__func__.15>: - 2c08d: 6c5f766c 6c656261 7465735f 6365725f lv_label_set_rec - 2c09d: 726f6c6f olor. - -0002c0a2 <__func__.22>: - 2c0a2: 6c5f766c 6c656261 6572635f 00657461 lv_label_create. - -0002c0b2 <__func__.14>: - 2c0b2: 6c5f766c 6c656261 7465735f 696e615f lv_label_set_ani - 2c0c2: 70735f6d 00646565 m_speed. - -0002c0ca <__func__.4>: - 2c0ca: 6c5f766c 6c656261 7465675f 7865745f lv_label_get_tex - 2c0da: 65735f74 74735f6c 00747261 t_sel_start. - -0002c0e6 <__func__.3>: - 2c0e6: 6c5f766c 6c656261 7465675f 7865745f lv_label_get_tex - 2c0f6: 65735f74 6e655f6c t_sel_end. - -0002c100 <__func__.2>: - 2c100: 6c5f766c 6c656261 5f73695f 72616863 lv_label_is_char - 2c110: 646e755f 705f7265 _under_pos. - -0002c11b <__func__.1>: - 2c11b: 6c5f766c 6c656261 736e695f 7865745f lv_label_ins_tex - 2c12b: t. - -0002c12d <__func__.0>: - 2c12d: 6c5f766c 6c656261 7475635f 7865745f lv_label_cut_tex - 2c13d: 49000074 6900464e 4e00666e 6e004e41 t..INF.inf.NAN.n - 2c14d: 30006e61 34333231 38373635 43424139 an.0123456789ABC - 2c15d: 00464544 30000000 34333231 38373635 DEF....012345678 - 2c16d: 63626139 00666564 28000000 6c6c756e 9abcdef....(null - 2c17d: 30000029 )..0... - -0002c184 : - 2c184: 20202020 20202020 20202020 20202020 - -0002c194 : - 2c194: 30303030 30303030 30303030 30303030 0000000000000000 - -0002c1a4 : - 2c1a4: 20202020 20202020 20202020 20202020 - -0002c1b4 : - 2c1b4: 30303030 30303030 30303030 30303030 0000000000000000 - 2c1c4: 202a2a2a 66667562 6f207265 66726576 *** buffer overf - 2c1d4: 20776f6c 65746564 64657463 2a2a2a20 low detected *** - 2c1e4: 6574203a 6e696d72 64657461 0000000a : terminated.... - 2c1f4: 69666e49 7974696e 00000000 004e614e Infinity....NaN. - 2c204: 6c6c6142 7320636f 65636375 64656465 Balloc succeeded - 2c214: 00000000 7261762f 706d742f 726f702f ..../var/tmp/por - 2c224: 65676174 6f72632f 612d7373 6e2d6d72 tage/cross-arm-n - 2c234: 2d656e6f 69626165 77656e2f 2d62696c one-eabi/newlib- - 2c244: 2e322e34 30322e30 32313132 772f3133 4.2.0.20211231/w - 2c254: 2f6b726f 6c77656e 342d6269 302e322e ork/newlib-4.2.0 - 2c264: 3230322e 33323131 656e2f31 62696c77 .20211231/newlib - 2c274: 62696c2f 74732f63 62696c64 6f74642f /libc/stdlib/dto - 2c284: 00632e61 7261762f 706d742f 726f702f a.c./var/tmp/por - 2c294: 65676174 6f72632f 612d7373 6e2d6d72 tage/cross-arm-n - 2c2a4: 2d656e6f 69626165 77656e2f 2d62696c one-eabi/newlib- - 2c2b4: 2e322e34 30322e30 32313132 772f3133 4.2.0.20211231/w - 2c2c4: 2f6b726f 6c77656e 342d6269 302e322e ork/newlib-4.2.0 - 2c2d4: 3230322e 33323131 656e2f31 62696c77 .20211231/newlib - 2c2e4: 62696c2f 74732f63 62696c64 72706d2f /libc/stdlib/mpr - 2c2f4: 632e6365 00000000 00000000 ec.c........ - -0002c300 <__mprec_bigtens>: - 2c300: 37e08000 4341c379 b5056e17 4693b8b5 ...7y.AC.n.....F - 2c310: e93ff9f5 4d384f03 f9301d32 5a827748 ..?..O8M2.0.Hw.Z - 2c320: 7f73bf3c 75154fdd <.s..O.u - -0002c328 <__mprec_tens>: - 2c328: 00000000 3ff00000 00000000 40240000 .......?......$@ - 2c338: 00000000 40590000 00000000 408f4000 ......Y@.....@.@ - 2c348: 00000000 40c38800 00000000 40f86a00 .......@.....j.@ - 2c358: 00000000 412e8480 00000000 416312d0 .......A......cA - 2c368: 00000000 4197d784 00000000 41cdcd65 .......A....e..A - 2c378: 20000000 4202a05f e8000000 42374876 ... _..B....vH7B - 2c388: a2000000 426d1a94 e5400000 42a2309c ......mB..@..0.B - 2c398: 1e900000 42d6bcc4 26340000 430c6bf5 .......B..4&.k.C - 2c3a8: 37e08000 4341c379 85d8a000 43763457 ...7y.AC....W4vC - 2c3b8: 674ec800 43abc16d 60913d00 43e158e4 ..Ngm..C.=.`.X.C - 2c3c8: 78b58c40 4415af1d d6e2ef50 444b1ae4 @..x...DP.....KD - 2c3d8: 064dd592 4480f0cf c7e14af6 44b52d02 ..M....D.J...-.D - 2c3e8: 79d99db4 44ea7843 ...yCx.D - -0002c3f0 : - 2c3f0: 00000005 00000019 0000007d ........}... - -0002c3fc : - 2c3fc: 20202020 20202020 20202020 20202020 - -0002c40c : - 2c40c: 30303030 30303030 30303030 30303030 0000000000000000 - 2c41c: 7566202c 6974636e 203a6e6f 00000000 , function: .... - 2c42c: 65737361 6f697472 2522206e 66202273 assertion "%s" f - 2c43c: 656c6961 66203a64 20656c69 22732522 ailed: file "%s" - 2c44c: 696c202c 2520656e 25732564 00000a73 , line %d%s%s... - 2c45c: 00000043 49534f50 00000058 0000002e C...POSIX....... - -0002c46c <_ctype_>: - 2c46c: 20202000 20202020 28282020 20282828 . ((((( - 2c47c: 20202020 20202020 20202020 20202020 - 2c48c: 10108820 10101010 10101010 10101010 ............... - 2c49c: 04040410 04040404 10040404 10101010 ................ - 2c4ac: 41411010 41414141 01010101 01010101 ..AAAAAA........ - 2c4bc: 01010101 01010101 01010101 10101010 ................ - 2c4cc: 42421010 42424242 02020202 02020202 ..BBBBBB........ - 2c4dc: 02020202 02020202 02020202 10101010 ................ - 2c4ec: 00000020 00000000 00000000 00000000 ............... - ... - -0002c570 <_init>: - 2c570: b5f8 push {r3, r4, r5, r6, r7, lr} - 2c572: bf00 nop - 2c574: bcf8 pop {r3, r4, r5, r6, r7} - 2c576: bc08 pop {r3} - 2c578: 469e mov lr, r3 - 2c57a: 4770 bx lr - -0002c57c <__frame_dummy_init_array_entry>: - 2c57c: 02cd 0000 .... - -0002c580 <_fini>: - 2c580: b5f8 push {r3, r4, r5, r6, r7, lr} - 2c582: bf00 nop - 2c584: bcf8 pop {r3, r4, r5, r6, r7} - 2c586: bc08 pop {r3} - 2c588: 469e mov lr, r3 - 2c58a: 4770 bx lr - -0002c58c <__do_global_dtors_aux_fini_array_entry>: - 2c58c: 02a5 0000 .... diff --git a/software/firmware/oracle_same54n19a/gcc/AtmelStart.map b/software/firmware/oracle_same54n19a/gcc/AtmelStart.map deleted file mode 100644 index a7c70b98..00000000 --- a/software/firmware/oracle_same54n19a/gcc/AtmelStart.map +++ /dev/null @@ -1,31433 +0,0 @@ -Archive member included to satisfy reference by file (symbol) - -/usr/lib/gcc/arm-none-eabi/11.2.1/thumb/v7e-m/nofp/libgcc.a(_arm_muldf3.o) - hpl/sercom/hpl_sercom.o (__aeabi_dmul) -/usr/lib/gcc/arm-none-eabi/11.2.1/thumb/v7e-m/nofp/libgcc.a(_arm_addsubdf3.o) - hpl/sercom/hpl_sercom.o (__aeabi_dsub) -/usr/lib/gcc/arm-none-eabi/11.2.1/thumb/v7e-m/nofp/libgcc.a(_arm_muldivdf3.o) - hpl/sercom/hpl_sercom.o (__aeabi_ddiv) -/usr/lib/gcc/arm-none-eabi/11.2.1/thumb/v7e-m/nofp/libgcc.a(_arm_fixunsdfsi.o) - hpl/sercom/hpl_sercom.o (__aeabi_d2uiz) -/usr/lib/gcc/arm-none-eabi/11.2.1/thumb/v7e-m/nofp/libgcc.a(_aeabi_ldivmod.o) - hpl/sercom/hpl_sercom.o (__aeabi_ldivmod) -/usr/lib/gcc/arm-none-eabi/11.2.1/thumb/v7e-m/nofp/libgcc.a(_aeabi_uldivmod.o) - hpl/sercom/hpl_sercom.o (__aeabi_uldivmod) -/usr/lib/gcc/arm-none-eabi/11.2.1/thumb/v7e-m/nofp/libgcc.a(_udivmoddi4.o) - /usr/lib/gcc/arm-none-eabi/11.2.1/thumb/v7e-m/nofp/libgcc.a(_aeabi_ldivmod.o) (__udivmoddi4) -/usr/lib/gcc/arm-none-eabi/11.2.1/thumb/v7e-m/nofp/libgcc.a(_dvmd_tls.o) - /usr/lib/gcc/arm-none-eabi/11.2.1/thumb/v7e-m/nofp/libgcc.a(_aeabi_ldivmod.o) (__aeabi_ldiv0) -/usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-atexit.o) - /usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/crt0.o (atexit) -/usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-exit.o) - /usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/crt0.o (exit) -/usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-fini.o) - /usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/crt0.o (__libc_fini_array) -/usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-impure.o) - /usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-exit.o) (_global_impure_ptr) -/usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-init.o) - /usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/crt0.o (__libc_init_array) -/usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-memcmp.o) - shared/thirdparty/lvgl/src/lv_core/lv_obj.o (memcmp) -/usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-memcpy.o) - gcc/gcc/startup_same54.o (memcpy) -/usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-memmove.o) - shared/thirdparty/lvgl/src/lv_core/lv_style.o (memmove) -/usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-memset.o) - /usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/crt0.o (memset) -/usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-printf.o) - hal/utils/src/utils_syscalls.o (printf) -/usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-snprintf.o) - shared/drivers/p_tcc.o (snprintf) -/usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-strcat.o) - shared/thirdparty/lvgl/src/lv_widgets/lv_dropdown.o (strcat) -/usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-strcmp.o) - shared/thirdparty/lvgl/src/lv_core/lv_debug.o (strcmp) -/usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-strcpy.o) - shared/thirdparty/lvgl/src/lv_draw/lv_img_decoder.o (strcpy) -/usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-strcpy_chk.o) - shared/thirdparty/lvgl/src/lv_widgets/lv_calendar.o (__strcpy_chk) -/usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-strlen.o) - shared/drivers/p_usart.o (strlen) -/usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-strncpy.o) - shared/thirdparty/lvgl/src/lv_widgets/lv_chart.o (strncpy) -/usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-svfprintf.o) - /usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-snprintf.o) (_svfprintf_r) -/usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-vfprintf.o) - /usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-printf.o) (_vfprintf_r) -/usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-vsprintf_chk.o) - shared/drivers/p_usart.o (__vsprintf_chk) -/usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-wsetup.o) - /usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-vfprintf.o) (__swsetup_r) -/usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-__atexit.o) - /usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-atexit.o) (__register_exitproc) -/usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-__call_atexit.o) - /usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-exit.o) (__call_exitprocs) -/usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-chk_fail.o) - /usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-strcpy_chk.o) (__chk_fail) -/usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-dtoa.o) - /usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-svfprintf.o) (_dtoa_r) -/usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-fflush.o) - /usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-vfprintf.o) (_fflush_r) -/usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-findfp.o) - /usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-vfprintf.o) (__sinit) -/usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-freer.o) - /usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-wsetup.o) (_free_r) -/usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-fwalk.o) - /usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-fflush.o) (_fwalk_reent) -/usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-localeconv.o) - /usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-svfprintf.o) (_localeconv_r) -/usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-makebuf.o) - /usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-wsetup.o) (__smakebuf_r) -/usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-mallocr.o) - /usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-svfprintf.o) (_malloc_r) -/usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-memchr.o) - /usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-svfprintf.o) (memchr) -/usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-mlock.o) - /usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-freer.o) (__malloc_lock) -/usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-mprec.o) - /usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-dtoa.o) (_Balloc) -/usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-sbrkr.o) - /usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-freer.o) (_sbrk_r) -/usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-signal.o) - /usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-chk_fail.o) (raise) -/usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-signalr.o) - /usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-signal.o) (_kill_r) -/usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-stdio.o) - /usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-findfp.o) (__sread) -/usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-svfiprintf.o) - /usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-svfprintf.o) (__ssprint_r) -/usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-syswrite.o) - /usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-chk_fail.o) (write) -/usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-vfiprintf.o) - /usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-vfprintf.o) (__sprint_r) -/usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-vsnprintf.o) - /usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-vsprintf_chk.o) (vsnprintf) -/usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-vsprintf.o) - /usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-vsprintf_chk.o) (vsprintf) -/usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-writer.o) - /usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-stdio.o) (_write_r) -/usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-assert.o) - /usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-dtoa.o) (__assert_func) -/usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-callocr.o) - /usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-mprec.o) (_calloc_r) -/usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-closer.o) - /usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-stdio.o) (_close_r) -/usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-errno.o) - /usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-callocr.o) (__errno) -/usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-fclose.o) - /usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-findfp.o) (_fclose_r) -/usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-fiprintf.o) - /usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-assert.o) (fiprintf) -/usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-fputwc.o) - /usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-vfiprintf.o) (_fputwc_r) -/usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-fstatr.o) - /usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-makebuf.o) (_fstat_r) -/usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-fvwrite.o) - /usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-vfiprintf.o) (__sfvwrite_r) -/usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-isattyr.o) - /usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-makebuf.o) (_isatty_r) -/usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-locale.o) - /usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-fputwc.o) (__locale_mb_cur_max) -/usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-lseekr.o) - /usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-stdio.o) (_lseek_r) -/usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-mbtowc_r.o) - /usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-locale.o) (__ascii_mbtowc) -/usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-readr.o) - /usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-stdio.o) (_read_r) -/usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-reallocr.o) - /usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-svfiprintf.o) (_realloc_r) -/usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-reent.o) - /usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-sbrkr.o) (errno) -/usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-wbuf.o) - /usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-fputwc.o) (__swbuf_r) -/usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-wcrtomb.o) - /usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-fputwc.o) (_wcrtomb_r) -/usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-wctomb_r.o) - /usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-locale.o) (__ascii_wctomb) -/usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-abort.o) - /usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-assert.o) (abort) -/usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-ctype_.o) - /usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-locale.o) (_ctype_) -/usr/lib/gcc/arm-none-eabi/11.2.1/thumb/v7e-m/nofp/libgcc.a(_arm_cmpdf2.o) - /usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-svfprintf.o) (__aeabi_dcmpeq) -/usr/lib/gcc/arm-none-eabi/11.2.1/thumb/v7e-m/nofp/libgcc.a(_arm_unorddf2.o) - /usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-svfprintf.o) (__aeabi_dcmpun) -/usr/lib/gcc/arm-none-eabi/11.2.1/thumb/v7e-m/nofp/libgcc.a(_arm_fixdfsi.o) - /usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-dtoa.o) (__aeabi_d2iz) -/usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libnosys.a(read.o) - /usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-readr.o) (_read) -/usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libnosys.a(write.o) - /usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/libc.a(lib_a-writer.o) (_write) - -Discarded input sections - - .text 0x0000000000000000 0x0 /usr/lib/gcc/arm-none-eabi/11.2.1/thumb/v7e-m/nofp/crti.o - .data 0x0000000000000000 0x0 /usr/lib/gcc/arm-none-eabi/11.2.1/thumb/v7e-m/nofp/crti.o - .bss 0x0000000000000000 0x0 /usr/lib/gcc/arm-none-eabi/11.2.1/thumb/v7e-m/nofp/crti.o - .data 0x0000000000000000 0x4 /usr/lib/gcc/arm-none-eabi/11.2.1/thumb/v7e-m/nofp/crtbegin.o - .rodata 0x0000000000000000 0x24 /usr/lib/gcc/arm-none-eabi/11.2.1/thumb/v7e-m/nofp/crtbegin.o - .text 0x0000000000000000 0x70 /usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/crt0.o - .data 0x0000000000000000 0x0 /usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/crt0.o - .bss 0x0000000000000000 0x0 /usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/crt0.o - .ARM.extab 0x0000000000000000 0x0 /usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/crt0.o - .ARM.exidx 0x0000000000000000 0x10 /usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/crt0.o - .ARM.attributes - 0x0000000000000000 0x1c /usr/lib/gcc/arm-none-eabi/11.2.1/../../../../arm-none-eabi/lib/thumb/v7e-m/nofp/crt0.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group 0x0000000000000000 0xc hal/src/hal_io.o - .group

    ckxA9J|pJes|%dd_8gjZ6A#5ZHB}&A&hCW z8c;F9+w;fA_5A>6L?uQ6Ra{RNsg@Ya6~pP^h0>;p`(-5^^(6}_XpO9-3@nFaM>&o< ztz0|Mu3R&2;ukgFP$IiNZ~RibZuDeYc&g9+ z%{AM$VA0^={Ev>v(}%}rnEhK+2YmvLgkWNgIZ+>g3YdM-?HLsD6@rZK?Nt4d{`6-=K|HfoH|0hxpaMkm}5%r%8 zu!XeOYe)19*P)Lq_F*=uod$sZb1vup^Xf%Jd5Z&VhiKH&Om(^n1PHNKFbor;tq>jx z`ispL)2bP^U3UiL(&{7&Sa*~tSfsv z@meJBlUXD8o8KSI8oR9Y;DTQ#w-On)R6@vDh-RxI6M82)nkAXv=$z!$;c8P`N5?}H zdMO=klDARECHhQc7KgZ8lE|<7UHJ0fOB*PiK?Hg+oAU!B^;8GW3LfGgH(Mx&y*J*(E(o zFpBnatv58Ilv@XUA-MMX^X}d6f4G3``fva3cl`h9WJzv~XBjCo;l3L9geo zmjcp6o`=(2GEhs@GcxJ2&|$7jt`vv;xc<%*n)lP%HH`z$2Mg0e0D5|wlP;t)EiFDx zv~$459}ku{C5DX4;W3mcJNa z9ax+A29lEa`3oT_OmcMeE_mM<$24{XN(j$~N$QF0Ep8*CalrY@K7!k2L8UidE=g#W zL{^2IUmB6p+6!zJotE6tRO`9$YBH{NW;|y?(^%$;(aN7u>{9M{^#is6DVc=@h1&_* zWT_W$7d$mC&3wHeKvXwd01c1AL_jtdhuq>;qS0!Ke!=5-_OSxxGo5ajv86|f19nG) zLieNL( zQDxG;5Y(H9b%vBcow<^^r9`pO^;%A}!*Yj7_Fv54cru$Ur(3^~>D^As>qkXxasreY zUJrgr*`Yv58&}e!I~oTlAn#Id+*zOTzc1)Y1Ky(M2$rGyvUGI?tm_c*7q8?-E~ zSGg##gGaOm&pjej`y_SGP3VZ-vr|bsFtyBILr)K~SWqOR(z4r8TTBvMVV}Nfocdrk z#?%V=^n`K}$v%rqvGC1+h`dN;Ok@YJkq0p*$(TgwwlEagHIaHwr(8cN)Ac^M!K4k{sz)zNu=&0u)h+Gj7B=dF`i>o!RtlKT~t0@Bf~#i*LYjkcD&-4Tb(P! z&=G-xUTJ@yffL1W{H z_8}FKu@*Dk6_vcf?LaLTM>pF3Ws{Z(01F=QJ?y()0>xxl&&bX!bPVSog7v7oNs2*j z9qxb0qIC#PPs2E)!jSYctb{i7e`oW#fvgJA`yC)wA@Ijsk2pm8pP-7!WgaRR9 znw9&M<*i1f`1oBq1EZ1785qy8Gk~xkcJpF39VN)4+x_;#-Nm~$E8echf{#bF-rU$o zX);VI=)*!Q&Phz*pP8p;gej#Q5q&n!zRN+=So5bAnLPUT&(S(2{vX>DhookVd3{1<(@!0SYKVLBCN0(DE|gePSnCgNA=-qxP5CSP5Ig{mvC?(Kq~Fj-93bg%r=S z!IjJ75m$I= z>E=cKGAGDX4q(&N=|5LGAgIz&w^f%GE4x$Ks?E5+WmfeFWTfJNkDhfA!~X$f2JvoJHM*x7=?Ik3-CBN+s$$iP zq9qEn>Qd)9#UQ?pSfz-qDl|$#r_f2-`SGxAJVlAwmR0QvL_p7t1l#Y8^IaP4&mvWD z5UJp-!^n-N(b?4>_7L>sHWV;rqFH2&y|c3LXUa}efeY!s6ljL;=q=0;sv{i)2!46z z9-XlW0lP8))oFtmB?_Xv-D*kV4<}}>lpFLG9d2JvPscm(`K%PpY#DBIndS%77(af*=@gm0i*^7}#W@da zb3<_x`zEb15#eq~M4FbvuLVQPPprxJG4BC5BV@uyNrWtdA#A~_o%j5yQ6&kVRhgx)QF}3BkANEj5 zXHq&*K)L_>&wu%1b%E5WMSqwT6&een@bvUF zsL0-*sF&0^P(8up`U%#=ro7*4iHzsyR=wCfgKu=&z0DSbLMe8K9SD`Se7Y}Rf1ZAU zLrtnbu0v!fI>j`Sy_#-29^upTd_^to;@#Wh!3+Dd(l1-U=D+sx0zRgX)FX1BuLQdW zWvMvAd5gH)0P6$FroHWY4SH*$`npLjn=|%B{!80LxFW&u& zVLhCUS{J&1xo~xmaco5F*wq^j=SmnO7&pC~3LsFhFV-$7onbh0#tNfc(~_e=5I&-z zYk8o@<94Qb+!#Z4ci_yFlbJQ~7^ewe7W^D%CY}oQ7{5xUMT%n4->ggVm9dv-<}>Qf zer}e%8XiG|U)DU0XCbSzIKj{BC=qZ72*{q@7_Cxv;X11af>cNMY3Cxb3QI!65wg*; zsu++2%n+#%Pbiyo0BmXba0$q6|9bq!cvL^)r=L*M`;QOL2vnh^S^lWto~Dkd!@=jv zCP6^9NP?s!yAC)mIhkFihl{x;gWe2VZG#WxmQV%%fv3UA#4JL@bA&ESs}BN#nGAerSv5bo?yK=wa;2MN^q*^6KhYbwt|S1b2u?&j4%!Xkk>Jb%B(S4|AyN zZ;b{)cjsvL3nT8dw4(Jn=T=L%_&{9H(<7GV!&6ugg~I zJSl+02Q&&^a#?ZDI^(4Rh|)l1us0!DurjS%GTXMJkLDqgCX(T5vWQApBh5ZnX$lSQnmxI80MoxQJSn^zPRy{W5Q3jRX*_cSY{{ zi7Wv+91xvDJBYfo;yKRIfDv+ypk3DMZOtoBg%>P^$T&Yu3lPKogqADo`DAJ%+&uKB zxETj)PlYkfa=tNrfDOx&`Y~N*2oBt5cMQIebh2(ko!3net)W^hlqQVl2z4gu<*iBv zxZ3fTAOE`j$td;Nq%4#WRtvGeLZ(?Gs%ofnWJN6XB>r5AGV9FQq95RVZOXEh2eX)D zM~n29yX7PW>}Nbe+e*H18vYBq3oT7F|o6N4DY z=y!fdzT8>FW`ZqXC2Pr%X?<$zw~v?1dnv=8!L_?{82b#bOHOAcz^QjNmT^3$b-X(; zry8hcVDi`^Rv{UN-xz=+I*}iP^c0p*Dov<#*_O%!ynp-o*RN%}sEU)(yGLJyr@Un@ zMyH&SOLdTm%RB3JOrSlghMoKMaePTyM8_2lC$5mWanJ3?;C+_jRe#uc+`ce=M1HFK z=N()D<$8>U^IZu8DyX#H!-7ud`2QJ#Xrx3rizGo8Xc?%0SH8-M!fp=Bsih8jVi+n% zRf$9hs(K>PXrK;gk8Ui?Pnb3+0*W2Q;%9ybN-9o3(-+ya$WaZ4>Xg)TjOVi9PUg8v z5@epzPC&9`jQb3gjo02__J& zU`XAxb)QzvFds2$Fd=mRl-pg)6C77N45%LGs~UM6kxwZiM0o+V>#7K30DX8{mrz_& z2vbFdd4kYooV6Md&f6U8mV0jK%6cm2XrTNCco$m>6V|_Nq<90aB%AX>+gx-~hooCv?m(uQE*j=HbLH3Bqg9r0Bo4U9f}(g z&+VxS<<%hEdd&8L)z%iPoxDWS`?#srlgy+yym+hu6?%1IA{i_?omgX1IB8u9zyAn4 zJdOgQZ{RwSi&$N4_{UHVnviKKU{tjwae}QmBJ$+eD&aGhW%jQ~xxSswF0Zd=w^!5K z+v_j?V|Kfd;uV+)Vv!!*Lu0lSMcI0@5f_G~(9uHK!=9YI1RYeFE9Mpql?d)x_Qz#G z0+7*1huhk7r8(1en|X0sMr1tA))k~@?`c!$>c|?Hh$OP$2oloo*WKViZ0=FtU!blO*K9Mt8T8Hk0NA-Tn8(9kaO6y~VrRyLu*Q)(` zI?=z3-}pK*D-m&aWVVUGIDRv!1D6DX>^L-a8V*Y|V_K!^DcP>xPA3XN9@1M^1m z$t38Eb)-pe7FXU#fXo$$q~(C1S-tl}W1~i_93g^!Pt#lPKhvzHISgBa*1P{z1s6=9 zNS<`2YVWy~Y!5zVdvKTl*!$^JDqbLc;%^QaG{q4cAYGe}2DN00?wA$K22bn@k?|xa zpMs=>Ov{znOKKA*suZC~w~Qt&xOjJF zAP&`dSPPr65s8PfgKfRR%CldJiDg-EQ-JhvM+k%Zaw`q0(Wa}cc_GNh@GrEg_+)1H z6(qv;>Eb_r{`>b|fBgFwJ1sze5N^cHMls7I#Z7ZA^{`4#U-TzdbG}*r{L7csmp}jZ z*Au9P+1IDT{d!$%G3VxJNh?}~sO~laz z7QJ{fdxM7V?7W0(lBaCZlsmOg2Nx{N=5>*c>DyC@&wnyCpB|p#0jJmwF|zQZEY#~B z6@$2;md7G)zr9;RT7Vdv!YEccNng>puflH{i;8;5O0BsxAfl~leX(BBYOJt!42}+e zw!3KVl{bKgi#2vP4rF>JNLa3ATf!TV)i|Y;D9km74ud;D*2dCg% zTnzeBTIw4m0=)JgMW4T%>Zl^Sg&Q za-{*oJuH8sl?cmR`oLlHbnlggla1J!z(tY1Z1gzq?JyRtGXIev^E&bccBj~<=(V7y zuo~Mz6om6`ul<}nai)7AzW;cz_!=-i`cmW#!x3_POj=iUwX^5-xb1qXEVll=ogl(>A5Y@&ql78Fdq{{y{5+a8eIIB(!o-0HBh3Su%PFjFE|3pE(*T+D@GtE-B+u zIibOhERNgs@_okRffR~kZy*jPdQmL9kF0E^A_ZvsIP{#RBOh6wB_Em7K_vZ0N8ifw zVNHp%)gH|$`Sy4)`!ln&FTeft>yLl^>C0a({>Mb}G`gQ!0_gh-XBO8uxm|LN1t4dAJ)nCO%4VTxHH?QvYQD#+Z7SvF;DGpPg)b7}cY zKykG>eb4G>*xp?)wnEq&6?_gmq~e!~Q8Q?FfX8+-IFoO2g~K8oY54V>#MZ4TxeHJGi9JLcpwt9aw>TafC=`{S;4Y!#7!~vA}2h&rkbGwHpoE<`jo^ zh?I)1*>;2YX)yzzfJJ74a z67Br{3SG7=`~=GmTPeBhY_l{D` zu0XNN@-%x+zxE zyYvzPcW~ujJ!61)g6pSb+UI6v22mCkDt#)99YqPlBF)JegwL!d2|ae$!J&QpoHFbu z)+^$O4T<1eV=h7kncZ4KAdjDrfQyfWs8&`brVY1t&b7XH11hd~1D=d7dXJA2Pk?%| z^@iiwOogUVi_>-{Rkk-~R32zWkzr z!*74yfB7r!_2+(j`0;-OUReGlVm#HaUW|S=O@|W~h}+Y<>OC&X7s3C?Z-W1kU*!+q zUW{JmLT{73WQ<>v=@l@B=Agsl|#zZB8bta^fjVv)+-v%s+4_|LT#8XG)BkPtQB z&=D&}GrveyfOCQmDHEO`73x6+pEWdQFrb(abd+)(g_IIVYA|AX4%SzVznHgE!vra2fI+L z#sjrtH5zxziboQj+Q$#i_t0hVzOw)6g*QXgdgQj~RsukgG!|ut)*JbGaI^K?2@m1` z3#H^y;ajD5aqvt;GHE;xXaGJh`A>40Cib=?cR1bcw3wc?IX`g`~ci zX!eokmP9$wH=iP%0?(p~q`% z4-)r=xp5Hm=qV^WzOBDa< z317T@*xj!mkQ)!bzI8LMXu42HtmfH>>WvW>!9}oe#1%)09M1XkP@KVrxpRV^sl7&Z zuzPDI@nQej)`R82O0}r0+1p(2NVs+ef67HR!@E4lNPLBnw0}VAZdODg*J<>#ID$nf zft3eaINn{G?HFOqdV-|iw{*(M+}STaEwc3rtvhe*Zeifu#r)Ws}0Z^lEN*g^Jg8V~S3t$}yJAul>#7_y-p>b)xy{Hyy#X!&$4hG_=X z`36+i>cuaIBC@iud?^dcpuN}$;_SFzZ2`tXvo2x*o>qIXMYuHD^d$Ns;5xzbLHb#m z-Q9w#$Ij4V{T#afCbMgnNQ5;BtVK>rIv# z`G5#GLq6%{tT?@CN=laU3ff7*Fqc4)EM;7K5@p-*`M2WRU~D@48P&!NFn%SnPauV9 z>Q0e0hg|D18PRth$%u0;6a2%qQZyRYeiuIeEjV#bh zK`rj*j~`jBw&0VVFxs1?+mTblcmY$O7ErqQH$OQgkL8YlC`V8fkHKms_jnPwS`h_r z56DvKS}{)F)U+|Kt!ZZlX?~(XiCd{s7q`960}wP-FcR{9J-OBWbdQ=quQEdD1P`5# zG8q=uJ-j)UVP8eqcQC^M%oaL3F(7`e*DNW=J16_xOs==nSm}T%Skf?y7z`P=m1VH{ z;?@egFm2iiVcD?EpHeT?6$4#?vFtEvdY6N$#)F~^?w`O{J5!S`(fgxXd6<{OYNjwm z;ennCa9(>DMhGm1w)#_CF++VDs^D<>P$AQ9+%ZczDwdubk8d*dt}{!YW}f@y@IIW^ z^4x>63IZP>*uwx#0)RP3PfxI3N^9rbEIZ#kdGbbEm6b|UZpZ8n_wW$C8jKL7$8@TO zBJK)uTrO9J%!y{AcG9X!q?C!wW>YxYJ9IX%JRh@P=OJ>u78g9QJqWD^1H;-v3=pEm zgZ^GNSwZu$SczKP#KS?QYma7GQXm^QTBsS#rr@uojFHRk$jTIr?bWswoUf7 z0I*6{P$mV!y~iz~V8$mRF@u=092^a@si77FtO-**&~9otZB`cOn;Lk=P^pYEFtegM zKjd7)t;((OtYvmum8Jvy$nVPLEzrO!O=k}Wv*h!cDF^(ra@}rBlo9p9jze%^joQ4$ z9zdr}IPU}=t1s5;Uyb3@Ge~Rwz~rdCnx~O8P(8qpGtV-}#@KRwdhDcD6O0haQ{=!g z4OjW3)=E%GrE-#mp4-l|yi=P(eOHpf3-fIb*!KDzM#J_7(vmHHd!|?nUEroAx!*z} zY~-~_P=foz^V?8@JVA_V9Ath}VrBn&Fu(Dr9%gWEsKH<>o9*NF_#GhK=)-KCX5L?1 zAuNfa0AxCCrDN~bY{E6F0u%uav}byH+?=9R00<^UGki#IP;(Hhdc6&!VcQ1q*V)vH zD%wBsV{_#EyJw0H7emuq)M>FfUa=biPE8I1Ou>8JTQv)_eeQSYpjsdEC}oidk5a1W zd~W8G=ZK2p(u8bT^(%qUqTRpy!$qB~tu;c`92BfDL_(^GMm4NpK^r&($RYybt{zOp zSdaOM6$Bs`3qbzk{so+eyevDu$}wByG9^C6>?XGhazQkE5Y6dvv;WNXaDuAWJ9FX)GeYxRS-DJ)hr?$Ao9zMRs`fA=Xv9LP zFx$B|)G*fZ%_dpUK@tgrYjm$HHT$8={-FRWrfD5RE=DD`yQgP3lpeJFF4`iD8VxoR zMJ1WdI^}}3jkQGOzh?;x;iZ)0qJbGh00dbB`pGARi?s{VC4y_(!0<>nTDF&F3y@{?{iv+3^< zY2U+Z4k%B}PmQ#p18B?^z0lN0ZJoD|)Bh5{E6<{A)y|f+*JhKK)8zwDMdwCht-Iq| zaY`^ODcz?i58?kvrdW5hV~F+V@du3VE3W}*BawgMG_X)~t!eRO(R@MO+=*#8D7!-T zx1e``Yq&u1Ik#1ML$LxT*I+w09r_+B^XcgFv)g^{H>l{5vf}|bks+8pBq?fF<>N`Dn-Z# zl!ej!8wppSmZ9#dkqpYZqqe7|_N8>l zv-+2f+FfNV0O+U>_suyOkK295n*8*hrpyW83uuXn-BY@NOxBzs)tO)qlhcPWzT*M> zt5PqeLNBH66hb7jsiX|JhFk&!+<1eF(IXR%5E$`(R_q+6U9k~EvESW$ZOcuiuzHj% zr%4V`rrHXI`4Ac8=?e>Aq~}}cH~ds}8E2OHi{U+-rX;pct8Fr&o2#|NuLrZEiFk>C zPvy`ID$6tR6h_4UJ6QM(1lNMT9re9TPHR7nPcNG&hIv)8FjvA(_q&I~bE`xYEUcMl zzak}Li=&g24AyBT9Tfx%rr6RF)R<760dSaH27B=Wvw3;v!_x=c`R%0gV z&B?&NL6j*&ex2-7nNQZ1R>zHuF9iwJE3IuVMr{r32v)eRQd6hAWCWx)O=L?(N*^7# z>CqE=yd==5rev}tJ7+L?RJV__o+8&IG?ufd$Z3%RdzQuSYV18h78|8P*8O2eC99d3 zrtGXa9CxVF(1kQ~YK=;yOus0t-s?2zn{bkpy3CG2^6O z#-6TU>EvFYlJa7C=S)U5u?Qb|et-b;gVz}gX5O2juM`Is@b|E|z634QpE(+~@07N( zoZb{>IDA_A*7xB(2)x^V&B6w(@K}GRSlVWPf-@l59L2ScrBROZ<-xtkM!2e;`NX%Q zBuc*O#OBcjQ-g@VlMj5@AkO)SG*POwrmj_&V%@5_S}^A#iusbol`)EXtXQf!+|tMd z6M4Y1o6}x_=@Nmsbzm84;Cw}$NB<3TD;4hRdXoK^2Q?Bnu0$SKX`XRwKBbJ6tfTJC zR}M$~+F!3LvCY)6gD{!WlYrL8@Fegvk$}{CO=shT9{UJc4#-7b&7od_MX~Ir3OU_+ zTF3NK{wC&i7)S(&ps+RRU`5vIGmy%{9g}O}v%F0YSyCbl4`LQ*(D?rT6!Qhp-g!kk z766Y(a?q=BI*nm299CD8#(3O!j3^p5cU|xU3;smEljNC>V45Ks9Z3AtcLy7GlP9NgY2^YM=hJ-ZyogA&I<^G?WqIdPhuC-Us0duNl2VtjNU( zDoLT56kuT;5#wXFOQX;@@w1!x79j$@s8N0q-!VNQ9RSzPLH@(#a8pH&hm?2*xAAb4{Mr;4yQP4tCnmG;!d3ChkS%dYtoFLSs#rg_SSpBx#GjtgH??d{fuK0K|Lb0q z0y01-nfrovk!1d`pTRxwF}w6B&GpWQv@`58#$qm7_f=7~5ODRNBDjD)=`9OrkH01| zw20Z_yFNA=xL&3jH@f8Oqy&es0|+{zQ}?AR7RPMKvoky}0VD~}LW)NaJ7VWtfjj`m zPTN%82s)j(MQ14KcJ%}xsaVCGVS;_8A>$NfP`4^Csz` zVa(DZvAwS(7u34?n75<0paHdpsv(BqfEwYU?biz9RJAu@U=~!2S2F7uujAI85dP*> z%C4L9iBwy1>?1>rT#Q6Dlv(h9oxnT?+Ba(mtgiBhxw45FqbHo5V&H1 zKAEorf@4k^pcO^h$Y?A!^~~LRkJzf_HT8wx`P?Yw@1$qd_? zvop0S<1d;cdF3H7qch_jrgUy5e`e%i=bn-bhKz7D{zzO-;UL~@Zr~s`!Av*-vR2Nw z!gI+9jb*vV(scx<4cTHpqOSgF{S!0Vw);;PCxC9t3+|Ps`miFql@lh+#T3#ccDdag|%t){A`zx0B>p5I? zJy(W?;t=*G@J+SV>)qq?15|xZawa4flf^Gs;DV_uu}kDTusmm73@NlKvSYLv7_Ku)ayN63oF*n)+1zfG$P}QBEwti^oC-g zI``_Cg|cQn-akTpK!YrRqA`8}KOA+>h(-{b1I8)#wgUp9%qpny#M7$Bko$`ulh#kB zDh_tgSjy+HZ=}4AppT506}TN8aBPC%{HpNz4lDV5i;B#O2YN+jv%DxSO*YZ&zGLwR zG>*k0qGA>S#|c(u@j>Mh0mFT6C>FRkK`U$yis7=XkpZlaoH5}?xG_Za62&{%f8+BJ z%*s{)QXK1}y#V0f79RB^vtI`xz*18Q=)@MrF47-#vVUko&p z*F7TGuAxXU(<~oHVR|#{rF8OzYPD{$ht-}9C%cz}_S!+c9l4&LJ2Xw(R_wpHeunv% zGx#{eT)GWf2u%c4AvfQn5QaW!oF?dH`phA8ZjODrxD0F}NoQ0uJApYp-|qkxym)th zEEZujL#t3aN^?h(hz0<04Qgrio~X{NWnIpZx5ZXG$gTko$etM*TY_3n(al^&8p4I< zePk!n$WUL-;Y#0~UKgjw*Ev4lVL%ZI8Y5*%RUxDRwv9+NS{-xM7>c^#(zSF7Xrw z@u)3P87C~lXQR4bIp!DvG`uGY2qLiAoEZsLgAyd?^!)Tn9=}%Wvn?#`SzM9!}CfMt`Ph=&}A7d*} z^|&{{w@=@@>B;Wl)0>iW(bvrXAcNsG!+Ta-jWG9#n^Do1*9#~c>!l))2JAgD5hd(Q z&)9W$Whs)?0=6TLbv?+wFN$61ex*asdyGX`(_XYY!CtsT3Q|3;4DM#o?g+{N-Z>0T zSRO^?jqyNDBcpM13Dfgo3JU&#bC>igdVJf#j&jwVM!o?462<>463Wv&2^T#OT$@kk z&O&&XNCp%{=LhYNj|)5bt`tCqCM^BpbqhVm53KHMee* z-NlKvHFDu8U_8wQDYN;to@`W+k~%`-7+H8B2Q}Iqc($%k)%fMeMz+605Y- zTeF^#WA}{w1Eg}7hBDN78his~vswE6@|R@vsd)$)nR(AvYXJW zSBI}s7N`}`@9vQewznwI1XLN$&M3|v8y4jvA<%c?__YJ=32er72n$m6wm9_Kl@uJ^ za;X2|iS?l9i8L0ahvd%4z}9NWHX`F2aLN@;qv{wgol?5cN5mt1R=Su$=+QuNEV2_s zTeO4Ij(ef&5jM?`uwkI|l04w6`?Zc3C`Y*n-hO~?Pq?7?C(f0(9;h$I$yD2cVn|C# z!BF)UPOmc>>Aci4VDU2iu};ryu6Lf;&amgnurA?(EQ_b_3XU5*V>UztN@cU; zX-{Ff8BUTrQd~;~0~hAVZ@7(pZ8>bmGK_nMAoR3~i#yRDdGALpu#!*fJwG!~8@(3uhsRc6xP%bjW|!aO_yl)RN1jUX(~e%iX+0 z4r^O)ezo4b@>R8`3A$64oR2wrxX7-;SyQphJi9k;M9CwnQ3{}>FQha_#4ZiCMT?1O z_N<1YpHIsqVL3JxyG_lQI!p#ckxFUi2Te*Z2AtdlCEMXIoE+u@r=s&hMF*wkrcsV9@nbAa=N?zoapCGm4GYUoi2|@!3x(ehKYI~QQp-57Jk?H%51YL zv}DvST8eUwB~;AK7v?cbCJfiG>9QBmSrYaO)skf%)4mw>ac6pQ`P9L}3+7Lr&h8|Q zAoNbd$Gblzm3=hOsO;^ySz09tJg#<6^gtC|h*UjY)<`z((brN5lzeySz(BL}59}qe zWhtzOE|4sFo>(M26*N_r%h|>C?Kc9PR<(@C`+CKUQYJb+XMC3^i2UDv_{M$sXA*vw zW=DaA!_&;I5hG)4Q)Whr`>T0?J6l#pLpO$!=0ZvGtqv;*fPEy+YO!ukVF_4G(+1_TU>Eo zBJL9jV=<$i;4U~xuFo^Dc_4hZo}0Yi9X4z-h`Rf2 z+jBi|fN9)bfJfV&4sQ2^k|;>=07mB#9OLXz@QdyQJ6rrUxVSbH zHI-Dlc%|EB*ATPSHftU3OczLAfd}rHIYy6cpjr{%*=hEXRLKC-RlbFVa_o~Gmn;8L zgmMVyJv%3Ygmh|}Io_(}Fr85!OVvk=h_K%4&p4j-3)f@zmZs`6;nVV!N;2?bI>+VI z1TbtMxwNwkj`}Vregb$GB6(zaMd3w+P!abYU5mYJMzo96?GvfLI>ZHzT5Rql;8GWt zsC1G5bC)?L44*=v<*KW-^j;3-ph3H_0CbR^&-`g7WJ0bGX=qMTIb3MV6;j+Ea(b}j zRn)}B+NkT=Yp3hlD~w|p@&6qk^&j8={WnzS$9EKW=p7u%j9$1CYiD*?e#8cq&?Q%B z-Ia3$X2ltZm4xuDIRI@wZ*VH8I#-usx2gf{6-A~gfsF71+TBDtP`2$-Cn`@YA|1Ib zQ&xx8Fb_yaM+mCTb^}Zs%HK}S0z`pSuaMe|+Pk3{Hx}5onN0!&| zF>TtVEt6t@$a@*C!=EekuYqG&vpLCVh-fPS)&OMF)!6Ov9XeoUF%9pT4?07}X6nRM zyx3-Y4=Qj^Q@B9KjjFS!z{_B_ye5KX(3Un=>^}Uj-@gCl3+j9S{51)!wyJkI z$KUEDcqJ+{{yqhOo?0##nJ`*c`myxU0Z?_B| z<`-9oJ?t(e38gvCxM*ltHy8o47Eez|hpz7zos8z#{nEpaR#-FH!_yn@I=`EjjWS9_ zZVL1(O7QQ{I0~vbOOncmgN_tX!yZ|NqIm}vvo1#M*J+msI%c>;%aYJ{C{;psNzvb| zoK;Lv^sIhN0>_vsSVqvt6RSCe*FCBJZ?wTJ6u1QFk=MFP%i-5TK?r!kad}gs3*0*M zastYSk6g+X{vmL_tpaVcGvm^7M6^q5kTPVQHnIOX@IIcA3&hG~p!~c^@{^s?_%6U0 zuopm6kOcuTu<8*QA<`_R9@TSlM#A#DCBW67i(o{I8&$?mw;?eYA^tN-NP_^yARmA_ zT9LSTn(AvMyUim!W|=@*9Agz@Z9$9~k0}wooLrR%pQ`})RAMJe@e~RdaeHJ{>@7q8 zrBXqiB0{g!;U_ME3MQqfEtH9TOE@||Ri7v~nKVL0G3(RU4BFwN4Ug`(224sPk^5Qj zisK$3*!CReImNID5PTjLy@@r0!cqw}6zIF1+(;=s0bmO#(DCU3;7G>1PLMPy5v0TI zAbqa1U{(Q3Wlii;54)9$7;j+P)0Na63c@%uAyEiUm!CmnG%HrbST&ek9>Lx)JtN#@ zz8AI_sA0ID_0o|D3$p;OR&Yw!LZ(%*T+{H99x{a@V!RnpQC7Jv2r6sve@d*Vn^o#`V{`7YvVmTJ`n-&(-`%sBL^{l~h*Z#`$``{kYO4LZJ;`$A^Ly(!Frq3&Z9#z1qqF$L;T<6bRo+QL=rD^q4U$Q>xH zoA9zeANVf=NE-e`?2kv=y{KmrG>RFSL6RFsg2uJwHq45UGwO+}X?77vjx0)Vgc38f z7s(g5dSH7McHP>ivX|36;cV*PY4WCM^HdD!UCdz%ki~AbKWuEVr&nV7kW5kQ zo#IQWT+aJ*U=+nbl7}T4sn2)Tya|7!Xfhc>riOYfR;e??cQDRdRP&x|z5 z#DEGj!KKMT_n}RC5?|5EX8w$_VSl=}9iMr00sY|u3JcE1Z=$E2EJ|AR_Vrzl5NH zViUq9K*7<|6z=}_eebE7nVPvpHWy^03U1~e?q+IwK2_a6x`41!ok?uV`6VMIOQS*r z0QgE8aU18G#rpR?`TVJM^a7&2_6|5;+z~ZJy$pb3BEG-Y_ zkbtq_TEmaSboXJE6eAWfYTqIYt|bW@K~MJ2%p~qIZ!}iOax_DPNm&nqniz^UFRtnK zh`OLxg22SiNRT_mp2=Pn;o1ZiBYI~tv2DZ_8y}Dr(rgsM4@SPMNb^V;Swc%6C4}$- zkM)^>^ueRye4ldCSLCy{chd-Nnz-ba0d$Opkbp^P4OrwtrK+YNK90B6Sm ztz9ncUFz@#)R59}ltCfCTw3Llgv?E|4-y7EY&l|Hd4Y@F^zWJxhe)ELdw^dkmaJ zez^IhN|}I07$QXmje$2A*$c>s%sO*ZBeJ>$I&)!?T4p)`0YKOtD=pycBwHt8Gi{Gy zd9;}W?Wo<8RTeMrc|yV%l8LJjb#^1mE%|_yUGtk;L{U~3gQcueBfE;H3_Ue1#NtYA zJDNy8sGFBK9KJcgWsH_lJ-7Q{;U&&A zWn5t@tB!@AuU1l}>@9p_79c7-WG+0+F00n1mW6Y-{nT{EOY#!BJYy}TJWg7rbZ}X{ zdO#0zY(Ubl$$-vID}2mRCkG1qD{r0<;w#~LTE6jUUOy35;*8CLh_npr1n!qXx|kiS z=!}Ot`g&&)U!iLv0r50~TXrldn`XJ#umWkq0gu>aeqwXI z^T2jS`=Qo%5j7XlySLu_@|AIpeIl8dn^)aPSW?0241kLLo|$6Lf4|OJBGKHW7OB8= zE8^QO(724OE*9R!&yFr7Vyp(ZHfC1t01Wd2O{d`nK2+^Xb2U9uJOe3c*wjmS8}x9T-|Wii1qK#KgILY?-<&QD^lJ}*$`@>k)Kj2JU7OTd;KdFKN)+Cmkf}UL2?`M@-X(Hpb_t~T08BJJkdl3fRsrwxvM(~y zjl*lqoLtK|qz2;6ED7m!FRI~#l8@=iQ9~bHF>mEZi`>m=-U73$IRE6~iduP3d0EY4(QkpLy4jS?n`XzO4IyL80}fpt7< zBnE3#d$Mq%IN-u%hAIg@(2yBk-C0^1E}08(90-`bk1sWQ>P#?lj*giJ1dq6!-Z3@U zdHK!#WaHJRx90ofmx`))>rLuaQ>*;9W*HRfG8GvDe*2hGncxabfJ+p@PrVT!soj$k zuYoT{kWCoMM(9u#xTCBNRwy|~462?~DUMk9OZGSp;uNj~@^wPI)U~%>(`v|86Ff)U zp2nd3wxc~9&Cvc)0fXk{C5zWb6>!UKZy7GF?0o#j;Q^vsEw8|yDTvG${?0UeL%uWv zsq`exA0HZ2LOW{rXnP-}t_CO34Vq%HF4I}QKpQObg(>+0ICjFBcOvkkVS52XQw_5u z4wUd?_%LWZq(He6KuqvwfR(q3+3n<`6f+(mYAIq%$lC#0>GV4P3ZnenNa9JoaqXPe z=Jg2?ICw*NctFWxlW4z1qqO2TfFkIhbQ`13xx9qCQihLl6o{fo#HeiS*2M$`|Iq3$ zL(;FBI@I)J^UWYvQyGt$HR5Dr1T2@IvFc)T$l{m>F_~?#Fh6y63}A1Whye>YZ6QnVcB~NU5gi%y?55s=xs4f?yNfwAl~)PVcp9EQOU@X7Ve*3kBNa_ z_w0sTZ4%gk$8%;wZxVNgoOFi*t0>oneVL@ZG;kayv{)#|=t}tt*Z?aLaHGvFs4+ z@*}?FKY@-|F7ykxU*hjGR%66J{QGc=zuYb-{JUBlVOuZ$Ur8dCr2tZL=ca z1$`z3O3mvPcwkU&kJg37+f!fe>|Qg$_D{r2kOKafS|pp;W)M2p2Lfy8T}}JgjA=!j z%7q5ic@P=HH3{Vssh8GHp{JX06|Bkvj;z80I4lOOw3H}30r_QO8WPUb4-1@SI+-Hx zqH#O~;>bmFW)ZYRljyxk0rMv-7F=Y(nuIU0?*jOmQyG%%HYfy(cBb1E3i8pCK5b*8 z4hSzT{ZZYYV|B^|5aF7tcIE2u$Exv4Nf|H0T5$rY8Enj5Qv)<*RFNA+H0I42LXjJ|^hr5?NHKg)YmkwQ{4s$RDuqo2=C@sj;YefiWwk=7r1}{0#M@J*jss7sXeP>Z_6Jmw%_-l+ z`0?S{D8<(yoR~f@#HFn)Nn9O?kFztiOgKF0Jx~M@CGpy|XohV$$Qu~>WnZN5gGMuP zP`_brtzni>1UTLaHbS@wTs{fxfxlYiUMNNPTT3Im6$|KPzDM69&Jw*L>sPJS`qdnL zC%{ApB&MGoN*t*-!N>^PW>yo)FDv)XKcF_@|7CMyQjQ~Rl-fN1BYaZb%js7~gZjxJ z&8)I^aJ&2|HdQ4yE{u6gRT5e>#7e5ZACVGgE1m;%)(LgeR8~B>Orz+7=|DcCw(Lh# zv>`R1R9-n9Sv%|Md(h(u+IE>q>~`uMWd&-@G&IF^;dyb1DT$U%aL|6tlWdn<224+O z2v+kday%GemXlCs>2{uYcVIAo(7A-ko*vjh zoXv3r*#H=l(F~S40gBj4nkyL`cCghF@qgpSg6b}F~R4qqyH zH#CW8JR4=q__QtZP0B0=huW_%W;cMS;M)NXI~;Fa~swi`Gy zEyxY>V+FJWFQe^Y#{V zq>bauxC1Zx1)1!KK*>Cpd4)^VvocBZLkgA5I-N^`7@g!^Yf|T6JU!yq0`sT+Mc8=u zr&d!!Jw9YZvRf5@d|JU=KpIrlk58XIwGEEB|M0q73qvNcnhs(@1IxbD0~4^18mn??#WB=o_mpNw**}RnMhyX@ov9LScDv9a))2cwvV13 z6wdE^dgR@4F0Q|?_#ewbf2XHs*i2^d^l%&CxKw42IxQt-uf&>bB}E{Orav`HPR>vw z!qhgVEOAE+=NqFTvo_qzeqyM3M+=>>^uzsny#v0t{6)vtizk>jK0c2f`C5NGsMnq+ z!hiy^L?LYbVOqe%$LETmlVPbul`1U*#duM(tL@FAPL9?`p^+}h|9rADYjiGfd0fe6PG!JIP# zNw)Nd_1jeMC8-Xt^PPEyrZ*mh+Z*r|x+OcukSJ3)VF6Dln4Cb}a&eTz9X41@!Hh{R z1SeeGvBZ4=5Cy_AwIf_V?Q;2v~*qv!WKm{J-@-hLKxK#xy)tSfd;wjA)32)o9 zOXo*8sNOH}Iq%K_&=(%cJ_@=$ybY3c=(=>b!AFs09oyWb$!Y zxV;xs^g*h*Wm%KU^(a6!Q%S=8|K5N8bHNU+1~Gq%akv{`h-OIG+`5Q6hadI7sfdHC zS*&=iW<_cwZ!~7vjy|leY~ZkO>dg9 zRi}IEpQm9r0MS=$EhuqPBfHi!%nK)3lR~1|CTMg18&QxypaRWgjsRRJH(rdyFhMWE*HpeZxSDyE5Y$0y zM(8_9{18`pcACpD)0b!;DNVBm4rF0+GpoZaXf+v3cFf3^+PoqmBqzeeq{)0$tNunJ0A6xw zrVLe#Xv$1WsU>Fj;=te!`?u3vd$}T#Fen-!>xV|kmqgt_6d{9d3saK^4>e>dzkmu~ zte-9S9&Va&zA{y1O#rc;Q3-x_KiBh+XD0HC@(vAF zHVb>Y0_sPJduH;1*virpgY=G zw*EX@HS=W=>WX;qvsEN_2Y72)z+yb3Dv6BbFMBtcVmyt?5}%p+C`xN^z(%DV*AogG zmZk+bE2wq3*{%@>mgops;Lt~eFe7D~8)lDMlbLjfxd|Fl0Ct~6+kx`?KR&cgkOs>S zfa@(ILrflnwMrZ&Q#8>i+fBO2<`mogM)FYVdEl%1+8~^4O8H=k3X5W?x>TFj4c-1+ zdGSD6(0WPs+Wh4Kcu{z?YLN3stL?^FMn3K&=#xg*D=pc=DO?=^ zs~B#FRS_4Hs{~MxC&yS0v?X($u%KD+2TpI6MKfU_-UYk#5*mHc5hw}?lfwA9Lz*oW z_bC1ydnV1|5jERwauc@{DWqhs;H@G_>!=C6Wqn`x6E(Xq&|^*Q6yr)&{< zMfZanS3s*0O;Y+d0+JOQ9u3=BOj$z^jbcohB|rcIe|^}#oeodW`z8Cj3Gjtf_~o67 zRw7qzaWSBFIZ3a!oYC_Ad`AbOkLL384wGe!z=nZy{nLXzwN?fK;2hJOh zUEtf7#rfbl*Q2vb`=0+e0neuu0i*Vu6R?EH6Eq^$qNV@==G~YcD(6A4p!mn|I|+Y> zbYxP23!iAh-fB%FmWU}DQmPPvJEA_a#o&VN9Ha&6+`ArOig6;JW{OcyPdSd=JD@{Q z)l0Q;;c}pYVh^qc>~UiE(nA+#^iYE)rEkd#adqoZ_;fCuzVOnWN#&eB( zIlIj0G}#IsiN}$ph_-$cP&i1@7azvgv{pE(&4|8P;^VNq198^p3BpS8l4^o(aTSmV zWLuZR!P}C4%v>yILyL)_Dpk!!(^rqC8R>|Rg|zb1a1D#GcQt+5XiRU)O@^x{;)mbQ~D`A?UI`i z_JFO@R)*F~_n&hvE9bI)$}+k$)}i>`EH1eTi_VdoiR~y~65GJKYWWv=NaH}~=SEZP zx8#2E4?#zYS)>dHV83e8`1=btV2pJgZ3ol}!*5GsT=L^Qha zhFNq80MU^Nq&L_hlI}Dk6rQ+}Q$;nIN7Oyj0rNqqL3fn64kt9#=ZlnP(TH|}KFjwx zmzIakpJB=LG`PALd*zucq9mufH;K!a zT4V@|*OWaT4)4F@@C*S8#8(yI9RqGPxGPjm)JMu3 zJG&+)m)0vGXGp-}CP`YYTxNRkw7v%rqhxU=LAm1=LXv0gXn83G^~qJ6m!ed-wU(#J z!Y+=m{S!}b6m0!D_A^E38Ro9OvmLd27$we>%y>a=18cupV#%XfMlZBcld|-}glZgz z+Heuaq6-eJ&Jab0B=@w#Fd5Dfu^}u#WSZ9P`vMTmV7@tS#Q+OaRQD?tMj+VPt`$y) zEdoqu1`^*J4~IhtwU7lp$^2nvB2Rgk6A#u1(q)HOJ zo@1wg>_BbB*6@sXiW7SvcQSL29-DsFL0x!=Z4!zHk>O1&wLah~;K!t%j?GF*$Jfz2 zRa#DRR$8cs#9)dGA`IEfo4ml~cxJM8*d6WAT7RBV8hti?#_<~}FCt=30Q#o)3OPA^ zZB%j*pGT??OyEOf9XEsaCCW{*Mx!91yDc2&k@t;;+s#A&5H=qwyQvF_hO5gWJU?H_ z%17-2b-B>Dxh58!%9j1pWm}23if0r1+;vOUGwcg`OfMyu*v9u~*xlv$?Dvg%Rt?!~ z_wMF=SMTA;d^xNMu$M`~@TkES1dYxb$9tJD|Mx52&!-9nCuT zv?>R~ya%(0&aUy zh~Z7V3Vh;$K&}b3a5g_D4tI#J{~T>tj_}I>GrPJQ#;^rQNfdGx;-n&^0!QbAn(w4= z9(@|!@#IqsSO-AM+mD}KT0vWK94P>+?H<(A&O{Oglzd@QIFlUl%whr?!hooSJeO1@ zzJlgPQnXwRlB^J3yDbzZZ%GZ(RCIOJ{Cj%EhXr=11Ia2$ATIxwz!H%b>d{z>N>4sY z;X$dW?ITW=+voMwniS{NU{(SWiqF3z#sM=dz+iAQJJgmA;#ncn3S=+F-i+IEmQ{y# z276d_fvFfziG$)NWUwsliS%;dRXW&lmXQ!3%it-bUpl{Yx-E~xc4w8fF^A){kXl)>Ka-Ta`B`o())AeZB zmNc1z>=8;tG{_8o$6ydbOQLf%XFC{j7N8saza{v^QWK+5FE$~HF@RHat`tJ+j#czF zo}pC@QbS7~n$Ja%aV@r>ueAbvj9x>+WD*(=b(X&~$;b$HJbA5w2>BlX5sL0jwV#*j zjl--d-?#)9gv%NI-$mDW$Qr%w+~_N@b@&{0(7l{~e(!j(^TyS%ziZ|Vpl?d3EE_yz zB+g&}S*N$;3%GQ$#ee4)I6tNHI`2%jm&;lvkzondSyasWYAw{4)u8z?ayp;08~~Q# zM1c`fxGgdjDdiBt(E8&~#yI%j4^OC0{?1?`&+Zfvr|se-MV${%H@7G=W5{5(ff4+L z4dn@g$=eWN$|74>r(hi09Xe2G;(!iU+}H$Bz3M0hWy}sbJ*W}{i|X5TFz5SENKwPT zwPUVdWV?WBd^0V4oPQg9hk%;$Ux6E@!h|sap-i-g5GvL^+Q_dF&q^9hv`V1Pv$h&+ z=o$kK^0JM#c)m$Mwnn&u>QO1hr14=RJyJ*HZSyriJe#krWe=dyiDP9E3?axOCbW%m zYYe=2e>{=Kxu@vcA<0q(PLed9i8JnI{Qg|qVzNStxz+k*3!NNqyL-ZetpKYO*b-7I zyb*ff$432z>k>K2MZGGMk&P-{o#)tlX;}xW1=67P(a9k%`?&)~kK~~k4_iVDb4c)FjoummKohgBRaH1(&!7EPPgZ@A6wA zx%aUAk={zgv(Rn~+0zI&yi!z?q)MUYCsfl1Cp$k@iKFIjes;nyP5ubj(E&*|Tdle4 zoa`^ZJi)&nW&2G5?UivoD`@12*D}R&?8liJs-E-hgOgW1@yGE^aI1SkcVGW$3i+s% z)|!Q)Nq**4O`9~DWMpW9Kf6}keUpOZ?Wo;D`D%_W)24_`Uwk#B`gB(PSW3xq_YC@O zKY?3+JCO_(u`h?4gkU(n%?!JY05he8{Qx`{5u%tZ5cs)Tedc!fm{Zo1_BXq6f)s5S zStEXK6zvq#T&-xO8q@B&(_OG2WMW~hS^t;+Fka9V=5{C$b52VNMzLqbmB=XSvA98q zp`r}D(hHlCwMmHGSaulB;_6jqZ!Ww#NS zuV5;%H3*`;S5I``s_aTA)N6XD3wJWJkpLnavzI75%NAar9$HtwKc1H5{4A|cR-0d$ z;0((%p2TL*Ukgl{U_jSTn?~zFKfSbyAH|Lz5`R;L3l9|y)zw->Tvmh0jf^roMc1tL z)PZ$&)YlPVzoef5ax-VrUvOm&05@pSYq$J(Q<`yGfyAKHW5e%hWrdBE`CC{Z>rG>1 z@IgKh*B0J@Gr+5*0k8Dxult1>;y>t#&sNxW+gewU|3p;|`vvYA6v_Z-PiF z3&sU`C=-vP!A{wbXtH1n&>^=bz3voSq$pV)_b=6^wPSXNnMhBo+3a+OvTKED(ot%> zh}V0pvYEjT1c`z7;@jvEp5LMV3beA_4&t!>gmbg(oy;R)WwASZV}jH|VLFEUKW-jC zK9#6vF!R;`g6I;%K1d(nUA>pDPAE3_92dNRoyz5S}E!92&qpHHW@9e2GFhMC$?Eo;SUd^eB z{&UC??$07M&P=g)Nn9|nO5L3GA+kzpaHd;AmEASS&1TRZ+hLj(Xad+#V@1N{Q`TJX zoU(RCIc4^CC^YaeK3iqX-px$L;WFFL)@ObI6pw5nTW9a=Orm?};uU})IW$JsYpQRD zRa!?YV()qq_VNhGSCq0TLRru8ZOq;VsIEjb=!ochbK(nl8Sw6mf^$lt6KJgo=)OIswRjE9zsZ-E`Iy*mmmK8Y;sLpUA(atmU${B{YMa($)Nk8PP4LI)~&|R-; zKbF_@;qcTb8No$f&9ZL_!Om%2Iu;3(y~>@0?rdK@2x>9P`zPHsciilqg<3q?P+a zdWI8a5!Rp?Q>)?w-m@Ro6U|#qh)ue zI3>zFL9Nk_3XQJT(4Y&sQ5el7fdKF78frlr@Yp!H!#0ExH^vUJD;oj|!%UIL~-vDmtqRe_6RgSpPpuHRy z8D(5_JT?bQ*5xvn%6bcL>2_&Abyq{Hi?uMWZotZ>x0>ti*40~$2JNlf!!uVGSbRYa@en0kPM}@rCv;}loBaV6 zE*M)~6X$lVC@}X_ggEz@+_n1(68a6iA8}EW^96s-g7MtNJ;9{4hL;3#HN{9wFZ6(R zo#A!yv1+g8tAdjbSW@%8P|T)FLqAq>is`Od2B~Dzs0-EkDN@h2s9~|+46i+3MH;eq z_br#^;wOH-U)(==mzTjfo($I$jMsR2_uT0VL2_G~le>b<>tEwomqAI_o86^(Z z->f7`te%``T@D(kus==jkSqZ-85GKph4G;VCF?g{Y}ih`p|6Or;~H!}^0!N&P(bk~ z;LSfhAq5siZ(BTBq@OSrxtPre>8=T^JH<9h!eIILU^`Z4o`KW=?CG5Hvrp5H zfy;W!<>h>Nhe-G1lm5bn$IdC?b6>yAiJmC+F^v-12`wqa=I%P4+sAI3zNTbxoE2&v zc?%7UTBHRmD3IOMx>x6e{O;tB90?3z z4HK4cm+;}Fde{<%51&6C68^5VL_0Hs3y>`Ug#Tp%J})5LvbEkH?vTQniQG1Ku3`a_ zB0wNTNeT`tU6sWLx{2$#U5z?7grfMPNrGX*hEd`&tPc-G5w!$@%n^zuP*ZK`rgqf% z8j(n;r4P-QXst`kltI74a82NZ2$@0%JWHFod%A}~UEO?ko;{~XbF7!_Nrbh#dHt#u zlxNu88(0Gy_#qL!n%~uhwVNTGtziA2LjqV(rc*$ovVyrF(_vN>JJ!>%Ha~;JcsrCV zxuk&Rd-Z!HHuLl-$qD6}vY0oV8-8|!;t-RtRK;Vd`| z63d$JPVDz`fr{bggm6%J1MjHE{MjTJcHw{u%d$w#rZ=PUo;hynnBUZQ3Tnqa9NDV@ z&HWQFR#;T8qASelemRGEoYe$(;P5#fH4x>ZwlK^^?C0Ya-1&%l>4)dm;;D_0?&}#p zQXY;KHLvmxU-yiHw+TDdM9=EAIZ0mY{E)Ix%A*|Q%LRn+M|(g zc>$$4a$hZc9E>QBYVDQ@@rYk%HhLf&_*m4kc+>|;`^B0c)2pk<5HcRQZt#|@EUBFQ zd6p>W*V=Q?2Nw~L%7v@=*+K#*d6Xca;J-vrtp2{y@Q8ee+C{j1oUph=YM~HdO}E6mdn^Gc|TcJM`F}XB6qeE2ofI$c+`D>9ewu29N7uR zi;1hjRRQ)6jyw{W&gpz&oRcHy@TVwu^$wLxMGNUvnoX7DP&F+sLcj~@ubWW`T~9VC zd534vTAr2o(e^dhE_gsYmO4h^fu44T-pUW$0Gop4n(UbvRDktQcB2)*&aVpiwnWw#^T;!6p1N;IVC;5#fY_RV!z6B|s z`6Mf|)2?;SZye>@f?!h}0`zIyqv8kF#y2~(%~7F(I6+^UNOYVCVDxG#c%2J48P?+Y zZgGD9`L92G_gS1PW!x>9q8V9RN=hD2AYYTxU#IoPB8zh?_j+@Ctt>f|joP=kj3eX5WFreZW6s~(I zYd;I6(sP5B%$+^|O15Jvi=aiQrdG4ahKlP=eiJ}%(8sd@z4YgpOtZ+tfYJa|v#o>( zc)#kvVXsa|2qMz$4MRJq?F0Hs1OjV}46uL~#NJA1+(CbadCe$KkIuoxoc3otPurLL z)rb@uK4Wvp?&|7V?X8YO;4}18fEiO@VfnTze2Xd!Ma-CoM8(wMi$l%6;o|0|R>kjj zi^PnyYKzI$lVugd1e{vPW`-zc(ns-g`)LPdz;XvR=35|a=VDryURH28pSCHvJ?B|v zi@xDNKJC^!+9@Et6Nw$z|12H_-&Hd(@e&BZGwe{5qg>Q*m{>bik~9N;_Af5K;|GFj?0%w>9^M^GuPXu` z&nWK<(#gHE?dV=1vYijlko*4#?uhlVfX{q1&>W+7JXLx~<-uz@2an`1 z+T;;*3ynxVpu`{@yqdt@BY_*!mRj0!8r*Y7#o9Y1=Lp-G;E1s)N;s}FmJ;oTB(5#FF%@?x_BLCi#KWaS6o+jovZ@Yy zd%3#*=5+srgxFGBFkVjQWps}gH7vP#l2gUd20eFvp1o0wFP#lFCc`vN=uq*wXX%#; z0|(|Op)HZ_7TctZ25JUAy3xcKwNvjJ1^<4hYg8^9!0w}hO7e{;$6$jUl=S_4_@v^2 zbO&+_@g>Jt1;?7n3~qJ@szXm6A1Sp(06{%I)}a5DMwzwmbyNy+vs%~iM$_pU**)j(2c03E<8 z?$@Y__URLYxo3ycd$$ur;S3=!Z>XV{=-(27v4bbjet7!r*UvvM|NYDDk3ZUPw|w|;`F!#JT%>!x_~OfpZJGWhR0w~{7f2MFK4ZALGCV`%MhAo{ z`0@fMu75p!+h|lDCs(zloYKgUp>gq{cQrky9ka(gLq;#AR}Zl1VGN*WjSL+yLy5lm zaGOpV_9?YWOi2Z3$+3sh06-gb*Q}6`30EVXgFc?ax2c3`72eV#oIjciX2g~}#$`-N zZX&AHD2@T&FUyFc2kiFPbTdw|1lJiBPk#?<-A>dRN{4%b?*tOs?2Cz=eH5sX;=roA z20(!pnk>AjW8@InGEL=HS*bYgCrF=1#71e%yX%kns%1pKYB6?vVqe%*c8XOiSDmMV z?+zA;kK5WM=f68^03Stas=o2?at{fqf5}-AtP;U6SU9FTQ7>$uU^L=P6s3$kDBr<{ zGQh%)>fJacEy+lE^vFfc2+F?M(gg#l<8pA4)@Zk)Kw+ zMS6eeThy1y(~@h94Caq?sxTv3k8kR8{=Ht<>*^|#hcN1q)OZ@)>#f%03vN!4dyzZTg&<-vy}K8)Z#JETm!D-7@F&_kU4}k zSU#H8Bpv5k5IPe3rML(bGK-B4w<#rb|K=iafO5?@O{bwvhV*U3%1ZjZGDoDF=mNb5M&@9xRu*rqKo8ufB;{hx$oXa?4# zGS194qvMDaVsxl7FDT?C)KxwY<*=jLt6JXhUFl(`qZFX31cx z0GJe3l9N5A(sB1}O`N#_DnnW{=maI;fQ0=|ppm-^^RT&_Nm?07E`V26CoU~H!H9}w zLl-&TbymDgC<`w7W_HElj*V;cYBbk7OVQ4-b;zzEY~W(QLb#-}fpi_^aofPGg4fa5 z2ejX^`sxN@y6De~Q?kWNg+xpUa)FJ-;t@SI}xJH|sBGNA2DD%qBMxU*5Z_ z-*RSD?ht#c_|OO(gHCUPPnCgyrnzRBk{V6ppqhWazt>?Ct>=dbw81iEih~Cm2T!ZpZL$3Sw}hsCJ+wJv`wDK|#5IxKC#07Z{2a9u zX<@O+HxgRlE_~R3Q_rN>k!Ws;EKv7{)Gk5RckiZQWts$H+7V}^$sjG)Iu+FABmHO2xb5D9|I z)8t|bZ)}Dqdq=pw1wn!`4F^s{Z{+xnlQY>;S|o;8>ms_D+oX~zDCZpb4Sq>`27nU6 zpE$$I=lyKA)6c((gF(c@9S+4VbFLh6VLfbukP!ER z(ePpZ{dYFRG$QO~!YAbe=)x|i)*QBE4->q>Hs9qCM#y7jD=UNgo3K6@u+k zpuXtXWHpp0GnIi3aC(f{X;uM^+zvgI6rGaRR9RR?;Z|D112EINMjdqOz#x%~w1_Gt zR2g7N(wWYS8N`62BK0A$C+ZZ*0-cK$F~<2K#H=}FCtqqBFXC9e=i|f7YLZ-hjQbM- zd%ob@$b{RVa2(0$f-!6A)vq!Ac>arqVM$c16rpR;j~_=iMb0hj8#if z-#t2&O5?-l!Oz(_34U{!WaojQ-3*l{UWj%fKh3@@hqHw8?N-W22wryO8@c(CMTDWlP3Xk8;(D7~F;ih!ap#@ANm2CPG!kc1iV0%;09;1YnR+wq6p5dtst#~x)5lle+nZtcTA*h( zLAmY+6j^zNo65q=#oKHCEtYDAw>S7rEx$a`cr{DpEh=0fmxt9!R&yxwq}-wOLRW@Z zt{mjSl$2LuYj4mO-8coYJi{D?oCoHW#iZ!!L0{4Jhi||C{^u|M`t4u7xcKnbpMLoM zix2qcmtTMW?Ymzuj@3-46q><5dD9nP{NaE7^^1#t#C^Ei502M$lEwv8hYoYvh>;5% zpO3o6^=hXjNp5nRW9uEmgrUGmAjS=xM>;UeX$85xUO?M4p_W`z2|2`S;VGf zv7d5LjOs5boD$;!xoG3?ClS2#vtTHYAtNyo{45|}I|7P2y}XtV!~i-iyw&_2lzW(< zlPl_447rOmk{ePN=}QEFsSc(@U-Oz)pn?Q=B;>j`Om=7L-BfDq(?2~t!871LdX*aR zIB=18m0)?7B$k|IJ1QTLQdmYav}|rG+5WNT&Wy5CqMoQX zF-pH7G9H%iBlr=5&U+A%D`^N`!ELYt1Rl+qRUA8HFeITDi#Czdg>| z`YmUt+44CNU6xp;A;)gO&4sPVvK_9vtmm4WwJKml3&Y^3gkH=puFydm@%_b|dEJx0 zt*J@lpT=8b#mV4AcB3MO-N>x-h=<%t(F1()Ucn|~!yL9Yy25 zjCdXw9`PikyL&l3tQpjEw3_qbCKsS`Sn!TKvWKR?;cDDh&Imt~_ z^8h=f!^eaH5vs_}k;0=PdBg+^JD1ZEmrDII+`bT@P;lbyQ9e6vN4} z%5APmyt#iq+^x47m}DnW zW{9H$?B8CCGk`;CdOJ7EzEC172$$;}Nc@hXhGu zDZWr4Fr4xuJL5s!1$Kq)il8}!(RYI0snDByG{ZjG)Bk`vL!n2@ z0Q~TW85`4S5i1Wnssynq+Z^pZn#?+Uk+GcVkO87FqAd#vAhU20y4Z021(3(%8)7L5 zTYDpao+ zG_C1o7mLfeeALl{?>Ce6#5`ZpJi26_b{Ic zt1o67lSi;@#<{b<2?esmd)}-iO^`6IpUV#LH#jBH^%3;S&QD#=A>Xq;&Wy_W)#CV?Yq$urB2@K*%r&hhf)w3ZNL$n-a ztWMGdf~O!X2hP{#c5;p75K+*X`EWFKVEE|#xQf)WYil`i_HxYxCrt7lD`!P#vUdsa zfZOPLrT*2UAWu6m*{ft{q&^)KE6oIZk7VJ=@Gb;mrDwGC8DMv=iMg-?75`VlP!4-+ zA1_lenZo?fPmyBs%jciJ`|00)`{mo8e^r%Cshm=)P~*cbMGrsqW)?=AlY|b>)Ux-P1YqsTA z?)?V?8zs+}jRZF(c^ASuq1qS>r%|sYW~28zESWnK%RjnDUrP?6x8Ls}8Y-*+)ywt=}-%D6`MNk{`f{WkwY^0!u`r7zDCLm>`-DRAL$hJ8n&7em=)D6b_V{;P{ zGol9hby7wWJQ&_CCzD#Nt@Ee zrzeDd@FgET##?cGI^VX(?F)9PBM)^1@a>RWj zgc*6m&1{;6_}t>FN%D(blVFp@gZN}#>iTkLwVMgH;MS1>eR00ov6EWvMe!ZdxnNvn zFHFY-bcyw_sjxytyyN#$m`PoQ^snIxexY+CX>CX2TG@^q{Z#t9bw@j^(4S|EA%17@ zBY+jICh&;sm5j;4pw&TU!T~ZDngVatkTI=FU|A?CODw}|jxvJZoz<(0zGOvhygl^C z3gNzftk`NhW-qAkh1D#K6pKdLgNmVMC`VNU8ikq9&9X;lDi+1lZI1NyT3mIf*xlsT z@M(a{oeuX;NA$s~zNRy5_tl5e%aG?2(jD!PNPnJ@NNqe{NB5<>PN2yNRzfuOJBVr- z26=IcT4XRkdMDV*admI0DM}ooY6)Kx9XD)*P7@x>(kP?@s!m7Uz20k2kL*%H_+Oh||N+;h0DRkj4m8_)8dNi}j;83#JsHJV~O z1#8C$$jS}VG-9vt{Nyv^ogX+i(|#v0l%Z(9Va2814-DO>dC6N?p}PJasLNne5P0XG zqID#BCgJd~#8Zo<&CVTw9q63n(G-4ARIaV~HNUR)45Kj)k}2f{q*NCmQHnJfV*(=w)w&(Gq2K{kaTp8H zJ(x}!YbdeiJQ}6~= zpzvcs%Yma-%IX7;EUVJfPBWBqo%c4M+{i4K;{(|+shy$fN?6WzkTwHk&J-3@v{#cP zvN0o3SvqiB45!6vSJY(t%xiE{!0~C~EPwj>^Xl`Te)}_=JnTk{3RUpjp`(Hr$*q-R z(KeV$)pYU>p@(*o`h?r~s9+W3eSv}*05Rl(D}1jrS`3-RBrnXR!I<2Z84uLv%xK(f z*!`PW8vm6^-_)Uey+ir!j6(Rzqj@07Q5}{}CFiNM5_dD@bEC^3G;@}*;Mb+(gxnA%nwoZoaDoPB z6(-048ue$KTJ zT?om$%2{G`am+T)O$#QO)Ku;4BioqtdUYq`m%EPfSV9bDIrC$znB6Oupl&Zkhwp`2 zOBL_SrFRW_gh*;(e?Ck!cwuC&9d4%7@z%k3-YXRQCRlTeC84cT;gx3TpSiB5WfD($XLqRp|25QFR_Pma>zf>m^=$gNQ1C8&Yzlecy z&=w>4u$?a1r49OS5Mfngp){_u6LbJWZUO?BcD&$uQ1(xFp3~{m<1=&EP+Q};g(zm8 zF$w5#{;~JXO%CsNbQ0yp32rLqZ`U!rT-qp%1CH_0#q3^d$>QKso$_j$N^ZmSu@Pz@}CH&*>QTK&I@F8FWvCE}<7el(y<8vdX0${R@Uh0z$@7{I3SutIv2P0= zLDij4XDe2o0cc?jkncA7&R`#=GXgUps0U=_DQd?!?m@8@+gEZ_FJWSo@41T5qY&1c zGwg7;e|mg+MjYhtOh~KTnWk0N%VAL>&nhXAq`vA-;`Unhw*~{GW;zN3KsZBwmw+kO zf;L2gu&cI%4CllQEPcnE^aRG7onflX_6~T2yX9A`zEiYQEGwm>l$|g`UrWgKe7gtH zL;KjykwRd}_ruk*P8yZDRClf*`x4C*)?XL_%p(b>P(_?YQ&02f<5LV4F)^u0~18pXHJyo^d;MEI%En8CdU$P9>aC+^3^Cv9Q}YpQ4v{OT$L;wt`3(-5nkI zHA{fmYb@jAJca(fQJQObyBFkfufT&gI1O1<7jLMBI@)??61Po81#qtevZa)4f+9Xb zS}{VTw^XZD0tx~hz*?d<`5AhGM}RB59Zj*u9*nqaD=yiyNn;9%(b{Bebq(Dl;egolyU7Z+>LtAAf#eigg8Kmjow8!`-86L$wXxTs#!w~7T} zX&e#(PKaJ~R9&~f%4#EgpLPuIuE4jKY4vI|$XmlU$=@SOE5hKD%k!$B=gBmq z!xNBr+cQuV& z$J6xige}Mrjcen*kZ49NZjfaNjDuWBD8L?Ni=5}iTa=23P&&^rUa^v7+}$Y?9*R)} zf5>XxaJGL$xBDxI&pYwe@Ltibl!$>*Sfv&5+FfJiQJb)&!F?4mJ!`{XruS zsP9&saf=exbF|Y$6{Uy5h@lPOb$Gr~)&6SL(x7MRGSRJIsIy``RInLWi>r%`QXI!T zZ!;guRvDI{4WqWQP7Jf;E0Sx^i0v}vr_7ro{0^prF`2lFVYsOxxdCsk)KMi~X1zef z(~L{aHV*j9PW0nqdhFGQFlVe?;`hvGV!~(Ui0&C7F%i)Qtj>+3r}oD6$f#aA$N?4Z ziEya7!TEW%3mmUggI95GdHGJnhz<943YF zVE0#R35B{?{Pjp$%ig%wQs=eCYv*ICZIv1@$FwPUP`$q6@v^Q-{RgGPQY6!YG{3hv z-IWgd61neNcG!grRW?5YJnQ|3FD{}>(9Hban!@D^4Fd?Ei<_$mVa>mn8OY>P3kR|P z%+khq7t;kya4;m0G~-!DCWVyYYmY)40Y!y^vUzp>W4C)x2opScf|l0VdiFx*7ed+r z#JT57!)AT@<-6JRU%&hH=f4yeYqDG4m~DzQD+s+iazCJGu?v&GxeHV2cZrih(TznA zad;gD+g`8vS$iAs2S;m^i7JGw;E#mjj7qhHA;N}}{#O zgaF%DpxS~8@>T#nPJ>S_XT>iu=)3{i}&w6&Kdbj#syCaCUvq;h`!RzmzD63_=@zA&zatMW#S`TBYJ5rZh8qMMn5)dUDiip1I&BH4v zle<4Lb2qV;y8|4|I(?x_CCT*Gz~DwD-L7n)D?_LzxQG7A<7=-aI47u_jt) zs`SR4lwr`ijUhnM*Zl8dqv9=f@A9tpEwY|2dsrO>SnlSGV|M3P<{9 zWX0V=EG5|w_$^owG;K<#;@~&3?oHB{HLU*K-iXHOHKpeBMU}9n&rCimx(T&j930ZS z&a=*NnyfBE<W>IkqF;<>m0j2P`%!nP0Qm-p9UuRvHtq*%t3Lc3^Z69YT(JJ!0v`eEo zrFtOH0dzU|<~hhb ztJ-7yMU|X_;JxL!CWE5X=aRLtMZUvQ` zV5Ex=?+&NOpPi&%AhS0n@$d$FFH2oxhqCo<6$Ga5>ve4z3{S@gWC9e%UDD&K8TtVo z{NvN}^6sS4Zl3&aN2pgR>KZ4g_Tb{D5n6p=!D>{;N!BnuI7jtBj#9ldY)q2xAEhl| z*1K5b9!^dw%Aep-+3z<^#4L`a$CaQFpo51y?Op^Hz9mb0mW0P#^wwX@=ch{ z*Rq5;1G~Qdn0C}YC2up~dYE!ac-F-=8nd9D3c7@{j9ye>z*6F2QHgzyXQSGWS{O*H zF}hDn;{5A6E8-?NS(A@%%rh5t72+Nk{p*jUpX!b4*F2GK2kgXr|LNdjWLj}g>vwWX zmwV75Q35?UvqmEwqi{TjuQ0C7ReFxJnAl0@spC2J)S@^j7{o-&Vh!_1It~Evz6{b55L++?+)j{O;wXk=3qHYcLj(t)xgYacI z1_QySJT*C(=k@{sTk_u3V@ASfv{isaaiCB01uRTZ=O1!&bNXJ5tP(b+J}ALOTTkCJ^|&G znI<5~q^P?cz=E6mHkYs(vSrn`9$pCoCvBj(F#no;M*ZQ=DLymNj&d@PARnRA=zk;V zjModt4S;^~czb3eBL39m@CQhxe?1Z7c+_Z-IFBkAg_rF*PAybbM$?1E=tob`!}Z;U zZGiU~EnN5k@E{vr$YPgv=<*%`I|ARcdeZP;kW+cNo9mr*ZfEc%T!Mi&;00g=r;w*9 z4TesP5MSpx>l4^swv6PY1+f@riDc zdNX)mGojjq=>-0HC?w1(P$EfAL776Vn&k+~ys{kQ5kYH}`z_*!QH%1^Qw^ns>)fkV zBOM~@w#KVK@MTIYVIxG6AbJ&@khb6(j_k`%qcC}Af_*d?J$LS6c4KNNEO(SQC~FE# zT5i>f=IHEFj`SFwA?u2M_~WY%J?w~xJqRa@x;g%Vvy66=V)45a&wB>A8xCpUQV~05 z**5YI6el%*R=Yjwe^)7|#do#@0q5S}5kEKx_7am3T( z=J=M`=Xj{YK|7Q9mhOQ;eT?XMC~+bDaxP6lh4kqKEBIVkcW)mPg`>R)`*}%)q z)PVcPuLhX>B8QLeV6h!9c#1Y5%4lY0(UfVfOa;B4{D+0q4EbB?s9o13eA+3+*Hu|n z6z3G;Q=p#$XB*BqHb&(e`u>kJt?&0|WnPkiY0X`a{{Zy@8(A3CLu+zp)`bz9o1?7Z zxXw0{$;}Nb{8t}WP}6}OkII_AJ4=#Pl8)}wS_efO^A^2M8EMV(SCUH}zjJvdLPk*U zG0BwT)R7ysqxRu6DAm(O{)BgWc;<1tFQVm+`)3vo1H*!m!=K5)ny{La8NefEmcrK? z*;(@T`a;*y)ab#yK7?cx+nh{b&ZgXt$Lq! zK!P*MbR!vT?JSX8;p--Xgu#2>FCa&`I<5{HpaD3?Xf;t!DW1v_&w;d1Un=AWY(LSN zvwC_xEx!SbC9p$}zm%U>*cXpvq{b+$PDe)IhQVFB(9WvAQN=|B#w7Q-<#Ye&?hfo&JzB)P(`IcKwSHq&1Q{r0lvdM zHOK~&F92X>RV^+uq_5Jt8nsV6;bMx~0#qjQ1JZZrP)&))BUWQc8Yy&)Vy8%kV+f=~ zjpMc2eJ~G0K~jS#p`4>AdcR;}JXXpKLZ!+v2sIcu?)A7oAQP{$i{e01u*Ua^YMbSd z^AnqGxarcz`|LF12xO8vm(JD;iV`WSB<*M%k0!=B)M+y*i}oDGuve9s;u|*L)A^~@ z*G($kC|bb@M9UaB6{+H9y9~Aa3%;C-(SbGu>2f?g!+};SG+Dsdpe;~YKYo+QwluTv z4R(%GcbXljWaaUVb8NJ%FZSgb%T8$UcW3~9o zu#aI^@QrCLK5o^;5p|nZ@CP(&0o<8b9!Pi_>4xU6(M>uI$P!AHXIZH+YoL)2rd)H? zmVfx9@tI<26B*HOm6in4E!BtcgeWyTyCCKBYm#fJeF=2n$3G~*(+4$CLE!Bw<_%90SeJXf1M?F&%$z& zXK zcz1R&F%p8w%nQh}-EIe;500%R!lMY$0e!y{k^S)JA3uM8p&F6gd#nqB4{w_Z+;Nrb zl1{A2TyCtuS&~B)@4P=^2e^p0DVBsV>vBJpbFL_AY2j_mj)z1!X0OD2!SLwROF-u4 za^kG@J>seUXxInGCjcn%Dp1#xUtOv#*Ob?-@m8G}L31cVft4c&4hV9$n`HGoy>kO8hMvUt^K`^2Ml{VNDsHA)otu3HM<6%jKe7SqS^6=) zYocoejz;BM;#k-jxOB3m>%P$%=y85RwOgHOdac59u08XPeE*#QCT-63D<|O(+l=g9 z>x^|&)!r<=3+0`w;zH_~<%YA}=mR|ZF1nGHYguy;-AKk?Z9pI|O90>R^t;LX*pB55 zaR*0g;S;FGV1eAUW{&PH#%m@=csMpdK0Ul3f8m7E*LOSoOAkbr%JV%lKgZ*F3p_Mn zSP>Ry^0Ejyn_@B_rq^VAl65AVc~TXFn6N+M#fP&)i4r;!>?-!tm=%m!5_=vMd&zGZ>&j9*} z3p2@Z?C7b;p*n|KLED8nN9!pJFEJbw}>4YT|gxR24gZY5dcF0Nj#rLk(wVa)gni42`?qm1R+bZFOA&OgLBGK{ zGf)v-CE-H2=`Lal)g1*Q4J?TdsxGC?ss^-22CK_}bOl5`mmERqbYxOuN`70I17&vy z*MSffr-*Htv@EZgLNJmyRY}EEmeagEy>VMH8c_0bdUkVG@37|7kpmXEomS28_Rz;U z)nBRt_%jm#btJ!*|D-ZfHxB5{G9tin&u1z1qP>Z}hsntIuzehQnD*BB5U0@;9pyi( zP%HAEzy0;6fBWIP(_cP+``6DWm}$TM@ZGn6`S3qZCmZkQ~iXGow4p6kZ)a zF>j7roc$wAwe<$r0eDiK4+aJb`xIxQs|UuVKg!N&Y9NHh+xaA1t99ErfPP>D@2R0+?@NS7PPu7Pfo3*XPVm7(B_K-+h*b_t`gUk!0zr%=m zcuO-|PxW@!YC5-JJh@V>(=DxDYJaasY8GuU#%L#l?h%8x&`=2jS4Lg}!KZm5_6oKH z;W)Eo5cge}u3FDCuPB>gd3m)P9!jCe^-$=)nBo#HTtQ5yD5Cw}wTFQ-dFsHyyBh(1o;WLs4 z9>Sr3AT=XYm164nje9$dgrK;dR>vi#MH@Sm9|;q*?qoloz^qg+E&U~vad)&s(EWM* zflf9Tu*^$jb0N!sGzk#C;QD0drQmwy^G|7=?QjgBFo1V?i^L&hIv!DZafiP4K*Ovb zSjA_BV`7EjLBs18c5YaDDrIWxxR_(f1@Mnr8jTy|gZP-y0imPI?F#Nr)W3N^N6*~h zA{!KxeT8I!^LT!YvP;%PnG=R3OI#1bS%xLKHk^-_js*I~aaoivO2LI15Q-PV+Pe&i8Kb4d25Qb(p|DFxmYYOd^8|4fyL*PtcenBS(_zgZDKF+MMX2>5$X+ls7ln;7Pc@+l~ zg)ouv%c3<5e^37Q&;HMI(yK31!APW&S)o{JzzivDmsoO&X(vcM(5yMAi9Bgibntr- z;RI<%hX1?7%_EL*cJ#9h*V>bZQkQ>6UkPCkx4Yh_Qqi z){_My6{g**+fz4{w8pGiE~nx7`TaMh7yzFkze6Ps>gZUSK^k&ME|yc;Q2j|F4eBjf zQ?g}}#UF*z3>{!M8x|^ay@nmx=KIy^cpplKtA$Cpti^?@Hoix12I+0uo|n&M5gHJi zt9#YOM&FBL0WN`%2XXdaueNfz7rP2riTq=e>lB#)*O{-Pe%TB(Kib}COOox z24Yx|+FbA))Nqr6o1)VMKLmg&Ng3$U+uApXs3!nCg??E??_o# zzxFd0aNUlci1z{gfwF={KnQWJdN8Sf?TEPho}K3HEA` z3ZUcp=U;N#J&>(3Eu7##W+COJf|8JuF&}l&%>+Xuh$^arj3KI8kUdWG9rSs816&5= zd67a9KP5^m&?n(Wg{cE-3tO1?q62BUjJ$GGg02L?cr@$^8>&_*O36nocQ*f(CF5wM zBOAwaxI^Zpw_QL9X2g9Ci;J5ZXaCZ%FSw5k_h4ba@` zhrB!0o+e7hAvi8K-aih?X>JR}3eYUHxQ5-ZUTs7k$uE?Hq(TU3;R`oQTsTTxl1$Z! z9tSBJh~zOW26k10Z<2k;;lc|@1KBXjr)z?$nmC#a#X{ekyguYTtS@&qu$f@HXBJgS z*+!nS;gr$sNF2i~mJG~CSN+a$xqtI<%w z;FIR{YSCte;09BPy3zc?B(5y ztORs}X1eg!4%Z)0uweKS|C)Yr@!>x&h$TSJpI_lXg?{-Z{^0nLGKM@bWg#*-~ z-=i7%ugHh_?~^Yt{`-LcO@Dv!e_s6lAAkNm&IWJ&g8#Y2f9cU*Ui{uh^pp!d2a^z9 zD1khSr$KeHK%P{EF<}SbG=(K~%s}x;#fbN5SBucU&EVOhVIUaHDix?%2(_aX_F>F* zD0yV=`U*Ix5eF{2mOXh0tm9nrklX~dc27prt+7`s2>TT0w1g@j;8}o`NRo!eo#@O? z!Q+I!o!9wSU^C}Nl48*t*AnuZQ~*imp*@9Dl&JJxT?w>0O@$z-%f-rj(1f%=7A-=I z$F<}fPnvDeoCivBN7@-nK+w`k{rmUfgdu2b>E6`1u!o%q`V0y}`+xi=R;rSDU{5aF zI<*jRABJtoCB4xlF4--hL#vtvqe+w-ytN?GsuojkD6RgPd-dj(oFS~onlhNxdl^AX zOZ5SOGY_q!SRAk@p`gvKwqkZS%<}XCjF{rZL#~XUyrSfVvG(=D-FkI-XtY;dtJMw- zWdl4iLRBVsBX`TeVT=3uqos0Pl`=xCFGB?ck7YU;Tu;L^SEG|@Mdmw9m7qgu&zGpL zr*|KX>dn=BuNalU;-o` zUU!Bxg~N7*>Pz>BL!~I>t6JSUYED`x4cSJ;EXwcS_+^l4)q2L5U zJno7uhr+S|rl;K}IupTIlFrD!wV@-q+-% z+DDzuQmhRPQ*gxnShklFQFQLnv$$S)!%%O$LHmz}Z8@`r+2Sff>G+G@q%a;0-jY#y zHALf&eN7zL?5uczY<2O~+`JxrOzNIGR=YuEJtfV0;gpwL1 z(z`VPb@R4^lWT@rS9C!LW$XVAdZ@YWM>FzqO`asEZ;VxTm523Yu9M2M!Y;WyVUFas zM6j&;6%fJ&*dy5iR~J10Wna)79=uStg+=zVQ|KM0ZQ@k$nDZ5eNlnrkPAIVe=XThh zX2?%%_NAerA8%~64MgT)EGhg*ww(z%MLGBw7_OruS4g?TH@dedi6$)SZmXmt ztKK^2?GF^SPN-5Yh8x)kLQwMXJ+70uN-zU+A>3*Zl|q;?+t!3Ve6`)>f+x{#M^ixz zrPJNJ*J#N3UT8-G%dYZTB-YqWu^k{yp;823;hV_{mGMiw&p_MFxPDV7mZ8LbHu>gvDj1*9Rer zy?j8*v0B!1b8KCuM0Z-JW(V=GoJ<6uPBZ05gh?j$1d-Q-;W6L9a#GC+N0U!D zuWWs}v#8AkUr%Sgxpj!^u%onyGZPYhCMMoa(=uyNv9xD2t~#951tu_eVqn}qLvjfbdi zAmx{|ZpnM$vH@8|tQxS|r@8?ZhA;xn9PPG#ImVDB;Wh#O-`LcW#&>&pv?T)Dd6#nh^CxR7(C@{PNqi&_C<=GiRZ6$*J zw0RgM?YpN@z$_at3={kqLTcaeK6o4^lPft(rE#hoE8J2)r}}_|X5e+_OC$-|2}~^` z`cum(m0m`ASfuQCY$r-_6qA9`Nzuf_!{PhGj8U!n>?5?~vYEwq9>#K>@!&g`W={oFR%pq+-r zwCdPl#jxO1D7+k0NW~{Q9pG*>X?AU4vD;Rdx%3l|)1;Y4MRsV5f<3xCk*i@0OlQT2Y5gEBq){`ZXw%!wKbPh&*Cv`oy9hmTPmUrAT};Was82hD2odFH8PiQGIS(8%2}b;tDipYCaulhonq8LB*j6MQ{h43%PWaugexZ$0d*O>l$7`m~>`7NS1wB#B^wP_rGNXm>A1G79(Tz40!n zqc|P1hrbkJCR6ekGI2dM#714MX^wjZ<-=_JI+!-%UV!{pia3SQpWi>z&DVl#)L0b!gaRujmQEA?*Wc zL3PmDVLg$iE_$0EN%Ff-FAKO5i_c{=XjI5_g~taO^!(GhqH_p%Pp*r^ShD4{G!@8y z>XuH5CK%fI~V_D5q52!vQ>b#I190rwyY4~oZ4EE!A+W8a5+@P0aZ zypnLaoM@~Wv`69wuPlCiOWZv0Q*)K_&e1I0pGjo6O;8@N>wxiDj0Wn(AC0?;!$tQq zgf9V`!zt2-m_HJX+MH&PO(>!AR{Q;{Av+RT&}@;Ar=tM>oU?im9m5CF2!)M62FU!t zDgHe>lRIc*_6u^bdHxmiu9P@Vf8v>exGgDfE8nNZ6;puHf_2y5)R6b?C1xgKs6sMJXUK>#eMisi$_>^jOjse}|? zmC#^*5&q}go^uqw1uAN@Vy$hMo#+K&C27GT?Ntu1wBG@ze0*Hr*ZGj$2}T8q$-eHX z5TlSGb##z1R}E+^)1(8&zbHMhYwz}`JtR%+w7$9w*)d4AwdfixD8bz6 zI6=0nROks4Dg2z28$X%hm@)wc#+^7+j&XuLSv37PJUJHZ9)0k z9j^{hXO<39_BYBPp)-qdelJyHc@&9VT$;-nZ>}`#l)v5YSJ0i}o5R3Hc1o{NbgFn& z%{?rgIL^?kCf3EQ=Mn$n z54XD7apBhEd{Co{Td`>?{uB1fq-Z7}YVC1mUIV%#7X~D}smof?Jwn6@V(-ZUt~PD| zw!05D)Y?50OzVM1C)Mds0*}3bxNbBs8yok`6r+<=jsfn|-Tvv~3TS;6G0m`cdlW6!r66Kyt4Xa(o70HN|4k26yd+$x11s>6Js#HGEgz)c$a1 zch5|;ZI*R2pG@#>f!}qKLc4k6qomL>i)glDr{pq3@u-{W(VHa7F{aMObZ7DAdC(VK z0u-!p|MtA-iik93^ZCVc@iH3i9y8;zgoU+!;4leXA&qx{vEXhO>IIY;7|>G)AA#vP zwus`b9@H009+-xhmBWBngNL?K86o(_cj!T`rPuMoDs0-HVat+~-}yAyM@%qwJbiPy zR(zYATk3g3vs?r?6P4}QpJ89d9|;T; zE{xq1)jCDt_a# zkS9VaVoWBe3cjb6t}Zs~9LJbIP;j=u5sjF1GcGDA-($iC;S?09Kqsr|ZP*(?DfC@O z7_yHAfD^8DcupMUZ&@VH_~Cxq98Cu4@{nzm=o28o5p&tZ})XcgawO_2bUqH}iRc=&T;k`)_6$pPz(Lv$n8E)3Z2c*}a>gGk` zNJf@9E%C8i-tp^7l`JzG_=x34xr&nSfqv9jUMbQzrLz0dmdJb@QN}xSMJ4Wzy6NN@ zBu25APLq|a8eOncQW>FkpeEwcjU~HgIb5c&S#5cb2kK{z#)IR-x9sn-`g&f=?Nckm zcPvkBZW|(l2}UQVv?Nc!Bj#|lBfUx5inQL#;i_62AYg61#{=!!G&fe6M-DkztdFm2 zxS&d~3ivjCkgr?YM6crEiK$3yA>CzOUKMAT)tkO&F}e2CRTTsxT+!)gG*Exf=*HsS zpp7syozg43DG{4lRVXVfFa!jmi<$Cjv)h@xr^#F0cP}u~x;;FdAke{Okmrkx<&Wr$ z=4oilX@qg zBr?fiu%m_rma7u~aBw3ut5JGX>Zyj*>PP7@~5P!&Bj2JG!_xLmi4FDvNBb9!d5LBvt{>{k`zz?yHX(--s2hb9_U+@b+oDruG$)z9Z{amvU@Y z&-VgiLe_30v{^cG5OhUw-)UYi`B>8I*M&@j{E)r2p2<2tzd{ zNnbOCr63Odt~G+Fx*X1LOgLjHHMM(A4A1OmDughw5Oc{?w`3oR3M0U*>l;`YOTsv% zCfydT6X=cRYbz_i+dm_C@fKw^BVibFfdm7OqHq7&pE zAUj+vNOM>|?UC1CVjCFZd}=~40*D^Q6{4P?VDu`~-5Nl99!eR5Gr zT@`DW^A8IDyoGTRHj3wG6nldt#`+L_)>9+}pPI_^DAaGcxV$qd8*;p1W`5M-KpJT( zUQ1%Jz@+u3+g5;!ODV9g_$5p;jHGgf|7VWch5m$qm3XXaouf(G1&;uxUSu{_E9UxF zeW9%RprsX0T>`$ZtK6fBZMZ{J1P{Ikwy-#_)<=tjU}tW-;??|u-A*qpk2&YQFmQxM zL3*#D4uVfxc!%qW{bS)ej=XzETdl0xbx|oZL0sK7?WJQmZ{1uxBRJWy z`y-UabM!l==M?meJGrXGoIuWw$EWRQdLoaIiQM2*kes3syfW>bpO|Df&XebIk;}SY zGOWL09|}mmj8a2|j;PcSAoA{nCwih+S8mrrAa4 z1(Jg-Lm3dv3rqP`J;Nue+{|SJV{A*gvKrR~-k=3F#U1Iwr7U`?xZ^n%Awp$BI7!U% z4si{rJ+%Yz<7O7wK3h_Z`+LXcJa%WG0yuuM8q@&6>&W5ff)98!z)Xhm>p5S2eCHrBv%iO*E|@{ z6UYd}n}ni{m?yuNn*;S;xaCUDIs)gH8)0>kZy3TC?iOG!WAT}OOYEa&pLh8d%h6C!9Hvo|K92ue*otUnp2K!Dp06+Czvs97_=LH0I45g)qf z^-q%!7``~W7TJSG=&%Dt{RxMkk_Rn^Eg~Th(bPEOr_TeosVViNI`P8FTu@eWU*af? zS$7;YV^r#@iw`iT!8x-z*~$rlfg2(x`gQK1u5tLn#u}l6JeUhuw&=}ne21_|7KH2v z1~@sH!i^dgu%({MQynWUB%uh#T!lGcf^h5}UhWU~-Ev7hmUdf`4(02qGNYwXliI=^ z&o<}!BcTzAnEFrz;mz}OIixPkXN6~JeS5z}pHv+=#4bo$8zqLJwE*-!a3N?N+uf|3 z)5#fw13Nv}PVSUtRJ_XaaNe_x4yJ{WYx;FTZPsuU>7WY)`;sdLWCm9y`d=L0C&vTc zPklwlD$yUewW2op@cQB$M`1IqxYg1P-cvhnG=O1`Yc{n&7c_-N;$L}D-d`AsIU2d^ z$&G%ah+9fuC|AbMw?l)w8cecFB4zPRbh%)AuqMy(gg1iKN9fDTCpap&&>S(u+e-Cx zE@6BQ_(Td(KN#mdoT9_#x_BD^ZloA=D0Ia&T?p3*WRdd{T>nH$42Nq#8h4XIHtAfU z{c!j=mfH<#pDa-SYt~^fL?y zN{Y(TvK+oFpdbt$2F~P>|GYhf71;nt#;=Js-om4X^fdp#5$7Q*a2&t=p#Em)n z?B&A_4e9NeiU^2k+kZR@qev}*3wZ~9DZh2A$mDtKN{k|p+O{O7!DDX<*?^XwuPw<^ zLa=MaFc6@arNM_qQ;42Wi&r_jU}x0Ea;?F37QR>}P^cFueYyP&B2{lc-WP7sJ|5h9 zH^DBQtPkX~W?S2Tl&_u`AAJ7QO#2;|2~~E9OannM>j#$oF;|hn#feEqE*hbOkr!x< zhyS;8i<-nVl5}IKd!3rJA^o_s9`azyko_1Rl^8cSB4nF?9kcnS;yr#@A=)ruK5?7> zB!?p}KYJUI&k%tl3L7kU?~~Gaj>lP;@wkWw_fO|6$W!ghJPFyChg15bLUgcz$|p!& znDqu}Hb{akaG(v^v%%fxQM>PSTQixhxQt#$t?6MrmEjC23&N?$XFruuAdJ>4$M_$tEmEm8F zE$w)Gcz*h5e?&>s>!@k!e?L430HT75NhS30gZ{N534IHrVN#D$0Trb=p(e2So)PGj zvZD&AXUM5>0iz>g0Lau!eQQaxaL3<*ZI0&h0D%EW`VY;oX;_4_*f!>TuIS+=crktAKxgGWwTo~(m-BbnxO^K z%=>BkEt|%g3059S7p_Xh>Sn*voqPL5ovP3N#+?fCCiUle$xtD!7n@F*dI+w_w0Dwq z4$1|q*rc4EpHM}+6w+iTnrgmwiXA=)F-d7+k; z2$A}%buH%UjB}~=Ays1@h5q@ot_f3K{1@a(nC93$3^LNp*PZB8p~N9Lt}1b|c1!9( zsGH6X=IjEg<~-n`S>mtVp@~E%C)qukv`WPdhCev#O>+www|^e19=v7nWbV1kvy1D9 zOA?;oE=xG}rHco{8zuoK+arbd#E?CMC@)bO_Tiyrd5Oeh<@}xVp-*~YeVQw6w&V~3 zTAyKz--g9he!Wl{y%deSUFhhpv-dO$xe4G4gQu;<8XZp>wWF@M1l1hLX^o)J4cZ$7 z4j6hs^7ht0Etf)v(OSRbmMe*QZ7r0+NOOUCT-V3ngCqlu^ssvY0~|;)K4$B)IKDYl zU&!t(kZn;!2=4^EqMEOw0IG{eXNNuv6!dFlt1EY?XCKhX86s(IS+>)2xhJ6d3j@KR z2TKLCina!1$|IuBaFRq+VWk9+7=#sqQv)ex7jps3L|{FoUQkp`V@;c)`9&zM3;HSS zJYmB$Vl{8_u+7X67Kqh+mLoXii=~NTjtL;*G!;vvy89NQBmcOZC3M0h(VZu;+1%QFmOcv+Ezg&l$i%*}%7R&C&9H5F0@ z3p9kWuNwh> z&BPczy(0aJPZ6Z?Ui(ZVMPQHPFW3TD+CojwIjMyam9r>gcF;wrkeRTv>{6t-*$UMN zlmg}*`mGcVvw1oo6zw<{ScBlG&|O&d1Ta=z6npMktT#Q#rKn;5IKXi5j?SQR?#=5G z#qb^wcYe5QQBUu#$!xcqo1yVE5tsR(1LG`I_w3qD!Q?uu+=Y#boYbTJXDXE%uR^yM zd{MCR0U^97Gjp*|O9tzy6cP+FG}*oafw5C1lXAZ6WBjot9HC7_4f9TCSDMNbL%7r{ zssrm!9HXZag++qqdj78(D@t<>i-^nP#kDJ}JRw=idTK_+g1jdL&^ItU_+B9=ur?BA zAJMsTf4D+X5R~>n_|cC)|Mai+N7VN^V^4*u_De04Tm<#k$Z7-&$&aWaLFG13MTCbZ zj;biKa&j*8VkN+hDr3F-iWAk)NmbP_?Tk4ntB&lC=h*wSz0ujGM)FL4vcrY!11nEdT!4=X`tIznXj!3u z5I_D`|5wy~AOAa4VVF?tM;SH21dzAq@ah-}h z2@l&%FacNo`o|5UYX)^xq*1`+85RqRVxdtbP!$wPyqj4N;s9+DtGnpbc}w7jYHaf4 z1tJ9KwKHrRJfljszdR4iFk5A;9Y^gglTz&h7LnA6nkapr-0_@rvzaD%K3JR@M%4(=_H2;(&pU{&I_Zyhn;Ev#StzbVYS%C4-NI9y{j;<+l4BcraSv^viz_oVN z;V>hoN|NHKZZ*)O>CKHTw0g*?S@w;B%Zo*=>%>Ymk%Z7b?l8K2$?Y{!h;e`pltL*D z(K)DOGxq~n&Wwp?*EQ4(NLA=;vPZ1VuaI;@nm=R%X|GzMkD!~Ix66zw%L?tj&|A!&H(46h@Q1!O+To`TSP{ zBck!3YAI$2DY{0kBsLBD zN11g#s`P-42wUzt80a}p8N4*q{@*k?N?`YZWL+LKPu!hJPfRF5ovcTT)by*c`X|tG$ECuw4Kb<=ZuDsIc8~ zTx%&+S~Yg}w{wK&kbevY;&`XSitIB#(ub0^Y6UVcfr!5K5*u#H0&<7!M6J5F6k|(( z$g-;nVoAyfJK1z%nj`$Gb}K6oI)^Opma7Wd%h^^1LJQ48j~v*|AZ+U{5w=^5kDgD` z9(F(KXKl8HCIva07MQo-_J{cb711Cr!nL(ot2jk5K+NGjs9Lw*9keuip=eq2ElcFaxRO`sP?Kr)Yqu}2$J-Y)Yn9Z(Jam`y<|ebaxHp|9)Qob> zpugu-CZc^?Y55E2Ld)M*4}`PIPg}Uy2+PRqPZZihk5tc3e@uhL=*{WIQ^44ofq>{v zr%x{m=_>*g(oOcPcG}(nY$o0ha@7x0P5yKyeBTV>oaRl%pv<7;9VXTKu z4)QMn$+Tqga`!V|m~ewiw~cGcgIqnDkY0uZA~5`uiLaZPsomgY*mfqpj8!VP>!L!X zXM%y&_m@X`^;5_3MQ?7$8IUhW!Hq;U30gCCG|jZ#C@}K?rwnaA7egZrV^Rg8yLSu7 zxZ%iA%eQ9C_SwMK)JlKx_Zjo+G}0-qLBMuEs~_Gg%x4Umb|*S?>kaC5gDfo=e}8Hu zsPc52r(1J#S$mQ`U$~^!$BQ%Aq6{k0*LG4EJ5XJ+J!ESHeLXzPpl`#JOT!KH0!csn z^(VANzkhnO$S?oO>+qro<%B7tmsNi?z`CXg`@*$^=)jz!9 zgA;>jMk;1Vr$P&ar)C*Aauw{=#C|kzyjgK{=iJlh0V4fd0+13LNMko5lRQOufoAo= zs2V5gTn5U@s@#n_s2$O$bPcDf^(AB&b%LZmL5CIk1X1cahfSRemTmHw9_QVp!NF$U z=s6M>>f;=>R}Jg6-h6{%?`VhIyn14ay*};L_5gD}bd5o)H;t4%OyATOkIoOD<{y^e zdnkcHQ}+wV6`Fp$d^R#)^F$n`$(c*cPO>TwLAB}-=BLk1?Rp=69*d<13u@lBR0J&j-Q#`L?fqR@#xzAXBz>){kzLn(!)?BnWAs-k-> zAi6@eg)zQ%b1Jrq&_h>fv7Dz7BQ}?Ka{q)pL!|u>4USNMKy^LRZv`2B$sjeLDZDDL zTd!#w-jtEw%3_``r#Un4e1+^zayCh6YY-TDsp>2i$wGw$GYi(n4qId|!XI?MN4;nS z0_>|PIrL~c7C<(9TcFdb_0&Ojr4E5dSIC97 z`D~{h0bW(IvGOfc-Ym*)F$)hgtN;-ihEu2(kt@%IW`Wxxb0oX)%}j;}XT-A$)km8j zVS0y%l04Rt`9upn=qDCmqhFe5aSQ_KG@=t2+STa%tEMM9%M2*I48?wfM5O~lP-&-v z7b#$t@#BNC@|3wXWH&6;<{mhSUaKpEVry=0xqlQggZI#rL9WnVU^^PS8_v-dQLrsV zf4q}*!F^cK=J}IpUCB&gw%QsNb}BbiGiq+A;-?--`?x)_IfPMLYqxsBP{^t5$U=#X z;^oWX6{W8DH&pIZA5xtRdKMWQ$ksJ6y2_@5n+HZ zwdf8H`~AK`aP=U6Fb^_A+Y$eD`|*T_%l2Fwfo$Jv1cE_>9-fm0r6w}t;UNeZFUP~I zlg$!s7B3LlFnStrGaVDqkQ+t@jvZxG99`pIChEtjDLls3_k#4RRvwrPCp1COKCHlL zr*2olPD5XFIZ)afV)i@H>(s3D8|q_vyZ+>2vuVZbV_M4V*BLsRNKue3l|}7lKvP}7 zD$P)4M_N%X=5F?!-_&p%w|Ih(R!lA|h0Y=_8L0?KD_vGQ_^5C;B+`ehfIX@<+$w= zBy(!}oX=$YEQDrh3eOY3ar!KNwI9(B8uq{3uEG6(Qx2|qIykX*+>VM%Pg)}4@?H#{ zM|K>PNQq3W5+)6%OGnU~s$e8a*)m7bzt!g*6r~pTg#3v{+8jfUkPW1)_o4wMEEIiE zC}AOv^V{{>73lS1W|m&KF?vhy0^~m3nS)9)KqP}Tioww5>KS$&U|L(s8U)|EH`q#8rbMM4!SE#4-C2iCutlkKoA9TC*V<@RaFIZLOJ%g2g4Pnk$psJ*u(eDVC=9 z0tpp`mg`zKkcL-4Eu zC%AD>B6))?tdC|GxLeEOd-yRfFF!ypRl{fl?(jDWpRU?mia_MH1t1n|8Ulm)BzwTv zqt}s}V#ERE`hg4A)svE3YE~&W(T1BQzwpM(P(#fE_jF_Rta;jk-KrT3$@3%3bzYG! z6kZcBCj-G@C&NPaOazCLKCM61t$3|??{jTD>xgrBm=9}W(c$|dpd(~epydiH0_P&4 z*IT7d_>=T{}}U@%APGnkqq%pMSI`3H1?AbLf{f&)5#Q6ljby#v|Y zD7+d=7!G^GXE>M5w=)b1x=f-VPac}@^3Bp`mYaXU7mL(79U6$PgGt;ikY4c~S4^!z z=Ij3O_+lN*kZ_Euac;uLJt8je(d!hVX&UYNW?;>5LY2!|G5p~{^|MiFG8GNB(qv|X z108Dmw`2l~03AOj1_&wYBHt;}R;+kKK1-tkxi^&7=kZ_g$05+V#q8<0-2l(fQRx5! z;G2m8kd<9`0RclXt4B1YL3ag6n=t1Vz&|}@fB^4IHbh8@0keQmR=ygjI~#<1thfV+ z1d?w69Lnsov~9S=^Kk_xSRz7uFsJ9)0r8^E2Eq2uW}jY+7}<8V6(bX5cx4cy@&w$% z`3wmuo?R>?(+LM?jw|*iddvp~C$`|FTm=?4eMe|Xak;fPb&^sO5k;T3**Au>WOuT- zq#P-lLHC?dTD3aL!}e`kv%&g-0ZdG$7$h{B4{q1htx!}a!*)^h1kgx&hl;MxhXSPS ze1_0Kb9guth*x-NYV0m5x`I zJt|(zsZA`jzU$kS*Ey5YB7YnT)bZ-B=vxR-6W1i#yn|iNg^L9A&eY0~xs_Dn%{VL4 z%eUy8N5e-*6p+zm4XdO)-L*L>PEXaH1ssEdVP$KQ5Q|r<_>Ws79f{hw1)=i80SYz4 z{4Eh*+`#N6NsJbPiE@^R@ImusblJV%!1aDa|AYi83t6kWD#I32Axj#;gvP4jjI#RO z?zRikk2P|{2#Mj?&JyT~NIqNSYp0M#k)<=!@KqQSHh=ui%?YXpV6ev@LcQw8-Ey>q z7_lXY=doi))|9Jnt3pW?+d!8mv|u~4+Ett{FlJ3%&Fe~BnQ&KYS-??-I7>G4R(oi} zkIAsDl^t&oy^*we8PJ%(=!g1g8kIFT>sppC=F@wIMH z-_gzY+4|JmDkeZEzDAbxTB9xy`03&6zFJ2Dmb5oXi4$s$hAXC_W3 zg=YJP_}clDC{L$oYxVG4A%c;6`|OHkV;W8R+4=b`Q!pr4IFW%86*m4HAu2GWL1d1& z;Q<(~j*r-}i-1b`m=yb>kU!*9RCf zZdug+_Lu!HKmYr`fBn6E7O}yQE)cg;^sS8Z02Uly#`hIF{?FQNsq4Y@DiC;@8@uo})M+iWrx*igH&!ED43&;-H-ERBtsk|EE>97Sz~aOX zJYaW5$SyokjeA5ZnMUSBUGX2QllqPTMw-g-|5`2hq+b0Ti z{MGZe%gXcfTMI5q=7<_&7`62~cT@BzSGz52o<5<;YspoCbhV{OajNhGV`z^GY^fE=%OzCo+P-(J6FllE}PDxI4 zoyqa=03A+DDlKtWlq6ymMZjP@{ zXv=l>m!E$4`6rqlet|dfcYpci>+$%_H~;?K_y6PT@BiuSyB~k}*Pp)r9t;{wWw5t* zZTkGY+rVdq-1(1pSx|SC)ufPl-48-SfeS6Y}Tft(pFN_2w;CG`D0J;JF9Vu!y~GnONekOk;0OmYAC@~}n0zyq58 zu!7WjWr`uIMum#Vf8X#w*0;A-O$uv5P9WUQC7et@qOMjiIKWLU33YPD;A&6LjT=VI zxCI(fc+bn_VjkAORDo;(t%{tB0@P{6_u6Y)>|=C(?ORX;kA)BDXO8e-Ys-( zTslmdi83`7(r(C(ymHJ7s{j~pPZz@b1%sFBEL`)DonQ%g>`KMW+ zu}1zTDZPw>Y#ofxV5Pm{gc{K2$kK9_S}Qg(n`BVP(H;k}G!sH8{>VXINr{UsWuN#j zgazc$0MO9!NQ=W^&>sYf*RPBE`~{lj@gS6+J51_hQ8_7ft1hRTssn62Mz>LjIv-FQ zzz?T*Jv(J?pd82DzQ1~`NB{V8CQ%WRwTd6|GSK^oGGw2@>ZymYFbuO*?>9|{L_p<$ zbbX`)V*EVLelV)D=h5Q#5DoQ!te-|C<1Q||6)RqM;sQh5By^5)Lo;mm%81Ji@Mi#x zaXtlE<7$stM@{~!=pKL~4^_bc8^wLQO<$dB7hv>7v0Pd=TYJ{(lzGVX3-+_JgaLAS z_9MP*9YyVg$_Rr1dxXjJ!v+A#W`eRe1EUDYkXOs;I$tNyx;&nZJkSTUS5yS>DjK=U z2ok6;5SKc7Pq%7oQb8jv7H|R^t1tc;(At-8vSYe_kccNc1MvOWo zWh=!5yqs?opv1Yk)X)WFv<9ef@$=0>G>e#&E0LcMDv_V!sz^|KkKf|52jgWo;;8{~ z-2z3m&9vo35O5Ta&rc<$#*~`KG=ik^u69Hzk)W^gueG-L06Ef(iX9{ksZbk;Hw?K6 zh0k5c^Tlo7o*5yQ`~_wc%X{-VK-vIt7zn9WE-!s+uuAW`7@i?PfRkXG&)nu6kCKL#J!Y1QnmxiBAc8-TT9LOE$E8_47!)c>{qA=MY zCR&n1lv*0)8`iOa|KZz$ux1Hr4}_4M<9yB~q!lbfegJ1_F%#x$2|ga~6j9fVCZJur z^vOIq9&0@H6)jVP6dF+4Wy8cmJY}u0qU6zxXAx{#frTw(%b6^2byhP$Jisp7``?`| z54C{cD@jbTEGTRor8*_}7Pl+w8jG`7;;R*Sssc9f_WX7uKGCJoBxeAMis+vdGc2l3 z>kxy7TgKMP8ZpNJIawH^g-j|J_jeVOld$rJmfNs)JsjsSfgq@e!8*;ea+%GDt}sNI z)f^$;L~s~tiY(JUY=xO-%%M#=uy)fpupA~t4%LqiXqEtKGLH)lsdio(ytr=z(s5%> zBBN@rU@~l{PXdUPQ$qMBe{F|IrNKa%`ne3yFbEHhOpmLBLNVTacxt= z7;;e&2l-q>y_%>Re9G+fO>7SMr)PP{6Ob z4EY6Y>1|gL0i^7OL^Svn`c>0XsHl2eQSjn)~*jQb4iAw64{oB z*L^{*3TC}r$ivSBCP1lY$>e7(tIpG_T!>;23@}ZwWRhAujN=yQr6CK8M zZShE0c0=Iu9Q&gfhW@RMM6cG=5^mSMUkCA(_0vdpf}W@(nnFj1qXXa`&oc;*lUP(k z!p9e9Mb~Zi1XK4>h^Dd6F}I^-B$Htyq!b0LzBTSv2klm)d(^z%qnsJfeld6QqT<;` zo8V6Fyiu+vGTg9Ev0pKR?fkmtUVnZOq+LLk(;#wK-JTXJD!^UrPmo~D7%xfETcWhP zG$GQ5?6-wa(*}yS_g{)uc4D-_$mtwGwMih00!1GTfgouXrOeU+8qM!@_rO|tKm78| zckkrPnJ<*mDfqXQao0FDt=L?QCJ>75vZ5kb1aJ zBxGahz7&ABmPNH$8GhbmB_mw8WQ?m%vq_}`(g4>-rc(`o1!AlD6}|LV*-LK}d_JqC z^=}ONiU&X8>*F3?y%t#}2&*~vqrb7j$|X~2^ZNM6X0YYTPE8n`^~tGr?t>$sR(GQN zO?OyjrY)P6RT7^il)}ySaf#Mr_z{#RAz@IyHk)L8jEgdZ>vHZzAz1zwCXvpD0mqqI z9dezMR)@YfOJQnQEWICUXiJQUj5<@PAX*f;e!>maHW(HUNDdJ5*Npgj-G97=c0%SU z3^s?W^=ueT;<=`vjodjcr`qJ_fxh(sV^kkAx?0Mgu~TTaA5MntHk`6wL&QL$Cs{0| z3x;+Uxh`sRFWL_dCio{oL>{)*txx}=@=Y{}qV8378bSUma+HN$9k$N`g)X(t!o6I$ zKuWeNe}(zDxVVt>QPHH7LJV^v)QOQ*qjCWXcd~K;ZkBFMv}_SrWB*P}@onS4oHQ*# z23%K)7-EbRG7ah;1AWw{0^ucAx5Uebw3KSPn_8qGaaaAiMhPEN6!)dnv92$_c zJ<<+KP&KI7e`XOuBq=;S!3$8DpCut5zab$Xf73FFuOoINjfWCYn#Oa+!nU587}~$G zTyq6X9nWBnL77?mURFyke+rtDVSnotX?AG)mJ;ElctEzsMo^sR^O7msJqXisU21lp zhTbx*!mdiozucp!$8l|c>4;u)s^!~ic{rJFSq2Bdom|*;T3j$_icSzZIr5xUns1St z6m1{P_lV$AaH}k#r8>9mBz_u+`!L;IUL2tyS&fI~6GG|ELa~{DD5+4LuL2@>V+l9; zbd_LeJSoXGJipT$t zE$u*2O9)w{)3i)zG{aWPfFUYK6XtD*TT6f-?ug$k4iQEiiS?uJ`vHC5lR!CNJ1IjC zxJeaoK@hUzc2zacV)5F0G=Ttz{OKO!3n%>QbayOLmbOeYs`-_6$ z>&DWIkt2YG4<%|5M}QHcCa zc)7f)ZKgGIguA6HlUlSGB&javTiHRWr!>u&Bz3hQ)8HD}EDy8dS|p8}`Ml%lDU*1N zt3f;lwUM?!j4{aYCa`S7V2)5gWEK@}PvkOI4Fd(Y)^G`BeWn{Uqzvk{e^`RJ!7YfA z2#=7V8h_{A%c>L3C&Tu&N{tu)g4l{ZRL}crTTah<8eE6WO50c<76oxgDBGa{G!G^j z%5)*`h=*s0#pr1ep>C{Fp;XQr=I;gQxrkH$IKI;l>O(1tO!2Qz-F;2R?T{fEi5#$N zl*mGou`Q}V#eF(GA$(V(^w2sM3l8EjwRjt?^n~7_r~rb2;!}kKfWx3}c?*hz3AVS; z)LF&=ww>xY?gs|-PHJHc0nKa{>pjbmqZ)Z3@u@bzY_TATx7mvl+`5LDk!2W} zCG@(a>0*Zn8hjnv2%o8H@#YZ~=-XYkW46IY93+i_HRMj#cKcp)GK1r_D1lnCavLF0 z@*eF`2?z2rB*{HWWpn4@UoqE$Q_9}8aI2OzB$cA4761?_W)NvkjRdre#s%U6mWh_7 z$mGZlJTb*iOM|Aph7#*YVyT6r@%*M`Iw>%f4vjBO3@(&pk_vMObrCmdz`jS|+U&Q# z0moXJWmHOy(bs}?LAu+SItm(xO0kh=<1dA-jRr>$KKO=~m&|I9uc(aoiB*3IP~Xs! zwpYtoRFIWwLDw&b{_*VmRelPyxXx};x3EVd?uC5E*Oq*270$gc(x}Jot?)1$J%2vk%ppZm(WIW#b`xREYB5n}lw2 zd`_nbmZ=kzemwFlVBb8yM&39z%Mgm6j)q&C!$Zy1><0#TFqy(t`DWK`-n&vAXobOH z5QjtXs*t&i1HM#Fw#D4bZUX{A5?Yc=g5h>>3ybL5i`B~33NzgdZmm~f!3~V(U)Wdf zuYdSMcAyABXyqS<`neXBC)t_xK8LaiWLMcrJu-k*bjm7=6B!+*qAa&b4xTNOE&Ndz zP#A^qXGD?Rf0Tasxlwd(yoiFsUmv`2K?rv_Mdf(lj~3ObE_Z}udQyyP1UKYV^>ji8 z=_U#SMfj11BPkt!m&orsrm!VSQEaJ(Q^wyKd#7{clxljy;(21C!Ctf36NyZ;px8CJ zLg(kNj}^*flw3@Tzja0!cqx zXJC4PVl_7pwVPo3ctCBs33lHmZUsa4{AKS)VzSA2h9Po*_OyAAQ_!~7P&-YVF_T!8 zM(_|+htOqUdRe@reL+FmKD;O|*q{)oAR^P(m@dMvDPhySvAM)*2nJ2v)lMqNV=djK zD+2=f>*J9%=rcvmBXN)8aUB48fGhS%|M9TuRfz;TZz6%bfsR3P)IanB4^0UF?|v<9 zpW*$ZVS;Z24Vn`OC(noiCfj>s(t&9B&MVrJLE0_ivXB%JMf>2dNv<%^)JbgeWY~bL zU~5f+ju8H6pruU~ql}|c>B~~%8r7fi__p2cnObaVSOGk220|#J%67}njFhP6i3B5T zgm9TwxxDL3JOCz{R2Bv{>=7gq^*IU?GZ7IUOH7kpviBprF^zML3^;cudqBuL({$uT zNVz3U7KVzolnb`aLCxPH@1d4{^9b*_(>zOG=AO&fEj8GbF!1KePz!VB_C@K!lD=D9 zUe*Q8ue*u|%*<)!t;Qy!#2u|eLIYQa@Bx%sfnYHEE3)VaYaR>NekKhV9NB^p=Z@Tr zwEyDLr_z(>=vS?<3!FgPpKjMb|MZK!3CJ-A|72J%B|AUz)=(sme^l!(czMl7`n>#> zH@4itv59|grv(jUspPvo`8nihlNoRj42Rt!6Aiz4_Mu$!E4oR1IJ5dl4=|*n2`T?f zJN6rwQ7FyO($h`DAO475K$$9mESZY7VdMjQKf-LSFY`Pgxw0yh^r9Mk-#B#P`scl% z%a9eXh21Kf_S!MKHrI(3mkhD7hQD~H=tK)hw}nkIngC3o{b)aGpAFWPIs*ggiY7ZA z)?QEfj|=x<`YI387iQt2MzSnwtbqmyQ`|PPFK|oCoeB(k3No93p$6Rg_I_(sey^I! zCrUemLkb+E0vGJcOJyO|djVYgBZJNZ+J2xl=8~Ne?>E-J86BgE=m!6aqZi4lvNB25 z@>(RzZshd=!1w>R@PO~!nli{0+Io|40zQ_3VKsMUo{eGvN}ZO>s(}QMzyA8{uV?@5 zzn#547|yh=u=Ng(FvQ<^j_-I-2aEF)&b3oobTP7tB)@;*LeDNECKH%jx}m%vKd=B; zmBO3x0fe2JX&^={#8p0{K*aG5s>u4`b%WSR-KJ5BJFSh)n+MJy3)-YJRjf~5g|f!> z@nC7)1Y1#JRWjIkky*qSHX!-VG#xFij?9C}#GW9koc3vbX?Q3BqH=9HP^o{O6|C-BxbSg)WzNIwgO~k~*+490FHzXvnUdH3| zcLebCen|ik6W}`$iB}LXEXomL19{U+6Cg@FRRRLFFq>fixE21pQ4n+0T{8XKqOwsS z#X#D4SoD7zPZUrOgekENM4(QzXFzl~uLYr0Jz>azf0WlZw?e#5#Gox%CNoRG?7sQ+ zSs4GZ*S$i=B2aryLQeUVYy+H%I=K-*K5t9pW z{6zau&e#5XCJ%_s-}M?-V{&?$j@X?D6#zxCMAu}d&_SD<)rF07rIc7aZx%L`co6k2 zN-rB_XFv-qmgcOhT~Vx@U;X;*f1QPax*1N=3xbe$8>+1}qsdg6`Z)Mek!i|1x&~Uw zC7Q9b?d}Pjp$KPK#dK6J0RYv917^WT7P0zg>;1{r9DF3h-#?$x0L8p66`*C*!hTu! zL_aXNyvY>1C_P3dAn>TV;{l-j2fvsS{lqV54*2q4CzVa4-d+0}}kj@z1HN%d<6b1h)o zJRLx6J8r<5#JDBghlnYp?0B%Kx3}F>a~6d|(7hB; ztrvwsJM@E&m}8vbI)weF+{tuka4~~Pb~|A|qPYl-`69DHK5vFUqWAo~^O?xiw0*`! zwkMHTRyi%sGJql+*Ge9$^>Vv^bY${>+p5WKHTu0fOF9AsL*V+PY73==nKkqYaT>by z4t)@D8#khv7Qlig+fR>{p?_Y(7*~sV1V5?eWRbb111;c8#sLddXHm#iKMg&V##EZ< zNCogW#l0l3n7lHWBX}1o;ukqsiW_^V= zkKD_O(1OAy!}enox2k*m!b%+oTi1&#R8)Gr0QW^TJ9+}FMgWMq#NHile)r}1%~n!M zNL=I^ah6&IX4pFB#c8&CvyfdIBgEbm%RPump4+N<~msDny{Cz~6@S;dr>_`>_A8N)F?FF)nLV({MJFVNRi zzc>CSG^3gF&&|3Ps)-M;eaR34Yxja8F z1tzr{oq4e!&auv*aknrz%*R+|CIgp?h*VN$4_^qeypiNr2Jt+R(?2z6pmA-aPG1M*)IrHRQ=Exy=H#l_nxP!`eR6IH)DEy6^YMB$zxgD8Nl{+WZk!k5SuW zxeH@s%VRwDyyG$Rxp<63W+{?GDooKMh*D51E0$_>{sN=L2(~ffLlN!n$~8;@$@{q5C|wtOoIf! z`0%U8msj<+M+Rr(44dydSOaX=Kd7{o8ZE^8XHw-njzbeL$mN9091P; zj-yZ_{_?Gn^QVAJn~k#P{E)RZzgL<1MnUdJZFeM(b^_p8JgSy&d8n#VFz2f5W5Cm9 z(wVFYnWuj3(vl-jd`}Sp_C4Tx4hgd`AqIdB9tX7dg8~CGh7_q?jnOxDFo#n{&$aAp|w*ljMgjwQF8*ql>GbszxH%=oAW*){wUk398esTAiYqXm_O>JiP3oGQF(k z%dtswI!UL4BP*QigkIMOlET~1a8giq|GcHni6h&Mo-=b`O>u z7nh#(_g05!(f@zG|F`e{WEQ4ae8YZX??Og-?5u8JOVRsLyE92WtJ(G0xs@OX>Ux>m zLBJfO5m-1a`iN;t<;GAJ?_-UU5y8Ni>n=(os@be8MTSelU#sQQCz= z3%>JfyJs}V_9hFi!bn6xK1q>i+)Bq2y)a)>a)``eQ2OroMM#nb$uw~WqYcJ##d?Ma zv^UQn0xxH;_yHkYHTJ<-1SEnnZG#$Hhu2iBEx9S$DFa>h^!Eg4UQTfR@(O8#njZfL zpS?mfx~D-#`!TKCTwrwPDJT&sE2yq21U~!b^jLhdn_(wGV{~sGy?KNvE|eLJ#Mg%7 z`lbu(7F!LRqE7np?CL|Qi$;YWCLOGNx!a>{TaBVQH@icq@7+W@1M~93mi&&?lWv_h zd?p?5kp_{7p+!TR>fCp@2)|a__@bp#>-Hrx$=0&M7offL38lSN7tnN?cGe(4WR;cP zKa<9dCuaaPfA{mxKOTSi(_g+G|M1<9fBt&>?oVHjzyJD&AJF9iX0)L2ZvAlXF^W0? z#U4HmAeanRpd$H!kv-E6wHc?0nFzH!e%gMkR2SGix_s`}f40e$e=DFm#IWj2MKbw=9x~wMwV!iKYR3&TRv=xZT2y1I|0eka@uesP>&k zH=JUNppDah9wE+K=<7m#eu{9l)NSRy0=STpV9#A2xrNctD<^_n`b2 z;b=gklhXCLo3z|k_MAN*FxsN7`3yV7!Y(}aG=(;vBPS0M05pEyF`A%$;zsb=*&HT| z=)PF+yK6J-DIbv)%bb3gDjT~DWWx1qr8Fg3vi55VcOYOSZv|SWLxar?CfWWBgyycb zp#qq7W(YKf-A;}gwgiSvF1S~I*rIRqg4soJ`3Qk~W*AJfJ;-Rx!(yZZ;X{Sp5sq9H zxQm)frE>I+X~*lc`2w1^llt{Dti_ob8vJzQf}V;m!6zV_saiU34PtJWh0B(eDoi|n z9?;#5+E3l1e5S>Gh07k*+W@;LuJiH@|AyQC*JtwDo9cGIe_bK0dk@QU4RV|g4K8;u z$u2i(mMXy@yBa9z14`j@$5)~RGD+QUkjBaR%C=%*aOit*Vy-)1>TrrtyOvo3aiW4I zf9i5z?$8=6l>h)Rrxrik3rO0a#*3wJpr9f|yuF7fN$#Z3Iv@rDFOVp^^=SLI+h5#V zLQn|?A&t*e;3aHjj|HzzO&DCj$*Fb?EO!#IjMFe6me#p_g~H9K{_-yp?!sp}>12TN z2}Gyy^8m}iDA!{N_pNFGt*}=Lphn!pm-;b%hBlv)Lp)Y$5$CL$Ujk4wP{Gu9XGP@} z0Eyw&2`+FVk|sckeA#Zy+r79k5DHBe@yquJuV#q#xfbdnUM4Rf%4&z+^tX?l1DCQy z9W%hy@+jQA+&=wQKneOH(hjN#PXcb5nF1P0y)q*q8GZS3c*RHgce+0s zMj@EFZIF$N?^}7VAGG5TZ=l<7eWyxL>pK>=t#K=(aeGr|>>5R6twcu5d3YPU?z(cz zLCvdnPirnWwxWU%p^uxasC>cM7(rs0Vtyn1Z-)BE3jfpTfo+0!vcfXzk2dx;*{40` z;U2XD5TV7;pR;i2?LS*HNIz~6NET!lAj5(tA0omq0C%!Rz?Qr;!Mb?eDBcw)^W3E7 zoU&Qx?8MB@_M`YTK>Uh9Yy11Bj}PE4x`Ac;G(e~w6AVeJR#n!lkX>KXnF!zjZzZ2w zoA-~z1f{RyP>S#fQyEe<8bkSbjsXd&K{0EZH$f)}1hJExou|ZS`3K86(yvQtaAfX2 zF%Y|-4%-P>)r&Vol)jzfe00#byi>z+8RY!sp1L#71p-fD=MeZjqTsMwzgWC}#C)Bc zWM@;6Ak{(Yg*~f-Bw^3)Nadi8urwEj+dUuf*?tBO!_`w2v!@?u0sEp|4Ggak0;xKg z5~zZ_Tc%VX;K!H+MFf*R_xGFI?Gae)HJc&ai!IPKb(dt)?K&a-c}?~0_nUh4hAfRB zgCa{8b+~=l%F@l4sWzo3NI5mCE#>Lp%-ZpEVqz=Ex;~ubIU2M(X81eoP6~nd;kr03}lc5r{p;QEfqV-|F1(WWz(ImOIj)TCmIzGHS-fd6|bJC`Zzb+Nwh@M75aU`sUQed1{8KH2P zGyxhXrr6Jm$s&o1VI`5lW%3~0Y-osVzjI?=3;&V9U67EFl#n-prad6iMt^1-EzN~d zwk6NeAqJ^(b%a1Eb;K044=rcY0`VHEXXW+J7g{ZZSCM4!S`<}6E00d4LTv^j8Bxq? zM<9kAy=1nCwEpqupZ*p7eE+PTy=U;j=u46`0ul=%x~Bz%eZF37_%-qBX`%PS>(e`> z;x!rocH#>20_w;IeOQnh^-7&r<$ABPOX%S>wAdsr*g1*`1ElL-GQjm z)qUurFwml@`W>vk$#jZ-KsPzj4UyRMwq=S)LJqH?$nc^h_FTgPt#8OZoCa=q$uf$o zbgK+hEc}c@xY$Av3eS-pPSN`0#8}Q3g>hMj3mC78B)<$vzOba}(13^zCh-?Nz7LHh zsysFKt^laZ&bLG+h#-*CX>c#(>z%;>u+bE4l!#jdJY!fYS%JYbMCcD`az1W4s^8E~ z2#bO(4d8-bx&U7~&dx4O%-W#)Hw1LB2>UyMh)22@d9XWg=W2NEqo`HMW3_{ADhCi5KZ-FU7~xZpf3D`s@Hd*~X;y)Ki-eh%?W`b9 zgYL9y`Gf)boSe#?LRNh8%pgi=xu7xXIfQN)Q3R8MF&e_h4W2hIr)&PfZvc<;kgbqy}%G9)GvWxBK$aq~Q<O$5f2VLIJ`GC5pFwMDG`o8Pixk&S#vXHms0Zc zQfCex)cgts0R!b+as~?UsnFed)3dOYUYkQON%0x1(6!wBOG~z=-@r!Hfq+y6uLM1E`Z?ppD8O{IaOcnWo5LNHnDa#dku~9QyA~p~ zbhcf^VK@X@_%Jut9W0bkLg_BhCMe=yb6C-iA>ED5f{skDb44I3P>YdBjo3@Gb# z4u3mIy_Eh>O1;y;xD}E{ai=szyAoheYjrT6=92b9k|^)ry%q% zFi?XV&u8gg(CnGOzyc}Mt)qA>4hQ9CV1;zS#QuYVi7;dX(#f2C0&^15ihykNE2;$^ z?>6YK^ve&4d<@9`G!0g>{=Kpft5SVxzv9tPS7H-LVKF%YQ$;N)CHIzz** zPE4`2+QF+q0!75apu6V-5b9?b0C_ChB4=cwg8=Ut*PN})=pVD~!W<{V6(gLg3F4uV z&B4Lk#b24ka(-nsKVT6QJ3<_c8ky;=towHHsYU;R5}GzCiGFg1lx34*k*D^wZ(;(x zNCG9SW{R#7M94U{ci4=y6P+a*-cqa}yuijgc@$9659q@r8cC>wSs{uX*zW-ym5Y;k zhDseQ6_4xqQ~INMc7SJqr6L^>M1qzc$hl={nGy>uY*LkGctI$*uwXEM9c0QexFvt% zId|i01LpR(2CQK7F^Fo{E6e({eWi?5pNM*TQB^m>6PwTH8CJG-I zfp@+6SMe1NK)ZIhuBIolEix_H5YGY} zeZ9wmCy`#02_wWdxoA4oFg(bK7t5k~gql>JYjAR!T`;}9ySpZ`vXWlo?YBtOE8JjZ z(HmxgTHUgc+<-TJxR$X|$Tv-g*2$fH^WJD6*@-#AHOiD;e){?8{_u=cRdaSCOQ*_| zkJkU_ZqNQWNJgrZwTPYll+$-13%wfcl<(;ntCF=qbQtP1s$GV@;|2sbro?SD)3h6@ z3NLFFhRTc(k_P@+LlvqKtLxj<{&>FV;#}*~IKA!-qfqW4YZ+BINr=mKc31RtJx1hw zkI{7Qc@^2%l8J7LyHwLK*qE#L8iqX4ws3CKs&9fN!^Gt8=A&46Gq)_e7z#YK6+oGO z0&GoGsLii(I@sL5Hq(%pikUL?LpRhz!(0DSFXI&V!^5V!-fzAcV8c zl0!aQ8zHSY=ISJZlDE%>v*aJPzCW3uU+4=20%@L5$C3f2hH&m*dT*XSBppjO5cb6;7$RUaSv_#}Bn?OWO+ozi z;RUg!XW#s-8L|4)^YrUdkJaDC%B;zM;fsiXa|%>ym2G5tVjaU$L})S+TO7Tq%_T$pqV$t0>eb1B#mS5s3RaU&0&;8S zNeu(5vq0qQ1oPnaHSvnWGeL@aHlo(@9g;4Y1FDmn0#rY(Y&sX4E}1K<&pYN*_SuSF zw_0xAJVUDu?e_S3+X(^$oIGmRZqhKC;~Y>}&)03XDh~kYCTPV+6qdCb!?1Qeqf66P zA`-+P^v7;%bOV}&3{(L3Xa9BP|9$qqhu%?!w|B`%Zb4GuJB2cc20{T~n6edoyx<17 z2WZ9Nj&_^Tyi|cf%2Z1D->kDlcweB_kMc4(mDh*7GDTKub#lT_osfG3W z#{ucnceGHdi$$fS_rZ-)sF|YT@8hxf=~3yHaFF7FJ+=EqaCdkuwiq-?W!I@o19ZktT>avl}= zld5q+weoj=_~yG@F2sXlhtn8Yty_yO8UA-!cb;J%L9Y8PNvu*L(U^M3%5c3w$F_(_{0>0@@y|g zzWVd)0YU67k_@NV+fw|!xtiJ=cuuVegvAlF0I{etUwRz4(hYKJMr~{CL^|sk!dIwJ zvDGNOEl4v%_IL8#T4>62ioP3Gyc)6N&8Kid)r6p4Q($q7QEycnnh!24=Cg65%Cw?C z@H2>X>2-(&sy!YCC35U}oW%64dKi1i71H7;vD%Lmo=#s0Yg$3H zT$v90wDpTy%u^mVG?$!33)-9wl=Z6G6^`fFQW@keTD5y@b0H0H+hKt}QF#L)AHwDu zp$^X$3xpgiBCL1~PL~J00Oe~85iqhW(T0pp?Kq*;>_d&oDV12dr|l`VgI47Qbdv23 zAPIjw`)7dYBrXzSmr7^<*V%vk{Ns1O{P5$~vw!>U$K!Xu{QSoszCZqQcJzP!?`Qt# z>rcOY{nPRLKmG8_58r?H<2V0TO!)PGZ;m|Ka2uj$rACR_(ue2U-B;|&K@D%*_^9%<-ZX*1L zSz|S?q#qcH0`0r{BG3}@%9?#t5O%Qo_P5&|Y927K*R{~WaDj;u`_{{b5WyhpFR}`X zxf4mVomTRf?5NSz=*eqll9B^s=^61pi3sEd2mtcvkS(}d{jsyT9w1B2|sE5S6r3+-I8`T>_EnJa5o3|B9Y5$E0 zaVEoQ<+Lp$Oei85@A1V7eR;jO`$szbe}l&7c!LFf3yH5at#G7O)9Q^$%{1v^HX}## z7i@Uh?H^k@M^vtTIi+a7a+aY(rj}qGsT>7(_r&6WvaKg<6+RLtHh5F#W%?Yh7Bwy5 zV4{y*Nn2tD{&v!2J)p-~n=hOXKgHcHQV&al?j5HPb@6^(T;HYEFr z1SYE&lp$;t|08`w^j(eO>Yfk2+0WooZJ*Ax)f#!uC`N);E(ViYnGeip9o34=a@-Bc z$NlF2z?3V}0CzB;c*o-9w{SC5RfM(zuoQ!|nO6o0j?yy}sBXw@F8O*8qglrRUWziY zy00!)rTLH9H35WsG$6q_pfI`p-gy|zL6+DHy|##1&aT7P34C2{pcsWn(+~6z*Nxl$ z5}u{N97oJ5^k&9+qweK0-;zo^-i94B@sowskxL|f5hkOq)ZB22)NtJ9#qsvj3Ndgs zkEoK`IxIXe6$5-OcP(M#ilk()FZI;_4=0O)yCjoYlqE%-##hf6n^1%nDan}*UqAou zad-Ods7K!y>Wiq%mi#F=KMxz-s{)Rr(dyGYDkEMi=J)VL*t$pPE*x8c4yt$NjyCUW zGwjrqT>Ng05U)36wF(kT<$N@l5rG|`B7h$M7(&*1|1Rl;nR`PsceWI!7N65Osw&K0 zQ4o~OtZ$v8{&(gYzV$uZlx5H`Q9J>3Gf_YSDTDj(VriSsf4J$!ypgmErIM{@2s=^r zM%W9^&pp_oiphPP0C>j5OJtUzc@_9&?-4Rq?Y2b5d-zCyFpxY9u8(U{)Ubr z>;tK%;P8IUTuMn{fhzuwtet>l2~>GRgfZ#W0(y(V&VuGlEB!P{bZiEi)hSCdhPAR% z$>x3y@YRo?ktA(9C!J+u-}z(fJfDAn^PK1JO1&91M;(@yvz4l~&=jIZWLtNv_Z&SwAgcl^3VXvcXBqPfSH)$E+6BzC#-76Fc3McgHTY@$px_Sw3tk^suuJ6AWH8`lGDT2QrC>8C z!-V*R__u9W5dY*fzeKam%}XPch07J0ak3tbS;i4Wl--|%F(p(bS*hmi%QD%)9is6U8NmE!Ve(olSGI6+@c!2oJgX(<6X zG4BpM4F>3^=`$!%0Z|e<@CDj$Zjb_vBv07&MHFc`crR-eWjvNiyfuKjez)WK+N$?B z>~;BU5K^49lOzZ7gt*hm%(zz=TLlAT1i?H_EJ>1~vH$55yP5)?K>Ab@zhlAJ=mLrS zC5=DTo>u|-svZE=bPE^VVl*dGGhAAl=Ktg4SEr^WUKtV#*7?<*nnUJ^G~a!YWv=Jj=f*(1OroW z69ZF&WZId{BundOqV8e;iU7ZM9j1enL0fgwsasQ#df!oVcRc-qb}VPstSw{CkBGzjE3njgZT=S z3xp9^XHI7@;6zU=59U=@!C!^Lp^+j*&FqI=cduqBH5Ol!A(m@OoKB3A2+-!8_A~6F zT>YEP>q^<$BlEC=3)Ur(E}eml6N7fRxJYX)i@Chj=rbG6Dnyqq)=2w$MdvG&YJr=Y z=5Q3*g#ft6fd1_tDT8f{AoA+HS~~SA?a?X>+FD?it-2pLB5f1ToqKOEq2ivK+-qUJ zVj7tw5lxIIF+)CP!7xpOnXG^q)5l_nL35c`H^Nc3Y#w6j`HdCxFMhWiM~k*K56pps zkbe(X@YU?{@&nj$O&V((32}ek&W$nWsJM4~8@}om3_Ja^v1AW)PaCJ+S%?XWU$u~t zN9>?2J^?Kq7+7CA-SFv^(97~{z}AwmMXu=_LoZ*My?VHV1g5yT3-)%*Rx=9M zC!`>3{^U^5q~Qdkjju4=!}wL5dDkY_DPq85RFGG@g?l5}JV4}{F~2@Wwxez%dZLu0 zo3C$586}GQRnEYF?3SoYDj4*tLJBGXYbWySP|8)A4gowNOQ0YjdIjB>9kn}DA~yMi zj(uYU|3K$;J3rMtSmo*<^*5t8DjnGo3)XK@6t=9Y<0iq1a3zJkLH56zrBDh3~%X+|ULV z3s^Kg6pS22qFdV2j~W1T!A|IBeK#-np5+bDgJ%U&leJYoHqDYJkNrr@qV+--Hw)i_ zg$|z_a|*xQc?uNX|s=6kq7p1 zo0TSH6C>&+KxnUeE;(KidU11jjh;l#C`G*(de{$@v!a!(ouK1N_c#}H@qP-!o;0MG zWc|hrE6}=}Uq@{Q6Vm1gXmj6HiIz}Khl@UD7aq?rK$ED^R9w#_sDxXP1P!JZkcfgp ziw{ObKS)2~(*?>5UD#7(bS07?mmg#QZkP8DlH|gUeR7g5IT@u8Apikoi|C%tyEvX> z@9UnMKFV4%>d7V9jrR5TYHIkneK8i?u$6a=7_OG7Vt`xlA&nR9FNz5$aFte#kFb|} zm30uIqjD`_SApNiuw@T9?VX>Cbl1uXy&2VVc16P*`-ghJA^h6i?jDlvaeGNS0_wFq zyl!BIKa+XLOG*QI@U01;Xalq&wbKM7gn5(-Ly<8ML^DXuATT8H9g;=3;2XqT2?&!9 zb(MH}*NSkD(0X11z$q*5$MQVzbuy|&(l6jP$JGP6OUYr>lI!6Vg93?AlXSWZ0oO$% zwjtaG8G-mo&^F^PD5B;)Eqm?)DFa4}+K650OOO;UXQ0oB#?X#T9ECJ$LnZlF8RZ+s~`WI(_FrW5tmX4a+7Poxf-Q8=?)lUM| zV)o&(2+cThWQNGBRu0F6FdWPcPKTVAgfkmBN60THT+IRh5NiOn3(t%Lz>9aXj$ z4S~|Onkw82WlhGhKxe?4mXm8Etb~*tSE_PY3#SH*7@=;HVa?`_w&R369Rig`_u`{@ z)e=rUB)1p@0Eb#50^z&`;OTgR-s0<+P?HN(MB)EU*d&j3SS_;pVVQgUfJ*CWp%8pQ zG^2CE`gX&eCA>zLbqnk542!!j`*u4gr`fJl*B$pe*^k6;{9!pegZAYL-cKt=cVaOP zg*H*^$I0Fv5txmy*9)LR=;~1ktXJA9Z0ark8xR6OQ zuwJNXsgX~#>?qYLB~sSXR#=35BkOrdn+6oIcQOs-5E&9A+OMHMHfzx^oYANffi1!e zpLSaV!YftQSiXJKW$hu!Ak-R-??J~IiZmF|$v|`%4~q~8m%!D0A(oL^GQfjVLL%FZ z%{d6H#*p2196h6cv_|DLH2UI+Dee1FkV(D*+09`Vs+UY(3CUl-YJ<#_8s1N^UkOA; zMbQ`datr_#m&VE;Azwek1zQ6m%%Uh->4Q2qXiwCauh88@z6w7-u`I;gL-~d@$qhn0_5+YY0(xJ2z1nrf3vv< z<^TLt$bJ0V3pD+*ykX9V=beNS~^Fd?ww)OU2h zlTfwA$sji$iO&w+G>EYh{`0;(QWnA(Kx2?Kze1fl+vgjog7fxPlb~d`&Wz!Q1(Umwo)t(h0gqnYj(t}R$yrsM~X)cwY0_k~Bq6d1J30 zPO+m(OoS>BHM92J!Gz|JX9(xmjReSiNm?7FjUy&EsR0&=&iNczGCJ1F8Axrcjdp6Z+QG2>RMy4}!5>!NzARDbk|YtKhAwRV2+STbeO(4G<9i@JdfBy#Jrx@CwfvTH+tAR|Sy?8a}k zLFUv!kSgXZA&?1Ci>s=OBHlV1am-%flA70@XbPHpXw_&a$fw9qGa>eUd|59pGS@2w zIVl`Q5(VQ&kPvT@6nsRUTLEoA0XzU5eDCZZ&(0CBR9Fn%Fp)B#@mU|6o3F{0E1Wbw zAcBVAU4ywGb&w;A_re>6m({)8{KnBgoP9I;@l z(qU1zOqg=8MsVr+D3TjeGz&5mR?EI|+>5O{PqU-o;recdn8jf$x2fnaKXzLjihRu% z*T<*Zouw1Zer5Ia?w-;Aaf=u^yn-N$bwSAS@BlMUOyp7h`d3lm4yR(KMzlYhhwbkw zgPz%Iz5SMK%xjtj;A%0k=6g9UaIY+)kb=H*(0?zLVkIk^@x zfQ#fIjPQtjn@>8?YWa9sqFx`mX#VziImeoVy)};m38#aCC0?o9Nk+0_wbh5vt{Owo z-CM7m!d=c6v>QwUZeM6v`)$XHPt7twlQF5H8w5rwvwV7)BqjElB5yR11ZhL7^p=D4 zqxN+dPI{@0s@w&rWXA@FHp|3CF>arY6D|S>`AhD7R<(xOJ0)$0f*+0EpMlz+KVi@K zkS^TXOP1r1iK5+S4v|IWIGQkYyN32~87~m6tcvCA%x1>Iwi5DOt!9eGdk!HDR7#hQ zsBY-41B54ep}wCE45g|(s#3z&sgVH6;kZ^#urJ1LxK+#=Q!To6tlX(ZFV2)i%gD!~ zK%r(?L_^MKc1NY^v;TEAncf&sdZIpC^E_PG-Li`a!EOh)_waFSuphKrao2{M$&#Xz zpaB;U07c+u{IyvhU4>|yj!ZJg8ws0H3m;$j|K{TQr|)YNI0lZ?@XC_}u(WhT3Y<9k)?N*L}-LLzv% zm4{?ZZ}AbrezO#bBn|VMQQJS$|1GH2+$f1Bnm|ME6zVV8$rjEHOS&+yWaPJS*Nz$7 zp@j7I4INidh6njrCA;{WfB5s)|M-VEN5w()MG1<1b=rp!x)On+QGsNNZKgJ} zxtw*_^^t2?3gf8b4bILLhowdR0z}WE&)<4}T})!K*A@aXN8JJ9DD!b(8lQV)rJ-qx zyQ|{@{REade^TTfT^Sb{7H!-MM63` zV<0S@p35KWO-L6=X@YPQ5)7idXSfdW~b$K%6h#qJni*pV3lSgb2= z2S0IDMZjFLU=HTk6_DME&_5&58FtC;<|f0AzcgB+CPHMm!EPI7=?hTYdy+B*y3+g! zm*}uw+<>=x|RVv`17$HR-3rl_ zbpGi;P@my@MtCaF@yF3;xBPmQdzSMXxpIwlo3Rsde3|VT#Pt)(PsIKgR*Y1qSarH; zI7CTOMfN8)c}xG)BmXQAI2;||?RcKSp;&MAUkY2nIm_-#jNlwTQ>vMgCE@xA!UqS} za%1-CYbbH)w{(!;#~btmyM-E*0LyIirU_W}9SW{hamdd)#UTwL#Dno9FNfXc9zh() z5HX%UyNSguDphWsg|@cM7UiE%k18uUlMUD;gHe;bkl6zna0&fgaV-=k1X-l{pHCN* zQYr)*vLapLmYMhbSo6fb&vP9w@J>1&ixaXMIJf8s3Ma_Dq&&kU^K=y8 z9*hk@do;@cyHU-Ha0$_pS~#nx@PEnpSM(EVs?8+3fQ-}6$UR1OojF~uvj5+YYslDL z@oghqJ^D?d!6mWon7Aiigh_qenR!i_ka1_;XnWV zE06!|;+42+7%^WU?GADdDrbbB5mm41vlhql5JVZeIN&$iZA=fo0Oz?+D%bZv|Mcfy z%;o#Cy*(gMd9ZtfRkLalmQlA3i~;n$#>#-JBTiUkk4ud_5k~nO`N#Y+cdG#fX>=N@ z)1_Kj6G_jA(!nTo80iBqAHjBs^;V7tjsz$O$JMt7WS~(9EfD$6oB?FMH`^ez+9(D+ zT)II+DB&p-O(Z<6c51QJM@^Mqz1u%S)huw2Xne(I0Y&E`I^E$jQ0d}>2>d{}vYB&qeYbpif~OWu{NzsuKHTll zD&n_|+yT7Mv8YVq{_wJb+`K@}Np8)p&jBb`rlj9* z&d$->mo%ibEGmbLf-d23dR<)1=7=;Twt8JQL{Z`Mh%-5!GZi7BHeh*L^YHHe)5(4lWKw({)kia1oSTy---|OP zUC&^uPAJgQqB{orf|&FfxCGUVex3*P{{+^OSkYrN>HmZ(uWAPd_ z;8RU`pcIdK_1NP=!k~&8K253q=IBzBQ0;U3xoZ%yFEfsXN)IWb`EfwNJ2wRST zwTVzQd~A_j(S)WmyGIpqEGE#p?U|1&0acmh?f5jo7oboqM9x5!>x=Xwez% zpx0=2rm8WZi&|l*8xvAzl!4zcNXAxJBoY`gKORuQ`I35$@T{&0&0|GuzpPL-;P7ls z!Ol|p8{2d9@>j=)hvjF3n0N*9%sY#4Qm4FRXhk2PFzCM?AMbwK!cPr| zVVd6#EbnB*OqsyLw5Um1OX{5f_0|oB~!_PIzSq4l7BBaiq`D>Ew7EDz=BgzL5?J8*aL%(PutHA z_vod&-KnHA`=%$er3W4i$Zgggj8KQKZ;?n8PJyPwu8i>`jEF5Zo|u#n)1?X_l)_y` zCoVlqWKdOU9*e`UGfSo-S2-61O`PC@BpRWtBagS1_MxTM)G(7qtdjGYPm&>cIvk#A zC~CLVu#bn^o$Tp}8Cmj@`>ZDu36@peL7=o3`pahwJ)=!oWP3yz8zNxvmwVp=CGU;V!Vc^K&Q_kAt28OeA{KkeQbFc^d@#5wvwSD}&kZoTT zjz(|UO`1=I!rl)*t^V?d{r?P^69t9oAabWmo}d@)2Jcn``eVcq?jJ3&KOmL|M$@-K zwkH%Hrg;3nq!nn|kyy$c2mJeS{Sij6&Xu}6JjzVIL!|rNSxBW8OpXc{yB)gXRPh1A zFD0hpEHQg1;RUiDg?Sp-ROt#C6=Ht+548Ovf&E)E;#ep1bUb01LbhKDOMvVZSr_f& zRx{{cGG~$rQ&%1^Dby}3)F6<>ZEh@(+~{4p@>~%{|P=;8Qu8lBv_cM1+lIK6u}k%RuiDh&a2>iez8z=czwY;LmS8F z-_T*rQJ&T5iCNQKMTGgzrR4r`+`3S$8Pv5W4mj`A&L9t>y@r?b%JGL?-dQ`3T$jdK zQ3GHhk{f1c*GQ)^hl^X5EM9oMl7+U?8rWGv(J9u1-jq=73YQ88#qA5?f=Fbbhb>W)`0jCgxL+sG zId6g`3n&!34?;dn@>E*Diz$}U8Tp`NZOt7|s=rKX-JhIcA{)C*Az%rK=`hHZyD>_h zhX$83n8d>|oH4{?&gFnnZN1S-RydQe(DLdNlMKnjM)>jghT7jvoPi}7^%Hb`B+Dh< zR%v1-qnhXos6)8csMR#Yq^p^=n&veqWVx+W8KGP3*qKD4!Ay^)vPoHXonUT`2u}T1 zI=s!Zh_zHNtSIOM+)CItRU!KSHeR1Exe+;vd?j?7zJ+#*V|*+bj$TT(AJaKDO!)3) zHI%ZPM|0Tjj0=l;HS9qe#x%0~cFgA2^e2$>`J3{nY{3Q^FwT0c#_kL3wqZ4QNu72R z1O#>=ktZfOP=zUsX0ZJmZAbh)GzStxFOYNpqy`3wbeQbgfR|6wc^Tb7Te)oDBPT*U zh8vaO`bA6%g3quMGD&eTnx>IKcKFs0*uyQS!+yX&|LN=I>+k;ZuSbYnu;``gz}(0A ztL$Ri&qTT7_Ot1@$Mv`CoB4-KY?f6Yy^11IZSw?ha|xuG4a^D^nGOx8$Y2uBs$q*l zDhtGD!6mW5G{;VXTnltfn|xZa_);6fF9JWBq^r`G_j^$EbXQe~ry+ECzXPhE{>jJP zGwSN_XaOM-CzkW`Dt3K-nFfRUfq`T(#Isgz02~kv!qV1OrLcV&*_8wLo?a-otGU2{ z6@jqifktFV!`ddv9i4EWw%>k!-fiUb|6D_bC?b2)cEK(UJtsK;Bk%O26AU|anY8< z)+W7;PZuGM6>2e%cf}EANA}*(sM-R|#U@IwnRy-&d3c0QMNilcB`%@c?O|qjKI}Gl z3niTNC^<374wk^?hZ_qe{h!$3mMBA5z0j<4S_0r5cT@wDRYAC_<6 zR0t~td=Z?VKZ`GUe-G=|c7Co7Z&hLGAGg$pn}73nwA?s-w8aVzgIfzFH9c$3K2Hat zfEe$^=^|quNH3t6U%%S1lNe!7O=7>67QzQ5qgj_`RT$Y|Y(SDmv$#nJ#C|CYF%!AI z6U}e4;nN(Qki}BPWe)LL96_E+U>E)Bd;Fbt2f(6Sb&tly1(7b-W`h90mS;!-HD!2F z`aUSC#_Zfs=ESRCP*O6&z7dwa+(3cP&UNI?G4RwNczHy3ON+KamE1kfp#=RQ!bo>? z4LqTldAVEPk$5T)Oh(tja&{=%ZudF+)e*UxEHr3l8gX~_1zJ9V^cIth%7ugpt?UnV z3la%37R-X+Qv$R&cjs~;SfaRzS{0)kh*eun&cyP>{cr%dzLUw0J~L0E_^wO!e313) z?%}=!J2}hE--gMrm?RtbnYamf|Zs2YV~yayj#9ZgN_7r zpmzJuE&Hv{jp`H=)}}Q0v69L)9&x#c*~jmx9Q}H>Qq>pG*=IPb^~e9q*_$mnb{tuN z{FF33jFHx=He3L?J@lAi%}iA;Ab_ka>IFuTC5bkY*hW$s&Gzqe&T;qHZXkPX)J<0L zM&K?H9=;xTe|uOXzInR1nir=o_bK|$GsiDb5yWKG+&x+>*Uk)9IQu)t6*N?4-cerb z7~^^@dFNMJa*|vq9Da9fQSc;kGC(&pSu7M8|B2rq0ufZ*lbczCHz2zqOddu*Tl z)P*9Hm2GkmZXqnAiw{NVV1^*d@FY|Lh9_IIyO>tZFgMVV`bCGWQV(MYU#n^<8<7Bo z@0Un~DZRJiP^@=nG;T7MeyeiK=v;>?nMwoqD9NO$^&RC!G7vRg&e$NpzR9jwV&nhr@9@psp@Y`1pE|)M(TQDhbIDcF8-f2g;%KPT_62O~GW z#nh_t?fB|%ajr8)w+Ko0rrP~HQC)5D5dUnN;+lV?Ge?^ebWx;J+{~rAaQ_}*@S&ZC z_SLjDXe1IHiXd9-#QuGg0w}$qpp5pnMi|sl;C}I@+|Wnf79ZKHy9|p$;n;wg;s>Z? z4z;iFq(On&!NLMg1iN;2C|;pELGM8hg8xst%N(h123Zu2$7%EN8d}WR3q034Bm5-8D))LVPs;Op_d@kg^?PYEf<={$TN#^I(gz$|{Y-z?VOy+ZiK zU#fZw=jIeI+Vn3j(aU6`kabB5Iy~H2=WS~mtWV?#_#fJpr75C6adXdN>nhcLf*EAO z6X2geD2H0#7cT7HSdhLgWHCdJt>{CQTS7V;5}}Un=SVR?W3-3~zIZ?%-iPNkoLmfq z=y7&9uuitnh<-bacOn??+&y8Ss6DC@;g8Oq=Rw<*ZuC~vYjO9p@!QUv^4%Hy#EYX$ zUh(P#TVRXZfYr)+#hXEUW-!*f_j@gQVbYqEa6P$RgLAWNF$ytm%!RG9N5XM2T&jq9 zff<2nqyxXAvC+RCA21%(>x+)eXZCiQ!^K@J8yx#Q`un#vS~Gu2!mYU05ozTppJ17q zEG(v1&D?mYo3D5Rw(FNhw(~A&$QFrAG~1G>@PoTw+zONt;VocM>Gq?2eepHVLT4b> zqcf}pDfR;10w6_Do29oG*Ozq76T|#Qt^95GiJda|PB|%;2}}IyB`Pp58%e{#jdN=K z@$Mu%ytJv83@w;Ue)bsFJJ0pD{)^aM;B0~r5=iw2P zm9?i6Q&5#b)f!AB&|L43K|6zw&cZ(X+)*LG7p-=%VBxX+aKh)9;Nbo38RSlmoS3Ii zV?P$%1}uufrg@Y%LuO+Mm1W8G(p3xACbIp!MFQl2RCg=01>joYU5!o)__Nd8|M0D+i97fQg2ne;1qB<_o{;aMxu~pi|;tvSNU@KGMg>*TN=xES4 zxxlj}b^_gw-&p%HM<41Y5kY5;G$L1VR}@N)JX8^)cFZ=CS9Pd~M(}1LYWP>-y+Snw z+&Ih!il%~`n-F(1QJ<>96=d*-r^BKaDAka?SRqm;sbQ9wuAn`U`XFdB^CJQgHJ&2m zzfn0f(;_l5Lsmc7syFE*mH<(A>u>>JbOf<*+H%w%rY;sW(y-crnruct45+*n)Sv(W zs_fEQsQ&&>QQZ<~dBa(+d?adHCLLNPlBwC^Hc;3dpDM^opnL=FU4DfBZBupTV?)pPrYX2$_Gc~wjTJsT)4RlXL)I0vrZ_}MLo=C+ zw6O+Q!$|sF_y&RClQmTQ&cf+nr)FAt+5UWX*Eu)|&!!5E)YL95g_dOuk0`#M6ExBy zdpSWdDKlZqy6~`(Xa`i>L$Xy9t2v3|1~wyYYj(-&JDl95PzYl9A_WB^@OD zxl(I@(r3W714(gL^9PB@)jgWez@gky09&hgZMC!rbKgN{kTVbugvQu6?ex;zQJT!0mg|6Otx~?o|$6w1L`L8TNFNm zNt2f1_>K+sK)7}97DWN#-H0U%fL|91g}s_SD@-Nbt2-9rZ9K!6zCe6+SD#vL6u?~5 zcACk$4Feyn2f2qIp_DoX_bLW8yExICCurnPFVOop-x?dZea!?!%TK01s##s!-s+^k z5g@^Tad3@}h$xo;&&vfWCPO>!55^*lrsOqPMRilGC-`FNqHziiPYeTN`dzx);SGUU zTw>yXhHNf?BQe{4HoQubd3kTRw-GT*>MdnlHKG+9*A}Vg@C{%QL87svH;O=~5TSmQQebg0EERA!K{lNQ76Ivg#3Crm!0x25Vw{k4Bj-cV z_NO=2g0>&0xyowt@pSYv<=op zbc-%d?3D+dSdL3H!sEu{{u1JulPJ&x zgwV?yJj+IBr2o_Y>E|DoL>5}PuUtF2@UWMLUnH-;n&L%J7>*t{~f}38UleX}frOc>K-|{VbF?Wg^T>Z$UT5 z#2#B!oMKQ}GVMb|po_2)m8zJDXC(uL*VBr%rtAT)F#?8N@ zutvdArbCVau`HFt!SVE=gsx!yAL0YXFpM*hI%R>+%kz_K+L zoPyh$A%e$j(8g!+2_20ERQ`arpFFN1Iq3D`vnv-ReRI}@f~pJGUQYb>PZ6qp_dMd zGQUHLA`s|D5TYkX$CYJ?tIHKp)xXgbi*$dTr8y!JY^>J59(Nm$>So+JkbrQtij+AJ zb^2BMR`iyIqs>=>I&HHSHmuMCDvF;EVIe5SXtv@tv!?|tU0r)pI`P*G$y*2g9@8LeIfG< zh;6~)hZn_|nfxqdsA-Q}4Yo#1%0neV7+YbzFNllKB6(7q!Gc;A`#Yp46rR@%+$%_I z$*elJP=k++hV8Dcm?=1E7BegJ4TV}*C&~nBY#jT+J4_}eh6vWI)=)*u4k-G-cYtan zHpJ$stHy6m0M$U{UuA2`NC1L&vYHEEs@*uO?hDgsGtZTulsot4yV~KWjDJFlwm;s@jvmdT zE2g;PAcswgr{XVIt)YaYl2g;Eb7qdC9Kiw(>m||-BafswhW}z8|h+8TtBX_HVSezXinyoZe-vpRP%JF^i9UXrcF^LFg8n?rNseC6 z(ZeYej;qVity(b#et-g#5@T5;7+C~*ssu)W>x&5JDBP|0hizk%H-q-})Qy>Ha=7@v zF7Wq@|0hKscL38%zeQ;`WG>(fECnlhSzv0``_`Xh&v9xZXeqbUDi+EEXx(XCF>00^@(hmrt^&HtU zF=M5I5$VjK`B3pyZsGv(jhME+qf9+xjuVpmp(cfj#N@JkHHg{RU^%8Wk}o&!57fL? zJ+2Z=9Y@80c8V#`>q{%Z`Y9l)fIv?;Wp?`)v`jg?P@6-jEgR;53O@ z@oV%S`0=OTe){_y!_Crg^{#)uFSG;=u3G`$29QRh}pm4GHhNvKTatFyWl6l51!Beg4a_Uca1ck$H< z;>r!r(o3e5WyO)`GGmt26dg3}$8d_V(M*!=?LaHwoADa+z-k8g^5O)5_wq%d?oCdg zAJ**RSNWx=+D&c@je&Y)$My2NT!|be8*n?QG2Xcz+uj+qBOgw_DV%&d|KF}3itnth zwjWszT2&i!J?Y=c!AI?>xGwdo4xh9$_+~DQ;1D_v*0>v2GkR5k|J2W$hL%ncqSRDA zar}Px`S1Vy_4{8uJ};R;kM-6)1zsq)JI_M+IRebUc~SHBt<+wH!bua>F_xUCIIKZJ zP+{1lEj+cOfqHdEKMWpeZQo6dqqbL5C(Wp}onx#pVDMHS%-x{12<}d?Ul&YPuzdqK zLLNOb(=BT|@6EG2$@BupQXgX#vvoH&iJZ8j47>1r16K{hMy6FnP)3Z}ZRt-?;^k`n zwuFrel@h?e@x?e2&5(|REnlQR=02z5wQ!&%C>CBnHzIRUa&|nPcU;8QXU89~Tqk`V{a@SGT?X;TG|TnqR&<)w!LRRm%3_ViG6)?Kt;>uuQ_{psA^cg1R^pWKI@vq_d20J3mSO;3wXO#mS zMeZcH%tP)Ii#en|^Aobs9J|fgYwP@HZ|q{pJm!j#gu`mToxC+`RSntN$U(SZW!dEe z!XeY#(PcE!Q5(i{c=W6^Ux2;02Pj*}Dz3MU#(X=&-bi1#!zUKLTQ-Xm#nHII{r0G; zpniyGfd-^0EL;B93&4ZeJygi8aD2cg2(Ptg7wZzoccqYE*t}4((P4_=MmFr`Y9p+k z+3lypaKneAOh~cb5R?T0;;*ldJC^Bu+aGgVm=aV-TPA6i<;%ML@u;nMUIEi-SRgp*j=jMSC3L45F|;A6 zD_{d2L7DyQA*sisyj!ZXp#pkEg^iLQr4ohs`u_EJ$Y@m0Fw0{yb*_)3*};lgdj>{A zqq>i&Rf<$8|F)oJRZH5sd&Bi(atUg!o}ecl;dM6KN&&^RYKHV<2Au_f74kzd=eY?u z6K~D9Yt~hXyxr?Z7zm_zxC&w;BZ)7nMFTx}b|{v!J3&htBi_G;0ukqQL}c~wJ7m^O z*D){yWRQwSw@M$?H`}JS5P(RZdxO7-=x=949tP+ubX~ z7OU1g9PwFfVaA;$3|Pjc>2w6-)eN~Av>Q^MxenEY5xjn2i47fv5z0BEpoC~PMI3O% zKxo!==)#|BWZj(-Y~YzVq#cTZp`jTaW5N5L7@5fiQ9I_VCES?uepp?_jQ`yHNsoxh7{Nq%7Zijw{~K}CZ4M{uY#>@}99ZH{k7Q|K-%H-dSmHP=?P3QOYFCrTe1xl#9 z_(?-c0?M~C&_mL!Q$^%f;E$4&G^J8ud(^tbD|lF@7jyrX?rD=^h5EqIuO;5N#$FZR zHGO`73smch)^&MV5pIb!EA)euoXXdC@2|n(;q(Lz)+bB+pd7XZw^x~5mO#2onHGTh zBtVu$g|LPbkLi$#;UFIKX*TH>2uzoQ6YC|sdY}!8#8 zH#Y>a%nMDkr)k&xHO5sN+EM!rkEWyaJzK4k)16`aoga>AG`-q?_P*Jm0JDvjL$1oG zdnUVR06VRMV%z;yxCxz7 z^LU*%@U9MoOv&M(o|o4ZnsGfm!$--I&rqj%lAR}Ze^>Ba-&oUXff^;XS!-=07E;^t z;}H32*Cut*gsY4(6g(KUcjyVF(91lywZu|WCDEPfxLAl!=-^kf-|?u?m(hm~C6woz zi{UnujGF>@%_U^*g3uIY2X-{2`C4iUi33xFc}F~lLZGn}ZOC4McP&fkV40Ezl)Rw~ zLc!;m6O2vON!vfMx>OKXOAsSz83Z9BGW~-MdFnT52JKz^NKI~-12eajnIb_O^2iU! zbOIuj8m%-JePud$Q#eOZL-Y6oP&iz?}-YUr!A2` zC_OUZFn!(uCj9k>8IX$U5Wtn@s!bUsj&)5gtYz9&Wp}!yZJ-Na zaE|TTl_Pdjqob&blC=uf2hMP}x5amKSJ6hB;_u#6MK!^iq2L3f-|7=cGWNur_$7*J!f?Nph;$TWz%8wNw%uW zt!I`J078HsZ$8-(1}hQIbc1^^kXj;t_pO3qMydENFnT(fLxDXz6rVPpP<~ua*k)L) zlbcG_%Nf}c!H^}I;jI_&{|r|p=$F#jeG<^iPET-dTVj`8wN5{hZRsnM$~{AZ5(PuM z2iUc;Y7ib_2R0E7PGg;@lHG<*TAYz7v}8Ia(7ieiy#+~7f#)n#9mfss%F0dYVpPrC z*<-l`Jz^d~Ro|N=%SavSJ4a z5Uvw@0BGtSglA!koAeRr_dp5Gatbi|JwL6yR)0V_-E>FmkJfG!DI3CNC6XOGXw z9U5*volu>)ESL`ROnxE81YkKNGz7CV(6gf#I`C=L411x)Y>3?`>tn|2q>l0xvb(t& z98w>U#XY>a}wnzt za$OfwsCYVqy0MNhbwVw%^c5Bo(rZ|46%KIE%sf0Z@a}w+uVDZe3H3ak2FAoK9)umAnc#fito{;mWWLs?PnDBw?)*iAhw4{J>lOC*pbg9Iy$J5}n^cvfco?JInb zm-97V3z(Ej40*<`4w%9o6_SHssxvdVw&F3X1=7)2NEl%oyf;Mm30YQP_bl>v@*oI! z8{99SH`_M)A@u21ZUugC{aWzvu(GOZ^6y6FTI|I-bNFf$f1ScbaPw^ruTRJ}{U0U- z$)1^}4I;y4O};ftW#eln`jHt{Pyl(Rq@KAEivx{tdk|dKC>O(2cnv-(8DH7+G4VKz zz~YLgduW!vr!r#Oj>RWvmqx$V7xXL;H9i9_8s!dDLZL8DG!(b(P0&sCJahg*G}FCB zvao)}4BGRw<~;JNFd@q-TX{;5w6e&>rKC4rGgtti4d}MTGc%sHnj}XR`oy9d_MX+S zi$iBUU`*nsalO53b5$S>#YN~MyM@|X>)Tcp5MI|@so|aKfzlK}7tTZLP(K(bDaX=! z&P*{8V>H#N!OMS?iUXMks;Gy`ppn%|n z+!Dl&Yvavn8yhik>&?$W8GSlg`_hEK?~ElV?VR*7p0K#8T{zki_Sg)lPR898oC6*TbFAh#2Kz z{0}rGtYX&7$HnuWEuAZ>Oy$7vKj)w^Z}`Ff8E zh)HX2uIrT7*#+$k-p-@#bOaBV!;L(_>6T{ImP4Jpb|%@4g_~5_uC?{2JR!mG;(8jP za4DUvA8q=s!SlEt(o>{Ry1L^|BvQ|f#m>wgkHS3<`}G3Y5q)2ZRDzqs;AS#r|9TwP z@u-%W+%`k&tv2c?a^S#wc*<>S#Ou(DN9gc>tVx|9$6-iM~y@z17y>&_IJzqX}e5~KRSG0 zs;+EFv71TLp+G!N$(#C5c~TCSK9xDJEHwgIX5 zL{N=yYmS(I zl9{NdWLb$_XXo^$?N+jY(x9DRO$XJpWhzI4b{Q{*`vG7PWdyP0OFrNrUnTv+`o*U= zb=b=hqp%#hSv~CT@gqP{P{$b`%aup<&~#PL0CA7Tw04CrVJg!j$p!oc`g>GmO`Mvx z$C){`(>m=1Rl+?C;QHWH4(`!h`^Z4OG6{sAl>@5*6GA#IU2!bK@cfXm7479%1MNXQ zs8tXw+NNLK=`TbBiEo(OA6Tj;t*PL=V-y$O`dAgqP2sQU!{tcAmGGy_|()O%09ibCK22gf%hk~U06GWk|Wbb$In(e0e z#!{9ygT{kIjazn{dPngPUr9b424otTmj_`Skcved|3dFqS|bpG5kiqxXkp{yaa$8EaEMJvE3o(1CK~kShPkQ8@W!4PJi5h$i zyh7j;>C5LrIjGmc@Z_aEUoO7p4OvdH2ev&kSUs%B|N~n^UgOY&XtvNQHMv0Vu!*P|Nz!4_#ZM{<*VqXrqSY;Dp10%Nsrk)pMA(#y7&# zo5`vOs95)+LLh8YyGXke6jtUliwt>IZY>jv5hK+8Ghvu{9_~Net}O)4{(P(9HW`70>8#+?7b_N94vE2< z?n=g)x=y>U#hn?^|GCC-xXzk(vFASbtm5HdX)yK9Rat-|%5x?if zGt`INzFX3y80aj*YuNqzpE@nK~M(rRIlcS_BgkTQ#Hxz*QH*)nv=j3VC zp&P)6E5@cnXQ`Q|6BeA^64xj>eqz!B@hwH$By_>}_|oX7-6{5Ne0W1$PKo*Cm$Wri zt6Zs0h?{L*P@?!yuR%R#Pm#T~oKElctOH6I3?J|RDDN};Yplk-xtyO&?L;{pn0U~Z zF8Z$U%`-|5)Q^P21lPnQ@mDWSpn3I27WLh}$V2OuRX_)XLSv@q0^~gM=FOV%0b;lMjcrC5&;Rkn(o{EntlYsZfEv^}@vGwxDN2Jn zefmw}kABpb_4b1lrQGng3n{9nZ&{G@>)zGak9JJkfn`jM3BfX-!JC(h=k*<{7@QxA zTXtsXu9effs)J-s?@^DwcjmZfW;!dHf?OK{0;QmekAnPu*FAwjBP(tQ0w<_cSZs)C zVgIH^WzYzO%dkHM;#2?zDAiQNVDW$1)EV}fh!%%9i<%G_WI6Ku2Mxw|a(JQ;-%ST9%LbWoa zZFiPPf{ahJ?!?Xm;yrt`huNTHQnDZOd^e`?N>~EHOt7| zFfJ1(b+vQ3J0fK&#kZ=XUQO|{ps4Qi0+IR?;&fZbdgYjCV1JXq142=bwsy>az!lHXU7Dw#$k?Bqy?K8@-{}m@~iC_GFF^THrS0DvITVIA4*3d&Z+e z#Eet2 zm-$c2A%rt{UMk7ea$Xf|Fyvc&SCoYj#yE;#WMaUg>)b4lyUxb2X~tp#f-zr^_pVkI z4d~C6-GsLt=7Sulk;g=)PpqiA#^4}ss0KvUj6z7`ZP8qxMAA(?eWIK5u>TPOm23Zf|S3Z^f<=@2Zw zealI}%|JY`_d7jP`g2Z>KE3CXwgMNNVc(qI7tvK7s6wD$%cik|gGvj@4TrN)0AvO~ zt*nvz0xXNZ@kW7P7euK`Zmc=}LihAJ2!*Ko1+Z_b`o-LqCRINr*?R@LA`>lEAz z@%`t`8!cOuE50Mbu&5Y_!F~XC7Z4Ja4pu`@)wTB7roY7BdiuMNKDF1re z>sophIfW8*gr0i0@gTQ(V7OIjz#eOFl=1Q=g7zx_fQt`?CPiKin%?Y;q^DV9z%8IL zV0qo!6S`iot~_p!%z`ojYWo{VVEU@Sh?~X(B48J=s=5=-T#?qM#%VJFw#W4*?RpUX z_*YuiVEDu7`0xauF%$QCnloOI$iwpJAa|3rKF#`vWiCPgI4l_~(Ltb2fpC$M65hEn zg(0&->=fj@5U=%EcV90jRhc0nDLkHZ+RCTyne@82vj`4h$Cbi>uNzhisW;*RNF8ld zH3DX5h>MCXrbcBncJ-yG3y%bdiUB^gT)A==1ax(c-Qty%P|4kxoa`hmY(qr@V~b!gB`PoFkP z`&e%uAB|NmcZkx!%M&b;G9@Ulon>D`M&KOLnOLqVom^SaZEuyjK)VG?iVl>eP&Us< z_U3gLeVDGn!HUNj;SJqPiNV?;b2e*6NgZdZ`N;o|!!f%V3_@j~+2J~;69BsuH^F%yYFdt{BHANDnQfFhl+8;@(dP&3dh=g?7b_8(%Gh9LZl%N z8YrWqonbE}k;L|GTeo7N6&IVVZ^&C5!3q$R#Zx&o7tZK#zMCBXu>J7FIw~~Hbcrg9 zfq?N?cxS{bqnyNOpmuaG+i?@V$PQUS0I#+W8%Em8V-|K)8n*Q@RdqF7M^P|r40&Ls zu7WC)8>a@o5UF$?5rcQ`3>yQ4MQ%IF3Q+Z{W?vM?{5_>$4ma_ds!CurA}%3aeKk$t zwz^c5I`9hwdjSPmwL$9`wca0{aowtL>0-45#ep+eNmlso5Ty z`al@!`DVZh&f`Wii!7^c>P~opQ(qxZQf0Lv+U3SXyse z(@6sPLrruXNO`TH%VMZmdm6U=!|laHVZ&Z)Oqq^awRB9kJT}-{XVN3rnY4YtOl;G!XQex*S4&dLx;k zPc>AN!Ze4PijWoGk~~TJ2uTuZQYl(3`D8RhhtI_Q<++d=J!dx)?fOVGqnj+Sv!Wox zhb2|ux*bmYz0pGk^QgbA88ji4UGgnoUXEzfW}yY^Z9u_{@>WuQD}IBve&Q%50TyKp z?-91+V*Q7D_p`&-hi&6U6fE7s{u6kAxHdv8*GHhtXu&bx?M-b|M&lrD?*ETFGbMHhirIXo^$-okp!-m4Cfg@f{X?4q)A z2d&+1l4zJ!cBRE{Ap1plC3a#C-qX2Q5o$SKlxnu?OL| z6RXxmNhG+LR%<8B*#-@3U6@DX*Lm3p%OLEtKytNEp`8qp=}4%(v#HzN|KJUx;LFK znvokdWk-bdHMf5ctc-VdDE6qGpe@o?tA5erW-azZFk|m(+-5wc8()GFt?{$}oK z;&sO6;I@Ne;AES%T0;IrwkU~@^8#xB^zzJX6P>DgbR8im{XM(N4hcwu@ly3|Ay4wm z8mkG1%oDJ}q(pMh%7G4XjHVcQNR8P40a0>W%r zsr7;BOt1r^r>n#B@sIUS$`PB(x*_+hRkD3S%PUu5i<%S7D>|QPUNOU&vT@rf7{p$t*YtTaGrgN)fbH@MT7}UZ@Y;u~bHg^f~QKd9jQ@mWF zSO1haF>Dvu1C-fhq(d&0W`;Sg+6meyvu-SdYspA3Yj5B_Ugsw|ZxkbOs=L3`JzeHa zLb-8BiUR_^B~CD*6w^sgl5;lCplc?X1o}X+2IHMfjj;JtiG04aKJud_c{eo`gxB{E zcX!zIN?$P%a$og6)#f7!RKm5WQ%vRi?io?$b0e`D-Epl34vQ(>r7Dk9C|FAGFBLT}8$d9HJ(X>U|o8{2-VDk9Vgz&0j|%&60{)Si+NGQ73akvPIth>qHmkr=MkMaH^-h3s;_yCxeiN&_feX=br=^z zv5DQ^+VYc8sJ9@(5L$f0`?^+YE7Q&QpR7s;7MAo$Irv!3iT7i_S^55!7ol<^-DV_izD8s;ik%)QQ^u*3v3 z@c`-0f#L&79En+;O9O2!Qew(rCxt;#LKYlsR92Q2i$i3Z+1ie=AdEckb0g_)1X5Na zR5v7NVE+wCVw8>0pGk1Lv|exkvf_HtrR(uCZCW9BgYm> zHH*sN+YG^_#y5wDnkJe-BLyRrtDq;~C}6Xy%dR~bP3I84`xZJ1-iGNl{CZKc4R!}GY^t4$&pyEW%ED3>5(b@6lUtl9m0o(ntSl`nrBjpF!r)*bX_IXN z=C^sd9PS2XtT4ulHA7P)+H0;3T52UUga@=690uhf zo3RlaP+e@6zZ`oHjR6;WA8Ns?=B34*`%^^VX7;6`QY14}6FXZr2R7e3gK?7jQ}nz- zy*!r@>H2Az5~;U5d_tkgQVt?lz-vh)xEZXs)xCAYIN?KhiZa#SKit8`G`<$EU61H> zrFPN@0+VphFaQ?_a@&q4cmVA0wZ|ZlT`!!&aw6S0BO9`#yQuzs&5F zj&j-GdXrpPozAc9)*4-pPwMYKw+nQcfhi=SN6Rj{+`|bFg1Za7&^Fh@x z7YM4=>L1kPSox7+_wcm(ZUxFTRgm6>(7t3oN;5K$JaxR}JU}TfX^I9nWGuWiniAab zlVnS&f_sTFky{ssO)*{FE~`XgvOqRsjxDpKZGdGZRR8FwF zCULa7H;&IeA9=$T!;NWHRLz#y<0Xusv^65pxZ2s9dfYY#pt<`8faa0#hI$7|YRac* zx0ufU0ILi39zy3Kaa+rLT509OwJoBpq_ou+#<~ z9Hw&oG$B70(tSTDm}lg^f%I()*eWCW;*!oj zjd)T0#@#9Q>V+2RM8A8wUjsl5{sJ#e);MvLvw3OEho;E#<0QgU(7z;)fso7rF924G zYy`DA--Att1|DJPjs{ATn`may%VLOo?vAU^-{mlxn|`t$OMY1|z`0qr1_kQ6;M9#O z;F&+&7Y%RyayluscF5J zH+dm@P`KijII8Q{ST)#VSJbaZyL;HJQDAU;g80CRes?$s_3R|kE7xv80eJ6!q$4*P z>72Xq96NkLNJTN@nwiCM*ewSKjlt|eWT>Du0$dAuX$L3cFAHO2vQCR-Rb0FW6a8(c zKR)hiTFR%OndZDeF1wi%c&dV3yoqlcMCDj=PcG$MlfZ;3#4JqIJ>3KbO-!SyO`jIL zH`rP8?lfC=Zbwn8gr|ICB0bms?$5Dr&w8qNqD4${J1Ol}dZVe8Sn)M>0?oC1s%t@g z?Q9WUpq1>vTZ$Gn(9ErH*1{NEO{?4}v&QR-wJ}(Yxsq*#dQNM!5k;|@5(5ECTzU&C zAzj=c3x(2cIlV;MH~lH!t{)P*!yU*54J}Up4F5wEmtHE?BGSL`nGlWLtt!MI;)L`q zcc*Eg2nf1k?}XBf%Z$w}1W2gWK3aq~)`O2Zqx^)L(=}?!dfr}+@?EB)Jh$Zy=|;*S z^LZc|;rW0x3B6n(jC;CMB)I`yVr&9~H_Ohh*cZyb$N7ByqTU+$`XBuPbhu zFf4M6my>B$k#XUmt`FoRg;A8Y4IKZX|Q|R znEm7K0o7%b**d+Rlv!KM!vb#dgaGC}Jiw%N$68k-yflm3%6pxc95ruzP@(@u~_8U$^*AN z8SpWuC)j}xyT`Ij0d7E+769`pkoz=K0sfOvw#Z;Q(m=5`sK>L@oSI=2ndS>d#!?y) zL?9EUMN|yhFMQEm;$tD7c82X9$^$U*gu0Z`0-RW!fZrF)z%uH(v&a@q^b9kY&kJgWoyNFi!<{1>B~FOGQ~|tdDl9W3mRJfa6+}VliGL~-44z055HcH1 z%T3E@$`QUZ=AJ1&c2mRrs={QjtUQW1`nB#^$!B`6lK=eha5pLraBhO1gA`UvG;QZ2 zUGETeJA-dEPOC;Z0B(wLTD4t|Pi*(peYC|l4lN6=kXH$u)o|cyQdH9f=j~_OZdW-U zWKooLG0Z^?IY70iYZRaa>n&9);F_3g9%n7YPq6Q4cDtZ?p;DolTFgv`D14AMpt{;w z{(9UNU$26mqo+5xxZs?JF8FXT@AcWC*n;r{BVCZWXA-6Zy0Non%nJvJs300e<3l(1 zlO&fvG-1=gp>L$m9F257bv(yDm*j!g2S0xK*H1ruQPRemIeTlmDDBU(w<((>@EF8c z{HZyr`$D-?>CoBqZ7)}=Ru5{~_{t_(S379qCXJZD3L|nw*I>y_$l(#Ub5hD!dxo?) z4?fq*a1PF&cs0|dUtYjWg5b(r>UNf~B=Kbonb1L62>w2pt%y=c6dkV%MEPEkI;9<{ z48?j_A1v~r3(mV=pf@!OjO2)1cdS~*@eJLWY`t)C!L-@E;AK%+LSF_B4$srbQ3JSx znh$d$P>n`Ls!IM>A)@i9Gi+B1x{uMgebO=jCX{hE6zJvjlv?M+o z%pAE&FILV0>PKNA0`Rp)Z5tSgNOipU`rJq?)p%U1BozrRHfoUm2d;a>mj`(J-lxPG z%e%HkM8+b+SXG8_vL_C*QGp;aAA+zBFktzdDNImP;j_Y+>texn0znbYjMD8k-!3sw z^}2YxdrAC&6VufWFQ~`)={aaZBM5~zilaqWfgh_LTda>&_@kD?RN#cFW^#S8_D5A? zrWxGt(9h%@+8JAIIZkLQ3rK9Xvf5ju(oUm+x`zNLj^zhHNyJ)sfo_Igk6e_RHQ4sW zn2~&W#CWm#x86@yB1j0Yc~NAAbJFufJXV`r9x6{NcBY zV>t)Q<)dD()PD5MhyV3oIHL-9tfn>Ob_y>i%?)FMfFgfBsrTcRsn~UEr!xJRUhM>7 zxk^+5b<;6KLwT{Kl49(euN)tP5}fY1L_7YT69(^xJHxoiq2l7Y>=a_$~6n- zW64t?7a)NTaA}gn=4sy+1H#vef>LFH=B1l36xLfaDIYxFd+qJn&IN@tXsBP z%_zp>c1wSb`JT1F!U@k3)v6e@djc3Xpcj<-sHrm^c^wY~sY;tDheZN>YDx&HU$h#s zcMPL@yLftd{H{fn2AxjBYXGHm^P+%YfOXGI@w;o6o18A##JGcPUS}x2t~)_rm~;k_ zFlBjHhPX&87pR-}7u)1@K89P{s#~*JlqH73t6m_NppPqjB*WSsRk2&4q+l@wWyX;GV179}a3uiN6#fG*dtvZV zhHgj?@QI+rR$3=l65&3X&aGj*$Q(DRObi7Y;)L~Q*jE^dfHVlgN>9nV;kCubo&yw$ z?716QKhhm4vf)O2KDX87}f@mfnl_8)U&hZJu8C-vN0uZB2{E0o3z~eE!P*OT2_DxID!q zTV2zOP-_GpiCmo+(y)lnBi~&cR25msJj9Os7KN0z!`oAmaP{SmY-=X)6U`awY|+St z5vh?;w-^TD<~(jvlNP*@w9rgV?a#=RRWyCh)}s*@C>UkBl&u;PAh)tW=Gr-sp*D{! zn^THa7MptKc$a*^3OAeS++!=_@u2B*cM%0~$%)zB;AE68f_&ZHx4UW)8ZwwqN^TU) z$J*6GUQ`C8Wda8==k+b@NVm=tjbgG44mKf1P8irgP9-?;M17hMff3C7!3U zL+xvp#(Izc;<#arV1xAuwl_5WLCbsy?Z&Rmkz>CB@)UQAURQDWHRDwsu_