AtmelStart.elf: file format elf32-littlearm Sections: Idx Name Size VMA LMA File off Algn 0 .text 0002c590 00000000 00000000 00010000 2**6 CONTENTS, ALLOC, LOAD, READONLY, CODE 1 .ARM.exidx 00000008 0002c590 0002c590 0003c590 2**2 CONTENTS, ALLOC, LOAD, READONLY, DATA 2 .relocate 00000a04 20000000 0002c598 00040000 2**3 CONTENTS, ALLOC, LOAD, DATA 3 .bkupram 00000000 47000000 47000000 00040a04 2**0 CONTENTS 4 .qspi 00000000 04000000 04000000 00040a04 2**0 CONTENTS 5 .bss 00004e04 20000a04 0002cf9c 00040a04 2**2 ALLOC 6 .stack 0000c000 20005808 00031da0 00040a04 2**0 ALLOC 7 .ARM.attributes 0000002e 00000000 00000000 00040a04 2**0 CONTENTS, READONLY 8 .comment 00000064 00000000 00000000 00040a32 2**0 CONTENTS, READONLY 9 .debug_info 00076bf9 00000000 00000000 00040a96 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS 10 .debug_abbrev 0000d84f 00000000 00000000 000b768f 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS 11 .debug_loclists 0002993f 00000000 00000000 000c4ede 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS 12 .debug_aranges 00002290 00000000 00000000 000ee820 2**3 CONTENTS, READONLY, DEBUGGING, OCTETS 13 .debug_rnglists 0000491e 00000000 00000000 000f0ab0 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS 14 .debug_macro 0004073e 00000000 00000000 000f53ce 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS 15 .debug_line 00056509 00000000 00000000 00135b0c 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS 16 .debug_str 00128cf7 00000000 00000000 0018c015 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS 17 .debug_frame 00006cd8 00000000 00000000 002b4d0c 2**2 CONTENTS, READONLY, DEBUGGING, OCTETS 18 .debug_line_str 00000082 00000000 00000000 002bb9e4 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS 19 .stab 0000003c 00000000 00000000 002bba68 2**2 CONTENTS, READONLY, DEBUGGING 20 .stabstr 00000072 00000000 00000000 002bbaa4 2**0 CONTENTS, READONLY, DEBUGGING Disassembly of section .text: 00000000 : /** * \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 ....