AtmelStart.elf: file format elf32-littlearm Sections: Idx Name Size VMA LMA File off Algn 0 .text 0002c488 00000000 00000000 00010000 2**6 CONTENTS, ALLOC, LOAD, READONLY, CODE 1 .ARM.exidx 00000008 0002c488 0002c488 0003c488 2**2 CONTENTS, ALLOC, LOAD, READONLY, DATA 2 .relocate 00000a04 20000000 0002c490 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 0000c7cc 20000a08 0002ce98 00040a04 2**3 ALLOC 6 .stack 0000c004 2000d1d4 00039664 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 00076b11 00000000 00000000 00040a96 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS 10 .debug_abbrev 0000d7ad 00000000 00000000 000b75a7 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS 11 .debug_loclists 000298dd 00000000 00000000 000c4d54 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS 12 .debug_aranges 00002288 00000000 00000000 000ee638 2**3 CONTENTS, READONLY, DEBUGGING, OCTETS 13 .debug_rnglists 0000490c 00000000 00000000 000f08c0 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS 14 .debug_macro 0004072c 00000000 00000000 000f51cc 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS 15 .debug_line 00056494 00000000 00000000 001358f8 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS 16 .debug_str 00128cf3 00000000 00000000 0018bd8c 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS 17 .debug_frame 00006ccc 00000000 00000000 002b4a80 2**2 CONTENTS, READONLY, DEBUGGING, OCTETS 18 .debug_line_str 00000082 00000000 00000000 002bb74c 2**0 CONTENTS, READONLY, DEBUGGING, OCTETS 19 .stab 0000003c 00000000 00000000 002bb7d0 2**2 CONTENTS, READONLY, DEBUGGING 20 .stabstr 00000072 00000000 00000000 002bb80c 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: d8 91 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: 0002c490 .word 0x0002c490 proc->types.pointer.last_obj = indev_obj_act; 278: 0002c490 .word 0x0002c490 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: 0002c490 .word 0x0002c490 proc->long_pr_sent = 0; 29c: 0002c490 .word 0x0002c490 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: 20000a08 .word 0x20000a08 if(indev_reset_check(proc)) return; 2c4: 00000000 .word 0x00000000 indev_obj_act->signal_cb(indev_obj_act, LV_SIGNAL_PRESSED, indev_act); 2c8: 0002c490 .word 0x0002c490 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: 20000a0c .word 0x20000a0c if(indev_act->proc.wait_until_release) return; 2e8: 0002c490 .word 0x0002c490 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: 0001dc54 .word 0x0001dc54 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: 20000a24 .word 0x20000a24 378: 200191d8 .word 0x200191d8 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: 00016f9d .word 0x00016f9d 3a4: 0001dc68 .word 0x0001dc68 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: 0001dc81 .word 0x0001dc81 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: 0001dc81 .word 0x0001dc81 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: 0001dc81 .word 0x0001dc81 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: 20000a28 .word 0x20000a28 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: 20000a28 .word 0x20000a28 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: 20000a28 .word 0x20000a28 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: 20000a2c .word 0x20000a2c 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: 0001dc98 .word 0x0001dc98 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: 0001dcd4 .word 0x0001dcd4 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: 0001dcb6 .word 0x0001dcb6 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: 0001dcb6 .word 0x0001dcb6 8c0: 000007cd .word 0x000007cd 8c4: 40003000 .word 0x40003000 8c8: 20000a3c .word 0x20000a3c 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: 0001dcb6 .word 0x0001dcb6 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: 20000a3c .word 0x20000a3c 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: 0002c490 .word 0x0002c490 a64: 20000000 .word 0x20000000 a68: 20000a04 .word 0x20000a04 a6c: 00016ccd .word 0x00016ccd a70: 2000d1d4 .word 0x2000d1d4 a74: 20000a08 .word 0x20000a08 a78: 00016ef9 .word 0x00016ef9 a7c: 00000000 .word 0x00000000 a80: e000ed00 .word 0xe000ed00 a84: 00016c21 .word 0x00016c21 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_tcc_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: 00001441 .word 0x00001441 ac8: 00001385 .word 0x00001385 acc: 000012b1 .word 0x000012b1 ad0: 000013ad .word 0x000013ad ad4: 000015d1 .word 0x000015d1 00000ad8 : void oracle_service(void) { p_screen_service(); ad8: 4b00 ldr r3, [pc, #0] ; (adc ) ada: 4718 bx r3 adc: 0000167d .word 0x0000167d 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: 0001dd1d .word 0x0001dd1d 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: 0001dd1d .word 0x0001dd1d 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: 0001dd1d .word 0x0001dd1d 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: 0001dd1d .word 0x0001dd1d 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: 0001dd1d .word 0x0001dd1d 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: 0001dd3a .word 0x0001dd3a 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: 0001dd3a .word 0x0001dd3a 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: 0001dd3a .word 0x0001dd3a 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: 0001dd3a .word 0x0001dd3a 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: 0001dd74 .word 0x0001dd74 e7c: 0001dd5e .word 0x0001dd5e 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: 0001dd5e .word 0x0001dd5e fac: 00000e2d .word 0x00000e2d fb0: 0001dd74 .word 0x0001dd74 fb4: 40003800 .word 0x40003800 fb8: 20000a40 .word 0x20000a40 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: 0001dd5e .word 0x0001dd5e 1028: 0001dd74 .word 0x0001dd74 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: 20000a40 .word 0x20000a40 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: 0001dda8 .word 0x0001dda8 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: 0001dda8 .word 0x0001dda8 11c8: 000006a5 .word 0x000006a5 000011cc : } } 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)); 11cc: 0053 lsls r3, r2, #1 { 11ce: b510 push {r4, lr} uint32_t dword = (uint32_t)(SSD1963_TFT_DATA_FIX(data)); 11d0: 0154 lsls r4, r2, #5 11d2: f404 3470 and.w r4, r4, #245760 ; 0x3c000 11d6: f403 737c and.w r3, r3, #1008 ; 0x3f0 11da: 4323 orrs r3, r4 11dc: f002 0407 and.w r4, r2, #7 11e0: 0352 lsls r2, r2, #13 11e2: f002 52e0 and.w r2, r2, #469762048 ; 0x1c000000 11e6: 4323 orrs r3, r4 11e8: 4313 orrs r3, r2 port->OUTSET.reg = (mask & dword); 11ea: ea03 0201 and.w r2, r3, r1 port->OUTCLR.reg = (mask & ~dword); 11ee: ea21 0103 bic.w r1, r1, r3 port->OUTSET.reg = (mask & dword); 11f2: 6182 str r2, [r0, #24] port->OUTCLR.reg = (mask & ~dword); 11f4: 6141 str r1, [r0, #20] } 11f6: bd10 pop {r4, pc} 000011f8 : { 11f8: b538 push {r3, r4, r5, lr} 11fa: 4c07 ldr r4, [pc, #28] ; (1218 ) p_gpio_set_port_data(group, mask, (uint32_t)data); 11fc: 4b07 ldr r3, [pc, #28] ; (121c ) 11fe: f44f 7580 mov.w r5, #256 ; 0x100 1202: 6165 str r5, [r4, #20] 1204: 4798 blx r3 1206: f04f 7380 mov.w r3, #16777216 ; 0x1000000 120a: f8c4 3094 str.w r3, [r4, #148] ; 0x94 ((Port *)hw)->Group[submodule_index].OUTSET.reg = mask; 120e: f8c4 3098 str.w r3, [r4, #152] ; 0x98 1212: 61a5 str r5, [r4, #24] } 1214: bd38 pop {r3, r4, r5, pc} 1216: bf00 nop 1218: 41008000 .word 0x41008000 121c: 000011cd .word 0x000011cd 00001220 : { 1220: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} p_gpio_parallel_write(group, mask, data[ind]); 1224: 4f07 ldr r7, [pc, #28] ; (1244 ) { 1226: 4688 mov r8, r1 1228: 4616 mov r6, r2 122a: 461d mov r5, r3 for(int ind = 0; ind < len; ind++) 122c: 2400 movs r4, #0 122e: 42a5 cmp r5, r4 1230: dc01 bgt.n 1236 } 1232: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} p_gpio_parallel_write(group, mask, data[ind]); 1236: f836 2014 ldrh.w r2, [r6, r4, lsl #1] 123a: 4641 mov r1, r8 123c: 47b8 blx r7 for(int ind = 0; ind < len; ind++) 123e: 3401 adds r4, #1 1240: e7f5 b.n 122e 1242: bf00 nop 1244: 000011f9 .word 0x000011f9 00001248 : void p_gpio_set_port_group_config(enum gpio_port port, const uint32_t mask, p_port_config* config) { 1248: 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); 124c: 0147 lsls r7, r0, #5 gpio_set_pin_direction(_gpio_pin, config->direction); 124e: 4b15 ldr r3, [pc, #84] ; (12a4 ) _gpio_set_pin_function(pin, function); 1250: f8df a058 ldr.w sl, [pc, #88] ; 12ac { 1254: 4688 mov r8, r1 1256: 4616 mov r6, r2 uint32_t _gpio_pin = GPIO(port, i); 1258: fa5f fb87 uxtb.w fp, r7 125c: 2500 movs r5, #0 if(mask & (1UL << i)) 125e: fa28 f205 lsr.w r2, r8, r5 1262: 07d2 lsls r2, r2, #31 1264: d519 bpl.n 129a uint32_t _gpio_pin = GPIO(port, i); 1266: 19ec adds r4, r5, r7 1268: b2e4 uxtb r4, r4 gpio_set_pin_direction(_gpio_pin, config->direction); 126a: 4620 mov r0, r4 126c: 7871 ldrb r1, [r6, #1] 126e: 4798 blx r3 1270: eb0b 0905 add.w r9, fp, r5 gpio_set_pin_pull_mode(_gpio_pin, config->pull_mode); 1274: 4b0c ldr r3, [pc, #48] ; (12a8 ) 1276: 7831 ldrb r1, [r6, #0] 1278: 4620 mov r0, r4 127a: 4798 blx r3 127c: 6871 ldr r1, [r6, #4] 127e: 4648 mov r0, r9 1280: 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); 1282: f004 011f and.w r1, r4, #31 ((Port *)hw)->Group[submodule_index].OUTCLR.reg = mask; 1286: 0964 lsrs r4, r4, #5 1288: 01e4 lsls r4, r4, #7 128a: f104 4482 add.w r4, r4, #1090519040 ; 0x41000000 128e: 2201 movs r2, #1 1290: f504 4400 add.w r4, r4, #32768 ; 0x8000 1294: 408a lsls r2, r1 1296: 4b03 ldr r3, [pc, #12] ; (12a4 ) 1298: 6162 str r2, [r4, #20] for(uint8_t i = 0; i < 32; i++) 129a: 3501 adds r5, #1 129c: 2d20 cmp r5, #32 129e: d1de bne.n 125e gpio_set_pin_function(_gpio_pin, config->function); gpio_set_pin_level(_gpio_pin, 0); } } } 12a0: e8bd 8ff8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} 12a4: 00001069 .word 0x00001069 12a8: 0000114d .word 0x0000114d 12ac: 000010e1 .word 0x000010e1 000012b0 : { 12b0: e92d 43f7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, lr} memset(&data_config, 0, sizeof(data_config)); 12b4: f04f 0900 mov.w r9, #0 p_gpio_set_port_group_config(SSD1963_TFT_DATA_PORT, SSD1963_TFT_DATA_MASK, &data_config); 12b8: 466a mov r2, sp 12ba: 4b2d ldr r3, [pc, #180] ; (1370 ) memset(&data_config, 0, sizeof(data_config)); 12bc: f8cd 9000 str.w r9, [sp] data_config.direction = GPIO_DIRECTION_OUT; 12c0: 2502 movs r5, #2 data_config.function = GPIO_PIN_FUNCTION_OFF; 12c2: f04f 34ff mov.w r4, #4294967295 ; 0xffffffff p_gpio_set_port_group_config(SSD1963_TFT_DATA_PORT, SSD1963_TFT_DATA_MASK, &data_config); 12c6: f06f 417f mvn.w r1, #4278190080 ; 0xff000000 12ca: 2001 movs r0, #1 gpio_set_pin_direction(SSD1963_TFT_CS, GPIO_DIRECTION_OUT); 12cc: f8df 80b0 ldr.w r8, [pc, #176] ; 1380 data_config.direction = GPIO_DIRECTION_OUT; 12d0: f88d 5001 strb.w r5, [sp, #1] data_config.function = GPIO_PIN_FUNCTION_OFF; 12d4: 9401 str r4, [sp, #4] p_gpio_set_port_group_config(SSD1963_TFT_DATA_PORT, SSD1963_TFT_DATA_MASK, &data_config); 12d6: 4798 blx r3 gpio_set_pin_direction(SSD1963_TFT_CS, GPIO_DIRECTION_OUT); 12d8: 4629 mov r1, r5 12da: 2008 movs r0, #8 gpio_set_pin_pull_mode(SSD1963_TFT_CS, GPIO_PULL_OFF); 12dc: 4f25 ldr r7, [pc, #148] ; (1374 ) _gpio_set_pin_function(pin, function); 12de: 4e26 ldr r6, [pc, #152] ; (1378 ) gpio_set_pin_direction(SSD1963_TFT_CS, GPIO_DIRECTION_OUT); 12e0: 47c0 blx r8 gpio_set_pin_pull_mode(SSD1963_TFT_CS, GPIO_PULL_OFF); 12e2: 4649 mov r1, r9 12e4: 2008 movs r0, #8 12e6: 47b8 blx r7 12e8: 4621 mov r1, r4 12ea: 2008 movs r0, #8 12ec: 47b0 blx r6 gpio_set_pin_direction(SSD1963_TFT_nRST, GPIO_DIRECTION_OUT); 12ee: 4629 mov r1, r5 12f0: 205c movs r0, #92 ; 0x5c 12f2: 47c0 blx r8 gpio_set_pin_pull_mode(SSD1963_TFT_nRST, GPIO_PULL_OFF); 12f4: 4649 mov r1, r9 12f6: 205c movs r0, #92 ; 0x5c 12f8: 47b8 blx r7 12fa: 4621 mov r1, r4 12fc: 205c movs r0, #92 ; 0x5c 12fe: 47b0 blx r6 gpio_set_pin_direction(SSD1963_TFT_RD, GPIO_DIRECTION_OUT); 1300: 4629 mov r1, r5 1302: 2037 movs r0, #55 ; 0x37 1304: 47c0 blx r8 gpio_set_pin_pull_mode(SSD1963_TFT_RD, GPIO_PULL_OFF); 1306: 4649 mov r1, r9 1308: 2037 movs r0, #55 ; 0x37 130a: 47b8 blx r7 130c: 4621 mov r1, r4 130e: 2037 movs r0, #55 ; 0x37 1310: 47b0 blx r6 gpio_set_pin_direction(SSD1963_TFT_RSDC, GPIO_DIRECTION_OUT); 1312: 4629 mov r1, r5 1314: 2009 movs r0, #9 1316: 47c0 blx r8 gpio_set_pin_pull_mode(SSD1963_TFT_RSDC, GPIO_PULL_OFF); 1318: 4649 mov r1, r9 131a: 2009 movs r0, #9 131c: 47b8 blx r7 131e: 4621 mov r1, r4 1320: 2009 movs r0, #9 1322: 47b0 blx r6 gpio_set_pin_direction(SSD1963_TFT_WR, GPIO_DIRECTION_OUT); 1324: 4629 mov r1, r5 1326: 2038 movs r0, #56 ; 0x38 1328: 47c0 blx r8 gpio_set_pin_pull_mode(SSD1963_TFT_WR, GPIO_PULL_OFF); 132a: 4649 mov r1, r9 132c: 2038 movs r0, #56 ; 0x38 132e: 47b8 blx r7 1330: 4621 mov r1, r4 1332: 2038 movs r0, #56 ; 0x38 1334: 47b0 blx r6 gpio_set_pin_direction(SSD1963_TFT_TE, GPIO_DIRECTION_IN); 1336: 2101 movs r1, #1 1338: 2003 movs r0, #3 133a: 47c0 blx r8 gpio_set_pin_pull_mode(SSD1963_TFT_TE, GPIO_PULL_DOWN); 133c: 4629 mov r1, r5 133e: 2003 movs r0, #3 1340: 47b8 blx r7 1342: 4621 mov r1, r4 1344: 2003 movs r0, #3 1346: 47b0 blx r6 ((Port *)hw)->Group[submodule_index].OUTSET.reg = mask; 1348: 4b0c ldr r3, [pc, #48] ; (137c ) 134a: f44f 7280 mov.w r2, #256 ; 0x100 134e: 619a str r2, [r3, #24] 1350: f04f 5280 mov.w r2, #268435456 ; 0x10000000 1354: f8c3 2118 str.w r2, [r3, #280] ; 0x118 1358: f44f 0200 mov.w r2, #8388608 ; 0x800000 135c: f8c3 2098 str.w r2, [r3, #152] ; 0x98 1360: f04f 7280 mov.w r2, #16777216 ; 0x1000000 1364: f8c3 2098 str.w r2, [r3, #152] ; 0x98 } 1368: b003 add sp, #12 136a: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} 136e: bf00 nop 1370: 00001249 .word 0x00001249 1374: 0000114d .word 0x0000114d 1378: 000010e1 .word 0x000010e1 137c: 41008000 .word 0x41008000 1380: 00001069 .word 0x00001069 00001384 : //// 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); } 1384: 4770 bx lr ... 00001388 : static volatile uint64_t sys_time = 0; /** * Example of using TIMER_0. */ static void TIMER_0_task1_cb(const struct timer_task *const timer_task) { 1388: b410 push {r4} sys_time++; 138a: 4c06 ldr r4, [pc, #24] ; (13a4 ) 138c: e9d4 2300 ldrd r2, r3, [r4] 1390: 1c50 adds r0, r2, #1 1392: f143 0100 adc.w r1, r3, #0 1396: e9c4 0100 strd r0, r1, [r4] lv_tick_inc(1); 139a: 4b03 ldr r3, [pc, #12] ; (13a8 ) } 139c: f85d 4b04 ldr.w r4, [sp], #4 lv_tick_inc(1); 13a0: 2001 movs r0, #1 13a2: 4718 bx r3 13a4: 20000a48 .word 0x20000a48 13a8: 0000dc61 .word 0x0000dc61 000013ac : //timer_add_task(&p_tcc_inst, &TIMER_0_task2); timer_start(&p_tcc_inst); } void p_tcc_init(void) { 13ac: b570 push {r4, r5, r6, lr} delay_init(SysTick); 13ae: 4812 ldr r0, [pc, #72] ; (13f8 ) 13b0: 4b12 ldr r3, [pc, #72] ; (13fc ) 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()); 13b2: 4c13 ldr r4, [pc, #76] ; (1400 ) delay_init(SysTick); 13b4: 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; 13b6: 4a13 ldr r2, [pc, #76] ; (1404 ) 13b8: 6953 ldr r3, [r2, #20] 13ba: f443 4380 orr.w r3, r3, #16384 ; 0x4000 13be: 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; 13c0: 4b11 ldr r3, [pc, #68] ; (1408 ) 13c2: 2240 movs r2, #64 ; 0x40 13c4: f8c3 20a4 str.w r2, [r3, #164] ; 0xa4 timer_init(&p_tcc_inst, TC0, _tc_get_timer()); 13c8: 4b10 ldr r3, [pc, #64] ; (140c ) 13ca: 4798 blx r3 13cc: f104 051c add.w r5, r4, #28 13d0: 4602 mov r2, r0 13d2: 490f ldr r1, [pc, #60] ; (1410 ) 13d4: 4b0f ldr r3, [pc, #60] ; (1414 ) 13d6: 4628 mov r0, r5 13d8: 4798 blx r3 TIMER_0_task1.interval = 1; 13da: 2301 movs r3, #1 13dc: 6123 str r3, [r4, #16] TIMER_0_task1.cb = TIMER_0_task1_cb; TIMER_0_task1.mode = TIMER_TASK_REPEAT; 13de: 7623 strb r3, [r4, #24] TIMER_0_task1.cb = TIMER_0_task1_cb; 13e0: 4a0d ldr r2, [pc, #52] ; (1418 ) //TIMER_0_task2.interval = 200; //TIMER_0_task2.cb = TIMER_0_task2_cb; //TIMER_0_task2.mode = TIMER_TASK_REPEAT; timer_add_task(&p_tcc_inst, &TIMER_0_task1); 13e2: 4b0e ldr r3, [pc, #56] ; (141c ) TIMER_0_task1.cb = TIMER_0_task1_cb; 13e4: 6162 str r2, [r4, #20] timer_add_task(&p_tcc_inst, &TIMER_0_task1); 13e6: f104 0108 add.w r1, r4, #8 13ea: 4628 mov r0, r5 13ec: 4798 blx r3 //timer_add_task(&p_tcc_inst, &TIMER_0_task2); timer_start(&p_tcc_inst); 13ee: 4628 mov r0, r5 13f0: 4b0b ldr r3, [pc, #44] ; (1420 ) } 13f2: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr} timer_start(&p_tcc_inst); 13f6: 4718 bx r3 13f8: e000e010 .word 0xe000e010 13fc: 00000581 .word 0x00000581 1400: 20000a48 .word 0x20000a48 1404: 40000800 .word 0x40000800 1408: 40001c00 .word 0x40001c00 140c: 00000fed .word 0x00000fed 1410: 40003800 .word 0x40003800 1414: 00000465 .word 0x00000465 1418: 00001389 .word 0x00001389 141c: 000004d9 .word 0x000004d9 1420: 0000049d .word 0x0000049d 00001424 : // usart debug callbacks static void debug_tx_cb(const struct usart_async_descriptor *const io_descr) { /* Transfer completed */ b_tx_complete = true; 1424: 4b01 ldr r3, [pc, #4] ; (142c ) 1426: 2201 movs r2, #1 1428: 701a strb r2, [r3, #0] } 142a: 4770 bx lr 142c: 20000000 .word 0x20000000 00001430 : return data_arrived; } void p_set_data_arrived(bool status) { data_arrived = status; 1430: 4b01 ldr r3, [pc, #4] ; (1438 ) 1432: 2201 movs r2, #1 1434: 601a str r2, [r3, #0] } 1436: 4770 bx lr 1438: 20000a80 .word 0x20000a80 0000143c : } 143c: 4770 bx lr ... 00001440 : 1440: 4b27 ldr r3, [pc, #156] ; (14e0 ) 1442: 2240 movs r2, #64 ; 0x40 { 1444: b573 push {r0, r1, r4, r5, r6, lr} 1446: f8c3 209c str.w r2, [r3, #156] ; 0x9c 144a: 2243 movs r2, #67 ; 0x43 144c: f8c3 208c str.w r2, [r3, #140] ; 0x8c ((Mclk *)hw)->APBAMASK.reg |= MCLK_APBAMASK_SERCOM0; 1450: 4a24 ldr r2, [pc, #144] ; (14e4 ) usart_async_init(&p_usart_debug_inst, USART_DEBUG_SERCOM, debug_rx_buff, DEBUG_USART_EX_BUFF_SIZE, (void*)NULL); 1452: 4925 ldr r1, [pc, #148] ; (14e8 ) 1454: 6953 ldr r3, [r2, #20] 1456: 4e25 ldr r6, [pc, #148] ; (14ec ) 1458: f443 5380 orr.w r3, r3, #4096 ; 0x1000 145c: 6153 str r3, [r2, #20] 145e: 4a24 ldr r2, [pc, #144] ; (14f0 ) 1460: 2500 movs r5, #0 1462: f102 0414 add.w r4, r2, #20 1466: 9500 str r5, [sp, #0] 1468: 2310 movs r3, #16 146a: 3204 adds r2, #4 146c: 4620 mov r0, r4 146e: 47b0 blx r6 static inline void hri_port_write_PINCFG_PMUXEN_bit(const void *const hw, uint8_t submodule_index, uint8_t index, bool value) { uint8_t tmp; PORT_CRITICAL_SECTION_ENTER(); tmp = ((Port *)hw)->Group[submodule_index].PINCFG[index].reg; 1470: 4b20 ldr r3, [pc, #128] ; (14f4 ) usart_async_register_callback(&p_usart_debug_inst, USART_ASYNC_TXC_CB, debug_tx_cb); 1472: 4e21 ldr r6, [pc, #132] ; (14f8 ) 1474: f893 2045 ldrb.w r2, [r3, #69] ; 0x45 tmp &= ~PORT_PINCFG_PMUXEN; 1478: f002 02fe and.w r2, r2, #254 ; 0xfe tmp |= value << PORT_PINCFG_PMUXEN_Pos; 147c: f042 0201 orr.w r2, r2, #1 ((Port *)hw)->Group[submodule_index].PINCFG[index].reg = tmp; 1480: f883 2045 strb.w r2, [r3, #69] ; 0x45 tmp = ((Port *)hw)->Group[submodule_index].PMUX[index].reg; 1484: f893 2032 ldrb.w r2, [r3, #50] ; 0x32 tmp &= ~PORT_PMUX_PMUXO_Msk; 1488: f002 020f and.w r2, r2, #15 tmp |= PORT_PMUX_PMUXO(data); 148c: f042 0230 orr.w r2, r2, #48 ; 0x30 ((Port *)hw)->Group[submodule_index].PMUX[index].reg = tmp; 1490: f883 2032 strb.w r2, [r3, #50] ; 0x32 tmp = ((Port *)hw)->Group[submodule_index].PINCFG[index].reg; 1494: f893 2044 ldrb.w r2, [r3, #68] ; 0x44 tmp &= ~PORT_PINCFG_PMUXEN; 1498: f002 02fe and.w r2, r2, #254 ; 0xfe tmp |= value << PORT_PINCFG_PMUXEN_Pos; 149c: f042 0201 orr.w r2, r2, #1 ((Port *)hw)->Group[submodule_index].PINCFG[index].reg = tmp; 14a0: f883 2044 strb.w r2, [r3, #68] ; 0x44 tmp = ((Port *)hw)->Group[submodule_index].PMUX[index].reg; 14a4: f893 2032 ldrb.w r2, [r3, #50] ; 0x32 tmp &= ~PORT_PMUX_PMUXE_Msk; 14a8: f002 02f0 and.w r2, r2, #240 ; 0xf0 tmp |= PORT_PMUX_PMUXE(data); 14ac: f042 0203 orr.w r2, r2, #3 ((Port *)hw)->Group[submodule_index].PMUX[index].reg = tmp; 14b0: f883 2032 strb.w r2, [r3, #50] ; 0x32 14b4: 2101 movs r1, #1 14b6: 4a11 ldr r2, [pc, #68] ; (14fc ) 14b8: 4620 mov r0, r4 14ba: 47b0 blx r6 usart_async_register_callback(&p_usart_debug_inst, USART_ASYNC_RXC_CB, debug_rx_cb); 14bc: 4629 mov r1, r5 14be: 4a10 ldr r2, [pc, #64] ; (1500 ) 14c0: 4620 mov r0, r4 14c2: 47b0 blx r6 usart_async_register_callback(&p_usart_debug_inst, USART_ASYNC_ERROR_CB, debug_err_cb); 14c4: 4a0f ldr r2, [pc, #60] ; (1504 ) 14c6: 2102 movs r1, #2 14c8: 4620 mov r0, r4 14ca: 47b0 blx r6 usart_async_enable(&p_usart_debug_inst); 14cc: 4b0e ldr r3, [pc, #56] ; (1508 ) 14ce: 4620 mov r0, r4 14d0: 4798 blx r3 lv_log_register_print_cb((lv_log_print_g_cb_t)p_lv_log_cb); 14d2: 480e ldr r0, [pc, #56] ; (150c ) 14d4: 4b0e ldr r3, [pc, #56] ; (1510 ) } 14d6: b002 add sp, #8 14d8: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr} lv_log_register_print_cb((lv_log_print_g_cb_t)p_lv_log_cb); 14dc: 4718 bx r3 14de: bf00 nop 14e0: 40001c00 .word 0x40001c00 14e4: 40000800 .word 0x40000800 14e8: 40003000 .word 0x40003000 14ec: 00000c3d .word 0x00000c3d 14f0: 20000a80 .word 0x20000a80 14f4: 41008000 .word 0x41008000 14f8: 00000cf1 .word 0x00000cf1 14fc: 00001425 .word 0x00001425 1500: 00001431 .word 0x00001431 1504: 0000143d .word 0x0000143d 1508: 00000cc5 .word 0x00000cc5 150c: 00001599 .word 0x00001599 1510: 0000eb15 .word 0x0000eb15 00001514 : { 1514: b510 push {r4, lr} b_tx_complete = false; 1516: 4c04 ldr r4, [pc, #16] ; (1528 ) 1518: 2300 movs r3, #0 151a: 7023 strb r3, [r4, #0] io_write(&inst->io, data, len); 151c: 4b03 ldr r3, [pc, #12] ; (152c ) 151e: 4798 blx r3 while(!b_tx_complete){} 1520: 7823 ldrb r3, [r4, #0] 1522: 2b00 cmp r3, #0 1524: d0fc beq.n 1520 } 1526: bd10 pop {r4, pc} 1528: 20000000 .word 0x20000000 152c: 000002ed .word 0x000002ed 00001530 : { 1530: b40f push {r0, r1, r2, r3} 1532: b530 push {r4, r5, lr} 1534: b0c5 sub sp, #276 ; 0x114 size_t size_str = strlen(str); 1536: 4c13 ldr r4, [pc, #76] ; (1584 ) { 1538: 9d48 ldr r5, [sp, #288] ; 0x120 size_t size_str = strlen(str); 153a: 4628 mov r0, r5 153c: 47a0 blx r4 if (size_str >= DEBUG_MAX_BUFFER_SIZE) 153e: 28ff cmp r0, #255 ; 0xff 1540: d81c bhi.n 157c memset(printf_buffer, '\0', DEBUG_MAX_BUFFER_SIZE); 1542: 4b11 ldr r3, [pc, #68] ; (1588 ) 1544: f44f 7280 mov.w r2, #256 ; 0x100 1548: 2100 movs r1, #0 154a: a804 add r0, sp, #16 154c: 4798 blx r3 va_start(args, str); 154e: ab49 add r3, sp, #292 ; 0x124 vsprintf((char*)printf_buffer, str, args); 1550: f44f 7280 mov.w r2, #256 ; 0x100 1554: 2100 movs r1, #0 va_start(args, str); 1556: 9303 str r3, [sp, #12] vsprintf((char*)printf_buffer, str, args); 1558: 9300 str r3, [sp, #0] 155a: a804 add r0, sp, #16 155c: 462b mov r3, r5 155e: 4d0b ldr r5, [pc, #44] ; (158c ) 1560: 47a8 blx r5 p_write(&p_usart_debug_inst, (const uint8_t*)printf_buffer, strlen((const char*)printf_buffer)); 1562: a804 add r0, sp, #16 1564: 47a0 blx r4 1566: 4b0a ldr r3, [pc, #40] ; (1590 ) 1568: b282 uxth r2, r0 156a: a904 add r1, sp, #16 156c: 4809 ldr r0, [pc, #36] ; (1594 ) 156e: 4798 blx r3 return 0; 1570: 2000 movs r0, #0 } 1572: b045 add sp, #276 ; 0x114 1574: e8bd 4030 ldmia.w sp!, {r4, r5, lr} 1578: b004 add sp, #16 157a: 4770 bx lr return -1; 157c: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff 1580: e7f7 b.n 1572 1582: bf00 nop 1584: 00017381 .word 0x00017381 1588: 00016ef9 .word 0x00016ef9 158c: 00018889 .word 0x00018889 1590: 00001515 .word 0x00001515 1594: 20000a94 .word 0x20000a94 00001598 : { 1598: b513 push {r0, r1, r4, lr} 159a: b2c0 uxtb r0, r0 159c: 2803 cmp r0, #3 159e: bf96 itet ls 15a0: 4c06 ldrls r4, [pc, #24] ; (15bc ) 15a2: 4807 ldrhi r0, [pc, #28] ; (15c0 ) 15a4: f854 0020 ldrls.w r0, [r4, r0, lsl #2] PDEBUG("[LVGL][%s][%s][%s][%d] --\t%s\r\n", "00:00:00:000", level == LV_LOG_LEVEL_TRACE ? "TRACE" : 15a8: 4c06 ldr r4, [pc, #24] ; (15c4 ) 15aa: e9cd 2300 strd r2, r3, [sp] 15ae: 460b mov r3, r1 15b0: 4602 mov r2, r0 15b2: 4905 ldr r1, [pc, #20] ; (15c8 ) 15b4: 4805 ldr r0, [pc, #20] ; (15cc ) 15b6: 47a0 blx r4 } 15b8: b002 add sp, #8 15ba: bd10 pop {r4, pc} 15bc: 0001de0c .word 0x0001de0c 15c0: 0001ddc4 .word 0x0001ddc4 15c4: 00001531 .word 0x00001531 15c8: 0001ddc9 .word 0x0001ddc9 15cc: 0001ddd6 .word 0x0001ddd6 000015d0 : static lv_disp_buf_t disp_buf; static lv_color_t buf[LV_HOR_RES_MAX * 34]; /*Declare a buffer for 10 lines*/ void p_screen_init(void) { 15d0: b530 push {r4, r5, lr} // devices init lv_init(); 15d2: 4b1a ldr r3, [pc, #104] ; (163c ) ssd1963_init(); lv_disp_buf_init(&disp_buf, buf, NULL, LV_HOR_RES_MAX * 34); /*Initialize the display buffer*/ 15d4: 4c1a ldr r4, [pc, #104] ; (1640 ) 15d6: 4d1b ldr r5, [pc, #108] ; (1644 ) { 15d8: b08d sub sp, #52 ; 0x34 lv_init(); 15da: 4798 blx r3 ssd1963_init(); 15dc: 4b1a ldr r3, [pc, #104] ; (1648 ) 15de: 4798 blx r3 lv_disp_buf_init(&disp_buf, buf, NULL, LV_HOR_RES_MAX * 34); /*Initialize the display buffer*/ 15e0: 2200 movs r2, #0 15e2: 491a ldr r1, [pc, #104] ; (164c ) 15e4: 4620 mov r0, r4 15e6: f44f 537f mov.w r3, #16320 ; 0x3fc0 15ea: 47a8 blx r5 lv_disp_drv_t disp_drv; /*Descriptor of a display driver*/ lv_disp_drv_init(&disp_drv); /*Basic initialization*/ 15ec: a801 add r0, sp, #4 15ee: 4b18 ldr r3, [pc, #96] ; (1650 ) 15f0: 4798 blx r3 disp_drv.flush_cb = ssd1963_flush; /*Set your driver function*/ 15f2: 4b18 ldr r3, [pc, #96] ; (1654 ) 15f4: 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*/ 15f6: a801 add r0, sp, #4 15f8: 4b17 ldr r3, [pc, #92] ; (1658 ) disp_drv.buffer = &disp_buf; /*Assign the buffer to the display*/ 15fa: 9402 str r4, [sp, #8] lv_disp_drv_register(&disp_drv); /*Finally register the driver*/ 15fc: 4798 blx r3 lv_obj_t* scr = lv_disp_get_scr_act(NULL); 15fe: 4b17 ldr r3, [pc, #92] ; (165c ) 1600: 2000 movs r0, #0 1602: 4798 blx r3 lv_obj_t* hornet_image = lv_img_create(scr, NULL); 1604: 4b16 ldr r3, [pc, #88] ; (1660 ) 1606: 2100 movs r1, #0 lv_obj_t* scr = lv_disp_get_scr_act(NULL); 1608: 4604 mov r4, r0 lv_obj_t* hornet_image = lv_img_create(scr, NULL); 160a: 4798 blx r3 lv_img_set_src(hornet_image, &hornet); 160c: 4b15 ldr r3, [pc, #84] ; (1664 ) 160e: 4916 ldr r1, [pc, #88] ; (1668 ) lv_obj_t* hornet_image = lv_img_create(scr, NULL); 1610: 4605 mov r5, r0 lv_img_set_src(hornet_image, &hornet); 1612: 4798 blx r3 lv_obj_set_pos(hornet_image, 0, 0); 1614: 2200 movs r2, #0 1616: 4611 mov r1, r2 1618: 4628 mov r0, r5 161a: 4d14 ldr r5, [pc, #80] ; (166c ) 161c: 47a8 blx r5 lv_obj_t* random_text = lv_label_create(scr, NULL); 161e: 4b14 ldr r3, [pc, #80] ; (1670 ) 1620: 2100 movs r1, #0 1622: 4620 mov r0, r4 1624: 4798 blx r3 lv_obj_set_pos(random_text, 90, 35); 1626: 2223 movs r2, #35 ; 0x23 lv_obj_t* random_text = lv_label_create(scr, NULL); 1628: 4604 mov r4, r0 lv_obj_set_pos(random_text, 90, 35); 162a: 215a movs r1, #90 ; 0x5a 162c: 47a8 blx r5 lv_label_set_text(random_text, "Hello World"); 162e: 4911 ldr r1, [pc, #68] ; (1674 ) 1630: 4b11 ldr r3, [pc, #68] ; (1678 ) 1632: 4620 mov r0, r4 1634: 4798 blx r3 } 1636: b00d add sp, #52 ; 0x34 1638: bd30 pop {r4, r5, pc} 163a: bf00 nop 163c: 00001f59 .word 0x00001f59 1640: 20000ae4 .word 0x20000ae4 1644: 0000d9c9 .word 0x0000d9c9 1648: 00001705 .word 0x00001705 164c: 20000b08 .word 0x20000b08 1650: 0000d989 .word 0x0000d989 1654: 000018b1 .word 0x000018b1 1658: 0000d9e9 .word 0x0000d9e9 165c: 00001a9d .word 0x00001a9d 1660: 00014951 .word 0x00014951 1664: 000146fd .word 0x000146fd 1668: 0001de28 .word 0x0001de28 166c: 00002acd .word 0x00002acd 1670: 00015b69 .word 0x00015b69 1674: 0001de1c .word 0x0001de1c 1678: 0001586d .word 0x0001586d 0000167c : void p_screen_service(void) { lv_task_handler(); 167c: 4b00 ldr r3, [pc, #0] ; (1680 ) 167e: 4718 bx r3 1680: 0000fc35 .word 0x0000fc35 00001684 : ((Port *)hw)->Group[submodule_index].OUTCLR.reg = mask; 1684: 490b ldr r1, [pc, #44] ; (16b4 ) /** * Write command * @param cmd the command */ static inline void ssd1963_cmd(uint8_t cmd) { 1686: b508 push {r3, lr} 1688: f44f 7380 mov.w r3, #256 ; 0x100 168c: 614b str r3, [r1, #20] if(cmd_mode == false) { 168e: 4b0a ldr r3, [pc, #40] ; (16b8 ) { 1690: 4602 mov r2, r0 if(cmd_mode == false) { 1692: 7818 ldrb r0, [r3, #0] 1694: b920 cbnz r0, 16a0 1696: f44f 7000 mov.w r0, #512 ; 0x200 169a: 6148 str r0, [r1, #20] cmd_mode = true; 169c: 2101 movs r1, #1 169e: 7019 strb r1, [r3, #0] LV_DRV_DISP_PAR_CS(0); ssd1963_cmd_mode(); LV_DRV_DISP_PAR_WR_WORD(cmd); 16a0: 4b06 ldr r3, [pc, #24] ; (16bc ) 16a2: 4807 ldr r0, [pc, #28] ; (16c0 ) 16a4: f06f 417f mvn.w r1, #4278190080 ; 0xff000000 16a8: 4798 blx r3 ((Port *)hw)->Group[submodule_index].OUTSET.reg = mask; 16aa: 4b02 ldr r3, [pc, #8] ; (16b4 ) 16ac: f44f 7280 mov.w r2, #256 ; 0x100 16b0: 619a str r2, [r3, #24] LV_DRV_DISP_PAR_CS(1); } 16b2: bd08 pop {r3, pc} 16b4: 41008000 .word 0x41008000 16b8: 20000001 .word 0x20000001 16bc: 000011f9 .word 0x000011f9 16c0: 41008080 .word 0x41008080 000016c4 : ((Port *)hw)->Group[submodule_index].OUTCLR.reg = mask; 16c4: 490b ldr r1, [pc, #44] ; (16f4 ) /** * Write data * @param data the data */ static inline void ssd1963_data(uint8_t data) { 16c6: b508 push {r3, lr} 16c8: f44f 7380 mov.w r3, #256 ; 0x100 16cc: 614b str r3, [r1, #20] if(cmd_mode != false) { 16ce: 4b0a ldr r3, [pc, #40] ; (16f8 ) { 16d0: 4602 mov r2, r0 if(cmd_mode != false) { 16d2: 7818 ldrb r0, [r3, #0] 16d4: b120 cbz r0, 16e0 ((Port *)hw)->Group[submodule_index].OUTSET.reg = mask; 16d6: f44f 7000 mov.w r0, #512 ; 0x200 16da: 6188 str r0, [r1, #24] cmd_mode = false; 16dc: 2100 movs r1, #0 16de: 7019 strb r1, [r3, #0] LV_DRV_DISP_PAR_CS(0); ssd1963_data_mode(); LV_DRV_DISP_PAR_WR_WORD(data); 16e0: 4b06 ldr r3, [pc, #24] ; (16fc ) 16e2: 4807 ldr r0, [pc, #28] ; (1700 ) 16e4: f06f 417f mvn.w r1, #4278190080 ; 0xff000000 16e8: 4798 blx r3 16ea: 4b02 ldr r3, [pc, #8] ; (16f4 ) 16ec: f44f 7280 mov.w r2, #256 ; 0x100 16f0: 619a str r2, [r3, #24] LV_DRV_DISP_PAR_CS(1); } 16f2: bd08 pop {r3, pc} 16f4: 41008000 .word 0x41008000 16f8: 20000001 .word 0x20000001 16fc: 000011f9 .word 0x000011f9 1700: 41008080 .word 0x41008080 00001704 : { 1704: e92d 43f8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, lr} asm volatile("nop"); 1708: bf00 nop 170a: 4f61 ldr r7, [pc, #388] ; (1890 ) LV_DRV_DELAY_MS(50); 170c: 4e61 ldr r6, [pc, #388] ; (1894 ) 170e: f04f 5480 mov.w r4, #268435456 ; 0x10000000 1712: f8c7 4118 str.w r4, [r7, #280] ; 0x118 1716: 2032 movs r0, #50 ; 0x32 1718: 47b0 blx r6 ((Port *)hw)->Group[submodule_index].OUTCLR.reg = mask; 171a: f8c7 4114 str.w r4, [r7, #276] ; 0x114 asm volatile("nop"); 171e: bf00 nop LV_DRV_DELAY_MS(50); 1720: 2032 movs r0, #50 ; 0x32 1722: 47b0 blx r6 ((Port *)hw)->Group[submodule_index].OUTSET.reg = mask; 1724: f8c7 4118 str.w r4, [r7, #280] ; 0x118 LV_DRV_DELAY_MS(50); 1728: 2032 movs r0, #50 ; 0x32 172a: 47b0 blx r6 asm volatile("nop"); 172c: bf00 nop ((Port *)hw)->Group[submodule_index].OUTCLR.reg = mask; 172e: f44f 7880 mov.w r8, #256 ; 0x100 LV_DRV_DELAY_MS(10); 1732: 200a movs r0, #10 1734: f8c7 8014 str.w r8, [r7, #20] 1738: 47b0 blx r6 LV_DRV_DELAY_MS(5); 173a: 2005 movs r0, #5 ((Port *)hw)->Group[submodule_index].OUTSET.reg = mask; 173c: f8c7 8018 str.w r8, [r7, #24] ssd1963_cmd(0x01); 1740: 4d55 ldr r5, [pc, #340] ; (1898 ) ssd1963_data(0x2F); //N=0x36 for 6.5M, 0x23 for 10M crystal 1742: 4c56 ldr r4, [pc, #344] ; (189c ) ssd1963_data((SSD1963_HOR_RES-1)>>8); //Set panel size 1744: f8df 9160 ldr.w r9, [pc, #352] ; 18a8 LV_DRV_DELAY_MS(5); 1748: 47b0 blx r6 ssd1963_cmd(0x01); 174a: 2001 movs r0, #1 174c: 47a8 blx r5 LV_DRV_DELAY_MS(20); 174e: 2014 movs r0, #20 1750: 47b0 blx r6 ssd1963_cmd(0x01); 1752: 2001 movs r0, #1 1754: 47a8 blx r5 LV_DRV_DELAY_MS(20); 1756: 2014 movs r0, #20 1758: 47b0 blx r6 ssd1963_cmd(0x01); 175a: 2001 movs r0, #1 175c: 47a8 blx r5 LV_DRV_DELAY_MS(20); 175e: 2014 movs r0, #20 1760: 47b0 blx r6 ssd1963_cmd(0xE2); //PLL multiplier, set PLL clock to 120M 1762: 20e2 movs r0, #226 ; 0xe2 ((Port *)hw)->Group[submodule_index].OUTCLR.reg = mask; 1764: f8c7 8014 str.w r8, [r7, #20] 1768: 47a8 blx r5 ssd1963_data(0x2F); //N=0x36 for 6.5M, 0x23 for 10M crystal 176a: 202f movs r0, #47 ; 0x2f 176c: 47a0 blx r4 ssd1963_data(0x03); 176e: 2003 movs r0, #3 1770: 47a0 blx r4 ssd1963_data(0x54); 1772: 2054 movs r0, #84 ; 0x54 1774: 47a0 blx r4 ssd1963_cmd(0xE0); // PLL enable 1776: 20e0 movs r0, #224 ; 0xe0 1778: 47a8 blx r5 ssd1963_data(0x01); 177a: 2001 movs r0, #1 177c: 47a0 blx r4 delay_us(100); 177e: 4b48 ldr r3, [pc, #288] ; (18a0 ) 1780: 2064 movs r0, #100 ; 0x64 1782: 4798 blx r3 ssd1963_cmd(0xE0); 1784: 20e0 movs r0, #224 ; 0xe0 1786: 47a8 blx r5 ssd1963_data(0x03); // now, use PLL output as system clock 1788: 2003 movs r0, #3 178a: 47a0 blx r4 delay_ms(1); 178c: 2001 movs r0, #1 178e: 47b0 blx r6 ssd1963_cmd(0x01); 1790: 2001 movs r0, #1 1792: 47a8 blx r5 delay_ms(1); 1794: 2001 movs r0, #1 1796: 47b0 blx r6 ssd1963_cmd(0xE6); //PLL setting for PCLK, depends on resolution 1798: 20e6 movs r0, #230 ; 0xe6 179a: 47a8 blx r5 ssd1963_data(0x01); 179c: 2001 movs r0, #1 179e: 47a0 blx r4 ssd1963_data(0xCC); 17a0: 20cc movs r0, #204 ; 0xcc 17a2: 47a0 blx r4 ssd1963_data(0xCC); 17a4: 20cc movs r0, #204 ; 0xcc 17a6: 47a0 blx r4 ssd1963_cmd(0xB0); 17a8: 20b0 movs r0, #176 ; 0xb0 17aa: 47a8 blx r5 ssd1963_data(0x28); // set 18-bit for 7" panel TY700TFT800480 17ac: 2028 movs r0, #40 ; 0x28 17ae: 47a0 blx r4 ssd1963_data((SSD1963_HOR_RES-1)>>8); //Set panel size 17b0: 4e3c ldr r6, [pc, #240] ; (18a4 ) ssd1963_data(0x80); // set TTL mode 17b2: 2080 movs r0, #128 ; 0x80 17b4: 47a0 blx r4 ssd1963_data((SSD1963_HOR_RES-1)>>8); //Set panel size 17b6: 47b0 blx r6 17b8: 47c8 blx r9 17ba: 3801 subs r0, #1 17bc: f3c0 2007 ubfx r0, r0, #8, #8 17c0: 47a0 blx r4 ssd1963_data(SSD1963_HOR_RES-1); 17c2: 47b0 blx r6 17c4: 47c8 blx r9 17c6: 3801 subs r0, #1 17c8: b2c0 uxtb r0, r0 17ca: 47a0 blx r4 ssd1963_data((SSD1963_VER_RES-1)>>8); 17cc: f8df 90dc ldr.w r9, [pc, #220] ; 18ac 17d0: 47b0 blx r6 17d2: 47c8 blx r9 17d4: 3801 subs r0, #1 17d6: f3c0 2007 ubfx r0, r0, #8, #8 17da: 47a0 blx r4 ssd1963_data(SSD1963_VER_RES-1); 17dc: 47b0 blx r6 17de: 47c8 blx r9 17e0: 3801 subs r0, #1 17e2: b2c0 uxtb r0, r0 17e4: 47a0 blx r4 ssd1963_data(0x00); 17e6: 2000 movs r0, #0 17e8: 47a0 blx r4 ssd1963_cmd(0xF0); //Pixel Data Interface Format 17ea: 20f0 movs r0, #240 ; 0xf0 17ec: 47a8 blx r5 ssd1963_data(0x03); //16-bit(565 format) data 17ee: 2003 movs r0, #3 17f0: 47a0 blx r4 ssd1963_cmd(0x3A); //Set the current pixel format for RGB image data 17f2: 203a movs r0, #58 ; 0x3a 17f4: 47a8 blx r5 ssd1963_data(0x55); //16-bit/pixel 17f6: 2055 movs r0, #85 ; 0x55 17f8: 47a0 blx r4 ssd1963_cmd(0xb4); //SET HBP, 17fa: 20b4 movs r0, #180 ; 0xb4 17fc: 47a8 blx r5 ssd1963_data(0x02); //SET HSYNC Tatol 525 17fe: 2002 movs r0, #2 1800: 47a0 blx r4 ssd1963_data(0x0d); 1802: 200d movs r0, #13 1804: 47a0 blx r4 ssd1963_data(0x00); //SET HBP 43 1806: 2000 movs r0, #0 1808: 47a0 blx r4 ssd1963_data(0x2b); 180a: 202b movs r0, #43 ; 0x2b 180c: 47a0 blx r4 ssd1963_data(0x28); //SET VBP 41=40+1 180e: 2028 movs r0, #40 ; 0x28 1810: 47a0 blx r4 ssd1963_data(0x00); //SET Hsync pulse start position 1812: 2000 movs r0, #0 1814: 47a0 blx r4 ssd1963_data(0x00); 1816: 2000 movs r0, #0 1818: 47a0 blx r4 ssd1963_data(0x00); //SET Hsync pulse subpixel start position 181a: 2000 movs r0, #0 181c: 47a0 blx r4 ssd1963_cmd(0xb6); //SET VBP, 181e: 20b6 movs r0, #182 ; 0xb6 1820: 47a8 blx r5 ssd1963_data(0x01); //SET Vsync total 286=285+1 1822: 2001 movs r0, #1 1824: 47a0 blx r4 ssd1963_data(0x1d); 1826: 201d movs r0, #29 1828: 47a0 blx r4 ssd1963_data(0x00); //SET VBP=12 182a: 2000 movs r0, #0 182c: 47a0 blx r4 ssd1963_data(0x0c); 182e: 200c movs r0, #12 1830: 47a0 blx r4 ssd1963_data(0x09); //SET Vsync pulse 10=9+1 1832: 2009 movs r0, #9 1834: 47a0 blx r4 ssd1963_data(0x00); //SET Vsync pulse start position 1836: 2000 movs r0, #0 1838: 47a0 blx r4 ssd1963_data(0x00); 183a: 2000 movs r0, #0 183c: 47a0 blx r4 ssd1963_cmd(0x2a); //SET column address 183e: 202a movs r0, #42 ; 0x2a 1840: 47a8 blx r5 ssd1963_data(0x00); //SET start column address=0 1842: 2000 movs r0, #0 1844: 47a0 blx r4 ssd1963_data(0x00); 1846: 2000 movs r0, #0 1848: 47a0 blx r4 ssd1963_data(0x01); //SET end column address=479 184a: 2001 movs r0, #1 184c: 47a0 blx r4 ssd1963_data(0xDF); 184e: 20df movs r0, #223 ; 0xdf 1850: 47a0 blx r4 ssd1963_cmd(0x2b); //SET page address 1852: 202b movs r0, #43 ; 0x2b 1854: 47a8 blx r5 ssd1963_data(0x00); //SET start page address=0 1856: 2000 movs r0, #0 1858: 47a0 blx r4 ssd1963_data(0x00); 185a: 2000 movs r0, #0 185c: 47a0 blx r4 ssd1963_data(0x01); //SET end page address=271 185e: 2001 movs r0, #1 1860: 47a0 blx r4 ssd1963_data(0x0F); 1862: 200f movs r0, #15 1864: 47a0 blx r4 ssd1963_cmd(0x29); //display on 1866: 2029 movs r0, #41 ; 0x29 1868: 47a8 blx r5 ssd1963_cmd(0xBE); 186a: 20be movs r0, #190 ; 0xbe 186c: 47a8 blx r5 ssd1963_data(0x06); 186e: 2006 movs r0, #6 1870: 47a0 blx r4 ssd1963_data(0xFF); 1872: 20ff movs r0, #255 ; 0xff 1874: 47a0 blx r4 ssd1963_data(0x01); 1876: 2001 movs r0, #1 1878: 47a0 blx r4 ssd1963_data(0xFF); 187a: 20ff movs r0, #255 ; 0xff 187c: 47a0 blx r4 ssd1963_data(0x00); 187e: 2000 movs r0, #0 1880: 47a0 blx r4 ssd1963_data(0x01); 1882: 2001 movs r0, #1 1884: 47a0 blx r4 ((Port *)hw)->Group[submodule_index].OUTSET.reg = mask; 1886: f8c7 8018 str.w r8, [r7, #24] } 188a: e8bd 83f8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, pc} 188e: bf00 nop 1890: 41008000 .word 0x41008000 1894: 000005b5 .word 0x000005b5 1898: 00001685 .word 0x00001685 189c: 000016c5 .word 0x000016c5 18a0: 00000591 .word 0x00000591 18a4: 0000db29 .word 0x0000db29 18a8: 0000db35 .word 0x0000db35 18ac: 0000db59 .word 0x0000db59 000018b0 : { 18b0: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} if(area->x2 < 0) return; 18b4: f9b1 3004 ldrsh.w r3, [r1, #4] { 18b8: ed2d 8b02 vpush {d8} if(area->x2 < 0) return; 18bc: 2b00 cmp r3, #0 { 18be: ee08 0a10 vmov s16, r0 18c2: b081 sub sp, #4 18c4: 460d mov r5, r1 18c6: 4690 mov r8, r2 if(area->x2 < 0) return; 18c8: f2c0 8086 blt.w 19d8 if(area->y2 < 0) return; 18cc: f9b1 3006 ldrsh.w r3, [r1, #6] 18d0: 2b00 cmp r3, #0 18d2: f2c0 8081 blt.w 19d8 if(area->x1 > SSD1963_HOR_RES - 1) return; 18d6: 4f43 ldr r7, [pc, #268] ; (19e4 ) 18d8: f8df a118 ldr.w sl, [pc, #280] ; 19f4 18dc: 47b8 blx r7 18de: 47d0 blx sl 18e0: f9b5 3000 ldrsh.w r3, [r5] 18e4: 4283 cmp r3, r0 18e6: da77 bge.n 19d8 if(area->y1 > SSD1963_VER_RES - 1) return; 18e8: 47b8 blx r7 18ea: f8df b10c ldr.w fp, [pc, #268] ; 19f8 18ee: 47d8 blx fp 18f0: f9b5 6002 ldrsh.w r6, [r5, #2] 18f4: 42b0 cmp r0, r6 18f6: dd6f ble.n 19d8 int32_t act_x1 = area->x1 < 0 ? 0 : area->x1; 18f8: f9b5 4000 ldrsh.w r4, [r5] int32_t act_x2 = area->x2 > SSD1963_HOR_RES - 1 ? SSD1963_HOR_RES - 1 : area->x2; 18fc: 47b8 blx r7 18fe: 47d0 blx sl 1900: f9b5 3004 ldrsh.w r3, [r5, #4] 1904: 4298 cmp r0, r3 int32_t act_x1 = area->x1 < 0 ? 0 : area->x1; 1906: ea24 74e4 bic.w r4, r4, r4, asr #31 int32_t act_y1 = area->y1 < 0 ? 0 : area->y1; 190a: 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; 190e: dc55 bgt.n 19bc 1910: 47b8 blx r7 1912: 47d0 blx sl 1914: f100 3aff add.w sl, r0, #4294967295 ; 0xffffffff int32_t act_y2 = area->y2 > SSD1963_VER_RES - 1 ? SSD1963_VER_RES - 1 : area->y2; 1918: 47b8 blx r7 191a: 47d8 blx fp 191c: f9b5 3006 ldrsh.w r3, [r5, #6] 1920: 4298 cmp r0, r3 1922: dc4d bgt.n 19c0 1924: 47b8 blx r7 1926: 47d8 blx fp 1928: 1e47 subs r7, r0, #1 ssd1963_cmd(0x002A); 192a: f8df 90d0 ldr.w r9, [pc, #208] ; 19fc ssd1963_data(act_x1 >> 8); 192e: f8df b0d0 ldr.w fp, [pc, #208] ; 1a00 ssd1963_cmd(0x002A); 1932: 202a movs r0, #42 ; 0x2a 1934: 47c8 blx r9 ssd1963_data(act_x1 >> 8); 1936: f3c4 2007 ubfx r0, r4, #8, #8 193a: 47d8 blx fp ssd1963_data(0x00FF & act_x1); 193c: b2e0 uxtb r0, r4 193e: 47d8 blx fp ssd1963_data(act_x2 >> 8); 1940: f3ca 2007 ubfx r0, sl, #8, #8 1944: 47d8 blx fp ssd1963_data(0x00FF & act_x2); 1946: fa5f f08a uxtb.w r0, sl 194a: 47d8 blx fp ssd1963_cmd(0x002B); 194c: 202b movs r0, #43 ; 0x2b 194e: 47c8 blx r9 ssd1963_data(act_y1 >> 8); 1950: f3c6 2007 ubfx r0, r6, #8, #8 1954: 47d8 blx fp ssd1963_data(0x00FF & act_y1); 1956: b2f0 uxtb r0, r6 1958: 47d8 blx fp ssd1963_data(act_y2 >> 8); 195a: f3c7 2007 ubfx r0, r7, #8, #8 195e: 47d8 blx fp ssd1963_data(0x00FF & act_y2); 1960: b2f8 uxtb r0, r7 1962: 47d8 blx fp ssd1963_cmd(0x2c); 1964: 202c movs r0, #44 ; 0x2c 1966: 47c8 blx r9 uint16_t full_w = area->x2 - area->x1 + 1; 1968: 88ab ldrh r3, [r5, #4] 196a: 882a ldrh r2, [r5, #0] 196c: 3301 adds r3, #1 196e: 1a9d subs r5, r3, r2 if(cmd_mode != false) { 1970: 4a1d ldr r2, [pc, #116] ; (19e8 ) 1972: 4b1e ldr r3, [pc, #120] ; (19ec ) 1974: 7811 ldrb r1, [r2, #0] uint16_t full_w = area->x2 - area->x1 + 1; 1976: b2ad uxth r5, r5 if(cmd_mode != false) { 1978: b121 cbz r1, 1984 197a: f44f 7100 mov.w r1, #512 ; 0x200 197e: 6199 str r1, [r3, #24] cmd_mode = false; 1980: 2100 movs r1, #0 1982: 7011 strb r1, [r2, #0] uint16_t act_w = act_x2 - act_x1 + 1; 1984: f1c4 0401 rsb r4, r4, #1 ((Port *)hw)->Group[submodule_index].OUTCLR.reg = mask; 1988: f44f 7280 mov.w r2, #256 ; 0x100 198c: 615a str r2, [r3, #20] LV_DRV_DISP_PAR_WR_ARRAY((uint16_t *)color_p, act_w); 198e: f8df b074 ldr.w fp, [pc, #116] ; 1a04 uint16_t act_w = act_x2 - act_x1 + 1; 1992: eb04 030a add.w r3, r4, sl LV_DRV_DISP_PAR_WR_ARRAY((uint16_t *)color_p, act_w); 1996: f8df a070 ldr.w sl, [pc, #112] ; 1a08 uint16_t act_w = act_x2 - act_x1 + 1; 199a: b29c uxth r4, r3 color_p += full_w; 199c: 006d lsls r5, r5, #1 for(i = act_y1; i <= act_y2; i++) { 199e: 42be cmp r6, r7 19a0: dd10 ble.n 19c4 ((Port *)hw)->Group[submodule_index].OUTSET.reg = mask; 19a2: 4b12 ldr r3, [pc, #72] ; (19ec ) 19a4: f44f 7280 mov.w r2, #256 ; 0x100 19a8: 619a str r2, [r3, #24] lv_disp_flush_ready(disp_drv); 19aa: ee18 0a10 vmov r0, s16 19ae: 4b10 ldr r3, [pc, #64] ; (19f0 ) } 19b0: b001 add sp, #4 19b2: ecbd 8b02 vpop {d8} 19b6: e8bd 4ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} lv_disp_flush_ready(disp_drv); 19ba: 4718 bx r3 int32_t act_x2 = area->x2 > SSD1963_HOR_RES - 1 ? SSD1963_HOR_RES - 1 : area->x2; 19bc: 469a mov sl, r3 19be: e7ab b.n 1918 int32_t act_y2 = area->y2 > SSD1963_VER_RES - 1 ? SSD1963_VER_RES - 1 : area->y2; 19c0: 461f mov r7, r3 19c2: e7b2 b.n 192a LV_DRV_DISP_PAR_WR_ARRAY((uint16_t *)color_p, act_w); 19c4: 4642 mov r2, r8 19c6: 4623 mov r3, r4 19c8: f06f 417f mvn.w r1, #4278190080 ; 0xff000000 19cc: 4650 mov r0, sl 19ce: 3601 adds r6, #1 19d0: 47d8 blx fp color_p += full_w; 19d2: 44a8 add r8, r5 for(i = act_y1; i <= act_y2; i++) { 19d4: b236 sxth r6, r6 19d6: e7e2 b.n 199e } 19d8: b001 add sp, #4 19da: ecbd 8b02 vpop {d8} 19de: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} 19e2: bf00 nop 19e4: 0000db29 .word 0x0000db29 19e8: 20000001 .word 0x20000001 19ec: 41008000 .word 0x41008000 19f0: 0000dbe5 .word 0x0000dbe5 19f4: 0000db35 .word 0x0000db35 19f8: 0000db59 .word 0x0000db59 19fc: 00001685 .word 0x00001685 1a00: 000016c5 .word 0x000016c5 1a04: 00001221 .word 0x00001221 1a08: 41008080 .word 0x41008080 00001a0c : bool lv_debug_check_null(const void * p) { if(p) return true; return false; } 1a0c: 3800 subs r0, #0 1a0e: bf18 it ne 1a10: 2001 movne r0, #1 1a12: 4770 bx lr 00001a14 : 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) { 1a14: b5f0 push {r4, r5, r6, r7, lr} static const char hex[] = "0123456789ABCDEF"; size_t msg_len = strlen(msg); 1a16: 4b1b ldr r3, [pc, #108] ; (1a84 ) { 1a18: b0c3 sub sp, #268 ; 0x10c 1a1a: 4607 mov r7, r0 1a1c: 4616 mov r6, r2 size_t msg_len = strlen(msg); 1a1e: 4798 blx r3 uint32_t value_len = sizeof(unsigned long int); if(msg_len < 230) { 1a20: 28e5 cmp r0, #229 ; 0xe5 size_t msg_len = strlen(msg); 1a22: 4604 mov r4, r0 if(msg_len < 230) { 1a24: d829 bhi.n 1a7a char buf[255]; char * bufp = buf; /*Add the function name*/ _lv_memcpy(bufp, msg, msg_len); 1a26: ad02 add r5, sp, #8 1a28: 4602 mov r2, r0 1a2a: 4b17 ldr r3, [pc, #92] ; (1a88 ) 1a2c: 4639 mov r1, r7 1a2e: 4628 mov r0, r5 1a30: 4798 blx r3 bufp += msg_len; 1a32: 192b adds r3, r5, r4 /*Add value in hey*/ *bufp = ' '; 1a34: 2220 movs r2, #32 1a36: 552a strb r2, [r5, r4] bufp ++; *bufp = '('; 1a38: 2228 movs r2, #40 ; 0x28 1a3a: 705a strb r2, [r3, #1] bufp ++; *bufp = '0'; 1a3c: 2230 movs r2, #48 ; 0x30 1a3e: 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]; 1a40: 4c12 ldr r4, [pc, #72] ; (1a8c ) *bufp = 'x'; 1a42: 2278 movs r2, #120 ; 0x78 1a44: 70da strb r2, [r3, #3] bufp ++; 1a46: 1d18 adds r0, r3, #4 1a48: 221c movs r2, #28 uint8_t x = (unsigned long int)((unsigned long int)value >> (i * 4)) & 0xF; 1a4a: fa26 f102 lsr.w r1, r6, r2 *bufp = hex[x]; 1a4e: f001 010f and.w r1, r1, #15 1a52: 4421 add r1, r4 for(i = value_len * 2 - 1; i >= 0; i--) { 1a54: 3a04 subs r2, #4 *bufp = hex[x]; 1a56: 7cc9 ldrb r1, [r1, #19] 1a58: f800 1b01 strb.w r1, [r0], #1 for(i = value_len * 2 - 1; i >= 0; i--) { 1a5c: 1d11 adds r1, r2, #4 1a5e: d1f4 bne.n 1a4a bufp++; } *bufp = ')'; 1a60: 2229 movs r2, #41 ; 0x29 1a62: 731a strb r2, [r3, #12] bufp ++; *bufp = '\0'; 1a64: 2200 movs r2, #0 1a66: 735a strb r2, [r3, #13] LV_LOG_ERROR(buf); 1a68: 4b09 ldr r3, [pc, #36] ; (1a90 ) 1a6a: 9500 str r5, [sp, #0] 1a6c: 22bc movs r2, #188 ; 0xbc } else { LV_LOG_ERROR(msg); 1a6e: 4909 ldr r1, [pc, #36] ; (1a94 ) 1a70: 4c09 ldr r4, [pc, #36] ; (1a98 ) 1a72: 2003 movs r0, #3 1a74: 47a0 blx r4 } } 1a76: b043 add sp, #268 ; 0x10c 1a78: bdf0 pop {r4, r5, r6, r7, pc} LV_LOG_ERROR(msg); 1a7a: 4b05 ldr r3, [pc, #20] ; (1a90 ) 1a7c: 9700 str r7, [sp, #0] 1a7e: 22bf movs r2, #191 ; 0xbf 1a80: e7f5 b.n 1a6e 1a82: bf00 nop 1a84: 00017381 .word 0x00017381 1a88: 0000ee69 .word 0x0000ee69 1a8c: 00026499 .word 0x00026499 1a90: 000264bd .word 0x000264bd 1a94: 0002638f .word 0x0002638f 1a98: 0000eb21 .word 0x0000eb21 00001a9c : * @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) { 1a9c: b537 push {r0, r1, r2, r4, r5, lr} if(!disp) disp = lv_disp_get_default(); 1a9e: 4604 mov r4, r0 1aa0: b970 cbnz r0, 1ac0 1aa2: 4b08 ldr r3, [pc, #32] ; (1ac4 ) 1aa4: 4798 blx r3 if(!disp) { 1aa6: 4604 mov r4, r0 1aa8: b950 cbnz r0, 1ac0 LV_LOG_WARN("lv_scr_act: no display registered to get its act. screen"); 1aaa: 4b07 ldr r3, [pc, #28] ; (1ac8 ) 1aac: 9300 str r3, [sp, #0] 1aae: 4907 ldr r1, [pc, #28] ; (1acc ) 1ab0: 4b07 ldr r3, [pc, #28] ; (1ad0 ) 1ab2: 4d08 ldr r5, [pc, #32] ; (1ad4 ) 1ab4: 222e movs r2, #46 ; 0x2e 1ab6: 2002 movs r0, #2 1ab8: 47a8 blx r5 return NULL; } return disp->act_scr; } 1aba: 4620 mov r0, r4 1abc: b003 add sp, #12 1abe: bd30 pop {r4, r5, pc} return disp->act_scr; 1ac0: 6be4 ldr r4, [r4, #60] ; 0x3c 1ac2: e7fa b.n 1aba 1ac4: 0000db29 .word 0x0000db29 1ac8: 00026500 .word 0x00026500 1acc: 000264d0 .word 0x000264d0 1ad0: 00026670 .word 0x00026670 1ad4: 0000eb21 .word 0x0000eb21 00001ad8 : * 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) { 1ad8: b537 push {r0, r1, r2, r4, r5, lr} if(!disp) disp = lv_disp_get_default(); 1ada: 4604 mov r4, r0 1adc: b970 cbnz r0, 1afc 1ade: 4b08 ldr r3, [pc, #32] ; (1b00 ) 1ae0: 4798 blx r3 if(!disp) { 1ae2: 4604 mov r4, r0 1ae4: b950 cbnz r0, 1afc LV_LOG_WARN("lv_layer_top: no display registered to get its top layer"); 1ae6: 4b07 ldr r3, [pc, #28] ; (1b04 ) 1ae8: 9300 str r3, [sp, #0] 1aea: 4907 ldr r1, [pc, #28] ; (1b08 ) 1aec: 4b07 ldr r3, [pc, #28] ; (1b0c ) 1aee: 4d08 ldr r5, [pc, #32] ; (1b10 ) 1af0: 224b movs r2, #75 ; 0x4b 1af2: 2002 movs r0, #2 1af4: 47a8 blx r5 return NULL; } return disp->top_layer; } 1af6: 4620 mov r0, r4 1af8: b003 add sp, #12 1afa: bd30 pop {r4, r5, pc} return disp->top_layer; 1afc: 6c24 ldr r4, [r4, #64] ; 0x40 1afe: e7fa b.n 1af6 1b00: 0000db29 .word 0x0000db29 1b04: 00026539 .word 0x00026539 1b08: 000264d0 .word 0x000264d0 1b0c: 00026684 .word 0x00026684 1b10: 0000eb21 .word 0x0000eb21 00001b14 : * 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) { 1b14: b537 push {r0, r1, r2, r4, r5, lr} if(!disp) disp = lv_disp_get_default(); 1b16: 4604 mov r4, r0 1b18: b970 cbnz r0, 1b38 1b1a: 4b08 ldr r3, [pc, #32] ; (1b3c ) 1b1c: 4798 blx r3 if(!disp) { 1b1e: 4604 mov r4, r0 1b20: b950 cbnz r0, 1b38 LV_LOG_WARN("lv_layer_sys: no display registered to get its sys. layer"); 1b22: 4b07 ldr r3, [pc, #28] ; (1b40 ) 1b24: 9300 str r3, [sp, #0] 1b26: 4907 ldr r1, [pc, #28] ; (1b44 ) 1b28: 4b07 ldr r3, [pc, #28] ; (1b48 ) 1b2a: 4d08 ldr r5, [pc, #32] ; (1b4c ) 1b2c: 225c movs r2, #92 ; 0x5c 1b2e: 2002 movs r0, #2 1b30: 47a8 blx r5 return NULL; } return disp->sys_layer; } 1b32: 4620 mov r0, r4 1b34: b003 add sp, #12 1b36: bd30 pop {r4, r5, pc} return disp->sys_layer; 1b38: 6c64 ldr r4, [r4, #68] ; 0x44 1b3a: e7fa b.n 1b32 1b3c: 0000db29 .word 0x0000db29 1b40: 00026572 .word 0x00026572 1b44: 000264d0 .word 0x000264d0 1b48: 0002669a .word 0x0002669a 1b4c: 0000eb21 .word 0x0000eb21 00001b50 : if(group->focus_cb) group->focus_cb(group); } static void obj_to_foreground(lv_obj_t * obj) { 1b50: 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); 1b52: 4d09 ldr r5, [pc, #36] ; (1b78 ) lv_obj_t * last_top = NULL; 1b54: 2400 movs r4, #0 while(i != NULL) { 1b56: b928 cbnz r0, 1b64 } if(last_top != NULL) { 1b58: b164 cbz r4, 1b74 /*Move the last_top object to the foreground*/ lv_obj_move_foreground(last_top); 1b5a: 4620 mov r0, r4 1b5c: 4b07 ldr r3, [pc, #28] ; (1b7c ) } } 1b5e: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr} lv_obj_move_foreground(last_top); 1b62: 4718 bx r3 if(i->top != 0) last_top = i; 1b64: f890 3034 ldrb.w r3, [r0, #52] ; 0x34 1b68: f013 0f20 tst.w r3, #32 1b6c: bf18 it ne 1b6e: 4604 movne r4, r0 i = lv_obj_get_parent(i); 1b70: 47a8 blx r5 1b72: e7f0 b.n 1b56 } 1b74: bd70 pop {r4, r5, r6, pc} 1b76: bf00 nop 1b78: 00002351 .word 0x00002351 1b7c: 00002a3d .word 0x00002a3d 00001b80 : { 1b80: e92d 47f3 stmdb sp!, {r0, r1, r4, r5, r6, r7, r8, r9, sl, lr} if(group->frozen) return; 1b84: 7d06 ldrb r6, [r0, #20] 1b86: f016 0601 ands.w r6, r6, #1 { 1b8a: 4605 mov r5, r0 1b8c: 4688 mov r8, r1 1b8e: 4617 mov r7, r2 if(group->frozen) return; 1b90: d15c bne.n 1c4c lv_obj_t ** obj_next = group->obj_focus; 1b92: 68c4 ldr r4, [r0, #12] if(!lv_obj_get_hidden(*obj_next)) break; 1b94: f8df a0c8 ldr.w sl, [pc, #200] ; 1c60 bool can_begin = true; 1b98: f04f 0901 mov.w r9, #1 if(obj_next == NULL) { 1b9c: 2c00 cmp r4, #0 1b9e: d14c bne.n 1c3a if(group->wrap || obj_sentinel == NULL) { 1ba0: 7d2b ldrb r3, [r5, #20] 1ba2: 06db lsls r3, r3, #27 1ba4: d401 bmi.n 1baa 1ba6: 2e00 cmp r6, #0 1ba8: d150 bne.n 1c4c if(!can_begin) return; 1baa: f1b9 0f00 cmp.w r9, #0 1bae: d04d beq.n 1c4c obj_next = begin(&group->obj_ll); 1bb0: 4628 mov r0, r5 1bb2: 47c0 blx r8 1bb4: 4604 mov r4, r0 if(obj_sentinel == NULL) { 1bb6: 2e00 cmp r6, #0 1bb8: d13a bne.n 1c30 if(obj_sentinel == NULL) return; /*Group is empty*/ 1bba: 2800 cmp r0, #0 1bbc: d046 beq.n 1c4c 1bbe: 4606 mov r6, r0 can_begin = false; 1bc0: f04f 0900 mov.w r9, #0 if(!lv_obj_get_hidden(*obj_next)) break; 1bc4: 6820 ldr r0, [r4, #0] 1bc6: 47d0 blx sl 1bc8: 4602 mov r2, r0 1bca: 2800 cmp r0, #0 1bcc: d1e6 bne.n 1b9c if(obj_next == group->obj_focus) return; /*There's only one visible object and it's already focused*/ 1bce: 68eb ldr r3, [r5, #12] 1bd0: 42a3 cmp r3, r4 1bd2: d03b beq.n 1c4c if(group->obj_focus) { 1bd4: 4e1f ldr r6, [pc, #124] ; (1c54 ) 1bd6: b17b cbz r3, 1bf8 (*group->obj_focus)->signal_cb(*group->obj_focus, LV_SIGNAL_DEFOCUS, NULL); 1bd8: 6818 ldr r0, [r3, #0] 1bda: 9201 str r2, [sp, #4] 1bdc: 69c3 ldr r3, [r0, #28] 1bde: 2117 movs r1, #23 1be0: 4798 blx r3 lv_res_t res = lv_event_send(*group->obj_focus, LV_EVENT_DEFOCUSED, NULL); 1be2: 68eb ldr r3, [r5, #12] 1be4: 9a01 ldr r2, [sp, #4] 1be6: 6818 ldr r0, [r3, #0] 1be8: 210e movs r1, #14 1bea: 47b0 blx r6 if(res != LV_RES_OK) return; 1bec: 2801 cmp r0, #1 1bee: d12d bne.n 1c4c lv_obj_invalidate(*group->obj_focus); 1bf0: 68eb ldr r3, [r5, #12] 1bf2: 6818 ldr r0, [r3, #0] 1bf4: 4b18 ldr r3, [pc, #96] ; (1c58 ) 1bf6: 4798 blx r3 (*group->obj_focus)->signal_cb(*group->obj_focus, LV_SIGNAL_FOCUS, NULL); 1bf8: 6820 ldr r0, [r4, #0] group->obj_focus = obj_next; 1bfa: 60ec str r4, [r5, #12] (*group->obj_focus)->signal_cb(*group->obj_focus, LV_SIGNAL_FOCUS, NULL); 1bfc: 69c3 ldr r3, [r0, #28] 1bfe: 2200 movs r2, #0 1c00: 2116 movs r1, #22 1c02: 4798 blx r3 lv_res_t res = lv_event_send(*group->obj_focus, LV_EVENT_FOCUSED, NULL); 1c04: 68eb ldr r3, [r5, #12] 1c06: 2200 movs r2, #0 1c08: 6818 ldr r0, [r3, #0] 1c0a: 210d movs r1, #13 1c0c: 47b0 blx r6 if(res != LV_RES_OK) return; 1c0e: 2801 cmp r0, #1 1c10: d11c bne.n 1c4c obj_to_foreground(*group->obj_focus); 1c12: 68eb ldr r3, [r5, #12] 1c14: 6818 ldr r0, [r3, #0] 1c16: 4b11 ldr r3, [pc, #68] ; (1c5c ) 1c18: 4798 blx r3 lv_obj_invalidate(*group->obj_focus); 1c1a: 68eb ldr r3, [r5, #12] 1c1c: 6818 ldr r0, [r3, #0] 1c1e: 4b0e ldr r3, [pc, #56] ; (1c58 ) 1c20: 4798 blx r3 if(group->focus_cb) group->focus_cb(group); 1c22: 692b ldr r3, [r5, #16] 1c24: b193 cbz r3, 1c4c 1c26: 4628 mov r0, r5 } 1c28: b002 add sp, #8 1c2a: e8bd 47f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr} if(group->focus_cb) group->focus_cb(group); 1c2e: 4718 bx r3 can_begin = false; 1c30: f04f 0900 mov.w r9, #0 if(obj_next == NULL) continue; 1c34: 2c00 cmp r4, #0 1c36: d1c5 bne.n 1bc4 1c38: e7b2 b.n 1ba0 obj_next = move(&group->obj_ll, obj_next); 1c3a: 4621 mov r1, r4 1c3c: 4628 mov r0, r5 1c3e: 47b8 blx r7 if(obj_sentinel == NULL) { 1c40: 2e00 cmp r6, #0 1c42: bf08 it eq 1c44: 4626 moveq r6, r4 if(obj_next == obj_sentinel) return; 1c46: 42b0 cmp r0, r6 obj_next = move(&group->obj_ll, obj_next); 1c48: 4604 mov r4, r0 if(obj_next == obj_sentinel) return; 1c4a: d1f3 bne.n 1c34 } 1c4c: b002 add sp, #8 1c4e: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} 1c52: bf00 nop 1c54: 000021a5 .word 0x000021a5 1c58: 000029b1 .word 0x000029b1 1c5c: 00001b51 .word 0x00001b51 1c60: 00002849 .word 0x00002849 00001c64 <_lv_group_init>: _lv_ll_init(&LV_GC_ROOT(_lv_group_ll), sizeof(lv_group_t)); 1c64: 4801 ldr r0, [pc, #4] ; (1c6c <_lv_group_init+0x8>) 1c66: 4b02 ldr r3, [pc, #8] ; (1c70 <_lv_group_init+0xc>) 1c68: 2118 movs r1, #24 1c6a: 4718 bx r3 1c6c: 20008fe4 .word 0x20008fe4 1c70: 0000e831 .word 0x0000e831 00001c74 : focus_next_core(group, _lv_ll_get_head, _lv_ll_get_next); 1c74: 4a01 ldr r2, [pc, #4] ; (1c7c ) 1c76: 4902 ldr r1, [pc, #8] ; (1c80 ) 1c78: 4b02 ldr r3, [pc, #8] ; (1c84 ) 1c7a: 4718 bx r3 1c7c: 0000e8e1 .word 0x0000e8e1 1c80: 0000e8d5 .word 0x0000e8d5 1c84: 00001b81 .word 0x00001b81 00001c88 : focus_next_core(group, _lv_ll_get_tail, _lv_ll_get_prev); 1c88: 4a01 ldr r2, [pc, #4] ; (1c90 ) 1c8a: 4902 ldr r1, [pc, #8] ; (1c94 ) 1c8c: 4b02 ldr r3, [pc, #8] ; (1c98 ) 1c8e: 4718 bx r3 1c90: 0000e901 .word 0x0000e901 1c94: 0000e8db .word 0x0000e8db 1c98: 00001b81 .word 0x00001b81 00001c9c : { 1c9c: b538 push {r3, r4, r5, lr} uint8_t temp_wrap = g->wrap; 1c9e: 7d03 ldrb r3, [r0, #20] 1ca0: f3c3 1500 ubfx r5, r3, #4, #1 g->wrap = 1; 1ca4: f043 0310 orr.w r3, r3, #16 1ca8: 7503 strb r3, [r0, #20] { 1caa: 4604 mov r4, r0 if(g->refocus_policy == LV_GROUP_REFOCUS_POLICY_NEXT) 1cac: 071b lsls r3, r3, #28 lv_group_focus_next(g); 1cae: bf54 ite pl 1cb0: 4b03 ldrpl r3, [pc, #12] ; (1cc0 ) lv_group_focus_prev(g); 1cb2: 4b04 ldrmi r3, [pc, #16] ; (1cc4 ) 1cb4: 4798 blx r3 g->wrap = temp_wrap; 1cb6: 7d23 ldrb r3, [r4, #20] 1cb8: f365 1304 bfi r3, r5, #4, #1 1cbc: 7523 strb r3, [r4, #20] } 1cbe: bd38 pop {r3, r4, r5, pc} 1cc0: 00001c75 .word 0x00001c75 1cc4: 00001c89 .word 0x00001c89 00001cc8 : { 1cc8: e92d 41f3 stmdb sp!, {r0, r1, r4, r5, r6, r7, r8, lr} 1ccc: 460d mov r5, r1 if(group == NULL) return; 1cce: 4604 mov r4, r0 1cd0: 2800 cmp r0, #0 1cd2: d036 beq.n 1d42 _LV_LL_READ(group->obj_ll, obj_i) { 1cd4: f8df 80c4 ldr.w r8, [pc, #196] ; 1d9c 1cd8: 4e24 ldr r6, [pc, #144] ; (1d6c ) 1cda: 47c0 blx r8 1cdc: bb30 cbnz r0, 1d2c if(obj->group_p) { 1cde: 6bab ldr r3, [r5, #56] ; 0x38 1ce0: b173 cbz r3, 1d00 if(lv_obj_is_focused(obj)) { 1ce2: 4b23 ldr r3, [pc, #140] ; (1d70 ) 1ce4: 4628 mov r0, r5 1ce6: 4798 blx r3 1ce8: b150 cbz r0, 1d00 lv_group_refocus(obj->group_p); 1cea: 6ba8 ldr r0, [r5, #56] ; 0x38 1cec: 4b21 ldr r3, [pc, #132] ; (1d74 ) LV_LOG_INFO("lv_group_add_obj: assign object to an other group"); 1cee: 4e22 ldr r6, [pc, #136] ; (1d78 ) lv_group_refocus(obj->group_p); 1cf0: 4798 blx r3 LV_LOG_INFO("lv_group_add_obj: assign object to an other group"); 1cf2: 4b22 ldr r3, [pc, #136] ; (1d7c ) 1cf4: 9300 str r3, [sp, #0] 1cf6: 4922 ldr r1, [pc, #136] ; (1d80 ) 1cf8: 4b22 ldr r3, [pc, #136] ; (1d84 ) 1cfa: 227f movs r2, #127 ; 0x7f 1cfc: 2001 movs r0, #1 1cfe: 47b0 blx r6 lv_obj_t ** next = _lv_ll_ins_tail(&group->obj_ll); 1d00: 4b21 ldr r3, [pc, #132] ; (1d88 ) obj->group_p = group; 1d02: 63ac str r4, [r5, #56] ; 0x38 lv_obj_t ** next = _lv_ll_ins_tail(&group->obj_ll); 1d04: 4620 mov r0, r4 1d06: 4798 blx r3 LV_ASSERT_MEM(next); 1d08: 4b20 ldr r3, [pc, #128] ; (1d8c ) lv_obj_t ** next = _lv_ll_ins_tail(&group->obj_ll); 1d0a: 4606 mov r6, r0 LV_ASSERT_MEM(next); 1d0c: 4798 blx r3 1d0e: 4607 mov r7, r0 1d10: b9f0 cbnz r0, 1d50 1d12: 4b1c ldr r3, [pc, #112] ; (1d84 ) 1d14: 491a ldr r1, [pc, #104] ; (1d80 ) 1d16: 9300 str r3, [sp, #0] 1d18: 2285 movs r2, #133 ; 0x85 1d1a: 2003 movs r0, #3 1d1c: 4c16 ldr r4, [pc, #88] ; (1d78 ) 1d1e: 47a0 blx r4 1d20: 481b ldr r0, [pc, #108] ; (1d90 ) 1d22: 491c ldr r1, [pc, #112] ; (1d94 ) 1d24: 4632 mov r2, r6 1d26: 463b mov r3, r7 1d28: 4788 blx r1 1d2a: e7fe b.n 1d2a if((*obj_i) == obj) { 1d2c: 6803 ldr r3, [r0, #0] 1d2e: 42ab cmp r3, r5 1d30: d10a bne.n 1d48 LV_LOG_INFO("lv_group_add_obj: the object is already added to this group"); 1d32: 4b19 ldr r3, [pc, #100] ; (1d98 ) 1d34: 9300 str r3, [sp, #0] 1d36: 4912 ldr r1, [pc, #72] ; (1d80 ) 1d38: 4b12 ldr r3, [pc, #72] ; (1d84 ) 1d3a: 4c0f ldr r4, [pc, #60] ; (1d78 ) 1d3c: 2275 movs r2, #117 ; 0x75 1d3e: 2001 movs r0, #1 1d40: 47a0 blx r4 } 1d42: b002 add sp, #8 1d44: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} _LV_LL_READ(group->obj_ll, obj_i) { 1d48: 4601 mov r1, r0 1d4a: 4620 mov r0, r4 1d4c: 47b0 blx r6 1d4e: e7c5 b.n 1cdc if(next == NULL) return; 1d50: 2e00 cmp r6, #0 1d52: d0f6 beq.n 1d42 *next = obj; 1d54: 6035 str r5, [r6, #0] if(_lv_ll_get_head(&group->obj_ll) == next) { 1d56: 4620 mov r0, r4 1d58: 47c0 blx r8 1d5a: 4286 cmp r6, r0 1d5c: d1f1 bne.n 1d42 lv_group_refocus(group); 1d5e: 4b05 ldr r3, [pc, #20] ; (1d74 ) 1d60: 4620 mov r0, r4 } 1d62: b002 add sp, #8 1d64: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr} lv_group_refocus(group); 1d68: 4718 bx r3 1d6a: bf00 nop 1d6c: 0000e8e1 .word 0x0000e8e1 1d70: 00004425 .word 0x00004425 1d74: 00001c9d .word 0x00001c9d 1d78: 0000eb21 .word 0x0000eb21 1d7c: 00026788 .word 0x00026788 1d80: 0002670d .word 0x0002670d 1d84: 000267ca .word 0x000267ca 1d88: 0000e88d .word 0x0000e88d 1d8c: 00001a0d .word 0x00001a0d 1d90: 0002673e .word 0x0002673e 1d94: 00001a15 .word 0x00001a15 1d98: 0002674c .word 0x0002674c 1d9c: 0000e8d5 .word 0x0000e8d5 00001da0 : { 1da0: b5f8 push {r3, r4, r5, r6, r7, lr} lv_group_t * g = obj->group_p; 1da2: 6b84 ldr r4, [r0, #56] ; 0x38 { 1da4: 4606 mov r6, r0 if(g == NULL) return; 1da6: 2c00 cmp r4, #0 1da8: d033 beq.n 1e12 if(g->obj_focus == NULL) return; /*Just to be sure (Not possible if there is at least one object in the group)*/ 1daa: 68e3 ldr r3, [r4, #12] 1dac: 2b00 cmp r3, #0 1dae: d030 beq.n 1e12 if(*g->obj_focus == obj) { 1db0: 681b ldr r3, [r3, #0] 1db2: 4d1c ldr r5, [pc, #112] ; (1e24 ) 1db4: 4283 cmp r3, r0 1db6: d11b bne.n 1df0 if(g->frozen) g->frozen = 0; 1db8: 7d23 ldrb r3, [r4, #20] 1dba: 07da lsls r2, r3, #31 1dbc: bf44 itt mi 1dbe: f36f 0300 bfcmi r3, #0, #1 1dc2: 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) { 1dc4: 4620 mov r0, r4 1dc6: 47a8 blx r5 1dc8: 68e3 ldr r3, [r4, #12] 1dca: 4283 cmp r3, r0 1dcc: d122 bne.n 1e14 1dce: 4b16 ldr r3, [pc, #88] ; (1e28 ) 1dd0: 4620 mov r0, r4 1dd2: 4798 blx r3 1dd4: 68e3 ldr r3, [r4, #12] 1dd6: 4298 cmp r0, r3 1dd8: d11c bne.n 1e14 (*g->obj_focus)->signal_cb(*g->obj_focus, LV_SIGNAL_DEFOCUS, NULL); 1dda: 6800 ldr r0, [r0, #0] 1ddc: 2200 movs r2, #0 1dde: 69c3 ldr r3, [r0, #28] 1de0: 2117 movs r1, #23 1de2: 4798 blx r3 if(*g->obj_focus == obj) { 1de4: 68e3 ldr r3, [r4, #12] 1de6: 681b ldr r3, [r3, #0] 1de8: 42b3 cmp r3, r6 g->obj_focus = NULL; 1dea: bf04 itt eq 1dec: 2300 moveq r3, #0 1dee: 60e3 streq r3, [r4, #12] _LV_LL_READ(g->obj_ll, i) { 1df0: 4620 mov r0, r4 1df2: 47a8 blx r5 1df4: 4f0d ldr r7, [pc, #52] ; (1e2c ) 1df6: 4605 mov r5, r0 1df8: b15d cbz r5, 1e12 if(*i == obj) { 1dfa: 682b ldr r3, [r5, #0] 1dfc: 42b3 cmp r3, r6 _lv_ll_remove(&g->obj_ll, i); 1dfe: 4629 mov r1, r5 1e00: 4620 mov r0, r4 if(*i == obj) { 1e02: d10b bne.n 1e1c _lv_ll_remove(&g->obj_ll, i); 1e04: 4b0a ldr r3, [pc, #40] ; (1e30 ) 1e06: 4798 blx r3 lv_mem_free(i); 1e08: 4b0a ldr r3, [pc, #40] ; (1e34 ) 1e0a: 4628 mov r0, r5 1e0c: 4798 blx r3 obj->group_p = NULL; 1e0e: 2300 movs r3, #0 1e10: 63b3 str r3, [r6, #56] ; 0x38 } 1e12: bdf8 pop {r3, r4, r5, r6, r7, pc} lv_group_refocus(g); 1e14: 4b08 ldr r3, [pc, #32] ; (1e38 ) 1e16: 4620 mov r0, r4 1e18: 4798 blx r3 1e1a: e7e3 b.n 1de4 _LV_LL_READ(g->obj_ll, i) { 1e1c: 47b8 blx r7 1e1e: 4605 mov r5, r0 1e20: e7ea b.n 1df8 1e22: bf00 nop 1e24: 0000e8d5 .word 0x0000e8d5 1e28: 0000e8db .word 0x0000e8db 1e2c: 0000e8e1 .word 0x0000e8e1 1e30: 0000e999 .word 0x0000e999 1e34: 0000ed1d .word 0x0000ed1d 1e38: 00001c9d .word 0x00001c9d 00001e3c : if(!group) return NULL; 1e3c: b110 cbz r0, 1e44 if(group->obj_focus == NULL) return NULL; 1e3e: 68c0 ldr r0, [r0, #12] 1e40: b100 cbz r0, 1e44 return *group->obj_focus; 1e42: 6800 ldr r0, [r0, #0] } 1e44: 4770 bx lr 00001e46 : if(!group) return false; 1e46: b110 cbz r0, 1e4e return group->editing ? true : false; 1e48: 7d00 ldrb r0, [r0, #20] 1e4a: f3c0 0040 ubfx r0, r0, #1, #1 } 1e4e: 4770 bx lr 00001e50 : void lv_indev_reset(lv_indev_t * indev, lv_obj_t * obj) 1e50: b5f8 push {r3, r4, r5, r6, r7, lr} lv_indev_t * i = lv_indev_get_next(NULL); 1e52: 4d0c ldr r5, [pc, #48] ; (1e84 ) if(indev_act == i) indev_obj_act = NULL; 1e54: 4e0c ldr r6, [pc, #48] ; (1e88 ) void lv_indev_reset(lv_indev_t * indev, lv_obj_t * obj) 1e56: 4604 mov r4, r0 lv_indev_t * i = lv_indev_get_next(NULL); 1e58: 2000 movs r0, #0 1e5a: 47a8 blx r5 if(indev_act == i) indev_obj_act = NULL; 1e5c: 2700 movs r7, #0 while(i) { 1e5e: b900 cbnz r0, 1e62 } 1e60: bdf8 pop {r3, r4, r5, r6, r7, pc} i->proc.reset_query = 1; 1e62: f890 3050 ldrb.w r3, [r0, #80] ; 0x50 1e66: f043 0302 orr.w r3, r3, #2 1e6a: f880 3050 strb.w r3, [r0, #80] ; 0x50 if(indev_act == i) indev_obj_act = NULL; 1e6e: 6873 ldr r3, [r6, #4] 1e70: 4298 cmp r0, r3 1e72: bf08 it eq 1e74: 6037 streq r7, [r6, #0] if(obj == NULL || i->proc.types.pointer.last_pressed == obj) { 1e76: b114 cbz r4, 1e7e 1e78: 6bc3 ldr r3, [r0, #60] ; 0x3c 1e7a: 429c cmp r4, r3 1e7c: d100 bne.n 1e80 i->proc.types.pointer.last_pressed = NULL; 1e7e: 63c7 str r7, [r0, #60] ; 0x3c i = lv_indev_get_next(i); 1e80: 47a8 blx r5 1e82: e7ec b.n 1e5e 1e84: 0000dc45 .word 0x0000dc45 1e88: 20008a88 .word 0x20008a88 00001e8c <_lv_indev_init>: if(indev) { 1e8c: 4b01 ldr r3, [pc, #4] ; (1e94 <_lv_indev_init+0x8>) 1e8e: 2000 movs r0, #0 1e90: 4718 bx r3 1e92: bf00 nop 1e94: 00001e51 .word 0x00001e51 00001e98 : } 1e98: 4b01 ldr r3, [pc, #4] ; (1ea0 ) 1e9a: 6858 ldr r0, [r3, #4] 1e9c: 4770 bx lr 1e9e: bf00 nop 1ea0: 20008a88 .word 0x20008a88 00001ea4 : if(indev) { 1ea4: 4603 mov r3, r0 1ea6: b190 cbz r0, 1ece indev->proc.reset_query = 1; 1ea8: f890 2050 ldrb.w r2, [r0, #80] ; 0x50 1eac: f042 0202 orr.w r2, r2, #2 1eb0: f880 2050 strb.w r2, [r0, #80] ; 0x50 if(indev_act == indev) indev_obj_act = NULL; 1eb4: 4a08 ldr r2, [pc, #32] ; (1ed8 ) 1eb6: 6850 ldr r0, [r2, #4] 1eb8: 4298 cmp r0, r3 1eba: bf04 itt eq 1ebc: 2000 moveq r0, #0 1ebe: 6010 streq r0, [r2, #0] if(obj == NULL || indev->proc.types.pointer.last_pressed == obj) { 1ec0: b111 cbz r1, 1ec8 1ec2: 6bda ldr r2, [r3, #60] ; 0x3c 1ec4: 428a cmp r2, r1 1ec6: d105 bne.n 1ed4 indev->proc.types.pointer.last_pressed = NULL; 1ec8: 2200 movs r2, #0 1eca: 63da str r2, [r3, #60] ; 0x3c 1ecc: 4770 bx lr 1ece: 4b03 ldr r3, [pc, #12] ; (1edc ) 1ed0: 4608 mov r0, r1 1ed2: 4718 bx r3 } 1ed4: 4770 bx lr 1ed6: bf00 nop 1ed8: 20008a88 .word 0x20008a88 1edc: 00001e51 .word 0x00001e51 00001ee0 : } 1ee0: 4b01 ldr r3, [pc, #4] ; (1ee8 ) 1ee2: 6818 ldr r0, [r3, #0] 1ee4: 4770 bx lr 1ee6: bf00 nop 1ee8: 20008a88 .word 0x20008a88 00001eec : * @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) { 1eec: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} lv_obj_t * i; _LV_LL_READ(obj->child_ll, i) { 1ef0: 1d05 adds r5, r0, #4 1ef2: 4b12 ldr r3, [pc, #72] ; (1f3c ) 1ef4: f8df 9048 ldr.w r9, [pc, #72] ; 1f40 1ef8: 4628 mov r0, r5 { 1efa: 460e mov r6, r1 1efc: 4617 mov r7, r2 _LV_LL_READ(obj->child_ll, i) { 1efe: 4798 blx r3 i->coords.x1 += x_diff; 1f00: fa1f f886 uxth.w r8, r6 _LV_LL_READ(obj->child_ll, i) { 1f04: 4604 mov r4, r0 i->coords.y1 += y_diff; 1f06: fa1f fa87 uxth.w sl, r7 _LV_LL_READ(obj->child_ll, i) { 1f0a: b90c cbnz r4, 1f10 i->coords.x2 += x_diff; i->coords.y2 += y_diff; refresh_children_position(i, x_diff, y_diff); } } 1f0c: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} i->coords.x1 += x_diff; 1f10: 8a23 ldrh r3, [r4, #16] 1f12: 4443 add r3, r8 1f14: 8223 strh r3, [r4, #16] i->coords.y1 += y_diff; 1f16: 8a63 ldrh r3, [r4, #18] 1f18: 4453 add r3, sl 1f1a: 8263 strh r3, [r4, #18] i->coords.x2 += x_diff; 1f1c: 8aa3 ldrh r3, [r4, #20] 1f1e: 4443 add r3, r8 1f20: 82a3 strh r3, [r4, #20] i->coords.y2 += y_diff; 1f22: 8ae3 ldrh r3, [r4, #22] 1f24: 4453 add r3, sl 1f26: 82e3 strh r3, [r4, #22] refresh_children_position(i, x_diff, y_diff); 1f28: 4620 mov r0, r4 1f2a: 463a mov r2, r7 1f2c: 4631 mov r1, r6 1f2e: f7ff ffdd bl 1eec _LV_LL_READ(obj->child_ll, i) { 1f32: 4621 mov r1, r4 1f34: 4628 mov r0, r5 1f36: 47c8 blx r9 1f38: 4604 mov r4, r0 1f3a: e7e6 b.n 1f0a 1f3c: 0000e8d5 .word 0x0000e8d5 1f40: 0000e8e1 .word 0x0000e8e1 00001f44 : 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) { 1f44: 3901 subs r1, #1 1f46: f100 0308 add.w r3, r0, #8 *d8 = *s8; 1f4a: f811 2f01 ldrb.w r2, [r1, #1]! 1f4e: f800 2b01 strb.w r2, [r0], #1 while(len) { 1f52: 4298 cmp r0, r3 1f54: d1f9 bne.n 1f4a * @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)); } 1f56: 4770 bx lr 00001f58 : { 1f58: b5f0 push {r4, r5, r6, r7, lr} if(lv_initialized) { 1f5a: 4e20 ldr r6, [pc, #128] ; (1fdc ) 1f5c: 4d20 ldr r5, [pc, #128] ; (1fe0 ) 1f5e: 7833 ldrb r3, [r6, #0] { 1f60: b085 sub sp, #20 if(lv_initialized) { 1f62: b143 cbz r3, 1f76 LV_LOG_WARN("lv_init: already inited"); 1f64: 4b1f ldr r3, [pc, #124] ; (1fe4 ) 1f66: 9300 str r3, [sp, #0] 1f68: 491f ldr r1, [pc, #124] ; (1fe8 ) 1f6a: 4b20 ldr r3, [pc, #128] ; (1fec ) 1f6c: 2278 movs r2, #120 ; 0x78 1f6e: 2002 movs r0, #2 LV_LOG_INFO("lv_init ready"); 1f70: 47a8 blx r5 } 1f72: b005 add sp, #20 1f74: bdf0 pop {r4, r5, r6, r7, pc} _lv_mem_init(); 1f76: 4b1e ldr r3, [pc, #120] ; (1ff0 ) _lv_ll_init(&LV_GC_ROOT(_lv_obj_style_trans_ll), sizeof(lv_style_trans_t)); 1f78: 4c1e ldr r4, [pc, #120] ; (1ff4 ) lv_theme_t * th = LV_THEME_DEFAULT_INIT(LV_THEME_DEFAULT_COLOR_PRIMARY, LV_THEME_DEFAULT_COLOR_SECONDARY, 1f7a: 4f1f ldr r7, [pc, #124] ; (1ff8 ) _lv_mem_init(); 1f7c: 4798 blx r3 _lv_task_core_init(); 1f7e: 4b1f ldr r3, [pc, #124] ; (1ffc ) 1f80: 4798 blx r3 _lv_fs_init(); 1f82: 4b1f ldr r3, [pc, #124] ; (2000 ) 1f84: 4798 blx r3 _lv_anim_core_init(); 1f86: 4b1f ldr r3, [pc, #124] ; (2004 ) 1f88: 4798 blx r3 _lv_group_init(); 1f8a: 4b1f ldr r3, [pc, #124] ; (2008 ) 1f8c: 4798 blx r3 _lv_ll_init(&LV_GC_ROOT(_lv_obj_style_trans_ll), sizeof(lv_style_trans_t)); 1f8e: 481f ldr r0, [pc, #124] ; (200c ) 1f90: 2110 movs r1, #16 1f92: 47a0 blx r4 lv_theme_t * th = LV_THEME_DEFAULT_INIT(LV_THEME_DEFAULT_COLOR_PRIMARY, LV_THEME_DEFAULT_COLOR_SECONDARY, 1f94: 4b1e ldr r3, [pc, #120] ; (2010 ) 1f96: 9300 str r3, [sp, #0] 1f98: 2202 movs r2, #2 1f9a: f04f 011f mov.w r1, #31 1f9e: e9cd 3301 strd r3, r3, [sp, #4] 1fa2: f64f 0000 movw r0, #63488 ; 0xf800 1fa6: 47b8 blx r7 lv_theme_set_act(th); 1fa8: 4b1a ldr r3, [pc, #104] ; (2014 ) 1faa: 4798 blx r3 _lv_refr_init(); 1fac: 4b1a ldr r3, [pc, #104] ; (2018 ) 1fae: 4798 blx r3 _lv_ll_init(&LV_GC_ROOT(_lv_disp_ll), sizeof(lv_disp_t)); 1fb0: 481a ldr r0, [pc, #104] ; (201c ) 1fb2: f44f 71b8 mov.w r1, #368 ; 0x170 1fb6: 47a0 blx r4 _lv_ll_init(&LV_GC_ROOT(_lv_indev_ll), sizeof(lv_indev_t)); 1fb8: 2160 movs r1, #96 ; 0x60 1fba: 4819 ldr r0, [pc, #100] ; (2020 ) 1fbc: 47a0 blx r4 _lv_indev_init(); 1fbe: 4b19 ldr r3, [pc, #100] ; (2024 ) 1fc0: 4798 blx r3 _lv_img_decoder_init(); 1fc2: 4b19 ldr r3, [pc, #100] ; (2028 ) 1fc4: 4798 blx r3 lv_img_cache_set_size(LV_IMG_CACHE_DEF_SIZE); 1fc6: 4b19 ldr r3, [pc, #100] ; (202c ) 1fc8: 2001 movs r0, #1 1fca: 4798 blx r3 LV_LOG_INFO("lv_init ready"); 1fcc: 4b18 ldr r3, [pc, #96] ; (2030 ) 1fce: 9300 str r3, [sp, #0] lv_initialized = true; 1fd0: 2001 movs r0, #1 LV_LOG_INFO("lv_init ready"); 1fd2: 4b06 ldr r3, [pc, #24] ; (1fec ) 1fd4: 4904 ldr r1, [pc, #16] ; (1fe8 ) lv_initialized = true; 1fd6: 7030 strb r0, [r6, #0] LV_LOG_INFO("lv_init ready"); 1fd8: 22a2 movs r2, #162 ; 0xa2 1fda: e7c9 b.n 1f70 1fdc: 20008a90 .word 0x20008a90 1fe0: 0000eb21 .word 0x0000eb21 1fe4: 0002680a .word 0x0002680a 1fe8: 000267db .word 0x000267db 1fec: 000269e2 .word 0x000269e2 1ff0: 0000ec4d .word 0x0000ec4d 1ff4: 0000e831 .word 0x0000e831 1ff8: 00012741 .word 0x00012741 1ffc: 0000fa69 .word 0x0000fa69 2000: 0000e605 .word 0x0000e605 2004: 0000de5d .word 0x0000de5d 2008: 00001c65 .word 0x00001c65 200c: 20008ffc .word 0x20008ffc 2010: 20000004 .word 0x20000004 2014: 00010505 .word 0x00010505 2018: 00005135 .word 0x00005135 201c: 20008fa8 .word 0x20008fa8 2020: 20008fb4 .word 0x20008fb4 2024: 00001e8d .word 0x00001e8d 2028: 0000d301 .word 0x0000d301 202c: 0000c8d5 .word 0x0000c8d5 2030: 00026822 .word 0x00026822 00002034 : { 2034: b573 push {r0, r1, r4, r5, r6, lr} LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 2036: 4b0e ldr r3, [pc, #56] ; (2070 ) { 2038: 4604 mov r4, r0 203a: 460e mov r6, r1 LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 203c: 4798 blx r3 203e: 4605 mov r5, r0 2040: b968 cbnz r0, 205e 2042: 4b0c ldr r3, [pc, #48] ; (2074 ) 2044: 490c ldr r1, [pc, #48] ; (2078 ) 2046: 9300 str r3, [sp, #0] 2048: f240 5294 movw r2, #1428 ; 0x594 204c: 2003 movs r0, #3 204e: 4e0b ldr r6, [pc, #44] ; (207c ) 2050: 47b0 blx r6 2052: 480b ldr r0, [pc, #44] ; (2080 ) 2054: 490b ldr r1, [pc, #44] ; (2084 ) 2056: 4622 mov r2, r4 2058: 462b mov r3, r5 205a: 4788 blx r1 205c: e7fe b.n 205c obj->adv_hittest = en == false ? 0 : 1; 205e: f894 3034 ldrb.w r3, [r4, #52] ; 0x34 2062: f366 13c7 bfi r3, r6, #7, #1 2066: f884 3034 strb.w r3, [r4, #52] ; 0x34 } 206a: b002 add sp, #8 206c: bd70 pop {r4, r5, r6, pc} 206e: bf00 nop 2070: 00001a0d .word 0x00001a0d 2074: 00026a37 .word 0x00026a37 2078: 000267db .word 0x000267db 207c: 0000eb21 .word 0x0000eb21 2080: 0002683f .word 0x0002683f 2084: 00001a15 .word 0x00001a15 00002088 : { 2088: b573 push {r0, r1, r4, r5, r6, lr} LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 208a: 4b0e ldr r3, [pc, #56] ; (20c4 ) { 208c: 4604 mov r4, r0 208e: 460e mov r6, r1 LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 2090: 4798 blx r3 2092: 4605 mov r5, r0 2094: b968 cbnz r0, 20b2 2096: 4b0c ldr r3, [pc, #48] ; (20c8 ) 2098: 490c ldr r1, [pc, #48] ; (20cc ) 209a: 9300 str r3, [sp, #0] 209c: f44f 62b4 mov.w r2, #1440 ; 0x5a0 20a0: 2003 movs r0, #3 20a2: 4e0b ldr r6, [pc, #44] ; (20d0 ) 20a4: 47b0 blx r6 20a6: 480b ldr r0, [pc, #44] ; (20d4 ) 20a8: 490b ldr r1, [pc, #44] ; (20d8 ) 20aa: 4622 mov r2, r4 20ac: 462b mov r3, r5 20ae: 4788 blx r1 20b0: e7fe b.n 20b0 obj->click = (en == true ? 1 : 0); 20b2: f894 3034 ldrb.w r3, [r4, #52] ; 0x34 20b6: f366 0300 bfi r3, r6, #0, #1 20ba: f884 3034 strb.w r3, [r4, #52] ; 0x34 } 20be: b002 add sp, #8 20c0: bd70 pop {r4, r5, r6, pc} 20c2: bf00 nop 20c4: 00001a0d .word 0x00001a0d 20c8: 00026a4e .word 0x00026a4e 20cc: 000267db .word 0x000267db 20d0: 0000eb21 .word 0x0000eb21 20d4: 0002683f .word 0x0002683f 20d8: 00001a15 .word 0x00001a15 000020dc : { 20dc: e92d 43f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} 20e0: 4680 mov r8, r0 20e2: b087 sub sp, #28 20e4: 4616 mov r6, r2 20e6: 461f mov r7, r3 if(obj != NULL) { 20e8: 460c mov r4, r1 20ea: b191 cbz r1, 2112 LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 20ec: 4b24 ldr r3, [pc, #144] ; (2180 ) 20ee: 4608 mov r0, r1 20f0: 4798 blx r3 20f2: 4605 mov r5, r0 20f4: b968 cbnz r0, 2112 20f6: 4b23 ldr r3, [pc, #140] ; (2184 ) 20f8: 4923 ldr r1, [pc, #140] ; (2188 ) 20fa: 9300 str r3, [sp, #0] 20fc: f44f 62db mov.w r2, #1752 ; 0x6d8 2100: 2003 movs r0, #3 2102: 4e22 ldr r6, [pc, #136] ; (218c ) 2104: 47b0 blx r6 2106: 4822 ldr r0, [pc, #136] ; (2190 ) 2108: 4922 ldr r1, [pc, #136] ; (2194 ) 210a: 4622 mov r2, r4 210c: 462b mov r3, r5 210e: 4788 blx r1 2110: e7fe b.n 2110 if(event_temp_data_head) { 2112: 4d21 ldr r5, [pc, #132] ; (2198 ) event_temp_data.obj = obj; 2114: 9403 str r4, [sp, #12] event_temp_data.deleted = false; 2116: 2300 movs r3, #0 2118: f88d 3010 strb.w r3, [sp, #16] if(event_temp_data_head) { 211c: 686b ldr r3, [r5, #4] 211e: 9305 str r3, [sp, #20] event_temp_data_head = &event_temp_data; 2120: ab03 add r3, sp, #12 2122: 606b str r3, [r5, #4] lv_indev_t * indev_act = lv_indev_get_act(); 2124: 4b1d ldr r3, [pc, #116] ; (219c ) const void * event_act_data_save = event_act_data; 2126: f8d5 9008 ldr.w r9, [r5, #8] event_act_data = data; 212a: 60af str r7, [r5, #8] lv_indev_t * indev_act = lv_indev_get_act(); 212c: 4798 blx r3 if(indev_act) { 212e: b118 cbz r0, 2138 if(indev_act->driver.feedback_cb) indev_act->driver.feedback_cb(&indev_act->driver, event); 2130: 6883 ldr r3, [r0, #8] 2132: b10b cbz r3, 2138 2134: 4631 mov r1, r6 2136: 4798 blx r3 if(event_xcb) event_xcb(obj, event); 2138: f1b8 0f00 cmp.w r8, #0 213c: d002 beq.n 2144 213e: 4631 mov r1, r6 2140: 4620 mov r0, r4 2142: 47c0 blx r8 event_temp_data_head = event_temp_data_head->prev; 2144: 686b ldr r3, [r5, #4] event_act_data = event_act_data_save; 2146: f8c5 9008 str.w r9, [r5, #8] event_temp_data_head = event_temp_data_head->prev; 214a: 689b ldr r3, [r3, #8] 214c: 606b str r3, [r5, #4] if(event_temp_data.deleted) { 214e: f89d 3010 ldrb.w r3, [sp, #16] 2152: b983 cbnz r3, 2176 if(obj) { 2154: b18c cbz r4, 217a if(obj->parent_event && obj->parent) { 2156: f894 3034 ldrb.w r3, [r4, #52] ; 0x34 215a: 065a lsls r2, r3, #25 215c: d50d bpl.n 217a 215e: 6820 ldr r0, [r4, #0] 2160: b158 cbz r0, 217a lv_res_t res = lv_event_send(obj->parent, event, data); 2162: 4b0f ldr r3, [pc, #60] ; (21a0 ) 2164: 463a mov r2, r7 2166: 4631 mov r1, r6 2168: 4798 blx r3 return LV_RES_INV; 216a: 1e43 subs r3, r0, #1 216c: 4258 negs r0, r3 216e: 4158 adcs r0, r3 } 2170: b007 add sp, #28 2172: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} return LV_RES_INV; 2176: 2000 movs r0, #0 2178: e7fa b.n 2170 return LV_RES_OK; 217a: 2001 movs r0, #1 217c: e7f8 b.n 2170 217e: bf00 nop 2180: 00001a0d .word 0x00001a0d 2184: 00026b13 .word 0x00026b13 2188: 000267db .word 0x000267db 218c: 0000eb21 .word 0x0000eb21 2190: 0002683f .word 0x0002683f 2194: 00001a15 .word 0x00001a15 2198: 20008a90 .word 0x20008a90 219c: 00001e99 .word 0x00001e99 21a0: 000021a5 .word 0x000021a5 000021a4 : { 21a4: b57f push {r0, r1, r2, r3, r4, r5, r6, lr} 21a6: 460e mov r6, r1 21a8: 9203 str r2, [sp, #12] if(obj == NULL) return LV_RES_OK; 21aa: 4604 mov r4, r0 21ac: b1d8 cbz r0, 21e6 LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 21ae: 4a0f ldr r2, [pc, #60] ; (21ec ) 21b0: 4790 blx r2 21b2: 9b03 ldr r3, [sp, #12] 21b4: 4605 mov r5, r0 21b6: b968 cbnz r0, 21d4 21b8: 4b0d ldr r3, [pc, #52] ; (21f0 ) 21ba: 490e ldr r1, [pc, #56] ; (21f4 ) 21bc: 9300 str r3, [sp, #0] 21be: f240 62c4 movw r2, #1732 ; 0x6c4 21c2: 2003 movs r0, #3 21c4: 4e0c ldr r6, [pc, #48] ; (21f8 ) 21c6: 47b0 blx r6 21c8: 480c ldr r0, [pc, #48] ; (21fc ) 21ca: 490d ldr r1, [pc, #52] ; (2200 ) 21cc: 4622 mov r2, r4 21ce: 462b mov r3, r5 21d0: 4788 blx r1 21d2: e7fe b.n 21d2 res = lv_event_send_func(obj->event_cb, obj, event, data); 21d4: 69a0 ldr r0, [r4, #24] 21d6: 4621 mov r1, r4 21d8: 4c0a ldr r4, [pc, #40] ; (2204 ) 21da: 4632 mov r2, r6 21dc: 46a4 mov ip, r4 } 21de: b004 add sp, #16 21e0: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr} res = lv_event_send_func(obj->event_cb, obj, event, data); 21e4: 4760 bx ip } 21e6: 2001 movs r0, #1 21e8: b004 add sp, #16 21ea: bd70 pop {r4, r5, r6, pc} 21ec: 00001a0d .word 0x00001a0d 21f0: 00026b26 .word 0x00026b26 21f4: 000267db .word 0x000267db 21f8: 0000eb21 .word 0x0000eb21 21fc: 0002683f .word 0x0002683f 2200: 00001a15 .word 0x00001a15 2204: 000020dd .word 0x000020dd 00002208 : { 2208: b573 push {r0, r1, r4, r5, r6, lr} LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 220a: 4b0b ldr r3, [pc, #44] ; (2238 ) { 220c: 4604 mov r4, r0 220e: 460e mov r6, r1 LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 2210: 4798 blx r3 2212: 4605 mov r5, r0 2214: b968 cbnz r0, 2232 2216: 4b09 ldr r3, [pc, #36] ; (223c ) 2218: 4909 ldr r1, [pc, #36] ; (2240 ) 221a: 9300 str r3, [sp, #0] 221c: f240 721b movw r2, #1819 ; 0x71b 2220: 2003 movs r0, #3 2222: 4e08 ldr r6, [pc, #32] ; (2244 ) 2224: 47b0 blx r6 2226: 4808 ldr r0, [pc, #32] ; (2248 ) 2228: 4908 ldr r1, [pc, #32] ; (224c ) 222a: 4622 mov r2, r4 222c: 462b mov r3, r5 222e: 4788 blx r1 2230: e7fe b.n 2230 obj->signal_cb = signal_cb; 2232: 61e6 str r6, [r4, #28] } 2234: b002 add sp, #8 2236: bd70 pop {r4, r5, r6, pc} 2238: 00001a0d .word 0x00001a0d 223c: 00026b34 .word 0x00026b34 2240: 000267db .word 0x000267db 2244: 0000eb21 .word 0x0000eb21 2248: 0002683f .word 0x0002683f 224c: 00001a15 .word 0x00001a15 00002250 : if(obj == NULL) return LV_RES_OK; 2250: b110 cbz r0, 2258 if(obj->signal_cb) res = obj->signal_cb(obj, signal, param); 2252: 69c3 ldr r3, [r0, #28] 2254: b103 cbz r3, 2258 2256: 4718 bx r3 } 2258: 2001 movs r0, #1 225a: 4770 bx lr 0000225c : { 225c: b573 push {r0, r1, r4, r5, r6, lr} LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 225e: 4b0b ldr r3, [pc, #44] ; (228c ) { 2260: 4604 mov r4, r0 2262: 460e mov r6, r1 LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 2264: 4798 blx r3 2266: 4605 mov r5, r0 2268: b968 cbnz r0, 2286 226a: 4b09 ldr r3, [pc, #36] ; (2290 ) 226c: 4909 ldr r1, [pc, #36] ; (2294 ) 226e: 9300 str r3, [sp, #0] 2270: f240 7237 movw r2, #1847 ; 0x737 2274: 2003 movs r0, #3 2276: 4e08 ldr r6, [pc, #32] ; (2298 ) 2278: 47b0 blx r6 227a: 4808 ldr r0, [pc, #32] ; (229c ) 227c: 4908 ldr r1, [pc, #32] ; (22a0 ) 227e: 4622 mov r2, r4 2280: 462b mov r3, r5 2282: 4788 blx r1 2284: e7fe b.n 2284 obj->design_cb = design_cb; 2286: 6226 str r6, [r4, #32] } 2288: b002 add sp, #8 228a: bd70 pop {r4, r5, r6, pc} 228c: 00001a0d .word 0x00001a0d 2290: 00026b49 .word 0x00026b49 2294: 000267db .word 0x000267db 2298: 0000eb21 .word 0x0000eb21 229c: 0002683f .word 0x0002683f 22a0: 00001a15 .word 0x00001a15 000022a4 : { 22a4: b57f push {r0, r1, r2, r3, r4, r5, r6, lr} LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 22a6: 4b0e ldr r3, [pc, #56] ; (22e0 ) { 22a8: 9103 str r1, [sp, #12] 22aa: 4604 mov r4, r0 LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 22ac: 4798 blx r3 22ae: 9903 ldr r1, [sp, #12] 22b0: 4605 mov r5, r0 22b2: b968 cbnz r0, 22d0 22b4: 4b0b ldr r3, [pc, #44] ; (22e4 ) 22b6: 490c ldr r1, [pc, #48] ; (22e8 ) 22b8: 9300 str r3, [sp, #0] 22ba: f240 7249 movw r2, #1865 ; 0x749 22be: 2003 movs r0, #3 22c0: 4e0a ldr r6, [pc, #40] ; (22ec ) 22c2: 47b0 blx r6 22c4: 480a ldr r0, [pc, #40] ; (22f0 ) 22c6: 490b ldr r1, [pc, #44] ; (22f4 ) 22c8: 4622 mov r2, r4 22ca: 462b mov r3, r5 22cc: 4788 blx r1 22ce: e7fe b.n 22ce void * new_ext = lv_mem_realloc(obj->ext_attr, ext_size); 22d0: 6a60 ldr r0, [r4, #36] ; 0x24 22d2: 4b09 ldr r3, [pc, #36] ; (22f8 ) 22d4: 4798 blx r3 if(new_ext == NULL) return NULL; 22d6: b100 cbz r0, 22da obj->ext_attr = new_ext; 22d8: 6260 str r0, [r4, #36] ; 0x24 } 22da: b004 add sp, #16 22dc: bd70 pop {r4, r5, r6, pc} 22de: bf00 nop 22e0: 00001a0d .word 0x00001a0d 22e4: 00026b5e .word 0x00026b5e 22e8: 000267db .word 0x000267db 22ec: 0000eb21 .word 0x0000eb21 22f0: 0002683f .word 0x0002683f 22f4: 00001a15 .word 0x00001a15 22f8: 0000f04d .word 0x0000f04d 000022fc : { 22fc: b573 push {r0, r1, r4, r5, r6, lr} LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 22fe: 4b0e ldr r3, [pc, #56] ; (2338 ) { 2300: 4604 mov r4, r0 LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 2302: 4798 blx r3 2304: 4605 mov r5, r0 2306: b968 cbnz r0, 2324 2308: 4b0c ldr r3, [pc, #48] ; (233c ) 230a: 490d ldr r1, [pc, #52] ; (2340 ) 230c: 9300 str r3, [sp, #0] 230e: f240 7259 movw r2, #1881 ; 0x759 2312: 2003 movs r0, #3 2314: 4e0b ldr r6, [pc, #44] ; (2344 ) 2316: 47b0 blx r6 2318: 480b ldr r0, [pc, #44] ; (2348 ) 231a: 490c ldr r1, [pc, #48] ; (234c ) 231c: 4622 mov r2, r4 231e: 462b mov r3, r5 2320: 4788 blx r1 2322: e7fe b.n 2322 obj->signal_cb(obj, LV_SIGNAL_REFR_EXT_DRAW_PAD, NULL); 2324: 69e3 ldr r3, [r4, #28] obj->ext_draw_pad = 0; 2326: 2200 movs r2, #0 obj->signal_cb(obj, LV_SIGNAL_REFR_EXT_DRAW_PAD, NULL); 2328: 2106 movs r1, #6 232a: 4620 mov r0, r4 obj->ext_draw_pad = 0; 232c: 8662 strh r2, [r4, #50] ; 0x32 } 232e: b002 add sp, #8 2330: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr} obj->signal_cb(obj, LV_SIGNAL_REFR_EXT_DRAW_PAD, NULL); 2334: 4718 bx r3 2336: bf00 nop 2338: 00001a0d .word 0x00001a0d 233c: 00026b77 .word 0x00026b77 2340: 000267db .word 0x000267db 2344: 0000eb21 .word 0x0000eb21 2348: 0002683f .word 0x0002683f 234c: 00001a15 .word 0x00001a15 00002350 : { 2350: b573 push {r0, r1, r4, r5, r6, lr} LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 2352: 4b0b ldr r3, [pc, #44] ; (2380 ) { 2354: 4604 mov r4, r0 LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 2356: 4798 blx r3 2358: 4605 mov r5, r0 235a: b968 cbnz r0, 2378 235c: 4b09 ldr r3, [pc, #36] ; (2384 ) 235e: 490a ldr r1, [pc, #40] ; (2388 ) 2360: 9300 str r3, [sp, #0] 2362: f240 729f movw r2, #1951 ; 0x79f 2366: 2003 movs r0, #3 2368: 4e08 ldr r6, [pc, #32] ; (238c ) 236a: 47b0 blx r6 236c: 4808 ldr r0, [pc, #32] ; (2390 ) 236e: 4909 ldr r1, [pc, #36] ; (2394 ) 2370: 4622 mov r2, r4 2372: 462b mov r3, r5 2374: 4788 blx r1 2376: e7fe b.n 2376 } 2378: 6820 ldr r0, [r4, #0] 237a: b002 add sp, #8 237c: bd70 pop {r4, r5, r6, pc} 237e: bf00 nop 2380: 00001a0d .word 0x00001a0d 2384: 00026b93 .word 0x00026b93 2388: 000267db .word 0x000267db 238c: 0000eb21 .word 0x0000eb21 2390: 0002683f .word 0x0002683f 2394: 00001a15 .word 0x00001a15 00002398 : { 2398: b573 push {r0, r1, r4, r5, r6, lr} LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 239a: 4b0e ldr r3, [pc, #56] ; (23d4 ) { 239c: 4604 mov r4, r0 LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 239e: 4798 blx r3 23a0: 4605 mov r5, r0 23a2: b148 cbz r0, 23b8 par = lv_obj_get_parent(act_p); 23a4: 4e0c ldr r6, [pc, #48] ; (23d8 ) 23a6: 4620 mov r0, r4 23a8: 47b0 blx r6 } while(par != NULL); 23aa: 4625 mov r5, r4 23ac: 4604 mov r4, r0 23ae: 2800 cmp r0, #0 23b0: d1f9 bne.n 23a6 } 23b2: 4628 mov r0, r5 23b4: b002 add sp, #8 23b6: bd70 pop {r4, r5, r6, pc} LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 23b8: 4b08 ldr r3, [pc, #32] ; (23dc ) 23ba: 4909 ldr r1, [pc, #36] ; (23e0 ) 23bc: 9300 str r3, [sp, #0] 23be: f240 726b movw r2, #1899 ; 0x76b 23c2: 2003 movs r0, #3 23c4: 4e07 ldr r6, [pc, #28] ; (23e4 ) 23c6: 47b0 blx r6 23c8: 4807 ldr r0, [pc, #28] ; (23e8 ) 23ca: 4908 ldr r1, [pc, #32] ; (23ec ) 23cc: 4622 mov r2, r4 23ce: 462b mov r3, r5 23d0: 4788 blx r1 23d2: e7fe b.n 23d2 23d4: 00001a0d .word 0x00001a0d 23d8: 00002351 .word 0x00002351 23dc: 00026ba5 .word 0x00026ba5 23e0: 000267db .word 0x000267db 23e4: 0000eb21 .word 0x0000eb21 23e8: 0002683f .word 0x0002683f 23ec: 00001a15 .word 0x00001a15 000023f0 : { 23f0: e92d 43f7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, lr} LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 23f4: 4b1e ldr r3, [pc, #120] ; (2470 ) { 23f6: 4605 mov r5, r0 LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 23f8: 4798 blx r3 23fa: 4604 mov r4, r0 23fc: b968 cbnz r0, 241a 23fe: 4b1d ldr r3, [pc, #116] ; (2474 ) 2400: 491d ldr r1, [pc, #116] ; (2478 ) 2402: 9300 str r3, [sp, #0] 2404: f240 727f movw r2, #1919 ; 0x77f 2408: 2003 movs r0, #3 240a: 4e1c ldr r6, [pc, #112] ; (247c ) 240c: 47b0 blx r6 240e: 481c ldr r0, [pc, #112] ; (2480 ) 2410: 491c ldr r1, [pc, #112] ; (2484 ) 2412: 462a mov r2, r5 2414: 4623 mov r3, r4 2416: 4788 blx r1 2418: e7fe b.n 2418 if(obj->parent == NULL) 241a: 682b ldr r3, [r5, #0] 241c: b11b cbz r3, 2426 scr = lv_obj_get_screen(obj); /*get the screen of `obj`*/ 241e: 4628 mov r0, r5 2420: 4b19 ldr r3, [pc, #100] ; (2488 ) 2422: 4798 blx r3 2424: 4605 mov r5, r0 _LV_LL_READ(LV_GC_ROOT(_lv_disp_ll), d) { 2426: 4819 ldr r0, [pc, #100] ; (248c ) 2428: 4e19 ldr r6, [pc, #100] ; (2490 ) _LV_LL_READ(d->scr_ll, s) { 242a: 4f1a ldr r7, [pc, #104] ; (2494 ) _LV_LL_READ(LV_GC_ROOT(_lv_disp_ll), d) { 242c: f8df 805c ldr.w r8, [pc, #92] ; 248c 2430: 47b0 blx r6 2432: 4604 mov r4, r0 2434: b964 cbnz r4, 2450 LV_LOG_WARN("lv_scr_get_disp: screen not found") 2436: 4b18 ldr r3, [pc, #96] ; (2498 ) 2438: 9300 str r3, [sp, #0] 243a: 490f ldr r1, [pc, #60] ; (2478 ) 243c: 4b0d ldr r3, [pc, #52] ; (2474 ) 243e: 4d0f ldr r5, [pc, #60] ; (247c ) 2440: f44f 62f2 mov.w r2, #1936 ; 0x790 2444: 2002 movs r0, #2 2446: 47a8 blx r5 } 2448: 4620 mov r0, r4 244a: b003 add sp, #12 244c: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} _LV_LL_READ(d->scr_ll, s) { 2450: f104 0930 add.w r9, r4, #48 ; 0x30 2454: 4648 mov r0, r9 2456: 47b0 blx r6 2458: b920 cbnz r0, 2464 _LV_LL_READ(LV_GC_ROOT(_lv_disp_ll), d) { 245a: 4621 mov r1, r4 245c: 4640 mov r0, r8 245e: 47b8 blx r7 2460: 4604 mov r4, r0 2462: e7e7 b.n 2434 if(s == scr) return d; 2464: 4285 cmp r5, r0 2466: d0ef beq.n 2448 _LV_LL_READ(d->scr_ll, s) { 2468: 4601 mov r1, r0 246a: 4648 mov r0, r9 246c: 47b8 blx r7 246e: e7f3 b.n 2458 2470: 00001a0d .word 0x00001a0d 2474: 00026bb7 .word 0x00026bb7 2478: 000267db .word 0x000267db 247c: 0000eb21 .word 0x0000eb21 2480: 0002683f .word 0x0002683f 2484: 00001a15 .word 0x00001a15 2488: 00002399 .word 0x00002399 248c: 20008fa8 .word 0x20008fa8 2490: 0000e8d5 .word 0x0000e8d5 2494: 0000e8e1 .word 0x0000e8e1 2498: 0002684c .word 0x0002684c 0000249c : { 249c: b573 push {r0, r1, r4, r5, r6, lr} LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 249e: 4b10 ldr r3, [pc, #64] ; (24e0 ) { 24a0: 4604 mov r4, r0 24a2: 460d mov r5, r1 LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 24a4: 4798 blx r3 24a6: 4606 mov r6, r0 24a8: b968 cbnz r0, 24c6 24aa: 4b0e ldr r3, [pc, #56] ; (24e4 ) 24ac: 490e ldr r1, [pc, #56] ; (24e8 ) 24ae: 9300 str r3, [sp, #0] 24b0: f240 72ad movw r2, #1965 ; 0x7ad 24b4: 2003 movs r0, #3 24b6: 4d0d ldr r5, [pc, #52] ; (24ec ) 24b8: 47a8 blx r5 24ba: 480d ldr r0, [pc, #52] ; (24f0 ) 24bc: 490d ldr r1, [pc, #52] ; (24f4 ) 24be: 4622 mov r2, r4 24c0: 4633 mov r3, r6 24c2: 4788 blx r1 24c4: e7fe b.n 24c4 result = _lv_ll_get_head(&obj->child_ll); 24c6: 1d20 adds r0, r4, #4 if(child == NULL) { 24c8: b925 cbnz r5, 24d4 result = _lv_ll_get_head(&obj->child_ll); 24ca: 4b0b ldr r3, [pc, #44] ; (24f8 ) } 24cc: b002 add sp, #8 24ce: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr} result = _lv_ll_get_head(&obj->child_ll); 24d2: 4718 bx r3 result = _lv_ll_get_next(&obj->child_ll, child); 24d4: 4b09 ldr r3, [pc, #36] ; (24fc ) 24d6: 4629 mov r1, r5 } 24d8: b002 add sp, #8 24da: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr} result = _lv_ll_get_next(&obj->child_ll, child); 24de: 4718 bx r3 24e0: 00001a0d .word 0x00001a0d 24e4: 00026bc7 .word 0x00026bc7 24e8: 000267db .word 0x000267db 24ec: 0000eb21 .word 0x0000eb21 24f0: 0002683f .word 0x0002683f 24f4: 00001a15 .word 0x00001a15 24f8: 0000e8d5 .word 0x0000e8d5 24fc: 0000e8e1 .word 0x0000e8e1 00002500 : { 2500: b573 push {r0, r1, r4, r5, r6, lr} LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 2502: 4b0e ldr r3, [pc, #56] ; (253c ) { 2504: 4604 mov r4, r0 2506: 460e mov r6, r1 LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 2508: 4798 blx r3 250a: 4605 mov r5, r0 250c: b968 cbnz r0, 252a 250e: 4b0c ldr r3, [pc, #48] ; (2540 ) 2510: 490c ldr r1, [pc, #48] ; (2544 ) 2512: 9300 str r3, [sp, #0] 2514: f640 0201 movw r2, #2049 ; 0x801 2518: 2003 movs r0, #3 251a: 4e0b ldr r6, [pc, #44] ; (2548 ) 251c: 47b0 blx r6 251e: 480b ldr r0, [pc, #44] ; (254c ) 2520: 490b ldr r1, [pc, #44] ; (2550 ) 2522: 4622 mov r2, r4 2524: 462b mov r3, r5 2526: 4788 blx r1 2528: e7fe b.n 2528 lv_area_copy(cords_p, &obj->coords); 252a: 4b0a ldr r3, [pc, #40] ; (2554 ) 252c: f104 0110 add.w r1, r4, #16 2530: 4630 mov r0, r6 } 2532: b002 add sp, #8 2534: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr} lv_area_copy(cords_p, &obj->coords); 2538: 4718 bx r3 253a: bf00 nop 253c: 00001a0d .word 0x00001a0d 2540: 00026c38 .word 0x00026c38 2544: 000267db .word 0x000267db 2548: 0000eb21 .word 0x0000eb21 254c: 0002683f .word 0x0002683f 2550: 00001a15 .word 0x00001a15 2554: 00001f45 .word 0x00001f45 00002558 : { 2558: b573 push {r0, r1, r4, r5, r6, lr} LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 255a: 4b10 ldr r3, [pc, #64] ; (259c ) { 255c: 4604 mov r4, r0 LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 255e: 4798 blx r3 2560: 4605 mov r5, r0 2562: b968 cbnz r0, 2580 2564: 4b0e ldr r3, [pc, #56] ; (25a0 ) 2566: 490f ldr r1, [pc, #60] ; (25a4 ) 2568: 9300 str r3, [sp, #0] 256a: f640 0222 movw r2, #2082 ; 0x822 256e: 2003 movs r0, #3 2570: 4e0d ldr r6, [pc, #52] ; (25a8 ) 2572: 47b0 blx r6 2574: 480d ldr r0, [pc, #52] ; (25ac ) 2576: 490e ldr r1, [pc, #56] ; (25b0 ) 2578: 4622 mov r2, r4 257a: 462b mov r3, r5 257c: 4788 blx r1 257e: e7fe b.n 257e lv_obj_t * parent = lv_obj_get_parent(obj); 2580: 4b0c ldr r3, [pc, #48] ; (25b4 ) 2582: 4620 mov r0, r4 2584: 4798 blx r3 if(parent) { 2586: b128 cbz r0, 2594 rel_x = obj->coords.x1 - parent->coords.x1; 2588: 8a23 ldrh r3, [r4, #16] 258a: 8a02 ldrh r2, [r0, #16] 258c: 1a98 subs r0, r3, r2 258e: b200 sxth r0, r0 } 2590: b002 add sp, #8 2592: bd70 pop {r4, r5, r6, pc} rel_x = obj->coords.x1; 2594: f9b4 0010 ldrsh.w r0, [r4, #16] 2598: e7fa b.n 2590 259a: bf00 nop 259c: 00001a0d .word 0x00001a0d 25a0: 00026c4a .word 0x00026c4a 25a4: 000267db .word 0x000267db 25a8: 0000eb21 .word 0x0000eb21 25ac: 0002683f .word 0x0002683f 25b0: 00001a15 .word 0x00001a15 25b4: 00002351 .word 0x00002351 000025b8 : { 25b8: b573 push {r0, r1, r4, r5, r6, lr} LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 25ba: 4b10 ldr r3, [pc, #64] ; (25fc ) { 25bc: 4604 mov r4, r0 LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 25be: 4798 blx r3 25c0: 4605 mov r5, r0 25c2: b968 cbnz r0, 25e0 25c4: 4b0e ldr r3, [pc, #56] ; (2600 ) 25c6: 490f ldr r1, [pc, #60] ; (2604 ) 25c8: 9300 str r3, [sp, #0] 25ca: f640 0236 movw r2, #2102 ; 0x836 25ce: 2003 movs r0, #3 25d0: 4e0d ldr r6, [pc, #52] ; (2608 ) 25d2: 47b0 blx r6 25d4: 480d ldr r0, [pc, #52] ; (260c ) 25d6: 490e ldr r1, [pc, #56] ; (2610 ) 25d8: 4622 mov r2, r4 25da: 462b mov r3, r5 25dc: 4788 blx r1 25de: e7fe b.n 25de lv_obj_t * parent = lv_obj_get_parent(obj); 25e0: 4b0c ldr r3, [pc, #48] ; (2614 ) 25e2: 4620 mov r0, r4 25e4: 4798 blx r3 if(parent) { 25e6: b128 cbz r0, 25f4 rel_y = obj->coords.y1 - parent->coords.y1; 25e8: 8a63 ldrh r3, [r4, #18] 25ea: 8a42 ldrh r2, [r0, #18] 25ec: 1a98 subs r0, r3, r2 25ee: b200 sxth r0, r0 } 25f0: b002 add sp, #8 25f2: bd70 pop {r4, r5, r6, pc} rel_y = obj->coords.y1; 25f4: f9b4 0012 ldrsh.w r0, [r4, #18] 25f8: e7fa b.n 25f0 25fa: bf00 nop 25fc: 00001a0d .word 0x00001a0d 2600: 00026c57 .word 0x00026c57 2604: 000267db .word 0x000267db 2608: 0000eb21 .word 0x0000eb21 260c: 0002683f .word 0x0002683f 2610: 00001a15 .word 0x00001a15 2614: 00002351 .word 0x00002351 00002618 : { 2618: b573 push {r0, r1, r4, r5, r6, lr} LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 261a: 4b0d ldr r3, [pc, #52] ; (2650 ) { 261c: 4604 mov r4, r0 LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 261e: 4798 blx r3 2620: 4605 mov r5, r0 2622: b968 cbnz r0, 2640 2624: 4b0b ldr r3, [pc, #44] ; (2654 ) 2626: 490c ldr r1, [pc, #48] ; (2658 ) 2628: 9300 str r3, [sp, #0] 262a: f640 024a movw r2, #2122 ; 0x84a 262e: 2003 movs r0, #3 2630: 4e0a ldr r6, [pc, #40] ; (265c ) 2632: 47b0 blx r6 2634: 480a ldr r0, [pc, #40] ; (2660 ) 2636: 490b ldr r1, [pc, #44] ; (2664 ) 2638: 4622 mov r2, r4 263a: 462b mov r3, r5 263c: 4788 blx r1 263e: e7fe b.n 263e * @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); 2640: 8aa3 ldrh r3, [r4, #20] 2642: 8a22 ldrh r2, [r4, #16] 2644: 3301 adds r3, #1 2646: 1a98 subs r0, r3, r2 } 2648: b200 sxth r0, r0 264a: b002 add sp, #8 264c: bd70 pop {r4, r5, r6, pc} 264e: bf00 nop 2650: 00001a0d .word 0x00001a0d 2654: 00026c64 .word 0x00026c64 2658: 000267db .word 0x000267db 265c: 0000eb21 .word 0x0000eb21 2660: 0002683f .word 0x0002683f 2664: 00001a15 .word 0x00001a15 00002668 : { 2668: b573 push {r0, r1, r4, r5, r6, lr} LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 266a: 4b0d ldr r3, [pc, #52] ; (26a0 ) { 266c: 4604 mov r4, r0 LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 266e: 4798 blx r3 2670: 4605 mov r5, r0 2672: b968 cbnz r0, 2690 2674: 4b0b ldr r3, [pc, #44] ; (26a4 ) 2676: 490c ldr r1, [pc, #48] ; (26a8 ) 2678: 9300 str r3, [sp, #0] 267a: f640 0256 movw r2, #2134 ; 0x856 267e: 2003 movs r0, #3 2680: 4e0a ldr r6, [pc, #40] ; (26ac ) 2682: 47b0 blx r6 2684: 480a ldr r0, [pc, #40] ; (26b0 ) 2686: 490b ldr r1, [pc, #44] ; (26b4 ) 2688: 4622 mov r2, r4 268a: 462b mov r3, r5 268c: 4788 blx r1 268e: e7fe b.n 268e * @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); 2690: 8ae3 ldrh r3, [r4, #22] 2692: 8a62 ldrh r2, [r4, #18] 2694: 3301 adds r3, #1 2696: 1a98 subs r0, r3, r2 } 2698: b200 sxth r0, r0 269a: b002 add sp, #8 269c: bd70 pop {r4, r5, r6, pc} 269e: bf00 nop 26a0: 00001a0d .word 0x00001a0d 26a4: 00026c75 .word 0x00026c75 26a8: 000267db .word 0x000267db 26ac: 0000eb21 .word 0x0000eb21 26b0: 0002683f .word 0x0002683f 26b4: 00001a15 .word 0x00001a15 000026b8 : { 26b8: b513 push {r0, r1, r4, lr} if(part == LV_OBJ_PART_MAIN) return &((lv_obj_t *)obj)->style_list; 26ba: b911 cbnz r1, 26c2 26bc: 3028 adds r0, #40 ; 0x28 } 26be: b002 add sp, #8 26c0: bd10 pop {r4, pc} info.part = part; 26c2: f88d 1000 strb.w r1, [sp] info.result = NULL; 26c6: 2400 movs r4, #0 res = lv_signal_send((lv_obj_t *)obj, LV_SIGNAL_GET_STYLE, &info); 26c8: 4b04 ldr r3, [pc, #16] ; (26dc ) info.result = NULL; 26ca: 9401 str r4, [sp, #4] res = lv_signal_send((lv_obj_t *)obj, LV_SIGNAL_GET_STYLE, &info); 26cc: 466a mov r2, sp 26ce: 2108 movs r1, #8 26d0: 4798 blx r3 if(res != LV_RES_OK) return NULL; 26d2: 2801 cmp r0, #1 return info.result; 26d4: bf0c ite eq 26d6: 9801 ldreq r0, [sp, #4] if(res != LV_RES_OK) return NULL; 26d8: 4620 movne r0, r4 26da: e7f0 b.n 26be 26dc: 00002251 .word 0x00002251 000026e0 : * @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) { 26e0: e92d 4ff8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr} 26e4: 4607 mov r7, r0 26e6: 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)); 26e8: 4819 ldr r0, [pc, #100] ; (2750 ) 26ea: 4b1a ldr r3, [pc, #104] ; (2754 ) 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); 26ec: f8df 9060 ldr.w r9, [pc, #96] ; 2750 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); 26f0: f8df b07c ldr.w fp, [pc, #124] ; 2770 { 26f4: 460d mov r5, r1 26f6: 4616 mov r6, r2 tr = _lv_ll_get_tail(&LV_GC_ROOT(_lv_obj_style_trans_ll)); 26f8: 4798 blx r3 26fa: 4604 mov r4, r0 while(tr != NULL) { 26fc: b90c cbnz r4, 2702 _lv_ll_remove(&LV_GC_ROOT(_lv_obj_style_trans_ll), tr); lv_mem_free(tr); } tr = tr_prev; } } 26fe: e8bd 8ff8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} if(tr == tr_limit) break; 2702: 4544 cmp r4, r8 2704: d0fb beq.n 26fe tr_prev = _lv_ll_get_prev(&LV_GC_ROOT(_lv_obj_style_trans_ll), tr); 2706: 4b14 ldr r3, [pc, #80] ; (2758 ) 2708: 4621 mov r1, r4 270a: 4648 mov r0, r9 270c: 4798 blx r3 270e: 4682 mov sl, r0 if(tr->obj == obj && (part == tr->part || part == 0xFF) && (prop == tr->prop || prop == 0xFF)) { 2710: 6820 ldr r0, [r4, #0] 2712: 42b8 cmp r0, r7 2714: d11a bne.n 274c 2716: 79a1 ldrb r1, [r4, #6] 2718: 42a9 cmp r1, r5 271a: d001 beq.n 2720 271c: 2dff cmp r5, #255 ; 0xff 271e: d115 bne.n 274c 2720: 88a2 ldrh r2, [r4, #4] 2722: 42b2 cmp r2, r6 2724: d001 beq.n 272a 2726: 2eff cmp r6, #255 ; 0xff 2728: d110 bne.n 274c lv_style_list_t * list = lv_obj_get_style_list(tr->obj, tr->part); 272a: 47d8 blx fp lv_style_t * style_trans = _lv_style_list_get_transition_style(list); 272c: 4a0b ldr r2, [pc, #44] ; (275c ) 272e: 4790 blx r2 lv_style_remove_prop(style_trans, tr->prop); 2730: 88a1 ldrh r1, [r4, #4] 2732: 4a0b ldr r2, [pc, #44] ; (2760 ) 2734: 4790 blx r2 lv_anim_del(tr, NULL); 2736: 4a0b ldr r2, [pc, #44] ; (2764 ) 2738: 2100 movs r1, #0 273a: 4620 mov r0, r4 273c: 4790 blx r2 _lv_ll_remove(&LV_GC_ROOT(_lv_obj_style_trans_ll), tr); 273e: 4a0a ldr r2, [pc, #40] ; (2768 ) 2740: 4648 mov r0, r9 2742: 4621 mov r1, r4 2744: 4790 blx r2 lv_mem_free(tr); 2746: 4a09 ldr r2, [pc, #36] ; (276c ) 2748: 4620 mov r0, r4 274a: 4790 blx r2 { 274c: 4654 mov r4, sl 274e: e7d5 b.n 26fc 2750: 20008ffc .word 0x20008ffc 2754: 0000e8db .word 0x0000e8db 2758: 0000e901 .word 0x0000e901 275c: 00005ee5 .word 0x00005ee5 2760: 00005a3d .word 0x00005a3d 2764: 0000dedd .word 0x0000dedd 2768: 0000e999 .word 0x0000e999 276c: 0000ed1d .word 0x0000ed1d 2770: 000026b9 .word 0x000026b9 00002774 : { 2774: b537 push {r0, r1, r2, r4, r5, lr} lv_style_list_t * style_dsc = lv_obj_get_style_list(obj, part); 2776: 4b0e ldr r3, [pc, #56] ; (27b0 ) { 2778: 4604 mov r4, r0 277a: 460d mov r5, r1 lv_style_list_t * style_dsc = lv_obj_get_style_list(obj, part); 277c: 4798 blx r3 if(style_dsc == NULL) { 277e: b950 cbnz r0, 2796 LV_LOG_WARN("lv_obj_clean_style_list: can't find style with `part`"); 2780: 4b0c ldr r3, [pc, #48] ; (27b4 ) 2782: 9300 str r3, [sp, #0] 2784: 490c ldr r1, [pc, #48] ; (27b8 ) 2786: 4b0d ldr r3, [pc, #52] ; (27bc ) 2788: 4c0d ldr r4, [pc, #52] ; (27c0 ) 278a: f240 4292 movw r2, #1170 ; 0x492 278e: 2002 movs r0, #2 2790: 47a0 blx r4 } 2792: b003 add sp, #12 2794: bd30 pop {r4, r5, pc} _lv_style_list_reset(style_dsc); 2796: 4b0b ldr r3, [pc, #44] ; (27c4 ) 2798: 4798 blx r3 trans_del(obj, part, 0xFF, NULL); 279a: 4620 mov r0, r4 279c: 4c0a ldr r4, [pc, #40] ; (27c8 ) 279e: 2300 movs r3, #0 27a0: 22ff movs r2, #255 ; 0xff 27a2: 4629 mov r1, r5 27a4: 46a4 mov ip, r4 } 27a6: b003 add sp, #12 27a8: e8bd 4030 ldmia.w sp!, {r4, r5, lr} trans_del(obj, part, 0xFF, NULL); 27ac: 4760 bx ip 27ae: bf00 nop 27b0: 000026b9 .word 0x000026b9 27b4: 00026894 .word 0x00026894 27b8: 000267db .word 0x000267db 27bc: 00026d31 .word 0x00026d31 27c0: 0000eb21 .word 0x0000eb21 27c4: 00005ef5 .word 0x00005ef5 27c8: 000026e1 .word 0x000026e1 000027cc : tr->prop = prop_tmp; } static void trans_anim_ready_cb(lv_anim_t * a) { 27cc: 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) { 27d0: 4b15 ldr r3, [pc, #84] ; (2828 ) lv_style_trans_t * tr = a->var; 27d2: 6804 ldr r4, [r0, #0] _LV_LL_READ(LV_GC_ROOT(_lv_obj_style_trans_ll), tr_i) { 27d4: 4815 ldr r0, [pc, #84] ; (282c ) 27d6: 4e15 ldr r6, [pc, #84] ; (282c ) 27d8: 4f15 ldr r7, [pc, #84] ; (2830 ) 27da: 4798 blx r3 bool running = false; 27dc: 2500 movs r5, #0 _LV_LL_READ(LV_GC_ROOT(_lv_obj_style_trans_ll), tr_i) { 27de: b990 cbnz r0, 2806 if(tr_i != tr && tr_i->obj == tr->obj && tr_i->part == tr->part && tr_i->prop == tr->prop) { running = true; } } if(!running) { 27e0: b945 cbnz r5, 27f4 lv_style_list_t * list = lv_obj_get_style_list(tr->obj, tr->part); 27e2: 79a1 ldrb r1, [r4, #6] 27e4: 4b13 ldr r3, [pc, #76] ; (2834 ) 27e6: 6820 ldr r0, [r4, #0] 27e8: 4798 blx r3 lv_style_t * style_trans = _lv_style_list_get_transition_style(list); 27ea: 4b13 ldr r3, [pc, #76] ; (2838 ) 27ec: 4798 blx r3 lv_style_remove_prop(style_trans, tr->prop); 27ee: 88a1 ldrh r1, [r4, #4] 27f0: 4b12 ldr r3, [pc, #72] ; (283c ) 27f2: 4798 blx r3 } _lv_ll_remove(&LV_GC_ROOT(_lv_obj_style_trans_ll), tr); 27f4: 480d ldr r0, [pc, #52] ; (282c ) 27f6: 4b12 ldr r3, [pc, #72] ; (2840 ) 27f8: 4621 mov r1, r4 27fa: 4798 blx r3 lv_mem_free(tr); 27fc: 4620 mov r0, r4 27fe: 4b11 ldr r3, [pc, #68] ; (2844 ) } 2800: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr} lv_mem_free(tr); 2804: 4718 bx r3 if(tr_i != tr && tr_i->obj == tr->obj && tr_i->part == tr->part && tr_i->prop == tr->prop) { 2806: 42a0 cmp r0, r4 2808: d00a beq.n 2820 280a: 6802 ldr r2, [r0, #0] 280c: 6823 ldr r3, [r4, #0] 280e: 429a cmp r2, r3 2810: d106 bne.n 2820 2812: 6843 ldr r3, [r0, #4] 2814: 6862 ldr r2, [r4, #4] 2816: 4053 eors r3, r2 running = true; 2818: f033 437f bics.w r3, r3, #4278190080 ; 0xff000000 281c: bf08 it eq 281e: 2501 moveq r5, #1 _LV_LL_READ(LV_GC_ROOT(_lv_obj_style_trans_ll), tr_i) { 2820: 4601 mov r1, r0 2822: 4630 mov r0, r6 2824: 47b8 blx r7 2826: e7da b.n 27de 2828: 0000e8d5 .word 0x0000e8d5 282c: 20008ffc .word 0x20008ffc 2830: 0000e8e1 .word 0x0000e8e1 2834: 000026b9 .word 0x000026b9 2838: 00005ee5 .word 0x00005ee5 283c: 00005a3d .word 0x00005a3d 2840: 0000e999 .word 0x0000e999 2844: 0000ed1d .word 0x0000ed1d 00002848 : { 2848: b573 push {r0, r1, r4, r5, r6, lr} LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 284a: 4b0c ldr r3, [pc, #48] ; (287c ) { 284c: 4604 mov r4, r0 LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 284e: 4798 blx r3 2850: 4605 mov r5, r0 2852: b968 cbnz r0, 2870 2854: 4b0a ldr r3, [pc, #40] ; (2880 ) 2856: 490b ldr r1, [pc, #44] ; (2884 ) 2858: 9300 str r3, [sp, #0] 285a: f640 2241 movw r2, #2625 ; 0xa41 285e: 2003 movs r0, #3 2860: 4e09 ldr r6, [pc, #36] ; (2888 ) 2862: 47b0 blx r6 2864: 4809 ldr r0, [pc, #36] ; (288c ) 2866: 490a ldr r1, [pc, #40] ; (2890 ) 2868: 4622 mov r2, r4 286a: 462b mov r3, r5 286c: 4788 blx r1 286e: e7fe b.n 286e return obj->hidden == 0 ? false : true; 2870: f894 0034 ldrb.w r0, [r4, #52] ; 0x34 } 2874: f3c0 1000 ubfx r0, r0, #4, #1 2878: b002 add sp, #8 287a: bd70 pop {r4, r5, r6, pc} 287c: 00001a0d .word 0x00001a0d 2880: 00026d7f .word 0x00026d7f 2884: 000267db .word 0x000267db 2888: 0000eb21 .word 0x0000eb21 288c: 0002683f .word 0x0002683f 2890: 00001a15 .word 0x00001a15 00002894 : { 2894: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 2898: 4b35 ldr r3, [pc, #212] ; (2970 ) { 289a: b086 sub sp, #24 289c: 4604 mov r4, r0 289e: 4688 mov r8, r1 LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 28a0: 4798 blx r3 28a2: 4605 mov r5, r0 28a4: b968 cbnz r0, 28c2 28a6: 4b33 ldr r3, [pc, #204] ; (2974 ) 28a8: 4933 ldr r1, [pc, #204] ; (2978 ) 28aa: 9300 str r3, [sp, #0] 28ac: f44f 72f0 mov.w r2, #480 ; 0x1e0 28b0: 2003 movs r0, #3 28b2: 4e32 ldr r6, [pc, #200] ; (297c ) 28b4: 47b0 blx r6 28b6: 4832 ldr r0, [pc, #200] ; (2980 ) 28b8: 4932 ldr r1, [pc, #200] ; (2984 ) 28ba: 4622 mov r2, r4 28bc: 462b mov r3, r5 28be: 4788 blx r1 28c0: e7fe b.n 28c0 if(lv_obj_get_hidden(obj)) return; 28c2: 4f31 ldr r7, [pc, #196] ; (2988 ) 28c4: 4620 mov r0, r4 28c6: 47b8 blx r7 28c8: 2800 cmp r0, #0 28ca: d141 bne.n 2950 lv_obj_t * obj_scr = lv_obj_get_screen(obj); 28cc: 4b2f ldr r3, [pc, #188] ; (298c ) 28ce: 4620 mov r0, r4 28d0: 4798 blx r3 lv_disp_t * disp = lv_obj_get_disp(obj_scr); 28d2: 4b2f ldr r3, [pc, #188] ; (2990 ) lv_obj_t * obj_scr = lv_obj_get_screen(obj); 28d4: 4605 mov r5, r0 lv_disp_t * disp = lv_obj_get_disp(obj_scr); 28d6: 4798 blx r3 if(obj_scr == lv_disp_get_scr_act(disp) || obj_scr == lv_disp_get_layer_top(disp) || 28d8: 4b2e ldr r3, [pc, #184] ; (2994 ) lv_disp_t * disp = lv_obj_get_disp(obj_scr); 28da: 4606 mov r6, r0 if(obj_scr == lv_disp_get_scr_act(disp) || obj_scr == lv_disp_get_layer_top(disp) || 28dc: 4798 blx r3 28de: 4285 cmp r5, r0 28e0: d12c bne.n 293c lv_coord_t ext_size = obj->ext_draw_pad; 28e2: f9b4 5032 ldrsh.w r5, [r4, #50] ; 0x32 lv_area_copy(&obj_coords, &obj->coords); 28e6: 4b2c ldr r3, [pc, #176] ; (2998 ) 28e8: f104 0110 add.w r1, r4, #16 28ec: a802 add r0, sp, #8 28ee: 4798 blx r3 obj_coords.x1 -= ext_size; 28f0: f8bd 2008 ldrh.w r2, [sp, #8] 28f4: b2ab uxth r3, r5 28f6: 1ad2 subs r2, r2, r3 28f8: f8ad 2008 strh.w r2, [sp, #8] obj_coords.y1 -= ext_size; 28fc: f8bd 200a ldrh.w r2, [sp, #10] is_common = _lv_area_intersect(&area_trunc, area, &obj_coords); 2900: 4d26 ldr r5, [pc, #152] ; (299c ) obj_coords.y1 -= ext_size; 2902: 1ad2 subs r2, r2, r3 2904: f8ad 200a strh.w r2, [sp, #10] obj_coords.x2 += ext_size; 2908: f8bd 200c ldrh.w r2, [sp, #12] 290c: 441a add r2, r3 290e: f8ad 200c strh.w r2, [sp, #12] obj_coords.y2 += ext_size; 2912: f8bd 200e ldrh.w r2, [sp, #14] is_common = _lv_area_intersect(&area_trunc, area, &obj_coords); 2916: 4641 mov r1, r8 obj_coords.y2 += ext_size; 2918: 4413 add r3, r2 is_common = _lv_area_intersect(&area_trunc, area, &obj_coords); 291a: a804 add r0, sp, #16 291c: aa02 add r2, sp, #8 obj_coords.y2 += ext_size; 291e: f8ad 300e strh.w r3, [sp, #14] is_common = _lv_area_intersect(&area_trunc, area, &obj_coords); 2922: 47a8 blx r5 if(is_common == false) return; /*The area is not on the object*/ 2924: b1a0 cbz r0, 2950 lv_obj_t * par = lv_obj_get_parent(obj); 2926: f8df 8084 ldr.w r8, [pc, #132] ; 29ac 292a: 4620 mov r0, r4 par = lv_obj_get_parent(par); 292c: 47c0 blx r8 292e: 4604 mov r4, r0 while(par != NULL) { 2930: b988 cbnz r0, 2956 if(is_common) _lv_inv_area(disp, &area_trunc); 2932: 4b1b ldr r3, [pc, #108] ; (29a0 ) 2934: a904 add r1, sp, #16 2936: 4630 mov r0, r6 2938: 4798 blx r3 293a: e009 b.n 2950 if(obj_scr == lv_disp_get_scr_act(disp) || obj_scr == lv_disp_get_layer_top(disp) || 293c: 4b19 ldr r3, [pc, #100] ; (29a4 ) 293e: 4630 mov r0, r6 2940: 4798 blx r3 2942: 4285 cmp r5, r0 2944: d0cd beq.n 28e2 obj_scr == lv_disp_get_layer_sys(disp)) { 2946: 4b18 ldr r3, [pc, #96] ; (29a8 ) 2948: 4630 mov r0, r6 294a: 4798 blx r3 if(obj_scr == lv_disp_get_scr_act(disp) || obj_scr == lv_disp_get_layer_top(disp) || 294c: 4285 cmp r5, r0 294e: d0c8 beq.n 28e2 } 2950: b006 add sp, #24 2952: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} is_common = _lv_area_intersect(&area_trunc, &area_trunc, &par->coords); 2956: a904 add r1, sp, #16 2958: f104 0210 add.w r2, r4, #16 295c: 4608 mov r0, r1 295e: 47a8 blx r5 if(is_common == false) break; /*If no common parts with parent break;*/ 2960: 2800 cmp r0, #0 2962: d0f5 beq.n 2950 if(lv_obj_get_hidden(par)) return; /*If the parent is hidden then the child is hidden and won't be drawn*/ 2964: 4620 mov r0, r4 2966: 47b8 blx r7 2968: 2800 cmp r0, #0 296a: d1f1 bne.n 2950 par = lv_obj_get_parent(par); 296c: 4620 mov r0, r4 296e: e7dd b.n 292c 2970: 00001a0d .word 0x00001a0d 2974: 00026d91 .word 0x00026d91 2978: 000267db .word 0x000267db 297c: 0000eb21 .word 0x0000eb21 2980: 0002683f .word 0x0002683f 2984: 00001a15 .word 0x00001a15 2988: 00002849 .word 0x00002849 298c: 00002399 .word 0x00002399 2990: 000023f1 .word 0x000023f1 2994: 00001a9d .word 0x00001a9d 2998: 00001f45 .word 0x00001f45 299c: 0000e0b9 .word 0x0000e0b9 29a0: 00005139 .word 0x00005139 29a4: 00001ad9 .word 0x00001ad9 29a8: 00001b15 .word 0x00001b15 29ac: 00002351 .word 0x00002351 000029b0 : { 29b0: b57f push {r0, r1, r2, r3, r4, r5, r6, lr} LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 29b2: 4b1a ldr r3, [pc, #104] ; (2a1c ) { 29b4: 4605 mov r5, r0 LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 29b6: 4798 blx r3 29b8: 4604 mov r4, r0 29ba: b968 cbnz r0, 29d8 29bc: 4b18 ldr r3, [pc, #96] ; (2a20 ) 29be: 4919 ldr r1, [pc, #100] ; (2a24 ) 29c0: 9300 str r3, [sp, #0] 29c2: f240 220d movw r2, #525 ; 0x20d 29c6: 2003 movs r0, #3 29c8: 4e17 ldr r6, [pc, #92] ; (2a28 ) 29ca: 47b0 blx r6 29cc: 4817 ldr r0, [pc, #92] ; (2a2c ) 29ce: 4918 ldr r1, [pc, #96] ; (2a30 ) 29d0: 462a mov r2, r5 29d2: 4623 mov r3, r4 29d4: 4788 blx r1 29d6: e7fe b.n 29d6 lv_coord_t ext_size = obj->ext_draw_pad; 29d8: f9b5 4032 ldrsh.w r4, [r5, #50] ; 0x32 lv_area_copy(&obj_coords, &obj->coords); 29dc: 4b15 ldr r3, [pc, #84] ; (2a34 ) 29de: f105 0110 add.w r1, r5, #16 29e2: a802 add r0, sp, #8 29e4: 4798 blx r3 obj_coords.x1 -= ext_size; 29e6: f8bd 2008 ldrh.w r2, [sp, #8] 29ea: b2a3 uxth r3, r4 29ec: 1ad2 subs r2, r2, r3 29ee: f8ad 2008 strh.w r2, [sp, #8] obj_coords.y1 -= ext_size; 29f2: f8bd 200a ldrh.w r2, [sp, #10] 29f6: 1ad2 subs r2, r2, r3 29f8: f8ad 200a strh.w r2, [sp, #10] obj_coords.x2 += ext_size; 29fc: f8bd 200c ldrh.w r2, [sp, #12] 2a00: 441a add r2, r3 2a02: f8ad 200c strh.w r2, [sp, #12] obj_coords.y2 += ext_size; 2a06: f8bd 200e ldrh.w r2, [sp, #14] 2a0a: 4413 add r3, r2 2a0c: f8ad 300e strh.w r3, [sp, #14] lv_obj_invalidate_area(obj, &obj_coords); 2a10: a902 add r1, sp, #8 2a12: 4b09 ldr r3, [pc, #36] ; (2a38 ) 2a14: 4628 mov r0, r5 2a16: 4798 blx r3 } 2a18: b004 add sp, #16 2a1a: bd70 pop {r4, r5, r6, pc} 2a1c: 00001a0d .word 0x00001a0d 2a20: 00026da8 .word 0x00026da8 2a24: 000267db .word 0x000267db 2a28: 0000eb21 .word 0x0000eb21 2a2c: 0002683f .word 0x0002683f 2a30: 00001a15 .word 0x00001a15 2a34: 00001f45 .word 0x00001f45 2a38: 00002895 .word 0x00002895 00002a3c : { 2a3c: b5f7 push {r0, r1, r2, r4, r5, r6, r7, lr} LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 2a3e: 4b19 ldr r3, [pc, #100] ; (2aa4 ) { 2a40: 4605 mov r5, r0 LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 2a42: 4798 blx r3 2a44: 4604 mov r4, r0 2a46: b968 cbnz r0, 2a64 2a48: 4b17 ldr r3, [pc, #92] ; (2aa8 ) 2a4a: 4918 ldr r1, [pc, #96] ; (2aac ) 2a4c: 9300 str r3, [sp, #0] 2a4e: f240 2262 movw r2, #610 ; 0x262 2a52: 2003 movs r0, #3 2a54: 4e16 ldr r6, [pc, #88] ; (2ab0 ) 2a56: 47b0 blx r6 2a58: 4816 ldr r0, [pc, #88] ; (2ab4 ) 2a5a: 4917 ldr r1, [pc, #92] ; (2ab8 ) 2a5c: 462a mov r2, r5 2a5e: 4623 mov r3, r4 2a60: 4788 blx r1 2a62: e7fe b.n 2a62 lv_obj_t * parent = lv_obj_get_parent(obj); 2a64: 4b15 ldr r3, [pc, #84] ; (2abc ) 2a66: 4628 mov r0, r5 2a68: 4798 blx r3 if(_lv_ll_get_head(&parent->child_ll) == obj) return; 2a6a: 1d07 adds r7, r0, #4 2a6c: 4b14 ldr r3, [pc, #80] ; (2ac0 ) lv_obj_t * parent = lv_obj_get_parent(obj); 2a6e: 4604 mov r4, r0 if(_lv_ll_get_head(&parent->child_ll) == obj) return; 2a70: 4638 mov r0, r7 2a72: 4798 blx r3 2a74: 4285 cmp r5, r0 2a76: d013 beq.n 2aa0 lv_obj_invalidate(parent); 2a78: 4e12 ldr r6, [pc, #72] ; (2ac4 ) 2a7a: 4620 mov r0, r4 2a7c: 47b0 blx r6 _lv_ll_chg_list(&parent->child_ll, &parent->child_ll, obj, true); 2a7e: 462a mov r2, r5 2a80: 4639 mov r1, r7 2a82: 4638 mov r0, r7 2a84: 2301 movs r3, #1 2a86: 4f10 ldr r7, [pc, #64] ; (2ac8 ) 2a88: 47b8 blx r7 parent->signal_cb(parent, LV_SIGNAL_CHILD_CHG, obj); 2a8a: 69e3 ldr r3, [r4, #28] 2a8c: 462a mov r2, r5 2a8e: 2101 movs r1, #1 2a90: 4620 mov r0, r4 2a92: 4798 blx r3 lv_obj_invalidate(parent); 2a94: 4620 mov r0, r4 2a96: 4633 mov r3, r6 } 2a98: b003 add sp, #12 2a9a: e8bd 40f0 ldmia.w sp!, {r4, r5, r6, r7, lr} lv_obj_invalidate(parent); 2a9e: 4718 bx r3 } 2aa0: b003 add sp, #12 2aa2: bdf0 pop {r4, r5, r6, r7, pc} 2aa4: 00001a0d .word 0x00001a0d 2aa8: 00026dba .word 0x00026dba 2aac: 000267db .word 0x000267db 2ab0: 0000eb21 .word 0x0000eb21 2ab4: 0002683f .word 0x0002683f 2ab8: 00001a15 .word 0x00001a15 2abc: 00002351 .word 0x00002351 2ac0: 0000e8d5 .word 0x0000e8d5 2ac4: 000029b1 .word 0x000029b1 2ac8: 0000ea19 .word 0x0000ea19 00002acc : { 2acc: e92d 43f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 2ad0: 4b2e ldr r3, [pc, #184] ; (2b8c ) { 2ad2: b087 sub sp, #28 2ad4: 4604 mov r4, r0 2ad6: 4688 mov r8, r1 2ad8: 4617 mov r7, r2 LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 2ada: 4798 blx r3 2adc: 4605 mov r5, r0 2ade: b968 cbnz r0, 2afc 2ae0: 4b2b ldr r3, [pc, #172] ; (2b90 ) 2ae2: 492c ldr r1, [pc, #176] ; (2b94 ) 2ae4: 9300 str r3, [sp, #0] 2ae6: f240 2296 movw r2, #662 ; 0x296 2aea: 2003 movs r0, #3 2aec: 4e2a ldr r6, [pc, #168] ; (2b98 ) 2aee: 47b0 blx r6 2af0: 482a ldr r0, [pc, #168] ; (2b9c ) 2af2: 492b ldr r1, [pc, #172] ; (2ba0 ) 2af4: 4622 mov r2, r4 2af6: 462b mov r3, r5 2af8: 4788 blx r1 2afa: e7fe b.n 2afa lv_obj_t * par = obj->parent; 2afc: 6826 ldr r6, [r4, #0] if(par == NULL) { 2afe: b95e cbnz r6, 2b18 LV_LOG_WARN("lv_obj_set_pos: not changing position of screen object"); 2b00: 4b28 ldr r3, [pc, #160] ; (2ba4 ) 2b02: 9300 str r3, [sp, #0] 2b04: 4923 ldr r1, [pc, #140] ; (2b94 ) 2b06: 4b22 ldr r3, [pc, #136] ; (2b90 ) 2b08: 4c23 ldr r4, [pc, #140] ; (2b98 ) 2b0a: f44f 7227 mov.w r2, #668 ; 0x29c 2b0e: 2002 movs r0, #2 2b10: 47a0 blx r4 } 2b12: b007 add sp, #28 2b14: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} diff.x = x - obj->coords.x1; 2b18: 8a22 ldrh r2, [r4, #16] 2b1a: 8a33 ldrh r3, [r6, #16] 2b1c: 1a9b subs r3, r3, r2 2b1e: eb03 0108 add.w r1, r3, r8 diff.y = y - obj->coords.y1; 2b22: 8a62 ldrh r2, [r4, #18] 2b24: 8a73 ldrh r3, [r6, #18] 2b26: 1a9b subs r3, r3, r2 2b28: 19da adds r2, r3, r7 2b2a: b297 uxth r7, r2 diff.x = x - obj->coords.x1; 2b2c: fa1f f881 uxth.w r8, r1 diff.y = y - obj->coords.y1; 2b30: b212 sxth r2, r2 if(diff.x == 0 && diff.y == 0) return; 2b32: ea58 0307 orrs.w r3, r8, r7 diff.x = x - obj->coords.x1; 2b36: b20d sxth r5, r1 diff.y = y - obj->coords.y1; 2b38: 9203 str r2, [sp, #12] if(diff.x == 0 && diff.y == 0) return; 2b3a: d0ea beq.n 2b12 lv_obj_invalidate(obj); 2b3c: 4620 mov r0, r4 2b3e: f8df 9070 ldr.w r9, [pc, #112] ; 2bb0 2b42: 47c8 blx r9 lv_obj_get_coords(obj, &ori); 2b44: a904 add r1, sp, #16 2b46: 4620 mov r0, r4 2b48: 4b17 ldr r3, [pc, #92] ; (2ba8 ) 2b4a: 4798 blx r3 obj->coords.x1 += diff.x; 2b4c: 8a23 ldrh r3, [r4, #16] refresh_children_position(obj, diff.x, diff.y); 2b4e: 9a03 ldr r2, [sp, #12] obj->coords.x1 += diff.x; 2b50: 4443 add r3, r8 2b52: 8223 strh r3, [r4, #16] obj->coords.y1 += diff.y; 2b54: 8a63 ldrh r3, [r4, #18] 2b56: 443b add r3, r7 2b58: 8263 strh r3, [r4, #18] obj->coords.x2 += diff.x; 2b5a: 8aa3 ldrh r3, [r4, #20] 2b5c: 4498 add r8, r3 obj->coords.y2 += diff.y; 2b5e: 8ae3 ldrh r3, [r4, #22] obj->coords.x2 += diff.x; 2b60: f8a4 8014 strh.w r8, [r4, #20] obj->coords.y2 += diff.y; 2b64: 441f add r7, r3 refresh_children_position(obj, diff.x, diff.y); 2b66: 4629 mov r1, r5 2b68: 4620 mov r0, r4 2b6a: 4b10 ldr r3, [pc, #64] ; (2bac ) obj->coords.y2 += diff.y; 2b6c: 82e7 strh r7, [r4, #22] refresh_children_position(obj, diff.x, diff.y); 2b6e: 4798 blx r3 obj->signal_cb(obj, LV_SIGNAL_COORD_CHG, &ori); 2b70: 69e3 ldr r3, [r4, #28] 2b72: aa04 add r2, sp, #16 2b74: 2102 movs r1, #2 2b76: 4620 mov r0, r4 2b78: 4798 blx r3 par->signal_cb(par, LV_SIGNAL_CHILD_CHG, obj); 2b7a: 69f3 ldr r3, [r6, #28] 2b7c: 4622 mov r2, r4 2b7e: 2101 movs r1, #1 2b80: 4630 mov r0, r6 2b82: 4798 blx r3 lv_obj_invalidate(obj); 2b84: 4620 mov r0, r4 2b86: 47c8 blx r9 2b88: e7c3 b.n 2b12 2b8a: bf00 nop 2b8c: 00001a0d .word 0x00001a0d 2b90: 00026de8 .word 0x00026de8 2b94: 000267db .word 0x000267db 2b98: 0000eb21 .word 0x0000eb21 2b9c: 0002683f .word 0x0002683f 2ba0: 00001a15 .word 0x00001a15 2ba4: 000268ca .word 0x000268ca 2ba8: 00002501 .word 0x00002501 2bac: 00001eed .word 0x00001eed 2bb0: 000029b1 .word 0x000029b1 00002bb4 : { 2bb4: b573 push {r0, r1, r4, r5, r6, lr} LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 2bb6: 4b0f ldr r3, [pc, #60] ; (2bf4 ) { 2bb8: 4604 mov r4, r0 2bba: 460e mov r6, r1 LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 2bbc: 4798 blx r3 2bbe: 4605 mov r5, r0 2bc0: b968 cbnz r0, 2bde 2bc2: 4b0d ldr r3, [pc, #52] ; (2bf8 ) 2bc4: 490d ldr r1, [pc, #52] ; (2bfc ) 2bc6: 9300 str r3, [sp, #0] 2bc8: f44f 7233 mov.w r2, #716 ; 0x2cc 2bcc: 2003 movs r0, #3 2bce: 4e0c ldr r6, [pc, #48] ; (2c00 ) 2bd0: 47b0 blx r6 2bd2: 480c ldr r0, [pc, #48] ; (2c04 ) 2bd4: 490c ldr r1, [pc, #48] ; (2c08 ) 2bd6: 4622 mov r2, r4 2bd8: 462b mov r3, r5 2bda: 4788 blx r1 2bdc: e7fe b.n 2bdc lv_obj_set_pos(obj, x, lv_obj_get_y(obj)); 2bde: 4b0b ldr r3, [pc, #44] ; (2c0c ) 2be0: 4620 mov r0, r4 2be2: 4798 blx r3 2be4: 4b0a ldr r3, [pc, #40] ; (2c10 ) 2be6: 4602 mov r2, r0 2be8: 4631 mov r1, r6 2bea: 4620 mov r0, r4 } 2bec: b002 add sp, #8 2bee: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr} lv_obj_set_pos(obj, x, lv_obj_get_y(obj)); 2bf2: 4718 bx r3 2bf4: 00001a0d .word 0x00001a0d 2bf8: 00026df7 .word 0x00026df7 2bfc: 000267db .word 0x000267db 2c00: 0000eb21 .word 0x0000eb21 2c04: 0002683f .word 0x0002683f 2c08: 00001a15 .word 0x00001a15 2c0c: 000025b9 .word 0x000025b9 2c10: 00002acd .word 0x00002acd 00002c14 : { 2c14: b573 push {r0, r1, r4, r5, r6, lr} LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 2c16: 4b0f ldr r3, [pc, #60] ; (2c54 ) { 2c18: 4604 mov r4, r0 2c1a: 460e mov r6, r1 LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 2c1c: 4798 blx r3 2c1e: 4605 mov r5, r0 2c20: b968 cbnz r0, 2c3e 2c22: 4b0d ldr r3, [pc, #52] ; (2c58 ) 2c24: 490d ldr r1, [pc, #52] ; (2c5c ) 2c26: 9300 str r3, [sp, #0] 2c28: f44f 7236 mov.w r2, #728 ; 0x2d8 2c2c: 2003 movs r0, #3 2c2e: 4e0c ldr r6, [pc, #48] ; (2c60 ) 2c30: 47b0 blx r6 2c32: 480c ldr r0, [pc, #48] ; (2c64 ) 2c34: 490c ldr r1, [pc, #48] ; (2c68 ) 2c36: 4622 mov r2, r4 2c38: 462b mov r3, r5 2c3a: 4788 blx r1 2c3c: e7fe b.n 2c3c lv_obj_set_pos(obj, lv_obj_get_x(obj), y); 2c3e: 4b0b ldr r3, [pc, #44] ; (2c6c ) 2c40: 4620 mov r0, r4 2c42: 4798 blx r3 2c44: 4b0a ldr r3, [pc, #40] ; (2c70 ) 2c46: 4601 mov r1, r0 2c48: 4632 mov r2, r6 2c4a: 4620 mov r0, r4 } 2c4c: b002 add sp, #8 2c4e: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr} lv_obj_set_pos(obj, lv_obj_get_x(obj), y); 2c52: 4718 bx r3 2c54: 00001a0d .word 0x00001a0d 2c58: 00026e04 .word 0x00026e04 2c5c: 000267db .word 0x000267db 2c60: 0000eb21 .word 0x0000eb21 2c64: 0002683f .word 0x0002683f 2c68: 00001a15 .word 0x00001a15 2c6c: 00002559 .word 0x00002559 2c70: 00002acd .word 0x00002acd 00002c74 : { 2c74: e92d 47ff stmdb sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, lr} LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 2c78: f8df a0d8 ldr.w sl, [pc, #216] ; 2d54 { 2c7c: f9bd 8030 ldrsh.w r8, [sp, #48] ; 0x30 2c80: 4604 mov r4, r0 2c82: 460d mov r5, r1 2c84: 4617 mov r7, r2 2c86: 461e mov r6, r3 LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 2c88: 47d0 blx sl 2c8a: 4681 mov r9, r0 2c8c: b968 cbnz r0, 2caa 2c8e: 4b2a ldr r3, [pc, #168] ; (2d38 ) 2c90: 492a ldr r1, [pc, #168] ; (2d3c ) 2c92: 9300 str r3, [sp, #0] 2c94: f240 326d movw r2, #877 ; 0x36d 2c98: 2003 movs r0, #3 2c9a: 4d29 ldr r5, [pc, #164] ; (2d40 ) 2c9c: 47a8 blx r5 2c9e: 4829 ldr r0, [pc, #164] ; (2d44 ) 2ca0: 4929 ldr r1, [pc, #164] ; (2d48 ) 2ca2: 4622 mov r2, r4 2ca4: 464b mov r3, r9 2ca6: 4788 blx r1 2ca8: e7fe b.n 2ca8 if(base == NULL) base = lv_obj_get_parent(obj); 2caa: b91d cbnz r5, 2cb4 2cac: 4b27 ldr r3, [pc, #156] ; (2d4c ) 2cae: 4620 mov r0, r4 2cb0: 4798 blx r3 2cb2: 4605 mov r5, r0 LV_ASSERT_OBJ(base, LV_OBJX_NAME); 2cb4: 4628 mov r0, r5 2cb6: 47d0 blx sl 2cb8: 4681 mov r9, r0 2cba: b968 cbnz r0, 2cd8 2cbc: 4b1e ldr r3, [pc, #120] ; (2d38 ) 2cbe: 491f ldr r1, [pc, #124] ; (2d3c ) 2cc0: 9300 str r3, [sp, #0] 2cc2: f240 3271 movw r2, #881 ; 0x371 2cc6: 2003 movs r0, #3 2cc8: 4c1d ldr r4, [pc, #116] ; (2d40 ) 2cca: 47a0 blx r4 2ccc: 481d ldr r0, [pc, #116] ; (2d44 ) 2cce: 491e ldr r1, [pc, #120] ; (2d48 ) 2cd0: 462a mov r2, r5 2cd2: 464b mov r3, r9 2cd4: 4788 blx r1 2cd6: e7fe b.n 2cd6 _lv_area_align(&base->coords, &obj->coords, align, &new_pos); 2cd8: 463a mov r2, r7 2cda: f104 0110 add.w r1, r4, #16 2cde: ab03 add r3, sp, #12 2ce0: f105 0010 add.w r0, r5, #16 2ce4: f8df 9070 ldr.w r9, [pc, #112] ; 2d58 2ce8: 47c8 blx r9 lv_obj_t * par = lv_obj_get_parent(obj); 2cea: 4b18 ldr r3, [pc, #96] ; (2d4c ) 2cec: 4620 mov r0, r4 2cee: 4798 blx r3 new_pos.y += y_ofs; 2cf0: f8bd 200e ldrh.w r2, [sp, #14] new_pos.x += x_ofs; 2cf4: f8bd 100c ldrh.w r1, [sp, #12] lv_coord_t par_abs_y = par->coords.y1; 2cf8: f9b0 3012 ldrsh.w r3, [r0, #18] new_pos.x -= par_abs_x; 2cfc: 8a00 ldrh r0, [r0, #16] new_pos.y += y_ofs; 2cfe: 4442 add r2, r8 new_pos.x += x_ofs; 2d00: 4431 add r1, r6 new_pos.x -= par_abs_x; 2d02: 1a09 subs r1, r1, r0 new_pos.y -= par_abs_y; 2d04: 1ad2 subs r2, r2, r3 new_pos.x -= par_abs_x; 2d06: b209 sxth r1, r1 new_pos.y -= par_abs_y; 2d08: b212 sxth r2, r2 lv_obj_set_pos(obj, new_pos.x, new_pos.y); 2d0a: 4b11 ldr r3, [pc, #68] ; (2d50 ) new_pos.x -= par_abs_x; 2d0c: f8ad 100c strh.w r1, [sp, #12] lv_obj_set_pos(obj, new_pos.x, new_pos.y); 2d10: 4620 mov r0, r4 new_pos.y -= par_abs_y; 2d12: f8ad 200e strh.w r2, [sp, #14] lv_obj_set_pos(obj, new_pos.x, new_pos.y); 2d16: 4798 blx r3 obj->realign.origo_align = 0; 2d18: f894 3049 ldrb.w r3, [r4, #73] ; 0x49 obj->realign.align = align; 2d1c: f884 7048 strb.w r7, [r4, #72] ; 0x48 obj->realign.origo_align = 0; 2d20: f36f 0341 bfc r3, #1, #1 obj->realign.xofs = x_ofs; 2d24: f8a4 6044 strh.w r6, [r4, #68] ; 0x44 obj->realign.yofs = y_ofs; 2d28: f8a4 8046 strh.w r8, [r4, #70] ; 0x46 obj->realign.base = base; 2d2c: 6425 str r5, [r4, #64] ; 0x40 obj->realign.origo_align = 0; 2d2e: f884 3049 strb.w r3, [r4, #73] ; 0x49 } 2d32: b004 add sp, #16 2d34: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} 2d38: 00026e11 .word 0x00026e11 2d3c: 000267db .word 0x000267db 2d40: 0000eb21 .word 0x0000eb21 2d44: 0002683f .word 0x0002683f 2d48: 00001a15 .word 0x00001a15 2d4c: 00002351 .word 0x00002351 2d50: 00002acd .word 0x00002acd 2d54: 00001a0d .word 0x00001a0d 2d58: 0000e35d .word 0x0000e35d 00002d5c : { 2d5c: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} 2d60: b087 sub sp, #28 2d62: e9cd 2303 strd r2, r3, [sp, #12] LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 2d66: f8df b1a4 ldr.w fp, [pc, #420] ; 2f0c { 2d6a: f9bd 3040 ldrsh.w r3, [sp, #64] ; 0x40 2d6e: 9305 str r3, [sp, #20] 2d70: 4680 mov r8, r0 2d72: 460e mov r6, r1 LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 2d74: 47d8 blx fp 2d76: 4604 mov r4, r0 2d78: b968 cbnz r0, 2d96 2d7a: 4b5a ldr r3, [pc, #360] ; (2ee4 ) 2d7c: 495a ldr r1, [pc, #360] ; (2ee8 ) 2d7e: 9300 str r3, [sp, #0] 2d80: f240 3295 movw r2, #917 ; 0x395 2d84: 2003 movs r0, #3 2d86: 4d59 ldr r5, [pc, #356] ; (2eec ) 2d88: 47a8 blx r5 2d8a: 4859 ldr r0, [pc, #356] ; (2ef0 ) 2d8c: 4959 ldr r1, [pc, #356] ; (2ef4 ) 2d8e: 4642 mov r2, r8 2d90: 4623 mov r3, r4 2d92: 4788 blx r1 2d94: e7fe b.n 2d94 lv_coord_t new_x = lv_obj_get_x(obj); 2d96: 4b58 ldr r3, [pc, #352] ; (2ef8 ) lv_coord_t obj_h_half = lv_obj_get_height(obj) / 2; 2d98: f8df 9174 ldr.w r9, [pc, #372] ; 2f10 lv_coord_t new_x = lv_obj_get_x(obj); 2d9c: 4640 mov r0, r8 2d9e: 4798 blx r3 lv_coord_t new_y = lv_obj_get_y(obj); 2da0: 4b56 ldr r3, [pc, #344] ; (2efc ) lv_coord_t new_x = lv_obj_get_x(obj); 2da2: 4604 mov r4, r0 lv_coord_t new_y = lv_obj_get_y(obj); 2da4: 4640 mov r0, r8 2da6: 4798 blx r3 lv_coord_t obj_w_half = lv_obj_get_width(obj) / 2; 2da8: 4a55 ldr r2, [pc, #340] ; (2f00 ) lv_coord_t new_y = lv_obj_get_y(obj); 2daa: 4682 mov sl, r0 lv_coord_t obj_w_half = lv_obj_get_width(obj) / 2; 2dac: 4640 mov r0, r8 2dae: 4790 blx r2 2db0: 4605 mov r5, r0 lv_coord_t obj_h_half = lv_obj_get_height(obj) / 2; 2db2: 4640 mov r0, r8 2db4: 47c8 blx r9 2db6: 4607 mov r7, r0 if(base == NULL) { 2db8: b91e cbnz r6, 2dc2 base = lv_obj_get_parent(obj); 2dba: 4952 ldr r1, [pc, #328] ; (2f04 ) 2dbc: 4640 mov r0, r8 2dbe: 4788 blx r1 2dc0: 4606 mov r6, r0 LV_ASSERT_OBJ(base, LV_OBJX_NAME); 2dc2: 4630 mov r0, r6 2dc4: 47d8 blx fp 2dc6: 4a4e ldr r2, [pc, #312] ; (2f00 ) 2dc8: 4683 mov fp, r0 2dca: b968 cbnz r0, 2de8 2dcc: 4b45 ldr r3, [pc, #276] ; (2ee4 ) 2dce: 4946 ldr r1, [pc, #280] ; (2ee8 ) 2dd0: 9300 str r3, [sp, #0] 2dd2: f240 32a1 movw r2, #929 ; 0x3a1 2dd6: 2003 movs r0, #3 2dd8: 4c44 ldr r4, [pc, #272] ; (2eec ) 2dda: 47a0 blx r4 2ddc: 4844 ldr r0, [pc, #272] ; (2ef0 ) 2dde: 4945 ldr r1, [pc, #276] ; (2ef4 ) 2de0: 4632 mov r2, r6 2de2: 465b mov r3, fp 2de4: 4788 blx r1 2de6: e7fe b.n 2de6 switch(align) { 2de8: 9b03 ldr r3, [sp, #12] lv_coord_t obj_w_half = lv_obj_get_width(obj) / 2; 2dea: eb05 75d5 add.w r5, r5, r5, lsr #31 lv_coord_t obj_h_half = lv_obj_get_height(obj) / 2; 2dee: eb07 77d7 add.w r7, r7, r7, lsr #31 lv_coord_t obj_w_half = lv_obj_get_width(obj) / 2; 2df2: f345 054f sbfx r5, r5, #1, #16 lv_coord_t obj_h_half = lv_obj_get_height(obj) / 2; 2df6: f347 074f sbfx r7, r7, #1, #16 switch(align) { 2dfa: 2b14 cmp r3, #20 2dfc: d824 bhi.n 2e48 2dfe: e8df f003 tbb [pc, r3] 2e02: 580b .short 0x580b 2e04: 4b5e6119 .word 0x4b5e6119 2e08: 58665b6b .word 0x58665b6b 2e0c: 4b5e6119 .word 0x4b5e6119 2e10: 5e5b586b .word 0x5e5b586b 2e14: 6661 .short 0x6661 2e16: 6b .byte 0x6b 2e17: 00 .byte 0x00 new_x = lv_obj_get_width(base) / 2 - obj_w_half; 2e18: 4630 mov r0, r6 2e1a: 4790 blx r2 2e1c: eb00 70d0 add.w r0, r0, r0, lsr #31 2e20: ebc5 0460 rsb r4, r5, r0, asr #1 2e24: b224 sxth r4, r4 new_y = lv_obj_get_height(base) / 2 - obj_h_half; 2e26: 4630 mov r0, r6 2e28: 47c8 blx r9 2e2a: eb00 70d0 add.w r0, r0, r0, lsr #31 2e2e: ebc7 0360 rsb r3, r7, r0, asr #1 2e32: e007 b.n 2e44 new_x = lv_obj_get_width(base) / 2 - obj_w_half; 2e34: 4630 mov r0, r6 2e36: 4790 blx r2 2e38: eb00 70d0 add.w r0, r0, r0, lsr #31 2e3c: ebc5 0460 rsb r4, r5, r0, asr #1 2e40: b224 sxth r4, r4 new_y = -obj_h_half; 2e42: 427b negs r3, r7 new_y = lv_obj_get_height(base) / 2 - obj_h_half; 2e44: fa0f fa83 sxth.w sl, r3 lv_obj_t * par = lv_obj_get_parent(obj); 2e48: 4a2e ldr r2, [pc, #184] ; (2f04 ) 2e4a: 4640 mov r0, r8 2e4c: 4790 blx r2 new_x += x_ofs + base_abs_x; 2e4e: 9b04 ldr r3, [sp, #16] 2e50: 8a31 ldrh r1, [r6, #16] new_x -= par_abs_x; 2e52: 8a02 ldrh r2, [r0, #16] new_x += x_ofs + base_abs_x; 2e54: 4419 add r1, r3 2e56: 4421 add r1, r4 new_y += y_ofs + base_abs_y; 2e58: 9b05 ldr r3, [sp, #20] new_x -= par_abs_x; 2e5a: 1a89 subs r1, r1, r2 new_y += y_ofs + base_abs_y; 2e5c: 8a72 ldrh r2, [r6, #18] 2e5e: 441a add r2, r3 new_y -= par_abs_y; 2e60: 8a43 ldrh r3, [r0, #18] new_y += y_ofs + base_abs_y; 2e62: 4452 add r2, sl new_y -= par_abs_y; 2e64: 1ad2 subs r2, r2, r3 lv_obj_set_pos(obj, new_x, new_y); 2e66: b212 sxth r2, r2 2e68: 4b27 ldr r3, [pc, #156] ; (2f08 ) 2e6a: b209 sxth r1, r1 2e6c: 4640 mov r0, r8 2e6e: 4798 blx r3 obj->realign.align = align; 2e70: 9b03 ldr r3, [sp, #12] 2e72: f888 3048 strb.w r3, [r8, #72] ; 0x48 obj->realign.xofs = x_ofs; 2e76: 9b04 ldr r3, [sp, #16] 2e78: f8a8 3044 strh.w r3, [r8, #68] ; 0x44 obj->realign.yofs = y_ofs; 2e7c: 9b05 ldr r3, [sp, #20] 2e7e: f8a8 3046 strh.w r3, [r8, #70] ; 0x46 obj->realign.origo_align = 1; 2e82: f898 3049 ldrb.w r3, [r8, #73] ; 0x49 obj->realign.base = base; 2e86: f8c8 6040 str.w r6, [r8, #64] ; 0x40 obj->realign.origo_align = 1; 2e8a: f043 0302 orr.w r3, r3, #2 2e8e: f888 3049 strb.w r3, [r8, #73] ; 0x49 } 2e92: b007 add sp, #28 2e94: 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; 2e98: 4630 mov r0, r6 2e9a: 4790 blx r2 2e9c: eb00 70d0 add.w r0, r0, r0, lsr #31 2ea0: ebc5 0460 rsb r4, r5, r0, asr #1 2ea4: b224 sxth r4, r4 new_y = lv_obj_get_height(base) - obj_h_half; 2ea6: 4630 mov r0, r6 2ea8: 47c8 blx r9 2eaa: 1bc0 subs r0, r0, r7 2eac: fa0f fa80 sxth.w sl, r0 break; 2eb0: e7ca b.n 2e48 new_x = -obj_w_half; 2eb2: 426d negs r5, r5 2eb4: b22c sxth r4, r5 new_y = -obj_h_half; 2eb6: e7c4 b.n 2e42 new_x = -obj_w_half; 2eb8: 426d negs r5, r5 2eba: b22c sxth r4, r5 new_y = lv_obj_get_height(base) / 2 - obj_h_half; 2ebc: e7b3 b.n 2e26 new_x = -obj_w_half; 2ebe: 426d negs r5, r5 2ec0: b22c sxth r4, r5 new_y = lv_obj_get_height(base) - obj_h_half; 2ec2: e7f0 b.n 2ea6 new_x = lv_obj_get_width(base) - obj_w_half; 2ec4: 4630 mov r0, r6 2ec6: 4790 blx r2 2ec8: 1b40 subs r0, r0, r5 2eca: b204 sxth r4, r0 2ecc: e7b9 b.n 2e42 new_x = lv_obj_get_width(base) - obj_w_half; 2ece: 4630 mov r0, r6 2ed0: 4790 blx r2 2ed2: 1b40 subs r0, r0, r5 2ed4: b204 sxth r4, r0 2ed6: e7a6 b.n 2e26 new_x = lv_obj_get_width(base) - obj_w_half; 2ed8: 4630 mov r0, r6 2eda: 4790 blx r2 2edc: 1b40 subs r0, r0, r5 2ede: b204 sxth r4, r0 2ee0: e7e1 b.n 2ea6 2ee2: bf00 nop 2ee4: 00026e1e .word 0x00026e1e 2ee8: 000267db .word 0x000267db 2eec: 0000eb21 .word 0x0000eb21 2ef0: 0002683f .word 0x0002683f 2ef4: 00001a15 .word 0x00001a15 2ef8: 00002559 .word 0x00002559 2efc: 000025b9 .word 0x000025b9 2f00: 00002619 .word 0x00002619 2f04: 00002351 .word 0x00002351 2f08: 00002acd .word 0x00002acd 2f0c: 00001a0d .word 0x00001a0d 2f10: 00002669 .word 0x00002669 00002f14 : { 2f14: b573 push {r0, r1, r4, r5, r6, lr} LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 2f16: 4b12 ldr r3, [pc, #72] ; (2f60 ) { 2f18: 4604 mov r4, r0 LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 2f1a: 4798 blx r3 2f1c: 4605 mov r5, r0 2f1e: b968 cbnz r0, 2f3c 2f20: 4b10 ldr r3, [pc, #64] ; (2f64 ) 2f22: 4911 ldr r1, [pc, #68] ; (2f68 ) 2f24: 9300 str r3, [sp, #0] 2f26: f240 422a movw r2, #1066 ; 0x42a 2f2a: 2003 movs r0, #3 2f2c: 4e0f ldr r6, [pc, #60] ; (2f6c ) 2f2e: 47b0 blx r6 2f30: 480f ldr r0, [pc, #60] ; (2f70 ) 2f32: 4910 ldr r1, [pc, #64] ; (2f74 ) 2f34: 4622 mov r2, r4 2f36: 462b mov r3, r5 2f38: 4788 blx r1 2f3a: e7fe b.n 2f3a if(obj->realign.origo_align) 2f3c: 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); 2f40: f9b4 0046 ldrsh.w r0, [r4, #70] ; 0x46 2f44: 6c21 ldr r1, [r4, #64] ; 0x40 2f46: f894 2048 ldrb.w r2, [r4, #72] ; 0x48 2f4a: f9b4 3044 ldrsh.w r3, [r4, #68] ; 0x44 2f4e: 9000 str r0, [sp, #0] 2f50: 4620 mov r0, r4 if(obj->realign.origo_align) 2f52: 07ac lsls r4, r5, #30 lv_obj_align_origo(obj, obj->realign.base, obj->realign.align, obj->realign.xofs, obj->realign.yofs); 2f54: bf4c ite mi 2f56: 4c08 ldrmi r4, [pc, #32] ; (2f78 ) lv_obj_align(obj, obj->realign.base, obj->realign.align, obj->realign.xofs, obj->realign.yofs); 2f58: 4c08 ldrpl r4, [pc, #32] ; (2f7c ) 2f5a: 47a0 blx r4 } 2f5c: b002 add sp, #8 2f5e: bd70 pop {r4, r5, r6, pc} 2f60: 00001a0d .word 0x00001a0d 2f64: 00026e31 .word 0x00026e31 2f68: 000267db .word 0x000267db 2f6c: 0000eb21 .word 0x0000eb21 2f70: 0002683f .word 0x0002683f 2f74: 00001a15 .word 0x00001a15 2f78: 00002d5d .word 0x00002d5d 2f7c: 00002c75 .word 0x00002c75 00002f80 : { 2f80: b5f8 push {r3, r4, r5, r6, r7, lr} lv_obj_t * child = lv_obj_get_child(obj, NULL); 2f82: 2100 movs r1, #0 2f84: 4e0b ldr r6, [pc, #44] ; (2fb4 ) lv_obj_invalidate(child); 2f86: 4f0c ldr r7, [pc, #48] ; (2fb8 ) { 2f88: 4605 mov r5, r0 lv_obj_t * child = lv_obj_get_child(obj, NULL); 2f8a: 47b0 blx r6 2f8c: 4604 mov r4, r0 while(child != NULL) { 2f8e: b904 cbnz r4, 2f92 } 2f90: bdf8 pop {r3, r4, r5, r6, r7, pc} lv_obj_invalidate(child); 2f92: 4620 mov r0, r4 2f94: 47b8 blx r7 child->signal_cb(child, LV_SIGNAL_STYLE_CHG, NULL); 2f96: 69e3 ldr r3, [r4, #28] 2f98: 2200 movs r2, #0 2f9a: 2104 movs r1, #4 2f9c: 4620 mov r0, r4 2f9e: 4798 blx r3 lv_obj_invalidate(child); 2fa0: 4620 mov r0, r4 2fa2: 47b8 blx r7 refresh_children_style(child); /*Check children too*/ 2fa4: 4620 mov r0, r4 2fa6: f7ff ffeb bl 2f80 child = lv_obj_get_child(obj, child); 2faa: 4621 mov r1, r4 2fac: 4628 mov r0, r5 2fae: 47b0 blx r6 2fb0: 4604 mov r4, r0 2fb2: e7ec b.n 2f8e 2fb4: 0000249d .word 0x0000249d 2fb8: 000029b1 .word 0x000029b1 00002fbc : { 2fbc: b573 push {r0, r1, r4, r5, r6, lr} LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 2fbe: 4b36 ldr r3, [pc, #216] ; (3098 ) { 2fc0: 4605 mov r5, r0 2fc2: 460c mov r4, r1 LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 2fc4: 4798 blx r3 2fc6: 4606 mov r6, r0 2fc8: b968 cbnz r0, 2fe6 2fca: 4b34 ldr r3, [pc, #208] ; (309c ) 2fcc: 4934 ldr r1, [pc, #208] ; (30a0 ) 2fce: 9300 str r3, [sp, #0] 2fd0: f240 521d movw r2, #1309 ; 0x51d 2fd4: 2003 movs r0, #3 2fd6: 4c33 ldr r4, [pc, #204] ; (30a4 ) 2fd8: 47a0 blx r4 2fda: 4833 ldr r0, [pc, #204] ; (30a8 ) 2fdc: 4933 ldr r1, [pc, #204] ; (30ac ) 2fde: 462a mov r2, r5 2fe0: 4633 mov r3, r6 2fe2: 4788 blx r1 2fe4: e7fe b.n 2fe4 switch(prop) { 2fe6: 2c90 cmp r4, #144 ; 0x90 2fe8: 4e31 ldr r6, [pc, #196] ; (30b0 ) 2fea: d838 bhi.n 305e 2fec: 2c72 cmp r4, #114 ; 0x72 2fee: d819 bhi.n 3024 2ff0: 2c53 cmp r4, #83 ; 0x53 2ff2: d82e bhi.n 3052 2ff4: 2c3f cmp r4, #63 ; 0x3f 2ff6: d822 bhi.n 303e 2ff8: 2c07 cmp r4, #7 2ffa: d825 bhi.n 3048 2ffc: 2c01 cmp r4, #1 2ffe: d918 bls.n 3032 lv_obj_invalidate(obj); 3000: 4628 mov r0, r5 3002: 47b0 blx r6 obj->signal_cb(obj, LV_SIGNAL_STYLE_CHG, NULL); 3004: 69eb ldr r3, [r5, #28] 3006: 2200 movs r2, #0 3008: 2104 movs r1, #4 300a: 4628 mov r0, r5 300c: 4798 blx r3 switch(prop) { 300e: 2c18 cmp r4, #24 3010: d834 bhi.n 307c 3012: 2c14 cmp r4, #20 3014: d934 bls.n 3080 if(obj->parent) obj->parent->signal_cb(obj->parent, LV_SIGNAL_CHILD_CHG, NULL); 3016: 6828 ldr r0, [r5, #0] 3018: b390 cbz r0, 3080 301a: 69c3 ldr r3, [r0, #28] 301c: 2200 movs r2, #0 301e: 2101 movs r1, #1 3020: 4798 blx r3 3022: e02d b.n 3080 3024: f1a4 0273 sub.w r2, r4, #115 ; 0x73 3028: 4b22 ldr r3, [pc, #136] ; (30b4 ) 302a: b292 uxth r2, r2 302c: 40d3 lsrs r3, r2 302e: 07da lsls r2, r3, #31 3030: d4e6 bmi.n 3000 lv_obj_invalidate(obj); 3032: 4628 mov r0, r5 3034: 4633 mov r3, r6 } 3036: b002 add sp, #8 3038: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr} if(prop == LV_STYLE_PROP_ALL || (prop & LV_STYLE_INHERIT_MASK)) refresh_children_style(obj); 303c: 4718 bx r3 303e: f1a4 0240 sub.w r2, r4, #64 ; 0x40 3042: 4b1d ldr r3, [pc, #116] ; (30b8 ) 3044: b292 uxth r2, r2 3046: e7f1 b.n 302c switch(prop) { 3048: f1a4 0310 sub.w r3, r4, #16 304c: 2b08 cmp r3, #8 304e: d8f0 bhi.n 3032 3050: e7d6 b.n 3000 3052: 2c5c cmp r4, #92 ; 0x5c 3054: d0d4 beq.n 3000 3056: f1a4 0370 sub.w r3, r4, #112 ; 0x70 305a: 2b01 cmp r3, #1 305c: e7f7 b.n 304e 305e: f248 0381 movw r3, #32897 ; 0x8081 3062: 429c cmp r4, r3 3064: d806 bhi.n 3074 3066: f248 037f movw r3, #32895 ; 0x807f 306a: 429c cmp r4, r3 306c: d8c8 bhi.n 3000 306e: 2cff cmp r4, #255 ; 0xff 3070: d1df bne.n 3032 3072: e7c5 b.n 3000 3074: f248 038e movw r3, #32910 ; 0x808e 3078: 429c cmp r4, r3 307a: e7f9 b.n 3070 switch(prop) { 307c: 2cff cmp r4, #255 ; 0xff 307e: d0ca beq.n 3016 lv_obj_invalidate(obj); 3080: 4628 mov r0, r5 3082: 47b0 blx r6 if(prop == LV_STYLE_PROP_ALL || (prop & LV_STYLE_INHERIT_MASK)) refresh_children_style(obj); 3084: 2cff cmp r4, #255 ; 0xff 3086: d001 beq.n 308c 3088: 0423 lsls r3, r4, #16 308a: d502 bpl.n 3092 308c: 4b0b ldr r3, [pc, #44] ; (30bc ) 308e: 4628 mov r0, r5 3090: e7d1 b.n 3036 } 3092: b002 add sp, #8 3094: bd70 pop {r4, r5, r6, pc} 3096: bf00 nop 3098: 00001a0d .word 0x00001a0d 309c: 00026e40 .word 0x00026e40 30a0: 000267db .word 0x000267db 30a4: 0000eb21 .word 0x0000eb21 30a8: 0002683f .word 0x0002683f 30ac: 00001a15 .word 0x00001a15 30b0: 000029b1 .word 0x000029b1 30b4: 20001a07 .word 0x20001a07 30b8: 000f1003 .word 0x000f1003 30bc: 00002f81 .word 0x00002f81 000030c0 : { 30c0: b510 push {r4, lr} lv_obj_clean_style_list(obj, part); 30c2: 4b04 ldr r3, [pc, #16] ; (30d4 ) { 30c4: 4604 mov r4, r0 lv_obj_clean_style_list(obj, part); 30c6: 4798 blx r3 lv_obj_refresh_style(obj, LV_STYLE_PROP_ALL); 30c8: 4620 mov r0, r4 30ca: 4b03 ldr r3, [pc, #12] ; (30d8 ) } 30cc: e8bd 4010 ldmia.w sp!, {r4, lr} lv_obj_refresh_style(obj, LV_STYLE_PROP_ALL); 30d0: 21ff movs r1, #255 ; 0xff 30d2: 4718 bx r3 30d4: 00002775 .word 0x00002775 30d8: 00002fbd .word 0x00002fbd 000030dc : { 30dc: b5f8 push {r3, r4, r5, r6, r7, lr} lv_style_list_t * dsc = lv_obj_get_style_list(obj, part_sub); 30de: 4c1e ldr r4, [pc, #120] ; (3158 ) { 30e0: 4606 mov r6, r0 30e2: 460d mov r5, r1 30e4: 2700 movs r7, #0 lv_style_list_t * dsc = lv_obj_get_style_list(obj, part_sub); 30e6: b2f9 uxtb r1, r7 30e8: 4628 mov r0, r5 30ea: 47a0 blx r4 if(dsc == NULL) break; 30ec: 4602 mov r2, r0 30ee: b1f8 cbz r0, 3130 for(ci = 0; ci < dsc->style_cnt; ci++) { 30f0: 7901 ldrb r1, [r0, #4] 30f2: f04f 0c00 mov.w ip, #0 30f6: fa5f f38c uxtb.w r3, ip 30fa: 4299 cmp r1, r3 30fc: d915 bls.n 312a */ 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++; 30fe: 7950 ldrb r0, [r2, #5] 3100: f000 0006 and.w r0, r0, #6 3104: 2806 cmp r0, #6 3106: d123 bne.n 3150 3108: 3301 adds r3, #1 310a: b2db uxtb r3, r3 if(list->style_cnt == 0 || id >= list->style_cnt) return NULL; 310c: 4299 cmp r1, r3 310e: d916 bls.n 313e return list->style_list[id]; 3110: 6810 ldr r0, [r2, #0] 3112: f850 3023 ldr.w r3, [r0, r3, lsl #2] if(class == style || style == NULL) { 3116: 429e cmp r6, r3 3118: d003 beq.n 3122 311a: f10c 0c01 add.w ip, ip, #1 311e: 2e00 cmp r6, #0 3120: d1e9 bne.n 30f6 lv_obj_refresh_style(obj, LV_STYLE_PROP_ALL); 3122: 4b0e ldr r3, [pc, #56] ; (315c ) 3124: 21ff movs r1, #255 ; 0xff 3126: 4628 mov r0, r5 3128: 4798 blx r3 for(part_sub = 0; part_sub != _LV_OBJ_PART_REAL_LAST; part_sub++) { 312a: 3701 adds r7, #1 312c: 2f40 cmp r7, #64 ; 0x40 312e: d1da bne.n 30e6 lv_obj_t * child = lv_obj_get_child(obj, NULL); 3130: 4f0b ldr r7, [pc, #44] ; (3160 ) 3132: 2100 movs r1, #0 3134: 4628 mov r0, r5 child = lv_obj_get_child(obj, child); 3136: 47b8 blx r7 3138: 4604 mov r4, r0 while(child) { 313a: b910 cbnz r0, 3142 } 313c: bdf8 pop {r3, r4, r5, r6, r7, pc} if(list->style_cnt == 0 || id >= list->style_cnt) return NULL; 313e: 2300 movs r3, #0 3140: e7e9 b.n 3116 report_style_mod_core(style, child); 3142: 4621 mov r1, r4 3144: 4630 mov r0, r6 3146: f7ff ffc9 bl 30dc child = lv_obj_get_child(obj, child); 314a: 4621 mov r1, r4 314c: 4628 mov r0, r5 314e: e7f2 b.n 3136 3150: 2900 cmp r1, #0 3152: d1dd bne.n 3110 3154: 460b mov r3, r1 3156: e7de b.n 3116 3158: 000026b9 .word 0x000026b9 315c: 00002fbd .word 0x00002fbd 3160: 0000249d .word 0x0000249d 00003164 : { 3164: e92d 4ff8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr} lv_disp_t * d = lv_disp_get_next(NULL); 3168: 4f0f ldr r7, [pc, #60] ; (31a8 ) _LV_LL_READ(d->scr_ll, i) { 316a: f8df 9040 ldr.w r9, [pc, #64] ; 31ac report_style_mod_core(style, i); 316e: f8df a040 ldr.w sl, [pc, #64] ; 31b0 { 3172: 4606 mov r6, r0 lv_disp_t * d = lv_disp_get_next(NULL); 3174: 2000 movs r0, #0 3176: 47b8 blx r7 3178: 4604 mov r4, r0 while(d) { 317a: b90c cbnz r4, 3180 } 317c: e8bd 8ff8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} _LV_LL_READ(d->scr_ll, i) { 3180: f104 0830 add.w r8, r4, #48 ; 0x30 3184: 4640 mov r0, r8 3186: 47c8 blx r9 3188: f8df b028 ldr.w fp, [pc, #40] ; 31b4 318c: 4605 mov r5, r0 318e: b91d cbnz r5, 3198 d = lv_disp_get_next(d); 3190: 4620 mov r0, r4 3192: 47b8 blx r7 3194: 4604 mov r4, r0 3196: e7f0 b.n 317a report_style_mod_core(style, i); 3198: 4629 mov r1, r5 319a: 4630 mov r0, r6 319c: 47d0 blx sl _LV_LL_READ(d->scr_ll, i) { 319e: 4629 mov r1, r5 31a0: 4640 mov r0, r8 31a2: 47d8 blx fp 31a4: 4605 mov r5, r0 31a6: e7f2 b.n 318e 31a8: 0000dbf1 .word 0x0000dbf1 31ac: 0000e8d5 .word 0x0000e8d5 31b0: 000030dd .word 0x000030dd 31b4: 0000e8e1 .word 0x0000e8e1 000031b8 : { 31b8: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} lv_style_list_t * list = lv_obj_get_style_list(tr->obj, tr->part); 31bc: 4b3b ldr r3, [pc, #236] ; (32ac ) { 31be: 4604 mov r4, r0 31c0: 460d mov r5, r1 lv_style_list_t * list = lv_obj_get_style_list(tr->obj, tr->part); 31c2: 7981 ldrb r1, [r0, #6] 31c4: 6800 ldr r0, [r0, #0] 31c6: 4798 blx r3 lv_style_t * style = _lv_style_list_get_transition_style(list); 31c8: 4b39 ldr r3, [pc, #228] ; (32b0 ) 31ca: 4798 blx r3 if((tr->prop & 0xF) < LV_STYLE_ID_COLOR) { /*Value*/ 31cc: 88a1 ldrh r1, [r4, #4] 31ce: f001 030f and.w r3, r1, #15 31d2: 2b08 cmp r3, #8 31d4: d816 bhi.n 3204 if(v == 0) x = tr->start_value._int; 31d6: b94d cbnz r5, 31ec 31d8: f9b4 2008 ldrsh.w r2, [r4, #8] _lv_style_set_int(style, tr->prop, x); 31dc: 4b35 ldr r3, [pc, #212] ; (32b4 ) 31de: 4798 blx r3 lv_obj_refresh_style(tr->obj, tr->prop); 31e0: 88a1 ldrh r1, [r4, #4] 31e2: 6820 ldr r0, [r4, #0] 31e4: 4b34 ldr r3, [pc, #208] ; (32b8 ) } 31e6: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr} lv_obj_refresh_style(tr->obj, tr->prop); 31ea: 4718 bx r3 else if(v == 255) x = tr->end_value._int; 31ec: 2dff cmp r5, #255 ; 0xff 31ee: f9b4 200c ldrsh.w r2, [r4, #12] 31f2: d0f3 beq.n 31dc else x = tr->start_value._int + ((int32_t)((int32_t)(tr->end_value._int - tr->start_value._int) * v) >> 8); 31f4: f9b4 3008 ldrsh.w r3, [r4, #8] 31f8: 1ad2 subs r2, r2, r3 31fa: 436a muls r2, r5 31fc: eb03 2322 add.w r3, r3, r2, asr #8 3200: b21a sxth r2, r3 3202: e7eb b.n 31dc else if((tr->prop & 0xF) < LV_STYLE_ID_OPA) { /*Color*/ 3204: 2b0b cmp r3, #11 3206: d838 bhi.n 327a if(v <= 0) x = tr->start_value._color; 3208: 2d00 cmp r5, #0 320a: dc03 bgt.n 3214 320c: 8922 ldrh r2, [r4, #8] _lv_style_set_color(style, tr->prop, x); 320e: 4b2b ldr r3, [pc, #172] ; (32bc ) 3210: 4798 blx r3 3212: e7e5 b.n 31e0 else if(v >= 255) x = tr->end_value._color; 3214: 2dfe cmp r5, #254 ; 0xfe 3216: dd01 ble.n 321c 3218: 89a2 ldrh r2, [r4, #12] 321a: e7f8 b.n 320e { 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))); 321c: 8923 ldrh r3, [r4, #8] 321e: 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))); 3220: 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))); 3224: 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))); 3228: f3c3 1345 ubfx r3, r3, #5, #6 322c: 437b muls r3, r7 322e: f3c2 1245 ubfx r2, r2, #5, #6 3232: 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))); 3236: 7b23 ldrb r3, [r4, #12] 3238: f00c 0c1f and.w ip, ip, #31 323c: fb07 fc0c mul.w ip, r7, ip 3240: 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))); 3244: 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))); 3248: 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))); 324c: 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))); 324e: 4373 muls r3, r6 3250: 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))); 3254: f894 c009 ldrb.w ip, [r4, #9] 3258: f3c2 52c5 ubfx r2, r2, #23, #6 325c: ea43 1242 orr.w r2, r3, r2, lsl #5 3260: 7b63 ldrb r3, [r4, #13] 3262: ea4f 0cdc mov.w ip, ip, lsr #3 3266: 08db lsrs r3, r3, #3 3268: fb07 f70c mul.w r7, r7, ip 326c: fb15 7303 smlabb r3, r5, r3, r7 3270: 4373 muls r3, r6 3272: 0ddb lsrs r3, r3, #23 3274: ea42 22c3 orr.w r2, r2, r3, lsl #11 3278: e7c9 b.n 320e else if((tr->prop & 0xF) < LV_STYLE_ID_PTR) { /*Opa*/ 327a: 2b0d cmp r3, #13 327c: d80f bhi.n 329e if(v <= 0) x = tr->start_value._opa; 327e: 2d00 cmp r5, #0 3280: dc03 bgt.n 328a 3282: 7a22 ldrb r2, [r4, #8] _lv_style_set_opa(style, tr->prop, x); 3284: 4b0e ldr r3, [pc, #56] ; (32c0 ) 3286: 4798 blx r3 3288: e7aa b.n 31e0 else if(v >= 255) x = tr->end_value._opa; 328a: 2dfe cmp r5, #254 ; 0xfe 328c: 7b22 ldrb r2, [r4, #12] 328e: dcf9 bgt.n 3284 else x = tr->start_value._opa + (((tr->end_value._opa - tr->start_value._opa) * v) >> 8); 3290: 7a23 ldrb r3, [r4, #8] 3292: 1ad2 subs r2, r2, r3 3294: 436a muls r2, r5 3296: eb03 2322 add.w r3, r3, r2, asr #8 329a: b2da uxtb r2, r3 329c: e7f2 b.n 3284 if(v < 128) x = tr->start_value._ptr; 329e: 2d7f cmp r5, #127 ; 0x7f 32a0: bfd4 ite le 32a2: 68a2 ldrle r2, [r4, #8] else x = tr->end_value._ptr; 32a4: 68e2 ldrgt r2, [r4, #12] _lv_style_set_ptr(style, tr->prop, x); 32a6: 4b07 ldr r3, [pc, #28] ; (32c4 ) 32a8: 4798 blx r3 32aa: e799 b.n 31e0 32ac: 000026b9 .word 0x000026b9 32b0: 00005ee5 .word 0x00005ee5 32b4: 00005aa5 .word 0x00005aa5 32b8: 00002fbd .word 0x00002fbd 32bc: 00005b75 .word 0x00005b75 32c0: 00005c45 .word 0x00005c45 32c4: 00005d19 .word 0x00005d19 000032c8 : { 32c8: b573 push {r0, r1, r4, r5, r6, lr} LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 32ca: 4b0b ldr r3, [pc, #44] ; (32f8 ) { 32cc: 4605 mov r5, r0 LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 32ce: 4798 blx r3 32d0: 4604 mov r4, r0 32d2: b968 cbnz r0, 32f0 32d4: 4b09 ldr r3, [pc, #36] ; (32fc ) 32d6: 490a ldr r1, [pc, #40] ; (3300 ) 32d8: 9300 str r3, [sp, #0] 32da: f640 22b1 movw r2, #2737 ; 0xab1 32de: 2003 movs r0, #3 32e0: 4e08 ldr r6, [pc, #32] ; (3304 ) 32e2: 47b0 blx r6 32e4: 4808 ldr r0, [pc, #32] ; (3308 ) 32e6: 4909 ldr r1, [pc, #36] ; (330c ) 32e8: 462a mov r2, r5 32ea: 4623 mov r3, r4 32ec: 4788 blx r1 32ee: e7fe b.n 32ee } 32f0: 2000 movs r0, #0 32f2: b002 add sp, #8 32f4: bd70 pop {r4, r5, r6, pc} 32f6: bf00 nop 32f8: 00001a0d .word 0x00001a0d 32fc: 00026f01 .word 0x00026f01 3300: 000267db .word 0x000267db 3304: 0000eb21 .word 0x0000eb21 3308: 0002683f .word 0x0002683f 330c: 00001a15 .word 0x00001a15 00003310 : { 3310: e92d 47ff stmdb sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, lr} 3314: 460d mov r5, r1 if(parent == NULL) { 3316: 4606 mov r6, r0 3318: 2800 cmp r0, #0 331a: d177 bne.n 340c lv_disp_t * disp = lv_disp_get_default(); 331c: 4b89 ldr r3, [pc, #548] ; (3544 ) 331e: 4798 blx r3 if(!disp) { 3320: 4604 mov r4, r0 3322: b940 cbnz r0, 3336 LV_LOG_WARN("lv_obj_create: not display created to so far. No place to assign the new screen"); 3324: 4b88 ldr r3, [pc, #544] ; (3548 ) 3326: 9300 str r3, [sp, #0] 3328: 4988 ldr r1, [pc, #544] ; (354c ) 332a: 4b89 ldr r3, [pc, #548] ; (3550 ) 332c: 22cf movs r2, #207 ; 0xcf 332e: 2002 movs r0, #2 LV_LOG_INFO("Object create ready"); 3330: 4d88 ldr r5, [pc, #544] ; (3554 ) 3332: 47a8 blx r5 return new_obj; 3334: e016 b.n 3364 new_obj = _lv_ll_ins_head(&disp->scr_ll); 3336: 4b88 ldr r3, [pc, #544] ; (3558 ) 3338: 3030 adds r0, #48 ; 0x30 333a: 4798 blx r3 LV_ASSERT_MEM(new_obj); 333c: 4b87 ldr r3, [pc, #540] ; (355c ) new_obj = _lv_ll_ins_head(&disp->scr_ll); 333e: 4604 mov r4, r0 LV_ASSERT_MEM(new_obj); 3340: 4798 blx r3 3342: 4607 mov r7, r0 3344: b960 cbnz r0, 3360 3346: 4b82 ldr r3, [pc, #520] ; (3550 ) 3348: 4980 ldr r1, [pc, #512] ; (354c ) 334a: 9300 str r3, [sp, #0] 334c: 22d4 movs r2, #212 ; 0xd4 334e: 2003 movs r0, #3 3350: 4d80 ldr r5, [pc, #512] ; (3554 ) 3352: 47a8 blx r5 3354: 4882 ldr r0, [pc, #520] ; (3560 ) 3356: 4983 ldr r1, [pc, #524] ; (3564 ) 3358: 4622 mov r2, r4 335a: 463b mov r3, r7 335c: 4788 blx r1 335e: e7fe b.n 335e if(new_obj == NULL) return NULL; 3360: b924 cbnz r4, 336c 3362: 2400 movs r4, #0 } 3364: 4620 mov r0, r4 3366: b004 add sp, #16 3368: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} _lv_memset_00(new_obj, sizeof(lv_obj_t)); 336c: 214c movs r1, #76 ; 0x4c 336e: 4b7e ldr r3, [pc, #504] ; (3568 ) 3370: 4620 mov r0, r4 3372: 4798 blx r3 new_obj->base_dir = LV_BIDI_DIR_LTR; 3374: f894 3035 ldrb.w r3, [r4, #53] ; 0x35 new_obj->event_cb = NULL; 3378: 61a6 str r6, [r4, #24] new_obj->base_dir = LV_BIDI_DIR_LTR; 337a: f366 1305 bfi r3, r6, #4, #2 337e: f884 3035 strb.w r3, [r4, #53] ; 0x35 new_obj->signal_cb = lv_obj_signal; 3382: 4b7a ldr r3, [pc, #488] ; (356c ) 3384: 61e3 str r3, [r4, #28] new_obj->design_cb = lv_obj_design; 3386: 4b7a ldr r3, [pc, #488] ; (3570 ) 3388: 6223 str r3, [r4, #32] new_obj->coords.x1 = 0; 338a: 6126 str r6, [r4, #16] new_obj->coords.x2 = lv_disp_get_hor_res(NULL) - 1; 338c: 4b79 ldr r3, [pc, #484] ; (3574 ) 338e: 4630 mov r0, r6 3390: 4798 blx r3 3392: 3801 subs r0, #1 3394: 82a0 strh r0, [r4, #20] new_obj->coords.y2 = lv_disp_get_ver_res(NULL) - 1; 3396: 4b78 ldr r3, [pc, #480] ; (3578 ) 3398: 4630 mov r0, r6 339a: 4798 blx r3 339c: 3801 subs r0, #1 339e: 82e0 strh r0, [r4, #22] _lv_ll_init(&(new_obj->child_ll), sizeof(lv_obj_t)); 33a0: 4b76 ldr r3, [pc, #472] ; (357c ) 33a2: 214c movs r1, #76 ; 0x4c 33a4: 1d20 adds r0, r4, #4 33a6: 4798 blx r3 new_obj->realign.align = LV_ALIGN_CENTER; 33a8: f8b4 3048 ldrh.w r3, [r4, #72] ; 0x48 33ac: f423 73ff bic.w r3, r3, #510 ; 0x1fe 33b0: f023 0301 bic.w r3, r3, #1 33b4: f8a4 3048 strh.w r3, [r4, #72] ; 0x48 new_obj->click = 1; 33b8: 8ea3 ldrh r3, [r4, #52] ; 0x34 33ba: f423 637f bic.w r3, r3, #4080 ; 0xff0 33be: f023 030f bic.w r3, r3, #15 33c2: f443 63e0 orr.w r3, r3, #1792 ; 0x700 new_obj->realign.base = NULL; 33c6: 2200 movs r2, #0 new_obj->click = 1; 33c8: f043 0301 orr.w r3, r3, #1 lv_style_list_init(&new_obj->style_list); 33cc: f104 0028 add.w r0, r4, #40 ; 0x28 new_obj->click = 1; 33d0: 86a3 strh r3, [r4, #52] ; 0x34 new_obj->realign.xofs = 0; 33d2: e9c4 2210 strd r2, r2, [r4, #64] ; 0x40 lv_style_list_init(&new_obj->style_list); 33d6: 4b6a ldr r3, [pc, #424] ; (3580 ) new_obj->ext_click_pad_hor = 0; 33d8: 6322 str r2, [r4, #48] ; 0x30 new_obj->group_p = NULL; 33da: 63a2 str r2, [r4, #56] ; 0x38 new_obj->protect = LV_PROTECT_NONE; 33dc: 87a2 strh r2, [r4, #60] ; 0x3c new_obj->ext_attr = NULL; 33de: 6262 str r2, [r4, #36] ; 0x24 lv_style_list_init(&new_obj->style_list); 33e0: 9003 str r0, [sp, #12] 33e2: 4798 blx r3 if(copy == NULL) { 33e4: 9803 ldr r0, [sp, #12] 33e6: 2d00 cmp r5, #0 33e8: f040 80d8 bne.w 359c if(parent != NULL) lv_theme_apply(new_obj, LV_THEME_OBJ); 33ec: 4b65 ldr r3, [pc, #404] ; (3584 ) 33ee: 2e00 cmp r6, #0 33f0: f000 809d beq.w 352e 33f4: 2102 movs r1, #2 33f6: 4620 mov r0, r4 33f8: 4798 blx r3 parent->signal_cb(parent, LV_SIGNAL_CHILD_CHG, new_obj); 33fa: 69f3 ldr r3, [r6, #28] 33fc: 4622 mov r2, r4 33fe: 2101 movs r1, #1 3400: 4630 mov r0, r6 3402: 4798 blx r3 lv_obj_invalidate(new_obj); 3404: 4b60 ldr r3, [pc, #384] ; (3588 ) 3406: 4620 mov r0, r4 3408: 4798 blx r3 340a: e093 b.n 3534 LV_ASSERT_OBJ(parent, LV_OBJX_NAME); 340c: 4f53 ldr r7, [pc, #332] ; (355c ) 340e: 47b8 blx r7 3410: 4604 mov r4, r0 3412: b960 cbnz r0, 342e 3414: 4b4e ldr r3, [pc, #312] ; (3550 ) 3416: 494d ldr r1, [pc, #308] ; (354c ) 3418: 9300 str r3, [sp, #0] 341a: 22ed movs r2, #237 ; 0xed 341c: 2003 movs r0, #3 341e: 4d4d ldr r5, [pc, #308] ; (3554 ) 3420: 47a8 blx r5 3422: 485a ldr r0, [pc, #360] ; (358c ) 3424: 494f ldr r1, [pc, #316] ; (3564 ) 3426: 4632 mov r2, r6 3428: 4623 mov r3, r4 342a: 4788 blx r1 342c: e7fe b.n 342c new_obj = _lv_ll_ins_head(&parent->child_ll); 342e: 4b4a ldr r3, [pc, #296] ; (3558 ) 3430: 1d30 adds r0, r6, #4 3432: 4798 blx r3 3434: 4604 mov r4, r0 LV_ASSERT_MEM(new_obj); 3436: 47b8 blx r7 3438: 4607 mov r7, r0 343a: b960 cbnz r0, 3456 343c: 4b44 ldr r3, [pc, #272] ; (3550 ) 343e: 4943 ldr r1, [pc, #268] ; (354c ) 3440: 9300 str r3, [sp, #0] 3442: 22f0 movs r2, #240 ; 0xf0 3444: 2003 movs r0, #3 3446: 4d43 ldr r5, [pc, #268] ; (3554 ) 3448: 47a8 blx r5 344a: 4845 ldr r0, [pc, #276] ; (3560 ) 344c: 4945 ldr r1, [pc, #276] ; (3564 ) 344e: 4622 mov r2, r4 3450: 463b mov r3, r7 3452: 4788 blx r1 3454: e7fe b.n 3454 if(new_obj == NULL) return NULL; 3456: 2c00 cmp r4, #0 3458: d083 beq.n 3362 _lv_memset_00(new_obj, sizeof(lv_obj_t)); 345a: 4b43 ldr r3, [pc, #268] ; (3568 ) new_obj->coords.y2 = parent->coords.y1 + LV_OBJ_DEF_HEIGHT; 345c: f8df 9138 ldr.w r9, [pc, #312] ; 3598 _lv_memset_00(new_obj, sizeof(lv_obj_t)); 3460: 214c movs r1, #76 ; 0x4c 3462: 4620 mov r0, r4 3464: 4798 blx r3 new_obj->base_dir = LV_BIDI_DIR_LTR; 3466: f894 3035 ldrb.w r3, [r4, #53] ; 0x35 new_obj->parent = parent; 346a: 6026 str r6, [r4, #0] new_obj->base_dir = LV_BIDI_DIR_LTR; 346c: f36f 1305 bfc r3, #4, #2 3470: f884 3035 strb.w r3, [r4, #53] ; 0x35 new_obj->signal_cb = lv_obj_signal; 3474: 4b3d ldr r3, [pc, #244] ; (356c ) 3476: 61e3 str r3, [r4, #28] new_obj->design_cb = lv_obj_design; 3478: 4b3d ldr r3, [pc, #244] ; (3570 ) 347a: 6223 str r3, [r4, #32] new_obj->event_cb = NULL; 347c: f04f 0800 mov.w r8, #0 new_obj->coords.y1 = parent->coords.y1; 3480: f9b6 3012 ldrsh.w r3, [r6, #18] 3484: 8263 strh r3, [r4, #18] new_obj->event_cb = NULL; 3486: f8c4 8018 str.w r8, [r4, #24] new_obj->coords.y2 = parent->coords.y1 + LV_OBJ_DEF_HEIGHT; 348a: 4640 mov r0, r8 348c: 8a77 ldrh r7, [r6, #18] 348e: 47c8 blx r9 3490: f04f 0a32 mov.w sl, #50 ; 0x32 3494: fb00 f00a mul.w r0, r0, sl 3498: 28ef cmp r0, #239 ; 0xef 349a: dd2c ble.n 34f6 349c: 4640 mov r0, r8 349e: 47c8 blx r9 34a0: 2350 movs r3, #80 ; 0x50 34a2: fb00 300a mla r0, r0, sl, r3 34a6: 23a0 movs r3, #160 ; 0xa0 34a8: fb90 f0f3 sdiv r0, r0, r3 34ac: b280 uxth r0, r0 34ae: 4407 add r7, r0 34b0: 82e7 strh r7, [r4, #22] if(lv_obj_get_base_dir(new_obj) == LV_BIDI_DIR_RTL) { 34b2: 4b37 ldr r3, [pc, #220] ; (3590 ) 34b4: 4620 mov r0, r4 34b6: 4798 blx r3 34b8: 2801 cmp r0, #1 34ba: 4607 mov r7, r0 34bc: d11d bne.n 34fa new_obj->coords.x2 = parent->coords.x2; 34be: f9b6 8014 ldrsh.w r8, [r6, #20] 34c2: f8a4 8014 strh.w r8, [r4, #20] new_obj->coords.x1 = parent->coords.x2 - LV_OBJ_DEF_WIDTH; 34c6: 2000 movs r0, #0 34c8: 47c8 blx r9 34ca: f04f 0a64 mov.w sl, #100 ; 0x64 34ce: fb00 f00a mul.w r0, r0, sl 34d2: 28ef cmp r0, #239 ; 0xef 34d4: fa1f f888 uxth.w r8, r8 34d8: dd08 ble.n 34ec 34da: 2000 movs r0, #0 34dc: 47c8 blx r9 34de: 2750 movs r7, #80 ; 0x50 34e0: fb00 770a mla r7, r0, sl, r7 34e4: 23a0 movs r3, #160 ; 0xa0 34e6: fb97 f7f3 sdiv r7, r7, r3 34ea: b2bf uxth r7, r7 34ec: eba8 0807 sub.w r8, r8, r7 34f0: f8a4 8010 strh.w r8, [r4, #16] 34f4: e754 b.n 33a0 new_obj->coords.y2 = parent->coords.y1 + LV_OBJ_DEF_HEIGHT; 34f6: 2001 movs r0, #1 34f8: e7d9 b.n 34ae new_obj->coords.x1 = parent->coords.x1; 34fa: f9b6 7010 ldrsh.w r7, [r6, #16] 34fe: 8227 strh r7, [r4, #16] new_obj->coords.x2 = parent->coords.x1 + LV_OBJ_DEF_WIDTH; 3500: 2000 movs r0, #0 3502: 47c8 blx r9 3504: f04f 0864 mov.w r8, #100 ; 0x64 3508: fb00 f008 mul.w r0, r0, r8 350c: 28ef cmp r0, #239 ; 0xef 350e: b2bf uxth r7, r7 3510: dd0b ble.n 352a 3512: 2000 movs r0, #0 3514: 47c8 blx r9 3516: 2350 movs r3, #80 ; 0x50 3518: fb00 3008 mla r0, r0, r8, r3 351c: 23a0 movs r3, #160 ; 0xa0 351e: fb90 f0f3 sdiv r0, r0, r3 3522: b280 uxth r0, r0 3524: 4407 add r7, r0 3526: 82a7 strh r7, [r4, #20] 3528: e73a b.n 33a0 352a: 2001 movs r0, #1 352c: e7fa b.n 3524 else lv_theme_apply(new_obj, LV_THEME_SCR); 352e: 2101 movs r1, #1 3530: 4620 mov r0, r4 3532: 4798 blx r3 LV_LOG_INFO("Object create ready"); 3534: 4b17 ldr r3, [pc, #92] ; (3594 ) 3536: 9300 str r3, [sp, #0] 3538: 4904 ldr r1, [pc, #16] ; (354c ) 353a: 4b05 ldr r3, [pc, #20] ; (3550 ) 353c: f240 1287 movw r2, #391 ; 0x187 3540: 2001 movs r0, #1 3542: e6f5 b.n 3330 3544: 0000db29 .word 0x0000db29 3548: 00026930 .word 0x00026930 354c: 000267db .word 0x000267db 3550: 00026f15 .word 0x00026f15 3554: 0000eb21 .word 0x0000eb21 3558: 0000e845 .word 0x0000e845 355c: 00001a0d .word 0x00001a0d 3560: 0002673e .word 0x0002673e 3564: 00001a15 .word 0x00001a15 3568: 0000f251 .word 0x0000f251 356c: 00004d59 .word 0x00004d59 3570: 000047c9 .word 0x000047c9 3574: 0000db35 .word 0x0000db35 3578: 0000db59 .word 0x0000db59 357c: 0000e831 .word 0x0000e831 3580: 00005769 .word 0x00005769 3584: 0001051d .word 0x0001051d 3588: 000029b1 .word 0x000029b1 358c: 0002683f .word 0x0002683f 3590: 000032c9 .word 0x000032c9 3594: 00026980 .word 0x00026980 3598: 0000db7d .word 0x0000db7d lv_style_list_copy(&new_obj->style_list, ©->style_list); 359c: 4b54 ldr r3, [pc, #336] ; (36f0 ) 359e: f105 0128 add.w r1, r5, #40 ; 0x28 35a2: 4798 blx r3 lv_area_copy(&new_obj->coords, ©->coords); 35a4: 4b53 ldr r3, [pc, #332] ; (36f4 ) 35a6: f104 0010 add.w r0, r4, #16 35aa: f105 0110 add.w r1, r5, #16 35ae: 4798 blx r3 new_obj->ext_draw_pad = copy->ext_draw_pad; 35b0: f9b5 3032 ldrsh.w r3, [r5, #50] ; 0x32 35b4: 8663 strh r3, [r4, #50] ; 0x32 new_obj->ext_click_pad_hor = copy->ext_click_pad_hor; 35b6: f895 3030 ldrb.w r3, [r5, #48] ; 0x30 35ba: f884 3030 strb.w r3, [r4, #48] ; 0x30 new_obj->ext_click_pad_ver = copy->ext_click_pad_ver; 35be: f895 3031 ldrb.w r3, [r5, #49] ; 0x31 35c2: f884 3031 strb.w r3, [r4, #49] ; 0x31 new_obj->realign.align = copy->realign.align; 35c6: f895 3048 ldrb.w r3, [r5, #72] ; 0x48 35ca: f884 3048 strb.w r3, [r4, #72] ; 0x48 new_obj->realign.xofs = copy->realign.xofs; 35ce: f9b5 3044 ldrsh.w r3, [r5, #68] ; 0x44 35d2: f8a4 3044 strh.w r3, [r4, #68] ; 0x44 new_obj->realign.yofs = copy->realign.yofs; 35d6: f9b5 3046 ldrsh.w r3, [r5, #70] ; 0x46 35da: f8a4 3046 strh.w r3, [r4, #70] ; 0x46 new_obj->realign.base = copy->realign.base; 35de: 6c2b ldr r3, [r5, #64] ; 0x40 new_obj->realign.auto_realign = copy->realign.auto_realign; 35e0: f895 2049 ldrb.w r2, [r5, #73] ; 0x49 new_obj->realign.base = copy->realign.base; 35e4: 6423 str r3, [r4, #64] ; 0x40 new_obj->realign.auto_realign = copy->realign.auto_realign; 35e6: f894 3049 ldrb.w r3, [r4, #73] ; 0x49 35ea: f362 0300 bfi r3, r2, #0, #1 35ee: f884 3049 strb.w r3, [r4, #73] ; 0x49 new_obj->event_cb = copy->event_cb; 35f2: 69ab ldr r3, [r5, #24] 35f4: 61a3 str r3, [r4, #24] new_obj->adv_hittest = copy->adv_hittest; 35f6: f895 3034 ldrb.w r3, [r5, #52] ; 0x34 35fa: f894 2034 ldrb.w r2, [r4, #52] ; 0x34 35fe: 09db lsrs r3, r3, #7 3600: f363 12c7 bfi r2, r3, #7, #1 3604: f884 2034 strb.w r2, [r4, #52] ; 0x34 new_obj->click = copy->click; 3608: f895 2034 ldrb.w r2, [r5, #52] ; 0x34 360c: f894 3034 ldrb.w r3, [r4, #52] ; 0x34 3610: f362 0300 bfi r3, r2, #0, #1 3614: f884 3034 strb.w r3, [r4, #52] ; 0x34 new_obj->drag = copy->drag; 3618: f895 3034 ldrb.w r3, [r5, #52] ; 0x34 361c: f894 2034 ldrb.w r2, [r4, #52] ; 0x34 3620: f3c3 0340 ubfx r3, r3, #1, #1 3624: f363 0241 bfi r2, r3, #1, #1 3628: f884 2034 strb.w r2, [r4, #52] ; 0x34 new_obj->drag_dir = copy->drag_dir; 362c: f895 3035 ldrb.w r3, [r5, #53] ; 0x35 3630: f894 2035 ldrb.w r2, [r4, #53] ; 0x35 3634: f3c3 0342 ubfx r3, r3, #1, #3 3638: f363 0243 bfi r2, r3, #1, #3 363c: f884 2035 strb.w r2, [r4, #53] ; 0x35 new_obj->drag_throw = copy->drag_throw; 3640: f895 3034 ldrb.w r3, [r5, #52] ; 0x34 3644: f894 2034 ldrb.w r2, [r4, #52] ; 0x34 3648: f3c3 0380 ubfx r3, r3, #2, #1 364c: f363 0282 bfi r2, r3, #2, #1 3650: f884 2034 strb.w r2, [r4, #52] ; 0x34 new_obj->drag_parent = copy->drag_parent; 3654: f895 3034 ldrb.w r3, [r5, #52] ; 0x34 3658: b2d2 uxtb r2, r2 365a: f3c3 03c0 ubfx r3, r3, #3, #1 365e: f363 02c3 bfi r2, r3, #3, #1 3662: f884 2034 strb.w r2, [r4, #52] ; 0x34 new_obj->hidden = copy->hidden; 3666: f895 3034 ldrb.w r3, [r5, #52] ; 0x34 366a: b2d2 uxtb r2, r2 366c: f3c3 1300 ubfx r3, r3, #4, #1 3670: f363 1204 bfi r2, r3, #4, #1 3674: f884 2034 strb.w r2, [r4, #52] ; 0x34 new_obj->top = copy->top; 3678: f895 3034 ldrb.w r3, [r5, #52] ; 0x34 367c: b2d2 uxtb r2, r2 367e: f3c3 1340 ubfx r3, r3, #5, #1 3682: f363 1245 bfi r2, r3, #5, #1 3686: f884 2034 strb.w r2, [r4, #52] ; 0x34 new_obj->parent_event = copy->parent_event; 368a: f895 3034 ldrb.w r3, [r5, #52] ; 0x34 368e: b2d2 uxtb r2, r2 3690: f3c3 1380 ubfx r3, r3, #6, #1 3694: f363 1286 bfi r2, r3, #6, #1 3698: f884 2034 strb.w r2, [r4, #52] ; 0x34 new_obj->protect = copy->protect; 369c: f895 303c ldrb.w r3, [r5, #60] ; 0x3c 36a0: f884 303c strb.w r3, [r4, #60] ; 0x3c new_obj->gesture_parent = copy->gesture_parent; 36a4: f895 2035 ldrb.w r2, [r5, #53] ; 0x35 36a8: f894 3035 ldrb.w r3, [r4, #53] ; 0x35 36ac: f362 0300 bfi r3, r2, #0, #1 36b0: f884 3035 strb.w r3, [r4, #53] ; 0x35 if(copy->group_p != NULL) { 36b4: 6ba8 ldr r0, [r5, #56] ; 0x38 36b6: b110 cbz r0, 36be lv_group_add_obj(copy->group_p, new_obj); 36b8: 4b0f ldr r3, [pc, #60] ; (36f8 ) 36ba: 4621 mov r1, r4 36bc: 4798 blx r3 if(lv_obj_get_parent(copy) != NULL && parent != NULL) { 36be: 4b0f ldr r3, [pc, #60] ; (36fc ) 36c0: 4628 mov r0, r5 36c2: 4798 blx r3 36c4: b178 cbz r0, 36e6 36c6: 2e00 cmp r6, #0 36c8: f43f af34 beq.w 3534 lv_obj_set_pos(new_obj, lv_obj_get_x(copy), lv_obj_get_y(copy)); 36cc: 4b0c ldr r3, [pc, #48] ; (3700 ) 36ce: 4628 mov r0, r5 36d0: 4798 blx r3 36d2: 4b0c ldr r3, [pc, #48] ; (3704 ) 36d4: 9003 str r0, [sp, #12] 36d6: 4628 mov r0, r5 36d8: 4798 blx r3 36da: 9903 ldr r1, [sp, #12] 36dc: 4b0a ldr r3, [pc, #40] ; (3708 ) 36de: 4602 mov r2, r0 36e0: 4620 mov r0, r4 36e2: 4798 blx r3 if(parent != NULL) { 36e4: e689 b.n 33fa 36e6: 2e00 cmp r6, #0 36e8: f47f ae87 bne.w 33fa 36ec: e722 b.n 3534 36ee: bf00 nop 36f0: 00005f59 .word 0x00005f59 36f4: 00001f45 .word 0x00001f45 36f8: 00001cc9 .word 0x00001cc9 36fc: 00002351 .word 0x00002351 3700: 00002559 .word 0x00002559 3704: 000025b9 .word 0x000025b9 3708: 00002acd .word 0x00002acd 0000370c : { 370c: e92d 41ff stmdb sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, lr} LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 3710: 4b33 ldr r3, [pc, #204] ; (37e0 ) { 3712: 4604 mov r4, r0 3714: 460d mov r5, r1 3716: 4617 mov r7, r2 LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 3718: 4798 blx r3 371a: 4606 mov r6, r0 371c: b968 cbnz r0, 373a 371e: 4b31 ldr r3, [pc, #196] ; (37e4 ) 3720: 4931 ldr r1, [pc, #196] ; (37e8 ) 3722: 9300 str r3, [sp, #0] 3724: f240 22e5 movw r2, #741 ; 0x2e5 3728: 2003 movs r0, #3 372a: 4d30 ldr r5, [pc, #192] ; (37ec ) 372c: 47a8 blx r5 372e: 4830 ldr r0, [pc, #192] ; (37f0 ) 3730: 4930 ldr r1, [pc, #192] ; (37f4 ) 3732: 4622 mov r2, r4 3734: 4633 mov r3, r6 3736: 4788 blx r1 3738: e7fe b.n 3738 if(lv_obj_get_width(obj) == w && lv_obj_get_height(obj) == h) { 373a: 4b2f ldr r3, [pc, #188] ; (37f8 ) 373c: 4620 mov r0, r4 373e: 4798 blx r3 3740: 4285 cmp r5, r0 3742: d104 bne.n 374e 3744: 4b2d ldr r3, [pc, #180] ; (37fc ) 3746: 4620 mov r0, r4 3748: 4798 blx r3 374a: 4287 cmp r7, r0 374c: d03a beq.n 37c4 lv_obj_invalidate(obj); 374e: 4620 mov r0, r4 3750: 4e2b ldr r6, [pc, #172] ; (3800 ) 3752: 47b0 blx r6 lv_obj_get_coords(obj, &ori); 3754: a902 add r1, sp, #8 3756: 4b2b ldr r3, [pc, #172] ; (3804 ) 3758: 4620 mov r0, r4 375a: 4798 blx r3 obj->coords.y2 = obj->coords.y1 + h - 1; 375c: 8a63 ldrh r3, [r4, #18] 375e: 3f01 subs r7, #1 3760: 441f add r7, r3 3762: 82e7 strh r7, [r4, #22] if(lv_obj_get_base_dir(obj) == LV_BIDI_DIR_RTL) { 3764: 4b28 ldr r3, [pc, #160] ; (3808 ) 3766: 4620 mov r0, r4 3768: 4798 blx r3 376a: 2801 cmp r0, #1 obj->coords.x1 = obj->coords.x2 - w + 1; 376c: b2ad uxth r5, r5 376e: bf0b itete eq 3770: 8aa3 ldrheq r3, [r4, #20] obj->coords.x2 = obj->coords.x1 + w - 1; 3772: 8a23 ldrhne r3, [r4, #16] obj->coords.x1 = obj->coords.x2 - w + 1; 3774: f1c5 0501 rsbeq r5, r5, #1 obj->coords.x2 = obj->coords.x1 + w - 1; 3778: f105 35ff addne.w r5, r5, #4294967295 ; 0xffffffff obj->coords.x1 = obj->coords.x2 - w + 1; 377c: bf0a itet eq 377e: 18ed addeq r5, r5, r3 obj->coords.x2 = obj->coords.x1 + w - 1; 3780: 18ed addne r5, r5, r3 obj->coords.x1 = obj->coords.x2 - w + 1; 3782: 8225 strheq r5, [r4, #16] obj->signal_cb(obj, LV_SIGNAL_COORD_CHG, &ori); 3784: 69e3 ldr r3, [r4, #28] obj->coords.x2 = obj->coords.x1 + w - 1; 3786: bf18 it ne 3788: 82a5 strhne r5, [r4, #20] obj->signal_cb(obj, LV_SIGNAL_COORD_CHG, &ori); 378a: aa02 add r2, sp, #8 378c: 2102 movs r1, #2 378e: 4620 mov r0, r4 3790: 4798 blx r3 lv_obj_t * par = lv_obj_get_parent(obj); 3792: 4b1e ldr r3, [pc, #120] ; (380c ) 3794: 4620 mov r0, r4 3796: 4798 blx r3 if(par != NULL) par->signal_cb(par, LV_SIGNAL_CHILD_CHG, obj); 3798: b118 cbz r0, 37a2 379a: 69c3 ldr r3, [r0, #28] 379c: 4622 mov r2, r4 379e: 2101 movs r1, #1 37a0: 4798 blx r3 _LV_LL_READ(obj->child_ll, i) { 37a2: 1d27 adds r7, r4, #4 37a4: 4b1a ldr r3, [pc, #104] ; (3810 ) 37a6: f8df 8070 ldr.w r8, [pc, #112] ; 3818 37aa: 4638 mov r0, r7 37ac: 4798 blx r3 37ae: 4605 mov r5, r0 37b0: b95d cbnz r5, 37ca lv_obj_invalidate(obj); 37b2: 4620 mov r0, r4 37b4: 47b0 blx r6 if(obj->realign.auto_realign) lv_obj_realign(obj); 37b6: f894 3049 ldrb.w r3, [r4, #73] ; 0x49 37ba: 07db lsls r3, r3, #31 37bc: d502 bpl.n 37c4 37be: 4b15 ldr r3, [pc, #84] ; (3814 ) 37c0: 4620 mov r0, r4 37c2: 4798 blx r3 } 37c4: b004 add sp, #16 37c6: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} i->signal_cb(i, LV_SIGNAL_PARENT_SIZE_CHG, &ori); 37ca: 69eb ldr r3, [r5, #28] 37cc: aa02 add r2, sp, #8 37ce: 2103 movs r1, #3 37d0: 4628 mov r0, r5 37d2: 4798 blx r3 _LV_LL_READ(obj->child_ll, i) { 37d4: 4629 mov r1, r5 37d6: 4638 mov r0, r7 37d8: 47c0 blx r8 37da: 4605 mov r5, r0 37dc: e7e8 b.n 37b0 37de: bf00 nop 37e0: 00001a0d .word 0x00001a0d 37e4: 00026f35 .word 0x00026f35 37e8: 000267db .word 0x000267db 37ec: 0000eb21 .word 0x0000eb21 37f0: 0002683f .word 0x0002683f 37f4: 00001a15 .word 0x00001a15 37f8: 00002619 .word 0x00002619 37fc: 00002669 .word 0x00002669 3800: 000029b1 .word 0x000029b1 3804: 00002501 .word 0x00002501 3808: 000032c9 .word 0x000032c9 380c: 00002351 .word 0x00002351 3810: 0000e8d5 .word 0x0000e8d5 3814: 00002f15 .word 0x00002f15 3818: 0000e8e1 .word 0x0000e8e1 0000381c : { 381c: b573 push {r0, r1, r4, r5, r6, lr} LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 381e: 4b0f ldr r3, [pc, #60] ; (385c ) { 3820: 4604 mov r4, r0 3822: 460e mov r6, r1 LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 3824: 4798 blx r3 3826: 4605 mov r5, r0 3828: b968 cbnz r0, 3846 382a: 4b0d ldr r3, [pc, #52] ; (3860 ) 382c: 490d ldr r1, [pc, #52] ; (3864 ) 382e: 9300 str r3, [sp, #0] 3830: f240 3227 movw r2, #807 ; 0x327 3834: 2003 movs r0, #3 3836: 4e0c ldr r6, [pc, #48] ; (3868 ) 3838: 47b0 blx r6 383a: 480c ldr r0, [pc, #48] ; (386c ) 383c: 490c ldr r1, [pc, #48] ; (3870 ) 383e: 4622 mov r2, r4 3840: 462b mov r3, r5 3842: 4788 blx r1 3844: e7fe b.n 3844 lv_obj_set_size(obj, lv_obj_get_width(obj), h); 3846: 4b0b ldr r3, [pc, #44] ; (3874 ) 3848: 4620 mov r0, r4 384a: 4798 blx r3 384c: 4b0a ldr r3, [pc, #40] ; (3878 ) 384e: 4601 mov r1, r0 3850: 4632 mov r2, r6 3852: 4620 mov r0, r4 } 3854: b002 add sp, #8 3856: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr} lv_obj_set_size(obj, lv_obj_get_width(obj), h); 385a: 4718 bx r3 385c: 00001a0d .word 0x00001a0d 3860: 00026f56 .word 0x00026f56 3864: 000267db .word 0x000267db 3868: 0000eb21 .word 0x0000eb21 386c: 0002683f .word 0x0002683f 3870: 00001a15 .word 0x00001a15 3874: 00002619 .word 0x00002619 3878: 0000370d .word 0x0000370d 0000387c : { 387c: b573 push {r0, r1, r4, r5, r6, lr} LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 387e: 4b0e ldr r3, [pc, #56] ; (38b8 ) { 3880: 4604 mov r4, r0 3882: 460e mov r6, r1 LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 3884: 4798 blx r3 3886: 4605 mov r5, r0 3888: b968 cbnz r0, 38a6 388a: 4b0c ldr r3, [pc, #48] ; (38bc ) 388c: 490c ldr r1, [pc, #48] ; (38c0 ) 388e: 9300 str r3, [sp, #0] 3890: f640 22d7 movw r2, #2775 ; 0xad7 3894: 2003 movs r0, #3 3896: 4e0b ldr r6, [pc, #44] ; (38c4 ) 3898: 47b0 blx r6 389a: 480b ldr r0, [pc, #44] ; (38c8 ) 389c: 490b ldr r1, [pc, #44] ; (38cc ) 389e: 4622 mov r2, r4 38a0: 462b mov r3, r5 38a2: 4788 blx r1 38a4: e7fe b.n 38a4 return (obj->protect & prot) == 0 ? false : true; 38a6: f894 303c ldrb.w r3, [r4, #60] ; 0x3c 38aa: 421e tst r6, r3 } 38ac: bf14 ite ne 38ae: 2001 movne r0, #1 38b0: 2000 moveq r0, #0 38b2: b002 add sp, #8 38b4: bd70 pop {r4, r5, r6, pc} 38b6: bf00 nop 38b8: 00001a0d .word 0x00001a0d 38bc: 00026f7b .word 0x00026f7b 38c0: 000267db .word 0x000267db 38c4: 0000eb21 .word 0x0000eb21 38c8: 0002683f .word 0x0002683f 38cc: 00001a15 .word 0x00001a15 000038d0 : { 38d0: b57f push {r0, r1, r2, r3, r4, r5, r6, lr} LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 38d2: 4b13 ldr r3, [pc, #76] ; (3920 ) { 38d4: 4604 mov r4, r0 38d6: 460d mov r5, r1 LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 38d8: 4798 blx r3 38da: 4606 mov r6, r0 38dc: b968 cbnz r0, 38fa 38de: 4b11 ldr r3, [pc, #68] ; (3924 ) 38e0: 4911 ldr r1, [pc, #68] ; (3928 ) 38e2: 9300 str r3, [sp, #0] 38e4: f640 22de movw r2, #2782 ; 0xade 38e8: 2003 movs r0, #3 38ea: 4d10 ldr r5, [pc, #64] ; (392c ) 38ec: 47a8 blx r5 38ee: 4810 ldr r0, [pc, #64] ; (3930 ) 38f0: 4910 ldr r1, [pc, #64] ; (3934 ) 38f2: 4622 mov r2, r4 38f4: 4633 mov r3, r6 38f6: 4788 blx r1 38f8: e7fe b.n 38f8 if(part < _LV_OBJ_PART_REAL_LAST) return ((lv_obj_t *)obj)->state; 38fa: 2d3f cmp r5, #63 ; 0x3f 38fc: d803 bhi.n 3906 38fe: f894 003d ldrb.w r0, [r4, #61] ; 0x3d } 3902: b004 add sp, #16 3904: bd70 pop {r4, r5, r6, pc} info.result = LV_STATE_DEFAULT; 3906: 2300 movs r3, #0 3908: f88d 300d strb.w r3, [sp, #13] lv_signal_send((lv_obj_t *)obj, LV_SIGNAL_GET_STATE_DSC, &info); 390c: aa03 add r2, sp, #12 390e: 4b0a ldr r3, [pc, #40] ; (3938 ) info.part = part; 3910: f88d 500c strb.w r5, [sp, #12] lv_signal_send((lv_obj_t *)obj, LV_SIGNAL_GET_STATE_DSC, &info); 3914: 2109 movs r1, #9 3916: 4620 mov r0, r4 3918: 4798 blx r3 return info.result; 391a: f89d 000d ldrb.w r0, [sp, #13] 391e: e7f0 b.n 3902 3920: 00001a0d .word 0x00001a0d 3924: 00026f8f .word 0x00026f8f 3928: 000267db .word 0x000267db 392c: 0000eb21 .word 0x0000eb21 3930: 0002683f .word 0x0002683f 3934: 00001a15 .word 0x00001a15 3938: 00002251 .word 0x00002251 0000393c <_lv_obj_get_style_int>: { 393c: 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); 3940: f8df a094 ldr.w sl, [pc, #148] ; 39d8 <_lv_obj_get_style_int+0x9c> res = _lv_style_list_get_int(dsc, prop, &value_act); 3944: f8df b094 ldr.w fp, [pc, #148] ; 39dc <_lv_obj_get_style_int+0xa0> { 3948: 4605 mov r5, r0 394a: 460e mov r6, r1 394c: 4617 mov r7, r2 attr.full = prop_ori >> 8; 394e: ea4f 2812 mov.w r8, r2, lsr #8 while(parent) { 3952: 4614 mov r4, r2 3954: b965 cbnz r5, 3970 <_lv_obj_get_style_int+0x34> prop = prop & (~LV_STYLE_STATE_MASK); 3956: f424 44fe bic.w r4, r4, #32512 ; 0x7f00 switch(prop) { 395a: 2c22 cmp r4, #34 ; 0x22 prop = prop & (~LV_STYLE_STATE_MASK); 395c: b2a0 uxth r0, r4 switch(prop) { 395e: d030 beq.n 39c2 <_lv_obj_get_style_int+0x86> 3960: d827 bhi.n 39b2 <_lv_obj_get_style_int+0x76> 3962: 2803 cmp r0, #3 3964: d02f beq.n 39c6 <_lv_obj_get_style_int+0x8a> 3966: 1fc2 subs r2, r0, #7 3968: 4250 negs r0, r2 396a: 4150 adcs r0, r2 396c: 0200 lsls r0, r0, #8 396e: e013 b.n 3998 <_lv_obj_get_style_int+0x5c> lv_style_list_t * dsc = lv_obj_get_style_list(parent, part); 3970: 4b17 ldr r3, [pc, #92] ; (39d0 <_lv_obj_get_style_int+0x94>) 3972: 4631 mov r1, r6 3974: 4628 mov r0, r5 3976: 4798 blx r3 lv_state_t state = lv_obj_get_state(parent, part); 3978: 4631 mov r1, r6 lv_style_list_t * dsc = lv_obj_get_style_list(parent, part); 397a: 4681 mov r9, r0 lv_state_t state = lv_obj_get_state(parent, part); 397c: 4628 mov r0, r5 397e: 47d0 blx sl prop = (uint16_t)prop_ori + ((uint16_t)state << LV_STYLE_STATE_POS); 3980: eb07 2000 add.w r0, r7, r0, lsl #8 3984: b284 uxth r4, r0 res = _lv_style_list_get_int(dsc, prop, &value_act); 3986: f10d 0206 add.w r2, sp, #6 398a: 4621 mov r1, r4 398c: 4648 mov r0, r9 398e: 47d8 blx fp if(res == LV_RES_OK) return value_act; 3990: 2801 cmp r0, #1 3992: d104 bne.n 399e <_lv_obj_get_style_int+0x62> 3994: f9bd 0006 ldrsh.w r0, [sp, #6] } 3998: b003 add sp, #12 399a: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} if(attr.bits.inherit == 0) break; 399e: f018 0f80 tst.w r8, #128 ; 0x80 39a2: d0d8 beq.n 3956 <_lv_obj_get_style_int+0x1a> if(part != LV_OBJ_PART_MAIN) { 39a4: b91e cbnz r6, 39ae <_lv_obj_get_style_int+0x72> parent = lv_obj_get_parent(parent); 39a6: 4628 mov r0, r5 39a8: 4b0a ldr r3, [pc, #40] ; (39d4 <_lv_obj_get_style_int+0x98>) 39aa: 4798 blx r3 39ac: 4605 mov r5, r0 { 39ae: 2600 movs r6, #0 39b0: e7d0 b.n 3954 <_lv_obj_get_style_int+0x18> switch(prop) { 39b2: 2831 cmp r0, #49 ; 0x31 39b4: d009 beq.n 39ca <_lv_obj_get_style_int+0x8e> 39b6: f1a0 03c0 sub.w r3, r0, #192 ; 0xc0 39ba: 4258 negs r0, r3 39bc: 4158 adcs r0, r3 39be: 0100 lsls r0, r0, #4 39c0: e7ea b.n 3998 <_lv_obj_get_style_int+0x5c> return 255; 39c2: 20ff movs r0, #255 ; 0xff 39c4: e7e8 b.n 3998 <_lv_obj_get_style_int+0x5c> switch(prop) { 39c6: 2006 movs r0, #6 39c8: e7e6 b.n 3998 <_lv_obj_get_style_int+0x5c> return LV_BORDER_SIDE_FULL; 39ca: 200f movs r0, #15 39cc: e7e4 b.n 3998 <_lv_obj_get_style_int+0x5c> 39ce: bf00 nop 39d0: 000026b9 .word 0x000026b9 39d4: 00002351 .word 0x00002351 39d8: 000038d1 .word 0x000038d1 39dc: 000060b9 .word 0x000060b9 000039e0 <_lv_obj_get_style_color>: { 39e0: 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); 39e4: f8df a074 ldr.w sl, [pc, #116] ; 3a5c <_lv_obj_get_style_color+0x7c> res = _lv_style_list_get_color(dsc, prop, &value_act); 39e8: f8df b074 ldr.w fp, [pc, #116] ; 3a60 <_lv_obj_get_style_color+0x80> { 39ec: 4605 mov r5, r0 39ee: 460e mov r6, r1 39f0: 4617 mov r7, r2 attr.full = prop_ori >> 8; 39f2: ea4f 2812 mov.w r8, r2, lsr #8 while(parent) { 39f6: 4614 mov r4, r2 39f8: b94d cbnz r5, 3a0e <_lv_obj_get_style_color+0x2e> prop = prop & (~LV_STYLE_STATE_MASK); 39fa: f424 44fe bic.w r4, r4, #32512 ; 0x7f00 switch(prop) { 39fe: 3c29 subs r4, #41 ; 0x29 3a00: 2c01 cmp r4, #1 return LV_COLOR_WHITE; 3a02: bf96 itet ls 3a04: 4b12 ldrls r3, [pc, #72] ; (3a50 <_lv_obj_get_style_color+0x70>) return LV_COLOR_BLACK; 3a06: 2000 movhi r0, #0 return LV_COLOR_WHITE; 3a08: f8b3 0602 ldrhls.w r0, [r3, #1538] ; 0x602 return LV_COLOR_BLACK; 3a0c: e012 b.n 3a34 <_lv_obj_get_style_color+0x54> lv_style_list_t * dsc = lv_obj_get_style_list(parent, part); 3a0e: 4b11 ldr r3, [pc, #68] ; (3a54 <_lv_obj_get_style_color+0x74>) 3a10: 4631 mov r1, r6 3a12: 4628 mov r0, r5 3a14: 4798 blx r3 lv_state_t state = lv_obj_get_state(parent, part); 3a16: 4631 mov r1, r6 lv_style_list_t * dsc = lv_obj_get_style_list(parent, part); 3a18: 4681 mov r9, r0 lv_state_t state = lv_obj_get_state(parent, part); 3a1a: 4628 mov r0, r5 3a1c: 47d0 blx sl prop = (uint16_t)prop_ori + ((uint16_t)state << LV_STYLE_STATE_POS); 3a1e: eb07 2000 add.w r0, r7, r0, lsl #8 3a22: b284 uxth r4, r0 res = _lv_style_list_get_color(dsc, prop, &value_act); 3a24: aa01 add r2, sp, #4 3a26: 4621 mov r1, r4 3a28: 4648 mov r0, r9 3a2a: 47d8 blx fp if(res == LV_RES_OK) return value_act; 3a2c: 2801 cmp r0, #1 3a2e: d104 bne.n 3a3a <_lv_obj_get_style_color+0x5a> 3a30: f8bd 0004 ldrh.w r0, [sp, #4] } 3a34: b003 add sp, #12 3a36: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} if(attr.bits.inherit == 0) break; 3a3a: f018 0f80 tst.w r8, #128 ; 0x80 3a3e: d0dc beq.n 39fa <_lv_obj_get_style_color+0x1a> if(part != LV_OBJ_PART_MAIN) { 3a40: b91e cbnz r6, 3a4a <_lv_obj_get_style_color+0x6a> parent = lv_obj_get_parent(parent); 3a42: 4628 mov r0, r5 3a44: 4b04 ldr r3, [pc, #16] ; (3a58 <_lv_obj_get_style_color+0x78>) 3a46: 4798 blx r3 3a48: 4605 mov r5, r0 { 3a4a: 2600 movs r6, #0 3a4c: e7d4 b.n 39f8 <_lv_obj_get_style_color+0x18> 3a4e: bf00 nop 3a50: 000269e2 .word 0x000269e2 3a54: 000026b9 .word 0x000026b9 3a58: 00002351 .word 0x00002351 3a5c: 000038d1 .word 0x000038d1 3a60: 00006141 .word 0x00006141 00003a64 <_lv_obj_get_style_opa>: { 3a64: 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); 3a68: f8df a080 ldr.w sl, [pc, #128] ; 3aec <_lv_obj_get_style_opa+0x88> res = _lv_style_list_get_opa(dsc, prop, &value_act); 3a6c: f8df b080 ldr.w fp, [pc, #128] ; 3af0 <_lv_obj_get_style_opa+0x8c> { 3a70: 4605 mov r5, r0 3a72: 460e mov r6, r1 3a74: 4617 mov r7, r2 attr.full = prop_ori >> 8; 3a76: ea4f 2812 mov.w r8, r2, lsr #8 while(parent) { 3a7a: 4614 mov r4, r2 3a7c: b975 cbnz r5, 3a9c <_lv_obj_get_style_opa+0x38> prop = prop & (~LV_STYLE_STATE_MASK); 3a7e: f424 44fe bic.w r4, r4, #32512 ; 0x7f00 switch(prop) { 3a82: 2c6d cmp r4, #109 ; 0x6d prop = prop & (~LV_STYLE_STATE_MASK); 3a84: b2a0 uxth r0, r4 switch(prop) { 3a86: d02a beq.n 3ade <_lv_obj_get_style_opa+0x7a> 3a88: f248 03ad movw r3, #32941 ; 0x80ad 3a8c: 4298 cmp r0, r3 3a8e: d026 beq.n 3ade <_lv_obj_get_style_opa+0x7a> 3a90: 382c subs r0, #44 ; 0x2c 3a92: bf18 it ne 3a94: f04f 30ff movne.w r0, #4294967295 ; 0xffffffff 3a98: b2c0 uxtb r0, r0 3a9a: e013 b.n 3ac4 <_lv_obj_get_style_opa+0x60> lv_style_list_t * dsc = lv_obj_get_style_list(parent, part); 3a9c: 4b11 ldr r3, [pc, #68] ; (3ae4 <_lv_obj_get_style_opa+0x80>) 3a9e: 4631 mov r1, r6 3aa0: 4628 mov r0, r5 3aa2: 4798 blx r3 lv_state_t state = lv_obj_get_state(parent, part); 3aa4: 4631 mov r1, r6 lv_style_list_t * dsc = lv_obj_get_style_list(parent, part); 3aa6: 4681 mov r9, r0 lv_state_t state = lv_obj_get_state(parent, part); 3aa8: 4628 mov r0, r5 3aaa: 47d0 blx sl prop = (uint16_t)prop_ori + ((uint16_t)state << LV_STYLE_STATE_POS); 3aac: eb07 2000 add.w r0, r7, r0, lsl #8 3ab0: b284 uxth r4, r0 res = _lv_style_list_get_opa(dsc, prop, &value_act); 3ab2: f10d 0207 add.w r2, sp, #7 3ab6: 4621 mov r1, r4 3ab8: 4648 mov r0, r9 3aba: 47d8 blx fp if(res == LV_RES_OK) return value_act; 3abc: 2801 cmp r0, #1 3abe: d104 bne.n 3aca <_lv_obj_get_style_opa+0x66> 3ac0: f89d 0007 ldrb.w r0, [sp, #7] } 3ac4: b003 add sp, #12 3ac6: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} if(attr.bits.inherit == 0) break; 3aca: f018 0f80 tst.w r8, #128 ; 0x80 3ace: d0d6 beq.n 3a7e <_lv_obj_get_style_opa+0x1a> if(part != LV_OBJ_PART_MAIN) { 3ad0: b91e cbnz r6, 3ada <_lv_obj_get_style_opa+0x76> parent = lv_obj_get_parent(parent); 3ad2: 4628 mov r0, r5 3ad4: 4b04 ldr r3, [pc, #16] ; (3ae8 <_lv_obj_get_style_opa+0x84>) 3ad6: 4798 blx r3 3ad8: 4605 mov r5, r0 { 3ada: 2600 movs r6, #0 3adc: e7ce b.n 3a7c <_lv_obj_get_style_opa+0x18> return LV_OPA_TRANSP; 3ade: 2000 movs r0, #0 3ae0: e7f0 b.n 3ac4 <_lv_obj_get_style_opa+0x60> 3ae2: bf00 nop 3ae4: 000026b9 .word 0x000026b9 3ae8: 00002351 .word 0x00002351 3aec: 000038d1 .word 0x000038d1 3af0: 000061c9 .word 0x000061c9 00003af4 <_lv_obj_get_style_ptr>: { 3af4: 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); 3af8: f8df a084 ldr.w sl, [pc, #132] ; 3b80 <_lv_obj_get_style_ptr+0x8c> res = _lv_style_list_get_ptr(dsc, prop, &value_act); 3afc: f8df b084 ldr.w fp, [pc, #132] ; 3b84 <_lv_obj_get_style_ptr+0x90> { 3b00: 4605 mov r5, r0 3b02: 460e mov r6, r1 3b04: 4617 mov r7, r2 attr.full = prop_ori >> 8; 3b06: ea4f 2812 mov.w r8, r2, lsr #8 while(parent) { 3b0a: 4614 mov r4, r2 3b0c: b96d cbnz r5, 3b2a <_lv_obj_get_style_ptr+0x36> prop = prop & (~LV_STYLE_STATE_MASK); 3b0e: f424 44fe bic.w r4, r4, #32512 ; 0x7f00 switch(prop) { 3b12: 2cbe cmp r4, #190 ; 0xbe prop = prop & (~LV_STYLE_STATE_MASK); 3b14: b2a3 uxth r3, r4 switch(prop) { 3b16: d027 beq.n 3b68 <_lv_obj_get_style_ptr+0x74> 3b18: f248 028e movw r2, #32910 ; 0x808e 3b1c: 4293 cmp r3, r2 3b1e: d001 beq.n 3b24 <_lv_obj_get_style_ptr+0x30> 3b20: 2b7e cmp r3, #126 ; 0x7e 3b22: d123 bne.n 3b6c <_lv_obj_get_style_ptr+0x78> return lv_theme_get_font_normal(); 3b24: 4b12 ldr r3, [pc, #72] ; (3b70 <_lv_obj_get_style_ptr+0x7c>) 3b26: 4798 blx r3 3b28: e011 b.n 3b4e <_lv_obj_get_style_ptr+0x5a> lv_style_list_t * dsc = lv_obj_get_style_list(parent, part); 3b2a: 4b12 ldr r3, [pc, #72] ; (3b74 <_lv_obj_get_style_ptr+0x80>) 3b2c: 4631 mov r1, r6 3b2e: 4628 mov r0, r5 3b30: 4798 blx r3 lv_state_t state = lv_obj_get_state(parent, part); 3b32: 4631 mov r1, r6 lv_style_list_t * dsc = lv_obj_get_style_list(parent, part); 3b34: 4681 mov r9, r0 lv_state_t state = lv_obj_get_state(parent, part); 3b36: 4628 mov r0, r5 3b38: 47d0 blx sl prop = (uint16_t)prop_ori + ((uint16_t)state << LV_STYLE_STATE_POS); 3b3a: eb07 2000 add.w r0, r7, r0, lsl #8 3b3e: b284 uxth r4, r0 res = _lv_style_list_get_ptr(dsc, prop, &value_act); 3b40: aa01 add r2, sp, #4 3b42: 4621 mov r1, r4 3b44: 4648 mov r0, r9 3b46: 47d8 blx fp if(res == LV_RES_OK) return value_act; 3b48: 2801 cmp r0, #1 3b4a: d103 bne.n 3b54 <_lv_obj_get_style_ptr+0x60> 3b4c: 9801 ldr r0, [sp, #4] } 3b4e: b003 add sp, #12 3b50: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} if(attr.bits.inherit == 0) break; 3b54: f018 0f80 tst.w r8, #128 ; 0x80 3b58: d0d9 beq.n 3b0e <_lv_obj_get_style_ptr+0x1a> if(part != LV_OBJ_PART_MAIN) { 3b5a: b91e cbnz r6, 3b64 <_lv_obj_get_style_ptr+0x70> parent = lv_obj_get_parent(parent); 3b5c: 4628 mov r0, r5 3b5e: 4b06 ldr r3, [pc, #24] ; (3b78 <_lv_obj_get_style_ptr+0x84>) 3b60: 4798 blx r3 3b62: 4605 mov r5, r0 { 3b64: 2600 movs r6, #0 3b66: e7d1 b.n 3b0c <_lv_obj_get_style_ptr+0x18> return &lv_anim_path_def; 3b68: 4804 ldr r0, [pc, #16] ; (3b7c <_lv_obj_get_style_ptr+0x88>) 3b6a: e7f0 b.n 3b4e <_lv_obj_get_style_ptr+0x5a> switch(prop) { 3b6c: 2000 movs r0, #0 3b6e: e7ee b.n 3b4e <_lv_obj_get_style_ptr+0x5a> 3b70: 00010511 .word 0x00010511 3b74: 000026b9 .word 0x000026b9 3b78: 00002351 .word 0x00002351 3b7c: 0002b8a4 .word 0x0002b8a4 3b80: 000038d1 .word 0x000038d1 3b84: 00006251 .word 0x00006251 00003b88 : { 3b88: b570 push {r4, r5, r6, lr} lv_style_trans_t * tr = a->var; 3b8a: 6804 ldr r4, [r0, #0] lv_style_property_t prop_tmp = tr->prop; 3b8c: 88a5 ldrh r5, [r4, #4] tr->start_value._int = _lv_obj_get_style_int(tr->obj, tr->part, prop_tmp); 3b8e: 6820 ldr r0, [r4, #0] 3b90: 79a1 ldrb r1, [r4, #6] 3b92: f005 030f and.w r3, r5, #15 if((prop_tmp & 0xF) < LV_STYLE_ID_COLOR) { /*Int*/ 3b96: 2b08 cmp r3, #8 tr->start_value._int = _lv_obj_get_style_int(tr->obj, tr->part, prop_tmp); 3b98: 462a mov r2, r5 if((prop_tmp & 0xF) < LV_STYLE_ID_COLOR) { /*Int*/ 3b9a: d80c bhi.n 3bb6 tr->start_value._int = _lv_obj_get_style_int(tr->obj, tr->part, prop_tmp); 3b9c: 4b0d ldr r3, [pc, #52] ; (3bd4 ) 3b9e: 4798 blx r3 tr->start_value._color = _lv_obj_get_style_color(tr->obj, tr->part, prop_tmp); 3ba0: 8120 strh r0, [r4, #8] tr->prop = 0; 3ba2: 2300 movs r3, #0 3ba4: 80a3 strh r3, [r4, #4] trans_del(tr->obj, tr->part, prop_tmp, tr); 3ba6: 79a1 ldrb r1, [r4, #6] 3ba8: 6820 ldr r0, [r4, #0] 3baa: 4e0b ldr r6, [pc, #44] ; (3bd8 ) 3bac: 4623 mov r3, r4 3bae: 462a mov r2, r5 3bb0: 47b0 blx r6 tr->prop = prop_tmp; 3bb2: 80a5 strh r5, [r4, #4] } 3bb4: bd70 pop {r4, r5, r6, pc} else if((prop_tmp & 0xF) < LV_STYLE_ID_OPA) { /*Color*/ 3bb6: 2b0b cmp r3, #11 3bb8: d802 bhi.n 3bc0 tr->start_value._color = _lv_obj_get_style_color(tr->obj, tr->part, prop_tmp); 3bba: 4b08 ldr r3, [pc, #32] ; (3bdc ) 3bbc: 4798 blx r3 3bbe: e7ef b.n 3ba0 else if((prop_tmp & 0xF) < LV_STYLE_ID_PTR) { /*Opa*/ 3bc0: 2b0d cmp r3, #13 3bc2: d803 bhi.n 3bcc tr->start_value._opa = _lv_obj_get_style_opa(tr->obj, tr->part, prop_tmp); 3bc4: 4b06 ldr r3, [pc, #24] ; (3be0 ) 3bc6: 4798 blx r3 3bc8: 7220 strb r0, [r4, #8] 3bca: e7ea b.n 3ba2 tr->start_value._ptr = _lv_obj_get_style_ptr(tr->obj, tr->part, prop_tmp); 3bcc: 4b05 ldr r3, [pc, #20] ; (3be4 ) 3bce: 4798 blx r3 3bd0: 60a0 str r0, [r4, #8] 3bd2: e7e6 b.n 3ba2 3bd4: 0000393d .word 0x0000393d 3bd8: 000026e1 .word 0x000026e1 3bdc: 000039e1 .word 0x000039e1 3be0: 00003a65 .word 0x00003a65 3be4: 00003af5 .word 0x00003af5 00003be8 : { 3be8: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} if(obj->state == new_state) return; 3bec: f890 303d ldrb.w r3, [r0, #61] ; 0x3d 3bf0: 428b cmp r3, r1 { 3bf2: b09f sub sp, #124 ; 0x7c 3bf4: 4604 mov r4, r0 3bf6: 4688 mov r8, r1 if(obj->state == new_state) return; 3bf8: f000 8242 beq.w 4080 LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 3bfc: 4b95 ldr r3, [pc, #596] ; (3e54 ) 3bfe: 4798 blx r3 3c00: 4605 mov r5, r0 3c02: b968 cbnz r0, 3c20 3c04: 4b94 ldr r3, [pc, #592] ; (3e58 ) 3c06: 4995 ldr r1, [pc, #596] ; (3e5c ) 3c08: 9300 str r3, [sp, #0] 3c0a: f240 6237 movw r2, #1591 ; 0x637 3c0e: 2003 movs r0, #3 3c10: 4e93 ldr r6, [pc, #588] ; (3e60 ) 3c12: 47b0 blx r6 3c14: 4893 ldr r0, [pc, #588] ; (3e64 ) 3c16: 4994 ldr r1, [pc, #592] ; (3e68 ) 3c18: 4622 mov r2, r4 3c1a: 462b mov r3, r5 3c1c: 4788 blx r1 3c1e: e7fe b.n 3c1e lv_state_t prev_state = obj->state; 3c20: f894 303d ldrb.w r3, [r4, #61] ; 0x3d 3c24: 9302 str r3, [sp, #8] obj->state = new_state; 3c26: 2300 movs r3, #0 3c28: f884 803d strb.w r8, [r4, #61] ; 0x3d 3c2c: 9303 str r3, [sp, #12] 3c2e: f89d 600c ldrb.w r6, [sp, #12] lv_style_list_t * style_list = lv_obj_get_style_list(obj, part); 3c32: 4b8e ldr r3, [pc, #568] ; (3e6c ) 3c34: 4631 mov r1, r6 3c36: 4620 mov r0, r4 3c38: 4798 blx r3 if(style_list == NULL) break; /*No more style lists*/ 3c3a: 9005 str r0, [sp, #20] 3c3c: b140 cbz r0, 3c50 if(style_list->ignore_trans) continue; 3c3e: 7947 ldrb r7, [r0, #5] 3c40: f017 0708 ands.w r7, r7, #8 3c44: d00b beq.n 3c5e for(part = 0; part < _LV_OBJ_PART_REAL_LAST; part++) { 3c46: 9b03 ldr r3, [sp, #12] 3c48: 3301 adds r3, #1 3c4a: 2b40 cmp r3, #64 ; 0x40 3c4c: 9303 str r3, [sp, #12] 3c4e: d1ee bne.n 3c2e lv_obj_refresh_style(obj, LV_STYLE_PROP_ALL); 3c50: 4b87 ldr r3, [pc, #540] ; (3e70 ) 3c52: 21ff movs r1, #255 ; 0xff 3c54: 4620 mov r0, r4 } 3c56: b01f add sp, #124 ; 0x7c 3c58: e8bd 4ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} lv_obj_refresh_style(obj, LV_STYLE_PROP_ALL); 3c5c: 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) 3c5e: 4d85 ldr r5, [pc, #532] ; (3e74 ) 3c60: 22b0 movs r2, #176 ; 0xb0 3c62: 4631 mov r1, r6 3c64: 4620 mov r0, r4 3c66: 47a8 blx r5 _LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_DELAY, transition_delay, lv_style_int_t, _int, scalar) 3c68: 22b1 movs r2, #177 ; 0xb1 _LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_TIME, transition_time, lv_style_int_t, _int, scalar) 3c6a: 9009 str r0, [sp, #36] ; 0x24 _LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_DELAY, transition_delay, lv_style_int_t, _int, scalar) 3c6c: 4631 mov r1, r6 3c6e: 4620 mov r0, r4 3c70: 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) 3c72: 4b81 ldr r3, [pc, #516] ; (3e78 ) _LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_DELAY, transition_delay, lv_style_int_t, _int, scalar) 3c74: 9008 str r0, [sp, #32] _LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PATH, transition_path, lv_anim_path_t *, _ptr, scalar) 3c76: 22be movs r2, #190 ; 0xbe 3c78: 4631 mov r1, r6 3c7a: 4620 mov r0, r4 3c7c: 4798 blx r3 _LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_1, transition_prop_1, lv_style_int_t, _int, scalar) 3c7e: 22b2 movs r2, #178 ; 0xb2 _LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PATH, transition_path, lv_anim_path_t *, _ptr, scalar) 3c80: 9006 str r0, [sp, #24] _LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_1, transition_prop_1, lv_style_int_t, _int, scalar) 3c82: 4631 mov r1, r6 3c84: 4620 mov r0, r4 3c86: 47a8 blx r5 _LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_2, transition_prop_2, lv_style_int_t, _int, scalar) 3c88: 22b3 movs r2, #179 ; 0xb3 props[0] = lv_obj_get_style_transition_prop_1(obj, part); 3c8a: f8ad 002c strh.w r0, [sp, #44] ; 0x2c 3c8e: 4631 mov r1, r6 3c90: 4620 mov r0, r4 3c92: 47a8 blx r5 _LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_3, transition_prop_3, lv_style_int_t, _int, scalar) 3c94: 22b4 movs r2, #180 ; 0xb4 props[1] = lv_obj_get_style_transition_prop_2(obj, part); 3c96: f8ad 002e strh.w r0, [sp, #46] ; 0x2e 3c9a: 4631 mov r1, r6 3c9c: 4620 mov r0, r4 3c9e: 47a8 blx r5 _LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_4, transition_prop_4, lv_style_int_t, _int, scalar) 3ca0: 22b5 movs r2, #181 ; 0xb5 props[2] = lv_obj_get_style_transition_prop_3(obj, part); 3ca2: f8ad 0030 strh.w r0, [sp, #48] ; 0x30 3ca6: 4631 mov r1, r6 3ca8: 4620 mov r0, r4 3caa: 47a8 blx r5 _LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_5, transition_prop_5, lv_style_int_t, _int, scalar) 3cac: 22b6 movs r2, #182 ; 0xb6 props[3] = lv_obj_get_style_transition_prop_4(obj, part); 3cae: f8ad 0032 strh.w r0, [sp, #50] ; 0x32 3cb2: 4631 mov r1, r6 3cb4: 4620 mov r0, r4 3cb6: 47a8 blx r5 _LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_6, transition_prop_6, lv_style_int_t, _int, scalar) 3cb8: 22b7 movs r2, #183 ; 0xb7 props[4] = lv_obj_get_style_transition_prop_5(obj, part); 3cba: f8ad 0034 strh.w r0, [sp, #52] ; 0x34 3cbe: 4631 mov r1, r6 3cc0: 4620 mov r0, r4 3cc2: 47a8 blx r5 props[5] = lv_obj_get_style_transition_prop_6(obj, part); 3cc4: 9704 str r7, [sp, #16] 3cc6: f8ad 0036 strh.w r0, [sp, #54] ; 0x36 if(props[i] != 0) { 3cca: 9a04 ldr r2, [sp, #16] 3ccc: ab0b add r3, sp, #44 ; 0x2c 3cce: f833 7012 ldrh.w r7, [r3, r2, lsl #1] 3cd2: 2f00 cmp r7, #0 3cd4: f000 80b6 beq.w 3e44 _lv_style_list_add_trans_style(style_list); 3cd8: 4b68 ldr r3, [pc, #416] ; (3e7c ) 3cda: 9805 ldr r0, [sp, #20] 3cdc: 4798 blx r3 lv_style_list_t * style_list = lv_obj_get_style_list(obj, part); 3cde: 4b63 ldr r3, [pc, #396] ; (3e6c ) 3ce0: 4631 mov r1, r6 3ce2: 4620 mov r0, r4 3ce4: 4798 blx r3 lv_style_t * style_trans = _lv_style_list_get_transition_style(style_list); 3ce6: 4b66 ldr r3, [pc, #408] ; (3e80 ) lv_style_list_t * style_list = lv_obj_get_style_list(obj, part); 3ce8: 4605 mov r5, r0 lv_style_t * style_trans = _lv_style_list_get_transition_style(style_list); 3cea: 4798 blx r3 3cec: f007 030f and.w r3, r7, #15 if((prop & 0xF) < LV_STYLE_ID_COLOR) { /*Int*/ 3cf0: 2b08 cmp r3, #8 lv_style_t * style_trans = _lv_style_list_get_transition_style(style_list); 3cf2: 4682 mov sl, r0 if((prop & 0xF) < LV_STYLE_ID_COLOR) { /*Int*/ 3cf4: f200 80dc bhi.w 3eb0 style_list->skip_trans = 1; 3cf8: 796b ldrb r3, [r5, #5] lv_style_int_t int1 = _lv_obj_get_style_int(obj, part, prop); 3cfa: f8df b178 ldr.w fp, [pc, #376] ; 3e74 style_list->skip_trans = 1; 3cfe: f043 0304 orr.w r3, r3, #4 3d02: 716b strb r3, [r5, #5] obj->state = prev_state; 3d04: 9b02 ldr r3, [sp, #8] 3d06: f884 303d strb.w r3, [r4, #61] ; 0x3d lv_style_int_t int1 = _lv_obj_get_style_int(obj, part, prop); 3d0a: 463a mov r2, r7 3d0c: 4631 mov r1, r6 3d0e: 4620 mov r0, r4 3d10: 47d8 blx fp lv_style_int_t int2 = _lv_obj_get_style_int(obj, part, prop); 3d12: 463a mov r2, r7 lv_style_int_t int1 = _lv_obj_get_style_int(obj, part, prop); 3d14: 9007 str r0, [sp, #28] obj->state = new_state; 3d16: f884 803d strb.w r8, [r4, #61] ; 0x3d lv_style_int_t int2 = _lv_obj_get_style_int(obj, part, prop); 3d1a: 4631 mov r1, r6 3d1c: 4620 mov r0, r4 3d1e: 47d8 blx fp style_list->skip_trans = 0; 3d20: 796a ldrb r2, [r5, #5] if(int1 == int2) return NULL; 3d22: 9b07 ldr r3, [sp, #28] style_list->skip_trans = 0; 3d24: f36f 0282 bfc r2, #2, #1 if(int1 == int2) return NULL; 3d28: 4283 cmp r3, r0 lv_style_int_t int2 = _lv_obj_get_style_int(obj, part, prop); 3d2a: 4681 mov r9, r0 style_list->skip_trans = 0; 3d2c: 716a strb r2, [r5, #5] if(int1 == int2) return NULL; 3d2e: f000 8089 beq.w 3e44 obj->state = prev_state; 3d32: 9b02 ldr r3, [sp, #8] 3d34: f884 303d strb.w r3, [r4, #61] ; 0x3d int1 = _lv_obj_get_style_int(obj, part, prop); 3d38: 463a mov r2, r7 3d3a: 4631 mov r1, r6 3d3c: 4620 mov r0, r4 3d3e: 47d8 blx fp _lv_style_set_int(style_trans, prop, int1); /*Be sure `trans_style` has a valid value */ 3d40: 4b50 ldr r3, [pc, #320] ; (3e84 ) obj->state = new_state; 3d42: f884 803d strb.w r8, [r4, #61] ; 0x3d _lv_style_set_int(style_trans, prop, int1); /*Be sure `trans_style` has a valid value */ 3d46: 4602 mov r2, r0 int1 = _lv_obj_get_style_int(obj, part, prop); 3d48: 4683 mov fp, r0 _lv_style_set_int(style_trans, prop, int1); /*Be sure `trans_style` has a valid value */ 3d4a: 4639 mov r1, r7 3d4c: 4650 mov r0, sl 3d4e: 4798 blx r3 if(prop == LV_STYLE_RADIUS) { 3d50: 2f01 cmp r7, #1 3d52: d122 bne.n 3d9a if(int1 == LV_RADIUS_CIRCLE || int2 == LV_RADIUS_CIRCLE) { 3d54: f647 73ff movw r3, #32767 ; 0x7fff 3d58: 459b cmp fp, r3 3d5a: d001 beq.n 3d60 3d5c: 4599 cmp r9, r3 3d5e: d11c bne.n 3d9a lv_coord_t whalf = lv_obj_get_width(obj) / 2; 3d60: f8df a148 ldr.w sl, [pc, #328] ; 3eac 3d64: 4620 mov r0, r4 3d66: 47d0 blx sl 3d68: eb00 70d0 add.w r0, r0, r0, lsr #31 3d6c: f340 054f sbfx r5, r0, #1, #16 lv_coord_t hhalf = lv_obj_get_width(obj) / 2; 3d70: 4620 mov r0, r4 3d72: 47d0 blx sl if(int1 == LV_RADIUS_CIRCLE) int1 = LV_MATH_MIN(whalf + 1, hhalf + 1); 3d74: f647 73ff movw r3, #32767 ; 0x7fff lv_coord_t hhalf = lv_obj_get_width(obj) / 2; 3d78: eb00 70d0 add.w r0, r0, r0, lsr #31 if(int1 == LV_RADIUS_CIRCLE) int1 = LV_MATH_MIN(whalf + 1, hhalf + 1); 3d7c: 459b cmp fp, r3 lv_coord_t hhalf = lv_obj_get_width(obj) / 2; 3d7e: f340 004f sbfx r0, r0, #1, #16 if(int1 == LV_RADIUS_CIRCLE) int1 = LV_MATH_MIN(whalf + 1, hhalf + 1); 3d82: d12a bne.n 3dda 3d84: 4285 cmp r5, r0 3d86: da1e bge.n 3dc6 3d88: f105 0b01 add.w fp, r5, #1 if(int2 == LV_RADIUS_CIRCLE) int2 = LV_MATH_MIN(whalf + 1, hhalf + 1); 3d8c: 4599 cmp r9, r3 if(int1 == LV_RADIUS_CIRCLE) int1 = LV_MATH_MIN(whalf + 1, hhalf + 1); 3d8e: fa0f fb8b sxth.w fp, fp if(int2 == LV_RADIUS_CIRCLE) int2 = LV_MATH_MIN(whalf + 1, hhalf + 1); 3d92: d102 bne.n 3d9a 3d94: 3501 adds r5, #1 3d96: fa0f f985 sxth.w r9, r5 tr = _lv_ll_ins_head(&LV_GC_ROOT(_lv_obj_style_trans_ll)); 3d9a: 4b3b ldr r3, [pc, #236] ; (3e88 ) 3d9c: 483b ldr r0, [pc, #236] ; (3e8c ) 3d9e: 4798 blx r3 LV_ASSERT_MEM(tr); 3da0: 4b2c ldr r3, [pc, #176] ; (3e54 ) tr = _lv_ll_ins_head(&LV_GC_ROOT(_lv_obj_style_trans_ll)); 3da2: 4605 mov r5, r0 LV_ASSERT_MEM(tr); 3da4: 4798 blx r3 3da6: 4682 mov sl, r0 3da8: b9e0 cbnz r0, 3de4 3daa: 4b39 ldr r3, [pc, #228] ; (3e90 ) 3dac: 492b ldr r1, [pc, #172] ; (3e5c ) 3dae: 9300 str r3, [sp, #0] 3db0: f640 62b2 movw r2, #3762 ; 0xeb2 3db4: 2003 movs r0, #3 3db6: 4c2a ldr r4, [pc, #168] ; (3e60 ) 3db8: 47a0 blx r4 3dba: 4836 ldr r0, [pc, #216] ; (3e94 ) 3dbc: 492a ldr r1, [pc, #168] ; (3e68 ) 3dbe: 462a mov r2, r5 3dc0: 4653 mov r3, sl 3dc2: 4788 blx r1 3dc4: e7fe b.n 3dc4 if(int1 == LV_RADIUS_CIRCLE) int1 = LV_MATH_MIN(whalf + 1, hhalf + 1); 3dc6: f100 0b01 add.w fp, r0, #1 if(int2 == LV_RADIUS_CIRCLE) int2 = LV_MATH_MIN(whalf + 1, hhalf + 1); 3dca: 4599 cmp r9, r3 if(int1 == LV_RADIUS_CIRCLE) int1 = LV_MATH_MIN(whalf + 1, hhalf + 1); 3dcc: fa0f fb8b sxth.w fp, fp if(int2 == LV_RADIUS_CIRCLE) int2 = LV_MATH_MIN(whalf + 1, hhalf + 1); 3dd0: d1e3 bne.n 3d9a 3dd2: 3001 adds r0, #1 3dd4: fa0f f980 sxth.w r9, r0 3dd8: e7df b.n 3d9a 3dda: 4599 cmp r9, r3 3ddc: d1dd bne.n 3d9a 3dde: 4285 cmp r5, r0 3de0: daf7 bge.n 3dd2 3de2: e7d7 b.n 3d94 if(tr == NULL) return NULL; 3de4: 2d00 cmp r5, #0 3de6: d02d beq.n 3e44 tr->start_value._int = int1; 3de8: f8a5 b008 strh.w fp, [r5, #8] tr->end_value._int = int2; 3dec: f8a5 900c strh.w r9, [r5, #12] lv_anim_init(&a); 3df0: 4b29 ldr r3, [pc, #164] ; (3e98 ) tr->obj = obj; 3df2: 602c str r4, [r5, #0] tr->prop = props[i]; 3df4: 80af strh r7, [r5, #4] tr->part = part; 3df6: 71ae strb r6, [r5, #6] lv_anim_init(&a); 3df8: a80e add r0, sp, #56 ; 0x38 3dfa: 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; 3dfc: 4b27 ldr r3, [pc, #156] ; (3e9c ) 3dfe: 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; 3e00: 4b27 ldr r3, [pc, #156] ; (3ea0 ) 3e02: 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; 3e04: 4b27 ldr r3, [pc, #156] ; (3ea4 ) 3e06: 9311 str r3, [sp, #68] ; 0x44 a->end = end; 3e08: 2200 movs r2, #0 3e0a: 23ff movs r3, #255 ; 0xff 3e0c: e9cd 2314 strd r2, r3, [sp, #80] ; 0x50 a->time = duration; 3e10: 9b09 ldr r3, [sp, #36] ; 0x24 3e12: 9316 str r3, [sp, #88] ; 0x58 a->act_time = (int32_t)(-delay); 3e14: 9b08 ldr r3, [sp, #32] 3e16: 9a06 ldr r2, [sp, #24] a->var = var; 3e18: 950e str r5, [sp, #56] ; 0x38 a->act_time = (int32_t)(-delay); 3e1a: 425b negs r3, r3 3e1c: 9317 str r3, [sp, #92] ; 0x5c 3e1e: 9b06 ldr r3, [sp, #24] 3e20: 1dd1 adds r1, r2, #7 3e22: 3b01 subs r3, #1 uint8_t * d8 = (uint8_t *)dst; 3e24: aa12 add r2, sp, #72 ; 0x48 *d8 = *s8; 3e26: f813 0f01 ldrb.w r0, [r3, #1]! 3e2a: f802 0b01 strb.w r0, [r2], #1 while(len) { 3e2e: 4299 cmp r1, r3 3e30: d1f9 bne.n 3e26 a.early_apply = 0; 3e32: f89d 306e ldrb.w r3, [sp, #110] ; 0x6e 3e36: f36f 0300 bfc r3, #0, #1 3e3a: f88d 306e strb.w r3, [sp, #110] ; 0x6e lv_anim_start(&a); 3e3e: a80e add r0, sp, #56 ; 0x38 3e40: 4b19 ldr r3, [pc, #100] ; (3ea8 ) 3e42: 4798 blx r3 for(i = 0; i < LV_STYLE_TRANS_NUM_MAX; i++) { 3e44: 9b04 ldr r3, [sp, #16] 3e46: 3301 adds r3, #1 3e48: 2b06 cmp r3, #6 3e4a: 9304 str r3, [sp, #16] 3e4c: f47f af3d bne.w 3cca 3e50: e6f9 b.n 3c46 3e52: bf00 nop 3e54: 00001a0d .word 0x00001a0d 3e58: 00026fe6 .word 0x00026fe6 3e5c: 000267db .word 0x000267db 3e60: 0000eb21 .word 0x0000eb21 3e64: 0002683f .word 0x0002683f 3e68: 00001a15 .word 0x00001a15 3e6c: 000026b9 .word 0x000026b9 3e70: 00002fbd .word 0x00002fbd 3e74: 0000393d .word 0x0000393d 3e78: 00003af5 .word 0x00003af5 3e7c: 0000600d .word 0x0000600d 3e80: 00005ee5 .word 0x00005ee5 3e84: 00005aa5 .word 0x00005aa5 3e88: 0000e845 .word 0x0000e845 3e8c: 20008ffc .word 0x20008ffc 3e90: 00026ff7 .word 0x00026ff7 3e94: 0002673e .word 0x0002673e 3e98: 0000dea5 .word 0x0000dea5 3e9c: 000031b9 .word 0x000031b9 3ea0: 00003b89 .word 0x00003b89 3ea4: 000027cd .word 0x000027cd 3ea8: 0000df4d .word 0x0000df4d 3eac: 00002619 .word 0x00002619 else if((prop & 0xF) < LV_STYLE_ID_OPA) { /*Color*/ 3eb0: 2b0b cmp r3, #11 3eb2: d84b bhi.n 3f4c style_list->skip_trans = 1; 3eb4: 796b ldrb r3, [r5, #5] lv_color_t c1 = _lv_obj_get_style_color(obj, part, prop); 3eb6: f8df b200 ldr.w fp, [pc, #512] ; 40b8 style_list->skip_trans = 1; 3eba: f043 0304 orr.w r3, r3, #4 3ebe: 716b strb r3, [r5, #5] obj->state = prev_state; 3ec0: 9b02 ldr r3, [sp, #8] 3ec2: f884 303d strb.w r3, [r4, #61] ; 0x3d lv_color_t c1 = _lv_obj_get_style_color(obj, part, prop); 3ec6: 463a mov r2, r7 3ec8: 4631 mov r1, r6 3eca: 4620 mov r0, r4 3ecc: 47d8 blx fp lv_color_t c2 = _lv_obj_get_style_color(obj, part, prop); 3ece: 463a mov r2, r7 lv_color_t c1 = _lv_obj_get_style_color(obj, part, prop); 3ed0: 4681 mov r9, r0 obj->state = new_state; 3ed2: f884 803d strb.w r8, [r4, #61] ; 0x3d lv_color_t c2 = _lv_obj_get_style_color(obj, part, prop); 3ed6: 4631 mov r1, r6 3ed8: 4620 mov r0, r4 3eda: 47d8 blx fp style_list->skip_trans = 0; 3edc: 796a ldrb r2, [r5, #5] lv_color_t c2 = _lv_obj_get_style_color(obj, part, prop); 3ede: f8ad 001c strh.w r0, [sp, #28] style_list->skip_trans = 0; 3ee2: f36f 0282 bfc r2, #2, #1 3ee6: 716a strb r2, [r5, #5] if(c1.full == c2.full) return NULL; 3ee8: fa1f f989 uxth.w r9, r9 3eec: b282 uxth r2, r0 3eee: 4591 cmp r9, r2 3ef0: d0a8 beq.n 3e44 obj->state = prev_state; 3ef2: 9b02 ldr r3, [sp, #8] 3ef4: f884 303d strb.w r3, [r4, #61] ; 0x3d c1 = _lv_obj_get_style_color(obj, part, prop); 3ef8: 463a mov r2, r7 3efa: 4631 mov r1, r6 3efc: 4620 mov r0, r4 3efe: 47d8 blx fp _lv_style_set_color(style_trans, prop, c1); /*Be sure `trans_style` has a valid value */ 3f00: 4639 mov r1, r7 3f02: 4602 mov r2, r0 3f04: 4b60 ldr r3, [pc, #384] ; (4088 ) obj->state = new_state; 3f06: f884 803d strb.w r8, [r4, #61] ; 0x3d c1 = _lv_obj_get_style_color(obj, part, prop); 3f0a: 4681 mov r9, r0 _lv_style_set_color(style_trans, prop, c1); /*Be sure `trans_style` has a valid value */ 3f0c: 4650 mov r0, sl 3f0e: 4798 blx r3 tr = _lv_ll_ins_head(&LV_GC_ROOT(_lv_obj_style_trans_ll)); 3f10: 4b5e ldr r3, [pc, #376] ; (408c ) 3f12: 485f ldr r0, [pc, #380] ; (4090 ) 3f14: 4798 blx r3 LV_ASSERT_MEM(tr); 3f16: 4b5f ldr r3, [pc, #380] ; (4094 ) tr = _lv_ll_ins_head(&LV_GC_ROOT(_lv_obj_style_trans_ll)); 3f18: 4605 mov r5, r0 LV_ASSERT_MEM(tr); 3f1a: 4798 blx r3 3f1c: 4682 mov sl, r0 3f1e: b968 cbnz r0, 3f3c 3f20: 4b5d ldr r3, [pc, #372] ; (4098 ) 3f22: 495e ldr r1, [pc, #376] ; (409c ) 3f24: 9300 str r3, [sp, #0] 3f26: f640 62c6 movw r2, #3782 ; 0xec6 3f2a: 2003 movs r0, #3 3f2c: 4c5c ldr r4, [pc, #368] ; (40a0 ) 3f2e: 47a0 blx r4 3f30: 485c ldr r0, [pc, #368] ; (40a4 ) 3f32: 495d ldr r1, [pc, #372] ; (40a8 ) 3f34: 462a mov r2, r5 3f36: 4653 mov r3, sl 3f38: 4788 blx r1 3f3a: e7fe b.n 3f3a if(tr == NULL) return NULL; 3f3c: 2d00 cmp r5, #0 3f3e: d081 beq.n 3e44 tr->end_value._color = c2; 3f40: f8bd 301c ldrh.w r3, [sp, #28] tr->start_value._color = c1; 3f44: f8a5 9008 strh.w r9, [r5, #8] tr->end_value._color = c2; 3f48: 81ab strh r3, [r5, #12] 3f4a: e751 b.n 3df0 else if((prop & 0xF) < LV_STYLE_ID_PTR) { /*Opa*/ 3f4c: 2b0d cmp r3, #13 3f4e: d849 bhi.n 3fe4 style_list->skip_trans = 1; 3f50: 796b ldrb r3, [r5, #5] lv_opa_t o1 = _lv_obj_get_style_opa(obj, part, prop); 3f52: f8df b168 ldr.w fp, [pc, #360] ; 40bc style_list->skip_trans = 1; 3f56: f043 0304 orr.w r3, r3, #4 3f5a: 716b strb r3, [r5, #5] obj->state = prev_state; 3f5c: 9b02 ldr r3, [sp, #8] 3f5e: f884 303d strb.w r3, [r4, #61] ; 0x3d lv_opa_t o1 = _lv_obj_get_style_opa(obj, part, prop); 3f62: 463a mov r2, r7 3f64: 4631 mov r1, r6 3f66: 4620 mov r0, r4 3f68: 47d8 blx fp lv_opa_t o2 = _lv_obj_get_style_opa(obj, part, prop); 3f6a: 463a mov r2, r7 lv_opa_t o1 = _lv_obj_get_style_opa(obj, part, prop); 3f6c: 9007 str r0, [sp, #28] obj->state = new_state; 3f6e: f884 803d strb.w r8, [r4, #61] ; 0x3d lv_opa_t o2 = _lv_obj_get_style_opa(obj, part, prop); 3f72: 4631 mov r1, r6 3f74: 4620 mov r0, r4 3f76: 47d8 blx fp style_list->skip_trans = 0; 3f78: 796a ldrb r2, [r5, #5] if(o1 == o2) return NULL; 3f7a: 9b07 ldr r3, [sp, #28] style_list->skip_trans = 0; 3f7c: f36f 0282 bfc r2, #2, #1 if(o1 == o2) return NULL; 3f80: 4283 cmp r3, r0 lv_opa_t o2 = _lv_obj_get_style_opa(obj, part, prop); 3f82: 4681 mov r9, r0 style_list->skip_trans = 0; 3f84: 716a strb r2, [r5, #5] if(o1 == o2) return NULL; 3f86: f43f af5d beq.w 3e44 obj->state = prev_state; 3f8a: 9b02 ldr r3, [sp, #8] 3f8c: f884 303d strb.w r3, [r4, #61] ; 0x3d o1 = _lv_obj_get_style_opa(obj, part, prop); 3f90: 463a mov r2, r7 3f92: 4631 mov r1, r6 3f94: 4620 mov r0, r4 3f96: 47d8 blx fp _lv_style_set_opa(style_trans, prop, o1); /*Be sure `trans_style` has a valid value */ 3f98: 4639 mov r1, r7 3f9a: 4602 mov r2, r0 3f9c: 4b43 ldr r3, [pc, #268] ; (40ac ) obj->state = new_state; 3f9e: f884 803d strb.w r8, [r4, #61] ; 0x3d o1 = _lv_obj_get_style_opa(obj, part, prop); 3fa2: 4683 mov fp, r0 _lv_style_set_opa(style_trans, prop, o1); /*Be sure `trans_style` has a valid value */ 3fa4: 4650 mov r0, sl 3fa6: 4798 blx r3 tr = _lv_ll_ins_head(&LV_GC_ROOT(_lv_obj_style_trans_ll)); 3fa8: 4b38 ldr r3, [pc, #224] ; (408c ) 3faa: 4839 ldr r0, [pc, #228] ; (4090 ) 3fac: 4798 blx r3 LV_ASSERT_MEM(tr); 3fae: 4b39 ldr r3, [pc, #228] ; (4094 ) tr = _lv_ll_ins_head(&LV_GC_ROOT(_lv_obj_style_trans_ll)); 3fb0: 4605 mov r5, r0 LV_ASSERT_MEM(tr); 3fb2: 4798 blx r3 3fb4: 4682 mov sl, r0 3fb6: b968 cbnz r0, 3fd4 3fb8: 4b37 ldr r3, [pc, #220] ; (4098 ) 3fba: 4938 ldr r1, [pc, #224] ; (409c ) 3fbc: 9300 str r3, [sp, #0] 3fbe: f640 62db movw r2, #3803 ; 0xedb 3fc2: 2003 movs r0, #3 3fc4: 4c36 ldr r4, [pc, #216] ; (40a0 ) 3fc6: 47a0 blx r4 3fc8: 4836 ldr r0, [pc, #216] ; (40a4 ) 3fca: 4937 ldr r1, [pc, #220] ; (40a8 ) 3fcc: 462a mov r2, r5 3fce: 4653 mov r3, sl 3fd0: 4788 blx r1 3fd2: e7fe b.n 3fd2 if(tr == NULL) return NULL; 3fd4: 2d00 cmp r5, #0 3fd6: f43f af35 beq.w 3e44 tr->start_value._opa = o1; 3fda: f885 b008 strb.w fp, [r5, #8] tr->end_value._opa = o2; 3fde: f885 900c strb.w r9, [r5, #12] 3fe2: e705 b.n 3df0 obj->state = prev_state; 3fe4: 9b02 ldr r3, [sp, #8] 3fe6: f884 303d strb.w r3, [r4, #61] ; 0x3d style_list->skip_trans = 1; 3fea: 796b ldrb r3, [r5, #5] const void * p1 = _lv_obj_get_style_ptr(obj, part, prop); 3fec: f8df b0d0 ldr.w fp, [pc, #208] ; 40c0 style_list->skip_trans = 1; 3ff0: f043 0304 orr.w r3, r3, #4 3ff4: 716b strb r3, [r5, #5] const void * p1 = _lv_obj_get_style_ptr(obj, part, prop); 3ff6: 463a mov r2, r7 3ff8: 4631 mov r1, r6 3ffa: 4620 mov r0, r4 3ffc: 47d8 blx fp const void * p2 = _lv_obj_get_style_ptr(obj, part, prop); 3ffe: 463a mov r2, r7 const void * p1 = _lv_obj_get_style_ptr(obj, part, prop); 4000: 900a str r0, [sp, #40] ; 0x28 const void * p2 = _lv_obj_get_style_ptr(obj, part, prop); 4002: 4631 mov r1, r6 obj->state = new_state; 4004: f884 803d strb.w r8, [r4, #61] ; 0x3d const void * p2 = _lv_obj_get_style_ptr(obj, part, prop); 4008: 4620 mov r0, r4 400a: 47d8 blx fp 400c: 900e str r0, [sp, #56] ; 0x38 style_list->skip_trans = 0; 400e: 796b ldrb r3, [r5, #5] 4010: f36f 0382 bfc r3, #2, #1 const void * p2 = _lv_obj_get_style_ptr(obj, part, prop); 4014: 4681 mov r9, r0 style_list->skip_trans = 0; 4016: 716b strb r3, [r5, #5] if(memcmp(&p1, &p2, sizeof(const void *)) == 0) return NULL; 4018: 2204 movs r2, #4 401a: 4b25 ldr r3, [pc, #148] ; (40b0 ) 401c: a90e add r1, sp, #56 ; 0x38 401e: a80a add r0, sp, #40 ; 0x28 4020: 4798 blx r3 4022: 2800 cmp r0, #0 4024: f43f af0e beq.w 3e44 obj->state = prev_state; 4028: 9b02 ldr r3, [sp, #8] 402a: f884 303d strb.w r3, [r4, #61] ; 0x3d p1 = _lv_obj_get_style_ptr(obj, part, prop); 402e: 463a mov r2, r7 4030: 4631 mov r1, r6 4032: 4620 mov r0, r4 4034: 47d8 blx fp _lv_style_set_ptr(style_trans, prop, p1); /*Be sure `trans_style` has a valid value */ 4036: 4639 mov r1, r7 4038: 4602 mov r2, r0 403a: 4b1e ldr r3, [pc, #120] ; (40b4 ) p1 = _lv_obj_get_style_ptr(obj, part, prop); 403c: 900a str r0, [sp, #40] ; 0x28 403e: 4683 mov fp, r0 obj->state = new_state; 4040: f884 803d strb.w r8, [r4, #61] ; 0x3d _lv_style_set_ptr(style_trans, prop, p1); /*Be sure `trans_style` has a valid value */ 4044: 4650 mov r0, sl 4046: 4798 blx r3 tr = _lv_ll_ins_head(&LV_GC_ROOT(_lv_obj_style_trans_ll)); 4048: 4b10 ldr r3, [pc, #64] ; (408c ) 404a: 4811 ldr r0, [pc, #68] ; (4090 ) 404c: 4798 blx r3 LV_ASSERT_MEM(tr); 404e: 4b11 ldr r3, [pc, #68] ; (4094 ) tr = _lv_ll_ins_head(&LV_GC_ROOT(_lv_obj_style_trans_ll)); 4050: 4605 mov r5, r0 LV_ASSERT_MEM(tr); 4052: 4798 blx r3 4054: 4682 mov sl, r0 4056: b968 cbnz r0, 4074 4058: 4b0f ldr r3, [pc, #60] ; (4098 ) 405a: 4910 ldr r1, [pc, #64] ; (409c ) 405c: 9300 str r3, [sp, #0] 405e: f640 62ef movw r2, #3823 ; 0xeef 4062: 2003 movs r0, #3 4064: 4c0e ldr r4, [pc, #56] ; (40a0 ) 4066: 47a0 blx r4 4068: 480e ldr r0, [pc, #56] ; (40a4 ) 406a: 490f ldr r1, [pc, #60] ; (40a8 ) 406c: 462a mov r2, r5 406e: 4653 mov r3, sl 4070: 4788 blx r1 4072: e7fe b.n 4072 if(tr == NULL) return NULL; 4074: 2d00 cmp r5, #0 4076: f43f aee5 beq.w 3e44 tr->end_value._ptr = p2; 407a: e9c5 b902 strd fp, r9, [r5, #8] 407e: e6b7 b.n 3df0 } 4080: b01f add sp, #124 ; 0x7c 4082: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} 4086: bf00 nop 4088: 00005b75 .word 0x00005b75 408c: 0000e845 .word 0x0000e845 4090: 20008ffc .word 0x20008ffc 4094: 00001a0d .word 0x00001a0d 4098: 00026ff7 .word 0x00026ff7 409c: 000267db .word 0x000267db 40a0: 0000eb21 .word 0x0000eb21 40a4: 0002673e .word 0x0002673e 40a8: 00001a15 .word 0x00001a15 40ac: 00005c45 .word 0x00005c45 40b0: 00016c69 .word 0x00016c69 40b4: 00005d19 .word 0x00005d19 40b8: 000039e1 .word 0x000039e1 40bc: 00003a65 .word 0x00003a65 40c0: 00003af5 .word 0x00003af5 000040c4 : { 40c4: b573 push {r0, r1, r4, r5, r6, lr} LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 40c6: 4b11 ldr r3, [pc, #68] ; (410c ) { 40c8: 4604 mov r4, r0 40ca: 460d mov r5, r1 LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 40cc: 4798 blx r3 40ce: 4606 mov r6, r0 40d0: b968 cbnz r0, 40ee 40d2: 4b0f ldr r3, [pc, #60] ; (4110 ) 40d4: 490f ldr r1, [pc, #60] ; (4114 ) 40d6: 9300 str r3, [sp, #0] 40d8: f240 627e movw r2, #1662 ; 0x67e 40dc: 2003 movs r0, #3 40de: 4d0e ldr r5, [pc, #56] ; (4118 ) 40e0: 47a8 blx r5 40e2: 480e ldr r0, [pc, #56] ; (411c ) 40e4: 490e ldr r1, [pc, #56] ; (4120 ) 40e6: 4622 mov r2, r4 40e8: 4633 mov r3, r6 40ea: 4788 blx r1 40ec: e7fe b.n 40ec lv_state_t new_state = obj->state | state; 40ee: f894 303d ldrb.w r3, [r4, #61] ; 0x3d 40f2: ea43 0105 orr.w r1, r3, r5 if(obj->state != new_state) { 40f6: 439d bics r5, r3 40f8: d005 beq.n 4106 lv_obj_set_state(obj, new_state); 40fa: 4b0a ldr r3, [pc, #40] ; (4124 ) 40fc: 4620 mov r0, r4 } 40fe: b002 add sp, #8 4100: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr} lv_obj_set_state(obj, new_state); 4104: 4718 bx r3 } 4106: b002 add sp, #8 4108: bd70 pop {r4, r5, r6, pc} 410a: bf00 nop 410c: 00001a0d .word 0x00001a0d 4110: 00027004 .word 0x00027004 4114: 000267db .word 0x000267db 4118: 0000eb21 .word 0x0000eb21 411c: 0002683f .word 0x0002683f 4120: 00001a15 .word 0x00001a15 4124: 00003be9 .word 0x00003be9 00004128 : { 4128: b573 push {r0, r1, r4, r5, r6, lr} LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 412a: 4b11 ldr r3, [pc, #68] ; (4170 ) { 412c: 4604 mov r4, r0 412e: 460d mov r5, r1 LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 4130: 4798 blx r3 4132: 4606 mov r6, r0 4134: b968 cbnz r0, 4152 4136: 4b0f ldr r3, [pc, #60] ; (4174 ) 4138: 490f ldr r1, [pc, #60] ; (4178 ) 413a: 9300 str r3, [sp, #0] 413c: f240 628f movw r2, #1679 ; 0x68f 4140: 2003 movs r0, #3 4142: 4d0e ldr r5, [pc, #56] ; (417c ) 4144: 47a8 blx r5 4146: 480e ldr r0, [pc, #56] ; (4180 ) 4148: 490e ldr r1, [pc, #56] ; (4184 ) 414a: 4622 mov r2, r4 414c: 4633 mov r3, r6 414e: 4788 blx r1 4150: e7fe b.n 4150 lv_state_t new_state = obj->state & (~state); 4152: f894 303d ldrb.w r3, [r4, #61] ; 0x3d if(obj->state != new_state) { 4156: 421d tst r5, r3 lv_state_t new_state = obj->state & (~state); 4158: ea23 0105 bic.w r1, r3, r5 if(obj->state != new_state) { 415c: d005 beq.n 416a lv_obj_set_state(obj, new_state); 415e: 4b0a ldr r3, [pc, #40] ; (4188 ) 4160: 4620 mov r0, r4 } 4162: b002 add sp, #8 4164: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr} lv_obj_set_state(obj, new_state); 4168: 4718 bx r3 } 416a: b002 add sp, #8 416c: bd70 pop {r4, r5, r6, pc} 416e: bf00 nop 4170: 00001a0d .word 0x00001a0d 4174: 00027015 .word 0x00027015 4178: 000267db .word 0x000267db 417c: 0000eb21 .word 0x0000eb21 4180: 0002683f .word 0x0002683f 4184: 00001a15 .word 0x00001a15 4188: 00003be9 .word 0x00003be9 0000418c : { 418c: b573 push {r0, r1, r4, r5, r6, lr} LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 418e: 4b0b ldr r3, [pc, #44] ; (41bc ) { 4190: 4604 mov r4, r0 LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 4192: 4798 blx r3 4194: 4605 mov r5, r0 4196: b968 cbnz r0, 41b4 4198: 4b09 ldr r3, [pc, #36] ; (41c0 ) 419a: 490a ldr r1, [pc, #40] ; (41c4 ) 419c: 9300 str r3, [sp, #0] 419e: f640 22f5 movw r2, #2805 ; 0xaf5 41a2: 2003 movs r0, #3 41a4: 4e08 ldr r6, [pc, #32] ; (41c8 ) 41a6: 47b0 blx r6 41a8: 4808 ldr r0, [pc, #32] ; (41cc ) 41aa: 4909 ldr r1, [pc, #36] ; (41d0 ) 41ac: 4622 mov r2, r4 41ae: 462b mov r3, r5 41b0: 4788 blx r1 41b2: e7fe b.n 41b2 } 41b4: 69e0 ldr r0, [r4, #28] 41b6: b002 add sp, #8 41b8: bd70 pop {r4, r5, r6, pc} 41ba: bf00 nop 41bc: 00001a0d .word 0x00001a0d 41c0: 00027028 .word 0x00027028 41c4: 000267db .word 0x000267db 41c8: 0000eb21 .word 0x0000eb21 41cc: 0002683f .word 0x0002683f 41d0: 00001a15 .word 0x00001a15 000041d4 : { 41d4: b573 push {r0, r1, r4, r5, r6, lr} LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 41d6: 4b0b ldr r3, [pc, #44] ; (4204 ) { 41d8: 4604 mov r4, r0 LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 41da: 4798 blx r3 41dc: 4605 mov r5, r0 41de: b968 cbnz r0, 41fc 41e0: 4b09 ldr r3, [pc, #36] ; (4208 ) 41e2: 490a ldr r1, [pc, #40] ; (420c ) 41e4: 9300 str r3, [sp, #0] 41e6: f640 321e movw r2, #2846 ; 0xb1e 41ea: 2003 movs r0, #3 41ec: 4e08 ldr r6, [pc, #32] ; (4210 ) 41ee: 47b0 blx r6 41f0: 4808 ldr r0, [pc, #32] ; (4214 ) 41f2: 4909 ldr r1, [pc, #36] ; (4218 ) 41f4: 4622 mov r2, r4 41f6: 462b mov r3, r5 41f8: 4788 blx r1 41fa: e7fe b.n 41fa } 41fc: 6a60 ldr r0, [r4, #36] ; 0x24 41fe: b002 add sp, #8 4200: bd70 pop {r4, r5, r6, pc} 4202: bf00 nop 4204: 00001a0d .word 0x00001a0d 4208: 00027066 .word 0x00027066 420c: 000267db .word 0x000267db 4210: 0000eb21 .word 0x0000eb21 4214: 0002683f .word 0x0002683f 4218: 00001a15 .word 0x00001a15 0000421c : { 421c: b573 push {r0, r1, r4, r5, r6, lr} LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 421e: 4b0b ldr r3, [pc, #44] ; (424c ) { 4220: 4604 mov r4, r0 LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 4222: 4798 blx r3 4224: 4605 mov r5, r0 4226: b968 cbnz r0, 4244 4228: 4b09 ldr r3, [pc, #36] ; (4250 ) 422a: 490a ldr r1, [pc, #40] ; (4254 ) 422c: 9300 str r3, [sp, #0] 422e: f640 326f movw r2, #2927 ; 0xb6f 4232: 2003 movs r0, #3 4234: 4e08 ldr r6, [pc, #32] ; (4258 ) 4236: 47b0 blx r6 4238: 4808 ldr r0, [pc, #32] ; (425c ) 423a: 4909 ldr r1, [pc, #36] ; (4260 ) 423c: 4622 mov r2, r4 423e: 462b mov r3, r5 4240: 4788 blx r1 4242: e7fe b.n 4242 } 4244: 6ba0 ldr r0, [r4, #56] ; 0x38 4246: b002 add sp, #8 4248: bd70 pop {r4, r5, r6, pc} 424a: bf00 nop 424c: 00001a0d .word 0x00001a0d 4250: 0002708a .word 0x0002708a 4254: 000267db .word 0x000267db 4258: 0000eb21 .word 0x0000eb21 425c: 0002683f .word 0x0002683f 4260: 00001a15 .word 0x00001a15 00004264 : { 4264: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} lv_event_send(obj, LV_EVENT_DELETE, NULL); 4268: 4b39 ldr r3, [pc, #228] ; (4350 ) { 426a: 4604 mov r4, r0 lv_event_send(obj, LV_EVENT_DELETE, NULL); 426c: 2200 movs r2, #0 426e: 2115 movs r1, #21 4270: 4798 blx r3 lv_group_t * group = lv_obj_get_group(obj); 4272: 4b38 ldr r3, [pc, #224] ; (4354 ) 4274: 4620 mov r0, r4 4276: 4798 blx r3 if(group) lv_group_remove_obj(obj); 4278: 4607 mov r7, r0 427a: b110 cbz r0, 4282 427c: 4b36 ldr r3, [pc, #216] ; (4358 ) 427e: 4620 mov r0, r4 4280: 4798 blx r3 lv_anim_del(obj, NULL); 4282: 4b36 ldr r3, [pc, #216] ; (435c ) trans_del(obj, 0xFF, 0xFF, NULL); 4284: 4d36 ldr r5, [pc, #216] ; (4360 ) i_next = _lv_ll_get_next(&(obj->child_ll), i); 4286: f8df 90f4 ldr.w r9, [pc, #244] ; 437c lv_anim_del(obj, NULL); 428a: 2100 movs r1, #0 428c: 4620 mov r0, r4 428e: 4798 blx r3 trans_del(obj, 0xFF, 0xFF, NULL); 4290: 22ff movs r2, #255 ; 0xff 4292: 2300 movs r3, #0 4294: 4611 mov r1, r2 4296: 4620 mov r0, r4 i = _lv_ll_get_head(&(obj->child_ll)); 4298: f104 0804 add.w r8, r4, #4 trans_del(obj, 0xFF, 0xFF, NULL); 429c: 47a8 blx r5 i = _lv_ll_get_head(&(obj->child_ll)); 429e: 4b31 ldr r3, [pc, #196] ; (4364 ) 42a0: 4640 mov r0, r8 42a2: 4798 blx r3 42a4: 4605 mov r5, r0 while(i != NULL) { 42a6: bb3d cbnz r5, 42f8 #endif static void lv_event_mark_deleted(lv_obj_t * obj) { lv_event_temp_data_t * t = event_temp_data_head; 42a8: 4b2f ldr r3, [pc, #188] ; (4368 ) 42aa: 685e ldr r6, [r3, #4] while(t) { if(t->obj == obj) t->deleted = true; 42ac: 2301 movs r3, #1 while(t) { 42ae: bb66 cbnz r6, 430a lv_indev_t * indev = lv_indev_get_next(NULL); 42b0: f8df 80cc ldr.w r8, [pc, #204] ; 4380 lv_indev_reset(indev, obj); 42b4: f8df 90cc ldr.w r9, [pc, #204] ; 4384 if(indev->group == group && obj == lv_indev_get_obj_act()) { 42b8: f8df a0cc ldr.w sl, [pc, #204] ; 4388 lv_indev_t * indev = lv_indev_get_next(NULL); 42bc: 4630 mov r0, r6 42be: 47c0 blx r8 42c0: 4605 mov r5, r0 while(indev) { 42c2: bb45 cbnz r5, 4316 obj->signal_cb(obj, LV_SIGNAL_CLEANUP, NULL); 42c4: 462a mov r2, r5 42c6: 4629 mov r1, r5 42c8: 69e3 ldr r3, [r4, #28] 42ca: 4d28 ldr r5, [pc, #160] ; (436c ) 42cc: 4620 mov r0, r4 42ce: 4798 blx r3 lv_obj_t * par = lv_obj_get_parent(obj); 42d0: 4b27 ldr r3, [pc, #156] ; (4370 ) 42d2: 4620 mov r0, r4 42d4: 4798 blx r3 if(par == NULL) { /*It is a screen*/ 42d6: 2800 cmp r0, #0 42d8: d137 bne.n 434a lv_disp_t * d = lv_obj_get_disp(obj); 42da: 4b26 ldr r3, [pc, #152] ; (4374 ) 42dc: 4620 mov r0, r4 42de: 4798 blx r3 _lv_ll_remove(&d->scr_ll, obj); 42e0: 4621 mov r1, r4 42e2: 3030 adds r0, #48 ; 0x30 _lv_ll_remove(&(par->child_ll), obj); 42e4: 47a8 blx r5 if(obj->ext_attr != NULL) lv_mem_free(obj->ext_attr); 42e6: 6a60 ldr r0, [r4, #36] ; 0x24 42e8: 4d23 ldr r5, [pc, #140] ; (4378 ) 42ea: b100 cbz r0, 42ee 42ec: 47a8 blx r5 lv_mem_free(obj); /*Free the object itself*/ 42ee: 4620 mov r0, r4 42f0: 462b mov r3, r5 } 42f2: e8bd 47f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr} lv_mem_free(obj); /*Free the object itself*/ 42f6: 4718 bx r3 i_next = _lv_ll_get_next(&(obj->child_ll), i); 42f8: 4629 mov r1, r5 42fa: 4640 mov r0, r8 42fc: 47c8 blx r9 42fe: 4606 mov r6, r0 obj_del_core(i); 4300: 4628 mov r0, r5 4302: f7ff ffaf bl 4264 i = i_next; 4306: 4635 mov r5, r6 4308: e7cd b.n 42a6 if(t->obj == obj) t->deleted = true; 430a: 6832 ldr r2, [r6, #0] 430c: 4294 cmp r4, r2 430e: bf08 it eq 4310: 7133 strbeq r3, [r6, #4] t = t->prev; 4312: 68b6 ldr r6, [r6, #8] 4314: e7cb b.n 42ae if(indev->proc.types.pointer.act_obj == obj || indev->proc.types.pointer.last_obj == obj) { 4316: 6b6b ldr r3, [r5, #52] ; 0x34 4318: 42a3 cmp r3, r4 431a: d002 beq.n 4322 431c: 6bab ldr r3, [r5, #56] ; 0x38 431e: 42a3 cmp r3, r4 4320: d102 bne.n 4328 lv_indev_reset(indev, obj); 4322: 4621 mov r1, r4 4324: 4628 mov r0, r5 4326: 47c8 blx r9 if(indev->proc.types.pointer.last_pressed == obj) { 4328: 6beb ldr r3, [r5, #60] ; 0x3c 432a: 42a3 cmp r3, r4 if(indev->group == group && obj == lv_indev_get_obj_act()) { 432c: 6dab ldr r3, [r5, #88] ; 0x58 indev->proc.types.pointer.last_pressed = NULL; 432e: bf08 it eq 4330: 63ee streq r6, [r5, #60] ; 0x3c if(indev->group == group && obj == lv_indev_get_obj_act()) { 4332: 42bb cmp r3, r7 4334: d105 bne.n 4342 4336: 47d0 blx sl 4338: 4284 cmp r4, r0 433a: d102 bne.n 4342 lv_indev_reset(indev, obj); 433c: 4621 mov r1, r4 433e: 4628 mov r0, r5 4340: 47c8 blx r9 indev = lv_indev_get_next(indev); 4342: 4628 mov r0, r5 4344: 47c0 blx r8 4346: 4605 mov r5, r0 4348: e7bb b.n 42c2 _lv_ll_remove(&(par->child_ll), obj); 434a: 4621 mov r1, r4 434c: 3004 adds r0, #4 434e: e7c9 b.n 42e4 4350: 000021a5 .word 0x000021a5 4354: 0000421d .word 0x0000421d 4358: 00001da1 .word 0x00001da1 435c: 0000dedd .word 0x0000dedd 4360: 000026e1 .word 0x000026e1 4364: 0000e8d5 .word 0x0000e8d5 4368: 20008a90 .word 0x20008a90 436c: 0000e999 .word 0x0000e999 4370: 00002351 .word 0x00002351 4374: 000023f1 .word 0x000023f1 4378: 0000ed1d .word 0x0000ed1d 437c: 0000e8e1 .word 0x0000e8e1 4380: 0000dc45 .word 0x0000dc45 4384: 00001ea5 .word 0x00001ea5 4388: 00001ee1 .word 0x00001ee1 0000438c : { 438c: b5f7 push {r0, r1, r2, r4, r5, r6, r7, lr} LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 438e: 4b1b ldr r3, [pc, #108] ; (43fc ) { 4390: 4604 mov r4, r0 LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 4392: 4798 blx r3 4394: 4605 mov r5, r0 4396: b968 cbnz r0, 43b4 4398: 4b19 ldr r3, [pc, #100] ; (4400 ) 439a: 491a ldr r1, [pc, #104] ; (4404 ) 439c: 9300 str r3, [sp, #0] 439e: f240 1293 movw r2, #403 ; 0x193 43a2: 2003 movs r0, #3 43a4: 4e18 ldr r6, [pc, #96] ; (4408 ) 43a6: 47b0 blx r6 43a8: 4818 ldr r0, [pc, #96] ; (440c ) 43aa: 4919 ldr r1, [pc, #100] ; (4410 ) 43ac: 4622 mov r2, r4 43ae: 462b mov r3, r5 43b0: 4788 blx r1 43b2: e7fe b.n 43b2 lv_obj_invalidate(obj); 43b4: 4b17 ldr r3, [pc, #92] ; (4414 ) 43b6: 4620 mov r0, r4 43b8: 4798 blx r3 lv_obj_t * par = lv_obj_get_parent(obj); 43ba: 4b17 ldr r3, [pc, #92] ; (4418 ) 43bc: 4620 mov r0, r4 43be: 4798 blx r3 if(par == NULL) { 43c0: 4606 mov r6, r0 43c2: b9b8 cbnz r0, 43f4 disp = lv_obj_get_disp(obj); 43c4: 4b15 ldr r3, [pc, #84] ; (441c ) 43c6: 4620 mov r0, r4 43c8: 4798 blx r3 if(!disp) return LV_RES_INV; /*Shouldn't happen*/ 43ca: 4605 mov r5, r0 43cc: b178 cbz r0, 43ee if(disp->act_scr == obj) act_scr_del = true; 43ce: 6bc7 ldr r7, [r0, #60] ; 0x3c 43d0: 1b3b subs r3, r7, r4 43d2: 425f negs r7, r3 43d4: 415f adcs r7, r3 obj_del_core(obj); 43d6: 4b12 ldr r3, [pc, #72] ; (4420 ) 43d8: 4620 mov r0, r4 43da: 4798 blx r3 if(par) { 43dc: b126 cbz r6, 43e8 par->signal_cb(par, LV_SIGNAL_CHILD_CHG, NULL); 43de: 69f3 ldr r3, [r6, #28] 43e0: 2200 movs r2, #0 43e2: 2101 movs r1, #1 43e4: 4630 mov r0, r6 43e6: 4798 blx r3 if(act_scr_del) { 43e8: b10f cbz r7, 43ee disp->act_scr = NULL; 43ea: 2300 movs r3, #0 43ec: 63eb str r3, [r5, #60] ; 0x3c } 43ee: 2000 movs r0, #0 43f0: b003 add sp, #12 43f2: bdf0 pop {r4, r5, r6, r7, pc} bool act_scr_del = false; 43f4: 2700 movs r7, #0 lv_disp_t * disp = NULL; 43f6: 463d mov r5, r7 43f8: e7ed b.n 43d6 43fa: bf00 nop 43fc: 00001a0d .word 0x00001a0d 4400: 0002709b .word 0x0002709b 4404: 000267db .word 0x000267db 4408: 0000eb21 .word 0x0000eb21 440c: 0002683f .word 0x0002683f 4410: 00001a15 .word 0x00001a15 4414: 000029b1 .word 0x000029b1 4418: 00002351 .word 0x00002351 441c: 000023f1 .word 0x000023f1 4420: 00004265 .word 0x00004265 00004424 : { 4424: b573 push {r0, r1, r4, r5, r6, lr} LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 4426: 4b0e ldr r3, [pc, #56] ; (4460 ) { 4428: 4604 mov r4, r0 LV_ASSERT_OBJ(obj, LV_OBJX_NAME); 442a: 4798 blx r3 442c: 4605 mov r5, r0 442e: b968 cbnz r0, 444c 4430: 4b0c ldr r3, [pc, #48] ; (4464 ) 4432: 490d ldr r1, [pc, #52] ; (4468 ) 4434: 9300 str r3, [sp, #0] 4436: f44f 6238 mov.w r2, #2944 ; 0xb80 443a: 2003 movs r0, #3 443c: 4e0b ldr r6, [pc, #44] ; (446c ) 443e: 47b0 blx r6 4440: 480b ldr r0, [pc, #44] ; (4470 ) 4442: 490c ldr r1, [pc, #48] ; (4474 ) 4444: 4622 mov r2, r4 4446: 462b mov r3, r5 4448: 4788 blx r1 444a: e7fe b.n 444a if(obj->group_p) { 444c: 6ba0 ldr r0, [r4, #56] ; 0x38 444e: b120 cbz r0, 445a if(lv_group_get_focused(obj->group_p) == obj) return true; 4450: 4b09 ldr r3, [pc, #36] ; (4478 ) 4452: 4798 blx r3 4454: 1a23 subs r3, r4, r0 4456: 4258 negs r0, r3 4458: 4158 adcs r0, r3 } 445a: b002 add sp, #8 445c: bd70 pop {r4, r5, r6, pc} 445e: bf00 nop 4460: 00001a0d .word 0x00001a0d 4464: 000270c7 .word 0x000270c7 4468: 000267db .word 0x000267db 446c: 0000eb21 .word 0x0000eb21 4470: 0002683f .word 0x0002683f 4474: 00001a15 .word 0x00001a15 4478: 00001e3d .word 0x00001e3d 0000447c : { 447c: b507 push {r0, r1, r2, lr} ext_area.x1 = obj->coords.x1 - obj->ext_click_pad_hor; 447e: 8a02 ldrh r2, [r0, #16] 4480: f890 3030 ldrb.w r3, [r0, #48] ; 0x30 4484: 1ad2 subs r2, r2, r3 4486: f8ad 2000 strh.w r2, [sp] ext_area.x2 = obj->coords.x2 + obj->ext_click_pad_hor; 448a: 8a82 ldrh r2, [r0, #20] 448c: 4413 add r3, r2 448e: f8ad 3004 strh.w r3, [sp, #4] ext_area.y1 = obj->coords.y1 - obj->ext_click_pad_ver; 4492: 8a42 ldrh r2, [r0, #18] 4494: f890 3031 ldrb.w r3, [r0, #49] ; 0x31 4498: 1ad2 subs r2, r2, r3 449a: f8ad 2002 strh.w r2, [sp, #2] ext_area.y2 = obj->coords.y2 + obj->ext_click_pad_ver; 449e: 8ac2 ldrh r2, [r0, #22] 44a0: 4413 add r3, r2 44a2: f8ad 3006 strh.w r3, [sp, #6] if(!_lv_area_is_point_on(&ext_area, point, 0)) { 44a6: 2200 movs r2, #0 44a8: 4b02 ldr r3, [pc, #8] ; (44b4 ) 44aa: 4668 mov r0, sp 44ac: 4798 blx r3 } 44ae: b003 add sp, #12 44b0: f85d fb04 ldr.w pc, [sp], #4 44b4: 0000e151 .word 0x0000e151 000044b8 : { 44b8: b510 push {r4, lr} 44ba: 2300 movs r3, #0 if(buf->type[i] == NULL) break; 44bc: f850 4023 ldr.w r4, [r0, r3, lsl #2] 44c0: b2da uxtb r2, r3 44c2: b11c cbz r4, 44cc for(i = 0; i < LV_MAX_ANCESTOR_NUM - 1; i++) { /*Find the last set data*/ 44c4: 3301 adds r3, #1 44c6: 2b07 cmp r3, #7 44c8: d1f8 bne.n 44bc 44ca: 461a mov r2, r3 buf->type[i] = name; 44cc: f840 1022 str.w r1, [r0, r2, lsl #2] } 44d0: 2001 movs r0, #1 44d2: bd10 pop {r4, pc} 000044d4 : { 44d4: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} 44d8: 4614 mov r4, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar) 44da: 4fb6 ldr r7, [pc, #728] ; (47b4 ) _LV_OBJ_STYLE_SET_GET_DECLARE(OPA_SCALE, opa_scale, lv_opa_t, _opa, scalar) 44dc: f8df 82e0 ldr.w r8, [pc, #736] ; 47c0 _LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar) 44e0: 2201 movs r2, #1 44e2: 4605 mov r5, r0 44e4: 460e mov r6, r1 44e6: 47b8 blx r7 _LV_OBJ_STYLE_SET_GET_DECLARE(OPA_SCALE, opa_scale, lv_opa_t, _opa, scalar) 44e8: f248 020c movw r2, #32780 ; 0x800c draw_dsc->radius = lv_obj_get_style_radius(obj, part); 44ec: 8020 strh r0, [r4, #0] 44ee: 4631 mov r1, r6 44f0: 4628 mov r0, r5 44f2: 47c0 blx r8 if(opa_scale <= LV_OPA_MIN) { 44f4: 2805 cmp r0, #5 44f6: 4681 mov r9, r0 44f8: d80a bhi.n 4510 draw_dsc->bg_opa = LV_OPA_TRANSP; 44fa: 2300 movs r3, #0 44fc: 7323 strb r3, [r4, #12] draw_dsc->border_opa = LV_OPA_TRANSP; 44fe: 7523 strb r3, [r4, #20] draw_dsc->shadow_opa = LV_OPA_TRANSP; 4500: f884 3028 strb.w r3, [r4, #40] ; 0x28 draw_dsc->pattern_opa = LV_OPA_TRANSP; 4504: f884 3036 strb.w r3, [r4, #54] ; 0x36 draw_dsc->value_opa = (uint16_t)((uint16_t)draw_dsc->value_opa * opa_scale) >> 8; 4508: f884 3044 strb.w r3, [r4, #68] ; 0x44 } 450c: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} if(draw_dsc->bg_opa != LV_OPA_TRANSP) { 4510: 7b23 ldrb r3, [r4, #12] 4512: b343 cbz r3, 4566 _LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar) 4514: 222c movs r2, #44 ; 0x2c 4516: 4631 mov r1, r6 4518: 4628 mov r0, r5 451a: 47c0 blx r8 if(draw_dsc->bg_opa > LV_OPA_MIN) { 451c: 2805 cmp r0, #5 draw_dsc->bg_opa = lv_obj_get_style_bg_opa(obj, part); 451e: 7320 strb r0, [r4, #12] if(draw_dsc->bg_opa > LV_OPA_MIN) { 4520: d921 bls.n 4566 _LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar) 4522: 2229 movs r2, #41 ; 0x29 4524: 4631 mov r1, r6 4526: f8df a290 ldr.w sl, [pc, #656] ; 47b8 452a: 4628 mov r0, r5 452c: 47d0 blx sl _LV_OBJ_STYLE_SET_GET_DECLARE(BG_GRAD_DIR, bg_grad_dir, lv_grad_dir_t, _int, scalar) 452e: 2223 movs r2, #35 ; 0x23 draw_dsc->bg_color = lv_obj_get_style_bg_color(obj, part); 4530: 8060 strh r0, [r4, #2] 4532: 4631 mov r1, r6 4534: 4628 mov r0, r5 4536: 47b8 blx r7 4538: b2c0 uxtb r0, r0 draw_dsc->bg_grad_dir = lv_obj_get_style_bg_grad_dir(obj, part); 453a: 71a0 strb r0, [r4, #6] if(draw_dsc->bg_grad_dir != LV_GRAD_DIR_NONE) { 453c: b170 cbz r0, 455c _LV_OBJ_STYLE_SET_GET_DECLARE(BG_GRAD_COLOR, bg_grad_color, lv_color_t, _color, nonscalar) 453e: 222a movs r2, #42 ; 0x2a 4540: 4631 mov r1, r6 4542: 4628 mov r0, r5 4544: 47d0 blx sl _LV_OBJ_STYLE_SET_GET_DECLARE(BG_MAIN_STOP, bg_main_stop, lv_style_int_t, _int, scalar) 4546: 2221 movs r2, #33 ; 0x21 draw_dsc->bg_grad_color = lv_obj_get_style_bg_grad_color(obj, part); 4548: 80a0 strh r0, [r4, #4] 454a: 4631 mov r1, r6 454c: 4628 mov r0, r5 454e: 47b8 blx r7 _LV_OBJ_STYLE_SET_GET_DECLARE(BG_GRAD_STOP, bg_grad_stop, lv_style_int_t, _int, scalar) 4550: 2222 movs r2, #34 ; 0x22 draw_dsc->bg_main_color_stop = lv_obj_get_style_bg_main_stop(obj, part); 4552: 8120 strh r0, [r4, #8] 4554: 4631 mov r1, r6 4556: 4628 mov r0, r5 4558: 47b8 blx r7 draw_dsc->bg_grad_color_stop = lv_obj_get_style_bg_grad_stop(obj, part); 455a: 8160 strh r0, [r4, #10] _LV_OBJ_STYLE_SET_GET_DECLARE(BG_BLEND_MODE, bg_blend_mode, lv_blend_mode_t, _int, scalar) 455c: 2220 movs r2, #32 455e: 4631 mov r1, r6 4560: 4628 mov r0, r5 4562: 47b8 blx r7 4564: 7360 strb r0, [r4, #13] if(draw_dsc->border_opa != LV_OPA_TRANSP) { 4566: 7d23 ldrb r3, [r4, #20] 4568: b1eb cbz r3, 45a6 _LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar) 456a: 2230 movs r2, #48 ; 0x30 456c: 4631 mov r1, r6 456e: 4628 mov r0, r5 4570: 47b8 blx r7 draw_dsc->border_width = lv_obj_get_style_border_width(obj, part); 4572: 8220 strh r0, [r4, #16] if(draw_dsc->border_width) { 4574: b1b8 cbz r0, 45a6 _LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_OPA, border_opa, lv_opa_t, _opa, scalar) 4576: 223c movs r2, #60 ; 0x3c 4578: 4631 mov r1, r6 457a: 4628 mov r0, r5 457c: 47c0 blx r8 if(draw_dsc->border_opa > LV_OPA_MIN) { 457e: 2805 cmp r0, #5 draw_dsc->border_opa = lv_obj_get_style_border_opa(obj, part); 4580: 7520 strb r0, [r4, #20] if(draw_dsc->border_opa > LV_OPA_MIN) { 4582: d90b bls.n 459c _LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_SIDE, border_side, lv_border_side_t, _int, scalar) 4584: 2231 movs r2, #49 ; 0x31 4586: 4631 mov r1, r6 4588: 4628 mov r0, r5 458a: 47b8 blx r7 draw_dsc->border_side = lv_obj_get_style_border_side(obj, part); 458c: b2c0 uxtb r0, r0 458e: 8260 strh r0, [r4, #18] _LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar) 4590: 4b89 ldr r3, [pc, #548] ; (47b8 ) 4592: 2239 movs r2, #57 ; 0x39 4594: 4631 mov r1, r6 4596: 4628 mov r0, r5 4598: 4798 blx r3 draw_dsc->border_color = lv_obj_get_style_border_color(obj, part); 459a: 81e0 strh r0, [r4, #14] _LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_BLEND_MODE, border_blend_mode, lv_blend_mode_t, _int, scalar) 459c: 2232 movs r2, #50 ; 0x32 459e: 4631 mov r1, r6 45a0: 4628 mov r0, r5 45a2: 47b8 blx r7 45a4: 7560 strb r0, [r4, #21] if(draw_dsc->outline_opa != LV_OPA_TRANSP) { 45a6: 7f23 ldrb r3, [r4, #28] 45a8: b1e3 cbz r3, 45e4 _LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_WIDTH, outline_width, lv_style_int_t, _int, scalar) 45aa: 2240 movs r2, #64 ; 0x40 45ac: 4631 mov r1, r6 45ae: 4628 mov r0, r5 45b0: 47b8 blx r7 draw_dsc->outline_width = lv_obj_get_style_outline_width(obj, part); 45b2: 8320 strh r0, [r4, #24] if(draw_dsc->outline_width) { 45b4: b1b0 cbz r0, 45e4 _LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_OPA, outline_opa, lv_opa_t, _opa, scalar) 45b6: 224c movs r2, #76 ; 0x4c 45b8: 4631 mov r1, r6 45ba: 4628 mov r0, r5 45bc: 47c0 blx r8 if(draw_dsc->outline_opa > LV_OPA_MIN) { 45be: 2805 cmp r0, #5 draw_dsc->outline_opa = lv_obj_get_style_outline_opa(obj, part); 45c0: 7720 strb r0, [r4, #28] if(draw_dsc->outline_opa > LV_OPA_MIN) { 45c2: d90a bls.n 45da _LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_PAD, outline_pad, lv_style_int_t, _int, scalar) 45c4: 2241 movs r2, #65 ; 0x41 45c6: 4631 mov r1, r6 45c8: 4628 mov r0, r5 45ca: 47b8 blx r7 _LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_COLOR, outline_color, lv_color_t, _color, nonscalar) 45cc: 4b7a ldr r3, [pc, #488] ; (47b8 ) draw_dsc->outline_pad = lv_obj_get_style_outline_pad(obj, part); 45ce: 8360 strh r0, [r4, #26] 45d0: 2249 movs r2, #73 ; 0x49 45d2: 4631 mov r1, r6 45d4: 4628 mov r0, r5 45d6: 4798 blx r3 draw_dsc->outline_color = lv_obj_get_style_outline_color(obj, part); 45d8: 82e0 strh r0, [r4, #22] _LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_BLEND_MODE, outline_blend_mode, lv_blend_mode_t, _int, scalar) 45da: 2242 movs r2, #66 ; 0x42 45dc: 4631 mov r1, r6 45de: 4628 mov r0, r5 45e0: 47b8 blx r7 45e2: 7760 strb r0, [r4, #29] if(draw_dsc->pattern_opa != LV_OPA_TRANSP) { 45e4: f894 3036 ldrb.w r3, [r4, #54] ; 0x36 45e8: 2b00 cmp r3, #0 45ea: d03b beq.n 4664 _LV_OBJ_STYLE_SET_GET_DECLARE(PATTERN_IMAGE, pattern_image, const void *, _ptr, scalar) 45ec: f8df a1d4 ldr.w sl, [pc, #468] ; 47c4 45f0: 226e movs r2, #110 ; 0x6e 45f2: 4631 mov r1, r6 45f4: 4628 mov r0, r5 45f6: 47d0 blx sl draw_dsc->pattern_image = lv_obj_get_style_pattern_image(obj, part); 45f8: 62e0 str r0, [r4, #44] ; 0x2c if(draw_dsc->pattern_image) { 45fa: 2800 cmp r0, #0 45fc: d032 beq.n 4664 _LV_OBJ_STYLE_SET_GET_DECLARE(PATTERN_OPA, pattern_opa, lv_opa_t, _opa, scalar) 45fe: 226c movs r2, #108 ; 0x6c 4600: 4631 mov r1, r6 4602: 4628 mov r0, r5 4604: 47c0 blx r8 if(draw_dsc->pattern_opa > LV_OPA_MIN) { 4606: 2805 cmp r0, #5 draw_dsc->pattern_opa = lv_obj_get_style_pattern_opa(obj, part); 4608: f884 0036 strb.w r0, [r4, #54] ; 0x36 if(draw_dsc->pattern_opa > LV_OPA_MIN) { 460c: d92a bls.n 4664 _LV_OBJ_STYLE_SET_GET_DECLARE(PATTERN_RECOLOR_OPA, pattern_recolor_opa, lv_opa_t, _opa, scalar) 460e: 226d movs r2, #109 ; 0x6d 4610: 4631 mov r1, r6 4612: 4628 mov r0, r5 4614: 47c0 blx r8 _LV_OBJ_STYLE_SET_GET_DECLARE(PATTERN_REPEAT, pattern_repeat, bool, _int, scalar) 4616: 2261 movs r2, #97 ; 0x61 draw_dsc->pattern_recolor_opa = lv_obj_get_style_pattern_recolor_opa(obj, part); 4618: f884 0037 strb.w r0, [r4, #55] ; 0x37 461c: 4631 mov r1, r6 461e: 4628 mov r0, r5 4620: 47b8 blx r7 draw_dsc->pattern_repeat = lv_obj_get_style_pattern_repeat(obj, part); 4622: f894 3038 ldrb.w r3, [r4, #56] ; 0x38 4626: 3800 subs r0, #0 4628: bf18 it ne 462a: 2001 movne r0, #1 462c: f360 0300 bfi r3, r0, #0, #1 4630: f884 3038 strb.w r3, [r4, #56] ; 0x38 if(lv_img_src_get_type(draw_dsc->pattern_image) == LV_IMG_SRC_SYMBOL) { 4634: 6ae0 ldr r0, [r4, #44] ; 0x2c 4636: 4b61 ldr r3, [pc, #388] ; (47bc ) 4638: 4798 blx r3 463a: 2802 cmp r0, #2 463c: f040 80ad bne.w 479a _LV_OBJ_STYLE_SET_GET_DECLARE(PATTERN_RECOLOR, pattern_recolor, lv_color_t, _color, nonscalar) 4640: 4b5d ldr r3, [pc, #372] ; (47b8 ) 4642: 2269 movs r2, #105 ; 0x69 4644: 4631 mov r1, r6 4646: 4628 mov r0, r5 4648: 4798 blx r3 _LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar) 464a: f248 028e movw r2, #32910 ; 0x808e draw_dsc->pattern_recolor = lv_obj_get_style_pattern_recolor(obj, part); 464e: 86a0 strh r0, [r4, #52] ; 0x34 4650: 4631 mov r1, r6 4652: 4628 mov r0, r5 4654: 47d0 blx sl draw_dsc->pattern_font = lv_obj_get_style_text_font(obj, part); 4656: 6320 str r0, [r4, #48] ; 0x30 _LV_OBJ_STYLE_SET_GET_DECLARE(PATTERN_BLEND_MODE, pattern_blend_mode, lv_blend_mode_t, _int, scalar) 4658: 2260 movs r2, #96 ; 0x60 465a: 4631 mov r1, r6 465c: 4628 mov r0, r5 465e: 47b8 blx r7 4660: f884 0039 strb.w r0, [r4, #57] ; 0x39 if(draw_dsc->shadow_opa > LV_OPA_MIN) { 4664: f894 3028 ldrb.w r3, [r4, #40] ; 0x28 4668: 2b05 cmp r3, #5 466a: d928 bls.n 46be _LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_WIDTH, shadow_width, lv_style_int_t, _int, scalar) 466c: 2250 movs r2, #80 ; 0x50 466e: 4631 mov r1, r6 4670: 4628 mov r0, r5 4672: 47b8 blx r7 draw_dsc->shadow_width = lv_obj_get_style_shadow_width(obj, part); 4674: 8420 strh r0, [r4, #32] if(draw_dsc->shadow_width) { 4676: b310 cbz r0, 46be _LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_OPA, shadow_opa, lv_opa_t, _opa, scalar) 4678: 225c movs r2, #92 ; 0x5c 467a: 4631 mov r1, r6 467c: 4628 mov r0, r5 467e: 47c0 blx r8 if(draw_dsc->shadow_opa > LV_OPA_MIN) { 4680: 2805 cmp r0, #5 draw_dsc->shadow_opa = lv_obj_get_style_shadow_opa(obj, part); 4682: f884 0028 strb.w r0, [r4, #40] ; 0x28 if(draw_dsc->shadow_opa > LV_OPA_MIN) { 4686: d91a bls.n 46be _LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_OFS_X, shadow_ofs_x, lv_style_int_t, _int, scalar) 4688: 2251 movs r2, #81 ; 0x51 468a: 4631 mov r1, r6 468c: 4628 mov r0, r5 468e: 47b8 blx r7 _LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_OFS_Y, shadow_ofs_y, lv_style_int_t, _int, scalar) 4690: 2252 movs r2, #82 ; 0x52 draw_dsc->shadow_ofs_x = lv_obj_get_style_shadow_ofs_x(obj, part); 4692: 8460 strh r0, [r4, #34] ; 0x22 4694: 4631 mov r1, r6 4696: 4628 mov r0, r5 4698: 47b8 blx r7 _LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_SPREAD, shadow_spread, lv_style_int_t, _int, scalar) 469a: 2253 movs r2, #83 ; 0x53 draw_dsc->shadow_ofs_y = lv_obj_get_style_shadow_ofs_y(obj, part); 469c: 84a0 strh r0, [r4, #36] ; 0x24 469e: 4631 mov r1, r6 46a0: 4628 mov r0, r5 46a2: 47b8 blx r7 _LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_COLOR, shadow_color, lv_color_t, _color, nonscalar) 46a4: 4b44 ldr r3, [pc, #272] ; (47b8 ) draw_dsc->shadow_spread = lv_obj_get_style_shadow_spread(obj, part); 46a6: 84e0 strh r0, [r4, #38] ; 0x26 46a8: 2259 movs r2, #89 ; 0x59 46aa: 4631 mov r1, r6 46ac: 4628 mov r0, r5 46ae: 4798 blx r3 _LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_BLEND_MODE, shadow_blend_mode, lv_blend_mode_t, _int, scalar) 46b0: 2254 movs r2, #84 ; 0x54 draw_dsc->shadow_color = lv_obj_get_style_shadow_color(obj, part); 46b2: 83e0 strh r0, [r4, #30] 46b4: 4631 mov r1, r6 46b6: 4628 mov r0, r5 46b8: 47b8 blx r7 46ba: f884 0029 strb.w r0, [r4, #41] ; 0x29 if(draw_dsc->value_opa > LV_OPA_MIN) { 46be: f894 3044 ldrb.w r3, [r4, #68] ; 0x44 46c2: 2b05 cmp r3, #5 46c4: d940 bls.n 4748 _LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_STR, value_str, const char *, _ptr, scalar) 46c6: f8df a0fc ldr.w sl, [pc, #252] ; 47c4 46ca: 227f movs r2, #127 ; 0x7f 46cc: 4631 mov r1, r6 46ce: 4628 mov r0, r5 46d0: 47d0 blx sl draw_dsc->value_str = lv_obj_get_style_value_str(obj, part); 46d2: 63e0 str r0, [r4, #60] ; 0x3c if(draw_dsc->value_str) { 46d4: 2800 cmp r0, #0 46d6: d037 beq.n 4748 _LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_OPA, value_opa, lv_opa_t, _opa, scalar) 46d8: 227c movs r2, #124 ; 0x7c 46da: 4631 mov r1, r6 46dc: 4628 mov r0, r5 46de: 47c0 blx r8 if(draw_dsc->value_opa > LV_OPA_MIN) { 46e0: 2805 cmp r0, #5 draw_dsc->value_opa = lv_obj_get_style_value_opa(obj, part); 46e2: f884 0044 strb.w r0, [r4, #68] ; 0x44 if(draw_dsc->value_opa > LV_OPA_MIN) { 46e6: d92f bls.n 4748 _LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_OFS_X, value_ofs_x, lv_style_int_t, _int, scalar) 46e8: 2273 movs r2, #115 ; 0x73 46ea: 4631 mov r1, r6 46ec: 4628 mov r0, r5 46ee: 47b8 blx r7 _LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_OFS_Y, value_ofs_y, lv_style_int_t, _int, scalar) 46f0: 2274 movs r2, #116 ; 0x74 draw_dsc->value_ofs_x = lv_obj_get_style_value_ofs_x(obj, part); 46f2: f8a4 0048 strh.w r0, [r4, #72] ; 0x48 46f6: 4631 mov r1, r6 46f8: 4628 mov r0, r5 46fa: 47b8 blx r7 _LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_COLOR, value_color, lv_color_t, _color, nonscalar) 46fc: 4b2e ldr r3, [pc, #184] ; (47b8 ) draw_dsc->value_ofs_y = lv_obj_get_style_value_ofs_y(obj, part); 46fe: f8a4 004a strh.w r0, [r4, #74] ; 0x4a 4702: 2279 movs r2, #121 ; 0x79 4704: 4631 mov r1, r6 4706: 4628 mov r0, r5 4708: 4798 blx r3 _LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_FONT, value_font, const lv_font_t *, _ptr, scalar) 470a: 227e movs r2, #126 ; 0x7e draw_dsc->value_color = lv_obj_get_style_value_color(obj, part); 470c: f8a4 0046 strh.w r0, [r4, #70] ; 0x46 4710: 4631 mov r1, r6 4712: 4628 mov r0, r5 4714: 47d0 blx sl _LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_LETTER_SPACE, value_letter_space, lv_style_int_t, _int, scalar) 4716: 2270 movs r2, #112 ; 0x70 draw_dsc->value_font = lv_obj_get_style_value_font(obj, part); 4718: 6420 str r0, [r4, #64] ; 0x40 471a: 4631 mov r1, r6 471c: 4628 mov r0, r5 471e: 47b8 blx r7 _LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_LINE_SPACE, value_line_space, lv_style_int_t, _int, scalar) 4720: 2271 movs r2, #113 ; 0x71 draw_dsc->value_letter_space = lv_obj_get_style_value_letter_space(obj, part); 4722: f8a4 004c strh.w r0, [r4, #76] ; 0x4c 4726: 4631 mov r1, r6 4728: 4628 mov r0, r5 472a: 47b8 blx r7 _LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_ALIGN, value_align, lv_align_t, _int, scalar) 472c: 2275 movs r2, #117 ; 0x75 draw_dsc->value_line_space = lv_obj_get_style_value_line_space(obj, part); 472e: f8a4 004e strh.w r0, [r4, #78] ; 0x4e 4732: 4631 mov r1, r6 4734: 4628 mov r0, r5 4736: 47b8 blx r7 _LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_BLEND_MODE, value_blend_mode, lv_blend_mode_t, _int, scalar) 4738: 2272 movs r2, #114 ; 0x72 _LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_ALIGN, value_align, lv_align_t, _int, scalar) 473a: 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) 473e: 4631 mov r1, r6 4740: 4628 mov r0, r5 4742: 47b8 blx r7 4744: f884 0051 strb.w r0, [r4, #81] ; 0x51 if(opa_scale < LV_OPA_MAX) { 4748: f1b9 0ff9 cmp.w r9, #249 ; 0xf9 474c: f63f aede bhi.w 450c draw_dsc->bg_opa = (uint16_t)((uint16_t)draw_dsc->bg_opa * opa_scale) >> 8; 4750: 7b23 ldrb r3, [r4, #12] 4752: fa1f f089 uxth.w r0, r9 4756: fb13 f300 smulbb r3, r3, r0 475a: f3c3 2307 ubfx r3, r3, #8, #8 475e: 7323 strb r3, [r4, #12] draw_dsc->border_opa = (uint16_t)((uint16_t)draw_dsc->border_opa * opa_scale) >> 8; 4760: 7d23 ldrb r3, [r4, #20] 4762: fb13 f300 smulbb r3, r3, r0 4766: f3c3 2307 ubfx r3, r3, #8, #8 476a: 7523 strb r3, [r4, #20] draw_dsc->shadow_opa = (uint16_t)((uint16_t)draw_dsc->shadow_opa * opa_scale) >> 8; 476c: f894 3028 ldrb.w r3, [r4, #40] ; 0x28 4770: fb13 f300 smulbb r3, r3, r0 4774: f3c3 2307 ubfx r3, r3, #8, #8 4778: f884 3028 strb.w r3, [r4, #40] ; 0x28 draw_dsc->pattern_opa = (uint16_t)((uint16_t)draw_dsc->pattern_opa * opa_scale) >> 8; 477c: f894 3036 ldrb.w r3, [r4, #54] ; 0x36 4780: fb13 f300 smulbb r3, r3, r0 4784: f3c3 2307 ubfx r3, r3, #8, #8 4788: f884 3036 strb.w r3, [r4, #54] ; 0x36 draw_dsc->value_opa = (uint16_t)((uint16_t)draw_dsc->value_opa * opa_scale) >> 8; 478c: f894 3044 ldrb.w r3, [r4, #68] ; 0x44 4790: fb13 f300 smulbb r3, r3, r0 4794: f3c3 2307 ubfx r3, r3, #8, #8 4798: e6b6 b.n 4508 else if(draw_dsc->pattern_recolor_opa > LV_OPA_MIN) { 479a: f894 3037 ldrb.w r3, [r4, #55] ; 0x37 479e: 2b05 cmp r3, #5 47a0: f67f af5a bls.w 4658 _LV_OBJ_STYLE_SET_GET_DECLARE(PATTERN_RECOLOR, pattern_recolor, lv_color_t, _color, nonscalar) 47a4: 4b04 ldr r3, [pc, #16] ; (47b8 ) 47a6: 2269 movs r2, #105 ; 0x69 47a8: 4631 mov r1, r6 47aa: 4628 mov r0, r5 47ac: 4798 blx r3 draw_dsc->pattern_recolor = lv_obj_get_style_pattern_recolor(obj, part); 47ae: 86a0 strh r0, [r4, #52] ; 0x34 47b0: e752 b.n 4658 47b2: bf00 nop 47b4: 0000393d .word 0x0000393d 47b8: 000039e1 .word 0x000039e1 47bc: 00007a31 .word 0x00007a31 47c0: 00003a65 .word 0x00003a65 47c4: 00003af5 .word 0x00003af5 000047c8 : { 47c8: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} if(mode == LV_DESIGN_COVER_CHK) { 47cc: 2a02 cmp r2, #2 { 47ce: b099 sub sp, #100 ; 0x64 47d0: 4604 mov r4, r0 47d2: 460f mov r7, r1 47d4: 4615 mov r5, r2 if(mode == LV_DESIGN_COVER_CHK) { 47d6: d159 bne.n 488c _LV_OBJ_STYLE_SET_GET_DECLARE(CLIP_CORNER, clip_corner, bool, _int, scalar) 47d8: f8df 9230 ldr.w r9, [pc, #560] ; 4a0c 47dc: 2100 movs r1, #0 47de: 47c8 blx r9 if(lv_obj_get_style_clip_corner(obj, LV_OBJ_PART_MAIN)) return LV_DESIGN_RES_MASKED; 47e0: 4606 mov r6, r0 47e2: 2800 cmp r0, #0 47e4: d150 bne.n 4888 _LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar) 47e6: 4601 mov r1, r0 47e8: 2201 movs r2, #1 47ea: 4620 mov r0, r4 47ec: 47c8 blx r9 _LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_WIDTH, transform_width, lv_style_int_t, _int, scalar) 47ee: 2204 movs r2, #4 _LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar) 47f0: 4682 mov sl, r0 _LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_WIDTH, transform_width, lv_style_int_t, _int, scalar) 47f2: 4631 mov r1, r6 47f4: 4620 mov r0, r4 47f6: 47c8 blx r9 _LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_HEIGHT, transform_height, lv_style_int_t, _int, scalar) 47f8: 2205 movs r2, #5 _LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_WIDTH, transform_width, lv_style_int_t, _int, scalar) 47fa: 4683 mov fp, r0 _LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_HEIGHT, transform_height, lv_style_int_t, _int, scalar) 47fc: 4631 mov r1, r6 47fe: 4620 mov r0, r4 4800: 47c8 blx r9 lv_area_copy(&coords, &obj->coords); 4802: 4b77 ldr r3, [pc, #476] ; (49e0 ) 4804: 4680 mov r8, r0 4806: f104 0110 add.w r1, r4, #16 480a: a803 add r0, sp, #12 480c: 4798 blx r3 coords.x1 -= w; 480e: f8bd 300c ldrh.w r3, [sp, #12] coords.y1 -= h; 4812: f8bd 200e ldrh.w r2, [sp, #14] coords.x1 -= w; 4816: fa1f f08b uxth.w r0, fp 481a: 1a1b subs r3, r3, r0 481c: f8ad 300c strh.w r3, [sp, #12] coords.x2 += w; 4820: f8bd 3010 ldrh.w r3, [sp, #16] 4824: 4418 add r0, r3 coords.y1 -= h; 4826: fa1f f388 uxth.w r3, r8 482a: 1ad2 subs r2, r2, r3 482c: f8ad 200e strh.w r2, [sp, #14] coords.y2 += h; 4830: f8bd 2012 ldrh.w r2, [sp, #18] coords.x2 += w; 4834: f8ad 0010 strh.w r0, [sp, #16] coords.y2 += h; 4838: 4413 add r3, r2 483a: f8ad 3012 strh.w r3, [sp, #18] if(_lv_area_is_in(clip_area, &coords, r) == false) return LV_DESIGN_RES_NOT_COVER; 483e: 4652 mov r2, sl 4840: 4b68 ldr r3, [pc, #416] ; (49e4 ) 4842: a903 add r1, sp, #12 4844: 4638 mov r0, r7 4846: 4798 blx r3 4848: b1d0 cbz r0, 4880 _LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar) 484a: 4f67 ldr r7, [pc, #412] ; (49e8 ) 484c: 222c movs r2, #44 ; 0x2c 484e: 4631 mov r1, r6 4850: 4620 mov r0, r4 4852: 47b8 blx r7 if(lv_obj_get_style_bg_opa(obj, LV_OBJ_PART_MAIN) < LV_OPA_MAX) return LV_DESIGN_RES_NOT_COVER; 4854: 28f9 cmp r0, #249 ; 0xf9 4856: d913 bls.n 4880 _LV_OBJ_STYLE_SET_GET_DECLARE(BG_BLEND_MODE, bg_blend_mode, lv_blend_mode_t, _int, scalar) 4858: 4631 mov r1, r6 485a: 2220 movs r2, #32 485c: 4620 mov r0, r4 485e: 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; 4860: f010 01ff ands.w r1, r0, #255 ; 0xff 4864: d10c bne.n 4880 _LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_BLEND_MODE, border_blend_mode, lv_blend_mode_t, _int, scalar) 4866: 2232 movs r2, #50 ; 0x32 4868: 4620 mov r0, r4 486a: 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; 486c: f010 01ff ands.w r1, r0, #255 ; 0xff 4870: d106 bne.n 4880 _LV_OBJ_STYLE_SET_GET_DECLARE(OPA_SCALE, opa_scale, lv_opa_t, _opa, scalar) 4872: f248 020c movw r2, #32780 ; 0x800c 4876: 4620 mov r0, r4 4878: 47b8 blx r7 return LV_DESIGN_RES_COVER; 487a: 28f9 cmp r0, #249 ; 0xf9 487c: bf88 it hi 487e: 2501 movhi r5, #1 } 4880: 4628 mov r0, r5 4882: b019 add sp, #100 ; 0x64 4884: 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; 4888: 2503 movs r5, #3 488a: e7f9 b.n 4880 else if(mode == LV_DESIGN_DRAW_MAIN) { 488c: 2a00 cmp r2, #0 488e: d156 bne.n 493e lv_draw_rect_dsc_init(&draw_dsc); 4890: a803 add r0, sp, #12 4892: 4b56 ldr r3, [pc, #344] ; (49ec ) _LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_POST, border_post, bool, _int, scalar) 4894: f8df 8174 ldr.w r8, [pc, #372] ; 4a0c 4898: 4798 blx r3 489a: 2233 movs r2, #51 ; 0x33 489c: 4629 mov r1, r5 489e: 4620 mov r0, r4 48a0: 47c0 blx r8 if(lv_obj_get_style_border_post(obj, LV_OBJ_PART_MAIN)) { 48a2: b108 cbz r0, 48a8 draw_dsc.border_opa = LV_OPA_TRANSP; 48a4: f88d 5020 strb.w r5, [sp, #32] lv_obj_init_draw_rect_dsc(obj, LV_OBJ_PART_MAIN, &draw_dsc); 48a8: 4b51 ldr r3, [pc, #324] ; (49f0 ) 48aa: aa03 add r2, sp, #12 48ac: 2100 movs r1, #0 48ae: 4620 mov r0, r4 48b0: 4798 blx r3 _LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_WIDTH, transform_width, lv_style_int_t, _int, scalar) 48b2: 2204 movs r2, #4 48b4: 2100 movs r1, #0 48b6: 4620 mov r0, r4 48b8: 47c0 blx r8 _LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_HEIGHT, transform_height, lv_style_int_t, _int, scalar) 48ba: 2205 movs r2, #5 _LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_WIDTH, transform_width, lv_style_int_t, _int, scalar) 48bc: 4606 mov r6, r0 _LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_HEIGHT, transform_height, lv_style_int_t, _int, scalar) 48be: 2100 movs r1, #0 48c0: 4620 mov r0, r4 48c2: 47c0 blx r8 lv_area_copy(&coords, &obj->coords); 48c4: f104 0910 add.w r9, r4, #16 48c8: 4b45 ldr r3, [pc, #276] ; (49e0 ) 48ca: 4682 mov sl, r0 48cc: 4649 mov r1, r9 48ce: a801 add r0, sp, #4 48d0: 4798 blx r3 coords.x1 -= w; 48d2: f8bd 2004 ldrh.w r2, [sp, #4] 48d6: b2b3 uxth r3, r6 48d8: 1ad2 subs r2, r2, r3 48da: f8ad 2004 strh.w r2, [sp, #4] coords.x2 += w; 48de: f8bd 2008 ldrh.w r2, [sp, #8] 48e2: 4413 add r3, r2 48e4: f8ad 3008 strh.w r3, [sp, #8] coords.y1 -= h; 48e8: f8bd 3006 ldrh.w r3, [sp, #6] 48ec: fa1f f08a uxth.w r0, sl 48f0: 1a1b subs r3, r3, r0 48f2: f8ad 3006 strh.w r3, [sp, #6] coords.y2 += h; 48f6: f8bd 300a ldrh.w r3, [sp, #10] 48fa: 4418 add r0, r3 48fc: f8ad 000a strh.w r0, [sp, #10] lv_draw_rect(&coords, clip_area, &draw_dsc); 4900: aa03 add r2, sp, #12 4902: 4639 mov r1, r7 4904: a801 add r0, sp, #4 4906: 4b3b ldr r3, [pc, #236] ; (49f4 ) 4908: 4798 blx r3 _LV_OBJ_STYLE_SET_GET_DECLARE(CLIP_CORNER, clip_corner, bool, _int, scalar) 490a: 2202 movs r2, #2 490c: 2100 movs r1, #0 490e: 4620 mov r0, r4 4910: 47c0 blx r8 if(lv_obj_get_style_clip_corner(obj, LV_OBJ_PART_MAIN)) { 4912: 2800 cmp r0, #0 4914: d0b4 beq.n 4880 lv_draw_mask_radius_param_t * mp = _lv_mem_buf_get(sizeof(lv_draw_mask_radius_param_t)); 4916: 4b38 ldr r3, [pc, #224] ; (49f8 ) lv_draw_mask_radius_init(mp, &obj->coords, r, false); 4918: 4f38 ldr r7, [pc, #224] ; (49fc ) lv_draw_mask_radius_param_t * mp = _lv_mem_buf_get(sizeof(lv_draw_mask_radius_param_t)); 491a: 201c movs r0, #28 491c: 4798 blx r3 _LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar) 491e: 2201 movs r2, #1 4920: 4606 mov r6, r0 4922: 2100 movs r1, #0 4924: 4620 mov r0, r4 4926: 47c0 blx r8 lv_draw_mask_radius_init(mp, &obj->coords, r, false); 4928: 4649 mov r1, r9 492a: 4602 mov r2, r0 492c: 2300 movs r3, #0 492e: 4630 mov r0, r6 4930: 47b8 blx r7 lv_draw_mask_add(mp, obj + 8); 4932: 4b33 ldr r3, [pc, #204] ; (4a00 ) 4934: f504 7118 add.w r1, r4, #608 ; 0x260 4938: 4630 mov r0, r6 493a: 4798 blx r3 493c: e7a0 b.n 4880 else if(mode == LV_DESIGN_DRAW_POST) { 493e: 2a01 cmp r2, #1 4940: d001 beq.n 4946 return LV_DESIGN_RES_OK; 4942: 2500 movs r5, #0 4944: e79c b.n 4880 _LV_OBJ_STYLE_SET_GET_DECLARE(CLIP_CORNER, clip_corner, bool, _int, scalar) 4946: f8df 80c4 ldr.w r8, [pc, #196] ; 4a0c 494a: 2202 movs r2, #2 494c: 2100 movs r1, #0 494e: 47c0 blx r8 if(lv_obj_get_style_clip_corner(obj, LV_OBJ_PART_MAIN)) { 4950: b128 cbz r0, 495e lv_draw_mask_radius_param_t * param = lv_draw_mask_remove_custom(obj + 8); 4952: 4b2c ldr r3, [pc, #176] ; (4a04 ) 4954: f504 7018 add.w r0, r4, #608 ; 0x260 4958: 4798 blx r3 _lv_mem_buf_release(param); 495a: 4b2b ldr r3, [pc, #172] ; (4a08 ) 495c: 4798 blx r3 _LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_POST, border_post, bool, _int, scalar) 495e: 2233 movs r2, #51 ; 0x33 4960: 2100 movs r1, #0 4962: 4620 mov r0, r4 4964: 47c0 blx r8 if(lv_obj_get_style_border_post(obj, LV_OBJ_PART_MAIN)) { 4966: 2800 cmp r0, #0 4968: d0eb beq.n 4942 draw_dsc.bg_opa = LV_OPA_TRANSP; 496a: 2500 movs r5, #0 lv_draw_rect_dsc_init(&draw_dsc); 496c: a803 add r0, sp, #12 496e: 4b1f ldr r3, [pc, #124] ; (49ec ) 4970: 4798 blx r3 lv_obj_init_draw_rect_dsc(obj, LV_OBJ_PART_MAIN, &draw_dsc); 4972: 4b1f ldr r3, [pc, #124] ; (49f0 ) draw_dsc.bg_opa = LV_OPA_TRANSP; 4974: f88d 5018 strb.w r5, [sp, #24] lv_obj_init_draw_rect_dsc(obj, LV_OBJ_PART_MAIN, &draw_dsc); 4978: aa03 add r2, sp, #12 497a: 4629 mov r1, r5 497c: 4620 mov r0, r4 draw_dsc.pattern_opa = LV_OPA_TRANSP; 497e: f88d 5042 strb.w r5, [sp, #66] ; 0x42 draw_dsc.shadow_opa = LV_OPA_TRANSP; 4982: f88d 5034 strb.w r5, [sp, #52] ; 0x34 lv_obj_init_draw_rect_dsc(obj, LV_OBJ_PART_MAIN, &draw_dsc); 4986: 4798 blx r3 _LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_WIDTH, transform_width, lv_style_int_t, _int, scalar) 4988: 4629 mov r1, r5 498a: 2204 movs r2, #4 498c: 4620 mov r0, r4 498e: 47c0 blx r8 _LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_HEIGHT, transform_height, lv_style_int_t, _int, scalar) 4990: 2205 movs r2, #5 _LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_WIDTH, transform_width, lv_style_int_t, _int, scalar) 4992: 4606 mov r6, r0 _LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_HEIGHT, transform_height, lv_style_int_t, _int, scalar) 4994: 4629 mov r1, r5 4996: 4620 mov r0, r4 4998: 47c0 blx r8 lv_area_copy(&coords, &obj->coords); 499a: f104 0110 add.w r1, r4, #16 499e: 4680 mov r8, r0 49a0: 4b0f ldr r3, [pc, #60] ; (49e0 ) 49a2: a801 add r0, sp, #4 49a4: 4798 blx r3 coords.x1 -= w; 49a6: f8bd 2004 ldrh.w r2, [sp, #4] 49aa: b2b3 uxth r3, r6 49ac: 1ad2 subs r2, r2, r3 49ae: f8ad 2004 strh.w r2, [sp, #4] coords.x2 += w; 49b2: f8bd 2008 ldrh.w r2, [sp, #8] 49b6: 4413 add r3, r2 49b8: f8ad 3008 strh.w r3, [sp, #8] coords.y1 -= h; 49bc: f8bd 3006 ldrh.w r3, [sp, #6] 49c0: fa1f f088 uxth.w r0, r8 49c4: 1a1b subs r3, r3, r0 49c6: f8ad 3006 strh.w r3, [sp, #6] coords.y2 += h; 49ca: f8bd 300a ldrh.w r3, [sp, #10] 49ce: 4418 add r0, r3 49d0: f8ad 000a strh.w r0, [sp, #10] lv_draw_rect(&coords, clip_area, &draw_dsc); 49d4: 4b07 ldr r3, [pc, #28] ; (49f4 ) 49d6: aa03 add r2, sp, #12 49d8: 4639 mov r1, r7 49da: a801 add r0, sp, #4 49dc: 4798 blx r3 49de: e74f b.n 4880 49e0: 00001f45 .word 0x00001f45 49e4: 0000e2bd .word 0x0000e2bd 49e8: 00003a65 .word 0x00003a65 49ec: 00009dcd .word 0x00009dcd 49f0: 000044d5 .word 0x000044d5 49f4: 00009e19 .word 0x00009e19 49f8: 0000f0ed .word 0x0000f0ed 49fc: 00009b41 .word 0x00009b41 4a00: 0000993d .word 0x0000993d 4a04: 000099f5 .word 0x000099f5 4a08: 0000eda1 .word 0x0000eda1 4a0c: 0000393d .word 0x0000393d 00004a10 : { 4a10: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} 4a14: 4614 mov r4, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_OPA, text_opa, lv_opa_t, _opa, scalar) 4a16: 4f28 ldr r7, [pc, #160] ; (4ab8 ) 4a18: f248 028c movw r2, #32908 ; 0x808c 4a1c: 4605 mov r5, r0 4a1e: 460e mov r6, r1 4a20: 47b8 blx r7 if(draw_dsc->opa <= LV_OPA_MIN) return; 4a22: 2805 cmp r0, #5 draw_dsc->opa = lv_obj_get_style_text_opa(obj, part); 4a24: 7220 strb r0, [r4, #8] if(draw_dsc->opa <= LV_OPA_MIN) return; 4a26: d945 bls.n 4ab4 _LV_OBJ_STYLE_SET_GET_DECLARE(OPA_SCALE, opa_scale, lv_opa_t, _opa, scalar) 4a28: f248 020c movw r2, #32780 ; 0x800c 4a2c: 4631 mov r1, r6 4a2e: 4628 mov r0, r5 4a30: 47b8 blx r7 if(opa_scale < LV_OPA_MAX) { 4a32: 28f9 cmp r0, #249 ; 0xf9 draw_dsc->opa = (uint16_t)((uint16_t)draw_dsc->opa * opa_scale) >> 8; 4a34: bf9f itttt ls 4a36: 7a23 ldrbls r3, [r4, #8] 4a38: fb13 f000 smulbbls r0, r3, r0 4a3c: f3c0 2007 ubfxls r0, r0, #8, #8 4a40: 7220 strbls r0, [r4, #8] if(draw_dsc->opa <= LV_OPA_MIN) return; 4a42: 7a23 ldrb r3, [r4, #8] 4a44: 2b05 cmp r3, #5 4a46: d935 bls.n 4ab4 _LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar) 4a48: f248 0289 movw r2, #32905 ; 0x8089 4a4c: 4631 mov r1, r6 4a4e: f8df 8074 ldr.w r8, [pc, #116] ; 4ac4 _LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LETTER_SPACE, text_letter_space, lv_style_int_t, _int, scalar) 4a52: 4f1a ldr r7, [pc, #104] ; (4abc ) _LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar) 4a54: 4628 mov r0, r5 4a56: 47c0 blx r8 _LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LETTER_SPACE, text_letter_space, lv_style_int_t, _int, scalar) 4a58: f248 0280 movw r2, #32896 ; 0x8080 draw_dsc->color = lv_obj_get_style_text_color(obj, part); 4a5c: 8020 strh r0, [r4, #0] 4a5e: 4631 mov r1, r6 4a60: 4628 mov r0, r5 4a62: 47b8 blx r7 _LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LINE_SPACE, text_line_space, lv_style_int_t, _int, scalar) 4a64: f248 0281 movw r2, #32897 ; 0x8081 draw_dsc->letter_space = lv_obj_get_style_text_letter_space(obj, part); 4a68: 81a0 strh r0, [r4, #12] 4a6a: 4631 mov r1, r6 4a6c: 4628 mov r0, r5 4a6e: 47b8 blx r7 _LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_DECOR, text_decor, lv_text_decor_t, _int, scalar) 4a70: f248 0282 movw r2, #32898 ; 0x8082 draw_dsc->line_space = lv_obj_get_style_text_line_space(obj, part); 4a74: 8160 strh r0, [r4, #10] 4a76: 4631 mov r1, r6 4a78: 4628 mov r0, r5 4a7a: 47b8 blx r7 _LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_BLEND_MODE, text_blend_mode, lv_blend_mode_t, _int, scalar) 4a7c: f248 0283 movw r2, #32899 ; 0x8083 _LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_DECOR, text_decor, lv_text_decor_t, _int, scalar) 4a80: 7620 strb r0, [r4, #24] _LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_BLEND_MODE, text_blend_mode, lv_blend_mode_t, _int, scalar) 4a82: 4631 mov r1, r6 4a84: 4628 mov r0, r5 4a86: 47b8 blx r7 _LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar) 4a88: 4b0d ldr r3, [pc, #52] ; (4ac0 ) _LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_BLEND_MODE, text_blend_mode, lv_blend_mode_t, _int, scalar) 4a8a: 7660 strb r0, [r4, #25] _LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar) 4a8c: f248 028e movw r2, #32910 ; 0x808e 4a90: 4631 mov r1, r6 4a92: 4628 mov r0, r5 4a94: 4798 blx r3 if(draw_dsc->sel_start != LV_DRAW_LABEL_NO_TXT_SEL && draw_dsc->sel_end != LV_DRAW_LABEL_NO_TXT_SEL) { 4a96: 89e2 ldrh r2, [r4, #14] draw_dsc->font = lv_obj_get_style_text_font(obj, part); 4a98: 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) { 4a9a: f64f 73ff movw r3, #65535 ; 0xffff 4a9e: 429a cmp r2, r3 4aa0: d008 beq.n 4ab4 4aa2: 8a22 ldrh r2, [r4, #16] 4aa4: 429a cmp r2, r3 4aa6: d005 beq.n 4ab4 _LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_SEL_COLOR, text_sel_color, lv_color_t, _color, nonscalar) 4aa8: f248 028a movw r2, #32906 ; 0x808a 4aac: 4631 mov r1, r6 4aae: 4628 mov r0, r5 4ab0: 47c0 blx r8 draw_dsc->color = lv_obj_get_style_text_sel_color(obj, part); 4ab2: 8020 strh r0, [r4, #0] } 4ab4: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} 4ab8: 00003a65 .word 0x00003a65 4abc: 0000393d .word 0x0000393d 4ac0: 00003af5 .word 0x00003af5 4ac4: 000039e1 .word 0x000039e1 00004ac8 : { 4ac8: b5f8 push {r3, r4, r5, r6, r7, lr} 4aca: 4614 mov r4, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_OPA, image_opa, lv_opa_t, _opa, scalar) 4acc: 4f23 ldr r7, [pc, #140] ; (4b5c ) 4ace: f248 02ac movw r2, #32940 ; 0x80ac 4ad2: 4605 mov r5, r0 4ad4: 460e mov r6, r1 4ad6: 47b8 blx r7 if(draw_dsc->opa <= LV_OPA_MIN) return; 4ad8: 2805 cmp r0, #5 draw_dsc->opa = lv_obj_get_style_image_opa(obj, part); 4ada: 7020 strb r0, [r4, #0] if(draw_dsc->opa <= LV_OPA_MIN) return; 4adc: d93c bls.n 4b58 _LV_OBJ_STYLE_SET_GET_DECLARE(OPA_SCALE, opa_scale, lv_opa_t, _opa, scalar) 4ade: f248 020c movw r2, #32780 ; 0x800c 4ae2: 4631 mov r1, r6 4ae4: 4628 mov r0, r5 4ae6: 47b8 blx r7 if(opa_scale < LV_OPA_MAX) { 4ae8: 28f9 cmp r0, #249 ; 0xf9 draw_dsc->opa = (uint16_t)((uint16_t)draw_dsc->opa * opa_scale) >> 8; 4aea: bf9f itttt ls 4aec: 7823 ldrbls r3, [r4, #0] 4aee: fb13 f000 smulbbls r0, r3, r0 4af2: f3c0 2007 ubfxls r0, r0, #8, #8 4af6: 7020 strbls r0, [r4, #0] if(draw_dsc->opa <= LV_OPA_MIN) return; 4af8: 7823 ldrb r3, [r4, #0] 4afa: 2b05 cmp r3, #5 4afc: d92c bls.n 4b58 draw_dsc->angle = 0; 4afe: 2300 movs r3, #0 4b00: 8063 strh r3, [r4, #2] draw_dsc->zoom = LV_IMG_ZOOM_NONE; 4b02: f44f 7380 mov.w r3, #256 ; 0x100 4b06: 8123 strh r3, [r4, #8] return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); 4b08: 8aab ldrh r3, [r5, #20] 4b0a: 8a2a ldrh r2, [r5, #16] 4b0c: 3301 adds r3, #1 4b0e: 1a9b subs r3, r3, r2 draw_dsc->pivot.x = lv_area_get_width(&obj->coords) / 2; 4b10: f3c3 32c0 ubfx r2, r3, #15, #1 4b14: fa02 f383 sxtah r3, r2, r3 4b18: 105b asrs r3, r3, #1 4b1a: 80a3 strh r3, [r4, #4] return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); 4b1c: 8aeb ldrh r3, [r5, #22] 4b1e: 8a6a ldrh r2, [r5, #18] 4b20: 3301 adds r3, #1 4b22: 1a9b subs r3, r3, r2 draw_dsc->pivot.y = lv_area_get_height(&obj->coords) / 2; 4b24: f3c3 32c0 ubfx r2, r3, #15, #1 4b28: fa02 f383 sxtah r3, r2, r3 4b2c: 105b asrs r3, r3, #1 4b2e: 80e3 strh r3, [r4, #6] _LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_RECOLOR_OPA, image_recolor_opa, lv_opa_t, _opa, scalar) 4b30: f248 02ad movw r2, #32941 ; 0x80ad 4b34: 4631 mov r1, r6 4b36: 4628 mov r0, r5 4b38: 47b8 blx r7 _LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_RECOLOR, image_recolor, lv_color_t, _color, nonscalar) 4b3a: 4b09 ldr r3, [pc, #36] ; (4b60 ) draw_dsc->recolor_opa = lv_obj_get_style_image_recolor_opa(obj, part); 4b3c: 72a0 strb r0, [r4, #10] 4b3e: f248 02a9 movw r2, #32937 ; 0x80a9 4b42: 4631 mov r1, r6 4b44: 4628 mov r0, r5 4b46: 4798 blx r3 _LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_BLEND_MODE, image_blend_mode, lv_blend_mode_t, _int, scalar) 4b48: 4b06 ldr r3, [pc, #24] ; (4b64 ) draw_dsc->recolor = lv_obj_get_style_image_recolor(obj, part); 4b4a: 81a0 strh r0, [r4, #12] 4b4c: f248 02a0 movw r2, #32928 ; 0x80a0 4b50: 4631 mov r1, r6 4b52: 4628 mov r0, r5 4b54: 4798 blx r3 4b56: 73a0 strb r0, [r4, #14] } 4b58: bdf8 pop {r3, r4, r5, r6, r7, pc} 4b5a: bf00 nop 4b5c: 00003a65 .word 0x00003a65 4b60: 000039e1 .word 0x000039e1 4b64: 0000393d .word 0x0000393d 00004b68 : { 4b68: 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) 4b6c: 2250 movs r2, #80 ; 0x50 4b6e: 4f75 ldr r7, [pc, #468] ; (4d44 ) 4b70: b08a sub sp, #40 ; 0x28 4b72: 4604 mov r4, r0 4b74: 460e mov r6, r1 4b76: 47b8 blx r7 if(sh_width) { 4b78: 4605 mov r5, r0 4b7a: 2800 cmp r0, #0 4b7c: f040 80b4 bne.w 4ce8 lv_coord_t s = 0; 4b80: 2500 movs r5, #0 _LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_STR, value_str, const char *, _ptr, scalar) 4b82: f8df a1c8 ldr.w sl, [pc, #456] ; 4d4c 4b86: 227f movs r2, #127 ; 0x7f 4b88: 4631 mov r1, r6 4b8a: 4620 mov r0, r4 4b8c: 47d0 blx sl if(value_str) { 4b8e: 4680 mov r8, r0 4b90: 2800 cmp r0, #0 4b92: d07e beq.n 4c92 _LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_OPA, value_opa, lv_opa_t, _opa, scalar) 4b94: 4b6c ldr r3, [pc, #432] ; (4d48 ) 4b96: 227c movs r2, #124 ; 0x7c 4b98: 4631 mov r1, r6 4b9a: 4620 mov r0, r4 4b9c: 4798 blx r3 if(value_opa > LV_OPA_MIN) { 4b9e: 2805 cmp r0, #5 4ba0: d977 bls.n 4c92 _LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_LETTER_SPACE, value_letter_space, lv_style_int_t, _int, scalar) 4ba2: 2270 movs r2, #112 ; 0x70 4ba4: 4631 mov r1, r6 4ba6: 4620 mov r0, r4 4ba8: 47b8 blx r7 4baa: 2270 movs r2, #112 ; 0x70 4bac: 9005 str r0, [sp, #20] 4bae: 4631 mov r1, r6 4bb0: 4620 mov r0, r4 4bb2: 47b8 blx r7 _LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_FONT, value_font, const lv_font_t *, _ptr, scalar) 4bb4: 227e movs r2, #126 ; 0x7e _LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_LETTER_SPACE, value_letter_space, lv_style_int_t, _int, scalar) 4bb6: 4681 mov r9, r0 _LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_FONT, value_font, const lv_font_t *, _ptr, scalar) 4bb8: 4631 mov r1, r6 4bba: 4620 mov r0, r4 4bbc: 47d0 blx sl _lv_txt_get_size(&txt_size, value_str, font, letter_space, line_space, LV_COORD_MAX, LV_TXT_FLAG_NONE); 4bbe: f04f 0a00 mov.w sl, #0 4bc2: f647 4118 movw r1, #31768 ; 0x7c18 4bc6: e9cd 1a01 strd r1, sl, [sp, #4] 4bca: 4602 mov r2, r0 4bcc: 4641 mov r1, r8 4bce: 9b05 ldr r3, [sp, #20] 4bd0: f8df 817c ldr.w r8, [pc, #380] ; 4d50 4bd4: f8cd 9000 str.w r9, [sp] 4bd8: a806 add r0, sp, #24 4bda: 47c0 blx r8 value_area.x2 = txt_size.x - 1; 4bdc: f8bd 3018 ldrh.w r3, [sp, #24] value_area.x1 = 0; 4be0: f8cd a020 str.w sl, [sp, #32] value_area.x2 = txt_size.x - 1; 4be4: 3b01 subs r3, #1 4be6: f8ad 3024 strh.w r3, [sp, #36] ; 0x24 value_area.y2 = txt_size.y - 1; 4bea: f8bd 301a ldrh.w r3, [sp, #26] _LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_ALIGN, value_align, lv_align_t, _int, scalar) 4bee: 2275 movs r2, #117 ; 0x75 4bf0: 3b01 subs r3, #1 4bf2: 4631 mov r1, r6 4bf4: 4620 mov r0, r4 4bf6: f8ad 3026 strh.w r3, [sp, #38] ; 0x26 4bfa: 47b8 blx r7 _LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_OFS_X, value_ofs_x, lv_style_int_t, _int, scalar) 4bfc: 2273 movs r2, #115 ; 0x73 _LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_ALIGN, value_align, lv_align_t, _int, scalar) 4bfe: 4682 mov sl, r0 _LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_OFS_X, value_ofs_x, lv_style_int_t, _int, scalar) 4c00: 4631 mov r1, r6 4c02: 4620 mov r0, r4 4c04: 47b8 blx r7 _LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_OFS_Y, value_ofs_y, lv_style_int_t, _int, scalar) 4c06: 2274 movs r2, #116 ; 0x74 _LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_OFS_X, value_ofs_x, lv_style_int_t, _int, scalar) 4c08: 4681 mov r9, r0 _LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_OFS_Y, value_ofs_y, lv_style_int_t, _int, scalar) 4c0a: 4631 mov r1, r6 4c0c: 4620 mov r0, r4 4c0e: 47b8 blx r7 _lv_area_align(&obj->coords, &value_area, align, &p_align); 4c10: fa5f f28a uxtb.w r2, sl 4c14: 4680 mov r8, r0 4c16: ab07 add r3, sp, #28 4c18: a908 add r1, sp, #32 4c1a: f104 0010 add.w r0, r4, #16 4c1e: f8df a134 ldr.w sl, [pc, #308] ; 4d54 4c22: 47d0 blx sl value_area.y1 += p_align.y + yofs; 4c24: f8bd 201e ldrh.w r2, [sp, #30] value_area.x1 += p_align.x + xofs; 4c28: f8bd 301c ldrh.w r3, [sp, #28] s = LV_MATH_MAX(s, obj->coords.x1 - value_area.x1); 4c2c: f9b4 1010 ldrsh.w r1, [r4, #16] value_area.y1 += p_align.y + yofs; 4c30: eb08 0002 add.w r0, r8, r2 value_area.x1 += p_align.x + xofs; 4c34: f8bd 2020 ldrh.w r2, [sp, #32] 4c38: 444b add r3, r9 4c3a: fa12 f283 uxtah r2, r2, r3 s = LV_MATH_MAX(s, obj->coords.x1 - value_area.x1); 4c3e: b212 sxth r2, r2 4c40: 1a89 subs r1, r1, r2 4c42: 42a9 cmp r1, r5 4c44: bfb8 it lt 4c46: 4629 movlt r1, r5 value_area.y1 += p_align.y + yofs; 4c48: f8bd 5022 ldrh.w r5, [sp, #34] ; 0x22 s = LV_MATH_MAX(s, obj->coords.y1 - value_area.y1); 4c4c: f9b4 2012 ldrsh.w r2, [r4, #18] value_area.y1 += p_align.y + yofs; 4c50: fa15 f580 uxtah r5, r5, r0 s = LV_MATH_MAX(s, obj->coords.y1 - value_area.y1); 4c54: b22d sxth r5, r5 4c56: 1b52 subs r2, r2, r5 4c58: b209 sxth r1, r1 4c5a: 428a cmp r2, r1 4c5c: bfb8 it lt 4c5e: 460a movlt r2, r1 value_area.x2 += p_align.x + xofs; 4c60: f8bd 1024 ldrh.w r1, [sp, #36] ; 0x24 4c64: fa11 f383 uxtah r3, r1, r3 s = LV_MATH_MAX(s, value_area.x2 - obj->coords.x2); 4c68: f9b4 1014 ldrsh.w r1, [r4, #20] 4c6c: b21b sxth r3, r3 4c6e: 1a5b subs r3, r3, r1 4c70: b212 sxth r2, r2 4c72: 4293 cmp r3, r2 4c74: bfb8 it lt 4c76: 4613 movlt r3, r2 value_area.y2 += p_align.y + yofs; 4c78: f8bd 2026 ldrh.w r2, [sp, #38] ; 0x26 4c7c: fa12 f080 uxtah r0, r2, r0 s = LV_MATH_MAX(s, value_area.y2 - obj->coords.y2); 4c80: f9b4 2016 ldrsh.w r2, [r4, #22] 4c84: b200 sxth r0, r0 4c86: 1a80 subs r0, r0, r2 4c88: b21b sxth r3, r3 4c8a: 4298 cmp r0, r3 4c8c: bfb8 it lt 4c8e: 4618 movlt r0, r3 4c90: b205 sxth r5, r0 _LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_WIDTH, outline_width, lv_style_int_t, _int, scalar) 4c92: 2240 movs r2, #64 ; 0x40 4c94: 4631 mov r1, r6 4c96: 4620 mov r0, r4 4c98: 47b8 blx r7 if(outline_width) { 4c9a: 4680 mov r8, r0 4c9c: b178 cbz r0, 4cbe _LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_OPA, outline_opa, lv_opa_t, _opa, scalar) 4c9e: 4b2a ldr r3, [pc, #168] ; (4d48 ) 4ca0: 224c movs r2, #76 ; 0x4c 4ca2: 4631 mov r1, r6 4ca4: 4620 mov r0, r4 4ca6: 4798 blx r3 if(outline_opa > LV_OPA_MIN) { 4ca8: 2805 cmp r0, #5 4caa: d908 bls.n 4cbe _LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_PAD, outline_pad, lv_style_int_t, _int, scalar) 4cac: 2241 movs r2, #65 ; 0x41 4cae: 4631 mov r1, r6 4cb0: 4620 mov r0, r4 4cb2: 47b8 blx r7 s = LV_MATH_MAX(s, outline_pad + outline_width); 4cb4: 4440 add r0, r8 4cb6: 42a8 cmp r0, r5 4cb8: bfb8 it lt 4cba: 4628 movlt r0, r5 4cbc: b205 sxth r5, r0 _LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_WIDTH, transform_width, lv_style_int_t, _int, scalar) 4cbe: 4631 mov r1, r6 4cc0: 2204 movs r2, #4 4cc2: 4620 mov r0, r4 4cc4: 47b8 blx r7 _LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_HEIGHT, transform_height, lv_style_int_t, _int, scalar) 4cc6: 2205 movs r2, #5 _LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_WIDTH, transform_width, lv_style_int_t, _int, scalar) 4cc8: 4680 mov r8, r0 _LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_HEIGHT, transform_height, lv_style_int_t, _int, scalar) 4cca: 4631 mov r1, r6 4ccc: 4620 mov r0, r4 4cce: 47b8 blx r7 lv_coord_t wh = LV_MATH_MAX(w, h); 4cd0: 4540 cmp r0, r8 4cd2: bfb8 it lt 4cd4: 4640 movlt r0, r8 4cd6: b200 sxth r0, r0 if(wh > 0) s += wh; 4cd8: 2800 cmp r0, #0 4cda: bfc4 itt gt 4cdc: 1940 addgt r0, r0, r5 4cde: b205 sxthgt r5, r0 } 4ce0: 4628 mov r0, r5 4ce2: b00a add sp, #40 ; 0x28 4ce4: 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) 4ce8: 4b17 ldr r3, [pc, #92] ; (4d48 ) 4cea: 225c movs r2, #92 ; 0x5c 4cec: 4631 mov r1, r6 4cee: 4620 mov r0, r4 4cf0: 4798 blx r3 if(sh_opa > LV_OPA_MIN) { 4cf2: 2805 cmp r0, #5 4cf4: f67f af44 bls.w 4b80 _LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_SPREAD, shadow_spread, lv_style_int_t, _int, scalar) 4cf8: 2253 movs r2, #83 ; 0x53 4cfa: 4631 mov r1, r6 4cfc: 4620 mov r0, r4 4cfe: 47b8 blx r7 sh_width = sh_width / 2; /*THe blur adds only half width*/ 4d00: eb05 75d5 add.w r5, r5, r5, lsr #31 sh_width++; 4d04: 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) 4d08: 2251 movs r2, #81 ; 0x51 4d0a: 4631 mov r1, r6 4d0c: 4620 mov r0, r4 4d0e: 47b8 blx r7 _LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_OFS_Y, shadow_ofs_y, lv_style_int_t, _int, scalar) 4d10: 2252 movs r2, #82 ; 0x52 _LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_OFS_X, shadow_ofs_x, lv_style_int_t, _int, scalar) 4d12: 4680 mov r8, r0 _LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_OFS_Y, shadow_ofs_y, lv_style_int_t, _int, scalar) 4d14: 4631 mov r1, r6 4d16: 4620 mov r0, r4 4d18: 47b8 blx r7 sh_width += LV_MATH_MAX(LV_MATH_ABS(sh_ofs_x), LV_MATH_ABS(sh_ofs_y)); 4d1a: 2800 cmp r0, #0 4d1c: bfb8 it lt 4d1e: 4240 neglt r0, r0 4d20: f1b8 0f00 cmp.w r8, #0 4d24: bfb8 it lt 4d26: f1c8 0800 rsblt r8, r8, #0 sh_width += lv_obj_get_style_shadow_spread(obj, part); 4d2a: 3501 adds r5, #1 4d2c: b2ad uxth r5, r5 sh_width += LV_MATH_MAX(LV_MATH_ABS(sh_ofs_x), LV_MATH_ABS(sh_ofs_y)); 4d2e: b280 uxth r0, r0 4d30: fa1f f888 uxth.w r8, r8 4d34: 4540 cmp r0, r8 4d36: bf2c ite cs 4d38: 182d addcs r5, r5, r0 4d3a: 4445 addcc r5, r8 s = LV_MATH_MAX(s, sh_width); 4d3c: b22d sxth r5, r5 4d3e: ea25 75e5 bic.w r5, r5, r5, asr #31 4d42: e71e b.n 4b82 4d44: 0000393d .word 0x0000393d 4d48: 00003a65 .word 0x00003a65 4d4c: 00003af5 .word 0x00003af5 4d50: 000103d5 .word 0x000103d5 4d54: 0000e35d .word 0x0000e35d 00004d58 : { 4d58: b570 push {r4, r5, r6, lr} 4d5a: 4605 mov r5, r0 4d5c: 4610 mov r0, r2 4d5e: 2917 cmp r1, #23 4d60: d811 bhi.n 4d86 4d62: e8df f001 tbb [pc, r1] 4d66: 1a55 .short 0x1a55 4d68: 10372e10 .word 0x10372e10 4d6c: 100c1523 .word 0x100c1523 4d70: 40103b10 .word 0x40103b10 4d74: 10101040 .word 0x10101040 4d78: 10101010 .word 0x10101010 4d7c: 5344 .short 0x5344 if(info->part == LV_OBJ_PART_MAIN) info->result = &obj->style_list; 4d7e: 7813 ldrb r3, [r2, #0] 4d80: b91b cbnz r3, 4d8a 4d82: 3528 adds r5, #40 ; 0x28 4d84: 6055 str r5, [r2, #4] lv_res_t res = LV_RES_OK; 4d86: 2401 movs r4, #1 4d88: e00e b.n 4da8 else info->result = NULL; 4d8a: 2300 movs r3, #0 4d8c: 6053 str r3, [r2, #4] 4d8e: e7fa b.n 4d86 } 4d90: 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); 4d94: 4920 ldr r1, [pc, #128] ; (4e18 ) 4d96: 4b21 ldr r3, [pc, #132] ; (4e1c ) 4d98: 4718 bx r3 if(lv_obj_is_protected(obj, LV_PROTECT_CHILD_CHG) != false) res = LV_RES_INV; 4d9a: 4b21 ldr r3, [pc, #132] ; (4e20 ) 4d9c: 2101 movs r1, #1 4d9e: 4628 mov r0, r5 4da0: 4798 blx r3 4da2: f080 0001 eor.w r0, r0, #1 return LV_RES_OK; 4da6: b2c4 uxtb r4, r0 } 4da8: 4620 mov r0, r4 4daa: bd70 pop {r4, r5, r6, pc} lv_coord_t d = lv_obj_get_draw_rect_ext_pad_size(obj, LV_OBJ_PART_MAIN); 4dac: 4b1d ldr r3, [pc, #116] ; (4e24 ) 4dae: 2100 movs r1, #0 4db0: 4628 mov r0, r5 4db2: 4798 blx r3 obj->ext_draw_pad = LV_MATH_MAX(obj->ext_draw_pad, d); 4db4: f9b5 3032 ldrsh.w r3, [r5, #50] ; 0x32 4db8: 4298 cmp r0, r3 4dba: bfb8 it lt 4dbc: 4618 movlt r0, r3 4dbe: 8668 strh r0, [r5, #50] ; 0x32 4dc0: e7e1 b.n 4d86 if(obj->realign.auto_realign) { 4dc2: f895 4049 ldrb.w r4, [r5, #73] ; 0x49 4dc6: f014 0401 ands.w r4, r4, #1 4dca: d0dc beq.n 4d86 lv_obj_realign(obj); 4dcc: 4b16 ldr r3, [pc, #88] ; (4e28 ) 4dce: 4628 mov r0, r5 4dd0: 4798 blx r3 4dd2: e7e9 b.n 4da8 lv_obj_refresh_ext_draw_pad(obj); 4dd4: 4b15 ldr r3, [pc, #84] ; (4e2c ) 4dd6: 4628 mov r0, r5 4dd8: 4798 blx r3 4dda: e7d4 b.n 4d86 lv_obj_add_state(obj, LV_STATE_PRESSED); 4ddc: 4b14 ldr r3, [pc, #80] ; (4e30 ) 4dde: 2110 movs r1, #16 4de0: 4628 mov r0, r5 lv_obj_clean_style_list(obj, LV_OBJ_PART_MAIN); 4de2: 4798 blx r3 4de4: e7cf b.n 4d86 lv_obj_clear_state(obj, LV_STATE_PRESSED); 4de6: 2110 movs r1, #16 lv_obj_clear_state(obj, LV_STATE_EDITED); 4de8: 4b12 ldr r3, [pc, #72] ; (4e34 ) 4dea: 4628 mov r0, r5 4dec: e7f9 b.n 4de2 if(lv_group_get_editing(lv_obj_get_group(obj))) { 4dee: 4b12 ldr r3, [pc, #72] ; (4e38 ) 4df0: 4628 mov r0, r5 4df2: 4798 blx r3 4df4: 4b11 ldr r3, [pc, #68] ; (4e3c ) 4df6: 4798 blx r3 4df8: 4b0d ldr r3, [pc, #52] ; (4e30 ) 4dfa: b110 cbz r0, 4e02 lv_obj_add_state(obj, state); 4dfc: 2106 movs r1, #6 4dfe: 4628 mov r0, r5 4e00: e7ef b.n 4de2 lv_obj_add_state(obj, LV_STATE_FOCUSED); 4e02: 2102 movs r1, #2 4e04: 4628 mov r0, r5 4e06: 4798 blx r3 lv_obj_clear_state(obj, LV_STATE_EDITED); 4e08: 2104 movs r1, #4 4e0a: e7ed b.n 4de8 lv_obj_clear_state(obj, LV_STATE_FOCUSED | LV_STATE_EDITED); 4e0c: 2106 movs r1, #6 4e0e: e7eb b.n 4de8 lv_obj_clean_style_list(obj, LV_OBJ_PART_MAIN); 4e10: 4b0b ldr r3, [pc, #44] ; (4e40 ) 4e12: 2100 movs r1, #0 4e14: 4628 mov r0, r5 4e16: e7e4 b.n 4de2 4e18: 000269db .word 0x000269db 4e1c: 000044b9 .word 0x000044b9 4e20: 0000387d .word 0x0000387d 4e24: 00004b69 .word 0x00004b69 4e28: 00002f15 .word 0x00002f15 4e2c: 000022fd .word 0x000022fd 4e30: 000040c5 .word 0x000040c5 4e34: 00004129 .word 0x00004129 4e38: 0000421d .word 0x0000421d 4e3c: 00001e47 .word 0x00001e47 4e40: 00002775 .word 0x00002775 00004e44 : /** * Flush the content of the VDB */ static void lv_refr_vdb_flush(void) { 4e44: b538 push {r3, r4, r5, lr} lv_disp_buf_t * vdb = lv_disp_get_buf(disp_refr); 4e46: 4d17 ldr r5, [pc, #92] ; (4ea4 ) 4e48: 4b17 ldr r3, [pc, #92] ; (4ea8 ) 4e4a: 6828 ldr r0, [r5, #0] 4e4c: 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)) { 4e4e: 4b17 ldr r3, [pc, #92] ; (4eac ) lv_disp_buf_t * vdb = lv_disp_get_buf(disp_refr); 4e50: 4604 mov r4, r0 if(lv_disp_is_double_buf(disp_refr)) { 4e52: 6828 ldr r0, [r5, #0] 4e54: 4798 blx r3 4e56: b958 cbnz r0, 4e70 } } vdb->flushing = 1; if(disp_refr->driver.buffer->last_area && disp_refr->driver.buffer->last_part) vdb->flushing_last = 1; 4e58: 6828 ldr r0, [r5, #0] vdb->flushing = 1; 4e5a: 2301 movs r3, #1 if(disp_refr->driver.buffer->last_area && disp_refr->driver.buffer->last_part) vdb->flushing_last = 1; 4e5c: 6842 ldr r2, [r0, #4] vdb->flushing = 1; 4e5e: 61a3 str r3, [r4, #24] if(disp_refr->driver.buffer->last_area && disp_refr->driver.buffer->last_part) vdb->flushing_last = 1; 4e60: 6a11 ldr r1, [r2, #32] 4e62: 07c9 lsls r1, r1, #31 4e64: d409 bmi.n 4e7a else vdb->flushing_last = 0; 4e66: 2300 movs r3, #0 4e68: e00a b.n 4e80 if(disp_refr->driver.wait_cb) disp_refr->driver.wait_cb(&disp_refr->driver); 4e6a: 69c3 ldr r3, [r0, #28] 4e6c: b10b cbz r3, 4e72 4e6e: 4798 blx r3 4e70: 6828 ldr r0, [r5, #0] while(vdb->flushing) { 4e72: 69a3 ldr r3, [r4, #24] 4e74: 2b00 cmp r3, #0 4e76: d1f8 bne.n 4e6a 4e78: e7ee b.n 4e58 if(disp_refr->driver.buffer->last_area && disp_refr->driver.buffer->last_part) vdb->flushing_last = 1; 4e7a: 6a12 ldr r2, [r2, #32] 4e7c: 0792 lsls r2, r2, #30 4e7e: d5f2 bpl.n 4e66 else vdb->flushing_last = 0; 4e80: 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); 4e82: 68c3 ldr r3, [r0, #12] 4e84: b11b cbz r3, 4e8e 4e86: 68a2 ldr r2, [r4, #8] 4e88: f104 0110 add.w r1, r4, #16 4e8c: 4798 blx r3 if(vdb->buf1 && vdb->buf2) { 4e8e: 6822 ldr r2, [r4, #0] 4e90: b132 cbz r2, 4ea0 4e92: 6863 ldr r3, [r4, #4] 4e94: b123 cbz r3, 4ea0 if(vdb->buf_act == vdb->buf1) 4e96: 68a1 ldr r1, [r4, #8] vdb->buf_act = vdb->buf2; 4e98: 428a cmp r2, r1 4e9a: bf18 it ne 4e9c: 4613 movne r3, r2 4e9e: 60a3 str r3, [r4, #8] else vdb->buf_act = vdb->buf1; } } 4ea0: bd38 pop {r3, r4, r5, pc} 4ea2: bf00 nop 4ea4: 20008a9c .word 0x20008a9c 4ea8: 0000dc0d .word 0x0000dc0d 4eac: 0000dc11 .word 0x0000dc11 00004eb0 : { 4eb0: 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) { 4eb4: 2200 movs r2, #0 { 4eb6: 460c mov r4, r1 if(_lv_area_is_in(area_p, &obj->coords, 0) && obj->hidden == 0) { 4eb8: 4b17 ldr r3, [pc, #92] ; (4f18 ) 4eba: 3110 adds r1, #16 { 4ebc: 4607 mov r7, r0 if(_lv_area_is_in(area_p, &obj->coords, 0) && obj->hidden == 0) { 4ebe: 4798 blx r3 4ec0: b910 cbnz r0, 4ec8 lv_obj_t * found_p = NULL; 4ec2: 2000 movs r0, #0 } 4ec4: 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) { 4ec8: f894 3034 ldrb.w r3, [r4, #52] ; 0x34 4ecc: 06db lsls r3, r3, #27 4ece: d4f8 bmi.n 4ec2 lv_design_res_t design_res = obj->design_cb ? obj->design_cb(obj, area_p, 4ed0: 6a23 ldr r3, [r4, #32] 4ed2: b19b cbz r3, 4efc 4ed4: 2202 movs r2, #2 4ed6: 4639 mov r1, r7 4ed8: 4620 mov r0, r4 4eda: 4798 blx r3 if(design_res == LV_DESIGN_RES_MASKED) return NULL; 4edc: 2803 cmp r0, #3 lv_design_res_t design_res = obj->design_cb ? obj->design_cb(obj, area_p, 4ede: 4606 mov r6, r0 if(design_res == LV_DESIGN_RES_MASKED) return NULL; 4ee0: d0ef beq.n 4ec2 _LV_LL_READ(obj->child_ll, i) { 4ee2: f104 0804 add.w r8, r4, #4 4ee6: 4b0d ldr r3, [pc, #52] ; (4f1c ) 4ee8: f8df 9034 ldr.w r9, [pc, #52] ; 4f20 4eec: 4640 mov r0, r8 4eee: 4798 blx r3 4ef0: 4605 mov r5, r0 4ef2: b92d cbnz r5, 4f00 if(design_res == LV_DESIGN_RES_COVER) { 4ef4: 2e01 cmp r6, #1 4ef6: d1e4 bne.n 4ec2 4ef8: 4620 mov r0, r4 4efa: e7e3 b.n 4ec4 lv_design_res_t design_res = obj->design_cb ? obj->design_cb(obj, area_p, 4efc: 2602 movs r6, #2 4efe: e7f0 b.n 4ee2 found_p = lv_refr_get_top_obj(area_p, i); 4f00: 4629 mov r1, r5 4f02: 4638 mov r0, r7 4f04: f7ff ffd4 bl 4eb0 if(found_p != NULL) { 4f08: 2800 cmp r0, #0 4f0a: d1db bne.n 4ec4 _LV_LL_READ(obj->child_ll, i) { 4f0c: 4629 mov r1, r5 4f0e: 4640 mov r0, r8 4f10: 47c8 blx r9 4f12: 4605 mov r5, r0 4f14: e7ed b.n 4ef2 4f16: bf00 nop 4f18: 0000e2bd .word 0x0000e2bd 4f1c: 0000e8d5 .word 0x0000e8d5 4f20: 0000e8e1 .word 0x0000e8e1 00004f24 : { 4f24: e92d 43f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} if(obj->hidden != 0) return; 4f28: f890 8034 ldrb.w r8, [r0, #52] ; 0x34 4f2c: f018 0810 ands.w r8, r8, #16 { 4f30: b08b sub sp, #44 ; 0x2c 4f32: 4604 mov r4, r0 4f34: 460f mov r7, r1 if(obj->hidden != 0) return; 4f36: d13c bne.n 4fb2 lv_coord_t ext_size = obj->ext_draw_pad; 4f38: f9b0 5032 ldrsh.w r5, [r0, #50] ; 0x32 lv_obj_get_coords(obj, &obj_area); 4f3c: 4e31 ldr r6, [pc, #196] ; (5004 ) union_ok = _lv_area_intersect(&obj_ext_mask, mask_ori_p, &obj_area); 4f3e: f8df 90cc ldr.w r9, [pc, #204] ; 500c lv_obj_get_coords(obj, &obj_area); 4f42: a904 add r1, sp, #16 4f44: 47b0 blx r6 obj_area.x1 -= ext_size; 4f46: f8bd 2010 ldrh.w r2, [sp, #16] 4f4a: b2ab uxth r3, r5 4f4c: 1ad2 subs r2, r2, r3 4f4e: f8ad 2010 strh.w r2, [sp, #16] obj_area.y1 -= ext_size; 4f52: f8bd 2012 ldrh.w r2, [sp, #18] 4f56: 1ad2 subs r2, r2, r3 4f58: f8ad 2012 strh.w r2, [sp, #18] obj_area.x2 += ext_size; 4f5c: f8bd 2014 ldrh.w r2, [sp, #20] 4f60: 441a add r2, r3 4f62: f8ad 2014 strh.w r2, [sp, #20] obj_area.y2 += ext_size; 4f66: f8bd 2016 ldrh.w r2, [sp, #22] union_ok = _lv_area_intersect(&obj_ext_mask, mask_ori_p, &obj_area); 4f6a: 4639 mov r1, r7 obj_area.y2 += ext_size; 4f6c: 4413 add r3, r2 union_ok = _lv_area_intersect(&obj_ext_mask, mask_ori_p, &obj_area); 4f6e: a802 add r0, sp, #8 4f70: aa04 add r2, sp, #16 obj_area.y2 += ext_size; 4f72: f8ad 3016 strh.w r3, [sp, #22] union_ok = _lv_area_intersect(&obj_ext_mask, mask_ori_p, &obj_area); 4f76: 47c8 blx r9 if(union_ok != false) { 4f78: b1d8 cbz r0, 4fb2 if(obj->design_cb) obj->design_cb(obj, &obj_ext_mask, LV_DESIGN_DRAW_MAIN); 4f7a: 6a23 ldr r3, [r4, #32] 4f7c: b11b cbz r3, 4f86 4f7e: 4642 mov r2, r8 4f80: a902 add r1, sp, #8 4f82: 4620 mov r0, r4 4f84: 4798 blx r3 lv_obj_get_coords(obj, &obj_area); 4f86: a904 add r1, sp, #16 4f88: 4620 mov r0, r4 4f8a: 47b0 blx r6 union_ok = _lv_area_intersect(&obj_mask, mask_ori_p, &obj_area); 4f8c: aa04 add r2, sp, #16 4f8e: 4639 mov r1, r7 4f90: 4668 mov r0, sp 4f92: 47c8 blx r9 if(union_ok != false) { 4f94: b138 cbz r0, 4fa6 _LV_LL_READ_BACK(obj->child_ll, child_p) { 4f96: 1d27 adds r7, r4, #4 4f98: 4b1b ldr r3, [pc, #108] ; (5008 ) 4f9a: f8df 8074 ldr.w r8, [pc, #116] ; 5010 4f9e: 4638 mov r0, r7 4fa0: 4798 blx r3 4fa2: 4605 mov r5, r0 4fa4: b945 cbnz r5, 4fb8 if(obj->design_cb) obj->design_cb(obj, &obj_ext_mask, LV_DESIGN_DRAW_POST); 4fa6: 6a23 ldr r3, [r4, #32] 4fa8: b11b cbz r3, 4fb2 4faa: 2201 movs r2, #1 4fac: a902 add r1, sp, #8 4fae: 4620 mov r0, r4 4fb0: 4798 blx r3 } 4fb2: b00b add sp, #44 ; 0x2c 4fb4: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} lv_obj_get_coords(child_p, &child_area); 4fb8: a908 add r1, sp, #32 4fba: 4628 mov r0, r5 4fbc: 47b0 blx r6 child_area.x1 -= ext_size; 4fbe: 8e6b ldrh r3, [r5, #50] ; 0x32 4fc0: f8bd 2020 ldrh.w r2, [sp, #32] 4fc4: 1ad2 subs r2, r2, r3 4fc6: f8ad 2020 strh.w r2, [sp, #32] child_area.y1 -= ext_size; 4fca: f8bd 2022 ldrh.w r2, [sp, #34] ; 0x22 4fce: 1ad2 subs r2, r2, r3 4fd0: f8ad 2022 strh.w r2, [sp, #34] ; 0x22 child_area.x2 += ext_size; 4fd4: f8bd 2024 ldrh.w r2, [sp, #36] ; 0x24 4fd8: 441a add r2, r3 4fda: f8ad 2024 strh.w r2, [sp, #36] ; 0x24 child_area.y2 += ext_size; 4fde: f8bd 2026 ldrh.w r2, [sp, #38] ; 0x26 union_ok = _lv_area_intersect(&mask_child, &obj_mask, &child_area); 4fe2: 4669 mov r1, sp child_area.y2 += ext_size; 4fe4: 4413 add r3, r2 union_ok = _lv_area_intersect(&mask_child, &obj_mask, &child_area); 4fe6: a806 add r0, sp, #24 4fe8: aa08 add r2, sp, #32 child_area.y2 += ext_size; 4fea: f8ad 3026 strh.w r3, [sp, #38] ; 0x26 union_ok = _lv_area_intersect(&mask_child, &obj_mask, &child_area); 4fee: 47c8 blx r9 if(union_ok) { 4ff0: b118 cbz r0, 4ffa lv_refr_obj(child_p, &mask_child); 4ff2: a906 add r1, sp, #24 4ff4: 4628 mov r0, r5 4ff6: f7ff ff95 bl 4f24 _LV_LL_READ_BACK(obj->child_ll, child_p) { 4ffa: 4629 mov r1, r5 4ffc: 4638 mov r0, r7 4ffe: 47c0 blx r8 5000: 4605 mov r5, r0 5002: e7cf b.n 4fa4 5004: 00002501 .word 0x00002501 5008: 0000e8db .word 0x0000e8db 500c: 0000e0b9 .word 0x0000e0b9 5010: 0000e901 .word 0x0000e901 00005014 : { 5014: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} 5018: 460e mov r6, r1 if(top_p == NULL) top_p = lv_disp_get_scr_act(disp_refr); 501a: 4604 mov r4, r0 501c: b928 cbnz r0, 502a 501e: 4b15 ldr r3, [pc, #84] ; (5074 ) 5020: 6818 ldr r0, [r3, #0] 5022: 4b15 ldr r3, [pc, #84] ; (5078 ) 5024: 4798 blx r3 if(top_p == NULL) return; /*Shouldn't happen*/ 5026: 4604 mov r4, r0 5028: b158 cbz r0, 5042 lv_refr_obj(top_p, mask_p); 502a: 4631 mov r1, r6 502c: 4620 mov r0, r4 502e: 4f13 ldr r7, [pc, #76] ; (507c ) par = lv_obj_get_parent(top_p); 5030: f8df 804c ldr.w r8, [pc, #76] ; 5080 lv_obj_t * i = _lv_ll_get_prev(&(par->child_ll), border_p); 5034: f8df 904c ldr.w r9, [pc, #76] ; 5084 lv_refr_obj(top_p, mask_p); 5038: 47b8 blx r7 par = lv_obj_get_parent(top_p); 503a: 4620 mov r0, r4 503c: 47c0 blx r8 503e: 4605 mov r5, r0 while(par != NULL) { 5040: b90d cbnz r5, 5046 } 5042: 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); 5046: f105 0a04 add.w sl, r5, #4 i = _lv_ll_get_prev(&(par->child_ll), i); 504a: 4621 mov r1, r4 504c: 4650 mov r0, sl 504e: 47c8 blx r9 5050: 4604 mov r4, r0 while(i != NULL) { 5052: b950 cbnz r0, 506a if(par->design_cb) par->design_cb(par, mask_p, LV_DESIGN_DRAW_POST); 5054: 6a2b ldr r3, [r5, #32] 5056: b11b cbz r3, 5060 5058: 2201 movs r2, #1 505a: 4631 mov r1, r6 505c: 4628 mov r0, r5 505e: 4798 blx r3 par = lv_obj_get_parent(par); 5060: 4628 mov r0, r5 5062: 47c0 blx r8 5064: 462c mov r4, r5 5066: 4605 mov r5, r0 5068: e7ea b.n 5040 lv_refr_obj(i, mask_p); 506a: 4631 mov r1, r6 506c: 4620 mov r0, r4 506e: 47b8 blx r7 5070: e7eb b.n 504a 5072: bf00 nop 5074: 20008a9c .word 0x20008a9c 5078: 00001a9d .word 0x00001a9d 507c: 00004f25 .word 0x00004f25 5080: 00002351 .word 0x00002351 5084: 0000e901 .word 0x0000e901 00005088 : { 5088: b573 push {r0, r1, r4, r5, r6, lr} lv_disp_buf_t * vdb = lv_disp_get_buf(disp_refr); 508a: 4c1a ldr r4, [pc, #104] ; (50f4 ) 508c: 4b1a ldr r3, [pc, #104] ; (50f8 ) { 508e: 4606 mov r6, r0 lv_disp_buf_t * vdb = lv_disp_get_buf(disp_refr); 5090: 6820 ldr r0, [r4, #0] 5092: 4798 blx r3 if(lv_disp_is_double_buf(disp_refr) == false) { 5094: 4b19 ldr r3, [pc, #100] ; (50fc ) lv_disp_buf_t * vdb = lv_disp_get_buf(disp_refr); 5096: 4605 mov r5, r0 if(lv_disp_is_double_buf(disp_refr) == false) { 5098: 6820 ldr r0, [r4, #0] 509a: 4798 blx r3 509c: b320 cbz r0, 50e8 _lv_area_intersect(&start_mask, area_p, &vdb->area); 509e: f105 0210 add.w r2, r5, #16 50a2: 4631 mov r1, r6 50a4: 4b16 ldr r3, [pc, #88] ; (5100 ) lv_refr_obj_and_children(top_p, &start_mask); 50a6: 4d17 ldr r5, [pc, #92] ; (5104 ) _lv_area_intersect(&start_mask, area_p, &vdb->area); 50a8: 4668 mov r0, sp 50aa: 4798 blx r3 top_p = lv_refr_get_top_obj(&start_mask, lv_disp_get_scr_act(disp_refr)); 50ac: 4b16 ldr r3, [pc, #88] ; (5108 ) 50ae: 6820 ldr r0, [r4, #0] 50b0: 4798 blx r3 50b2: 4b16 ldr r3, [pc, #88] ; (510c ) 50b4: 4601 mov r1, r0 50b6: 4668 mov r0, sp 50b8: 4798 blx r3 lv_refr_obj_and_children(top_p, &start_mask); 50ba: 4669 mov r1, sp 50bc: 47a8 blx r5 lv_refr_obj_and_children(lv_disp_get_layer_top(disp_refr), &start_mask); 50be: 4b14 ldr r3, [pc, #80] ; (5110 ) 50c0: 6820 ldr r0, [r4, #0] 50c2: 4798 blx r3 50c4: 4669 mov r1, sp 50c6: 47a8 blx r5 lv_refr_obj_and_children(lv_disp_get_layer_sys(disp_refr), &start_mask); 50c8: 4b12 ldr r3, [pc, #72] ; (5114 ) 50ca: 6820 ldr r0, [r4, #0] 50cc: 4798 blx r3 50ce: 4669 mov r1, sp 50d0: 47a8 blx r5 if(lv_disp_is_true_double_buf(disp_refr) == false) { 50d2: 6820 ldr r0, [r4, #0] 50d4: 4b10 ldr r3, [pc, #64] ; (5118 ) 50d6: 4798 blx r3 50d8: b908 cbnz r0, 50de lv_refr_vdb_flush(); 50da: 4b10 ldr r3, [pc, #64] ; (511c ) 50dc: 4798 blx r3 } 50de: b002 add sp, #8 50e0: bd70 pop {r4, r5, r6, pc} if(disp_refr->driver.wait_cb) disp_refr->driver.wait_cb(&disp_refr->driver); 50e2: 69c3 ldr r3, [r0, #28] 50e4: b10b cbz r3, 50ea 50e6: 4798 blx r3 50e8: 6820 ldr r0, [r4, #0] while(vdb->flushing) { 50ea: 69ab ldr r3, [r5, #24] 50ec: 2b00 cmp r3, #0 50ee: d1f8 bne.n 50e2 50f0: e7d5 b.n 509e 50f2: bf00 nop 50f4: 20008a9c .word 0x20008a9c 50f8: 0000dc0d .word 0x0000dc0d 50fc: 0000dc11 .word 0x0000dc11 5100: 0000e0b9 .word 0x0000e0b9 5104: 00005015 .word 0x00005015 5108: 00001a9d .word 0x00001a9d 510c: 00004eb1 .word 0x00004eb1 5110: 00001ad9 .word 0x00001ad9 5114: 00001b15 .word 0x00001b15 5118: 0000dc21 .word 0x0000dc21 511c: 00004e45 .word 0x00004e45 00005120 : 5120: 3901 subs r1, #1 5122: f100 0308 add.w r3, r0, #8 *d8 = *s8; 5126: f811 2f01 ldrb.w r2, [r1, #1]! 512a: f800 2b01 strb.w r2, [r0], #1 while(len) { 512e: 4298 cmp r0, r3 5130: d1f9 bne.n 5126 } 5132: 4770 bx lr 00005134 <_lv_refr_init>: } 5134: 4770 bx lr ... 00005138 <_lv_inv_area>: { 5138: e92d 41ff stmdb sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, lr} 513c: 460d mov r5, r1 if(!disp) disp = lv_disp_get_default(); 513e: 4604 mov r4, r0 5140: b918 cbnz r0, 514a <_lv_inv_area+0x12> 5142: 4b2d ldr r3, [pc, #180] ; (51f8 <_lv_inv_area+0xc0>) 5144: 4798 blx r3 if(!disp) return; 5146: 4604 mov r4, r0 5148: b130 cbz r0, 5158 <_lv_inv_area+0x20> if(area_p == NULL) { 514a: b945 cbnz r5, 515e <_lv_inv_area+0x26> disp->inv_p = 0; 514c: f8b4 3168 ldrh.w r3, [r4, #360] ; 0x168 5150: f365 0309 bfi r3, r5, #0, #10 5154: f8a4 3168 strh.w r3, [r4, #360] ; 0x168 } 5158: b004 add sp, #16 515a: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} scr_area.x1 = 0; 515e: 2300 movs r3, #0 5160: 9300 str r3, [sp, #0] scr_area.x2 = lv_disp_get_hor_res(disp) - 1; 5162: 4620 mov r0, r4 5164: 4b25 ldr r3, [pc, #148] ; (51fc <_lv_inv_area+0xc4>) 5166: 4798 blx r3 5168: 3801 subs r0, #1 scr_area.y2 = lv_disp_get_ver_res(disp) - 1; 516a: 4b25 ldr r3, [pc, #148] ; (5200 <_lv_inv_area+0xc8>) scr_area.x2 = lv_disp_get_hor_res(disp) - 1; 516c: f8ad 0004 strh.w r0, [sp, #4] scr_area.y2 = lv_disp_get_ver_res(disp) - 1; 5170: 4620 mov r0, r4 5172: 4798 blx r3 5174: 3801 subs r0, #1 5176: f8ad 0006 strh.w r0, [sp, #6] suc = _lv_area_intersect(&com_area, area_p, &scr_area); 517a: 4b22 ldr r3, [pc, #136] ; (5204 <_lv_inv_area+0xcc>) 517c: 466a mov r2, sp 517e: 4629 mov r1, r5 5180: a802 add r0, sp, #8 5182: 4798 blx r3 if(suc != false) { 5184: 2800 cmp r0, #0 5186: d0e7 beq.n 5158 <_lv_inv_area+0x20> if(disp->driver.rounder_cb) disp->driver.rounder_cb(&disp->driver, &com_area); 5188: 6923 ldr r3, [r4, #16] 518a: b113 cbz r3, 5192 <_lv_inv_area+0x5a> 518c: a902 add r1, sp, #8 518e: 4620 mov r0, r4 5190: 4798 blx r3 5192: f104 0548 add.w r5, r4, #72 ; 0x48 if(_lv_area_is_in(&com_area, &disp->inv_areas[i], 0) != false) return; 5196: f8df 8078 ldr.w r8, [pc, #120] ; 5210 <_lv_inv_area+0xd8> { 519a: 2600 movs r6, #0 519c: 462f mov r7, r5 for(i = 0; i < disp->inv_p; i++) { 519e: f8b4 3168 ldrh.w r3, [r4, #360] ; 0x168 51a2: b2b2 uxth r2, r6 51a4: f3c3 0009 ubfx r0, r3, #0, #10 51a8: 4290 cmp r0, r2 51aa: d81c bhi.n 51e6 <_lv_inv_area+0xae> if(disp->inv_p < LV_INV_BUF_SIZE) { 51ac: 281f cmp r0, #31 lv_area_copy(&disp->inv_areas[disp->inv_p], &com_area); 51ae: bf9b ittet ls 51b0: 3009 addls r0, #9 51b2: f3c0 0009 ubfxls r0, r0, #0, #10 disp->inv_p = 0; 51b6: f36f 0309 bfchi r3, #0, #10 lv_area_copy(&disp->inv_areas[disp->inv_p], &com_area); 51ba: a902 addls r1, sp, #8 51bc: bf91 iteee ls 51be: eb04 00c0 addls.w r0, r4, r0, lsl #3 disp->inv_p = 0; 51c2: f8a4 3168 strhhi.w r3, [r4, #360] ; 0x168 lv_area_copy(&disp->inv_areas[disp->inv_p], &scr_area); 51c6: 4669 movhi r1, sp 51c8: 4638 movhi r0, r7 51ca: 4a0f ldr r2, [pc, #60] ; (5208 <_lv_inv_area+0xd0>) 51cc: 4790 blx r2 disp->inv_p++; 51ce: f8b4 3168 ldrh.w r3, [r4, #360] ; 0x168 lv_task_set_prio(disp->refr_task, LV_REFR_TASK_PRIO); 51d2: 6ae0 ldr r0, [r4, #44] ; 0x2c disp->inv_p++; 51d4: 1c5a adds r2, r3, #1 51d6: f362 0309 bfi r3, r2, #0, #10 51da: f8a4 3168 strh.w r3, [r4, #360] ; 0x168 lv_task_set_prio(disp->refr_task, LV_REFR_TASK_PRIO); 51de: 2103 movs r1, #3 51e0: 4b0a ldr r3, [pc, #40] ; (520c <_lv_inv_area+0xd4>) 51e2: 4798 blx r3 51e4: e7b8 b.n 5158 <_lv_inv_area+0x20> if(_lv_area_is_in(&com_area, &disp->inv_areas[i], 0) != false) return; 51e6: 4629 mov r1, r5 51e8: 2200 movs r2, #0 51ea: a802 add r0, sp, #8 51ec: 47c0 blx r8 51ee: 3601 adds r6, #1 51f0: 3508 adds r5, #8 51f2: 2800 cmp r0, #0 51f4: d0d3 beq.n 519e <_lv_inv_area+0x66> 51f6: e7af b.n 5158 <_lv_inv_area+0x20> 51f8: 0000db29 .word 0x0000db29 51fc: 0000db35 .word 0x0000db35 5200: 0000db59 .word 0x0000db59 5204: 0000e0b9 .word 0x0000e0b9 5208: 00005121 .word 0x00005121 520c: 0000fda5 .word 0x0000fda5 5210: 0000e2bd .word 0x0000e2bd 00005214 <_lv_refr_get_disp_refreshing>: } 5214: 4b01 ldr r3, [pc, #4] ; (521c <_lv_refr_get_disp_refreshing+0x8>) 5216: 6818 ldr r0, [r3, #0] 5218: 4770 bx lr 521a: bf00 nop 521c: 20008a9c .word 0x20008a9c 00005220 <_lv_disp_refr_task>: { 5220: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} 5224: ed2d 8b02 vpush {d8} uint32_t start = lv_tick_get(); 5228: 4b82 ldr r3, [pc, #520] ; (5434 <_lv_disp_refr_task+0x214>) disp_refr = task->user_data; 522a: 4c83 ldr r4, [pc, #524] ; (5438 <_lv_disp_refr_task+0x218>) { 522c: b08b sub sp, #44 ; 0x2c 522e: 4605 mov r5, r0 uint32_t start = lv_tick_get(); 5230: 4798 blx r3 disp_refr = task->user_data; 5232: 68eb ldr r3, [r5, #12] 5234: 6023 str r3, [r4, #0] lv_task_set_prio(task, LV_TASK_PRIO_OFF); 5236: 2100 movs r1, #0 5238: 4b80 ldr r3, [pc, #512] ; (543c <_lv_disp_refr_task+0x21c>) uint32_t start = lv_tick_get(); 523a: ee08 0a90 vmov s17, r0 lv_task_set_prio(task, LV_TASK_PRIO_OFF); 523e: 4628 mov r0, r5 5240: 4798 blx r3 if(disp_refr->act_scr == NULL) { 5242: 6823 ldr r3, [r4, #0] 5244: 6bd9 ldr r1, [r3, #60] ; 0x3c 5246: 2900 cmp r1, #0 5248: f040 808b bne.w 5362 <_lv_disp_refr_task+0x142> disp_refr->inv_p = 0; 524c: f8b3 2168 ldrh.w r2, [r3, #360] ; 0x168 5250: f361 0209 bfi r2, r1, #0, #10 5254: f8a3 2168 strh.w r2, [r3, #360] ; 0x168 } 5258: b00b add sp, #44 ; 0x2c 525a: ecbd 8b02 vpop {d8} 525e: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} if(disp_refr->inv_area_joined[join_in] != 0) continue; 5262: 4433 add r3, r6 5264: f893 5148 ldrb.w r5, [r3, #328] ; 0x148 5268: 2d00 cmp r5, #0 526a: d03c beq.n 52e6 <_lv_disp_refr_task+0xc6> for(join_in = 0; join_in < disp_refr->inv_p; join_in++) { 526c: 3601 adds r6, #1 526e: 6823 ldr r3, [r4, #0] 5270: f8b3 2168 ldrh.w r2, [r3, #360] ; 0x168 5274: f3c2 0109 ubfx r1, r2, #0, #10 5278: 428e cmp r6, r1 527a: d3f2 bcc.n 5262 <_lv_disp_refr_task+0x42> px_num = 0; 527c: 2000 movs r0, #0 527e: 6060 str r0, [r4, #4] if(disp_refr->inv_p == 0) return; 5280: 2900 cmp r1, #0 5282: d171 bne.n 5368 <_lv_disp_refr_task+0x148> if(disp_refr->inv_p != 0) { 5284: 4f6c ldr r7, [pc, #432] ; (5438 <_lv_disp_refr_task+0x218>) 5286: 6838 ldr r0, [r7, #0] 5288: f8b0 3168 ldrh.w r3, [r0, #360] ; 0x168 528c: f3c3 0309 ubfx r3, r3, #0, #10 5290: b303 cbz r3, 52d4 <_lv_disp_refr_task+0xb4> if(lv_disp_is_true_double_buf(disp_refr) && disp_refr->driver.set_px_cb == NULL) { 5292: 4b6b ldr r3, [pc, #428] ; (5440 <_lv_disp_refr_task+0x220>) 5294: 4798 blx r3 5296: 2800 cmp r0, #0 5298: f040 81a1 bne.w 55de <_lv_disp_refr_task+0x3be> _lv_memset_00(disp_refr->inv_areas, sizeof(disp_refr->inv_areas)); 529c: 6820 ldr r0, [r4, #0] 529e: 4d69 ldr r5, [pc, #420] ; (5444 <_lv_disp_refr_task+0x224>) 52a0: f44f 7180 mov.w r1, #256 ; 0x100 52a4: 3048 adds r0, #72 ; 0x48 52a6: 47a8 blx r5 _lv_memset_00(disp_refr->inv_area_joined, sizeof(disp_refr->inv_area_joined)); 52a8: 6820 ldr r0, [r4, #0] 52aa: 2120 movs r1, #32 52ac: f500 70a4 add.w r0, r0, #328 ; 0x148 52b0: 47a8 blx r5 disp_refr->inv_p = 0; 52b2: 6823 ldr r3, [r4, #0] 52b4: f8b3 2168 ldrh.w r2, [r3, #360] ; 0x168 52b8: f36f 0209 bfc r2, #0, #10 52bc: f8a3 2168 strh.w r2, [r3, #360] ; 0x168 elaps = lv_tick_elaps(start); 52c0: ee18 0a90 vmov r0, s17 52c4: 4b60 ldr r3, [pc, #384] ; (5448 <_lv_disp_refr_task+0x228>) 52c6: 4798 blx r3 52c8: 4601 mov r1, r0 if(disp_refr->driver.monitor_cb) { 52ca: 6820 ldr r0, [r4, #0] 52cc: 6983 ldr r3, [r0, #24] 52ce: 2b00 cmp r3, #0 52d0: f040 81dd bne.w 568e <_lv_disp_refr_task+0x46e> _lv_mem_buf_free_all(); 52d4: 4b5d ldr r3, [pc, #372] ; (544c <_lv_disp_refr_task+0x22c>) 52d6: 4798 blx r3 _lv_font_clean_up_fmt_txt(); 52d8: 4b5d ldr r3, [pc, #372] ; (5450 <_lv_disp_refr_task+0x230>) } 52da: b00b add sp, #44 ; 0x2c 52dc: ecbd 8b02 vpop {d8} 52e0: e8bd 4ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} _lv_font_clean_up_fmt_txt(); 52e4: 4718 bx r3 52e6: 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]) + 52ea: f8df a184 ldr.w sl, [pc, #388] ; 5470 <_lv_disp_refr_task+0x250> 52ee: f109 0948 add.w r9, r9, #72 ; 0x48 for(join_from = 0; join_from < disp_refr->inv_p; join_from++) { 52f2: 6820 ldr r0, [r4, #0] 52f4: f8b0 3168 ldrh.w r3, [r0, #360] ; 0x168 52f8: f3c3 0309 ubfx r3, r3, #0, #10 52fc: 429d cmp r5, r3 52fe: d2b5 bcs.n 526c <_lv_disp_refr_task+0x4c> if(disp_refr->inv_area_joined[join_from] != 0 || join_in == join_from) { 5300: 1943 adds r3, r0, r5 5302: f893 3148 ldrb.w r3, [r3, #328] ; 0x148 5306: bb53 cbnz r3, 535e <_lv_disp_refr_task+0x13e> 5308: 42ae cmp r6, r5 530a: d028 beq.n 535e <_lv_disp_refr_task+0x13e> if(_lv_area_is_on(&disp_refr->inv_areas[join_in], &disp_refr->inv_areas[join_from]) == false) { 530c: ea4f 0bc5 mov.w fp, r5, lsl #3 5310: f10b 0b48 add.w fp, fp, #72 ; 0x48 5314: eb00 010b add.w r1, r0, fp 5318: 4448 add r0, r9 531a: 47b8 blx r7 531c: b1f8 cbz r0, 535e <_lv_disp_refr_task+0x13e> _lv_area_join(&joined_area, &disp_refr->inv_areas[join_in], &disp_refr->inv_areas[join_from]); 531e: 6821 ldr r1, [r4, #0] 5320: 4b4c ldr r3, [pc, #304] ; (5454 <_lv_disp_refr_task+0x234>) 5322: eb01 020b add.w r2, r1, fp 5326: a808 add r0, sp, #32 5328: 4449 add r1, r9 532a: 4798 blx r3 if(lv_area_get_size(&joined_area) < (lv_area_get_size(&disp_refr->inv_areas[join_in]) + 532c: a808 add r0, sp, #32 532e: 47d0 blx sl 5330: 4680 mov r8, r0 5332: 6820 ldr r0, [r4, #0] 5334: 4448 add r0, r9 5336: 47d0 blx sl 5338: 9003 str r0, [sp, #12] lv_area_get_size(&disp_refr->inv_areas[join_from]))) { 533a: 6820 ldr r0, [r4, #0] 533c: 4458 add r0, fp 533e: 47d0 blx sl if(lv_area_get_size(&joined_area) < (lv_area_get_size(&disp_refr->inv_areas[join_in]) + 5340: 9b03 ldr r3, [sp, #12] 5342: 4418 add r0, r3 5344: 4580 cmp r8, r0 5346: d20a bcs.n 535e <_lv_disp_refr_task+0x13e> lv_area_copy(&disp_refr->inv_areas[join_in], &joined_area); 5348: f8d4 b000 ldr.w fp, [r4] 534c: 4b42 ldr r3, [pc, #264] ; (5458 <_lv_disp_refr_task+0x238>) 534e: eb0b 0009 add.w r0, fp, r9 5352: a908 add r1, sp, #32 disp_refr->inv_area_joined[join_from] = 1; 5354: 44ab add fp, r5 lv_area_copy(&disp_refr->inv_areas[join_in], &joined_area); 5356: 4798 blx r3 disp_refr->inv_area_joined[join_from] = 1; 5358: 2301 movs r3, #1 535a: f88b 3148 strb.w r3, [fp, #328] ; 0x148 for(join_from = 0; join_from < disp_refr->inv_p; join_from++) { 535e: 3501 adds r5, #1 5360: e7c7 b.n 52f2 <_lv_disp_refr_task+0xd2> if(_lv_area_is_on(&disp_refr->inv_areas[join_in], &disp_refr->inv_areas[join_from]) == false) { 5362: 4f3e ldr r7, [pc, #248] ; (545c <_lv_disp_refr_task+0x23c>) for(join_in = 0; join_in < disp_refr->inv_p; join_in++) { 5364: 2600 movs r6, #0 5366: e782 b.n 526e <_lv_disp_refr_task+0x4e> for(i = disp_refr->inv_p - 1; i >= 0; i--) { 5368: 1e4f subs r7, r1, #1 if(disp_refr->inv_area_joined[i] == 0) { 536a: f503 72a4 add.w r2, r3, #328 ; 0x148 for(i = disp_refr->inv_p - 1; i >= 0; i--) { 536e: 1c79 adds r1, r7, #1 5370: d15b bne.n 542a <_lv_disp_refr_task+0x20a> int32_t last_i = 0; 5372: 2700 movs r7, #0 disp_refr->driver.buffer->last_area = 0; 5374: 685b ldr r3, [r3, #4] for(i = 0; i < disp_refr->inv_p; i++) { 5376: f8df 80c0 ldr.w r8, [pc, #192] ; 5438 <_lv_disp_refr_task+0x218> disp_refr->driver.buffer->last_area = 0; 537a: f893 2020 ldrb.w r2, [r3, #32] 537e: f36f 0200 bfc r2, #0, #1 5382: f883 2020 strb.w r2, [r3, #32] disp_refr->driver.buffer->last_part = 0; 5386: f893 2020 ldrb.w r2, [r3, #32] 538a: f36f 0241 bfc r2, #1, #1 538e: f883 2020 strb.w r2, [r3, #32] for(i = 0; i < disp_refr->inv_p; i++) { 5392: f04f 0b00 mov.w fp, #0 5396: f8d8 5000 ldr.w r5, [r8] 539a: f8b5 3168 ldrh.w r3, [r5, #360] ; 0x168 539e: f3c3 0309 ubfx r3, r3, #0, #10 53a2: 459b cmp fp, r3 53a4: f6bf af6e bge.w 5284 <_lv_disp_refr_task+0x64> if(disp_refr->inv_area_joined[i] == 0) { 53a8: eb05 030b add.w r3, r5, fp 53ac: f893 3148 ldrb.w r3, [r3, #328] ; 0x148 53b0: 2b00 cmp r3, #0 53b2: f040 80c6 bne.w 5542 <_lv_disp_refr_task+0x322> if(i == last_i) disp_refr->driver.buffer->last_area = 1; 53b6: 686b ldr r3, [r5, #4] 53b8: 45bb cmp fp, r7 53ba: bf02 ittt eq 53bc: f893 2020 ldrbeq.w r2, [r3, #32] 53c0: f042 0201 orreq.w r2, r2, #1 53c4: f883 2020 strbeq.w r2, [r3, #32] disp_refr->driver.buffer->last_part = 0; 53c8: f893 2020 ldrb.w r2, [r3, #32] 53cc: ea4f 09cb mov.w r9, fp, lsl #3 53d0: f36f 0241 bfc r2, #1, #1 53d4: f883 2020 strb.w r2, [r3, #32] lv_refr_area(&disp_refr->inv_areas[i]); 53d8: f109 0348 add.w r3, r9, #72 ; 0x48 53dc: 9304 str r3, [sp, #16] 53de: 18eb adds r3, r5, r3 53e0: ee08 3a10 vmov s16, r3 if(lv_disp_is_true_double_buf(disp_refr)) { 53e4: 4628 mov r0, r5 53e6: 4b16 ldr r3, [pc, #88] ; (5440 <_lv_disp_refr_task+0x220>) 53e8: 4798 blx r3 53ea: 4b1d ldr r3, [pc, #116] ; (5460 <_lv_disp_refr_task+0x240>) 53ec: 2800 cmp r0, #0 53ee: d041 beq.n 5474 <_lv_disp_refr_task+0x254> lv_disp_buf_t * vdb = lv_disp_get_buf(disp_refr); 53f0: 6820 ldr r0, [r4, #0] 53f2: 4798 blx r3 vdb->area.x1 = 0; 53f4: 2600 movs r6, #0 lv_disp_buf_t * vdb = lv_disp_get_buf(disp_refr); 53f6: 4605 mov r5, r0 vdb->area.x2 = lv_disp_get_hor_res(disp_refr) - 1; 53f8: 4b1a ldr r3, [pc, #104] ; (5464 <_lv_disp_refr_task+0x244>) vdb->area.x1 = 0; 53fa: 8206 strh r6, [r0, #16] vdb->area.x2 = lv_disp_get_hor_res(disp_refr) - 1; 53fc: 6820 ldr r0, [r4, #0] 53fe: 4798 blx r3 5400: 3801 subs r0, #1 vdb->area.y2 = lv_disp_get_ver_res(disp_refr) - 1; 5402: 4b19 ldr r3, [pc, #100] ; (5468 <_lv_disp_refr_task+0x248>) vdb->area.x2 = lv_disp_get_hor_res(disp_refr) - 1; 5404: 82a8 strh r0, [r5, #20] vdb->area.y1 = 0; 5406: 826e strh r6, [r5, #18] vdb->area.y2 = lv_disp_get_ver_res(disp_refr) - 1; 5408: 6820 ldr r0, [r4, #0] 540a: 4798 blx r3 disp_refr->driver.buffer->last_part = 1; 540c: 6823 ldr r3, [r4, #0] vdb->area.y2 = lv_disp_get_ver_res(disp_refr) - 1; 540e: 3801 subs r0, #1 disp_refr->driver.buffer->last_part = 1; 5410: 685a ldr r2, [r3, #4] vdb->area.y2 = lv_disp_get_ver_res(disp_refr) - 1; 5412: 82e8 strh r0, [r5, #22] disp_refr->driver.buffer->last_part = 1; 5414: f892 3020 ldrb.w r3, [r2, #32] 5418: f043 0302 orr.w r3, r3, #2 541c: f882 3020 strb.w r3, [r2, #32] lv_refr_area_part(area_p); 5420: ee18 0a10 vmov r0, s16 5424: 4b11 ldr r3, [pc, #68] ; (546c <_lv_disp_refr_task+0x24c>) 5426: 4798 blx r3 5428: e07e b.n 5528 <_lv_disp_refr_task+0x308> if(disp_refr->inv_area_joined[i] == 0) { 542a: 5dd1 ldrb r1, [r2, r7] 542c: 2900 cmp r1, #0 542e: d0a1 beq.n 5374 <_lv_disp_refr_task+0x154> for(i = disp_refr->inv_p - 1; i >= 0; i--) { 5430: 3f01 subs r7, #1 5432: e79c b.n 536e <_lv_disp_refr_task+0x14e> 5434: 0000dc75 .word 0x0000dc75 5438: 20008a9c .word 0x20008a9c 543c: 0000fda5 .word 0x0000fda5 5440: 0000dc21 .word 0x0000dc21 5444: 0000f251 .word 0x0000f251 5448: 0000dc89 .word 0x0000dc89 544c: 0000ee15 .word 0x0000ee15 5450: 0000d96d .word 0x0000d96d 5454: 0000e10d .word 0x0000e10d 5458: 00005121 .word 0x00005121 545c: 0000e281 .word 0x0000e281 5460: 0000dc0d .word 0x0000dc0d 5464: 0000db35 .word 0x0000db35 5468: 0000db59 .word 0x0000db59 546c: 00005089 .word 0x00005089 5470: 0000e09d .word 0x0000e09d lv_disp_buf_t * vdb = lv_disp_get_buf(disp_refr); 5474: 444d add r5, r9 5476: 6820 ldr r0, [r4, #0] 5478: 4798 blx r3 return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); 547a: f8b5 904c ldrh.w r9, [r5, #76] ; 0x4c 547e: f8b5 3048 ldrh.w r3, [r5, #72] ; 0x48 return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); 5482: f9b5 204e ldrsh.w r2, [r5, #78] ; 0x4e 5486: 9203 str r2, [sp, #12] return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); 5488: f109 0901 add.w r9, r9, #1 548c: eba9 0903 sub.w r9, r9, r3 return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); 5490: f8b5 304a ldrh.w r3, [r5, #74] ; 0x4a 5494: f102 0a01 add.w sl, r2, #1 5498: ebaa 0a03 sub.w sl, sl, r3 549c: 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; 549e: 4b7d ldr r3, [pc, #500] ; (5694 <_lv_disp_refr_task+0x474>) 54a0: 6820 ldr r0, [r4, #0] 54a2: 4798 blx r3 lv_coord_t y2 = 54a4: 9a03 ldr r2, [sp, #12] 54a6: 4b7b ldr r3, [pc, #492] ; (5694 <_lv_disp_refr_task+0x474>) 54a8: 4282 cmp r2, r0 return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); 54aa: fa0f f989 sxth.w r9, r9 return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); 54ae: fa0f fa8a sxth.w sl, sl 54b2: db49 blt.n 5548 <_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; 54b4: 6820 ldr r0, [r4, #0] 54b6: 4798 blx r3 54b8: 3801 subs r0, #1 lv_coord_t y2 = 54ba: b203 sxth r3, r0 int32_t max_row = (uint32_t)vdb->size / w; 54bc: 68f2 ldr r2, [r6, #12] 54be: fbb2 f2f9 udiv r2, r2, r9 54c2: 4552 cmp r2, sl 54c4: bfa8 it ge 54c6: 4652 movge r2, sl 54c8: 9203 str r2, [sp, #12] if(disp_refr->driver.rounder_cb) { 54ca: f8d8 2000 ldr.w r2, [r8] 54ce: 6912 ldr r2, [r2, #16] 54d0: 2a00 cmp r2, #0 54d2: d040 beq.n 5556 <_lv_disp_refr_task+0x336> tmp.x1 = 0; 54d4: 2200 movs r2, #0 lv_coord_t h_tmp = max_row; 54d6: f9bd 900c ldrsh.w r9, [sp, #12] tmp.x1 = 0; 54da: 9208 str r2, [sp, #32] tmp.x2 = 0; 54dc: f8ad 2024 strh.w r2, [sp, #36] ; 0x24 disp_refr->driver.rounder_cb(&disp_refr->driver, &tmp); 54e0: f8d8 0000 ldr.w r0, [r8] 54e4: 9305 str r3, [sp, #20] tmp.y2 = h_tmp - 1; 54e6: 46ca mov sl, r9 54e8: f109 39ff add.w r9, r9, #4294967295 ; 0xffffffff 54ec: fa0f f989 sxth.w r9, r9 disp_refr->driver.rounder_cb(&disp_refr->driver, &tmp); 54f0: 6902 ldr r2, [r0, #16] tmp.y2 = h_tmp - 1; 54f2: f8ad 9026 strh.w r9, [sp, #38] ; 0x26 disp_refr->driver.rounder_cb(&disp_refr->driver, &tmp); 54f6: a908 add r1, sp, #32 54f8: 4790 blx r2 54fa: f9bd 1026 ldrsh.w r1, [sp, #38] ; 0x26 54fe: f8bd 2022 ldrh.w r2, [sp, #34] ; 0x22 if(lv_area_get_height(&tmp) <= max_row) break; 5502: 9b03 ldr r3, [sp, #12] 5504: 3101 adds r1, #1 5506: 1a8a subs r2, r1, r2 5508: b212 sxth r2, r2 550a: 4293 cmp r3, r2 550c: 9b05 ldr r3, [sp, #20] 550e: da1e bge.n 554e <_lv_disp_refr_task+0x32e> } while(h_tmp > 0); 5510: f1b9 0f00 cmp.w r9, #0 5514: dce4 bgt.n 54e0 <_lv_disp_refr_task+0x2c0> LV_LOG_WARN("Can't set VDB height using the round function. (Wrong round_cb or to " 5516: 4b60 ldr r3, [pc, #384] ; (5698 <_lv_disp_refr_task+0x478>) 5518: 9300 str r3, [sp, #0] 551a: 4960 ldr r1, [pc, #384] ; (569c <_lv_disp_refr_task+0x47c>) 551c: 4b60 ldr r3, [pc, #384] ; (56a0 <_lv_disp_refr_task+0x480>) 551e: 4d61 ldr r5, [pc, #388] ; (56a4 <_lv_disp_refr_task+0x484>) 5520: f44f 72cf mov.w r2, #414 ; 0x19e 5524: 2002 movs r0, #2 5526: 47a8 blx r5 if(disp_refr->driver.monitor_cb) px_num += lv_area_get_size(&disp_refr->inv_areas[i]); 5528: f8d8 0000 ldr.w r0, [r8] 552c: 6983 ldr r3, [r0, #24] 552e: b143 cbz r3, 5542 <_lv_disp_refr_task+0x322> 5530: 9b04 ldr r3, [sp, #16] 5532: 4418 add r0, r3 5534: 4b5c ldr r3, [pc, #368] ; (56a8 <_lv_disp_refr_task+0x488>) 5536: 4798 blx r3 5538: f8d8 3004 ldr.w r3, [r8, #4] 553c: 4418 add r0, r3 553e: f8c8 0004 str.w r0, [r8, #4] for(i = 0; i < disp_refr->inv_p; i++) { 5542: f10b 0b01 add.w fp, fp, #1 5546: e726 b.n 5396 <_lv_disp_refr_task+0x176> lv_coord_t y2 = 5548: f9b5 304e ldrsh.w r3, [r5, #78] ; 0x4e 554c: e7b6 b.n 54bc <_lv_disp_refr_task+0x29c> if(h_tmp <= 0) { 554e: f1ba 0f00 cmp.w sl, #0 5552: dde0 ble.n 5516 <_lv_disp_refr_task+0x2f6> max_row = tmp.y2 + 1; 5554: 9103 str r1, [sp, #12] vdb->area.y2 = row + max_row - 1; 5556: f8bd 100c ldrh.w r1, [sp, #12] for(row = area_p->y1; row + max_row - 1 <= y2; row += max_row) { 555a: f9b5 204a ldrsh.w r2, [r5, #74] ; 0x4a 555e: 1e48 subs r0, r1, #1 lv_coord_t row_last = 0; 5560: f04f 0900 mov.w r9, #0 5564: 9005 str r0, [sp, #20] for(row = area_p->y1; row + max_row - 1 <= y2; row += max_row) { 5566: 9803 ldr r0, [sp, #12] 5568: 1810 adds r0, r2, r0 556a: 3801 subs r0, #1 556c: 4298 cmp r0, r3 556e: dd0c ble.n 558a <_lv_disp_refr_task+0x36a> if(y2 != row_last) { 5570: 454b cmp r3, r9 5572: d0d9 beq.n 5528 <_lv_disp_refr_task+0x308> vdb->area.x1 = area_p->x1; 5574: f9b5 0048 ldrsh.w r0, [r5, #72] ; 0x48 if(y2 == row_last) disp_refr->driver.buffer->last_part = 1; 5578: 6821 ldr r1, [r4, #0] vdb->area.x1 = area_p->x1; 557a: 8230 strh r0, [r6, #16] vdb->area.x2 = area_p->x2; 557c: f9b5 004c ldrsh.w r0, [r5, #76] ; 0x4c 5580: 82b0 strh r0, [r6, #20] vdb->area.y1 = row; 5582: 8272 strh r2, [r6, #18] vdb->area.y2 = y2; 5584: 82f3 strh r3, [r6, #22] disp_refr->driver.buffer->last_part = 1; 5586: 684a ldr r2, [r1, #4] 5588: e744 b.n 5414 <_lv_disp_refr_task+0x1f4> vdb->area.x1 = area_p->x1; 558a: f9b5 0048 ldrsh.w r0, [r5, #72] ; 0x48 558e: 8230 strh r0, [r6, #16] vdb->area.x2 = area_p->x2; 5590: f9b5 004c ldrsh.w r0, [r5, #76] ; 0x4c 5594: 82b0 strh r0, [r6, #20] vdb->area.y1 = row; 5596: 9805 ldr r0, [sp, #20] 5598: 8272 strh r2, [r6, #18] vdb->area.y2 = row + max_row - 1; 559a: fa1f fa82 uxth.w sl, r2 559e: fa10 f282 uxtah r2, r0, r2 55a2: b212 sxth r2, r2 if(vdb->area.y2 > y2) vdb->area.y2 = y2; 55a4: 4293 cmp r3, r2 55a6: 4699 mov r9, r3 55a8: bfa8 it ge 55aa: 4691 movge r9, r2 if(y2 == row_last) disp_refr->driver.buffer->last_part = 1; 55ac: 4293 cmp r3, r2 55ae: f8a6 9016 strh.w r9, [r6, #22] 55b2: dc08 bgt.n 55c6 <_lv_disp_refr_task+0x3a6> 55b4: f8d8 2000 ldr.w r2, [r8] 55b8: 6850 ldr r0, [r2, #4] 55ba: f890 2020 ldrb.w r2, [r0, #32] 55be: f042 0202 orr.w r2, r2, #2 55c2: f880 2020 strb.w r2, [r0, #32] lv_refr_area_part(area_p); 55c6: 4a39 ldr r2, [pc, #228] ; (56ac <_lv_disp_refr_task+0x48c>) 55c8: ee18 0a10 vmov r0, s16 55cc: e9cd 3106 strd r3, r1, [sp, #24] 55d0: 4790 blx r2 for(row = area_p->y1; row + max_row - 1 <= y2; row += max_row) { 55d2: 9907 ldr r1, [sp, #28] 55d4: 9b06 ldr r3, [sp, #24] 55d6: 448a add sl, r1 55d8: fa0f f28a sxth.w r2, sl 55dc: e7c3 b.n 5566 <_lv_disp_refr_task+0x346> if(lv_disp_is_true_double_buf(disp_refr) && disp_refr->driver.set_px_cb == NULL) { 55de: 6838 ldr r0, [r7, #0] 55e0: 6943 ldr r3, [r0, #20] 55e2: 2b00 cmp r3, #0 55e4: f47f ae5a bne.w 529c <_lv_disp_refr_task+0x7c> lv_disp_buf_t * vdb = lv_disp_get_buf(disp_refr); 55e8: 4b31 ldr r3, [pc, #196] ; (56b0 <_lv_disp_refr_task+0x490>) 55ea: 4798 blx r3 lv_refr_vdb_flush(); 55ec: 4b31 ldr r3, [pc, #196] ; (56b4 <_lv_disp_refr_task+0x494>) lv_disp_buf_t * vdb = lv_disp_get_buf(disp_refr); 55ee: 4605 mov r5, r0 lv_refr_vdb_flush(); 55f0: 4798 blx r3 while(vdb->flushing) 55f2: 69ab ldr r3, [r5, #24] 55f4: 2b00 cmp r3, #0 55f6: d1fc bne.n 55f2 <_lv_disp_refr_task+0x3d2> uint8_t * buf_ina = (uint8_t *)vdb->buf_act == vdb->buf1 ? vdb->buf2 : vdb->buf1; 55f8: f8d5 9000 ldr.w r9, [r5] uint8_t * buf_act = (uint8_t *)vdb->buf_act; 55fc: f8d5 b008 ldr.w fp, [r5, #8] lv_coord_t hres = lv_disp_get_hor_res(disp_refr); 5600: 4b2d ldr r3, [pc, #180] ; (56b8 <_lv_disp_refr_task+0x498>) 5602: 6838 ldr r0, [r7, #0] uint8_t * buf_ina = (uint8_t *)vdb->buf_act == vdb->buf1 ? vdb->buf2 : vdb->buf1; 5604: 45d9 cmp r9, fp 5606: bf08 it eq 5608: f8d5 9004 ldreq.w r9, [r5, #4] lv_coord_t hres = lv_disp_get_hor_res(disp_refr); 560c: 4798 blx r3 for(a = 0; a < disp_refr->inv_p; a++) { 560e: 2500 movs r5, #0 lv_coord_t hres = lv_disp_get_hor_res(disp_refr); 5610: 4680 mov r8, r0 start_offs += hres * sizeof(lv_color_t); 5612: 0043 lsls r3, r0, #1 for(a = 0; a < disp_refr->inv_p; a++) { 5614: 683a ldr r2, [r7, #0] 5616: f8b2 1168 ldrh.w r1, [r2, #360] ; 0x168 561a: b2a8 uxth r0, r5 561c: f3c1 0109 ubfx r1, r1, #0, #10 5620: 4281 cmp r1, r0 5622: f67f ae3b bls.w 529c <_lv_disp_refr_task+0x7c> if(disp_refr->inv_area_joined[a] == 0) { 5626: 1951 adds r1, r2, r5 5628: f891 1148 ldrb.w r1, [r1, #328] ; 0x148 562c: b109 cbz r1, 5632 <_lv_disp_refr_task+0x412> for(a = 0; a < disp_refr->inv_p; a++) { 562e: 3501 adds r5, #1 5630: e7f0 b.n 5614 <_lv_disp_refr_task+0x3f4> uint32_t start_offs = 5632: 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); 5636: f9b2 0048 ldrsh.w r0, [r2, #72] ; 0x48 563a: f9b2 604a ldrsh.w r6, [r2, #74] ; 0x4a return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); 563e: f8b2 204c ldrh.w r2, [r2, #76] ; 0x4c 5642: 3201 adds r2, #1 5644: fb08 0106 mla r1, r8, r6, r0 5648: 1a12 subs r2, r2, r0 for(y = disp_refr->inv_areas[a].y1; y <= disp_refr->inv_areas[a].y2; y++) { 564a: f105 0009 add.w r0, r5, #9 uint32_t line_length = lv_area_get_width(&disp_refr->inv_areas[a]) * sizeof(lv_color_t); 564e: b212 sxth r2, r2 for(y = disp_refr->inv_areas[a].y1; y <= disp_refr->inv_areas[a].y2; y++) { 5650: 00c0 lsls r0, r0, #3 5652: 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); 5656: ea4f 0c42 mov.w ip, r2, lsl #1 for(y = disp_refr->inv_areas[a].y1; y <= disp_refr->inv_areas[a].y2; y++) { 565a: eb09 0141 add.w r1, r9, r1, lsl #1 565e: 9003 str r0, [sp, #12] 5660: 6838 ldr r0, [r7, #0] 5662: 9a03 ldr r2, [sp, #12] 5664: 4410 add r0, r2 5666: f9b0 0006 ldrsh.w r0, [r0, #6] 566a: 42b0 cmp r0, r6 566c: dbdf blt.n 562e <_lv_disp_refr_task+0x40e> 566e: 9306 str r3, [sp, #24] _lv_memcpy(buf_act + start_offs, buf_ina + start_offs, line_length); 5670: 4662 mov r2, ip 5672: 4b12 ldr r3, [pc, #72] ; (56bc <_lv_disp_refr_task+0x49c>) 5674: 4650 mov r0, sl 5676: e9cd 1c04 strd r1, ip, [sp, #16] 567a: 4798 blx r3 for(y = disp_refr->inv_areas[a].y1; y <= disp_refr->inv_areas[a].y2; y++) { 567c: 9b06 ldr r3, [sp, #24] 567e: 9904 ldr r1, [sp, #16] 5680: f8dd c014 ldr.w ip, [sp, #20] 5684: 3601 adds r6, #1 5686: b236 sxth r6, r6 5688: 449a add sl, r3 568a: 4419 add r1, r3 568c: e7e8 b.n 5660 <_lv_disp_refr_task+0x440> disp_refr->driver.monitor_cb(&disp_refr->driver, elaps, px_num); 568e: 6862 ldr r2, [r4, #4] 5690: 4798 blx r3 5692: e61f b.n 52d4 <_lv_disp_refr_task+0xb4> 5694: 0000db59 .word 0x0000db59 5698: 00027109 .word 0x00027109 569c: 000270d9 .word 0x000270d9 56a0: 00027159 .word 0x00027159 56a4: 0000eb21 .word 0x0000eb21 56a8: 0000e09d .word 0x0000e09d 56ac: 00005089 .word 0x00005089 56b0: 0000dc0d .word 0x0000dc0d 56b4: 00004e45 .word 0x00004e45 56b8: 0000db35 .word 0x0000db35 56bc: 0000ee69 .word 0x0000ee69 000056c0 : if(list->has_trans && list->skip_trans) id++; 56c0: 7943 ldrb r3, [r0, #5] 56c2: f003 0306 and.w r3, r3, #6 56c6: 2b06 cmp r3, #6 56c8: bf08 it eq 56ca: 3101 addeq r1, #1 if(list->style_cnt == 0 || id >= list->style_cnt) return NULL; 56cc: 7903 ldrb r3, [r0, #4] if(list->has_trans && list->skip_trans) id++; 56ce: bf08 it eq 56d0: b2c9 uxtbeq r1, r1 if(list->style_cnt == 0 || id >= list->style_cnt) return NULL; 56d2: 428b cmp r3, r1 return list->style_list[id]; 56d4: bf86 itte hi 56d6: 6803 ldrhi r3, [r0, #0] 56d8: f853 0021 ldrhi.w r0, [r3, r1, lsl #2] if(list->style_cnt == 0 || id >= list->style_cnt) return NULL; 56dc: 2000 movls r0, #0 } 56de: 4770 bx lr 000056e0 : * @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) 56e0: b5f0 push {r4, r5, r6, r7, lr} { LV_ASSERT_STYLE(style); if(style->map == NULL) return -1; 56e2: b378 cbz r0, 5744 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; 56e4: f04f 35ff mov.w r5, #4294967295 ; 0xffffffff uint8_t id_to_find = prop & 0xFF; 56e8: b2cf uxtb r7, r1 attr.full = (prop >> 8) & 0xFF; 56ea: ea4f 2c11 mov.w ip, r1, lsr #8 size_t i = 0; 56ee: 2300 movs r3, #0 int16_t weight = -1; 56f0: 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) { 56f2: f3c1 2106 ubfx r1, r1, #8, #7 while(style->map[i] != _LV_STYLE_CLOSEING_PROP) { 56f6: 5cc2 ldrb r2, [r0, r3] 56f8: 2aff cmp r2, #255 ; 0xff 56fa: d101 bne.n 5700 else i += sizeof(const void *); i += sizeof(lv_style_property_t); } return id_guess; 56fc: 4628 mov r0, r5 56fe: e009 b.n 5714 if(style->map[i] == id_to_find) { 5700: 4297 cmp r7, r2 5702: d111 bne.n 5728 attr_i.full = style->map[i + 1]; 5704: 18c4 adds r4, r0, r3 5706: 7864 ldrb r4, [r4, #1] if(attr_i.bits.state == attr.bits.state) { 5708: ea8c 0e04 eor.w lr, ip, r4 570c: f01e 0f7f tst.w lr, #127 ; 0x7f 5710: d101 bne.n 5716 return i; 5712: 4618 mov r0, r3 } 5714: bdf0 pop {r4, r5, r6, r7, pc} else if((attr_i.bits.state & (~attr.bits.state)) == 0) { 5716: f004 047f and.w r4, r4, #127 ; 0x7f 571a: ea34 0e01 bics.w lr, r4, r1 571e: d103 bne.n 5728 if(attr_i.bits.state > weight) { 5720: 42b4 cmp r4, r6 weight = attr_i.bits.state; 5722: bfc4 itt gt 5724: b226 sxthgt r6, r4 id_guess = i; 5726: b21d sxthgt r5, r3 if((style->map[i] & 0xF) < LV_STYLE_ID_COLOR) i += sizeof(lv_style_int_t); 5728: f002 020f and.w r2, r2, #15 572c: 2a08 cmp r2, #8 572e: d802 bhi.n 5736 else if((style->map[i] & 0xF) < LV_STYLE_ID_OPA) i += sizeof(lv_color_t); 5730: 3302 adds r3, #2 i += sizeof(lv_style_property_t); 5732: 3302 adds r3, #2 5734: e7df b.n 56f6 else if((style->map[i] & 0xF) < LV_STYLE_ID_OPA) i += sizeof(lv_color_t); 5736: 2a0b cmp r2, #11 5738: d9fa bls.n 5730 else if((style->map[i] & 0xF) < LV_STYLE_ID_PTR) i += sizeof(lv_opa_t); 573a: 2a0d cmp r2, #13 573c: bf94 ite ls 573e: 3301 addls r3, #1 else i += sizeof(const void *); 5740: 3304 addhi r3, #4 5742: e7f6 b.n 5732 if(style->map == NULL) return -1; 5744: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff 5748: e7e4 b.n 5714 0000574a <_lv_memcpy_small.isra.0>: 574a: 3901 subs r1, #1 574c: 4402 add r2, r0 *d8 = *s8; 574e: f811 3f01 ldrb.w r3, [r1, #1]! 5752: f800 3b01 strb.w r3, [r0], #1 while(len) { 5756: 4290 cmp r0, r2 5758: d1f9 bne.n 574e <_lv_memcpy_small.isra.0+0x4> s8++; len--; } return dst; } 575a: 4770 bx lr 0000575c : _lv_memset_00(style, sizeof(lv_style_t)); 575c: 4b01 ldr r3, [pc, #4] ; (5764 ) 575e: 2104 movs r1, #4 5760: 4718 bx r3 5762: bf00 nop 5764: 0000f251 .word 0x0000f251 00005768 : _lv_memset_00(list, sizeof(lv_style_list_t)); 5768: 4b01 ldr r3, [pc, #4] ; (5770 ) 576a: 2108 movs r1, #8 576c: 4718 bx r3 576e: bf00 nop 5770: 0000f251 .word 0x0000f251 00005774 <_lv_style_list_remove_style>: { 5774: b5f7 push {r0, r1, r2, r4, r5, r6, r7, lr} if(list->style_cnt == 0) return; 5776: 7903 ldrb r3, [r0, #4] { 5778: 4604 mov r4, r0 577a: 460e mov r6, r1 if(list->style_cnt == 0) return; 577c: b14b cbz r3, 5792 <_lv_style_list_remove_style+0x1e> if(list->style_list[i] == style) { 577e: 6800 ldr r0, [r0, #0] 5780: 2200 movs r2, #0 5782: f850 1022 ldr.w r1, [r0, r2, lsl #2] 5786: 42b1 cmp r1, r6 5788: d03c beq.n 5804 <_lv_style_list_remove_style+0x90> for(i = 0; i < list->style_cnt; i++) { 578a: 3201 adds r2, #1 578c: b2d1 uxtb r1, r2 578e: 428b cmp r3, r1 5790: d8f7 bhi.n 5782 <_lv_style_list_remove_style+0xe> } 5792: b003 add sp, #12 5794: 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)); 5796: 3b01 subs r3, #1 5798: 0099 lsls r1, r3, #2 579a: 4b21 ldr r3, [pc, #132] ; (5820 <_lv_style_list_remove_style+0xac>) 579c: 4798 blx r3 LV_ASSERT_MEM(new_classes); 579e: 4b21 ldr r3, [pc, #132] ; (5824 <_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)); 57a0: 4605 mov r5, r0 LV_ASSERT_MEM(new_classes); 57a2: 4798 blx r3 57a4: 4607 mov r7, r0 57a6: b968 cbnz r0, 57c4 <_lv_style_list_remove_style+0x50> 57a8: 4b1f ldr r3, [pc, #124] ; (5828 <_lv_style_list_remove_style+0xb4>) 57aa: 4920 ldr r1, [pc, #128] ; (582c <_lv_style_list_remove_style+0xb8>) 57ac: 9300 str r3, [sp, #0] 57ae: f44f 7282 mov.w r2, #260 ; 0x104 57b2: 2003 movs r0, #3 57b4: 4c1e ldr r4, [pc, #120] ; (5830 <_lv_style_list_remove_style+0xbc>) 57b6: 47a0 blx r4 57b8: 481e ldr r0, [pc, #120] ; (5834 <_lv_style_list_remove_style+0xc0>) 57ba: 491f ldr r1, [pc, #124] ; (5838 <_lv_style_list_remove_style+0xc4>) 57bc: 462a mov r2, r5 57be: 463b mov r3, r7 57c0: 4788 blx r1 57c2: e7fe b.n 57c2 <_lv_style_list_remove_style+0x4e> if(new_classes == NULL) { 57c4: b14d cbz r5, 57da <_lv_style_list_remove_style+0x66> for(i = 0, j = 0; i < list->style_cnt; i++) { 57c6: 2300 movs r3, #0 57c8: 7921 ldrb r1, [r4, #4] 57ca: 461a mov r2, r3 57cc: b2d8 uxtb r0, r3 57ce: 4288 cmp r0, r1 57d0: d30d bcc.n 57ee <_lv_style_list_remove_style+0x7a> list->style_cnt--; 57d2: 3901 subs r1, #1 57d4: 7121 strb r1, [r4, #4] list->style_list = new_classes; 57d6: 6025 str r5, [r4, #0] 57d8: e7db b.n 5792 <_lv_style_list_remove_style+0x1e> LV_LOG_WARN("lv_style_list_remove_style: couldn't reallocate class list"); 57da: 4b18 ldr r3, [pc, #96] ; (583c <_lv_style_list_remove_style+0xc8>) 57dc: 9300 str r3, [sp, #0] 57de: 4913 ldr r1, [pc, #76] ; (582c <_lv_style_list_remove_style+0xb8>) 57e0: 4b11 ldr r3, [pc, #68] ; (5828 <_lv_style_list_remove_style+0xb4>) 57e2: 4c13 ldr r4, [pc, #76] ; (5830 <_lv_style_list_remove_style+0xbc>) 57e4: f44f 7283 mov.w r2, #262 ; 0x106 57e8: 2002 movs r0, #2 57ea: 47a0 blx r4 return; 57ec: e7d1 b.n 5792 <_lv_style_list_remove_style+0x1e> if(list->style_list[i] == style) continue; 57ee: 6820 ldr r0, [r4, #0] 57f0: f850 0023 ldr.w r0, [r0, r3, lsl #2] 57f4: 42b0 cmp r0, r6 new_classes[j] = list->style_list[i]; 57f6: bf1e ittt ne 57f8: f845 0022 strne.w r0, [r5, r2, lsl #2] j++; 57fc: 3201 addne r2, #1 57fe: b2d2 uxtbne r2, r2 for(i = 0, j = 0; i < list->style_cnt; i++) { 5800: 3301 adds r3, #1 5802: e7e3 b.n 57cc <_lv_style_list_remove_style+0x58> if(list->style_cnt == 1) { 5804: 2b01 cmp r3, #1 5806: d1c6 bne.n 5796 <_lv_style_list_remove_style+0x22> lv_mem_free(list->style_list); 5808: 4b0d ldr r3, [pc, #52] ; (5840 <_lv_style_list_remove_style+0xcc>) 580a: 4798 blx r3 list->style_list = NULL; 580c: 2300 movs r3, #0 580e: 6023 str r3, [r4, #0] list->style_cnt = 0; 5810: 88a3 ldrh r3, [r4, #4] 5812: f423 73ff bic.w r3, r3, #510 ; 0x1fe 5816: f023 0301 bic.w r3, r3, #1 581a: 80a3 strh r3, [r4, #4] return; 581c: e7b9 b.n 5792 <_lv_style_list_remove_style+0x1e> 581e: bf00 nop 5820: 0000f04d .word 0x0000f04d 5824: 00001a0d .word 0x00001a0d 5828: 0002726f .word 0x0002726f 582c: 00027166 .word 0x00027166 5830: 0000eb21 .word 0x0000eb21 5834: 0002673e .word 0x0002673e 5838: 00001a15 .word 0x00001a15 583c: 00027197 .word 0x00027197 5840: 0000ed1d .word 0x0000ed1d 00005844 <_lv_style_list_add_style>: { 5844: e92d 41f3 stmdb sp!, {r0, r1, r4, r5, r6, r7, r8, lr} 5848: 460f mov r7, r1 if(list == NULL) return; 584a: 4605 mov r5, r0 584c: b338 cbz r0, 589e <_lv_style_list_add_style+0x5a> _lv_style_list_remove_style(list, style); 584e: 4b29 ldr r3, [pc, #164] ; (58f4 <_lv_style_list_add_style+0xb0>) 5850: 4798 blx r3 if(list->style_cnt == 0) new_classes = lv_mem_alloc(sizeof(lv_style_t *)); 5852: 7929 ldrb r1, [r5, #4] 5854: b9a1 cbnz r1, 5880 <_lv_style_list_add_style+0x3c> 5856: 4b28 ldr r3, [pc, #160] ; (58f8 <_lv_style_list_add_style+0xb4>) 5858: 2004 movs r0, #4 585a: 4798 blx r3 LV_ASSERT_MEM(new_classes); 585c: 4b27 ldr r3, [pc, #156] ; (58fc <_lv_style_list_add_style+0xb8>) else new_classes = lv_mem_realloc(list->style_list, sizeof(lv_style_t *) * (list->style_cnt + 1)); 585e: 4604 mov r4, r0 LV_ASSERT_MEM(new_classes); 5860: 4798 blx r3 5862: 4606 mov r6, r0 5864: b990 cbnz r0, 588c <_lv_style_list_add_style+0x48> 5866: 4b26 ldr r3, [pc, #152] ; (5900 <_lv_style_list_add_style+0xbc>) 5868: 4926 ldr r1, [pc, #152] ; (5904 <_lv_style_list_add_style+0xc0>) 586a: 9300 str r3, [sp, #0] 586c: 22d0 movs r2, #208 ; 0xd0 586e: 2003 movs r0, #3 5870: 4d25 ldr r5, [pc, #148] ; (5908 <_lv_style_list_add_style+0xc4>) 5872: 47a8 blx r5 5874: 4825 ldr r0, [pc, #148] ; (590c <_lv_style_list_add_style+0xc8>) 5876: 4926 ldr r1, [pc, #152] ; (5910 <_lv_style_list_add_style+0xcc>) 5878: 4622 mov r2, r4 587a: 4633 mov r3, r6 587c: 4788 blx r1 587e: e7fe b.n 587e <_lv_style_list_add_style+0x3a> else new_classes = lv_mem_realloc(list->style_list, sizeof(lv_style_t *) * (list->style_cnt + 1)); 5880: 3101 adds r1, #1 5882: 6828 ldr r0, [r5, #0] 5884: 4b23 ldr r3, [pc, #140] ; (5914 <_lv_style_list_add_style+0xd0>) 5886: 0089 lsls r1, r1, #2 5888: 4798 blx r3 588a: e7e7 b.n 585c <_lv_style_list_add_style+0x18> if(new_classes == NULL) { 588c: b954 cbnz r4, 58a4 <_lv_style_list_add_style+0x60> LV_LOG_WARN("lv_style_list_add_style: couldn't add the class"); 588e: 4b22 ldr r3, [pc, #136] ; (5918 <_lv_style_list_add_style+0xd4>) 5890: 9300 str r3, [sp, #0] 5892: 491c ldr r1, [pc, #112] ; (5904 <_lv_style_list_add_style+0xc0>) 5894: 4b1a ldr r3, [pc, #104] ; (5900 <_lv_style_list_add_style+0xbc>) 5896: 4c1c ldr r4, [pc, #112] ; (5908 <_lv_style_list_add_style+0xc4>) 5898: 22d2 movs r2, #210 ; 0xd2 589a: 2002 movs r0, #2 589c: 47a0 blx r4 } 589e: b002 add sp, #8 58a0: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} if(list->has_trans) first_style++; 58a4: 796b ldrb r3, [r5, #5] for(i = list->style_cnt; i > first_style; i--) { 58a6: 792e ldrb r6, [r5, #4] uint8_t first_style = 0; 58a8: f3c3 0840 ubfx r8, r3, #1, #1 if(list->has_local) first_style++; 58ac: 07db lsls r3, r3, #31 58ae: bf48 it mi 58b0: f108 0801 addmi.w r8, r8, #1 new_classes[i] = new_classes[i - 1]; 58b4: eba6 0208 sub.w r2, r6, r8 58b8: b2d2 uxtb r2, r2 58ba: 4546 cmp r6, r8 58bc: f1c2 0001 rsb r0, r2, #1 58c0: f106 4180 add.w r1, r6, #1073741824 ; 0x40000000 58c4: ea4f 0080 mov.w r0, r0, lsl #2 58c8: f101 31ff add.w r1, r1, #4294967295 ; 0xffffffff 58cc: bf38 it cc 58ce: 2004 movcc r0, #4 58d0: eb00 0181 add.w r1, r0, r1, lsl #2 58d4: eb00 0086 add.w r0, r0, r6, lsl #2 58d8: ea4f 0282 mov.w r2, r2, lsl #2 58dc: 4b0f ldr r3, [pc, #60] ; (591c <_lv_style_list_add_style+0xd8>) 58de: bf38 it cc 58e0: 2200 movcc r2, #0 58e2: 4421 add r1, r4 58e4: 4420 add r0, r4 list->style_cnt++; 58e6: 3601 adds r6, #1 new_classes[i] = new_classes[i - 1]; 58e8: 4798 blx r3 new_classes[first_style] = style; 58ea: f844 7028 str.w r7, [r4, r8, lsl #2] list->style_cnt++; 58ee: 712e strb r6, [r5, #4] list->style_list = new_classes; 58f0: 602c str r4, [r5, #0] 58f2: e7d4 b.n 589e <_lv_style_list_add_style+0x5a> 58f4: 00005775 .word 0x00005775 58f8: 0000ec65 .word 0x0000ec65 58fc: 00001a0d .word 0x00001a0d 5900: 0002728b .word 0x0002728b 5904: 00027166 .word 0x00027166 5908: 0000eb21 .word 0x0000eb21 590c: 0002673e .word 0x0002673e 5910: 00001a15 .word 0x00001a15 5914: 0000f04d .word 0x0000f04d 5918: 000271d2 .word 0x000271d2 591c: 00016e01 .word 0x00016e01 00005920 : */ 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); 5920: 7943 ldrb r3, [r0, #5] 5922: 07db lsls r3, r3, #31 { 5924: b573 push {r0, r1, r4, r5, r6, lr} 5926: 4605 mov r5, r0 if(list->has_local) return lv_style_list_get_style(list, 0); 5928: d505 bpl.n 5936 592a: 4b1a ldr r3, [pc, #104] ; (5994 ) 592c: 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; } 592e: b002 add sp, #8 5930: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr} if(list->has_local) return lv_style_list_get_style(list, 0); 5934: 4718 bx r3 lv_style_t * local_style = lv_mem_alloc(sizeof(lv_style_t)); 5936: 4b18 ldr r3, [pc, #96] ; (5998 ) 5938: 2004 movs r0, #4 593a: 4798 blx r3 LV_ASSERT_MEM(local_style); 593c: 4b17 ldr r3, [pc, #92] ; (599c ) lv_style_t * local_style = lv_mem_alloc(sizeof(lv_style_t)); 593e: 4604 mov r4, r0 LV_ASSERT_MEM(local_style); 5940: 4798 blx r3 5942: 4606 mov r6, r0 5944: b968 cbnz r0, 5962 5946: 4b16 ldr r3, [pc, #88] ; (59a0 ) 5948: 4916 ldr r1, [pc, #88] ; (59a4 ) 594a: 9300 str r3, [sp, #0] 594c: f240 4235 movw r2, #1077 ; 0x435 5950: 2003 movs r0, #3 5952: 4d15 ldr r5, [pc, #84] ; (59a8 ) 5954: 47a8 blx r5 5956: 4815 ldr r0, [pc, #84] ; (59ac ) 5958: 4915 ldr r1, [pc, #84] ; (59b0 ) 595a: 4622 mov r2, r4 595c: 4633 mov r3, r6 595e: 4788 blx r1 5960: e7fe b.n 5960 if(local_style == NULL) { 5962: b95c cbnz r4, 597c LV_LOG_WARN("get_local_style: couldn't create local style"); 5964: 4b13 ldr r3, [pc, #76] ; (59b4 ) 5966: 9300 str r3, [sp, #0] 5968: 490e ldr r1, [pc, #56] ; (59a4 ) 596a: 4b0d ldr r3, [pc, #52] ; (59a0 ) 596c: 4d0e ldr r5, [pc, #56] ; (59a8 ) 596e: f240 4237 movw r2, #1079 ; 0x437 5972: 2002 movs r0, #2 5974: 47a8 blx r5 } 5976: 4620 mov r0, r4 5978: b002 add sp, #8 597a: bd70 pop {r4, r5, r6, pc} lv_style_init(local_style); 597c: 4b0e ldr r3, [pc, #56] ; (59b8 ) 597e: 4620 mov r0, r4 5980: 4798 blx r3 _lv_style_list_add_style(list, local_style); 5982: 4b0e ldr r3, [pc, #56] ; (59bc ) 5984: 4621 mov r1, r4 5986: 4628 mov r0, r5 5988: 4798 blx r3 list->has_local = 1; 598a: 796b ldrb r3, [r5, #5] 598c: f043 0301 orr.w r3, r3, #1 5990: 716b strb r3, [r5, #5] return local_style; 5992: e7f0 b.n 5976 5994: 000056c1 .word 0x000056c1 5998: 0000ec65 .word 0x0000ec65 599c: 00001a0d .word 0x00001a0d 59a0: 000272a4 .word 0x000272a4 59a4: 00027166 .word 0x00027166 59a8: 0000eb21 .word 0x0000eb21 59ac: 0002673e .word 0x0002673e 59b0: 00001a15 .word 0x00001a15 59b4: 00027202 .word 0x00027202 59b8: 0000575d .word 0x0000575d 59bc: 00005845 .word 0x00005845 000059c0 : { 59c0: b510 push {r4, lr} lv_mem_free(style->map); 59c2: 4b03 ldr r3, [pc, #12] ; (59d0 ) { 59c4: 4604 mov r4, r0 lv_mem_free(style->map); 59c6: 6800 ldr r0, [r0, #0] 59c8: 4798 blx r3 style->map = NULL; 59ca: 2300 movs r3, #0 59cc: 6023 str r3, [r4, #0] } 59ce: bd10 pop {r4, pc} 59d0: 0000ed1d .word 0x0000ed1d 000059d4 <_lv_style_get_mem_size>: if(style->map == NULL) return 0; 59d4: 6800 ldr r0, [r0, #0] 59d6: b128 cbz r0, 59e4 <_lv_style_get_mem_size+0x10> size_t i = 0; 59d8: 2300 movs r3, #0 while(style->map[i] != _LV_STYLE_CLOSEING_PROP) { 59da: 5cc2 ldrb r2, [r0, r3] 59dc: 2aff cmp r2, #255 ; 0xff 59de: d102 bne.n 59e6 <_lv_style_get_mem_size+0x12> return i + sizeof(lv_style_property_t); 59e0: 3302 adds r3, #2 59e2: b298 uxth r0, r3 } 59e4: 4770 bx lr if((style->map[i] & 0xF) < LV_STYLE_ID_COLOR) i += sizeof(lv_style_int_t); 59e6: f002 020f and.w r2, r2, #15 59ea: 2a08 cmp r2, #8 59ec: d802 bhi.n 59f4 <_lv_style_get_mem_size+0x20> else if((style->map[i] & 0xF) < LV_STYLE_ID_OPA) i += sizeof(lv_color_t); 59ee: 3302 adds r3, #2 i += sizeof(lv_style_property_t); 59f0: 3302 adds r3, #2 59f2: e7f2 b.n 59da <_lv_style_get_mem_size+0x6> else if((style->map[i] & 0xF) < LV_STYLE_ID_OPA) i += sizeof(lv_color_t); 59f4: 2a0b cmp r2, #11 59f6: d9fa bls.n 59ee <_lv_style_get_mem_size+0x1a> else if((style->map[i] & 0xF) < LV_STYLE_ID_PTR) i += sizeof(lv_opa_t); 59f8: 2a0d cmp r2, #13 59fa: bf94 ite ls 59fc: 3301 addls r3, #1 else i += sizeof(const void *); 59fe: 3304 addhi r3, #4 5a00: e7f6 b.n 59f0 <_lv_style_get_mem_size+0x1c> ... 00005a04 : { 5a04: b537 push {r0, r1, r2, r4, r5, lr} 5a06: 4605 mov r5, r0 if(style_src == NULL) return; 5a08: 460c mov r4, r1 5a0a: b179 cbz r1, 5a2c if(style_src->map == NULL) return; 5a0c: 680b ldr r3, [r1, #0] 5a0e: b16b cbz r3, 5a2c uint16_t size = _lv_style_get_mem_size(style_src); 5a10: 4608 mov r0, r1 5a12: 4b07 ldr r3, [pc, #28] ; (5a30 ) 5a14: 4798 blx r3 style_dest->map = lv_mem_alloc(size); 5a16: 4b07 ldr r3, [pc, #28] ; (5a34 ) uint16_t size = _lv_style_get_mem_size(style_src); 5a18: 9001 str r0, [sp, #4] style_dest->map = lv_mem_alloc(size); 5a1a: 4798 blx r3 5a1c: 6028 str r0, [r5, #0] _lv_memcpy(style_dest->map, style_src->map, size); 5a1e: 9a01 ldr r2, [sp, #4] 5a20: 6821 ldr r1, [r4, #0] 5a22: 4b05 ldr r3, [pc, #20] ; (5a38 ) } 5a24: b003 add sp, #12 5a26: e8bd 4030 ldmia.w sp!, {r4, r5, lr} _lv_memcpy(style_dest->map, style_src->map, size); 5a2a: 4718 bx r3 } 5a2c: b003 add sp, #12 5a2e: bd30 pop {r4, r5, pc} 5a30: 000059d5 .word 0x000059d5 5a34: 0000ec65 .word 0x0000ec65 5a38: 0000ee69 .word 0x0000ee69 00005a3c : { 5a3c: b5f8 push {r3, r4, r5, r6, r7, lr} 5a3e: 460f mov r7, r1 if(style == NULL) return false; 5a40: 4604 mov r4, r0 5a42: b330 cbz r0, 5a92 int32_t id = get_property_index(style, prop); 5a44: 6806 ldr r6, [r0, #0] 5a46: 4b14 ldr r3, [pc, #80] ; (5a98 ) 5a48: 4630 mov r0, r6 5a4a: 4798 blx r3 if(id >= 0) { 5a4c: 1e05 subs r5, r0, #0 5a4e: db20 blt.n 5a92 attr_found.full = *(style->map + id + 1); 5a50: 442e add r6, r5 if(attr_found.bits.state == attr_goal.bits.state) { 5a52: 7873 ldrb r3, [r6, #1] 5a54: ea83 2317 eor.w r3, r3, r7, lsr #8 5a58: 065b lsls r3, r3, #25 5a5a: d11a bne.n 5a92 uint32_t map_size = _lv_style_get_mem_size(style); 5a5c: 4b0f ldr r3, [pc, #60] ; (5a9c ) 5a5e: 4620 mov r0, r4 5a60: f007 010f and.w r1, r7, #15 5a64: 4798 blx r3 else if((prop & 0xF) < LV_STYLE_ID_OPA) prop_size += sizeof(lv_color_t); 5a66: 290b cmp r1, #11 5a68: d90c bls.n 5a84 else prop_size += sizeof(const void *); 5a6a: 290e cmp r1, #14 5a6c: bf34 ite cc 5a6e: 2303 movcc r3, #3 5a70: 2306 movcs r3, #6 for(i = id; i < map_size - prop_size; i++) { 5a72: 1ac1 subs r1, r0, r3 5a74: 42a9 cmp r1, r5 style->map[i] = style->map[i + prop_size]; 5a76: 6820 ldr r0, [r4, #0] for(i = id; i < map_size - prop_size; i++) { 5a78: d806 bhi.n 5a88 style->map = lv_mem_realloc(style->map, map_size - prop_size); 5a7a: 4b09 ldr r3, [pc, #36] ; (5aa0 ) 5a7c: 4798 blx r3 5a7e: 6020 str r0, [r4, #0] return true; 5a80: 2001 movs r0, #1 } 5a82: bdf8 pop {r3, r4, r5, r6, r7, pc} else if((prop & 0xF) < LV_STYLE_ID_OPA) prop_size += sizeof(lv_color_t); 5a84: 2304 movs r3, #4 5a86: e7f4 b.n 5a72 style->map[i] = style->map[i + prop_size]; 5a88: 1942 adds r2, r0, r5 5a8a: 5cd2 ldrb r2, [r2, r3] 5a8c: 5542 strb r2, [r0, r5] for(i = id; i < map_size - prop_size; i++) { 5a8e: 3501 adds r5, #1 5a90: e7f0 b.n 5a74 if(style == NULL) return false; 5a92: 2000 movs r0, #0 5a94: e7f5 b.n 5a82 5a96: bf00 nop 5a98: 000056e1 .word 0x000056e1 5a9c: 000059d5 .word 0x000059d5 5aa0: 0000f04d .word 0x0000f04d 00005aa4 <_lv_style_set_int>: { 5aa4: b570 push {r4, r5, r6, lr} 5aa6: 6806 ldr r6, [r0, #0] int32_t id = get_property_index(style, prop); 5aa8: 4b28 ldr r3, [pc, #160] ; (5b4c <_lv_style_set_int+0xa8>) { 5aaa: b086 sub sp, #24 5aac: 4605 mov r5, r0 int32_t id = get_property_index(style, prop); 5aae: 4630 mov r0, r6 { 5ab0: f8ad 100e strh.w r1, [sp, #14] 5ab4: f8ad 200c strh.w r2, [sp, #12] int32_t id = get_property_index(style, prop); 5ab8: 460c mov r4, r1 5aba: 4798 blx r3 if(id >= 0) { 5abc: 2800 cmp r0, #0 5abe: db0d blt.n 5adc <_lv_style_set_int+0x38> attr_found.full = *(style->map + id + 1); 5ac0: 1833 adds r3, r6, r0 if(attr_found.bits.state == attr_goal.bits.state) { 5ac2: 785b ldrb r3, [r3, #1] 5ac4: ea83 2314 eor.w r3, r3, r4, lsr #8 5ac8: 065b lsls r3, r3, #25 5aca: d107 bne.n 5adc <_lv_style_set_int+0x38> _lv_memcpy_small(style->map + id + sizeof(lv_style_property_t), &value, sizeof(lv_style_int_t)); 5acc: 3002 adds r0, #2 5ace: 4b20 ldr r3, [pc, #128] ; (5b50 <_lv_style_set_int+0xac>) 5ad0: 2202 movs r2, #2 5ad2: a903 add r1, sp, #12 5ad4: 4430 add r0, r6 5ad6: 4798 blx r3 } 5ad8: b006 add sp, #24 5ada: bd70 pop {r4, r5, r6, pc} lv_style_property_t end_mark = _LV_STYLE_CLOSEING_PROP; 5adc: 23ff movs r3, #255 ; 0xff 5ade: f8ad 3016 strh.w r3, [sp, #22] uint16_t size = _lv_style_get_mem_size(style); 5ae2: 4628 mov r0, r5 5ae4: 4b1b ldr r3, [pc, #108] ; (5b54 <_lv_style_set_int+0xb0>) 5ae6: 4798 blx r3 if(size == 0) size += end_mark_size; 5ae8: 1e04 subs r4, r0, #0 5aea: bf08 it eq 5aec: 2402 moveq r4, #2 size += sizeof(lv_style_property_t) + sizeof(lv_style_int_t); 5aee: 3404 adds r4, #4 style->map = lv_mem_realloc(style->map, size); 5af0: b2a4 uxth r4, r4 5af2: 4b19 ldr r3, [pc, #100] ; (5b58 <_lv_style_set_int+0xb4>) 5af4: 4621 mov r1, r4 5af6: 4630 mov r0, r6 5af8: 4798 blx r3 LV_ASSERT_MEM(style->map); 5afa: 4b18 ldr r3, [pc, #96] ; (5b5c <_lv_style_set_int+0xb8>) style->map = lv_mem_realloc(style->map, size); 5afc: 6028 str r0, [r5, #0] LV_ASSERT_MEM(style->map); 5afe: 4798 blx r3 5b00: 4606 mov r6, r0 5b02: b968 cbnz r0, 5b20 <_lv_style_set_int+0x7c> 5b04: 4b16 ldr r3, [pc, #88] ; (5b60 <_lv_style_set_int+0xbc>) 5b06: 4917 ldr r1, [pc, #92] ; (5b64 <_lv_style_set_int+0xc0>) 5b08: 9300 str r3, [sp, #0] 5b0a: f44f 72c3 mov.w r2, #390 ; 0x186 5b0e: 2003 movs r0, #3 5b10: 4c15 ldr r4, [pc, #84] ; (5b68 <_lv_style_set_int+0xc4>) 5b12: 47a0 blx r4 5b14: 682a ldr r2, [r5, #0] 5b16: 4815 ldr r0, [pc, #84] ; (5b6c <_lv_style_set_int+0xc8>) 5b18: 4915 ldr r1, [pc, #84] ; (5b70 <_lv_style_set_int+0xcc>) 5b1a: 4633 mov r3, r6 5b1c: 4788 blx r1 5b1e: e7fe b.n 5b1e <_lv_style_set_int+0x7a> _lv_memcpy_small(style->map + size - new_prop_size - end_mark_size, &prop, sizeof(lv_style_property_t)); 5b20: 6828 ldr r0, [r5, #0] 5b22: 4e0b ldr r6, [pc, #44] ; (5b50 <_lv_style_set_int+0xac>) 5b24: 1fa3 subs r3, r4, #6 5b26: f10d 010e add.w r1, sp, #14 5b2a: 4418 add r0, r3 5b2c: 2202 movs r2, #2 5b2e: 47b0 blx r6 _lv_memcpy_small(style->map + size - sizeof(lv_style_int_t) - end_mark_size, &value, sizeof(lv_style_int_t)); 5b30: 6828 ldr r0, [r5, #0] _lv_memcpy_small(style->map + size - new_prop_size - end_mark_size, &prop, sizeof(lv_style_property_t)); 5b32: 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)); 5b34: a903 add r1, sp, #12 5b36: 4418 add r0, r3 5b38: 2202 movs r2, #2 5b3a: 47b0 blx r6 _lv_memcpy_small(style->map + size - end_mark_size, &end_mark, sizeof(end_mark)); 5b3c: 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)); 5b3e: 3c02 subs r4, #2 _lv_memcpy_small(style->map + size - end_mark_size, &end_mark, sizeof(end_mark)); 5b40: 2202 movs r2, #2 5b42: f10d 0116 add.w r1, sp, #22 5b46: 4420 add r0, r4 5b48: 47b0 blx r6 5b4a: e7c5 b.n 5ad8 <_lv_style_set_int+0x34> 5b4c: 000056e1 .word 0x000056e1 5b50: 0000574b .word 0x0000574b 5b54: 000059d5 .word 0x000059d5 5b58: 0000f04d .word 0x0000f04d 5b5c: 00001a0d .word 0x00001a0d 5b60: 000272ba .word 0x000272ba 5b64: 00027166 .word 0x00027166 5b68: 0000eb21 .word 0x0000eb21 5b6c: 0002673e .word 0x0002673e 5b70: 00001a15 .word 0x00001a15 00005b74 <_lv_style_set_color>: { 5b74: b570 push {r4, r5, r6, lr} 5b76: 6806 ldr r6, [r0, #0] int32_t id = get_property_index(style, prop); 5b78: 4b28 ldr r3, [pc, #160] ; (5c1c <_lv_style_set_color+0xa8>) { 5b7a: b086 sub sp, #24 5b7c: 4605 mov r5, r0 int32_t id = get_property_index(style, prop); 5b7e: 4630 mov r0, r6 { 5b80: f8ad 200c strh.w r2, [sp, #12] 5b84: f8ad 100e strh.w r1, [sp, #14] int32_t id = get_property_index(style, prop); 5b88: 460c mov r4, r1 5b8a: 4798 blx r3 if(id >= 0) { 5b8c: 2800 cmp r0, #0 5b8e: db0d blt.n 5bac <_lv_style_set_color+0x38> attr_found.full = *(style->map + id + 1); 5b90: 1833 adds r3, r6, r0 if(attr_found.bits.state == attr_goal.bits.state) { 5b92: 785b ldrb r3, [r3, #1] 5b94: ea83 2314 eor.w r3, r3, r4, lsr #8 5b98: 065b lsls r3, r3, #25 5b9a: d107 bne.n 5bac <_lv_style_set_color+0x38> _lv_memcpy_small(style->map + id + sizeof(lv_style_property_t), &color, sizeof(lv_color_t)); 5b9c: 3002 adds r0, #2 5b9e: 4b20 ldr r3, [pc, #128] ; (5c20 <_lv_style_set_color+0xac>) 5ba0: 2202 movs r2, #2 5ba2: a903 add r1, sp, #12 5ba4: 4430 add r0, r6 5ba6: 4798 blx r3 } 5ba8: b006 add sp, #24 5baa: bd70 pop {r4, r5, r6, pc} lv_style_property_t end_mark = _LV_STYLE_CLOSEING_PROP; 5bac: 23ff movs r3, #255 ; 0xff 5bae: f8ad 3016 strh.w r3, [sp, #22] uint16_t size = _lv_style_get_mem_size(style); 5bb2: 4628 mov r0, r5 5bb4: 4b1b ldr r3, [pc, #108] ; (5c24 <_lv_style_set_color+0xb0>) 5bb6: 4798 blx r3 if(size == 0) size += end_mark_size; 5bb8: 1e04 subs r4, r0, #0 5bba: bf08 it eq 5bbc: 2402 moveq r4, #2 size += sizeof(lv_style_property_t) + sizeof(lv_color_t); 5bbe: 3404 adds r4, #4 style->map = lv_mem_realloc(style->map, size); 5bc0: b2a4 uxth r4, r4 5bc2: 4b19 ldr r3, [pc, #100] ; (5c28 <_lv_style_set_color+0xb4>) 5bc4: 4621 mov r1, r4 5bc6: 4630 mov r0, r6 5bc8: 4798 blx r3 LV_ASSERT_MEM(style->map); 5bca: 4b18 ldr r3, [pc, #96] ; (5c2c <_lv_style_set_color+0xb8>) style->map = lv_mem_realloc(style->map, size); 5bcc: 6028 str r0, [r5, #0] LV_ASSERT_MEM(style->map); 5bce: 4798 blx r3 5bd0: 4606 mov r6, r0 5bd2: b968 cbnz r0, 5bf0 <_lv_style_set_color+0x7c> 5bd4: 4b16 ldr r3, [pc, #88] ; (5c30 <_lv_style_set_color+0xbc>) 5bd6: 4917 ldr r1, [pc, #92] ; (5c34 <_lv_style_set_color+0xc0>) 5bd8: 9300 str r3, [sp, #0] 5bda: f240 12b5 movw r2, #437 ; 0x1b5 5bde: 2003 movs r0, #3 5be0: 4c15 ldr r4, [pc, #84] ; (5c38 <_lv_style_set_color+0xc4>) 5be2: 47a0 blx r4 5be4: 682a ldr r2, [r5, #0] 5be6: 4815 ldr r0, [pc, #84] ; (5c3c <_lv_style_set_color+0xc8>) 5be8: 4915 ldr r1, [pc, #84] ; (5c40 <_lv_style_set_color+0xcc>) 5bea: 4633 mov r3, r6 5bec: 4788 blx r1 5bee: e7fe b.n 5bee <_lv_style_set_color+0x7a> _lv_memcpy_small(style->map + size - new_prop_size - end_mark_size, &prop, sizeof(lv_style_property_t)); 5bf0: 6828 ldr r0, [r5, #0] 5bf2: 4e0b ldr r6, [pc, #44] ; (5c20 <_lv_style_set_color+0xac>) 5bf4: 1fa3 subs r3, r4, #6 5bf6: f10d 010e add.w r1, sp, #14 5bfa: 4418 add r0, r3 5bfc: 2202 movs r2, #2 5bfe: 47b0 blx r6 _lv_memcpy_small(style->map + size - sizeof(lv_color_t) - end_mark_size, &color, sizeof(lv_color_t)); 5c00: 6828 ldr r0, [r5, #0] _lv_memcpy_small(style->map + size - new_prop_size - end_mark_size, &prop, sizeof(lv_style_property_t)); 5c02: 1f23 subs r3, r4, #4 _lv_memcpy_small(style->map + size - sizeof(lv_color_t) - end_mark_size, &color, sizeof(lv_color_t)); 5c04: a903 add r1, sp, #12 5c06: 4418 add r0, r3 5c08: 2202 movs r2, #2 5c0a: 47b0 blx r6 _lv_memcpy_small(style->map + size - end_mark_size, &end_mark, sizeof(end_mark)); 5c0c: 6828 ldr r0, [r5, #0] _lv_memcpy_small(style->map + size - sizeof(lv_color_t) - end_mark_size, &color, sizeof(lv_color_t)); 5c0e: 3c02 subs r4, #2 _lv_memcpy_small(style->map + size - end_mark_size, &end_mark, sizeof(end_mark)); 5c10: 2202 movs r2, #2 5c12: f10d 0116 add.w r1, sp, #22 5c16: 4420 add r0, r4 5c18: 47b0 blx r6 5c1a: e7c5 b.n 5ba8 <_lv_style_set_color+0x34> 5c1c: 000056e1 .word 0x000056e1 5c20: 0000574b .word 0x0000574b 5c24: 000059d5 .word 0x000059d5 5c28: 0000f04d .word 0x0000f04d 5c2c: 00001a0d .word 0x00001a0d 5c30: 000272cc .word 0x000272cc 5c34: 00027166 .word 0x00027166 5c38: 0000eb21 .word 0x0000eb21 5c3c: 0002673e .word 0x0002673e 5c40: 00001a15 .word 0x00001a15 00005c44 <_lv_style_set_opa>: { 5c44: b570 push {r4, r5, r6, lr} 5c46: 6806 ldr r6, [r0, #0] int32_t id = get_property_index(style, prop); 5c48: 4b29 ldr r3, [pc, #164] ; (5cf0 <_lv_style_set_opa+0xac>) { 5c4a: b086 sub sp, #24 5c4c: 4605 mov r5, r0 int32_t id = get_property_index(style, prop); 5c4e: 4630 mov r0, r6 { 5c50: f8ad 100e strh.w r1, [sp, #14] 5c54: f88d 200d strb.w r2, [sp, #13] int32_t id = get_property_index(style, prop); 5c58: 460c mov r4, r1 5c5a: 4798 blx r3 if(id >= 0) { 5c5c: 2800 cmp r0, #0 5c5e: db0e blt.n 5c7e <_lv_style_set_opa+0x3a> attr_found.full = *(style->map + id + 1); 5c60: 1833 adds r3, r6, r0 if(attr_found.bits.state == attr_goal.bits.state) { 5c62: 785b ldrb r3, [r3, #1] 5c64: ea83 2314 eor.w r3, r3, r4, lsr #8 5c68: 065b lsls r3, r3, #25 5c6a: d108 bne.n 5c7e <_lv_style_set_opa+0x3a> _lv_memcpy_small(style->map + id + sizeof(lv_style_property_t), &opa, sizeof(lv_opa_t)); 5c6c: 3002 adds r0, #2 5c6e: 4b21 ldr r3, [pc, #132] ; (5cf4 <_lv_style_set_opa+0xb0>) 5c70: 2201 movs r2, #1 5c72: f10d 010d add.w r1, sp, #13 5c76: 4430 add r0, r6 5c78: 4798 blx r3 } 5c7a: b006 add sp, #24 5c7c: bd70 pop {r4, r5, r6, pc} lv_style_property_t end_mark = _LV_STYLE_CLOSEING_PROP; 5c7e: 23ff movs r3, #255 ; 0xff 5c80: f8ad 3016 strh.w r3, [sp, #22] uint16_t size = _lv_style_get_mem_size(style); 5c84: 4628 mov r0, r5 5c86: 4b1c ldr r3, [pc, #112] ; (5cf8 <_lv_style_set_opa+0xb4>) 5c88: 4798 blx r3 if(size == 0) size += end_mark_size; 5c8a: 1e04 subs r4, r0, #0 5c8c: bf08 it eq 5c8e: 2402 moveq r4, #2 size += sizeof(lv_style_property_t) + sizeof(lv_opa_t); 5c90: 3403 adds r4, #3 style->map = lv_mem_realloc(style->map, size); 5c92: b2a4 uxth r4, r4 5c94: 4b19 ldr r3, [pc, #100] ; (5cfc <_lv_style_set_opa+0xb8>) 5c96: 4621 mov r1, r4 5c98: 4630 mov r0, r6 5c9a: 4798 blx r3 LV_ASSERT_MEM(style->map); 5c9c: 4b18 ldr r3, [pc, #96] ; (5d00 <_lv_style_set_opa+0xbc>) style->map = lv_mem_realloc(style->map, size); 5c9e: 6028 str r0, [r5, #0] LV_ASSERT_MEM(style->map); 5ca0: 4798 blx r3 5ca2: 4606 mov r6, r0 5ca4: b968 cbnz r0, 5cc2 <_lv_style_set_opa+0x7e> 5ca6: 4b17 ldr r3, [pc, #92] ; (5d04 <_lv_style_set_opa+0xc0>) 5ca8: 4917 ldr r1, [pc, #92] ; (5d08 <_lv_style_set_opa+0xc4>) 5caa: 9300 str r3, [sp, #0] 5cac: f44f 72f2 mov.w r2, #484 ; 0x1e4 5cb0: 2003 movs r0, #3 5cb2: 4c16 ldr r4, [pc, #88] ; (5d0c <_lv_style_set_opa+0xc8>) 5cb4: 47a0 blx r4 5cb6: 682a ldr r2, [r5, #0] 5cb8: 4815 ldr r0, [pc, #84] ; (5d10 <_lv_style_set_opa+0xcc>) 5cba: 4916 ldr r1, [pc, #88] ; (5d14 <_lv_style_set_opa+0xd0>) 5cbc: 4633 mov r3, r6 5cbe: 4788 blx r1 5cc0: e7fe b.n 5cc0 <_lv_style_set_opa+0x7c> _lv_memcpy_small(style->map + size - new_prop_size - end_mark_size, &prop, sizeof(lv_style_property_t)); 5cc2: 6828 ldr r0, [r5, #0] 5cc4: 4e0b ldr r6, [pc, #44] ; (5cf4 <_lv_style_set_opa+0xb0>) 5cc6: 1f63 subs r3, r4, #5 5cc8: f10d 010e add.w r1, sp, #14 5ccc: 4418 add r0, r3 5cce: 2202 movs r2, #2 5cd0: 47b0 blx r6 _lv_memcpy_small(style->map + size - sizeof(lv_opa_t) - end_mark_size, &opa, sizeof(lv_opa_t)); 5cd2: 6828 ldr r0, [r5, #0] _lv_memcpy_small(style->map + size - new_prop_size - end_mark_size, &prop, sizeof(lv_style_property_t)); 5cd4: 1ee3 subs r3, r4, #3 _lv_memcpy_small(style->map + size - sizeof(lv_opa_t) - end_mark_size, &opa, sizeof(lv_opa_t)); 5cd6: f10d 010d add.w r1, sp, #13 5cda: 4418 add r0, r3 5cdc: 2201 movs r2, #1 5cde: 47b0 blx r6 _lv_memcpy_small(style->map + size - end_mark_size, &end_mark, sizeof(end_mark)); 5ce0: 6828 ldr r0, [r5, #0] _lv_memcpy_small(style->map + size - sizeof(lv_opa_t) - end_mark_size, &opa, sizeof(lv_opa_t)); 5ce2: 3c02 subs r4, #2 _lv_memcpy_small(style->map + size - end_mark_size, &end_mark, sizeof(end_mark)); 5ce4: 2202 movs r2, #2 5ce6: f10d 0116 add.w r1, sp, #22 5cea: 4420 add r0, r4 5cec: 47b0 blx r6 5cee: e7c4 b.n 5c7a <_lv_style_set_opa+0x36> 5cf0: 000056e1 .word 0x000056e1 5cf4: 0000574b .word 0x0000574b 5cf8: 000059d5 .word 0x000059d5 5cfc: 0000f04d .word 0x0000f04d 5d00: 00001a0d .word 0x00001a0d 5d04: 000272e0 .word 0x000272e0 5d08: 00027166 .word 0x00027166 5d0c: 0000eb21 .word 0x0000eb21 5d10: 0002673e .word 0x0002673e 5d14: 00001a15 .word 0x00001a15 00005d18 <_lv_style_set_ptr>: { 5d18: b570 push {r4, r5, r6, lr} 5d1a: 6806 ldr r6, [r0, #0] int32_t id = get_property_index(style, prop); 5d1c: 4b28 ldr r3, [pc, #160] ; (5dc0 <_lv_style_set_ptr+0xa8>) { 5d1e: b086 sub sp, #24 5d20: 4605 mov r5, r0 int32_t id = get_property_index(style, prop); 5d22: 4630 mov r0, r6 { 5d24: 9202 str r2, [sp, #8] 5d26: f8ad 100e strh.w r1, [sp, #14] int32_t id = get_property_index(style, prop); 5d2a: 460c mov r4, r1 5d2c: 4798 blx r3 if(id >= 0) { 5d2e: 2800 cmp r0, #0 5d30: db0d blt.n 5d4e <_lv_style_set_ptr+0x36> attr_found.full = *(style->map + id + 1); 5d32: 1833 adds r3, r6, r0 if(attr_found.bits.state == attr_goal.bits.state) { 5d34: 785b ldrb r3, [r3, #1] 5d36: ea83 2314 eor.w r3, r3, r4, lsr #8 5d3a: 065b lsls r3, r3, #25 5d3c: d107 bne.n 5d4e <_lv_style_set_ptr+0x36> _lv_memcpy_small(style->map + id + sizeof(lv_style_property_t), &p, sizeof(const void *)); 5d3e: 3002 adds r0, #2 5d40: 4b20 ldr r3, [pc, #128] ; (5dc4 <_lv_style_set_ptr+0xac>) 5d42: 2204 movs r2, #4 5d44: a902 add r1, sp, #8 5d46: 4430 add r0, r6 5d48: 4798 blx r3 } 5d4a: b006 add sp, #24 5d4c: bd70 pop {r4, r5, r6, pc} lv_style_property_t end_mark = _LV_STYLE_CLOSEING_PROP; 5d4e: 23ff movs r3, #255 ; 0xff 5d50: f8ad 3016 strh.w r3, [sp, #22] uint16_t size = _lv_style_get_mem_size(style); 5d54: 4628 mov r0, r5 5d56: 4b1c ldr r3, [pc, #112] ; (5dc8 <_lv_style_set_ptr+0xb0>) 5d58: 4798 blx r3 if(size == 0) size += end_mark_size; 5d5a: 1e04 subs r4, r0, #0 5d5c: bf08 it eq 5d5e: 2402 moveq r4, #2 size += sizeof(lv_style_property_t) + sizeof(const void *); 5d60: 3406 adds r4, #6 style->map = lv_mem_realloc(style->map, size); 5d62: b2a4 uxth r4, r4 5d64: 4b19 ldr r3, [pc, #100] ; (5dcc <_lv_style_set_ptr+0xb4>) 5d66: 4621 mov r1, r4 5d68: 4630 mov r0, r6 5d6a: 4798 blx r3 LV_ASSERT_MEM(style->map); 5d6c: 4b18 ldr r3, [pc, #96] ; (5dd0 <_lv_style_set_ptr+0xb8>) style->map = lv_mem_realloc(style->map, size); 5d6e: 6028 str r0, [r5, #0] LV_ASSERT_MEM(style->map); 5d70: 4798 blx r3 5d72: 4606 mov r6, r0 5d74: b968 cbnz r0, 5d92 <_lv_style_set_ptr+0x7a> 5d76: 4b17 ldr r3, [pc, #92] ; (5dd4 <_lv_style_set_ptr+0xbc>) 5d78: 4917 ldr r1, [pc, #92] ; (5dd8 <_lv_style_set_ptr+0xc0>) 5d7a: 9300 str r3, [sp, #0] 5d7c: f240 2213 movw r2, #531 ; 0x213 5d80: 2003 movs r0, #3 5d82: 4c16 ldr r4, [pc, #88] ; (5ddc <_lv_style_set_ptr+0xc4>) 5d84: 47a0 blx r4 5d86: 682a ldr r2, [r5, #0] 5d88: 4815 ldr r0, [pc, #84] ; (5de0 <_lv_style_set_ptr+0xc8>) 5d8a: 4916 ldr r1, [pc, #88] ; (5de4 <_lv_style_set_ptr+0xcc>) 5d8c: 4633 mov r3, r6 5d8e: 4788 blx r1 5d90: e7fe b.n 5d90 <_lv_style_set_ptr+0x78> _lv_memcpy_small(style->map + size - new_prop_size - end_mark_size, &prop, sizeof(lv_style_property_t)); 5d92: 6828 ldr r0, [r5, #0] 5d94: 4e0b ldr r6, [pc, #44] ; (5dc4 <_lv_style_set_ptr+0xac>) 5d96: f1a4 0308 sub.w r3, r4, #8 5d9a: f10d 010e add.w r1, sp, #14 5d9e: 4418 add r0, r3 5da0: 2202 movs r2, #2 5da2: 47b0 blx r6 _lv_memcpy_small(style->map + size - sizeof(const void *) - end_mark_size, &p, sizeof(const void *)); 5da4: 6828 ldr r0, [r5, #0] _lv_memcpy_small(style->map + size - new_prop_size - end_mark_size, &prop, sizeof(lv_style_property_t)); 5da6: 1fa3 subs r3, r4, #6 _lv_memcpy_small(style->map + size - sizeof(const void *) - end_mark_size, &p, sizeof(const void *)); 5da8: a902 add r1, sp, #8 5daa: 4418 add r0, r3 5dac: 2204 movs r2, #4 5dae: 47b0 blx r6 _lv_memcpy_small(style->map + size - end_mark_size, &end_mark, sizeof(end_mark)); 5db0: 6828 ldr r0, [r5, #0] _lv_memcpy_small(style->map + size - sizeof(const void *) - end_mark_size, &p, sizeof(const void *)); 5db2: 3c02 subs r4, #2 _lv_memcpy_small(style->map + size - end_mark_size, &end_mark, sizeof(end_mark)); 5db4: 2202 movs r2, #2 5db6: f10d 0116 add.w r1, sp, #22 5dba: 4420 add r0, r4 5dbc: 47b0 blx r6 5dbe: e7c4 b.n 5d4a <_lv_style_set_ptr+0x32> 5dc0: 000056e1 .word 0x000056e1 5dc4: 0000574b .word 0x0000574b 5dc8: 000059d5 .word 0x000059d5 5dcc: 0000f04d .word 0x0000f04d 5dd0: 00001a0d .word 0x00001a0d 5dd4: 000272f2 .word 0x000272f2 5dd8: 00027166 .word 0x00027166 5ddc: 0000eb21 .word 0x0000eb21 5de0: 0002673e .word 0x0002673e 5de4: 00001a15 .word 0x00001a15 00005de8 <_lv_style_get_int>: { 5de8: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} 5dec: 460e mov r6, r1 5dee: 4617 mov r7, r2 if(style == NULL) return -1; 5df0: 4605 mov r5, r0 5df2: b1c0 cbz r0, 5e26 <_lv_style_get_int+0x3e> if(style->map == NULL) return -1; 5df4: f8d0 8000 ldr.w r8, [r0] 5df8: f1b8 0f00 cmp.w r8, #0 5dfc: d013 beq.n 5e26 <_lv_style_get_int+0x3e> int32_t id = get_property_index(style, prop); 5dfe: 4b0b ldr r3, [pc, #44] ; (5e2c <_lv_style_get_int+0x44>) 5e00: 4640 mov r0, r8 5e02: 4798 blx r3 if(id < 0) { 5e04: 1e04 subs r4, r0, #0 5e06: db0e blt.n 5e26 <_lv_style_get_int+0x3e> _lv_memcpy_small(res, &style->map[id + sizeof(lv_style_property_t)], sizeof(lv_style_int_t)); 5e08: 1ca1 adds r1, r4, #2 5e0a: 4b09 ldr r3, [pc, #36] ; (5e30 <_lv_style_get_int+0x48>) 5e0c: 4638 mov r0, r7 5e0e: 2202 movs r2, #2 5e10: 4441 add r1, r8 5e12: 4798 blx r3 attr_act.full = style->map[id + 1]; 5e14: 682b ldr r3, [r5, #0] 5e16: 4423 add r3, r4 5e18: 7858 ldrb r0, [r3, #1] return attr_act.bits.state & attr_goal.bits.state; 5e1a: f3c0 0006 ubfx r0, r0, #0, #7 5e1e: ea00 2016 and.w r0, r0, r6, lsr #8 } 5e22: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} if(style == NULL) return -1; 5e26: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff 5e2a: e7fa b.n 5e22 <_lv_style_get_int+0x3a> 5e2c: 000056e1 .word 0x000056e1 5e30: 0000574b .word 0x0000574b 00005e34 <_lv_style_get_opa>: { 5e34: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} 5e38: 460e mov r6, r1 5e3a: 4617 mov r7, r2 if(style == NULL) return -1; 5e3c: 4605 mov r5, r0 5e3e: b1c0 cbz r0, 5e72 <_lv_style_get_opa+0x3e> if(style->map == NULL) return -1; 5e40: f8d0 8000 ldr.w r8, [r0] 5e44: f1b8 0f00 cmp.w r8, #0 5e48: d013 beq.n 5e72 <_lv_style_get_opa+0x3e> int32_t id = get_property_index(style, prop); 5e4a: 4b0b ldr r3, [pc, #44] ; (5e78 <_lv_style_get_opa+0x44>) 5e4c: 4640 mov r0, r8 5e4e: 4798 blx r3 if(id < 0) { 5e50: 1e04 subs r4, r0, #0 5e52: db0e blt.n 5e72 <_lv_style_get_opa+0x3e> _lv_memcpy_small(res, &style->map[id + sizeof(lv_style_property_t)], sizeof(lv_opa_t)); 5e54: 1ca1 adds r1, r4, #2 5e56: 4b09 ldr r3, [pc, #36] ; (5e7c <_lv_style_get_opa+0x48>) 5e58: 4638 mov r0, r7 5e5a: 2201 movs r2, #1 5e5c: 4441 add r1, r8 5e5e: 4798 blx r3 attr_act.full = style->map[id + 1]; 5e60: 682b ldr r3, [r5, #0] 5e62: 4423 add r3, r4 5e64: 7858 ldrb r0, [r3, #1] return attr_act.bits.state & attr_goal.bits.state; 5e66: f3c0 0006 ubfx r0, r0, #0, #7 5e6a: ea00 2016 and.w r0, r0, r6, lsr #8 } 5e6e: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} if(style == NULL) return -1; 5e72: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff 5e76: e7fa b.n 5e6e <_lv_style_get_opa+0x3a> 5e78: 000056e1 .word 0x000056e1 5e7c: 0000574b .word 0x0000574b 00005e80 <_lv_style_get_ptr>: { 5e80: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} 5e84: 460e mov r6, r1 5e86: 4617 mov r7, r2 if(style == NULL) return -1; 5e88: 4605 mov r5, r0 5e8a: b1c0 cbz r0, 5ebe <_lv_style_get_ptr+0x3e> if(style->map == NULL) return -1; 5e8c: f8d0 8000 ldr.w r8, [r0] 5e90: f1b8 0f00 cmp.w r8, #0 5e94: d013 beq.n 5ebe <_lv_style_get_ptr+0x3e> int32_t id = get_property_index(style, prop); 5e96: 4b0b ldr r3, [pc, #44] ; (5ec4 <_lv_style_get_ptr+0x44>) 5e98: 4640 mov r0, r8 5e9a: 4798 blx r3 if(id < 0) { 5e9c: 1e04 subs r4, r0, #0 5e9e: db0e blt.n 5ebe <_lv_style_get_ptr+0x3e> _lv_memcpy_small(res, &style->map[id + sizeof(lv_style_property_t)], sizeof(const void *)); 5ea0: 1ca1 adds r1, r4, #2 5ea2: 4b09 ldr r3, [pc, #36] ; (5ec8 <_lv_style_get_ptr+0x48>) 5ea4: 4638 mov r0, r7 5ea6: 2204 movs r2, #4 5ea8: 4441 add r1, r8 5eaa: 4798 blx r3 attr_act.full = style->map[id + 1]; 5eac: 682b ldr r3, [r5, #0] 5eae: 4423 add r3, r4 5eb0: 7858 ldrb r0, [r3, #1] return attr_act.bits.state & attr_goal.bits.state; 5eb2: f3c0 0006 ubfx r0, r0, #0, #7 5eb6: ea00 2016 and.w r0, r0, r6, lsr #8 } 5eba: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} if(style == NULL) return -1; 5ebe: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff 5ec2: e7fa b.n 5eba <_lv_style_get_ptr+0x3a> 5ec4: 000056e1 .word 0x000056e1 5ec8: 0000574b .word 0x0000574b 00005ecc : if(!list->has_local) return NULL; 5ecc: 7942 ldrb r2, [r0, #5] 5ece: f012 0301 ands.w r3, r2, #1 5ed2: d005 beq.n 5ee0 if(list->has_trans) return list->style_list[1]; 5ed4: 6803 ldr r3, [r0, #0] 5ed6: 0792 lsls r2, r2, #30 5ed8: bf4c ite mi 5eda: 6858 ldrmi r0, [r3, #4] else return list->style_list[0]; 5edc: 6818 ldrpl r0, [r3, #0] 5ede: 4770 bx lr if(!list->has_local) return NULL; 5ee0: 4618 mov r0, r3 } 5ee2: 4770 bx lr 00005ee4 <_lv_style_list_get_transition_style>: if(!list->has_trans) return NULL; 5ee4: 7943 ldrb r3, [r0, #5] 5ee6: f013 0302 ands.w r3, r3, #2 return list->style_list[0]; 5eea: bf1a itte ne 5eec: 6803 ldrne r3, [r0, #0] 5eee: 6818 ldrne r0, [r3, #0] if(!list->has_trans) return NULL; 5ef0: 4618 moveq r0, r3 } 5ef2: 4770 bx lr 00005ef4 <_lv_style_list_reset>: { 5ef4: b538 push {r3, r4, r5, lr} if(list == NULL) return; 5ef6: 4604 mov r4, r0 5ef8: b328 cbz r0, 5f46 <_lv_style_list_reset+0x52> if(list->has_local) { 5efa: 7943 ldrb r3, [r0, #5] 5efc: 07da lsls r2, r3, #31 5efe: d508 bpl.n 5f12 <_lv_style_list_reset+0x1e> lv_style_t * local = lv_style_list_get_local_style(list); 5f00: 4b11 ldr r3, [pc, #68] ; (5f48 <_lv_style_list_reset+0x54>) 5f02: 4798 blx r3 if(local) { 5f04: 4605 mov r5, r0 5f06: b120 cbz r0, 5f12 <_lv_style_list_reset+0x1e> lv_style_reset(local); 5f08: 4b10 ldr r3, [pc, #64] ; (5f4c <_lv_style_list_reset+0x58>) 5f0a: 4798 blx r3 lv_mem_free(local); 5f0c: 4b10 ldr r3, [pc, #64] ; (5f50 <_lv_style_list_reset+0x5c>) 5f0e: 4628 mov r0, r5 5f10: 4798 blx r3 if(list->has_trans) { 5f12: 7963 ldrb r3, [r4, #5] 5f14: 079b lsls r3, r3, #30 5f16: d509 bpl.n 5f2c <_lv_style_list_reset+0x38> lv_style_t * trans = _lv_style_list_get_transition_style(list); 5f18: 4b0e ldr r3, [pc, #56] ; (5f54 <_lv_style_list_reset+0x60>) 5f1a: 4620 mov r0, r4 5f1c: 4798 blx r3 if(trans) { 5f1e: 4605 mov r5, r0 5f20: b120 cbz r0, 5f2c <_lv_style_list_reset+0x38> lv_style_reset(trans); 5f22: 4b0a ldr r3, [pc, #40] ; (5f4c <_lv_style_list_reset+0x58>) 5f24: 4798 blx r3 lv_mem_free(trans); 5f26: 4b0a ldr r3, [pc, #40] ; (5f50 <_lv_style_list_reset+0x5c>) 5f28: 4628 mov r0, r5 5f2a: 4798 blx r3 if(list->style_cnt > 0) lv_mem_free(list->style_list); 5f2c: 7923 ldrb r3, [r4, #4] 5f2e: b113 cbz r3, 5f36 <_lv_style_list_reset+0x42> 5f30: 6820 ldr r0, [r4, #0] 5f32: 4b07 ldr r3, [pc, #28] ; (5f50 <_lv_style_list_reset+0x5c>) 5f34: 4798 blx r3 list->style_list = NULL; 5f36: 2300 movs r3, #0 5f38: 6023 str r3, [r4, #0] list->style_cnt = 0; 5f3a: 88a3 ldrh r3, [r4, #4] 5f3c: f423 63ff bic.w r3, r3, #2040 ; 0x7f8 5f40: f023 0307 bic.w r3, r3, #7 5f44: 80a3 strh r3, [r4, #4] } 5f46: bd38 pop {r3, r4, r5, pc} 5f48: 00005ecd .word 0x00005ecd 5f4c: 000059c1 .word 0x000059c1 5f50: 0000ed1d .word 0x0000ed1d 5f54: 00005ee5 .word 0x00005ee5 00005f58 : { 5f58: b570 push {r4, r5, r6, lr} 5f5a: 460c mov r4, r1 _lv_style_list_reset(list_dest); 5f5c: 4b26 ldr r3, [pc, #152] ; (5ff8 ) { 5f5e: 4605 mov r5, r0 _lv_style_list_reset(list_dest); 5f60: 4798 blx r3 if(list_src->style_list == NULL) return; 5f62: 6823 ldr r3, [r4, #0] 5f64: b1b3 cbz r3, 5f94 if(list_src->has_local == 0) { 5f66: 7963 ldrb r3, [r4, #5] list_dest->style_list = lv_mem_alloc((list_src->style_cnt - 1) * sizeof(lv_style_t *)); 5f68: 7920 ldrb r0, [r4, #4] 5f6a: 4e24 ldr r6, [pc, #144] ; (5ffc ) if(list_src->has_local == 0) { 5f6c: f013 0f01 tst.w r3, #1 if(list_src->has_trans) { 5f70: f003 0202 and.w r2, r3, #2 5f74: 4b22 ldr r3, [pc, #136] ; (6000 ) if(list_src->has_local == 0) { 5f76: d117 bne.n 5fa8 if(list_src->has_trans) { 5f78: b16a cbz r2, 5f96 list_dest->style_list = lv_mem_alloc((list_src->style_cnt - 1) * sizeof(lv_style_t *)); 5f7a: 3801 subs r0, #1 5f7c: 0080 lsls r0, r0, #2 5f7e: 4798 blx r3 5f80: 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 *)); 5f82: 7922 ldrb r2, [r4, #4] 5f84: 6821 ldr r1, [r4, #0] 5f86: 3a01 subs r2, #1 5f88: 0092 lsls r2, r2, #2 5f8a: 3104 adds r1, #4 5f8c: 47b0 blx r6 list_dest->style_cnt = list_src->style_cnt - 1; 5f8e: 7923 ldrb r3, [r4, #4] 5f90: 3b01 subs r3, #1 list_dest->style_cnt = list_src->style_cnt; 5f92: 712b strb r3, [r5, #4] } 5f94: bd70 pop {r4, r5, r6, pc} list_dest->style_list = lv_mem_alloc(list_src->style_cnt * sizeof(lv_style_t *)); 5f96: 0080 lsls r0, r0, #2 5f98: 4798 blx r3 5f9a: 6028 str r0, [r5, #0] _lv_memcpy(list_dest->style_list, list_src->style_list, list_src->style_cnt * sizeof(lv_style_t *)); 5f9c: 7922 ldrb r2, [r4, #4] 5f9e: 6821 ldr r1, [r4, #0] 5fa0: 0092 lsls r2, r2, #2 5fa2: 47b0 blx r6 list_dest->style_cnt = list_src->style_cnt; 5fa4: 7923 ldrb r3, [r4, #4] 5fa6: e7f4 b.n 5f92 if(list_src->has_trans) { 5fa8: b1ca cbz r2, 5fde list_dest->style_list = lv_mem_alloc((list_src->style_cnt - 2) * sizeof(lv_style_t *)); 5faa: 3802 subs r0, #2 5fac: 0080 lsls r0, r0, #2 5fae: 4798 blx r3 5fb0: 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 *)); 5fb2: 7922 ldrb r2, [r4, #4] 5fb4: 6821 ldr r1, [r4, #0] 5fb6: 3a02 subs r2, #2 5fb8: 0092 lsls r2, r2, #2 5fba: 3108 adds r1, #8 5fbc: 47b0 blx r6 list_dest->style_cnt = list_src->style_cnt - 2; 5fbe: 7923 ldrb r3, [r4, #4] 5fc0: 3b02 subs r3, #2 list_dest->style_cnt = list_src->style_cnt - 1; 5fc2: b2db uxtb r3, r3 list_dest->style_cnt = list_src->style_cnt - 2; 5fc4: 712b strb r3, [r5, #4] lv_style_t * local_style = get_alloc_local_style(list_dest); 5fc6: 4e0f ldr r6, [pc, #60] ; (6004 ) 5fc8: 4628 mov r0, r5 5fca: 47b0 blx r6 5fcc: 4605 mov r5, r0 lv_style_copy(local_style, get_alloc_local_style((lv_style_list_t *)list_src)); 5fce: 4620 mov r0, r4 5fd0: 47b0 blx r6 5fd2: 4b0d ldr r3, [pc, #52] ; (6008 ) 5fd4: 4601 mov r1, r0 5fd6: 4628 mov r0, r5 } 5fd8: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr} lv_style_copy(local_style, get_alloc_local_style((lv_style_list_t *)list_src)); 5fdc: 4718 bx r3 list_dest->style_list = lv_mem_alloc((list_src->style_cnt - 1) * sizeof(lv_style_t *)); 5fde: 3801 subs r0, #1 5fe0: 0080 lsls r0, r0, #2 5fe2: 4798 blx r3 5fe4: 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 *)); 5fe6: 7922 ldrb r2, [r4, #4] 5fe8: 6821 ldr r1, [r4, #0] 5fea: 3a01 subs r2, #1 5fec: 0092 lsls r2, r2, #2 5fee: 3104 adds r1, #4 5ff0: 47b0 blx r6 list_dest->style_cnt = list_src->style_cnt - 1; 5ff2: 7923 ldrb r3, [r4, #4] 5ff4: 3b01 subs r3, #1 5ff6: e7e4 b.n 5fc2 5ff8: 00005ef5 .word 0x00005ef5 5ffc: 0000ee69 .word 0x0000ee69 6000: 0000ec65 .word 0x0000ec65 6004: 00005921 .word 0x00005921 6008: 00005a05 .word 0x00005a05 0000600c <_lv_style_list_add_trans_style>: if(list->has_trans) return _lv_style_list_get_transition_style(list); 600c: 7943 ldrb r3, [r0, #5] 600e: 079a lsls r2, r3, #30 { 6010: b573 push {r0, r1, r4, r5, r6, lr} 6012: 4605 mov r5, r0 if(list->has_trans) return _lv_style_list_get_transition_style(list); 6014: d504 bpl.n 6020 <_lv_style_list_add_trans_style+0x14> 6016: 4b1d ldr r3, [pc, #116] ; (608c <_lv_style_list_add_trans_style+0x80>) } 6018: b002 add sp, #8 601a: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr} if(list->has_trans) return _lv_style_list_get_transition_style(list); 601e: 4718 bx r3 lv_style_t * trans_style = lv_mem_alloc(sizeof(lv_style_t)); 6020: 4b1b ldr r3, [pc, #108] ; (6090 <_lv_style_list_add_trans_style+0x84>) 6022: 2004 movs r0, #4 6024: 4798 blx r3 LV_ASSERT_MEM(trans_style); 6026: 4b1b ldr r3, [pc, #108] ; (6094 <_lv_style_list_add_trans_style+0x88>) lv_style_t * trans_style = lv_mem_alloc(sizeof(lv_style_t)); 6028: 4604 mov r4, r0 LV_ASSERT_MEM(trans_style); 602a: 4798 blx r3 602c: 4606 mov r6, r0 602e: b968 cbnz r0, 604c <_lv_style_list_add_trans_style+0x40> 6030: 4b19 ldr r3, [pc, #100] ; (6098 <_lv_style_list_add_trans_style+0x8c>) 6032: 491a ldr r1, [pc, #104] ; (609c <_lv_style_list_add_trans_style+0x90>) 6034: 9300 str r3, [sp, #0] 6036: f240 22cd movw r2, #717 ; 0x2cd 603a: 2003 movs r0, #3 603c: 4d18 ldr r5, [pc, #96] ; (60a0 <_lv_style_list_add_trans_style+0x94>) 603e: 47a8 blx r5 6040: 4818 ldr r0, [pc, #96] ; (60a4 <_lv_style_list_add_trans_style+0x98>) 6042: 4919 ldr r1, [pc, #100] ; (60a8 <_lv_style_list_add_trans_style+0x9c>) 6044: 4622 mov r2, r4 6046: 4633 mov r3, r6 6048: 4788 blx r1 604a: e7fe b.n 604a <_lv_style_list_add_trans_style+0x3e> if(trans_style == NULL) { 604c: b95c cbnz r4, 6066 <_lv_style_list_add_trans_style+0x5a> LV_LOG_WARN("lv_style_list_add_trans_style: couldn't create transition style"); 604e: 4b17 ldr r3, [pc, #92] ; (60ac <_lv_style_list_add_trans_style+0xa0>) 6050: 9300 str r3, [sp, #0] 6052: 4912 ldr r1, [pc, #72] ; (609c <_lv_style_list_add_trans_style+0x90>) 6054: 4b10 ldr r3, [pc, #64] ; (6098 <_lv_style_list_add_trans_style+0x8c>) 6056: 4d12 ldr r5, [pc, #72] ; (60a0 <_lv_style_list_add_trans_style+0x94>) 6058: f240 22cf movw r2, #719 ; 0x2cf 605c: 2002 movs r0, #2 605e: 47a8 blx r5 } 6060: 4620 mov r0, r4 6062: b002 add sp, #8 6064: bd70 pop {r4, r5, r6, pc} lv_style_init(trans_style); 6066: 4b12 ldr r3, [pc, #72] ; (60b0 <_lv_style_list_add_trans_style+0xa4>) 6068: 4620 mov r0, r4 606a: 4798 blx r3 _lv_style_list_add_style(list, trans_style); 606c: 4621 mov r1, r4 606e: 4b11 ldr r3, [pc, #68] ; (60b4 <_lv_style_list_add_trans_style+0xa8>) 6070: 4628 mov r0, r5 6072: 4798 blx r3 list->has_trans = 1; 6074: 796b ldrb r3, [r5, #5] 6076: f043 0302 orr.w r3, r3, #2 607a: 716b strb r3, [r5, #5] if(list->has_local) { 607c: 07db lsls r3, r3, #31 lv_style_t * tmp = list->style_list[0]; 607e: bf42 ittt mi 6080: 682b ldrmi r3, [r5, #0] list->style_list[0] = list->style_list[1]; 6082: e9d3 2100 ldrdmi r2, r1, [r3] list->style_list[1] = tmp; 6086: e9c3 1200 strdmi r1, r2, [r3] 608a: e7e9 b.n 6060 <_lv_style_list_add_trans_style+0x54> 608c: 00005ee5 .word 0x00005ee5 6090: 0000ec65 .word 0x0000ec65 6094: 00001a0d .word 0x00001a0d 6098: 00027304 .word 0x00027304 609c: 00027166 .word 0x00027166 60a0: 0000eb21 .word 0x0000eb21 60a4: 0002673e .word 0x0002673e 60a8: 00001a15 .word 0x00001a15 60ac: 0002722f .word 0x0002722f 60b0: 0000575d .word 0x0000575d 60b4: 00005845 .word 0x00005845 000060b8 <_lv_style_list_get_int>: { 60b8: e92d 4ff7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr} 60bc: 460f mov r7, r1 60be: 4690 mov r8, r2 if(list == NULL) return LV_RES_INV; 60c0: 4605 mov r5, r0 60c2: b318 cbz r0, 610c <_lv_style_list_get_int+0x54> if(list->style_list == NULL) return LV_RES_INV; 60c4: 6800 ldr r0, [r0, #0] 60c6: b308 cbz r0, 610c <_lv_style_list_get_int+0x54> lv_style_int_t value_act = 0; 60c8: 2600 movs r6, #0 lv_style_t * class = lv_style_list_get_style(list, ci); 60ca: 4b1b ldr r3, [pc, #108] ; (6138 <_lv_style_list_get_int+0x80>) int16_t weight_act = _lv_style_get_int(class, prop, &value_act); 60cc: f8df b06c ldr.w fp, [pc, #108] ; 613c <_lv_style_list_get_int+0x84> lv_style_int_t value_act = 0; 60d0: f8ad 6006 strh.w r6, [sp, #6] int16_t weight_goal = attr.full; 60d4: ea4f 2a11 mov.w sl, r1, lsr #8 int16_t weight = -1; 60d8: f04f 34ff mov.w r4, #4294967295 ; 0xffffffff for(ci = 0; ci < list->style_cnt; ci++) { 60dc: 792a ldrb r2, [r5, #4] 60de: fa0f f986 sxth.w r9, r6 60e2: 4591 cmp r9, r2 60e4: db03 blt.n 60ee <_lv_style_list_get_int+0x36> if(weight >= 0) return LV_RES_OK; 60e6: 43e0 mvns r0, r4 if(list == NULL) return LV_RES_INV; 60e8: f3c0 30c0 ubfx r0, r0, #15, #1 60ec: e00e b.n 610c <_lv_style_list_get_int+0x54> lv_style_t * class = lv_style_list_get_style(list, ci); 60ee: b2f1 uxtb r1, r6 60f0: 4628 mov r0, r5 60f2: 4798 blx r3 int16_t weight_act = _lv_style_get_int(class, prop, &value_act); 60f4: f10d 0206 add.w r2, sp, #6 60f8: 4639 mov r1, r7 60fa: 47d8 blx fp if(weight_act == weight_goal) { 60fc: 4582 cmp sl, r0 60fe: 4b0e ldr r3, [pc, #56] ; (6138 <_lv_style_list_get_int+0x80>) 6100: d107 bne.n 6112 <_lv_style_list_get_int+0x5a> *res = value_act; 6102: f8bd 3006 ldrh.w r3, [sp, #6] 6106: f8a8 3000 strh.w r3, [r8] return LV_RES_OK; 610a: 2001 movs r0, #1 } 610c: b003 add sp, #12 610e: 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) { 6112: 796a ldrb r2, [r5, #5] 6114: 0791 lsls r1, r2, #30 6116: d506 bpl.n 6126 <_lv_style_list_get_int+0x6e> 6118: 2800 cmp r0, #0 611a: db04 blt.n 6126 <_lv_style_list_get_int+0x6e> 611c: f1b9 0f00 cmp.w r9, #0 6120: d101 bne.n 6126 <_lv_style_list_get_int+0x6e> 6122: 0752 lsls r2, r2, #29 6124: d5ed bpl.n 6102 <_lv_style_list_get_int+0x4a> else if(weight_act > weight) { 6126: 4284 cmp r4, r0 *res = value_act; 6128: bfbe ittt lt 612a: f8bd 2006 ldrhlt.w r2, [sp, #6] 612e: f8a8 2000 strhlt.w r2, [r8] 6132: 4604 movlt r4, r0 for(ci = 0; ci < list->style_cnt; ci++) { 6134: 3601 adds r6, #1 6136: e7d1 b.n 60dc <_lv_style_list_get_int+0x24> 6138: 000056c1 .word 0x000056c1 613c: 00005de9 .word 0x00005de9 00006140 <_lv_style_list_get_color>: { 6140: e92d 4ff7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr} 6144: 460f mov r7, r1 6146: 4690 mov r8, r2 if(list == NULL) return LV_RES_INV; 6148: 4605 mov r5, r0 614a: b310 cbz r0, 6192 <_lv_style_list_get_color+0x52> if(list->style_list == NULL) return LV_RES_INV; 614c: 6800 ldr r0, [r0, #0] 614e: b300 cbz r0, 6192 <_lv_style_list_get_color+0x52> lv_color_t value_act = { 0 }; 6150: 2600 movs r6, #0 lv_style_t * class = lv_style_list_get_style(list, ci); 6152: 4b1b ldr r3, [pc, #108] ; (61c0 <_lv_style_list_get_color+0x80>) int16_t weight_act = _lv_style_get_color(class, prop, &value_act); 6154: f8df b06c ldr.w fp, [pc, #108] ; 61c4 <_lv_style_list_get_color+0x84> lv_color_t value_act = { 0 }; 6158: f8ad 6004 strh.w r6, [sp, #4] int16_t weight_goal = attr.full; 615c: ea4f 2a11 mov.w sl, r1, lsr #8 int16_t weight = -1; 6160: f04f 34ff mov.w r4, #4294967295 ; 0xffffffff for(ci = 0; ci < list->style_cnt; ci++) { 6164: 792a ldrb r2, [r5, #4] 6166: fa0f f986 sxth.w r9, r6 616a: 4591 cmp r9, r2 616c: db03 blt.n 6176 <_lv_style_list_get_color+0x36> if(weight >= 0) return LV_RES_OK; 616e: 43e0 mvns r0, r4 if(list == NULL) return LV_RES_INV; 6170: f3c0 30c0 ubfx r0, r0, #15, #1 6174: e00d b.n 6192 <_lv_style_list_get_color+0x52> lv_style_t * class = lv_style_list_get_style(list, ci); 6176: b2f1 uxtb r1, r6 6178: 4628 mov r0, r5 617a: 4798 blx r3 int16_t weight_act = _lv_style_get_color(class, prop, &value_act); 617c: aa01 add r2, sp, #4 617e: 4639 mov r1, r7 6180: 47d8 blx fp if(weight_act == weight_goal) { 6182: 4582 cmp sl, r0 6184: 4b0e ldr r3, [pc, #56] ; (61c0 <_lv_style_list_get_color+0x80>) 6186: d107 bne.n 6198 <_lv_style_list_get_color+0x58> *res = value_act; 6188: f8bd 3004 ldrh.w r3, [sp, #4] 618c: f8a8 3000 strh.w r3, [r8] return LV_RES_OK; 6190: 2001 movs r0, #1 } 6192: b003 add sp, #12 6194: 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) { 6198: 796a ldrb r2, [r5, #5] 619a: 0791 lsls r1, r2, #30 619c: d506 bpl.n 61ac <_lv_style_list_get_color+0x6c> 619e: 2800 cmp r0, #0 61a0: db04 blt.n 61ac <_lv_style_list_get_color+0x6c> 61a2: f1b9 0f00 cmp.w r9, #0 61a6: d101 bne.n 61ac <_lv_style_list_get_color+0x6c> 61a8: 0752 lsls r2, r2, #29 61aa: d5ed bpl.n 6188 <_lv_style_list_get_color+0x48> else if(weight_act > weight) { 61ac: 4284 cmp r4, r0 *res = value_act; 61ae: bfbe ittt lt 61b0: f8bd 2004 ldrhlt.w r2, [sp, #4] 61b4: f8a8 2000 strhlt.w r2, [r8] 61b8: 4604 movlt r4, r0 for(ci = 0; ci < list->style_cnt; ci++) { 61ba: 3601 adds r6, #1 61bc: e7d2 b.n 6164 <_lv_style_list_get_color+0x24> 61be: bf00 nop 61c0: 000056c1 .word 0x000056c1 61c4: 00005de9 .word 0x00005de9 000061c8 <_lv_style_list_get_opa>: { 61c8: e92d 4ff7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr} 61cc: 460f mov r7, r1 61ce: 4690 mov r8, r2 if(list == NULL) return LV_RES_INV; 61d0: 4605 mov r5, r0 61d2: b318 cbz r0, 621c <_lv_style_list_get_opa+0x54> if(list->style_list == NULL) return LV_RES_INV; 61d4: 6800 ldr r0, [r0, #0] 61d6: b308 cbz r0, 621c <_lv_style_list_get_opa+0x54> lv_opa_t value_act = LV_OPA_TRANSP; 61d8: 2600 movs r6, #0 lv_style_t * class = lv_style_list_get_style(list, ci); 61da: 4b1b ldr r3, [pc, #108] ; (6248 <_lv_style_list_get_opa+0x80>) int16_t weight_act = _lv_style_get_opa(class, prop, &value_act); 61dc: f8df b06c ldr.w fp, [pc, #108] ; 624c <_lv_style_list_get_opa+0x84> lv_opa_t value_act = LV_OPA_TRANSP; 61e0: f88d 6007 strb.w r6, [sp, #7] int16_t weight_goal = attr.full; 61e4: ea4f 2a11 mov.w sl, r1, lsr #8 int16_t weight = -1; 61e8: f04f 34ff mov.w r4, #4294967295 ; 0xffffffff for(ci = 0; ci < list->style_cnt; ci++) { 61ec: 792a ldrb r2, [r5, #4] 61ee: fa0f f986 sxth.w r9, r6 61f2: 4591 cmp r9, r2 61f4: db03 blt.n 61fe <_lv_style_list_get_opa+0x36> if(weight >= 0) return LV_RES_OK; 61f6: 43e0 mvns r0, r4 if(list == NULL) return LV_RES_INV; 61f8: f3c0 30c0 ubfx r0, r0, #15, #1 61fc: e00e b.n 621c <_lv_style_list_get_opa+0x54> lv_style_t * class = lv_style_list_get_style(list, ci); 61fe: b2f1 uxtb r1, r6 6200: 4628 mov r0, r5 6202: 4798 blx r3 int16_t weight_act = _lv_style_get_opa(class, prop, &value_act); 6204: f10d 0207 add.w r2, sp, #7 6208: 4639 mov r1, r7 620a: 47d8 blx fp if(weight_act == weight_goal) { 620c: 4582 cmp sl, r0 620e: 4b0e ldr r3, [pc, #56] ; (6248 <_lv_style_list_get_opa+0x80>) 6210: d107 bne.n 6222 <_lv_style_list_get_opa+0x5a> *res = value_act; 6212: f89d 3007 ldrb.w r3, [sp, #7] 6216: f888 3000 strb.w r3, [r8] return LV_RES_OK; 621a: 2001 movs r0, #1 } 621c: b003 add sp, #12 621e: 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) { 6222: 796a ldrb r2, [r5, #5] 6224: 0791 lsls r1, r2, #30 6226: d506 bpl.n 6236 <_lv_style_list_get_opa+0x6e> 6228: 2800 cmp r0, #0 622a: db04 blt.n 6236 <_lv_style_list_get_opa+0x6e> 622c: f1b9 0f00 cmp.w r9, #0 6230: d101 bne.n 6236 <_lv_style_list_get_opa+0x6e> 6232: 0752 lsls r2, r2, #29 6234: d5ed bpl.n 6212 <_lv_style_list_get_opa+0x4a> else if(weight_act > weight) { 6236: 4284 cmp r4, r0 *res = value_act; 6238: bfbe ittt lt 623a: f89d 2007 ldrblt.w r2, [sp, #7] 623e: f888 2000 strblt.w r2, [r8] 6242: 4604 movlt r4, r0 for(ci = 0; ci < list->style_cnt; ci++) { 6244: 3601 adds r6, #1 6246: e7d1 b.n 61ec <_lv_style_list_get_opa+0x24> 6248: 000056c1 .word 0x000056c1 624c: 00005e35 .word 0x00005e35 00006250 <_lv_style_list_get_ptr>: { 6250: e92d 4ff7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr} 6254: 460f mov r7, r1 6256: 4690 mov r8, r2 if(list == NULL) return LV_RES_INV; 6258: 4605 mov r5, r0 625a: b1f8 cbz r0, 629c <_lv_style_list_get_ptr+0x4c> if(list->style_list == NULL) return LV_RES_INV; 625c: 6800 ldr r0, [r0, #0] 625e: b1e8 cbz r0, 629c <_lv_style_list_get_ptr+0x4c> lv_style_t * class = lv_style_list_get_style(list, ci); 6260: 4b19 ldr r3, [pc, #100] ; (62c8 <_lv_style_list_get_ptr+0x78>) int16_t weight_act = _lv_style_get_ptr(class, prop, &value_act); 6262: f8df b068 ldr.w fp, [pc, #104] ; 62cc <_lv_style_list_get_ptr+0x7c> int16_t weight_goal = attr.full; 6266: ea4f 2a11 mov.w sl, r1, lsr #8 for(ci = 0; ci < list->style_cnt; ci++) { 626a: 2600 movs r6, #0 int16_t weight = -1; 626c: f04f 34ff mov.w r4, #4294967295 ; 0xffffffff for(ci = 0; ci < list->style_cnt; ci++) { 6270: 792a ldrb r2, [r5, #4] 6272: fa0f f986 sxth.w r9, r6 6276: 4591 cmp r9, r2 6278: db03 blt.n 6282 <_lv_style_list_get_ptr+0x32> if(weight >= 0) return LV_RES_OK; 627a: 43e0 mvns r0, r4 if(list == NULL) return LV_RES_INV; 627c: f3c0 30c0 ubfx r0, r0, #15, #1 6280: e00c b.n 629c <_lv_style_list_get_ptr+0x4c> lv_style_t * class = lv_style_list_get_style(list, ci); 6282: b2f1 uxtb r1, r6 6284: 4628 mov r0, r5 6286: 4798 blx r3 int16_t weight_act = _lv_style_get_ptr(class, prop, &value_act); 6288: aa01 add r2, sp, #4 628a: 4639 mov r1, r7 628c: 47d8 blx fp if(weight_act == weight_goal) { 628e: 4582 cmp sl, r0 6290: 4b0d ldr r3, [pc, #52] ; (62c8 <_lv_style_list_get_ptr+0x78>) 6292: d106 bne.n 62a2 <_lv_style_list_get_ptr+0x52> *res = value_act; 6294: 9b01 ldr r3, [sp, #4] 6296: f8c8 3000 str.w r3, [r8] return LV_RES_OK; 629a: 2001 movs r0, #1 } 629c: b003 add sp, #12 629e: 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) { 62a2: 796a ldrb r2, [r5, #5] 62a4: 0791 lsls r1, r2, #30 62a6: d506 bpl.n 62b6 <_lv_style_list_get_ptr+0x66> 62a8: 2800 cmp r0, #0 62aa: db04 blt.n 62b6 <_lv_style_list_get_ptr+0x66> 62ac: f1b9 0f00 cmp.w r9, #0 62b0: d101 bne.n 62b6 <_lv_style_list_get_ptr+0x66> 62b2: 0752 lsls r2, r2, #29 62b4: d5ee bpl.n 6294 <_lv_style_list_get_ptr+0x44> else if(weight_act > weight) { 62b6: 4284 cmp r4, r0 *res = value_act; 62b8: bfbe ittt lt 62ba: 9a01 ldrlt r2, [sp, #4] 62bc: f8c8 2000 strlt.w r2, [r8] 62c0: 4604 movlt r4, r0 for(ci = 0; ci < list->style_cnt; ci++) { 62c2: 3601 adds r6, #1 62c4: e7d4 b.n 6270 <_lv_style_list_get_ptr+0x20> 62c6: bf00 nop 62c8: 000056c1 .word 0x000056c1 62cc: 00005e81 .word 0x00005e81 000062d0 : * @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) { 62d0: 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))); 62d2: 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))); 62d6: 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))); 62da: f3c0 1445 ubfx r4, r0, #5, #6 62de: 4373 muls r3, r6 62e0: 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))); 62e4: f001 041f and.w r4, r1, #31 62e8: f000 071f and.w r7, r0, #31 62ec: 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))); 62ee: 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))); 62f2: 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))); 62f6: 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))); 62f8: 436c muls r4, r5 #else /*LV_COLOR_DEPTH == 1*/ ret.full = mix > LV_OPA_50 ? c1.full : c2.full; #endif return ret; 62fa: f3c3 53c5 ubfx r3, r3, #23, #6 62fe: f3c4 54c4 ubfx r4, r4, #23, #5 6302: 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))); 6306: f3c1 23c4 ubfx r3, r1, #11, #5 630a: 4373 muls r3, r6 630c: f3c0 20c4 ubfx r0, r0, #11, #5 6310: fb00 3202 mla r2, r0, r2, r3 6314: fb05 f302 mul.w r3, r5, r2 6318: 0ddb lsrs r3, r3, #23 } 631a: ea44 20c3 orr.w r0, r4, r3, lsl #11 631e: bdf0 pop {r4, r5, r6, r7, pc} 00006320 : } } } static inline lv_color_t color_blend_true_color_additive(lv_color_t fg, lv_color_t bg, lv_opa_t opa) { 6320: 460b mov r3, r1 if(opa <= LV_OPA_MIN) return bg; 6322: 2a05 cmp r2, #5 { 6324: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} 6328: f000 0c1f and.w ip, r0, #31 632c: f3c0 1e45 ubfx lr, r0, #5, #6 6330: f3c0 28c4 ubfx r8, r0, #11, #5 6334: f003 061f and.w r6, r3, #31 6338: f3c3 1545 ubfx r5, r3, #5, #6 633c: f3c3 24c4 ubfx r4, r3, #11, #5 if(opa <= LV_OPA_MIN) return bg; 6340: d802 bhi.n 6348 6342: 4608 mov r0, r1 #endif if(opa == LV_OPA_COVER) return fg; return lv_color_mix(fg, bg, opa); } 6344: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} tmp = bg.ch.red + fg.ch.red; 6348: eb04 0308 add.w r3, r4, r8 fg.ch.red = LV_MATH_MIN(tmp, 31); 634c: 2b1f cmp r3, #31 tmp = bg.ch.green + fg.ch.green; 634e: eb05 040e add.w r4, r5, lr fg.ch.red = LV_MATH_MIN(tmp, 31); 6352: bf28 it cs 6354: 231f movcs r3, #31 tmp = bg.ch.blue + fg.ch.blue; 6356: eb06 050c add.w r5, r6, ip fg.ch.green = LV_MATH_MIN(tmp, 63); 635a: 2c3f cmp r4, #63 ; 0x3f 635c: bf28 it cs 635e: 243f movcs r4, #63 ; 0x3f fg.ch.blue = LV_MATH_MIN(tmp, 31); 6360: 2d1f cmp r5, #31 6362: bf28 it cs 6364: 251f movcs r5, #31 if(opa == LV_OPA_COVER) return fg; 6366: 2aff cmp r2, #255 ; 0xff fg.ch.red = LV_MATH_MIN(tmp, 31); 6368: f003 031f and.w r3, r3, #31 fg.ch.green = LV_MATH_MIN(tmp, 63); 636c: f004 043f and.w r4, r4, #63 ; 0x3f fg.ch.blue = LV_MATH_MIN(tmp, 31); 6370: f005 051f and.w r5, r5, #31 if(opa == LV_OPA_COVER) return fg; 6374: d108 bne.n 6388 6376: f04f 0000 mov.w r0, #0 637a: f365 0004 bfi r0, r5, #0, #5 637e: f364 104a bfi r0, r4, #5, #6 6382: f363 20cf bfi r0, r3, #11, #5 6386: e7dd b.n 6344 return lv_color_mix(fg, bg, opa); 6388: f365 0004 bfi r0, r5, #0, #5 638c: f364 104a bfi r0, r4, #5, #6 6390: f363 20cf bfi r0, r3, #11, #5 } 6394: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr} return lv_color_mix(fg, bg, opa); 6398: 4b00 ldr r3, [pc, #0] ; (639c ) 639a: 4718 bx r3 639c: 000062d1 .word 0x000062d1 000063a0 : static inline lv_color_t color_blend_true_color_subtractive(lv_color_t fg, lv_color_t bg, lv_opa_t opa) { 63a0: 460b mov r3, r1 if(opa <= LV_OPA_MIN) return bg; 63a2: 2a05 cmp r2, #5 { 63a4: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} 63a8: f000 0c1f and.w ip, r0, #31 63ac: f3c0 1e45 ubfx lr, r0, #5, #6 63b0: f3c0 28c4 ubfx r8, r0, #11, #5 63b4: f003 061f and.w r6, r3, #31 63b8: f3c3 1545 ubfx r5, r3, #5, #6 63bc: f3c3 24c4 ubfx r4, r3, #11, #5 if(opa <= LV_OPA_MIN) return bg; 63c0: d802 bhi.n 63c8 63c2: 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); } 63c4: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} tmp = bg.ch.red - fg.ch.red; 63c8: eba4 0308 sub.w r3, r4, r8 tmp = bg.ch.green - fg.ch.green; 63cc: eba5 040e sub.w r4, r5, lr tmp = bg.ch.blue - fg.ch.blue; 63d0: eba6 050c sub.w r5, r6, ip fg.ch.red = LV_MATH_MAX(tmp, 0); 63d4: ea23 73e3 bic.w r3, r3, r3, asr #31 fg.ch.green = LV_MATH_MAX(tmp, 0); 63d8: ea24 74e4 bic.w r4, r4, r4, asr #31 fg.ch.blue = LV_MATH_MAX(tmp, 0); 63dc: ea25 75e5 bic.w r5, r5, r5, asr #31 if(opa == LV_OPA_COVER) return fg; 63e0: 2aff cmp r2, #255 ; 0xff fg.ch.red = LV_MATH_MAX(tmp, 0); 63e2: f003 031f and.w r3, r3, #31 fg.ch.green = LV_MATH_MAX(tmp, 0); 63e6: f004 043f and.w r4, r4, #63 ; 0x3f fg.ch.blue = LV_MATH_MAX(tmp, 0); 63ea: f005 051f and.w r5, r5, #31 if(opa == LV_OPA_COVER) return fg; 63ee: d108 bne.n 6402 63f0: f04f 0000 mov.w r0, #0 63f4: f365 0004 bfi r0, r5, #0, #5 63f8: f364 104a bfi r0, r4, #5, #6 63fc: f363 20cf bfi r0, r3, #11, #5 6400: e7e0 b.n 63c4 return lv_color_mix(fg, bg, opa); 6402: f365 0004 bfi r0, r5, #0, #5 6406: f364 104a bfi r0, r4, #5, #6 640a: f363 20cf bfi r0, r3, #11, #5 } 640e: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr} return lv_color_mix(fg, bg, opa); 6412: 4b01 ldr r3, [pc, #4] ; (6418 ) 6414: 4718 bx r3 6416: bf00 nop 6418: 000062d1 .word 0x000062d1 0000641c <_lv_blend_fill>: { 641c: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} 6420: b08d sub sp, #52 ; 0x34 6422: 4605 mov r5, r0 6424: 9305 str r3, [sp, #20] 6426: f89d 305c ldrb.w r3, [sp, #92] ; 0x5c 642a: f89d 7058 ldrb.w r7, [sp, #88] ; 0x58 642e: f89d b060 ldrb.w fp, [sp, #96] ; 0x60 6432: 9304 str r3, [sp, #16] if(opa < LV_OPA_MIN) return; 6434: 2b04 cmp r3, #4 { 6436: 460e mov r6, r1 6438: 4614 mov r4, r2 if(opa < LV_OPA_MIN) return; 643a: f240 80a3 bls.w 6584 <_lv_blend_fill+0x168> if(mask_res == LV_DRAW_MASK_RES_TRANSP) return; 643e: 2f00 cmp r7, #0 6440: f000 80a0 beq.w 6584 <_lv_blend_fill+0x168> lv_disp_t * disp = _lv_refr_get_disp_refreshing(); 6444: 4ba4 ldr r3, [pc, #656] ; (66d8 <_lv_blend_fill+0x2bc>) 6446: 4798 blx r3 lv_disp_buf_t * vdb = lv_disp_get_buf(disp); 6448: 4ba4 ldr r3, [pc, #656] ; (66dc <_lv_blend_fill+0x2c0>) lv_disp_t * disp = _lv_refr_get_disp_refreshing(); 644a: 4682 mov sl, r0 lv_disp_buf_t * vdb = lv_disp_get_buf(disp); 644c: 4798 blx r3 is_common = _lv_area_intersect(&draw_area, clip_area, fill_area); 644e: 4ba4 ldr r3, [pc, #656] ; (66e0 <_lv_blend_fill+0x2c4>) lv_color_t * disp_buf = vdb->buf_act; 6450: f8d0 9008 ldr.w r9, [r0, #8] lv_disp_buf_t * vdb = lv_disp_get_buf(disp); 6454: 4680 mov r8, r0 is_common = _lv_area_intersect(&draw_area, clip_area, fill_area); 6456: 4632 mov r2, r6 6458: 4629 mov r1, r5 645a: a80a add r0, sp, #40 ; 0x28 645c: 4798 blx r3 if(!is_common) return; 645e: 2800 cmp r0, #0 6460: f000 8090 beq.w 6584 <_lv_blend_fill+0x168> draw_area.x1 -= disp_area->x1; 6464: f8bd 2028 ldrh.w r2, [sp, #40] ; 0x28 6468: f8b8 0010 ldrh.w r0, [r8, #16] draw_area.x2 -= disp_area->x1; 646c: f8bd 302c ldrh.w r3, [sp, #44] ; 0x2c draw_area.y1 -= disp_area->y1; 6470: f8b8 6012 ldrh.w r6, [r8, #18] 6474: f8bd 502a ldrh.w r5, [sp, #42] ; 0x2a draw_area.x1 -= disp_area->x1; 6478: 1a11 subs r1, r2, r0 draw_area.x2 -= disp_area->x1; 647a: 1a18 subs r0, r3, r0 647c: f8ad 002c strh.w r0, [sp, #44] ; 0x2c draw_area.y2 -= disp_area->y1; 6480: f8bd 002e ldrh.w r0, [sp, #46] ; 0x2e 6484: 1b80 subs r0, r0, r6 draw_area.y1 -= disp_area->y1; 6486: 1bad subs r5, r5, r6 draw_area.y2 -= disp_area->y1; 6488: f8ad 002e strh.w r0, [sp, #46] ; 0x2e if(mask && disp->driver.antialiasing == 0) 648c: 9805 ldr r0, [sp, #20] draw_area.x1 -= disp_area->x1; 648e: b209 sxth r1, r1 draw_area.y1 -= disp_area->y1; 6490: b22d sxth r5, r5 draw_area.x1 -= disp_area->x1; 6492: f8ad 1028 strh.w r1, [sp, #40] ; 0x28 draw_area.y1 -= disp_area->y1; 6496: f8ad 502a strh.w r5, [sp, #42] ; 0x2a if(mask && disp->driver.antialiasing == 0) 649a: 2800 cmp r0, #0 649c: d145 bne.n 652a <_lv_blend_fill+0x10e> if(disp->driver.set_px_cb) { 649e: f8da 0014 ldr.w r0, [sl, #20] 64a2: b2a6 uxth r6, r4 64a4: 2800 cmp r0, #0 64a6: d15a bne.n 655e <_lv_blend_fill+0x142> else if(mode == LV_BLEND_MODE_NORMAL) { 64a8: f1bb 0f00 cmp.w fp, #0 64ac: f040 8227 bne.w 68fe <_lv_blend_fill+0x4e2> lv_disp_t * disp = _lv_refr_get_disp_refreshing(); 64b0: 4b89 ldr r3, [pc, #548] ; (66d8 <_lv_blend_fill+0x2bc>) 64b2: 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); 64b4: f8b8 3014 ldrh.w r3, [r8, #20] 64b8: 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); 64bc: f9bd 102a ldrsh.w r1, [sp, #42] ; 0x2a return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); 64c0: 3301 adds r3, #1 64c2: eba3 0802 sub.w r8, r3, r2 64c6: f8bd 302c ldrh.w r3, [sp, #44] ; 0x2c 64ca: f9bd 2028 ldrsh.w r2, [sp, #40] ; 0x28 64ce: 3301 adds r3, #1 64d0: 1a9b subs r3, r3, r2 64d2: b21b sxth r3, r3 64d4: 9306 str r3, [sp, #24] return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); 64d6: f9bd 302e ldrsh.w r3, [sp, #46] ; 0x2e 64da: 9308 str r3, [sp, #32] 64dc: 3301 adds r3, #1 return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); 64de: fa0f f888 sxth.w r8, r8 return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); 64e2: 1a5b subs r3, r3, r1 int32_t draw_area_h = lv_area_get_height(draw_area); 64e4: b21b sxth r3, r3 lv_color_t * disp_buf_first = disp_buf + disp_w * draw_area->y1 + draw_area->x1; 64e6: fb08 2201 mla r2, r8, r1, r2 if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) { 64ea: 2f01 cmp r7, #1 int32_t draw_area_h = lv_area_get_height(draw_area); 64ec: 9307 str r3, [sp, #28] lv_disp_t * disp = _lv_refr_get_disp_refreshing(); 64ee: 4682 mov sl, r0 lv_color_t * disp_buf_first = disp_buf + disp_w * draw_area->y1 + draw_area->x1; 64f0: 460b mov r3, r1 64f2: eb09 0542 add.w r5, r9, r2, lsl #1 if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) { 64f6: f040 8132 bne.w 675e <_lv_blend_fill+0x342> if(opa > LV_OPA_MAX) { 64fa: 9b04 ldr r3, [sp, #16] 64fc: 2bfa cmp r3, #250 ; 0xfa 64fe: f240 809e bls.w 663e <_lv_blend_fill+0x222> if(disp->driver.gpu_fill_cb && lv_area_get_size(draw_area) > GPU_SIZE_LIMIT) { 6502: 6a43 ldr r3, [r0, #36] ; 0x24 6504: 2b00 cmp r3, #0 6506: f000 8095 beq.w 6634 <_lv_blend_fill+0x218> 650a: 4b76 ldr r3, [pc, #472] ; (66e4 <_lv_blend_fill+0x2c8>) 650c: a80a add r0, sp, #40 ; 0x28 650e: 4798 blx r3 6510: 28f0 cmp r0, #240 ; 0xf0 6512: f240 808f bls.w 6634 <_lv_blend_fill+0x218> disp->driver.gpu_fill_cb(&disp->driver, disp_buf, disp_w, draw_area, color); 6516: f8da 5024 ldr.w r5, [sl, #36] ; 0x24 651a: f8ad 4000 strh.w r4, [sp] 651e: ab0a add r3, sp, #40 ; 0x28 6520: 4642 mov r2, r8 6522: 4649 mov r1, r9 6524: 4650 mov r0, sl 6526: 47a8 blx r5 return; 6528: e02c b.n 6584 <_lv_blend_fill+0x168> if(mask && disp->driver.antialiasing == 0) 652a: f89a 0008 ldrb.w r0, [sl, #8] 652e: 07c0 lsls r0, r0, #31 6530: d4b5 bmi.n 649e <_lv_blend_fill+0x82> return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); 6532: 1c58 adds r0, r3, #1 6534: 1a80 subs r0, r0, r2 for(i = 0; i < mask_w; i++) mask[i] = mask[i] > 128 ? LV_OPA_COVER : LV_OPA_TRANSP; 6536: 9e05 ldr r6, [sp, #20] int32_t mask_w = lv_area_get_width(&draw_area); 6538: fa0f fe80 sxth.w lr, r0 for(i = 0; i < mask_w; i++) mask[i] = mask[i] > 128 ? LV_OPA_COVER : LV_OPA_TRANSP; 653c: 9805 ldr r0, [sp, #20] 653e: f1c6 0c01 rsb ip, r6, #1 6542: 3801 subs r0, #1 6544: eb0c 0600 add.w r6, ip, r0 6548: 45b6 cmp lr, r6 654a: dda8 ble.n 649e <_lv_blend_fill+0x82> 654c: f810 6f01 ldrb.w r6, [r0, #1]! 6550: 2e80 cmp r6, #128 ; 0x80 6552: f04f 36ff mov.w r6, #4294967295 ; 0xffffffff 6556: bf98 it ls 6558: 2600 movls r6, #0 655a: 7006 strb r6, [r0, #0] 655c: e7f2 b.n 6544 <_lv_blend_fill+0x128> lv_disp_t * disp = _lv_refr_get_disp_refreshing(); 655e: 4b5e ldr r3, [pc, #376] ; (66d8 <_lv_blend_fill+0x2bc>) 6560: 4798 blx r3 6562: f8b8 2014 ldrh.w r2, [r8, #20] 6566: f8b8 3010 ldrh.w r3, [r8, #16] 656a: f9bd 502a ldrsh.w r5, [sp, #42] ; 0x2a 656e: 3201 adds r2, #1 6570: 1ad2 subs r2, r2, r3 if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) { 6572: 2f01 cmp r7, #1 lv_disp_t * disp = _lv_refr_get_disp_refreshing(); 6574: 4606 mov r6, r0 6576: b212 sxth r2, r2 if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) { 6578: d121 bne.n 65be <_lv_blend_fill+0x1a2> for(y = draw_area->y1; y <= draw_area->y2; y++) { 657a: 46aa mov sl, r5 657c: f9bd 302e ldrsh.w r3, [sp, #46] ; 0x2e 6580: 459a cmp sl, r3 6582: dd02 ble.n 658a <_lv_blend_fill+0x16e> } 6584: b00d add sp, #52 ; 0x34 6586: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} for(x = draw_area->x1; x <= draw_area->x2; x++) { 658a: f9bd 7028 ldrsh.w r7, [sp, #40] ; 0x28 disp->driver.set_px_cb(&disp->driver, (void *)disp_buf, disp_w, x, y, color, opa); 658e: fa0f f88a sxth.w r8, sl for(x = draw_area->x1; x <= draw_area->x2; x++) { 6592: f9bd 302c ldrsh.w r3, [sp, #44] ; 0x2c 6596: 429f cmp r7, r3 6598: dd02 ble.n 65a0 <_lv_blend_fill+0x184> for(y = draw_area->y1; y <= draw_area->y2; y++) { 659a: f10a 0a01 add.w sl, sl, #1 659e: e7ed b.n 657c <_lv_blend_fill+0x160> disp->driver.set_px_cb(&disp->driver, (void *)disp_buf, disp_w, x, y, color, opa); 65a0: 9b04 ldr r3, [sp, #16] 65a2: 9302 str r3, [sp, #8] 65a4: f8ad 4004 strh.w r4, [sp, #4] 65a8: f8cd 8000 str.w r8, [sp] 65ac: b23b sxth r3, r7 65ae: 6975 ldr r5, [r6, #20] 65b0: 9205 str r2, [sp, #20] 65b2: 4649 mov r1, r9 65b4: 4630 mov r0, r6 65b6: 47a8 blx r5 for(x = draw_area->x1; x <= draw_area->x2; x++) { 65b8: 3701 adds r7, #1 65ba: 9a05 ldr r2, [sp, #20] 65bc: e7e9 b.n 6592 <_lv_blend_fill+0x176> 65be: f8bd 702c ldrh.w r7, [sp, #44] ; 0x2c const lv_opa_t * mask_tmp = mask - draw_area->x1; 65c2: f9bd 3028 ldrsh.w r3, [sp, #40] ; 0x28 65c6: 9905 ldr r1, [sp, #20] 65c8: 3701 adds r7, #1 65ca: 1aff subs r7, r7, r3 65cc: eba1 0a03 sub.w sl, r1, r3 65d0: b23b sxth r3, r7 65d2: 9305 str r3, [sp, #20] for(y = draw_area->y1; y <= draw_area->y2; y++) { 65d4: f9bd 302e ldrsh.w r3, [sp, #46] ; 0x2e 65d8: 429d cmp r5, r3 65da: dcd3 bgt.n 6584 <_lv_blend_fill+0x168> for(x = draw_area->x1; x <= draw_area->x2; x++) { 65dc: f9bd 8028 ldrsh.w r8, [sp, #40] ; 0x28 disp->driver.set_px_cb(&disp->driver, (void *)disp_buf, disp_w, x, y, color, 65e0: fa0f fb85 sxth.w fp, r5 for(x = draw_area->x1; x <= draw_area->x2; x++) { 65e4: f9bd 302c ldrsh.w r3, [sp, #44] ; 0x2c 65e8: 4598 cmp r8, r3 65ea: dd03 ble.n 65f4 <_lv_blend_fill+0x1d8> mask_tmp += draw_area_w; 65ec: 9b05 ldr r3, [sp, #20] for(y = draw_area->y1; y <= draw_area->y2; y++) { 65ee: 3501 adds r5, #1 mask_tmp += draw_area_w; 65f0: 449a add sl, r3 for(y = draw_area->y1; y <= draw_area->y2; y++) { 65f2: e7ef b.n 65d4 <_lv_blend_fill+0x1b8> (uint32_t)((uint32_t)opa * mask_tmp[x]) >> 8); 65f4: f81a 3008 ldrb.w r3, [sl, r8] 65f8: 9904 ldr r1, [sp, #16] disp->driver.set_px_cb(&disp->driver, (void *)disp_buf, disp_w, x, y, color, 65fa: f8ad 4004 strh.w r4, [sp, #4] (uint32_t)((uint32_t)opa * mask_tmp[x]) >> 8); 65fe: fb13 f301 smulbb r3, r3, r1 disp->driver.set_px_cb(&disp->driver, (void *)disp_buf, disp_w, x, y, color, 6602: 0a1b lsrs r3, r3, #8 6604: 9302 str r3, [sp, #8] 6606: f8cd b000 str.w fp, [sp] 660a: fa0f f388 sxth.w r3, r8 660e: 6977 ldr r7, [r6, #20] 6610: 9206 str r2, [sp, #24] 6612: 4649 mov r1, r9 6614: 4630 mov r0, r6 6616: 47b8 blx r7 for(x = draw_area->x1; x <= draw_area->x2; x++) { 6618: f108 0801 add.w r8, r8, #1 661c: 9a06 ldr r2, [sp, #24] 661e: e7e1 b.n 65e4 <_lv_blend_fill+0x1c8> lv_color_fill(disp_buf_first, color, draw_area_w); 6620: 4628 mov r0, r5 6622: 9a06 ldr r2, [sp, #24] 6624: 4631 mov r1, r6 6626: 47b8 blx r7 disp_buf_first += disp_w; 6628: 4445 add r5, r8 for(y = 0; y < draw_area_h; y++) { 662a: 3401 adds r4, #1 662c: 9b07 ldr r3, [sp, #28] 662e: 42a3 cmp r3, r4 6630: dcf6 bgt.n 6620 <_lv_blend_fill+0x204> 6632: e7a7 b.n 6584 <_lv_blend_fill+0x168> lv_color_fill(disp_buf_first, color, draw_area_w); 6634: 4f2c ldr r7, [pc, #176] ; (66e8 <_lv_blend_fill+0x2cc>) disp_buf_first += disp_w; 6636: ea4f 0848 mov.w r8, r8, lsl #1 663a: 2400 movs r4, #0 663c: e7f6 b.n 662c <_lv_blend_fill+0x210> if(disp->driver.gpu_blend_cb && lv_area_get_size(draw_area) > GPU_SIZE_LIMIT) { 663e: 6a03 ldr r3, [r0, #32] 6640: b313 cbz r3, 6688 <_lv_blend_fill+0x26c> 6642: 4b28 ldr r3, [pc, #160] ; (66e4 <_lv_blend_fill+0x2c8>) 6644: a80a add r0, sp, #40 ; 0x28 6646: 4798 blx r3 6648: 28f0 cmp r0, #240 ; 0xf0 664a: d91d bls.n 6688 <_lv_blend_fill+0x26c> 664c: 4b27 ldr r3, [pc, #156] ; (66ec <_lv_blend_fill+0x2d0>) for(x = 0; x < draw_area_w ; x++) blend_buf[x].full = color.full; 664e: 9a06 ldr r2, [sp, #24] 6650: 455a cmp r2, fp 6652: dc14 bgt.n 667e <_lv_blend_fill+0x262> for(y = draw_area->y1; y <= draw_area->y2; y++) { 6654: f9bd 602a ldrsh.w r6, [sp, #42] ; 0x2a disp->driver.gpu_blend_cb(&disp->driver, disp_buf_first, blend_buf, draw_area_w, opa); 6658: 4f24 ldr r7, [pc, #144] ; (66ec <_lv_blend_fill+0x2d0>) disp_buf_first += disp_w; 665a: ea4f 0848 mov.w r8, r8, lsl #1 for(y = draw_area->y1; y <= draw_area->y2; y++) { 665e: f9bd 302e ldrsh.w r3, [sp, #46] ; 0x2e 6662: 429e cmp r6, r3 6664: dc8e bgt.n 6584 <_lv_blend_fill+0x168> disp->driver.gpu_blend_cb(&disp->driver, disp_buf_first, blend_buf, draw_area_w, opa); 6666: 9b04 ldr r3, [sp, #16] 6668: 9300 str r3, [sp, #0] 666a: 4629 mov r1, r5 666c: f8da 4020 ldr.w r4, [sl, #32] 6670: 9b06 ldr r3, [sp, #24] 6672: 463a mov r2, r7 6674: 4650 mov r0, sl 6676: 47a0 blx r4 disp_buf_first += disp_w; 6678: 4445 add r5, r8 for(y = draw_area->y1; y <= draw_area->y2; y++) { 667a: 3601 adds r6, #1 667c: e7ef b.n 665e <_lv_blend_fill+0x242> for(x = 0; x < draw_area_w ; x++) blend_buf[x].full = color.full; 667e: f823 6b02 strh.w r6, [r3], #2 6682: f10b 0b01 add.w fp, fp, #1 6686: e7e2 b.n 664e <_lv_blend_fill+0x232> lv_color_t last_res_color = lv_color_mix(color, last_dest_color, opa); 6688: 9a04 ldr r2, [sp, #16] 668a: 4b19 ldr r3, [pc, #100] ; (66f0 <_lv_blend_fill+0x2d4>) 668c: 4620 mov r0, r4 lv_color_t last_dest_color = LV_COLOR_BLACK; 668e: f04f 0100 mov.w r1, #0 lv_color_t last_res_color = lv_color_mix(color, last_dest_color, opa); 6692: 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; 6694: 9e04 ldr r6, [sp, #16] 6696: f3c4 22c4 ubfx r2, r4, #11, #5 669a: 4372 muls r2, r6 669c: 9205 str r2, [sp, #20] out[1] = (uint16_t) LV_COLOR_GET_G(c) * mix; 669e: f3c4 1245 ubfx r2, r4, #5, #6 out[2] = (uint16_t) LV_COLOR_GET_B(c) * mix; 66a2: f004 041f and.w r4, r4, #31 out[1] = (uint16_t) LV_COLOR_GET_G(c) * mix; 66a6: fb02 fb06 mul.w fp, r2, r6 out[2] = (uint16_t) LV_COLOR_GET_B(c) * mix; 66aa: fb04 fa06 mul.w sl, r4, r6 disp_buf_first += disp_w; 66ae: ea4f 0248 mov.w r2, r8, lsl #1 lv_opa_t opa_inv = 255 - opa; 66b2: 43f6 mvns r6, r6 lv_color_t last_res_color = lv_color_mix(color, last_dest_color, opa); 66b4: f000 031f and.w r3, r0, #31 66b8: f3c0 1c45 ubfx ip, r0, #5, #6 disp_buf_first += disp_w; 66bc: 9204 str r2, [sp, #16] lv_color_t last_res_color = lv_color_mix(color, last_dest_color, opa); 66be: f3c0 20c4 ubfx r0, r0, #11, #5 for(y = 0; y < draw_area_h; y++) { 66c2: 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); 66c6: b2f6 uxtb r6, r6 66c8: 9a07 ldr r2, [sp, #28] 66ca: 4542 cmp r2, r8 66cc: f77f af5a ble.w 6584 <_lv_blend_fill+0x168> 66d0: 462f mov r7, r5 for(x = 0; x < draw_area_w; x++) { 66d2: f04f 0e00 mov.w lr, #0 66d6: e03a b.n 674e <_lv_blend_fill+0x332> 66d8: 00005215 .word 0x00005215 66dc: 0000dc0d .word 0x0000dc0d 66e0: 0000e0b9 .word 0x0000e0b9 66e4: 0000e09d .word 0x0000e09d 66e8: 0000e535 .word 0x0000e535 66ec: 20008aa4 .word 0x20008aa4 66f0: 000062d1 .word 0x000062d1 if(last_dest_color.full != disp_buf_first[x].full) { 66f4: 463a mov r2, r7 66f6: fa1f f981 uxth.w r9, r1 66fa: 8814 ldrh r4, [r2, #0] 66fc: 45a1 cmp r9, r4 66fe: f107 0702 add.w r7, r7, #2 6702: d015 beq.n 6730 <_lv_blend_fill+0x314> 6704: 7850 ldrb r0, [r2, #1] 6706: 9b05 ldr r3, [sp, #20] last_dest_color = disp_buf_first[x]; 6708: f837 1c02 ldrh.w r1, [r7, #-2] 670c: 08c0 lsrs r0, r0, #3 670e: 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); 6712: 7813 ldrb r3, [r2, #0] LV_COLOR_SET_G(ret, (uint16_t)((uint16_t) premult_c1[1] + LV_COLOR_GET_G(c2) * mix) >> 8); 6714: 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); 6718: 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); 671c: 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); 6720: 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); 6724: 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); 6728: 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); 672c: f3c3 2304 ubfx r3, r3, #8, #5 disp_buf_first[x] = last_res_color; 6730: 7814 ldrb r4, [r2, #0] 6732: f363 0404 bfi r4, r3, #0, #5 6736: 7014 strb r4, [r2, #0] 6738: 8814 ldrh r4, [r2, #0] 673a: f36c 144a bfi r4, ip, #5, #6 673e: 8014 strh r4, [r2, #0] 6740: f3c4 2407 ubfx r4, r4, #8, #8 6744: f360 04c7 bfi r4, r0, #3, #5 6748: 7054 strb r4, [r2, #1] for(x = 0; x < draw_area_w; x++) { 674a: f10e 0e01 add.w lr, lr, #1 674e: 9a06 ldr r2, [sp, #24] 6750: 4572 cmp r2, lr 6752: dccf bgt.n 66f4 <_lv_blend_fill+0x2d8> disp_buf_first += disp_w; 6754: 9a04 ldr r2, [sp, #16] for(y = 0; y < draw_area_h; y++) { 6756: f108 0801 add.w r8, r8, #1 disp_buf_first += disp_w; 675a: 4415 add r5, r2 for(y = 0; y < draw_area_h; y++) { 675c: e7b4 b.n 66c8 <_lv_blend_fill+0x2ac> last_dest_color.full = disp_buf_first[0].full; 675e: f839 1012 ldrh.w r1, [r9, r2, lsl #1] disp_buf_first += disp_w; 6762: ea4f 0248 mov.w r2, r8, lsl #1 6766: 9209 str r2, [sp, #36] ; 0x24 if(opa > LV_OPA_MAX) { 6768: 9a04 ldr r2, [sp, #16] 676a: 2afa cmp r2, #250 ; 0xfa 676c: f240 80c4 bls.w 68f8 <_lv_blend_fill+0x4dc> int32_t x_end4 = draw_area_w - 4; 6770: 9b06 ldr r3, [sp, #24] FILL_NORMAL_MASK_PX(x, color) 6772: f8df 8298 ldr.w r8, [pc, #664] ; 6a0c <_lv_blend_fill+0x5f0> int32_t x_end4 = draw_area_w - 4; 6776: 3b04 subs r3, #4 6778: 9304 str r3, [sp, #16] for(y = 0; y < draw_area_h; y++) { 677a: 9b07 ldr r3, [sp, #28] 677c: 455b cmp r3, fp 677e: f77f af01 ble.w 6584 <_lv_blend_fill+0x168> 6782: f8dd a014 ldr.w sl, [sp, #20] 6786: 46a9 mov r9, r5 for(x = 0; x < draw_area_w && ((lv_uintptr_t)mask_tmp_x & 0x3); x++) { 6788: 2400 movs r4, #0 678a: e013 b.n 67b4 <_lv_blend_fill+0x398> FILL_NORMAL_MASK_PX(x, color) 678c: f8b9 1000 ldrh.w r1, [r9] 6790: 4630 mov r0, r6 6792: 47c0 blx r8 6794: f8a9 0000 strh.w r0, [r9] 6798: e009 b.n 67ae <_lv_blend_fill+0x392> for(x = 0; x < draw_area_w && ((lv_uintptr_t)mask_tmp_x & 0x3); x++) { 679a: f01a 0f03 tst.w sl, #3 679e: d00d beq.n 67bc <_lv_blend_fill+0x3a0> FILL_NORMAL_MASK_PX(x, color) 67a0: f81a 2b01 ldrb.w r2, [sl], #1 67a4: b11a cbz r2, 67ae <_lv_blend_fill+0x392> 67a6: 2aff cmp r2, #255 ; 0xff 67a8: d1f0 bne.n 678c <_lv_blend_fill+0x370> 67aa: f8a9 6000 strh.w r6, [r9] for(x = 0; x < draw_area_w && ((lv_uintptr_t)mask_tmp_x & 0x3); x++) { 67ae: 3401 adds r4, #1 67b0: f109 0902 add.w r9, r9, #2 67b4: 9b06 ldr r3, [sp, #24] 67b6: 42a3 cmp r3, r4 67b8: 4657 mov r7, sl 67ba: dcee bgt.n 679a <_lv_blend_fill+0x37e> 67bc: eb05 0944 add.w r9, r5, r4, lsl #1 for(; x <= x_end4; x += 4) { 67c0: 9b04 ldr r3, [sp, #16] 67c2: 42a3 cmp r3, r4 67c4: da0e bge.n 67e4 <_lv_blend_fill+0x3c8> 67c6: 3f01 subs r7, #1 67c8: eb05 0944 add.w r9, r5, r4, lsl #1 for(; x < draw_area_w ; x++) { 67cc: 9b06 ldr r3, [sp, #24] 67ce: 42a3 cmp r3, r4 67d0: dc4c bgt.n 686c <_lv_blend_fill+0x450> disp_buf_first += disp_w; 67d2: 9b09 ldr r3, [sp, #36] ; 0x24 67d4: 441d add r5, r3 mask += draw_area_w; 67d6: e9dd 3205 ldrd r3, r2, [sp, #20] 67da: 4413 add r3, r2 67dc: 9305 str r3, [sp, #20] for(y = 0; y < draw_area_h; y++) { 67de: f10b 0b01 add.w fp, fp, #1 67e2: e7ca b.n 677a <_lv_blend_fill+0x35e> if(*mask32) { 67e4: 683b ldr r3, [r7, #0] 67e6: b14b cbz r3, 67fc <_lv_blend_fill+0x3e0> if((*mask32) == 0xFFFFFFFF) { 67e8: 3301 adds r3, #1 67ea: d10c bne.n 6806 <_lv_blend_fill+0x3ea> disp_buf_first[x] = color; 67ec: f8a9 6000 strh.w r6, [r9] disp_buf_first[x + 1] = color; 67f0: f8a9 6002 strh.w r6, [r9, #2] disp_buf_first[x + 2] = color; 67f4: f8a9 6004 strh.w r6, [r9, #4] FILL_NORMAL_MASK_PX(x + 3, color) 67f8: f8a9 6006 strh.w r6, [r9, #6] mask32++; 67fc: 3704 adds r7, #4 for(; x <= x_end4; x += 4) { 67fe: 3404 adds r4, #4 6800: f109 0908 add.w r9, r9, #8 6804: e7dc b.n 67c0 <_lv_blend_fill+0x3a4> FILL_NORMAL_MASK_PX(x, color) 6806: 783a ldrb r2, [r7, #0] 6808: b11a cbz r2, 6812 <_lv_blend_fill+0x3f6> 680a: 2aff cmp r2, #255 ; 0xff 680c: d119 bne.n 6842 <_lv_blend_fill+0x426> 680e: f8a9 6000 strh.w r6, [r9] FILL_NORMAL_MASK_PX(x + 1, color) 6812: 787a ldrb r2, [r7, #1] 6814: b11a cbz r2, 681e <_lv_blend_fill+0x402> 6816: 2aff cmp r2, #255 ; 0xff 6818: d11a bne.n 6850 <_lv_blend_fill+0x434> 681a: f8a9 6002 strh.w r6, [r9, #2] FILL_NORMAL_MASK_PX(x + 2, color) 681e: 78ba ldrb r2, [r7, #2] 6820: b11a cbz r2, 682a <_lv_blend_fill+0x40e> 6822: 2aff cmp r2, #255 ; 0xff 6824: d11b bne.n 685e <_lv_blend_fill+0x442> 6826: f8a9 6004 strh.w r6, [r9, #4] FILL_NORMAL_MASK_PX(x + 3, color) 682a: 78fa ldrb r2, [r7, #3] 682c: 2a00 cmp r2, #0 682e: d0e5 beq.n 67fc <_lv_blend_fill+0x3e0> 6830: 2aff cmp r2, #255 ; 0xff 6832: d0e1 beq.n 67f8 <_lv_blend_fill+0x3dc> 6834: f8b9 1006 ldrh.w r1, [r9, #6] 6838: 4630 mov r0, r6 683a: 47c0 blx r8 683c: f8a9 0006 strh.w r0, [r9, #6] 6840: e7dc b.n 67fc <_lv_blend_fill+0x3e0> FILL_NORMAL_MASK_PX(x, color) 6842: f8b9 1000 ldrh.w r1, [r9] 6846: 4630 mov r0, r6 6848: 47c0 blx r8 684a: f8a9 0000 strh.w r0, [r9] 684e: e7e0 b.n 6812 <_lv_blend_fill+0x3f6> FILL_NORMAL_MASK_PX(x + 1, color) 6850: f8b9 1002 ldrh.w r1, [r9, #2] 6854: 4630 mov r0, r6 6856: 47c0 blx r8 6858: f8a9 0002 strh.w r0, [r9, #2] 685c: e7df b.n 681e <_lv_blend_fill+0x402> FILL_NORMAL_MASK_PX(x + 2, color) 685e: f8b9 1004 ldrh.w r1, [r9, #4] 6862: 4630 mov r0, r6 6864: 47c0 blx r8 6866: f8a9 0004 strh.w r0, [r9, #4] 686a: e7de b.n 682a <_lv_blend_fill+0x40e> FILL_NORMAL_MASK_PX(x, color) 686c: f817 2f01 ldrb.w r2, [r7, #1]! 6870: b11a cbz r2, 687a <_lv_blend_fill+0x45e> 6872: 2aff cmp r2, #255 ; 0xff 6874: d105 bne.n 6882 <_lv_blend_fill+0x466> 6876: f8a9 6000 strh.w r6, [r9] for(; x < draw_area_w ; x++) { 687a: 3401 adds r4, #1 687c: f109 0902 add.w r9, r9, #2 6880: e7a4 b.n 67cc <_lv_blend_fill+0x3b0> FILL_NORMAL_MASK_PX(x, color) 6882: f8b9 1000 ldrh.w r1, [r9] 6886: 4630 mov r0, r6 6888: 47c0 blx r8 688a: f8a9 0000 strh.w r0, [r9] 688e: e7f4 b.n 687a <_lv_blend_fill+0x45e> if(*mask_tmp_x) { 6890: 9a05 ldr r2, [sp, #20] 6892: f812 4008 ldrb.w r4, [r2, r8] 6896: b1d4 cbz r4, 68ce <_lv_blend_fill+0x4b2> if(*mask_tmp_x != last_mask) opa_tmp = *mask_tmp_x == LV_OPA_COVER ? opa : 6898: 455c cmp r4, fp if(*mask_tmp_x != last_mask || last_dest_color.full != disp_buf_first[x].full) { 689a: f8b7 9000 ldrh.w r9, [r7] if(*mask_tmp_x != last_mask) opa_tmp = *mask_tmp_x == LV_OPA_COVER ? opa : 689e: d012 beq.n 68c6 <_lv_blend_fill+0x4aa> 68a0: 2cff cmp r4, #255 ; 0xff (uint32_t)((uint32_t)(*mask_tmp_x) * opa) >> 8; 68a2: bf17 itett ne 68a4: 9a04 ldrne r2, [sp, #16] 68a6: f8dd a010 ldreq.w sl, [sp, #16] 68aa: fb14 f202 smulbbne r2, r4, r2 if(*mask_tmp_x != last_mask) opa_tmp = *mask_tmp_x == LV_OPA_COVER ? opa : 68ae: ea4f 2a12 movne.w sl, r2, lsr #8 68b2: 9307 str r3, [sp, #28] else last_res_color = lv_color_mix(color, disp_buf_first[x], opa_tmp); 68b4: 8839 ldrh r1, [r7, #0] 68b6: 4b55 ldr r3, [pc, #340] ; (6a0c <_lv_blend_fill+0x5f0>) 68b8: 4652 mov r2, sl 68ba: 4630 mov r0, r6 68bc: 4798 blx r3 68be: 46a3 mov fp, r4 68c0: 9b07 ldr r3, [sp, #28] 68c2: b280 uxth r0, r0 last_dest_color.full = disp_buf_first[x].full; 68c4: e001 b.n 68ca <_lv_blend_fill+0x4ae> if(*mask_tmp_x != last_mask || last_dest_color.full != disp_buf_first[x].full) { 68c6: 4549 cmp r1, r9 68c8: d1f3 bne.n 68b2 <_lv_blend_fill+0x496> disp_buf_first[x] = last_res_color; 68ca: 8038 strh r0, [r7, #0] if(*mask_tmp_x != last_mask || last_dest_color.full != disp_buf_first[x].full) { 68cc: 4649 mov r1, r9 for(x = 0; x < draw_area_w; x++) { 68ce: f108 0801 add.w r8, r8, #1 68d2: 3702 adds r7, #2 68d4: 9a06 ldr r2, [sp, #24] 68d6: 4542 cmp r2, r8 68d8: dcda bgt.n 6890 <_lv_blend_fill+0x474> disp_buf_first += disp_w; 68da: 9a09 ldr r2, [sp, #36] ; 0x24 68dc: 4415 add r5, r2 mask += draw_area_w; 68de: e9dd 2405 ldrd r2, r4, [sp, #20] 68e2: 4422 add r2, r4 68e4: 9205 str r2, [sp, #20] for(y = draw_area->y1; y <= draw_area->y2; y++) { 68e6: 3301 adds r3, #1 68e8: 9a08 ldr r2, [sp, #32] 68ea: 4293 cmp r3, r2 68ec: f73f ae4a bgt.w 6584 <_lv_blend_fill+0x168> 68f0: 462f mov r7, r5 for(x = 0; x < draw_area_w; x++) { 68f2: f04f 0800 mov.w r8, #0 68f6: e7ed b.n 68d4 <_lv_blend_fill+0x4b8> last_res_color.full = disp_buf_first[0].full; 68f8: 4608 mov r0, r1 lv_opa_t opa_tmp = LV_OPA_TRANSP; 68fa: 46da mov sl, fp 68fc: e7f4 b.n 68e8 <_lv_blend_fill+0x4cc> switch(mode) { 68fe: f1bb 0f01 cmp.w fp, #1 6902: f9b8 0010 ldrsh.w r0, [r8, #16] 6906: f9b8 6014 ldrsh.w r6, [r8, #20] 690a: d00c beq.n 6926 <_lv_blend_fill+0x50a> 690c: f1bb 0f02 cmp.w fp, #2 6910: d02d beq.n 696e <_lv_blend_fill+0x552> LV_LOG_WARN("fill_blended: unsupported blend mode"); 6912: 4b3f ldr r3, [pc, #252] ; (6a10 <_lv_blend_fill+0x5f4>) 6914: 9300 str r3, [sp, #0] 6916: 493f ldr r1, [pc, #252] ; (6a14 <_lv_blend_fill+0x5f8>) 6918: 4b3f ldr r3, [pc, #252] ; (6a18 <_lv_blend_fill+0x5fc>) 691a: 4c40 ldr r4, [pc, #256] ; (6a1c <_lv_blend_fill+0x600>) 691c: f44f 7204 mov.w r2, #528 ; 0x210 6920: 2002 movs r0, #2 6922: 47a0 blx r4 return; 6924: e62e b.n 6584 <_lv_blend_fill+0x168> blend_fp = color_blend_true_color_additive; 6926: f8df b0f8 ldr.w fp, [pc, #248] ; 6a20 <_lv_blend_fill+0x604> 692a: 3601 adds r6, #1 692c: 1a36 subs r6, r6, r0 692e: b236 sxth r6, r6 lv_color_t * disp_buf_tmp = disp_buf + disp_w * draw_area->y1; 6930: fb06 f005 mul.w r0, r6, r5 if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) { 6934: 2f01 cmp r7, #1 lv_color_t * disp_buf_tmp = disp_buf + disp_w * draw_area->y1; 6936: eb09 0a40 add.w sl, r9, r0, lsl #1 disp_buf_tmp += disp_w; 693a: ea4f 0646 mov.w r6, r6, lsl #1 if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) { 693e: d127 bne.n 6990 <_lv_blend_fill+0x574> lv_color_t last_dest_color = LV_COLOR_BLACK; 6940: f04f 0800 mov.w r8, #0 lv_color_t last_res_color = lv_color_mix(color, last_dest_color, opa); 6944: 9a04 ldr r2, [sp, #16] 6946: 4b31 ldr r3, [pc, #196] ; (6a0c <_lv_blend_fill+0x5f0>) 6948: 4641 mov r1, r8 694a: 4620 mov r0, r4 694c: 4798 blx r3 for(y = draw_area->y1; y <= draw_area->y2; y++) { 694e: f9bd 302e ldrsh.w r3, [sp, #46] ; 0x2e 6952: 429d cmp r5, r3 6954: f73f ae16 bgt.w 6584 <_lv_blend_fill+0x168> for(x = draw_area->x1; x <= draw_area->x2; x++) { 6958: f9bd 7028 ldrsh.w r7, [sp, #40] ; 0x28 695c: eb0a 0947 add.w r9, sl, r7, lsl #1 6960: f9bd 302c ldrsh.w r3, [sp, #44] ; 0x2c 6964: 429f cmp r7, r3 6966: dd05 ble.n 6974 <_lv_blend_fill+0x558> disp_buf_tmp += disp_w; 6968: 44b2 add sl, r6 for(y = draw_area->y1; y <= draw_area->y2; y++) { 696a: 3501 adds r5, #1 696c: e7ef b.n 694e <_lv_blend_fill+0x532> switch(mode) { 696e: f8df b0b4 ldr.w fp, [pc, #180] ; 6a24 <_lv_blend_fill+0x608> 6972: e7da b.n 692a <_lv_blend_fill+0x50e> if(last_dest_color.full != disp_buf_tmp[x].full) { 6974: f8b9 1000 ldrh.w r1, [r9] 6978: fa1f f388 uxth.w r3, r8 697c: 428b cmp r3, r1 697e: d003 beq.n 6988 <_lv_blend_fill+0x56c> last_res_color = blend_fp(color, disp_buf_tmp[x], opa); 6980: 9a04 ldr r2, [sp, #16] 6982: 4620 mov r0, r4 last_dest_color = disp_buf_tmp[x]; 6984: 4688 mov r8, r1 last_res_color = blend_fp(color, disp_buf_tmp[x], opa); 6986: 47d8 blx fp disp_buf_tmp[x] = last_res_color; 6988: f829 0b02 strh.w r0, [r9], #2 for(x = draw_area->x1; x <= draw_area->x2; x++) { 698c: 3701 adds r7, #1 698e: e7e7 b.n 6960 <_lv_blend_fill+0x544> 6990: f1c2 0201 rsb r2, r2, #1 6994: eb03 0802 add.w r8, r3, r2 const lv_opa_t * mask_tmp = mask - draw_area->x1; 6998: 9b05 ldr r3, [sp, #20] 699a: 1a5f subs r7, r3, r1 last_dest_color.full = disp_buf_tmp[0].full; 699c: f839 1010 ldrh.w r1, [r9, r0, lsl #1] 69a0: fa0f f888 sxth.w r8, r8 last_res_color.full = disp_buf_tmp[0].full; 69a4: 4608 mov r0, r1 lv_opa_t last_mask = LV_OPA_TRANSP; 69a6: f04f 0c00 mov.w ip, #0 for(y = draw_area->y1; y <= draw_area->y2; y++) { 69aa: f9bd 302e ldrsh.w r3, [sp, #46] ; 0x2e 69ae: 429d cmp r5, r3 69b0: f73f ade8 bgt.w 6584 <_lv_blend_fill+0x168> for(x = draw_area->x1; x <= draw_area->x2; x++) { 69b4: f9bd 9028 ldrsh.w r9, [sp, #40] ; 0x28 69b8: eb0a 0349 add.w r3, sl, r9, lsl #1 69bc: f9bd 202c ldrsh.w r2, [sp, #44] ; 0x2c 69c0: 4591 cmp r9, r2 69c2: dd03 ble.n 69cc <_lv_blend_fill+0x5b0> disp_buf_tmp += disp_w; 69c4: 44b2 add sl, r6 mask_tmp += draw_area_w; 69c6: 4447 add r7, r8 for(y = draw_area->y1; y <= draw_area->y2; y++) { 69c8: 3501 adds r5, #1 69ca: e7ee b.n 69aa <_lv_blend_fill+0x58e> if(mask_tmp[x] == 0) continue; 69cc: f817 2009 ldrb.w r2, [r7, r9] 69d0: b1ba cbz r2, 6a02 <_lv_blend_fill+0x5e6> if(mask_tmp[x] != last_mask || last_dest_color.full != disp_buf_tmp[x].full) { 69d2: 4562 cmp r2, ip 69d4: d103 bne.n 69de <_lv_blend_fill+0x5c2> 69d6: f8b3 e000 ldrh.w lr, [r3] 69da: 458e cmp lr, r1 69dc: d010 beq.n 6a00 <_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; 69de: 2af9 cmp r2, #249 ; 0xf9 69e0: bf94 ite ls 69e2: 9904 ldrls r1, [sp, #16] 69e4: 9a04 ldrhi r2, [sp, #16] last_res_color = blend_fp(color, disp_buf_tmp[x], opa_tmp); 69e6: 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; 69e8: bf9c itt ls 69ea: fb12 f201 smulbbls r2, r2, r1 69ee: 0a12 lsrls r2, r2, #8 last_res_color = blend_fp(color, disp_buf_tmp[x], opa_tmp); 69f0: 8819 ldrh r1, [r3, #0] 69f2: 4620 mov r0, r4 69f4: 47d8 blx fp last_dest_color.full = disp_buf_tmp[x].full; 69f6: 9b05 ldr r3, [sp, #20] last_mask = mask_tmp[x]; 69f8: f817 c009 ldrb.w ip, [r7, r9] last_dest_color.full = disp_buf_tmp[x].full; 69fc: 8819 ldrh r1, [r3, #0] last_res_color = blend_fp(color, disp_buf_tmp[x], opa_tmp); 69fe: b280 uxth r0, r0 disp_buf_tmp[x] = last_res_color; 6a00: 8018 strh r0, [r3, #0] for(x = draw_area->x1; x <= draw_area->x2; x++) { 6a02: f109 0901 add.w r9, r9, #1 6a06: 3302 adds r3, #2 6a08: e7d8 b.n 69bc <_lv_blend_fill+0x5a0> 6a0a: bf00 nop 6a0c: 000062d1 .word 0x000062d1 6a10: 00027359 .word 0x00027359 6a14: 00027323 .word 0x00027323 6a18: 0002737e .word 0x0002737e 6a1c: 0000eb21 .word 0x0000eb21 6a20: 00006321 .word 0x00006321 6a24: 000063a1 .word 0x000063a1 00006a28 <_lv_blend_map>: { 6a28: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} 6a2c: b08f sub sp, #60 ; 0x3c 6a2e: 4689 mov r9, r1 6a30: 9306 str r3, [sp, #24] 6a32: f89d 3060 ldrb.w r3, [sp, #96] ; 0x60 6a36: 930a str r3, [sp, #40] ; 0x28 6a38: f89d 3064 ldrb.w r3, [sp, #100] ; 0x64 6a3c: f89d a068 ldrb.w sl, [sp, #104] ; 0x68 6a40: 920b str r2, [sp, #44] ; 0x2c if(opa < LV_OPA_MIN) return; 6a42: 2b04 cmp r3, #4 { 6a44: 9305 str r3, [sp, #20] if(opa < LV_OPA_MIN) return; 6a46: f240 80d7 bls.w 6bf8 <_lv_blend_map+0x1d0> if(mask_res == LV_DRAW_MASK_RES_TRANSP) return; 6a4a: 9b0a ldr r3, [sp, #40] ; 0x28 6a4c: 2b00 cmp r3, #0 6a4e: f000 80d3 beq.w 6bf8 <_lv_blend_map+0x1d0> is_common = _lv_area_intersect(&draw_area, clip_area, map_area); 6a52: 460a mov r2, r1 6a54: 4bb6 ldr r3, [pc, #728] ; (6d30 <_lv_blend_map+0x308>) 6a56: 4601 mov r1, r0 6a58: a80c add r0, sp, #48 ; 0x30 6a5a: 4798 blx r3 if(!is_common) return; 6a5c: 2800 cmp r0, #0 6a5e: f000 80cb beq.w 6bf8 <_lv_blend_map+0x1d0> lv_disp_t * disp = _lv_refr_get_disp_refreshing(); 6a62: 4bb4 ldr r3, [pc, #720] ; (6d34 <_lv_blend_map+0x30c>) 6a64: 4798 blx r3 lv_disp_buf_t * vdb = lv_disp_get_buf(disp); 6a66: 4bb4 ldr r3, [pc, #720] ; (6d38 <_lv_blend_map+0x310>) lv_disp_t * disp = _lv_refr_get_disp_refreshing(); 6a68: 4605 mov r5, r0 lv_disp_buf_t * vdb = lv_disp_get_buf(disp); 6a6a: 4798 blx r3 6a6c: 4683 mov fp, r0 lv_color_t * disp_buf = vdb->buf_act; 6a6e: 6883 ldr r3, [r0, #8] draw_area.y1 -= disp_area->y1; 6a70: f8bd e032 ldrh.w lr, [sp, #50] ; 0x32 lv_color_t * disp_buf = vdb->buf_act; 6a74: 9308 str r3, [sp, #32] draw_area.y1 -= disp_area->y1; 6a76: f8bb 3012 ldrh.w r3, [fp, #18] draw_area.y2 -= disp_area->y1; 6a7a: f8bd c036 ldrh.w ip, [sp, #54] ; 0x36 draw_area.x1 -= disp_area->x1; 6a7e: f8bd 4030 ldrh.w r4, [sp, #48] ; 0x30 6a82: 8a00 ldrh r0, [r0, #16] draw_area.y1 -= disp_area->y1; 6a84: ebae 0203 sub.w r2, lr, r3 6a88: fa0f f882 sxth.w r8, r2 draw_area.y2 -= disp_area->y1; 6a8c: ebac 0303 sub.w r3, ip, r3 draw_area.x2 -= disp_area->x1; 6a90: f8bd 2034 ldrh.w r2, [sp, #52] ; 0x34 draw_area.y2 -= disp_area->y1; 6a94: f8ad 3036 strh.w r3, [sp, #54] ; 0x36 draw_area.x1 -= disp_area->x1; 6a98: 1a21 subs r1, r4, r0 if(mask && disp->driver.antialiasing == 0) 6a9a: 9b06 ldr r3, [sp, #24] draw_area.y1 -= disp_area->y1; 6a9c: f8ad 8032 strh.w r8, [sp, #50] ; 0x32 draw_area.x1 -= disp_area->x1; 6aa0: b209 sxth r1, r1 draw_area.x2 -= disp_area->x1; 6aa2: 1a10 subs r0, r2, r0 draw_area.x1 -= disp_area->x1; 6aa4: f8ad 1030 strh.w r1, [sp, #48] ; 0x30 draw_area.x2 -= disp_area->x1; 6aa8: f8ad 0034 strh.w r0, [sp, #52] ; 0x34 if(mask && disp->driver.antialiasing == 0) 6aac: 2b00 cmp r3, #0 6aae: d15e bne.n 6b6e <_lv_blend_map+0x146> if(disp->driver.set_px_cb) { 6ab0: 696b ldr r3, [r5, #20] 6ab2: 2b00 cmp r3, #0 6ab4: d172 bne.n 6b9c <_lv_blend_map+0x174> 6ab6: f1c4 0401 rsb r4, r4, #1 6aba: 4422 add r2, r4 6abc: f8b9 7004 ldrh.w r7, [r9, #4] 6ac0: f8bb 6014 ldrh.w r6, [fp, #20] 6ac4: 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)); 6ac8: f9bb 0012 ldrsh.w r0, [fp, #18] 6acc: b212 sxth r2, r2 6ace: 9207 str r2, [sp, #28] 6ad0: f9b9 2000 ldrsh.w r2, [r9] 6ad4: f9b9 9002 ldrsh.w r9, [r9, #2] 6ad8: 3601 adds r6, #1 6ada: 3701 adds r7, #1 6adc: 1af6 subs r6, r6, r3 6ade: 1abf subs r7, r7, r2 6ae0: eba9 0900 sub.w r9, r9, r0 6ae4: b236 sxth r6, r6 6ae6: b23f sxth r7, r7 6ae8: eba8 0909 sub.w r9, r8, r9 lv_color_t * disp_buf_first = disp_buf + disp_w * draw_area->y1 + draw_area->x1; 6aec: 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)); 6af0: fb07 f909 mul.w r9, r7, r9 else if(mode == LV_BLEND_MODE_NORMAL) { 6af4: f1ba 0f00 cmp.w sl, #0 6af8: f040 81ea bne.w 6ed0 <_lv_blend_map+0x4a8> return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); 6afc: f1ce 0001 rsb r0, lr, #1 map_buf_first += (draw_area->x1 - (map_area->x1 - disp_area->x1)); 6b00: 1ad5 subs r5, r2, r3 6b02: 4484 add ip, r0 6b04: 9b0b ldr r3, [sp, #44] ; 0x2c int32_t draw_area_h = lv_area_get_height(draw_area); 6b06: fa0f f08c sxth.w r0, ip map_buf_first += (draw_area->x1 - (map_area->x1 - disp_area->x1)); 6b0a: 1b4d subs r5, r1, r5 int32_t draw_area_h = lv_area_get_height(draw_area); 6b0c: 9009 str r0, [sp, #36] ; 0x24 map_buf_first += (draw_area->x1 - (map_area->x1 - disp_area->x1)); 6b0e: 444d add r5, r9 lv_color_t * disp_buf_first = disp_buf + disp_w * draw_area->y1 + draw_area->x1; 6b10: 9808 ldr r0, [sp, #32] 6b12: 440c add r4, r1 map_buf_first += (draw_area->x1 - (map_area->x1 - disp_area->x1)); 6b14: eb03 0545 add.w r5, r3, r5, lsl #1 lv_disp_t * disp = _lv_refr_get_disp_refreshing(); 6b18: 4b86 ldr r3, [pc, #536] ; (6d34 <_lv_blend_map+0x30c>) lv_color_t * disp_buf_first = disp_buf + disp_w * draw_area->y1 + draw_area->x1; 6b1a: eb00 0444 add.w r4, r0, r4, lsl #1 lv_disp_t * disp = _lv_refr_get_disp_refreshing(); 6b1e: 4798 blx r3 map_buf_first += map_w; 6b20: 007b lsls r3, r7, #1 6b22: 9308 str r3, [sp, #32] if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) { 6b24: 9b0a ldr r3, [sp, #40] ; 0x28 6b26: 2b01 cmp r3, #1 lv_disp_t * disp = _lv_refr_get_disp_refreshing(); 6b28: 4680 mov r8, r0 disp_buf_first += disp_w; 6b2a: ea4f 0b46 mov.w fp, r6, lsl #1 if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) { 6b2e: f040 80e0 bne.w 6cf2 <_lv_blend_map+0x2ca> if(disp->driver.gpu_blend_cb && (lv_area_get_size(draw_area) > GPU_SIZE_LIMIT)) { 6b32: 6a03 ldr r3, [r0, #32] 6b34: 2b00 cmp r3, #0 6b36: f000 80af beq.w 6c98 <_lv_blend_map+0x270> 6b3a: 4b80 ldr r3, [pc, #512] ; (6d3c <_lv_blend_map+0x314>) 6b3c: a80c add r0, sp, #48 ; 0x30 6b3e: 4798 blx r3 6b40: 28f0 cmp r0, #240 ; 0xf0 6b42: f240 80a9 bls.w 6c98 <_lv_blend_map+0x270> for(y = draw_area->y1; y <= draw_area->y2; y++) { 6b46: f9bd 7032 ldrsh.w r7, [sp, #50] ; 0x32 6b4a: f9bd 3036 ldrsh.w r3, [sp, #54] ; 0x36 6b4e: 429f cmp r7, r3 6b50: dc52 bgt.n 6bf8 <_lv_blend_map+0x1d0> disp->driver.gpu_blend_cb(&disp->driver, disp_buf_first, map_buf_first, draw_area_w, opa); 6b52: 9b05 ldr r3, [sp, #20] 6b54: 9300 str r3, [sp, #0] 6b56: 462a mov r2, r5 6b58: 9b07 ldr r3, [sp, #28] 6b5a: f8d8 6020 ldr.w r6, [r8, #32] 6b5e: 4621 mov r1, r4 6b60: 4640 mov r0, r8 6b62: 47b0 blx r6 map_buf_first += map_w; 6b64: 9b08 ldr r3, [sp, #32] disp_buf_first += disp_w; 6b66: 445c add r4, fp map_buf_first += map_w; 6b68: 441d add r5, r3 for(y = draw_area->y1; y <= draw_area->y2; y++) { 6b6a: 3701 adds r7, #1 6b6c: e7ed b.n 6b4a <_lv_blend_map+0x122> if(mask && disp->driver.antialiasing == 0) 6b6e: 7a2b ldrb r3, [r5, #8] 6b70: 07d8 lsls r0, r3, #31 6b72: d49d bmi.n 6ab0 <_lv_blend_map+0x88> return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); 6b74: 9806 ldr r0, [sp, #24] for(i = 0; i < mask_w; i++) mask[i] = mask[i] > 128 ? LV_OPA_COVER : LV_OPA_TRANSP; 6b76: 9e06 ldr r6, [sp, #24] 6b78: 1c53 adds r3, r2, #1 6b7a: 1b1b subs r3, r3, r4 int32_t mask_w = lv_area_get_width(&draw_area); 6b7c: b21b sxth r3, r3 for(i = 0; i < mask_w; i++) mask[i] = mask[i] > 128 ? LV_OPA_COVER : LV_OPA_TRANSP; 6b7e: 3801 subs r0, #1 6b80: f1c6 0701 rsb r7, r6, #1 6b84: 183e adds r6, r7, r0 6b86: 42b3 cmp r3, r6 6b88: dd92 ble.n 6ab0 <_lv_blend_map+0x88> 6b8a: f810 6f01 ldrb.w r6, [r0, #1]! 6b8e: 2e80 cmp r6, #128 ; 0x80 6b90: f04f 36ff mov.w r6, #4294967295 ; 0xffffffff 6b94: bf98 it ls 6b96: 2600 movls r6, #0 6b98: 7006 strb r6, [r0, #0] 6b9a: e7f3 b.n 6b84 <_lv_blend_map+0x15c> lv_disp_t * disp = _lv_refr_get_disp_refreshing(); 6b9c: 4b65 ldr r3, [pc, #404] ; (6d34 <_lv_blend_map+0x30c>) 6b9e: 4798 blx r3 6ba0: f8b9 5004 ldrh.w r5, [r9, #4] 6ba4: f9b9 1000 ldrsh.w r1, [r9] 6ba8: 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)); 6bac: f9bb c012 ldrsh.w ip, [fp, #18] 6bb0: f9b9 7002 ldrsh.w r7, [r9, #2] 6bb4: f9bb 4010 ldrsh.w r4, [fp, #16] 6bb8: f9bd 6032 ldrsh.w r6, [sp, #50] ; 0x32 6bbc: f9bd 3030 ldrsh.w r3, [sp, #48] ; 0x30 6bc0: f9bd 8034 ldrsh.w r8, [sp, #52] ; 0x34 6bc4: 3501 adds r5, #1 6bc6: 1a6d subs r5, r5, r1 6bc8: 3201 adds r2, #1 6bca: eba7 070c sub.w r7, r7, ip 6bce: 1b12 subs r2, r2, r4 6bd0: b22d sxth r5, r5 map_buf_tmp -= draw_area->x1; 6bd2: 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)); 6bd4: 1bf7 subs r7, r6, r7 map_buf_tmp -= draw_area->x1; 6bd6: 990b ldr r1, [sp, #44] ; 0x2c 6bd8: fb05 4407 mla r4, r5, r7, r4 6bdc: eb01 0444 add.w r4, r1, r4, lsl #1 if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) { 6be0: 990a ldr r1, [sp, #40] ; 0x28 6be2: 2901 cmp r1, #1 6be4: b212 sxth r2, r2 6be6: f1c3 0a00 rsb sl, r3, #0 6bea: ea4f 0b45 mov.w fp, r5, lsl #1 6bee: d123 bne.n 6c38 <_lv_blend_map+0x210> for(y = draw_area->y1; y <= draw_area->y2; y++) { 6bf0: f9bd 3036 ldrsh.w r3, [sp, #54] ; 0x36 6bf4: 429e cmp r6, r3 6bf6: dd02 ble.n 6bfe <_lv_blend_map+0x1d6> } 6bf8: b00f add sp, #60 ; 0x3c 6bfa: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} for(x = draw_area->x1; x <= draw_area->x2; x++) { 6bfe: 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); 6c02: b237 sxth r7, r6 for(x = draw_area->x1; x <= draw_area->x2; x++) { 6c04: f9bd 3034 ldrsh.w r3, [sp, #52] ; 0x34 6c08: 4598 cmp r8, r3 6c0a: dd02 ble.n 6c12 <_lv_blend_map+0x1ea> map_buf_tmp += map_w; 6c0c: 445c add r4, fp for(y = draw_area->y1; y <= draw_area->y2; y++) { 6c0e: 3601 adds r6, #1 6c10: e7ee b.n 6bf0 <_lv_blend_map+0x1c8> disp->driver.set_px_cb(&disp->driver, (void *)disp_buf, disp_w, x, y, map_buf_tmp[x], opa); 6c12: 9b05 ldr r3, [sp, #20] 6c14: 9302 str r3, [sp, #8] 6c16: f834 3018 ldrh.w r3, [r4, r8, lsl #1] 6c1a: f8ad 3004 strh.w r3, [sp, #4] 6c1e: 9700 str r7, [sp, #0] 6c20: 6945 ldr r5, [r0, #20] 6c22: 9908 ldr r1, [sp, #32] 6c24: 9207 str r2, [sp, #28] 6c26: fa0f f388 sxth.w r3, r8 6c2a: 9006 str r0, [sp, #24] for(x = draw_area->x1; x <= draw_area->x2; x++) { 6c2c: 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); 6c30: 47a8 blx r5 for(x = draw_area->x1; x <= draw_area->x2; x++) { 6c32: e9dd 0206 ldrd r0, r2, [sp, #24] 6c36: e7e5 b.n 6c04 <_lv_blend_map+0x1dc> 6c38: f108 0801 add.w r8, r8, #1 6c3c: eba8 0803 sub.w r8, r8, r3 const lv_opa_t * mask_tmp = mask - draw_area->x1; 6c40: 9b06 ldr r3, [sp, #24] 6c42: 4453 add r3, sl 6c44: fa0f f888 sxth.w r8, r8 6c48: 469a mov sl, r3 for(y = draw_area->y1; y <= draw_area->y2; y++) { 6c4a: f9bd 3036 ldrsh.w r3, [sp, #54] ; 0x36 6c4e: 429e cmp r6, r3 6c50: dcd2 bgt.n 6bf8 <_lv_blend_map+0x1d0> for(x = draw_area->x1; x <= draw_area->x2; x++) { 6c52: 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], 6c56: b237 sxth r7, r6 for(x = draw_area->x1; x <= draw_area->x2; x++) { 6c58: f9bd 3034 ldrsh.w r3, [sp, #52] ; 0x34 6c5c: 4599 cmp r9, r3 6c5e: dd03 ble.n 6c68 <_lv_blend_map+0x240> mask_tmp += draw_area_w; 6c60: 44c2 add sl, r8 map_buf_tmp += map_w; 6c62: 445c add r4, fp for(y = draw_area->y1; y <= draw_area->y2; y++) { 6c64: 3601 adds r6, #1 6c66: e7f0 b.n 6c4a <_lv_blend_map+0x222> (uint32_t)((uint32_t)opa * mask_tmp[x]) >> 8); 6c68: f81a 3009 ldrb.w r3, [sl, r9] 6c6c: 9905 ldr r1, [sp, #20] disp->driver.set_px_cb(&disp->driver, (void *)disp_buf, disp_w, x, y, map_buf_tmp[x], 6c6e: 9207 str r2, [sp, #28] (uint32_t)((uint32_t)opa * mask_tmp[x]) >> 8); 6c70: fb13 f301 smulbb r3, r3, r1 disp->driver.set_px_cb(&disp->driver, (void *)disp_buf, disp_w, x, y, map_buf_tmp[x], 6c74: 0a1b lsrs r3, r3, #8 6c76: 9302 str r3, [sp, #8] 6c78: f834 3019 ldrh.w r3, [r4, r9, lsl #1] 6c7c: f8ad 3004 strh.w r3, [sp, #4] 6c80: 9700 str r7, [sp, #0] 6c82: 6945 ldr r5, [r0, #20] 6c84: 9908 ldr r1, [sp, #32] 6c86: 9006 str r0, [sp, #24] 6c88: fa0f f389 sxth.w r3, r9 6c8c: 47a8 blx r5 for(x = draw_area->x1; x <= draw_area->x2; x++) { 6c8e: f109 0901 add.w r9, r9, #1 6c92: e9dd 0206 ldrd r0, r2, [sp, #24] 6c96: e7df b.n 6c58 <_lv_blend_map+0x230> if(opa > LV_OPA_MAX) { 6c98: 9b05 ldr r3, [sp, #20] 6c9a: 2bfa cmp r3, #250 ; 0xfa 6c9c: d925 bls.n 6cea <_lv_blend_map+0x2c2> _lv_memcpy(disp_buf_first, map_buf_first, draw_area_w * sizeof(lv_color_t)); 6c9e: 9b07 ldr r3, [sp, #28] 6ca0: f8df 809c ldr.w r8, [pc, #156] ; 6d40 <_lv_blend_map+0x318> 6ca4: 005f lsls r7, r3, #1 for(y = 0; y < draw_area_h; y++) { 6ca6: 2600 movs r6, #0 6ca8: 9b09 ldr r3, [sp, #36] ; 0x24 6caa: 42b3 cmp r3, r6 6cac: dda4 ble.n 6bf8 <_lv_blend_map+0x1d0> _lv_memcpy(disp_buf_first, map_buf_first, draw_area_w * sizeof(lv_color_t)); 6cae: 4629 mov r1, r5 6cb0: 4620 mov r0, r4 6cb2: 463a mov r2, r7 6cb4: 47c0 blx r8 map_buf_first += map_w; 6cb6: 9b08 ldr r3, [sp, #32] disp_buf_first += disp_w; 6cb8: 445c add r4, fp map_buf_first += map_w; 6cba: 441d add r5, r3 for(y = 0; y < draw_area_h; y++) { 6cbc: 3601 adds r6, #1 6cbe: e7f3 b.n 6ca8 <_lv_blend_map+0x280> disp_buf_first[x] = lv_color_mix(map_buf_first[x], disp_buf_first[x], opa); 6cc0: f834 1016 ldrh.w r1, [r4, r6, lsl #1] 6cc4: f835 0016 ldrh.w r0, [r5, r6, lsl #1] 6cc8: 9a05 ldr r2, [sp, #20] 6cca: 47c0 blx r8 6ccc: f824 0016 strh.w r0, [r4, r6, lsl #1] for(x = 0; x < draw_area_w; x++) { 6cd0: 3601 adds r6, #1 6cd2: 9b07 ldr r3, [sp, #28] 6cd4: 42b3 cmp r3, r6 6cd6: dcf3 bgt.n 6cc0 <_lv_blend_map+0x298> map_buf_first += map_w; 6cd8: 9b08 ldr r3, [sp, #32] disp_buf_first += disp_w; 6cda: 445c add r4, fp map_buf_first += map_w; 6cdc: 441d add r5, r3 for(y = 0; y < draw_area_h; y++) { 6cde: 3701 adds r7, #1 6ce0: 9b09 ldr r3, [sp, #36] ; 0x24 6ce2: 42bb cmp r3, r7 6ce4: dd88 ble.n 6bf8 <_lv_blend_map+0x1d0> for(x = 0; x < draw_area_w; x++) { 6ce6: 2600 movs r6, #0 6ce8: e7f3 b.n 6cd2 <_lv_blend_map+0x2aa> disp_buf_first[x] = lv_color_mix(map_buf_first[x], disp_buf_first[x], opa); 6cea: f8df 8058 ldr.w r8, [pc, #88] ; 6d44 <_lv_blend_map+0x31c> for(y = 0; y < draw_area_h; y++) { 6cee: 2700 movs r7, #0 6cf0: e7f6 b.n 6ce0 <_lv_blend_map+0x2b8> if(opa > LV_OPA_MAX) { 6cf2: 9b05 ldr r3, [sp, #20] 6cf4: 2bfa cmp r3, #250 ; 0xfa 6cf6: f240 80e9 bls.w 6ecc <_lv_blend_map+0x4a4> int32_t x_end4 = draw_area_w - 4; 6cfa: 9b07 ldr r3, [sp, #28] MAP_NORMAL_MASK_PX(x) 6cfc: f8df 8044 ldr.w r8, [pc, #68] ; 6d44 <_lv_blend_map+0x31c> for(y = 0; y < draw_area_h; y++) { 6d00: f8cd a014 str.w sl, [sp, #20] int32_t x_end4 = draw_area_w - 4; 6d04: 3b04 subs r3, #4 6d06: 930a str r3, [sp, #40] ; 0x28 for(y = 0; y < draw_area_h; y++) { 6d08: 9b09 ldr r3, [sp, #36] ; 0x24 6d0a: 9a05 ldr r2, [sp, #20] 6d0c: 4293 cmp r3, r2 6d0e: f77f af73 ble.w 6bf8 <_lv_blend_map+0x1d0> 6d12: 9b06 ldr r3, [sp, #24] 6d14: 46aa mov sl, r5 6d16: 46a1 mov r9, r4 for(x = 0; x < draw_area_w && ((lv_uintptr_t)mask_tmp_x & 0x3); x++) { 6d18: 2600 movs r6, #0 6d1a: e025 b.n 6d68 <_lv_blend_map+0x340> MAP_NORMAL_MASK_PX(x) 6d1c: f8b9 1000 ldrh.w r1, [r9] 6d20: f8ba 0000 ldrh.w r0, [sl] 6d24: 930b str r3, [sp, #44] ; 0x2c 6d26: 47c0 blx r8 6d28: 9b0b ldr r3, [sp, #44] ; 0x2c 6d2a: f8a9 0000 strh.w r0, [r9] 6d2e: e016 b.n 6d5e <_lv_blend_map+0x336> 6d30: 0000e0b9 .word 0x0000e0b9 6d34: 00005215 .word 0x00005215 6d38: 0000dc0d .word 0x0000dc0d 6d3c: 0000e09d .word 0x0000e09d 6d40: 0000ee69 .word 0x0000ee69 6d44: 000062d1 .word 0x000062d1 for(x = 0; x < draw_area_w && ((lv_uintptr_t)mask_tmp_x & 0x3); x++) { 6d48: 079a lsls r2, r3, #30 6d4a: d011 beq.n 6d70 <_lv_blend_map+0x348> MAP_NORMAL_MASK_PX(x) 6d4c: f813 2b01 ldrb.w r2, [r3], #1 6d50: b12a cbz r2, 6d5e <_lv_blend_map+0x336> 6d52: 2aff cmp r2, #255 ; 0xff 6d54: d1e2 bne.n 6d1c <_lv_blend_map+0x2f4> 6d56: f8ba 2000 ldrh.w r2, [sl] 6d5a: f8a9 2000 strh.w r2, [r9] for(x = 0; x < draw_area_w && ((lv_uintptr_t)mask_tmp_x & 0x3); x++) { 6d5e: 3601 adds r6, #1 6d60: f10a 0a02 add.w sl, sl, #2 6d64: f109 0902 add.w r9, r9, #2 6d68: 9a07 ldr r2, [sp, #28] 6d6a: 42b2 cmp r2, r6 6d6c: 461f mov r7, r3 6d6e: dceb bgt.n 6d48 <_lv_blend_map+0x320> 6d70: eb05 0a46 add.w sl, r5, r6, lsl #1 6d74: eb04 0946 add.w r9, r4, r6, lsl #1 for(; x < x_end4; x += 4) { 6d78: 9b0a ldr r3, [sp, #40] ; 0x28 6d7a: 42b3 cmp r3, r6 6d7c: dc12 bgt.n 6da4 <_lv_blend_map+0x37c> 6d7e: 3f01 subs r7, #1 6d80: eb05 0a46 add.w sl, r5, r6, lsl #1 6d84: eb04 0946 add.w r9, r4, r6, lsl #1 for(; x < draw_area_w ; x++) { 6d88: 9b07 ldr r3, [sp, #28] 6d8a: 42b3 cmp r3, r6 6d8c: dc62 bgt.n 6e54 <_lv_blend_map+0x42c> mask += draw_area_w; 6d8e: e9dd 3206 ldrd r3, r2, [sp, #24] 6d92: 4413 add r3, r2 6d94: 9306 str r3, [sp, #24] map_buf_first += map_w; 6d96: 9b08 ldr r3, [sp, #32] 6d98: 441d add r5, r3 for(y = 0; y < draw_area_h; y++) { 6d9a: 9b05 ldr r3, [sp, #20] 6d9c: 3301 adds r3, #1 disp_buf_first += disp_w; 6d9e: 445c add r4, fp for(y = 0; y < draw_area_h; y++) { 6da0: 9305 str r3, [sp, #20] 6da2: e7b1 b.n 6d08 <_lv_blend_map+0x2e0> if(*mask32) { 6da4: 683b ldr r3, [r7, #0] 6da6: b18b cbz r3, 6dcc <_lv_blend_map+0x3a4> if((*mask32) == 0xFFFFFFFF) { 6da8: 3301 adds r3, #1 6daa: d116 bne.n 6dda <_lv_blend_map+0x3b2> disp_buf_first[x] = map_buf_first[x]; 6dac: f8ba 3000 ldrh.w r3, [sl] 6db0: f8a9 3000 strh.w r3, [r9] disp_buf_first[x + 1] = map_buf_first[x + 1]; 6db4: f8ba 3002 ldrh.w r3, [sl, #2] 6db8: f8a9 3002 strh.w r3, [r9, #2] disp_buf_first[x + 2] = map_buf_first[x + 2]; 6dbc: f8ba 3004 ldrh.w r3, [sl, #4] 6dc0: f8a9 3004 strh.w r3, [r9, #4] MAP_NORMAL_MASK_PX(x + 3) 6dc4: f8ba 3006 ldrh.w r3, [sl, #6] 6dc8: f8a9 3006 strh.w r3, [r9, #6] mask32++; 6dcc: 3704 adds r7, #4 for(; x < x_end4; x += 4) { 6dce: 3604 adds r6, #4 6dd0: f10a 0a08 add.w sl, sl, #8 6dd4: f109 0908 add.w r9, r9, #8 6dd8: e7ce b.n 6d78 <_lv_blend_map+0x350> MAP_NORMAL_MASK_PX(x) 6dda: 783a ldrb r2, [r7, #0] 6ddc: b12a cbz r2, 6dea <_lv_blend_map+0x3c2> 6dde: 2aff cmp r2, #255 ; 0xff 6de0: d120 bne.n 6e24 <_lv_blend_map+0x3fc> 6de2: f8ba 3000 ldrh.w r3, [sl] 6de6: f8a9 3000 strh.w r3, [r9] MAP_NORMAL_MASK_PX(x + 1) 6dea: 787a ldrb r2, [r7, #1] 6dec: b12a cbz r2, 6dfa <_lv_blend_map+0x3d2> 6dee: 2aff cmp r2, #255 ; 0xff 6df0: d120 bne.n 6e34 <_lv_blend_map+0x40c> 6df2: f8ba 3002 ldrh.w r3, [sl, #2] 6df6: f8a9 3002 strh.w r3, [r9, #2] MAP_NORMAL_MASK_PX(x + 2) 6dfa: 78ba ldrb r2, [r7, #2] 6dfc: b12a cbz r2, 6e0a <_lv_blend_map+0x3e2> 6dfe: 2aff cmp r2, #255 ; 0xff 6e00: d120 bne.n 6e44 <_lv_blend_map+0x41c> 6e02: f8ba 3004 ldrh.w r3, [sl, #4] 6e06: f8a9 3004 strh.w r3, [r9, #4] MAP_NORMAL_MASK_PX(x + 3) 6e0a: 78fa ldrb r2, [r7, #3] 6e0c: 2a00 cmp r2, #0 6e0e: d0dd beq.n 6dcc <_lv_blend_map+0x3a4> 6e10: 2aff cmp r2, #255 ; 0xff 6e12: d0d7 beq.n 6dc4 <_lv_blend_map+0x39c> 6e14: f8b9 1006 ldrh.w r1, [r9, #6] 6e18: f8ba 0006 ldrh.w r0, [sl, #6] 6e1c: 47c0 blx r8 6e1e: f8a9 0006 strh.w r0, [r9, #6] 6e22: e7d3 b.n 6dcc <_lv_blend_map+0x3a4> MAP_NORMAL_MASK_PX(x) 6e24: f8b9 1000 ldrh.w r1, [r9] 6e28: f8ba 0000 ldrh.w r0, [sl] 6e2c: 47c0 blx r8 6e2e: f8a9 0000 strh.w r0, [r9] 6e32: e7da b.n 6dea <_lv_blend_map+0x3c2> MAP_NORMAL_MASK_PX(x + 1) 6e34: f8b9 1002 ldrh.w r1, [r9, #2] 6e38: f8ba 0002 ldrh.w r0, [sl, #2] 6e3c: 47c0 blx r8 6e3e: f8a9 0002 strh.w r0, [r9, #2] 6e42: e7da b.n 6dfa <_lv_blend_map+0x3d2> MAP_NORMAL_MASK_PX(x + 2) 6e44: f8b9 1004 ldrh.w r1, [r9, #4] 6e48: f8ba 0004 ldrh.w r0, [sl, #4] 6e4c: 47c0 blx r8 6e4e: f8a9 0004 strh.w r0, [r9, #4] 6e52: e7da b.n 6e0a <_lv_blend_map+0x3e2> MAP_NORMAL_MASK_PX(x) 6e54: f817 2f01 ldrb.w r2, [r7, #1]! 6e58: b12a cbz r2, 6e66 <_lv_blend_map+0x43e> 6e5a: 2aff cmp r2, #255 ; 0xff 6e5c: d109 bne.n 6e72 <_lv_blend_map+0x44a> 6e5e: f8ba 3000 ldrh.w r3, [sl] 6e62: f8a9 3000 strh.w r3, [r9] for(; x < draw_area_w ; x++) { 6e66: 3601 adds r6, #1 6e68: f10a 0a02 add.w sl, sl, #2 6e6c: f109 0902 add.w r9, r9, #2 6e70: e78a b.n 6d88 <_lv_blend_map+0x360> MAP_NORMAL_MASK_PX(x) 6e72: f8b9 1000 ldrh.w r1, [r9] 6e76: f8ba 0000 ldrh.w r0, [sl] 6e7a: 47c0 blx r8 6e7c: f8a9 0000 strh.w r0, [r9] 6e80: e7f1 b.n 6e66 <_lv_blend_map+0x43e> if(mask[x]) { 6e82: 9b06 ldr r3, [sp, #24] 6e84: 5d9a ldrb r2, [r3, r6] 6e86: b172 cbz r2, 6ea6 <_lv_blend_map+0x47e> lv_opa_t opa_tmp = mask[x] >= LV_OPA_MAX ? opa : ((opa * mask[x]) >> 8); 6e88: 2af9 cmp r2, #249 ; 0xf9 6e8a: bf98 it ls 6e8c: 9b05 ldrls r3, [sp, #20] disp_buf_first[x] = lv_color_mix(map_buf_first[x], disp_buf_first[x], opa_tmp); 6e8e: f834 1016 ldrh.w r1, [r4, r6, lsl #1] 6e92: f835 0016 ldrh.w r0, [r5, r6, lsl #1] 6e96: bf8e itee hi 6e98: 9a05 ldrhi r2, [sp, #20] lv_opa_t opa_tmp = mask[x] >= LV_OPA_MAX ? opa : ((opa * mask[x]) >> 8); 6e9a: fb13 f202 smulbbls r2, r3, r2 6e9e: 0a12 lsrls r2, r2, #8 disp_buf_first[x] = lv_color_mix(map_buf_first[x], disp_buf_first[x], opa_tmp); 6ea0: 47b8 blx r7 6ea2: f824 0016 strh.w r0, [r4, r6, lsl #1] for(x = 0; x < draw_area_w; x++) { 6ea6: 3601 adds r6, #1 6ea8: 9b07 ldr r3, [sp, #28] 6eaa: 42b3 cmp r3, r6 6eac: dce9 bgt.n 6e82 <_lv_blend_map+0x45a> mask += draw_area_w; 6eae: e9dd 3206 ldrd r3, r2, [sp, #24] 6eb2: 4413 add r3, r2 6eb4: 9306 str r3, [sp, #24] map_buf_first += map_w; 6eb6: 9b08 ldr r3, [sp, #32] disp_buf_first += disp_w; 6eb8: 445c add r4, fp map_buf_first += map_w; 6eba: 441d add r5, r3 for(y = 0; y < draw_area_h; y++) { 6ebc: f10a 0a01 add.w sl, sl, #1 6ec0: 9b09 ldr r3, [sp, #36] ; 0x24 6ec2: 4553 cmp r3, sl 6ec4: f77f ae98 ble.w 6bf8 <_lv_blend_map+0x1d0> for(x = 0; x < draw_area_w; x++) { 6ec8: 2600 movs r6, #0 6eca: e7ed b.n 6ea8 <_lv_blend_map+0x480> disp_buf_first[x] = lv_color_mix(map_buf_first[x], disp_buf_first[x], opa_tmp); 6ecc: 4f36 ldr r7, [pc, #216] ; (6fa8 <_lv_blend_map+0x580>) 6ece: e7f7 b.n 6ec0 <_lv_blend_map+0x498> switch(mode) { 6ed0: f1ba 0f01 cmp.w sl, #1 6ed4: d00c beq.n 6ef0 <_lv_blend_map+0x4c8> 6ed6: f1ba 0f02 cmp.w sl, #2 6eda: d02b beq.n 6f34 <_lv_blend_map+0x50c> LV_LOG_WARN("fill_blended: unsupported blend mode"); 6edc: 4b33 ldr r3, [pc, #204] ; (6fac <_lv_blend_map+0x584>) 6ede: 9300 str r3, [sp, #0] 6ee0: 4933 ldr r1, [pc, #204] ; (6fb0 <_lv_blend_map+0x588>) 6ee2: 4b34 ldr r3, [pc, #208] ; (6fb4 <_lv_blend_map+0x58c>) 6ee4: 4c34 ldr r4, [pc, #208] ; (6fb8 <_lv_blend_map+0x590>) 6ee6: f240 3253 movw r2, #851 ; 0x353 6eea: 2002 movs r0, #2 6eec: 47a0 blx r4 return; 6eee: e683 b.n 6bf8 <_lv_blend_map+0x1d0> blend_fp = color_blend_true_color_additive; 6ef0: f8df b0c8 ldr.w fp, [pc, #200] ; 6fbc <_lv_blend_map+0x594> lv_color_t * disp_buf_tmp = disp_buf + disp_w * draw_area->y1; 6ef4: 9808 ldr r0, [sp, #32] 6ef6: 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)); 6efa: 980b ldr r0, [sp, #44] ; 0x2c 6efc: eb00 0949 add.w r9, r0, r9, lsl #1 if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) { 6f00: 980a ldr r0, [sp, #40] ; 0x28 6f02: 2801 cmp r0, #1 disp_buf_first += disp_w; 6f04: ea4f 0646 mov.w r6, r6, lsl #1 map_buf_first += map_w; 6f08: ea4f 0747 mov.w r7, r7, lsl #1 if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) { 6f0c: d120 bne.n 6f50 <_lv_blend_map+0x528> map_buf_tmp -= draw_area->x1; 6f0e: 1a9b subs r3, r3, r2 6f10: eb09 0543 add.w r5, r9, r3, lsl #1 for(y = draw_area->y1; y <= draw_area->y2; y++) { 6f14: f9bd 3036 ldrsh.w r3, [sp, #54] ; 0x36 6f18: 4598 cmp r8, r3 6f1a: f73f ae6d bgt.w 6bf8 <_lv_blend_map+0x1d0> for(x = draw_area->x1; x <= draw_area->x2; x++) { 6f1e: f9bd 9030 ldrsh.w r9, [sp, #48] ; 0x30 6f22: f9bd 3034 ldrsh.w r3, [sp, #52] ; 0x34 6f26: 4599 cmp r9, r3 6f28: dd07 ble.n 6f3a <_lv_blend_map+0x512> disp_buf_tmp += disp_w; 6f2a: 4434 add r4, r6 map_buf_tmp += map_w; 6f2c: 443d add r5, r7 for(y = draw_area->y1; y <= draw_area->y2; y++) { 6f2e: f108 0801 add.w r8, r8, #1 6f32: e7ef b.n 6f14 <_lv_blend_map+0x4ec> switch(mode) { 6f34: f8df b088 ldr.w fp, [pc, #136] ; 6fc0 <_lv_blend_map+0x598> 6f38: e7dc b.n 6ef4 <_lv_blend_map+0x4cc> disp_buf_tmp[x] = blend_fp(map_buf_tmp[x], disp_buf_tmp[x], opa); 6f3a: f834 1019 ldrh.w r1, [r4, r9, lsl #1] 6f3e: f835 0019 ldrh.w r0, [r5, r9, lsl #1] 6f42: 9a05 ldr r2, [sp, #20] 6f44: 47d8 blx fp 6f46: f824 0019 strh.w r0, [r4, r9, lsl #1] for(x = draw_area->x1; x <= draw_area->x2; x++) { 6f4a: f109 0901 add.w r9, r9, #1 6f4e: e7e8 b.n 6f22 <_lv_blend_map+0x4fa> const lv_opa_t * mask_tmp = mask - draw_area->x1; 6f50: 9b06 ldr r3, [sp, #24] map_buf_tmp -= draw_area->x1; 6f52: eba9 0941 sub.w r9, r9, r1, lsl #1 const lv_opa_t * mask_tmp = mask - draw_area->x1; 6f56: 1a5d subs r5, r3, r1 for(y = draw_area->y1; y <= draw_area->y2; y++) { 6f58: f9bd 3036 ldrsh.w r3, [sp, #54] ; 0x36 6f5c: 4598 cmp r8, r3 6f5e: f73f ae4b bgt.w 6bf8 <_lv_blend_map+0x1d0> for(x = draw_area->x1; x <= draw_area->x2; x++) { 6f62: f9bd a030 ldrsh.w sl, [sp, #48] ; 0x30 6f66: f9bd 3034 ldrsh.w r3, [sp, #52] ; 0x34 6f6a: 459a cmp sl, r3 6f6c: dd06 ble.n 6f7c <_lv_blend_map+0x554> mask_tmp += draw_area_w; 6f6e: 9b07 ldr r3, [sp, #28] disp_buf_tmp += disp_w; 6f70: 4434 add r4, r6 mask_tmp += draw_area_w; 6f72: 441d add r5, r3 map_buf_tmp += map_w; 6f74: 44b9 add r9, r7 for(y = draw_area->y1; y <= draw_area->y2; y++) { 6f76: f108 0801 add.w r8, r8, #1 6f7a: e7ed b.n 6f58 <_lv_blend_map+0x530> if(mask_tmp[x] == 0) continue; 6f7c: f815 200a ldrb.w r2, [r5, sl] 6f80: b172 cbz r2, 6fa0 <_lv_blend_map+0x578> lv_opa_t opa_tmp = mask_tmp[x] >= LV_OPA_MAX ? opa : ((opa * mask_tmp[x]) >> 8); 6f82: 2af9 cmp r2, #249 ; 0xf9 6f84: bf94 ite ls 6f86: 9b05 ldrls r3, [sp, #20] 6f88: 9a05 ldrhi r2, [sp, #20] disp_buf_tmp[x] = blend_fp(map_buf_tmp[x], disp_buf_tmp[x], opa_tmp); 6f8a: f834 101a ldrh.w r1, [r4, sl, lsl #1] 6f8e: 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); 6f92: bf9c itt ls 6f94: fb13 f202 smulbbls r2, r3, r2 6f98: 0a12 lsrls r2, r2, #8 disp_buf_tmp[x] = blend_fp(map_buf_tmp[x], disp_buf_tmp[x], opa_tmp); 6f9a: 47d8 blx fp 6f9c: f824 001a strh.w r0, [r4, sl, lsl #1] for(x = draw_area->x1; x <= draw_area->x2; x++) { 6fa0: f10a 0a01 add.w sl, sl, #1 6fa4: e7df b.n 6f66 <_lv_blend_map+0x53e> 6fa6: bf00 nop 6fa8: 000062d1 .word 0x000062d1 6fac: 00027359 .word 0x00027359 6fb0: 00027323 .word 0x00027323 6fb4: 0002738b .word 0x0002738b 6fb8: 0000eb21 .word 0x0000eb21 6fbc: 00006321 .word 0x00006321 6fc0: 000063a1 .word 0x000063a1 00006fc4 : } } } static void show_error(const lv_area_t * coords, const lv_area_t * clip_area, const char * msg) { 6fc4: b530 push {r4, r5, lr} 6fc6: b0a1 sub sp, #132 ; 0x84 6fc8: 4604 mov r4, r0 6fca: 9203 str r2, [sp, #12] lv_draw_rect_dsc_t rect_dsc; lv_draw_rect_dsc_init(&rect_dsc); 6fcc: a80b add r0, sp, #44 ; 0x2c 6fce: 4a0c ldr r2, [pc, #48] ; (7000 ) { 6fd0: 9102 str r1, [sp, #8] lv_draw_rect_dsc_init(&rect_dsc); 6fd2: 4790 blx r2 rect_dsc.bg_color = LV_COLOR_WHITE; 6fd4: 4a0b ldr r2, [pc, #44] ; (7004 ) lv_draw_rect(coords, clip_area, &rect_dsc); 6fd6: 9902 ldr r1, [sp, #8] rect_dsc.bg_color = LV_COLOR_WHITE; 6fd8: 8812 ldrh r2, [r2, #0] 6fda: f8ad 202e strh.w r2, [sp, #46] ; 0x2e lv_draw_rect(coords, clip_area, &rect_dsc); 6fde: 4620 mov r0, r4 6fe0: aa0b add r2, sp, #44 ; 0x2c 6fe2: 4d09 ldr r5, [pc, #36] ; (7008 ) 6fe4: 47a8 blx r5 lv_draw_label_dsc_t label_dsc; lv_draw_label_dsc_init(&label_dsc); 6fe6: a804 add r0, sp, #16 6fe8: 4a08 ldr r2, [pc, #32] ; (700c ) 6fea: 4790 blx r2 lv_draw_label(coords, clip_area, &label_dsc, msg, NULL); 6fec: 2200 movs r2, #0 6fee: 9200 str r2, [sp, #0] 6ff0: 4620 mov r0, r4 6ff2: 9b03 ldr r3, [sp, #12] 6ff4: 9902 ldr r1, [sp, #8] 6ff6: 4c06 ldr r4, [pc, #24] ; (7010 ) 6ff8: aa04 add r2, sp, #16 6ffa: 47a0 blx r4 } 6ffc: b021 add sp, #132 ; 0x84 6ffe: bd30 pop {r4, r5, pc} 7000: 00009dcd .word 0x00009dcd 7004: 0002741c .word 0x0002741c 7008: 00009e19 .word 0x00009e19 700c: 00007a71 .word 0x00007a71 7010: 00007aa1 .word 0x00007aa1 00007014 : 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) { 7014: 3901 subs r1, #1 7016: f100 0308 add.w r3, r0, #8 *d8 = *s8; 701a: f811 2f01 ldrb.w r2, [r1, #1]! 701e: f800 2b01 strb.w r2, [r0], #1 while(len) { 7022: 4298 cmp r0, r3 7024: d1f9 bne.n 701a } 7026: 4770 bx lr 00007028 : { 7028: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} 702c: ed2d 8b02 vpush {d8} 7030: b0b9 sub sp, #228 ; 0xe4 7032: 461c mov r4, r3 7034: f89d 3110 ldrb.w r3, [sp, #272] ; 0x110 7038: 930c str r3, [sp, #48] ; 0x30 703a: f89d 3114 ldrb.w r3, [sp, #276] ; 0x114 703e: 9307 str r3, [sp, #28] 7040: 4682 mov sl, r0 lv_area_copy(&draw_area, clip_area); 7042: 4b9c ldr r3, [pc, #624] ; (72b4 ) 7044: a822 add r0, sp, #136 ; 0x88 { 7046: 4689 mov r9, r1 7048: 4615 mov r5, r2 lv_area_copy(&draw_area, clip_area); 704a: 4798 blx r3 lv_disp_t * disp = _lv_refr_get_disp_refreshing(); 704c: 4b9a ldr r3, [pc, #616] ; (72b8 ) 704e: 4798 blx r3 lv_disp_buf_t * vdb = lv_disp_get_buf(disp); 7050: 4b9a ldr r3, [pc, #616] ; (72bc ) 7052: 4798 blx r3 draw_area.x1 -= disp_area->x1; 7054: f8bd 3088 ldrh.w r3, [sp, #136] ; 0x88 7058: 8a01 ldrh r1, [r0, #16] draw_area.y1 -= disp_area->y1; 705a: 8a42 ldrh r2, [r0, #18] lv_disp_buf_t * vdb = lv_disp_get_buf(disp); 705c: 9004 str r0, [sp, #16] draw_area.x1 -= disp_area->x1; 705e: 1a5b subs r3, r3, r1 7060: f8ad 3088 strh.w r3, [sp, #136] ; 0x88 draw_area.y1 -= disp_area->y1; 7064: f8bd 308a ldrh.w r3, [sp, #138] ; 0x8a 7068: 1a9b subs r3, r3, r2 706a: f8ad 308a strh.w r3, [sp, #138] ; 0x8a draw_area.x2 -= disp_area->x1; 706e: f8bd 308c ldrh.w r3, [sp, #140] ; 0x8c 7072: 1a5b subs r3, r3, r1 7074: f8ad 308c strh.w r3, [sp, #140] ; 0x8c draw_area.y2 -= disp_area->y1; 7078: f8bd 308e ldrh.w r3, [sp, #142] ; 0x8e 707c: 1a9b subs r3, r3, r2 707e: f8ad 308e strh.w r3, [sp, #142] ; 0x8e uint8_t other_mask_cnt = lv_draw_mask_get_cnt(); 7082: 4b8f ldr r3, [pc, #572] ; (72c0 ) 7084: 4798 blx r3 if(other_mask_cnt == 0 && draw_dsc->angle == 0 && draw_dsc->zoom == LV_IMG_ZOOM_NONE && 7086: 900b str r0, [sp, #44] ; 0x2c 7088: b9f8 cbnz r0, 70ca 708a: 8863 ldrh r3, [r4, #2] 708c: b9eb cbnz r3, 70ca 708e: 8923 ldrh r3, [r4, #8] 7090: f5b3 7f80 cmp.w r3, #256 ; 0x100 7094: d119 bne.n 70ca 7096: 9b0c ldr r3, [sp, #48] ; 0x30 7098: b9bb cbnz r3, 70ca chroma_key == false && alpha_byte == false && draw_dsc->recolor_opa == LV_OPA_TRANSP) { 709a: 9b07 ldr r3, [sp, #28] 709c: 2b00 cmp r3, #0 709e: f040 8099 bne.w 71d4 70a2: 7aa3 ldrb r3, [r4, #10] 70a4: 2b00 cmp r3, #0 70a6: f040 8097 bne.w 71d8 _lv_blend_map(clip_area, map_area, (lv_color_t *)map_p, NULL, LV_DRAW_MASK_RES_FULL_COVER, draw_dsc->opa, 70aa: 7ba2 ldrb r2, [r4, #14] 70ac: 9202 str r2, [sp, #8] 70ae: 7822 ldrb r2, [r4, #0] 70b0: 9201 str r2, [sp, #4] 70b2: 2201 movs r2, #1 70b4: 9200 str r2, [sp, #0] 70b6: 4c83 ldr r4, [pc, #524] ; (72c4 ) 70b8: 462a mov r2, r5 70ba: 4651 mov r1, sl 70bc: 4648 mov r0, r9 70be: 47a0 blx r4 } 70c0: b039 add sp, #228 ; 0xe4 70c2: ecbd 8b02 vpop {d8} 70c6: 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); 70ca: 9b07 ldr r3, [sp, #28] 70cc: 3302 adds r3, #2 70ce: b2db uxtb r3, r3 70d0: 9305 str r3, [sp, #20] map_buf_tmp += map_w * (draw_area.y1 - (map_area->y1 - disp_area->y1)) * px_size_byte; 70d2: 9b04 ldr r3, [sp, #16] return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); 70d4: f8ba 8004 ldrh.w r8, [sl, #4] 70d8: f9b3 1012 ldrsh.w r1, [r3, #18] 70dc: f9ba 2000 ldrsh.w r2, [sl] map_buf_tmp += (draw_area.x1 - (map_area->x1 - disp_area->x1)) * px_size_byte; 70e0: f9b3 3010 ldrsh.w r3, [r3, #16] map_buf_tmp += map_w * (draw_area.y1 - (map_area->y1 - disp_area->y1)) * px_size_byte; 70e4: f9ba 7002 ldrsh.w r7, [sl, #2] map_buf_tmp += (draw_area.x1 - (map_area->x1 - disp_area->x1)) * px_size_byte; 70e8: 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; 70ec: f9bd 008a ldrsh.w r0, [sp, #138] ; 0x8a 70f0: f108 0801 add.w r8, r8, #1 70f4: eba8 0802 sub.w r8, r8, r2 70f8: 1a7f subs r7, r7, r1 map_buf_tmp += (draw_area.x1 - (map_area->x1 - disp_area->x1)) * px_size_byte; 70fa: 1ad2 subs r2, r2, r3 map_buf_tmp += map_w * (draw_area.y1 - (map_area->y1 - disp_area->y1)) * px_size_byte; 70fc: 1bc7 subs r7, r0, r7 map_buf_tmp += (draw_area.x1 - (map_area->x1 - disp_area->x1)) * px_size_byte; 70fe: 1ab2 subs r2, r6, r2 7100: fa0f f888 sxth.w r8, r8 7104: fb08 2207 mla r2, r8, r7, r2 7108: 9f05 ldr r7, [sp, #20] 710a: fb02 5207 mla r2, r2, r7, r5 710e: 9208 str r2, [sp, #32] 7110: f8bd 208c ldrh.w r2, [sp, #140] ; 0x8c 7114: 3201 adds r2, #1 7116: 1b92 subs r2, r2, r6 blend_area.x1 = draw_area.x1 + disp_area->x1; 7118: fa13 f386 uxtah r3, r3, r6 711c: b296 uxth r6, r2 711e: b212 sxth r2, r2 7120: b29b uxth r3, r3 7122: 9211 str r2, [sp, #68] ; 0x44 blend_area.x2 = blend_area.x1 + lv_area_get_width(&draw_area) - 1; 7124: 1e72 subs r2, r6, #1 blend_area.x1 = draw_area.x1 + disp_area->x1; 7126: f8ad 3090 strh.w r3, [sp, #144] ; 0x90 blend_area.x2 = blend_area.x1 + lv_area_get_width(&draw_area) - 1; 712a: 4413 add r3, r2 712c: f8ad 3094 strh.w r3, [sp, #148] ; 0x94 return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); 7130: f8bd 308e ldrh.w r3, [sp, #142] ; 0x8e 7134: 3301 adds r3, #1 7136: 1a1b subs r3, r3, r0 7138: b21b sxth r3, r3 blend_area.y1 = disp_area->y1 + draw_area.y1; 713a: fa11 f180 uxtah r1, r1, r0 713e: 9317 str r3, [sp, #92] ; 0x5c bool transform = draw_dsc->angle != 0 || draw_dsc->zoom != LV_IMG_ZOOM_NONE ? true : false; 7140: 8863 ldrh r3, [r4, #2] blend_area.y1 = disp_area->y1 + draw_area.y1; 7142: b209 sxth r1, r1 7144: f8ad 1092 strh.w r1, [sp, #146] ; 0x92 blend_area.y2 = blend_area.y1; 7148: f8ad 1096 strh.w r1, [sp, #150] ; 0x96 bool transform = draw_dsc->angle != 0 || draw_dsc->zoom != LV_IMG_ZOOM_NONE ? true : false; 714c: 2b00 cmp r3, #0 714e: f040 8264 bne.w 761a 7152: 8923 ldrh r3, [r4, #8] 7154: f5b3 7280 subs.w r2, r3, #256 ; 0x100 7158: bf18 it ne 715a: 2201 movne r2, #1 715c: 9215 str r2, [sp, #84] ; 0x54 if(other_mask_cnt == 0 && !transform && !chroma_key && draw_dsc->recolor_opa == LV_OPA_TRANSP && alpha_byte) { 715e: 9a0b ldr r2, [sp, #44] ; 0x2c 7160: 2a00 cmp r2, #0 7162: f040 825c bne.w 761e 7166: f5b3 7f80 cmp.w r3, #256 ; 0x100 716a: f040 8258 bne.w 761e 716e: 9b0c ldr r3, [sp, #48] ; 0x30 7170: 2b00 cmp r3, #0 7172: f040 8254 bne.w 761e 7176: 7aa3 ldrb r3, [r4, #10] 7178: 2b00 cmp r3, #0 717a: f040 8250 bne.w 761e 717e: 9b07 ldr r3, [sp, #28] 7180: 2b00 cmp r3, #0 7182: f000 824c beq.w 761e 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); 7186: 4d50 ldr r5, [pc, #320] ; (72c8 ) 7188: a822 add r0, sp, #136 ; 0x88 718a: 47a8 blx r5 718c: f5b0 7ff0 cmp.w r0, #480 ; 0x1e0 7190: d824 bhi.n 71dc 7192: a822 add r0, sp, #136 ; 0x88 7194: 47a8 blx r5 7196: 4607 mov r7, r0 lv_color_t * map2 = _lv_mem_buf_get(mask_buf_size * sizeof(lv_color_t)); 7198: 4e4c ldr r6, [pc, #304] ; (72cc ) 719a: 0078 lsls r0, r7, #1 719c: 47b0 blx r6 719e: ee08 0a10 vmov s16, r0 lv_opa_t * mask_buf = _lv_mem_buf_get(mask_buf_size); 71a2: 4638 mov r0, r7 71a4: 47b0 blx r6 map_buf_tmp += map_w * px_size_byte; 71a6: 9b05 ldr r3, [sp, #20] 71a8: 9a11 ldr r2, [sp, #68] ; 0x44 71aa: fb13 fa08 smulbb sl, r3, r8 71ae: ea22 72e2 bic.w r2, r2, r2, asr #31 for(y = 0; y < draw_area_h; y++) { 71b2: f04f 0800 mov.w r8, #0 lv_opa_t * mask_buf = _lv_mem_buf_get(mask_buf_size); 71b6: 4606 mov r6, r0 uint32_t px_i = 0; 71b8: 4643 mov r3, r8 71ba: 9204 str r2, [sp, #16] for(y = 0; y < draw_area_h; y++) { 71bc: 9a17 ldr r2, [sp, #92] ; 0x5c 71be: 4542 cmp r2, r8 71c0: dd4d ble.n 725e 71c2: ee18 2a10 vmov r2, s16 71c6: eb06 0c03 add.w ip, r6, r3 71ca: eb02 0e43 add.w lr, r2, r3, lsl #1 for(x = 0; x < draw_area_w; x++, map_px += px_size_byte, px_i++) { 71ce: 2100 movs r1, #0 map_px = map_buf_tmp; 71d0: 9a08 ldr r2, [sp, #32] 71d2: e014 b.n 71fe uint8_t px_size_byte = alpha_byte ? LV_IMG_PX_SIZE_ALPHA_BYTE : sizeof(lv_color_t); 71d4: 2303 movs r3, #3 71d6: e77b b.n 70d0 71d8: 2302 movs r3, #2 71da: e779 b.n 70d0 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); 71dc: f44f 77f0 mov.w r7, #480 ; 0x1e0 71e0: e7da b.n 7198 lv_opa_t px_opa = map_px[LV_IMG_PX_SIZE_ALPHA_BYTE - 1]; 71e2: 7890 ldrb r0, [r2, #2] mask_buf[px_i] = px_opa; 71e4: f80c 0b01 strb.w r0, [ip], #1 if(px_opa) { 71e8: b130 cbz r0, 71f8 map2[px_i].full = map_px[0] + (map_px[1] << 8); 71ea: f892 b001 ldrb.w fp, [r2, #1] 71ee: 7810 ldrb r0, [r2, #0] 71f0: eb00 200b add.w r0, r0, fp, lsl #8 71f4: f82e 0011 strh.w r0, [lr, r1, lsl #1] for(x = 0; x < draw_area_w; x++, map_px += px_size_byte, px_i++) { 71f8: 9805 ldr r0, [sp, #20] 71fa: 3101 adds r1, #1 71fc: 4402 add r2, r0 71fe: 9811 ldr r0, [sp, #68] ; 0x44 7200: 4288 cmp r0, r1 7202: dcee bgt.n 71e2 7204: 9a04 ldr r2, [sp, #16] return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); 7206: f8bd 1088 ldrh.w r1, [sp, #136] ; 0x88 720a: 4413 add r3, r2 map_buf_tmp += map_w * px_size_byte; 720c: 9a08 ldr r2, [sp, #32] 720e: 4452 add r2, sl 7210: 9208 str r2, [sp, #32] 7212: f8bd 208c ldrh.w r2, [sp, #140] ; 0x8c 7216: 3201 adds r2, #1 7218: 1a52 subs r2, r2, r1 if(px_i + lv_area_get_width(&draw_area) < mask_buf_size) { 721a: fa03 f282 sxtah r2, r3, r2 721e: 42ba cmp r2, r7 7220: d208 bcs.n 7234 blend_area.y2 ++; 7222: f8bd 2096 ldrh.w r2, [sp, #150] ; 0x96 7226: 3201 adds r2, #1 7228: b212 sxth r2, r2 722a: f8ad 2096 strh.w r2, [sp, #150] ; 0x96 for(y = 0; y < draw_area_h; y++) { 722e: f108 0801 add.w r8, r8, #1 7232: e7c3 b.n 71bc _lv_blend_map(clip_area, &blend_area, map2, mask_buf, LV_DRAW_MASK_RES_CHANGED, draw_dsc->opa, draw_dsc->blend_mode); 7234: 7ba3 ldrb r3, [r4, #14] 7236: 9302 str r3, [sp, #8] 7238: 7823 ldrb r3, [r4, #0] 723a: 9301 str r3, [sp, #4] 723c: 2302 movs r3, #2 723e: ee18 2a10 vmov r2, s16 7242: 9300 str r3, [sp, #0] 7244: 4d1f ldr r5, [pc, #124] ; (72c4 ) 7246: 4633 mov r3, r6 7248: a924 add r1, sp, #144 ; 0x90 724a: 4648 mov r0, r9 724c: 47a8 blx r5 blend_area.y1 = blend_area.y2 + 1; 724e: f8bd 2096 ldrh.w r2, [sp, #150] ; 0x96 7252: 3201 adds r2, #1 7254: b212 sxth r2, r2 7256: f8ad 2092 strh.w r2, [sp, #146] ; 0x92 px_i = 0; 725a: 2300 movs r3, #0 725c: e7e5 b.n 722a if(blend_area.y1 != blend_area.y2) { 725e: f9bd 3096 ldrsh.w r3, [sp, #150] ; 0x96 7262: f9bd 2092 ldrsh.w r2, [sp, #146] ; 0x92 7266: 429a cmp r2, r3 7268: d00f beq.n 728a blend_area.y2--; 726a: 3b01 subs r3, #1 726c: 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); 7270: 7ba3 ldrb r3, [r4, #14] 7272: 9302 str r3, [sp, #8] 7274: 7823 ldrb r3, [r4, #0] 7276: 9301 str r3, [sp, #4] 7278: 2302 movs r3, #2 727a: 9300 str r3, [sp, #0] 727c: ee18 2a10 vmov r2, s16 7280: 4c10 ldr r4, [pc, #64] ; (72c4 ) 7282: 4633 mov r3, r6 7284: a924 add r1, sp, #144 ; 0x90 7286: 4648 mov r0, r9 7288: 47a0 blx r4 _lv_mem_buf_release(mask_buf); 728a: 4630 mov r0, r6 _lv_mem_buf_release(mask_buf); 728c: 4c10 ldr r4, [pc, #64] ; (72d0 ) 728e: 47a0 blx r4 _lv_mem_buf_release(map2); 7290: ee18 0a10 vmov r0, s16 7294: 47a0 blx r4 } 7296: e713 b.n 70c0 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); 7298: f44f 73f0 mov.w r3, #480 ; 0x1e0 729c: 930a str r3, [sp, #40] ; 0x28 729e: e1c8 b.n 7632 if(alpha_byte) cf = LV_IMG_CF_TRUE_COLOR_ALPHA; 72a0: 2205 movs r2, #5 72a2: e1de b.n 7662 uint16_t recolor_premult[3] = {0}; 72a4: 9310 str r3, [sp, #64] ; 0x40 72a6: 9316 str r3, [sp, #88] ; 0x58 72a8: 9319 str r3, [sp, #100] ; 0x64 72aa: e213 b.n 76d4 mask_res = (alpha_byte || chroma_key || draw_dsc->angle || 72ac: f04f 0b02 mov.w fp, #2 72b0: e224 b.n 76fc 72b2: bf00 nop 72b4: 00007015 .word 0x00007015 72b8: 00005215 .word 0x00005215 72bc: 0000dc0d .word 0x0000dc0d 72c0: 00009a1d .word 0x00009a1d 72c4: 00006a29 .word 0x00006a29 72c8: 0000e09d .word 0x0000e09d 72cc: 0000f0ed .word 0x0000f0ed 72d0: 0000eda1 .word 0x0000eda1 int32_t rot_x = disp_area->x1 + draw_area.x1 - map_area->x1; 72d4: 9b04 ldr r3, [sp, #16] 72d6: f9bd 2088 ldrsh.w r2, [sp, #136] ; 0x88 72da: f9b3 3010 ldrsh.w r3, [r3, #16] 72de: 4413 add r3, r2 72e0: f9ba 2000 ldrsh.w r2, [sl] 72e4: 1a9b subs r3, r3, r2 72e6: 931b str r3, [sp, #108] ; 0x6c for(x = 0; x < draw_area_w; x++, map_px += px_size_byte, px_i++) { 72e8: eb07 0308 add.w r3, r7, r8 72ec: ee08 3a90 vmov s17, r3 72f0: 9306 str r3, [sp, #24] 72f2: ee18 3a10 vmov r3, s16 72f6: eb03 0348 add.w r3, r3, r8, lsl #1 72fa: 931d str r3, [sp, #116] ; 0x74 map_px = map_buf_tmp; 72fc: 9b08 ldr r3, [sp, #32] 72fe: 930d str r3, [sp, #52] ; 0x34 for(x = 0; x < draw_area_w; x++, map_px += px_size_byte, px_i++) { 7300: 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; 7302: 9a09 ldr r2, [sp, #36] ; 0x24 7304: 930e str r3, [sp, #56] ; 0x38 7306: 9b1a ldr r3, [sp, #104] ; 0x68 7308: 4413 add r3, r2 730a: b21b sxth r3, r3 730c: 931e str r3, [sp, #120] ; 0x78 730e: 9b11 ldr r3, [sp, #68] ; 0x44 7310: 9a0e ldr r2, [sp, #56] ; 0x38 7312: 4293 cmp r3, r2 7314: dc43 bgt.n 739e 7316: 9b1f ldr r3, [sp, #124] ; 0x7c 7318: 4498 add r8, r3 if(other_mask_cnt) { 731a: 9b0b ldr r3, [sp, #44] ; 0x2c 731c: b333 cbz r3, 736c 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, 731e: 9804 ldr r0, [sp, #16] 7320: f8bd 208a ldrh.w r2, [sp, #138] ; 0x8a 7324: 8a40 ldrh r0, [r0, #18] 7326: f8bd 308c ldrh.w r3, [sp, #140] ; 0x8c 732a: f8bd 1088 ldrh.w r1, [sp, #136] ; 0x88 732e: 4d9d ldr r5, [pc, #628] ; (75a4 ) 7330: 4402 add r2, r0 7332: 9809 ldr r0, [sp, #36] ; 0x24 7334: 4402 add r2, r0 7336: 9804 ldr r0, [sp, #16] 7338: 8a00 ldrh r0, [r0, #16] 733a: 3301 adds r3, #1 733c: 1a5b subs r3, r3, r1 733e: 4401 add r1, r0 7340: b21b sxth r3, r3 7342: ee18 0a90 vmov r0, s17 7346: b212 sxth r2, r2 7348: b209 sxth r1, r1 734a: 47a8 blx r5 if(mask_res_sub == LV_DRAW_MASK_RES_TRANSP) { 734c: 2800 cmp r0, #0 734e: f040 8123 bne.w 7598 7352: f8bd 108c ldrh.w r1, [sp, #140] ; 0x8c 7356: f8bd 3088 ldrh.w r3, [sp, #136] ; 0x88 735a: 3101 adds r1, #1 735c: 1ac9 subs r1, r1, r3 _lv_memset_00(mask_buf + px_i_start, lv_area_get_width(&draw_area)); 735e: ee18 0a90 vmov r0, s17 7362: 4b91 ldr r3, [pc, #580] ; (75a8 ) 7364: b209 sxth r1, r1 7366: 4798 blx r3 mask_res = LV_DRAW_MASK_RES_CHANGED; 7368: f04f 0b02 mov.w fp, #2 map_buf_tmp += map_w * px_size_byte; 736c: 9b08 ldr r3, [sp, #32] 736e: 9a1c ldr r2, [sp, #112] ; 0x70 7370: 4413 add r3, r2 7372: 9308 str r3, [sp, #32] 7374: f8bd 308c ldrh.w r3, [sp, #140] ; 0x8c 7378: f8bd 2088 ldrh.w r2, [sp, #136] ; 0x88 737c: 3301 adds r3, #1 737e: 1a9b subs r3, r3, r2 if(px_i + lv_area_get_width(&draw_area) < mask_buf_size) { 7380: 9a0a ldr r2, [sp, #40] ; 0x28 7382: fa08 f383 sxtah r3, r8, r3 7386: 4293 cmp r3, r2 7388: f080 8116 bcs.w 75b8 blend_area.y2 ++; 738c: f8bd 3096 ldrh.w r3, [sp, #150] ; 0x96 7390: 3301 adds r3, #1 7392: f8ad 3096 strh.w r3, [sp, #150] ; 0x96 for(y = 0; y < draw_area_h; y++) { 7396: 9b09 ldr r3, [sp, #36] ; 0x24 7398: 3301 adds r3, #1 739a: 9309 str r3, [sp, #36] ; 0x24 739c: e1c9 b.n 7732 if(transform) { 739e: 9b15 ldr r3, [sp, #84] ; 0x54 73a0: 2b00 cmp r3, #0 73a2: f000 80d7 beq.w 7554 int32_t xt = x - dsc->cfg.pivot_x; 73a6: 9a0e ldr r2, [sp, #56] ; 0x38 73a8: 9b1b ldr r3, [sp, #108] ; 0x6c int32_t yt = y - dsc->cfg.pivot_y; 73aa: 991e ldr r1, [sp, #120] ; 0x78 const uint8_t * src_u8 = (const uint8_t *)dsc->cfg.src; 73ac: 9826 ldr r0, [sp, #152] ; 0x98 int32_t xt = x - dsc->cfg.pivot_x; 73ae: 4413 add r3, r2 73b0: f9bd 20a0 ldrsh.w r2, [sp, #160] ; 0xa0 73b4: b21b sxth r3, r3 73b6: 1a9b subs r3, r3, r2 int32_t yt = y - dsc->cfg.pivot_y; 73b8: f9bd 20a2 ldrsh.w r2, [sp, #162] ; 0xa2 73bc: 1a8a subs r2, r1, r2 int32_t xs; int32_t ys; if(dsc->cfg.zoom == LV_IMG_ZOOM_NONE) { 73be: f8bd 10a6 ldrh.w r1, [sp, #166] ; 0xa6 73c2: 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; 73c6: e9dd 652f ldrd r6, r5, [sp, #188] ; 0xbc if(dsc->cfg.zoom == LV_IMG_ZOOM_NONE) { 73ca: d119 bne.n 7400 xs = ((dsc->tmp.cosma * xt - dsc->tmp.sinma * yt) >> (LV_TRIGO_SHIFT - 8)) + dsc->tmp.pivot_x_256; 73cc: e9dd e131 ldrd lr, r1, [sp, #196] ; 0xc4 73d0: 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; 73d4: 4351 muls r1, r2 xs = ((dsc->tmp.cosma * xt - dsc->tmp.sinma * yt) >> (LV_TRIGO_SHIFT - 8)) + dsc->tmp.pivot_x_256; 73d6: 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; 73da: 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; 73de: 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; 73e2: 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; 73e6: 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; 73ea: 930f str r3, [sp, #60] ; 0x3c if(xs_int >= dsc->cfg.src_w) return false; 73ec: ebb2 2f26 cmp.w r2, r6, asr #8 int32_t xs_int = xs >> 8; 73f0: ea4f 2326 mov.w r3, r6, asr #8 73f4: 9318 str r3, [sp, #96] ; 0x60 if(xs_int >= dsc->cfg.src_w) return false; 73f6: dc1b bgt.n 7430 mask_buf[px_i] = LV_OPA_TRANSP; 73f8: 9a06 ldr r2, [sp, #24] 73fa: 2300 movs r3, #0 73fc: 7013 strb r3, [r2, #0] continue; 73fe: e0b0 b.n 7562 xt *= dsc->tmp.zoom_inv; 7400: f8bd 10ce ldrh.w r1, [sp, #206] ; 0xce 7404: 434b muls r3, r1 yt *= dsc->tmp.zoom_inv; 7406: 434a muls r2, r1 else if(dsc->cfg.angle == 0) { 7408: f9bd 10a4 ldrsh.w r1, [sp, #164] ; 0xa4 740c: b911 cbnz r1, 7414 xs = xt + dsc->tmp.pivot_x_256; 740e: 441e add r6, r3 ys = yt + dsc->tmp.pivot_y_256; 7410: 18ab adds r3, r5, r2 7412: e7e8 b.n 73e6 xs = ((dsc->tmp.cosma * xt - dsc->tmp.sinma * yt) >> (LV_TRIGO_SHIFT)) + dsc->tmp.pivot_x_256; 7414: e9dd e131 ldrd lr, r1, [sp, #196] ; 0xc4 7418: fb03 fc01 mul.w ip, r3, r1 ys = ((dsc->tmp.sinma * xt + dsc->tmp.cosma * yt) >> (LV_TRIGO_SHIFT)) + dsc->tmp.pivot_y_256; 741c: 4351 muls r1, r2 xs = ((dsc->tmp.cosma * xt - dsc->tmp.sinma * yt) >> (LV_TRIGO_SHIFT)) + dsc->tmp.pivot_x_256; 741e: fb02 cc1e mls ip, r2, lr, ip ys = ((dsc->tmp.sinma * xt + dsc->tmp.cosma * yt) >> (LV_TRIGO_SHIFT)) + dsc->tmp.pivot_y_256; 7422: fb03 110e mla r1, r3, lr, r1 xs = ((dsc->tmp.cosma * xt - dsc->tmp.sinma * yt) >> (LV_TRIGO_SHIFT)) + dsc->tmp.pivot_x_256; 7426: 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; 742a: eb05 33e1 add.w r3, r5, r1, asr #15 742e: e7da b.n 73e6 else if(xs_int < 0) return false; 7430: 1233 asrs r3, r6, #8 7432: 2b00 cmp r3, #0 7434: dbe0 blt.n 73f8 int32_t ys_int = ys >> 8; 7436: 9b0f ldr r3, [sp, #60] ; 0x3c if(ys_int >= dsc->cfg.src_h) return false; 7438: 990f ldr r1, [sp, #60] ; 0x3c int32_t ys_int = ys >> 8; 743a: 121b asrs r3, r3, #8 743c: 9312 str r3, [sp, #72] ; 0x48 if(ys_int >= dsc->cfg.src_h) return false; 743e: f9bd 309e ldrsh.w r3, [sp, #158] ; 0x9e 7442: ebb3 2f21 cmp.w r3, r1, asr #8 7446: ddd7 ble.n 73f8 else if(ys_int < 0) return false; 7448: 9b12 ldr r3, [sp, #72] ; 0x48 744a: 2b00 cmp r3, #0 744c: dbd4 blt.n 73f8 uint8_t px_size; uint32_t pxi; if(dsc->tmp.native_color) { 744e: f89d 50cc ldrb.w r5, [sp, #204] ; 0xcc 7452: f015 0104 ands.w r1, r5, #4 7456: 9113 str r1, [sp, #76] ; 0x4c 7458: d066 beq.n 7528 if(dsc->tmp.has_alpha == 0) { 745a: 1231 asrs r1, r6, #8 745c: fb02 1203 mla r2, r2, r3, r1 7460: f015 0f02 tst.w r5, #2 7464: ea4f 0342 mov.w r3, r2, lsl #1 7468: d151 bne.n 750e *d8 = *s8; 746a: f810 2012 ldrb.w r2, [r0, r2, lsl #1] 746e: 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); 7472: 18c1 adds r1, r0, r3 7474: 784a ldrb r2, [r1, #1] 7476: f88d 20ad strb.w r2, [sp, #173] ; 0xad px_size = LV_COLOR_SIZE >> 3; 747a: 2202 movs r2, #2 } else { px_size = LV_IMG_PX_SIZE_ALPHA_BYTE; 747c: 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) { 747e: f89d 20cc ldrb.w r2, [sp, #204] ; 0xcc 7482: 07d2 lsls r2, r2, #31 7484: d504 bpl.n 7490 lv_color_t ct = LV_COLOR_TRANSP; if(dsc->res.color.full == ct.full) return false; 7486: f8bd 20ac ldrh.w r2, [sp, #172] ; 0xac 748a: f5b2 6ffc cmp.w r2, #2016 ; 0x7e0 748e: d0b3 beq.n 73f8 } if(dsc->cfg.antialias == false) return true; 7490: f89d 20ab ldrb.w r2, [sp, #171] ; 0xab 7494: b19a cbz r2, 74be dsc->tmp.xs = xs; dsc->tmp.ys = ys; 7496: 9a0f ldr r2, [sp, #60] ; 0x3c 7498: f8ad 20d2 strh.w r2, [sp, #210] ; 0xd2 dsc->tmp.xs_int = xs_int; dsc->tmp.ys_int = ys_int; dsc->tmp.pxi = pxi; 749c: 9336 str r3, [sp, #216] ; 0xd8 dsc->tmp.xs_int = xs_int; 749e: 9a18 ldr r2, [sp, #96] ; 0x60 dsc->tmp.px_size = px_size; 74a0: 9b13 ldr r3, [sp, #76] ; 0x4c dsc->tmp.xs_int = xs_int; 74a2: f8ad 20d4 strh.w r2, [sp, #212] ; 0xd4 dsc->tmp.px_size = px_size; 74a6: f88d 30dc strb.w r3, [sp, #220] ; 0xdc dsc->tmp.ys_int = ys_int; 74aa: 9a12 ldr r2, [sp, #72] ; 0x48 bool ret; ret = _lv_img_buf_transform_anti_alias(dsc); 74ac: 4b3f ldr r3, [pc, #252] ; (75ac ) dsc->tmp.xs = xs; 74ae: f8ad 60d0 strh.w r6, [sp, #208] ; 0xd0 ret = _lv_img_buf_transform_anti_alias(dsc); 74b2: a826 add r0, sp, #152 ; 0x98 dsc->tmp.ys_int = ys_int; 74b4: f8ad 20d6 strh.w r2, [sp, #214] ; 0xd6 ret = _lv_img_buf_transform_anti_alias(dsc); 74b8: 4798 blx r3 if(ret == false) { 74ba: 2800 cmp r0, #0 74bc: d09c beq.n 73f8 mask_buf[px_i] = trans_dsc.res.opa; 74be: 9a06 ldr r2, [sp, #24] 74c0: f89d 30ae ldrb.w r3, [sp, #174] ; 0xae 74c4: 7013 strb r3, [r2, #0] c.full = trans_dsc.res.color.full; 74c6: f8bd 30ac ldrh.w r3, [sp, #172] ; 0xac if(draw_dsc->recolor_opa != 0) { 74ca: 7aa2 ldrb r2, [r4, #10] 74cc: b1d2 cbz r2, 7504 LV_COLOR_SET_G(ret, (uint16_t)((uint16_t) premult_c1[1] + LV_COLOR_GET_G(c2) * mix) >> 8); 74ce: 9916 ldr r1, [sp, #88] ; 0x58 74d0: 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); 74d2: 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); 74d4: f3c3 1245 ubfx r2, r3, #5, #6 74d8: 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); 74dc: 9810 ldr r0, [sp, #64] ; 0x40 74de: f003 011f and.w r1, r3, #31 74e2: 08d2 lsrs r2, r2, #3 74e4: fb01 0105 mla r1, r1, r5, r0 74e8: f3c1 2104 ubfx r1, r1, #8, #5 74ec: f402 62fc and.w r2, r2, #2016 ; 0x7e0 74f0: 430a orrs r2, r1 LV_COLOR_SET_R(ret, (uint16_t)((uint16_t) premult_c1[0] + LV_COLOR_GET_R(c2) * mix) >> 8); 74f2: 9919 ldr r1, [sp, #100] ; 0x64 74f4: 0adb lsrs r3, r3, #11 74f6: fb03 1305 mla r3, r3, r5, r1 74fa: f3c3 2307 ubfx r3, r3, #8, #8 74fe: ea42 23c3 orr.w r3, r2, r3, lsl #11 7502: b29b uxth r3, r3 map2[px_i].full = c.full; 7504: 9a1d ldr r2, [sp, #116] ; 0x74 7506: 990e ldr r1, [sp, #56] ; 0x38 7508: f822 3011 strh.w r3, [r2, r1, lsl #1] 750c: e029 b.n 7562 pxi = dsc->cfg.src_w * ys_int * px_size + xs_int * px_size; 750e: 4413 add r3, r2 _lv_memcpy_small(&dsc->res.color, &src_u8[pxi], px_size - 1); 7510: 18c2 adds r2, r0, r3 7512: 5cc1 ldrb r1, [r0, r3] 7514: f88d 10ac strb.w r1, [sp, #172] ; 0xac 7518: 7851 ldrb r1, [r2, #1] 751a: f88d 10ad strb.w r1, [sp, #173] ; 0xad dsc->res.opa = src_u8[pxi + px_size - 1]; 751e: 7892 ldrb r2, [r2, #2] 7520: f88d 20ae strb.w r2, [sp, #174] ; 0xae px_size = LV_IMG_PX_SIZE_ALPHA_BYTE; 7524: 2203 movs r2, #3 7526: e7a9 b.n 747c dsc->res.color = lv_img_buf_get_px_color(&dsc->tmp.img_dsc, xs_int, ys_int, dsc->cfg.color); 7528: f9bd 1060 ldrsh.w r1, [sp, #96] ; 0x60 752c: f9bd 2048 ldrsh.w r2, [sp, #72] ; 0x48 7530: f8bd 30a8 ldrh.w r3, [sp, #168] ; 0xa8 7534: 4d1e ldr r5, [pc, #120] ; (75b0 ) 7536: a82c add r0, sp, #176 ; 0xb0 7538: e9cd 1220 strd r1, r2, [sp, #128] ; 0x80 753c: 47a8 blx r5 dsc->res.opa = lv_img_buf_get_px_alpha(&dsc->tmp.img_dsc, xs_int, ys_int); 753e: 4b1d ldr r3, [pc, #116] ; (75b4 ) dsc->res.color = lv_img_buf_get_px_color(&dsc->tmp.img_dsc, xs_int, ys_int, dsc->cfg.color); 7540: 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); 7544: e9dd 1220 ldrd r1, r2, [sp, #128] ; 0x80 7548: a82c add r0, sp, #176 ; 0xb0 754a: 4798 blx r3 pxi = 0; /*unused*/ 754c: 9b13 ldr r3, [sp, #76] ; 0x4c dsc->res.opa = lv_img_buf_get_px_alpha(&dsc->tmp.img_dsc, xs_int, ys_int); 754e: f88d 00ae strb.w r0, [sp, #174] ; 0xae 7552: e794 b.n 747e if(alpha_byte) { 7554: 9b07 ldr r3, [sp, #28] 7556: b17b cbz r3, 7578 lv_opa_t px_opa = map_px[LV_IMG_PX_SIZE_ALPHA_BYTE - 1]; 7558: 9b0d ldr r3, [sp, #52] ; 0x34 mask_buf[px_i] = px_opa; 755a: 9a06 ldr r2, [sp, #24] lv_opa_t px_opa = map_px[LV_IMG_PX_SIZE_ALPHA_BYTE - 1]; 755c: 789b ldrb r3, [r3, #2] mask_buf[px_i] = px_opa; 755e: 7013 strb r3, [r2, #0] if(px_opa == 0) { 7560: b96b cbnz r3, 757e for(x = 0; x < draw_area_w; x++, map_px += px_size_byte, px_i++) { 7562: 9b0e ldr r3, [sp, #56] ; 0x38 7564: 9a05 ldr r2, [sp, #20] 7566: 3301 adds r3, #1 7568: 930e str r3, [sp, #56] ; 0x38 756a: 9b0d ldr r3, [sp, #52] ; 0x34 756c: 4413 add r3, r2 756e: 930d str r3, [sp, #52] ; 0x34 7570: 9b06 ldr r3, [sp, #24] 7572: 3301 adds r3, #1 7574: 9306 str r3, [sp, #24] 7576: e6ca b.n 730e mask_buf[px_i] = 0xFF; 7578: 9a06 ldr r2, [sp, #24] 757a: 23ff movs r3, #255 ; 0xff 757c: 7013 strb r3, [r2, #0] c.full = map_px[0] + (map_px[1] << 8); 757e: 9b0d ldr r3, [sp, #52] ; 0x34 7580: 785a ldrb r2, [r3, #1] 7582: 781b ldrb r3, [r3, #0] 7584: eb03 2302 add.w r3, r3, r2, lsl #8 if(chroma_key) { 7588: 9a0c ldr r2, [sp, #48] ; 0x30 c.full = map_px[0] + (map_px[1] << 8); 758a: b29b uxth r3, r3 if(chroma_key) { 758c: 2a00 cmp r2, #0 758e: d09c beq.n 74ca if(c.full == chroma_keyed_color.full) { 7590: f5b3 6ffc cmp.w r3, #2016 ; 0x7e0 7594: d199 bne.n 74ca 7596: e72f b.n 73f8 mask_res = LV_DRAW_MASK_RES_CHANGED; 7598: 2802 cmp r0, #2 759a: bf08 it eq 759c: f04f 0b02 moveq.w fp, #2 75a0: e6e4 b.n 736c 75a2: bf00 nop 75a4: 0000998d .word 0x0000998d 75a8: 0000f251 .word 0x0000f251 75ac: 0000c411 .word 0x0000c411 75b0: 0000bfb5 .word 0x0000bfb5 75b4: 0000c0a5 .word 0x0000c0a5 _lv_blend_map(clip_area, &blend_area, map2, mask_buf, mask_res, draw_dsc->opa, draw_dsc->blend_mode); 75b8: 7ba3 ldrb r3, [r4, #14] 75ba: 9302 str r3, [sp, #8] 75bc: 7823 ldrb r3, [r4, #0] 75be: 4d6b ldr r5, [pc, #428] ; (776c ) 75c0: e9cd b300 strd fp, r3, [sp] 75c4: ee18 2a10 vmov r2, s16 75c8: 463b mov r3, r7 75ca: a924 add r1, sp, #144 ; 0x90 75cc: 4648 mov r0, r9 75ce: 47a8 blx r5 blend_area.y1 = blend_area.y2 + 1; 75d0: f8bd 3096 ldrh.w r3, [sp, #150] ; 0x96 75d4: 3301 adds r3, #1 75d6: b21b sxth r3, r3 75d8: f8ad 3092 strh.w r3, [sp, #146] ; 0x92 blend_area.y2 = blend_area.y1; 75dc: f8ad 3096 strh.w r3, [sp, #150] ; 0x96 mask_res = (alpha_byte || chroma_key || draw_dsc->angle || 75e0: 9b07 ldr r3, [sp, #28] 75e2: b9a3 cbnz r3, 760e 75e4: 9b0c ldr r3, [sp, #48] ; 0x30 75e6: b993 cbnz r3, 760e 75e8: 8863 ldrh r3, [r4, #2] 75ea: b983 cbnz r3, 760e 75ec: 8923 ldrh r3, [r4, #8] 75ee: f5b3 7f80 cmp.w r3, #256 ; 0x100 75f2: bf14 ite ne 75f4: f04f 0b02 movne.w fp, #2 75f8: f04f 0b01 moveq.w fp, #1 if(other_mask_cnt) { 75fc: 9b0b ldr r3, [sp, #44] ; 0x2c 75fe: b14b cbz r3, 7614 _lv_memset_ff(mask_buf, mask_buf_size); 7600: 990a ldr r1, [sp, #40] ; 0x28 7602: 4b5b ldr r3, [pc, #364] ; (7770 ) 7604: 4638 mov r0, r7 7606: 4798 blx r3 px_i = 0; 7608: f04f 0800 mov.w r8, #0 760c: e6c3 b.n 7396 mask_res = (alpha_byte || chroma_key || draw_dsc->angle || 760e: f04f 0b02 mov.w fp, #2 7612: e7f3 b.n 75fc px_i = 0; 7614: f8dd 802c ldr.w r8, [sp, #44] ; 0x2c 7618: e6bd b.n 7396 bool transform = draw_dsc->angle != 0 || draw_dsc->zoom != LV_IMG_ZOOM_NONE ? true : false; 761a: 2301 movs r3, #1 761c: 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); 761e: 4e55 ldr r6, [pc, #340] ; (7774 ) 7620: a822 add r0, sp, #136 ; 0x88 7622: 47b0 blx r6 7624: f5b0 7ff0 cmp.w r0, #480 ; 0x1e0 7628: f63f ae36 bhi.w 7298 762c: a822 add r0, sp, #136 ; 0x88 762e: 47b0 blx r6 7630: 900a str r0, [sp, #40] ; 0x28 lv_color_t * map2 = _lv_mem_buf_get(mask_buf_size * sizeof(lv_color_t)); 7632: 9b0a ldr r3, [sp, #40] ; 0x28 7634: 4e50 ldr r6, [pc, #320] ; (7778 ) 7636: 0058 lsls r0, r3, #1 7638: 47b0 blx r6 763a: ee08 0a10 vmov s16, r0 lv_opa_t * mask_buf = _lv_mem_buf_get(mask_buf_size); 763e: 980a ldr r0, [sp, #40] ; 0x28 7640: 47b0 blx r6 _lv_memset_00(&trans_dsc, sizeof(lv_img_transform_dsc_t)); 7642: 4b4e ldr r3, [pc, #312] ; (777c ) lv_opa_t * mask_buf = _lv_mem_buf_get(mask_buf_size); 7644: 4607 mov r7, r0 _lv_memset_00(&trans_dsc, sizeof(lv_img_transform_dsc_t)); 7646: 2148 movs r1, #72 ; 0x48 7648: a826 add r0, sp, #152 ; 0x98 764a: 4798 blx r3 if(transform) { 764c: 9b15 ldr r3, [sp, #84] ; 0x54 764e: b363 cbz r3, 76aa if(alpha_byte) cf = LV_IMG_CF_TRUE_COLOR_ALPHA; 7650: 9b07 ldr r3, [sp, #28] 7652: 2b00 cmp r3, #0 7654: f47f ae24 bne.w 72a0 else if(chroma_key) cf = LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED; 7658: 9b0c ldr r3, [sp, #48] ; 0x30 765a: 2b00 cmp r3, #0 765c: bf0c ite eq 765e: 2204 moveq r2, #4 7660: 2206 movne r2, #6 trans_dsc.cfg.angle = draw_dsc->angle; 7662: 8863 ldrh r3, [r4, #2] 7664: f8ad 30a4 strh.w r3, [sp, #164] ; 0xa4 trans_dsc.cfg.zoom = draw_dsc->zoom; 7668: 8923 ldrh r3, [r4, #8] 766a: f8ad 30a6 strh.w r3, [sp, #166] ; 0xa6 return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); 766e: f8ba 3006 ldrh.w r3, [sl, #6] 7672: f8ba 1002 ldrh.w r1, [sl, #2] trans_dsc.cfg.src = map_p; 7676: 9526 str r5, [sp, #152] ; 0x98 7678: 3301 adds r3, #1 767a: 1a5b subs r3, r3, r1 trans_dsc.cfg.src_h = lv_area_get_height(map_area);; 767c: f8ad 309e strh.w r3, [sp, #158] ; 0x9e trans_dsc.cfg.pivot_x = draw_dsc->pivot.x; 7680: 88a3 ldrh r3, [r4, #4] 7682: f8ad 30a0 strh.w r3, [sp, #160] ; 0xa0 trans_dsc.cfg.pivot_y = draw_dsc->pivot.y; 7686: 88e3 ldrh r3, [r4, #6] 7688: f8ad 30a2 strh.w r3, [sp, #162] ; 0xa2 trans_dsc.cfg.color = draw_dsc->recolor; 768c: 89a3 ldrh r3, [r4, #12] 768e: f8ad 30a8 strh.w r3, [sp, #168] ; 0xa8 trans_dsc.cfg.antialias = draw_dsc->antialias; 7692: 7be3 ldrb r3, [r4, #15] trans_dsc.cfg.src_w = map_w; 7694: f8ad 809c strh.w r8, [sp, #156] ; 0x9c trans_dsc.cfg.antialias = draw_dsc->antialias; 7698: f3c3 0300 ubfx r3, r3, #0, #1 769c: f88d 30ab strb.w r3, [sp, #171] ; 0xab _lv_img_buf_transform_init(&trans_dsc); 76a0: a826 add r0, sp, #152 ; 0x98 76a2: 4b37 ldr r3, [pc, #220] ; (7780 ) trans_dsc.cfg.cf = cf; 76a4: f88d 20aa strb.w r2, [sp, #170] ; 0xaa _lv_img_buf_transform_init(&trans_dsc); 76a8: 4798 blx r3 lv_opa_t recolor_opa_inv = 255 - draw_dsc->recolor_opa; 76aa: 7aa3 ldrb r3, [r4, #10] 76ac: 43da mvns r2, r3 76ae: b2d2 uxtb r2, r2 76b0: 9214 str r2, [sp, #80] ; 0x50 if(draw_dsc->recolor_opa != 0) { 76b2: 2b00 cmp r3, #0 76b4: f43f adf6 beq.w 72a4 out[0] = (uint16_t) LV_COLOR_GET_R(c) * mix; 76b8: 7b62 ldrb r2, [r4, #13] 76ba: 08d2 lsrs r2, r2, #3 76bc: 435a muls r2, r3 76be: 9219 str r2, [sp, #100] ; 0x64 out[1] = (uint16_t) LV_COLOR_GET_G(c) * mix; 76c0: 89a2 ldrh r2, [r4, #12] 76c2: f3c2 1245 ubfx r2, r2, #5, #6 76c6: 435a muls r2, r3 76c8: 9216 str r2, [sp, #88] ; 0x58 out[2] = (uint16_t) LV_COLOR_GET_B(c) * mix; 76ca: 7b22 ldrb r2, [r4, #12] 76cc: f002 021f and.w r2, r2, #31 76d0: 4353 muls r3, r2 76d2: 9310 str r3, [sp, #64] ; 0x40 mask_res = (alpha_byte || chroma_key || draw_dsc->angle || 76d4: 9b07 ldr r3, [sp, #28] 76d6: 2b00 cmp r3, #0 76d8: f47f ade8 bne.w 72ac 76dc: 9b0c ldr r3, [sp, #48] ; 0x30 76de: 2b00 cmp r3, #0 76e0: f47f ade4 bne.w 72ac 76e4: 8863 ldrh r3, [r4, #2] 76e6: 2b00 cmp r3, #0 76e8: f47f ade0 bne.w 72ac 76ec: 8923 ldrh r3, [r4, #8] 76ee: f5b3 7f80 cmp.w r3, #256 ; 0x100 76f2: bf14 ite ne 76f4: f04f 0b02 movne.w fp, #2 76f8: f04f 0b01 moveq.w fp, #1 if(other_mask_cnt) { 76fc: 9b0b ldr r3, [sp, #44] ; 0x2c 76fe: b11b cbz r3, 7708 _lv_memset_ff(mask_buf, mask_buf_size); 7700: 990a ldr r1, [sp, #40] ; 0x28 7702: 4b1b ldr r3, [pc, #108] ; (7770 ) 7704: 4638 mov r0, r7 7706: 4798 blx r3 int32_t rot_y = disp_area->y1 + draw_area.y1 - map_area->y1; 7708: 9b04 ldr r3, [sp, #16] 770a: f9bd 208a ldrsh.w r2, [sp, #138] ; 0x8a 770e: f9b3 3012 ldrsh.w r3, [r3, #18] 7712: 4413 add r3, r2 7714: f9ba 2002 ldrsh.w r2, [sl, #2] 7718: 1a9b subs r3, r3, r2 771a: 931a str r3, [sp, #104] ; 0x68 map_buf_tmp += map_w * px_size_byte; 771c: 9b05 ldr r3, [sp, #20] 771e: fb13 f308 smulbb r3, r3, r8 7722: 931c str r3, [sp, #112] ; 0x70 for(y = 0; y < draw_area_h; y++) { 7724: 2300 movs r3, #0 7726: 9309 str r3, [sp, #36] ; 0x24 uint32_t px_i = 0; 7728: 4698 mov r8, r3 772a: 9b11 ldr r3, [sp, #68] ; 0x44 772c: ea23 73e3 bic.w r3, r3, r3, asr #31 7730: 931f str r3, [sp, #124] ; 0x7c for(y = 0; y < draw_area_h; y++) { 7732: 9b17 ldr r3, [sp, #92] ; 0x5c 7734: 9a09 ldr r2, [sp, #36] ; 0x24 7736: 4293 cmp r3, r2 7738: f73f adcc bgt.w 72d4 if(blend_area.y1 != blend_area.y2) { 773c: f9bd 3096 ldrsh.w r3, [sp, #150] ; 0x96 7740: f9bd 2092 ldrsh.w r2, [sp, #146] ; 0x92 7744: 429a cmp r2, r3 7746: d00e beq.n 7766 blend_area.y2--; 7748: 3b01 subs r3, #1 774a: 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); 774e: 7ba3 ldrb r3, [r4, #14] 7750: 9302 str r3, [sp, #8] 7752: 7823 ldrb r3, [r4, #0] 7754: 4c05 ldr r4, [pc, #20] ; (776c ) 7756: e9cd b300 strd fp, r3, [sp] 775a: ee18 2a10 vmov r2, s16 775e: 463b mov r3, r7 7760: a924 add r1, sp, #144 ; 0x90 7762: 4648 mov r0, r9 7764: 47a0 blx r4 _lv_mem_buf_release(mask_buf); 7766: 4638 mov r0, r7 7768: e590 b.n 728c 776a: bf00 nop 776c: 00006a29 .word 0x00006a29 7770: 0000f2ad .word 0x0000f2ad 7774: 0000e09d .word 0x0000e09d 7778: 0000f0ed .word 0x0000f0ed 777c: 0000f251 .word 0x0000f251 7780: 0000c191 .word 0x0000c191 00007784 : { 7784: b510 push {r4, lr} _lv_memset_00(dsc, sizeof(lv_draw_img_dsc_t)); 7786: 4b08 ldr r3, [pc, #32] ; (77a8 ) { 7788: 4604 mov r4, r0 _lv_memset_00(dsc, sizeof(lv_draw_img_dsc_t)); 778a: 2110 movs r1, #16 778c: 4798 blx r3 dsc->recolor = LV_COLOR_BLACK; 778e: 2300 movs r3, #0 7790: 81a3 strh r3, [r4, #12] dsc->opa = LV_OPA_COVER; 7792: 23ff movs r3, #255 ; 0xff 7794: 7023 strb r3, [r4, #0] dsc->zoom = LV_IMG_ZOOM_NONE; 7796: f44f 7380 mov.w r3, #256 ; 0x100 779a: 8123 strh r3, [r4, #8] dsc->antialias = LV_ANTIALIAS; 779c: 7be3 ldrb r3, [r4, #15] 779e: f043 0301 orr.w r3, r3, #1 77a2: 73e3 strb r3, [r4, #15] } 77a4: bd10 pop {r4, pc} 77a6: bf00 nop 77a8: 0000f251 .word 0x0000f251 000077ac : switch(cf) { 77ac: 3804 subs r0, #4 77ae: b2c0 uxtb r0, r0 77b0: 280a cmp r0, #10 77b2: bf9d ittte ls 77b4: 4b02 ldrls r3, [pc, #8] ; (77c0 ) 77b6: 181b addls r3, r3, r0 77b8: 7898 ldrbls r0, [r3, #2] { 77ba: 2000 movhi r0, #0 } 77bc: 4770 bx lr 77be: bf00 nop 77c0: 0002741c .word 0x0002741c 000077c4 : switch(cf) { 77c4: 2803 cmp r0, #3 77c6: d005 beq.n 77d4 77c8: 3806 subs r0, #6 77ca: 2804 cmp r0, #4 77cc: bf8c ite hi 77ce: 2000 movhi r0, #0 77d0: 2001 movls r0, #1 77d2: 4770 bx lr is_chroma_keyed = true; 77d4: 2001 movs r0, #1 } 77d6: 4770 bx lr 000077d8 : switch(cf) { 77d8: 280e cmp r0, #14 77da: bf9d ittte ls 77dc: f647 73a4 movwls r3, #32676 ; 0x7fa4 77e0: fa23 f000 lsrls.w r0, r3, r0 77e4: f000 0001 andls.w r0, r0, #1 { 77e8: 2000 movhi r0, #0 } 77ea: 4770 bx lr 000077ec : { 77ec: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} 77f0: ed2d 8b02 vpush {d8} 77f4: 4604 mov r4, r0 77f6: b08d sub sp, #52 ; 0x34 77f8: 4688 mov r8, r1 77fa: 461f mov r7, r3 if(src == NULL) { 77fc: 4610 mov r0, r2 77fe: b94a cbnz r2, 7814 LV_LOG_WARN("Image draw: src is NULL"); 7800: 4b76 ldr r3, [pc, #472] ; (79dc ) 7802: 9300 str r3, [sp, #0] 7804: 4b76 ldr r3, [pc, #472] ; (79e0 ) 7806: 224d movs r2, #77 ; 0x4d LV_LOG_WARN("Image draw error"); 7808: 4976 ldr r1, [pc, #472] ; (79e4 ) 780a: 4d77 ldr r5, [pc, #476] ; (79e8 ) 780c: 2002 movs r0, #2 780e: 47a8 blx r5 show_error(coords, mask, "No\ndata"); 7810: 4a76 ldr r2, [pc, #472] ; (79ec ) 7812: e017 b.n 7844 if(dsc->opa <= LV_OPA_MIN) return; 7814: 781b ldrb r3, [r3, #0] 7816: 2b05 cmp r3, #5 7818: d969 bls.n 78ee lv_img_cache_entry_t * cdsc = _lv_img_cache_open(src, draw_dsc->recolor); 781a: 89b9 ldrh r1, [r7, #12] 781c: 4b74 ldr r3, [pc, #464] ; (79f0 ) 781e: 4798 blx r3 if(cdsc == NULL) return LV_RES_INV; 7820: 4605 mov r5, r0 7822: 2800 cmp r0, #0 7824: f000 80bc beq.w 79a0 bool chroma_keyed = lv_img_cf_is_chroma_keyed(cdsc->dec_dsc.header.cf); 7828: 7b03 ldrb r3, [r0, #12] if(cdsc->dec_dsc.error_msg != NULL) { 782a: 6982 ldr r2, [r0, #24] bool chroma_keyed = lv_img_cf_is_chroma_keyed(cdsc->dec_dsc.header.cf); 782c: f003 031f and.w r3, r3, #31 if(cdsc->dec_dsc.error_msg != NULL) { 7830: b18a cbz r2, 7856 LV_LOG_WARN("Image draw error"); 7832: 4b70 ldr r3, [pc, #448] ; (79f4 ) 7834: 9300 str r3, [sp, #0] 7836: 22f7 movs r2, #247 ; 0xf7 7838: 4b6f ldr r3, [pc, #444] ; (79f8 ) 783a: 496a ldr r1, [pc, #424] ; (79e4 ) 783c: 4e6a ldr r6, [pc, #424] ; (79e8 ) 783e: 2002 movs r0, #2 7840: 47b0 blx r6 show_error(coords, clip_area, cdsc->dec_dsc.error_msg); 7842: 69aa ldr r2, [r5, #24] show_error(coords, mask, "No\ndata"); 7844: 4b6d ldr r3, [pc, #436] ; (79fc ) 7846: 4641 mov r1, r8 7848: 4620 mov r0, r4 } 784a: b00d add sp, #52 ; 0x34 784c: ecbd 8b02 vpop {d8} 7850: e8bd 4ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} show_error(coords, mask, "No\ndata"); 7854: 4718 bx r3 bool chroma_keyed = lv_img_cf_is_chroma_keyed(cdsc->dec_dsc.header.cf); 7856: 4618 mov r0, r3 7858: 4a69 ldr r2, [pc, #420] ; (7a00 ) 785a: 4790 blx r2 785c: 9003 str r0, [sp, #12] bool alpha_byte = lv_img_cf_has_alpha(cdsc->dec_dsc.header.cf); 785e: 4618 mov r0, r3 7860: 4b68 ldr r3, [pc, #416] ; (7a04 ) 7862: 4798 blx r3 else if(cdsc->dec_dsc.img_data) { 7864: 692b ldr r3, [r5, #16] bool alpha_byte = lv_img_cf_has_alpha(cdsc->dec_dsc.header.cf); 7866: 9004 str r0, [sp, #16] else if(cdsc->dec_dsc.img_data) { 7868: 2b00 cmp r3, #0 786a: d045 beq.n 78f8 lv_area_copy(&map_area_rot, coords); 786c: 4b66 ldr r3, [pc, #408] ; (7a08 ) 786e: a808 add r0, sp, #32 7870: 4621 mov r1, r4 7872: 4798 blx r3 if(draw_dsc->angle || draw_dsc->zoom != LV_IMG_ZOOM_NONE) { 7874: 887b ldrh r3, [r7, #2] 7876: 8938 ldrh r0, [r7, #8] 7878: b913 cbnz r3, 7880 787a: f5b0 7f80 cmp.w r0, #256 ; 0x100 787e: d026 beq.n 78ce 7880: 88e2 ldrh r2, [r4, #6] 7882: 8861 ldrh r1, [r4, #2] return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); 7884: 8826 ldrh r6, [r4, #0] return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); 7886: 3201 adds r2, #1 7888: 1a52 subs r2, r2, r1 return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); 788a: 88a1 ldrh r1, [r4, #4] 788c: 3101 adds r1, #1 788e: 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); 7890: 1d3e adds r6, r7, #4 7892: e9cd 0600 strd r0, r6, [sp] 7896: b21b sxth r3, r3 7898: b212 sxth r2, r2 789a: b209 sxth r1, r1 789c: 4e5b ldr r6, [pc, #364] ; (7a0c ) 789e: a808 add r0, sp, #32 78a0: 47b0 blx r6 map_area_rot.x1 += coords->x1; 78a2: 8822 ldrh r2, [r4, #0] 78a4: f8bd 3020 ldrh.w r3, [sp, #32] map_area_rot.y1 += coords->y1; 78a8: f8bd 1022 ldrh.w r1, [sp, #34] ; 0x22 map_area_rot.x1 += coords->x1; 78ac: 4413 add r3, r2 78ae: f8ad 3020 strh.w r3, [sp, #32] map_area_rot.y1 += coords->y1; 78b2: 8863 ldrh r3, [r4, #2] 78b4: 4419 add r1, r3 78b6: f8ad 1022 strh.w r1, [sp, #34] ; 0x22 map_area_rot.x2 += coords->x1; 78ba: f8bd 1024 ldrh.w r1, [sp, #36] ; 0x24 78be: 440a add r2, r1 78c0: f8ad 2024 strh.w r2, [sp, #36] ; 0x24 map_area_rot.y2 += coords->y1; 78c4: f8bd 2026 ldrh.w r2, [sp, #38] ; 0x26 78c8: 4413 add r3, r2 78ca: f8ad 3026 strh.w r3, [sp, #38] ; 0x26 union_ok = _lv_area_intersect(&mask_com, clip_area, &map_area_rot); 78ce: 4b50 ldr r3, [pc, #320] ; (7a10 ) 78d0: aa08 add r2, sp, #32 78d2: 4641 mov r1, r8 78d4: a80a add r0, sp, #40 ; 0x28 78d6: 4798 blx r3 if(union_ok == false) { 78d8: b148 cbz r0, 78ee lv_draw_map(coords, &mask_com, cdsc->dec_dsc.img_data, draw_dsc, chroma_keyed, alpha_byte); 78da: 9b04 ldr r3, [sp, #16] 78dc: 9301 str r3, [sp, #4] 78de: 9b03 ldr r3, [sp, #12] 78e0: 9300 str r3, [sp, #0] 78e2: 4620 mov r0, r4 78e4: 692a ldr r2, [r5, #16] 78e6: 4c4b ldr r4, [pc, #300] ; (7a14 ) 78e8: 463b mov r3, r7 78ea: a90a add r1, sp, #40 ; 0x28 78ec: 47a0 blx r4 } 78ee: b00d add sp, #52 ; 0x34 78f0: ecbd 8b02 vpop {d8} 78f4: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} union_ok = _lv_area_intersect(&mask_com, clip_area, coords); 78f8: 4b45 ldr r3, [pc, #276] ; (7a10 ) 78fa: 4622 mov r2, r4 78fc: 4641 mov r1, r8 78fe: a806 add r0, sp, #24 7900: 4798 blx r3 if(union_ok == false) { 7902: 2800 cmp r0, #0 7904: d0f3 beq.n 78ee 7906: f8bd 601c ldrh.w r6, [sp, #28] 790a: f8bd 3018 ldrh.w r3, [sp, #24] 790e: 3601 adds r6, #1 7910: 1af6 subs r6, r6, r3 7912: b233 sxth r3, r6 7914: 9305 str r3, [sp, #20] uint8_t * buf = _lv_mem_buf_get(lv_area_get_width(&mask_com) * 7916: eb03 0043 add.w r0, r3, r3, lsl #1 791a: 4b3f ldr r3, [pc, #252] ; (7a18 ) 791c: 4798 blx r3 lv_area_copy(&line, &mask_com); 791e: 4b3a ldr r3, [pc, #232] ; (7a08 ) 7920: a906 add r1, sp, #24 uint8_t * buf = _lv_mem_buf_get(lv_area_get_width(&mask_com) * 7922: 4681 mov r9, r0 lv_area_copy(&line, &mask_com); 7924: a808 add r0, sp, #32 7926: 4798 blx r3 lv_area_set_height(&line, 1); 7928: 4b3c ldr r3, [pc, #240] ; (7a1c ) 792a: 2101 movs r1, #1 792c: a808 add r0, sp, #32 792e: 4798 blx r3 int32_t x = mask_com.x1 - coords->x1; 7930: f9bd 3018 ldrsh.w r3, [sp, #24] 7934: f9b4 2000 ldrsh.w r2, [r4] int32_t y = mask_com.y1 - coords->y1; 7938: f9bd a01a ldrsh.w sl, [sp, #26] 793c: f9b4 1002 ldrsh.w r1, [r4, #2] read_res = lv_img_decoder_read_line(&cdsc->dec_dsc, x, y, width, buf); 7940: 1a9b subs r3, r3, r2 7942: b21b sxth r3, r3 7944: ee08 3a10 vmov s16, r3 int32_t y = mask_com.y1 - coords->y1; 7948: ebaa 0b01 sub.w fp, sl, r1 for(row = mask_com.y1; row <= mask_com.y2; row++) { 794c: f9bd 301e ldrsh.w r3, [sp, #30] 7950: 459a cmp sl, r3 7952: dd03 ble.n 795c _lv_mem_buf_release(buf); 7954: 4b32 ldr r3, [pc, #200] ; (7a20 ) 7956: 4648 mov r0, r9 7958: 4798 blx r3 if(res == LV_RES_INV) { 795a: e7c8 b.n 78ee union_ok = _lv_area_intersect(&mask_line, clip_area, &line); 795c: 4b2c ldr r3, [pc, #176] ; (7a10 ) 795e: aa08 add r2, sp, #32 7960: 4641 mov r1, r8 7962: a80a add r0, sp, #40 ; 0x28 7964: 4798 blx r3 if(union_ok == false) continue; 7966: 2800 cmp r0, #0 7968: d035 beq.n 79d6 read_res = lv_img_decoder_read_line(&cdsc->dec_dsc, x, y, width, buf); 796a: 9b05 ldr r3, [sp, #20] 796c: 4e2d ldr r6, [pc, #180] ; (7a24 ) 796e: f8cd 9000 str.w r9, [sp] 7972: ee18 1a10 vmov r1, s16 7976: fa0f f28b sxth.w r2, fp 797a: 4628 mov r0, r5 797c: 47b0 blx r6 if(read_res != LV_RES_OK) { 797e: 2801 cmp r0, #1 7980: d013 beq.n 79aa lv_img_decoder_close(&cdsc->dec_dsc); 7982: 4628 mov r0, r5 7984: 4b28 ldr r3, [pc, #160] ; (7a28 ) LV_LOG_WARN("Image draw can't read the line"); 7986: 4d18 ldr r5, [pc, #96] ; (79e8 ) lv_img_decoder_close(&cdsc->dec_dsc); 7988: 4798 blx r3 LV_LOG_WARN("Image draw can't read the line"); 798a: 4b28 ldr r3, [pc, #160] ; (7a2c ) 798c: 9300 str r3, [sp, #0] 798e: 2002 movs r0, #2 7990: 4b19 ldr r3, [pc, #100] ; (79f8 ) 7992: 4914 ldr r1, [pc, #80] ; (79e4 ) 7994: f44f 729a mov.w r2, #308 ; 0x134 7998: 47a8 blx r5 _lv_mem_buf_release(buf); 799a: 4b21 ldr r3, [pc, #132] ; (7a20 ) 799c: 4648 mov r0, r9 799e: 4798 blx r3 LV_LOG_WARN("Image draw error"); 79a0: 4b14 ldr r3, [pc, #80] ; (79f4 ) 79a2: 9300 str r3, [sp, #0] 79a4: 2258 movs r2, #88 ; 0x58 79a6: 4b0e ldr r3, [pc, #56] ; (79e0 ) 79a8: e72e b.n 7808 lv_draw_map(&line, &mask_line, buf, draw_dsc, chroma_keyed, alpha_byte); 79aa: 9b04 ldr r3, [sp, #16] 79ac: 9301 str r3, [sp, #4] 79ae: 9b03 ldr r3, [sp, #12] 79b0: 9300 str r3, [sp, #0] 79b2: 4e18 ldr r6, [pc, #96] ; (7a14 ) 79b4: 463b mov r3, r7 79b6: 464a mov r2, r9 79b8: a90a add r1, sp, #40 ; 0x28 79ba: a808 add r0, sp, #32 79bc: 47b0 blx r6 line.y1++; 79be: f8bd 3022 ldrh.w r3, [sp, #34] ; 0x22 79c2: 3301 adds r3, #1 79c4: f8ad 3022 strh.w r3, [sp, #34] ; 0x22 line.y2++; 79c8: f8bd 3026 ldrh.w r3, [sp, #38] ; 0x26 79cc: 3301 adds r3, #1 79ce: f8ad 3026 strh.w r3, [sp, #38] ; 0x26 y++; 79d2: f10b 0b01 add.w fp, fp, #1 for(row = mask_com.y1; row <= mask_com.y2; row++) { 79d6: f10a 0a01 add.w sl, sl, #1 79da: e7b7 b.n 794c 79dc: 000273cb .word 0x000273cb 79e0: 00027429 .word 0x00027429 79e4: 00027397 .word 0x00027397 79e8: 0000eb21 .word 0x0000eb21 79ec: 000273e3 .word 0x000273e3 79f0: 0000c6d1 .word 0x0000c6d1 79f4: 000273eb .word 0x000273eb 79f8: 00027435 .word 0x00027435 79fc: 00006fc5 .word 0x00006fc5 7a00: 000077c5 .word 0x000077c5 7a04: 000077d9 .word 0x000077d9 7a08: 00007015 .word 0x00007015 7a0c: 0000c28d .word 0x0000c28d 7a10: 0000e0b9 .word 0x0000e0b9 7a14: 00007029 .word 0x00007029 7a18: 0000f0ed .word 0x0000f0ed 7a1c: 0000e093 .word 0x0000e093 7a20: 0000eda1 .word 0x0000eda1 7a24: 0000d259 .word 0x0000d259 7a28: 0000d279 .word 0x0000d279 7a2c: 000273fc .word 0x000273fc 00007a30 : if(src == NULL) return img_src_type; 7a30: b138 cbz r0, 7a42 if(u8_p[0] >= 0x20 && u8_p[0] <= 0x7F) { 7a32: 7800 ldrb r0, [r0, #0] 7a34: f1a0 0320 sub.w r3, r0, #32 7a38: 2b5f cmp r3, #95 ; 0x5f 7a3a: d904 bls.n 7a46 else if(u8_p[0] >= 0x80) { 7a3c: 09c0 lsrs r0, r0, #7 7a3e: 0040 lsls r0, r0, #1 7a40: 4770 bx lr if(src == NULL) return img_src_type; 7a42: 2003 movs r0, #3 7a44: 4770 bx lr img_src_type = LV_IMG_SRC_FILE; /*If it's an ASCII character then it's file name*/ 7a46: 2001 movs r0, #1 } 7a48: 4770 bx lr 00007a4a : */ static uint8_t hex_char_to_num(char hex) { uint8_t result = 0; if(hex >= '0' && hex <= '9') { 7a4a: f1a0 0330 sub.w r3, r0, #48 ; 0x30 7a4e: b2db uxtb r3, r3 7a50: 2b09 cmp r3, #9 7a52: d90a bls.n 7a6a result = hex - '0'; } else { if(hex >= 'a') hex -= 'a' - 'A'; /*Convert to upper case*/ 7a54: 2860 cmp r0, #96 ; 0x60 7a56: bf84 itt hi 7a58: 3820 subhi r0, #32 7a5a: b2c0 uxtbhi r0, r0 switch(hex) { 7a5c: f1a0 0341 sub.w r3, r0, #65 ; 0x41 7a60: 2b05 cmp r3, #5 7a62: bf9a itte ls 7a64: 3837 subls r0, #55 ; 0x37 7a66: b2c3 uxtbls r3, r0 { 7a68: 2300 movhi r3, #0 break; } } return result; } 7a6a: 4618 mov r0, r3 7a6c: 4770 bx lr ... 00007a70 : { 7a70: b510 push {r4, lr} _lv_memset_00(dsc, sizeof(lv_draw_label_dsc_t)); 7a72: 4b09 ldr r3, [pc, #36] ; (7a98 ) { 7a74: 4604 mov r4, r0 _lv_memset_00(dsc, sizeof(lv_draw_label_dsc_t)); 7a76: 211c movs r1, #28 7a78: 4798 blx r3 dsc->opa = LV_OPA_COVER; 7a7a: 23ff movs r3, #255 ; 0xff 7a7c: 7223 strb r3, [r4, #8] dsc->font = LV_THEME_DEFAULT_FONT_NORMAL; 7a7e: 4b07 ldr r3, [pc, #28] ; (7a9c ) 7a80: 6063 str r3, [r4, #4] dsc->sel_start = LV_DRAW_LABEL_NO_TXT_SEL; 7a82: f64f 73ff movw r3, #65535 ; 0xffff 7a86: 81e3 strh r3, [r4, #14] dsc->sel_end = LV_DRAW_LABEL_NO_TXT_SEL; 7a88: 8223 strh r3, [r4, #16] dsc->color = LV_COLOR_BLACK; 7a8a: f44f 13f8 mov.w r3, #2031616 ; 0x1f0000 7a8e: 6023 str r3, [r4, #0] dsc->bidi_dir = LV_BIDI_DIR_LTR; 7a90: 2300 movs r3, #0 7a92: 75a3 strb r3, [r4, #22] } 7a94: bd10 pop {r4, pc} 7a96: bf00 nop 7a98: 0000f251 .word 0x0000f251 7a9c: 20000004 .word 0x20000004 00007aa0 : { 7aa0: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} 7aa4: ed2d 8b04 vpush {d8-d9} 7aa8: b0d1 sub sp, #324 ; 0x144 7aaa: 468a mov sl, r1 7aac: 930a str r3, [sp, #40] ; 0x28 7aae: 2300 movs r3, #0 7ab0: 9321 str r3, [sp, #132] ; 0x84 if(dsc->opa <= LV_OPA_MIN) return; 7ab2: 7a13 ldrb r3, [r2, #8] { 7ab4: 9c5e ldr r4, [sp, #376] ; 0x178 7ab6: 9005 str r0, [sp, #20] if(dsc->opa <= LV_OPA_MIN) return; 7ab8: 2b05 cmp r3, #5 { 7aba: 4693 mov fp, r2 if(dsc->opa <= LV_OPA_MIN) return; 7abc: f240 80db bls.w 7c76 const lv_font_t * font = dsc->font; 7ac0: 6853 ldr r3, [r2, #4] 7ac2: ee08 3a10 vmov s16, r3 if(txt[0] == '\0') return; 7ac6: 9b0a ldr r3, [sp, #40] ; 0x28 7ac8: 781b ldrb r3, [r3, #0] 7aca: 2b00 cmp r3, #0 7acc: f000 80d3 beq.w 7c76 bool clip_ok = _lv_area_intersect(&clipped_area, coords, mask); 7ad0: 460a mov r2, r1 7ad2: 4b9c ldr r3, [pc, #624] ; (7d44 ) 7ad4: 4601 mov r1, r0 7ad6: a831 add r0, sp, #196 ; 0xc4 7ad8: 4798 blx r3 if(!clip_ok) return; 7ada: 2800 cmp r0, #0 7adc: f000 80cb beq.w 7c76 if((dsc->flag & LV_TXT_FLAG_EXPAND) == 0) { 7ae0: f89b 3017 ldrb.w r3, [fp, #23] 7ae4: 079f lsls r7, r3, #30 7ae6: f100 80cb bmi.w 7c80 7aea: 9b05 ldr r3, [sp, #20] 7aec: 9a05 ldr r2, [sp, #20] 7aee: 889b ldrh r3, [r3, #4] 7af0: 8812 ldrh r2, [r2, #0] 7af2: 3301 adds r3, #1 7af4: 1a9b subs r3, r3, r2 w = lv_area_get_width(coords); 7af6: b21b sxth r3, r3 int32_t line_height_font = lv_font_get_line_height(font); 7af8: ee18 2a10 vmov r2, s16 7afc: f9b2 6008 ldrsh.w r6, [r2, #8] pos.x = coords->x1; 7b00: 9a05 ldr r2, [sp, #20] int32_t line_height = line_height_font + dsc->line_space; 7b02: f9bb 500a ldrsh.w r5, [fp, #10] pos.x = coords->x1; 7b06: f9b2 2000 ldrsh.w r2, [r2] 7b0a: 920b str r2, [sp, #44] ; 0x2c pos.y = coords->y1; 7b0c: 9a05 ldr r2, [sp, #20] 7b0e: f9b2 0002 ldrsh.w r0, [r2, #2] x_ofs = dsc->ofs_x; 7b12: f9bb 2012 ldrsh.w r2, [fp, #18] 7b16: 9224 str r2, [sp, #144] ; 0x90 y_ofs = dsc->ofs_y; 7b18: f9bb 2014 ldrsh.w r2, [fp, #20] pos.y += y_ofs; 7b1c: 1887 adds r7, r0, r2 7b1e: b2b9 uxth r1, r7 7b20: b23f sxth r7, r7 int32_t line_height = line_height_font + dsc->line_space; 7b22: 4435 add r5, r6 pos.y += y_ofs; 7b24: 9706 str r7, [sp, #24] if(hint && y_ofs == 0 && coords->y1 < 0) { 7b26: 2c00 cmp r4, #0 7b28: f000 80bc beq.w 7ca4 7b2c: 2a00 cmp r2, #0 7b2e: f040 80bb bne.w 7ca8 7b32: 2800 cmp r0, #0 7b34: f280 80b9 bge.w 7caa if(LV_MATH_ABS(hint->coord_y - coords->y1) > LV_LABEL_HINT_UPDATE_TH - 2 * line_height) { 7b38: 68a2 ldr r2, [r4, #8] 7b3a: 1a12 subs r2, r2, r0 7b3c: 2a00 cmp r2, #0 7b3e: bfb8 it lt 7b40: 4252 neglt r2, r2 7b42: f5c5 7000 rsb r0, r5, #512 ; 0x200 7b46: ebb2 0f40 cmp.w r2, r0, lsl #1 hint->line_start = -1; 7b4a: bfc4 itt gt 7b4c: f04f 32ff movgt.w r2, #4294967295 ; 0xffffffff 7b50: 6022 strgt r2, [r4, #0] last_line_start = hint->line_start; 7b52: 6822 ldr r2, [r4, #0] if(hint && last_line_start >= 0) { 7b54: 2a00 cmp r2, #0 7b56: f2c0 80a7 blt.w 7ca8 line_start = last_line_start; 7b5a: 9204 str r2, [sp, #16] pos.y += hint->y; 7b5c: 6862 ldr r2, [r4, #4] 7b5e: 440a add r2, r1 7b60: b212 sxth r2, r2 7b62: 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); 7b64: b21b sxth r3, r3 7b66: 9f04 ldr r7, [sp, #16] 7b68: 980a ldr r0, [sp, #40] ; 0x28 7b6a: f9bb 200c ldrsh.w r2, [fp, #12] 7b6e: ee09 3a10 vmov s18, r3 7b72: f89b 3017 ldrb.w r3, [fp, #23] 7b76: 9300 str r3, [sp, #0] 7b78: 4438 add r0, r7 7b7a: ee19 3a10 vmov r3, s18 7b7e: ee18 1a10 vmov r1, s16 7b82: 4f71 ldr r7, [pc, #452] ; (7d48 ) 7b84: 47b8 blx r7 7b86: 9b04 ldr r3, [sp, #16] 7b88: 18c3 adds r3, r0, r3 7b8a: 9307 str r3, [sp, #28] while(pos.y + line_height_font < mask->y1) { 7b8c: 9a06 ldr r2, [sp, #24] 7b8e: f9ba 1002 ldrsh.w r1, [sl, #2] line_end += _lv_txt_get_next_line(&txt[line_start], font, dsc->letter_space, w, dsc->flag); 7b92: f89b 3017 ldrb.w r3, [fp, #23] while(pos.y + line_height_font < mask->y1) { 7b96: 4432 add r2, r6 7b98: 428a cmp r2, r1 line_end += _lv_txt_get_next_line(&txt[line_start], font, dsc->letter_space, w, dsc->flag); 7b9a: 9a0a ldr r2, [sp, #40] ; 0x28 while(pos.y + line_height_font < mask->y1) { 7b9c: f2c0 8087 blt.w 7cae line_width = _lv_txt_get_width(&txt[line_start], line_end - line_start, font, dsc->letter_space, dsc->flag); 7ba0: 9904 ldr r1, [sp, #16] if(dsc->flag & LV_TXT_FLAG_CENTER) { 7ba2: 075e lsls r6, r3, #29 line_width = _lv_txt_get_width(&txt[line_start], line_end - line_start, font, dsc->letter_space, dsc->flag); 7ba4: eb02 0001 add.w r0, r2, r1 if(dsc->flag & LV_TXT_FLAG_CENTER) { 7ba8: f140 80ab bpl.w 7d02 line_width = _lv_txt_get_width(&txt[line_start], line_end - line_start, font, dsc->letter_space, dsc->flag); 7bac: 9a07 ldr r2, [sp, #28] 7bae: 9300 str r3, [sp, #0] 7bb0: 1a51 subs r1, r2, r1 7bb2: f9bb 300c ldrsh.w r3, [fp, #12] 7bb6: 4c65 ldr r4, [pc, #404] ; (7d4c ) 7bb8: ee18 2a10 vmov r2, s16 7bbc: b289 uxth r1, r1 7bbe: 47a0 blx r4 7bc0: 9b05 ldr r3, [sp, #20] 7bc2: 9a05 ldr r2, [sp, #20] 7bc4: 889b ldrh r3, [r3, #4] 7bc6: 8812 ldrh r2, [r2, #0] 7bc8: 3301 adds r3, #1 7bca: 1a9b subs r3, r3, r2 pos.x += (lv_area_get_width(coords) - line_width) / 2; 7bcc: b21b sxth r3, r3 7bce: 1a18 subs r0, r3, r0 7bd0: 9b0b ldr r3, [sp, #44] ; 0x2c 7bd2: eb00 70d0 add.w r0, r0, r0, lsr #31 7bd6: eb03 0060 add.w r0, r3, r0, asr #1 pos.x += lv_area_get_width(coords) - line_width; 7bda: b203 sxth r3, r0 7bdc: 930b str r3, [sp, #44] ; 0x2c lv_opa_t opa = dsc->opa; 7bde: f89b 3008 ldrb.w r3, [fp, #8] 7be2: 9320 str r3, [sp, #128] ; 0x80 uint16_t sel_start = dsc->sel_start; 7be4: f8bb 300e ldrh.w r3, [fp, #14] 7be8: 9310 str r3, [sp, #64] ; 0x40 uint16_t sel_end = dsc->sel_end; 7bea: f8bb 3010 ldrh.w r3, [fp, #16] 7bee: 9311 str r3, [sp, #68] ; 0x44 if(sel_start > sel_end) { 7bf0: e9dd 3210 ldrd r3, r2, [sp, #64] ; 0x40 7bf4: 4293 cmp r3, r2 7bf6: bf88 it hi 7bf8: e9cd 2310 strdhi r2, r3, [sp, #64] ; 0x40 if((dsc->decor & LV_TEXT_DECOR_UNDERLINE) || (dsc->decor & LV_TEXT_DECOR_STRIKETHROUGH)) { 7bfc: f89b 3018 ldrb.w r3, [fp, #24] 7c00: 0799 lsls r1, r3, #30 7c02: d01c beq.n 7c3e lv_draw_line_dsc_init(&line_dsc); 7c04: 4b52 ldr r3, [pc, #328] ; (7d50 ) 7c06: a835 add r0, sp, #212 ; 0xd4 7c08: 4798 blx r3 line_dsc.color = dsc->color; 7c0a: f8bb 3000 ldrh.w r3, [fp] 7c0e: f8ad 30d4 strh.w r3, [sp, #212] ; 0xd4 line_dsc.width = (dsc->font->line_height + 5) / 10; /*+5 for rounding*/ 7c12: f8db 3004 ldr.w r3, [fp, #4] 7c16: f9b3 3008 ldrsh.w r3, [r3, #8] 7c1a: 220a movs r2, #10 7c1c: 3305 adds r3, #5 7c1e: fb93 f3f2 sdiv r3, r3, r2 7c22: f8ad 30d6 strh.w r3, [sp, #214] ; 0xd6 line_dsc.opa = dsc->opa; 7c26: f89b 3008 ldrb.w r3, [fp, #8] line_dsc.blend_mode = dsc->blend_mode; 7c2a: f89b 2019 ldrb.w r2, [fp, #25] line_dsc.opa = dsc->opa; 7c2e: f88d 30dc strb.w r3, [sp, #220] ; 0xdc line_dsc.blend_mode = dsc->blend_mode; 7c32: f89d 30dd ldrb.w r3, [sp, #221] ; 0xdd 7c36: f362 0301 bfi r3, r2, #0, #2 7c3a: f88d 30dd strb.w r3, [sp, #221] ; 0xdd lv_draw_rect_dsc_init(&draw_dsc_sel); 7c3e: 4b45 ldr r3, [pc, #276] ; (7d54 ) 7c40: a83b add r0, sp, #236 ; 0xec 7c42: 4798 blx r3 draw_dsc_sel.bg_color = dsc->sel_color; 7c44: f8bb 3002 ldrh.w r3, [fp, #2] 7c48: f8ad 30ee strh.w r3, [sp, #238] ; 0xee while(txt[line_start] != '\0') { 7c4c: 9b20 ldr r3, [sp, #128] ; 0x80 7c4e: 9c0b ldr r4, [sp, #44] ; 0x2c 7c50: 2bfa cmp r3, #250 ; 0xfa 7c52: bf88 it hi 7c54: 23ff movhi r3, #255 ; 0xff 7c56: 9309 str r3, [sp, #36] ; 0x24 7c58: b2ab uxth r3, r5 7c5a: 9322 str r3, [sp, #136] ; 0x88 7c5c: f8bd 3018 ldrh.w r3, [sp, #24] 7c60: 931e str r3, [sp, #120] ; 0x78 uint16_t par_start = 0; 7c62: 2300 movs r3, #0 7c64: 931d str r3, [sp, #116] ; 0x74 while(txt[line_start] != '\0') { 7c66: 9a04 ldr r2, [sp, #16] 7c68: 9b0a ldr r3, [sp, #40] ; 0x28 7c6a: 4413 add r3, r2 7c6c: 931c str r3, [sp, #112] ; 0x70 7c6e: 9b0a ldr r3, [sp, #40] ; 0x28 7c70: 5c9b ldrb r3, [r3, r2] 7c72: 2b00 cmp r3, #0 7c74: d15e bne.n 7d34 } 7c76: b051 add sp, #324 ; 0x144 7c78: ecbd 8b04 vpop {d8-d9} 7c7c: 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, 7c80: 9302 str r3, [sp, #8] 7c82: f647 4318 movw r3, #31768 ; 0x7c18 7c86: 9301 str r3, [sp, #4] 7c88: f9bb 300a ldrsh.w r3, [fp, #10] 7c8c: 9300 str r3, [sp, #0] 7c8e: f8db 2004 ldr.w r2, [fp, #4] 7c92: f9bb 300c ldrsh.w r3, [fp, #12] 7c96: 990a ldr r1, [sp, #40] ; 0x28 7c98: 4d2f ldr r5, [pc, #188] ; (7d58 ) 7c9a: a83b add r0, sp, #236 ; 0xec 7c9c: 47a8 blx r5 w = p.x; 7c9e: f9bd 30ec ldrsh.w r3, [sp, #236] ; 0xec 7ca2: e729 b.n 7af8 uint32_t line_start = 0; 7ca4: 9404 str r4, [sp, #16] 7ca6: e75d b.n 7b64 7ca8: 2200 movs r2, #0 7caa: 9204 str r2, [sp, #16] 7cac: e75a b.n 7b64 line_end += _lv_txt_get_next_line(&txt[line_start], font, dsc->letter_space, w, dsc->flag); 7cae: 9907 ldr r1, [sp, #28] 7cb0: 9300 str r3, [sp, #0] 7cb2: eb02 0801 add.w r8, r2, r1 7cb6: ee19 3a10 vmov r3, s18 7cba: f9bb 200c ldrsh.w r2, [fp, #12] 7cbe: ee18 1a10 vmov r1, s16 7cc2: 4640 mov r0, r8 7cc4: 47b8 blx r7 7cc6: 9b07 ldr r3, [sp, #28] 7cc8: 4418 add r0, r3 pos.y += line_height; 7cca: 9b06 ldr r3, [sp, #24] 7ccc: 442b add r3, r5 7cce: b21b sxth r3, r3 7cd0: 9306 str r3, [sp, #24] if(hint && pos.y >= -LV_LABEL_HINT_UPDATE_TH && hint->line_start < 0) { 7cd2: b174 cbz r4, 7cf2 7cd4: f513 6f80 cmn.w r3, #1024 ; 0x400 7cd8: db0b blt.n 7cf2 7cda: 6823 ldr r3, [r4, #0] 7cdc: 2b00 cmp r3, #0 7cde: da08 bge.n 7cf2 hint->line_start = line_start; 7ce0: 9b07 ldr r3, [sp, #28] 7ce2: 6023 str r3, [r4, #0] hint->y = pos.y - coords->y1; 7ce4: 9b05 ldr r3, [sp, #20] 7ce6: 9a06 ldr r2, [sp, #24] 7ce8: f9b3 3002 ldrsh.w r3, [r3, #2] 7cec: 1ad2 subs r2, r2, r3 hint->coord_y = coords->y1; 7cee: e9c4 2301 strd r2, r3, [r4, #4] if(txt[line_start] == '\0') return; 7cf2: 9b07 ldr r3, [sp, #28] 7cf4: 9304 str r3, [sp, #16] 7cf6: f898 3000 ldrb.w r3, [r8] 7cfa: 2b00 cmp r3, #0 7cfc: d0bb beq.n 7c76 line_end += _lv_txt_get_next_line(&txt[line_start], font, dsc->letter_space, w, dsc->flag); 7cfe: 9007 str r0, [sp, #28] 7d00: e744 b.n 7b8c else if(dsc->flag & LV_TXT_FLAG_RIGHT) { 7d02: 071c lsls r4, r3, #28 7d04: f57f af6b bpl.w 7bde line_width = _lv_txt_get_width(&txt[line_start], line_end - line_start, font, dsc->letter_space, dsc->flag); 7d08: 9a07 ldr r2, [sp, #28] 7d0a: 9904 ldr r1, [sp, #16] 7d0c: 9300 str r3, [sp, #0] 7d0e: 1a51 subs r1, r2, r1 7d10: f9bb 300c ldrsh.w r3, [fp, #12] 7d14: 4c0d ldr r4, [pc, #52] ; (7d4c ) 7d16: ee18 2a10 vmov r2, s16 7d1a: b289 uxth r1, r1 7d1c: 47a0 blx r4 7d1e: 9b05 ldr r3, [sp, #20] 7d20: 9a05 ldr r2, [sp, #20] 7d22: 889b ldrh r3, [r3, #4] 7d24: 8812 ldrh r2, [r2, #0] 7d26: 3301 adds r3, #1 7d28: 1a9b subs r3, r3, r2 pos.x += lv_area_get_width(coords) - line_width; 7d2a: b21b sxth r3, r3 7d2c: 1a18 subs r0, r3, r0 7d2e: 9b0b ldr r3, [sp, #44] ; 0x2c 7d30: 4418 add r0, r3 7d32: e752 b.n 7bda pos.x += x_ofs; 7d34: 9b24 ldr r3, [sp, #144] ; 0x90 7d36: 441c add r4, r3 7d38: b223 sxth r3, r4 7d3a: 930c str r3, [sp, #48] ; 0x30 i = 0; 7d3c: 2300 movs r3, #0 7d3e: 9330 str r3, [sp, #192] ; 0xc0 cmd_state = CMD_STATE_WAIT; 7d40: 9308 str r3, [sp, #32] 7d42: e0c2 b.n 7eca 7d44: 0000e0b9 .word 0x0000e0b9 7d48: 000101fd .word 0x000101fd 7d4c: 00010155 .word 0x00010155 7d50: 0000880d .word 0x0000880d 7d54: 00009dcd .word 0x00009dcd 7d58: 000103d5 .word 0x000103d5 if(sel_start != 0xFFFF && sel_end != 0xFFFF) { 7d5c: 9a10 ldr r2, [sp, #64] ; 0x40 7d5e: f64f 73ff movw r3, #65535 ; 0xffff 7d62: 429a cmp r2, r3 7d64: d024 beq.n 7db0 7d66: 9a11 ldr r2, [sp, #68] ; 0x44 7d68: 429a cmp r2, r3 7d6a: d021 beq.n 7db0 logical_char_pos = _lv_txt_encoded_get_char_id(txt, line_start + i); 7d6c: 9a04 ldr r2, [sp, #16] 7d6e: 4ba3 ldr r3, [pc, #652] ; (7ffc ) 7d70: 980a ldr r0, [sp, #40] ; 0x28 7d72: 681b ldr r3, [r3, #0] 7d74: 4411 add r1, r2 7d76: 4798 blx r3 7d78: b286 uxth r6, r0 uint32_t letter = _lv_txt_encoded_next(bidi_txt, &i); 7d7a: 4ca1 ldr r4, [pc, #644] ; (8000 ) 7d7c: 981c ldr r0, [sp, #112] ; 0x70 7d7e: 6823 ldr r3, [r4, #0] 7d80: a930 add r1, sp, #192 ; 0xc0 7d82: 4798 blx r3 uint32_t letter_next = _lv_txt_encoded_next(&bidi_txt[i], NULL); 7d84: 9a1c ldr r2, [sp, #112] ; 0x70 7d86: 6823 ldr r3, [r4, #0] uint32_t letter = _lv_txt_encoded_next(bidi_txt, &i); 7d88: 4605 mov r5, r0 uint32_t letter_next = _lv_txt_encoded_next(&bidi_txt[i], NULL); 7d8a: 9830 ldr r0, [sp, #192] ; 0xc0 7d8c: 2100 movs r1, #0 7d8e: 4410 add r0, r2 7d90: 4798 blx r3 7d92: f89b 3017 ldrb.w r3, [fp, #23] if((dsc->flag & LV_TXT_FLAG_RECOLOR) != 0) { 7d96: f013 0301 ands.w r3, r3, #1 uint32_t letter_next = _lv_txt_encoded_next(&bidi_txt[i], NULL); 7d9a: 4602 mov r2, r0 if((dsc->flag & LV_TXT_FLAG_RECOLOR) != 0) { 7d9c: f000 8125 beq.w 7fea if(letter == (uint32_t)LV_TXT_COLOR_CMD[0]) { 7da0: 2d23 cmp r5, #35 ; 0x23 7da2: d10f bne.n 7dc4 if(cmd_state == CMD_STATE_WAIT) { /*Start char*/ 7da4: 9908 ldr r1, [sp, #32] 7da6: b929 cbnz r1, 7db4 par_start = i; 7da8: f8bd 20c0 ldrh.w r2, [sp, #192] ; 0xc0 7dac: 921d str r2, [sp, #116] ; 0x74 continue; 7dae: e7c7 b.n 7d40 uint16_t logical_char_pos = 0; 7db0: 2600 movs r6, #0 7db2: e7e2 b.n 7d7a else if(cmd_state == CMD_STATE_PAR) { /*Other start char in parameter escaped cmd. char */ 7db4: 9b08 ldr r3, [sp, #32] 7db6: 2b01 cmp r3, #1 7db8: d045 beq.n 7e46 else if(cmd_state == CMD_STATE_IN) { /*Command end */ 7dba: 2b02 cmp r3, #2 7dbc: f040 8118 bne.w 7ff0 cmd_state = CMD_STATE_WAIT; 7dc0: 2300 movs r3, #0 7dc2: e7bd b.n 7d40 if(cmd_state == CMD_STATE_PAR) { 7dc4: 9b08 ldr r3, [sp, #32] 7dc6: 2b01 cmp r3, #1 7dc8: f040 810f bne.w 7fea if(letter == ' ') { 7dcc: 2d20 cmp r5, #32 7dce: d17c bne.n 7eca if(i - par_start == LABEL_RECOLOR_PAR_LENGTH + 1) { 7dd0: 9b30 ldr r3, [sp, #192] ; 0xc0 7dd2: 9a1d ldr r2, [sp, #116] ; 0x74 7dd4: 1a9b subs r3, r3, r2 7dd6: 2b07 cmp r3, #7 7dd8: d132 bne.n 7e40 _lv_memcpy_small(buf, &bidi_txt[par_start], LABEL_RECOLOR_PAR_LENGTH); 7dda: 9b1c ldr r3, [sp, #112] ; 0x70 7ddc: 991d ldr r1, [sp, #116] ; 0x74 7dde: 189a adds r2, r3, r2 7de0: 5858 ldr r0, [r3, r1] 7de2: 8893 ldrh r3, [r2, #4] 7de4: f8ad 30e4 strh.w r3, [sp, #228] ; 0xe4 r = (hex_char_to_num(buf[0]) << 4) + hex_char_to_num(buf[1]); 7de8: 4a86 ldr r2, [pc, #536] ; (8004 ) 7dea: 9038 str r0, [sp, #224] ; 0xe0 7dec: f3c0 4507 ubfx r5, r0, #16, #8 7df0: f3c0 6407 ubfx r4, r0, #24, #8 7df4: f3c0 2607 ubfx r6, r0, #8, #8 7df8: b2c0 uxtb r0, r0 7dfa: 4790 blx r2 7dfc: 4601 mov r1, r0 7dfe: b2f0 uxtb r0, r6 7e00: 4790 blx r2 7e02: eb00 1101 add.w r1, r0, r1, lsl #4 g = (hex_char_to_num(buf[2]) << 4) + hex_char_to_num(buf[3]); 7e06: b2e8 uxtb r0, r5 7e08: 4790 blx r2 7e0a: 4605 mov r5, r0 7e0c: b2e0 uxtb r0, r4 7e0e: 4790 blx r2 7e10: eb00 1405 add.w r4, r0, r5, lsl #4 b = (hex_char_to_num(buf[4]) << 4) + hex_char_to_num(buf[5]); 7e14: f89d 00e4 ldrb.w r0, [sp, #228] ; 0xe4 7e18: 4790 blx r2 7e1a: 4605 mov r5, r0 7e1c: f89d 00e5 ldrb.w r0, [sp, #229] ; 0xe5 7e20: 4790 blx r2 7e22: eb00 1005 add.w r0, r0, r5, lsl #4 7e26: f3c0 00c4 ubfx r0, r0, #3, #5 7e2a: f3c4 0485 ubfx r4, r4, #2, #6 7e2e: ea40 1044 orr.w r0, r0, r4, lsl #5 7e32: f3c1 01c4 ubfx r1, r1, #3, #5 7e36: ea40 23c1 orr.w r3, r0, r1, lsl #11 recolor.full = dsc->color.full; 7e3a: 9321 str r3, [sp, #132] ; 0x84 cmd_state = CMD_STATE_IN; /*After the parameter the text is in the command*/ 7e3c: 2302 movs r3, #2 7e3e: e77f b.n 7d40 recolor.full = dsc->color.full; 7e40: f8bb 3000 ldrh.w r3, [fp] 7e44: e7f9 b.n 7e3a cmd_state = CMD_STATE_WAIT; 7e46: 2300 movs r3, #0 lv_color_t color = dsc->color; 7e48: f8bb 4000 ldrh.w r4, [fp] cmd_state = CMD_STATE_WAIT; 7e4c: 9308 str r3, [sp, #32] letter_w = lv_font_get_glyph_width(font, letter, letter_next); 7e4e: 4b6e ldr r3, [pc, #440] ; (8008 ) 7e50: ee18 0a10 vmov r0, s16 7e54: 4629 mov r1, r5 7e56: 4798 blx r3 if(sel_start != 0xFFFF && sel_end != 0xFFFF) { 7e58: 9a10 ldr r2, [sp, #64] ; 0x40 letter_w = lv_font_get_glyph_width(font, letter, letter_next); 7e5a: 901f str r0, [sp, #124] ; 0x7c if(sel_start != 0xFFFF && sel_end != 0xFFFF) { 7e5c: f64f 73ff movw r3, #65535 ; 0xffff 7e60: 429a cmp r2, r3 7e62: d020 beq.n 7ea6 7e64: 9a11 ldr r2, [sp, #68] ; 0x44 7e66: 429a cmp r2, r3 7e68: d01d beq.n 7ea6 if(logical_char_pos >= sel_start && logical_char_pos < sel_end) { 7e6a: 9b10 ldr r3, [sp, #64] ; 0x40 7e6c: 42b3 cmp r3, r6 7e6e: d81a bhi.n 7ea6 7e70: 42b2 cmp r2, r6 7e72: d918 bls.n 7ea6 sel_coords.x1 = pos.x; 7e74: 9b0c ldr r3, [sp, #48] ; 0x30 7e76: f8ad 30e0 strh.w r3, [sp, #224] ; 0xe0 sel_coords.y1 = pos.y; 7e7a: 9b06 ldr r3, [sp, #24] 7e7c: f8ad 30e2 strh.w r3, [sp, #226] ; 0xe2 sel_coords.x2 = pos.x + letter_w + dsc->letter_space - 1; 7e80: f8bb 300c ldrh.w r3, [fp, #12] 7e84: 9a0c ldr r2, [sp, #48] ; 0x30 7e86: 3b01 subs r3, #1 7e88: 4413 add r3, r2 7e8a: 4403 add r3, r0 7e8c: f8ad 30e4 strh.w r3, [sp, #228] ; 0xe4 sel_coords.y2 = pos.y + line_height - 1; 7e90: 9b22 ldr r3, [sp, #136] ; 0x88 7e92: 9a06 ldr r2, [sp, #24] 7e94: 3b01 subs r3, #1 7e96: 4413 add r3, r2 7e98: f8ad 30e6 strh.w r3, [sp, #230] ; 0xe6 lv_draw_rect(&sel_coords, mask, &draw_dsc_sel); 7e9c: aa3b add r2, sp, #236 ; 0xec 7e9e: 4b5b ldr r3, [pc, #364] ; (800c ) 7ea0: 4651 mov r1, sl 7ea2: a838 add r0, sp, #224 ; 0xe0 7ea4: 4798 blx r3 lv_draw_letter(&pos, mask, font, letter, color, opa, dsc->blend_mode); 7ea6: f89b 3019 ldrb.w r3, [fp, #25] 7eaa: 931b str r3, [sp, #108] ; 0x6c if(opa < LV_OPA_MIN) return; 7eac: 9b20 ldr r3, [sp, #128] ; 0x80 7eae: 2b04 cmp r3, #4 7eb0: f200 8485 bhi.w 87be if(letter_w > 0) { 7eb4: 9b1f ldr r3, [sp, #124] ; 0x7c 7eb6: b143 cbz r3, 7eca pos.x += letter_w + dsc->letter_space; 7eb8: f8bb 300c ldrh.w r3, [fp, #12] 7ebc: 9a0c ldr r2, [sp, #48] ; 0x30 7ebe: 441a add r2, r3 7ec0: 4613 mov r3, r2 7ec2: 9a1f ldr r2, [sp, #124] ; 0x7c 7ec4: 441a add r2, r3 7ec6: b213 sxth r3, r2 7ec8: 930c str r3, [sp, #48] ; 0x30 while(i < line_end - line_start) { 7eca: 9b07 ldr r3, [sp, #28] 7ecc: 9a04 ldr r2, [sp, #16] 7ece: 9930 ldr r1, [sp, #192] ; 0xc0 7ed0: 1a9b subs r3, r3, r2 7ed2: 428b cmp r3, r1 7ed4: f63f af42 bhi.w 7d5c if(dsc->decor & LV_TEXT_DECOR_STRIKETHROUGH) { 7ed8: f89b 3018 ldrb.w r3, [fp, #24] 7edc: 079d lsls r5, r3, #30 7ede: d51f bpl.n 7f20 p1.x = pos_x_start; 7ee0: 9b0b ldr r3, [sp, #44] ; 0x2c 7ee2: f8ad 30cc strh.w r3, [sp, #204] ; 0xcc p1.y = pos.y + (dsc->font->line_height / 2) + line_dsc.width / 2; 7ee6: f8db 3004 ldr.w r3, [fp, #4] lv_draw_line(&p1, &p2, mask, &line_dsc); 7eea: 4c49 ldr r4, [pc, #292] ; (8010 ) p1.y = pos.y + (dsc->font->line_height / 2) + line_dsc.width / 2; 7eec: f9b3 3008 ldrsh.w r3, [r3, #8] 7ef0: eb03 72d3 add.w r2, r3, r3, lsr #31 7ef4: f9bd 30d6 ldrsh.w r3, [sp, #214] ; 0xd6 7ef8: eb03 73d3 add.w r3, r3, r3, lsr #31 7efc: 105b asrs r3, r3, #1 7efe: eb03 0362 add.w r3, r3, r2, asr #1 7f02: 9a1e ldr r2, [sp, #120] ; 0x78 7f04: 4413 add r3, r2 7f06: b21b sxth r3, r3 p2.x = pos.x; 7f08: 9a0c ldr r2, [sp, #48] ; 0x30 p1.y = pos.y + (dsc->font->line_height / 2) + line_dsc.width / 2; 7f0a: f8ad 30ce strh.w r3, [sp, #206] ; 0xce p2.x = pos.x; 7f0e: f8ad 20e0 strh.w r2, [sp, #224] ; 0xe0 p2.y = p1.y; 7f12: f8ad 30e2 strh.w r3, [sp, #226] ; 0xe2 lv_draw_line(&p1, &p2, mask, &line_dsc); 7f16: 4652 mov r2, sl 7f18: ab35 add r3, sp, #212 ; 0xd4 7f1a: a938 add r1, sp, #224 ; 0xe0 7f1c: a833 add r0, sp, #204 ; 0xcc 7f1e: 47a0 blx r4 if(dsc->decor & LV_TEXT_DECOR_UNDERLINE) { 7f20: f89b 3018 ldrb.w r3, [fp, #24] 7f24: 07dc lsls r4, r3, #31 7f26: d51e bpl.n 7f66 p1.x = pos_x_start; 7f28: 9b0b ldr r3, [sp, #44] ; 0x2c 7f2a: 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; 7f2e: f9bd 30d6 ldrsh.w r3, [sp, #214] ; 0xd6 7f32: f8db 2004 ldr.w r2, [fp, #4] lv_draw_line(&p1, &p2, mask, &line_dsc); 7f36: 4c36 ldr r4, [pc, #216] ; (8010 ) p1.y = pos.y + dsc->font->line_height - dsc->font->base_line + line_dsc.width / 2 + 1; 7f38: 8911 ldrh r1, [r2, #8] 7f3a: 8952 ldrh r2, [r2, #10] 7f3c: eb03 73d3 add.w r3, r3, r3, lsr #31 7f40: 105b asrs r3, r3, #1 7f42: 3301 adds r3, #1 7f44: 440b add r3, r1 7f46: 1a9b subs r3, r3, r2 7f48: 9a1e ldr r2, [sp, #120] ; 0x78 7f4a: 4413 add r3, r2 7f4c: b21b sxth r3, r3 p2.x = pos.x; 7f4e: 9a0c ldr r2, [sp, #48] ; 0x30 p1.y = pos.y + dsc->font->line_height - dsc->font->base_line + line_dsc.width / 2 + 1; 7f50: f8ad 30ce strh.w r3, [sp, #206] ; 0xce p2.x = pos.x; 7f54: f8ad 20e0 strh.w r2, [sp, #224] ; 0xe0 p2.y = p1.y; 7f58: f8ad 30e2 strh.w r3, [sp, #226] ; 0xe2 lv_draw_line(&p1, &p2, mask, &line_dsc); 7f5c: 4652 mov r2, sl 7f5e: ab35 add r3, sp, #212 ; 0xd4 7f60: a938 add r1, sp, #224 ; 0xe0 7f62: a833 add r0, sp, #204 ; 0xcc 7f64: 47a0 blx r4 line_end += _lv_txt_get_next_line(&txt[line_start], font, dsc->letter_space, w, dsc->flag); 7f66: 9b0a ldr r3, [sp, #40] ; 0x28 7f68: 9a07 ldr r2, [sp, #28] 7f6a: 4c2a ldr r4, [pc, #168] ; (8014 ) 7f6c: 189e adds r6, r3, r2 7f6e: f89b 3017 ldrb.w r3, [fp, #23] 7f72: 9300 str r3, [sp, #0] 7f74: ee18 1a10 vmov r1, s16 7f78: ee19 3a10 vmov r3, s18 7f7c: f9bb 200c ldrsh.w r2, [fp, #12] 7f80: 4630 mov r0, r6 7f82: 47a0 blx r4 7f84: 9b07 ldr r3, [sp, #28] 7f86: 18c5 adds r5, r0, r3 pos.x = coords->x1; 7f88: 9b05 ldr r3, [sp, #20] 7f8a: f9b3 4000 ldrsh.w r4, [r3] if(dsc->flag & LV_TXT_FLAG_CENTER) { 7f8e: f89b 3017 ldrb.w r3, [fp, #23] line_end += _lv_txt_get_next_line(&txt[line_start], font, dsc->letter_space, w, dsc->flag); 7f92: 4601 mov r1, r0 if(dsc->flag & LV_TXT_FLAG_CENTER) { 7f94: 0758 lsls r0, r3, #29 7f96: f140 83fd bpl.w 8794 _lv_txt_get_width(&txt[line_start], line_end - line_start, font, dsc->letter_space, dsc->flag); 7f9a: ee18 2a10 vmov r2, s16 7f9e: 9300 str r3, [sp, #0] 7fa0: 4630 mov r0, r6 7fa2: f9bb 300c ldrsh.w r3, [fp, #12] 7fa6: 4e1c ldr r6, [pc, #112] ; (8018 ) 7fa8: 47b0 blx r6 7faa: 9b05 ldr r3, [sp, #20] 7fac: 9a05 ldr r2, [sp, #20] 7fae: 889b ldrh r3, [r3, #4] 7fb0: 8812 ldrh r2, [r2, #0] 7fb2: 3301 adds r3, #1 7fb4: 1a9b subs r3, r3, r2 pos.x += (lv_area_get_width(coords) - line_width) / 2; 7fb6: b21b sxth r3, r3 7fb8: 1a18 subs r0, r3, r0 7fba: eb00 70d0 add.w r0, r0, r0, lsr #31 7fbe: eb04 0060 add.w r0, r4, r0, asr #1 pos.x += lv_area_get_width(coords) - line_width; 7fc2: b204 sxth r4, r0 pos.y += line_height; 7fc4: 9a22 ldr r2, [sp, #136] ; 0x88 7fc6: 9b06 ldr r3, [sp, #24] 7fc8: 4413 add r3, r2 7fca: b21b sxth r3, r3 7fcc: 9306 str r3, [sp, #24] if(pos.y > mask->y2) return; 7fce: 9b1e ldr r3, [sp, #120] ; 0x78 7fd0: 4413 add r3, r2 7fd2: b29b uxth r3, r3 7fd4: 931e str r3, [sp, #120] ; 0x78 line_start = line_end; 7fd6: 9b07 ldr r3, [sp, #28] if(pos.y > mask->y2) return; 7fd8: 9a06 ldr r2, [sp, #24] line_start = line_end; 7fda: 9304 str r3, [sp, #16] if(pos.y > mask->y2) return; 7fdc: f9ba 3006 ldrsh.w r3, [sl, #6] 7fe0: 4293 cmp r3, r2 7fe2: f6ff ae48 blt.w 7c76 line_end += _lv_txt_get_next_line(&txt[line_start], font, dsc->letter_space, w, dsc->flag); 7fe6: 9507 str r5, [sp, #28] 7fe8: e63d b.n 7c66 if(cmd_state == CMD_STATE_IN) color = recolor; 7fea: 9b08 ldr r3, [sp, #32] 7fec: 2b02 cmp r3, #2 7fee: d002 beq.n 7ff6 lv_color_t color = dsc->color; 7ff0: f8bb 4000 ldrh.w r4, [fp] 7ff4: e72b b.n 7e4e 7ff6: 9c21 ldr r4, [sp, #132] ; 0x84 7ff8: e729 b.n 7e4e 7ffa: bf00 nop 7ffc: 20000058 .word 0x20000058 8000: 2000004c .word 0x2000004c 8004: 00007a4b .word 0x00007a4b 8008: 0000d3a1 .word 0x0000d3a1 800c: 00009e19 .word 0x00009e19 8010: 00008829 .word 0x00008829 8014: 000101fd .word 0x000101fd 8018: 00010155 .word 0x00010155 if((g.box_h == 0) && (g.box_w == 0)) return; 801c: f8bd 20e4 ldrh.w r2, [sp, #228] ; 0xe4 8020: f8bd 10e2 ldrh.w r1, [sp, #226] ; 0xe2 8024: ea52 0301 orrs.w r3, r2, r1 8028: f43f af44 beq.w 7eb4 int32_t pos_x = pos_p->x + g.ofs_x; 802c: 980c ldr r0, [sp, #48] ; 0x30 802e: f9bd 30e6 ldrsh.w r3, [sp, #230] ; 0xe6 8032: 4403 add r3, r0 8034: 930d str r3, [sp, #52] ; 0x34 if(pos_x + g.box_w < clip_area->x1 || 8036: 9f0d ldr r7, [sp, #52] ; 0x34 8038: 4439 add r1, r7 803a: 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; 803e: ee18 0a10 vmov r0, s16 8042: ee18 3a10 vmov r3, s16 if(pos_x + g.box_w < clip_area->x1 || 8046: 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; 8048: f9b0 600a ldrsh.w r6, [r0, #10] 804c: f9b3 3008 ldrsh.w r3, [r3, #8] 8050: f9bd 00e8 ldrsh.w r0, [sp, #232] ; 0xe8 if(pos_x + g.box_w < clip_area->x1 || 8054: f6ff af2e blt.w 7eb4 pos_x > clip_area->x2 || 8058: f9ba 1004 ldrsh.w r1, [sl, #4] if(pos_x + g.box_w < clip_area->x1 || 805c: 9f0d ldr r7, [sp, #52] ; 0x34 805e: 428f cmp r7, r1 8060: f73f af28 bgt.w 7eb4 int32_t pos_y = pos_p->y + (font_p->line_height - font_p->base_line) - g.box_h - g.ofs_y; 8064: 9906 ldr r1, [sp, #24] 8066: 1b9b subs r3, r3, r6 8068: 440b add r3, r1 806a: 1a9b subs r3, r3, r2 806c: 1a1b subs r3, r3, r0 pos_y + g.box_h < clip_area->y1 || 806e: 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; 8070: 9316 str r3, [sp, #88] ; 0x58 pos_y + g.box_h < clip_area->y1 || 8072: f9ba 3002 ldrsh.w r3, [sl, #2] pos_x > clip_area->x2 || 8076: 429a cmp r2, r3 8078: f6ff af1c blt.w 7eb4 pos_y > clip_area->y2) { 807c: f9ba 3006 ldrsh.w r3, [sl, #6] pos_y + g.box_h < clip_area->y1 || 8080: 9a16 ldr r2, [sp, #88] ; 0x58 8082: 429a cmp r2, r3 8084: f73f af16 bgt.w 7eb4 const uint8_t * map_p = lv_font_get_glyph_bitmap(font_p, letter); 8088: ee18 0a10 vmov r0, s16 808c: 4ba9 ldr r3, [pc, #676] ; (8334 ) 808e: 4629 mov r1, r5 8090: 4798 blx r3 if(map_p == NULL) { 8092: 4607 mov r7, r0 8094: b928 cbnz r0, 80a2 LV_LOG_WARN("lv_draw_letter: character's bitmap not found"); 8096: 4ba8 ldr r3, [pc, #672] ; (8338 ) 8098: 9300 str r3, [sp, #0] 809a: f240 12b7 movw r2, #439 ; 0x1b7 809e: 4ba7 ldr r3, [pc, #668] ; (833c ) 80a0: e39f b.n 87e2 if(font_p->subpx) { 80a2: ee18 3a10 vmov r3, s16 80a6: 7b1a ldrb r2, [r3, #12] draw_letter_subpx(pos_x, pos_y, &g, clip_area, map_p, color, opa, blend_mode); 80a8: f9bd 6034 ldrsh.w r6, [sp, #52] ; 0x34 80ac: f9bd 8058 ldrsh.w r8, [sp, #88] ; 0x58 uint32_t bpp = g->bpp; 80b0: f89d 30ea ldrb.w r3, [sp, #234] ; 0xea if(font_p->subpx) { 80b4: 0792 lsls r2, r2, #30 80b6: f000 81fa beq.w 84ae draw_letter_subpx(pos_x, pos_y, &g, clip_area, map_p, color, opa, blend_mode); 80ba: f004 021f and.w r2, r4, #31 80be: 922a str r2, [sp, #168] ; 0xa8 80c0: f3c4 1245 ubfx r2, r4, #5, #6 80c4: 9226 str r2, [sp, #152] ; 0x98 if(bpp == 3) bpp = 4; 80c6: 2b03 cmp r3, #3 80c8: f3c4 22c4 ubfx r2, r4, #11, #5 80cc: 9225 str r2, [sp, #148] ; 0x94 80ce: f000 80e6 beq.w 829e switch(bpp) { 80d2: 3b01 subs r3, #1 80d4: 2b07 cmp r3, #7 80d6: f200 80d7 bhi.w 8288 80da: e8df f013 tbh [pc, r3, lsl #1] 80de: 00db .short 0x00db 80e0: 00d50008 .word 0x00d50008 80e4: 00d500e0 .word 0x00d500e0 80e8: 00d500d5 .word 0x00d500d5 80ec: 00d0 .short 0x00d0 80ee: 23c0 movs r3, #192 ; 0xc0 80f0: 9313 str r3, [sp, #76] ; 0x4c 80f2: 4b93 ldr r3, [pc, #588] ; (8340 ) 80f4: 2402 movs r4, #2 bpp_opa_table = _lv_bpp4_opa_table; 80f6: 9314 str r3, [sp, #80] ; 0x50 int32_t box_w = g->box_w; 80f8: f8bd 30e2 ldrh.w r3, [sp, #226] ; 0xe2 80fc: 9317 str r3, [sp, #92] ; 0x5c int32_t width_bit = box_w * bpp; /*Letter width in bits*/ 80fe: fb04 f103 mul.w r1, r4, r3 int32_t col_start = pos_x >= clip_area->x1 ? 0 : (clip_area->x1 - pos_x) * 3; 8102: 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; 8106: 9d17 ldr r5, [sp, #92] ; 0x5c int32_t box_h = g->box_h; 8108: f8bd 20e4 ldrh.w r2, [sp, #228] ; 0xe4 int32_t col_start = pos_x >= clip_area->x1 ? 0 : (clip_area->x1 - pos_x) * 3; 810c: 42b3 cmp r3, r6 810e: bfc6 itte gt 8110: 1b9b subgt r3, r3, r6 8112: eb03 0343 addgt.w r3, r3, r3, lsl #1 8116: 2300 movle r3, #0 8118: 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; 811a: f9ba 3004 ldrsh.w r3, [sl, #4] 811e: 2003 movs r0, #3 8120: fbb5 f0f0 udiv r0, r5, r0 8124: 4430 add r0, r6 8126: 4298 cmp r0, r3 8128: bfc5 ittet gt 812a: 1b9b subgt r3, r3, r6 812c: 3301 addgt r3, #1 812e: 9b17 ldrle r3, [sp, #92] ; 0x5c 8130: eb03 0343 addgt.w r3, r3, r3, lsl #1 8134: 9319 str r3, [sp, #100] ; 0x64 int32_t row_start = pos_y >= clip_area->y1 ? 0 : clip_area->y1 - pos_y; 8136: f9ba 3002 ldrsh.w r3, [sl, #2] 813a: 4543 cmp r3, r8 813c: bfcc ite gt 813e: eba3 0308 subgt.w r3, r3, r8 8142: 2300 movle r3, #0 8144: 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; 8146: f9ba 3006 ldrsh.w r3, [sl, #6] 814a: eb02 0008 add.w r0, r2, r8 814e: 4298 cmp r0, r3 8150: bfc2 ittt gt 8152: eba3 0308 subgt.w r3, r3, r8 8156: 3301 addgt r3, #1 8158: 9323 strgt r3, [sp, #140] ; 0x8c int32_t bit_ofs = (row_start * width_bit) + (col_start * bpp); 815a: 9b12 ldr r3, [sp, #72] ; 0x48 815c: 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; 815e: bfd8 it le 8160: 9223 strle r2, [sp, #140] ; 0x8c int32_t bit_ofs = (row_start * width_bit) + (col_start * bpp); 8162: 4363 muls r3, r4 8164: fb00 3301 mla r3, r0, r1, r3 map_p += bit_ofs >> 3; 8168: eb07 01e3 add.w r1, r7, r3, asr #3 col_bit = bit_ofs & 0x7; /* "& 0x7" equals to "% 8" just faster */ 816c: f003 0307 and.w r3, r3, #7 8170: 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; 8172: 9b17 ldr r3, [sp, #92] ; 0x5c lv_opa_t * mask_buf = _lv_mem_buf_get(mask_buf_size); 8174: 4f73 ldr r7, [pc, #460] ; (8344 ) map_p += bit_ofs >> 3; 8176: 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; 8178: 4353 muls r3, r2 817a: f5b3 7ff0 cmp.w r3, #480 ; 0x1e0 817e: bfa8 it ge 8180: f44f 73f0 movge.w r3, #480 ; 0x1e0 lv_opa_t * mask_buf = _lv_mem_buf_get(mask_buf_size); 8184: 4618 mov r0, r3 8186: 9318 str r3, [sp, #96] ; 0x60 8188: 47b8 blx r7 lv_color_t * color_buf = _lv_mem_buf_get(mask_buf_size * sizeof(lv_color_t)); 818a: 9b18 ldr r3, [sp, #96] ; 0x60 lv_opa_t * mask_buf = _lv_mem_buf_get(mask_buf_size); 818c: 4605 mov r5, r0 lv_color_t * color_buf = _lv_mem_buf_get(mask_buf_size * sizeof(lv_color_t)); 818e: 0058 lsls r0, r3, #1 8190: 47b8 blx r7 lv_disp_t * disp = _lv_refr_get_disp_refreshing(); 8192: 4b6d ldr r3, [pc, #436] ; (8348 ) lv_color_t * color_buf = _lv_mem_buf_get(mask_buf_size * sizeof(lv_color_t)); 8194: ee08 0a90 vmov s17, r0 lv_disp_t * disp = _lv_refr_get_disp_refreshing(); 8198: 4798 blx r3 lv_disp_buf_t * vdb = lv_disp_get_buf(disp); 819a: 4b6c ldr r3, [pc, #432] ; (834c ) 819c: 4798 blx r3 819e: f8b0 9014 ldrh.w r9, [r0, #20] 81a2: f9b0 c010 ldrsh.w ip, [r0, #16] vdb_buf_tmp += (row_start * vdb_width) + col_start / 3; 81a6: 9b12 ldr r3, [sp, #72] ; 0x48 lv_color_t * vdb_buf_tmp = vdb->buf_act; 81a8: f8d0 e008 ldr.w lr, [r0, #8] vdb_buf_tmp += (row_start * vdb_width) + col_start / 3; 81ac: 2203 movs r2, #3 81ae: f109 0901 add.w r9, r9, #1 81b2: fb93 f1f2 sdiv r1, r3, r2 vdb_buf_tmp += ((pos_y - vdb->area.y1) * vdb_width) + pos_x - vdb->area.x1; 81b6: f9b0 3012 ldrsh.w r3, [r0, #18] vdb_buf_tmp += (row_start * vdb_width) + col_start / 3; 81ba: 980e ldr r0, [sp, #56] ; 0x38 81bc: eba9 090c sub.w r9, r9, ip 81c0: fa0f f989 sxth.w r9, r9 vdb_buf_tmp += ((pos_y - vdb->area.y1) * vdb_width) + pos_x - vdb->area.x1; 81c4: eba8 0303 sub.w r3, r8, r3 81c8: fb09 6303 mla r3, r9, r3, r6 vdb_buf_tmp += (row_start * vdb_width) + col_start / 3; 81cc: fb09 1000 mla r0, r9, r0, r1 vdb_buf_tmp += ((pos_y - vdb->area.y1) * vdb_width) + pos_x - vdb->area.x1; 81d0: eba3 030c sub.w r3, r3, ip vdb_buf_tmp += (row_start * vdb_width) + col_start / 3; 81d4: 4403 add r3, r0 81d6: eb0e 0343 add.w r3, lr, r3, lsl #1 map_area.x1 = col_start / 3 + pos_x; 81da: 980d ldr r0, [sp, #52] ; 0x34 vdb_buf_tmp += (row_start * vdb_width) + col_start / 3; 81dc: 9315 str r3, [sp, #84] ; 0x54 map_area.x1 = col_start / 3 + pos_x; 81de: f8bd 3034 ldrh.w r3, [sp, #52] ; 0x34 81e2: fa11 f180 uxtah r1, r1, r0 map_area.x2 = col_end / 3 + pos_x - 1; 81e6: 3b01 subs r3, #1 map_area.x1 = col_start / 3 + pos_x; 81e8: f8ad 10cc strh.w r1, [sp, #204] ; 0xcc map_area.x2 = col_end / 3 + pos_x - 1; 81ec: 9919 ldr r1, [sp, #100] ; 0x64 81ee: fb91 f2f2 sdiv r2, r1, r2 81f2: 441a add r2, r3 81f4: f8ad 20d0 strh.w r2, [sp, #208] ; 0xd0 map_area.y1 = row_start + pos_y; 81f8: 9b16 ldr r3, [sp, #88] ; 0x58 81fa: 9a0e ldr r2, [sp, #56] ; 0x38 81fc: 4413 add r3, r2 81fe: b21b sxth r3, r3 8200: f8ad 30ce strh.w r3, [sp, #206] ; 0xce map_area.y2 = map_area.y1; 8204: f8ad 30d2 strh.w r3, [sp, #210] ; 0xd2 uint8_t other_mask_cnt = lv_draw_mask_get_cnt(); 8208: 4b51 ldr r3, [pc, #324] ; (8350 ) 820a: 4798 blx r3 if((int32_t) mask_p + (col_end - col_start) < mask_buf_size) { 820c: 9a12 ldr r2, [sp, #72] ; 0x48 820e: 9b19 ldr r3, [sp, #100] ; 0x64 uint8_t other_mask_cnt = lv_draw_mask_get_cnt(); 8210: 9027 str r0, [sp, #156] ; 0x9c if((int32_t) mask_p + (col_end - col_start) < mask_buf_size) { 8212: 1a9b subs r3, r3, r2 8214: 9316 str r3, [sp, #88] ; 0x58 col_bit += ((box_w - col_end) + col_start) * bpp; 8216: 9b17 ldr r3, [sp, #92] ; 0x5c 8218: 4413 add r3, r2 821a: 9a19 ldr r2, [sp, #100] ; 0x64 821c: 1a9b subs r3, r3, r2 821e: 4363 muls r3, r4 vdb_buf_tmp += vdb_width - (col_end - col_start) / 3; 8220: 9a16 ldr r2, [sp, #88] ; 0x58 col_bit += ((box_w - col_end) + col_start) * bpp; 8222: 9328 str r3, [sp, #160] ; 0xa0 vdb_buf_tmp += vdb_width - (col_end - col_start) / 3; 8224: f06f 0302 mvn.w r3, #2 8228: fb92 f3f3 sdiv r3, r2, r3 822c: 444b add r3, r9 822e: 005b lsls r3, r3, #1 8230: 9329 str r3, [sp, #164] ; 0xa4 int32_t mask_p = 0; 8232: 2300 movs r3, #0 8234: 461f mov r7, r3 if(col_bit < (int32_t) (8 - bpp)) { 8236: f1c4 0308 rsb r3, r4, #8 823a: 932d str r3, [sp, #180] ; 0xb4 for(row = row_start ; row < row_end; row++) { 823c: 9b0e ldr r3, [sp, #56] ; 0x38 823e: 9a23 ldr r2, [sp, #140] ; 0x8c 8240: 4293 cmp r3, r2 8242: db31 blt.n 82a8 if(map_area.y1 != map_area.y2) { 8244: f9bd 30d2 ldrsh.w r3, [sp, #210] ; 0xd2 8248: f9bd 20ce ldrsh.w r2, [sp, #206] ; 0xce 824c: 429a cmp r2, r3 824e: d00f beq.n 8270 map_area.y2--; 8250: 3b01 subs r3, #1 8252: 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); 8256: 9b1b ldr r3, [sp, #108] ; 0x6c 8258: 9302 str r3, [sp, #8] 825a: 9b09 ldr r3, [sp, #36] ; 0x24 825c: 9301 str r3, [sp, #4] 825e: 2302 movs r3, #2 8260: 9300 str r3, [sp, #0] 8262: ee18 2a90 vmov r2, s17 8266: 4c3b ldr r4, [pc, #236] ; (8354 ) 8268: 462b mov r3, r5 826a: a933 add r1, sp, #204 ; 0xcc 826c: 4650 mov r0, sl 826e: 47a0 blx r4 _lv_mem_buf_release(mask_buf); 8270: 4628 mov r0, r5 8272: 4c39 ldr r4, [pc, #228] ; (8358 ) 8274: 47a0 blx r4 _lv_mem_buf_release(color_buf); 8276: ee18 0a90 vmov r0, s17 827a: 47a0 blx r4 827c: e61a b.n 7eb4 bitmask_init = 0xFF; 827e: 23ff movs r3, #255 ; 0xff 8280: 9313 str r3, [sp, #76] ; 0x4c uint32_t bpp = g->bpp; 8282: 2408 movs r4, #8 bpp_opa_table = _lv_bpp8_opa_table; 8284: 4b35 ldr r3, [pc, #212] ; (835c ) 8286: e736 b.n 80f6 LV_LOG_WARN("lv_draw_letter: invalid bpp not found"); 8288: 4b35 ldr r3, [pc, #212] ; (8360 ) 828a: 9300 str r3, [sp, #0] 828c: f240 227a movw r2, #634 ; 0x27a 8290: 4b34 ldr r3, [pc, #208] ; (8364 ) 8292: e2a6 b.n 87e2 bitmask_init = 0x80; 8294: 2380 movs r3, #128 ; 0x80 8296: 9313 str r3, [sp, #76] ; 0x4c uint32_t bpp = g->bpp; 8298: 2401 movs r4, #1 bpp_opa_table = _lv_bpp1_opa_table; 829a: 4b33 ldr r3, [pc, #204] ; (8368 ) 829c: e72b b.n 80f6 bitmask_init = 0xF0; 829e: 23f0 movs r3, #240 ; 0xf0 82a0: 9313 str r3, [sp, #76] ; 0x4c switch(bpp) { 82a2: 2404 movs r4, #4 bpp_opa_table = _lv_bpp4_opa_table; 82a4: 4b31 ldr r3, [pc, #196] ; (836c ) 82a6: e726 b.n 80f6 bitmask = bitmask_init >> col_bit; 82a8: 9a0f ldr r2, [sp, #60] ; 0x3c 82aa: 9b13 ldr r3, [sp, #76] ; 0x4c for(col = col_start; col < col_end; col++) { 82ac: f8dd e048 ldr.w lr, [sp, #72] ; 0x48 bitmask = bitmask_init >> col_bit; 82b0: fa23 fc02 lsr.w ip, r3, r2 for(col = col_start; col < col_end; col++) { 82b4: 463e mov r6, r7 uint32_t subpx_cnt = 0; 82b6: 2200 movs r2, #0 for(col = col_start; col < col_end; col++) { 82b8: 9b19 ldr r3, [sp, #100] ; 0x64 82ba: 4573 cmp r3, lr 82bc: dc5c bgt.n 8378 if(other_mask_cnt) { 82be: 9b27 ldr r3, [sp, #156] ; 0x9c 82c0: b1cb cbz r3, 82f6 lv_draw_mask_res_t mask_res = lv_draw_mask_apply(mask_buf + mask_p_start, map_area.x1, map_area.y2, 82c2: 463b mov r3, r7 82c4: 442b add r3, r5 82c6: 4698 mov r8, r3 82c8: f8bd 30d0 ldrh.w r3, [sp, #208] ; 0xd0 82cc: f9bd 10cc ldrsh.w r1, [sp, #204] ; 0xcc 82d0: f9bd 20d2 ldrsh.w r2, [sp, #210] ; 0xd2 82d4: 4f26 ldr r7, [pc, #152] ; (8370 ) 82d6: 3301 adds r3, #1 82d8: 1a5b subs r3, r3, r1 82da: b21b sxth r3, r3 82dc: 4640 mov r0, r8 82de: 47b8 blx r7 if(mask_res == LV_DRAW_MASK_RES_TRANSP) { 82e0: b948 cbnz r0, 82f6 82e2: f8bd 10d0 ldrh.w r1, [sp, #208] ; 0xd0 82e6: f8bd 30cc ldrh.w r3, [sp, #204] ; 0xcc 82ea: 3101 adds r1, #1 82ec: 1ac9 subs r1, r1, r3 _lv_memset_00(mask_buf + mask_p_start, lv_area_get_width(&map_area)); 82ee: b209 sxth r1, r1 82f0: 4b20 ldr r3, [pc, #128] ; (8374 ) 82f2: 4640 mov r0, r8 82f4: 4798 blx r3 if((int32_t) mask_p + (col_end - col_start) < mask_buf_size) { 82f6: 9b16 ldr r3, [sp, #88] ; 0x58 82f8: 9a18 ldr r2, [sp, #96] ; 0x60 82fa: 18f3 adds r3, r6, r3 82fc: 429a cmp r2, r3 82fe: f340 80c1 ble.w 8484 map_area.y2 ++; 8302: f8bd 30d2 ldrh.w r3, [sp, #210] ; 0xd2 8306: 3301 adds r3, #1 8308: b21b sxth r3, r3 col_bit += ((box_w - col_end) + col_start) * bpp; 830a: 9a28 ldr r2, [sp, #160] ; 0xa0 map_area.y2 ++; 830c: f8ad 30d2 strh.w r3, [sp, #210] ; 0xd2 col_bit += ((box_w - col_end) + col_start) * bpp; 8310: 9b0f ldr r3, [sp, #60] ; 0x3c 8312: 4413 add r3, r2 map_p += (col_bit >> 3); 8314: 9a1a ldr r2, [sp, #104] ; 0x68 8316: eb02 02e3 add.w r2, r2, r3, asr #3 col_bit = col_bit & 0x7; 831a: f003 0307 and.w r3, r3, #7 map_p += (col_bit >> 3); 831e: 921a str r2, [sp, #104] ; 0x68 col_bit = col_bit & 0x7; 8320: 930f str r3, [sp, #60] ; 0x3c vdb_buf_tmp += vdb_width - (col_end - col_start) / 3; 8322: 9a29 ldr r2, [sp, #164] ; 0xa4 8324: 9b15 ldr r3, [sp, #84] ; 0x54 8326: 4413 add r3, r2 8328: 9315 str r3, [sp, #84] ; 0x54 for(row = row_start ; row < row_end; row++) { 832a: 9b0e ldr r3, [sp, #56] ; 0x38 832c: 3301 adds r3, #1 832e: 930e str r3, [sp, #56] ; 0x38 8330: 4637 mov r7, r6 8332: e783 b.n 823c 8334: 0000d391 .word 0x0000d391 8338: 000274a1 .word 0x000274a1 833c: 00027626 .word 0x00027626 8340: 00027512 .word 0x00027512 8344: 0000f0ed .word 0x0000f0ed 8348: 00005215 .word 0x00005215 834c: 0000dc0d .word 0x0000dc0d 8350: 00009a1d .word 0x00009a1d 8354: 00006a29 .word 0x00006a29 8358: 0000eda1 .word 0x0000eda1 835c: 00027526 .word 0x00027526 8360: 000274ce .word 0x000274ce 8364: 00027635 .word 0x00027635 8368: 00027510 .word 0x00027510 836c: 00027516 .word 0x00027516 8370: 0000998d .word 0x0000998d 8374: 0000f251 .word 0x0000f251 letter_px = (*map_p & bitmask) >> (8 - col_bit - bpp); 8378: 9b0f ldr r3, [sp, #60] ; 0x3c 837a: 18e3 adds r3, r4, r3 837c: 930d str r3, [sp, #52] ; 0x34 837e: 9b1a ldr r3, [sp, #104] ; 0x68 8380: 990d ldr r1, [sp, #52] ; 0x34 8382: 781b ldrb r3, [r3, #0] 8384: f1c1 0108 rsb r1, r1, #8 8388: ea03 030c and.w r3, r3, ip if(letter_px != 0) { 838c: 40cb lsrs r3, r1 838e: d007 beq.n 83a0 if(opa == LV_OPA_COVER) { 8390: 9909 ldr r1, [sp, #36] ; 0x24 8392: 29ff cmp r1, #255 ; 0xff 8394: d160 bne.n 8458 px_opa = bpp == 8 ? letter_px : bpp_opa_table[letter_px]; 8396: 2c08 cmp r4, #8 8398: bf1a itte ne 839a: 9914 ldrne r1, [sp, #80] ; 0x50 839c: 5ccb ldrbne r3, [r1, r3] letter_px = (*map_p & bitmask) >> (8 - col_bit - bpp); 839e: b2db uxtbeq r3, r3 font_rgb[subpx_cnt] = px_opa; 83a0: f502 71a0 add.w r1, r2, #320 ; 0x140 83a4: 4469 add r1, sp subpx_cnt ++; 83a6: 3201 adds r2, #1 if(subpx_cnt == 3) { 83a8: 2a03 cmp r2, #3 font_rgb[subpx_cnt] = px_opa; 83aa: f801 3c84 strb.w r3, [r1, #-132] if(subpx_cnt == 3) { 83ae: d148 bne.n 8442 uint8_t bg_rgb[3] = {vdb_buf_tmp->ch.red, vdb_buf_tmp->ch.green, vdb_buf_tmp->ch.blue}; 83b0: 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; 83b2: 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}; 83b6: 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; 83b8: 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; 83ba: 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; 83be: f1c3 00ff rsb r0, r3, #255 ; 0xff 83c2: 08c9 lsrs r1, r1, #3 83c4: fb13 f202 smulbb r2, r3, r2 83c8: fb00 2201 mla r2, r0, r1, r2 83cc: 0a12 lsrs r2, r2, #8 83ce: 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}; 83d0: 9a15 ldr r2, [sp, #84] ; 0x54 83d2: 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; 83d4: 9a2a ldr r2, [sp, #168] ; 0xa8 83d6: f000 001f and.w r0, r0, #31 83da: f1c9 08ff rsb r8, r9, #255 ; 0xff 83de: fb19 f102 smulbb r1, r9, r2 83e2: fb08 1200 mla r2, r8, r0, r1 83e6: 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}; 83e8: 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; 83ea: 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}; 83ee: f832 0b02 ldrh.w r0, [r2], #2 83f2: 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; 83f4: f3c0 1245 ubfx r2, r0, #5, #6 83f8: 4611 mov r1, r2 83fa: 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; 83fe: 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; 8402: 922c str r2, [sp, #176] ; 0xb0 8404: 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; 8406: 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; 840a: 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; 840e: bf18 it ne 8410: 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; 8414: 460a mov r2, r1 if(font_rgb[0] == 0 && font_rgb[1] == 0 && font_rgb[2] == 0) mask_buf[mask_p] = LV_OPA_TRANSP; 8416: bf08 it eq 8418: 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; 841a: 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; 841c: 55ab strb r3, [r5, r6] color_buf[mask_p] = res_color; 841e: 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; 8420: fb01 0002 mla r0, r1, r2, r0 color_buf[mask_p] = res_color; 8424: f3c0 2005 ubfx r0, r0, #8, #6 8428: f3c3 2104 ubfx r1, r3, #8, #5 842c: 9b17 ldr r3, [sp, #92] ; 0x5c 842e: ea41 1140 orr.w r1, r1, r0, lsl #5 8432: ea41 21c3 orr.w r1, r1, r3, lsl #11 8436: ee18 3a90 vmov r3, s17 subpx_cnt = 0; 843a: 2200 movs r2, #0 color_buf[mask_p] = res_color; 843c: f823 1016 strh.w r1, [r3, r6, lsl #1] mask_p++; 8440: 3601 adds r6, #1 if(col_bit < (int32_t) (8 - bpp)) { 8442: 9b0f ldr r3, [sp, #60] ; 0x3c 8444: 992d ldr r1, [sp, #180] ; 0xb4 8446: 428b cmp r3, r1 8448: da14 bge.n 8474 col_bit += bpp; 844a: 9b0d ldr r3, [sp, #52] ; 0x34 844c: 930f str r3, [sp, #60] ; 0x3c bitmask = bitmask >> bpp; 844e: fa2c fc04 lsr.w ip, ip, r4 for(col = col_start; col < col_end; col++) { 8452: f10e 0e01 add.w lr, lr, #1 8456: e72f b.n 82b8 px_opa = bpp == 8 ? (uint32_t)((uint32_t)letter_px * opa) >> 8 8458: 2c08 cmp r4, #8 : (uint32_t)((uint32_t)bpp_opa_table[letter_px] * opa) >> 8; 845a: bf17 itett ne 845c: 9914 ldrne r1, [sp, #80] ; 0x50 px_opa = bpp == 8 ? (uint32_t)((uint32_t)letter_px * opa) >> 8 845e: 9909 ldreq r1, [sp, #36] ; 0x24 : (uint32_t)((uint32_t)bpp_opa_table[letter_px] * opa) >> 8; 8460: 5ccb ldrbne r3, [r1, r3] 8462: 9909 ldrne r1, [sp, #36] ; 0x24 px_opa = bpp == 8 ? (uint32_t)((uint32_t)letter_px * opa) >> 8 8464: bf0b itete eq 8466: 434b muleq r3, r1 : (uint32_t)((uint32_t)bpp_opa_table[letter_px] * opa) >> 8; 8468: fb13 f301 smulbbne r3, r3, r1 px_opa = bpp == 8 ? (uint32_t)((uint32_t)letter_px * opa) >> 8 846c: f3c3 2307 ubfxeq r3, r3, #8, #8 8470: 0a1b lsrne r3, r3, #8 8472: e795 b.n 83a0 map_p++; 8474: 9b1a ldr r3, [sp, #104] ; 0x68 bitmask = bitmask_init; 8476: f8dd c04c ldr.w ip, [sp, #76] ; 0x4c map_p++; 847a: 3301 adds r3, #1 847c: 931a str r3, [sp, #104] ; 0x68 col_bit = 0; 847e: 2300 movs r3, #0 8480: 930f str r3, [sp, #60] ; 0x3c 8482: e7e6 b.n 8452 _lv_blend_map(clip_area, &map_area, color_buf, mask_buf, LV_DRAW_MASK_RES_CHANGED, opa, blend_mode); 8484: 9b1b ldr r3, [sp, #108] ; 0x6c 8486: 9302 str r3, [sp, #8] 8488: 9b09 ldr r3, [sp, #36] ; 0x24 848a: 9301 str r3, [sp, #4] 848c: 2302 movs r3, #2 848e: 4ea7 ldr r6, [pc, #668] ; (872c ) 8490: 9300 str r3, [sp, #0] 8492: ee18 2a90 vmov r2, s17 8496: 462b mov r3, r5 8498: a933 add r1, sp, #204 ; 0xcc 849a: 4650 mov r0, sl 849c: 47b0 blx r6 map_area.y1 = map_area.y2 + 1; 849e: f8bd 30d2 ldrh.w r3, [sp, #210] ; 0xd2 84a2: 3301 adds r3, #1 84a4: b21b sxth r3, r3 84a6: f8ad 30ce strh.w r3, [sp, #206] ; 0xce mask_p = 0; 84aa: 2600 movs r6, #0 84ac: e72d b.n 830a if(bpp == 3) bpp = 4; 84ae: 2b03 cmp r3, #3 84b0: ee09 4a90 vmov s19, r4 84b4: f000 80c0 beq.w 8638 switch(bpp) { 84b8: 3b01 subs r3, #1 84ba: 2b07 cmp r3, #7 84bc: f200 80b0 bhi.w 8620 84c0: e8df f003 tbb [pc, r3] 84c4: baae04b4 .word 0xbaae04b4 84c8: a7aeaeae .word 0xa7aeaeae 84cc: 22c0 movs r2, #192 ; 0xc0 84ce: 9213 str r2, [sp, #76] ; 0x4c 84d0: 4a97 ldr r2, [pc, #604] ; (8730 ) 84d2: 2502 movs r5, #2 84d4: 2304 movs r3, #4 bpp_opa_table_p = _lv_bpp4_opa_table; 84d6: 920e str r2, [sp, #56] ; 0x38 if(opa < LV_OPA_MAX) { 84d8: 9a09 ldr r2, [sp, #36] ; 0x24 84da: 2af9 cmp r2, #249 ; 0xf9 84dc: d812 bhi.n 8504 if(prev_opa != opa || prev_bpp != bpp) { 84de: 4a95 ldr r2, [pc, #596] ; (8734 ) 84e0: 9809 ldr r0, [sp, #36] ; 0x24 84e2: f892 1100 ldrb.w r1, [r2, #256] ; 0x100 84e6: 4281 cmp r1, r0 84e8: f040 80ac bne.w 8644 84ec: f8d2 2104 ldr.w r2, [r2, #260] ; 0x104 84f0: 42aa cmp r2, r5 84f2: f040 80a7 bne.w 8644 prev_opa = opa; 84f6: 4b8f ldr r3, [pc, #572] ; (8734 ) 84f8: 9a09 ldr r2, [sp, #36] ; 0x24 84fa: f883 2100 strb.w r2, [r3, #256] ; 0x100 prev_bpp = bpp; 84fe: f8c3 5104 str.w r5, [r3, #260] ; 0x104 bpp_opa_table_p = opa_table; 8502: 930e str r3, [sp, #56] ; 0x38 int32_t col_start = pos_x >= clip_area->x1 ? 0 : clip_area->x1 - pos_x; 8504: f9ba 3000 ldrsh.w r3, [sl] int32_t box_w = g->box_w; 8508: f8bd 90e2 ldrh.w r9, [sp, #226] ; 0xe2 int32_t box_h = g->box_h; 850c: f8bd 20e4 ldrh.w r2, [sp, #228] ; 0xe4 int32_t col_start = pos_x >= clip_area->x1 ? 0 : clip_area->x1 - pos_x; 8510: 42b3 cmp r3, r6 8512: bfcc ite gt 8514: 1b9b subgt r3, r3, r6 8516: 2300 movle r3, #0 8518: 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; 851a: f9ba 3004 ldrsh.w r3, [sl, #4] 851e: eb09 0006 add.w r0, r9, r6 8522: 4298 cmp r0, r3 8524: bfc4 itt gt 8526: 1b9b subgt r3, r3, r6 8528: 3301 addgt r3, #1 int32_t row_start = pos_y >= clip_area->y1 ? 0 : clip_area->y1 - pos_y; 852a: 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; 852e: bfc8 it gt 8530: 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; 8532: 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; 8536: bfd8 it le 8538: 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; 853c: eb02 0008 add.w r0, r2, r8 int32_t row_start = pos_y >= clip_area->y1 ? 0 : clip_area->y1 - pos_y; 8540: 4546 cmp r6, r8 8542: bfcc ite gt 8544: eba6 0608 subgt.w r6, r6, r8 8548: 2600 movle r6, #0 int32_t row_end = pos_y + box_h <= clip_area->y2 ? box_h : clip_area->y2 - pos_y + 1; 854a: 4298 cmp r0, r3 854c: bfc2 ittt gt 854e: eba3 0308 subgt.w r3, r3, r8 8552: 3301 addgt r3, #1 8554: 9317 strgt r3, [sp, #92] ; 0x5c uint32_t bit_ofs = (row_start * width_bit) + (col_start * bpp); 8556: 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; 8558: bfd8 it le 855a: 9217 strle r2, [sp, #92] ; 0x5c int32_t width_bit = box_w * bpp; /*Letter width in bits*/ 855c: fb05 f109 mul.w r1, r5, r9 uint32_t bit_ofs = (row_start * width_bit) + (col_start * bpp); 8560: fb03 f405 mul.w r4, r3, r5 8564: fb06 4401 mla r4, r6, r1, r4 map_p += bit_ofs >> 3; 8568: eb07 03d4 add.w r3, r7, r4, lsr #3 856c: 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; 856e: fb02 f309 mul.w r3, r2, r9 8572: f5b3 7ff0 cmp.w r3, #480 ; 0x1e0 8576: bfa8 it ge 8578: f44f 73f0 movge.w r3, #480 ; 0x1e0 857c: 9315 str r3, [sp, #84] ; 0x54 lv_opa_t * mask_buf = _lv_mem_buf_get(mask_buf_size); 857e: 4618 mov r0, r3 8580: 4b6d ldr r3, [pc, #436] ; (8738 ) 8582: 4798 blx r3 fill_area.x1 = col_start + pos_x; 8584: 9a0d ldr r2, [sp, #52] ; 0x34 8586: 990f ldr r1, [sp, #60] ; 0x3c 8588: f8bd 3034 ldrh.w r3, [sp, #52] ; 0x34 858c: fa11 f282 uxtah r2, r1, r2 8590: f8ad 20cc strh.w r2, [sp, #204] ; 0xcc fill_area.x2 = col_end + pos_x - 1; 8594: 9a12 ldr r2, [sp, #72] ; 0x48 8596: 3b01 subs r3, #1 8598: 4413 add r3, r2 859a: f8ad 30d0 strh.w r3, [sp, #208] ; 0xd0 fill_area.y1 = row_start + pos_y; 859e: 9b16 ldr r3, [sp, #88] ; 0x58 85a0: 4433 add r3, r6 85a2: b21b sxth r3, r3 85a4: f8ad 30ce strh.w r3, [sp, #206] ; 0xce fill_area.y2 = fill_area.y1; 85a8: f8ad 30d2 strh.w r3, [sp, #210] ; 0xd2 uint8_t other_mask_cnt = lv_draw_mask_get_cnt(); 85ac: 4b63 ldr r3, [pc, #396] ; (873c ) lv_opa_t * mask_buf = _lv_mem_buf_get(mask_buf_size); 85ae: ee08 0a90 vmov s17, r0 uint8_t other_mask_cnt = lv_draw_mask_get_cnt(); 85b2: 4798 blx r3 uint32_t col_bit_max = 8 - bpp; 85b4: f1c5 0308 rsb r3, r5, #8 85b8: 930d str r3, [sp, #52] ; 0x34 uint32_t col_bit_row_ofs = (box_w + col_start - col_end) * bpp; 85ba: 9b0f ldr r3, [sp, #60] ; 0x3c uint8_t other_mask_cnt = lv_draw_mask_get_cnt(); 85bc: 9019 str r0, [sp, #100] ; 0x64 uint32_t col_bit_row_ofs = (box_w + col_start - col_end) * bpp; 85be: 4499 add r9, r3 85c0: 9b12 ldr r3, [sp, #72] ; 0x48 85c2: eba9 0903 sub.w r9, r9, r3 85c6: fb05 f309 mul.w r3, r5, r9 col_bit = bit_ofs & 0x7; /* "& 0x7" equals to "% 8" just faster */ 85ca: f004 0407 and.w r4, r4, #7 uint32_t col_bit_row_ofs = (box_w + col_start - col_end) * bpp; 85ce: 931a str r3, [sp, #104] ; 0x68 int32_t mask_p = 0; 85d0: f04f 0900 mov.w r9, #0 for(row = row_start ; row < row_end; row++) { 85d4: 9b17 ldr r3, [sp, #92] ; 0x5c 85d6: 429e cmp r6, r3 85d8: db45 blt.n 8666 if(fill_area.y1 != fill_area.y2) { 85da: f9bd 30d2 ldrsh.w r3, [sp, #210] ; 0xd2 85de: f9bd 20ce ldrsh.w r2, [sp, #206] ; 0xce 85e2: 429a cmp r2, r3 85e4: d010 beq.n 8608 fill_area.y2--; 85e6: 3b01 subs r3, #1 85e8: f8ad 30d2 strh.w r3, [sp, #210] ; 0xd2 _lv_blend_fill(clip_area, &fill_area, 85ec: 9b1b ldr r3, [sp, #108] ; 0x6c 85ee: 9302 str r3, [sp, #8] 85f0: 26ff movs r6, #255 ; 0xff 85f2: 2302 movs r3, #2 85f4: e9cd 3600 strd r3, r6, [sp] 85f8: ee19 2a90 vmov r2, s19 85fc: ee18 3a90 vmov r3, s17 8600: 4c4f ldr r4, [pc, #316] ; (8740 ) 8602: a933 add r1, sp, #204 ; 0xcc 8604: 4650 mov r0, sl 8606: 47a0 blx r4 _lv_mem_buf_release(mask_buf); 8608: ee18 0a90 vmov r0, s17 860c: 4b4d ldr r3, [pc, #308] ; (8744 ) 860e: 4798 blx r3 8610: e450 b.n 7eb4 bitmask_init = 0xFF; 8612: 22ff movs r2, #255 ; 0xff 8614: 9213 str r2, [sp, #76] ; 0x4c uint32_t bpp = g->bpp; 8616: 2508 movs r5, #8 bpp_opa_table_p = _lv_bpp8_opa_table; 8618: 4a4b ldr r2, [pc, #300] ; (8748 ) shades = 256; 861a: f44f 7380 mov.w r3, #256 ; 0x100 861e: e75a b.n 84d6 LV_LOG_WARN("lv_draw_letter: invalid bpp"); 8620: 4b4a ldr r3, [pc, #296] ; (874c ) 8622: 9300 str r3, [sp, #0] 8624: f240 12e5 movw r2, #485 ; 0x1e5 8628: 4b49 ldr r3, [pc, #292] ; (8750 ) 862a: e0da b.n 87e2 bitmask_init = 0x80; 862c: 2280 movs r2, #128 ; 0x80 862e: 9213 str r2, [sp, #76] ; 0x4c uint32_t bpp = g->bpp; 8630: 2501 movs r5, #1 bpp_opa_table_p = _lv_bpp1_opa_table; 8632: 4a48 ldr r2, [pc, #288] ; (8754 ) shades = 2; 8634: 2302 movs r3, #2 8636: e74e b.n 84d6 bitmask_init = 0xF0; 8638: 22f0 movs r2, #240 ; 0xf0 863a: 9213 str r2, [sp, #76] ; 0x4c switch(bpp) { 863c: 2504 movs r5, #4 bpp_opa_table_p = _lv_bpp4_opa_table; 863e: 4a46 ldr r2, [pc, #280] ; (8758 ) shades = 16; 8640: 2310 movs r3, #16 8642: e748 b.n 84d6 8644: 990e ldr r1, [sp, #56] ; 0x38 8646: 483b ldr r0, [pc, #236] ; (8734 ) 8648: 440b add r3, r1 opa_table[i] = bpp_opa_table_p[i] == LV_OPA_COVER ? opa : ((bpp_opa_table_p[i] * opa) >> 8); 864a: f811 2b01 ldrb.w r2, [r1], #1 864e: 2aff cmp r2, #255 ; 0xff 8650: bf17 itett ne 8652: 9c09 ldrne r4, [sp, #36] ; 0x24 8654: 9a09 ldreq r2, [sp, #36] ; 0x24 8656: fb12 f204 smulbbne r2, r2, r4 865a: 0a12 lsrne r2, r2, #8 for(i = 0; i < shades; i++) { 865c: 4299 cmp r1, r3 opa_table[i] = bpp_opa_table_p[i] == LV_OPA_COVER ? opa : ((bpp_opa_table_p[i] * opa) >> 8); 865e: f800 2b01 strb.w r2, [r0], #1 for(i = 0; i < shades; i++) { 8662: d1f2 bne.n 864a 8664: e747 b.n 84f6 bitmask = bitmask_init >> col_bit; 8666: 9b13 ldr r3, [sp, #76] ; 0x4c for(col = col_start; col < col_end; col++) { 8668: 990f ldr r1, [sp, #60] ; 0x3c 866a: f8cd 908c str.w r9, [sp, #140] ; 0x8c bitmask = bitmask_init >> col_bit; 866e: fa23 f204 lsr.w r2, r3, r4 for(col = col_start; col < col_end; col++) { 8672: ee18 3a90 vmov r3, s17 8676: eb03 0809 add.w r8, r3, r9 867a: 4647 mov r7, r8 867c: 9b12 ldr r3, [sp, #72] ; 0x48 867e: 428b cmp r3, r1 8680: dc3a bgt.n 86f8 8682: 9a0f ldr r2, [sp, #60] ; 0x3c 8684: 9912 ldr r1, [sp, #72] ; 0x48 8686: 1a9b subs r3, r3, r2 8688: 9316 str r3, [sp, #88] ; 0x58 868a: 428a cmp r2, r1 868c: bfc8 it gt 868e: 2300 movgt r3, #0 8690: 9318 str r3, [sp, #96] ; 0x60 8692: 4499 add r9, r3 if(other_mask_cnt) { 8694: 9b19 ldr r3, [sp, #100] ; 0x64 8696: b1b3 cbz r3, 86c6 8698: 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, 869c: f9bd 10cc ldrsh.w r1, [sp, #204] ; 0xcc 86a0: f9bd 20d2 ldrsh.w r2, [sp, #210] ; 0xd2 86a4: 4f2d ldr r7, [pc, #180] ; (875c ) 86a6: 3301 adds r3, #1 86a8: 1a5b subs r3, r3, r1 86aa: b21b sxth r3, r3 86ac: 4640 mov r0, r8 86ae: 47b8 blx r7 if(mask_res == LV_DRAW_MASK_RES_TRANSP) { 86b0: b948 cbnz r0, 86c6 86b2: f8bd 10d0 ldrh.w r1, [sp, #208] ; 0xd0 86b6: f8bd 30cc ldrh.w r3, [sp, #204] ; 0xcc 86ba: 3101 adds r1, #1 86bc: 1ac9 subs r1, r1, r3 _lv_memset_00(mask_buf + mask_p_start, lv_area_get_width(&fill_area)); 86be: b209 sxth r1, r1 86c0: 4b27 ldr r3, [pc, #156] ; (8760 ) 86c2: 4640 mov r0, r8 86c4: 4798 blx r3 if((uint32_t) mask_p + (col_end - col_start) < mask_buf_size) { 86c6: 9b18 ldr r3, [sp, #96] ; 0x60 86c8: 9a16 ldr r2, [sp, #88] ; 0x58 86ca: 4413 add r3, r2 86cc: 4698 mov r8, r3 86ce: 9b23 ldr r3, [sp, #140] ; 0x8c 86d0: 4498 add r8, r3 86d2: 9b15 ldr r3, [sp, #84] ; 0x54 86d4: 4543 cmp r3, r8 86d6: d945 bls.n 8764 fill_area.y2 ++; 86d8: f8bd 30d2 ldrh.w r3, [sp, #210] ; 0xd2 86dc: 3301 adds r3, #1 86de: b21b sxth r3, r3 86e0: f8ad 30d2 strh.w r3, [sp, #210] ; 0xd2 col_bit += col_bit_row_ofs; 86e4: 9b1a ldr r3, [sp, #104] ; 0x68 86e6: 441c add r4, r3 map_p += (col_bit >> 3); 86e8: 9b14 ldr r3, [sp, #80] ; 0x50 86ea: eb03 03d4 add.w r3, r3, r4, lsr #3 86ee: 9314 str r3, [sp, #80] ; 0x50 col_bit = col_bit & 0x7; 86f0: f004 0407 and.w r4, r4, #7 for(row = row_start ; row < row_end; row++) { 86f4: 3601 adds r6, #1 86f6: e76d b.n 85d4 letter_px = (*map_p & bitmask) >> (col_bit_max - col_bit); 86f8: 9b14 ldr r3, [sp, #80] ; 0x50 86fa: 980d ldr r0, [sp, #52] ; 0x34 86fc: 781b ldrb r3, [r3, #0] 86fe: eba0 0c04 sub.w ip, r0, r4 8702: 4013 ands r3, r2 if(letter_px) { 8704: fa33 f30c lsrs.w r3, r3, ip mask_buf[mask_p] = bpp_opa_table_p[letter_px]; 8708: bf1c itt ne 870a: 980e ldrne r0, [sp, #56] ; 0x38 870c: 5cc3 ldrbne r3, [r0, r3] 870e: f807 3b01 strb.w r3, [r7], #1 if(col_bit < col_bit_max) { 8712: 9b0d ldr r3, [sp, #52] ; 0x34 8714: 42a3 cmp r3, r4 map_p++; 8716: bf9d ittte ls 8718: 9b14 ldrls r3, [sp, #80] ; 0x50 bitmask = bitmask_init; 871a: 9a13 ldrls r2, [sp, #76] ; 0x4c map_p++; 871c: 3301 addls r3, #1 col_bit += bpp; 871e: 1964 addhi r4, r4, r5 bitmask = bitmask >> bpp; 8720: bf8e itee hi 8722: 40ea lsrhi r2, r5 map_p++; 8724: 9314 strls r3, [sp, #80] ; 0x50 col_bit = 0; 8726: 2400 movls r4, #0 for(col = col_start; col < col_end; col++) { 8728: 3101 adds r1, #1 872a: e7a7 b.n 867c 872c: 00006a29 .word 0x00006a29 8730: 00027512 .word 0x00027512 8734: 20008e64 .word 0x20008e64 8738: 0000f0ed .word 0x0000f0ed 873c: 00009a1d .word 0x00009a1d 8740: 0000641d .word 0x0000641d 8744: 0000eda1 .word 0x0000eda1 8748: 00027526 .word 0x00027526 874c: 000274f4 .word 0x000274f4 8750: 00027647 .word 0x00027647 8754: 00027510 .word 0x00027510 8758: 00027516 .word 0x00027516 875c: 0000998d .word 0x0000998d 8760: 0000f251 .word 0x0000f251 _lv_blend_fill(clip_area, &fill_area, 8764: 9b1b ldr r3, [sp, #108] ; 0x6c 8766: 9302 str r3, [sp, #8] 8768: 27ff movs r7, #255 ; 0xff 876a: 2302 movs r3, #2 876c: e9cd 3700 strd r3, r7, [sp] 8770: ee19 2a90 vmov r2, s19 8774: ee18 3a90 vmov r3, s17 8778: f8df 808c ldr.w r8, [pc, #140] ; 8808 877c: a933 add r1, sp, #204 ; 0xcc 877e: 4650 mov r0, sl 8780: 47c0 blx r8 fill_area.y1 = fill_area.y2 + 1; 8782: f8bd 30d2 ldrh.w r3, [sp, #210] ; 0xd2 8786: 3301 adds r3, #1 8788: b21b sxth r3, r3 878a: f8ad 30ce strh.w r3, [sp, #206] ; 0xce mask_p = 0; 878e: f04f 0900 mov.w r9, #0 8792: e7a5 b.n 86e0 else if(dsc->flag & LV_TXT_FLAG_RIGHT) { 8794: 071a lsls r2, r3, #28 8796: f57f ac15 bpl.w 7fc4 _lv_txt_get_width(&txt[line_start], line_end - line_start, font, dsc->letter_space, dsc->flag); 879a: ee18 2a10 vmov r2, s16 879e: 9300 str r3, [sp, #0] 87a0: 4630 mov r0, r6 87a2: f9bb 300c ldrsh.w r3, [fp, #12] 87a6: 4e12 ldr r6, [pc, #72] ; (87f0 ) 87a8: 47b0 blx r6 87aa: 9b05 ldr r3, [sp, #20] 87ac: 9a05 ldr r2, [sp, #20] 87ae: 889b ldrh r3, [r3, #4] 87b0: 8812 ldrh r2, [r2, #0] 87b2: 3301 adds r3, #1 87b4: 1a9b subs r3, r3, r2 pos.x += lv_area_get_width(coords) - line_width; 87b6: b21b sxth r3, r3 87b8: 1a18 subs r0, r3, r0 87ba: 4420 add r0, r4 87bc: e401 b.n 7fc2 bool g_ret = lv_font_get_glyph_dsc(font_p, &g, letter, '\0'); 87be: ee18 0a10 vmov r0, s16 87c2: 4e0c ldr r6, [pc, #48] ; (87f4 ) 87c4: 2300 movs r3, #0 87c6: 462a mov r2, r5 87c8: a938 add r1, sp, #224 ; 0xe0 87ca: 47b0 blx r6 if(g_ret == false) { 87cc: 2800 cmp r0, #0 87ce: f47f ac25 bne.w 801c if(letter >= 0x20) { 87d2: 2d1f cmp r5, #31 87d4: f67f ab6e bls.w 7eb4 LV_LOG_WARN("lv_draw_letter: glyph dsc. not found"); 87d8: 4b07 ldr r3, [pc, #28] ; (87f8 ) 87da: 9300 str r3, [sp, #0] 87dc: 4b07 ldr r3, [pc, #28] ; (87fc ) 87de: f240 12a1 movw r2, #417 ; 0x1a1 LV_LOG_WARN("lv_draw_letter: invalid bpp"); 87e2: 4907 ldr r1, [pc, #28] ; (8800 ) 87e4: 4c07 ldr r4, [pc, #28] ; (8804 ) 87e6: 2002 movs r0, #2 87e8: 47a0 blx r4 return; /*Invalid bpp. Can't render the letter*/ 87ea: f7ff bb63 b.w 7eb4 87ee: bf00 nop 87f0: 00010155 .word 0x00010155 87f4: 0000d395 .word 0x0000d395 87f8: 0002747c .word 0x0002747c 87fc: 00027626 .word 0x00027626 8800: 00027446 .word 0x00027446 8804: 0000eb21 .word 0x0000eb21 8808: 0000641d .word 0x0000641d 0000880c : /********************** * GLOBAL FUNCTIONS **********************/ LV_ATTRIBUTE_FAST_MEM void lv_draw_line_dsc_init(lv_draw_line_dsc_t * dsc) { 880c: b510 push {r4, lr} _lv_memset_00(dsc, sizeof(lv_draw_line_dsc_t)); 880e: 4b05 ldr r3, [pc, #20] ; (8824 ) { 8810: 4604 mov r4, r0 _lv_memset_00(dsc, sizeof(lv_draw_line_dsc_t)); 8812: 210a movs r1, #10 8814: 4798 blx r3 dsc->width = 1; dsc->opa = LV_OPA_COVER; 8816: 23ff movs r3, #255 ; 0xff 8818: 7223 strb r3, [r4, #8] dsc->color = LV_COLOR_BLACK; 881a: 2300 movs r3, #0 881c: 8023 strh r3, [r4, #0] dsc->width = 1; 881e: 2301 movs r3, #1 8820: 8063 strh r3, [r4, #2] } 8822: bd10 pop {r4, pc} 8824: 0000f251 .word 0x0000f251 00008828 : * @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) { 8828: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} 882c: ed2d 8b04 vpush {d8-d9} 8830: 469b mov fp, r3 if(dsc->width == 0) return; 8832: f9b3 3002 ldrsh.w r3, [r3, #2] { 8836: b0c7 sub sp, #284 ; 0x11c 8838: e9cd 0105 strd r0, r1, [sp, #20] 883c: ee08 2a90 vmov s17, r2 if(dsc->width == 0) return; 8840: 2b00 cmp r3, #0 8842: f000 80e4 beq.w 8a0e if(dsc->opa <= LV_OPA_MIN) return; 8846: f89b 2008 ldrb.w r2, [fp, #8] 884a: 2a05 cmp r2, #5 884c: f240 80df bls.w 8a0e if(point1->x == point2->x && point1->y == point2->y) return; 8850: 9a05 ldr r2, [sp, #20] 8852: f9b0 4000 ldrsh.w r4, [r0] 8856: f9b1 0000 ldrsh.w r0, [r1] 885a: f9b2 1002 ldrsh.w r1, [r2, #2] 885e: 9a06 ldr r2, [sp, #24] 8860: 4284 cmp r4, r0 8862: f9b2 2002 ldrsh.w r2, [r2, #2] 8866: d102 bne.n 886e 8868: 4291 cmp r1, r2 886a: f000 80d0 beq.w 8a0e lv_area_t clip_line; clip_line.x1 = LV_MATH_MIN(point1->x, point2->x) - dsc->width / 2; 886e: eb03 73d3 add.w r3, r3, r3, lsr #31 8872: f3c3 034f ubfx r3, r3, #1, #16 8876: 4284 cmp r4, r0 8878: bfd4 ite le 887a: ebc3 0504 rsble r5, r3, r4 887e: ebc3 0500 rsbgt r5, r3, r0 8882: f8ad 5028 strh.w r5, [sp, #40] ; 0x28 clip_line.x2 = LV_MATH_MAX(point1->x, point2->x) + dsc->width / 2; 8886: 4284 cmp r4, r0 8888: bfac ite ge 888a: 191d addge r5, r3, r4 888c: 181d addlt r5, r3, r0 clip_line.y1 = LV_MATH_MIN(point1->y, point2->y) - dsc->width / 2; 888e: 4291 cmp r1, r2 8890: bfd4 ite le 8892: ebc3 0001 rsble r0, r3, r1 8896: ebc3 0002 rsbgt r0, r3, r2 clip_line.y2 = LV_MATH_MAX(point1->y, point2->y) + dsc->width / 2; 889a: 4291 cmp r1, r2 889c: bfac ite ge 889e: 185b addge r3, r3, r1 88a0: 189b addlt r3, r3, r2 bool is_common; is_common = _lv_area_intersect(&clip_line, &clip_line, clip); 88a2: a90a add r1, sp, #40 ; 0x28 clip_line.y1 = LV_MATH_MIN(point1->y, point2->y) - dsc->width / 2; 88a4: f8ad 002a strh.w r0, [sp, #42] ; 0x2a is_common = _lv_area_intersect(&clip_line, &clip_line, clip); 88a8: ee18 2a90 vmov r2, s17 88ac: 4caa ldr r4, [pc, #680] ; (8b58 ) clip_line.x2 = LV_MATH_MAX(point1->x, point2->x) + dsc->width / 2; 88ae: f8ad 502c strh.w r5, [sp, #44] ; 0x2c is_common = _lv_area_intersect(&clip_line, &clip_line, clip); 88b2: 4608 mov r0, r1 clip_line.y2 = LV_MATH_MAX(point1->y, point2->y) + dsc->width / 2; 88b4: f8ad 302e strh.w r3, [sp, #46] ; 0x2e is_common = _lv_area_intersect(&clip_line, &clip_line, clip); 88b8: 47a0 blx r4 if(!is_common) return; 88ba: 2800 cmp r0, #0 88bc: f000 80a7 beq.w 8a0e if(point1->y == point2->y) draw_line_hor(point1, point2, &clip_line, dsc); 88c0: 9b05 ldr r3, [sp, #20] 88c2: f9b3 9002 ldrsh.w r9, [r3, #2] 88c6: 9b06 ldr r3, [sp, #24] 88c8: f9b3 8002 ldrsh.w r8, [r3, #2] 88cc: 45c1 cmp r9, r8 88ce: f040 8159 bne.w 8b84 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(); 88d2: 4ba2 ldr r3, [pc, #648] ; (8b5c ) lv_opa_t opa = dsc->opa; 88d4: f89b 4008 ldrb.w r4, [fp, #8] lv_disp_t * disp = _lv_refr_get_disp_refreshing(); 88d8: 4798 blx r3 lv_disp_buf_t * vdb = lv_disp_get_buf(disp); 88da: 4ba1 ldr r3, [pc, #644] ; (8b60 ) 88dc: 4798 blx r3 const lv_area_t * disp_area = &vdb->area; int32_t w = dsc->width - 1; 88de: 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; 88e2: f9bb 5006 ldrsh.w r5, [fp, #6] int32_t w = dsc->width - 1; 88e6: 3b01 subs r3, #1 int32_t w_half1 = w_half0 + (w & 0x1); /*Compensate rounding error*/ 88e8: f003 0601 and.w r6, r3, #1 lv_disp_buf_t * vdb = lv_disp_get_buf(disp); 88ec: 4680 mov r8, r0 int32_t w_half0 = w >> 1; 88ee: 105f asrs r7, r3, #1 int32_t w_half1 = w_half0 + (w & 0x1); /*Compensate rounding error*/ 88f0: eb06 0663 add.w r6, r6, r3, asr #1 bool dashed = dsc->dash_gap && dsc->dash_width ? true : false; 88f4: b125 cbz r5, 8900 88f6: f9bb 5004 ldrsh.w r5, [fp, #4] 88fa: 3d00 subs r5, #0 88fc: bf18 it ne 88fe: 2501 movne r5, #1 bool simple_mode = true; if(lv_draw_mask_get_cnt()) simple_mode = false; 8900: 4b98 ldr r3, [pc, #608] ; (8b64 ) 8902: 4798 blx r3 8904: 2800 cmp r0, #0 8906: f040 8087 bne.w 8a18 else if(dashed) simple_mode = false; 890a: f085 0201 eor.w r2, r5, #1 lv_area_t draw_area; draw_area.x1 = LV_MATH_MIN(point1->x, point2->x); 890e: 9b06 ldr r3, [sp, #24] 8910: 9905 ldr r1, [sp, #20] 8912: f9b3 3000 ldrsh.w r3, [r3] 8916: f9b1 1000 ldrsh.w r1, [r1] 891a: 428b cmp r3, r1 891c: 4618 mov r0, r3 891e: bfa8 it ge 8920: 4608 movge r0, r1 draw_area.x2 = LV_MATH_MAX(point1->x, point2->x) - 1; 8922: 428b cmp r3, r1 8924: bfb8 it lt 8926: 460b movlt r3, r1 8928: 3b01 subs r3, #1 892a: f8ad 309c strh.w r3, [sp, #156] ; 0x9c draw_area.y1 = point1->y - w_half1; 892e: 9b05 ldr r3, [sp, #20] draw_area.x1 = LV_MATH_MIN(point1->x, point2->x); 8930: f8ad 0098 strh.w r0, [sp, #152] ; 0x98 draw_area.y1 = point1->y - w_half1; 8934: 885b ldrh r3, [r3, #2] 8936: 1b9e subs r6, r3, r6 draw_area.y2 = point1->y + w_half0; 8938: 443b add r3, r7 draw_area.y1 = point1->y - w_half1; 893a: f8ad 609a strh.w r6, [sp, #154] ; 0x9a draw_area.y2 = point1->y + w_half0; 893e: f8ad 309e strh.w r3, [sp, #158] ; 0x9e /*If there is no mask then simply draw a rectangle*/ if(simple_mode) { 8942: 2a00 cmp r2, #0 8944: d06a beq.n 8a1c _lv_blend_fill(clip, &draw_area, dsc->color, NULL, LV_DRAW_MASK_RES_FULL_COVER, opa, dsc->blend_mode); 8946: f89b 3009 ldrb.w r3, [fp, #9] _lv_blend_fill(clip, &draw_area, 894a: f003 0303 and.w r3, r3, #3 894e: 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, 8952: 2301 movs r3, #1 8954: 9300 str r3, [sp, #0] 8956: f8bb 2000 ldrh.w r2, [fp] 895a: 4c83 ldr r4, [pc, #524] ; (8b68 ) 895c: 2300 movs r3, #0 895e: a926 add r1, sp, #152 ; 0x98 8960: a80a add r0, sp, #40 ; 0x28 8962: 47a0 blx r4 if(dsc->round_end || dsc->round_start) { 8964: f89b 3009 ldrb.w r3, [fp, #9] 8968: f013 0f0c tst.w r3, #12 896c: d04f beq.n 8a0e lv_draw_rect_dsc_init(&cir_dsc); 896e: 4b7f ldr r3, [pc, #508] ; (8b6c ) 8970: a831 add r0, sp, #196 ; 0xc4 8972: 4798 blx r3 cir_dsc.bg_color = dsc->color; 8974: f8bb 3000 ldrh.w r3, [fp] 8978: f8ad 30c6 strh.w r3, [sp, #198] ; 0xc6 cir_dsc.radius = LV_RADIUS_CIRCLE; 897c: f647 73ff movw r3, #32767 ; 0x7fff 8980: f8ad 30c4 strh.w r3, [sp, #196] ; 0xc4 cir_dsc.bg_opa = dsc->opa; 8984: f89b 3008 ldrb.w r3, [fp, #8] int32_t r = (dsc->width >> 1); 8988: f9bb 5002 ldrsh.w r5, [fp, #2] cir_dsc.bg_opa = dsc->opa; 898c: f88d 30d0 strb.w r3, [sp, #208] ; 0xd0 if(dsc->round_start) { 8990: f89b 3009 ldrb.w r3, [fp, #9] int32_t r = (dsc->width >> 1); 8994: 106c asrs r4, r5, #1 if(dsc->round_start) { 8996: 075a lsls r2, r3, #29 8998: ea6f 0505 mvn.w r5, r5 899c: f005 0501 and.w r5, r5, #1 89a0: d518 bpl.n 89d4 cir_area.x1 = point1->x - r; 89a2: 9b05 ldr r3, [sp, #20] 89a4: 881a ldrh r2, [r3, #0] 89a6: b2a3 uxth r3, r4 89a8: 1ad1 subs r1, r2, r3 89aa: f8ad 1098 strh.w r1, [sp, #152] ; 0x98 cir_area.y1 = point1->y - r; 89ae: 9905 ldr r1, [sp, #20] 89b0: 8849 ldrh r1, [r1, #2] cir_area.x2 = point1->x + r - r_corr; 89b2: 441a add r2, r3 cir_area.y1 = point1->y - r; 89b4: 1ac8 subs r0, r1, r3 cir_area.y2 = point1->y + r - r_corr ; 89b6: 440b add r3, r1 cir_area.x2 = point1->x + r - r_corr; 89b8: 1b52 subs r2, r2, r5 cir_area.y2 = point1->y + r - r_corr ; 89ba: 1b5b subs r3, r3, r5 cir_area.y1 = point1->y - r; 89bc: f8ad 009a strh.w r0, [sp, #154] ; 0x9a cir_area.x2 = point1->x + r - r_corr; 89c0: f8ad 209c strh.w r2, [sp, #156] ; 0x9c cir_area.y2 = point1->y + r - r_corr ; 89c4: f8ad 309e strh.w r3, [sp, #158] ; 0x9e lv_draw_rect(&cir_area, clip, &cir_dsc); 89c8: ee18 1a90 vmov r1, s17 89cc: 4b68 ldr r3, [pc, #416] ; (8b70 ) 89ce: aa31 add r2, sp, #196 ; 0xc4 89d0: a826 add r0, sp, #152 ; 0x98 89d2: 4798 blx r3 if(dsc->round_end) { 89d4: f89b 3009 ldrb.w r3, [fp, #9] 89d8: 071b lsls r3, r3, #28 89da: d518 bpl.n 8a0e cir_area.x1 = point2->x - r; 89dc: 9b06 ldr r3, [sp, #24] 89de: 881a ldrh r2, [r3, #0] 89e0: b2a3 uxth r3, r4 89e2: 1ad1 subs r1, r2, r3 89e4: f8ad 1098 strh.w r1, [sp, #152] ; 0x98 cir_area.y1 = point2->y - r; 89e8: 9906 ldr r1, [sp, #24] 89ea: 8849 ldrh r1, [r1, #2] cir_area.x2 = point2->x + r - r_corr; 89ec: 441a add r2, r3 cir_area.y1 = point2->y - r; 89ee: 1ac8 subs r0, r1, r3 cir_area.y2 = point2->y + r - r_corr ; 89f0: 440b add r3, r1 cir_area.x2 = point2->x + r - r_corr; 89f2: 1b52 subs r2, r2, r5 cir_area.y2 = point2->y + r - r_corr ; 89f4: 1b5b subs r3, r3, r5 cir_area.y1 = point2->y - r; 89f6: f8ad 009a strh.w r0, [sp, #154] ; 0x9a cir_area.x2 = point2->x + r - r_corr; 89fa: f8ad 209c strh.w r2, [sp, #156] ; 0x9c cir_area.y2 = point2->y + r - r_corr ; 89fe: f8ad 309e strh.w r3, [sp, #158] ; 0x9e lv_draw_rect(&cir_area, clip, &cir_dsc); 8a02: ee18 1a90 vmov r1, s17 8a06: 4b5a ldr r3, [pc, #360] ; (8b70 ) 8a08: aa31 add r2, sp, #196 ; 0xc4 8a0a: a826 add r0, sp, #152 ; 0x98 8a0c: 4798 blx r3 } 8a0e: b047 add sp, #284 ; 0x11c 8a10: ecbd 8b04 vpop {d8-d9} 8a14: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} if(lv_draw_mask_get_cnt()) simple_mode = false; 8a18: 2200 movs r2, #0 8a1a: e778 b.n 890e is_common = _lv_area_intersect(&draw_area, clip, &draw_area); 8a1c: aa26 add r2, sp, #152 ; 0x98 8a1e: 4b4e ldr r3, [pc, #312] ; (8b58 ) 8a20: a90a add r1, sp, #40 ; 0x28 8a22: 4610 mov r0, r2 8a24: 4798 blx r3 if(!is_common) return; 8a26: 2800 cmp r0, #0 8a28: d09c beq.n 8964 draw_area.y1 -= disp_area->y1; 8a2a: f8b8 e012 ldrh.w lr, [r8, #18] 8a2e: f9bd 109a ldrsh.w r1, [sp, #154] ; 0x9a draw_area.x1 -= disp_area->x1; 8a32: f8b8 2010 ldrh.w r2, [r8, #16] 8a36: f9b8 6010 ldrsh.w r6, [r8, #16] 8a3a: f8bd 0098 ldrh.w r0, [sp, #152] ; 0x98 draw_area.x2 -= disp_area->x1; 8a3e: f9bd 709c ldrsh.w r7, [sp, #156] ; 0x9c draw_area.x1 -= disp_area->x1; 8a42: f9bd c098 ldrsh.w ip, [sp, #152] ; 0x98 fill_area.x1 = draw_area.x1 + disp_area->x1; 8a46: f8ad c0c4 strh.w ip, [sp, #196] ; 0xc4 draw_area.y1 -= disp_area->y1; 8a4a: eba1 040e sub.w r4, r1, lr 8a4e: f8ad 409a strh.w r4, [sp, #154] ; 0x9a draw_area.x2 -= disp_area->x1; 8a52: f8bd 409c ldrh.w r4, [sp, #156] ; 0x9c fill_area.x2 = draw_area.x2 + disp_area->x1; 8a56: f8ad 70c8 strh.w r7, [sp, #200] ; 0xc8 draw_area.x1 -= disp_area->x1; 8a5a: 1a83 subs r3, r0, r2 draw_area.x2 -= disp_area->x1; 8a5c: 1aa2 subs r2, r4, r2 8a5e: f8ad 209c strh.w r2, [sp, #156] ; 0x9c draw_area.y2 -= disp_area->y1; 8a62: f8bd 209e ldrh.w r2, [sp, #158] ; 0x9e fill_area.y1 = draw_area.y1 + disp_area->y1; 8a66: f8ad 10c6 strh.w r1, [sp, #198] ; 0xc6 8a6a: 3401 adds r4, #1 draw_area.x1 -= disp_area->x1; 8a6c: b21b sxth r3, r3 draw_area.y2 -= disp_area->y1; 8a6e: eba2 020e sub.w r2, r2, lr 8a72: 1a24 subs r4, r4, r0 draw_area.x1 -= disp_area->x1; 8a74: f8ad 3098 strh.w r3, [sp, #152] ; 0x98 draw_area.y2 -= disp_area->y1; 8a78: f8ad 209e strh.w r2, [sp, #158] ; 0x9e 8a7c: b224 sxth r4, r4 fill_area.y2 = fill_area.y1; 8a7e: f8ad 10ca strh.w r1, [sp, #202] ; 0xca if(dashed) { 8a82: b1dd cbz r5, 8abc dash_start = (vdb->area.x1 + draw_area.x1) % (dsc->dash_gap + dsc->dash_width); 8a84: 441e add r6, r3 8a86: f9bb 2004 ldrsh.w r2, [fp, #4] 8a8a: f9bb 3006 ldrsh.w r3, [fp, #6] 8a8e: 4413 add r3, r2 8a90: fb96 f2f3 sdiv r2, r6, r3 8a94: fb03 6612 mls r6, r3, r2, r6 8a98: b233 sxth r3, r6 8a9a: 9307 str r3, [sp, #28] lv_opa_t * mask_buf = _lv_mem_buf_get(draw_area_w); 8a9c: 4b35 ldr r3, [pc, #212] ; (8b74 ) _lv_blend_fill(clip, &fill_area, 8a9e: f8df a0c8 ldr.w sl, [pc, #200] ; 8b68 lv_opa_t * mask_buf = _lv_mem_buf_get(draw_area_w); 8aa2: 4620 mov r0, r4 8aa4: 4798 blx r3 for(h = draw_area.y1; h <= draw_area.y2; h++) { 8aa6: f9bd 909a ldrsh.w r9, [sp, #154] ; 0x9a lv_opa_t * mask_buf = _lv_mem_buf_get(draw_area_w); 8aaa: 4607 mov r7, r0 for(h = draw_area.y1; h <= draw_area.y2; h++) { 8aac: f9bd 309e ldrsh.w r3, [sp, #158] ; 0x9e 8ab0: 4599 cmp r9, r3 8ab2: dd05 ble.n 8ac0 _lv_mem_buf_release(mask_buf); 8ab4: 4638 mov r0, r7 LV_BLEND_MODE_NORMAL); fill_area.y1++; fill_area.y2++; } _lv_mem_buf_release(mask_buf); 8ab6: 4b30 ldr r3, [pc, #192] ; (8b78 ) 8ab8: 4798 blx r3 8aba: e753 b.n 8964 lv_style_int_t dash_start = 0; 8abc: 9507 str r5, [sp, #28] 8abe: e7ed b.n 8a9c _lv_memset_ff(mask_buf, draw_area_w); 8ac0: 4b2e ldr r3, [pc, #184] ; (8b7c ) 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); 8ac2: 4e2f ldr r6, [pc, #188] ; (8b80 ) _lv_memset_ff(mask_buf, draw_area_w); 8ac4: 4621 mov r1, r4 8ac6: 4638 mov r0, r7 8ac8: 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); 8aca: f8bd 3098 ldrh.w r3, [sp, #152] ; 0x98 8ace: f8b8 2012 ldrh.w r2, [r8, #18] 8ad2: f8b8 1010 ldrh.w r1, [r8, #16] 8ad6: 444a add r2, r9 8ad8: 4419 add r1, r3 8ada: b212 sxth r2, r2 8adc: 4623 mov r3, r4 8ade: b209 sxth r1, r1 8ae0: 4638 mov r0, r7 8ae2: 47b0 blx r6 8ae4: 4602 mov r2, r0 if(dashed) { 8ae6: b195 cbz r5, 8b0e if(mask_res != LV_DRAW_MASK_RES_TRANSP) { 8ae8: b188 cbz r0, 8b0e for(i = 0; i < draw_area_w; i++, dash_cnt++) { 8aea: 2300 movs r3, #0 lv_style_int_t dash_cnt = dash_start; 8aec: 9907 ldr r1, [sp, #28] 8aee: 4618 mov r0, r3 8af0: e00a b.n 8b08 if(dash_cnt <= dsc->dash_width) { 8af2: f9bb 2004 ldrsh.w r2, [fp, #4] 8af6: 428a cmp r2, r1 8af8: db25 blt.n 8b46 i += diff; 8afa: 4413 add r3, r2 8afc: 1a5b subs r3, r3, r1 8afe: b21b sxth r3, r3 for(i = 0; i < draw_area_w; i++, dash_cnt++) { 8b00: 3301 adds r3, #1 8b02: 3201 adds r2, #1 8b04: b21b sxth r3, r3 8b06: b211 sxth r1, r2 8b08: 429c cmp r4, r3 8b0a: dcf2 bgt.n 8af2 mask_res = LV_DRAW_MASK_RES_CHANGED; 8b0c: 2202 movs r2, #2 dsc->blend_mode); 8b0e: f89b 3009 ldrb.w r3, [fp, #9] _lv_blend_fill(clip, &fill_area, 8b12: f003 0303 and.w r3, r3, #3 8b16: 9302 str r3, [sp, #8] 8b18: f89b 3008 ldrb.w r3, [fp, #8] 8b1c: a931 add r1, sp, #196 ; 0xc4 8b1e: e9cd 2300 strd r2, r3, [sp] 8b22: a80a add r0, sp, #40 ; 0x28 8b24: 463b mov r3, r7 8b26: f8bb 2000 ldrh.w r2, [fp] 8b2a: 47d0 blx sl fill_area.y1++; 8b2c: f8bd 30c6 ldrh.w r3, [sp, #198] ; 0xc6 8b30: 3301 adds r3, #1 8b32: f8ad 30c6 strh.w r3, [sp, #198] ; 0xc6 fill_area.y2++; 8b36: f8bd 30ca ldrh.w r3, [sp, #202] ; 0xca 8b3a: 3301 adds r3, #1 8b3c: f8ad 30ca strh.w r3, [sp, #202] ; 0xca for(h = draw_area.y1; h <= draw_area.y2; h++) { 8b40: f109 0901 add.w r9, r9, #1 8b44: e7b2 b.n 8aac else if(dash_cnt >= dsc->dash_gap + dsc->dash_width) { 8b46: f9bb c006 ldrsh.w ip, [fp, #6] 8b4a: 4462 add r2, ip 8b4c: 4291 cmp r1, r2 mask_buf[i] = 0x00; 8b4e: bfba itte lt 8b50: 54f8 strblt r0, [r7, r3] 8b52: 460a movlt r2, r1 dash_cnt = 0; 8b54: 2200 movge r2, #0 8b56: e7d3 b.n 8b00 8b58: 0000e0b9 .word 0x0000e0b9 8b5c: 00005215 .word 0x00005215 8b60: 0000dc0d .word 0x0000dc0d 8b64: 00009a1d .word 0x00009a1d 8b68: 0000641d .word 0x0000641d 8b6c: 00009dcd .word 0x00009dcd 8b70: 00009e19 .word 0x00009e19 8b74: 0000f0ed .word 0x0000f0ed 8b78: 0000eda1 .word 0x0000eda1 8b7c: 0000f2ad .word 0x0000f2ad 8b80: 0000998d .word 0x0000998d else if(point1->x == point2->x) draw_line_ver(point1, point2, &clip_line, dsc); 8b84: 9b05 ldr r3, [sp, #20] 8b86: f9b3 7000 ldrsh.w r7, [r3] 8b8a: 9b06 ldr r3, [sp, #24] 8b8c: f9b3 6000 ldrsh.w r6, [r3] 8b90: 42b7 cmp r7, r6 8b92: f040 80db bne.w 8d4c lv_disp_t * disp = _lv_refr_get_disp_refreshing(); 8b96: 4b66 ldr r3, [pc, #408] ; (8d30 ) lv_opa_t opa = dsc->opa; 8b98: f89b 6008 ldrb.w r6, [fp, #8] lv_disp_t * disp = _lv_refr_get_disp_refreshing(); 8b9c: 4798 blx r3 lv_disp_buf_t * vdb = lv_disp_get_buf(disp); 8b9e: 4b65 ldr r3, [pc, #404] ; (8d34 ) 8ba0: 4798 blx r3 int32_t w = dsc->width - 1; 8ba2: f9bb 3002 ldrsh.w r3, [fp, #2] bool dashed = dsc->dash_gap && dsc->dash_width ? true : false; 8ba6: f9bb 5006 ldrsh.w r5, [fp, #6] int32_t w = dsc->width - 1; 8baa: 3b01 subs r3, #1 int32_t w_half1 = w_half0 + (w & 0x1); /*Compensate rounding error*/ 8bac: f003 0801 and.w r8, r3, #1 lv_disp_buf_t * vdb = lv_disp_get_buf(disp); 8bb0: 4607 mov r7, r0 int32_t w_half0 = w >> 1; 8bb2: ea4f 0963 mov.w r9, r3, asr #1 int32_t w_half1 = w_half0 + (w & 0x1); /*Compensate rounding error*/ 8bb6: eb08 0863 add.w r8, r8, r3, asr #1 bool dashed = dsc->dash_gap && dsc->dash_width ? true : false; 8bba: b125 cbz r5, 8bc6 8bbc: f9bb 5004 ldrsh.w r5, [fp, #4] 8bc0: 3d00 subs r5, #0 8bc2: bf18 it ne 8bc4: 2501 movne r5, #1 if(lv_draw_mask_get_cnt()) simple_mode = false; 8bc6: 4b5c ldr r3, [pc, #368] ; (8d38 ) 8bc8: 4798 blx r3 8bca: bb20 cbnz r0, 8c16 else if(dashed) simple_mode = false; 8bcc: f085 0201 eor.w r2, r5, #1 draw_area.x1 = point1->x - w_half1; 8bd0: 9b05 ldr r3, [sp, #20] draw_area.y1 = LV_MATH_MIN(point1->y, point2->y); 8bd2: 9905 ldr r1, [sp, #20] draw_area.x1 = point1->x - w_half1; 8bd4: 881b ldrh r3, [r3, #0] draw_area.y1 = LV_MATH_MIN(point1->y, point2->y); 8bd6: f9b1 1002 ldrsh.w r1, [r1, #2] draw_area.x1 = point1->x - w_half1; 8bda: eba3 0808 sub.w r8, r3, r8 draw_area.x2 = point1->x + w_half0; 8bde: 444b add r3, r9 8be0: f8ad 309c strh.w r3, [sp, #156] ; 0x9c draw_area.y1 = LV_MATH_MIN(point1->y, point2->y); 8be4: 9b06 ldr r3, [sp, #24] draw_area.x1 = point1->x - w_half1; 8be6: f8ad 8098 strh.w r8, [sp, #152] ; 0x98 draw_area.y1 = LV_MATH_MIN(point1->y, point2->y); 8bea: f9b3 3002 ldrsh.w r3, [r3, #2] 8bee: 428b cmp r3, r1 8bf0: 4618 mov r0, r3 8bf2: bfa8 it ge 8bf4: 4608 movge r0, r1 draw_area.y2 = LV_MATH_MAX(point1->y, point2->y) - 1; 8bf6: 428b cmp r3, r1 8bf8: bfb8 it lt 8bfa: 460b movlt r3, r1 8bfc: 3b01 subs r3, #1 draw_area.y1 = LV_MATH_MIN(point1->y, point2->y); 8bfe: f8ad 009a strh.w r0, [sp, #154] ; 0x9a draw_area.y2 = LV_MATH_MAX(point1->y, point2->y) - 1; 8c02: f8ad 309e strh.w r3, [sp, #158] ; 0x9e if(simple_mode) { 8c06: b142 cbz r2, 8c1a dsc->blend_mode); 8c08: f89b 3009 ldrb.w r3, [fp, #9] _lv_blend_fill(clip, &draw_area, 8c0c: f003 0303 and.w r3, r3, #3 8c10: e9cd 6301 strd r6, r3, [sp, #4] 8c14: e69d b.n 8952 if(lv_draw_mask_get_cnt()) simple_mode = false; 8c16: 2200 movs r2, #0 8c18: e7da b.n 8bd0 is_common = _lv_area_intersect(&draw_area, clip, &draw_area); 8c1a: aa26 add r2, sp, #152 ; 0x98 8c1c: a90a add r1, sp, #40 ; 0x28 8c1e: 4610 mov r0, r2 8c20: 47a0 blx r4 if(!is_common) return; 8c22: 2800 cmp r0, #0 8c24: f43f ae9e beq.w 8964 draw_area.x1 -= vdb->area.x1; 8c28: 8a3b ldrh r3, [r7, #16] 8c2a: f8bd 4098 ldrh.w r4, [sp, #152] ; 0x98 draw_area.y1 -= vdb->area.y1; 8c2e: f8b7 c012 ldrh.w ip, [r7, #18] draw_area.x1 -= vdb->area.x1; 8c32: f9bd 0098 ldrsh.w r0, [sp, #152] ; 0x98 draw_area.x2 -= vdb->area.x1; 8c36: f8bd 609c ldrh.w r6, [sp, #156] ; 0x9c fill_area.x1 = draw_area.x1 + disp_area->x1; 8c3a: f8ad 00c4 strh.w r0, [sp, #196] ; 0xc4 draw_area.x1 -= vdb->area.x1; 8c3e: 1ae2 subs r2, r4, r3 8c40: f8ad 2098 strh.w r2, [sp, #152] ; 0x98 draw_area.y1 -= vdb->area.y1; 8c44: f9bd 209a ldrsh.w r2, [sp, #154] ; 0x9a fill_area.y1 = draw_area.y1 + disp_area->y1; 8c48: f8ad 20c6 strh.w r2, [sp, #198] ; 0xc6 draw_area.y1 -= vdb->area.y1; 8c4c: eba2 010c sub.w r1, r2, ip draw_area.x2 -= vdb->area.x1; 8c50: 1af3 subs r3, r6, r3 draw_area.y1 -= vdb->area.y1; 8c52: f8ad 109a strh.w r1, [sp, #154] ; 0x9a draw_area.x2 -= vdb->area.x1; 8c56: f9bd 109c ldrsh.w r1, [sp, #156] ; 0x9c 8c5a: f8ad 309c strh.w r3, [sp, #156] ; 0x9c draw_area.y2 -= vdb->area.y1; 8c5e: f8bd 309e ldrh.w r3, [sp, #158] ; 0x9e fill_area.x2 = draw_area.x2 + disp_area->x1; 8c62: f8ad 10c8 strh.w r1, [sp, #200] ; 0xc8 8c66: 3601 adds r6, #1 draw_area.y2 -= vdb->area.y1; 8c68: eba3 030c sub.w r3, r3, ip 8c6c: 1b36 subs r6, r6, r4 8c6e: f8ad 309e strh.w r3, [sp, #158] ; 0x9e 8c72: b233 sxth r3, r6 lv_opa_t * mask_buf = _lv_mem_buf_get(draw_area_w); 8c74: 4618 mov r0, r3 8c76: ee08 3a10 vmov s16, r3 fill_area.y2 = fill_area.y1; 8c7a: f8ad 20ca strh.w r2, [sp, #202] ; 0xca lv_opa_t * mask_buf = _lv_mem_buf_get(draw_area_w); 8c7e: 4b2f ldr r3, [pc, #188] ; (8d3c ) 8c80: 4798 blx r3 8c82: 4680 mov r8, r0 if(dashed) { 8c84: b1c5 cbz r5, 8cb8 dash_start = (vdb->area.x1 + draw_area.x1) % (dsc->dash_gap + dsc->dash_width); 8c86: f9bd 3098 ldrsh.w r3, [sp, #152] ; 0x98 8c8a: f9b7 4010 ldrsh.w r4, [r7, #16] 8c8e: f9bb 2004 ldrsh.w r2, [fp, #4] 8c92: 441c add r4, r3 8c94: f9bb 3006 ldrsh.w r3, [fp, #6] 8c98: 4413 add r3, r2 8c9a: fb94 f2f3 sdiv r2, r4, r3 8c9e: fb03 4412 mls r4, r3, r2, r4 8ca2: b224 sxth r4, r4 for(h = draw_area.y1; h <= draw_area.y2; h++) { 8ca4: f9bd 909a ldrsh.w r9, [sp, #154] ; 0x9a _lv_blend_fill(clip, &fill_area, 8ca8: f8df a09c ldr.w sl, [pc, #156] ; 8d48 for(h = draw_area.y1; h <= draw_area.y2; h++) { 8cac: f9bd 309e ldrsh.w r3, [sp, #158] ; 0x9e 8cb0: 4599 cmp r9, r3 8cb2: dd03 ble.n 8cbc _lv_mem_buf_release(mask_buf); 8cb4: 4640 mov r0, r8 8cb6: e6fe b.n 8ab6 lv_style_int_t dash_start = 0; 8cb8: 462c mov r4, r5 8cba: e7f3 b.n 8ca4 _lv_memset_ff(mask_buf, draw_area_w); 8cbc: ee18 1a10 vmov r1, s16 8cc0: 4b1f ldr r3, [pc, #124] ; (8d40 ) 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); 8cc2: 4e20 ldr r6, [pc, #128] ; (8d44 ) _lv_memset_ff(mask_buf, draw_area_w); 8cc4: 4640 mov r0, r8 8cc6: 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); 8cc8: f8bd 3098 ldrh.w r3, [sp, #152] ; 0x98 8ccc: 8a7a ldrh r2, [r7, #18] 8cce: 8a39 ldrh r1, [r7, #16] 8cd0: 444a add r2, r9 8cd2: 4419 add r1, r3 8cd4: b212 sxth r2, r2 8cd6: ee18 3a10 vmov r3, s16 8cda: b209 sxth r1, r1 8cdc: 4640 mov r0, r8 8cde: 47b0 blx r6 if(dashed) { 8ce0: b16d cbz r5, 8cfe if(mask_res != LV_DRAW_MASK_RES_TRANSP) { 8ce2: b150 cbz r0, 8cfa if(dash_cnt > dsc->dash_width) { 8ce4: f9bb 2004 ldrsh.w r2, [fp, #4] if(dash_cnt >= dsc->dash_gap + dsc->dash_width) { 8ce8: f9bb 3006 ldrsh.w r3, [fp, #6] 8cec: 4413 add r3, r2 mask_res = LV_DRAW_MASK_RES_TRANSP; 8cee: 42a2 cmp r2, r4 8cf0: bfb8 it lt 8cf2: 2000 movlt r0, #0 dash_cnt = 0; 8cf4: 429c cmp r4, r3 8cf6: bfa8 it ge 8cf8: 2400 movge r4, #0 dash_cnt ++; 8cfa: 3401 adds r4, #1 8cfc: b224 sxth r4, r4 _lv_blend_fill(clip, &fill_area, 8cfe: 2300 movs r3, #0 8d00: 9302 str r3, [sp, #8] 8d02: f89b 3008 ldrb.w r3, [fp, #8] 8d06: f8bb 2000 ldrh.w r2, [fp] 8d0a: e9cd 0300 strd r0, r3, [sp] 8d0e: a931 add r1, sp, #196 ; 0xc4 8d10: 4643 mov r3, r8 8d12: a80a add r0, sp, #40 ; 0x28 8d14: 47d0 blx sl fill_area.y1++; 8d16: f8bd 30c6 ldrh.w r3, [sp, #198] ; 0xc6 8d1a: 3301 adds r3, #1 8d1c: f8ad 30c6 strh.w r3, [sp, #198] ; 0xc6 fill_area.y2++; 8d20: f8bd 30ca ldrh.w r3, [sp, #202] ; 0xca 8d24: 3301 adds r3, #1 8d26: f8ad 30ca strh.w r3, [sp, #202] ; 0xca for(h = draw_area.y1; h <= draw_area.y2; h++) { 8d2a: f109 0901 add.w r9, r9, #1 8d2e: e7bd b.n 8cac 8d30: 00005215 .word 0x00005215 8d34: 0000dc0d .word 0x0000dc0d 8d38: 00009a1d .word 0x00009a1d 8d3c: 0000f0ed .word 0x0000f0ed 8d40: 0000f2ad .word 0x0000f2ad 8d44: 0000998d .word 0x0000998d 8d48: 0000641d .word 0x0000641d 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) { 8d4c: 45c1 cmp r9, r8 8d4e: db05 blt.n 8d5c 8d50: 464b mov r3, r9 8d52: 46c1 mov r9, r8 8d54: 4698 mov r8, r3 8d56: 463b mov r3, r7 8d58: 4637 mov r7, r6 8d5a: 461e mov r6, r3 p2.y = point1->y; p1.x = point2->x; p2.x = point1->x; } int32_t xdiff = p2.x - p1.x; 8d5c: 1bf3 subs r3, r6, r7 8d5e: 9309 str r3, [sp, #36] ; 0x24 int32_t ydiff = p2.y - p1.y; 8d60: eba8 0309 sub.w r3, r8, r9 8d64: 9308 str r3, [sp, #32] bool flat = LV_MATH_ABS(xdiff) > LV_MATH_ABS(ydiff) ? true : false; 8d66: 1bf3 subs r3, r6, r7 8d68: ea83 72e3 eor.w r2, r3, r3, asr #31 8d6c: eba2 72e3 sub.w r2, r2, r3, asr #31 8d70: 9b08 ldr r3, [sp, #32] 8d72: 9207 str r2, [sp, #28] 8d74: ea83 7ae3 eor.w sl, r3, r3, asr #31 8d78: 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); 8d7c: 4552 cmp r2, sl 8d7e: 4613 mov r3, r2 else wcorr_i = (LV_MATH_ABS(xdiff) << 5) / LV_MATH_ABS(ydiff); 8d80: bfd8 it le 8d82: 9b07 ldrle r3, [sp, #28] int32_t w = dsc->width; 8d84: f9bb 5002 ldrsh.w r5, [fp, #2] if(flat) wcorr_i = (LV_MATH_ABS(ydiff) << 5) / LV_MATH_ABS(xdiff); 8d88: bfca itet gt 8d8a: ea4f 134a movgt.w r3, sl, lsl #5 else wcorr_i = (LV_MATH_ABS(xdiff) << 5) / LV_MATH_ABS(ydiff); 8d8e: 015b lslle r3, r3, #5 if(flat) wcorr_i = (LV_MATH_ABS(ydiff) << 5) / LV_MATH_ABS(xdiff); 8d90: fbb3 f3f2 udivgt r3, r3, r2 w = (w * wcorr[wcorr_i] + 63) >> 7; /*+ 63 for rounding*/ 8d94: 4ab3 ldr r2, [pc, #716] ; (9064 ) else wcorr_i = (LV_MATH_ABS(xdiff) << 5) / LV_MATH_ABS(ydiff); 8d96: bfd8 it le 8d98: fbb3 f3fa udivle r3, r3, sl w = (w * wcorr[wcorr_i] + 63) >> 7; /*+ 63 for rounding*/ 8d9c: 5cd2 ldrb r2, [r2, r3] 8d9e: 233f movs r3, #63 ; 0x3f 8da0: 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; 8da4: f3c5 13cf ubfx r3, r5, #7, #16 8da8: 42be cmp r6, r7 8daa: bfd4 ite le 8dac: ebc3 0206 rsble r2, r3, r6 8db0: ebc3 0207 rsbgt r2, r3, r7 8db4: f8ad 2030 strh.w r2, [sp, #48] ; 0x30 draw_area.x2 = LV_MATH_MAX(p1.x, p2.x) + w; 8db8: 42be cmp r6, r7 8dba: bfac ite ge 8dbc: 199a addge r2, r3, r6 8dbe: 19da addlt r2, r3, r7 8dc0: 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); 8dc4: a90c add r1, sp, #48 ; 0x30 draw_area.y1 = LV_MATH_MIN(p1.y, p2.y) - w; 8dc6: 45c8 cmp r8, r9 8dc8: bfd4 ite le 8dca: ebc3 0208 rsble r2, r3, r8 8dce: ebc3 0209 rsbgt r2, r3, r9 draw_area.y2 = LV_MATH_MAX(p1.y, p2.y) + w; 8dd2: 45c8 cmp r8, r9 8dd4: bfac ite ge 8dd6: 4443 addge r3, r8 8dd8: 444b addlt r3, r9 draw_area.y1 = LV_MATH_MIN(p1.y, p2.y) - w; 8dda: f8ad 2032 strh.w r2, [sp, #50] ; 0x32 draw_area.y2 = LV_MATH_MAX(p1.y, p2.y) + w; 8dde: f8ad 3036 strh.w r3, [sp, #54] ; 0x36 bool is_common = _lv_area_intersect(&draw_area, &draw_area, clip); 8de2: aa0a add r2, sp, #40 ; 0x28 8de4: 4ba0 ldr r3, [pc, #640] ; (9068 ) 8de6: 4608 mov r0, r1 w = (w * wcorr[wcorr_i] + 63) >> 7; /*+ 63 for rounding*/ 8de8: 11ec asrs r4, r5, #7 bool is_common = _lv_area_intersect(&draw_area, &draw_area, clip); 8dea: 4798 blx r3 if(is_common == false) return; 8dec: 2800 cmp r0, #0 8dee: f43f adb9 beq.w 8964 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) { 8df2: 9b07 ldr r3, [sp, #28] int32_t w_half1 = w_half0 + (w & 0x1); /*Compensate rounding error*/ 8df4: f004 0401 and.w r4, r4, #1 8df8: eb04 2425 add.w r4, r4, r5, asr #8 if(flat) { 8dfc: 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, 8dfe: 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, 8e00: f3c5 250f ubfx r5, r5, #8, #16 if(flat) { 8e04: f340 80ed ble.w 8fe2 lv_draw_mask_line_points_init(&mask_right_param, p1.x, p1.y + w_half1, p2.x, p2.y + w_half1, 8e08: fa14 f389 uxtah r3, r4, r9 8e0c: b21b sxth r3, r3 8e0e: ee08 3a10 vmov s16, r3 if(xdiff > 0) { 8e12: 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, 8e14: 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, 8e18: 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, 8e1c: eba8 0505 sub.w r5, r8, r5 if(xdiff > 0) { 8e20: 2b00 cmp r3, #0 8e22: 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, 8e26: 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, 8e28: fa0f fa8a sxth.w sl, sl 8e2c: b22d sxth r5, r5 8e2e: 9301 str r3, [sp, #4] if(xdiff > 0) { 8e30: f340 80c6 ble.w 8fc0 lv_draw_mask_line_points_init(&mask_left_param, p1.x, p1.y - w_half0, p2.x, p2.y - w_half0, 8e34: 9500 str r5, [sp, #0] 8e36: 4633 mov r3, r6 8e38: 4652 mov r2, sl 8e3a: 4639 mov r1, r7 8e3c: a810 add r0, sp, #64 ; 0x40 8e3e: 4d8b ldr r5, [pc, #556] ; (906c ) 8e40: 47a8 blx r5 lv_draw_mask_line_points_init(&mask_right_param, p1.x, p1.y + w_half1, p2.x, p2.y + w_half1, 8e42: 2301 movs r3, #1 8e44: e9cd 4300 strd r4, r3, [sp] 8e48: ee18 2a10 vmov r2, s16 8e4c: 4633 mov r3, r6 8e4e: 4639 mov r1, r7 8e50: a81b add r0, sp, #108 ; 0x6c 8e52: 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); 8e54: f8df a240 ldr.w sl, [pc, #576] ; 9098 8e58: 2100 movs r1, #0 8e5a: a810 add r0, sp, #64 ; 0x40 8e5c: 47d0 blx sl int16_t mask_right_id = lv_draw_mask_add(&mask_right_param, NULL); 8e5e: 2100 movs r1, #0 int16_t mask_left_id = lv_draw_mask_add(&mask_left_param, NULL); 8e60: ee09 0a10 vmov s18, r0 int16_t mask_right_id = lv_draw_mask_add(&mask_right_param, NULL); 8e64: a81b add r0, sp, #108 ; 0x6c 8e66: 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) { 8e68: f89b 5009 ldrb.w r5, [fp, #9] 8e6c: f015 0510 ands.w r5, r5, #16 int16_t mask_right_id = lv_draw_mask_add(&mask_right_param, NULL); 8e70: ee09 0a90 vmov s19, r0 if(!dsc->raw_end) { 8e74: f040 80cf bne.w 9016 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); 8e78: 2203 movs r2, #3 8e7a: f8bd 4020 ldrh.w r4, [sp, #32] 8e7e: 9201 str r2, [sp, #4] 8e80: 1bf2 subs r2, r6, r7 8e82: f8bd 3024 ldrh.w r3, [sp, #36] ; 0x24 8e86: 9307 str r3, [sp, #28] 8e88: fa19 f282 uxtah r2, r9, r2 8e8c: 1b3b subs r3, r7, r4 8e8e: b212 sxth r2, r2 8e90: 4639 mov r1, r7 8e92: 9200 str r2, [sp, #0] 8e94: 4f75 ldr r7, [pc, #468] ; (906c ) 8e96: b21b sxth r3, r3 8e98: 464a mov r2, r9 8e9a: a826 add r0, sp, #152 ; 0x98 8e9c: 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); 8e9e: 2202 movs r2, #2 8ea0: 9201 str r2, [sp, #4] 8ea2: 9a07 ldr r2, [sp, #28] 8ea4: 4442 add r2, r8 8ea6: b212 sxth r2, r2 8ea8: 1b33 subs r3, r6, r4 8eaa: b21b sxth r3, r3 8eac: 9200 str r2, [sp, #0] 8eae: 4631 mov r1, r6 8eb0: 4642 mov r2, r8 8eb2: a831 add r0, sp, #196 ; 0xc4 8eb4: 47b8 blx r7 mask_top_id = lv_draw_mask_add(&mask_top_param, NULL); 8eb6: 4629 mov r1, r5 8eb8: a826 add r0, sp, #152 ; 0x98 8eba: 47d0 blx sl mask_bottom_id = lv_draw_mask_add(&mask_bottom_param, NULL); 8ebc: 4629 mov r1, r5 mask_top_id = lv_draw_mask_add(&mask_top_param, NULL); 8ebe: 9009 str r0, [sp, #36] ; 0x24 mask_bottom_id = lv_draw_mask_add(&mask_bottom_param, NULL); 8ec0: a831 add r0, sp, #196 ; 0xc4 8ec2: 47d0 blx sl 8ec4: 4682 mov sl, r0 } lv_disp_t * disp = _lv_refr_get_disp_refreshing(); 8ec6: 4b6a ldr r3, [pc, #424] ; (9070 ) * 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); 8ec8: 4e6a ldr r6, [pc, #424] ; (9074 ) lv_disp_t * disp = _lv_refr_get_disp_refreshing(); 8eca: 4798 blx r3 lv_disp_buf_t * vdb = lv_disp_get_buf(disp); 8ecc: 4b6a ldr r3, [pc, #424] ; (9078 ) 8ece: 4798 blx r3 draw_area.x1 -= disp_area->x1; 8ed0: f8bd 2030 ldrh.w r2, [sp, #48] ; 0x30 8ed4: 8a03 ldrh r3, [r0, #16] draw_area.x2 -= disp_area->x1; 8ed6: f8bd 4034 ldrh.w r4, [sp, #52] ; 0x34 draw_area.x1 -= disp_area->x1; 8eda: 1ad1 subs r1, r2, r3 draw_area.x2 -= disp_area->x1; 8edc: 1ae3 subs r3, r4, r3 draw_area.x1 -= disp_area->x1; 8ede: f8ad 1030 strh.w r1, [sp, #48] ; 0x30 draw_area.x2 -= disp_area->x1; 8ee2: f8ad 3034 strh.w r3, [sp, #52] ; 0x34 draw_area.y1 -= disp_area->y1; 8ee6: 8a41 ldrh r1, [r0, #18] draw_area.y2 -= disp_area->y1; 8ee8: f8bd 3036 ldrh.w r3, [sp, #54] ; 0x36 lv_disp_buf_t * vdb = lv_disp_get_buf(disp); 8eec: 4605 mov r5, r0 draw_area.y1 -= disp_area->y1; 8eee: f8bd 0032 ldrh.w r0, [sp, #50] ; 0x32 8ef2: 3401 adds r4, #1 8ef4: 1a40 subs r0, r0, r1 draw_area.y2 -= disp_area->y1; 8ef6: 1a5b subs r3, r3, r1 8ef8: 1aa4 subs r4, r4, r2 draw_area.y1 -= disp_area->y1; 8efa: f8ad 0032 strh.w r0, [sp, #50] ; 0x32 draw_area.y2 -= disp_area->y1; 8efe: 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); 8f02: a80c add r0, sp, #48 ; 0x30 8f04: b223 sxth r3, r4 8f06: 9307 str r3, [sp, #28] 8f08: 47b0 blx r6 8f0a: f5b0 7ff0 cmp.w r0, #480 ; 0x1e0 8f0e: f080 8087 bcs.w 9020 8f12: a80c add r0, sp, #48 ; 0x30 8f14: 47b0 blx r6 8f16: 4607 mov r7, r0 lv_opa_t * mask_buf = _lv_mem_buf_get(mask_buf_size); 8f18: 4b58 ldr r3, [pc, #352] ; (907c ) 8f1a: 4638 mov r0, r7 8f1c: 4798 blx r3 lv_area_t fill_area; fill_area.x1 = draw_area.x1 + disp_area->x1; 8f1e: 8a2b ldrh r3, [r5, #16] 8f20: f8bd 2030 ldrh.w r2, [sp, #48] ; 0x30 8f24: 441a add r2, r3 8f26: b212 sxth r2, r2 8f28: 9208 str r2, [sp, #32] 8f2a: f8ad 2038 strh.w r2, [sp, #56] ; 0x38 fill_area.x2 = draw_area.x2 + disp_area->x1; 8f2e: f8bd 2034 ldrh.w r2, [sp, #52] ; 0x34 8f32: 4413 add r3, r2 8f34: f8ad 303c strh.w r3, [sp, #60] ; 0x3c fill_area.y1 = draw_area.y1 + disp_area->y1; 8f38: 8a6a ldrh r2, [r5, #18] 8f3a: f8bd 3032 ldrh.w r3, [sp, #50] ; 0x32 8f3e: 4413 add r3, r2 8f40: b21b sxth r3, r3 8f42: f8ad 303a strh.w r3, [sp, #58] ; 0x3a fill_area.y2 = fill_area.y1; 8f46: 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); 8f4a: 4639 mov r1, r7 8f4c: 4b4c ldr r3, [pc, #304] ; (9080 ) lv_opa_t * mask_buf = _lv_mem_buf_get(mask_buf_size); 8f4e: 4606 mov r6, r0 _lv_memset_ff(mask_buf, mask_buf_size); 8f50: 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++) { 8f52: f9bd 8032 ldrsh.w r8, [sp, #50] ; 0x32 8f56: f9b5 3012 ldrsh.w r3, [r5, #18] uint32_t mask_p = 0; 8f5a: f04f 0900 mov.w r9, #0 for(h = draw_area.y1 + disp_area->y1; h <= draw_area.y2 + disp_area->y1; h++) { 8f5e: 4498 add r8, r3 8f60: f9bd 3036 ldrsh.w r3, [sp, #54] ; 0x36 8f64: f9b5 2012 ldrsh.w r2, [r5, #18] 8f68: 4413 add r3, r2 8f6a: 4598 cmp r8, r3 8f6c: dd5b ble.n 9026 _lv_memset_ff(mask_buf, mask_buf_size); } } /*Flush the last part*/ if(fill_area.y1 != fill_area.y2) { 8f6e: f9bd 303e ldrsh.w r3, [sp, #62] ; 0x3e 8f72: f9bd 203a ldrsh.w r2, [sp, #58] ; 0x3a 8f76: 429a cmp r2, r3 8f78: d013 beq.n 8fa2 fill_area.y2--; 8f7a: 3b01 subs r3, #1 8f7c: 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); 8f80: f89b 3009 ldrb.w r3, [fp, #9] _lv_blend_fill(&fill_area, clip, 8f84: f8bb 2000 ldrh.w r2, [fp] 8f88: 4c3e ldr r4, [pc, #248] ; (9084 ) 8f8a: f003 0303 and.w r3, r3, #3 8f8e: 9302 str r3, [sp, #8] 8f90: f89b 3008 ldrb.w r3, [fp, #8] 8f94: 9301 str r3, [sp, #4] 8f96: 2302 movs r3, #2 8f98: 9300 str r3, [sp, #0] 8f9a: a90a add r1, sp, #40 ; 0x28 8f9c: 4633 mov r3, r6 8f9e: a80e add r0, sp, #56 ; 0x38 8fa0: 47a0 blx r4 } _lv_mem_buf_release(mask_buf); 8fa2: 4b39 ldr r3, [pc, #228] ; (9088 ) lv_draw_mask_remove_id(mask_left_id); 8fa4: 4c39 ldr r4, [pc, #228] ; (908c ) _lv_mem_buf_release(mask_buf); 8fa6: 4630 mov r0, r6 8fa8: 4798 blx r3 lv_draw_mask_remove_id(mask_left_id); 8faa: ee19 0a10 vmov r0, s18 8fae: 47a0 blx r4 lv_draw_mask_remove_id(mask_right_id); 8fb0: ee19 0a90 vmov r0, s19 8fb4: 47a0 blx r4 lv_draw_mask_remove_id(mask_top_id); 8fb6: 9809 ldr r0, [sp, #36] ; 0x24 8fb8: 47a0 blx r4 lv_draw_mask_remove_id(mask_bottom_id); 8fba: 4650 mov r0, sl 8fbc: 47a0 blx r4 8fbe: e4d1 b.n 8964 lv_draw_mask_line_points_init(&mask_left_param, p1.x, p1.y + w_half1, p2.x, p2.y + w_half1, 8fc0: ee18 2a10 vmov r2, s16 8fc4: 9400 str r4, [sp, #0] 8fc6: 4633 mov r3, r6 8fc8: 4639 mov r1, r7 8fca: 4c28 ldr r4, [pc, #160] ; (906c ) 8fcc: a810 add r0, sp, #64 ; 0x40 8fce: 47a0 blx r4 lv_draw_mask_line_points_init(&mask_right_param, p1.x, p1.y - w_half0, p2.x, p2.y - w_half0, 8fd0: 2301 movs r3, #1 8fd2: e9cd 5300 strd r5, r3, [sp] 8fd6: 4652 mov r2, sl 8fd8: 4633 mov r3, r6 8fda: 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, 8fdc: a81b add r0, sp, #108 ; 0x6c 8fde: 47a0 blx r4 8fe0: e738 b.n 8e54 lv_draw_mask_line_points_init(&mask_left_param, p1.x + w_half1, p1.y, p2.x + w_half1, p2.y, 8fe2: fa14 f386 uxtah r3, r4, r6 8fe6: 2200 movs r2, #0 8fe8: fa14 f487 uxtah r4, r4, r7 8fec: b221 sxth r1, r4 8fee: e9cd 8200 strd r8, r2, [sp] 8ff2: b21b sxth r3, r3 8ff4: 464a mov r2, r9 8ff6: 4c1d ldr r4, [pc, #116] ; (906c ) 8ff8: a810 add r0, sp, #64 ; 0x40 8ffa: 47a0 blx r4 8ffc: 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, 9000: b2ba uxth r2, r7 9002: 1b51 subs r1, r2, r5 9004: ebaa 0305 sub.w r3, sl, r5 9008: 2201 movs r2, #1 900a: e9cd 8200 strd r8, r2, [sp] 900e: b21b sxth r3, r3 9010: 464a mov r2, r9 9012: b209 sxth r1, r1 9014: e7e2 b.n 8fdc int16_t mask_bottom_id = LV_MASK_ID_INV; 9016: f04f 3aff mov.w sl, #4294967295 ; 0xffffffff int16_t mask_top_id = LV_MASK_ID_INV; 901a: f8cd a024 str.w sl, [sp, #36] ; 0x24 901e: e752 b.n 8ec6 size_t mask_buf_size = LV_MATH_MIN(lv_area_get_size(&draw_area), LV_HOR_RES_MAX); 9020: f44f 77f0 mov.w r7, #480 ; 0x1e0 9024: e778 b.n 8f18 lv_draw_mask_res_t mask_res = lv_draw_mask_apply(&mask_buf[mask_p], x, h, draw_area_w); 9026: eb06 0309 add.w r3, r6, r9 902a: ee08 3a10 vmov s16, r3 902e: 9908 ldr r1, [sp, #32] 9030: 9b07 ldr r3, [sp, #28] 9032: 4c17 ldr r4, [pc, #92] ; (9090 ) 9034: ee18 0a10 vmov r0, s16 9038: fa0f f288 sxth.w r2, r8 903c: 47a0 blx r4 if(mask_res == LV_DRAW_MASK_RES_TRANSP) { 903e: b920 cbnz r0, 904a _lv_memset_00(&mask_buf[mask_p], draw_area_w); 9040: 9907 ldr r1, [sp, #28] 9042: 4b14 ldr r3, [pc, #80] ; (9094 ) 9044: ee18 0a10 vmov r0, s16 9048: 4798 blx r3 mask_p += draw_area_w; 904a: 9b07 ldr r3, [sp, #28] 904c: 4499 add r9, r3 if((uint32_t) mask_p + draw_area_w < mask_buf_size) { 904e: 444b add r3, r9 9050: 429f cmp r7, r3 9052: d923 bls.n 909c fill_area.y2 ++; 9054: f8bd 303e ldrh.w r3, [sp, #62] ; 0x3e 9058: 3301 adds r3, #1 905a: f8ad 303e strh.w r3, [sp, #62] ; 0x3e for(h = draw_area.y1 + disp_area->y1; h <= draw_area.y2 + disp_area->y1; h++) { 905e: f108 0801 add.w r8, r8, #1 9062: e77d b.n 8f60 9064: 00027662 .word 0x00027662 9068: 0000e0b9 .word 0x0000e0b9 906c: 00009a39 .word 0x00009a39 9070: 00005215 .word 0x00005215 9074: 0000e09d .word 0x0000e09d 9078: 0000dc0d .word 0x0000dc0d 907c: 0000f0ed .word 0x0000f0ed 9080: 0000f2ad .word 0x0000f2ad 9084: 0000641d .word 0x0000641d 9088: 0000eda1 .word 0x0000eda1 908c: 000099cd .word 0x000099cd 9090: 0000998d .word 0x0000998d 9094: 0000f251 .word 0x0000f251 9098: 0000993d .word 0x0000993d dsc->blend_mode); 909c: f89b 3009 ldrb.w r3, [fp, #9] _lv_blend_fill(&fill_area, clip, 90a0: f8bb 2000 ldrh.w r2, [fp] 90a4: 4c0d ldr r4, [pc, #52] ; (90dc ) 90a6: f003 0303 and.w r3, r3, #3 90aa: 9302 str r3, [sp, #8] 90ac: f89b 3008 ldrb.w r3, [fp, #8] 90b0: 9301 str r3, [sp, #4] 90b2: 2302 movs r3, #2 90b4: 9300 str r3, [sp, #0] 90b6: a90a add r1, sp, #40 ; 0x28 90b8: 4633 mov r3, r6 90ba: a80e add r0, sp, #56 ; 0x38 90bc: 47a0 blx r4 fill_area.y1 = fill_area.y2 + 1; 90be: f8bd 303e ldrh.w r3, [sp, #62] ; 0x3e 90c2: 3301 adds r3, #1 90c4: b21b sxth r3, r3 90c6: f8ad 303a strh.w r3, [sp, #58] ; 0x3a fill_area.y2 = fill_area.y1; 90ca: f8ad 303e strh.w r3, [sp, #62] ; 0x3e _lv_memset_ff(mask_buf, mask_buf_size); 90ce: 4639 mov r1, r7 90d0: 4b03 ldr r3, [pc, #12] ; (90e0 ) 90d2: 4630 mov r0, r6 90d4: 4798 blx r3 mask_p = 0; 90d6: f04f 0900 mov.w r9, #0 90da: e7c0 b.n 905e 90dc: 0000641d .word 0x0000641d 90e0: 0000f2ad .word 0x0000f2ad 000090e4 : } 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; 90e4: 29f9 cmp r1, #249 ; 0xf9 90e6: d80a bhi.n 90fe if(mask_new <= LV_OPA_MIN) return 0; 90e8: 2905 cmp r1, #5 90ea: d907 bls.n 90fc return LV_MATH_UDIV255(mask_act * mask_new);// >> 8); 90ec: fb10 f001 smulbb r0, r0, r1 90f0: f248 0381 movw r3, #32897 ; 0x8081 90f4: 4358 muls r0, r3 90f6: f3c0 50c7 ubfx r0, r0, #23, #8 90fa: 4770 bx lr if(mask_new <= LV_OPA_MIN) return 0; 90fc: 2000 movs r0, #0 } 90fe: 4770 bx lr 00009100 : { 9100: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} 9104: 9e08 ldr r6, [sp, #32] 9106: 461c mov r4, r3 abs_y -= p->origo.y; 9108: 8ab3 ldrh r3, [r6, #20] 910a: 1ad2 subs r2, r2, r3 abs_x -= p->origo.x; 910c: 8a73 ldrh r3, [r6, #18] 910e: 1ac9 subs r1, r1, r3 9110: b20f sxth r7, r1 if(p->flat) { 9112: f896 3028 ldrb.w r3, [r6, #40] ; 0x28 if(p->steep == 0) { 9116: 6a31 ldr r1, [r6, #32] { 9118: 4605 mov r5, r0 abs_y -= p->origo.y; 911a: b212 sxth r2, r2 if(p->flat) { 911c: f003 0001 and.w r0, r3, #1 if(p->steep == 0) { 9120: bb99 cbnz r1, 918a if(p->cfg.side == LV_DRAW_MASK_LINE_SIDE_LEFT || 9122: 7c33 ldrb r3, [r6, #16] 9124: f003 0602 and.w r6, r3, #2 if(p->flat) { 9128: b180 cbz r0, 914c if(p->cfg.side == LV_DRAW_MASK_LINE_SIDE_LEFT || 912a: b13e cbz r6, 913c else if(p->cfg.side == LV_DRAW_MASK_LINE_SIDE_TOP && abs_y + 1 < 0) return LV_DRAW_MASK_RES_FULL_COVER; 912c: f003 0303 and.w r3, r3, #3 9130: 2b02 cmp r3, #2 9132: d105 bne.n 9140 p->cfg.side == LV_DRAW_MASK_LINE_SIDE_RIGHT) return LV_DRAW_MASK_RES_FULL_COVER; 9134: 3201 adds r2, #1 9136: bfac ite ge 9138: 2000 movge r0, #0 913a: 2001 movlt r0, #1 } 913c: 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; 9140: 2b03 cmp r3, #3 9142: d101 bne.n 9148 9144: 2a00 cmp r2, #0 9146: dcf9 bgt.n 913c return LV_DRAW_MASK_RES_TRANSP; 9148: 2000 movs r0, #0 914a: e7f7 b.n 913c if(p->cfg.side == LV_DRAW_MASK_LINE_SIDE_TOP || 914c: 2e00 cmp r6, #0 914e: f040 8187 bne.w 9460 else if(p->cfg.side == LV_DRAW_MASK_LINE_SIDE_RIGHT && abs_x > 0) return LV_DRAW_MASK_RES_FULL_COVER; 9152: f003 0003 and.w r0, r3, #3 9156: 2801 cmp r0, #1 9158: d10a bne.n 9170 915a: 2f00 cmp r7, #0 915c: dcee bgt.n 913c if(abs_x + len < 0) return LV_DRAW_MASK_RES_TRANSP; 915e: 42e7 cmn r7, r4 9160: d4f2 bmi.n 9148 if(k < 0) k = 0; 9162: 2f00 cmp r7, #0 9164: f300 817e bgt.w 9464 int32_t k = - abs_x; 9168: 4279 negs r1, r7 if(k >= len) return LV_DRAW_MASK_RES_TRANSP; 916a: 428c cmp r4, r1 916c: ddec ble.n 9148 916e: e09b b.n 92a8 else if(p->cfg.side == LV_DRAW_MASK_LINE_SIDE_LEFT) { 9170: 2800 cmp r0, #0 9172: d1f4 bne.n 915e if(abs_x + len < 0) return LV_DRAW_MASK_RES_FULL_COVER; 9174: 1939 adds r1, r7, r4 9176: f100 8173 bmi.w 9460 if(k < 0) return LV_DRAW_MASK_RES_TRANSP; 917a: 2f00 cmp r7, #0 917c: dce4 bgt.n 9148 int32_t k = - abs_x; 917e: 4278 negs r0, r7 if(k >= 0 && k < len) _lv_memset_00(&mask_buf[k], len - k); 9180: 42a0 cmp r0, r4 9182: f2c0 809c blt.w 92be return LV_DRAW_MASK_RES_CHANGED; 9186: 2002 movs r0, #2 9188: e7d8 b.n 913c if(p->flat) { 918a: f003 0c02 and.w ip, r3, #2 918e: 2800 cmp r0, #0 9190: f000 8097 beq.w 92c2 y_at_x = (int32_t)((int32_t)p->yx_steep * abs_x) >> 10; 9194: 69f1 ldr r1, [r6, #28] 9196: fb07 f301 mul.w r3, r7, r1 if(p->yx_steep > 0) { 919a: 2900 cmp r1, #0 y_at_x = (int32_t)((int32_t)p->yx_steep * abs_x) >> 10; 919c: ea4f 23a3 mov.w r3, r3, asr #10 if(p->inv) { 91a0: fa5f f08c uxtb.w r0, ip if(p->yx_steep > 0) { 91a4: dd05 ble.n 91b2 if(y_at_x > abs_y) { 91a6: 429a cmp r2, r3 91a8: da05 bge.n 91b6 p->cfg.side == LV_DRAW_MASK_LINE_SIDE_RIGHT) return LV_DRAW_MASK_RES_FULL_COVER; 91aa: 3800 subs r0, #0 91ac: bf18 it ne 91ae: 2001 movne r0, #1 91b0: e7c4 b.n 913c if(y_at_x < abs_y) { 91b2: 429a cmp r2, r3 91b4: dcf9 bgt.n 91aa y_at_x = (int32_t)((int32_t)p->yx_steep * (abs_x + len)) >> 10; 91b6: 193b adds r3, r7, r4 91b8: 434b muls r3, r1 if(p->yx_steep > 0) { 91ba: 2900 cmp r1, #0 y_at_x = (int32_t)((int32_t)p->yx_steep * (abs_x + len)) >> 10; 91bc: ea4f 23a3 mov.w r3, r3, asr #10 if(p->yx_steep > 0) { 91c0: dd05 ble.n 91ce if(y_at_x < abs_y) { 91c2: 429a cmp r2, r3 91c4: dd06 ble.n 91d4 p->cfg.side == LV_DRAW_MASK_LINE_SIDE_RIGHT) return LV_DRAW_MASK_RES_FULL_COVER; 91c6: fab0 f080 clz r0, r0 91ca: 0940 lsrs r0, r0, #5 91cc: e7b6 b.n 913c if(y_at_x > abs_y) { 91ce: 429a cmp r2, r3 91d0: dbf9 blt.n 91c6 else xe = (((abs_y + 1) << 8) * p->xy_steep) >> 10; 91d2: 3201 adds r2, #1 91d4: 69b3 ldr r3, [r6, #24] 91d6: 0212 lsls r2, r2, #8 91d8: 435a muls r2, r3 91da: 1292 asrs r2, r2, #10 int32_t xei = xe >> 8; 91dc: 1211 asrs r1, r2, #8 if(xef == 0) px_h = 255; 91de: f012 02ff ands.w r2, r2, #255 ; 0xff else px_h = 255 - (((255 - xef) * p->spx) >> 8); 91e2: bf1f itttt ne 91e4: 6a73 ldrne r3, [r6, #36] ; 0x24 91e6: f1c2 08ff rsbne r8, r2, #255 ; 0xff 91ea: fb03 f808 mulne.w r8, r3, r8 91ee: ea4f 2828 movne.w r8, r8, asr #8 91f2: bf14 ite ne 91f4: f1c8 08ff rsbne r8, r8, #255 ; 0xff if(xef == 0) px_h = 255; 91f8: f04f 08ff moveq.w r8, #255 ; 0xff int32_t k = xei - abs_x; 91fc: 1bcf subs r7, r1, r7 if(xef) { 91fe: 2a00 cmp r2, #0 9200: d054 beq.n 92ac if(k >= 0 && k < len) { 9202: 2f00 cmp r7, #0 9204: db0f blt.n 9226 9206: 42bc cmp r4, r7 9208: dd0d ble.n 9226 m = 255 - (((255 - xef) * (255 - px_h)) >> 9); 920a: f1c2 01ff rsb r1, r2, #255 ; 0xff 920e: f1c8 03ff rsb r3, r8, #255 ; 0xff 9212: 4359 muls r1, r3 9214: f3c1 2147 ubfx r1, r1, #9, #8 if(p->inv) m = 255 - m; 9218: b908 cbnz r0, 921e m = 255 - (((255 - xef) * (255 - px_h)) >> 9); 921a: 43c9 mvns r1, r1 921c: b2c9 uxtb r1, r1 mask_buf[k] = mask_mix(mask_buf[k], m); 921e: 5de8 ldrb r0, [r5, r7] 9220: 4ba3 ldr r3, [pc, #652] ; (94b0 ) 9222: 4798 blx r3 9224: 55e8 strb r0, [r5, r7] k++; 9226: 1c7a adds r2, r7, #1 mask_buf[k] = mask_mix(mask_buf[k], m); 9228: f8df 9284 ldr.w r9, [pc, #644] ; 94b0 while(px_h > p->spx) { 922c: 6a71 ldr r1, [r6, #36] ; 0x24 if(p->inv) m = 255 - m; 922e: f896 3028 ldrb.w r3, [r6, #40] ; 0x28 while(px_h > p->spx) { 9232: 4588 cmp r8, r1 if(p->inv) m = 255 - m; 9234: f003 0302 and.w r3, r3, #2 while(px_h > p->spx) { 9238: dc18 bgt.n 926c if(k < len && k >= 0) { 923a: 4294 cmp r4, r2 923c: dd29 ble.n 9292 923e: 2a00 cmp r2, #0 9240: db27 blt.n 9292 int32_t x_inters = (px_h * p->xy_steep) >> 10; 9242: 69b1 ldr r1, [r6, #24] if(p->yx_steep < 0) m = 255 - m; 9244: 69f0 ldr r0, [r6, #28] int32_t x_inters = (px_h * p->xy_steep) >> 10; 9246: fb01 f108 mul.w r1, r1, r8 924a: 1289 asrs r1, r1, #10 m = (x_inters * px_h) >> 9; 924c: fb08 f101 mul.w r1, r8, r1 9250: f3c1 2147 ubfx r1, r1, #9, #8 if(p->yx_steep < 0) m = 255 - m; 9254: 2800 cmp r0, #0 9256: bfbc itt lt 9258: 43c9 mvnlt r1, r1 925a: b2c9 uxtblt r1, r1 if(p->inv) m = 255 - m; 925c: b10b cbz r3, 9262 925e: 43c9 mvns r1, r1 9260: b2c9 uxtb r1, r1 mask_buf[k] = mask_mix(mask_buf[k], m); 9262: 5ca8 ldrb r0, [r5, r2] 9264: 4b92 ldr r3, [pc, #584] ; (94b0 ) 9266: 4798 blx r3 9268: 54a8 strb r0, [r5, r2] 926a: e012 b.n 9292 if(k >= 0 && k < len) { 926c: 2a00 cmp r2, #0 926e: db0a blt.n 9286 9270: 4294 cmp r4, r2 9272: dd08 ble.n 9286 m = px_h - (p->spx >> 1); 9274: eba8 0161 sub.w r1, r8, r1, asr #1 9278: b2c9 uxtb r1, r1 if(p->inv) m = 255 - m; 927a: b10b cbz r3, 9280 927c: 43c9 mvns r1, r1 927e: b2c9 uxtb r1, r1 mask_buf[k] = mask_mix(mask_buf[k], m); 9280: 5ca8 ldrb r0, [r5, r2] 9282: 47c8 blx r9 9284: 54a8 strb r0, [r5, r2] px_h -= p->spx; 9286: 6a73 ldr r3, [r6, #36] ; 0x24 k++; 9288: 3201 adds r2, #1 if(k >= len) break; 928a: 4294 cmp r4, r2 px_h -= p->spx; 928c: eba8 0803 sub.w r8, r8, r3 if(k >= len) break; 9290: dccc bgt.n 922c if(p->inv) { 9292: f896 3028 ldrb.w r3, [r6, #40] ; 0x28 9296: 0799 lsls r1, r3, #30 9298: d50a bpl.n 92b0 if(k > len) { 929a: 42bc cmp r4, r7 929c: f6ff af54 blt.w 9148 if(k >= 0) { 92a0: 2f00 cmp r7, #0 92a2: f6ff af70 blt.w 9186 _lv_memset_00(&mask_buf[0], k); 92a6: 4639 mov r1, r7 if(k >= 0) _lv_memset_00(&mask_buf[0], k); 92a8: 4628 mov r0, r5 92aa: e083 b.n 93b4 int32_t k = xei - abs_x; 92ac: 463a mov r2, r7 92ae: e7bb b.n 9228 if(k < 0) { 92b0: 1c50 adds r0, r2, #1 92b2: f53f af49 bmi.w 9148 if(k <= len) { 92b6: 4284 cmp r4, r0 if(k >= 0) _lv_memset_00(&mask_buf[k], len - k); 92b8: f6ff af65 blt.w 9186 92bc: 1a21 subs r1, r4, r0 92be: 4428 add r0, r5 92c0: e078 b.n 93b4 x_at_y = (int32_t)((int32_t)p->xy_steep * abs_y) >> 10; 92c2: 69b1 ldr r1, [r6, #24] 92c4: fb01 f302 mul.w r3, r1, r2 if(p->xy_steep > 0) x_at_y++; 92c8: 2900 cmp r1, #0 x_at_y = (int32_t)((int32_t)p->xy_steep * abs_y) >> 10; 92ca: ea4f 23a3 mov.w r3, r3, asr #10 if(p->xy_steep > 0) x_at_y++; 92ce: bfcc ite gt 92d0: f103 0e01 addgt.w lr, r3, #1 x_at_y = (int32_t)((int32_t)p->xy_steep * abs_y) >> 10; 92d4: 469e movle lr, r3 if(x_at_y < abs_x) { 92d6: 4577 cmp r7, lr if(p->inv) { 92d8: fa5f f08c uxtb.w r0, ip if(x_at_y < abs_x) { 92dc: f73f af65 bgt.w 91aa if(x_at_y > abs_x + len) { 92e0: eb07 0c04 add.w ip, r7, r4 92e4: 4563 cmp r3, ip 92e6: f73f af6e bgt.w 91c6 int32_t xs = ((abs_y << 8) * p->xy_steep) >> 10; 92ea: ea4f 2c02 mov.w ip, r2, lsl #8 int32_t xe = (((abs_y + 1) << 8) * p->xy_steep) >> 10; 92ee: 3201 adds r2, #1 92f0: 0212 lsls r2, r2, #8 92f2: 434a muls r2, r1 int32_t xs = ((abs_y << 8) * p->xy_steep) >> 10; 92f4: fb01 fc0c mul.w ip, r1, ip int32_t xei = xe >> 8; 92f8: ea4f 49a2 mov.w r9, r2, asr #18 if(xsi != xei && (p->xy_steep < 0 && xsf == 0)) { 92fc: ebb9 4fac cmp.w r9, ip, asr #18 int32_t xsf = xs & 0xFF; 9300: f3cc 2387 ubfx r3, ip, #10, #8 k = xsi - abs_x; 9304: ebc7 4aac rsb sl, r7, ip, asr #18 if(xsi != xei && (p->xy_steep < 0 && xsf == 0)) { 9308: f000 80ae beq.w 9468 930c: 2900 cmp r1, #0 930e: da5a bge.n 93c6 k--; 9310: f10a 38ff add.w r8, sl, #4294967295 ; 0xffffffff if(xsi != xei && (p->xy_steep < 0 && xsf == 0)) { 9314: 2b00 cmp r3, #0 9316: f000 80c9 beq.w 94ac y_inters = (xsf * (-p->yx_steep)) >> 10; 931a: 69f2 ldr r2, [r6, #28] 931c: 4252 negs r2, r2 931e: 435a muls r2, r3 if(k >= 0 && k < len) { 9320: f1ba 0f00 cmp.w sl, #0 y_inters = (xsf * (-p->yx_steep)) >> 10; 9324: ea4f 22a2 mov.w r2, r2, asr #10 if(k >= 0 && k < len) { 9328: db0d blt.n 9346 932a: 4554 cmp r4, sl 932c: dd0b ble.n 9346 m = (y_inters * xsf) >> 9; 932e: 4353 muls r3, r2 9330: f3c3 2147 ubfx r1, r3, #9, #8 if(p->inv) m = 255 - m; 9334: b108 cbz r0, 933a 9336: 43c9 mvns r1, r1 9338: b2c9 uxtb r1, r1 mask_buf[k] = mask_mix(mask_buf[k], m); 933a: f815 000a ldrb.w r0, [r5, sl] 933e: 4b5c ldr r3, [pc, #368] ; (94b0 ) 9340: 4798 blx r3 9342: f805 000a strb.w r0, [r5, sl] if(k >= 0 && k < len) { 9346: f1b8 0f00 cmp.w r8, #0 934a: db17 blt.n 937c 934c: 4544 cmp r4, r8 934e: dd15 ble.n 937c int32_t x_inters = ((255 - y_inters) * (-p->xy_steep)) >> 10; 9350: 69b3 ldr r3, [r6, #24] mask_buf[k] = mask_mix(mask_buf[k], m); 9352: f815 0008 ldrb.w r0, [r5, r8] int32_t x_inters = ((255 - y_inters) * (-p->xy_steep)) >> 10; 9356: f1c2 02ff rsb r2, r2, #255 ; 0xff 935a: 4259 negs r1, r3 935c: 4351 muls r1, r2 if(p->inv) m = 255 - m; 935e: f896 3028 ldrb.w r3, [r6, #40] ; 0x28 int32_t x_inters = ((255 - y_inters) * (-p->xy_steep)) >> 10; 9362: 1289 asrs r1, r1, #10 m = 255 - (((255 - y_inters) * x_inters) >> 9); 9364: 4351 muls r1, r2 if(p->inv) m = 255 - m; 9366: 079f lsls r7, r3, #30 m = 255 - (((255 - y_inters) * x_inters) >> 9); 9368: f3c1 2147 ubfx r1, r1, #9, #8 936c: bf58 it pl 936e: 43c9 mvnpl r1, r1 mask_buf[k] = mask_mix(mask_buf[k], m); 9370: 4b4f ldr r3, [pc, #316] ; (94b0 ) m = 255 - (((255 - y_inters) * x_inters) >> 9); 9372: bf58 it pl 9374: b2c9 uxtbpl r1, r1 mask_buf[k] = mask_mix(mask_buf[k], m); 9376: 4798 blx r3 9378: f805 0008 strb.w r0, [r5, r8] if(p->inv) { 937c: f896 3028 ldrb.w r3, [r6, #40] ; 0x28 9380: 079e lsls r6, r3, #30 9382: d51a bpl.n 93ba if(k > len) k = len; 9384: 4544 cmp r4, r8 9386: f6ff aefe blt.w 9186 else if(k > 0) _lv_memset_00(&mask_buf[0], k); 938a: f1b8 0f00 cmp.w r8, #0 938e: f77f aefa ble.w 9186 9392: 4641 mov r1, r8 9394: e788 b.n 92a8 k++; 9396: f108 0801 add.w r8, r8, #1 939a: 45a0 cmp r8, r4 939c: bfa8 it ge 939e: 46a0 movge r8, r4 if(k == 0) return LV_DRAW_MASK_RES_TRANSP; 93a0: f1b8 0f00 cmp.w r8, #0 93a4: f43f aed0 beq.w 9148 else if(k > 0) _lv_memset_00(&mask_buf[k], len - k); 93a8: f77f aeed ble.w 9186 93ac: eba4 0108 sub.w r1, r4, r8 93b0: eb05 0008 add.w r0, r5, r8 else if(k > 0) _lv_memset_00(&mask_buf[k], len - k); 93b4: 4b3f ldr r3, [pc, #252] ; (94b4 ) 93b6: 4798 blx r3 93b8: e6e5 b.n 9186 k += 2; 93ba: f10a 0001 add.w r0, sl, #1 if(k > len) return LV_DRAW_MASK_RES_FULL_COVER; 93be: 4284 cmp r4, r0 93c0: db4e blt.n 9460 if(k >= 0) _lv_memset_00(&mask_buf[k], len - k); 93c2: 2800 cmp r0, #0 93c4: e778 b.n 92b8 y_inters = ((255 - xsf) * p->yx_steep) >> 10; 93c6: 69f7 ldr r7, [r6, #28] 93c8: f1c3 03ff rsb r3, r3, #255 ; 0xff 93cc: 435f muls r7, r3 if(k >= 0 && k < len) { 93ce: f1ba 0f00 cmp.w sl, #0 y_inters = ((255 - xsf) * p->yx_steep) >> 10; 93d2: ea4f 27a7 mov.w r7, r7, asr #10 if(k >= 0 && k < len) { 93d6: db0d blt.n 93f4 93d8: 4554 cmp r4, sl 93da: dd0b ble.n 93f4 m = 255 - ((y_inters * (255 - xsf)) >> 9); 93dc: 437b muls r3, r7 93de: f3c3 2147 ubfx r1, r3, #9, #8 if(p->inv) m = 255 - m; 93e2: b908 cbnz r0, 93e8 m = 255 - ((y_inters * (255 - xsf)) >> 9); 93e4: 43c9 mvns r1, r1 93e6: b2c9 uxtb r1, r1 mask_buf[k] = mask_mix(mask_buf[k], m); 93e8: f815 000a ldrb.w r0, [r5, sl] 93ec: 4b30 ldr r3, [pc, #192] ; (94b0 ) 93ee: 4798 blx r3 93f0: f805 000a strb.w r0, [r5, sl] if(k >= 0 && k < len) { 93f4: f11a 0201 adds.w r2, sl, #1 93f8: d415 bmi.n 9426 93fa: 4294 cmp r4, r2 93fc: dd13 ble.n 9426 int32_t x_inters = ((255 - y_inters) * p->xy_steep) >> 10; 93fe: 69b3 ldr r3, [r6, #24] 9400: f1c7 07ff rsb r7, r7, #255 ; 0xff 9404: fb03 f107 mul.w r1, r3, r7 9408: 1289 asrs r1, r1, #10 if(p->inv) m = 255 - m; 940a: f896 3028 ldrb.w r3, [r6, #40] ; 0x28 m = ((255 - y_inters) * x_inters) >> 9; 940e: 4379 muls r1, r7 if(p->inv) m = 255 - m; 9410: 0798 lsls r0, r3, #30 m = ((255 - y_inters) * x_inters) >> 9; 9412: f3c1 2147 ubfx r1, r1, #9, #8 if(p->inv) m = 255 - m; 9416: bf48 it mi 9418: 43c9 mvnmi r1, r1 mask_buf[k] = mask_mix(mask_buf[k], m); 941a: 5ca8 ldrb r0, [r5, r2] 941c: 4b24 ldr r3, [pc, #144] ; (94b0 ) if(p->inv) m = 255 - m; 941e: bf48 it mi 9420: b2c9 uxtbmi r1, r1 mask_buf[k] = mask_mix(mask_buf[k], m); 9422: 4798 blx r3 9424: 54a8 strb r0, [r5, r2] if(p->inv) { 9426: f896 3028 ldrb.w r3, [r6, #40] ; 0x28 942a: 079b lsls r3, r3, #30 942c: d508 bpl.n 9440 if(k > len) return LV_DRAW_MASK_RES_TRANSP; 942e: 4554 cmp r4, sl 9430: f6ff ae8a blt.w 9148 if(k >= 0) _lv_memset_00(&mask_buf[0], k); 9434: f1ba 0f00 cmp.w sl, #0 9438: f6ff aea5 blt.w 9186 943c: 4651 mov r1, sl 943e: e733 b.n 92a8 k++; 9440: f10a 0a02 add.w sl, sl, #2 9444: 45a2 cmp sl, r4 9446: bfa8 it ge 9448: 46a2 movge sl, r4 if(k == 0) return LV_DRAW_MASK_RES_TRANSP; 944a: f1ba 0f00 cmp.w sl, #0 944e: f43f ae7b beq.w 9148 else if(k > 0) _lv_memset_00(&mask_buf[k], len - k); 9452: f77f ae98 ble.w 9186 9456: eba4 010a sub.w r1, r4, sl 945a: eb05 000a add.w r0, r5, sl 945e: e7a9 b.n 93b4 if(k > len) return LV_DRAW_MASK_RES_FULL_COVER; 9460: 2001 movs r0, #1 9462: e66b b.n 913c if(k >= len) return LV_DRAW_MASK_RES_TRANSP; 9464: 2c00 cmp r4, #0 9466: e681 b.n 916c k = xsi - abs_x; 9468: 46d0 mov r8, sl if(k >= 0 && k < len) { 946a: f1b8 0f00 cmp.w r8, #0 946e: db0f blt.n 9490 9470: 4544 cmp r4, r8 9472: dd0d ble.n 9490 int32_t xef = xe & 0xFF; 9474: f3c2 2187 ubfx r1, r2, #10, #8 m = (xsf + xef) >> 1; 9478: 4419 add r1, r3 947a: f3c1 0147 ubfx r1, r1, #1, #8 if(p->inv) m = 255 - m; 947e: b108 cbz r0, 9484 9480: 43c9 mvns r1, r1 9482: b2c9 uxtb r1, r1 mask_buf[k] = mask_mix(mask_buf[k], m); 9484: f815 0008 ldrb.w r0, [r5, r8] 9488: 4b09 ldr r3, [pc, #36] ; (94b0 ) 948a: 4798 blx r3 948c: f805 0008 strb.w r0, [r5, r8] if(p->inv) { 9490: f896 3028 ldrb.w r3, [r6, #40] ; 0x28 9494: 079b lsls r3, r3, #30 9496: f57f af7e bpl.w 9396 k = xsi - abs_x; 949a: eba9 0107 sub.w r1, r9, r7 if(k >= len) { 949e: 428c cmp r4, r1 94a0: f77f ae52 ble.w 9148 if(k >= 0) _lv_memset_00(&mask_buf[0], k); 94a4: 2900 cmp r1, #0 94a6: f6ff ae6e blt.w 9186 94aa: e6fd b.n 92a8 xsf = 0xFF; 94ac: 23ff movs r3, #255 ; 0xff 94ae: e7dc b.n 946a 94b0: 000090e5 .word 0x000090e5 94b4: 0000f251 .word 0x0000f251 000094b8 : while(len) { 94b8: 3901 subs r1, #1 94ba: f100 0308 add.w r3, r0, #8 *d8 = *s8; 94be: f811 2f01 ldrb.w r2, [r1, #1]! 94c2: f800 2b01 strb.w r2, [r0], #1 while(len) { 94c6: 4298 cmp r0, r3 94c8: d1f9 bne.n 94be } 94ca: 4770 bx lr 000094cc : { 94cc: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} 94d0: b08d sub sp, #52 ; 0x34 94d2: 461d mov r5, r3 94d4: f8dd 8058 ldr.w r8, [sp, #88] ; 0x58 bool outer = p->cfg.outer; 94d8: f898 9012 ldrb.w r9, [r8, #18] int32_t radius = p->cfg.radius; 94dc: f9b8 a010 ldrsh.w sl, [r8, #16] { 94e0: 2300 movs r3, #0 94e2: e9cd 3302 strd r3, r3, [sp, #8] 94e6: 4606 mov r6, r0 lv_area_copy(&rect, &p->cfg.rect); 94e8: 4b8b ldr r3, [pc, #556] ; (9718 ) { 94ea: 468b mov fp, r1 lv_area_copy(&rect, &p->cfg.rect); 94ec: a80a add r0, sp, #40 ; 0x28 94ee: f108 0108 add.w r1, r8, #8 bool outer = p->cfg.outer; 94f2: f009 0901 and.w r9, r9, #1 { 94f6: 4617 mov r7, r2 lv_area_copy(&rect, &p->cfg.rect); 94f8: 4798 blx r3 if(outer == false) { 94fa: f9bd 302a ldrsh.w r3, [sp, #42] ; 0x2a 94fe: f1b9 0f00 cmp.w r9, #0 9502: d13a bne.n 957a if(abs_y < rect.y1 || abs_y > rect.y2) { 9504: 42bb cmp r3, r7 9506: dd01 ble.n 950c return LV_DRAW_MASK_RES_TRANSP; 9508: 2000 movs r0, #0 950a: e039 b.n 9580 if(abs_y < rect.y1 || abs_y > rect.y2) { 950c: f9bd 202e ldrsh.w r2, [sp, #46] ; 0x2e 9510: 42ba cmp r2, r7 9512: dbf9 blt.n 9508 if((abs_x >= rect.x1 + radius && abs_x + len <= rect.x2 - radius) || 9514: f9bd 1028 ldrsh.w r1, [sp, #40] ; 0x28 9518: eb01 020a add.w r2, r1, sl 951c: 4593 cmp fp, r2 951e: eba1 040b sub.w r4, r1, fp 9522: db07 blt.n 9534 9524: f9bd 202c ldrsh.w r2, [sp, #44] ; 0x2c 9528: eb05 000b add.w r0, r5, fp 952c: eba2 020a sub.w r2, r2, sl 9530: 4290 cmp r0, r2 9532: dd09 ble.n 9548 (abs_y >= rect.y1 + radius && abs_y <= rect.y2 - radius)) { 9534: eb03 020a add.w r2, r3, sl if((abs_x >= rect.x1 + radius && abs_x + len <= rect.x2 - radius) || 9538: 4297 cmp r7, r2 if(abs_y < rect.y1 || abs_y > rect.y2) { 953a: f9bd 002e ldrsh.w r0, [sp, #46] ; 0x2e if((abs_x >= rect.x1 + radius && abs_x + len <= rect.x2 - radius) || 953e: db3d blt.n 95bc (abs_y >= rect.y1 + radius && abs_y <= rect.y2 - radius)) { 9540: eba0 020a sub.w r2, r0, sl 9544: 4297 cmp r7, r2 9546: dc39 bgt.n 95bc if(outer == false) { 9548: f1b9 0f00 cmp.w r9, #0 954c: d125 bne.n 959a if(last > len) return LV_DRAW_MASK_RES_TRANSP; 954e: 42a5 cmp r5, r4 9550: dbda blt.n 9508 if(last >= 0) { 9552: 2c00 cmp r4, #0 9554: db03 blt.n 955e _lv_memset_00(&mask_buf[0], last); 9556: 4b71 ldr r3, [pc, #452] ; (971c ) 9558: 4621 mov r1, r4 955a: 4630 mov r0, r6 955c: 4798 blx r3 int32_t first = rect.x2 - abs_x + 1; 955e: f9bd 002c ldrsh.w r0, [sp, #44] ; 0x2c 9562: eba0 000b sub.w r0, r0, fp 9566: 3001 adds r0, #1 if(first <= 0) return LV_DRAW_MASK_RES_TRANSP; 9568: 2800 cmp r0, #0 956a: ddcd ble.n 9508 else if(first < len) { 956c: 42a8 cmp r0, r5 956e: da0f bge.n 9590 _lv_memset_00(&mask_buf[kr], len - kr); 9570: 1a29 subs r1, r5, r0 _lv_memset_00(&mask_buf[first], len_tmp); 9572: 4430 add r0, r6 if(kr < len) _lv_memset_00(&mask_buf[kr], len - kr); 9574: 4b69 ldr r3, [pc, #420] ; (971c ) 9576: 4798 blx r3 9578: e00d b.n 9596 if(abs_y < rect.y1 || abs_y > rect.y2) { 957a: 42bb cmp r3, r7 957c: dd03 ble.n 9586 return LV_DRAW_MASK_RES_FULL_COVER; 957e: 2001 movs r0, #1 } 9580: b00d add sp, #52 ; 0x34 9582: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} if(abs_y < rect.y1 || abs_y > rect.y2) { 9586: f9bd 202e ldrsh.w r2, [sp, #46] ; 0x2e 958a: 42ba cmp r2, r7 958c: dac2 bge.n 9514 958e: e7f6 b.n 957e if(last == 0 && first == len) return LV_DRAW_MASK_RES_FULL_COVER; 9590: b90c cbnz r4, 9596 9592: 42a8 cmp r0, r5 9594: d0f3 beq.n 957e return LV_DRAW_MASK_RES_CHANGED; 9596: 2002 movs r0, #2 9598: e7f2 b.n 9580 if(first < 0) first = 0; 959a: ea24 70e4 bic.w r0, r4, r4, asr #31 if(first <= len) { 959e: 42a8 cmp r0, r5 95a0: dcf9 bgt.n 9596 int32_t last = rect.x2 - abs_x - first + 1; 95a2: f9bd 102c ldrsh.w r1, [sp, #44] ; 0x2c 95a6: eba1 010b sub.w r1, r1, fp 95aa: 1a09 subs r1, r1, r0 95ac: 3101 adds r1, #1 if(first + last > len) last = len - first; 95ae: 1843 adds r3, r0, r1 95b0: 42ab cmp r3, r5 95b2: dd00 ble.n 95b6 95b4: 1a29 subs r1, r5, r0 if(first < len && len_tmp >= 0) { 95b6: 2900 cmp r1, #0 95b8: dbed blt.n 9596 95ba: e7da b.n 9572 return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); 95bc: f8bd 202c ldrh.w r2, [sp, #44] ; 0x2c return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); 95c0: b29b uxth r3, r3 95c2: 3001 adds r0, #1 95c4: 1ac0 subs r0, r0, r3 abs_y -= rect.y1; 95c6: 1aff subs r7, r7, r3 return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); 95c8: 3201 adds r2, #1 uint32_t r2 = p->cfg.radius * p->cfg.radius; 95ca: f9b8 3010 ldrsh.w r3, [r8, #16] 95ce: 1a52 subs r2, r2, r1 abs_y -= rect.y1; 95d0: b23f sxth r7, r7 int32_t w = lv_area_get_width(&rect); 95d2: b212 sxth r2, r2 uint32_t r2 = p->cfg.radius * p->cfg.radius; 95d4: 435b muls r3, r3 if(abs_y < radius || abs_y > h - radius - 1) { 95d6: 45ba cmp sl, r7 int32_t w = lv_area_get_width(&rect); 95d8: 9204 str r2, [sp, #16] int32_t h = lv_area_get_height(&rect); 95da: b200 sxth r0, r0 uint32_t r2 = p->cfg.radius * p->cfg.radius; 95dc: 9301 str r3, [sp, #4] if(abs_y < radius || abs_y > h - radius - 1) { 95de: f300 8190 bgt.w 9902 95e2: eba0 030a sub.w r3, r0, sl 95e6: 429f cmp r7, r3 95e8: dbd5 blt.n 9596 y = radius - (h - abs_y) + 1; 95ea: 1bc0 subs r0, r0, r7 if((y - 1) == p->y_prev) { 95ec: f8d8 3014 ldr.w r3, [r8, #20] if(radius <= 256) sqrt_mask = 0x800; 95f0: f5ba 7f80 cmp.w sl, #256 ; 0x100 y = radius - (h - abs_y) + 1; 95f4: ebaa 0000 sub.w r0, sl, r0 if(radius <= 256) sqrt_mask = 0x800; 95f8: bfd4 ite le 95fa: f44f 6200 movle.w r2, #2048 ; 0x800 95fe: f44f 4200 movgt.w r2, #32768 ; 0x8000 if((y - 1) == p->y_prev) { 9602: 4298 cmp r0, r3 y = radius - (h - abs_y) + 1; 9604: f100 0701 add.w r7, r0, #1 if((y - 1) == p->y_prev) { 9608: d067 beq.n 96da _lv_sqrt(r2 - ((y - 1) * (y - 1)), &x1, sqrt_mask); 960a: 9b01 ldr r3, [sp, #4] 960c: 9205 str r2, [sp, #20] 960e: fb00 3010 mls r0, r0, r0, r3 9612: a907 add r1, sp, #28 9614: 4b42 ldr r3, [pc, #264] ; (9720 ) 9616: 4798 blx r3 9618: 9a05 ldr r2, [sp, #20] 961a: e061 b.n 96e0 x0.i = p->y_prev_x.i; 961c: f8d8 3018 ldr.w r3, [r8, #24] 9620: 9306 str r3, [sp, #24] _lv_sqrt(r2 - ((y - 1) * (y - 1)), &x1, sqrt_mask); 9622: 9b01 ldr r3, [sp, #4] 9624: 9205 str r2, [sp, #20] 9626: f107 3bff add.w fp, r7, #4294967295 ; 0xffffffff 962a: fb0b 301b mls r0, fp, fp, r3 962e: a907 add r1, sp, #28 9630: 4b3b ldr r3, [pc, #236] ; (9720 ) 9632: 4798 blx r3 p->y_prev_x.f = x1.f; 9634: f8bd 301e ldrh.w r3, [sp, #30] 9638: f8a8 301a strh.w r3, [r8, #26] p->y_prev_x.i = x1.i; 963c: f8bd 301c ldrh.w r3, [sp, #28] p->y_prev = y - 1; 9640: f8c8 b014 str.w fp, [r8, #20] if(x0.i == x1.i - 1 && x1.f == 0) { 9644: f8bd 101c ldrh.w r1, [sp, #28] p->y_prev_x.i = x1.i; 9648: f8a8 3018 strh.w r3, [r8, #24] if(x0.i == x1.i - 1 && x1.f == 0) { 964c: f8bd 3018 ldrh.w r3, [sp, #24] p->y_prev_x.i = x0.i; 9650: 9a05 ldr r2, [sp, #20] if(x0.i == x1.i - 1 && x1.f == 0) { 9652: 3901 subs r1, #1 9654: 428b cmp r3, r1 9656: d107 bne.n 9668 9658: f8bd 101e ldrh.w r1, [sp, #30] 965c: b921 cbnz r1, 9668 x1.f = 0xFF; 965e: 21ff movs r1, #255 ; 0xff x1.i--; 9660: f8ad 301c strh.w r3, [sp, #28] x1.f = 0xFF; 9664: f8ad 101e strh.w r1, [sp, #30] if(x0.i == x1.i) { 9668: f8bd 101c ldrh.w r1, [sp, #28] 966c: 4299 cmp r1, r3 966e: d15b bne.n 9728 lv_opa_t m = (x0.f + x1.f) >> 1; 9670: f8bd 101a ldrh.w r1, [sp, #26] 9674: f8bd 201e ldrh.w r2, [sp, #30] 9678: 4411 add r1, r2 967a: f3c1 0147 ubfx r1, r1, #1, #8 if(outer) m = 255 - m; 967e: f1b9 0f00 cmp.w r9, #0 9682: d001 beq.n 9688 9684: 43c9 mvns r1, r1 9686: b2c9 uxtb r1, r1 int32_t ofs = radius - x0.i - 1; 9688: ebaa 0303 sub.w r3, sl, r3 968c: 1e5a subs r2, r3, #1 if(kl >= 0 && kl < len) { 968e: 18a7 adds r7, r4, r2 9690: d405 bmi.n 969e 9692: 42af cmp r7, r5 9694: da03 bge.n 969e mask_buf[kl] = mask_mix(mask_buf[kl], m); 9696: 5df0 ldrb r0, [r6, r7] 9698: 4b22 ldr r3, [pc, #136] ; (9724 ) 969a: 4798 blx r3 969c: 55f0 strb r0, [r6, r7] int32_t kr = k + (w - ofs - 1); 969e: 9b04 ldr r3, [sp, #16] 96a0: 1a9a subs r2, r3, r2 96a2: 1e50 subs r0, r2, #1 if(kr >= 0 && kr < len) { 96a4: 1904 adds r4, r0, r4 96a6: d405 bmi.n 96b4 96a8: 42ac cmp r4, r5 96aa: da03 bge.n 96b4 mask_buf[kr] = mask_mix(mask_buf[kr], m); 96ac: 5d30 ldrb r0, [r6, r4] 96ae: 4b1d ldr r3, [pc, #116] ; (9724 ) 96b0: 4798 blx r3 96b2: 5530 strb r0, [r6, r4] if(outer == false) { 96b4: f1b9 0f00 cmp.w r9, #0 96b8: d122 bne.n 9700 if(kl > len) { 96ba: 42af cmp r7, r5 96bc: f73f af24 bgt.w 9508 if(kl >= 0) { 96c0: 2f00 cmp r7, #0 96c2: db03 blt.n 96cc _lv_memset_00(&mask_buf[0], kl); 96c4: 4b15 ldr r3, [pc, #84] ; (971c ) 96c6: 4639 mov r1, r7 96c8: 4630 mov r0, r6 96ca: 4798 blx r3 if(kr < 0) { 96cc: 1c60 adds r0, r4, #1 96ce: f53f af1b bmi.w 9508 if(kr <= len) { 96d2: 42a8 cmp r0, r5 96d4: f73f af5f bgt.w 9596 96d8: e74a b.n 9570 x1.i = p->y_prev_x.i; 96da: f8d8 3018 ldr.w r3, [r8, #24] 96de: 9307 str r3, [sp, #28] _lv_sqrt(r2 - (y * y), &x0, sqrt_mask); 96e0: 9b01 ldr r3, [sp, #4] 96e2: 9205 str r2, [sp, #20] 96e4: fb07 3017 mls r0, r7, r7, r3 96e8: a906 add r1, sp, #24 96ea: 4b0d ldr r3, [pc, #52] ; (9720 ) 96ec: 4798 blx r3 p->y_prev_x.f = x0.f; 96ee: f8bd 301a ldrh.w r3, [sp, #26] 96f2: f8a8 301a strh.w r3, [r8, #26] p->y_prev = y; 96f6: f8c8 7014 str.w r7, [r8, #20] p->y_prev_x.i = x0.i; 96fa: f8bd 3018 ldrh.w r3, [sp, #24] 96fe: e7a1 b.n 9644 kl++; 9700: 1c78 adds r0, r7, #1 9702: ea20 70e0 bic.w r0, r0, r0, asr #31 if(len_tmp + first > len) len_tmp = len - first; 9706: 42ac cmp r4, r5 int32_t len_tmp = kr - first; 9708: bfd4 ite le 970a: 1a21 suble r1, r4, r0 if(len_tmp + first > len) len_tmp = len - first; 970c: 1a29 subgt r1, r5, r0 if(first < len && len_tmp >= 0) { 970e: 42a8 cmp r0, r5 9710: f6bf af41 bge.w 9596 9714: e74f b.n 95b6 9716: bf00 nop 9718: 000094b9 .word 0x000094b9 971c: 0000f251 .word 0x0000f251 9720: 0000ebcd .word 0x0000ebcd 9724: 000090e5 .word 0x000090e5 int32_t kr = k + (w - ofs - 1); 9728: 9904 ldr r1, [sp, #16] int32_t ofs = radius - (x0.i + 1); 972a: 3301 adds r3, #1 972c: ebaa 0303 sub.w r3, sl, r3 int32_t kl = k + ofs; 9730: eb04 0803 add.w r8, r4, r3 int32_t kr = k + (w - ofs - 1); 9734: 1acb subs r3, r1, r3 9736: 3b01 subs r3, #1 9738: 441c add r4, r3 if(outer) { 973a: f1b9 0f00 cmp.w r9, #0 973e: d010 beq.n 9762 int32_t first = kl + 1; 9740: f108 0001 add.w r0, r8, #1 9744: ea20 70e0 bic.w r0, r0, r0, asr #31 if(len_tmp + first > len) len_tmp = len - first; 9748: 42a5 cmp r5, r4 int32_t len_tmp = kr - first; 974a: bfac ite ge 974c: 1a21 subge r1, r4, r0 if(len_tmp + first > len) len_tmp = len - first; 974e: 1a29 sublt r1, r5, r0 if(first < len && len_tmp >= 0) { 9750: 42a8 cmp r0, r5 9752: da06 bge.n 9762 9754: 2900 cmp r1, #0 9756: db04 blt.n 9762 _lv_memset_00(&mask_buf[first], len_tmp); 9758: 4b75 ldr r3, [pc, #468] ; (9930 ) 975a: 9204 str r2, [sp, #16] 975c: 4430 add r0, r6 975e: 4798 blx r3 9760: 9a04 ldr r2, [sp, #16] uint32_t i = x0.i + 1; 9762: f8bd b018 ldrh.w fp, [sp, #24] _lv_sqrt(r2 - (x0.i * x0.i), &y_prev, sqrt_mask); 9766: 9b01 ldr r3, [sp, #4] 9768: 9204 str r2, [sp, #16] 976a: a908 add r1, sp, #32 976c: fb0b 301b mls r0, fp, fp, r3 9770: 4b70 ldr r3, [pc, #448] ; (9934 ) 9772: 4798 blx r3 if(y_prev.f == 0) { 9774: f8bd 1022 ldrh.w r1, [sp, #34] ; 0x22 9778: 4b6e ldr r3, [pc, #440] ; (9934 ) 977a: 9a04 ldr r2, [sp, #16] uint32_t i = x0.i + 1; 977c: f10b 0a01 add.w sl, fp, #1 if(y_prev.f == 0) { 9780: b939 cbnz r1, 9792 y_prev.i--; 9782: f8bd 1020 ldrh.w r1, [sp, #32] 9786: 3901 subs r1, #1 9788: f8ad 1020 strh.w r1, [sp, #32] y_prev.f = 0xFF; 978c: 21ff movs r1, #255 ; 0xff 978e: f8ad 1022 strh.w r1, [sp, #34] ; 0x22 if(y_prev.i >= y) { 9792: f8bd 1020 ldrh.w r1, [sp, #32] 9796: 42b9 cmp r1, r7 9798: db2e blt.n 97f8 _lv_sqrt(r2 - (i * i), &y_next, sqrt_mask); 979a: 9801 ldr r0, [sp, #4] 979c: a909 add r1, sp, #36 ; 0x24 979e: fb0a 001a mls r0, sl, sl, r0 97a2: 4798 blx r3 m = 255 - (((255 - x0.f) * (255 - y_next.f)) >> 9); 97a4: f8bd 2026 ldrh.w r2, [sp, #38] ; 0x26 97a8: f8bd 101a ldrh.w r1, [sp, #26] 97ac: f1c2 03ff rsb r3, r2, #255 ; 0xff 97b0: f1c1 01ff rsb r1, r1, #255 ; 0xff 97b4: 4359 muls r1, r3 97b6: f3c1 2147 ubfx r1, r1, #9, #8 if(outer) m = 255 - m; 97ba: f1b9 0f00 cmp.w r9, #0 97be: d101 bne.n 97c4 m = 255 - (((255 - x0.f) * (255 - y_next.f)) >> 9); 97c0: 43c9 mvns r1, r1 97c2: b2c9 uxtb r1, r1 if(kl >= 0 && kl < len) mask_buf[kl] = mask_mix(mask_buf[kl], m); 97c4: f1b8 0f00 cmp.w r8, #0 97c8: db07 blt.n 97da 97ca: 4545 cmp r5, r8 97cc: dd05 ble.n 97da 97ce: f816 0008 ldrb.w r0, [r6, r8] 97d2: 4b59 ldr r3, [pc, #356] ; (9938 ) 97d4: 4798 blx r3 97d6: f806 0008 strb.w r0, [r6, r8] if(kr >= 0 && kr < len) mask_buf[kr] = mask_mix(mask_buf[kr], m); 97da: 2c00 cmp r4, #0 97dc: db05 blt.n 97ea 97de: 42a5 cmp r5, r4 97e0: dd03 ble.n 97ea 97e2: 5d30 ldrb r0, [r6, r4] 97e4: 4b54 ldr r3, [pc, #336] ; (9938 ) 97e6: 4798 blx r3 97e8: 5530 strb r0, [r6, r4] kl--; 97ea: f108 38ff add.w r8, r8, #4294967295 ; 0xffffffff kr++; 97ee: 3401 adds r4, #1 y_prev.f = y_next.f; 97f0: f8ad 2022 strh.w r2, [sp, #34] ; 0x22 i++; 97f4: 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); 97f8: f8bd 2020 ldrh.w r2, [sp, #32] for(; i <= x1.i; i++) { 97fc: f8bd b01c ldrh.w fp, [sp, #28] 9800: f8bd 1022 ldrh.w r1, [sp, #34] ; 0x22 if(kl >= 0 && kl < len) mask_buf[kl] = mask_mix(mask_buf[kl], m); 9804: 4f4c ldr r7, [pc, #304] ; (9938 ) uint32_t raw = (ref->i << 4) + (ref->f >> 4); 9806: 0112 lsls r2, r2, #4 9808: 2300 movs r3, #0 for(; i <= x1.i; i++) { 980a: 45d3 cmp fp, sl 980c: d242 bcs.n 9894 980e: b13b cbz r3, 9820 9810: 9b02 ldr r3, [sp, #8] 9812: f8ad 3026 strh.w r3, [sp, #38] ; 0x26 9816: 9b03 ldr r3, [sp, #12] 9818: f8ad 3024 strh.w r3, [sp, #36] ; 0x24 981c: f8ad 1022 strh.w r1, [sp, #34] ; 0x22 if(y_prev.f) { 9820: f8bd 3022 ldrh.w r3, [sp, #34] ; 0x22 9824: b1fb cbz r3, 9866 m = (y_prev.f * x1.f) >> 9; 9826: f8bd 101e ldrh.w r1, [sp, #30] 982a: 4359 muls r1, r3 982c: f3c1 2147 ubfx r1, r1, #9, #8 if(outer) m = 255 - m; 9830: f1b9 0f00 cmp.w r9, #0 9834: d001 beq.n 983a 9836: 43c9 mvns r1, r1 9838: b2c9 uxtb r1, r1 if(kl >= 0 && kl < len) mask_buf[kl] = mask_mix(mask_buf[kl], m); 983a: f1b8 0f00 cmp.w r8, #0 983e: db07 blt.n 9850 9840: 4545 cmp r5, r8 9842: dd05 ble.n 9850 9844: f816 0008 ldrb.w r0, [r6, r8] 9848: 4b3b ldr r3, [pc, #236] ; (9938 ) 984a: 4798 blx r3 984c: f806 0008 strb.w r0, [r6, r8] if(kr >= 0 && kr < len) mask_buf[kr] = mask_mix(mask_buf[kr], m); 9850: 2c00 cmp r4, #0 9852: db05 blt.n 9860 9854: 42a5 cmp r5, r4 9856: dd03 ble.n 9860 9858: 5d30 ldrb r0, [r6, r4] 985a: 4b37 ldr r3, [pc, #220] ; (9938 ) 985c: 4798 blx r3 985e: 5530 strb r0, [r6, r4] kl--; 9860: f108 38ff add.w r8, r8, #4294967295 ; 0xffffffff kr++; 9864: 3401 adds r4, #1 if(outer == 0) { 9866: f1b9 0f00 cmp.w r9, #0 986a: f47f ae94 bne.w 9596 kl++; 986e: f108 0101 add.w r1, r8, #1 if(kl > len) { 9872: 428d cmp r5, r1 9874: f6ff ae48 blt.w 9508 if(kl >= 0) _lv_memset_00(&mask_buf[0], kl); 9878: 2900 cmp r1, #0 987a: db02 blt.n 9882 987c: 4b2c ldr r3, [pc, #176] ; (9930 ) 987e: 4630 mov r0, r6 9880: 4798 blx r3 if(kr < 0) { 9882: 2c00 cmp r4, #0 9884: f6ff ae40 blt.w 9508 if(kr < len) _lv_memset_00(&mask_buf[kr], len - kr); 9888: 42a5 cmp r5, r4 988a: f77f ae84 ble.w 9596 988e: 1b29 subs r1, r5, r4 9890: 1930 adds r0, r6, r4 9892: e66f b.n 9574 sqrt_approx(&y_next, &y_prev, r2 - (i * i)); 9894: 9b01 ldr r3, [sp, #4] uint32_t raw = (ref->i << 4) + (ref->f >> 4); 9896: f3c1 100f ubfx r0, r1, #4, #16 989a: 4410 add r0, r2 sqrt_approx(&y_next, &y_prev, r2 - (i * i)); 989c: fb0a 3c1a mls ip, sl, sl, r3 uint32_t raw2 = raw * raw; 98a0: fb00 f300 mul.w r3, r0, r0 int32_t d = x - raw2; 98a4: ebc3 230c rsb r3, r3, ip, lsl #8 d = (int32_t)d / (int32_t)(2 * raw) + raw; 98a8: ea4f 0c40 mov.w ip, r0, lsl #1 98ac: fb93 f3fc sdiv r3, r3, ip 98b0: 4403 add r3, r0 q->i = d >> 4; 98b2: f3c3 100f ubfx r0, r3, #4, #16 q->f = (d & 0xF) << 4; 98b6: 011b lsls r3, r3, #4 98b8: f003 03f0 and.w r3, r3, #240 ; 0xf0 m = (y_prev.f + y_next.f) >> 1; 98bc: 4419 add r1, r3 q->i = d >> 4; 98be: 9003 str r0, [sp, #12] q->f = (d & 0xF) << 4; 98c0: 9302 str r3, [sp, #8] m = (y_prev.f + y_next.f) >> 1; 98c2: f3c1 0147 ubfx r1, r1, #1, #8 if(outer) m = 255 - m; 98c6: f1b9 0f00 cmp.w r9, #0 98ca: d001 beq.n 98d0 98cc: 43c9 mvns r1, r1 98ce: b2c9 uxtb r1, r1 if(kl >= 0 && kl < len) mask_buf[kl] = mask_mix(mask_buf[kl], m); 98d0: f1b8 0f00 cmp.w r8, #0 98d4: db06 blt.n 98e4 98d6: 4545 cmp r5, r8 98d8: dd04 ble.n 98e4 98da: f816 0008 ldrb.w r0, [r6, r8] 98de: 47b8 blx r7 98e0: f806 0008 strb.w r0, [r6, r8] if(kr >= 0 && kr < len) mask_buf[kr] = mask_mix(mask_buf[kr], m); 98e4: 2c00 cmp r4, #0 98e6: db04 blt.n 98f2 98e8: 42a5 cmp r5, r4 98ea: dd02 ble.n 98f2 98ec: 5d30 ldrb r0, [r6, r4] 98ee: 47b8 blx r7 98f0: 5530 strb r0, [r6, r4] y_prev.f = y_next.f; 98f2: 9902 ldr r1, [sp, #8] kl--; 98f4: f108 38ff add.w r8, r8, #4294967295 ; 0xffffffff kr++; 98f8: 3401 adds r4, #1 for(; i <= x1.i; i++) { 98fa: f10a 0a01 add.w sl, sl, #1 98fe: 2301 movs r3, #1 9900: e783 b.n 980a if(y == p->y_prev) { 9902: f8d8 3014 ldr.w r3, [r8, #20] if(radius <= 256) sqrt_mask = 0x800; 9906: f5ba 7f80 cmp.w sl, #256 ; 0x100 y = radius - abs_y; 990a: ebaa 0707 sub.w r7, sl, r7 if(radius <= 256) sqrt_mask = 0x800; 990e: bfd4 ite le 9910: f44f 6200 movle.w r2, #2048 ; 0x800 9914: f44f 4200 movgt.w r2, #32768 ; 0x8000 if(y == p->y_prev) { 9918: 42bb cmp r3, r7 991a: f43f ae7f beq.w 961c _lv_sqrt(r2 - (y * y), &x0, sqrt_mask); 991e: 9b01 ldr r3, [sp, #4] 9920: 9205 str r2, [sp, #20] 9922: fb07 3017 mls r0, r7, r7, r3 9926: a906 add r1, sp, #24 9928: 4b02 ldr r3, [pc, #8] ; (9934 ) 992a: 4798 blx r3 992c: 9a05 ldr r2, [sp, #20] 992e: e678 b.n 9622 9930: 0000f251 .word 0x0000f251 9934: 0000ebcd .word 0x0000ebcd 9938: 000090e5 .word 0x000090e5 0000993c : { 993c: b573 push {r0, r1, r4, r5, r6, lr} if(LV_GC_ROOT(_lv_draw_mask_list[i]).param == NULL) break; 993e: 4c0e ldr r4, [pc, #56] ; (9978 ) { 9940: 2300 movs r3, #0 if(LV_GC_ROOT(_lv_draw_mask_list[i]).param == NULL) break; 9942: f854 6033 ldr.w r6, [r4, r3, lsl #3] 9946: b2da uxtb r2, r3 9948: eb04 05c3 add.w r5, r4, r3, lsl #3 994c: b176 cbz r6, 996c for(i = 0; i < _LV_MASK_MAX_NUM; i++) { 994e: 3301 adds r3, #1 9950: 2b10 cmp r3, #16 9952: d1f6 bne.n 9942 LV_LOG_WARN("lv_mask_add: no place to add the mask"); 9954: 4b09 ldr r3, [pc, #36] ; (997c ) 9956: 9300 str r3, [sp, #0] 9958: 2002 movs r0, #2 995a: 4b09 ldr r3, [pc, #36] ; (9980 ) 995c: 4909 ldr r1, [pc, #36] ; (9984 ) 995e: 4c0a ldr r4, [pc, #40] ; (9988 ) 9960: 2257 movs r2, #87 ; 0x57 9962: 47a0 blx r4 return LV_MASK_ID_INV; 9964: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff } 9968: b002 add sp, #8 996a: bd70 pop {r4, r5, r6, pc} LV_GC_ROOT(_lv_draw_mask_list[i]).param = param; 996c: f844 0033 str.w r0, [r4, r3, lsl #3] LV_GC_ROOT(_lv_draw_mask_list[i]).custom_id = custom_id; 9970: 6069 str r1, [r5, #4] return i; 9972: b210 sxth r0, r2 9974: e7f8 b.n 9968 9976: bf00 nop 9978: 20009090 .word 0x20009090 997c: 000276b8 .word 0x000276b8 9980: 000276de .word 0x000276de 9984: 00027683 .word 0x00027683 9988: 0000eb21 .word 0x0000eb21 0000998c : { 998c: 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); 9990: 4e0d ldr r6, [pc, #52] ; (99c8 ) { 9992: 4607 mov r7, r0 9994: 4688 mov r8, r1 9996: 4691 mov r9, r2 9998: 469a mov sl, r3 bool changed = false; 999a: 2400 movs r4, #0 while(m->param) { 999c: 6835 ldr r5, [r6, #0] 999e: b925 cbnz r5, 99aa return changed ? LV_DRAW_MASK_RES_CHANGED : LV_DRAW_MASK_RES_FULL_COVER; 99a0: 3401 adds r4, #1 99a2: b2e0 uxtb r0, r4 } 99a4: b002 add sp, #8 99a6: 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); 99aa: 9500 str r5, [sp, #0] 99ac: 682d ldr r5, [r5, #0] 99ae: 4653 mov r3, sl 99b0: 464a mov r2, r9 99b2: 4641 mov r1, r8 99b4: 4638 mov r0, r7 99b6: 47a8 blx r5 if(res == LV_DRAW_MASK_RES_TRANSP) return LV_DRAW_MASK_RES_TRANSP; 99b8: 2800 cmp r0, #0 99ba: d0f3 beq.n 99a4 else if(res == LV_DRAW_MASK_RES_CHANGED) changed = true; 99bc: 2802 cmp r0, #2 99be: bf08 it eq 99c0: 2401 moveq r4, #1 m++; 99c2: 3608 adds r6, #8 99c4: e7ea b.n 999c 99c6: bf00 nop 99c8: 20009090 .word 0x20009090 000099cc : if(id != LV_MASK_ID_INV) { 99cc: 1c43 adds r3, r0, #1 p = LV_GC_ROOT(_lv_draw_mask_list[id]).param; 99ce: bf18 it ne 99d0: 4b07 ldrne r3, [pc, #28] ; (99f0 ) 99d2: f04f 0200 mov.w r2, #0 99d6: bf1d ittte ne 99d8: f853 1030 ldrne.w r1, [r3, r0, lsl #3] LV_GC_ROOT(_lv_draw_mask_list[id]).param = NULL; 99dc: f843 2030 strne.w r2, [r3, r0, lsl #3] LV_GC_ROOT(_lv_draw_mask_list[id]).custom_id = NULL; 99e0: eb03 03c0 addne.w r3, r3, r0, lsl #3 void * p = NULL; 99e4: 4611 moveq r1, r2 LV_GC_ROOT(_lv_draw_mask_list[id]).custom_id = NULL; 99e6: bf18 it ne 99e8: 605a strne r2, [r3, #4] } 99ea: 4608 mov r0, r1 99ec: 4770 bx lr 99ee: bf00 nop 99f0: 20009090 .word 0x20009090 000099f4 : { 99f4: 2200 movs r2, #0 99f6: 4b08 ldr r3, [pc, #32] ; (9a18 ) 99f8: b530 push {r4, r5, lr} void * p = NULL; 99fa: 4611 mov r1, r2 LV_GC_ROOT(_lv_draw_mask_list[i]).param = NULL; 99fc: 4614 mov r4, r2 if(LV_GC_ROOT(_lv_draw_mask_list[i]).custom_id == custom_id) { 99fe: 685d ldr r5, [r3, #4] for(i = 0; i < _LV_MASK_MAX_NUM; i++) { 9a00: 3201 adds r2, #1 if(LV_GC_ROOT(_lv_draw_mask_list[i]).custom_id == custom_id) { 9a02: 4285 cmp r5, r0 p = LV_GC_ROOT(_lv_draw_mask_list[i]).param; 9a04: bf04 itt eq 9a06: 6819 ldreq r1, [r3, #0] LV_GC_ROOT(_lv_draw_mask_list[i]).custom_id = NULL; 9a08: e9c3 4400 strdeq r4, r4, [r3] for(i = 0; i < _LV_MASK_MAX_NUM; i++) { 9a0c: 2a10 cmp r2, #16 9a0e: f103 0308 add.w r3, r3, #8 9a12: d1f4 bne.n 99fe } 9a14: 4608 mov r0, r1 9a16: bd30 pop {r4, r5, pc} 9a18: 20009090 .word 0x20009090 00009a1c : { 9a1c: 2300 movs r3, #0 if(LV_GC_ROOT(_lv_draw_mask_list[i]).param) cnt++; 9a1e: 4a05 ldr r2, [pc, #20] ; (9a34 ) uint8_t cnt = 0; 9a20: 4618 mov r0, r3 if(LV_GC_ROOT(_lv_draw_mask_list[i]).param) cnt++; 9a22: f852 1033 ldr.w r1, [r2, r3, lsl #3] 9a26: b109 cbz r1, 9a2c 9a28: 3001 adds r0, #1 9a2a: b2c0 uxtb r0, r0 for(i = 0; i < _LV_MASK_MAX_NUM; i++) { 9a2c: 3301 adds r3, #1 9a2e: 2b10 cmp r3, #16 9a30: d1f7 bne.n 9a22 } 9a32: 4770 bx lr 9a34: 20009090 .word 0x20009090 00009a38 : { 9a38: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} 9a3c: f9bd 8018 ldrsh.w r8, [sp, #24] 9a40: 4615 mov r5, r2 9a42: 460e mov r6, r1 9a44: 461f mov r7, r3 _lv_memset_00(param, sizeof(lv_draw_mask_line_param_t)); 9a46: 212c movs r1, #44 ; 0x2c 9a48: 4b3b ldr r3, [pc, #236] ; (9b38 ) { 9a4a: 4604 mov r4, r0 _lv_memset_00(param, sizeof(lv_draw_mask_line_param_t)); 9a4c: 4798 blx r3 if(p1y > p2y) { 9a4e: 4545 cmp r5, r8 9a50: dd05 ble.n 9a5e 9a52: 462b mov r3, r5 9a54: 4645 mov r5, r8 9a56: 4698 mov r8, r3 9a58: 4633 mov r3, r6 p1x = t; 9a5a: 463e mov r6, r7 p2x = p1x; 9a5c: 461f mov r7, r3 param->cfg.side = side; 9a5e: 7c23 ldrb r3, [r4, #16] 9a60: f89d 201c ldrb.w r2, [sp, #28] param->cfg.p1.y = p1y; 9a64: 8165 strh r5, [r4, #10] param->cfg.side = side; 9a66: f362 0301 bfi r3, r2, #0, #2 9a6a: 7423 strb r3, [r4, #16] param->flat = (LV_MATH_ABS(p2x - p1x) > LV_MATH_ABS(p2y - p1y)) ? 1 : 0; 9a6c: eba8 0205 sub.w r2, r8, r5 9a70: 1bbb subs r3, r7, r6 9a72: ea83 70e3 eor.w r0, r3, r3, asr #31 9a76: ea82 71e2 eor.w r1, r2, r2, asr #31 9a7a: eba0 70e3 sub.w r0, r0, r3, asr #31 9a7e: eba1 71e2 sub.w r1, r1, r2, asr #31 9a82: 4288 cmp r0, r1 9a84: f894 1028 ldrb.w r1, [r4, #40] ; 0x28 param->origo.y = p1y; 9a88: 82a5 strh r5, [r4, #20] param->flat = (LV_MATH_ABS(p2x - p1x) > LV_MATH_ABS(p2y - p1y)) ? 1 : 0; 9a8a: bfd4 ite le 9a8c: 2000 movle r0, #0 9a8e: 2001 movgt r0, #1 9a90: f360 0100 bfi r1, r0, #0, #1 param->dsc.cb = (lv_draw_mask_xcb_t)lv_draw_mask_line; 9a94: 4d29 ldr r5, [pc, #164] ; (9b3c ) param->flat = (LV_MATH_ABS(p2x - p1x) > LV_MATH_ABS(p2y - p1y)) ? 1 : 0; 9a96: f884 1028 strb.w r1, [r4, #40] ; 0x28 param->yx_steep = 0; 9a9a: 2000 movs r0, #0 if(param->flat) { 9a9c: 07c9 lsls r1, r1, #31 param->xy_steep = 0; 9a9e: e9c4 0006 strd r0, r0, [r4, #24] param->cfg.p1.x = p1x; 9aa2: 8126 strh r6, [r4, #8] param->cfg.p2.x = p2x; 9aa4: 81a7 strh r7, [r4, #12] param->cfg.p2.y = p2y; 9aa6: f8a4 800e strh.w r8, [r4, #14] param->origo.x = p1x; 9aaa: 8266 strh r6, [r4, #18] param->dsc.cb = (lv_draw_mask_xcb_t)lv_draw_mask_line; 9aac: 6025 str r5, [r4, #0] param->dsc.type = LV_DRAW_MASK_TYPE_LINE; 9aae: 7120 strb r0, [r4, #4] if(param->flat) { 9ab0: d52b bpl.n 9b0a if(dx) { 9ab2: b133 cbz r3, 9ac2 m = (1 << 20) / dx; /*m is multiplier to normalize y (upscaled by 1024)*/ 9ab4: f44f 1180 mov.w r1, #1048576 ; 0x100000 9ab8: fb91 f1f3 sdiv r1, r1, r3 param->yx_steep = (m * dy) >> 10; 9abc: 4351 muls r1, r2 9abe: 1289 asrs r1, r1, #10 9ac0: 61e1 str r1, [r4, #28] if(dy) { 9ac2: b132 cbz r2, 9ad2 m = (1 << 20) / dy; /*m is multiplier to normalize x (upscaled by 1024)*/ 9ac4: f44f 1180 mov.w r1, #1048576 ; 0x100000 9ac8: fb91 f2f2 sdiv r2, r1, r2 param->xy_steep = (m * dx) >> 10; 9acc: 4353 muls r3, r2 9ace: 129b asrs r3, r3, #10 9ad0: 61a3 str r3, [r4, #24] param->steep = param->yx_steep; 9ad2: 69e2 ldr r2, [r4, #28] if(param->cfg.side == LV_DRAW_MASK_LINE_SIDE_LEFT) param->inv = 0; 9ad4: 7c23 ldrb r3, [r4, #16] param->steep = param->yx_steep; 9ad6: 6222 str r2, [r4, #32] if(param->cfg.side == LV_DRAW_MASK_LINE_SIDE_LEFT) param->inv = 0; 9ad8: f013 0303 ands.w r3, r3, #3 9adc: d007 beq.n 9aee else if(param->cfg.side == LV_DRAW_MASK_LINE_SIDE_RIGHT) param->inv = 1; 9ade: 2b01 cmp r3, #1 9ae0: d005 beq.n 9aee else if(param->cfg.side == LV_DRAW_MASK_LINE_SIDE_TOP) { 9ae2: 2b02 cmp r3, #2 9ae4: d123 bne.n 9b2e if(param->steep > 0) param->inv = 1; 9ae6: 2a00 cmp r2, #0 9ae8: bfd4 ite le 9aea: 2300 movle r3, #0 9aec: 2301 movgt r3, #1 if(param->cfg.side == LV_DRAW_MASK_LINE_SIDE_LEFT) param->inv = 0; 9aee: f894 1028 ldrb.w r1, [r4, #40] ; 0x28 if(param->steep < 0) param->spx = -param->spx; 9af2: 2a00 cmp r2, #0 if(param->cfg.side == LV_DRAW_MASK_LINE_SIDE_LEFT) param->inv = 0; 9af4: f363 0141 bfi r1, r3, #1, #1 param->spx = param->steep >> 2; 9af8: ea4f 03a2 mov.w r3, r2, asr #2 if(param->steep < 0) param->spx = -param->spx; 9afc: bfb8 it lt 9afe: 425b neglt r3, r3 if(param->cfg.side == LV_DRAW_MASK_LINE_SIDE_LEFT) param->inv = 0; 9b00: f884 1028 strb.w r1, [r4, #40] ; 0x28 if(param->steep < 0) param->spx = -param->spx; 9b04: 6263 str r3, [r4, #36] ; 0x24 } 9b06: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} if(dy) { 9b0a: b132 cbz r2, 9b1a m = (1 << 20) / dy; /*m is multiplier to normalize x (upscaled by 1024)*/ 9b0c: f44f 1180 mov.w r1, #1048576 ; 0x100000 9b10: fb91 f1f2 sdiv r1, r1, r2 param->xy_steep = (m * dx) >> 10; 9b14: 4359 muls r1, r3 9b16: 1289 asrs r1, r1, #10 9b18: 61a1 str r1, [r4, #24] if(dx) { 9b1a: b133 cbz r3, 9b2a m = (1 << 20) / dx; /*m is multiplier to normalize x (upscaled by 1024)*/ 9b1c: f44f 1180 mov.w r1, #1048576 ; 0x100000 9b20: fb91 f3f3 sdiv r3, r1, r3 param->yx_steep = (m * dy) >> 10; 9b24: 4353 muls r3, r2 9b26: 129b asrs r3, r3, #10 9b28: 61e3 str r3, [r4, #28] param->steep = param->xy_steep; 9b2a: 69a2 ldr r2, [r4, #24] 9b2c: e7d2 b.n 9ad4 if(param->steep > 0) param->inv = 0; 9b2e: 2a00 cmp r2, #0 9b30: bfcc ite gt 9b32: 2300 movgt r3, #0 9b34: 2301 movle r3, #1 9b36: e7da b.n 9aee 9b38: 0000f251 .word 0x0000f251 9b3c: 00009101 .word 0x00009101 00009b40 : { 9b40: b5f8 push {r3, r4, r5, r6, r7, lr} 9b42: 4604 mov r4, r0 return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); 9b44: 88c8 ldrh r0, [r1, #6] return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); 9b46: 888d ldrh r5, [r1, #4] 9b48: 461f mov r7, r3 return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); 9b4a: 884b ldrh r3, [r1, #2] 9b4c: 3001 adds r0, #1 9b4e: 1ac0 subs r0, r0, r3 return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); 9b50: 880b ldrh r3, [r1, #0] 9b52: 3501 adds r5, #1 9b54: 1aed subs r5, r5, r3 int32_t short_side = LV_MATH_MIN(w, h); 9b56: b200 sxth r0, r0 9b58: b22d sxth r5, r5 9b5a: 42a8 cmp r0, r5 9b5c: bfa8 it ge 9b5e: 4628 movge r0, r5 if(radius > short_side >> 1) radius = short_side >> 1; 9b60: ebb2 0f60 cmp.w r2, r0, asr #1 9b64: ea4f 0360 mov.w r3, r0, asr #1 { 9b68: 4616 mov r6, r2 lv_area_copy(¶m->cfg.rect, rect); 9b6a: f104 0008 add.w r0, r4, #8 if(radius > short_side >> 1) radius = short_side >> 1; 9b6e: bfc8 it gt 9b70: b21e sxthgt r6, r3 lv_area_copy(¶m->cfg.rect, rect); 9b72: 4b08 ldr r3, [pc, #32] ; (9b94 ) 9b74: 4798 blx r3 param->cfg.outer = inv ? 1 : 0; 9b76: 7ca3 ldrb r3, [r4, #18] param->cfg.radius = radius; 9b78: 8226 strh r6, [r4, #16] param->cfg.outer = inv ? 1 : 0; 9b7a: f367 0300 bfi r3, r7, #0, #1 9b7e: 74a3 strb r3, [r4, #18] param->dsc.cb = (lv_draw_mask_xcb_t)lv_draw_mask_radius; 9b80: 4b05 ldr r3, [pc, #20] ; (9b98 ) 9b82: 6023 str r3, [r4, #0] param->dsc.type = LV_DRAW_MASK_TYPE_RADIUS; 9b84: 2302 movs r3, #2 9b86: 7123 strb r3, [r4, #4] param->y_prev_x.i = 0; 9b88: f04f 4200 mov.w r2, #2147483648 ; 0x80000000 9b8c: 2300 movs r3, #0 9b8e: e9c4 2305 strd r2, r3, [r4, #20] } 9b92: bdf8 pop {r3, r4, r5, r6, r7, pc} 9b94: 000094b9 .word 0x000094b9 9b98: 000094cd .word 0x000094cd 00009b9c : 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) { 9b9c: b570 push {r4, r5, r6, lr} int32_t min = (dsc->bg_main_color_stop * s) >> 8; 9b9e: f9b0 4008 ldrsh.w r4, [r0, #8] 9ba2: fb04 f301 mul.w r3, r4, r1 if(i <= min) return dsc->bg_color; 9ba6: ebb2 2f23 cmp.w r2, r3, asr #8 int32_t min = (dsc->bg_main_color_stop * s) >> 8; 9baa: ea4f 2523 mov.w r5, r3, asr #8 if(i <= min) return dsc->bg_color; 9bae: dc01 bgt.n 9bb4 9bb0: 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); } 9bb2: bd70 pop {r4, r5, r6, pc} int32_t max = (dsc->bg_grad_color_stop * s) >> 8; 9bb4: f9b0 300a ldrsh.w r3, [r0, #10] 9bb8: fb01 f603 mul.w r6, r1, r3 if(i >= max) return dsc->bg_grad_color; 9bbc: ebb2 2f26 cmp.w r2, r6, asr #8 9bc0: db01 blt.n 9bc6 9bc2: 8880 ldrh r0, [r0, #4] 9bc4: e7f5 b.n 9bb2 int32_t d = dsc->bg_grad_color_stop - dsc->bg_main_color_stop; 9bc6: 1b1b subs r3, r3, r4 d = (s * d) >> 8; 9bc8: 4359 muls r1, r3 i -= min; 9bca: 1b52 subs r2, r2, r5 d = (s * d) >> 8; 9bcc: 120b asrs r3, r1, #8 lv_opa_t mix = (i * 255) / d; 9bce: 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))); 9bd0: 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))); 9bd2: 7906 ldrb r6, [r0, #4] 9bd4: ebc2 2202 rsb r2, r2, r2, lsl #8 9bd8: 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))); 9bdc: 8882 ldrh r2, [r0, #4] 9bde: 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))); 9be0: 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))); 9be4: f3c1 1145 ubfx r1, r1, #5, #6 9be8: f3c2 1245 ubfx r2, r2, #5, #6 9bec: 4369 muls r1, r5 9bee: 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))); 9bf2: 7882 ldrb r2, [r0, #2] 9bf4: f002 021f and.w r2, r2, #31 9bf8: f006 061f and.w r6, r6, #31 9bfc: 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))); 9bfe: 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))); 9c02: 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))); 9c06: 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))); 9c08: 4362 muls r2, r4 9c0a: f3c1 51c5 ubfx r1, r1, #23, #6 9c0e: f3c2 52c4 ubfx r2, r2, #23, #5 9c12: 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))); 9c16: 78c1 ldrb r1, [r0, #3] 9c18: 7946 ldrb r6, [r0, #5] 9c1a: 08c9 lsrs r1, r1, #3 9c1c: 08f6 lsrs r6, r6, #3 9c1e: 4369 muls r1, r5 9c20: fb03 1306 mla r3, r3, r6, r1 9c24: 4363 muls r3, r4 9c26: 0ddb lsrs r3, r3, #23 9c28: ea42 20c3 orr.w r0, r2, r3, lsl #11 return lv_color_mix(dsc->bg_grad_color, dsc->bg_color, mix); 9c2c: e7c1 b.n 9bb2 ... 00009c30 : #endif } LV_ATTRIBUTE_FAST_MEM static void shadow_blur_corner(lv_coord_t size, lv_coord_t sw, uint16_t * sh_ups_buf) { 9c30: 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)); 9c34: 0045 lsls r5, r0, #1 int32_t s_left = sw >> 1; 9c36: ea4f 0961 mov.w r9, r1, asr #1 { 9c3a: b087 sub sp, #28 if((sw & 1) == 0) s_left--; 9c3c: 07cb lsls r3, r1, #31 { 9c3e: 4604 mov r4, r0 uint16_t * sh_ups_blur_buf = _lv_mem_buf_get(size * sizeof(uint16_t)); 9c40: 4b5a ldr r3, [pc, #360] ; (9dac ) 9c42: 4628 mov r0, r5 { 9c44: 460e mov r6, r1 9c46: 4617 mov r7, r2 int32_t s_left = sw >> 1; 9c48: 46ca mov sl, r9 if((sw & 1) == 0) s_left--; 9c4a: bf58 it pl 9c4c: f109 3aff addpl.w sl, r9, #4294967295 ; 0xffffffff uint16_t * sh_ups_blur_buf = _lv_mem_buf_get(size * sizeof(uint16_t)); 9c50: 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; 9c52: 1eab subs r3, r5, #2 9c54: 9300 str r3, [sp, #0] 9c56: ea4f 0349 mov.w r3, r9, lsl #1 9c5a: 9301 str r3, [sp, #4] 9c5c: f06f 0301 mvn.w r3, #1 9c60: fb0a 3303 mla r3, sl, r3, r3 uint16_t * sh_ups_blur_buf = _lv_mem_buf_get(size * sizeof(uint16_t)); 9c64: 4601 mov r1, r0 for(y = 0; y < size; y++) { 9c66: 46b8 mov r8, r7 9c68: f04f 0b00 mov.w fp, #0 9c6c: 9302 str r3, [sp, #8] 9c6e: 455c cmp r4, fp 9c70: dc22 bgt.n 9cb8 sh_ups_tmp_buf += size; } /*Vertical blur*/ uint32_t i; sh_ups_buf[0] = sh_ups_buf[0] / sw; 9c72: 883b ldrh r3, [r7, #0] 9c74: fb93 f3f6 sdiv r3, r3, r6 for(i = 1; i < (uint32_t)size * size; i++) { 9c78: fb04 f804 mul.w r8, r4, r4 sh_ups_buf[0] = sh_ups_buf[0] / sw; 9c7c: 803b strh r3, [r7, #0] for(i = 1; i < (uint32_t)size * size; i++) { 9c7e: 463a mov r2, r7 9c80: 463b mov r3, r7 9c82: f04f 0c01 mov.w ip, #1 9c86: 45c4 cmp ip, r8 9c88: d341 bcc.n 9d0e 9c8a: 426b negs r3, r5 9c8c: fb09 f303 mul.w r3, r9, r3 9c90: 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]; 9c92: 1e63 subs r3, r4, #1 9c94: fb05 7303 mla r3, r5, r3, r7 9c98: 9302 str r3, [sp, #8] 9c9a: f10a 0301 add.w r3, sl, #1 9c9e: 9301 str r3, [sp, #4] 9ca0: fb0a 5a05 mla sl, sl, r5, r5 for(x = 0; x < size; x++) { 9ca4: f04f 0c00 mov.w ip, #0 9ca8: 4564 cmp r4, ip 9caa: dc3e bgt.n 9d2a 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); 9cac: 4b40 ldr r3, [pc, #256] ; (9db0 ) 9cae: 4608 mov r0, r1 } 9cb0: b007 add sp, #28 9cb2: e8bd 4ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} _lv_mem_buf_release(sh_ups_blur_buf); 9cb6: 4718 bx r3 int32_t v = sh_ups_tmp_buf[size - 1] * sw; 9cb8: 9b00 ldr r3, [sp, #0] 9cba: 9801 ldr r0, [sp, #4] 9cbc: f838 2003 ldrh.w r2, [r8, r3] 9cc0: eb00 0c08 add.w ip, r0, r8 9cc4: 9802 ldr r0, [sp, #8] 9cc6: 4372 muls r2, r6 for(x = size - 1; x >= 0; x--) { 9cc8: 1e63 subs r3, r4, #1 9cca: 4440 add r0, r8 sh_ups_blur_buf[x] = v; 9ccc: f821 2013 strh.w r2, [r1, r3, lsl #1] if(x + s_right < size) right_val = sh_ups_tmp_buf[x + s_right]; 9cd0: eb03 0e09 add.w lr, r3, r9 9cd4: 4574 cmp r4, lr 9cd6: bfcc ite gt 9cd8: f83c e013 ldrhgt.w lr, [ip, r3, lsl #1] uint32_t right_val = 0; 9cdc: f04f 0e00 movle.w lr, #0 v -= right_val; 9ce0: eba2 0e0e sub.w lr, r2, lr if(x - s_left - 1 < 0) left_val = sh_ups_tmp_buf[0]; 9ce4: eba3 020a sub.w r2, r3, sl 9ce8: 2a00 cmp r2, #0 9cea: bfd4 ite le 9cec: f8b8 2000 ldrhle.w r2, [r8] else left_val = sh_ups_tmp_buf[x - s_left - 1]; 9cf0: f830 2013 ldrhgt.w r2, [r0, r3, lsl #1] for(x = size - 1; x >= 0; x--) { 9cf4: 3b01 subs r3, #1 v += left_val; 9cf6: 4472 add r2, lr for(x = size - 1; x >= 0; x--) { 9cf8: d2e8 bcs.n 9ccc _lv_memcpy(sh_ups_tmp_buf, sh_ups_blur_buf, size * sizeof(uint16_t)); 9cfa: 4640 mov r0, r8 9cfc: 4b2d ldr r3, [pc, #180] ; (9db4 ) 9cfe: 9103 str r1, [sp, #12] 9d00: 462a mov r2, r5 9d02: 4798 blx r3 sh_ups_tmp_buf += size; 9d04: 44a8 add r8, r5 for(y = 0; y < size; y++) { 9d06: 9903 ldr r1, [sp, #12] 9d08: f10b 0b01 add.w fp, fp, #1 9d0c: e7af b.n 9c6e if(sh_ups_buf[i] == sh_ups_buf[i - 1]) sh_ups_buf[i] = sh_ups_buf[i - 1]; 9d0e: 8858 ldrh r0, [r3, #2] 9d10: f833 eb02 ldrh.w lr, [r3], #2 9d14: 4570 cmp r0, lr else sh_ups_buf[i] = sh_ups_buf[i] / sw; 9d16: bf1c itt ne 9d18: fb90 f0f6 sdivne r0, r0, r6 9d1c: fa1f fe80 uxthne.w lr, r0 9d20: f8a3 e000 strh.w lr, [r3] for(i = 1; i < (uint32_t)size * size; i++) { 9d24: f10c 0c01 add.w ip, ip, #1 9d28: e7ad b.n 9c86 sh_ups_tmp_buf = &sh_ups_buf[x]; 9d2a: 9803 ldr r0, [sp, #12] int32_t v = sh_ups_tmp_buf[0] * sw; 9d2c: 8813 ldrh r3, [r2, #0] 9d2e: 1810 adds r0, r2, r0 9d30: 4373 muls r3, r6 9d32: 9005 str r0, [sp, #20] 9d34: 2700 movs r7, #0 9d36: eb0a 0002 add.w r0, sl, r2 9d3a: 9004 str r0, [sp, #16] sh_ups_tmp_buf = &sh_ups_buf[x]; 9d3c: 4696 mov lr, r2 int32_t v = sh_ups_tmp_buf[0] * sw; 9d3e: 9300 str r3, [sp, #0] 9d40: 4690 mov r8, r2 for(y = 0; y < size ; y++, sh_ups_tmp_buf += size) { 9d42: 4638 mov r0, r7 sh_ups_blur_buf[y] = v < 0 ? 0 : (v >> SHADOW_UPSACALE_SHIFT); 9d44: 9b00 ldr r3, [sp, #0] 9d46: 2b00 cmp r3, #0 9d48: bfac ite ge 9d4a: f3c3 1b8f ubfxge fp, r3, #6, #16 9d4e: f04f 0b00 movlt.w fp, #0 9d52: f821 b010 strh.w fp, [r1, r0, lsl #1] if(y - s_right <= 0) top_val = sh_ups_tmp_buf[0]; 9d56: eba0 0b09 sub.w fp, r0, r9 9d5a: f1bb 0f00 cmp.w fp, #0 else top_val = sh_ups_buf[(y - s_right) * size + x]; 9d5e: bfca itet gt 9d60: 9b05 ldrgt r3, [sp, #20] if(y - s_right <= 0) top_val = sh_ups_tmp_buf[0]; 9d62: f8b8 b000 ldrhle.w fp, [r8] else top_val = sh_ups_buf[(y - s_right) * size + x]; 9d66: f833 b007 ldrhgt.w fp, [r3, r7] v -= top_val; 9d6a: 9b00 ldr r3, [sp, #0] 9d6c: eba3 0b0b sub.w fp, r3, fp if(y + s_left + 1 < size) bottom_val = sh_ups_buf[(y + s_left + 1) * size + x]; 9d70: 9b01 ldr r3, [sp, #4] 9d72: 4403 add r3, r0 9d74: 429c cmp r4, r3 9d76: bfcb itete gt 9d78: 9b04 ldrgt r3, [sp, #16] else bottom_val = sh_ups_buf[(size - 1) * size + x]; 9d7a: 9b02 ldrle r3, [sp, #8] if(y + s_left + 1 < size) bottom_val = sh_ups_buf[(y + s_left + 1) * size + x]; 9d7c: 5bdb ldrhgt r3, [r3, r7] else bottom_val = sh_ups_buf[(size - 1) * size + x]; 9d7e: f833 301c ldrhle.w r3, [r3, ip, lsl #1] for(y = 0; y < size ; y++, sh_ups_tmp_buf += size) { 9d82: 3001 adds r0, #1 v += bottom_val; 9d84: 445b add r3, fp for(y = 0; y < size ; y++, sh_ups_tmp_buf += size) { 9d86: 4284 cmp r4, r0 v += bottom_val; 9d88: 9300 str r3, [sp, #0] for(y = 0; y < size ; y++, sh_ups_tmp_buf += size) { 9d8a: 44a8 add r8, r5 9d8c: 442f add r7, r5 9d8e: dcd9 bgt.n 9d44 for(y = 0; y < size; y++, sh_ups_tmp_buf += size) { 9d90: 2300 movs r3, #0 (*sh_ups_tmp_buf) = sh_ups_blur_buf[y]; 9d92: f831 0013 ldrh.w r0, [r1, r3, lsl #1] 9d96: f8ae 0000 strh.w r0, [lr] for(y = 0; y < size; y++, sh_ups_tmp_buf += size) { 9d9a: 3301 adds r3, #1 9d9c: 429c cmp r4, r3 9d9e: 44ae add lr, r5 9da0: dcf7 bgt.n 9d92 for(x = 0; x < size; x++) { 9da2: f10c 0c01 add.w ip, ip, #1 9da6: 3202 adds r2, #2 9da8: e77e b.n 9ca8 9daa: bf00 nop 9dac: 0000f0ed .word 0x0000f0ed 9db0: 0000eda1 .word 0x0000eda1 9db4: 0000ee69 .word 0x0000ee69 00009db8 : 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) { 9db8: 3901 subs r1, #1 9dba: f100 0308 add.w r3, r0, #8 *d8 = *s8; 9dbe: f811 2f01 ldrb.w r2, [r1, #1]! 9dc2: f800 2b01 strb.w r2, [r0], #1 while(len) { 9dc6: 4298 cmp r0, r3 9dc8: d1f9 bne.n 9dbe * @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)); } 9dca: 4770 bx lr 00009dcc : { 9dcc: b510 push {r4, lr} _lv_memset_00(dsc, sizeof(lv_draw_rect_dsc_t)); 9dce: 4b0f ldr r3, [pc, #60] ; (9e0c ) 9dd0: 2154 movs r1, #84 ; 0x54 { 9dd2: 4604 mov r4, r0 _lv_memset_00(dsc, sizeof(lv_draw_rect_dsc_t)); 9dd4: 4798 blx r3 dsc->bg_color = LV_COLOR_WHITE; 9dd6: 4b0e ldr r3, [pc, #56] ; (9e10 ) 9dd8: 881b ldrh r3, [r3, #0] 9dda: 8063 strh r3, [r4, #2] dsc->bg_grad_color = LV_COLOR_BLACK; 9ddc: 2200 movs r2, #0 dsc->bg_grad_color_stop = 0xFF; 9dde: 23ff movs r3, #255 ; 0xff dsc->bg_grad_color = LV_COLOR_BLACK; 9de0: 80a2 strh r2, [r4, #4] dsc->border_color = LV_COLOR_BLACK; 9de2: 81e2 strh r2, [r4, #14] dsc->value_color = LV_COLOR_BLACK; 9de4: f8a4 2046 strh.w r2, [r4, #70] ; 0x46 dsc->shadow_color = LV_COLOR_BLACK; 9de8: 83e2 strh r2, [r4, #30] dsc->bg_grad_color_stop = 0xFF; 9dea: 8163 strh r3, [r4, #10] dsc->bg_opa = LV_OPA_COVER; 9dec: 7323 strb r3, [r4, #12] dsc->outline_opa = LV_OPA_COVER; 9dee: 7723 strb r3, [r4, #28] dsc->border_opa = LV_OPA_COVER; 9df0: 7523 strb r3, [r4, #20] dsc->pattern_recolor = LV_COLOR_BLACK; 9df2: 86a2 strh r2, [r4, #52] ; 0x34 dsc->pattern_opa = LV_OPA_COVER; 9df4: f884 3036 strb.w r3, [r4, #54] ; 0x36 dsc->pattern_font = LV_THEME_DEFAULT_FONT_NORMAL; 9df8: 4a06 ldr r2, [pc, #24] ; (9e14 ) dsc->value_opa = LV_OPA_COVER; 9dfa: f884 3044 strb.w r3, [r4, #68] ; 0x44 dsc->shadow_opa = LV_OPA_COVER; 9dfe: f884 3028 strb.w r3, [r4, #40] ; 0x28 dsc->border_side = LV_BORDER_SIDE_FULL; 9e02: 230f movs r3, #15 dsc->pattern_font = LV_THEME_DEFAULT_FONT_NORMAL; 9e04: 6322 str r2, [r4, #48] ; 0x30 dsc->value_font = LV_THEME_DEFAULT_FONT_NORMAL; 9e06: 6422 str r2, [r4, #64] ; 0x40 dsc->border_side = LV_BORDER_SIDE_FULL; 9e08: 8263 strh r3, [r4, #18] } 9e0a: bd10 pop {r4, pc} 9e0c: 0000f251 .word 0x0000f251 9e10: 00027770 .word 0x00027770 9e14: 20000004 .word 0x20000004 00009e18 : { 9e18: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} 9e1c: 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); 9e1e: 88c2 ldrh r2, [r0, #6] 9e20: 8845 ldrh r5, [r0, #2] 9e22: 1c53 adds r3, r2, #1 9e24: ed2d 8b04 vpush {d8-d9} 9e28: 1b5b subs r3, r3, r5 if(lv_area_get_height(coords) < 1 || lv_area_get_width(coords) < 1) return; 9e2a: b21b sxth r3, r3 9e2c: 2b00 cmp r3, #0 { 9e2e: b0ad sub sp, #180 ; 0xb4 9e30: 4683 mov fp, r0 9e32: 4688 mov r8, r1 if(lv_area_get_height(coords) < 1 || lv_area_get_width(coords) < 1) return; 9e34: f341 816e ble.w b114 return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); 9e38: 8881 ldrh r1, [r0, #4] 9e3a: 8800 ldrh r0, [r0, #0] 9e3c: 1c4b adds r3, r1, #1 9e3e: 1a1b subs r3, r3, r0 9e40: b21b sxth r3, r3 9e42: 2b00 cmp r3, #0 9e44: f341 8166 ble.w b114 if(dsc->shadow_width == 0) return; 9e48: f9ba 4020 ldrsh.w r4, [sl, #32] 9e4c: 2c00 cmp r4, #0 9e4e: f000 8542 beq.w a8d6 if(dsc->shadow_opa <= LV_OPA_MIN) return; 9e52: f89a 3028 ldrb.w r3, [sl, #40] ; 0x28 9e56: 9308 str r3, [sp, #32] 9e58: 2b05 cmp r3, #5 9e5a: f240 853c bls.w a8d6 if(dsc->shadow_width == 1 && dsc->shadow_ofs_x == 0 && 9e5e: f8da 7020 ldr.w r7, [sl, #32] dsc->shadow_ofs_y == 0 && dsc->shadow_spread <= 0) { 9e62: f9ba 6024 ldrsh.w r6, [sl, #36] ; 0x24 9e66: f9ba 3026 ldrsh.w r3, [sl, #38] ; 0x26 if(dsc->shadow_width == 1 && dsc->shadow_ofs_x == 0 && 9e6a: 2f01 cmp r7, #1 9e6c: d103 bne.n 9e76 9e6e: b916 cbnz r6, 9e76 dsc->shadow_ofs_y == 0 && dsc->shadow_spread <= 0) { 9e70: 2b00 cmp r3, #0 9e72: f340 8530 ble.w a8d6 sh_rect_area.x1 = coords->x1 + dsc->shadow_ofs_x - dsc->shadow_spread; 9e76: f8ba 7022 ldrh.w r7, [sl, #34] ; 0x22 9e7a: b29b uxth r3, r3 9e7c: eba7 0c03 sub.w ip, r7, r3 sh_rect_area.y1 = coords->y1 + dsc->shadow_ofs_y - dsc->shadow_spread; 9e80: b2b6 uxth r6, r6 sh_rect_area.x2 = coords->x2 + dsc->shadow_ofs_x + dsc->shadow_spread; 9e82: 441f add r7, r3 9e84: 4439 add r1, r7 sh_rect_area.y1 = coords->y1 + dsc->shadow_ofs_y - dsc->shadow_spread; 9e86: 1af7 subs r7, r6, r3 sh_rect_area.y2 = coords->y2 + dsc->shadow_ofs_y + dsc->shadow_spread; 9e88: 4433 add r3, r6 9e8a: 441a add r2, r3 sh_area.x1 = sh_rect_area.x1 - sw / 2 - 1; 9e8c: eb04 73d4 add.w r3, r4, r4, lsr #31 9e90: 105b asrs r3, r3, #1 9e92: 425b negs r3, r3 sh_rect_area.y2 = coords->y2 + dsc->shadow_ofs_y + dsc->shadow_spread; 9e94: b292 uxth r2, r2 9e96: 1e5e subs r6, r3, #1 sh_rect_area.x2 = coords->x2 + dsc->shadow_ofs_x + dsc->shadow_spread; 9e98: b289 uxth r1, r1 9e9a: f1c3 0301 rsb r3, r3, #1 9e9e: f8ad 1044 strh.w r1, [sp, #68] ; 0x44 sh_area.x2 = sh_rect_area.x2 + sw / 2 + 1; 9ea2: fa11 f183 uxtah r1, r1, r3 sh_area.y2 = sh_rect_area.y2 + sw / 2 + 1; 9ea6: fa12 f383 uxtah r3, r2, r3 9eaa: f8ad 304e strh.w r3, [sp, #78] ; 0x4e if(opa > LV_OPA_MAX) opa = LV_OPA_COVER; 9eae: 9b08 ldr r3, [sp, #32] sh_rect_area.y2 = coords->y2 + dsc->shadow_ofs_y + dsc->shadow_spread; 9eb0: f8ad 2046 strh.w r2, [sp, #70] ; 0x46 sh_rect_area.x1 = coords->x1 + dsc->shadow_ofs_x - dsc->shadow_spread; 9eb4: 4460 add r0, ip sh_rect_area.y1 = coords->y1 + dsc->shadow_ofs_y - dsc->shadow_spread; 9eb6: 443d add r5, r7 if(opa > LV_OPA_MAX) opa = LV_OPA_COVER; 9eb8: 2bfb cmp r3, #251 ; 0xfb sh_rect_area.y1 = coords->y1 + dsc->shadow_ofs_y - dsc->shadow_spread; 9eba: b2ad uxth r5, r5 sh_rect_area.x1 = coords->x1 + dsc->shadow_ofs_x - dsc->shadow_spread; 9ebc: b280 uxth r0, r0 if(opa > LV_OPA_MAX) opa = LV_OPA_COVER; 9ebe: bf28 it cs 9ec0: 23ff movcs r3, #255 ; 0xff sh_rect_area.x1 = coords->x1 + dsc->shadow_ofs_x - dsc->shadow_spread; 9ec2: f8ad 0040 strh.w r0, [sp, #64] ; 0x40 sh_area.x1 = sh_rect_area.x1 - sw / 2 - 1; 9ec6: fa10 f086 uxtah r0, r0, r6 sh_area.y1 = sh_rect_area.y1 - sw / 2 - 1; 9eca: fa15 f686 uxtah r6, r5, r6 sh_area.x2 = sh_rect_area.x2 + sw / 2 + 1; 9ece: f8ad 104c strh.w r1, [sp, #76] ; 0x4c sh_rect_area.y1 = coords->y1 + dsc->shadow_ofs_y - dsc->shadow_spread; 9ed2: f8ad 5042 strh.w r5, [sp, #66] ; 0x42 if(opa > LV_OPA_MAX) opa = LV_OPA_COVER; 9ed6: 9308 str r3, [sp, #32] sh_area.x1 = sh_rect_area.x1 - sw / 2 - 1; 9ed8: f8ad 0048 strh.w r0, [sp, #72] ; 0x48 lv_disp_t * disp = _lv_refr_get_disp_refreshing(); 9edc: 4bac ldr r3, [pc, #688] ; (a190 ) sh_area.y1 = sh_rect_area.y1 - sw / 2 - 1; 9ede: f8ad 604a strh.w r6, [sp, #74] ; 0x4a lv_disp_t * disp = _lv_refr_get_disp_refreshing(); 9ee2: 4798 blx r3 lv_disp_buf_t * vdb = lv_disp_get_buf(disp); 9ee4: 4bab ldr r3, [pc, #684] ; (a194 ) 9ee6: 4798 blx r3 is_common = _lv_area_intersect(&draw_area, &sh_area, clip); 9ee8: 4bab ldr r3, [pc, #684] ; (a198 ) lv_disp_buf_t * vdb = lv_disp_get_buf(disp); 9eea: 4605 mov r5, r0 is_common = _lv_area_intersect(&draw_area, &sh_area, clip); 9eec: 4642 mov r2, r8 9eee: a912 add r1, sp, #72 ; 0x48 9ef0: a814 add r0, sp, #80 ; 0x50 9ef2: 4798 blx r3 if(is_common == false) return; 9ef4: 2800 cmp r0, #0 9ef6: f000 84ee beq.w a8d6 draw_area.x1 -= disp_area->x1; 9efa: 8a29 ldrh r1, [r5, #16] 9efc: f8bd 3050 ldrh.w r3, [sp, #80] ; 0x50 draw_area.y1 -= disp_area->y1; 9f00: 8a6a ldrh r2, [r5, #18] draw_area.x1 -= disp_area->x1; 9f02: 1a5b subs r3, r3, r1 9f04: f8ad 3050 strh.w r3, [sp, #80] ; 0x50 draw_area.y1 -= disp_area->y1; 9f08: f8bd 3052 ldrh.w r3, [sp, #82] ; 0x52 9f0c: 1a9b subs r3, r3, r2 9f0e: f8ad 3052 strh.w r3, [sp, #82] ; 0x52 draw_area.x2 -= disp_area->x1; 9f12: f8bd 3054 ldrh.w r3, [sp, #84] ; 0x54 9f16: 1a5b subs r3, r3, r1 9f18: f8ad 3054 strh.w r3, [sp, #84] ; 0x54 draw_area.y2 -= disp_area->y1; 9f1c: f8bd 3056 ldrh.w r3, [sp, #86] ; 0x56 9f20: 1a9b subs r3, r3, r2 9f22: f8ad 3056 strh.w r3, [sp, #86] ; 0x56 lv_area_copy(&bg_coords, coords); 9f26: 4659 mov r1, fp 9f28: 4b9c ldr r3, [pc, #624] ; (a19c ) 9f2a: a816 add r0, sp, #88 ; 0x58 9f2c: 4798 blx r3 bg_coords.x1 += 1; 9f2e: f8bd 5058 ldrh.w r5, [sp, #88] ; 0x58 bg_coords.y1 += 1; 9f32: f8bd 005a ldrh.w r0, [sp, #90] ; 0x5a bg_coords.x2 -= 1; 9f36: f8bd 205c ldrh.w r2, [sp, #92] ; 0x5c bg_coords.y2 -= 1; 9f3a: f8bd 105e ldrh.w r1, [sp, #94] ; 0x5e 9f3e: f8bd 7044 ldrh.w r7, [sp, #68] ; 0x44 bg_coords.x1 += 1; 9f42: 3501 adds r5, #1 bg_coords.y1 += 1; 9f44: 3001 adds r0, #1 bg_coords.x1 += 1; 9f46: b2ad uxth r5, r5 bg_coords.y1 += 1; 9f48: b280 uxth r0, r0 bg_coords.x2 -= 1; 9f4a: 1e53 subs r3, r2, #1 9f4c: f8ad 305c strh.w r3, [sp, #92] ; 0x5c 9f50: 1b52 subs r2, r2, r5 bg_coords.y2 -= 1; 9f52: 1e4b subs r3, r1, #1 return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); 9f54: 1a09 subs r1, r1, r0 return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); 9f56: b212 sxth r2, r2 return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); 9f58: b209 sxth r1, r1 int32_t short_side = LV_MATH_MIN(lv_area_get_width(&bg_coords), lv_area_get_height(&bg_coords)); 9f5a: 428a cmp r2, r1 9f5c: bfa8 it ge 9f5e: 460a movge r2, r1 bg_coords.y2 -= 1; 9f60: f8ad 305e strh.w r3, [sp, #94] ; 0x5e int32_t r_bg = dsc->radius; 9f64: f9ba 3000 ldrsh.w r3, [sl] 9f68: f8bd 1042 ldrh.w r1, [sp, #66] ; 0x42 bg_coords.y1 += 1; 9f6c: f8ad 005a strh.w r0, [sp, #90] ; 0x5a if(r_bg > short_side >> 1) r_bg = short_side >> 1; 9f70: 1052 asrs r2, r2, #1 9f72: 429a cmp r2, r3 9f74: bfa8 it ge 9f76: 461a movge r2, r3 9f78: ee08 2a90 vmov s17, r2 return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); 9f7c: f8bd 2040 ldrh.w r2, [sp, #64] ; 0x40 bg_coords.x1 += 1; 9f80: f8ad 5058 strh.w r5, [sp, #88] ; 0x58 9f84: 3701 adds r7, #1 9f86: 1abf subs r7, r7, r2 return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); 9f88: f8bd 2046 ldrh.w r2, [sp, #70] ; 0x46 sh_buf = _lv_mem_buf_get(corner_size * corner_size * sizeof(uint16_t)); 9f8c: 4d84 ldr r5, [pc, #528] ; (a1a0 ) 9f8e: 3201 adds r2, #1 9f90: 1a52 subs r2, r2, r1 9f92: b212 sxth r2, r2 return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); 9f94: b23f sxth r7, r7 short_side = LV_MATH_MIN(lv_area_get_width(&sh_rect_area), lv_area_get_height(&sh_rect_area)); 9f96: 4297 cmp r7, r2 9f98: bfa8 it ge 9f9a: 4617 movge r7, r2 if(r_sh > short_side >> 1) r_sh = short_side >> 1; 9f9c: 107f asrs r7, r7, #1 9f9e: 429f cmp r7, r3 9fa0: bfa8 it ge 9fa2: 461f movge r7, r3 int32_t corner_size = sw + r_sh; 9fa4: eb04 0907 add.w r9, r4, r7 sh_buf = _lv_mem_buf_get(corner_size * corner_size * sizeof(uint16_t)); 9fa8: fb09 f009 mul.w r0, r9, r9 9fac: 0040 lsls r0, r0, #1 9fae: 47a8 blx r5 shadow_draw_corner_buf(&sh_rect_area, (uint16_t *)sh_buf, dsc->shadow_width, r_sh); 9fb0: f9ba 4020 ldrsh.w r4, [sl, #32] lv_area_copy(&sh_area, coords); 9fb4: 4b79 ldr r3, [pc, #484] ; (a19c ) sh_buf = _lv_mem_buf_get(corner_size * corner_size * sizeof(uint16_t)); 9fb6: 9006 str r0, [sp, #24] lv_area_copy(&sh_area, coords); 9fb8: a910 add r1, sp, #64 ; 0x40 9fba: a81e add r0, sp, #120 ; 0x78 9fbc: 4798 blx r3 9fbe: f004 0201 and.w r2, r4, #1 sh_area.x2 = sw / 2 + r - 1 - ((sw & 1) ? 0 : 1); 9fc2: eb04 73d4 add.w r3, r4, r4, lsr #31 sh_area.x1 = sh_area.x2 - lv_area_get_width(coords); 9fc6: f8bd 1040 ldrh.w r1, [sp, #64] ; 0x40 9fca: 920a str r2, [sp, #40] ; 0x28 sh_area.x2 = sw / 2 + r - 1 - ((sw & 1) ? 0 : 1); 9fcc: f3c3 034f ubfx r3, r3, #1, #16 9fd0: f064 0201 orn r2, r4, #1 sh_area.x1 = sh_area.x2 - lv_area_get_width(coords); 9fd4: f8bd 0044 ldrh.w r0, [sp, #68] ; 0x44 sh_area.x2 = sw / 2 + r - 1 - ((sw & 1) ? 0 : 1); 9fd8: 441a add r2, r3 9fda: 443a add r2, r7 sh_area.x1 = sh_area.x2 - lv_area_get_width(coords); 9fdc: 3901 subs r1, #1 9fde: 1a09 subs r1, r1, r0 sh_area.x2 = sw / 2 + r - 1 - ((sw & 1) ? 0 : 1); 9fe0: b292 uxth r2, r2 9fe2: f8ad 207c strh.w r2, [sp, #124] ; 0x7c sh_area.x1 = sh_area.x2 - lv_area_get_width(coords); 9fe6: 440a add r2, r1 9fe8: f8ad 2078 strh.w r2, [sp, #120] ; 0x78 return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); 9fec: f8bd 2046 ldrh.w r2, [sp, #70] ; 0x46 9ff0: f8bd 1042 ldrh.w r1, [sp, #66] ; 0x42 sh_area.y1 = sw / 2 + 1; 9ff4: 3301 adds r3, #1 9ff6: 3201 adds r2, #1 9ff8: 1a52 subs r2, r2, r1 9ffa: b29b uxth r3, r3 9ffc: f8ad 307a strh.w r3, [sp, #122] ; 0x7a sh_area.y2 = sh_area.y1 + lv_area_get_height(coords); a000: 4413 add r3, r2 int32_t size = sw_ori + r; a002: 193e adds r6, r7, r4 lv_draw_mask_radius_init(&mask_param, &sh_area, r, false); a004: 463a mov r2, r7 sh_area.y2 = sh_area.y1 + lv_area_get_height(coords); a006: f8ad 307e strh.w r3, [sp, #126] ; 0x7e lv_draw_mask_radius_init(&mask_param, &sh_area, r, false); a00a: 4f66 ldr r7, [pc, #408] ; (a1a4 ) a00c: 2300 movs r3, #0 a00e: a91e add r1, sp, #120 ; 0x78 a010: a825 add r0, sp, #148 ; 0x94 a012: 47b8 blx r7 if(sw_ori == 1) sw = 1; a014: 2c01 cmp r4, #1 lv_opa_t * mask_line = _lv_mem_buf_get(size); a016: 4630 mov r0, r6 else sw = sw_ori >> 1; a018: bf18 it ne a01a: 1064 asrne r4, r4, #1 lv_opa_t * mask_line = _lv_mem_buf_get(size); a01c: 47a8 blx r5 _lv_memset_00(sh_ups_tmp_buf, size * sizeof(sh_ups_tmp_buf[0])); a01e: 0073 lsls r3, r6, #1 a020: 9309 str r3, [sp, #36] ; 0x24 sh_buf = _lv_mem_buf_get(corner_size * corner_size * sizeof(uint16_t)); a022: 9b06 ldr r3, [sp, #24] a024: 9305 str r3, [sp, #20] for(y = 0; y < size; y++) { a026: 2300 movs r3, #0 a028: 9307 str r3, [sp, #28] lv_draw_mask_res_t mask_res = mask_param.dsc.cb(mask_line, 0, y, size, &mask_param); a02a: b233 sxth r3, r6 a02c: ee08 3a10 vmov s16, r3 lv_opa_t * mask_line = _lv_mem_buf_get(size); a030: 4607 mov r7, r0 for(y = 0; y < size; y++) { a032: 9b07 ldr r3, [sp, #28] a034: 429e cmp r6, r3 a036: dc08 bgt.n a04a _lv_mem_buf_release(mask_line); a038: 4b5b ldr r3, [pc, #364] ; (a1a8 ) a03a: 4638 mov r0, r7 a03c: 4798 blx r3 if(sw == 1) { a03e: 2c01 cmp r4, #1 for(x = 0; x < size * size; x++) { a040: fb06 f506 mul.w r5, r6, r6 if(sw == 1) { a044: d174 bne.n a130 for(i = 0; i < size * size; i++) { a046: 2300 movs r3, #0 a048: e03e b.n a0c8 _lv_memset_ff(mask_line, size); a04a: 4b58 ldr r3, [pc, #352] ; (a1ac ) a04c: 4631 mov r1, r6 a04e: 4638 mov r0, r7 a050: 4798 blx r3 lv_draw_mask_res_t mask_res = mask_param.dsc.cb(mask_line, 0, y, size, &mask_param); a052: ab25 add r3, sp, #148 ; 0x94 a054: 9300 str r3, [sp, #0] a056: f9bd 201c ldrsh.w r2, [sp, #28] a05a: 9d25 ldr r5, [sp, #148] ; 0x94 a05c: ee18 3a10 vmov r3, s16 a060: 2100 movs r1, #0 a062: 4638 mov r0, r7 a064: 47a8 blx r5 if(mask_res == LV_DRAW_MASK_RES_TRANSP) { a066: b958 cbnz r0, a080 _lv_memset_00(sh_ups_tmp_buf, size * sizeof(sh_ups_tmp_buf[0])); a068: 9909 ldr r1, [sp, #36] ; 0x24 a06a: 9805 ldr r0, [sp, #20] a06c: 4b50 ldr r3, [pc, #320] ; (a1b0 ) a06e: 4798 blx r3 sh_ups_tmp_buf += size; a070: 9b09 ldr r3, [sp, #36] ; 0x24 a072: 9a05 ldr r2, [sp, #20] a074: 441a add r2, r3 for(y = 0; y < size; y++) { a076: 9b07 ldr r3, [sp, #28] sh_ups_tmp_buf += size; a078: 9205 str r2, [sp, #20] for(y = 0; y < size; y++) { a07a: 3301 adds r3, #1 a07c: 9307 str r3, [sp, #28] a07e: e7d8 b.n a032 sh_ups_tmp_buf[0] = (mask_line[0] << SHADOW_UPSACALE_SHIFT) / sw; a080: 783b ldrb r3, [r7, #0] a082: 9a05 ldr r2, [sp, #20] a084: 9805 ldr r0, [sp, #20] a086: 019b lsls r3, r3, #6 a088: fb93 f3f4 sdiv r3, r3, r4 a08c: f822 3b02 strh.w r3, [r2], #2 for(i = 1; i < size; i++) { a090: 9b09 ldr r3, [sp, #36] ; 0x24 a092: 4639 mov r1, r7 a094: 1818 adds r0, r3, r0 a096: 4282 cmp r2, r0 a098: d0ea beq.n a070 if(mask_line[i] == mask_line[i - 1]) sh_ups_tmp_buf[i] = sh_ups_tmp_buf[i - 1]; a09a: 468c mov ip, r1 a09c: f811 3f01 ldrb.w r3, [r1, #1]! a0a0: f89c c000 ldrb.w ip, [ip] a0a4: 459c cmp ip, r3 else sh_ups_tmp_buf[i] = (mask_line[i] << SHADOW_UPSACALE_SHIFT) / sw; a0a6: bf17 itett ne a0a8: 019b lslne r3, r3, #6 if(mask_line[i] == mask_line[i - 1]) sh_ups_tmp_buf[i] = sh_ups_tmp_buf[i - 1]; a0aa: f832 3c02 ldrheq.w r3, [r2, #-2] else sh_ups_tmp_buf[i] = (mask_line[i] << SHADOW_UPSACALE_SHIFT) / sw; a0ae: fb93 f3f4 sdivne r3, r3, r4 a0b2: b29b uxthne r3, r3 if(mask_line[i] == mask_line[i - 1]) sh_ups_tmp_buf[i] = sh_ups_tmp_buf[i - 1]; a0b4: f822 3b02 strh.w r3, [r2], #2 for(i = 1; i < size; i++) { a0b8: e7ed b.n a096 res_buf[i] = (sh_buf[i] >> SHADOW_UPSACALE_SHIFT); a0ba: 9a06 ldr r2, [sp, #24] a0bc: 9906 ldr r1, [sp, #24] a0be: f832 2013 ldrh.w r2, [r2, r3, lsl #1] a0c2: 0992 lsrs r2, r2, #6 a0c4: 54ca strb r2, [r1, r3] for(i = 0; i < size * size; i++) { a0c6: 3301 adds r3, #1 a0c8: 42ab cmp r3, r5 a0ca: d1f6 bne.n a0ba a0cc: f8bd 304e ldrh.w r3, [sp, #78] ; 0x4e lv_coord_t h_half = sh_area.y1 + lv_area_get_height(&sh_area) / 2; a0d0: f8bd 204a ldrh.w r2, [sp, #74] ; 0x4a a0d4: 3301 adds r3, #1 a0d6: 1a9b subs r3, r3, r2 a0d8: f3c3 31c0 ubfx r1, r3, #15, #1 a0dc: fa01 f383 sxtah r3, r1, r3 a0e0: eb02 0363 add.w r3, r2, r3, asr #1 a0e4: b29a uxth r2, r3 a0e6: b21b sxth r3, r3 a0e8: 9309 str r3, [sp, #36] ; 0x24 return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); a0ea: f8bd 304c ldrh.w r3, [sp, #76] ; 0x4c a0ee: 920b str r2, [sp, #44] ; 0x2c lv_coord_t w_half = sh_area.x1 + lv_area_get_width(&sh_area) / 2; a0f0: f8bd 2048 ldrh.w r2, [sp, #72] ; 0x48 a0f4: 3301 adds r3, #1 a0f6: 1a9b subs r3, r3, r2 a0f8: f3c3 31c0 ubfx r1, r3, #15, #1 a0fc: fa01 f383 sxtah r3, r1, r3 a100: eb02 0363 add.w r3, r2, r3, asr #1 a104: b29a uxth r2, r3 a106: b21b sxth r3, r3 a108: 930a str r3, [sp, #40] ; 0x28 if(lv_draw_mask_get_cnt() > 0) simple_mode = false; a10a: 4b2a ldr r3, [pc, #168] ; (a1b4 ) lv_coord_t w_half = sh_area.x1 + lv_area_get_width(&sh_area) / 2; a10c: 920c str r2, [sp, #48] ; 0x30 if(lv_draw_mask_get_cnt() > 0) simple_mode = false; a10e: 4798 blx r3 a110: 2800 cmp r0, #0 a112: d13b bne.n a18c else if(dsc->shadow_ofs_x != 0 || dsc->shadow_ofs_y != 0) simple_mode = false; a114: f9ba 3022 ldrsh.w r3, [sl, #34] ; 0x22 a118: 2b00 cmp r3, #0 a11a: d14f bne.n a1bc a11c: f9ba 2024 ldrsh.w r2, [sl, #36] ; 0x24 a120: b922 cbnz r2, a12c else if(dsc->shadow_spread != 0) simple_mode = false; a122: f9ba 3026 ldrsh.w r3, [sl, #38] ; 0x26 a126: fab3 f383 clz r3, r3 a12a: 095b lsrs r3, r3, #5 if(lv_draw_mask_get_cnt() > 0) simple_mode = false; a12c: 9307 str r3, [sp, #28] a12e: e046 b.n a1be shadow_blur_corner(size, sw, sh_buf); a130: b230 sxth r0, r6 a132: 4621 mov r1, r4 a134: 9a06 ldr r2, [sp, #24] a136: 4f20 ldr r7, [pc, #128] ; (a1b8 ) a138: 9005 str r0, [sp, #20] a13a: 47b8 blx r7 sw += sw_ori & 1; a13c: 990a ldr r1, [sp, #40] ; 0x28 a13e: 4421 add r1, r4 if(sw > 1) { a140: 2901 cmp r1, #1 a142: dd0c ble.n a15e sh_buf[0] = (sh_buf[0] << SHADOW_UPSACALE_SHIFT) / sw; a144: 9b06 ldr r3, [sp, #24] a146: 9a06 ldr r2, [sp, #24] a148: 881b ldrh r3, [r3, #0] for(i = 1; i < (uint32_t) size * size; i++) { a14a: 9805 ldr r0, [sp, #20] sh_buf[0] = (sh_buf[0] << SHADOW_UPSACALE_SHIFT) / sw; a14c: 019b lsls r3, r3, #6 for(i = 1; i < (uint32_t) size * size; i++) { a14e: 2401 movs r4, #1 sh_buf[0] = (sh_buf[0] << SHADOW_UPSACALE_SHIFT) / sw; a150: fbb3 f3f1 udiv r3, r3, r1 a154: 8013 strh r3, [r2, #0] for(i = 1; i < (uint32_t) size * size; i++) { a156: 42ac cmp r4, r5 a158: d303 bcc.n a162 shadow_blur_corner(size, sw, sh_buf); a15a: 9a06 ldr r2, [sp, #24] a15c: 47b8 blx r7 for(i = 1; i < (uint32_t) size * size; i++) { a15e: 2300 movs r3, #0 a160: e011 b.n a186 if(sh_buf[i] == sh_buf[i - 1]) sh_buf[i] = sh_buf[i - 1]; a162: 8853 ldrh r3, [r2, #2] a164: f832 6b02 ldrh.w r6, [r2], #2 a168: 42b3 cmp r3, r6 else sh_buf[i] = (sh_buf[i] << SHADOW_UPSACALE_SHIFT) / sw; a16a: bf1e ittt ne a16c: 019b lslne r3, r3, #6 a16e: fbb3 f3f1 udivne r3, r3, r1 a172: b29e uxthne r6, r3 a174: 8016 strh r6, [r2, #0] for(i = 1; i < (uint32_t) size * size; i++) { a176: 3401 adds r4, #1 a178: e7ed b.n a156 res_buf[x] = sh_buf[x]; a17a: 9a06 ldr r2, [sp, #24] a17c: 9906 ldr r1, [sp, #24] a17e: f832 2013 ldrh.w r2, [r2, r3, lsl #1] a182: 54ca strb r2, [r1, r3] for(x = 0; x < size * size; x++) { a184: 3301 adds r3, #1 a186: 42ab cmp r3, r5 a188: d1f7 bne.n a17a a18a: e79f b.n a0cc if(lv_draw_mask_get_cnt() > 0) simple_mode = false; a18c: 2300 movs r3, #0 a18e: e7cd b.n a12c a190: 00005215 .word 0x00005215 a194: 0000dc0d .word 0x0000dc0d a198: 0000e0b9 .word 0x0000e0b9 a19c: 00009db9 .word 0x00009db9 a1a0: 0000f0ed .word 0x0000f0ed a1a4: 00009b41 .word 0x00009b41 a1a8: 0000eda1 .word 0x0000eda1 a1ac: 0000f2ad .word 0x0000f2ad a1b0: 0000f251 .word 0x0000f251 a1b4: 00009a1d .word 0x00009a1d a1b8: 00009c31 .word 0x00009c31 a1bc: 9007 str r0, [sp, #28] a1be: f8bd 004c ldrh.w r0, [sp, #76] ; 0x4c a1c2: f8bd 3048 ldrh.w r3, [sp, #72] ; 0x48 lv_draw_mask_radius_init(&mask_rout_param, &bg_coords, r_bg, true); a1c6: 4db2 ldr r5, [pc, #712] ; (a490 ) a1c8: 3001 adds r0, #1 a1ca: 1ac0 subs r0, r0, r3 lv_opa_t * mask_buf = _lv_mem_buf_get(lv_area_get_width(&sh_area)); a1cc: b200 sxth r0, r0 a1ce: 4bb1 ldr r3, [pc, #708] ; (a494 ) a1d0: 4798 blx r3 lv_draw_mask_radius_init(&mask_rout_param, &bg_coords, r_bg, true); a1d2: ee18 2a90 vmov r2, s17 a1d6: 2301 movs r3, #1 a1d8: a916 add r1, sp, #88 ; 0x58 lv_opa_t * mask_buf = _lv_mem_buf_get(lv_area_get_width(&sh_area)); a1da: ee08 0a10 vmov s16, r0 lv_draw_mask_radius_init(&mask_rout_param, &bg_coords, r_bg, true); a1de: a825 add r0, sp, #148 ; 0x94 a1e0: 47a8 blx r5 int16_t mask_rout_id = lv_draw_mask_add(&mask_rout_param, NULL); a1e2: 4bad ldr r3, [pc, #692] ; (a498 ) a1e4: 2100 movs r1, #0 a1e6: a825 add r0, sp, #148 ; 0x94 a1e8: 4798 blx r3 a.x2 = sh_area.x2; a1ea: f9bd 304c ldrsh.w r3, [sp, #76] ; 0x4c a1ee: f8ad 3064 strh.w r3, [sp, #100] ; 0x64 a.x1 = a.x2 - corner_size + 1; a1f2: fa1f f289 uxth.w r2, r9 a1f6: 3301 adds r3, #1 a1f8: 1a9b subs r3, r3, r2 a1fa: f8ad 3060 strh.w r3, [sp, #96] ; 0x60 a.y1 = sh_area.y1; a1fe: f9bd 304a ldrsh.w r3, [sp, #74] ; 0x4a a202: f8ad 3062 strh.w r3, [sp, #98] ; 0x62 a.y2 = a.y1 + corner_size - 1; a206: 3b01 subs r3, #1 a208: 4413 add r3, r2 int16_t mask_rout_id = lv_draw_mask_add(&mask_rout_param, NULL); a20a: ee08 0a90 vmov s17, r0 a.x1 = a.x2 - corner_size + 1; a20e: 9205 str r2, [sp, #20] a.y2 = a.y1 + corner_size - 1; a210: f8ad 3066 strh.w r3, [sp, #102] ; 0x66 bool has_com = _lv_area_intersect(&ca, &a, clip); a214: 4642 mov r2, r8 a216: 4ba1 ldr r3, [pc, #644] ; (a49c ) a218: a918 add r1, sp, #96 ; 0x60 a21a: a81a add r0, sp, #104 ; 0x68 a21c: 4798 blx r3 if(has_com) { a21e: 2800 cmp r0, #0 a220: d039 beq.n a296 if(ca.y2 > h_half) ca.y2 = h_half; a222: f9bd 306e ldrsh.w r3, [sp, #110] ; 0x6e a226: 9a09 ldr r2, [sp, #36] ; 0x24 a228: f8bd 606c ldrh.w r6, [sp, #108] ; 0x6c a22c: 4293 cmp r3, r2 a22e: bfc4 itt gt a230: 4613 movgt r3, r2 a232: f8ad 306e strhgt.w r3, [sp, #110] ; 0x6e if(ca.x1 <= w_half) ca.x1 = w_half + 1; a236: 9a0a ldr r2, [sp, #40] ; 0x28 a238: f9bd 3068 ldrsh.w r3, [sp, #104] ; 0x68 a23c: 4293 cmp r3, r2 a23e: bfd8 it le a240: 9b0c ldrle r3, [sp, #48] ; 0x30 return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); a242: f9bd 206a ldrsh.w r2, [sp, #106] ; 0x6a a246: bfdc itt le a248: 3301 addle r3, #1 a24a: f8ad 3068 strhle.w r3, [sp, #104] ; 0x68 return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); a24e: f9bd 5068 ldrsh.w r5, [sp, #104] ; 0x68 return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); a252: f9bd 306e ldrsh.w r3, [sp, #110] ; 0x6e return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); a256: 3601 adds r6, #1 a258: 1b76 subs r6, r6, r5 a25a: b236 sxth r6, r6 if(w > 0) { a25c: 2e00 cmp r6, #0 a25e: dd1a ble.n a296 return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); a260: 3301 adds r3, #1 a262: 1a9b subs r3, r3, r2 a264: b21b sxth r3, r3 a266: 930d str r3, [sp, #52] ; 0x34 sh_buf_tmp += corner_size * (ca.y1 - a.y1); a268: f9bd 3062 ldrsh.w r3, [sp, #98] ; 0x62 a26c: 1ad2 subs r2, r2, r3 sh_buf_tmp = sh_buf + (ca.x1 - a.x1); a26e: f9bd 3060 ldrsh.w r3, [sp, #96] ; 0x60 a272: 1aed subs r5, r5, r3 sh_buf_tmp += corner_size * (ca.y1 - a.y1); a274: 9b06 ldr r3, [sp, #24] a276: fb09 5502 mla r5, r9, r2, r5 a27a: 441d add r5, r3 lv_area_copy(&fa, &ca); a27c: a91a add r1, sp, #104 ; 0x68 a27e: 4b88 ldr r3, [pc, #544] ; (a4a0 ) a280: a81e add r0, sp, #120 ; 0x78 a282: 4798 blx r3 fa.y2 = fa.y1; a284: f9bd 307a ldrsh.w r3, [sp, #122] ; 0x7a for(y = 0; y < h; y++) { a288: 2700 movs r7, #0 fa.y2 = fa.y1; a28a: f8ad 307e strh.w r3, [sp, #126] ; 0x7e for(y = 0; y < h; y++) { a28e: 9b0d ldr r3, [sp, #52] ; 0x34 a290: 429f cmp r7, r3 a292: f2c0 80a3 blt.w a3dc a.x2 = sh_area.x2; a296: f9bd 304c ldrsh.w r3, [sp, #76] ; 0x4c a.x1 = a.x2 - corner_size + 1; a29a: 9a05 ldr r2, [sp, #20] a.x2 = sh_area.x2; a29c: f8ad 3064 strh.w r3, [sp, #100] ; 0x64 a.x1 = a.x2 - corner_size + 1; a2a0: 3301 adds r3, #1 a2a2: 1a9b subs r3, r3, r2 a.y1 = sh_area.y2 - corner_size + 1; a2a4: f9bd 204e ldrsh.w r2, [sp, #78] ; 0x4e a2a8: 9905 ldr r1, [sp, #20] a.x1 = a.x2 - corner_size + 1; a2aa: f8ad 3060 strh.w r3, [sp, #96] ; 0x60 a.y1 = sh_area.y2 - corner_size + 1; a2ae: 1c53 adds r3, r2, #1 a2b0: 1a5b subs r3, r3, r1 a2b2: f8ad 3062 strh.w r3, [sp, #98] ; 0x62 a.y2 = sh_area.y2; a2b6: f8ad 2066 strh.w r2, [sp, #102] ; 0x66 has_com = _lv_area_intersect(&ca, &a, clip); a2ba: 4b78 ldr r3, [pc, #480] ; (a49c ) a2bc: 4642 mov r2, r8 a2be: a918 add r1, sp, #96 ; 0x60 a2c0: a81a add r0, sp, #104 ; 0x68 a2c2: 4798 blx r3 if(has_com) { a2c4: 2800 cmp r0, #0 a2c6: d03a beq.n a33e if(ca.y1 <= h_half) ca.y1 = h_half + 1; a2c8: f9bd 306a ldrsh.w r3, [sp, #106] ; 0x6a a2cc: 9a09 ldr r2, [sp, #36] ; 0x24 return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); a2ce: f8bd 606c ldrh.w r6, [sp, #108] ; 0x6c a2d2: 4293 cmp r3, r2 a2d4: bfd8 it le a2d6: 9b0b ldrle r3, [sp, #44] ; 0x2c if(ca.x1 <= w_half) ca.x1 = w_half + 1; a2d8: 9a0a ldr r2, [sp, #40] ; 0x28 if(ca.y1 <= h_half) ca.y1 = h_half + 1; a2da: bfdc itt le a2dc: 3301 addle r3, #1 a2de: f8ad 306a strhle.w r3, [sp, #106] ; 0x6a if(ca.x1 <= w_half) ca.x1 = w_half + 1; a2e2: f9bd 3068 ldrsh.w r3, [sp, #104] ; 0x68 return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); a2e6: f9bd 106a ldrsh.w r1, [sp, #106] ; 0x6a a2ea: 4293 cmp r3, r2 a2ec: bfd8 it le a2ee: 9b0c ldrle r3, [sp, #48] ; 0x30 a2f0: f9bd 206e ldrsh.w r2, [sp, #110] ; 0x6e a2f4: bfdc itt le a2f6: 3301 addle r3, #1 a2f8: f8ad 3068 strhle.w r3, [sp, #104] ; 0x68 return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); a2fc: f9bd 5068 ldrsh.w r5, [sp, #104] ; 0x68 a300: 3601 adds r6, #1 a302: 1b76 subs r6, r6, r5 a304: b236 sxth r6, r6 if(w > 0) { a306: 2e00 cmp r6, #0 a308: dd19 ble.n a33e return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); a30a: 1c53 adds r3, r2, #1 a30c: 1a5b subs r3, r3, r1 a30e: b21b sxth r3, r3 a310: 930c str r3, [sp, #48] ; 0x30 sh_buf_tmp += corner_size * (a.y2 - ca.y2); a312: f9bd 3066 ldrsh.w r3, [sp, #102] ; 0x66 a316: 1a9b subs r3, r3, r2 sh_buf_tmp = sh_buf + (ca.x1 - a.x1); a318: f9bd 2060 ldrsh.w r2, [sp, #96] ; 0x60 a31c: 1aad subs r5, r5, r2 sh_buf_tmp += corner_size * (a.y2 - ca.y2); a31e: fb09 5503 mla r5, r9, r3, r5 a322: 9b06 ldr r3, [sp, #24] lv_area_copy(&fa, &ca); a324: a91a add r1, sp, #104 ; 0x68 sh_buf_tmp += corner_size * (a.y2 - ca.y2); a326: 441d add r5, r3 lv_area_copy(&fa, &ca); a328: a81e add r0, sp, #120 ; 0x78 a32a: 4b5d ldr r3, [pc, #372] ; (a4a0 ) a32c: 4798 blx r3 fa.y1 = fa.y2; /*Fill from bottom to top*/ a32e: f8bd 307e ldrh.w r3, [sp, #126] ; 0x7e a332: f8ad 307a strh.w r3, [sp, #122] ; 0x7a for(y = 0; y < h; y++) { a336: 2700 movs r7, #0 a338: 9b0c ldr r3, [sp, #48] ; 0x30 a33a: 429f cmp r7, r3 a33c: db7a blt.n a434 a.x2 = sh_area.x2; a33e: f9bd 304c ldrsh.w r3, [sp, #76] ; 0x4c a.x1 = a.x2 - corner_size + 1; a342: 9a05 ldr r2, [sp, #20] a.x2 = sh_area.x2; a344: f8ad 3064 strh.w r3, [sp, #100] ; 0x64 a.x1 = a.x2 - corner_size + 1; a348: 3301 adds r3, #1 a34a: 1a9b subs r3, r3, r2 a34c: f8ad 3060 strh.w r3, [sp, #96] ; 0x60 a.y1 = sh_area.y1 + corner_size; a350: f8bd 304a ldrh.w r3, [sp, #74] ; 0x4a a354: 4413 add r3, r2 a356: f8ad 3062 strh.w r3, [sp, #98] ; 0x62 a.y2 = sh_area.y2 - corner_size; a35a: f8bd 304e ldrh.w r3, [sp, #78] ; 0x4e a35e: 1a9b subs r3, r3, r2 a360: f8ad 3066 strh.w r3, [sp, #102] ; 0x66 has_com = _lv_area_intersect(&ca, &a, clip); a364: 4642 mov r2, r8 a366: 4b4d ldr r3, [pc, #308] ; (a49c ) a368: a918 add r1, sp, #96 ; 0x60 a36a: a81a add r0, sp, #104 ; 0x68 a36c: 4798 blx r3 if(has_com) { a36e: b380 cbz r0, a3d2 if(simple_mode) ca.x1 = LV_MATH_MAX(ca.x1, coords->x2); a370: 9b07 ldr r3, [sp, #28] a372: b143 cbz r3, a386 a374: f9bb 3004 ldrsh.w r3, [fp, #4] a378: f9bd 2068 ldrsh.w r2, [sp, #104] ; 0x68 a37c: 4293 cmp r3, r2 a37e: bfb8 it lt a380: 4613 movlt r3, r2 a382: f8ad 3068 strh.w r3, [sp, #104] ; 0x68 return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); a386: f8bd 506c ldrh.w r5, [sp, #108] ; 0x6c a38a: f9bd 6068 ldrsh.w r6, [sp, #104] ; 0x68 a38e: 3501 adds r5, #1 a390: 1bad subs r5, r5, r6 a392: b22d sxth r5, r5 if(w > 0) { a394: 2d00 cmp r5, #0 a396: dd1c ble.n a3d2 return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); a398: f8bd 306e ldrh.w r3, [sp, #110] ; 0x6e a39c: f8bd 206a ldrh.w r2, [sp, #106] ; 0x6a a3a0: 3301 adds r3, #1 a3a2: 1a9b subs r3, r3, r2 sh_buf_tmp += ca.x1 - a.x1; a3a4: f9bd 2060 ldrsh.w r2, [sp, #96] ; 0x60 a3a8: b21b sxth r3, r3 a3aa: 930c str r3, [sp, #48] ; 0x30 a3ac: 1ab6 subs r6, r6, r2 sh_buf_tmp = sh_buf + corner_size * (corner_size - 1); a3ae: f109 33ff add.w r3, r9, #4294967295 ; 0xffffffff sh_buf_tmp += ca.x1 - a.x1; a3b2: fb09 6603 mla r6, r9, r3, r6 a3b6: 9b06 ldr r3, [sp, #24] lv_area_copy(&fa, &ca); a3b8: a91a add r1, sp, #104 ; 0x68 sh_buf_tmp += ca.x1 - a.x1; a3ba: 441e add r6, r3 lv_area_copy(&fa, &ca); a3bc: a81e add r0, sp, #120 ; 0x78 a3be: 4b38 ldr r3, [pc, #224] ; (a4a0 ) a3c0: 4798 blx r3 fa.y2 = fa.y1; a3c2: f9bd 307a ldrsh.w r3, [sp, #122] ; 0x7a for(y = 0; y < h; y++) { a3c6: 2700 movs r7, #0 fa.y2 = fa.y1; a3c8: f8ad 307e strh.w r3, [sp, #126] ; 0x7e for(y = 0; y < h; y++) { a3cc: 9b0c ldr r3, [sp, #48] ; 0x30 a3ce: 429f cmp r7, r3 a3d0: db6e blt.n a4b0 sh_buf = _lv_mem_buf_get(corner_size * corner_size * sizeof(uint16_t)); a3d2: 9a06 ldr r2, [sp, #24] for(x = 0; x < corner_size / 2; x++) { a3d4: ea4f 0669 mov.w r6, r9, asr #1 a3d8: 2000 movs r0, #0 a3da: e0a3 b.n a524 _lv_memcpy(mask_buf, sh_buf_tmp, w); a3dc: 4629 mov r1, r5 a3de: 4b31 ldr r3, [pc, #196] ; (a4a4 ) mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w); a3e0: 4c31 ldr r4, [pc, #196] ; (a4a8 ) _lv_memcpy(mask_buf, sh_buf_tmp, w); a3e2: 4632 mov r2, r6 a3e4: ee18 0a10 vmov r0, s16 a3e8: 4798 blx r3 mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w); a3ea: f9bd 207a ldrsh.w r2, [sp, #122] ; 0x7a a3ee: f9bd 1078 ldrsh.w r1, [sp, #120] ; 0x78 a3f2: 4633 mov r3, r6 a3f4: ee18 0a10 vmov r0, s16 a3f8: 47a0 blx r4 _lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf, a3fa: f89a 3029 ldrb.w r3, [sl, #41] ; 0x29 a3fe: 9302 str r3, [sp, #8] if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) mask_res = LV_DRAW_MASK_RES_CHANGED; a400: 2801 cmp r0, #1 _lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf, a402: 9b08 ldr r3, [sp, #32] a404: 4c29 ldr r4, [pc, #164] ; (a4ac ) if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) mask_res = LV_DRAW_MASK_RES_CHANGED; a406: bf08 it eq a408: 2002 moveq r0, #2 _lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf, a40a: e9cd 0300 strd r0, r3, [sp] a40e: a91e add r1, sp, #120 ; 0x78 a410: ee18 3a10 vmov r3, s16 a414: f8ba 201e ldrh.w r2, [sl, #30] a418: 4640 mov r0, r8 a41a: 47a0 blx r4 fa.y1++; a41c: f8bd 307a ldrh.w r3, [sp, #122] ; 0x7a a420: 3301 adds r3, #1 a422: f8ad 307a strh.w r3, [sp, #122] ; 0x7a fa.y2++; a426: f8bd 307e ldrh.w r3, [sp, #126] ; 0x7e a42a: 3301 adds r3, #1 a42c: b21b sxth r3, r3 sh_buf_tmp += corner_size; a42e: 444d add r5, r9 for(y = 0; y < h; y++) { a430: 3701 adds r7, #1 a432: e72a b.n a28a _lv_memcpy(mask_buf, sh_buf_tmp, w); a434: 4629 mov r1, r5 a436: 4b1b ldr r3, [pc, #108] ; (a4a4 ) mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w); a438: 4c1b ldr r4, [pc, #108] ; (a4a8 ) _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: 4c13 ldr r4, [pc, #76] ; (a4ac ) 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: 3b01 subs r3, #1 a47a: f8ad 307a strh.w r3, [sp, #122] ; 0x7a fa.y2--; a47e: f8bd 307e ldrh.w r3, [sp, #126] ; 0x7e a482: 3b01 subs r3, #1 a484: f8ad 307e strh.w r3, [sp, #126] ; 0x7e sh_buf_tmp += corner_size; a488: 444d add r5, r9 for(y = 0; y < h; y++) { a48a: 3701 adds r7, #1 a48c: e754 b.n a338 a48e: bf00 nop a490: 00009b41 .word 0x00009b41 a494: 0000f0ed .word 0x0000f0ed a498: 0000993d .word 0x0000993d a49c: 0000e0b9 .word 0x0000e0b9 a4a0: 00009db9 .word 0x00009db9 a4a4: 0000ee69 .word 0x0000ee69 a4a8: 0000998d .word 0x0000998d a4ac: 0000641d .word 0x0000641d _lv_memcpy(mask_buf, sh_buf_tmp, w); a4b0: 4b20 ldr r3, [pc, #128] ; (a534 ) a4b2: ee18 0a10 vmov r0, s16 a4b6: 462a mov r2, r5 a4b8: 4631 mov r1, r6 a4ba: 4798 blx r3 if(simple_mode) { a4bc: 9b07 ldr r3, [sp, #28] a4be: b953 cbnz r3, a4d6 mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w); a4c0: f9bd 207a ldrsh.w r2, [sp, #122] ; 0x7a a4c4: f9bd 1078 ldrsh.w r1, [sp, #120] ; 0x78 a4c8: 4c1b ldr r4, [pc, #108] ; (a538 ) a4ca: ee18 0a10 vmov r0, s16 a4ce: 462b mov r3, r5 a4d0: 47a0 blx r4 if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) mask_res = LV_DRAW_MASK_RES_CHANGED; a4d2: 2801 cmp r0, #1 a4d4: d100 bne.n a4d8 a4d6: 2002 movs r0, #2 _lv_blend_fill(clip, &fa, a4d8: f89a 3029 ldrb.w r3, [sl, #41] ; 0x29 a4dc: 9302 str r3, [sp, #8] a4de: f89a 3028 ldrb.w r3, [sl, #40] ; 0x28 a4e2: 4c16 ldr r4, [pc, #88] ; (a53c ) a4e4: e9cd 0300 strd r0, r3, [sp] a4e8: a91e add r1, sp, #120 ; 0x78 a4ea: ee18 3a10 vmov r3, s16 a4ee: f8ba 201e ldrh.w r2, [sl, #30] a4f2: 4640 mov r0, r8 a4f4: 47a0 blx r4 fa.y1++; a4f6: f8bd 307a ldrh.w r3, [sp, #122] ; 0x7a a4fa: 3301 adds r3, #1 a4fc: f8ad 307a strh.w r3, [sp, #122] ; 0x7a fa.y2++; a500: f8bd 307e ldrh.w r3, [sp, #126] ; 0x7e a504: 3301 adds r3, #1 a506: b21b sxth r3, r3 for(y = 0; y < h; y++) { a508: 3701 adds r7, #1 a50a: e75d b.n a3c8 lv_opa_t tmp = sh_buf_tmp[x]; a50c: f811 7f01 ldrb.w r7, [r1, #1]! sh_buf_tmp[x] = sh_buf_tmp[corner_size - x - 1]; a510: f813 cd01 ldrb.w ip, [r3, #-1]! a514: f881 c000 strb.w ip, [r1] sh_buf_tmp[corner_size - x - 1] = tmp; a518: 701f strb r7, [r3, #0] for(x = 0; x < corner_size / 2; x++) { a51a: 1aef subs r7, r5, r3 a51c: 42be cmp r6, r7 a51e: dcf5 bgt.n a50c sh_buf_tmp += corner_size; a520: 444a add r2, r9 for(y = 0; y < corner_size; y++) { a522: 3001 adds r0, #1 a524: 4581 cmp r9, r0 a526: dd0b ble.n a540 a528: eb09 0502 add.w r5, r9, r2 a52c: 1e51 subs r1, r2, #1 a52e: 462b mov r3, r5 a530: e7f3 b.n a51a a532: bf00 nop a534: 0000ee69 .word 0x0000ee69 a538: 0000998d .word 0x0000998d a53c: 0000641d .word 0x0000641d a.x1 = sh_area.x1; a540: f9bd 3048 ldrsh.w r3, [sp, #72] ; 0x48 a.x2 = a.x1 + corner_size - 1; a544: 9a05 ldr r2, [sp, #20] a.x1 = sh_area.x1; a546: f8ad 3060 strh.w r3, [sp, #96] ; 0x60 a.x2 = a.x1 + corner_size - 1; a54a: 3b01 subs r3, #1 a54c: 4413 add r3, r2 a54e: f8ad 3064 strh.w r3, [sp, #100] ; 0x64 a.y1 = sh_area.y1; a552: f9bd 304a ldrsh.w r3, [sp, #74] ; 0x4a a556: f8ad 3062 strh.w r3, [sp, #98] ; 0x62 a.y2 = a.y1 + corner_size - 1; a55a: 3b01 subs r3, #1 a55c: 4413 add r3, r2 a55e: f8ad 3066 strh.w r3, [sp, #102] ; 0x66 has_com = _lv_area_intersect(&ca, &a, clip); a562: 4642 mov r2, r8 a564: 4bb8 ldr r3, [pc, #736] ; (a848 ) a566: a918 add r1, sp, #96 ; 0x60 a568: a81a add r0, sp, #104 ; 0x68 a56a: 4798 blx r3 if(has_com) { a56c: 2800 cmp r0, #0 a56e: d037 beq.n a5e0 if(ca.y2 > h_half) ca.y2 = h_half; a570: f9bd 306e ldrsh.w r3, [sp, #110] ; 0x6e a574: 9a09 ldr r2, [sp, #36] ; 0x24 return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); a576: f9bd 5068 ldrsh.w r5, [sp, #104] ; 0x68 a57a: 4293 cmp r3, r2 a57c: bfc4 itt gt a57e: 4613 movgt r3, r2 a580: f8ad 306e strhgt.w r3, [sp, #110] ; 0x6e if(ca.x2 > w_half) ca.x2 = w_half; a584: 9a0a ldr r2, [sp, #40] ; 0x28 a586: f9bd 306c ldrsh.w r3, [sp, #108] ; 0x6c a58a: 4293 cmp r3, r2 a58c: bfc4 itt gt a58e: 4613 movgt r3, r2 a590: f8ad 306c strhgt.w r3, [sp, #108] ; 0x6c a594: f8bd 606c ldrh.w r6, [sp, #108] ; 0x6c return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); a598: f9bd 306e ldrsh.w r3, [sp, #110] ; 0x6e a59c: f9bd 206a ldrsh.w r2, [sp, #106] ; 0x6a return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); a5a0: 3601 adds r6, #1 a5a2: 1b76 subs r6, r6, r5 a5a4: b236 sxth r6, r6 if(w > 0) { a5a6: 2e00 cmp r6, #0 a5a8: dd1a ble.n a5e0 return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); a5aa: 3301 adds r3, #1 a5ac: 1a9b subs r3, r3, r2 a5ae: b21b sxth r3, r3 a5b0: 930c str r3, [sp, #48] ; 0x30 sh_buf_tmp += corner_size * (ca.y1 - a.y1); a5b2: f9bd 3062 ldrsh.w r3, [sp, #98] ; 0x62 a5b6: 1ad2 subs r2, r2, r3 sh_buf_tmp = sh_buf + (ca.x1 - a.x1); a5b8: f9bd 3060 ldrsh.w r3, [sp, #96] ; 0x60 a5bc: 1aed subs r5, r5, r3 sh_buf_tmp += corner_size * (ca.y1 - a.y1); a5be: 9b06 ldr r3, [sp, #24] a5c0: fb09 5502 mla r5, r9, r2, r5 a5c4: 441d add r5, r3 lv_area_copy(&fa, &ca); a5c6: a91a add r1, sp, #104 ; 0x68 a5c8: 4ba0 ldr r3, [pc, #640] ; (a84c ) a5ca: a81e add r0, sp, #120 ; 0x78 a5cc: 4798 blx r3 fa.y2 = fa.y1; a5ce: f9bd 307a ldrsh.w r3, [sp, #122] ; 0x7a for(y = 0; y < h; y++) { a5d2: 2700 movs r7, #0 fa.y2 = fa.y1; a5d4: f8ad 307e strh.w r3, [sp, #126] ; 0x7e for(y = 0; y < h; y++) { a5d8: 9b0c ldr r3, [sp, #48] ; 0x30 a5da: 429f cmp r7, r3 a5dc: f2c0 859f blt.w b11e a.x1 = sh_area.x1; a5e0: f9bd 3048 ldrsh.w r3, [sp, #72] ; 0x48 a.x2 = a.x1 + corner_size - 1; a5e4: 9a05 ldr r2, [sp, #20] a.x1 = sh_area.x1; a5e6: f8ad 3060 strh.w r3, [sp, #96] ; 0x60 a.x2 = a.x1 + corner_size - 1; a5ea: 3b01 subs r3, #1 a5ec: 4413 add r3, r2 a.y1 = sh_area.y2 - corner_size + 1; a5ee: f9bd 204e ldrsh.w r2, [sp, #78] ; 0x4e a5f2: 9905 ldr r1, [sp, #20] a.x2 = a.x1 + corner_size - 1; a5f4: f8ad 3064 strh.w r3, [sp, #100] ; 0x64 a.y1 = sh_area.y2 - corner_size + 1; a5f8: 1c53 adds r3, r2, #1 a5fa: 1a5b subs r3, r3, r1 a5fc: f8ad 3062 strh.w r3, [sp, #98] ; 0x62 a.y2 = sh_area.y2; a600: f8ad 2066 strh.w r2, [sp, #102] ; 0x66 has_com = _lv_area_intersect(&ca, &a, clip); a604: 4b90 ldr r3, [pc, #576] ; (a848 ) a606: 4642 mov r2, r8 a608: a918 add r1, sp, #96 ; 0x60 a60a: a81a add r0, sp, #104 ; 0x68 a60c: 4798 blx r3 if(has_com) { a60e: 2800 cmp r0, #0 a610: d039 beq.n a686 if(ca.y1 <= h_half) ca.y1 = h_half + 1; a612: f9bd 306a ldrsh.w r3, [sp, #106] ; 0x6a a616: 9a09 ldr r2, [sp, #36] ; 0x24 return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); a618: f9bd 5068 ldrsh.w r5, [sp, #104] ; 0x68 a61c: 4293 cmp r3, r2 a61e: bfd8 it le a620: 9b0b ldrle r3, [sp, #44] ; 0x2c if(ca.x2 > w_half) ca.x2 = w_half; a622: 9a0a ldr r2, [sp, #40] ; 0x28 if(ca.y1 <= h_half) ca.y1 = h_half + 1; a624: bfdc itt le a626: 3301 addle r3, #1 a628: f8ad 306a strhle.w r3, [sp, #106] ; 0x6a if(ca.x2 > w_half) ca.x2 = w_half; a62c: f9bd 306c ldrsh.w r3, [sp, #108] ; 0x6c return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); a630: f9bd 106a ldrsh.w r1, [sp, #106] ; 0x6a a634: 4293 cmp r3, r2 a636: bfc4 itt gt a638: 4613 movgt r3, r2 a63a: f8ad 306c strhgt.w r3, [sp, #108] ; 0x6c return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); a63e: f8bd 606c ldrh.w r6, [sp, #108] ; 0x6c return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); a642: f9bd 206e ldrsh.w r2, [sp, #110] ; 0x6e return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); a646: 3601 adds r6, #1 a648: 1b76 subs r6, r6, r5 a64a: b236 sxth r6, r6 if(w > 0) { a64c: 2e00 cmp r6, #0 a64e: dd1a ble.n a686 return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); a650: 1c53 adds r3, r2, #1 a652: 1a5b subs r3, r3, r1 a654: b21b sxth r3, r3 a656: 9309 str r3, [sp, #36] ; 0x24 sh_buf_tmp += corner_size * (a.y2 - ca.y2); a658: f9bd 3066 ldrsh.w r3, [sp, #102] ; 0x66 a65c: 1a9b subs r3, r3, r2 sh_buf_tmp = sh_buf + (ca.x1 - a.x1); a65e: f9bd 2060 ldrsh.w r2, [sp, #96] ; 0x60 a662: 1aad subs r5, r5, r2 sh_buf_tmp += corner_size * (a.y2 - ca.y2); a664: fb09 5503 mla r5, r9, r3, r5 a668: 9b06 ldr r3, [sp, #24] lv_area_copy(&fa, &ca); a66a: a91a add r1, sp, #104 ; 0x68 sh_buf_tmp += corner_size * (a.y2 - ca.y2); a66c: 441d add r5, r3 lv_area_copy(&fa, &ca); a66e: a81e add r0, sp, #120 ; 0x78 a670: 4b76 ldr r3, [pc, #472] ; (a84c ) a672: 4798 blx r3 fa.y1 = fa.y2; /*Fill from bottom to top*/ a674: f8bd 307e ldrh.w r3, [sp, #126] ; 0x7e a678: f8ad 307a strh.w r3, [sp, #122] ; 0x7a for(y = 0; y < h; y++) { a67c: 2700 movs r7, #0 a67e: 9b09 ldr r3, [sp, #36] ; 0x24 a680: 429f cmp r7, r3 a682: f2c0 8579 blt.w b178 a.x1 = sh_area.x1; a686: f9bd 3048 ldrsh.w r3, [sp, #72] ; 0x48 a.x2 = a.x1 + corner_size - 1; a68a: 9a05 ldr r2, [sp, #20] a.x1 = sh_area.x1; a68c: f8ad 3060 strh.w r3, [sp, #96] ; 0x60 a.x2 = a.x1 + corner_size - 1; a690: 3b01 subs r3, #1 a692: 4413 add r3, r2 a694: f8ad 3064 strh.w r3, [sp, #100] ; 0x64 a.y1 = sh_area.y1 + corner_size; a698: f8bd 304a ldrh.w r3, [sp, #74] ; 0x4a a69c: 4413 add r3, r2 a69e: f8ad 3062 strh.w r3, [sp, #98] ; 0x62 a.y2 = sh_area.y2 - corner_size; a6a2: f8bd 304e ldrh.w r3, [sp, #78] ; 0x4e a6a6: 1a9b subs r3, r3, r2 a6a8: f8ad 3066 strh.w r3, [sp, #102] ; 0x66 has_com = _lv_area_intersect(&ca, &a, clip); a6ac: 4642 mov r2, r8 a6ae: 4b66 ldr r3, [pc, #408] ; (a848 ) a6b0: a918 add r1, sp, #96 ; 0x60 a6b2: a81a add r0, sp, #104 ; 0x68 a6b4: 4798 blx r3 if(has_com) { a6b6: b388 cbz r0, a71c if(simple_mode) ca.x2 = LV_MATH_MIN(coords->x1, ca.x2); a6b8: 9b07 ldr r3, [sp, #28] a6ba: b143 cbz r3, a6ce a6bc: f9bb 3000 ldrsh.w r3, [fp] a6c0: f9bd 206c ldrsh.w r2, [sp, #108] ; 0x6c a6c4: 4293 cmp r3, r2 a6c6: bfa8 it ge a6c8: 4613 movge r3, r2 a6ca: f8ad 306c strh.w r3, [sp, #108] ; 0x6c return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); a6ce: f8bd 506c ldrh.w r5, [sp, #108] ; 0x6c a6d2: f9bd 6068 ldrsh.w r6, [sp, #104] ; 0x68 a6d6: 3501 adds r5, #1 a6d8: 1bad subs r5, r5, r6 a6da: b22d sxth r5, r5 if(w > 0) { a6dc: 2d00 cmp r5, #0 a6de: dd1d ble.n a71c return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); a6e0: f8bd 306e ldrh.w r3, [sp, #110] ; 0x6e a6e4: f8bd 206a ldrh.w r2, [sp, #106] ; 0x6a a6e8: 3301 adds r3, #1 a6ea: 1a9b subs r3, r3, r2 sh_buf_tmp += ca.x1 - a.x1; a6ec: f9bd 2060 ldrsh.w r2, [sp, #96] ; 0x60 a6f0: b21b sxth r3, r3 a6f2: 9309 str r3, [sp, #36] ; 0x24 a6f4: 1ab6 subs r6, r6, r2 sh_buf_tmp = sh_buf + corner_size * (corner_size - 1); a6f6: f109 33ff add.w r3, r9, #4294967295 ; 0xffffffff sh_buf_tmp += ca.x1 - a.x1; a6fa: fb09 6603 mla r6, r9, r3, r6 a6fe: 9b06 ldr r3, [sp, #24] lv_area_copy(&fa, &ca); a700: a91a add r1, sp, #104 ; 0x68 sh_buf_tmp += ca.x1 - a.x1; a702: 441e add r6, r3 lv_area_copy(&fa, &ca); a704: a81e add r0, sp, #120 ; 0x78 a706: 4b51 ldr r3, [pc, #324] ; (a84c ) a708: 4798 blx r3 fa.y2 = fa.y1; a70a: f9bd 307a ldrsh.w r3, [sp, #122] ; 0x7a for(y = 0; y < h; y++) { a70e: 2700 movs r7, #0 fa.y2 = fa.y1; a710: f8ad 307e strh.w r3, [sp, #126] ; 0x7e for(y = 0; y < h; y++) { a714: 9b09 ldr r3, [sp, #36] ; 0x24 a716: 429f cmp r7, r3 a718: f2c0 855c blt.w b1d4 a.x1 = sh_area.x1 + corner_size; a71c: 9a05 ldr r2, [sp, #20] a71e: f8bd 3048 ldrh.w r3, [sp, #72] ; 0x48 a722: 4413 add r3, r2 a724: f8ad 3060 strh.w r3, [sp, #96] ; 0x60 a.x2 = sh_area.x2 - corner_size; a728: f8bd 304c ldrh.w r3, [sp, #76] ; 0x4c a72c: 1a9b subs r3, r3, r2 a72e: f8ad 3064 strh.w r3, [sp, #100] ; 0x64 a.y1 = sh_area.y1; a732: f9bd 304a ldrsh.w r3, [sp, #74] ; 0x4a a736: f8ad 3062 strh.w r3, [sp, #98] ; 0x62 a.y2 = sh_area.y1 + corner_size - 1; a73a: 3b01 subs r3, #1 a73c: 4413 add r3, r2 a73e: f8ad 3066 strh.w r3, [sp, #102] ; 0x66 has_com = _lv_area_intersect(&ca, &a, clip); a742: 4642 mov r2, r8 a744: 4b40 ldr r3, [pc, #256] ; (a848 ) a746: a918 add r1, sp, #96 ; 0x60 a748: a81a add r0, sp, #104 ; 0x68 a74a: 4798 blx r3 if(has_com) { a74c: b378 cbz r0, a7ae if(simple_mode) ca.y2 = LV_MATH_MIN(ca.y2, coords->y1); a74e: 9b07 ldr r3, [sp, #28] a750: b143 cbz r3, a764 a752: f9bb 3002 ldrsh.w r3, [fp, #2] a756: f9bd 206e ldrsh.w r2, [sp, #110] ; 0x6e a75a: 4293 cmp r3, r2 a75c: bfa8 it ge a75e: 4613 movge r3, r2 a760: f8ad 306e strh.w r3, [sp, #110] ; 0x6e return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); a764: f8bd 506c ldrh.w r5, [sp, #108] ; 0x6c a768: f8bd 3068 ldrh.w r3, [sp, #104] ; 0x68 return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); a76c: f9bd 206a ldrsh.w r2, [sp, #106] ; 0x6a return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); a770: 3501 adds r5, #1 a772: 1aed subs r5, r5, r3 return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); a774: f8bd 306e ldrh.w r3, [sp, #110] ; 0x6e a778: 3301 adds r3, #1 a77a: 1a9b subs r3, r3, r2 a77c: b21b sxth r3, r3 a77e: 9309 str r3, [sp, #36] ; 0x24 sh_buf_tmp += corner_size * (ca.y1 - a.y1); a780: f9bd 3062 ldrsh.w r3, [sp, #98] ; 0x62 sh_buf_tmp = sh_buf + corner_size - 1; a784: f109 36ff add.w r6, r9, #4294967295 ; 0xffffffff sh_buf_tmp += corner_size * (ca.y1 - a.y1); a788: 1ad2 subs r2, r2, r3 a78a: 9b06 ldr r3, [sp, #24] a78c: fb09 6602 mla r6, r9, r2, r6 a790: 441e add r6, r3 lv_area_copy(&fa, &ca); a792: a91a add r1, sp, #104 ; 0x68 a794: 4b2d ldr r3, [pc, #180] ; (a84c ) a796: a81e add r0, sp, #120 ; 0x78 a798: 4798 blx r3 fa.y2 = fa.y1; a79a: f9bd 307a ldrsh.w r3, [sp, #122] ; 0x7a return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); a79e: b22d sxth r5, r5 for(y = 0; y < h; y++) { a7a0: 2700 movs r7, #0 fa.y2 = fa.y1; a7a2: f8ad 307e strh.w r3, [sp, #126] ; 0x7e for(y = 0; y < h; y++) { a7a6: 9b09 ldr r3, [sp, #36] ; 0x24 a7a8: 429f cmp r7, r3 a7aa: f2c0 8542 blt.w b232 a.x1 = sh_area.x1 + corner_size; a7ae: 9a05 ldr r2, [sp, #20] a7b0: f8bd 3048 ldrh.w r3, [sp, #72] ; 0x48 a.y1 = sh_area.y2 - corner_size + 1; a7b4: 9905 ldr r1, [sp, #20] a.x1 = sh_area.x1 + corner_size; a7b6: 4413 add r3, r2 a7b8: f8ad 3060 strh.w r3, [sp, #96] ; 0x60 a.x2 = sh_area.x2 - corner_size; a7bc: f8bd 304c ldrh.w r3, [sp, #76] ; 0x4c a7c0: 1a9b subs r3, r3, r2 a.y1 = sh_area.y2 - corner_size + 1; a7c2: f9bd 204e ldrsh.w r2, [sp, #78] ; 0x4e a.x2 = sh_area.x2 - corner_size; a7c6: f8ad 3064 strh.w r3, [sp, #100] ; 0x64 a.y1 = sh_area.y2 - corner_size + 1; a7ca: 1c53 adds r3, r2, #1 a7cc: 1a5b subs r3, r3, r1 a7ce: f8ad 3062 strh.w r3, [sp, #98] ; 0x62 a.y2 = sh_area.y2; a7d2: f8ad 2066 strh.w r2, [sp, #102] ; 0x66 has_com = _lv_area_intersect(&ca, &a, clip); a7d6: 4b1c ldr r3, [pc, #112] ; (a848 ) a7d8: 4642 mov r2, r8 a7da: a918 add r1, sp, #96 ; 0x60 a7dc: a81a add r0, sp, #104 ; 0x68 a7de: 4798 blx r3 if(has_com) { a7e0: 2800 cmp r0, #0 a7e2: d035 beq.n a850 if(simple_mode) ca.y1 = LV_MATH_MAX(ca.y1, coords->y2); a7e4: 9b07 ldr r3, [sp, #28] a7e6: b143 cbz r3, a7fa a7e8: f9bb 3006 ldrsh.w r3, [fp, #6] a7ec: f9bd 206a ldrsh.w r2, [sp, #106] ; 0x6a a7f0: 4293 cmp r3, r2 a7f2: bfb8 it lt a7f4: 4613 movlt r3, r2 a7f6: f8ad 306a strh.w r3, [sp, #106] ; 0x6a a7fa: f8bd 506c ldrh.w r5, [sp, #108] ; 0x6c a7fe: f8bd 3068 ldrh.w r3, [sp, #104] ; 0x68 return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); a802: f9bd 206e ldrsh.w r2, [sp, #110] ; 0x6e a806: f8bd 106a ldrh.w r1, [sp, #106] ; 0x6a return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); a80a: 3501 adds r5, #1 a80c: 1aed subs r5, r5, r3 return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); a80e: 1c53 adds r3, r2, #1 a810: 1a5b subs r3, r3, r1 a812: b21b sxth r3, r3 a814: 9309 str r3, [sp, #36] ; 0x24 sh_buf_tmp += corner_size * (a.y2 - ca.y2); a816: f9bd 3066 ldrsh.w r3, [sp, #102] ; 0x66 sh_buf_tmp = sh_buf + corner_size - 1; a81a: f109 36ff add.w r6, r9, #4294967295 ; 0xffffffff sh_buf_tmp += corner_size * (a.y2 - ca.y2); a81e: 1a9b subs r3, r3, r2 a820: fb09 6603 mla r6, r9, r3, r6 a824: 9b06 ldr r3, [sp, #24] lv_area_copy(&fa, &ca); a826: a91a add r1, sp, #104 ; 0x68 sh_buf_tmp += corner_size * (a.y2 - ca.y2); a828: 441e add r6, r3 lv_area_copy(&fa, &ca); a82a: a81e add r0, sp, #120 ; 0x78 a82c: 4b07 ldr r3, [pc, #28] ; (a84c ) a82e: 4798 blx r3 fa.y1 = fa.y2; a830: f8bd 307e ldrh.w r3, [sp, #126] ; 0x7e a834: f8ad 307a strh.w r3, [sp, #122] ; 0x7a return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); a838: b22d sxth r5, r5 for(y = 0; y < h; y++) { a83a: 2700 movs r7, #0 a83c: 9b09 ldr r3, [sp, #36] ; 0x24 a83e: 429f cmp r7, r3 a840: f2c0 8542 blt.w b2c8 a844: e004 b.n a850 a846: bf00 nop a848: 0000e0b9 .word 0x0000e0b9 a84c: 00009db9 .word 0x00009db9 a.x1 = sh_area.x1 + corner_size; a850: 9a05 ldr r2, [sp, #20] a852: f8bd 3048 ldrh.w r3, [sp, #72] ; 0x48 a856: 4413 add r3, r2 a858: f8ad 3060 strh.w r3, [sp, #96] ; 0x60 a.x2 = sh_area.x2 - corner_size; a85c: f8bd 304c ldrh.w r3, [sp, #76] ; 0x4c a860: 1a9b subs r3, r3, r2 a862: f8ad 3064 strh.w r3, [sp, #100] ; 0x64 a.y1 = sh_area.y1 + corner_size; a866: f8bd 304a ldrh.w r3, [sp, #74] ; 0x4a a86a: 4413 add r3, r2 a86c: f8ad 3062 strh.w r3, [sp, #98] ; 0x62 a.y2 = sh_area.y2 - corner_size; a870: f8bd 304e ldrh.w r3, [sp, #78] ; 0x4e a874: 1a9b subs r3, r3, r2 a876: f8ad 3066 strh.w r3, [sp, #102] ; 0x66 has_com = _lv_area_intersect(&ca, &a, clip); a87a: 4642 mov r2, r8 a87c: 4bb9 ldr r3, [pc, #740] ; (ab64 ) a87e: a918 add r1, sp, #96 ; 0x60 a880: a81a add r0, sp, #104 ; 0x68 a882: 4798 blx r3 if(has_com && simple_mode == false) { a884: b1e8 cbz r0, a8c2 a886: 9b07 ldr r3, [sp, #28] a888: b9db cbnz r3, a8c2 a88a: f8bd 606c ldrh.w r6, [sp, #108] ; 0x6c a88e: f8bd 3068 ldrh.w r3, [sp, #104] ; 0x68 return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); a892: f8bd 706e ldrh.w r7, [sp, #110] ; 0x6e _lv_memset(mask_buf, dsc->shadow_opa, w); a896: f8df 9310 ldr.w r9, [pc, #784] ; aba8 return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); a89a: 3601 adds r6, #1 a89c: 1af6 subs r6, r6, r3 return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); a89e: f8bd 306a ldrh.w r3, [sp, #106] ; 0x6a a8a2: 3701 adds r7, #1 a8a4: 1aff subs r7, r7, r3 lv_area_copy(&fa, &ca); a8a6: a91a add r1, sp, #104 ; 0x68 a8a8: 4baf ldr r3, [pc, #700] ; (ab68 ) a8aa: a81e add r0, sp, #120 ; 0x78 a8ac: 4798 blx r3 fa.y2 = fa.y1; a8ae: f9bd 307a ldrsh.w r3, [sp, #122] ; 0x7a for(y = 0; y < h; y++) { a8b2: 9d07 ldr r5, [sp, #28] return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); a8b4: b236 sxth r6, r6 return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); a8b6: b23f sxth r7, r7 a8b8: 42bd cmp r5, r7 fa.y2 = fa.y1; a8ba: f8ad 307e strh.w r3, [sp, #126] ; 0x7e for(y = 0; y < h; y++) { a8be: f2c0 853c blt.w b33a lv_draw_mask_remove_id(mask_rout_id); a8c2: 4baa ldr r3, [pc, #680] ; (ab6c ) _lv_mem_buf_release(mask_buf); a8c4: 4caa ldr r4, [pc, #680] ; (ab70 ) lv_draw_mask_remove_id(mask_rout_id); a8c6: ee18 0a90 vmov r0, s17 a8ca: 4798 blx r3 _lv_mem_buf_release(mask_buf); a8cc: ee18 0a10 vmov r0, s16 a8d0: 47a0 blx r4 _lv_mem_buf_release(sh_buf); a8d2: 9806 ldr r0, [sp, #24] a8d4: 47a0 blx r4 if(dsc->bg_opa <= LV_OPA_MIN) return; a8d6: f89a 300c ldrb.w r3, [sl, #12] a8da: 2b05 cmp r3, #5 a8dc: f240 80a8 bls.w aa30 lv_area_copy(&coords_bg, coords); a8e0: 4ba1 ldr r3, [pc, #644] ; (ab68 ) a8e2: 4659 mov r1, fp a8e4: a816 add r0, sp, #88 ; 0x58 a8e6: 4798 blx r3 if(dsc->border_width > 1 && dsc->border_opa >= LV_OPA_MAX && dsc->radius != 0) { a8e8: f9ba 3010 ldrsh.w r3, [sl, #16] a8ec: 2b01 cmp r3, #1 a8ee: dd24 ble.n a93a a8f0: f89a 3014 ldrb.w r3, [sl, #20] a8f4: 2bf9 cmp r3, #249 ; 0xf9 a8f6: d920 bls.n a93a a8f8: f9ba 3000 ldrsh.w r3, [sl] a8fc: b1eb cbz r3, a93a coords_bg.x1 += (dsc->border_side & LV_BORDER_SIDE_LEFT) ? 1 : 0; a8fe: f8ba 3012 ldrh.w r3, [sl, #18] a902: f8bd 1058 ldrh.w r1, [sp, #88] ; 0x58 a906: f3c3 0280 ubfx r2, r3, #2, #1 a90a: 440a add r2, r1 coords_bg.y1 += (dsc->border_side & LV_BORDER_SIDE_TOP) ? 1 : 0; a90c: f8bd 105a ldrh.w r1, [sp, #90] ; 0x5a coords_bg.x1 += (dsc->border_side & LV_BORDER_SIDE_LEFT) ? 1 : 0; a910: f8ad 2058 strh.w r2, [sp, #88] ; 0x58 coords_bg.y1 += (dsc->border_side & LV_BORDER_SIDE_TOP) ? 1 : 0; a914: f3c3 0240 ubfx r2, r3, #1, #1 a918: 440a add r2, r1 a91a: f8ad 205a strh.w r2, [sp, #90] ; 0x5a coords_bg.x2 -= (dsc->border_side & LV_BORDER_SIDE_RIGHT) ? 1 : 0; a91e: f8bd 205c ldrh.w r2, [sp, #92] ; 0x5c a922: f3c3 01c0 ubfx r1, r3, #3, #1 a926: 1a52 subs r2, r2, r1 a928: f8ad 205c strh.w r2, [sp, #92] ; 0x5c coords_bg.y2 -= (dsc->border_side & LV_BORDER_SIDE_BOTTOM) ? 1 : 0; a92c: f8bd 205e ldrh.w r2, [sp, #94] ; 0x5e a930: f003 0301 and.w r3, r3, #1 a934: 1ad3 subs r3, r2, r3 a936: f8ad 305e strh.w r3, [sp, #94] ; 0x5e lv_opa_t opa = dsc->bg_opa; a93a: f89a 900c ldrb.w r9, [sl, #12] lv_disp_t * disp = _lv_refr_get_disp_refreshing(); a93e: 4b8d ldr r3, [pc, #564] ; (ab74 ) if(opa > LV_OPA_MAX) opa = LV_OPA_COVER; a940: f1b9 0ffb cmp.w r9, #251 ; 0xfb a944: bf28 it cs a946: f04f 09ff movcs.w r9, #255 ; 0xff lv_disp_t * disp = _lv_refr_get_disp_refreshing(); a94a: 4798 blx r3 lv_disp_buf_t * vdb = lv_disp_get_buf(disp); a94c: 4b8a ldr r3, [pc, #552] ; (ab78 ) a94e: 4798 blx r3 is_common = _lv_area_intersect(&draw_area, &coords_bg, clip); a950: 4b84 ldr r3, [pc, #528] ; (ab64 ) lv_disp_buf_t * vdb = lv_disp_get_buf(disp); a952: 9005 str r0, [sp, #20] is_common = _lv_area_intersect(&draw_area, &coords_bg, clip); a954: 4642 mov r2, r8 a956: a916 add r1, sp, #88 ; 0x58 a958: a818 add r0, sp, #96 ; 0x60 a95a: 4798 blx r3 if(is_common == false) return; a95c: 2800 cmp r0, #0 a95e: d067 beq.n aa30 draw_area.x1 -= disp_area->x1; a960: 9b05 ldr r3, [sp, #20] a962: f8bd 1060 ldrh.w r1, [sp, #96] ; 0x60 a966: 8a1a ldrh r2, [r3, #16] a968: 1a8b subs r3, r1, r2 a96a: f8ad 3060 strh.w r3, [sp, #96] ; 0x60 draw_area.y1 -= disp_area->y1; a96e: 9b05 ldr r3, [sp, #20] a970: 8a58 ldrh r0, [r3, #18] a972: f8bd 3062 ldrh.w r3, [sp, #98] ; 0x62 a976: 1a1b subs r3, r3, r0 a978: f8ad 3062 strh.w r3, [sp, #98] ; 0x62 draw_area.x2 -= disp_area->x1; a97c: f8bd 3064 ldrh.w r3, [sp, #100] ; 0x64 a980: 1a9a subs r2, r3, r2 a982: f8ad 2064 strh.w r2, [sp, #100] ; 0x64 return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); a986: 3301 adds r3, #1 draw_area.y2 -= disp_area->y1; a988: f8bd 2066 ldrh.w r2, [sp, #102] ; 0x66 a98c: 1a5b subs r3, r3, r1 a98e: 1a12 subs r2, r2, r0 a990: b21b sxth r3, r3 a992: f8ad 2066 strh.w r2, [sp, #102] ; 0x66 lv_opa_t * mask_buf = _lv_mem_buf_get(draw_area_w); a996: 4618 mov r0, r3 a998: ee08 3a90 vmov s17, r3 a99c: 4b77 ldr r3, [pc, #476] ; (ab7c ) a99e: 4798 blx r3 uint16_t other_mask_cnt = lv_draw_mask_get_cnt(); a9a0: 4b77 ldr r3, [pc, #476] ; (ab80 ) lv_opa_t * mask_buf = _lv_mem_buf_get(draw_area_w); a9a2: 4605 mov r5, r0 uint16_t other_mask_cnt = lv_draw_mask_get_cnt(); a9a4: 4798 blx r3 a9a6: 900c str r0, [sp, #48] ; 0x30 a9a8: f8bd 3030 ldrh.w r3, [sp, #48] ; 0x30 a9ac: 930d str r3, [sp, #52] ; 0x34 if(other_mask_cnt) simple_mode = false; a9ae: 2b00 cmp r3, #0 a9b0: f040 84ef bne.w b392 else if(dsc->bg_grad_dir == LV_GRAD_DIR_HOR) simple_mode = false; a9b4: f89a 3006 ldrb.w r3, [sl, #6] a9b8: 3b02 subs r3, #2 a9ba: bf18 it ne a9bc: 2301 movne r3, #1 a9be: f8bd 605c ldrh.w r6, [sp, #92] ; 0x5c if(other_mask_cnt) simple_mode = false; a9c2: 9308 str r3, [sp, #32] a9c4: f8bd 3058 ldrh.w r3, [sp, #88] ; 0x58 return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); a9c8: f8bd 405e ldrh.w r4, [sp, #94] ; 0x5e return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); a9cc: 3601 adds r6, #1 a9ce: 1af6 subs r6, r6, r3 return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); a9d0: f8bd 305a ldrh.w r3, [sp, #90] ; 0x5a a9d4: 3401 adds r4, #1 a9d6: 1ae4 subs r4, r4, r3 int32_t coords_h = lv_area_get_height(&coords_bg); a9d8: b224 sxth r4, r4 return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); a9da: b236 sxth r6, r6 int32_t short_side = LV_MATH_MIN(coords_w, coords_h); a9dc: 42b4 cmp r4, r6 int32_t rout = dsc->radius; a9de: f9ba 3000 ldrsh.w r3, [sl] int32_t short_side = LV_MATH_MIN(coords_w, coords_h); a9e2: bfa8 it ge a9e4: 4634 movge r4, r6 if(rout > short_side >> 1) rout = short_side >> 1; a9e6: 1064 asrs r4, r4, #1 a9e8: 429c cmp r4, r3 a9ea: bfa8 it ge a9ec: 461c movge r4, r3 if(simple_mode && rout == 0 && (dsc->bg_grad_dir == LV_GRAD_DIR_NONE)) { a9ee: 9b08 ldr r3, [sp, #32] a9f0: 2b00 cmp r3, #0 a9f2: f000 84d1 beq.w b398 a9f6: 2c00 cmp r4, #0 a9f8: f040 84ce bne.w b398 a9fc: f89a 3006 ldrb.w r3, [sl, #6] aa00: 2b00 cmp r3, #0 aa02: f040 857c bne.w b4fe _lv_blend_fill(clip, &coords_bg, aa06: f89a 200d ldrb.w r2, [sl, #13] aa0a: 4c5e ldr r4, [pc, #376] ; (ab84 ) aa0c: e9cd 9201 strd r9, r2, [sp, #4] aa10: 2201 movs r2, #1 aa12: 9200 str r2, [sp, #0] aa14: f8ba 2002 ldrh.w r2, [sl, #2] aa18: a916 add r1, sp, #88 ; 0x58 aa1a: 4640 mov r0, r8 aa1c: 47a0 blx r4 int16_t mask_rout_id = LV_MASK_ID_INV; aa1e: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff aa22: 930b str r3, [sp, #44] ; 0x2c lv_draw_mask_remove_id(mask_rout_id); aa24: 4b51 ldr r3, [pc, #324] ; (ab6c ) aa26: 980b ldr r0, [sp, #44] ; 0x2c aa28: 4798 blx r3 _lv_mem_buf_release(mask_buf); aa2a: 4b51 ldr r3, [pc, #324] ; (ab70 ) aa2c: 4628 mov r0, r5 aa2e: 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; aa30: f8da 002c ldr.w r0, [sl, #44] ; 0x2c aa34: b1d0 cbz r0, aa6c if(dsc->pattern_opa <= LV_OPA_MIN) return; aa36: f89a 3036 ldrb.w r3, [sl, #54] ; 0x36 aa3a: 2b05 cmp r3, #5 aa3c: d916 bls.n aa6c lv_img_src_t src_type = lv_img_src_get_type(dsc->pattern_image); aa3e: 4b52 ldr r3, [pc, #328] ; (ab88 ) aa40: 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) { aa42: 2801 cmp r0, #1 lv_img_src_t src_type = lv_img_src_get_type(dsc->pattern_image); aa44: 4606 mov r6, r0 if(src_type == LV_IMG_SRC_FILE || src_type == LV_IMG_SRC_VARIABLE) { aa46: f200 86bc bhi.w b7c2 lv_img_header_t header; lv_res_t res = lv_img_decoder_get_info(dsc->pattern_image, &header); aa4a: f8da 002c ldr.w r0, [sl, #44] ; 0x2c aa4e: 4b4f ldr r3, [pc, #316] ; (ab8c ) aa50: a925 add r1, sp, #148 ; 0x94 aa52: 4798 blx r3 if(res != LV_RES_OK) { aa54: 2801 cmp r0, #1 aa56: f000 8656 beq.w b706 LV_LOG_WARN("draw_img: can't get image info"); aa5a: 4b4d ldr r3, [pc, #308] ; (ab90 ) aa5c: 9300 str r3, [sp, #0] aa5e: 494d ldr r1, [pc, #308] ; (ab94 ) aa60: 4b4d ldr r3, [pc, #308] ; (ab98 ) aa62: 4c4e ldr r4, [pc, #312] ; (ab9c ) aa64: f240 5294 movw r2, #1428 ; 0x594 aa68: 2002 movs r0, #2 aa6a: 47a0 blx r4 if(dsc->border_opa <= LV_OPA_MIN) return; aa6c: f89a 3014 ldrb.w r3, [sl, #20] aa70: 9305 str r3, [sp, #20] aa72: 2b05 cmp r3, #5 aa74: f240 8174 bls.w ad60 if(dsc->border_width == 0) return; aa78: f9ba 3010 ldrsh.w r3, [sl, #16] aa7c: 2b00 cmp r3, #0 aa7e: f000 816f beq.w ad60 if(dsc->border_side == LV_BORDER_SIDE_NONE) return; aa82: f9ba 3012 ldrsh.w r3, [sl, #18] aa86: 2b00 cmp r3, #0 aa88: f000 816a beq.w ad60 if(opa > LV_OPA_MAX) opa = LV_OPA_COVER; aa8c: 9b05 ldr r3, [sp, #20] aa8e: 2bfb cmp r3, #251 ; 0xfb aa90: bf28 it cs aa92: 23ff movcs r3, #255 ; 0xff aa94: 9305 str r3, [sp, #20] lv_disp_t * disp = _lv_refr_get_disp_refreshing(); aa96: 4b37 ldr r3, [pc, #220] ; (ab74 ) aa98: 4798 blx r3 lv_disp_buf_t * vdb = lv_disp_get_buf(disp); aa9a: 4b37 ldr r3, [pc, #220] ; (ab78 ) aa9c: 4798 blx r3 is_common = _lv_area_intersect(&draw_area, coords, clip); aa9e: 4b31 ldr r3, [pc, #196] ; (ab64 ) lv_disp_buf_t * vdb = lv_disp_get_buf(disp); aaa0: 9006 str r0, [sp, #24] is_common = _lv_area_intersect(&draw_area, coords, clip); aaa2: 4642 mov r2, r8 aaa4: 4659 mov r1, fp aaa6: a814 add r0, sp, #80 ; 0x50 aaa8: 4798 blx r3 if(is_common == false) return; aaaa: 2800 cmp r0, #0 aaac: f000 8158 beq.w ad60 draw_area.x1 -= disp_area->x1; aab0: 9b06 ldr r3, [sp, #24] aab2: f8bd 1050 ldrh.w r1, [sp, #80] ; 0x50 aab6: 8a1a ldrh r2, [r3, #16] aab8: 1a8b subs r3, r1, r2 aaba: f8ad 3050 strh.w r3, [sp, #80] ; 0x50 draw_area.y1 -= disp_area->y1; aabe: 9b06 ldr r3, [sp, #24] aac0: 8a58 ldrh r0, [r3, #18] aac2: f8bd 3052 ldrh.w r3, [sp, #82] ; 0x52 aac6: 1a1b subs r3, r3, r0 aac8: f8ad 3052 strh.w r3, [sp, #82] ; 0x52 draw_area.x2 -= disp_area->x1; aacc: f8bd 3054 ldrh.w r3, [sp, #84] ; 0x54 aad0: 1a9a subs r2, r3, r2 aad2: f8ad 2054 strh.w r2, [sp, #84] ; 0x54 aad6: 3301 adds r3, #1 draw_area.y2 -= disp_area->y1; aad8: f8bd 2056 ldrh.w r2, [sp, #86] ; 0x56 aadc: 1a5b subs r3, r3, r1 aade: 1a12 subs r2, r2, r0 aae0: fa0f f983 sxth.w r9, r3 aae4: f8ad 2056 strh.w r2, [sp, #86] ; 0x56 lv_opa_t * mask_buf = _lv_mem_buf_get(draw_area_w); aae8: 4b24 ldr r3, [pc, #144] ; (ab7c ) aaea: 4648 mov r0, r9 aaec: 4798 blx r3 uint8_t other_mask_cnt = lv_draw_mask_get_cnt(); aaee: 4b24 ldr r3, [pc, #144] ; (ab80 ) lv_opa_t * mask_buf = _lv_mem_buf_get(draw_area_w); aaf0: 4604 mov r4, r0 uint8_t other_mask_cnt = lv_draw_mask_get_cnt(); aaf2: 4798 blx r3 if(other_mask_cnt) simple_mode = false; aaf4: 2800 cmp r0, #0 aaf6: f040 8749 bne.w b98c else if(dsc->border_side != LV_BORDER_SIDE_FULL) simple_mode = false; aafa: f9ba 3012 ldrsh.w r3, [sl, #18] aafe: f1a3 050f sub.w r5, r3, #15 ab02: 426b negs r3, r5 ab04: 416b adcs r3, r5 if(other_mask_cnt) simple_mode = false; ab06: 461f mov r7, r3 ab08: f8bb 3004 ldrh.w r3, [fp, #4] ab0c: f8bb 2000 ldrh.w r2, [fp] return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); ab10: f8bb 1002 ldrh.w r1, [fp, #2] return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); ab14: 3301 adds r3, #1 ab16: 1a9b subs r3, r3, r2 return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); ab18: f8bb 2006 ldrh.w r2, [fp, #6] ab1c: 3201 adds r2, #1 ab1e: 1a52 subs r2, r2, r1 int32_t coords_w = lv_area_get_width(coords); ab20: b21b sxth r3, r3 int32_t coords_h = lv_area_get_height(coords); ab22: b212 sxth r2, r2 int32_t short_side = LV_MATH_MIN(coords_w, coords_h); ab24: 4293 cmp r3, r2 ab26: bfa8 it ge ab28: 4613 movge r3, r2 int32_t rout = dsc->radius; ab2a: f9ba 2000 ldrsh.w r2, [sl] if(rout > short_side >> 1) rout = short_side >> 1; ab2e: 105b asrs r3, r3, #1 ab30: 4293 cmp r3, r2 ab32: bfa8 it ge ab34: 4613 movge r3, r2 if(rout > 0) { ab36: 2b00 cmp r3, #0 ab38: 9309 str r3, [sp, #36] ; 0x24 ab3a: f340 872a ble.w b992 lv_draw_mask_radius_init(&mask_rout_param, coords, rout, false); ab3e: 9a09 ldr r2, [sp, #36] ; 0x24 ab40: 4d17 ldr r5, [pc, #92] ; (aba0 ) ab42: 2300 movs r3, #0 ab44: 4659 mov r1, fp ab46: a81e add r0, sp, #120 ; 0x78 ab48: 47a8 blx r5 mask_rout_id = lv_draw_mask_add(&mask_rout_param, NULL); ab4a: 4b16 ldr r3, [pc, #88] ; (aba4 ) ab4c: 2100 movs r1, #0 ab4e: a81e add r0, sp, #120 ; 0x78 ab50: 4798 blx r3 ab52: 900c str r0, [sp, #48] ; 0x30 lv_area_copy(&area_small, coords); ab54: a816 add r0, sp, #88 ; 0x58 ab56: 4b04 ldr r3, [pc, #16] ; (ab68 ) ab58: 4659 mov r1, fp ab5a: 4798 blx r3 area_small.x1 += ((dsc->border_side & LV_BORDER_SIDE_LEFT) ? dsc->border_width : - (dsc->border_width + rout)); ab5c: f8ba 1012 ldrh.w r1, [sl, #18] ab60: e024 b.n abac ab62: bf00 nop ab64: 0000e0b9 .word 0x0000e0b9 ab68: 00009db9 .word 0x00009db9 ab6c: 000099cd .word 0x000099cd ab70: 0000eda1 .word 0x0000eda1 ab74: 00005215 .word 0x00005215 ab78: 0000dc0d .word 0x0000dc0d ab7c: 0000f0ed .word 0x0000f0ed ab80: 00009a1d .word 0x00009a1d ab84: 0000641d .word 0x0000641d ab88: 00007a31 .word 0x00007a31 ab8c: 0000d155 .word 0x0000d155 ab90: 00027724 .word 0x00027724 ab94: 000276ef .word 0x000276ef ab98: 00027772 .word 0x00027772 ab9c: 0000eb21 .word 0x0000eb21 aba0: 00009b41 .word 0x00009b41 aba4: 0000993d .word 0x0000993d aba8: 0000f1f1 .word 0x0000f1f1 abac: f8bd 5024 ldrh.w r5, [sp, #36] ; 0x24 abb0: f8ba 3010 ldrh.w r3, [sl, #16] abb4: f8bd 2058 ldrh.w r2, [sp, #88] ; 0x58 abb8: 0748 lsls r0, r1, #29 abba: bf5e ittt pl abbc: 195b addpl r3, r3, r5 abbe: 425b negpl r3, r3 abc0: b29b uxthpl r3, r3 abc2: 4413 add r3, r2 abc4: f8ba 2010 ldrh.w r2, [sl, #16] abc8: 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)); abcc: 070b lsls r3, r1, #28 abce: bf58 it pl abd0: 1953 addpl r3, r2, r5 abd2: f8bd 005c ldrh.w r0, [sp, #92] ; 0x5c abd6: bf56 itet pl abd8: 425b negpl r3, r3 abda: 4613 movmi r3, r2 abdc: b29b uxthpl r3, r3 abde: 1ac3 subs r3, r0, r3 area_small.y1 += ((dsc->border_side & LV_BORDER_SIDE_TOP) ? dsc->border_width : - (dsc->border_width + rout)); abe0: 078e lsls r6, r1, #30 area_small.x2 -= ((dsc->border_side & LV_BORDER_SIDE_RIGHT) ? dsc->border_width : - (dsc->border_width + rout)); abe2: 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)); abe6: bf58 it pl abe8: 1953 addpl r3, r2, r5 abea: f8bd 005a ldrh.w r0, [sp, #90] ; 0x5a lv_draw_mask_radius_init(&mask_rin_param, &area_small, rout - dsc->border_width, true); abee: 4ec3 ldr r6, [pc, #780] ; (aefc ) area_small.y1 += ((dsc->border_side & LV_BORDER_SIDE_TOP) ? dsc->border_width : - (dsc->border_width + rout)); abf0: bf56 itet pl abf2: 425b negpl r3, r3 abf4: 4613 movmi r3, r2 abf6: b29b uxthpl r3, r3 abf8: 4403 add r3, r0 abfa: 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)); abfe: 07cb lsls r3, r1, #31 ac00: bf5c itt pl ac02: 1953 addpl r3, r2, r5 ac04: 425b negpl r3, r3 ac06: f8bd 005e ldrh.w r0, [sp, #94] ; 0x5e ac0a: bf4c ite mi ac0c: 4613 movmi r3, r2 ac0e: b29b uxthpl r3, r3 ac10: 1ac3 subs r3, r0, r3 lv_draw_mask_radius_init(&mask_rin_param, &area_small, rout - dsc->border_width, true); ac12: 1aaa subs r2, r5, r2 ac14: b212 sxth r2, r2 area_small.y2 -= ((dsc->border_side & LV_BORDER_SIDE_BOTTOM) ? dsc->border_width : - (dsc->border_width + rout)); ac16: f8ad 305e strh.w r3, [sp, #94] ; 0x5e lv_draw_mask_radius_init(&mask_rin_param, &area_small, rout - dsc->border_width, true); ac1a: a916 add r1, sp, #88 ; 0x58 ac1c: 2301 movs r3, #1 ac1e: a825 add r0, sp, #148 ; 0x94 ac20: 47b0 blx r6 int16_t mask_rin_id = lv_draw_mask_add(&mask_rin_param, NULL); ac22: 4bb7 ldr r3, [pc, #732] ; (af00 ) ac24: 2100 movs r1, #0 ac26: a825 add r0, sp, #148 ; 0x94 ac28: 4798 blx r3 int32_t corner_size = LV_MATH_MAX(rout, dsc->border_width - 1); ac2a: f9ba 3010 ldrsh.w r3, [sl, #16] ac2e: 9a09 ldr r2, [sp, #36] ; 0x24 fill_area.y1 = disp_area->y1 + draw_area.y1; ac30: f9bd 6052 ldrsh.w r6, [sp, #82] ; 0x52 upper_corner_end = LV_MATH_MIN(upper_corner_end, draw_area.y2); ac34: f9bd c056 ldrsh.w ip, [sp, #86] ; 0x56 fill_area.x1 = coords->x1; ac38: f9bb 1000 ldrsh.w r1, [fp] int32_t corner_size = LV_MATH_MAX(rout, dsc->border_width - 1); ac3c: 429a cmp r2, r3 ac3e: bfa8 it ge ac40: 9b09 ldrge r3, [sp, #36] ; 0x24 fill_area.x2 = coords->x2; ac42: f9bb 2004 ldrsh.w r2, [fp, #4] int32_t corner_size = LV_MATH_MAX(rout, dsc->border_width - 1); ac46: bfb8 it lt ac48: f103 33ff addlt.w r3, r3, #4294967295 ; 0xffffffff ac4c: 9308 str r3, [sp, #32] lv_color_t color = dsc->border_color; ac4e: f8ba 300e ldrh.w r3, [sl, #14] ac52: ee08 3a10 vmov s16, r3 lv_blend_mode_t blend_mode = dsc->border_blend_mode; ac56: f89a 3015 ldrb.w r3, [sl, #21] ac5a: 9307 str r3, [sp, #28] int32_t upper_corner_end = coords->y1 - disp_area->y1 + corner_size; ac5c: 9b06 ldr r3, [sp, #24] ac5e: f9b3 e012 ldrsh.w lr, [r3, #18] fill_area.y1 = disp_area->y1 + draw_area.y1; ac62: eb0e 0306 add.w r3, lr, r6 int16_t mask_rin_id = lv_draw_mask_add(&mask_rin_param, NULL); ac66: ee08 0a90 vmov s17, r0 fill_area.y1 = disp_area->y1 + draw_area.y1; ac6a: b21b sxth r3, r3 if(simple_mode) { ac6c: 2f00 cmp r7, #0 ac6e: f000 879d beq.w bbac int32_t upper_corner_end = coords->y1 - disp_area->y1 + corner_size; ac72: f9bb 0002 ldrsh.w r0, [fp, #2] ac76: 9f08 ldr r7, [sp, #32] fill_area.x1 = coords->x1; ac78: f8ad 1060 strh.w r1, [sp, #96] ; 0x60 int32_t upper_corner_end = coords->y1 - disp_area->y1 + corner_size; ac7c: eba0 000e sub.w r0, r0, lr ac80: 4438 add r0, r7 upper_corner_end = LV_MATH_MIN(upper_corner_end, draw_area.y2); ac82: 4584 cmp ip, r0 ac84: bfa8 it ge ac86: 4684 movge ip, r0 ac88: f8cd c028 str.w ip, [sp, #40] ; 0x28 fill_area.x2 = coords->x2; ac8c: f8ad 2064 strh.w r2, [sp, #100] ; 0x64 fill_area.y1 = disp_area->y1 + draw_area.y1; ac90: f8ad 3062 strh.w r3, [sp, #98] ; 0x62 fill_area.y2 = fill_area.y1; ac94: f8ad 3066 strh.w r3, [sp, #102] ; 0x66 for(h = draw_area.y1; h <= upper_corner_end; h++) { ac98: 9b0a ldr r3, [sp, #40] ; 0x28 ac9a: 42b3 cmp r3, r6 ac9c: f280 867e bge.w b99c int32_t lower_corner_end = coords->y2 - disp_area->y1 - corner_size; aca0: 9b06 ldr r3, [sp, #24] aca2: f9bb 2006 ldrsh.w r2, [fp, #6] aca6: f9b3 3012 ldrsh.w r3, [r3, #18] acaa: 9908 ldr r1, [sp, #32] lower_corner_end = LV_MATH_MAX(lower_corner_end, draw_area.y1); acac: f9bd 6052 ldrsh.w r6, [sp, #82] ; 0x52 int32_t lower_corner_end = coords->y2 - disp_area->y1 - corner_size; acb0: 1ad2 subs r2, r2, r3 acb2: 1a52 subs r2, r2, r1 lower_corner_end = LV_MATH_MAX(lower_corner_end, draw_area.y1); acb4: 4296 cmp r6, r2 acb6: bfb8 it lt acb8: 4616 movlt r6, r2 if(lower_corner_end <= upper_corner_end) lower_corner_end = upper_corner_end + 1; acba: 9a0a ldr r2, [sp, #40] ; 0x28 acbc: 42b2 cmp r2, r6 acbe: bfa4 itt ge acc0: 4616 movge r6, r2 acc2: 3601 addge r6, #1 fill_area.y1 = disp_area->y1 + lower_corner_end; acc4: 4433 add r3, r6 acc6: b21b sxth r3, r3 acc8: f8ad 3062 strh.w r3, [sp, #98] ; 0x62 fill_area.y2 = fill_area.y1; accc: f8ad 3066 strh.w r3, [sp, #102] ; 0x66 for(h = lower_corner_end; h <= draw_area.y2; h++) { acd0: f9bd 3056 ldrsh.w r3, [sp, #86] ; 0x56 acd4: 429e cmp r6, r3 acd6: f340 86dd ble.w ba94 fill_area.y1 = coords->y1 + corner_size + 1; acda: f8bb 3002 ldrh.w r3, [fp, #2] acde: 9a08 ldr r2, [sp, #32] _lv_blend_fill(clip, &fill_area, color, NULL, LV_DRAW_MASK_RES_FULL_COVER, opa, blend_mode); ace0: 4d88 ldr r5, [pc, #544] ; (af04 ) fill_area.y1 = coords->y1 + corner_size + 1; ace2: 3301 adds r3, #1 ace4: fa13 f382 uxtah r3, r3, r2 ace8: f8ad 3062 strh.w r3, [sp, #98] ; 0x62 fill_area.y2 = coords->y2 - corner_size - 1; acec: f8bb 3006 ldrh.w r3, [fp, #6] acf0: 3b01 subs r3, #1 acf2: 1a9b subs r3, r3, r2 fill_area.x2 = coords->x1 + dsc->border_width - 1; acf4: f8ba 2010 ldrh.w r2, [sl, #16] fill_area.y2 = coords->y2 - corner_size - 1; acf8: f8ad 3066 strh.w r3, [sp, #102] ; 0x66 fill_area.x1 = coords->x1; acfc: f9bb 3000 ldrsh.w r3, [fp] ad00: f8ad 3060 strh.w r3, [sp, #96] ; 0x60 fill_area.x2 = coords->x1 + dsc->border_width - 1; ad04: 3a01 subs r2, #1 ad06: 4413 add r3, r2 ad08: 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); ad0c: 9b07 ldr r3, [sp, #28] ad0e: 9302 str r3, [sp, #8] ad10: 2601 movs r6, #1 ad12: 9b05 ldr r3, [sp, #20] ad14: 9301 str r3, [sp, #4] ad16: ee18 2a10 vmov r2, s16 ad1a: 2300 movs r3, #0 ad1c: a918 add r1, sp, #96 ; 0x60 ad1e: 4640 mov r0, r8 ad20: 9600 str r6, [sp, #0] ad22: 47a8 blx r5 fill_area.x1 = coords->x2 - dsc->border_width + 1; ad24: f8ba 3010 ldrh.w r3, [sl, #16] ad28: f9bb 2004 ldrsh.w r2, [fp, #4] fill_area.x2 = coords->x2; ad2c: f8ad 2064 strh.w r2, [sp, #100] ; 0x64 fill_area.x1 = coords->x2 - dsc->border_width + 1; ad30: 1af3 subs r3, r6, r3 ad32: 4413 add r3, r2 ad34: 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); ad38: 9b07 ldr r3, [sp, #28] ad3a: 9302 str r3, [sp, #8] ad3c: 9b05 ldr r3, [sp, #20] ad3e: ee18 2a10 vmov r2, s16 ad42: e9cd 6300 strd r6, r3, [sp] ad46: a918 add r1, sp, #96 ; 0x60 ad48: 2300 movs r3, #0 ad4a: 4640 mov r0, r8 ad4c: 47a8 blx r5 lv_draw_mask_remove_id(mask_rin_id); ad4e: 4d6e ldr r5, [pc, #440] ; (af08 ) ad50: ee18 0a90 vmov r0, s17 ad54: 47a8 blx r5 lv_draw_mask_remove_id(mask_rout_id); ad56: 980c ldr r0, [sp, #48] ; 0x30 ad58: 47a8 blx r5 _lv_mem_buf_release(mask_buf); ad5a: 4b6c ldr r3, [pc, #432] ; (af0c ) ad5c: 4620 mov r0, r4 ad5e: 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; ad60: f8da 103c ldr.w r1, [sl, #60] ; 0x3c ad64: 2900 cmp r1, #0 ad66: d064 beq.n ae32 if(dsc->value_opa <= LV_OPA_MIN) return; ad68: f89a 3044 ldrb.w r3, [sl, #68] ; 0x44 ad6c: 2b05 cmp r3, #5 ad6e: d960 bls.n ae32 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, ad70: 2400 movs r4, #0 ad72: f647 4318 movw r3, #31768 ; 0x7c18 ad76: e9cd 3401 strd r3, r4, [sp, #4] ad7a: f9ba 304e ldrsh.w r3, [sl, #78] ; 0x4e ad7e: 9300 str r3, [sp, #0] ad80: f9ba 304c ldrsh.w r3, [sl, #76] ; 0x4c ad84: f8da 2040 ldr.w r2, [sl, #64] ; 0x40 ad88: 4d61 ldr r5, [pc, #388] ; (af10 ) ad8a: a818 add r0, sp, #96 ; 0x60 ad8c: 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; ad8e: 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); ad92: f89a 2050 ldrb.w r2, [sl, #80] ; 0x50 value_area.x1 = 0; ad96: 941e str r4, [sp, #120] ; 0x78 value_area.x2 = s.x - 1; ad98: 3b01 subs r3, #1 ad9a: f8ad 307c strh.w r3, [sp, #124] ; 0x7c value_area.y2 = s.y - 1; ad9e: f8bd 3062 ldrh.w r3, [sp, #98] ; 0x62 _lv_area_align(coords, &value_area, dsc->value_align, &p_align); ada2: 4d5c ldr r5, [pc, #368] ; (af14 ) value_area.y2 = s.y - 1; ada4: 3b01 subs r3, #1 ada6: f8ad 307e strh.w r3, [sp, #126] ; 0x7e _lv_area_align(coords, &value_area, dsc->value_align, &p_align); adaa: a91e add r1, sp, #120 ; 0x78 adac: ab1a add r3, sp, #104 ; 0x68 adae: 4658 mov r0, fp adb0: 47a8 blx r5 value_area.x1 += p_align.x + dsc->value_ofs_x; adb2: f8ba 3048 ldrh.w r3, [sl, #72] ; 0x48 adb6: f8bd 2068 ldrh.w r2, [sp, #104] ; 0x68 value_area.y1 += p_align.y + dsc->value_ofs_y; adba: f8ba 104a ldrh.w r1, [sl, #74] ; 0x4a value_area.x1 += p_align.x + dsc->value_ofs_x; adbe: 441a add r2, r3 adc0: f8bd 3078 ldrh.w r3, [sp, #120] ; 0x78 adc4: fa13 f382 uxtah r3, r3, r2 adc8: f8ad 3078 strh.w r3, [sp, #120] ; 0x78 value_area.y1 += p_align.y + dsc->value_ofs_y; adcc: f8bd 306a ldrh.w r3, [sp, #106] ; 0x6a add0: 440b add r3, r1 add2: f8bd 107a ldrh.w r1, [sp, #122] ; 0x7a add6: fa11 f183 uxtah r1, r1, r3 adda: f8ad 107a strh.w r1, [sp, #122] ; 0x7a value_area.x2 += p_align.x + dsc->value_ofs_x; adde: f8bd 107c ldrh.w r1, [sp, #124] ; 0x7c ade2: fa11 f282 uxtah r2, r1, r2 ade6: f8ad 207c strh.w r2, [sp, #124] ; 0x7c value_area.y2 += p_align.y + dsc->value_ofs_y; adea: f8bd 207e ldrh.w r2, [sp, #126] ; 0x7e adee: fa12 f383 uxtah r3, r2, r3 adf2: f8ad 307e strh.w r3, [sp, #126] ; 0x7e lv_draw_label_dsc_t label_dsc; lv_draw_label_dsc_init(&label_dsc); adf6: a825 add r0, sp, #148 ; 0x94 adf8: 4b47 ldr r3, [pc, #284] ; (af18 ) adfa: 4798 blx r3 label_dsc.font = dsc->value_font; adfc: f8da 3040 ldr.w r3, [sl, #64] ; 0x40 ae00: 9326 str r3, [sp, #152] ; 0x98 label_dsc.letter_space = dsc->value_letter_space; ae02: f8ba 304c ldrh.w r3, [sl, #76] ; 0x4c ae06: f8ad 30a0 strh.w r3, [sp, #160] ; 0xa0 label_dsc.line_space = dsc->value_line_space; ae0a: f8ba 304e ldrh.w r3, [sl, #78] ; 0x4e ae0e: f8ad 309e strh.w r3, [sp, #158] ; 0x9e label_dsc.color = dsc->value_color; ae12: f8ba 3046 ldrh.w r3, [sl, #70] ; 0x46 ae16: f8ad 3094 strh.w r3, [sp, #148] ; 0x94 label_dsc.opa = dsc->value_opa; ae1a: f89a 3044 ldrb.w r3, [sl, #68] ; 0x44 lv_draw_label(&value_area, clip, &label_dsc, dsc->value_str, NULL); ae1e: 9400 str r4, [sp, #0] label_dsc.opa = dsc->value_opa; ae20: f88d 309c strb.w r3, [sp, #156] ; 0x9c lv_draw_label(&value_area, clip, &label_dsc, dsc->value_str, NULL); ae24: 4c3d ldr r4, [pc, #244] ; (af1c ) ae26: f8da 303c ldr.w r3, [sl, #60] ; 0x3c ae2a: aa25 add r2, sp, #148 ; 0x94 ae2c: 4641 mov r1, r8 ae2e: a81e add r0, sp, #120 ; 0x78 ae30: 47a0 blx r4 if(dsc->outline_opa <= LV_OPA_MIN) return; ae32: f89a 301c ldrb.w r3, [sl, #28] ae36: 9305 str r3, [sp, #20] ae38: 2b05 cmp r3, #5 ae3a: f240 816b bls.w b114 if(dsc->outline_width == 0) return; ae3e: f9ba 3018 ldrsh.w r3, [sl, #24] ae42: 2b00 cmp r3, #0 ae44: f000 8166 beq.w b114 if(opa > LV_OPA_MAX) opa = LV_OPA_COVER; ae48: 9b05 ldr r3, [sp, #20] lv_area_copy(&area_inner, coords); ae4a: 4d35 ldr r5, [pc, #212] ; (af20 ) if(opa > LV_OPA_MAX) opa = LV_OPA_COVER; ae4c: 2bfb cmp r3, #251 ; 0xfb ae4e: bf28 it cs ae50: 23ff movcs r3, #255 ; 0xff ae52: 9305 str r3, [sp, #20] uint8_t other_mask_cnt = lv_draw_mask_get_cnt(); ae54: 4b33 ldr r3, [pc, #204] ; (af24 ) ae56: 4798 blx r3 lv_area_copy(&area_inner, coords); ae58: 4659 mov r1, fp uint8_t other_mask_cnt = lv_draw_mask_get_cnt(); ae5a: 900b str r0, [sp, #44] ; 0x2c lv_area_copy(&area_inner, coords); ae5c: a812 add r0, sp, #72 ; 0x48 ae5e: 47a8 blx r5 area_inner.x1 -= dsc->outline_pad; ae60: f8ba 701a ldrh.w r7, [sl, #26] ae64: f8bd 9048 ldrh.w r9, [sp, #72] ; 0x48 area_inner.x2 += dsc->outline_pad; ae68: f8bd 404c ldrh.w r4, [sp, #76] ; 0x4c area_inner.x1 -= dsc->outline_pad; ae6c: eba9 0307 sub.w r3, r9, r7 ae70: f8ad 3048 strh.w r3, [sp, #72] ; 0x48 area_inner.y1 -= dsc->outline_pad; ae74: f8bd 304a ldrh.w r3, [sp, #74] ; 0x4a ae78: 9307 str r3, [sp, #28] ae7a: 1bdb subs r3, r3, r7 ae7c: f8ad 304a strh.w r3, [sp, #74] ; 0x4a area_inner.y2 += dsc->outline_pad; ae80: f8bd 304e ldrh.w r3, [sp, #78] ; 0x4e ae84: 443b add r3, r7 ae86: b29b uxth r3, r3 area_inner.x2 += dsc->outline_pad; ae88: 443c add r4, r7 area_inner.y2 += dsc->outline_pad; ae8a: 9308 str r3, [sp, #32] ae8c: f8ad 304e strh.w r3, [sp, #78] ; 0x4e area_inner.x2 += dsc->outline_pad; ae90: b2a4 uxth r4, r4 int32_t rin = dsc->radius; ae92: f9ba 3000 ldrsh.w r3, [sl] ae96: 930c str r3, [sp, #48] ; 0x30 lv_area_copy(&area_outer, &area_inner); ae98: a912 add r1, sp, #72 ; 0x48 int32_t rout = rin + dsc->outline_width; ae9a: f9ba 3018 ldrsh.w r3, [sl, #24] area_inner.x2 += dsc->outline_pad; ae9e: f8ad 404c strh.w r4, [sp, #76] ; 0x4c lv_area_copy(&area_outer, &area_inner); aea2: a814 add r0, sp, #80 ; 0x50 int32_t rout = rin + dsc->outline_width; aea4: 930d str r3, [sp, #52] ; 0x34 lv_area_copy(&area_outer, &area_inner); aea6: 47a8 blx r5 area_outer.x1 -= dsc->outline_width; aea8: f8ba 6018 ldrh.w r6, [sl, #24] aeac: f8bd 3050 ldrh.w r3, [sp, #80] ; 0x50 aeb0: 9309 str r3, [sp, #36] ; 0x24 aeb2: 1b9b subs r3, r3, r6 aeb4: f8ad 3050 strh.w r3, [sp, #80] ; 0x50 area_outer.x2 += dsc->outline_width; aeb8: f8bd 3054 ldrh.w r3, [sp, #84] ; 0x54 area_outer.y2 += dsc->outline_width; aebc: f8bd 5056 ldrh.w r5, [sp, #86] ; 0x56 area_outer.x2 += dsc->outline_width; aec0: 4433 add r3, r6 aec2: fa1f fb83 uxth.w fp, r3 area_outer.y1 -= dsc->outline_width; aec6: f8bd 3052 ldrh.w r3, [sp, #82] ; 0x52 aeca: 930a str r3, [sp, #40] ; 0x28 area_outer.y2 += dsc->outline_width; aecc: 4435 add r5, r6 area_outer.y1 -= dsc->outline_width; aece: 1b9b subs r3, r3, r6 area_outer.y2 += dsc->outline_width; aed0: b2ad uxth r5, r5 area_outer.y1 -= dsc->outline_width; aed2: f8ad 3052 strh.w r3, [sp, #82] ; 0x52 area_outer.x2 += dsc->outline_width; aed6: f8ad b054 strh.w fp, [sp, #84] ; 0x54 lv_disp_t * disp = _lv_refr_get_disp_refreshing(); aeda: 4b13 ldr r3, [pc, #76] ; (af28 ) area_outer.y2 += dsc->outline_width; aedc: f8ad 5056 strh.w r5, [sp, #86] ; 0x56 lv_disp_t * disp = _lv_refr_get_disp_refreshing(); aee0: 4798 blx r3 lv_disp_buf_t * vdb = lv_disp_get_buf(disp); aee2: 4b12 ldr r3, [pc, #72] ; (af2c ) aee4: 4798 blx r3 is_common = _lv_area_intersect(&draw_area, &area_outer, clip); aee6: 4b12 ldr r3, [pc, #72] ; (af30 ) lv_disp_buf_t * vdb = lv_disp_get_buf(disp); aee8: 9006 str r0, [sp, #24] is_common = _lv_area_intersect(&draw_area, &area_outer, clip); aeea: 4642 mov r2, r8 aeec: a914 add r1, sp, #80 ; 0x50 aeee: a816 add r0, sp, #88 ; 0x58 aef0: 4798 blx r3 if(is_common == false) return; aef2: 2800 cmp r0, #0 aef4: f000 810e beq.w b114 aef8: e01c b.n af34 aefa: bf00 nop aefc: 00009b41 .word 0x00009b41 af00: 0000993d .word 0x0000993d af04: 0000641d .word 0x0000641d af08: 000099cd .word 0x000099cd af0c: 0000eda1 .word 0x0000eda1 af10: 000103d5 .word 0x000103d5 af14: 0000e35d .word 0x0000e35d af18: 00007a71 .word 0x00007a71 af1c: 00007aa1 .word 0x00007aa1 af20: 00009db9 .word 0x00009db9 af24: 00009a1d .word 0x00009a1d af28: 00005215 .word 0x00005215 af2c: 0000dc0d .word 0x0000dc0d af30: 0000e0b9 .word 0x0000e0b9 af34: 9b07 ldr r3, [sp, #28] draw_area.x1 -= disp_area->x1; af36: f8bd 1058 ldrh.w r1, [sp, #88] ; 0x58 af3a: f1c3 0301 rsb r3, r3, #1 return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); af3e: f1c9 0901 rsb r9, r9, #1 af42: 44b9 add r9, r7 return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); af44: 441f add r7, r3 af46: 9b08 ldr r3, [sp, #32] return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); af48: eb04 0209 add.w r2, r4, r9 return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); af4c: 443b add r3, r7 int32_t inner_w = lv_area_get_width(&area_inner); af4e: b212 sxth r2, r2 int32_t inner_h = lv_area_get_height(&area_inner); af50: b21b sxth r3, r3 int32_t short_side = LV_MATH_MIN(inner_w, inner_h); af52: 429a cmp r2, r3 af54: bfa8 it ge af56: 461a movge r2, r3 af58: 9b0c ldr r3, [sp, #48] ; 0x30 if(rin > short_side >> 1) rin = short_side >> 1; af5a: 1052 asrs r2, r2, #1 af5c: 429a cmp r2, r3 af5e: bfa8 it ge af60: 461a movge r2, r3 return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); af62: 9b09 ldr r3, [sp, #36] ; 0x24 af64: f1c3 0301 rsb r3, r3, #1 af68: 4433 add r3, r6 af6a: 449b add fp, r3 return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); af6c: 9b0a ldr r3, [sp, #40] ; 0x28 af6e: f1c3 0301 rsb r3, r3, #1 af72: 441e add r6, r3 af74: 4435 add r5, r6 int32_t coords_out_w = lv_area_get_width(&area_outer); af76: fa0f fb8b sxth.w fp, fp int32_t coords_out_h = lv_area_get_height(&area_outer); af7a: b22d sxth r5, r5 short_side = LV_MATH_MIN(coords_out_w, coords_out_h); af7c: 45ab cmp fp, r5 int32_t rout = rin + dsc->outline_width; af7e: 9b0d ldr r3, [sp, #52] ; 0x34 lv_draw_mask_radius_init(&mask_rin_param, &area_inner, rin, true); af80: 4ec8 ldr r6, [pc, #800] ; (b2a4 ) short_side = LV_MATH_MIN(coords_out_w, coords_out_h); af82: bfa8 it ge af84: 46ab movge fp, r5 int32_t rout = rin + dsc->outline_width; af86: 4413 add r3, r2 if(rout > short_side >> 1) rout = short_side >> 1; af88: ea4f 0b6b mov.w fp, fp, asr #1 af8c: 459b cmp fp, r3 af8e: 46d9 mov r9, fp af90: bfa8 it ge af92: 4699 movge r9, r3 draw_area.x1 -= disp_area->x1; af94: 9b06 ldr r3, [sp, #24] draw_area.x2 -= disp_area->x1; af96: f8bd 505c ldrh.w r5, [sp, #92] ; 0x5c draw_area.x1 -= disp_area->x1; af9a: 8a1b ldrh r3, [r3, #16] af9c: 1ac8 subs r0, r1, r3 af9e: f8ad 0058 strh.w r0, [sp, #88] ; 0x58 draw_area.y1 -= disp_area->y1; afa2: 9806 ldr r0, [sp, #24] draw_area.x2 -= disp_area->x1; afa4: 1aeb subs r3, r5, r3 draw_area.y1 -= disp_area->y1; afa6: 8a44 ldrh r4, [r0, #18] draw_area.x2 -= disp_area->x1; afa8: f8ad 305c strh.w r3, [sp, #92] ; 0x5c draw_area.y2 -= disp_area->y1; afac: f8bd 305e ldrh.w r3, [sp, #94] ; 0x5e draw_area.y1 -= disp_area->y1; afb0: f8bd 005a ldrh.w r0, [sp, #90] ; 0x5a return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); afb4: 3501 adds r5, #1 draw_area.y2 -= disp_area->y1; afb6: 1b1b subs r3, r3, r4 afb8: 1a6d subs r5, r5, r1 draw_area.y1 -= disp_area->y1; afba: 1b00 subs r0, r0, r4 draw_area.y2 -= disp_area->y1; afbc: f8ad 305e strh.w r3, [sp, #94] ; 0x5e afc0: b22b sxth r3, r5 afc2: ee08 3a10 vmov s16, r3 draw_area.y1 -= disp_area->y1; afc6: f8ad 005a strh.w r0, [sp, #90] ; 0x5a lv_draw_mask_radius_init(&mask_rin_param, &area_inner, rin, true); afca: 2301 movs r3, #1 afcc: a912 add r1, sp, #72 ; 0x48 afce: a81e add r0, sp, #120 ; 0x78 afd0: 47b0 blx r6 int16_t mask_rin_id = lv_draw_mask_add(&mask_rin_param, NULL); afd2: 4cb5 ldr r4, [pc, #724] ; (b2a8 ) afd4: 2100 movs r1, #0 afd6: a81e add r0, sp, #120 ; 0x78 afd8: 47a0 blx r4 lv_draw_mask_radius_init(&mask_rout_param, &area_outer, rout, false); afda: fa0f f289 sxth.w r2, r9 afde: 2300 movs r3, #0 afe0: a914 add r1, sp, #80 ; 0x50 int16_t mask_rin_id = lv_draw_mask_add(&mask_rin_param, NULL); afe2: ee08 0a90 vmov s17, r0 lv_draw_mask_radius_init(&mask_rout_param, &area_outer, rout, false); afe6: a825 add r0, sp, #148 ; 0x94 afe8: 47b0 blx r6 int16_t mask_rout_id = lv_draw_mask_add(&mask_rout_param, NULL); afea: 2100 movs r1, #0 afec: a825 add r0, sp, #148 ; 0x94 afee: 47a0 blx r4 lv_opa_t * mask_buf = _lv_mem_buf_get(draw_area_w); aff0: 4bae ldr r3, [pc, #696] ; (b2ac ) int16_t mask_rout_id = lv_draw_mask_add(&mask_rout_param, NULL); aff2: ee09 0a10 vmov s18, r0 lv_opa_t * mask_buf = _lv_mem_buf_get(draw_area_w); aff6: ee18 0a10 vmov r0, s16 affa: 4798 blx r3 int32_t corner_size = LV_MATH_MAX(rout, dsc->outline_width - 1); affc: f9ba 3018 ldrsh.w r3, [sl, #24] fill_area.y1 = disp_area->y1 + draw_area.y1; b000: f9bd 605a ldrsh.w r6, [sp, #90] ; 0x5a if(simple_mode) { b004: 9a0b ldr r2, [sp, #44] ; 0x2c lv_color_t color = dsc->outline_color; b006: f8ba 7016 ldrh.w r7, [sl, #22] lv_blend_mode_t blend_mode = dsc->outline_blend_mode; b00a: f89a b01d ldrb.w fp, [sl, #29] fill_area.x2 = area_outer.x2; b00e: f9bd 1054 ldrsh.w r1, [sp, #84] ; 0x54 int32_t corner_size = LV_MATH_MAX(rout, dsc->outline_width - 1); b012: 4599 cmp r9, r3 b014: bfbc itt lt b016: f103 33ff addlt.w r3, r3, #4294967295 ; 0xffffffff b01a: 9307 strlt r3, [sp, #28] int32_t upper_corner_end = area_outer.y1 - disp_area->y1 + corner_size; b01c: 9b06 ldr r3, [sp, #24] b01e: bfa8 it ge b020: f8cd 901c strge.w r9, [sp, #28] b024: f9b3 c012 ldrsh.w ip, [r3, #18] fill_area.y1 = disp_area->y1 + draw_area.y1; b028: eb0c 0306 add.w r3, ip, r6 lv_opa_t * mask_buf = _lv_mem_buf_get(draw_area_w); b02c: 4604 mov r4, r0 fill_area.y1 = disp_area->y1 + draw_area.y1; b02e: b21b sxth r3, r3 fill_area.x1 = area_outer.x1; b030: f9bd 0050 ldrsh.w r0, [sp, #80] ; 0x50 if(simple_mode) { b034: 2a00 cmp r2, #0 b036: f040 873f bne.w beb8 int32_t upper_corner_end = area_outer.y1 - disp_area->y1 + corner_size; b03a: f9bd 2052 ldrsh.w r2, [sp, #82] ; 0x52 b03e: 9d07 ldr r5, [sp, #28] fill_area.x1 = area_outer.x1; b040: f8ad 0060 strh.w r0, [sp, #96] ; 0x60 int32_t upper_corner_end = area_outer.y1 - disp_area->y1 + corner_size; b044: eba2 020c sub.w r2, r2, ip b048: 442a add r2, r5 b04a: 9208 str r2, [sp, #32] fill_area.x2 = area_outer.x2; b04c: f8ad 1064 strh.w r1, [sp, #100] ; 0x64 fill_area.y1 = disp_area->y1 + draw_area.y1; b050: f8ad 3062 strh.w r3, [sp, #98] ; 0x62 fill_area.y2 = fill_area.y1; b054: f8ad 3066 strh.w r3, [sp, #102] ; 0x66 for(h = draw_area.y1; h <= upper_corner_end; h++) { b058: 9b08 ldr r3, [sp, #32] b05a: 42b3 cmp r3, r6 b05c: f280 8624 bge.w bca8 int32_t lower_corner_end = area_outer.y2 - disp_area->y1 - corner_size; b060: 9b06 ldr r3, [sp, #24] b062: f9bd 6056 ldrsh.w r6, [sp, #86] ; 0x56 b066: f9b3 3012 ldrsh.w r3, [r3, #18] b06a: 9a07 ldr r2, [sp, #28] b06c: 1af6 subs r6, r6, r3 b06e: 1ab6 subs r6, r6, r2 if(lower_corner_end <= upper_corner_end) lower_corner_end = upper_corner_end + 1; b070: 9a08 ldr r2, [sp, #32] b072: 42b2 cmp r2, r6 b074: bfa4 itt ge b076: 4616 movge r6, r2 b078: 3601 addge r6, #1 fill_area.y1 = disp_area->y1 + lower_corner_end; b07a: 4433 add r3, r6 b07c: b21b sxth r3, r3 b07e: f8ad 3062 strh.w r3, [sp, #98] ; 0x62 fill_area.y2 = fill_area.y1; b082: f8ad 3066 strh.w r3, [sp, #102] ; 0x66 for(h = lower_corner_end; h <= draw_area.y2; h++) { b086: f9bd 305e ldrsh.w r3, [sp, #94] ; 0x5e b08a: 429e cmp r6, r3 b08c: f340 868d ble.w bdaa fill_area.y1 = area_outer.y1 + corner_size + 1; b090: f8bd 3052 ldrh.w r3, [sp, #82] ; 0x52 b094: 9a07 ldr r2, [sp, #28] _lv_blend_fill(clip, &fill_area, color, NULL, LV_DRAW_MASK_RES_FULL_COVER, opa, blend_mode); b096: 4d86 ldr r5, [pc, #536] ; (b2b0 ) fill_area.y1 = area_outer.y1 + corner_size + 1; b098: 3301 adds r3, #1 b09a: fa13 f382 uxtah r3, r3, r2 b09e: f8ad 3062 strh.w r3, [sp, #98] ; 0x62 fill_area.y2 = area_outer.y2 - corner_size - 1; b0a2: f8bd 3056 ldrh.w r3, [sp, #86] ; 0x56 b0a6: 3b01 subs r3, #1 b0a8: 1a9b subs r3, r3, r2 b0aa: f8ad 3066 strh.w r3, [sp, #102] ; 0x66 fill_area.x1 = area_outer.x1; b0ae: f9bd 3050 ldrsh.w r3, [sp, #80] ; 0x50 fill_area.x2 = area_outer.x1 + dsc->outline_width - 1; b0b2: f8ba 2018 ldrh.w r2, [sl, #24] fill_area.x1 = area_outer.x1; b0b6: f8ad 3060 strh.w r3, [sp, #96] ; 0x60 fill_area.x2 = area_outer.x1 + dsc->outline_width - 1; b0ba: 3b01 subs r3, #1 b0bc: 4413 add r3, r2 _lv_blend_fill(clip, &fill_area, color, NULL, LV_DRAW_MASK_RES_FULL_COVER, opa, blend_mode); b0be: 2601 movs r6, #1 fill_area.x2 = area_outer.x1 + dsc->outline_width - 1; b0c0: 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); b0c4: 9b05 ldr r3, [sp, #20] b0c6: 9301 str r3, [sp, #4] b0c8: 463a mov r2, r7 b0ca: 2300 movs r3, #0 b0cc: a918 add r1, sp, #96 ; 0x60 b0ce: 4640 mov r0, r8 b0d0: f8cd b008 str.w fp, [sp, #8] b0d4: 9600 str r6, [sp, #0] b0d6: 47a8 blx r5 fill_area.x1 = area_outer.x2 - dsc->outline_width + 1; b0d8: f9bd 2054 ldrsh.w r2, [sp, #84] ; 0x54 b0dc: f8ba 1018 ldrh.w r1, [sl, #24] fill_area.x2 = area_outer.x2; b0e0: f8ad 2064 strh.w r2, [sp, #100] ; 0x64 fill_area.x1 = area_outer.x2 - dsc->outline_width + 1; b0e4: 1993 adds r3, r2, r6 b0e6: 1a5b subs r3, r3, r1 b0e8: 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); b0ec: 9b05 ldr r3, [sp, #20] b0ee: f8cd b008 str.w fp, [sp, #8] b0f2: e9cd 6300 strd r6, r3, [sp] b0f6: 463a mov r2, r7 b0f8: 2300 movs r3, #0 b0fa: a918 add r1, sp, #96 ; 0x60 b0fc: 4640 mov r0, r8 b0fe: 47a8 blx r5 lv_draw_mask_remove_id(mask_rin_id); b100: 4d6c ldr r5, [pc, #432] ; (b2b4 ) b102: ee18 0a90 vmov r0, s17 b106: 47a8 blx r5 lv_draw_mask_remove_id(mask_rout_id); b108: ee19 0a10 vmov r0, s18 b10c: 47a8 blx r5 _lv_mem_buf_release(mask_buf); b10e: 4b6a ldr r3, [pc, #424] ; (b2b8 ) b110: 4620 mov r0, r4 b112: 4798 blx r3 } b114: b02d add sp, #180 ; 0xb4 b116: ecbd 8b04 vpop {d8-d9} b11a: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} _lv_memcpy(mask_buf, sh_buf_tmp, w); b11e: 4629 mov r1, r5 b120: 4b66 ldr r3, [pc, #408] ; (b2bc ) mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w); b122: 4c67 ldr r4, [pc, #412] ; (b2c0 ) _lv_memcpy(mask_buf, sh_buf_tmp, w); b124: 4632 mov r2, r6 b126: ee18 0a10 vmov r0, s16 b12a: 4798 blx r3 mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w); b12c: f9bd 207a ldrsh.w r2, [sp, #122] ; 0x7a b130: f9bd 1078 ldrsh.w r1, [sp, #120] ; 0x78 b134: 4633 mov r3, r6 b136: ee18 0a10 vmov r0, s16 b13a: 47a0 blx r4 _lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf, b13c: f89a 3029 ldrb.w r3, [sl, #41] ; 0x29 b140: 9302 str r3, [sp, #8] if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) mask_res = LV_DRAW_MASK_RES_CHANGED; b142: 2801 cmp r0, #1 _lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf, b144: 9b08 ldr r3, [sp, #32] b146: 4c5a ldr r4, [pc, #360] ; (b2b0 ) if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) mask_res = LV_DRAW_MASK_RES_CHANGED; b148: bf08 it eq b14a: 2002 moveq r0, #2 _lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf, b14c: e9cd 0300 strd r0, r3, [sp] b150: a91e add r1, sp, #120 ; 0x78 b152: ee18 3a10 vmov r3, s16 b156: f8ba 201e ldrh.w r2, [sl, #30] b15a: 4640 mov r0, r8 b15c: 47a0 blx r4 fa.y1++; b15e: f8bd 307a ldrh.w r3, [sp, #122] ; 0x7a b162: 3301 adds r3, #1 b164: f8ad 307a strh.w r3, [sp, #122] ; 0x7a fa.y2++; b168: f8bd 307e ldrh.w r3, [sp, #126] ; 0x7e b16c: 3301 adds r3, #1 b16e: b21b sxth r3, r3 sh_buf_tmp += corner_size; b170: 444d add r5, r9 for(y = 0; y < h; y++) { b172: 3701 adds r7, #1 b174: f7ff ba2e b.w a5d4 _lv_memcpy(mask_buf, sh_buf_tmp, w); b178: 4629 mov r1, r5 b17a: 4b50 ldr r3, [pc, #320] ; (b2bc ) mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w); b17c: 4c50 ldr r4, [pc, #320] ; (b2c0 ) _lv_memcpy(mask_buf, sh_buf_tmp, w); b17e: 4632 mov r2, r6 b180: ee18 0a10 vmov r0, s16 b184: 4798 blx r3 mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w); b186: f9bd 207a ldrsh.w r2, [sp, #122] ; 0x7a b18a: f9bd 1078 ldrsh.w r1, [sp, #120] ; 0x78 b18e: 4633 mov r3, r6 b190: ee18 0a10 vmov r0, s16 b194: 47a0 blx r4 _lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf, b196: f89a 3029 ldrb.w r3, [sl, #41] ; 0x29 b19a: 9302 str r3, [sp, #8] if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) mask_res = LV_DRAW_MASK_RES_CHANGED; b19c: 2801 cmp r0, #1 _lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf, b19e: 9b08 ldr r3, [sp, #32] b1a0: 4c43 ldr r4, [pc, #268] ; (b2b0 ) if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) mask_res = LV_DRAW_MASK_RES_CHANGED; b1a2: bf08 it eq b1a4: 2002 moveq r0, #2 _lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf, b1a6: e9cd 0300 strd r0, r3, [sp] b1aa: a91e add r1, sp, #120 ; 0x78 b1ac: ee18 3a10 vmov r3, s16 b1b0: f8ba 201e ldrh.w r2, [sl, #30] b1b4: 4640 mov r0, r8 b1b6: 47a0 blx r4 fa.y1--; b1b8: f8bd 307a ldrh.w r3, [sp, #122] ; 0x7a b1bc: 3b01 subs r3, #1 b1be: f8ad 307a strh.w r3, [sp, #122] ; 0x7a fa.y2--; b1c2: f8bd 307e ldrh.w r3, [sp, #126] ; 0x7e b1c6: 3b01 subs r3, #1 b1c8: f8ad 307e strh.w r3, [sp, #126] ; 0x7e sh_buf_tmp += corner_size; b1cc: 444d add r5, r9 for(y = 0; y < h; y++) { b1ce: 3701 adds r7, #1 b1d0: f7ff ba55 b.w a67e _lv_memcpy(mask_buf, sh_buf_tmp, w); b1d4: 4b39 ldr r3, [pc, #228] ; (b2bc ) b1d6: ee18 0a10 vmov r0, s16 b1da: 462a mov r2, r5 b1dc: 4631 mov r1, r6 b1de: 4798 blx r3 if(simple_mode) { b1e0: 9b07 ldr r3, [sp, #28] b1e2: b953 cbnz r3, b1fa mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w); b1e4: f9bd 207a ldrsh.w r2, [sp, #122] ; 0x7a b1e8: f9bd 1078 ldrsh.w r1, [sp, #120] ; 0x78 b1ec: 4c34 ldr r4, [pc, #208] ; (b2c0 ) b1ee: ee18 0a10 vmov r0, s16 b1f2: 462b mov r3, r5 b1f4: 47a0 blx r4 if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) mask_res = LV_DRAW_MASK_RES_CHANGED; b1f6: 2801 cmp r0, #1 b1f8: d100 bne.n b1fc b1fa: 2002 movs r0, #2 _lv_blend_fill(clip, &fa, b1fc: f89a 3029 ldrb.w r3, [sl, #41] ; 0x29 b200: 9302 str r3, [sp, #8] b202: f89a 3028 ldrb.w r3, [sl, #40] ; 0x28 b206: 4c2a ldr r4, [pc, #168] ; (b2b0 ) b208: e9cd 0300 strd r0, r3, [sp] b20c: a91e add r1, sp, #120 ; 0x78 b20e: ee18 3a10 vmov r3, s16 b212: f8ba 201e ldrh.w r2, [sl, #30] b216: 4640 mov r0, r8 b218: 47a0 blx r4 fa.y1++; b21a: f8bd 307a ldrh.w r3, [sp, #122] ; 0x7a b21e: 3301 adds r3, #1 b220: f8ad 307a strh.w r3, [sp, #122] ; 0x7a fa.y2++; b224: f8bd 307e ldrh.w r3, [sp, #126] ; 0x7e b228: 3301 adds r3, #1 b22a: b21b sxth r3, r3 for(y = 0; y < h; y++) { b22c: 3701 adds r7, #1 b22e: f7ff ba6f b.w a710 lv_opa_t opa_tmp = sh_buf_tmp[0]; b232: 7833 ldrb r3, [r6, #0] if(opa_tmp != LV_OPA_COVER || opa != LV_OPA_COVER) opa_tmp = (opa * opa_tmp) >> 8; b234: 9a08 ldr r2, [sp, #32] b236: ea02 0103 and.w r1, r2, r3 b23a: 29ff cmp r1, #255 ; 0xff b23c: bf1c itt ne b23e: fb12 f303 smulbbne r3, r2, r3 b242: f3c3 2107 ubfxne r1, r3, #8, #8 _lv_memset(mask_buf, opa_tmp, w); b246: ee18 0a10 vmov r0, s16 b24a: 4b1e ldr r3, [pc, #120] ; (b2c4 ) b24c: 462a mov r2, r5 b24e: 4798 blx r3 if(simple_mode) { b250: 9b07 ldr r3, [sp, #28] b252: b953 cbnz r3, b26a mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w); b254: f9bd 207a ldrsh.w r2, [sp, #122] ; 0x7a b258: f9bd 1078 ldrsh.w r1, [sp, #120] ; 0x78 b25c: 4c18 ldr r4, [pc, #96] ; (b2c0 ) b25e: ee18 0a10 vmov r0, s16 b262: 462b mov r3, r5 b264: 47a0 blx r4 if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) mask_res = LV_DRAW_MASK_RES_CHANGED; b266: 2801 cmp r0, #1 b268: d100 bne.n b26c b26a: 2002 movs r0, #2 _lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf, b26c: f89a 3029 ldrb.w r3, [sl, #41] ; 0x29 b270: 9302 str r3, [sp, #8] b272: 23ff movs r3, #255 ; 0xff b274: e9cd 0300 strd r0, r3, [sp] b278: 4c0d ldr r4, [pc, #52] ; (b2b0 ) b27a: f8ba 201e ldrh.w r2, [sl, #30] b27e: ee18 3a10 vmov r3, s16 b282: a91e add r1, sp, #120 ; 0x78 b284: 4640 mov r0, r8 b286: 47a0 blx r4 fa.y1++; b288: f8bd 307a ldrh.w r3, [sp, #122] ; 0x7a b28c: 3301 adds r3, #1 b28e: f8ad 307a strh.w r3, [sp, #122] ; 0x7a fa.y2++; b292: f8bd 307e ldrh.w r3, [sp, #126] ; 0x7e b296: 3301 adds r3, #1 b298: b21b sxth r3, r3 sh_buf_tmp += corner_size; b29a: 444e add r6, r9 for(y = 0; y < h; y++) { b29c: 3701 adds r7, #1 b29e: f7ff ba80 b.w a7a2 b2a2: bf00 nop b2a4: 00009b41 .word 0x00009b41 b2a8: 0000993d .word 0x0000993d b2ac: 0000f0ed .word 0x0000f0ed b2b0: 0000641d .word 0x0000641d b2b4: 000099cd .word 0x000099cd b2b8: 0000eda1 .word 0x0000eda1 b2bc: 0000ee69 .word 0x0000ee69 b2c0: 0000998d .word 0x0000998d b2c4: 0000f1f1 .word 0x0000f1f1 lv_opa_t opa_tmp = sh_buf_tmp[0]; b2c8: 7833 ldrb r3, [r6, #0] if(opa_tmp != LV_OPA_COVER || opa != LV_OPA_COVER) opa_tmp = (opa * opa_tmp) >> 8; b2ca: 9a08 ldr r2, [sp, #32] b2cc: ea02 0103 and.w r1, r2, r3 b2d0: 29ff cmp r1, #255 ; 0xff b2d2: bf1c itt ne b2d4: fb12 f303 smulbbne r3, r2, r3 b2d8: f3c3 2107 ubfxne r1, r3, #8, #8 _lv_memset(mask_buf, opa_tmp, w); b2dc: ee18 0a10 vmov r0, s16 b2e0: 4bb5 ldr r3, [pc, #724] ; (b5b8 ) b2e2: 462a mov r2, r5 b2e4: 4798 blx r3 if(simple_mode) { b2e6: 9b07 ldr r3, [sp, #28] b2e8: b953 cbnz r3, b300 mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w); b2ea: f9bd 207a ldrsh.w r2, [sp, #122] ; 0x7a b2ee: f9bd 1078 ldrsh.w r1, [sp, #120] ; 0x78 b2f2: 4cb2 ldr r4, [pc, #712] ; (b5bc ) b2f4: ee18 0a10 vmov r0, s16 b2f8: 462b mov r3, r5 b2fa: 47a0 blx r4 if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) mask_res = LV_DRAW_MASK_RES_CHANGED; b2fc: 2801 cmp r0, #1 b2fe: d100 bne.n b302 b300: 2002 movs r0, #2 _lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf, b302: f89a 3029 ldrb.w r3, [sl, #41] ; 0x29 b306: 9302 str r3, [sp, #8] b308: 23ff movs r3, #255 ; 0xff b30a: e9cd 0300 strd r0, r3, [sp] b30e: 4cac ldr r4, [pc, #688] ; (b5c0 ) b310: f8ba 201e ldrh.w r2, [sl, #30] b314: ee18 3a10 vmov r3, s16 b318: a91e add r1, sp, #120 ; 0x78 b31a: 4640 mov r0, r8 b31c: 47a0 blx r4 fa.y1--; b31e: f8bd 307a ldrh.w r3, [sp, #122] ; 0x7a b322: 3b01 subs r3, #1 b324: f8ad 307a strh.w r3, [sp, #122] ; 0x7a fa.y2--; b328: f8bd 307e ldrh.w r3, [sp, #126] ; 0x7e b32c: 3b01 subs r3, #1 b32e: f8ad 307e strh.w r3, [sp, #126] ; 0x7e sh_buf_tmp += corner_size; b332: 444e add r6, r9 for(y = 0; y < h; y++) { b334: 3701 adds r7, #1 b336: f7ff ba81 b.w a83c _lv_memset(mask_buf, dsc->shadow_opa, w); b33a: f89a 1028 ldrb.w r1, [sl, #40] ; 0x28 mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w); b33e: 4c9f ldr r4, [pc, #636] ; (b5bc ) _lv_memset(mask_buf, dsc->shadow_opa, w); b340: ee18 0a10 vmov r0, s16 b344: 4632 mov r2, r6 b346: 47c8 blx r9 mask_res = lv_draw_mask_apply(mask_buf, fa.x1, fa.y1, w); b348: f9bd 207a ldrsh.w r2, [sp, #122] ; 0x7a b34c: f9bd 1078 ldrsh.w r1, [sp, #120] ; 0x78 b350: 4633 mov r3, r6 b352: ee18 0a10 vmov r0, s16 b356: 47a0 blx r4 _lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf, b358: f89a 3029 ldrb.w r3, [sl, #41] ; 0x29 b35c: 9302 str r3, [sp, #8] if(mask_res == LV_DRAW_MASK_RES_FULL_COVER) mask_res = LV_DRAW_MASK_RES_CHANGED; b35e: 2801 cmp r0, #1 b360: bf08 it eq b362: 2002 moveq r0, #2 _lv_blend_fill(clip, &fa, dsc->shadow_color, mask_buf, b364: 23ff movs r3, #255 ; 0xff b366: e9cd 0300 strd r0, r3, [sp] b36a: 4c95 ldr r4, [pc, #596] ; (b5c0 ) b36c: f8ba 201e ldrh.w r2, [sl, #30] b370: ee18 3a10 vmov r3, s16 b374: a91e add r1, sp, #120 ; 0x78 b376: 4640 mov r0, r8 b378: 47a0 blx r4 fa.y1++; b37a: f8bd 307a ldrh.w r3, [sp, #122] ; 0x7a b37e: 3301 adds r3, #1 b380: f8ad 307a strh.w r3, [sp, #122] ; 0x7a fa.y2++; b384: f8bd 307e ldrh.w r3, [sp, #126] ; 0x7e b388: 3301 adds r3, #1 b38a: b21b sxth r3, r3 for(y = 0; y < h; y++) { b38c: 3501 adds r5, #1 b38e: f7ff ba93 b.w a8b8 if(other_mask_cnt) simple_mode = false; b392: 2300 movs r3, #0 b394: f7ff bb13 b.w a9be if(rout > 0) { b398: 2c00 cmp r4, #0 b39a: f340 80b0 ble.w b4fe lv_draw_mask_radius_init(&mask_rout_param, &coords_bg, rout, false); b39e: 2300 movs r3, #0 b3a0: 4622 mov r2, r4 b3a2: a916 add r1, sp, #88 ; 0x58 b3a4: a825 add r0, sp, #148 ; 0x94 b3a6: 4f87 ldr r7, [pc, #540] ; (b5c4 ) b3a8: 47b8 blx r7 mask_rout_id = lv_draw_mask_add(&mask_rout_param, NULL); b3aa: 4b87 ldr r3, [pc, #540] ; (b5c8 ) b3ac: 2100 movs r1, #0 b3ae: a825 add r0, sp, #148 ; 0x94 b3b0: 4798 blx r3 b3b2: 900b str r0, [sp, #44] ; 0x2c lv_color_t grad_color = dsc->bg_color; b3b4: f8ba 3002 ldrh.w r3, [sl, #2] b3b8: ee08 3a10 vmov s16, r3 if(dsc->bg_grad_dir == LV_GRAD_DIR_HOR && dsc->bg_color.full != dsc->bg_grad_color.full) { b3bc: f89a 3006 ldrb.w r3, [sl, #6] b3c0: 2b02 cmp r3, #2 b3c2: f040 80a9 bne.w b518 b3c6: f8ba 2004 ldrh.w r2, [sl, #4] b3ca: f8ba 3002 ldrh.w r3, [sl, #2] b3ce: 429a cmp r2, r3 b3d0: f000 80a2 beq.w b518 grad_map = _lv_mem_buf_get(coords_w * sizeof(lv_color_t)); b3d4: 4b7d ldr r3, [pc, #500] ; (b5cc ) b3d6: 0070 lsls r0, r6, #1 b3d8: 4798 blx r3 for(i = 0; i < coords_w; i++) { b3da: 2700 movs r7, #0 grad_map = _lv_mem_buf_get(coords_w * sizeof(lv_color_t)); b3dc: 9006 str r0, [sp, #24] for(i = 0; i < coords_w; i++) { b3de: 42be cmp r6, r7 b3e0: 4b7b ldr r3, [pc, #492] ; (b5d0 ) b3e2: f300 8090 bgt.w b506 b3e6: f9bd 205c ldrsh.w r2, [sp, #92] ; 0x5c b3ea: f9bd 1058 ldrsh.w r1, [sp, #88] ; 0x58 fill_area.x2 = coords_bg.x2; b3ee: f8ad 206c strh.w r2, [sp, #108] ; 0x6c b3f2: 1c53 adds r3, r2, #1 b3f4: 1a5b subs r3, r3, r1 if(lv_area_get_width(&coords_bg) - 2 * rout > SPLIT_LIMIT) split = true; b3f6: b21b sxth r3, r3 b3f8: eba3 0344 sub.w r3, r3, r4, lsl #1 b3fc: 930a str r3, [sp, #40] ; 0x28 fill_area.y1 = disp_area->y1 + draw_area.y1; b3fe: 9b05 ldr r3, [sp, #20] b400: f9bd 2062 ldrsh.w r2, [sp, #98] ; 0x62 b404: 8a5b ldrh r3, [r3, #18] fill_area.x1 = coords_bg.x1; b406: f8ad 1068 strh.w r1, [sp, #104] ; 0x68 fill_area.y1 = disp_area->y1 + draw_area.y1; b40a: 4413 add r3, r2 b40c: b21b sxth r3, r3 b40e: f8ad 306a strh.w r3, [sp, #106] ; 0x6a for(h = draw_area.y1; h <= draw_area.y2; h++) { b412: 9207 str r2, [sp, #28] b414: 9a07 ldr r2, [sp, #28] fill_area.y2 = fill_area.y1; b416: f8ad 306e strh.w r3, [sp, #110] ; 0x6e for(h = draw_area.y1; h <= draw_area.y2; h++) { b41a: f9bd 3066 ldrsh.w r3, [sp, #102] ; 0x66 b41e: 429a cmp r2, r3 b420: dd7d ble.n b51e if(dsc->bg_grad_dir == LV_GRAD_DIR_NONE && other_mask_cnt == 0 && split) { b422: f89a 3006 ldrb.w r3, [sl, #6] b426: 9a0c ldr r2, [sp, #48] ; 0x30 b428: 431a orrs r2, r3 b42a: f012 03ff ands.w r3, r2, #255 ; 0xff b42e: d15d bne.n b4ec b430: 9a0a ldr r2, [sp, #40] ; 0x28 b432: 2a32 cmp r2, #50 ; 0x32 b434: dd5a ble.n b4ec fill_area.x1 = coords_bg.x1 + rout; b436: f8bd 2058 ldrh.w r2, [sp, #88] ; 0x58 b43a: fa12 f284 uxtah r2, r2, r4 b43e: f8ad 2068 strh.w r2, [sp, #104] ; 0x68 fill_area.x2 = coords_bg.x2 - rout; b442: f8bd 205c ldrh.w r2, [sp, #92] ; 0x5c fill_area.x1 = coords_bg.x1 + rout; b446: b2a6 uxth r6, r4 fill_area.x2 = coords_bg.x2 - rout; b448: 1b92 subs r2, r2, r6 b44a: f8ad 206c strh.w r2, [sp, #108] ; 0x6c fill_area.y1 = coords_bg.y1; b44e: f9bd 205a ldrsh.w r2, [sp, #90] ; 0x5a b452: f8ad 206a strh.w r2, [sp, #106] ; 0x6a fill_area.y2 = coords_bg.y1 + rout; b456: 4432 add r2, r6 b458: f8ad 206e strh.w r2, [sp, #110] ; 0x6e _lv_blend_fill(clip, &fill_area, b45c: f89a 200d ldrb.w r2, [sl, #13] b460: 4c57 ldr r4, [pc, #348] ; (b5c0 ) b462: e9cd 9201 strd r9, r2, [sp, #4] b466: 2201 movs r2, #1 b468: 9200 str r2, [sp, #0] b46a: f8ba 2002 ldrh.w r2, [sl, #2] b46e: a91a add r1, sp, #104 ; 0x68 b470: 4640 mov r0, r8 b472: 47a0 blx r4 fill_area.y1 = coords_bg.y2 - rout; b474: 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*/ b478: f9bd 306e ldrsh.w r3, [sp, #110] ; 0x6e _lv_blend_fill(clip, &fill_area, b47c: 4c50 ldr r4, [pc, #320] ; (b5c0 ) fill_area.y2 = coords_bg.y2; b47e: f8ad 106e strh.w r1, [sp, #110] ; 0x6e fill_area.y1 = coords_bg.y2 - rout; b482: 1b8a subs r2, r1, r6 b484: b212 sxth r2, r2 if(fill_area.y1 <= fill_area.y2) fill_area.y1 = fill_area.y2 + 1; /*Avoid overdrawing the last line*/ b486: 429a cmp r2, r3 b488: bfd8 it le b48a: 3301 addle r3, #1 fill_area.y1 = coords_bg.y2 - rout; b48c: 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*/ b490: bfd8 it le b492: f8ad 306a strhle.w r3, [sp, #106] ; 0x6a _lv_blend_fill(clip, &fill_area, b496: f89a 300d ldrb.w r3, [sl, #13] b49a: e9cd 9301 strd r9, r3, [sp, #4] b49e: 2701 movs r7, #1 b4a0: 9700 str r7, [sp, #0] b4a2: f8ba 2002 ldrh.w r2, [sl, #2] b4a6: 2300 movs r3, #0 b4a8: a91a add r1, sp, #104 ; 0x68 b4aa: 4640 mov r0, r8 b4ac: 47a0 blx r4 fill_area.x1 = coords_bg.x1; b4ae: f8bd 3058 ldrh.w r3, [sp, #88] ; 0x58 b4b2: f8ad 3068 strh.w r3, [sp, #104] ; 0x68 fill_area.x2 = coords_bg.x2; b4b6: f8bd 305c ldrh.w r3, [sp, #92] ; 0x5c b4ba: f8ad 306c strh.w r3, [sp, #108] ; 0x6c fill_area.y1 = coords_bg.y1 + rout + 1; b4be: f8bd 305a ldrh.w r3, [sp, #90] ; 0x5a b4c2: 443b add r3, r7 b4c4: 4433 add r3, r6 b4c6: f8ad 306a strh.w r3, [sp, #106] ; 0x6a fill_area.y2 = coords_bg.y2 - rout - 1; b4ca: f8bd 305e ldrh.w r3, [sp, #94] ; 0x5e b4ce: 3b01 subs r3, #1 b4d0: 1b9b subs r3, r3, r6 b4d2: f8ad 306e strh.w r3, [sp, #110] ; 0x6e _lv_blend_fill(clip, &fill_area, b4d6: f89a 300d ldrb.w r3, [sl, #13] b4da: 9700 str r7, [sp, #0] b4dc: e9cd 9301 strd r9, r3, [sp, #4] b4e0: a91a add r1, sp, #104 ; 0x68 b4e2: f8ba 2002 ldrh.w r2, [sl, #2] b4e6: 2300 movs r3, #0 b4e8: 4640 mov r0, r8 b4ea: 47a0 blx r4 if(grad_map) _lv_mem_buf_release(grad_map); b4ec: 9b06 ldr r3, [sp, #24] b4ee: 2b00 cmp r3, #0 b4f0: f43f aa98 beq.w aa24 b4f4: 4618 mov r0, r3 b4f6: 4b37 ldr r3, [pc, #220] ; (b5d4 ) b4f8: 4798 blx r3 b4fa: f7ff ba93 b.w aa24 int16_t mask_rout_id = LV_MASK_ID_INV; b4fe: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff b502: 930b str r3, [sp, #44] ; 0x2c b504: e756 b.n b3b4 grad_map[i] = grad_get(dsc, coords_w, i); b506: b23a sxth r2, r7 b508: 4631 mov r1, r6 b50a: 4650 mov r0, sl b50c: 4798 blx r3 b50e: 9b06 ldr r3, [sp, #24] b510: f823 0017 strh.w r0, [r3, r7, lsl #1] for(i = 0; i < coords_w; i++) { b514: 3701 adds r7, #1 b516: e762 b.n b3de lv_color_t * grad_map = NULL; b518: 2300 movs r3, #0 b51a: 9306 str r3, [sp, #24] b51c: e763 b.n b3e6 int32_t y = h + vdb->area.y1; b51e: 9b05 ldr r3, [sp, #20] b520: f9b3 7012 ldrsh.w r7, [r3, #18] b524: 9b07 ldr r3, [sp, #28] b526: 441f add r7, r3 if(y > coords_bg.y1 + rout + 1 && b528: f9bd 305a ldrsh.w r3, [sp, #90] ; 0x5a b52c: 4423 add r3, r4 b52e: 3301 adds r3, #1 b530: 429f cmp r7, r3 b532: dd08 ble.n b546 y < coords_bg.y2 - rout - 1) { b534: f9bd 305e ldrsh.w r3, [sp, #94] ; 0x5e b538: 1b1b subs r3, r3, r4 b53a: 3b01 subs r3, #1 if(y > coords_bg.y1 + rout + 1 && b53c: 429f cmp r7, r3 b53e: da02 bge.n b546 if(simple_mode == false) { b540: 9b08 ldr r3, [sp, #32] b542: 2b00 cmp r3, #0 b544: d136 bne.n b5b4 _lv_memset_ff(mask_buf, draw_area_w); b546: ee18 1a90 vmov r1, s17 b54a: 4b23 ldr r3, [pc, #140] ; (b5d8 ) mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w); b54c: 4e1b ldr r6, [pc, #108] ; (b5bc ) _lv_memset_ff(mask_buf, draw_area_w); b54e: 4628 mov r0, r5 b550: 4798 blx r3 mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w); b552: 9b05 ldr r3, [sp, #20] b554: 8a5a ldrh r2, [r3, #18] b556: 9b07 ldr r3, [sp, #28] b558: 441a add r2, r3 b55a: 9b05 ldr r3, [sp, #20] b55c: 8a19 ldrh r1, [r3, #16] b55e: f8bd 3060 ldrh.w r3, [sp, #96] ; 0x60 b562: 4419 add r1, r3 b564: b212 sxth r2, r2 b566: ee18 3a90 vmov r3, s17 b56a: b209 sxth r1, r1 b56c: 4628 mov r0, r5 b56e: 47b0 blx r6 b570: 4606 mov r6, r0 if(dsc->bg_grad_dir == LV_GRAD_DIR_VER && dsc->bg_color.full != dsc->bg_grad_color.full) { b572: f89a 3006 ldrb.w r3, [sl, #6] b576: 9309 str r3, [sp, #36] ; 0x24 b578: 2b01 cmp r3, #1 b57a: d12f bne.n b5dc b57c: f8ba 2002 ldrh.w r2, [sl, #2] b580: f8ba 3004 ldrh.w r3, [sl, #4] b584: 429a cmp r2, r3 b586: d00d beq.n b5a4 return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); b588: f8bd 105e ldrh.w r1, [sp, #94] ; 0x5e b58c: f8bd 305a ldrh.w r3, [sp, #90] ; 0x5a b590: 3101 adds r1, #1 grad_color = grad_get(dsc, lv_area_get_height(&coords_bg), y - coords_bg.y1); b592: 1afa subs r2, r7, r3 b594: 1ac9 subs r1, r1, r3 b596: b212 sxth r2, r2 b598: 4b0d ldr r3, [pc, #52] ; (b5d0 ) b59a: b209 sxth r1, r1 b59c: 4650 mov r0, sl b59e: 4798 blx r3 b5a0: ee08 0a10 vmov s16, r0 if(simple_mode && split && b5a4: 9b08 ldr r3, [sp, #32] b5a6: 2b00 cmp r3, #0 b5a8: f000 80a3 beq.w b6f2 b5ac: 9b0a ldr r3, [sp, #40] ; 0x28 b5ae: 2b32 cmp r3, #50 ; 0x32 b5b0: dc1c bgt.n b5ec b5b2: e09e b.n b6f2 mask_res = LV_DRAW_MASK_RES_FULL_COVER; b5b4: 2601 movs r6, #1 b5b6: e7dc b.n b572 b5b8: 0000f1f1 .word 0x0000f1f1 b5bc: 0000998d .word 0x0000998d b5c0: 0000641d .word 0x0000641d b5c4: 00009b41 .word 0x00009b41 b5c8: 0000993d .word 0x0000993d b5cc: 0000f0ed .word 0x0000f0ed b5d0: 00009b9d .word 0x00009b9d b5d4: 0000eda1 .word 0x0000eda1 b5d8: 0000f2ad .word 0x0000f2ad if(simple_mode && split && b5dc: 9b08 ldr r3, [sp, #32] b5de: 2b00 cmp r3, #0 b5e0: f000 84a2 beq.w bf28 b5e4: 9b0a ldr r3, [sp, #40] ; 0x28 b5e6: 2b32 cmp r3, #50 ; 0x32 b5e8: f340 849e ble.w bf28 (y < coords_bg.y1 + rout + 1 || b5ec: f9bd 305a ldrsh.w r3, [sp, #90] ; 0x5a b5f0: 4423 add r3, r4 if(simple_mode && split && b5f2: 429f cmp r7, r3 b5f4: dd04 ble.n b600 y > coords_bg.y2 - rout - 1)) { b5f6: f9bd 305e ldrsh.w r3, [sp, #94] ; 0x5e b5fa: 1b1b subs r3, r3, r4 (y < coords_bg.y1 + rout + 1 || b5fc: 429f cmp r7, r3 b5fe: db5a blt.n b6b6 fill_area2.x1 = coords_bg.x1; b600: f9bd 3058 ldrsh.w r3, [sp, #88] ; 0x58 b604: f8ad 3078 strh.w r3, [sp, #120] ; 0x78 fill_area2.x2 = coords_bg.x1 + rout - 1; b608: 3b01 subs r3, #1 b60a: fa13 f384 uxtah r3, r3, r4 b60e: f8ad 307c strh.w r3, [sp, #124] ; 0x7c fill_area2.y1 = fill_area.y1; b612: f8bd 306a ldrh.w r3, [sp, #106] ; 0x6a b616: f8ad 307a strh.w r3, [sp, #122] ; 0x7a fill_area2.y2 = fill_area.y2; b61a: f8bd 306e ldrh.w r3, [sp, #110] ; 0x6e b61e: f8ad 307e strh.w r3, [sp, #126] ; 0x7e _lv_blend_fill(clip, &fill_area2, b622: f89a 300d ldrb.w r3, [sl, #13] b626: 4f9e ldr r7, [pc, #632] ; (b8a0 ) b628: 9600 str r6, [sp, #0] fill_area2.x2 = coords_bg.x1 + rout - 1; b62a: b2a2 uxth r2, r4 _lv_blend_fill(clip, &fill_area2, b62c: e9cd 9301 strd r9, r3, [sp, #4] fill_area2.x2 = coords_bg.x1 + rout - 1; b630: 9209 str r2, [sp, #36] ; 0x24 _lv_blend_fill(clip, &fill_area2, b632: 462b mov r3, r5 b634: ee18 2a10 vmov r2, s16 b638: a91e add r1, sp, #120 ; 0x78 b63a: 4640 mov r0, r8 b63c: 47b8 blx r7 if(dsc->bg_grad_dir == LV_GRAD_DIR_VER) { b63e: f89a 2006 ldrb.w r2, [sl, #6] b642: 2a01 cmp r2, #1 b644: d115 bne.n b672 fill_area2.x1 = coords_bg.x1 + rout; b646: 9909 ldr r1, [sp, #36] ; 0x24 b648: f8bd 3058 ldrh.w r3, [sp, #88] ; 0x58 b64c: 440b add r3, r1 b64e: f8ad 3078 strh.w r3, [sp, #120] ; 0x78 fill_area2.x2 = coords_bg.x2 - rout; b652: f8bd 305c ldrh.w r3, [sp, #92] ; 0x5c b656: 1a5b subs r3, r3, r1 b658: f8ad 307c strh.w r3, [sp, #124] ; 0x7c _lv_blend_fill(clip, &fill_area2, b65c: f89a 300d ldrb.w r3, [sl, #13] b660: 9200 str r2, [sp, #0] b662: e9cd 9301 strd r9, r3, [sp, #4] b666: ee18 2a10 vmov r2, s16 b66a: 2300 movs r3, #0 b66c: a91e add r1, sp, #120 ; 0x78 b66e: 4640 mov r0, r8 b670: 47b8 blx r7 fill_area2.x1 = coords_bg.x2 - rout + 1; b672: f9bd 305c ldrsh.w r3, [sp, #92] ; 0x5c b676: 9909 ldr r1, [sp, #36] ; 0x24 fill_area2.x2 = coords_bg.x2; b678: f8ad 307c strh.w r3, [sp, #124] ; 0x7c fill_area2.x1 = coords_bg.x2 - rout + 1; b67c: 1c5a adds r2, r3, #1 b67e: 1a52 subs r2, r2, r1 b680: f8ad 2078 strh.w r2, [sp, #120] ; 0x78 int32_t mask_ofs = (coords_bg.x2 - rout + 1) - (vdb->area.x1 + draw_area.x1); b684: 9a05 ldr r2, [sp, #20] b686: f9bd 1060 ldrsh.w r1, [sp, #96] ; 0x60 b68a: f9b2 2010 ldrsh.w r2, [r2, #16] b68e: 1b1b subs r3, r3, r4 b690: 440a add r2, r1 b692: 3301 adds r3, #1 b694: 1a9b subs r3, r3, r2 _lv_blend_fill(clip, &fill_area2, b696: f89a 200d ldrb.w r2, [sl, #13] b69a: 9600 str r6, [sp, #0] b69c: e9cd 9201 strd r9, r2, [sp, #4] b6a0: ee18 2a10 vmov r2, s16 b6a4: 2b00 cmp r3, #0 b6a6: bfac ite ge b6a8: 18eb addge r3, r5, r3 b6aa: 1c2b addlt r3, r5, #0 b6ac: a91e add r1, sp, #120 ; 0x78 _lv_blend_fill(clip, &fill_area, b6ae: 4e7c ldr r6, [pc, #496] ; (b8a0 ) b6b0: 4640 mov r0, r8 b6b2: 47b0 blx r6 b6b4: e00d b.n b6d2 if(dsc->bg_grad_dir == LV_GRAD_DIR_HOR) { b6b6: 9b09 ldr r3, [sp, #36] ; 0x24 b6b8: 2b02 cmp r3, #2 b6ba: d116 bne.n b6ea _lv_blend_map(clip, &fill_area, grad_map, mask_buf, mask_res, opa, dsc->bg_blend_mode); b6bc: f89a 300d ldrb.w r3, [sl, #13] b6c0: 9a06 ldr r2, [sp, #24] b6c2: 9600 str r6, [sp, #0] b6c4: e9cd 9301 strd r9, r3, [sp, #4] b6c8: 4e76 ldr r6, [pc, #472] ; (b8a4 ) b6ca: 462b mov r3, r5 b6cc: a91a add r1, sp, #104 ; 0x68 b6ce: 4640 mov r0, r8 b6d0: 47b0 blx r6 fill_area.y1++; b6d2: f8bd 306a ldrh.w r3, [sp, #106] ; 0x6a for(h = draw_area.y1; h <= draw_area.y2; h++) { b6d6: 9a07 ldr r2, [sp, #28] fill_area.y1++; b6d8: 3301 adds r3, #1 b6da: f8ad 306a strh.w r3, [sp, #106] ; 0x6a fill_area.y2++; b6de: f8bd 306e ldrh.w r3, [sp, #110] ; 0x6e b6e2: 3301 adds r3, #1 b6e4: b21b sxth r3, r3 for(h = draw_area.y1; h <= draw_area.y2; h++) { b6e6: 3201 adds r2, #1 b6e8: e693 b.n b412 else if(dsc->bg_grad_dir == LV_GRAD_DIR_VER) { b6ea: 9b09 ldr r3, [sp, #36] ; 0x24 b6ec: 2b01 cmp r3, #1 b6ee: f040 841f bne.w bf30 _lv_blend_fill(clip, &fill_area, b6f2: f89a 300d ldrb.w r3, [sl, #13] b6f6: 9600 str r6, [sp, #0] b6f8: e9cd 9301 strd r9, r3, [sp, #4] b6fc: ee18 2a10 vmov r2, s16 b700: 462b mov r3, r5 b702: a91a add r1, sp, #104 ; 0x68 b704: e7d3 b.n b6ae img_h = header.h; b706: f8bd 3096 ldrh.w r3, [sp, #150] ; 0x96 img_w = header.w; b70a: 9d25 ldr r5, [sp, #148] ; 0x94 img_h = header.h; b70c: f3c3 174a ubfx r7, r3, #5, #11 lv_draw_img_dsc_init(&img_dsc); b710: a81a add r0, sp, #104 ; 0x68 b712: 4b65 ldr r3, [pc, #404] ; (b8a8 ) b714: 4798 blx r3 img_dsc.opa = dsc->pattern_opa; b716: f89a 3036 ldrb.w r3, [sl, #54] ; 0x36 b71a: f88d 3068 strb.w r3, [sp, #104] ; 0x68 img_dsc.recolor_opa = dsc->pattern_recolor_opa; b71e: f89a 3037 ldrb.w r3, [sl, #55] ; 0x37 b722: f88d 3072 strb.w r3, [sp, #114] ; 0x72 img_dsc.recolor = dsc->pattern_recolor; b726: f8ba 3034 ldrh.w r3, [sl, #52] ; 0x34 b72a: f8ad 3074 strh.w r3, [sp, #116] ; 0x74 img_w = header.w; b72e: f3c5 258a ubfx r5, r5, #10, #11 coords_tmp.y2 = coords_tmp.y1 + img_h - 1; b732: b2bb uxth r3, r7 b734: f103 39ff add.w r9, r3, #4294967295 ; 0xffffffff b738: 9305 str r3, [sp, #20] if(dsc->pattern_repeat) { b73a: f89a 3038 ldrb.w r3, [sl, #56] ; 0x38 lv_draw_mask_radius_init(&radius_mask_param, coords, dsc->radius, false); b73e: f9ba 2000 ldrsh.w r2, [sl] if(dsc->pattern_repeat) { b742: 07db lsls r3, r3, #31 b744: fa1f f989 uxth.w r9, r9 b748: f140 80c6 bpl.w b8d8 lv_draw_mask_radius_init(&radius_mask_param, coords, dsc->radius, false); b74c: 4c57 ldr r4, [pc, #348] ; (b8ac ) b74e: 2300 movs r3, #0 b750: 4659 mov r1, fp b752: a825 add r0, sp, #148 ; 0x94 b754: 47a0 blx r4 int16_t radius_mask_id = lv_draw_mask_add(&radius_mask_param, NULL); b756: 4b56 ldr r3, [pc, #344] ; (b8b0 ) b758: 2100 movs r1, #0 b75a: a825 add r0, sp, #148 ; 0x94 b75c: 4798 blx r3 return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); b75e: f8bb 4004 ldrh.w r4, [fp, #4] b762: f8bb 3000 ldrh.w r3, [fp] return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); b766: f8bb 2006 ldrh.w r2, [fp, #6] return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); b76a: 3401 adds r4, #1 b76c: 1ae4 subs r4, r4, r3 int32_t ofs_x = (lv_area_get_width(coords) - (lv_area_get_width(coords) / img_w) * img_w) / 2; b76e: b224 sxth r4, r4 b770: fb94 f3f5 sdiv r3, r4, r5 b774: fb05 4413 mls r4, r5, r3, r4 return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); b778: f8bb 3002 ldrh.w r3, [fp, #2] b77c: 3201 adds r2, #1 b77e: 1ad2 subs r2, r2, r3 int32_t ofs_y = (lv_area_get_height(coords) - (lv_area_get_height(coords) / img_h) * img_h) / 2; b780: b212 sxth r2, r2 b782: fb92 f1f7 sdiv r1, r2, r7 b786: fb07 2211 mls r2, r7, r1, r2 b78a: eb02 72d2 add.w r2, r2, r2, lsr #31 coords_tmp.y1 = coords->y1 - ofs_y; b78e: eba3 0362 sub.w r3, r3, r2, asr #1 b792: b29b uxth r3, r3 int32_t ofs_x = (lv_area_get_width(coords) - (lv_area_get_width(coords) / img_w) * img_w) / 2; b794: eb04 74d4 add.w r4, r4, r4, lsr #31 int16_t radius_mask_id = lv_draw_mask_add(&radius_mask_param, NULL); b798: ee08 0a10 vmov s16, r0 coords_tmp.y1 = coords->y1 - ofs_y; b79c: 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; b7a0: 1064 asrs r4, r4, #1 coords_tmp.y2 = coords_tmp.y1 + img_h - 1; b7a2: 444b add r3, r9 for(; coords_tmp.y1 <= coords->y2; coords_tmp.y1 += img_h, coords_tmp.y2 += img_h) { b7a4: b21b sxth r3, r3 b7a6: f9bd 2062 ldrsh.w r2, [sp, #98] ; 0x62 coords_tmp.y2 = coords_tmp.y1 + img_h - 1; b7aa: f8ad 3066 strh.w r3, [sp, #102] ; 0x66 for(; coords_tmp.y1 <= coords->y2; coords_tmp.y1 += img_h, coords_tmp.y2 += img_h) { b7ae: f9bb 3006 ldrsh.w r3, [fp, #6] b7b2: 429a cmp r2, r3 b7b4: dd3a ble.n b82c lv_draw_mask_remove_id(radius_mask_id); b7b6: ee18 0a10 vmov r0, s16 lv_draw_mask_remove_id(radius_mask_id); b7ba: 4b3e ldr r3, [pc, #248] ; (b8b4 ) b7bc: 4798 blx r3 b7be: f7ff b955 b.w aa6c else if(src_type == LV_IMG_SRC_SYMBOL) { b7c2: 2802 cmp r0, #2 b7c4: d121 bne.n b80a lv_draw_label_dsc_init(&label_dsc); b7c6: 4b3c ldr r3, [pc, #240] ; (b8b8 ) _lv_txt_get_size(&s, dsc->pattern_image, label_dsc.font, label_dsc.letter_space, label_dsc.line_space, LV_COORD_MAX, b7c8: 4c3c ldr r4, [pc, #240] ; (b8bc ) lv_draw_label_dsc_init(&label_dsc); b7ca: a81e add r0, sp, #120 ; 0x78 b7cc: 4798 blx r3 label_dsc.color = dsc->pattern_recolor; b7ce: f8ba 3034 ldrh.w r3, [sl, #52] ; 0x34 b7d2: f8ad 3078 strh.w r3, [sp, #120] ; 0x78 label_dsc.opa = dsc->pattern_opa; b7d6: f89a 3036 ldrb.w r3, [sl, #54] ; 0x36 b7da: 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, b7de: 2100 movs r1, #0 b7e0: f647 4318 movw r3, #31768 ; 0x7c18 label_dsc.font = dsc->pattern_font; b7e4: f8da 2030 ldr.w r2, [sl, #48] ; 0x30 b7e8: 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, b7ea: e9cd 3101 strd r3, r1, [sp, #4] b7ee: f9bd 3082 ldrsh.w r3, [sp, #130] ; 0x82 b7f2: 9300 str r3, [sp, #0] b7f4: f8da 102c ldr.w r1, [sl, #44] ; 0x2c b7f8: f9bd 3084 ldrsh.w r3, [sp, #132] ; 0x84 b7fc: a825 add r0, sp, #148 ; 0x94 b7fe: 47a0 blx r4 img_w = s.x; b800: f9bd 5094 ldrsh.w r5, [sp, #148] ; 0x94 img_h = s.y; b804: f9bd 7096 ldrsh.w r7, [sp, #150] ; 0x96 b808: e793 b.n b732 LV_LOG_WARN("lv_img_design: image source type is unknown"); b80a: 4b2d ldr r3, [pc, #180] ; (b8c0 ) b80c: 9300 str r3, [sp, #0] b80e: 492d ldr r1, [pc, #180] ; (b8c4 ) b810: 4b2d ldr r3, [pc, #180] ; (b8c8 ) b812: 4c2e ldr r4, [pc, #184] ; (b8cc ) b814: f240 52ae movw r2, #1454 ; 0x5ae b818: 2002 movs r0, #2 b81a: 47a0 blx r4 lv_draw_img(coords, clip, NULL, NULL); b81c: 2300 movs r3, #0 b81e: 4c2c ldr r4, [pc, #176] ; (b8d0 ) b820: 461a mov r2, r3 b822: 4641 mov r1, r8 b824: 4658 mov r0, fp b826: 47a0 blx r4 return; b828: f7ff b920 b.w aa6c coords_tmp.x1 = coords->x1 - ofs_x; b82c: f8bb 3000 ldrh.w r3, [fp] coords_tmp.x2 = coords_tmp.x1 + img_w - 1; b830: fa1f f985 uxth.w r9, r5 coords_tmp.x1 = coords->x1 - ofs_x; b834: 1b1b subs r3, r3, r4 b836: b29b uxth r3, r3 coords_tmp.x2 = coords_tmp.x1 + img_w - 1; b838: f109 32ff add.w r2, r9, #4294967295 ; 0xffffffff coords_tmp.x1 = coords->x1 - ofs_x; b83c: f8ad 3060 strh.w r3, [sp, #96] ; 0x60 coords_tmp.x2 = coords_tmp.x1 + img_w - 1; b840: 4413 add r3, r2 for(; coords_tmp.x1 <= coords->x2; coords_tmp.x1 += img_w, coords_tmp.x2 += img_w) { b842: b21b sxth r3, r3 b844: f9bd 2060 ldrsh.w r2, [sp, #96] ; 0x60 coords_tmp.x2 = coords_tmp.x1 + img_w - 1; b848: f8ad 3064 strh.w r3, [sp, #100] ; 0x64 for(; coords_tmp.x1 <= coords->x2; coords_tmp.x1 += img_w, coords_tmp.x2 += img_w) { b84c: f9bb 3004 ldrsh.w r3, [fp, #4] b850: 429a cmp r2, r3 b852: dd09 ble.n b868 for(; coords_tmp.y1 <= coords->y2; coords_tmp.y1 += img_h, coords_tmp.y2 += img_h) { b854: f8bd 3062 ldrh.w r3, [sp, #98] ; 0x62 b858: 9a05 ldr r2, [sp, #20] b85a: 4413 add r3, r2 b85c: f8ad 3062 strh.w r3, [sp, #98] ; 0x62 b860: f8bd 3066 ldrh.w r3, [sp, #102] ; 0x66 b864: 4413 add r3, r2 b866: e79d b.n b7a4 if(src_type == LV_IMG_SRC_SYMBOL) lv_draw_label(&coords_tmp, clip, &label_dsc, dsc->pattern_image, NULL); b868: 2e02 cmp r6, #2 b86a: f8da 202c ldr.w r2, [sl, #44] ; 0x2c b86e: d110 bne.n b892 b870: 2300 movs r3, #0 b872: 9300 str r3, [sp, #0] b874: 4f17 ldr r7, [pc, #92] ; (b8d4 ) b876: 4613 mov r3, r2 b878: 4641 mov r1, r8 b87a: aa1e add r2, sp, #120 ; 0x78 b87c: a818 add r0, sp, #96 ; 0x60 b87e: 47b8 blx r7 for(; coords_tmp.x1 <= coords->x2; coords_tmp.x1 += img_w, coords_tmp.x2 += img_w) { b880: f8bd 3060 ldrh.w r3, [sp, #96] ; 0x60 b884: 444b add r3, r9 b886: f8ad 3060 strh.w r3, [sp, #96] ; 0x60 b88a: f8bd 3064 ldrh.w r3, [sp, #100] ; 0x64 b88e: 444b add r3, r9 b890: e7d7 b.n b842 else lv_draw_img(&coords_tmp, clip, dsc->pattern_image, &img_dsc); b892: 4f0f ldr r7, [pc, #60] ; (b8d0 ) b894: ab1a add r3, sp, #104 ; 0x68 b896: 4641 mov r1, r8 b898: a818 add r0, sp, #96 ; 0x60 b89a: 47b8 blx r7 b89c: e7f0 b.n b880 b89e: bf00 nop b8a0: 0000641d .word 0x0000641d b8a4: 00006a29 .word 0x00006a29 b8a8: 00007785 .word 0x00007785 b8ac: 00009b41 .word 0x00009b41 b8b0: 0000993d .word 0x0000993d b8b4: 000099cd .word 0x000099cd b8b8: 00007a71 .word 0x00007a71 b8bc: 000103d5 .word 0x000103d5 b8c0: 00027743 .word 0x00027743 b8c4: 000276ef .word 0x000276ef b8c8: 00027772 .word 0x00027772 b8cc: 0000eb21 .word 0x0000eb21 b8d0: 000077ed .word 0x000077ed b8d4: 00007aa1 .word 0x00007aa1 return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); b8d8: f8bb 1004 ldrh.w r1, [fp, #4] b8dc: f8bb 4000 ldrh.w r4, [fp] return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); b8e0: f8bb 3006 ldrh.w r3, [fp, #6] b8e4: f8bb 0002 ldrh.w r0, [fp, #2] return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); b8e8: 3101 adds r1, #1 b8ea: 1b09 subs r1, r1, r4 return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); b8ec: 3301 adds r3, #1 b8ee: 1a1b subs r3, r3, r0 int32_t obj_w = lv_area_get_width(coords); b8f0: b209 sxth r1, r1 coords_tmp.x1 = coords->x1 + (obj_w - img_w) / 2; b8f2: 1b49 subs r1, r1, r5 int32_t obj_h = lv_area_get_height(coords); b8f4: b21b sxth r3, r3 coords_tmp.x1 = coords->x1 + (obj_w - img_w) / 2; b8f6: eb01 71d1 add.w r1, r1, r1, lsr #31 coords_tmp.y1 = coords->y1 + (obj_h - img_h) / 2; b8fa: 1bdb subs r3, r3, r7 coords_tmp.x1 = coords->x1 + (obj_w - img_w) / 2; b8fc: eb04 0461 add.w r4, r4, r1, asr #1 coords_tmp.y1 = coords->y1 + (obj_h - img_h) / 2; b900: eb03 71d3 add.w r1, r3, r3, lsr #31 b904: eb00 0061 add.w r0, r0, r1, asr #1 b908: b280 uxth r0, r0 coords_tmp.x1 = coords->x1 + (obj_w - img_w) / 2; b90a: b2a4 uxth r4, r4 coords_tmp.x2 = coords_tmp.x1 + img_w - 1; b90c: 3d01 subs r5, #1 coords_tmp.y2 = coords_tmp.y1 + img_h - 1; b90e: 4481 add r9, r0 coords_tmp.x1 = coords->x1 + (obj_w - img_w) / 2; b910: f8ad 4060 strh.w r4, [sp, #96] ; 0x60 coords_tmp.y2 = coords_tmp.y1 + img_h - 1; b914: fa1f f989 uxth.w r9, r9 coords_tmp.x2 = coords_tmp.x1 + img_w - 1; b918: 442c add r4, r5 if(src_type == LV_IMG_SRC_SYMBOL) { b91a: 2e02 cmp r6, #2 coords_tmp.y1 = coords->y1 + (obj_h - img_h) / 2; b91c: f8ad 0062 strh.w r0, [sp, #98] ; 0x62 coords_tmp.x2 = coords_tmp.x1 + img_w - 1; b920: f8ad 4064 strh.w r4, [sp, #100] ; 0x64 coords_tmp.y2 = coords_tmp.y1 + img_h - 1; b924: f8ad 9066 strh.w r9, [sp, #102] ; 0x66 if(src_type == LV_IMG_SRC_SYMBOL) { b928: d107 bne.n b93a coords_tmp.y1 += y_corr; b92a: f003 0301 and.w r3, r3, #1 b92e: 4418 add r0, r3 coords_tmp.y2 += y_corr; b930: 4499 add r9, r3 coords_tmp.y1 += y_corr; b932: f8ad 0062 strh.w r0, [sp, #98] ; 0x62 coords_tmp.y2 += y_corr; b936: f8ad 9066 strh.w r9, [sp, #102] ; 0x66 if(_lv_area_is_in(&coords_tmp, coords, dsc->radius) == false) { b93a: 4b94 ldr r3, [pc, #592] ; (bb8c ) b93c: 4659 mov r1, fp b93e: a818 add r0, sp, #96 ; 0x60 b940: 4798 blx r3 b942: 4604 mov r4, r0 b944: b9c8 cbnz r0, b97a lv_draw_mask_radius_init(&radius_mask_param, coords, dsc->radius, false); b946: 4603 mov r3, r0 b948: f9ba 2000 ldrsh.w r2, [sl] b94c: 4d90 ldr r5, [pc, #576] ; (bb90 ) b94e: 4659 mov r1, fp b950: a825 add r0, sp, #148 ; 0x94 b952: 47a8 blx r5 radius_mask_id = lv_draw_mask_add(&radius_mask_param, NULL); b954: 4621 mov r1, r4 b956: 4b8f ldr r3, [pc, #572] ; (bb94 ) b958: a825 add r0, sp, #148 ; 0x94 b95a: 4798 blx r3 b95c: 4604 mov r4, r0 if(src_type == LV_IMG_SRC_SYMBOL) lv_draw_label(&coords_tmp, clip, &label_dsc, dsc->pattern_image, NULL); b95e: 2e02 cmp r6, #2 b960: f8da 202c ldr.w r2, [sl, #44] ; 0x2c b964: d10c bne.n b980 b966: 2300 movs r3, #0 b968: 9300 str r3, [sp, #0] b96a: 4d8b ldr r5, [pc, #556] ; (bb98 ) b96c: 4613 mov r3, r2 b96e: 4641 mov r1, r8 b970: aa1e add r2, sp, #120 ; 0x78 b972: a818 add r0, sp, #96 ; 0x60 b974: 47a8 blx r5 lv_draw_mask_remove_id(radius_mask_id); b976: 4620 mov r0, r4 b978: e71f b.n b7ba int16_t radius_mask_id = LV_MASK_ID_INV; b97a: f04f 34ff mov.w r4, #4294967295 ; 0xffffffff b97e: e7ee b.n b95e else lv_draw_img(&coords_tmp, clip, dsc->pattern_image, &img_dsc); b980: 4d86 ldr r5, [pc, #536] ; (bb9c ) b982: ab1a add r3, sp, #104 ; 0x68 b984: 4641 mov r1, r8 b986: a818 add r0, sp, #96 ; 0x60 b988: 47a8 blx r5 b98a: e7f4 b.n b976 if(other_mask_cnt) simple_mode = false; b98c: 2300 movs r3, #0 b98e: f7ff b8ba b.w ab06 int16_t mask_rout_id = LV_MASK_ID_INV; b992: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff b996: 930c str r3, [sp, #48] ; 0x30 b998: f7ff b8dc b.w ab54 _lv_memset_ff(mask_buf, draw_area_w); b99c: 4b80 ldr r3, [pc, #512] ; (bba0 ) mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w); b99e: 4f81 ldr r7, [pc, #516] ; (bba4 ) _lv_memset_ff(mask_buf, draw_area_w); b9a0: 4649 mov r1, r9 b9a2: 4620 mov r0, r4 b9a4: 4798 blx r3 mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w); b9a6: 9b06 ldr r3, [sp, #24] b9a8: 8a5a ldrh r2, [r3, #18] b9aa: 8a19 ldrh r1, [r3, #16] b9ac: f8bd 3050 ldrh.w r3, [sp, #80] ; 0x50 b9b0: 4432 add r2, r6 b9b2: 4419 add r1, r3 b9b4: b212 sxth r2, r2 b9b6: 464b mov r3, r9 b9b8: b209 sxth r1, r1 b9ba: 4620 mov r0, r4 b9bc: 47b8 blx r7 fill_area2.y1 = fill_area.y1; b9be: f8bd 3062 ldrh.w r3, [sp, #98] ; 0x62 b9c2: f8ad 306a strh.w r3, [sp, #106] ; 0x6a fill_area2.y2 = fill_area.y2; b9c6: f8bd 3066 ldrh.w r3, [sp, #102] ; 0x66 b9ca: f8ad 306e strh.w r3, [sp, #110] ; 0x6e fill_area2.x1 = coords->x1; b9ce: f9bb 3000 ldrsh.w r3, [fp] b9d2: f8ad 3068 strh.w r3, [sp, #104] ; 0x68 fill_area2.x2 = coords->x1 + rout - 1; b9d6: 3b01 subs r3, #1 b9d8: 442b add r3, r5 b9da: f8ad 306c strh.w r3, [sp, #108] ; 0x6c _lv_blend_fill(clip, &fill_area2, color, mask_buf, mask_res, opa, blend_mode); b9de: 9b07 ldr r3, [sp, #28] b9e0: 9302 str r3, [sp, #8] b9e2: 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); b9e4: 900b str r0, [sp, #44] ; 0x2c _lv_blend_fill(clip, &fill_area2, color, mask_buf, mask_res, opa, blend_mode); b9e6: ee18 2a10 vmov r2, s16 b9ea: 9301 str r3, [sp, #4] b9ec: 9000 str r0, [sp, #0] b9ee: 4623 mov r3, r4 b9f0: a91a add r1, sp, #104 ; 0x68 b9f2: 4f6d ldr r7, [pc, #436] ; (bba8 ) b9f4: 4640 mov r0, r8 b9f6: 47b8 blx r7 if(fill_area2.y2 < coords->y1 + dsc->border_width) { b9f8: f9bb 3002 ldrsh.w r3, [fp, #2] b9fc: f9ba 1010 ldrsh.w r1, [sl, #16] ba00: f9bd 206e ldrsh.w r2, [sp, #110] ; 0x6e ba04: 440b add r3, r1 ba06: 429a cmp r2, r3 ba08: da15 bge.n ba36 fill_area2.x1 = coords->x1 + rout; ba0a: f8bb 3000 ldrh.w r3, [fp] ba0e: 442b add r3, r5 ba10: f8ad 3068 strh.w r3, [sp, #104] ; 0x68 fill_area2.x2 = coords->x2 - rout; ba14: f8bb 3004 ldrh.w r3, [fp, #4] ba18: 1b5b subs r3, r3, r5 ba1a: 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); ba1e: 9b07 ldr r3, [sp, #28] ba20: 9302 str r3, [sp, #8] ba22: 9b05 ldr r3, [sp, #20] ba24: 9301 str r3, [sp, #4] ba26: 2301 movs r3, #1 ba28: 9300 str r3, [sp, #0] ba2a: ee18 2a10 vmov r2, s16 ba2e: 2300 movs r3, #0 ba30: a91a add r1, sp, #104 ; 0x68 ba32: 4640 mov r0, r8 ba34: 47b8 blx r7 fill_area2.x1 = coords->x2 - rout + 1; ba36: f9bb 3004 ldrsh.w r3, [fp, #4] fill_area2.x2 = coords->x2; ba3a: f8ad 306c strh.w r3, [sp, #108] ; 0x6c fill_area2.x1 = coords->x2 - rout + 1; ba3e: 1c5a adds r2, r3, #1 ba40: 1b52 subs r2, r2, r5 ba42: f8ad 2068 strh.w r2, [sp, #104] ; 0x68 int32_t mask_ofs = (coords->x2 - rout + 1) - (vdb->area.x1 + draw_area.x1); ba46: 9a09 ldr r2, [sp, #36] ; 0x24 ba48: f9bd 1050 ldrsh.w r1, [sp, #80] ; 0x50 _lv_blend_fill(clip, &fill_area2, color, mask_buf + mask_ofs, mask_res, opa, blend_mode); ba4c: 4f56 ldr r7, [pc, #344] ; (bba8 ) int32_t mask_ofs = (coords->x2 - rout + 1) - (vdb->area.x1 + draw_area.x1); ba4e: 1a9b subs r3, r3, r2 ba50: 9a06 ldr r2, [sp, #24] ba52: f9b2 2010 ldrsh.w r2, [r2, #16] ba56: 3301 adds r3, #1 ba58: 440a add r2, r1 ba5a: 1a9b subs r3, r3, r2 _lv_blend_fill(clip, &fill_area2, color, mask_buf + mask_ofs, mask_res, opa, blend_mode); ba5c: 9a07 ldr r2, [sp, #28] ba5e: 9202 str r2, [sp, #8] ba60: 9a05 ldr r2, [sp, #20] ba62: 9201 str r2, [sp, #4] ba64: 9a0b ldr r2, [sp, #44] ; 0x2c ba66: 9200 str r2, [sp, #0] ba68: 2b00 cmp r3, #0 ba6a: bfac ite ge ba6c: 18e3 addge r3, r4, r3 ba6e: 1c23 addlt r3, r4, #0 ba70: ee18 2a10 vmov r2, s16 ba74: a91a add r1, sp, #104 ; 0x68 ba76: 4640 mov r0, r8 ba78: 47b8 blx r7 fill_area.y1++; ba7a: f8bd 3062 ldrh.w r3, [sp, #98] ; 0x62 ba7e: 3301 adds r3, #1 ba80: f8ad 3062 strh.w r3, [sp, #98] ; 0x62 fill_area.y2++; ba84: f8bd 3066 ldrh.w r3, [sp, #102] ; 0x66 ba88: 3301 adds r3, #1 ba8a: f8ad 3066 strh.w r3, [sp, #102] ; 0x66 for(h = draw_area.y1; h <= upper_corner_end; h++) { ba8e: 3601 adds r6, #1 ba90: f7ff b902 b.w ac98 _lv_memset_ff(mask_buf, draw_area_w); ba94: 4b42 ldr r3, [pc, #264] ; (bba0 ) mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w); ba96: 4f43 ldr r7, [pc, #268] ; (bba4 ) _lv_memset_ff(mask_buf, draw_area_w); ba98: 4649 mov r1, r9 ba9a: 4620 mov r0, r4 ba9c: 4798 blx r3 mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w); ba9e: 9b06 ldr r3, [sp, #24] baa0: 8a5a ldrh r2, [r3, #18] baa2: 8a19 ldrh r1, [r3, #16] baa4: f8bd 3050 ldrh.w r3, [sp, #80] ; 0x50 baa8: 4432 add r2, r6 baaa: 4419 add r1, r3 baac: b212 sxth r2, r2 baae: 464b mov r3, r9 bab0: b209 sxth r1, r1 bab2: 4620 mov r0, r4 bab4: 47b8 blx r7 fill_area2.x1 = coords->x1; bab6: f9bb 3000 ldrsh.w r3, [fp] baba: f8ad 3068 strh.w r3, [sp, #104] ; 0x68 fill_area2.x2 = coords->x1 + rout - 1; babe: 3b01 subs r3, #1 bac0: 442b add r3, r5 bac2: f8ad 306c strh.w r3, [sp, #108] ; 0x6c fill_area2.y1 = fill_area.y1; bac6: f8bd 3062 ldrh.w r3, [sp, #98] ; 0x62 baca: f8ad 306a strh.w r3, [sp, #106] ; 0x6a fill_area2.y2 = fill_area.y2; bace: f8bd 3066 ldrh.w r3, [sp, #102] ; 0x66 bad2: f8ad 306e strh.w r3, [sp, #110] ; 0x6e _lv_blend_fill(clip, &fill_area2, color, mask_buf, mask_res, opa, blend_mode); bad6: 9b07 ldr r3, [sp, #28] bad8: 9302 str r3, [sp, #8] bada: 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); badc: 900a str r0, [sp, #40] ; 0x28 _lv_blend_fill(clip, &fill_area2, color, mask_buf, mask_res, opa, blend_mode); bade: ee18 2a10 vmov r2, s16 bae2: 9301 str r3, [sp, #4] bae4: 9000 str r0, [sp, #0] bae6: 4623 mov r3, r4 bae8: a91a add r1, sp, #104 ; 0x68 baea: 4f2f ldr r7, [pc, #188] ; (bba8 ) baec: 4640 mov r0, r8 baee: 47b8 blx r7 if(fill_area2.y2 > coords->y2 - dsc->border_width) { baf0: f9bb 3006 ldrsh.w r3, [fp, #6] baf4: f9ba 1010 ldrsh.w r1, [sl, #16] baf8: f9bd 206e ldrsh.w r2, [sp, #110] ; 0x6e bafc: 1a5b subs r3, r3, r1 bafe: 429a cmp r2, r3 bb00: dd15 ble.n bb2e fill_area2.x1 = coords->x1 + rout; bb02: f8bb 3000 ldrh.w r3, [fp] bb06: 442b add r3, r5 bb08: f8ad 3068 strh.w r3, [sp, #104] ; 0x68 fill_area2.x2 = coords->x2 - rout; bb0c: f8bb 3004 ldrh.w r3, [fp, #4] bb10: 1b5b subs r3, r3, r5 bb12: 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); bb16: 9b07 ldr r3, [sp, #28] bb18: 9302 str r3, [sp, #8] bb1a: 9b05 ldr r3, [sp, #20] bb1c: 9301 str r3, [sp, #4] bb1e: 2301 movs r3, #1 bb20: 9300 str r3, [sp, #0] bb22: ee18 2a10 vmov r2, s16 bb26: 2300 movs r3, #0 bb28: a91a add r1, sp, #104 ; 0x68 bb2a: 4640 mov r0, r8 bb2c: 47b8 blx r7 fill_area2.x1 = coords->x2 - rout + 1; bb2e: f9bb 3004 ldrsh.w r3, [fp, #4] fill_area2.x2 = coords->x2; bb32: f8ad 306c strh.w r3, [sp, #108] ; 0x6c fill_area2.x1 = coords->x2 - rout + 1; bb36: 1c5a adds r2, r3, #1 bb38: 1b52 subs r2, r2, r5 bb3a: f8ad 2068 strh.w r2, [sp, #104] ; 0x68 int32_t mask_ofs = (coords->x2 - rout + 1) - (vdb->area.x1 + draw_area.x1); bb3e: 9a09 ldr r2, [sp, #36] ; 0x24 bb40: f9bd 1050 ldrsh.w r1, [sp, #80] ; 0x50 _lv_blend_fill(clip, &fill_area2, color, mask_buf + mask_ofs, mask_res, opa, blend_mode); bb44: 4f18 ldr r7, [pc, #96] ; (bba8 ) int32_t mask_ofs = (coords->x2 - rout + 1) - (vdb->area.x1 + draw_area.x1); bb46: 1a9b subs r3, r3, r2 bb48: 9a06 ldr r2, [sp, #24] bb4a: f9b2 2010 ldrsh.w r2, [r2, #16] bb4e: 3301 adds r3, #1 bb50: 440a add r2, r1 bb52: 1a9b subs r3, r3, r2 _lv_blend_fill(clip, &fill_area2, color, mask_buf + mask_ofs, mask_res, opa, blend_mode); bb54: 9a07 ldr r2, [sp, #28] bb56: 9202 str r2, [sp, #8] bb58: 9a05 ldr r2, [sp, #20] bb5a: 9201 str r2, [sp, #4] bb5c: 9a0a ldr r2, [sp, #40] ; 0x28 bb5e: 9200 str r2, [sp, #0] bb60: 2b00 cmp r3, #0 bb62: bfac ite ge bb64: 18e3 addge r3, r4, r3 bb66: 1c23 addlt r3, r4, #0 bb68: ee18 2a10 vmov r2, s16 bb6c: a91a add r1, sp, #104 ; 0x68 bb6e: 4640 mov r0, r8 bb70: 47b8 blx r7 fill_area.y1++; bb72: f8bd 3062 ldrh.w r3, [sp, #98] ; 0x62 bb76: 3301 adds r3, #1 bb78: f8ad 3062 strh.w r3, [sp, #98] ; 0x62 fill_area.y2++; bb7c: f8bd 3066 ldrh.w r3, [sp, #102] ; 0x66 bb80: 3301 adds r3, #1 bb82: f8ad 3066 strh.w r3, [sp, #102] ; 0x66 for(h = lower_corner_end; h <= draw_area.y2; h++) { bb86: 3601 adds r6, #1 bb88: f7ff b8a2 b.w acd0 bb8c: 0000e2bd .word 0x0000e2bd bb90: 00009b41 .word 0x00009b41 bb94: 0000993d .word 0x0000993d bb98: 00007aa1 .word 0x00007aa1 bb9c: 000077ed .word 0x000077ed bba0: 0000f2ad .word 0x0000f2ad bba4: 0000998d .word 0x0000998d bba8: 0000641d .word 0x0000641d fill_area.y1 = disp_area->y1 + draw_area.y1; bbac: f8ad 3062 strh.w r3, [sp, #98] ; 0x62 fill_area.y2 = fill_area.y1; bbb0: f8ad 3066 strh.w r3, [sp, #102] ; 0x66 if(dsc->border_side == LV_BORDER_SIDE_LEFT) fill_area.x2 = coords->x1 + corner_size; bbb4: f9ba 3012 ldrsh.w r3, [sl, #18] fill_area.x1 = coords->x1; bbb8: f8ad 1060 strh.w r1, [sp, #96] ; 0x60 if(dsc->border_side == LV_BORDER_SIDE_LEFT) fill_area.x2 = coords->x1 + corner_size; bbbc: 2b04 cmp r3, #4 fill_area.x2 = coords->x2; bbbe: f8ad 2064 strh.w r2, [sp, #100] ; 0x64 if(dsc->border_side == LV_BORDER_SIDE_LEFT) fill_area.x2 = coords->x1 + corner_size; bbc2: d15e bne.n bc82 bbc4: 9a08 ldr r2, [sp, #32] bbc6: 4411 add r1, r2 bbc8: f8ad 1064 strh.w r1, [sp, #100] ; 0x64 volatile bool top_only = false; bbcc: 2200 movs r2, #0 if(dsc->border_side == LV_BORDER_SIDE_TOP) top_only = true; bbce: 2b02 cmp r3, #2 volatile bool top_only = false; bbd0: f88d 203e strb.w r2, [sp, #62] ; 0x3e volatile bool bottom_only = false; bbd4: f88d 203f strb.w r2, [sp, #63] ; 0x3f if(dsc->border_side == LV_BORDER_SIDE_TOP) top_only = true; bbd8: d15a bne.n bc90 bbda: 2301 movs r3, #1 bbdc: f88d 303e strb.w r3, [sp, #62] ; 0x3e volatile bool normal = !top_only && !bottom_only ? true : false; bbe0: f89d 303e ldrb.w r3, [sp, #62] ; 0x3e bbe4: 2b00 cmp r3, #0 bbe6: d15d bne.n bca4 bbe8: f89d 303f ldrb.w r3, [sp, #63] ; 0x3f bbec: f083 0301 eor.w r3, r3, #1 bbf0: f003 0301 and.w r3, r3, #1 _lv_blend_fill(clip, &fill_area, color, mask_buf, mask_res, opa, blend_mode); bbf4: 4dad ldr r5, [pc, #692] ; (beac ) volatile bool normal = !top_only && !bottom_only ? true : false; bbf6: f88d 3040 strb.w r3, [sp, #64] ; 0x40 for(h = draw_area.y1; h <= draw_area.y2; h++) { bbfa: f9bd 3056 ldrsh.w r3, [sp, #86] ; 0x56 bbfe: 429e cmp r6, r3 bc00: f73f a8a5 bgt.w ad4e if(normal || bc04: f89d 3040 ldrb.w r3, [sp, #64] ; 0x40 bc08: b99b cbnz r3, bc32 (top_only && fill_area.y1 <= coords->y1 + corner_size) || bc0a: f89d 303e ldrb.w r3, [sp, #62] ; 0x3e bc0e: f9bd 2062 ldrsh.w r2, [sp, #98] ; 0x62 if(normal || bc12: b12b cbz r3, bc20 (top_only && fill_area.y1 <= coords->y1 + corner_size) || bc14: f9bb 3002 ldrsh.w r3, [fp, #2] bc18: 9908 ldr r1, [sp, #32] bc1a: 440b add r3, r1 bc1c: 429a cmp r2, r3 bc1e: dd08 ble.n bc32 (bottom_only && fill_area.y1 >= coords->y2 - corner_size)) { bc20: f89d 303f ldrb.w r3, [sp, #63] ; 0x3f (top_only && fill_area.y1 <= coords->y1 + corner_size) || bc24: b30b cbz r3, bc6a (bottom_only && fill_area.y1 >= coords->y2 - corner_size)) { bc26: f9bb 3006 ldrsh.w r3, [fp, #6] bc2a: 9908 ldr r1, [sp, #32] bc2c: 1a5b subs r3, r3, r1 bc2e: 429a cmp r2, r3 bc30: db1b blt.n bc6a _lv_memset_ff(mask_buf, draw_area_w); bc32: 4b9f ldr r3, [pc, #636] ; (beb0 ) mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w); bc34: 4f9f ldr r7, [pc, #636] ; (beb4 ) _lv_memset_ff(mask_buf, draw_area_w); bc36: 4649 mov r1, r9 bc38: 4620 mov r0, r4 bc3a: 4798 blx r3 mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w); bc3c: 9b06 ldr r3, [sp, #24] bc3e: 8a5a ldrh r2, [r3, #18] bc40: 8a19 ldrh r1, [r3, #16] bc42: f8bd 3050 ldrh.w r3, [sp, #80] ; 0x50 bc46: 4432 add r2, r6 bc48: 4419 add r1, r3 bc4a: b212 sxth r2, r2 bc4c: 464b mov r3, r9 bc4e: b209 sxth r1, r1 bc50: 4620 mov r0, r4 bc52: 47b8 blx r7 _lv_blend_fill(clip, &fill_area, color, mask_buf, mask_res, opa, blend_mode); bc54: 9b07 ldr r3, [sp, #28] bc56: 9302 str r3, [sp, #8] bc58: 9b05 ldr r3, [sp, #20] bc5a: ee18 2a10 vmov r2, s16 bc5e: e9cd 0300 strd r0, r3, [sp] bc62: a918 add r1, sp, #96 ; 0x60 bc64: 4623 mov r3, r4 bc66: 4640 mov r0, r8 bc68: 47a8 blx r5 fill_area.y1++; bc6a: f8bd 3062 ldrh.w r3, [sp, #98] ; 0x62 bc6e: 3301 adds r3, #1 bc70: f8ad 3062 strh.w r3, [sp, #98] ; 0x62 fill_area.y2++; bc74: f8bd 3066 ldrh.w r3, [sp, #102] ; 0x66 bc78: 3301 adds r3, #1 bc7a: f8ad 3066 strh.w r3, [sp, #102] ; 0x66 for(h = draw_area.y1; h <= draw_area.y2; h++) { bc7e: 3601 adds r6, #1 bc80: e7bb b.n bbfa else if(dsc->border_side == LV_BORDER_SIDE_RIGHT) fill_area.x1 = coords->x2 - corner_size; bc82: 2b08 cmp r3, #8 bc84: bf02 ittt eq bc86: 9908 ldreq r1, [sp, #32] bc88: 1a52 subeq r2, r2, r1 bc8a: f8ad 2060 strheq.w r2, [sp, #96] ; 0x60 bc8e: e79d b.n bbcc if(dsc->border_side == LV_BORDER_SIDE_BOTTOM) bottom_only = true; bc90: 2b01 cmp r3, #1 bc92: d004 beq.n bc9e if(dsc->border_side == (LV_BORDER_SIDE_TOP | LV_BORDER_SIDE_BOTTOM)) { bc94: 2b03 cmp r3, #3 bc96: d1a3 bne.n bbe0 top_only = true; bc98: 2301 movs r3, #1 bc9a: f88d 303e strb.w r3, [sp, #62] ; 0x3e bottom_only = true; bc9e: f88d 303f strb.w r3, [sp, #63] ; 0x3f bca2: e79d b.n bbe0 volatile bool normal = !top_only && !bottom_only ? true : false; bca4: 2300 movs r3, #0 bca6: e7a3 b.n bbf0 _lv_memset_ff(mask_buf, draw_area_w); bca8: ee18 1a10 vmov r1, s16 bcac: 4b80 ldr r3, [pc, #512] ; (beb0 ) mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w); bcae: 4d81 ldr r5, [pc, #516] ; (beb4 ) _lv_memset_ff(mask_buf, draw_area_w); bcb0: 4620 mov r0, r4 bcb2: 4798 blx r3 mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w); bcb4: 9b06 ldr r3, [sp, #24] bcb6: 8a5a ldrh r2, [r3, #18] bcb8: 8a19 ldrh r1, [r3, #16] bcba: f8bd 3058 ldrh.w r3, [sp, #88] ; 0x58 bcbe: 4432 add r2, r6 bcc0: 4419 add r1, r3 bcc2: b212 sxth r2, r2 bcc4: ee18 3a10 vmov r3, s16 bcc8: b209 sxth r1, r1 bcca: 4620 mov r0, r4 bccc: 47a8 blx r5 fill_area2.y1 = fill_area.y1; bcce: f8bd 3062 ldrh.w r3, [sp, #98] ; 0x62 bcd2: f8ad 306a strh.w r3, [sp, #106] ; 0x6a fill_area2.y2 = fill_area.y2; bcd6: f8bd 3066 ldrh.w r3, [sp, #102] ; 0x66 bcda: f8ad 306e strh.w r3, [sp, #110] ; 0x6e fill_area2.x1 = area_outer.x1; bcde: f9bd 3050 ldrsh.w r3, [sp, #80] ; 0x50 bce2: f8ad 3068 strh.w r3, [sp, #104] ; 0x68 fill_area2.x2 = area_outer.x1 + rout - 1; bce6: 3b01 subs r3, #1 bce8: fa13 f389 uxtah r3, r3, r9 bcec: fa1f f289 uxth.w r2, r9 bcf0: f8ad 306c strh.w r3, [sp, #108] ; 0x6c _lv_blend_fill(clip, &fill_area2, color, mask_buf, mask_res, opa, blend_mode); bcf4: 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); bcf6: 900a str r0, [sp, #40] ; 0x28 fill_area2.x2 = area_outer.x1 + rout - 1; bcf8: 9209 str r2, [sp, #36] ; 0x24 _lv_blend_fill(clip, &fill_area2, color, mask_buf, mask_res, opa, blend_mode); bcfa: 9301 str r3, [sp, #4] bcfc: 9000 str r0, [sp, #0] bcfe: 4623 mov r3, r4 bd00: 463a mov r2, r7 bd02: a91a add r1, sp, #104 ; 0x68 bd04: 4d69 ldr r5, [pc, #420] ; (beac ) bd06: f8cd b008 str.w fp, [sp, #8] bd0a: 4640 mov r0, r8 bd0c: 47a8 blx r5 if(fill_area2.y2 < area_outer.y1 + dsc->outline_width) { bd0e: f9bd 3052 ldrsh.w r3, [sp, #82] ; 0x52 bd12: f9ba 1018 ldrsh.w r1, [sl, #24] bd16: f9bd 206e ldrsh.w r2, [sp, #110] ; 0x6e bd1a: 440b add r3, r1 bd1c: 429a cmp r2, r3 bd1e: da15 bge.n bd4c fill_area2.x1 = area_outer.x1 + rout; bd20: 9a09 ldr r2, [sp, #36] ; 0x24 bd22: 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); bd26: f8cd b008 str.w fp, [sp, #8] fill_area2.x1 = area_outer.x1 + rout; bd2a: 4413 add r3, r2 bd2c: f8ad 3068 strh.w r3, [sp, #104] ; 0x68 fill_area2.x2 = area_outer.x2 - rout; bd30: f8bd 3054 ldrh.w r3, [sp, #84] ; 0x54 bd34: 1a9b subs r3, r3, r2 bd36: 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); bd3a: 9b05 ldr r3, [sp, #20] bd3c: 9301 str r3, [sp, #4] bd3e: 2301 movs r3, #1 bd40: 9300 str r3, [sp, #0] bd42: 463a mov r2, r7 bd44: 2300 movs r3, #0 bd46: a91a add r1, sp, #104 ; 0x68 bd48: 4640 mov r0, r8 bd4a: 47a8 blx r5 fill_area2.x1 = area_outer.x2 - rout + 1; bd4c: f9bd 3054 ldrsh.w r3, [sp, #84] ; 0x54 bd50: 9909 ldr r1, [sp, #36] ; 0x24 fill_area2.x2 = area_outer.x2; bd52: f8ad 306c strh.w r3, [sp, #108] ; 0x6c fill_area2.x1 = area_outer.x2 - rout + 1; bd56: 1c5a adds r2, r3, #1 bd58: 1a52 subs r2, r2, r1 bd5a: f8ad 2068 strh.w r2, [sp, #104] ; 0x68 int32_t mask_ofs = (area_outer.x2 - rout + 1) - (vdb->area.x1 + draw_area.x1); bd5e: 9a06 ldr r2, [sp, #24] bd60: f9bd 1058 ldrsh.w r1, [sp, #88] ; 0x58 bd64: f9b2 2010 ldrsh.w r2, [r2, #16] _lv_blend_fill(clip, &fill_area2, color, mask_buf + mask_ofs, mask_res, opa, blend_mode); bd68: 4d50 ldr r5, [pc, #320] ; (beac ) bd6a: f8cd b008 str.w fp, [sp, #8] int32_t mask_ofs = (area_outer.x2 - rout + 1) - (vdb->area.x1 + draw_area.x1); bd6e: eba3 0309 sub.w r3, r3, r9 bd72: 440a add r2, r1 bd74: 3301 adds r3, #1 bd76: 1a9b subs r3, r3, r2 _lv_blend_fill(clip, &fill_area2, color, mask_buf + mask_ofs, mask_res, opa, blend_mode); bd78: 9a05 ldr r2, [sp, #20] bd7a: 9201 str r2, [sp, #4] bd7c: 9a0a ldr r2, [sp, #40] ; 0x28 bd7e: 9200 str r2, [sp, #0] bd80: 2b00 cmp r3, #0 bd82: bfac ite ge bd84: 18e3 addge r3, r4, r3 bd86: 1c23 addlt r3, r4, #0 bd88: 463a mov r2, r7 bd8a: a91a add r1, sp, #104 ; 0x68 bd8c: 4640 mov r0, r8 bd8e: 47a8 blx r5 fill_area.y1++; bd90: f8bd 3062 ldrh.w r3, [sp, #98] ; 0x62 bd94: 3301 adds r3, #1 bd96: f8ad 3062 strh.w r3, [sp, #98] ; 0x62 fill_area.y2++; bd9a: f8bd 3066 ldrh.w r3, [sp, #102] ; 0x66 bd9e: 3301 adds r3, #1 bda0: f8ad 3066 strh.w r3, [sp, #102] ; 0x66 for(h = draw_area.y1; h <= upper_corner_end; h++) { bda4: 3601 adds r6, #1 bda6: f7ff b957 b.w b058 _lv_memset_ff(mask_buf, draw_area_w); bdaa: ee18 1a10 vmov r1, s16 bdae: 4b40 ldr r3, [pc, #256] ; (beb0 ) mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w); bdb0: 4d40 ldr r5, [pc, #256] ; (beb4 ) _lv_memset_ff(mask_buf, draw_area_w); bdb2: 4620 mov r0, r4 bdb4: 4798 blx r3 mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w); bdb6: 9b06 ldr r3, [sp, #24] bdb8: 8a5a ldrh r2, [r3, #18] bdba: 8a19 ldrh r1, [r3, #16] bdbc: f8bd 3058 ldrh.w r3, [sp, #88] ; 0x58 bdc0: 4432 add r2, r6 bdc2: 4419 add r1, r3 bdc4: b212 sxth r2, r2 bdc6: ee18 3a10 vmov r3, s16 bdca: b209 sxth r1, r1 bdcc: 4620 mov r0, r4 bdce: 47a8 blx r5 fill_area2.x1 = area_outer.x1; bdd0: f9bd 3050 ldrsh.w r3, [sp, #80] ; 0x50 bdd4: f8ad 3068 strh.w r3, [sp, #104] ; 0x68 fill_area2.x2 = area_outer.x1 + rout - 1; bdd8: 3b01 subs r3, #1 bdda: fa13 f389 uxtah r3, r3, r9 bdde: f8ad 306c strh.w r3, [sp, #108] ; 0x6c fill_area2.y1 = fill_area.y1; bde2: f8bd 3062 ldrh.w r3, [sp, #98] ; 0x62 bde6: f8ad 306a strh.w r3, [sp, #106] ; 0x6a fill_area2.y2 = fill_area.y2; bdea: f8bd 3066 ldrh.w r3, [sp, #102] ; 0x66 bdee: f8ad 306e strh.w r3, [sp, #110] ; 0x6e fill_area2.x2 = area_outer.x1 + rout - 1; bdf2: fa1f f289 uxth.w r2, r9 _lv_blend_fill(clip, &fill_area2, color, mask_buf, mask_res, opa, blend_mode); bdf6: 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); bdf8: 9009 str r0, [sp, #36] ; 0x24 fill_area2.x2 = area_outer.x1 + rout - 1; bdfa: 9208 str r2, [sp, #32] _lv_blend_fill(clip, &fill_area2, color, mask_buf, mask_res, opa, blend_mode); bdfc: 9301 str r3, [sp, #4] bdfe: 9000 str r0, [sp, #0] be00: 4623 mov r3, r4 be02: 463a mov r2, r7 be04: a91a add r1, sp, #104 ; 0x68 be06: 4d29 ldr r5, [pc, #164] ; (beac ) be08: f8cd b008 str.w fp, [sp, #8] be0c: 4640 mov r0, r8 be0e: 47a8 blx r5 if(fill_area2.y2 > area_outer.y2 - dsc->outline_width) { be10: f9bd 3056 ldrsh.w r3, [sp, #86] ; 0x56 be14: f9ba 1018 ldrsh.w r1, [sl, #24] be18: f9bd 206e ldrsh.w r2, [sp, #110] ; 0x6e be1c: 1a5b subs r3, r3, r1 be1e: 429a cmp r2, r3 be20: dd15 ble.n be4e fill_area2.x1 = area_outer.x1 + rout; be22: 9a08 ldr r2, [sp, #32] be24: 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); be28: f8cd b008 str.w fp, [sp, #8] fill_area2.x1 = area_outer.x1 + rout; be2c: 4413 add r3, r2 be2e: f8ad 3068 strh.w r3, [sp, #104] ; 0x68 fill_area2.x2 = area_outer.x2 - rout; be32: f8bd 3054 ldrh.w r3, [sp, #84] ; 0x54 be36: 1a9b subs r3, r3, r2 be38: 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); be3c: 9b05 ldr r3, [sp, #20] be3e: 9301 str r3, [sp, #4] be40: 2301 movs r3, #1 be42: 9300 str r3, [sp, #0] be44: 463a mov r2, r7 be46: 2300 movs r3, #0 be48: a91a add r1, sp, #104 ; 0x68 be4a: 4640 mov r0, r8 be4c: 47a8 blx r5 fill_area2.x1 = area_outer.x2 - rout + 1; be4e: f9bd 3054 ldrsh.w r3, [sp, #84] ; 0x54 be52: 9908 ldr r1, [sp, #32] fill_area2.x2 = area_outer.x2; be54: f8ad 306c strh.w r3, [sp, #108] ; 0x6c fill_area2.x1 = area_outer.x2 - rout + 1; be58: 1c5a adds r2, r3, #1 be5a: 1a52 subs r2, r2, r1 be5c: f8ad 2068 strh.w r2, [sp, #104] ; 0x68 int32_t mask_ofs = (area_outer.x2 - rout + 1) - (vdb->area.x1 + draw_area.x1); be60: 9a06 ldr r2, [sp, #24] be62: f9bd 1058 ldrsh.w r1, [sp, #88] ; 0x58 be66: f9b2 2010 ldrsh.w r2, [r2, #16] _lv_blend_fill(clip, &fill_area2, color, mask_buf + mask_ofs, mask_res, opa, blend_mode); be6a: 4d10 ldr r5, [pc, #64] ; (beac ) be6c: f8cd b008 str.w fp, [sp, #8] int32_t mask_ofs = (area_outer.x2 - rout + 1) - (vdb->area.x1 + draw_area.x1); be70: eba3 0309 sub.w r3, r3, r9 be74: 440a add r2, r1 be76: 3301 adds r3, #1 be78: 1a9b subs r3, r3, r2 _lv_blend_fill(clip, &fill_area2, color, mask_buf + mask_ofs, mask_res, opa, blend_mode); be7a: 9a05 ldr r2, [sp, #20] be7c: 9201 str r2, [sp, #4] be7e: 9a09 ldr r2, [sp, #36] ; 0x24 be80: 9200 str r2, [sp, #0] be82: 2b00 cmp r3, #0 be84: bfac ite ge be86: 18e3 addge r3, r4, r3 be88: 1c23 addlt r3, r4, #0 be8a: 463a mov r2, r7 be8c: a91a add r1, sp, #104 ; 0x68 be8e: 4640 mov r0, r8 be90: 47a8 blx r5 fill_area.y1++; be92: f8bd 3062 ldrh.w r3, [sp, #98] ; 0x62 be96: 3301 adds r3, #1 be98: f8ad 3062 strh.w r3, [sp, #98] ; 0x62 fill_area.y2++; be9c: f8bd 3066 ldrh.w r3, [sp, #102] ; 0x66 bea0: 3301 adds r3, #1 bea2: f8ad 3066 strh.w r3, [sp, #102] ; 0x66 for(h = lower_corner_end; h <= draw_area.y2; h++) { bea6: 3601 adds r6, #1 bea8: f7ff b8ed b.w b086 beac: 0000641d .word 0x0000641d beb0: 0000f2ad .word 0x0000f2ad beb4: 0000998d .word 0x0000998d _lv_memset_ff(mask_buf, draw_area_w); beb8: f8df 908c ldr.w r9, [pc, #140] ; bf48 _lv_blend_fill(clip, &fill_area, color, mask_buf, mask_res, opa, blend_mode); bebc: f8df a08c ldr.w sl, [pc, #140] ; bf4c fill_area.x1 = area_outer.x1; bec0: f8ad 0060 strh.w r0, [sp, #96] ; 0x60 fill_area.x2 = area_outer.x2; bec4: f8ad 1064 strh.w r1, [sp, #100] ; 0x64 fill_area.y1 = disp_area->y1 + draw_area.y1; bec8: f8ad 3062 strh.w r3, [sp, #98] ; 0x62 fill_area.y2 = fill_area.y1; becc: f8ad 3066 strh.w r3, [sp, #102] ; 0x66 for(h = draw_area.y1; h <= draw_area.y2; h++) { bed0: f9bd 305e ldrsh.w r3, [sp, #94] ; 0x5e bed4: 429e cmp r6, r3 bed6: f73f a913 bgt.w b100 _lv_memset_ff(mask_buf, draw_area_w); beda: ee18 1a10 vmov r1, s16 bede: 4620 mov r0, r4 bee0: 47c8 blx r9 mask_res = lv_draw_mask_apply(mask_buf, vdb->area.x1 + draw_area.x1, vdb->area.y1 + h, draw_area_w); bee2: 9b06 ldr r3, [sp, #24] bee4: 4d17 ldr r5, [pc, #92] ; (bf44 ) bee6: 8a5a ldrh r2, [r3, #18] bee8: 8a19 ldrh r1, [r3, #16] beea: f8bd 3058 ldrh.w r3, [sp, #88] ; 0x58 beee: 4432 add r2, r6 bef0: 4419 add r1, r3 bef2: b212 sxth r2, r2 bef4: ee18 3a10 vmov r3, s16 bef8: b209 sxth r1, r1 befa: 4620 mov r0, r4 befc: 47a8 blx r5 _lv_blend_fill(clip, &fill_area, color, mask_buf, mask_res, opa, blend_mode); befe: 9b05 ldr r3, [sp, #20] bf00: f8cd b008 str.w fp, [sp, #8] bf04: e9cd 0300 strd r0, r3, [sp] bf08: 463a mov r2, r7 bf0a: 4623 mov r3, r4 bf0c: a918 add r1, sp, #96 ; 0x60 bf0e: 4640 mov r0, r8 bf10: 47d0 blx sl fill_area.y1++; bf12: f8bd 3062 ldrh.w r3, [sp, #98] ; 0x62 bf16: 3301 adds r3, #1 bf18: f8ad 3062 strh.w r3, [sp, #98] ; 0x62 fill_area.y2++; bf1c: f8bd 3066 ldrh.w r3, [sp, #102] ; 0x66 bf20: 3301 adds r3, #1 bf22: b21b sxth r3, r3 for(h = draw_area.y1; h <= draw_area.y2; h++) { bf24: 3601 adds r6, #1 bf26: e7d1 b.n becc if(dsc->bg_grad_dir == LV_GRAD_DIR_HOR) { bf28: 9b09 ldr r3, [sp, #36] ; 0x24 bf2a: 2b02 cmp r3, #2 bf2c: f43f abc6 beq.w b6bc else if(other_mask_cnt != 0 || !split) { bf30: 9b0d ldr r3, [sp, #52] ; 0x34 bf32: 2b00 cmp r3, #0 bf34: f47f abdd bne.w b6f2 bf38: 9b0a ldr r3, [sp, #40] ; 0x28 bf3a: 2b32 cmp r3, #50 ; 0x32 bf3c: f73f abc9 bgt.w b6d2 bf40: f7ff bbd7 b.w b6f2 bf44: 0000998d .word 0x0000998d bf48: 0000f2ad .word 0x0000f2ad bf4c: 0000641d .word 0x0000641d 0000bf50 : { bf50: 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))); bf52: 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))); bf56: 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))); bf5a: f3c0 1445 ubfx r4, r0, #5, #6 bf5e: 4373 muls r3, r6 bf60: 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))); bf64: f001 041f and.w r4, r1, #31 bf68: f000 071f and.w r7, r0, #31 bf6c: 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))); bf6e: 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))); bf72: 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))); bf76: 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))); bf78: 436c muls r4, r5 return ret; bf7a: f3c3 53c5 ubfx r3, r3, #23, #6 bf7e: f3c4 54c4 ubfx r4, r4, #23, #5 bf82: 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))); bf86: f3c1 23c4 ubfx r3, r1, #11, #5 bf8a: 4373 muls r3, r6 bf8c: f3c0 20c4 ubfx r0, r0, #11, #5 bf90: fb00 3202 mla r2, r0, r2, r3 bf94: fb05 f302 mul.w r3, r5, r2 bf98: 0ddb lsrs r3, r3, #23 } bf9a: ea44 20c3 orr.w r0, r4, r3, lsl #11 bf9e: bdf0 pop {r4, r5, r6, r7, pc} 0000bfa0 <_lv_memcpy_small.isra.0>: LV_ATTRIBUTE_FAST_MEM static inline void * _lv_memcpy_small(void * dst, const void * src, size_t len) bfa0: 3901 subs r1, #1 bfa2: 4402 add r2, r0 while(len) { bfa4: 4290 cmp r0, r2 bfa6: d100 bne.n bfaa <_lv_memcpy_small.isra.0+0xa> s8++; len--; } return dst; } bfa8: 4770 bx lr *d8 = *s8; bfaa: f811 3f01 ldrb.w r3, [r1, #1]! bfae: f800 3b01 strb.w r3, [r0], #1 len--; bfb2: e7f7 b.n bfa4 <_lv_memcpy_small.isra.0+0x4> 0000bfb4 : * 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) { bfb4: 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; bfb6: 6886 ldr r6, [r0, #8] { bfb8: 4607 mov r7, r0 if(dsc->header.cf == LV_IMG_CF_TRUE_COLOR || dsc->header.cf == LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED || bfba: 7800 ldrb r0, [r0, #0] { bfbc: 4615 mov r5, r2 lv_color_t p_color = LV_COLOR_BLACK; bfbe: 2200 movs r2, #0 bfc0: 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 || bfc4: f000 021f and.w r2, r0, #31 bfc8: 2a04 cmp r2, #4 { bfca: 460c mov r4, r1 if(dsc->header.cf == LV_IMG_CF_TRUE_COLOR || dsc->header.cf == LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED || bfcc: d009 beq.n bfe2 bfce: 3a05 subs r2, #5 bfd0: 2a09 cmp r2, #9 bfd2: d81a bhi.n c00a bfd4: e8df f002 tbb [pc, r2] bfd8: 321d0505 .word 0x321d0505 bfdc: 2f2f5843 .word 0x2f2f5843 bfe0: 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; bfe2: 4b2e ldr r3, [pc, #184] ; (c09c ) bfe4: f000 001f and.w r0, r0, #31 bfe8: 4798 blx r3 uint32_t px = dsc->header.w * y * px_size + x * px_size; bfea: 683b ldr r3, [r7, #0] uint8_t px_size = lv_img_cf_get_px_size(dsc->header.cf) >> 3; bfec: f3c0 00c7 ubfx r0, r0, #3, #8 uint32_t px = dsc->header.w * y * px_size + x * px_size; bff0: f3c3 238a ubfx r3, r3, #10, #11 bff4: fb13 f305 smulbb r3, r3, r5 bff8: fb10 f104 smulbb r1, r0, r4 bffc: fb00 1103 mla r1, r0, r3, r1 _lv_memcpy_small(&p_color, &buf_u8[px], sizeof(lv_color_t)); c000: 2202 movs r2, #2 c002: 4b27 ldr r3, [pc, #156] ; (c0a0 ) c004: 4431 add r1, r6 c006: a801 add r0, sp, #4 c008: 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; } c00a: f8bd 0004 ldrh.w r0, [sp, #4] c00e: b003 add sp, #12 c010: bdf0 pop {r4, r5, r6, r7, pc} uint32_t px = ((dsc->header.w + 7) >> 3) * y + x; c012: 683b ldr r3, [r7, #0] c014: f3c3 238a ubfx r3, r3, #10, #11 c018: 3307 adds r3, #7 c01a: 10db asrs r3, r3, #3 p_color.full = (buf_u8[px] & (1 << (7 - bit))) >> (7 - bit); c01c: fb05 6303 mla r3, r5, r3, r6 c020: eb03 03e4 add.w r3, r3, r4, asr #3 c024: f004 0207 and.w r2, r4, #7 c028: 7a1b ldrb r3, [r3, #8] c02a: f1c2 0207 rsb r2, r2, #7 c02e: 2101 movs r1, #1 p_color.full = (buf_u8[px] & (3 << (6 - bit))) >> (6 - bit); c030: 4091 lsls r1, r2 c032: 400b ands r3, r1 c034: 4113 asrs r3, r2 p_color = color; c036: f8ad 3004 strh.w r3, [sp, #4] c03a: e7e6 b.n c00a uint32_t px = ((dsc->header.w + 3) >> 2) * y + x; c03c: 683b ldr r3, [r7, #0] c03e: f3c3 238a ubfx r3, r3, #10, #11 c042: 3303 adds r3, #3 c044: 109b asrs r3, r3, #2 p_color.full = (buf_u8[px] & (3 << (6 - bit))) >> (6 - bit); c046: fb05 6303 mla r3, r5, r3, r6 uint8_t bit = (x & 0x3) * 2; c04a: f004 0203 and.w r2, r4, #3 p_color.full = (buf_u8[px] & (3 << (6 - bit))) >> (6 - bit); c04e: eb03 03a4 add.w r3, r3, r4, asr #2 c052: 0052 lsls r2, r2, #1 c054: 7c1b ldrb r3, [r3, #16] c056: f1c2 0206 rsb r2, r2, #6 c05a: 2103 movs r1, #3 c05c: e7e8 b.n c030 uint32_t px = ((dsc->header.w + 1) >> 1) * y + x; c05e: 683b ldr r3, [r7, #0] c060: f3c3 238a ubfx r3, r3, #10, #11 c064: 3301 adds r3, #1 c066: 105b asrs r3, r3, #1 p_color.full = (buf_u8[px] & (0xF << (4 - bit))) >> (4 - bit); c068: fb05 6203 mla r2, r5, r3, r6 c06c: eb02 0264 add.w r2, r2, r4, asr #1 uint8_t bit = (x & 0x1) * 4; c070: f004 0101 and.w r1, r4, #1 p_color.full = (buf_u8[px] & (0xF << (4 - bit))) >> (4 - bit); c074: 0089 lsls r1, r1, #2 c076: f892 3040 ldrb.w r3, [r2, #64] ; 0x40 c07a: f1c1 0104 rsb r1, r1, #4 c07e: 220f movs r2, #15 c080: 408a lsls r2, r1 c082: 4013 ands r3, r2 c084: 410b asrs r3, r1 c086: e7d6 b.n c036 uint32_t px = dsc->header.w * y + x; c088: 683b ldr r3, [r7, #0] c08a: f3c3 238a ubfx r3, r3, #10, #11 c08e: fb15 4503 smlabb r5, r5, r3, r4 p_color.full = buf_u8[px]; c092: 442e add r6, r5 c094: f896 3400 ldrb.w r3, [r6, #1024] ; 0x400 c098: e7cd b.n c036 c09a: bf00 nop c09c: 000077ad .word 0x000077ad c0a0: 0000bfa1 .word 0x0000bfa1 0000c0a4 : * @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) { c0a4: b5f0 push {r4, r5, r6, r7, lr} c0a6: 460b mov r3, r1 uint8_t * buf_u8 = (uint8_t *)dsc->data; if(dsc->header.cf == LV_IMG_CF_TRUE_COLOR_ALPHA) { c0a8: 7801 ldrb r1, [r0, #0] uint8_t * buf_u8 = (uint8_t *)dsc->data; c0aa: 6885 ldr r5, [r0, #8] if(dsc->header.cf == LV_IMG_CF_TRUE_COLOR_ALPHA) { c0ac: f001 011f and.w r1, r1, #31 c0b0: 2905 cmp r1, #5 { c0b2: b085 sub sp, #20 c0b4: 4604 mov r4, r0 if(dsc->header.cf == LV_IMG_CF_TRUE_COLOR_ALPHA) { c0b6: d10a bne.n c0ce uint32_t px = dsc->header.w * y * LV_IMG_PX_SIZE_ALPHA_BYTE + x * LV_IMG_PX_SIZE_ALPHA_BYTE; c0b8: 6801 ldr r1, [r0, #0] c0ba: f3c1 218a ubfx r1, r1, #10, #11 c0be: fb12 3201 smlabb r2, r2, r1, r3 return buf_u8[px + LV_IMG_PX_SIZE_ALPHA_BYTE - 1]; c0c2: eb02 0242 add.w r2, r2, r2, lsl #1 c0c6: 442a add r2, r5 c0c8: 7890 ldrb r0, [r2, #2] uint32_t px = dsc->header.w * y + x; return buf_u8[px]; } return LV_OPA_COVER; } c0ca: b005 add sp, #20 c0cc: bdf0 pop {r4, r5, r6, r7, pc} else if(dsc->header.cf == LV_IMG_CF_ALPHA_1BIT) { c0ce: 390b subs r1, #11 c0d0: 2903 cmp r1, #3 c0d2: d856 bhi.n c182 c0d4: e8df f001 tbb [pc, r1] c0d8: 4e321902 .word 0x4e321902 uint32_t px = ((dsc->header.w + 7) >> 3) * y + x; c0dc: 6821 ldr r1, [r4, #0] c0de: f3c1 218a ubfx r1, r1, #10, #11 c0e2: 3107 adds r1, #7 c0e4: 10c9 asrs r1, r1, #3 uint8_t px_opa = (buf_u8[px] & (1 << (7 - bit))) >> (7 - bit); c0e6: f003 0007 and.w r0, r3, #7 c0ea: fb02 5201 mla r2, r2, r1, r5 uint32_t px = ((dsc->header.w + 7) >> 3) * y + x; c0ee: 10db asrs r3, r3, #3 uint8_t px_opa = (buf_u8[px] & (1 << (7 - bit))) >> (7 - bit); c0f0: f1c0 0007 rsb r0, r0, #7 c0f4: 5cd3 ldrb r3, [r2, r3] c0f6: 2201 movs r2, #1 c0f8: 4082 lsls r2, r0 c0fa: 4013 ands r3, r2 return px_opa ? LV_OPA_TRANSP : LV_OPA_COVER; c0fc: 4103 asrs r3, r0 c0fe: bf0c ite eq c100: f04f 30ff moveq.w r0, #4294967295 ; 0xffffffff c104: 2000 movne r0, #0 c106: b2c0 uxtb r0, r0 c108: e7df b.n c0ca const uint8_t opa_table[4] = {0, 85, 170, 255}; /*Opacity mapping with bpp = 2*/ c10a: 491f ldr r1, [pc, #124] ; (c188 ) c10c: 9100 str r1, [sp, #0] uint32_t px = ((dsc->header.w + 3) >> 2) * y + x; c10e: 6821 ldr r1, [r4, #0] c110: f3c1 218a ubfx r1, r1, #10, #11 c114: 3103 adds r1, #3 c116: 1089 asrs r1, r1, #2 uint8_t bit = (x & 0x3) * 2; c118: f003 0003 and.w r0, r3, #3 uint8_t px_opa = (buf_u8[px] & (3 << (6 - bit))) >> (6 - bit); c11c: fb02 5201 mla r2, r2, r1, r5 uint32_t px = ((dsc->header.w + 3) >> 2) * y + x; c120: 109b asrs r3, r3, #2 uint8_t px_opa = (buf_u8[px] & (3 << (6 - bit))) >> (6 - bit); c122: 0040 lsls r0, r0, #1 c124: 5cd3 ldrb r3, [r2, r3] c126: f1c0 0006 rsb r0, r0, #6 c12a: 2203 movs r2, #3 uint8_t px_opa = (buf_u8[px] & (0xF << (4 - bit))) >> (4 - bit); c12c: 4082 lsls r2, r0 c12e: 4013 ands r3, r2 c130: 4103 asrs r3, r0 return opa_table[px_opa]; c132: 3310 adds r3, #16 c134: 446b add r3, sp c136: f813 0c10 ldrb.w r0, [r3, #-16] c13a: e7c6 b.n c0ca const uint8_t opa_table[16] = {0, 17, 34, 51, /*Opacity mapping with bpp = 4*/ c13c: 4e13 ldr r6, [pc, #76] ; (c18c ) c13e: 46ec mov ip, sp c140: f106 0e10 add.w lr, r6, #16 c144: 6830 ldr r0, [r6, #0] c146: 6871 ldr r1, [r6, #4] c148: 4667 mov r7, ip c14a: c703 stmia r7!, {r0, r1} c14c: 3608 adds r6, #8 c14e: 4576 cmp r6, lr c150: 46bc mov ip, r7 c152: d1f7 bne.n c144 uint32_t px = ((dsc->header.w + 1) >> 1) * y + x; c154: 6821 ldr r1, [r4, #0] c156: f3c1 218a ubfx r1, r1, #10, #11 c15a: 3101 adds r1, #1 c15c: 1049 asrs r1, r1, #1 uint8_t bit = (x & 0x1) * 4; c15e: f003 0001 and.w r0, r3, #1 uint8_t px_opa = (buf_u8[px] & (0xF << (4 - bit))) >> (4 - bit); c162: fb02 5201 mla r2, r2, r1, r5 uint32_t px = ((dsc->header.w + 1) >> 1) * y + x; c166: 105b asrs r3, r3, #1 uint8_t px_opa = (buf_u8[px] & (0xF << (4 - bit))) >> (4 - bit); c168: 0080 lsls r0, r0, #2 c16a: 5cd3 ldrb r3, [r2, r3] c16c: f1c0 0004 rsb r0, r0, #4 c170: 220f movs r2, #15 c172: e7db b.n c12c uint32_t px = dsc->header.w * y + x; c174: 6821 ldr r1, [r4, #0] c176: f3c1 218a ubfx r1, r1, #10, #11 c17a: fb12 3201 smlabb r2, r2, r1, r3 return buf_u8[px]; c17e: 5ca8 ldrb r0, [r5, r2] c180: e7a3 b.n c0ca if(dsc->header.cf == LV_IMG_CF_TRUE_COLOR_ALPHA) { c182: 20ff movs r0, #255 ; 0xff c184: e7a1 b.n c0ca c186: bf00 nop c188: ffaa5500 .word 0xffaa5500 c18c: 0002777f .word 0x0002777f 0000c190 <_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) { c190: e92d 4ff8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr} dsc->tmp.pivot_x_256 = dsc->cfg.pivot_x * 256; c194: 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); c198: f8df 80ec ldr.w r8, [pc, #236] ; c288 <_lv_img_buf_transform_init+0xf8> dsc->tmp.pivot_x_256 = dsc->cfg.pivot_x * 256; c19c: 021b lsls r3, r3, #8 c19e: 6243 str r3, [r0, #36] ; 0x24 dsc->tmp.pivot_y_256 = dsc->cfg.pivot_y * 256; c1a0: f9b0 300a ldrsh.w r3, [r0, #10] c1a4: 021b lsls r3, r3, #8 int32_t angle_low = dsc->cfg.angle / 10; c1a6: 260a movs r6, #10 dsc->tmp.pivot_y_256 = dsc->cfg.pivot_y * 256; c1a8: 6283 str r3, [r0, #40] ; 0x28 int32_t angle_low = dsc->cfg.angle / 10; c1aa: f9b0 300c ldrsh.w r3, [r0, #12] c1ae: fb93 f5f6 sdiv r5, r3, r6 int32_t s1 = _lv_trigo_sin(-angle_low); c1b2: fa1f f985 uxth.w r9, r5 { c1b6: 4604 mov r4, r0 int32_t s1 = _lv_trigo_sin(-angle_low); c1b8: f1c9 0000 rsb r0, r9, #0 int32_t angle_rem = dsc->cfg.angle - (angle_low * 10); c1bc: f64f 77f6 movw r7, #65526 ; 0xfff6 int32_t s1 = _lv_trigo_sin(-angle_low); c1c0: b200 sxth r0, r0 int32_t angle_rem = dsc->cfg.angle - (angle_low * 10); c1c2: fb15 3707 smlabb r7, r5, r7, r3 int32_t s1 = _lv_trigo_sin(-angle_low); c1c6: 47c0 blx r8 int32_t angle_hight = angle_low + 1; c1c8: 3501 adds r5, #1 int32_t s2 = _lv_trigo_sin(-angle_hight); c1ca: b2ad uxth r5, r5 int32_t s1 = _lv_trigo_sin(-angle_low); c1cc: 4682 mov sl, r0 int32_t s2 = _lv_trigo_sin(-angle_hight); c1ce: 4268 negs r0, r5 c1d0: b200 sxth r0, r0 c1d2: 47c0 blx r8 c1d4: 4683 mov fp, r0 int32_t c1 = _lv_trigo_sin(-angle_low + 90); c1d6: f1c9 005a rsb r0, r9, #90 ; 0x5a c1da: b200 sxth r0, r0 c1dc: 47c0 blx r8 int32_t c2 = _lv_trigo_sin(-angle_hight + 90); c1de: f1c5 055a rsb r5, r5, #90 ; 0x5a int32_t c1 = _lv_trigo_sin(-angle_low + 90); c1e2: 4681 mov r9, r0 int32_t c2 = _lv_trigo_sin(-angle_hight + 90); c1e4: b228 sxth r0, r5 c1e6: 47c0 blx r8 dsc->tmp.sinma = (s1 * (10 - angle_rem) + s2 * angle_rem) / 10; c1e8: 1bf2 subs r2, r6, r7 c1ea: fb07 f30b mul.w r3, r7, fp c1ee: fb02 330a mla r3, r2, sl, r3 c1f2: fb93 f3f6 sdiv r3, r3, r6 c1f6: 62e3 str r3, [r4, #44] ; 0x2c dsc->tmp.cosma = (c1 * (10 - angle_rem) + c2 * angle_rem) / 10; c1f8: fb07 f300 mul.w r3, r7, r0 c1fc: fb02 3009 mla r0, r2, r9, r3 dsc->tmp.chroma_keyed = lv_img_cf_is_chroma_keyed(dsc->cfg.cf) ? 1 : 0; c200: 4b1f ldr r3, [pc, #124] ; (c280 <_lv_img_buf_transform_init+0xf0>) dsc->tmp.cosma = (c1 * (10 - angle_rem) + c2 * angle_rem) / 10; c202: fb90 f0f6 sdiv r0, r0, r6 c206: 6320 str r0, [r4, #48] ; 0x30 dsc->tmp.chroma_keyed = lv_img_cf_is_chroma_keyed(dsc->cfg.cf) ? 1 : 0; c208: 7ca0 ldrb r0, [r4, #18] c20a: 4798 blx r3 c20c: f894 3034 ldrb.w r3, [r4, #52] ; 0x34 c210: f360 0300 bfi r3, r0, #0, #1 c214: f884 3034 strb.w r3, [r4, #52] ; 0x34 dsc->tmp.has_alpha = lv_img_cf_has_alpha(dsc->cfg.cf) ? 1 : 0; c218: 7ca0 ldrb r0, [r4, #18] c21a: 4b1a ldr r3, [pc, #104] ; (c284 <_lv_img_buf_transform_init+0xf4>) c21c: 4798 blx r3 if(dsc->cfg.cf == LV_IMG_CF_TRUE_COLOR || dsc->cfg.cf == LV_IMG_CF_TRUE_COLOR_ALPHA || c21e: 7ca3 ldrb r3, [r4, #18] c220: 1f19 subs r1, r3, #4 c222: 2902 cmp r1, #2 c224: bf8c ite hi c226: 2100 movhi r1, #0 c228: 2101 movls r1, #1 dsc->tmp.has_alpha = lv_img_cf_has_alpha(dsc->cfg.cf) ? 1 : 0; c22a: 0042 lsls r2, r0, #1 c22c: ea42 0281 orr.w r2, r2, r1, lsl #2 c230: f894 1034 ldrb.w r1, [r4, #52] ; 0x34 c234: f002 0206 and.w r2, r2, #6 c238: f021 0106 bic.w r1, r1, #6 c23c: 430a orrs r2, r1 c23e: f884 2034 strb.w r2, [r4, #52] ; 0x34 } else { dsc->tmp.native_color = 0; } dsc->tmp.img_dsc.data = dsc->cfg.src; c242: 6822 ldr r2, [r4, #0] c244: 6222 str r2, [r4, #32] dsc->tmp.img_dsc.header.always_zero = 0; dsc->tmp.img_dsc.header.cf = dsc->cfg.cf; c246: 88a2 ldrh r2, [r4, #4] c248: f003 031f and.w r3, r3, #31 c24c: f3c2 020a ubfx r2, r2, #0, #11 c250: ea43 2382 orr.w r3, r3, r2, lsl #10 c254: f9b4 2006 ldrsh.w r2, [r4, #6] c258: ea43 5342 orr.w r3, r3, r2, lsl #21 c25c: 69a2 ldr r2, [r4, #24] c25e: f402 7240 and.w r2, r2, #768 ; 0x300 c262: 4313 orrs r3, r2 c264: 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; c266: 89e2 ldrh r2, [r4, #14] c268: f44f 3380 mov.w r3, #65536 ; 0x10000 c26c: fbb3 f3f2 udiv r3, r3, r2 c270: 86e3 strh r3, [r4, #54] ; 0x36 dsc->res.opa = LV_OPA_COVER; c272: 23ff movs r3, #255 ; 0xff c274: 75a3 strb r3, [r4, #22] dsc->res.color = dsc->cfg.color; c276: 8a23 ldrh r3, [r4, #16] c278: 82a3 strh r3, [r4, #20] } c27a: e8bd 8ff8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} c27e: bf00 nop c280: 000077c5 .word 0x000077c5 c284: 000077d9 .word 0x000077d9 c288: 0000eb75 .word 0x0000eb75 0000c28c <_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) { c28c: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} c290: b085 sub sp, #20 c292: 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); c294: f8df b174 ldr.w fp, [pc, #372] ; c40c <_lv_img_buf_get_transformed_area+0x180> { c298: f8bd 8038 ldrh.w r8, [sp, #56] ; 0x38 c29c: 9102 str r1, [sp, #8] int32_t angle_low = angle / 10; c29e: 260a movs r6, #10 int32_t angle_rem = angle - (angle_low * 10); c2a0: f64f 7af6 movw sl, #65526 ; 0xfff6 int32_t angle_low = angle / 10; c2a4: fb93 f9f6 sdiv r9, r3, r6 int32_t s1 = _lv_trigo_sin(angle_low); c2a8: 4648 mov r0, r9 int32_t angle_rem = angle - (angle_low * 10); c2aa: fb19 3a0a smlabb sl, r9, sl, r3 { c2ae: 4614 mov r4, r2 int32_t s1 = _lv_trigo_sin(angle_low); c2b0: 47d8 blx fp int32_t angle_hight = angle_low + 1; c2b2: f109 0501 add.w r5, r9, #1 int32_t s1 = _lv_trigo_sin(angle_low); c2b6: 9003 str r0, [sp, #12] int32_t s2 = _lv_trigo_sin(angle_hight); c2b8: b228 sxth r0, r5 c2ba: 47d8 blx fp c2bc: 4605 mov r5, r0 int32_t c1 = _lv_trigo_sin(angle_low + 90); c2be: f109 005a add.w r0, r9, #90 ; 0x5a c2c2: b200 sxth r0, r0 c2c4: 47d8 blx fp c2c6: 9001 str r0, [sp, #4] int32_t c2 = _lv_trigo_sin(angle_hight + 90); c2c8: f109 005b add.w r0, r9, #91 ; 0x5b c2cc: b200 sxth r0, r0 c2ce: 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; c2d0: 9b01 ldr r3, [sp, #4] int32_t sinma = (s1 * (10 - angle_rem) + s2 * angle_rem) / 10; c2d2: 9903 ldr r1, [sp, #12] c2d4: eba6 0c0a sub.w ip, r6, sl int32_t cosma = (c1 * (10 - angle_rem) + c2 * angle_rem) / 10; c2d8: fb0a f000 mul.w r0, sl, r0 c2dc: 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; c2e0: 9b0f ldr r3, [sp, #60] ; 0x3c int32_t cosma = (c1 * (10 - angle_rem) + c2 * angle_rem) / 10; c2e2: fb90 f0f6 sdiv r0, r0, r6 int32_t sinma = (s1 * (10 - angle_rem) + s2 * angle_rem) / 10; c2e6: fb0a f505 mul.w r5, sl, r5 a.x1 = ((-pivot->x) * zoom) >> 8; c2ea: f9b3 e000 ldrsh.w lr, [r3] int32_t sinma = (s1 * (10 - angle_rem) + s2 * angle_rem) / 10; c2ee: fb0c 5501 mla r5, ip, r1, r5 a.y1 = ((-pivot->y) * zoom) >> 8; c2f2: f9b3 c002 ldrsh.w ip, [r3, #2] int32_t sinma = (s1 * (10 - angle_rem) + s2 * angle_rem) / 10; c2f6: fb95 f5f6 sdiv r5, r5, r6 a.x1 = ((-pivot->x) * zoom) >> 8; c2fa: f1ce 0300 rsb r3, lr, #0 a.y1 = ((-pivot->y) * zoom) >> 8; c2fe: f1cc 0200 rsb r2, ip, #0 a.x1 = ((-pivot->x) * zoom) >> 8; c302: fb08 f303 mul.w r3, r8, r3 a.y1 = ((-pivot->y) * zoom) >> 8; c306: 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; c30a: f343 230f sbfx r3, r3, #8, #16 c30e: f342 220f sbfx r2, r2, #8, #16 c312: fb00 f903 mul.w r9, r0, r3 c316: fb05 fa02 mul.w sl, r5, r2 lt.y = ((sinma * xt + cosma * yt) >> LV_TRIGO_SHIFT) + pivot->y; c31a: 436b muls r3, r5 c31c: 4342 muls r2, r0 c31e: 1899 adds r1, r3, r2 c320: 13c9 asrs r1, r1, #15 c322: fa11 f18c uxtah r1, r1, ip c326: b209 sxth r1, r1 c328: 9101 str r1, [sp, #4] a.x2 = ((w - pivot->x) * zoom) >> 8; c32a: 9902 ldr r1, [sp, #8] c32c: eba1 010e sub.w r1, r1, lr c330: fb08 f101 mul.w r1, r8, r1 xt = a.x2; yt = a.y1; rt.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x; c334: f341 210f sbfx r1, r1, #8, #16 a.y2 = ((h - pivot->y) * zoom) >> 8; c338: eba4 040c sub.w r4, r4, ip rt.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x; c33c: fb00 fb01 mul.w fp, r0, r1 a.y2 = ((h - pivot->y) * zoom) >> 8; c340: fb08 f404 mul.w r4, r8, r4 lt.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x; c344: 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; c348: f344 240f sbfx r4, r4, #8, #16 rt.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x; c34c: ebab 0a0a sub.w sl, fp, sl rt.y = ((sinma * xt + cosma * yt) >> LV_TRIGO_SHIFT) + pivot->y; c350: 4369 muls r1, r5 lt.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x; c352: 13f6 asrs r6, r6, #15 lb.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x; c354: 4365 muls r5, r4 rt.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x; c356: ea4f 3aea mov.w sl, sl, asr #15 lb.y = ((sinma * xt + cosma * yt) >> LV_TRIGO_SHIFT) + pivot->y; c35a: 4344 muls r4, r0 lt.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x; c35c: fa16 f68e uxtah r6, r6, lr rt.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x; c360: fa1a fa8e uxtah sl, sl, lr lb.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x; c364: eba9 0905 sub.w r9, r9, r5 lt.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x; c368: b236 sxth r6, r6 rt.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x; c36a: fa0f fa8a sxth.w sl, sl rt.y = ((sinma * xt + cosma * yt) >> LV_TRIGO_SHIFT) + pivot->y; c36e: 440a add r2, r1 lb.y = ((sinma * xt + cosma * yt) >> LV_TRIGO_SHIFT) + pivot->y; c370: 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; c372: 4421 add r1, r4 lb.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x; c374: ea4f 39e9 mov.w r9, r9, asr #15 res->x1 = LV_MATH_MIN4(lb.x, lt.x, rb.x, rt.x); c378: 4556 cmp r6, sl lb.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x; c37a: fa19 f98e uxtah r9, r9, lr rb.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x; c37e: ebab 0b05 sub.w fp, fp, r5 rb.y = ((sinma * xt + cosma * yt) >> LV_TRIGO_SHIFT) + pivot->y; c382: ea4f 31e1 mov.w r1, r1, asr #15 rt.y = ((sinma * xt + cosma * yt) >> LV_TRIGO_SHIFT) + pivot->y; c386: ea4f 32e2 mov.w r2, r2, asr #15 lb.y = ((sinma * xt + cosma * yt) >> LV_TRIGO_SHIFT) + pivot->y; c38a: ea4f 33e3 mov.w r3, r3, asr #15 lb.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x; c38e: fa0f f989 sxth.w r9, r9 rt.y = ((sinma * xt + cosma * yt) >> LV_TRIGO_SHIFT) + pivot->y; c392: fa12 f28c uxtah r2, r2, ip lb.y = ((sinma * xt + cosma * yt) >> LV_TRIGO_SHIFT) + pivot->y; c396: fa13 f38c uxtah r3, r3, ip rb.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x; c39a: ea4f 3beb mov.w fp, fp, asr #15 rb.y = ((sinma * xt + cosma * yt) >> LV_TRIGO_SHIFT) + pivot->y; c39e: fa11 fc8c uxtah ip, r1, ip res->x1 = LV_MATH_MIN4(lb.x, lt.x, rb.x, rt.x); c3a2: 4631 mov r1, r6 c3a4: bfa8 it ge c3a6: 4651 movge r1, sl c3a8: 4549 cmp r1, r9 rb.x = ((cosma * xt - sinma * yt) >> LV_TRIGO_SHIFT) + pivot->x; c3aa: fa1b fe8e uxtah lr, fp, lr c3ae: fa0f fe8e sxth.w lr, lr res->x1 = LV_MATH_MIN4(lb.x, lt.x, rb.x, rt.x); c3b2: bfa8 it ge c3b4: 4649 movge r1, r9 c3b6: 4571 cmp r1, lr c3b8: bfa8 it ge c3ba: 4671 movge r1, lr res->x2 = LV_MATH_MAX4(lb.x, lt.x, rb.x, rt.x); c3bc: 4556 cmp r6, sl c3be: bfb8 it lt c3c0: 4656 movlt r6, sl c3c2: 454e cmp r6, r9 c3c4: bfb8 it lt c3c6: 464e movlt r6, r9 res->x1 = LV_MATH_MIN4(lb.x, lt.x, rb.x, rt.x); c3c8: 8039 strh r1, [r7, #0] res->y1 = LV_MATH_MIN4(lb.y, lt.y, rb.y, rt.y); c3ca: 9901 ldr r1, [sp, #4] rt.y = ((sinma * xt + cosma * yt) >> LV_TRIGO_SHIFT) + pivot->y; c3cc: b212 sxth r2, r2 res->x2 = LV_MATH_MAX4(lb.x, lt.x, rb.x, rt.x); c3ce: 4576 cmp r6, lr c3d0: bfb8 it lt c3d2: 4676 movlt r6, lr res->y1 = LV_MATH_MIN4(lb.y, lt.y, rb.y, rt.y); c3d4: 4291 cmp r1, r2 lb.y = ((sinma * xt + cosma * yt) >> LV_TRIGO_SHIFT) + pivot->y; c3d6: b21b sxth r3, r3 res->y1 = LV_MATH_MIN4(lb.y, lt.y, rb.y, rt.y); c3d8: bfa8 it ge c3da: 4611 movge r1, r2 c3dc: 4299 cmp r1, r3 rb.y = ((sinma * xt + cosma * yt) >> LV_TRIGO_SHIFT) + pivot->y; c3de: fa0f fc8c sxth.w ip, ip res->y1 = LV_MATH_MIN4(lb.y, lt.y, rb.y, rt.y); c3e2: bfa8 it ge c3e4: 4619 movge r1, r3 c3e6: 4561 cmp r1, ip c3e8: bfa8 it ge c3ea: 4661 movge r1, ip c3ec: 8079 strh r1, [r7, #2] res->y2 = LV_MATH_MAX4(lb.y, lt.y, rb.y, rt.y); c3ee: 9901 ldr r1, [sp, #4] res->x2 = LV_MATH_MAX4(lb.x, lt.x, rb.x, rt.x); c3f0: 80be strh r6, [r7, #4] res->y2 = LV_MATH_MAX4(lb.y, lt.y, rb.y, rt.y); c3f2: 428a cmp r2, r1 c3f4: bfb8 it lt c3f6: 460a movlt r2, r1 c3f8: 4293 cmp r3, r2 c3fa: bfb8 it lt c3fc: 4613 movlt r3, r2 c3fe: 4563 cmp r3, ip c400: bfb8 it lt c402: 4663 movlt r3, ip c404: 80fb strh r3, [r7, #6] res->x1 = 0; res->y1 = 0; res->x2 = w; res->y2 = h; #endif } c406: b005 add sp, #20 c408: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} c40c: 0000eb75 .word 0x0000eb75 0000c410 <_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) { c410: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} c414: f890 2038 ldrb.w r2, [r0, #56] ; 0x38 const uint8_t * src_u8 = dsc->cfg.src; c418: f8d0 8000 ldr.w r8, [r0] /*Get the fractional part of the source pixel*/ int xs_fract = dsc->tmp.xs & 0xff; c41c: f9b0 5038 ldrsh.w r5, [r0, #56] ; 0x38 int ys_fract = dsc->tmp.ys & 0xff; c420: f9b0 603a ldrsh.w r6, [r0, #58] ; 0x3a c424: f890 303a ldrb.w r3, [r0, #58] ; 0x3a int32_t xn; /*x neightboor*/ lv_opa_t xr; /*x mix ratio*/ if(xs_fract < 0x70) { c428: 2a6f cmp r2, #111 ; 0x6f { c42a: b089 sub sp, #36 ; 0x24 c42c: 4604 mov r4, r0 if(xs_fract < 0x70) { c42e: f200 8092 bhi.w c556 <_lv_img_buf_transform_anti_alias+0x146> xn = - 1; if(dsc->tmp.xs_int + xn < 0) xn = 0; c432: f9b0 903c ldrsh.w r9, [r0, #60] ; 0x3c c436: f1b9 0f00 cmp.w r9, #0 c43a: bfd4 ite le c43c: f04f 0900 movle.w r9, #0 c440: f04f 0901 movgt.w r9, #1 c444: f1c9 0900 rsb r9, r9, #0 xr = xs_fract + 0x80; c448: 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; c44a: b2ed uxtb r5, r5 } int32_t yn; /*x neightboor*/ lv_opa_t yr; /*x mix ratio*/ if(ys_fract < 0x70) { c44c: 2b6f cmp r3, #111 ; 0x6f c44e: f200 8097 bhi.w c580 <_lv_img_buf_transform_anti_alias+0x170> yn = - 1; if(dsc->tmp.ys_int + yn < 0) yn = 0; c452: f9b4 703e ldrsh.w r7, [r4, #62] ; 0x3e c456: 2f00 cmp r7, #0 c458: bfd4 ite le c45a: 2700 movle r7, #0 c45c: 2701 movgt r7, #1 c45e: 427f negs r7, r7 yr = ys_fract + 0x80; c460: 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; c462: b2f6 uxtb r6, r6 else { yn = 0; yr = 0xFF; } lv_color_t c00 = dsc->res.color; c464: 8aa3 ldrh r3, [r4, #20] c466: 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; c46a: 7da3 ldrb r3, [r4, #22] c46c: 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) { c46e: f894 3034 ldrb.w r3, [r4, #52] ; 0x34 c472: 0758 lsls r0, r3, #29 c474: f140 80a9 bpl.w c5ca <_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)); c478: f894 3044 ldrb.w r3, [r4, #68] ; 0x44 c47c: 6c21 ldr r1, [r4, #64] ; 0x40 c47e: f8df a248 ldr.w sl, [pc, #584] ; c6c8 <_lv_img_buf_transform_anti_alias+0x2b8> c482: fb09 1103 mla r1, r9, r3, r1 c486: 2202 movs r2, #2 c488: 4441 add r1, r8 c48a: a805 add r0, sp, #20 c48c: 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)); c48e: 88a2 ldrh r2, [r4, #4] c490: f894 3044 ldrb.w r3, [r4, #68] ; 0x44 c494: 6c21 ldr r1, [r4, #64] ; 0x40 c496: fb13 f302 smulbb r3, r3, r2 c49a: fb07 1103 mla r1, r7, r3, r1 c49e: 2202 movs r2, #2 c4a0: 4441 add r1, r8 c4a2: a806 add r0, sp, #24 c4a4: 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], c4a6: f894 2044 ldrb.w r2, [r4, #68] ; 0x44 c4aa: 88a3 ldrh r3, [r4, #4] c4ac: 6c21 ldr r1, [r4, #64] ; 0x40 c4ae: fb13 f302 smulbb r3, r3, r2 c4b2: fb09 1102 mla r1, r9, r2, r1 c4b6: fb07 1103 mla r1, r7, r3, r1 c4ba: 4441 add r1, r8 c4bc: 2202 movs r2, #2 c4be: a807 add r0, sp, #28 c4c0: 47d0 blx sl sizeof(lv_color_t)); if(dsc->tmp.has_alpha) { c4c2: f894 3034 ldrb.w r3, [r4, #52] ; 0x34 c4c6: 0799 lsls r1, r3, #30 c4c8: d46b bmi.n c5a2 <_lv_img_buf_transform_anti_alias+0x192> lv_opa_t a11 = 0; c4ca: 2000 movs r0, #0 lv_opa_t a01 = 0; c4cc: 4607 mov r7, r0 lv_opa_t a10 = 0; c4ce: 4683 mov fp, r0 } } lv_opa_t xr0 = xr; lv_opa_t xr1 = xr; if(dsc->tmp.has_alpha) { c4d0: f894 3034 ldrb.w r3, [r4, #52] ; 0x34 c4d4: 079b lsls r3, r3, #30 c4d6: f140 80c7 bpl.w c668 <_lv_img_buf_transform_anti_alias+0x258> lv_opa_t a0 = (a00 * xr + (a10 * (255 - xr))) >> 8; c4da: 9a01 ldr r2, [sp, #4] c4dc: f1c5 03ff rsb r3, r5, #255 ; 0xff c4e0: fb12 f105 smulbb r1, r2, r5 c4e4: fb03 110b mla r1, r3, fp, r1 lv_opa_t a1 = (a01 * xr + (a11 * (255 - xr))) >> 8; c4e8: 4343 muls r3, r0 dsc->res.opa = (a0 * yr + (a1 * (255 - yr))) >> 8; c4ea: f3c1 2107 ubfx r1, r1, #8, #8 lv_opa_t a1 = (a01 * xr + (a11 * (255 - xr))) >> 8; c4ee: fb15 3307 smlabb r3, r5, r7, r3 c4f2: f3c3 2307 ubfx r3, r3, #8, #8 dsc->res.opa = (a0 * yr + (a1 * (255 - yr))) >> 8; c4f6: f1c6 0cff rsb ip, r6, #255 ; 0xff c4fa: fb06 f201 mul.w r2, r6, r1 c4fe: fb03 220c mla r2, r3, ip, r2 c502: 1212 asrs r2, r2, #8 if(a0 <= LV_OPA_MIN && a1 <= LV_OPA_MIN) return false; c504: 2905 cmp r1, #5 dsc->res.opa = (a0 * yr + (a1 * (255 - yr))) >> 8; c506: 75a2 strb r2, [r4, #22] if(a0 <= LV_OPA_MIN && a1 <= LV_OPA_MIN) return false; c508: f200 80aa bhi.w c660 <_lv_img_buf_transform_anti_alias+0x250> c50c: 2b05 cmp r3, #5 c50e: f240 80d4 bls.w c6ba <_lv_img_buf_transform_anti_alias+0x2aa> if(a0 <= LV_OPA_MIN) yr = LV_OPA_TRANSP; c512: 2600 movs r6, #0 if(a1 <= LV_OPA_MIN) yr = LV_OPA_COVER; if(a00 <= LV_OPA_MIN) xr0 = LV_OPA_TRANSP; c514: 9b01 ldr r3, [sp, #4] c516: 2b05 cmp r3, #5 c518: bf94 ite ls c51a: 2200 movls r2, #0 c51c: 462a movhi r2, r5 if(a10 <= LV_OPA_MIN) xr0 = LV_OPA_COVER; c51e: f1bb 0f05 cmp.w fp, #5 c522: bf98 it ls c524: 22ff movls r2, #255 ; 0xff if(a01 <= LV_OPA_MIN) xr1 = LV_OPA_TRANSP; c526: 2f05 cmp r7, #5 c528: bf98 it ls c52a: 2500 movls r5, #0 if(a11 <= LV_OPA_MIN) xr1 = LV_OPA_COVER; c52c: 2805 cmp r0, #5 c52e: bf98 it ls c530: 25ff movls r5, #255 ; 0xff xr1 = xr; dsc->res.opa = LV_OPA_COVER; } lv_color_t c0; if(xr0 == LV_OPA_TRANSP) c0 = c01; c532: 2a00 cmp r2, #0 c534: f040 809c bne.w c670 <_lv_img_buf_transform_anti_alias+0x260> c538: 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; c53c: 2d00 cmp r5, #0 c53e: f040 80a4 bne.w c68a <_lv_img_buf_transform_anti_alias+0x27a> c542: 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; c546: 2e00 cmp r6, #0 c548: f040 80ad bne.w c6a6 <_lv_img_buf_transform_anti_alias+0x296> c54c: 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; c54e: 2001 movs r0, #1 } c550: b009 add sp, #36 ; 0x24 c552: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} else if(xs_fract > 0x90) { c556: 2a90 cmp r2, #144 ; 0x90 c558: d90e bls.n c578 <_lv_img_buf_transform_anti_alias+0x168> if(dsc->tmp.xs_int + xn >= dsc->cfg.src_w) xn = 0; c55a: f9b0 903c ldrsh.w r9, [r0, #60] ; 0x3c c55e: f9b0 2004 ldrsh.w r2, [r0, #4] c562: f109 0901 add.w r9, r9, #1 c566: 4591 cmp r9, r2 c568: bfac ite ge c56a: f04f 0900 movge.w r9, #0 c56e: f04f 0901 movlt.w r9, #1 xr = (0xFF - xs_fract) + 0x80; c572: f1c5 057f rsb r5, r5, #127 ; 0x7f c576: e768 b.n c44a <_lv_img_buf_transform_anti_alias+0x3a> xr = 0xFF; c578: 25ff movs r5, #255 ; 0xff xn = 0; c57a: f04f 0900 mov.w r9, #0 c57e: e765 b.n c44c <_lv_img_buf_transform_anti_alias+0x3c> else if(ys_fract > 0x90) { c580: 2b90 cmp r3, #144 ; 0x90 c582: d90b bls.n c59c <_lv_img_buf_transform_anti_alias+0x18c> if(dsc->tmp.ys_int + yn >= dsc->cfg.src_h) yn = 0; c584: f9b4 703e ldrsh.w r7, [r4, #62] ; 0x3e c588: f9b4 3006 ldrsh.w r3, [r4, #6] c58c: 3701 adds r7, #1 c58e: 429f cmp r7, r3 c590: bfac ite ge c592: 2700 movge r7, #0 c594: 2701 movlt r7, #1 yr = (0xFF - ys_fract) + 0x80; c596: f1c6 067f rsb r6, r6, #127 ; 0x7f c59a: e762 b.n c462 <_lv_img_buf_transform_anti_alias+0x52> yr = 0xFF; c59c: 26ff movs r6, #255 ; 0xff yn = 0; c59e: 2700 movs r7, #0 c5a0: e760 b.n c464 <_lv_img_buf_transform_anti_alias+0x54> a10 = src_u8[dsc->tmp.pxi + dsc->tmp.px_size * xn + dsc->tmp.px_size - 1]; c5a2: 6c22 ldr r2, [r4, #64] ; 0x40 c5a4: 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]; c5a8: 88a3 ldrh r3, [r4, #4] c5aa: 3a01 subs r2, #1 c5ac: 440a add r2, r1 a10 = src_u8[dsc->tmp.pxi + dsc->tmp.px_size * xn + dsc->tmp.px_size - 1]; c5ae: 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]; c5b2: fb13 f301 smulbb r3, r3, r1 c5b6: 437b muls r3, r7 c5b8: eb08 0103 add.w r1, r8, r3 a10 = src_u8[dsc->tmp.pxi + dsc->tmp.px_size * xn + dsc->tmp.px_size - 1]; c5bc: 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]; c5c0: 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]; c5c2: 44c8 add r8, r9 c5c4: f818 0003 ldrb.w r0, [r8, r3] c5c8: e782 b.n c4d0 <_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); c5ca: 8fa3 ldrh r3, [r4, #60] ; 0x3c c5cc: f8df b0fc ldr.w fp, [pc, #252] ; c6cc <_lv_img_buf_transform_anti_alias+0x2bc> c5d0: f9b4 203e ldrsh.w r2, [r4, #62] ; 0x3e c5d4: f104 0a18 add.w sl, r4, #24 c5d8: fa13 f189 uxtah r1, r3, r9 c5dc: b209 sxth r1, r1 c5de: 8a23 ldrh r3, [r4, #16] c5e0: 4650 mov r0, sl c5e2: 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); c5e4: 8fe3 ldrh r3, [r4, #62] ; 0x3e c5e6: 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); c5ea: 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); c5ee: fa13 f287 uxtah r2, r3, r7 c5f2: b212 sxth r2, r2 c5f4: 8a23 ldrh r3, [r4, #16] c5f6: 4650 mov r0, sl c5f8: 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); c5fa: 8fe2 ldrh r2, [r4, #62] ; 0x3e c5fc: 8fa1 ldrh r1, [r4, #60] ; 0x3c c5fe: 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); c600: 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); c604: 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); c608: 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); c60c: 444a add r2, r9 c60e: 4441 add r1, r8 c610: b212 sxth r2, r2 c612: b209 sxth r1, r1 c614: 4650 mov r0, sl c616: 47d8 blx fp if(dsc->tmp.has_alpha) { c618: 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); c61c: f8ad 001c strh.w r0, [sp, #28] if(dsc->tmp.has_alpha) { c620: 079a lsls r2, r3, #30 c622: f57f af52 bpl.w c4ca <_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); c626: f9b4 703c ldrsh.w r7, [r4, #60] ; 0x3c c62a: f9b4 203e ldrsh.w r2, [r4, #62] ; 0x3e c62e: 4b24 ldr r3, [pc, #144] ; (c6c0 <_lv_img_buf_transform_anti_alias+0x2b0>) c630: 9203 str r2, [sp, #12] c632: 44b8 add r8, r7 c634: fa0f f888 sxth.w r8, r8 c638: 4641 mov r1, r8 c63a: 4650 mov r0, sl c63c: 4798 blx r3 a01 = lv_img_buf_get_px_alpha(&dsc->tmp.img_dsc, dsc->tmp.xs_int, dsc->tmp.ys_int + yn); c63e: 9a03 ldr r2, [sp, #12] c640: 4b1f ldr r3, [pc, #124] ; (c6c0 <_lv_img_buf_transform_anti_alias+0x2b0>) c642: 4491 add r9, r2 c644: fa0f f289 sxth.w r2, r9 c648: 4639 mov r1, r7 a10 = lv_img_buf_get_px_alpha(&dsc->tmp.img_dsc, dsc->tmp.xs_int + xn, dsc->tmp.ys_int); c64a: 4683 mov fp, r0 a01 = lv_img_buf_get_px_alpha(&dsc->tmp.img_dsc, dsc->tmp.xs_int, dsc->tmp.ys_int + yn); c64c: 4650 mov r0, sl c64e: 9203 str r2, [sp, #12] c650: 4798 blx r3 a11 = lv_img_buf_get_px_alpha(&dsc->tmp.img_dsc, dsc->tmp.xs_int + xn, dsc->tmp.ys_int + yn); c652: 9a03 ldr r2, [sp, #12] c654: 4b1a ldr r3, [pc, #104] ; (c6c0 <_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); c656: 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); c658: 4641 mov r1, r8 c65a: 4650 mov r0, sl c65c: 4798 blx r3 c65e: e737 b.n c4d0 <_lv_img_buf_transform_anti_alias+0xc0> if(a1 <= LV_OPA_MIN) yr = LV_OPA_COVER; c660: 2b05 cmp r3, #5 c662: bf98 it ls c664: 26ff movls r6, #255 ; 0xff c666: e755 b.n c514 <_lv_img_buf_transform_anti_alias+0x104> dsc->res.opa = LV_OPA_COVER; c668: 23ff movs r3, #255 ; 0xff c66a: 75a3 strb r3, [r4, #22] xr0 = xr; c66c: 462a mov r2, r5 c66e: e760 b.n c532 <_lv_img_buf_transform_anti_alias+0x122> else if(xr0 == LV_OPA_COVER) c0 = c00; c670: 2aff cmp r2, #255 ; 0xff c672: d102 bne.n c67a <_lv_img_buf_transform_anti_alias+0x26a> c674: f8bd 700a ldrh.w r7, [sp, #10] c678: e760 b.n c53c <_lv_img_buf_transform_anti_alias+0x12c> else c0 = lv_color_mix(c00, c01, xr0); c67a: f8bd 1014 ldrh.w r1, [sp, #20] c67e: f8bd 000a ldrh.w r0, [sp, #10] c682: 4b10 ldr r3, [pc, #64] ; (c6c4 <_lv_img_buf_transform_anti_alias+0x2b4>) c684: 4798 blx r3 c686: 4607 mov r7, r0 c688: e758 b.n c53c <_lv_img_buf_transform_anti_alias+0x12c> else if(xr1 == LV_OPA_COVER) c1 = c10; c68a: 2dff cmp r5, #255 ; 0xff c68c: d102 bne.n c694 <_lv_img_buf_transform_anti_alias+0x284> c68e: f8bd 1018 ldrh.w r1, [sp, #24] c692: e758 b.n c546 <_lv_img_buf_transform_anti_alias+0x136> else c1 = lv_color_mix(c10, c11, xr1); c694: f8bd 101c ldrh.w r1, [sp, #28] c698: f8bd 0018 ldrh.w r0, [sp, #24] c69c: 4b09 ldr r3, [pc, #36] ; (c6c4 <_lv_img_buf_transform_anti_alias+0x2b4>) c69e: 462a mov r2, r5 c6a0: 4798 blx r3 c6a2: 4601 mov r1, r0 c6a4: e74f b.n c546 <_lv_img_buf_transform_anti_alias+0x136> else if(yr == LV_OPA_COVER) dsc->res.color = c0; c6a6: 2eff cmp r6, #255 ; 0xff c6a8: d101 bne.n c6ae <_lv_img_buf_transform_anti_alias+0x29e> c6aa: 82a7 strh r7, [r4, #20] c6ac: e74f b.n c54e <_lv_img_buf_transform_anti_alias+0x13e> else dsc->res.color = lv_color_mix(c0, c1, yr); c6ae: 4b05 ldr r3, [pc, #20] ; (c6c4 <_lv_img_buf_transform_anti_alias+0x2b4>) c6b0: 4632 mov r2, r6 c6b2: 4638 mov r0, r7 c6b4: 4798 blx r3 c6b6: 82a0 strh r0, [r4, #20] c6b8: e749 b.n c54e <_lv_img_buf_transform_anti_alias+0x13e> if(a0 <= LV_OPA_MIN && a1 <= LV_OPA_MIN) return false; c6ba: 2000 movs r0, #0 c6bc: e748 b.n c550 <_lv_img_buf_transform_anti_alias+0x140> c6be: bf00 nop c6c0: 0000c0a5 .word 0x0000c0a5 c6c4: 0000bf51 .word 0x0000bf51 c6c8: 0000bfa1 .word 0x0000bfa1 c6cc: 0000bfb5 .word 0x0000bfb5 0000c6d0 <_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) { c6d0: e92d 4ff7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr} if(entry_cnt == 0) { c6d4: f8df 8190 ldr.w r8, [pc, #400] ; c868 <_lv_img_cache_open+0x198> c6d8: f8b8 4000 ldrh.w r4, [r8] { c6dc: 4605 mov r5, r0 c6de: 460e mov r6, r1 if(entry_cnt == 0) { c6e0: b95c cbnz r4, c6fa <_lv_img_cache_open+0x2a> LV_LOG_WARN("lv_img_cache_open: the cache size is 0"); c6e2: 4b52 ldr r3, [pc, #328] ; (c82c <_lv_img_cache_open+0x15c>) c6e4: 9300 str r3, [sp, #0] c6e6: 4952 ldr r1, [pc, #328] ; (c830 <_lv_img_cache_open+0x160>) c6e8: 4b52 ldr r3, [pc, #328] ; (c834 <_lv_img_cache_open+0x164>) c6ea: 4d53 ldr r5, [pc, #332] ; (c838 <_lv_img_cache_open+0x168>) c6ec: 2244 movs r2, #68 ; 0x44 c6ee: 2002 movs r0, #2 c6f0: 47a8 blx r5 if(cached_src->dec_dsc.time_to_open == 0) cached_src->dec_dsc.time_to_open = 1; } return cached_src; } c6f2: 4620 mov r0, r4 c6f4: b003 add sp, #12 c6f6: 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); c6fa: 4b50 ldr r3, [pc, #320] ; (c83c <_lv_img_cache_open+0x16c>) if(cache[i].life > INT32_MIN + LV_IMG_CACHE_AGING) { c6fc: 4850 ldr r0, [pc, #320] ; (c840 <_lv_img_cache_open+0x170>) lv_img_cache_entry_t * cache = LV_GC_ROOT(_lv_img_cache_array); c6fe: 681f ldr r7, [r3, #0] for(i = 0; i < entry_cnt; i++) { c700: 2300 movs r3, #0 c702: 463a mov r2, r7 if(cache[i].life > INT32_MIN + LV_IMG_CACHE_AGING) { c704: 6a11 ldr r1, [r2, #32] for(i = 0; i < entry_cnt; i++) { c706: 3301 adds r3, #1 if(cache[i].life > INT32_MIN + LV_IMG_CACHE_AGING) { c708: 4281 cmp r1, r0 cache[i].life -= LV_IMG_CACHE_AGING; c70a: bfa8 it ge c70c: f101 31ff addge.w r1, r1, #4294967295 ; 0xffffffff for(i = 0; i < entry_cnt; i++) { c710: b29b uxth r3, r3 cache[i].life -= LV_IMG_CACHE_AGING; c712: bfa8 it ge c714: 6211 strge r1, [r2, #32] for(i = 0; i < entry_cnt; i++) { c716: 429c cmp r4, r3 c718: f102 0224 add.w r2, r2, #36 ; 0x24 c71c: d1f2 bne.n c704 <_lv_img_cache_open+0x34> if(strcmp(cache[i].dec_dsc.src, src) == 0) match = true; c71e: f8df b14c ldr.w fp, [pc, #332] ; c86c <_lv_img_cache_open+0x19c> c722: f04f 0a00 mov.w sl, #0 lv_img_src_t src_type = lv_img_src_get_type(cache[i].dec_dsc.src); c726: f04f 0924 mov.w r9, #36 ; 0x24 for(i = 0; i < entry_cnt; i++) { c72a: f8b8 1000 ldrh.w r1, [r8] c72e: fa1f f28a uxth.w r2, sl c732: 4291 cmp r1, r2 c734: d839 bhi.n c7aa <_lv_img_cache_open+0xda> c736: f107 0224 add.w r2, r7, #36 ; 0x24 cached_src = &cache[0]; c73a: 463c mov r4, r7 for(i = 1; i < entry_cnt; i++) { c73c: 2301 movs r3, #1 c73e: 4299 cmp r1, r3 c740: d856 bhi.n c7f0 <_lv_img_cache_open+0x120> if(cached_src->dec_dsc.src) { c742: 6863 ldr r3, [r4, #4] c744: f8df 80f0 ldr.w r8, [pc, #240] ; c838 <_lv_img_cache_open+0x168> c748: 2b00 cmp r3, #0 c74a: d05a beq.n c802 <_lv_img_cache_open+0x132> lv_img_decoder_close(&cached_src->dec_dsc); c74c: 4b3d ldr r3, [pc, #244] ; (c844 <_lv_img_cache_open+0x174>) c74e: 4620 mov r0, r4 c750: 4798 blx r3 LV_LOG_INFO("image draw: cache miss, close and reuse an entry"); c752: 4b3d ldr r3, [pc, #244] ; (c848 <_lv_img_cache_open+0x178>) c754: 9300 str r3, [sp, #0] c756: 4b37 ldr r3, [pc, #220] ; (c834 <_lv_img_cache_open+0x164>) c758: 2277 movs r2, #119 ; 0x77 LV_LOG_INFO("image draw: cache miss, cached to an empty entry"); c75a: 4935 ldr r1, [pc, #212] ; (c830 <_lv_img_cache_open+0x160>) c75c: 2001 movs r0, #1 c75e: 47c0 blx r8 t_start = lv_tick_get(); c760: 4b3a ldr r3, [pc, #232] ; (c84c <_lv_img_cache_open+0x17c>) c762: 4798 blx r3 cached_src->dec_dsc.time_to_open = 0; c764: f04f 0900 mov.w r9, #0 lv_res_t open_res = lv_img_decoder_open(&cached_src->dec_dsc, src, color); c768: 4629 mov r1, r5 c76a: 4b39 ldr r3, [pc, #228] ; (c850 <_lv_img_cache_open+0x180>) cached_src->dec_dsc.time_to_open = 0; c76c: f8c4 9014 str.w r9, [r4, #20] t_start = lv_tick_get(); c770: 4607 mov r7, r0 lv_res_t open_res = lv_img_decoder_open(&cached_src->dec_dsc, src, color); c772: 4632 mov r2, r6 c774: 4620 mov r0, r4 c776: 4798 blx r3 if(open_res == LV_RES_INV) { c778: 4605 mov r5, r0 c77a: 2800 cmp r0, #0 c77c: d146 bne.n c80c <_lv_img_cache_open+0x13c> LV_LOG_WARN("Image draw cannot open the image resource"); c77e: 4b35 ldr r3, [pc, #212] ; (c854 <_lv_img_cache_open+0x184>) c780: 492b ldr r1, [pc, #172] ; (c830 <_lv_img_cache_open+0x160>) c782: 9300 str r3, [sp, #0] c784: 2283 movs r2, #131 ; 0x83 c786: 4b2b ldr r3, [pc, #172] ; (c834 <_lv_img_cache_open+0x164>) _lv_memset_00(&cached_src->dec_dsc, sizeof(lv_img_decoder_dsc_t)); c788: 4e33 ldr r6, [pc, #204] ; (c858 <_lv_img_cache_open+0x188>) LV_LOG_WARN("Image draw cannot open the image resource"); c78a: 2002 movs r0, #2 c78c: 47c0 blx r8 lv_img_decoder_close(&cached_src->dec_dsc); c78e: 4b2d ldr r3, [pc, #180] ; (c844 <_lv_img_cache_open+0x174>) c790: 4620 mov r0, r4 c792: 4798 blx r3 _lv_memset_00(&cached_src->dec_dsc, sizeof(lv_img_decoder_dsc_t)); c794: 4620 mov r0, r4 c796: 2120 movs r1, #32 c798: 47b0 blx r6 _lv_memset_00(cached_src, sizeof(lv_img_cache_entry_t)); c79a: 4620 mov r0, r4 c79c: 2124 movs r1, #36 ; 0x24 c79e: 47b0 blx r6 cached_src->life = INT32_MIN; /*Make the empty entry very "weak" to force its use */ c7a0: f04f 4300 mov.w r3, #2147483648 ; 0x80000000 c7a4: 6223 str r3, [r4, #32] return NULL; c7a6: 462c mov r4, r5 c7a8: e7a3 b.n c6f2 <_lv_img_cache_open+0x22> lv_img_src_t src_type = lv_img_src_get_type(cache[i].dec_dsc.src); c7aa: fa1f f48a uxth.w r4, sl c7ae: fb09 7404 mla r4, r9, r4, r7 c7b2: 4b2a ldr r3, [pc, #168] ; (c85c <_lv_img_cache_open+0x18c>) c7b4: 6860 ldr r0, [r4, #4] c7b6: 4798 blx r3 if(src_type == LV_IMG_SRC_VARIABLE) { c7b8: b980 cbnz r0, c7dc <_lv_img_cache_open+0x10c> if(cache[i].dec_dsc.src == src && cache[i].dec_dsc.color.full == color.full) match = true; c7ba: 6862 ldr r2, [r4, #4] c7bc: 42aa cmp r2, r5 c7be: d114 bne.n c7ea <_lv_img_cache_open+0x11a> c7c0: 8921 ldrh r1, [r4, #8] c7c2: b2b2 uxth r2, r6 c7c4: 4291 cmp r1, r2 c7c6: d110 bne.n c7ea <_lv_img_cache_open+0x11a> cached_src->life += cached_src->dec_dsc.time_to_open * LV_IMG_CACHE_LIFE_GAIN; c7c8: 6a23 ldr r3, [r4, #32] c7ca: 6962 ldr r2, [r4, #20] c7cc: 4413 add r3, r2 c7ce: f5b3 7f7a cmp.w r3, #1000 ; 0x3e8 c7d2: bfa8 it ge c7d4: f44f 737a movge.w r3, #1000 ; 0x3e8 c7d8: 6223 str r3, [r4, #32] if(cached_src == NULL) { c7da: e78a b.n c6f2 <_lv_img_cache_open+0x22> else if(src_type == LV_IMG_SRC_FILE) { c7dc: 2801 cmp r0, #1 c7de: d104 bne.n c7ea <_lv_img_cache_open+0x11a> if(strcmp(cache[i].dec_dsc.src, src) == 0) match = true; c7e0: 6860 ldr r0, [r4, #4] c7e2: 4629 mov r1, r5 c7e4: 47d8 blx fp c7e6: 2800 cmp r0, #0 c7e8: d0ee beq.n c7c8 <_lv_img_cache_open+0xf8> for(i = 0; i < entry_cnt; i++) { c7ea: f10a 0a01 add.w sl, sl, #1 c7ee: e79c b.n c72a <_lv_img_cache_open+0x5a> if(cache[i].life < cached_src->life) { c7f0: 6a17 ldr r7, [r2, #32] c7f2: 6a20 ldr r0, [r4, #32] for(i = 1; i < entry_cnt; i++) { c7f4: 3301 adds r3, #1 if(cache[i].life < cached_src->life) { c7f6: 4287 cmp r7, r0 c7f8: bfb8 it lt c7fa: 4614 movlt r4, r2 for(i = 1; i < entry_cnt; i++) { c7fc: b29b uxth r3, r3 c7fe: 3224 adds r2, #36 ; 0x24 c800: e79d b.n c73e <_lv_img_cache_open+0x6e> LV_LOG_INFO("image draw: cache miss, cached to an empty entry"); c802: 4b17 ldr r3, [pc, #92] ; (c860 <_lv_img_cache_open+0x190>) c804: 9300 str r3, [sp, #0] c806: 227a movs r2, #122 ; 0x7a c808: 4b0a ldr r3, [pc, #40] ; (c834 <_lv_img_cache_open+0x164>) c80a: e7a6 b.n c75a <_lv_img_cache_open+0x8a> if(cached_src->dec_dsc.time_to_open == 0) { c80c: 6963 ldr r3, [r4, #20] cached_src->life = 0; c80e: f8c4 9020 str.w r9, [r4, #32] if(cached_src->dec_dsc.time_to_open == 0) { c812: 2b00 cmp r3, #0 c814: f47f af6d bne.w c6f2 <_lv_img_cache_open+0x22> cached_src->dec_dsc.time_to_open = lv_tick_elaps(t_start); c818: 4b12 ldr r3, [pc, #72] ; (c864 <_lv_img_cache_open+0x194>) c81a: 4638 mov r0, r7 c81c: 4798 blx r3 if(cached_src->dec_dsc.time_to_open == 0) cached_src->dec_dsc.time_to_open = 1; c81e: b108 cbz r0, c824 <_lv_img_cache_open+0x154> cached_src->dec_dsc.time_to_open = lv_tick_elaps(t_start); c820: 6160 str r0, [r4, #20] c822: e766 b.n c6f2 <_lv_img_cache_open+0x22> if(cached_src->dec_dsc.time_to_open == 0) cached_src->dec_dsc.time_to_open = 1; c824: 2301 movs r3, #1 c826: 6163 str r3, [r4, #20] c828: e763 b.n c6f2 <_lv_img_cache_open+0x22> c82a: bf00 nop c82c: 000277db .word 0x000277db c830: 000277a6 .word 0x000277a6 c834: 0002788e .word 0x0002788e c838: 0000eb21 .word 0x0000eb21 c83c: 20009008 .word 0x20009008 c840: 80000002 .word 0x80000002 c844: 0000d279 .word 0x0000d279 c848: 00027802 .word 0x00027802 c84c: 0000dc75 .word 0x0000dc75 c850: 0000d1a9 .word 0x0000d1a9 c854: 00027864 .word 0x00027864 c858: 0000f251 .word 0x0000f251 c85c: 00007a31 .word 0x00007a31 c860: 00027833 .word 0x00027833 c864: 0000dc89 .word 0x0000dc89 c868: 20008f6c .word 0x20008f6c c86c: 00016fe9 .word 0x00016fe9 0000c870 : * @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); c870: 4b14 ldr r3, [pc, #80] ; (c8c4 ) { c872: 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); c876: 681f ldr r7, [r3, #0] uint16_t i; for(i = 0; i < entry_cnt; i++) { c878: 4e13 ldr r6, [pc, #76] ; (c8c8 ) 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)); c87a: 4d14 ldr r5, [pc, #80] ; (c8cc ) lv_img_decoder_close(&cache[i].dec_dsc); c87c: f8df 8050 ldr.w r8, [pc, #80] ; c8d0 { c880: 4604 mov r4, r0 for(i = 0; i < entry_cnt; i++) { c882: f04f 0900 mov.w r9, #0 c886: 8832 ldrh r2, [r6, #0] c888: fa1f f389 uxth.w r3, r9 c88c: 429a cmp r2, r3 c88e: d802 bhi.n c896 _lv_memset_00(&cache[i], sizeof(lv_img_cache_entry_t)); } } } c890: b003 add sp, #12 c892: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} if(cache[i].dec_dsc.src == src || src == NULL) { c896: fa1f f389 uxth.w r3, r9 c89a: 2224 movs r2, #36 ; 0x24 c89c: fb02 7003 mla r0, r2, r3, r7 c8a0: 6843 ldr r3, [r0, #4] c8a2: 42a3 cmp r3, r4 c8a4: d000 beq.n c8a8 c8a6: b94c cbnz r4, c8bc if(cache[i].dec_dsc.src != NULL) { c8a8: b113 cbz r3, c8b0 lv_img_decoder_close(&cache[i].dec_dsc); c8aa: 9001 str r0, [sp, #4] c8ac: 47c0 blx r8 c8ae: 9801 ldr r0, [sp, #4] _lv_memset_00(&cache[i].dec_dsc, sizeof(lv_img_decoder_dsc_t)); c8b0: 9001 str r0, [sp, #4] c8b2: 2120 movs r1, #32 c8b4: 47a8 blx r5 _lv_memset_00(&cache[i], sizeof(lv_img_cache_entry_t)); c8b6: 9801 ldr r0, [sp, #4] c8b8: 2124 movs r1, #36 ; 0x24 c8ba: 47a8 blx r5 for(i = 0; i < entry_cnt; i++) { c8bc: f109 0901 add.w r9, r9, #1 c8c0: e7e1 b.n c886 c8c2: bf00 nop c8c4: 20009008 .word 0x20009008 c8c8: 20008f6c .word 0x20008f6c c8cc: 0000f251 .word 0x0000f251 c8d0: 0000d279 .word 0x0000d279 0000c8d4 : { c8d4: e92d 43f7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, lr} if(LV_GC_ROOT(_lv_img_cache_array) != NULL) { c8d8: 4c1f ldr r4, [pc, #124] ; (c958 ) c8da: 6823 ldr r3, [r4, #0] { c8dc: 4605 mov r5, r0 if(LV_GC_ROOT(_lv_img_cache_array) != NULL) { c8de: b12b cbz r3, c8ec lv_img_cache_invalidate_src(NULL); c8e0: 4b1e ldr r3, [pc, #120] ; (c95c ) c8e2: 2000 movs r0, #0 c8e4: 4798 blx r3 lv_mem_free(LV_GC_ROOT(_lv_img_cache_array)); c8e6: 6820 ldr r0, [r4, #0] c8e8: 4b1d ldr r3, [pc, #116] ; (c960 ) c8ea: 4798 blx r3 LV_GC_ROOT(_lv_img_cache_array) = lv_mem_alloc(sizeof(lv_img_cache_entry_t) * new_entry_cnt); c8ec: 2724 movs r7, #36 ; 0x24 c8ee: 4b1d ldr r3, [pc, #116] ; (c964 ) c8f0: fb07 f005 mul.w r0, r7, r5 c8f4: 4798 blx r3 LV_ASSERT_MEM(LV_GC_ROOT(_lv_img_cache_array)); c8f6: 4b1c ldr r3, [pc, #112] ; (c968 ) LV_GC_ROOT(_lv_img_cache_array) = lv_mem_alloc(sizeof(lv_img_cache_entry_t) * new_entry_cnt); c8f8: 6020 str r0, [r4, #0] LV_ASSERT_MEM(LV_GC_ROOT(_lv_img_cache_array)); c8fa: 4798 blx r3 c8fc: 4606 mov r6, r0 c8fe: b960 cbnz r0, c91a c900: 4b1a ldr r3, [pc, #104] ; (c96c ) c902: 491b ldr r1, [pc, #108] ; (c970 ) c904: 9300 str r3, [sp, #0] c906: 22a8 movs r2, #168 ; 0xa8 c908: 2003 movs r0, #3 c90a: 4d1a ldr r5, [pc, #104] ; (c974 ) c90c: 47a8 blx r5 c90e: 6822 ldr r2, [r4, #0] c910: 4819 ldr r0, [pc, #100] ; (c978 ) c912: 491a ldr r1, [pc, #104] ; (c97c ) c914: 4633 mov r3, r6 c916: 4788 blx r1 c918: e7fe b.n c918 if(LV_GC_ROOT(_lv_img_cache_array) == NULL) { c91a: 6823 ldr r3, [r4, #0] c91c: f8df 8060 ldr.w r8, [pc, #96] ; c980 c920: b923 cbnz r3, c92c entry_cnt = 0; c922: f8a8 3000 strh.w r3, [r8] } c926: b003 add sp, #12 c928: 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)); c92c: f8df 9054 ldr.w r9, [pc, #84] ; c984 entry_cnt = new_entry_cnt; c930: f8a8 5000 strh.w r5, [r8] for(i = 0; i < entry_cnt; i++) { c934: 2500 movs r5, #0 c936: f8b8 2000 ldrh.w r2, [r8] c93a: b2ab uxth r3, r5 c93c: 429a cmp r2, r3 c93e: d9f2 bls.n c926 _lv_memset_00(&LV_GC_ROOT(_lv_img_cache_array)[i].dec_dsc, sizeof(lv_img_decoder_dsc_t)); c940: 6820 ldr r0, [r4, #0] c942: b2ae uxth r6, r5 c944: 437e muls r6, r7 c946: 2120 movs r1, #32 c948: 4430 add r0, r6 c94a: 47c8 blx r9 _lv_memset_00(&LV_GC_ROOT(_lv_img_cache_array)[i], sizeof(lv_img_cache_entry_t)); c94c: 6820 ldr r0, [r4, #0] c94e: 2124 movs r1, #36 ; 0x24 c950: 4430 add r0, r6 c952: 47c8 blx r9 for(i = 0; i < entry_cnt; i++) { c954: 3501 adds r5, #1 c956: e7ee b.n c936 c958: 20009008 .word 0x20009008 c95c: 0000c871 .word 0x0000c871 c960: 0000ed1d .word 0x0000ed1d c964: 0000ec65 .word 0x0000ec65 c968: 00001a0d .word 0x00001a0d c96c: 000278a1 .word 0x000278a1 c970: 000277a6 .word 0x000277a6 c974: 0000eb21 .word 0x0000eb21 c978: 0002673e .word 0x0002673e c97c: 00001a15 .word 0x00001a15 c980: 20008f6c .word 0x20008f6c c984: 0000f251 .word 0x0000f251 0000c988 : * @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) { c988: b570 push {r4, r5, r6, lr} (void)decoder; /*Unused*/ lv_img_src_t src_type = lv_img_src_get_type(src); c98a: 4b2c ldr r3, [pc, #176] ; (ca3c ) { c98c: b086 sub sp, #24 lv_img_src_t src_type = lv_img_src_get_type(src); c98e: 4608 mov r0, r1 { c990: 460e mov r6, r1 c992: 4615 mov r5, r2 lv_img_src_t src_type = lv_img_src_get_type(src); c994: 4798 blx r3 if(src_type == LV_IMG_SRC_VARIABLE) { c996: 4604 mov r4, r0 c998: b9d8 cbnz r0, c9d2 lv_img_cf_t cf = ((lv_img_dsc_t *)src)->header.cf; c99a: 7833 ldrb r3, [r6, #0] c99c: f3c3 0304 ubfx r3, r3, #0, #5 if(cf < CF_BUILT_IN_FIRST || cf > CF_BUILT_IN_LAST) return LV_RES_INV; c9a0: 3b04 subs r3, #4 c9a2: b2db uxtb r3, r3 c9a4: 2b0a cmp r3, #10 c9a6: d811 bhi.n c9cc header->w = ((lv_img_dsc_t *)src)->header.w; header->h = ((lv_img_dsc_t *)src)->header.h; c9a8: 8873 ldrh r3, [r6, #2] c9aa: 886a ldrh r2, [r5, #2] lv_img_cf_t cf = ((lv_img_dsc_t *)src)->header.cf; c9ac: 6831 ldr r1, [r6, #0] header->h = ((lv_img_dsc_t *)src)->header.h; c9ae: f3c3 134a ubfx r3, r3, #5, #11 c9b2: f363 124f bfi r2, r3, #5, #11 c9b6: 806a strh r2, [r5, #2] header->cf = ((lv_img_dsc_t *)src)->header.cf; c9b8: 682b ldr r3, [r5, #0] c9ba: 4a21 ldr r2, [pc, #132] ; (ca40 ) c9bc: f023 131f bic.w r3, r3, #2031647 ; 0x1f001f c9c0: f423 437c bic.w r3, r3, #64512 ; 0xfc00 c9c4: 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; c9c6: 4313 orrs r3, r2 c9c8: 602b str r3, [r5, #0] } else { LV_LOG_WARN("Image get info found unknown src type"); return LV_RES_INV; } return LV_RES_OK; c9ca: 2401 movs r4, #1 } c9cc: 4620 mov r0, r4 c9ce: b006 add sp, #24 c9d0: bd70 pop {r4, r5, r6, pc} else if(src_type == LV_IMG_SRC_FILE) { c9d2: 2801 cmp r0, #1 c9d4: d125 bne.n ca22 res = lv_fs_open(&file, src, LV_FS_MODE_RD); c9d6: 4b1b ldr r3, [pc, #108] ; (ca44 ) c9d8: 2202 movs r2, #2 c9da: 4631 mov r1, r6 c9dc: a804 add r0, sp, #16 c9de: 4798 blx r3 if(res == LV_FS_RES_OK) { c9e0: b9b8 cbnz r0, ca12 res = lv_fs_read(&file, header, sizeof(lv_img_header_t), &rn); c9e2: 4e19 ldr r6, [pc, #100] ; (ca48 ) c9e4: ab03 add r3, sp, #12 c9e6: 2204 movs r2, #4 c9e8: 4629 mov r1, r5 c9ea: a804 add r0, sp, #16 c9ec: 47b0 blx r6 lv_fs_close(&file); c9ee: 4b17 ldr r3, [pc, #92] ; (ca4c ) res = lv_fs_read(&file, header, sizeof(lv_img_header_t), &rn); c9f0: 4606 mov r6, r0 lv_fs_close(&file); c9f2: a804 add r0, sp, #16 c9f4: 4798 blx r3 if(res != LV_FS_RES_OK || rn != sizeof(lv_img_header_t)) { c9f6: b916 cbnz r6, c9fe c9f8: 9b03 ldr r3, [sp, #12] c9fa: 2b04 cmp r3, #4 c9fc: d009 beq.n ca12 LV_LOG_WARN("Image get info get read file header"); c9fe: 4b14 ldr r3, [pc, #80] ; (ca50 ) ca00: 9300 str r3, [sp, #0] ca02: 4b14 ldr r3, [pc, #80] ; (ca54 ) ca04: f240 1221 movw r2, #289 ; 0x121 LV_LOG_WARN("Image get info found unknown src type"); ca08: 4913 ldr r1, [pc, #76] ; (ca58 ) ca0a: 4c14 ldr r4, [pc, #80] ; (ca5c ) ca0c: 2002 movs r0, #2 ca0e: 47a0 blx r4 ca10: e005 b.n ca1e if(header->cf < CF_BUILT_IN_FIRST || header->cf > CF_BUILT_IN_LAST) return LV_RES_INV; ca12: 782b ldrb r3, [r5, #0] ca14: 331c adds r3, #28 ca16: f003 031f and.w r3, r3, #31 ca1a: 2b0a cmp r3, #10 ca1c: d9d6 bls.n c9cc return LV_RES_INV; ca1e: 2400 movs r4, #0 ca20: e7d4 b.n c9cc else if(src_type == LV_IMG_SRC_SYMBOL) { ca22: 2802 cmp r0, #2 ca24: d104 bne.n ca30 header->cf = LV_IMG_CF_ALPHA_1BIT; ca26: 682b ldr r3, [r5, #0] ca28: f403 7278 and.w r2, r3, #992 ; 0x3e0 ca2c: 4b0c ldr r3, [pc, #48] ; (ca60 ) ca2e: e7ca b.n c9c6 LV_LOG_WARN("Image get info found unknown src type"); ca30: 4b0c ldr r3, [pc, #48] ; (ca64 ) ca32: 9300 str r3, [sp, #0] ca34: f44f 729a mov.w r2, #308 ; 0x134 ca38: 4b06 ldr r3, [pc, #24] ; (ca54 ) ca3a: e7e5 b.n ca08 ca3c: 00007a31 .word 0x00007a31 ca40: 001ffc1f .word 0x001ffc1f ca44: 0000e6cd .word 0x0000e6cd ca48: 0000e645 .word 0x0000e645 ca4c: 0000e615 .word 0x0000e615 ca50: 000278ee .word 0x000278ee ca54: 00027a5c .word 0x00027a5c ca58: 000278b7 .word 0x000278b7 ca5c: 0000eb21 .word 0x0000eb21 ca60: 0020040b .word 0x0020040b ca64: 00027912 .word 0x00027912 0000ca68 : * 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) { ca68: b570 push {r4, r5, r6, lr} (void)decoder; /*Unused*/ lv_img_decoder_built_in_data_t * user_data = dsc->user_data; ca6a: 69cc ldr r4, [r1, #28] { ca6c: 460d mov r5, r1 if(user_data) { ca6e: b184 cbz r4, ca92 #if LV_USE_FILESYSTEM if(user_data->f) { ca70: 6820 ldr r0, [r4, #0] ca72: 4e08 ldr r6, [pc, #32] ; (ca94 ) ca74: b118 cbz r0, ca7e lv_fs_close(user_data->f); ca76: 4b08 ldr r3, [pc, #32] ; (ca98 ) ca78: 4798 blx r3 lv_mem_free(user_data->f); ca7a: 6820 ldr r0, [r4, #0] ca7c: 47b0 blx r6 } #endif if(user_data->palette) lv_mem_free(user_data->palette); ca7e: 6860 ldr r0, [r4, #4] ca80: b100 cbz r0, ca84 ca82: 47b0 blx r6 if(user_data->opa) lv_mem_free(user_data->opa); ca84: 68a0 ldr r0, [r4, #8] ca86: b100 cbz r0, ca8a ca88: 47b0 blx r6 lv_mem_free(user_data); ca8a: 4620 mov r0, r4 ca8c: 47b0 blx r6 dsc->user_data = NULL; ca8e: 2300 movs r3, #0 ca90: 61eb str r3, [r5, #28] } } ca92: bd70 pop {r4, r5, r6, pc} ca94: 0000ed1d .word 0x0000ed1d ca98: 0000e615 .word 0x0000e615 0000ca9c : { ca9c: 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 || caa0: 7b08 ldrb r0, [r1, #12] { caa2: b08d sub sp, #52 ; 0x34 caa4: 4698 mov r8, r3 if(dsc->header.cf == LV_IMG_CF_TRUE_COLOR || dsc->header.cf == LV_IMG_CF_TRUE_COLOR_ALPHA || caa6: f000 031e and.w r3, r0, #30 caaa: 2b04 cmp r3, #4 { caac: f9bd a058 ldrsh.w sl, [sp, #88] ; 0x58 cab0: 9e17 ldr r6, [sp, #92] ; 0x5c cab2: 460d mov r5, r1 cab4: 4614 mov r4, r2 if(dsc->header.cf == LV_IMG_CF_TRUE_COLOR || dsc->header.cf == LV_IMG_CF_TRUE_COLOR_ALPHA || cab6: d003 beq.n cac0 dsc->header.cf == LV_IMG_CF_TRUE_COLOR_CHROMA_KEYED) { cab8: 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 || cabc: 2b06 cmp r3, #6 cabe: d13e bne.n cb3e if(dsc->src_type == LV_IMG_SRC_FILE) { cac0: f895 900a ldrb.w r9, [r5, #10] cac4: f1b9 0f01 cmp.w r9, #1 cac8: d136 bne.n cb38 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); caca: 4baf ldr r3, [pc, #700] ; (cd88 ) lv_img_decoder_built_in_data_t * user_data = dsc->user_data; cacc: f8d5 b01c ldr.w fp, [r5, #28] uint8_t px_size = lv_img_cf_get_px_size(dsc->header.cf); cad0: f000 001f and.w r0, r0, #31 cad4: 4798 blx r3 uint32_t pos = ((y * dsc->header.w + x) * px_size) >> 3; cad6: 68e9 ldr r1, [r5, #12] pos += 4; /*Skip the header*/ res = lv_fs_seek(user_data->f, pos); cad8: 4bac ldr r3, [pc, #688] ; (cd8c ) uint32_t pos = ((y * dsc->header.w + x) * px_size) >> 3; cada: f3c1 218a ubfx r1, r1, #10, #11 cade: fb18 4101 smlabb r1, r8, r1, r4 cae2: 4341 muls r1, r0 cae4: 10c9 asrs r1, r1, #3 uint8_t px_size = lv_img_cf_get_px_size(dsc->header.cf); cae6: 4607 mov r7, r0 res = lv_fs_seek(user_data->f, pos); cae8: 3104 adds r1, #4 caea: f8db 0000 ldr.w r0, [fp] caee: 4798 blx r3 if(res != LV_FS_RES_OK) { caf0: b148 cbz r0, cb06 LV_LOG_WARN("Built-in image decoder seek failed"); caf2: 4ba7 ldr r3, [pc, #668] ; (cd90 ) caf4: 9300 str r3, [sp, #0] caf6: 4ba7 ldr r3, [pc, #668] ; (cd94 ) caf8: f240 222e movw r2, #558 ; 0x22e LV_LOG_WARN("Built-in image decoder read not supports the color format"); cafc: 49a6 ldr r1, [pc, #664] ; (cd98 ) cafe: 4ca7 ldr r4, [pc, #668] ; (cd9c ) cb00: 2002 movs r0, #2 cb02: 47a0 blx r4 return LV_RES_INV; cb04: e018 b.n cb38 return LV_RES_INV; } uint32_t btr = len * (px_size >> 3); cb06: f3c7 07c7 ubfx r7, r7, #3, #8 cb0a: fb17 f70a smulbb r7, r7, sl uint32_t br = 0; cb0e: 9008 str r0, [sp, #32] lv_fs_read(user_data->f, buf, btr, &br); cb10: ab08 add r3, sp, #32 cb12: f8db 0000 ldr.w r0, [fp] cb16: 4da2 ldr r5, [pc, #648] ; (cda0 ) cb18: 463a mov r2, r7 cb1a: 4631 mov r1, r6 cb1c: 47a8 blx r5 if(res != LV_FS_RES_OK || btr != br) { cb1e: 9b08 ldr r3, [sp, #32] cb20: 429f cmp r7, r3 cb22: f000 80db beq.w ccdc LV_LOG_WARN("Built-in image decoder read failed"); cb26: 4b9f ldr r3, [pc, #636] ; (cda4 ) cb28: 9300 str r3, [sp, #0] cb2a: 499b ldr r1, [pc, #620] ; (cd98 ) cb2c: 4b99 ldr r3, [pc, #612] ; (cd94 ) cb2e: 4d9b ldr r5, [pc, #620] ; (cd9c ) cb30: f240 2235 movw r2, #565 ; 0x235 cb34: 2002 movs r0, #2 cb36: 47a8 blx r5 lv_res_t res = LV_RES_INV; cb38: f04f 0900 mov.w r9, #0 cb3c: e0ce b.n ccdc else if(dsc->header.cf == LV_IMG_CF_ALPHA_1BIT || dsc->header.cf == LV_IMG_CF_ALPHA_2BIT || cb3e: f1a3 020b sub.w r2, r3, #11 cb42: 2a03 cmp r2, #3 cb44: f200 80ce bhi.w cce4 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)*/ cb48: f44f 437f mov.w r3, #65280 ; 0xff00 cb4c: f8ad 3018 strh.w r3, [sp, #24] const lv_opa_t alpha2_opa_table[4] = {0, 85, 170, 255}; /*Opacity mapping with bpp = 2*/ cb50: f5a3 03ad sub.w r3, r3, #5668864 ; 0x568000 cb54: f5a3 5328 sub.w r3, r3, #10752 ; 0x2a00 cb58: 9307 str r3, [sp, #28] const lv_opa_t alpha4_opa_table[16] = {0, 17, 34, 51, /*Opacity mapping with bpp = 4*/ cb5a: 4b93 ldr r3, [pc, #588] ; (cda8 ) cb5c: aa08 add r2, sp, #32 cb5e: f103 0e10 add.w lr, r3, #16 cb62: 4617 mov r7, r2 cb64: 6818 ldr r0, [r3, #0] cb66: 6859 ldr r1, [r3, #4] cb68: 4694 mov ip, r2 cb6a: e8ac 0003 stmia.w ip!, {r0, r1} cb6e: 3308 adds r3, #8 cb70: 4573 cmp r3, lr cb72: 4662 mov r2, ip cb74: d1f6 bne.n cb64 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; cb76: 8929 ldrh r1, [r5, #8] lv_coord_t i; for(i = 0; i < len; i++) { cb78: 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; cb7a: ea4f 2c11 mov.w ip, r1, lsr #8 for(i = 0; i < len; i++) { cb7e: 2200 movs r2, #0 cb80: b210 sxth r0, r2 cb82: 4582 cmp sl, r0 cb84: f103 0303 add.w r3, r3, #3 cb88: dc14 bgt.n cbb4 #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); cb8a: 7b28 ldrb r0, [r5, #12] cb8c: 4b7e ldr r3, [pc, #504] ; (cd88 ) cb8e: f000 001f and.w r0, r0, #31 cb92: 4798 blx r3 uint16_t mask = (1 << px_size) - 1; /*E.g. px_size = 2; mask = 0x03*/ cb94: 2301 movs r3, #1 cb96: 4083 lsls r3, r0 cb98: 3b01 subs r3, #1 cb9a: b29b uxth r3, r3 cb9c: 9304 str r3, [sp, #16] lv_coord_t w = 0; uint32_t ofs = 0; int8_t pos = 0; switch(dsc->header.cf) { cb9e: 7b2b ldrb r3, [r5, #12] cba0: f003 031f and.w r3, r3, #31 cba4: 3b0b subs r3, #11 uint8_t px_size = lv_img_cf_get_px_size(dsc->header.cf); cba6: 4681 mov r9, r0 switch(dsc->header.cf) { cba8: 2b03 cmp r3, #3 cbaa: d85f bhi.n cc6c cbac: e8df f003 tbb [pc, r3] cbb0: 55422e08 .word 0x55422e08 buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE] = bg_color.full & 0xFF; cbb4: f803 1c03 strb.w r1, [r3, #-3] buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE + 1] = (bg_color.full >> 8) & 0xFF; cbb8: f803 cc02 strb.w ip, [r3, #-2] for(i = 0; i < len; i++) { cbbc: 3201 adds r2, #1 cbbe: e7df b.n cb80 case LV_IMG_CF_ALPHA_1BIT: w = (dsc->header.w >> 3); /*E.g. w = 20 -> w = 2 + 1*/ cbc0: 68eb ldr r3, [r5, #12] cbc2: f3c3 3247 ubfx r2, r3, #13, #8 if(dsc->header.w & 0x7) w++; cbc6: f413 5fe0 tst.w r3, #7168 ; 0x1c00 ofs += w * y + (x >> 3); /*First pixel*/ cbca: ea4f 01e4 mov.w r1, r4, asr #3 w = (dsc->header.w >> 3); /*E.g. w = 20 -> w = 2 + 1*/ cbce: bf0c ite eq cbd0: fa0f fb82 sxtheq.w fp, r2 if(dsc->header.w & 0x7) w++; cbd4: f102 0b01 addne.w fp, r2, #1 pos = 7 - (x & 0x7); cbd8: 43e4 mvns r4, r4 ofs += w * y + (x >> 3); /*First pixel*/ cbda: fb0b 1108 mla r1, fp, r8, r1 pos = 7 - (x & 0x7); cbde: f004 0407 and.w r4, r4, #7 opa_table = alpha1_opa_table; cbe2: af06 add r7, sp, #24 pos = 0; break; } #if LV_USE_FILESYSTEM lv_img_decoder_built_in_data_t * user_data = dsc->user_data; cbe4: 69eb ldr r3, [r5, #28] cbe6: 9303 str r3, [sp, #12] uint8_t * fs_buf = _lv_mem_buf_get(w); cbe8: 4658 mov r0, fp cbea: 4b70 ldr r3, [pc, #448] ; (cdac ) cbec: 9105 str r1, [sp, #20] cbee: 4798 blx r3 #endif const uint8_t * data_tmp = NULL; if(dsc->src_type == LV_IMG_SRC_VARIABLE) { cbf0: 7aab ldrb r3, [r5, #10] cbf2: 9905 ldr r1, [sp, #20] uint8_t * fs_buf = _lv_mem_buf_get(w); cbf4: 4680 mov r8, r0 if(dsc->src_type == LV_IMG_SRC_VARIABLE) { cbf6: 2b00 cmp r3, #0 cbf8: d13c bne.n cc74 const lv_img_dsc_t * img_dsc = dsc->src; data_tmp = img_dsc->data + ofs; cbfa: 686b ldr r3, [r5, #4] cbfc: 689a ldr r2, [r3, #8] cbfe: 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; cc00: f1c9 0008 rsb r0, r9, #8 data_tmp = fs_buf; cc04: 2100 movs r1, #0 buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE + LV_IMG_PX_SIZE_ALPHA_BYTE - 1] = cc06: 3602 adds r6, #2 pos = 8 - px_size; cc08: b240 sxtb r0, r0 cc0a: e05f b.n cccc w = (dsc->header.w >> 2); /*E.g. w = 13 -> w = 3 + 1 (bytes)*/ cc0c: 68eb ldr r3, [r5, #12] ofs += w * y + (x >> 2); /*First pixel*/ cc0e: 10a1 asrs r1, r4, #2 w = (dsc->header.w >> 2); /*E.g. w = 13 -> w = 3 + 1 (bytes)*/ cc10: f3c3 3208 ubfx r2, r3, #12, #9 if(dsc->header.w & 0x3) w++; cc14: f413 6f40 tst.w r3, #3072 ; 0xc00 pos = 6 - ((x & 0x3) * 2); cc18: ea6f 0404 mvn.w r4, r4 w = (dsc->header.w >> 2); /*E.g. w = 13 -> w = 3 + 1 (bytes)*/ cc1c: bf0c ite eq cc1e: fa0f fb82 sxtheq.w fp, r2 if(dsc->header.w & 0x3) w++; cc22: f102 0b01 addne.w fp, r2, #1 pos = 6 - ((x & 0x3) * 2); cc26: f004 0403 and.w r4, r4, #3 ofs += w * y + (x >> 2); /*First pixel*/ cc2a: fb0b 1108 mla r1, fp, r8, r1 pos = 6 - ((x & 0x3) * 2); cc2e: 0064 lsls r4, r4, #1 opa_table = alpha2_opa_table; cc30: af07 add r7, sp, #28 break; cc32: e7d7 b.n cbe4 w = (dsc->header.w >> 1); /*E.g. w = 13 -> w = 6 + 1 (bytes)*/ cc34: 68eb ldr r3, [r5, #12] if(dsc->header.w & 0x1) w++; cc36: 0559 lsls r1, r3, #21 w = (dsc->header.w >> 1); /*E.g. w = 13 -> w = 6 + 1 (bytes)*/ cc38: f3c3 22c9 ubfx r2, r3, #11, #10 ofs += w * y + (x >> 1); /*First pixel*/ cc3c: ea4f 0164 mov.w r1, r4, asr #1 pos = 4 - ((x & 0x1) * 4); cc40: ea6f 0404 mvn.w r4, r4 w = (dsc->header.w >> 1); /*E.g. w = 13 -> w = 6 + 1 (bytes)*/ cc44: bf54 ite pl cc46: fa0f fb82 sxthpl.w fp, r2 if(dsc->header.w & 0x1) w++; cc4a: f102 0b01 addmi.w fp, r2, #1 pos = 4 - ((x & 0x1) * 4); cc4e: f004 0401 and.w r4, r4, #1 ofs += w * y + (x >> 1); /*First pixel*/ cc52: fb0b 1108 mla r1, fp, r8, r1 pos = 4 - ((x & 0x1) * 4); cc56: 00a4 lsls r4, r4, #2 cc58: e7c4 b.n cbe4 w = dsc->header.w; /*E.g. x = 7 -> w = 7 (bytes)*/ cc5a: 68ea ldr r2, [r5, #12] cc5c: f3c2 218a ubfx r1, r2, #10, #11 cc60: 468b mov fp, r1 ofs += w * y + x; /*First pixel*/ cc62: fb18 4101 smlabb r1, r8, r1, r4 pos = 0; cc66: 2400 movs r4, #0 switch(dsc->header.cf) { cc68: 4627 mov r7, r4 cc6a: e7bb b.n cbe4 cc6c: 2400 movs r4, #0 cc6e: 4621 mov r1, r4 cc70: 46a3 mov fp, r4 cc72: e7f9 b.n cc68 lv_fs_seek(user_data->f, ofs + 4); /*+4 to skip the header*/ cc74: 9b03 ldr r3, [sp, #12] cc76: 3104 adds r1, #4 cc78: 6818 ldr r0, [r3, #0] cc7a: 4b44 ldr r3, [pc, #272] ; (cd8c ) cc7c: 4798 blx r3 lv_fs_read(user_data->f, fs_buf, w, NULL); cc7e: 9803 ldr r0, [sp, #12] cc80: 465a mov r2, fp cc82: 6800 ldr r0, [r0, #0] cc84: f8df b118 ldr.w fp, [pc, #280] ; cda0 cc88: 2300 movs r3, #0 cc8a: 4641 mov r1, r8 cc8c: 47d8 blx fp data_tmp = fs_buf; cc8e: 4642 mov r2, r8 cc90: e7b6 b.n cc00 uint8_t val_act = (*data_tmp & (mask << pos)) >> pos; cc92: 9b04 ldr r3, [sp, #16] cc94: f892 e000 ldrb.w lr, [r2] cc98: fa03 fc04 lsl.w ip, r3, r4 cc9c: ea0e 030c and.w r3, lr, ip dsc->header.cf == LV_IMG_CF_ALPHA_8BIT ? val_act : opa_table[val_act]; cca0: f895 c00c ldrb.w ip, [r5, #12] uint8_t val_act = (*data_tmp & (mask << pos)) >> pos; cca4: 4123 asrs r3, r4 buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE + LV_IMG_PX_SIZE_ALPHA_BYTE - 1] = cca6: f00c 0c1f and.w ip, ip, #31 ccaa: f1bc 0f0e cmp.w ip, #14 pos -= px_size; ccae: eba4 0409 sub.w r4, r4, r9 buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE + LV_IMG_PX_SIZE_ALPHA_BYTE - 1] = ccb2: eb01 0c41 add.w ip, r1, r1, lsl #1 ccb6: bf14 ite ne ccb8: 5cfb ldrbne r3, [r7, r3] uint8_t val_act = (*data_tmp & (mask << pos)) >> pos; ccba: b2db uxtbeq r3, r3 pos -= px_size; ccbc: b264 sxtb r4, r4 if(pos < 0) { ccbe: 2c00 cmp r4, #0 buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE + LV_IMG_PX_SIZE_ALPHA_BYTE - 1] = ccc0: f806 300c strb.w r3, [r6, ip] pos = 8 - px_size; ccc4: bfbc itt lt ccc6: 4604 movlt r4, r0 data_tmp++; ccc8: 3201 addlt r2, #1 for(i = 0; i < len; i++) { ccca: 3101 adds r1, #1 cccc: b20b sxth r3, r1 ccce: 459a cmp sl, r3 ccd0: dcdf bgt.n cc92 pos = 8 - px_size; data_tmp++; } } #if LV_USE_FILESYSTEM _lv_mem_buf_release(fs_buf); ccd2: 4b37 ldr r3, [pc, #220] ; (cdb0 ) ccd4: 4640 mov r0, r8 ccd6: 4798 blx r3 res = lv_img_decoder_built_in_line_indexed(dsc, x, y, len, buf); ccd8: f04f 0901 mov.w r9, #1 } ccdc: 4648 mov r0, r9 ccde: b00d add sp, #52 ; 0x34 cce0: 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 || cce4: 3b07 subs r3, #7 cce6: 2b03 cmp r3, #3 cce8: f200 80b0 bhi.w ce4c uint8_t px_size = lv_img_cf_get_px_size(dsc->header.cf); ccec: 4b26 ldr r3, [pc, #152] ; (cd88 ) ccee: f000 001f and.w r0, r0, #31 ccf2: 4798 blx r3 uint16_t mask = (1 << px_size) - 1; /*E.g. px_size = 2; mask = 0x03*/ ccf4: 2701 movs r7, #1 ccf6: 4087 lsls r7, r0 ccf8: 3f01 subs r7, #1 ccfa: b2bb uxth r3, r7 ccfc: 9303 str r3, [sp, #12] switch(dsc->header.cf) { ccfe: 7b2b ldrb r3, [r5, #12] cd00: f003 031f and.w r3, r3, #31 cd04: 3b07 subs r3, #7 uint8_t px_size = lv_img_cf_get_px_size(dsc->header.cf); cd06: 4681 mov r9, r0 switch(dsc->header.cf) { cd08: 2b03 cmp r3, #3 cd0a: d870 bhi.n cdee cd0c: e8df f003 tbb [pc, r3] cd10: 65522702 .word 0x65522702 w = (dsc->header.w >> 3); /*E.g. w = 20 -> w = 2 + 1*/ cd14: 68eb ldr r3, [r5, #12] cd16: f3c3 3247 ubfx r2, r3, #13, #8 if(dsc->header.w & 0x7) w++; cd1a: f413 5fe0 tst.w r3, #7168 ; 0x1c00 w = (dsc->header.w >> 3); /*E.g. w = 20 -> w = 2 + 1*/ cd1e: bf08 it eq cd20: b217 sxtheq r7, r2 ofs += w * y + (x >> 3); /*First pixel*/ cd22: ea4f 03e4 mov.w r3, r4, asr #3 if(dsc->header.w & 0x7) w++; cd26: bf18 it ne cd28: 1c57 addne r7, r2, #1 ofs += w * y + (x >> 3); /*First pixel*/ cd2a: fb07 3308 mla r3, r7, r8, r3 pos = 7 - (x & 0x7); cd2e: 43e4 mvns r4, r4 ofs += 8; /*Skip the palette*/ cd30: f103 0108 add.w r1, r3, #8 pos = 7 - (x & 0x7); cd34: f004 0407 and.w r4, r4, #7 uint8_t * fs_buf = _lv_mem_buf_get(w); cd38: 4b1c ldr r3, [pc, #112] ; (cdac ) cd3a: 9104 str r1, [sp, #16] cd3c: 4638 mov r0, r7 lv_img_decoder_built_in_data_t * user_data = dsc->user_data; cd3e: f8d5 b01c ldr.w fp, [r5, #28] uint8_t * fs_buf = _lv_mem_buf_get(w); cd42: 4798 blx r3 if(dsc->src_type == LV_IMG_SRC_VARIABLE) { cd44: 7aab ldrb r3, [r5, #10] cd46: 9904 ldr r1, [sp, #16] uint8_t * fs_buf = _lv_mem_buf_get(w); cd48: 4680 mov r8, r0 if(dsc->src_type == LV_IMG_SRC_VARIABLE) { cd4a: 2b00 cmp r3, #0 cd4c: d153 bne.n cdf6 data_tmp = img_dsc->data + ofs; cd4e: 686b ldr r3, [r5, #4] cd50: 689b ldr r3, [r3, #8] cd52: 440b add r3, r1 pos = 8 - px_size; cd54: f1c9 0508 rsb r5, r9, #8 data_tmp = fs_buf; cd58: 2000 movs r0, #0 pos = 8 - px_size; cd5a: b26d sxtb r5, r5 cd5c: e072 b.n ce44 w = (dsc->header.w >> 2); /*E.g. w = 13 -> w = 3 + 1 (bytes)*/ cd5e: 68eb ldr r3, [r5, #12] cd60: f3c3 3208 ubfx r2, r3, #12, #9 if(dsc->header.w & 0x3) w++; cd64: f413 6f40 tst.w r3, #3072 ; 0xc00 w = (dsc->header.w >> 2); /*E.g. w = 13 -> w = 3 + 1 (bytes)*/ cd68: bf08 it eq cd6a: b217 sxtheq r7, r2 ofs += w * y + (x >> 2); /*First pixel*/ cd6c: ea4f 03a4 mov.w r3, r4, asr #2 if(dsc->header.w & 0x3) w++; cd70: bf18 it ne cd72: 1c57 addne r7, r2, #1 pos = 6 - ((x & 0x3) * 2); cd74: 43e4 mvns r4, r4 ofs += w * y + (x >> 2); /*First pixel*/ cd76: fb07 3308 mla r3, r7, r8, r3 pos = 6 - ((x & 0x3) * 2); cd7a: f004 0403 and.w r4, r4, #3 ofs += 16; /*Skip the palette*/ cd7e: f103 0110 add.w r1, r3, #16 pos = 6 - ((x & 0x3) * 2); cd82: 0064 lsls r4, r4, #1 break; cd84: e7d8 b.n cd38 cd86: bf00 nop cd88: 000077ad .word 0x000077ad cd8c: 0000e67b .word 0x0000e67b cd90: 00027938 .word 0x00027938 cd94: 00027a79 .word 0x00027a79 cd98: 000278b7 .word 0x000278b7 cd9c: 0000eb21 .word 0x0000eb21 cda0: 0000e645 .word 0x0000e645 cda4: 0002795b .word 0x0002795b cda8: 00027aa1 .word 0x00027aa1 cdac: 0000f0ed .word 0x0000f0ed cdb0: 0000eda1 .word 0x0000eda1 w = (dsc->header.w >> 1); /*E.g. w = 13 -> w = 6 + 1 (bytes)*/ cdb4: 68eb ldr r3, [r5, #12] cdb6: f3c3 22c9 ubfx r2, r3, #11, #10 if(dsc->header.w & 0x1) w++; cdba: 055b lsls r3, r3, #21 w = (dsc->header.w >> 1); /*E.g. w = 13 -> w = 6 + 1 (bytes)*/ cdbc: bf58 it pl cdbe: b217 sxthpl r7, r2 ofs += w * y + (x >> 1); /*First pixel*/ cdc0: ea4f 0364 mov.w r3, r4, asr #1 if(dsc->header.w & 0x1) w++; cdc4: bf48 it mi cdc6: 1c57 addmi r7, r2, #1 pos = 4 - ((x & 0x1) * 4); cdc8: 43e4 mvns r4, r4 ofs += w * y + (x >> 1); /*First pixel*/ cdca: fb07 3308 mla r3, r7, r8, r3 pos = 4 - ((x & 0x1) * 4); cdce: f004 0401 and.w r4, r4, #1 ofs += 64; /*Skip the palette*/ cdd2: f103 0140 add.w r1, r3, #64 ; 0x40 pos = 4 - ((x & 0x1) * 4); cdd6: 00a4 lsls r4, r4, #2 cdd8: e7ae b.n cd38 w = dsc->header.w; /*E.g. x = 7 -> w = 7 (bytes)*/ cdda: 68ef ldr r7, [r5, #12] cddc: f3c7 238a ubfx r3, r7, #10, #11 ofs += w * y + x; /*First pixel*/ cde0: fb18 4803 smlabb r8, r8, r3, r4 w = dsc->header.w; /*E.g. x = 7 -> w = 7 (bytes)*/ cde4: 461f mov r7, r3 ofs += 1024; /*Skip the palette*/ cde6: f508 6180 add.w r1, r8, #1024 ; 0x400 pos = 0; cdea: 2400 movs r4, #0 break; cdec: e7a4 b.n cd38 switch(dsc->header.cf) { cdee: 2100 movs r1, #0 cdf0: 460c mov r4, r1 cdf2: 460f mov r7, r1 cdf4: e7a0 b.n cd38 lv_fs_seek(user_data->f, ofs + 4); /*+4 to skip the header*/ cdf6: 4b18 ldr r3, [pc, #96] ; (ce58 ) cdf8: f8db 0000 ldr.w r0, [fp] lv_fs_read(user_data->f, fs_buf, w, NULL); cdfc: 4d17 ldr r5, [pc, #92] ; (ce5c ) lv_fs_seek(user_data->f, ofs + 4); /*+4 to skip the header*/ cdfe: 3104 adds r1, #4 ce00: 4798 blx r3 lv_fs_read(user_data->f, fs_buf, w, NULL); ce02: 2300 movs r3, #0 ce04: f8db 0000 ldr.w r0, [fp] ce08: 463a mov r2, r7 ce0a: 4641 mov r1, r8 ce0c: 47a8 blx r5 data_tmp = fs_buf; ce0e: 4643 mov r3, r8 ce10: e7a0 b.n cd54 uint8_t val_act = (*data_tmp & (mask << pos)) >> pos; ce12: 9903 ldr r1, [sp, #12] ce14: 781a ldrb r2, [r3, #0] ce16: 40a1 lsls r1, r4 ce18: 400a ands r2, r1 ce1a: 4122 asrs r2, r4 lv_color_t color = user_data->palette[val_act]; ce1c: f8db 1004 ldr.w r1, [fp, #4] ce20: f831 1012 ldrh.w r1, [r1, r2, lsl #1] buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE] = color.full & 0xFF; ce24: 7031 strb r1, [r6, #0] buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE + 1] = (color.full >> 8) & 0xFF; ce26: 0a09 lsrs r1, r1, #8 ce28: 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]; ce2a: f8db 1008 ldr.w r1, [fp, #8] pos -= px_size; ce2e: eba4 0409 sub.w r4, r4, r9 ce32: b264 sxtb r4, r4 if(pos < 0) { ce34: 2c00 cmp r4, #0 buf[i * LV_IMG_PX_SIZE_ALPHA_BYTE + LV_IMG_PX_SIZE_ALPHA_BYTE - 1] = user_data->opa[val_act]; ce36: 5c8a ldrb r2, [r1, r2] ce38: 70b2 strb r2, [r6, #2] pos = 8 - px_size; ce3a: bfbc itt lt ce3c: 462c movlt r4, r5 data_tmp++; ce3e: 3301 addlt r3, #1 for(i = 0; i < len; i++) { ce40: 3001 adds r0, #1 ce42: 3603 adds r6, #3 ce44: b202 sxth r2, r0 ce46: 4592 cmp sl, r2 ce48: dce3 bgt.n ce12 ce4a: e742 b.n ccd2 LV_LOG_WARN("Built-in image decoder read not supports the color format"); ce4c: 4b04 ldr r3, [pc, #16] ; (ce60 ) ce4e: 9300 str r3, [sp, #0] ce50: f44f 72fe mov.w r2, #508 ; 0x1fc ce54: 4b03 ldr r3, [pc, #12] ; (ce64 ) ce56: e651 b.n cafc ce58: 0000e67b .word 0x0000e67b ce5c: 0000e645 .word 0x0000e645 ce60: 0002797e .word 0x0002797e ce64: 00027ab1 .word 0x00027ab1 0000ce68 : { ce68: e92d 47ff stmdb sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, sl, lr} ce6c: 4606 mov r6, r0 if(dsc->src_type == LV_IMG_SRC_FILE) { ce6e: 7a88 ldrb r0, [r1, #10] ce70: 2801 cmp r0, #1 { ce72: 460c mov r4, r1 if(dsc->src_type == LV_IMG_SRC_FILE) { ce74: d178 bne.n cf68 if(strcmp(lv_fs_get_ext(dsc->src), "bin")) return LV_RES_INV; ce76: 6848 ldr r0, [r1, #4] ce78: 4b8b ldr r3, [pc, #556] ; (d0a8 ) ce7a: 4798 blx r3 ce7c: 498b ldr r1, [pc, #556] ; (d0ac ) ce7e: 4b8c ldr r3, [pc, #560] ; (d0b0 ) ce80: 4798 blx r3 ce82: 2800 cmp r0, #0 ce84: f040 80a9 bne.w cfda lv_fs_res_t res = lv_fs_open(&f, dsc->src, LV_FS_MODE_RD); ce88: 6861 ldr r1, [r4, #4] ce8a: 4b8a ldr r3, [pc, #552] ; (d0b4 ) ce8c: 2202 movs r2, #2 ce8e: a802 add r0, sp, #8 ce90: 4798 blx r3 if(res != LV_FS_RES_OK) { ce92: b138 cbz r0, cea4 LV_LOG_WARN("Built-in image decoder can't open the file"); ce94: 4b88 ldr r3, [pc, #544] ; (d0b8 ) ce96: 9300 str r3, [sp, #0] ce98: 4b88 ldr r3, [pc, #544] ; (d0bc ) ce9a: f44f 72a6 mov.w r2, #332 ; 0x14c LV_LOG_WARN("Image decoder open: unknown color format") ce9e: 4988 ldr r1, [pc, #544] ; (d0c0 ) cea0: 2002 movs r0, #2 cea2: e022 b.n ceea if(dsc->user_data == NULL) { cea4: 69e3 ldr r3, [r4, #28] cea6: f8df 923c ldr.w r9, [pc, #572] ; d0e4 ceaa: f8df 823c ldr.w r8, [pc, #572] ; d0e8 ceae: bb13 cbnz r3, cef6 dsc->user_data = lv_mem_alloc(sizeof(lv_img_decoder_built_in_data_t)); ceb0: 200c movs r0, #12 ceb2: 47c8 blx r9 ceb4: 61e0 str r0, [r4, #28] LV_ASSERT_MEM(dsc->user_data); ceb6: 47c0 blx r8 ceb8: 4605 mov r5, r0 ceba: b968 cbnz r0, ced8 cebc: 4b7f ldr r3, [pc, #508] ; (d0bc ) cebe: 4980 ldr r1, [pc, #512] ; (d0c0 ) cec0: 9300 str r3, [sp, #0] cec2: f240 1253 movw r2, #339 ; 0x153 cec6: 2003 movs r0, #3 cec8: 4e7e ldr r6, [pc, #504] ; (d0c4 ) ceca: 47b0 blx r6 cecc: 69e2 ldr r2, [r4, #28] cece: 487e ldr r0, [pc, #504] ; (d0c8 ) ced0: 497e ldr r1, [pc, #504] ; (d0cc ) ced2: 462b mov r3, r5 ced4: 4788 blx r1 ced6: e7fe b.n ced6 if(dsc->user_data == NULL) { ced8: 69e0 ldr r0, [r4, #28] ceda: b948 cbnz r0, cef0 LV_LOG_ERROR("img_decoder_built_in_open: out of memory"); cedc: 4b7c ldr r3, [pc, #496] ; (d0d0 ) cede: 9300 str r3, [sp, #0] cee0: 4977 ldr r1, [pc, #476] ; (d0c0 ) cee2: 4b76 ldr r3, [pc, #472] ; (d0bc ) cee4: f240 1255 movw r2, #341 ; 0x155 cee8: 2003 movs r0, #3 LV_LOG_WARN("Image decoder open: unknown color format") ceea: 4c76 ldr r4, [pc, #472] ; (d0c4 ) ceec: 47a0 blx r4 ceee: e074 b.n cfda _lv_memset_00(dsc->user_data, sizeof(lv_img_decoder_built_in_data_t)); cef0: 4b78 ldr r3, [pc, #480] ; (d0d4 ) cef2: 210c movs r1, #12 cef4: 4798 blx r3 user_data->f = lv_mem_alloc(sizeof(f)); cef6: 2008 movs r0, #8 lv_img_decoder_built_in_data_t * user_data = dsc->user_data; cef8: 69e7 ldr r7, [r4, #28] user_data->f = lv_mem_alloc(sizeof(f)); cefa: 47c8 blx r9 cefc: 6038 str r0, [r7, #0] LV_ASSERT_MEM(user_data->f); cefe: 47c0 blx r8 cf00: 4605 mov r5, r0 cf02: b968 cbnz r0, cf20 cf04: 4b6d ldr r3, [pc, #436] ; (d0bc ) cf06: 496e ldr r1, [pc, #440] ; (d0c0 ) cf08: 9300 str r3, [sp, #0] cf0a: f240 125d movw r2, #349 ; 0x15d cf0e: 2003 movs r0, #3 cf10: 4c6c ldr r4, [pc, #432] ; (d0c4 ) cf12: 47a0 blx r4 cf14: 683a ldr r2, [r7, #0] cf16: 486c ldr r0, [pc, #432] ; (d0c8 ) cf18: 496c ldr r1, [pc, #432] ; (d0cc ) cf1a: 462b mov r3, r5 cf1c: 4788 blx r1 cf1e: e7fe b.n cf1e if(user_data->f == NULL) { cf20: 683b ldr r3, [r7, #0] cf22: b94b cbnz r3, cf38 LV_LOG_ERROR("img_decoder_built_in_open: out of memory"); cf24: 4b6a ldr r3, [pc, #424] ; (d0d0 ) cf26: 9300 str r3, [sp, #0] cf28: 4b64 ldr r3, [pc, #400] ; (d0bc ) cf2a: f240 125f movw r2, #351 ; 0x15f LV_LOG_ERROR("img_decoder_built_in_open: out of memory"); cf2e: 4964 ldr r1, [pc, #400] ; (d0c0 ) cf30: 4d64 ldr r5, [pc, #400] ; (d0c4 ) cf32: 2003 movs r0, #3 cf34: 47a8 blx r5 cf36: e04c b.n cfd2 cf38: aa02 add r2, sp, #8 cf3a: f103 0108 add.w r1, r3, #8 *d8 = *s8; cf3e: f812 0b01 ldrb.w r0, [r2], #1 cf42: f803 0b01 strb.w r0, [r3], #1 while(len) { cf46: 428b cmp r3, r1 cf48: d1f9 bne.n cf3e lv_img_cf_t cf = dsc->header.cf; cf4a: 7b23 ldrb r3, [r4, #12] cf4c: 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) { cf50: 1f02 subs r2, r0, #4 cf52: 2a02 cmp r2, #2 cf54: d811 bhi.n cf7a if(dsc->src_type == LV_IMG_SRC_VARIABLE) { cf56: 7aa3 ldrb r3, [r4, #10] cf58: 2b00 cmp r3, #0 cf5a: f040 8088 bne.w d06e dsc->img_data = ((lv_img_dsc_t *)dsc->src)->data; cf5e: 6863 ldr r3, [r4, #4] cf60: 689b ldr r3, [r3, #8] dsc->img_data = NULL; cf62: 6123 str r3, [r4, #16] return LV_RES_OK; cf64: 2001 movs r0, #1 cf66: e005 b.n cf74 else if(dsc->src_type == LV_IMG_SRC_VARIABLE) { cf68: 2800 cmp r0, #0 cf6a: d1ee bne.n cf4a if(((lv_img_dsc_t *)dsc->src)->data == NULL) { cf6c: 684a ldr r2, [r1, #4] cf6e: 6892 ldr r2, [r2, #8] cf70: 2a00 cmp r2, #0 cf72: d1ea bne.n cf4a } cf74: b004 add sp, #16 cf76: 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 || cf7a: 1fc2 subs r2, r0, #7 cf7c: 2a03 cmp r2, #3 cf7e: f200 80d4 bhi.w d12a uint8_t px_size = lv_img_cf_get_px_size(cf); cf82: 4b55 ldr r3, [pc, #340] ; (d0d8 ) cf84: f8df a15c ldr.w sl, [pc, #348] ; d0e4 cf88: f8df 915c ldr.w r9, [pc, #348] ; d0e8 cf8c: 4798 blx r3 if(dsc->user_data == NULL) { cf8e: 69e3 ldr r3, [r4, #28] uint8_t px_size = lv_img_cf_get_px_size(cf); cf90: 4680 mov r8, r0 if(dsc->user_data == NULL) { cf92: bb43 cbnz r3, cfe6 dsc->user_data = lv_mem_alloc(sizeof(lv_img_decoder_built_in_data_t)); cf94: 200c movs r0, #12 cf96: 47d0 blx sl cf98: 61e0 str r0, [r4, #28] LV_ASSERT_MEM(dsc->user_data); cf9a: 47c8 blx r9 cf9c: 4605 mov r5, r0 cf9e: b968 cbnz r0, cfbc cfa0: 4b46 ldr r3, [pc, #280] ; (d0bc ) cfa2: 4947 ldr r1, [pc, #284] ; (d0c0 ) cfa4: 9300 str r3, [sp, #0] cfa6: f44f 72c6 mov.w r2, #396 ; 0x18c cfaa: 2003 movs r0, #3 cfac: 4e45 ldr r6, [pc, #276] ; (d0c4 ) cfae: 47b0 blx r6 cfb0: 69e2 ldr r2, [r4, #28] cfb2: 4845 ldr r0, [pc, #276] ; (d0c8 ) cfb4: 4945 ldr r1, [pc, #276] ; (d0cc ) cfb6: 462b mov r3, r5 cfb8: 4788 blx r1 cfba: e7fe b.n cfba if(dsc->user_data == NULL) { cfbc: 69e5 ldr r5, [r4, #28] cfbe: b975 cbnz r5, cfde LV_LOG_ERROR("img_decoder_built_in_open: out of memory"); cfc0: 4b43 ldr r3, [pc, #268] ; (d0d0 ) cfc2: 9300 str r3, [sp, #0] cfc4: 493e ldr r1, [pc, #248] ; (d0c0 ) cfc6: 4b3d ldr r3, [pc, #244] ; (d0bc ) cfc8: 4f3e ldr r7, [pc, #248] ; (d0c4 ) cfca: f44f 72c7 mov.w r2, #398 ; 0x18e cfce: 2003 movs r0, #3 cfd0: 47b8 blx r7 lv_img_decoder_built_in_close(decoder, dsc); cfd2: 4b42 ldr r3, [pc, #264] ; (d0dc ) cfd4: 4621 mov r1, r4 cfd6: 4630 mov r0, r6 cfd8: 4798 blx r3 return LV_RES_INV; cfda: 2000 movs r0, #0 cfdc: e7ca b.n cf74 _lv_memset_00(dsc->user_data, sizeof(lv_img_decoder_built_in_data_t)); cfde: 4b3d ldr r3, [pc, #244] ; (d0d4 ) cfe0: 210c movs r1, #12 cfe2: 4628 mov r0, r5 cfe4: 4798 blx r3 user_data->palette = lv_mem_alloc(palette_size * sizeof(lv_color_t)); cfe6: 2002 movs r0, #2 cfe8: fa00 f008 lsl.w r0, r0, r8 lv_img_decoder_built_in_data_t * user_data = dsc->user_data; cfec: 69e5 ldr r5, [r4, #28] user_data->palette = lv_mem_alloc(palette_size * sizeof(lv_color_t)); cfee: 47d0 blx sl cff0: 6068 str r0, [r5, #4] LV_ASSERT_MEM(user_data->palette); cff2: 47c8 blx r9 cff4: 4607 mov r7, r0 cff6: b968 cbnz r0, d014 cff8: 4b30 ldr r3, [pc, #192] ; (d0bc ) cffa: 4931 ldr r1, [pc, #196] ; (d0c0 ) cffc: 9300 str r3, [sp, #0] cffe: f240 1297 movw r2, #407 ; 0x197 d002: 2003 movs r0, #3 d004: 4c2f ldr r4, [pc, #188] ; (d0c4 ) d006: 47a0 blx r4 d008: 686a ldr r2, [r5, #4] d00a: 482f ldr r0, [pc, #188] ; (d0c8 ) d00c: 492f ldr r1, [pc, #188] ; (d0cc ) d00e: 463b mov r3, r7 d010: 4788 blx r1 d012: e7fe b.n d012 uint32_t palette_size = 1 << px_size; d014: 2701 movs r7, #1 d016: fa07 f708 lsl.w r7, r7, r8 user_data->opa = lv_mem_alloc(palette_size * sizeof(lv_opa_t)); d01a: 4638 mov r0, r7 d01c: 47d0 blx sl d01e: 60a8 str r0, [r5, #8] LV_ASSERT_MEM(user_data->opa); d020: 47c8 blx r9 d022: 4680 mov r8, r0 d024: b968 cbnz r0, d042 d026: 4b25 ldr r3, [pc, #148] ; (d0bc ) d028: 4925 ldr r1, [pc, #148] ; (d0c0 ) d02a: 9300 str r3, [sp, #0] d02c: f240 1299 movw r2, #409 ; 0x199 d030: 2003 movs r0, #3 d032: 4c24 ldr r4, [pc, #144] ; (d0c4 ) d034: 47a0 blx r4 d036: 68aa ldr r2, [r5, #8] d038: 4823 ldr r0, [pc, #140] ; (d0c8 ) d03a: 4924 ldr r1, [pc, #144] ; (d0cc ) d03c: 4643 mov r3, r8 d03e: 4788 blx r1 d040: e7fe b.n d040 if(user_data->palette == NULL || user_data->opa == NULL) { d042: 686b ldr r3, [r5, #4] d044: b10b cbz r3, d04a d046: 68ab ldr r3, [r5, #8] d048: b92b cbnz r3, d056 LV_LOG_ERROR("img_decoder_built_in_open: out of memory"); d04a: 4b21 ldr r3, [pc, #132] ; (d0d0 ) d04c: 9300 str r3, [sp, #0] d04e: f240 129b movw r2, #411 ; 0x19b d052: 4b1a ldr r3, [pc, #104] ; (d0bc ) d054: e76b b.n cf2e if(dsc->src_type == LV_IMG_SRC_FILE) { d056: 7aa3 ldrb r3, [r4, #10] d058: 2b01 cmp r3, #1 d05a: d149 bne.n d0f0 lv_fs_seek(user_data->f, 4); /*Skip the header*/ d05c: 6828 ldr r0, [r5, #0] d05e: 4b20 ldr r3, [pc, #128] ; (d0e0 ) lv_fs_read(user_data->f, &cur_color, sizeof(lv_color32_t), NULL); d060: f8df 8088 ldr.w r8, [pc, #136] ; d0ec lv_fs_seek(user_data->f, 4); /*Skip the header*/ d064: 2104 movs r1, #4 d066: 4798 blx r3 for(i = 0; i < palette_size; i++) { d068: 2600 movs r6, #0 d06a: 42be cmp r6, r7 d06c: d101 bne.n d072 dsc->img_data = NULL; d06e: 2300 movs r3, #0 d070: e777 b.n cf62 lv_fs_read(user_data->f, &cur_color, sizeof(lv_color32_t), NULL); d072: 2300 movs r3, #0 d074: 2204 movs r2, #4 d076: a902 add r1, sp, #8 d078: 6828 ldr r0, [r5, #0] d07a: 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); d07c: f89d 1009 ldrb.w r1, [sp, #9] d080: 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); d084: 686a ldr r2, [r5, #4] d086: 0889 lsrs r1, r1, #2 d088: 08db lsrs r3, r3, #3 d08a: ea43 1341 orr.w r3, r3, r1, lsl #5 d08e: f89d 100a ldrb.w r1, [sp, #10] d092: 08c9 lsrs r1, r1, #3 d094: ea43 23c1 orr.w r3, r3, r1, lsl #11 d098: f822 3016 strh.w r3, [r2, r6, lsl #1] user_data->opa[i] = cur_color.ch.alpha; d09c: 68ab ldr r3, [r5, #8] d09e: f89d 200b ldrb.w r2, [sp, #11] d0a2: 559a strb r2, [r3, r6] for(i = 0; i < palette_size; i++) { d0a4: 3601 adds r6, #1 d0a6: e7e0 b.n d06a d0a8: 0000e799 .word 0x0000e799 d0ac: 000279b8 .word 0x000279b8 d0b0: 00016fe9 .word 0x00016fe9 d0b4: 0000e6cd .word 0x0000e6cd d0b8: 000279bc .word 0x000279bc d0bc: 00027ad3 .word 0x00027ad3 d0c0: 000278b7 .word 0x000278b7 d0c4: 0000eb21 .word 0x0000eb21 d0c8: 0002673e .word 0x0002673e d0cc: 00001a15 .word 0x00001a15 d0d0: 000279e7 .word 0x000279e7 d0d4: 0000f251 .word 0x0000f251 d0d8: 000077ad .word 0x000077ad d0dc: 0000ca69 .word 0x0000ca69 d0e0: 0000e67b .word 0x0000e67b d0e4: 0000ec65 .word 0x0000ec65 d0e8: 00001a0d .word 0x00001a0d d0ec: 0000e645 .word 0x0000e645 lv_color32_t * palette_p = (lv_color32_t *)((lv_img_dsc_t *)dsc->src)->data; d0f0: 6863 ldr r3, [r4, #4] d0f2: 6899 ldr r1, [r3, #8] for(i = 0; i < palette_size; i++) { d0f4: 2000 movs r0, #0 d0f6: 42b8 cmp r0, r7 d0f8: f101 0104 add.w r1, r1, #4 d0fc: d0b7 beq.n d06e d0fe: f811 6c03 ldrb.w r6, [r1, #-3] d102: 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); d106: 686a ldr r2, [r5, #4] d108: 08b6 lsrs r6, r6, #2 d10a: 08db lsrs r3, r3, #3 d10c: ea43 1346 orr.w r3, r3, r6, lsl #5 d110: f811 6c02 ldrb.w r6, [r1, #-2] d114: 08f6 lsrs r6, r6, #3 d116: ea43 23c6 orr.w r3, r3, r6, lsl #11 d11a: f822 3010 strh.w r3, [r2, r0, lsl #1] user_data->opa[i] = palette_p[i].ch.alpha; d11e: 68ab ldr r3, [r5, #8] d120: f811 2c01 ldrb.w r2, [r1, #-1] d124: 541a strb r2, [r3, r0] for(i = 0; i < palette_size; i++) { d126: 3001 adds r0, #1 d128: e7e5 b.n d0f6 else if(cf == LV_IMG_CF_ALPHA_1BIT || cf == LV_IMG_CF_ALPHA_2BIT || cf == LV_IMG_CF_ALPHA_4BIT || d12a: f1a0 030b sub.w r3, r0, #11 d12e: 2b03 cmp r3, #3 d130: d99d bls.n d06e lv_img_decoder_built_in_close(decoder, dsc); d132: 4b05 ldr r3, [pc, #20] ; (d148 ) d134: 4621 mov r1, r4 d136: 4630 mov r0, r6 d138: 4798 blx r3 LV_LOG_WARN("Image decoder open: unknown color format") d13a: 4b04 ldr r3, [pc, #16] ; (d14c ) d13c: 9300 str r3, [sp, #0] d13e: f240 12d3 movw r2, #467 ; 0x1d3 d142: 4b03 ldr r3, [pc, #12] ; (d150 ) d144: e6ab b.n ce9e d146: bf00 nop d148: 0000ca69 .word 0x0000ca69 d14c: 00027a10 .word 0x00027a10 d150: 00027ad3 .word 0x00027ad3 0000d154 : { d154: e92d 43f8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, lr} header->always_zero = 0; d158: 780b ldrb r3, [r1, #0] _LV_LL_READ(LV_GC_ROOT(_lv_img_defoder_ll), d) { d15a: f8df 8044 ldr.w r8, [pc, #68] ; d1a0 d15e: f8df 9044 ldr.w r9, [pc, #68] ; d1a4 header->always_zero = 0; d162: f36f 1347 bfc r3, #5, #3 d166: 700b strb r3, [r1, #0] { d168: 4607 mov r7, r0 _LV_LL_READ(LV_GC_ROOT(_lv_img_defoder_ll), d) { d16a: 4b0c ldr r3, [pc, #48] ; (d19c ) d16c: 480c ldr r0, [pc, #48] ; (d1a0 ) { d16e: 460e mov r6, r1 _LV_LL_READ(LV_GC_ROOT(_lv_img_defoder_ll), d) { d170: 4798 blx r3 lv_res_t res = LV_RES_INV; d172: 2400 movs r4, #0 _LV_LL_READ(LV_GC_ROOT(_lv_img_defoder_ll), d) { d174: 4605 mov r5, r0 d176: b915 cbnz r5, d17e } d178: 4620 mov r0, r4 d17a: e8bd 83f8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, pc} if(d->info_cb) { d17e: 682c ldr r4, [r5, #0] d180: b134 cbz r4, d190 res = d->info_cb(d, src, header); d182: 4632 mov r2, r6 d184: 4639 mov r1, r7 d186: 4628 mov r0, r5 d188: 47a0 blx r4 if(res == LV_RES_OK) break; d18a: 2801 cmp r0, #1 res = d->info_cb(d, src, header); d18c: 4604 mov r4, r0 if(res == LV_RES_OK) break; d18e: d0f3 beq.n d178 _LV_LL_READ(LV_GC_ROOT(_lv_img_defoder_ll), d) { d190: 4629 mov r1, r5 d192: 4640 mov r0, r8 d194: 47c8 blx r9 d196: 4605 mov r5, r0 d198: e7ed b.n d176 d19a: bf00 nop d19c: 0000e8d5 .word 0x0000e8d5 d1a0: 20008ff0 .word 0x20008ff0 d1a4: 0000e8e1 .word 0x0000e8e1 0000d1a8 : { d1a8: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} dsc->src_type = lv_img_src_get_type(src); d1ac: 4b22 ldr r3, [pc, #136] ; (d238 ) dsc->color = color; d1ae: 8102 strh r2, [r0, #8] { d1b0: 4604 mov r4, r0 dsc->src_type = lv_img_src_get_type(src); d1b2: 4608 mov r0, r1 { d1b4: 460f mov r7, r1 dsc->src_type = lv_img_src_get_type(src); d1b6: 4798 blx r3 dsc->user_data = NULL; d1b8: 2300 movs r3, #0 if(dsc->src_type == LV_IMG_SRC_FILE) { d1ba: 2801 cmp r0, #1 dsc->src_type = lv_img_src_get_type(src); d1bc: 72a0 strb r0, [r4, #10] dsc->user_data = NULL; d1be: 61e3 str r3, [r4, #28] if(dsc->src_type == LV_IMG_SRC_FILE) { d1c0: d11d bne.n d1fe size_t fnlen = strlen(src); d1c2: 4b1e ldr r3, [pc, #120] ; (d23c ) d1c4: 4638 mov r0, r7 d1c6: 4798 blx r3 dsc->src = lv_mem_alloc(fnlen + 1); d1c8: 4b1d ldr r3, [pc, #116] ; (d240 ) d1ca: 3001 adds r0, #1 d1cc: 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 *) d1ce: 4b1d ldr r3, [pc, #116] ; (d244 ) d1d0: 6060 str r0, [r4, #4] d1d2: 4639 mov r1, r7 d1d4: 4798 blx r3 _LV_LL_READ(LV_GC_ROOT(_lv_img_defoder_ll), d) { d1d6: 481c ldr r0, [pc, #112] ; (d248 ) d1d8: 4b1c ldr r3, [pc, #112] ; (d24c ) d1da: f8df 906c ldr.w r9, [pc, #108] ; d248 d1de: f8df a074 ldr.w sl, [pc, #116] ; d254 d1e2: 4798 blx r3 lv_res_t res = LV_RES_INV; d1e4: 2600 movs r6, #0 _LV_LL_READ(LV_GC_ROOT(_lv_img_defoder_ll), d) { d1e6: 4605 mov r5, r0 res = d->info_cb(d, src, &dsc->header); d1e8: f104 080c add.w r8, r4, #12 _LV_LL_READ(LV_GC_ROOT(_lv_img_defoder_ll), d) { d1ec: b94d cbnz r5, d202 if(res == LV_RES_INV) { d1ee: b91e cbnz r6, d1f8 _lv_memset_00(dsc, sizeof(lv_img_decoder_dsc_t)); d1f0: 4b17 ldr r3, [pc, #92] ; (d250 ) d1f2: 2120 movs r1, #32 d1f4: 4620 mov r0, r4 d1f6: 4798 blx r3 } d1f8: 4630 mov r0, r6 d1fa: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} dsc->src = src; d1fe: 6067 str r7, [r4, #4] d200: e7e9 b.n d1d6 if(d->info_cb == NULL || d->open_cb == NULL) continue; d202: 682b ldr r3, [r5, #0] d204: b19b cbz r3, d22e d206: 686a ldr r2, [r5, #4] d208: b18a cbz r2, d22e res = d->info_cb(d, src, &dsc->header); d20a: 4642 mov r2, r8 d20c: 4639 mov r1, r7 d20e: 4628 mov r0, r5 d210: 4798 blx r3 if(res != LV_RES_OK) continue; d212: 2801 cmp r0, #1 res = d->info_cb(d, src, &dsc->header); d214: 4606 mov r6, r0 if(res != LV_RES_OK) continue; d216: d10a bne.n d22e dsc->error_msg = NULL; d218: 2300 movs r3, #0 d21a: 61a3 str r3, [r4, #24] dsc->img_data = NULL; d21c: 6123 str r3, [r4, #16] dsc->decoder = d; d21e: 6025 str r5, [r4, #0] res = d->open_cb(d, dsc); d220: 686b ldr r3, [r5, #4] d222: 4621 mov r1, r4 d224: 4628 mov r0, r5 d226: 4798 blx r3 if(res == LV_RES_OK) break; d228: 2801 cmp r0, #1 res = d->open_cb(d, dsc); d22a: 4606 mov r6, r0 if(res == LV_RES_OK) break; d22c: d0e4 beq.n d1f8 _LV_LL_READ(LV_GC_ROOT(_lv_img_defoder_ll), d) { d22e: 4629 mov r1, r5 d230: 4648 mov r0, r9 d232: 47d0 blx sl d234: 4605 mov r5, r0 d236: e7d9 b.n d1ec d238: 00007a31 .word 0x00007a31 d23c: 00017381 .word 0x00017381 d240: 0000ec65 .word 0x0000ec65 d244: 000172bd .word 0x000172bd d248: 20008ff0 .word 0x20008ff0 d24c: 0000e8d5 .word 0x0000e8d5 d250: 0000f251 .word 0x0000f251 d254: 0000e8e1 .word 0x0000e8e1 0000d258 : { d258: 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); d25a: 6805 ldr r5, [r0, #0] d25c: 68ac ldr r4, [r5, #8] d25e: b14c cbz r4, d274 d260: 9e06 ldr r6, [sp, #24] d262: e9cd 3600 strd r3, r6, [sp] d266: 4613 mov r3, r2 d268: 460a mov r2, r1 d26a: 4601 mov r1, r0 d26c: 4628 mov r0, r5 d26e: 47a0 blx r4 } d270: b002 add sp, #8 d272: bd70 pop {r4, r5, r6, pc} lv_res_t res = LV_RES_INV; d274: 4620 mov r0, r4 d276: e7fb b.n d270 0000d278 : { d278: b510 push {r4, lr} d27a: 4604 mov r4, r0 if(dsc->decoder) { d27c: 6800 ldr r0, [r0, #0] d27e: b158 cbz r0, d298 if(dsc->decoder->close_cb) dsc->decoder->close_cb(dsc->decoder, dsc); d280: 68c3 ldr r3, [r0, #12] d282: b10b cbz r3, d288 d284: 4621 mov r1, r4 d286: 4798 blx r3 if(dsc->src_type == LV_IMG_SRC_FILE) { d288: 7aa3 ldrb r3, [r4, #10] d28a: 2b01 cmp r3, #1 d28c: d104 bne.n d298 lv_mem_free(dsc->src); d28e: 4b03 ldr r3, [pc, #12] ; (d29c ) d290: 6860 ldr r0, [r4, #4] d292: 4798 blx r3 dsc->src = NULL; d294: 2300 movs r3, #0 d296: 6063 str r3, [r4, #4] } d298: bd10 pop {r4, pc} d29a: bf00 nop d29c: 0000ed1d .word 0x0000ed1d 0000d2a0 : { d2a0: b573 push {r0, r1, r4, r5, r6, lr} decoder = _lv_ll_ins_head(&LV_GC_ROOT(_lv_img_defoder_ll)); d2a2: 4b0e ldr r3, [pc, #56] ; (d2dc ) d2a4: 480e ldr r0, [pc, #56] ; (d2e0 ) d2a6: 4798 blx r3 LV_ASSERT_MEM(decoder); d2a8: 4b0e ldr r3, [pc, #56] ; (d2e4 ) decoder = _lv_ll_ins_head(&LV_GC_ROOT(_lv_img_defoder_ll)); d2aa: 4604 mov r4, r0 LV_ASSERT_MEM(decoder); d2ac: 4798 blx r3 d2ae: 4605 mov r5, r0 d2b0: b960 cbnz r0, d2cc d2b2: 4b0d ldr r3, [pc, #52] ; (d2e8 ) d2b4: 490d ldr r1, [pc, #52] ; (d2ec ) d2b6: 9300 str r3, [sp, #0] d2b8: 22c9 movs r2, #201 ; 0xc9 d2ba: 2003 movs r0, #3 d2bc: 4e0c ldr r6, [pc, #48] ; (d2f0 ) d2be: 47b0 blx r6 d2c0: 480c ldr r0, [pc, #48] ; (d2f4 ) d2c2: 490d ldr r1, [pc, #52] ; (d2f8 ) d2c4: 4622 mov r2, r4 d2c6: 462b mov r3, r5 d2c8: 4788 blx r1 d2ca: e7fe b.n d2ca if(decoder == NULL) return NULL; d2cc: b11c cbz r4, d2d6 _lv_memset_00(decoder, sizeof(lv_img_decoder_t)); d2ce: 4b0b ldr r3, [pc, #44] ; (d2fc ) d2d0: 2110 movs r1, #16 d2d2: 4620 mov r0, r4 d2d4: 4798 blx r3 } d2d6: 4620 mov r0, r4 d2d8: b002 add sp, #8 d2da: bd70 pop {r4, r5, r6, pc} d2dc: 0000e845 .word 0x0000e845 d2e0: 20008ff0 .word 0x20008ff0 d2e4: 00001a0d .word 0x00001a0d d2e8: 00027af0 .word 0x00027af0 d2ec: 000278b7 .word 0x000278b7 d2f0: 0000eb21 .word 0x0000eb21 d2f4: 0002673e .word 0x0002673e d2f8: 00001a15 .word 0x00001a15 d2fc: 0000f251 .word 0x0000f251 0000d300 <_lv_img_decoder_init>: { d300: b537 push {r0, r1, r2, r4, r5, lr} _lv_ll_init(&LV_GC_ROOT(_lv_img_defoder_ll), sizeof(lv_img_decoder_t)); d302: 4b15 ldr r3, [pc, #84] ; (d358 <_lv_img_decoder_init+0x58>) d304: 4815 ldr r0, [pc, #84] ; (d35c <_lv_img_decoder_init+0x5c>) d306: 2110 movs r1, #16 d308: 4798 blx r3 decoder = lv_img_decoder_create(); d30a: 4b15 ldr r3, [pc, #84] ; (d360 <_lv_img_decoder_init+0x60>) d30c: 4798 blx r3 if(decoder == NULL) { d30e: 4604 mov r4, r0 d310: b9b8 cbnz r0, d342 <_lv_img_decoder_init+0x42> LV_LOG_WARN("lv_img_decoder_init: out of memory"); d312: 4a14 ldr r2, [pc, #80] ; (d364 <_lv_img_decoder_init+0x64>) d314: 9200 str r2, [sp, #0] d316: 2002 movs r0, #2 d318: 2247 movs r2, #71 ; 0x47 d31a: 4b13 ldr r3, [pc, #76] ; (d368 <_lv_img_decoder_init+0x68>) d31c: 4913 ldr r1, [pc, #76] ; (d36c <_lv_img_decoder_init+0x6c>) d31e: 4d14 ldr r5, [pc, #80] ; (d370 <_lv_img_decoder_init+0x70>) d320: 47a8 blx r5 LV_ASSERT_MEM(decoder); d322: 4a14 ldr r2, [pc, #80] ; (d374 <_lv_img_decoder_init+0x74>) d324: 4620 mov r0, r4 d326: 4790 blx r2 d328: b998 cbnz r0, d352 <_lv_img_decoder_init+0x52> d32a: 4b0f ldr r3, [pc, #60] ; (d368 <_lv_img_decoder_init+0x68>) d32c: 490f ldr r1, [pc, #60] ; (d36c <_lv_img_decoder_init+0x6c>) d32e: 9300 str r3, [sp, #0] d330: 2248 movs r2, #72 ; 0x48 d332: 2003 movs r0, #3 d334: 47a8 blx r5 d336: 4810 ldr r0, [pc, #64] ; (d378 <_lv_img_decoder_init+0x78>) d338: 4910 ldr r1, [pc, #64] ; (d37c <_lv_img_decoder_init+0x7c>) d33a: 2200 movs r2, #0 d33c: 2300 movs r3, #0 d33e: 4788 blx r1 d340: e7fe b.n d340 <_lv_img_decoder_init+0x40> decoder->info_cb = info_cb; d342: 4b0f ldr r3, [pc, #60] ; (d380 <_lv_img_decoder_init+0x80>) d344: 6003 str r3, [r0, #0] decoder->open_cb = open_cb; d346: 4b0f ldr r3, [pc, #60] ; (d384 <_lv_img_decoder_init+0x84>) d348: 6043 str r3, [r0, #4] decoder->read_line_cb = read_line_cb; d34a: 4b0f ldr r3, [pc, #60] ; (d388 <_lv_img_decoder_init+0x88>) d34c: 6083 str r3, [r0, #8] decoder->close_cb = close_cb; d34e: 4b0f ldr r3, [pc, #60] ; (d38c <_lv_img_decoder_init+0x8c>) d350: 60c3 str r3, [r0, #12] } d352: b003 add sp, #12 d354: bd30 pop {r4, r5, pc} d356: bf00 nop d358: 0000e831 .word 0x0000e831 d35c: 20008ff0 .word 0x20008ff0 d360: 0000d2a1 .word 0x0000d2a1 d364: 00027a39 .word 0x00027a39 d368: 00027b06 .word 0x00027b06 d36c: 000278b7 .word 0x000278b7 d370: 0000eb21 .word 0x0000eb21 d374: 00001a0d .word 0x00001a0d d378: 0002673e .word 0x0002673e d37c: 00001a15 .word 0x00001a15 d380: 0000c989 .word 0x0000c989 d384: 0000ce69 .word 0x0000ce69 d388: 0000ca9d .word 0x0000ca9d d38c: 0000ca69 .word 0x0000ca69 0000d390 : * @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); d390: 6843 ldr r3, [r0, #4] d392: 4718 bx r3 0000d394 : * @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) { d394: b410 push {r4} return font_p->get_glyph_dsc(font_p, dsc_out, letter, letter_next); d396: 6804 ldr r4, [r0, #0] d398: 46a4 mov ip, r4 } d39a: f85d 4b04 ldr.w r4, [sp], #4 return font_p->get_glyph_dsc(font_p, dsc_out, letter, letter_next); d39e: 4760 bx ip 0000d3a0 : * @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) { d3a0: b51f push {r0, r1, r2, r3, r4, lr} d3a2: 4613 mov r3, r2 lv_font_glyph_dsc_t g; bool ret; ret = lv_font_get_glyph_dsc(font, &g, letter, letter_next); d3a4: 4c04 ldr r4, [pc, #16] ; (d3b8 ) d3a6: 460a mov r2, r1 d3a8: a901 add r1, sp, #4 d3aa: 47a0 blx r4 if(ret) return g.adv_w; d3ac: b108 cbz r0, d3b2 d3ae: f8bd 0004 ldrh.w r0, [sp, #4] else return 0; } d3b2: b004 add sp, #16 d3b4: bd10 pop {r4, pc} d3b6: bf00 nop d3b8: 0000d395 .word 0x0000d395 0000d3bc : { 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]; d3bc: 7803 ldrb r3, [r0, #0] d3be: 780a ldrb r2, [r1, #0] d3c0: 4293 cmp r3, r2 else return (int32_t) ref8_p[1] - element8_p[1]; d3c2: bf09 itett eq d3c4: 784b ldrbeq r3, [r1, #1] if(ref8_p[0] != element8_p[0]) return (int32_t)ref8_p[0] - element8_p[0]; d3c6: 1a98 subne r0, r3, r2 else return (int32_t) ref8_p[1] - element8_p[1]; d3c8: 7840 ldrbeq r0, [r0, #1] d3ca: 1ac0 subeq r0, r0, r3 } d3cc: 4770 bx lr 0000d3ce : { 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]; d3ce: 8803 ldrh r3, [r0, #0] d3d0: 880a ldrh r2, [r1, #0] d3d2: 4293 cmp r3, r2 else return (int32_t) ref16_p[1] - element16_p[1]; d3d4: bf09 itett eq d3d6: 884b ldrheq r3, [r1, #2] if(ref16_p[0] != element16_p[0]) return (int32_t)ref16_p[0] - element16_p[0]; d3d8: 1a98 subne r0, r3, r2 else return (int32_t) ref16_p[1] - element16_p[1]; d3da: 8840 ldrheq r0, [r0, #2] d3dc: 1ac0 subeq r0, r0, r3 } d3de: 4770 bx lr 0000d3e0 : * @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) { d3e0: 1e53 subs r3, r2, #1 { d3e2: b530 push {r4, r5, lr} switch(len) { d3e4: 2b07 cmp r3, #7 d3e6: d81f bhi.n d428 d3e8: e8df f003 tbb [pc, r3] d3ec: 1a180423 .word 0x1a180423 d3f0: 1c1e1e1e .word 0x1c1e1e1e case 1: bit_mask = 0x1; break; case 2: bit_mask = 0x3; d3f4: 2303 movs r3, #3 break; default: bit_mask = (uint16_t)((uint16_t) 1 << len) - 1; } uint32_t byte_pos = bit_pos >> 3; d3f6: 08cd lsrs r5, r1, #3 bit_pos = bit_pos & 0x7; d3f8: f001 0107 and.w r1, r1, #7 if(bit_pos + len >= 8) { d3fc: 440a add r2, r1 d3fe: 2a07 cmp r2, #7 uint16_t in16 = (in[byte_pos] << 8) + in[byte_pos + 1]; d400: 5d44 ldrb r4, [r0, r5] if(bit_pos + len >= 8) { d402: d918 bls.n d436 uint16_t in16 = (in[byte_pos] << 8) + in[byte_pos + 1]; d404: 4428 add r0, r5 return (in16 >> (16 - bit_pos - len)) & bit_mask; d406: f1c2 0210 rsb r2, r2, #16 uint16_t in16 = (in[byte_pos] << 8) + in[byte_pos + 1]; d40a: 7841 ldrb r1, [r0, #1] d40c: eb01 2104 add.w r1, r1, r4, lsl #8 return (in16 >> (16 - bit_pos - len)) & bit_mask; d410: b289 uxth r1, r1 d412: fa41 f202 asr.w r2, r1, r2 d416: ea03 0002 and.w r0, r3, r2 } else { return (in[byte_pos] >> (8 - bit_pos - len)) & bit_mask; } } d41a: bd30 pop {r4, r5, pc} bit_mask = 0x7; d41c: 2307 movs r3, #7 break; d41e: e7ea b.n d3f6 bit_mask = 0xF; d420: 230f movs r3, #15 break; d422: e7e8 b.n d3f6 bit_mask = 0xFF; d424: 23ff movs r3, #255 ; 0xff break; d426: e7e6 b.n d3f6 bit_mask = (uint16_t)((uint16_t) 1 << len) - 1; d428: 2301 movs r3, #1 d42a: 4093 lsls r3, r2 d42c: 3b01 subs r3, #1 d42e: b2db uxtb r3, r3 d430: e7e1 b.n d3f6 switch(len) { d432: 4613 mov r3, r2 d434: e7df b.n d3f6 return (in[byte_pos] >> (8 - bit_pos - len)) & bit_mask; d436: f1c2 0208 rsb r2, r2, #8 d43a: 4114 asrs r4, r2 d43c: ea03 0004 and.w r0, r3, r4 d440: e7eb b.n d41a ... 0000d444 : * @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) { d444: 2b03 cmp r3, #3 { d446: b530 push {r4, r5, lr} if(len == 3) { d448: d104 bne.n d454 len = 4; switch(val) { d44a: 2a07 cmp r2, #7 d44c: bf9c itt ls d44e: 4b0b ldrls r3, [pc, #44] ; (d47c ) d450: 5c9a ldrbls r2, [r3, r2] len = 4; d452: 2304 movs r3, #4 break; } } uint16_t byte_pos = bit_pos >> 3; bit_pos = bit_pos & 0x7; d454: 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); d458: f04f 34ff mov.w r4, #4294967295 ; 0xffffffff d45c: f3c1 01cf ubfx r1, r1, #3, #16 d460: f1c5 0508 rsb r5, r5, #8 bit_pos = 8 - bit_pos - len; d464: 1aed subs r5, r5, r3 out[byte_pos] &= ((~bit_mask) << bit_pos); d466: fa04 f303 lsl.w r3, r4, r3 d46a: f063 03ff orn r3, r3, #255 ; 0xff d46e: 5c44 ldrb r4, [r0, r1] d470: 40ab lsls r3, r5 d472: 4023 ands r3, r4 out[byte_pos] |= (val << bit_pos); d474: 40aa lsls r2, r5 d476: 431a orrs r2, r3 d478: 5442 strb r2, [r0, r1] } d47a: bd30 pop {r4, r5, pc} d47c: 00027b53 .word 0x00027b53 0000d480 : { d480: 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); d484: 4c39 ldr r4, [pc, #228] ; (d56c ) d486: f8df a0e8 ldr.w sl, [pc, #232] ; d570 d48a: f8d4 9000 ldr.w r9, [r4] d48e: 7927 ldrb r7, [r4, #4] d490: 1843 adds r3, r0, r1 d492: 4680 mov r8, r0 d494: 9300 str r3, [sp, #0] rle_state = RLE_STATE_COUNTER; d496: f04f 0b02 mov.w fp, #2 for(i = 0; i < w; i++) { d49a: 9b00 ldr r3, [sp, #0] d49c: 4543 cmp r3, r8 d49e: d102 bne.n d4a6 } d4a0: b003 add sp, #12 d4a2: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} if(rle_state == RLE_STATE_SINGLE) { d4a6: 7963 ldrb r3, [r4, #5] d4a8: b9a3 cbnz r3, d4d4 ret = get_bits(rle_in, rle_rdp, rle_bpp); d4aa: 68a6 ldr r6, [r4, #8] d4ac: 9301 str r3, [sp, #4] d4ae: 463a mov r2, r7 d4b0: 4631 mov r1, r6 d4b2: 4648 mov r0, r9 d4b4: 47d0 blx sl d4b6: 4605 mov r5, r0 if(rle_rdp != 0 && rle_prev_v == ret) { d4b8: b136 cbz r6, d4c8 d4ba: 7b22 ldrb r2, [r4, #12] d4bc: 9b01 ldr r3, [sp, #4] d4be: 4282 cmp r2, r0 rle_cnt = 0; d4c0: bf02 ittt eq d4c2: 7363 strbeq r3, [r4, #13] rle_state = RLE_STATE_REPEATE; d4c4: 2301 moveq r3, #1 d4c6: 7163 strbeq r3, [r4, #5] rle_rdp += rle_bpp; d4c8: 443e add r6, r7 rle_prev_v = ret; d4ca: 7325 strb r5, [r4, #12] rle_rdp += rle_bpp; d4cc: 60a6 str r6, [r4, #8] out[i] = rle_next(); d4ce: f808 5b01 strb.w r5, [r8], #1 for(i = 0; i < w; i++) { d4d2: e7e2 b.n d49a else if(rle_state == RLE_STATE_REPEATE) { d4d4: 2b01 cmp r3, #1 d4d6: d131 bne.n d53c v = get_bits(rle_in, rle_rdp, 1); d4d8: 68a6 ldr r6, [r4, #8] d4da: 461a mov r2, r3 d4dc: 4631 mov r1, r6 d4de: 4648 mov r0, r9 d4e0: 47d0 blx sl rle_cnt++; d4e2: 7b63 ldrb r3, [r4, #13] d4e4: 3301 adds r3, #1 d4e6: b2db uxtb r3, r3 rle_rdp += 1; d4e8: 1c71 adds r1, r6, #1 if(v == 1) { d4ea: 2801 cmp r0, #1 rle_cnt++; d4ec: 7363 strb r3, [r4, #13] rle_rdp += 1; d4ee: 60a1 str r1, [r4, #8] if(v == 1) { d4f0: d118 bne.n d524 if(rle_cnt == 11) { d4f2: 2b0b cmp r3, #11 ret = rle_prev_v; d4f4: 7b25 ldrb r5, [r4, #12] if(rle_cnt == 11) { d4f6: d1ea bne.n d4ce rle_cnt = get_bits(rle_in, rle_rdp, 6); d4f8: 2206 movs r2, #6 d4fa: 4648 mov r0, r9 d4fc: 47d0 blx sl rle_rdp += 6; d4fe: 3607 adds r6, #7 rle_cnt = get_bits(rle_in, rle_rdp, 6); d500: 7360 strb r0, [r4, #13] rle_rdp += 6; d502: 60a6 str r6, [r4, #8] if(rle_cnt != 0) { d504: b110 cbz r0, d50c rle_state = RLE_STATE_COUNTER; d506: f884 b005 strb.w fp, [r4, #5] d50a: e7e0 b.n d4ce d50c: 9001 str r0, [sp, #4] ret = get_bits(rle_in, rle_rdp, rle_bpp); d50e: 4631 mov r1, r6 d510: 463a mov r2, r7 d512: 4648 mov r0, r9 d514: 47d0 blx sl rle_rdp += rle_bpp; d516: 443e add r6, r7 rle_state = RLE_STATE_SINGLE; d518: 9b01 ldr r3, [sp, #4] rle_prev_v = ret; d51a: 7320 strb r0, [r4, #12] ret = get_bits(rle_in, rle_rdp, rle_bpp); d51c: 4605 mov r5, r0 rle_rdp += rle_bpp; d51e: 60a6 str r6, [r4, #8] rle_state = RLE_STATE_SINGLE; d520: 7163 strb r3, [r4, #5] d522: e7d4 b.n d4ce ret = get_bits(rle_in, rle_rdp, rle_bpp); d524: 463a mov r2, r7 d526: 4648 mov r0, r9 d528: 9101 str r1, [sp, #4] d52a: 47d0 blx sl rle_rdp += rle_bpp; d52c: 9901 ldr r1, [sp, #4] rle_prev_v = ret; d52e: 7320 strb r0, [r4, #12] rle_rdp += rle_bpp; d530: 4439 add r1, r7 ret = get_bits(rle_in, rle_rdp, rle_bpp); d532: 4605 mov r5, r0 rle_rdp += rle_bpp; d534: 60a1 str r1, [r4, #8] rle_state = RLE_STATE_SINGLE; d536: f04f 0300 mov.w r3, #0 d53a: e7f1 b.n d520 else if(rle_state == RLE_STATE_COUNTER) { d53c: 2b02 cmp r3, #2 d53e: d112 bne.n d566 rle_cnt--; d540: 7b66 ldrb r6, [r4, #13] ret = rle_prev_v; d542: 7b25 ldrb r5, [r4, #12] rle_cnt--; d544: 3e01 subs r6, #1 d546: b2f6 uxtb r6, r6 d548: 7366 strb r6, [r4, #13] if(rle_cnt == 0) { d54a: 2e00 cmp r6, #0 d54c: d1bf bne.n d4ce ret = get_bits(rle_in, rle_rdp, rle_bpp); d54e: 68a1 ldr r1, [r4, #8] d550: 9101 str r1, [sp, #4] d552: 463a mov r2, r7 d554: 4648 mov r0, r9 d556: 47d0 blx sl rle_prev_v = ret; rle_rdp += rle_bpp; d558: 9901 ldr r1, [sp, #4] rle_prev_v = ret; d55a: 7320 strb r0, [r4, #12] rle_rdp += rle_bpp; d55c: 4439 add r1, r7 ret = get_bits(rle_in, rle_rdp, rle_bpp); d55e: 4605 mov r5, r0 rle_rdp += rle_bpp; d560: 60a1 str r1, [r4, #8] rle_state = RLE_STATE_SINGLE; d562: 7166 strb r6, [r4, #5] d564: e7b3 b.n d4ce uint8_t ret = 0; d566: 2500 movs r5, #0 d568: e7b1 b.n d4ce d56a: bf00 nop d56c: 20008f70 .word 0x20008f70 d570: 0000d3e1 .word 0x0000d3e1 0000d574 : * @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)); d574: 8800 ldrh r0, [r0, #0] d576: 880b ldrh r3, [r1, #0] } d578: 1ac0 subs r0, r0, r3 d57a: 4770 bx lr 0000d57c : { d57c: b5f0 push {r4, r5, r6, r7, lr} if(letter == '\0') return 0; d57e: 460c mov r4, r1 { d580: b085 sub sp, #20 if(letter == '\0') return 0; d582: b121 cbz r1, d58e d584: 6905 ldr r5, [r0, #16] if(letter == fdsc->last_letter) return fdsc->last_glyph_id; d586: 69ab ldr r3, [r5, #24] d588: 4299 cmp r1, r3 d58a: d146 bne.n d61a d58c: 69ec ldr r4, [r5, #28] } d58e: 4620 mov r0, r4 d590: b005 add sp, #20 d592: bdf0 pop {r4, r5, r6, r7, pc} uint32_t rcp = letter - fdsc->cmaps[i].range_start; d594: 68aa ldr r2, [r5, #8] d596: fb00 f603 mul.w r6, r0, r3 d59a: 1991 adds r1, r2, r6 d59c: 5992 ldr r2, [r2, r6] if(rcp > fdsc->cmaps[i].range_length) continue; d59e: 888f ldrh r7, [r1, #4] uint32_t rcp = letter - fdsc->cmaps[i].range_start; d5a0: 1aa2 subs r2, r4, r2 if(rcp > fdsc->cmaps[i].range_length) continue; d5a2: 42ba cmp r2, r7 uint32_t rcp = letter - fdsc->cmaps[i].range_start; d5a4: 9203 str r2, [sp, #12] if(rcp > fdsc->cmaps[i].range_length) continue; d5a6: f103 0301 add.w r3, r3, #1 d5aa: d838 bhi.n d61e if(fdsc->cmaps[i].type == LV_FONT_FMT_TXT_CMAP_FORMAT0_TINY) { d5ac: 7c8b ldrb r3, [r1, #18] d5ae: b913 cbnz r3, d5b6 glyph_id = fdsc->cmaps[i].glyph_id_start + rcp; d5b0: 88cb ldrh r3, [r1, #6] glyph_id = fdsc->cmaps[i].glyph_id_start + gid_ofs_16[ofs]; d5b2: 4413 add r3, r2 d5b4: e010 b.n d5d8 else if(fdsc->cmaps[i].type == LV_FONT_FMT_TXT_CMAP_FORMAT0_FULL) { d5b6: 2b01 cmp r3, #1 d5b8: d103 bne.n d5c2 glyph_id = fdsc->cmaps[i].glyph_id_start + gid_ofs_8[rcp]; d5ba: 68cb ldr r3, [r1, #12] d5bc: 5c9b ldrb r3, [r3, r2] d5be: 88ca ldrh r2, [r1, #6] d5c0: e7f7 b.n d5b2 else if(fdsc->cmaps[i].type == LV_FONT_FMT_TXT_CMAP_SPARSE_TINY) { d5c2: 2b02 cmp r3, #2 d5c4: d114 bne.n d5f0 uint8_t * p = _lv_utils_bsearch(&rcp, fdsc->cmaps[i].unicode_list, fdsc->cmaps[i].list_length, d5c6: 481b ldr r0, [pc, #108] ; (d634 ) d5c8: 8a0a ldrh r2, [r1, #16] d5ca: 9000 str r0, [sp, #0] d5cc: 6889 ldr r1, [r1, #8] d5ce: 4f1a ldr r7, [pc, #104] ; (d638 ) d5d0: a803 add r0, sp, #12 d5d2: 47b8 blx r7 if(p) { d5d4: b920 cbnz r0, d5e0 uint32_t glyph_id = 0; d5d6: 2300 movs r3, #0 fdsc->last_glyph_id = glyph_id; d5d8: e9c5 4306 strd r4, r3, [r5, #24] return glyph_id; d5dc: 461c mov r4, r3 d5de: e7d6 b.n d58e lv_uintptr_t ofs = (lv_uintptr_t)(p - (uint8_t *) fdsc->cmaps[i].unicode_list); d5e0: 68ab ldr r3, [r5, #8] d5e2: 4433 add r3, r6 d5e4: 689a ldr r2, [r3, #8] glyph_id = fdsc->cmaps[i].glyph_id_start + ofs; d5e6: 88db ldrh r3, [r3, #6] lv_uintptr_t ofs = (lv_uintptr_t)(p - (uint8_t *) fdsc->cmaps[i].unicode_list); d5e8: 1a80 subs r0, r0, r2 glyph_id = fdsc->cmaps[i].glyph_id_start + ofs; d5ea: eb03 0350 add.w r3, r3, r0, lsr #1 d5ee: e7f3 b.n d5d8 else if(fdsc->cmaps[i].type == LV_FONT_FMT_TXT_CMAP_SPARSE_FULL) { d5f0: 2b03 cmp r3, #3 d5f2: d1f0 bne.n d5d6 uint8_t * p = _lv_utils_bsearch(&rcp, fdsc->cmaps[i].unicode_list, fdsc->cmaps[i].list_length, d5f4: 4b0f ldr r3, [pc, #60] ; (d634 ) d5f6: 8a0a ldrh r2, [r1, #16] d5f8: 9300 str r3, [sp, #0] d5fa: 6889 ldr r1, [r1, #8] d5fc: 4f0e ldr r7, [pc, #56] ; (d638 ) d5fe: 2302 movs r3, #2 d600: a803 add r0, sp, #12 d602: 47b8 blx r7 if(p) { d604: 2800 cmp r0, #0 d606: d0e6 beq.n d5d6 lv_uintptr_t ofs = (lv_uintptr_t)(p - (uint8_t *) fdsc->cmaps[i].unicode_list); d608: 68aa ldr r2, [r5, #8] d60a: 4432 add r2, r6 d60c: 6893 ldr r3, [r2, #8] d60e: 1ac0 subs r0, r0, r3 ofs = ofs >> 1; /*The list stores `uint16_t` so the get the index divide by 2*/ d610: 0840 lsrs r0, r0, #1 glyph_id = fdsc->cmaps[i].glyph_id_start + gid_ofs_16[ofs]; d612: 68d3 ldr r3, [r2, #12] d614: 88d2 ldrh r2, [r2, #6] d616: 5c1b ldrb r3, [r3, r0] d618: e7cb b.n d5b2 d61a: 2300 movs r3, #0 d61c: 2014 movs r0, #20 for(i = 0; i < fdsc->cmap_num; i++) { d61e: 8a6a ldrh r2, [r5, #18] d620: b299 uxth r1, r3 d622: f3c2 0209 ubfx r2, r2, #0, #10 d626: 428a cmp r2, r1 d628: d8b4 bhi.n d594 fdsc->last_letter = letter; d62a: 61ac str r4, [r5, #24] fdsc->last_glyph_id = 0; d62c: 2400 movs r4, #0 d62e: 61ec str r4, [r5, #28] return 0; d630: e7ad b.n d58e d632: bf00 nop d634: 0000d575 .word 0x0000d575 d638: 000104c5 .word 0x000104c5 0000d63c : { d63c: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} d640: ed2d 8b02 vpush {d8} if(unicode_letter == '\t') unicode_letter = ' '; d644: 2909 cmp r1, #9 uint32_t gid = get_glyph_dsc_id(font, unicode_letter); d646: 4b68 ldr r3, [pc, #416] ; (d7e8 ) lv_font_fmt_txt_dsc_t * fdsc = (lv_font_fmt_txt_dsc_t *) font->dsc; d648: 6905 ldr r5, [r0, #16] { d64a: b08b sub sp, #44 ; 0x2c uint32_t gid = get_glyph_dsc_id(font, unicode_letter); d64c: bf08 it eq d64e: 2120 moveq r1, #32 d650: 4798 blx r3 if(!gid) return NULL; d652: 4607 mov r7, r0 d654: b928 cbnz r0, d662 d656: 2000 movs r0, #0 } d658: b00b add sp, #44 ; 0x2c d65a: ecbd 8b02 vpop {d8} d65e: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} if(fdsc->bitmap_format == LV_FONT_FMT_TXT_PLAIN) { d662: 7d2b ldrb r3, [r5, #20] const lv_font_fmt_txt_glyph_dsc_t * gdsc = &fdsc->glyph_dsc[gid]; d664: f8d5 9004 ldr.w r9, [r5, #4] if(fdsc->bitmap_format == LV_FONT_FMT_TXT_PLAIN) { d668: 079b lsls r3, r3, #30 const lv_font_fmt_txt_glyph_dsc_t * gdsc = &fdsc->glyph_dsc[gid]; d66a: eb09 08c0 add.w r8, r9, r0, lsl #3 if(fdsc->bitmap_format == LV_FONT_FMT_TXT_PLAIN) { d66e: d109 bne.n d684 if(gdsc) return &fdsc->glyph_bitmap[gdsc->bitmap_index]; d670: f1b8 0f00 cmp.w r8, #0 d674: d0ef beq.n d656 d676: f859 3030 ldr.w r3, [r9, r0, lsl #3] d67a: 6828 ldr r0, [r5, #0] d67c: f3c3 0313 ubfx r3, r3, #0, #20 d680: 4418 add r0, r3 d682: e7e9 b.n d658 uint32_t gsize = gdsc->box_w * gdsc->box_h; d684: f898 4004 ldrb.w r4, [r8, #4] d688: f898 3005 ldrb.w r3, [r8, #5] d68c: fb14 f403 smulbb r4, r4, r3 if(gsize == 0) return NULL; d690: 2c00 cmp r4, #0 d692: d0e0 beq.n d656 switch(fdsc->bpp) { d694: 7ceb ldrb r3, [r5, #19] d696: f3c3 0383 ubfx r3, r3, #2, #4 d69a: 3b01 subs r3, #1 d69c: 2b03 cmp r3, #3 d69e: d805 bhi.n d6ac d6a0: e8df f003 tbb [pc, r3] d6a4: 53535002 .word 0x53535002 buf_size = (gsize + 7) >> 3; d6a8: 3407 adds r4, #7 d6aa: 08e4 lsrs r4, r4, #3 if(_lv_mem_get_size(decompr_buf) < buf_size) { d6ac: 4e4f ldr r6, [pc, #316] ; (d7ec ) d6ae: 4b50 ldr r3, [pc, #320] ; (d7f0 ) d6b0: 6930 ldr r0, [r6, #16] d6b2: 4798 blx r3 d6b4: 42a0 cmp r0, r4 d6b6: d34b bcc.n d750 decompress(&fdsc->glyph_bitmap[gdsc->bitmap_index], decompr_buf, gdsc->box_w, gdsc->box_h, (uint8_t)fdsc->bpp); d6b8: f859 2037 ldr.w r2, [r9, r7, lsl #3] d6bc: 682b ldr r3, [r5, #0] d6be: 7ced ldrb r5, [r5, #19] d6c0: f898 7004 ldrb.w r7, [r8, #4] d6c4: f3c2 0213 ubfx r2, r2, #0, #20 d6c8: 4413 add r3, r2 d6ca: 6932 ldr r2, [r6, #16] rle_in = in; d6cc: 6033 str r3, [r6, #0] decompress(&fdsc->glyph_bitmap[gdsc->bitmap_index], decompr_buf, gdsc->box_w, gdsc->box_h, (uint8_t)fdsc->bpp); d6ce: ee08 2a10 vmov s16, r2 d6d2: f898 2005 ldrb.w r2, [r8, #5] d6d6: 9207 str r2, [sp, #28] d6d8: f3c5 0283 ubfx r2, r5, #2, #4 d6dc: 2a03 cmp r2, #3 rle_state = RLE_STATE_SINGLE; d6de: 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); d6e2: 4611 mov r1, r2 rle_bpp = bpp; d6e4: 7132 strb r2, [r6, #4] d6e6: bf08 it eq d6e8: 2104 moveq r1, #4 rle_state = RLE_STATE_SINGLE; d6ea: f886 b005 strb.w fp, [r6, #5] rle_rdp = 0; d6ee: f8c6 b008 str.w fp, [r6, #8] rle_prev_v = 0; d6f2: f886 b00c strb.w fp, [r6, #12] rle_cnt = 0; d6f6: f886 b00d strb.w fp, [r6, #13] uint8_t * line_buf1 = _lv_mem_buf_get(w); d6fa: 4638 mov r0, r7 d6fc: 4e3d ldr r6, [pc, #244] ; (d7f4 ) decompress(&fdsc->glyph_bitmap[gdsc->bitmap_index], decompr_buf, gdsc->box_w, gdsc->box_h, (uint8_t)fdsc->bpp); d6fe: 9203 str r2, [sp, #12] if(bpp == 3) wr_size = 4; d700: 9104 str r1, [sp, #16] uint8_t * line_buf1 = _lv_mem_buf_get(w); d702: 47b0 blx r6 d704: 4604 mov r4, r0 uint8_t * line_buf2 = _lv_mem_buf_get(w); d706: 4638 mov r0, r7 d708: 47b0 blx r6 decompress_line(line_buf1, w); d70a: 4b3b ldr r3, [pc, #236] ; (d7f8 ) uint8_t * line_buf2 = _lv_mem_buf_get(w); d70c: 4606 mov r6, r0 decompress_line(line_buf1, w); d70e: 4639 mov r1, r7 d710: 4620 mov r0, r4 d712: 4798 blx r3 decompress(&fdsc->glyph_bitmap[gdsc->bitmap_index], decompr_buf, gdsc->box_w, gdsc->box_h, (uint8_t)fdsc->bpp); d714: 46b9 mov r9, r7 d716: 46a0 mov r8, r4 d718: eb07 0a04 add.w sl, r7, r4 for(x = 0; x < w; x++) { d71c: 45d0 cmp r8, sl d71e: d131 bne.n d784 d720: 9b04 ldr r3, [sp, #16] d722: fb17 f303 smulbb r3, r7, r3 d726: 9306 str r3, [sp, #24] d728: 469a mov sl, r3 for(y = 1; y < h; y++) { d72a: f04f 0801 mov.w r8, #1 d72e: 9b07 ldr r3, [sp, #28] d730: 4543 cmp r3, r8 d732: dc32 bgt.n d79a _lv_mem_buf_release(line_buf1); d734: 4620 mov r0, r4 d736: 4c31 ldr r4, [pc, #196] ; (d7fc ) d738: 47a0 blx r4 _lv_mem_buf_release(line_buf2); d73a: 4630 mov r0, r6 d73c: 47a0 blx r4 return decompr_buf; d73e: 4b2b ldr r3, [pc, #172] ; (d7ec ) d740: 6918 ldr r0, [r3, #16] d742: e789 b.n d658 buf_size = (gsize + 3) >> 2; d744: 3403 adds r4, #3 d746: 08a4 lsrs r4, r4, #2 break; d748: e7b0 b.n d6ac buf_size = (gsize + 1) >> 1; d74a: 3401 adds r4, #1 d74c: 0864 lsrs r4, r4, #1 break; d74e: e7ad b.n d6ac decompr_buf = lv_mem_realloc(decompr_buf, buf_size); d750: 4621 mov r1, r4 d752: 4b2b ldr r3, [pc, #172] ; (d800 ) d754: 6930 ldr r0, [r6, #16] d756: 4798 blx r3 LV_ASSERT_MEM(decompr_buf); d758: 4b2a ldr r3, [pc, #168] ; (d804 ) decompr_buf = lv_mem_realloc(decompr_buf, buf_size); d75a: 6130 str r0, [r6, #16] LV_ASSERT_MEM(decompr_buf); d75c: 4798 blx r3 d75e: 4604 mov r4, r0 d760: b960 cbnz r0, d77c d762: 4b29 ldr r3, [pc, #164] ; (d808 ) d764: 4929 ldr r1, [pc, #164] ; (d80c ) d766: 9300 str r3, [sp, #0] d768: 2272 movs r2, #114 ; 0x72 d76a: 2003 movs r0, #3 d76c: 4d28 ldr r5, [pc, #160] ; (d810 ) d76e: 47a8 blx r5 d770: 6932 ldr r2, [r6, #16] d772: 4828 ldr r0, [pc, #160] ; (d814 ) d774: 4928 ldr r1, [pc, #160] ; (d818 ) d776: 4623 mov r3, r4 d778: 4788 blx r1 d77a: e7fe b.n d77a if(decompr_buf == NULL) return NULL; d77c: 6933 ldr r3, [r6, #16] d77e: 2b00 cmp r3, #0 d780: d19a bne.n d6b8 d782: e768 b.n d656 bits_write(out, wrp, line_buf1[x], bpp); d784: 9b03 ldr r3, [sp, #12] d786: f818 2b01 ldrb.w r2, [r8], #1 d78a: 4d24 ldr r5, [pc, #144] ; (d81c ) d78c: 4659 mov r1, fp d78e: ee18 0a10 vmov r0, s16 d792: 47a8 blx r5 wrp += wr_size; d794: 9b04 ldr r3, [sp, #16] d796: 449b add fp, r3 for(x = 0; x < w; x++) { d798: e7c0 b.n d71c decompress_line(line_buf2, w); d79a: 4b17 ldr r3, [pc, #92] ; (d7f8 ) d79c: 4649 mov r1, r9 d79e: 4630 mov r0, r6 d7a0: 4798 blx r3 for(x = 0; x < w; x++) { d7a2: 1e63 subs r3, r4, #1 d7a4: 9305 str r3, [sp, #20] d7a6: 19f3 adds r3, r6, r7 d7a8: 46b3 mov fp, r6 d7aa: 9308 str r3, [sp, #32] d7ac: 4651 mov r1, sl d7ae: 9b08 ldr r3, [sp, #32] d7b0: 459b cmp fp, r3 d7b2: d106 bne.n d7c2 d7b4: 9b06 ldr r3, [sp, #24] d7b6: f108 0801 add.w r8, r8, #1 d7ba: 449a add sl, r3 for(y = 1; y < h; y++) { d7bc: fa0f f888 sxth.w r8, r8 d7c0: e7b5 b.n d72e line_buf1[x] = line_buf2[x] ^ line_buf1[x]; d7c2: 9805 ldr r0, [sp, #20] d7c4: f81b 2b01 ldrb.w r2, [fp], #1 d7c8: f810 3f01 ldrb.w r3, [r0, #1]! d7cc: 9005 str r0, [sp, #20] d7ce: 405a eors r2, r3 d7d0: 7002 strb r2, [r0, #0] bits_write(out, wrp, line_buf1[x], bpp); d7d2: 9b03 ldr r3, [sp, #12] d7d4: 4d11 ldr r5, [pc, #68] ; (d81c ) d7d6: 9109 str r1, [sp, #36] ; 0x24 d7d8: ee18 0a10 vmov r0, s16 d7dc: 47a8 blx r5 wrp += wr_size; d7de: 9b04 ldr r3, [sp, #16] d7e0: 9909 ldr r1, [sp, #36] ; 0x24 d7e2: 4419 add r1, r3 for(x = 0; x < w; x++) { d7e4: e7e3 b.n d7ae d7e6: bf00 nop d7e8: 0000d57d .word 0x0000d57d d7ec: 20008f70 .word 0x20008f70 d7f0: 0000ed85 .word 0x0000ed85 d7f4: 0000f0ed .word 0x0000f0ed d7f8: 0000d481 .word 0x0000d481 d7fc: 0000eda1 .word 0x0000eda1 d800: 0000f04d .word 0x0000f04d d804: 00001a0d .word 0x00001a0d d808: 00027b5b .word 0x00027b5b d80c: 00027b1b .word 0x00027b1b d810: 0000eb21 .word 0x0000eb21 d814: 0002673e .word 0x0002673e d818: 00001a15 .word 0x00001a15 d81c: 0000d445 .word 0x0000d445 0000d820 : if(unicode_letter == '\t') { d820: 2a09 cmp r2, #9 { d822: 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); d826: f8df a13c ldr.w sl, [pc, #316] ; d964 lv_font_fmt_txt_dsc_t * fdsc = (lv_font_fmt_txt_dsc_t *) font->dsc; d82a: 6907 ldr r7, [r0, #16] { d82c: 460c mov r4, r1 d82e: 4611 mov r1, r2 unicode_letter = ' '; d830: bf08 it eq d832: 2120 moveq r1, #32 { d834: 4680 mov r8, r0 d836: 4699 mov r9, r3 is_tab = true; d838: bf0c ite eq d83a: 2601 moveq r6, #1 bool is_tab = false; d83c: 2600 movne r6, #0 uint32_t gid = get_glyph_dsc_id(font, unicode_letter); d83e: 47d0 blx sl if(!gid) return false; d840: 4605 mov r5, r0 d842: 2800 cmp r0, #0 d844: f000 8086 beq.w d954 if(fdsc->kern_dsc) { d848: 68fb ldr r3, [r7, #12] d84a: bb3b cbnz r3, d89c int8_t kvalue = 0; d84c: 2300 movs r3, #0 const lv_font_fmt_txt_glyph_dsc_t * gdsc = &fdsc->glyph_dsc[gid]; d84e: 6879 ldr r1, [r7, #4] int32_t kv = ((int32_t)((int32_t)kvalue * fdsc->kern_scale) >> 4); d850: 8a3a ldrh r2, [r7, #16] const lv_font_fmt_txt_glyph_dsc_t * gdsc = &fdsc->glyph_dsc[gid]; d852: eb01 01c5 add.w r1, r1, r5, lsl #3 int32_t kv = ((int32_t)((int32_t)kvalue * fdsc->kern_scale) >> 4); d856: 4353 muls r3, r2 uint32_t adv_w = gdsc->adv_w; d858: 884a ldrh r2, [r1, #2] d85a: f3c2 100b ubfx r0, r2, #4, #12 int32_t kv = ((int32_t)((int32_t)kvalue * fdsc->kern_scale) >> 4); d85e: 111b asrs r3, r3, #4 uint32_t adv_w = gdsc->adv_w; d860: 4602 mov r2, r0 if(is_tab) adv_w *= 2; d862: b10e cbz r6, d868 d864: b202 sxth r2, r0 d866: 0052 lsls r2, r2, #1 adv_w = (adv_w + (1 << 3)) >> 4; d868: 3308 adds r3, #8 d86a: 4413 add r3, r2 d86c: 091b lsrs r3, r3, #4 dsc_out->adv_w = adv_w; d86e: 8023 strh r3, [r4, #0] dsc_out->box_h = gdsc->box_h; d870: 794b ldrb r3, [r1, #5] d872: 80a3 strh r3, [r4, #4] dsc_out->box_w = gdsc->box_w; d874: 790b ldrb r3, [r1, #4] d876: 8063 strh r3, [r4, #2] dsc_out->ofs_x = gdsc->ofs_x; d878: f991 2006 ldrsb.w r2, [r1, #6] d87c: 80e2 strh r2, [r4, #6] dsc_out->ofs_y = gdsc->ofs_y; d87e: f991 2007 ldrsb.w r2, [r1, #7] d882: 8122 strh r2, [r4, #8] dsc_out->bpp = (uint8_t)fdsc->bpp; d884: 7cfa ldrb r2, [r7, #19] d886: f3c2 0283 ubfx r2, r2, #2, #4 d88a: 72a2 strb r2, [r4, #10] if(is_tab) dsc_out->box_w = dsc_out->box_w * 2; d88c: 2e00 cmp r6, #0 d88e: d063 beq.n d958 d890: 005b lsls r3, r3, #1 d892: 8063 strh r3, [r4, #2] } d894: 4630 mov r0, r6 d896: b004 add sp, #16 d898: 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); d89c: 4649 mov r1, r9 d89e: 4640 mov r0, r8 d8a0: 47d0 blx sl if(gid_next) { d8a2: 2800 cmp r0, #0 d8a4: d0d2 beq.n d84c kvalue = get_kern_value(font, gid, gid_next); d8a6: f8d8 2010 ldr.w r2, [r8, #16] const lv_font_fmt_txt_kern_pair_t * kdsc = fdsc->kern_dsc; d8aa: f8d2 800c ldr.w r8, [r2, #12] if(fdsc->kern_classes == 0) { d8ae: 7cd2 ldrb r2, [r2, #19] d8b0: 0653 lsls r3, r2, #25 d8b2: d43a bmi.n d92a if(kdsc->glyph_ids_size == 0) { d8b4: f898 200b ldrb.w r2, [r8, #11] d8b8: f012 0203 ands.w r2, r2, #3 d8bc: d11b bne.n d8f6 const uint8_t * g_ids = kdsc->glyph_ids; d8be: 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); d8c2: f8d8 2008 ldr.w r2, [r8, #8] d8c6: f8df a0a0 ldr.w sl, [pc, #160] ; d968 uint16_t g_id_both = (gid_right << 8) + gid_left; /*Create one number from the ids*/ d8ca: eb05 2300 add.w r3, r5, r0, lsl #8 d8ce: 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); d8d2: 4b22 ldr r3, [pc, #136] ; (d95c ) d8d4: 9300 str r3, [sp, #0] d8d6: f022 427f bic.w r2, r2, #4278190080 ; 0xff000000 d8da: 2302 movs r3, #2 d8dc: 4649 mov r1, r9 d8de: a803 add r0, sp, #12 d8e0: 47d0 blx sl if(kid_p) { d8e2: 4603 mov r3, r0 d8e4: 2800 cmp r0, #0 d8e6: d0b2 beq.n d84e lv_uintptr_t ofs = (lv_uintptr_t)(kid_p - g_ids); d8e8: eba0 0309 sub.w r3, r0, r9 ofs = ofs >> 1; /*ofs is for pair, divide by 2 to refer as a single value*/ d8ec: 085b lsrs r3, r3, #1 value = kdsc->values[ofs]; d8ee: f8d8 2004 ldr.w r2, [r8, #4] d8f2: 56d3 ldrsb r3, [r2, r3] d8f4: e7ab b.n d84e else if(kdsc->glyph_ids_size == 1) { d8f6: 2a01 cmp r2, #1 d8f8: d1a8 bne.n d84c const uint16_t * g_ids = kdsc->glyph_ids; d8fa: 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); d8fe: f8d8 2008 ldr.w r2, [r8, #8] d902: 4b17 ldr r3, [pc, #92] ; (d960 ) d904: 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*/ d906: eb05 2000 add.w r0, r5, r0, lsl #8 d90a: 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); d90c: 2304 movs r3, #4 d90e: f8df a058 ldr.w sl, [pc, #88] ; d968 d912: f022 427f bic.w r2, r2, #4278190080 ; 0xff000000 d916: 4649 mov r1, r9 d918: a803 add r0, sp, #12 d91a: 47d0 blx sl if(kid_p) { d91c: 4603 mov r3, r0 d91e: 2800 cmp r0, #0 d920: d095 beq.n d84e lv_uintptr_t ofs = (lv_uintptr_t)(kid_p - (const uint8_t *)g_ids); d922: eba0 0309 sub.w r3, r0, r9 ofs = ofs >> 4; /*ofs is 4 byte pairs, divide by 4 to refer as a single value*/ d926: 091b lsrs r3, r3, #4 d928: e7e1 b.n d8ee uint8_t left_class = kdsc->left_class_mapping[gid_left]; d92a: f8d8 2004 ldr.w r2, [r8, #4] uint8_t right_class = kdsc->right_class_mapping[gid_right]; d92e: f8d8 1008 ldr.w r1, [r8, #8] uint8_t left_class = kdsc->left_class_mapping[gid_left]; d932: 5d52 ldrb r2, [r2, r5] uint8_t right_class = kdsc->right_class_mapping[gid_right]; d934: 5c09 ldrb r1, [r1, r0] if(left_class > 0 && right_class > 0) { d936: 2a00 cmp r2, #0 d938: d088 beq.n d84c d93a: 2900 cmp r1, #0 d93c: d086 beq.n d84c value = kdsc->class_pair_values[(left_class - 1) * kdsc->right_class_cnt + (right_class - 1)]; d93e: f8d8 3000 ldr.w r3, [r8] d942: f898 000d ldrb.w r0, [r8, #13] d946: 3a01 subs r2, #1 d948: 440b add r3, r1 d94a: fb00 3302 mla r3, r0, r2, r3 d94e: f913 3c01 ldrsb.w r3, [r3, #-1] d952: e77c b.n d84e if(!gid) return false; d954: 4606 mov r6, r0 d956: e79d b.n d894 return true; d958: 2601 movs r6, #1 d95a: e79b b.n d894 d95c: 0000d3bd .word 0x0000d3bd d960: 0000d3cf .word 0x0000d3cf d964: 0000d57d .word 0x0000d57d d968: 000104c5 .word 0x000104c5 0000d96c <_lv_font_clean_up_fmt_txt>: { d96c: b510 push {r4, lr} if(decompr_buf) { d96e: 4c04 ldr r4, [pc, #16] ; (d980 <_lv_font_clean_up_fmt_txt+0x14>) d970: 6920 ldr r0, [r4, #16] d972: b118 cbz r0, d97c <_lv_font_clean_up_fmt_txt+0x10> lv_mem_free(decompr_buf); d974: 4b03 ldr r3, [pc, #12] ; (d984 <_lv_font_clean_up_fmt_txt+0x18>) d976: 4798 blx r3 decompr_buf = NULL; d978: 2300 movs r3, #0 d97a: 6123 str r3, [r4, #16] } d97c: bd10 pop {r4, pc} d97e: bf00 nop d980: 20008f70 .word 0x20008f70 d984: 0000ed1d .word 0x0000ed1d 0000d988 : * 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) { d988: b510 push {r4, lr} _lv_memset_00(driver, sizeof(lv_disp_drv_t)); d98a: 4b0d ldr r3, [pc, #52] ; (d9c0 ) d98c: 212c movs r1, #44 ; 0x2c { d98e: 4604 mov r4, r0 _lv_memset_00(driver, sizeof(lv_disp_drv_t)); d990: 4798 blx r3 driver->flush_cb = NULL; driver->hor_res = LV_HOR_RES_MAX; d992: 4b0c ldr r3, [pc, #48] ; (d9c4 ) driver->flush_cb = NULL; d994: 2200 movs r2, #0 driver->ver_res = LV_VER_RES_MAX; driver->buffer = NULL; d996: 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; d99a: 8923 ldrh r3, [r4, #8] driver->flush_cb = NULL; d99c: 60e2 str r2, [r4, #12] driver->antialiasing = true; d99e: f423 637f bic.w r3, r3, #4080 ; 0xff0 d9a2: f023 030f bic.w r3, r3, #15 d9a6: f443 7302 orr.w r3, r3, #520 ; 0x208 d9aa: f043 0301 orr.w r3, r3, #1 d9ae: 8123 strh r3, [r4, #8] driver->color_chroma_key = LV_COLOR_TRANSP; d9b0: 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; d9b4: e9c4 2208 strd r2, r2, [r4, #32] driver->color_chroma_key = LV_COLOR_TRANSP; d9b8: 8523 strh r3, [r4, #40] ; 0x28 #if LV_USE_USER_DATA driver->user_data = NULL; #endif driver->set_px_cb = NULL; d9ba: 6162 str r2, [r4, #20] } d9bc: bd10 pop {r4, pc} d9be: bf00 nop d9c0: 0000f251 .word 0x0000f251 d9c4: 011001e0 .word 0x011001e0 0000d9c8 : * 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) { d9c8: b5f8 push {r3, r4, r5, r6, r7, lr} d9ca: 4604 mov r4, r0 d9cc: 460d mov r5, r1 d9ce: 4617 mov r7, r2 d9d0: 461e mov r6, r3 _lv_memset_00(disp_buf, sizeof(lv_disp_buf_t)); d9d2: 2124 movs r1, #36 ; 0x24 d9d4: 4b03 ldr r3, [pc, #12] ; (d9e4 ) d9d6: 4798 blx r3 disp_buf->buf1 = buf1; disp_buf->buf2 = buf2; d9d8: e9c4 5700 strd r5, r7, [r4] disp_buf->buf_act = disp_buf->buf1; disp_buf->size = size_in_px_cnt; d9dc: e9c4 5602 strd r5, r6, [r4, #8] } d9e0: bdf8 pop {r3, r4, r5, r6, r7, pc} d9e2: bf00 nop d9e4: 0000f251 .word 0x0000f251 0000d9e8 : * 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) { d9e8: 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)); d9ec: 4b3b ldr r3, [pc, #236] ; (dadc ) d9ee: 4e3c ldr r6, [pc, #240] ; (dae0 ) { d9f0: 4605 mov r5, r0 lv_disp_t * disp = _lv_ll_ins_head(&LV_GC_ROOT(_lv_disp_ll)); d9f2: 483c ldr r0, [pc, #240] ; (dae4 ) d9f4: 4798 blx r3 if(!disp) { d9f6: 4604 mov r4, r0 d9f8: b998 cbnz r0, da22 LV_ASSERT_MEM(disp); d9fa: 47b0 blx r6 d9fc: b120 cbz r0, da08 return NULL; d9fe: 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; } da00: 4620 mov r0, r4 da02: b002 add sp, #8 da04: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} LV_ASSERT_MEM(disp); da08: 4b37 ldr r3, [pc, #220] ; (dae8 ) da0a: 4938 ldr r1, [pc, #224] ; (daec ) da0c: 9300 str r3, [sp, #0] da0e: 227c movs r2, #124 ; 0x7c da10: 2003 movs r0, #3 da12: 4c37 ldr r4, [pc, #220] ; (daf0 ) da14: 47a0 blx r4 da16: 4837 ldr r0, [pc, #220] ; (daf4 ) da18: 4937 ldr r1, [pc, #220] ; (daf8 ) da1a: 2200 movs r2, #0 da1c: 2300 movs r3, #0 da1e: 4788 blx r1 da20: e7fe b.n da20 _lv_memset_00(disp, sizeof(lv_disp_t)); da22: 4b36 ldr r3, [pc, #216] ; (dafc ) da24: f44f 71b8 mov.w r1, #368 ; 0x170 da28: 4798 blx r3 _lv_memcpy(&disp->driver, driver, sizeof(lv_disp_drv_t)); da2a: 4629 mov r1, r5 da2c: 4b34 ldr r3, [pc, #208] ; (db00 ) if(disp_def == NULL) disp_def = disp; da2e: 4d35 ldr r5, [pc, #212] ; (db04 ) _lv_memcpy(&disp->driver, driver, sizeof(lv_disp_drv_t)); da30: 222c movs r2, #44 ; 0x2c da32: 4620 mov r0, r4 da34: 4798 blx r3 _lv_ll_init(&disp->scr_ll, sizeof(lv_obj_t)); da36: 4b34 ldr r3, [pc, #208] ; (db08 ) da38: 214c movs r1, #76 ; 0x4c da3a: f104 0030 add.w r0, r4, #48 ; 0x30 da3e: 4798 blx r3 disp->last_activity_time = 0; da40: 2300 movs r3, #0 da42: f8c4 316c str.w r3, [r4, #364] ; 0x16c if(disp_def == NULL) disp_def = disp; da46: 682b ldr r3, [r5, #0] da48: b903 cbnz r3, da4c da4a: 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); da4c: 4623 mov r3, r4 da4e: 2203 movs r2, #3 da50: 211e movs r1, #30 da52: 482e ldr r0, [pc, #184] ; (db0c ) da54: f8df 80cc ldr.w r8, [pc, #204] ; db24 lv_disp_t * disp_def_tmp = disp_def; da58: 682f ldr r7, [r5, #0] disp_def = disp; /*Temporarily change the default screen to create the default screens on the da5a: 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); da5c: 47c0 blx r8 da5e: 62e0 str r0, [r4, #44] ; 0x2c LV_ASSERT_MEM(disp->refr_task); da60: 47b0 blx r6 da62: 4606 mov r6, r0 da64: b960 cbnz r0, da80 da66: 4b20 ldr r3, [pc, #128] ; (dae8 ) da68: 4920 ldr r1, [pc, #128] ; (daec ) da6a: 9300 str r3, [sp, #0] da6c: 228d movs r2, #141 ; 0x8d da6e: 2003 movs r0, #3 da70: 4d1f ldr r5, [pc, #124] ; (daf0 ) da72: 47a8 blx r5 da74: 6ae2 ldr r2, [r4, #44] ; 0x2c da76: 481f ldr r0, [pc, #124] ; (daf4 ) da78: 491f ldr r1, [pc, #124] ; (daf8 ) da7a: 4633 mov r3, r6 da7c: 4788 blx r1 da7e: e7fe b.n da7e if(disp->refr_task == NULL) return NULL; da80: 6ae3 ldr r3, [r4, #44] ; 0x2c da82: 2b00 cmp r3, #0 da84: d0bb beq.n d9fe disp->inv_p = 0; da86: f8b4 3168 ldrh.w r3, [r4, #360] ; 0x168 disp->act_scr = lv_obj_create(NULL, NULL); /*Create a default screen on the display*/ da8a: 4e21 ldr r6, [pc, #132] ; (db10 ) disp->inv_p = 0; da8c: f36f 0309 bfc r3, #0, #10 disp->last_activity_time = 0; da90: 2100 movs r1, #0 disp->inv_p = 0; da92: f8a4 3168 strh.w r3, [r4, #360] ; 0x168 disp->last_activity_time = 0; da96: f8c4 116c str.w r1, [r4, #364] ; 0x16c disp->act_scr = lv_obj_create(NULL, NULL); /*Create a default screen on the display*/ da9a: 4608 mov r0, r1 da9c: 47b0 blx r6 disp->top_layer = lv_obj_create(NULL, NULL); /*Create top layer on the display*/ da9e: 2100 movs r1, #0 disp->act_scr = lv_obj_create(NULL, NULL); /*Create a default screen on the display*/ daa0: 63e0 str r0, [r4, #60] ; 0x3c disp->top_layer = lv_obj_create(NULL, NULL); /*Create top layer on the display*/ daa2: 4608 mov r0, r1 daa4: 47b0 blx r6 disp->sys_layer = lv_obj_create(NULL, NULL); /*Create sys layer on the display*/ daa6: 2100 movs r1, #0 disp->top_layer = lv_obj_create(NULL, NULL); /*Create top layer on the display*/ daa8: 6420 str r0, [r4, #64] ; 0x40 disp->sys_layer = lv_obj_create(NULL, NULL); /*Create sys layer on the display*/ daaa: 4608 mov r0, r1 daac: 47b0 blx r6 lv_obj_reset_style_list(disp->top_layer, LV_OBJ_PART_MAIN); daae: 4e19 ldr r6, [pc, #100] ; (db14 ) disp->sys_layer = lv_obj_create(NULL, NULL); /*Create sys layer on the display*/ dab0: 6460 str r0, [r4, #68] ; 0x44 lv_obj_reset_style_list(disp->top_layer, LV_OBJ_PART_MAIN); dab2: 2100 movs r1, #0 dab4: 6c20 ldr r0, [r4, #64] ; 0x40 dab6: 47b0 blx r6 lv_obj_reset_style_list(disp->sys_layer, LV_OBJ_PART_MAIN); dab8: 6c60 ldr r0, [r4, #68] ; 0x44 daba: 2100 movs r1, #0 dabc: 47b0 blx r6 lv_obj_set_click(disp->top_layer, false); dabe: 6c20 ldr r0, [r4, #64] ; 0x40 dac0: 4e15 ldr r6, [pc, #84] ; (db18 ) dac2: 2100 movs r1, #0 dac4: 47b0 blx r6 lv_obj_set_click(disp->sys_layer, false); dac6: 6c60 ldr r0, [r4, #68] ; 0x44 dac8: 2100 movs r1, #0 daca: 47b0 blx r6 lv_obj_invalidate(disp->act_scr); dacc: 6be0 ldr r0, [r4, #60] ; 0x3c dace: 4b13 ldr r3, [pc, #76] ; (db1c ) dad0: 4798 blx r3 lv_task_ready(disp->refr_task); /*Be sure the screen will be refreshed immediately on start up*/ dad2: 6ae0 ldr r0, [r4, #44] ; 0x2c dad4: 4b12 ldr r3, [pc, #72] ; (db20 ) disp_def = disp_def_tmp; /*Revert the default display*/ dad6: 602f str r7, [r5, #0] lv_task_ready(disp->refr_task); /*Be sure the screen will be refreshed immediately on start up*/ dad8: 4798 blx r3 return disp; dada: e791 b.n da00 dadc: 0000e845 .word 0x0000e845 dae0: 00001a0d .word 0x00001a0d dae4: 20008fa8 .word 0x20008fa8 dae8: 0002b84f .word 0x0002b84f daec: 0002b81c .word 0x0002b81c daf0: 0000eb21 .word 0x0000eb21 daf4: 0002673e .word 0x0002673e daf8: 00001a15 .word 0x00001a15 dafc: 0000f251 .word 0x0000f251 db00: 0000ee69 .word 0x0000ee69 db04: 20008f84 .word 0x20008f84 db08: 0000e831 .word 0x0000e831 db0c: 00005221 .word 0x00005221 db10: 00003311 .word 0x00003311 db14: 000030c1 .word 0x000030c1 db18: 00002089 .word 0x00002089 db1c: 000029b1 .word 0x000029b1 db20: 0000fe79 .word 0x0000fe79 db24: 0000fe09 .word 0x0000fe09 0000db28 : * @return pointer to the default display */ lv_disp_t * lv_disp_get_default(void) { return disp_def; } db28: 4b01 ldr r3, [pc, #4] ; (db30 ) db2a: 6818 ldr r0, [r3, #0] db2c: 4770 bx lr db2e: bf00 nop db30: 20008f84 .word 0x20008f84 0000db34 : * @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(); db34: b910 cbnz r0, db3c return disp_def; db36: 4b07 ldr r3, [pc, #28] ; (db54 ) db38: 6818 ldr r0, [r3, #0] if(disp == NULL) db3a: b138 cbz r0, db4c return LV_HOR_RES_MAX; else return disp->driver.rotated == 0 ? disp->driver.hor_res : disp->driver.ver_res; db3c: 7a03 ldrb r3, [r0, #8] db3e: 079b lsls r3, r3, #30 db40: bf54 ite pl db42: f9b0 0000 ldrshpl.w r0, [r0] db46: f9b0 0002 ldrshmi.w r0, [r0, #2] db4a: 4770 bx lr return LV_HOR_RES_MAX; db4c: f44f 70f0 mov.w r0, #480 ; 0x1e0 } db50: 4770 bx lr db52: bf00 nop db54: 20008f84 .word 0x20008f84 0000db58 : * @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(); db58: b910 cbnz r0, db60 return disp_def; db5a: 4b07 ldr r3, [pc, #28] ; (db78 ) db5c: 6818 ldr r0, [r3, #0] if(disp == NULL) db5e: b138 cbz r0, db70 return LV_VER_RES_MAX; else return disp->driver.rotated == 0 ? disp->driver.ver_res : disp->driver.hor_res; db60: 7a03 ldrb r3, [r0, #8] db62: 079b lsls r3, r3, #30 db64: bf54 ite pl db66: f9b0 0002 ldrshpl.w r0, [r0, #2] db6a: f9b0 0000 ldrshmi.w r0, [r0] db6e: 4770 bx lr return LV_VER_RES_MAX; db70: f44f 7088 mov.w r0, #272 ; 0x110 } db74: 4770 bx lr db76: bf00 nop db78: 20008f84 .word 0x20008f84 0000db7c : * @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(); db7c: b910 cbnz r0, db84 return disp_def; db7e: 4b04 ldr r3, [pc, #16] ; (db90 ) db80: 6818 ldr r0, [r3, #0] if(disp == NULL) return LV_DPI; /*Do not return 0 because it might be a divider*/ db82: b118 cbz r0, db8c return disp->driver.dpi; db84: 8900 ldrh r0, [r0, #8] db86: f3c0 0089 ubfx r0, r0, #2, #10 db8a: 4770 bx lr if(disp == NULL) return LV_DPI; /*Do not return 0 because it might be a divider*/ db8c: 2082 movs r0, #130 ; 0x82 } db8e: 4770 bx lr db90: 20008f84 .word 0x20008f84 0000db94 : * 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) { db94: b508 push {r3, lr} if(disp == NULL) disp = lv_disp_get_default(); db96: 4601 mov r1, r0 db98: b910 cbnz r0, dba0 return disp_def; db9a: 4b0f ldr r3, [pc, #60] ; (dbd8 ) db9c: 6819 ldr r1, [r3, #0] uint32_t w; if(disp == NULL) w = LV_HOR_RES_MAX; db9e: b199 cbz r1, dbc8 else w = lv_disp_get_hor_res(disp); dba0: 4b0e ldr r3, [pc, #56] ; (dbdc ) dba2: 4608 mov r0, r1 dba4: 4798 blx r3 dba6: 4602 mov r2, r0 uint32_t dpi = lv_disp_get_dpi(disp); dba8: 4b0d ldr r3, [pc, #52] ; (dbe0 ) dbaa: 4608 mov r0, r1 dbac: 4798 blx r3 w = w * 10 / dpi; dbae: 230a movs r3, #10 dbb0: 435a muls r2, r3 dbb2: fbb2 f0f0 udiv r0, r2, r0 if(w < LV_DISP_SMALL_LIMIT) return LV_DISP_SIZE_SMALL; dbb6: 281d cmp r0, #29 dbb8: d909 bls.n dbce if(w < LV_DISP_MEDIUM_LIMIT) return LV_DISP_SIZE_MEDIUM; dbba: 2831 cmp r0, #49 ; 0x31 dbbc: d909 bls.n dbd2 if(w < LV_DISP_LARGE_LIMIT) return LV_DISP_SIZE_LARGE; else return LV_DISP_SIZE_EXTRA_LARGE; dbbe: 2846 cmp r0, #70 ; 0x46 dbc0: bf34 ite cc dbc2: 2002 movcc r0, #2 dbc4: 2003 movcs r0, #3 } dbc6: bd08 pop {r3, pc} if(disp == NULL) w = LV_HOR_RES_MAX; dbc8: f44f 72f0 mov.w r2, #480 ; 0x1e0 dbcc: e7ec b.n dba8 if(w < LV_DISP_SMALL_LIMIT) return LV_DISP_SIZE_SMALL; dbce: 2000 movs r0, #0 dbd0: e7f9 b.n dbc6 if(w < LV_DISP_MEDIUM_LIMIT) return LV_DISP_SIZE_MEDIUM; dbd2: 2001 movs r0, #1 dbd4: e7f7 b.n dbc6 dbd6: bf00 nop dbd8: 20008f84 .word 0x20008f84 dbdc: 0000db35 .word 0x0000db35 dbe0: 0000db7d .word 0x0000db7d 0000dbe4 : 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; dbe4: 6843 ldr r3, [r0, #4] dbe6: 2200 movs r2, #0 dbe8: 619a str r2, [r3, #24] disp_drv->buffer->flushing_last = 0; dbea: 61da str r2, [r3, #28] } dbec: 4770 bx lr ... 0000dbf0 : * @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) dbf0: 4601 mov r1, r0 return _lv_ll_get_head(&LV_GC_ROOT(_lv_disp_ll)); dbf2: 4803 ldr r0, [pc, #12] ; (dc00 ) if(disp == NULL) dbf4: b909 cbnz r1, dbfa return _lv_ll_get_head(&LV_GC_ROOT(_lv_disp_ll)); dbf6: 4b03 ldr r3, [pc, #12] ; (dc04 ) dbf8: 4718 bx r3 else return _lv_ll_get_next(&LV_GC_ROOT(_lv_disp_ll), disp); dbfa: 4b03 ldr r3, [pc, #12] ; (dc08 ) dbfc: 4718 bx r3 dbfe: bf00 nop dc00: 20008fa8 .word 0x20008fa8 dc04: 0000e8d5 .word 0x0000e8d5 dc08: 0000e8e1 .word 0x0000e8e1 0000dc0c : * @return pointer to the internal buffers */ lv_disp_buf_t * lv_disp_get_buf(lv_disp_t * disp) { return disp->driver.buffer; } dc0c: 6840 ldr r0, [r0, #4] dc0e: 4770 bx lr 0000dc10 : * @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) dc10: 6843 ldr r3, [r0, #4] dc12: 6818 ldr r0, [r3, #0] dc14: b118 cbz r0, dc1e dc16: 6858 ldr r0, [r3, #4] dc18: 3800 subs r0, #0 dc1a: bf18 it ne dc1c: 2001 movne r0, #1 return true; else return false; } dc1e: 4770 bx lr 0000dc20 : * `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) { dc20: 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) { dc22: 4b07 ldr r3, [pc, #28] ; (dc40 ) { dc24: 4602 mov r2, r0 if(lv_disp_is_double_buf(disp) && disp->driver.buffer->size == scr_size) { dc26: 4798 blx r3 dc28: b140 cbz r0, dc3c uint32_t scr_size = disp->driver.hor_res * disp->driver.ver_res; dc2a: 8813 ldrh r3, [r2, #0] dc2c: 8851 ldrh r1, [r2, #2] if(lv_disp_is_double_buf(disp) && disp->driver.buffer->size == scr_size) { dc2e: 6852 ldr r2, [r2, #4] dc30: 68d0 ldr r0, [r2, #12] uint32_t scr_size = disp->driver.hor_res * disp->driver.ver_res; dc32: fb13 f301 smulbb r3, r3, r1 if(lv_disp_is_double_buf(disp) && disp->driver.buffer->size == scr_size) { dc36: 1a1b subs r3, r3, r0 dc38: 4258 negs r0, r3 dc3a: 4158 adcs r0, r3 return true; } else { return false; } } dc3c: bd08 pop {r3, pc} dc3e: bf00 nop dc40: 0000dc11 .word 0x0000dc11 0000dc44 : * @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) dc44: 4601 mov r1, r0 return _lv_ll_get_head(&LV_GC_ROOT(_lv_indev_ll)); dc46: 4803 ldr r0, [pc, #12] ; (dc54 ) if(indev == NULL) dc48: b909 cbnz r1, dc4e return _lv_ll_get_head(&LV_GC_ROOT(_lv_indev_ll)); dc4a: 4b03 ldr r3, [pc, #12] ; (dc58 ) dc4c: 4718 bx r3 else return _lv_ll_get_next(&LV_GC_ROOT(_lv_indev_ll), indev); dc4e: 4b03 ldr r3, [pc, #12] ; (dc5c ) dc50: 4718 bx r3 dc52: bf00 nop dc54: 20008fb4 .word 0x20008fb4 dc58: 0000e8d5 .word 0x0000e8d5 dc5c: 0000e8e1 .word 0x0000e8e1 0000dc60 : * 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; dc60: 4b03 ldr r3, [pc, #12] ; (dc70 ) dc62: 2200 movs r2, #0 dc64: 701a strb r2, [r3, #0] sys_time += tick_period; dc66: 685a ldr r2, [r3, #4] dc68: 4410 add r0, r2 dc6a: 6058 str r0, [r3, #4] } dc6c: 4770 bx lr dc6e: bf00 nop dc70: 20008f88 .word 0x20008f88 0000dc74 : { #if LV_TICK_CUSTOM == 0 uint32_t result; do { tick_irq_flag = 1; result = sys_time; dc74: 4b03 ldr r3, [pc, #12] ; (dc84 ) dc76: 6858 ldr r0, [r3, #4] tick_irq_flag = 1; dc78: 2101 movs r1, #1 dc7a: 7019 strb r1, [r3, #0] } while(!tick_irq_flag); /*'lv_tick_inc()' clears this flag which can be in an interrupt. dc7c: 781a ldrb r2, [r3, #0] dc7e: 2a00 cmp r2, #0 dc80: d0fb beq.n dc7a return result; #else return LV_TICK_CUSTOM_SYS_TIME_EXPR; #endif } dc82: 4770 bx lr dc84: 20008f88 .word 0x20008f88 0000dc88 : * 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) { dc88: b510 push {r4, lr} uint32_t act_time = lv_tick_get(); dc8a: 4b02 ldr r3, [pc, #8] ; (dc94 ) { dc8c: 4604 mov r4, r0 uint32_t act_time = lv_tick_get(); dc8e: 4798 blx r3 prev_tick = UINT32_MAX - prev_tick + 1; prev_tick += act_time; } return prev_tick; } dc90: 1b00 subs r0, r0, r4 dc92: bd10 pop {r4, pc} dc94: 0000dc75 .word 0x0000dc75 0000dc98 : { LV_UNUSED(path); /*Calculate the current step*/ uint32_t step; if(a->time == a->act_time) { dc98: e9d1 2308 ldrd r2, r3, [r1, #32] dc9c: 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; dc9e: bf1c itt ne dca0: 029b lslne r3, r3, #10 dca2: 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); dca6: e9d1 0206 ldrd r0, r2, [r1, #24] step = LV_ANIM_RESOLUTION; /*Use the last value if the time fully elapsed*/ dcaa: bf08 it eq dcac: f44f 6380 moveq.w r3, #1024 ; 0x400 new_value = (int32_t)step * (a->end - a->start); dcb0: 1a12 subs r2, r2, r0 dcb2: 4353 muls r3, r2 new_value = new_value >> LV_ANIM_RES_SHIFT; new_value += a->start; dcb4: eb00 20a3 add.w r0, r0, r3, asr #10 return (lv_anim_value_t)new_value; } dcb8: b200 sxth r0, r0 dcba: 4770 bx lr 0000dcbc : } return anim_list_changed; } static void anim_mark_list_change(void) { dcbc: b510 push {r4, lr} anim_list_changed = true; dcbe: 4c07 ldr r4, [pc, #28] ; (dcdc ) if(_lv_ll_get_head(&LV_GC_ROOT(_lv_anim_ll)) == NULL) dcc0: 4807 ldr r0, [pc, #28] ; (dce0 ) anim_list_changed = true; dcc2: 2301 movs r3, #1 dcc4: 7023 strb r3, [r4, #0] if(_lv_ll_get_head(&LV_GC_ROOT(_lv_anim_ll)) == NULL) dcc6: 4b07 ldr r3, [pc, #28] ; (dce4 ) dcc8: 4798 blx r3 dcca: 4b07 ldr r3, [pc, #28] ; (dce8 ) dccc: 4601 mov r1, r0 dcce: b918 cbnz r0, dcd8 lv_task_set_prio(_lv_anim_task, LV_TASK_PRIO_OFF); else lv_task_set_prio(_lv_anim_task, LV_ANIM_TASK_PRIO); dcd0: 6860 ldr r0, [r4, #4] } dcd2: e8bd 4010 ldmia.w sp!, {r4, lr} lv_task_set_prio(_lv_anim_task, LV_ANIM_TASK_PRIO); dcd6: 4718 bx r3 dcd8: 2104 movs r1, #4 dcda: e7f9 b.n dcd0 dcdc: 20008f90 .word 0x20008f90 dce0: 20008fd8 .word 0x20008fd8 dce4: 0000e8d5 .word 0x0000e8d5 dce8: 0000fda5 .word 0x0000fda5 0000dcec : { dcec: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} _LV_LL_READ(LV_GC_ROOT(_lv_anim_ll), a) { dcf0: 484f ldr r0, [pc, #316] ; (de30 ) dcf2: 4f50 ldr r7, [pc, #320] ; (de34 ) dcf4: 4c4e ldr r4, [pc, #312] ; (de30 ) dcf6: 4d50 ldr r5, [pc, #320] ; (de38 ) { dcf8: b090 sub sp, #64 ; 0x40 _LV_LL_READ(LV_GC_ROOT(_lv_anim_ll), a) { dcfa: 47b8 blx r7 dcfc: b9a0 cbnz r0, dd28 uint32_t elaps = lv_tick_elaps(last_task_run); dcfe: 4d4f ldr r5, [pc, #316] ; (de3c ) dd00: 4b4f ldr r3, [pc, #316] ; (de40 ) dd02: 68a8 ldr r0, [r5, #8] a = _lv_ll_get_next(&LV_GC_ROOT(_lv_anim_ll), a); dd04: f8df 8128 ldr.w r8, [pc, #296] ; de30 dd08: f8df 912c ldr.w r9, [pc, #300] ; de38 _lv_memcpy(&a_tmp, a, sizeof(lv_anim_t)); dd0c: f8df a148 ldr.w sl, [pc, #328] ; de58 uint32_t elaps = lv_tick_elaps(last_task_run); dd10: 4798 blx r3 dd12: 4606 mov r6, r0 a = _lv_ll_get_head(&LV_GC_ROOT(_lv_anim_ll)); dd14: 4846 ldr r0, [pc, #280] ; (de30 ) dd16: 47b8 blx r7 dd18: 4604 mov r4, r0 while(a != NULL) { dd1a: b97c cbnz r4, dd3c last_task_run = lv_tick_get(); dd1c: 4b49 ldr r3, [pc, #292] ; (de44 ) dd1e: 4798 blx r3 dd20: 60a8 str r0, [r5, #8] } dd22: b010 add sp, #64 ; 0x40 dd24: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} a->has_run = 0; dd28: f890 303c ldrb.w r3, [r0, #60] ; 0x3c dd2c: f36f 0341 bfc r3, #1, #1 dd30: f880 303c strb.w r3, [r0, #60] ; 0x3c _LV_LL_READ(LV_GC_ROOT(_lv_anim_ll), a) { dd34: 4601 mov r1, r0 dd36: 4620 mov r0, r4 dd38: 47a8 blx r5 dd3a: e7df b.n dcfc anim_list_changed = false; dd3c: 2300 movs r3, #0 dd3e: 702b strb r3, [r5, #0] if(!a->has_run) { dd40: f894 303c ldrb.w r3, [r4, #60] ; 0x3c dd44: 079a lsls r2, r3, #30 dd46: d46f bmi.n de28 a->has_run = 1; /*The list readying might be reseted so need to know which anim has run already*/ dd48: f043 0302 orr.w r3, r3, #2 dd4c: f884 303c strb.w r3, [r4, #60] ; 0x3c int32_t new_act_time = a->act_time + elaps; dd50: 6a63 ldr r3, [r4, #36] ; 0x24 if(a->act_time <= 0 && new_act_time >= 0) { dd52: 2b00 cmp r3, #0 dd54: dc05 bgt.n dd62 dd56: 42f3 cmn r3, r6 dd58: d403 bmi.n dd62 if(a->start_cb) a->start_cb(a); dd5a: 68a3 ldr r3, [r4, #8] dd5c: b10b cbz r3, dd62 dd5e: 4620 mov r0, r4 dd60: 4798 blx r3 a->act_time += elaps; dd62: 6a63 ldr r3, [r4, #36] ; 0x24 dd64: 4433 add r3, r6 if(a->act_time >= 0) { dd66: 2b00 cmp r3, #0 a->act_time += elaps; dd68: 6263 str r3, [r4, #36] ; 0x24 if(a->act_time >= 0) { dd6a: db2e blt.n ddca if(a->act_time > a->time) a->act_time = a->time; dd6c: 6a22 ldr r2, [r4, #32] dd6e: 429a cmp r2, r3 dd70: bfd4 ite le dd72: 6262 strle r2, [r4, #36] ; 0x24 dd74: 6263 strgt r3, [r4, #36] ; 0x24 if(a->path.cb) new_value = a->path.cb(&a->path, a); dd76: 4620 mov r0, r4 dd78: 4621 mov r1, r4 dd7a: f850 3f10 ldr.w r3, [r0, #16]! dd7e: b353 cbz r3, ddd6 dd80: 4798 blx r3 if(a->exec_cb) a->exec_cb(a->var, new_value); dd82: 6863 ldr r3, [r4, #4] dd84: b113 cbz r3, dd8c dd86: b201 sxth r1, r0 dd88: 6820 ldr r0, [r4, #0] dd8a: 4798 blx r3 if(a->act_time >= a->time) { dd8c: e9d4 3208 ldrd r3, r2, [r4, #32] dd90: 429a cmp r2, r3 dd92: db1a blt.n ddca if(a->playback_now == 0 && a->repeat_cnt > 0 && a->repeat_cnt != LV_ANIM_REPEAT_INFINITE) { dd94: f894 303c ldrb.w r3, [r4, #60] ; 0x3c dd98: 8ea2 ldrh r2, [r4, #52] ; 0x34 dd9a: 6ae1 ldr r1, [r4, #44] ; 0x2c dd9c: f013 0301 ands.w r3, r3, #1 dda0: d122 bne.n dde8 dda2: b9da cbnz r2, dddc if(a->repeat_cnt == 0 && ((a->playback_time == 0) || (a->playback_time && a->playback_now == 1))) { dda4: 2900 cmp r1, #0 dda6: d13c bne.n de22 _lv_memcpy(&a_tmp, a, sizeof(lv_anim_t)); dda8: 2240 movs r2, #64 ; 0x40 ddaa: 4621 mov r1, r4 ddac: 4668 mov r0, sp ddae: 47d0 blx sl _lv_ll_remove(&LV_GC_ROOT(_lv_anim_ll), a); ddb0: 4621 mov r1, r4 ddb2: 4b25 ldr r3, [pc, #148] ; (de48 ) ddb4: 4640 mov r0, r8 ddb6: 4798 blx r3 lv_mem_free(a); ddb8: 4b24 ldr r3, [pc, #144] ; (de4c ) ddba: 4620 mov r0, r4 ddbc: 4798 blx r3 anim_mark_list_change(); ddbe: 4b24 ldr r3, [pc, #144] ; (de50 ) ddc0: 4798 blx r3 if(a_tmp.ready_cb != NULL) a_tmp.ready_cb(&a_tmp); ddc2: 9b03 ldr r3, [sp, #12] ddc4: b10b cbz r3, ddca ddc6: 4668 mov r0, sp ddc8: 4798 blx r3 if(anim_list_changed) ddca: 782b ldrb r3, [r5, #0] ddcc: b363 cbz r3, de28 a = _lv_ll_get_head(&LV_GC_ROOT(_lv_anim_ll)); ddce: 4640 mov r0, r8 ddd0: 47b8 blx r7 a = _lv_ll_get_next(&LV_GC_ROOT(_lv_anim_ll), a); ddd2: 4604 mov r4, r0 ddd4: e7a1 b.n dd1a else new_value = lv_anim_path_linear(&a->path, a); ddd6: 4b1f ldr r3, [pc, #124] ; (de54 ) ddd8: 4798 blx r3 ddda: e7d2 b.n dd82 if(a->playback_now == 0 && a->repeat_cnt > 0 && a->repeat_cnt != LV_ANIM_REPEAT_INFINITE) { dddc: f64f 70ff movw r0, #65535 ; 0xffff dde0: 4282 cmp r2, r0 dde2: d004 beq.n ddee a->repeat_cnt--; dde4: 3a01 subs r2, #1 dde6: 86a2 strh r2, [r4, #52] ; 0x34 if(a->repeat_cnt == 0 && ((a->playback_time == 0) || (a->playback_time && a->playback_now == 1))) { dde8: 8ea2 ldrh r2, [r4, #52] ; 0x34 ddea: 2a00 cmp r2, #0 ddec: d0da beq.n dda4 a->act_time = -a->repeat_delay; /*Restart the animation*/ ddee: 6b22 ldr r2, [r4, #48] ; 0x30 ddf0: 4252 negs r2, r2 ddf2: 6262 str r2, [r4, #36] ; 0x24 if(a->playback_time != 0) { ddf4: 2900 cmp r1, #0 ddf6: d0e8 beq.n ddca if(a->playback_now == 0) a->act_time = -a->playback_delay; ddf8: b913 cbnz r3, de00 ddfa: 6aa2 ldr r2, [r4, #40] ; 0x28 ddfc: 4252 negs r2, r2 ddfe: 6262 str r2, [r4, #36] ; 0x24 a->playback_now = a->playback_now == 0 ? 1 : 0; de00: f083 0201 eor.w r2, r3, #1 de04: f894 303c ldrb.w r3, [r4, #60] ; 0x3c de08: f362 0300 bfi r3, r2, #0, #1 a->start = a->end; de0c: e9d4 0206 ldrd r0, r2, [r4, #24] a->playback_now = a->playback_now == 0 ? 1 : 0; de10: f884 303c strb.w r3, [r4, #60] ; 0x3c a->time = a->playback_now == 0 ? a->time_orig : a->playback_time; de14: 07db lsls r3, r3, #31 de16: bf58 it pl de18: 6ba1 ldrpl r1, [r4, #56] ; 0x38 de1a: 6221 str r1, [r4, #32] a->end = tmp; de1c: e9c4 2006 strd r2, r0, [r4, #24] a->time = a->playback_now == 0 ? a->time_orig : a->playback_time; de20: e7d3 b.n ddca if(a->repeat_cnt == 0 && ((a->playback_time == 0) || (a->playback_time && a->playback_now == 1))) { de22: 2b00 cmp r3, #0 de24: d0e3 beq.n ddee de26: e7bf b.n dda8 a = _lv_ll_get_next(&LV_GC_ROOT(_lv_anim_ll), a); de28: 4621 mov r1, r4 de2a: 4640 mov r0, r8 de2c: 47c8 blx r9 de2e: e7d0 b.n ddd2 de30: 20008fd8 .word 0x20008fd8 de34: 0000e8d5 .word 0x0000e8d5 de38: 0000e8e1 .word 0x0000e8e1 de3c: 20008f90 .word 0x20008f90 de40: 0000dc89 .word 0x0000dc89 de44: 0000dc75 .word 0x0000dc75 de48: 0000e999 .word 0x0000e999 de4c: 0000ed1d .word 0x0000ed1d de50: 0000dcbd .word 0x0000dcbd de54: 0000dc99 .word 0x0000dc99 de58: 0000ee69 .word 0x0000ee69 0000de5c <_lv_anim_core_init>: { de5c: b538 push {r3, r4, r5, lr} _lv_ll_init(&LV_GC_ROOT(_lv_anim_ll), sizeof(lv_anim_t)); de5e: 2140 movs r1, #64 ; 0x40 de60: 4809 ldr r0, [pc, #36] ; (de88 <_lv_anim_core_init+0x2c>) de62: 4b0a ldr r3, [pc, #40] ; (de8c <_lv_anim_core_init+0x30>) last_task_run = lv_tick_get(); de64: 4c0a ldr r4, [pc, #40] ; (de90 <_lv_anim_core_init+0x34>) _lv_anim_task = lv_task_create(anim_task, LV_DISP_DEF_REFR_PERIOD, LV_ANIM_TASK_PRIO, NULL); de66: 4d0b ldr r5, [pc, #44] ; (de94 <_lv_anim_core_init+0x38>) _lv_ll_init(&LV_GC_ROOT(_lv_anim_ll), sizeof(lv_anim_t)); de68: 4798 blx r3 last_task_run = lv_tick_get(); de6a: 4b0b ldr r3, [pc, #44] ; (de98 <_lv_anim_core_init+0x3c>) de6c: 4798 blx r3 _lv_anim_task = lv_task_create(anim_task, LV_DISP_DEF_REFR_PERIOD, LV_ANIM_TASK_PRIO, NULL); de6e: 2300 movs r3, #0 last_task_run = lv_tick_get(); de70: 60a0 str r0, [r4, #8] _lv_anim_task = lv_task_create(anim_task, LV_DISP_DEF_REFR_PERIOD, LV_ANIM_TASK_PRIO, NULL); de72: 2204 movs r2, #4 de74: 211e movs r1, #30 de76: 4809 ldr r0, [pc, #36] ; (de9c <_lv_anim_core_init+0x40>) de78: 47a8 blx r5 anim_mark_list_change(); /*Turn off the animation task*/ de7a: 4b09 ldr r3, [pc, #36] ; (dea0 <_lv_anim_core_init+0x44>) _lv_anim_task = lv_task_create(anim_task, LV_DISP_DEF_REFR_PERIOD, LV_ANIM_TASK_PRIO, NULL); de7c: 6060 str r0, [r4, #4] anim_mark_list_change(); /*Turn off the animation task*/ de7e: 4798 blx r3 anim_list_changed = false; /*The list has not actaully changed*/ de80: 2300 movs r3, #0 de82: 7023 strb r3, [r4, #0] } de84: bd38 pop {r3, r4, r5, pc} de86: bf00 nop de88: 20008fd8 .word 0x20008fd8 de8c: 0000e831 .word 0x0000e831 de90: 20008f90 .word 0x20008f90 de94: 0000fe09 .word 0x0000fe09 de98: 0000dc75 .word 0x0000dc75 de9c: 0000dced .word 0x0000dced dea0: 0000dcbd .word 0x0000dcbd 0000dea4 : { dea4: b510 push {r4, lr} _lv_memset_00(a, sizeof(lv_anim_t)); dea6: 4b0b ldr r3, [pc, #44] ; (ded4 ) { dea8: 4604 mov r4, r0 _lv_memset_00(a, sizeof(lv_anim_t)); deaa: 2140 movs r1, #64 ; 0x40 deac: 4798 blx r3 a->time = 500; deae: f44f 73fa mov.w r3, #500 ; 0x1f4 deb2: 6223 str r3, [r4, #32] a->end = 100; deb4: 2100 movs r1, #0 deb6: 2364 movs r3, #100 ; 0x64 deb8: 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; debc: 4b06 ldr r3, [pc, #24] ; (ded8 ) debe: 6123 str r3, [r4, #16] a->repeat_cnt = 1; dec0: 2301 movs r3, #1 dec2: 86a3 strh r3, [r4, #52] ; 0x34 a->early_apply = 1; dec4: f894 3036 ldrb.w r3, [r4, #54] ; 0x36 dec8: f043 0301 orr.w r3, r3, #1 decc: f884 3036 strb.w r3, [r4, #54] ; 0x36 } ded0: bd10 pop {r4, pc} ded2: bf00 nop ded4: 0000f251 .word 0x0000f251 ded8: 0000dc99 .word 0x0000dc99 0000dedc : { dedc: 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)); dee0: 4b14 ldr r3, [pc, #80] ; (df34 ) a_next = _lv_ll_get_next(&LV_GC_ROOT(_lv_anim_ll), a); dee2: f8df 9054 ldr.w r9, [pc, #84] ; df38 dee6: f8df a05c ldr.w sl, [pc, #92] ; df44 _lv_ll_remove(&LV_GC_ROOT(_lv_anim_ll), a); deea: f8df b05c ldr.w fp, [pc, #92] ; df48 { deee: 4606 mov r6, r0 a = _lv_ll_get_head(&LV_GC_ROOT(_lv_anim_ll)); def0: 4811 ldr r0, [pc, #68] ; (df38 ) { def2: 460d mov r5, r1 a = _lv_ll_get_head(&LV_GC_ROOT(_lv_anim_ll)); def4: 4798 blx r3 bool del = false; def6: f04f 0800 mov.w r8, #0 a = _lv_ll_get_head(&LV_GC_ROOT(_lv_anim_ll)); defa: 4604 mov r4, r0 while(a != NULL) { defc: b914 cbnz r4, df04 } defe: 4640 mov r0, r8 df00: 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); df04: 4621 mov r1, r4 df06: 4648 mov r0, r9 df08: 47d0 blx sl if(a->var == var && (a->exec_cb == exec_cb || exec_cb == NULL)) { df0a: 6823 ldr r3, [r4, #0] df0c: 42b3 cmp r3, r6 a_next = _lv_ll_get_next(&LV_GC_ROOT(_lv_anim_ll), a); df0e: 4607 mov r7, r0 if(a->var == var && (a->exec_cb == exec_cb || exec_cb == NULL)) { df10: d10d bne.n df2e df12: 6863 ldr r3, [r4, #4] df14: 42ab cmp r3, r5 df16: d000 beq.n df1a df18: b94d cbnz r5, df2e _lv_ll_remove(&LV_GC_ROOT(_lv_anim_ll), a); df1a: 4621 mov r1, r4 df1c: 4648 mov r0, r9 df1e: 47d8 blx fp lv_mem_free(a); df20: 4b06 ldr r3, [pc, #24] ; (df3c ) df22: 4620 mov r0, r4 df24: 4798 blx r3 anim_mark_list_change(); /*Read by `anim_task`. It need to know if a delete occurred in df26: 4b06 ldr r3, [pc, #24] ; (df40 ) df28: 4798 blx r3 del = true; df2a: f04f 0801 mov.w r8, #1 df2e: 463c mov r4, r7 df30: e7e4 b.n defc df32: bf00 nop df34: 0000e8d5 .word 0x0000e8d5 df38: 20008fd8 .word 0x20008fd8 df3c: 0000ed1d .word 0x0000ed1d df40: 0000dcbd .word 0x0000dcbd df44: 0000e8e1 .word 0x0000e8e1 df48: 0000e999 .word 0x0000e999 0000df4c : { df4c: 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*/ df4e: 6841 ldr r1, [r0, #4] { df50: 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*/ df52: b111 cbz r1, df5a df54: 6800 ldr r0, [r0, #0] df56: 4b1d ldr r3, [pc, #116] ; (dfcc ) df58: 4798 blx r3 if(_lv_ll_is_empty(&LV_GC_ROOT(_lv_anim_ll))) { df5a: 481d ldr r0, [pc, #116] ; (dfd0 ) df5c: 4b1d ldr r3, [pc, #116] ; (dfd4 ) df5e: 4798 blx r3 df60: b120 cbz r0, df6c last_task_run = lv_tick_get() - 1; df62: 4b1d ldr r3, [pc, #116] ; (dfd8 ) df64: 4798 blx r3 df66: 4b1d ldr r3, [pc, #116] ; (dfdc ) df68: 3801 subs r0, #1 df6a: 6098 str r0, [r3, #8] lv_anim_t * new_anim = _lv_ll_ins_head(&LV_GC_ROOT(_lv_anim_ll)); df6c: 4b1c ldr r3, [pc, #112] ; (dfe0 ) df6e: 4818 ldr r0, [pc, #96] ; (dfd0 ) df70: 4798 blx r3 LV_ASSERT_MEM(new_anim); df72: 4b1c ldr r3, [pc, #112] ; (dfe4 ) lv_anim_t * new_anim = _lv_ll_ins_head(&LV_GC_ROOT(_lv_anim_ll)); df74: 4604 mov r4, r0 LV_ASSERT_MEM(new_anim); df76: 4798 blx r3 df78: 4606 mov r6, r0 df7a: b960 cbnz r0, df96 df7c: 4b1a ldr r3, [pc, #104] ; (dfe8 ) df7e: 491b ldr r1, [pc, #108] ; (dfec ) df80: 9300 str r3, [sp, #0] df82: 226a movs r2, #106 ; 0x6a df84: 2003 movs r0, #3 df86: 4d1a ldr r5, [pc, #104] ; (dff0 ) df88: 47a8 blx r5 df8a: 481a ldr r0, [pc, #104] ; (dff4 ) df8c: 491a ldr r1, [pc, #104] ; (dff8 ) df8e: 4622 mov r2, r4 df90: 4633 mov r3, r6 df92: 4788 blx r1 df94: e7fe b.n df94 if(new_anim == NULL) return; df96: b1b4 cbz r4, dfc6 a->time_orig = a->time; df98: 6a2b ldr r3, [r5, #32] df9a: 63ab str r3, [r5, #56] ; 0x38 _lv_memcpy(new_anim, a, sizeof(lv_anim_t)); df9c: 2240 movs r2, #64 ; 0x40 df9e: 4b17 ldr r3, [pc, #92] ; (dffc ) dfa0: 4629 mov r1, r5 dfa2: 4620 mov r0, r4 dfa4: 4798 blx r3 if(new_anim->early_apply) { dfa6: f894 3036 ldrb.w r3, [r4, #54] ; 0x36 dfaa: 07db lsls r3, r3, #31 dfac: d506 bpl.n dfbc if(new_anim->exec_cb && new_anim->var) new_anim->exec_cb(new_anim->var, new_anim->start); dfae: 6863 ldr r3, [r4, #4] dfb0: b123 cbz r3, dfbc dfb2: 6820 ldr r0, [r4, #0] dfb4: b110 cbz r0, dfbc dfb6: f9b4 1018 ldrsh.w r1, [r4, #24] dfba: 4798 blx r3 anim_mark_list_change(); dfbc: 4b10 ldr r3, [pc, #64] ; (e000 ) } dfbe: b002 add sp, #8 dfc0: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr} anim_mark_list_change(); dfc4: 4718 bx r3 } dfc6: b002 add sp, #8 dfc8: bd70 pop {r4, r5, r6, pc} dfca: bf00 nop dfcc: 0000dedd .word 0x0000dedd dfd0: 20008fd8 .word 0x20008fd8 dfd4: 0000eafd .word 0x0000eafd dfd8: 0000dc75 .word 0x0000dc75 dfdc: 20008f90 .word 0x20008f90 dfe0: 0000e845 .word 0x0000e845 dfe4: 00001a0d .word 0x00001a0d dfe8: 0002b894 .word 0x0002b894 dfec: 0002b864 .word 0x0002b864 dff0: 0000eb21 .word 0x0000eb21 dff4: 0002673e .word 0x0002673e dff8: 00001a15 .word 0x00001a15 dffc: 0000ee69 .word 0x0000ee69 e000: 0000dcbd .word 0x0000dcbd 0000e004 : { e004: b5f8 push {r3, r4, r5, r6, r7, lr} _LV_LL_READ(LV_GC_ROOT(_lv_anim_ll), a) { e006: 4b09 ldr r3, [pc, #36] ; (e02c ) e008: 4e09 ldr r6, [pc, #36] ; (e030 ) e00a: 4f0a ldr r7, [pc, #40] ; (e034 ) { e00c: 4604 mov r4, r0 _LV_LL_READ(LV_GC_ROOT(_lv_anim_ll), a) { e00e: 4808 ldr r0, [pc, #32] ; (e030 ) { e010: 460d mov r5, r1 _LV_LL_READ(LV_GC_ROOT(_lv_anim_ll), a) { e012: 4798 blx r3 e014: b900 cbnz r0, e018 } e016: bdf8 pop {r3, r4, r5, r6, r7, pc} if(a->var == var && a->exec_cb == exec_cb) { e018: 6803 ldr r3, [r0, #0] e01a: 42a3 cmp r3, r4 e01c: d102 bne.n e024 e01e: 6843 ldr r3, [r0, #4] e020: 42ab cmp r3, r5 e022: d0f8 beq.n e016 _LV_LL_READ(LV_GC_ROOT(_lv_anim_ll), a) { e024: 4601 mov r1, r0 e026: 4630 mov r0, r6 e028: 47b8 blx r7 e02a: e7f3 b.n e014 e02c: 0000e8d5 .word 0x0000e8d5 e030: 20008fd8 .word 0x20008fd8 e034: 0000e8e1 .word 0x0000e8e1 0000e038 : int32_t d = LV_MATH_ABS((int32_t)start - end); e038: 1a8a subs r2, r1, r2 e03a: 2a00 cmp r2, #0 e03c: bfb8 it lt e03e: 4252 neglt r2, r2 uint32_t time = (int32_t)((int32_t)(d * 1000) / speed); e040: f44f 737a mov.w r3, #1000 ; 0x3e8 e044: 435a muls r2, r3 e046: fbb2 f0f0 udiv r0, r2, r0 return time; e04a: 2801 cmp r0, #1 e04c: bf38 it cc e04e: 2001 movcc r0, #1 e050: f64f 73ff movw r3, #65535 ; 0xffff e054: 4298 cmp r0, r3 e056: bf28 it cs e058: 4618 movcs r0, r3 } e05a: b280 uxth r0, r0 e05c: 4770 bx lr 0000e05e : /********************** * STATIC FUNCTIONS **********************/ static bool lv_point_within_circle(const lv_area_t * area, const lv_point_t * p) e05e: b530 push {r4, r5, lr} { lv_coord_t r = (area->x2 - area->x1) / 2; e060: f9b0 3004 ldrsh.w r3, [r0, #4] e064: 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; e068: 8840 ldrh r0, [r0, #2] lv_coord_t r = (area->x2 - area->x1) / 2; e06a: 1b5b subs r3, r3, r5 e06c: eb03 73d3 add.w r3, r3, r3, lsr #31 lv_coord_t py = p->y - cy; e070: 1a12 subs r2, r2, r0 lv_coord_t r = (area->x2 - area->x1) / 2; e072: 105c asrs r4, r3, #1 lv_coord_t cx = area->x1 + r; e074: f3c3 034f ubfx r3, r3, #1, #16 lv_coord_t px = p->x - cx; e078: 1b49 subs r1, r1, r5 lv_coord_t py = p->y - cy; e07a: 1ad2 subs r2, r2, r3 lv_coord_t px = p->x - cx; e07c: 1ac9 subs r1, r1, r3 int32_t r_sqrd = r * r; int32_t dist = (px * px) + (py * py); e07e: fb12 f202 smulbb r2, r2, r2 int32_t r_sqrd = r * r; e082: 4364 muls r4, r4 int32_t dist = (px * px) + (py * py); e084: fb11 2101 smlabb r1, r1, r1, r2 if(dist <= r_sqrd) return true; else return false; } e088: 428c cmp r4, r1 e08a: bfb4 ite lt e08c: 2000 movlt r0, #0 e08e: 2001 movge r0, #1 e090: bd30 pop {r4, r5, pc} 0000e092 : area_p->y2 = area_p->y1 + h - 1; e092: 8843 ldrh r3, [r0, #2] e094: 3901 subs r1, #1 e096: 4419 add r1, r3 e098: 80c1 strh r1, [r0, #6] } e09a: 4770 bx lr 0000e09c : size = (uint32_t)(area_p->x2 - area_p->x1 + 1) * (area_p->y2 - area_p->y1 + 1); e09c: f9b0 3000 ldrsh.w r3, [r0] e0a0: f9b0 2004 ldrsh.w r2, [r0, #4] e0a4: f9b0 1002 ldrsh.w r1, [r0, #2] e0a8: 1ad2 subs r2, r2, r3 e0aa: f9b0 3006 ldrsh.w r3, [r0, #6] e0ae: 1a58 subs r0, r3, r1 e0b0: 3001 adds r0, #1 } e0b2: fb02 0000 mla r0, r2, r0, r0 e0b6: 4770 bx lr 0000e0b8 <_lv_area_intersect>: res_p->x1 = LV_MATH_MAX(a1_p->x1, a2_p->x1); e0b8: f9b1 3000 ldrsh.w r3, [r1] { e0bc: b570 push {r4, r5, r6, lr} res_p->x1 = LV_MATH_MAX(a1_p->x1, a2_p->x1); e0be: f9b2 5000 ldrsh.w r5, [r2] res_p->y1 = LV_MATH_MAX(a1_p->y1, a2_p->y1); e0c2: f9b1 4002 ldrsh.w r4, [r1, #2] res_p->x2 = LV_MATH_MIN(a1_p->x2, a2_p->x2); e0c6: f9b1 6004 ldrsh.w r6, [r1, #4] res_p->y2 = LV_MATH_MIN(a1_p->y2, a2_p->y2); e0ca: f9b1 1006 ldrsh.w r1, [r1, #6] res_p->x1 = LV_MATH_MAX(a1_p->x1, a2_p->x1); e0ce: 429d cmp r5, r3 e0d0: bfb8 it lt e0d2: 461d movlt r5, r3 res_p->y1 = LV_MATH_MAX(a1_p->y1, a2_p->y1); e0d4: f9b2 3002 ldrsh.w r3, [r2, #2] res_p->x1 = LV_MATH_MAX(a1_p->x1, a2_p->x1); e0d8: 8005 strh r5, [r0, #0] res_p->y1 = LV_MATH_MAX(a1_p->y1, a2_p->y1); e0da: 42a3 cmp r3, r4 e0dc: bfb8 it lt e0de: 4623 movlt r3, r4 res_p->x2 = LV_MATH_MIN(a1_p->x2, a2_p->x2); e0e0: f9b2 4004 ldrsh.w r4, [r2, #4] res_p->y2 = LV_MATH_MIN(a1_p->y2, a2_p->y2); e0e4: f9b2 2006 ldrsh.w r2, [r2, #6] res_p->y1 = LV_MATH_MAX(a1_p->y1, a2_p->y1); e0e8: 8043 strh r3, [r0, #2] res_p->x2 = LV_MATH_MIN(a1_p->x2, a2_p->x2); e0ea: 42b4 cmp r4, r6 e0ec: bfa8 it ge e0ee: 4634 movge r4, r6 res_p->y2 = LV_MATH_MIN(a1_p->y2, a2_p->y2); e0f0: 428a cmp r2, r1 e0f2: bfa8 it ge e0f4: 460a movge r2, r1 if((res_p->x1 > res_p->x2) || (res_p->y1 > res_p->y2)) { e0f6: 42a5 cmp r5, r4 res_p->x2 = LV_MATH_MIN(a1_p->x2, a2_p->x2); e0f8: 8084 strh r4, [r0, #4] res_p->y2 = LV_MATH_MIN(a1_p->y2, a2_p->y2); e0fa: 80c2 strh r2, [r0, #6] if((res_p->x1 > res_p->x2) || (res_p->y1 > res_p->y2)) { e0fc: dc04 bgt.n e108 <_lv_area_intersect+0x50> e0fe: 4293 cmp r3, r2 e100: bfcc ite gt e102: 2000 movgt r0, #0 e104: 2001 movle r0, #1 } e106: bd70 pop {r4, r5, r6, pc} union_ok = false; e108: 2000 movs r0, #0 e10a: e7fc b.n e106 <_lv_area_intersect+0x4e> 0000e10c <_lv_area_join>: a_res_p->x1 = LV_MATH_MIN(a1_p->x1, a2_p->x1); e10c: f9b2 3000 ldrsh.w r3, [r2] { e110: b510 push {r4, lr} a_res_p->x1 = LV_MATH_MIN(a1_p->x1, a2_p->x1); e112: f9b1 4000 ldrsh.w r4, [r1] e116: 42a3 cmp r3, r4 e118: bfa8 it ge e11a: 4623 movge r3, r4 e11c: 8003 strh r3, [r0, #0] a_res_p->y1 = LV_MATH_MIN(a1_p->y1, a2_p->y1); e11e: f9b1 4002 ldrsh.w r4, [r1, #2] e122: f9b2 3002 ldrsh.w r3, [r2, #2] e126: 42a3 cmp r3, r4 e128: bfa8 it ge e12a: 4623 movge r3, r4 e12c: 8043 strh r3, [r0, #2] a_res_p->x2 = LV_MATH_MAX(a1_p->x2, a2_p->x2); e12e: f9b1 4004 ldrsh.w r4, [r1, #4] e132: f9b2 3004 ldrsh.w r3, [r2, #4] e136: 42a3 cmp r3, r4 e138: bfb8 it lt e13a: 4623 movlt r3, r4 e13c: 8083 strh r3, [r0, #4] a_res_p->y2 = LV_MATH_MAX(a1_p->y2, a2_p->y2); e13e: f9b2 3006 ldrsh.w r3, [r2, #6] e142: f9b1 2006 ldrsh.w r2, [r1, #6] e146: 4293 cmp r3, r2 e148: bfb8 it lt e14a: 4613 movlt r3, r2 e14c: 80c3 strh r3, [r0, #6] } e14e: bd10 pop {r4, pc} 0000e150 <_lv_area_is_point_on>: { e150: 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))) { e154: f9b1 9000 ldrsh.w r9, [r1] e158: f9b0 4000 ldrsh.w r4, [r0] e15c: 45a1 cmp r9, r4 { e15e: b087 sub sp, #28 e160: 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))) { e162: f2c0 8088 blt.w e276 <_lv_area_is_point_on+0x126> e166: f9b0 3004 ldrsh.w r3, [r0, #4] e16a: 9301 str r3, [sp, #4] e16c: 4599 cmp r9, r3 e16e: f300 8082 bgt.w e276 <_lv_area_is_point_on+0x126> e172: f9b1 a002 ldrsh.w sl, [r1, #2] e176: f9b0 b002 ldrsh.w fp, [r0, #2] e17a: 45da cmp sl, fp e17c: db7b blt.n e276 <_lv_area_is_point_on+0x126> e17e: f9b0 3006 ldrsh.w r3, [r0, #6] e182: 459a cmp sl, r3 e184: dc77 bgt.n e276 <_lv_area_is_point_on+0x126> if(radius <= 0) { e186: 2a00 cmp r2, #0 e188: dc03 bgt.n e192 <_lv_area_is_point_on+0x42> return true; e18a: 2001 movs r0, #1 } e18c: b007 add sp, #28 e18e: 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); e192: f8bd 0004 ldrh.w r0, [sp, #4] e196: 9002 str r0, [sp, #8] e198: b2a7 uxth r7, r4 e19a: 3001 adds r0, #1 e19c: 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); e19e: b29e uxth r6, r3 corner_area.x1 = a_p->x1; e1a0: f8ad 4010 strh.w r4, [sp, #16] lv_coord_t w = lv_area_get_width(a_p) / 2; e1a4: f3c0 34c0 ubfx r4, r0, #15, #1 e1a8: fa1f fc8b uxth.w ip, fp e1ac: fa04 f080 sxtah r0, r4, r0 e1b0: 1c74 adds r4, r6, #1 e1b2: eba4 040c sub.w r4, r4, ip lv_coord_t h = lv_area_get_height(a_p) / 2; e1b6: f3c4 35c0 ubfx r5, r4, #15, #1 e1ba: fa05 f584 sxtah r5, r5, r4 lv_coord_t max_radius = LV_MATH_MIN(w, h); e1be: 1040 asrs r0, r0, #1 e1c0: 106d asrs r5, r5, #1 corner_area.x2 = a_p->x1 + radius; e1c2: 42a8 cmp r0, r5 e1c4: bfa8 it ge e1c6: 4628 movge r0, r5 e1c8: 4290 cmp r0, r2 e1ca: bfa8 it ge e1cc: 4610 movge r0, r2 corner_area.y2 = a_p->y1 + radius; e1ce: fa1c f480 uxtah r4, ip, r0 corner_area.x2 = a_p->x1 + radius; e1d2: fa17 f780 uxtah r7, r7, r0 if(_lv_area_is_point_on(&corner_area, p_p, 0)) { e1d6: 2200 movs r2, #0 corner_area.x2 = a_p->x1 + radius; e1d8: b285 uxth r5, r0 e1da: b2bf uxth r7, r7 corner_area.y2 = a_p->y1 + radius; e1dc: b224 sxth r4, r4 if(_lv_area_is_point_on(&corner_area, p_p, 0)) { e1de: a804 add r0, sp, #16 e1e0: 9303 str r3, [sp, #12] corner_area.x2 = a_p->x1 + radius; e1e2: f8ad 7014 strh.w r7, [sp, #20] corner_area.y1 = a_p->y1; e1e6: f8ad b012 strh.w fp, [sp, #18] corner_area.y2 = a_p->y1 + radius; e1ea: f8ad 4016 strh.w r4, [sp, #22] if(_lv_area_is_point_on(&corner_area, p_p, 0)) { e1ee: f7ff ffaf bl e150 <_lv_area_is_point_on> e1f2: 9b03 ldr r3, [sp, #12] e1f4: 4602 mov r2, r0 e1f6: b140 cbz r0, e20a <_lv_area_is_point_on+0xba> corner_area.x2 += radius; e1f8: 443d add r5, r7 e1fa: f8ad 5014 strh.w r5, [sp, #20] return lv_point_within_circle(&corner_area, p_p); e1fe: 4b1f ldr r3, [pc, #124] ; (e27c <_lv_area_is_point_on+0x12c>) e200: 4652 mov r2, sl e202: 4649 mov r1, r9 e204: a804 add r0, sp, #16 e206: 4798 blx r3 e208: e7c0 b.n e18c <_lv_area_is_point_on+0x3c> corner_area.y1 = a_p->y2 - radius; e20a: 1b76 subs r6, r6, r5 e20c: b2b6 uxth r6, r6 if(_lv_area_is_point_on(&corner_area, p_p, 0)) { e20e: 4641 mov r1, r8 e210: a804 add r0, sp, #16 corner_area.y1 = a_p->y2 - radius; e212: f8ad 6012 strh.w r6, [sp, #18] corner_area.y2 = a_p->y2; e216: f8ad 3016 strh.w r3, [sp, #22] if(_lv_area_is_point_on(&corner_area, p_p, 0)) { e21a: f7ff ff99 bl e150 <_lv_area_is_point_on> e21e: 4602 mov r2, r0 e220: b130 cbz r0, e230 <_lv_area_is_point_on+0xe0> corner_area.x2 += radius; e222: 442f add r7, r5 corner_area.y1 -= radius; e224: 1b75 subs r5, r6, r5 corner_area.x2 += radius; e226: f8ad 7014 strh.w r7, [sp, #20] corner_area.y1 -= radius; e22a: f8ad 5012 strh.w r5, [sp, #18] return lv_point_within_circle(&corner_area, p_p); e22e: e7e6 b.n e1fe <_lv_area_is_point_on+0xae> corner_area.x1 = a_p->x2 - radius; e230: 9b02 ldr r3, [sp, #8] e232: 1b5f subs r7, r3, r5 e234: b2bf uxth r7, r7 corner_area.x2 = a_p->x2; e236: 9b01 ldr r3, [sp, #4] corner_area.x1 = a_p->x2 - radius; e238: f8ad 7010 strh.w r7, [sp, #16] if(_lv_area_is_point_on(&corner_area, p_p, 0)) { e23c: 4641 mov r1, r8 e23e: a804 add r0, sp, #16 corner_area.x2 = a_p->x2; e240: f8ad 3014 strh.w r3, [sp, #20] if(_lv_area_is_point_on(&corner_area, p_p, 0)) { e244: f7ff ff84 bl e150 <_lv_area_is_point_on> e248: 4602 mov r2, r0 e24a: b130 cbz r0, e25a <_lv_area_is_point_on+0x10a> corner_area.x1 -= radius; e24c: 1b7f subs r7, r7, r5 corner_area.y1 -= radius; e24e: 1b76 subs r6, r6, r5 corner_area.x1 -= radius; e250: f8ad 7010 strh.w r7, [sp, #16] corner_area.y1 -= radius; e254: f8ad 6012 strh.w r6, [sp, #18] return lv_point_within_circle(&corner_area, p_p); e258: e7d1 b.n e1fe <_lv_area_is_point_on+0xae> if(_lv_area_is_point_on(&corner_area, p_p, 0)) { e25a: 4641 mov r1, r8 e25c: a804 add r0, sp, #16 corner_area.y1 = a_p->y1; e25e: f8ad b012 strh.w fp, [sp, #18] corner_area.y2 = a_p->y1 + radius; e262: f8ad 4016 strh.w r4, [sp, #22] if(_lv_area_is_point_on(&corner_area, p_p, 0)) { e266: f7ff ff73 bl e150 <_lv_area_is_point_on> e26a: 2800 cmp r0, #0 e26c: d08d beq.n e18a <_lv_area_is_point_on+0x3a> corner_area.x1 -= radius; e26e: 1b7f subs r7, r7, r5 e270: f8ad 7010 strh.w r7, [sp, #16] e274: e7c3 b.n e1fe <_lv_area_is_point_on+0xae> return false; e276: 2000 movs r0, #0 e278: e788 b.n e18c <_lv_area_is_point_on+0x3c> e27a: bf00 nop e27c: 0000e05f .word 0x0000e05f 0000e280 <_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)) { e280: f9b0 2000 ldrsh.w r2, [r0] e284: f9b1 3004 ldrsh.w r3, [r1, #4] e288: 429a cmp r2, r3 e28a: dc14 bgt.n e2b6 <_lv_area_is_on+0x36> e28c: f9b0 2004 ldrsh.w r2, [r0, #4] e290: f9b1 3000 ldrsh.w r3, [r1] e294: 429a cmp r2, r3 e296: db0e blt.n e2b6 <_lv_area_is_on+0x36> e298: f9b0 2002 ldrsh.w r2, [r0, #2] e29c: f9b1 3006 ldrsh.w r3, [r1, #6] e2a0: 429a cmp r2, r3 e2a2: dc08 bgt.n e2b6 <_lv_area_is_on+0x36> e2a4: f9b0 0006 ldrsh.w r0, [r0, #6] e2a8: f9b1 3002 ldrsh.w r3, [r1, #2] e2ac: 4298 cmp r0, r3 e2ae: bfb4 ite lt e2b0: 2000 movlt r0, #0 e2b2: 2001 movge r0, #1 e2b4: 4770 bx lr return false; e2b6: 2000 movs r0, #0 } e2b8: 4770 bx lr ... 0000e2bc <_lv_area_is_in>: { e2bc: 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 && e2c0: f9b0 7000 ldrsh.w r7, [r0] e2c4: f9b1 3000 ldrsh.w r3, [r1] e2c8: 42bb cmp r3, r7 { e2ca: 4605 mov r5, r0 e2cc: 460c mov r4, r1 if(ain_p->x1 >= aholder_p->x1 && ain_p->y1 >= aholder_p->y1 && ain_p->x2 <= aholder_p->x2 && e2ce: dc24 bgt.n e31a <_lv_area_is_in+0x5e> e2d0: f9b0 1002 ldrsh.w r1, [r0, #2] e2d4: f9b4 3002 ldrsh.w r3, [r4, #2] e2d8: 4299 cmp r1, r3 e2da: db1e blt.n e31a <_lv_area_is_in+0x5e> e2dc: f9b0 1004 ldrsh.w r1, [r0, #4] e2e0: f9b4 3004 ldrsh.w r3, [r4, #4] e2e4: 4299 cmp r1, r3 e2e6: dc18 bgt.n e31a <_lv_area_is_in+0x5e> e2e8: f9b0 3006 ldrsh.w r3, [r0, #6] e2ec: f9b4 1006 ldrsh.w r1, [r4, #6] e2f0: 428b cmp r3, r1 e2f2: bfcc ite gt e2f4: 2000 movgt r0, #0 e2f6: 2001 movle r0, #1 if(radius == 0) return is_in; e2f8: b162 cbz r2, e314 <_lv_area_is_in+0x58> p.y = ain_p->y1; e2fa: 886b ldrh r3, [r5, #2] if(_lv_area_is_point_on(aholder_p, &p, radius) == false) return false; e2fc: 4e16 ldr r6, [pc, #88] ; (e358 <_lv_area_is_in+0x9c>) e2fe: 9201 str r2, [sp, #4] e300: a903 add r1, sp, #12 e302: 4620 mov r0, r4 p.x = ain_p->x1; e304: f8ad 700c strh.w r7, [sp, #12] p.y = ain_p->y1; e308: f8ad 300e strh.w r3, [sp, #14] if(_lv_area_is_point_on(aholder_p, &p, radius) == false) return false; e30c: 47b0 blx r6 e30e: 9a01 ldr r2, [sp, #4] e310: b928 cbnz r0, e31e <_lv_area_is_in+0x62> e312: 2000 movs r0, #0 } e314: b004 add sp, #16 e316: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} bool is_in = false; e31a: 2000 movs r0, #0 e31c: e7ec b.n e2f8 <_lv_area_is_in+0x3c> p.x = ain_p->x2; e31e: f9b5 8004 ldrsh.w r8, [r5, #4] e322: f8ad 800c strh.w r8, [sp, #12] if(_lv_area_is_point_on(aholder_p, &p, radius) == false) return false; e326: a903 add r1, sp, #12 e328: 4620 mov r0, r4 e32a: 9201 str r2, [sp, #4] e32c: 47b0 blx r6 e32e: 2800 cmp r0, #0 e330: d0ef beq.n e312 <_lv_area_is_in+0x56> p.y = ain_p->y2; e332: 88eb ldrh r3, [r5, #6] if(_lv_area_is_point_on(aholder_p, &p, radius) == false) return false; e334: 9a01 ldr r2, [sp, #4] p.x = ain_p->x1; e336: f8ad 700c strh.w r7, [sp, #12] if(_lv_area_is_point_on(aholder_p, &p, radius) == false) return false; e33a: a903 add r1, sp, #12 e33c: 4620 mov r0, r4 p.y = ain_p->y2; e33e: f8ad 300e strh.w r3, [sp, #14] if(_lv_area_is_point_on(aholder_p, &p, radius) == false) return false; e342: 47b0 blx r6 e344: 2800 cmp r0, #0 e346: d0e4 beq.n e312 <_lv_area_is_in+0x56> if(_lv_area_is_point_on(aholder_p, &p, radius) == false) return false; e348: 9a01 ldr r2, [sp, #4] p.x = ain_p->x2; e34a: f8ad 800c strh.w r8, [sp, #12] if(_lv_area_is_point_on(aholder_p, &p, radius) == false) return false; e34e: a903 add r1, sp, #12 e350: 4620 mov r0, r4 e352: 47b0 blx r6 e354: e7de b.n e314 <_lv_area_is_in+0x58> e356: bf00 nop e358: 0000e151 .word 0x0000e151 0000e35c <_lv_area_align>: { e35c: b5f0 push {r4, r5, r6, r7, lr} e35e: 8844 ldrh r4, [r0, #2] return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); e360: 8805 ldrh r5, [r0, #0] switch(align) { e362: 2a14 cmp r2, #20 e364: d83f bhi.n e3e6 <_lv_area_align+0x8a> e366: e8df f012 tbh [pc, r2, lsl #1] e36a: 0015 .short 0x0015 e36c: 0045003b .word 0x0045003b e370: 0061005a .word 0x0061005a e374: 007c0069 .word 0x007c0069 e378: 00850083 .word 0x00850083 e37c: 0093008c .word 0x0093008c e380: 00ad00a6 .word 0x00ad00a6 e384: 00c600b3 .word 0x00c600b3 e388: 00d200cd .word 0x00d200cd e38c: 00dc00d7 .word 0x00dc00d7 e390: 00e200df .word 0x00e200df e394: 8882 ldrh r2, [r0, #4] e396: 880f ldrh r7, [r1, #0] e398: 3201 adds r2, #1 e39a: 1b52 subs r2, r2, r5 res->x = lv_area_get_width(base) / 2 - lv_area_get_width(to_align) / 2; e39c: f3c2 36c0 ubfx r6, r2, #15, #1 e3a0: fa06 f682 sxtah r6, r6, r2 e3a4: 888a ldrh r2, [r1, #4] e3a6: 3201 adds r2, #1 e3a8: 1bd2 subs r2, r2, r7 e3aa: f3c2 37c0 ubfx r7, r2, #15, #1 e3ae: fa07 f282 sxtah r2, r7, r2 e3b2: 1052 asrs r2, r2, #1 e3b4: ebc2 0266 rsb r2, r2, r6, asr #1 res->x = lv_area_get_width(base); e3b8: 801a strh r2, [r3, #0] return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); e3ba: 88c2 ldrh r2, [r0, #6] e3bc: 3201 adds r2, #1 e3be: 1b12 subs r2, r2, r4 res->y = lv_area_get_height(base) / 2 - lv_area_get_height(to_align) / 2; e3c0: f3c2 30c0 ubfx r0, r2, #15, #1 e3c4: fa00 f082 sxtah r0, r0, r2 e3c8: 88ca ldrh r2, [r1, #6] e3ca: 8849 ldrh r1, [r1, #2] e3cc: 3201 adds r2, #1 e3ce: 1a52 subs r2, r2, r1 e3d0: f3c2 31c0 ubfx r1, r2, #15, #1 e3d4: fa01 f282 sxtah r2, r1, r2 e3d8: 1052 asrs r2, r2, #1 e3da: ebc2 0260 rsb r2, r2, r0, asr #1 e3de: e001 b.n e3e4 <_lv_area_align+0x88> res->x = 0; e3e0: 2200 movs r2, #0 e3e2: 801a strh r2, [r3, #0] res->y = lv_area_get_height(base) - lv_area_get_height(to_align); e3e4: 805a strh r2, [r3, #2] res->x += base->x1; e3e6: 881a ldrh r2, [r3, #0] e3e8: 4415 add r5, r2 res->y += base->y1; e3ea: 885a ldrh r2, [r3, #2] res->x += base->x1; e3ec: 801d strh r5, [r3, #0] res->y += base->y1; e3ee: 4414 add r4, r2 e3f0: 805c strh r4, [r3, #2] } e3f2: bdf0 pop {r4, r5, r6, r7, pc} return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); e3f4: 8882 ldrh r2, [r0, #4] e3f6: 3201 adds r2, #1 e3f8: 1b52 subs r2, r2, r5 res->x = lv_area_get_width(base) / 2 - lv_area_get_width(to_align) / 2; e3fa: f3c2 30c0 ubfx r0, r2, #15, #1 e3fe: fa00 f082 sxtah r0, r0, r2 e402: 888a ldrh r2, [r1, #4] e404: 8809 ldrh r1, [r1, #0] e406: 3201 adds r2, #1 e408: 1a52 subs r2, r2, r1 e40a: f3c2 31c0 ubfx r1, r2, #15, #1 e40e: fa01 f282 sxtah r2, r1, r2 e412: 1052 asrs r2, r2, #1 e414: ebc2 0260 rsb r2, r2, r0, asr #1 res->x = lv_area_get_width(base); e418: 801a strh r2, [r3, #0] res->y = 0; e41a: 2200 movs r2, #0 e41c: e7e2 b.n e3e4 <_lv_area_align+0x88> res->x = lv_area_get_width(base) - lv_area_get_width(to_align); e41e: 880a ldrh r2, [r1, #0] e420: 8889 ldrh r1, [r1, #4] e422: 1a52 subs r2, r2, r1 e424: 8881 ldrh r1, [r0, #4] e426: 440a add r2, r1 e428: 1b52 subs r2, r2, r5 e42a: e7f5 b.n e418 <_lv_area_align+0xbc> res->x = 0; e42c: 2200 movs r2, #0 res->x = lv_area_get_width(base); e42e: 801a strh r2, [r3, #0] res->y = lv_area_get_height(base) - lv_area_get_height(to_align); e430: 884a ldrh r2, [r1, #2] e432: 88c9 ldrh r1, [r1, #6] e434: 1a52 subs r2, r2, r1 e436: 88c1 ldrh r1, [r0, #6] e438: 440a add r2, r1 e43a: e047 b.n e4cc <_lv_area_align+0x170> e43c: 8882 ldrh r2, [r0, #4] e43e: 880f ldrh r7, [r1, #0] e440: 3201 adds r2, #1 e442: 1b52 subs r2, r2, r5 res->x = lv_area_get_width(base) / 2 - lv_area_get_width(to_align) / 2; e444: f3c2 36c0 ubfx r6, r2, #15, #1 e448: fa06 f682 sxtah r6, r6, r2 e44c: 888a ldrh r2, [r1, #4] e44e: 3201 adds r2, #1 e450: 1bd2 subs r2, r2, r7 e452: f3c2 37c0 ubfx r7, r2, #15, #1 e456: fa07 f282 sxtah r2, r7, r2 e45a: 1052 asrs r2, r2, #1 e45c: ebc2 0266 rsb r2, r2, r6, asr #1 e460: e7e5 b.n e42e <_lv_area_align+0xd2> res->x = lv_area_get_width(base) - lv_area_get_width(to_align); e462: 888e ldrh r6, [r1, #4] e464: 880a ldrh r2, [r1, #0] e466: 1b92 subs r2, r2, r6 e468: 8886 ldrh r6, [r0, #4] e46a: 4432 add r2, r6 e46c: 1b52 subs r2, r2, r5 e46e: e7de b.n e42e <_lv_area_align+0xd2> res->x = 0; e470: 2200 movs r2, #0 e472: e7a1 b.n e3b8 <_lv_area_align+0x5c> res->x = lv_area_get_width(base) - lv_area_get_width(to_align); e474: 888e ldrh r6, [r1, #4] e476: 880a ldrh r2, [r1, #0] e478: 1b92 subs r2, r2, r6 e47a: 8886 ldrh r6, [r0, #4] e47c: 4432 add r2, r6 e47e: 1b52 subs r2, r2, r5 e480: e79a b.n e3b8 <_lv_area_align+0x5c> res->x = 0; e482: 2200 movs r2, #0 res->x = lv_area_get_width(base) - lv_area_get_width(to_align); e484: 801a strh r2, [r3, #0] res->y = -lv_area_get_height(to_align); e486: 884a ldrh r2, [r1, #2] e488: 88c9 ldrh r1, [r1, #6] e48a: 3a01 subs r2, #1 e48c: 1a52 subs r2, r2, r1 e48e: e7a9 b.n e3e4 <_lv_area_align+0x88> e490: 8882 ldrh r2, [r0, #4] e492: 880e ldrh r6, [r1, #0] e494: 3201 adds r2, #1 e496: 1b52 subs r2, r2, r5 res->x = lv_area_get_width(base) / 2 - lv_area_get_width(to_align) / 2; e498: f3c2 30c0 ubfx r0, r2, #15, #1 e49c: fa00 f082 sxtah r0, r0, r2 e4a0: 888a ldrh r2, [r1, #4] e4a2: 3201 adds r2, #1 e4a4: 1b92 subs r2, r2, r6 e4a6: f3c2 36c0 ubfx r6, r2, #15, #1 e4aa: fa06 f282 sxtah r2, r6, r2 e4ae: 1052 asrs r2, r2, #1 e4b0: ebc2 0260 rsb r2, r2, r0, asr #1 e4b4: e7e6 b.n e484 <_lv_area_align+0x128> res->x = lv_area_get_width(base) - lv_area_get_width(to_align); e4b6: 880a ldrh r2, [r1, #0] e4b8: 888e ldrh r6, [r1, #4] e4ba: 8880 ldrh r0, [r0, #4] e4bc: 1b92 subs r2, r2, r6 e4be: 4402 add r2, r0 e4c0: 1b52 subs r2, r2, r5 e4c2: e7df b.n e484 <_lv_area_align+0x128> res->x = 0; e4c4: 2200 movs r2, #0 res->x = lv_area_get_width(base) - lv_area_get_width(to_align); e4c6: 801a strh r2, [r3, #0] return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); e4c8: 88c2 ldrh r2, [r0, #6] e4ca: 3201 adds r2, #1 res->y = lv_area_get_height(base) - lv_area_get_height(to_align); e4cc: 1b12 subs r2, r2, r4 e4ce: e789 b.n e3e4 <_lv_area_align+0x88> return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); e4d0: 8882 ldrh r2, [r0, #4] e4d2: 3201 adds r2, #1 e4d4: 1b52 subs r2, r2, r5 res->x = lv_area_get_width(base) / 2 - lv_area_get_width(to_align) / 2; e4d6: f3c2 36c0 ubfx r6, r2, #15, #1 e4da: fa06 f682 sxtah r6, r6, r2 e4de: 888a ldrh r2, [r1, #4] e4e0: 8809 ldrh r1, [r1, #0] e4e2: 3201 adds r2, #1 e4e4: 1a52 subs r2, r2, r1 e4e6: f3c2 31c0 ubfx r1, r2, #15, #1 e4ea: fa01 f282 sxtah r2, r1, r2 e4ee: 1052 asrs r2, r2, #1 e4f0: ebc2 0266 rsb r2, r2, r6, asr #1 e4f4: e7e7 b.n e4c6 <_lv_area_align+0x16a> res->x = lv_area_get_width(base) - lv_area_get_width(to_align); e4f6: 880a ldrh r2, [r1, #0] e4f8: 8889 ldrh r1, [r1, #4] e4fa: 1a52 subs r2, r2, r1 e4fc: 8881 ldrh r1, [r0, #4] e4fe: 440a add r2, r1 e500: 1b52 subs r2, r2, r5 e502: e7e0 b.n e4c6 <_lv_area_align+0x16a> res->x = -lv_area_get_width(to_align); e504: 880a ldrh r2, [r1, #0] e506: 8889 ldrh r1, [r1, #4] e508: 3a01 subs r2, #1 e50a: 1a52 subs r2, r2, r1 e50c: e784 b.n e418 <_lv_area_align+0xbc> res->x = -lv_area_get_width(to_align); e50e: 880a ldrh r2, [r1, #0] e510: 888e ldrh r6, [r1, #4] e512: 3a01 subs r2, #1 e514: 1b92 subs r2, r2, r6 e516: e74f b.n e3b8 <_lv_area_align+0x5c> res->x = -lv_area_get_width(to_align); e518: 880a ldrh r2, [r1, #0] e51a: 888e ldrh r6, [r1, #4] e51c: 3a01 subs r2, #1 e51e: 1b92 subs r2, r2, r6 e520: e785 b.n e42e <_lv_area_align+0xd2> e522: 8882 ldrh r2, [r0, #4] e524: 3201 adds r2, #1 e526: e77f b.n e428 <_lv_area_align+0xcc> e528: 8882 ldrh r2, [r0, #4] e52a: 3201 adds r2, #1 e52c: e7a7 b.n e47e <_lv_area_align+0x122> e52e: 8882 ldrh r2, [r0, #4] e530: 3201 adds r2, #1 e532: e79b b.n e46c <_lv_area_align+0x110> 0000e534 : 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) { e534: 0783 lsls r3, r0, #30 { e536: b510 push {r4, lr} e538: b28c uxth r4, r1 *buf = color; e53a: bf1c itt ne e53c: f820 1b02 strhne.w r1, [r0], #2 buf++; px_num--; e540: f102 32ff addne.w r2, r2, #4294967295 ; 0xffffffff } uint32_t c32 = color.full + (color.full << 16); e544: eb04 4304 add.w r3, r4, r4, lsl #16 uint32_t * buf32 = (uint32_t *)buf; while(px_num > 16) { e548: 2a10 cmp r2, #16 e54a: 4601 mov r1, r0 e54c: f100 0020 add.w r0, r0, #32 e550: d804 bhi.n e55c e552: eb01 0242 add.w r2, r1, r2, lsl #1 px_num -= 16; } buf = (lv_color_t *)buf32; while(px_num) { e556: 428a cmp r2, r1 e558: d10a bne.n e570 *buf = color; buf++; px_num --; } #endif } e55a: bd10 pop {r4, pc} *buf32 = c32; e55c: e940 3308 strd r3, r3, [r0, #-32] *buf32 = c32; e560: e940 3306 strd r3, r3, [r0, #-24] *buf32 = c32; e564: e940 3304 strd r3, r3, [r0, #-16] *buf32 = c32; e568: e940 3302 strd r3, r3, [r0, #-8] px_num -= 16; e56c: 3a10 subs r2, #16 e56e: e7eb b.n e548 *buf = color; e570: f821 4b02 strh.w r4, [r1], #2 px_num --; e574: e7ef b.n e556 0000e576 : lv_color_t lv_color_lighten(lv_color_t c, lv_opa_t lvl) { e576: 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))); e578: 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))); e57c: f3c0 1545 ubfx r5, r0, #5, #6 e580: 4365 muls r5, r4 e582: 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))); e584: 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))); e588: 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))); e58c: 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))); e590: 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))); e594: 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))); e598: 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))); e59c: 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))); e59e: 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))); e5a0: fb04 2000 mla r0, r4, r0, r2 e5a4: f3c1 51c5 ubfx r1, r1, #23, #6 e5a8: 4368 muls r0, r5 e5aa: f3c3 53c4 ubfx r3, r3, #23, #5 e5ae: ea43 1341 orr.w r3, r3, r1, lsl #5 e5b2: 0dc0 lsrs r0, r0, #23 return lv_color_mix(LV_COLOR_WHITE, c, lvl); } e5b4: ea43 20c0 orr.w r0, r3, r0, lsl #11 e5b8: bd30 pop {r4, r5, pc} 0000e5ba : e5ba: f1c1 01ff rsb r1, r1, #255 ; 0xff lv_color_t lv_color_darken(lv_color_t c, lv_opa_t lvl) { e5be: 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))); e5c0: 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))); e5c4: 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))); e5c8: f248 0481 movw r4, #32897 ; 0x8081 e5cc: 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))); e5ce: 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))); e5d0: 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))); e5d4: 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))); e5d6: 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))); e5d8: 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))); e5da: 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))); e5dc: 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))); e5de: 0ddb lsrs r3, r3, #23 e5e0: 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))); e5e4: 0dc0 lsrs r0, r0, #23 return lv_color_mix(LV_COLOR_BLACK, c, lvl); } e5e6: ea43 20c0 orr.w r0, r3, r0, lsl #11 e5ea: bd10 pop {r4, pc} 0000e5ec : 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*/ e5ec: 1c43 adds r3, r0, #1 e5ee: 4618 mov r0, r3 while(*path != '\0') { e5f0: f813 2b01 ldrb.w r2, [r3], #1 e5f4: b12a cbz r2, e602 if(*path == ':' || *path == '\\' || *path == '/') { e5f6: 2a3a cmp r2, #58 ; 0x3a e5f8: d0f9 beq.n e5ee e5fa: 2a5c cmp r2, #92 ; 0x5c e5fc: d0f7 beq.n e5ee e5fe: 2a2f cmp r2, #47 ; 0x2f e600: d0f5 beq.n e5ee break; } } return path; } e602: 4770 bx lr 0000e604 <_lv_fs_init>: _lv_ll_init(&LV_GC_ROOT(_lv_drv_ll), sizeof(lv_fs_drv_t)); e604: 4801 ldr r0, [pc, #4] ; (e60c <_lv_fs_init+0x8>) e606: 4b02 ldr r3, [pc, #8] ; (e610 <_lv_fs_init+0xc>) e608: 2144 movs r1, #68 ; 0x44 e60a: 4718 bx r3 e60c: 20008fc0 .word 0x20008fc0 e610: 0000e831 .word 0x0000e831 0000e614 : { e614: b538 push {r3, r4, r5, lr} e616: 4604 mov r4, r0 if(file_p->drv == NULL) { e618: 6840 ldr r0, [r0, #4] e61a: b160 cbz r0, e636 if(file_p->drv->close_cb == NULL) { e61c: 6903 ldr r3, [r0, #16] e61e: b163 cbz r3, e63a lv_fs_res_t res = file_p->drv->close_cb(file_p->drv, file_p->file_d); e620: 6821 ldr r1, [r4, #0] e622: 4798 blx r3 lv_mem_free(file_p->file_d); /*Clean up*/ e624: 4b06 ldr r3, [pc, #24] ; (e640 ) lv_fs_res_t res = file_p->drv->close_cb(file_p->drv, file_p->file_d); e626: 4605 mov r5, r0 lv_mem_free(file_p->file_d); /*Clean up*/ e628: 6820 ldr r0, [r4, #0] e62a: 4798 blx r3 file_p->file_d = NULL; e62c: 2300 movs r3, #0 file_p->drv = NULL; e62e: e9c4 3300 strd r3, r3, [r4] } e632: 4628 mov r0, r5 e634: bd38 pop {r3, r4, r5, pc} return LV_FS_RES_INV_PARAM; e636: 250b movs r5, #11 e638: e7fb b.n e632 return LV_FS_RES_NOT_IMP; e63a: 2509 movs r5, #9 e63c: e7f9 b.n e632 e63e: bf00 nop e640: 0000ed1d .word 0x0000ed1d 0000e644 : { e644: b57f push {r0, r1, r2, r3, r4, r5, r6, lr} e646: 4605 mov r5, r0 if(br != NULL) *br = 0; e648: 461c mov r4, r3 e64a: b10b cbz r3, e650 e64c: 2300 movs r3, #0 e64e: 6023 str r3, [r4, #0] if(file_p->drv == NULL) return LV_FS_RES_INV_PARAM; e650: 6868 ldr r0, [r5, #4] e652: b170 cbz r0, e672 if(file_p->drv->read_cb == NULL) return LV_FS_RES_NOT_IMP; e654: 6986 ldr r6, [r0, #24] e656: b176 cbz r6, e676 uint32_t br_tmp = 0; e658: 2300 movs r3, #0 e65a: 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); e65c: ab03 add r3, sp, #12 e65e: 9300 str r3, [sp, #0] e660: 4613 mov r3, r2 e662: 460a mov r2, r1 e664: 6829 ldr r1, [r5, #0] e666: 47b0 blx r6 if(br != NULL) *br = br_tmp; e668: b10c cbz r4, e66e e66a: 9b03 ldr r3, [sp, #12] e66c: 6023 str r3, [r4, #0] } e66e: b004 add sp, #16 e670: bd70 pop {r4, r5, r6, pc} if(file_p->drv == NULL) return LV_FS_RES_INV_PARAM; e672: 200b movs r0, #11 e674: e7fb b.n e66e if(file_p->drv->read_cb == NULL) return LV_FS_RES_NOT_IMP; e676: 2009 movs r0, #9 e678: e7f9 b.n e66e 0000e67a : if(file_p->drv == NULL) { e67a: 6843 ldr r3, [r0, #4] { e67c: b410 push {r4} e67e: 460a mov r2, r1 if(file_p->drv == NULL) { e680: b13b cbz r3, e692 if(file_p->drv->seek_cb == NULL) { e682: 6a1c ldr r4, [r3, #32] e684: b14c cbz r4, e69a lv_fs_res_t res = file_p->drv->seek_cb(file_p->drv, file_p->file_d, pos); e686: 6801 ldr r1, [r0, #0] e688: 4618 mov r0, r3 e68a: 4623 mov r3, r4 } e68c: 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); e690: 4718 bx r3 return LV_FS_RES_INV_PARAM; e692: 200b movs r0, #11 } e694: f85d 4b04 ldr.w r4, [sp], #4 e698: 4770 bx lr return LV_FS_RES_NOT_IMP; e69a: 2009 movs r0, #9 e69c: e7fa b.n e694 ... 0000e6a0 : { e6a0: b570 push {r4, r5, r6, lr} _LV_LL_READ(LV_GC_ROOT(_lv_drv_ll), drv) { e6a2: 4b07 ldr r3, [pc, #28] ; (e6c0 ) e6a4: 4d07 ldr r5, [pc, #28] ; (e6c4 ) e6a6: 4e08 ldr r6, [pc, #32] ; (e6c8 ) { e6a8: 4604 mov r4, r0 _LV_LL_READ(LV_GC_ROOT(_lv_drv_ll), drv) { e6aa: 4806 ldr r0, [pc, #24] ; (e6c4 ) e6ac: 4798 blx r3 e6ae: b900 cbnz r0, e6b2 } e6b0: bd70 pop {r4, r5, r6, pc} if(drv->letter == letter) { e6b2: 7803 ldrb r3, [r0, #0] e6b4: 42a3 cmp r3, r4 e6b6: d0fb beq.n e6b0 _LV_LL_READ(LV_GC_ROOT(_lv_drv_ll), drv) { e6b8: 4601 mov r1, r0 e6ba: 4628 mov r0, r5 e6bc: 47b0 blx r6 e6be: e7f6 b.n e6ae e6c0: 0000e8d5 .word 0x0000e8d5 e6c4: 20008fc0 .word 0x20008fc0 e6c8: 0000e8e1 .word 0x0000e8e1 0000e6cc : file_p->drv = NULL; e6cc: 2300 movs r3, #0 { e6ce: e92d 41f3 stmdb sp!, {r0, r1, r4, r5, r6, r7, r8, lr} file_p->file_d = NULL; e6d2: e9c0 3300 strd r3, r3, [r0] { e6d6: 4604 mov r4, r0 e6d8: 4617 mov r7, r2 if(path == NULL) return LV_FS_RES_INV_PARAM; e6da: 460e mov r6, r1 e6dc: 2900 cmp r1, #0 e6de: d043 beq.n e768 file_p->drv = lv_fs_get_drv(letter); e6e0: 7808 ldrb r0, [r1, #0] e6e2: 4b23 ldr r3, [pc, #140] ; (e770 ) e6e4: 4798 blx r3 e6e6: 6060 str r0, [r4, #4] if(file_p->drv == NULL) { e6e8: b928 cbnz r0, e6f6 file_p->file_d = NULL; e6ea: 6020 str r0, [r4, #0] return LV_FS_RES_NOT_EX; e6ec: 2503 movs r5, #3 } e6ee: 4628 mov r0, r5 e6f0: b002 add sp, #8 e6f2: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} if(file_p->drv->ready_cb != NULL) { e6f6: 6883 ldr r3, [r0, #8] e6f8: b12b cbz r3, e706 if(file_p->drv->ready_cb(file_p->drv) == false) { e6fa: 4798 blx r3 e6fc: b918 cbnz r0, e706 file_p->file_d = NULL; e6fe: e9c4 0000 strd r0, r0, [r4] return LV_FS_RES_HW_ERR; e702: 2501 movs r5, #1 e704: e7f3 b.n e6ee file_p->file_d = lv_mem_alloc(file_p->drv->file_size); e706: 6863 ldr r3, [r4, #4] e708: 8858 ldrh r0, [r3, #2] e70a: 4b1a ldr r3, [pc, #104] ; (e774 ) e70c: 4798 blx r3 LV_ASSERT_MEM(file_p->file_d); e70e: 4b1a ldr r3, [pc, #104] ; (e778 ) file_p->file_d = lv_mem_alloc(file_p->drv->file_size); e710: 6020 str r0, [r4, #0] LV_ASSERT_MEM(file_p->file_d); e712: 4798 blx r3 e714: 4605 mov r5, r0 e716: b960 cbnz r0, e732 e718: 4b18 ldr r3, [pc, #96] ; (e77c ) e71a: 4919 ldr r1, [pc, #100] ; (e780 ) e71c: 9300 str r3, [sp, #0] e71e: 226f movs r2, #111 ; 0x6f e720: 2003 movs r0, #3 e722: 4e18 ldr r6, [pc, #96] ; (e784 ) e724: 47b0 blx r6 e726: 6822 ldr r2, [r4, #0] e728: 4817 ldr r0, [pc, #92] ; (e788 ) e72a: 4918 ldr r1, [pc, #96] ; (e78c ) e72c: 462b mov r3, r5 e72e: 4788 blx r1 e730: e7fe b.n e730 if(file_p->file_d == NULL) { e732: 6821 ldr r1, [r4, #0] e734: b911 cbnz r1, e73c file_p->drv = NULL; e736: 6061 str r1, [r4, #4] return LV_FS_RES_OUT_OF_MEM; /* Out of memory */ e738: 250a movs r5, #10 e73a: e7d8 b.n e6ee if(file_p->drv->open_cb == NULL) { e73c: f8d4 8004 ldr.w r8, [r4, #4] e740: f8d8 500c ldr.w r5, [r8, #12] e744: b195 cbz r5, e76c const char * real_path = lv_fs_get_real_path(path); e746: 4b12 ldr r3, [pc, #72] ; (e790 ) e748: 4630 mov r0, r6 e74a: 4798 blx r3 lv_fs_res_t res = file_p->drv->open_cb(file_p->drv, file_p->file_d, real_path, mode); e74c: 463b mov r3, r7 const char * real_path = lv_fs_get_real_path(path); e74e: 4602 mov r2, r0 lv_fs_res_t res = file_p->drv->open_cb(file_p->drv, file_p->file_d, real_path, mode); e750: 4640 mov r0, r8 e752: 47a8 blx r5 if(res != LV_FS_RES_OK) { e754: 4605 mov r5, r0 e756: 2800 cmp r0, #0 e758: d0c9 beq.n e6ee lv_mem_free(file_p->file_d); e75a: 4b0e ldr r3, [pc, #56] ; (e794 ) e75c: 6820 ldr r0, [r4, #0] e75e: 4798 blx r3 file_p->file_d = NULL; e760: 2300 movs r3, #0 file_p->drv = NULL; e762: e9c4 3300 strd r3, r3, [r4] e766: e7c2 b.n e6ee if(path == NULL) return LV_FS_RES_INV_PARAM; e768: 250b movs r5, #11 e76a: e7c0 b.n e6ee return LV_FS_RES_NOT_IMP; e76c: 2509 movs r5, #9 e76e: e7be b.n e6ee e770: 0000e6a1 .word 0x0000e6a1 e774: 0000ec65 .word 0x0000ec65 e778: 00001a0d .word 0x00001a0d e77c: 0002b8ed .word 0x0002b8ed e780: 0002b8ac .word 0x0002b8ac e784: 0000eb21 .word 0x0000eb21 e788: 0002673e .word 0x0002673e e78c: 00001a15 .word 0x00001a15 e790: 0000e5ed .word 0x0000e5ed e794: 0000ed1d .word 0x0000ed1d 0000e798 : { e798: b510 push {r4, lr} for(i = strlen(fn); i > 0; i--) { e79a: 4b09 ldr r3, [pc, #36] ; (e7c0 ) { e79c: 4604 mov r4, r0 for(i = strlen(fn); i > 0; i--) { e79e: 4798 blx r3 e7a0: b908 cbnz r0, e7a6 return ""; /*No extension if a '\' or '/' found*/ e7a2: 4808 ldr r0, [pc, #32] ; (e7c4 ) e7a4: e004 b.n e7b0 if(fn[i] == '.') { e7a6: 5c23 ldrb r3, [r4, r0] e7a8: 2b2e cmp r3, #46 ; 0x2e e7aa: d102 bne.n e7b2 return &fn[i + 1]; e7ac: 3001 adds r0, #1 e7ae: 4420 add r0, r4 } e7b0: bd10 pop {r4, pc} else if(fn[i] == '/' || fn[i] == '\\') { e7b2: 2b2f cmp r3, #47 ; 0x2f e7b4: d0f5 beq.n e7a2 e7b6: 2b5c cmp r3, #92 ; 0x5c e7b8: d0f3 beq.n e7a2 for(i = strlen(fn); i > 0; i--) { e7ba: 3801 subs r0, #1 e7bc: e7f0 b.n e7a0 e7be: bf00 nop e7c0: 00017381 .word 0x00017381 e7c4: 0001ddf4 .word 0x0001ddf4 0000e7c8 <_lv_memcpy_small.constprop.0.isra.0>: while(len) { e7c8: 3901 subs r1, #1 e7ca: 1d03 adds r3, r0, #4 *d8 = *s8; e7cc: f811 2f01 ldrb.w r2, [r1, #1]! e7d0: f800 2b01 strb.w r2, [r0], #1 while(len) { e7d4: 4298 cmp r0, r3 e7d6: d1f9 bne.n e7cc <_lv_memcpy_small.constprop.0.isra.0+0x4> s8++; len--; } return dst; } e7d8: 4770 bx lr ... 0000e7dc : * @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) { e7dc: b507 push {r0, r1, r2, lr} e7de: 9201 str r2, [sp, #4] if(act == NULL) return; /*Can't set the prev node of `NULL`*/ e7e0: b129 cbz r1, e7ee 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); e7e2: 6800 ldr r0, [r0, #0] e7e4: 4408 add r0, r1 if(prev) e7e6: b12a cbz r2, e7f4 _lv_memcpy_small(act + LL_PREV_P_OFFSET(ll_p), &prev, node_p_size); e7e8: 4b04 ldr r3, [pc, #16] ; (e7fc ) e7ea: a901 add r1, sp, #4 e7ec: 4798 blx r3 else _lv_memset_00(act + LL_PREV_P_OFFSET(ll_p), node_p_size); } e7ee: b003 add sp, #12 e7f0: f85d fb04 ldr.w pc, [sp], #4 _lv_memset_00(act + LL_PREV_P_OFFSET(ll_p), node_p_size); e7f4: 4b02 ldr r3, [pc, #8] ; (e800 ) e7f6: 2104 movs r1, #4 e7f8: 4798 blx r3 e7fa: e7f8 b.n e7ee e7fc: 0000e7c9 .word 0x0000e7c9 e800: 0000f251 .word 0x0000f251 0000e804 : * @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) { e804: b507 push {r0, r1, r2, lr} e806: 9201 str r2, [sp, #4] if(act == NULL) return; /*Can't set the next node of `NULL`*/ e808: b131 cbz r1, e818 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); e80a: 6803 ldr r3, [r0, #0] e80c: 3304 adds r3, #4 e80e: 18c8 adds r0, r1, r3 if(next) e810: b12a cbz r2, e81e _lv_memcpy_small(act + LL_NEXT_P_OFFSET(ll_p), &next, node_p_size); e812: 4b05 ldr r3, [pc, #20] ; (e828 ) e814: a901 add r1, sp, #4 e816: 4798 blx r3 else _lv_memset_00(act + LL_NEXT_P_OFFSET(ll_p), node_p_size); } e818: b003 add sp, #12 e81a: f85d fb04 ldr.w pc, [sp], #4 _lv_memset_00(act + LL_NEXT_P_OFFSET(ll_p), node_p_size); e81e: 4b03 ldr r3, [pc, #12] ; (e82c ) e820: 2104 movs r1, #4 e822: 4798 blx r3 e824: e7f8 b.n e818 e826: bf00 nop e828: 0000e7c9 .word 0x0000e7c9 e82c: 0000f251 .word 0x0000f251 0000e830 <_lv_ll_init>: ll_p->head = NULL; e830: 2300 movs r3, #0 ll_p->tail = NULL; e832: e9c0 3301 strd r3, r3, [r0, #4] if(node_size & 0x3) { e836: 078b lsls r3, r1, #30 node_size = node_size & (~0x3); e838: bf1c itt ne e83a: f021 0103 bicne.w r1, r1, #3 node_size += 4; e83e: 3104 addne r1, #4 ll_p->n_size = node_size; e840: 6001 str r1, [r0, #0] } e842: 4770 bx lr 0000e844 <_lv_ll_ins_head>: { e844: b570 push {r4, r5, r6, lr} e846: 4604 mov r4, r0 n_new = lv_mem_alloc(ll_p->n_size + LL_NODE_META_SIZE); e848: 6800 ldr r0, [r0, #0] e84a: 4b0d ldr r3, [pc, #52] ; (e880 <_lv_ll_ins_head+0x3c>) e84c: 3008 adds r0, #8 e84e: 4798 blx r3 if(n_new != NULL) { e850: 4605 mov r5, r0 e852: b190 cbz r0, e87a <_lv_ll_ins_head+0x36> node_set_prev(ll_p, n_new, NULL); /*No prev. before the new head*/ e854: 4601 mov r1, r0 e856: 2200 movs r2, #0 e858: 4620 mov r0, r4 e85a: 4e0a ldr r6, [pc, #40] ; (e884 <_lv_ll_ins_head+0x40>) e85c: 47b0 blx r6 node_set_next(ll_p, n_new, ll_p->head); /*After new comes the old head*/ e85e: 4629 mov r1, r5 e860: 6862 ldr r2, [r4, #4] e862: 4b09 ldr r3, [pc, #36] ; (e888 <_lv_ll_ins_head+0x44>) e864: 4620 mov r0, r4 e866: 4798 blx r3 if(ll_p->head != NULL) { /*If there is old head then before it goes the new*/ e868: 6861 ldr r1, [r4, #4] e86a: b111 cbz r1, e872 <_lv_ll_ins_head+0x2e> node_set_prev(ll_p, ll_p->head, n_new); e86c: 462a mov r2, r5 e86e: 4620 mov r0, r4 e870: 47b0 blx r6 if(ll_p->tail == NULL) { /*If there is no tail (1. node) set the tail too*/ e872: 68a3 ldr r3, [r4, #8] ll_p->head = n_new; /*Set the new head in the dsc.*/ e874: 6065 str r5, [r4, #4] if(ll_p->tail == NULL) { /*If there is no tail (1. node) set the tail too*/ e876: b903 cbnz r3, e87a <_lv_ll_ins_head+0x36> ll_p->tail = n_new; e878: 60a5 str r5, [r4, #8] } e87a: 4628 mov r0, r5 e87c: bd70 pop {r4, r5, r6, pc} e87e: bf00 nop e880: 0000ec65 .word 0x0000ec65 e884: 0000e7dd .word 0x0000e7dd e888: 0000e805 .word 0x0000e805 0000e88c <_lv_ll_ins_tail>: { e88c: b570 push {r4, r5, r6, lr} e88e: 4604 mov r4, r0 n_new = lv_mem_alloc(ll_p->n_size + LL_NODE_META_SIZE); e890: 6800 ldr r0, [r0, #0] e892: 4b0d ldr r3, [pc, #52] ; (e8c8 <_lv_ll_ins_tail+0x3c>) e894: 3008 adds r0, #8 e896: 4798 blx r3 if(n_new != NULL) { e898: 4605 mov r5, r0 e89a: b190 cbz r0, e8c2 <_lv_ll_ins_tail+0x36> node_set_next(ll_p, n_new, NULL); /*No next after the new tail*/ e89c: 4601 mov r1, r0 e89e: 2200 movs r2, #0 e8a0: 4620 mov r0, r4 e8a2: 4e0a ldr r6, [pc, #40] ; (e8cc <_lv_ll_ins_tail+0x40>) e8a4: 47b0 blx r6 node_set_prev(ll_p, n_new, ll_p->tail); /*The prev. before new is tho old tail*/ e8a6: 4629 mov r1, r5 e8a8: 68a2 ldr r2, [r4, #8] e8aa: 4b09 ldr r3, [pc, #36] ; (e8d0 <_lv_ll_ins_tail+0x44>) e8ac: 4620 mov r0, r4 e8ae: 4798 blx r3 if(ll_p->tail != NULL) { /*If there is old tail then the new comes after it*/ e8b0: 68a1 ldr r1, [r4, #8] e8b2: b111 cbz r1, e8ba <_lv_ll_ins_tail+0x2e> node_set_next(ll_p, ll_p->tail, n_new); e8b4: 462a mov r2, r5 e8b6: 4620 mov r0, r4 e8b8: 47b0 blx r6 if(ll_p->head == NULL) { /*If there is no head (1. node) set the head too*/ e8ba: 6863 ldr r3, [r4, #4] ll_p->tail = n_new; /*Set the new tail in the dsc.*/ e8bc: 60a5 str r5, [r4, #8] if(ll_p->head == NULL) { /*If there is no head (1. node) set the head too*/ e8be: b903 cbnz r3, e8c2 <_lv_ll_ins_tail+0x36> ll_p->head = n_new; e8c0: 6065 str r5, [r4, #4] } e8c2: 4628 mov r0, r5 e8c4: bd70 pop {r4, r5, r6, pc} e8c6: bf00 nop e8c8: 0000ec65 .word 0x0000ec65 e8cc: 0000e805 .word 0x0000e805 e8d0: 0000e7dd .word 0x0000e7dd 0000e8d4 <_lv_ll_get_head>: if(ll_p != NULL) { e8d4: b100 cbz r0, e8d8 <_lv_ll_get_head+0x4> head = ll_p->head; e8d6: 6840 ldr r0, [r0, #4] } e8d8: 4770 bx lr 0000e8da <_lv_ll_get_tail>: if(ll_p != NULL) { e8da: b100 cbz r0, e8de <_lv_ll_get_tail+0x4> tail = ll_p->tail; e8dc: 6880 ldr r0, [r0, #8] } e8de: 4770 bx lr 0000e8e0 <_lv_ll_get_next>: { e8e0: b507 push {r0, r1, r2, lr} void * next = NULL; e8e2: 2300 movs r3, #0 e8e4: 9301 str r3, [sp, #4] if(ll_p != NULL) { e8e6: b128 cbz r0, e8f4 <_lv_ll_get_next+0x14> _lv_memcpy_small(&next, n_act_d + LL_NEXT_P_OFFSET(ll_p), sizeof(void *)); e8e8: 6803 ldr r3, [r0, #0] e8ea: 3304 adds r3, #4 e8ec: 4419 add r1, r3 e8ee: a801 add r0, sp, #4 e8f0: 4b02 ldr r3, [pc, #8] ; (e8fc <_lv_ll_get_next+0x1c>) e8f2: 4798 blx r3 } e8f4: 9801 ldr r0, [sp, #4] e8f6: b003 add sp, #12 e8f8: f85d fb04 ldr.w pc, [sp], #4 e8fc: 0000e7c9 .word 0x0000e7c9 0000e900 <_lv_ll_get_prev>: { e900: b507 push {r0, r1, r2, lr} void * prev = NULL; e902: 2300 movs r3, #0 e904: 9301 str r3, [sp, #4] if(ll_p != NULL) { e906: b120 cbz r0, e912 <_lv_ll_get_prev+0x12> _lv_memcpy_small(&prev, n_act_d + LL_PREV_P_OFFSET(ll_p), sizeof(void *)); e908: 6803 ldr r3, [r0, #0] e90a: a801 add r0, sp, #4 e90c: 4419 add r1, r3 e90e: 4b03 ldr r3, [pc, #12] ; (e91c <_lv_ll_get_prev+0x1c>) e910: 4798 blx r3 } e912: 9801 ldr r0, [sp, #4] e914: b003 add sp, #12 e916: f85d fb04 ldr.w pc, [sp], #4 e91a: bf00 nop e91c: 0000e7c9 .word 0x0000e7c9 0000e920 <_lv_ll_ins_prev>: { e920: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} e924: 460e mov r6, r1 if(NULL == ll_p || NULL == n_act) return NULL; e926: 4604 mov r4, r0 e928: b340 cbz r0, e97c <_lv_ll_ins_prev+0x5c> e92a: b349 cbz r1, e980 <_lv_ll_ins_prev+0x60> if(_lv_ll_get_head(ll_p) == n_act) { e92c: 6843 ldr r3, [r0, #4] e92e: 4299 cmp r1, r3 e930: d103 bne.n e93a <_lv_ll_ins_prev+0x1a> } e932: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr} n_new = _lv_ll_ins_head(ll_p); e936: 4b13 ldr r3, [pc, #76] ; (e984 <_lv_ll_ins_prev+0x64>) e938: 4718 bx r3 n_new = lv_mem_alloc(ll_p->n_size + LL_NODE_META_SIZE); e93a: 6800 ldr r0, [r0, #0] e93c: 4b12 ldr r3, [pc, #72] ; (e988 <_lv_ll_ins_prev+0x68>) e93e: 3008 adds r0, #8 e940: 4798 blx r3 if(n_new == NULL) return NULL; e942: 4605 mov r5, r0 e944: b1b8 cbz r0, e976 <_lv_ll_ins_prev+0x56> n_prev = _lv_ll_get_prev(ll_p, n_act); e946: 4b11 ldr r3, [pc, #68] ; (e98c <_lv_ll_ins_prev+0x6c>) node_set_next(ll_p, n_prev, n_new); e948: f8df 8048 ldr.w r8, [pc, #72] ; e994 <_lv_ll_ins_prev+0x74> n_prev = _lv_ll_get_prev(ll_p, n_act); e94c: 4631 mov r1, r6 e94e: 4620 mov r0, r4 e950: 4798 blx r3 node_set_next(ll_p, n_prev, n_new); e952: 462a mov r2, r5 n_prev = _lv_ll_get_prev(ll_p, n_act); e954: 4607 mov r7, r0 node_set_next(ll_p, n_prev, n_new); e956: 4601 mov r1, r0 e958: 4620 mov r0, r4 e95a: 47c0 blx r8 node_set_prev(ll_p, n_new, n_prev); e95c: 463a mov r2, r7 e95e: 4629 mov r1, r5 e960: 4f0b ldr r7, [pc, #44] ; (e990 <_lv_ll_ins_prev+0x70>) e962: 4620 mov r0, r4 e964: 47b8 blx r7 node_set_prev(ll_p, n_act, n_new); e966: 462a mov r2, r5 e968: 4631 mov r1, r6 e96a: 4620 mov r0, r4 e96c: 47b8 blx r7 node_set_next(ll_p, n_new, n_act); e96e: 4632 mov r2, r6 e970: 4629 mov r1, r5 e972: 4620 mov r0, r4 e974: 47c0 blx r8 } e976: 4628 mov r0, r5 e978: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} if(NULL == ll_p || NULL == n_act) return NULL; e97c: 4605 mov r5, r0 e97e: e7fa b.n e976 <_lv_ll_ins_prev+0x56> e980: 460d mov r5, r1 e982: e7f8 b.n e976 <_lv_ll_ins_prev+0x56> e984: 0000e845 .word 0x0000e845 e988: 0000ec65 .word 0x0000ec65 e98c: 0000e901 .word 0x0000e901 e990: 0000e7dd .word 0x0000e7dd e994: 0000e805 .word 0x0000e805 0000e998 <_lv_ll_remove>: { e998: b570 push {r4, r5, r6, lr} e99a: 460d mov r5, r1 if(ll_p != NULL) { e99c: 4604 mov r4, r0 e99e: b1f8 cbz r0, e9e0 <_lv_ll_remove+0x48> if(_lv_ll_get_head(ll_p) == node_p) { e9a0: 6843 ldr r3, [r0, #4] e9a2: 4299 cmp r1, r3 e9a4: d10c bne.n e9c0 <_lv_ll_remove+0x28> ll_p->head = _lv_ll_get_next(ll_p, node_p); e9a6: 4629 mov r1, r5 e9a8: 4b17 ldr r3, [pc, #92] ; (ea08 <_lv_ll_remove+0x70>) e9aa: 4620 mov r0, r4 e9ac: 4798 blx r3 e9ae: 4601 mov r1, r0 e9b0: 6060 str r0, [r4, #4] if(ll_p->head == NULL) { e9b2: b908 cbnz r0, e9b8 <_lv_ll_remove+0x20> ll_p->tail = NULL; e9b4: 60a0 str r0, [r4, #8] } e9b6: bd70 pop {r4, r5, r6, pc} node_set_prev(ll_p, ll_p->head, NULL); e9b8: 2200 movs r2, #0 node_set_prev(ll_p, n_next, n_prev); e9ba: 4b14 ldr r3, [pc, #80] ; (ea0c <_lv_ll_remove+0x74>) e9bc: 4620 mov r0, r4 e9be: e00c b.n e9da <_lv_ll_remove+0x42> else if(_lv_ll_get_tail(ll_p) == node_p) { e9c0: 6883 ldr r3, [r0, #8] e9c2: 4299 cmp r1, r3 e9c4: d10e bne.n e9e4 <_lv_ll_remove+0x4c> ll_p->tail = _lv_ll_get_prev(ll_p, node_p); e9c6: 4b12 ldr r3, [pc, #72] ; (ea10 <_lv_ll_remove+0x78>) e9c8: 4798 blx r3 e9ca: 4601 mov r1, r0 e9cc: 60a0 str r0, [r4, #8] if(ll_p->tail == NULL) { e9ce: b908 cbnz r0, e9d4 <_lv_ll_remove+0x3c> ll_p->head = NULL; e9d0: 6060 str r0, [r4, #4] e9d2: e7f0 b.n e9b6 <_lv_ll_remove+0x1e> node_set_next(ll_p, ll_p->tail, NULL); e9d4: 4b0f ldr r3, [pc, #60] ; (ea14 <_lv_ll_remove+0x7c>) e9d6: 2200 movs r2, #0 e9d8: 4620 mov r0, r4 } e9da: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr} node_set_prev(ll_p, n_next, n_prev); e9de: 4718 bx r3 if(_lv_ll_get_head(ll_p) == node_p) { e9e0: 2900 cmp r1, #0 e9e2: d0e0 beq.n e9a6 <_lv_ll_remove+0xe> lv_ll_node_t * n_prev = _lv_ll_get_prev(ll_p, node_p); e9e4: 4629 mov r1, r5 e9e6: 4b0a ldr r3, [pc, #40] ; (ea10 <_lv_ll_remove+0x78>) e9e8: 4620 mov r0, r4 e9ea: 4798 blx r3 lv_ll_node_t * n_next = _lv_ll_get_next(ll_p, node_p); e9ec: 4629 mov r1, r5 lv_ll_node_t * n_prev = _lv_ll_get_prev(ll_p, node_p); e9ee: 4606 mov r6, r0 lv_ll_node_t * n_next = _lv_ll_get_next(ll_p, node_p); e9f0: 4b05 ldr r3, [pc, #20] ; (ea08 <_lv_ll_remove+0x70>) e9f2: 4620 mov r0, r4 e9f4: 4798 blx r3 node_set_next(ll_p, n_prev, n_next); e9f6: 4631 mov r1, r6 e9f8: 4602 mov r2, r0 lv_ll_node_t * n_next = _lv_ll_get_next(ll_p, node_p); e9fa: 4605 mov r5, r0 node_set_next(ll_p, n_prev, n_next); e9fc: 4b05 ldr r3, [pc, #20] ; (ea14 <_lv_ll_remove+0x7c>) e9fe: 4620 mov r0, r4 ea00: 4798 blx r3 node_set_prev(ll_p, n_next, n_prev); ea02: 4632 mov r2, r6 ea04: 4629 mov r1, r5 ea06: e7d8 b.n e9ba <_lv_ll_remove+0x22> ea08: 0000e8e1 .word 0x0000e8e1 ea0c: 0000e7dd .word 0x0000e7dd ea10: 0000e901 .word 0x0000e901 ea14: 0000e805 .word 0x0000e805 0000ea18 <_lv_ll_chg_list>: { ea18: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} ea1c: 460c mov r4, r1 ea1e: 461e mov r6, r3 _lv_ll_remove(ll_ori_p, node); ea20: 4611 mov r1, r2 ea22: 4b16 ldr r3, [pc, #88] ; (ea7c <_lv_ll_chg_list+0x64>) ea24: f8df 805c ldr.w r8, [pc, #92] ; ea84 <_lv_ll_chg_list+0x6c> ea28: 4f15 ldr r7, [pc, #84] ; (ea80 <_lv_ll_chg_list+0x68>) { ea2a: 4615 mov r5, r2 _lv_ll_remove(ll_ori_p, node); ea2c: 4798 blx r3 if(head) { ea2e: b196 cbz r6, ea56 <_lv_ll_chg_list+0x3e> node_set_prev(ll_new_p, node, NULL); ea30: 2200 movs r2, #0 ea32: 4629 mov r1, r5 ea34: 4620 mov r0, r4 ea36: 47c0 blx r8 node_set_next(ll_new_p, node, ll_new_p->head); ea38: 4629 mov r1, r5 ea3a: 6862 ldr r2, [r4, #4] ea3c: 4620 mov r0, r4 ea3e: 47b8 blx r7 if(ll_new_p->head != NULL) { /*If there is old head then before it goes the new*/ ea40: 6861 ldr r1, [r4, #4] ea42: b111 cbz r1, ea4a <_lv_ll_chg_list+0x32> node_set_prev(ll_new_p, ll_new_p->head, node); ea44: 462a mov r2, r5 ea46: 4620 mov r0, r4 ea48: 47c0 blx r8 if(ll_new_p->tail == NULL) { /*If there is no tail (first node) set the tail too*/ ea4a: 68a3 ldr r3, [r4, #8] ll_new_p->head = node; /*Set the new head in the dsc.*/ ea4c: 6065 str r5, [r4, #4] if(ll_new_p->tail == NULL) { /*If there is no tail (first node) set the tail too*/ ea4e: b903 cbnz r3, ea52 <_lv_ll_chg_list+0x3a> ll_new_p->tail = node; ea50: 60a5 str r5, [r4, #8] } ea52: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} node_set_prev(ll_new_p, node, ll_new_p->tail); ea56: 68a2 ldr r2, [r4, #8] ea58: 4629 mov r1, r5 ea5a: 4620 mov r0, r4 ea5c: 47c0 blx r8 node_set_next(ll_new_p, node, NULL); ea5e: 4629 mov r1, r5 ea60: 4632 mov r2, r6 ea62: 4620 mov r0, r4 ea64: 47b8 blx r7 if(ll_new_p->tail != NULL) { /*If there is old tail then after it goes the new*/ ea66: 68a1 ldr r1, [r4, #8] ea68: b111 cbz r1, ea70 <_lv_ll_chg_list+0x58> node_set_next(ll_new_p, ll_new_p->tail, node); ea6a: 462a mov r2, r5 ea6c: 4620 mov r0, r4 ea6e: 47b8 blx r7 if(ll_new_p->head == NULL) { /*If there is no head (first node) set the head too*/ ea70: 6863 ldr r3, [r4, #4] ll_new_p->tail = node; /*Set the new tail in the dsc.*/ ea72: 60a5 str r5, [r4, #8] if(ll_new_p->head == NULL) { /*If there is no head (first node) set the head too*/ ea74: 2b00 cmp r3, #0 ea76: d1ec bne.n ea52 <_lv_ll_chg_list+0x3a> ll_new_p->head = node; ea78: 6065 str r5, [r4, #4] } ea7a: e7ea b.n ea52 <_lv_ll_chg_list+0x3a> ea7c: 0000e999 .word 0x0000e999 ea80: 0000e805 .word 0x0000e805 ea84: 0000e7dd .word 0x0000e7dd 0000ea88 <_lv_ll_move_before>: if(n_act == n_after) return; /*Can't move before itself*/ ea88: 4291 cmp r1, r2 { ea8a: e92d 43f8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, lr} ea8e: 4604 mov r4, r0 ea90: 460d mov r5, r1 ea92: 4617 mov r7, r2 if(n_act == n_after) return; /*Can't move before itself*/ ea94: d022 beq.n eadc <_lv_ll_move_before+0x54> if(n_after != NULL) ea96: b31a cbz r2, eae0 <_lv_ll_move_before+0x58> n_before = _lv_ll_get_prev(ll_p, n_after); ea98: 4b14 ldr r3, [pc, #80] ; (eaec <_lv_ll_move_before+0x64>) ea9a: 4611 mov r1, r2 ea9c: 4798 blx r3 ea9e: 4606 mov r6, r0 if(n_act == n_before) return; /*Already before `n_after`*/ eaa0: 42ae cmp r6, r5 eaa2: d01b beq.n eadc <_lv_ll_move_before+0x54> _lv_ll_remove(ll_p, n_act); eaa4: 4b12 ldr r3, [pc, #72] ; (eaf0 <_lv_ll_move_before+0x68>) node_set_next(ll_p, n_before, n_act); eaa6: f8df 804c ldr.w r8, [pc, #76] ; eaf4 <_lv_ll_move_before+0x6c> node_set_prev(ll_p, n_act, n_before); eaaa: f8df 904c ldr.w r9, [pc, #76] ; eaf8 <_lv_ll_move_before+0x70> _lv_ll_remove(ll_p, n_act); eaae: 4629 mov r1, r5 eab0: 4620 mov r0, r4 eab2: 4798 blx r3 node_set_next(ll_p, n_before, n_act); eab4: 462a mov r2, r5 eab6: 4631 mov r1, r6 eab8: 4620 mov r0, r4 eaba: 47c0 blx r8 node_set_prev(ll_p, n_act, n_before); eabc: 4632 mov r2, r6 eabe: 4629 mov r1, r5 eac0: 4620 mov r0, r4 eac2: 47c8 blx r9 node_set_prev(ll_p, n_after, n_act); eac4: 462a mov r2, r5 eac6: 4639 mov r1, r7 eac8: 4620 mov r0, r4 eaca: 47c8 blx r9 node_set_next(ll_p, n_act, n_after); eacc: 463a mov r2, r7 eace: 4629 mov r1, r5 ead0: 4620 mov r0, r4 ead2: 47c0 blx r8 if(n_after == NULL) ll_p->tail = n_act; ead4: b907 cbnz r7, ead8 <_lv_ll_move_before+0x50> ead6: 60a5 str r5, [r4, #8] if(n_before == NULL) ll_p->head = n_act; ead8: b906 cbnz r6, eadc <_lv_ll_move_before+0x54> eada: 6065 str r5, [r4, #4] } eadc: e8bd 83f8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, pc} if(ll_p != NULL) { eae0: b108 cbz r0, eae6 <_lv_ll_move_before+0x5e> tail = ll_p->tail; eae2: 6886 ldr r6, [r0, #8] eae4: e7dc b.n eaa0 <_lv_ll_move_before+0x18> void * tail = NULL; eae6: 4606 mov r6, r0 eae8: e7da b.n eaa0 <_lv_ll_move_before+0x18> eaea: bf00 nop eaec: 0000e901 .word 0x0000e901 eaf0: 0000e999 .word 0x0000e999 eaf4: 0000e805 .word 0x0000e805 eaf8: 0000e7dd .word 0x0000e7dd 0000eafc <_lv_ll_is_empty>: if(ll_p == NULL) return true; eafc: b130 cbz r0, eb0c <_lv_ll_is_empty+0x10> if(ll_p->head == NULL && ll_p->tail == NULL) return true; eafe: 6843 ldr r3, [r0, #4] eb00: b933 cbnz r3, eb10 <_lv_ll_is_empty+0x14> eb02: 6880 ldr r0, [r0, #8] eb04: fab0 f080 clz r0, r0 eb08: 0940 lsrs r0, r0, #5 eb0a: 4770 bx lr if(ll_p == NULL) return true; eb0c: 2001 movs r0, #1 eb0e: 4770 bx lr return false; eb10: 2000 movs r0, #0 } eb12: 4770 bx lr 0000eb14 : * 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; eb14: 4b01 ldr r3, [pc, #4] ; (eb1c ) eb16: 6018 str r0, [r3, #0] } eb18: 4770 bx lr eb1a: bf00 nop eb1c: 20009120 .word 0x20009120 0000eb20 <_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, ...) { eb20: e92d 43f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} eb24: 461f mov r7, r3 if(level >= _LV_LOG_LEVEL_NUM) return; /*Invalid level*/ if(level >= LV_LOG_LEVEL) { eb26: 1e43 subs r3, r0, #1 eb28: b2db uxtb r3, r3 eb2a: 2b04 cmp r3, #4 { eb2c: b0c5 sub sp, #276 ; 0x114 eb2e: 4604 mov r4, r0 eb30: 460d mov r5, r1 eb32: 4616 mov r6, r2 if(level >= LV_LOG_LEVEL) { eb34: d817 bhi.n eb66 <_lv_log_add+0x46> va_list args; va_start(args, format); eb36: ab4d add r3, sp, #308 ; 0x134 char buf[256]; lv_vsnprintf(buf, sizeof(buf), format, args); eb38: f10d 0910 add.w r9, sp, #16 eb3c: f8df 8030 ldr.w r8, [pc, #48] ; eb70 <_lv_log_add+0x50> va_start(args, format); eb40: 9303 str r3, [sp, #12] lv_vsnprintf(buf, sizeof(buf), format, args); eb42: 9a4c ldr r2, [sp, #304] ; 0x130 eb44: f44f 7180 mov.w r1, #256 ; 0x100 eb48: 4648 mov r0, r9 eb4a: 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); eb4c: 4b07 ldr r3, [pc, #28] ; (eb6c <_lv_log_add+0x4c>) eb4e: f8d3 8000 ldr.w r8, [r3] eb52: f1b8 0f00 cmp.w r8, #0 eb56: d006 beq.n eb66 <_lv_log_add+0x46> eb58: f8cd 9000 str.w r9, [sp] eb5c: 463b mov r3, r7 eb5e: 4632 mov r2, r6 eb60: 4629 mov r1, r5 eb62: 4620 mov r0, r4 eb64: 47c0 blx r8 #endif } } eb66: b045 add sp, #276 ; 0x114 eb68: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} eb6c: 20009120 .word 0x20009120 eb70: 0000fa59 .word 0x0000fa59 0000eb74 <_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; eb74: f44f 73b4 mov.w r3, #360 ; 0x168 eb78: fb90 f2f3 sdiv r2, r0, r3 eb7c: fb02 0013 mls r0, r2, r3, r0 eb80: b200 sxth r0, r0 if(angle < 0) angle = 360 + angle; eb82: 2800 cmp r0, #0 eb84: bfbc itt lt eb86: 18c0 addlt r0, r0, r3 eb88: b200 sxthlt r0, r0 if(angle < 90) { eb8a: 2859 cmp r0, #89 ; 0x59 eb8c: 4b0e ldr r3, [pc, #56] ; (ebc8 <_lv_trigo_sin+0x54>) eb8e: dc02 bgt.n eb96 <_lv_trigo_sin+0x22> ret = sin0_90_table[angle]; } else if(angle >= 90 && angle < 180) { angle = 180 - angle; ret = sin0_90_table[angle]; eb90: f933 0010 ldrsh.w r0, [r3, r0, lsl #1] eb94: 4770 bx lr else if(angle >= 90 && angle < 180) { eb96: b280 uxth r0, r0 eb98: f1a0 025a sub.w r2, r0, #90 ; 0x5a eb9c: 2a59 cmp r2, #89 ; 0x59 eb9e: d803 bhi.n eba8 <_lv_trigo_sin+0x34> angle = 180 - angle; eba0: f1c0 00b4 rsb r0, r0, #180 ; 0xb4 ret = sin0_90_table[angle]; eba4: b280 uxth r0, r0 eba6: e7f3 b.n eb90 <_lv_trigo_sin+0x1c> } else if(angle >= 180 && angle < 270) { eba8: f1a0 02b4 sub.w r2, r0, #180 ; 0xb4 ebac: b292 uxth r2, r2 ebae: 2a59 cmp r2, #89 ; 0x59 angle = angle - 180; ret = -sin0_90_table[angle]; } else { /*angle >=270*/ angle = 360 - angle; ebb0: bf85 ittet hi ebb2: f5c0 70b4 rsbhi r0, r0, #360 ; 0x168 ret = -sin0_90_table[angle]; ebb6: b280 uxthhi r0, r0 ret = -sin0_90_table[angle]; ebb8: f833 0012 ldrhls.w r0, [r3, r2, lsl #1] ret = -sin0_90_table[angle]; ebbc: f833 0010 ldrhhi.w r0, [r3, r0, lsl #1] ebc0: 4240 negs r0, r0 ebc2: b200 sxth r0, r0 } return ret; } ebc4: 4770 bx lr ebc6: bf00 nop ebc8: 0002b908 .word 0x0002b908 0000ebcc <_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) { ebcc: b530 push {r4, r5, lr} x = x << 8; /*To get 4 bit precision. (sqrt(256) = 16 = 4 bit)*/ ebce: 0200 lsls r0, r0, #8 uint32_t root = 0; ebd0: 2300 movs r3, #0 uint32_t trial; // http://ww1.microchip.com/...en/AppNotes/91040a.pdf do { trial = root + mask; ebd2: 18d4 adds r4, r2, r3 if((uint32_t)trial * trial <= x) root = trial; ebd4: fb04 f504 mul.w r5, r4, r4 ebd8: 42a8 cmp r0, r5 ebda: bf28 it cs ebdc: 4623 movcs r3, r4 mask = mask >> 1; } while(mask); ebde: 0852 lsrs r2, r2, #1 ebe0: d1f7 bne.n ebd2 <_lv_sqrt+0x6> q->i = (uint32_t) root >> 4; ebe2: 091a lsrs r2, r3, #4 q->f = (uint32_t)(root & 0xf) << 4; ebe4: 011b lsls r3, r3, #4 ebe6: b2db uxtb r3, r3 q->i = (uint32_t) root >> 4; ebe8: 800a strh r2, [r1, #0] q->f = (uint32_t)(root & 0xf) << 4; ebea: 804b strh r3, [r1, #2] } ebec: bd30 pop {r4, r5, pc} ... 0000ebf0 : 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; ebf0: 4a07 ldr r2, [pc, #28] ; (ec10 ) { ebf2: 4603 mov r3, r0 next_e = (lv_mem_ent_t *)work_mem; ebf4: 6810 ldr r0, [r2, #0] if(act_e == NULL) { /*NULL means: get the first entry*/ ebf6: b153 cbz r3, ec0e } 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]; ebf8: f853 2b04 ldr.w r2, [r3], #4 ebfc: eb03 0352 add.w r3, r3, r2, lsr #1 if(&next_e->first_data >= &work_mem[LV_MEM_SIZE]) next_e = NULL; ec00: 1d19 adds r1, r3, #4 ec02: f500 4280 add.w r2, r0, #16384 ; 0x4000 ec06: 4291 cmp r1, r2 ec08: bf34 ite cc ec0a: 4618 movcc r0, r3 ec0c: 2000 movcs r0, #0 } return next_e; } ec0e: 4770 bx lr ec10: 20009124 .word 0x20009124 0000ec14 : size = size & (~0x7); size += 8; } #else /*Round the size up to 4*/ if(size & 0x3) { ec14: 078b lsls r3, r1, #30 size = size & (~0x3); ec16: bf18 it ne ec18: 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)) { ec1c: 6802 ldr r2, [r0, #0] size += 4; ec1e: bf18 it ne ec20: 3104 addne r1, #4 { ec22: b510 push {r4, lr} if(e->header.s.d_size == size + sizeof(lv_mem_header_t)) { ec24: 1d0c adds r4, r1, #4 ec26: ebb4 0f52 cmp.w r4, r2, lsr #1 ec2a: f3c2 035e ubfx r3, r2, #1, #31 ec2e: d00b beq.n ec48 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) { ec30: 428b cmp r3, r1 ec32: d004 beq.n ec3e 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); ec34: 3b04 subs r3, #4 after_new_e->header.s.used = 0; ec36: 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); ec38: 1a5b subs r3, r3, r1 after_new_e->header.s.used = 0; ec3a: 005b lsls r3, r3, #1 ec3c: 6053 str r3, [r2, #4] } /* Set the new size for the original entry */ e->header.s.d_size = (uint32_t)size; ec3e: 6803 ldr r3, [r0, #0] ec40: f361 035f bfi r3, r1, #1, #31 ec44: 6003 str r3, [r0, #0] } ec46: bd10 pop {r4, pc} ec48: 4619 mov r1, r3 ec4a: e7f8 b.n ec3e 0000ec4c <_lv_mem_init>: work_mem = (uint8_t *)work_mem_int; ec4c: 4a03 ldr r2, [pc, #12] ; (ec5c <_lv_mem_init+0x10>) ec4e: 4b04 ldr r3, [pc, #16] ; (ec60 <_lv_mem_init+0x14>) ec50: 6013 str r3, [r2, #0] full->header.s.used = 0; ec52: f647 72f8 movw r2, #32760 ; 0x7ff8 ec56: 601a str r2, [r3, #0] } ec58: 4770 bx lr ec5a: bf00 nop ec5c: 20009124 .word 0x20009124 ec60: 20009130 .word 0x20009130 0000ec64 : { ec64: b573 push {r0, r1, r4, r5, r6, lr} if(size == 0) { ec66: 4605 mov r5, r0 ec68: b1e8 cbz r0, eca6 if(size & 0x3) { ec6a: 0782 lsls r2, r0, #30 size = size & (~0x3); ec6c: bf18 it ne ec6e: f020 0503 bicne.w r5, r0, #3 e = ent_get_next(e); ec72: 4e12 ldr r6, [pc, #72] ; (ecbc ) size += 4; ec74: bf18 it ne ec76: 3504 addne r5, #4 lv_mem_ent_t * e = NULL; ec78: 2400 movs r4, #0 e = ent_get_next(e); ec7a: 4620 mov r0, r4 ec7c: 47b0 blx r6 if(e != NULL) { ec7e: 4604 mov r4, r0 ec80: b198 cbz r0, ecaa if(e->header.s.used == 0 && e->header.s.d_size >= size) { ec82: 7803 ldrb r3, [r0, #0] ec84: 07db lsls r3, r3, #31 ec86: d4f8 bmi.n ec7a ec88: 6803 ldr r3, [r0, #0] ec8a: ebb5 0f53 cmp.w r5, r3, lsr #1 ec8e: d8f4 bhi.n ec7a ent_trunc(e, size); ec90: 4b0b ldr r3, [pc, #44] ; (ecc0 ) ec92: 4629 mov r1, r5 ec94: 4798 blx r3 e->header.s.used = 1; ec96: 7803 ldrb r3, [r0, #0] ec98: f043 0301 orr.w r3, r3, #1 ec9c: f804 3b04 strb.w r3, [r4], #4 } eca0: 4620 mov r0, r4 eca2: b002 add sp, #8 eca4: bd70 pop {r4, r5, r6, pc} return &zero_mem; eca6: 4c07 ldr r4, [pc, #28] ; (ecc4 ) eca8: e7fa b.n eca0 if(alloc == NULL) LV_LOG_WARN("Couldn't allocate memory"); ecaa: 4b07 ldr r3, [pc, #28] ; (ecc8 ) ecac: 9300 str r3, [sp, #0] ecae: 4907 ldr r1, [pc, #28] ; (eccc ) ecb0: 4b07 ldr r3, [pc, #28] ; (ecd0 ) ecb2: 4d08 ldr r5, [pc, #32] ; (ecd4 ) ecb4: 22d1 movs r2, #209 ; 0xd1 ecb6: 2002 movs r0, #2 ecb8: 47a8 blx r5 ecba: e7f1 b.n eca0 ecbc: 0000ebf1 .word 0x0000ebf1 ecc0: 0000ec15 .word 0x0000ec15 ecc4: 20009128 .word 0x20009128 ecc8: 0002b9ed .word 0x0002b9ed eccc: 0002b9be .word 0x0002b9be ecd0: 0002bad2 .word 0x0002bad2 ecd4: 0000eb21 .word 0x0000eb21 0000ecd8 : { ecd8: b538 push {r3, r4, r5, lr} next_e = (lv_mem_ent_t *)work_mem; ecda: 4b0e ldr r3, [pc, #56] ; (ed14 ) e_free = ent_get_next(e_free); ecdc: 4d0e ldr r5, [pc, #56] ; (ed18 ) next_e = (lv_mem_ent_t *)work_mem; ecde: 681c ldr r4, [r3, #0] while(e_free != NULL) { ece0: b904 cbnz r4, ece4 } ece2: bd38 pop {r3, r4, r5, pc} e_free = ent_get_next(e_free); ece4: 4620 mov r0, r4 ece6: 47a8 blx r5 if(e_free->header.s.used != 0) { ece8: 7823 ldrb r3, [r4, #0] ecea: 07da lsls r2, r3, #31 ecec: d50f bpl.n ed0e { ecee: 4604 mov r4, r0 ecf0: e7f6 b.n ece0 if(e_next->header.s.used == 0) { ecf2: 7803 ldrb r3, [r0, #0] ecf4: 07db lsls r3, r3, #31 ecf6: d4fa bmi.n ecee e_free->header.s.d_size += e_next->header.s.d_size + sizeof(e_next->header); ecf8: 6823 ldr r3, [r4, #0] ecfa: 6801 ldr r1, [r0, #0] ecfc: f3c3 025e ubfx r2, r3, #1, #31 ed00: 3204 adds r2, #4 ed02: eb02 0251 add.w r2, r2, r1, lsr #1 ed06: f362 035f bfi r3, r2, #1, #31 ed0a: 6023 str r3, [r4, #0] e_next = ent_get_next(e_next); ed0c: 47a8 blx r5 while(e_next != NULL) { ed0e: 2800 cmp r0, #0 ed10: d1ef bne.n ecf2 ed12: e7e6 b.n ece2 ed14: 20009124 .word 0x20009124 ed18: 0000ebf1 .word 0x0000ebf1 0000ed1c : if(data == &zero_mem) return; ed1c: 4a16 ldr r2, [pc, #88] ; (ed78 ) ed1e: 1d13 adds r3, r2, #4 ed20: 4298 cmp r0, r3 { ed22: b570 push {r4, r5, r6, lr} ed24: 4604 mov r4, r0 if(data == &zero_mem) return; ed26: d010 beq.n ed4a if(data == NULL) return; ed28: b178 cbz r0, ed4a e->header.s.used = 0; ed2a: f810 3c04 ldrb.w r3, [r0, #-4] ed2e: f36f 0300 bfc r3, #0, #1 ed32: f800 3c04 strb.w r3, [r0, #-4] full_defrag_cnt++; ed36: 8913 ldrh r3, [r2, #8] ed38: 3301 adds r3, #1 ed3a: b29b uxth r3, r3 if(full_defrag_cnt < LV_MEM_FULL_DEFRAG_CNT) { ed3c: 2b0f cmp r3, #15 full_defrag_cnt++; ed3e: 8113 strh r3, [r2, #8] if(full_defrag_cnt < LV_MEM_FULL_DEFRAG_CNT) { ed40: d814 bhi.n ed6c e_next = ent_get_next(e); ed42: 4d0e ldr r5, [pc, #56] ; (ed7c ) ed44: 3804 subs r0, #4 e_next = ent_get_next(e_next); ed46: 47a8 blx r5 while(e_next != NULL) { ed48: b900 cbnz r0, ed4c } ed4a: bd70 pop {r4, r5, r6, pc} if(e_next->header.s.used == 0) { ed4c: 7803 ldrb r3, [r0, #0] ed4e: 07db lsls r3, r3, #31 ed50: d4fb bmi.n ed4a e->header.s.d_size += e_next->header.s.d_size + sizeof(e->header); ed52: f854 3c04 ldr.w r3, [r4, #-4] ed56: 6801 ldr r1, [r0, #0] ed58: f3c3 025e ubfx r2, r3, #1, #31 ed5c: 3204 adds r2, #4 ed5e: eb02 0251 add.w r2, r2, r1, lsr #1 ed62: f362 035f bfi r3, r2, #1, #31 ed66: f844 3c04 str.w r3, [r4, #-4] ed6a: e7ec b.n ed46 full_defrag_cnt = 0; ed6c: 2300 movs r3, #0 ed6e: 8113 strh r3, [r2, #8] } ed70: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr} lv_mem_defrag(); ed74: 4b02 ldr r3, [pc, #8] ; (ed80 ) ed76: 4718 bx r3 ed78: 20009124 .word 0x20009124 ed7c: 0000ebf1 .word 0x0000ebf1 ed80: 0000ecd9 .word 0x0000ecd9 0000ed84 <_lv_mem_get_size>: if(data == NULL) return 0; ed84: b140 cbz r0, ed98 <_lv_mem_get_size+0x14> if(data == &zero_mem) return 0; ed86: 4b05 ldr r3, [pc, #20] ; (ed9c <_lv_mem_get_size+0x18>) ed88: 4298 cmp r0, r3 ed8a: d004 beq.n ed96 <_lv_mem_get_size+0x12> return e->header.s.d_size; ed8c: f850 0c04 ldr.w r0, [r0, #-4] ed90: f3c0 005e ubfx r0, r0, #1, #31 ed94: 4770 bx lr if(data == NULL) return 0; ed96: 2000 movs r0, #0 } ed98: 4770 bx lr ed9a: bf00 nop ed9c: 20009128 .word 0x20009128 0000eda0 <_lv_mem_buf_release>: if(mem_buf_small[i].p == p) { eda0: 4b16 ldr r3, [pc, #88] ; (edfc <_lv_mem_buf_release+0x5c>) eda2: 681a ldr r2, [r3, #0] eda4: 4290 cmp r0, r2 { eda6: b513 push {r0, r1, r4, lr} if(mem_buf_small[i].p == p) { eda8: d00b beq.n edc2 <_lv_mem_buf_release+0x22> edaa: 689a ldr r2, [r3, #8] edac: 4290 cmp r0, r2 edae: d10a bne.n edc6 <_lv_mem_buf_release+0x26> edb0: 2201 movs r2, #1 mem_buf_small[i].used = 0; edb2: eb03 03c2 add.w r3, r3, r2, lsl #3 edb6: 799a ldrb r2, [r3, #6] edb8: f36f 0200 bfc r2, #0, #1 edbc: 719a strb r2, [r3, #6] } edbe: b002 add sp, #8 edc0: bd10 pop {r4, pc} if(mem_buf_small[i].p == p) { edc2: 2200 movs r2, #0 edc4: e7f5 b.n edb2 <_lv_mem_buf_release+0x12> if(LV_GC_ROOT(_lv_mem_buf[i]).p == p) { edc6: 4a0e ldr r2, [pc, #56] ; (ee00 <_lv_mem_buf_release+0x60>) if(mem_buf_small[i].p == p) { edc8: 2300 movs r3, #0 if(LV_GC_ROOT(_lv_mem_buf[i]).p == p) { edca: f852 4033 ldr.w r4, [r2, r3, lsl #3] edce: 4284 cmp r4, r0 edd0: eb02 01c3 add.w r1, r2, r3, lsl #3 edd4: d104 bne.n ede0 <_lv_mem_buf_release+0x40> LV_GC_ROOT(_lv_mem_buf[i]).used = 0; edd6: 798b ldrb r3, [r1, #6] edd8: f36f 0300 bfc r3, #0, #1 eddc: 718b strb r3, [r1, #6] return; edde: e7ee b.n edbe <_lv_mem_buf_release+0x1e> for(i = 0; i < LV_MEM_BUF_MAX_NUM; i++) { ede0: 3301 adds r3, #1 ede2: 2b10 cmp r3, #16 ede4: d1f1 bne.n edca <_lv_mem_buf_release+0x2a> LV_LOG_ERROR("lv_mem_buf_release: p is not a known buffer") ede6: 4b07 ldr r3, [pc, #28] ; (ee04 <_lv_mem_buf_release+0x64>) ede8: 9300 str r3, [sp, #0] edea: 4907 ldr r1, [pc, #28] ; (ee08 <_lv_mem_buf_release+0x68>) edec: 4b07 ldr r3, [pc, #28] ; (ee0c <_lv_mem_buf_release+0x6c>) edee: 4c08 ldr r4, [pc, #32] ; (ee10 <_lv_mem_buf_release+0x70>) edf0: f240 2232 movw r2, #562 ; 0x232 edf4: 2003 movs r0, #3 edf6: 47a0 blx r4 edf8: e7e1 b.n edbe <_lv_mem_buf_release+0x1e> edfa: bf00 nop edfc: 20000038 .word 0x20000038 ee00: 20009010 .word 0x20009010 ee04: 0002ba06 .word 0x0002ba06 ee08: 0002b9be .word 0x0002b9be ee0c: 0002badf .word 0x0002badf ee10: 0000eb21 .word 0x0000eb21 0000ee14 <_lv_mem_buf_free_all>: mem_buf_small[i].used = 0; ee14: 4b11 ldr r3, [pc, #68] ; (ee5c <_lv_mem_buf_free_all+0x48>) ee16: 799a ldrb r2, [r3, #6] ee18: f36f 0200 bfc r2, #0, #1 { ee1c: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} mem_buf_small[i].used = 0; ee20: 719a strb r2, [r3, #6] ee22: 7b9a ldrb r2, [r3, #14] ee24: 4c0e ldr r4, [pc, #56] ; (ee60 <_lv_mem_buf_free_all+0x4c>) lv_mem_free(LV_GC_ROOT(_lv_mem_buf[i]).p); ee26: f8df 803c ldr.w r8, [pc, #60] ; ee64 <_lv_mem_buf_free_all+0x50> mem_buf_small[i].used = 0; ee2a: f36f 0200 bfc r2, #0, #1 ee2e: 2500 movs r5, #0 ee30: 739a strb r2, [r3, #14] for(i = 0; i < LV_MEM_BUF_MAX_NUM; i++) { ee32: 4627 mov r7, r4 LV_GC_ROOT(_lv_mem_buf[i]).p = NULL; ee34: 462e mov r6, r5 if(LV_GC_ROOT(_lv_mem_buf[i]).p) { ee36: 6820 ldr r0, [r4, #0] ee38: b140 cbz r0, ee4c <_lv_mem_buf_free_all+0x38> lv_mem_free(LV_GC_ROOT(_lv_mem_buf[i]).p); ee3a: 47c0 blx r8 LV_GC_ROOT(_lv_mem_buf[i]).used = 0; ee3c: eb07 03c5 add.w r3, r7, r5, lsl #3 LV_GC_ROOT(_lv_mem_buf[i]).p = NULL; ee40: 6026 str r6, [r4, #0] LV_GC_ROOT(_lv_mem_buf[i]).used = 0; ee42: 799a ldrb r2, [r3, #6] ee44: f366 0200 bfi r2, r6, #0, #1 ee48: 719a strb r2, [r3, #6] LV_GC_ROOT(_lv_mem_buf[i]).size = 0; ee4a: 80a6 strh r6, [r4, #4] for(i = 0; i < LV_MEM_BUF_MAX_NUM; i++) { ee4c: 3501 adds r5, #1 ee4e: 2d10 cmp r5, #16 ee50: f104 0408 add.w r4, r4, #8 ee54: d1ef bne.n ee36 <_lv_mem_buf_free_all+0x22> } ee56: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} ee5a: bf00 nop ee5c: 20000038 .word 0x20000038 ee60: 20009010 .word 0x20009010 ee64: 0000ed1d .word 0x0000ed1d 0000ee68 <_lv_memcpy>: { ee68: b570 push {r4, r5, r6, lr} lv_uintptr_t d_align = (lv_uintptr_t)d8 & ALIGN_MASK; ee6a: f000 0503 and.w r5, r0, #3 lv_uintptr_t s_align = (lv_uintptr_t)s8 & ALIGN_MASK; ee6e: f001 0603 and.w r6, r1, #3 if(s_align != d_align) { ee72: 42b5 cmp r5, r6 lv_uintptr_t d_align = (lv_uintptr_t)d8 & ALIGN_MASK; ee74: 4604 mov r4, r0 lv_uintptr_t s_align = (lv_uintptr_t)s8 & ALIGN_MASK; ee76: 460b mov r3, r1 if(s_align != d_align) { ee78: f040 8098 bne.w efac <_lv_memcpy+0x144> if(d_align) { ee7c: 2d00 cmp r5, #0 ee7e: f040 80a8 bne.w efd2 <_lv_memcpy+0x16a> uint8_t * d8 = dst; ee82: 4605 mov r5, r0 ee84: 462b mov r3, r5 while(len > 32) { ee86: 2a20 cmp r2, #32 ee88: 461c mov r4, r3 ee8a: f101 0520 add.w r5, r1, #32 ee8e: f103 0320 add.w r3, r3, #32 ee92: f200 80b0 bhi.w eff6 <_lv_memcpy+0x18e> while(len > 4) { ee96: 2a04 cmp r2, #4 ee98: 460e mov r6, r1 ee9a: f240 809f bls.w efdc <_lv_memcpy+0x174> COPY32; ee9e: f851 3b04 ldr.w r3, [r1], #4 eea2: f844 3b04 str.w r3, [r4], #4 len -= 4; eea6: 3a04 subs r2, #4 eea8: e7f5 b.n ee96 <_lv_memcpy+0x2e> REPEAT8(COPY8); eeaa: f813 1c20 ldrb.w r1, [r3, #-32] eeae: f804 1c20 strb.w r1, [r4, #-32] eeb2: f813 1c1f ldrb.w r1, [r3, #-31] eeb6: f804 1c1f strb.w r1, [r4, #-31] eeba: f813 1c1e ldrb.w r1, [r3, #-30] eebe: f804 1c1e strb.w r1, [r4, #-30] eec2: f813 1c1d ldrb.w r1, [r3, #-29] eec6: f804 1c1d strb.w r1, [r4, #-29] eeca: f813 1c1c ldrb.w r1, [r3, #-28] eece: f804 1c1c strb.w r1, [r4, #-28] eed2: f813 1c1b ldrb.w r1, [r3, #-27] eed6: f804 1c1b strb.w r1, [r4, #-27] eeda: f813 1c1a ldrb.w r1, [r3, #-26] eede: f804 1c1a strb.w r1, [r4, #-26] eee2: f813 1c19 ldrb.w r1, [r3, #-25] eee6: f804 1c19 strb.w r1, [r4, #-25] REPEAT8(COPY8); eeea: f813 1c18 ldrb.w r1, [r3, #-24] eeee: f804 1c18 strb.w r1, [r4, #-24] eef2: f813 1c17 ldrb.w r1, [r3, #-23] eef6: f804 1c17 strb.w r1, [r4, #-23] eefa: f813 1c16 ldrb.w r1, [r3, #-22] eefe: f804 1c16 strb.w r1, [r4, #-22] ef02: f813 1c15 ldrb.w r1, [r3, #-21] ef06: f804 1c15 strb.w r1, [r4, #-21] ef0a: f813 1c14 ldrb.w r1, [r3, #-20] ef0e: f804 1c14 strb.w r1, [r4, #-20] ef12: f813 1c13 ldrb.w r1, [r3, #-19] ef16: f804 1c13 strb.w r1, [r4, #-19] ef1a: f813 1c12 ldrb.w r1, [r3, #-18] ef1e: f804 1c12 strb.w r1, [r4, #-18] ef22: f813 1c11 ldrb.w r1, [r3, #-17] ef26: f804 1c11 strb.w r1, [r4, #-17] REPEAT8(COPY8); ef2a: f813 1c10 ldrb.w r1, [r3, #-16] ef2e: f804 1c10 strb.w r1, [r4, #-16] ef32: f813 1c0f ldrb.w r1, [r3, #-15] ef36: f804 1c0f strb.w r1, [r4, #-15] ef3a: f813 1c0e ldrb.w r1, [r3, #-14] ef3e: f804 1c0e strb.w r1, [r4, #-14] ef42: f813 1c0d ldrb.w r1, [r3, #-13] ef46: f804 1c0d strb.w r1, [r4, #-13] ef4a: f813 1c0c ldrb.w r1, [r3, #-12] ef4e: f804 1c0c strb.w r1, [r4, #-12] ef52: f813 1c0b ldrb.w r1, [r3, #-11] ef56: f804 1c0b strb.w r1, [r4, #-11] ef5a: f813 1c0a ldrb.w r1, [r3, #-10] ef5e: f804 1c0a strb.w r1, [r4, #-10] ef62: f813 1c09 ldrb.w r1, [r3, #-9] ef66: f804 1c09 strb.w r1, [r4, #-9] REPEAT8(COPY8); ef6a: f813 1c08 ldrb.w r1, [r3, #-8] ef6e: f804 1c08 strb.w r1, [r4, #-8] ef72: f813 1c07 ldrb.w r1, [r3, #-7] ef76: f804 1c07 strb.w r1, [r4, #-7] ef7a: f813 1c06 ldrb.w r1, [r3, #-6] ef7e: f804 1c06 strb.w r1, [r4, #-6] ef82: f813 1c05 ldrb.w r1, [r3, #-5] ef86: f804 1c05 strb.w r1, [r4, #-5] ef8a: f813 1c04 ldrb.w r1, [r3, #-4] ef8e: f804 1c04 strb.w r1, [r4, #-4] ef92: f813 1c03 ldrb.w r1, [r3, #-3] ef96: f804 1c03 strb.w r1, [r4, #-3] ef9a: f813 1c02 ldrb.w r1, [r3, #-2] ef9e: f804 1c02 strb.w r1, [r4, #-2] efa2: f813 1c01 ldrb.w r1, [r3, #-1] efa6: f804 1c01 strb.w r1, [r4, #-1] len -= 32; efaa: 3a20 subs r2, #32 while(len > 32) { efac: 2a20 cmp r2, #32 efae: 461d mov r5, r3 efb0: 4621 mov r1, r4 efb2: f103 0320 add.w r3, r3, #32 efb6: f104 0420 add.w r4, r4, #32 efba: f63f af76 bhi.w eeaa <_lv_memcpy+0x42> efbe: 1e6b subs r3, r5, #1 efc0: 440a add r2, r1 while(len) { efc2: 4291 cmp r1, r2 efc4: d100 bne.n efc8 <_lv_memcpy+0x160> } efc6: bd70 pop {r4, r5, r6, pc} COPY8 efc8: f813 4f01 ldrb.w r4, [r3, #1]! efcc: f801 4b01 strb.w r4, [r1], #1 len--; efd0: e7f7 b.n efc2 <_lv_memcpy+0x15a> d_align = ALIGN_MASK + 1 - d_align; efd2: f1c5 0504 rsb r5, r5, #4 efd6: 4405 add r5, r0 efd8: 461e mov r6, r3 while(d_align && len) { efda: b912 cbnz r2, efe2 <_lv_memcpy+0x17a> efdc: 1e73 subs r3, r6, #1 efde: 4422 add r2, r4 efe0: e030 b.n f044 <_lv_memcpy+0x1dc> COPY8; efe2: f813 1b01 ldrb.w r1, [r3], #1 efe6: f804 1b01 strb.w r1, [r4], #1 while(d_align && len) { efea: 42ac cmp r4, r5 COPY8; efec: 4619 mov r1, r3 len--; efee: f102 32ff add.w r2, r2, #4294967295 ; 0xffffffff while(d_align && len) { eff2: d1f1 bne.n efd8 <_lv_memcpy+0x170> eff4: e746 b.n ee84 <_lv_memcpy+0x1c> REPEAT8(COPY32) eff6: f855 1c20 ldr.w r1, [r5, #-32] effa: f843 1c20 str.w r1, [r3, #-32] effe: f855 1c1c ldr.w r1, [r5, #-28] f002: f843 1c1c str.w r1, [r3, #-28] f006: f855 1c18 ldr.w r1, [r5, #-24] f00a: f843 1c18 str.w r1, [r3, #-24] f00e: f855 1c14 ldr.w r1, [r5, #-20] f012: f843 1c14 str.w r1, [r3, #-20] f016: f855 1c10 ldr.w r1, [r5, #-16] f01a: f843 1c10 str.w r1, [r3, #-16] f01e: f855 1c0c ldr.w r1, [r5, #-12] f022: f843 1c0c str.w r1, [r3, #-12] f026: f855 1c08 ldr.w r1, [r5, #-8] f02a: f843 1c08 str.w r1, [r3, #-8] f02e: f855 1c04 ldr.w r1, [r5, #-4] f032: f843 1c04 str.w r1, [r3, #-4] len -= 32; f036: 3a20 subs r2, #32 f038: 4629 mov r1, r5 f03a: e724 b.n ee86 <_lv_memcpy+0x1e> COPY8 f03c: f813 1f01 ldrb.w r1, [r3, #1]! f040: f804 1b01 strb.w r1, [r4], #1 while(len) { f044: 4294 cmp r4, r2 f046: d1f9 bne.n f03c <_lv_memcpy+0x1d4> f048: e7bd b.n efc6 <_lv_memcpy+0x15e> ... 0000f04c : if(new_size & 0x3) { f04c: 078b lsls r3, r1, #30 { f04e: b5f7 push {r0, r1, r2, r4, r5, r6, r7, lr} f050: 460d mov r5, r1 new_size = new_size & (~0x3); f052: bf18 it ne f054: f021 0503 bicne.w r5, r1, #3 { f058: 4604 mov r4, r0 new_size += 4; f05a: bf18 it ne f05c: 3504 addne r5, #4 if(data_p != NULL) { f05e: b128 cbz r0, f06c if(e->header.s.used == 0) { f060: f810 3c04 ldrb.w r3, [r0, #-4] data_p = NULL; f064: f013 0f01 tst.w r3, #1 f068: bf08 it eq f06a: 2400 moveq r4, #0 uint32_t old_size = _lv_mem_get_size(data_p); f06c: 4b16 ldr r3, [pc, #88] ; (f0c8 ) f06e: 4620 mov r0, r4 f070: 4798 blx r3 if(old_size == new_size) return data_p; /*Also avoid reallocating the same memory*/ f072: 4285 cmp r5, r0 uint32_t old_size = _lv_mem_get_size(data_p); f074: 4607 mov r7, r0 if(old_size == new_size) return data_p; /*Also avoid reallocating the same memory*/ f076: d004 beq.n f082 if(new_size < old_size) { f078: d205 bcs.n f086 ent_trunc(e, new_size); f07a: 4b14 ldr r3, [pc, #80] ; (f0cc ) f07c: 4629 mov r1, r5 f07e: 1f20 subs r0, r4, #4 f080: 4798 blx r3 return &e->first_data; f082: 4626 mov r6, r4 f084: e00d b.n f0a2 new_p = lv_mem_alloc(new_size); f086: 4b12 ldr r3, [pc, #72] ; (f0d0 ) f088: 4628 mov r0, r5 f08a: 4798 blx r3 if(new_p == NULL) { f08c: 4606 mov r6, r0 f08e: b958 cbnz r0, f0a8 LV_LOG_WARN("Couldn't allocate memory"); f090: 4b10 ldr r3, [pc, #64] ; (f0d4 ) f092: 9300 str r3, [sp, #0] f094: 4910 ldr r1, [pc, #64] ; (f0d8 ) f096: 4b11 ldr r3, [pc, #68] ; (f0dc ) f098: 4c11 ldr r4, [pc, #68] ; (f0e0 ) f09a: f240 123f movw r2, #319 ; 0x13f f09e: 2002 movs r0, #2 f0a0: 47a0 blx r4 } f0a2: 4630 mov r0, r6 f0a4: b003 add sp, #12 f0a6: bdf0 pop {r4, r5, r6, r7, pc} if(data_p != NULL) { f0a8: 2c00 cmp r4, #0 f0aa: d0fa beq.n f0a2 if(old_size != 0) { f0ac: 2f00 cmp r7, #0 f0ae: d0f8 beq.n f0a2 _lv_memcpy(new_p, data_p, LV_MATH_MIN(new_size, old_size)); f0b0: 42bd cmp r5, r7 f0b2: 462a mov r2, r5 f0b4: 4b0b ldr r3, [pc, #44] ; (f0e4 ) f0b6: bf28 it cs f0b8: 463a movcs r2, r7 f0ba: 4621 mov r1, r4 f0bc: 4798 blx r3 lv_mem_free(data_p); f0be: 4b0a ldr r3, [pc, #40] ; (f0e8 ) f0c0: 4620 mov r0, r4 f0c2: 4798 blx r3 f0c4: e7ed b.n f0a2 f0c6: bf00 nop f0c8: 0000ed85 .word 0x0000ed85 f0cc: 0000ec15 .word 0x0000ec15 f0d0: 0000ec65 .word 0x0000ec65 f0d4: 0002b9ed .word 0x0002b9ed f0d8: 0002b9be .word 0x0002b9be f0dc: 0002baf3 .word 0x0002baf3 f0e0: 0000eb21 .word 0x0000eb21 f0e4: 0000ee69 .word 0x0000ee69 f0e8: 0000ed1d .word 0x0000ed1d 0000f0ec <_lv_mem_buf_get>: { f0ec: b5f7 push {r0, r1, r2, r4, r5, r6, r7, lr} if(size == 0) return NULL; f0ee: b190 cbz r0, f116 <_lv_mem_buf_get+0x2a> if(size <= MEM_BUF_SMALL_SIZE) { f0f0: 2810 cmp r0, #16 f0f2: d812 bhi.n f11a <_lv_mem_buf_get+0x2e> if(mem_buf_small[i].used == 0) { f0f4: 4a36 ldr r2, [pc, #216] ; (f1d0 <_lv_mem_buf_get+0xe4>) f0f6: 7993 ldrb r3, [r2, #6] f0f8: f013 0301 ands.w r3, r3, #1 f0fc: d003 beq.n f106 <_lv_mem_buf_get+0x1a> f0fe: 7b93 ldrb r3, [r2, #14] f100: 07de lsls r6, r3, #31 f102: d40a bmi.n f11a <_lv_mem_buf_get+0x2e> f104: 2301 movs r3, #1 mem_buf_small[i].used = 1; f106: eb02 00c3 add.w r0, r2, r3, lsl #3 f10a: 7981 ldrb r1, [r0, #6] f10c: f041 0101 orr.w r1, r1, #1 f110: 7181 strb r1, [r0, #6] return mem_buf_small[i].p; f112: f852 0033 ldr.w r0, [r2, r3, lsl #3] } f116: b003 add sp, #12 f118: 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) { f11a: 4c2e ldr r4, [pc, #184] ; (f1d4 <_lv_mem_buf_get+0xe8>) if(mem_buf_small[i].used == 0) { f11c: 2300 movs r3, #0 f11e: 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) { f122: 1d27 adds r7, r4, #4 f124: eb04 06c3 add.w r6, r4, r3, lsl #3 f128: 79b5 ldrb r5, [r6, #6] f12a: 4629 mov r1, r5 f12c: 07ed lsls r5, r5, #31 f12e: d413 bmi.n f158 <_lv_mem_buf_get+0x6c> f130: f837 5033 ldrh.w r5, [r7, r3, lsl #3] f134: 4285 cmp r5, r0 f136: d30f bcc.n f158 <_lv_mem_buf_get+0x6c> if(LV_GC_ROOT(_lv_mem_buf[i]).size == size) { f138: d105 bne.n f146 <_lv_mem_buf_get+0x5a> LV_GC_ROOT(_lv_mem_buf[i]).used = 1; f13a: f041 0101 orr.w r1, r1, #1 return LV_GC_ROOT(_lv_mem_buf[i]).p; f13e: f854 0033 ldr.w r0, [r4, r3, lsl #3] LV_GC_ROOT(_lv_mem_buf[i]).used = 1; f142: 71b1 strb r1, [r6, #6] return LV_GC_ROOT(_lv_mem_buf[i]).p; f144: e7e7 b.n f116 <_lv_mem_buf_get+0x2a> else if(i_guess < 0) { f146: 1c56 adds r6, r2, #1 f148: d101 bne.n f14e <_lv_mem_buf_get+0x62> i_guess = i; f14a: b25a sxtb r2, r3 f14c: e004 b.n f158 <_lv_mem_buf_get+0x6c> else if(LV_GC_ROOT(_lv_mem_buf[i]).size < LV_GC_ROOT(_lv_mem_buf[i_guess]).size) { f14e: eb04 01c2 add.w r1, r4, r2, lsl #3 f152: 8889 ldrh r1, [r1, #4] f154: 42a9 cmp r1, r5 f156: d8f8 bhi.n f14a <_lv_mem_buf_get+0x5e> for(i = 0; i < LV_MEM_BUF_MAX_NUM; i++) { f158: 3301 adds r3, #1 f15a: 2b10 cmp r3, #16 f15c: d1e2 bne.n f124 <_lv_mem_buf_get+0x38> if(i_guess >= 0) { f15e: 1c55 adds r5, r2, #1 f160: d008 beq.n f174 <_lv_mem_buf_get+0x88> LV_GC_ROOT(_lv_mem_buf[i_guess]).used = 1; f162: eb04 01c2 add.w r1, r4, r2, lsl #3 return LV_GC_ROOT(_lv_mem_buf[i_guess]).p; f166: f854 0032 ldr.w r0, [r4, r2, lsl #3] LV_GC_ROOT(_lv_mem_buf[i_guess]).used = 1; f16a: 798b ldrb r3, [r1, #6] f16c: f043 0301 orr.w r3, r3, #1 f170: 718b strb r3, [r1, #6] return LV_GC_ROOT(_lv_mem_buf[i_guess]).p; f172: e7d0 b.n f116 <_lv_mem_buf_get+0x2a> f174: 2500 movs r5, #0 if(LV_GC_ROOT(_lv_mem_buf[i]).used == 0) { f176: eb04 03c5 add.w r3, r4, r5, lsl #3 f17a: 7999 ldrb r1, [r3, #6] f17c: 460a mov r2, r1 f17e: 07c9 lsls r1, r1, #31 f180: d417 bmi.n f1b2 <_lv_mem_buf_get+0xc6> LV_GC_ROOT(_lv_mem_buf[i]).used = 1; f182: f042 0201 orr.w r2, r2, #1 LV_GC_ROOT(_lv_mem_buf[i]).size = size; f186: 8098 strh r0, [r3, #4] LV_GC_ROOT(_lv_mem_buf[i]).used = 1; f188: 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); f18a: 4601 mov r1, r0 f18c: 4b12 ldr r3, [pc, #72] ; (f1d8 <_lv_mem_buf_get+0xec>) f18e: f854 0035 ldr.w r0, [r4, r5, lsl #3] f192: 4798 blx r3 f194: f844 0035 str.w r0, [r4, r5, lsl #3] if(LV_GC_ROOT(_lv_mem_buf[i]).p == NULL) { f198: b940 cbnz r0, f1ac <_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)") f19a: 4b10 ldr r3, [pc, #64] ; (f1dc <_lv_mem_buf_get+0xf0>) f19c: 9300 str r3, [sp, #0] f19e: 4910 ldr r1, [pc, #64] ; (f1e0 <_lv_mem_buf_get+0xf4>) f1a0: 4b10 ldr r3, [pc, #64] ; (f1e4 <_lv_mem_buf_get+0xf8>) f1a2: 4e11 ldr r6, [pc, #68] ; (f1e8 <_lv_mem_buf_get+0xfc>) f1a4: f44f 7204 mov.w r2, #528 ; 0x210 f1a8: 2003 movs r0, #3 f1aa: 47b0 blx r6 return LV_GC_ROOT(_lv_mem_buf[i]).p; f1ac: f854 0035 ldr.w r0, [r4, r5, lsl #3] f1b0: e7b1 b.n f116 <_lv_mem_buf_get+0x2a> for(i = 0; i < LV_MEM_BUF_MAX_NUM; i++) { f1b2: 3501 adds r5, #1 f1b4: 2d10 cmp r5, #16 f1b6: d1de bne.n f176 <_lv_mem_buf_get+0x8a> LV_LOG_ERROR("lv_mem_buf_get: no free buffer. Increase LV_DRAW_BUF_MAX_NUM."); f1b8: 4b0c ldr r3, [pc, #48] ; (f1ec <_lv_mem_buf_get+0x100>) f1ba: 9300 str r3, [sp, #0] f1bc: 2003 movs r0, #3 f1be: 4b09 ldr r3, [pc, #36] ; (f1e4 <_lv_mem_buf_get+0xf8>) f1c0: 4907 ldr r1, [pc, #28] ; (f1e0 <_lv_mem_buf_get+0xf4>) f1c2: 4c09 ldr r4, [pc, #36] ; (f1e8 <_lv_mem_buf_get+0xfc>) f1c4: f240 2216 movw r2, #534 ; 0x216 f1c8: 47a0 blx r4 return NULL; f1ca: 2000 movs r0, #0 f1cc: e7a3 b.n f116 <_lv_mem_buf_get+0x2a> f1ce: bf00 nop f1d0: 20000038 .word 0x20000038 f1d4: 20009010 .word 0x20009010 f1d8: 0000f04d .word 0x0000f04d f1dc: 0002ba32 .word 0x0002ba32 f1e0: 0002b9be .word 0x0002b9be f1e4: 0002bb02 .word 0x0002bb02 f1e8: 0000eb21 .word 0x0000eb21 f1ec: 0002ba94 .word 0x0002ba94 0000f1f0 <_lv_memset>: if(d_align) { f1f0: f010 0303 ands.w r3, r0, #3 { f1f4: b410 push {r4} if(d_align) { f1f6: d009 beq.n f20c <_lv_memset+0x1c> d_align = ALIGN_MASK + 1 - d_align; f1f8: f1c3 0304 rsb r3, r3, #4 f1fc: 4403 add r3, r0 while(d_align && len) { f1fe: b12a cbz r2, f20c <_lv_memset+0x1c> *d8 = v; f200: f800 1b01 strb.w r1, [r0], #1 while(d_align && len) { f204: 4298 cmp r0, r3 len--; f206: f102 32ff add.w r2, r2, #4294967295 ; 0xffffffff while(d_align && len) { f20a: d1f8 bne.n f1fe <_lv_memset+0xe> uint32_t v32 = v + (v << 8) + (v << 16) + (v << 24); f20c: eb01 2401 add.w r4, r1, r1, lsl #8 f210: eb04 4401 add.w r4, r4, r1, lsl #16 f214: eb04 6401 add.w r4, r4, r1, lsl #24 while(len > 32) { f218: 4603 mov r3, r0 f21a: 2a20 cmp r2, #32 f21c: 4618 mov r0, r3 f21e: f103 0320 add.w r3, r3, #32 f222: d805 bhi.n f230 <_lv_memset+0x40> while(len > 4) { f224: 2a04 cmp r2, #4 f226: d80d bhi.n f244 <_lv_memset+0x54> *d8 = v; f228: 4b08 ldr r3, [pc, #32] ; (f24c <_lv_memset+0x5c>) } f22a: f85d 4b04 ldr.w r4, [sp], #4 *d8 = v; f22e: 4718 bx r3 SET32(v32); f230: e943 4408 strd r4, r4, [r3, #-32] SET32(v32); f234: e943 4406 strd r4, r4, [r3, #-24] SET32(v32); f238: e943 4404 strd r4, r4, [r3, #-16] SET32(v32); f23c: e943 4402 strd r4, r4, [r3, #-8] len -= 32; f240: 3a20 subs r2, #32 f242: e7ea b.n f21a <_lv_memset+0x2a> SET32(v32); f244: f840 4b04 str.w r4, [r0], #4 len -= 4; f248: 3a04 subs r2, #4 f24a: e7eb b.n f224 <_lv_memset+0x34> f24c: 00016ef9 .word 0x00016ef9 0000f250 <_lv_memset_00>: if(d_align) { f250: f010 0303 ands.w r3, r0, #3 { f254: 460a mov r2, r1 if(d_align) { f256: d10d bne.n f274 <_lv_memset_00+0x24> f258: 4603 mov r3, r0 SET32(0); f25a: 2100 movs r1, #0 while(len > 32) { f25c: 2a20 cmp r2, #32 f25e: 4618 mov r0, r3 f260: f103 0320 add.w r3, r3, #32 f264: d815 bhi.n f292 <_lv_memset_00+0x42> SET32(0); f266: 2300 movs r3, #0 while(len > 4) { f268: 2a04 cmp r2, #4 f26a: d908 bls.n f27e <_lv_memset_00+0x2e> SET32(0); f26c: f840 3b04 str.w r3, [r0], #4 len -= 4; f270: 3a04 subs r2, #4 f272: e7f9 b.n f268 <_lv_memset_00+0x18> d_align = ALIGN_MASK + 1 - d_align; f274: f1c3 0304 rsb r3, r3, #4 f278: 4403 add r3, r0 *d8 = 0x00; f27a: 2100 movs r1, #0 while(d_align && len) { f27c: b912 cbnz r2, f284 <_lv_memset_00+0x34> *d8 = 0; f27e: 4b0a ldr r3, [pc, #40] ; (f2a8 <_lv_memset_00+0x58>) f280: 2100 movs r1, #0 f282: 4718 bx r3 *d8 = 0x00; f284: f800 1b01 strb.w r1, [r0], #1 while(d_align && len) { f288: 4283 cmp r3, r0 len--; f28a: f102 32ff add.w r2, r2, #4294967295 ; 0xffffffff while(d_align && len) { f28e: d1f5 bne.n f27c <_lv_memset_00+0x2c> f290: e7e2 b.n f258 <_lv_memset_00+0x8> SET32(0); f292: e943 1108 strd r1, r1, [r3, #-32] SET32(0); f296: e943 1106 strd r1, r1, [r3, #-24] SET32(0); f29a: e943 1104 strd r1, r1, [r3, #-16] SET32(0); f29e: e943 1102 strd r1, r1, [r3, #-8] len -= 32; f2a2: 3a20 subs r2, #32 f2a4: e7da b.n f25c <_lv_memset_00+0xc> f2a6: bf00 nop f2a8: 00016ef9 .word 0x00016ef9 0000f2ac <_lv_memset_ff>: if(d_align) { f2ac: f010 0303 ands.w r3, r0, #3 { f2b0: 460a mov r2, r1 if(d_align) { f2b2: d10f bne.n f2d4 <_lv_memset_ff+0x28> f2b4: 4603 mov r3, r0 SET32(0xFFFFFFFF); f2b6: f04f 31ff mov.w r1, #4294967295 ; 0xffffffff while(len > 32) { f2ba: 2a20 cmp r2, #32 f2bc: 4618 mov r0, r3 f2be: f103 0320 add.w r3, r3, #32 f2c2: d816 bhi.n f2f2 <_lv_memset_ff+0x46> SET32(0xFFFFFFFF); f2c4: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff while(len > 4) { f2c8: 2a04 cmp r2, #4 f2ca: d908 bls.n f2de <_lv_memset_ff+0x32> SET32(0xFFFFFFFF); f2cc: f840 3b04 str.w r3, [r0], #4 len -= 4; f2d0: 3a04 subs r2, #4 f2d2: e7f9 b.n f2c8 <_lv_memset_ff+0x1c> d_align = ALIGN_MASK + 1 - d_align; f2d4: f1c3 0304 rsb r3, r3, #4 f2d8: 4403 add r3, r0 *d8 = 0xFF; f2da: 21ff movs r1, #255 ; 0xff while(d_align && len) { f2dc: b912 cbnz r2, f2e4 <_lv_memset_ff+0x38> *d8 = 0xFF; f2de: 4b0a ldr r3, [pc, #40] ; (f308 <_lv_memset_ff+0x5c>) f2e0: 21ff movs r1, #255 ; 0xff f2e2: 4718 bx r3 *d8 = 0xFF; f2e4: f800 1b01 strb.w r1, [r0], #1 while(d_align && len) { f2e8: 4283 cmp r3, r0 len--; f2ea: f102 32ff add.w r2, r2, #4294967295 ; 0xffffffff while(d_align && len) { f2ee: d1f5 bne.n f2dc <_lv_memset_ff+0x30> f2f0: e7e0 b.n f2b4 <_lv_memset_ff+0x8> SET32(0xFFFFFFFF); f2f2: e943 1108 strd r1, r1, [r3, #-32] SET32(0xFFFFFFFF); f2f6: e943 1106 strd r1, r1, [r3, #-24] SET32(0xFFFFFFFF); f2fa: e943 1104 strd r1, r1, [r3, #-16] SET32(0xFFFFFFFF); f2fe: e943 1102 strd r1, r1, [r3, #-8] len -= 32; f302: 3a20 subs r2, #32 f304: e7d9 b.n f2ba <_lv_memset_ff+0xe> f306: bf00 nop f308: 00016ef9 .word 0x00016ef9 0000f30c <_out_buffer>: // internal buffer output static inline void _out_buffer(char character, void * buffer, size_t idx, size_t maxlen) { if(idx < maxlen) { f30c: 429a cmp r2, r3 ((char *)buffer)[idx] = character; f30e: bf38 it cc f310: 5488 strbcc r0, [r1, r2] } } f312: 4770 bx lr 0000f314 <_out_null>: { (void)character; (void)buffer; (void)idx; (void)maxlen; } f314: 4770 bx lr 0000f316 <_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) { f316: e92d 4ff7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, sl, fp, lr} f31a: 4617 mov r7, r2 f31c: e9dd 6211 ldrd r6, r2, [sp, #68] ; 0x44 // pad leading zeros if(!(flags & FLAGS_LEFT)) { f320: f012 0a02 ands.w sl, r2, #2 { f324: 4680 mov r8, r0 f326: e9dd 540c ldrd r5, r4, [sp, #48] ; 0x30 f32a: e9dd 0c0f ldrd r0, ip, [sp, #60] ; 0x3c f32e: f89d e038 ldrb.w lr, [sp, #56] ; 0x38 if(!(flags & FLAGS_LEFT)) { f332: d11f bne.n f374 <_ntoa_format+0x5e> if(width && (flags & FLAGS_ZEROPAD) && (negative || (flags & (FLAGS_PLUS | FLAGS_SPACE)))) { f334: f002 0901 and.w r9, r2, #1 f338: b14e cbz r6, f34e <_ntoa_format+0x38> f33a: f1b9 0f00 cmp.w r9, #0 f33e: d006 beq.n f34e <_ntoa_format+0x38> f340: f1be 0f00 cmp.w lr, #0 f344: d102 bne.n f34c <_ntoa_format+0x36> f346: f012 0f0c tst.w r2, #12 f34a: d000 beq.n f34e <_ntoa_format+0x38> width--; f34c: 3e01 subs r6, #1 } while((len < prec) && (len < PRINTF_NTOA_BUFFER_SIZE)) { buf[len++] = '0'; f34e: f04f 0b30 mov.w fp, #48 ; 0x30 f352: e002 b.n f35a <_ntoa_format+0x44> f354: f805 b004 strb.w fp, [r5, r4] f358: 3401 adds r4, #1 while((len < prec) && (len < PRINTF_NTOA_BUFFER_SIZE)) { f35a: 45a4 cmp ip, r4 f35c: d901 bls.n f362 <_ntoa_format+0x4c> f35e: 2c20 cmp r4, #32 f360: d1f8 bne.n f354 <_ntoa_format+0x3e> } while((flags & FLAGS_ZEROPAD) && (len < width) && (len < PRINTF_NTOA_BUFFER_SIZE)) { buf[len++] = '0'; f362: f04f 0b30 mov.w fp, #48 ; 0x30 while((flags & FLAGS_ZEROPAD) && (len < width) && (len < PRINTF_NTOA_BUFFER_SIZE)) { f366: f1b9 0f00 cmp.w r9, #0 f36a: d003 beq.n f374 <_ntoa_format+0x5e> f36c: 42a6 cmp r6, r4 f36e: d901 bls.n f374 <_ntoa_format+0x5e> f370: 2c20 cmp r4, #32 f372: d137 bne.n f3e4 <_ntoa_format+0xce> } } // handle hash if(flags & FLAGS_HASH) { f374: f012 0f10 tst.w r2, #16 f378: d019 beq.n f3ae <_ntoa_format+0x98> if(!(flags & FLAGS_PRECISION) && len && ((len == prec) || (len == width))) { f37a: f412 6f80 tst.w r2, #1024 ; 0x400 f37e: d136 bne.n f3ee <_ntoa_format+0xd8> f380: b3ac cbz r4, f3ee <_ntoa_format+0xd8> f382: 4564 cmp r4, ip f384: d001 beq.n f38a <_ntoa_format+0x74> f386: 42b4 cmp r4, r6 f388: d131 bne.n f3ee <_ntoa_format+0xd8> len--; if(len && (base == 16U)) { f38a: f1b4 0c01 subs.w ip, r4, #1 f38e: d02d beq.n f3ec <_ntoa_format+0xd6> f390: 2810 cmp r0, #16 f392: d16a bne.n f46a <_ntoa_format+0x154> len--; f394: 3c02 subs r4, #2 } } if((base == 16U) && !(flags & FLAGS_UPPERCASE) && (len < PRINTF_NTOA_BUFFER_SIZE)) { f396: 0690 lsls r0, r2, #26 f398: d431 bmi.n f3fe <_ntoa_format+0xe8> f39a: 2c1f cmp r4, #31 f39c: d80f bhi.n f3be <_ntoa_format+0xa8> buf[len++] = 'x'; f39e: 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'; f3a0: 5528 strb r0, [r5, r4] f3a2: 3401 adds r4, #1 } if(len < PRINTF_NTOA_BUFFER_SIZE) { f3a4: 2c1f cmp r4, #31 f3a6: d80a bhi.n f3be <_ntoa_format+0xa8> buf[len++] = '0'; f3a8: 2030 movs r0, #48 ; 0x30 f3aa: 5528 strb r0, [r5, r4] f3ac: 3401 adds r4, #1 } } if(len < PRINTF_NTOA_BUFFER_SIZE) { f3ae: 2c20 cmp r4, #32 f3b0: d005 beq.n f3be <_ntoa_format+0xa8> if(negative) { f3b2: f1be 0f00 cmp.w lr, #0 f3b6: d026 beq.n f406 <_ntoa_format+0xf0> buf[len++] = '-'; f3b8: 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++] = ' '; f3ba: 5528 strb r0, [r5, r4] f3bc: 3401 adds r4, #1 if(!(flags & FLAGS_LEFT) && !(flags & FLAGS_ZEROPAD)) { f3be: 0792 lsls r2, r2, #30 f3c0: d03b beq.n f43a <_ntoa_format+0x124> f3c2: 463a mov r2, r7 f3c4: 4425 add r5, r4 f3c6: 4414 add r4, r2 while(len) { f3c8: 42a2 cmp r2, r4 f3ca: d13a bne.n f442 <_ntoa_format+0x12c> if(flags & FLAGS_LEFT) { f3cc: f1ba 0f00 cmp.w sl, #0 f3d0: d004 beq.n f3dc <_ntoa_format+0xc6> f3d2: 1bd5 subs r5, r2, r7 while(idx - start_idx < width) { f3d4: 42b5 cmp r5, r6 f3d6: eb05 0407 add.w r4, r5, r7 f3da: d33d bcc.n f458 <_ntoa_format+0x142> } } return _out_rev(out, buffer, idx, maxlen, buf, len, width, flags); } f3dc: 4620 mov r0, r4 f3de: b003 add sp, #12 f3e0: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} buf[len++] = '0'; f3e4: f805 b004 strb.w fp, [r5, r4] f3e8: 3401 adds r4, #1 f3ea: e7bc b.n f366 <_ntoa_format+0x50> f3ec: 4664 mov r4, ip if((base == 16U) && !(flags & FLAGS_UPPERCASE) && (len < PRINTF_NTOA_BUFFER_SIZE)) { f3ee: 2810 cmp r0, #16 f3f0: d0d1 beq.n f396 <_ntoa_format+0x80> else if((base == 2U) && (len < PRINTF_NTOA_BUFFER_SIZE)) { f3f2: 2802 cmp r0, #2 f3f4: d1d6 bne.n f3a4 <_ntoa_format+0x8e> f3f6: 2c1f cmp r4, #31 f3f8: d8e1 bhi.n f3be <_ntoa_format+0xa8> buf[len++] = 'b'; f3fa: 2062 movs r0, #98 ; 0x62 f3fc: e7d0 b.n f3a0 <_ntoa_format+0x8a> else if((base == 16U) && (flags & FLAGS_UPPERCASE) && (len < PRINTF_NTOA_BUFFER_SIZE)) { f3fe: 2c1f cmp r4, #31 f400: d8dd bhi.n f3be <_ntoa_format+0xa8> buf[len++] = 'X'; f402: 2058 movs r0, #88 ; 0x58 f404: e7cc b.n f3a0 <_ntoa_format+0x8a> else if(flags & FLAGS_PLUS) { f406: 0750 lsls r0, r2, #29 f408: d501 bpl.n f40e <_ntoa_format+0xf8> buf[len++] = '+'; // ignore the space if the '+' exists f40a: 202b movs r0, #43 ; 0x2b f40c: e7d5 b.n f3ba <_ntoa_format+0xa4> else if(flags & FLAGS_SPACE) { f40e: 0710 lsls r0, r2, #28 f410: d5d5 bpl.n f3be <_ntoa_format+0xa8> buf[len++] = ' '; f412: 2020 movs r0, #32 f414: e7d1 b.n f3ba <_ntoa_format+0xa4> out(' ', buffer, idx++, maxlen); f416: 2020 movs r0, #32 f418: e9cd 1300 strd r1, r3, [sp] f41c: 47c0 blx r8 for(i = len; i < width; i++) { f41e: e9dd 1300 ldrd r1, r3, [sp] f422: f109 0901 add.w r9, r9, #1 f426: 454e cmp r6, r9 f428: eb0b 0209 add.w r2, fp, r9 f42c: d8f3 bhi.n f416 <_ntoa_format+0x100> f42e: 1b32 subs r2, r6, r4 f430: 42b4 cmp r4, r6 f432: bf88 it hi f434: 2200 movhi r2, #0 f436: 443a add r2, r7 f438: e7c4 b.n f3c4 <_ntoa_format+0xae> f43a: 46a1 mov r9, r4 f43c: eba7 0b04 sub.w fp, r7, r4 f440: e7f1 b.n f426 <_ntoa_format+0x110> out(buf[--len], buffer, idx++, maxlen); f442: f102 0901 add.w r9, r2, #1 f446: f815 0d01 ldrb.w r0, [r5, #-1]! f44a: e9cd 1300 strd r1, r3, [sp] f44e: 47c0 blx r8 f450: e9dd 1300 ldrd r1, r3, [sp] f454: 464a mov r2, r9 f456: e7b7 b.n f3c8 <_ntoa_format+0xb2> out(' ', buffer, idx++, maxlen); f458: 4622 mov r2, r4 f45a: 2020 movs r0, #32 f45c: 9301 str r3, [sp, #4] f45e: 9100 str r1, [sp, #0] f460: 3501 adds r5, #1 f462: 47c0 blx r8 f464: e9dd 1300 ldrd r1, r3, [sp] f468: e7b4 b.n f3d4 <_ntoa_format+0xbe> else if((base == 2U) && (len < PRINTF_NTOA_BUFFER_SIZE)) { f46a: 2802 cmp r0, #2 f46c: 4664 mov r4, ip f46e: d199 bne.n f3a4 <_ntoa_format+0x8e> f470: e7c3 b.n f3fa <_ntoa_format+0xe4> ... 0000f474 <_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) { f474: e92d 43f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} f478: b091 sub sp, #68 ; 0x44 f47a: 9d18 ldr r5, [sp, #96] ; 0x60 f47c: 9e1a ldr r6, [sp, #104] ; 0x68 f47e: 9f1d ldr r7, [sp, #116] ; 0x74 char buf[PRINTF_NTOA_BUFFER_SIZE]; size_t len = 0U; // no hash for 0 values if(!value) { f480: b90d cbnz r5, f486 <_ntoa_long+0x12> flags &= ~FLAGS_HASH; f482: f027 0710 bic.w r7, r7, #16 } // write if precision != 0 and value is != 0 if(!(flags & FLAGS_PRECISION) || value) { f486: 057c lsls r4, r7, #21 f488: d500 bpl.n f48c <_ntoa_long+0x18> f48a: b315 cbz r5, f4d2 <_ntoa_long+0x5e> f48c: f017 0f20 tst.w r7, #32 f490: bf14 ite ne f492: f04f 0e41 movne.w lr, #65 ; 0x41 f496: 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; f49a: 46ac mov ip, r5 f49c: f10d 0820 add.w r8, sp, #32 f4a0: 2500 movs r5, #0 f4a2: f1ae 0e0a sub.w lr, lr, #10 const char digit = (char)(value % base); f4a6: fbbc f9f6 udiv r9, ip, r6 f4aa: fb06 c919 mls r9, r6, r9, ip f4ae: fa5f f489 uxtb.w r4, r9 buf[len++] = digit < 10 ? '0' + digit : (flags & FLAGS_UPPERCASE ? 'A' : 'a') + digit - 10; f4b2: f1b9 0f09 cmp.w r9, #9 f4b6: bf94 ite ls f4b8: 3430 addls r4, #48 ; 0x30 f4ba: 4474 addhi r4, lr f4bc: b2e4 uxtb r4, r4 value /= base; } while(value && (len < PRINTF_NTOA_BUFFER_SIZE)); f4be: 45b4 cmp ip, r6 buf[len++] = digit < 10 ? '0' + digit : (flags & FLAGS_UPPERCASE ? 'A' : 'a') + digit - 10; f4c0: f808 4b01 strb.w r4, [r8], #1 value /= base; f4c4: fbbc f4f6 udiv r4, ip, r6 buf[len++] = digit < 10 ? '0' + digit : (flags & FLAGS_UPPERCASE ? 'A' : 'a') + digit - 10; f4c8: f105 0501 add.w r5, r5, #1 } while(value && (len < PRINTF_NTOA_BUFFER_SIZE)); f4cc: d301 bcc.n f4d2 <_ntoa_long+0x5e> f4ce: 2d20 cmp r5, #32 f4d0: d110 bne.n f4f4 <_ntoa_long+0x80> } return _ntoa_format(out, buffer, idx, maxlen, buf, len, negative, (unsigned int)base, prec, width, flags); f4d2: 9c1c ldr r4, [sp, #112] ; 0x70 f4d4: 9405 str r4, [sp, #20] f4d6: 9c1b ldr r4, [sp, #108] ; 0x6c f4d8: 9706 str r7, [sp, #24] f4da: e9cd 6403 strd r6, r4, [sp, #12] f4de: f89d 4064 ldrb.w r4, [sp, #100] ; 0x64 f4e2: e9cd 5401 strd r5, r4, [sp, #4] f4e6: ac08 add r4, sp, #32 f4e8: 9400 str r4, [sp, #0] f4ea: 4c03 ldr r4, [pc, #12] ; (f4f8 <_ntoa_long+0x84>) f4ec: 47a0 blx r4 } f4ee: b011 add sp, #68 ; 0x44 f4f0: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} value /= base; f4f4: 46a4 mov ip, r4 f4f6: e7d6 b.n f4a6 <_ntoa_long+0x32> f4f8: 0000f317 .word 0x0000f317 0000f4fc <_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) { f4fc: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} f500: ed2d 8b04 vpush {d8-d9} f504: b093 sub sp, #76 ; 0x4c f506: e9dd 6420 ldrd r6, r4, [sp, #128] ; 0x80 f50a: 469a mov sl, r3 char buf[PRINTF_NTOA_BUFFER_SIZE]; size_t len = 0U; // no hash for 0 values if(!value) { f50c: ea56 0304 orrs.w r3, r6, r4 flags &= ~FLAGS_HASH; f510: bf02 ittt eq f512: 9b28 ldreq r3, [sp, #160] ; 0xa0 f514: f023 0310 biceq.w r3, r3, #16 f518: 9328 streq r3, [sp, #160] ; 0xa0 } // write if precision != 0 and value is != 0 if(!(flags & FLAGS_PRECISION) || value) { f51a: 9b28 ldr r3, [sp, #160] ; 0xa0 f51c: 055b lsls r3, r3, #21 { f51e: e9dd b924 ldrd fp, r9, [sp, #144] ; 0x90 f522: ee08 0a10 vmov s16, r0 f526: ee08 1a90 vmov s17, r1 f52a: ee09 2a10 vmov s18, r2 if(!(flags & FLAGS_PRECISION) || value) { f52e: d502 bpl.n f536 <_ntoa_long_long+0x3a> f530: ea56 0304 orrs.w r3, r6, r4 f534: d03f beq.n f5b6 <_ntoa_long_long+0xba> f536: 9b28 ldr r3, [sp, #160] ; 0xa0 f538: f013 0f20 tst.w r3, #32 f53c: bf14 ite ne f53e: 2341 movne r3, #65 ; 0x41 f540: 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; f542: 3b0a subs r3, #10 f544: f10d 0828 add.w r8, sp, #40 ; 0x28 f548: 2500 movs r5, #0 f54a: 9309 str r3, [sp, #36] ; 0x24 const char digit = (char)(value % base); f54c: 4621 mov r1, r4 f54e: 4f1b ldr r7, [pc, #108] ; (f5bc <_ntoa_long_long+0xc0>) f550: 465a mov r2, fp f552: 464b mov r3, r9 f554: 4630 mov r0, r6 f556: 47b8 blx r7 f558: b2d2 uxtb r2, r2 buf[len++] = digit < 10 ? '0' + digit : (flags & FLAGS_UPPERCASE ? 'A' : 'a') + digit - 10; f55a: 2a09 cmp r2, #9 f55c: bf8a itet hi f55e: 9b09 ldrhi r3, [sp, #36] ; 0x24 f560: 3230 addls r2, #48 ; 0x30 f562: 18d2 addhi r2, r2, r3 value /= base; } while(value && (len < PRINTF_NTOA_BUFFER_SIZE)); f564: 455e cmp r6, fp buf[len++] = digit < 10 ? '0' + digit : (flags & FLAGS_UPPERCASE ? 'A' : 'a') + digit - 10; f566: b2d2 uxtb r2, r2 } while(value && (len < PRINTF_NTOA_BUFFER_SIZE)); f568: eb74 0409 sbcs.w r4, r4, r9 buf[len++] = digit < 10 ? '0' + digit : (flags & FLAGS_UPPERCASE ? 'A' : 'a') + digit - 10; f56c: f808 2b01 strb.w r2, [r8], #1 f570: f105 0501 add.w r5, r5, #1 } while(value && (len < PRINTF_NTOA_BUFFER_SIZE)); f574: d301 bcc.n f57a <_ntoa_long_long+0x7e> f576: 2d20 cmp r5, #32 f578: d11a bne.n f5b0 <_ntoa_long_long+0xb4> } return _ntoa_format(out, buffer, idx, maxlen, buf, len, negative, (unsigned int)base, prec, width, flags); f57a: 9b28 ldr r3, [sp, #160] ; 0xa0 f57c: 9306 str r3, [sp, #24] f57e: 9b27 ldr r3, [sp, #156] ; 0x9c f580: 9305 str r3, [sp, #20] f582: 9b26 ldr r3, [sp, #152] ; 0x98 f584: 4c0e ldr r4, [pc, #56] ; (f5c0 <_ntoa_long_long+0xc4>) f586: e9cd b303 strd fp, r3, [sp, #12] f58a: f89d 3088 ldrb.w r3, [sp, #136] ; 0x88 f58e: e9cd 5301 strd r5, r3, [sp, #4] f592: ab0a add r3, sp, #40 ; 0x28 f594: 9300 str r3, [sp, #0] f596: ee19 2a10 vmov r2, s18 f59a: ee18 1a90 vmov r1, s17 f59e: ee18 0a10 vmov r0, s16 f5a2: 4653 mov r3, sl f5a4: 47a0 blx r4 } f5a6: b013 add sp, #76 ; 0x4c f5a8: ecbd 8b04 vpop {d8-d9} f5ac: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} value /= base; f5b0: 4606 mov r6, r0 f5b2: 460c mov r4, r1 f5b4: e7ca b.n f54c <_ntoa_long_long+0x50> size_t len = 0U; f5b6: 2500 movs r5, #0 f5b8: e7df b.n f57a <_ntoa_long_long+0x7e> f5ba: bf00 nop f5bc: 00016915 .word 0x00016915 f5c0: 0000f317 .word 0x0000f317 0000f5c4 <_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) f5c4: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} f5c8: 4617 mov r7, r2 f5ca: 461e mov r6, r3 unsigned int flags, width, precision, n; size_t idx = 0U; if(!buffer) { // use null output function out = _out_null; f5cc: 4aac ldr r2, [pc, #688] ; (f880 <_vsnprintf.constprop.0+0x2bc>) f5ce: 4bad ldr r3, [pc, #692] ; (f884 <_vsnprintf.constprop.0+0x2c0>) static int _vsnprintf(out_fct_type out, char * buffer, const size_t maxlen, const char * format, va_list va) f5d0: 4689 mov r9, r1 out = _out_null; f5d2: 1e01 subs r1, r0, #0 static int _vsnprintf(out_fct_type out, char * buffer, const size_t maxlen, const char * format, va_list va) f5d4: b091 sub sp, #68 ; 0x44 out = _out_null; f5d6: bf14 ite ne f5d8: 4693 movne fp, r2 f5da: 469b moveq fp, r3 out('%', buffer, idx++, maxlen); format++; break; default : out(*format, buffer, idx++, maxlen); f5dc: 2500 movs r5, #0 while(*format) { f5de: 7838 ldrb r0, [r7, #0] f5e0: b958 cbnz r0, f5fa <_vsnprintf.constprop.0+0x36> break; } } // termination out((char)0, buffer, idx < maxlen ? idx : maxlen - 1U, maxlen); f5e2: 454d cmp r5, r9 f5e4: bf2c ite cs f5e6: f109 32ff addcs.w r2, r9, #4294967295 ; 0xffffffff f5ea: 462a movcc r2, r5 f5ec: 464b mov r3, r9 f5ee: 2000 movs r0, #0 f5f0: 47d8 blx fp // return written chars without terminating \0 return (int)idx; } f5f2: 4628 mov r0, r5 f5f4: b011 add sp, #68 ; 0x44 f5f6: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} if(*format != '%') { f5fa: 2825 cmp r0, #37 ; 0x25 format++; f5fc: f107 0701 add.w r7, r7, #1 if(*format != '%') { f600: d006 beq.n f610 <_vsnprintf.constprop.0+0x4c> out(*format, buffer, idx++, maxlen); f602: 1c6c adds r4, r5, #1 f604: 464b mov r3, r9 f606: 462a mov r2, r5 f608: 910a str r1, [sp, #40] ; 0x28 out(*format, buffer, idx++, maxlen); f60a: 47d8 blx fp f60c: 4625 mov r5, r4 f60e: e0d2 b.n f7b6 <_vsnprintf.constprop.0+0x1f2> flags = 0U; f610: 2300 movs r3, #0 f612: e006 b.n f622 <_vsnprintf.constprop.0+0x5e> switch(*format) { f614: 2a2d cmp r2, #45 ; 0x2d f616: d016 beq.n f646 <_vsnprintf.constprop.0+0x82> f618: 2a30 cmp r2, #48 ; 0x30 f61a: d10c bne.n f636 <_vsnprintf.constprop.0+0x72> flags |= FLAGS_ZEROPAD; f61c: f043 0301 orr.w r3, r3, #1 format++; f620: 4607 mov r7, r0 switch(*format) { f622: 4638 mov r0, r7 f624: f810 2b01 ldrb.w r2, [r0], #1 f628: 2a2b cmp r2, #43 ; 0x2b f62a: d00f beq.n f64c <_vsnprintf.constprop.0+0x88> f62c: d8f2 bhi.n f614 <_vsnprintf.constprop.0+0x50> f62e: 2a20 cmp r2, #32 f630: d00f beq.n f652 <_vsnprintf.constprop.0+0x8e> f632: 2a23 cmp r2, #35 ; 0x23 f634: d010 beq.n f658 <_vsnprintf.constprop.0+0x94> if(_is_digit(*format)) { f636: f1a2 0430 sub.w r4, r2, #48 ; 0x30 f63a: 2c09 cmp r4, #9 f63c: d82c bhi.n f698 <_vsnprintf.constprop.0+0xd4> unsigned int i = 0U; f63e: f04f 0800 mov.w r8, #0 i = i * 10U + (unsigned int)(*((*str)++) - '0'); f642: 240a movs r4, #10 f644: e010 b.n f668 <_vsnprintf.constprop.0+0xa4> flags |= FLAGS_LEFT; f646: f043 0302 orr.w r3, r3, #2 } while(n); f64a: e7e9 b.n f620 <_vsnprintf.constprop.0+0x5c> flags |= FLAGS_PLUS; f64c: f043 0304 orr.w r3, r3, #4 } while(n); f650: e7e6 b.n f620 <_vsnprintf.constprop.0+0x5c> flags |= FLAGS_SPACE; f652: f043 0308 orr.w r3, r3, #8 } while(n); f656: e7e3 b.n f620 <_vsnprintf.constprop.0+0x5c> flags |= FLAGS_HASH; f658: f043 0310 orr.w r3, r3, #16 } while(n); f65c: e7e0 b.n f620 <_vsnprintf.constprop.0+0x5c> i = i * 10U + (unsigned int)(*((*str)++) - '0'); f65e: fb04 2208 mla r2, r4, r8, r2 f662: f1a2 0830 sub.w r8, r2, #48 ; 0x30 f666: 4607 mov r7, r0 while(_is_digit(**str)) { f668: 4638 mov r0, r7 f66a: f810 2b01 ldrb.w r2, [r0], #1 f66e: f1a2 0c30 sub.w ip, r2, #48 ; 0x30 f672: f1bc 0f09 cmp.w ip, #9 f676: d9f2 bls.n f65e <_vsnprintf.constprop.0+0x9a> if(*format == '.') { f678: 783a ldrb r2, [r7, #0] f67a: 2a2e cmp r2, #46 ; 0x2e f67c: d15a bne.n f734 <_vsnprintf.constprop.0+0x170> if(_is_digit(*format)) { f67e: 7878 ldrb r0, [r7, #1] f680: f1a0 0430 sub.w r4, r0, #48 ; 0x30 f684: 2c09 cmp r4, #9 format++; f686: f107 0201 add.w r2, r7, #1 flags |= FLAGS_PRECISION; f68a: f443 6380 orr.w r3, r3, #1024 ; 0x400 if(_is_digit(*format)) { f68e: d848 bhi.n f722 <_vsnprintf.constprop.0+0x15e> unsigned int i = 0U; f690: 2400 movs r4, #0 i = i * 10U + (unsigned int)(*((*str)++) - '0'); f692: f04f 0e0a mov.w lr, #10 f696: e014 b.n f6c2 <_vsnprintf.constprop.0+0xfe> else if(*format == '*') { f698: 2a2a cmp r2, #42 ; 0x2a f69a: d10a bne.n f6b2 <_vsnprintf.constprop.0+0xee> const int w = va_arg(va, int); f69c: f856 8b04 ldr.w r8, [r6], #4 if(w < 0) { f6a0: f1b8 0f00 cmp.w r8, #0 flags |= FLAGS_LEFT; // reverse padding f6a4: bfbc itt lt f6a6: f043 0302 orrlt.w r3, r3, #2 width = (unsigned int) - w; f6aa: f1c8 0800 rsblt r8, r8, #0 const int w = va_arg(va, int); f6ae: 4607 mov r7, r0 f6b0: e7e2 b.n f678 <_vsnprintf.constprop.0+0xb4> width = 0U; f6b2: f04f 0800 mov.w r8, #0 f6b6: e7df b.n f678 <_vsnprintf.constprop.0+0xb4> i = i * 10U + (unsigned int)(*((*str)++) - '0'); f6b8: fb0e 0004 mla r0, lr, r4, r0 f6bc: f1a0 0430 sub.w r4, r0, #48 ; 0x30 f6c0: 463a mov r2, r7 while(_is_digit(**str)) { f6c2: 4617 mov r7, r2 f6c4: f817 0b01 ldrb.w r0, [r7], #1 f6c8: f1a0 0c30 sub.w ip, r0, #48 ; 0x30 f6cc: f1bc 0f09 cmp.w ip, #9 f6d0: d9f2 bls.n f6b8 <_vsnprintf.constprop.0+0xf4> f6d2: 4617 mov r7, r2 switch(*format) { f6d4: 463a mov r2, r7 f6d6: f812 0b01 ldrb.w r0, [r2], #1 f6da: 286c cmp r0, #108 ; 0x6c f6dc: d033 beq.n f746 <_vsnprintf.constprop.0+0x182> f6de: d82b bhi.n f738 <_vsnprintf.constprop.0+0x174> f6e0: 2868 cmp r0, #104 ; 0x68 f6e2: d037 beq.n f754 <_vsnprintf.constprop.0+0x190> f6e4: 286a cmp r0, #106 ; 0x6a f6e6: d03f beq.n f768 <_vsnprintf.constprop.0+0x1a4> switch(*format) { f6e8: f817 eb01 ldrb.w lr, [r7], #1 f6ec: f1be 0f78 cmp.w lr, #120 ; 0x78 f6f0: d811 bhi.n f716 <_vsnprintf.constprop.0+0x152> f6f2: f1be 0f63 cmp.w lr, #99 ; 0x63 f6f6: d83a bhi.n f76e <_vsnprintf.constprop.0+0x1aa> f6f8: f1be 0f62 cmp.w lr, #98 ; 0x62 f6fc: f000 80a2 beq.w f844 <_vsnprintf.constprop.0+0x280> f700: f1be 0f63 cmp.w lr, #99 ; 0x63 f704: f000 80fc beq.w f900 <_vsnprintf.constprop.0+0x33c> f708: f1be 0f25 cmp.w lr, #37 ; 0x25 f70c: d003 beq.n f716 <_vsnprintf.constprop.0+0x152> f70e: f1be 0f58 cmp.w lr, #88 ; 0x58 f712: f000 8093 beq.w f83c <_vsnprintf.constprop.0+0x278> out(*format, buffer, idx++, maxlen); f716: 1c6c adds r4, r5, #1 f718: 464b mov r3, r9 f71a: 462a mov r2, r5 f71c: 910a str r1, [sp, #40] ; 0x28 f71e: 4670 mov r0, lr f720: e773 b.n f60a <_vsnprintf.constprop.0+0x46> else if(*format == '*') { f722: 282a cmp r0, #42 ; 0x2a f724: d105 bne.n f732 <_vsnprintf.constprop.0+0x16e> precision = prec > 0 ? (unsigned int)prec : 0U; f726: f856 4b04 ldr.w r4, [r6], #4 format++; f72a: 3702 adds r7, #2 precision = prec > 0 ? (unsigned int)prec : 0U; f72c: ea24 74e4 bic.w r4, r4, r4, asr #31 format++; f730: e7d0 b.n f6d4 <_vsnprintf.constprop.0+0x110> format++; f732: 4617 mov r7, r2 precision = 0U; f734: 2400 movs r4, #0 f736: e7cd b.n f6d4 <_vsnprintf.constprop.0+0x110> switch(*format) { f738: 2874 cmp r0, #116 ; 0x74 f73a: d001 beq.n f740 <_vsnprintf.constprop.0+0x17c> f73c: 287a cmp r0, #122 ; 0x7a f73e: d1d3 bne.n f6e8 <_vsnprintf.constprop.0+0x124> flags |= (sizeof(size_t) == sizeof(long) ? FLAGS_LONG : FLAGS_LONG_LONG); f740: f443 7380 orr.w r3, r3, #256 ; 0x100 f744: e00b b.n f75e <_vsnprintf.constprop.0+0x19a> if(*format == 'l') { f746: 7878 ldrb r0, [r7, #1] f748: 286c cmp r0, #108 ; 0x6c f74a: d1f9 bne.n f740 <_vsnprintf.constprop.0+0x17c> flags |= FLAGS_LONG_LONG; f74c: f443 7340 orr.w r3, r3, #768 ; 0x300 format++; f750: 3702 adds r7, #2 f752: e7c9 b.n f6e8 <_vsnprintf.constprop.0+0x124> if(*format == 'h') { f754: 7878 ldrb r0, [r7, #1] f756: 2868 cmp r0, #104 ; 0x68 f758: d003 beq.n f762 <_vsnprintf.constprop.0+0x19e> flags |= FLAGS_SHORT; f75a: f043 0380 orr.w r3, r3, #128 ; 0x80 format++; f75e: 4617 mov r7, r2 break; f760: e7c2 b.n f6e8 <_vsnprintf.constprop.0+0x124> flags |= FLAGS_CHAR; f762: f043 03c0 orr.w r3, r3, #192 ; 0xc0 f766: e7f3 b.n f750 <_vsnprintf.constprop.0+0x18c> flags |= (sizeof(intmax_t) == sizeof(long) ? FLAGS_LONG : FLAGS_LONG_LONG); f768: f443 7300 orr.w r3, r3, #512 ; 0x200 break; f76c: e7f7 b.n f75e <_vsnprintf.constprop.0+0x19a> f76e: f1ae 0c64 sub.w ip, lr, #100 ; 0x64 f772: 4845 ldr r0, [pc, #276] ; (f888 <_vsnprintf.constprop.0+0x2c4>) f774: fa5f fc8c uxtb.w ip, ip f778: 2201 movs r2, #1 f77a: fa02 f20c lsl.w r2, r2, ip f77e: 4002 ands r2, r0 f780: d11b bne.n f7ba <_vsnprintf.constprop.0+0x1f6> f782: f1be 0f73 cmp.w lr, #115 ; 0x73 f786: f000 80fb beq.w f980 <_vsnprintf.constprop.0+0x3bc> f78a: f1be 0f70 cmp.w lr, #112 ; 0x70 f78e: d1c2 bne.n f716 <_vsnprintf.constprop.0+0x152> flags |= FLAGS_ZEROPAD | FLAGS_UPPERCASE; f790: 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, f794: 9305 str r3, [sp, #20] f796: 2308 movs r3, #8 f798: e9cd 4303 strd r4, r3, [sp, #12] f79c: 2310 movs r3, #16 f79e: e9cd 2301 strd r2, r3, [sp, #4] f7a2: f856 3b04 ldr.w r3, [r6], #4 f7a6: 9300 str r3, [sp, #0] f7a8: 462a mov r2, r5 f7aa: 4c38 ldr r4, [pc, #224] ; (f88c <_vsnprintf.constprop.0+0x2c8>) f7ac: 910a str r1, [sp, #40] ; 0x28 f7ae: 464b mov r3, r9 f7b0: 4658 mov r0, fp f7b2: 47a0 blx r4 f7b4: 4605 mov r5, r0 out(*format, buffer, idx++, maxlen); f7b6: 990a ldr r1, [sp, #40] ; 0x28 break; f7b8: e711 b.n f5de <_vsnprintf.constprop.0+0x1a> if(*format == 'x' || *format == 'X') { f7ba: f1be 0f78 cmp.w lr, #120 ; 0x78 f7be: d03f beq.n f840 <_vsnprintf.constprop.0+0x27c> f7c0: f1be 0f6f cmp.w lr, #111 ; 0x6f f7c4: f000 8144 beq.w fa50 <_vsnprintf.constprop.0+0x48c> if((*format != 'i') && (*format != 'd')) { f7c8: f1be 0f69 cmp.w lr, #105 ; 0x69 flags &= ~FLAGS_HASH; // no hash for dec format f7cc: f023 0310 bic.w r3, r3, #16 base = 10U; f7d0: f04f 020a mov.w r2, #10 if((*format != 'i') && (*format != 'd')) { f7d4: d002 beq.n f7dc <_vsnprintf.constprop.0+0x218> f7d6: f1be 0f64 cmp.w lr, #100 ; 0x64 f7da: d134 bne.n f846 <_vsnprintf.constprop.0+0x282> if(flags & FLAGS_PRECISION) { f7dc: 0558 lsls r0, r3, #21 flags &= ~FLAGS_ZEROPAD; f7de: bf48 it mi f7e0: f023 0301 bicmi.w r3, r3, #1 if((*format == 'i') || (*format == 'd')) { f7e4: f1be 0f69 cmp.w lr, #105 ; 0x69 if(flags & FLAGS_LONG_LONG) { f7e8: f403 7c00 and.w ip, r3, #512 ; 0x200 if((*format == 'i') || (*format == 'd')) { f7ec: d002 beq.n f7f4 <_vsnprintf.constprop.0+0x230> f7ee: f1be 0f64 cmp.w lr, #100 ; 0x64 f7f2: d14f bne.n f894 <_vsnprintf.constprop.0+0x2d0> if(flags & FLAGS_LONG_LONG) { f7f4: f1bc 0f00 cmp.w ip, #0 f7f8: d028 beq.n f84c <_vsnprintf.constprop.0+0x288> const long long value = va_arg(va, long long); f7fa: 3607 adds r6, #7 f7fc: f026 0607 bic.w r6, r6, #7 f800: 46b2 mov sl, r6 f802: 6876 ldr r6, [r6, #4] f804: 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, f808: 9406 str r4, [sp, #24] f80a: e9cd 8307 strd r8, r3, [sp, #28] f80e: 2300 movs r3, #0 f810: 9305 str r3, [sp, #20] f812: 0ff3 lsrs r3, r6, #31 f814: 2e00 cmp r6, #0 f816: 9302 str r3, [sp, #8] f818: 9204 str r2, [sp, #16] f81a: 4603 mov r3, r0 f81c: da02 bge.n f824 <_vsnprintf.constprop.0+0x260> f81e: 4243 negs r3, r0 f820: eb66 0646 sbc.w r6, r6, r6, lsl #1 f824: 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); f828: 4c19 ldr r4, [pc, #100] ; (f890 <_vsnprintf.constprop.0+0x2cc>) f82a: 910a str r1, [sp, #40] ; 0x28 f82c: 464b mov r3, r9 f82e: 462a mov r2, r5 f830: 4658 mov r0, fp f832: 47a0 blx r4 idx = _ntoa_long(out, buffer, idx, maxlen, value, false, base, precision, width, flags); f834: 990a ldr r1, [sp, #40] ; 0x28 f836: 4605 mov r5, r0 break; f838: 4656 mov r6, sl f83a: e6d0 b.n f5de <_vsnprintf.constprop.0+0x1a> flags |= FLAGS_UPPERCASE; f83c: f043 0320 orr.w r3, r3, #32 base = 16U; f840: 2210 movs r2, #16 f842: e000 b.n f846 <_vsnprintf.constprop.0+0x282> switch(*format) { f844: 2202 movs r2, #2 flags &= ~(FLAGS_PLUS | FLAGS_SPACE); f846: f023 030c bic.w r3, r3, #12 f84a: e7c7 b.n f7dc <_vsnprintf.constprop.0+0x218> else if(flags & FLAGS_LONG) { f84c: 05d8 lsls r0, r3, #23 idx = _ntoa_long(out, buffer, idx, maxlen, va_arg(va, unsigned long), false, base, precision, width, flags); f84e: f106 0a04 add.w sl, r6, #4 else if(flags & FLAGS_LONG) { f852: d501 bpl.n f858 <_vsnprintf.constprop.0+0x294> int) : va_arg(va, int); f854: 6830 ldr r0, [r6, #0] f856: e002 b.n f85e <_vsnprintf.constprop.0+0x29a> const int value = (flags & FLAGS_CHAR) ? (char)va_arg(va, int) : (flags & FLAGS_SHORT) ? (short int)va_arg(va, f858: 0658 lsls r0, r3, #25 f85a: d50c bpl.n f876 <_vsnprintf.constprop.0+0x2b2> f85c: 7830 ldrb r0, [r6, #0] idx = _ntoa_long(out, buffer, idx, maxlen, (unsigned int)(value > 0 ? value : 0 - value), value < 0, base, precision, f85e: e9cd 2402 strd r2, r4, [sp, #8] f862: e9cd 8304 strd r8, r3, [sp, #16] f866: 2800 cmp r0, #0 f868: ea4f 73d0 mov.w r3, r0, lsr #31 f86c: 9301 str r3, [sp, #4] f86e: bfb8 it lt f870: 4240 neglt r0, r0 idx = _ntoa_long(out, buffer, idx, maxlen, value, false, base, precision, width, flags); f872: 9000 str r0, [sp, #0] f874: e02d b.n f8d2 <_vsnprintf.constprop.0+0x30e> int) : va_arg(va, int); f876: 0618 lsls r0, r3, #24 f878: d5ec bpl.n f854 <_vsnprintf.constprop.0+0x290> f87a: f9b6 0000 ldrsh.w r0, [r6] f87e: e7ee b.n f85e <_vsnprintf.constprop.0+0x29a> f880: 0000f30d .word 0x0000f30d f884: 0000f315 .word 0x0000f315 f888: 00120821 .word 0x00120821 f88c: 0000f475 .word 0x0000f475 f890: 0000f4fd .word 0x0000f4fd if(flags & FLAGS_LONG_LONG) { f894: f1bc 0f00 cmp.w ip, #0 f898: d00f beq.n f8ba <_vsnprintf.constprop.0+0x2f6> idx = _ntoa_long_long(out, buffer, idx, maxlen, va_arg(va, unsigned long long), false, base, precision, width, flags); f89a: e9cd 8307 strd r8, r3, [sp, #28] f89e: 2300 movs r3, #0 f8a0: e9cd 2304 strd r2, r3, [sp, #16] f8a4: f106 0a07 add.w sl, r6, #7 f8a8: f02a 0a07 bic.w sl, sl, #7 f8ac: 9406 str r4, [sp, #24] f8ae: 9302 str r3, [sp, #8] f8b0: e8fa 2302 ldrd r2, r3, [sl], #8 f8b4: e9cd 2300 strd r2, r3, [sp] f8b8: e7b6 b.n f828 <_vsnprintf.constprop.0+0x264> else if(flags & FLAGS_LONG) { f8ba: 05d8 lsls r0, r3, #23 idx = _ntoa_long(out, buffer, idx, maxlen, va_arg(va, unsigned long), false, base, precision, width, flags); f8bc: f106 0a04 add.w sl, r6, #4 else if(flags & FLAGS_LONG) { f8c0: d50e bpl.n f8e0 <_vsnprintf.constprop.0+0x31c> idx = _ntoa_long(out, buffer, idx, maxlen, va_arg(va, unsigned long), false, base, precision, width, flags); f8c2: e9cd 8304 strd r8, r3, [sp, #16] f8c6: e9cd 2402 strd r2, r4, [sp, #8] f8ca: f8cd c004 str.w ip, [sp, #4] f8ce: 6833 ldr r3, [r6, #0] f8d0: 9300 str r3, [sp, #0] idx = _ntoa_long(out, buffer, idx, maxlen, value, false, base, precision, width, flags); f8d2: 4c60 ldr r4, [pc, #384] ; (fa54 <_vsnprintf.constprop.0+0x490>) f8d4: 910a str r1, [sp, #40] ; 0x28 f8d6: 464b mov r3, r9 f8d8: 462a mov r2, r5 f8da: 4658 mov r0, fp f8dc: 47a0 blx r4 f8de: e7a9 b.n f834 <_vsnprintf.constprop.0+0x270> unsigned int) : (flags & FLAGS_SHORT) ? (unsigned short int)va_arg(va, unsigned int) : va_arg(va, unsigned int); f8e0: 0658 lsls r0, r3, #25 f8e2: d507 bpl.n f8f4 <_vsnprintf.constprop.0+0x330> f8e4: 7830 ldrb r0, [r6, #0] idx = _ntoa_long(out, buffer, idx, maxlen, value, false, base, precision, width, flags); f8e6: e9cd 8304 strd r8, r3, [sp, #16] f8ea: 2300 movs r3, #0 f8ec: e9cd 2402 strd r2, r4, [sp, #8] f8f0: 9301 str r3, [sp, #4] f8f2: e7be b.n f872 <_vsnprintf.constprop.0+0x2ae> f8f4: 6830 ldr r0, [r6, #0] unsigned int) : (flags & FLAGS_SHORT) ? (unsigned short int)va_arg(va, unsigned int) : va_arg(va, unsigned int); f8f6: f013 0f80 tst.w r3, #128 ; 0x80 f8fa: bf18 it ne f8fc: b280 uxthne r0, r0 f8fe: e7f2 b.n f8e6 <_vsnprintf.constprop.0+0x322> if(!(flags & FLAGS_LEFT)) { f900: f013 0402 ands.w r4, r3, #2 f904: d026 beq.n f954 <_vsnprintf.constprop.0+0x390> unsigned int l = 1U; f906: f04f 0a01 mov.w sl, #1 out((char)va_arg(va, int), buffer, idx++, maxlen); f90a: 1c6b adds r3, r5, #1 f90c: 930a str r3, [sp, #40] ; 0x28 f90e: 910b str r1, [sp, #44] ; 0x2c f910: f816 0b04 ldrb.w r0, [r6], #4 f914: 464b mov r3, r9 f916: 462a mov r2, r5 f918: 47d8 blx fp if(flags & FLAGS_LEFT) { f91a: 990b ldr r1, [sp, #44] ; 0x2c f91c: b374 cbz r4, f97c <_vsnprintf.constprop.0+0x3b8> out((char)va_arg(va, int), buffer, idx++, maxlen); f91e: 9a0a ldr r2, [sp, #40] ; 0x28 f920: 4654 mov r4, sl f922: e021 b.n f968 <_vsnprintf.constprop.0+0x3a4> out(' ', buffer, idx++, maxlen); f924: 910a str r1, [sp, #40] ; 0x28 f926: 464b mov r3, r9 f928: 2020 movs r0, #32 f92a: 47d8 blx fp f92c: 990a ldr r1, [sp, #40] ; 0x28 f92e: eb05 020a add.w r2, r5, sl while(l++ < width) { f932: f10a 0a01 add.w sl, sl, #1 f936: 45c2 cmp sl, r8 f938: d3f4 bcc.n f924 <_vsnprintf.constprop.0+0x360> f93a: f1b8 0f00 cmp.w r8, #0 f93e: f108 33ff add.w r3, r8, #4294967295 ; 0xffffffff f942: bf08 it eq f944: 2300 moveq r3, #0 f946: f108 0a01 add.w sl, r8, #1 f94a: 441d add r5, r3 f94c: bf08 it eq f94e: f04f 0a02 moveq.w sl, #2 f952: e7da b.n f90a <_vsnprintf.constprop.0+0x346> f954: 46a2 mov sl, r4 f956: e7ea b.n f92e <_vsnprintf.constprop.0+0x36a> out(' ', buffer, idx++, maxlen); f958: 910b str r1, [sp, #44] ; 0x2c f95a: 464b mov r3, r9 f95c: 2020 movs r0, #32 f95e: 1c55 adds r5, r2, #1 f960: 47d8 blx fp f962: 990b ldr r1, [sp, #44] ; 0x2c f964: 3401 adds r4, #1 f966: 462a mov r2, r5 while(l++ < width) { f968: 4544 cmp r4, r8 f96a: d3f5 bcc.n f958 <_vsnprintf.constprop.0+0x394> f96c: 9a0a ldr r2, [sp, #40] ; 0x28 f96e: eba8 030a sub.w r3, r8, sl f972: 45d0 cmp r8, sl f974: bf38 it cc f976: 2300 movcc r3, #0 f978: 441a add r2, r3 f97a: 920a str r2, [sp, #40] ; 0x28 break; f97c: 9d0a ldr r5, [sp, #40] ; 0x28 f97e: e62e b.n f5de <_vsnprintf.constprop.0+0x1a> const char * p = va_arg(va, char *); f980: 4632 mov r2, r6 unsigned int l = _strnlen_s(p, precision ? precision : (size_t) -1); f982: 2c00 cmp r4, #0 const char * p = va_arg(va, char *); f984: f852 6b04 ldr.w r6, [r2], #4 f988: 920a str r2, [sp, #40] ; 0x28 unsigned int l = _strnlen_s(p, precision ? precision : (size_t) -1); f98a: bf14 ite ne f98c: 4620 movne r0, r4 f98e: f04f 30ff moveq.w r0, #4294967295 ; 0xffffffff f992: 4430 add r0, r6 f994: 4632 mov r2, r6 for(s = str; *s && maxsize--; ++s); f996: f892 c000 ldrb.w ip, [r2] f99a: f1bc 0f00 cmp.w ip, #0 f99e: d001 beq.n f9a4 <_vsnprintf.constprop.0+0x3e0> f9a0: 4290 cmp r0, r2 f9a2: d111 bne.n f9c8 <_vsnprintf.constprop.0+0x404> return (unsigned int)(s - str); f9a4: eba2 0a06 sub.w sl, r2, r6 if(flags & FLAGS_PRECISION) { f9a8: f413 6280 ands.w r2, r3, #1024 ; 0x400 f9ac: 920b str r2, [sp, #44] ; 0x2c f9ae: d002 beq.n f9b6 <_vsnprintf.constprop.0+0x3f2> l = (l < precision ? l : precision); f9b0: 45a2 cmp sl, r4 f9b2: bf28 it cs f9b4: 46a2 movcs sl, r4 if(!(flags & FLAGS_LEFT)) { f9b6: f013 0302 ands.w r3, r3, #2 f9ba: 930c str r3, [sp, #48] ; 0x30 f9bc: d11c bne.n f9f8 <_vsnprintf.constprop.0+0x434> f9be: ebaa 0305 sub.w r3, sl, r5 f9c2: 462a mov r2, r5 f9c4: 930e str r3, [sp, #56] ; 0x38 f9c6: e009 b.n f9dc <_vsnprintf.constprop.0+0x418> for(s = str; *s && maxsize--; ++s); f9c8: 3201 adds r2, #1 f9ca: e7e4 b.n f996 <_vsnprintf.constprop.0+0x3d2> out(' ', buffer, idx++, maxlen); f9cc: 1c53 adds r3, r2, #1 f9ce: 930d str r3, [sp, #52] ; 0x34 f9d0: 910f str r1, [sp, #60] ; 0x3c f9d2: 464b mov r3, r9 f9d4: 2020 movs r0, #32 f9d6: 47d8 blx fp f9d8: 9a0d ldr r2, [sp, #52] ; 0x34 f9da: 990f ldr r1, [sp, #60] ; 0x3c while(l++ < width) { f9dc: 9b0e ldr r3, [sp, #56] ; 0x38 f9de: 18d3 adds r3, r2, r3 f9e0: 4543 cmp r3, r8 f9e2: d3f3 bcc.n f9cc <_vsnprintf.constprop.0+0x408> f9e4: eba8 030a sub.w r3, r8, sl f9e8: 45d0 cmp r8, sl f9ea: bf38 it cc f9ec: 2300 movcc r3, #0 f9ee: f10a 0201 add.w r2, sl, #1 f9f2: 441d add r5, r3 f9f4: eb03 0a02 add.w sl, r3, r2 f9f8: 1bab subs r3, r5, r6 f9fa: 930d str r3, [sp, #52] ; 0x34 f9fc: e005 b.n fa0a <_vsnprintf.constprop.0+0x446> f9fe: 461c mov r4, r3 out(*(p++), buffer, idx++, maxlen); fa00: 910e str r1, [sp, #56] ; 0x38 fa02: 464b mov r3, r9 fa04: 462a mov r2, r5 fa06: 47d8 blx fp fa08: 990e ldr r1, [sp, #56] ; 0x38 fa0a: 9b0d ldr r3, [sp, #52] ; 0x34 fa0c: 199d adds r5, r3, r6 while((*p != 0) && (!(flags & FLAGS_PRECISION) || precision--)) { fa0e: f816 0b01 ldrb.w r0, [r6], #1 fa12: b128 cbz r0, fa20 <_vsnprintf.constprop.0+0x45c> fa14: 9b0b ldr r3, [sp, #44] ; 0x2c fa16: 2b00 cmp r3, #0 fa18: d0f2 beq.n fa00 <_vsnprintf.constprop.0+0x43c> fa1a: 1e63 subs r3, r4, #1 fa1c: 2c00 cmp r4, #0 fa1e: d1ee bne.n f9fe <_vsnprintf.constprop.0+0x43a> if(flags & FLAGS_LEFT) { fa20: 9b0c ldr r3, [sp, #48] ; 0x30 fa22: b19b cbz r3, fa4c <_vsnprintf.constprop.0+0x488> fa24: 462a mov r2, r5 fa26: ebaa 0405 sub.w r4, sl, r5 fa2a: e006 b.n fa3a <_vsnprintf.constprop.0+0x476> out(' ', buffer, idx++, maxlen); fa2c: 910b str r1, [sp, #44] ; 0x2c fa2e: 464b mov r3, r9 fa30: 2020 movs r0, #32 fa32: 1c56 adds r6, r2, #1 fa34: 47d8 blx fp fa36: 990b ldr r1, [sp, #44] ; 0x2c fa38: 4632 mov r2, r6 while(l++ < width) { fa3a: 18a3 adds r3, r4, r2 fa3c: 4598 cmp r8, r3 fa3e: d8f5 bhi.n fa2c <_vsnprintf.constprop.0+0x468> fa40: eba8 030a sub.w r3, r8, sl fa44: 45d0 cmp r8, sl fa46: bf38 it cc fa48: 2300 movcc r3, #0 fa4a: 441d add r5, r3 const char * p = va_arg(va, char *); fa4c: 9e0a ldr r6, [sp, #40] ; 0x28 break; fa4e: e5c6 b.n f5de <_vsnprintf.constprop.0+0x1a> if(*format == 'x' || *format == 'X') { fa50: 2208 movs r2, #8 fa52: e6f8 b.n f846 <_vsnprintf.constprop.0+0x282> fa54: 0000f475 .word 0x0000f475 0000fa58 : va_end(va); return ret; } int lv_vsnprintf(char * buffer, size_t count, const char * format, va_list va) { fa58: b410 push {r4} return _vsnprintf(_out_buffer, buffer, count, format, va); fa5a: 4c02 ldr r4, [pc, #8] ; (fa64 ) fa5c: 46a4 mov ip, r4 } fa5e: f85d 4b04 ldr.w r4, [sp], #4 return _vsnprintf(_out_buffer, buffer, count, format, va); fa62: 4760 bx ip fa64: 0000f5c5 .word 0x0000f5c5 0000fa68 <_lv_task_core_init>: /** * Init the lv_task module */ void _lv_task_core_init(void) { fa68: b508 push {r3, lr} _lv_ll_init(&LV_GC_ROOT(_lv_task_ll), sizeof(lv_task_t)); fa6a: 4805 ldr r0, [pc, #20] ; (fa80 <_lv_task_core_init+0x18>) fa6c: 4b05 ldr r3, [pc, #20] ; (fa84 <_lv_task_core_init+0x1c>) fa6e: 2118 movs r1, #24 fa70: 4798 blx r3 task_list_changed = false; fa72: 4b05 ldr r3, [pc, #20] ; (fa88 <_lv_task_core_init+0x20>) fa74: 2200 movs r2, #0 fa76: 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; fa78: 2201 movs r2, #1 fa7a: 705a strb r2, [r3, #1] } fa7c: bd08 pop {r3, pc} fa7e: bf00 nop fa80: 20008f9c .word 0x20008f9c fa84: 0000e831 .word 0x0000e831 fa88: 2000d150 .word 0x2000d150 0000fa8c : { fa8c: b5f7 push {r0, r1, r2, r4, r5, r6, r7, lr} tmp = _lv_ll_get_head(&LV_GC_ROOT(_lv_task_ll)); fa8e: 4b36 ldr r3, [pc, #216] ; (fb68 ) fa90: 4836 ldr r0, [pc, #216] ; (fb6c ) fa92: 4798 blx r3 if(NULL == tmp) { fa94: 4605 mov r5, r0 fa96: b1e0 cbz r0, fad2 tmp = _lv_ll_get_next(&LV_GC_ROOT(_lv_task_ll), tmp); fa98: 4e34 ldr r6, [pc, #208] ; (fb6c ) fa9a: 4c35 ldr r4, [pc, #212] ; (fb70 ) if(tmp->prio <= DEF_PRIO) { fa9c: 7d2b ldrb r3, [r5, #20] fa9e: f003 0307 and.w r3, r3, #7 faa2: 2b03 cmp r3, #3 new_task = _lv_ll_ins_prev(&LV_GC_ROOT(_lv_task_ll), tmp); faa4: 4629 mov r1, r5 if(tmp->prio <= DEF_PRIO) { faa6: d82e bhi.n fb06 new_task = _lv_ll_ins_prev(&LV_GC_ROOT(_lv_task_ll), tmp); faa8: 4b32 ldr r3, [pc, #200] ; (fb74 ) faaa: 4830 ldr r0, [pc, #192] ; (fb6c ) faac: 4798 blx r3 LV_ASSERT_MEM(new_task); faae: 4b32 ldr r3, [pc, #200] ; (fb78 ) new_task = _lv_ll_ins_prev(&LV_GC_ROOT(_lv_task_ll), tmp); fab0: 4604 mov r4, r0 LV_ASSERT_MEM(new_task); fab2: 4798 blx r3 fab4: 4605 mov r5, r0 fab6: bb08 cbnz r0, fafc fab8: 4b30 ldr r3, [pc, #192] ; (fb7c ) faba: 4931 ldr r1, [pc, #196] ; (fb80 ) fabc: 9300 str r3, [sp, #0] fabe: 22db movs r2, #219 ; 0xdb fac0: 2003 movs r0, #3 fac2: 4e30 ldr r6, [pc, #192] ; (fb84 ) fac4: 47b0 blx r6 fac6: 4830 ldr r0, [pc, #192] ; (fb88 ) fac8: 4930 ldr r1, [pc, #192] ; (fb8c ) faca: 4622 mov r2, r4 facc: 462b mov r3, r5 face: 4788 blx r1 fad0: e7fe b.n fad0 new_task = _lv_ll_ins_head(&LV_GC_ROOT(_lv_task_ll)); fad2: 4b2f ldr r3, [pc, #188] ; (fb90 ) fad4: 4825 ldr r0, [pc, #148] ; (fb6c ) fad6: 4798 blx r3 LV_ASSERT_MEM(new_task); fad8: 4b27 ldr r3, [pc, #156] ; (fb78 ) new_task = _lv_ll_ins_head(&LV_GC_ROOT(_lv_task_ll)); fada: 4604 mov r4, r0 LV_ASSERT_MEM(new_task); fadc: 4798 blx r3 fade: 4605 mov r5, r0 fae0: b960 cbnz r0, fafc fae2: 4b26 ldr r3, [pc, #152] ; (fb7c ) fae4: 4926 ldr r1, [pc, #152] ; (fb80 ) fae6: 9300 str r3, [sp, #0] fae8: 22d3 movs r2, #211 ; 0xd3 faea: 2003 movs r0, #3 faec: 4e25 ldr r6, [pc, #148] ; (fb84 ) faee: 47b0 blx r6 faf0: 4825 ldr r0, [pc, #148] ; (fb88 ) faf2: 4926 ldr r1, [pc, #152] ; (fb8c ) faf4: 4622 mov r2, r4 faf6: 462b mov r3, r5 faf8: 4788 blx r1 fafa: e7fe b.n fafa if(new_task == NULL) return NULL; fafc: b9ec cbnz r4, fb3a fafe: 2400 movs r4, #0 } fb00: 4620 mov r0, r4 fb02: b003 add sp, #12 fb04: bdf0 pop {r4, r5, r6, r7, pc} tmp = _lv_ll_get_next(&LV_GC_ROOT(_lv_task_ll), tmp); fb06: 4630 mov r0, r6 fb08: 47a0 blx r4 } while(tmp != NULL); fb0a: 4605 mov r5, r0 fb0c: 2800 cmp r0, #0 fb0e: d1c5 bne.n fa9c new_task = _lv_ll_ins_tail(&LV_GC_ROOT(_lv_task_ll)); fb10: 4b20 ldr r3, [pc, #128] ; (fb94 ) fb12: 4816 ldr r0, [pc, #88] ; (fb6c ) fb14: 4798 blx r3 LV_ASSERT_MEM(new_task); fb16: 4b18 ldr r3, [pc, #96] ; (fb78 ) new_task = _lv_ll_ins_tail(&LV_GC_ROOT(_lv_task_ll)); fb18: 4604 mov r4, r0 LV_ASSERT_MEM(new_task); fb1a: 4798 blx r3 fb1c: 2800 cmp r0, #0 fb1e: d1ed bne.n fafc fb20: 4b16 ldr r3, [pc, #88] ; (fb7c ) fb22: 4917 ldr r1, [pc, #92] ; (fb80 ) fb24: 9300 str r3, [sp, #0] fb26: 22e5 movs r2, #229 ; 0xe5 fb28: 2003 movs r0, #3 fb2a: 4e16 ldr r6, [pc, #88] ; (fb84 ) fb2c: 47b0 blx r6 fb2e: 4816 ldr r0, [pc, #88] ; (fb88 ) fb30: 4916 ldr r1, [pc, #88] ; (fb8c ) fb32: 4622 mov r2, r4 fb34: 462b mov r3, r5 fb36: 4788 blx r1 fb38: e7fe b.n fb38 new_task->period = DEF_PERIOD; fb3a: f44f 73fa mov.w r3, #500 ; 0x1f4 fb3e: 6023 str r3, [r4, #0] new_task->prio = DEF_PRIO; fb40: 7d23 ldrb r3, [r4, #20] task_list_changed = true; fb42: 4d15 ldr r5, [pc, #84] ; (fb98 ) new_task->prio = DEF_PRIO; fb44: 2203 movs r2, #3 fb46: f362 0302 bfi r3, r2, #0, #3 new_task->task_cb = NULL; fb4a: 2700 movs r7, #0 new_task->prio = DEF_PRIO; fb4c: 7523 strb r3, [r4, #20] new_task->repeat_count = -1; fb4e: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff task_list_changed = true; fb52: 2601 movs r6, #1 new_task->repeat_count = -1; fb54: 6123 str r3, [r4, #16] new_task->task_cb = NULL; fb56: 60a7 str r7, [r4, #8] new_task->last_run = lv_tick_get(); fb58: 4b10 ldr r3, [pc, #64] ; (fb9c ) task_list_changed = true; fb5a: 702e strb r6, [r5, #0] new_task->last_run = lv_tick_get(); fb5c: 4798 blx r3 new_task->user_data = NULL; fb5e: 60e7 str r7, [r4, #12] new_task->last_run = lv_tick_get(); fb60: 6060 str r0, [r4, #4] task_created = true; fb62: 70ae strb r6, [r5, #2] return new_task; fb64: e7cc b.n fb00 fb66: bf00 nop fb68: 0000e8d5 .word 0x0000e8d5 fb6c: 20008f9c .word 0x20008f9c fb70: 0000e8e1 .word 0x0000e8e1 fb74: 0000e921 .word 0x0000e921 fb78: 00001a0d .word 0x00001a0d fb7c: 0002bb42 .word 0x0002bb42 fb80: 0002bb12 .word 0x0002bb12 fb84: 0000eb21 .word 0x0000eb21 fb88: 0002673e .word 0x0002673e fb8c: 00001a15 .word 0x00001a15 fb90: 0000e845 .word 0x0000e845 fb94: 0000e88d .word 0x0000e88d fb98: 2000d150 .word 0x2000d150 fb9c: 0000dc75 .word 0x0000dc75 0000fba0 : { fba0: b570 push {r4, r5, r6, lr} _lv_ll_remove(&LV_GC_ROOT(_lv_task_ll), task); fba2: 4601 mov r1, r0 { fba4: 4604 mov r4, r0 _lv_ll_remove(&LV_GC_ROOT(_lv_task_ll), task); fba6: 4b07 ldr r3, [pc, #28] ; (fbc4 ) fba8: 4807 ldr r0, [pc, #28] ; (fbc8 ) task_list_changed = true; fbaa: 4d08 ldr r5, [pc, #32] ; (fbcc ) _lv_ll_remove(&LV_GC_ROOT(_lv_task_ll), task); fbac: 4798 blx r3 task_list_changed = true; fbae: 2601 movs r6, #1 lv_mem_free(task); fbb0: 4b07 ldr r3, [pc, #28] ; (fbd0 ) task_list_changed = true; fbb2: 702e strb r6, [r5, #0] lv_mem_free(task); fbb4: 4620 mov r0, r4 fbb6: 4798 blx r3 if(LV_GC_ROOT(_lv_task_act) == task) task_deleted = true; /*The active task was deleted*/ fbb8: 4b06 ldr r3, [pc, #24] ; (fbd4 ) fbba: 681b ldr r3, [r3, #0] fbbc: 42a3 cmp r3, r4 fbbe: bf08 it eq fbc0: 70ee strbeq r6, [r5, #3] } fbc2: bd70 pop {r4, r5, r6, pc} fbc4: 0000e999 .word 0x0000e999 fbc8: 20008f9c .word 0x20008f9c fbcc: 2000d150 .word 0x2000d150 fbd0: 0000ed1d .word 0x0000ed1d fbd4: 2000900c .word 0x2000900c 0000fbd8 : * 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) { fbd8: 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); fbda: 4b12 ldr r3, [pc, #72] ; (fc24 ) { fbdc: 4604 mov r4, r0 uint32_t elp = lv_tick_elaps(task->last_run); fbde: 6840 ldr r0, [r0, #4] fbe0: 4798 blx r3 if(lv_task_time_remaining(task) == 0) { fbe2: 6823 ldr r3, [r4, #0] fbe4: 4298 cmp r0, r3 fbe6: d31b bcc.n fc20 task->last_run = lv_tick_get(); fbe8: 4b0f ldr r3, [pc, #60] ; (fc28 ) task_deleted = false; fbea: 4d10 ldr r5, [pc, #64] ; (fc2c ) task->last_run = lv_tick_get(); fbec: 4798 blx r3 task_deleted = false; fbee: 2300 movs r3, #0 fbf0: 70eb strb r3, [r5, #3] task_created = false; fbf2: 70ab strb r3, [r5, #2] if(task->task_cb) task->task_cb(task); fbf4: 68a3 ldr r3, [r4, #8] task->last_run = lv_tick_get(); fbf6: 6060 str r0, [r4, #4] if(task->task_cb) task->task_cb(task); fbf8: b943 cbnz r3, fc0c if(task->repeat_count > 0) { fbfa: 6923 ldr r3, [r4, #16] fbfc: 2b00 cmp r3, #0 fbfe: dc0c bgt.n fc1a if(task->repeat_count == 0) { fc00: 6923 ldr r3, [r4, #16] fc02: b943 cbnz r3, fc16 lv_task_del(task); fc04: 4b0a ldr r3, [pc, #40] ; (fc30 ) fc06: 4620 mov r0, r4 fc08: 4798 blx r3 fc0a: e004 b.n fc16 if(task->task_cb) task->task_cb(task); fc0c: 4620 mov r0, r4 fc0e: 4798 blx r3 if(task_deleted == false) { /*The task might be deleted by itself as well*/ fc10: 78eb ldrb r3, [r5, #3] fc12: 2b00 cmp r3, #0 fc14: d0f1 beq.n fbfa lv_task_del(task); fc16: 2001 movs r0, #1 } fc18: bd38 pop {r3, r4, r5, pc} task->repeat_count--; fc1a: 3b01 subs r3, #1 fc1c: 6123 str r3, [r4, #16] fc1e: e7ef b.n fc00 bool exec = false; fc20: 2000 movs r0, #0 fc22: e7f9 b.n fc18 fc24: 0000dc89 .word 0x0000dc89 fc28: 0000dc75 .word 0x0000dc75 fc2c: 2000d150 .word 0x2000d150 fc30: 0000fba1 .word 0x0000fba1 0000fc34 : { fc34: e92d 4ff8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr} if(already_running) return 1; fc38: f8df b15c ldr.w fp, [pc, #348] ; fd98 fc3c: f89b 4004 ldrb.w r4, [fp, #4] fc40: 2001 movs r0, #1 fc42: b934 cbnz r4, fc52 if(lv_task_run == false) { fc44: f89b 2001 ldrb.w r2, [fp, #1] already_running = true; fc48: f88b 0004 strb.w r0, [fp, #4] if(lv_task_run == false) { fc4c: b91a cbnz r2, fc56 already_running = false; /*Release mutex*/ fc4e: f88b 2004 strb.w r2, [fp, #4] } fc52: e8bd 8ff8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} handler_start = lv_tick_get(); fc56: f8df 8144 ldr.w r8, [pc, #324] ; fd9c LV_GC_ROOT(_lv_task_act) = _lv_ll_get_head(&LV_GC_ROOT(_lv_task_ll)); fc5a: f8df a138 ldr.w sl, [pc, #312] ; fd94 fc5e: f8df 9140 ldr.w r9, [pc, #320] ; fda0 handler_start = lv_tick_get(); fc62: 47c0 blx r8 fc64: f8cb 0008 str.w r0, [fp, #8] task_deleted = false; fc68: 2200 movs r2, #0 LV_GC_ROOT(_lv_task_act) = _lv_ll_get_head(&LV_GC_ROOT(_lv_task_ll)); fc6a: 4650 mov r0, sl task_deleted = false; fc6c: f88b 2003 strb.w r2, [fp, #3] task_created = false; fc70: f88b 2002 strb.w r2, [fp, #2] LV_GC_ROOT(_lv_task_act) = _lv_ll_get_head(&LV_GC_ROOT(_lv_task_ll)); fc74: 47c8 blx r9 fc76: 4d43 ldr r5, [pc, #268] ; (fd84 ) if(lv_task_exec(LV_GC_ROOT(_lv_task_act))) { fc78: 4f43 ldr r7, [pc, #268] ; (fd88 ) LV_GC_ROOT(_lv_task_act) = _lv_ll_get_head(&LV_GC_ROOT(_lv_task_ll)); fc7a: 6028 str r0, [r5, #0] while(LV_GC_ROOT(_lv_task_act)) { fc7c: 6829 ldr r1, [r5, #0] fc7e: b189 cbz r1, fca4 next = _lv_ll_get_next(&LV_GC_ROOT(_lv_task_ll), LV_GC_ROOT(_lv_task_act)); fc80: 4b42 ldr r3, [pc, #264] ; (fd8c ) fc82: 4650 mov r0, sl fc84: 4798 blx r3 fc86: 4606 mov r6, r0 if(((lv_task_t *)LV_GC_ROOT(_lv_task_act))->prio == LV_TASK_PRIO_OFF) { fc88: 6828 ldr r0, [r5, #0] fc8a: 7d02 ldrb r2, [r0, #20] fc8c: f012 0107 ands.w r1, r2, #7 fc90: d008 beq.n fca4 if(LV_GC_ROOT(_lv_task_act) == task_interrupter) { fc92: 42a0 cmp r0, r4 fc94: d050 beq.n fd38 if(((lv_task_t *)LV_GC_ROOT(_lv_task_act))->prio == LV_TASK_PRIO_HIGHEST) { fc96: 2905 cmp r1, #5 fc98: d139 bne.n fd0e lv_task_exec(LV_GC_ROOT(_lv_task_act)); fc9a: 47b8 blx r7 if(task_created || task_deleted) { fc9c: f89b 2002 ldrb.w r2, [fp, #2] fca0: 2a00 cmp r2, #0 fca2: d062 beq.n fd6a busy_time += lv_tick_elaps(handler_start); fca4: 4c3a ldr r4, [pc, #232] ; (fd90 ) fca6: f8db 0008 ldr.w r0, [fp, #8] fcaa: 47a0 blx r4 fcac: f8db 200c ldr.w r2, [fp, #12] fcb0: 4410 add r0, r2 fcb2: f8cb 000c str.w r0, [fp, #12] uint32_t idle_period_time = lv_tick_elaps(idle_period_start); fcb6: f8db 0014 ldr.w r0, [fp, #20] fcba: 47a0 blx r4 if(idle_period_time >= IDLE_MEAS_PERIOD) { fcbc: f5b0 7ffa cmp.w r0, #500 ; 0x1f4 fcc0: d316 bcc.n fcf0 idle_last = (uint32_t)((uint32_t)busy_time * 100) / IDLE_MEAS_PERIOD; /*Calculate the busy percentage*/ fcc2: f8db 200c ldr.w r2, [fp, #12] fcc6: 2164 movs r1, #100 ; 0x64 fcc8: 434a muls r2, r1 fcca: f44f 71fa mov.w r1, #500 ; 0x1f4 fcce: fbb2 f2f1 udiv r2, r2, r1 fcd2: b2d2 uxtb r2, r2 idle_last = idle_last > 100 ? 0 : 100 - idle_last; /*But we need idle time*/ fcd4: 2a64 cmp r2, #100 ; 0x64 fcd6: bf9a itte ls fcd8: f1c2 0264 rsbls r2, r2, #100 ; 0x64 fcdc: b2d2 uxtbls r2, r2 fcde: 2200 movhi r2, #0 fce0: f88b 2010 strb.w r2, [fp, #16] busy_time = 0; fce4: 2200 movs r2, #0 fce6: f8cb 200c str.w r2, [fp, #12] idle_period_start = lv_tick_get(); fcea: 47c0 blx r8 fcec: f8cb 0014 str.w r0, [fp, #20] time_till_next = LV_NO_TASK_READY; fcf0: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff next = _lv_ll_get_head(&LV_GC_ROOT(_lv_task_ll)); fcf4: 4827 ldr r0, [pc, #156] ; (fd94 ) time_till_next = LV_NO_TASK_READY; fcf6: f8cb 2018 str.w r2, [fp, #24] next = _lv_ll_get_head(&LV_GC_ROOT(_lv_task_ll)); fcfa: 47c8 blx r9 next = _lv_ll_get_next(&LV_GC_ROOT(_lv_task_ll), next); /*Find the next task*/ fcfc: 4e25 ldr r6, [pc, #148] ; (fd94 ) fcfe: 4f23 ldr r7, [pc, #140] ; (fd8c ) next = _lv_ll_get_head(&LV_GC_ROOT(_lv_task_ll)); fd00: 4605 mov r5, r0 while(next) { fd02: b9e5 cbnz r5, fd3e return time_till_next; fd04: f8db 0018 ldr.w r0, [fp, #24] already_running = false; /*Release the mutex*/ fd08: f88b 5004 strb.w r5, [fp, #4] return time_till_next; fd0c: e7a1 b.n fc52 else if(task_interrupter) { fd0e: b134 cbz r4, fd1e if(((lv_task_t *)LV_GC_ROOT(_lv_task_act))->prio > task_interrupter->prio) { fd10: 7d21 ldrb r1, [r4, #20] fd12: f002 0207 and.w r2, r2, #7 fd16: f001 0107 and.w r1, r1, #7 fd1a: 428a cmp r2, r1 fd1c: d9be bls.n fc9c if(lv_task_exec(LV_GC_ROOT(_lv_task_act))) { fd1e: 47b8 blx r7 fd20: 2800 cmp r0, #0 fd22: d0bb beq.n fc9c if(!task_created && !task_deleted) { fd24: f89b 2002 ldrb.w r2, [fp, #2] fd28: 2a00 cmp r2, #0 fd2a: d1bb bne.n fca4 fd2c: f89b 2003 ldrb.w r2, [fp, #3] fd30: 2a00 cmp r2, #0 fd32: d1b7 bne.n fca4 task_interrupter = LV_GC_ROOT(_lv_task_act); /*Check all tasks again from the highest priority */ fd34: 682c ldr r4, [r5, #0] } while(!end_flag); fd36: e797 b.n fc68 task_interrupter = NULL; /*From this point only task after the interrupter comes, so fd38: 2400 movs r4, #0 LV_GC_ROOT(_lv_task_act) = next; fd3a: 602e str r6, [r5, #0] fd3c: e79e b.n fc7c if(next->prio != LV_TASK_PRIO_OFF) { fd3e: 7d2a ldrb r2, [r5, #20] fd40: 0753 lsls r3, r2, #29 fd42: d00d beq.n fd60 uint32_t elp = lv_tick_elaps(task->last_run); fd44: 6868 ldr r0, [r5, #4] fd46: 47a0 blx r4 if(elp >= task->period) fd48: 682a ldr r2, [r5, #0] fd4a: 4290 cmp r0, r2 return 0; return task->period - elp; fd4c: bf38 it cc fd4e: 1a10 subcc r0, r2, r0 if(delay < time_till_next) fd50: f8db 2018 ldr.w r2, [fp, #24] return 0; fd54: bf28 it cs fd56: 2000 movcs r0, #0 if(delay < time_till_next) fd58: 4282 cmp r2, r0 time_till_next = delay; fd5a: bf88 it hi fd5c: f8cb 0018 strhi.w r0, [fp, #24] next = _lv_ll_get_next(&LV_GC_ROOT(_lv_task_ll), next); /*Find the next task*/ fd60: 4629 mov r1, r5 fd62: 4630 mov r0, r6 fd64: 47b8 blx r7 fd66: 4605 mov r5, r0 fd68: e7cb b.n fd02 if(task_created || task_deleted) { fd6a: f89b 2003 ldrb.w r2, [fp, #3] fd6e: 2a00 cmp r2, #0 fd70: d198 bne.n fca4 if(task_list_changed) { fd72: f89b 1000 ldrb.w r1, [fp] fd76: 2900 cmp r1, #0 fd78: d0df beq.n fd3a task_list_changed = false; fd7a: f88b 2000 strb.w r2, [fp] task_interrupter = NULL; fd7e: 4614 mov r4, r2 fd80: e772 b.n fc68 fd82: bf00 nop fd84: 2000900c .word 0x2000900c fd88: 0000fbd9 .word 0x0000fbd9 fd8c: 0000e8e1 .word 0x0000e8e1 fd90: 0000dc89 .word 0x0000dc89 fd94: 20008f9c .word 0x20008f9c fd98: 2000d150 .word 0x2000d150 fd9c: 0000dc75 .word 0x0000dc75 fda0: 0000e8d5 .word 0x0000e8d5 0000fda4 : { fda4: b5f8 push {r3, r4, r5, r6, r7, lr} if(task->prio == prio) return; fda6: 7d03 ldrb r3, [r0, #20] fda8: f003 0307 and.w r3, r3, #7 fdac: 428b cmp r3, r1 { fdae: 4604 mov r4, r0 fdb0: 460d mov r5, r1 if(task->prio == prio) return; fdb2: d018 beq.n fde6 _LV_LL_READ(LV_GC_ROOT(_lv_task_ll), i) { fdb4: 480f ldr r0, [pc, #60] ; (fdf4 ) fdb6: 4b10 ldr r3, [pc, #64] ; (fdf8 ) fdb8: 4e0e ldr r6, [pc, #56] ; (fdf4 ) fdba: 4f10 ldr r7, [pc, #64] ; (fdfc ) fdbc: 4798 blx r3 fdbe: 4602 mov r2, r0 fdc0: b132 cbz r2, fdd0 if(i->prio <= prio) { fdc2: 7d13 ldrb r3, [r2, #20] fdc4: f003 0307 and.w r3, r3, #7 fdc8: 429d cmp r5, r3 fdca: db0d blt.n fde8 if(i != task) _lv_ll_move_before(&LV_GC_ROOT(_lv_task_ll), task, i); fdcc: 42a2 cmp r2, r4 fdce: d003 beq.n fdd8 _lv_ll_move_before(&LV_GC_ROOT(_lv_task_ll), task, NULL); fdd0: 4808 ldr r0, [pc, #32] ; (fdf4 ) fdd2: 4b0b ldr r3, [pc, #44] ; (fe00 ) fdd4: 4621 mov r1, r4 fdd6: 4798 blx r3 task_list_changed = true; fdd8: 4b0a ldr r3, [pc, #40] ; (fe04 ) fdda: 2201 movs r2, #1 fddc: 701a strb r2, [r3, #0] task->prio = prio; fdde: 7d23 ldrb r3, [r4, #20] fde0: f365 0302 bfi r3, r5, #0, #3 fde4: 7523 strb r3, [r4, #20] } fde6: bdf8 pop {r3, r4, r5, r6, r7, pc} _LV_LL_READ(LV_GC_ROOT(_lv_task_ll), i) { fde8: 4611 mov r1, r2 fdea: 4630 mov r0, r6 fdec: 47b8 blx r7 fdee: 4602 mov r2, r0 fdf0: e7e6 b.n fdc0 fdf2: bf00 nop fdf4: 20008f9c .word 0x20008f9c fdf8: 0000e8d5 .word 0x0000e8d5 fdfc: 0000e8e1 .word 0x0000e8e1 fe00: 0000ea89 .word 0x0000ea89 fe04: 2000d150 .word 0x2000d150 0000fe08 : { fe08: e92d 41ff stmdb sp!, {r0, r1, r2, r3, r4, r5, r6, r7, r8, lr} fe0c: 461e mov r6, r3 lv_task_t * new_task = lv_task_create_basic(); fe0e: 4b12 ldr r3, [pc, #72] ; (fe58 ) { fe10: 9203 str r2, [sp, #12] fe12: 460f mov r7, r1 fe14: 4680 mov r8, r0 lv_task_t * new_task = lv_task_create_basic(); fe16: 4798 blx r3 LV_ASSERT_MEM(new_task); fe18: 4b10 ldr r3, [pc, #64] ; (fe5c ) lv_task_t * new_task = lv_task_create_basic(); fe1a: 4604 mov r4, r0 LV_ASSERT_MEM(new_task); fe1c: 4798 blx r3 fe1e: 9903 ldr r1, [sp, #12] fe20: 4605 mov r5, r0 fe22: b968 cbnz r0, fe40 fe24: 4b0e ldr r3, [pc, #56] ; (fe60 ) fe26: 490f ldr r1, [pc, #60] ; (fe64 ) fe28: 9300 str r3, [sp, #0] fe2a: f44f 7283 mov.w r2, #262 ; 0x106 fe2e: 2003 movs r0, #3 fe30: 4e0d ldr r6, [pc, #52] ; (fe68 ) fe32: 47b0 blx r6 fe34: 480d ldr r0, [pc, #52] ; (fe6c ) fe36: 490e ldr r1, [pc, #56] ; (fe70 ) fe38: 4622 mov r2, r4 fe3a: 462b mov r3, r5 fe3c: 4788 blx r1 fe3e: e7fe b.n fe3e if(new_task == NULL) return NULL; fe40: b134 cbz r4, fe50 lv_task_set_prio(new_task, prio); fe42: 4b0c ldr r3, [pc, #48] ; (fe74 ) task->task_cb = task_cb; fe44: f8c4 8008 str.w r8, [r4, #8] task->period = period; fe48: 6027 str r7, [r4, #0] lv_task_set_prio(new_task, prio); fe4a: 4620 mov r0, r4 fe4c: 4798 blx r3 new_task->user_data = user_data; fe4e: 60e6 str r6, [r4, #12] } fe50: 4620 mov r0, r4 fe52: b004 add sp, #16 fe54: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} fe58: 0000fa8d .word 0x0000fa8d fe5c: 00001a0d .word 0x00001a0d fe60: 0002bb57 .word 0x0002bb57 fe64: 0002bb12 .word 0x0002bb12 fe68: 0000eb21 .word 0x0000eb21 fe6c: 0002673e .word 0x0002673e fe70: 00001a15 .word 0x00001a15 fe74: 0000fda5 .word 0x0000fda5 0000fe78 : { fe78: b510 push {r4, lr} task->last_run = lv_tick_get() - task->period - 1; fe7a: 4b04 ldr r3, [pc, #16] ; (fe8c ) { fe7c: 4604 mov r4, r0 task->last_run = lv_tick_get() - task->period - 1; fe7e: 4798 blx r3 fe80: 6823 ldr r3, [r4, #0] fe82: 1ac3 subs r3, r0, r3 fe84: 3b01 subs r3, #1 fe86: 6063 str r3, [r4, #4] } fe88: bd10 pop {r4, pc} fe8a: bf00 nop fe8c: 0000dc75 .word 0x0000dc75 0000fe90 : * @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) fe90: f990 2000 ldrsb.w r2, [r0] fe94: 7803 ldrb r3, [r0, #0] fe96: 2a00 cmp r2, #0 fe98: da0f bge.n feba return 1; else if((str[0] & 0xE0) == 0xC0) fe9a: f003 02e0 and.w r2, r3, #224 ; 0xe0 fe9e: 2ac0 cmp r2, #192 ; 0xc0 fea0: d00d beq.n febe return 2; else if((str[0] & 0xF0) == 0xE0) fea2: f003 02f0 and.w r2, r3, #240 ; 0xf0 fea6: 2ae0 cmp r2, #224 ; 0xe0 fea8: d00b beq.n fec2 return 3; else if((str[0] & 0xF8) == 0xF0) feaa: f003 00f8 and.w r0, r3, #248 ; 0xf8 feae: f1a0 03f0 sub.w r3, r0, #240 ; 0xf0 feb2: 4258 negs r0, r3 feb4: 4158 adcs r0, r3 feb6: 0080 lsls r0, r0, #2 feb8: 4770 bx lr return 1; feba: 2001 movs r0, #1 febc: 4770 bx lr return 2; febe: 2002 movs r0, #2 fec0: 4770 bx lr return 3; fec2: 2003 movs r0, #3 return 4; return 0; /*If the char was invalid tell it's 1 byte long*/ } fec4: 4770 bx lr 0000fec6 : * 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) { fec6: b573 push {r0, r1, r4, r5, r6, lr} * */ uint32_t result = 0; /*Dummy 'i' pointer is required*/ uint32_t i_tmp = 0; fec8: 2300 movs r3, #0 feca: 9301 str r3, [sp, #4] if(i == NULL) i = &i_tmp; fecc: b901 cbnz r1, fed0 fece: a901 add r1, sp, #4 /*Normal ASCII*/ if((txt[*i] & 0x80) == 0) { fed0: 680a ldr r2, [r1, #0] fed2: 5685 ldrsb r5, [r0, r2] fed4: 5c83 ldrb r3, [r0, r2] fed6: 2d00 cmp r5, #0 result = txt[*i]; (*i)++; fed8: f102 0401 add.w r4, r2, #1 if((txt[*i] & 0x80) == 0) { fedc: db03 blt.n fee6 result = txt[*i]; fede: 4618 mov r0, r3 (*i)++; fee0: 600c str r4, [r1, #0] else { (*i)++; /*Not UTF-8 char. Go the next.*/ } } return result; } fee2: b002 add sp, #8 fee4: bd70 pop {r4, r5, r6, pc} if((txt[*i] & 0xE0) == 0xC0) { fee6: f003 05e0 and.w r5, r3, #224 ; 0xe0 feea: 2dc0 cmp r5, #192 ; 0xc0 feec: d110 bne.n ff10 (*i)++; feee: 600c str r4, [r1, #0] if((txt[*i] & 0xC0) != 0x80) return 0; /*Invalid UTF-8 code*/ fef0: 5d00 ldrb r0, [r0, r4] fef2: f000 04c0 and.w r4, r0, #192 ; 0xc0 fef6: 2c80 cmp r4, #128 ; 0x80 fef8: d001 beq.n fefe uint32_t result = 0; fefa: 2000 movs r0, #0 fefc: e7f1 b.n fee2 result = (uint32_t)(txt[*i] & 0x1F) << 6; fefe: 019b lsls r3, r3, #6 ff00: f403 63f8 and.w r3, r3, #1984 ; 0x7c0 result += (txt[*i] & 0x3F); ff04: f000 003f and.w r0, r0, #63 ; 0x3f ff08: 4418 add r0, r3 (*i)++; ff0a: 3202 adds r2, #2 (*i)++; ff0c: 600a str r2, [r1, #0] ff0e: e7e8 b.n fee2 else if((txt[*i] & 0xF0) == 0xE0) { ff10: f003 05f0 and.w r5, r3, #240 ; 0xf0 ff14: 2de0 cmp r5, #224 ; 0xe0 ff16: d117 bne.n ff48 (*i)++; ff18: 600c str r4, [r1, #0] if((txt[*i] & 0xC0) != 0x80) return 0; /*Invalid UTF-8 code*/ ff1a: 5d04 ldrb r4, [r0, r4] ff1c: f004 05c0 and.w r5, r4, #192 ; 0xc0 ff20: 2d80 cmp r5, #128 ; 0x80 ff22: d1ea bne.n fefa (*i)++; ff24: 1c95 adds r5, r2, #2 ff26: 600d str r5, [r1, #0] if((txt[*i] & 0xC0) != 0x80) return 0; /*Invalid UTF-8 code*/ ff28: 5d45 ldrb r5, [r0, r5] ff2a: f005 00c0 and.w r0, r5, #192 ; 0xc0 ff2e: 2880 cmp r0, #128 ; 0x80 ff30: d1e3 bne.n fefa result = (uint32_t)(txt[*i] & 0x0F) << 12; ff32: 0318 lsls r0, r3, #12 ff34: b280 uxth r0, r0 result += (txt[*i] & 0x3F); ff36: f005 053f and.w r5, r5, #63 ; 0x3f result += (uint32_t)(txt[*i] & 0x3F) << 6; ff3a: 01a4 lsls r4, r4, #6 ff3c: 4428 add r0, r5 ff3e: f404 647c and.w r4, r4, #4032 ; 0xfc0 result += (txt[*i] & 0x3F); ff42: 4420 add r0, r4 (*i)++; ff44: 3203 adds r2, #3 ff46: e7e1 b.n ff0c else if((txt[*i] & 0xF8) == 0xF0) { ff48: f003 05f8 and.w r5, r3, #248 ; 0xf8 ff4c: 2df0 cmp r5, #240 ; 0xf0 (*i)++; ff4e: 600c str r4, [r1, #0] else if((txt[*i] & 0xF8) == 0xF0) { ff50: d1d3 bne.n fefa if((txt[*i] & 0xC0) != 0x80) return 0; /*Invalid UTF-8 code*/ ff52: 5d04 ldrb r4, [r0, r4] ff54: f004 05c0 and.w r5, r4, #192 ; 0xc0 ff58: 2d80 cmp r5, #128 ; 0x80 ff5a: d1ce bne.n fefa (*i)++; ff5c: 1c95 adds r5, r2, #2 ff5e: 600d str r5, [r1, #0] if((txt[*i] & 0xC0) != 0x80) return 0; /*Invalid UTF-8 code*/ ff60: 5d45 ldrb r5, [r0, r5] ff62: f005 06c0 and.w r6, r5, #192 ; 0xc0 ff66: 2e80 cmp r6, #128 ; 0x80 ff68: d1c7 bne.n fefa (*i)++; ff6a: 1cd6 adds r6, r2, #3 ff6c: 600e str r6, [r1, #0] if((txt[*i] & 0xC0) != 0x80) return 0; /*Invalid UTF-8 code*/ ff6e: 5d80 ldrb r0, [r0, r6] ff70: f000 06c0 and.w r6, r0, #192 ; 0xc0 ff74: 2e80 cmp r6, #128 ; 0x80 ff76: d1c0 bne.n fefa result = (uint32_t)(txt[*i] & 0x07) << 18; ff78: 049b lsls r3, r3, #18 result += (uint32_t)(txt[*i] & 0x3F) << 12; ff7a: 0324 lsls r4, r4, #12 result += (uint32_t)(txt[*i] & 0x3F) << 6; ff7c: 01ad lsls r5, r5, #6 result += txt[*i] & 0x3F; ff7e: f000 003f and.w r0, r0, #63 ; 0x3f result = (uint32_t)(txt[*i] & 0x07) << 18; ff82: f403 13e0 and.w r3, r3, #1835008 ; 0x1c0000 result += (uint32_t)(txt[*i] & 0x3F) << 12; ff86: f404 347c and.w r4, r4, #258048 ; 0x3f000 result += (uint32_t)(txt[*i] & 0x3F) << 6; ff8a: f405 657c and.w r5, r5, #4032 ; 0xfc0 result += (uint32_t)(txt[*i] & 0x3F) << 12; ff8e: 431c orrs r4, r3 result += txt[*i] & 0x3F; ff90: 4405 add r5, r0 ff92: 1928 adds r0, r5, r4 (*i)++; ff94: 3204 adds r2, #4 ff96: e7b9 b.n ff0c 0000ff98 : { uint8_t c_size; uint8_t cnt = 0; /*Try to find a !0 long UTF-8 char by stepping one character back*/ (*i)--; ff98: 680b ldr r3, [r1, #0] { ff9a: b5f7 push {r0, r1, r2, r4, r5, r6, r7, lr} (*i)--; ff9c: 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]); ff9e: 4f0d ldr r7, [pc, #52] ; (ffd4 ) (*i)--; ffa0: 600b str r3, [r1, #0] { ffa2: 4606 mov r6, r0 ffa4: 460c mov r4, r1 (*i)--; ffa6: 2504 movs r5, #4 c_size = _lv_txt_encoded_size(&txt[*i]); ffa8: 6820 ldr r0, [r4, #0] ffaa: 683b ldr r3, [r7, #0] ffac: 4430 add r0, r6 ffae: 4798 blx r3 if(c_size == 0) { ffb0: 6823 ldr r3, [r4, #0] ffb2: b948 cbnz r0, ffc8 if(*i != 0) ffb4: b12b cbz r3, ffc2 if(cnt >= 4) return 0; /*No UTF-8 char found before the initial*/ ffb6: 3d01 subs r5, #1 (*i)--; ffb8: 3b01 subs r3, #1 if(cnt >= 4) return 0; /*No UTF-8 char found before the initial*/ ffba: f015 05ff ands.w r5, r5, #255 ; 0xff (*i)--; ffbe: 6023 str r3, [r4, #0] if(cnt >= 4) return 0; /*No UTF-8 char found before the initial*/ ffc0: d1f2 bne.n ffa8 ffc2: 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; } ffc4: b003 add sp, #12 ffc6: bdf0 pop {r4, r5, r6, r7, pc} uint32_t i_tmp = *i; ffc8: 9301 str r3, [sp, #4] uint32_t letter = _lv_txt_encoded_next(txt, &i_tmp); /*Character found, get it*/ ffca: a901 add r1, sp, #4 ffcc: 687b ldr r3, [r7, #4] ffce: 4630 mov r0, r6 ffd0: 4798 blx r3 return letter; ffd2: e7f7 b.n ffc4 ffd4: 20000048 .word 0x20000048 0000ffd8 : * @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) { ffd8: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} uint32_t i; uint32_t byte_cnt = 0; ffdc: 2400 movs r4, #0 for(i = 0; i < utf8_id; i++) { uint8_t c_size = _lv_txt_encoded_size(&txt[byte_cnt]); ffde: f8df 8028 ldr.w r8, [pc, #40] ; 10008 { ffe2: 4607 mov r7, r0 ffe4: 460d mov r5, r1 for(i = 0; i < utf8_id; i++) { ffe6: 4626 mov r6, r4 ffe8: 42ae cmp r6, r5 ffea: d102 bne.n fff2 byte_cnt += c_size > 0 ? c_size : 1; } return byte_cnt; } ffec: 4620 mov r0, r4 ffee: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} uint8_t c_size = _lv_txt_encoded_size(&txt[byte_cnt]); fff2: 1938 adds r0, r7, r4 fff4: f8d8 3000 ldr.w r3, [r8] fff8: 4798 blx r3 byte_cnt += c_size > 0 ? c_size : 1; fffa: 2801 cmp r0, #1 fffc: bf38 it cc fffe: 2001 movcc r0, #1 10000: fa54 f480 uxtab r4, r4, r0 for(i = 0; i < utf8_id; i++) { 10004: 3601 adds r6, #1 10006: e7ef b.n ffe8 10008: 20000048 .word 0x20000048 0001000c : * @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) { 1000c: b5f7 push {r0, r1, r2, r4, r5, r6, r7, lr} uint32_t i = 0; 1000e: 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*/ 10010: 4f07 ldr r7, [pc, #28] ; (10030 ) uint32_t i = 0; 10012: 9401 str r4, [sp, #4] { 10014: 4606 mov r6, r0 10016: 460d mov r5, r1 while(i < byte_id) { 10018: 9b01 ldr r3, [sp, #4] 1001a: 42ab cmp r3, r5 1001c: d302 bcc.n 10024 char_cnt++; } return char_cnt; } 1001e: 4620 mov r0, r4 10020: b003 add sp, #12 10022: bdf0 pop {r4, r5, r6, r7, pc} _lv_txt_encoded_next(txt, &i); /*'i' points to the next letter so use the prev. value*/ 10024: 687b ldr r3, [r7, #4] 10026: a901 add r1, sp, #4 10028: 4630 mov r0, r6 1002a: 4798 blx r3 char_cnt++; 1002c: 3401 adds r4, #1 1002e: e7f3 b.n 10018 10030: 20000048 .word 0x20000048 00010034 : * 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) { 10034: b573 push {r0, r1, r4, r5, r6, lr} uint32_t len = 0; uint32_t i = 0; 10036: 2400 movs r4, #0 while(txt[i] != '\0') { _lv_txt_encoded_next(txt, &i); 10038: 4e07 ldr r6, [pc, #28] ; (10058 ) uint32_t i = 0; 1003a: 9401 str r4, [sp, #4] { 1003c: 4605 mov r5, r0 while(txt[i] != '\0') { 1003e: 9b01 ldr r3, [sp, #4] 10040: 5ceb ldrb r3, [r5, r3] 10042: b913 cbnz r3, 1004a len++; } return len; } 10044: 4620 mov r0, r4 10046: b002 add sp, #8 10048: bd70 pop {r4, r5, r6, pc} _lv_txt_encoded_next(txt, &i); 1004a: 6873 ldr r3, [r6, #4] 1004c: a901 add r1, sp, #4 1004e: 4628 mov r0, r5 10050: 4798 blx r3 len++; 10052: 3401 adds r4, #1 10054: e7f3 b.n 1003e 10056: bf00 nop 10058: 20000048 .word 0x20000048 0001005c : if(letter_uni < 128) return letter_uni; 1005c: 287f cmp r0, #127 ; 0x7f { 1005e: b082 sub sp, #8 if(letter_uni < 128) return letter_uni; 10060: d911 bls.n 10086 if(letter_uni < 0x0800) { 10062: f5b0 6f00 cmp.w r0, #2048 ; 0x800 10066: d210 bcs.n 1008a bytes[0] = ((letter_uni >> 6) & 0x1F) | 0xC0; 10068: 0983 lsrs r3, r0, #6 1006a: f063 033f orn r3, r3, #63 ; 0x3f bytes[1] = ((letter_uni >> 0) & 0x3F) | 0x80; 1006e: f000 003f and.w r0, r0, #63 ; 0x3f bytes[0] = ((letter_uni >> 6) & 0x1F) | 0xC0; 10072: f88d 3004 strb.w r3, [sp, #4] bytes[1] = ((letter_uni >> 0) & 0x3F) | 0x80; 10076: f060 007f orn r0, r0, #127 ; 0x7f bytes[2] = 0; 1007a: 2300 movs r3, #0 bytes[1] = ((letter_uni >> 0) & 0x3F) | 0x80; 1007c: f88d 0005 strb.w r0, [sp, #5] bytes[2] = 0; 10080: f8ad 3006 strh.w r3, [sp, #6] return *res_p; 10084: 9801 ldr r0, [sp, #4] } 10086: b002 add sp, #8 10088: 4770 bx lr else if(letter_uni < 0x010000) { 1008a: f5b0 3f80 cmp.w r0, #65536 ; 0x10000 1008e: d214 bcs.n 100ba bytes[0] = ((letter_uni >> 12) & 0x0F) | 0xE0; 10090: 0b03 lsrs r3, r0, #12 10092: f063 031f orn r3, r3, #31 10096: f88d 3004 strb.w r3, [sp, #4] bytes[1] = ((letter_uni >> 6) & 0x3F) | 0x80; 1009a: f3c0 1385 ubfx r3, r0, #6, #6 1009e: f063 037f orn r3, r3, #127 ; 0x7f bytes[2] = ((letter_uni >> 0) & 0x3F) | 0x80; 100a2: f000 003f and.w r0, r0, #63 ; 0x3f bytes[1] = ((letter_uni >> 6) & 0x3F) | 0x80; 100a6: f88d 3005 strb.w r3, [sp, #5] bytes[2] = ((letter_uni >> 0) & 0x3F) | 0x80; 100aa: f060 007f orn r0, r0, #127 ; 0x7f bytes[3] = 0; 100ae: 2300 movs r3, #0 bytes[2] = ((letter_uni >> 0) & 0x3F) | 0x80; 100b0: f88d 0006 strb.w r0, [sp, #6] bytes[3] = 0; 100b4: f88d 3007 strb.w r3, [sp, #7] 100b8: e7e4 b.n 10084 else if(letter_uni < 0x110000) { 100ba: f5b0 1f88 cmp.w r0, #1114112 ; 0x110000 100be: d2e1 bcs.n 10084 bytes[0] = ((letter_uni >> 18) & 0x07) | 0xF0; 100c0: 0c83 lsrs r3, r0, #18 100c2: f063 030f orn r3, r3, #15 100c6: f88d 3004 strb.w r3, [sp, #4] bytes[1] = ((letter_uni >> 12) & 0x3F) | 0x80; 100ca: f3c0 3305 ubfx r3, r0, #12, #6 100ce: f063 037f orn r3, r3, #127 ; 0x7f 100d2: f88d 3005 strb.w r3, [sp, #5] bytes[2] = ((letter_uni >> 6) & 0x3F) | 0x80; 100d6: f3c0 1385 ubfx r3, r0, #6, #6 bytes[3] = ((letter_uni >> 0) & 0x3F) | 0x80; 100da: f000 003f and.w r0, r0, #63 ; 0x3f bytes[2] = ((letter_uni >> 6) & 0x3F) | 0x80; 100de: f063 037f orn r3, r3, #127 ; 0x7f bytes[3] = ((letter_uni >> 0) & 0x3F) | 0x80; 100e2: f060 007f orn r0, r0, #127 ; 0x7f bytes[2] = ((letter_uni >> 6) & 0x3F) | 0x80; 100e6: f88d 3006 strb.w r3, [sp, #6] bytes[3] = ((letter_uni >> 0) & 0x3F) | 0x80; 100ea: f88d 0007 strb.w r0, [sp, #7] 100ee: e7c9 b.n 10084 000100f0 : if((c & 0x80) != 0) { 100f0: 0603 lsls r3, r0, #24 100f2: d512 bpl.n 1011a swapped = (c8[0] << 24) + (c8[1] << 16) + (c8[2] << 8) + (c8[3]); 100f4: f3c0 2207 ubfx r2, r0, #8, #8 100f8: 0603 lsls r3, r0, #24 100fa: eb03 4302 add.w r3, r3, r2, lsl #16 100fe: f3c0 4207 ubfx r2, r0, #16, #8 10102: eb03 2302 add.w r3, r3, r2, lsl #8 10106: eb03 6010 add.w r0, r3, r0, lsr #24 1010a: 2304 movs r3, #4 if((swapped & 0xFF) == 0) 1010c: b2c2 uxtb r2, r0 1010e: b902 cbnz r2, 10112 swapped = (swapped >> 8); /*Ignore leading zeros (they were in the end originally)*/ 10110: 0a00 lsrs r0, r0, #8 for(i = 0; i < 4; i++) { 10112: 3b01 subs r3, #1 10114: f013 03ff ands.w r3, r3, #255 ; 0xff 10118: d1f8 bne.n 1010c } 1011a: 4770 bx lr 0001011c <_lv_txt_is_cmd>: if(c == (uint32_t)LV_TXT_COLOR_CMD[0]) { 1011c: 2923 cmp r1, #35 ; 0x23 1011e: d116 bne.n 1014e <_lv_txt_is_cmd+0x32> if(*state == LV_TXT_CMD_STATE_WAIT) { /*Start char*/ 10120: 7802 ldrb r2, [r0, #0] 10122: b95a cbnz r2, 1013c <_lv_txt_is_cmd+0x20> *state = LV_TXT_CMD_STATE_PAR; 10124: 2301 movs r3, #1 *state = LV_TXT_CMD_STATE_WAIT; 10126: 7003 strb r3, [r0, #0] if(*state == LV_TXT_CMD_STATE_PAR) { 10128: 7802 ldrb r2, [r0, #0] 1012a: 2a01 cmp r2, #1 1012c: d104 bne.n 10138 <_lv_txt_is_cmd+0x1c> if(c == ' ') { 1012e: 2920 cmp r1, #32 *state = LV_TXT_CMD_STATE_IN; /*After the parameter the text is in the command*/ 10130: bf04 itt eq 10132: 2302 moveq r3, #2 10134: 7003 strbeq r3, [r0, #0] ret = true; 10136: 4613 mov r3, r2 } 10138: 4618 mov r0, r3 1013a: 4770 bx lr else if(*state == LV_TXT_CMD_STATE_PAR) { 1013c: 2a01 cmp r2, #1 1013e: f04f 0300 mov.w r3, #0 10142: d0f0 beq.n 10126 <_lv_txt_is_cmd+0xa> else if(*state == LV_TXT_CMD_STATE_IN) { 10144: 2a02 cmp r2, #2 10146: d1ef bne.n 10128 <_lv_txt_is_cmd+0xc> *state = LV_TXT_CMD_STATE_WAIT; 10148: 7003 strb r3, [r0, #0] ret = true; 1014a: 2301 movs r3, #1 1014c: e7ec b.n 10128 <_lv_txt_is_cmd+0xc> bool ret = false; 1014e: 2300 movs r3, #0 10150: e7ea b.n 10128 <_lv_txt_is_cmd+0xc> ... 00010154 <_lv_txt_get_width>: { 10154: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} 10158: 4688 mov r8, r1 1015a: b085 sub sp, #20 1015c: 4617 mov r7, r2 1015e: 461e mov r6, r3 if(txt == NULL) return 0; 10160: 4605 mov r5, r0 10162: 2400 movs r4, #0 10164: 2800 cmp r0, #0 10166: d03e beq.n 101e6 <_lv_txt_get_width+0x92> if(font == NULL) return 0; 10168: 2a00 cmp r2, #0 1016a: d03e beq.n 101ea <_lv_txt_get_width+0x96> uint32_t i = 0; 1016c: 9403 str r4, [sp, #12] lv_txt_cmd_state_t cmd_state = LV_TXT_CMD_STATE_WAIT; 1016e: f88d 400b strb.w r4, [sp, #11] if(length != 0) { 10172: 2900 cmp r1, #0 10174: d035 beq.n 101e2 <_lv_txt_get_width+0x8e> if((flag & LV_TXT_FLAG_RECOLOR) != 0) { 10176: f89d 9038 ldrb.w r9, [sp, #56] ; 0x38 uint32_t letter = _lv_txt_encoded_next(txt, &i); 1017a: f8df a07c ldr.w sl, [pc, #124] ; 101f8 <_lv_txt_get_width+0xa4> if((flag & LV_TXT_FLAG_RECOLOR) != 0) { 1017e: f009 0901 and.w r9, r9, #1 uint32_t letter = _lv_txt_encoded_next(txt, &i); 10182: f8da 3004 ldr.w r3, [sl, #4] 10186: a903 add r1, sp, #12 10188: 4628 mov r0, r5 1018a: 4798 blx r3 1018c: 4683 mov fp, r0 uint32_t letter_next = _lv_txt_encoded_next(&txt[i], NULL); 1018e: 9803 ldr r0, [sp, #12] 10190: f8da 2004 ldr.w r2, [sl, #4] 10194: 2100 movs r1, #0 10196: 4428 add r0, r5 10198: 4790 blx r2 1019a: 4602 mov r2, r0 if((flag & LV_TXT_FLAG_RECOLOR) != 0) { 1019c: f1b9 0f00 cmp.w r9, #0 101a0: d111 bne.n 101c6 <_lv_txt_get_width+0x72> lv_coord_t char_width = lv_font_get_glyph_width(font, letter, letter_next); 101a2: 4b13 ldr r3, [pc, #76] ; (101f0 <_lv_txt_get_width+0x9c>) 101a4: 4659 mov r1, fp 101a6: 4638 mov r0, r7 101a8: 4798 blx r3 if(char_width > 0) { 101aa: b203 sxth r3, r0 101ac: 2b00 cmp r3, #0 101ae: dc14 bgt.n 101da <_lv_txt_get_width+0x86> while(i < length) { 101b0: 9b03 ldr r3, [sp, #12] 101b2: 4598 cmp r8, r3 101b4: d8e5 bhi.n 10182 <_lv_txt_get_width+0x2e> if(width > 0) { 101b6: 2c00 cmp r4, #0 101b8: dd01 ble.n 101be <_lv_txt_get_width+0x6a> width -= letter_space; /*Trim the last letter space. Important if the text is center 101ba: 1ba6 subs r6, r4, r6 101bc: b234 sxth r4, r6 } 101be: 4620 mov r0, r4 101c0: b005 add sp, #20 101c2: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} 101c6: 9001 str r0, [sp, #4] if(_lv_txt_is_cmd(&cmd_state, letter) != false) { 101c8: 4b0a ldr r3, [pc, #40] ; (101f4 <_lv_txt_get_width+0xa0>) 101ca: 4659 mov r1, fp 101cc: f10d 000b add.w r0, sp, #11 101d0: 4798 blx r3 101d2: 9a01 ldr r2, [sp, #4] 101d4: 2800 cmp r0, #0 101d6: d0e4 beq.n 101a2 <_lv_txt_get_width+0x4e> 101d8: e7ea b.n 101b0 <_lv_txt_get_width+0x5c> width += letter_space; 101da: 4434 add r4, r6 101dc: 4420 add r0, r4 101de: b204 sxth r4, r0 101e0: e7e6 b.n 101b0 <_lv_txt_get_width+0x5c> lv_coord_t width = 0; 101e2: 460c mov r4, r1 101e4: e7eb b.n 101be <_lv_txt_get_width+0x6a> if(txt == NULL) return 0; 101e6: 4604 mov r4, r0 101e8: e7e9 b.n 101be <_lv_txt_get_width+0x6a> 101ea: 4614 mov r4, r2 101ec: e7e7 b.n 101be <_lv_txt_get_width+0x6a> 101ee: bf00 nop 101f0: 0000d3a1 .word 0x0000d3a1 101f4: 0001011d .word 0x0001011d 101f8: 20000048 .word 0x20000048 000101fc <_lv_txt_get_next_line>: { 101fc: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} 10200: b08f sub sp, #60 ; 0x3c 10202: 4699 mov r9, r3 10204: f89d 3060 ldrb.w r3, [sp, #96] ; 0x60 10208: 9102 str r1, [sp, #8] 1020a: 9204 str r2, [sp, #16] 1020c: 9303 str r3, [sp, #12] if(txt == NULL) return 0; 1020e: 4607 mov r7, r0 10210: b198 cbz r0, 1023a <_lv_txt_get_next_line+0x3e> if(font == NULL) return 0; 10212: 2900 cmp r1, #0 10214: f000 80d2 beq.w 103bc <_lv_txt_get_next_line+0x1c0> if((flag & LV_TXT_FLAG_EXPAND) || (flag & LV_TXT_FLAG_FIT)) { 10218: 9b03 ldr r3, [sp, #12] 1021a: f013 0312 ands.w r3, r3, #18 1021e: d00f beq.n 10240 <_lv_txt_get_next_line+0x44> for(i = 0; txt[i] != '\n' && txt[i] != '\r' && txt[i] != '\0'; i++) { 10220: 2000 movs r0, #0 10222: e000 b.n 10226 <_lv_txt_get_next_line+0x2a> 10224: 3001 adds r0, #1 10226: 5c3b ldrb r3, [r7, r0] 10228: 2b0a cmp r3, #10 1022a: f000 80c9 beq.w 103c0 <_lv_txt_get_next_line+0x1c4> 1022e: 2b0d cmp r3, #13 10230: f000 80c6 beq.w 103c0 <_lv_txt_get_next_line+0x1c4> 10234: 2b00 cmp r3, #0 10236: d1f5 bne.n 10224 <_lv_txt_get_next_line+0x28> return i; 10238: b280 uxth r0, r0 } 1023a: b00f add sp, #60 ; 0x3c 1023c: 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; 10240: 9a03 ldr r2, [sp, #12] lv_txt_cmd_state_t cmd_state = LV_TXT_CMD_STATE_WAIT; 10242: f88d 302b strb.w r3, [sp, #43] ; 0x2b if(flag & LV_TXT_FLAG_EXPAND) max_width = LV_COORD_MAX; 10246: f012 0202 ands.w r2, r2, #2 1024a: 9205 str r2, [sp, #20] 1024c: f647 4218 movw r2, #31768 ; 0x7c18 10250: bf18 it ne 10252: 4691 movne r9, r2 uint32_t i = 0; /* Iterating index into txt */ 10254: 930b str r3, [sp, #44] ; 0x2c while(txt[i] != '\0' && max_width > 0) { 10256: 9b0b ldr r3, [sp, #44] ; 0x2c 10258: 9300 str r3, [sp, #0] 1025a: eb07 0b03 add.w fp, r7, r3 1025e: 5cfb ldrb r3, [r7, r3] 10260: 2b00 cmp r3, #0 10262: f000 808e beq.w 10382 <_lv_txt_get_next_line+0x186> 10266: f1b9 0f00 cmp.w r9, #0 1026a: f340 808a ble.w 10382 <_lv_txt_get_next_line+0x186> if(flag & LV_TXT_FLAG_EXPAND) max_width = LV_COORD_MAX; 1026e: 9a05 ldr r2, [sp, #20] 10270: f647 4318 movw r3, #31768 ; 0x7c18 10274: 2a00 cmp r2, #0 10276: bf08 it eq 10278: 464b moveq r3, r9 1027a: 9307 str r3, [sp, #28] letter = _lv_txt_encoded_next(txt, &i_next); 1027c: 4b51 ldr r3, [pc, #324] ; (103c4 <_lv_txt_get_next_line+0x1c8>) uint32_t i = 0, i_next = 0, i_next_next = 0; /* Iterating index into txt */ 1027e: 2500 movs r5, #0 letter = _lv_txt_encoded_next(txt, &i_next); 10280: 685b ldr r3, [r3, #4] uint32_t i = 0, i_next = 0, i_next_next = 0; /* Iterating index into txt */ 10282: e9cd 550c strd r5, r5, [sp, #48] ; 0x30 letter = _lv_txt_encoded_next(txt, &i_next); 10286: a90c add r1, sp, #48 ; 0x30 10288: 4658 mov r0, fp 1028a: 4798 blx r3 i_next_next = i_next; 1028c: 9b0c ldr r3, [sp, #48] ; 0x30 1028e: 930d str r3, [sp, #52] ; 0x34 if((flag & LV_TXT_FLAG_RECOLOR) != 0) { 10290: 9b03 ldr r3, [sp, #12] uint32_t word_len = 0; /* Number of characters in the transversed word */ 10292: 9501 str r5, [sp, #4] if((flag & LV_TXT_FLAG_RECOLOR) != 0) { 10294: f003 0301 and.w r3, r3, #1 letter = _lv_txt_encoded_next(txt, &i_next); 10298: 4680 mov r8, r0 uint32_t break_index = NO_BREAK_FOUND; /* only used for "long" words */ 1029a: f04f 3aff mov.w sl, #4294967295 ; 0xffffffff lv_coord_t cur_w = 0; /* Pixel Width of transversed string */ 1029e: 462e mov r6, r5 uint32_t letter_next = 0; /* Letter at i_next */ 102a0: 462a mov r2, r5 uint32_t i = 0, i_next = 0, i_next_next = 0; /* Iterating index into txt */ 102a2: 462c mov r4, r5 if((flag & LV_TXT_FLAG_RECOLOR) != 0) { 102a4: 9308 str r3, [sp, #32] while(txt[i] != '\0') { 102a6: f81b 3004 ldrb.w r3, [fp, r4] 102aa: b943 cbnz r3, 102be <_lv_txt_get_next_line+0xc2> if(break_index == NO_BREAK_FOUND) { 102ac: f1ba 3fff cmp.w sl, #4294967295 ; 0xffffffff 102b0: d052 beq.n 10358 <_lv_txt_get_next_line+0x15c> if(force) return break_index; 102b2: 9b00 ldr r3, [sp, #0] 102b4: 2b00 cmp r3, #0 102b6: d16e bne.n 10396 <_lv_txt_get_next_line+0x19a> 102b8: fa1f f48a uxth.w r4, sl 102bc: e055 b.n 1036a <_lv_txt_get_next_line+0x16e> letter_next = _lv_txt_encoded_next(txt, &i_next_next); 102be: 4b41 ldr r3, [pc, #260] ; (103c4 <_lv_txt_get_next_line+0x1c8>) 102c0: a90d add r1, sp, #52 ; 0x34 102c2: 685b ldr r3, [r3, #4] 102c4: 4658 mov r0, fp 102c6: 4798 blx r3 word_len++; 102c8: 9b01 ldr r3, [sp, #4] 102ca: 3301 adds r3, #1 102cc: 9306 str r3, [sp, #24] if((flag & LV_TXT_FLAG_RECOLOR) != 0) { 102ce: 9b08 ldr r3, [sp, #32] letter_next = _lv_txt_encoded_next(txt, &i_next_next); 102d0: 4602 mov r2, r0 if((flag & LV_TXT_FLAG_RECOLOR) != 0) { 102d2: b173 cbz r3, 102f2 <_lv_txt_get_next_line+0xf6> 102d4: 9009 str r0, [sp, #36] ; 0x24 if(_lv_txt_is_cmd(cmd_state, letter) != false) { 102d6: 4b3c ldr r3, [pc, #240] ; (103c8 <_lv_txt_get_next_line+0x1cc>) 102d8: 4641 mov r1, r8 102da: f10d 002b add.w r0, sp, #43 ; 0x2b 102de: 4798 blx r3 102e0: 9a09 ldr r2, [sp, #36] ; 0x24 102e2: b130 cbz r0, 102f2 <_lv_txt_get_next_line+0xf6> i_next = i_next_next; 102e4: e9dd 430c ldrd r4, r3, [sp, #48] ; 0x30 102e8: 930c str r3, [sp, #48] ; 0x30 102ea: 9b06 ldr r3, [sp, #24] 102ec: 9301 str r3, [sp, #4] letter_next = _lv_txt_encoded_next(txt, &i_next_next); 102ee: 4690 mov r8, r2 102f0: e7d9 b.n 102a6 <_lv_txt_get_next_line+0xaa> letter_w = lv_font_get_glyph_width(font, letter, letter_next); 102f2: 4b36 ldr r3, [pc, #216] ; (103cc <_lv_txt_get_next_line+0x1d0>) 102f4: 9802 ldr r0, [sp, #8] 102f6: 9209 str r2, [sp, #36] ; 0x24 102f8: 4641 mov r1, r8 102fa: 4798 blx r3 cur_w += letter_w; 102fc: 4406 add r6, r0 if(letter_w > 0) { 102fe: b200 sxth r0, r0 10300: 2800 cmp r0, #0 cur_w += letter_space; 10302: bfc8 it gt 10304: 9b04 ldrgt r3, [sp, #16] if(letter_w > 0) { 10306: 9a09 ldr r2, [sp, #36] ; 0x24 cur_w += letter_w; 10308: b2b6 uxth r6, r6 cur_w += letter_space; 1030a: bfc4 itt gt 1030c: 18f6 addgt r6, r6, r3 1030e: b2b6 uxthgt r6, r6 if(break_index == NO_BREAK_FOUND && (cur_w - letter_space) > max_width) { 10310: f1ba 3fff cmp.w sl, #4294967295 ; 0xffffffff 10314: b236 sxth r6, r6 10316: d105 bne.n 10324 <_lv_txt_get_next_line+0x128> 10318: 9b04 ldr r3, [sp, #16] 1031a: 9907 ldr r1, [sp, #28] 1031c: 1af3 subs r3, r6, r3 1031e: 428b cmp r3, r1 10320: bfc8 it gt 10322: 46a2 movgt sl, r4 if(letter == '\n' || letter == '\r' || is_break_char(letter)) { 10324: f1b8 0f0a cmp.w r8, #10 10328: d010 beq.n 1034c <_lv_txt_get_next_line+0x150> 1032a: f1b8 0f0d cmp.w r8, #13 1032e: d00d beq.n 1034c <_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++) { 10330: 4827 ldr r0, [pc, #156] ; (103d0 <_lv_txt_get_next_line+0x1d4>) 10332: 2300 movs r3, #0 10334: b2d9 uxtb r1, r3 10336: 5c41 ldrb r1, [r0, r1] 10338: b921 cbnz r1, 10344 <_lv_txt_get_next_line+0x148> if(word_w_ptr != NULL && break_index == NO_BREAK_FOUND) *word_w_ptr = cur_w; 1033a: f1ba 3fff cmp.w sl, #4294967295 ; 0xffffffff 1033e: bf08 it eq 10340: 4635 moveq r5, r6 10342: e7cf b.n 102e4 <_lv_txt_get_next_line+0xe8> if(letter == (uint32_t)LV_TXT_BREAK_CHARS[i]) { 10344: 4588 cmp r8, r1 10346: f103 0301 add.w r3, r3, #1 1034a: d1f3 bne.n 10334 <_lv_txt_get_next_line+0x138> if(i == 0 && break_index == NO_BREAK_FOUND && word_w_ptr != NULL) *word_w_ptr = cur_w; 1034c: 2c00 cmp r4, #0 1034e: d1ad bne.n 102ac <_lv_txt_get_next_line+0xb0> 10350: f1ba 3fff cmp.w sl, #4294967295 ; 0xffffffff 10354: d1ad bne.n 102b2 <_lv_txt_get_next_line+0xb6> 10356: 4635 mov r5, r6 if(word_len == 0 || (letter == '\r' && letter_next == '\n')) i = i_next; 10358: 9b01 ldr r3, [sp, #4] 1035a: b123 cbz r3, 10366 <_lv_txt_get_next_line+0x16a> 1035c: f1b8 0f0d cmp.w r8, #13 10360: d102 bne.n 10368 <_lv_txt_get_next_line+0x16c> 10362: 2a0a cmp r2, #10 10364: d100 bne.n 10368 <_lv_txt_get_next_line+0x16c> 10366: 9c0c ldr r4, [sp, #48] ; 0x30 return i; 10368: b2a4 uxth r4, r4 max_width -= word_w; 1036a: eba9 0505 sub.w r5, r9, r5 if(i == 0) _lv_txt_encoded_next(txt, &i); // prevent inf loops 1036e: 9b0b ldr r3, [sp, #44] ; 0x2c max_width -= word_w; 10370: fa0f f985 sxth.w r9, r5 if(advance == 0) { 10374: b994 cbnz r4, 1039c <_lv_txt_get_next_line+0x1a0> if(i == 0) _lv_txt_encoded_next(txt, &i); // prevent inf loops 10376: b95b cbnz r3, 10390 <_lv_txt_get_next_line+0x194> 10378: 4b12 ldr r3, [pc, #72] ; (103c4 <_lv_txt_get_next_line+0x1c8>) 1037a: a90b add r1, sp, #44 ; 0x2c 1037c: 685b ldr r3, [r3, #4] 1037e: 4638 mov r0, r7 10380: 4798 blx r3 if(i == 0) { 10382: 9b0b ldr r3, [sp, #44] ; 0x2c 10384: b923 cbnz r3, 10390 <_lv_txt_get_next_line+0x194> _lv_txt_encoded_next(txt, &i); 10386: 4b0f ldr r3, [pc, #60] ; (103c4 <_lv_txt_get_next_line+0x1c8>) 10388: a90b add r1, sp, #44 ; 0x2c 1038a: 685b ldr r3, [r3, #4] 1038c: 4638 mov r0, r7 1038e: 4798 blx r3 return i; 10390: f8bd 002c ldrh.w r0, [sp, #44] ; 0x2c 10394: e751 b.n 1023a <_lv_txt_get_next_line+0x3e> if(word_w_ptr != NULL) *word_w_ptr = 0; /* Return no word */ 10396: 2500 movs r5, #0 return 0; 10398: 462c mov r4, r5 1039a: e7e6 b.n 1036a <_lv_txt_get_next_line+0x16e> i += advance; 1039c: 441c add r4, r3 if(txt[0] == '\n' || txt[0] == '\r') break; 1039e: 783b ldrb r3, [r7, #0] i += advance; 103a0: 940b str r4, [sp, #44] ; 0x2c if(txt[0] == '\n' || txt[0] == '\r') break; 103a2: 2b0a cmp r3, #10 103a4: d0ed beq.n 10382 <_lv_txt_get_next_line+0x186> 103a6: 2b0d cmp r3, #13 103a8: d0eb beq.n 10382 <_lv_txt_get_next_line+0x186> if(txt[i] == '\n' || txt[i] == '\r') { 103aa: 5d3b ldrb r3, [r7, r4] 103ac: 2b0a cmp r3, #10 103ae: d002 beq.n 103b6 <_lv_txt_get_next_line+0x1ba> 103b0: 2b0d cmp r3, #13 103b2: f47f af50 bne.w 10256 <_lv_txt_get_next_line+0x5a> i++; /* Include the following newline in the current line */ 103b6: 3401 adds r4, #1 103b8: 940b str r4, [sp, #44] ; 0x2c break; 103ba: e7e2 b.n 10382 <_lv_txt_get_next_line+0x186> if(txt == NULL) return 0; 103bc: 9802 ldr r0, [sp, #8] 103be: e73c b.n 1023a <_lv_txt_get_next_line+0x3e> if(txt[i] != '\0') i++; /*To go beyond `\n`*/ 103c0: 3001 adds r0, #1 103c2: e739 b.n 10238 <_lv_txt_get_next_line+0x3c> 103c4: 20000048 .word 0x20000048 103c8: 0001011d .word 0x0001011d 103cc: 0000d3a1 .word 0x0000d3a1 103d0: 0002bb66 .word 0x0002bb66 000103d4 <_lv_txt_get_size>: { 103d4: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} 103d8: b089 sub sp, #36 ; 0x24 size_res->x = 0; 103da: 2500 movs r5, #0 { 103dc: 4698 mov r8, r3 103de: f89d 3050 ldrb.w r3, [sp, #80] ; 0x50 103e2: f9bd b048 ldrsh.w fp, [sp, #72] ; 0x48 103e6: f9bd a04c ldrsh.w sl, [sp, #76] ; 0x4c 103ea: 9304 str r3, [sp, #16] 103ec: 4604 mov r4, r0 103ee: 4616 mov r6, r2 size_res->x = 0; 103f0: 8005 strh r5, [r0, #0] size_res->y = 0; 103f2: 8045 strh r5, [r0, #2] if(text == NULL) return; 103f4: 9103 str r1, [sp, #12] 103f6: b329 cbz r1, 10444 <_lv_txt_get_size+0x70> if(font == NULL) return; 103f8: b322 cbz r2, 10444 <_lv_txt_get_size+0x70> if(flag & LV_TXT_FLAG_EXPAND) max_width = LV_COORD_MAX; 103fa: 9b04 ldr r3, [sp, #16] 103fc: f013 0f02 tst.w r3, #2 10400: f647 4318 movw r3, #31768 ; 0x7c18 10404: bf18 it ne 10406: 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; 10408: f9b2 3008 ldrsh.w r3, [r2, #8] 1040c: 9306 str r3, [sp, #24] uint16_t letter_height = lv_font_get_line_height(font); 1040e: 8913 ldrh r3, [r2, #8] 10410: 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)) { 10412: 445b add r3, fp 10414: 9307 str r3, [sp, #28] while(text[line_start] != '\0') { 10416: 9b03 ldr r3, [sp, #12] 10418: eb03 0905 add.w r9, r3, r5 1041c: 5d5b ldrb r3, [r3, r5] 1041e: b9a3 cbnz r3, 1044a <_lv_txt_get_size+0x76> if((line_start != 0) && (text[line_start - 1] == '\n' || text[line_start - 1] == '\r')) { 10420: b155 cbz r5, 10438 <_lv_txt_get_size+0x64> 10422: f819 3c01 ldrb.w r3, [r9, #-1] 10426: 2b0a cmp r3, #10 10428: d001 beq.n 1042e <_lv_txt_get_size+0x5a> 1042a: 2b0d cmp r3, #13 1042c: d104 bne.n 10438 <_lv_txt_get_size+0x64> size_res->y += letter_height + line_space; 1042e: 9b05 ldr r3, [sp, #20] 10430: 8862 ldrh r2, [r4, #2] 10432: 445b add r3, fp 10434: 4413 add r3, r2 10436: 8063 strh r3, [r4, #2] if(size_res->y == 0) 10438: f9b4 3002 ldrsh.w r3, [r4, #2] 1043c: 2b00 cmp r3, #0 1043e: d131 bne.n 104a4 <_lv_txt_get_size+0xd0> size_res->y = letter_height; 10440: 9b06 ldr r3, [sp, #24] size_res->y -= line_space; 10442: 8063 strh r3, [r4, #2] } 10444: b009 add sp, #36 ; 0x24 10446: 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); 1044a: 9b04 ldr r3, [sp, #16] 1044c: 9300 str r3, [sp, #0] 1044e: 4642 mov r2, r8 10450: 4653 mov r3, sl 10452: 4631 mov r1, r6 10454: 4f15 ldr r7, [pc, #84] ; (104ac <_lv_txt_get_size+0xd8>) 10456: 4648 mov r0, r9 10458: 47b8 blx r7 if((unsigned long)size_res->y + (unsigned long)letter_height + (unsigned long)line_space > LV_MAX_OF(lv_coord_t)) { 1045a: f9b4 3002 ldrsh.w r3, [r4, #2] 1045e: 9a07 ldr r2, [sp, #28] 10460: 4413 add r3, r2 10462: f5b3 4f00 cmp.w r3, #32768 ; 0x8000 new_line_start += _lv_txt_get_next_line(&text[line_start], font, letter_space, max_width, flag); 10466: 4601 mov r1, r0 10468: 4405 add r5, r0 if((unsigned long)size_res->y + (unsigned long)letter_height + (unsigned long)line_space > LV_MAX_OF(lv_coord_t)) { 1046a: d30b bcc.n 10484 <_lv_txt_get_size+0xb0> LV_LOG_WARN("lv_txt_get_size: integer overflow while calculating text height"); 1046c: 4b10 ldr r3, [pc, #64] ; (104b0 <_lv_txt_get_size+0xdc>) 1046e: 4c11 ldr r4, [pc, #68] ; (104b4 <_lv_txt_get_size+0xe0>) 10470: 9312 str r3, [sp, #72] ; 0x48 10472: 4911 ldr r1, [pc, #68] ; (104b8 <_lv_txt_get_size+0xe4>) 10474: 4b11 ldr r3, [pc, #68] ; (104bc <_lv_txt_get_size+0xe8>) 10476: 2271 movs r2, #113 ; 0x71 10478: 2002 movs r0, #2 1047a: 46a4 mov ip, r4 } 1047c: b009 add sp, #36 ; 0x24 1047e: 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"); 10482: 4760 bx ip size_res->y += line_space; 10484: 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, 10486: 9b04 ldr r3, [sp, #16] 10488: 9300 str r3, [sp, #0] 1048a: 4648 mov r0, r9 1048c: 4643 mov r3, r8 1048e: f8df 9030 ldr.w r9, [pc, #48] ; 104c0 <_lv_txt_get_size+0xec> 10492: 4632 mov r2, r6 10494: 47c8 blx r9 size_res->x = LV_MATH_MAX(act_line_length, size_res->x); 10496: f9b4 3000 ldrsh.w r3, [r4] 1049a: 4298 cmp r0, r3 1049c: bfb8 it lt 1049e: 4618 movlt r0, r3 104a0: 8020 strh r0, [r4, #0] line_start = new_line_start; 104a2: e7b8 b.n 10416 <_lv_txt_get_size+0x42> size_res->y -= line_space; 104a4: eba3 030b sub.w r3, r3, fp 104a8: e7cb b.n 10442 <_lv_txt_get_size+0x6e> 104aa: bf00 nop 104ac: 000101fd .word 0x000101fd 104b0: 0002bb9d .word 0x0002bb9d 104b4: 0000eb21 .word 0x0000eb21 104b8: 0002bb6e .word 0x0002bb6e 104bc: 0002bbdd .word 0x0002bbdd 104c0: 00010155 .word 0x00010155 000104c4 <_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)) { 104c4: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} 104c8: 9d08 ldr r5, [sp, #32] 104ca: 4680 mov r8, r0 104cc: 460f mov r7, r1 104ce: 4614 mov r4, r2 104d0: 4699 mov r9, r3 const char * middle; int32_t c; for(middle = base; n != 0;) { 104d2: b90c cbnz r4, 104d8 <_lv_utils_bsearch+0x14> } else { return (char *)middle; } } return NULL; 104d4: 4626 mov r6, r4 104d6: e012 b.n 104fe <_lv_utils_bsearch+0x3a> middle += (n / 2) * size; 104d8: ea4f 0a54 mov.w sl, r4, lsr #1 104dc: fb09 760a mla r6, r9, sl, r7 if((c = (*cmp)(key, middle)) > 0) { 104e0: 4631 mov r1, r6 104e2: 4640 mov r0, r8 104e4: 47a8 blx r5 104e6: 2800 cmp r0, #0 104e8: dd08 ble.n 104fc <_lv_utils_bsearch+0x38> n = (n / 2) - ((n & 1) == 0); 104ea: 43e4 mvns r4, r4 104ec: f004 0401 and.w r4, r4, #1 104f0: ebaa 0a04 sub.w sl, sl, r4 base = (middle += size); 104f4: eb06 0709 add.w r7, r6, r9 { 104f8: 4654 mov r4, sl 104fa: e7ea b.n 104d2 <_lv_utils_bsearch+0xe> else if(c < 0) { 104fc: d1fc bne.n 104f8 <_lv_utils_bsearch+0x34> } 104fe: 4630 mov r0, r6 10500: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} 00010504 : * 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; 10504: 4b01 ldr r3, [pc, #4] ; (1050c ) 10506: 6018 str r0, [r3, #0] } 10508: 4770 bx lr 1050a: bf00 nop 1050c: 2000d16c .word 0x2000d16c 00010510 : * 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; 10510: 4b01 ldr r3, [pc, #4] ; (10518 ) 10512: 681b ldr r3, [r3, #0] } 10514: 68d8 ldr r0, [r3, #12] 10516: 4770 bx lr 10518: 2000d16c .word 0x2000d16c 0001051c : return act_theme->flags; } void lv_theme_apply(lv_obj_t * obj, lv_theme_style_t name) { act_theme->apply_xcb(obj, name); 1051c: 4b01 ldr r3, [pc, #4] ; (10524 ) 1051e: 681b ldr r3, [r3, #0] 10520: 681b ldr r3, [r3, #0] 10522: 4718 bx r3 10524: 2000d16c .word 0x2000d16c 00010528 : 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)), 10528: f3c0 1303 ubfx r3, r0, #4, #4 { 1052c: b510 push {r4, lr} return lv_color_make((uint8_t)(((c >> 4) & 0xF0) | ((c >> 8) & 0xF)), (uint8_t)((c & 0xF0) | ((c & 0xF0) >> 4)), 1052e: f000 01f0 and.w r1, r0, #240 ; 0xf0 10532: b2c4 uxtb r4, r0 10534: f3c0 1207 ubfx r2, r0, #4, #8 return LV_COLOR_MAKE(r, g, b); 10538: 4319 orrs r1, r3 (uint8_t)((c & 0xF) | ((c & 0xF) << 4))); 1053a: 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)), 1053e: ea43 1304 orr.w r3, r3, r4, lsl #4 10542: f022 020f bic.w r2, r2, #15 10546: 0889 lsrs r1, r1, #2 10548: ea42 2010 orr.w r0, r2, r0, lsr #8 1054c: f3c3 03c4 ubfx r3, r3, #3, #5 10550: ea43 1341 orr.w r3, r3, r1, lsl #5 10554: f3c0 00c4 ubfx r0, r0, #3, #5 } 10558: ea43 20c0 orr.w r0, r3, r0, lsl #11 1055c: bd10 pop {r4, pc} ... 00010560 : static void theme_apply(lv_obj_t * obj, lv_theme_style_t name) { lv_style_list_t * list; switch(name) { 10560: 3901 subs r1, #1 { 10562: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} 10566: 4604 mov r4, r0 switch(name) { 10568: 2927 cmp r1, #39 ; 0x27 1056a: d834 bhi.n 105d6 1056c: e8df f011 tbh [pc, r1, lsl #1] 10570: 00390028 .word 0x00390028 10574: 008200bb .word 0x008200bb 10578: 004f0044 .word 0x004f0044 1057c: 00b70347 .word 0x00b70347 10580: 0256010f .word 0x0256010f 10584: 036f0039 .word 0x036f0039 10588: 03950220 .word 0x03950220 1058c: 00b700b7 .word 0x00b700b7 10590: 00b70071 .word 0x00b70071 10594: 00b70151 .word 0x00b70151 10598: 021501f7 .word 0x021501f7 1059c: 012a0385 .word 0x012a0385 105a0: 01ef013b .word 0x01ef013b 105a4: 01d30166 .word 0x01d30166 105a8: 031b00eb .word 0x031b00eb 105ac: 00d70337 .word 0x00d70337 105b0: 02840098 .word 0x02840098 105b4: 01b9018e .word 0x01b9018e 105b8: 01c702f0 .word 0x01c702f0 105bc: 02e502be .word 0x02e502be case LV_THEME_NONE: break; case LV_THEME_SCR: lv_obj_clean_style_list(obj, LV_OBJ_PART_MAIN); 105c0: 4b99 ldr r3, [pc, #612] ; (10828 ) 105c2: 2100 movs r1, #0 105c4: 4798 blx r3 list = lv_obj_get_style_list(obj, LV_OBJ_PART_MAIN); 105c6: 4b99 ldr r3, [pc, #612] ; (1082c ) 105c8: 2100 movs r1, #0 105ca: 4620 mov r0, r4 105cc: 4798 blx r3 _lv_style_list_add_style(list, &styles->scr); 105ce: 4b98 ldr r3, [pc, #608] ; (10830 ) 105d0: 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); 105d2: 4b98 ldr r3, [pc, #608] ; (10834 ) 105d4: 4798 blx r3 #endif default: break; } lv_obj_refresh_style(obj, LV_STYLE_PROP_ALL); 105d6: 4620 mov r0, r4 105d8: 4b97 ldr r3, [pc, #604] ; (10838 ) } 105da: e8bd 47f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr} lv_obj_refresh_style(obj, LV_STYLE_PROP_ALL); 105de: 21ff movs r1, #255 ; 0xff 105e0: 4718 bx r3 lv_obj_clean_style_list(obj, LV_OBJ_PART_MAIN); 105e2: 4b91 ldr r3, [pc, #580] ; (10828 ) 105e4: 2100 movs r1, #0 105e6: 4798 blx r3 list = lv_obj_get_style_list(obj, LV_OBJ_PART_MAIN); 105e8: 4b90 ldr r3, [pc, #576] ; (1082c ) 105ea: 2100 movs r1, #0 105ec: 4620 mov r0, r4 105ee: 4798 blx r3 _lv_style_list_add_style(list, &styles->bg); 105f0: 4b8f ldr r3, [pc, #572] ; (10830 ) 105f2: 6819 ldr r1, [r3, #0] 105f4: 3104 adds r1, #4 105f6: e7ec b.n 105d2 lv_obj_clean_style_list(obj, LV_BTN_PART_MAIN); 105f8: 4b8b ldr r3, [pc, #556] ; (10828 ) 105fa: 2100 movs r1, #0 105fc: 4798 blx r3 list = lv_obj_get_style_list(obj, LV_BTN_PART_MAIN); 105fe: 4b8b ldr r3, [pc, #556] ; (1082c ) 10600: 2100 movs r1, #0 10602: 4620 mov r0, r4 10604: 4798 blx r3 _lv_style_list_add_style(list, &styles->btn); 10606: 4b8a ldr r3, [pc, #552] ; (10830 ) 10608: 6819 ldr r1, [r3, #0] 1060a: 3110 adds r1, #16 1060c: e7e1 b.n 105d2 _lv_style_list_add_style(list, &styles->bg); 1060e: 4e88 ldr r6, [pc, #544] ; (10830 ) lv_obj_clean_style_list(obj, LV_BTNMATRIX_PART_BG); 10610: f8df 9214 ldr.w r9, [pc, #532] ; 10828 list = lv_obj_get_style_list(obj, LV_BTNMATRIX_PART_BG); 10614: f8df 8214 ldr.w r8, [pc, #532] ; 1082c _lv_style_list_add_style(list, &styles->bg); 10618: 4d86 ldr r5, [pc, #536] ; (10834 ) lv_obj_clean_style_list(obj, LV_BTNMATRIX_PART_BG); 1061a: 2100 movs r1, #0 1061c: 47c8 blx r9 list = lv_obj_get_style_list(obj, LV_BTNMATRIX_PART_BG); 1061e: 2100 movs r1, #0 10620: 4620 mov r0, r4 10622: 47c0 blx r8 _lv_style_list_add_style(list, &styles->bg); 10624: 6831 ldr r1, [r6, #0] 10626: 3104 adds r1, #4 list = lv_obj_get_style_list(obj, LV_BTNMATRIX_PART_BG); 10628: 4607 mov r7, r0 _lv_style_list_add_style(list, &styles->bg); 1062a: 47a8 blx r5 _lv_style_list_add_style(list, &styles->pad_small); 1062c: 6831 ldr r1, [r6, #0] 1062e: 3118 adds r1, #24 _lv_style_list_add_style(list, &styles->kb_bg); 10630: 4638 mov r0, r7 10632: 47a8 blx r5 lv_obj_clean_style_list(obj, LV_KEYBOARD_PART_BTN); 10634: 2101 movs r1, #1 10636: 4620 mov r0, r4 10638: 47c8 blx r9 list = lv_obj_get_style_list(obj, LV_KEYBOARD_PART_BTN); 1063a: 2101 movs r1, #1 1063c: 4620 mov r0, r4 1063e: 47c0 blx r8 _lv_style_list_add_style(list, &styles->bg); 10640: 6831 ldr r1, [r6, #0] 10642: 3104 adds r1, #4 list = lv_obj_get_style_list(obj, LV_KEYBOARD_PART_BTN); 10644: 4607 mov r7, r0 _lv_style_list_add_style(list, &styles->bg); 10646: 47a8 blx r5 _lv_style_list_add_style(list, &styles->bg_click); 10648: 6831 ldr r1, [r6, #0] 1064a: 4638 mov r0, r7 1064c: 3108 adds r1, #8 _lv_style_list_add_style(list, &styles->gauge_needle); 1064e: 47a8 blx r5 break; 10650: e7c1 b.n 105d6 lv_obj_clean_style_list(obj, LV_KEYBOARD_PART_BG); 10652: 2100 movs r1, #0 10654: f8df 91d0 ldr.w r9, [pc, #464] ; 10828 list = lv_obj_get_style_list(obj, LV_KEYBOARD_PART_BG); 10658: f8df 81d0 ldr.w r8, [pc, #464] ; 1082c _lv_style_list_add_style(list, &styles->scr); 1065c: 4e74 ldr r6, [pc, #464] ; (10830 ) 1065e: 4d75 ldr r5, [pc, #468] ; (10834 ) lv_obj_clean_style_list(obj, LV_KEYBOARD_PART_BG); 10660: 47c8 blx r9 list = lv_obj_get_style_list(obj, LV_KEYBOARD_PART_BG); 10662: 2100 movs r1, #0 10664: 4620 mov r0, r4 10666: 47c0 blx r8 _lv_style_list_add_style(list, &styles->scr); 10668: 6831 ldr r1, [r6, #0] list = lv_obj_get_style_list(obj, LV_KEYBOARD_PART_BG); 1066a: 4607 mov r7, r0 _lv_style_list_add_style(list, &styles->scr); 1066c: 47a8 blx r5 _lv_style_list_add_style(list, &styles->kb_bg); 1066e: 6831 ldr r1, [r6, #0] 10670: 3168 adds r1, #104 ; 0x68 10672: e7dd b.n 10630 lv_obj_clean_style_list(obj, LV_BAR_PART_BG); 10674: f8df 81b0 ldr.w r8, [pc, #432] ; 10828 _lv_style_list_add_style(list, &styles->bar_bg); 10678: 4e6d ldr r6, [pc, #436] ; (10830 ) list = lv_obj_get_style_list(obj, LV_BAR_PART_BG); 1067a: 4f6c ldr r7, [pc, #432] ; (1082c ) _lv_style_list_add_style(list, &styles->bar_bg); 1067c: 4d6d ldr r5, [pc, #436] ; (10834 ) lv_obj_clean_style_list(obj, LV_BAR_PART_BG); 1067e: 2100 movs r1, #0 10680: 47c0 blx r8 list = lv_obj_get_style_list(obj, LV_BAR_PART_BG); 10682: 2100 movs r1, #0 10684: 4620 mov r0, r4 10686: 47b8 blx r7 _lv_style_list_add_style(list, &styles->bar_bg); 10688: 6831 ldr r1, [r6, #0] 1068a: 3124 adds r1, #36 ; 0x24 1068c: 47a8 blx r5 lv_obj_clean_style_list(obj, LV_BAR_PART_INDIC); 1068e: 2101 movs r1, #1 10690: 4620 mov r0, r4 10692: 47c0 blx r8 list = lv_obj_get_style_list(obj, LV_BAR_PART_INDIC); 10694: 2101 movs r1, #1 10696: 4620 mov r0, r4 10698: 47b8 blx r7 _lv_style_list_add_style(list, &styles->bar_indic); 1069a: 6831 ldr r1, [r6, #0] 1069c: 3128 adds r1, #40 ; 0x28 1069e: e7d6 b.n 1064e lv_obj_clean_style_list(obj, LV_SWITCH_PART_BG); 106a0: f8df 8184 ldr.w r8, [pc, #388] ; 10828 _lv_style_list_add_style(list, &styles->bar_bg); 106a4: 4e62 ldr r6, [pc, #392] ; (10830 ) list = lv_obj_get_style_list(obj, LV_SWITCH_PART_BG); 106a6: 4f61 ldr r7, [pc, #388] ; (1082c ) _lv_style_list_add_style(list, &styles->bar_bg); 106a8: 4d62 ldr r5, [pc, #392] ; (10834 ) lv_obj_clean_style_list(obj, LV_SWITCH_PART_BG); 106aa: 2100 movs r1, #0 106ac: 47c0 blx r8 list = lv_obj_get_style_list(obj, LV_SWITCH_PART_BG); 106ae: 2100 movs r1, #0 106b0: 4620 mov r0, r4 106b2: 47b8 blx r7 _lv_style_list_add_style(list, &styles->bar_bg); 106b4: 6831 ldr r1, [r6, #0] 106b6: 3124 adds r1, #36 ; 0x24 106b8: 47a8 blx r5 lv_obj_clean_style_list(obj, LV_SWITCH_PART_INDIC); 106ba: 2101 movs r1, #1 106bc: 4620 mov r0, r4 106be: 47c0 blx r8 list = lv_obj_get_style_list(obj, LV_SWITCH_PART_INDIC); 106c0: 2101 movs r1, #1 106c2: 4620 mov r0, r4 106c4: 47b8 blx r7 _lv_style_list_add_style(list, &styles->bar_indic); 106c6: 6831 ldr r1, [r6, #0] 106c8: 3128 adds r1, #40 ; 0x28 106ca: 47a8 blx r5 lv_obj_clean_style_list(obj, LV_SWITCH_PART_KNOB); 106cc: 2102 movs r1, #2 106ce: 4620 mov r0, r4 106d0: 47c0 blx r8 list = lv_obj_get_style_list(obj, LV_SWITCH_PART_KNOB); 106d2: 2102 movs r1, #2 106d4: 4620 mov r0, r4 106d6: 47b8 blx r7 _lv_style_list_add_style(list, &styles->sw_knob); 106d8: 6831 ldr r1, [r6, #0] 106da: 319c adds r1, #156 ; 0x9c 106dc: e7b7 b.n 1064e lv_obj_clean_style_list(obj, LV_CANVAS_PART_MAIN); 106de: 4b52 ldr r3, [pc, #328] ; (10828 ) 106e0: 2100 movs r1, #0 106e2: 4798 blx r3 break; 106e4: e777 b.n 105d6 lv_obj_clean_style_list(obj, LV_ARC_PART_BG); 106e6: f8df 9140 ldr.w r9, [pc, #320] ; 10828 _lv_style_list_add_style(list, &styles->bg); 106ea: 4e51 ldr r6, [pc, #324] ; (10830 ) list = lv_obj_get_style_list(obj, LV_ARC_PART_BG); 106ec: f8df 813c ldr.w r8, [pc, #316] ; 1082c _lv_style_list_add_style(list, &styles->bg); 106f0: 4d50 ldr r5, [pc, #320] ; (10834 ) lv_obj_clean_style_list(obj, LV_ARC_PART_BG); 106f2: 2100 movs r1, #0 106f4: 47c8 blx r9 list = lv_obj_get_style_list(obj, LV_ARC_PART_BG); 106f6: 2100 movs r1, #0 106f8: 4620 mov r0, r4 106fa: 47c0 blx r8 _lv_style_list_add_style(list, &styles->bg); 106fc: 6831 ldr r1, [r6, #0] 106fe: 3104 adds r1, #4 list = lv_obj_get_style_list(obj, LV_ARC_PART_BG); 10700: 4607 mov r7, r0 _lv_style_list_add_style(list, &styles->bg); 10702: 47a8 blx r5 _lv_style_list_add_style(list, &styles->arc_bg); 10704: 6831 ldr r1, [r6, #0] 10706: 4638 mov r0, r7 10708: 3120 adds r1, #32 1070a: 47a8 blx r5 lv_obj_clean_style_list(obj, LV_ARC_PART_INDIC); 1070c: 2101 movs r1, #1 1070e: 4620 mov r0, r4 10710: 47c8 blx r9 list = lv_obj_get_style_list(obj, LV_ARC_PART_INDIC); 10712: 2101 movs r1, #1 10714: 4620 mov r0, r4 10716: 47c0 blx r8 _lv_style_list_add_style(list, &styles->arc_indic); 10718: 6831 ldr r1, [r6, #0] 1071a: 311c adds r1, #28 1071c: e797 b.n 1064e lv_obj_clean_style_list(obj, LV_SPINNER_PART_BG); 1071e: f8df 8108 ldr.w r8, [pc, #264] ; 10828 _lv_style_list_add_style(list, &styles->arc_bg); 10722: 4e43 ldr r6, [pc, #268] ; (10830 ) list = lv_obj_get_style_list(obj, LV_SPINNER_PART_BG); 10724: 4f41 ldr r7, [pc, #260] ; (1082c ) _lv_style_list_add_style(list, &styles->arc_bg); 10726: 4d43 ldr r5, [pc, #268] ; (10834 ) lv_obj_clean_style_list(obj, LV_SPINNER_PART_BG); 10728: 2100 movs r1, #0 1072a: 47c0 blx r8 list = lv_obj_get_style_list(obj, LV_SPINNER_PART_BG); 1072c: 2100 movs r1, #0 1072e: 4620 mov r0, r4 10730: 47b8 blx r7 _lv_style_list_add_style(list, &styles->arc_bg); 10732: 6831 ldr r1, [r6, #0] 10734: 3120 adds r1, #32 10736: 47a8 blx r5 lv_obj_clean_style_list(obj, LV_SPINNER_PART_INDIC); 10738: 4620 mov r0, r4 1073a: 2101 movs r1, #1 1073c: 47c0 blx r8 list = lv_obj_get_style_list(obj, LV_SPINNER_PART_INDIC); 1073e: 2101 movs r1, #1 10740: 4620 mov r0, r4 10742: 47b8 blx r7 10744: e7e8 b.n 10718 _lv_style_list_add_style(list, &styles->bar_bg); 10746: 4e3a ldr r6, [pc, #232] ; (10830 ) lv_obj_clean_style_list(obj, LV_SLIDER_PART_BG); 10748: f8df 80dc ldr.w r8, [pc, #220] ; 10828 list = lv_obj_get_style_list(obj, LV_SLIDER_PART_BG); 1074c: 4f37 ldr r7, [pc, #220] ; (1082c ) _lv_style_list_add_style(list, &styles->bar_bg); 1074e: 4d39 ldr r5, [pc, #228] ; (10834 ) lv_obj_clean_style_list(obj, LV_SLIDER_PART_BG); 10750: 2100 movs r1, #0 10752: 47c0 blx r8 list = lv_obj_get_style_list(obj, LV_SLIDER_PART_BG); 10754: 2100 movs r1, #0 10756: 4620 mov r0, r4 10758: 47b8 blx r7 _lv_style_list_add_style(list, &styles->bar_bg); 1075a: 6831 ldr r1, [r6, #0] 1075c: 3124 adds r1, #36 ; 0x24 list = lv_obj_get_style_list(obj, LV_SLIDER_PART_BG); 1075e: 4681 mov r9, r0 _lv_style_list_add_style(list, &styles->bar_bg); 10760: 47a8 blx r5 _lv_style_list_add_style(list, &styles->slider_bg); 10762: 6831 ldr r1, [r6, #0] 10764: 4648 mov r0, r9 10766: 3194 adds r1, #148 ; 0x94 10768: 47a8 blx r5 lv_obj_clean_style_list(obj, LV_SLIDER_PART_INDIC); 1076a: 2101 movs r1, #1 1076c: 4620 mov r0, r4 1076e: 47c0 blx r8 list = lv_obj_get_style_list(obj, LV_SLIDER_PART_INDIC); 10770: 2101 movs r1, #1 10772: 4620 mov r0, r4 10774: 47b8 blx r7 _lv_style_list_add_style(list, &styles->bar_indic); 10776: 6831 ldr r1, [r6, #0] 10778: 3128 adds r1, #40 ; 0x28 1077a: 47a8 blx r5 lv_obj_clean_style_list(obj, LV_SLIDER_PART_KNOB); 1077c: 2102 movs r1, #2 1077e: 4620 mov r0, r4 10780: 47c0 blx r8 list = lv_obj_get_style_list(obj, LV_SLIDER_PART_KNOB); 10782: 2102 movs r1, #2 10784: 4620 mov r0, r4 10786: 47b8 blx r7 _lv_style_list_add_style(list, &styles->slider_knob); 10788: 6831 ldr r1, [r6, #0] 1078a: 3190 adds r1, #144 ; 0x90 1078c: e75f b.n 1064e _lv_style_list_add_style(list, &styles->cb_bg); 1078e: 4f28 ldr r7, [pc, #160] ; (10830 ) lv_obj_clean_style_list(obj, LV_CHECKBOX_PART_BG); 10790: f8df 8094 ldr.w r8, [pc, #148] ; 10828 list = lv_obj_get_style_list(obj, LV_CHECKBOX_PART_BG); 10794: 4e25 ldr r6, [pc, #148] ; (1082c ) _lv_style_list_add_style(list, &styles->cb_bg); 10796: 4d27 ldr r5, [pc, #156] ; (10834 ) lv_obj_clean_style_list(obj, LV_CHECKBOX_PART_BG); 10798: 2100 movs r1, #0 1079a: 47c0 blx r8 list = lv_obj_get_style_list(obj, LV_CHECKBOX_PART_BG); 1079c: 2100 movs r1, #0 1079e: 4620 mov r0, r4 107a0: 47b0 blx r6 _lv_style_list_add_style(list, &styles->cb_bg); 107a2: 6839 ldr r1, [r7, #0] 107a4: 314c adds r1, #76 ; 0x4c 107a6: 47a8 blx r5 lv_obj_clean_style_list(obj, LV_CHECKBOX_PART_BULLET); 107a8: 2140 movs r1, #64 ; 0x40 107aa: 4620 mov r0, r4 107ac: 47c0 blx r8 list = lv_obj_get_style_list(obj, LV_CHECKBOX_PART_BULLET); 107ae: 2140 movs r1, #64 ; 0x40 107b0: 4620 mov r0, r4 107b2: 47b0 blx r6 _lv_style_list_add_style(list, &styles->btn); 107b4: 6839 ldr r1, [r7, #0] 107b6: 3110 adds r1, #16 list = lv_obj_get_style_list(obj, LV_CHECKBOX_PART_BULLET); 107b8: 4606 mov r6, r0 _lv_style_list_add_style(list, &styles->btn); 107ba: 47a8 blx r5 _lv_style_list_add_style(list, &styles->cb_bullet); 107bc: 6839 ldr r1, [r7, #0] 107be: 4630 mov r0, r6 107c0: 3150 adds r1, #80 ; 0x50 107c2: e744 b.n 1064e lv_obj_clean_style_list(obj, LV_MSGBOX_PART_BG); 107c4: 4b18 ldr r3, [pc, #96] ; (10828 ) _lv_style_list_add_style(list, &styles->bg); 107c6: 4f1a ldr r7, [pc, #104] ; (10830 ) 107c8: 4e1a ldr r6, [pc, #104] ; (10834 ) lv_obj_clean_style_list(obj, LV_MSGBOX_PART_BG); 107ca: 2100 movs r1, #0 107cc: 4798 blx r3 list = lv_obj_get_style_list(obj, LV_MSGBOX_PART_BG); 107ce: 4b17 ldr r3, [pc, #92] ; (1082c ) 107d0: 2100 movs r1, #0 107d2: 4620 mov r0, r4 107d4: 4798 blx r3 _lv_style_list_add_style(list, &styles->bg); 107d6: 6839 ldr r1, [r7, #0] 107d8: 3104 adds r1, #4 list = lv_obj_get_style_list(obj, LV_MSGBOX_PART_BG); 107da: 4605 mov r5, r0 _lv_style_list_add_style(list, &styles->bg); 107dc: 47b0 blx r6 _lv_style_list_add_style(list, &styles->mbox_bg); 107de: 6839 ldr r1, [r7, #0] 107e0: 317c adds r1, #124 ; 0x7c _lv_style_list_add_style(list, &styles->lmeter); 107e2: 4628 mov r0, r5 107e4: e07b b.n 108de lv_obj_clean_style_list(obj, LV_MSGBOX_PART_BTN_BG); 107e6: f8df 8040 ldr.w r8, [pc, #64] ; 10828 _lv_style_list_add_style(list, &styles->pad_small); 107ea: 4e11 ldr r6, [pc, #68] ; (10830 ) list = lv_obj_get_style_list(obj, LV_MSGBOX_PART_BTN_BG); 107ec: 4f0f ldr r7, [pc, #60] ; (1082c ) _lv_style_list_add_style(list, &styles->pad_small); 107ee: 4d11 ldr r5, [pc, #68] ; (10834 ) lv_obj_clean_style_list(obj, LV_MSGBOX_PART_BTN_BG); 107f0: 2140 movs r1, #64 ; 0x40 107f2: 47c0 blx r8 list = lv_obj_get_style_list(obj, LV_MSGBOX_PART_BTN_BG); 107f4: 2140 movs r1, #64 ; 0x40 107f6: 4620 mov r0, r4 107f8: 47b8 blx r7 _lv_style_list_add_style(list, &styles->pad_small); 107fa: 6831 ldr r1, [r6, #0] 107fc: 3118 adds r1, #24 107fe: 47a8 blx r5 lv_obj_clean_style_list(obj, LV_MSGBOX_PART_BTN); 10800: 2141 movs r1, #65 ; 0x41 10802: 4620 mov r0, r4 10804: 47c0 blx r8 list = lv_obj_get_style_list(obj, LV_MSGBOX_PART_BTN); 10806: 2141 movs r1, #65 ; 0x41 10808: 4620 mov r0, r4 1080a: 47b8 blx r7 _lv_style_list_add_style(list, &styles->btn); 1080c: 6831 ldr r1, [r6, #0] 1080e: 3110 adds r1, #16 10810: e71d b.n 1064e lv_obj_clean_style_list(obj, LV_LED_PART_MAIN); 10812: 4b05 ldr r3, [pc, #20] ; (10828 ) 10814: 2100 movs r1, #0 10816: 4798 blx r3 list = lv_obj_get_style_list(obj, LV_LED_PART_MAIN); 10818: 4b04 ldr r3, [pc, #16] ; (1082c ) 1081a: 2100 movs r1, #0 1081c: 4620 mov r0, r4 1081e: 4798 blx r3 _lv_style_list_add_style(list, &styles->led); 10820: 4b03 ldr r3, [pc, #12] ; (10830 ) 10822: 6819 ldr r1, [r3, #0] 10824: 316c adds r1, #108 ; 0x6c 10826: e6d4 b.n 105d2 10828: 00002775 .word 0x00002775 1082c: 000026b9 .word 0x000026b9 10830: 2000d170 .word 0x2000d170 10834: 00005845 .word 0x00005845 10838: 00002fbd .word 0x00002fbd lv_obj_clean_style_list(obj, LV_PAGE_PART_BG); 1083c: f8df 82a8 ldr.w r8, [pc, #680] ; 10ae8 _lv_style_list_add_style(list, &styles->bg); 10840: 4ea6 ldr r6, [pc, #664] ; (10adc ) list = lv_obj_get_style_list(obj, LV_PAGE_PART_BG); 10842: 4fa7 ldr r7, [pc, #668] ; (10ae0 ) _lv_style_list_add_style(list, &styles->bg); 10844: 4da7 ldr r5, [pc, #668] ; (10ae4 ) lv_obj_clean_style_list(obj, LV_PAGE_PART_BG); 10846: 2100 movs r1, #0 10848: 47c0 blx r8 list = lv_obj_get_style_list(obj, LV_PAGE_PART_BG); 1084a: 2100 movs r1, #0 1084c: 4620 mov r0, r4 1084e: 47b8 blx r7 _lv_style_list_add_style(list, &styles->bg); 10850: 6831 ldr r1, [r6, #0] 10852: 3104 adds r1, #4 10854: 47a8 blx r5 lv_obj_clean_style_list(obj, LV_PAGE_PART_SCROLLABLE); 10856: 2140 movs r1, #64 ; 0x40 10858: 4620 mov r0, r4 1085a: 47c0 blx r8 list = lv_obj_get_style_list(obj, LV_PAGE_PART_SCROLLABLE); 1085c: 2140 movs r1, #64 ; 0x40 1085e: 4620 mov r0, r4 10860: 47b8 blx r7 _lv_style_list_add_style(list, &styles->pad_inner); 10862: 6831 ldr r1, [r6, #0] 10864: 3114 adds r1, #20 _lv_style_list_add_style(list, &styles->scr); 10866: 47a8 blx r5 lv_obj_clean_style_list(obj, LV_TILEVIEW_PART_SCROLLBAR); 10868: 2101 movs r1, #1 1086a: 4620 mov r0, r4 1086c: 47c0 blx r8 list = lv_obj_get_style_list(obj, LV_TILEVIEW_PART_SCROLLBAR); 1086e: 2101 movs r1, #1 10870: 4620 mov r0, r4 10872: 47b8 blx r7 _lv_style_list_add_style(list, &styles->sb); 10874: 6831 ldr r1, [r6, #0] 10876: 3180 adds r1, #128 ; 0x80 10878: 47a8 blx r5 lv_obj_clean_style_list(obj, LV_TILEVIEW_PART_EDGE_FLASH); 1087a: 2102 movs r1, #2 1087c: 4620 mov r0, r4 1087e: 47c0 blx r8 list = lv_obj_get_style_list(obj, LV_TILEVIEW_PART_EDGE_FLASH); 10880: 2102 movs r1, #2 10882: 4620 mov r0, r4 10884: 47b8 blx r7 _lv_style_list_add_style(list, &styles->edge_flash); 10886: 6831 ldr r1, [r6, #0] 10888: 3184 adds r1, #132 ; 0x84 1088a: e6e0 b.n 1064e lv_obj_clean_style_list(obj, LV_TABVIEW_PART_BG); 1088c: 4d96 ldr r5, [pc, #600] ; (10ae8 ) _lv_style_list_add_style(list, &styles->scr); 1088e: 4f93 ldr r7, [pc, #588] ; (10adc ) list = lv_obj_get_style_list(obj, LV_TABVIEW_PART_BG); 10890: f8df 824c ldr.w r8, [pc, #588] ; 10ae0 _lv_style_list_add_style(list, &styles->scr); 10894: 4e93 ldr r6, [pc, #588] ; (10ae4 ) lv_obj_clean_style_list(obj, LV_TABVIEW_PART_BG); 10896: 2100 movs r1, #0 10898: 47a8 blx r5 list = lv_obj_get_style_list(obj, LV_TABVIEW_PART_BG); 1089a: 2100 movs r1, #0 1089c: 4620 mov r0, r4 1089e: 47c0 blx r8 _lv_style_list_add_style(list, &styles->scr); 108a0: 6839 ldr r1, [r7, #0] 108a2: 47b0 blx r6 lv_obj_clean_style_list(obj, LV_TABVIEW_PART_BG_SCRLLABLE); 108a4: 2140 movs r1, #64 ; 0x40 108a6: 4620 mov r0, r4 108a8: 47a8 blx r5 lv_obj_clean_style_list(obj, LV_TABVIEW_PART_TAB_BG); 108aa: 2141 movs r1, #65 ; 0x41 108ac: 4620 mov r0, r4 108ae: 47a8 blx r5 list = lv_obj_get_style_list(obj, LV_TABVIEW_PART_TAB_BG); 108b0: 2141 movs r1, #65 ; 0x41 108b2: 4620 mov r0, r4 108b4: 47c0 blx r8 _lv_style_list_add_style(list, &styles->tabview_btns_bg); 108b6: 6839 ldr r1, [r7, #0] 108b8: 31a8 adds r1, #168 ; 0xa8 108ba: 47b0 blx r6 lv_obj_clean_style_list(obj, LV_TABVIEW_PART_INDIC); 108bc: 2143 movs r1, #67 ; 0x43 108be: 4620 mov r0, r4 108c0: 47a8 blx r5 list = lv_obj_get_style_list(obj, LV_TABVIEW_PART_INDIC); 108c2: 2143 movs r1, #67 ; 0x43 108c4: 4620 mov r0, r4 108c6: 47c0 blx r8 _lv_style_list_add_style(list, &styles->tabview_indic); 108c8: 6839 ldr r1, [r7, #0] 108ca: 31ac adds r1, #172 ; 0xac 108cc: 47b0 blx r6 lv_obj_clean_style_list(obj, LV_TABVIEW_PART_TAB_BTN); 108ce: 2142 movs r1, #66 ; 0x42 108d0: 4620 mov r0, r4 108d2: 47a8 blx r5 list = lv_obj_get_style_list(obj, LV_TABVIEW_PART_TAB_BTN); 108d4: 2142 movs r1, #66 ; 0x42 108d6: 4620 mov r0, r4 108d8: 47c0 blx r8 _lv_style_list_add_style(list, &styles->tabview_btns); 108da: 6839 ldr r1, [r7, #0] 108dc: 31a4 adds r1, #164 ; 0xa4 _lv_style_list_add_style(list, &styles->lmeter); 108de: 47b0 blx r6 break; 108e0: e679 b.n 105d6 lv_obj_clean_style_list(obj, LV_PAGE_PART_BG); 108e2: 4d81 ldr r5, [pc, #516] ; (10ae8 ) 108e4: 2100 movs r1, #0 108e6: 47a8 blx r5 lv_obj_clean_style_list(obj, LV_PAGE_PART_SCROLLABLE); 108e8: 2140 movs r1, #64 ; 0x40 108ea: 4620 mov r0, r4 108ec: 47a8 blx r5 list = lv_obj_get_style_list(obj, LV_PAGE_PART_SCROLLABLE); 108ee: 4b7c ldr r3, [pc, #496] ; (10ae0 ) 108f0: 2140 movs r1, #64 ; 0x40 108f2: 4620 mov r0, r4 108f4: 4798 blx r3 _lv_style_list_add_style(list, &styles->tabview_page_scrl); 108f6: 4b79 ldr r3, [pc, #484] ; (10adc ) 108f8: 6819 ldr r1, [r3, #0] 108fa: 31b0 adds r1, #176 ; 0xb0 108fc: e669 b.n 105d2 lv_obj_clean_style_list(obj, LV_TILEVIEW_PART_BG); 108fe: 2100 movs r1, #0 10900: f8df 81e4 ldr.w r8, [pc, #484] ; 10ae8 _lv_style_list_add_style(list, &styles->scr); 10904: 4e75 ldr r6, [pc, #468] ; (10adc ) list = lv_obj_get_style_list(obj, LV_TILEVIEW_PART_BG); 10906: 4f76 ldr r7, [pc, #472] ; (10ae0 ) _lv_style_list_add_style(list, &styles->scr); 10908: 4d76 ldr r5, [pc, #472] ; (10ae4 ) lv_obj_clean_style_list(obj, LV_TILEVIEW_PART_BG); 1090a: 47c0 blx r8 list = lv_obj_get_style_list(obj, LV_TILEVIEW_PART_BG); 1090c: 2100 movs r1, #0 1090e: 4620 mov r0, r4 10910: 47b8 blx r7 _lv_style_list_add_style(list, &styles->scr); 10912: 6831 ldr r1, [r6, #0] 10914: e7a7 b.n 10866 _lv_style_list_add_style(list, &styles->bg); 10916: 4e71 ldr r6, [pc, #452] ; (10adc ) lv_obj_clean_style_list(obj, LV_ROLLER_PART_BG); 10918: f8df 91cc ldr.w r9, [pc, #460] ; 10ae8 list = lv_obj_get_style_list(obj, LV_ROLLER_PART_BG); 1091c: f8df 81c0 ldr.w r8, [pc, #448] ; 10ae0 _lv_style_list_add_style(list, &styles->bg); 10920: 4d70 ldr r5, [pc, #448] ; (10ae4 ) lv_obj_clean_style_list(obj, LV_ROLLER_PART_BG); 10922: 2100 movs r1, #0 10924: 47c8 blx r9 list = lv_obj_get_style_list(obj, LV_ROLLER_PART_BG); 10926: 2100 movs r1, #0 10928: 4620 mov r0, r4 1092a: 47c0 blx r8 _lv_style_list_add_style(list, &styles->bg); 1092c: 6831 ldr r1, [r6, #0] 1092e: 3104 adds r1, #4 list = lv_obj_get_style_list(obj, LV_ROLLER_PART_BG); 10930: 4607 mov r7, r0 _lv_style_list_add_style(list, &styles->bg); 10932: 47a8 blx r5 _lv_style_list_add_style(list, &styles->roller_bg); 10934: 6831 ldr r1, [r6, #0] 10936: 4638 mov r0, r7 10938: 3188 adds r1, #136 ; 0x88 1093a: 47a8 blx r5 lv_obj_clean_style_list(obj, LV_ROLLER_PART_SELECTED); 1093c: 2103 movs r1, #3 1093e: 4620 mov r0, r4 10940: 47c8 blx r9 list = lv_obj_get_style_list(obj, LV_ROLLER_PART_SELECTED); 10942: 2103 movs r1, #3 10944: 4620 mov r0, r4 10946: 47c0 blx r8 _lv_style_list_add_style(list, &styles->roller_sel); 10948: 6831 ldr r1, [r6, #0] 1094a: 318c adds r1, #140 ; 0x8c 1094c: e67f b.n 1064e lv_obj_clean_style_list(obj, LV_OBJMASK_PART_MAIN); 1094e: 4b66 ldr r3, [pc, #408] ; (10ae8 ) 10950: 2100 movs r1, #0 10952: 4798 blx r3 list = lv_obj_get_style_list(obj, LV_OBJMASK_PART_MAIN); 10954: 4b62 ldr r3, [pc, #392] ; (10ae0 ) 10956: 2100 movs r1, #0 10958: 4620 mov r0, r4 1095a: 4798 blx r3 break; 1095c: e63b b.n 105d6 lv_obj_clean_style_list(obj, LV_LIST_PART_BG); 1095e: 4f62 ldr r7, [pc, #392] ; (10ae8 ) _lv_style_list_add_style(list, &styles->bg); 10960: 4e5e ldr r6, [pc, #376] ; (10adc ) list = lv_obj_get_style_list(obj, LV_LIST_PART_BG); 10962: f8df 917c ldr.w r9, [pc, #380] ; 10ae0 _lv_style_list_add_style(list, &styles->bg); 10966: 4d5f ldr r5, [pc, #380] ; (10ae4 ) lv_obj_clean_style_list(obj, LV_LIST_PART_BG); 10968: 2100 movs r1, #0 1096a: 47b8 blx r7 list = lv_obj_get_style_list(obj, LV_LIST_PART_BG); 1096c: 2100 movs r1, #0 1096e: 4620 mov r0, r4 10970: 47c8 blx r9 _lv_style_list_add_style(list, &styles->bg); 10972: 6831 ldr r1, [r6, #0] 10974: 3104 adds r1, #4 list = lv_obj_get_style_list(obj, LV_LIST_PART_BG); 10976: 4680 mov r8, r0 _lv_style_list_add_style(list, &styles->bg); 10978: 47a8 blx r5 _lv_style_list_add_style(list, &styles->list_bg); 1097a: 6831 ldr r1, [r6, #0] 1097c: 4640 mov r0, r8 1097e: 3174 adds r1, #116 ; 0x74 10980: 47a8 blx r5 lv_obj_clean_style_list(obj, LV_LIST_PART_SCROLLABLE); 10982: 2140 movs r1, #64 ; 0x40 10984: 4620 mov r0, r4 10986: 47b8 blx r7 lv_obj_clean_style_list(obj, LV_LIST_PART_SCROLLBAR); 10988: 2101 movs r1, #1 1098a: 4620 mov r0, r4 1098c: 47b8 blx r7 list = lv_obj_get_style_list(obj, LV_LIST_PART_SCROLLBAR); 1098e: 2101 movs r1, #1 10990: 4620 mov r0, r4 10992: 47c8 blx r9 _lv_style_list_add_style(list, &styles->sb); 10994: 6831 ldr r1, [r6, #0] 10996: 3180 adds r1, #128 ; 0x80 10998: e659 b.n 1064e lv_obj_clean_style_list(obj, LV_BTN_PART_MAIN); 1099a: 4b53 ldr r3, [pc, #332] ; (10ae8 ) 1099c: 2100 movs r1, #0 1099e: 4798 blx r3 list = lv_obj_get_style_list(obj, LV_BTN_PART_MAIN); 109a0: 4b4f ldr r3, [pc, #316] ; (10ae0 ) 109a2: 2100 movs r1, #0 109a4: 4620 mov r0, r4 109a6: 4798 blx r3 _lv_style_list_add_style(list, &styles->list_btn); 109a8: 4b4c ldr r3, [pc, #304] ; (10adc ) 109aa: 6819 ldr r1, [r3, #0] 109ac: 3178 adds r1, #120 ; 0x78 109ae: e610 b.n 105d2 _lv_style_list_add_style(list, &styles->bg); 109b0: 4e4a ldr r6, [pc, #296] ; (10adc ) lv_obj_clean_style_list(obj, LV_DROPDOWN_PART_MAIN); 109b2: f8df 8134 ldr.w r8, [pc, #308] ; 10ae8 list = lv_obj_get_style_list(obj, LV_DROPDOWN_PART_MAIN); 109b6: 4f4a ldr r7, [pc, #296] ; (10ae0 ) _lv_style_list_add_style(list, &styles->bg); 109b8: 4d4a ldr r5, [pc, #296] ; (10ae4 ) lv_obj_clean_style_list(obj, LV_DROPDOWN_PART_MAIN); 109ba: 2100 movs r1, #0 109bc: 47c0 blx r8 list = lv_obj_get_style_list(obj, LV_DROPDOWN_PART_MAIN); 109be: 2100 movs r1, #0 109c0: 4620 mov r0, r4 109c2: 47b8 blx r7 _lv_style_list_add_style(list, &styles->bg); 109c4: 6831 ldr r1, [r6, #0] 109c6: 3104 adds r1, #4 list = lv_obj_get_style_list(obj, LV_DROPDOWN_PART_MAIN); 109c8: 4681 mov r9, r0 _lv_style_list_add_style(list, &styles->bg); 109ca: 47a8 blx r5 _lv_style_list_add_style(list, &styles->bg_click); 109cc: 6831 ldr r1, [r6, #0] 109ce: 4648 mov r0, r9 109d0: 3108 adds r1, #8 109d2: 47a8 blx r5 _lv_style_list_add_style(list, &styles->pad_small); 109d4: 6831 ldr r1, [r6, #0] 109d6: 4648 mov r0, r9 109d8: 3118 adds r1, #24 109da: 47a8 blx r5 lv_obj_clean_style_list(obj, LV_DROPDOWN_PART_LIST); 109dc: 2140 movs r1, #64 ; 0x40 109de: 4620 mov r0, r4 109e0: 47c0 blx r8 list = lv_obj_get_style_list(obj, LV_DROPDOWN_PART_LIST); 109e2: 2140 movs r1, #64 ; 0x40 109e4: 4620 mov r0, r4 109e6: 47b8 blx r7 _lv_style_list_add_style(list, &styles->bg); 109e8: 6831 ldr r1, [r6, #0] 109ea: 3104 adds r1, #4 list = lv_obj_get_style_list(obj, LV_DROPDOWN_PART_LIST); 109ec: 4681 mov r9, r0 _lv_style_list_add_style(list, &styles->bg); 109ee: 47a8 blx r5 _lv_style_list_add_style(list, &styles->ddlist_page); 109f0: 6831 ldr r1, [r6, #0] 109f2: 4648 mov r0, r9 109f4: 3154 adds r1, #84 ; 0x54 109f6: 47a8 blx r5 lv_obj_clean_style_list(obj, LV_DROPDOWN_PART_SCROLLBAR); 109f8: 2141 movs r1, #65 ; 0x41 109fa: 4620 mov r0, r4 109fc: 47c0 blx r8 list = lv_obj_get_style_list(obj, LV_DROPDOWN_PART_SCROLLBAR); 109fe: 2141 movs r1, #65 ; 0x41 10a00: 4620 mov r0, r4 10a02: 47b8 blx r7 _lv_style_list_add_style(list, &styles->sb); 10a04: 6831 ldr r1, [r6, #0] 10a06: 3180 adds r1, #128 ; 0x80 10a08: 47a8 blx r5 lv_obj_clean_style_list(obj, LV_DROPDOWN_PART_SELECTED); 10a0a: 2142 movs r1, #66 ; 0x42 10a0c: 4620 mov r0, r4 10a0e: 47c0 blx r8 list = lv_obj_get_style_list(obj, LV_DROPDOWN_PART_SELECTED); 10a10: 2142 movs r1, #66 ; 0x42 10a12: 4620 mov r0, r4 10a14: 47b8 blx r7 _lv_style_list_add_style(list, &styles->ddlist_sel); 10a16: 6831 ldr r1, [r6, #0] 10a18: 3158 adds r1, #88 ; 0x58 10a1a: e618 b.n 1064e _lv_style_list_add_style(list, &styles->bg); 10a1c: 4e2f ldr r6, [pc, #188] ; (10adc ) lv_obj_clean_style_list(obj, LV_CHART_PART_BG); 10a1e: f8df 90c8 ldr.w r9, [pc, #200] ; 10ae8 list = lv_obj_get_style_list(obj, LV_CHART_PART_BG); 10a22: f8df 80bc ldr.w r8, [pc, #188] ; 10ae0 _lv_style_list_add_style(list, &styles->bg); 10a26: 4d2f ldr r5, [pc, #188] ; (10ae4 ) lv_obj_clean_style_list(obj, LV_CHART_PART_BG); 10a28: 2100 movs r1, #0 10a2a: 47c8 blx r9 list = lv_obj_get_style_list(obj, LV_CHART_PART_BG); 10a2c: 2100 movs r1, #0 10a2e: 4620 mov r0, r4 10a30: 47c0 blx r8 _lv_style_list_add_style(list, &styles->bg); 10a32: 6831 ldr r1, [r6, #0] 10a34: 3104 adds r1, #4 list = lv_obj_get_style_list(obj, LV_CHART_PART_BG); 10a36: 4607 mov r7, r0 _lv_style_list_add_style(list, &styles->bg); 10a38: 47a8 blx r5 _lv_style_list_add_style(list, &styles->chart_bg); 10a3a: 6831 ldr r1, [r6, #0] 10a3c: 4638 mov r0, r7 10a3e: 3140 adds r1, #64 ; 0x40 10a40: 47a8 blx r5 _lv_style_list_add_style(list, &styles->pad_small); 10a42: 6831 ldr r1, [r6, #0] 10a44: 4638 mov r0, r7 10a46: 3118 adds r1, #24 10a48: 47a8 blx r5 lv_obj_clean_style_list(obj, LV_CHART_PART_SERIES_BG); 10a4a: 2101 movs r1, #1 10a4c: 4620 mov r0, r4 10a4e: 47c8 blx r9 list = lv_obj_get_style_list(obj, LV_CHART_PART_SERIES_BG); 10a50: 2101 movs r1, #1 10a52: 4620 mov r0, r4 10a54: 47c0 blx r8 _lv_style_list_add_style(list, &styles->pad_small); 10a56: 6831 ldr r1, [r6, #0] 10a58: 3118 adds r1, #24 list = lv_obj_get_style_list(obj, LV_CHART_PART_SERIES_BG); 10a5a: 4607 mov r7, r0 _lv_style_list_add_style(list, &styles->pad_small); 10a5c: 47a8 blx r5 _lv_style_list_add_style(list, &styles->chart_series_bg); 10a5e: 6831 ldr r1, [r6, #0] 10a60: 4638 mov r0, r7 10a62: 3144 adds r1, #68 ; 0x44 10a64: 47a8 blx r5 lv_obj_clean_style_list(obj, LV_CHART_PART_SERIES); 10a66: 2102 movs r1, #2 10a68: 4620 mov r0, r4 10a6a: 47c8 blx r9 list = lv_obj_get_style_list(obj, LV_CHART_PART_SERIES); 10a6c: 2102 movs r1, #2 10a6e: 4620 mov r0, r4 10a70: 47c0 blx r8 _lv_style_list_add_style(list, &styles->chart_series); 10a72: 6831 ldr r1, [r6, #0] 10a74: 3148 adds r1, #72 ; 0x48 10a76: e5ea b.n 1064e lv_obj_clean_style_list(obj, LV_TABLE_PART_BG); 10a78: f8df 806c ldr.w r8, [pc, #108] ; 10ae8 _lv_style_list_add_style(list, &styles->bg); 10a7c: 4e17 ldr r6, [pc, #92] ; (10adc ) list = lv_obj_get_style_list(obj, LV_TABLE_PART_BG); 10a7e: 4f18 ldr r7, [pc, #96] ; (10ae0 ) _lv_style_list_add_style(list, &styles->bg); 10a80: 4d18 ldr r5, [pc, #96] ; (10ae4 ) lv_obj_clean_style_list(obj, LV_TABLE_PART_BG); 10a82: 2100 movs r1, #0 10a84: 47c0 blx r8 list = lv_obj_get_style_list(obj, LV_TABLE_PART_BG); 10a86: 2100 movs r1, #0 10a88: 4620 mov r0, r4 10a8a: 47b8 blx r7 _lv_style_list_add_style(list, &styles->bg); 10a8c: 6831 ldr r1, [r6, #0] 10a8e: 3104 adds r1, #4 10a90: 47a8 blx r5 lv_obj_clean_style_list(obj, LV_TABLE_PART_CELL1); 10a92: 2101 movs r1, #1 10a94: 4620 mov r0, r4 10a96: 47c0 blx r8 list = lv_obj_get_style_list(obj, LV_TABLE_PART_CELL1); 10a98: 2101 movs r1, #1 10a9a: 4620 mov r0, r4 10a9c: 47b8 blx r7 _lv_style_list_add_style(list, &styles->table_cell); 10a9e: 6831 ldr r1, [r6, #0] 10aa0: 31a0 adds r1, #160 ; 0xa0 10aa2: 47a8 blx r5 lv_obj_clean_style_list(obj, LV_TABLE_PART_CELL2); 10aa4: 2102 movs r1, #2 10aa6: 4620 mov r0, r4 10aa8: 47c0 blx r8 list = lv_obj_get_style_list(obj, LV_TABLE_PART_CELL2); 10aaa: 2102 movs r1, #2 10aac: 4620 mov r0, r4 10aae: 47b8 blx r7 _lv_style_list_add_style(list, &styles->table_cell); 10ab0: 6831 ldr r1, [r6, #0] 10ab2: 31a0 adds r1, #160 ; 0xa0 10ab4: 47a8 blx r5 lv_obj_clean_style_list(obj, LV_TABLE_PART_CELL3); 10ab6: 2103 movs r1, #3 10ab8: 4620 mov r0, r4 10aba: 47c0 blx r8 list = lv_obj_get_style_list(obj, LV_TABLE_PART_CELL3); 10abc: 2103 movs r1, #3 10abe: 4620 mov r0, r4 10ac0: 47b8 blx r7 _lv_style_list_add_style(list, &styles->table_cell); 10ac2: 6831 ldr r1, [r6, #0] 10ac4: 31a0 adds r1, #160 ; 0xa0 10ac6: 47a8 blx r5 lv_obj_clean_style_list(obj, LV_TABLE_PART_CELL4); 10ac8: 2104 movs r1, #4 10aca: 4620 mov r0, r4 10acc: 47c0 blx r8 list = lv_obj_get_style_list(obj, LV_TABLE_PART_CELL4); 10ace: 2104 movs r1, #4 10ad0: 4620 mov r0, r4 10ad2: 47b8 blx r7 _lv_style_list_add_style(list, &styles->table_cell); 10ad4: 6831 ldr r1, [r6, #0] 10ad6: 31a0 adds r1, #160 ; 0xa0 10ad8: e5b9 b.n 1064e 10ada: bf00 nop 10adc: 2000d170 .word 0x2000d170 10ae0: 000026b9 .word 0x000026b9 10ae4: 00005845 .word 0x00005845 10ae8: 00002775 .word 0x00002775 lv_obj_clean_style_list(obj, LV_WIN_PART_BG); 10aec: f8df 8200 ldr.w r8, [pc, #512] ; 10cf0 _lv_style_list_add_style(list, &styles->scr); 10af0: 4e7c ldr r6, [pc, #496] ; (10ce4 ) list = lv_obj_get_style_list(obj, LV_WIN_PART_BG); 10af2: 4f7d ldr r7, [pc, #500] ; (10ce8 ) _lv_style_list_add_style(list, &styles->scr); 10af4: 4d7d ldr r5, [pc, #500] ; (10cec ) lv_obj_clean_style_list(obj, LV_WIN_PART_BG); 10af6: 2100 movs r1, #0 10af8: 47c0 blx r8 list = lv_obj_get_style_list(obj, LV_WIN_PART_BG); 10afa: 2100 movs r1, #0 10afc: 4620 mov r0, r4 10afe: 47b8 blx r7 _lv_style_list_add_style(list, &styles->scr); 10b00: 6831 ldr r1, [r6, #0] 10b02: 47a8 blx r5 lv_obj_clean_style_list(obj, LV_WIN_PART_SCROLLBAR); 10b04: 2142 movs r1, #66 ; 0x42 10b06: 4620 mov r0, r4 10b08: 47c0 blx r8 list = lv_obj_get_style_list(obj, LV_WIN_PART_SCROLLBAR); 10b0a: 2142 movs r1, #66 ; 0x42 10b0c: 4620 mov r0, r4 10b0e: 47b8 blx r7 _lv_style_list_add_style(list, &styles->sb); 10b10: 6831 ldr r1, [r6, #0] 10b12: 3180 adds r1, #128 ; 0x80 10b14: 47a8 blx r5 lv_obj_clean_style_list(obj, LV_WIN_PART_CONTENT_SCROLLABLE); 10b16: 2141 movs r1, #65 ; 0x41 10b18: 4620 mov r0, r4 10b1a: 47c0 blx r8 list = lv_obj_get_style_list(obj, LV_WIN_PART_CONTENT_SCROLLABLE); 10b1c: 2141 movs r1, #65 ; 0x41 10b1e: 4620 mov r0, r4 10b20: 47b8 blx r7 _lv_style_list_add_style(list, &styles->tabview_page_scrl); 10b22: 6831 ldr r1, [r6, #0] 10b24: 31b0 adds r1, #176 ; 0xb0 10b26: 47a8 blx r5 lv_obj_clean_style_list(obj, LV_WIN_PART_HEADER); 10b28: 2140 movs r1, #64 ; 0x40 10b2a: 4620 mov r0, r4 10b2c: 47c0 blx r8 list = lv_obj_get_style_list(obj, LV_WIN_PART_HEADER); 10b2e: 2140 movs r1, #64 ; 0x40 10b30: 4620 mov r0, r4 10b32: 47b8 blx r7 _lv_style_list_add_style(list, &styles->tabview_btns_bg); 10b34: 6831 ldr r1, [r6, #0] 10b36: 31a8 adds r1, #168 ; 0xa8 10b38: e589 b.n 1064e lv_obj_clean_style_list(obj, LV_BTN_PART_MAIN); 10b3a: 4b6d ldr r3, [pc, #436] ; (10cf0 ) 10b3c: 2100 movs r1, #0 10b3e: 4798 blx r3 list = lv_obj_get_style_list(obj, LV_BTN_PART_MAIN); 10b40: 4b69 ldr r3, [pc, #420] ; (10ce8 ) 10b42: 2100 movs r1, #0 10b44: 4620 mov r0, r4 10b46: 4798 blx r3 _lv_style_list_add_style(list, &styles->tabview_btns); 10b48: 4b66 ldr r3, [pc, #408] ; (10ce4 ) 10b4a: 6819 ldr r1, [r3, #0] 10b4c: 31a4 adds r1, #164 ; 0xa4 10b4e: e540 b.n 105d2 lv_obj_clean_style_list(obj, LV_TEXTAREA_PART_BG); 10b50: f8df 819c ldr.w r8, [pc, #412] ; 10cf0 _lv_style_list_add_style(list, &styles->bg); 10b54: 4e63 ldr r6, [pc, #396] ; (10ce4 ) list = lv_obj_get_style_list(obj, LV_TEXTAREA_PART_BG); 10b56: 4f64 ldr r7, [pc, #400] ; (10ce8 ) _lv_style_list_add_style(list, &styles->bg); 10b58: 4d64 ldr r5, [pc, #400] ; (10cec ) lv_obj_clean_style_list(obj, LV_TEXTAREA_PART_BG); 10b5a: 2100 movs r1, #0 10b5c: 47c0 blx r8 list = lv_obj_get_style_list(obj, LV_TEXTAREA_PART_BG); 10b5e: 2100 movs r1, #0 10b60: 4620 mov r0, r4 10b62: 47b8 blx r7 _lv_style_list_add_style(list, &styles->bg); 10b64: 6831 ldr r1, [r6, #0] 10b66: 3104 adds r1, #4 list = lv_obj_get_style_list(obj, LV_TEXTAREA_PART_BG); 10b68: 4681 mov r9, r0 _lv_style_list_add_style(list, &styles->bg); 10b6a: 47a8 blx r5 _lv_style_list_add_style(list, &styles->pad_small); 10b6c: 6831 ldr r1, [r6, #0] 10b6e: 4648 mov r0, r9 10b70: 3118 adds r1, #24 10b72: 47a8 blx r5 lv_obj_clean_style_list(obj, LV_TEXTAREA_PART_PLACEHOLDER); 10b74: 4620 mov r0, r4 10b76: 2104 movs r1, #4 10b78: 47c0 blx r8 list = lv_obj_get_style_list(obj, LV_TEXTAREA_PART_PLACEHOLDER); 10b7a: 2104 movs r1, #4 10b7c: 4620 mov r0, r4 10b7e: 47b8 blx r7 _lv_style_list_add_style(list, &styles->ta_placeholder); 10b80: 6831 ldr r1, [r6, #0] 10b82: 31b8 adds r1, #184 ; 0xb8 10b84: 47a8 blx r5 lv_obj_clean_style_list(obj, LV_TEXTAREA_PART_CURSOR); 10b86: 4620 mov r0, r4 10b88: 2103 movs r1, #3 10b8a: 47c0 blx r8 list = lv_obj_get_style_list(obj, LV_TEXTAREA_PART_CURSOR); 10b8c: 2103 movs r1, #3 10b8e: 4620 mov r0, r4 10b90: 47b8 blx r7 _lv_style_list_add_style(list, &styles->ta_cursor); 10b92: 6831 ldr r1, [r6, #0] 10b94: 31b4 adds r1, #180 ; 0xb4 10b96: 47a8 blx r5 lv_obj_clean_style_list(obj, LV_TEXTAREA_PART_SCROLLBAR); 10b98: 4620 mov r0, r4 10b9a: 2101 movs r1, #1 10b9c: 47c0 blx r8 list = lv_obj_get_style_list(obj, LV_TEXTAREA_PART_SCROLLBAR); 10b9e: 2101 movs r1, #1 10ba0: 4620 mov r0, r4 10ba2: 47b8 blx r7 10ba4: e6f6 b.n 10994 _lv_style_list_add_style(list, &styles->bg); 10ba6: 4e4f ldr r6, [pc, #316] ; (10ce4 ) lv_obj_clean_style_list(obj, LV_SPINBOX_PART_BG); 10ba8: f8df 9144 ldr.w r9, [pc, #324] ; 10cf0 list = lv_obj_get_style_list(obj, LV_SPINBOX_PART_BG); 10bac: f8df 8138 ldr.w r8, [pc, #312] ; 10ce8 _lv_style_list_add_style(list, &styles->bg); 10bb0: 4d4e ldr r5, [pc, #312] ; (10cec ) lv_obj_clean_style_list(obj, LV_SPINBOX_PART_BG); 10bb2: 2100 movs r1, #0 10bb4: 47c8 blx r9 list = lv_obj_get_style_list(obj, LV_SPINBOX_PART_BG); 10bb6: 2100 movs r1, #0 10bb8: 4620 mov r0, r4 10bba: 47c0 blx r8 _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_SPINBOX_PART_BG); 10bc0: 4607 mov r7, 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: 4638 mov r0, r7 10bc8: 3118 adds r1, #24 10bca: 47a8 blx r5 lv_obj_clean_style_list(obj, LV_SPINBOX_PART_CURSOR); 10bcc: 2103 movs r1, #3 10bce: 4620 mov r0, r4 10bd0: 47c8 blx r9 list = lv_obj_get_style_list(obj, LV_SPINBOX_PART_CURSOR); 10bd2: 2103 movs r1, #3 10bd4: 4620 mov r0, r4 10bd6: 47c0 blx r8 _lv_style_list_add_style(list, &styles->spinbox_cursor); 10bd8: 6831 ldr r1, [r6, #0] 10bda: 3198 adds r1, #152 ; 0x98 10bdc: e537 b.n 1064e lv_obj_clean_style_list(obj, LV_BTN_PART_MAIN); 10bde: 4b44 ldr r3, [pc, #272] ; (10cf0 ) _lv_style_list_add_style(list, &styles->bg); 10be0: 4f40 ldr r7, [pc, #256] ; (10ce4 ) 10be2: 4e42 ldr r6, [pc, #264] ; (10cec ) lv_obj_clean_style_list(obj, LV_BTN_PART_MAIN); 10be4: 2100 movs r1, #0 10be6: 4798 blx r3 list = lv_obj_get_style_list(obj, LV_BTN_PART_MAIN); 10be8: 4b3f ldr r3, [pc, #252] ; (10ce8 ) 10bea: 2100 movs r1, #0 10bec: 4620 mov r0, r4 10bee: 4798 blx r3 _lv_style_list_add_style(list, &styles->bg); 10bf0: 6839 ldr r1, [r7, #0] 10bf2: 3104 adds r1, #4 list = lv_obj_get_style_list(obj, LV_BTN_PART_MAIN); 10bf4: 4605 mov r5, r0 _lv_style_list_add_style(list, &styles->bg); 10bf6: 47b0 blx r6 _lv_style_list_add_style(list, &styles->bg_click); 10bf8: 6839 ldr r1, [r7, #0] 10bfa: 3108 adds r1, #8 10bfc: e5f1 b.n 107e2 lv_obj_clean_style_list(obj, LV_CALENDAR_PART_BG); 10bfe: f8df 80f0 ldr.w r8, [pc, #240] ; 10cf0 _lv_style_list_add_style(list, &styles->bg); 10c02: 4e38 ldr r6, [pc, #224] ; (10ce4 ) list = lv_obj_get_style_list(obj, LV_CALENDAR_PART_BG); 10c04: 4f38 ldr r7, [pc, #224] ; (10ce8 ) _lv_style_list_add_style(list, &styles->bg); 10c06: 4d39 ldr r5, [pc, #228] ; (10cec ) lv_obj_clean_style_list(obj, LV_CALENDAR_PART_BG); 10c08: 2100 movs r1, #0 10c0a: 47c0 blx r8 list = lv_obj_get_style_list(obj, LV_CALENDAR_PART_BG); 10c0c: 2100 movs r1, #0 10c0e: 4620 mov r0, r4 10c10: 47b8 blx r7 _lv_style_list_add_style(list, &styles->bg); 10c12: 6831 ldr r1, [r6, #0] 10c14: 3104 adds r1, #4 10c16: 47a8 blx r5 lv_obj_clean_style_list(obj, LV_CALENDAR_PART_DATE); 10c18: 2103 movs r1, #3 10c1a: 4620 mov r0, r4 10c1c: 47c0 blx r8 list = lv_obj_get_style_list(obj, LV_CALENDAR_PART_DATE); 10c1e: 2103 movs r1, #3 10c20: 4620 mov r0, r4 10c22: 47b8 blx r7 _lv_style_list_add_style(list, &styles->calendar_date_nums); 10c24: 6831 ldr r1, [r6, #0] 10c26: 312c adds r1, #44 ; 0x2c 10c28: 47a8 blx r5 lv_obj_clean_style_list(obj, LV_CALENDAR_PART_HEADER); 10c2a: 2101 movs r1, #1 10c2c: 4620 mov r0, r4 10c2e: 47c0 blx r8 list = lv_obj_get_style_list(obj, LV_CALENDAR_PART_HEADER); 10c30: 2101 movs r1, #1 10c32: 4620 mov r0, r4 10c34: 47b8 blx r7 _lv_style_list_add_style(list, &styles->calendar_header); 10c36: 6831 ldr r1, [r6, #0] 10c38: 3130 adds r1, #48 ; 0x30 10c3a: 47a8 blx r5 lv_obj_clean_style_list(obj, LV_CALENDAR_PART_DAY_NAMES); 10c3c: 2102 movs r1, #2 10c3e: 4620 mov r0, r4 10c40: 47c0 blx r8 list = lv_obj_get_style_list(obj, LV_CALENDAR_PART_DAY_NAMES); 10c42: 2102 movs r1, #2 10c44: 4620 mov r0, r4 10c46: 47b8 blx r7 _lv_style_list_add_style(list, &styles->calendar_daynames); 10c48: 6831 ldr r1, [r6, #0] 10c4a: 3134 adds r1, #52 ; 0x34 10c4c: e4ff b.n 1064e lv_obj_clean_style_list(obj, LV_CPICKER_PART_MAIN); 10c4e: f8df 80a0 ldr.w r8, [pc, #160] ; 10cf0 _lv_style_list_add_style(list, &styles->cpicker_bg); 10c52: 4e24 ldr r6, [pc, #144] ; (10ce4 ) list = lv_obj_get_style_list(obj, LV_CPICKER_PART_MAIN); 10c54: 4f24 ldr r7, [pc, #144] ; (10ce8 ) _lv_style_list_add_style(list, &styles->cpicker_bg); 10c56: 4d25 ldr r5, [pc, #148] ; (10cec ) lv_obj_clean_style_list(obj, LV_CPICKER_PART_MAIN); 10c58: 2100 movs r1, #0 10c5a: 47c0 blx r8 list = lv_obj_get_style_list(obj, LV_CPICKER_PART_MAIN); 10c5c: 2100 movs r1, #0 10c5e: 4620 mov r0, r4 10c60: 47b8 blx r7 _lv_style_list_add_style(list, &styles->cpicker_bg); 10c62: 6831 ldr r1, [r6, #0] 10c64: 3138 adds r1, #56 ; 0x38 10c66: 47a8 blx r5 lv_obj_clean_style_list(obj, LV_CPICKER_PART_KNOB); 10c68: 2101 movs r1, #1 10c6a: 4620 mov r0, r4 10c6c: 47c0 blx r8 list = lv_obj_get_style_list(obj, LV_CPICKER_PART_KNOB); 10c6e: 2101 movs r1, #1 10c70: 4620 mov r0, r4 10c72: 47b8 blx r7 _lv_style_list_add_style(list, &styles->cpicker_indic); 10c74: 6831 ldr r1, [r6, #0] 10c76: 313c adds r1, #60 ; 0x3c 10c78: e4e9 b.n 1064e lv_obj_clean_style_list(obj, LV_LINEMETER_PART_MAIN); 10c7a: 4b1d ldr r3, [pc, #116] ; (10cf0 ) _lv_style_list_add_style(list, &styles->bg); 10c7c: 4f19 ldr r7, [pc, #100] ; (10ce4 ) 10c7e: 4e1b ldr r6, [pc, #108] ; (10cec ) lv_obj_clean_style_list(obj, LV_LINEMETER_PART_MAIN); 10c80: 2100 movs r1, #0 10c82: 4798 blx r3 list = lv_obj_get_style_list(obj, LV_LINEMETER_PART_MAIN); 10c84: 4b18 ldr r3, [pc, #96] ; (10ce8 ) 10c86: 2100 movs r1, #0 10c88: 4620 mov r0, r4 10c8a: 4798 blx r3 _lv_style_list_add_style(list, &styles->bg); 10c8c: 6839 ldr r1, [r7, #0] 10c8e: 3104 adds r1, #4 list = lv_obj_get_style_list(obj, LV_LINEMETER_PART_MAIN); 10c90: 4605 mov r5, r0 _lv_style_list_add_style(list, &styles->bg); 10c92: 47b0 blx r6 _lv_style_list_add_style(list, &styles->lmeter); 10c94: 6839 ldr r1, [r7, #0] 10c96: 3170 adds r1, #112 ; 0x70 10c98: e5a3 b.n 107e2 _lv_style_list_add_style(list, &styles->bg); 10c9a: 4e12 ldr r6, [pc, #72] ; (10ce4 ) lv_obj_clean_style_list(obj, LV_GAUGE_PART_MAIN); 10c9c: f8df 8050 ldr.w r8, [pc, #80] ; 10cf0 list = lv_obj_get_style_list(obj, LV_GAUGE_PART_MAIN); 10ca0: 4f11 ldr r7, [pc, #68] ; (10ce8 ) _lv_style_list_add_style(list, &styles->bg); 10ca2: 4d12 ldr r5, [pc, #72] ; (10cec ) lv_obj_clean_style_list(obj, LV_GAUGE_PART_MAIN); 10ca4: 2100 movs r1, #0 10ca6: 47c0 blx r8 list = lv_obj_get_style_list(obj, LV_GAUGE_PART_MAIN); 10ca8: 2100 movs r1, #0 10caa: 4620 mov r0, r4 10cac: 47b8 blx r7 _lv_style_list_add_style(list, &styles->bg); 10cae: 6831 ldr r1, [r6, #0] 10cb0: 3104 adds r1, #4 list = lv_obj_get_style_list(obj, LV_GAUGE_PART_MAIN); 10cb2: 4681 mov r9, r0 _lv_style_list_add_style(list, &styles->bg); 10cb4: 47a8 blx r5 _lv_style_list_add_style(list, &styles->gauge_main); 10cb6: 6831 ldr r1, [r6, #0] 10cb8: 4648 mov r0, r9 10cba: 315c adds r1, #92 ; 0x5c 10cbc: 47a8 blx r5 lv_obj_clean_style_list(obj, LV_GAUGE_PART_MAJOR); 10cbe: 2101 movs r1, #1 10cc0: 4620 mov r0, r4 10cc2: 47c0 blx r8 list = lv_obj_get_style_list(obj, LV_GAUGE_PART_MAJOR); 10cc4: 2101 movs r1, #1 10cc6: 4620 mov r0, r4 10cc8: 47b8 blx r7 _lv_style_list_add_style(list, &styles->gauge_strong); 10cca: 6831 ldr r1, [r6, #0] 10ccc: 3160 adds r1, #96 ; 0x60 10cce: 47a8 blx r5 lv_obj_clean_style_list(obj, LV_GAUGE_PART_NEEDLE); 10cd0: 2102 movs r1, #2 10cd2: 4620 mov r0, r4 10cd4: 47c0 blx r8 list = lv_obj_get_style_list(obj, LV_GAUGE_PART_NEEDLE); 10cd6: 2102 movs r1, #2 10cd8: 4620 mov r0, r4 10cda: 47b8 blx r7 _lv_style_list_add_style(list, &styles->gauge_needle); 10cdc: 6831 ldr r1, [r6, #0] 10cde: 3164 adds r1, #100 ; 0x64 10ce0: e4b5 b.n 1064e 10ce2: bf00 nop 10ce4: 2000d170 .word 0x2000d170 10ce8: 000026b9 .word 0x000026b9 10cec: 00005845 .word 0x00005845 10cf0: 00002775 .word 0x00002775 00010cf4 : * STATIC FUNCTIONS **********************/ static void style_init_reset(lv_style_t * style) { if(inited) lv_style_reset(style); 10cf4: 4b03 ldr r3, [pc, #12] ; (10d04 ) 10cf6: 791b ldrb r3, [r3, #4] 10cf8: b10b cbz r3, 10cfe 10cfa: 4b03 ldr r3, [pc, #12] ; (10d08 ) else lv_style_init(style); 10cfc: 4718 bx r3 10cfe: 4b03 ldr r3, [pc, #12] ; (10d0c ) 10d00: e7fc b.n 10cfc 10d02: bf00 nop 10d04: 2000d170 .word 0x2000d170 10d08: 000059c1 .word 0x000059c1 10d0c: 0000575d .word 0x0000575d 00010d10 : { 10d10: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} style_init_reset(&styles->sw_knob); 10d14: 4d3a ldr r5, [pc, #232] ; (10e00 ) 10d16: 4b3b ldr r3, [pc, #236] ; (10e04 ) 10d18: 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) 10d1a: 4e3b ldr r6, [pc, #236] ; (10e08 ) lv_style_set_pad_top(&styles->sw_knob, LV_STATE_DEFAULT, - LV_DPX(4)); 10d1c: 4c3b ldr r4, [pc, #236] ; (10e0c ) style_init_reset(&styles->sw_knob); 10d1e: 309c adds r0, #156 ; 0x9c 10d20: 4798 blx r3 lv_style_set_bg_opa(&styles->sw_knob, LV_STATE_DEFAULT, LV_OPA_COVER); 10d22: 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) 10d24: 4b3a ldr r3, [pc, #232] ; (10e10 ) 10d26: 22ff movs r2, #255 ; 0xff 10d28: 212c movs r1, #44 ; 0x2c 10d2a: 309c adds r0, #156 ; 0x9c 10d2c: 4798 blx r3 lv_style_set_bg_color(&styles->sw_knob, LV_STATE_DEFAULT, LV_COLOR_WHITE); 10d2e: 6828 ldr r0, [r5, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar) 10d30: 4b38 ldr r3, [pc, #224] ; (10e14 ) 10d32: 2129 movs r1, #41 ; 0x29 10d34: 881a ldrh r2, [r3, #0] 10d36: 4b38 ldr r3, [pc, #224] ; (10e18 ) 10d38: 309c adds r0, #156 ; 0x9c 10d3a: 4798 blx r3 lv_style_set_radius(&styles->sw_knob, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE); 10d3c: 6828 ldr r0, [r5, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar) 10d3e: f647 72ff movw r2, #32767 ; 0x7fff 10d42: 2101 movs r1, #1 10d44: 309c adds r0, #156 ; 0x9c 10d46: 47b0 blx r6 lv_style_set_pad_top(&styles->sw_knob, LV_STATE_DEFAULT, - LV_DPX(4)); 10d48: 2000 movs r0, #0 10d4a: 682f ldr r7, [r5, #0] 10d4c: 47a0 blx r4 10d4e: 283b cmp r0, #59 ; 0x3b 10d50: f107 079c add.w r7, r7, #156 ; 0x9c 10d54: dd47 ble.n 10de6 10d56: 2000 movs r0, #0 10d58: 47a0 blx r4 10d5a: f06f 0327 mvn.w r3, #39 ; 0x27 10d5e: f100 0214 add.w r2, r0, #20 10d62: fb92 f2f3 sdiv r2, r2, r3 10d66: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar) 10d68: 4638 mov r0, r7 10d6a: 2110 movs r1, #16 10d6c: 47b0 blx r6 lv_style_set_pad_bottom(&styles->sw_knob, LV_STATE_DEFAULT, - LV_DPX(4)); 10d6e: 2000 movs r0, #0 10d70: 682f ldr r7, [r5, #0] 10d72: 47a0 blx r4 10d74: 283b cmp r0, #59 ; 0x3b 10d76: f107 079c add.w r7, r7, #156 ; 0x9c 10d7a: dd37 ble.n 10dec 10d7c: 2000 movs r0, #0 10d7e: 47a0 blx r4 10d80: f06f 0327 mvn.w r3, #39 ; 0x27 10d84: f100 0214 add.w r2, r0, #20 10d88: fb92 f2f3 sdiv r2, r2, r3 10d8c: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar) 10d8e: 4638 mov r0, r7 10d90: 2111 movs r1, #17 10d92: 47b0 blx r6 lv_style_set_pad_left(&styles->sw_knob, LV_STATE_DEFAULT, - LV_DPX(4)); 10d94: 2000 movs r0, #0 10d96: 682f ldr r7, [r5, #0] 10d98: 47a0 blx r4 10d9a: 283b cmp r0, #59 ; 0x3b 10d9c: f107 079c add.w r7, r7, #156 ; 0x9c 10da0: dd27 ble.n 10df2 10da2: 2000 movs r0, #0 10da4: 47a0 blx r4 10da6: f06f 0327 mvn.w r3, #39 ; 0x27 10daa: f100 0214 add.w r2, r0, #20 10dae: fb92 f2f3 sdiv r2, r2, r3 10db2: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar) 10db4: 2112 movs r1, #18 10db6: 4638 mov r0, r7 10db8: 47b0 blx r6 lv_style_set_pad_right(&styles->sw_knob, LV_STATE_DEFAULT, - LV_DPX(4)); 10dba: 2000 movs r0, #0 10dbc: 682d ldr r5, [r5, #0] 10dbe: 47a0 blx r4 10dc0: 283b cmp r0, #59 ; 0x3b 10dc2: f105 059c add.w r5, r5, #156 ; 0x9c 10dc6: dd17 ble.n 10df8 10dc8: 2000 movs r0, #0 10dca: 47a0 blx r4 10dcc: f06f 0327 mvn.w r3, #39 ; 0x27 10dd0: f100 0214 add.w r2, r0, #20 10dd4: fb92 f2f3 sdiv r2, r2, r3 10dd8: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar) 10dda: 4628 mov r0, r5 10ddc: 4633 mov r3, r6 10dde: 2113 movs r1, #19 } 10de0: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr} 10de4: 4718 bx r3 lv_style_set_pad_top(&styles->sw_knob, LV_STATE_DEFAULT, - LV_DPX(4)); 10de6: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff 10dea: e7bd b.n 10d68 lv_style_set_pad_bottom(&styles->sw_knob, LV_STATE_DEFAULT, - LV_DPX(4)); 10dec: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff 10df0: e7cd b.n 10d8e lv_style_set_pad_left(&styles->sw_knob, LV_STATE_DEFAULT, - LV_DPX(4)); 10df2: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff 10df6: e7dd b.n 10db4 lv_style_set_pad_right(&styles->sw_knob, LV_STATE_DEFAULT, - LV_DPX(4)); 10df8: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff 10dfc: e7ed b.n 10dda 10dfe: bf00 nop 10e00: 2000d170 .word 0x2000d170 10e04: 00010cf5 .word 0x00010cf5 10e08: 00005aa5 .word 0x00005aa5 10e0c: 0000db7d .word 0x0000db7d 10e10: 00005c45 .word 0x00005c45 10e14: 0002bbf2 .word 0x0002bbf2 10e18: 00005b75 .word 0x00005b75 00010e1c : { 10e1c: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} style_init_reset(&styles->lmeter); 10e20: 4d6b ldr r5, [pc, #428] ; (10fd0 ) 10e22: 4b6c ldr r3, [pc, #432] ; (10fd4 ) 10e24: 6828 ldr r0, [r5, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar) 10e26: 4e6c ldr r6, [pc, #432] ; (10fd8 ) lv_style_set_pad_left(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(20)); 10e28: 4c6c ldr r4, [pc, #432] ; (10fdc ) style_init_reset(&styles->lmeter); 10e2a: 3070 adds r0, #112 ; 0x70 10e2c: 4798 blx r3 lv_style_set_radius(&styles->lmeter, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE); 10e2e: 6828 ldr r0, [r5, #0] 10e30: f647 72ff movw r2, #32767 ; 0x7fff 10e34: 2101 movs r1, #1 10e36: 3070 adds r0, #112 ; 0x70 10e38: 47b0 blx r6 lv_style_set_pad_left(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(20)); 10e3a: 2000 movs r0, #0 10e3c: 682f ldr r7, [r5, #0] 10e3e: 47a0 blx r4 10e40: eb00 0080 add.w r0, r0, r0, lsl #2 10e44: 0080 lsls r0, r0, #2 10e46: 28ef cmp r0, #239 ; 0xef 10e48: f107 0770 add.w r7, r7, #112 ; 0x70 10e4c: f340 80b2 ble.w 10fb4 10e50: 2000 movs r0, #0 10e52: 47a0 blx r4 10e54: 2314 movs r3, #20 10e56: 2250 movs r2, #80 ; 0x50 10e58: fb00 2203 mla r2, r0, r3, r2 10e5c: 23a0 movs r3, #160 ; 0xa0 10e5e: fb92 f2f3 sdiv r2, r2, r3 10e62: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar) 10e64: 4638 mov r0, r7 10e66: 2112 movs r1, #18 10e68: 47b0 blx r6 lv_style_set_pad_right(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(20)); 10e6a: 2000 movs r0, #0 10e6c: 682f ldr r7, [r5, #0] 10e6e: 47a0 blx r4 10e70: eb00 0080 add.w r0, r0, r0, lsl #2 10e74: 0080 lsls r0, r0, #2 10e76: 28ef cmp r0, #239 ; 0xef 10e78: f107 0770 add.w r7, r7, #112 ; 0x70 10e7c: f340 809c ble.w 10fb8 10e80: 2000 movs r0, #0 10e82: 47a0 blx r4 10e84: 2314 movs r3, #20 10e86: 2250 movs r2, #80 ; 0x50 10e88: fb00 2203 mla r2, r0, r3, r2 10e8c: 23a0 movs r3, #160 ; 0xa0 10e8e: fb92 f2f3 sdiv r2, r2, r3 10e92: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar) 10e94: 4638 mov r0, r7 10e96: 2113 movs r1, #19 10e98: 47b0 blx r6 lv_style_set_pad_top(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(20)); 10e9a: 2000 movs r0, #0 10e9c: 682f ldr r7, [r5, #0] 10e9e: 47a0 blx r4 10ea0: eb00 0080 add.w r0, r0, r0, lsl #2 10ea4: 0080 lsls r0, r0, #2 10ea6: 28ef cmp r0, #239 ; 0xef 10ea8: f107 0770 add.w r7, r7, #112 ; 0x70 10eac: f340 8086 ble.w 10fbc 10eb0: 2000 movs r0, #0 10eb2: 47a0 blx r4 10eb4: 2314 movs r3, #20 10eb6: 2250 movs r2, #80 ; 0x50 10eb8: fb00 2203 mla r2, r0, r3, r2 10ebc: 23a0 movs r3, #160 ; 0xa0 10ebe: fb92 f2f3 sdiv r2, r2, r3 10ec2: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar) 10ec4: 4638 mov r0, r7 10ec6: 2110 movs r1, #16 10ec8: 47b0 blx r6 lv_style_set_pad_inner(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(30)); 10eca: 2000 movs r0, #0 10ecc: 682f ldr r7, [r5, #0] 10ece: 47a0 blx r4 10ed0: ebc0 1000 rsb r0, r0, r0, lsl #4 10ed4: 0040 lsls r0, r0, #1 10ed6: 28ef cmp r0, #239 ; 0xef 10ed8: f107 0770 add.w r7, r7, #112 ; 0x70 10edc: dd70 ble.n 10fc0 10ede: 2000 movs r0, #0 10ee0: 47a0 blx r4 10ee2: 231e movs r3, #30 10ee4: 2250 movs r2, #80 ; 0x50 10ee6: fb00 2203 mla r2, r0, r3, r2 10eea: 23a0 movs r3, #160 ; 0xa0 10eec: fb92 f2f3 sdiv r2, r2, r3 10ef0: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar) 10ef2: 4638 mov r0, r7 10ef4: 2114 movs r1, #20 10ef6: 47b0 blx r6 lv_style_set_scale_width(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(25)); 10ef8: 2000 movs r0, #0 10efa: 682f ldr r7, [r5, #0] 10efc: 47a0 blx r4 10efe: eb00 0080 add.w r0, r0, r0, lsl #2 10f02: eb00 0080 add.w r0, r0, r0, lsl #2 10f06: 28ef cmp r0, #239 ; 0xef 10f08: f107 0770 add.w r7, r7, #112 ; 0x70 10f0c: dd5a ble.n 10fc4 10f0e: 2000 movs r0, #0 10f10: 47a0 blx r4 10f12: 2319 movs r3, #25 10f14: 2250 movs r2, #80 ; 0x50 10f16: fb00 2203 mla r2, r0, r3, r2 10f1a: 23a0 movs r3, #160 ; 0xa0 10f1c: fb92 f2f3 sdiv r2, r2, r3 10f20: 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) 10f22: 4638 mov r0, r7 10f24: 21c0 movs r1, #192 ; 0xc0 10f26: 47b0 blx r6 lv_style_set_line_color(&styles->lmeter, LV_STATE_DEFAULT, theme.color_primary); 10f28: 6828 ldr r0, [r5, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(LINE_COLOR, line_color, lv_color_t, _color, nonscalar) 10f2a: 4f2d ldr r7, [pc, #180] ; (10fe0 ) 10f2c: 89aa ldrh r2, [r5, #12] 10f2e: 2199 movs r1, #153 ; 0x99 10f30: 3070 adds r0, #112 ; 0x70 10f32: 47b8 blx r7 lv_style_set_scale_grad_color(&styles->lmeter, LV_STATE_DEFAULT, theme.color_primary); 10f34: 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) 10f36: 89aa ldrh r2, [r5, #12] 10f38: 21c9 movs r1, #201 ; 0xc9 10f3a: 3070 adds r0, #112 ; 0x70 10f3c: 47b8 blx r7 lv_style_set_scale_end_color(&styles->lmeter, LV_STATE_DEFAULT, lv_color_hex3(0x888)); 10f3e: 6828 ldr r0, [r5, #0] 10f40: 4b28 ldr r3, [pc, #160] ; (10fe4 ) 10f42: f100 0870 add.w r8, r0, #112 ; 0x70 10f46: f640 0088 movw r0, #2184 ; 0x888 10f4a: 4798 blx r3 _LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_END_COLOR, scale_end_color, lv_color_t, _color, nonscalar) 10f4c: 21ca movs r1, #202 ; 0xca 10f4e: 4602 mov r2, r0 10f50: 4640 mov r0, r8 10f52: 47b8 blx r7 lv_style_set_line_width(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(10)); 10f54: 2000 movs r0, #0 10f56: 682f ldr r7, [r5, #0] 10f58: 47a0 blx r4 10f5a: eb00 0080 add.w r0, r0, r0, lsl #2 10f5e: 0040 lsls r0, r0, #1 10f60: 28ef cmp r0, #239 ; 0xef 10f62: f107 0770 add.w r7, r7, #112 ; 0x70 10f66: dd2f ble.n 10fc8 10f68: 2000 movs r0, #0 10f6a: 47a0 blx r4 10f6c: 230a movs r3, #10 10f6e: 2250 movs r2, #80 ; 0x50 10f70: fb00 2203 mla r2, r0, r3, r2 10f74: 23a0 movs r3, #160 ; 0xa0 10f76: fb92 f2f3 sdiv r2, r2, r3 10f7a: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(LINE_WIDTH, line_width, lv_style_int_t, _int, scalar) 10f7c: 2190 movs r1, #144 ; 0x90 10f7e: 4638 mov r0, r7 10f80: 47b0 blx r6 lv_style_set_scale_end_line_width(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(7)); 10f82: 2000 movs r0, #0 10f84: 682d ldr r5, [r5, #0] 10f86: 47a0 blx r4 10f88: ebc0 00c0 rsb r0, r0, r0, lsl #3 10f8c: 28ef cmp r0, #239 ; 0xef 10f8e: f105 0570 add.w r5, r5, #112 ; 0x70 10f92: dd1b ble.n 10fcc 10f94: 2000 movs r0, #0 10f96: 47a0 blx r4 10f98: 2307 movs r3, #7 10f9a: 2250 movs r2, #80 ; 0x50 10f9c: fb00 2203 mla r2, r0, r3, r2 10fa0: 23a0 movs r3, #160 ; 0xa0 10fa2: fb92 f2f3 sdiv r2, r2, r3 10fa6: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_END_LINE_WIDTH, scale_end_line_width, lv_style_int_t, _int, scalar) 10fa8: 4628 mov r0, r5 10faa: 4633 mov r3, r6 10fac: 21c3 movs r1, #195 ; 0xc3 } 10fae: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr} 10fb2: 4718 bx r3 lv_style_set_pad_left(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(20)); 10fb4: 2201 movs r2, #1 10fb6: e755 b.n 10e64 lv_style_set_pad_right(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(20)); 10fb8: 2201 movs r2, #1 10fba: e76b b.n 10e94 lv_style_set_pad_top(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(20)); 10fbc: 2201 movs r2, #1 10fbe: e781 b.n 10ec4 lv_style_set_pad_inner(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(30)); 10fc0: 2201 movs r2, #1 10fc2: e796 b.n 10ef2 lv_style_set_scale_width(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(25)); 10fc4: 2201 movs r2, #1 10fc6: e7ac b.n 10f22 lv_style_set_line_width(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(10)); 10fc8: 2201 movs r2, #1 10fca: e7d7 b.n 10f7c lv_style_set_scale_end_line_width(&styles->lmeter, LV_STATE_DEFAULT, LV_DPX(7)); 10fcc: 2201 movs r2, #1 10fce: e7eb b.n 10fa8 10fd0: 2000d170 .word 0x2000d170 10fd4: 00010cf5 .word 0x00010cf5 10fd8: 00005aa5 .word 0x00005aa5 10fdc: 0000db7d .word 0x0000db7d 10fe0: 00005b75 .word 0x00005b75 10fe4: 00010529 .word 0x00010529 00010fe8 : { 10fe8: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} style_init_reset(&styles->led); 10fec: 4c32 ldr r4, [pc, #200] ; (110b8 ) 10fee: 4b33 ldr r3, [pc, #204] ; (110bc ) 10ff0: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar) 10ff2: 4f33 ldr r7, [pc, #204] ; (110c0 ) _LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar) 10ff4: 4e33 ldr r6, [pc, #204] ; (110c4 ) _LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar) 10ff6: 4d34 ldr r5, [pc, #208] ; (110c8 ) 10ff8: 306c adds r0, #108 ; 0x6c 10ffa: 4798 blx r3 lv_style_set_bg_opa(&styles->led, LV_STATE_DEFAULT, LV_OPA_COVER); 10ffc: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar) 10ffe: 22ff movs r2, #255 ; 0xff 11000: 212c movs r1, #44 ; 0x2c 11002: 306c adds r0, #108 ; 0x6c 11004: 47b8 blx r7 lv_style_set_bg_color(&styles->led, LV_STATE_DEFAULT, theme.color_primary); 11006: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar) 11008: 89a2 ldrh r2, [r4, #12] 1100a: 2129 movs r1, #41 ; 0x29 1100c: 306c adds r0, #108 ; 0x6c 1100e: 47b0 blx r6 lv_style_set_border_width(&styles->led, LV_STATE_DEFAULT, 2); 11010: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar) 11012: 2202 movs r2, #2 11014: 2130 movs r1, #48 ; 0x30 11016: 306c adds r0, #108 ; 0x6c 11018: 47a8 blx r5 lv_style_set_border_opa(&styles->led, LV_STATE_DEFAULT, LV_OPA_50); 1101a: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_OPA, border_opa, lv_opa_t, _opa, scalar) 1101c: 227f movs r2, #127 ; 0x7f 1101e: 213c movs r1, #60 ; 0x3c 11020: 306c adds r0, #108 ; 0x6c 11022: 47b8 blx r7 lv_style_set_border_color(&styles->led, LV_STATE_DEFAULT, lv_color_lighten(theme.color_primary, LV_OPA_30)); 11024: 6820 ldr r0, [r4, #0] 11026: 4b29 ldr r3, [pc, #164] ; (110cc ) 11028: f100 076c add.w r7, r0, #108 ; 0x6c 1102c: 214c movs r1, #76 ; 0x4c 1102e: 89a0 ldrh r0, [r4, #12] 11030: 4798 blx r3 _LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar) 11032: 2139 movs r1, #57 ; 0x39 11034: 4602 mov r2, r0 11036: 4638 mov r0, r7 11038: 47b0 blx r6 lv_style_set_radius(&styles->led, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE); 1103a: 6820 ldr r0, [r4, #0] lv_style_set_shadow_width(&styles->led, LV_STATE_DEFAULT, LV_DPX(15)); 1103c: 4f24 ldr r7, [pc, #144] ; (110d0 ) _LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar) 1103e: f647 72ff movw r2, #32767 ; 0x7fff 11042: 2101 movs r1, #1 11044: 306c adds r0, #108 ; 0x6c 11046: 47a8 blx r5 11048: 6823 ldr r3, [r4, #0] 1104a: 2000 movs r0, #0 1104c: f103 086c add.w r8, r3, #108 ; 0x6c 11050: 47b8 blx r7 11052: ebc0 1000 rsb r0, r0, r0, lsl #4 11056: 28ef cmp r0, #239 ; 0xef 11058: dd2a ble.n 110b0 1105a: 2000 movs r0, #0 1105c: 47b8 blx r7 1105e: 230f movs r3, #15 11060: 2250 movs r2, #80 ; 0x50 11062: fb00 2203 mla r2, r0, r3, r2 11066: 23a0 movs r3, #160 ; 0xa0 11068: fb92 f2f3 sdiv r2, r2, r3 1106c: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_WIDTH, shadow_width, lv_style_int_t, _int, scalar) 1106e: 2150 movs r1, #80 ; 0x50 11070: 4640 mov r0, r8 11072: 47a8 blx r5 lv_style_set_shadow_color(&styles->led, LV_STATE_DEFAULT, theme.color_primary); 11074: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_COLOR, shadow_color, lv_color_t, _color, nonscalar) 11076: 89a2 ldrh r2, [r4, #12] 11078: 2159 movs r1, #89 ; 0x59 1107a: 306c adds r0, #108 ; 0x6c 1107c: 47b0 blx r6 lv_style_set_shadow_spread(&styles->led, LV_STATE_DEFAULT, LV_DPX(5)); 1107e: 2000 movs r0, #0 11080: 6824 ldr r4, [r4, #0] 11082: 47b8 blx r7 11084: eb00 0080 add.w r0, r0, r0, lsl #2 11088: 28ef cmp r0, #239 ; 0xef 1108a: f104 046c add.w r4, r4, #108 ; 0x6c 1108e: dd11 ble.n 110b4 11090: 2000 movs r0, #0 11092: 47b8 blx r7 11094: 2305 movs r3, #5 11096: 2250 movs r2, #80 ; 0x50 11098: fb00 2203 mla r2, r0, r3, r2 1109c: 23a0 movs r3, #160 ; 0xa0 1109e: fb92 f2f3 sdiv r2, r2, r3 110a2: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_SPREAD, shadow_spread, lv_style_int_t, _int, scalar) 110a4: 4620 mov r0, r4 110a6: 462b mov r3, r5 110a8: 2153 movs r1, #83 ; 0x53 } 110aa: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr} 110ae: 4718 bx r3 lv_style_set_shadow_width(&styles->led, LV_STATE_DEFAULT, LV_DPX(15)); 110b0: 2201 movs r2, #1 110b2: e7dc b.n 1106e lv_style_set_shadow_spread(&styles->led, LV_STATE_DEFAULT, LV_DPX(5)); 110b4: 2201 movs r2, #1 110b6: e7f5 b.n 110a4 110b8: 2000d170 .word 0x2000d170 110bc: 00010cf5 .word 0x00010cf5 110c0: 00005c45 .word 0x00005c45 110c4: 00005b75 .word 0x00005b75 110c8: 00005aa5 .word 0x00005aa5 110cc: 0000e577 .word 0x0000e577 110d0: 0000db7d .word 0x0000db7d 000110d4 : return LV_COLOR_MAKE(r, g, b); 110d4: f3c0 2285 ubfx r2, r0, #10, #6 110d8: f3c0 03c4 ubfx r3, r0, #3, #5 110dc: ea43 1342 orr.w r3, r3, r2, lsl #5 110e0: f3c0 40c4 ubfx r0, r0, #19, #5 } 110e4: ea43 20c0 orr.w r0, r3, r0, lsl #11 110e8: 4770 bx lr ... 000110ec : { 110ec: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} style_init_reset(&styles->bar_bg); 110f0: 4c43 ldr r4, [pc, #268] ; (11200 ) 110f2: f8df 9134 ldr.w r9, [pc, #308] ; 11228 110f6: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar) 110f8: 4e42 ldr r6, [pc, #264] ; (11204 ) _LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar) 110fa: 4f43 ldr r7, [pc, #268] ; (11208 ) 110fc: f8df 812c ldr.w r8, [pc, #300] ; 1122c 11100: 3024 adds r0, #36 ; 0x24 11102: 47c8 blx r9 lv_style_set_radius(&styles->bar_bg, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE); 11104: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar) 11106: f647 72ff movw r2, #32767 ; 0x7fff 1110a: 2101 movs r1, #1 1110c: 3024 adds r0, #36 ; 0x24 1110e: 47b0 blx r6 lv_style_set_bg_opa(&styles->bar_bg, LV_STATE_DEFAULT, LV_OPA_COVER); 11110: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar) 11112: 22ff movs r2, #255 ; 0xff 11114: 3024 adds r0, #36 ; 0x24 11116: 212c movs r1, #44 ; 0x2c 11118: 47b8 blx r7 lv_style_set_bg_color(&styles->bar_bg, LV_STATE_DEFAULT, COLOR_BG_SEC); 1111a: 6a23 ldr r3, [r4, #32] 1111c: 6825 ldr r5, [r4, #0] 1111e: f013 0f02 tst.w r3, #2 11122: bf14 ite ne 11124: 4839 ldrne r0, [pc, #228] ; (1120c ) 11126: 483a ldreq r0, [pc, #232] ; (11210 ) 11128: 47c0 blx r8 1112a: 3524 adds r5, #36 ; 0x24 _LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar) 1112c: 4602 mov r2, r0 1112e: 2129 movs r1, #41 ; 0x29 11130: 4628 mov r0, r5 11132: 4d38 ldr r5, [pc, #224] ; (11214 ) 11134: 47a8 blx r5 lv_style_set_value_color(&styles->bar_bg, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x31404f) : LV_COLOR_WHITE); 11136: 6823 ldr r3, [r4, #0] 11138: f103 0a24 add.w sl, r3, #36 ; 0x24 1113c: 6a23 ldr r3, [r4, #32] 1113e: 079a lsls r2, r3, #30 11140: d558 bpl.n 111f4 11142: 4835 ldr r0, [pc, #212] ; (11218 ) 11144: 47c0 blx r8 11146: 4602 mov r2, r0 _LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_COLOR, value_color, lv_color_t, _color, nonscalar) 11148: 2179 movs r1, #121 ; 0x79 1114a: 4650 mov r0, sl 1114c: 47a8 blx r5 lv_style_set_outline_color(&styles->bar_bg, LV_STATE_DEFAULT, theme.color_primary); 1114e: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_COLOR, outline_color, lv_color_t, _color, nonscalar) 11150: 89a2 ldrh r2, [r4, #12] 11152: 2149 movs r1, #73 ; 0x49 11154: 3024 adds r0, #36 ; 0x24 11156: 47a8 blx r5 lv_style_set_outline_color(&styles->bar_bg, LV_STATE_EDITED, theme.color_secondary); 11158: 6820 ldr r0, [r4, #0] 1115a: 89e2 ldrh r2, [r4, #14] 1115c: f240 4149 movw r1, #1097 ; 0x449 11160: 3024 adds r0, #36 ; 0x24 11162: 47a8 blx r5 lv_style_set_outline_opa(&styles->bar_bg, LV_STATE_DEFAULT, LV_OPA_TRANSP); 11164: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_OPA, outline_opa, lv_opa_t, _opa, scalar) 11166: 2200 movs r2, #0 11168: 214c movs r1, #76 ; 0x4c 1116a: 3024 adds r0, #36 ; 0x24 1116c: 47b8 blx r7 lv_style_set_outline_opa(&styles->bar_bg, LV_STATE_FOCUSED, LV_OPA_50); 1116e: 6820 ldr r0, [r4, #0] 11170: 227f movs r2, #127 ; 0x7f 11172: f44f 7113 mov.w r1, #588 ; 0x24c 11176: 3024 adds r0, #36 ; 0x24 11178: 47b8 blx r7 lv_style_set_outline_width(&styles->bar_bg, LV_STATE_DEFAULT, 3); 1117a: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_WIDTH, outline_width, lv_style_int_t, _int, scalar) 1117c: 2203 movs r2, #3 1117e: 2140 movs r1, #64 ; 0x40 11180: 3024 adds r0, #36 ; 0x24 11182: 47b0 blx r6 lv_style_set_transition_time(&styles->bar_bg, LV_STATE_DEFAULT, TRANSITION_TIME); 11184: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_TIME, transition_time, lv_style_int_t, _int, scalar) 11186: 2296 movs r2, #150 ; 0x96 11188: 21b0 movs r1, #176 ; 0xb0 1118a: 3024 adds r0, #36 ; 0x24 1118c: 47b0 blx r6 lv_style_set_transition_prop_6(&styles->bar_bg, LV_STATE_DEFAULT, LV_STYLE_OUTLINE_OPA); 1118e: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_6, transition_prop_6, lv_style_int_t, _int, scalar) 11190: 224c movs r2, #76 ; 0x4c 11192: 21b7 movs r1, #183 ; 0xb7 11194: 3024 adds r0, #36 ; 0x24 11196: 47b0 blx r6 style_init_reset(&styles->bar_indic); 11198: 6820 ldr r0, [r4, #0] 1119a: 3028 adds r0, #40 ; 0x28 1119c: 47c8 blx r9 lv_style_set_bg_opa(&styles->bar_indic, LV_STATE_DEFAULT, LV_OPA_COVER); 1119e: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar) 111a0: 22ff movs r2, #255 ; 0xff 111a2: 212c movs r1, #44 ; 0x2c 111a4: 3028 adds r0, #40 ; 0x28 111a6: 47b8 blx r7 lv_style_set_radius(&styles->bar_indic, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE); 111a8: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar) 111aa: f647 72ff movw r2, #32767 ; 0x7fff 111ae: 2101 movs r1, #1 111b0: 3028 adds r0, #40 ; 0x28 111b2: 47b0 blx r6 lv_style_set_bg_color(&styles->bar_indic, LV_STATE_DEFAULT, theme.color_primary); 111b4: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar) 111b6: 89a2 ldrh r2, [r4, #12] 111b8: 2129 movs r1, #41 ; 0x29 111ba: 3028 adds r0, #40 ; 0x28 111bc: 47a8 blx r5 lv_style_set_bg_color(&styles->bar_indic, LV_STATE_DISABLED, lv_color_hex3(0x888)); 111be: 6820 ldr r0, [r4, #0] 111c0: 4b16 ldr r3, [pc, #88] ; (1121c ) 111c2: f100 0628 add.w r6, r0, #40 ; 0x28 111c6: f640 0088 movw r0, #2184 ; 0x888 111ca: 4798 blx r3 111cc: f242 0129 movw r1, #8233 ; 0x2029 111d0: 4602 mov r2, r0 111d2: 4630 mov r0, r6 111d4: 47a8 blx r5 lv_style_set_value_color(&styles->bar_indic, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x41404f) : LV_COLOR_WHITE); 111d6: 6a23 ldr r3, [r4, #32] 111d8: 6820 ldr r0, [r4, #0] 111da: 079b lsls r3, r3, #30 111dc: f100 0628 add.w r6, r0, #40 ; 0x28 111e0: d50b bpl.n 111fa 111e2: 480f ldr r0, [pc, #60] ; (11220 ) 111e4: 47c0 blx r8 111e6: 4602 mov r2, r0 _LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_COLOR, value_color, lv_color_t, _color, nonscalar) 111e8: 4630 mov r0, r6 111ea: 462b mov r3, r5 111ec: 2179 movs r1, #121 ; 0x79 } 111ee: e8bd 47f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr} 111f2: 4718 bx r3 lv_style_set_value_color(&styles->bar_bg, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x31404f) : LV_COLOR_WHITE); 111f4: 4b0b ldr r3, [pc, #44] ; (11224 ) 111f6: 881a ldrh r2, [r3, #0] 111f8: e7a6 b.n 11148 lv_style_set_value_color(&styles->bar_indic, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x41404f) : LV_COLOR_WHITE); 111fa: 4b0a ldr r3, [pc, #40] ; (11224 ) 111fc: 881a ldrh r2, [r3, #0] 111fe: e7f3 b.n 111e8 11200: 2000d170 .word 0x2000d170 11204: 00005aa5 .word 0x00005aa5 11208: 00005c45 .word 0x00005c45 1120c: 00d4d7d9 .word 0x00d4d7d9 11210: 0045494d .word 0x0045494d 11214: 00005b75 .word 0x00005b75 11218: 0031404f .word 0x0031404f 1121c: 00010529 .word 0x00010529 11220: 0041404f .word 0x0041404f 11224: 0002bbf2 .word 0x0002bbf2 11228: 00010cf5 .word 0x00010cf5 1122c: 000110d5 .word 0x000110d5 00011230 : { 11230: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} style_init_reset(&styles->slider_knob); 11234: 4c7d ldr r4, [pc, #500] ; (1142c ) 11236: 4f7e ldr r7, [pc, #504] ; (11430 ) 11238: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar) 1123a: 4d7e ldr r5, [pc, #504] ; (11434 ) 1123c: 3090 adds r0, #144 ; 0x90 1123e: 47b8 blx r7 lv_style_set_bg_opa(&styles->slider_knob, LV_STATE_DEFAULT, LV_OPA_COVER); 11240: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar) 11242: 4b7d ldr r3, [pc, #500] ; (11438 ) 11244: 22ff movs r2, #255 ; 0xff 11246: 212c movs r1, #44 ; 0x2c 11248: 3090 adds r0, #144 ; 0x90 1124a: 4798 blx r3 lv_style_set_bg_color(&styles->slider_knob, LV_STATE_DEFAULT, IS_LIGHT ? theme.color_primary : LV_COLOR_WHITE); 1124c: 6a23 ldr r3, [r4, #32] 1124e: 6820 ldr r0, [r4, #0] 11250: 079a lsls r2, r3, #30 11252: bf56 itet pl 11254: 4b79 ldrpl r3, [pc, #484] ; (1143c ) 11256: 89a2 ldrhmi r2, [r4, #12] 11258: 881a ldrhpl r2, [r3, #0] 1125a: 3090 adds r0, #144 ; 0x90 _LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar) 1125c: 2129 movs r1, #41 ; 0x29 1125e: 47a8 blx r5 lv_style_set_value_color(&styles->slider_knob, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x31404f) : LV_COLOR_WHITE); 11260: 6a23 ldr r3, [r4, #32] 11262: 6826 ldr r6, [r4, #0] 11264: 079b lsls r3, r3, #30 11266: f106 0690 add.w r6, r6, #144 ; 0x90 1126a: f140 80cc bpl.w 11406 1126e: 4874 ldr r0, [pc, #464] ; (11440 ) 11270: 4b74 ldr r3, [pc, #464] ; (11444 ) 11272: 4798 blx r3 11274: 4602 mov r2, r0 _LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_COLOR, value_color, lv_color_t, _color, nonscalar) 11276: 4630 mov r0, r6 11278: 2179 movs r1, #121 ; 0x79 1127a: 47a8 blx r5 lv_style_set_radius(&styles->slider_knob, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE); 1127c: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar) 1127e: 4e72 ldr r6, [pc, #456] ; (11448 ) lv_style_set_pad_left(&styles->slider_knob, LV_STATE_DEFAULT, LV_DPX(7)); 11280: 4d72 ldr r5, [pc, #456] ; (1144c ) 11282: f647 72ff movw r2, #32767 ; 0x7fff 11286: 2101 movs r1, #1 11288: 3090 adds r0, #144 ; 0x90 1128a: 47b0 blx r6 1128c: 6823 ldr r3, [r4, #0] 1128e: 2000 movs r0, #0 11290: f103 0890 add.w r8, r3, #144 ; 0x90 11294: 47a8 blx r5 11296: ebc0 00c0 rsb r0, r0, r0, lsl #3 1129a: 28ef cmp r0, #239 ; 0xef 1129c: f340 80b6 ble.w 1140c 112a0: 2000 movs r0, #0 112a2: 47a8 blx r5 112a4: 2307 movs r3, #7 112a6: 2250 movs r2, #80 ; 0x50 112a8: fb00 2203 mla r2, r0, r3, r2 112ac: 23a0 movs r3, #160 ; 0xa0 112ae: fb92 f2f3 sdiv r2, r2, r3 112b2: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar) 112b4: 4640 mov r0, r8 112b6: 2112 movs r1, #18 112b8: 47b0 blx r6 lv_style_set_pad_right(&styles->slider_knob, LV_STATE_DEFAULT, LV_DPX(7)); 112ba: 6823 ldr r3, [r4, #0] 112bc: 2000 movs r0, #0 112be: f103 0890 add.w r8, r3, #144 ; 0x90 112c2: 47a8 blx r5 112c4: ebc0 00c0 rsb r0, r0, r0, lsl #3 112c8: 28ef cmp r0, #239 ; 0xef 112ca: f340 80a1 ble.w 11410 112ce: 2000 movs r0, #0 112d0: 47a8 blx r5 112d2: 2307 movs r3, #7 112d4: 2250 movs r2, #80 ; 0x50 112d6: fb00 2203 mla r2, r0, r3, r2 112da: 23a0 movs r3, #160 ; 0xa0 112dc: fb92 f2f3 sdiv r2, r2, r3 112e0: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar) 112e2: 4640 mov r0, r8 112e4: 2113 movs r1, #19 112e6: 47b0 blx r6 lv_style_set_pad_top(&styles->slider_knob, LV_STATE_DEFAULT, LV_DPX(7)); 112e8: 6823 ldr r3, [r4, #0] 112ea: 2000 movs r0, #0 112ec: f103 0890 add.w r8, r3, #144 ; 0x90 112f0: 47a8 blx r5 112f2: ebc0 00c0 rsb r0, r0, r0, lsl #3 112f6: 28ef cmp r0, #239 ; 0xef 112f8: f340 808c ble.w 11414 112fc: 2000 movs r0, #0 112fe: 47a8 blx r5 11300: 2307 movs r3, #7 11302: 2250 movs r2, #80 ; 0x50 11304: fb00 2203 mla r2, r0, r3, r2 11308: 23a0 movs r3, #160 ; 0xa0 1130a: fb92 f2f3 sdiv r2, r2, r3 1130e: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar) 11310: 4640 mov r0, r8 11312: 2110 movs r1, #16 11314: 47b0 blx r6 lv_style_set_pad_bottom(&styles->slider_knob, LV_STATE_DEFAULT, LV_DPX(7)); 11316: 6823 ldr r3, [r4, #0] 11318: 2000 movs r0, #0 1131a: f103 0890 add.w r8, r3, #144 ; 0x90 1131e: 47a8 blx r5 11320: ebc0 00c0 rsb r0, r0, r0, lsl #3 11324: 28ef cmp r0, #239 ; 0xef 11326: dd77 ble.n 11418 11328: 2000 movs r0, #0 1132a: 47a8 blx r5 1132c: 2307 movs r3, #7 1132e: 2250 movs r2, #80 ; 0x50 11330: fb00 2203 mla r2, r0, r3, r2 11334: 23a0 movs r3, #160 ; 0xa0 11336: fb92 f2f3 sdiv r2, r2, r3 1133a: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar) 1133c: 2111 movs r1, #17 1133e: 4640 mov r0, r8 11340: 47b0 blx r6 style_init_reset(&styles->slider_bg); 11342: 6820 ldr r0, [r4, #0] 11344: 3094 adds r0, #148 ; 0x94 11346: 47b8 blx r7 lv_style_set_margin_left(&styles->slider_bg, LV_STATE_DEFAULT, LV_DPX(10)); 11348: 2000 movs r0, #0 1134a: 6827 ldr r7, [r4, #0] 1134c: 47a8 blx r5 1134e: eb00 0080 add.w r0, r0, r0, lsl #2 11352: 0040 lsls r0, r0, #1 11354: 28ef cmp r0, #239 ; 0xef 11356: f107 0794 add.w r7, r7, #148 ; 0x94 1135a: dd5f ble.n 1141c 1135c: 2000 movs r0, #0 1135e: 47a8 blx r5 11360: 230a movs r3, #10 11362: 2250 movs r2, #80 ; 0x50 11364: fb00 2203 mla r2, r0, r3, r2 11368: 23a0 movs r3, #160 ; 0xa0 1136a: fb92 f2f3 sdiv r2, r2, r3 1136e: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(MARGIN_LEFT, margin_left, lv_style_int_t, _int, scalar) 11370: 4638 mov r0, r7 11372: 2117 movs r1, #23 11374: 47b0 blx r6 lv_style_set_margin_right(&styles->slider_bg, LV_STATE_DEFAULT, LV_DPX(10)); 11376: 2000 movs r0, #0 11378: 6827 ldr r7, [r4, #0] 1137a: 47a8 blx r5 1137c: eb00 0080 add.w r0, r0, r0, lsl #2 11380: 0040 lsls r0, r0, #1 11382: 28ef cmp r0, #239 ; 0xef 11384: f107 0794 add.w r7, r7, #148 ; 0x94 11388: dd4a ble.n 11420 1138a: 2000 movs r0, #0 1138c: 47a8 blx r5 1138e: 230a movs r3, #10 11390: 2250 movs r2, #80 ; 0x50 11392: fb00 2203 mla r2, r0, r3, r2 11396: 23a0 movs r3, #160 ; 0xa0 11398: fb92 f2f3 sdiv r2, r2, r3 1139c: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(MARGIN_RIGHT, margin_right, lv_style_int_t, _int, scalar) 1139e: 4638 mov r0, r7 113a0: 2118 movs r1, #24 113a2: 47b0 blx r6 lv_style_set_margin_top(&styles->slider_bg, LV_STATE_DEFAULT, LV_DPX(10)); 113a4: 2000 movs r0, #0 113a6: 6827 ldr r7, [r4, #0] 113a8: 47a8 blx r5 113aa: eb00 0080 add.w r0, r0, r0, lsl #2 113ae: 0040 lsls r0, r0, #1 113b0: 28ef cmp r0, #239 ; 0xef 113b2: f107 0794 add.w r7, r7, #148 ; 0x94 113b6: dd35 ble.n 11424 113b8: 2000 movs r0, #0 113ba: 47a8 blx r5 113bc: 230a movs r3, #10 113be: 2250 movs r2, #80 ; 0x50 113c0: fb00 2203 mla r2, r0, r3, r2 113c4: 23a0 movs r3, #160 ; 0xa0 113c6: fb92 f2f3 sdiv r2, r2, r3 113ca: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(MARGIN_TOP, margin_top, lv_style_int_t, _int, scalar) 113cc: 2115 movs r1, #21 113ce: 4638 mov r0, r7 113d0: 47b0 blx r6 lv_style_set_margin_bottom(&styles->slider_bg, LV_STATE_DEFAULT, LV_DPX(10)); 113d2: 2000 movs r0, #0 113d4: 6824 ldr r4, [r4, #0] 113d6: 47a8 blx r5 113d8: eb00 0080 add.w r0, r0, r0, lsl #2 113dc: 0040 lsls r0, r0, #1 113de: 28ef cmp r0, #239 ; 0xef 113e0: f104 0494 add.w r4, r4, #148 ; 0x94 113e4: dd20 ble.n 11428 113e6: 2000 movs r0, #0 113e8: 47a8 blx r5 113ea: 230a movs r3, #10 113ec: 2250 movs r2, #80 ; 0x50 113ee: fb00 2203 mla r2, r0, r3, r2 113f2: 23a0 movs r3, #160 ; 0xa0 113f4: fb92 f2f3 sdiv r2, r2, r3 113f8: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(MARGIN_BOTTOM, margin_bottom, lv_style_int_t, _int, scalar) 113fa: 4620 mov r0, r4 113fc: 4633 mov r3, r6 113fe: 2116 movs r1, #22 } 11400: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr} 11404: 4718 bx r3 lv_style_set_value_color(&styles->slider_knob, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x31404f) : LV_COLOR_WHITE); 11406: 4b0d ldr r3, [pc, #52] ; (1143c ) 11408: 881a ldrh r2, [r3, #0] 1140a: e734 b.n 11276 lv_style_set_pad_left(&styles->slider_knob, LV_STATE_DEFAULT, LV_DPX(7)); 1140c: 2201 movs r2, #1 1140e: e751 b.n 112b4 lv_style_set_pad_right(&styles->slider_knob, LV_STATE_DEFAULT, LV_DPX(7)); 11410: 2201 movs r2, #1 11412: e766 b.n 112e2 lv_style_set_pad_top(&styles->slider_knob, LV_STATE_DEFAULT, LV_DPX(7)); 11414: 2201 movs r2, #1 11416: e77b b.n 11310 lv_style_set_pad_bottom(&styles->slider_knob, LV_STATE_DEFAULT, LV_DPX(7)); 11418: 2201 movs r2, #1 1141a: e78f b.n 1133c lv_style_set_margin_left(&styles->slider_bg, LV_STATE_DEFAULT, LV_DPX(10)); 1141c: 2201 movs r2, #1 1141e: e7a7 b.n 11370 lv_style_set_margin_right(&styles->slider_bg, LV_STATE_DEFAULT, LV_DPX(10)); 11420: 2201 movs r2, #1 11422: e7bc b.n 1139e lv_style_set_margin_top(&styles->slider_bg, LV_STATE_DEFAULT, LV_DPX(10)); 11424: 2201 movs r2, #1 11426: e7d1 b.n 113cc lv_style_set_margin_bottom(&styles->slider_bg, LV_STATE_DEFAULT, LV_DPX(10)); 11428: 2201 movs r2, #1 1142a: e7e6 b.n 113fa 1142c: 2000d170 .word 0x2000d170 11430: 00010cf5 .word 0x00010cf5 11434: 00005b75 .word 0x00005b75 11438: 00005c45 .word 0x00005c45 1143c: 0002bbf2 .word 0x0002bbf2 11440: 0031404f .word 0x0031404f 11444: 000110d5 .word 0x000110d5 11448: 00005aa5 .word 0x00005aa5 1144c: 0000db7d .word 0x0000db7d 00011450 : { 11450: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} style_init_reset(&styles->gauge_main); 11454: 4cb6 ldr r4, [pc, #728] ; (11730 ) 11456: f8df 82f4 ldr.w r8, [pc, #756] ; 1174c 1145a: 6820 ldr r0, [r4, #0] lv_style_set_line_color(&styles->gauge_main, LV_STATE_DEFAULT, lv_color_hex3(0x888)); 1145c: f8df 92f0 ldr.w r9, [pc, #752] ; 11750 _LV_OBJ_STYLE_SET_GET_DECLARE(LINE_COLOR, line_color, lv_color_t, _color, nonscalar) 11460: 4fb4 ldr r7, [pc, #720] ; (11734 ) style_init_reset(&styles->gauge_main); 11462: 305c adds r0, #92 ; 0x5c 11464: 47c0 blx r8 lv_style_set_line_color(&styles->gauge_main, LV_STATE_DEFAULT, lv_color_hex3(0x888)); 11466: 6820 ldr r0, [r4, #0] 11468: f100 055c add.w r5, r0, #92 ; 0x5c 1146c: f640 0088 movw r0, #2184 ; 0x888 11470: 47c8 blx r9 11472: 2199 movs r1, #153 ; 0x99 11474: 4602 mov r2, r0 11476: 4628 mov r0, r5 11478: 47b8 blx r7 lv_style_set_scale_grad_color(&styles->gauge_main, LV_STATE_DEFAULT, lv_color_hex3(0x888)); 1147a: 6820 ldr r0, [r4, #0] 1147c: f100 055c add.w r5, r0, #92 ; 0x5c 11480: f640 0088 movw r0, #2184 ; 0x888 11484: 47c8 blx r9 _LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_GRAD_COLOR, scale_grad_color, lv_color_t, _color, nonscalar) 11486: 21c9 movs r1, #201 ; 0xc9 11488: 4602 mov r2, r0 1148a: 4628 mov r0, r5 1148c: 47b8 blx r7 lv_style_set_scale_end_color(&styles->gauge_main, LV_STATE_DEFAULT, theme.color_primary); 1148e: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_END_COLOR, scale_end_color, lv_color_t, _color, nonscalar) 11490: 89a2 ldrh r2, [r4, #12] lv_style_set_line_width(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(5)); 11492: 4da9 ldr r5, [pc, #676] ; (11738 ) 11494: 21ca movs r1, #202 ; 0xca 11496: 305c adds r0, #92 ; 0x5c 11498: 47b8 blx r7 1149a: 2000 movs r0, #0 1149c: 6826 ldr r6, [r4, #0] 1149e: 47a8 blx r5 114a0: eb00 0080 add.w r0, r0, r0, lsl #2 114a4: 28ef cmp r0, #239 ; 0xef 114a6: f106 065c add.w r6, r6, #92 ; 0x5c 114aa: f340 818d ble.w 117c8 114ae: 2000 movs r0, #0 114b0: 47a8 blx r5 114b2: 2305 movs r3, #5 114b4: 2250 movs r2, #80 ; 0x50 114b6: fb00 2203 mla r2, r0, r3, r2 114ba: 23a0 movs r3, #160 ; 0xa0 114bc: fb92 f2f3 sdiv r2, r2, r3 114c0: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(LINE_WIDTH, line_width, lv_style_int_t, _int, scalar) 114c2: 4630 mov r0, r6 114c4: 2190 movs r1, #144 ; 0x90 114c6: 4e9d ldr r6, [pc, #628] ; (1173c ) 114c8: 47b0 blx r6 lv_style_set_scale_end_line_width(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(4)); 114ca: 6823 ldr r3, [r4, #0] 114cc: 2000 movs r0, #0 114ce: f103 0a5c add.w sl, r3, #92 ; 0x5c 114d2: 47a8 blx r5 114d4: 283b cmp r0, #59 ; 0x3b 114d6: f340 8179 ble.w 117cc 114da: 2000 movs r0, #0 114dc: 47a8 blx r5 114de: 2328 movs r3, #40 ; 0x28 114e0: f100 0214 add.w r2, r0, #20 114e4: fb92 f2f3 sdiv r2, r2, r3 114e8: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_END_LINE_WIDTH, scale_end_line_width, lv_style_int_t, _int, scalar) 114ea: 4650 mov r0, sl 114ec: 21c3 movs r1, #195 ; 0xc3 114ee: 47b0 blx r6 lv_style_set_scale_end_border_width(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(8)); 114f0: 6823 ldr r3, [r4, #0] 114f2: 2000 movs r0, #0 114f4: f103 0a5c add.w sl, r3, #92 ; 0x5c 114f8: 47a8 blx r5 114fa: 281d cmp r0, #29 114fc: f340 8168 ble.w 117d0 11500: 2000 movs r0, #0 11502: 47a8 blx r5 11504: 2314 movs r3, #20 11506: f100 020a add.w r2, r0, #10 1150a: fb92 f2f3 sdiv r2, r2, r3 1150e: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_END_BORDER_WIDTH, scale_end_border_width, lv_style_int_t, _int, scalar) 11510: 4650 mov r0, sl 11512: 21c2 movs r1, #194 ; 0xc2 11514: 47b0 blx r6 lv_style_set_pad_left(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(20)); 11516: 6823 ldr r3, [r4, #0] 11518: 2000 movs r0, #0 1151a: f103 0a5c add.w sl, r3, #92 ; 0x5c 1151e: 47a8 blx r5 11520: eb00 0080 add.w r0, r0, r0, lsl #2 11524: 0080 lsls r0, r0, #2 11526: 28ef cmp r0, #239 ; 0xef 11528: f340 8154 ble.w 117d4 1152c: 2000 movs r0, #0 1152e: 47a8 blx r5 11530: 2314 movs r3, #20 11532: 2250 movs r2, #80 ; 0x50 11534: fb00 2203 mla r2, r0, r3, r2 11538: 23a0 movs r3, #160 ; 0xa0 1153a: fb92 f2f3 sdiv r2, r2, r3 1153e: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar) 11540: 4650 mov r0, sl 11542: 2112 movs r1, #18 11544: 47b0 blx r6 lv_style_set_pad_right(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(20)); 11546: 6823 ldr r3, [r4, #0] 11548: 2000 movs r0, #0 1154a: f103 0a5c add.w sl, r3, #92 ; 0x5c 1154e: 47a8 blx r5 11550: eb00 0080 add.w r0, r0, r0, lsl #2 11554: 0080 lsls r0, r0, #2 11556: 28ef cmp r0, #239 ; 0xef 11558: f340 813e ble.w 117d8 1155c: 2000 movs r0, #0 1155e: 47a8 blx r5 11560: 2314 movs r3, #20 11562: 2250 movs r2, #80 ; 0x50 11564: fb00 2203 mla r2, r0, r3, r2 11568: 23a0 movs r3, #160 ; 0xa0 1156a: fb92 f2f3 sdiv r2, r2, r3 1156e: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar) 11570: 4650 mov r0, sl 11572: 2113 movs r1, #19 11574: 47b0 blx r6 lv_style_set_pad_top(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(20)); 11576: 6823 ldr r3, [r4, #0] 11578: 2000 movs r0, #0 1157a: f103 0a5c add.w sl, r3, #92 ; 0x5c 1157e: 47a8 blx r5 11580: eb00 0080 add.w r0, r0, r0, lsl #2 11584: 0080 lsls r0, r0, #2 11586: 28ef cmp r0, #239 ; 0xef 11588: f340 8128 ble.w 117dc 1158c: 2000 movs r0, #0 1158e: 47a8 blx r5 11590: 2314 movs r3, #20 11592: 2250 movs r2, #80 ; 0x50 11594: fb00 2203 mla r2, r0, r3, r2 11598: 23a0 movs r3, #160 ; 0xa0 1159a: fb92 f2f3 sdiv r2, r2, r3 1159e: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar) 115a0: 4650 mov r0, sl 115a2: 2110 movs r1, #16 115a4: 47b0 blx r6 lv_style_set_pad_inner(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(20)); 115a6: 6823 ldr r3, [r4, #0] 115a8: 2000 movs r0, #0 115aa: f103 0a5c add.w sl, r3, #92 ; 0x5c 115ae: 47a8 blx r5 115b0: eb00 0080 add.w r0, r0, r0, lsl #2 115b4: 0080 lsls r0, r0, #2 115b6: 28ef cmp r0, #239 ; 0xef 115b8: f340 8112 ble.w 117e0 115bc: 2000 movs r0, #0 115be: 47a8 blx r5 115c0: 2314 movs r3, #20 115c2: 2250 movs r2, #80 ; 0x50 115c4: fb00 2203 mla r2, r0, r3, r2 115c8: 23a0 movs r3, #160 ; 0xa0 115ca: fb92 f2f3 sdiv r2, r2, r3 115ce: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar) 115d0: 4650 mov r0, sl 115d2: 2114 movs r1, #20 115d4: 47b0 blx r6 lv_style_set_scale_width(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(15)); 115d6: 6823 ldr r3, [r4, #0] 115d8: 2000 movs r0, #0 115da: f103 0a5c add.w sl, r3, #92 ; 0x5c 115de: 47a8 blx r5 115e0: ebc0 1000 rsb r0, r0, r0, lsl #4 115e4: 28ef cmp r0, #239 ; 0xef 115e6: f340 80fd ble.w 117e4 115ea: 2000 movs r0, #0 115ec: 47a8 blx r5 115ee: 230f movs r3, #15 115f0: 2250 movs r2, #80 ; 0x50 115f2: fb00 2203 mla r2, r0, r3, r2 115f6: 23a0 movs r3, #160 ; 0xa0 115f8: fb92 f2f3 sdiv r2, r2, r3 115fc: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_WIDTH, scale_width, lv_style_int_t, _int, scalar) 115fe: 4650 mov r0, sl 11600: 21c0 movs r1, #192 ; 0xc0 11602: 47b0 blx r6 lv_style_set_radius(&styles->gauge_main, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE); 11604: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar) 11606: f647 72ff movw r2, #32767 ; 0x7fff 1160a: 2101 movs r1, #1 1160c: 305c adds r0, #92 ; 0x5c 1160e: 47b0 blx r6 style_init_reset(&styles->gauge_strong); 11610: 6820 ldr r0, [r4, #0] 11612: 3060 adds r0, #96 ; 0x60 11614: 47c0 blx r8 lv_style_set_line_color(&styles->gauge_strong, LV_STATE_DEFAULT, lv_color_hex3(0x888)); 11616: 6820 ldr r0, [r4, #0] 11618: f100 0a60 add.w sl, r0, #96 ; 0x60 1161c: f640 0088 movw r0, #2184 ; 0x888 11620: 47c8 blx r9 _LV_OBJ_STYLE_SET_GET_DECLARE(LINE_COLOR, line_color, lv_color_t, _color, nonscalar) 11622: 2199 movs r1, #153 ; 0x99 11624: 4602 mov r2, r0 11626: 4650 mov r0, sl 11628: 47b8 blx r7 lv_style_set_scale_grad_color(&styles->gauge_strong, LV_STATE_DEFAULT, lv_color_hex3(0x888)); 1162a: 6820 ldr r0, [r4, #0] 1162c: f100 0a60 add.w sl, r0, #96 ; 0x60 11630: f640 0088 movw r0, #2184 ; 0x888 11634: 47c8 blx r9 _LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_GRAD_COLOR, scale_grad_color, lv_color_t, _color, nonscalar) 11636: 21c9 movs r1, #201 ; 0xc9 11638: 4602 mov r2, r0 1163a: 4650 mov r0, sl 1163c: 47b8 blx r7 lv_style_set_scale_end_color(&styles->gauge_strong, LV_STATE_DEFAULT, theme.color_primary); 1163e: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_END_COLOR, scale_end_color, lv_color_t, _color, nonscalar) 11640: 89a2 ldrh r2, [r4, #12] 11642: 21ca movs r1, #202 ; 0xca 11644: 3060 adds r0, #96 ; 0x60 11646: 47b8 blx r7 lv_style_set_line_width(&styles->gauge_strong, LV_STATE_DEFAULT, LV_DPX(8)); 11648: 6823 ldr r3, [r4, #0] 1164a: 2000 movs r0, #0 1164c: f103 0960 add.w r9, r3, #96 ; 0x60 11650: 47a8 blx r5 11652: 281d cmp r0, #29 11654: f340 80c8 ble.w 117e8 11658: 2000 movs r0, #0 1165a: 47a8 blx r5 1165c: 2314 movs r3, #20 1165e: f100 020a add.w r2, r0, #10 11662: fb92 f2f3 sdiv r2, r2, r3 11666: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(LINE_WIDTH, line_width, lv_style_int_t, _int, scalar) 11668: 4648 mov r0, r9 1166a: 2190 movs r1, #144 ; 0x90 1166c: 47b0 blx r6 lv_style_set_scale_end_line_width(&styles->gauge_strong, LV_STATE_DEFAULT, LV_DPX(8)); 1166e: 6823 ldr r3, [r4, #0] 11670: 2000 movs r0, #0 11672: f103 0960 add.w r9, r3, #96 ; 0x60 11676: 47a8 blx r5 11678: 281d cmp r0, #29 1167a: f340 80b7 ble.w 117ec 1167e: 2000 movs r0, #0 11680: 47a8 blx r5 11682: 2314 movs r3, #20 11684: f100 020a add.w r2, r0, #10 11688: fb92 f2f3 sdiv r2, r2, r3 1168c: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_END_LINE_WIDTH, scale_end_line_width, lv_style_int_t, _int, scalar) 1168e: 4648 mov r0, r9 11690: 21c3 movs r1, #195 ; 0xc3 11692: 47b0 blx r6 lv_style_set_scale_width(&styles->gauge_strong, LV_STATE_DEFAULT, LV_DPX(25)); 11694: 6823 ldr r3, [r4, #0] 11696: 2000 movs r0, #0 11698: f103 0960 add.w r9, r3, #96 ; 0x60 1169c: 47a8 blx r5 1169e: eb00 0080 add.w r0, r0, r0, lsl #2 116a2: eb00 0080 add.w r0, r0, r0, lsl #2 116a6: 28ef cmp r0, #239 ; 0xef 116a8: f340 80a2 ble.w 117f0 116ac: 2000 movs r0, #0 116ae: 47a8 blx r5 116b0: 2319 movs r3, #25 116b2: 2250 movs r2, #80 ; 0x50 116b4: fb00 2203 mla r2, r0, r3, r2 116b8: 23a0 movs r3, #160 ; 0xa0 116ba: fb92 f2f3 sdiv r2, r2, r3 116be: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_WIDTH, scale_width, lv_style_int_t, _int, scalar) 116c0: 21c0 movs r1, #192 ; 0xc0 116c2: 4648 mov r0, r9 116c4: 47b0 blx r6 style_init_reset(&styles->gauge_needle); 116c6: 6820 ldr r0, [r4, #0] 116c8: 3064 adds r0, #100 ; 0x64 116ca: 47c0 blx r8 lv_style_set_line_color(&styles->gauge_needle, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x464b5b) : LV_COLOR_WHITE); 116cc: 6823 ldr r3, [r4, #0] 116ce: f103 0864 add.w r8, r3, #100 ; 0x64 116d2: 6a23 ldr r3, [r4, #32] 116d4: 079a lsls r2, r3, #30 116d6: f140 808d bpl.w 117f4 116da: 4819 ldr r0, [pc, #100] ; (11740 ) 116dc: 4b19 ldr r3, [pc, #100] ; (11744 ) 116de: 4798 blx r3 116e0: 4602 mov r2, r0 _LV_OBJ_STYLE_SET_GET_DECLARE(LINE_COLOR, line_color, lv_color_t, _color, nonscalar) 116e2: 4640 mov r0, r8 116e4: 2199 movs r1, #153 ; 0x99 116e6: 47b8 blx r7 lv_style_set_line_width(&styles->gauge_needle, LV_STATE_DEFAULT, LV_DPX(8)); 116e8: 6823 ldr r3, [r4, #0] 116ea: 2000 movs r0, #0 116ec: f103 0864 add.w r8, r3, #100 ; 0x64 116f0: 47a8 blx r5 116f2: 281d cmp r0, #29 116f4: f340 8081 ble.w 117fa 116f8: 2000 movs r0, #0 116fa: 47a8 blx r5 116fc: 2314 movs r3, #20 116fe: f100 020a add.w r2, r0, #10 11702: fb92 f2f3 sdiv r2, r2, r3 11706: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(LINE_WIDTH, line_width, lv_style_int_t, _int, scalar) 11708: 4640 mov r0, r8 1170a: 2190 movs r1, #144 ; 0x90 1170c: 47b0 blx r6 lv_style_set_bg_opa(&styles->gauge_needle, LV_STATE_DEFAULT, LV_OPA_COVER); 1170e: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar) 11710: 4b0d ldr r3, [pc, #52] ; (11748 ) 11712: 22ff movs r2, #255 ; 0xff 11714: 212c movs r1, #44 ; 0x2c 11716: 3064 adds r0, #100 ; 0x64 11718: 4798 blx r3 lv_style_set_bg_color(&styles->gauge_needle, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x464b5b) : LV_COLOR_WHITE); 1171a: 6823 ldr r3, [r4, #0] 1171c: f103 0864 add.w r8, r3, #100 ; 0x64 11720: 6a23 ldr r3, [r4, #32] 11722: 079b lsls r3, r3, #30 11724: d56b bpl.n 117fe 11726: 4806 ldr r0, [pc, #24] ; (11740 ) 11728: 4b06 ldr r3, [pc, #24] ; (11744 ) 1172a: 4798 blx r3 1172c: 4602 mov r2, r0 1172e: e011 b.n 11754 11730: 2000d170 .word 0x2000d170 11734: 00005b75 .word 0x00005b75 11738: 0000db7d .word 0x0000db7d 1173c: 00005aa5 .word 0x00005aa5 11740: 00464b5b .word 0x00464b5b 11744: 000110d5 .word 0x000110d5 11748: 00005c45 .word 0x00005c45 1174c: 00010cf5 .word 0x00010cf5 11750: 00010529 .word 0x00010529 _LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar) 11754: 2129 movs r1, #41 ; 0x29 11756: 4640 mov r0, r8 11758: 47b8 blx r7 lv_style_set_radius(&styles->gauge_needle, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE); 1175a: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar) 1175c: f647 72ff movw r2, #32767 ; 0x7fff 11760: 2101 movs r1, #1 11762: 3064 adds r0, #100 ; 0x64 11764: 47b0 blx r6 lv_style_set_size(&styles->gauge_needle, LV_STATE_DEFAULT, LV_DPX(30)); 11766: 2000 movs r0, #0 11768: 6827 ldr r7, [r4, #0] 1176a: 47a8 blx r5 1176c: ebc0 1000 rsb r0, r0, r0, lsl #4 11770: 0040 lsls r0, r0, #1 11772: 28ef cmp r0, #239 ; 0xef 11774: f107 0764 add.w r7, r7, #100 ; 0x64 11778: dd44 ble.n 11804 1177a: 2000 movs r0, #0 1177c: 47a8 blx r5 1177e: 231e movs r3, #30 11780: 2250 movs r2, #80 ; 0x50 11782: fb00 2203 mla r2, r0, r3, r2 11786: 23a0 movs r3, #160 ; 0xa0 11788: fb92 f2f3 sdiv r2, r2, r3 1178c: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(SIZE, size, lv_style_int_t, _int, scalar) 1178e: 2103 movs r1, #3 11790: 4638 mov r0, r7 11792: 47b0 blx r6 lv_style_set_pad_inner(&styles->gauge_needle, LV_STATE_DEFAULT, LV_DPX(10)); 11794: 2000 movs r0, #0 11796: 6824 ldr r4, [r4, #0] 11798: 47a8 blx r5 1179a: eb00 0080 add.w r0, r0, r0, lsl #2 1179e: 0040 lsls r0, r0, #1 117a0: 28ef cmp r0, #239 ; 0xef 117a2: f104 0464 add.w r4, r4, #100 ; 0x64 117a6: dd2f ble.n 11808 117a8: 2000 movs r0, #0 117aa: 47a8 blx r5 117ac: 230a movs r3, #10 117ae: 2250 movs r2, #80 ; 0x50 117b0: fb00 2203 mla r2, r0, r3, r2 117b4: 23a0 movs r3, #160 ; 0xa0 117b6: fb92 f2f3 sdiv r2, r2, r3 117ba: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar) 117bc: 4620 mov r0, r4 117be: 4633 mov r3, r6 117c0: 2114 movs r1, #20 } 117c2: e8bd 47f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr} 117c6: 4718 bx r3 lv_style_set_line_width(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(5)); 117c8: 2201 movs r2, #1 117ca: e67a b.n 114c2 lv_style_set_scale_end_line_width(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(4)); 117cc: 2201 movs r2, #1 117ce: e68c b.n 114ea lv_style_set_scale_end_border_width(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(8)); 117d0: 2201 movs r2, #1 117d2: e69d b.n 11510 lv_style_set_pad_left(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(20)); 117d4: 2201 movs r2, #1 117d6: e6b3 b.n 11540 lv_style_set_pad_right(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(20)); 117d8: 2201 movs r2, #1 117da: e6c9 b.n 11570 lv_style_set_pad_top(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(20)); 117dc: 2201 movs r2, #1 117de: e6df b.n 115a0 lv_style_set_pad_inner(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(20)); 117e0: 2201 movs r2, #1 117e2: e6f5 b.n 115d0 lv_style_set_scale_width(&styles->gauge_main, LV_STATE_DEFAULT, LV_DPX(15)); 117e4: 2201 movs r2, #1 117e6: e70a b.n 115fe lv_style_set_line_width(&styles->gauge_strong, LV_STATE_DEFAULT, LV_DPX(8)); 117e8: 2201 movs r2, #1 117ea: e73d b.n 11668 lv_style_set_scale_end_line_width(&styles->gauge_strong, LV_STATE_DEFAULT, LV_DPX(8)); 117ec: 2201 movs r2, #1 117ee: e74e b.n 1168e lv_style_set_scale_width(&styles->gauge_strong, LV_STATE_DEFAULT, LV_DPX(25)); 117f0: 2201 movs r2, #1 117f2: e765 b.n 116c0 lv_style_set_line_color(&styles->gauge_needle, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x464b5b) : LV_COLOR_WHITE); 117f4: 4b05 ldr r3, [pc, #20] ; (1180c ) 117f6: 881a ldrh r2, [r3, #0] 117f8: e773 b.n 116e2 lv_style_set_line_width(&styles->gauge_needle, LV_STATE_DEFAULT, LV_DPX(8)); 117fa: 2201 movs r2, #1 117fc: e784 b.n 11708 lv_style_set_bg_color(&styles->gauge_needle, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x464b5b) : LV_COLOR_WHITE); 117fe: 4b03 ldr r3, [pc, #12] ; (1180c ) 11800: 881a ldrh r2, [r3, #0] 11802: e7a7 b.n 11754 lv_style_set_size(&styles->gauge_needle, LV_STATE_DEFAULT, LV_DPX(30)); 11804: 2201 movs r2, #1 11806: e7c2 b.n 1178e lv_style_set_pad_inner(&styles->gauge_needle, LV_STATE_DEFAULT, LV_DPX(10)); 11808: 2201 movs r2, #1 1180a: e7d7 b.n 117bc 1180c: 0002bbf2 .word 0x0002bbf2 00011810 : { 11810: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} style_init_reset(&styles->chart_bg); 11814: 4d68 ldr r5, [pc, #416] ; (119b8 ) 11816: 4f69 ldr r7, [pc, #420] ; (119bc ) 11818: 6828 ldr r0, [r5, #0] 1181a: f8df 91bc ldr.w r9, [pc, #444] ; 119d8 1181e: 3040 adds r0, #64 ; 0x40 11820: 47b8 blx r7 lv_style_set_text_color(&styles->chart_bg, LV_STATE_DEFAULT, IS_LIGHT ? COLOR_BG_TEXT_DIS : lv_color_hex(0xa1adbd)); 11822: 6a2b ldr r3, [r5, #32] 11824: 682c ldr r4, [r5, #0] 11826: f013 0f02 tst.w r3, #2 1182a: f104 0440 add.w r4, r4, #64 ; 0x40 1182e: f000 80b1 beq.w 11994 11832: 4b63 ldr r3, [pc, #396] ; (119c0 ) 11834: f640 20aa movw r0, #2730 ; 0xaaa 11838: 4798 blx r3 _LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar) 1183a: 4602 mov r2, r0 1183c: f248 0189 movw r1, #32905 ; 0x8089 11840: 4620 mov r0, r4 11842: f8df 8198 ldr.w r8, [pc, #408] ; 119dc lv_style_set_line_width(&styles->chart_series_bg, LV_STATE_DEFAULT, LV_DPX(1)); 11846: 4c5f ldr r4, [pc, #380] ; (119c4 ) 11848: 47c0 blx r8 style_init_reset(&styles->chart_series_bg); 1184a: 6828 ldr r0, [r5, #0] 1184c: 3044 adds r0, #68 ; 0x44 1184e: 47b8 blx r7 lv_style_set_line_width(&styles->chart_series_bg, LV_STATE_DEFAULT, LV_DPX(1)); 11850: 2000 movs r0, #0 11852: 682e ldr r6, [r5, #0] 11854: 47a0 blx r4 11856: 28ef cmp r0, #239 ; 0xef 11858: f106 0644 add.w r6, r6, #68 ; 0x44 1185c: f340 809d ble.w 1199a 11860: 2000 movs r0, #0 11862: 47a0 blx r4 11864: 23a0 movs r3, #160 ; 0xa0 11866: f100 0250 add.w r2, r0, #80 ; 0x50 1186a: fb92 f2f3 sdiv r2, r2, r3 1186e: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(LINE_WIDTH, line_width, lv_style_int_t, _int, scalar) 11870: 4630 mov r0, r6 11872: 2190 movs r1, #144 ; 0x90 11874: 4e54 ldr r6, [pc, #336] ; (119c8 ) 11876: 47b0 blx r6 lv_style_set_line_dash_width(&styles->chart_series_bg, LV_STATE_DEFAULT, LV_DPX(10)); 11878: 682b ldr r3, [r5, #0] 1187a: 2000 movs r0, #0 1187c: f103 0a44 add.w sl, r3, #68 ; 0x44 11880: 47a0 blx r4 11882: eb00 0080 add.w r0, r0, r0, lsl #2 11886: 0040 lsls r0, r0, #1 11888: 28ef cmp r0, #239 ; 0xef 1188a: f340 8088 ble.w 1199e 1188e: 2000 movs r0, #0 11890: 47a0 blx r4 11892: 230a movs r3, #10 11894: 2250 movs r2, #80 ; 0x50 11896: fb00 2203 mla r2, r0, r3, r2 1189a: 23a0 movs r3, #160 ; 0xa0 1189c: fb92 f2f3 sdiv r2, r2, r3 118a0: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(LINE_DASH_WIDTH, line_dash_width, lv_style_int_t, _int, scalar) 118a2: 4650 mov r0, sl 118a4: 2192 movs r1, #146 ; 0x92 118a6: 47b0 blx r6 lv_style_set_line_dash_gap(&styles->chart_series_bg, LV_STATE_DEFAULT, LV_DPX(10)); 118a8: 682b ldr r3, [r5, #0] 118aa: 2000 movs r0, #0 118ac: f103 0a44 add.w sl, r3, #68 ; 0x44 118b0: 47a0 blx r4 118b2: eb00 0080 add.w r0, r0, r0, lsl #2 118b6: 0040 lsls r0, r0, #1 118b8: 28ef cmp r0, #239 ; 0xef 118ba: dd72 ble.n 119a2 118bc: 2000 movs r0, #0 118be: 47a0 blx r4 118c0: 230a movs r3, #10 118c2: 2250 movs r2, #80 ; 0x50 118c4: fb00 2203 mla r2, r0, r3, r2 118c8: 23a0 movs r3, #160 ; 0xa0 118ca: fb92 f2f3 sdiv r2, r2, r3 118ce: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(LINE_DASH_GAP, line_dash_gap, lv_style_int_t, _int, scalar) 118d0: 4650 mov r0, sl 118d2: 2193 movs r1, #147 ; 0x93 118d4: 47b0 blx r6 lv_style_set_line_color(&styles->chart_series_bg, LV_STATE_DEFAULT, COLOR_BG_BORDER); 118d6: 682b ldr r3, [r5, #0] 118d8: f103 0a44 add.w sl, r3, #68 ; 0x44 118dc: 6a2b ldr r3, [r5, #32] 118de: 079b lsls r3, r3, #30 118e0: bf4c ite mi 118e2: 483a ldrmi r0, [pc, #232] ; (119cc ) 118e4: 483a ldrpl r0, [pc, #232] ; (119d0 ) 118e6: 47c8 blx r9 _LV_OBJ_STYLE_SET_GET_DECLARE(LINE_COLOR, line_color, lv_color_t, _color, nonscalar) 118e8: 2199 movs r1, #153 ; 0x99 118ea: 4602 mov r2, r0 118ec: 4650 mov r0, sl 118ee: 47c0 blx r8 style_init_reset(&styles->chart_series); 118f0: 6828 ldr r0, [r5, #0] 118f2: 3048 adds r0, #72 ; 0x48 118f4: 47b8 blx r7 lv_style_set_line_width(&styles->chart_series, LV_STATE_DEFAULT, LV_DPX(3)); 118f6: 2000 movs r0, #0 118f8: 682f ldr r7, [r5, #0] 118fa: 47a0 blx r4 118fc: eb00 0040 add.w r0, r0, r0, lsl #1 11900: 28ef cmp r0, #239 ; 0xef 11902: f107 0748 add.w r7, r7, #72 ; 0x48 11906: dd4e ble.n 119a6 11908: 2000 movs r0, #0 1190a: 47a0 blx r4 1190c: 2303 movs r3, #3 1190e: 2250 movs r2, #80 ; 0x50 11910: fb00 2203 mla r2, r0, r3, r2 11914: 23a0 movs r3, #160 ; 0xa0 11916: fb92 f2f3 sdiv r2, r2, r3 1191a: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(LINE_WIDTH, line_width, lv_style_int_t, _int, scalar) 1191c: 4638 mov r0, r7 1191e: 2190 movs r1, #144 ; 0x90 11920: 47b0 blx r6 lv_style_set_size(&styles->chart_series, LV_STATE_DEFAULT, LV_DPX(4)); 11922: 2000 movs r0, #0 11924: 682f ldr r7, [r5, #0] 11926: 47a0 blx r4 11928: 283b cmp r0, #59 ; 0x3b 1192a: f107 0748 add.w r7, r7, #72 ; 0x48 1192e: dd3c ble.n 119aa 11930: 2000 movs r0, #0 11932: 47a0 blx r4 11934: 2328 movs r3, #40 ; 0x28 11936: f100 0214 add.w r2, r0, #20 1193a: fb92 f2f3 sdiv r2, r2, r3 1193e: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(SIZE, size, lv_style_int_t, _int, scalar) 11940: 4638 mov r0, r7 11942: 2103 movs r1, #3 11944: 47b0 blx r6 lv_style_set_pad_inner(&styles->chart_series, LV_STATE_DEFAULT, LV_DPX(2)); /*Space between columns*/ 11946: 2000 movs r0, #0 11948: 682f ldr r7, [r5, #0] 1194a: 47a0 blx r4 1194c: 2877 cmp r0, #119 ; 0x77 1194e: f107 0748 add.w r7, r7, #72 ; 0x48 11952: dd2c ble.n 119ae 11954: 2000 movs r0, #0 11956: 47a0 blx r4 11958: 2350 movs r3, #80 ; 0x50 1195a: f100 0228 add.w r2, r0, #40 ; 0x28 1195e: fb92 f2f3 sdiv r2, r2, r3 11962: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar) 11964: 2114 movs r1, #20 11966: 4638 mov r0, r7 11968: 47b0 blx r6 lv_style_set_radius(&styles->chart_series, LV_STATE_DEFAULT, LV_DPX(1)); 1196a: 2000 movs r0, #0 1196c: 682d ldr r5, [r5, #0] 1196e: 47a0 blx r4 11970: 28ef cmp r0, #239 ; 0xef 11972: f105 0548 add.w r5, r5, #72 ; 0x48 11976: dd1c ble.n 119b2 11978: 2000 movs r0, #0 1197a: 47a0 blx r4 1197c: 23a0 movs r3, #160 ; 0xa0 1197e: f100 0250 add.w r2, r0, #80 ; 0x50 11982: fb92 f2f3 sdiv r2, r2, r3 11986: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar) 11988: 4628 mov r0, r5 1198a: 4633 mov r3, r6 1198c: 2101 movs r1, #1 } 1198e: e8bd 47f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, lr} 11992: 4718 bx r3 lv_style_set_text_color(&styles->chart_bg, LV_STATE_DEFAULT, IS_LIGHT ? COLOR_BG_TEXT_DIS : lv_color_hex(0xa1adbd)); 11994: 480f ldr r0, [pc, #60] ; (119d4 ) 11996: 47c8 blx r9 11998: e74f b.n 1183a lv_style_set_line_width(&styles->chart_series_bg, LV_STATE_DEFAULT, LV_DPX(1)); 1199a: 2201 movs r2, #1 1199c: e768 b.n 11870 lv_style_set_line_dash_width(&styles->chart_series_bg, LV_STATE_DEFAULT, LV_DPX(10)); 1199e: 2201 movs r2, #1 119a0: e77f b.n 118a2 lv_style_set_line_dash_gap(&styles->chart_series_bg, LV_STATE_DEFAULT, LV_DPX(10)); 119a2: 2201 movs r2, #1 119a4: e794 b.n 118d0 lv_style_set_line_width(&styles->chart_series, LV_STATE_DEFAULT, LV_DPX(3)); 119a6: 2201 movs r2, #1 119a8: e7b8 b.n 1191c lv_style_set_size(&styles->chart_series, LV_STATE_DEFAULT, LV_DPX(4)); 119aa: 2201 movs r2, #1 119ac: e7c8 b.n 11940 lv_style_set_pad_inner(&styles->chart_series, LV_STATE_DEFAULT, LV_DPX(2)); /*Space between columns*/ 119ae: 2201 movs r2, #1 119b0: e7d8 b.n 11964 lv_style_set_radius(&styles->chart_series, LV_STATE_DEFAULT, LV_DPX(1)); 119b2: 2201 movs r2, #1 119b4: e7e8 b.n 11988 119b6: bf00 nop 119b8: 2000d170 .word 0x2000d170 119bc: 00010cf5 .word 0x00010cf5 119c0: 00010529 .word 0x00010529 119c4: 0000db7d .word 0x0000db7d 119c8: 00005aa5 .word 0x00005aa5 119cc: 00d6dde3 .word 0x00d6dde3 119d0: 00808a97 .word 0x00808a97 119d4: 00a1adbd .word 0x00a1adbd 119d8: 000110d5 .word 0x000110d5 119dc: 00005b75 .word 0x00005b75 000119e0 : { 119e0: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} 119e4: ed2d 8b02 vpush {d8} style_init_reset(&styles->scr); 119e8: 4ca1 ldr r4, [pc, #644] ; (11c70 ) 119ea: 4fa2 ldr r7, [pc, #648] ; (11c74 ) 119ec: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar) 119ee: 4da2 ldr r5, [pc, #648] ; (11c78 ) _LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar) 119f0: f8df a2b0 ldr.w sl, [pc, #688] ; 11ca4 { 119f4: b083 sub sp, #12 style_init_reset(&styles->scr); 119f6: 47b8 blx r7 _LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar) 119f8: 6820 ldr r0, [r4, #0] 119fa: 22ff movs r2, #255 ; 0xff 119fc: 212c movs r1, #44 ; 0x2c 119fe: 47a8 blx r5 lv_style_set_bg_color(&styles->scr, LV_STATE_DEFAULT, COLOR_SCR); 11a00: 6a23 ldr r3, [r4, #32] 11a02: 6826 ldr r6, [r4, #0] 11a04: f013 0f02 tst.w r3, #2 11a08: bf14 ite ne 11a0a: 489c ldrne r0, [pc, #624] ; (11c7c ) 11a0c: 489c ldreq r0, [pc, #624] ; (11c80 ) 11a0e: 46ab mov fp, r5 11a10: 4d9c ldr r5, [pc, #624] ; (11c84 ) 11a12: 47a8 blx r5 _LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar) 11a14: 46b9 mov r9, r7 11a16: 4602 mov r2, r0 11a18: 4f9b ldr r7, [pc, #620] ; (11c88 ) 11a1a: 4630 mov r0, r6 11a1c: 2129 movs r1, #41 ; 0x29 11a1e: 47b8 blx r7 lv_style_set_text_color(&styles->scr, LV_STATE_DEFAULT, COLOR_SCR_TEXT); 11a20: 6a23 ldr r3, [r4, #32] 11a22: 6826 ldr r6, [r4, #0] 11a24: 0798 lsls r0, r3, #30 11a26: bf4c ite mi 11a28: 4898 ldrmi r0, [pc, #608] ; (11c8c ) 11a2a: 4899 ldrpl r0, [pc, #612] ; (11c90 ) 11a2c: 47a8 blx r5 _LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar) 11a2e: f248 0189 movw r1, #32905 ; 0x8089 11a32: 4602 mov r2, r0 11a34: 4630 mov r0, r6 11a36: 47b8 blx r7 lv_style_set_value_color(&styles->scr, LV_STATE_DEFAULT, COLOR_SCR_TEXT); 11a38: 6a23 ldr r3, [r4, #32] 11a3a: 6826 ldr r6, [r4, #0] 11a3c: 0799 lsls r1, r3, #30 11a3e: bf4c ite mi 11a40: 4892 ldrmi r0, [pc, #584] ; (11c8c ) 11a42: 4893 ldrpl r0, [pc, #588] ; (11c90 ) 11a44: 47a8 blx r5 _LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_COLOR, value_color, lv_color_t, _color, nonscalar) 11a46: 2179 movs r1, #121 ; 0x79 11a48: 4602 mov r2, r0 11a4a: 4630 mov r0, r6 11a4c: 47b8 blx r7 _LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar) 11a4e: 6962 ldr r2, [r4, #20] 11a50: 6820 ldr r0, [r4, #0] lv_style_set_radius(&styles->bg, LV_STATE_DEFAULT, LV_DPX(8)); 11a52: 4e90 ldr r6, [pc, #576] ; (11c94 ) 11a54: f248 018e movw r1, #32910 ; 0x808e 11a58: 47d0 blx sl _LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_FONT, value_font, const lv_font_t *, _ptr, scalar) 11a5a: 6962 ldr r2, [r4, #20] 11a5c: 6820 ldr r0, [r4, #0] 11a5e: 217e movs r1, #126 ; 0x7e 11a60: 47d0 blx sl style_init_reset(&styles->bg); 11a62: 6820 ldr r0, [r4, #0] 11a64: 3004 adds r0, #4 11a66: 47c8 blx r9 lv_style_set_radius(&styles->bg, LV_STATE_DEFAULT, LV_DPX(8)); 11a68: 6823 ldr r3, [r4, #0] 11a6a: 2000 movs r0, #0 11a6c: f103 0804 add.w r8, r3, #4 11a70: 47b0 blx r6 11a72: 281d cmp r0, #29 11a74: f340 8568 ble.w 12548 11a78: 2000 movs r0, #0 11a7a: 47b0 blx r6 11a7c: 2314 movs r3, #20 11a7e: f100 020a add.w r2, r0, #10 11a82: fb92 f2f3 sdiv r2, r2, r3 11a86: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar) 11a88: 4640 mov r0, r8 11a8a: 2101 movs r1, #1 11a8c: f8df 8218 ldr.w r8, [pc, #536] ; 11ca8 11a90: 47c0 blx r8 lv_style_set_bg_opa(&styles->bg, LV_STATE_DEFAULT, LV_OPA_COVER); 11a92: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar) 11a94: 22ff movs r2, #255 ; 0xff 11a96: 3004 adds r0, #4 11a98: 212c movs r1, #44 ; 0x2c 11a9a: 47d8 blx fp lv_style_set_bg_color(&styles->bg, LV_STATE_DEFAULT, COLOR_BG); 11a9c: 6823 ldr r3, [r4, #0] 11a9e: f103 0b04 add.w fp, r3, #4 11aa2: 6a23 ldr r3, [r4, #32] 11aa4: 079a lsls r2, r3, #30 11aa6: bf54 ite pl 11aa8: 487b ldrpl r0, [pc, #492] ; (11c98 ) 11aaa: f06f 407f mvnmi.w r0, #4278190080 ; 0xff000000 11aae: 47a8 blx r5 _LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar) 11ab0: 2129 movs r1, #41 ; 0x29 11ab2: 4602 mov r2, r0 11ab4: 4658 mov r0, fp 11ab6: 47b8 blx r7 lv_style_set_border_color(&styles->bg, LV_STATE_DEFAULT, COLOR_BG_BORDER); 11ab8: 6823 ldr r3, [r4, #0] 11aba: f103 0b04 add.w fp, r3, #4 11abe: 6a23 ldr r3, [r4, #32] 11ac0: 079b lsls r3, r3, #30 11ac2: bf4c ite mi 11ac4: 4875 ldrmi r0, [pc, #468] ; (11c9c ) 11ac6: 4876 ldrpl r0, [pc, #472] ; (11ca0 ) 11ac8: 47a8 blx r5 _LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar) 11aca: 2139 movs r1, #57 ; 0x39 11acc: 4602 mov r2, r0 11ace: 4658 mov r0, fp 11ad0: 47b8 blx r7 lv_style_set_border_color(&styles->bg, LV_STATE_FOCUSED, theme.color_primary); 11ad2: 6820 ldr r0, [r4, #0] 11ad4: 89a2 ldrh r2, [r4, #12] 11ad6: f240 2139 movw r1, #569 ; 0x239 11ada: 3004 adds r0, #4 11adc: 47b8 blx r7 lv_style_set_border_color(&styles->bg, LV_STATE_EDITED, theme.color_secondary); 11ade: 6820 ldr r0, [r4, #0] 11ae0: 89e2 ldrh r2, [r4, #14] 11ae2: f240 4139 movw r1, #1081 ; 0x439 11ae6: 3004 adds r0, #4 11ae8: 47b8 blx r7 lv_style_set_border_width(&styles->bg, LV_STATE_DEFAULT, BORDER_WIDTH); 11aea: 6823 ldr r3, [r4, #0] 11aec: 2000 movs r0, #0 11aee: f103 0b04 add.w fp, r3, #4 11af2: 47b0 blx r6 11af4: 2877 cmp r0, #119 ; 0x77 11af6: f340 852a ble.w 1254e 11afa: 2000 movs r0, #0 11afc: 47b0 blx r6 11afe: 2350 movs r3, #80 ; 0x50 11b00: f100 0228 add.w r2, r0, #40 ; 0x28 11b04: fb92 f2f3 sdiv r2, r2, r3 11b08: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar) 11b0a: 4658 mov r0, fp 11b0c: 2130 movs r1, #48 ; 0x30 11b0e: 47c0 blx r8 lv_style_set_border_post(&styles->bg, LV_STATE_DEFAULT, true); 11b10: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_POST, border_post, bool, _int, scalar) 11b12: 2201 movs r2, #1 11b14: 2133 movs r1, #51 ; 0x33 11b16: 3004 adds r0, #4 11b18: 47c0 blx r8 lv_style_set_text_font(&styles->bg, LV_STATE_DEFAULT, theme.font_normal); 11b1a: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar) 11b1c: 6962 ldr r2, [r4, #20] 11b1e: 3004 adds r0, #4 11b20: f248 018e movw r1, #32910 ; 0x808e 11b24: 47d0 blx sl lv_style_set_text_color(&styles->bg, LV_STATE_DEFAULT, COLOR_BG_TEXT); 11b26: 6823 ldr r3, [r4, #0] 11b28: f103 0b04 add.w fp, r3, #4 11b2c: 6a23 ldr r3, [r4, #32] 11b2e: 0798 lsls r0, r3, #30 11b30: bf4c ite mi 11b32: 4856 ldrmi r0, [pc, #344] ; (11c8c ) 11b34: f06f 407f mvnpl.w r0, #4278190080 ; 0xff000000 11b38: 47a8 blx r5 _LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar) 11b3a: f248 0189 movw r1, #32905 ; 0x8089 11b3e: 4602 mov r2, r0 11b40: 4658 mov r0, fp 11b42: 47b8 blx r7 lv_style_set_value_font(&styles->bg, LV_STATE_DEFAULT, theme.font_normal); 11b44: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_FONT, value_font, const lv_font_t *, _ptr, scalar) 11b46: 6962 ldr r2, [r4, #20] 11b48: 3004 adds r0, #4 11b4a: 217e movs r1, #126 ; 0x7e 11b4c: 47d0 blx sl lv_style_set_value_color(&styles->bg, LV_STATE_DEFAULT, COLOR_BG_TEXT); 11b4e: 6823 ldr r3, [r4, #0] 11b50: f103 0a04 add.w sl, r3, #4 11b54: 6a23 ldr r3, [r4, #32] 11b56: 0799 lsls r1, r3, #30 11b58: bf4c ite mi 11b5a: 484c ldrmi r0, [pc, #304] ; (11c8c ) 11b5c: f06f 407f mvnpl.w r0, #4278190080 ; 0xff000000 11b60: 47a8 blx r5 _LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_COLOR, value_color, lv_color_t, _color, nonscalar) 11b62: 2179 movs r1, #121 ; 0x79 11b64: 4602 mov r2, r0 11b66: 4650 mov r0, sl 11b68: 47b8 blx r7 lv_style_set_image_recolor(&styles->bg, LV_STATE_DEFAULT, COLOR_BG_TEXT); 11b6a: 6823 ldr r3, [r4, #0] 11b6c: f103 0a04 add.w sl, r3, #4 11b70: 6a23 ldr r3, [r4, #32] 11b72: 079a lsls r2, r3, #30 11b74: bf4c ite mi 11b76: 4845 ldrmi r0, [pc, #276] ; (11c8c ) 11b78: f06f 407f mvnpl.w r0, #4278190080 ; 0xff000000 11b7c: 47a8 blx r5 _LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_RECOLOR, image_recolor, lv_color_t, _color, nonscalar) 11b7e: f248 01a9 movw r1, #32937 ; 0x80a9 11b82: 4602 mov r2, r0 11b84: 4650 mov r0, sl 11b86: 47b8 blx r7 lv_style_set_line_color(&styles->bg, LV_STATE_DEFAULT, COLOR_BG_TEXT); 11b88: 6823 ldr r3, [r4, #0] 11b8a: f103 0a04 add.w sl, r3, #4 11b8e: 6a23 ldr r3, [r4, #32] 11b90: 079b lsls r3, r3, #30 11b92: bf4c ite mi 11b94: 483d ldrmi r0, [pc, #244] ; (11c8c ) 11b96: f06f 407f mvnpl.w r0, #4278190080 ; 0xff000000 11b9a: 47a8 blx r5 _LV_OBJ_STYLE_SET_GET_DECLARE(LINE_COLOR, line_color, lv_color_t, _color, nonscalar) 11b9c: 2199 movs r1, #153 ; 0x99 11b9e: 4602 mov r2, r0 11ba0: 4650 mov r0, sl 11ba2: 47b8 blx r7 lv_style_set_line_width(&styles->bg, LV_STATE_DEFAULT, 1); 11ba4: 6820 ldr r0, [r4, #0] lv_style_set_pad_left(&styles->bg, LV_STATE_DEFAULT, PAD_DEF + BORDER_WIDTH); 11ba6: f8df a104 ldr.w sl, [pc, #260] ; 11cac _LV_OBJ_STYLE_SET_GET_DECLARE(LINE_WIDTH, line_width, lv_style_int_t, _int, scalar) 11baa: 2201 movs r2, #1 11bac: 2190 movs r1, #144 ; 0x90 11bae: 3004 adds r0, #4 11bb0: 47c0 blx r8 11bb2: 6823 ldr r3, [r4, #0] 11bb4: 2000 movs r0, #0 11bb6: 3304 adds r3, #4 11bb8: ee08 3a10 vmov s16, r3 11bbc: 47d0 blx sl 11bbe: 2801 cmp r0, #1 11bc0: f04f 0000 mov.w r0, #0 11bc4: f200 84d3 bhi.w 1256e 11bc8: 47b0 blx r6 11bca: ebc0 1000 rsb r0, r0, r0, lsl #4 11bce: 28ef cmp r0, #239 ; 0xef 11bd0: f300 84c0 bgt.w 12554 11bd4: f04f 0b01 mov.w fp, #1 11bd8: 2000 movs r0, #0 11bda: 47b0 blx r6 11bdc: 2877 cmp r0, #119 ; 0x77 11bde: f340 84d1 ble.w 12584 11be2: 2000 movs r0, #0 11be4: 47b0 blx r6 11be6: 2350 movs r3, #80 ; 0x50 11be8: 3028 adds r0, #40 ; 0x28 11bea: fb90 f0f3 sdiv r0, r0, r3 11bee: b280 uxth r0, r0 11bf0: eb0b 0200 add.w r2, fp, r0 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar) 11bf4: b212 sxth r2, r2 11bf6: ee18 0a10 vmov r0, s16 11bfa: 2112 movs r1, #18 11bfc: 47c0 blx r8 lv_style_set_pad_right(&styles->bg, LV_STATE_DEFAULT, PAD_DEF + BORDER_WIDTH); 11bfe: 6823 ldr r3, [r4, #0] 11c00: 2000 movs r0, #0 11c02: 3304 adds r3, #4 11c04: ee08 3a10 vmov s16, r3 11c08: 47d0 blx sl 11c0a: 2801 cmp r0, #1 11c0c: f04f 0000 mov.w r0, #0 11c10: f200 84c8 bhi.w 125a4 11c14: 47b0 blx r6 11c16: ebc0 1000 rsb r0, r0, r0, lsl #4 11c1a: 28ef cmp r0, #239 ; 0xef 11c1c: f300 84b5 bgt.w 1258a 11c20: f04f 0b01 mov.w fp, #1 11c24: 2000 movs r0, #0 11c26: 47b0 blx r6 11c28: 2877 cmp r0, #119 ; 0x77 11c2a: f340 84c6 ble.w 125ba 11c2e: 2000 movs r0, #0 11c30: 47b0 blx r6 11c32: 2350 movs r3, #80 ; 0x50 11c34: 3028 adds r0, #40 ; 0x28 11c36: fb90 f0f3 sdiv r0, r0, r3 11c3a: b280 uxth r0, r0 11c3c: eb0b 0200 add.w r2, fp, r0 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar) 11c40: b212 sxth r2, r2 11c42: ee18 0a10 vmov r0, s16 11c46: 2113 movs r1, #19 11c48: 47c0 blx r8 lv_style_set_pad_top(&styles->bg, LV_STATE_DEFAULT, PAD_DEF + BORDER_WIDTH); 11c4a: 6823 ldr r3, [r4, #0] 11c4c: 2000 movs r0, #0 11c4e: 3304 adds r3, #4 11c50: ee08 3a10 vmov s16, r3 11c54: 47d0 blx sl 11c56: 2801 cmp r0, #1 11c58: f04f 0000 mov.w r0, #0 11c5c: f200 84bd bhi.w 125da 11c60: 47b0 blx r6 11c62: ebc0 1000 rsb r0, r0, r0, lsl #4 11c66: 28ef cmp r0, #239 ; 0xef 11c68: f300 84aa bgt.w 125c0 11c6c: e020 b.n 11cb0 11c6e: bf00 nop 11c70: 2000d170 .word 0x2000d170 11c74: 00010cf5 .word 0x00010cf5 11c78: 00005c45 .word 0x00005c45 11c7c: 00eaeff3 .word 0x00eaeff3 11c80: 00444b5a .word 0x00444b5a 11c84: 000110d5 .word 0x000110d5 11c88: 00005b75 .word 0x00005b75 11c8c: 003b3e42 .word 0x003b3e42 11c90: 00e7e9ec .word 0x00e7e9ec 11c94: 0000db7d .word 0x0000db7d 11c98: 00586273 .word 0x00586273 11c9c: 00d6dde3 .word 0x00d6dde3 11ca0: 00808a97 .word 0x00808a97 11ca4: 00005d19 .word 0x00005d19 11ca8: 00005aa5 .word 0x00005aa5 11cac: 0000db95 .word 0x0000db95 11cb0: f04f 0b01 mov.w fp, #1 11cb4: 2000 movs r0, #0 11cb6: 47b0 blx r6 11cb8: 2877 cmp r0, #119 ; 0x77 11cba: f340 8499 ble.w 125f0 11cbe: 2000 movs r0, #0 11cc0: 47b0 blx r6 11cc2: 2350 movs r3, #80 ; 0x50 11cc4: 3028 adds r0, #40 ; 0x28 11cc6: fb90 f0f3 sdiv r0, r0, r3 11cca: b280 uxth r0, r0 11ccc: eb0b 0200 add.w r2, fp, r0 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar) 11cd0: b212 sxth r2, r2 11cd2: ee18 0a10 vmov r0, s16 11cd6: 2110 movs r1, #16 11cd8: 47c0 blx r8 lv_style_set_pad_bottom(&styles->bg, LV_STATE_DEFAULT, PAD_DEF + BORDER_WIDTH); 11cda: 6823 ldr r3, [r4, #0] 11cdc: 2000 movs r0, #0 11cde: 3304 adds r3, #4 11ce0: ee08 3a10 vmov s16, r3 11ce4: 47d0 blx sl 11ce6: 2801 cmp r0, #1 11ce8: f04f 0000 mov.w r0, #0 11cec: f200 8490 bhi.w 12610 11cf0: 47b0 blx r6 11cf2: ebc0 1000 rsb r0, r0, r0, lsl #4 11cf6: 28ef cmp r0, #239 ; 0xef 11cf8: f300 847d bgt.w 125f6 11cfc: f04f 0b01 mov.w fp, #1 11d00: 2000 movs r0, #0 11d02: 47b0 blx r6 11d04: 2877 cmp r0, #119 ; 0x77 11d06: f340 848e ble.w 12626 11d0a: 2000 movs r0, #0 11d0c: 47b0 blx r6 11d0e: 2350 movs r3, #80 ; 0x50 11d10: 3028 adds r0, #40 ; 0x28 11d12: fb90 f0f3 sdiv r0, r0, r3 11d16: b280 uxth r0, r0 11d18: eb0b 0200 add.w r2, fp, r0 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar) 11d1c: b212 sxth r2, r2 11d1e: ee18 0a10 vmov r0, s16 11d22: 2111 movs r1, #17 11d24: 47c0 blx r8 lv_style_set_pad_inner(&styles->bg, LV_STATE_DEFAULT, PAD_DEF); 11d26: 6823 ldr r3, [r4, #0] 11d28: 2000 movs r0, #0 11d2a: f103 0b04 add.w fp, r3, #4 11d2e: 47d0 blx sl 11d30: 2801 cmp r0, #1 11d32: f04f 0000 mov.w r0, #0 11d36: f200 8485 bhi.w 12644 11d3a: 47b0 blx r6 11d3c: ebc0 1000 rsb r0, r0, r0, lsl #4 11d40: 28ef cmp r0, #239 ; 0xef 11d42: f300 8473 bgt.w 1262c 11d46: 2201 movs r2, #1 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar) 11d48: 2114 movs r1, #20 11d4a: 4658 mov r0, fp 11d4c: 47c0 blx r8 lv_style_set_transition_time(&styles->bg, LV_STATE_DEFAULT, TRANSITION_TIME); 11d4e: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_TIME, transition_time, lv_style_int_t, _int, scalar) 11d50: 2296 movs r2, #150 ; 0x96 11d52: 21b0 movs r1, #176 ; 0xb0 11d54: 3004 adds r0, #4 11d56: 47c0 blx r8 lv_style_set_transition_prop_6(&styles->bg, LV_STATE_DEFAULT, LV_STYLE_BORDER_COLOR); 11d58: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_6, transition_prop_6, lv_style_int_t, _int, scalar) 11d5a: 2239 movs r2, #57 ; 0x39 11d5c: 21b7 movs r1, #183 ; 0xb7 11d5e: 3004 adds r0, #4 11d60: 47c0 blx r8 style_init_reset(&styles->bg_sec); 11d62: 6820 ldr r0, [r4, #0] 11d64: 300c adds r0, #12 11d66: 47c8 blx r9 lv_style_copy(&styles->bg_sec, &styles->bg); 11d68: 6820 ldr r0, [r4, #0] 11d6a: 4bac ldr r3, [pc, #688] ; (1201c ) 11d6c: 1d01 adds r1, r0, #4 11d6e: 300c adds r0, #12 11d70: 4798 blx r3 lv_style_set_bg_color(&styles->bg_sec, LV_STATE_DEFAULT, COLOR_BG_SEC); 11d72: 6a23 ldr r3, [r4, #32] 11d74: 6826 ldr r6, [r4, #0] 11d76: 0798 lsls r0, r3, #30 11d78: bf4c ite mi 11d7a: 48a9 ldrmi r0, [pc, #676] ; (12020 ) 11d7c: 48a9 ldrpl r0, [pc, #676] ; (12024 ) 11d7e: 47a8 blx r5 11d80: 360c adds r6, #12 _LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar) 11d82: 4602 mov r2, r0 11d84: 2129 movs r1, #41 ; 0x29 11d86: 4630 mov r0, r6 11d88: 47b8 blx r7 lv_style_set_border_color(&styles->bg_sec, LV_STATE_DEFAULT, COLOR_BG_SEC_BORDER); 11d8a: 6a23 ldr r3, [r4, #32] 11d8c: 6826 ldr r6, [r4, #0] 11d8e: 0799 lsls r1, r3, #30 11d90: bf4c ite mi 11d92: 48a5 ldrmi r0, [pc, #660] ; (12028 ) 11d94: 48a5 ldrpl r0, [pc, #660] ; (1202c ) 11d96: 47a8 blx r5 11d98: 360c adds r6, #12 _LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar) 11d9a: 4602 mov r2, r0 11d9c: 2139 movs r1, #57 ; 0x39 11d9e: 4630 mov r0, r6 11da0: 47b8 blx r7 lv_style_set_text_color(&styles->bg_sec, LV_STATE_DEFAULT, COLOR_BG_SEC_TEXT); 11da2: 6a23 ldr r3, [r4, #32] 11da4: 6826 ldr r6, [r4, #0] 11da6: 079a lsls r2, r3, #30 11da8: bf4c ite mi 11daa: 48a1 ldrmi r0, [pc, #644] ; (12030 ) 11dac: 48a1 ldrpl r0, [pc, #644] ; (12034 ) 11dae: 47a8 blx r5 11db0: 360c adds r6, #12 _LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar) 11db2: 4602 mov r2, r0 11db4: f248 0189 movw r1, #32905 ; 0x8089 11db8: 4630 mov r0, r6 11dba: 47b8 blx r7 lv_style_set_value_color(&styles->bg_sec, LV_STATE_DEFAULT, COLOR_BG_SEC_TEXT); 11dbc: 6a23 ldr r3, [r4, #32] 11dbe: 6826 ldr r6, [r4, #0] 11dc0: 079b lsls r3, r3, #30 11dc2: bf4c ite mi 11dc4: 489a ldrmi r0, [pc, #616] ; (12030 ) 11dc6: 489b ldrpl r0, [pc, #620] ; (12034 ) 11dc8: 47a8 blx r5 11dca: 360c adds r6, #12 _LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_COLOR, value_color, lv_color_t, _color, nonscalar) 11dcc: 4602 mov r2, r0 11dce: 2179 movs r1, #121 ; 0x79 11dd0: 4630 mov r0, r6 11dd2: 47b8 blx r7 lv_style_set_image_recolor(&styles->bg_sec, LV_STATE_DEFAULT, COLOR_BG_SEC_TEXT); 11dd4: 6a23 ldr r3, [r4, #32] 11dd6: 6826 ldr r6, [r4, #0] 11dd8: 0798 lsls r0, r3, #30 11dda: bf4c ite mi 11ddc: 4894 ldrmi r0, [pc, #592] ; (12030 ) 11dde: 4895 ldrpl r0, [pc, #596] ; (12034 ) 11de0: 47a8 blx r5 11de2: 360c adds r6, #12 _LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_RECOLOR, image_recolor, lv_color_t, _color, nonscalar) 11de4: 4602 mov r2, r0 11de6: f248 01a9 movw r1, #32937 ; 0x80a9 11dea: 4630 mov r0, r6 11dec: 47b8 blx r7 lv_style_set_line_color(&styles->bg_sec, LV_STATE_DEFAULT, COLOR_BG_SEC_TEXT); 11dee: 6a23 ldr r3, [r4, #32] 11df0: 6826 ldr r6, [r4, #0] 11df2: 0799 lsls r1, r3, #30 11df4: bf4c ite mi 11df6: 488e ldrmi r0, [pc, #568] ; (12030 ) 11df8: 488e ldrpl r0, [pc, #568] ; (12034 ) 11dfa: 47a8 blx r5 11dfc: 360c adds r6, #12 _LV_OBJ_STYLE_SET_GET_DECLARE(LINE_COLOR, line_color, lv_color_t, _color, nonscalar) 11dfe: 4602 mov r2, r0 11e00: 2199 movs r1, #153 ; 0x99 11e02: 4630 mov r0, r6 11e04: 47b8 blx r7 style_init_reset(&styles->bg_click); 11e06: 6820 ldr r0, [r4, #0] 11e08: 3008 adds r0, #8 11e0a: 47c8 blx r9 lv_style_set_bg_color(&styles->bg_click, LV_STATE_PRESSED, COLOR_BG_PR); 11e0c: 6a23 ldr r3, [r4, #32] 11e0e: 6826 ldr r6, [r4, #0] lv_style_set_bg_color(&styles->bg_click, LV_STATE_PRESSED | LV_STATE_CHECKED, COLOR_BG_PR_CHK); 11e10: f8df 9250 ldr.w r9, [pc, #592] ; 12064 lv_style_set_bg_color(&styles->bg_click, LV_STATE_PRESSED, COLOR_BG_PR); 11e14: 079a lsls r2, r3, #30 11e16: bf4c ite mi 11e18: 4887 ldrmi r0, [pc, #540] ; (12038 ) 11e1a: 4888 ldrpl r0, [pc, #544] ; (1203c ) 11e1c: 47a8 blx r5 11e1e: 3608 adds r6, #8 _LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar) 11e20: 4602 mov r2, r0 11e22: f241 0129 movw r1, #4137 ; 0x1029 11e26: 4630 mov r0, r6 11e28: 47b8 blx r7 lv_style_set_bg_color(&styles->bg_click, LV_STATE_CHECKED, COLOR_BG_CHK); 11e2a: 6820 ldr r0, [r4, #0] 11e2c: 89a2 ldrh r2, [r4, #12] 11e2e: f240 1129 movw r1, #297 ; 0x129 11e32: 3008 adds r0, #8 11e34: 47b8 blx r7 lv_style_set_bg_color(&styles->bg_click, LV_STATE_PRESSED | LV_STATE_CHECKED, COLOR_BG_PR_CHK); 11e36: 6820 ldr r0, [r4, #0] 11e38: 2133 movs r1, #51 ; 0x33 11e3a: f100 0608 add.w r6, r0, #8 11e3e: 89a0 ldrh r0, [r4, #12] 11e40: 47c8 blx r9 11e42: f241 1129 movw r1, #4393 ; 0x1129 11e46: 4602 mov r2, r0 11e48: 4630 mov r0, r6 11e4a: 47b8 blx r7 lv_style_set_bg_color(&styles->bg_click, LV_STATE_DISABLED, COLOR_BG_DIS); 11e4c: 6a23 ldr r3, [r4, #32] 11e4e: 6826 ldr r6, [r4, #0] 11e50: 079b lsls r3, r3, #30 11e52: bf54 ite pl 11e54: 487a ldrpl r0, [pc, #488] ; (12040 ) 11e56: f06f 407f mvnmi.w r0, #4278190080 ; 0xff000000 11e5a: 47a8 blx r5 11e5c: 3608 adds r6, #8 11e5e: 4602 mov r2, r0 11e60: f242 0129 movw r1, #8233 ; 0x2029 11e64: 4630 mov r0, r6 11e66: 47b8 blx r7 lv_style_set_border_width(&styles->bg_click, LV_STATE_CHECKED, 0); 11e68: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar) 11e6a: 2200 movs r2, #0 11e6c: f44f 7198 mov.w r1, #304 ; 0x130 11e70: 3008 adds r0, #8 11e72: 47c0 blx r8 lv_style_set_border_color(&styles->bg_click, LV_STATE_FOCUSED | LV_STATE_PRESSED, lv_color_darken(theme.color_primary, 11e74: 6820 ldr r0, [r4, #0] 11e76: f8df 81f0 ldr.w r8, [pc, #496] ; 12068 11e7a: f100 0608 add.w r6, r0, #8 11e7e: 2133 movs r1, #51 ; 0x33 11e80: 89a0 ldrh r0, [r4, #12] 11e82: 47c8 blx r9 _LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar) 11e84: f241 2139 movw r1, #4665 ; 0x1239 11e88: 4602 mov r2, r0 11e8a: 4630 mov r0, r6 11e8c: 47b8 blx r7 lv_style_set_border_color(&styles->bg_click, LV_STATE_PRESSED, COLOR_BG_BORDER_PR); 11e8e: 6a23 ldr r3, [r4, #32] 11e90: 6826 ldr r6, [r4, #0] 11e92: f013 0f02 tst.w r3, #2 11e96: f106 0608 add.w r6, r6, #8 11e9a: f000 83de beq.w 1265a 11e9e: f640 40cc movw r0, #3276 ; 0xccc 11ea2: 47c0 blx r8 11ea4: 4602 mov r2, r0 11ea6: f241 0139 movw r1, #4153 ; 0x1039 11eaa: 4630 mov r0, r6 11eac: 47b8 blx r7 lv_style_set_border_color(&styles->bg_click, LV_STATE_CHECKED, COLOR_BG_BORDER_CHK); 11eae: 6a23 ldr r3, [r4, #32] 11eb0: 6826 ldr r6, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar) 11eb2: f8df b1b8 ldr.w fp, [pc, #440] ; 1206c 11eb6: 0798 lsls r0, r3, #30 11eb8: bf4c ite mi 11eba: 4862 ldrmi r0, [pc, #392] ; (12044 ) 11ebc: 4862 ldrpl r0, [pc, #392] ; (12048 ) 11ebe: 47a8 blx r5 11ec0: 3608 adds r6, #8 _LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar) 11ec2: 4602 mov r2, r0 11ec4: f240 1139 movw r1, #313 ; 0x139 11ec8: 4630 mov r0, r6 11eca: 47b8 blx r7 lv_style_set_border_color(&styles->bg_click, LV_STATE_PRESSED | LV_STATE_CHECKED, COLOR_BG_BORDER_CHK_PR); 11ecc: 6a23 ldr r3, [r4, #32] 11ece: 4d5f ldr r5, [pc, #380] ; (1204c ) 11ed0: 6826 ldr r6, [r4, #0] lv_style_set_border_color(&styles->bg_click, LV_STATE_DISABLED, COLOR_BG_BORDER_DIS); 11ed2: 4c5f ldr r4, [pc, #380] ; (12050 ) lv_style_set_border_color(&styles->bg_click, LV_STATE_PRESSED | LV_STATE_CHECKED, COLOR_BG_BORDER_CHK_PR); 11ed4: f013 0f02 tst.w r3, #2 11ed8: bf14 ite ne 11eda: 485a ldrne r0, [pc, #360] ; (12044 ) 11edc: 485a ldreq r0, [pc, #360] ; (12048 ) 11ede: 47a8 blx r5 11ee0: 3608 adds r6, #8 11ee2: 4602 mov r2, r0 11ee4: f241 1139 movw r1, #4409 ; 0x1139 11ee8: 4630 mov r0, r6 11eea: 47b8 blx r7 lv_style_set_border_color(&styles->bg_click, LV_STATE_DISABLED, COLOR_BG_BORDER_DIS); 11eec: 6a23 ldr r3, [r4, #32] 11eee: 6826 ldr r6, [r4, #0] 11ef0: 0799 lsls r1, r3, #30 11ef2: bf4c ite mi 11ef4: 4857 ldrmi r0, [pc, #348] ; (12054 ) 11ef6: 4854 ldrpl r0, [pc, #336] ; (12048 ) 11ef8: 47a8 blx r5 11efa: 3608 adds r6, #8 11efc: 4602 mov r2, r0 11efe: f242 0139 movw r1, #8249 ; 0x2039 11f02: 4630 mov r0, r6 11f04: 4e54 ldr r6, [pc, #336] ; (12058 ) 11f06: 47b0 blx r6 lv_style_set_text_color(&styles->bg_click, LV_STATE_PRESSED, COLOR_BG_TEXT_PR); 11f08: 6a23 ldr r3, [r4, #32] 11f0a: 6827 ldr r7, [r4, #0] 11f0c: 079a lsls r2, r3, #30 11f0e: bf4c ite mi 11f10: 484c ldrmi r0, [pc, #304] ; (12044 ) 11f12: f06f 407f mvnpl.w r0, #4278190080 ; 0xff000000 11f16: 47a8 blx r5 11f18: 3708 adds r7, #8 _LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar) 11f1a: 4602 mov r2, r0 11f1c: f249 0189 movw r1, #37001 ; 0x9089 11f20: 4638 mov r0, r7 11f22: 47b0 blx r6 lv_style_set_text_color(&styles->bg_click, LV_STATE_CHECKED, COLOR_BG_TEXT_CHK); 11f24: 6820 ldr r0, [r4, #0] 11f26: f100 0708 add.w r7, r0, #8 11f2a: f06f 407f mvn.w r0, #4278190080 ; 0xff000000 11f2e: 47a8 blx r5 11f30: f248 1189 movw r1, #33161 ; 0x8189 11f34: 4602 mov r2, r0 11f36: 4638 mov r0, r7 11f38: 47b0 blx r6 lv_style_set_text_color(&styles->bg_click, LV_STATE_PRESSED | LV_STATE_CHECKED, COLOR_BG_TEXT_CHK_PR); 11f3a: 6820 ldr r0, [r4, #0] 11f3c: f100 0708 add.w r7, r0, #8 11f40: f06f 407f mvn.w r0, #4278190080 ; 0xff000000 11f44: 47a8 blx r5 11f46: f249 1189 movw r1, #37257 ; 0x9189 11f4a: 4602 mov r2, r0 11f4c: 4638 mov r0, r7 11f4e: 47b0 blx r6 lv_style_set_text_color(&styles->bg_click, LV_STATE_DISABLED, COLOR_BG_TEXT_DIS); 11f50: 6a23 ldr r3, [r4, #32] 11f52: 6827 ldr r7, [r4, #0] 11f54: 079b lsls r3, r3, #30 11f56: bf4c ite mi 11f58: f640 20aa movwmi r0, #2730 ; 0xaaa 11f5c: f640 1099 movwpl r0, #2457 ; 0x999 11f60: 47c0 blx r8 11f62: 3708 adds r7, #8 11f64: 4602 mov r2, r0 11f66: f24a 0189 movw r1, #41097 ; 0xa089 11f6a: 4638 mov r0, r7 11f6c: 47b0 blx r6 lv_style_set_image_recolor(&styles->bg_click, LV_STATE_PRESSED, COLOR_BG_TEXT_PR); 11f6e: 6a23 ldr r3, [r4, #32] 11f70: 6827 ldr r7, [r4, #0] 11f72: 0798 lsls r0, r3, #30 11f74: bf4c ite mi 11f76: 4833 ldrmi r0, [pc, #204] ; (12044 ) 11f78: f06f 407f mvnpl.w r0, #4278190080 ; 0xff000000 11f7c: 47a8 blx r5 11f7e: 3708 adds r7, #8 _LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_RECOLOR, image_recolor, lv_color_t, _color, nonscalar) 11f80: 4602 mov r2, r0 11f82: f249 01a9 movw r1, #37033 ; 0x90a9 11f86: 4638 mov r0, r7 11f88: 47b0 blx r6 lv_style_set_image_recolor(&styles->bg_click, LV_STATE_CHECKED, COLOR_BG_TEXT_CHK); 11f8a: 6820 ldr r0, [r4, #0] 11f8c: f100 0708 add.w r7, r0, #8 11f90: f06f 407f mvn.w r0, #4278190080 ; 0xff000000 11f94: 47a8 blx r5 11f96: f248 11a9 movw r1, #33193 ; 0x81a9 11f9a: 4602 mov r2, r0 11f9c: 4638 mov r0, r7 11f9e: 47b0 blx r6 lv_style_set_image_recolor(&styles->bg_click, LV_STATE_PRESSED | LV_STATE_CHECKED, COLOR_BG_TEXT_CHK_PR); 11fa0: 6820 ldr r0, [r4, #0] 11fa2: f100 0708 add.w r7, r0, #8 11fa6: f06f 407f mvn.w r0, #4278190080 ; 0xff000000 11faa: 47a8 blx r5 11fac: f249 11a9 movw r1, #37289 ; 0x91a9 11fb0: 4602 mov r2, r0 11fb2: 4638 mov r0, r7 11fb4: 47b0 blx r6 lv_style_set_image_recolor(&styles->bg_click, LV_STATE_DISABLED, COLOR_BG_TEXT_DIS); 11fb6: 6a23 ldr r3, [r4, #32] 11fb8: 6827 ldr r7, [r4, #0] 11fba: 0799 lsls r1, r3, #30 11fbc: bf4c ite mi 11fbe: f640 20aa movwmi r0, #2730 ; 0xaaa 11fc2: f640 1099 movwpl r0, #2457 ; 0x999 11fc6: 47c0 blx r8 11fc8: 3708 adds r7, #8 11fca: 4602 mov r2, r0 11fcc: f24a 01a9 movw r1, #41129 ; 0xa0a9 11fd0: 4638 mov r0, r7 11fd2: 47b0 blx r6 lv_style_set_transition_prop_5(&styles->bg_click, LV_STATE_DEFAULT, LV_STYLE_BG_COLOR); 11fd4: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_5, transition_prop_5, lv_style_int_t, _int, scalar) 11fd6: 4f21 ldr r7, [pc, #132] ; (1205c ) 11fd8: 2229 movs r2, #41 ; 0x29 11fda: 21b6 movs r1, #182 ; 0xb6 11fdc: 3008 adds r0, #8 11fde: 47b8 blx r7 style_init_reset(&styles->btn); 11fe0: 6820 ldr r0, [r4, #0] 11fe2: 4b1f ldr r3, [pc, #124] ; (12060 ) 11fe4: 3010 adds r0, #16 11fe6: 4798 blx r3 lv_style_set_radius(&styles->btn, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE); 11fe8: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar) 11fea: f647 72ff movw r2, #32767 ; 0x7fff 11fee: 2101 movs r1, #1 11ff0: 3010 adds r0, #16 11ff2: 47b8 blx r7 lv_style_set_bg_opa(&styles->btn, LV_STATE_DEFAULT, LV_OPA_COVER); 11ff4: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar) 11ff6: 22ff movs r2, #255 ; 0xff 11ff8: 3010 adds r0, #16 11ffa: 212c movs r1, #44 ; 0x2c 11ffc: 47d8 blx fp lv_style_set_bg_color(&styles->btn, LV_STATE_DEFAULT, COLOR_BTN); 11ffe: 6823 ldr r3, [r4, #0] 12000: f8cd b004 str.w fp, [sp, #4] 12004: f103 0a10 add.w sl, r3, #16 12008: 6a23 ldr r3, [r4, #32] 1200a: f013 0f02 tst.w r3, #2 1200e: bf0c ite eq 12010: 480b ldreq r0, [pc, #44] ; (12040 ) 12012: f06f 407f mvnne.w r0, #4278190080 ; 0xff000000 12016: 47a8 blx r5 _LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar) 12018: 2129 movs r1, #41 ; 0x29 1201a: e029 b.n 12070 1201c: 00005a05 .word 0x00005a05 12020: 00d4d7d9 .word 0x00d4d7d9 12024: 0045494d .word 0x0045494d 12028: 00dfe7ed .word 0x00dfe7ed 1202c: 00404040 .word 0x00404040 12030: 0031404f .word 0x0031404f 12034: 00a5a8ad .word 0x00a5a8ad 12038: 00eeeeee .word 0x00eeeeee 1203c: 00494f57 .word 0x00494f57 12040: 00586273 .word 0x00586273 12044: 003b3e42 .word 0x003b3e42 12048: 005f656e .word 0x005f656e 1204c: 000110d5 .word 0x000110d5 12050: 2000d170 .word 0x2000d170 12054: 00d6dde3 .word 0x00d6dde3 12058: 00005b75 .word 0x00005b75 1205c: 00005aa5 .word 0x00005aa5 12060: 00010cf5 .word 0x00010cf5 12064: 0000e5bb .word 0x0000e5bb 12068: 00010529 .word 0x00010529 1206c: 00005c45 .word 0x00005c45 12070: 4602 mov r2, r0 12072: 4650 mov r0, sl 12074: 47b0 blx r6 lv_style_set_bg_color(&styles->btn, LV_STATE_PRESSED, COLOR_BTN_PR); 12076: 6823 ldr r3, [r4, #0] 12078: f103 0a10 add.w sl, r3, #16 1207c: 6a23 ldr r3, [r4, #32] 1207e: 079a lsls r2, r3, #30 12080: f140 82ee bpl.w 12660 12084: f06f 407f mvn.w r0, #4278190080 ; 0xff000000 12088: 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))); 1208a: 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))); 1208c: 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))); 12090: f04f 0be6 mov.w fp, #230 ; 0xe6 12094: f3c0 22c4 ubfx r2, r0, #11, #5 12098: 2319 movs r3, #25 1209a: fb0b f202 mul.w r2, fp, r2 1209e: 08c9 lsrs r1, r1, #3 120a0: 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))); 120a4: f3c0 1245 ubfx r2, r0, #5, #6 120a8: fb0b f202 mul.w r2, fp, r2 120ac: f3cc 1c45 ubfx ip, ip, #5, #6 120b0: 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))); 120b4: 7b22 ldrb r2, [r4, #12] 120b6: 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))); 120ba: 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))); 120be: f002 021f and.w r2, r2, #31 120c2: 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))); 120c6: 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))); 120ca: 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))); 120ce: 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))); 120d2: 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))); 120d6: 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))); 120da: fb0e f202 mul.w r2, lr, r2 120de: f3c2 52c4 ubfx r2, r2, #23, #5 120e2: ea42 124c orr.w r2, r2, ip, lsl #5 120e6: ea42 22c1 orr.w r2, r2, r1, lsl #11 120ea: 4650 mov r0, sl 120ec: f241 0129 movw r1, #4137 ; 0x1029 120f0: 47b0 blx r6 lv_style_set_bg_color(&styles->btn, LV_STATE_CHECKED, COLOR_BTN_CHK); 120f2: 6820 ldr r0, [r4, #0] 120f4: 89a2 ldrh r2, [r4, #12] 120f6: f240 1129 movw r1, #297 ; 0x129 120fa: 3010 adds r0, #16 120fc: 47b0 blx r6 lv_style_set_bg_color(&styles->btn, LV_STATE_CHECKED | LV_STATE_PRESSED, COLOR_BTN_CHK_PR); 120fe: 6820 ldr r0, [r4, #0] 12100: 214c movs r1, #76 ; 0x4c 12102: f100 0a10 add.w sl, r0, #16 12106: 89a0 ldrh r0, [r4, #12] 12108: 47c8 blx r9 1210a: f241 1129 movw r1, #4393 ; 0x1129 1210e: 4602 mov r2, r0 12110: 4650 mov r0, sl 12112: 47b0 blx r6 lv_style_set_bg_color(&styles->btn, LV_STATE_DISABLED, COLOR_BTN); 12114: 6823 ldr r3, [r4, #0] 12116: f103 0910 add.w r9, r3, #16 1211a: 6a23 ldr r3, [r4, #32] 1211c: 079b lsls r3, r3, #30 1211e: bf54 ite pl 12120: 48b2 ldrpl r0, [pc, #712] ; (123ec ) 12122: f06f 407f mvnmi.w r0, #4278190080 ; 0xff000000 12126: 47a8 blx r5 12128: f242 0129 movw r1, #8233 ; 0x2029 1212c: 4602 mov r2, r0 1212e: 4648 mov r0, r9 12130: 47b0 blx r6 lv_style_set_bg_color(&styles->btn, LV_STATE_DISABLED | LV_STATE_CHECKED, COLOR_BTN_DIS); 12132: 6823 ldr r3, [r4, #0] 12134: f103 0910 add.w r9, r3, #16 12138: 6a23 ldr r3, [r4, #32] 1213a: 0798 lsls r0, r3, #30 1213c: bf4c ite mi 1213e: f640 40cc movwmi r0, #3276 ; 0xccc 12142: f640 0088 movwpl r0, #2184 ; 0x888 12146: 47c0 blx r8 12148: f242 1129 movw r1, #8489 ; 0x2129 1214c: 4602 mov r2, r0 1214e: 4648 mov r0, r9 12150: 47b0 blx r6 lv_style_set_border_color(&styles->btn, LV_STATE_DEFAULT, COLOR_BTN_BORDER); 12152: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar) 12154: 89a2 ldrh r2, [r4, #12] 12156: 2139 movs r1, #57 ; 0x39 12158: 3010 adds r0, #16 1215a: 47b0 blx r6 lv_style_set_border_color(&styles->btn, LV_STATE_PRESSED, COLOR_BTN_BORDER_PR); 1215c: 6820 ldr r0, [r4, #0] 1215e: 89a2 ldrh r2, [r4, #12] 12160: f241 0139 movw r1, #4153 ; 0x1039 12164: 3010 adds r0, #16 12166: 47b0 blx r6 lv_style_set_border_color(&styles->btn, LV_STATE_DISABLED, COLOR_BTN_BORDER_INA); 12168: 6823 ldr r3, [r4, #0] 1216a: f103 0910 add.w r9, r3, #16 1216e: 6a23 ldr r3, [r4, #32] 12170: 0799 lsls r1, r3, #30 12172: f140 82a0 bpl.w 126b6 12176: f640 0088 movw r0, #2184 ; 0x888 1217a: 47c0 blx r8 1217c: 4602 mov r2, r0 1217e: f242 0139 movw r1, #8249 ; 0x2039 12182: 4648 mov r0, r9 12184: 47b0 blx r6 lv_style_set_border_width(&styles->btn, LV_STATE_DEFAULT, BORDER_WIDTH); 12186: 6823 ldr r3, [r4, #0] 12188: f8df 8270 ldr.w r8, [pc, #624] ; 123fc 1218c: 2000 movs r0, #0 1218e: f103 0910 add.w r9, r3, #16 12192: 47c0 blx r8 12194: 2877 cmp r0, #119 ; 0x77 12196: f340 8291 ble.w 126bc 1219a: 2000 movs r0, #0 1219c: 47c0 blx r8 1219e: 2350 movs r3, #80 ; 0x50 121a0: f100 0228 add.w r2, r0, #40 ; 0x28 121a4: fb92 f2f3 sdiv r2, r2, r3 121a8: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar) 121aa: 4648 mov r0, r9 121ac: 2130 movs r1, #48 ; 0x30 121ae: f8df 9250 ldr.w r9, [pc, #592] ; 12400 121b2: 47c8 blx r9 lv_style_set_border_opa(&styles->btn, LV_STATE_CHECKED, LV_OPA_TRANSP); 121b4: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_OPA, border_opa, lv_opa_t, _opa, scalar) 121b6: 4b8e ldr r3, [pc, #568] ; (123f0 ) 121b8: 2200 movs r2, #0 121ba: 3010 adds r0, #16 121bc: f44f 719e mov.w r1, #316 ; 0x13c 121c0: 4798 blx r3 lv_style_set_text_color(&styles->btn, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x31404f) : lv_color_hex(0xffffff)); 121c2: 6823 ldr r3, [r4, #0] 121c4: f103 0a10 add.w sl, r3, #16 121c8: 6a23 ldr r3, [r4, #32] 121ca: 079a lsls r2, r3, #30 121cc: bf4c ite mi 121ce: 4889 ldrmi r0, [pc, #548] ; (123f4 ) 121d0: f06f 407f mvnpl.w r0, #4278190080 ; 0xff000000 121d4: 47a8 blx r5 _LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar) 121d6: f248 0189 movw r1, #32905 ; 0x8089 121da: 4602 mov r2, r0 121dc: 4650 mov r0, sl 121de: 47b0 blx r6 lv_style_set_text_color(&styles->btn, LV_STATE_PRESSED, IS_LIGHT ? lv_color_hex(0x31404f) : lv_color_hex(0xffffff)); 121e0: 6823 ldr r3, [r4, #0] 121e2: f103 0a10 add.w sl, r3, #16 121e6: 6a23 ldr r3, [r4, #32] 121e8: 079b lsls r3, r3, #30 121ea: bf4c ite mi 121ec: 4881 ldrmi r0, [pc, #516] ; (123f4 ) 121ee: f06f 407f mvnpl.w r0, #4278190080 ; 0xff000000 121f2: 47a8 blx r5 121f4: f249 0189 movw r1, #37001 ; 0x9089 121f8: 4602 mov r2, r0 121fa: 4650 mov r0, sl 121fc: 47b0 blx r6 lv_style_set_text_color(&styles->btn, LV_STATE_CHECKED, lv_color_hex(0xffffff)); 121fe: 6820 ldr r0, [r4, #0] 12200: f100 0a10 add.w sl, r0, #16 12204: f06f 407f mvn.w r0, #4278190080 ; 0xff000000 12208: 47a8 blx r5 1220a: f248 1189 movw r1, #33161 ; 0x8189 1220e: 4602 mov r2, r0 12210: 4650 mov r0, sl 12212: 47b0 blx r6 lv_style_set_text_color(&styles->btn, LV_STATE_CHECKED | LV_STATE_PRESSED, lv_color_hex(0xffffff)); 12214: 6820 ldr r0, [r4, #0] 12216: f100 0a10 add.w sl, r0, #16 1221a: f06f 407f mvn.w r0, #4278190080 ; 0xff000000 1221e: 47a8 blx r5 12220: f249 1189 movw r1, #37257 ; 0x9189 12224: 4602 mov r2, r0 12226: 4650 mov r0, sl 12228: 47b0 blx r6 lv_style_set_text_color(&styles->btn, LV_STATE_DISABLED, IS_LIGHT ? lv_color_hex(0x888888) : lv_color_hex(0x888888)); 1222a: 6820 ldr r0, [r4, #0] 1222c: f100 0a10 add.w sl, r0, #16 12230: 4871 ldr r0, [pc, #452] ; (123f8 ) 12232: 47a8 blx r5 12234: f24a 0189 movw r1, #41097 ; 0xa089 12238: 4602 mov r2, r0 1223a: 4650 mov r0, sl 1223c: 47b0 blx r6 lv_style_set_image_recolor(&styles->btn, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x31404f) : lv_color_hex(0xffffff)); 1223e: 6823 ldr r3, [r4, #0] 12240: f103 0a10 add.w sl, r3, #16 12244: 6a23 ldr r3, [r4, #32] 12246: 0798 lsls r0, r3, #30 12248: bf4c ite mi 1224a: 486a ldrmi r0, [pc, #424] ; (123f4 ) 1224c: f06f 407f mvnpl.w r0, #4278190080 ; 0xff000000 12250: 47a8 blx r5 _LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_RECOLOR, image_recolor, lv_color_t, _color, nonscalar) 12252: f248 01a9 movw r1, #32937 ; 0x80a9 12256: 4602 mov r2, r0 12258: 4650 mov r0, sl 1225a: 47b0 blx r6 lv_style_set_image_recolor(&styles->btn, LV_STATE_PRESSED, IS_LIGHT ? lv_color_hex(0x31404f) : lv_color_hex(0xffffff)); 1225c: 6823 ldr r3, [r4, #0] 1225e: f103 0a10 add.w sl, r3, #16 12262: 6a23 ldr r3, [r4, #32] 12264: 0799 lsls r1, r3, #30 12266: bf4c ite mi 12268: 4862 ldrmi r0, [pc, #392] ; (123f4 ) 1226a: f06f 407f mvnpl.w r0, #4278190080 ; 0xff000000 1226e: 47a8 blx r5 12270: f249 01a9 movw r1, #37033 ; 0x90a9 12274: 4602 mov r2, r0 12276: 4650 mov r0, sl 12278: 47b0 blx r6 lv_style_set_image_recolor(&styles->btn, LV_STATE_PRESSED, lv_color_hex(0xffffff)); 1227a: 6820 ldr r0, [r4, #0] 1227c: f100 0a10 add.w sl, r0, #16 12280: f06f 407f mvn.w r0, #4278190080 ; 0xff000000 12284: 47a8 blx r5 12286: f249 01a9 movw r1, #37033 ; 0x90a9 1228a: 4602 mov r2, r0 1228c: 4650 mov r0, sl 1228e: 47b0 blx r6 lv_style_set_image_recolor(&styles->btn, LV_STATE_CHECKED | LV_STATE_PRESSED, lv_color_hex(0xffffff)); 12290: 6820 ldr r0, [r4, #0] 12292: f100 0a10 add.w sl, r0, #16 12296: f06f 407f mvn.w r0, #4278190080 ; 0xff000000 1229a: 47a8 blx r5 1229c: f249 11a9 movw r1, #37289 ; 0x91a9 122a0: 4602 mov r2, r0 122a2: 4650 mov r0, sl 122a4: 47b0 blx r6 lv_style_set_image_recolor(&styles->btn, LV_STATE_DISABLED, IS_LIGHT ? lv_color_hex(0x888888) : lv_color_hex(0x888888)); 122a6: 6820 ldr r0, [r4, #0] 122a8: f100 0a10 add.w sl, r0, #16 122ac: 4852 ldr r0, [pc, #328] ; (123f8 ) 122ae: 47a8 blx r5 122b0: f24a 01a9 movw r1, #41129 ; 0xa0a9 122b4: 4602 mov r2, r0 122b6: 4650 mov r0, sl 122b8: 47b0 blx r6 lv_style_set_value_color(&styles->btn, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x31404f) : lv_color_hex(0xffffff)); 122ba: 6823 ldr r3, [r4, #0] 122bc: f103 0a10 add.w sl, r3, #16 122c0: 6a23 ldr r3, [r4, #32] 122c2: 079a lsls r2, r3, #30 122c4: bf4c ite mi 122c6: 484b ldrmi r0, [pc, #300] ; (123f4 ) 122c8: f06f 407f mvnpl.w r0, #4278190080 ; 0xff000000 122cc: 47a8 blx r5 _LV_OBJ_STYLE_SET_GET_DECLARE(VALUE_COLOR, value_color, lv_color_t, _color, nonscalar) 122ce: 2179 movs r1, #121 ; 0x79 122d0: 4602 mov r2, r0 122d2: 4650 mov r0, sl 122d4: 47b0 blx r6 lv_style_set_value_color(&styles->btn, LV_STATE_PRESSED, IS_LIGHT ? lv_color_hex(0x31404f) : lv_color_hex(0xffffff)); 122d6: 6823 ldr r3, [r4, #0] 122d8: f103 0a10 add.w sl, r3, #16 122dc: 6a23 ldr r3, [r4, #32] 122de: 079b lsls r3, r3, #30 122e0: bf4c ite mi 122e2: 4844 ldrmi r0, [pc, #272] ; (123f4 ) 122e4: f06f 407f mvnpl.w r0, #4278190080 ; 0xff000000 122e8: 47a8 blx r5 122ea: f241 0179 movw r1, #4217 ; 0x1079 122ee: 4602 mov r2, r0 122f0: 4650 mov r0, sl 122f2: 47b0 blx r6 lv_style_set_value_color(&styles->btn, LV_STATE_CHECKED, lv_color_hex(0xffffff)); 122f4: 6820 ldr r0, [r4, #0] 122f6: f100 0a10 add.w sl, r0, #16 122fa: f06f 407f mvn.w r0, #4278190080 ; 0xff000000 122fe: 47a8 blx r5 12300: f240 1179 movw r1, #377 ; 0x179 12304: 4602 mov r2, r0 12306: 4650 mov r0, sl 12308: 47b0 blx r6 lv_style_set_value_color(&styles->btn, LV_STATE_CHECKED | LV_STATE_PRESSED, lv_color_hex(0xffffff)); 1230a: 6820 ldr r0, [r4, #0] 1230c: f100 0a10 add.w sl, r0, #16 12310: f06f 407f mvn.w r0, #4278190080 ; 0xff000000 12314: 47a8 blx r5 12316: f241 1179 movw r1, #4473 ; 0x1179 1231a: 4602 mov r2, r0 1231c: 4650 mov r0, sl 1231e: 47b0 blx r6 lv_style_set_value_color(&styles->btn, LV_STATE_DISABLED, IS_LIGHT ? lv_color_hex(0x888888) : lv_color_hex(0x888888)); 12320: 6820 ldr r0, [r4, #0] 12322: f100 0a10 add.w sl, r0, #16 12326: 4834 ldr r0, [pc, #208] ; (123f8 ) 12328: 47a8 blx r5 1232a: f242 0179 movw r1, #8313 ; 0x2079 1232e: 4602 mov r2, r0 12330: 4650 mov r0, sl 12332: 47b0 blx r6 lv_style_set_pad_left(&styles->btn, LV_STATE_DEFAULT, LV_DPX(40)); 12334: 2000 movs r0, #0 12336: 6825 ldr r5, [r4, #0] 12338: 47c0 blx r8 1233a: eb00 0080 add.w r0, r0, r0, lsl #2 1233e: 00c0 lsls r0, r0, #3 12340: 28ef cmp r0, #239 ; 0xef 12342: f105 0510 add.w r5, r5, #16 12346: f340 81bb ble.w 126c0 1234a: 2000 movs r0, #0 1234c: 47c0 blx r8 1234e: 2328 movs r3, #40 ; 0x28 12350: 2250 movs r2, #80 ; 0x50 12352: fb00 2203 mla r2, r0, r3, r2 12356: 23a0 movs r3, #160 ; 0xa0 12358: fb92 f2f3 sdiv r2, r2, r3 1235c: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar) 1235e: 4628 mov r0, r5 12360: 2112 movs r1, #18 12362: 47c8 blx r9 lv_style_set_pad_right(&styles->btn, LV_STATE_DEFAULT, LV_DPX(40)); 12364: 2000 movs r0, #0 12366: 6825 ldr r5, [r4, #0] 12368: 47c0 blx r8 1236a: eb00 0080 add.w r0, r0, r0, lsl #2 1236e: 00c0 lsls r0, r0, #3 12370: 28ef cmp r0, #239 ; 0xef 12372: f105 0510 add.w r5, r5, #16 12376: f340 81a5 ble.w 126c4 1237a: 2000 movs r0, #0 1237c: 47c0 blx r8 1237e: 2328 movs r3, #40 ; 0x28 12380: 2250 movs r2, #80 ; 0x50 12382: fb00 2203 mla r2, r0, r3, r2 12386: 23a0 movs r3, #160 ; 0xa0 12388: fb92 f2f3 sdiv r2, r2, r3 1238c: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar) 1238e: 4628 mov r0, r5 12390: 2113 movs r1, #19 12392: 47c8 blx r9 lv_style_set_pad_top(&styles->btn, LV_STATE_DEFAULT, LV_DPX(15)); 12394: 2000 movs r0, #0 12396: 6825 ldr r5, [r4, #0] 12398: 47c0 blx r8 1239a: ebc0 1000 rsb r0, r0, r0, lsl #4 1239e: 28ef cmp r0, #239 ; 0xef 123a0: f105 0510 add.w r5, r5, #16 123a4: f340 8190 ble.w 126c8 123a8: 2000 movs r0, #0 123aa: 47c0 blx r8 123ac: 230f movs r3, #15 123ae: 2250 movs r2, #80 ; 0x50 123b0: fb00 2203 mla r2, r0, r3, r2 123b4: 23a0 movs r3, #160 ; 0xa0 123b6: fb92 f2f3 sdiv r2, r2, r3 123ba: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar) 123bc: 4628 mov r0, r5 123be: 2110 movs r1, #16 123c0: 47c8 blx r9 lv_style_set_pad_bottom(&styles->btn, LV_STATE_DEFAULT, LV_DPX(15)); 123c2: 2000 movs r0, #0 123c4: 6825 ldr r5, [r4, #0] 123c6: 47c0 blx r8 123c8: ebc0 1000 rsb r0, r0, r0, lsl #4 123cc: 28ef cmp r0, #239 ; 0xef 123ce: f105 0510 add.w r5, r5, #16 123d2: f340 817b ble.w 126cc 123d6: 2000 movs r0, #0 123d8: 47c0 blx r8 123da: 230f movs r3, #15 123dc: 2250 movs r2, #80 ; 0x50 123de: fb00 2203 mla r2, r0, r3, r2 123e2: 23a0 movs r3, #160 ; 0xa0 123e4: fb92 f2f3 sdiv r2, r2, r3 123e8: b212 sxth r2, r2 123ea: e00b b.n 12404 123ec: 00586273 .word 0x00586273 123f0: 00005c45 .word 0x00005c45 123f4: 0031404f .word 0x0031404f 123f8: 00888888 .word 0x00888888 123fc: 0000db7d .word 0x0000db7d 12400: 00005aa5 .word 0x00005aa5 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar) 12404: 4628 mov r0, r5 12406: 2111 movs r1, #17 12408: 47c8 blx r9 lv_style_set_pad_inner(&styles->btn, LV_STATE_DEFAULT, LV_DPX(20)); 1240a: 2000 movs r0, #0 1240c: 6825 ldr r5, [r4, #0] 1240e: 47c0 blx r8 12410: eb00 0080 add.w r0, r0, r0, lsl #2 12414: 0080 lsls r0, r0, #2 12416: 28ef cmp r0, #239 ; 0xef 12418: f105 0510 add.w r5, r5, #16 1241c: f340 8158 ble.w 126d0 12420: 2000 movs r0, #0 12422: 47c0 blx r8 12424: 2314 movs r3, #20 12426: 2250 movs r2, #80 ; 0x50 12428: fb00 2203 mla r2, r0, r3, r2 1242c: 23a0 movs r3, #160 ; 0xa0 1242e: fb92 f2f3 sdiv r2, r2, r3 12432: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar) 12434: 4628 mov r0, r5 12436: 2114 movs r1, #20 12438: 47b8 blx r7 lv_style_set_outline_width(&styles->btn, LV_STATE_DEFAULT, 3); 1243a: 6820 ldr r0, [r4, #0] style_init_reset(&styles->pad_inner); 1243c: 4dbb ldr r5, [pc, #748] ; (1272c ) _LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_WIDTH, outline_width, lv_style_int_t, _int, scalar) 1243e: 2203 movs r2, #3 12440: 2140 movs r1, #64 ; 0x40 12442: 3010 adds r0, #16 12444: 47b8 blx r7 lv_style_set_outline_opa(&styles->btn, LV_STATE_DEFAULT, LV_OPA_0); 12446: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_OPA, outline_opa, lv_opa_t, _opa, scalar) 12448: 9b01 ldr r3, [sp, #4] 1244a: 2200 movs r2, #0 1244c: 214c movs r1, #76 ; 0x4c 1244e: 3010 adds r0, #16 12450: 4798 blx r3 lv_style_set_outline_opa(&styles->btn, LV_STATE_FOCUSED, LV_OPA_50); 12452: 6820 ldr r0, [r4, #0] 12454: 9b01 ldr r3, [sp, #4] 12456: 227f movs r2, #127 ; 0x7f 12458: f44f 7113 mov.w r1, #588 ; 0x24c 1245c: 3010 adds r0, #16 1245e: 4798 blx r3 lv_style_set_outline_color(&styles->btn, LV_STATE_DEFAULT, theme.color_primary); 12460: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_COLOR, outline_color, lv_color_t, _color, nonscalar) 12462: 89a2 ldrh r2, [r4, #12] 12464: 2149 movs r1, #73 ; 0x49 12466: 3010 adds r0, #16 12468: 47b0 blx r6 lv_style_set_outline_color(&styles->btn, LV_STATE_EDITED, theme.color_secondary); 1246a: 6820 ldr r0, [r4, #0] 1246c: 89e2 ldrh r2, [r4, #14] 1246e: f240 4149 movw r1, #1097 ; 0x449 12472: 3010 adds r0, #16 12474: 47b0 blx r6 lv_style_set_transition_time(&styles->btn, LV_STATE_DEFAULT, TRANSITION_TIME); 12476: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_TIME, transition_time, lv_style_int_t, _int, scalar) 12478: 2296 movs r2, #150 ; 0x96 1247a: 21b0 movs r1, #176 ; 0xb0 1247c: 3010 adds r0, #16 1247e: 47b8 blx r7 lv_style_set_transition_prop_4(&styles->btn, LV_STATE_DEFAULT, LV_STYLE_BORDER_OPA); 12480: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_4, transition_prop_4, lv_style_int_t, _int, scalar) 12482: 223c movs r2, #60 ; 0x3c 12484: 21b5 movs r1, #181 ; 0xb5 12486: 3010 adds r0, #16 12488: 47b8 blx r7 lv_style_set_transition_prop_5(&styles->btn, LV_STATE_DEFAULT, LV_STYLE_BG_COLOR); 1248a: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_5, transition_prop_5, lv_style_int_t, _int, scalar) 1248c: 2229 movs r2, #41 ; 0x29 1248e: 21b6 movs r1, #182 ; 0xb6 12490: 3010 adds r0, #16 12492: 47b8 blx r7 lv_style_set_transition_prop_6(&styles->btn, LV_STATE_DEFAULT, LV_STYLE_OUTLINE_OPA); 12494: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_6, transition_prop_6, lv_style_int_t, _int, scalar) 12496: 224c movs r2, #76 ; 0x4c 12498: 21b7 movs r1, #183 ; 0xb7 1249a: 3010 adds r0, #16 1249c: 47b8 blx r7 lv_style_set_transition_delay(&styles->btn, LV_STATE_DEFAULT, TRANSITION_TIME); 1249e: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_DELAY, transition_delay, lv_style_int_t, _int, scalar) 124a0: 2296 movs r2, #150 ; 0x96 124a2: 21b1 movs r1, #177 ; 0xb1 124a4: 3010 adds r0, #16 124a6: 47b8 blx r7 lv_style_set_transition_delay(&styles->btn, LV_STATE_PRESSED, 0); 124a8: 6820 ldr r0, [r4, #0] 124aa: 2200 movs r2, #0 124ac: f241 01b1 movw r1, #4273 ; 0x10b1 124b0: 3010 adds r0, #16 124b2: 47b8 blx r7 style_init_reset(&styles->pad_inner); 124b4: 6820 ldr r0, [r4, #0] lv_disp_get_size_category(NULL) <= LV_DISP_MEDIUM_LIMIT ? LV_DPX(20) : LV_DPX(40)); 124b6: 4f9e ldr r7, [pc, #632] ; (12730 ) style_init_reset(&styles->pad_inner); 124b8: 3014 adds r0, #20 124ba: 47a8 blx r5 lv_disp_get_size_category(NULL) <= LV_DISP_MEDIUM_LIMIT ? LV_DPX(20) : LV_DPX(40)); 124bc: 2000 movs r0, #0 lv_style_set_pad_inner(&styles->pad_inner, LV_STATE_DEFAULT, 124be: 6826 ldr r6, [r4, #0] lv_disp_get_size_category(NULL) <= LV_DISP_MEDIUM_LIMIT ? LV_DPX(20) : LV_DPX(40)); 124c0: 47b8 blx r7 lv_style_set_pad_inner(&styles->pad_inner, LV_STATE_DEFAULT, 124c2: 2832 cmp r0, #50 ; 0x32 124c4: f106 0614 add.w r6, r6, #20 lv_disp_get_size_category(NULL) <= LV_DISP_MEDIUM_LIMIT ? LV_DPX(20) : LV_DPX(40)); 124c8: f04f 0000 mov.w r0, #0 lv_style_set_pad_inner(&styles->pad_inner, LV_STATE_DEFAULT, 124cc: f200 810d bhi.w 126ea lv_disp_get_size_category(NULL) <= LV_DISP_MEDIUM_LIMIT ? LV_DPX(20) : LV_DPX(40)); 124d0: 47c0 blx r8 124d2: eb00 0080 add.w r0, r0, r0, lsl #2 124d6: 0080 lsls r0, r0, #2 lv_style_set_pad_inner(&styles->pad_inner, LV_STATE_DEFAULT, 124d8: 28ef cmp r0, #239 ; 0xef 124da: f300 80fb bgt.w 126d4 124de: 2201 movs r2, #1 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar) 124e0: 2114 movs r1, #20 124e2: 4630 mov r0, r6 124e4: 47c8 blx r9 style_init_reset(&styles->pad_small); 124e6: 6820 ldr r0, [r4, #0] 124e8: 3018 adds r0, #24 124ea: 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); 124ec: 2000 movs r0, #0 124ee: 47b8 blx r7 124f0: 2832 cmp r0, #50 ; 0x32 124f2: f04f 0000 mov.w r0, #0 124f6: f200 810e bhi.w 12716 124fa: 47c0 blx r8 124fc: eb00 0080 add.w r0, r0, r0, lsl #2 12500: 0040 lsls r0, r0, #1 12502: 28ef cmp r0, #239 ; 0xef 12504: f300 80fc bgt.w 12700 12508: 2201 movs r2, #1 lv_style_set_pad_left(&styles->pad_small, LV_STATE_DEFAULT, pad_small_value); 1250a: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar) 1250c: 9201 str r2, [sp, #4] 1250e: 2112 movs r1, #18 12510: 3018 adds r0, #24 12512: 47c8 blx r9 lv_style_set_pad_right(&styles->pad_small, LV_STATE_DEFAULT, pad_small_value); 12514: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar) 12516: 9a01 ldr r2, [sp, #4] 12518: 2113 movs r1, #19 1251a: 3018 adds r0, #24 1251c: 47c8 blx r9 lv_style_set_pad_top(&styles->pad_small, LV_STATE_DEFAULT, pad_small_value); 1251e: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar) 12520: 9a01 ldr r2, [sp, #4] 12522: 2110 movs r1, #16 12524: 3018 adds r0, #24 12526: 47c8 blx r9 lv_style_set_pad_bottom(&styles->pad_small, LV_STATE_DEFAULT, pad_small_value); 12528: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar) 1252a: 9a01 ldr r2, [sp, #4] 1252c: 2111 movs r1, #17 1252e: 3018 adds r0, #24 12530: 47c8 blx r9 lv_style_set_pad_inner(&styles->pad_small, LV_STATE_DEFAULT, pad_small_value); 12532: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar) 12534: 9a01 ldr r2, [sp, #4] 12536: 2114 movs r1, #20 12538: 3018 adds r0, #24 1253a: 464b mov r3, r9 } 1253c: b003 add sp, #12 1253e: ecbd 8b02 vpop {d8} 12542: e8bd 4ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} 12546: 4718 bx r3 lv_style_set_radius(&styles->bg, LV_STATE_DEFAULT, LV_DPX(8)); 12548: 2201 movs r2, #1 1254a: f7ff ba9d b.w 11a88 lv_style_set_border_width(&styles->bg, LV_STATE_DEFAULT, BORDER_WIDTH); 1254e: 2201 movs r2, #1 12550: f7ff badb b.w 11b0a lv_style_set_pad_left(&styles->bg, LV_STATE_DEFAULT, PAD_DEF + BORDER_WIDTH); 12554: 2000 movs r0, #0 12556: 47b0 blx r6 12558: 230f movs r3, #15 1255a: 2250 movs r2, #80 ; 0x50 1255c: fb00 2203 mla r2, r0, r3, r2 12560: 23a0 movs r3, #160 ; 0xa0 12562: fb92 f2f3 sdiv r2, r2, r3 12566: fa1f fb82 uxth.w fp, r2 1256a: f7ff bb35 b.w 11bd8 1256e: 47b0 blx r6 12570: ebc0 1000 rsb r0, r0, r0, lsl #4 12574: 0040 lsls r0, r0, #1 12576: 28ef cmp r0, #239 ; 0xef 12578: f77f ab2c ble.w 11bd4 1257c: 2000 movs r0, #0 1257e: 47b0 blx r6 12580: 231e movs r3, #30 12582: e7ea b.n 1255a 12584: 2001 movs r0, #1 12586: f7ff bb33 b.w 11bf0 lv_style_set_pad_right(&styles->bg, LV_STATE_DEFAULT, PAD_DEF + BORDER_WIDTH); 1258a: 2000 movs r0, #0 1258c: 47b0 blx r6 1258e: 230f movs r3, #15 12590: 2250 movs r2, #80 ; 0x50 12592: fb00 2203 mla r2, r0, r3, r2 12596: 23a0 movs r3, #160 ; 0xa0 12598: fb92 f2f3 sdiv r2, r2, r3 1259c: fa1f fb82 uxth.w fp, r2 125a0: f7ff bb40 b.w 11c24 125a4: 47b0 blx r6 125a6: ebc0 1000 rsb r0, r0, r0, lsl #4 125aa: 0040 lsls r0, r0, #1 125ac: 28ef cmp r0, #239 ; 0xef 125ae: f77f ab37 ble.w 11c20 125b2: 2000 movs r0, #0 125b4: 47b0 blx r6 125b6: 231e movs r3, #30 125b8: e7ea b.n 12590 125ba: 2001 movs r0, #1 125bc: f7ff bb3e b.w 11c3c lv_style_set_pad_top(&styles->bg, LV_STATE_DEFAULT, PAD_DEF + BORDER_WIDTH); 125c0: 2000 movs r0, #0 125c2: 47b0 blx r6 125c4: 230f movs r3, #15 125c6: 2250 movs r2, #80 ; 0x50 125c8: fb00 2203 mla r2, r0, r3, r2 125cc: 23a0 movs r3, #160 ; 0xa0 125ce: fb92 f2f3 sdiv r2, r2, r3 125d2: fa1f fb82 uxth.w fp, r2 125d6: f7ff bb6d b.w 11cb4 125da: 47b0 blx r6 125dc: ebc0 1000 rsb r0, r0, r0, lsl #4 125e0: 0040 lsls r0, r0, #1 125e2: 28ef cmp r0, #239 ; 0xef 125e4: f77f ab64 ble.w 11cb0 125e8: 2000 movs r0, #0 125ea: 47b0 blx r6 125ec: 231e movs r3, #30 125ee: e7ea b.n 125c6 125f0: 2001 movs r0, #1 125f2: f7ff bb6b b.w 11ccc lv_style_set_pad_bottom(&styles->bg, LV_STATE_DEFAULT, PAD_DEF + BORDER_WIDTH); 125f6: 2000 movs r0, #0 125f8: 47b0 blx r6 125fa: 230f movs r3, #15 125fc: 2250 movs r2, #80 ; 0x50 125fe: fb00 2203 mla r2, r0, r3, r2 12602: 23a0 movs r3, #160 ; 0xa0 12604: fb92 f2f3 sdiv r2, r2, r3 12608: fa1f fb82 uxth.w fp, r2 1260c: f7ff bb78 b.w 11d00 12610: 47b0 blx r6 12612: ebc0 1000 rsb r0, r0, r0, lsl #4 12616: 0040 lsls r0, r0, #1 12618: 28ef cmp r0, #239 ; 0xef 1261a: f77f ab6f ble.w 11cfc 1261e: 2000 movs r0, #0 12620: 47b0 blx r6 12622: 231e movs r3, #30 12624: e7ea b.n 125fc 12626: 2001 movs r0, #1 12628: f7ff bb76 b.w 11d18 lv_style_set_pad_inner(&styles->bg, LV_STATE_DEFAULT, PAD_DEF); 1262c: 2000 movs r0, #0 1262e: 47b0 blx r6 12630: 230f movs r3, #15 12632: 2250 movs r2, #80 ; 0x50 12634: fb00 2203 mla r2, r0, r3, r2 12638: 23a0 movs r3, #160 ; 0xa0 1263a: fb92 f2f3 sdiv r2, r2, r3 1263e: b212 sxth r2, r2 12640: f7ff bb82 b.w 11d48 12644: 47b0 blx r6 12646: ebc0 1000 rsb r0, r0, r0, lsl #4 1264a: 0040 lsls r0, r0, #1 1264c: 28ef cmp r0, #239 ; 0xef 1264e: f77f ab7a ble.w 11d46 12652: 2000 movs r0, #0 12654: 47b0 blx r6 12656: 231e movs r3, #30 12658: e7eb b.n 12632 lv_style_set_border_color(&styles->bg_click, LV_STATE_PRESSED, COLOR_BG_BORDER_PR); 1265a: 4836 ldr r0, [pc, #216] ; (12734 ) 1265c: 47a8 blx r5 1265e: e421 b.n 11ea4 lv_style_set_bg_color(&styles->btn, LV_STATE_PRESSED, COLOR_BTN_PR); 12660: 4835 ldr r0, [pc, #212] ; (12738 ) 12662: 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))); 12664: 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))); 12666: 7b63 ldrb r3, [r4, #13] 12668: 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))); 1266c: 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))); 12670: 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))); 12674: f3c2 1245 ubfx r2, r2, #5, #6 12678: 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))); 1267c: 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))); 12680: 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))); 12684: 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))); 12686: 08db lsrs r3, r3, #3 12688: 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))); 1268c: 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))); 12690: 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))); 12694: 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))); 12698: 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))); 1269c: 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))); 126a0: 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))); 126a2: 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))); 126a6: 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))); 126aa: 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))); 126ae: 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))); 126b2: 435a muls r2, r3 126b4: e513 b.n 120de lv_style_set_border_color(&styles->btn, LV_STATE_DISABLED, COLOR_BTN_BORDER_INA); 126b6: 4821 ldr r0, [pc, #132] ; (1273c ) 126b8: 47a8 blx r5 126ba: e55f b.n 1217c lv_style_set_border_width(&styles->btn, LV_STATE_DEFAULT, BORDER_WIDTH); 126bc: 2201 movs r2, #1 126be: e574 b.n 121aa lv_style_set_pad_left(&styles->btn, LV_STATE_DEFAULT, LV_DPX(40)); 126c0: 2201 movs r2, #1 126c2: e64c b.n 1235e lv_style_set_pad_right(&styles->btn, LV_STATE_DEFAULT, LV_DPX(40)); 126c4: 2201 movs r2, #1 126c6: e662 b.n 1238e lv_style_set_pad_top(&styles->btn, LV_STATE_DEFAULT, LV_DPX(15)); 126c8: 2201 movs r2, #1 126ca: e677 b.n 123bc lv_style_set_pad_bottom(&styles->btn, LV_STATE_DEFAULT, LV_DPX(15)); 126cc: 2201 movs r2, #1 126ce: e699 b.n 12404 lv_style_set_pad_inner(&styles->btn, LV_STATE_DEFAULT, LV_DPX(20)); 126d0: 2201 movs r2, #1 126d2: e6af b.n 12434 lv_disp_get_size_category(NULL) <= LV_DISP_MEDIUM_LIMIT ? LV_DPX(20) : LV_DPX(40)); 126d4: 2000 movs r0, #0 126d6: 47c0 blx r8 126d8: 2314 movs r3, #20 126da: 2250 movs r2, #80 ; 0x50 126dc: fb00 2203 mla r2, r0, r3, r2 126e0: 23a0 movs r3, #160 ; 0xa0 126e2: fb92 f2f3 sdiv r2, r2, r3 lv_style_set_pad_inner(&styles->pad_inner, LV_STATE_DEFAULT, 126e6: b212 sxth r2, r2 126e8: e6fa b.n 124e0 lv_disp_get_size_category(NULL) <= LV_DISP_MEDIUM_LIMIT ? LV_DPX(20) : LV_DPX(40)); 126ea: 47c0 blx r8 126ec: eb00 0080 add.w r0, r0, r0, lsl #2 126f0: 00c0 lsls r0, r0, #3 lv_style_set_pad_inner(&styles->pad_inner, LV_STATE_DEFAULT, 126f2: 28ef cmp r0, #239 ; 0xef 126f4: f77f aef3 ble.w 124de lv_disp_get_size_category(NULL) <= LV_DISP_MEDIUM_LIMIT ? LV_DPX(20) : LV_DPX(40)); 126f8: 2000 movs r0, #0 126fa: 47c0 blx r8 126fc: 2328 movs r3, #40 ; 0x28 126fe: e7ec b.n 126da lv_style_int_t pad_small_value = lv_disp_get_size_category(NULL) <= LV_DISP_MEDIUM_LIMIT ? LV_DPX(10) : LV_DPX(20); 12700: 2000 movs r0, #0 12702: 47c0 blx r8 12704: 230a movs r3, #10 12706: 2250 movs r2, #80 ; 0x50 12708: fb00 2203 mla r2, r0, r3, r2 1270c: 23a0 movs r3, #160 ; 0xa0 1270e: fb92 f2f3 sdiv r2, r2, r3 12712: b212 sxth r2, r2 12714: e6f9 b.n 1250a 12716: 47c0 blx r8 12718: eb00 0080 add.w r0, r0, r0, lsl #2 1271c: 0080 lsls r0, r0, #2 1271e: 28ef cmp r0, #239 ; 0xef 12720: f77f aef2 ble.w 12508 12724: 2000 movs r0, #0 12726: 47c0 blx r8 12728: 2314 movs r3, #20 1272a: e7ec b.n 12706 1272c: 00010cf5 .word 0x00010cf5 12730: 0000db95 .word 0x0000db95 12734: 005f656e .word 0x005f656e 12738: 00586273 .word 0x00586273 1273c: 00404040 .word 0x00404040 00012740 : { 12740: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} if(!inited) { 12744: 4cb4 ldr r4, [pc, #720] ; (12a18 ) { 12746: ed2d 8b02 vpush {d8} 1274a: 461e mov r6, r3 if(!inited) { 1274c: 7923 ldrb r3, [r4, #4] { 1274e: b083 sub sp, #12 12750: 4680 mov r8, r0 12752: 460f mov r7, r1 12754: 4615 mov r5, r2 if(!inited) { 12756: b92b cbnz r3, 12764 LV_GC_ROOT(_lv_theme_material_styles) = lv_mem_alloc(sizeof(theme_styles_t)); 12758: 4bb0 ldr r3, [pc, #704] ; (12a1c ) 1275a: 20bc movs r0, #188 ; 0xbc 1275c: 4798 blx r3 1275e: 4bb0 ldr r3, [pc, #704] ; (12a20 ) styles = (theme_styles_t *)LV_GC_ROOT(_lv_theme_material_styles); 12760: 6020 str r0, [r4, #0] LV_GC_ROOT(_lv_theme_material_styles) = lv_mem_alloc(sizeof(theme_styles_t)); 12762: 6018 str r0, [r3, #0] theme.font_normal = font_normal; 12764: 9b0e ldr r3, [sp, #56] ; 0x38 12766: 6163 str r3, [r4, #20] theme.font_subtitle = font_subtitle; 12768: 9b0f ldr r3, [sp, #60] ; 0x3c 1276a: 61a3 str r3, [r4, #24] theme.font_title = font_title; 1276c: 9b10 ldr r3, [sp, #64] ; 0x40 theme.color_primary = color_primary; 1276e: f8a4 800c strh.w r8, [r4, #12] theme.flags = flags; 12772: e9c4 3507 strd r3, r5, [r4, #28] basic_init(); 12776: 4bab ldr r3, [pc, #684] ; (12a24 ) theme.color_secondary = color_secondary; 12778: 81e7 strh r7, [r4, #14] theme.font_small = font_small; 1277a: 6126 str r6, [r4, #16] basic_init(); 1277c: 4798 blx r3 bar_init(); 1277e: 4baa ldr r3, [pc, #680] ; (12a28 ) style_init_reset(&styles->arc_indic); 12780: f8df 82dc ldr.w r8, [pc, #732] ; 12a60 _LV_OBJ_STYLE_SET_GET_DECLARE(LINE_COLOR, line_color, lv_color_t, _color, nonscalar) 12784: 4fa9 ldr r7, [pc, #676] ; (12a2c ) lv_style_set_line_width(&styles->arc_indic, LV_STATE_DEFAULT, LV_DPX(25)); 12786: 4daa ldr r5, [pc, #680] ; (12a30 ) bar_init(); 12788: 4798 blx r3 led_init(); 1278a: 4baa ldr r3, [pc, #680] ; (12a34 ) 1278c: 4798 blx r3 slider_init(); 1278e: 4baa ldr r3, [pc, #680] ; (12a38 ) 12790: 4798 blx r3 switch_init(); 12792: 4baa ldr r3, [pc, #680] ; (12a3c ) 12794: 4798 blx r3 linemeter_init(); 12796: 4baa ldr r3, [pc, #680] ; (12a40 ) 12798: 4798 blx r3 gauge_init(); 1279a: 4baa ldr r3, [pc, #680] ; (12a44 ) 1279c: 4798 blx r3 style_init_reset(&styles->arc_indic); 1279e: 6820 ldr r0, [r4, #0] 127a0: 301c adds r0, #28 127a2: 47c0 blx r8 lv_style_set_line_color(&styles->arc_indic, LV_STATE_DEFAULT, theme.color_primary); 127a4: 6820 ldr r0, [r4, #0] 127a6: 89a2 ldrh r2, [r4, #12] 127a8: 2199 movs r1, #153 ; 0x99 127aa: 301c adds r0, #28 127ac: 47b8 blx r7 lv_style_set_line_width(&styles->arc_indic, LV_STATE_DEFAULT, LV_DPX(25)); 127ae: 2000 movs r0, #0 127b0: 6826 ldr r6, [r4, #0] 127b2: 47a8 blx r5 127b4: eb00 0080 add.w r0, r0, r0, lsl #2 127b8: eb00 0080 add.w r0, r0, r0, lsl #2 127bc: 28ef cmp r0, #239 ; 0xef 127be: f106 061c add.w r6, r6, #28 127c2: f341 8256 ble.w 13c72 127c6: 2000 movs r0, #0 127c8: 47a8 blx r5 127ca: 2319 movs r3, #25 127cc: 2250 movs r2, #80 ; 0x50 127ce: fb00 2203 mla r2, r0, r3, r2 127d2: 23a0 movs r3, #160 ; 0xa0 127d4: fb92 f2f3 sdiv r2, r2, r3 127d8: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(LINE_WIDTH, line_width, lv_style_int_t, _int, scalar) 127da: 4630 mov r0, r6 127dc: 2190 movs r1, #144 ; 0x90 127de: 4e9a ldr r6, [pc, #616] ; (12a48 ) 127e0: f8df a280 ldr.w sl, [pc, #640] ; 12a64 127e4: 47b0 blx r6 lv_style_set_line_rounded(&styles->arc_indic, LV_STATE_DEFAULT, true); 127e6: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(LINE_ROUNDED, line_rounded, bool, _int, scalar) 127e8: 2201 movs r2, #1 127ea: 2194 movs r1, #148 ; 0x94 127ec: 301c adds r0, #28 127ee: 47b0 blx r6 style_init_reset(&styles->arc_bg); 127f0: 6820 ldr r0, [r4, #0] 127f2: 3020 adds r0, #32 127f4: 47c0 blx r8 lv_style_set_line_color(&styles->arc_bg, LV_STATE_DEFAULT, COLOR_BG_SEC); 127f6: 6823 ldr r3, [r4, #0] 127f8: f103 0920 add.w r9, r3, #32 127fc: 6a23 ldr r3, [r4, #32] 127fe: f013 0f02 tst.w r3, #2 12802: bf14 ite ne 12804: 4891 ldrne r0, [pc, #580] ; (12a4c ) 12806: 4892 ldreq r0, [pc, #584] ; (12a50 ) 12808: 47d0 blx sl _LV_OBJ_STYLE_SET_GET_DECLARE(LINE_COLOR, line_color, lv_color_t, _color, nonscalar) 1280a: 2199 movs r1, #153 ; 0x99 1280c: 4602 mov r2, r0 1280e: 4648 mov r0, r9 12810: 47b8 blx r7 lv_style_set_line_width(&styles->arc_bg, LV_STATE_DEFAULT, LV_DPX(25)); 12812: 6823 ldr r3, [r4, #0] 12814: 2000 movs r0, #0 12816: f103 0920 add.w r9, r3, #32 1281a: 47a8 blx r5 1281c: eb00 0080 add.w r0, r0, r0, lsl #2 12820: eb00 0080 add.w r0, r0, r0, lsl #2 12824: 28ef cmp r0, #239 ; 0xef 12826: f341 8227 ble.w 13c78 1282a: 2000 movs r0, #0 1282c: 47a8 blx r5 1282e: 2319 movs r3, #25 12830: 2250 movs r2, #80 ; 0x50 12832: fb00 2203 mla r2, r0, r3, r2 12836: 23a0 movs r3, #160 ; 0xa0 12838: fb92 f2f3 sdiv r2, r2, r3 1283c: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(LINE_WIDTH, line_width, lv_style_int_t, _int, scalar) 1283e: 4648 mov r0, r9 12840: 2190 movs r1, #144 ; 0x90 12842: 47b0 blx r6 lv_style_set_line_rounded(&styles->arc_bg, LV_STATE_DEFAULT, true); 12844: 6820 ldr r0, [r4, #0] lv_style_set_pad_top(&styles->calendar_header, LV_STATE_DEFAULT, PAD_DEF); 12846: f8df 9220 ldr.w r9, [pc, #544] ; 12a68 _LV_OBJ_STYLE_SET_GET_DECLARE(LINE_ROUNDED, line_rounded, bool, _int, scalar) 1284a: 2201 movs r2, #1 1284c: 2194 movs r1, #148 ; 0x94 1284e: 3020 adds r0, #32 12850: 47b0 blx r6 chart_init(); 12852: 4b80 ldr r3, [pc, #512] ; (12a54 ) 12854: 4798 blx r3 style_init_reset(&styles->calendar_header); 12856: 6820 ldr r0, [r4, #0] 12858: 3030 adds r0, #48 ; 0x30 1285a: 47c0 blx r8 lv_style_set_pad_top(&styles->calendar_header, LV_STATE_DEFAULT, PAD_DEF); 1285c: 6823 ldr r3, [r4, #0] 1285e: 2000 movs r0, #0 12860: f103 0b30 add.w fp, r3, #48 ; 0x30 12864: 47c8 blx r9 12866: 2801 cmp r0, #1 12868: f04f 0000 mov.w r0, #0 1286c: f201 8213 bhi.w 13c96 12870: 47a8 blx r5 12872: ebc0 1000 rsb r0, r0, r0, lsl #4 12876: 28ef cmp r0, #239 ; 0xef 12878: f301 8201 bgt.w 13c7e 1287c: 2201 movs r2, #1 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar) 1287e: 4658 mov r0, fp 12880: 2110 movs r1, #16 12882: 47b0 blx r6 lv_style_set_pad_left(&styles->calendar_header, LV_STATE_DEFAULT, PAD_DEF); 12884: 6823 ldr r3, [r4, #0] 12886: 2000 movs r0, #0 12888: f103 0b30 add.w fp, r3, #48 ; 0x30 1288c: 47c8 blx r9 1288e: 2801 cmp r0, #1 12890: f04f 0000 mov.w r0, #0 12894: f201 8216 bhi.w 13cc4 12898: 47a8 blx r5 1289a: ebc0 1000 rsb r0, r0, r0, lsl #4 1289e: 28ef cmp r0, #239 ; 0xef 128a0: f301 8204 bgt.w 13cac 128a4: 2201 movs r2, #1 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar) 128a6: 4658 mov r0, fp 128a8: 2112 movs r1, #18 128aa: 47b0 blx r6 lv_style_set_pad_right(&styles->calendar_header, LV_STATE_DEFAULT, PAD_DEF); 128ac: 6823 ldr r3, [r4, #0] 128ae: 2000 movs r0, #0 128b0: f103 0b30 add.w fp, r3, #48 ; 0x30 128b4: 47c8 blx r9 128b6: 2801 cmp r0, #1 128b8: f04f 0000 mov.w r0, #0 128bc: f201 8219 bhi.w 13cf2 128c0: 47a8 blx r5 128c2: ebc0 1000 rsb r0, r0, r0, lsl #4 128c6: 28ef cmp r0, #239 ; 0xef 128c8: f301 8207 bgt.w 13cda 128cc: 2201 movs r2, #1 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar) 128ce: 4658 mov r0, fp 128d0: 2113 movs r1, #19 128d2: 47b0 blx r6 lv_style_set_pad_bottom(&styles->calendar_header, LV_STATE_DEFAULT, PAD_DEF); 128d4: 6823 ldr r3, [r4, #0] 128d6: 2000 movs r0, #0 128d8: f103 0b30 add.w fp, r3, #48 ; 0x30 128dc: 47c8 blx r9 128de: 2801 cmp r0, #1 128e0: f04f 0000 mov.w r0, #0 128e4: f201 821c bhi.w 13d20 128e8: 47a8 blx r5 128ea: ebc0 1000 rsb r0, r0, r0, lsl #4 128ee: 28ef cmp r0, #239 ; 0xef 128f0: f301 820a bgt.w 13d08 128f4: 2201 movs r2, #1 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar) 128f6: 4658 mov r0, fp 128f8: 2111 movs r1, #17 128fa: 47b0 blx r6 lv_style_set_text_color(&styles->calendar_header, LV_STATE_PRESSED, IS_LIGHT ? lv_color_hex(0x888888) : LV_COLOR_WHITE); 128fc: 6a22 ldr r2, [r4, #32] 128fe: 6823 ldr r3, [r4, #0] 12900: f8df b168 ldr.w fp, [pc, #360] ; 12a6c 12904: f012 0f02 tst.w r2, #2 12908: f103 0330 add.w r3, r3, #48 ; 0x30 1290c: f001 8213 beq.w 13d36 12910: 4851 ldr r0, [pc, #324] ; (12a58 ) 12912: 9301 str r3, [sp, #4] 12914: 47d0 blx sl 12916: 9b01 ldr r3, [sp, #4] 12918: 4602 mov r2, r0 _LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar) 1291a: 4618 mov r0, r3 1291c: f249 0189 movw r1, #37001 ; 0x9089 12920: 47b8 blx r7 style_init_reset(&styles->calendar_daynames); 12922: 6820 ldr r0, [r4, #0] 12924: 3034 adds r0, #52 ; 0x34 12926: 47c0 blx r8 lv_style_set_text_color(&styles->calendar_daynames, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x31404f) : lv_color_hex3(0xeee)); 12928: 6823 ldr r3, [r4, #0] 1292a: 3334 adds r3, #52 ; 0x34 1292c: ee07 3a90 vmov s15, r3 12930: 6a23 ldr r3, [r4, #32] 12932: 0798 lsls r0, r3, #30 12934: f141 8203 bpl.w 13d3e 12938: 4848 ldr r0, [pc, #288] ; (12a5c ) 1293a: 47d0 blx sl 1293c: 4602 mov r2, r0 1293e: f248 0189 movw r1, #32905 ; 0x8089 12942: ee17 0a90 vmov r0, s15 12946: 47b8 blx r7 lv_style_set_pad_left(&styles->calendar_daynames, LV_STATE_DEFAULT, PAD_DEF); 12948: 6823 ldr r3, [r4, #0] 1294a: 2000 movs r0, #0 1294c: 3334 adds r3, #52 ; 0x34 1294e: ee08 3a10 vmov s16, r3 12952: 47c8 blx r9 12954: 2801 cmp r0, #1 12956: f04f 0000 mov.w r0, #0 1295a: f201 8202 bhi.w 13d62 1295e: 47a8 blx r5 12960: ebc0 1000 rsb r0, r0, r0, lsl #4 12964: 28ef cmp r0, #239 ; 0xef 12966: f301 81f0 bgt.w 13d4a 1296a: 2201 movs r2, #1 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar) 1296c: ee18 0a10 vmov r0, s16 12970: 2112 movs r1, #18 12972: 47b0 blx r6 lv_style_set_pad_right(&styles->calendar_daynames, LV_STATE_DEFAULT, PAD_DEF); 12974: 6823 ldr r3, [r4, #0] 12976: 2000 movs r0, #0 12978: 3334 adds r3, #52 ; 0x34 1297a: ee08 3a10 vmov s16, r3 1297e: 47c8 blx r9 12980: 2801 cmp r0, #1 12982: f04f 0000 mov.w r0, #0 12986: f201 8203 bhi.w 13d90 1298a: 47a8 blx r5 1298c: ebc0 1000 rsb r0, r0, r0, lsl #4 12990: 28ef cmp r0, #239 ; 0xef 12992: f301 81f1 bgt.w 13d78 12996: 2201 movs r2, #1 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar) 12998: ee18 0a10 vmov r0, s16 1299c: 2113 movs r1, #19 1299e: 47b0 blx r6 lv_style_set_pad_bottom(&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 8204 bhi.w 13dbe 129b6: 47a8 blx r5 129b8: ebc0 1000 rsb r0, r0, r0, lsl #4 129bc: 28ef cmp r0, #239 ; 0xef 129be: f301 81f2 bgt.w 13da6 129c2: 2201 movs r2, #1 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar) 129c4: ee18 0a10 vmov r0, s16 129c8: 2111 movs r1, #17 129ca: 47b0 blx r6 style_init_reset(&styles->calendar_date_nums); 129cc: 6820 ldr r0, [r4, #0] 129ce: 302c adds r0, #44 ; 0x2c 129d0: 47c0 blx r8 lv_style_set_radius(&styles->calendar_date_nums, LV_STATE_DEFAULT, LV_DPX(4)); 129d2: 6823 ldr r3, [r4, #0] 129d4: 2000 movs r0, #0 129d6: 332c adds r3, #44 ; 0x2c 129d8: ee08 3a10 vmov s16, r3 129dc: 47a8 blx r5 129de: 283b cmp r0, #59 ; 0x3b 129e0: f341 81f8 ble.w 13dd4 129e4: 2000 movs r0, #0 129e6: 47a8 blx r5 129e8: 2328 movs r3, #40 ; 0x28 129ea: f100 0214 add.w r2, r0, #20 129ee: fb92 f2f3 sdiv r2, r2, r3 129f2: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar) 129f4: 2101 movs r1, #1 129f6: ee18 0a10 vmov r0, s16 129fa: 47b0 blx r6 lv_style_set_text_color(&styles->calendar_date_nums, LV_STATE_CHECKED, IS_LIGHT ? lv_color_hex(0x31404f) : LV_COLOR_WHITE); 129fc: 6a22 ldr r2, [r4, #32] 129fe: 6823 ldr r3, [r4, #0] 12a00: 0791 lsls r1, r2, #30 12a02: f103 032c add.w r3, r3, #44 ; 0x2c 12a06: f141 81e8 bpl.w 13dda 12a0a: 4814 ldr r0, [pc, #80] ; (12a5c ) 12a0c: 9301 str r3, [sp, #4] 12a0e: 47d0 blx sl 12a10: 9b01 ldr r3, [sp, #4] 12a12: 4602 mov r2, r0 12a14: e02c b.n 12a70 12a16: bf00 nop 12a18: 2000d170 .word 0x2000d170 12a1c: 0000ec65 .word 0x0000ec65 12a20: 20009110 .word 0x20009110 12a24: 000119e1 .word 0x000119e1 12a28: 000110ed .word 0x000110ed 12a2c: 00005b75 .word 0x00005b75 12a30: 0000db7d .word 0x0000db7d 12a34: 00010fe9 .word 0x00010fe9 12a38: 00011231 .word 0x00011231 12a3c: 00010d11 .word 0x00010d11 12a40: 00010e1d .word 0x00010e1d 12a44: 00011451 .word 0x00011451 12a48: 00005aa5 .word 0x00005aa5 12a4c: 00d4d7d9 .word 0x00d4d7d9 12a50: 0045494d .word 0x0045494d 12a54: 00011811 .word 0x00011811 12a58: 00888888 .word 0x00888888 12a5c: 0031404f .word 0x0031404f 12a60: 00010cf5 .word 0x00010cf5 12a64: 000110d5 .word 0x000110d5 12a68: 0000db95 .word 0x0000db95 12a6c: 0002bbf2 .word 0x0002bbf2 _LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar) 12a70: 4618 mov r0, r3 12a72: f248 1189 movw r1, #33161 ; 0x8189 12a76: 47b8 blx r7 lv_style_set_bg_opa(&styles->calendar_date_nums, LV_STATE_CHECKED, IS_LIGHT ? LV_OPA_20 : LV_OPA_40); 12a78: 6a23 ldr r3, [r4, #32] 12a7a: 6820 ldr r0, [r4, #0] 12a7c: f013 0f02 tst.w r3, #2 _LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar) 12a80: bf14 ite ne 12a82: 2233 movne r2, #51 ; 0x33 12a84: 2266 moveq r2, #102 ; 0x66 12a86: 4bc0 ldr r3, [pc, #768] ; (12d88 ) 12a88: f44f 7196 mov.w r1, #300 ; 0x12c 12a8c: 302c adds r0, #44 ; 0x2c 12a8e: 4798 blx r3 lv_style_set_bg_opa(&styles->calendar_date_nums, LV_STATE_PRESSED, LV_OPA_20); 12a90: 6820 ldr r0, [r4, #0] 12a92: 4bbd ldr r3, [pc, #756] ; (12d88 ) 12a94: 2233 movs r2, #51 ; 0x33 12a96: f241 012c movw r1, #4140 ; 0x102c 12a9a: 302c adds r0, #44 ; 0x2c 12a9c: 4798 blx r3 lv_style_set_bg_opa(&styles->calendar_date_nums, LV_STATE_FOCUSED, LV_OPA_COVER); 12a9e: 6820 ldr r0, [r4, #0] 12aa0: 4bb9 ldr r3, [pc, #740] ; (12d88 ) 12aa2: 22ff movs r2, #255 ; 0xff 12aa4: f44f 710b mov.w r1, #556 ; 0x22c 12aa8: 302c adds r0, #44 ; 0x2c 12aaa: 4798 blx r3 lv_style_set_text_color(&styles->calendar_date_nums, LV_STATE_FOCUSED, LV_COLOR_WHITE); 12aac: f8bb 3000 ldrh.w r3, [fp] 12ab0: 6820 ldr r0, [r4, #0] 12ab2: f8ad 3004 strh.w r3, [sp, #4] _LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar) 12ab6: b29a uxth r2, r3 12ab8: f248 2189 movw r1, #33417 ; 0x8289 12abc: 302c adds r0, #44 ; 0x2c 12abe: 47b8 blx r7 lv_style_set_bg_color(&styles->calendar_date_nums, LV_STATE_FOCUSED, theme.color_primary); 12ac0: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar) 12ac2: 89a2 ldrh r2, [r4, #12] 12ac4: f240 2129 movw r1, #553 ; 0x229 12ac8: 302c adds r0, #44 ; 0x2c 12aca: 47b8 blx r7 lv_style_set_bg_color(&styles->calendar_date_nums, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x666666) : LV_COLOR_WHITE); 12acc: 6a22 ldr r2, [r4, #32] 12ace: 6823 ldr r3, [r4, #0] 12ad0: 0792 lsls r2, r2, #30 12ad2: f103 032c add.w r3, r3, #44 ; 0x2c 12ad6: f141 8184 bpl.w 13de2 12ada: 48ac ldr r0, [pc, #688] ; (12d8c ) 12adc: 9301 str r3, [sp, #4] 12ade: 47d0 blx sl 12ae0: 9b01 ldr r3, [sp, #4] 12ae2: 4602 mov r2, r0 12ae4: 4618 mov r0, r3 12ae6: 2129 movs r1, #41 ; 0x29 12ae8: 47b8 blx r7 lv_style_set_bg_color(&styles->calendar_date_nums, LV_STATE_CHECKED, theme.color_primary); 12aea: 6820 ldr r0, [r4, #0] 12aec: 89a2 ldrh r2, [r4, #12] 12aee: f240 1129 movw r1, #297 ; 0x129 12af2: 302c adds r0, #44 ; 0x2c 12af4: 47b8 blx r7 lv_style_set_border_width(&styles->calendar_date_nums, LV_STATE_CHECKED, 2); 12af6: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar) 12af8: 2202 movs r2, #2 12afa: f44f 7198 mov.w r1, #304 ; 0x130 12afe: 302c adds r0, #44 ; 0x2c 12b00: 47b0 blx r6 lv_style_set_border_side(&styles->calendar_date_nums, LV_STATE_CHECKED, LV_BORDER_SIDE_LEFT); 12b02: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_SIDE, border_side, lv_border_side_t, _int, scalar) 12b04: 2204 movs r2, #4 12b06: f240 1131 movw r1, #305 ; 0x131 12b0a: 302c adds r0, #44 ; 0x2c 12b0c: 47b0 blx r6 lv_style_set_border_color(&styles->calendar_date_nums, LV_STATE_CHECKED, theme.color_primary); 12b0e: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar) 12b10: 89a2 ldrh r2, [r4, #12] 12b12: f240 1139 movw r1, #313 ; 0x139 12b16: 302c adds r0, #44 ; 0x2c 12b18: 47b8 blx r7 lv_style_set_pad_inner(&styles->calendar_date_nums, LV_STATE_DEFAULT, LV_DPX(3)); 12b1a: 6823 ldr r3, [r4, #0] 12b1c: 2000 movs r0, #0 12b1e: 332c adds r3, #44 ; 0x2c 12b20: ee08 3a10 vmov s16, r3 12b24: 47a8 blx r5 12b26: eb00 0040 add.w r0, r0, r0, lsl #1 12b2a: 28ef cmp r0, #239 ; 0xef 12b2c: f341 815d ble.w 13dea 12b30: 2000 movs r0, #0 12b32: 47a8 blx r5 12b34: 2303 movs r3, #3 12b36: 2250 movs r2, #80 ; 0x50 12b38: fb00 2203 mla r2, r0, r3, r2 12b3c: 23a0 movs r3, #160 ; 0xa0 12b3e: fb92 f2f3 sdiv r2, r2, r3 12b42: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar) 12b44: ee18 0a10 vmov r0, s16 12b48: 2114 movs r1, #20 12b4a: 47b0 blx r6 lv_style_set_pad_left(&styles->calendar_date_nums, LV_STATE_DEFAULT, PAD_DEF); 12b4c: 6823 ldr r3, [r4, #0] 12b4e: 2000 movs r0, #0 12b50: 332c adds r3, #44 ; 0x2c 12b52: ee08 3a10 vmov s16, r3 12b56: 47c8 blx r9 12b58: 2801 cmp r0, #1 12b5a: f04f 0000 mov.w r0, #0 12b5e: f201 8153 bhi.w 13e08 12b62: 47a8 blx r5 12b64: ebc0 1000 rsb r0, r0, r0, lsl #4 12b68: 28ef cmp r0, #239 ; 0xef 12b6a: f301 8141 bgt.w 13df0 12b6e: 2201 movs r2, #1 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar) 12b70: ee18 0a10 vmov r0, s16 12b74: 2112 movs r1, #18 12b76: 47b0 blx r6 lv_style_set_pad_right(&styles->calendar_date_nums, LV_STATE_DEFAULT, PAD_DEF); 12b78: 6823 ldr r3, [r4, #0] 12b7a: 2000 movs r0, #0 12b7c: 332c adds r3, #44 ; 0x2c 12b7e: ee08 3a10 vmov s16, r3 12b82: 47c8 blx r9 12b84: 2801 cmp r0, #1 12b86: f04f 0000 mov.w r0, #0 12b8a: f201 8154 bhi.w 13e36 12b8e: 47a8 blx r5 12b90: ebc0 1000 rsb r0, r0, r0, lsl #4 12b94: 28ef cmp r0, #239 ; 0xef 12b96: f301 8142 bgt.w 13e1e 12b9a: 2201 movs r2, #1 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar) 12b9c: ee18 0a10 vmov r0, s16 12ba0: 2113 movs r1, #19 12ba2: 47b0 blx r6 lv_style_set_pad_bottom(&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 8155 bhi.w 13e64 12bba: 47a8 blx r5 12bbc: ebc0 1000 rsb r0, r0, r0, lsl #4 12bc0: 28ef cmp r0, #239 ; 0xef 12bc2: f301 8143 bgt.w 13e4c 12bc6: 2201 movs r2, #1 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar) 12bc8: 2111 movs r1, #17 12bca: ee18 0a10 vmov r0, s16 12bce: 47b0 blx r6 style_init_reset(&styles->cpicker_bg); 12bd0: 6820 ldr r0, [r4, #0] 12bd2: 3038 adds r0, #56 ; 0x38 12bd4: 47c0 blx r8 lv_style_set_scale_width(&styles->cpicker_bg, LV_STATE_DEFAULT, LV_DPX(30)); 12bd6: 6823 ldr r3, [r4, #0] 12bd8: 2000 movs r0, #0 12bda: f103 0938 add.w r9, r3, #56 ; 0x38 12bde: 47a8 blx r5 12be0: ebc0 1000 rsb r0, r0, r0, lsl #4 12be4: 0040 lsls r0, r0, #1 12be6: 28ef cmp r0, #239 ; 0xef 12be8: f341 8147 ble.w 13e7a 12bec: 2000 movs r0, #0 12bee: 47a8 blx r5 12bf0: 231e movs r3, #30 12bf2: 2250 movs r2, #80 ; 0x50 12bf4: fb00 2203 mla r2, r0, r3, r2 12bf8: 23a0 movs r3, #160 ; 0xa0 12bfa: fb92 f2f3 sdiv r2, r2, r3 12bfe: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(SCALE_WIDTH, scale_width, lv_style_int_t, _int, scalar) 12c00: 4648 mov r0, r9 12c02: 21c0 movs r1, #192 ; 0xc0 12c04: 47b0 blx r6 lv_style_set_bg_opa(&styles->cpicker_bg, LV_STATE_DEFAULT, LV_OPA_COVER); 12c06: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar) 12c08: 4b5f ldr r3, [pc, #380] ; (12d88 ) 12c0a: 3038 adds r0, #56 ; 0x38 12c0c: 22ff movs r2, #255 ; 0xff 12c0e: 212c movs r1, #44 ; 0x2c 12c10: 4798 blx r3 lv_style_set_bg_color(&styles->cpicker_bg, LV_STATE_DEFAULT, COLOR_SCR); 12c12: 6823 ldr r3, [r4, #0] 12c14: f103 0938 add.w r9, r3, #56 ; 0x38 12c18: 6a23 ldr r3, [r4, #32] 12c1a: 079b lsls r3, r3, #30 12c1c: bf4c ite mi 12c1e: 485c ldrmi r0, [pc, #368] ; (12d90 ) 12c20: 485c ldrpl r0, [pc, #368] ; (12d94 ) 12c22: 47d0 blx sl _LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar) 12c24: 2129 movs r1, #41 ; 0x29 12c26: 4602 mov r2, r0 12c28: 4648 mov r0, r9 12c2a: 47b8 blx r7 lv_style_set_pad_inner(&styles->cpicker_bg, LV_STATE_DEFAULT, LV_DPX(20)); 12c2c: 6823 ldr r3, [r4, #0] 12c2e: 2000 movs r0, #0 12c30: f103 0938 add.w r9, r3, #56 ; 0x38 12c34: 47a8 blx r5 12c36: eb00 0080 add.w r0, r0, r0, lsl #2 12c3a: 0080 lsls r0, r0, #2 12c3c: 28ef cmp r0, #239 ; 0xef 12c3e: f341 811f ble.w 13e80 12c42: 2000 movs r0, #0 12c44: 47a8 blx r5 12c46: 2314 movs r3, #20 12c48: 2250 movs r2, #80 ; 0x50 12c4a: fb00 2203 mla r2, r0, r3, r2 12c4e: 23a0 movs r3, #160 ; 0xa0 12c50: fb92 f2f3 sdiv r2, r2, r3 12c54: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar) 12c56: 4648 mov r0, r9 12c58: 2114 movs r1, #20 12c5a: 47b0 blx r6 lv_style_set_radius(&styles->cpicker_bg, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE); 12c5c: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar) 12c5e: f8df 9128 ldr.w r9, [pc, #296] ; 12d88 _LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar) 12c62: f647 72ff movw r2, #32767 ; 0x7fff 12c66: 2101 movs r1, #1 12c68: 3038 adds r0, #56 ; 0x38 12c6a: 47b0 blx r6 style_init_reset(&styles->cpicker_indic); 12c6c: 6820 ldr r0, [r4, #0] 12c6e: 303c adds r0, #60 ; 0x3c 12c70: 47c0 blx r8 lv_style_set_radius(&styles->cpicker_indic, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE); 12c72: 6820 ldr r0, [r4, #0] 12c74: f647 72ff movw r2, #32767 ; 0x7fff 12c78: 2101 movs r1, #1 12c7a: 303c adds r0, #60 ; 0x3c 12c7c: 47b0 blx r6 lv_style_set_bg_color(&styles->cpicker_indic, LV_STATE_DEFAULT, LV_COLOR_WHITE); 12c7e: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar) 12c80: f8bb 2000 ldrh.w r2, [fp] 12c84: 2129 movs r1, #41 ; 0x29 12c86: 303c adds r0, #60 ; 0x3c 12c88: 47b8 blx r7 lv_style_set_bg_opa(&styles->cpicker_indic, LV_STATE_DEFAULT, LV_OPA_COVER); 12c8a: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar) 12c8c: 22ff movs r2, #255 ; 0xff 12c8e: 212c movs r1, #44 ; 0x2c 12c90: 303c adds r0, #60 ; 0x3c 12c92: 47c8 blx r9 lv_style_set_border_width(&styles->cpicker_indic, LV_STATE_DEFAULT, 2); 12c94: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar) 12c96: 2202 movs r2, #2 12c98: 2130 movs r1, #48 ; 0x30 12c9a: 303c adds r0, #60 ; 0x3c 12c9c: 47b0 blx r6 lv_style_set_border_color(&styles->cpicker_indic, LV_STATE_DEFAULT, LV_COLOR_GRAY); 12c9e: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar) 12ca0: f8bb 2002 ldrh.w r2, [fp, #2] 12ca4: 2139 movs r1, #57 ; 0x39 12ca6: 303c adds r0, #60 ; 0x3c 12ca8: 47b8 blx r7 lv_style_set_border_color(&styles->cpicker_indic, LV_STATE_FOCUSED, theme.color_primary); 12caa: 6820 ldr r0, [r4, #0] 12cac: 89a2 ldrh r2, [r4, #12] 12cae: f240 2139 movw r1, #569 ; 0x239 12cb2: 303c adds r0, #60 ; 0x3c 12cb4: 47b8 blx r7 lv_style_set_border_color(&styles->cpicker_indic, LV_STATE_EDITED, theme.color_secondary); 12cb6: 6820 ldr r0, [r4, #0] 12cb8: 89e2 ldrh r2, [r4, #14] 12cba: f240 4139 movw r1, #1081 ; 0x439 12cbe: 303c adds r0, #60 ; 0x3c 12cc0: 47b8 blx r7 lv_style_set_pad_left(&styles->cpicker_indic, LV_STATE_DEFAULT, LV_DPX(13)); 12cc2: 6823 ldr r3, [r4, #0] 12cc4: 2000 movs r0, #0 12cc6: f103 0a3c add.w sl, r3, #60 ; 0x3c 12cca: 47a8 blx r5 12ccc: eb00 0340 add.w r3, r0, r0, lsl #1 12cd0: eb00 0083 add.w r0, r0, r3, lsl #2 12cd4: 28ef cmp r0, #239 ; 0xef 12cd6: f341 80d6 ble.w 13e86 12cda: 2000 movs r0, #0 12cdc: 47a8 blx r5 12cde: 230d movs r3, #13 12ce0: 2250 movs r2, #80 ; 0x50 12ce2: fb00 2203 mla r2, r0, r3, r2 12ce6: 23a0 movs r3, #160 ; 0xa0 12ce8: fb92 f2f3 sdiv r2, r2, r3 12cec: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar) 12cee: 4650 mov r0, sl 12cf0: 2112 movs r1, #18 12cf2: 47b0 blx r6 lv_style_set_pad_right(&styles->cpicker_indic, LV_STATE_DEFAULT, LV_DPX(13)); 12cf4: 6823 ldr r3, [r4, #0] 12cf6: 2000 movs r0, #0 12cf8: f103 0a3c add.w sl, r3, #60 ; 0x3c 12cfc: 47a8 blx r5 12cfe: eb00 0340 add.w r3, r0, r0, lsl #1 12d02: eb00 0083 add.w r0, r0, r3, lsl #2 12d06: 28ef cmp r0, #239 ; 0xef 12d08: f341 80c0 ble.w 13e8c 12d0c: 2000 movs r0, #0 12d0e: 47a8 blx r5 12d10: 230d movs r3, #13 12d12: 2250 movs r2, #80 ; 0x50 12d14: fb00 2203 mla r2, r0, r3, r2 12d18: 23a0 movs r3, #160 ; 0xa0 12d1a: fb92 f2f3 sdiv r2, r2, r3 12d1e: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar) 12d20: 4650 mov r0, sl 12d22: 2113 movs r1, #19 12d24: 47b0 blx r6 lv_style_set_pad_top(&styles->cpicker_indic, LV_STATE_DEFAULT, LV_DPX(13)); 12d26: 6823 ldr r3, [r4, #0] 12d28: 2000 movs r0, #0 12d2a: f103 0a3c add.w sl, r3, #60 ; 0x3c 12d2e: 47a8 blx r5 12d30: eb00 0340 add.w r3, r0, r0, lsl #1 12d34: eb00 0083 add.w r0, r0, r3, lsl #2 12d38: 28ef cmp r0, #239 ; 0xef 12d3a: f341 80aa ble.w 13e92 12d3e: 2000 movs r0, #0 12d40: 47a8 blx r5 12d42: 230d movs r3, #13 12d44: 2250 movs r2, #80 ; 0x50 12d46: fb00 2203 mla r2, r0, r3, r2 12d4a: 23a0 movs r3, #160 ; 0xa0 12d4c: fb92 f2f3 sdiv r2, r2, r3 12d50: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar) 12d52: 4650 mov r0, sl 12d54: 2110 movs r1, #16 12d56: 47b0 blx r6 lv_style_set_pad_bottom(&styles->cpicker_indic, LV_STATE_DEFAULT, LV_DPX(13)); 12d58: 6823 ldr r3, [r4, #0] 12d5a: 2000 movs r0, #0 12d5c: f103 0a3c add.w sl, r3, #60 ; 0x3c 12d60: 47a8 blx r5 12d62: eb00 0340 add.w r3, r0, r0, lsl #1 12d66: eb00 0083 add.w r0, r0, r3, lsl #2 12d6a: 28ef cmp r0, #239 ; 0xef 12d6c: f341 8094 ble.w 13e98 12d70: 2000 movs r0, #0 12d72: 47a8 blx r5 12d74: 230d movs r3, #13 12d76: 2250 movs r2, #80 ; 0x50 12d78: fb00 2203 mla r2, r0, r3, r2 12d7c: 23a0 movs r3, #160 ; 0xa0 12d7e: fb92 f2f3 sdiv r2, r2, r3 12d82: b212 sxth r2, r2 12d84: e008 b.n 12d98 12d86: bf00 nop 12d88: 00005c45 .word 0x00005c45 12d8c: 00666666 .word 0x00666666 12d90: 00eaeff3 .word 0x00eaeff3 12d94: 00444b5a .word 0x00444b5a _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar) 12d98: 2111 movs r1, #17 12d9a: 4650 mov r0, sl 12d9c: 47b0 blx r6 style_init_reset(&styles->cb_bg); 12d9e: 6820 ldr r0, [r4, #0] 12da0: 304c adds r0, #76 ; 0x4c 12da2: 47c0 blx r8 lv_style_set_radius(&styles->cb_bg, LV_STATE_DEFAULT, LV_DPX(4)); 12da4: 6823 ldr r3, [r4, #0] 12da6: 2000 movs r0, #0 12da8: f103 084c add.w r8, r3, #76 ; 0x4c 12dac: 47a8 blx r5 12dae: 283b cmp r0, #59 ; 0x3b 12db0: f341 8075 ble.w 13e9e 12db4: 2000 movs r0, #0 12db6: 47a8 blx r5 12db8: 2328 movs r3, #40 ; 0x28 12dba: f100 0214 add.w r2, r0, #20 12dbe: fb92 f2f3 sdiv r2, r2, r3 12dc2: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar) 12dc4: 4640 mov r0, r8 12dc6: 2101 movs r1, #1 12dc8: 47b0 blx r6 lv_style_set_pad_inner(&styles->cb_bg, LV_STATE_DEFAULT, LV_DPX(10)); 12dca: 6823 ldr r3, [r4, #0] 12dcc: 2000 movs r0, #0 12dce: f103 084c add.w r8, r3, #76 ; 0x4c 12dd2: 47a8 blx r5 12dd4: eb00 0080 add.w r0, r0, r0, lsl #2 12dd8: 0040 lsls r0, r0, #1 12dda: 28ef cmp r0, #239 ; 0xef 12ddc: f341 8062 ble.w 13ea4 12de0: 2000 movs r0, #0 12de2: 47a8 blx r5 12de4: 230a movs r3, #10 12de6: 2250 movs r2, #80 ; 0x50 12de8: fb00 2203 mla r2, r0, r3, r2 12dec: 23a0 movs r3, #160 ; 0xa0 12dee: fb92 f2f3 sdiv r2, r2, r3 12df2: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar) 12df4: 2114 movs r1, #20 12df6: 4640 mov r0, r8 12df8: 47b0 blx r6 lv_style_set_outline_color(&styles->cb_bg, LV_STATE_DEFAULT, theme.color_primary); 12dfa: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_COLOR, outline_color, lv_color_t, _color, nonscalar) 12dfc: 89a2 ldrh r2, [r4, #12] 12dfe: 2149 movs r1, #73 ; 0x49 12e00: 304c adds r0, #76 ; 0x4c 12e02: 47b8 blx r7 lv_style_set_outline_opa(&styles->cb_bg, LV_STATE_DEFAULT, LV_OPA_TRANSP); 12e04: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_OPA, outline_opa, lv_opa_t, _opa, scalar) 12e06: 214c movs r1, #76 ; 0x4c 12e08: 4408 add r0, r1 12e0a: 2200 movs r2, #0 12e0c: 47c8 blx r9 lv_style_set_outline_opa(&styles->cb_bg, LV_STATE_FOCUSED, LV_OPA_50); 12e0e: 6820 ldr r0, [r4, #0] 12e10: 227f movs r2, #127 ; 0x7f 12e12: f44f 7113 mov.w r1, #588 ; 0x24c 12e16: 304c adds r0, #76 ; 0x4c 12e18: 47c8 blx r9 lv_style_set_outline_width(&styles->cb_bg, LV_STATE_DEFAULT, LV_DPX(3)); 12e1a: 2000 movs r0, #0 12e1c: 6824 ldr r4, [r4, #0] 12e1e: 47a8 blx r5 12e20: eb00 0040 add.w r0, r0, r0, lsl #1 12e24: 28ef cmp r0, #239 ; 0xef 12e26: f104 044c add.w r4, r4, #76 ; 0x4c 12e2a: f341 803e ble.w 13eaa 12e2e: 2000 movs r0, #0 12e30: 47a8 blx r5 12e32: 2303 movs r3, #3 12e34: 2250 movs r2, #80 ; 0x50 12e36: fb00 2203 mla r2, r0, r3, r2 12e3a: 23a0 movs r3, #160 ; 0xa0 12e3c: fb92 f2f3 sdiv r2, r2, r3 12e40: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_WIDTH, outline_width, lv_style_int_t, _int, scalar) 12e42: 4620 mov r0, r4 12e44: 2140 movs r1, #64 ; 0x40 lv_style_set_outline_pad(&styles->cb_bg, LV_STATE_DEFAULT, LV_DPX(10)); 12e46: 4cbf ldr r4, [pc, #764] ; (13144 ) 12e48: 47b0 blx r6 12e4a: 2000 movs r0, #0 12e4c: 6827 ldr r7, [r4, #0] 12e4e: 47a8 blx r5 12e50: eb00 0080 add.w r0, r0, r0, lsl #2 12e54: 0040 lsls r0, r0, #1 12e56: 28ef cmp r0, #239 ; 0xef 12e58: f107 074c add.w r7, r7, #76 ; 0x4c 12e5c: f341 8028 ble.w 13eb0 12e60: 2000 movs r0, #0 12e62: 47a8 blx r5 12e64: 230a movs r3, #10 12e66: 2250 movs r2, #80 ; 0x50 12e68: fb00 2203 mla r2, r0, r3, r2 12e6c: 23a0 movs r3, #160 ; 0xa0 12e6e: fb92 f2f3 sdiv r2, r2, r3 12e72: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_PAD, outline_pad, lv_style_int_t, _int, scalar) 12e74: 2141 movs r1, #65 ; 0x41 12e76: 4638 mov r0, r7 12e78: 47b0 blx r6 lv_style_set_transition_time(&styles->cb_bg, LV_STATE_DEFAULT, TRANSITION_TIME); 12e7a: 6820 ldr r0, [r4, #0] lv_style_set_radius(&styles->cb_bullet, LV_STATE_DEFAULT, LV_DPX(4)); 12e7c: f8df 82e4 ldr.w r8, [pc, #740] ; 13164 _LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_TIME, transition_time, lv_style_int_t, _int, scalar) 12e80: 2296 movs r2, #150 ; 0x96 12e82: 21b0 movs r1, #176 ; 0xb0 12e84: 304c adds r0, #76 ; 0x4c 12e86: 47b0 blx r6 lv_style_set_transition_prop_6(&styles->cb_bg, LV_STATE_DEFAULT, LV_STYLE_OUTLINE_OPA); 12e88: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_6, transition_prop_6, lv_style_int_t, _int, scalar) 12e8a: 224c movs r2, #76 ; 0x4c 12e8c: 4410 add r0, r2 12e8e: 21b7 movs r1, #183 ; 0xb7 12e90: 47b0 blx r6 style_init_reset(&styles->cb_bullet); 12e92: 6820 ldr r0, [r4, #0] 12e94: 4eac ldr r6, [pc, #688] ; (13148 ) 12e96: 3050 adds r0, #80 ; 0x50 12e98: 47b0 blx r6 lv_style_set_outline_opa(&styles->cb_bullet, LV_STATE_FOCUSED, LV_OPA_TRANSP); 12e9a: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(OUTLINE_OPA, outline_opa, lv_opa_t, _opa, scalar) 12e9c: 2200 movs r2, #0 12e9e: f44f 7113 mov.w r1, #588 ; 0x24c 12ea2: 3050 adds r0, #80 ; 0x50 12ea4: 47c8 blx r9 lv_style_set_radius(&styles->cb_bullet, LV_STATE_DEFAULT, LV_DPX(4)); 12ea6: 2000 movs r0, #0 12ea8: 6825 ldr r5, [r4, #0] 12eaa: 47c0 blx r8 12eac: 283b cmp r0, #59 ; 0x3b 12eae: f105 0550 add.w r5, r5, #80 ; 0x50 12eb2: 46b2 mov sl, r6 12eb4: f341 8012 ble.w 13edc 12eb8: 2000 movs r0, #0 12eba: 47c0 blx r8 12ebc: 2328 movs r3, #40 ; 0x28 12ebe: f100 0214 add.w r2, r0, #20 12ec2: fb92 f2f3 sdiv r2, r2, r3 12ec6: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar) 12ec8: 4628 mov r0, r5 12eca: 2101 movs r1, #1 12ecc: 4d9f ldr r5, [pc, #636] ; (1314c ) _LV_OBJ_STYLE_SET_GET_DECLARE(PATTERN_IMAGE, pattern_image, const void *, _ptr, scalar) 12ece: 4fa0 ldr r7, [pc, #640] ; (13150 ) _LV_OBJ_STYLE_SET_GET_DECLARE(PATTERN_RECOLOR, pattern_recolor, lv_color_t, _color, nonscalar) 12ed0: 4ea0 ldr r6, [pc, #640] ; (13154 ) _LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar) 12ed2: 47a8 blx r5 lv_style_set_pattern_image(&styles->cb_bullet, LV_STATE_CHECKED, LV_SYMBOL_OK); 12ed4: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(PATTERN_IMAGE, pattern_image, const void *, _ptr, scalar) 12ed6: 4aa0 ldr r2, [pc, #640] ; (13158 ) 12ed8: f44f 71b7 mov.w r1, #366 ; 0x16e 12edc: 3050 adds r0, #80 ; 0x50 12ede: 47b8 blx r7 lv_style_set_pattern_recolor(&styles->cb_bullet, LV_STATE_CHECKED, LV_COLOR_WHITE); 12ee0: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(PATTERN_RECOLOR, pattern_recolor, lv_color_t, _color, nonscalar) 12ee2: f8bb 2000 ldrh.w r2, [fp] 12ee6: f240 1169 movw r1, #361 ; 0x169 12eea: 3050 adds r0, #80 ; 0x50 12eec: 47b0 blx r6 lv_style_set_text_font(&styles->cb_bullet, LV_STATE_CHECKED, theme.font_small); 12eee: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar) 12ef0: 6922 ldr r2, [r4, #16] 12ef2: f248 118e movw r1, #33166 ; 0x818e 12ef6: 3050 adds r0, #80 ; 0x50 12ef8: 47b8 blx r7 lv_style_set_pad_left(&styles->cb_bullet, LV_STATE_DEFAULT, LV_DPX(3)); 12efa: 2000 movs r0, #0 12efc: 6827 ldr r7, [r4, #0] 12efe: 47c0 blx r8 12f00: eb00 0040 add.w r0, r0, r0, lsl #1 12f04: 28ef cmp r0, #239 ; 0xef 12f06: f107 0750 add.w r7, r7, #80 ; 0x50 12f0a: f340 87ea ble.w 13ee2 12f0e: 2000 movs r0, #0 12f10: 47c0 blx r8 12f12: 2303 movs r3, #3 12f14: 2250 movs r2, #80 ; 0x50 12f16: fb00 2203 mla r2, r0, r3, r2 12f1a: 23a0 movs r3, #160 ; 0xa0 12f1c: fb92 f2f3 sdiv r2, r2, r3 12f20: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar) 12f22: 4638 mov r0, r7 12f24: 2112 movs r1, #18 12f26: 47a8 blx r5 lv_style_set_pad_right(&styles->cb_bullet, LV_STATE_DEFAULT, LV_DPX(3)); 12f28: 2000 movs r0, #0 12f2a: 6827 ldr r7, [r4, #0] 12f2c: 47c0 blx r8 12f2e: eb00 0040 add.w r0, r0, r0, lsl #1 12f32: 28ef cmp r0, #239 ; 0xef 12f34: f107 0750 add.w r7, r7, #80 ; 0x50 12f38: f340 87d6 ble.w 13ee8 12f3c: 2000 movs r0, #0 12f3e: 47c0 blx r8 12f40: 2303 movs r3, #3 12f42: 2250 movs r2, #80 ; 0x50 12f44: fb00 2203 mla r2, r0, r3, r2 12f48: 23a0 movs r3, #160 ; 0xa0 12f4a: fb92 f2f3 sdiv r2, r2, r3 12f4e: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar) 12f50: 4638 mov r0, r7 12f52: 2113 movs r1, #19 12f54: 47a8 blx r5 lv_style_set_pad_top(&styles->cb_bullet, LV_STATE_DEFAULT, LV_DPX(3)); 12f56: 2000 movs r0, #0 12f58: 6827 ldr r7, [r4, #0] 12f5a: 47c0 blx r8 12f5c: eb00 0040 add.w r0, r0, r0, lsl #1 12f60: 28ef cmp r0, #239 ; 0xef 12f62: f107 0750 add.w r7, r7, #80 ; 0x50 12f66: f340 87c2 ble.w 13eee 12f6a: 2000 movs r0, #0 12f6c: 47c0 blx r8 12f6e: 2303 movs r3, #3 12f70: 2250 movs r2, #80 ; 0x50 12f72: fb00 2203 mla r2, r0, r3, r2 12f76: 23a0 movs r3, #160 ; 0xa0 12f78: fb92 f2f3 sdiv r2, r2, r3 12f7c: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar) 12f7e: 4638 mov r0, r7 12f80: 2110 movs r1, #16 12f82: 47a8 blx r5 lv_style_set_pad_bottom(&styles->cb_bullet, LV_STATE_DEFAULT, LV_DPX(3)); 12f84: 2000 movs r0, #0 12f86: 6827 ldr r7, [r4, #0] 12f88: 47c0 blx r8 12f8a: eb00 0040 add.w r0, r0, r0, lsl #1 12f8e: 28ef cmp r0, #239 ; 0xef 12f90: f107 0750 add.w r7, r7, #80 ; 0x50 12f94: f340 87ae ble.w 13ef4 12f98: 2000 movs r0, #0 12f9a: 47c0 blx r8 12f9c: 2303 movs r3, #3 12f9e: 2250 movs r2, #80 ; 0x50 12fa0: fb00 2203 mla r2, r0, r3, r2 12fa4: 23a0 movs r3, #160 ; 0xa0 12fa6: fb92 f2f3 sdiv r2, r2, r3 12faa: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar) 12fac: 2111 movs r1, #17 12fae: 4638 mov r0, r7 12fb0: 47a8 blx r5 style_init_reset(&styles->kb_bg); 12fb2: 6820 ldr r0, [r4, #0] 12fb4: 3068 adds r0, #104 ; 0x68 12fb6: 47d0 blx sl lv_style_set_radius(&styles->kb_bg, LV_STATE_DEFAULT, 0); 12fb8: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar) 12fba: 2200 movs r2, #0 12fbc: 2101 movs r1, #1 12fbe: 3068 adds r0, #104 ; 0x68 12fc0: 47a8 blx r5 lv_style_set_border_width(&styles->kb_bg, LV_STATE_DEFAULT, LV_DPX(4)); 12fc2: 2000 movs r0, #0 12fc4: 6827 ldr r7, [r4, #0] 12fc6: 47c0 blx r8 12fc8: 283b cmp r0, #59 ; 0x3b 12fca: f107 0768 add.w r7, r7, #104 ; 0x68 12fce: f340 8794 ble.w 13efa 12fd2: 2000 movs r0, #0 12fd4: 47c0 blx r8 12fd6: 2328 movs r3, #40 ; 0x28 12fd8: f100 0214 add.w r2, r0, #20 12fdc: fb92 f2f3 sdiv r2, r2, r3 12fe0: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar) 12fe2: 4638 mov r0, r7 12fe4: 2130 movs r1, #48 ; 0x30 12fe6: 47a8 blx r5 lv_style_set_border_side(&styles->kb_bg, LV_STATE_DEFAULT, LV_BORDER_SIDE_TOP); 12fe8: 6820 ldr r0, [r4, #0] 12fea: 4f5c ldr r7, [pc, #368] ; (1315c ) _LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_SIDE, border_side, lv_border_side_t, _int, scalar) 12fec: 3068 adds r0, #104 ; 0x68 12fee: 2202 movs r2, #2 12ff0: 2131 movs r1, #49 ; 0x31 12ff2: 47a8 blx r5 lv_style_set_border_color(&styles->kb_bg, LV_STATE_DEFAULT, IS_LIGHT ? COLOR_BG_TEXT : LV_COLOR_BLACK); 12ff4: 6a20 ldr r0, [r4, #32] 12ff6: 6823 ldr r3, [r4, #0] 12ff8: f010 0002 ands.w r0, r0, #2 12ffc: f103 0b68 add.w fp, r3, #104 ; 0x68 13000: f000 877e beq.w 13f00 13004: 4856 ldr r0, [pc, #344] ; (13160 ) 13006: 47b8 blx r7 13008: f000 021f and.w r2, r0, #31 1300c: f3c0 1345 ubfx r3, r0, #5, #6 13010: f3c0 20c4 ubfx r0, r0, #11, #5 _LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar) 13014: ea42 1243 orr.w r2, r2, r3, lsl #5 13018: ea42 22c0 orr.w r2, r2, r0, lsl #11 1301c: 2139 movs r1, #57 ; 0x39 1301e: 4658 mov r0, fp 13020: 47b0 blx r6 lv_style_set_border_color(&styles->kb_bg, LV_STATE_EDITED, theme.color_secondary); 13022: 6820 ldr r0, [r4, #0] 13024: 89e2 ldrh r2, [r4, #14] 13026: f240 4139 movw r1, #1081 ; 0x439 1302a: 3068 adds r0, #104 ; 0x68 1302c: 47b0 blx r6 lv_style_set_pad_left(&styles->kb_bg, LV_STATE_DEFAULT, LV_DPX(5)); 1302e: 6823 ldr r3, [r4, #0] 13030: 2000 movs r0, #0 13032: f103 0b68 add.w fp, r3, #104 ; 0x68 13036: 47c0 blx r8 13038: eb00 0080 add.w r0, r0, r0, lsl #2 1303c: 28ef cmp r0, #239 ; 0xef 1303e: f340 8763 ble.w 13f08 13042: 2000 movs r0, #0 13044: 47c0 blx r8 13046: 2305 movs r3, #5 13048: 2250 movs r2, #80 ; 0x50 1304a: fb00 2203 mla r2, r0, r3, r2 1304e: 23a0 movs r3, #160 ; 0xa0 13050: fb92 f2f3 sdiv r2, r2, r3 13054: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar) 13056: 4658 mov r0, fp 13058: 2112 movs r1, #18 1305a: 47a8 blx r5 lv_style_set_pad_right(&styles->kb_bg, LV_STATE_DEFAULT, LV_DPX(5)); 1305c: 6823 ldr r3, [r4, #0] 1305e: 2000 movs r0, #0 13060: f103 0b68 add.w fp, r3, #104 ; 0x68 13064: 47c0 blx r8 13066: eb00 0080 add.w r0, r0, r0, lsl #2 1306a: 28ef cmp r0, #239 ; 0xef 1306c: f340 874f ble.w 13f0e 13070: 2000 movs r0, #0 13072: 47c0 blx r8 13074: 2305 movs r3, #5 13076: 2250 movs r2, #80 ; 0x50 13078: fb00 2203 mla r2, r0, r3, r2 1307c: 23a0 movs r3, #160 ; 0xa0 1307e: fb92 f2f3 sdiv r2, r2, r3 13082: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar) 13084: 4658 mov r0, fp 13086: 2113 movs r1, #19 13088: 47a8 blx r5 lv_style_set_pad_top(&styles->kb_bg, LV_STATE_DEFAULT, LV_DPX(5)); 1308a: 6823 ldr r3, [r4, #0] 1308c: 2000 movs r0, #0 1308e: f103 0b68 add.w fp, r3, #104 ; 0x68 13092: 47c0 blx r8 13094: eb00 0080 add.w r0, r0, r0, lsl #2 13098: 28ef cmp r0, #239 ; 0xef 1309a: f340 873b ble.w 13f14 1309e: 2000 movs r0, #0 130a0: 47c0 blx r8 130a2: 2305 movs r3, #5 130a4: 2250 movs r2, #80 ; 0x50 130a6: fb00 2203 mla r2, r0, r3, r2 130aa: 23a0 movs r3, #160 ; 0xa0 130ac: fb92 f2f3 sdiv r2, r2, r3 130b0: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar) 130b2: 4658 mov r0, fp 130b4: 2110 movs r1, #16 130b6: 47a8 blx r5 lv_style_set_pad_bottom(&styles->kb_bg, LV_STATE_DEFAULT, LV_DPX(5)); 130b8: 6823 ldr r3, [r4, #0] 130ba: 2000 movs r0, #0 130bc: f103 0b68 add.w fp, r3, #104 ; 0x68 130c0: 47c0 blx r8 130c2: eb00 0080 add.w r0, r0, r0, lsl #2 130c6: 28ef cmp r0, #239 ; 0xef 130c8: f340 8727 ble.w 13f1a 130cc: 2000 movs r0, #0 130ce: 47c0 blx r8 130d0: 2305 movs r3, #5 130d2: 2250 movs r2, #80 ; 0x50 130d4: fb00 2203 mla r2, r0, r3, r2 130d8: 23a0 movs r3, #160 ; 0xa0 130da: fb92 f2f3 sdiv r2, r2, r3 130de: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar) 130e0: 4658 mov r0, fp 130e2: 2111 movs r1, #17 130e4: 47a8 blx r5 lv_style_set_pad_inner(&styles->kb_bg, LV_STATE_DEFAULT, LV_DPX(3)); 130e6: 6823 ldr r3, [r4, #0] 130e8: 2000 movs r0, #0 130ea: f103 0b68 add.w fp, r3, #104 ; 0x68 130ee: 47c0 blx r8 130f0: eb00 0040 add.w r0, r0, r0, lsl #1 130f4: 28ef cmp r0, #239 ; 0xef 130f6: f340 8713 ble.w 13f20 130fa: 2000 movs r0, #0 130fc: 47c0 blx r8 130fe: 2303 movs r3, #3 13100: 2250 movs r2, #80 ; 0x50 13102: fb00 2203 mla r2, r0, r3, r2 13106: 23a0 movs r3, #160 ; 0xa0 13108: fb92 f2f3 sdiv r2, r2, r3 1310c: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar) 1310e: 2114 movs r1, #20 13110: 4658 mov r0, fp 13112: 47a8 blx r5 style_init_reset(&styles->mbox_bg); 13114: 6820 ldr r0, [r4, #0] 13116: 307c adds r0, #124 ; 0x7c 13118: 47d0 blx sl lv_style_set_shadow_width(&styles->mbox_bg, LV_STATE_DEFAULT, LV_DPX(50)); 1311a: 6823 ldr r3, [r4, #0] 1311c: 2000 movs r0, #0 1311e: f103 0b7c add.w fp, r3, #124 ; 0x7c 13122: 47c0 blx r8 13124: 2332 movs r3, #50 ; 0x32 13126: 4358 muls r0, r3 13128: 28ef cmp r0, #239 ; 0xef 1312a: f340 86fc ble.w 13f26 1312e: 2000 movs r0, #0 13130: 47c0 blx r8 13132: 2332 movs r3, #50 ; 0x32 13134: 2250 movs r2, #80 ; 0x50 13136: fb00 2203 mla r2, r0, r3, r2 1313a: 23a0 movs r3, #160 ; 0xa0 1313c: fb92 f2f3 sdiv r2, r2, r3 13140: b212 sxth r2, r2 13142: e011 b.n 13168 13144: 2000d170 .word 0x2000d170 13148: 00010cf5 .word 0x00010cf5 1314c: 00005aa5 .word 0x00005aa5 13150: 00005d19 .word 0x00005d19 13154: 00005b75 .word 0x00005b75 13158: 0002bbee .word 0x0002bbee 1315c: 000110d5 .word 0x000110d5 13160: 003b3e42 .word 0x003b3e42 13164: 0000db7d .word 0x0000db7d _LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_WIDTH, shadow_width, lv_style_int_t, _int, scalar) 13168: 4658 mov r0, fp 1316a: 2150 movs r1, #80 ; 0x50 1316c: 47a8 blx r5 lv_style_set_shadow_color(&styles->mbox_bg, LV_STATE_DEFAULT, IS_LIGHT ? LV_COLOR_SILVER : lv_color_hex3(0x999)); 1316e: 6823 ldr r3, [r4, #0] 13170: f103 0b7c add.w fp, r3, #124 ; 0x7c 13174: 6a23 ldr r3, [r4, #32] 13176: 0798 lsls r0, r3, #30 13178: f140 86d8 bpl.w 13f2c 1317c: 4bb6 ldr r3, [pc, #728] ; (13458 ) 1317e: 889a ldrh r2, [r3, #4] _LV_OBJ_STYLE_SET_GET_DECLARE(SHADOW_COLOR, shadow_color, lv_color_t, _color, nonscalar) 13180: 2159 movs r1, #89 ; 0x59 13182: 4658 mov r0, fp 13184: 47b0 blx r6 style_init_reset(&styles->sb); 13186: 6820 ldr r0, [r4, #0] 13188: 3080 adds r0, #128 ; 0x80 1318a: 47d0 blx sl lv_style_set_bg_opa(&styles->sb, LV_STATE_DEFAULT, LV_OPA_COVER); 1318c: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar) 1318e: 22ff movs r2, #255 ; 0xff 13190: 3080 adds r0, #128 ; 0x80 13192: 212c movs r1, #44 ; 0x2c 13194: 47c8 blx r9 lv_style_set_bg_color(&styles->sb, LV_STATE_DEFAULT, (IS_LIGHT ? lv_color_hex(0xcccfd1) : lv_color_hex(0x777f85))); 13196: 6823 ldr r3, [r4, #0] 13198: f103 0b80 add.w fp, r3, #128 ; 0x80 1319c: 6a23 ldr r3, [r4, #32] 1319e: 0799 lsls r1, r3, #30 131a0: bf4c ite mi 131a2: 48ae ldrmi r0, [pc, #696] ; (1345c ) 131a4: 48ae ldrpl r0, [pc, #696] ; (13460 ) 131a6: 47b8 blx r7 _LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar) 131a8: 2129 movs r1, #41 ; 0x29 131aa: 4602 mov r2, r0 131ac: 4658 mov r0, fp 131ae: 47b0 blx r6 lv_style_set_radius(&styles->sb, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE); 131b0: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar) 131b2: f647 72ff movw r2, #32767 ; 0x7fff 131b6: 2101 movs r1, #1 131b8: 3080 adds r0, #128 ; 0x80 131ba: 47a8 blx r5 lv_style_set_size(&styles->sb, LV_STATE_DEFAULT, LV_DPX(7)); 131bc: 6823 ldr r3, [r4, #0] 131be: 2000 movs r0, #0 131c0: f103 0b80 add.w fp, r3, #128 ; 0x80 131c4: 47c0 blx r8 131c6: ebc0 00c0 rsb r0, r0, r0, lsl #3 131ca: 28ef cmp r0, #239 ; 0xef 131cc: f340 86b5 ble.w 13f3a 131d0: 2000 movs r0, #0 131d2: 47c0 blx r8 131d4: 2307 movs r3, #7 131d6: 2250 movs r2, #80 ; 0x50 131d8: fb00 2203 mla r2, r0, r3, r2 131dc: 23a0 movs r3, #160 ; 0xa0 131de: fb92 f2f3 sdiv r2, r2, r3 131e2: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(SIZE, size, lv_style_int_t, _int, scalar) 131e4: 4658 mov r0, fp 131e6: 2103 movs r1, #3 131e8: 47a8 blx r5 lv_style_set_pad_right(&styles->sb, LV_STATE_DEFAULT, LV_DPX(7)); 131ea: 6823 ldr r3, [r4, #0] 131ec: 2000 movs r0, #0 131ee: f103 0b80 add.w fp, r3, #128 ; 0x80 131f2: 47c0 blx r8 131f4: ebc0 00c0 rsb r0, r0, r0, lsl #3 131f8: 28ef cmp r0, #239 ; 0xef 131fa: f340 86a1 ble.w 13f40 131fe: 2000 movs r0, #0 13200: 47c0 blx r8 13202: 2307 movs r3, #7 13204: 2250 movs r2, #80 ; 0x50 13206: fb00 2203 mla r2, r0, r3, r2 1320a: 23a0 movs r3, #160 ; 0xa0 1320c: fb92 f2f3 sdiv r2, r2, r3 13210: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar) 13212: 4658 mov r0, fp 13214: 2113 movs r1, #19 13216: 47a8 blx r5 lv_style_set_pad_bottom(&styles->sb, LV_STATE_DEFAULT, LV_DPX(7)); 13218: 6823 ldr r3, [r4, #0] 1321a: 2000 movs r0, #0 1321c: f103 0b80 add.w fp, r3, #128 ; 0x80 13220: 47c0 blx r8 13222: ebc0 00c0 rsb r0, r0, r0, lsl #3 13226: 28ef cmp r0, #239 ; 0xef 13228: f340 868d ble.w 13f46 1322c: 2000 movs r0, #0 1322e: 47c0 blx r8 13230: 2307 movs r3, #7 13232: 2250 movs r2, #80 ; 0x50 13234: fb00 2203 mla r2, r0, r3, r2 13238: 23a0 movs r3, #160 ; 0xa0 1323a: fb92 f2f3 sdiv r2, r2, r3 1323e: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar) 13240: 2111 movs r1, #17 13242: 4658 mov r0, fp 13244: 47a8 blx r5 style_init_reset(&styles->edge_flash); 13246: 6820 ldr r0, [r4, #0] 13248: 3084 adds r0, #132 ; 0x84 1324a: 47d0 blx sl lv_style_set_bg_opa(&styles->edge_flash, LV_STATE_DEFAULT, LV_OPA_COVER); 1324c: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar) 1324e: 22ff movs r2, #255 ; 0xff 13250: 212c movs r1, #44 ; 0x2c 13252: 3084 adds r0, #132 ; 0x84 13254: 47c8 blx r9 lv_style_set_bg_color(&styles->edge_flash, LV_STATE_DEFAULT, lv_color_hex3(0x888)); 13256: 6823 ldr r3, [r4, #0] 13258: f640 0088 movw r0, #2184 ; 0x888 1325c: f103 0b84 add.w fp, r3, #132 ; 0x84 13260: 4b80 ldr r3, [pc, #512] ; (13464 ) 13262: 4798 blx r3 _LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar) 13264: 2129 movs r1, #41 ; 0x29 13266: 4602 mov r2, r0 13268: 4658 mov r0, fp 1326a: 47b0 blx r6 style_init_reset(&styles->ta_cursor); 1326c: 6820 ldr r0, [r4, #0] 1326e: 30b4 adds r0, #180 ; 0xb4 13270: 47d0 blx sl lv_style_set_border_color(&styles->ta_cursor, LV_STATE_DEFAULT, COLOR_BG_SEC_TEXT); 13272: 6823 ldr r3, [r4, #0] 13274: f103 0bb4 add.w fp, r3, #180 ; 0xb4 13278: 6a23 ldr r3, [r4, #32] 1327a: 079a lsls r2, r3, #30 1327c: bf4c ite mi 1327e: 487a ldrmi r0, [pc, #488] ; (13468 ) 13280: 487a ldrpl r0, [pc, #488] ; (1346c ) 13282: 47b8 blx r7 _LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar) 13284: 2139 movs r1, #57 ; 0x39 13286: 4602 mov r2, r0 13288: 4658 mov r0, fp 1328a: 47b0 blx r6 lv_style_set_border_width(&styles->ta_cursor, LV_STATE_DEFAULT, LV_DPX(2)); 1328c: 6823 ldr r3, [r4, #0] 1328e: 2000 movs r0, #0 13290: f103 0bb4 add.w fp, r3, #180 ; 0xb4 13294: 47c0 blx r8 13296: 2877 cmp r0, #119 ; 0x77 13298: f340 8658 ble.w 13f4c 1329c: 2000 movs r0, #0 1329e: 47c0 blx r8 132a0: 2350 movs r3, #80 ; 0x50 132a2: f100 0228 add.w r2, r0, #40 ; 0x28 132a6: fb92 f2f3 sdiv r2, r2, r3 132aa: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar) 132ac: 4658 mov r0, fp 132ae: 2130 movs r1, #48 ; 0x30 132b0: 47a8 blx r5 lv_style_set_pad_left(&styles->ta_cursor, LV_STATE_DEFAULT, LV_DPX(1)); 132b2: 6823 ldr r3, [r4, #0] 132b4: 2000 movs r0, #0 132b6: f103 0bb4 add.w fp, r3, #180 ; 0xb4 132ba: 47c0 blx r8 132bc: 28ef cmp r0, #239 ; 0xef 132be: f340 8648 ble.w 13f52 132c2: 2000 movs r0, #0 132c4: 47c0 blx r8 132c6: 23a0 movs r3, #160 ; 0xa0 132c8: f100 0250 add.w r2, r0, #80 ; 0x50 132cc: fb92 f2f3 sdiv r2, r2, r3 132d0: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar) 132d2: 4658 mov r0, fp 132d4: 2112 movs r1, #18 132d6: 47a8 blx r5 lv_style_set_border_side(&styles->ta_cursor, LV_STATE_DEFAULT, LV_BORDER_SIDE_LEFT); 132d8: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_SIDE, border_side, lv_border_side_t, _int, scalar) 132da: 2204 movs r2, #4 132dc: 2131 movs r1, #49 ; 0x31 132de: 30b4 adds r0, #180 ; 0xb4 132e0: 47a8 blx r5 style_init_reset(&styles->ta_placeholder); 132e2: 6820 ldr r0, [r4, #0] 132e4: 30b8 adds r0, #184 ; 0xb8 132e6: 47d0 blx sl lv_style_set_text_color(&styles->ta_placeholder, LV_STATE_DEFAULT, IS_LIGHT ? COLOR_BG_TEXT_DIS : lv_color_hex(0xa1adbd)); 132e8: 6823 ldr r3, [r4, #0] 132ea: f103 0bb8 add.w fp, r3, #184 ; 0xb8 132ee: 6a23 ldr r3, [r4, #32] 132f0: 079b lsls r3, r3, #30 132f2: f140 8631 bpl.w 13f58 132f6: 4b5b ldr r3, [pc, #364] ; (13464 ) 132f8: f640 20aa movw r0, #2730 ; 0xaaa 132fc: 4798 blx r3 _LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar) 132fe: 4602 mov r2, r0 13300: f248 0189 movw r1, #32905 ; 0x8089 13304: 4658 mov r0, fp 13306: 47b0 blx r6 style_init_reset(&styles->spinbox_cursor); 13308: 6820 ldr r0, [r4, #0] 1330a: 3098 adds r0, #152 ; 0x98 1330c: 47d0 blx sl lv_style_set_bg_opa(&styles->spinbox_cursor, LV_STATE_DEFAULT, LV_OPA_COVER); 1330e: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar) 13310: 22ff movs r2, #255 ; 0xff 13312: 212c movs r1, #44 ; 0x2c 13314: 3098 adds r0, #152 ; 0x98 13316: 47c8 blx r9 lv_style_set_bg_color(&styles->spinbox_cursor, LV_STATE_DEFAULT, theme.color_primary); 13318: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar) 1331a: 89a2 ldrh r2, [r4, #12] 1331c: 2129 movs r1, #41 ; 0x29 1331e: 3098 adds r0, #152 ; 0x98 13320: 47b0 blx r6 _LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar) 13322: 4b4d ldr r3, [pc, #308] ; (13458 ) lv_style_set_text_color(&styles->spinbox_cursor, LV_STATE_DEFAULT, LV_COLOR_WHITE); 13324: 6820 ldr r0, [r4, #0] 13326: 881a ldrh r2, [r3, #0] 13328: f248 0189 movw r1, #32905 ; 0x8089 1332c: 3098 adds r0, #152 ; 0x98 1332e: 47b0 blx r6 lv_style_set_pad_top(&styles->spinbox_cursor, LV_STATE_DEFAULT, LV_DPX(100)); 13330: 6823 ldr r3, [r4, #0] 13332: 2000 movs r0, #0 13334: f103 0998 add.w r9, r3, #152 ; 0x98 13338: 47c0 blx r8 1333a: f04f 0b64 mov.w fp, #100 ; 0x64 1333e: fb00 f00b mul.w r0, r0, fp 13342: 28ef cmp r0, #239 ; 0xef 13344: f340 860c ble.w 13f60 13348: 2000 movs r0, #0 1334a: 47c0 blx r8 1334c: 2250 movs r2, #80 ; 0x50 1334e: fb00 220b mla r2, r0, fp, r2 13352: 23a0 movs r3, #160 ; 0xa0 13354: fb92 f2f3 sdiv r2, r2, r3 13358: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar) 1335a: 4648 mov r0, r9 1335c: 2110 movs r1, #16 1335e: 47a8 blx r5 lv_style_set_pad_bottom(&styles->spinbox_cursor, LV_STATE_DEFAULT, LV_DPX(100)); 13360: 6823 ldr r3, [r4, #0] 13362: 2000 movs r0, #0 13364: f103 0998 add.w r9, r3, #152 ; 0x98 13368: 47c0 blx r8 1336a: f04f 0b64 mov.w fp, #100 ; 0x64 1336e: fb00 f00b mul.w r0, r0, fp 13372: 28ef cmp r0, #239 ; 0xef 13374: f340 85f7 ble.w 13f66 13378: 2000 movs r0, #0 1337a: 47c0 blx r8 1337c: 2250 movs r2, #80 ; 0x50 1337e: fb00 220b mla r2, r0, fp, r2 13382: 23a0 movs r3, #160 ; 0xa0 13384: fb92 f2f3 sdiv r2, r2, r3 13388: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar) 1338a: 2111 movs r1, #17 1338c: 4648 mov r0, r9 1338e: 47a8 blx r5 style_init_reset(&styles->list_bg); 13390: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar) 13392: f8df 90ec ldr.w r9, [pc, #236] ; 13480 13396: 3074 adds r0, #116 ; 0x74 13398: 47d0 blx sl lv_style_set_clip_corner(&styles->list_bg, LV_STATE_DEFAULT, true); 1339a: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(CLIP_CORNER, clip_corner, bool, _int, scalar) 1339c: 2201 movs r2, #1 1339e: 2102 movs r1, #2 133a0: 3074 adds r0, #116 ; 0x74 133a2: 47a8 blx r5 lv_style_set_pad_left(&styles->list_bg, LV_STATE_DEFAULT, 0); 133a4: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar) 133a6: 2200 movs r2, #0 133a8: 2112 movs r1, #18 133aa: 3074 adds r0, #116 ; 0x74 133ac: 47a8 blx r5 lv_style_set_pad_right(&styles->list_bg, LV_STATE_DEFAULT, 0); 133ae: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar) 133b0: 2200 movs r2, #0 133b2: 2113 movs r1, #19 133b4: 3074 adds r0, #116 ; 0x74 133b6: 47a8 blx r5 lv_style_set_pad_top(&styles->list_bg, LV_STATE_DEFAULT, 0); 133b8: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar) 133ba: 2200 movs r2, #0 133bc: 2110 movs r1, #16 133be: 3074 adds r0, #116 ; 0x74 133c0: 47a8 blx r5 lv_style_set_pad_bottom(&styles->list_bg, LV_STATE_DEFAULT, 0); 133c2: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar) 133c4: 2200 movs r2, #0 133c6: 2111 movs r1, #17 133c8: 3074 adds r0, #116 ; 0x74 133ca: 47a8 blx r5 lv_style_set_pad_inner(&styles->list_bg, LV_STATE_DEFAULT, 0); 133cc: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar) 133ce: 2200 movs r2, #0 133d0: 2114 movs r1, #20 133d2: 3074 adds r0, #116 ; 0x74 133d4: 47a8 blx r5 style_init_reset(&styles->list_btn); 133d6: 6820 ldr r0, [r4, #0] 133d8: 3078 adds r0, #120 ; 0x78 133da: 47d0 blx sl lv_style_set_bg_opa(&styles->list_btn, LV_STATE_DEFAULT, LV_OPA_COVER); 133dc: 6820 ldr r0, [r4, #0] 133de: f8df a084 ldr.w sl, [pc, #132] ; 13464 _LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar) 133e2: 3078 adds r0, #120 ; 0x78 133e4: 22ff movs r2, #255 ; 0xff 133e6: 212c movs r1, #44 ; 0x2c 133e8: 47c8 blx r9 lv_style_set_bg_color(&styles->list_btn, LV_STATE_DEFAULT, COLOR_BG); 133ea: 6823 ldr r3, [r4, #0] 133ec: f103 0878 add.w r8, r3, #120 ; 0x78 133f0: 6a23 ldr r3, [r4, #32] 133f2: 0798 lsls r0, r3, #30 133f4: bf54 ite pl 133f6: 481e ldrpl r0, [pc, #120] ; (13470 ) 133f8: f06f 407f mvnmi.w r0, #4278190080 ; 0xff000000 133fc: 47b8 blx r7 _LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar) 133fe: 2129 movs r1, #41 ; 0x29 13400: 4602 mov r2, r0 13402: 4640 mov r0, r8 13404: 47b0 blx r6 lv_style_set_bg_color(&styles->list_btn, LV_STATE_PRESSED, COLOR_BG_PR); 13406: 6823 ldr r3, [r4, #0] 13408: f103 0878 add.w r8, r3, #120 ; 0x78 1340c: 6a23 ldr r3, [r4, #32] 1340e: 0799 lsls r1, r3, #30 13410: bf4c ite mi 13412: 4818 ldrmi r0, [pc, #96] ; (13474 ) 13414: 4818 ldrpl r0, [pc, #96] ; (13478 ) 13416: 47b8 blx r7 13418: f241 0129 movw r1, #4137 ; 0x1029 1341c: 4602 mov r2, r0 1341e: 4640 mov r0, r8 13420: 47b0 blx r6 lv_style_set_bg_color(&styles->list_btn, LV_STATE_DISABLED, COLOR_BG_DIS); 13422: 6823 ldr r3, [r4, #0] 13424: f103 0878 add.w r8, r3, #120 ; 0x78 13428: 6a23 ldr r3, [r4, #32] 1342a: 079a lsls r2, r3, #30 1342c: bf54 ite pl 1342e: 4810 ldrpl r0, [pc, #64] ; (13470 ) 13430: f06f 407f mvnmi.w r0, #4278190080 ; 0xff000000 13434: 47b8 blx r7 13436: f242 0129 movw r1, #8233 ; 0x2029 1343a: 4602 mov r2, r0 1343c: 4640 mov r0, r8 1343e: 47b0 blx r6 lv_style_set_bg_color(&styles->list_btn, LV_STATE_CHECKED, COLOR_BG_CHK); 13440: 6820 ldr r0, [r4, #0] 13442: 89a2 ldrh r2, [r4, #12] 13444: f240 1129 movw r1, #297 ; 0x129 13448: 3078 adds r0, #120 ; 0x78 1344a: 47b0 blx r6 lv_style_set_bg_color(&styles->list_btn, LV_STATE_CHECKED | LV_STATE_PRESSED, COLOR_BG_PR_CHK); 1344c: 6820 ldr r0, [r4, #0] 1344e: 4b0b ldr r3, [pc, #44] ; (1347c ) 13450: f100 0878 add.w r8, r0, #120 ; 0x78 13454: e016 b.n 13484 13456: bf00 nop 13458: 0002bbf2 .word 0x0002bbf2 1345c: 00cccfd1 .word 0x00cccfd1 13460: 00777f85 .word 0x00777f85 13464: 00010529 .word 0x00010529 13468: 0031404f .word 0x0031404f 1346c: 00a5a8ad .word 0x00a5a8ad 13470: 00586273 .word 0x00586273 13474: 00eeeeee .word 0x00eeeeee 13478: 00494f57 .word 0x00494f57 1347c: 0000e5bb .word 0x0000e5bb 13480: 00005c45 .word 0x00005c45 13484: 2133 movs r1, #51 ; 0x33 13486: 89a0 ldrh r0, [r4, #12] 13488: 4798 blx r3 1348a: f241 1129 movw r1, #4393 ; 0x1129 1348e: 4602 mov r2, r0 13490: 4640 mov r0, r8 13492: 47b0 blx r6 lv_style_set_text_color(&styles->list_btn, LV_STATE_DEFAULT, COLOR_BG_TEXT); 13494: 6823 ldr r3, [r4, #0] 13496: f103 0878 add.w r8, r3, #120 ; 0x78 1349a: 6a23 ldr r3, [r4, #32] 1349c: 079b lsls r3, r3, #30 1349e: bf4c ite mi 134a0: 48ba ldrmi r0, [pc, #744] ; (1378c ) 134a2: f06f 407f mvnpl.w r0, #4278190080 ; 0xff000000 134a6: 47b8 blx r7 _LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar) 134a8: f248 0189 movw r1, #32905 ; 0x8089 134ac: 4602 mov r2, r0 134ae: 4640 mov r0, r8 134b0: 47b0 blx r6 lv_style_set_text_color(&styles->list_btn, LV_STATE_CHECKED, COLOR_BG_TEXT_CHK); 134b2: 6820 ldr r0, [r4, #0] 134b4: f100 0878 add.w r8, r0, #120 ; 0x78 134b8: f06f 407f mvn.w r0, #4278190080 ; 0xff000000 134bc: 47b8 blx r7 134be: f248 1189 movw r1, #33161 ; 0x8189 134c2: 4602 mov r2, r0 134c4: 4640 mov r0, r8 134c6: 47b0 blx r6 lv_style_set_text_color(&styles->list_btn, LV_STATE_DISABLED, COLOR_BG_TEXT_DIS); 134c8: 6823 ldr r3, [r4, #0] 134ca: f103 0878 add.w r8, r3, #120 ; 0x78 134ce: 6a23 ldr r3, [r4, #32] 134d0: f013 0f02 tst.w r3, #2 134d4: bf14 ite ne 134d6: f640 20aa movwne r0, #2730 ; 0xaaa 134da: f640 1099 movweq r0, #2457 ; 0x999 134de: 47d0 blx sl 134e0: f24a 0189 movw r1, #41097 ; 0xa089 134e4: 4602 mov r2, r0 134e6: 4640 mov r0, r8 134e8: 47b0 blx r6 lv_style_set_image_recolor(&styles->list_btn, LV_STATE_DEFAULT, COLOR_BG_TEXT); 134ea: 6823 ldr r3, [r4, #0] 134ec: f103 0878 add.w r8, r3, #120 ; 0x78 134f0: 6a23 ldr r3, [r4, #32] lv_style_set_image_recolor(&styles->list_btn, LV_STATE_CHECKED, COLOR_BG_TEXT_CHK); 134f2: 4ca7 ldr r4, [pc, #668] ; (13790 ) lv_style_set_image_recolor(&styles->list_btn, LV_STATE_DEFAULT, COLOR_BG_TEXT); 134f4: 0798 lsls r0, r3, #30 134f6: bf4c ite mi 134f8: 48a4 ldrmi r0, [pc, #656] ; (1378c ) 134fa: f06f 407f mvnpl.w r0, #4278190080 ; 0xff000000 134fe: 47b8 blx r7 _LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_RECOLOR, image_recolor, lv_color_t, _color, nonscalar) 13500: f248 01a9 movw r1, #32937 ; 0x80a9 13504: 4602 mov r2, r0 13506: 4640 mov r0, r8 13508: 47b0 blx r6 lv_style_set_image_recolor(&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 11a9 movw r1, #33193 ; 0x81a9 1351a: 4602 mov r2, r0 1351c: 4640 mov r0, r8 1351e: 47b0 blx r6 lv_style_set_image_recolor(&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: 0799 lsls r1, r3, #30 1352a: bf4c ite mi 1352c: f640 20aa movwmi r0, #2730 ; 0xaaa 13530: f640 1099 movwpl r0, #2457 ; 0x999 13534: 47d0 blx sl 13536: f24a 01a9 movw r1, #41129 ; 0xa0a9 1353a: 4602 mov r2, r0 1353c: 4640 mov r0, r8 1353e: 47b0 blx r6 lv_style_set_border_side(&styles->list_btn, LV_STATE_DEFAULT, LV_BORDER_SIDE_BOTTOM); 13540: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar) 13542: 4e94 ldr r6, [pc, #592] ; (13794 ) lv_style_set_pad_left(&styles->list_btn, LV_STATE_DEFAULT, PAD_DEF); 13544: f8df 8268 ldr.w r8, [pc, #616] ; 137b0 _LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_SIDE, border_side, lv_border_side_t, _int, scalar) 13548: 2201 movs r2, #1 1354a: 3078 adds r0, #120 ; 0x78 1354c: 2131 movs r1, #49 ; 0x31 1354e: 47a8 blx r5 lv_style_set_border_color(&styles->list_btn, LV_STATE_DEFAULT, COLOR_BG_BORDER); 13550: 6a23 ldr r3, [r4, #32] 13552: 6825 ldr r5, [r4, #0] 13554: 079a lsls r2, r3, #30 13556: bf4c ite mi 13558: 488f ldrmi r0, [pc, #572] ; (13798 ) 1355a: 4890 ldrpl r0, [pc, #576] ; (1379c ) 1355c: 47b8 blx r7 1355e: 3578 adds r5, #120 ; 0x78 _LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar) 13560: 4602 mov r2, r0 13562: 4f8f ldr r7, [pc, #572] ; (137a0 ) 13564: 4628 mov r0, r5 13566: 2139 movs r1, #57 ; 0x39 13568: 47b8 blx r7 lv_style_set_border_color(&styles->list_btn, LV_STATE_FOCUSED, theme.color_primary); 1356a: 6820 ldr r0, [r4, #0] 1356c: 89a2 ldrh r2, [r4, #12] 1356e: 4d8d ldr r5, [pc, #564] ; (137a4 ) 13570: f240 2139 movw r1, #569 ; 0x239 13574: 3078 adds r0, #120 ; 0x78 13576: 47b8 blx r7 lv_style_set_border_width(&styles->list_btn, LV_STATE_DEFAULT, 1); 13578: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar) 1357a: 2201 movs r2, #1 1357c: 2130 movs r1, #48 ; 0x30 1357e: 3078 adds r0, #120 ; 0x78 13580: 47b0 blx r6 lv_style_set_pad_left(&styles->list_btn, LV_STATE_DEFAULT, PAD_DEF); 13582: 6823 ldr r3, [r4, #0] 13584: 2000 movs r0, #0 13586: f103 0b78 add.w fp, r3, #120 ; 0x78 1358a: 47c0 blx r8 1358c: 2801 cmp r0, #1 1358e: f04f 0000 mov.w r0, #0 13592: f200 84f7 bhi.w 13f84 13596: 47a8 blx r5 13598: ebc0 1000 rsb r0, r0, r0, lsl #4 1359c: 28ef cmp r0, #239 ; 0xef 1359e: f300 84e5 bgt.w 13f6c 135a2: 2201 movs r2, #1 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar) 135a4: 4658 mov r0, fp 135a6: 2112 movs r1, #18 135a8: 47b0 blx r6 lv_style_set_pad_right(&styles->list_btn, LV_STATE_DEFAULT, PAD_DEF); 135aa: 6823 ldr r3, [r4, #0] 135ac: 2000 movs r0, #0 135ae: f103 0b78 add.w fp, r3, #120 ; 0x78 135b2: 47c0 blx r8 135b4: 2801 cmp r0, #1 135b6: f04f 0000 mov.w r0, #0 135ba: f200 84fa bhi.w 13fb2 135be: 47a8 blx r5 135c0: ebc0 1000 rsb r0, r0, r0, lsl #4 135c4: 28ef cmp r0, #239 ; 0xef 135c6: f300 84e8 bgt.w 13f9a 135ca: 2201 movs r2, #1 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar) 135cc: 4658 mov r0, fp 135ce: 2113 movs r1, #19 135d0: 47b0 blx r6 lv_style_set_pad_top(&styles->list_btn, LV_STATE_DEFAULT, PAD_DEF); 135d2: 6823 ldr r3, [r4, #0] 135d4: 2000 movs r0, #0 135d6: f103 0b78 add.w fp, r3, #120 ; 0x78 135da: 47c0 blx r8 135dc: 2801 cmp r0, #1 135de: f04f 0000 mov.w r0, #0 135e2: f200 84fd bhi.w 13fe0 135e6: 47a8 blx r5 135e8: ebc0 1000 rsb r0, r0, r0, lsl #4 135ec: 28ef cmp r0, #239 ; 0xef 135ee: f300 84eb bgt.w 13fc8 135f2: 2201 movs r2, #1 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar) 135f4: 4658 mov r0, fp 135f6: 2110 movs r1, #16 135f8: 47b0 blx r6 lv_style_set_pad_bottom(&styles->list_btn, LV_STATE_DEFAULT, PAD_DEF); 135fa: 6823 ldr r3, [r4, #0] 135fc: 2000 movs r0, #0 135fe: f103 0b78 add.w fp, r3, #120 ; 0x78 13602: 47c0 blx r8 13604: 2801 cmp r0, #1 13606: f04f 0000 mov.w r0, #0 1360a: f200 8500 bhi.w 1400e 1360e: 47a8 blx r5 13610: ebc0 1000 rsb r0, r0, r0, lsl #4 13614: 28ef cmp r0, #239 ; 0xef 13616: f300 84ee bgt.w 13ff6 1361a: 2201 movs r2, #1 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar) 1361c: 4658 mov r0, fp 1361e: 2111 movs r1, #17 13620: 47b0 blx r6 lv_style_set_pad_inner(&styles->list_btn, LV_STATE_DEFAULT, PAD_DEF); 13622: 6823 ldr r3, [r4, #0] 13624: 2000 movs r0, #0 13626: f103 0b78 add.w fp, r3, #120 ; 0x78 1362a: 47c0 blx r8 1362c: 2801 cmp r0, #1 1362e: f04f 0000 mov.w r0, #0 13632: f200 8503 bhi.w 1403c 13636: 47a8 blx r5 13638: ebc0 1000 rsb r0, r0, r0, lsl #4 1363c: 28ef cmp r0, #239 ; 0xef 1363e: f300 84f1 bgt.w 14024 13642: 2201 movs r2, #1 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar) 13644: 4658 mov r0, fp 13646: 2114 movs r1, #20 13648: 47b0 blx r6 lv_style_set_transform_width(&styles->list_btn, LV_STATE_DEFAULT, - PAD_DEF); 1364a: 6823 ldr r3, [r4, #0] 1364c: 2000 movs r0, #0 1364e: f103 0b78 add.w fp, r3, #120 ; 0x78 13652: 47c0 blx r8 13654: 2801 cmp r0, #1 13656: f04f 0000 mov.w r0, #0 1365a: f200 8507 bhi.w 1406c 1365e: 47a8 blx r5 13660: ebc0 1000 rsb r0, r0, r0, lsl #4 13664: 28ef cmp r0, #239 ; 0xef 13666: f300 84f4 bgt.w 14052 1366a: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff _LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_WIDTH, transform_width, lv_style_int_t, _int, scalar) 1366e: 4658 mov r0, fp 13670: 2104 movs r1, #4 13672: 47b0 blx r6 lv_style_set_transform_width(&styles->list_btn, LV_STATE_PRESSED, 0); 13674: 6820 ldr r0, [r4, #0] style_init_reset(&styles->ddlist_page); 13676: f8df b13c ldr.w fp, [pc, #316] ; 137b4 1367a: 2200 movs r2, #0 1367c: f241 0104 movw r1, #4100 ; 0x1004 13680: 3078 adds r0, #120 ; 0x78 13682: 47b0 blx r6 lv_style_set_transform_width(&styles->list_btn, LV_STATE_CHECKED, 0); 13684: 6820 ldr r0, [r4, #0] 13686: 2200 movs r2, #0 13688: f44f 7182 mov.w r1, #260 ; 0x104 1368c: 3078 adds r0, #120 ; 0x78 1368e: 47b0 blx r6 lv_style_set_transform_width(&styles->list_btn, LV_STATE_DISABLED, 0); 13690: 6820 ldr r0, [r4, #0] 13692: 2200 movs r2, #0 13694: f242 0104 movw r1, #8196 ; 0x2004 13698: 3078 adds r0, #120 ; 0x78 1369a: 47b0 blx r6 lv_style_set_transition_time(&styles->list_btn, LV_STATE_DEFAULT, TRANSITION_TIME); 1369c: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_TIME, transition_time, lv_style_int_t, _int, scalar) 1369e: 2296 movs r2, #150 ; 0x96 136a0: 21b0 movs r1, #176 ; 0xb0 136a2: 3078 adds r0, #120 ; 0x78 136a4: 47b0 blx r6 lv_style_set_transition_prop_6(&styles->list_btn, LV_STATE_DEFAULT, LV_STYLE_BG_COLOR); 136a6: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_6, transition_prop_6, lv_style_int_t, _int, scalar) 136a8: 2229 movs r2, #41 ; 0x29 136aa: 21b7 movs r1, #183 ; 0xb7 136ac: 3078 adds r0, #120 ; 0x78 136ae: 47b0 blx r6 lv_style_set_transition_prop_5(&styles->list_btn, LV_STATE_DEFAULT, LV_STYLE_TRANSFORM_WIDTH); 136b0: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(TRANSITION_PROP_5, transition_prop_5, lv_style_int_t, _int, scalar) 136b2: 2204 movs r2, #4 136b4: 21b6 movs r1, #182 ; 0xb6 136b6: 3078 adds r0, #120 ; 0x78 136b8: 47b0 blx r6 style_init_reset(&styles->ddlist_page); 136ba: 6820 ldr r0, [r4, #0] 136bc: 3054 adds r0, #84 ; 0x54 136be: 47d8 blx fp lv_style_set_text_line_space(&styles->ddlist_page, LV_STATE_DEFAULT, LV_DPX(20)); 136c0: 6823 ldr r3, [r4, #0] 136c2: 2000 movs r0, #0 136c4: f103 0854 add.w r8, r3, #84 ; 0x54 136c8: 47a8 blx r5 136ca: eb00 0080 add.w r0, r0, r0, lsl #2 136ce: 0080 lsls r0, r0, #2 136d0: 28ef cmp r0, #239 ; 0xef 136d2: f8cd b004 str.w fp, [sp, #4] 136d6: f340 84d4 ble.w 14082 136da: 2000 movs r0, #0 136dc: 47a8 blx r5 136de: 2314 movs r3, #20 136e0: 2250 movs r2, #80 ; 0x50 136e2: fb00 2203 mla r2, r0, r3, r2 136e6: 23a0 movs r3, #160 ; 0xa0 136e8: fb92 f2f3 sdiv r2, r2, r3 136ec: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LINE_SPACE, text_line_space, lv_style_int_t, _int, scalar) 136ee: 4640 mov r0, r8 136f0: f248 0181 movw r1, #32897 ; 0x8081 136f4: 47b0 blx r6 lv_style_set_clip_corner(&styles->ddlist_page, LV_STATE_DEFAULT, true); 136f6: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(CLIP_CORNER, clip_corner, bool, _int, scalar) 136f8: 2201 movs r2, #1 136fa: 2102 movs r1, #2 136fc: 3054 adds r0, #84 ; 0x54 136fe: 47b0 blx r6 style_init_reset(&styles->ddlist_sel); 13700: 6820 ldr r0, [r4, #0] 13702: 9b01 ldr r3, [sp, #4] 13704: 3058 adds r0, #88 ; 0x58 13706: 4798 blx r3 lv_style_set_bg_opa(&styles->ddlist_sel, LV_STATE_DEFAULT, LV_OPA_COVER); 13708: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar) 1370a: 22ff movs r2, #255 ; 0xff 1370c: 212c movs r1, #44 ; 0x2c 1370e: 3058 adds r0, #88 ; 0x58 13710: 47c8 blx r9 lv_style_set_bg_color(&styles->ddlist_sel, LV_STATE_DEFAULT, theme.color_primary); 13712: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar) 13714: 89a2 ldrh r2, [r4, #12] 13716: 2129 movs r1, #41 ; 0x29 13718: 3058 adds r0, #88 ; 0x58 1371a: 47b8 blx r7 lv_style_set_text_color(&styles->ddlist_sel, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex3(0xfff) : lv_color_hex3(0xfff)); 1371c: 6823 ldr r3, [r4, #0] 1371e: f640 70ff movw r0, #4095 ; 0xfff 13722: f103 0858 add.w r8, r3, #88 ; 0x58 13726: 47d0 blx sl _LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar) 13728: f248 0189 movw r1, #32905 ; 0x8089 1372c: 4602 mov r2, r0 1372e: 4640 mov r0, r8 13730: 47b8 blx r7 lv_style_set_bg_color(&styles->ddlist_sel, LV_STATE_PRESSED, COLOR_BG_PR); 13732: 6823 ldr r3, [r4, #0] 13734: f8df 8080 ldr.w r8, [pc, #128] ; 137b8 13738: f103 0b58 add.w fp, r3, #88 ; 0x58 1373c: 6a23 ldr r3, [r4, #32] 1373e: f013 0f02 tst.w r3, #2 13742: bf14 ite ne 13744: 4818 ldrne r0, [pc, #96] ; (137a8 ) 13746: 4819 ldreq r0, [pc, #100] ; (137ac ) 13748: 47c0 blx r8 _LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar) 1374a: f241 0129 movw r1, #4137 ; 0x1029 1374e: 4602 mov r2, r0 13750: 4658 mov r0, fp 13752: 47b8 blx r7 lv_style_set_text_color(&styles->ddlist_sel, LV_STATE_PRESSED, COLOR_BG_TEXT_PR); 13754: 6823 ldr r3, [r4, #0] 13756: f103 0b58 add.w fp, r3, #88 ; 0x58 1375a: 6a23 ldr r3, [r4, #32] 1375c: 079b lsls r3, r3, #30 1375e: bf4c ite mi 13760: 480a ldrmi r0, [pc, #40] ; (1378c ) 13762: f06f 407f mvnpl.w r0, #4278190080 ; 0xff000000 13766: 47c0 blx r8 _LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar) 13768: f249 0189 movw r1, #37001 ; 0x9089 1376c: 4602 mov r2, r0 1376e: 4658 mov r0, fp 13770: 47b8 blx r7 style_init_reset(&styles->roller_bg); 13772: 6820 ldr r0, [r4, #0] 13774: 9b01 ldr r3, [sp, #4] 13776: 3088 adds r0, #136 ; 0x88 13778: 4798 blx r3 lv_style_set_text_line_space(&styles->roller_bg, LV_STATE_DEFAULT, LV_DPX(25)); 1377a: 6823 ldr r3, [r4, #0] 1377c: 2000 movs r0, #0 1377e: f103 0888 add.w r8, r3, #136 ; 0x88 13782: 47a8 blx r5 13784: eb00 0080 add.w r0, r0, r0, lsl #2 13788: e018 b.n 137bc 1378a: bf00 nop 1378c: 003b3e42 .word 0x003b3e42 13790: 2000d170 .word 0x2000d170 13794: 00005aa5 .word 0x00005aa5 13798: 00d6dde3 .word 0x00d6dde3 1379c: 00808a97 .word 0x00808a97 137a0: 00005b75 .word 0x00005b75 137a4: 0000db7d .word 0x0000db7d 137a8: 00eeeeee .word 0x00eeeeee 137ac: 00494f57 .word 0x00494f57 137b0: 0000db95 .word 0x0000db95 137b4: 00010cf5 .word 0x00010cf5 137b8: 000110d5 .word 0x000110d5 137bc: eb00 0080 add.w r0, r0, r0, lsl #2 137c0: 28ef cmp r0, #239 ; 0xef 137c2: f340 8461 ble.w 14088 137c6: 2000 movs r0, #0 137c8: 47a8 blx r5 137ca: 2319 movs r3, #25 137cc: 2250 movs r2, #80 ; 0x50 137ce: fb00 2203 mla r2, r0, r3, r2 137d2: 23a0 movs r3, #160 ; 0xa0 137d4: fb92 f2f3 sdiv r2, r2, r3 137d8: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LINE_SPACE, text_line_space, lv_style_int_t, _int, scalar) 137da: f248 0181 movw r1, #32897 ; 0x8081 137de: 4640 mov r0, r8 137e0: 47b0 blx r6 style_init_reset(&styles->roller_sel); 137e2: 6820 ldr r0, [r4, #0] 137e4: f8df 8308 ldr.w r8, [pc, #776] ; 13af0 137e8: 308c adds r0, #140 ; 0x8c 137ea: 47c0 blx r8 lv_style_set_bg_opa(&styles->roller_sel, LV_STATE_DEFAULT, LV_OPA_COVER); 137ec: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar) 137ee: 22ff movs r2, #255 ; 0xff 137f0: 212c movs r1, #44 ; 0x2c 137f2: 308c adds r0, #140 ; 0x8c 137f4: 47c8 blx r9 lv_style_set_bg_color(&styles->roller_sel, LV_STATE_DEFAULT, theme.color_primary); 137f6: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar) 137f8: 89a2 ldrh r2, [r4, #12] 137fa: 2129 movs r1, #41 ; 0x29 137fc: 308c adds r0, #140 ; 0x8c 137fe: 47b8 blx r7 _LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar) 13800: 4bb4 ldr r3, [pc, #720] ; (13ad4 ) lv_style_set_text_color(&styles->roller_sel, LV_STATE_DEFAULT, LV_COLOR_WHITE); 13802: 6820 ldr r0, [r4, #0] 13804: 881a ldrh r2, [r3, #0] 13806: f248 0189 movw r1, #32905 ; 0x8089 1380a: 308c adds r0, #140 ; 0x8c 1380c: 47b8 blx r7 style_init_reset(&styles->tabview_btns_bg); 1380e: 6820 ldr r0, [r4, #0] 13810: 30a8 adds r0, #168 ; 0xa8 13812: 47c0 blx r8 lv_style_set_bg_opa(&styles->tabview_btns_bg, LV_STATE_DEFAULT, LV_OPA_COVER); 13814: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar) 13816: 22ff movs r2, #255 ; 0xff 13818: 30a8 adds r0, #168 ; 0xa8 1381a: 212c movs r1, #44 ; 0x2c 1381c: 47c8 blx r9 lv_style_set_bg_color(&styles->tabview_btns_bg, LV_STATE_DEFAULT, COLOR_BG); 1381e: 6823 ldr r3, [r4, #0] 13820: f8cd 8004 str.w r8, [sp, #4] 13824: f103 0ba8 add.w fp, r3, #168 ; 0xa8 13828: 6a23 ldr r3, [r4, #32] 1382a: f8df 82c8 ldr.w r8, [pc, #712] ; 13af4 1382e: f013 0f02 tst.w r3, #2 13832: bf0c ite eq 13834: 48a8 ldreq r0, [pc, #672] ; (13ad8 ) 13836: f06f 407f mvnne.w r0, #4278190080 ; 0xff000000 1383a: 47c0 blx r8 _LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar) 1383c: 2129 movs r1, #41 ; 0x29 1383e: 4602 mov r2, r0 13840: 4658 mov r0, fp 13842: 47b8 blx r7 lv_style_set_border_color(&styles->tabview_btns_bg, LV_STATE_DEFAULT, 13844: 6823 ldr r3, [r4, #0] 13846: f103 0ba8 add.w fp, r3, #168 ; 0xa8 IS_LIGHT ? lv_color_hex(0xe4eaf0) : lv_color_hex(0x3b3e42)); 1384a: 6a23 ldr r3, [r4, #32] lv_style_set_border_color(&styles->tabview_btns_bg, LV_STATE_DEFAULT, 1384c: 0798 lsls r0, r3, #30 IS_LIGHT ? lv_color_hex(0xe4eaf0) : lv_color_hex(0x3b3e42)); 1384e: bf4c ite mi 13850: 48a2 ldrmi r0, [pc, #648] ; (13adc ) 13852: 48a3 ldrpl r0, [pc, #652] ; (13ae0 ) 13854: 47c0 blx r8 _LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar) 13856: 2139 movs r1, #57 ; 0x39 13858: 4602 mov r2, r0 1385a: 4658 mov r0, fp 1385c: 47b8 blx r7 lv_style_set_border_width(&styles->tabview_btns_bg, LV_STATE_DEFAULT, LV_DPX(5)); 1385e: 6823 ldr r3, [r4, #0] 13860: 2000 movs r0, #0 13862: f103 0ba8 add.w fp, r3, #168 ; 0xa8 13866: 47a8 blx r5 13868: eb00 0080 add.w r0, r0, r0, lsl #2 1386c: 28ef cmp r0, #239 ; 0xef 1386e: f340 840e ble.w 1408e 13872: 2000 movs r0, #0 13874: 47a8 blx r5 13876: 2305 movs r3, #5 13878: 2250 movs r2, #80 ; 0x50 1387a: fb00 2203 mla r2, r0, r3, r2 1387e: 23a0 movs r3, #160 ; 0xa0 13880: fb92 f2f3 sdiv r2, r2, r3 13884: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar) 13886: 4658 mov r0, fp 13888: 2130 movs r1, #48 ; 0x30 1388a: 47b0 blx r6 lv_style_set_border_side(&styles->tabview_btns_bg, LV_STATE_DEFAULT, LV_BORDER_SIDE_BOTTOM); 1388c: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_SIDE, border_side, lv_border_side_t, _int, scalar) 1388e: 2201 movs r2, #1 13890: 30a8 adds r0, #168 ; 0xa8 13892: 2131 movs r1, #49 ; 0x31 13894: 47b0 blx r6 lv_style_set_text_color(&styles->tabview_btns_bg, LV_STATE_DEFAULT, COLOR_SCR_TEXT); 13896: 6823 ldr r3, [r4, #0] 13898: f103 0ba8 add.w fp, r3, #168 ; 0xa8 1389c: 6a23 ldr r3, [r4, #32] 1389e: 0799 lsls r1, r3, #30 138a0: bf4c ite mi 138a2: 488f ldrmi r0, [pc, #572] ; (13ae0 ) 138a4: 488f ldrpl r0, [pc, #572] ; (13ae4 ) 138a6: 47c0 blx r8 _LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar) 138a8: f248 0189 movw r1, #32905 ; 0x8089 138ac: 4602 mov r2, r0 138ae: 4658 mov r0, fp 138b0: 47b8 blx r7 lv_style_set_text_font(&styles->tabview_btns_bg, LV_STATE_DEFAULT, theme.font_normal); 138b2: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar) 138b4: 6962 ldr r2, [r4, #20] 138b6: 4b8c ldr r3, [pc, #560] ; (13ae8 ) 138b8: f248 018e movw r1, #32910 ; 0x808e 138bc: 30a8 adds r0, #168 ; 0xa8 138be: 4798 blx r3 lv_style_set_image_recolor(&styles->tabview_btns_bg, LV_STATE_DEFAULT, lv_color_hex(0x979a9f)); 138c0: 6823 ldr r3, [r4, #0] 138c2: 488a ldr r0, [pc, #552] ; (13aec ) 138c4: f103 0ba8 add.w fp, r3, #168 ; 0xa8 138c8: 47c0 blx r8 _LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_RECOLOR, image_recolor, lv_color_t, _color, nonscalar) 138ca: f248 01a9 movw r1, #32937 ; 0x80a9 138ce: 4602 mov r2, r0 138d0: 4658 mov r0, fp 138d2: 47b8 blx r7 lv_style_set_pad_top(&styles->tabview_btns_bg, LV_STATE_DEFAULT, LV_DPX(7)); 138d4: 6823 ldr r3, [r4, #0] 138d6: 2000 movs r0, #0 138d8: f103 0ba8 add.w fp, r3, #168 ; 0xa8 138dc: 47a8 blx r5 138de: ebc0 00c0 rsb r0, r0, r0, lsl #3 138e2: 28ef cmp r0, #239 ; 0xef 138e4: f340 83d6 ble.w 14094 138e8: 2000 movs r0, #0 138ea: 47a8 blx r5 138ec: 2307 movs r3, #7 138ee: 2250 movs r2, #80 ; 0x50 138f0: fb00 2203 mla r2, r0, r3, r2 138f4: 23a0 movs r3, #160 ; 0xa0 138f6: fb92 f2f3 sdiv r2, r2, r3 138fa: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar) 138fc: 4658 mov r0, fp 138fe: 2110 movs r1, #16 13900: 47b0 blx r6 lv_style_set_pad_left(&styles->tabview_btns_bg, LV_STATE_DEFAULT, LV_DPX(7)); 13902: 6823 ldr r3, [r4, #0] 13904: 2000 movs r0, #0 13906: f103 0ba8 add.w fp, r3, #168 ; 0xa8 1390a: 47a8 blx r5 1390c: ebc0 00c0 rsb r0, r0, r0, lsl #3 13910: 28ef cmp r0, #239 ; 0xef 13912: f340 83c1 ble.w 14098 13916: 2000 movs r0, #0 13918: 47a8 blx r5 1391a: 2307 movs r3, #7 1391c: 2250 movs r2, #80 ; 0x50 1391e: fb00 2203 mla r2, r0, r3, r2 13922: 23a0 movs r3, #160 ; 0xa0 13924: fb92 f2f3 sdiv r2, r2, r3 13928: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar) 1392a: 4658 mov r0, fp 1392c: 2112 movs r1, #18 1392e: 47b0 blx r6 lv_style_set_pad_right(&styles->tabview_btns_bg, LV_STATE_DEFAULT, LV_DPX(7)); 13930: 6823 ldr r3, [r4, #0] 13932: 2000 movs r0, #0 13934: f103 0ba8 add.w fp, r3, #168 ; 0xa8 13938: 47a8 blx r5 1393a: ebc0 00c0 rsb r0, r0, r0, lsl #3 1393e: 28ef cmp r0, #239 ; 0xef 13940: f340 83ac ble.w 1409c 13944: 2000 movs r0, #0 13946: 47a8 blx r5 13948: 2307 movs r3, #7 1394a: 2250 movs r2, #80 ; 0x50 1394c: fb00 2203 mla r2, r0, r3, r2 13950: 23a0 movs r3, #160 ; 0xa0 13952: fb92 f2f3 sdiv r2, r2, r3 13956: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar) 13958: 2113 movs r1, #19 1395a: 4658 mov r0, fp 1395c: 47b0 blx r6 style_init_reset(&styles->tabview_btns); 1395e: 6820 ldr r0, [r4, #0] 13960: 9b01 ldr r3, [sp, #4] 13962: 30a4 adds r0, #164 ; 0xa4 13964: 4798 blx r3 lv_style_set_bg_opa(&styles->tabview_btns, LV_STATE_PRESSED, LV_OPA_50); 13966: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar) 13968: 227f movs r2, #127 ; 0x7f 1396a: f241 012c movw r1, #4140 ; 0x102c 1396e: 30a4 adds r0, #164 ; 0xa4 13970: 47c8 blx r9 lv_style_set_bg_color(&styles->tabview_btns, LV_STATE_PRESSED, lv_color_hex3(0x888)); 13972: 6823 ldr r3, [r4, #0] 13974: f640 0088 movw r0, #2184 ; 0x888 13978: f103 0ba4 add.w fp, r3, #164 ; 0xa4 1397c: 47d0 blx sl _LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar) 1397e: f241 0129 movw r1, #4137 ; 0x1029 13982: 4602 mov r2, r0 13984: 4658 mov r0, fp 13986: 47b8 blx r7 lv_style_set_text_color(&styles->tabview_btns, LV_STATE_CHECKED, COLOR_SCR_TEXT); 13988: 6823 ldr r3, [r4, #0] 1398a: f103 0aa4 add.w sl, r3, #164 ; 0xa4 1398e: 6a23 ldr r3, [r4, #32] 13990: 079a lsls r2, r3, #30 13992: bf4c ite mi 13994: 4852 ldrmi r0, [pc, #328] ; (13ae0 ) 13996: 4853 ldrpl r0, [pc, #332] ; (13ae4 ) 13998: 47c0 blx r8 _LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar) 1399a: f248 1189 movw r1, #33161 ; 0x8189 1399e: 4602 mov r2, r0 139a0: 4650 mov r0, sl 139a2: 47b8 blx r7 lv_style_set_pad_top(&styles->tabview_btns, LV_STATE_DEFAULT, LV_DPX(20)); 139a4: 6823 ldr r3, [r4, #0] 139a6: 2000 movs r0, #0 139a8: f103 0aa4 add.w sl, r3, #164 ; 0xa4 139ac: 47a8 blx r5 139ae: eb00 0080 add.w r0, r0, r0, lsl #2 139b2: 0080 lsls r0, r0, #2 139b4: 28ef cmp r0, #239 ; 0xef 139b6: f340 8373 ble.w 140a0 139ba: 2000 movs r0, #0 139bc: 47a8 blx r5 139be: 2314 movs r3, #20 139c0: 2250 movs r2, #80 ; 0x50 139c2: fb00 2203 mla r2, r0, r3, r2 139c6: 23a0 movs r3, #160 ; 0xa0 139c8: fb92 f2f3 sdiv r2, r2, r3 139cc: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar) 139ce: 4650 mov r0, sl 139d0: 2110 movs r1, #16 139d2: 47b0 blx r6 lv_style_set_pad_bottom(&styles->tabview_btns, LV_STATE_DEFAULT, LV_DPX(20)); 139d4: 6823 ldr r3, [r4, #0] 139d6: 2000 movs r0, #0 139d8: f103 0aa4 add.w sl, r3, #164 ; 0xa4 139dc: 47a8 blx r5 139de: eb00 0080 add.w r0, r0, r0, lsl #2 139e2: 0080 lsls r0, r0, #2 139e4: 28ef cmp r0, #239 ; 0xef 139e6: f340 835d ble.w 140a4 139ea: 2000 movs r0, #0 139ec: 47a8 blx r5 139ee: 2314 movs r3, #20 139f0: 2250 movs r2, #80 ; 0x50 139f2: fb00 2203 mla r2, r0, r3, r2 139f6: 23a0 movs r3, #160 ; 0xa0 139f8: fb92 f2f3 sdiv r2, r2, r3 139fc: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar) 139fe: 2111 movs r1, #17 13a00: 4650 mov r0, sl 13a02: 47b0 blx r6 lv_style_set_text_color(&styles->tabview_btns, LV_STATE_FOCUSED, theme.color_primary); 13a04: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_COLOR, text_color, lv_color_t, _color, nonscalar) 13a06: 89a2 ldrh r2, [r4, #12] 13a08: f248 2189 movw r1, #33417 ; 0x8289 13a0c: 30a4 adds r0, #164 ; 0xa4 13a0e: 47b8 blx r7 lv_style_set_text_color(&styles->tabview_btns, LV_STATE_EDITED, theme.color_secondary); 13a10: 6820 ldr r0, [r4, #0] 13a12: 89e2 ldrh r2, [r4, #14] 13a14: f248 4189 movw r1, #33929 ; 0x8489 13a18: 30a4 adds r0, #164 ; 0xa4 13a1a: 47b8 blx r7 style_init_reset(&styles->tabview_indic); 13a1c: 6820 ldr r0, [r4, #0] 13a1e: 9b01 ldr r3, [sp, #4] 13a20: 30ac adds r0, #172 ; 0xac 13a22: 4798 blx r3 lv_style_set_bg_opa(&styles->tabview_indic, LV_STATE_DEFAULT, LV_OPA_COVER); 13a24: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(BG_OPA, bg_opa, lv_opa_t, _opa, scalar) 13a26: 22ff movs r2, #255 ; 0xff 13a28: 212c movs r1, #44 ; 0x2c 13a2a: 30ac adds r0, #172 ; 0xac 13a2c: 47c8 blx r9 lv_style_set_bg_color(&styles->tabview_indic, LV_STATE_DEFAULT, theme.color_primary); 13a2e: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(BG_COLOR, bg_color, lv_color_t, _color, nonscalar) 13a30: 89a2 ldrh r2, [r4, #12] 13a32: 2129 movs r1, #41 ; 0x29 13a34: 30ac adds r0, #172 ; 0xac 13a36: 47b8 blx r7 lv_style_set_bg_color(&styles->tabview_indic, LV_STATE_EDITED, theme.color_secondary); 13a38: 6820 ldr r0, [r4, #0] 13a3a: 89e2 ldrh r2, [r4, #14] 13a3c: f240 4129 movw r1, #1065 ; 0x429 13a40: 30ac adds r0, #172 ; 0xac 13a42: 47b8 blx r7 lv_style_set_size(&styles->tabview_indic, LV_STATE_DEFAULT, LV_DPX(5)); 13a44: 6823 ldr r3, [r4, #0] 13a46: 2000 movs r0, #0 13a48: f103 09ac add.w r9, r3, #172 ; 0xac 13a4c: 47a8 blx r5 13a4e: eb00 0080 add.w r0, r0, r0, lsl #2 13a52: 28ef cmp r0, #239 ; 0xef 13a54: f340 8328 ble.w 140a8 13a58: 2000 movs r0, #0 13a5a: 47a8 blx r5 13a5c: 2305 movs r3, #5 13a5e: 2250 movs r2, #80 ; 0x50 13a60: fb00 2203 mla r2, r0, r3, r2 13a64: 23a0 movs r3, #160 ; 0xa0 13a66: fb92 f2f3 sdiv r2, r2, r3 13a6a: b212 sxth r2, r2 _LV_OBJ_STYLE_SET_GET_DECLARE(SIZE, size, lv_style_int_t, _int, scalar) 13a6c: 4648 mov r0, r9 13a6e: 2103 movs r1, #3 13a70: 47b0 blx r6 lv_style_set_radius(&styles->tabview_indic, LV_STATE_DEFAULT, LV_RADIUS_CIRCLE); 13a72: 6820 ldr r0, [r4, #0] lv_style_set_pad_top(&styles->tabview_page_scrl, LV_STATE_DEFAULT, PAD_DEF); 13a74: f8df 9080 ldr.w r9, [pc, #128] ; 13af8 _LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar) 13a78: f647 72ff movw r2, #32767 ; 0x7fff 13a7c: 2101 movs r1, #1 13a7e: 30ac adds r0, #172 ; 0xac 13a80: 47b0 blx r6 style_init_reset(&styles->tabview_page_scrl); 13a82: 6820 ldr r0, [r4, #0] 13a84: 9b01 ldr r3, [sp, #4] 13a86: 30b0 adds r0, #176 ; 0xb0 13a88: 4798 blx r3 lv_style_set_pad_top(&styles->tabview_page_scrl, LV_STATE_DEFAULT, PAD_DEF); 13a8a: 6823 ldr r3, [r4, #0] 13a8c: 2000 movs r0, #0 13a8e: f103 0ab0 add.w sl, r3, #176 ; 0xb0 13a92: 47c8 blx r9 13a94: 2801 cmp r0, #1 13a96: f04f 0000 mov.w r0, #0 13a9a: f200 8312 bhi.w 140c2 13a9e: 47a8 blx r5 13aa0: ebc0 1000 rsb r0, r0, r0, lsl #4 13aa4: 28ef cmp r0, #239 ; 0xef 13aa6: f300 8301 bgt.w 140ac 13aaa: 2201 movs r2, #1 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar) 13aac: 4650 mov r0, sl 13aae: 2110 movs r1, #16 13ab0: 47b0 blx r6 lv_style_set_pad_bottom(&styles->tabview_page_scrl, LV_STATE_DEFAULT, PAD_DEF); 13ab2: 6823 ldr r3, [r4, #0] 13ab4: 2000 movs r0, #0 13ab6: f103 0ab0 add.w sl, r3, #176 ; 0xb0 13aba: 47c8 blx r9 13abc: 2801 cmp r0, #1 13abe: f04f 0000 mov.w r0, #0 13ac2: f200 8314 bhi.w 140ee 13ac6: 47a8 blx r5 13ac8: ebc0 1000 rsb r0, r0, r0, lsl #4 13acc: 28ef cmp r0, #239 ; 0xef 13ace: f300 8303 bgt.w 140d8 13ad2: e013 b.n 13afc 13ad4: 0002bbf2 .word 0x0002bbf2 13ad8: 00586273 .word 0x00586273 13adc: 00e4eaf0 .word 0x00e4eaf0 13ae0: 003b3e42 .word 0x003b3e42 13ae4: 00e7e9ec .word 0x00e7e9ec 13ae8: 00005d19 .word 0x00005d19 13aec: 00979a9f .word 0x00979a9f 13af0: 00010cf5 .word 0x00010cf5 13af4: 000110d5 .word 0x000110d5 13af8: 0000db95 .word 0x0000db95 13afc: 2201 movs r2, #1 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar) 13afe: 4650 mov r0, sl 13b00: 2111 movs r1, #17 13b02: 47b0 blx r6 lv_style_set_pad_left(&styles->tabview_page_scrl, LV_STATE_DEFAULT, PAD_DEF); 13b04: 6823 ldr r3, [r4, #0] 13b06: 2000 movs r0, #0 13b08: f103 0ab0 add.w sl, r3, #176 ; 0xb0 13b0c: 47c8 blx r9 13b0e: 2801 cmp r0, #1 13b10: f04f 0000 mov.w r0, #0 13b14: f200 8301 bhi.w 1411a 13b18: 47a8 blx r5 13b1a: ebc0 1000 rsb r0, r0, r0, lsl #4 13b1e: 28ef cmp r0, #239 ; 0xef 13b20: f300 82f0 bgt.w 14104 13b24: 2201 movs r2, #1 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar) 13b26: 4650 mov r0, sl 13b28: 2112 movs r1, #18 13b2a: 47b0 blx r6 lv_style_set_pad_right(&styles->tabview_page_scrl, LV_STATE_DEFAULT, PAD_DEF); 13b2c: 6823 ldr r3, [r4, #0] 13b2e: 2000 movs r0, #0 13b30: f103 0ab0 add.w sl, r3, #176 ; 0xb0 13b34: 47c8 blx r9 13b36: 2801 cmp r0, #1 13b38: f04f 0000 mov.w r0, #0 13b3c: f200 8303 bhi.w 14146 13b40: 47a8 blx r5 13b42: ebc0 1000 rsb r0, r0, r0, lsl #4 13b46: 28ef cmp r0, #239 ; 0xef 13b48: f300 82f2 bgt.w 14130 13b4c: 2201 movs r2, #1 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar) 13b4e: 4650 mov r0, sl 13b50: 2113 movs r1, #19 13b52: 47b0 blx r6 lv_style_set_pad_inner(&styles->tabview_page_scrl, LV_STATE_DEFAULT, PAD_DEF); 13b54: 6823 ldr r3, [r4, #0] 13b56: 2000 movs r0, #0 13b58: f103 0ab0 add.w sl, r3, #176 ; 0xb0 13b5c: 47c8 blx r9 13b5e: 2801 cmp r0, #1 13b60: f04f 0000 mov.w r0, #0 13b64: f200 8305 bhi.w 14172 13b68: 47a8 blx r5 13b6a: ebc0 1000 rsb r0, r0, r0, lsl #4 13b6e: 28ef cmp r0, #239 ; 0xef 13b70: f300 82f4 bgt.w 1415c 13b74: 2201 movs r2, #1 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_INNER, pad_inner, lv_style_int_t, _int, scalar) 13b76: 2114 movs r1, #20 13b78: 4650 mov r0, sl 13b7a: 47b0 blx r6 style_init_reset(&styles->table_cell); 13b7c: 6820 ldr r0, [r4, #0] 13b7e: 9b01 ldr r3, [sp, #4] 13b80: 30a0 adds r0, #160 ; 0xa0 13b82: 4798 blx r3 lv_style_set_border_color(&styles->table_cell, LV_STATE_DEFAULT, COLOR_BG_BORDER); 13b84: 6823 ldr r3, [r4, #0] 13b86: f103 0aa0 add.w sl, r3, #160 ; 0xa0 13b8a: 6a23 ldr r3, [r4, #32] 13b8c: 079b lsls r3, r3, #30 13b8e: bf4c ite mi 13b90: 48c9 ldrmi r0, [pc, #804] ; (13eb8 ) 13b92: 48ca ldrpl r0, [pc, #808] ; (13ebc ) 13b94: 47c0 blx r8 _LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_COLOR, border_color, lv_color_t, _color, nonscalar) 13b96: 2139 movs r1, #57 ; 0x39 13b98: 4602 mov r2, r0 13b9a: 4650 mov r0, sl 13b9c: 47b8 blx r7 lv_style_set_border_width(&styles->table_cell, LV_STATE_DEFAULT, 1); 13b9e: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_WIDTH, border_width, lv_style_int_t, _int, scalar) 13ba0: 2201 movs r2, #1 13ba2: 2130 movs r1, #48 ; 0x30 13ba4: 30a0 adds r0, #160 ; 0xa0 13ba6: 47b0 blx r6 lv_style_set_border_side(&styles->table_cell, LV_STATE_DEFAULT, LV_BORDER_SIDE_TOP | LV_BORDER_SIDE_BOTTOM); 13ba8: 6820 ldr r0, [r4, #0] _LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_SIDE, border_side, lv_border_side_t, _int, scalar) 13baa: 2203 movs r2, #3 13bac: 2131 movs r1, #49 ; 0x31 13bae: 30a0 adds r0, #160 ; 0xa0 13bb0: 47b0 blx r6 lv_style_set_pad_left(&styles->table_cell, LV_STATE_DEFAULT, PAD_DEF); 13bb2: 2000 movs r0, #0 13bb4: 6827 ldr r7, [r4, #0] 13bb6: 47c8 blx r9 13bb8: 2801 cmp r0, #1 13bba: f107 07a0 add.w r7, r7, #160 ; 0xa0 13bbe: f04f 0000 mov.w r0, #0 13bc2: f200 82ec bhi.w 1419e 13bc6: 47a8 blx r5 13bc8: ebc0 1000 rsb r0, r0, r0, lsl #4 13bcc: 28ef cmp r0, #239 ; 0xef 13bce: f300 82db bgt.w 14188 13bd2: 2201 movs r2, #1 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar) 13bd4: 2112 movs r1, #18 13bd6: 4638 mov r0, r7 13bd8: 47b0 blx r6 lv_style_set_pad_right(&styles->table_cell, LV_STATE_DEFAULT, PAD_DEF); 13bda: 2000 movs r0, #0 13bdc: 6824 ldr r4, [r4, #0] 13bde: 47c8 blx r9 13be0: 2801 cmp r0, #1 13be2: f104 04a0 add.w r4, r4, #160 ; 0xa0 13be6: f04f 0000 mov.w r0, #0 13bea: f200 82ee bhi.w 141ca 13bee: 47a8 blx r5 13bf0: ebc0 1000 rsb r0, r0, r0, lsl #4 13bf4: 28ef cmp r0, #239 ; 0xef 13bf6: f300 82dd bgt.w 141b4 13bfa: 2201 movs r2, #1 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar) 13bfc: 4620 mov r0, r4 13bfe: 2113 movs r1, #19 lv_style_set_pad_top(&styles->table_cell, LV_STATE_DEFAULT, PAD_DEF); 13c00: 4caf ldr r4, [pc, #700] ; (13ec0 ) 13c02: 47b0 blx r6 13c04: 2000 movs r0, #0 13c06: 6827 ldr r7, [r4, #0] 13c08: 47c8 blx r9 13c0a: 2801 cmp r0, #1 13c0c: f107 07a0 add.w r7, r7, #160 ; 0xa0 13c10: f04f 0000 mov.w r0, #0 13c14: f200 82ef bhi.w 141f6 13c18: 47a8 blx r5 13c1a: ebc0 1000 rsb r0, r0, r0, lsl #4 13c1e: 28ef cmp r0, #239 ; 0xef 13c20: f300 82de bgt.w 141e0 13c24: 2201 movs r2, #1 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar) 13c26: 2110 movs r1, #16 13c28: 4638 mov r0, r7 13c2a: 47b0 blx r6 lv_style_set_pad_bottom(&styles->table_cell, LV_STATE_DEFAULT, PAD_DEF); 13c2c: 2000 movs r0, #0 13c2e: 6825 ldr r5, [r4, #0] 13c30: 4ea4 ldr r6, [pc, #656] ; (13ec4 ) 13c32: 47c8 blx r9 13c34: 2801 cmp r0, #1 13c36: f105 05a0 add.w r5, r5, #160 ; 0xa0 13c3a: f04f 0000 mov.w r0, #0 13c3e: f200 82f0 bhi.w 14222 13c42: 47b0 blx r6 13c44: ebc0 1000 rsb r0, r0, r0, lsl #4 13c48: 28ef cmp r0, #239 ; 0xef 13c4a: f300 82df bgt.w 1420c 13c4e: 2201 movs r2, #1 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar) 13c50: 2111 movs r1, #17 13c52: 4628 mov r0, r5 13c54: 4b9c ldr r3, [pc, #624] ; (13ec8 ) 13c56: 4798 blx r3 theme.apply_xcb = theme_apply; 13c58: 4b9c ldr r3, [pc, #624] ; (13ecc ) 13c5a: 60a3 str r3, [r4, #8] inited = true; 13c5c: 2301 movs r3, #1 13c5e: 7123 strb r3, [r4, #4] lv_obj_report_style_mod(NULL); 13c60: 2000 movs r0, #0 13c62: 4b9b ldr r3, [pc, #620] ; (13ed0 ) 13c64: 4798 blx r3 } 13c66: 489b ldr r0, [pc, #620] ; (13ed4 ) 13c68: b003 add sp, #12 13c6a: ecbd 8b02 vpop {d8} 13c6e: 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)); 13c72: 2201 movs r2, #1 13c74: f7fe bdb1 b.w 127da lv_style_set_line_width(&styles->arc_bg, LV_STATE_DEFAULT, LV_DPX(25)); 13c78: 2201 movs r2, #1 13c7a: f7fe bde0 b.w 1283e lv_style_set_pad_top(&styles->calendar_header, LV_STATE_DEFAULT, PAD_DEF); 13c7e: 2000 movs r0, #0 13c80: 47a8 blx r5 13c82: 230f movs r3, #15 13c84: 2250 movs r2, #80 ; 0x50 13c86: fb00 2203 mla r2, r0, r3, r2 13c8a: 23a0 movs r3, #160 ; 0xa0 13c8c: fb92 f2f3 sdiv r2, r2, r3 13c90: b212 sxth r2, r2 13c92: f7fe bdf4 b.w 1287e 13c96: 47a8 blx r5 13c98: ebc0 1000 rsb r0, r0, r0, lsl #4 13c9c: 0040 lsls r0, r0, #1 13c9e: 28ef cmp r0, #239 ; 0xef 13ca0: f77e adec ble.w 1287c 13ca4: 2000 movs r0, #0 13ca6: 47a8 blx r5 13ca8: 231e movs r3, #30 13caa: e7eb b.n 13c84 lv_style_set_pad_left(&styles->calendar_header, LV_STATE_DEFAULT, PAD_DEF); 13cac: 2000 movs r0, #0 13cae: 47a8 blx r5 13cb0: 230f movs r3, #15 13cb2: 2250 movs r2, #80 ; 0x50 13cb4: fb00 2203 mla r2, r0, r3, r2 13cb8: 23a0 movs r3, #160 ; 0xa0 13cba: fb92 f2f3 sdiv r2, r2, r3 13cbe: b212 sxth r2, r2 13cc0: f7fe bdf1 b.w 128a6 13cc4: 47a8 blx r5 13cc6: ebc0 1000 rsb r0, r0, r0, lsl #4 13cca: 0040 lsls r0, r0, #1 13ccc: 28ef cmp r0, #239 ; 0xef 13cce: f77e ade9 ble.w 128a4 13cd2: 2000 movs r0, #0 13cd4: 47a8 blx r5 13cd6: 231e movs r3, #30 13cd8: e7eb b.n 13cb2 lv_style_set_pad_right(&styles->calendar_header, LV_STATE_DEFAULT, PAD_DEF); 13cda: 2000 movs r0, #0 13cdc: 47a8 blx r5 13cde: 230f movs r3, #15 13ce0: 2250 movs r2, #80 ; 0x50 13ce2: fb00 2203 mla r2, r0, r3, r2 13ce6: 23a0 movs r3, #160 ; 0xa0 13ce8: fb92 f2f3 sdiv r2, r2, r3 13cec: b212 sxth r2, r2 13cee: f7fe bdee b.w 128ce 13cf2: 47a8 blx r5 13cf4: ebc0 1000 rsb r0, r0, r0, lsl #4 13cf8: 0040 lsls r0, r0, #1 13cfa: 28ef cmp r0, #239 ; 0xef 13cfc: f77e ade6 ble.w 128cc 13d00: 2000 movs r0, #0 13d02: 47a8 blx r5 13d04: 231e movs r3, #30 13d06: e7eb b.n 13ce0 lv_style_set_pad_bottom(&styles->calendar_header, LV_STATE_DEFAULT, PAD_DEF); 13d08: 2000 movs r0, #0 13d0a: 47a8 blx r5 13d0c: 230f movs r3, #15 13d0e: 2250 movs r2, #80 ; 0x50 13d10: fb00 2203 mla r2, r0, r3, r2 13d14: 23a0 movs r3, #160 ; 0xa0 13d16: fb92 f2f3 sdiv r2, r2, r3 13d1a: b212 sxth r2, r2 13d1c: f7fe bdeb b.w 128f6 13d20: 47a8 blx r5 13d22: ebc0 1000 rsb r0, r0, r0, lsl #4 13d26: 0040 lsls r0, r0, #1 13d28: 28ef cmp r0, #239 ; 0xef 13d2a: f77e ade3 ble.w 128f4 13d2e: 2000 movs r0, #0 13d30: 47a8 blx r5 13d32: 231e movs r3, #30 13d34: e7eb b.n 13d0e lv_style_set_text_color(&styles->calendar_header, LV_STATE_PRESSED, IS_LIGHT ? lv_color_hex(0x888888) : LV_COLOR_WHITE); 13d36: f8bb 2000 ldrh.w r2, [fp] 13d3a: f7fe bdee b.w 1291a lv_style_set_text_color(&styles->calendar_daynames, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x31404f) : lv_color_hex3(0xeee)); 13d3e: 4b66 ldr r3, [pc, #408] ; (13ed8 ) 13d40: f640 60ee movw r0, #3822 ; 0xeee 13d44: 4798 blx r3 13d46: f7fe bdf9 b.w 1293c lv_style_set_pad_left(&styles->calendar_daynames, LV_STATE_DEFAULT, PAD_DEF); 13d4a: 2000 movs r0, #0 13d4c: 47a8 blx r5 13d4e: 230f movs r3, #15 13d50: 2250 movs r2, #80 ; 0x50 13d52: fb00 2203 mla r2, r0, r3, r2 13d56: 23a0 movs r3, #160 ; 0xa0 13d58: fb92 f2f3 sdiv r2, r2, r3 13d5c: b212 sxth r2, r2 13d5e: f7fe be05 b.w 1296c 13d62: 47a8 blx r5 13d64: ebc0 1000 rsb r0, r0, r0, lsl #4 13d68: 0040 lsls r0, r0, #1 13d6a: 28ef cmp r0, #239 ; 0xef 13d6c: f77e adfd ble.w 1296a 13d70: 2000 movs r0, #0 13d72: 47a8 blx r5 13d74: 231e movs r3, #30 13d76: e7eb b.n 13d50 lv_style_set_pad_right(&styles->calendar_daynames, LV_STATE_DEFAULT, PAD_DEF); 13d78: 2000 movs r0, #0 13d7a: 47a8 blx r5 13d7c: 230f movs r3, #15 13d7e: 2250 movs r2, #80 ; 0x50 13d80: fb00 2203 mla r2, r0, r3, r2 13d84: 23a0 movs r3, #160 ; 0xa0 13d86: fb92 f2f3 sdiv r2, r2, r3 13d8a: b212 sxth r2, r2 13d8c: f7fe be04 b.w 12998 13d90: 47a8 blx r5 13d92: ebc0 1000 rsb r0, r0, r0, lsl #4 13d96: 0040 lsls r0, r0, #1 13d98: 28ef cmp r0, #239 ; 0xef 13d9a: f77e adfc ble.w 12996 13d9e: 2000 movs r0, #0 13da0: 47a8 blx r5 13da2: 231e movs r3, #30 13da4: e7eb b.n 13d7e lv_style_set_pad_bottom(&styles->calendar_daynames, LV_STATE_DEFAULT, PAD_DEF); 13da6: 2000 movs r0, #0 13da8: 47a8 blx r5 13daa: 230f movs r3, #15 13dac: 2250 movs r2, #80 ; 0x50 13dae: fb00 2203 mla r2, r0, r3, r2 13db2: 23a0 movs r3, #160 ; 0xa0 13db4: fb92 f2f3 sdiv r2, r2, r3 13db8: b212 sxth r2, r2 13dba: f7fe be03 b.w 129c4 13dbe: 47a8 blx r5 13dc0: ebc0 1000 rsb r0, r0, r0, lsl #4 13dc4: 0040 lsls r0, r0, #1 13dc6: 28ef cmp r0, #239 ; 0xef 13dc8: f77e adfb ble.w 129c2 13dcc: 2000 movs r0, #0 13dce: 47a8 blx r5 13dd0: 231e movs r3, #30 13dd2: e7eb b.n 13dac lv_style_set_radius(&styles->calendar_date_nums, LV_STATE_DEFAULT, LV_DPX(4)); 13dd4: 2201 movs r2, #1 13dd6: f7fe be0d b.w 129f4 lv_style_set_text_color(&styles->calendar_date_nums, LV_STATE_CHECKED, IS_LIGHT ? lv_color_hex(0x31404f) : LV_COLOR_WHITE); 13dda: f8bb 2000 ldrh.w r2, [fp] 13dde: f7fe be47 b.w 12a70 lv_style_set_bg_color(&styles->calendar_date_nums, LV_STATE_DEFAULT, IS_LIGHT ? lv_color_hex(0x666666) : LV_COLOR_WHITE); 13de2: f8bd 2004 ldrh.w r2, [sp, #4] 13de6: f7fe be7d b.w 12ae4 lv_style_set_pad_inner(&styles->calendar_date_nums, LV_STATE_DEFAULT, LV_DPX(3)); 13dea: 2201 movs r2, #1 13dec: f7fe beaa b.w 12b44 lv_style_set_pad_left(&styles->calendar_date_nums, LV_STATE_DEFAULT, PAD_DEF); 13df0: 2000 movs r0, #0 13df2: 47a8 blx r5 13df4: 230f movs r3, #15 13df6: 2250 movs r2, #80 ; 0x50 13df8: fb00 2203 mla r2, r0, r3, r2 13dfc: 23a0 movs r3, #160 ; 0xa0 13dfe: fb92 f2f3 sdiv r2, r2, r3 13e02: b212 sxth r2, r2 13e04: f7fe beb4 b.w 12b70 13e08: 47a8 blx r5 13e0a: ebc0 1000 rsb r0, r0, r0, lsl #4 13e0e: 0040 lsls r0, r0, #1 13e10: 28ef cmp r0, #239 ; 0xef 13e12: f77e aeac ble.w 12b6e 13e16: 2000 movs r0, #0 13e18: 47a8 blx r5 13e1a: 231e movs r3, #30 13e1c: e7eb b.n 13df6 lv_style_set_pad_right(&styles->calendar_date_nums, LV_STATE_DEFAULT, PAD_DEF); 13e1e: 2000 movs r0, #0 13e20: 47a8 blx r5 13e22: 230f movs r3, #15 13e24: 2250 movs r2, #80 ; 0x50 13e26: fb00 2203 mla r2, r0, r3, r2 13e2a: 23a0 movs r3, #160 ; 0xa0 13e2c: fb92 f2f3 sdiv r2, r2, r3 13e30: b212 sxth r2, r2 13e32: f7fe beb3 b.w 12b9c 13e36: 47a8 blx r5 13e38: ebc0 1000 rsb r0, r0, r0, lsl #4 13e3c: 0040 lsls r0, r0, #1 13e3e: 28ef cmp r0, #239 ; 0xef 13e40: f77e aeab ble.w 12b9a 13e44: 2000 movs r0, #0 13e46: 47a8 blx r5 13e48: 231e movs r3, #30 13e4a: e7eb b.n 13e24 lv_style_set_pad_bottom(&styles->calendar_date_nums, LV_STATE_DEFAULT, PAD_DEF); 13e4c: 2000 movs r0, #0 13e4e: 47a8 blx r5 13e50: 230f movs r3, #15 13e52: 2250 movs r2, #80 ; 0x50 13e54: fb00 2203 mla r2, r0, r3, r2 13e58: 23a0 movs r3, #160 ; 0xa0 13e5a: fb92 f2f3 sdiv r2, r2, r3 13e5e: b212 sxth r2, r2 13e60: f7fe beb2 b.w 12bc8 13e64: 47a8 blx r5 13e66: ebc0 1000 rsb r0, r0, r0, lsl #4 13e6a: 0040 lsls r0, r0, #1 13e6c: 28ef cmp r0, #239 ; 0xef 13e6e: f77e aeaa ble.w 12bc6 13e72: 2000 movs r0, #0 13e74: 47a8 blx r5 13e76: 231e movs r3, #30 13e78: e7eb b.n 13e52 lv_style_set_scale_width(&styles->cpicker_bg, LV_STATE_DEFAULT, LV_DPX(30)); 13e7a: 2201 movs r2, #1 13e7c: f7fe bec0 b.w 12c00 lv_style_set_pad_inner(&styles->cpicker_bg, LV_STATE_DEFAULT, LV_DPX(20)); 13e80: 2201 movs r2, #1 13e82: f7fe bee8 b.w 12c56 lv_style_set_pad_left(&styles->cpicker_indic, LV_STATE_DEFAULT, LV_DPX(13)); 13e86: 2201 movs r2, #1 13e88: f7fe bf31 b.w 12cee lv_style_set_pad_right(&styles->cpicker_indic, LV_STATE_DEFAULT, LV_DPX(13)); 13e8c: 2201 movs r2, #1 13e8e: f7fe bf47 b.w 12d20 lv_style_set_pad_top(&styles->cpicker_indic, LV_STATE_DEFAULT, LV_DPX(13)); 13e92: 2201 movs r2, #1 13e94: f7fe bf5d b.w 12d52 lv_style_set_pad_bottom(&styles->cpicker_indic, LV_STATE_DEFAULT, LV_DPX(13)); 13e98: 2201 movs r2, #1 13e9a: f7fe bf7d b.w 12d98 lv_style_set_radius(&styles->cb_bg, LV_STATE_DEFAULT, LV_DPX(4)); 13e9e: 2201 movs r2, #1 13ea0: f7fe bf90 b.w 12dc4 lv_style_set_pad_inner(&styles->cb_bg, LV_STATE_DEFAULT, LV_DPX(10)); 13ea4: 2201 movs r2, #1 13ea6: f7fe bfa5 b.w 12df4 lv_style_set_outline_width(&styles->cb_bg, LV_STATE_DEFAULT, LV_DPX(3)); 13eaa: 2201 movs r2, #1 13eac: f7fe bfc9 b.w 12e42 lv_style_set_outline_pad(&styles->cb_bg, LV_STATE_DEFAULT, LV_DPX(10)); 13eb0: 2201 movs r2, #1 13eb2: f7fe bfdf b.w 12e74 13eb6: bf00 nop 13eb8: 00d6dde3 .word 0x00d6dde3 13ebc: 00808a97 .word 0x00808a97 13ec0: 2000d170 .word 0x2000d170 13ec4: 0000db7d .word 0x0000db7d 13ec8: 00005aa5 .word 0x00005aa5 13ecc: 00010561 .word 0x00010561 13ed0: 00003165 .word 0x00003165 13ed4: 2000d178 .word 0x2000d178 13ed8: 00010529 .word 0x00010529 lv_style_set_radius(&styles->cb_bullet, LV_STATE_DEFAULT, LV_DPX(4)); 13edc: 2201 movs r2, #1 13ede: f7fe bff3 b.w 12ec8 lv_style_set_pad_left(&styles->cb_bullet, LV_STATE_DEFAULT, LV_DPX(3)); 13ee2: 2201 movs r2, #1 13ee4: f7ff b81d b.w 12f22 lv_style_set_pad_right(&styles->cb_bullet, LV_STATE_DEFAULT, LV_DPX(3)); 13ee8: 2201 movs r2, #1 13eea: f7ff b831 b.w 12f50 lv_style_set_pad_top(&styles->cb_bullet, LV_STATE_DEFAULT, LV_DPX(3)); 13eee: 2201 movs r2, #1 13ef0: f7ff b845 b.w 12f7e lv_style_set_pad_bottom(&styles->cb_bullet, LV_STATE_DEFAULT, LV_DPX(3)); 13ef4: 2201 movs r2, #1 13ef6: f7ff b859 b.w 12fac lv_style_set_border_width(&styles->kb_bg, LV_STATE_DEFAULT, LV_DPX(4)); 13efa: 2201 movs r2, #1 13efc: f7ff b871 b.w 12fe2 lv_style_set_border_color(&styles->kb_bg, LV_STATE_DEFAULT, IS_LIGHT ? COLOR_BG_TEXT : LV_COLOR_BLACK); 13f00: 4603 mov r3, r0 13f02: 4602 mov r2, r0 13f04: f7ff b886 b.w 13014 lv_style_set_pad_left(&styles->kb_bg, LV_STATE_DEFAULT, LV_DPX(5)); 13f08: 2201 movs r2, #1 13f0a: f7ff b8a4 b.w 13056 lv_style_set_pad_right(&styles->kb_bg, LV_STATE_DEFAULT, LV_DPX(5)); 13f0e: 2201 movs r2, #1 13f10: f7ff b8b8 b.w 13084 lv_style_set_pad_top(&styles->kb_bg, LV_STATE_DEFAULT, LV_DPX(5)); 13f14: 2201 movs r2, #1 13f16: f7ff b8cc b.w 130b2 lv_style_set_pad_bottom(&styles->kb_bg, LV_STATE_DEFAULT, LV_DPX(5)); 13f1a: 2201 movs r2, #1 13f1c: f7ff b8e0 b.w 130e0 lv_style_set_pad_inner(&styles->kb_bg, LV_STATE_DEFAULT, LV_DPX(3)); 13f20: 2201 movs r2, #1 13f22: f7ff b8f4 b.w 1310e lv_style_set_shadow_width(&styles->mbox_bg, LV_STATE_DEFAULT, LV_DPX(50)); 13f26: 2201 movs r2, #1 13f28: f7ff b91e b.w 13168 lv_style_set_shadow_color(&styles->mbox_bg, LV_STATE_DEFAULT, IS_LIGHT ? LV_COLOR_SILVER : lv_color_hex3(0x999)); 13f2c: 4bc2 ldr r3, [pc, #776] ; (14238 ) 13f2e: f640 1099 movw r0, #2457 ; 0x999 13f32: 4798 blx r3 13f34: 4602 mov r2, r0 13f36: f7ff b923 b.w 13180 lv_style_set_size(&styles->sb, LV_STATE_DEFAULT, LV_DPX(7)); 13f3a: 2201 movs r2, #1 13f3c: f7ff b952 b.w 131e4 lv_style_set_pad_right(&styles->sb, LV_STATE_DEFAULT, LV_DPX(7)); 13f40: 2201 movs r2, #1 13f42: f7ff b966 b.w 13212 lv_style_set_pad_bottom(&styles->sb, LV_STATE_DEFAULT, LV_DPX(7)); 13f46: 2201 movs r2, #1 13f48: f7ff b97a b.w 13240 lv_style_set_border_width(&styles->ta_cursor, LV_STATE_DEFAULT, LV_DPX(2)); 13f4c: 2201 movs r2, #1 13f4e: f7ff b9ad b.w 132ac lv_style_set_pad_left(&styles->ta_cursor, LV_STATE_DEFAULT, LV_DPX(1)); 13f52: 2201 movs r2, #1 13f54: f7ff b9bd b.w 132d2 lv_style_set_text_color(&styles->ta_placeholder, LV_STATE_DEFAULT, IS_LIGHT ? COLOR_BG_TEXT_DIS : lv_color_hex(0xa1adbd)); 13f58: 48b8 ldr r0, [pc, #736] ; (1423c ) 13f5a: 47b8 blx r7 13f5c: f7ff b9cf b.w 132fe lv_style_set_pad_top(&styles->spinbox_cursor, LV_STATE_DEFAULT, LV_DPX(100)); 13f60: 2201 movs r2, #1 13f62: f7ff b9fa b.w 1335a lv_style_set_pad_bottom(&styles->spinbox_cursor, LV_STATE_DEFAULT, LV_DPX(100)); 13f66: 2201 movs r2, #1 13f68: f7ff ba0f b.w 1338a lv_style_set_pad_left(&styles->list_btn, LV_STATE_DEFAULT, PAD_DEF); 13f6c: 2000 movs r0, #0 13f6e: 47a8 blx r5 13f70: 230f movs r3, #15 13f72: 2250 movs r2, #80 ; 0x50 13f74: fb00 2203 mla r2, r0, r3, r2 13f78: 23a0 movs r3, #160 ; 0xa0 13f7a: fb92 f2f3 sdiv r2, r2, r3 13f7e: b212 sxth r2, r2 13f80: f7ff bb10 b.w 135a4 13f84: 47a8 blx r5 13f86: ebc0 1000 rsb r0, r0, r0, lsl #4 13f8a: 0040 lsls r0, r0, #1 13f8c: 28ef cmp r0, #239 ; 0xef 13f8e: f77f ab08 ble.w 135a2 13f92: 2000 movs r0, #0 13f94: 47a8 blx r5 13f96: 231e movs r3, #30 13f98: e7eb b.n 13f72 lv_style_set_pad_right(&styles->list_btn, LV_STATE_DEFAULT, PAD_DEF); 13f9a: 2000 movs r0, #0 13f9c: 47a8 blx r5 13f9e: 230f movs r3, #15 13fa0: 2250 movs r2, #80 ; 0x50 13fa2: fb00 2203 mla r2, r0, r3, r2 13fa6: 23a0 movs r3, #160 ; 0xa0 13fa8: fb92 f2f3 sdiv r2, r2, r3 13fac: b212 sxth r2, r2 13fae: f7ff bb0d b.w 135cc 13fb2: 47a8 blx r5 13fb4: ebc0 1000 rsb r0, r0, r0, lsl #4 13fb8: 0040 lsls r0, r0, #1 13fba: 28ef cmp r0, #239 ; 0xef 13fbc: f77f ab05 ble.w 135ca 13fc0: 2000 movs r0, #0 13fc2: 47a8 blx r5 13fc4: 231e movs r3, #30 13fc6: e7eb b.n 13fa0 lv_style_set_pad_top(&styles->list_btn, LV_STATE_DEFAULT, PAD_DEF); 13fc8: 2000 movs r0, #0 13fca: 47a8 blx r5 13fcc: 230f movs r3, #15 13fce: 2250 movs r2, #80 ; 0x50 13fd0: fb00 2203 mla r2, r0, r3, r2 13fd4: 23a0 movs r3, #160 ; 0xa0 13fd6: fb92 f2f3 sdiv r2, r2, r3 13fda: b212 sxth r2, r2 13fdc: f7ff bb0a b.w 135f4 13fe0: 47a8 blx r5 13fe2: ebc0 1000 rsb r0, r0, r0, lsl #4 13fe6: 0040 lsls r0, r0, #1 13fe8: 28ef cmp r0, #239 ; 0xef 13fea: f77f ab02 ble.w 135f2 13fee: 2000 movs r0, #0 13ff0: 47a8 blx r5 13ff2: 231e movs r3, #30 13ff4: e7eb b.n 13fce lv_style_set_pad_bottom(&styles->list_btn, LV_STATE_DEFAULT, PAD_DEF); 13ff6: 2000 movs r0, #0 13ff8: 47a8 blx r5 13ffa: 230f movs r3, #15 13ffc: 2250 movs r2, #80 ; 0x50 13ffe: fb00 2203 mla r2, r0, r3, r2 14002: 23a0 movs r3, #160 ; 0xa0 14004: fb92 f2f3 sdiv r2, r2, r3 14008: b212 sxth r2, r2 1400a: f7ff bb07 b.w 1361c 1400e: 47a8 blx r5 14010: ebc0 1000 rsb r0, r0, r0, lsl #4 14014: 0040 lsls r0, r0, #1 14016: 28ef cmp r0, #239 ; 0xef 14018: f77f aaff ble.w 1361a 1401c: 2000 movs r0, #0 1401e: 47a8 blx r5 14020: 231e movs r3, #30 14022: e7eb b.n 13ffc lv_style_set_pad_inner(&styles->list_btn, LV_STATE_DEFAULT, PAD_DEF); 14024: 2000 movs r0, #0 14026: 47a8 blx r5 14028: 230f movs r3, #15 1402a: 2250 movs r2, #80 ; 0x50 1402c: fb00 2203 mla r2, r0, r3, r2 14030: 23a0 movs r3, #160 ; 0xa0 14032: fb92 f2f3 sdiv r2, r2, r3 14036: b212 sxth r2, r2 14038: f7ff bb04 b.w 13644 1403c: 47a8 blx r5 1403e: ebc0 1000 rsb r0, r0, r0, lsl #4 14042: 0040 lsls r0, r0, #1 14044: 28ef cmp r0, #239 ; 0xef 14046: f77f aafc ble.w 13642 1404a: 2000 movs r0, #0 1404c: 47a8 blx r5 1404e: 231e movs r3, #30 14050: e7eb b.n 1402a lv_style_set_transform_width(&styles->list_btn, LV_STATE_DEFAULT, - PAD_DEF); 14052: 2000 movs r0, #0 14054: 47a8 blx r5 14056: 230f movs r3, #15 14058: 2250 movs r2, #80 ; 0x50 1405a: fb00 2203 mla r2, r0, r3, r2 1405e: f06f 039f mvn.w r3, #159 ; 0x9f 14062: fb92 f2f3 sdiv r2, r2, r3 14066: b212 sxth r2, r2 14068: f7ff bb01 b.w 1366e 1406c: 47a8 blx r5 1406e: ebc0 1000 rsb r0, r0, r0, lsl #4 14072: 0040 lsls r0, r0, #1 14074: 28ef cmp r0, #239 ; 0xef 14076: f77f aaf8 ble.w 1366a 1407a: 2000 movs r0, #0 1407c: 47a8 blx r5 1407e: 231e movs r3, #30 14080: e7ea b.n 14058 lv_style_set_text_line_space(&styles->ddlist_page, LV_STATE_DEFAULT, LV_DPX(20)); 14082: 2201 movs r2, #1 14084: f7ff bb33 b.w 136ee lv_style_set_text_line_space(&styles->roller_bg, LV_STATE_DEFAULT, LV_DPX(25)); 14088: 2201 movs r2, #1 1408a: f7ff bba6 b.w 137da lv_style_set_border_width(&styles->tabview_btns_bg, LV_STATE_DEFAULT, LV_DPX(5)); 1408e: 2201 movs r2, #1 14090: f7ff bbf9 b.w 13886 lv_style_set_pad_top(&styles->tabview_btns_bg, LV_STATE_DEFAULT, LV_DPX(7)); 14094: 2201 movs r2, #1 14096: e431 b.n 138fc lv_style_set_pad_left(&styles->tabview_btns_bg, LV_STATE_DEFAULT, LV_DPX(7)); 14098: 2201 movs r2, #1 1409a: e446 b.n 1392a lv_style_set_pad_right(&styles->tabview_btns_bg, LV_STATE_DEFAULT, LV_DPX(7)); 1409c: 2201 movs r2, #1 1409e: e45b b.n 13958 lv_style_set_pad_top(&styles->tabview_btns, LV_STATE_DEFAULT, LV_DPX(20)); 140a0: 2201 movs r2, #1 140a2: e494 b.n 139ce lv_style_set_pad_bottom(&styles->tabview_btns, LV_STATE_DEFAULT, LV_DPX(20)); 140a4: 2201 movs r2, #1 140a6: e4aa b.n 139fe lv_style_set_size(&styles->tabview_indic, LV_STATE_DEFAULT, LV_DPX(5)); 140a8: 2201 movs r2, #1 140aa: e4df b.n 13a6c lv_style_set_pad_top(&styles->tabview_page_scrl, LV_STATE_DEFAULT, PAD_DEF); 140ac: 2000 movs r0, #0 140ae: 47a8 blx r5 140b0: 230f movs r3, #15 140b2: 2250 movs r2, #80 ; 0x50 140b4: fb00 2203 mla r2, r0, r3, r2 140b8: 23a0 movs r3, #160 ; 0xa0 140ba: fb92 f2f3 sdiv r2, r2, r3 140be: b212 sxth r2, r2 140c0: e4f4 b.n 13aac 140c2: 47a8 blx r5 140c4: ebc0 1000 rsb r0, r0, r0, lsl #4 140c8: 0040 lsls r0, r0, #1 140ca: 28ef cmp r0, #239 ; 0xef 140cc: f77f aced ble.w 13aaa 140d0: 2000 movs r0, #0 140d2: 47a8 blx r5 140d4: 231e movs r3, #30 140d6: e7ec b.n 140b2 lv_style_set_pad_bottom(&styles->tabview_page_scrl, LV_STATE_DEFAULT, PAD_DEF); 140d8: 2000 movs r0, #0 140da: 47a8 blx r5 140dc: 230f movs r3, #15 140de: 2250 movs r2, #80 ; 0x50 140e0: fb00 2203 mla r2, r0, r3, r2 140e4: 23a0 movs r3, #160 ; 0xa0 140e6: fb92 f2f3 sdiv r2, r2, r3 140ea: b212 sxth r2, r2 140ec: e507 b.n 13afe 140ee: 47a8 blx r5 140f0: ebc0 1000 rsb r0, r0, r0, lsl #4 140f4: 0040 lsls r0, r0, #1 140f6: 28ef cmp r0, #239 ; 0xef 140f8: f77f ad00 ble.w 13afc 140fc: 2000 movs r0, #0 140fe: 47a8 blx r5 14100: 231e movs r3, #30 14102: e7ec b.n 140de lv_style_set_pad_left(&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: e505 b.n 13b26 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 acfe ble.w 13b24 14128: 2000 movs r0, #0 1412a: 47a8 blx r5 1412c: 231e movs r3, #30 1412e: e7ec b.n 1410a lv_style_set_pad_right(&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: e503 b.n 13b4e 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 acfc ble.w 13b4c 14154: 2000 movs r0, #0 14156: 47a8 blx r5 14158: 231e movs r3, #30 1415a: e7ec b.n 14136 lv_style_set_pad_inner(&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: e501 b.n 13b76 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 acfa ble.w 13b74 14180: 2000 movs r0, #0 14182: 47a8 blx r5 14184: 231e movs r3, #30 14186: e7ec b.n 14162 lv_style_set_pad_left(&styles->table_cell, 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: e51a b.n 13bd4 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 ad13 ble.w 13bd2 141ac: 2000 movs r0, #0 141ae: 47a8 blx r5 141b0: 231e movs r3, #30 141b2: e7ec b.n 1418e lv_style_set_pad_right(&styles->table_cell, 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: e518 b.n 13bfc 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 ad11 ble.w 13bfa 141d8: 2000 movs r0, #0 141da: 47a8 blx r5 141dc: 231e movs r3, #30 141de: e7ec b.n 141ba lv_style_set_pad_top(&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: e517 b.n 13c26 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 ad10 ble.w 13c24 14204: 2000 movs r0, #0 14206: 47a8 blx r5 14208: 231e movs r3, #30 1420a: e7ec b.n 141e6 lv_style_set_pad_bottom(&styles->table_cell, LV_STATE_DEFAULT, PAD_DEF); 1420c: 2000 movs r0, #0 1420e: 47b0 blx r6 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: e516 b.n 13c50 14222: 47b0 blx r6 14224: ebc0 1000 rsb r0, r0, r0, lsl #4 14228: 0040 lsls r0, r0, #1 1422a: 28ef cmp r0, #239 ; 0xef 1422c: f77f ad0f ble.w 13c4e 14230: 2000 movs r0, #0 14232: 47b0 blx r6 14234: 231e movs r3, #30 14236: e7ec b.n 14212 14238: 00010529 .word 0x00010529 1423c: 00a1adbd .word 0x00a1adbd 00014240 : * 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) { 14240: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} lv_img_ext_t * ext = lv_obj_get_ext_attr(img); 14244: 4ba4 ldr r3, [pc, #656] ; (144d8 ) { 14246: b0a7 sub sp, #156 ; 0x9c 14248: 4616 mov r6, r2 1424a: 4604 mov r4, r0 1424c: 460f mov r7, r1 lv_img_ext_t * ext = lv_obj_get_ext_attr(img); 1424e: 4798 blx r3 if(mode == LV_DESIGN_COVER_CHK) { 14250: 2e02 cmp r6, #2 lv_img_ext_t * ext = lv_obj_get_ext_attr(img); 14252: 4605 mov r5, r0 if(mode == LV_DESIGN_COVER_CHK) { 14254: d163 bne.n 1431e _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) 14256: f8df 82b4 ldr.w r8, [pc, #692] ; 1450c 1425a: 4632 mov r2, r6 1425c: 2100 movs r1, #0 1425e: 4620 mov r0, r4 14260: 47c0 blx r8 if(lv_obj_get_style_clip_corner(img, LV_IMG_PART_MAIN)) return LV_DESIGN_RES_MASKED; 14262: 2800 cmp r0, #0 14264: f040 81ff bne.w 14666 if(ext->src_type == LV_IMG_SRC_UNKNOWN || ext->src_type == LV_IMG_SRC_SYMBOL) return LV_DESIGN_RES_NOT_COVER; 14268: 7d2b ldrb r3, [r5, #20] 1426a: 0799 lsls r1, r3, #30 1426c: d42a bmi.n 142c4 /*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; 1426e: f003 03f8 and.w r3, r3, #248 ; 0xf8 14272: 2b20 cmp r3, #32 14274: d001 beq.n 1427a 14276: 2b08 cmp r3, #8 14278: d124 bne.n 142c4 _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) 1427a: 2206 movs r2, #6 1427c: 2100 movs r1, #0 1427e: 4620 mov r0, r4 14280: 47c0 blx r8 int32_t angle_final = lv_obj_get_style_transform_angle(img, LV_IMG_PART_MAIN); angle_final += ext->angle; 14282: 89ab ldrh r3, [r5, #12] if(angle_final == 0) return LV_DESIGN_RES_NOT_COVER; 14284: 42c3 cmn r3, r0 14286: d01d beq.n 142c4 _LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_ZOOM, transform_zoom, lv_style_int_t, _int, scalar) 14288: 2207 movs r2, #7 1428a: 2100 movs r1, #0 1428c: 4620 mov r0, r4 1428e: 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; 14290: f8b5 8012 ldrh.w r8, [r5, #18] 14294: f8df 9278 ldr.w r9, [pc, #632] ; 14510 14298: fb00 f808 mul.w r8, r0, r8 1429c: ea4f 2828 mov.w r8, r8, asr #8 if(zoom_final != LV_IMG_ZOOM_NONE) { 142a0: f5b8 7f80 cmp.w r8, #256 ; 0x100 142a4: d012 beq.n 142cc if(_lv_area_is_in(clip_area, &img->coords, 0) == false) return LV_DESIGN_RES_NOT_COVER; 142a6: 2200 movs r2, #0 142a8: 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; 142ac: 4638 mov r0, r7 142ae: 47c8 blx r9 142b0: b140 cbz r0, 142c4 _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) 142b2: 4b8a ldr r3, [pc, #552] ; (144dc ) 142b4: f248 02ac movw r2, #32940 ; 0x80ac 142b8: 2100 movs r1, #0 142ba: 4620 mov r0, r4 142bc: 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; 142be: 28ff cmp r0, #255 ; 0xff 142c0: bf08 it eq 142c2: 2601 moveq r6, #1 lv_draw_rect(&img->coords, clip_area, &draw_dsc); } } return LV_DESIGN_RES_OK; } 142c4: 4630 mov r0, r6 142c6: b027 add sp, #156 ; 0x9c 142c8: 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); 142cc: 4b84 ldr r3, [pc, #528] ; (144e0 ) 142ce: 4620 mov r0, r4 142d0: 4798 blx r3 142d2: 4b84 ldr r3, [pc, #528] ; (144e4 ) 142d4: 9003 str r0, [sp, #12] 142d6: 4620 mov r0, r4 142d8: 4798 blx r3 142da: 350e adds r5, #14 142dc: 4602 mov r2, r0 142de: e9cd 8500 strd r8, r5, [sp] 142e2: 9903 ldr r1, [sp, #12] 142e4: 4d80 ldr r5, [pc, #512] ; (144e8 ) 142e6: 2300 movs r3, #0 142e8: a811 add r0, sp, #68 ; 0x44 142ea: 47a8 blx r5 a.x1 += img->coords.x1; 142ec: 8a22 ldrh r2, [r4, #16] 142ee: f8bd 3044 ldrh.w r3, [sp, #68] ; 0x44 a.y1 += img->coords.y1; 142f2: f8bd 1046 ldrh.w r1, [sp, #70] ; 0x46 a.x1 += img->coords.x1; 142f6: 4413 add r3, r2 142f8: f8ad 3044 strh.w r3, [sp, #68] ; 0x44 a.y1 += img->coords.y1; 142fc: 8a63 ldrh r3, [r4, #18] 142fe: 4419 add r1, r3 14300: f8ad 1046 strh.w r1, [sp, #70] ; 0x46 a.x2 += img->coords.x1; 14304: f8bd 1048 ldrh.w r1, [sp, #72] ; 0x48 14308: 440a add r2, r1 1430a: f8ad 2048 strh.w r2, [sp, #72] ; 0x48 a.y2 += img->coords.y1; 1430e: f8bd 204a ldrh.w r2, [sp, #74] ; 0x4a 14312: 4413 add r3, r2 14314: f8ad 304a strh.w r3, [sp, #74] ; 0x4a if(_lv_area_is_in(clip_area, &a, 0) == false) return LV_DESIGN_RES_NOT_COVER; 14318: 2200 movs r2, #0 1431a: a911 add r1, sp, #68 ; 0x44 1431c: e7c6 b.n 142ac else if(mode == LV_DESIGN_DRAW_MAIN) { 1431e: 2e00 cmp r6, #0 14320: f040 8176 bne.w 14610 if(ext->h == 0 || ext->w == 0) return true; 14324: f9b0 300a ldrsh.w r3, [r0, #10] 14328: 2b00 cmp r3, #0 1432a: f000 816f beq.w 1460c 1432e: f9b0 3008 ldrsh.w r3, [r0, #8] 14332: 2b00 cmp r3, #0 14334: f000 816a beq.w 1460c lv_obj_get_coords(img, &img_coords); 14338: a904 add r1, sp, #16 1433a: 4b6c ldr r3, [pc, #432] ; (144ec ) _LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_POST, border_post, bool, _int, scalar) 1433c: f8df 91cc ldr.w r9, [pc, #460] ; 1450c 14340: 4620 mov r0, r4 14342: 4798 blx r3 lv_draw_rect_dsc_init(&bg_dsc); 14344: 4b6a ldr r3, [pc, #424] ; (144f0 ) 14346: a811 add r0, sp, #68 ; 0x44 14348: 4798 blx r3 lv_obj_init_draw_rect_dsc(img, LV_IMG_PART_MAIN, &bg_dsc); 1434a: aa11 add r2, sp, #68 ; 0x44 1434c: 4631 mov r1, r6 1434e: 4620 mov r0, r4 14350: 4b68 ldr r3, [pc, #416] ; (144f4 ) 14352: 4798 blx r3 14354: 2233 movs r2, #51 ; 0x33 14356: 4631 mov r1, r6 14358: 4620 mov r0, r4 1435a: 47c8 blx r9 if(lv_obj_get_style_border_post(img, LV_OBJ_PART_MAIN)) { 1435c: b108 cbz r0, 14362 bg_dsc.border_opa = LV_OPA_TRANSP; 1435e: f88d 6058 strb.w r6, [sp, #88] ; 0x58 _LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_ZOOM, transform_zoom, lv_style_int_t, _int, scalar) 14362: 2207 movs r2, #7 14364: 2100 movs r1, #0 14366: 4620 mov r0, r4 14368: 47c8 blx r9 zoom_final = (zoom_final * ext->zoom) >> 8; 1436a: f8b5 8012 ldrh.w r8, [r5, #18] 1436e: fb00 f008 mul.w r0, r0, r8 if(zoom_final == 0) return LV_DESIGN_RES_OK; 14372: ea5f 2820 movs.w r8, r0, asr #8 14376: d0a5 beq.n 142c4 _LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_ANGLE, transform_angle, lv_style_int_t, _int, scalar) 14378: 2206 movs r2, #6 1437a: 2100 movs r1, #0 1437c: 4620 mov r0, r4 1437e: 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); 14380: f8bd 2016 ldrh.w r2, [sp, #22] 14384: f8bd 3012 ldrh.w r3, [sp, #18] return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); 14388: f8bd 1014 ldrh.w r1, [sp, #20] angle_final += ext->angle; 1438c: 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), 14390: f8df b154 ldr.w fp, [pc, #340] ; 144e8 return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); 14394: 3201 adds r2, #1 14396: 1ad2 subs r2, r2, r3 return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); 14398: f8bd 3010 ldrh.w r3, [sp, #16] 1439c: 3101 adds r1, #1 angle_final += ext->angle; 1439e: 4482 add sl, r0 143a0: 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), 143a2: fa1f f888 uxth.w r8, r8 143a6: f105 030e add.w r3, r5, #14 143aa: e9cd 8300 strd r8, r3, [sp] 143ae: b212 sxth r2, r2 143b0: fa0f f38a sxth.w r3, sl 143b4: b209 sxth r1, r1 143b6: a806 add r0, sp, #24 143b8: 47d8 blx fp bg_coords.x1 += img_coords.x1; 143ba: f8bd 2010 ldrh.w r2, [sp, #16] 143be: f8bd 3018 ldrh.w r3, [sp, #24] bg_coords.y1 += img_coords.y1; 143c2: f8bd 101a ldrh.w r1, [sp, #26] bg_coords.x1 += img_coords.x1; 143c6: 4413 add r3, r2 143c8: f8ad 3018 strh.w r3, [sp, #24] bg_coords.y1 += img_coords.y1; 143cc: f8bd 3012 ldrh.w r3, [sp, #18] 143d0: 4419 add r1, r3 143d2: f8ad 101a strh.w r1, [sp, #26] bg_coords.x2 += img_coords.x1; 143d6: f8bd 101c ldrh.w r1, [sp, #28] 143da: 440a add r2, r1 143dc: f8ad 201c strh.w r2, [sp, #28] bg_coords.y2 += img_coords.y1; 143e0: f8bd 201e ldrh.w r2, [sp, #30] _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar) 143e4: 2100 movs r1, #0 143e6: 4413 add r3, r2 143e8: 4620 mov r0, r4 143ea: 2212 movs r2, #18 143ec: f8ad 301e strh.w r3, [sp, #30] 143f0: 47c8 blx r9 bg_coords.x1 -= lv_obj_get_style_pad_left(img, LV_IMG_PART_MAIN); 143f2: f8bd 3018 ldrh.w r3, [sp, #24] 143f6: 1a18 subs r0, r3, r0 143f8: f8ad 0018 strh.w r0, [sp, #24] _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar) 143fc: 2213 movs r2, #19 143fe: 2100 movs r1, #0 14400: 4620 mov r0, r4 14402: 47c8 blx r9 bg_coords.x2 += lv_obj_get_style_pad_right(img, LV_IMG_PART_MAIN); 14404: f8bd 301c ldrh.w r3, [sp, #28] 14408: 4418 add r0, r3 1440a: f8ad 001c strh.w r0, [sp, #28] _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar) 1440e: 2210 movs r2, #16 14410: 2100 movs r1, #0 14412: 4620 mov r0, r4 14414: 47c8 blx r9 bg_coords.y1 -= lv_obj_get_style_pad_top(img, LV_IMG_PART_MAIN); 14416: f8bd 301a ldrh.w r3, [sp, #26] 1441a: 1a18 subs r0, r3, r0 1441c: f8ad 001a strh.w r0, [sp, #26] _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar) 14420: 2211 movs r2, #17 14422: 2100 movs r1, #0 14424: 4620 mov r0, r4 14426: 47c8 blx r9 bg_coords.y2 += lv_obj_get_style_pad_bottom(img, LV_IMG_PART_MAIN); 14428: f8bd 301e ldrh.w r3, [sp, #30] 1442c: 4418 add r0, r3 1442e: f8ad 001e strh.w r0, [sp, #30] lv_draw_rect(&bg_coords, clip_area, &bg_dsc); 14432: aa11 add r2, sp, #68 ; 0x44 14434: 4639 mov r1, r7 14436: a806 add r0, sp, #24 14438: 4b2f ldr r3, [pc, #188] ; (144f8 ) 1443a: 4798 blx r3 _LV_OBJ_STYLE_SET_GET_DECLARE(CLIP_CORNER, clip_corner, bool, _int, scalar) 1443c: 2202 movs r2, #2 1443e: 2100 movs r1, #0 14440: 4620 mov r0, r4 14442: 47c8 blx r9 if(lv_obj_get_style_clip_corner(img, LV_OBJ_PART_MAIN)) { 14444: b198 cbz r0, 1446e lv_draw_mask_radius_param_t * mp = _lv_mem_buf_get(sizeof(lv_draw_mask_radius_param_t)); 14446: 4b2d ldr r3, [pc, #180] ; (144fc ) 14448: 201c movs r0, #28 1444a: 4798 blx r3 _LV_OBJ_STYLE_SET_GET_DECLARE(RADIUS, radius, lv_style_int_t, _int, scalar) 1444c: 2201 movs r2, #1 1444e: 4683 mov fp, r0 14450: 2100 movs r1, #0 14452: 4620 mov r0, r4 14454: 47c8 blx r9 lv_draw_mask_radius_init(mp, &bg_coords, r, false); 14456: 2300 movs r3, #0 14458: 4602 mov r2, r0 1445a: a906 add r1, sp, #24 1445c: 4658 mov r0, fp 1445e: f8df 90b4 ldr.w r9, [pc, #180] ; 14514 14462: 47c8 blx r9 lv_draw_mask_add(mp, img + 8); 14464: 4b26 ldr r3, [pc, #152] ; (14500 ) 14466: f504 7118 add.w r1, r4, #608 ; 0x260 1446a: 4658 mov r0, fp 1446c: 4798 blx r3 if(ext->src_type == LV_IMG_SRC_FILE || ext->src_type == LV_IMG_SRC_VARIABLE) { 1446e: 7d2b ldrb r3, [r5, #20] 14470: 079a lsls r2, r3, #30 14472: f100 809d bmi.w 145b0 img_coords.x1 += ext->offset.x; 14476: f8bd 2010 ldrh.w r2, [sp, #16] 1447a: 88ab ldrh r3, [r5, #4] if(img_coords.x1 > img->coords.x1) img_coords.x1 -= ext->w; 1447c: f9b4 c010 ldrsh.w ip, [r4, #16] img_coords.y1 += ext->offset.y; 14480: 88e9 ldrh r1, [r5, #6] img_coords.x1 += ext->offset.x; 14482: 441a add r2, r3 14484: b290 uxth r0, r2 14486: b212 sxth r2, r2 if(img_coords.x1 > img->coords.x1) img_coords.x1 -= ext->w; 14488: 4594 cmp ip, r2 img_coords.x1 += ext->offset.x; 1448a: f8ad 2010 strh.w r2, [sp, #16] if(img_coords.x1 > img->coords.x1) img_coords.x1 -= ext->w; 1448e: bfb8 it lt 14490: 892a ldrhlt r2, [r5, #8] img_coords.y1 += ext->offset.y; 14492: f8bd 3012 ldrh.w r3, [sp, #18] if(img_coords.x1 > img->coords.x1) img_coords.x1 -= ext->w; 14496: bfbc itt lt 14498: 1a82 sublt r2, r0, r2 1449a: f8ad 2010 strhlt.w r2, [sp, #16] img_coords.y1 += ext->offset.y; 1449e: 440b add r3, r1 if(img_coords.y1 > img->coords.y1) img_coords.y1 -= ext->h; 144a0: f9b4 2012 ldrsh.w r2, [r4, #18] img_coords.y1 += ext->offset.y; 144a4: b299 uxth r1, r3 144a6: b21b sxth r3, r3 if(img_coords.y1 > img->coords.y1) img_coords.y1 -= ext->h; 144a8: 429a cmp r2, r3 img_coords.y1 += ext->offset.y; 144aa: f8ad 3012 strh.w r3, [sp, #18] if(img_coords.y1 > img->coords.y1) img_coords.y1 -= ext->h; 144ae: bfbe ittt lt 144b0: 896b ldrhlt r3, [r5, #10] 144b2: 1acb sublt r3, r1, r3 144b4: f8ad 3012 strhlt.w r3, [sp, #18] lv_draw_img_dsc_init(&img_dsc); 144b8: a80a add r0, sp, #40 ; 0x28 144ba: 4b12 ldr r3, [pc, #72] ; (14504 ) 144bc: 4798 blx r3 lv_obj_init_draw_img_dsc(img, LV_IMG_PART_MAIN, &img_dsc); 144be: 4b12 ldr r3, [pc, #72] ; (14508 ) 144c0: aa0a add r2, sp, #40 ; 0x28 144c2: 2100 movs r1, #0 144c4: 4620 mov r0, r4 144c6: 4798 blx r3 img_dsc.zoom = zoom_final; 144c8: f8ad 8030 strh.w r8, [sp, #48] ; 0x30 if(img_dsc.zoom == 0) return LV_DESIGN_RES_OK; 144cc: f1b8 0f00 cmp.w r8, #0 144d0: d122 bne.n 14518 return LV_DESIGN_RES_OK; 144d2: 2600 movs r6, #0 144d4: e6f6 b.n 142c4 144d6: bf00 nop 144d8: 000041d5 .word 0x000041d5 144dc: 00003a65 .word 0x00003a65 144e0: 00002619 .word 0x00002619 144e4: 00002669 .word 0x00002669 144e8: 0000c28d .word 0x0000c28d 144ec: 00002501 .word 0x00002501 144f0: 00009dcd .word 0x00009dcd 144f4: 000044d5 .word 0x000044d5 144f8: 00009e19 .word 0x00009e19 144fc: 0000f0ed .word 0x0000f0ed 14500: 0000993d .word 0x0000993d 14504: 00007785 .word 0x00007785 14508: 00004ac9 .word 0x00004ac9 1450c: 0000393d .word 0x0000393d 14510: 0000e2bd .word 0x0000e2bd 14514: 00009b41 .word 0x00009b41 img_dsc.pivot.x = ext->pivot.x; 14518: 89eb ldrh r3, [r5, #14] 1451a: f8ad 302c strh.w r3, [sp, #44] ; 0x2c img_dsc.pivot.y = ext->pivot.y; 1451e: 8a2b ldrh r3, [r5, #16] 14520: f8ad 302e strh.w r3, [sp, #46] ; 0x2e img_dsc.antialias = ext->antialias; 14524: 7d6b ldrb r3, [r5, #21] 14526: f89d 2037 ldrb.w r2, [sp, #55] ; 0x37 lv_draw_img(&cords_tmp, clip_area, ext->src, &img_dsc); 1452a: 4c50 ldr r4, [pc, #320] ; (1466c ) img_dsc.angle = angle_final; 1452c: f8ad a02a strh.w sl, [sp, #42] ; 0x2a img_dsc.antialias = ext->antialias; 14530: f3c3 0300 ubfx r3, r3, #0, #1 14534: f363 0200 bfi r2, r3, #0, #1 14538: f88d 2037 strb.w r2, [sp, #55] ; 0x37 cords_tmp.y1 = img_coords.y1; 1453c: f9bd 3012 ldrsh.w r3, [sp, #18] cords_tmp.y2 = img_coords.y1 + ext->h - 1; 14540: 896a ldrh r2, [r5, #10] cords_tmp.y1 = img_coords.y1; 14542: f8ad 3022 strh.w r3, [sp, #34] ; 0x22 cords_tmp.y2 = img_coords.y1 + ext->h - 1; 14546: 3b01 subs r3, #1 14548: 4413 add r3, r2 1454a: b21b sxth r3, r3 for(; cords_tmp.y1 <= img_coords.y2; cords_tmp.y1 += ext->h, cords_tmp.y2 += ext->h) { 1454c: f9bd 2022 ldrsh.w r2, [sp, #34] ; 0x22 cords_tmp.y2 = img_coords.y1 + ext->h - 1; 14550: 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) { 14554: f9bd 3016 ldrsh.w r3, [sp, #22] 14558: 429a cmp r2, r3 1455a: f73f aeb3 bgt.w 142c4 cords_tmp.x1 = img_coords.x1; 1455e: f9bd 3010 ldrsh.w r3, [sp, #16] cords_tmp.x2 = img_coords.x1 + ext->w - 1; 14562: 892a ldrh r2, [r5, #8] cords_tmp.x1 = img_coords.x1; 14564: f8ad 3020 strh.w r3, [sp, #32] cords_tmp.x2 = img_coords.x1 + ext->w - 1; 14568: 3b01 subs r3, #1 for(; cords_tmp.x1 <= img_coords.x2; cords_tmp.x1 += ext->w, cords_tmp.x2 += ext->w) { 1456a: 4413 add r3, r2 1456c: b21b sxth r3, r3 1456e: f9bd 2020 ldrsh.w r2, [sp, #32] cords_tmp.x2 = img_coords.x1 + ext->w - 1; 14572: 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) { 14576: f9bd 3014 ldrsh.w r3, [sp, #20] 1457a: 429a cmp r2, r3 1457c: dd0a ble.n 14594 for(; cords_tmp.y1 <= img_coords.y2; cords_tmp.y1 += ext->h, cords_tmp.y2 += ext->h) { 1457e: 896b ldrh r3, [r5, #10] 14580: f8bd 2022 ldrh.w r2, [sp, #34] ; 0x22 14584: 441a add r2, r3 14586: f8ad 2022 strh.w r2, [sp, #34] ; 0x22 1458a: f8bd 2026 ldrh.w r2, [sp, #38] ; 0x26 1458e: 4413 add r3, r2 14590: b21b sxth r3, r3 14592: e7db b.n 1454c lv_draw_img(&cords_tmp, clip_area, ext->src, &img_dsc); 14594: 682a ldr r2, [r5, #0] 14596: ab0a add r3, sp, #40 ; 0x28 14598: 4639 mov r1, r7 1459a: a808 add r0, sp, #32 1459c: 47a0 blx r4 for(; cords_tmp.x1 <= img_coords.x2; cords_tmp.x1 += ext->w, cords_tmp.x2 += ext->w) { 1459e: f8bd 2020 ldrh.w r2, [sp, #32] 145a2: 892b ldrh r3, [r5, #8] 145a4: 441a add r2, r3 145a6: f8ad 2020 strh.w r2, [sp, #32] 145aa: f8bd 2024 ldrh.w r2, [sp, #36] ; 0x24 145ae: e7dc b.n 1456a else if(ext->src_type == LV_IMG_SRC_SYMBOL) { 145b0: f003 0303 and.w r3, r3, #3 145b4: 2b02 cmp r3, #2 145b6: d118 bne.n 145ea lv_draw_label_dsc_init(&label_dsc); 145b8: a80a add r0, sp, #40 ; 0x28 145ba: 4b2d ldr r3, [pc, #180] ; (14670 ) 145bc: 4798 blx r3 lv_obj_init_draw_label_dsc(img, LV_IMG_PART_MAIN, &label_dsc); 145be: aa0a add r2, sp, #40 ; 0x28 145c0: 4620 mov r0, r4 145c2: 4b2c ldr r3, [pc, #176] ; (14674 ) 145c4: 2100 movs r1, #0 145c6: 4798 blx r3 _LV_OBJ_STYLE_SET_GET_DECLARE(IMAGE_RECOLOR, image_recolor, lv_color_t, _color, nonscalar) 145c8: 4b2b ldr r3, [pc, #172] ; (14678 ) 145ca: f248 02a9 movw r2, #32937 ; 0x80a9 145ce: 2100 movs r1, #0 145d0: 4620 mov r0, r4 145d2: 4798 blx r3 lv_draw_label(&img_coords, clip_area, &label_dsc, ext->src, NULL); 145d4: 2300 movs r3, #0 145d6: 9300 str r3, [sp, #0] label_dsc.color = lv_obj_get_style_image_recolor(img, LV_IMG_PART_MAIN); 145d8: f8ad 0028 strh.w r0, [sp, #40] ; 0x28 lv_draw_label(&img_coords, clip_area, &label_dsc, ext->src, NULL); 145dc: 682b ldr r3, [r5, #0] 145de: 4c27 ldr r4, [pc, #156] ; (1467c ) 145e0: aa0a add r2, sp, #40 ; 0x28 145e2: 4639 mov r1, r7 145e4: a804 add r0, sp, #16 145e6: 47a0 blx r4 145e8: e66c b.n 142c4 LV_LOG_WARN("lv_img_design: image source type is unknown"); 145ea: 4b25 ldr r3, [pc, #148] ; (14680 ) 145ec: 9300 str r3, [sp, #0] 145ee: 4925 ldr r1, [pc, #148] ; (14684 ) 145f0: 4b25 ldr r3, [pc, #148] ; (14688 ) 145f2: 4d26 ldr r5, [pc, #152] ; (1468c ) 145f4: f240 22bb movw r2, #699 ; 0x2bb 145f8: 2002 movs r0, #2 145fa: 47a8 blx r5 lv_draw_img(&img->coords, clip_area, NULL, NULL); 145fc: 2300 movs r3, #0 145fe: f104 0010 add.w r0, r4, #16 14602: 461a mov r2, r3 14604: 4c19 ldr r4, [pc, #100] ; (1466c ) 14606: 4639 mov r1, r7 14608: 47a0 blx r4 1460a: e65b b.n 142c4 if(ext->h == 0 || ext->w == 0) return true; 1460c: 2601 movs r6, #1 1460e: e659 b.n 142c4 else if(mode == LV_DESIGN_DRAW_POST) { 14610: 2e01 cmp r6, #1 14612: f47f af5e bne.w 144d2 _LV_OBJ_STYLE_SET_GET_DECLARE(CLIP_CORNER, clip_corner, bool, _int, scalar) 14616: 4d1e ldr r5, [pc, #120] ; (14690 ) 14618: 2202 movs r2, #2 1461a: 2100 movs r1, #0 1461c: 4620 mov r0, r4 1461e: 47a8 blx r5 if(lv_obj_get_style_clip_corner(img, LV_OBJ_PART_MAIN)) { 14620: b128 cbz r0, 1462e lv_draw_mask_radius_param_t * param = lv_draw_mask_remove_custom(img + 8); 14622: 4b1c ldr r3, [pc, #112] ; (14694 ) 14624: f504 7018 add.w r0, r4, #608 ; 0x260 14628: 4798 blx r3 _lv_mem_buf_release(param); 1462a: 4b1b ldr r3, [pc, #108] ; (14698 ) 1462c: 4798 blx r3 lv_draw_rect_dsc_init(&draw_dsc); 1462e: a811 add r0, sp, #68 ; 0x44 14630: 4b1a ldr r3, [pc, #104] ; (1469c ) 14632: 4798 blx r3 _LV_OBJ_STYLE_SET_GET_DECLARE(BORDER_POST, border_post, bool, _int, scalar) 14634: 2233 movs r2, #51 ; 0x33 14636: 2100 movs r1, #0 14638: 4620 mov r0, r4 1463a: 47a8 blx r5 if(lv_obj_get_style_border_post(img, LV_OBJ_PART_MAIN)) { 1463c: 2800 cmp r0, #0 1463e: f43f af48 beq.w 144d2 draw_dsc.bg_opa = LV_OPA_TRANSP; 14642: 2100 movs r1, #0 14644: f88d 1050 strb.w r1, [sp, #80] ; 0x50 draw_dsc.pattern_opa = LV_OPA_TRANSP; 14648: f88d 107a strb.w r1, [sp, #122] ; 0x7a draw_dsc.shadow_opa = LV_OPA_TRANSP; 1464c: f88d 106c strb.w r1, [sp, #108] ; 0x6c lv_obj_init_draw_rect_dsc(img, LV_OBJ_PART_MAIN, &draw_dsc); 14650: aa11 add r2, sp, #68 ; 0x44 14652: 4620 mov r0, r4 14654: 4b12 ldr r3, [pc, #72] ; (146a0 ) 14656: 4798 blx r3 lv_draw_rect(&img->coords, clip_area, &draw_dsc); 14658: 4b12 ldr r3, [pc, #72] ; (146a4 ) 1465a: aa11 add r2, sp, #68 ; 0x44 1465c: 4639 mov r1, r7 1465e: f104 0010 add.w r0, r4, #16 14662: 4798 blx r3 14664: e735 b.n 144d2 if(lv_obj_get_style_clip_corner(img, LV_IMG_PART_MAIN)) return LV_DESIGN_RES_MASKED; 14666: 2603 movs r6, #3 14668: e62c b.n 142c4 1466a: bf00 nop 1466c: 000077ed .word 0x000077ed 14670: 00007a71 .word 0x00007a71 14674: 00004a11 .word 0x00004a11 14678: 000039e1 .word 0x000039e1 1467c: 00007aa1 .word 0x00007aa1 14680: 00027743 .word 0x00027743 14684: 0002bbf8 .word 0x0002bbf8 14688: 0002bcb1 .word 0x0002bcb1 1468c: 0000eb21 .word 0x0000eb21 14690: 0000393d .word 0x0000393d 14694: 000099f5 .word 0x000099f5 14698: 0000eda1 .word 0x0000eda1 1469c: 00009dcd .word 0x00009dcd 146a0: 000044d5 .word 0x000044d5 146a4: 00009e19 .word 0x00009e19 000146a8 : { 146a8: b573 push {r0, r1, r4, r5, r6, lr} LV_ASSERT_OBJ(img, LV_OBJX_NAME); 146aa: 4b0d ldr r3, [pc, #52] ; (146e0 ) { 146ac: 4604 mov r4, r0 LV_ASSERT_OBJ(img, LV_OBJX_NAME); 146ae: 4798 blx r3 146b0: 4605 mov r5, r0 146b2: b968 cbnz r0, 146d0 146b4: 4b0b ldr r3, [pc, #44] ; (146e4 ) 146b6: 490c ldr r1, [pc, #48] ; (146e8 ) 146b8: 9300 str r3, [sp, #0] 146ba: f44f 72e7 mov.w r2, #462 ; 0x1ce 146be: 2003 movs r0, #3 146c0: 4e0a ldr r6, [pc, #40] ; (146ec ) 146c2: 47b0 blx r6 146c4: 480a ldr r0, [pc, #40] ; (146f0 ) 146c6: 490b ldr r1, [pc, #44] ; (146f4 ) 146c8: 4622 mov r2, r4 146ca: 462b mov r3, r5 146cc: 4788 blx r1 146ce: e7fe b.n 146ce lv_img_ext_t * ext = lv_obj_get_ext_attr(img); 146d0: 4b09 ldr r3, [pc, #36] ; (146f8 ) 146d2: 4620 mov r0, r4 146d4: 4798 blx r3 return ext->auto_size == 0 ? false : true; 146d6: 7d00 ldrb r0, [r0, #20] } 146d8: f3c0 0080 ubfx r0, r0, #2, #1 146dc: b002 add sp, #8 146de: bd70 pop {r4, r5, r6, pc} 146e0: 00001a0d .word 0x00001a0d 146e4: 0002bd20 .word 0x0002bd20 146e8: 0002bbf8 .word 0x0002bbf8 146ec: 0000eb21 .word 0x0000eb21 146f0: 0002683f .word 0x0002683f 146f4: 00001a15 .word 0x00001a15 146f8: 000041d5 .word 0x000041d5 000146fc : { 146fc: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} LV_ASSERT_OBJ(img, LV_OBJX_NAME); 14700: f8df a244 ldr.w sl, [pc, #580] ; 14948 { 14704: b088 sub sp, #32 14706: 4606 mov r6, r0 14708: 460f mov r7, r1 LV_ASSERT_OBJ(img, LV_OBJX_NAME); 1470a: 47d0 blx sl 1470c: 4604 mov r4, r0 1470e: b960 cbnz r0, 1472a 14710: 4b77 ldr r3, [pc, #476] ; (148f0 ) 14712: 4978 ldr r1, [pc, #480] ; (148f4 ) 14714: 9300 str r3, [sp, #0] 14716: 228f movs r2, #143 ; 0x8f 14718: 2003 movs r0, #3 1471a: 4d77 ldr r5, [pc, #476] ; (148f8 ) 1471c: 47a8 blx r5 1471e: 4877 ldr r0, [pc, #476] ; (148fc ) 14720: 4977 ldr r1, [pc, #476] ; (14900 ) 14722: 4632 mov r2, r6 14724: 4623 mov r3, r4 14726: 4788 blx r1 14728: e7fe b.n 14728 lv_img_src_t src_type = lv_img_src_get_type(src_img); 1472a: 4b76 ldr r3, [pc, #472] ; (14904 ) 1472c: 4638 mov r0, r7 1472e: 4798 blx r3 lv_img_ext_t * ext = lv_obj_get_ext_attr(img); 14730: 4b75 ldr r3, [pc, #468] ; (14908 ) lv_img_src_t src_type = lv_img_src_get_type(src_img); 14732: 4605 mov r5, r0 lv_img_ext_t * ext = lv_obj_get_ext_attr(img); 14734: 4630 mov r0, r6 14736: 4798 blx r3 switch(src_type) { 14738: 2d02 cmp r5, #2 lv_img_ext_t * ext = lv_obj_get_ext_attr(img); 1473a: 4604 mov r4, r0 switch(src_type) { 1473c: d923 bls.n 14786 LV_LOG_WARN("lv_img_set_src: unknown type"); 1473e: 4b73 ldr r3, [pc, #460] ; (1490c ) 14740: 9300 str r3, [sp, #0] 14742: 496c ldr r1, [pc, #432] ; (148f4 ) 14744: 4b6a ldr r3, [pc, #424] ; (148f0 ) 14746: f8df 81b0 ldr.w r8, [pc, #432] ; 148f8 1474a: 22a0 movs r2, #160 ; 0xa0 1474c: 2002 movs r0, #2 1474e: 47c0 blx r8 if(src_type == LV_IMG_SRC_UNKNOWN) { 14750: 2d03 cmp r5, #3 14752: d118 bne.n 14786 LV_LOG_WARN("lv_img_set_src: unknown image type"); 14754: 4b6e ldr r3, [pc, #440] ; (14910 ) 14756: 9300 str r3, [sp, #0] 14758: 4966 ldr r1, [pc, #408] ; (148f4 ) 1475a: 4b65 ldr r3, [pc, #404] ; (148f0 ) 1475c: 22a6 movs r2, #166 ; 0xa6 1475e: 2002 movs r0, #2 14760: 47c0 blx r8 if(ext->src_type == LV_IMG_SRC_SYMBOL || ext->src_type == LV_IMG_SRC_FILE) { 14762: 7d23 ldrb r3, [r4, #20] 14764: f003 0303 and.w r3, r3, #3 14768: 3b01 subs r3, #1 1476a: 2b01 cmp r3, #1 1476c: d802 bhi.n 14774 lv_mem_free(ext->src); 1476e: 6820 ldr r0, [r4, #0] 14770: 4b68 ldr r3, [pc, #416] ; (14914 ) 14772: 4798 blx r3 ext->src = NULL; 14774: 2300 movs r3, #0 14776: 6023 str r3, [r4, #0] ext->src_type = LV_IMG_SRC_UNKNOWN; 14778: 7d23 ldrb r3, [r4, #20] 1477a: f043 0303 orr.w r3, r3, #3 1477e: 7523 strb r3, [r4, #20] } 14780: b008 add sp, #32 14782: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} lv_img_decoder_get_info(src_img, &header); 14786: 4b64 ldr r3, [pc, #400] ; (14918 ) 14788: a906 add r1, sp, #24 1478a: 4638 mov r0, r7 1478c: 4798 blx r3 if(src_type == LV_IMG_SRC_VARIABLE) { 1478e: 2d00 cmp r5, #0 14790: d146 bne.n 14820 LV_LOG_INFO("lv_img_set_src: `LV_IMG_SRC_VARIABLE` type found"); 14792: 4b62 ldr r3, [pc, #392] ; (1491c ) 14794: 9300 str r3, [sp, #0] 14796: 4957 ldr r1, [pc, #348] ; (148f4 ) 14798: 4b55 ldr r3, [pc, #340] ; (148f0 ) 1479a: f8df 815c ldr.w r8, [pc, #348] ; 148f8 1479e: 22b4 movs r2, #180 ; 0xb4 147a0: 2001 movs r0, #1 147a2: 47c0 blx r8 if(ext->src_type == LV_IMG_SRC_FILE || ext->src_type == LV_IMG_SRC_SYMBOL) { 147a4: 7d23 ldrb r3, [r4, #20] 147a6: f003 0303 and.w r3, r3, #3 147aa: 3b01 subs r3, #1 147ac: 2b01 cmp r3, #1 147ae: d802 bhi.n 147b6 lv_mem_free(ext->src); 147b0: 6820 ldr r0, [r4, #0] 147b2: 4b58 ldr r3, [pc, #352] ; (14914 ) 147b4: 4798 blx r3 ext->src = src_img; 147b6: 6027 str r7, [r4, #0] ext->w = header.w; 147b8: 9a06 ldr r2, [sp, #24] 147ba: f3c2 238a ubfx r3, r2, #10, #11 147be: 8123 strh r3, [r4, #8] ext->h = header.h; 147c0: f8bd 301a ldrh.w r3, [sp, #26] 147c4: f3c3 114a ubfx r1, r3, #5, #11 147c8: 8161 strh r1, [r4, #10] ext->cf = header.cf; 147ca: f89d 1018 ldrb.w r1, [sp, #24] ext->src_type = src_type; 147ce: f005 0503 and.w r5, r5, #3 ext->cf = header.cf; 147d2: f3c1 0104 ubfx r1, r1, #0, #5 ext->src_type = src_type; 147d6: ea45 05c1 orr.w r5, r5, r1, lsl #3 147da: 7d21 ldrb r1, [r4, #20] 147dc: f001 0104 and.w r1, r1, #4 ext->pivot.y = header.h / 2; 147e0: f3c3 1389 ubfx r3, r3, #6, #10 ext->src_type = src_type; 147e4: 430d orrs r5, r1 ext->pivot.x = header.w / 2; 147e6: f3c2 22c9 ubfx r2, r2, #11, #10 ext->pivot.y = header.h / 2; 147ea: 8223 strh r3, [r4, #16] ext->src_type = src_type; 147ec: 7525 strb r5, [r4, #20] if(lv_img_get_auto_size(img) != false) { 147ee: 4b4c ldr r3, [pc, #304] ; (14920 ) ext->pivot.x = header.w / 2; 147f0: 81e2 strh r2, [r4, #14] if(lv_img_get_auto_size(img) != false) { 147f2: 4630 mov r0, r6 147f4: 4798 blx r3 147f6: b130 cbz r0, 14806 lv_obj_set_size(img, ext->w, ext->h); 147f8: f9b4 200a ldrsh.w r2, [r4, #10] 147fc: f9b4 1008 ldrsh.w r1, [r4, #8] 14800: 4b48 ldr r3, [pc, #288] ; (14924 ) 14802: 4630 mov r0, r6 14804: 4798 blx r3 if(ext->angle || ext->zoom != LV_IMG_ZOOM_NONE) lv_obj_refresh_ext_draw_pad(img); 14806: 89a3 ldrh r3, [r4, #12] 14808: b91b cbnz r3, 14812 1480a: 8a63 ldrh r3, [r4, #18] 1480c: f5b3 7f80 cmp.w r3, #256 ; 0x100 14810: d002 beq.n 14818 14812: 4b45 ldr r3, [pc, #276] ; (14928 ) 14814: 4630 mov r0, r6 14816: 4798 blx r3 lv_obj_invalidate(img); 14818: 4b44 ldr r3, [pc, #272] ; (1492c ) 1481a: 4630 mov r0, r6 1481c: 4798 blx r3 1481e: e7af b.n 14780 else if(src_type == LV_IMG_SRC_FILE || src_type == LV_IMG_SRC_SYMBOL) { 14820: 1e6b subs r3, r5, #1 14822: b2db uxtb r3, r3 14824: 2b01 cmp r3, #1 14826: d831 bhi.n 1488c if(ext->src != src_img) { 14828: f8d4 9000 ldr.w r9, [r4] 1482c: 454f cmp r7, r9 1482e: d02d beq.n 1488c if(ext->src_type == LV_IMG_SRC_FILE || ext->src_type == LV_IMG_SRC_SYMBOL) { 14830: 7d23 ldrb r3, [r4, #20] 14832: f003 0303 and.w r3, r3, #3 14836: 3b01 subs r3, #1 const void * old_src = NULL; 14838: 2b01 cmp r3, #1 char * new_str = lv_mem_alloc(strlen(src_img) + 1); 1483a: 4638 mov r0, r7 1483c: 4b3c ldr r3, [pc, #240] ; (14930 ) const void * old_src = NULL; 1483e: bf88 it hi 14840: f04f 0900 movhi.w r9, #0 char * new_str = lv_mem_alloc(strlen(src_img) + 1); 14844: 4798 blx r3 14846: 4b3b ldr r3, [pc, #236] ; (14934 ) 14848: 3001 adds r0, #1 1484a: 4798 blx r3 1484c: 4680 mov r8, r0 LV_ASSERT_MEM(new_str); 1484e: 47d0 blx sl 14850: 4682 mov sl, r0 14852: b960 cbnz r0, 1486e 14854: 4b26 ldr r3, [pc, #152] ; (148f0 ) 14856: 4927 ldr r1, [pc, #156] ; (148f4 ) 14858: 9300 str r3, [sp, #0] 1485a: 22c7 movs r2, #199 ; 0xc7 1485c: 2003 movs r0, #3 1485e: 4c26 ldr r4, [pc, #152] ; (148f8 ) 14860: 47a0 blx r4 14862: 4835 ldr r0, [pc, #212] ; (14938 ) 14864: 4926 ldr r1, [pc, #152] ; (14900 ) 14866: 4642 mov r2, r8 14868: 4653 mov r3, sl 1486a: 4788 blx r1 1486c: e7fe b.n 1486c if(new_str == NULL) return; 1486e: f1b8 0f00 cmp.w r8, #0 14872: d085 beq.n 14780 14874: 4b31 ldr r3, [pc, #196] ; (1493c ) 14876: 4639 mov r1, r7 14878: 4640 mov r0, r8 1487a: 4798 blx r3 ext->src = new_str; 1487c: f8c4 8000 str.w r8, [r4] if(old_src) lv_mem_free(old_src); 14880: f1b9 0f00 cmp.w r9, #0 14884: d002 beq.n 1488c 14886: 4b23 ldr r3, [pc, #140] ; (14914 ) 14888: 4648 mov r0, r9 1488a: 4798 blx r3 if(src_type == LV_IMG_SRC_SYMBOL) { 1488c: 2d02 cmp r5, #2 1488e: d193 bne.n 147b8 _LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar) 14890: 4b2b ldr r3, [pc, #172] ; (14940 ) _LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LETTER_SPACE, text_letter_space, lv_style_int_t, _int, scalar) 14892: f8df 90b8 ldr.w r9, [pc, #184] ; 1494c _LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar) 14896: f248 028e movw r2, #32910 ; 0x808e 1489a: 2100 movs r1, #0 1489c: 4630 mov r0, r6 1489e: 4798 blx r3 _LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LETTER_SPACE, text_letter_space, lv_style_int_t, _int, scalar) 148a0: f248 0280 movw r2, #32896 ; 0x8080 _LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar) 148a4: 4680 mov r8, r0 _LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LETTER_SPACE, text_letter_space, lv_style_int_t, _int, scalar) 148a6: 2100 movs r1, #0 148a8: 4630 mov r0, r6 148aa: 47c8 blx r9 _LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LINE_SPACE, text_line_space, lv_style_int_t, _int, scalar) 148ac: f248 0281 movw r2, #32897 ; 0x8081 _LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LETTER_SPACE, text_letter_space, lv_style_int_t, _int, scalar) 148b0: 9005 str r0, [sp, #20] _LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LINE_SPACE, text_line_space, lv_style_int_t, _int, scalar) 148b2: 2100 movs r1, #0 148b4: 4630 mov r0, r6 148b6: 47c8 blx r9 _lv_txt_get_size(&size, src_img, font, letter_space, line_space, 148b8: f647 4218 movw r2, #31768 ; 0x7c18 148bc: 2300 movs r3, #0 148be: e9cd 2301 strd r2, r3, [sp, #4] 148c2: 9000 str r0, [sp, #0] 148c4: 9b05 ldr r3, [sp, #20] 148c6: 4642 mov r2, r8 148c8: 4639 mov r1, r7 148ca: a807 add r0, sp, #28 148cc: 4f1d ldr r7, [pc, #116] ; (14944 ) 148ce: 47b8 blx r7 header.w = size.x; 148d0: f8bd 201c ldrh.w r2, [sp, #28] 148d4: f9bd 301e ldrsh.w r3, [sp, #30] 148d8: f3c2 020a ubfx r2, r2, #0, #11 148dc: 055b lsls r3, r3, #21 148de: ea43 2382 orr.w r3, r3, r2, lsl #10 148e2: 9a06 ldr r2, [sp, #24] 148e4: f3c2 0209 ubfx r2, r2, #0, #10 148e8: 4313 orrs r3, r2 148ea: 9306 str r3, [sp, #24] 148ec: e764 b.n 147b8 148ee: bf00 nop 148f0: 0002bd35 .word 0x0002bd35 148f4: 0002bbf8 .word 0x0002bbf8 148f8: 0000eb21 .word 0x0000eb21 148fc: 0002683f .word 0x0002683f 14900: 00001a15 .word 0x00001a15 14904: 00007a31 .word 0x00007a31 14908: 000041d5 .word 0x000041d5 1490c: 0002bc2a .word 0x0002bc2a 14910: 0002bc47 .word 0x0002bc47 14914: 0000ed1d .word 0x0000ed1d 14918: 0000d155 .word 0x0000d155 1491c: 0002bc6a .word 0x0002bc6a 14920: 000146a9 .word 0x000146a9 14924: 0000370d .word 0x0000370d 14928: 000022fd .word 0x000022fd 1492c: 000029b1 .word 0x000029b1 14930: 00017381 .word 0x00017381 14934: 0000ec65 .word 0x0000ec65 14938: 0002673e .word 0x0002673e 1493c: 000172bd .word 0x000172bd 14940: 00003af5 .word 0x00003af5 14944: 000103d5 .word 0x000103d5 14948: 00001a0d .word 0x00001a0d 1494c: 0000393d .word 0x0000393d 00014950 : { 14950: e92d 41f3 stmdb sp!, {r0, r1, r4, r5, r6, r7, r8, lr} lv_obj_t * img = lv_obj_create(par, copy); 14954: 4b53 ldr r3, [pc, #332] ; (14aa4 ) LV_ASSERT_MEM(img); 14956: f8df 81a8 ldr.w r8, [pc, #424] ; 14b00 { 1495a: 460e mov r6, r1 1495c: 4607 mov r7, r0 lv_obj_t * img = lv_obj_create(par, copy); 1495e: 4798 blx r3 14960: 4605 mov r5, r0 LV_ASSERT_MEM(img); 14962: 47c0 blx r8 14964: 4604 mov r4, r0 14966: b960 cbnz r0, 14982 14968: 4b4f ldr r3, [pc, #316] ; (14aa8 ) 1496a: 4950 ldr r1, [pc, #320] ; (14aac ) 1496c: 9300 str r3, [sp, #0] 1496e: 2242 movs r2, #66 ; 0x42 14970: 2003 movs r0, #3 14972: 4e4f ldr r6, [pc, #316] ; (14ab0 ) 14974: 47b0 blx r6 14976: 484f ldr r0, [pc, #316] ; (14ab4 ) 14978: 494f ldr r1, [pc, #316] ; (14ab8 ) 1497a: 462a mov r2, r5 1497c: 4623 mov r3, r4 1497e: 4788 blx r1 14980: e7fe b.n 14980 if(img == NULL) return NULL; 14982: b315 cbz r5, 149ca if(ancestor_signal == NULL) ancestor_signal = lv_obj_get_signal_cb(img); 14984: 4c4d ldr r4, [pc, #308] ; (14abc ) 14986: 6823 ldr r3, [r4, #0] 14988: b91b cbnz r3, 14992 1498a: 4b4d ldr r3, [pc, #308] ; (14ac0 ) 1498c: 4628 mov r0, r5 1498e: 4798 blx r3 14990: 6020 str r0, [r4, #0] lv_img_ext_t * ext = lv_obj_allocate_ext_attr(img, sizeof(lv_img_ext_t)); 14992: 4b4c ldr r3, [pc, #304] ; (14ac4 ) 14994: 2118 movs r1, #24 14996: 4628 mov r0, r5 14998: 4798 blx r3 1499a: 4604 mov r4, r0 LV_ASSERT_MEM(ext); 1499c: 47c0 blx r8 1499e: 4680 mov r8, r0 149a0: b960 cbnz r0, 149bc 149a2: 4b41 ldr r3, [pc, #260] ; (14aa8 ) 149a4: 4941 ldr r1, [pc, #260] ; (14aac ) 149a6: 9300 str r3, [sp, #0] 149a8: 2249 movs r2, #73 ; 0x49 149aa: 2003 movs r0, #3 149ac: 4d40 ldr r5, [pc, #256] ; (14ab0 ) 149ae: 47a8 blx r5 149b0: 4840 ldr r0, [pc, #256] ; (14ab4 ) 149b2: 4941 ldr r1, [pc, #260] ; (14ab8 ) 149b4: 4622 mov r2, r4 149b6: 4643 mov r3, r8 149b8: 4788 blx r1 149ba: e7fe b.n 149ba if(ext == NULL) { 149bc: f04f 0800 mov.w r8, #0 149c0: b93c cbnz r4, 149d2 lv_obj_del(img); 149c2: 4628 mov r0, r5 149c4: 4b40 ldr r3, [pc, #256] ; (14ac8 ) 149c6: 4798 blx r3 return NULL; 149c8: 4625 mov r5, r4 } 149ca: 4628 mov r0, r5 149cc: b002 add sp, #8 149ce: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} ext->src_type = LV_IMG_SRC_UNKNOWN; 149d2: 7d23 ldrb r3, [r4, #20] ext->src = NULL; 149d4: f8c4 8000 str.w r8, [r4] ext->src_type = LV_IMG_SRC_UNKNOWN; 149d8: f003 0304 and.w r3, r3, #4 149dc: f043 0303 orr.w r3, r3, #3 149e0: 7523 strb r3, [r4, #20] ext->w = lv_obj_get_width(img); 149e2: 4628 mov r0, r5 149e4: 4b39 ldr r3, [pc, #228] ; (14acc ) 149e6: 4798 blx r3 ext->h = lv_obj_get_height(img); 149e8: 4b39 ldr r3, [pc, #228] ; (14ad0 ) ext->w = lv_obj_get_width(img); 149ea: 8120 strh r0, [r4, #8] ext->h = lv_obj_get_height(img); 149ec: 4628 mov r0, r5 149ee: 4798 blx r3 ext->pivot.y = 0; 149f0: f04f 7380 mov.w r3, #16777216 ; 0x1000000 149f4: 6123 str r3, [r4, #16] ext->auto_size = 1; 149f6: 8aa3 ldrh r3, [r4, #20] lv_obj_set_signal_cb(img, lv_img_signal); 149f8: 4936 ldr r1, [pc, #216] ; (14ad4 ) ext->h = lv_obj_get_height(img); 149fa: 8160 strh r0, [r4, #10] ext->auto_size = 1; 149fc: f443 7382 orr.w r3, r3, #260 ; 0x104 14a00: 82a3 strh r3, [r4, #20] lv_obj_set_signal_cb(img, lv_img_signal); 14a02: 4628 mov r0, r5 14a04: 4b34 ldr r3, [pc, #208] ; (14ad8 ) ext->offset.x = 0; 14a06: f8c4 8004 str.w r8, [r4, #4] ext->angle = 0; 14a0a: f8c4 800c str.w r8, [r4, #12] lv_obj_set_signal_cb(img, lv_img_signal); 14a0e: 4798 blx r3 lv_obj_set_design_cb(img, lv_img_design); 14a10: 4932 ldr r1, [pc, #200] ; (14adc ) 14a12: 4b33 ldr r3, [pc, #204] ; (14ae0 ) 14a14: 4628 mov r0, r5 14a16: 4798 blx r3 if(copy == NULL) { 14a18: b9e6 cbnz r6, 14a54 lv_theme_apply(img, LV_THEME_IMAGE); 14a1a: 4b32 ldr r3, [pc, #200] ; (14ae4 ) 14a1c: 210f movs r1, #15 14a1e: 4628 mov r0, r5 14a20: 4798 blx r3 lv_obj_set_click(img, false); 14a22: 4b31 ldr r3, [pc, #196] ; (14ae8 ) 14a24: 4631 mov r1, r6 14a26: 4628 mov r0, r5 14a28: 4798 blx r3 lv_obj_set_adv_hittest(img, true); /*Images have fast hit-testing*/ 14a2a: 4b30 ldr r3, [pc, #192] ; (14aec ) 14a2c: 2101 movs r1, #1 14a2e: 4628 mov r0, r5 14a30: 4798 blx r3 if(par != NULL) { 14a32: 7d23 ldrb r3, [r4, #20] 14a34: b15f cbz r7, 14a4e ext->auto_size = 1; 14a36: f043 0304 orr.w r3, r3, #4 ext->auto_size = 0; 14a3a: 7523 strb r3, [r4, #20] LV_LOG_INFO("image created"); 14a3c: 4b2c ldr r3, [pc, #176] ; (14af0 ) 14a3e: 9300 str r3, [sp, #0] 14a40: 491a ldr r1, [pc, #104] ; (14aac ) 14a42: 4b19 ldr r3, [pc, #100] ; (14aa8 ) 14a44: 4c1a ldr r4, [pc, #104] ; (14ab0 ) 14a46: 227f movs r2, #127 ; 0x7f 14a48: 2001 movs r0, #1 14a4a: 47a0 blx r4 return img; 14a4c: e7bd b.n 149ca ext->auto_size = 0; 14a4e: f367 0382 bfi r3, r7, #2, #1 14a52: e7f2 b.n 14a3a lv_img_ext_t * copy_ext = lv_obj_get_ext_attr(copy); 14a54: 4b27 ldr r3, [pc, #156] ; (14af4 ) 14a56: 4630 mov r0, r6 14a58: 4798 blx r3 ext->auto_size = copy_ext->auto_size; 14a5a: 7d03 ldrb r3, [r0, #20] 14a5c: 7d22 ldrb r2, [r4, #20] 14a5e: f3c3 0380 ubfx r3, r3, #2, #1 14a62: f363 0282 bfi r2, r3, #2, #1 14a66: 7522 strb r2, [r4, #20] ext->zoom = copy_ext->zoom; 14a68: 8a43 ldrh r3, [r0, #18] 14a6a: 8263 strh r3, [r4, #18] ext->angle = copy_ext->angle; 14a6c: 8983 ldrh r3, [r0, #12] ext->antialias = copy_ext->antialias; 14a6e: 7d42 ldrb r2, [r0, #21] ext->angle = copy_ext->angle; 14a70: 81a3 strh r3, [r4, #12] ext->antialias = copy_ext->antialias; 14a72: 7d63 ldrb r3, [r4, #21] 14a74: f362 0300 bfi r3, r2, #0, #1 14a78: 7563 strb r3, [r4, #21] ext->offset.x = copy_ext->offset.x; 14a7a: f9b0 3004 ldrsh.w r3, [r0, #4] 14a7e: 80a3 strh r3, [r4, #4] ext->offset.y = copy_ext->offset.y; 14a80: f9b0 3006 ldrsh.w r3, [r0, #6] 14a84: 80e3 strh r3, [r4, #6] ext->pivot.x = copy_ext->pivot.x; 14a86: f9b0 300e ldrsh.w r3, [r0, #14] 14a8a: 81e3 strh r3, [r4, #14] ext->pivot.y = copy_ext->pivot.y; 14a8c: f9b0 3010 ldrsh.w r3, [r0, #16] lv_img_set_src(img, copy_ext->src); 14a90: 6801 ldr r1, [r0, #0] ext->pivot.y = copy_ext->pivot.y; 14a92: 8223 strh r3, [r4, #16] lv_img_set_src(img, copy_ext->src); 14a94: 4628 mov r0, r5 14a96: 4b18 ldr r3, [pc, #96] ; (14af8 ) 14a98: 4798 blx r3 lv_obj_refresh_style(img, LV_STYLE_PROP_ALL); 14a9a: 4b18 ldr r3, [pc, #96] ; (14afc ) 14a9c: 21ff movs r1, #255 ; 0xff 14a9e: 4628 mov r0, r5 14aa0: 4798 blx r3 14aa2: e7cb b.n 14a3c 14aa4: 00003311 .word 0x00003311 14aa8: 0002bd44 .word 0x0002bd44 14aac: 0002bbf8 .word 0x0002bbf8 14ab0: 0000eb21 .word 0x0000eb21 14ab4: 0002673e .word 0x0002673e 14ab8: 00001a15 .word 0x00001a15 14abc: 2000d194 .word 0x2000d194 14ac0: 0000418d .word 0x0000418d 14ac4: 000022a5 .word 0x000022a5 14ac8: 0000438d .word 0x0000438d 14acc: 00002619 .word 0x00002619 14ad0: 00002669 .word 0x00002669 14ad4: 00014b05 .word 0x00014b05 14ad8: 00002209 .word 0x00002209 14adc: 00014241 .word 0x00014241 14ae0: 0000225d .word 0x0000225d 14ae4: 0001051d .word 0x0001051d 14ae8: 00002089 .word 0x00002089 14aec: 00002035 .word 0x00002035 14af0: 0002bc9c .word 0x0002bc9c 14af4: 000041d5 .word 0x000041d5 14af8: 000146fd .word 0x000146fd 14afc: 00002fbd .word 0x00002fbd 14b00: 00001a0d .word 0x00001a0d 00014b04 : * @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) { 14b04: e92d 43f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} lv_res_t res; if(sign == LV_SIGNAL_GET_STYLE) { 14b08: 2908 cmp r1, #8 { 14b0a: b085 sub sp, #20 14b0c: 4604 mov r4, r0 14b0e: 4689 mov r9, r1 14b10: 4616 mov r6, r2 if(sign == LV_SIGNAL_GET_STYLE) { 14b12: d110 bne.n 14b36 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) { 14b14: 7813 ldrb r3, [r2, #0] 14b16: b13b cbz r3, 14b28 info->result = lv_img_get_style(img, info->part); 14b18: 2300 movs r3, #0 14b1a: 6053 str r3, [r2, #4] else return ancestor_signal(img, sign, param); 14b1c: 4b83 ldr r3, [pc, #524] ; (14d2c ) 14b1e: 681b ldr r3, [r3, #0] } 14b20: b005 add sp, #20 14b22: e8bd 43f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, lr} else return ancestor_signal(img, sign, param); 14b26: 4718 bx r3 case LV_IMG_PART_MAIN: style_dsc_p = &img->style_list; 14b28: 3428 adds r4, #40 ; 0x28 info->result = lv_img_get_style(img, info->part); 14b2a: 6054 str r4, [r2, #4] if(info->result != NULL) return LV_RES_OK; 14b2c: 2701 movs r7, #1 } 14b2e: 4638 mov r0, r7 14b30: b005 add sp, #20 14b32: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} res = ancestor_signal(img, sign, param); 14b36: 4b7d ldr r3, [pc, #500] ; (14d2c ) 14b38: 681b ldr r3, [r3, #0] 14b3a: 4798 blx r3 if(res != LV_RES_OK) return res; 14b3c: 2801 cmp r0, #1 res = ancestor_signal(img, sign, param); 14b3e: 4607 mov r7, r0 if(res != LV_RES_OK) return res; 14b40: d1f5 bne.n 14b2e if(sign == LV_SIGNAL_GET_TYPE) return lv_obj_handle_get_type_signal(param, LV_OBJX_NAME); 14b42: f1b9 0f07 cmp.w r9, #7 14b46: d106 bne.n 14b56 14b48: 4979 ldr r1, [pc, #484] ; (14d30 ) 14b4a: 4b7a ldr r3, [pc, #488] ; (14d34 ) 14b4c: 4630 mov r0, r6 } 14b4e: b005 add sp, #20 14b50: 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); 14b54: 4718 bx r3 lv_img_ext_t * ext = lv_obj_get_ext_attr(img); 14b56: 4b78 ldr r3, [pc, #480] ; (14d38 ) 14b58: 4620 mov r0, r4 14b5a: 4798 blx r3 14b5c: 4605 mov r5, r0 if(sign == LV_SIGNAL_CLEANUP) { 14b5e: f1b9 0f00 cmp.w r9, #0 14b62: d10f bne.n 14b84 if(ext->src_type == LV_IMG_SRC_FILE || ext->src_type == LV_IMG_SRC_SYMBOL) { 14b64: 7d03 ldrb r3, [r0, #20] 14b66: f003 0303 and.w r3, r3, #3 14b6a: 3b01 subs r3, #1 14b6c: 2b01 cmp r3, #1 14b6e: d8de bhi.n 14b2e lv_mem_free(ext->src); 14b70: 4b72 ldr r3, [pc, #456] ; (14d3c ) 14b72: 6800 ldr r0, [r0, #0] 14b74: 4798 blx r3 ext->src_type = LV_IMG_SRC_UNKNOWN; 14b76: 7d2b ldrb r3, [r5, #20] ext->src = NULL; 14b78: f8c5 9000 str.w r9, [r5] ext->src_type = LV_IMG_SRC_UNKNOWN; 14b7c: f043 0303 orr.w r3, r3, #3 14b80: 752b strb r3, [r5, #20] 14b82: e7d4 b.n 14b2e else if(sign == LV_SIGNAL_STYLE_CHG) { 14b84: f1b9 0f04 cmp.w r9, #4 14b88: d109 bne.n 14b9e if(ext->src_type == LV_IMG_SRC_SYMBOL) { 14b8a: 7d03 ldrb r3, [r0, #20] 14b8c: f003 0303 and.w r3, r3, #3 14b90: 2b02 cmp r3, #2 14b92: d1cc bne.n 14b2e lv_img_set_src(img, ext->src); 14b94: 6801 ldr r1, [r0, #0] 14b96: 4b6a ldr r3, [pc, #424] ; (14d40 ) 14b98: 4620 mov r0, r4 14b9a: 4798 blx r3 14b9c: e7c7 b.n 14b2e else if(sign == LV_SIGNAL_REFR_EXT_DRAW_PAD) { 14b9e: f1b9 0f06 cmp.w r9, #6 14ba2: d16e bne.n 14c82 _LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_ZOOM, transform_zoom, lv_style_int_t, _int, scalar) 14ba4: 4e67 ldr r6, [pc, #412] ; (14d44 ) 14ba6: 2207 movs r2, #7 14ba8: 2100 movs r1, #0 14baa: 4620 mov r0, r4 14bac: 47b0 blx r6 transf_zoom = (transf_zoom * ext->zoom) >> 8; 14bae: f8b5 8012 ldrh.w r8, [r5, #18] _LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_ANGLE, transform_angle, lv_style_int_t, _int, scalar) 14bb2: 464a mov r2, r9 14bb4: fb00 f808 mul.w r8, r0, r8 14bb8: 2100 movs r1, #0 14bba: 4620 mov r0, r4 14bbc: 47b0 blx r6 transf_angle += ext->angle; 14bbe: 89ab ldrh r3, [r5, #12] 14bc0: 4418 add r0, r3 14bc2: b203 sxth r3, r0 transf_zoom = (transf_zoom * ext->zoom) >> 8; 14bc4: ea4f 2828 mov.w r8, r8, asr #8 if(transf_angle || transf_zoom != LV_IMG_ZOOM_NONE) { 14bc8: b923 cbnz r3, 14bd4 14bca: fa0f f288 sxth.w r2, r8 14bce: f5b2 7f80 cmp.w r2, #256 ; 0x100 14bd2: d031 beq.n 14c38 _lv_img_buf_get_transformed_area(&a, ext->w, ext->h, transf_angle, transf_zoom, &ext->pivot); 14bd4: f105 000e add.w r0, r5, #14 14bd8: f9b5 200a ldrsh.w r2, [r5, #10] 14bdc: f9b5 1008 ldrsh.w r1, [r5, #8] 14be0: 9001 str r0, [sp, #4] 14be2: fa1f f088 uxth.w r0, r8 14be6: 9000 str r0, [sp, #0] 14be8: f8df 8164 ldr.w r8, [pc, #356] ; 14d50 14bec: a802 add r0, sp, #8 14bee: 47c0 blx r8 img->ext_draw_pad = LV_MATH_MAX(img->ext_draw_pad, pad_ori - a.x1); 14bf0: f9b4 1032 ldrsh.w r1, [r4, #50] ; 0x32 14bf4: f9bd 3008 ldrsh.w r3, [sp, #8] img->ext_draw_pad = LV_MATH_MAX(img->ext_draw_pad, pad_ori - a.y1); 14bf8: f9bd 200a ldrsh.w r2, [sp, #10] img->ext_draw_pad = LV_MATH_MAX(img->ext_draw_pad, pad_ori + a.x2 - ext->w); 14bfc: f9b5 0008 ldrsh.w r0, [r5, #8] img->ext_draw_pad = LV_MATH_MAX(img->ext_draw_pad, pad_ori - a.x1); 14c00: 1acb subs r3, r1, r3 14c02: 428b cmp r3, r1 14c04: bfb8 it lt 14c06: 460b movlt r3, r1 img->ext_draw_pad = LV_MATH_MAX(img->ext_draw_pad, pad_ori - a.y1); 14c08: 1a8a subs r2, r1, r2 14c0a: b21b sxth r3, r3 14c0c: 4293 cmp r3, r2 14c0e: bfb8 it lt 14c10: 4613 movlt r3, r2 img->ext_draw_pad = LV_MATH_MAX(img->ext_draw_pad, pad_ori + a.x2 - ext->w); 14c12: f9bd 200c ldrsh.w r2, [sp, #12] 14c16: 440a add r2, r1 14c18: b21b sxth r3, r3 14c1a: 1a12 subs r2, r2, r0 14c1c: 4293 cmp r3, r2 14c1e: bfb8 it lt 14c20: 4613 movlt r3, r2 img->ext_draw_pad = LV_MATH_MAX(img->ext_draw_pad, pad_ori + a.y2 - ext->h); 14c22: f9bd 200e ldrsh.w r2, [sp, #14] 14c26: 440a add r2, r1 14c28: f9b5 100a ldrsh.w r1, [r5, #10] 14c2c: b21b sxth r3, r3 14c2e: 1a52 subs r2, r2, r1 14c30: 4293 cmp r3, r2 14c32: bfb8 it lt 14c34: 4613 movlt r3, r2 14c36: 8663 strh r3, [r4, #50] ; 0x32 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar) 14c38: 2212 movs r2, #18 14c3a: 2100 movs r1, #0 14c3c: 4620 mov r0, r4 14c3e: 47b0 blx r6 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar) 14c40: 2213 movs r2, #19 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar) 14c42: 4681 mov r9, r0 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar) 14c44: 2100 movs r1, #0 14c46: 4620 mov r0, r4 14c48: 47b0 blx r6 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar) 14c4a: 2210 movs r2, #16 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar) 14c4c: 4605 mov r5, r0 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar) 14c4e: 2100 movs r1, #0 14c50: 4620 mov r0, r4 14c52: 47b0 blx r6 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar) 14c54: 2211 movs r2, #17 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar) 14c56: 4680 mov r8, r0 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar) 14c58: 2100 movs r1, #0 14c5a: 4620 mov r0, r4 14c5c: 47b0 blx r6 img->ext_draw_pad = LV_MATH_MAX(img->ext_draw_pad, right); 14c5e: 454d cmp r5, r9 14c60: f9b4 3032 ldrsh.w r3, [r4, #50] ; 0x32 14c64: bfb8 it lt 14c66: 464d movlt r5, r9 14c68: b22d sxth r5, r5 img->ext_draw_pad = LV_MATH_MAX(img->ext_draw_pad, top); 14c6a: 42ab cmp r3, r5 14c6c: bfb8 it lt 14c6e: 462b movlt r3, r5 14c70: 4543 cmp r3, r8 14c72: bfb8 it lt 14c74: 4643 movlt r3, r8 img->ext_draw_pad = LV_MATH_MAX(img->ext_draw_pad, bottom); 14c76: b21b sxth r3, r3 14c78: 4298 cmp r0, r3 14c7a: bfb8 it lt 14c7c: 4618 movlt r0, r3 14c7e: 8660 strh r0, [r4, #50] ; 0x32 14c80: e755 b.n 14b2e else if(sign == LV_SIGNAL_HIT_TEST) { 14c82: f1b9 0f0a cmp.w r9, #10 14c86: f47f af52 bne.w 14b2e if(ext->zoom != 256 && ext->angle == 0) { 14c8a: f8b0 c012 ldrh.w ip, [r0, #18] 14c8e: f5bc 7f80 cmp.w ip, #256 ; 0x100 14c92: d045 beq.n 14d20 14c94: 8983 ldrh r3, [r0, #12] 14c96: 2b00 cmp r3, #0 14c98: d142 bne.n 14d20 14c9a: 8aa5 ldrh r5, [r4, #20] 14c9c: 8a23 ldrh r3, [r4, #16] return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); 14c9e: 8a62 ldrh r2, [r4, #18] { uint8_t * d8 = (uint8_t *)dst; const uint8_t * s8 = (const uint8_t *)src; while(len) { *d8 = *s8; 14ca0: 6920 ldr r0, [r4, #16] 14ca2: 6961 ldr r1, [r4, #20] return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); 14ca4: 3501 adds r5, #1 14ca6: 1aed subs r5, r5, r3 return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); 14ca8: 8ae3 ldrh r3, [r4, #22] 14caa: 3301 adds r3, #1 lv_coord_t scaled_width = (origin_width * ext->zoom + 255) / 256; 14cac: b22d sxth r5, r5 14cae: 1a9b subs r3, r3, r2 14cb0: aa02 add r2, sp, #8 14cb2: c203 stmia r2!, {r0, r1} 14cb4: fb0c f205 mul.w r2, ip, r5 14cb8: 32ff adds r2, #255 ; 0xff 14cba: bf48 it mi 14cbc: 32ff addmi r2, #255 ; 0xff lv_coord_t width_offset = (origin_width - scaled_width) / 2; 14cbe: f342 220f sbfx r2, r2, #8, #16 14cc2: 1aad subs r5, r5, r2 14cc4: eb05 75d5 add.w r5, r5, r5, lsr #31 coords.x1 += width_offset; 14cc8: f8bd 2008 ldrh.w r2, [sp, #8] info->result = _lv_area_is_point_on(&coords, info->point, 0); 14ccc: 6831 ldr r1, [r6, #0] coords.x1 += width_offset; 14cce: f3c5 054f ubfx r5, r5, #1, #16 14cd2: 442a add r2, r5 14cd4: f8ad 2008 strh.w r2, [sp, #8] coords.x2 -= width_offset; 14cd8: f8bd 200c ldrh.w r2, [sp, #12] lv_coord_t scaled_height = (origin_height * ext->zoom + 255) / 256; 14cdc: b21b sxth r3, r3 14cde: fb03 fc0c mul.w ip, r3, ip coords.x2 -= width_offset; 14ce2: 1b52 subs r2, r2, r5 14ce4: f8ad 200c strh.w r2, [sp, #12] lv_coord_t scaled_height = (origin_height * ext->zoom + 255) / 256; 14ce8: f11c 02ff adds.w r2, ip, #255 ; 0xff 14cec: bf48 it mi 14cee: f50c 72ff addmi.w r2, ip, #510 ; 0x1fe lv_coord_t height_offset = (origin_height - scaled_height) / 2; 14cf2: f342 220f sbfx r2, r2, #8, #16 14cf6: 1a9b subs r3, r3, r2 14cf8: eb03 73d3 add.w r3, r3, r3, lsr #31 coords.y1 += height_offset; 14cfc: f8bd 200a ldrh.w r2, [sp, #10] 14d00: f3c3 034f ubfx r3, r3, #1, #16 14d04: 441a add r2, r3 14d06: f8ad 200a strh.w r2, [sp, #10] coords.y2 -= height_offset; 14d0a: f8bd 200e ldrh.w r2, [sp, #14] 14d0e: 1ad3 subs r3, r2, r3 14d10: f8ad 300e strh.w r3, [sp, #14] info->result = _lv_area_is_point_on(&coords, info->point, 0); 14d14: 2200 movs r2, #0 14d16: 4b0c ldr r3, [pc, #48] ; (14d48 ) 14d18: a802 add r0, sp, #8 14d1a: 4798 blx r3 info->result = lv_obj_is_point_on_coords(img, info->point); 14d1c: 7130 strb r0, [r6, #4] 14d1e: e706 b.n 14b2e 14d20: 6831 ldr r1, [r6, #0] 14d22: 4b0a ldr r3, [pc, #40] ; (14d4c ) 14d24: 4620 mov r0, r4 14d26: 4798 blx r3 14d28: e7f8 b.n 14d1c 14d2a: bf00 nop 14d2c: 2000d194 .word 0x2000d194 14d30: 0002bcaa .word 0x0002bcaa 14d34: 000044b9 .word 0x000044b9 14d38: 000041d5 .word 0x000041d5 14d3c: 0000ed1d .word 0x0000ed1d 14d40: 000146fd .word 0x000146fd 14d44: 0000393d .word 0x0000393d 14d48: 0000e151 .word 0x0000e151 14d4c: 0000447d .word 0x0000447d 14d50: 0000c28d .word 0x0000c28d 00014d54 : * 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) { 14d54: b510 push {r4, lr} lv_label_ext_t * ext = lv_obj_get_ext_attr(label); 14d56: 4b08 ldr r3, [pc, #32] ; (14d78 ) 14d58: 4798 blx r3 if(ext->dot_tmp_alloc && ext->dot.tmp_ptr) { 14d5a: 7c43 ldrb r3, [r0, #17] 14d5c: 07db lsls r3, r3, #31 lv_label_ext_t * ext = lv_obj_get_ext_attr(label); 14d5e: 4604 mov r4, r0 if(ext->dot_tmp_alloc && ext->dot.tmp_ptr) { 14d60: d503 bpl.n 14d6a 14d62: 6840 ldr r0, [r0, #4] 14d64: b108 cbz r0, 14d6a lv_mem_free(ext->dot.tmp_ptr); 14d66: 4b05 ldr r3, [pc, #20] ; (14d7c ) 14d68: 4798 blx r3 } ext->dot_tmp_alloc = false; 14d6a: 7c63 ldrb r3, [r4, #17] 14d6c: f36f 0300 bfc r3, #0, #1 14d70: 7463 strb r3, [r4, #17] ext->dot.tmp_ptr = NULL; 14d72: 2300 movs r3, #0 14d74: 6063 str r3, [r4, #4] } 14d76: bd10 pop {r4, pc} 14d78: 000041d5 .word 0x000041d5 14d7c: 0000ed1d .word 0x0000ed1d 00014d80 : { 14d80: b5f8 push {r3, r4, r5, r6, r7, lr} lv_label_ext_t * ext = lv_obj_get_ext_attr(label); 14d82: 4e1a ldr r6, [pc, #104] ; (14dec ) { 14d84: 4605 mov r5, r0 lv_label_ext_t * ext = lv_obj_get_ext_attr(label); 14d86: 47b0 blx r6 if(ext->long_mode != LV_LABEL_LONG_DOT) return; 14d88: 7c03 ldrb r3, [r0, #16] 14d8a: f003 0307 and.w r3, r3, #7 14d8e: 2b02 cmp r3, #2 lv_label_ext_t * ext = lv_obj_get_ext_attr(label); 14d90: 4604 mov r4, r0 if(ext->long_mode != LV_LABEL_LONG_DOT) return; 14d92: d128 bne.n 14de6 if(ext->dot_end == LV_LABEL_DOT_END_INV) return; 14d94: 8901 ldrh r1, [r0, #8] 14d96: f64f 73ff movw r3, #65535 ; 0xffff 14d9a: 4299 cmp r1, r3 14d9c: d023 beq.n 14de6 uint32_t byte_i = _lv_txt_encoded_get_byte_id(ext->text, letter_i); 14d9e: 4b14 ldr r3, [pc, #80] ; (14df0 ) 14da0: 6800 ldr r0, [r0, #0] 14da2: 681b ldr r3, [r3, #0] 14da4: 3903 subs r1, #3 14da6: 4798 blx r3 14da8: 4607 mov r7, r0 lv_label_ext_t * ext = lv_obj_get_ext_attr(label); 14daa: 4628 mov r0, r5 14dac: 47b0 blx r6 if(ext->dot_tmp_alloc) { 14dae: 7c42 ldrb r2, [r0, #17] 14db0: 07d2 lsls r2, r2, #31 lv_label_ext_t * ext = lv_obj_get_ext_attr(label); 14db2: 4603 mov r3, r0 return ext->dot.tmp_ptr; 14db4: bf4c ite mi 14db6: 6843 ldrmi r3, [r0, #4] return ext->dot.tmp; 14db8: 3304 addpl r3, #4 while(ext->text[byte_i + i] != '\0') { 14dba: 2200 movs r2, #0 14dbc: fa57 f182 uxtab r1, r7, r2 14dc0: 6826 ldr r6, [r4, #0] 14dc2: b2d0 uxtb r0, r2 14dc4: f816 e001 ldrb.w lr, [r6, r1] ext->text[byte_i + i] = dot_tmp[i]; 14dc8: 5c18 ldrb r0, [r3, r0] while(ext->text[byte_i + i] != '\0') { 14dca: eb06 0c01 add.w ip, r6, r1 14dce: 3201 adds r2, #1 14dd0: f1be 0f00 cmp.w lr, #0 14dd4: d108 bne.n 14de8 lv_label_dot_tmp_free(label); 14dd6: 4b07 ldr r3, [pc, #28] ; (14df4 ) ext->text[byte_i + i] = dot_tmp[i]; 14dd8: f88c 0000 strb.w r0, [ip] lv_label_dot_tmp_free(label); 14ddc: 4628 mov r0, r5 14dde: 4798 blx r3 ext->dot_end = LV_LABEL_DOT_END_INV; 14de0: f64f 73ff movw r3, #65535 ; 0xffff 14de4: 8123 strh r3, [r4, #8] } 14de6: bdf8 pop {r3, r4, r5, r6, r7, pc} ext->text[byte_i + i] = dot_tmp[i]; 14de8: 5470 strb r0, [r6, r1] i++; 14dea: e7e7 b.n 14dbc 14dec: 000041d5 .word 0x000041d5 14df0: 20000050 .word 0x20000050 14df4: 00014d55 .word 0x00014d55 00014df8 : { 14df8: b570 push {r4, r5, r6, lr} lv_label_ext_t * ext = lv_obj_get_ext_attr(label); 14dfa: 4b05 ldr r3, [pc, #20] ; (14e10 ) { 14dfc: 4604 mov r4, r0 14dfe: 460d mov r5, r1 lv_label_ext_t * ext = lv_obj_get_ext_attr(label); 14e00: 4798 blx r3 lv_obj_invalidate(label); 14e02: 4b04 ldr r3, [pc, #16] ; (14e14 ) ext->offset.y = y; 14e04: 81c5 strh r5, [r0, #14] lv_obj_invalidate(label); 14e06: 4620 mov r0, r4 } 14e08: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr} lv_obj_invalidate(label); 14e0c: 4718 bx r3 14e0e: bf00 nop 14e10: 000041d5 .word 0x000041d5 14e14: 000029b1 .word 0x000029b1 00014e18 : { 14e18: b570 push {r4, r5, r6, lr} lv_label_ext_t * ext = lv_obj_get_ext_attr(label); 14e1a: 4b05 ldr r3, [pc, #20] ; (14e30 ) { 14e1c: 4604 mov r4, r0 14e1e: 460d mov r5, r1 lv_label_ext_t * ext = lv_obj_get_ext_attr(label); 14e20: 4798 blx r3 lv_obj_invalidate(label); 14e22: 4b04 ldr r3, [pc, #16] ; (14e34 ) ext->offset.x = x; 14e24: 8185 strh r5, [r0, #12] lv_obj_invalidate(label); 14e26: 4620 mov r0, r4 } 14e28: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr} lv_obj_invalidate(label); 14e2c: 4718 bx r3 14e2e: bf00 nop 14e30: 000041d5 .word 0x000041d5 14e34: 000029b1 .word 0x000029b1 00014e38 : { 14e38: b57f push {r0, r1, r2, r3, r4, r5, r6, lr} lv_label_ext_t * ext = lv_obj_get_ext_attr(label); 14e3a: 4b1a ldr r3, [pc, #104] ; (14ea4 ) { 14e3c: 9103 str r1, [sp, #12] 14e3e: 4616 mov r6, r2 14e40: 4604 mov r4, r0 lv_label_ext_t * ext = lv_obj_get_ext_attr(label); 14e42: 4798 blx r3 lv_label_dot_tmp_free(label); /* Deallocate any existing space */ 14e44: 4b18 ldr r3, [pc, #96] ; (14ea8 ) lv_label_ext_t * ext = lv_obj_get_ext_attr(label); 14e46: 4605 mov r5, r0 lv_label_dot_tmp_free(label); /* Deallocate any existing space */ 14e48: 4620 mov r0, r4 14e4a: 4798 blx r3 if(len > sizeof(char *)) { 14e4c: 2e04 cmp r6, #4 14e4e: 9903 ldr r1, [sp, #12] 14e50: d91e bls.n 14e90 ext->dot.tmp_ptr = lv_mem_alloc(len + 1); 14e52: 4b16 ldr r3, [pc, #88] ; (14eac ) 14e54: 1c70 adds r0, r6, #1 14e56: 4798 blx r3 if(ext->dot.tmp_ptr == NULL) { 14e58: 9903 ldr r1, [sp, #12] ext->dot.tmp_ptr = lv_mem_alloc(len + 1); 14e5a: 6068 str r0, [r5, #4] 14e5c: 4604 mov r4, r0 if(ext->dot.tmp_ptr == NULL) { 14e5e: b958 cbnz r0, 14e78 LV_LOG_ERROR("Failed to allocate memory for dot_tmp_ptr"); 14e60: 4b13 ldr r3, [pc, #76] ; (14eb0 ) 14e62: 9300 str r3, [sp, #0] 14e64: 2003 movs r0, #3 14e66: 4b13 ldr r3, [pc, #76] ; (14eb4 ) 14e68: 4913 ldr r1, [pc, #76] ; (14eb8 ) 14e6a: 4d14 ldr r5, [pc, #80] ; (14ebc ) 14e6c: f240 52b5 movw r2, #1461 ; 0x5b5 14e70: 47a8 blx r5 return false; 14e72: 4620 mov r0, r4 } 14e74: b004 add sp, #16 14e76: bd70 pop {r4, r5, r6, pc} _lv_memcpy(ext->dot.tmp_ptr, data, len); 14e78: 4b11 ldr r3, [pc, #68] ; (14ec0 ) 14e7a: 4632 mov r2, r6 14e7c: 4798 blx r3 ext->dot.tmp_ptr[len] = '\0'; 14e7e: 686b ldr r3, [r5, #4] 14e80: 2200 movs r2, #0 14e82: 559a strb r2, [r3, r6] ext->dot_tmp_alloc = true; 14e84: 7c6b ldrb r3, [r5, #17] 14e86: f043 0301 orr.w r3, r3, #1 14e8a: 746b strb r3, [r5, #17] return true; 14e8c: 2001 movs r0, #1 14e8e: e7f1 b.n 14e74 ext->dot_tmp_alloc = false; 14e90: 7c6b ldrb r3, [r5, #17] 14e92: f36f 0300 bfc r3, #0, #1 14e96: 746b strb r3, [r5, #17] _lv_memcpy(ext->dot.tmp, data, len); 14e98: 4632 mov r2, r6 14e9a: 4b09 ldr r3, [pc, #36] ; (14ec0 ) 14e9c: 1d28 adds r0, r5, #4 14e9e: 4798 blx r3 14ea0: e7f4 b.n 14e8c 14ea2: bf00 nop 14ea4: 000041d5 .word 0x000041d5 14ea8: 00014d55 .word 0x00014d55 14eac: 0000ec65 .word 0x0000ec65 14eb0: 0002bdf5 .word 0x0002bdf5 14eb4: 0002be3b .word 0x0002be3b 14eb8: 0002bdc1 .word 0x0002bdc1 14ebc: 0000eb21 .word 0x0000eb21 14ec0: 0000ee69 .word 0x0000ee69 00014ec4 : static void get_txt_coords(const lv_obj_t * label, lv_area_t * area) { 14ec4: e92d 43f8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, lr} lv_obj_get_coords(label, area); 14ec8: 4b13 ldr r3, [pc, #76] ; (14f18 ) _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar) 14eca: f8df 8050 ldr.w r8, [pc, #80] ; 14f1c { 14ece: 4605 mov r5, r0 14ed0: 460c mov r4, r1 lv_obj_get_coords(label, area); 14ed2: 4798 blx r3 14ed4: 2212 movs r2, #18 14ed6: 2100 movs r1, #0 14ed8: 4628 mov r0, r5 14eda: 47c0 blx r8 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar) 14edc: 2213 movs r2, #19 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar) 14ede: 4607 mov r7, r0 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar) 14ee0: 2100 movs r1, #0 14ee2: 4628 mov r0, r5 14ee4: 47c0 blx r8 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar) 14ee6: 2210 movs r2, #16 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar) 14ee8: 4681 mov r9, r0 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar) 14eea: 2100 movs r1, #0 14eec: 4628 mov r0, r5 14eee: 47c0 blx r8 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar) 14ef0: 2211 movs r2, #17 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar) 14ef2: 4606 mov r6, r0 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar) 14ef4: 2100 movs r1, #0 14ef6: 4628 mov r0, r5 14ef8: 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; 14efa: 8823 ldrh r3, [r4, #0] 14efc: 441f add r7, r3 area->x2 -= right; 14efe: 88a3 ldrh r3, [r4, #4] area->x1 += left; 14f00: 8027 strh r7, [r4, #0] area->x2 -= right; 14f02: eba3 0309 sub.w r3, r3, r9 14f06: 80a3 strh r3, [r4, #4] area->y1 += top; 14f08: 8863 ldrh r3, [r4, #2] 14f0a: 441e add r6, r3 area->y2 -= bottom; 14f0c: 88e3 ldrh r3, [r4, #6] area->y1 += top; 14f0e: 8066 strh r6, [r4, #2] area->y2 -= bottom; 14f10: 1a18 subs r0, r3, r0 14f12: 80e0 strh r0, [r4, #6] } 14f14: e8bd 83f8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, pc} 14f18: 00002501 .word 0x00002501 14f1c: 0000393d .word 0x0000393d 00014f20 : { 14f20: b573 push {r0, r1, r4, r5, r6, lr} LV_ASSERT_OBJ(label, LV_OBJX_NAME); 14f22: 4b13 ldr r3, [pc, #76] ; (14f70 ) { 14f24: 4604 mov r4, r0 14f26: 460d mov r5, r1 LV_ASSERT_OBJ(label, LV_OBJX_NAME); 14f28: 4798 blx r3 14f2a: 4606 mov r6, r0 14f2c: b968 cbnz r0, 14f4a 14f2e: 4b11 ldr r3, [pc, #68] ; (14f74 ) 14f30: 4911 ldr r1, [pc, #68] ; (14f78 ) 14f32: 9300 str r3, [sp, #0] 14f34: f44f 72c4 mov.w r2, #392 ; 0x188 14f38: 2003 movs r0, #3 14f3a: 4d10 ldr r5, [pc, #64] ; (14f7c ) 14f3c: 47a8 blx r5 14f3e: 4810 ldr r0, [pc, #64] ; (14f80 ) 14f40: 4910 ldr r1, [pc, #64] ; (14f84 ) 14f42: 4622 mov r2, r4 14f44: 4633 mov r3, r6 14f46: 4788 blx r1 14f48: e7fe b.n 14f48 lv_label_ext_t * ext = lv_obj_get_ext_attr(label); 14f4a: 4b0f ldr r3, [pc, #60] ; (14f88 ) 14f4c: 4620 mov r0, r4 14f4e: 4798 blx r3 if(ext->align == align) return; 14f50: 7c03 ldrb r3, [r0, #16] 14f52: f3c3 1201 ubfx r2, r3, #4, #2 14f56: 42aa cmp r2, r5 14f58: d008 beq.n 14f6c ext->align = align; 14f5a: f365 1305 bfi r3, r5, #4, #2 14f5e: 7403 strb r3, [r0, #16] lv_obj_invalidate(label); /*Enough to invalidate because alignment is only drawing related 14f60: 4b0a ldr r3, [pc, #40] ; (14f8c ) 14f62: 4620 mov r0, r4 } 14f64: b002 add sp, #8 14f66: e8bd 4070 ldmia.w sp!, {r4, r5, r6, lr} lv_obj_invalidate(label); /*Enough to invalidate because alignment is only drawing related 14f6a: 4718 bx r3 } 14f6c: b002 add sp, #8 14f6e: bd70 pop {r4, r5, r6, pc} 14f70: 00001a0d .word 0x00001a0d 14f74: 0002be50 .word 0x0002be50 14f78: 0002bdc1 .word 0x0002bdc1 14f7c: 0000eb21 .word 0x0000eb21 14f80: 0002683f .word 0x0002683f 14f84: 00001a15 .word 0x00001a15 14f88: 000041d5 .word 0x000041d5 14f8c: 000029b1 .word 0x000029b1 00014f90 : { 14f90: b573 push {r0, r1, r4, r5, r6, lr} LV_ASSERT_OBJ(label, LV_OBJX_NAME); 14f92: 4b0c ldr r3, [pc, #48] ; (14fc4 ) { 14f94: 4604 mov r4, r0 LV_ASSERT_OBJ(label, LV_OBJX_NAME); 14f96: 4798 blx r3 14f98: 4605 mov r5, r0 14f9a: b968 cbnz r0, 14fb8 14f9c: 4b0a ldr r3, [pc, #40] ; (14fc8 ) 14f9e: 490b ldr r1, [pc, #44] ; (14fcc ) 14fa0: 9300 str r3, [sp, #0] 14fa2: f44f 72f2 mov.w r2, #484 ; 0x1e4 14fa6: 2003 movs r0, #3 14fa8: 4e09 ldr r6, [pc, #36] ; (14fd0 ) 14faa: 47b0 blx r6 14fac: 4809 ldr r0, [pc, #36] ; (14fd4 ) 14fae: 490a ldr r1, [pc, #40] ; (14fd8 ) 14fb0: 4622 mov r2, r4 14fb2: 462b mov r3, r5 14fb4: 4788 blx r1 14fb6: e7fe b.n 14fb6 lv_label_ext_t * ext = lv_obj_get_ext_attr(label); 14fb8: 4b08 ldr r3, [pc, #32] ; (14fdc ) 14fba: 4620 mov r0, r4 14fbc: 4798 blx r3 } 14fbe: 6800 ldr r0, [r0, #0] 14fc0: b002 add sp, #8 14fc2: bd70 pop {r4, r5, r6, pc} 14fc4: 00001a0d .word 0x00001a0d 14fc8: 0002be99 .word 0x0002be99 14fcc: 0002bdc1 .word 0x0002bdc1 14fd0: 0000eb21 .word 0x0000eb21 14fd4: 0002683f .word 0x0002683f 14fd8: 00001a15 .word 0x00001a15 14fdc: 000041d5 .word 0x000041d5 00014fe0 : { 14fe0: b573 push {r0, r1, r4, r5, r6, lr} LV_ASSERT_OBJ(label, LV_OBJX_NAME); 14fe2: 4b0d ldr r3, [pc, #52] ; (15018 ) { 14fe4: 4604 mov r4, r0 LV_ASSERT_OBJ(label, LV_OBJX_NAME); 14fe6: 4798 blx r3 14fe8: 4605 mov r5, r0 14fea: b968 cbnz r0, 15008 14fec: 4b0b ldr r3, [pc, #44] ; (1501c ) 14fee: 490c ldr r1, [pc, #48] ; (15020 ) 14ff0: 9300 str r3, [sp, #0] 14ff2: f44f 72f9 mov.w r2, #498 ; 0x1f2 14ff6: 2003 movs r0, #3 14ff8: 4e0a ldr r6, [pc, #40] ; (15024 ) 14ffa: 47b0 blx r6 14ffc: 480a ldr r0, [pc, #40] ; (15028 ) 14ffe: 490b ldr r1, [pc, #44] ; (1502c ) 15000: 4622 mov r2, r4 15002: 462b mov r3, r5 15004: 4788 blx r1 15006: e7fe b.n 15006 lv_label_ext_t * ext = lv_obj_get_ext_attr(label); 15008: 4b09 ldr r3, [pc, #36] ; (15030 ) 1500a: 4620 mov r0, r4 1500c: 4798 blx r3 return ext->long_mode; 1500e: 7c00 ldrb r0, [r0, #16] } 15010: f000 0007 and.w r0, r0, #7 15014: b002 add sp, #8 15016: bd70 pop {r4, r5, r6, pc} 15018: 00001a0d .word 0x00001a0d 1501c: 0002beab .word 0x0002beab 15020: 0002bdc1 .word 0x0002bdc1 15024: 0000eb21 .word 0x0000eb21 15028: 0002683f .word 0x0002683f 1502c: 00001a15 .word 0x00001a15 15030: 000041d5 .word 0x000041d5 00015034 : { 15034: b573 push {r0, r1, r4, r5, r6, lr} LV_ASSERT_OBJ(label, LV_OBJX_NAME); 15036: 4b0f ldr r3, [pc, #60] ; (15074 ) { 15038: 4604 mov r4, r0 LV_ASSERT_OBJ(label, LV_OBJX_NAME); 1503a: 4798 blx r3 1503c: 4605 mov r5, r0 1503e: b968 cbnz r0, 1505c 15040: 4b0d ldr r3, [pc, #52] ; (15078 ) 15042: 490e ldr r1, [pc, #56] ; (1507c ) 15044: 9300 str r3, [sp, #0] 15046: f240 12ff movw r2, #511 ; 0x1ff 1504a: 2003 movs r0, #3 1504c: 4e0c ldr r6, [pc, #48] ; (15080 ) 1504e: 47b0 blx r6 15050: 480c ldr r0, [pc, #48] ; (15084 ) 15052: 490d ldr r1, [pc, #52] ; (15088 ) 15054: 4622 mov r2, r4 15056: 462b mov r3, r5 15058: 4788 blx r1 1505a: e7fe b.n 1505a lv_label_ext_t * ext = lv_obj_get_ext_attr(label); 1505c: 4b0b ldr r3, [pc, #44] ; (1508c ) 1505e: 4620 mov r0, r4 15060: 4798 blx r3 lv_label_align_t align = ext->align; 15062: 7c00 ldrb r0, [r0, #16] 15064: f3c0 1001 ubfx r0, r0, #4, #2 align = LV_LABEL_ALIGN_LEFT; 15068: 2803 cmp r0, #3 } 1506a: bf08 it eq 1506c: 2000 moveq r0, #0 1506e: b002 add sp, #8 15070: bd70 pop {r4, r5, r6, pc} 15072: bf00 nop 15074: 00001a0d .word 0x00001a0d 15078: 0002bec2 .word 0x0002bec2 1507c: 0002bdc1 .word 0x0002bdc1 15080: 0000eb21 .word 0x0000eb21 15084: 0002683f .word 0x0002683f 15088: 00001a15 .word 0x00001a15 1508c: 000041d5 .word 0x000041d5 00015090 : { 15090: b573 push {r0, r1, r4, r5, r6, lr} LV_ASSERT_OBJ(label, LV_OBJX_NAME); 15092: 4b0d ldr r3, [pc, #52] ; (150c8 ) { 15094: 4604 mov r4, r0 LV_ASSERT_OBJ(label, LV_OBJX_NAME); 15096: 4798 blx r3 15098: 4605 mov r5, r0 1509a: b968 cbnz r0, 150b8 1509c: 4b0b ldr r3, [pc, #44] ; (150cc ) 1509e: 490c ldr r1, [pc, #48] ; (150d0 ) 150a0: 9300 str r3, [sp, #0] 150a2: f240 221b movw r2, #539 ; 0x21b 150a6: 2003 movs r0, #3 150a8: 4e0a ldr r6, [pc, #40] ; (150d4 ) 150aa: 47b0 blx r6 150ac: 480a ldr r0, [pc, #40] ; (150d8 ) 150ae: 490b ldr r1, [pc, #44] ; (150dc ) 150b0: 4622 mov r2, r4 150b2: 462b mov r3, r5 150b4: 4788 blx r1 150b6: e7fe b.n 150b6 lv_label_ext_t * ext = lv_obj_get_ext_attr(label); 150b8: 4b09 ldr r3, [pc, #36] ; (150e0 ) 150ba: 4620 mov r0, r4 150bc: 4798 blx r3 return ext->recolor == 0 ? false : true; 150be: 7c00 ldrb r0, [r0, #16] } 150c0: f3c0 1080 ubfx r0, r0, #6, #1 150c4: b002 add sp, #8 150c6: bd70 pop {r4, r5, r6, pc} 150c8: 00001a0d .word 0x00001a0d 150cc: 0002bed5 .word 0x0002bed5 150d0: 0002bdc1 .word 0x0002bdc1 150d4: 0000eb21 .word 0x0000eb21 150d8: 0002683f .word 0x0002683f 150dc: 00001a15 .word 0x00001a15 150e0: 000041d5 .word 0x000041d5 000150e4 : { 150e4: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} 150e8: ed2d 8b02 vpush {d8} 150ec: b08b sub sp, #44 ; 0x2c LV_ASSERT_OBJ(label, LV_OBJX_NAME); 150ee: 4e93 ldr r6, [pc, #588] ; (1533c ) { 150f0: 9102 str r1, [sp, #8] 150f2: 4604 mov r4, r0 LV_ASSERT_OBJ(label, LV_OBJX_NAME); 150f4: 47b0 blx r6 150f6: 4605 mov r5, r0 150f8: b968 cbnz r0, 15116 150fa: 4b91 ldr r3, [pc, #580] ; (15340 ) 150fc: 4991 ldr r1, [pc, #580] ; (15344 ) 150fe: 9300 str r3, [sp, #0] 15100: f240 22a5 movw r2, #677 ; 0x2a5 15104: 2003 movs r0, #3 15106: 4e90 ldr r6, [pc, #576] ; (15348 ) 15108: 47b0 blx r6 1510a: 4890 ldr r0, [pc, #576] ; (1534c ) 1510c: 4990 ldr r1, [pc, #576] ; (15350 ) 1510e: 4622 mov r2, r4 15110: 462b mov r3, r5 15112: 4788 blx r1 15114: e7fe b.n 15114 LV_ASSERT_NULL(pos); 15116: 9802 ldr r0, [sp, #8] 15118: 47b0 blx r6 1511a: 4605 mov r5, r0 1511c: b968 cbnz r0, 1513a 1511e: 4b88 ldr r3, [pc, #544] ; (15340 ) 15120: 4988 ldr r1, [pc, #544] ; (15344 ) 15122: 9300 str r3, [sp, #0] 15124: f240 22a6 movw r2, #678 ; 0x2a6 15128: 2003 movs r0, #3 1512a: 4c87 ldr r4, [pc, #540] ; (15348 ) 1512c: 47a0 blx r4 1512e: 9a02 ldr r2, [sp, #8] 15130: 4886 ldr r0, [pc, #536] ; (1534c ) 15132: 4987 ldr r1, [pc, #540] ; (15350 ) 15134: 462b mov r3, r5 15136: 4788 blx r1 15138: e7fe b.n 15138 get_txt_coords(label, &txt_coords); 1513a: a908 add r1, sp, #32 1513c: 4620 mov r0, r4 1513e: 4b85 ldr r3, [pc, #532] ; (15354 ) _LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LINE_SPACE, text_line_space, lv_style_int_t, _int, scalar) 15140: 4f85 ldr r7, [pc, #532] ; (15358 ) 15142: 4798 blx r3 const char * txt = lv_label_get_text(label); 15144: 4b85 ldr r3, [pc, #532] ; (1535c ) 15146: 4620 mov r0, r4 15148: 4798 blx r3 lv_label_ext_t * ext = lv_obj_get_ext_attr(label); 1514a: 4b85 ldr r3, [pc, #532] ; (15360 ) const char * txt = lv_label_get_text(label); 1514c: 4680 mov r8, r0 lv_label_ext_t * ext = lv_obj_get_ext_attr(label); 1514e: 4620 mov r0, r4 15150: 4798 blx r3 return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); 15152: f8bd 3024 ldrh.w r3, [sp, #36] ; 0x24 15156: f8bd 2020 ldrh.w r2, [sp, #32] 1515a: 3301 adds r3, #1 1515c: 1a9b subs r3, r3, r2 1515e: b21b sxth r3, r3 15160: 4606 mov r6, r0 _LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar) 15162: f248 028e movw r2, #32910 ; 0x808e 15166: 2100 movs r1, #0 15168: 4620 mov r0, r4 1516a: ee08 3a90 vmov s17, r3 1516e: 4b7d ldr r3, [pc, #500] ; (15364 ) 15170: 4798 blx r3 _LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LINE_SPACE, text_line_space, lv_style_int_t, _int, scalar) 15172: f248 0281 movw r2, #32897 ; 0x8081 _LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar) 15176: 4682 mov sl, r0 _LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LINE_SPACE, text_line_space, lv_style_int_t, _int, scalar) 15178: 2100 movs r1, #0 1517a: 4620 mov r0, r4 1517c: 47b8 blx r7 _LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LETTER_SPACE, text_letter_space, lv_style_int_t, _int, scalar) 1517e: f248 0280 movw r2, #32896 ; 0x8080 15182: 2100 movs r1, #0 _LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LINE_SPACE, text_line_space, lv_style_int_t, _int, scalar) 15184: 4605 mov r5, r0 _LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LETTER_SPACE, text_letter_space, lv_style_int_t, _int, scalar) 15186: 4620 mov r0, r4 15188: 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; 1518a: f9ba 3008 ldrsh.w r3, [sl, #8] 1518e: 9303 str r3, [sp, #12] if(ext->recolor != 0) flag |= LV_TXT_FLAG_RECOLOR; 15190: 7c33 ldrb r3, [r6, #16] lv_txt_flag_t flag = LV_TXT_FLAG_NONE; 15192: f3c3 1680 ubfx r6, r3, #6, #1 if(ext->expand != 0) flag |= LV_TXT_FLAG_EXPAND; 15196: 061a lsls r2, r3, #24 15198: bf48 it mi 1519a: f046 0602 orrmi.w r6, r6, #2 1519e: ee08 0a10 vmov s16, r0 if(ext->long_mode == LV_LABEL_LONG_EXPAND) flag |= LV_TXT_FLAG_FIT; 151a2: 075b lsls r3, r3, #29 lv_label_align_t align = lv_label_get_align(label); 151a4: 4620 mov r0, r4 151a6: 4b70 ldr r3, [pc, #448] ; (15368 ) if(ext->long_mode == LV_LABEL_LONG_EXPAND) flag |= LV_TXT_FLAG_FIT; 151a8: bf08 it eq 151aa: f046 0610 orreq.w r6, r6, #16 lv_label_align_t align = lv_label_get_align(label); 151ae: 4798 blx r3 if(align == LV_LABEL_ALIGN_CENTER) flag |= LV_TXT_FLAG_CENTER; 151b0: 2801 cmp r0, #1 lv_label_align_t align = lv_label_get_align(label); 151b2: 4604 mov r4, r0 if(align == LV_LABEL_ALIGN_CENTER) flag |= LV_TXT_FLAG_CENTER; 151b4: d108 bne.n 151c8 151b6: f046 0604 orr.w r6, r6, #4 y += letter_height + line_space; 151ba: 9b03 ldr r3, [sp, #12] new_line_start += _lv_txt_get_next_line(&txt[line_start], font, letter_space, max_w, flag); 151bc: f04f 0b00 mov.w fp, #0 y += letter_height + line_space; 151c0: 442b add r3, r5 new_line_start += _lv_txt_get_next_line(&txt[line_start], font, letter_space, max_w, flag); 151c2: 465f mov r7, fp y += letter_height + line_space; 151c4: 9304 str r3, [sp, #16] 151c6: e059 b.n 1527c if(align == LV_LABEL_ALIGN_RIGHT) flag |= LV_TXT_FLAG_RIGHT; 151c8: 2802 cmp r0, #2 151ca: d1f6 bne.n 151ba 151cc: f046 0608 orr.w r6, r6, #8 151d0: e7f3 b.n 151ba new_line_start += _lv_txt_get_next_line(&txt[line_start], font, letter_space, max_w, flag); 151d2: ee18 3a90 vmov r3, s17 151d6: ee18 2a10 vmov r2, s16 151da: 4d64 ldr r5, [pc, #400] ; (1536c ) 151dc: 9600 str r6, [sp, #0] 151de: 4651 mov r1, sl 151e0: 4648 mov r0, r9 151e2: 47a8 blx r5 if(pos->y <= y + letter_height) { 151e4: 9b02 ldr r3, [sp, #8] 151e6: f9b3 2002 ldrsh.w r2, [r3, #2] 151ea: 9b03 ldr r3, [sp, #12] 151ec: 445b add r3, fp 151ee: 429a cmp r2, r3 new_line_start += _lv_txt_get_next_line(&txt[line_start], font, letter_space, max_w, flag); 151f0: eb00 0507 add.w r5, r0, r7 if(pos->y <= y + letter_height) { 151f4: dc3d bgt.n 15272 letter = _lv_txt_encoded_prev(txt, &tmp); 151f6: 4b5e ldr r3, [pc, #376] ; (15370 ) uint32_t tmp = new_line_start; 151f8: 9507 str r5, [sp, #28] letter = _lv_txt_encoded_prev(txt, &tmp); 151fa: 681b ldr r3, [r3, #0] 151fc: a907 add r1, sp, #28 151fe: 4640 mov r0, r8 15200: 4798 blx r3 if(letter != '\n' && txt[new_line_start] == '\0') new_line_start++; 15202: 280a cmp r0, #10 15204: d003 beq.n 1520e 15206: f818 3005 ldrb.w r3, [r8, r5] 1520a: b903 cbnz r3, 1520e 1520c: 3501 adds r5, #1 if(align == LV_LABEL_ALIGN_CENTER) { 1520e: 2c01 cmp r4, #1 15210: d13c bne.n 1528c line_w = _lv_txt_get_width(bidi_txt, new_line_start - line_start, font, letter_space, flag); 15212: 1be9 subs r1, r5, r7 15214: ee18 3a10 vmov r3, s16 15218: 4c56 ldr r4, [pc, #344] ; (15374 ) 1521a: 9600 str r6, [sp, #0] 1521c: 4652 mov r2, sl 1521e: b289 uxth r1, r1 15220: 4648 mov r0, r9 15222: 47a0 blx r4 15224: f8bd 3024 ldrh.w r3, [sp, #36] ; 0x24 15228: f8bd 2020 ldrh.w r2, [sp, #32] 1522c: 3301 adds r3, #1 1522e: 1a9b subs r3, r3, r2 x += lv_area_get_width(&txt_coords) / 2 - line_w / 2; 15230: f3c3 32c0 ubfx r2, r3, #15, #1 15234: eb00 74d0 add.w r4, r0, r0, lsr #31 15238: fa02 f383 sxtah r3, r2, r3 1523c: 1064 asrs r4, r4, #1 1523e: ebc4 0463 rsb r4, r4, r3, asr #1 x += lv_area_get_width(&txt_coords) - line_w; 15242: b224 sxth r4, r4 lv_txt_cmd_state_t cmd_state = LV_TXT_CMD_STATE_WAIT; 15244: 2300 movs r3, #0 15246: f88d 301b strb.w r3, [sp, #27] uint32_t i = 0; 1524a: 9307 str r3, [sp, #28] if(new_line_start > 0) { 1524c: 2d00 cmp r5, #0 1524e: d16d bne.n 1532c logical_pos = _lv_txt_encoded_get_char_id(bidi_txt, i); 15250: 4d49 ldr r5, [pc, #292] ; (15378 ) 15252: 9907 ldr r1, [sp, #28] 15254: 682b ldr r3, [r5, #0] 15256: 4648 mov r0, r9 15258: 4798 blx r3 return logical_pos + _lv_txt_encoded_get_char_id(txt, line_start); 1525a: 682b ldr r3, [r5, #0] logical_pos = _lv_txt_encoded_get_char_id(bidi_txt, i); 1525c: 4604 mov r4, r0 return logical_pos + _lv_txt_encoded_get_char_id(txt, line_start); 1525e: 4639 mov r1, r7 15260: 4640 mov r0, r8 15262: 4798 blx r3 15264: 4420 add r0, r4 } 15266: b280 uxth r0, r0 15268: b00b add sp, #44 ; 0x2c 1526a: ecbd 8b02 vpop {d8} 1526e: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} y += letter_height + line_space; 15272: 9b04 ldr r3, [sp, #16] 15274: 449b add fp, r3 15276: fa0f fb8b sxth.w fp, fp new_line_start += _lv_txt_get_next_line(&txt[line_start], font, letter_space, max_w, flag); 1527a: 462f mov r7, r5 while(txt[line_start] != '\0') { 1527c: f818 3007 ldrb.w r3, [r8, r7] 15280: eb08 0907 add.w r9, r8, r7 15284: 2b00 cmp r3, #0 15286: d1a4 bne.n 151d2 15288: 463d mov r5, r7 1528a: e7c0 b.n 1520e else if(align == LV_LABEL_ALIGN_RIGHT) { 1528c: 2c02 cmp r4, #2 1528e: d110 bne.n 152b2 line_w = _lv_txt_get_width(bidi_txt, new_line_start - line_start, font, letter_space, flag); 15290: 1be9 subs r1, r5, r7 15292: ee18 3a10 vmov r3, s16 15296: 4c37 ldr r4, [pc, #220] ; (15374 ) 15298: 9600 str r6, [sp, #0] 1529a: 4652 mov r2, sl 1529c: b289 uxth r1, r1 1529e: 4648 mov r0, r9 152a0: 47a0 blx r4 152a2: f8bd 4024 ldrh.w r4, [sp, #36] ; 0x24 152a6: f8bd 3020 ldrh.w r3, [sp, #32] 152aa: 3401 adds r4, #1 152ac: 1ae4 subs r4, r4, r3 x += lv_area_get_width(&txt_coords) - line_w; 152ae: 1a24 subs r4, r4, r0 152b0: e7c7 b.n 15242 lv_coord_t x = 0; 152b2: 2400 movs r4, #0 152b4: e7c6 b.n 15244 if(_lv_txt_is_cmd(&cmd_state, bidi_txt[i]) != false) { 152b6: 9b07 ldr r3, [sp, #28] 152b8: 9005 str r0, [sp, #20] 152ba: f819 1003 ldrb.w r1, [r9, r3] 152be: 4b2f ldr r3, [pc, #188] ; (1537c ) 152c0: f10d 001b add.w r0, sp, #27 152c4: 4798 blx r3 152c6: 9a05 ldr r2, [sp, #20] 152c8: b198 cbz r0, 152f2 while(i + line_start < new_line_start) { 152ca: 9b07 ldr r3, [sp, #28] 152cc: 443b add r3, r7 152ce: 429d cmp r5, r3 152d0: d9be bls.n 15250 uint32_t letter = _lv_txt_encoded_next(bidi_txt, &i); 152d2: f8db 3000 ldr.w r3, [fp] 152d6: a907 add r1, sp, #28 152d8: 4648 mov r0, r9 152da: 4798 blx r3 152dc: 4606 mov r6, r0 uint32_t letter_next = _lv_txt_encoded_next(&bidi_txt[i], NULL); 152de: 9807 ldr r0, [sp, #28] 152e0: f8db 3000 ldr.w r3, [fp] 152e4: 2100 movs r1, #0 152e6: 4448 add r0, r9 152e8: 4798 blx r3 if((flag & LV_TXT_FLAG_RECOLOR) != 0) { 152ea: 9b04 ldr r3, [sp, #16] uint32_t letter_next = _lv_txt_encoded_next(&bidi_txt[i], NULL); 152ec: 4602 mov r2, r0 if((flag & LV_TXT_FLAG_RECOLOR) != 0) { 152ee: 2b00 cmp r3, #0 152f0: d1e1 bne.n 152b6 x += lv_font_get_glyph_width(font, letter, letter_next); 152f2: 4b23 ldr r3, [pc, #140] ; (15380 ) 152f4: 4631 mov r1, r6 152f6: 4650 mov r0, sl 152f8: 4798 blx r3 if(pos->x < x || i + line_start == new_line_start || txt[i + line_start] == '\0') { 152fa: 9b02 ldr r3, [sp, #8] x += lv_font_get_glyph_width(font, letter, letter_next); 152fc: 4420 add r0, r4 if(pos->x < x || i + line_start == new_line_start || txt[i + line_start] == '\0') { 152fe: f9b3 3000 ldrsh.w r3, [r3] x += lv_font_get_glyph_width(font, letter, letter_next); 15302: b284 uxth r4, r0 if(pos->x < x || i + line_start == new_line_start || txt[i + line_start] == '\0') { 15304: b200 sxth r0, r0 15306: 4283 cmp r3, r0 15308: da02 bge.n 15310 i = i_act; 1530a: 9b03 ldr r3, [sp, #12] 1530c: 9307 str r3, [sp, #28] break; 1530e: e79f b.n 15250 if(pos->x < x || i + line_start == new_line_start || txt[i + line_start] == '\0') { 15310: 9b07 ldr r3, [sp, #28] 15312: 18fa adds r2, r7, r3 15314: 4295 cmp r5, r2 15316: d0f8 beq.n 1530a 15318: f818 2002 ldrb.w r2, [r8, r2] 1531c: 2a00 cmp r2, #0 1531e: d0f4 beq.n 1530a x += letter_space; 15320: ee18 2a10 vmov r2, s16 15324: 4414 add r4, r2 15326: b224 sxth r4, r4 i_act = i; 15328: 9303 str r3, [sp, #12] 1532a: e7ce b.n 152ca uint32_t i_act = i; 1532c: 9303 str r3, [sp, #12] if((flag & LV_TXT_FLAG_RECOLOR) != 0) { 1532e: f006 0301 and.w r3, r6, #1 uint32_t letter = _lv_txt_encoded_next(bidi_txt, &i); 15332: f8df b050 ldr.w fp, [pc, #80] ; 15384 if((flag & LV_TXT_FLAG_RECOLOR) != 0) { 15336: 9304 str r3, [sp, #16] 15338: e7c7 b.n 152ca 1533a: bf00 nop 1533c: 00001a0d .word 0x00001a0d 15340: 0002bf1a .word 0x0002bf1a 15344: 0002bdc1 .word 0x0002bdc1 15348: 0000eb21 .word 0x0000eb21 1534c: 0002683f .word 0x0002683f 15350: 00001a15 .word 0x00001a15 15354: 00014ec5 .word 0x00014ec5 15358: 0000393d .word 0x0000393d 1535c: 00014f91 .word 0x00014f91 15360: 000041d5 .word 0x000041d5 15364: 00003af5 .word 0x00003af5 15368: 00015035 .word 0x00015035 1536c: 000101fd .word 0x000101fd 15370: 2000005c .word 0x2000005c 15374: 00010155 .word 0x00010155 15378: 20000058 .word 0x20000058 1537c: 0001011d .word 0x0001011d 15380: 0000d3a1 .word 0x0000d3a1 15384: 2000004c .word 0x2000004c 00015388 : { 15388: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} lv_label_ext_t * ext = lv_obj_get_ext_attr(label); 1538c: 4b8d ldr r3, [pc, #564] ; (155c4 ) { 1538e: b09b sub sp, #108 ; 0x6c 15390: 4604 mov r4, r0 lv_label_ext_t * ext = lv_obj_get_ext_attr(label); 15392: 4798 blx r3 if(ext->text == NULL) return; 15394: 6803 ldr r3, [r0, #0] lv_label_ext_t * ext = lv_obj_get_ext_attr(label); 15396: 4605 mov r5, r0 if(ext->text == NULL) return; 15398: 2b00 cmp r3, #0 1539a: d062 beq.n 15462 get_txt_coords(label, &txt_coords); 1539c: 4b8a ldr r3, [pc, #552] ; (155c8 ) _LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LINE_SPACE, text_line_space, lv_style_int_t, _int, scalar) 1539e: f8df 8258 ldr.w r8, [pc, #600] ; 155f8 153a2: a908 add r1, sp, #32 153a4: 4620 mov r0, r4 153a6: 4798 blx r3 153a8: f8bd a024 ldrh.w sl, [sp, #36] ; 0x24 153ac: f8bd 3020 ldrh.w r3, [sp, #32] 153b0: f10a 0a01 add.w sl, sl, #1 153b4: ebaa 0a03 sub.w sl, sl, r3 _LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar) 153b8: f248 028e movw r2, #32910 ; 0x808e 153bc: 4b83 ldr r3, [pc, #524] ; (155cc ) 153be: 2100 movs r1, #0 153c0: 4620 mov r0, r4 153c2: 4798 blx r3 _LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LINE_SPACE, text_line_space, lv_style_int_t, _int, scalar) 153c4: f248 0281 movw r2, #32897 ; 0x8081 _LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_FONT, text_font, const lv_font_t *, _ptr, scalar) 153c8: 4606 mov r6, r0 _LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LINE_SPACE, text_line_space, lv_style_int_t, _int, scalar) 153ca: 2100 movs r1, #0 153cc: 4620 mov r0, r4 153ce: 47c0 blx r8 _LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LETTER_SPACE, text_letter_space, lv_style_int_t, _int, scalar) 153d0: 2100 movs r1, #0 _LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LINE_SPACE, text_line_space, lv_style_int_t, _int, scalar) 153d2: 4607 mov r7, r0 _LV_OBJ_STYLE_SET_GET_DECLARE(TEXT_LETTER_SPACE, text_letter_space, lv_style_int_t, _int, scalar) 153d4: f248 0280 movw r2, #32896 ; 0x8080 153d8: 4620 mov r0, r4 153da: 47c0 blx r8 if(ext->recolor != 0) flag |= LV_TXT_FLAG_RECOLOR; 153dc: 7c2a ldrb r2, [r5, #16] _lv_txt_get_size(&size, ext->text, font, letter_space, line_space, max_w, flag); 153de: 9700 str r7, [sp, #0] lv_txt_flag_t flag = LV_TXT_FLAG_NONE; 153e0: f3c2 1380 ubfx r3, r2, #6, #1 if(ext->expand != 0) flag |= LV_TXT_FLAG_EXPAND; 153e4: 0611 lsls r1, r2, #24 153e6: bf48 it mi 153e8: f043 0302 orrmi.w r3, r3, #2 if(ext->long_mode == LV_LABEL_LONG_EXPAND) flag |= LV_TXT_FLAG_FIT; 153ec: 0752 lsls r2, r2, #29 153ee: bf08 it eq 153f0: f043 0310 orreq.w r3, r3, #16 153f4: fa0f fa8a sxth.w sl, sl _lv_txt_get_size(&size, ext->text, font, letter_space, line_space, max_w, flag); 153f8: e9cd a301 strd sl, r3, [sp, #4] 153fc: 4681 mov r9, r0 153fe: 6829 ldr r1, [r5, #0] 15400: f8df a1f8 ldr.w sl, [pc, #504] ; 155fc 15404: 4603 mov r3, r0 15406: 4632 mov r2, r6 15408: a806 add r0, sp, #24 1540a: 47d0 blx sl if(ext->long_mode == LV_LABEL_LONG_EXPAND) { 1540c: 7c29 ldrb r1, [r5, #16] 1540e: f011 0107 ands.w r1, r1, #7 15412: d129 bne.n 15468 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar) 15414: 2212 movs r2, #18 15416: 4620 mov r0, r4 15418: 9105 str r1, [sp, #20] 1541a: 47c0 blx r8 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar) 1541c: 9905 ldr r1, [sp, #20] _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_LEFT, pad_left, lv_style_int_t, _int, scalar) 1541e: 4605 mov r5, r0 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_RIGHT, pad_right, lv_style_int_t, _int, scalar) 15420: 2213 movs r2, #19 15422: 4620 mov r0, r4 15424: 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); 15426: f8bd 3018 ldrh.w r3, [sp, #24] _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar) 1542a: 9905 ldr r1, [sp, #20] 1542c: 4428 add r0, r5 1542e: 4418 add r0, r3 15430: f8ad 0018 strh.w r0, [sp, #24] 15434: 2210 movs r2, #16 15436: 4620 mov r0, r4 15438: 47c0 blx r8 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar) 1543a: 9905 ldr r1, [sp, #20] _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar) 1543c: 4605 mov r5, r0 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar) 1543e: 2211 movs r2, #17 15440: 4620 mov r0, r4 15442: 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); 15444: f8bd 301a ldrh.w r3, [sp, #26] lv_obj_set_size(label, size.x, size.y); 15448: 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); 1544c: 182a adds r2, r5, r0 1544e: 441a add r2, r3 15450: b212 sxth r2, r2 lv_obj_set_size(label, size.x, size.y); 15452: 4b5f ldr r3, [pc, #380] ; (155d0 ) size.y += lv_obj_get_style_pad_top(label, LV_LABEL_PART_MAIN) + lv_obj_get_style_pad_bottom(label, LV_LABEL_PART_MAIN); 15454: f8ad 201a strh.w r2, [sp, #26] lv_obj_set_size(label, size.x, size.y); 15458: 4620 mov r0, r4 1545a: 4798 blx r3 lv_obj_invalidate(label); 1545c: 4b5d ldr r3, [pc, #372] ; (155d4 ) 1545e: 4620 mov r0, r4 15460: 4798 blx r3 } 15462: b01b add sp, #108 ; 0x6c 15464: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} else if(ext->long_mode == LV_LABEL_LONG_SROLL) { 15468: 3901 subs r1, #1 1546a: 2903 cmp r1, #3 1546c: d8f6 bhi.n 1545c 1546e: e8df f011 tbh [pc, r1, lsl #1] 15472: 01c8 .short 0x01c8 15474: 0004013c .word 0x0004013c 15478: 00c7 .short 0x00c7 lv_anim_init(&a); 1547a: 4b57 ldr r3, [pc, #348] ; (155d8 ) 1547c: a80a add r0, sp, #40 ; 0x28 1547e: 4798 blx r3 lv_anim_set_playback_delay(&a, (((lv_font_get_glyph_width(font, ' ', ' ') + letter_space) * 1000) / 15480: 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; 15482: f64f 73ff movw r3, #65535 ; 0xffff 15486: 4611 mov r1, r2 15488: f8ad 305c strh.w r3, [sp, #92] ; 0x5c a->var = var; 1548c: 940a str r4, [sp, #40] ; 0x28 1548e: 4b53 ldr r3, [pc, #332] ; (155dc ) 15490: 4630 mov r0, r6 15492: 4798 blx r3 15494: f44f 727a mov.w r2, #1000 ; 0x3e8 15498: eb00 0309 add.w r3, r0, r9 ext->anim_speed) * 1549c: 896f ldrh r7, [r5, #10] if(size.x > lv_area_get_width(&txt_coords)) { 1549e: f9bd 1018 ldrsh.w r1, [sp, #24] lv_anim_set_playback_delay(&a, (((lv_font_get_glyph_width(font, ' ', ' ') + letter_space) * 1000) / 154a2: 4353 muls r3, r2 154a4: fb93 f3f7 sdiv r3, r3, r7 154a8: eb03 0343 add.w r3, r3, r3, lsl #1 a->playback_delay = delay; 154ac: b29b uxth r3, r3 154ae: 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; 154b0: 9316 str r3, [sp, #88] ; 0x58 154b2: f8bd 3024 ldrh.w r3, [sp, #36] ; 0x24 154b6: f8bd 2020 ldrh.w r2, [sp, #32] 154ba: 3301 adds r3, #1 154bc: 1a9b subs r3, r3, r2 154be: b29a uxth r2, r3 if(size.x > lv_area_get_width(&txt_coords)) { 154c0: b21b sxth r3, r3 154c2: 4299 cmp r1, r3 154c4: dd74 ble.n 155b0 lv_anim_set_values(&a, 0, lv_area_get_width(&txt_coords) - size.x); 154c6: 1a52 subs r2, r2, r1 a->exec_cb = exec_cb; 154c8: f8df 8124 ldr.w r8, [pc, #292] ; 155f0 lv_anim_set_time(&a, lv_anim_speed_to_time(ext->anim_speed, a.start, a.end)); 154cc: 4b44 ldr r3, [pc, #272] ; (155e0 ) 154ce: f8cd 802c str.w r8, [sp, #44] ; 0x2c a->start = start; 154d2: 2100 movs r1, #0 lv_anim_set_values(&a, 0, lv_area_get_width(&txt_coords) - size.x); 154d4: b212 sxth r2, r2 a->end = end; 154d6: 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)); 154da: 4638 mov r0, r7 154dc: 4798 blx r3 lv_anim_t * anim_cur = lv_anim_get(label, (lv_anim_exec_xcb_t)lv_label_set_offset_x); 154de: 4b41 ldr r3, [pc, #260] ; (155e4 ) a->time = duration; 154e0: 9012 str r0, [sp, #72] ; 0x48 lv_anim_set_time(&a, lv_anim_speed_to_time(ext->anim_speed, a.start, a.end)); 154e2: 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); 154e4: 4641 mov r1, r8 154e6: 4620 mov r0, r4 154e8: 4798 blx r3 if(anim_cur) { 154ea: 2800 cmp r0, #0 154ec: d05e beq.n 155ac act_time = anim_cur->act_time; 154ee: 6a43 ldr r3, [r0, #36] ; 0x24 playback_now = anim_cur->playback_now; 154f0: f890 003c ldrb.w r0, [r0, #60] ; 0x3c 154f4: f000 0001 and.w r0, r0, #1 if(act_time < a.time) { 154f8: 9a12 ldr r2, [sp, #72] ; 0x48 154fa: 429a cmp r2, r3 154fc: dd11 ble.n 15522 a.act_time = act_time; /*To keep the old position*/ 154fe: 9313 str r3, [sp, #76] ; 0x4c a.early_apply = 0; 15500: f89d 305e ldrb.w r3, [sp, #94] ; 0x5e 15504: f36f 0300 bfc r3, #0, #1 15508: f88d 305e strb.w r3, [sp, #94] ; 0x5e if(playback_now) { 1550c: b148 cbz r0, 15522 a.playback_now = 1; 1550e: f89d 3064 ldrb.w r3, [sp, #100] ; 0x64 15512: f043 0301 orr.w r3, r3, #1 15516: f88d 3064 strb.w r3, [sp, #100] ; 0x64 a.start = a.end; 1551a: e9dd 3210 ldrd r3, r2, [sp, #64] ; 0x40 a.end = tmp; 1551e: e9cd 2310 strd r2, r3, [sp, #64] ; 0x40 lv_anim_start(&a); 15522: 4b31 ldr r3, [pc, #196] ; (155e8 ) 15524: a80a add r0, sp, #40 ; 0x28 15526: 4798 blx r3 hor_anim = true; 15528: 2701 movs r7, #1 return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); 1552a: f8bd 3026 ldrh.w r3, [sp, #38] ; 0x26 1552e: f8bd 2022 ldrh.w r2, [sp, #34] ; 0x22 if(size.y > lv_area_get_height(&txt_coords) && hor_anim == false) { 15532: f9bd 101a ldrsh.w r1, [sp, #26] 15536: 3301 adds r3, #1 15538: 1a9b subs r3, r3, r2 1553a: b29a uxth r2, r3 1553c: b21b sxth r3, r3 1553e: 4299 cmp r1, r3 15540: f340 80cc ble.w 156dc 15544: 2f00 cmp r7, #0 15546: f040 80c9 bne.w 156dc lv_anim_set_values(&a, 0, lv_area_get_height(&txt_coords) - size.y - (lv_font_get_line_height(font))); 1554a: 8933 ldrh r3, [r6, #8] a->exec_cb = exec_cb; 1554c: 4e27 ldr r6, [pc, #156] ; (155ec ) lv_anim_set_time(&a, lv_anim_speed_to_time(ext->anim_speed, a.start, a.end)); 1554e: 8968 ldrh r0, [r5, #10] 15550: 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))); 15552: 1a52 subs r2, r2, r1 15554: 1ad2 subs r2, r2, r3 15556: b212 sxth r2, r2 lv_anim_set_time(&a, lv_anim_speed_to_time(ext->anim_speed, a.start, a.end)); 15558: 4b21 ldr r3, [pc, #132] ; (155e0 ) 1555a: 4639 mov r1, r7 a->end = end; 1555c: e9cd 7210 strd r7, r2, [sp, #64] ; 0x40 15560: 4798 blx r3 lv_anim_t * anim_cur = lv_anim_get(label, (lv_anim_exec_xcb_t)lv_label_set_offset_y); 15562: 4b20 ldr r3, [pc, #128] ; (155e4 ) a->time = duration; 15564: 9012 str r0, [sp, #72] ; 0x48 lv_anim_set_time(&a, lv_anim_speed_to_time(ext->anim_speed, a.start, a.end)); 15566: 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); 15568: 4631 mov r1, r6 1556a: 4620 mov r0, r4 1556c: 4798 blx r3 if(anim_cur) { 1556e: b330 cbz r0, 155be playback_now = anim_cur->playback_now; 15570: f890 703c ldrb.w r7, [r0, #60] ; 0x3c act_time = anim_cur->act_time; 15574: 6a43 ldr r3, [r0, #36] ; 0x24 playback_now = anim_cur->playback_now; 15576: f007 0701 and.w r7, r7, #1 if(act_time < a.time) { 1557a: 9a12 ldr r2, [sp, #72] ; 0x48 1557c: 429a cmp r2, r3 1557e: dd11 ble.n 155a4 a.act_time = act_time; /*To keep the old position*/ 15580: 9313 str r3, [sp, #76] ; 0x4c a.early_apply = 0; 15582: f89d 305e ldrb.w r3, [sp, #94] ; 0x5e 15586: f36f 0300 bfc r3, #0, #1 1558a: f88d 305e strb.w r3, [sp, #94] ; 0x5e if(playback_now) { 1558e: b14f cbz r7, 155a4 a.playback_now = 1; 15590: f89d 3064 ldrb.w r3, [sp, #100] ; 0x64 15594: f043 0301 orr.w r3, r3, #1 15598: f88d 3064 strb.w r3, [sp, #100] ; 0x64 a.start = a.end; 1559c: e9dd 3210 ldrd r3, r2, [sp, #64] ; 0x40 a.end = tmp; 155a0: e9cd 2310 strd r2, r3, [sp, #64] ; 0x40 lv_anim_start(&a); 155a4: 4b10 ldr r3, [pc, #64] ; (155e8 ) 155a6: a80a add r0, sp, #40 ; 0x28 155a8: 4798 blx r3 if(size.y > lv_area_get_height(&txt_coords) && hor_anim == false) { 155aa: e757 b.n 1545c int32_t act_time = 0; 155ac: 4603 mov r3, r0 155ae: e7a3 b.n 154f8 lv_anim_del(label, (lv_anim_exec_xcb_t)lv_label_set_offset_x); 155b0: 490f ldr r1, [pc, #60] ; (155f0 ) 155b2: 4b10 ldr r3, [pc, #64] ; (155f4 ) 155b4: 4620 mov r0, r4 ext->offset.x = 0; 155b6: 2700 movs r7, #0 lv_anim_del(label, (lv_anim_exec_xcb_t)lv_label_set_offset_x); 155b8: 4798 blx r3 ext->offset.x = 0; 155ba: 81af strh r7, [r5, #12] 155bc: e7b5 b.n 1552a int32_t act_time = 0; 155be: 463b mov r3, r7 155c0: e7db b.n 1557a 155c2: bf00 nop 155c4: 000041d5 .word 0x000041d5 155c8: 00014ec5 .word 0x00014ec5 155cc: 00003af5 .word 0x00003af5 155d0: 0000370d .word 0x0000370d 155d4: 000029b1 .word 0x000029b1 155d8: 0000dea5 .word 0x0000dea5 155dc: 0000d3a1 .word 0x0000d3a1 155e0: 0000e039 .word 0x0000e039 155e4: 0000e005 .word 0x0000e005 155e8: 0000df4d .word 0x0000df4d 155ec: 00014df9 .word 0x00014df9 155f0: 00014e19 .word 0x00014e19 155f4: 0000dedd .word 0x0000dedd 155f8: 0000393d .word 0x0000393d 155fc: 000103d5 .word 0x000103d5 lv_anim_init(&a); 15600: 4b8a ldr r3, [pc, #552] ; (1582c ) 15602: a80a add r0, sp, #40 ; 0x28 15604: 4798 blx r3 a->repeat_cnt = cnt; 15606: f64f 73ff movw r3, #65535 ; 0xffff 1560a: f8ad 305c strh.w r3, [sp, #92] ; 0x5c return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); 1560e: f8bd 3024 ldrh.w r3, [sp, #36] ; 0x24 15612: f8bd 2020 ldrh.w r2, [sp, #32] a->var = var; 15616: 940a str r4, [sp, #40] ; 0x28 15618: 3301 adds r3, #1 1561a: 1a9b subs r3, r3, r2 if(size.x > lv_area_get_width(&txt_coords)) { 1561c: f9bd 2018 ldrsh.w r2, [sp, #24] 15620: b21b sxth r3, r3 15622: 429a cmp r2, r3 15624: dd53 ble.n 156ce lv_anim_set_values(&a, 0, -size.x - lv_font_get_glyph_width(font, ' ', ' ') * LV_LABEL_WAIT_CHAR_COUNT); 15626: 2220 movs r2, #32 15628: 4611 mov r1, r2 1562a: 4b81 ldr r3, [pc, #516] ; (15830 ) a->exec_cb = exec_cb; 1562c: 4f81 ldr r7, [pc, #516] ; (15834 ) 1562e: 4630 mov r0, r6 15630: 4798 blx r3 15632: ebc0 3380 rsb r3, r0, r0, lsl #14 15636: eb00 0283 add.w r2, r0, r3, lsl #2 1563a: f8bd 3018 ldrh.w r3, [sp, #24] lv_anim_set_time(&a, lv_anim_speed_to_time(ext->anim_speed, a.start, a.end)); 1563e: 8968 ldrh r0, [r5, #10] 15640: 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); 15642: 1ad2 subs r2, r2, r3 a->start = start; 15644: 2100 movs r1, #0 15646: b212 sxth r2, r2 a->end = end; 15648: 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)); 1564c: 4b7a ldr r3, [pc, #488] ; (15838 ) 1564e: 4798 blx r3 lv_anim_t * anim_cur = lv_anim_get(label, (lv_anim_exec_xcb_t)lv_label_set_offset_x); 15650: 4b7a ldr r3, [pc, #488] ; (1583c ) a->time = duration; 15652: 9012 str r0, [sp, #72] ; 0x48 15654: 4639 mov r1, r7 15656: 4620 mov r0, r4 15658: 4798 blx r3 int32_t act_time = anim_cur ? anim_cur->act_time : 0; 1565a: b100 cbz r0, 1565e 1565c: 6a40 ldr r0, [r0, #36] ; 0x24 if(act_time < a.time) { 1565e: 9b12 ldr r3, [sp, #72] ; 0x48 15660: 4283 cmp r3, r0 a.early_apply = 0; 15662: bfc1 itttt gt 15664: f89d 305e ldrbgt.w r3, [sp, #94] ; 0x5e a.act_time = act_time; /*To keep the old position*/ 15668: 9013 strgt r0, [sp, #76] ; 0x4c a.early_apply = 0; 1566a: f36f 0300 bfcgt r3, #0, #1 1566e: f88d 305e strbgt.w r3, [sp, #94] ; 0x5e lv_anim_start(&a); 15672: a80a add r0, sp, #40 ; 0x28 15674: 4b72 ldr r3, [pc, #456] ; (15840 ) 15676: 4798 blx r3 hor_anim = true; 15678: 2701 movs r7, #1 return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); 1567a: f8bd 3026 ldrh.w r3, [sp, #38] ; 0x26 1567e: f8bd 1022 ldrh.w r1, [sp, #34] ; 0x22 if(size.y > lv_area_get_height(&txt_coords) && hor_anim == false) { 15682: f9bd 201a ldrsh.w r2, [sp, #26] 15686: 3301 adds r3, #1 15688: 1a5b subs r3, r3, r1 1568a: b21b sxth r3, r3 1568c: 429a cmp r2, r3 1568e: dd25 ble.n 156dc 15690: bb27 cbnz r7, 156dc lv_anim_set_values(&a, 0, -size.y - (lv_font_get_line_height(font))); 15692: 8933 ldrh r3, [r6, #8] a->exec_cb = exec_cb; 15694: 4e6b ldr r6, [pc, #428] ; (15844 ) lv_anim_set_time(&a, lv_anim_speed_to_time(ext->anim_speed, a.start, a.end)); 15696: 8968 ldrh r0, [r5, #10] 15698: 960b str r6, [sp, #44] ; 0x2c lv_anim_set_values(&a, 0, -size.y - (lv_font_get_line_height(font))); 1569a: 441a add r2, r3 1569c: 4252 negs r2, r2 1569e: b212 sxth r2, r2 lv_anim_set_time(&a, lv_anim_speed_to_time(ext->anim_speed, a.start, a.end)); 156a0: 4b65 ldr r3, [pc, #404] ; (15838 ) 156a2: 4639 mov r1, r7 a->end = end; 156a4: e9cd 7210 strd r7, r2, [sp, #64] ; 0x40 156a8: 4798 blx r3 lv_anim_t * anim_cur = lv_anim_get(label, (lv_anim_exec_xcb_t)lv_label_set_offset_y); 156aa: 4b64 ldr r3, [pc, #400] ; (1583c ) a->time = duration; 156ac: 9012 str r0, [sp, #72] ; 0x48 156ae: 4631 mov r1, r6 156b0: 4620 mov r0, r4 156b2: 4798 blx r3 int32_t act_time = anim_cur ? anim_cur->act_time : 0; 156b4: b100 cbz r0, 156b8 156b6: 6a47 ldr r7, [r0, #36] ; 0x24 if(act_time < a.time) { 156b8: 9b12 ldr r3, [sp, #72] ; 0x48 156ba: 42bb cmp r3, r7 a.early_apply = 0; 156bc: bfc1 itttt gt 156be: f89d 305e ldrbgt.w r3, [sp, #94] ; 0x5e a.act_time = act_time; /*To keep the old position*/ 156c2: 9713 strgt r7, [sp, #76] ; 0x4c a.early_apply = 0; 156c4: f36f 0300 bfcgt r3, #0, #1 156c8: f88d 305e strbgt.w r3, [sp, #94] ; 0x5e 156cc: e76a b.n 155a4 lv_anim_del(label, (lv_anim_exec_xcb_t)lv_label_set_offset_x); 156ce: 4959 ldr r1, [pc, #356] ; (15834 ) 156d0: 4b5d ldr r3, [pc, #372] ; (15848 ) 156d2: 4620 mov r0, r4 ext->offset.x = 0; 156d4: 2700 movs r7, #0 lv_anim_del(label, (lv_anim_exec_xcb_t)lv_label_set_offset_x); 156d6: 4798 blx r3 ext->offset.x = 0; 156d8: 81af strh r7, [r5, #12] 156da: e7ce b.n 1567a lv_anim_del(label, (lv_anim_exec_xcb_t)lv_label_set_offset_y); 156dc: 4b5a ldr r3, [pc, #360] ; (15848 ) 156de: 4959 ldr r1, [pc, #356] ; (15844 ) 156e0: 4620 mov r0, r4 156e2: 4798 blx r3 ext->offset.y = 0; 156e4: 2300 movs r3, #0 156e6: 81eb strh r3, [r5, #14] 156e8: e6b8 b.n 1545c 156ea: f8bd 3026 ldrh.w r3, [sp, #38] ; 0x26 156ee: f8bd 2022 ldrh.w r2, [sp, #34] ; 0x22 156f2: 3301 adds r3, #1 156f4: 1a9b subs r3, r3, r2 if(size.y <= lv_area_get_height(&txt_coords)) { /*No dots are required, the text is short enough*/ 156f6: f9bd 201a ldrsh.w r2, [sp, #26] 156fa: b21b sxth r3, r3 156fc: 429a cmp r2, r3 156fe: dc03 bgt.n 15708 ext->dot_end = LV_LABEL_DOT_END_INV; 15700: f64f 73ff movw r3, #65535 ; 0xffff 15704: 812b strh r3, [r5, #8] 15706: e6a9 b.n 1545c else if(_lv_txt_get_encoded_length(ext->text) <= LV_LABEL_DOT_NUM) { /*Don't turn to dots all the characters*/ 15708: 4b50 ldr r3, [pc, #320] ; (1584c ) 1570a: 6828 ldr r0, [r5, #0] 1570c: 681b ldr r3, [r3, #0] 1570e: 4798 blx r3 15710: 2803 cmp r0, #3 15712: d9f5 bls.n 15700 return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); 15714: f8bd 8024 ldrh.w r8, [sp, #36] ; 0x24 15718: f8bd 3020 ldrh.w r3, [sp, #32] (lv_font_get_glyph_width(font, '.', '.') + letter_space) * 1571c: 222e movs r2, #46 ; 0x2e 1571e: f108 0801 add.w r8, r8, #1 15722: 4611 mov r1, r2 15724: eba8 0803 sub.w r8, r8, r3 15728: 4630 mov r0, r6 1572a: 4b41 ldr r3, [pc, #260] ; (15830 ) 1572c: 4798 blx r3 1572e: 4448 add r0, r9 p.x = lv_area_get_width(&txt_coords) - 15730: ebc0 3380 rsb r3, r0, r0, lsl #14 15734: eb00 0083 add.w r0, r0, r3, lsl #2 return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); 15738: f8bd 3026 ldrh.w r3, [sp, #38] ; 0x26 1573c: f8bd 2022 ldrh.w r2, [sp, #34] ; 0x22 byte_id -= _lv_txt_encoded_size(&ext->text[byte_id]); 15740: f8df 9124 ldr.w r9, [pc, #292] ; 15868 15744: 3301 adds r3, #1 15746: 1a9b subs r3, r3, r2 (lv_font_get_line_height(font) + line_space); /*Round down to the last line*/ 15748: f9b6 2008 ldrsh.w r2, [r6, #8] 1574c: b29b uxth r3, r3 1574e: 443a add r2, r7 p.y -= line_space; /*Trim the last line space*/ 15750: 1bd9 subs r1, r3, r7 return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); 15752: fa1f f888 uxth.w r8, r8 p.y -= p.y % 15756: b21b sxth r3, r3 p.x = lv_area_get_width(&txt_coords) - 15758: 4480 add r8, r0 p.y -= p.y % 1575a: fb93 f0f2 sdiv r0, r3, r2 1575e: fb02 3310 mls r3, r2, r0, r3 p.y -= line_space; /*Trim the last line space*/ 15762: 1acb subs r3, r1, r3 15764: f8ad 301e strh.w r3, [sp, #30] uint32_t letter_id = lv_label_get_letter_on(label, &p); 15768: a907 add r1, sp, #28 1576a: 4b39 ldr r3, [pc, #228] ; (15850 ) p.x = lv_area_get_width(&txt_coords) - 1576c: f8ad 801c strh.w r8, [sp, #28] uint32_t letter_id = lv_label_get_letter_on(label, &p); 15770: 4620 mov r0, r4 15772: 4798 blx r3 size_t txt_len = strlen(ext->text); 15774: 682e ldr r6, [r5, #0] 15776: 4b37 ldr r3, [pc, #220] ; (15854 ) uint32_t letter_id = lv_label_get_letter_on(label, &p); 15778: 4607 mov r7, r0 size_t txt_len = strlen(ext->text); 1577a: 4630 mov r0, r6 1577c: 4798 blx r3 uint32_t byte_id = _lv_txt_encoded_get_byte_id(ext->text, letter_id); 1577e: 4b36 ldr r3, [pc, #216] ; (15858 ) size_t txt_len = strlen(ext->text); 15780: 4680 mov r8, r0 uint32_t byte_id = _lv_txt_encoded_get_byte_id(ext->text, letter_id); 15782: 681b ldr r3, [r3, #0] 15784: 4630 mov r0, r6 15786: 4639 mov r1, r7 15788: 4798 blx r3 1578a: 4606 mov r6, r0 byte_id -= _lv_txt_encoded_size(&ext->text[byte_id]); 1578c: 6828 ldr r0, [r5, #0] 1578e: f8d9 3000 ldr.w r3, [r9] uint32_t byte_id = _lv_txt_encoded_get_byte_id(ext->text, letter_id); 15792: 960a str r6, [sp, #40] ; 0x28 while(byte_id + LV_LABEL_DOT_NUM > txt_len) { 15794: f106 0b03 add.w fp, r6, #3 15798: 45c3 cmp fp, r8 byte_id -= _lv_txt_encoded_size(&ext->text[byte_id]); 1579a: 4430 add r0, r6 while(byte_id + LV_LABEL_DOT_NUM > txt_len) { 1579c: d82c bhi.n 157f8 1579e: f04f 0a04 mov.w sl, #4 uint8_t len = 0; 157a2: f04f 0800 mov.w r8, #0 len += _lv_txt_encoded_size(&ext->text[byte_id]); 157a6: 9a0a ldr r2, [sp, #40] ; 0x28 157a8: 6828 ldr r0, [r5, #0] 157aa: f8d9 3000 ldr.w r3, [r9] 157ae: 4410 add r0, r2 157b0: 4798 blx r3 _lv_txt_encoded_next(ext->text, &byte_id); 157b2: 4b2a ldr r3, [pc, #168] ; (1585c ) len += _lv_txt_encoded_size(&ext->text[byte_id]); 157b4: 4440 add r0, r8 _lv_txt_encoded_next(ext->text, &byte_id); 157b6: 681b ldr r3, [r3, #0] len += _lv_txt_encoded_size(&ext->text[byte_id]); 157b8: fa5f f880 uxtb.w r8, r0 _lv_txt_encoded_next(ext->text, &byte_id); 157bc: a90a add r1, sp, #40 ; 0x28 157be: 6828 ldr r0, [r5, #0] 157c0: 4798 blx r3 for(i = 0; i <= LV_LABEL_DOT_NUM; i++) { 157c2: f1ba 0a01 subs.w sl, sl, #1 157c6: d1ee bne.n 157a6 if(lv_label_set_dot_tmp(label, &ext->text[byte_id_ori], len)) { 157c8: 6829 ldr r1, [r5, #0] 157ca: 4b25 ldr r3, [pc, #148] ; (15860 ) 157cc: 4642 mov r2, r8 157ce: 4431 add r1, r6 157d0: 4620 mov r0, r4 157d2: 4798 blx r3 157d4: 2800 cmp r0, #0 157d6: f43f ae41 beq.w 1545c ext->text[byte_id_ori + i] = '.'; 157da: 682b ldr r3, [r5, #0] 157dc: 222e movs r2, #46 ; 0x2e 157de: 559a strb r2, [r3, r6] 157e0: 682b ldr r3, [r5, #0] 157e2: 4433 add r3, r6 ext->dot_end = letter_id + LV_LABEL_DOT_NUM; 157e4: 3703 adds r7, #3 ext->text[byte_id_ori + i] = '.'; 157e6: 705a strb r2, [r3, #1] 157e8: 682b ldr r3, [r5, #0] 157ea: 4433 add r3, r6 157ec: 709a strb r2, [r3, #2] ext->text[byte_id_ori + LV_LABEL_DOT_NUM] = '\0'; 157ee: 682b ldr r3, [r5, #0] 157f0: f803 a00b strb.w sl, [r3, fp] ext->dot_end = letter_id + LV_LABEL_DOT_NUM; 157f4: 812f strh r7, [r5, #8] 157f6: e631 b.n 1545c byte_id -= _lv_txt_encoded_size(&ext->text[byte_id]); 157f8: 4798 blx r3 157fa: 9e0a ldr r6, [sp, #40] ; 0x28 letter_id--; 157fc: 3f01 subs r7, #1 byte_id -= _lv_txt_encoded_size(&ext->text[byte_id]); 157fe: 1a36 subs r6, r6, r0 letter_id--; 15800: e7c4 b.n 1578c _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar) 15802: 2210 movs r2, #16 15804: 2100 movs r1, #0 15806: 4620 mov r0, r4 15808: 47c0 blx r8 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar) 1580a: 2211 movs r2, #17 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_TOP, pad_top, lv_style_int_t, _int, scalar) 1580c: 4605 mov r5, r0 _LV_OBJ_STYLE_SET_GET_DECLARE(PAD_BOTTOM, pad_bottom, lv_style_int_t, _int, scalar) 1580e: 2100 movs r1, #0 15810: 4620 mov r0, r4 15812: 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); 15814: f8bd 301a ldrh.w r3, [sp, #26] 15818: 1829 adds r1, r5, r0 1581a: 4419 add r1, r3 1581c: b209 sxth r1, r1 lv_obj_set_height(label, size.y); 1581e: 4b11 ldr r3, [pc, #68] ; (15864 ) size.y += lv_obj_get_style_pad_top(label, LV_LABEL_PART_MAIN) + lv_obj_get_style_pad_bottom(label, LV_LABEL_PART_MAIN); 15820: f8ad 101a strh.w r1, [sp, #26] lv_obj_set_height(label, size.y); 15824: 4620 mov r0, r4 15826: 4798 blx r3 15828: e618 b.n 1545c 1582a: bf00 nop 1582c: 0000dea5 .word 0x0000dea5 15830: 0000d3a1 .word 0x0000d3a1 15834: 00014e19 .word 0x00014e19 15838: 0000e039 .word 0x0000e039 1583c: 0000e005 .word 0x0000e005 15840: 0000df4d .word 0x0000df4d 15844: 00014df9 .word 0x00014df9 15848: 0000dedd .word 0x0000dedd 1584c: 20000054 .word 0x20000054 15850: 000150e5 .word 0x000150e5 15854: 00017381 .word 0x00017381 15858: 20000050 .word 0x20000050 1585c: 2000004c .word 0x2000004c 15860: 00014e39 .word 0x00014e39 15864: 0000381d .word 0x0000381d 15868: 20000048 .word 0x20000048 0001586c : { 1586c: e92d 43f7 stmdb sp!, {r0, r1, r2, r4, r5, r6, r7, r8, r9, lr} LV_ASSERT_OBJ(label, LV_OBJX_NAME); 15870: 4f40 ldr r7, [pc, #256] ; (15974 ) { 15872: 4606 mov r6, r0 15874: 460d mov r5, r1 LV_ASSERT_OBJ(label, LV_OBJX_NAME); 15876: 47b8 blx r7 15878: 4604 mov r4, r0 1587a: b960 cbnz r0, 15896 1587c: 4b3e ldr r3, [pc, #248] ; (15978 ) 1587e: 493f ldr r1, [pc, #252] ; (1597c ) 15880: 9300 str r3, [sp, #0] 15882: 22b8 movs r2, #184 ; 0xb8 15884: 2003 movs r0, #3 15886: 4d3e ldr r5, [pc, #248] ; (15980 ) 15888: 47a8 blx r5 1588a: 483e ldr r0, [pc, #248] ; (15984 ) 1588c: 493e ldr r1, [pc, #248] ; (15988 ) 1588e: 4632 mov r2, r6 15890: 4623 mov r3, r4 15892: 4788 blx r1 15894: e7fe b.n 15894 lv_obj_invalidate(label); 15896: 4b3d ldr r3, [pc, #244] ; (1598c ) 15898: 4630 mov r0, r6 1589a: 4798 blx r3 lv_label_ext_t * ext = lv_obj_get_ext_attr(label); 1589c: 4b3c ldr r3, [pc, #240] ; (15990 ) 1589e: 4630 mov r0, r6 158a0: 4798 blx r3 158a2: 4604 mov r4, r0 if(text == NULL) { 158a4: b92d cbnz r5, 158b2 lv_label_refr_text(label); 158a6: 4b3b ldr r3, [pc, #236] ; (15994 ) 158a8: 4630 mov r0, r6 } 158aa: b003 add sp, #12 158ac: e8bd 43f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, lr} lv_label_refr_text(label); 158b0: 4718 bx r3 LV_ASSERT_STR(text); 158b2: 4628 mov r0, r5 158b4: 47b8 blx r7 158b6: 4680 mov r8, r0 158b8: b960 cbnz r0, 158d4 158ba: 4b2f ldr r3, [pc, #188] ; (15978 ) 158bc: 492f ldr r1, [pc, #188] ; (1597c ) 158be: 9300 str r3, [sp, #0] 158c0: 22c4 movs r2, #196 ; 0xc4 158c2: 2003 movs r0, #3 158c4: 4c2e ldr r4, [pc, #184] ; (15980 ) 158c6: 47a0 blx r4 158c8: 482e ldr r0, [pc, #184] ; (15984 ) 158ca: 492f ldr r1, [pc, #188] ; (15988 ) 158cc: 462a mov r2, r5 158ce: 4643 mov r3, r8 158d0: 4788 blx r1 158d2: e7fe b.n 158d2 if(ext->text == text && ext->static_txt == 0) { 158d4: 6820 ldr r0, [r4, #0] 158d6: f8df 90d4 ldr.w r9, [pc, #212] ; 159ac 158da: 4285 cmp r5, r0 158dc: d11f bne.n 1591e 158de: 7c23 ldrb r3, [r4, #16] 158e0: 071b lsls r3, r3, #28 158e2: d425 bmi.n 15930 ext->text = lv_mem_realloc(ext->text, strlen(ext->text) + 1); 158e4: 4628 mov r0, r5 158e6: 47c8 blx r9 158e8: 4b2b ldr r3, [pc, #172] ; (15998 ) 158ea: 1c41 adds r1, r0, #1 158ec: 4628 mov r0, r5 158ee: 4798 blx r3 158f0: 6020 str r0, [r4, #0] LV_ASSERT_MEM(ext->text); 158f2: 47b8 blx r7 158f4: 4605 mov r5, r0 158f6: b960 cbnz r0, 15912 158f8: 4b1f ldr r3, [pc, #124] ; (15978 ) 158fa: 4920 ldr r1, [pc, #128] ; (1597c ) 158fc: 9300 str r3, [sp, #0] 158fe: 22d5 movs r2, #213 ; 0xd5 15900: 2003 movs r0, #3 15902: 4e1f ldr r6, [pc, #124] ; (15980 ) 15904: 47b0 blx r6 15906: 6822 ldr r2, [r4, #0] 15908: 4824 ldr r0, [pc, #144] ; (1599c ) 1590a: 491f ldr r1, [pc, #124] ; (15988 ) 1590c: 462b mov r3, r5 1590e: 4788 blx r1 15910: e7fe b.n 15910 if(ext->text == NULL) return; 15912: 6823 ldr r3, [r4, #0] 15914: 2b00 cmp r3, #0 15916: d1c6 bne.n 158a6 } 15918: b003 add sp, #12 1591a: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} if(ext->text != NULL && ext->static_txt == 0) { 1591e: b138 cbz r0, 15930 15920: 7c23 ldrb r3, [r4, #16] 15922: f013 0808 ands.w r8, r3, #8 15926: d103 bne.n 15930 lv_mem_free(ext->text); 15928: 4b1d ldr r3, [pc, #116] ; (159a0 ) 1592a: 4798 blx r3 ext->text = NULL; 1592c: f8c4 8000 str.w r8, [r4] size_t len = strlen(text) + 1; 15930: 4628 mov r0, r5 15932: 47c8 blx r9 ext->text = lv_mem_alloc(len); 15934: 4b1b ldr r3, [pc, #108] ; (159a4 ) 15936: 3001 adds r0, #1 15938: 4798 blx r3 1593a: 6020 str r0, [r4, #0] LV_ASSERT_MEM(ext->text); 1593c: 47b8 blx r7 1593e: 4607 mov r7, r0 15940: b960 cbnz r0, 1595c 15942: 4b0d ldr r3, [pc, #52] ; (15978 ) 15944: 490d ldr r1, [pc, #52] ; (1597c ) 15946: 9300 str r3, [sp, #0] 15948: 22ee movs r2, #238 ; 0xee 1594a: 2003 movs r0, #3 1594c: 4d0c ldr r5, [pc, #48] ; (15980 ) 1594e: 47a8 blx r5 15950: 6822 ldr r2, [r4, #0] 15952: 4812 ldr r0, [pc, #72] ; (1599c ) 15954: 490c ldr r1, [pc, #48] ; (15988 ) 15956: 463b mov r3, r7 15958: 4788 blx r1 1595a: e7fe b.n 1595a if(ext->text == NULL) return; 1595c: 6820 ldr r0, [r4, #0] 1595e: 2800 cmp r0, #0 15960: d0da beq.n 15918 15962: 4b11 ldr r3, [pc, #68] ; (159a8 ) 15964: 4629 mov r1, r5 15966: 4798 blx r3 ext->static_txt = 0; 15968: 7c23 ldrb r3, [r4, #16] 1596a: f36f 03c3 bfc r3, #3, #1 1596e: 7423 strb r3, [r4, #16] 15970: e799 b.n 158a6 15972: bf00 nop 15974: 00001a0d .word 0x00001a0d 15978: 0002bf31 .word 0x0002bf31 1597c: 0002bdc1 .word 0x0002bdc1 15980: 0000eb21 .word 0x0000eb21 15984: 0002683f .word 0x0002683f 15988: 00001a15 .word 0x00001a15 1598c: 000029b1 .word 0x000029b1 15990: 000041d5 .word 0x000041d5 15994: 00015389 .word 0x00015389 15998: 0000f04d .word 0x0000f04d 1599c: 0002673e .word 0x0002673e 159a0: 0000ed1d .word 0x0000ed1d 159a4: 0000ec65 .word 0x0000ec65 159a8: 000172bd .word 0x000172bd 159ac: 00017381 .word 0x00017381 000159b0 : { 159b0: b5f7 push {r0, r1, r2, r4, r5, r6, r7, lr} LV_ASSERT_OBJ(label, LV_OBJX_NAME); 159b2: 4b16 ldr r3, [pc, #88] ; (15a0c ) { 159b4: 4605 mov r5, r0 159b6: 460e mov r6, r1 LV_ASSERT_OBJ(label, LV_OBJX_NAME); 159b8: 4798 blx r3 159ba: 4604 mov r4, r0 159bc: b968 cbnz r0, 159da 159be: 4b14 ldr r3, [pc, #80] ; (15a10 ) 159c0: 4914 ldr r1, [pc, #80] ; (15a14 ) 159c2: 9300 str r3, [sp, #0] 159c4: f44f 72a6 mov.w r2, #332 ; 0x14c 159c8: 2003 movs r0, #3 159ca: 4e13 ldr r6, [pc, #76] ; (15a18 ) 159cc: 47b0 blx r6 159ce: 4813 ldr r0, [pc, #76] ; (15a1c ) 159d0: 4913 ldr r1, [pc, #76] ; (15a20 ) 159d2: 462a mov r2, r5 159d4: 4623 mov r3, r4 159d6: 4788 blx r1 159d8: e7fe b.n 159d8 lv_label_ext_t * ext = lv_obj_get_ext_attr(label); 159da: 4b12 ldr r3, [pc, #72] ; (15a24 ) 159dc: 4628 mov r0, r5 159de: 4798 blx r3 if(ext->static_txt == 0 && ext->text != NULL) { 159e0: 7c03 ldrb r3, [r0, #16] 159e2: f013 0708 ands.w r7, r3, #8 lv_label_ext_t * ext = lv_obj_get_ext_attr(label); 159e6: 4604 mov r4, r0 if(ext->static_txt == 0 && ext->text != NULL) { 159e8: d104 bne.n 159f4 159ea: 6800 ldr r0, [r0, #0] 159ec: b110 cbz r0, 159f4 lv_mem_free(ext->text); 159ee: 4b0e ldr r3, [pc, #56] ; (15a28 ) 159f0: 4798 blx r3 ext->text = NULL; 159f2: 6027 str r7, [r4, #0] if(text != NULL) { 159f4: b126 cbz r6, 15a00 ext->static_txt = 1; 159f6: 7c23 ldrb r3, [r4, #16] ext->text = (char *)text; 159f8: 6026 str r6, [r4, #0] ext->static_txt = 1; 159fa: f043 0308 orr.w r3, r3, #8 159fe: 7423 strb r3, [r4, #16] lv_label_refr_text(label); 15a00: 4b0a ldr r3, [pc, #40] ; (15a2c ) 15a02: 4628 mov r0, r5 } 15a04: b003 add sp, #12 15a06: e8bd 40f0 ldmia.w sp!, {r4, r5, r6, r7, lr} lv_label_refr_text(label); 15a0a: 4718 bx r3 15a0c: 00001a0d .word 0x00001a0d 15a10: 0002bf59 .word 0x0002bf59 15a14: 0002bdc1 .word 0x0002bdc1 15a18: 0000eb21 .word 0x0000eb21 15a1c: 0002683f .word 0x0002683f 15a20: 00001a15 .word 0x00001a15 15a24: 000041d5 .word 0x000041d5 15a28: 0000ed1d .word 0x0000ed1d 15a2c: 00015389 .word 0x00015389 00015a30 : { 15a30: b5f7 push {r0, r1, r2, r4, r5, r6, r7, lr} LV_ASSERT_OBJ(label, LV_OBJX_NAME); 15a32: 4b23 ldr r3, [pc, #140] ; (15ac0 ) { 15a34: 4604 mov r4, r0 15a36: 460e mov r6, r1 LV_ASSERT_OBJ(label, LV_OBJX_NAME); 15a38: 4798 blx r3 15a3a: 4605 mov r5, r0 15a3c: b968 cbnz r0, 15a5a 15a3e: 4b21 ldr r3, [pc, #132] ; (15ac4 ) 15a40: 4921 ldr r1, [pc, #132] ; (15ac8 ) 15a42: 9300 str r3, [sp, #0] 15a44: f240 1265 movw r2, #357 ; 0x165 15a48: 2003 movs r0, #3 15a4a: 4e20 ldr r6, [pc, #128] ; (15acc ) 15a4c: 47b0 blx r6 15a4e: 4820 ldr r0, [pc, #128] ; (15ad0 ) 15a50: 4920 ldr r1, [pc, #128] ; (15ad4 ) 15a52: 4622 mov r2, r4 15a54: 462b mov r3, r5 15a56: 4788 blx r1 15a58: e7fe b.n 15a58 lv_label_ext_t * ext = lv_obj_get_ext_attr(label); 15a5a: 4b1f ldr r3, [pc, #124] ; (15ad8 ) lv_anim_del(label, (lv_anim_exec_xcb_t)lv_obj_set_x); 15a5c: 4f1f ldr r7, [pc, #124] ; (15adc ) lv_label_ext_t * ext = lv_obj_get_ext_attr(label); 15a5e: 4620 mov r0, r4 15a60: 4798 blx r3 lv_anim_del(label, (lv_anim_exec_xcb_t)lv_obj_set_x); 15a62: 491f ldr r1, [pc, #124] ; (15ae0 ) lv_label_ext_t * ext = lv_obj_get_ext_attr(label); 15a64: 4605 mov r5, r0 lv_anim_del(label, (lv_anim_exec_xcb_t)lv_obj_set_x); 15a66: 4620 mov r0, r4 15a68: 47b8 blx r7 lv_anim_del(label, (lv_anim_exec_xcb_t)lv_obj_set_y); 15a6a: 491e ldr r1, [pc, #120] ; (15ae4 ) 15a6c: 4620 mov r0, r4 15a6e: 47b8 blx r7 lv_anim_del(label, (lv_anim_exec_xcb_t)lv_label_set_offset_x); 15a70: 491d ldr r1, [pc, #116] ; (15ae8 ) 15a72: 4620 mov r0, r4 15a74: 47b8 blx r7 lv_anim_del(label, (lv_anim_exec_xcb_t)lv_label_set_offset_y); 15a76: 491d ldr r1, [pc, #116] ; (15aec ) 15a78: 4620 mov r0, r4 15a7a: 47b8 blx r7 if(long_mode == LV_LABEL_LONG_SROLL || long_mode == LV_LABEL_LONG_SROLL_CIRC || long_mode == LV_LABEL_LONG_CROP) 15a7c: 1ef2 subs r2, r6, #3 ext->offset.x = 0; 15a7e: 2300 movs r3, #0 if(long_mode == LV_LABEL_LONG_SROLL || long_mode == LV_LABEL_LONG_SROLL_CIRC || long_mode == LV_LABEL_LONG_CROP) 15a80: 2a02 cmp r2, #2 ext->offset.x = 0; 15a82: 60eb str r3, [r5, #12] 15a84: 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) 15a86: bf8c ite hi 15a88: 2200 movhi r2, #0 15a8a: 2201 movls r2, #1 15a8c: f362 13c7 bfi r3, r2, #7, #1 15a90: 742b strb r3, [r5, #16] if(ext->long_mode == LV_LABEL_LONG_DOT && ext->dot_end != LV_LABEL_DOT_END_INV) { 15a92: f003 0307 and.w r3, r3, #7 15a96: 2b02 cmp r3, #2 15a98: d107 bne.n 15aaa 15a9a: 892a ldrh r2, [r5, #8] 15a9c: f64f 73ff movw r3, #65535 ; 0xffff 15aa0: 429a cmp r2, r3 15aa2: d002 beq.n 15aaa lv_label_revert_dots(label); 15aa4: 4b12 ldr r3, [pc, #72] ; (15af0 ) 15aa6: 4620 mov r0, r4 15aa8: 4798 blx r3 ext->long_mode = long_mode; 15aaa: 7c2b ldrb r3, [r5, #16] 15aac: f366 0302 bfi r3, r6, #0, #3 15ab0: 742b strb r3, [r5, #16] lv_label_refr_text(label); 15ab2: 4b10 ldr r3, [pc, #64] ; (15af4 ) 15ab4: 4620 mov r0, r4 } 15ab6: b003 add sp, #12 15ab8: e8bd 40f0 ldmia.w sp!, {r4, r5, r6, r7, lr} lv_label_refr_text(label); 15abc: 4718 bx r3 15abe: bf00 nop 15ac0: 00001a0d .word 0x00001a0d 15ac4: 0002bf72 .word 0x0002bf72 15ac8: 0002bdc1 .word 0x0002bdc1 15acc: 0000eb21 .word 0x0000eb21 15ad0: 0002683f .word 0x0002683f 15ad4: 00001a15 .word 0x00001a15 15ad8: 000041d5 .word 0x000041d5 15adc: 0000dedd .word 0x0000dedd 15ae0: 00002bb5 .word 0x00002bb5 15ae4: 00002c15 .word 0x00002c15 15ae8: 00014e19 .word 0x00014e19 15aec: 00014df9 .word 0x00014df9 15af0: 00014d81 .word 0x00014d81 15af4: 00015389 .word 0x00015389 00015af8 : { 15af8: b573 push {r0, r1, r4, r5, r6, lr} LV_ASSERT_OBJ(label, LV_OBJX_NAME); 15afa: 4b13 ldr r3, [pc, #76] ; (15b48 ) { 15afc: 4604 mov r4, r0 15afe: 460d mov r5, r1 LV_ASSERT_OBJ(label, LV_OBJX_NAME); 15b00: 4798 blx r3 15b02: 4606 mov r6, r0 15b04: b968 cbnz r0, 15b22 15b06: 4b11 ldr r3, [pc, #68] ; (15b4c ) 15b08: 4911 ldr r1, [pc, #68] ; (15b50 ) 15b0a: 9300 str r3, [sp, #0] 15b0c: f44f 72cd mov.w r2, #410 ; 0x19a 15b10: 2003 movs r0, #3 15b12: 4d10 ldr r5, [pc, #64] ; (15b54 ) 15b14: 47a8 blx r5 15b16: 4810 ldr r0, [pc, #64] ; (15b58 ) 15b18: 4910 ldr r1, [pc, #64] ; (15b5c ) 15b1a: 4622 mov r2, r4 15b1c: 4633 mov r3, r6 15b1e: 4788 blx r1 15b20: e7fe b.n 15b20 lv_label_ext_t * ext = lv_obj_get_ext_attr(label); 15b22: 4b0f ldr r3, [pc, #60] ; (15b60 ) 15b24: 4620 mov r0, r4 15b26: 4798 blx r3 if(ext->recolor == en) return; 15b28: 7c03 ldrb r3, [r0, #16] 15b2a: f3c3 1280 ubfx r2, r3, #6, #1 15b2e: 42aa cmp r2, r5 15b30: d008 beq.n 15b44 ext->recolor = en == false ? 0 : 1; 15b32: f365 1386 bfi r3, r5, #6, #1 15b36: 7403 strb r3, [r0, #16] lv_label_refr_text(label); /*Refresh the text because the potential colo codes in text needs to 15b38: 4b0a ldr r3, [pc, #40] ; (15b64 ) 15b3a: 4620 mov r0, r4 } 15b3c: b002 add sp, #8 15b3e: 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 15b42: 4718 bx r3 } 15b44: b002 add sp, #8 15b46: bd70 pop {r4, r5, r6, pc} 15b48: 00001a0d .word 0x00001a0d 15b4c: 0002bf89 .word 0x0002bf89 15b50: 0002bdc1 .word 0x0002bdc1 15b54: 0000eb21 .word 0x0000eb21 15b58: 0002683f .word 0x0002683f 15b5c: 00001a15 .word 0x00001a15 15b60: 000041d5 .word 0x000041d5 15b64: 00015389 .word 0x00015389 00015b68 : { 15b68: e92d 43f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} lv_obj_t * new_label = lv_obj_create(par, copy); 15b6c: 4b71 ldr r3, [pc, #452] ; (15d34 ) LV_ASSERT_MEM(new_label); 15b6e: f8df 8248 ldr.w r8, [pc, #584] ; 15db8 { 15b72: b085 sub sp, #20 15b74: 460f mov r7, r1 lv_obj_t * new_label = lv_obj_create(par, copy); 15b76: 4798 blx r3 15b78: 4605 mov r5, r0 LV_ASSERT_MEM(new_label); 15b7a: 47c0 blx r8 15b7c: 4604 mov r4, r0 15b7e: b960 cbnz r0, 15b9a 15b80: 4b6d ldr r3, [pc, #436] ; (15d38 ) 15b82: 496e ldr r1, [pc, #440] ; (15d3c ) 15b84: 9300 str r3, [sp, #0] 15b86: 2254 movs r2, #84 ; 0x54 15b88: 2003 movs r0, #3 15b8a: 4e6d ldr r6, [pc, #436] ; (15d40 ) 15b8c: 47b0 blx r6 15b8e: 486d ldr r0, [pc, #436] ; (15d44 ) 15b90: 496d ldr r1, [pc, #436] ; (15d48 ) 15b92: 462a mov r2, r5 15b94: 4623 mov r3, r4 15b96: 4788 blx r1 15b98: e7fe b.n 15b98 if(new_label == NULL) return NULL; 15b9a: b925 cbnz r5, 15ba6 15b9c: 2400 movs r4, #0 } 15b9e: 4620 mov r0, r4 15ba0: b005 add sp, #20 15ba2: 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); 15ba6: 4c69 ldr r4, [pc, #420] ; (15d4c ) 15ba8: 6823 ldr r3, [r4, #0] 15baa: b91b cbnz r3, 15bb4 15bac: 4b68 ldr r3, [pc, #416] ; (15d50 ) 15bae: 4628 mov r0, r5 15bb0: 4798 blx r3 15bb2: 6020 str r0, [r4, #0] lv_obj_allocate_ext_attr(new_label, sizeof(lv_label_ext_t)); 15bb4: 4b67 ldr r3, [pc, #412] ; (15d54 ) lv_label_ext_t * ext = lv_obj_get_ext_attr(new_label); 15bb6: 4e68 ldr r6, [pc, #416] ; (15d58 ) lv_obj_allocate_ext_attr(new_label, sizeof(lv_label_ext_t)); 15bb8: 2114 movs r1, #20 15bba: 4628 mov r0, r5 15bbc: 4798 blx r3 lv_label_ext_t * ext = lv_obj_get_ext_attr(new_label); 15bbe: 4628 mov r0, r5 15bc0: 47b0 blx r6 15bc2: 4604 mov r4, r0 LV_ASSERT_MEM(ext); 15bc4: 47c0 blx r8 15bc6: 4681 mov r9, r0 15bc8: b960 cbnz r0, 15be4 15bca: 4b5b ldr r3, [pc, #364] ; (15d38 ) 15bcc: 495b ldr r1, [pc, #364] ; (15d3c ) 15bce: 9300 str r3, [sp, #0] 15bd0: 225d movs r2, #93 ; 0x5d 15bd2: 2003 movs r0, #3 15bd4: 4d5a ldr r5, [pc, #360] ; (15d40 ) 15bd6: 47a8 blx r5 15bd8: 485a ldr r0, [pc, #360] ; (15d44 ) 15bda: 495b ldr r1, [pc, #364] ; (15d48 ) 15bdc: 4622 mov r2, r4 15bde: 464b mov r3, r9 15be0: 4788 blx r1 15be2: e7fe b.n 15be2 if(ext == NULL) { 15be4: b91c cbnz r4, 15bee lv_obj_del(new_label); 15be6: 4b5d ldr r3, [pc, #372] ; (15d5c ) 15be8: 4628 mov r0, r5 15bea: 4798 blx r3 return NULL; 15bec: e7d7 b.n 15b9e ext->dot_end = LV_LABEL_DOT_END_INV; 15bee: 4a5c ldr r2, [pc, #368] ; (15d60 ) lv_obj_set_design_cb(new_label, lv_label_design); 15bf0: 495c ldr r1, [pc, #368] ; (15d64 ) 15bf2: f8df 91c8 ldr.w r9, [pc, #456] ; 15dbc ext->text = NULL; 15bf6: 2300 movs r3, #0 ext->offset.x = 0; 15bf8: e9c4 2302 strd r2, r3, [r4, #8] ext->dot.tmp_ptr = NULL; 15bfc: e9c4 3300 strd r3, r3, [r4] ext->long_mode = LV_LABEL_LONG_EXPAND; 15c00: 8a23 ldrh r3, [r4, #16] 15c02: f423 73bf bic.w r3, r3, #382 ; 0x17e 15c06: f023 0301 bic.w r3, r3, #1 15c0a: f043 0330 orr.w r3, r3, #48 ; 0x30 15c0e: 8223 strh r3, [r4, #16] lv_obj_set_design_cb(new_label, lv_label_design); 15c10: 4628 mov r0, r5 15c12: 4b55 ldr r3, [pc, #340] ; (15d68 ) 15c14: 4798 blx r3 lv_obj_set_signal_cb(new_label, lv_label_signal); 15c16: 4955 ldr r1, [pc, #340] ; (15d6c ) 15c18: 4b55 ldr r3, [pc, #340] ; (15d70 ) 15c1a: 4628 mov r0, r5 15c1c: 4798 blx r3 if(copy == NULL) { 15c1e: b9c7 cbnz r7, 15c52 lv_theme_apply(new_label, LV_THEME_LABEL); 15c20: 4b54 ldr r3, [pc, #336] ; (15d74 ) 15c22: 2112 movs r1, #18 15c24: 4628 mov r0, r5 15c26: 4798 blx r3 lv_obj_set_click(new_label, false); 15c28: 4b53 ldr r3, [pc, #332] ; (15d78 ) 15c2a: 4639 mov r1, r7 15c2c: 4628 mov r0, r5 15c2e: 4798 blx r3 lv_label_set_long_mode(new_label, LV_LABEL_LONG_EXPAND); 15c30: 4639 mov r1, r7 15c32: 4628 mov r0, r5 15c34: 47c8 blx r9 lv_label_set_text(new_label, "Text"); 15c36: 4951 ldr r1, [pc, #324] ; (15d7c ) 15c38: 4b51 ldr r3, [pc, #324] ; (15d80 ) 15c3a: 4628 mov r0, r5 15c3c: 4798 blx r3 LV_LOG_INFO("label created"); 15c3e: 4b51 ldr r3, [pc, #324] ; (15d84 ) 15c40: 4c3f ldr r4, [pc, #252] ; (15d40 ) 15c42: 9300 str r3, [sp, #0] 15c44: 493d ldr r1, [pc, #244] ; (15d3c ) 15c46: 4b3c ldr r3, [pc, #240] ; (15d38 ) 15c48: 22a8 movs r2, #168 ; 0xa8 15c4a: 2001 movs r0, #1 15c4c: 47a0 blx r4 return new_label; 15c4e: 462c mov r4, r5 15c50: e7a5 b.n 15b9e lv_label_ext_t * copy_ext = lv_obj_get_ext_attr(copy); 15c52: 4638 mov r0, r7 15c54: 47b0 blx r6 lv_label_set_long_mode(new_label, lv_label_get_long_mode(copy)); 15c56: 4b4c ldr r3, [pc, #304] ; (15d88 ) lv_label_ext_t * copy_ext = lv_obj_get_ext_attr(copy); 15c58: 4606 mov r6, r0 lv_label_set_long_mode(new_label, lv_label_get_long_mode(copy)); 15c5a: 4638 mov r0, r7 15c5c: 4798 blx r3 15c5e: 4601 mov r1, r0 15c60: 4628 mov r0, r5 15c62: 47c8 blx r9 lv_label_set_recolor(new_label, lv_label_get_recolor(copy)); 15c64: 4b49 ldr r3, [pc, #292] ; (15d8c ) 15c66: 4638 mov r0, r7 15c68: 4798 blx r3 15c6a: 4b49 ldr r3, [pc, #292] ; (15d90 ) 15c6c: 4601 mov r1, r0 15c6e: 4628 mov r0, r5 15c70: 4798 blx r3 lv_label_set_align(new_label, lv_label_get_align(copy)); 15c72: 4b48 ldr r3, [pc, #288] ; (15d94 ) 15c74: 4638 mov r0, r7 15c76: 4798 blx r3 15c78: 4b47 ldr r3, [pc, #284] ; (15d98 ) 15c7a: 4601 mov r1, r0 15c7c: 4628 mov r0, r5 15c7e: 4798 blx r3 if(copy_ext->static_txt == 0) 15c80: 7c33 ldrb r3, [r6, #16] 15c82: f013 0f08 tst.w r3, #8 lv_label_set_text(new_label, lv_label_get_text(copy)); 15c86: 4638 mov r0, r7 15c88: 4b44 ldr r3, [pc, #272] ; (15d9c ) if(copy_ext->static_txt == 0) 15c8a: d123 bne.n 15cd4 lv_label_set_text(new_label, lv_label_get_text(copy)); 15c8c: 4798 blx r3 15c8e: 4b3c ldr r3, [pc, #240] ; (15d80 ) 15c90: 4601 mov r1, r0 15c92: 4628 mov r0, r5 lv_label_set_text_static(new_label, lv_label_get_text(copy)); 15c94: 4798 blx r3 if(copy_ext->long_mode == LV_LABEL_LONG_DOT) { 15c96: 7c33 ldrb r3, [r6, #16] 15c98: f003 0307 and.w r3, r3, #7 15c9c: 2b02 cmp r3, #2 15c9e: d12b bne.n 15cf8 ext->text = lv_mem_realloc(ext->text, _lv_mem_get_size(copy_ext->text)); 15ca0: 6830 ldr r0, [r6, #0] 15ca2: f8df 911c ldr.w r9, [pc, #284] ; 15dc0 15ca6: 6827 ldr r7, [r4, #0] 15ca8: 47c8 blx r9 15caa: 4b3d ldr r3, [pc, #244] ; (15da0 ) 15cac: 4601 mov r1, r0 15cae: 4638 mov r0, r7 15cb0: 4798 blx r3 15cb2: 6020 str r0, [r4, #0] LV_ASSERT_MEM(ext->text); 15cb4: 47c0 blx r8 15cb6: 4607 mov r7, r0 15cb8: b988 cbnz r0, 15cde 15cba: 4b1f ldr r3, [pc, #124] ; (15d38 ) 15cbc: 491f ldr r1, [pc, #124] ; (15d3c ) 15cbe: 9300 str r3, [sp, #0] 15cc0: 2295 movs r2, #149 ; 0x95 15cc2: 2003 movs r0, #3 15cc4: 4d1e ldr r5, [pc, #120] ; (15d40 ) 15cc6: 47a8 blx r5 15cc8: 6822 ldr r2, [r4, #0] 15cca: 481e ldr r0, [pc, #120] ; (15d44 ) 15ccc: 491e ldr r1, [pc, #120] ; (15d48 ) 15cce: 463b mov r3, r7 15cd0: 4788 blx r1 15cd2: e7fe b.n 15cd2 lv_label_set_text_static(new_label, lv_label_get_text(copy)); 15cd4: 4798 blx r3 15cd6: 4b33 ldr r3, [pc, #204] ; (15da4 ) 15cd8: 4601 mov r1, r0 15cda: 4628 mov r0, r5 15cdc: e7da b.n 15c94 if(ext->text == NULL) return NULL; 15cde: 6827 ldr r7, [r4, #0] 15ce0: 2f00 cmp r7, #0 15ce2: f43f af5b beq.w 15b9c _lv_memcpy(ext->text, copy_ext->text, _lv_mem_get_size(copy_ext->text)); 15ce6: 6831 ldr r1, [r6, #0] 15ce8: 9103 str r1, [sp, #12] 15cea: 4608 mov r0, r1 15cec: 47c8 blx r9 15cee: 9903 ldr r1, [sp, #12] 15cf0: 4b2d ldr r3, [pc, #180] ; (15da8 ) 15cf2: 4602 mov r2, r0 15cf4: 4638 mov r0, r7 15cf6: 4798 blx r3 if(copy_ext->dot_tmp_alloc && copy_ext->dot.tmp_ptr) { 15cf8: 7c73 ldrb r3, [r6, #17] 15cfa: 07db lsls r3, r3, #31 15cfc: d514 bpl.n 15d28 15cfe: 6870 ldr r0, [r6, #4] 15d00: b190 cbz r0, 15d28 uint16_t len = (uint16_t)strlen(copy_ext->dot.tmp_ptr); 15d02: 4b2a ldr r3, [pc, #168] ; (15dac ) 15d04: 4798 blx r3 lv_label_set_dot_tmp(new_label, ext->dot.tmp_ptr, len); 15d06: 6861 ldr r1, [r4, #4] 15d08: 4b29 ldr r3, [pc, #164] ; (15db0 ) 15d0a: b282 uxth r2, r0 15d0c: 4628 mov r0, r5 15d0e: 4798 blx r3 ext->dot_tmp_alloc = copy_ext->dot_tmp_alloc; 15d10: 7c72 ldrb r2, [r6, #17] 15d12: 7c63 ldrb r3, [r4, #17] 15d14: f362 0300 bfi r3, r2, #0, #1 15d18: 7463 strb r3, [r4, #17] ext->dot_end = copy_ext->dot_end; 15d1a: 8933 ldrh r3, [r6, #8] 15d1c: 8123 strh r3, [r4, #8] lv_obj_refresh_style(new_label, LV_STYLE_PROP_ALL); 15d1e: 21ff movs r1, #255 ; 0xff 15d20: 4b24 ldr r3, [pc, #144] ; (15db4 ) 15d22: 4628 mov r0, r5 15d24: 4798 blx r3 15d26: e78a b.n 15c3e _lv_memcpy(ext->dot.tmp, copy_ext->dot.tmp, sizeof(ext->dot.tmp)); 15d28: 2204 movs r2, #4 15d2a: 4b1f ldr r3, [pc, #124] ; (15da8 ) 15d2c: 18b1 adds r1, r6, r2 15d2e: 18a0 adds r0, r4, r2 15d30: 4798 blx r3 15d32: e7ed b.n 15d10 15d34: 00003311 .word 0x00003311 15d38: 0002bf9e .word 0x0002bf9e 15d3c: 0002bdc1 .word 0x0002bdc1 15d40: 0000eb21 .word 0x0000eb21 15d44: 0002673e .word 0x0002673e 15d48: 00001a15 .word 0x00001a15 15d4c: 2000d198 .word 0x2000d198 15d50: 0000418d .word 0x0000418d 15d54: 000022a5 .word 0x000022a5 15d58: 000041d5 .word 0x000041d5 15d5c: 0000438d .word 0x0000438d 15d60: 0019ffff .word 0x0019ffff 15d64: 00015f21 .word 0x00015f21 15d68: 0000225d .word 0x0000225d 15d6c: 00015dc5 .word 0x00015dc5 15d70: 00002209 .word 0x00002209 15d74: 0001051d .word 0x0001051d 15d78: 00002089 .word 0x00002089 15d7c: 0002be1f .word 0x0002be1f 15d80: 0001586d .word 0x0001586d 15d84: 0002be24 .word 0x0002be24 15d88: 00014fe1 .word 0x00014fe1 15d8c: 00015091 .word 0x00015091 15d90: 00015af9 .word 0x00015af9 15d94: 00015035 .word 0x00015035 15d98: 00014f21 .word 0x00014f21 15d9c: 00014f91 .word 0x00014f91 15da0: 0000f04d .word 0x0000f04d 15da4: 000159b1 .word 0x000159b1 15da8: 0000ee69 .word 0x0000ee69 15dac: 00017381 .word 0x00017381 15db0: 00014e39 .word 0x00014e39 15db4: 00002fbd .word 0x00002fbd 15db8: 00001a0d .word 0x00001a0d 15dbc: 00015a31 .word 0x00015a31 15dc0: 0000ed85 .word 0x0000ed85 00015dc4 : if(sign == LV_SIGNAL_GET_STYLE) { 15dc4: 2908 cmp r1, #8 { 15dc6: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} 15dca: 4604 mov r4, r0 15dcc: 460e mov r6, r1 15dce: 4615 mov r5, r2 if(sign == LV_SIGNAL_GET_STYLE) { 15dd0: d10e bne.n 15df0 switch(type) { 15dd2: 7813 ldrb r3, [r2, #0] 15dd4: b133 cbz r3, 15de4 info->result = lv_label_get_style(label, info->part); 15dd6: 2300 movs r3, #0 15dd8: 6053 str r3, [r2, #4] else return ancestor_signal(label, sign, param); 15dda: 4b25 ldr r3, [pc, #148] ; (15e70 ) } 15ddc: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr} else return ancestor_signal(label, sign, param); 15de0: 681b ldr r3, [r3, #0] 15de2: 4718 bx r3 style_dsc_p = &label->style_list; 15de4: 3428 adds r4, #40 ; 0x28 info->result = lv_label_get_style(label, info->part); 15de6: 6054 str r4, [r2, #4] if(info->result != NULL) return LV_RES_OK; 15de8: 2701 movs r7, #1 } 15dea: 4638 mov r0, r7 15dec: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} res = ancestor_signal(label, sign, param); 15df0: 4b1f ldr r3, [pc, #124] ; (15e70 ) 15df2: 681b ldr r3, [r3, #0] 15df4: 4798 blx r3 if(res != LV_RES_OK) return res; 15df6: 2801 cmp r0, #1 res = ancestor_signal(label, sign, param); 15df8: 4607 mov r7, r0 if(res != LV_RES_OK) return res; 15dfa: d1f6 bne.n 15dea if(sign == LV_SIGNAL_GET_TYPE) return lv_obj_handle_get_type_signal(param, LV_OBJX_NAME); 15dfc: 2e07 cmp r6, #7 15dfe: d105 bne.n 15e0c 15e00: 4628 mov r0, r5 15e02: 491c ldr r1, [pc, #112] ; (15e74 ) 15e04: 4b1c ldr r3, [pc, #112] ; (15e78 ) } 15e06: 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); 15e0a: 4718 bx r3 lv_label_ext_t * ext = lv_obj_get_ext_attr(label); 15e0c: 4b1b ldr r3, [pc, #108] ; (15e7c ) 15e0e: 4620 mov r0, r4 15e10: 4798 blx r3 15e12: 4680 mov r8, r0 if(sign == LV_SIGNAL_CLEANUP) { 15e14: b966 cbnz r6, 15e30 if(ext->static_txt == 0) { 15e16: 7c03 ldrb r3, [r0, #16] 15e18: f013 0508 ands.w r5, r3, #8 15e1c: d104 bne.n 15e28 lv_mem_free(ext->text); 15e1e: 6800 ldr r0, [r0, #0] 15e20: 4b17 ldr r3, [pc, #92] ; (15e80 ) 15e22: 4798 blx r3 ext->text = NULL; 15e24: f8c8 5000 str.w r5, [r8] lv_label_dot_tmp_free(label); 15e28: 4b16 ldr r3, [pc, #88] ; (15e84 ) 15e2a: 4620 mov r0, r4 lv_label_refr_text(label); 15e2c: 4798 blx r3 15e2e: e7dc b.n 15dea else if(sign == LV_SIGNAL_STYLE_CHG) { 15e30: 2e04 cmp r6, #4 15e32: d105 bne.n 15e40 lv_label_revert_dots(label); 15e34: 4b14 ldr r3, [pc, #80] ; (15e88 ) 15e36: 4620 mov r0, r4 15e38: 4798 blx r3 lv_label_refr_text(label); 15e3a: 4b14 ldr r3, [pc, #80] ; (15e8c ) 15e3c: 4620 mov r0, r4 15e3e: e7f5 b.n 15e2c else if(sign == LV_SIGNAL_COORD_CHG) { 15e40: 2e02 cmp r6, #2 15e42: d1d2 bne.n 15dea 15e44: 8a23 ldrh r3, [r4, #16] 15e46: 8aa2 ldrh r2, [r4, #20] 15e48: 8829 ldrh r1, [r5, #0] 15e4a: 1ad2 subs r2, r2, r3 15e4c: 88ab ldrh r3, [r5, #4] 15e4e: 1a5b subs r3, r3, r1 if(lv_area_get_width(&label->coords) != lv_area_get_width(param) || 15e50: b292 uxth r2, r2 15e52: b29b uxth r3, r3 15e54: 429a cmp r2, r3 15e56: d1ed bne.n 15e34 return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); 15e58: 8a63 ldrh r3, [r4, #18] 15e5a: 8ae2 ldrh r2, [r4, #22] 15e5c: 8869 ldrh r1, [r5, #2] 15e5e: 1ad2 subs r2, r2, r3 15e60: 88eb ldrh r3, [r5, #6] 15e62: 1a5b subs r3, r3, r1 15e64: b292 uxth r2, r2 15e66: b29b uxth r3, r3 15e68: 429a cmp r2, r3 15e6a: d1e3 bne.n 15e34 15e6c: e7bd b.n 15dea 15e6e: bf00 nop 15e70: 2000d198 .word 0x2000d198 15e74: 0002be32 .word 0x0002be32 15e78: 000044b9 .word 0x000044b9 15e7c: 000041d5 .word 0x000041d5 15e80: 0000ed1d .word 0x0000ed1d 15e84: 00014d55 .word 0x00014d55 15e88: 00014d81 .word 0x00014d81 15e8c: 00015389 .word 0x00015389 00015e90 : { 15e90: b573 push {r0, r1, r4, r5, r6, lr} LV_ASSERT_OBJ(label, LV_OBJX_NAME); 15e92: 4b0b ldr r3, [pc, #44] ; (15ec0 ) { 15e94: 4605 mov r5, r0 LV_ASSERT_OBJ(label, LV_OBJX_NAME); 15e96: 4798 blx r3 15e98: 4604 mov r4, r0 15e9a: b968 cbnz r0, 15eb8 15e9c: 4b09 ldr r3, [pc, #36] ; (15ec4 ) 15e9e: 490a ldr r1, [pc, #40] ; (15ec8 ) 15ea0: 9300 str r3, [sp, #0] 15ea2: f240 321d movw r2, #797 ; 0x31d 15ea6: 2003 movs r0, #3 15ea8: 4e08 ldr r6, [pc, #32] ; (15ecc ) 15eaa: 47b0 blx r6 15eac: 4808 ldr r0, [pc, #32] ; (15ed0 ) 15eae: 4909 ldr r1, [pc, #36] ; (15ed4 ) 15eb0: 462a mov r2, r5 15eb2: 4623 mov r3, r4 15eb4: 4788 blx r1 15eb6: e7fe b.n 15eb6 } 15eb8: f64f 70ff movw r0, #65535 ; 0xffff 15ebc: b002 add sp, #8 15ebe: bd70 pop {r4, r5, r6, pc} 15ec0: 00001a0d .word 0x00001a0d 15ec4: 0002bfc6 .word 0x0002bfc6 15ec8: 0002bdc1 .word 0x0002bdc1 15ecc: 0000eb21 .word 0x0000eb21 15ed0: 0002683f .word 0x0002683f 15ed4: 00001a15 .word 0x00001a15 00015ed8 : { 15ed8: b573 push {r0, r1, r4, r5, r6, lr} LV_ASSERT_OBJ(label, LV_OBJX_NAME); 15eda: 4b0b ldr r3, [pc, #44] ; (15f08 ) { 15edc: 4605 mov r5, r0 LV_ASSERT_OBJ(label, LV_OBJX_NAME); 15ede: 4798 blx r3 15ee0: 4604 mov r4, r0 15ee2: b968 cbnz r0, 15f00 15ee4: 4b09 ldr r3, [pc, #36] ; (15f0c ) 15ee6: 490a ldr r1, [pc, #40] ; (15f10 ) 15ee8: 9300 str r3, [sp, #0] 15eea: f44f 724c mov.w r2, #816 ; 0x330 15eee: 2003 movs r0, #3 15ef0: 4e08 ldr r6, [pc, #32] ; (15f14 ) 15ef2: 47b0 blx r6 15ef4: 4808 ldr r0, [pc, #32] ; (15f18 ) 15ef6: 4909 ldr r1, [pc, #36] ; (15f1c ) 15ef8: 462a mov r2, r5 15efa: 4623 mov r3, r4 15efc: 4788 blx r1 15efe: e7fe b.n 15efe } 15f00: f64f 70ff movw r0, #65535 ; 0xffff 15f04: b002 add sp, #8 15f06: bd70 pop {r4, r5, r6, pc} 15f08: 00001a0d .word 0x00001a0d 15f0c: 0002bfe2 .word 0x0002bfe2 15f10: 0002bdc1 .word 0x0002bdc1 15f14: 0000eb21 .word 0x0000eb21 15f18: 0002683f .word 0x0002683f 15f1c: 00001a15 .word 0x00001a15 00015f20 : { 15f20: e92d 43f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} if(mode == LV_DESIGN_COVER_CHK) 15f24: 2a02 cmp r2, #2 { 15f26: b0a9 sub sp, #164 ; 0xa4 15f28: 4605 mov r5, r0 15f2a: 4688 mov r8, r1 15f2c: 4617 mov r7, r2 if(mode == LV_DESIGN_COVER_CHK) 15f2e: f000 80fa beq.w 16126 else if(mode == LV_DESIGN_DRAW_MAIN) { 15f32: 2a00 cmp r2, #0 15f34: f040 8100 bne.w 16138 lv_label_ext_t * ext = lv_obj_get_ext_attr(label); 15f38: 4b80 ldr r3, [pc, #512] ; (1613c ) _LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_WIDTH, transform_width, lv_style_int_t, _int, scalar) 15f3a: f8df 9238 ldr.w r9, [pc, #568] ; 16174 15f3e: 4798 blx r3 15f40: 2204 movs r2, #4 15f42: 4639 mov r1, r7 15f44: 4604 mov r4, r0 15f46: 4628 mov r0, r5 15f48: 47c8 blx r9 _LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_HEIGHT, transform_height, lv_style_int_t, _int, scalar) 15f4a: 2205 movs r2, #5 _LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_WIDTH, transform_width, lv_style_int_t, _int, scalar) 15f4c: 4606 mov r6, r0 _LV_OBJ_STYLE_SET_GET_DECLARE(TRANSFORM_HEIGHT, transform_height, lv_style_int_t, _int, scalar) 15f4e: 4639 mov r1, r7 15f50: 4628 mov r0, r5 15f52: 47c8 blx r9 15f54: 6969 ldr r1, [r5, #20] 15f56: 4603 mov r3, r0 15f58: 6928 ldr r0, [r5, #16] 15f5a: aa06 add r2, sp, #24 15f5c: c203 stmia r2!, {r0, r1} bg_coords.x1 -= w; 15f5e: f8bd 2018 ldrh.w r2, [sp, #24] 15f62: b2b0 uxth r0, r6 15f64: 1a12 subs r2, r2, r0 15f66: f8ad 2018 strh.w r2, [sp, #24] bg_coords.x2 += w; 15f6a: f8bd 201c ldrh.w r2, [sp, #28] 15f6e: 4410 add r0, r2 15f70: f8ad 001c strh.w r0, [sp, #28] bg_coords.y1 -= h; 15f74: b298 uxth r0, r3 15f76: f8bd 301a ldrh.w r3, [sp, #26] 15f7a: 1a1b subs r3, r3, r0 15f7c: f8ad 301a strh.w r3, [sp, #26] bg_coords.y2 += h; 15f80: f8bd 301e ldrh.w r3, [sp, #30] 15f84: 4418 add r0, r3 15f86: f8ad 001e strh.w r0, [sp, #30] lv_draw_rect_dsc_init(&draw_rect_dsc); 15f8a: 4b6d ldr r3, [pc, #436] ; (16140 ) 15f8c: a813 add r0, sp, #76 ; 0x4c 15f8e: 4798 blx r3 lv_obj_init_draw_rect_dsc(label, LV_LABEL_PART_MAIN, &draw_rect_dsc); 15f90: 4b6c ldr r3, [pc, #432] ; (16144 ) 15f92: aa13 add r2, sp, #76 ; 0x4c 15f94: 4639 mov r1, r7 15f96: 4628 mov r0, r5 15f98: 4798 blx r3 lv_draw_rect(&bg_coords, clip_area, &draw_rect_dsc); 15f9a: aa13 add r2, sp, #76 ; 0x4c 15f9c: 4b6a ldr r3, [pc, #424] ; (16148 ) 15f9e: 4641 mov r1, r8 15fa0: a806 add r0, sp, #24 15fa2: 4798 blx r3 get_txt_coords(label, &txt_coords); 15fa4: 4b69 ldr r3, [pc, #420] ; (1614c ) 15fa6: a908 add r1, sp, #32 15fa8: 4628 mov r0, r5 15faa: 4798 blx r3 bool is_common = _lv_area_intersect(&txt_clip, clip_area, &txt_coords); 15fac: 4b68 ldr r3, [pc, #416] ; (16150 ) 15fae: aa08 add r2, sp, #32 15fb0: 4641 mov r1, r8 15fb2: a80a add r0, sp, #40 ; 0x28 15fb4: 4798 blx r3 if(!is_common) return LV_DESIGN_RES_OK; 15fb6: 2800 cmp r0, #0 15fb8: f000 80b5 beq.w 16126 lv_label_align_t align = lv_label_get_align(label); 15fbc: 4b65 ldr r3, [pc, #404] ; (16154 ) 15fbe: 4628 mov r0, r5 15fc0: 4798 blx r3 if(ext->recolor != 0) flag |= LV_TXT_FLAG_RECOLOR; 15fc2: 7c23 ldrb r3, [r4, #16] lv_txt_flag_t flag = LV_TXT_FLAG_NONE; 15fc4: f3c3 1680 ubfx r6, r3, #6, #1 if(ext->expand != 0) flag |= LV_TXT_FLAG_EXPAND; 15fc8: 061a lsls r2, r3, #24 15fca: bf48 it mi 15fcc: f046 0602 orrmi.w r6, r6, #2 if(ext->long_mode == LV_LABEL_LONG_EXPAND) flag |= LV_TXT_FLAG_FIT; 15fd0: 075b lsls r3, r3, #29 15fd2: bf08 it eq 15fd4: f046 0610 orreq.w r6, r6, #16 if(align == LV_LABEL_ALIGN_CENTER) flag |= LV_TXT_FLAG_CENTER; 15fd8: 2801 cmp r0, #1 15fda: f040 80a8 bne.w 1612e 15fde: f046 0604 orr.w r6, r6, #4 lv_draw_label_dsc_init(&label_draw_dsc); 15fe2: 4b5d ldr r3, [pc, #372] ; (16158 ) 15fe4: a80c add r0, sp, #48 ; 0x30 15fe6: 4798 blx r3 label_draw_dsc.sel_start = lv_label_get_text_sel_start(label); 15fe8: 4b5c ldr r3, [pc, #368] ; (1615c ) 15fea: 4628 mov r0, r5 15fec: 4798 blx r3 label_draw_dsc.sel_end = lv_label_get_text_sel_end(label); 15fee: 4b5c ldr r3, [pc, #368] ; (16160 ) label_draw_dsc.sel_start = lv_label_get_text_sel_start(label); 15ff0: f8ad 003e strh.w r0, [sp, #62] ; 0x3e label_draw_dsc.sel_end = lv_label_get_text_sel_end(label); 15ff4: 4628 mov r0, r5 15ff6: 4798 blx r3 label_draw_dsc.ofs_x = ext->offset.x; 15ff8: 89a3 ldrh r3, [r4, #12] 15ffa: f8ad 3042 strh.w r3, [sp, #66] ; 0x42 label_draw_dsc.ofs_y = ext->offset.y; 15ffe: 89e3 ldrh r3, [r4, #14] label_draw_dsc.sel_end = lv_label_get_text_sel_end(label); 16000: f8ad 0040 strh.w r0, [sp, #64] ; 0x40 label_draw_dsc.ofs_y = ext->offset.y; 16004: f8ad 3044 strh.w r3, [sp, #68] ; 0x44 lv_obj_init_draw_label_dsc(label, LV_LABEL_PART_MAIN, &label_draw_dsc); 16008: aa0c add r2, sp, #48 ; 0x30 1600a: 4b56 ldr r3, [pc, #344] ; (16164 ) label_draw_dsc.flag = flag; 1600c: f88d 6047 strb.w r6, [sp, #71] ; 0x47 lv_obj_init_draw_label_dsc(label, LV_LABEL_PART_MAIN, &label_draw_dsc); 16010: 2100 movs r1, #0 16012: 4628 mov r0, r5 16014: 4798 blx r3 if((ext->long_mode == LV_LABEL_LONG_SROLL || ext->long_mode == LV_LABEL_LONG_SROLL_CIRC) && 16016: 7c23 ldrb r3, [r4, #16] 16018: f003 0207 and.w r2, r3, #7 1601c: 3a03 subs r2, #3 1601e: 2a01 cmp r2, #1 16020: d824 bhi.n 1606c (ext->align == LV_LABEL_ALIGN_CENTER || ext->align == LV_LABEL_ALIGN_RIGHT)) { 16022: f003 0330 and.w r3, r3, #48 ; 0x30 if((ext->long_mode == LV_LABEL_LONG_SROLL || ext->long_mode == LV_LABEL_LONG_SROLL_CIRC) && 16026: 2b10 cmp r3, #16 16028: d001 beq.n 1602e (ext->align == LV_LABEL_ALIGN_CENTER || ext->align == LV_LABEL_ALIGN_RIGHT)) { 1602a: 2b20 cmp r3, #32 1602c: d11e bne.n 1606c _lv_txt_get_size(&size, ext->text, label_draw_dsc.font, label_draw_dsc.letter_space, label_draw_dsc.line_space, 1602e: f647 4318 movw r3, #31768 ; 0x7c18 16032: 9301 str r3, [sp, #4] 16034: f9bd 303a ldrsh.w r3, [sp, #58] ; 0x3a 16038: 9300 str r3, [sp, #0] 1603a: 9602 str r6, [sp, #8] 1603c: f9bd 303c ldrsh.w r3, [sp, #60] ; 0x3c 16040: 9a0d ldr r2, [sp, #52] ; 0x34 16042: 6821 ldr r1, [r4, #0] 16044: 4d48 ldr r5, [pc, #288] ; (16168 ) 16046: a805 add r0, sp, #20 16048: 47a8 blx r5 return (lv_coord_t)(area_p->x2 - area_p->x1 + 1); 1604a: f8bd 3024 ldrh.w r3, [sp, #36] ; 0x24 1604e: f8bd 2020 ldrh.w r2, [sp, #32] 16052: 3301 adds r3, #1 16054: 1a9b subs r3, r3, r2 if(size.x > lv_area_get_width(&txt_coords)) { 16056: f9bd 2014 ldrsh.w r2, [sp, #20] 1605a: b21b sxth r3, r3 1605c: 429a cmp r2, r3 label_draw_dsc.flag &= ~LV_TXT_FLAG_CENTER; 1605e: bfc2 ittt gt 16060: f89d 3047 ldrbgt.w r3, [sp, #71] ; 0x47 16064: f023 030c bicgt.w r3, r3, #12 16068: f88d 3047 strbgt.w r3, [sp, #71] ; 0x47 lv_draw_label(&txt_coords, &txt_clip, &label_draw_dsc, ext->text, hint); 1606c: f04f 0900 mov.w r9, #0 16070: f8cd 9000 str.w r9, [sp] 16074: 6823 ldr r3, [r4, #0] 16076: f8df 80f8 ldr.w r8, [pc, #248] ; 16170 1607a: aa0c add r2, sp, #48 ; 0x30 1607c: a90a add r1, sp, #40 ; 0x28 1607e: a808 add r0, sp, #32 16080: 47c0 blx r8 if(ext->long_mode == LV_LABEL_LONG_SROLL_CIRC) { 16082: 7c23 ldrb r3, [r4, #16] 16084: f003 0307 and.w r3, r3, #7 16088: 2b04 cmp r3, #4 1608a: d14c bne.n 16126 _lv_txt_get_size(&size, ext->text, label_draw_dsc.font, label_draw_dsc.letter_space, label_draw_dsc.line_space, 1608c: f647 4318 movw r3, #31768 ; 0x7c18 16090: 9301 str r3, [sp, #4] 16092: f9bd 303a ldrsh.w r3, [sp, #58] ; 0x3a 16096: 9300 str r3, [sp, #0] 16098: 9602 str r6, [sp, #8] 1609a: f9bd 303c ldrsh.w r3, [sp, #60] ; 0x3c 1609e: 9a0d ldr r2, [sp, #52] ; 0x34 160a0: 6821 ldr r1, [r4, #0] 160a2: 4d31 ldr r5, [pc, #196] ; (16168 ) 160a4: a805 add r0, sp, #20 160a6: 47a8 blx r5 160a8: f8bd 2024 ldrh.w r2, [sp, #36] ; 0x24 160ac: f8bd 1020 ldrh.w r1, [sp, #32] if(size.x > lv_area_get_width(&txt_coords)) { 160b0: f9bd 3014 ldrsh.w r3, [sp, #20] 160b4: 3201 adds r2, #1 160b6: 1a52 subs r2, r2, r1 160b8: b212 sxth r2, r2 160ba: 4293 cmp r3, r2 160bc: dd16 ble.n 160ec label_draw_dsc.ofs_x = ext->offset.x + size.x + 160be: 89a2 ldrh r2, [r4, #12] lv_font_get_glyph_width(label_draw_dsc.font, ' ', ' ') * LV_LABEL_WAIT_CHAR_COUNT; 160c0: 980d ldr r0, [sp, #52] ; 0x34 label_draw_dsc.ofs_x = ext->offset.x + size.x + 160c2: 4413 add r3, r2 lv_font_get_glyph_width(label_draw_dsc.font, ' ', ' ') * LV_LABEL_WAIT_CHAR_COUNT; 160c4: 2220 movs r2, #32 160c6: 4611 mov r1, r2 label_draw_dsc.ofs_x = ext->offset.x + size.x + 160c8: b29d uxth r5, r3 lv_font_get_glyph_width(label_draw_dsc.font, ' ', ' ') * LV_LABEL_WAIT_CHAR_COUNT; 160ca: 4b28 ldr r3, [pc, #160] ; (1616c ) 160cc: 4798 blx r3 label_draw_dsc.ofs_y = ext->offset.y; 160ce: 89e3 ldrh r3, [r4, #14] lv_draw_label(&txt_coords, &txt_clip, &label_draw_dsc, ext->text, hint); 160d0: f8cd 9000 str.w r9, [sp] label_draw_dsc.ofs_x = ext->offset.x + size.x + 160d4: eb00 0040 add.w r0, r0, r0, lsl #1 160d8: 4405 add r5, r0 label_draw_dsc.ofs_y = ext->offset.y; 160da: f8ad 3044 strh.w r3, [sp, #68] ; 0x44 lv_draw_label(&txt_coords, &txt_clip, &label_draw_dsc, ext->text, hint); 160de: aa0c add r2, sp, #48 ; 0x30 160e0: 6823 ldr r3, [r4, #0] label_draw_dsc.ofs_x = ext->offset.x + size.x + 160e2: f8ad 5042 strh.w r5, [sp, #66] ; 0x42 lv_draw_label(&txt_coords, &txt_clip, &label_draw_dsc, ext->text, hint); 160e6: a90a add r1, sp, #40 ; 0x28 160e8: a808 add r0, sp, #32 160ea: 47c0 blx r8 return (lv_coord_t)(area_p->y2 - area_p->y1 + 1); 160ec: f8bd 3026 ldrh.w r3, [sp, #38] ; 0x26 160f0: f8bd 1022 ldrh.w r1, [sp, #34] ; 0x22 if(size.y > lv_area_get_height(&txt_coords)) { 160f4: f9bd 2016 ldrsh.w r2, [sp, #22] 160f8: 3301 adds r3, #1 160fa: 1a5b subs r3, r3, r1 160fc: b21b sxth r3, r3 160fe: 429a cmp r2, r3 16100: dd11 ble.n 16126 label_draw_dsc.ofs_x = ext->offset.x; 16102: 89a3 ldrh r3, [r4, #12] 16104: f8ad 3042 strh.w r3, [sp, #66] ; 0x42 16108: 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); 1610a: 891b ldrh r3, [r3, #8] 1610c: 441a add r2, r3 1610e: 89e3 ldrh r3, [r4, #14] 16110: 441a add r2, r3 lv_draw_label(&txt_coords, &txt_clip, &label_draw_dsc, ext->text, hint); 16112: 2300 movs r3, #0 16114: 9300 str r3, [sp, #0] 16116: 6823 ldr r3, [r4, #0] label_draw_dsc.ofs_y = ext->offset.y + size.y + lv_font_get_line_height(label_draw_dsc.font); 16118: f8ad 2044 strh.w r2, [sp, #68] ; 0x44 lv_draw_label(&txt_coords, &txt_clip, &label_draw_dsc, ext->text, hint); 1611c: 4c14 ldr r4, [pc, #80] ; (16170 ) 1611e: aa0c add r2, sp, #48 ; 0x30 16120: a90a add r1, sp, #40 ; 0x28 16122: a808 add r0, sp, #32 16124: 47a0 blx r4 } 16126: 4638 mov r0, r7 16128: b029 add sp, #164 ; 0xa4 1612a: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} if(align == LV_LABEL_ALIGN_RIGHT) flag |= LV_TXT_FLAG_RIGHT; 1612e: 2802 cmp r0, #2 16130: bf08 it eq 16132: f046 0608 orreq.w r6, r6, #8 16136: e754 b.n 15fe2 return LV_DESIGN_RES_OK; 16138: 2700 movs r7, #0 1613a: e7f4 b.n 16126 1613c: 000041d5 .word 0x000041d5 16140: 00009dcd .word 0x00009dcd 16144: 000044d5 .word 0x000044d5 16148: 00009e19 .word 0x00009e19 1614c: 00014ec5 .word 0x00014ec5 16150: 0000e0b9 .word 0x0000e0b9 16154: 00015035 .word 0x00015035 16158: 00007a71 .word 0x00007a71 1615c: 00015e91 .word 0x00015e91 16160: 00015ed9 .word 0x00015ed9 16164: 00004a11 .word 0x00004a11 16168: 000103d5 .word 0x000103d5 1616c: 0000d3a1 .word 0x0000d3a1 16170: 00007aa1 .word 0x00007aa1 16174: 0000393d .word 0x0000393d 00016178 <__aeabi_drsub>: 16178: f081 4100 eor.w r1, r1, #2147483648 ; 0x80000000 1617c: e002 b.n 16184 <__adddf3> 1617e: bf00 nop 00016180 <__aeabi_dsub>: 16180: f083 4300 eor.w r3, r3, #2147483648 ; 0x80000000 00016184 <__adddf3>: 16184: b530 push {r4, r5, lr} 16186: ea4f 0441 mov.w r4, r1, lsl #1 1618a: ea4f 0543 mov.w r5, r3, lsl #1 1618e: ea94 0f05 teq r4, r5 16192: bf08 it eq 16194: ea90 0f02 teqeq r0, r2 16198: bf1f itttt ne 1619a: ea54 0c00 orrsne.w ip, r4, r0 1619e: ea55 0c02 orrsne.w ip, r5, r2 161a2: ea7f 5c64 mvnsne.w ip, r4, asr #21 161a6: ea7f 5c65 mvnsne.w ip, r5, asr #21 161aa: f000 80e2 beq.w 16372 <__adddf3+0x1ee> 161ae: ea4f 5454 mov.w r4, r4, lsr #21 161b2: ebd4 5555 rsbs r5, r4, r5, lsr #21 161b6: bfb8 it lt 161b8: 426d neglt r5, r5 161ba: dd0c ble.n 161d6 <__adddf3+0x52> 161bc: 442c add r4, r5 161be: ea80 0202 eor.w r2, r0, r2 161c2: ea81 0303 eor.w r3, r1, r3 161c6: ea82 0000 eor.w r0, r2, r0 161ca: ea83 0101 eor.w r1, r3, r1 161ce: ea80 0202 eor.w r2, r0, r2 161d2: ea81 0303 eor.w r3, r1, r3 161d6: 2d36 cmp r5, #54 ; 0x36 161d8: bf88 it hi 161da: bd30 pophi {r4, r5, pc} 161dc: f011 4f00 tst.w r1, #2147483648 ; 0x80000000 161e0: ea4f 3101 mov.w r1, r1, lsl #12 161e4: f44f 1c80 mov.w ip, #1048576 ; 0x100000 161e8: ea4c 3111 orr.w r1, ip, r1, lsr #12 161ec: d002 beq.n 161f4 <__adddf3+0x70> 161ee: 4240 negs r0, r0 161f0: eb61 0141 sbc.w r1, r1, r1, lsl #1 161f4: f013 4f00 tst.w r3, #2147483648 ; 0x80000000 161f8: ea4f 3303 mov.w r3, r3, lsl #12 161fc: ea4c 3313 orr.w r3, ip, r3, lsr #12 16200: d002 beq.n 16208 <__adddf3+0x84> 16202: 4252 negs r2, r2 16204: eb63 0343 sbc.w r3, r3, r3, lsl #1 16208: ea94 0f05 teq r4, r5 1620c: f000 80a7 beq.w 1635e <__adddf3+0x1da> 16210: f1a4 0401 sub.w r4, r4, #1 16214: f1d5 0e20 rsbs lr, r5, #32 16218: db0d blt.n 16236 <__adddf3+0xb2> 1621a: fa02 fc0e lsl.w ip, r2, lr 1621e: fa22 f205 lsr.w r2, r2, r5 16222: 1880 adds r0, r0, r2 16224: f141 0100 adc.w r1, r1, #0 16228: fa03 f20e lsl.w r2, r3, lr 1622c: 1880 adds r0, r0, r2 1622e: fa43 f305 asr.w r3, r3, r5 16232: 4159 adcs r1, r3 16234: e00e b.n 16254 <__adddf3+0xd0> 16236: f1a5 0520 sub.w r5, r5, #32 1623a: f10e 0e20 add.w lr, lr, #32 1623e: 2a01 cmp r2, #1 16240: fa03 fc0e lsl.w ip, r3, lr 16244: bf28 it cs 16246: f04c 0c02 orrcs.w ip, ip, #2 1624a: fa43 f305 asr.w r3, r3, r5 1624e: 18c0 adds r0, r0, r3 16250: eb51 71e3 adcs.w r1, r1, r3, asr #31 16254: f001 4500 and.w r5, r1, #2147483648 ; 0x80000000 16258: d507 bpl.n 1626a <__adddf3+0xe6> 1625a: f04f 0e00 mov.w lr, #0 1625e: f1dc 0c00 rsbs ip, ip, #0 16262: eb7e 0000 sbcs.w r0, lr, r0 16266: eb6e 0101 sbc.w r1, lr, r1 1626a: f5b1 1f80 cmp.w r1, #1048576 ; 0x100000 1626e: d31b bcc.n 162a8 <__adddf3+0x124> 16270: f5b1 1f00 cmp.w r1, #2097152 ; 0x200000 16274: d30c bcc.n 16290 <__adddf3+0x10c> 16276: 0849 lsrs r1, r1, #1 16278: ea5f 0030 movs.w r0, r0, rrx 1627c: ea4f 0c3c mov.w ip, ip, rrx 16280: f104 0401 add.w r4, r4, #1 16284: ea4f 5244 mov.w r2, r4, lsl #21 16288: f512 0f80 cmn.w r2, #4194304 ; 0x400000 1628c: f080 809a bcs.w 163c4 <__adddf3+0x240> 16290: f1bc 4f00 cmp.w ip, #2147483648 ; 0x80000000 16294: bf08 it eq 16296: ea5f 0c50 movseq.w ip, r0, lsr #1 1629a: f150 0000 adcs.w r0, r0, #0 1629e: eb41 5104 adc.w r1, r1, r4, lsl #20 162a2: ea41 0105 orr.w r1, r1, r5 162a6: bd30 pop {r4, r5, pc} 162a8: ea5f 0c4c movs.w ip, ip, lsl #1 162ac: 4140 adcs r0, r0 162ae: eb41 0101 adc.w r1, r1, r1 162b2: 3c01 subs r4, #1 162b4: bf28 it cs 162b6: f5b1 1f80 cmpcs.w r1, #1048576 ; 0x100000 162ba: d2e9 bcs.n 16290 <__adddf3+0x10c> 162bc: f091 0f00 teq r1, #0 162c0: bf04 itt eq 162c2: 4601 moveq r1, r0 162c4: 2000 moveq r0, #0 162c6: fab1 f381 clz r3, r1 162ca: bf08 it eq 162cc: 3320 addeq r3, #32 162ce: f1a3 030b sub.w r3, r3, #11 162d2: f1b3 0220 subs.w r2, r3, #32 162d6: da0c bge.n 162f2 <__adddf3+0x16e> 162d8: 320c adds r2, #12 162da: dd08 ble.n 162ee <__adddf3+0x16a> 162dc: f102 0c14 add.w ip, r2, #20 162e0: f1c2 020c rsb r2, r2, #12 162e4: fa01 f00c lsl.w r0, r1, ip 162e8: fa21 f102 lsr.w r1, r1, r2 162ec: e00c b.n 16308 <__adddf3+0x184> 162ee: f102 0214 add.w r2, r2, #20 162f2: bfd8 it le 162f4: f1c2 0c20 rsble ip, r2, #32 162f8: fa01 f102 lsl.w r1, r1, r2 162fc: fa20 fc0c lsr.w ip, r0, ip 16300: bfdc itt le 16302: ea41 010c orrle.w r1, r1, ip 16306: 4090 lslle r0, r2 16308: 1ae4 subs r4, r4, r3 1630a: bfa2 ittt ge 1630c: eb01 5104 addge.w r1, r1, r4, lsl #20 16310: 4329 orrge r1, r5 16312: bd30 popge {r4, r5, pc} 16314: ea6f 0404 mvn.w r4, r4 16318: 3c1f subs r4, #31 1631a: da1c bge.n 16356 <__adddf3+0x1d2> 1631c: 340c adds r4, #12 1631e: dc0e bgt.n 1633e <__adddf3+0x1ba> 16320: f104 0414 add.w r4, r4, #20 16324: f1c4 0220 rsb r2, r4, #32 16328: fa20 f004 lsr.w r0, r0, r4 1632c: fa01 f302 lsl.w r3, r1, r2 16330: ea40 0003 orr.w r0, r0, r3 16334: fa21 f304 lsr.w r3, r1, r4 16338: ea45 0103 orr.w r1, r5, r3 1633c: bd30 pop {r4, r5, pc} 1633e: f1c4 040c rsb r4, r4, #12 16342: f1c4 0220 rsb r2, r4, #32 16346: fa20 f002 lsr.w r0, r0, r2 1634a: fa01 f304 lsl.w r3, r1, r4 1634e: ea40 0003 orr.w r0, r0, r3 16352: 4629 mov r1, r5 16354: bd30 pop {r4, r5, pc} 16356: fa21 f004 lsr.w r0, r1, r4 1635a: 4629 mov r1, r5 1635c: bd30 pop {r4, r5, pc} 1635e: f094 0f00 teq r4, #0 16362: f483 1380 eor.w r3, r3, #1048576 ; 0x100000 16366: bf06 itte eq 16368: f481 1180 eoreq.w r1, r1, #1048576 ; 0x100000 1636c: 3401 addeq r4, #1 1636e: 3d01 subne r5, #1 16370: e74e b.n 16210 <__adddf3+0x8c> 16372: ea7f 5c64 mvns.w ip, r4, asr #21 16376: bf18 it ne 16378: ea7f 5c65 mvnsne.w ip, r5, asr #21 1637c: d029 beq.n 163d2 <__adddf3+0x24e> 1637e: ea94 0f05 teq r4, r5 16382: bf08 it eq 16384: ea90 0f02 teqeq r0, r2 16388: d005 beq.n 16396 <__adddf3+0x212> 1638a: ea54 0c00 orrs.w ip, r4, r0 1638e: bf04 itt eq 16390: 4619 moveq r1, r3 16392: 4610 moveq r0, r2 16394: bd30 pop {r4, r5, pc} 16396: ea91 0f03 teq r1, r3 1639a: bf1e ittt ne 1639c: 2100 movne r1, #0 1639e: 2000 movne r0, #0 163a0: bd30 popne {r4, r5, pc} 163a2: ea5f 5c54 movs.w ip, r4, lsr #21 163a6: d105 bne.n 163b4 <__adddf3+0x230> 163a8: 0040 lsls r0, r0, #1 163aa: 4149 adcs r1, r1 163ac: bf28 it cs 163ae: f041 4100 orrcs.w r1, r1, #2147483648 ; 0x80000000 163b2: bd30 pop {r4, r5, pc} 163b4: f514 0480 adds.w r4, r4, #4194304 ; 0x400000 163b8: bf3c itt cc 163ba: f501 1180 addcc.w r1, r1, #1048576 ; 0x100000 163be: bd30 popcc {r4, r5, pc} 163c0: f001 4500 and.w r5, r1, #2147483648 ; 0x80000000 163c4: f045 41fe orr.w r1, r5, #2130706432 ; 0x7f000000 163c8: f441 0170 orr.w r1, r1, #15728640 ; 0xf00000 163cc: f04f 0000 mov.w r0, #0 163d0: bd30 pop {r4, r5, pc} 163d2: ea7f 5c64 mvns.w ip, r4, asr #21 163d6: bf1a itte ne 163d8: 4619 movne r1, r3 163da: 4610 movne r0, r2 163dc: ea7f 5c65 mvnseq.w ip, r5, asr #21 163e0: bf1c itt ne 163e2: 460b movne r3, r1 163e4: 4602 movne r2, r0 163e6: ea50 3401 orrs.w r4, r0, r1, lsl #12 163ea: bf06 itte eq 163ec: ea52 3503 orrseq.w r5, r2, r3, lsl #12 163f0: ea91 0f03 teqeq r1, r3 163f4: f441 2100 orrne.w r1, r1, #524288 ; 0x80000 163f8: bd30 pop {r4, r5, pc} 163fa: bf00 nop 000163fc <__aeabi_ui2d>: 163fc: f090 0f00 teq r0, #0 16400: bf04 itt eq 16402: 2100 moveq r1, #0 16404: 4770 bxeq lr 16406: b530 push {r4, r5, lr} 16408: f44f 6480 mov.w r4, #1024 ; 0x400 1640c: f104 0432 add.w r4, r4, #50 ; 0x32 16410: f04f 0500 mov.w r5, #0 16414: f04f 0100 mov.w r1, #0 16418: e750 b.n 162bc <__adddf3+0x138> 1641a: bf00 nop 0001641c <__aeabi_i2d>: 1641c: f090 0f00 teq r0, #0 16420: bf04 itt eq 16422: 2100 moveq r1, #0 16424: 4770 bxeq lr 16426: b530 push {r4, r5, lr} 16428: f44f 6480 mov.w r4, #1024 ; 0x400 1642c: f104 0432 add.w r4, r4, #50 ; 0x32 16430: f010 4500 ands.w r5, r0, #2147483648 ; 0x80000000 16434: bf48 it mi 16436: 4240 negmi r0, r0 16438: f04f 0100 mov.w r1, #0 1643c: e73e b.n 162bc <__adddf3+0x138> 1643e: bf00 nop 00016440 <__aeabi_f2d>: 16440: 0042 lsls r2, r0, #1 16442: ea4f 01e2 mov.w r1, r2, asr #3 16446: ea4f 0131 mov.w r1, r1, rrx 1644a: ea4f 7002 mov.w r0, r2, lsl #28 1644e: bf1f itttt ne 16450: f012 437f andsne.w r3, r2, #4278190080 ; 0xff000000 16454: f093 4f7f teqne r3, #4278190080 ; 0xff000000 16458: f081 5160 eorne.w r1, r1, #939524096 ; 0x38000000 1645c: 4770 bxne lr 1645e: f032 427f bics.w r2, r2, #4278190080 ; 0xff000000 16462: bf08 it eq 16464: 4770 bxeq lr 16466: f093 4f7f teq r3, #4278190080 ; 0xff000000 1646a: bf04 itt eq 1646c: f441 2100 orreq.w r1, r1, #524288 ; 0x80000 16470: 4770 bxeq lr 16472: b530 push {r4, r5, lr} 16474: f44f 7460 mov.w r4, #896 ; 0x380 16478: f001 4500 and.w r5, r1, #2147483648 ; 0x80000000 1647c: f021 4100 bic.w r1, r1, #2147483648 ; 0x80000000 16480: e71c b.n 162bc <__adddf3+0x138> 16482: bf00 nop 00016484 <__aeabi_ul2d>: 16484: ea50 0201 orrs.w r2, r0, r1 16488: bf08 it eq 1648a: 4770 bxeq lr 1648c: b530 push {r4, r5, lr} 1648e: f04f 0500 mov.w r5, #0 16492: e00a b.n 164aa <__aeabi_l2d+0x16> 00016494 <__aeabi_l2d>: 16494: ea50 0201 orrs.w r2, r0, r1 16498: bf08 it eq 1649a: 4770 bxeq lr 1649c: b530 push {r4, r5, lr} 1649e: f011 4500 ands.w r5, r1, #2147483648 ; 0x80000000 164a2: d502 bpl.n 164aa <__aeabi_l2d+0x16> 164a4: 4240 negs r0, r0 164a6: eb61 0141 sbc.w r1, r1, r1, lsl #1 164aa: f44f 6480 mov.w r4, #1024 ; 0x400 164ae: f104 0432 add.w r4, r4, #50 ; 0x32 164b2: ea5f 5c91 movs.w ip, r1, lsr #22 164b6: f43f aed8 beq.w 1626a <__adddf3+0xe6> 164ba: f04f 0203 mov.w r2, #3 164be: ea5f 0cdc movs.w ip, ip, lsr #3 164c2: bf18 it ne 164c4: 3203 addne r2, #3 164c6: ea5f 0cdc movs.w ip, ip, lsr #3 164ca: bf18 it ne 164cc: 3203 addne r2, #3 164ce: eb02 02dc add.w r2, r2, ip, lsr #3 164d2: f1c2 0320 rsb r3, r2, #32 164d6: fa00 fc03 lsl.w ip, r0, r3 164da: fa20 f002 lsr.w r0, r0, r2 164de: fa01 fe03 lsl.w lr, r1, r3 164e2: ea40 000e orr.w r0, r0, lr 164e6: fa21 f102 lsr.w r1, r1, r2 164ea: 4414 add r4, r2 164ec: e6bd b.n 1626a <__adddf3+0xe6> 164ee: bf00 nop 000164f0 <__aeabi_dmul>: 164f0: b570 push {r4, r5, r6, lr} 164f2: f04f 0cff mov.w ip, #255 ; 0xff 164f6: f44c 6ce0 orr.w ip, ip, #1792 ; 0x700 164fa: ea1c 5411 ands.w r4, ip, r1, lsr #20 164fe: bf1d ittte ne 16500: ea1c 5513 andsne.w r5, ip, r3, lsr #20 16504: ea94 0f0c teqne r4, ip 16508: ea95 0f0c teqne r5, ip 1650c: f000 f8de bleq 166cc <__aeabi_dmul+0x1dc> 16510: 442c add r4, r5 16512: ea81 0603 eor.w r6, r1, r3 16516: ea21 514c bic.w r1, r1, ip, lsl #21 1651a: ea23 534c bic.w r3, r3, ip, lsl #21 1651e: ea50 3501 orrs.w r5, r0, r1, lsl #12 16522: bf18 it ne 16524: ea52 3503 orrsne.w r5, r2, r3, lsl #12 16528: f441 1180 orr.w r1, r1, #1048576 ; 0x100000 1652c: f443 1380 orr.w r3, r3, #1048576 ; 0x100000 16530: d038 beq.n 165a4 <__aeabi_dmul+0xb4> 16532: fba0 ce02 umull ip, lr, r0, r2 16536: f04f 0500 mov.w r5, #0 1653a: fbe1 e502 umlal lr, r5, r1, r2 1653e: f006 4200 and.w r2, r6, #2147483648 ; 0x80000000 16542: fbe0 e503 umlal lr, r5, r0, r3 16546: f04f 0600 mov.w r6, #0 1654a: fbe1 5603 umlal r5, r6, r1, r3 1654e: f09c 0f00 teq ip, #0 16552: bf18 it ne 16554: f04e 0e01 orrne.w lr, lr, #1 16558: f1a4 04ff sub.w r4, r4, #255 ; 0xff 1655c: f5b6 7f00 cmp.w r6, #512 ; 0x200 16560: f564 7440 sbc.w r4, r4, #768 ; 0x300 16564: d204 bcs.n 16570 <__aeabi_dmul+0x80> 16566: ea5f 0e4e movs.w lr, lr, lsl #1 1656a: 416d adcs r5, r5 1656c: eb46 0606 adc.w r6, r6, r6 16570: ea42 21c6 orr.w r1, r2, r6, lsl #11 16574: ea41 5155 orr.w r1, r1, r5, lsr #21 16578: ea4f 20c5 mov.w r0, r5, lsl #11 1657c: ea40 505e orr.w r0, r0, lr, lsr #21 16580: ea4f 2ece mov.w lr, lr, lsl #11 16584: f1b4 0cfd subs.w ip, r4, #253 ; 0xfd 16588: bf88 it hi 1658a: f5bc 6fe0 cmphi.w ip, #1792 ; 0x700 1658e: d81e bhi.n 165ce <__aeabi_dmul+0xde> 16590: f1be 4f00 cmp.w lr, #2147483648 ; 0x80000000 16594: bf08 it eq 16596: ea5f 0e50 movseq.w lr, r0, lsr #1 1659a: f150 0000 adcs.w r0, r0, #0 1659e: eb41 5104 adc.w r1, r1, r4, lsl #20 165a2: bd70 pop {r4, r5, r6, pc} 165a4: f006 4600 and.w r6, r6, #2147483648 ; 0x80000000 165a8: ea46 0101 orr.w r1, r6, r1 165ac: ea40 0002 orr.w r0, r0, r2 165b0: ea81 0103 eor.w r1, r1, r3 165b4: ebb4 045c subs.w r4, r4, ip, lsr #1 165b8: bfc2 ittt gt 165ba: ebd4 050c rsbsgt r5, r4, ip 165be: ea41 5104 orrgt.w r1, r1, r4, lsl #20 165c2: bd70 popgt {r4, r5, r6, pc} 165c4: f441 1180 orr.w r1, r1, #1048576 ; 0x100000 165c8: f04f 0e00 mov.w lr, #0 165cc: 3c01 subs r4, #1 165ce: f300 80ab bgt.w 16728 <__aeabi_dmul+0x238> 165d2: f114 0f36 cmn.w r4, #54 ; 0x36 165d6: bfde ittt le 165d8: 2000 movle r0, #0 165da: f001 4100 andle.w r1, r1, #2147483648 ; 0x80000000 165de: bd70 pople {r4, r5, r6, pc} 165e0: f1c4 0400 rsb r4, r4, #0 165e4: 3c20 subs r4, #32 165e6: da35 bge.n 16654 <__aeabi_dmul+0x164> 165e8: 340c adds r4, #12 165ea: dc1b bgt.n 16624 <__aeabi_dmul+0x134> 165ec: f104 0414 add.w r4, r4, #20 165f0: f1c4 0520 rsb r5, r4, #32 165f4: fa00 f305 lsl.w r3, r0, r5 165f8: fa20 f004 lsr.w r0, r0, r4 165fc: fa01 f205 lsl.w r2, r1, r5 16600: ea40 0002 orr.w r0, r0, r2 16604: f001 4200 and.w r2, r1, #2147483648 ; 0x80000000 16608: f021 4100 bic.w r1, r1, #2147483648 ; 0x80000000 1660c: eb10 70d3 adds.w r0, r0, r3, lsr #31 16610: fa21 f604 lsr.w r6, r1, r4 16614: eb42 0106 adc.w r1, r2, r6 16618: ea5e 0e43 orrs.w lr, lr, r3, lsl #1 1661c: bf08 it eq 1661e: ea20 70d3 biceq.w r0, r0, r3, lsr #31 16622: bd70 pop {r4, r5, r6, pc} 16624: f1c4 040c rsb r4, r4, #12 16628: f1c4 0520 rsb r5, r4, #32 1662c: fa00 f304 lsl.w r3, r0, r4 16630: fa20 f005 lsr.w r0, r0, r5 16634: fa01 f204 lsl.w r2, r1, r4 16638: ea40 0002 orr.w r0, r0, r2 1663c: f001 4100 and.w r1, r1, #2147483648 ; 0x80000000 16640: eb10 70d3 adds.w r0, r0, r3, lsr #31 16644: f141 0100 adc.w r1, r1, #0 16648: ea5e 0e43 orrs.w lr, lr, r3, lsl #1 1664c: bf08 it eq 1664e: ea20 70d3 biceq.w r0, r0, r3, lsr #31 16652: bd70 pop {r4, r5, r6, pc} 16654: f1c4 0520 rsb r5, r4, #32 16658: fa00 f205 lsl.w r2, r0, r5 1665c: ea4e 0e02 orr.w lr, lr, r2 16660: fa20 f304 lsr.w r3, r0, r4 16664: fa01 f205 lsl.w r2, r1, r5 16668: ea43 0302 orr.w r3, r3, r2 1666c: fa21 f004 lsr.w r0, r1, r4 16670: f001 4100 and.w r1, r1, #2147483648 ; 0x80000000 16674: fa21 f204 lsr.w r2, r1, r4 16678: ea20 0002 bic.w r0, r0, r2 1667c: eb00 70d3 add.w r0, r0, r3, lsr #31 16680: ea5e 0e43 orrs.w lr, lr, r3, lsl #1 16684: bf08 it eq 16686: ea20 70d3 biceq.w r0, r0, r3, lsr #31 1668a: bd70 pop {r4, r5, r6, pc} 1668c: f094 0f00 teq r4, #0 16690: d10f bne.n 166b2 <__aeabi_dmul+0x1c2> 16692: f001 4600 and.w r6, r1, #2147483648 ; 0x80000000 16696: 0040 lsls r0, r0, #1 16698: eb41 0101 adc.w r1, r1, r1 1669c: f411 1f80 tst.w r1, #1048576 ; 0x100000 166a0: bf08 it eq 166a2: 3c01 subeq r4, #1 166a4: d0f7 beq.n 16696 <__aeabi_dmul+0x1a6> 166a6: ea41 0106 orr.w r1, r1, r6 166aa: f095 0f00 teq r5, #0 166ae: bf18 it ne 166b0: 4770 bxne lr 166b2: f003 4600 and.w r6, r3, #2147483648 ; 0x80000000 166b6: 0052 lsls r2, r2, #1 166b8: eb43 0303 adc.w r3, r3, r3 166bc: f413 1f80 tst.w r3, #1048576 ; 0x100000 166c0: bf08 it eq 166c2: 3d01 subeq r5, #1 166c4: d0f7 beq.n 166b6 <__aeabi_dmul+0x1c6> 166c6: ea43 0306 orr.w r3, r3, r6 166ca: 4770 bx lr 166cc: ea94 0f0c teq r4, ip 166d0: ea0c 5513 and.w r5, ip, r3, lsr #20 166d4: bf18 it ne 166d6: ea95 0f0c teqne r5, ip 166da: d00c beq.n 166f6 <__aeabi_dmul+0x206> 166dc: ea50 0641 orrs.w r6, r0, r1, lsl #1 166e0: bf18 it ne 166e2: ea52 0643 orrsne.w r6, r2, r3, lsl #1 166e6: d1d1 bne.n 1668c <__aeabi_dmul+0x19c> 166e8: ea81 0103 eor.w r1, r1, r3 166ec: f001 4100 and.w r1, r1, #2147483648 ; 0x80000000 166f0: f04f 0000 mov.w r0, #0 166f4: bd70 pop {r4, r5, r6, pc} 166f6: ea50 0641 orrs.w r6, r0, r1, lsl #1 166fa: bf06 itte eq 166fc: 4610 moveq r0, r2 166fe: 4619 moveq r1, r3 16700: ea52 0643 orrsne.w r6, r2, r3, lsl #1 16704: d019 beq.n 1673a <__aeabi_dmul+0x24a> 16706: ea94 0f0c teq r4, ip 1670a: d102 bne.n 16712 <__aeabi_dmul+0x222> 1670c: ea50 3601 orrs.w r6, r0, r1, lsl #12 16710: d113 bne.n 1673a <__aeabi_dmul+0x24a> 16712: ea95 0f0c teq r5, ip 16716: d105 bne.n 16724 <__aeabi_dmul+0x234> 16718: ea52 3603 orrs.w r6, r2, r3, lsl #12 1671c: bf1c itt ne 1671e: 4610 movne r0, r2 16720: 4619 movne r1, r3 16722: d10a bne.n 1673a <__aeabi_dmul+0x24a> 16724: ea81 0103 eor.w r1, r1, r3 16728: f001 4100 and.w r1, r1, #2147483648 ; 0x80000000 1672c: f041 41fe orr.w r1, r1, #2130706432 ; 0x7f000000 16730: f441 0170 orr.w r1, r1, #15728640 ; 0xf00000 16734: f04f 0000 mov.w r0, #0 16738: bd70 pop {r4, r5, r6, pc} 1673a: f041 41fe orr.w r1, r1, #2130706432 ; 0x7f000000 1673e: f441 0178 orr.w r1, r1, #16252928 ; 0xf80000 16742: bd70 pop {r4, r5, r6, pc} 00016744 <__aeabi_ddiv>: 16744: b570 push {r4, r5, r6, lr} 16746: f04f 0cff mov.w ip, #255 ; 0xff 1674a: f44c 6ce0 orr.w ip, ip, #1792 ; 0x700 1674e: ea1c 5411 ands.w r4, ip, r1, lsr #20 16752: bf1d ittte ne 16754: ea1c 5513 andsne.w r5, ip, r3, lsr #20 16758: ea94 0f0c teqne r4, ip 1675c: ea95 0f0c teqne r5, ip 16760: f000 f8a7 bleq 168b2 <__aeabi_ddiv+0x16e> 16764: eba4 0405 sub.w r4, r4, r5 16768: ea81 0e03 eor.w lr, r1, r3 1676c: ea52 3503 orrs.w r5, r2, r3, lsl #12 16770: ea4f 3101 mov.w r1, r1, lsl #12 16774: f000 8088 beq.w 16888 <__aeabi_ddiv+0x144> 16778: ea4f 3303 mov.w r3, r3, lsl #12 1677c: f04f 5580 mov.w r5, #268435456 ; 0x10000000 16780: ea45 1313 orr.w r3, r5, r3, lsr #4 16784: ea43 6312 orr.w r3, r3, r2, lsr #24 16788: ea4f 2202 mov.w r2, r2, lsl #8 1678c: ea45 1511 orr.w r5, r5, r1, lsr #4 16790: ea45 6510 orr.w r5, r5, r0, lsr #24 16794: ea4f 2600 mov.w r6, r0, lsl #8 16798: f00e 4100 and.w r1, lr, #2147483648 ; 0x80000000 1679c: 429d cmp r5, r3 1679e: bf08 it eq 167a0: 4296 cmpeq r6, r2 167a2: f144 04fd adc.w r4, r4, #253 ; 0xfd 167a6: f504 7440 add.w r4, r4, #768 ; 0x300 167aa: d202 bcs.n 167b2 <__aeabi_ddiv+0x6e> 167ac: 085b lsrs r3, r3, #1 167ae: ea4f 0232 mov.w r2, r2, rrx 167b2: 1ab6 subs r6, r6, r2 167b4: eb65 0503 sbc.w r5, r5, r3 167b8: 085b lsrs r3, r3, #1 167ba: ea4f 0232 mov.w r2, r2, rrx 167be: f44f 1080 mov.w r0, #1048576 ; 0x100000 167c2: f44f 2c00 mov.w ip, #524288 ; 0x80000 167c6: ebb6 0e02 subs.w lr, r6, r2 167ca: eb75 0e03 sbcs.w lr, r5, r3 167ce: bf22 ittt cs 167d0: 1ab6 subcs r6, r6, r2 167d2: 4675 movcs r5, lr 167d4: ea40 000c orrcs.w r0, r0, ip 167d8: 085b lsrs r3, r3, #1 167da: ea4f 0232 mov.w r2, r2, rrx 167de: ebb6 0e02 subs.w lr, r6, r2 167e2: eb75 0e03 sbcs.w lr, r5, r3 167e6: bf22 ittt cs 167e8: 1ab6 subcs r6, r6, r2 167ea: 4675 movcs r5, lr 167ec: ea40 005c orrcs.w r0, r0, ip, lsr #1 167f0: 085b lsrs r3, r3, #1 167f2: ea4f 0232 mov.w r2, r2, rrx 167f6: ebb6 0e02 subs.w lr, r6, r2 167fa: eb75 0e03 sbcs.w lr, r5, r3 167fe: bf22 ittt cs 16800: 1ab6 subcs r6, r6, r2 16802: 4675 movcs r5, lr 16804: ea40 009c orrcs.w r0, r0, ip, lsr #2 16808: 085b lsrs r3, r3, #1 1680a: ea4f 0232 mov.w r2, r2, rrx 1680e: ebb6 0e02 subs.w lr, r6, r2 16812: eb75 0e03 sbcs.w lr, r5, r3 16816: bf22 ittt cs 16818: 1ab6 subcs r6, r6, r2 1681a: 4675 movcs r5, lr 1681c: ea40 00dc orrcs.w r0, r0, ip, lsr #3 16820: ea55 0e06 orrs.w lr, r5, r6 16824: d018 beq.n 16858 <__aeabi_ddiv+0x114> 16826: ea4f 1505 mov.w r5, r5, lsl #4 1682a: ea45 7516 orr.w r5, r5, r6, lsr #28 1682e: ea4f 1606 mov.w r6, r6, lsl #4 16832: ea4f 03c3 mov.w r3, r3, lsl #3 16836: ea43 7352 orr.w r3, r3, r2, lsr #29 1683a: ea4f 02c2 mov.w r2, r2, lsl #3 1683e: ea5f 1c1c movs.w ip, ip, lsr #4 16842: d1c0 bne.n 167c6 <__aeabi_ddiv+0x82> 16844: f411 1f80 tst.w r1, #1048576 ; 0x100000 16848: d10b bne.n 16862 <__aeabi_ddiv+0x11e> 1684a: ea41 0100 orr.w r1, r1, r0 1684e: f04f 0000 mov.w r0, #0 16852: f04f 4c00 mov.w ip, #2147483648 ; 0x80000000 16856: e7b6 b.n 167c6 <__aeabi_ddiv+0x82> 16858: f411 1f80 tst.w r1, #1048576 ; 0x100000 1685c: bf04 itt eq 1685e: 4301 orreq r1, r0 16860: 2000 moveq r0, #0 16862: f1b4 0cfd subs.w ip, r4, #253 ; 0xfd 16866: bf88 it hi 16868: f5bc 6fe0 cmphi.w ip, #1792 ; 0x700 1686c: f63f aeaf bhi.w 165ce <__aeabi_dmul+0xde> 16870: ebb5 0c03 subs.w ip, r5, r3 16874: bf04 itt eq 16876: ebb6 0c02 subseq.w ip, r6, r2 1687a: ea5f 0c50 movseq.w ip, r0, lsr #1 1687e: f150 0000 adcs.w r0, r0, #0 16882: eb41 5104 adc.w r1, r1, r4, lsl #20 16886: bd70 pop {r4, r5, r6, pc} 16888: f00e 4e00 and.w lr, lr, #2147483648 ; 0x80000000 1688c: ea4e 3111 orr.w r1, lr, r1, lsr #12 16890: eb14 045c adds.w r4, r4, ip, lsr #1 16894: bfc2 ittt gt 16896: ebd4 050c rsbsgt r5, r4, ip 1689a: ea41 5104 orrgt.w r1, r1, r4, lsl #20 1689e: bd70 popgt {r4, r5, r6, pc} 168a0: f441 1180 orr.w r1, r1, #1048576 ; 0x100000 168a4: f04f 0e00 mov.w lr, #0 168a8: 3c01 subs r4, #1 168aa: e690 b.n 165ce <__aeabi_dmul+0xde> 168ac: ea45 0e06 orr.w lr, r5, r6 168b0: e68d b.n 165ce <__aeabi_dmul+0xde> 168b2: ea0c 5513 and.w r5, ip, r3, lsr #20 168b6: ea94 0f0c teq r4, ip 168ba: bf08 it eq 168bc: ea95 0f0c teqeq r5, ip 168c0: f43f af3b beq.w 1673a <__aeabi_dmul+0x24a> 168c4: ea94 0f0c teq r4, ip 168c8: d10a bne.n 168e0 <__aeabi_ddiv+0x19c> 168ca: ea50 3401 orrs.w r4, r0, r1, lsl #12 168ce: f47f af34 bne.w 1673a <__aeabi_dmul+0x24a> 168d2: ea95 0f0c teq r5, ip 168d6: f47f af25 bne.w 16724 <__aeabi_dmul+0x234> 168da: 4610 mov r0, r2 168dc: 4619 mov r1, r3 168de: e72c b.n 1673a <__aeabi_dmul+0x24a> 168e0: ea95 0f0c teq r5, ip 168e4: d106 bne.n 168f4 <__aeabi_ddiv+0x1b0> 168e6: ea52 3503 orrs.w r5, r2, r3, lsl #12 168ea: f43f aefd beq.w 166e8 <__aeabi_dmul+0x1f8> 168ee: 4610 mov r0, r2 168f0: 4619 mov r1, r3 168f2: e722 b.n 1673a <__aeabi_dmul+0x24a> 168f4: ea50 0641 orrs.w r6, r0, r1, lsl #1 168f8: bf18 it ne 168fa: ea52 0643 orrsne.w r6, r2, r3, lsl #1 168fe: f47f aec5 bne.w 1668c <__aeabi_dmul+0x19c> 16902: ea50 0441 orrs.w r4, r0, r1, lsl #1 16906: f47f af0d bne.w 16724 <__aeabi_dmul+0x234> 1690a: ea52 0543 orrs.w r5, r2, r3, lsl #1 1690e: f47f aeeb bne.w 166e8 <__aeabi_dmul+0x1f8> 16912: e712 b.n 1673a <__aeabi_dmul+0x24a> 00016914 <__aeabi_uldivmod>: 16914: b953 cbnz r3, 1692c <__aeabi_uldivmod+0x18> 16916: b94a cbnz r2, 1692c <__aeabi_uldivmod+0x18> 16918: 2900 cmp r1, #0 1691a: bf08 it eq 1691c: 2800 cmpeq r0, #0 1691e: bf1c itt ne 16920: f04f 31ff movne.w r1, #4294967295 ; 0xffffffff 16924: f04f 30ff movne.w r0, #4294967295 ; 0xffffffff 16928: f000 b978 b.w 16c1c <__aeabi_idiv0> 1692c: f1ad 0c08 sub.w ip, sp, #8 16930: e96d ce04 strd ip, lr, [sp, #-16]! 16934: f000 f806 bl 16944 <__udivmoddi4> 16938: f8dd e004 ldr.w lr, [sp, #4] 1693c: e9dd 2302 ldrd r2, r3, [sp, #8] 16940: b004 add sp, #16 16942: 4770 bx lr 00016944 <__udivmoddi4>: 16944: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} 16948: 9d08 ldr r5, [sp, #32] 1694a: 460e mov r6, r1 1694c: 4604 mov r4, r0 1694e: 460f mov r7, r1 16950: 2b00 cmp r3, #0 16952: d14a bne.n 169ea <__udivmoddi4+0xa6> 16954: 428a cmp r2, r1 16956: 4694 mov ip, r2 16958: d965 bls.n 16a26 <__udivmoddi4+0xe2> 1695a: fab2 f282 clz r2, r2 1695e: b142 cbz r2, 16972 <__udivmoddi4+0x2e> 16960: f1c2 0320 rsb r3, r2, #32 16964: 4097 lsls r7, r2 16966: fa20 f303 lsr.w r3, r0, r3 1696a: fa0c fc02 lsl.w ip, ip, r2 1696e: 431f orrs r7, r3 16970: 4094 lsls r4, r2 16972: ea4f 4e1c mov.w lr, ip, lsr #16 16976: fa1f f68c uxth.w r6, ip 1697a: fbb7 f1fe udiv r1, r7, lr 1697e: 0c23 lsrs r3, r4, #16 16980: fb0e 7711 mls r7, lr, r1, r7 16984: ea43 4307 orr.w r3, r3, r7, lsl #16 16988: fb01 f006 mul.w r0, r1, r6 1698c: 4298 cmp r0, r3 1698e: d90a bls.n 169a6 <__udivmoddi4+0x62> 16990: eb1c 0303 adds.w r3, ip, r3 16994: f101 37ff add.w r7, r1, #4294967295 ; 0xffffffff 16998: f080 8120 bcs.w 16bdc <__udivmoddi4+0x298> 1699c: 4298 cmp r0, r3 1699e: f240 811d bls.w 16bdc <__udivmoddi4+0x298> 169a2: 3902 subs r1, #2 169a4: 4463 add r3, ip 169a6: 1a1b subs r3, r3, r0 169a8: b2a4 uxth r4, r4 169aa: fbb3 f0fe udiv r0, r3, lr 169ae: fb0e 3310 mls r3, lr, r0, r3 169b2: ea44 4403 orr.w r4, r4, r3, lsl #16 169b6: fb00 f606 mul.w r6, r0, r6 169ba: 42a6 cmp r6, r4 169bc: d90a bls.n 169d4 <__udivmoddi4+0x90> 169be: eb1c 0404 adds.w r4, ip, r4 169c2: f100 33ff add.w r3, r0, #4294967295 ; 0xffffffff 169c6: f080 810b bcs.w 16be0 <__udivmoddi4+0x29c> 169ca: 42a6 cmp r6, r4 169cc: f240 8108 bls.w 16be0 <__udivmoddi4+0x29c> 169d0: 4464 add r4, ip 169d2: 3802 subs r0, #2 169d4: ea40 4001 orr.w r0, r0, r1, lsl #16 169d8: 1ba4 subs r4, r4, r6 169da: 2100 movs r1, #0 169dc: b11d cbz r5, 169e6 <__udivmoddi4+0xa2> 169de: 40d4 lsrs r4, r2 169e0: 2300 movs r3, #0 169e2: e9c5 4300 strd r4, r3, [r5] 169e6: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} 169ea: 428b cmp r3, r1 169ec: d908 bls.n 16a00 <__udivmoddi4+0xbc> 169ee: 2d00 cmp r5, #0 169f0: f000 80f1 beq.w 16bd6 <__udivmoddi4+0x292> 169f4: 2100 movs r1, #0 169f6: e9c5 0600 strd r0, r6, [r5] 169fa: 4608 mov r0, r1 169fc: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} 16a00: fab3 f183 clz r1, r3 16a04: 2900 cmp r1, #0 16a06: d14a bne.n 16a9e <__udivmoddi4+0x15a> 16a08: 42b3 cmp r3, r6 16a0a: d302 bcc.n 16a12 <__udivmoddi4+0xce> 16a0c: 4282 cmp r2, r0 16a0e: f200 8100 bhi.w 16c12 <__udivmoddi4+0x2ce> 16a12: 1a84 subs r4, r0, r2 16a14: eb66 0203 sbc.w r2, r6, r3 16a18: 2001 movs r0, #1 16a1a: 4617 mov r7, r2 16a1c: 2d00 cmp r5, #0 16a1e: d0e2 beq.n 169e6 <__udivmoddi4+0xa2> 16a20: e9c5 4700 strd r4, r7, [r5] 16a24: e7df b.n 169e6 <__udivmoddi4+0xa2> 16a26: b902 cbnz r2, 16a2a <__udivmoddi4+0xe6> 16a28: deff udf #255 ; 0xff 16a2a: fab2 f282 clz r2, r2 16a2e: 2a00 cmp r2, #0 16a30: f040 8094 bne.w 16b5c <__udivmoddi4+0x218> 16a34: eba1 030c sub.w r3, r1, ip 16a38: ea4f 471c mov.w r7, ip, lsr #16 16a3c: fa1f fe8c uxth.w lr, ip 16a40: 2101 movs r1, #1 16a42: fbb3 f6f7 udiv r6, r3, r7 16a46: fb07 3016 mls r0, r7, r6, r3 16a4a: 0c23 lsrs r3, r4, #16 16a4c: ea43 4300 orr.w r3, r3, r0, lsl #16 16a50: fb0e f006 mul.w r0, lr, r6 16a54: 4298 cmp r0, r3 16a56: d908 bls.n 16a6a <__udivmoddi4+0x126> 16a58: eb1c 0303 adds.w r3, ip, r3 16a5c: f106 38ff add.w r8, r6, #4294967295 ; 0xffffffff 16a60: d202 bcs.n 16a68 <__udivmoddi4+0x124> 16a62: 4298 cmp r0, r3 16a64: f200 80d2 bhi.w 16c0c <__udivmoddi4+0x2c8> 16a68: 4646 mov r6, r8 16a6a: 1a1b subs r3, r3, r0 16a6c: b2a4 uxth r4, r4 16a6e: fbb3 f0f7 udiv r0, r3, r7 16a72: fb07 3310 mls r3, r7, r0, r3 16a76: ea44 4403 orr.w r4, r4, r3, lsl #16 16a7a: fb0e fe00 mul.w lr, lr, r0 16a7e: 45a6 cmp lr, r4 16a80: d908 bls.n 16a94 <__udivmoddi4+0x150> 16a82: eb1c 0404 adds.w r4, ip, r4 16a86: f100 33ff add.w r3, r0, #4294967295 ; 0xffffffff 16a8a: d202 bcs.n 16a92 <__udivmoddi4+0x14e> 16a8c: 45a6 cmp lr, r4 16a8e: f200 80ba bhi.w 16c06 <__udivmoddi4+0x2c2> 16a92: 4618 mov r0, r3 16a94: eba4 040e sub.w r4, r4, lr 16a98: ea40 4006 orr.w r0, r0, r6, lsl #16 16a9c: e79e b.n 169dc <__udivmoddi4+0x98> 16a9e: f1c1 0720 rsb r7, r1, #32 16aa2: 408b lsls r3, r1 16aa4: fa22 fc07 lsr.w ip, r2, r7 16aa8: ea4c 0c03 orr.w ip, ip, r3 16aac: fa06 fe01 lsl.w lr, r6, r1 16ab0: fa20 f407 lsr.w r4, r0, r7 16ab4: fa26 f307 lsr.w r3, r6, r7 16ab8: ea44 040e orr.w r4, r4, lr 16abc: fa00 f801 lsl.w r8, r0, r1 16ac0: ea4f 401c mov.w r0, ip, lsr #16 16ac4: ea4f 4914 mov.w r9, r4, lsr #16 16ac8: fbb3 fef0 udiv lr, r3, r0 16acc: fa1f f68c uxth.w r6, ip 16ad0: fb00 331e mls r3, r0, lr, r3 16ad4: ea49 4303 orr.w r3, r9, r3, lsl #16 16ad8: fb0e f906 mul.w r9, lr, r6 16adc: 4599 cmp r9, r3 16ade: fa02 f201 lsl.w r2, r2, r1 16ae2: d90b bls.n 16afc <__udivmoddi4+0x1b8> 16ae4: eb1c 0303 adds.w r3, ip, r3 16ae8: f10e 3aff add.w sl, lr, #4294967295 ; 0xffffffff 16aec: f080 8089 bcs.w 16c02 <__udivmoddi4+0x2be> 16af0: 4599 cmp r9, r3 16af2: f240 8086 bls.w 16c02 <__udivmoddi4+0x2be> 16af6: f1ae 0e02 sub.w lr, lr, #2 16afa: 4463 add r3, ip 16afc: eba3 0909 sub.w r9, r3, r9 16b00: b2a4 uxth r4, r4 16b02: fbb9 f3f0 udiv r3, r9, r0 16b06: fb00 9913 mls r9, r0, r3, r9 16b0a: ea44 4409 orr.w r4, r4, r9, lsl #16 16b0e: fb03 f606 mul.w r6, r3, r6 16b12: 42a6 cmp r6, r4 16b14: d908 bls.n 16b28 <__udivmoddi4+0x1e4> 16b16: eb1c 0404 adds.w r4, ip, r4 16b1a: f103 30ff add.w r0, r3, #4294967295 ; 0xffffffff 16b1e: d26c bcs.n 16bfa <__udivmoddi4+0x2b6> 16b20: 42a6 cmp r6, r4 16b22: d96a bls.n 16bfa <__udivmoddi4+0x2b6> 16b24: 3b02 subs r3, #2 16b26: 4464 add r4, ip 16b28: ea43 400e orr.w r0, r3, lr, lsl #16 16b2c: 1ba4 subs r4, r4, r6 16b2e: fba0 e602 umull lr, r6, r0, r2 16b32: 42b4 cmp r4, r6 16b34: 4673 mov r3, lr 16b36: 46b1 mov r9, r6 16b38: d356 bcc.n 16be8 <__udivmoddi4+0x2a4> 16b3a: d053 beq.n 16be4 <__udivmoddi4+0x2a0> 16b3c: 2d00 cmp r5, #0 16b3e: d06a beq.n 16c16 <__udivmoddi4+0x2d2> 16b40: ebb8 0203 subs.w r2, r8, r3 16b44: eb64 0409 sbc.w r4, r4, r9 16b48: fa22 f301 lsr.w r3, r2, r1 16b4c: fa04 f707 lsl.w r7, r4, r7 16b50: 431f orrs r7, r3 16b52: 40cc lsrs r4, r1 16b54: e9c5 7400 strd r7, r4, [r5] 16b58: 2100 movs r1, #0 16b5a: e744 b.n 169e6 <__udivmoddi4+0xa2> 16b5c: f1c2 0120 rsb r1, r2, #32 16b60: fa20 f301 lsr.w r3, r0, r1 16b64: fa0c fc02 lsl.w ip, ip, r2 16b68: fa26 f101 lsr.w r1, r6, r1 16b6c: 4096 lsls r6, r2 16b6e: 4333 orrs r3, r6 16b70: ea4f 471c mov.w r7, ip, lsr #16 16b74: fa1f fe8c uxth.w lr, ip 16b78: fbb1 f0f7 udiv r0, r1, r7 16b7c: fb07 1610 mls r6, r7, r0, r1 16b80: 0c19 lsrs r1, r3, #16 16b82: ea41 4106 orr.w r1, r1, r6, lsl #16 16b86: fb00 f60e mul.w r6, r0, lr 16b8a: 428e cmp r6, r1 16b8c: fa04 f402 lsl.w r4, r4, r2 16b90: d908 bls.n 16ba4 <__udivmoddi4+0x260> 16b92: eb1c 0101 adds.w r1, ip, r1 16b96: f100 38ff add.w r8, r0, #4294967295 ; 0xffffffff 16b9a: d230 bcs.n 16bfe <__udivmoddi4+0x2ba> 16b9c: 428e cmp r6, r1 16b9e: d92e bls.n 16bfe <__udivmoddi4+0x2ba> 16ba0: 3802 subs r0, #2 16ba2: 4461 add r1, ip 16ba4: 1b89 subs r1, r1, r6 16ba6: b29b uxth r3, r3 16ba8: fbb1 f6f7 udiv r6, r1, r7 16bac: fb07 1116 mls r1, r7, r6, r1 16bb0: ea43 4301 orr.w r3, r3, r1, lsl #16 16bb4: fb06 f10e mul.w r1, r6, lr 16bb8: 4299 cmp r1, r3 16bba: d908 bls.n 16bce <__udivmoddi4+0x28a> 16bbc: eb1c 0303 adds.w r3, ip, r3 16bc0: f106 38ff add.w r8, r6, #4294967295 ; 0xffffffff 16bc4: d217 bcs.n 16bf6 <__udivmoddi4+0x2b2> 16bc6: 4299 cmp r1, r3 16bc8: d915 bls.n 16bf6 <__udivmoddi4+0x2b2> 16bca: 3e02 subs r6, #2 16bcc: 4463 add r3, ip 16bce: 1a5b subs r3, r3, r1 16bd0: ea46 4100 orr.w r1, r6, r0, lsl #16 16bd4: e735 b.n 16a42 <__udivmoddi4+0xfe> 16bd6: 4629 mov r1, r5 16bd8: 4628 mov r0, r5 16bda: e704 b.n 169e6 <__udivmoddi4+0xa2> 16bdc: 4639 mov r1, r7 16bde: e6e2 b.n 169a6 <__udivmoddi4+0x62> 16be0: 4618 mov r0, r3 16be2: e6f7 b.n 169d4 <__udivmoddi4+0x90> 16be4: 45f0 cmp r8, lr 16be6: d2a9 bcs.n 16b3c <__udivmoddi4+0x1f8> 16be8: ebbe 0302 subs.w r3, lr, r2 16bec: eb66 060c sbc.w r6, r6, ip 16bf0: 3801 subs r0, #1 16bf2: 46b1 mov r9, r6 16bf4: e7a2 b.n 16b3c <__udivmoddi4+0x1f8> 16bf6: 4646 mov r6, r8 16bf8: e7e9 b.n 16bce <__udivmoddi4+0x28a> 16bfa: 4603 mov r3, r0 16bfc: e794 b.n 16b28 <__udivmoddi4+0x1e4> 16bfe: 4640 mov r0, r8 16c00: e7d0 b.n 16ba4 <__udivmoddi4+0x260> 16c02: 46d6 mov lr, sl 16c04: e77a b.n 16afc <__udivmoddi4+0x1b8> 16c06: 4464 add r4, ip 16c08: 3802 subs r0, #2 16c0a: e743 b.n 16a94 <__udivmoddi4+0x150> 16c0c: 3e02 subs r6, #2 16c0e: 4463 add r3, ip 16c10: e72b b.n 16a6a <__udivmoddi4+0x126> 16c12: 4608 mov r0, r1 16c14: e702 b.n 16a1c <__udivmoddi4+0xd8> 16c16: 4629 mov r1, r5 16c18: e6e5 b.n 169e6 <__udivmoddi4+0xa2> 16c1a: bf00 nop 00016c1c <__aeabi_idiv0>: 16c1c: 4770 bx lr 16c1e: bf00 nop 00016c20 <__libc_init_array>: 16c20: b570 push {r4, r5, r6, lr} 16c22: 4e0d ldr r6, [pc, #52] ; (16c58 <__libc_init_array+0x38>) 16c24: 4d0d ldr r5, [pc, #52] ; (16c5c <__libc_init_array+0x3c>) 16c26: 1b76 subs r6, r6, r5 16c28: 10b6 asrs r6, r6, #2 16c2a: d006 beq.n 16c3a <__libc_init_array+0x1a> 16c2c: 2400 movs r4, #0 16c2e: f855 3b04 ldr.w r3, [r5], #4 16c32: 3401 adds r4, #1 16c34: 4798 blx r3 16c36: 42a6 cmp r6, r4 16c38: d1f9 bne.n 16c2e <__libc_init_array+0xe> 16c3a: 4e09 ldr r6, [pc, #36] ; (16c60 <__libc_init_array+0x40>) 16c3c: 4d09 ldr r5, [pc, #36] ; (16c64 <__libc_init_array+0x44>) 16c3e: 1b76 subs r6, r6, r5 16c40: f015 fc12 bl 2c468 <_init> 16c44: 10b6 asrs r6, r6, #2 16c46: d006 beq.n 16c56 <__libc_init_array+0x36> 16c48: 2400 movs r4, #0 16c4a: f855 3b04 ldr.w r3, [r5], #4 16c4e: 3401 adds r4, #1 16c50: 4798 blx r3 16c52: 42a6 cmp r6, r4 16c54: d1f9 bne.n 16c4a <__libc_init_array+0x2a> 16c56: bd70 pop {r4, r5, r6, pc} 16c58: 0002c474 .word 0x0002c474 16c5c: 0002c474 .word 0x0002c474 16c60: 0002c478 .word 0x0002c478 16c64: 0002c474 .word 0x0002c474 00016c68 : 16c68: 2a03 cmp r2, #3 16c6a: b510 push {r4, lr} 16c6c: d916 bls.n 16c9c 16c6e: ea40 0301 orr.w r3, r0, r1 16c72: 079b lsls r3, r3, #30 16c74: d124 bne.n 16cc0 16c76: 4604 mov r4, r0 16c78: 460b mov r3, r1 16c7a: 4619 mov r1, r3 16c7c: 4620 mov r0, r4 16c7e: f8d1 e000 ldr.w lr, [r1] 16c82: f8d0 c000 ldr.w ip, [r0] 16c86: 45f4 cmp ip, lr 16c88: f104 0404 add.w r4, r4, #4 16c8c: f103 0304 add.w r3, r3, #4 16c90: d116 bne.n 16cc0 16c92: 3a04 subs r2, #4 16c94: 2a03 cmp r2, #3 16c96: 4620 mov r0, r4 16c98: 4619 mov r1, r3 16c9a: d8ee bhi.n 16c7a 16c9c: 1e54 subs r4, r2, #1 16c9e: b19a cbz r2, 16cc8 16ca0: 1e42 subs r2, r0, #1 16ca2: 3901 subs r1, #1 16ca4: e001 b.n 16caa 16ca6: 18c3 adds r3, r0, r3 16ca8: d00c beq.n 16cc4 16caa: f812 ef01 ldrb.w lr, [r2, #1]! 16cae: f811 cf01 ldrb.w ip, [r1, #1]! 16cb2: 45e6 cmp lr, ip 16cb4: eba4 0302 sub.w r3, r4, r2 16cb8: d0f5 beq.n 16ca6 16cba: ebae 000c sub.w r0, lr, ip 16cbe: bd10 pop {r4, pc} 16cc0: 1e54 subs r4, r2, #1 16cc2: e7ed b.n 16ca0 16cc4: 4618 mov r0, r3 16cc6: bd10 pop {r4, pc} 16cc8: 4610 mov r0, r2 16cca: bd10 pop {r4, pc} 00016ccc : 16ccc: 4684 mov ip, r0 16cce: ea41 0300 orr.w r3, r1, r0 16cd2: f013 0303 ands.w r3, r3, #3 16cd6: d16d bne.n 16db4 16cd8: 3a40 subs r2, #64 ; 0x40 16cda: d341 bcc.n 16d60 16cdc: f851 3b04 ldr.w r3, [r1], #4 16ce0: f840 3b04 str.w r3, [r0], #4 16ce4: f851 3b04 ldr.w r3, [r1], #4 16ce8: f840 3b04 str.w r3, [r0], #4 16cec: f851 3b04 ldr.w r3, [r1], #4 16cf0: f840 3b04 str.w r3, [r0], #4 16cf4: f851 3b04 ldr.w r3, [r1], #4 16cf8: f840 3b04 str.w r3, [r0], #4 16cfc: f851 3b04 ldr.w r3, [r1], #4 16d00: f840 3b04 str.w r3, [r0], #4 16d04: f851 3b04 ldr.w r3, [r1], #4 16d08: f840 3b04 str.w r3, [r0], #4 16d0c: f851 3b04 ldr.w r3, [r1], #4 16d10: f840 3b04 str.w r3, [r0], #4 16d14: f851 3b04 ldr.w r3, [r1], #4 16d18: f840 3b04 str.w r3, [r0], #4 16d1c: f851 3b04 ldr.w r3, [r1], #4 16d20: f840 3b04 str.w r3, [r0], #4 16d24: f851 3b04 ldr.w r3, [r1], #4 16d28: f840 3b04 str.w r3, [r0], #4 16d2c: f851 3b04 ldr.w r3, [r1], #4 16d30: f840 3b04 str.w r3, [r0], #4 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: 3a40 subs r2, #64 ; 0x40 16d5e: d2bd bcs.n 16cdc 16d60: 3230 adds r2, #48 ; 0x30 16d62: d311 bcc.n 16d88 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: 3a10 subs r2, #16 16d86: d2ed bcs.n 16d64 16d88: 320c adds r2, #12 16d8a: d305 bcc.n 16d98 16d8c: f851 3b04 ldr.w r3, [r1], #4 16d90: f840 3b04 str.w r3, [r0], #4 16d94: 3a04 subs r2, #4 16d96: d2f9 bcs.n 16d8c 16d98: 3204 adds r2, #4 16d9a: d008 beq.n 16dae 16d9c: 07d2 lsls r2, r2, #31 16d9e: bf1c itt ne 16da0: f811 3b01 ldrbne.w r3, [r1], #1 16da4: f800 3b01 strbne.w r3, [r0], #1 16da8: d301 bcc.n 16dae 16daa: 880b ldrh r3, [r1, #0] 16dac: 8003 strh r3, [r0, #0] 16dae: 4660 mov r0, ip 16db0: 4770 bx lr 16db2: bf00 nop 16db4: 2a08 cmp r2, #8 16db6: d313 bcc.n 16de0 16db8: 078b lsls r3, r1, #30 16dba: d08d beq.n 16cd8 16dbc: f010 0303 ands.w r3, r0, #3 16dc0: d08a beq.n 16cd8 16dc2: f1c3 0304 rsb r3, r3, #4 16dc6: 1ad2 subs r2, r2, r3 16dc8: 07db lsls r3, r3, #31 16dca: bf1c itt ne 16dcc: f811 3b01 ldrbne.w r3, [r1], #1 16dd0: f800 3b01 strbne.w r3, [r0], #1 16dd4: d380 bcc.n 16cd8 16dd6: f831 3b02 ldrh.w r3, [r1], #2 16dda: f820 3b02 strh.w r3, [r0], #2 16dde: e77b b.n 16cd8 16de0: 3a04 subs r2, #4 16de2: d3d9 bcc.n 16d98 16de4: 3a01 subs r2, #1 16de6: f811 3b01 ldrb.w r3, [r1], #1 16dea: f800 3b01 strb.w r3, [r0], #1 16dee: d2f9 bcs.n 16de4 16df0: 780b ldrb r3, [r1, #0] 16df2: 7003 strb r3, [r0, #0] 16df4: 784b ldrb r3, [r1, #1] 16df6: 7043 strb r3, [r0, #1] 16df8: 788b ldrb r3, [r1, #2] 16dfa: 7083 strb r3, [r0, #2] 16dfc: 4660 mov r0, ip 16dfe: 4770 bx lr 00016e00 : 16e00: 4288 cmp r0, r1 16e02: d90d bls.n 16e20 16e04: 188b adds r3, r1, r2 16e06: 4283 cmp r3, r0 16e08: d90a bls.n 16e20 16e0a: eb00 0c02 add.w ip, r0, r2 16e0e: b1ba cbz r2, 16e40 16e10: 4662 mov r2, ip 16e12: f813 cd01 ldrb.w ip, [r3, #-1]! 16e16: f802 cd01 strb.w ip, [r2, #-1]! 16e1a: 4299 cmp r1, r3 16e1c: d1f9 bne.n 16e12 16e1e: 4770 bx lr 16e20: 2a0f cmp r2, #15 16e22: d80e bhi.n 16e42 16e24: 4603 mov r3, r0 16e26: f102 3cff add.w ip, r2, #4294967295 ; 0xffffffff 16e2a: b14a cbz r2, 16e40 16e2c: f10c 0c01 add.w ip, ip, #1 16e30: 3b01 subs r3, #1 16e32: 448c add ip, r1 16e34: f811 2b01 ldrb.w r2, [r1], #1 16e38: f803 2f01 strb.w r2, [r3, #1]! 16e3c: 4561 cmp r1, ip 16e3e: d1f9 bne.n 16e34 16e40: 4770 bx lr 16e42: ea40 0301 orr.w r3, r0, r1 16e46: 079b lsls r3, r3, #30 16e48: d150 bne.n 16eec 16e4a: f1a2 0310 sub.w r3, r2, #16 16e4e: b570 push {r4, r5, r6, lr} 16e50: f101 0c20 add.w ip, r1, #32 16e54: f023 050f bic.w r5, r3, #15 16e58: f101 0e10 add.w lr, r1, #16 16e5c: f100 0410 add.w r4, r0, #16 16e60: 44ac add ip, r5 16e62: 091b lsrs r3, r3, #4 16e64: f85e 5c10 ldr.w r5, [lr, #-16] 16e68: f844 5c10 str.w r5, [r4, #-16] 16e6c: f85e 5c0c ldr.w r5, [lr, #-12] 16e70: f844 5c0c str.w r5, [r4, #-12] 16e74: f85e 5c08 ldr.w r5, [lr, #-8] 16e78: f844 5c08 str.w r5, [r4, #-8] 16e7c: f85e 5c04 ldr.w r5, [lr, #-4] 16e80: f844 5c04 str.w r5, [r4, #-4] 16e84: f10e 0e10 add.w lr, lr, #16 16e88: 45e6 cmp lr, ip 16e8a: f104 0410 add.w r4, r4, #16 16e8e: d1e9 bne.n 16e64 16e90: 3301 adds r3, #1 16e92: f012 0f0c tst.w r2, #12 16e96: eb01 1103 add.w r1, r1, r3, lsl #4 16e9a: f002 040f and.w r4, r2, #15 16e9e: eb00 1303 add.w r3, r0, r3, lsl #4 16ea2: d027 beq.n 16ef4 16ea4: 3c04 subs r4, #4 16ea6: f024 0603 bic.w r6, r4, #3 16eaa: ea4f 0c94 mov.w ip, r4, lsr #2 16eae: 441e add r6, r3 16eb0: 1f1c subs r4, r3, #4 16eb2: 468e mov lr, r1 16eb4: f85e 5b04 ldr.w r5, [lr], #4 16eb8: f844 5f04 str.w r5, [r4, #4]! 16ebc: 42b4 cmp r4, r6 16ebe: d1f9 bne.n 16eb4 16ec0: f10c 0401 add.w r4, ip, #1 16ec4: f002 0203 and.w r2, r2, #3 16ec8: eb03 0384 add.w r3, r3, r4, lsl #2 16ecc: eb01 0184 add.w r1, r1, r4, lsl #2 16ed0: f102 3cff add.w ip, r2, #4294967295 ; 0xffffffff 16ed4: b14a cbz r2, 16eea 16ed6: f10c 0c01 add.w ip, ip, #1 16eda: 3b01 subs r3, #1 16edc: 448c add ip, r1 16ede: f811 2b01 ldrb.w r2, [r1], #1 16ee2: f803 2f01 strb.w r2, [r3, #1]! 16ee6: 4561 cmp r1, ip 16ee8: d1f9 bne.n 16ede 16eea: bd70 pop {r4, r5, r6, pc} 16eec: f102 3cff add.w ip, r2, #4294967295 ; 0xffffffff 16ef0: 4603 mov r3, r0 16ef2: e79b b.n 16e2c 16ef4: 4622 mov r2, r4 16ef6: e7eb b.n 16ed0 00016ef8 : 16ef8: 0783 lsls r3, r0, #30 16efa: b530 push {r4, r5, lr} 16efc: d048 beq.n 16f90 16efe: 1e54 subs r4, r2, #1 16f00: 2a00 cmp r2, #0 16f02: d03f beq.n 16f84 16f04: b2ca uxtb r2, r1 16f06: 4603 mov r3, r0 16f08: e001 b.n 16f0e 16f0a: 3c01 subs r4, #1 16f0c: d33a bcc.n 16f84 16f0e: f803 2b01 strb.w r2, [r3], #1 16f12: 079d lsls r5, r3, #30 16f14: d1f9 bne.n 16f0a 16f16: 2c03 cmp r4, #3 16f18: d92d bls.n 16f76 16f1a: b2cd uxtb r5, r1 16f1c: ea45 2505 orr.w r5, r5, r5, lsl #8 16f20: 2c0f cmp r4, #15 16f22: ea45 4505 orr.w r5, r5, r5, lsl #16 16f26: d936 bls.n 16f96 16f28: f1a4 0210 sub.w r2, r4, #16 16f2c: f022 0c0f bic.w ip, r2, #15 16f30: f103 0e20 add.w lr, r3, #32 16f34: 44e6 add lr, ip 16f36: ea4f 1c12 mov.w ip, r2, lsr #4 16f3a: f103 0210 add.w r2, r3, #16 16f3e: e942 5504 strd r5, r5, [r2, #-16] 16f42: e942 5502 strd r5, r5, [r2, #-8] 16f46: 3210 adds r2, #16 16f48: 4572 cmp r2, lr 16f4a: d1f8 bne.n 16f3e 16f4c: f10c 0201 add.w r2, ip, #1 16f50: f014 0f0c tst.w r4, #12 16f54: eb03 1202 add.w r2, r3, r2, lsl #4 16f58: f004 0c0f and.w ip, r4, #15 16f5c: d013 beq.n 16f86 16f5e: f1ac 0304 sub.w r3, ip, #4 16f62: f023 0303 bic.w r3, r3, #3 16f66: 3304 adds r3, #4 16f68: 4413 add r3, r2 16f6a: f842 5b04 str.w r5, [r2], #4 16f6e: 4293 cmp r3, r2 16f70: d1fb bne.n 16f6a 16f72: f00c 0403 and.w r4, ip, #3 16f76: b12c cbz r4, 16f84 16f78: b2c9 uxtb r1, r1 16f7a: 441c add r4, r3 16f7c: f803 1b01 strb.w r1, [r3], #1 16f80: 429c cmp r4, r3 16f82: d1fb bne.n 16f7c 16f84: bd30 pop {r4, r5, pc} 16f86: 4664 mov r4, ip 16f88: 4613 mov r3, r2 16f8a: 2c00 cmp r4, #0 16f8c: d1f4 bne.n 16f78 16f8e: e7f9 b.n 16f84 16f90: 4603 mov r3, r0 16f92: 4614 mov r4, r2 16f94: e7bf b.n 16f16 16f96: 461a mov r2, r3 16f98: 46a4 mov ip, r4 16f9a: e7e0 b.n 16f5e 00016f9c : 16f9c: b40f push {r0, r1, r2, r3} 16f9e: b500 push {lr} 16fa0: 4907 ldr r1, [pc, #28] ; (16fc0 ) 16fa2: b083 sub sp, #12 16fa4: ab04 add r3, sp, #16 16fa6: 6808 ldr r0, [r1, #0] 16fa8: f853 2b04 ldr.w r2, [r3], #4 16fac: 6881 ldr r1, [r0, #8] 16fae: 9301 str r3, [sp, #4] 16fb0: f000 fa54 bl 1745c <_vfprintf_r> 16fb4: b003 add sp, #12 16fb6: f85d eb04 ldr.w lr, [sp], #4 16fba: b004 add sp, #16 16fbc: 4770 bx lr 16fbe: bf00 nop 16fc0: 20000068 .word 0x20000068 ... 16fe0: eba2 0003 sub.w r0, r2, r3 16fe4: 4770 bx lr 16fe6: bf00 nop 00016fe8 : 16fe8: 7802 ldrb r2, [r0, #0] 16fea: 780b ldrb r3, [r1, #0] 16fec: 2a01 cmp r2, #1 16fee: bf28 it cs 16ff0: 429a cmpcs r2, r3 16ff2: d1f5 bne.n 16fe0 16ff4: e96d 4504 strd r4, r5, [sp, #-16]! 16ff8: ea40 0401 orr.w r4, r0, r1 16ffc: e9cd 6702 strd r6, r7, [sp, #8] 17000: f06f 0c00 mvn.w ip, #0 17004: ea4f 7244 mov.w r2, r4, lsl #29 17008: b312 cbz r2, 17050 1700a: ea80 0401 eor.w r4, r0, r1 1700e: f014 0f07 tst.w r4, #7 17012: d16a bne.n 170ea 17014: f000 0407 and.w r4, r0, #7 17018: f020 0007 bic.w r0, r0, #7 1701c: f004 0503 and.w r5, r4, #3 17020: f021 0107 bic.w r1, r1, #7 17024: ea4f 05c5 mov.w r5, r5, lsl #3 17028: e8f0 2304 ldrd r2, r3, [r0], #16 1702c: f014 0f04 tst.w r4, #4 17030: e8f1 6704 ldrd r6, r7, [r1], #16 17034: fa0c f405 lsl.w r4, ip, r5 17038: ea62 0204 orn r2, r2, r4 1703c: ea66 0604 orn r6, r6, r4 17040: d00a beq.n 17058 17042: ea63 0304 orn r3, r3, r4 17046: 4662 mov r2, ip 17048: ea67 0704 orn r7, r7, r4 1704c: 4666 mov r6, ip 1704e: e003 b.n 17058 17050: e8f0 2304 ldrd r2, r3, [r0], #16 17054: e8f1 6704 ldrd r6, r7, [r1], #16 17058: fa82 f54c uadd8 r5, r2, ip 1705c: ea82 0406 eor.w r4, r2, r6 17060: faa4 f48c sel r4, r4, ip 17064: bb6c cbnz r4, 170c2 17066: fa83 f54c uadd8 r5, r3, ip 1706a: ea83 0507 eor.w r5, r3, r7 1706e: faa5 f58c sel r5, r5, ip 17072: b995 cbnz r5, 1709a 17074: e950 2302 ldrd r2, r3, [r0, #-8] 17078: e951 6702 ldrd r6, r7, [r1, #-8] 1707c: fa82 f54c uadd8 r5, r2, ip 17080: ea82 0406 eor.w r4, r2, r6 17084: faa4 f48c sel r4, r4, ip 17088: fa83 f54c uadd8 r5, r3, ip 1708c: ea83 0507 eor.w r5, r3, r7 17090: faa5 f58c sel r5, r5, ip 17094: 4325 orrs r5, r4 17096: d0db beq.n 17050 17098: b99c cbnz r4, 170c2 1709a: ba2d rev r5, r5 1709c: fab5 f485 clz r4, r5 170a0: f024 0407 bic.w r4, r4, #7 170a4: fa27 f104 lsr.w r1, r7, r4 170a8: e9dd 6702 ldrd r6, r7, [sp, #8] 170ac: fa23 f304 lsr.w r3, r3, r4 170b0: f003 00ff and.w r0, r3, #255 ; 0xff 170b4: f001 01ff and.w r1, r1, #255 ; 0xff 170b8: e8fd 4504 ldrd r4, r5, [sp], #16 170bc: eba0 0001 sub.w r0, r0, r1 170c0: 4770 bx lr 170c2: ba24 rev r4, r4 170c4: fab4 f484 clz r4, r4 170c8: f024 0407 bic.w r4, r4, #7 170cc: fa26 f104 lsr.w r1, r6, r4 170d0: e9dd 6702 ldrd r6, r7, [sp, #8] 170d4: fa22 f204 lsr.w r2, r2, r4 170d8: f002 00ff and.w r0, r2, #255 ; 0xff 170dc: f001 01ff and.w r1, r1, #255 ; 0xff 170e0: e8fd 4504 ldrd r4, r5, [sp], #16 170e4: eba0 0001 sub.w r0, r0, r1 170e8: 4770 bx lr 170ea: f014 0f03 tst.w r4, #3 170ee: d13c bne.n 1716a 170f0: f010 0403 ands.w r4, r0, #3 170f4: d128 bne.n 17148 170f6: f850 2b08 ldr.w r2, [r0], #8 170fa: f851 3b08 ldr.w r3, [r1], #8 170fe: fa82 f54c uadd8 r5, r2, ip 17102: ea82 0503 eor.w r5, r2, r3 17106: faa5 f58c sel r5, r5, ip 1710a: b95d cbnz r5, 17124 1710c: f850 2c04 ldr.w r2, [r0, #-4] 17110: f851 3c04 ldr.w r3, [r1, #-4] 17114: fa82 f54c uadd8 r5, r2, ip 17118: ea82 0503 eor.w r5, r2, r3 1711c: faa5 f58c sel r5, r5, ip 17120: 2d00 cmp r5, #0 17122: d0e8 beq.n 170f6 17124: ba2d rev r5, r5 17126: fab5 f485 clz r4, r5 1712a: f024 0407 bic.w r4, r4, #7 1712e: fa23 f104 lsr.w r1, r3, r4 17132: fa22 f204 lsr.w r2, r2, r4 17136: f002 00ff and.w r0, r2, #255 ; 0xff 1713a: f001 01ff and.w r1, r1, #255 ; 0xff 1713e: e8fd 4504 ldrd r4, r5, [sp], #16 17142: eba0 0001 sub.w r0, r0, r1 17146: 4770 bx lr 17148: ea4f 04c4 mov.w r4, r4, lsl #3 1714c: f020 0003 bic.w r0, r0, #3 17150: f850 2b08 ldr.w r2, [r0], #8 17154: f021 0103 bic.w r1, r1, #3 17158: f851 3b08 ldr.w r3, [r1], #8 1715c: fa0c f404 lsl.w r4, ip, r4 17160: ea62 0204 orn r2, r2, r4 17164: ea63 0304 orn r3, r3, r4 17168: e7c9 b.n 170fe 1716a: f010 0403 ands.w r4, r0, #3 1716e: d01a beq.n 171a6 17170: eba1 0104 sub.w r1, r1, r4 17174: f020 0003 bic.w r0, r0, #3 17178: 07e4 lsls r4, r4, #31 1717a: f850 2b04 ldr.w r2, [r0], #4 1717e: d006 beq.n 1718e 17180: d20f bcs.n 171a2 17182: 788b ldrb r3, [r1, #2] 17184: fa5f f4a2 uxtb.w r4, r2, ror #16 17188: 1ae4 subs r4, r4, r3 1718a: d106 bne.n 1719a 1718c: b12b cbz r3, 1719a 1718e: 78cb ldrb r3, [r1, #3] 17190: fa5f f4b2 uxtb.w r4, r2, ror #24 17194: 1ae4 subs r4, r4, r3 17196: d100 bne.n 1719a 17198: b91b cbnz r3, 171a2 1719a: 4620 mov r0, r4 1719c: f85d 4b10 ldr.w r4, [sp], #16 171a0: 4770 bx lr 171a2: f101 0104 add.w r1, r1, #4 171a6: f850 2b04 ldr.w r2, [r0], #4 171aa: 07cc lsls r4, r1, #31 171ac: f021 0103 bic.w r1, r1, #3 171b0: f851 3b04 ldr.w r3, [r1], #4 171b4: d848 bhi.n 17248 171b6: d224 bcs.n 17202 171b8: f022 447f bic.w r4, r2, #4278190080 ; 0xff000000 171bc: fa82 f54c uadd8 r5, r2, ip 171c0: ea94 2513 eors.w r5, r4, r3, lsr #8 171c4: faa5 f58c sel r5, r5, ip 171c8: d10a bne.n 171e0 171ca: b965 cbnz r5, 171e6 171cc: f851 3b04 ldr.w r3, [r1], #4 171d0: ea84 0402 eor.w r4, r4, r2 171d4: ebb4 6f03 cmp.w r4, r3, lsl #24 171d8: d10e bne.n 171f8 171da: f850 2b04 ldr.w r2, [r0], #4 171de: e7eb b.n 171b8 171e0: ea4f 2313 mov.w r3, r3, lsr #8 171e4: e055 b.n 17292 171e6: f035 457f bics.w r5, r5, #4278190080 ; 0xff000000 171ea: d14d bne.n 17288 171ec: 7808 ldrb r0, [r1, #0] 171ee: e8fd 4504 ldrd r4, r5, [sp], #16 171f2: f1c0 0000 rsb r0, r0, #0 171f6: 4770 bx lr 171f8: ea4f 6212 mov.w r2, r2, lsr #24 171fc: f003 03ff and.w r3, r3, #255 ; 0xff 17200: e047 b.n 17292 17202: ea02 441c and.w r4, r2, ip, lsr #16 17206: fa82 f54c uadd8 r5, r2, ip 1720a: ea94 4513 eors.w r5, r4, r3, lsr #16 1720e: faa5 f58c sel r5, r5, ip 17212: d10a bne.n 1722a 17214: b965 cbnz r5, 17230 17216: f851 3b04 ldr.w r3, [r1], #4 1721a: ea84 0402 eor.w r4, r4, r2 1721e: ebb4 4f03 cmp.w r4, r3, lsl #16 17222: d10c bne.n 1723e 17224: f850 2b04 ldr.w r2, [r0], #4 17228: e7eb b.n 17202 1722a: ea4f 4313 mov.w r3, r3, lsr #16 1722e: e030 b.n 17292 17230: ea15 451c ands.w r5, r5, ip, lsr #16 17234: d128 bne.n 17288 17236: 880b ldrh r3, [r1, #0] 17238: ea4f 4212 mov.w r2, r2, lsr #16 1723c: e029 b.n 17292 1723e: ea4f 4212 mov.w r2, r2, lsr #16 17242: ea03 431c and.w r3, r3, ip, lsr #16 17246: e024 b.n 17292 17248: f002 04ff and.w r4, r2, #255 ; 0xff 1724c: fa82 f54c uadd8 r5, r2, ip 17250: ea94 6513 eors.w r5, r4, r3, lsr #24 17254: faa5 f58c sel r5, r5, ip 17258: d10a bne.n 17270 1725a: b965 cbnz r5, 17276 1725c: f851 3b04 ldr.w r3, [r1], #4 17260: ea84 0402 eor.w r4, r4, r2 17264: ebb4 2f03 cmp.w r4, r3, lsl #8 17268: d109 bne.n 1727e 1726a: f850 2b04 ldr.w r2, [r0], #4 1726e: e7eb b.n 17248 17270: ea4f 6313 mov.w r3, r3, lsr #24 17274: e00d b.n 17292 17276: f015 0fff tst.w r5, #255 ; 0xff 1727a: d105 bne.n 17288 1727c: 680b ldr r3, [r1, #0] 1727e: ea4f 2212 mov.w r2, r2, lsr #8 17282: f023 437f bic.w r3, r3, #4278190080 ; 0xff000000 17286: e004 b.n 17292 17288: f04f 0000 mov.w r0, #0 1728c: e8fd 4504 ldrd r4, r5, [sp], #16 17290: 4770 bx lr 17292: ba12 rev r2, r2 17294: ba1b rev r3, r3 17296: fa82 f44c uadd8 r4, r2, ip 1729a: ea82 0403 eor.w r4, r2, r3 1729e: faa4 f58c sel r5, r4, ip 172a2: fab5 f485 clz r4, r5 172a6: fa02 f204 lsl.w r2, r2, r4 172aa: fa03 f304 lsl.w r3, r3, r4 172ae: ea4f 6012 mov.w r0, r2, lsr #24 172b2: e8fd 4504 ldrd r4, r5, [sp], #16 172b6: eba0 6013 sub.w r0, r0, r3, lsr #24 172ba: 4770 bx lr 000172bc : 172bc: ea80 0201 eor.w r2, r0, r1 172c0: 4684 mov ip, r0 172c2: f012 0f03 tst.w r2, #3 172c6: d14f bne.n 17368 172c8: f011 0f03 tst.w r1, #3 172cc: d132 bne.n 17334 172ce: f84d 4d04 str.w r4, [sp, #-4]! 172d2: f011 0f04 tst.w r1, #4 172d6: f851 3b04 ldr.w r3, [r1], #4 172da: d00b beq.n 172f4 172dc: f1a3 3201 sub.w r2, r3, #16843009 ; 0x1010101 172e0: 439a bics r2, r3 172e2: f012 3f80 tst.w r2, #2155905152 ; 0x80808080 172e6: bf04 itt eq 172e8: f84c 3b04 streq.w r3, [ip], #4 172ec: f851 3b04 ldreq.w r3, [r1], #4 172f0: d116 bne.n 17320 172f2: bf00 nop 172f4: f851 4b04 ldr.w r4, [r1], #4 172f8: f1a3 3201 sub.w r2, r3, #16843009 ; 0x1010101 172fc: 439a bics r2, r3 172fe: f012 3f80 tst.w r2, #2155905152 ; 0x80808080 17302: f1a4 3201 sub.w r2, r4, #16843009 ; 0x1010101 17306: d10b bne.n 17320 17308: f84c 3b04 str.w r3, [ip], #4 1730c: 43a2 bics r2, r4 1730e: f012 3f80 tst.w r2, #2155905152 ; 0x80808080 17312: bf04 itt eq 17314: f851 3b04 ldreq.w r3, [r1], #4 17318: f84c 4b04 streq.w r4, [ip], #4 1731c: d0ea beq.n 172f4 1731e: 4623 mov r3, r4 17320: f80c 3b01 strb.w r3, [ip], #1 17324: f013 0fff tst.w r3, #255 ; 0xff 17328: ea4f 2333 mov.w r3, r3, ror #8 1732c: d1f8 bne.n 17320 1732e: f85d 4b04 ldr.w r4, [sp], #4 17332: 4770 bx lr 17334: f011 0f01 tst.w r1, #1 17338: d006 beq.n 17348 1733a: f811 2b01 ldrb.w r2, [r1], #1 1733e: f80c 2b01 strb.w r2, [ip], #1 17342: 2a00 cmp r2, #0 17344: bf08 it eq 17346: 4770 bxeq lr 17348: f011 0f02 tst.w r1, #2 1734c: d0bf beq.n 172ce 1734e: f831 2b02 ldrh.w r2, [r1], #2 17352: f012 0fff tst.w r2, #255 ; 0xff 17356: bf16 itet ne 17358: f82c 2b02 strhne.w r2, [ip], #2 1735c: f88c 2000 strbeq.w r2, [ip] 17360: f412 4f7f tstne.w r2, #65280 ; 0xff00 17364: d1b3 bne.n 172ce 17366: 4770 bx lr 17368: f811 2b01 ldrb.w r2, [r1], #1 1736c: f80c 2b01 strb.w r2, [ip], #1 17370: 2a00 cmp r2, #0 17372: d1f9 bne.n 17368 17374: 4770 bx lr 17376: bf00 nop ... 00017380 : 17380: f890 f000 pld [r0] 17384: e96d 4502 strd r4, r5, [sp, #-8]! 17388: f020 0107 bic.w r1, r0, #7 1738c: f06f 0c00 mvn.w ip, #0 17390: f010 0407 ands.w r4, r0, #7 17394: f891 f020 pld [r1, #32] 17398: f040 8049 bne.w 1742e 1739c: f04f 0400 mov.w r4, #0 173a0: f06f 0007 mvn.w r0, #7 173a4: e9d1 2300 ldrd r2, r3, [r1] 173a8: f891 f040 pld [r1, #64] ; 0x40 173ac: f100 0008 add.w r0, r0, #8 173b0: fa82 f24c uadd8 r2, r2, ip 173b4: faa4 f28c sel r2, r4, ip 173b8: fa83 f34c uadd8 r3, r3, ip 173bc: faa2 f38c sel r3, r2, ip 173c0: bb4b cbnz r3, 17416 173c2: e9d1 2302 ldrd r2, r3, [r1, #8] 173c6: fa82 f24c uadd8 r2, r2, ip 173ca: f100 0008 add.w r0, r0, #8 173ce: faa4 f28c sel r2, r4, ip 173d2: fa83 f34c uadd8 r3, r3, ip 173d6: faa2 f38c sel r3, r2, ip 173da: b9e3 cbnz r3, 17416 173dc: e9d1 2304 ldrd r2, r3, [r1, #16] 173e0: fa82 f24c uadd8 r2, r2, ip 173e4: f100 0008 add.w r0, r0, #8 173e8: faa4 f28c sel r2, r4, ip 173ec: fa83 f34c uadd8 r3, r3, ip 173f0: faa2 f38c sel r3, r2, ip 173f4: b97b cbnz r3, 17416 173f6: e9d1 2306 ldrd r2, r3, [r1, #24] 173fa: f101 0120 add.w r1, r1, #32 173fe: fa82 f24c uadd8 r2, r2, ip 17402: f100 0008 add.w r0, r0, #8 17406: faa4 f28c sel r2, r4, ip 1740a: fa83 f34c uadd8 r3, r3, ip 1740e: faa2 f38c sel r3, r2, ip 17412: 2b00 cmp r3, #0 17414: d0c6 beq.n 173a4 17416: 2a00 cmp r2, #0 17418: bf04 itt eq 1741a: 3004 addeq r0, #4 1741c: 461a moveq r2, r3 1741e: ba12 rev r2, r2 17420: fab2 f282 clz r2, r2 17424: e8fd 4502 ldrd r4, r5, [sp], #8 17428: eb00 00d2 add.w r0, r0, r2, lsr #3 1742c: 4770 bx lr 1742e: e9d1 2300 ldrd r2, r3, [r1] 17432: f004 0503 and.w r5, r4, #3 17436: f1c4 0000 rsb r0, r4, #0 1743a: ea4f 05c5 mov.w r5, r5, lsl #3 1743e: f014 0f04 tst.w r4, #4 17442: f891 f040 pld [r1, #64] ; 0x40 17446: fa0c f505 lsl.w r5, ip, r5 1744a: ea62 0205 orn r2, r2, r5 1744e: bf1c itt ne 17450: ea63 0305 ornne r3, r3, r5 17454: 4662 movne r2, ip 17456: f04f 0400 mov.w r4, #0 1745a: e7a9 b.n 173b0 0001745c <_vfprintf_r>: 1745c: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} 17460: b0bf sub sp, #252 ; 0xfc 17462: 461c mov r4, r3 17464: 468a mov sl, r1 17466: 4690 mov r8, r2 17468: 4605 mov r5, r0 1746a: 900c str r0, [sp, #48] ; 0x30 1746c: f002 fd24 bl 19eb8 <_localeconv_r> 17470: 6802 ldr r2, [r0, #0] 17472: 9215 str r2, [sp, #84] ; 0x54 17474: 4610 mov r0, r2 17476: 940d str r4, [sp, #52] ; 0x34 17478: f7ff ff82 bl 17380 1747c: 9013 str r0, [sp, #76] ; 0x4c 1747e: b11d cbz r5, 17488 <_vfprintf_r+0x2c> 17480: 6bab ldr r3, [r5, #56] ; 0x38 17482: 2b00 cmp r3, #0 17484: f000 81d7 beq.w 17836 <_vfprintf_r+0x3da> 17488: f9ba 300c ldrsh.w r3, [sl, #12] 1748c: 0499 lsls r1, r3, #18 1748e: b29a uxth r2, r3 17490: d40a bmi.n 174a8 <_vfprintf_r+0x4c> 17492: f443 5300 orr.w r3, r3, #8192 ; 0x2000 17496: f8aa 300c strh.w r3, [sl, #12] 1749a: b29a uxth r2, r3 1749c: f8da 3060 ldr.w r3, [sl, #96] ; 0x60 174a0: f423 5300 bic.w r3, r3, #8192 ; 0x2000 174a4: f8ca 3060 str.w r3, [sl, #96] ; 0x60 174a8: 0717 lsls r7, r2, #28 174aa: f140 80ac bpl.w 17606 <_vfprintf_r+0x1aa> 174ae: f8da 3010 ldr.w r3, [sl, #16] 174b2: 2b00 cmp r3, #0 174b4: f000 80a7 beq.w 17606 <_vfprintf_r+0x1aa> 174b8: f002 021a and.w r2, r2, #26 174bc: 2a0a cmp r2, #10 174be: f000 80b0 beq.w 17622 <_vfprintf_r+0x1c6> 174c2: 2300 movs r3, #0 174c4: e9cd 3322 strd r3, r3, [sp, #136] ; 0x88 174c8: 9312 str r3, [sp, #72] ; 0x48 174ca: 9314 str r3, [sp, #80] ; 0x50 174cc: 9316 str r3, [sp, #88] ; 0x58 174ce: 9309 str r3, [sp, #36] ; 0x24 174d0: 2400 movs r4, #0 174d2: 2300 movs r3, #0 174d4: e9cd 3410 strd r3, r4, [sp, #64] ; 0x40 174d8: aa2e add r2, sp, #184 ; 0xb8 174da: 9221 str r2, [sp, #132] ; 0x84 174dc: 4691 mov r9, r2 174de: 46d3 mov fp, sl 174e0: f898 3000 ldrb.w r3, [r8] 174e4: 2b00 cmp r3, #0 174e6: f000 8153 beq.w 17790 <_vfprintf_r+0x334> 174ea: 4644 mov r4, r8 174ec: e004 b.n 174f8 <_vfprintf_r+0x9c> 174ee: f814 3f01 ldrb.w r3, [r4, #1]! 174f2: 2b00 cmp r3, #0 174f4: f000 80a3 beq.w 1763e <_vfprintf_r+0x1e2> 174f8: 2b25 cmp r3, #37 ; 0x25 174fa: d1f8 bne.n 174ee <_vfprintf_r+0x92> 174fc: ebb4 0508 subs.w r5, r4, r8 17500: f040 80a1 bne.w 17646 <_vfprintf_r+0x1ea> 17504: 7823 ldrb r3, [r4, #0] 17506: 2b00 cmp r3, #0 17508: f000 8142 beq.w 17790 <_vfprintf_r+0x334> 1750c: 2300 movs r3, #0 1750e: 1c62 adds r2, r4, #1 17510: f88d 3067 strb.w r3, [sp, #103] ; 0x67 17514: 4618 mov r0, r3 17516: f04f 35ff mov.w r5, #4294967295 ; 0xffffffff 1751a: 4619 mov r1, r3 1751c: 461c mov r4, r3 1751e: 4690 mov r8, r2 17520: f818 7b01 ldrb.w r7, [r8], #1 17524: f1a7 0220 sub.w r2, r7, #32 17528: 2a58 cmp r2, #88 ; 0x58 1752a: f200 80a7 bhi.w 1767c <_vfprintf_r+0x220> 1752e: e8df f012 tbh [pc, r2, lsl #1] 17532: 01ef .short 0x01ef 17534: 00a500a5 .word 0x00a500a5 17538: 00a501ec .word 0x00a501ec 1753c: 00a500a5 .word 0x00a500a5 17540: 00a500a5 .word 0x00a500a5 17544: 01b800a5 .word 0x01b800a5 17548: 00a50684 .word 0x00a50684 1754c: 01c301c0 .word 0x01c301c0 17550: 01e900a5 .word 0x01e900a5 17554: 00590059 .word 0x00590059 17558: 00590059 .word 0x00590059 1755c: 00590059 .word 0x00590059 17560: 00590059 .word 0x00590059 17564: 00a50059 .word 0x00a50059 17568: 00a500a5 .word 0x00a500a5 1756c: 00a500a5 .word 0x00a500a5 17570: 00a500a5 .word 0x00a500a5 17574: 00a500a5 .word 0x00a500a5 17578: 01dd00a5 .word 0x01dd00a5 1757c: 00a5013d .word 0x00a5013d 17580: 00a5013d .word 0x00a5013d 17584: 00a500a5 .word 0x00a500a5 17588: 023800a5 .word 0x023800a5 1758c: 00a500a5 .word 0x00a500a5 17590: 00a50245 .word 0x00a50245 17594: 00a500a5 .word 0x00a500a5 17598: 00a500a5 .word 0x00a500a5 1759c: 00a5023b .word 0x00a5023b 175a0: 020400a5 .word 0x020400a5 175a4: 00a500a5 .word 0x00a500a5 175a8: 00a500a5 .word 0x00a500a5 175ac: 00a500a5 .word 0x00a500a5 175b0: 00a500a5 .word 0x00a500a5 175b4: 00a500a5 .word 0x00a500a5 175b8: 018601f5 .word 0x018601f5 175bc: 013d013d .word 0x013d013d 175c0: 01da013d .word 0x01da013d 175c4: 00a50186 .word 0x00a50186 175c8: 006700a5 .word 0x006700a5 175cc: 02ba00a5 .word 0x02ba00a5 175d0: 028c02a7 .word 0x028c02a7 175d4: 00a50067 .word 0x00a50067 175d8: 00a50266 .word 0x00a50266 175dc: 00a50257 .word 0x00a50257 175e0: 024f00a5 .word 0x024f00a5 175e4: f1a7 0230 sub.w r2, r7, #48 ; 0x30 175e8: 2100 movs r1, #0 175ea: f818 7b01 ldrb.w r7, [r8], #1 175ee: eb01 0181 add.w r1, r1, r1, lsl #2 175f2: eb02 0141 add.w r1, r2, r1, lsl #1 175f6: f1a7 0230 sub.w r2, r7, #48 ; 0x30 175fa: 2a09 cmp r2, #9 175fc: d9f5 bls.n 175ea <_vfprintf_r+0x18e> 175fe: e791 b.n 17524 <_vfprintf_r+0xc8> 17600: f044 0410 orr.w r4, r4, #16 17604: e78c b.n 17520 <_vfprintf_r+0xc4> 17606: 980c ldr r0, [sp, #48] ; 0x30 17608: 4651 mov r1, sl 1760a: f001 f953 bl 188b4 <__swsetup_r> 1760e: 2800 cmp r0, #0 17610: f041 8096 bne.w 18740 <_vfprintf_r+0x12e4> 17614: f8ba 200c ldrh.w r2, [sl, #12] 17618: f002 021a and.w r2, r2, #26 1761c: 2a0a cmp r2, #10 1761e: f47f af50 bne.w 174c2 <_vfprintf_r+0x66> 17622: f9ba 300e ldrsh.w r3, [sl, #14] 17626: 2b00 cmp r3, #0 17628: f6ff af4b blt.w 174c2 <_vfprintf_r+0x66> 1762c: 980c ldr r0, [sp, #48] ; 0x30 1762e: 4623 mov r3, r4 17630: 4642 mov r2, r8 17632: 4651 mov r1, sl 17634: b03f add sp, #252 ; 0xfc 17636: e8bd 4ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} 1763a: f001 b8ef b.w 1881c <__sbprintf> 1763e: ebb4 0508 subs.w r5, r4, r8 17642: f000 80a5 beq.w 17790 <_vfprintf_r+0x334> 17646: 9b23 ldr r3, [sp, #140] ; 0x8c 17648: 442b add r3, r5 1764a: 9323 str r3, [sp, #140] ; 0x8c 1764c: 9b22 ldr r3, [sp, #136] ; 0x88 1764e: 3301 adds r3, #1 17650: 2b07 cmp r3, #7 17652: e9c9 8500 strd r8, r5, [r9] 17656: 9322 str r3, [sp, #136] ; 0x88 17658: dc05 bgt.n 17666 <_vfprintf_r+0x20a> 1765a: f109 0908 add.w r9, r9, #8 1765e: 9b09 ldr r3, [sp, #36] ; 0x24 17660: 442b add r3, r5 17662: 9309 str r3, [sp, #36] ; 0x24 17664: e74e b.n 17504 <_vfprintf_r+0xa8> 17666: 980c ldr r0, [sp, #48] ; 0x30 17668: aa21 add r2, sp, #132 ; 0x84 1766a: 4659 mov r1, fp 1766c: f003 fc30 bl 1aed0 <__sprint_r> 17670: 2800 cmp r0, #0 17672: f040 834a bne.w 17d0a <_vfprintf_r+0x8ae> 17676: f10d 09b8 add.w r9, sp, #184 ; 0xb8 1767a: e7f0 b.n 1765e <_vfprintf_r+0x202> 1767c: 910b str r1, [sp, #44] ; 0x2c 1767e: 2b00 cmp r3, #0 17680: f040 878b bne.w 1859a <_vfprintf_r+0x113e> 17684: 2f00 cmp r7, #0 17686: f000 8083 beq.w 17790 <_vfprintf_r+0x334> 1768a: 2300 movs r3, #0 1768c: f88d 3067 strb.w r3, [sp, #103] ; 0x67 17690: 2301 movs r3, #1 17692: f88d 7090 strb.w r7, [sp, #144] ; 0x90 17696: 9307 str r3, [sp, #28] 17698: 930a str r3, [sp, #40] ; 0x28 1769a: ad24 add r5, sp, #144 ; 0x90 1769c: 2300 movs r3, #0 1769e: 9406 str r4, [sp, #24] 176a0: 9308 str r3, [sp, #32] 176a2: 930f str r3, [sp, #60] ; 0x3c 176a4: 9b06 ldr r3, [sp, #24] 176a6: f013 0302 ands.w r3, r3, #2 176aa: d002 beq.n 176b2 <_vfprintf_r+0x256> 176ac: 9a07 ldr r2, [sp, #28] 176ae: 3202 adds r2, #2 176b0: 9207 str r2, [sp, #28] 176b2: 9a06 ldr r2, [sp, #24] 176b4: 9c23 ldr r4, [sp, #140] ; 0x8c 176b6: f012 0284 ands.w r2, r2, #132 ; 0x84 176ba: 920e str r2, [sp, #56] ; 0x38 176bc: d105 bne.n 176ca <_vfprintf_r+0x26e> 176be: 9a0b ldr r2, [sp, #44] ; 0x2c 176c0: 9907 ldr r1, [sp, #28] 176c2: 1a56 subs r6, r2, r1 176c4: 2e00 cmp r6, #0 176c6: f300 8383 bgt.w 17dd0 <_vfprintf_r+0x974> 176ca: f89d 2067 ldrb.w r2, [sp, #103] ; 0x67 176ce: b18a cbz r2, 176f4 <_vfprintf_r+0x298> 176d0: 9a22 ldr r2, [sp, #136] ; 0x88 176d2: f10d 0167 add.w r1, sp, #103 ; 0x67 176d6: 3201 adds r2, #1 176d8: 3401 adds r4, #1 176da: f8c9 1000 str.w r1, [r9] 176de: 2a07 cmp r2, #7 176e0: f04f 0101 mov.w r1, #1 176e4: 9423 str r4, [sp, #140] ; 0x8c 176e6: 9222 str r2, [sp, #136] ; 0x88 176e8: f8c9 1004 str.w r1, [r9, #4] 176ec: f300 83c4 bgt.w 17e78 <_vfprintf_r+0xa1c> 176f0: f109 0908 add.w r9, r9, #8 176f4: b183 cbz r3, 17718 <_vfprintf_r+0x2bc> 176f6: 9b22 ldr r3, [sp, #136] ; 0x88 176f8: aa1a add r2, sp, #104 ; 0x68 176fa: 3301 adds r3, #1 176fc: 3402 adds r4, #2 176fe: f8c9 2000 str.w r2, [r9] 17702: 2b07 cmp r3, #7 17704: f04f 0202 mov.w r2, #2 17708: 9423 str r4, [sp, #140] ; 0x8c 1770a: 9322 str r3, [sp, #136] ; 0x88 1770c: f8c9 2004 str.w r2, [r9, #4] 17710: f300 83a6 bgt.w 17e60 <_vfprintf_r+0xa04> 17714: f109 0908 add.w r9, r9, #8 17718: 9b0e ldr r3, [sp, #56] ; 0x38 1771a: 2b80 cmp r3, #128 ; 0x80 1771c: f000 8261 beq.w 17be2 <_vfprintf_r+0x786> 17720: 9b08 ldr r3, [sp, #32] 17722: 9a0a ldr r2, [sp, #40] ; 0x28 17724: eba3 0a02 sub.w sl, r3, r2 17728: f1ba 0f00 cmp.w sl, #0 1772c: f300 82a3 bgt.w 17c76 <_vfprintf_r+0x81a> 17730: 9b06 ldr r3, [sp, #24] 17732: 05db lsls r3, r3, #23 17734: f100 81e9 bmi.w 17b0a <_vfprintf_r+0x6ae> 17738: 9b0a ldr r3, [sp, #40] ; 0x28 1773a: f8c9 3004 str.w r3, [r9, #4] 1773e: 441c add r4, r3 17740: 9b22 ldr r3, [sp, #136] ; 0x88 17742: f8c9 5000 str.w r5, [r9] 17746: 3301 adds r3, #1 17748: 2b07 cmp r3, #7 1774a: 9423 str r4, [sp, #140] ; 0x8c 1774c: 9322 str r3, [sp, #136] ; 0x88 1774e: f300 82e9 bgt.w 17d24 <_vfprintf_r+0x8c8> 17752: f109 0908 add.w r9, r9, #8 17756: 9b06 ldr r3, [sp, #24] 17758: 0759 lsls r1, r3, #29 1775a: d505 bpl.n 17768 <_vfprintf_r+0x30c> 1775c: 9b0b ldr r3, [sp, #44] ; 0x2c 1775e: 9a07 ldr r2, [sp, #28] 17760: 1a9d subs r5, r3, r2 17762: 2d00 cmp r5, #0 17764: f300 8396 bgt.w 17e94 <_vfprintf_r+0xa38> 17768: 9b09 ldr r3, [sp, #36] ; 0x24 1776a: 9a0b ldr r2, [sp, #44] ; 0x2c 1776c: 9907 ldr r1, [sp, #28] 1776e: 428a cmp r2, r1 17770: bfac ite ge 17772: 189b addge r3, r3, r2 17774: 185b addlt r3, r3, r1 17776: 9309 str r3, [sp, #36] ; 0x24 17778: 2c00 cmp r4, #0 1777a: f040 82be bne.w 17cfa <_vfprintf_r+0x89e> 1777e: 2300 movs r3, #0 17780: 9322 str r3, [sp, #136] ; 0x88 17782: f898 3000 ldrb.w r3, [r8] 17786: f10d 09b8 add.w r9, sp, #184 ; 0xb8 1778a: 2b00 cmp r3, #0 1778c: f47f aead bne.w 174ea <_vfprintf_r+0x8e> 17790: 9b23 ldr r3, [sp, #140] ; 0x8c 17792: 46da mov sl, fp 17794: 2b00 cmp r3, #0 17796: f040 86f9 bne.w 1858c <_vfprintf_r+0x1130> 1779a: f8ba 300c ldrh.w r3, [sl, #12] 1779e: 065a lsls r2, r3, #25 177a0: f100 87ce bmi.w 18740 <_vfprintf_r+0x12e4> 177a4: 9809 ldr r0, [sp, #36] ; 0x24 177a6: b03f add sp, #252 ; 0xfc 177a8: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} 177ac: 910b str r1, [sp, #44] ; 0x2c 177ae: 9508 str r5, [sp, #32] 177b0: 2b00 cmp r3, #0 177b2: f040 87a8 bne.w 18706 <_vfprintf_r+0x12aa> 177b6: 9b0d ldr r3, [sp, #52] ; 0x34 177b8: 3307 adds r3, #7 177ba: f023 0107 bic.w r1, r3, #7 177be: e8f1 2302 ldrd r2, r3, [r1], #8 177c2: f023 4500 bic.w r5, r3, #2147483648 ; 0x80000000 177c6: e9cd 2310 strd r2, r3, [sp, #64] ; 0x40 177ca: 910d str r1, [sp, #52] ; 0x34 177cc: 4616 mov r6, r2 177ce: 4610 mov r0, r2 177d0: 4ba6 ldr r3, [pc, #664] ; (17a6c <_vfprintf_r+0x610>) 177d2: 4629 mov r1, r5 177d4: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff 177d8: f006 f9ee bl 1dbb8 <__aeabi_dcmpun> 177dc: 2800 cmp r0, #0 177de: f040 847d bne.w 180dc <_vfprintf_r+0xc80> 177e2: 4ba2 ldr r3, [pc, #648] ; (17a6c <_vfprintf_r+0x610>) 177e4: 4630 mov r0, r6 177e6: 4629 mov r1, r5 177e8: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff 177ec: f006 f9c6 bl 1db7c <__aeabi_dcmple> 177f0: 2800 cmp r0, #0 177f2: f040 8473 bne.w 180dc <_vfprintf_r+0xc80> 177f6: e9dd 0110 ldrd r0, r1, [sp, #64] ; 0x40 177fa: 2200 movs r2, #0 177fc: 2300 movs r3, #0 177fe: f006 f9b3 bl 1db68 <__aeabi_dcmplt> 17802: 2800 cmp r0, #0 17804: f040 86a9 bne.w 1855a <_vfprintf_r+0x10fe> 17808: f89d 1067 ldrb.w r1, [sp, #103] ; 0x67 1780c: 4d98 ldr r5, [pc, #608] ; (17a70 <_vfprintf_r+0x614>) 1780e: f024 0380 bic.w r3, r4, #128 ; 0x80 17812: 9306 str r3, [sp, #24] 17814: 4b97 ldr r3, [pc, #604] ; (17a74 <_vfprintf_r+0x618>) 17816: 2200 movs r2, #0 17818: 2f47 cmp r7, #71 ; 0x47 1781a: bfc8 it gt 1781c: 461d movgt r5, r3 1781e: 2303 movs r3, #3 17820: e9cd 3207 strd r3, r2, [sp, #28] 17824: 930a str r3, [sp, #40] ; 0x28 17826: 920f str r2, [sp, #60] ; 0x3c 17828: 2900 cmp r1, #0 1782a: f43f af3b beq.w 176a4 <_vfprintf_r+0x248> 1782e: 9b07 ldr r3, [sp, #28] 17830: 3301 adds r3, #1 17832: 9307 str r3, [sp, #28] 17834: e736 b.n 176a4 <_vfprintf_r+0x248> 17836: 980c ldr r0, [sp, #48] ; 0x30 17838: f002 f9c8 bl 19bcc <__sinit> 1783c: e624 b.n 17488 <_vfprintf_r+0x2c> 1783e: 910b str r1, [sp, #44] ; 0x2c 17840: 9508 str r5, [sp, #32] 17842: 2b00 cmp r3, #0 17844: f040 8753 bne.w 186ee <_vfprintf_r+0x1292> 17848: 9b0d ldr r3, [sp, #52] ; 0x34 1784a: 06e5 lsls r5, r4, #27 1784c: f853 2b04 ldr.w r2, [r3], #4 17850: 930d str r3, [sp, #52] ; 0x34 17852: d402 bmi.n 1785a <_vfprintf_r+0x3fe> 17854: 0660 lsls r0, r4, #25 17856: f100 8438 bmi.w 180ca <_vfprintf_r+0xc6e> 1785a: 4613 mov r3, r2 1785c: 2a00 cmp r2, #0 1785e: f2c0 8425 blt.w 180ac <_vfprintf_r+0xc50> 17862: 9808 ldr r0, [sp, #32] 17864: f89d 1067 ldrb.w r1, [sp, #103] ; 0x67 17868: 3001 adds r0, #1 1786a: d006 beq.n 1787a <_vfprintf_r+0x41e> 1786c: f024 0080 bic.w r0, r4, #128 ; 0x80 17870: 9006 str r0, [sp, #24] 17872: 2a00 cmp r2, #0 17874: f000 83d8 beq.w 18028 <_vfprintf_r+0xbcc> 17878: 9c06 ldr r4, [sp, #24] 1787a: 2b09 cmp r3, #9 1787c: f200 8545 bhi.w 1830a <_vfprintf_r+0xeae> 17880: 3330 adds r3, #48 ; 0x30 17882: f88d 30b7 strb.w r3, [sp, #183] ; 0xb7 17886: 2301 movs r3, #1 17888: 9406 str r4, [sp, #24] 1788a: 930a str r3, [sp, #40] ; 0x28 1788c: f10d 05b7 add.w r5, sp, #183 ; 0xb7 17890: 9b08 ldr r3, [sp, #32] 17892: 9a0a ldr r2, [sp, #40] ; 0x28 17894: 4293 cmp r3, r2 17896: bfb8 it lt 17898: 4613 movlt r3, r2 1789a: 9307 str r3, [sp, #28] 1789c: 2300 movs r3, #0 1789e: 930f str r3, [sp, #60] ; 0x3c 178a0: e7c2 b.n 17828 <_vfprintf_r+0x3cc> 178a2: 9a0d ldr r2, [sp, #52] ; 0x34 178a4: f852 1b04 ldr.w r1, [r2], #4 178a8: 2900 cmp r1, #0 178aa: f280 8408 bge.w 180be <_vfprintf_r+0xc62> 178ae: 4249 negs r1, r1 178b0: 920d str r2, [sp, #52] ; 0x34 178b2: f044 0404 orr.w r4, r4, #4 178b6: e633 b.n 17520 <_vfprintf_r+0xc4> 178b8: f818 7b01 ldrb.w r7, [r8], #1 178bc: 2f2a cmp r7, #42 ; 0x2a 178be: f000 879b beq.w 187f8 <_vfprintf_r+0x139c> 178c2: f1a7 0230 sub.w r2, r7, #48 ; 0x30 178c6: 2a09 cmp r2, #9 178c8: f04f 0500 mov.w r5, #0 178cc: f63f ae2a bhi.w 17524 <_vfprintf_r+0xc8> 178d0: f818 7b01 ldrb.w r7, [r8], #1 178d4: eb05 0585 add.w r5, r5, r5, lsl #2 178d8: eb02 0545 add.w r5, r2, r5, lsl #1 178dc: f1a7 0230 sub.w r2, r7, #48 ; 0x30 178e0: 2a09 cmp r2, #9 178e2: d9f5 bls.n 178d0 <_vfprintf_r+0x474> 178e4: e61e b.n 17524 <_vfprintf_r+0xc8> 178e6: f044 0440 orr.w r4, r4, #64 ; 0x40 178ea: e619 b.n 17520 <_vfprintf_r+0xc4> 178ec: 910b str r1, [sp, #44] ; 0x2c 178ee: 9508 str r5, [sp, #32] 178f0: 2b00 cmp r3, #0 178f2: f040 86f0 bne.w 186d6 <_vfprintf_r+0x127a> 178f6: 9b0d ldr r3, [sp, #52] ; 0x34 178f8: f853 2b04 ldr.w r2, [r3], #4 178fc: 930d str r3, [sp, #52] ; 0x34 178fe: f044 0410 orr.w r4, r4, #16 17902: e7aa b.n 1785a <_vfprintf_r+0x3fe> 17904: f044 0480 orr.w r4, r4, #128 ; 0x80 17908: e60a b.n 17520 <_vfprintf_r+0xc4> 1790a: f044 0401 orr.w r4, r4, #1 1790e: e607 b.n 17520 <_vfprintf_r+0xc4> 17910: 2800 cmp r0, #0 17912: f47f ae05 bne.w 17520 <_vfprintf_r+0xc4> 17916: 2301 movs r3, #1 17918: 2020 movs r0, #32 1791a: e601 b.n 17520 <_vfprintf_r+0xc4> 1791c: 9b0d ldr r3, [sp, #52] ; 0x34 1791e: 910b str r1, [sp, #44] ; 0x2c 17920: 2200 movs r2, #0 17922: f88d 2067 strb.w r2, [sp, #103] ; 0x67 17926: f853 2b04 ldr.w r2, [r3], #4 1792a: 930d str r3, [sp, #52] ; 0x34 1792c: 2301 movs r3, #1 1792e: f88d 2090 strb.w r2, [sp, #144] ; 0x90 17932: 9307 str r3, [sp, #28] 17934: 930a str r3, [sp, #40] ; 0x28 17936: ad24 add r5, sp, #144 ; 0x90 17938: e6b0 b.n 1769c <_vfprintf_r+0x240> 1793a: 910b str r1, [sp, #44] ; 0x2c 1793c: 9508 str r5, [sp, #32] 1793e: 2b00 cmp r3, #0 17940: f040 86e5 bne.w 1870e <_vfprintf_r+0x12b2> 17944: 4b4c ldr r3, [pc, #304] ; (17a78 <_vfprintf_r+0x61c>) 17946: 9314 str r3, [sp, #80] ; 0x50 17948: 9a0d ldr r2, [sp, #52] ; 0x34 1794a: 06e1 lsls r1, r4, #27 1794c: f852 3b04 ldr.w r3, [r2], #4 17950: 920d str r2, [sp, #52] ; 0x34 17952: d402 bmi.n 1795a <_vfprintf_r+0x4fe> 17954: 0662 lsls r2, r4, #25 17956: bf48 it mi 17958: b29b uxthmi r3, r3 1795a: 07e6 lsls r6, r4, #31 1795c: d502 bpl.n 17964 <_vfprintf_r+0x508> 1795e: 2b00 cmp r3, #0 17960: f040 8461 bne.w 18226 <_vfprintf_r+0xdca> 17964: 2202 movs r2, #2 17966: 2100 movs r1, #0 17968: 9808 ldr r0, [sp, #32] 1796a: f88d 1067 strb.w r1, [sp, #103] ; 0x67 1796e: 1c45 adds r5, r0, #1 17970: f000 80af beq.w 17ad2 <_vfprintf_r+0x676> 17974: f024 0580 bic.w r5, r4, #128 ; 0x80 17978: 9506 str r5, [sp, #24] 1797a: 2b00 cmp r3, #0 1797c: f040 80a8 bne.w 17ad0 <_vfprintf_r+0x674> 17980: 2800 cmp r0, #0 17982: f040 811a bne.w 17bba <_vfprintf_r+0x75e> 17986: 2a00 cmp r2, #0 17988: f040 8352 bne.w 18030 <_vfprintf_r+0xbd4> 1798c: f014 0301 ands.w r3, r4, #1 17990: 930a str r3, [sp, #40] ; 0x28 17992: f000 8397 beq.w 180c4 <_vfprintf_r+0xc68> 17996: 2330 movs r3, #48 ; 0x30 17998: f88d 30b7 strb.w r3, [sp, #183] ; 0xb7 1799c: f10d 05b7 add.w r5, sp, #183 ; 0xb7 179a0: e776 b.n 17890 <_vfprintf_r+0x434> 179a2: f044 0408 orr.w r4, r4, #8 179a6: e5bb b.n 17520 <_vfprintf_r+0xc4> 179a8: 9a0d ldr r2, [sp, #52] ; 0x34 179aa: 910b str r1, [sp, #44] ; 0x2c 179ac: f852 3b04 ldr.w r3, [r2], #4 179b0: 9508 str r5, [sp, #32] 179b2: f044 0410 orr.w r4, r4, #16 179b6: 920d str r2, [sp, #52] ; 0x34 179b8: 2201 movs r2, #1 179ba: e7d4 b.n 17966 <_vfprintf_r+0x50a> 179bc: 9a0d ldr r2, [sp, #52] ; 0x34 179be: 910b str r1, [sp, #44] ; 0x2c 179c0: f852 3b04 ldr.w r3, [r2], #4 179c4: 9508 str r5, [sp, #32] 179c6: f044 0410 orr.w r4, r4, #16 179ca: 920d str r2, [sp, #52] ; 0x34 179cc: 2200 movs r2, #0 179ce: e7ca b.n 17966 <_vfprintf_r+0x50a> 179d0: 910b str r1, [sp, #44] ; 0x2c 179d2: 9508 str r5, [sp, #32] 179d4: 2b00 cmp r3, #0 179d6: f040 8682 bne.w 186de <_vfprintf_r+0x1282> 179da: 4b28 ldr r3, [pc, #160] ; (17a7c <_vfprintf_r+0x620>) 179dc: 9314 str r3, [sp, #80] ; 0x50 179de: e7b3 b.n 17948 <_vfprintf_r+0x4ec> 179e0: 910b str r1, [sp, #44] ; 0x2c 179e2: 9508 str r5, [sp, #32] 179e4: 2b00 cmp r3, #0 179e6: f040 867e bne.w 186e6 <_vfprintf_r+0x128a> 179ea: 9a0d ldr r2, [sp, #52] ; 0x34 179ec: 06e6 lsls r6, r4, #27 179ee: f852 3b04 ldr.w r3, [r2], #4 179f2: 920d str r2, [sp, #52] ; 0x34 179f4: d4e0 bmi.n 179b8 <_vfprintf_r+0x55c> 179f6: 0660 lsls r0, r4, #25 179f8: bf48 it mi 179fa: b29b uxthmi r3, r3 179fc: e7dc b.n 179b8 <_vfprintf_r+0x55c> 179fe: 9e0d ldr r6, [sp, #52] ; 0x34 17a00: 9508 str r5, [sp, #32] 17a02: f856 5b04 ldr.w r5, [r6], #4 17a06: 9b08 ldr r3, [sp, #32] 17a08: 910b str r1, [sp, #44] ; 0x2c 17a0a: f04f 0a00 mov.w sl, #0 17a0e: f88d a067 strb.w sl, [sp, #103] ; 0x67 17a12: 2d00 cmp r5, #0 17a14: f000 842e beq.w 18274 <_vfprintf_r+0xe18> 17a18: 1c5a adds r2, r3, #1 17a1a: f000 852e beq.w 1847a <_vfprintf_r+0x101e> 17a1e: 461a mov r2, r3 17a20: 4651 mov r1, sl 17a22: 4628 mov r0, r5 17a24: f002 fd6c bl 1a500 17a28: 2800 cmp r0, #0 17a2a: f000 8649 beq.w 186c0 <_vfprintf_r+0x1264> 17a2e: 1b43 subs r3, r0, r5 17a30: 930a str r3, [sp, #40] ; 0x28 17a32: ea23 73e3 bic.w r3, r3, r3, asr #31 17a36: f89d 1067 ldrb.w r1, [sp, #103] ; 0x67 17a3a: f8cd a020 str.w sl, [sp, #32] 17a3e: 960d str r6, [sp, #52] ; 0x34 17a40: 9406 str r4, [sp, #24] 17a42: 9307 str r3, [sp, #28] 17a44: f8cd a03c str.w sl, [sp, #60] ; 0x3c 17a48: e6ee b.n 17828 <_vfprintf_r+0x3cc> 17a4a: 9a0d ldr r2, [sp, #52] ; 0x34 17a4c: 910b str r1, [sp, #44] ; 0x2c 17a4e: f852 3b04 ldr.w r3, [r2], #4 17a52: 920d str r2, [sp, #52] ; 0x34 17a54: f647 0230 movw r2, #30768 ; 0x7830 17a58: f8ad 2068 strh.w r2, [sp, #104] ; 0x68 17a5c: 4a07 ldr r2, [pc, #28] ; (17a7c <_vfprintf_r+0x620>) 17a5e: 9214 str r2, [sp, #80] ; 0x50 17a60: 9508 str r5, [sp, #32] 17a62: f044 0402 orr.w r4, r4, #2 17a66: 2202 movs r2, #2 17a68: 2778 movs r7, #120 ; 0x78 17a6a: e77c b.n 17966 <_vfprintf_r+0x50a> 17a6c: 7fefffff .word 0x7fefffff 17a70: 0002c03c .word 0x0002c03c 17a74: 0002c040 .word 0x0002c040 17a78: 0002c04c .word 0x0002c04c 17a7c: 0002c060 .word 0x0002c060 17a80: 910b str r1, [sp, #44] ; 0x2c 17a82: 9508 str r5, [sp, #32] 17a84: 2b00 cmp r3, #0 17a86: f040 8636 bne.w 186f6 <_vfprintf_r+0x129a> 17a8a: 9a0d ldr r2, [sp, #52] ; 0x34 17a8c: f014 0110 ands.w r1, r4, #16 17a90: f852 3b04 ldr.w r3, [r2], #4 17a94: 920d str r2, [sp, #52] ; 0x34 17a96: d199 bne.n 179cc <_vfprintf_r+0x570> 17a98: f014 0240 ands.w r2, r4, #64 ; 0x40 17a9c: f43f af63 beq.w 17966 <_vfprintf_r+0x50a> 17aa0: b29b uxth r3, r3 17aa2: 460a mov r2, r1 17aa4: e75f b.n 17966 <_vfprintf_r+0x50a> 17aa6: 2b00 cmp r3, #0 17aa8: f040 8629 bne.w 186fe <_vfprintf_r+0x12a2> 17aac: 9a0d ldr r2, [sp, #52] ; 0x34 17aae: 06e0 lsls r0, r4, #27 17ab0: f102 0304 add.w r3, r2, #4 17ab4: d407 bmi.n 17ac6 <_vfprintf_r+0x66a> 17ab6: 0661 lsls r1, r4, #25 17ab8: 9a0d ldr r2, [sp, #52] ; 0x34 17aba: d504 bpl.n 17ac6 <_vfprintf_r+0x66a> 17abc: 6812 ldr r2, [r2, #0] 17abe: 9909 ldr r1, [sp, #36] ; 0x24 17ac0: 8011 strh r1, [r2, #0] 17ac2: 930d str r3, [sp, #52] ; 0x34 17ac4: e50c b.n 174e0 <_vfprintf_r+0x84> 17ac6: 6812 ldr r2, [r2, #0] 17ac8: 9909 ldr r1, [sp, #36] ; 0x24 17aca: 6011 str r1, [r2, #0] 17acc: 930d str r3, [sp, #52] ; 0x34 17ace: e507 b.n 174e0 <_vfprintf_r+0x84> 17ad0: 9c06 ldr r4, [sp, #24] 17ad2: 2a01 cmp r2, #1 17ad4: f43f aed1 beq.w 1787a <_vfprintf_r+0x41e> 17ad8: 2a02 cmp r2, #2 17ada: d074 beq.n 17bc6 <_vfprintf_r+0x76a> 17adc: ad2e add r5, sp, #184 ; 0xb8 17ade: f003 0207 and.w r2, r3, #7 17ae2: 3230 adds r2, #48 ; 0x30 17ae4: 08db lsrs r3, r3, #3 17ae6: 4628 mov r0, r5 17ae8: f805 2d01 strb.w r2, [r5, #-1]! 17aec: d1f7 bne.n 17ade <_vfprintf_r+0x682> 17aee: 07e6 lsls r6, r4, #31 17af0: d572 bpl.n 17bd8 <_vfprintf_r+0x77c> 17af2: 2a30 cmp r2, #48 ; 0x30 17af4: d070 beq.n 17bd8 <_vfprintf_r+0x77c> 17af6: 2330 movs r3, #48 ; 0x30 17af8: 3802 subs r0, #2 17afa: f805 3c01 strb.w r3, [r5, #-1] 17afe: ab2e add r3, sp, #184 ; 0xb8 17b00: 1a1b subs r3, r3, r0 17b02: 9406 str r4, [sp, #24] 17b04: 930a str r3, [sp, #40] ; 0x28 17b06: 4605 mov r5, r0 17b08: e6c2 b.n 17890 <_vfprintf_r+0x434> 17b0a: 2f65 cmp r7, #101 ; 0x65 17b0c: f340 8115 ble.w 17d3a <_vfprintf_r+0x8de> 17b10: e9dd 0110 ldrd r0, r1, [sp, #64] ; 0x40 17b14: 2200 movs r2, #0 17b16: 2300 movs r3, #0 17b18: f006 f81c bl 1db54 <__aeabi_dcmpeq> 17b1c: 2800 cmp r0, #0 17b1e: f000 81f4 beq.w 17f0a <_vfprintf_r+0xaae> 17b22: 9b22 ldr r3, [sp, #136] ; 0x88 17b24: 4ab1 ldr r2, [pc, #708] ; (17dec <_vfprintf_r+0x990>) 17b26: f8c9 2000 str.w r2, [r9] 17b2a: 3301 adds r3, #1 17b2c: 3401 adds r4, #1 17b2e: 2201 movs r2, #1 17b30: 2b07 cmp r3, #7 17b32: 9423 str r4, [sp, #140] ; 0x8c 17b34: 9322 str r3, [sp, #136] ; 0x88 17b36: f8c9 2004 str.w r2, [r9, #4] 17b3a: f300 8442 bgt.w 183c2 <_vfprintf_r+0xf66> 17b3e: f109 0908 add.w r9, r9, #8 17b42: 9b1b ldr r3, [sp, #108] ; 0x6c 17b44: 9a12 ldr r2, [sp, #72] ; 0x48 17b46: 4293 cmp r3, r2 17b48: f280 82b4 bge.w 180b4 <_vfprintf_r+0xc58> 17b4c: 9b13 ldr r3, [sp, #76] ; 0x4c 17b4e: 9a15 ldr r2, [sp, #84] ; 0x54 17b50: 441c add r4, r3 17b52: e9c9 2300 strd r2, r3, [r9] 17b56: 9b22 ldr r3, [sp, #136] ; 0x88 17b58: 9423 str r4, [sp, #140] ; 0x8c 17b5a: 3301 adds r3, #1 17b5c: 2b07 cmp r3, #7 17b5e: 9322 str r3, [sp, #136] ; 0x88 17b60: f300 837c bgt.w 1825c <_vfprintf_r+0xe00> 17b64: f109 0908 add.w r9, r9, #8 17b68: 9b12 ldr r3, [sp, #72] ; 0x48 17b6a: 1e5d subs r5, r3, #1 17b6c: 2d00 cmp r5, #0 17b6e: f77f adf2 ble.w 17756 <_vfprintf_r+0x2fa> 17b72: 2d10 cmp r5, #16 17b74: 9b22 ldr r3, [sp, #136] ; 0x88 17b76: 4e9e ldr r6, [pc, #632] ; (17df0 <_vfprintf_r+0x994>) 17b78: f340 80c9 ble.w 17d0e <_vfprintf_r+0x8b2> 17b7c: f8dd a030 ldr.w sl, [sp, #48] ; 0x30 17b80: 2710 movs r7, #16 17b82: e005 b.n 17b90 <_vfprintf_r+0x734> 17b84: f109 0908 add.w r9, r9, #8 17b88: 3d10 subs r5, #16 17b8a: 2d10 cmp r5, #16 17b8c: f340 80bf ble.w 17d0e <_vfprintf_r+0x8b2> 17b90: 3301 adds r3, #1 17b92: 3410 adds r4, #16 17b94: 2b07 cmp r3, #7 17b96: e9c9 6700 strd r6, r7, [r9] 17b9a: e9cd 3422 strd r3, r4, [sp, #136] ; 0x88 17b9e: ddf1 ble.n 17b84 <_vfprintf_r+0x728> 17ba0: aa21 add r2, sp, #132 ; 0x84 17ba2: 4659 mov r1, fp 17ba4: 4650 mov r0, sl 17ba6: f003 f993 bl 1aed0 <__sprint_r> 17baa: 2800 cmp r0, #0 17bac: f040 80ad bne.w 17d0a <_vfprintf_r+0x8ae> 17bb0: e9dd 3422 ldrd r3, r4, [sp, #136] ; 0x88 17bb4: f10d 09b8 add.w r9, sp, #184 ; 0xb8 17bb8: e7e6 b.n 17b88 <_vfprintf_r+0x72c> 17bba: 2a01 cmp r2, #1 17bbc: f000 851e beq.w 185fc <_vfprintf_r+0x11a0> 17bc0: 2a02 cmp r2, #2 17bc2: 9c06 ldr r4, [sp, #24] 17bc4: d18a bne.n 17adc <_vfprintf_r+0x680> 17bc6: 9814 ldr r0, [sp, #80] ; 0x50 17bc8: ad2e add r5, sp, #184 ; 0xb8 17bca: f003 020f and.w r2, r3, #15 17bce: 091b lsrs r3, r3, #4 17bd0: 5c82 ldrb r2, [r0, r2] 17bd2: f805 2d01 strb.w r2, [r5, #-1]! 17bd6: d1f8 bne.n 17bca <_vfprintf_r+0x76e> 17bd8: ab2e add r3, sp, #184 ; 0xb8 17bda: 1b5b subs r3, r3, r5 17bdc: 9406 str r4, [sp, #24] 17bde: 930a str r3, [sp, #40] ; 0x28 17be0: e656 b.n 17890 <_vfprintf_r+0x434> 17be2: 9b0b ldr r3, [sp, #44] ; 0x2c 17be4: 9a07 ldr r2, [sp, #28] 17be6: eba3 0a02 sub.w sl, r3, r2 17bea: f1ba 0f00 cmp.w sl, #0 17bee: f77f ad97 ble.w 17720 <_vfprintf_r+0x2c4> 17bf2: f1ba 0f10 cmp.w sl, #16 17bf6: 9b22 ldr r3, [sp, #136] ; 0x88 17bf8: 4e7d ldr r6, [pc, #500] ; (17df0 <_vfprintf_r+0x994>) 17bfa: dd2e ble.n 17c5a <_vfprintf_r+0x7fe> 17bfc: 4632 mov r2, r6 17bfe: 950e str r5, [sp, #56] ; 0x38 17c00: 465e mov r6, fp 17c02: 9d0c ldr r5, [sp, #48] ; 0x30 17c04: 46bb mov fp, r7 17c06: 4617 mov r7, r2 17c08: e006 b.n 17c18 <_vfprintf_r+0x7bc> 17c0a: f1aa 0a10 sub.w sl, sl, #16 17c0e: f1ba 0f10 cmp.w sl, #16 17c12: f109 0908 add.w r9, r9, #8 17c16: dd1b ble.n 17c50 <_vfprintf_r+0x7f4> 17c18: 3301 adds r3, #1 17c1a: 3410 adds r4, #16 17c1c: 2210 movs r2, #16 17c1e: 2b07 cmp r3, #7 17c20: e9cd 3422 strd r3, r4, [sp, #136] ; 0x88 17c24: f8c9 7000 str.w r7, [r9] 17c28: f8c9 2004 str.w r2, [r9, #4] 17c2c: dded ble.n 17c0a <_vfprintf_r+0x7ae> 17c2e: aa21 add r2, sp, #132 ; 0x84 17c30: 4631 mov r1, r6 17c32: 4628 mov r0, r5 17c34: f10d 09b8 add.w r9, sp, #184 ; 0xb8 17c38: f003 f94a bl 1aed0 <__sprint_r> 17c3c: 2800 cmp r0, #0 17c3e: f040 8162 bne.w 17f06 <_vfprintf_r+0xaaa> 17c42: f1aa 0a10 sub.w sl, sl, #16 17c46: f1ba 0f10 cmp.w sl, #16 17c4a: e9dd 3422 ldrd r3, r4, [sp, #136] ; 0x88 17c4e: dce3 bgt.n 17c18 <_vfprintf_r+0x7bc> 17c50: 463a mov r2, r7 17c52: 9d0e ldr r5, [sp, #56] ; 0x38 17c54: 465f mov r7, fp 17c56: 46b3 mov fp, r6 17c58: 4616 mov r6, r2 17c5a: 3301 adds r3, #1 17c5c: 4454 add r4, sl 17c5e: 2b07 cmp r3, #7 17c60: e9cd 3422 strd r3, r4, [sp, #136] ; 0x88 17c64: f8c9 6000 str.w r6, [r9] 17c68: f8c9 a004 str.w sl, [r9, #4] 17c6c: f300 83b6 bgt.w 183dc <_vfprintf_r+0xf80> 17c70: f109 0908 add.w r9, r9, #8 17c74: e554 b.n 17720 <_vfprintf_r+0x2c4> 17c76: f1ba 0f10 cmp.w sl, #16 17c7a: 9b22 ldr r3, [sp, #136] ; 0x88 17c7c: 4e5c ldr r6, [pc, #368] ; (17df0 <_vfprintf_r+0x994>) 17c7e: dd2e ble.n 17cde <_vfprintf_r+0x882> 17c80: 4632 mov r2, r6 17c82: 9508 str r5, [sp, #32] 17c84: 465e mov r6, fp 17c86: 9d0c ldr r5, [sp, #48] ; 0x30 17c88: 46bb mov fp, r7 17c8a: 4617 mov r7, r2 17c8c: e006 b.n 17c9c <_vfprintf_r+0x840> 17c8e: f1aa 0a10 sub.w sl, sl, #16 17c92: f1ba 0f10 cmp.w sl, #16 17c96: f109 0908 add.w r9, r9, #8 17c9a: dd1b ble.n 17cd4 <_vfprintf_r+0x878> 17c9c: 3301 adds r3, #1 17c9e: 3410 adds r4, #16 17ca0: 2210 movs r2, #16 17ca2: 2b07 cmp r3, #7 17ca4: e9cd 3422 strd r3, r4, [sp, #136] ; 0x88 17ca8: f8c9 7000 str.w r7, [r9] 17cac: f8c9 2004 str.w r2, [r9, #4] 17cb0: dded ble.n 17c8e <_vfprintf_r+0x832> 17cb2: aa21 add r2, sp, #132 ; 0x84 17cb4: 4631 mov r1, r6 17cb6: 4628 mov r0, r5 17cb8: f003 f90a bl 1aed0 <__sprint_r> 17cbc: 2800 cmp r0, #0 17cbe: f040 8122 bne.w 17f06 <_vfprintf_r+0xaaa> 17cc2: f1aa 0a10 sub.w sl, sl, #16 17cc6: f1ba 0f10 cmp.w sl, #16 17cca: e9dd 3422 ldrd r3, r4, [sp, #136] ; 0x88 17cce: f10d 09b8 add.w r9, sp, #184 ; 0xb8 17cd2: dce3 bgt.n 17c9c <_vfprintf_r+0x840> 17cd4: 463a mov r2, r7 17cd6: 9d08 ldr r5, [sp, #32] 17cd8: 465f mov r7, fp 17cda: 46b3 mov fp, r6 17cdc: 4616 mov r6, r2 17cde: 3301 adds r3, #1 17ce0: 4454 add r4, sl 17ce2: 2b07 cmp r3, #7 17ce4: e9cd 3422 strd r3, r4, [sp, #136] ; 0x88 17ce8: f8c9 6000 str.w r6, [r9] 17cec: f8c9 a004 str.w sl, [r9, #4] 17cf0: f300 81cf bgt.w 18092 <_vfprintf_r+0xc36> 17cf4: f109 0908 add.w r9, r9, #8 17cf8: e51a b.n 17730 <_vfprintf_r+0x2d4> 17cfa: 980c ldr r0, [sp, #48] ; 0x30 17cfc: aa21 add r2, sp, #132 ; 0x84 17cfe: 4659 mov r1, fp 17d00: f003 f8e6 bl 1aed0 <__sprint_r> 17d04: 2800 cmp r0, #0 17d06: f43f ad3a beq.w 1777e <_vfprintf_r+0x322> 17d0a: 46da mov sl, fp 17d0c: e545 b.n 1779a <_vfprintf_r+0x33e> 17d0e: 3301 adds r3, #1 17d10: 442c add r4, r5 17d12: 2b07 cmp r3, #7 17d14: f8c9 6000 str.w r6, [r9] 17d18: f8c9 5004 str.w r5, [r9, #4] 17d1c: e9cd 3422 strd r3, r4, [sp, #136] ; 0x88 17d20: f77f ad17 ble.w 17752 <_vfprintf_r+0x2f6> 17d24: 980c ldr r0, [sp, #48] ; 0x30 17d26: aa21 add r2, sp, #132 ; 0x84 17d28: 4659 mov r1, fp 17d2a: f003 f8d1 bl 1aed0 <__sprint_r> 17d2e: 2800 cmp r0, #0 17d30: d1eb bne.n 17d0a <_vfprintf_r+0x8ae> 17d32: 9c23 ldr r4, [sp, #140] ; 0x8c 17d34: f10d 09b8 add.w r9, sp, #184 ; 0xb8 17d38: e50d b.n 17756 <_vfprintf_r+0x2fa> 17d3a: 9b12 ldr r3, [sp, #72] ; 0x48 17d3c: 9f22 ldr r7, [sp, #136] ; 0x88 17d3e: 2b01 cmp r3, #1 17d40: f104 0401 add.w r4, r4, #1 17d44: f107 0701 add.w r7, r7, #1 17d48: f109 0a08 add.w sl, r9, #8 17d4c: f340 8151 ble.w 17ff2 <_vfprintf_r+0xb96> 17d50: 2301 movs r3, #1 17d52: 2f07 cmp r7, #7 17d54: e9cd 7422 strd r7, r4, [sp, #136] ; 0x88 17d58: f8c9 5000 str.w r5, [r9] 17d5c: f8c9 3004 str.w r3, [r9, #4] 17d60: f300 82b9 bgt.w 182d6 <_vfprintf_r+0xe7a> 17d64: 9b13 ldr r3, [sp, #76] ; 0x4c 17d66: 9a15 ldr r2, [sp, #84] ; 0x54 17d68: 3701 adds r7, #1 17d6a: 441c add r4, r3 17d6c: 2f07 cmp r7, #7 17d6e: e9ca 2300 strd r2, r3, [sl] 17d72: e9cd 7422 strd r7, r4, [sp, #136] ; 0x88 17d76: f300 82bb bgt.w 182f0 <_vfprintf_r+0xe94> 17d7a: f10a 0a08 add.w sl, sl, #8 17d7e: 9b12 ldr r3, [sp, #72] ; 0x48 17d80: e9dd 0110 ldrd r0, r1, [sp, #64] ; 0x40 17d84: f103 39ff add.w r9, r3, #4294967295 ; 0xffffffff 17d88: 2200 movs r2, #0 17d8a: 2300 movs r3, #0 17d8c: f005 fee2 bl 1db54 <__aeabi_dcmpeq> 17d90: 2800 cmp r0, #0 17d92: f040 8152 bne.w 1803a <_vfprintf_r+0xbde> 17d96: 3701 adds r7, #1 17d98: 3501 adds r5, #1 17d9a: 444c add r4, r9 17d9c: 2f07 cmp r7, #7 17d9e: e9cd 7422 strd r7, r4, [sp, #136] ; 0x88 17da2: f8ca 5000 str.w r5, [sl] 17da6: f8ca 9004 str.w r9, [sl, #4] 17daa: f300 8130 bgt.w 1800e <_vfprintf_r+0xbb2> 17dae: f10a 0a08 add.w sl, sl, #8 17db2: 9b16 ldr r3, [sp, #88] ; 0x58 17db4: f8ca 3004 str.w r3, [sl, #4] 17db8: 3701 adds r7, #1 17dba: 441c add r4, r3 17dbc: 2f07 cmp r7, #7 17dbe: ab1d add r3, sp, #116 ; 0x74 17dc0: e9cd 7422 strd r7, r4, [sp, #136] ; 0x88 17dc4: f8ca 3000 str.w r3, [sl] 17dc8: dcac bgt.n 17d24 <_vfprintf_r+0x8c8> 17dca: f10a 0908 add.w r9, sl, #8 17dce: e4c2 b.n 17756 <_vfprintf_r+0x2fa> 17dd0: 2e10 cmp r6, #16 17dd2: 9a22 ldr r2, [sp, #136] ; 0x88 17dd4: dd35 ble.n 17e42 <_vfprintf_r+0x9e6> 17dd6: 4659 mov r1, fp 17dd8: 9317 str r3, [sp, #92] ; 0x5c 17dda: 46b3 mov fp, r6 17ddc: 4623 mov r3, r4 17dde: 462e mov r6, r5 17de0: 9c0c ldr r4, [sp, #48] ; 0x30 17de2: f04f 0a10 mov.w sl, #16 17de6: 460d mov r5, r1 17de8: e00b b.n 17e02 <_vfprintf_r+0x9a6> 17dea: bf00 nop 17dec: 0002c07c .word 0x0002c07c 17df0: 0002c090 .word 0x0002c090 17df4: f1ab 0b10 sub.w fp, fp, #16 17df8: f1bb 0f10 cmp.w fp, #16 17dfc: f109 0908 add.w r9, r9, #8 17e00: dd19 ble.n 17e36 <_vfprintf_r+0x9da> 17e02: 3201 adds r2, #1 17e04: 49b3 ldr r1, [pc, #716] ; (180d4 <_vfprintf_r+0xc78>) 17e06: 3310 adds r3, #16 17e08: 2a07 cmp r2, #7 17e0a: e9c9 1a00 strd r1, sl, [r9] 17e0e: e9cd 2322 strd r2, r3, [sp, #136] ; 0x88 17e12: ddef ble.n 17df4 <_vfprintf_r+0x998> 17e14: aa21 add r2, sp, #132 ; 0x84 17e16: 4629 mov r1, r5 17e18: 4620 mov r0, r4 17e1a: f10d 09b8 add.w r9, sp, #184 ; 0xb8 17e1e: f003 f857 bl 1aed0 <__sprint_r> 17e22: 2800 cmp r0, #0 17e24: f040 82ca bne.w 183bc <_vfprintf_r+0xf60> 17e28: f1ab 0b10 sub.w fp, fp, #16 17e2c: f1bb 0f10 cmp.w fp, #16 17e30: e9dd 2322 ldrd r2, r3, [sp, #136] ; 0x88 17e34: dce5 bgt.n 17e02 <_vfprintf_r+0x9a6> 17e36: 4629 mov r1, r5 17e38: 461c mov r4, r3 17e3a: 9b17 ldr r3, [sp, #92] ; 0x5c 17e3c: 4635 mov r5, r6 17e3e: 465e mov r6, fp 17e40: 468b mov fp, r1 17e42: 3201 adds r2, #1 17e44: 49a3 ldr r1, [pc, #652] ; (180d4 <_vfprintf_r+0xc78>) 17e46: f8c9 6004 str.w r6, [r9, #4] 17e4a: 4434 add r4, r6 17e4c: 2a07 cmp r2, #7 17e4e: e9cd 2422 strd r2, r4, [sp, #136] ; 0x88 17e52: f8c9 1000 str.w r1, [r9] 17e56: f300 82a2 bgt.w 1839e <_vfprintf_r+0xf42> 17e5a: f109 0908 add.w r9, r9, #8 17e5e: e434 b.n 176ca <_vfprintf_r+0x26e> 17e60: 980c ldr r0, [sp, #48] ; 0x30 17e62: aa21 add r2, sp, #132 ; 0x84 17e64: 4659 mov r1, fp 17e66: f003 f833 bl 1aed0 <__sprint_r> 17e6a: 2800 cmp r0, #0 17e6c: f47f af4d bne.w 17d0a <_vfprintf_r+0x8ae> 17e70: 9c23 ldr r4, [sp, #140] ; 0x8c 17e72: f10d 09b8 add.w r9, sp, #184 ; 0xb8 17e76: e44f b.n 17718 <_vfprintf_r+0x2bc> 17e78: 980c ldr r0, [sp, #48] ; 0x30 17e7a: 9317 str r3, [sp, #92] ; 0x5c 17e7c: aa21 add r2, sp, #132 ; 0x84 17e7e: 4659 mov r1, fp 17e80: f003 f826 bl 1aed0 <__sprint_r> 17e84: 2800 cmp r0, #0 17e86: f47f af40 bne.w 17d0a <_vfprintf_r+0x8ae> 17e8a: 9c23 ldr r4, [sp, #140] ; 0x8c 17e8c: 9b17 ldr r3, [sp, #92] ; 0x5c 17e8e: f10d 09b8 add.w r9, sp, #184 ; 0xb8 17e92: e42f b.n 176f4 <_vfprintf_r+0x298> 17e94: 2d10 cmp r5, #16 17e96: 9b22 ldr r3, [sp, #136] ; 0x88 17e98: dd1f ble.n 17eda <_vfprintf_r+0xa7e> 17e9a: 9f0c ldr r7, [sp, #48] ; 0x30 17e9c: 2610 movs r6, #16 17e9e: e004 b.n 17eaa <_vfprintf_r+0xa4e> 17ea0: 3d10 subs r5, #16 17ea2: 2d10 cmp r5, #16 17ea4: f109 0908 add.w r9, r9, #8 17ea8: dd17 ble.n 17eda <_vfprintf_r+0xa7e> 17eaa: 3301 adds r3, #1 17eac: 4a89 ldr r2, [pc, #548] ; (180d4 <_vfprintf_r+0xc78>) 17eae: 3410 adds r4, #16 17eb0: 2b07 cmp r3, #7 17eb2: e9c9 2600 strd r2, r6, [r9] 17eb6: e9cd 3422 strd r3, r4, [sp, #136] ; 0x88 17eba: ddf1 ble.n 17ea0 <_vfprintf_r+0xa44> 17ebc: aa21 add r2, sp, #132 ; 0x84 17ebe: 4659 mov r1, fp 17ec0: 4638 mov r0, r7 17ec2: f10d 09b8 add.w r9, sp, #184 ; 0xb8 17ec6: f003 f803 bl 1aed0 <__sprint_r> 17eca: 2800 cmp r0, #0 17ecc: f47f af1d bne.w 17d0a <_vfprintf_r+0x8ae> 17ed0: 3d10 subs r5, #16 17ed2: 2d10 cmp r5, #16 17ed4: e9dd 3422 ldrd r3, r4, [sp, #136] ; 0x88 17ed8: dce7 bgt.n 17eaa <_vfprintf_r+0xa4e> 17eda: 3301 adds r3, #1 17edc: 4a7d ldr r2, [pc, #500] ; (180d4 <_vfprintf_r+0xc78>) 17ede: f8c9 5004 str.w r5, [r9, #4] 17ee2: 442c add r4, r5 17ee4: 2b07 cmp r3, #7 17ee6: e9cd 3422 strd r3, r4, [sp, #136] ; 0x88 17eea: f8c9 2000 str.w r2, [r9] 17eee: f77f ac3b ble.w 17768 <_vfprintf_r+0x30c> 17ef2: 980c ldr r0, [sp, #48] ; 0x30 17ef4: aa21 add r2, sp, #132 ; 0x84 17ef6: 4659 mov r1, fp 17ef8: f002 ffea bl 1aed0 <__sprint_r> 17efc: 2800 cmp r0, #0 17efe: f47f af04 bne.w 17d0a <_vfprintf_r+0x8ae> 17f02: 9c23 ldr r4, [sp, #140] ; 0x8c 17f04: e430 b.n 17768 <_vfprintf_r+0x30c> 17f06: 46b2 mov sl, r6 17f08: e447 b.n 1779a <_vfprintf_r+0x33e> 17f0a: 991b ldr r1, [sp, #108] ; 0x6c 17f0c: 2900 cmp r1, #0 17f0e: f340 8212 ble.w 18336 <_vfprintf_r+0xeda> 17f12: 9e0f ldr r6, [sp, #60] ; 0x3c 17f14: 9b12 ldr r3, [sp, #72] ; 0x48 17f16: 429e cmp r6, r3 17f18: bfa8 it ge 17f1a: 461e movge r6, r3 17f1c: 2e00 cmp r6, #0 17f1e: dd0b ble.n 17f38 <_vfprintf_r+0xadc> 17f20: 9b22 ldr r3, [sp, #136] ; 0x88 17f22: 3301 adds r3, #1 17f24: 4434 add r4, r6 17f26: 2b07 cmp r3, #7 17f28: e9c9 5600 strd r5, r6, [r9] 17f2c: 9423 str r4, [sp, #140] ; 0x8c 17f2e: 9322 str r3, [sp, #136] ; 0x88 17f30: f300 83a8 bgt.w 18684 <_vfprintf_r+0x1228> 17f34: f109 0908 add.w r9, r9, #8 17f38: 9f0f ldr r7, [sp, #60] ; 0x3c 17f3a: 2e00 cmp r6, #0 17f3c: bfa8 it ge 17f3e: 1bbf subge r7, r7, r6 17f40: 2f00 cmp r7, #0 17f42: f300 81a0 bgt.w 18286 <_vfprintf_r+0xe2a> 17f46: 9a1b ldr r2, [sp, #108] ; 0x6c 17f48: 9b12 ldr r3, [sp, #72] ; 0x48 17f4a: 429a cmp r2, r3 17f4c: f280 8179 bge.w 18242 <_vfprintf_r+0xde6> 17f50: 9b13 ldr r3, [sp, #76] ; 0x4c 17f52: 9915 ldr r1, [sp, #84] ; 0x54 17f54: 441c add r4, r3 17f56: e9c9 1300 strd r1, r3, [r9] 17f5a: 9b22 ldr r3, [sp, #136] ; 0x88 17f5c: 9423 str r4, [sp, #140] ; 0x8c 17f5e: 3301 adds r3, #1 17f60: 2b07 cmp r3, #7 17f62: 9322 str r3, [sp, #136] ; 0x88 17f64: f300 8373 bgt.w 1864e <_vfprintf_r+0x11f2> 17f68: f109 0908 add.w r9, r9, #8 17f6c: 9b12 ldr r3, [sp, #72] ; 0x48 17f6e: 990f ldr r1, [sp, #60] ; 0x3c 17f70: 1a9a subs r2, r3, r2 17f72: 1a5e subs r6, r3, r1 17f74: 4296 cmp r6, r2 17f76: bfa8 it ge 17f78: 4616 movge r6, r2 17f7a: 2e00 cmp r6, #0 17f7c: dd0e ble.n 17f9c <_vfprintf_r+0xb40> 17f7e: 9b22 ldr r3, [sp, #136] ; 0x88 17f80: f8c9 6004 str.w r6, [r9, #4] 17f84: 3301 adds r3, #1 17f86: 440d add r5, r1 17f88: 4434 add r4, r6 17f8a: 2b07 cmp r3, #7 17f8c: f8c9 5000 str.w r5, [r9] 17f90: 9423 str r4, [sp, #140] ; 0x8c 17f92: 9322 str r3, [sp, #136] ; 0x88 17f94: f300 8385 bgt.w 186a2 <_vfprintf_r+0x1246> 17f98: f109 0908 add.w r9, r9, #8 17f9c: 2e00 cmp r6, #0 17f9e: bfac ite ge 17fa0: 1b95 subge r5, r2, r6 17fa2: 4615 movlt r5, r2 17fa4: 2d00 cmp r5, #0 17fa6: f77f abd6 ble.w 17756 <_vfprintf_r+0x2fa> 17faa: 2d10 cmp r5, #16 17fac: 9b22 ldr r3, [sp, #136] ; 0x88 17fae: 4e4a ldr r6, [pc, #296] ; (180d8 <_vfprintf_r+0xc7c>) 17fb0: f77f aead ble.w 17d0e <_vfprintf_r+0x8b2> 17fb4: f8dd a030 ldr.w sl, [sp, #48] ; 0x30 17fb8: 2710 movs r7, #16 17fba: e005 b.n 17fc8 <_vfprintf_r+0xb6c> 17fbc: f109 0908 add.w r9, r9, #8 17fc0: 3d10 subs r5, #16 17fc2: 2d10 cmp r5, #16 17fc4: f77f aea3 ble.w 17d0e <_vfprintf_r+0x8b2> 17fc8: 3301 adds r3, #1 17fca: 3410 adds r4, #16 17fcc: 2b07 cmp r3, #7 17fce: e9c9 6700 strd r6, r7, [r9] 17fd2: e9cd 3422 strd r3, r4, [sp, #136] ; 0x88 17fd6: ddf1 ble.n 17fbc <_vfprintf_r+0xb60> 17fd8: aa21 add r2, sp, #132 ; 0x84 17fda: 4659 mov r1, fp 17fdc: 4650 mov r0, sl 17fde: f002 ff77 bl 1aed0 <__sprint_r> 17fe2: 2800 cmp r0, #0 17fe4: f47f ae91 bne.w 17d0a <_vfprintf_r+0x8ae> 17fe8: e9dd 3422 ldrd r3, r4, [sp, #136] ; 0x88 17fec: f10d 09b8 add.w r9, sp, #184 ; 0xb8 17ff0: e7e6 b.n 17fc0 <_vfprintf_r+0xb64> 17ff2: 9b06 ldr r3, [sp, #24] 17ff4: 07d8 lsls r0, r3, #31 17ff6: f53f aeab bmi.w 17d50 <_vfprintf_r+0x8f4> 17ffa: 2301 movs r3, #1 17ffc: 2f07 cmp r7, #7 17ffe: e9cd 7422 strd r7, r4, [sp, #136] ; 0x88 18002: f8c9 5000 str.w r5, [r9] 18006: f8c9 3004 str.w r3, [r9, #4] 1800a: f77f aed2 ble.w 17db2 <_vfprintf_r+0x956> 1800e: 980c ldr r0, [sp, #48] ; 0x30 18010: aa21 add r2, sp, #132 ; 0x84 18012: 4659 mov r1, fp 18014: f002 ff5c bl 1aed0 <__sprint_r> 18018: 2800 cmp r0, #0 1801a: f47f ae76 bne.w 17d0a <_vfprintf_r+0x8ae> 1801e: e9dd 7422 ldrd r7, r4, [sp, #136] ; 0x88 18022: f10d 0ab8 add.w sl, sp, #184 ; 0xb8 18026: e6c4 b.n 17db2 <_vfprintf_r+0x956> 18028: 9a08 ldr r2, [sp, #32] 1802a: 2a00 cmp r2, #0 1802c: f040 82e6 bne.w 185fc <_vfprintf_r+0x11a0> 18030: 2300 movs r3, #0 18032: 9308 str r3, [sp, #32] 18034: 930a str r3, [sp, #40] ; 0x28 18036: ad2e add r5, sp, #184 ; 0xb8 18038: e42a b.n 17890 <_vfprintf_r+0x434> 1803a: f1b9 0f00 cmp.w r9, #0 1803e: f77f aeb8 ble.w 17db2 <_vfprintf_r+0x956> 18042: f1b9 0f10 cmp.w r9, #16 18046: 4e24 ldr r6, [pc, #144] ; (180d8 <_vfprintf_r+0xc7c>) 18048: f340 820b ble.w 18462 <_vfprintf_r+0x1006> 1804c: f8cd 8020 str.w r8, [sp, #32] 18050: 2510 movs r5, #16 18052: f8dd 8030 ldr.w r8, [sp, #48] ; 0x30 18056: e007 b.n 18068 <_vfprintf_r+0xc0c> 18058: f10a 0a08 add.w sl, sl, #8 1805c: f1a9 0910 sub.w r9, r9, #16 18060: f1b9 0f10 cmp.w r9, #16 18064: f340 81fb ble.w 1845e <_vfprintf_r+0x1002> 18068: 3701 adds r7, #1 1806a: 3410 adds r4, #16 1806c: 2f07 cmp r7, #7 1806e: e9ca 6500 strd r6, r5, [sl] 18072: e9cd 7422 strd r7, r4, [sp, #136] ; 0x88 18076: ddef ble.n 18058 <_vfprintf_r+0xbfc> 18078: aa21 add r2, sp, #132 ; 0x84 1807a: 4659 mov r1, fp 1807c: 4640 mov r0, r8 1807e: f002 ff27 bl 1aed0 <__sprint_r> 18082: 2800 cmp r0, #0 18084: f47f ae41 bne.w 17d0a <_vfprintf_r+0x8ae> 18088: e9dd 7422 ldrd r7, r4, [sp, #136] ; 0x88 1808c: f10d 0ab8 add.w sl, sp, #184 ; 0xb8 18090: e7e4 b.n 1805c <_vfprintf_r+0xc00> 18092: 980c ldr r0, [sp, #48] ; 0x30 18094: aa21 add r2, sp, #132 ; 0x84 18096: 4659 mov r1, fp 18098: f002 ff1a bl 1aed0 <__sprint_r> 1809c: 2800 cmp r0, #0 1809e: f47f ae34 bne.w 17d0a <_vfprintf_r+0x8ae> 180a2: 9c23 ldr r4, [sp, #140] ; 0x8c 180a4: f10d 09b8 add.w r9, sp, #184 ; 0xb8 180a8: f7ff bb42 b.w 17730 <_vfprintf_r+0x2d4> 180ac: 4253 negs r3, r2 180ae: 212d movs r1, #45 ; 0x2d 180b0: 2201 movs r2, #1 180b2: e459 b.n 17968 <_vfprintf_r+0x50c> 180b4: 9b06 ldr r3, [sp, #24] 180b6: 07df lsls r7, r3, #31 180b8: f57f ab4d bpl.w 17756 <_vfprintf_r+0x2fa> 180bc: e546 b.n 17b4c <_vfprintf_r+0x6f0> 180be: 920d str r2, [sp, #52] ; 0x34 180c0: f7ff ba2e b.w 17520 <_vfprintf_r+0xc4> 180c4: ad2e add r5, sp, #184 ; 0xb8 180c6: f7ff bbe3 b.w 17890 <_vfprintf_r+0x434> 180ca: b212 sxth r2, r2 180cc: 4613 mov r3, r2 180ce: f7ff bbc5 b.w 1785c <_vfprintf_r+0x400> 180d2: bf00 nop 180d4: 0002c080 .word 0x0002c080 180d8: 0002c090 .word 0x0002c090 180dc: e9dd 0110 ldrd r0, r1, [sp, #64] ; 0x40 180e0: 4602 mov r2, r0 180e2: 460b mov r3, r1 180e4: f005 fd68 bl 1dbb8 <__aeabi_dcmpun> 180e8: 2800 cmp r0, #0 180ea: f040 834f bne.w 1878c <_vfprintf_r+0x1330> 180ee: 9a08 ldr r2, [sp, #32] 180f0: f027 0320 bic.w r3, r7, #32 180f4: 1c51 adds r1, r2, #1 180f6: 930a str r3, [sp, #40] ; 0x28 180f8: f000 82d0 beq.w 1869c <_vfprintf_r+0x1240> 180fc: 2b47 cmp r3, #71 ; 0x47 180fe: f000 825d beq.w 185bc <_vfprintf_r+0x1160> 18102: e9dd 1210 ldrd r1, r2, [sp, #64] ; 0x40 18106: f444 7380 orr.w r3, r4, #256 ; 0x100 1810a: 9306 str r3, [sp, #24] 1810c: 4613 mov r3, r2 1810e: 2b00 cmp r3, #0 18110: f2c0 8228 blt.w 18564 <_vfprintf_r+0x1108> 18114: 9307 str r3, [sp, #28] 18116: f8dd a040 ldr.w sl, [sp, #64] ; 0x40 1811a: 2300 movs r3, #0 1811c: 930e str r3, [sp, #56] ; 0x38 1811e: 2f66 cmp r7, #102 ; 0x66 18120: f000 81c6 beq.w 184b0 <_vfprintf_r+0x1054> 18124: 2f46 cmp r7, #70 ; 0x46 18126: f000 81c3 beq.w 184b0 <_vfprintf_r+0x1054> 1812a: 9b0a ldr r3, [sp, #40] ; 0x28 1812c: 2b45 cmp r3, #69 ; 0x45 1812e: 4652 mov r2, sl 18130: 9b07 ldr r3, [sp, #28] 18132: f000 8266 beq.w 18602 <_vfprintf_r+0x11a6> 18136: a91f add r1, sp, #124 ; 0x7c 18138: 9104 str r1, [sp, #16] 1813a: a91c add r1, sp, #112 ; 0x70 1813c: 9103 str r1, [sp, #12] 1813e: a91b add r1, sp, #108 ; 0x6c 18140: 9e08 ldr r6, [sp, #32] 18142: 9102 str r1, [sp, #8] 18144: 2102 movs r1, #2 18146: 980c ldr r0, [sp, #48] ; 0x30 18148: 9601 str r6, [sp, #4] 1814a: 9100 str r1, [sp, #0] 1814c: f000 fcd0 bl 18af0 <_dtoa_r> 18150: 2f67 cmp r7, #103 ; 0x67 18152: 4605 mov r5, r0 18154: f040 835b bne.w 1880e <_vfprintf_r+0x13b2> 18158: 07e3 lsls r3, r4, #31 1815a: f100 8264 bmi.w 18626 <_vfprintf_r+0x11ca> 1815e: 9b1f ldr r3, [sp, #124] ; 0x7c 18160: 1b5b subs r3, r3, r5 18162: 9312 str r3, [sp, #72] ; 0x48 18164: 9b1b ldr r3, [sp, #108] ; 0x6c 18166: 930f str r3, [sp, #60] ; 0x3c 18168: 9b0a ldr r3, [sp, #40] ; 0x28 1816a: 2b47 cmp r3, #71 ; 0x47 1816c: d107 bne.n 1817e <_vfprintf_r+0xd22> 1816e: 9b0f ldr r3, [sp, #60] ; 0x3c 18170: 1cde adds r6, r3, #3 18172: db03 blt.n 1817c <_vfprintf_r+0xd20> 18174: 9a08 ldr r2, [sp, #32] 18176: 429a cmp r2, r3 18178: f280 8276 bge.w 18668 <_vfprintf_r+0x120c> 1817c: 3f02 subs r7, #2 1817e: 9a0f ldr r2, [sp, #60] ; 0x3c 18180: f88d 7074 strb.w r7, [sp, #116] ; 0x74 18184: 1e53 subs r3, r2, #1 18186: 2b00 cmp r3, #0 18188: 931b str r3, [sp, #108] ; 0x6c 1818a: bfb6 itet lt 1818c: f1c2 0301 rsblt r3, r2, #1 18190: 222b movge r2, #43 ; 0x2b 18192: 222d movlt r2, #45 ; 0x2d 18194: 2b09 cmp r3, #9 18196: f88d 2075 strb.w r2, [sp, #117] ; 0x75 1819a: f340 82bc ble.w 18716 <_vfprintf_r+0x12ba> 1819e: f10d 0683 add.w r6, sp, #131 ; 0x83 181a2: f8df c2f8 ldr.w ip, [pc, #760] ; 1849c <_vfprintf_r+0x1040> 181a6: 4632 mov r2, r6 181a8: 4610 mov r0, r2 181aa: fb8c 2103 smull r2, r1, ip, r3 181ae: 17da asrs r2, r3, #31 181b0: ebc2 02a1 rsb r2, r2, r1, asr #2 181b4: eb02 0182 add.w r1, r2, r2, lsl #2 181b8: eba3 0141 sub.w r1, r3, r1, lsl #1 181bc: 3130 adds r1, #48 ; 0x30 181be: f800 1c01 strb.w r1, [r0, #-1] 181c2: 4619 mov r1, r3 181c4: 2963 cmp r1, #99 ; 0x63 181c6: 4613 mov r3, r2 181c8: f100 32ff add.w r2, r0, #4294967295 ; 0xffffffff 181cc: dcec bgt.n 181a8 <_vfprintf_r+0xd4c> 181ce: 3330 adds r3, #48 ; 0x30 181d0: b2d9 uxtb r1, r3 181d2: 1e83 subs r3, r0, #2 181d4: 429e cmp r6, r3 181d6: f802 1c01 strb.w r1, [r2, #-1] 181da: f240 8315 bls.w 18808 <_vfprintf_r+0x13ac> 181de: 4613 mov r3, r2 181e0: f10d 0276 add.w r2, sp, #118 ; 0x76 181e4: e001 b.n 181ea <_vfprintf_r+0xd8e> 181e6: f813 1b01 ldrb.w r1, [r3], #1 181ea: f802 1b01 strb.w r1, [r2], #1 181ee: 429e cmp r6, r3 181f0: d1f9 bne.n 181e6 <_vfprintf_r+0xd8a> 181f2: f10d 0385 add.w r3, sp, #133 ; 0x85 181f6: f10d 0276 add.w r2, sp, #118 ; 0x76 181fa: 1a1b subs r3, r3, r0 181fc: 4413 add r3, r2 181fe: aa1d add r2, sp, #116 ; 0x74 18200: 1a9b subs r3, r3, r2 18202: 9316 str r3, [sp, #88] ; 0x58 18204: 9a12 ldr r2, [sp, #72] ; 0x48 18206: 9b16 ldr r3, [sp, #88] ; 0x58 18208: 2a01 cmp r2, #1 1820a: 4413 add r3, r2 1820c: 930a str r3, [sp, #40] ; 0x28 1820e: f340 82b4 ble.w 1877a <_vfprintf_r+0x131e> 18212: 9b0a ldr r3, [sp, #40] ; 0x28 18214: 9a13 ldr r2, [sp, #76] ; 0x4c 18216: 4413 add r3, r2 18218: 930a str r3, [sp, #40] ; 0x28 1821a: ea23 73e3 bic.w r3, r3, r3, asr #31 1821e: 9307 str r3, [sp, #28] 18220: 2300 movs r3, #0 18222: 930f str r3, [sp, #60] ; 0x3c 18224: e17d b.n 18522 <_vfprintf_r+0x10c6> 18226: 2230 movs r2, #48 ; 0x30 18228: f88d 2068 strb.w r2, [sp, #104] ; 0x68 1822c: f88d 7069 strb.w r7, [sp, #105] ; 0x69 18230: f044 0402 orr.w r4, r4, #2 18234: 2202 movs r2, #2 18236: f7ff bb96 b.w 17966 <_vfprintf_r+0x50a> 1823a: 2301 movs r3, #1 1823c: 202b movs r0, #43 ; 0x2b 1823e: f7ff b96f b.w 17520 <_vfprintf_r+0xc4> 18242: 9b06 ldr r3, [sp, #24] 18244: 07de lsls r6, r3, #31 18246: f53f ae83 bmi.w 17f50 <_vfprintf_r+0xaf4> 1824a: 9b12 ldr r3, [sp, #72] ; 0x48 1824c: 990f ldr r1, [sp, #60] ; 0x3c 1824e: 1a9a subs r2, r3, r2 18250: 1a5b subs r3, r3, r1 18252: 4293 cmp r3, r2 18254: bfa8 it ge 18256: 4613 movge r3, r2 18258: 461e mov r6, r3 1825a: e69f b.n 17f9c <_vfprintf_r+0xb40> 1825c: 980c ldr r0, [sp, #48] ; 0x30 1825e: aa21 add r2, sp, #132 ; 0x84 18260: 4659 mov r1, fp 18262: f002 fe35 bl 1aed0 <__sprint_r> 18266: 2800 cmp r0, #0 18268: f47f ad4f bne.w 17d0a <_vfprintf_r+0x8ae> 1826c: 9c23 ldr r4, [sp, #140] ; 0x8c 1826e: f10d 09b8 add.w r9, sp, #184 ; 0xb8 18272: e479 b.n 17b68 <_vfprintf_r+0x70c> 18274: 2b06 cmp r3, #6 18276: bf28 it cs 18278: 2306 movcs r3, #6 1827a: 4d89 ldr r5, [pc, #548] ; (184a0 <_vfprintf_r+0x1044>) 1827c: 930a str r3, [sp, #40] ; 0x28 1827e: 960d str r6, [sp, #52] ; 0x34 18280: 9307 str r3, [sp, #28] 18282: f7ff ba0b b.w 1769c <_vfprintf_r+0x240> 18286: 2f10 cmp r7, #16 18288: 9b22 ldr r3, [sp, #136] ; 0x88 1828a: 4e86 ldr r6, [pc, #536] ; (184a4 <_vfprintf_r+0x1048>) 1828c: f340 8158 ble.w 18540 <_vfprintf_r+0x10e4> 18290: 4632 mov r2, r6 18292: 9508 str r5, [sp, #32] 18294: 465e mov r6, fp 18296: 9d0c ldr r5, [sp, #48] ; 0x30 18298: f04f 0a10 mov.w sl, #16 1829c: 4693 mov fp, r2 1829e: e005 b.n 182ac <_vfprintf_r+0xe50> 182a0: f109 0908 add.w r9, r9, #8 182a4: 3f10 subs r7, #16 182a6: 2f10 cmp r7, #16 182a8: f340 8146 ble.w 18538 <_vfprintf_r+0x10dc> 182ac: 3301 adds r3, #1 182ae: 3410 adds r4, #16 182b0: 2b07 cmp r3, #7 182b2: e9c9 ba00 strd fp, sl, [r9] 182b6: e9cd 3422 strd r3, r4, [sp, #136] ; 0x88 182ba: ddf1 ble.n 182a0 <_vfprintf_r+0xe44> 182bc: aa21 add r2, sp, #132 ; 0x84 182be: 4631 mov r1, r6 182c0: 4628 mov r0, r5 182c2: f002 fe05 bl 1aed0 <__sprint_r> 182c6: 2800 cmp r0, #0 182c8: f47f ae1d bne.w 17f06 <_vfprintf_r+0xaaa> 182cc: e9dd 3422 ldrd r3, r4, [sp, #136] ; 0x88 182d0: f10d 09b8 add.w r9, sp, #184 ; 0xb8 182d4: e7e6 b.n 182a4 <_vfprintf_r+0xe48> 182d6: 980c ldr r0, [sp, #48] ; 0x30 182d8: aa21 add r2, sp, #132 ; 0x84 182da: 4659 mov r1, fp 182dc: f002 fdf8 bl 1aed0 <__sprint_r> 182e0: 2800 cmp r0, #0 182e2: f47f ad12 bne.w 17d0a <_vfprintf_r+0x8ae> 182e6: e9dd 7422 ldrd r7, r4, [sp, #136] ; 0x88 182ea: f10d 0ab8 add.w sl, sp, #184 ; 0xb8 182ee: e539 b.n 17d64 <_vfprintf_r+0x908> 182f0: 980c ldr r0, [sp, #48] ; 0x30 182f2: aa21 add r2, sp, #132 ; 0x84 182f4: 4659 mov r1, fp 182f6: f002 fdeb bl 1aed0 <__sprint_r> 182fa: 2800 cmp r0, #0 182fc: f47f ad05 bne.w 17d0a <_vfprintf_r+0x8ae> 18300: e9dd 7422 ldrd r7, r4, [sp, #136] ; 0x88 18304: f10d 0ab8 add.w sl, sp, #184 ; 0xb8 18308: e539 b.n 17d7e <_vfprintf_r+0x922> 1830a: 4e67 ldr r6, [pc, #412] ; (184a8 <_vfprintf_r+0x104c>) 1830c: ad2e add r5, sp, #184 ; 0xb8 1830e: fba6 0203 umull r0, r2, r6, r3 18312: 08d2 lsrs r2, r2, #3 18314: eb02 0082 add.w r0, r2, r2, lsl #2 18318: eba3 0040 sub.w r0, r3, r0, lsl #1 1831c: 3030 adds r0, #48 ; 0x30 1831e: f805 0d01 strb.w r0, [r5, #-1]! 18322: 4618 mov r0, r3 18324: 2809 cmp r0, #9 18326: 4613 mov r3, r2 18328: d8f1 bhi.n 1830e <_vfprintf_r+0xeb2> 1832a: ab2e add r3, sp, #184 ; 0xb8 1832c: 1b5b subs r3, r3, r5 1832e: 9406 str r4, [sp, #24] 18330: 930a str r3, [sp, #40] ; 0x28 18332: f7ff baad b.w 17890 <_vfprintf_r+0x434> 18336: 9b22 ldr r3, [sp, #136] ; 0x88 18338: 4a5c ldr r2, [pc, #368] ; (184ac <_vfprintf_r+0x1050>) 1833a: f8c9 2000 str.w r2, [r9] 1833e: 3301 adds r3, #1 18340: 3401 adds r4, #1 18342: 2201 movs r2, #1 18344: 2b07 cmp r3, #7 18346: 9423 str r4, [sp, #140] ; 0x8c 18348: 9322 str r3, [sp, #136] ; 0x88 1834a: f8c9 2004 str.w r2, [r9, #4] 1834e: f300 8110 bgt.w 18572 <_vfprintf_r+0x1116> 18352: f109 0908 add.w r9, r9, #8 18356: 2900 cmp r1, #0 18358: d14d bne.n 183f6 <_vfprintf_r+0xf9a> 1835a: 9b06 ldr r3, [sp, #24] 1835c: 9a12 ldr r2, [sp, #72] ; 0x48 1835e: f003 0301 and.w r3, r3, #1 18362: 4313 orrs r3, r2 18364: f43f a9f7 beq.w 17756 <_vfprintf_r+0x2fa> 18368: 9b13 ldr r3, [sp, #76] ; 0x4c 1836a: 9915 ldr r1, [sp, #84] ; 0x54 1836c: 191a adds r2, r3, r4 1836e: e9c9 1300 strd r1, r3, [r9] 18372: 9b22 ldr r3, [sp, #136] ; 0x88 18374: 9223 str r2, [sp, #140] ; 0x8c 18376: 3301 adds r3, #1 18378: 2b07 cmp r3, #7 1837a: 9322 str r3, [sp, #136] ; 0x88 1837c: f300 8124 bgt.w 185c8 <_vfprintf_r+0x116c> 18380: f109 0908 add.w r9, r9, #8 18384: 9912 ldr r1, [sp, #72] ; 0x48 18386: f8c9 5000 str.w r5, [r9] 1838a: 3301 adds r3, #1 1838c: 188c adds r4, r1, r2 1838e: 2b07 cmp r3, #7 18390: e9cd 3422 strd r3, r4, [sp, #136] ; 0x88 18394: f8c9 1004 str.w r1, [r9, #4] 18398: f77f a9db ble.w 17752 <_vfprintf_r+0x2f6> 1839c: e4c2 b.n 17d24 <_vfprintf_r+0x8c8> 1839e: 980c ldr r0, [sp, #48] ; 0x30 183a0: 9317 str r3, [sp, #92] ; 0x5c 183a2: aa21 add r2, sp, #132 ; 0x84 183a4: 4659 mov r1, fp 183a6: f002 fd93 bl 1aed0 <__sprint_r> 183aa: 2800 cmp r0, #0 183ac: f47f acad bne.w 17d0a <_vfprintf_r+0x8ae> 183b0: 9c23 ldr r4, [sp, #140] ; 0x8c 183b2: 9b17 ldr r3, [sp, #92] ; 0x5c 183b4: f10d 09b8 add.w r9, sp, #184 ; 0xb8 183b8: f7ff b987 b.w 176ca <_vfprintf_r+0x26e> 183bc: 46aa mov sl, r5 183be: f7ff b9ec b.w 1779a <_vfprintf_r+0x33e> 183c2: 980c ldr r0, [sp, #48] ; 0x30 183c4: aa21 add r2, sp, #132 ; 0x84 183c6: 4659 mov r1, fp 183c8: f002 fd82 bl 1aed0 <__sprint_r> 183cc: 2800 cmp r0, #0 183ce: f47f ac9c bne.w 17d0a <_vfprintf_r+0x8ae> 183d2: 9c23 ldr r4, [sp, #140] ; 0x8c 183d4: f10d 09b8 add.w r9, sp, #184 ; 0xb8 183d8: f7ff bbb3 b.w 17b42 <_vfprintf_r+0x6e6> 183dc: 980c ldr r0, [sp, #48] ; 0x30 183de: aa21 add r2, sp, #132 ; 0x84 183e0: 4659 mov r1, fp 183e2: f002 fd75 bl 1aed0 <__sprint_r> 183e6: 2800 cmp r0, #0 183e8: f47f ac8f bne.w 17d0a <_vfprintf_r+0x8ae> 183ec: 9c23 ldr r4, [sp, #140] ; 0x8c 183ee: f10d 09b8 add.w r9, sp, #184 ; 0xb8 183f2: f7ff b995 b.w 17720 <_vfprintf_r+0x2c4> 183f6: 9b13 ldr r3, [sp, #76] ; 0x4c 183f8: 9815 ldr r0, [sp, #84] ; 0x54 183fa: 191a adds r2, r3, r4 183fc: e9c9 0300 strd r0, r3, [r9] 18400: 9b22 ldr r3, [sp, #136] ; 0x88 18402: 9223 str r2, [sp, #140] ; 0x8c 18404: 3301 adds r3, #1 18406: 2b07 cmp r3, #7 18408: 9322 str r3, [sp, #136] ; 0x88 1840a: f300 80dd bgt.w 185c8 <_vfprintf_r+0x116c> 1840e: f109 0908 add.w r9, r9, #8 18412: 2900 cmp r1, #0 18414: dab6 bge.n 18384 <_vfprintf_r+0xf28> 18416: 424f negs r7, r1 18418: 3110 adds r1, #16 1841a: 4e22 ldr r6, [pc, #136] ; (184a4 <_vfprintf_r+0x1048>) 1841c: f280 8195 bge.w 1874a <_vfprintf_r+0x12ee> 18420: f8dd a030 ldr.w sl, [sp, #48] ; 0x30 18424: 2410 movs r4, #16 18426: e005 b.n 18434 <_vfprintf_r+0xfd8> 18428: f109 0908 add.w r9, r9, #8 1842c: 3f10 subs r7, #16 1842e: 2f10 cmp r7, #16 18430: f340 818b ble.w 1874a <_vfprintf_r+0x12ee> 18434: 3301 adds r3, #1 18436: 3210 adds r2, #16 18438: 2b07 cmp r3, #7 1843a: e9c9 6400 strd r6, r4, [r9] 1843e: e9cd 3222 strd r3, r2, [sp, #136] ; 0x88 18442: ddf1 ble.n 18428 <_vfprintf_r+0xfcc> 18444: aa21 add r2, sp, #132 ; 0x84 18446: 4659 mov r1, fp 18448: 4650 mov r0, sl 1844a: f002 fd41 bl 1aed0 <__sprint_r> 1844e: 2800 cmp r0, #0 18450: f47f ac5b bne.w 17d0a <_vfprintf_r+0x8ae> 18454: e9dd 3222 ldrd r3, r2, [sp, #136] ; 0x88 18458: f10d 09b8 add.w r9, sp, #184 ; 0xb8 1845c: e7e6 b.n 1842c <_vfprintf_r+0xfd0> 1845e: f8dd 8020 ldr.w r8, [sp, #32] 18462: f8ca 6000 str.w r6, [sl] 18466: 3701 adds r7, #1 18468: 444c add r4, r9 1846a: 2f07 cmp r7, #7 1846c: e9cd 7422 strd r7, r4, [sp, #136] ; 0x88 18470: f8ca 9004 str.w r9, [sl, #4] 18474: f77f ac9b ble.w 17dae <_vfprintf_r+0x952> 18478: e5c9 b.n 1800e <_vfprintf_r+0xbb2> 1847a: 4628 mov r0, r5 1847c: f8cd a020 str.w sl, [sp, #32] 18480: 960d str r6, [sp, #52] ; 0x34 18482: 9406 str r4, [sp, #24] 18484: f7fe ff7c bl 17380 18488: ea20 73e0 bic.w r3, r0, r0, asr #31 1848c: f89d 1067 ldrb.w r1, [sp, #103] ; 0x67 18490: 900a str r0, [sp, #40] ; 0x28 18492: 9307 str r3, [sp, #28] 18494: f8cd a03c str.w sl, [sp, #60] ; 0x3c 18498: f7ff b9c6 b.w 17828 <_vfprintf_r+0x3cc> 1849c: 66666667 .word 0x66666667 184a0: 0002c074 .word 0x0002c074 184a4: 0002c090 .word 0x0002c090 184a8: cccccccd .word 0xcccccccd 184ac: 0002c07c .word 0x0002c07c 184b0: a91f add r1, sp, #124 ; 0x7c 184b2: e9dd 3607 ldrd r3, r6, [sp, #28] 184b6: 9104 str r1, [sp, #16] 184b8: a91c add r1, sp, #112 ; 0x70 184ba: 9103 str r1, [sp, #12] 184bc: a91b add r1, sp, #108 ; 0x6c 184be: 9102 str r1, [sp, #8] 184c0: 2103 movs r1, #3 184c2: 9601 str r6, [sp, #4] 184c4: 980c ldr r0, [sp, #48] ; 0x30 184c6: 9100 str r1, [sp, #0] 184c8: 4652 mov r2, sl 184ca: f000 fb11 bl 18af0 <_dtoa_r> 184ce: 4605 mov r5, r0 184d0: 1986 adds r6, r0, r6 184d2: 782b ldrb r3, [r5, #0] 184d4: 2b30 cmp r3, #48 ; 0x30 184d6: d064 beq.n 185a2 <_vfprintf_r+0x1146> 184d8: 9b1b ldr r3, [sp, #108] ; 0x6c 184da: 441e add r6, r3 184dc: 9907 ldr r1, [sp, #28] 184de: 4650 mov r0, sl 184e0: 2200 movs r2, #0 184e2: 2300 movs r3, #0 184e4: f005 fb36 bl 1db54 <__aeabi_dcmpeq> 184e8: 2800 cmp r0, #0 184ea: f000 809e beq.w 1862a <_vfprintf_r+0x11ce> 184ee: 4633 mov r3, r6 184f0: 1b5b subs r3, r3, r5 184f2: 9312 str r3, [sp, #72] ; 0x48 184f4: 9b1b ldr r3, [sp, #108] ; 0x6c 184f6: 930f str r3, [sp, #60] ; 0x3c 184f8: 9b0a ldr r3, [sp, #40] ; 0x28 184fa: 2b47 cmp r3, #71 ; 0x47 184fc: f43f ae37 beq.w 1816e <_vfprintf_r+0xd12> 18500: 2f66 cmp r7, #102 ; 0x66 18502: f47f ae3c bne.w 1817e <_vfprintf_r+0xd22> 18506: 9a08 ldr r2, [sp, #32] 18508: f004 0301 and.w r3, r4, #1 1850c: 4313 orrs r3, r2 1850e: 9a0f ldr r2, [sp, #60] ; 0x3c 18510: 2a00 cmp r2, #0 18512: f340 8169 ble.w 187e8 <_vfprintf_r+0x138c> 18516: 2b00 cmp r3, #0 18518: f040 8149 bne.w 187ae <_vfprintf_r+0x1352> 1851c: 9b0f ldr r3, [sp, #60] ; 0x3c 1851e: 9307 str r3, [sp, #28] 18520: 930a str r3, [sp, #40] ; 0x28 18522: 9b0e ldr r3, [sp, #56] ; 0x38 18524: 2b00 cmp r3, #0 18526: f000 808c beq.w 18642 <_vfprintf_r+0x11e6> 1852a: 232d movs r3, #45 ; 0x2d 1852c: f88d 3067 strb.w r3, [sp, #103] ; 0x67 18530: 2300 movs r3, #0 18532: 9308 str r3, [sp, #32] 18534: f7ff b97b b.w 1782e <_vfprintf_r+0x3d2> 18538: 465a mov r2, fp 1853a: 9d08 ldr r5, [sp, #32] 1853c: 46b3 mov fp, r6 1853e: 4616 mov r6, r2 18540: 3301 adds r3, #1 18542: 443c add r4, r7 18544: 2b07 cmp r3, #7 18546: e9cd 3422 strd r3, r4, [sp, #136] ; 0x88 1854a: f8c9 6000 str.w r6, [r9] 1854e: f8c9 7004 str.w r7, [r9, #4] 18552: dc47 bgt.n 185e4 <_vfprintf_r+0x1188> 18554: f109 0908 add.w r9, r9, #8 18558: e4f5 b.n 17f46 <_vfprintf_r+0xaea> 1855a: 212d movs r1, #45 ; 0x2d 1855c: f88d 1067 strb.w r1, [sp, #103] ; 0x67 18560: f7ff b954 b.w 1780c <_vfprintf_r+0x3b0> 18564: f103 4300 add.w r3, r3, #2147483648 ; 0x80000000 18568: 9307 str r3, [sp, #28] 1856a: 232d movs r3, #45 ; 0x2d 1856c: 468a mov sl, r1 1856e: 930e str r3, [sp, #56] ; 0x38 18570: e5d5 b.n 1811e <_vfprintf_r+0xcc2> 18572: 980c ldr r0, [sp, #48] ; 0x30 18574: aa21 add r2, sp, #132 ; 0x84 18576: 4659 mov r1, fp 18578: f002 fcaa bl 1aed0 <__sprint_r> 1857c: 2800 cmp r0, #0 1857e: f47f abc4 bne.w 17d0a <_vfprintf_r+0x8ae> 18582: 991b ldr r1, [sp, #108] ; 0x6c 18584: 9c23 ldr r4, [sp, #140] ; 0x8c 18586: f10d 09b8 add.w r9, sp, #184 ; 0xb8 1858a: e6e4 b.n 18356 <_vfprintf_r+0xefa> 1858c: 980c ldr r0, [sp, #48] ; 0x30 1858e: aa21 add r2, sp, #132 ; 0x84 18590: 4659 mov r1, fp 18592: f002 fc9d bl 1aed0 <__sprint_r> 18596: f7ff b900 b.w 1779a <_vfprintf_r+0x33e> 1859a: f88d 0067 strb.w r0, [sp, #103] ; 0x67 1859e: f7ff b871 b.w 17684 <_vfprintf_r+0x228> 185a2: 9907 ldr r1, [sp, #28] 185a4: 4650 mov r0, sl 185a6: 2200 movs r2, #0 185a8: 2300 movs r3, #0 185aa: f005 fad3 bl 1db54 <__aeabi_dcmpeq> 185ae: 2800 cmp r0, #0 185b0: d192 bne.n 184d8 <_vfprintf_r+0x107c> 185b2: 9b08 ldr r3, [sp, #32] 185b4: f1c3 0301 rsb r3, r3, #1 185b8: 931b str r3, [sp, #108] ; 0x6c 185ba: e78e b.n 184da <_vfprintf_r+0x107e> 185bc: 2a00 cmp r2, #0 185be: 4613 mov r3, r2 185c0: bf08 it eq 185c2: 2301 moveq r3, #1 185c4: 9308 str r3, [sp, #32] 185c6: e59c b.n 18102 <_vfprintf_r+0xca6> 185c8: 980c ldr r0, [sp, #48] ; 0x30 185ca: aa21 add r2, sp, #132 ; 0x84 185cc: 4659 mov r1, fp 185ce: f002 fc7f bl 1aed0 <__sprint_r> 185d2: 2800 cmp r0, #0 185d4: f47f ab99 bne.w 17d0a <_vfprintf_r+0x8ae> 185d8: e9dd 3222 ldrd r3, r2, [sp, #136] ; 0x88 185dc: 991b ldr r1, [sp, #108] ; 0x6c 185de: f10d 09b8 add.w r9, sp, #184 ; 0xb8 185e2: e716 b.n 18412 <_vfprintf_r+0xfb6> 185e4: 980c ldr r0, [sp, #48] ; 0x30 185e6: aa21 add r2, sp, #132 ; 0x84 185e8: 4659 mov r1, fp 185ea: f002 fc71 bl 1aed0 <__sprint_r> 185ee: 2800 cmp r0, #0 185f0: f47f ab8b bne.w 17d0a <_vfprintf_r+0x8ae> 185f4: 9c23 ldr r4, [sp, #140] ; 0x8c 185f6: f10d 09b8 add.w r9, sp, #184 ; 0xb8 185fa: e4a4 b.n 17f46 <_vfprintf_r+0xaea> 185fc: 9c06 ldr r4, [sp, #24] 185fe: f7ff b93f b.w 17880 <_vfprintf_r+0x424> 18602: 9908 ldr r1, [sp, #32] 18604: 980c ldr r0, [sp, #48] ; 0x30 18606: 1c4e adds r6, r1, #1 18608: a91f add r1, sp, #124 ; 0x7c 1860a: 9104 str r1, [sp, #16] 1860c: a91c add r1, sp, #112 ; 0x70 1860e: 9103 str r1, [sp, #12] 18610: a91b add r1, sp, #108 ; 0x6c 18612: 9102 str r1, [sp, #8] 18614: 2102 movs r1, #2 18616: 9601 str r6, [sp, #4] 18618: 9100 str r1, [sp, #0] 1861a: f000 fa69 bl 18af0 <_dtoa_r> 1861e: 4605 mov r5, r0 18620: 2f47 cmp r7, #71 ; 0x47 18622: f43f ad99 beq.w 18158 <_vfprintf_r+0xcfc> 18626: 442e add r6, r5 18628: e758 b.n 184dc <_vfprintf_r+0x1080> 1862a: 9b1f ldr r3, [sp, #124] ; 0x7c 1862c: 42b3 cmp r3, r6 1862e: f4bf af5f bcs.w 184f0 <_vfprintf_r+0x1094> 18632: 2130 movs r1, #48 ; 0x30 18634: 1c5a adds r2, r3, #1 18636: 921f str r2, [sp, #124] ; 0x7c 18638: 7019 strb r1, [r3, #0] 1863a: 9b1f ldr r3, [sp, #124] ; 0x7c 1863c: 429e cmp r6, r3 1863e: d8f9 bhi.n 18634 <_vfprintf_r+0x11d8> 18640: e756 b.n 184f0 <_vfprintf_r+0x1094> 18642: 9b0e ldr r3, [sp, #56] ; 0x38 18644: f89d 1067 ldrb.w r1, [sp, #103] ; 0x67 18648: 9308 str r3, [sp, #32] 1864a: f7ff b8ed b.w 17828 <_vfprintf_r+0x3cc> 1864e: 980c ldr r0, [sp, #48] ; 0x30 18650: aa21 add r2, sp, #132 ; 0x84 18652: 4659 mov r1, fp 18654: f002 fc3c bl 1aed0 <__sprint_r> 18658: 2800 cmp r0, #0 1865a: f47f ab56 bne.w 17d0a <_vfprintf_r+0x8ae> 1865e: 9a1b ldr r2, [sp, #108] ; 0x6c 18660: 9c23 ldr r4, [sp, #140] ; 0x8c 18662: f10d 09b8 add.w r9, sp, #184 ; 0xb8 18666: e481 b.n 17f6c <_vfprintf_r+0xb10> 18668: 9b12 ldr r3, [sp, #72] ; 0x48 1866a: 9a0f ldr r2, [sp, #60] ; 0x3c 1866c: 4293 cmp r3, r2 1866e: dc5b bgt.n 18728 <_vfprintf_r+0x12cc> 18670: 07e4 lsls r4, r4, #31 18672: 9b0f ldr r3, [sp, #60] ; 0x3c 18674: f100 80a5 bmi.w 187c2 <_vfprintf_r+0x1366> 18678: ea23 72e3 bic.w r2, r3, r3, asr #31 1867c: 9207 str r2, [sp, #28] 1867e: 930a str r3, [sp, #40] ; 0x28 18680: 2767 movs r7, #103 ; 0x67 18682: e74e b.n 18522 <_vfprintf_r+0x10c6> 18684: 980c ldr r0, [sp, #48] ; 0x30 18686: aa21 add r2, sp, #132 ; 0x84 18688: 4659 mov r1, fp 1868a: f002 fc21 bl 1aed0 <__sprint_r> 1868e: 2800 cmp r0, #0 18690: f47f ab3b bne.w 17d0a <_vfprintf_r+0x8ae> 18694: 9c23 ldr r4, [sp, #140] ; 0x8c 18696: f10d 09b8 add.w r9, sp, #184 ; 0xb8 1869a: e44d b.n 17f38 <_vfprintf_r+0xadc> 1869c: 2306 movs r3, #6 1869e: 9308 str r3, [sp, #32] 186a0: e52f b.n 18102 <_vfprintf_r+0xca6> 186a2: 980c ldr r0, [sp, #48] ; 0x30 186a4: aa21 add r2, sp, #132 ; 0x84 186a6: 4659 mov r1, fp 186a8: f002 fc12 bl 1aed0 <__sprint_r> 186ac: 2800 cmp r0, #0 186ae: f47f ab2c bne.w 17d0a <_vfprintf_r+0x8ae> 186b2: 9a1b ldr r2, [sp, #108] ; 0x6c 186b4: 9b12 ldr r3, [sp, #72] ; 0x48 186b6: 9c23 ldr r4, [sp, #140] ; 0x8c 186b8: 1a9a subs r2, r3, r2 186ba: f10d 09b8 add.w r9, sp, #184 ; 0xb8 186be: e46d b.n 17f9c <_vfprintf_r+0xb40> 186c0: 9b08 ldr r3, [sp, #32] 186c2: f89d 1067 ldrb.w r1, [sp, #103] ; 0x67 186c6: 960d str r6, [sp, #52] ; 0x34 186c8: 9406 str r4, [sp, #24] 186ca: 9307 str r3, [sp, #28] 186cc: 930a str r3, [sp, #40] ; 0x28 186ce: 9008 str r0, [sp, #32] 186d0: 900f str r0, [sp, #60] ; 0x3c 186d2: f7ff b8a9 b.w 17828 <_vfprintf_r+0x3cc> 186d6: f88d 0067 strb.w r0, [sp, #103] ; 0x67 186da: f7ff b90c b.w 178f6 <_vfprintf_r+0x49a> 186de: f88d 0067 strb.w r0, [sp, #103] ; 0x67 186e2: f7ff b97a b.w 179da <_vfprintf_r+0x57e> 186e6: f88d 0067 strb.w r0, [sp, #103] ; 0x67 186ea: f7ff b97e b.w 179ea <_vfprintf_r+0x58e> 186ee: f88d 0067 strb.w r0, [sp, #103] ; 0x67 186f2: f7ff b8a9 b.w 17848 <_vfprintf_r+0x3ec> 186f6: f88d 0067 strb.w r0, [sp, #103] ; 0x67 186fa: f7ff b9c6 b.w 17a8a <_vfprintf_r+0x62e> 186fe: f88d 0067 strb.w r0, [sp, #103] ; 0x67 18702: f7ff b9d3 b.w 17aac <_vfprintf_r+0x650> 18706: f88d 0067 strb.w r0, [sp, #103] ; 0x67 1870a: f7ff b854 b.w 177b6 <_vfprintf_r+0x35a> 1870e: f88d 0067 strb.w r0, [sp, #103] ; 0x67 18712: f7ff b917 b.w 17944 <_vfprintf_r+0x4e8> 18716: 3330 adds r3, #48 ; 0x30 18718: f88d 3077 strb.w r3, [sp, #119] ; 0x77 1871c: 2330 movs r3, #48 ; 0x30 1871e: f88d 3076 strb.w r3, [sp, #118] ; 0x76 18722: 2304 movs r3, #4 18724: 9316 str r3, [sp, #88] ; 0x58 18726: e56d b.n 18204 <_vfprintf_r+0xda8> 18728: e9dd 3212 ldrd r3, r2, [sp, #72] ; 0x48 1872c: 4413 add r3, r2 1872e: 9a0f ldr r2, [sp, #60] ; 0x3c 18730: 930a str r3, [sp, #40] ; 0x28 18732: 2a00 cmp r2, #0 18734: dd4d ble.n 187d2 <_vfprintf_r+0x1376> 18736: ea23 73e3 bic.w r3, r3, r3, asr #31 1873a: 9307 str r3, [sp, #28] 1873c: 2767 movs r7, #103 ; 0x67 1873e: e6f0 b.n 18522 <_vfprintf_r+0x10c6> 18740: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff 18744: 9309 str r3, [sp, #36] ; 0x24 18746: f7ff b82d b.w 177a4 <_vfprintf_r+0x348> 1874a: 3301 adds r3, #1 1874c: 443a add r2, r7 1874e: 2b07 cmp r3, #7 18750: e9cd 3222 strd r3, r2, [sp, #136] ; 0x88 18754: f8c9 6000 str.w r6, [r9] 18758: f8c9 7004 str.w r7, [r9, #4] 1875c: f77f ae10 ble.w 18380 <_vfprintf_r+0xf24> 18760: 980c ldr r0, [sp, #48] ; 0x30 18762: aa21 add r2, sp, #132 ; 0x84 18764: 4659 mov r1, fp 18766: f002 fbb3 bl 1aed0 <__sprint_r> 1876a: 2800 cmp r0, #0 1876c: f47f aacd bne.w 17d0a <_vfprintf_r+0x8ae> 18770: e9dd 3222 ldrd r3, r2, [sp, #136] ; 0x88 18774: f10d 09b8 add.w r9, sp, #184 ; 0xb8 18778: e604 b.n 18384 <_vfprintf_r+0xf28> 1877a: f014 0201 ands.w r2, r4, #1 1877e: 920f str r2, [sp, #60] ; 0x3c 18780: f47f ad47 bne.w 18212 <_vfprintf_r+0xdb6> 18784: ea23 73e3 bic.w r3, r3, r3, asr #31 18788: 9307 str r3, [sp, #28] 1878a: e6ca b.n 18522 <_vfprintf_r+0x10c6> 1878c: 9b11 ldr r3, [sp, #68] ; 0x44 1878e: 4d21 ldr r5, [pc, #132] ; (18814 <_vfprintf_r+0x13b8>) 18790: 2b00 cmp r3, #0 18792: bfb8 it lt 18794: 212d movlt r1, #45 ; 0x2d 18796: f024 0380 bic.w r3, r4, #128 ; 0x80 1879a: 9306 str r3, [sp, #24] 1879c: bfa8 it ge 1879e: f89d 1067 ldrbge.w r1, [sp, #103] ; 0x67 187a2: 4b1d ldr r3, [pc, #116] ; (18818 <_vfprintf_r+0x13bc>) 187a4: bfb8 it lt 187a6: f88d 1067 strblt.w r1, [sp, #103] ; 0x67 187aa: f7ff b834 b.w 17816 <_vfprintf_r+0x3ba> 187ae: 9b0f ldr r3, [sp, #60] ; 0x3c 187b0: 9a13 ldr r2, [sp, #76] ; 0x4c 187b2: 4413 add r3, r2 187b4: 9a08 ldr r2, [sp, #32] 187b6: 441a add r2, r3 187b8: ea22 73e2 bic.w r3, r2, r2, asr #31 187bc: 920a str r2, [sp, #40] ; 0x28 187be: 9307 str r3, [sp, #28] 187c0: e6af b.n 18522 <_vfprintf_r+0x10c6> 187c2: 9a13 ldr r2, [sp, #76] ; 0x4c 187c4: 4413 add r3, r2 187c6: 930a str r3, [sp, #40] ; 0x28 187c8: ea23 73e3 bic.w r3, r3, r3, asr #31 187cc: 9307 str r3, [sp, #28] 187ce: 2767 movs r7, #103 ; 0x67 187d0: e6a7 b.n 18522 <_vfprintf_r+0x10c6> 187d2: 9b0f ldr r3, [sp, #60] ; 0x3c 187d4: 9a0a ldr r2, [sp, #40] ; 0x28 187d6: f1c3 0301 rsb r3, r3, #1 187da: 441a add r2, r3 187dc: ea22 73e2 bic.w r3, r2, r2, asr #31 187e0: 920a str r2, [sp, #40] ; 0x28 187e2: 9307 str r3, [sp, #28] 187e4: 2767 movs r7, #103 ; 0x67 187e6: e69c b.n 18522 <_vfprintf_r+0x10c6> 187e8: b91b cbnz r3, 187f2 <_vfprintf_r+0x1396> 187ea: 2301 movs r3, #1 187ec: 9307 str r3, [sp, #28] 187ee: 930a str r3, [sp, #40] ; 0x28 187f0: e697 b.n 18522 <_vfprintf_r+0x10c6> 187f2: 9b13 ldr r3, [sp, #76] ; 0x4c 187f4: 3301 adds r3, #1 187f6: e7dd b.n 187b4 <_vfprintf_r+0x1358> 187f8: 9a0d ldr r2, [sp, #52] ; 0x34 187fa: f852 5b04 ldr.w r5, [r2], #4 187fe: 920d str r2, [sp, #52] ; 0x34 18800: ea45 75e5 orr.w r5, r5, r5, asr #31 18804: f7fe be8c b.w 17520 <_vfprintf_r+0xc4> 18808: 2302 movs r3, #2 1880a: 9316 str r3, [sp, #88] ; 0x58 1880c: e4fa b.n 18204 <_vfprintf_r+0xda8> 1880e: 9e08 ldr r6, [sp, #32] 18810: e706 b.n 18620 <_vfprintf_r+0x11c4> 18812: bf00 nop 18814: 0002c044 .word 0x0002c044 18818: 0002c048 .word 0x0002c048 0001881c <__sbprintf>: 1881c: b570 push {r4, r5, r6, lr} 1881e: 460c mov r4, r1 18820: 8989 ldrh r1, [r1, #12] 18822: f5ad 6d8d sub.w sp, sp, #1128 ; 0x468 18826: f021 0102 bic.w r1, r1, #2 1882a: f8ad 1010 strh.w r1, [sp, #16] 1882e: 6e21 ldr r1, [r4, #96] ; 0x60 18830: 9119 str r1, [sp, #100] ; 0x64 18832: 89e1 ldrh r1, [r4, #14] 18834: f8ad 1012 strh.w r1, [sp, #18] 18838: 69e1 ldr r1, [r4, #28] 1883a: 9108 str r1, [sp, #32] 1883c: 6a61 ldr r1, [r4, #36] ; 0x24 1883e: 910a str r1, [sp, #40] ; 0x28 18840: a91a add r1, sp, #104 ; 0x68 18842: 9101 str r1, [sp, #4] 18844: 9105 str r1, [sp, #20] 18846: f44f 6180 mov.w r1, #1024 ; 0x400 1884a: 9103 str r1, [sp, #12] 1884c: 9106 str r1, [sp, #24] 1884e: 2100 movs r1, #0 18850: 9107 str r1, [sp, #28] 18852: a901 add r1, sp, #4 18854: 4606 mov r6, r0 18856: f7fe fe01 bl 1745c <_vfprintf_r> 1885a: 1e05 subs r5, r0, #0 1885c: db07 blt.n 1886e <__sbprintf+0x52> 1885e: a901 add r1, sp, #4 18860: 4630 mov r0, r6 18862: f001 f92b bl 19abc <_fflush_r> 18866: 2800 cmp r0, #0 18868: bf18 it ne 1886a: f04f 35ff movne.w r5, #4294967295 ; 0xffffffff 1886e: f8bd 3010 ldrh.w r3, [sp, #16] 18872: 065b lsls r3, r3, #25 18874: d503 bpl.n 1887e <__sbprintf+0x62> 18876: 89a3 ldrh r3, [r4, #12] 18878: f043 0340 orr.w r3, r3, #64 ; 0x40 1887c: 81a3 strh r3, [r4, #12] 1887e: 4628 mov r0, r5 18880: f50d 6d8d add.w sp, sp, #1128 ; 0x468 18884: bd70 pop {r4, r5, r6, pc} 18886: bf00 nop 00018888 <__vsprintf_chk>: 18888: b510 push {r4, lr} 1888a: 1e14 subs r4, r2, #0 1888c: 4619 mov r1, r3 1888e: 9b02 ldr r3, [sp, #8] 18890: db08 blt.n 188a4 <__vsprintf_chk+0x1c> 18892: 460a mov r2, r1 18894: 4621 mov r1, r4 18896: f003 f8c5 bl 1ba24 1889a: 2800 cmp r0, #0 1889c: db01 blt.n 188a2 <__vsprintf_chk+0x1a> 1889e: 42a0 cmp r0, r4 188a0: d205 bcs.n 188ae <__vsprintf_chk+0x26> 188a2: bd10 pop {r4, pc} 188a4: e8bd 4010 ldmia.w sp!, {r4, lr} 188a8: 461a mov r2, r3 188aa: f003 b8f3 b.w 1ba94 188ae: f000 f86b bl 18988 <__chk_fail> 188b2: bf00 nop 000188b4 <__swsetup_r>: 188b4: b538 push {r3, r4, r5, lr} 188b6: 4b33 ldr r3, [pc, #204] ; (18984 <__swsetup_r+0xd0>) 188b8: 681b ldr r3, [r3, #0] 188ba: 4605 mov r5, r0 188bc: 460c mov r4, r1 188be: b10b cbz r3, 188c4 <__swsetup_r+0x10> 188c0: 6b9a ldr r2, [r3, #56] ; 0x38 188c2: b312 cbz r2, 1890a <__swsetup_r+0x56> 188c4: f9b4 300c ldrsh.w r3, [r4, #12] 188c8: 0718 lsls r0, r3, #28 188ca: b29a uxth r2, r3 188cc: d525 bpl.n 1891a <__swsetup_r+0x66> 188ce: 6921 ldr r1, [r4, #16] 188d0: 2900 cmp r1, #0 188d2: d02d beq.n 18930 <__swsetup_r+0x7c> 188d4: f012 0001 ands.w r0, r2, #1 188d8: d007 beq.n 188ea <__swsetup_r+0x36> 188da: 2000 movs r0, #0 188dc: 60a0 str r0, [r4, #8] 188de: 6960 ldr r0, [r4, #20] 188e0: 4240 negs r0, r0 188e2: 61a0 str r0, [r4, #24] 188e4: b139 cbz r1, 188f6 <__swsetup_r+0x42> 188e6: 2000 movs r0, #0 188e8: bd38 pop {r3, r4, r5, pc} 188ea: 0795 lsls r5, r2, #30 188ec: bf58 it pl 188ee: 6960 ldrpl r0, [r4, #20] 188f0: 60a0 str r0, [r4, #8] 188f2: 2900 cmp r1, #0 188f4: d1f7 bne.n 188e6 <__swsetup_r+0x32> 188f6: 0612 lsls r2, r2, #24 188f8: bf58 it pl 188fa: 4608 movpl r0, r1 188fc: d5f4 bpl.n 188e8 <__swsetup_r+0x34> 188fe: f043 0340 orr.w r3, r3, #64 ; 0x40 18902: 81a3 strh r3, [r4, #12] 18904: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff 18908: bd38 pop {r3, r4, r5, pc} 1890a: 4618 mov r0, r3 1890c: f001 f95e bl 19bcc <__sinit> 18910: f9b4 300c ldrsh.w r3, [r4, #12] 18914: 0718 lsls r0, r3, #28 18916: b29a uxth r2, r3 18918: d4d9 bmi.n 188ce <__swsetup_r+0x1a> 1891a: 06d1 lsls r1, r2, #27 1891c: d52a bpl.n 18974 <__swsetup_r+0xc0> 1891e: 0752 lsls r2, r2, #29 18920: d414 bmi.n 1894c <__swsetup_r+0x98> 18922: 6921 ldr r1, [r4, #16] 18924: f043 0308 orr.w r3, r3, #8 18928: 81a3 strh r3, [r4, #12] 1892a: b29a uxth r2, r3 1892c: 2900 cmp r1, #0 1892e: d1d1 bne.n 188d4 <__swsetup_r+0x20> 18930: f402 7020 and.w r0, r2, #640 ; 0x280 18934: f5b0 7f00 cmp.w r0, #512 ; 0x200 18938: d0cc beq.n 188d4 <__swsetup_r+0x20> 1893a: 4621 mov r1, r4 1893c: 4628 mov r0, r5 1893e: f001 fabf bl 19ec0 <__smakebuf_r> 18942: f9b4 300c ldrsh.w r3, [r4, #12] 18946: 6921 ldr r1, [r4, #16] 18948: b29a uxth r2, r3 1894a: e7c3 b.n 188d4 <__swsetup_r+0x20> 1894c: 6b21 ldr r1, [r4, #48] ; 0x30 1894e: b151 cbz r1, 18966 <__swsetup_r+0xb2> 18950: f104 0240 add.w r2, r4, #64 ; 0x40 18954: 4291 cmp r1, r2 18956: d004 beq.n 18962 <__swsetup_r+0xae> 18958: 4628 mov r0, r5 1895a: f001 f98d bl 19c78 <_free_r> 1895e: f9b4 300c ldrsh.w r3, [r4, #12] 18962: 2200 movs r2, #0 18964: 6322 str r2, [r4, #48] ; 0x30 18966: 6921 ldr r1, [r4, #16] 18968: 2200 movs r2, #0 1896a: e9c4 1200 strd r1, r2, [r4] 1896e: f023 0324 bic.w r3, r3, #36 ; 0x24 18972: e7d7 b.n 18924 <__swsetup_r+0x70> 18974: 2209 movs r2, #9 18976: f043 0340 orr.w r3, r3, #64 ; 0x40 1897a: 602a str r2, [r5, #0] 1897c: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff 18980: 81a3 strh r3, [r4, #12] 18982: bd38 pop {r3, r4, r5, pc} 18984: 20000068 .word 0x20000068 00018988 <__chk_fail>: 18988: b500 push {lr} 1898a: 4c0e ldr r4, [pc, #56] ; (189c4 <__chk_fail+0x3c>) 1898c: cc0f ldmia r4!, {r0, r1, r2, r3} 1898e: b08d sub sp, #52 ; 0x34 18990: 46ec mov ip, sp 18992: e8ac 000f stmia.w ip!, {r0, r1, r2, r3} 18996: cc0f ldmia r4!, {r0, r1, r2, r3} 18998: e8ac 000f stmia.w ip!, {r0, r1, r2, r3} 1899c: e894 000f ldmia.w r4, {r0, r1, r2, r3} 189a0: e8ac 0007 stmia.w ip!, {r0, r1, r2} 189a4: 4668 mov r0, sp 189a6: f8ac 3000 strh.w r3, [ip] 189aa: f7fe fce9 bl 17380 189ae: 4669 mov r1, sp 189b0: 4602 mov r2, r0 189b2: 2002 movs r0, #2 189b4: f002 fa44 bl 1ae40 189b8: 2006 movs r0, #6 189ba: f002 f9b5 bl 1ad28 189be: 207f movs r0, #127 ; 0x7f 189c0: f7e7 fce8 bl 394 <_exit> 189c4: 0002c0a0 .word 0x0002c0a0 000189c8 : 189c8: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} 189cc: 6903 ldr r3, [r0, #16] 189ce: 690c ldr r4, [r1, #16] 189d0: 42a3 cmp r3, r4 189d2: b083 sub sp, #12 189d4: f2c0 8088 blt.w 18ae8 189d8: 3c01 subs r4, #1 189da: f101 0514 add.w r5, r1, #20 189de: 00a3 lsls r3, r4, #2 189e0: f100 0814 add.w r8, r0, #20 189e4: 9300 str r3, [sp, #0] 189e6: f855 3024 ldr.w r3, [r5, r4, lsl #2] 189ea: f858 2024 ldr.w r2, [r8, r4, lsl #2] 189ee: 3301 adds r3, #1 189f0: 468a mov sl, r1 189f2: 429a cmp r2, r3 189f4: eb08 0184 add.w r1, r8, r4, lsl #2 189f8: 4681 mov r9, r0 189fa: eb05 0784 add.w r7, r5, r4, lsl #2 189fe: 9101 str r1, [sp, #4] 18a00: fbb2 f6f3 udiv r6, r2, r3 18a04: d33a bcc.n 18a7c 18a06: f04f 0c00 mov.w ip, #0 18a0a: 46ae mov lr, r5 18a0c: 4640 mov r0, r8 18a0e: 4662 mov r2, ip 18a10: 4663 mov r3, ip 18a12: f85e bb04 ldr.w fp, [lr], #4 18a16: 6801 ldr r1, [r0, #0] 18a18: fa1f fc8b uxth.w ip, fp 18a1c: fb06 330c mla r3, r6, ip, r3 18a20: ea4f 4c13 mov.w ip, r3, lsr #16 18a24: ea4f 4b1b mov.w fp, fp, lsr #16 18a28: fb06 cc0b mla ip, r6, fp, ip 18a2c: b29b uxth r3, r3 18a2e: 1ad3 subs r3, r2, r3 18a30: fa1f f28c uxth.w r2, ip 18a34: fa13 f381 uxtah r3, r3, r1 18a38: ebc2 4211 rsb r2, r2, r1, lsr #16 18a3c: eb02 4223 add.w r2, r2, r3, asr #16 18a40: b29b uxth r3, r3 18a42: ea43 4302 orr.w r3, r3, r2, lsl #16 18a46: 4577 cmp r7, lr 18a48: f840 3b04 str.w r3, [r0], #4 18a4c: ea4f 4222 mov.w r2, r2, asr #16 18a50: ea4f 431c mov.w r3, ip, lsr #16 18a54: d2dd bcs.n 18a12 18a56: 9b00 ldr r3, [sp, #0] 18a58: f858 3003 ldr.w r3, [r8, r3] 18a5c: b973 cbnz r3, 18a7c 18a5e: 9b01 ldr r3, [sp, #4] 18a60: 3b04 subs r3, #4 18a62: 4598 cmp r8, r3 18a64: d304 bcc.n 18a70 18a66: e007 b.n 18a78 18a68: 4598 cmp r8, r3 18a6a: f104 34ff add.w r4, r4, #4294967295 ; 0xffffffff 18a6e: d203 bcs.n 18a78 18a70: f853 2904 ldr.w r2, [r3], #-4 18a74: 2a00 cmp r2, #0 18a76: d0f7 beq.n 18a68 18a78: f8c9 4010 str.w r4, [r9, #16] 18a7c: 4651 mov r1, sl 18a7e: 4648 mov r0, r9 18a80: f002 f816 bl 1aab0 <__mcmp> 18a84: 2800 cmp r0, #0 18a86: db2b blt.n 18ae0 18a88: 3601 adds r6, #1 18a8a: 4641 mov r1, r8 18a8c: 2300 movs r3, #0 18a8e: f855 0b04 ldr.w r0, [r5], #4 18a92: f8d1 c000 ldr.w ip, [r1] 18a96: b282 uxth r2, r0 18a98: 1a9a subs r2, r3, r2 18a9a: 0c03 lsrs r3, r0, #16 18a9c: fa12 f28c uxtah r2, r2, ip 18aa0: ebc3 431c rsb r3, r3, ip, lsr #16 18aa4: eb03 4322 add.w r3, r3, r2, asr #16 18aa8: b292 uxth r2, r2 18aaa: ea42 4203 orr.w r2, r2, r3, lsl #16 18aae: 42af cmp r7, r5 18ab0: f841 2b04 str.w r2, [r1], #4 18ab4: ea4f 4323 mov.w r3, r3, asr #16 18ab8: d2e9 bcs.n 18a8e 18aba: f858 2024 ldr.w r2, [r8, r4, lsl #2] 18abe: eb08 0384 add.w r3, r8, r4, lsl #2 18ac2: b96a cbnz r2, 18ae0 18ac4: 3b04 subs r3, #4 18ac6: 4598 cmp r8, r3 18ac8: d304 bcc.n 18ad4 18aca: e007 b.n 18adc 18acc: 4598 cmp r8, r3 18ace: f104 34ff add.w r4, r4, #4294967295 ; 0xffffffff 18ad2: d203 bcs.n 18adc 18ad4: f853 2904 ldr.w r2, [r3], #-4 18ad8: 2a00 cmp r2, #0 18ada: d0f7 beq.n 18acc 18adc: f8c9 4010 str.w r4, [r9, #16] 18ae0: 4630 mov r0, r6 18ae2: b003 add sp, #12 18ae4: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} 18ae8: 2000 movs r0, #0 18aea: b003 add sp, #12 18aec: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} 00018af0 <_dtoa_r>: 18af0: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} 18af4: 6c01 ldr r1, [r0, #64] ; 0x40 18af6: b09f sub sp, #124 ; 0x7c 18af8: 4616 mov r6, r2 18afa: 461f mov r7, r3 18afc: e9cd 6704 strd r6, r7, [sp, #16] 18b00: 9c2b ldr r4, [sp, #172] ; 0xac 18b02: 4682 mov sl, r0 18b04: b149 cbz r1, 18b1a <_dtoa_r+0x2a> 18b06: 6c42 ldr r2, [r0, #68] ; 0x44 18b08: 604a str r2, [r1, #4] 18b0a: 2301 movs r3, #1 18b0c: 4093 lsls r3, r2 18b0e: 608b str r3, [r1, #8] 18b10: f001 fd70 bl 1a5f4 <_Bfree> 18b14: 2300 movs r3, #0 18b16: f8ca 3040 str.w r3, [sl, #64] ; 0x40 18b1a: f1b7 0800 subs.w r8, r7, #0 18b1e: bfb4 ite lt 18b20: 2301 movlt r3, #1 18b22: 2300 movge r3, #0 18b24: 6023 str r3, [r4, #0] 18b26: 4b76 ldr r3, [pc, #472] ; (18d00 <_dtoa_r+0x210>) 18b28: bfbc itt lt 18b2a: f028 4800 biclt.w r8, r8, #2147483648 ; 0x80000000 18b2e: f8cd 8014 strlt.w r8, [sp, #20] 18b32: ea33 0308 bics.w r3, r3, r8 18b36: f000 80ac beq.w 18c92 <_dtoa_r+0x1a2> 18b3a: e9dd 3404 ldrd r3, r4, [sp, #16] 18b3e: 2200 movs r2, #0 18b40: 4618 mov r0, r3 18b42: 4621 mov r1, r4 18b44: 2300 movs r3, #0 18b46: e9cd 010a strd r0, r1, [sp, #40] ; 0x28 18b4a: f005 f803 bl 1db54 <__aeabi_dcmpeq> 18b4e: 4605 mov r5, r0 18b50: b178 cbz r0, 18b72 <_dtoa_r+0x82> 18b52: 9a2a ldr r2, [sp, #168] ; 0xa8 18b54: 2301 movs r3, #1 18b56: 6013 str r3, [r2, #0] 18b58: 9b2c ldr r3, [sp, #176] ; 0xb0 18b5a: 2b00 cmp r3, #0 18b5c: f000 8391 beq.w 19282 <_dtoa_r+0x792> 18b60: 4b68 ldr r3, [pc, #416] ; (18d04 <_dtoa_r+0x214>) 18b62: 9a2c ldr r2, [sp, #176] ; 0xb0 18b64: 6013 str r3, [r2, #0] 18b66: 3b01 subs r3, #1 18b68: 9303 str r3, [sp, #12] 18b6a: 9803 ldr r0, [sp, #12] 18b6c: b01f add sp, #124 ; 0x7c 18b6e: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} 18b72: ab1c add r3, sp, #112 ; 0x70 18b74: 9301 str r3, [sp, #4] 18b76: ab1d add r3, sp, #116 ; 0x74 18b78: 9300 str r3, [sp, #0] 18b7a: 4650 mov r0, sl 18b7c: e9dd 230a ldrd r2, r3, [sp, #40] ; 0x28 18b80: f002 f860 bl 1ac44 <__d2b> 18b84: ea5f 5418 movs.w r4, r8, lsr #20 18b88: 4683 mov fp, r0 18b8a: f040 8098 bne.w 18cbe <_dtoa_r+0x1ce> 18b8e: e9dd 541c ldrd r5, r4, [sp, #112] ; 0x70 18b92: 442c add r4, r5 18b94: f204 4332 addw r3, r4, #1074 ; 0x432 18b98: 2b20 cmp r3, #32 18b9a: f340 8388 ble.w 192ae <_dtoa_r+0x7be> 18b9e: f1c3 0340 rsb r3, r3, #64 ; 0x40 18ba2: fa08 f803 lsl.w r8, r8, r3 18ba6: f204 4312 addw r3, r4, #1042 ; 0x412 18baa: fa26 f303 lsr.w r3, r6, r3 18bae: ea48 0003 orr.w r0, r8, r3 18bb2: f7fd fc23 bl 163fc <__aeabi_ui2d> 18bb6: 2301 movs r3, #1 18bb8: 3c01 subs r4, #1 18bba: f1a1 71f8 sub.w r1, r1, #32505856 ; 0x1f00000 18bbe: 9312 str r3, [sp, #72] ; 0x48 18bc0: 4b51 ldr r3, [pc, #324] ; (18d08 <_dtoa_r+0x218>) 18bc2: 2200 movs r2, #0 18bc4: f7fd fadc bl 16180 <__aeabi_dsub> 18bc8: a347 add r3, pc, #284 ; (adr r3, 18ce8 <_dtoa_r+0x1f8>) 18bca: e9d3 2300 ldrd r2, r3, [r3] 18bce: f7fd fc8f bl 164f0 <__aeabi_dmul> 18bd2: a347 add r3, pc, #284 ; (adr r3, 18cf0 <_dtoa_r+0x200>) 18bd4: e9d3 2300 ldrd r2, r3, [r3] 18bd8: f7fd fad4 bl 16184 <__adddf3> 18bdc: 4606 mov r6, r0 18bde: 4620 mov r0, r4 18be0: 460f mov r7, r1 18be2: f7fd fc1b bl 1641c <__aeabi_i2d> 18be6: a344 add r3, pc, #272 ; (adr r3, 18cf8 <_dtoa_r+0x208>) 18be8: e9d3 2300 ldrd r2, r3, [r3] 18bec: f7fd fc80 bl 164f0 <__aeabi_dmul> 18bf0: 4602 mov r2, r0 18bf2: 460b mov r3, r1 18bf4: 4630 mov r0, r6 18bf6: 4639 mov r1, r7 18bf8: f7fd fac4 bl 16184 <__adddf3> 18bfc: 4606 mov r6, r0 18bfe: 460f mov r7, r1 18c00: f004 fff0 bl 1dbe4 <__aeabi_d2iz> 18c04: 2200 movs r2, #0 18c06: 4680 mov r8, r0 18c08: 9006 str r0, [sp, #24] 18c0a: 2300 movs r3, #0 18c0c: 4630 mov r0, r6 18c0e: 4639 mov r1, r7 18c10: f004 ffaa bl 1db68 <__aeabi_dcmplt> 18c14: 2800 cmp r0, #0 18c16: f040 8326 bne.w 19266 <_dtoa_r+0x776> 18c1a: 1b2d subs r5, r5, r4 18c1c: 9c06 ldr r4, [sp, #24] 18c1e: 1e6b subs r3, r5, #1 18c20: 2c16 cmp r4, #22 18c22: 9308 str r3, [sp, #32] 18c24: f200 8313 bhi.w 1924e <_dtoa_r+0x75e> 18c28: 4b38 ldr r3, [pc, #224] ; (18d0c <_dtoa_r+0x21c>) 18c2a: eb03 03c4 add.w r3, r3, r4, lsl #3 18c2e: e9d3 2300 ldrd r2, r3, [r3] 18c32: e9dd 010a ldrd r0, r1, [sp, #40] ; 0x28 18c36: f004 ff97 bl 1db68 <__aeabi_dcmplt> 18c3a: 2800 cmp r0, #0 18c3c: d06c beq.n 18d18 <_dtoa_r+0x228> 18c3e: 1e63 subs r3, r4, #1 18c40: 9306 str r3, [sp, #24] 18c42: 2300 movs r3, #0 18c44: 930f str r3, [sp, #60] ; 0x3c 18c46: 1e6b subs r3, r5, #1 18c48: 2b00 cmp r3, #0 18c4a: f2c0 8306 blt.w 1925a <_dtoa_r+0x76a> 18c4e: 2300 movs r3, #0 18c50: 930c str r3, [sp, #48] ; 0x30 18c52: 9b06 ldr r3, [sp, #24] 18c54: 2b00 cmp r3, #0 18c56: da65 bge.n 18d24 <_dtoa_r+0x234> 18c58: 9b06 ldr r3, [sp, #24] 18c5a: 9a0c ldr r2, [sp, #48] ; 0x30 18c5c: 930d str r3, [sp, #52] ; 0x34 18c5e: 1ad2 subs r2, r2, r3 18c60: f1c3 0900 rsb r9, r3, #0 18c64: 2300 movs r3, #0 18c66: 9306 str r3, [sp, #24] 18c68: 9b28 ldr r3, [sp, #160] ; 0xa0 18c6a: 920c str r2, [sp, #48] ; 0x30 18c6c: 2b09 cmp r3, #9 18c6e: d863 bhi.n 18d38 <_dtoa_r+0x248> 18c70: 2b05 cmp r3, #5 18c72: f340 831a ble.w 192aa <_dtoa_r+0x7ba> 18c76: 3b04 subs r3, #4 18c78: 9328 str r3, [sp, #160] ; 0xa0 18c7a: 2400 movs r4, #0 18c7c: 9b28 ldr r3, [sp, #160] ; 0xa0 18c7e: 3b02 subs r3, #2 18c80: 2b03 cmp r3, #3 18c82: f200 865a bhi.w 1993a <_dtoa_r+0xe4a> 18c86: e8df f013 tbh [pc, r3, lsl #1] 18c8a: 041e .short 0x041e 18c8c: 0412041b .word 0x0412041b 18c90: 03f3 .short 0x03f3 18c92: 9a2a ldr r2, [sp, #168] ; 0xa8 18c94: f3c8 0813 ubfx r8, r8, #0, #20 18c98: f242 730f movw r3, #9999 ; 0x270f 18c9c: ea58 0806 orrs.w r8, r8, r6 18ca0: 6013 str r3, [r2, #0] 18ca2: d11a bne.n 18cda <_dtoa_r+0x1ea> 18ca4: 9b2c ldr r3, [sp, #176] ; 0xb0 18ca6: 2b00 cmp r3, #0 18ca8: f000 8657 beq.w 1995a <_dtoa_r+0xe6a> 18cac: 4b18 ldr r3, [pc, #96] ; (18d10 <_dtoa_r+0x220>) 18cae: 9303 str r3, [sp, #12] 18cb0: 3308 adds r3, #8 18cb2: 9a2c ldr r2, [sp, #176] ; 0xb0 18cb4: 9803 ldr r0, [sp, #12] 18cb6: 6013 str r3, [r2, #0] 18cb8: b01f add sp, #124 ; 0x7c 18cba: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} 18cbe: e9dd 120a ldrd r1, r2, [sp, #40] ; 0x28 18cc2: f3c2 0313 ubfx r3, r2, #0, #20 18cc6: 4608 mov r0, r1 18cc8: f043 517f orr.w r1, r3, #1069547520 ; 0x3fc00000 18ccc: 9512 str r5, [sp, #72] ; 0x48 18cce: f2a4 34ff subw r4, r4, #1023 ; 0x3ff 18cd2: 9d1c ldr r5, [sp, #112] ; 0x70 18cd4: f441 1140 orr.w r1, r1, #3145728 ; 0x300000 18cd8: e772 b.n 18bc0 <_dtoa_r+0xd0> 18cda: 9b2c ldr r3, [sp, #176] ; 0xb0 18cdc: 2b00 cmp r3, #0 18cde: f040 83b5 bne.w 1944c <_dtoa_r+0x95c> 18ce2: 4b0c ldr r3, [pc, #48] ; (18d14 <_dtoa_r+0x224>) 18ce4: 9303 str r3, [sp, #12] 18ce6: e740 b.n 18b6a <_dtoa_r+0x7a> 18ce8: 636f4361 .word 0x636f4361 18cec: 3fd287a7 .word 0x3fd287a7 18cf0: 8b60c8b3 .word 0x8b60c8b3 18cf4: 3fc68a28 .word 0x3fc68a28 18cf8: 509f79fb .word 0x509f79fb 18cfc: 3fd34413 .word 0x3fd34413 18d00: 7ff00000 .word 0x7ff00000 18d04: 0002c07d .word 0x0002c07d 18d08: 3ff80000 .word 0x3ff80000 18d0c: 0002c200 .word 0x0002c200 18d10: 0002c0d0 .word 0x0002c0d0 18d14: 0002c0dc .word 0x0002c0dc 18d18: 1e6b subs r3, r5, #1 18d1a: 2b00 cmp r3, #0 18d1c: f2c0 847a blt.w 19614 <_dtoa_r+0xb24> 18d20: 900f str r0, [sp, #60] ; 0x3c 18d22: 900c str r0, [sp, #48] ; 0x30 18d24: 9b08 ldr r3, [sp, #32] 18d26: 9a06 ldr r2, [sp, #24] 18d28: 920d str r2, [sp, #52] ; 0x34 18d2a: 4413 add r3, r2 18d2c: 9308 str r3, [sp, #32] 18d2e: 9b28 ldr r3, [sp, #160] ; 0xa0 18d30: 2b09 cmp r3, #9 18d32: f04f 0900 mov.w r9, #0 18d36: d99b bls.n 18c70 <_dtoa_r+0x180> 18d38: 2300 movs r3, #0 18d3a: e9cd 3328 strd r3, r3, [sp, #160] ; 0xa0 18d3e: 2401 movs r4, #1 18d40: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff 18d44: 940e str r4, [sp, #56] ; 0x38 18d46: 9309 str r3, [sp, #36] ; 0x24 18d48: 9b09 ldr r3, [sp, #36] ; 0x24 18d4a: 9313 str r3, [sp, #76] ; 0x4c 18d4c: 2100 movs r1, #0 18d4e: f8ca 1044 str.w r1, [sl, #68] ; 0x44 18d52: 4650 mov r0, sl 18d54: f001 fc28 bl 1a5a8 <_Balloc> 18d58: 9003 str r0, [sp, #12] 18d5a: 2800 cmp r0, #0 18d5c: f000 85f6 beq.w 1994c <_dtoa_r+0xe5c> 18d60: 9b03 ldr r3, [sp, #12] 18d62: f8ca 3040 str.w r3, [sl, #64] ; 0x40 18d66: 9b09 ldr r3, [sp, #36] ; 0x24 18d68: 2b0e cmp r3, #14 18d6a: f200 80f9 bhi.w 18f60 <_dtoa_r+0x470> 18d6e: 2c00 cmp r4, #0 18d70: f000 80f6 beq.w 18f60 <_dtoa_r+0x470> 18d74: 990d ldr r1, [sp, #52] ; 0x34 18d76: 2900 cmp r1, #0 18d78: f340 844e ble.w 19618 <_dtoa_r+0xb28> 18d7c: 4bbb ldr r3, [pc, #748] ; (1906c <_dtoa_r+0x57c>) 18d7e: f001 020f and.w r2, r1, #15 18d82: eb03 03c2 add.w r3, r3, r2, lsl #3 18d86: 05c8 lsls r0, r1, #23 18d88: e9d3 4500 ldrd r4, r5, [r3] 18d8c: ea4f 1621 mov.w r6, r1, asr #4 18d90: f140 83dc bpl.w 1954c <_dtoa_r+0xa5c> 18d94: 4bb6 ldr r3, [pc, #728] ; (19070 <_dtoa_r+0x580>) 18d96: e9dd 010a ldrd r0, r1, [sp, #40] ; 0x28 18d9a: e9d3 2308 ldrd r2, r3, [r3, #32] 18d9e: f7fd fcd1 bl 16744 <__aeabi_ddiv> 18da2: e9cd 0110 strd r0, r1, [sp, #64] ; 0x40 18da6: f006 060f and.w r6, r6, #15 18daa: f04f 0803 mov.w r8, #3 18dae: b186 cbz r6, 18dd2 <_dtoa_r+0x2e2> 18db0: 4faf ldr r7, [pc, #700] ; (19070 <_dtoa_r+0x580>) 18db2: 07f1 lsls r1, r6, #31 18db4: d509 bpl.n 18dca <_dtoa_r+0x2da> 18db6: 4620 mov r0, r4 18db8: 4629 mov r1, r5 18dba: e9d7 2300 ldrd r2, r3, [r7] 18dbe: f7fd fb97 bl 164f0 <__aeabi_dmul> 18dc2: f108 0801 add.w r8, r8, #1 18dc6: 4604 mov r4, r0 18dc8: 460d mov r5, r1 18dca: 1076 asrs r6, r6, #1 18dcc: f107 0708 add.w r7, r7, #8 18dd0: d1ef bne.n 18db2 <_dtoa_r+0x2c2> 18dd2: e9dd 0110 ldrd r0, r1, [sp, #64] ; 0x40 18dd6: 4622 mov r2, r4 18dd8: 462b mov r3, r5 18dda: f7fd fcb3 bl 16744 <__aeabi_ddiv> 18dde: 4606 mov r6, r0 18de0: 460f mov r7, r1 18de2: 9b0f ldr r3, [sp, #60] ; 0x3c 18de4: b143 cbz r3, 18df8 <_dtoa_r+0x308> 18de6: 4ba3 ldr r3, [pc, #652] ; (19074 <_dtoa_r+0x584>) 18de8: 2200 movs r2, #0 18dea: 4630 mov r0, r6 18dec: 4639 mov r1, r7 18dee: f004 febb bl 1db68 <__aeabi_dcmplt> 18df2: 2800 cmp r0, #0 18df4: f040 851d bne.w 19832 <_dtoa_r+0xd42> 18df8: 4640 mov r0, r8 18dfa: f7fd fb0f bl 1641c <__aeabi_i2d> 18dfe: 4632 mov r2, r6 18e00: 463b mov r3, r7 18e02: f7fd fb75 bl 164f0 <__aeabi_dmul> 18e06: 4b9c ldr r3, [pc, #624] ; (19078 <_dtoa_r+0x588>) 18e08: 2200 movs r2, #0 18e0a: f7fd f9bb bl 16184 <__adddf3> 18e0e: f1a1 7350 sub.w r3, r1, #54525952 ; 0x3400000 18e12: e9cd 0114 strd r0, r1, [sp, #80] ; 0x50 18e16: 9315 str r3, [sp, #84] ; 0x54 18e18: 9b09 ldr r3, [sp, #36] ; 0x24 18e1a: 2b00 cmp r3, #0 18e1c: f000 83db beq.w 195d6 <_dtoa_r+0xae6> 18e20: 9b0d ldr r3, [sp, #52] ; 0x34 18e22: 931a str r3, [sp, #104] ; 0x68 18e24: 9b09 ldr r3, [sp, #36] ; 0x24 18e26: 9310 str r3, [sp, #64] ; 0x40 18e28: e9dd 3414 ldrd r3, r4, [sp, #80] ; 0x50 18e2c: 9903 ldr r1, [sp, #12] 18e2e: 4630 mov r0, r6 18e30: f101 0801 add.w r8, r1, #1 18e34: 4639 mov r1, r7 18e36: e9cd 3416 strd r3, r4, [sp, #88] ; 0x58 18e3a: f004 fed3 bl 1dbe4 <__aeabi_d2iz> 18e3e: f100 0330 add.w r3, r0, #48 ; 0x30 18e42: b2dc uxtb r4, r3 18e44: 9d10 ldr r5, [sp, #64] ; 0x40 18e46: 4b89 ldr r3, [pc, #548] ; (1906c <_dtoa_r+0x57c>) 18e48: 9414 str r4, [sp, #80] ; 0x50 18e4a: eb03 03c5 add.w r3, r3, r5, lsl #3 18e4e: e953 1202 ldrd r1, r2, [r3, #-8] 18e52: e9cd 1218 strd r1, r2, [sp, #96] ; 0x60 18e56: f7fd fae1 bl 1641c <__aeabi_i2d> 18e5a: 460b mov r3, r1 18e5c: 4602 mov r2, r0 18e5e: 4639 mov r1, r7 18e60: 4630 mov r0, r6 18e62: f7fd f98d bl 16180 <__aeabi_dsub> 18e66: 9b0e ldr r3, [sp, #56] ; 0x38 18e68: 4604 mov r4, r0 18e6a: 460d mov r5, r1 18e6c: 2b00 cmp r3, #0 18e6e: f000 848b beq.w 19788 <_dtoa_r+0xc98> 18e72: e9dd 2318 ldrd r2, r3, [sp, #96] ; 0x60 18e76: 4981 ldr r1, [pc, #516] ; (1907c <_dtoa_r+0x58c>) 18e78: 2000 movs r0, #0 18e7a: f7fd fc63 bl 16744 <__aeabi_ddiv> 18e7e: e9dd 2316 ldrd r2, r3, [sp, #88] ; 0x58 18e82: f7fd f97d bl 16180 <__aeabi_dsub> 18e86: 9f03 ldr r7, [sp, #12] 18e88: 9e14 ldr r6, [sp, #80] ; 0x50 18e8a: 703e strb r6, [r7, #0] 18e8c: 4602 mov r2, r0 18e8e: 460b mov r3, r1 18e90: e9cd 2314 strd r2, r3, [sp, #80] ; 0x50 18e94: 4622 mov r2, r4 18e96: 462b mov r3, r5 18e98: f004 fe84 bl 1dba4 <__aeabi_dcmpgt> 18e9c: 2800 cmp r0, #0 18e9e: f040 84c0 bne.w 19822 <_dtoa_r+0xd32> 18ea2: 2700 movs r7, #0 18ea4: f8cd 906c str.w r9, [sp, #108] ; 0x6c 18ea8: f8cd b058 str.w fp, [sp, #88] ; 0x58 18eac: f8cd a060 str.w sl, [sp, #96] ; 0x60 18eb0: 46b9 mov r9, r7 18eb2: e9dd ab14 ldrd sl, fp, [sp, #80] ; 0x50 18eb6: e02b b.n 18f10 <_dtoa_r+0x420> 18eb8: 9b10 ldr r3, [sp, #64] ; 0x40 18eba: f109 0901 add.w r9, r9, #1 18ebe: 4599 cmp r9, r3 18ec0: da48 bge.n 18f54 <_dtoa_r+0x464> 18ec2: 4b6f ldr r3, [pc, #444] ; (19080 <_dtoa_r+0x590>) 18ec4: 4650 mov r0, sl 18ec6: 4659 mov r1, fp 18ec8: 2200 movs r2, #0 18eca: f7fd fb11 bl 164f0 <__aeabi_dmul> 18ece: 4b6c ldr r3, [pc, #432] ; (19080 <_dtoa_r+0x590>) 18ed0: 2200 movs r2, #0 18ed2: 4682 mov sl, r0 18ed4: 468b mov fp, r1 18ed6: 4620 mov r0, r4 18ed8: 4629 mov r1, r5 18eda: f7fd fb09 bl 164f0 <__aeabi_dmul> 18ede: 460f mov r7, r1 18ee0: 4606 mov r6, r0 18ee2: f004 fe7f bl 1dbe4 <__aeabi_d2iz> 18ee6: 4605 mov r5, r0 18ee8: f7fd fa98 bl 1641c <__aeabi_i2d> 18eec: 4602 mov r2, r0 18eee: 460b mov r3, r1 18ef0: 4630 mov r0, r6 18ef2: 4639 mov r1, r7 18ef4: f7fd f944 bl 16180 <__aeabi_dsub> 18ef8: 3530 adds r5, #48 ; 0x30 18efa: f808 5b01 strb.w r5, [r8], #1 18efe: 4652 mov r2, sl 18f00: 465b mov r3, fp 18f02: 4604 mov r4, r0 18f04: 460d mov r5, r1 18f06: f004 fe2f bl 1db68 <__aeabi_dcmplt> 18f0a: 2800 cmp r0, #0 18f0c: f040 84e9 bne.w 198e2 <_dtoa_r+0xdf2> 18f10: 4622 mov r2, r4 18f12: 462b mov r3, r5 18f14: 4957 ldr r1, [pc, #348] ; (19074 <_dtoa_r+0x584>) 18f16: 2000 movs r0, #0 18f18: f7fd f932 bl 16180 <__aeabi_dsub> 18f1c: 4652 mov r2, sl 18f1e: 465b mov r3, fp 18f20: f004 fe22 bl 1db68 <__aeabi_dcmplt> 18f24: 2800 cmp r0, #0 18f26: d0c7 beq.n 18eb8 <_dtoa_r+0x3c8> 18f28: 9c1a ldr r4, [sp, #104] ; 0x68 18f2a: f8dd b058 ldr.w fp, [sp, #88] ; 0x58 18f2e: f8dd a060 ldr.w sl, [sp, #96] ; 0x60 18f32: 9a03 ldr r2, [sp, #12] 18f34: 4646 mov r6, r8 18f36: 3401 adds r4, #1 18f38: e002 b.n 18f40 <_dtoa_r+0x450> 18f3a: 42b2 cmp r2, r6 18f3c: f000 84a6 beq.w 1988c <_dtoa_r+0xd9c> 18f40: 46b0 mov r8, r6 18f42: f816 3d01 ldrb.w r3, [r6, #-1]! 18f46: 2b39 cmp r3, #57 ; 0x39 18f48: d0f7 beq.n 18f3a <_dtoa_r+0x44a> 18f4a: 3301 adds r3, #1 18f4c: b2db uxtb r3, r3 18f4e: 7033 strb r3, [r6, #0] 18f50: 9404 str r4, [sp, #16] 18f52: e168 b.n 19226 <_dtoa_r+0x736> 18f54: f8dd 906c ldr.w r9, [sp, #108] ; 0x6c 18f58: f8dd b058 ldr.w fp, [sp, #88] ; 0x58 18f5c: f8dd a060 ldr.w sl, [sp, #96] ; 0x60 18f60: 9b1d ldr r3, [sp, #116] ; 0x74 18f62: 2b00 cmp r3, #0 18f64: f2c0 8090 blt.w 19088 <_dtoa_r+0x598> 18f68: 9a0d ldr r2, [sp, #52] ; 0x34 18f6a: 2a0e cmp r2, #14 18f6c: f300 808c bgt.w 19088 <_dtoa_r+0x598> 18f70: 4b3e ldr r3, [pc, #248] ; (1906c <_dtoa_r+0x57c>) 18f72: eb03 03c2 add.w r3, r3, r2, lsl #3 18f76: e9d3 8900 ldrd r8, r9, [r3] 18f7a: 9b29 ldr r3, [sp, #164] ; 0xa4 18f7c: 2b00 cmp r3, #0 18f7e: da1b bge.n 18fb8 <_dtoa_r+0x4c8> 18f80: 9b09 ldr r3, [sp, #36] ; 0x24 18f82: 2b00 cmp r3, #0 18f84: dc18 bgt.n 18fb8 <_dtoa_r+0x4c8> 18f86: f040 8341 bne.w 1960c <_dtoa_r+0xb1c> 18f8a: 4b3e ldr r3, [pc, #248] ; (19084 <_dtoa_r+0x594>) 18f8c: 4649 mov r1, r9 18f8e: 2200 movs r2, #0 18f90: 4640 mov r0, r8 18f92: f7fd faad bl 164f0 <__aeabi_dmul> 18f96: 4602 mov r2, r0 18f98: 460b mov r3, r1 18f9a: e9dd 010a ldrd r0, r1, [sp, #40] ; 0x28 18f9e: f004 fded bl 1db7c <__aeabi_dcmple> 18fa2: f8dd 9024 ldr.w r9, [sp, #36] ; 0x24 18fa6: 464c mov r4, r9 18fa8: 2800 cmp r0, #0 18faa: f000 82a3 beq.w 194f4 <_dtoa_r+0xa04> 18fae: 9b29 ldr r3, [sp, #164] ; 0xa4 18fb0: f8dd 800c ldr.w r8, [sp, #12] 18fb4: 43df mvns r7, r3 18fb6: e2a4 b.n 19502 <_dtoa_r+0xa12> 18fb8: e9dd 450a ldrd r4, r5, [sp, #40] ; 0x28 18fbc: 4642 mov r2, r8 18fbe: 464b mov r3, r9 18fc0: 4620 mov r0, r4 18fc2: 4629 mov r1, r5 18fc4: f7fd fbbe bl 16744 <__aeabi_ddiv> 18fc8: f004 fe0c bl 1dbe4 <__aeabi_d2iz> 18fcc: 4607 mov r7, r0 18fce: f7fd fa25 bl 1641c <__aeabi_i2d> 18fd2: 4642 mov r2, r8 18fd4: 464b mov r3, r9 18fd6: f7fd fa8b bl 164f0 <__aeabi_dmul> 18fda: 9e03 ldr r6, [sp, #12] 18fdc: 460b mov r3, r1 18fde: 4602 mov r2, r0 18fe0: 4629 mov r1, r5 18fe2: 4620 mov r0, r4 18fe4: f7fd f8cc bl 16180 <__aeabi_dsub> 18fe8: f107 0330 add.w r3, r7, #48 ; 0x30 18fec: f806 3b01 strb.w r3, [r6], #1 18ff0: 9b09 ldr r3, [sp, #36] ; 0x24 18ff2: 2b01 cmp r3, #1 18ff4: f000 837d beq.w 196f2 <_dtoa_r+0xc02> 18ff8: f8cd a018 str.w sl, [sp, #24] 18ffc: 2701 movs r7, #1 18ffe: f8cd b010 str.w fp, [sp, #16] 19002: 469a mov sl, r3 19004: e01c b.n 19040 <_dtoa_r+0x550> 19006: 4642 mov r2, r8 19008: 464b mov r3, r9 1900a: 4620 mov r0, r4 1900c: 4629 mov r1, r5 1900e: f7fd fb99 bl 16744 <__aeabi_ddiv> 19012: f004 fde7 bl 1dbe4 <__aeabi_d2iz> 19016: 4683 mov fp, r0 19018: f7fd fa00 bl 1641c <__aeabi_i2d> 1901c: 4642 mov r2, r8 1901e: 464b mov r3, r9 19020: f7fd fa66 bl 164f0 <__aeabi_dmul> 19024: 3701 adds r7, #1 19026: 460b mov r3, r1 19028: 4602 mov r2, r0 1902a: 4629 mov r1, r5 1902c: 4620 mov r0, r4 1902e: f7fd f8a7 bl 16180 <__aeabi_dsub> 19032: f10b 0330 add.w r3, fp, #48 ; 0x30 19036: 4557 cmp r7, sl 19038: f806 3b01 strb.w r3, [r6], #1 1903c: f000 8354 beq.w 196e8 <_dtoa_r+0xbf8> 19040: 4b0f ldr r3, [pc, #60] ; (19080 <_dtoa_r+0x590>) 19042: 2200 movs r2, #0 19044: f7fd fa54 bl 164f0 <__aeabi_dmul> 19048: 2200 movs r2, #0 1904a: 2300 movs r3, #0 1904c: 4604 mov r4, r0 1904e: 460d mov r5, r1 19050: f004 fd80 bl 1db54 <__aeabi_dcmpeq> 19054: 2800 cmp r0, #0 19056: d0d6 beq.n 19006 <_dtoa_r+0x516> 19058: 9b0d ldr r3, [sp, #52] ; 0x34 1905a: f8dd b010 ldr.w fp, [sp, #16] 1905e: f8dd a018 ldr.w sl, [sp, #24] 19062: 3301 adds r3, #1 19064: 9304 str r3, [sp, #16] 19066: 46b0 mov r8, r6 19068: e0dd b.n 19226 <_dtoa_r+0x736> 1906a: bf00 nop 1906c: 0002c200 .word 0x0002c200 19070: 0002c1d8 .word 0x0002c1d8 19074: 3ff00000 .word 0x3ff00000 19078: 401c0000 .word 0x401c0000 1907c: 3fe00000 .word 0x3fe00000 19080: 40240000 .word 0x40240000 19084: 40140000 .word 0x40140000 19088: 9a0e ldr r2, [sp, #56] ; 0x38 1908a: 2a00 cmp r2, #0 1908c: f000 80ff beq.w 1928e <_dtoa_r+0x79e> 19090: 9a28 ldr r2, [sp, #160] ; 0xa0 19092: 2a01 cmp r2, #1 19094: f340 8279 ble.w 1958a <_dtoa_r+0xa9a> 19098: 9b09 ldr r3, [sp, #36] ; 0x24 1909a: 1e5e subs r6, r3, #1 1909c: 45b1 cmp r9, r6 1909e: f280 8241 bge.w 19524 <_dtoa_r+0xa34> 190a2: 9a06 ldr r2, [sp, #24] 190a4: eba6 0309 sub.w r3, r6, r9 190a8: 441a add r2, r3 190aa: 46b1 mov r9, r6 190ac: 9206 str r2, [sp, #24] 190ae: 2600 movs r6, #0 190b0: 9b09 ldr r3, [sp, #36] ; 0x24 190b2: 2b00 cmp r3, #0 190b4: f2c0 8352 blt.w 1975c <_dtoa_r+0xc6c> 190b8: 9a08 ldr r2, [sp, #32] 190ba: 441a add r2, r3 190bc: 9208 str r2, [sp, #32] 190be: 9a0c ldr r2, [sp, #48] ; 0x30 190c0: 4615 mov r5, r2 190c2: 441a add r2, r3 190c4: 920c str r2, [sp, #48] ; 0x30 190c6: 2101 movs r1, #1 190c8: 4650 mov r0, sl 190ca: f001 fb3d bl 1a748 <__i2b> 190ce: 4604 mov r4, r0 190d0: b165 cbz r5, 190ec <_dtoa_r+0x5fc> 190d2: 9908 ldr r1, [sp, #32] 190d4: 2900 cmp r1, #0 190d6: 460b mov r3, r1 190d8: dd08 ble.n 190ec <_dtoa_r+0x5fc> 190da: 9a0c ldr r2, [sp, #48] ; 0x30 190dc: 42a9 cmp r1, r5 190de: bfa8 it ge 190e0: 462b movge r3, r5 190e2: 1ad2 subs r2, r2, r3 190e4: 1aed subs r5, r5, r3 190e6: 1acb subs r3, r1, r3 190e8: 920c str r2, [sp, #48] ; 0x30 190ea: 9308 str r3, [sp, #32] 190ec: f1b9 0f00 cmp.w r9, #0 190f0: d00a beq.n 19108 <_dtoa_r+0x618> 190f2: 9b0e ldr r3, [sp, #56] ; 0x38 190f4: 2b00 cmp r3, #0 190f6: f000 82d3 beq.w 196a0 <_dtoa_r+0xbb0> 190fa: 2e00 cmp r6, #0 190fc: f300 8215 bgt.w 1952a <_dtoa_r+0xa3a> 19100: ebb9 0206 subs.w r2, r9, r6 19104: f040 833a bne.w 1977c <_dtoa_r+0xc8c> 19108: 2101 movs r1, #1 1910a: 4650 mov r0, sl 1910c: f001 fb1c bl 1a748 <__i2b> 19110: 9a06 ldr r2, [sp, #24] 19112: 2a00 cmp r2, #0 19114: 4681 mov r9, r0 19116: f300 80cf bgt.w 192b8 <_dtoa_r+0x7c8> 1911a: 9b28 ldr r3, [sp, #160] ; 0xa0 1911c: 2b01 cmp r3, #1 1911e: f340 819b ble.w 19458 <_dtoa_r+0x968> 19122: 2700 movs r7, #0 19124: 9b06 ldr r3, [sp, #24] 19126: 2001 movs r0, #1 19128: 2b00 cmp r3, #0 1912a: f040 80cf bne.w 192cc <_dtoa_r+0x7dc> 1912e: 9b08 ldr r3, [sp, #32] 19130: 4418 add r0, r3 19132: f010 001f ands.w r0, r0, #31 19136: f000 818d beq.w 19454 <_dtoa_r+0x964> 1913a: f1c0 0320 rsb r3, r0, #32 1913e: 2b04 cmp r3, #4 19140: f300 80a9 bgt.w 19296 <_dtoa_r+0x7a6> 19144: f040 8209 bne.w 1955a <_dtoa_r+0xa6a> 19148: 9b0c ldr r3, [sp, #48] ; 0x30 1914a: 2b00 cmp r3, #0 1914c: dd05 ble.n 1915a <_dtoa_r+0x66a> 1914e: 4659 mov r1, fp 19150: 461a mov r2, r3 19152: 4650 mov r0, sl 19154: f001 fc34 bl 1a9c0 <__lshift> 19158: 4683 mov fp, r0 1915a: 9b08 ldr r3, [sp, #32] 1915c: 2b00 cmp r3, #0 1915e: dd05 ble.n 1916c <_dtoa_r+0x67c> 19160: 4649 mov r1, r9 19162: 461a mov r2, r3 19164: 4650 mov r0, sl 19166: f001 fc2b bl 1a9c0 <__lshift> 1916a: 4681 mov r9, r0 1916c: 9b0f ldr r3, [sp, #60] ; 0x3c 1916e: 2b00 cmp r3, #0 19170: f040 8150 bne.w 19414 <_dtoa_r+0x924> 19174: 9b09 ldr r3, [sp, #36] ; 0x24 19176: 2b00 cmp r3, #0 19178: f340 8137 ble.w 193ea <_dtoa_r+0x8fa> 1917c: 9b0e ldr r3, [sp, #56] ; 0x38 1917e: 2b00 cmp r3, #0 19180: f040 80bb bne.w 192fa <_dtoa_r+0x80a> 19184: 9b0d ldr r3, [sp, #52] ; 0x34 19186: 3301 adds r3, #1 19188: 9304 str r3, [sp, #16] 1918a: 9e03 ldr r6, [sp, #12] 1918c: 9f09 ldr r7, [sp, #36] ; 0x24 1918e: 2501 movs r5, #1 19190: e007 b.n 191a2 <_dtoa_r+0x6b2> 19192: 4659 mov r1, fp 19194: 2300 movs r3, #0 19196: 220a movs r2, #10 19198: 4650 mov r0, sl 1919a: f001 fa35 bl 1a608 <__multadd> 1919e: 3501 adds r5, #1 191a0: 4683 mov fp, r0 191a2: 4649 mov r1, r9 191a4: 4658 mov r0, fp 191a6: f7ff fc0f bl 189c8 191aa: 42af cmp r7, r5 191ac: f100 0330 add.w r3, r0, #48 ; 0x30 191b0: f806 3b01 strb.w r3, [r6], #1 191b4: dced bgt.n 19192 <_dtoa_r+0x6a2> 191b6: 9a09 ldr r2, [sp, #36] ; 0x24 191b8: 2a00 cmp r2, #0 191ba: bfc8 it gt 191bc: 4615 movgt r5, r2 191be: 9a03 ldr r2, [sp, #12] 191c0: bfd8 it le 191c2: 2501 movle r5, #1 191c4: 4415 add r5, r2 191c6: 2200 movs r2, #0 191c8: 9206 str r2, [sp, #24] 191ca: 4659 mov r1, fp 191cc: 2201 movs r2, #1 191ce: 4650 mov r0, sl 191d0: 9308 str r3, [sp, #32] 191d2: f001 fbf5 bl 1a9c0 <__lshift> 191d6: 4649 mov r1, r9 191d8: 4683 mov fp, r0 191da: f001 fc69 bl 1aab0 <__mcmp> 191de: 2800 cmp r0, #0 191e0: f340 81c8 ble.w 19574 <_dtoa_r+0xa84> 191e4: f815 3c01 ldrb.w r3, [r5, #-1] 191e8: 9a03 ldr r2, [sp, #12] 191ea: 3d01 subs r5, #1 191ec: e004 b.n 191f8 <_dtoa_r+0x708> 191ee: 42aa cmp r2, r5 191f0: f000 81da beq.w 195a8 <_dtoa_r+0xab8> 191f4: f815 3d01 ldrb.w r3, [r5, #-1]! 191f8: 2b39 cmp r3, #57 ; 0x39 191fa: f105 0801 add.w r8, r5, #1 191fe: d0f6 beq.n 191ee <_dtoa_r+0x6fe> 19200: 3301 adds r3, #1 19202: 702b strb r3, [r5, #0] 19204: 4649 mov r1, r9 19206: 4650 mov r0, sl 19208: f001 f9f4 bl 1a5f4 <_Bfree> 1920c: b15c cbz r4, 19226 <_dtoa_r+0x736> 1920e: 9b06 ldr r3, [sp, #24] 19210: b12b cbz r3, 1921e <_dtoa_r+0x72e> 19212: 42a3 cmp r3, r4 19214: d003 beq.n 1921e <_dtoa_r+0x72e> 19216: 4619 mov r1, r3 19218: 4650 mov r0, sl 1921a: f001 f9eb bl 1a5f4 <_Bfree> 1921e: 4621 mov r1, r4 19220: 4650 mov r0, sl 19222: f001 f9e7 bl 1a5f4 <_Bfree> 19226: 4659 mov r1, fp 19228: 4650 mov r0, sl 1922a: f001 f9e3 bl 1a5f4 <_Bfree> 1922e: 2300 movs r3, #0 19230: f888 3000 strb.w r3, [r8] 19234: 9b2a ldr r3, [sp, #168] ; 0xa8 19236: 9a04 ldr r2, [sp, #16] 19238: 601a str r2, [r3, #0] 1923a: 9b2c ldr r3, [sp, #176] ; 0xb0 1923c: 2b00 cmp r3, #0 1923e: f43f ac94 beq.w 18b6a <_dtoa_r+0x7a> 19242: 9803 ldr r0, [sp, #12] 19244: f8c3 8000 str.w r8, [r3] 19248: b01f add sp, #124 ; 0x7c 1924a: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} 1924e: 2301 movs r3, #1 19250: 930f str r3, [sp, #60] ; 0x3c 19252: 1e6b subs r3, r5, #1 19254: 2b00 cmp r3, #0 19256: f6bf acfa bge.w 18c4e <_dtoa_r+0x15e> 1925a: f1c5 0301 rsb r3, r5, #1 1925e: 930c str r3, [sp, #48] ; 0x30 19260: 2300 movs r3, #0 19262: 9308 str r3, [sp, #32] 19264: e4f5 b.n 18c52 <_dtoa_r+0x162> 19266: 4640 mov r0, r8 19268: f7fd f8d8 bl 1641c <__aeabi_i2d> 1926c: 4632 mov r2, r6 1926e: 463b mov r3, r7 19270: f004 fc70 bl 1db54 <__aeabi_dcmpeq> 19274: 2800 cmp r0, #0 19276: f47f acd0 bne.w 18c1a <_dtoa_r+0x12a> 1927a: f108 33ff add.w r3, r8, #4294967295 ; 0xffffffff 1927e: 9306 str r3, [sp, #24] 19280: e4cb b.n 18c1a <_dtoa_r+0x12a> 19282: 4bba ldr r3, [pc, #744] ; (1956c <_dtoa_r+0xa7c>) 19284: 9303 str r3, [sp, #12] 19286: 9803 ldr r0, [sp, #12] 19288: b01f add sp, #124 ; 0x7c 1928a: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} 1928e: 9d0c ldr r5, [sp, #48] ; 0x30 19290: 9c0e ldr r4, [sp, #56] ; 0x38 19292: 464e mov r6, r9 19294: e71c b.n 190d0 <_dtoa_r+0x5e0> 19296: f1c0 001c rsb r0, r0, #28 1929a: 9b0c ldr r3, [sp, #48] ; 0x30 1929c: 4403 add r3, r0 1929e: 930c str r3, [sp, #48] ; 0x30 192a0: 9b08 ldr r3, [sp, #32] 192a2: 4403 add r3, r0 192a4: 4405 add r5, r0 192a6: 9308 str r3, [sp, #32] 192a8: e74e b.n 19148 <_dtoa_r+0x658> 192aa: 2401 movs r4, #1 192ac: e4e6 b.n 18c7c <_dtoa_r+0x18c> 192ae: f1c3 0320 rsb r3, r3, #32 192b2: fa06 f003 lsl.w r0, r6, r3 192b6: e47c b.n 18bb2 <_dtoa_r+0xc2> 192b8: 4601 mov r1, r0 192ba: 4650 mov r0, sl 192bc: f001 fb20 bl 1a900 <__pow5mult> 192c0: 9b28 ldr r3, [sp, #160] ; 0xa0 192c2: 2b01 cmp r3, #1 192c4: 4681 mov r9, r0 192c6: f340 81d3 ble.w 19670 <_dtoa_r+0xb80> 192ca: 2700 movs r7, #0 192cc: f8d9 3010 ldr.w r3, [r9, #16] 192d0: eb09 0383 add.w r3, r9, r3, lsl #2 192d4: 6918 ldr r0, [r3, #16] 192d6: f001 f9e7 bl 1a6a8 <__hi0bits> 192da: f1c0 0020 rsb r0, r0, #32 192de: e726 b.n 1912e <_dtoa_r+0x63e> 192e0: 4621 mov r1, r4 192e2: 2300 movs r3, #0 192e4: 220a movs r2, #10 192e6: 4650 mov r0, sl 192e8: f001 f98e bl 1a608 <__multadd> 192ec: 9b13 ldr r3, [sp, #76] ; 0x4c 192ee: 2b00 cmp r3, #0 192f0: 4604 mov r4, r0 192f2: f340 830f ble.w 19914 <_dtoa_r+0xe24> 192f6: 960d str r6, [sp, #52] ; 0x34 192f8: 9309 str r3, [sp, #36] ; 0x24 192fa: 2d00 cmp r5, #0 192fc: f300 810b bgt.w 19516 <_dtoa_r+0xa26> 19300: 2f00 cmp r7, #0 19302: f040 8214 bne.w 1972e <_dtoa_r+0xc3e> 19306: 4626 mov r6, r4 19308: 9b04 ldr r3, [sp, #16] 1930a: 9f03 ldr r7, [sp, #12] 1930c: 9909 ldr r1, [sp, #36] ; 0x24 1930e: f003 0201 and.w r2, r3, #1 19312: 1e7b subs r3, r7, #1 19314: 4419 add r1, r3 19316: 9b28 ldr r3, [sp, #160] ; 0xa0 19318: 920a str r2, [sp, #40] ; 0x28 1931a: 4313 orrs r3, r2 1931c: 9109 str r1, [sp, #36] ; 0x24 1931e: 930c str r3, [sp, #48] ; 0x30 19320: 4649 mov r1, r9 19322: 4658 mov r0, fp 19324: f7ff fb50 bl 189c8 19328: 4621 mov r1, r4 1932a: 9004 str r0, [sp, #16] 1932c: 4658 mov r0, fp 1932e: f001 fbbf bl 1aab0 <__mcmp> 19332: 4632 mov r2, r6 19334: 4680 mov r8, r0 19336: 4649 mov r1, r9 19338: 4650 mov r0, sl 1933a: f001 fbd9 bl 1aaf0 <__mdiff> 1933e: 9b04 ldr r3, [sp, #16] 19340: 68c2 ldr r2, [r0, #12] 19342: 4605 mov r5, r0 19344: 3330 adds r3, #48 ; 0x30 19346: 2a00 cmp r2, #0 19348: d141 bne.n 193ce <_dtoa_r+0x8de> 1934a: 4601 mov r1, r0 1934c: 4658 mov r0, fp 1934e: 9308 str r3, [sp, #32] 19350: f001 fbae bl 1aab0 <__mcmp> 19354: 4629 mov r1, r5 19356: 9006 str r0, [sp, #24] 19358: 4650 mov r0, sl 1935a: f001 f94b bl 1a5f4 <_Bfree> 1935e: 9a06 ldr r2, [sp, #24] 19360: 9b08 ldr r3, [sp, #32] 19362: b91a cbnz r2, 1936c <_dtoa_r+0x87c> 19364: 990c ldr r1, [sp, #48] ; 0x30 19366: 2900 cmp r1, #0 19368: f000 82c0 beq.w 198ec <_dtoa_r+0xdfc> 1936c: 1c79 adds r1, r7, #1 1936e: f1b8 0f00 cmp.w r8, #0 19372: 460d mov r5, r1 19374: f2c0 819b blt.w 196ae <_dtoa_r+0xbbe> 19378: 9828 ldr r0, [sp, #160] ; 0xa0 1937a: ea48 0800 orr.w r8, r8, r0 1937e: 980a ldr r0, [sp, #40] ; 0x28 19380: ea50 0808 orrs.w r8, r0, r8 19384: f000 8193 beq.w 196ae <_dtoa_r+0xbbe> 19388: 2a00 cmp r2, #0 1938a: f300 81eb bgt.w 19764 <_dtoa_r+0xc74> 1938e: 9a09 ldr r2, [sp, #36] ; 0x24 19390: 703b strb r3, [r7, #0] 19392: 4297 cmp r7, r2 19394: f000 81ec beq.w 19770 <_dtoa_r+0xc80> 19398: 4659 mov r1, fp 1939a: 2300 movs r3, #0 1939c: 220a movs r2, #10 1939e: 4650 mov r0, sl 193a0: f001 f932 bl 1a608 <__multadd> 193a4: 42b4 cmp r4, r6 193a6: 4683 mov fp, r0 193a8: 4621 mov r1, r4 193aa: f04f 0300 mov.w r3, #0 193ae: f04f 020a mov.w r2, #10 193b2: 4650 mov r0, sl 193b4: d013 beq.n 193de <_dtoa_r+0x8ee> 193b6: f001 f927 bl 1a608 <__multadd> 193ba: 4631 mov r1, r6 193bc: 4604 mov r4, r0 193be: 2300 movs r3, #0 193c0: 220a movs r2, #10 193c2: 4650 mov r0, sl 193c4: f001 f920 bl 1a608 <__multadd> 193c8: 462f mov r7, r5 193ca: 4606 mov r6, r0 193cc: e7a8 b.n 19320 <_dtoa_r+0x830> 193ce: 4601 mov r1, r0 193d0: 4650 mov r0, sl 193d2: 9306 str r3, [sp, #24] 193d4: f001 f90e bl 1a5f4 <_Bfree> 193d8: 9b06 ldr r3, [sp, #24] 193da: 2201 movs r2, #1 193dc: e7c6 b.n 1936c <_dtoa_r+0x87c> 193de: f001 f913 bl 1a608 <__multadd> 193e2: 462f mov r7, r5 193e4: 4604 mov r4, r0 193e6: 4606 mov r6, r0 193e8: e79a b.n 19320 <_dtoa_r+0x830> 193ea: 9b28 ldr r3, [sp, #160] ; 0xa0 193ec: 2b02 cmp r3, #2 193ee: dc70 bgt.n 194d2 <_dtoa_r+0x9e2> 193f0: 9b0e ldr r3, [sp, #56] ; 0x38 193f2: 2b00 cmp r3, #0 193f4: d181 bne.n 192fa <_dtoa_r+0x80a> 193f6: 9b0d ldr r3, [sp, #52] ; 0x34 193f8: 4649 mov r1, r9 193fa: 3301 adds r3, #1 193fc: 4658 mov r0, fp 193fe: 9304 str r3, [sp, #16] 19400: f7ff fae2 bl 189c8 19404: 9d03 ldr r5, [sp, #12] 19406: f100 0330 add.w r3, r0, #48 ; 0x30 1940a: 2200 movs r2, #0 1940c: f805 3b01 strb.w r3, [r5], #1 19410: 9206 str r2, [sp, #24] 19412: e6da b.n 191ca <_dtoa_r+0x6da> 19414: 4649 mov r1, r9 19416: 4658 mov r0, fp 19418: f001 fb4a bl 1aab0 <__mcmp> 1941c: 2800 cmp r0, #0 1941e: f6bf aea9 bge.w 19174 <_dtoa_r+0x684> 19422: 4659 mov r1, fp 19424: 2300 movs r3, #0 19426: 220a movs r2, #10 19428: 4650 mov r0, sl 1942a: f001 f8ed bl 1a608 <__multadd> 1942e: 9b0d ldr r3, [sp, #52] ; 0x34 19430: 1e5e subs r6, r3, #1 19432: 9b0e ldr r3, [sp, #56] ; 0x38 19434: 4683 mov fp, r0 19436: 2b00 cmp r3, #0 19438: f47f af52 bne.w 192e0 <_dtoa_r+0x7f0> 1943c: 9b13 ldr r3, [sp, #76] ; 0x4c 1943e: 2b00 cmp r3, #0 19440: f340 8260 ble.w 19904 <_dtoa_r+0xe14> 19444: 9a0d ldr r2, [sp, #52] ; 0x34 19446: 9204 str r2, [sp, #16] 19448: 9309 str r3, [sp, #36] ; 0x24 1944a: e69e b.n 1918a <_dtoa_r+0x69a> 1944c: 4b48 ldr r3, [pc, #288] ; (19570 <_dtoa_r+0xa80>) 1944e: 9303 str r3, [sp, #12] 19450: 3303 adds r3, #3 19452: e42e b.n 18cb2 <_dtoa_r+0x1c2> 19454: 201c movs r0, #28 19456: e720 b.n 1929a <_dtoa_r+0x7aa> 19458: e9dd 1204 ldrd r1, r2, [sp, #16] 1945c: 2900 cmp r1, #0 1945e: f47f ae60 bne.w 19122 <_dtoa_r+0x632> 19462: f3c2 0313 ubfx r3, r2, #0, #20 19466: 2b00 cmp r3, #0 19468: f000 810d beq.w 19686 <_dtoa_r+0xb96> 1946c: 9f04 ldr r7, [sp, #16] 1946e: e659 b.n 19124 <_dtoa_r+0x634> 19470: 2301 movs r3, #1 19472: 930e str r3, [sp, #56] ; 0x38 19474: 9b29 ldr r3, [sp, #164] ; 0xa4 19476: 9a0d ldr r2, [sp, #52] ; 0x34 19478: 4413 add r3, r2 1947a: 9313 str r3, [sp, #76] ; 0x4c 1947c: 3301 adds r3, #1 1947e: 2b01 cmp r3, #1 19480: 461d mov r5, r3 19482: 9309 str r3, [sp, #36] ; 0x24 19484: bfb8 it lt 19486: 2501 movlt r5, #1 19488: 2100 movs r1, #0 1948a: 2d17 cmp r5, #23 1948c: f8ca 1044 str.w r1, [sl, #68] ; 0x44 19490: f77f ac5f ble.w 18d52 <_dtoa_r+0x262> 19494: 2201 movs r2, #1 19496: 2304 movs r3, #4 19498: 005b lsls r3, r3, #1 1949a: f103 0014 add.w r0, r3, #20 1949e: 42a8 cmp r0, r5 194a0: 4611 mov r1, r2 194a2: f102 0201 add.w r2, r2, #1 194a6: d9f7 bls.n 19498 <_dtoa_r+0x9a8> 194a8: f8ca 1044 str.w r1, [sl, #68] ; 0x44 194ac: e451 b.n 18d52 <_dtoa_r+0x262> 194ae: 2301 movs r3, #1 194b0: 930e str r3, [sp, #56] ; 0x38 194b2: 9b29 ldr r3, [sp, #164] ; 0xa4 194b4: 2b00 cmp r3, #0 194b6: dd53 ble.n 19560 <_dtoa_r+0xa70> 194b8: 9313 str r3, [sp, #76] ; 0x4c 194ba: 9309 str r3, [sp, #36] ; 0x24 194bc: 461d mov r5, r3 194be: e7e3 b.n 19488 <_dtoa_r+0x998> 194c0: 2300 movs r3, #0 194c2: 930e str r3, [sp, #56] ; 0x38 194c4: e7d6 b.n 19474 <_dtoa_r+0x984> 194c6: 2300 movs r3, #0 194c8: 930e str r3, [sp, #56] ; 0x38 194ca: e7f2 b.n 194b2 <_dtoa_r+0x9c2> 194cc: 9b13 ldr r3, [sp, #76] ; 0x4c 194ce: 9309 str r3, [sp, #36] ; 0x24 194d0: 960d str r6, [sp, #52] ; 0x34 194d2: 9b09 ldr r3, [sp, #36] ; 0x24 194d4: 2b00 cmp r3, #0 194d6: f47f ad6a bne.w 18fae <_dtoa_r+0x4be> 194da: 4649 mov r1, r9 194dc: 2205 movs r2, #5 194de: 4650 mov r0, sl 194e0: f001 f892 bl 1a608 <__multadd> 194e4: 4601 mov r1, r0 194e6: 4681 mov r9, r0 194e8: 4658 mov r0, fp 194ea: f001 fae1 bl 1aab0 <__mcmp> 194ee: 2800 cmp r0, #0 194f0: f77f ad5d ble.w 18fae <_dtoa_r+0x4be> 194f4: f8dd 800c ldr.w r8, [sp, #12] 194f8: 9f0d ldr r7, [sp, #52] ; 0x34 194fa: 2331 movs r3, #49 ; 0x31 194fc: f808 3b01 strb.w r3, [r8], #1 19500: 3701 adds r7, #1 19502: 1c7b adds r3, r7, #1 19504: 4649 mov r1, r9 19506: 4650 mov r0, sl 19508: 9304 str r3, [sp, #16] 1950a: f001 f873 bl 1a5f4 <_Bfree> 1950e: 2c00 cmp r4, #0 19510: f47f ae85 bne.w 1921e <_dtoa_r+0x72e> 19514: e687 b.n 19226 <_dtoa_r+0x736> 19516: 4621 mov r1, r4 19518: 462a mov r2, r5 1951a: 4650 mov r0, sl 1951c: f001 fa50 bl 1a9c0 <__lshift> 19520: 4604 mov r4, r0 19522: e6ed b.n 19300 <_dtoa_r+0x810> 19524: eba9 0606 sub.w r6, r9, r6 19528: e5c2 b.n 190b0 <_dtoa_r+0x5c0> 1952a: 4621 mov r1, r4 1952c: 4632 mov r2, r6 1952e: 4650 mov r0, sl 19530: f001 f9e6 bl 1a900 <__pow5mult> 19534: 465a mov r2, fp 19536: 4601 mov r1, r0 19538: 4604 mov r4, r0 1953a: 4650 mov r0, sl 1953c: f001 f932 bl 1a7a4 <__multiply> 19540: 4659 mov r1, fp 19542: 4683 mov fp, r0 19544: 4650 mov r0, sl 19546: f001 f855 bl 1a5f4 <_Bfree> 1954a: e5d9 b.n 19100 <_dtoa_r+0x610> 1954c: e9dd 230a ldrd r2, r3, [sp, #40] ; 0x28 19550: f04f 0802 mov.w r8, #2 19554: e9cd 2310 strd r2, r3, [sp, #64] ; 0x40 19558: e429 b.n 18dae <_dtoa_r+0x2be> 1955a: f1c0 003c rsb r0, r0, #60 ; 0x3c 1955e: e69c b.n 1929a <_dtoa_r+0x7aa> 19560: 2301 movs r3, #1 19562: 9329 str r3, [sp, #164] ; 0xa4 19564: 9309 str r3, [sp, #36] ; 0x24 19566: f7ff bbef b.w 18d48 <_dtoa_r+0x258> 1956a: bf00 nop 1956c: 0002c07c .word 0x0002c07c 19570: 0002c0dc .word 0x0002c0dc 19574: d103 bne.n 1957e <_dtoa_r+0xa8e> 19576: 9b08 ldr r3, [sp, #32] 19578: 07db lsls r3, r3, #31 1957a: f53f ae33 bmi.w 191e4 <_dtoa_r+0x6f4> 1957e: 46a8 mov r8, r5 19580: f815 3d01 ldrb.w r3, [r5, #-1]! 19584: 2b30 cmp r3, #48 ; 0x30 19586: d0fa beq.n 1957e <_dtoa_r+0xa8e> 19588: e63c b.n 19204 <_dtoa_r+0x714> 1958a: 9a12 ldr r2, [sp, #72] ; 0x48 1958c: 2a00 cmp r2, #0 1958e: f000 814c beq.w 1982a <_dtoa_r+0xd3a> 19592: f203 4333 addw r3, r3, #1075 ; 0x433 19596: 9a08 ldr r2, [sp, #32] 19598: 441a add r2, r3 1959a: 9208 str r2, [sp, #32] 1959c: 9a0c ldr r2, [sp, #48] ; 0x30 1959e: 4615 mov r5, r2 195a0: 441a add r2, r3 195a2: 920c str r2, [sp, #48] ; 0x30 195a4: 464e mov r6, r9 195a6: e58e b.n 190c6 <_dtoa_r+0x5d6> 195a8: 9b04 ldr r3, [sp, #16] 195aa: 9a03 ldr r2, [sp, #12] 195ac: 3301 adds r3, #1 195ae: 9304 str r3, [sp, #16] 195b0: 2331 movs r3, #49 ; 0x31 195b2: 7013 strb r3, [r2, #0] 195b4: e626 b.n 19204 <_dtoa_r+0x714> 195b6: 4640 mov r0, r8 195b8: f7fc ff30 bl 1641c <__aeabi_i2d> 195bc: 4632 mov r2, r6 195be: 463b mov r3, r7 195c0: f7fc ff96 bl 164f0 <__aeabi_dmul> 195c4: 4bb8 ldr r3, [pc, #736] ; (198a8 <_dtoa_r+0xdb8>) 195c6: 2200 movs r2, #0 195c8: f7fc fddc bl 16184 <__adddf3> 195cc: f1a1 7350 sub.w r3, r1, #54525952 ; 0x3400000 195d0: e9cd 0114 strd r0, r1, [sp, #80] ; 0x50 195d4: 9315 str r3, [sp, #84] ; 0x54 195d6: 4bb5 ldr r3, [pc, #724] ; (198ac <_dtoa_r+0xdbc>) 195d8: 4639 mov r1, r7 195da: 2200 movs r2, #0 195dc: 4630 mov r0, r6 195de: f7fc fdcf bl 16180 <__aeabi_dsub> 195e2: e9dd 7814 ldrd r7, r8, [sp, #80] ; 0x50 195e6: 463a mov r2, r7 195e8: 4643 mov r3, r8 195ea: 4604 mov r4, r0 195ec: 460d mov r5, r1 195ee: f004 fad9 bl 1dba4 <__aeabi_dcmpgt> 195f2: 2800 cmp r0, #0 195f4: f040 8166 bne.w 198c4 <_dtoa_r+0xdd4> 195f8: 463a mov r2, r7 195fa: f108 4300 add.w r3, r8, #2147483648 ; 0x80000000 195fe: 4620 mov r0, r4 19600: 4629 mov r1, r5 19602: f004 fab1 bl 1db68 <__aeabi_dcmplt> 19606: 2800 cmp r0, #0 19608: f43f acaa beq.w 18f60 <_dtoa_r+0x470> 1960c: f04f 0900 mov.w r9, #0 19610: 464c mov r4, r9 19612: e4cc b.n 18fae <_dtoa_r+0x4be> 19614: 900f str r0, [sp, #60] ; 0x3c 19616: e620 b.n 1925a <_dtoa_r+0x76a> 19618: f000 8132 beq.w 19880 <_dtoa_r+0xd90> 1961c: 9a0d ldr r2, [sp, #52] ; 0x34 1961e: 4ba4 ldr r3, [pc, #656] ; (198b0 <_dtoa_r+0xdc0>) 19620: 4254 negs r4, r2 19622: f004 020f and.w r2, r4, #15 19626: eb03 03c2 add.w r3, r3, r2, lsl #3 1962a: e9d3 2300 ldrd r2, r3, [r3] 1962e: e9dd 010a ldrd r0, r1, [sp, #40] ; 0x28 19632: f7fc ff5d bl 164f0 <__aeabi_dmul> 19636: 1124 asrs r4, r4, #4 19638: 4606 mov r6, r0 1963a: 460f mov r7, r1 1963c: f000 8172 beq.w 19924 <_dtoa_r+0xe34> 19640: 4d9c ldr r5, [pc, #624] ; (198b4 <_dtoa_r+0xdc4>) 19642: 2300 movs r3, #0 19644: f04f 0802 mov.w r8, #2 19648: 07e2 lsls r2, r4, #31 1964a: d506 bpl.n 1965a <_dtoa_r+0xb6a> 1964c: e9d5 2300 ldrd r2, r3, [r5] 19650: f7fc ff4e bl 164f0 <__aeabi_dmul> 19654: f108 0801 add.w r8, r8, #1 19658: 2301 movs r3, #1 1965a: 1064 asrs r4, r4, #1 1965c: f105 0508 add.w r5, r5, #8 19660: d1f2 bne.n 19648 <_dtoa_r+0xb58> 19662: 2b00 cmp r3, #0 19664: f43f abbd beq.w 18de2 <_dtoa_r+0x2f2> 19668: 4606 mov r6, r0 1966a: 460f mov r7, r1 1966c: f7ff bbb9 b.w 18de2 <_dtoa_r+0x2f2> 19670: 9b04 ldr r3, [sp, #16] 19672: 2b00 cmp r3, #0 19674: f47f ae29 bne.w 192ca <_dtoa_r+0x7da> 19678: e9dd 1204 ldrd r1, r2, [sp, #16] 1967c: f3c2 0313 ubfx r3, r2, #0, #20 19680: 2b00 cmp r3, #0 19682: f47f ae22 bne.w 192ca <_dtoa_r+0x7da> 19686: 4f8c ldr r7, [pc, #560] ; (198b8 <_dtoa_r+0xdc8>) 19688: 4017 ands r7, r2 1968a: 2f00 cmp r7, #0 1968c: f43f ad4a beq.w 19124 <_dtoa_r+0x634> 19690: 9b0c ldr r3, [sp, #48] ; 0x30 19692: 3301 adds r3, #1 19694: 930c str r3, [sp, #48] ; 0x30 19696: 9b08 ldr r3, [sp, #32] 19698: 3301 adds r3, #1 1969a: 9308 str r3, [sp, #32] 1969c: 2701 movs r7, #1 1969e: e541 b.n 19124 <_dtoa_r+0x634> 196a0: 4659 mov r1, fp 196a2: 464a mov r2, r9 196a4: 4650 mov r0, sl 196a6: f001 f92b bl 1a900 <__pow5mult> 196aa: 4683 mov fp, r0 196ac: e52c b.n 19108 <_dtoa_r+0x618> 196ae: 2a00 cmp r2, #0 196b0: 4688 mov r8, r1 196b2: dd12 ble.n 196da <_dtoa_r+0xbea> 196b4: 4659 mov r1, fp 196b6: 2201 movs r2, #1 196b8: 4650 mov r0, sl 196ba: 9306 str r3, [sp, #24] 196bc: f001 f980 bl 1a9c0 <__lshift> 196c0: 4649 mov r1, r9 196c2: 4683 mov fp, r0 196c4: f001 f9f4 bl 1aab0 <__mcmp> 196c8: 2800 cmp r0, #0 196ca: 9b06 ldr r3, [sp, #24] 196cc: f340 8103 ble.w 198d6 <_dtoa_r+0xde6> 196d0: 2b39 cmp r3, #57 ; 0x39 196d2: f000 80e0 beq.w 19896 <_dtoa_r+0xda6> 196d6: 9b04 ldr r3, [sp, #16] 196d8: 3331 adds r3, #49 ; 0x31 196da: 703b strb r3, [r7, #0] 196dc: 9b0d ldr r3, [sp, #52] ; 0x34 196de: 9406 str r4, [sp, #24] 196e0: 3301 adds r3, #1 196e2: 9304 str r3, [sp, #16] 196e4: 4634 mov r4, r6 196e6: e58d b.n 19204 <_dtoa_r+0x714> 196e8: 465f mov r7, fp 196ea: f8dd a018 ldr.w sl, [sp, #24] 196ee: f8dd b010 ldr.w fp, [sp, #16] 196f2: 9b0d ldr r3, [sp, #52] ; 0x34 196f4: 3301 adds r3, #1 196f6: 9304 str r3, [sp, #16] 196f8: 4602 mov r2, r0 196fa: 461c mov r4, r3 196fc: 460b mov r3, r1 196fe: f7fc fd41 bl 16184 <__adddf3> 19702: 4602 mov r2, r0 19704: 460b mov r3, r1 19706: e9cd 2306 strd r2, r3, [sp, #24] 1970a: 4642 mov r2, r8 1970c: 464b mov r3, r9 1970e: f004 fa49 bl 1dba4 <__aeabi_dcmpgt> 19712: b940 cbnz r0, 19726 <_dtoa_r+0xc36> 19714: e9dd 0106 ldrd r0, r1, [sp, #24] 19718: 4642 mov r2, r8 1971a: 464b mov r3, r9 1971c: f004 fa1a bl 1db54 <__aeabi_dcmpeq> 19720: b118 cbz r0, 1972a <_dtoa_r+0xc3a> 19722: 07f9 lsls r1, r7, #31 19724: d501 bpl.n 1972a <_dtoa_r+0xc3a> 19726: 9a03 ldr r2, [sp, #12] 19728: e40a b.n 18f40 <_dtoa_r+0x450> 1972a: 46b0 mov r8, r6 1972c: e57b b.n 19226 <_dtoa_r+0x736> 1972e: 6861 ldr r1, [r4, #4] 19730: 4650 mov r0, sl 19732: f000 ff39 bl 1a5a8 <_Balloc> 19736: 4605 mov r5, r0 19738: 2800 cmp r0, #0 1973a: f000 80f7 beq.w 1992c <_dtoa_r+0xe3c> 1973e: 6923 ldr r3, [r4, #16] 19740: 3302 adds r3, #2 19742: 009a lsls r2, r3, #2 19744: f104 010c add.w r1, r4, #12 19748: 300c adds r0, #12 1974a: f7fd fabf bl 16ccc 1974e: 4629 mov r1, r5 19750: 2201 movs r2, #1 19752: 4650 mov r0, sl 19754: f001 f934 bl 1a9c0 <__lshift> 19758: 4606 mov r6, r0 1975a: e5d5 b.n 19308 <_dtoa_r+0x818> 1975c: 9b0c ldr r3, [sp, #48] ; 0x30 1975e: 9a09 ldr r2, [sp, #36] ; 0x24 19760: 1a9d subs r5, r3, r2 19762: e4b0 b.n 190c6 <_dtoa_r+0x5d6> 19764: 2b39 cmp r3, #57 ; 0x39 19766: 4688 mov r8, r1 19768: f000 8095 beq.w 19896 <_dtoa_r+0xda6> 1976c: 3301 adds r3, #1 1976e: e7b4 b.n 196da <_dtoa_r+0xbea> 19770: 9a0d ldr r2, [sp, #52] ; 0x34 19772: 9406 str r4, [sp, #24] 19774: 3201 adds r2, #1 19776: 9204 str r2, [sp, #16] 19778: 4634 mov r4, r6 1977a: e526 b.n 191ca <_dtoa_r+0x6da> 1977c: 4659 mov r1, fp 1977e: 4650 mov r0, sl 19780: f001 f8be bl 1a900 <__pow5mult> 19784: 4683 mov fp, r0 19786: e4bf b.n 19108 <_dtoa_r+0x618> 19788: e9dd 2318 ldrd r2, r3, [sp, #96] ; 0x60 1978c: e9dd 0116 ldrd r0, r1, [sp, #88] ; 0x58 19790: f7fc feae bl 164f0 <__aeabi_dmul> 19794: 9a03 ldr r2, [sp, #12] 19796: 9b14 ldr r3, [sp, #80] ; 0x50 19798: 7013 strb r3, [r2, #0] 1979a: 9b10 ldr r3, [sp, #64] ; 0x40 1979c: 2b01 cmp r3, #1 1979e: e9cd 0114 strd r0, r1, [sp, #80] ; 0x50 197a2: f000 80b5 beq.w 19910 <_dtoa_r+0xe20> 197a6: 9e10 ldr r6, [sp, #64] ; 0x40 197a8: 9b03 ldr r3, [sp, #12] 197aa: 441e add r6, r3 197ac: 4b43 ldr r3, [pc, #268] ; (198bc <_dtoa_r+0xdcc>) 197ae: 2200 movs r2, #0 197b0: 4620 mov r0, r4 197b2: 4629 mov r1, r5 197b4: f7fc fe9c bl 164f0 <__aeabi_dmul> 197b8: 460d mov r5, r1 197ba: 4604 mov r4, r0 197bc: f004 fa12 bl 1dbe4 <__aeabi_d2iz> 197c0: 4607 mov r7, r0 197c2: f7fc fe2b bl 1641c <__aeabi_i2d> 197c6: 3730 adds r7, #48 ; 0x30 197c8: 4602 mov r2, r0 197ca: 460b mov r3, r1 197cc: 4620 mov r0, r4 197ce: 4629 mov r1, r5 197d0: f7fc fcd6 bl 16180 <__aeabi_dsub> 197d4: f808 7b01 strb.w r7, [r8], #1 197d8: 45b0 cmp r8, r6 197da: 4604 mov r4, r0 197dc: 460d mov r5, r1 197de: d1e5 bne.n 197ac <_dtoa_r+0xcbc> 197e0: e9dd 7814 ldrd r7, r8, [sp, #80] ; 0x50 197e4: 4b36 ldr r3, [pc, #216] ; (198c0 <_dtoa_r+0xdd0>) 197e6: 2200 movs r2, #0 197e8: 4638 mov r0, r7 197ea: 4641 mov r1, r8 197ec: f7fc fcca bl 16184 <__adddf3> 197f0: 4622 mov r2, r4 197f2: 462b mov r3, r5 197f4: f004 f9b8 bl 1db68 <__aeabi_dcmplt> 197f8: 2800 cmp r0, #0 197fa: d167 bne.n 198cc <_dtoa_r+0xddc> 197fc: 463a mov r2, r7 197fe: 4643 mov r3, r8 19800: 492f ldr r1, [pc, #188] ; (198c0 <_dtoa_r+0xdd0>) 19802: 2000 movs r0, #0 19804: f7fc fcbc bl 16180 <__aeabi_dsub> 19808: 4622 mov r2, r4 1980a: 462b mov r3, r5 1980c: f004 f9ca bl 1dba4 <__aeabi_dcmpgt> 19810: 2800 cmp r0, #0 19812: f43f aba5 beq.w 18f60 <_dtoa_r+0x470> 19816: 46b0 mov r8, r6 19818: 3e01 subs r6, #1 1981a: f818 3c01 ldrb.w r3, [r8, #-1] 1981e: 2b30 cmp r3, #48 ; 0x30 19820: d0f9 beq.n 19816 <_dtoa_r+0xd26> 19822: 9b1a ldr r3, [sp, #104] ; 0x68 19824: 3301 adds r3, #1 19826: 9304 str r3, [sp, #16] 19828: e4fd b.n 19226 <_dtoa_r+0x736> 1982a: 9b1c ldr r3, [sp, #112] ; 0x70 1982c: f1c3 0336 rsb r3, r3, #54 ; 0x36 19830: e6b1 b.n 19596 <_dtoa_r+0xaa6> 19832: 9b09 ldr r3, [sp, #36] ; 0x24 19834: 2b00 cmp r3, #0 19836: f43f aebe beq.w 195b6 <_dtoa_r+0xac6> 1983a: 9b13 ldr r3, [sp, #76] ; 0x4c 1983c: 2b00 cmp r3, #0 1983e: f77f ab8f ble.w 18f60 <_dtoa_r+0x470> 19842: 9a0d ldr r2, [sp, #52] ; 0x34 19844: 9310 str r3, [sp, #64] ; 0x40 19846: 3a01 subs r2, #1 19848: 4b1c ldr r3, [pc, #112] ; (198bc <_dtoa_r+0xdcc>) 1984a: 921a str r2, [sp, #104] ; 0x68 1984c: 4630 mov r0, r6 1984e: 2200 movs r2, #0 19850: 4639 mov r1, r7 19852: f7fc fe4d bl 164f0 <__aeabi_dmul> 19856: 4606 mov r6, r0 19858: 460f mov r7, r1 1985a: f108 0001 add.w r0, r8, #1 1985e: f7fc fddd bl 1641c <__aeabi_i2d> 19862: 4632 mov r2, r6 19864: 463b mov r3, r7 19866: f7fc fe43 bl 164f0 <__aeabi_dmul> 1986a: 4b0f ldr r3, [pc, #60] ; (198a8 <_dtoa_r+0xdb8>) 1986c: 2200 movs r2, #0 1986e: f7fc fc89 bl 16184 <__adddf3> 19872: f1a1 7350 sub.w r3, r1, #54525952 ; 0x3400000 19876: e9cd 0114 strd r0, r1, [sp, #80] ; 0x50 1987a: 9315 str r3, [sp, #84] ; 0x54 1987c: f7ff bad4 b.w 18e28 <_dtoa_r+0x338> 19880: e9dd 670a ldrd r6, r7, [sp, #40] ; 0x28 19884: f04f 0802 mov.w r8, #2 19888: f7ff baab b.w 18de2 <_dtoa_r+0x2f2> 1988c: 3401 adds r4, #1 1988e: 2331 movs r3, #49 ; 0x31 19890: f7ff bb5d b.w 18f4e <_dtoa_r+0x45e> 19894: 1c7d adds r5, r7, #1 19896: 9b0d ldr r3, [sp, #52] ; 0x34 19898: 9406 str r4, [sp, #24] 1989a: 3301 adds r3, #1 1989c: 9304 str r3, [sp, #16] 1989e: 2339 movs r3, #57 ; 0x39 198a0: 4634 mov r4, r6 198a2: 703b strb r3, [r7, #0] 198a4: e4a0 b.n 191e8 <_dtoa_r+0x6f8> 198a6: bf00 nop 198a8: 401c0000 .word 0x401c0000 198ac: 40140000 .word 0x40140000 198b0: 0002c200 .word 0x0002c200 198b4: 0002c1d8 .word 0x0002c1d8 198b8: 7ff00000 .word 0x7ff00000 198bc: 40240000 .word 0x40240000 198c0: 3fe00000 .word 0x3fe00000 198c4: f04f 0900 mov.w r9, #0 198c8: 464c mov r4, r9 198ca: e613 b.n 194f4 <_dtoa_r+0xa04> 198cc: 9c1a ldr r4, [sp, #104] ; 0x68 198ce: 9a03 ldr r2, [sp, #12] 198d0: 3401 adds r4, #1 198d2: f7ff bb35 b.w 18f40 <_dtoa_r+0x450> 198d6: f47f af00 bne.w 196da <_dtoa_r+0xbea> 198da: 07da lsls r2, r3, #31 198dc: f57f aefd bpl.w 196da <_dtoa_r+0xbea> 198e0: e6f6 b.n 196d0 <_dtoa_r+0xbe0> 198e2: f8dd b058 ldr.w fp, [sp, #88] ; 0x58 198e6: f8dd a060 ldr.w sl, [sp, #96] ; 0x60 198ea: e79a b.n 19822 <_dtoa_r+0xd32> 198ec: 2b39 cmp r3, #57 ; 0x39 198ee: 4642 mov r2, r8 198f0: d0d0 beq.n 19894 <_dtoa_r+0xda4> 198f2: 2a00 cmp r2, #0 198f4: bfc8 it gt 198f6: 9b04 ldrgt r3, [sp, #16] 198f8: 46b8 mov r8, r7 198fa: bfc8 it gt 198fc: 3331 addgt r3, #49 ; 0x31 198fe: f808 3b01 strb.w r3, [r8], #1 19902: e6eb b.n 196dc <_dtoa_r+0xbec> 19904: 9b28 ldr r3, [sp, #160] ; 0xa0 19906: 2b02 cmp r3, #2 19908: f73f ade0 bgt.w 194cc <_dtoa_r+0x9dc> 1990c: 960d str r6, [sp, #52] ; 0x34 1990e: e572 b.n 193f6 <_dtoa_r+0x906> 19910: 4646 mov r6, r8 19912: e765 b.n 197e0 <_dtoa_r+0xcf0> 19914: 9b28 ldr r3, [sp, #160] ; 0xa0 19916: 2b02 cmp r3, #2 19918: f73f add8 bgt.w 194cc <_dtoa_r+0x9dc> 1991c: 9b13 ldr r3, [sp, #76] ; 0x4c 1991e: 960d str r6, [sp, #52] ; 0x34 19920: 9309 str r3, [sp, #36] ; 0x24 19922: e4ea b.n 192fa <_dtoa_r+0x80a> 19924: f04f 0802 mov.w r8, #2 19928: f7ff ba5b b.w 18de2 <_dtoa_r+0x2f2> 1992c: 4b13 ldr r3, [pc, #76] ; (1997c <_dtoa_r+0xe8c>) 1992e: 4814 ldr r0, [pc, #80] ; (19980 <_dtoa_r+0xe90>) 19930: 462a mov r2, r5 19932: f240 21ea movw r1, #746 ; 0x2ea 19936: f002 f8df bl 1baf8 <__assert_func> 1993a: 2400 movs r4, #0 1993c: f8ca 4044 str.w r4, [sl, #68] ; 0x44 19940: 4621 mov r1, r4 19942: 4650 mov r0, sl 19944: f000 fe30 bl 1a5a8 <_Balloc> 19948: 9003 str r0, [sp, #12] 1994a: b950 cbnz r0, 19962 <_dtoa_r+0xe72> 1994c: 4b0b ldr r3, [pc, #44] ; (1997c <_dtoa_r+0xe8c>) 1994e: 480c ldr r0, [pc, #48] ; (19980 <_dtoa_r+0xe90>) 19950: 2200 movs r2, #0 19952: f44f 71d5 mov.w r1, #426 ; 0x1aa 19956: f002 f8cf bl 1baf8 <__assert_func> 1995a: 4b0a ldr r3, [pc, #40] ; (19984 <_dtoa_r+0xe94>) 1995c: 9303 str r3, [sp, #12] 1995e: f7ff b904 b.w 18b6a <_dtoa_r+0x7a> 19962: 9b03 ldr r3, [sp, #12] 19964: f8ca 3040 str.w r3, [sl, #64] ; 0x40 19968: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff 1996c: 9313 str r3, [sp, #76] ; 0x4c 1996e: 9309 str r3, [sp, #36] ; 0x24 19970: 2301 movs r3, #1 19972: 9429 str r4, [sp, #164] ; 0xa4 19974: 930e str r3, [sp, #56] ; 0x38 19976: f7ff baf3 b.w 18f60 <_dtoa_r+0x470> 1997a: bf00 nop 1997c: 0002c0e0 .word 0x0002c0e0 19980: 0002c0f4 .word 0x0002c0f4 19984: 0002c0d0 .word 0x0002c0d0 00019988 <__sflush_r>: 19988: f9b1 200c ldrsh.w r2, [r1, #12] 1998c: b5f8 push {r3, r4, r5, r6, r7, lr} 1998e: 460c mov r4, r1 19990: 0711 lsls r1, r2, #28 19992: 4607 mov r7, r0 19994: d443 bmi.n 19a1e <__sflush_r+0x96> 19996: 6863 ldr r3, [r4, #4] 19998: f442 6200 orr.w r2, r2, #2048 ; 0x800 1999c: 2b00 cmp r3, #0 1999e: 81a2 strh r2, [r4, #12] 199a0: dd5a ble.n 19a58 <__sflush_r+0xd0> 199a2: 6aa5 ldr r5, [r4, #40] ; 0x28 199a4: 2d00 cmp r5, #0 199a6: d055 beq.n 19a54 <__sflush_r+0xcc> 199a8: 2300 movs r3, #0 199aa: 683e ldr r6, [r7, #0] 199ac: 603b str r3, [r7, #0] 199ae: b293 uxth r3, r2 199b0: f412 5280 ands.w r2, r2, #4096 ; 0x1000 199b4: 69e1 ldr r1, [r4, #28] 199b6: d153 bne.n 19a60 <__sflush_r+0xd8> 199b8: 2301 movs r3, #1 199ba: 4638 mov r0, r7 199bc: 47a8 blx r5 199be: 1c42 adds r2, r0, #1 199c0: d064 beq.n 19a8c <__sflush_r+0x104> 199c2: 89a3 ldrh r3, [r4, #12] 199c4: 6aa5 ldr r5, [r4, #40] ; 0x28 199c6: 69e1 ldr r1, [r4, #28] 199c8: 075b lsls r3, r3, #29 199ca: d505 bpl.n 199d8 <__sflush_r+0x50> 199cc: 6863 ldr r3, [r4, #4] 199ce: 1ac0 subs r0, r0, r3 199d0: 6b23 ldr r3, [r4, #48] ; 0x30 199d2: b10b cbz r3, 199d8 <__sflush_r+0x50> 199d4: 6be3 ldr r3, [r4, #60] ; 0x3c 199d6: 1ac0 subs r0, r0, r3 199d8: 4602 mov r2, r0 199da: 2300 movs r3, #0 199dc: 4638 mov r0, r7 199de: 47a8 blx r5 199e0: 1c45 adds r5, r0, #1 199e2: d146 bne.n 19a72 <__sflush_r+0xea> 199e4: 683a ldr r2, [r7, #0] 199e6: f9b4 300c ldrsh.w r3, [r4, #12] 199ea: 2a00 cmp r2, #0 199ec: d05a beq.n 19aa4 <__sflush_r+0x11c> 199ee: 2a1d cmp r2, #29 199f0: d001 beq.n 199f6 <__sflush_r+0x6e> 199f2: 2a16 cmp r2, #22 199f4: d139 bne.n 19a6a <__sflush_r+0xe2> 199f6: 6922 ldr r2, [r4, #16] 199f8: 6022 str r2, [r4, #0] 199fa: f423 6300 bic.w r3, r3, #2048 ; 0x800 199fe: 2100 movs r1, #0 19a00: 6061 str r1, [r4, #4] 19a02: 81a3 strh r3, [r4, #12] 19a04: 6b21 ldr r1, [r4, #48] ; 0x30 19a06: 603e str r6, [r7, #0] 19a08: b321 cbz r1, 19a54 <__sflush_r+0xcc> 19a0a: f104 0340 add.w r3, r4, #64 ; 0x40 19a0e: 4299 cmp r1, r3 19a10: d002 beq.n 19a18 <__sflush_r+0x90> 19a12: 4638 mov r0, r7 19a14: f000 f930 bl 19c78 <_free_r> 19a18: 2000 movs r0, #0 19a1a: 6320 str r0, [r4, #48] ; 0x30 19a1c: bdf8 pop {r3, r4, r5, r6, r7, pc} 19a1e: 6926 ldr r6, [r4, #16] 19a20: b1c6 cbz r6, 19a54 <__sflush_r+0xcc> 19a22: b293 uxth r3, r2 19a24: 6825 ldr r5, [r4, #0] 19a26: 6026 str r6, [r4, #0] 19a28: 0799 lsls r1, r3, #30 19a2a: bf0c ite eq 19a2c: 6963 ldreq r3, [r4, #20] 19a2e: 2300 movne r3, #0 19a30: 1bad subs r5, r5, r6 19a32: 60a3 str r3, [r4, #8] 19a34: e00c b.n 19a50 <__sflush_r+0xc8> 19a36: f8d4 c024 ldr.w ip, [r4, #36] ; 0x24 19a3a: 69e1 ldr r1, [r4, #28] 19a3c: 462b mov r3, r5 19a3e: 4632 mov r2, r6 19a40: 4638 mov r0, r7 19a42: 47e0 blx ip 19a44: f1b0 0c00 subs.w ip, r0, #0 19a48: eba5 050c sub.w r5, r5, ip 19a4c: 4466 add r6, ip 19a4e: dd09 ble.n 19a64 <__sflush_r+0xdc> 19a50: 2d00 cmp r5, #0 19a52: dcf0 bgt.n 19a36 <__sflush_r+0xae> 19a54: 2000 movs r0, #0 19a56: bdf8 pop {r3, r4, r5, r6, r7, pc} 19a58: 6be3 ldr r3, [r4, #60] ; 0x3c 19a5a: 2b00 cmp r3, #0 19a5c: dca1 bgt.n 199a2 <__sflush_r+0x1a> 19a5e: e7f9 b.n 19a54 <__sflush_r+0xcc> 19a60: 6d20 ldr r0, [r4, #80] ; 0x50 19a62: e7b1 b.n 199c8 <__sflush_r+0x40> 19a64: 89a3 ldrh r3, [r4, #12] 19a66: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff 19a6a: f043 0340 orr.w r3, r3, #64 ; 0x40 19a6e: 81a3 strh r3, [r4, #12] 19a70: bdf8 pop {r3, r4, r5, r6, r7, pc} 19a72: f9b4 300c ldrsh.w r3, [r4, #12] 19a76: 6922 ldr r2, [r4, #16] 19a78: 6022 str r2, [r4, #0] 19a7a: f423 6300 bic.w r3, r3, #2048 ; 0x800 19a7e: 2200 movs r2, #0 19a80: 6062 str r2, [r4, #4] 19a82: 04da lsls r2, r3, #19 19a84: 81a3 strh r3, [r4, #12] 19a86: d5bd bpl.n 19a04 <__sflush_r+0x7c> 19a88: 6520 str r0, [r4, #80] ; 0x50 19a8a: e7bb b.n 19a04 <__sflush_r+0x7c> 19a8c: 683b ldr r3, [r7, #0] 19a8e: 2b00 cmp r3, #0 19a90: d097 beq.n 199c2 <__sflush_r+0x3a> 19a92: 2b1d cmp r3, #29 19a94: d00f beq.n 19ab6 <__sflush_r+0x12e> 19a96: 2b16 cmp r3, #22 19a98: d00d beq.n 19ab6 <__sflush_r+0x12e> 19a9a: 89a3 ldrh r3, [r4, #12] 19a9c: f043 0340 orr.w r3, r3, #64 ; 0x40 19aa0: 81a3 strh r3, [r4, #12] 19aa2: bdf8 pop {r3, r4, r5, r6, r7, pc} 19aa4: f423 6300 bic.w r3, r3, #2048 ; 0x800 19aa8: 6062 str r2, [r4, #4] 19aaa: 81a3 strh r3, [r4, #12] 19aac: 6922 ldr r2, [r4, #16] 19aae: 6022 str r2, [r4, #0] 19ab0: 04db lsls r3, r3, #19 19ab2: d5a7 bpl.n 19a04 <__sflush_r+0x7c> 19ab4: e7e8 b.n 19a88 <__sflush_r+0x100> 19ab6: 603e str r6, [r7, #0] 19ab8: e7cc b.n 19a54 <__sflush_r+0xcc> 19aba: bf00 nop 00019abc <_fflush_r>: 19abc: b538 push {r3, r4, r5, lr} 19abe: 460d mov r5, r1 19ac0: 4604 mov r4, r0 19ac2: b108 cbz r0, 19ac8 <_fflush_r+0xc> 19ac4: 6b83 ldr r3, [r0, #56] ; 0x38 19ac6: b11b cbz r3, 19ad0 <_fflush_r+0x14> 19ac8: f9b5 000c ldrsh.w r0, [r5, #12] 19acc: b930 cbnz r0, 19adc <_fflush_r+0x20> 19ace: bd38 pop {r3, r4, r5, pc} 19ad0: f000 f87c bl 19bcc <__sinit> 19ad4: f9b5 000c ldrsh.w r0, [r5, #12] 19ad8: 2800 cmp r0, #0 19ada: d0f8 beq.n 19ace <_fflush_r+0x12> 19adc: 4629 mov r1, r5 19ade: 4620 mov r0, r4 19ae0: e8bd 4038 ldmia.w sp!, {r3, r4, r5, lr} 19ae4: f7ff bf50 b.w 19988 <__sflush_r> 00019ae8 <_cleanup_r>: 19ae8: 4901 ldr r1, [pc, #4] ; (19af0 <_cleanup_r+0x8>) 19aea: f000 b9c1 b.w 19e70 <_fwalk_reent> 19aee: bf00 nop 19af0: 0001bbe1 .word 0x0001bbe1 00019af4 <__sinit.part.0>: 19af4: e92d 4ff8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr} 19af8: 4a2d ldr r2, [pc, #180] ; (19bb0 <__sinit.part.0+0xbc>) 19afa: 6846 ldr r6, [r0, #4] 19afc: 63c2 str r2, [r0, #60] ; 0x3c 19afe: 2400 movs r4, #0 19b00: 2303 movs r3, #3 19b02: e9c0 43b8 strd r4, r3, [r0, #736] ; 0x2e0 19b06: 4607 mov r7, r0 19b08: f500 723b add.w r2, r0, #748 ; 0x2ec 19b0c: 2304 movs r3, #4 19b0e: f8c0 22e8 str.w r2, [r0, #744] ; 0x2e8 19b12: 4621 mov r1, r4 19b14: e9c6 4302 strd r4, r3, [r6, #8] 19b18: 2208 movs r2, #8 19b1a: e9c6 4400 strd r4, r4, [r6] 19b1e: e9c6 4404 strd r4, r4, [r6, #16] 19b22: 6634 str r4, [r6, #96] ; 0x60 19b24: 61b4 str r4, [r6, #24] 19b26: f106 0058 add.w r0, r6, #88 ; 0x58 19b2a: f7fd f9e5 bl 16ef8 19b2e: f8df b084 ldr.w fp, [pc, #132] ; 19bb4 <__sinit.part.0+0xc0> 19b32: 68bd ldr r5, [r7, #8] 19b34: f8df a080 ldr.w sl, [pc, #128] ; 19bb8 <__sinit.part.0+0xc4> 19b38: f8df 9080 ldr.w r9, [pc, #128] ; 19bbc <__sinit.part.0+0xc8> 19b3c: f8df 8080 ldr.w r8, [pc, #128] ; 19bc0 <__sinit.part.0+0xcc> 19b40: 4b20 ldr r3, [pc, #128] ; (19bc4 <__sinit.part.0+0xd0>) 19b42: f8c6 a024 str.w sl, [r6, #36] ; 0x24 19b46: e9c6 6b07 strd r6, fp, [r6, #28] 19b4a: f8c6 9028 str.w r9, [r6, #40] ; 0x28 19b4e: f8c6 802c str.w r8, [r6, #44] ; 0x2c 19b52: 2208 movs r2, #8 19b54: 60eb str r3, [r5, #12] 19b56: e9c5 4400 strd r4, r4, [r5] 19b5a: e9c5 4404 strd r4, r4, [r5, #16] 19b5e: 662c str r4, [r5, #96] ; 0x60 19b60: 60ac str r4, [r5, #8] 19b62: 61ac str r4, [r5, #24] 19b64: 4621 mov r1, r4 19b66: f105 0058 add.w r0, r5, #88 ; 0x58 19b6a: f7fd f9c5 bl 16ef8 19b6e: e9c5 5b07 strd r5, fp, [r5, #28] 19b72: e9c5 a909 strd sl, r9, [r5, #36] ; 0x24 19b76: f8c5 802c str.w r8, [r5, #44] ; 0x2c 19b7a: 68fd ldr r5, [r7, #12] 19b7c: 4b12 ldr r3, [pc, #72] ; (19bc8 <__sinit.part.0+0xd4>) 19b7e: 60eb str r3, [r5, #12] 19b80: e9c5 4400 strd r4, r4, [r5] 19b84: e9c5 4404 strd r4, r4, [r5, #16] 19b88: 662c str r4, [r5, #96] ; 0x60 19b8a: 60ac str r4, [r5, #8] 19b8c: 61ac str r4, [r5, #24] 19b8e: 4621 mov r1, r4 19b90: 2208 movs r2, #8 19b92: f105 0058 add.w r0, r5, #88 ; 0x58 19b96: f7fd f9af bl 16ef8 19b9a: 2301 movs r3, #1 19b9c: e9c5 5b07 strd r5, fp, [r5, #28] 19ba0: e9c5 980a strd r9, r8, [r5, #40] ; 0x28 19ba4: f8c5 a024 str.w sl, [r5, #36] ; 0x24 19ba8: 63bb str r3, [r7, #56] ; 0x38 19baa: e8bd 8ff8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} 19bae: bf00 nop 19bb0: 00019ae9 .word 0x00019ae9 19bb4: 0001adb5 .word 0x0001adb5 19bb8: 0001add9 .word 0x0001add9 19bbc: 0001ae19 .word 0x0001ae19 19bc0: 0001ae39 .word 0x0001ae39 19bc4: 00010009 .word 0x00010009 19bc8: 00020012 .word 0x00020012 00019bcc <__sinit>: 19bcc: 6b83 ldr r3, [r0, #56] ; 0x38 19bce: b103 cbz r3, 19bd2 <__sinit+0x6> 19bd0: 4770 bx lr 19bd2: f7ff bf8f b.w 19af4 <__sinit.part.0> 19bd6: bf00 nop 00019bd8 <_malloc_trim_r>: 19bd8: b5f8 push {r3, r4, r5, r6, r7, lr} 19bda: 4f24 ldr r7, [pc, #144] ; (19c6c <_malloc_trim_r+0x94>) 19bdc: 460c mov r4, r1 19bde: 4606 mov r6, r0 19be0: f000 fcde bl 1a5a0 <__malloc_lock> 19be4: 68bb ldr r3, [r7, #8] 19be6: 685d ldr r5, [r3, #4] 19be8: f5c4 617e rsb r1, r4, #4064 ; 0xfe0 19bec: 310f adds r1, #15 19bee: f025 0503 bic.w r5, r5, #3 19bf2: 194b adds r3, r1, r5 19bf4: f423 637f bic.w r3, r3, #4080 ; 0xff0 19bf8: f023 030f bic.w r3, r3, #15 19bfc: f5a3 5480 sub.w r4, r3, #4096 ; 0x1000 19c00: f5b4 5f80 cmp.w r4, #4096 ; 0x1000 19c04: db07 blt.n 19c16 <_malloc_trim_r+0x3e> 19c06: 2100 movs r1, #0 19c08: 4630 mov r0, r6 19c0a: f001 f87b bl 1ad04 <_sbrk_r> 19c0e: 68bb ldr r3, [r7, #8] 19c10: 442b add r3, r5 19c12: 4298 cmp r0, r3 19c14: d004 beq.n 19c20 <_malloc_trim_r+0x48> 19c16: 4630 mov r0, r6 19c18: f000 fcc4 bl 1a5a4 <__malloc_unlock> 19c1c: 2000 movs r0, #0 19c1e: bdf8 pop {r3, r4, r5, r6, r7, pc} 19c20: 4261 negs r1, r4 19c22: 4630 mov r0, r6 19c24: f001 f86e bl 1ad04 <_sbrk_r> 19c28: 3001 adds r0, #1 19c2a: d00d beq.n 19c48 <_malloc_trim_r+0x70> 19c2c: 4a10 ldr r2, [pc, #64] ; (19c70 <_malloc_trim_r+0x98>) 19c2e: 68bb ldr r3, [r7, #8] 19c30: 1b2d subs r5, r5, r4 19c32: f045 0501 orr.w r5, r5, #1 19c36: 605d str r5, [r3, #4] 19c38: 6813 ldr r3, [r2, #0] 19c3a: 4630 mov r0, r6 19c3c: 1b1b subs r3, r3, r4 19c3e: 6013 str r3, [r2, #0] 19c40: f000 fcb0 bl 1a5a4 <__malloc_unlock> 19c44: 2001 movs r0, #1 19c46: bdf8 pop {r3, r4, r5, r6, r7, pc} 19c48: 2100 movs r1, #0 19c4a: 4630 mov r0, r6 19c4c: f001 f85a bl 1ad04 <_sbrk_r> 19c50: 68ba ldr r2, [r7, #8] 19c52: 1a83 subs r3, r0, r2 19c54: 2b0f cmp r3, #15 19c56: ddde ble.n 19c16 <_malloc_trim_r+0x3e> 19c58: f043 0301 orr.w r3, r3, #1 19c5c: 6053 str r3, [r2, #4] 19c5e: 4b05 ldr r3, [pc, #20] ; (19c74 <_malloc_trim_r+0x9c>) 19c60: 4903 ldr r1, [pc, #12] ; (19c70 <_malloc_trim_r+0x98>) 19c62: 681b ldr r3, [r3, #0] 19c64: 1ac0 subs r0, r0, r3 19c66: 6008 str r0, [r1, #0] 19c68: e7d5 b.n 19c16 <_malloc_trim_r+0x3e> 19c6a: bf00 nop 19c6c: 20000488 .word 0x20000488 19c70: 2000d19c .word 0x2000d19c 19c74: 20000890 .word 0x20000890 00019c78 <_free_r>: 19c78: 2900 cmp r1, #0 19c7a: d05f beq.n 19d3c <_free_r+0xc4> 19c7c: b5f8 push {r3, r4, r5, r6, r7, lr} 19c7e: 460c mov r4, r1 19c80: 4606 mov r6, r0 19c82: f000 fc8d bl 1a5a0 <__malloc_lock> 19c86: f854 3c04 ldr.w r3, [r4, #-4] 19c8a: 4f76 ldr r7, [pc, #472] ; (19e64 <_free_r+0x1ec>) 19c8c: f1a4 0508 sub.w r5, r4, #8 19c90: f023 0101 bic.w r1, r3, #1 19c94: 186a adds r2, r5, r1 19c96: f8d7 c008 ldr.w ip, [r7, #8] 19c9a: 6850 ldr r0, [r2, #4] 19c9c: 4594 cmp ip, r2 19c9e: f020 0003 bic.w r0, r0, #3 19ca2: f000 8086 beq.w 19db2 <_free_r+0x13a> 19ca6: 07db lsls r3, r3, #31 19ca8: 6050 str r0, [r2, #4] 19caa: eb02 0c00 add.w ip, r2, r0 19cae: d433 bmi.n 19d18 <_free_r+0xa0> 19cb0: f854 4c08 ldr.w r4, [r4, #-8] 19cb4: f8dc 3004 ldr.w r3, [ip, #4] 19cb8: 1b2d subs r5, r5, r4 19cba: 4421 add r1, r4 19cbc: 68ac ldr r4, [r5, #8] 19cbe: f107 0c08 add.w ip, r7, #8 19cc2: 4564 cmp r4, ip 19cc4: f003 0301 and.w r3, r3, #1 19cc8: d063 beq.n 19d92 <_free_r+0x11a> 19cca: f8d5 e00c ldr.w lr, [r5, #12] 19cce: f8c4 e00c str.w lr, [r4, #12] 19cd2: f8ce 4008 str.w r4, [lr, #8] 19cd6: 2b00 cmp r3, #0 19cd8: f000 808f beq.w 19dfa <_free_r+0x182> 19cdc: f041 0301 orr.w r3, r1, #1 19ce0: 606b str r3, [r5, #4] 19ce2: 6011 str r1, [r2, #0] 19ce4: f5b1 7f00 cmp.w r1, #512 ; 0x200 19ce8: d231 bcs.n 19d4e <_free_r+0xd6> 19cea: 6878 ldr r0, [r7, #4] 19cec: 08cb lsrs r3, r1, #3 19cee: 2201 movs r2, #1 19cf0: 0949 lsrs r1, r1, #5 19cf2: 3301 adds r3, #1 19cf4: 408a lsls r2, r1 19cf6: 4302 orrs r2, r0 19cf8: f857 1033 ldr.w r1, [r7, r3, lsl #3] 19cfc: 607a str r2, [r7, #4] 19cfe: eb07 02c3 add.w r2, r7, r3, lsl #3 19d02: 3a08 subs r2, #8 19d04: e9c5 1202 strd r1, r2, [r5, #8] 19d08: f847 5033 str.w r5, [r7, r3, lsl #3] 19d0c: 60cd str r5, [r1, #12] 19d0e: 4630 mov r0, r6 19d10: e8bd 40f8 ldmia.w sp!, {r3, r4, r5, r6, r7, lr} 19d14: f000 bc46 b.w 1a5a4 <__malloc_unlock> 19d18: f8dc 3004 ldr.w r3, [ip, #4] 19d1c: 07db lsls r3, r3, #31 19d1e: d40e bmi.n 19d3e <_free_r+0xc6> 19d20: 4401 add r1, r0 19d22: f107 0c08 add.w ip, r7, #8 19d26: 6893 ldr r3, [r2, #8] 19d28: 4563 cmp r3, ip 19d2a: f041 0001 orr.w r0, r1, #1 19d2e: d06c beq.n 19e0a <_free_r+0x192> 19d30: 68d2 ldr r2, [r2, #12] 19d32: 60da str r2, [r3, #12] 19d34: 6093 str r3, [r2, #8] 19d36: 6068 str r0, [r5, #4] 19d38: 5069 str r1, [r5, r1] 19d3a: e7d3 b.n 19ce4 <_free_r+0x6c> 19d3c: 4770 bx lr 19d3e: f041 0301 orr.w r3, r1, #1 19d42: f5b1 7f00 cmp.w r1, #512 ; 0x200 19d46: f844 3c04 str.w r3, [r4, #-4] 19d4a: 6011 str r1, [r2, #0] 19d4c: d3cd bcc.n 19cea <_free_r+0x72> 19d4e: f5b1 6f20 cmp.w r1, #2560 ; 0xa00 19d52: ea4f 2351 mov.w r3, r1, lsr #9 19d56: d245 bcs.n 19de4 <_free_r+0x16c> 19d58: 098b lsrs r3, r1, #6 19d5a: f103 0039 add.w r0, r3, #57 ; 0x39 19d5e: f103 0238 add.w r2, r3, #56 ; 0x38 19d62: 00c3 lsls r3, r0, #3 19d64: 18f8 adds r0, r7, r3 19d66: 58fb ldr r3, [r7, r3] 19d68: 3808 subs r0, #8 19d6a: 4298 cmp r0, r3 19d6c: d054 beq.n 19e18 <_free_r+0x1a0> 19d6e: 685a ldr r2, [r3, #4] 19d70: f022 0203 bic.w r2, r2, #3 19d74: 428a cmp r2, r1 19d76: d902 bls.n 19d7e <_free_r+0x106> 19d78: 689b ldr r3, [r3, #8] 19d7a: 4298 cmp r0, r3 19d7c: d1f7 bne.n 19d6e <_free_r+0xf6> 19d7e: 68d8 ldr r0, [r3, #12] 19d80: e9c5 3002 strd r3, r0, [r5, #8] 19d84: 6085 str r5, [r0, #8] 19d86: 60dd str r5, [r3, #12] 19d88: 4630 mov r0, r6 19d8a: e8bd 40f8 ldmia.w sp!, {r3, r4, r5, r6, r7, lr} 19d8e: f000 bc09 b.w 1a5a4 <__malloc_unlock> 19d92: 2b00 cmp r3, #0 19d94: d161 bne.n 19e5a <_free_r+0x1e2> 19d96: e9d2 2302 ldrd r2, r3, [r2, #8] 19d9a: 4408 add r0, r1 19d9c: 60d3 str r3, [r2, #12] 19d9e: 609a str r2, [r3, #8] 19da0: f040 0301 orr.w r3, r0, #1 19da4: 606b str r3, [r5, #4] 19da6: 5028 str r0, [r5, r0] 19da8: 4630 mov r0, r6 19daa: e8bd 40f8 ldmia.w sp!, {r3, r4, r5, r6, r7, lr} 19dae: f000 bbf9 b.w 1a5a4 <__malloc_unlock> 19db2: 07da lsls r2, r3, #31 19db4: 4408 add r0, r1 19db6: d407 bmi.n 19dc8 <_free_r+0x150> 19db8: f854 3c08 ldr.w r3, [r4, #-8] 19dbc: 1aed subs r5, r5, r3 19dbe: 4418 add r0, r3 19dc0: e9d5 2302 ldrd r2, r3, [r5, #8] 19dc4: 60d3 str r3, [r2, #12] 19dc6: 609a str r2, [r3, #8] 19dc8: f040 0301 orr.w r3, r0, #1 19dcc: 606b str r3, [r5, #4] 19dce: 4b26 ldr r3, [pc, #152] ; (19e68 <_free_r+0x1f0>) 19dd0: 60bd str r5, [r7, #8] 19dd2: 681b ldr r3, [r3, #0] 19dd4: 4283 cmp r3, r0 19dd6: d89a bhi.n 19d0e <_free_r+0x96> 19dd8: 4b24 ldr r3, [pc, #144] ; (19e6c <_free_r+0x1f4>) 19dda: 4630 mov r0, r6 19ddc: 6819 ldr r1, [r3, #0] 19dde: f7ff fefb bl 19bd8 <_malloc_trim_r> 19de2: e794 b.n 19d0e <_free_r+0x96> 19de4: 2b14 cmp r3, #20 19de6: d90a bls.n 19dfe <_free_r+0x186> 19de8: 2b54 cmp r3, #84 ; 0x54 19dea: d81d bhi.n 19e28 <_free_r+0x1b0> 19dec: 0b0b lsrs r3, r1, #12 19dee: f103 006f add.w r0, r3, #111 ; 0x6f 19df2: f103 026e add.w r2, r3, #110 ; 0x6e 19df6: 00c3 lsls r3, r0, #3 19df8: e7b4 b.n 19d64 <_free_r+0xec> 19dfa: 4401 add r1, r0 19dfc: e793 b.n 19d26 <_free_r+0xae> 19dfe: f103 005c add.w r0, r3, #92 ; 0x5c 19e02: f103 025b add.w r2, r3, #91 ; 0x5b 19e06: 00c3 lsls r3, r0, #3 19e08: e7ac b.n 19d64 <_free_r+0xec> 19e0a: e9c7 5504 strd r5, r5, [r7, #16] 19e0e: e9c5 cc02 strd ip, ip, [r5, #8] 19e12: 6068 str r0, [r5, #4] 19e14: 5069 str r1, [r5, r1] 19e16: e77a b.n 19d0e <_free_r+0x96> 19e18: 6879 ldr r1, [r7, #4] 19e1a: 1092 asrs r2, r2, #2 19e1c: 2401 movs r4, #1 19e1e: fa04 f202 lsl.w r2, r4, r2 19e22: 430a orrs r2, r1 19e24: 607a str r2, [r7, #4] 19e26: e7ab b.n 19d80 <_free_r+0x108> 19e28: f5b3 7faa cmp.w r3, #340 ; 0x154 19e2c: d806 bhi.n 19e3c <_free_r+0x1c4> 19e2e: 0bcb lsrs r3, r1, #15 19e30: f103 0078 add.w r0, r3, #120 ; 0x78 19e34: f103 0277 add.w r2, r3, #119 ; 0x77 19e38: 00c3 lsls r3, r0, #3 19e3a: e793 b.n 19d64 <_free_r+0xec> 19e3c: f240 5254 movw r2, #1364 ; 0x554 19e40: 4293 cmp r3, r2 19e42: d806 bhi.n 19e52 <_free_r+0x1da> 19e44: 0c8b lsrs r3, r1, #18 19e46: f103 007d add.w r0, r3, #125 ; 0x7d 19e4a: f103 027c add.w r2, r3, #124 ; 0x7c 19e4e: 00c3 lsls r3, r0, #3 19e50: e788 b.n 19d64 <_free_r+0xec> 19e52: f44f 737e mov.w r3, #1016 ; 0x3f8 19e56: 227e movs r2, #126 ; 0x7e 19e58: e784 b.n 19d64 <_free_r+0xec> 19e5a: f041 0301 orr.w r3, r1, #1 19e5e: 606b str r3, [r5, #4] 19e60: 6011 str r1, [r2, #0] 19e62: e754 b.n 19d0e <_free_r+0x96> 19e64: 20000488 .word 0x20000488 19e68: 20000894 .word 0x20000894 19e6c: 2000d1cc .word 0x2000d1cc 00019e70 <_fwalk_reent>: 19e70: e92d 43f8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, lr} 19e74: 4607 mov r7, r0 19e76: 4688 mov r8, r1 19e78: f500 7638 add.w r6, r0, #736 ; 0x2e0 19e7c: f04f 0900 mov.w r9, #0 19e80: e9d6 5401 ldrd r5, r4, [r6, #4] 19e84: 3d01 subs r5, #1 19e86: d411 bmi.n 19eac <_fwalk_reent+0x3c> 19e88: 89a3 ldrh r3, [r4, #12] 19e8a: 2b01 cmp r3, #1 19e8c: f105 35ff add.w r5, r5, #4294967295 ; 0xffffffff 19e90: d908 bls.n 19ea4 <_fwalk_reent+0x34> 19e92: f9b4 300e ldrsh.w r3, [r4, #14] 19e96: 3301 adds r3, #1 19e98: 4621 mov r1, r4 19e9a: d003 beq.n 19ea4 <_fwalk_reent+0x34> 19e9c: 4638 mov r0, r7 19e9e: 47c0 blx r8 19ea0: ea49 0900 orr.w r9, r9, r0 19ea4: 1c6b adds r3, r5, #1 19ea6: f104 0464 add.w r4, r4, #100 ; 0x64 19eaa: d1ed bne.n 19e88 <_fwalk_reent+0x18> 19eac: 6836 ldr r6, [r6, #0] 19eae: 2e00 cmp r6, #0 19eb0: d1e6 bne.n 19e80 <_fwalk_reent+0x10> 19eb2: 4648 mov r0, r9 19eb4: e8bd 83f8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, pc} 00019eb8 <_localeconv_r>: 19eb8: 4800 ldr r0, [pc, #0] ; (19ebc <_localeconv_r+0x4>) 19eba: 4770 bx lr 19ebc: 20000988 .word 0x20000988 00019ec0 <__smakebuf_r>: 19ec0: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} 19ec4: 898b ldrh r3, [r1, #12] 19ec6: 460c mov r4, r1 19ec8: 0799 lsls r1, r3, #30 19eca: b096 sub sp, #88 ; 0x58 19ecc: d508 bpl.n 19ee0 <__smakebuf_r+0x20> 19ece: f104 0343 add.w r3, r4, #67 ; 0x43 19ed2: 2201 movs r2, #1 19ed4: e9c4 3204 strd r3, r2, [r4, #16] 19ed8: 6023 str r3, [r4, #0] 19eda: b016 add sp, #88 ; 0x58 19edc: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} 19ee0: f9b4 100e ldrsh.w r1, [r4, #14] 19ee4: 2900 cmp r1, #0 19ee6: 4606 mov r6, r0 19ee8: db27 blt.n 19f3a <__smakebuf_r+0x7a> 19eea: 466a mov r2, sp 19eec: f001 ff32 bl 1bd54 <_fstat_r> 19ef0: 2800 cmp r0, #0 19ef2: db21 blt.n 19f38 <__smakebuf_r+0x78> 19ef4: 9d01 ldr r5, [sp, #4] 19ef6: f405 4570 and.w r5, r5, #61440 ; 0xf000 19efa: f5a5 5500 sub.w r5, r5, #8192 ; 0x2000 19efe: fab5 f585 clz r5, r5 19f02: f44f 6880 mov.w r8, #1024 ; 0x400 19f06: 096d lsrs r5, r5, #5 19f08: f44f 6700 mov.w r7, #2048 ; 0x800 19f0c: 4641 mov r1, r8 19f0e: 4630 mov r0, r6 19f10: f000 f846 bl 19fa0 <_malloc_r> 19f14: f9b4 300c ldrsh.w r3, [r4, #12] 19f18: b1f0 cbz r0, 19f58 <__smakebuf_r+0x98> 19f1a: 4a20 ldr r2, [pc, #128] ; (19f9c <__smakebuf_r+0xdc>) 19f1c: 63f2 str r2, [r6, #60] ; 0x3c 19f1e: f043 0380 orr.w r3, r3, #128 ; 0x80 19f22: f8c4 8014 str.w r8, [r4, #20] 19f26: 81a3 strh r3, [r4, #12] 19f28: 6020 str r0, [r4, #0] 19f2a: 6120 str r0, [r4, #16] 19f2c: bb35 cbnz r5, 19f7c <__smakebuf_r+0xbc> 19f2e: 433b orrs r3, r7 19f30: 81a3 strh r3, [r4, #12] 19f32: b016 add sp, #88 ; 0x58 19f34: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} 19f38: 89a3 ldrh r3, [r4, #12] 19f3a: f013 0580 ands.w r5, r3, #128 ; 0x80 19f3e: d019 beq.n 19f74 <__smakebuf_r+0xb4> 19f40: f04f 0840 mov.w r8, #64 ; 0x40 19f44: 4641 mov r1, r8 19f46: 4630 mov r0, r6 19f48: f000 f82a bl 19fa0 <_malloc_r> 19f4c: 2500 movs r5, #0 19f4e: f9b4 300c ldrsh.w r3, [r4, #12] 19f52: 462f mov r7, r5 19f54: 2800 cmp r0, #0 19f56: d1e0 bne.n 19f1a <__smakebuf_r+0x5a> 19f58: 059a lsls r2, r3, #22 19f5a: d4be bmi.n 19eda <__smakebuf_r+0x1a> 19f5c: f023 0303 bic.w r3, r3, #3 19f60: f104 0243 add.w r2, r4, #67 ; 0x43 19f64: f043 0302 orr.w r3, r3, #2 19f68: 2101 movs r1, #1 19f6a: e9c4 2104 strd r2, r1, [r4, #16] 19f6e: 81a3 strh r3, [r4, #12] 19f70: 6022 str r2, [r4, #0] 19f72: e7b2 b.n 19eda <__smakebuf_r+0x1a> 19f74: f44f 6880 mov.w r8, #1024 ; 0x400 19f78: 462f mov r7, r5 19f7a: e7c7 b.n 19f0c <__smakebuf_r+0x4c> 19f7c: f9b4 100e ldrsh.w r1, [r4, #14] 19f80: 4630 mov r0, r6 19f82: f002 f881 bl 1c088 <_isatty_r> 19f86: b910 cbnz r0, 19f8e <__smakebuf_r+0xce> 19f88: f9b4 300c ldrsh.w r3, [r4, #12] 19f8c: e7cf b.n 19f2e <__smakebuf_r+0x6e> 19f8e: 89a3 ldrh r3, [r4, #12] 19f90: f023 0303 bic.w r3, r3, #3 19f94: f043 0301 orr.w r3, r3, #1 19f98: b21b sxth r3, r3 19f9a: e7c8 b.n 19f2e <__smakebuf_r+0x6e> 19f9c: 00019ae9 .word 0x00019ae9 00019fa0 <_malloc_r>: 19fa0: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} 19fa4: f101 060b add.w r6, r1, #11 19fa8: 2e16 cmp r6, #22 19faa: b083 sub sp, #12 19fac: 4605 mov r5, r0 19fae: d824 bhi.n 19ffa <_malloc_r+0x5a> 19fb0: 2910 cmp r1, #16 19fb2: f200 80a3 bhi.w 1a0fc <_malloc_r+0x15c> 19fb6: f000 faf3 bl 1a5a0 <__malloc_lock> 19fba: 2610 movs r6, #16 19fbc: 2218 movs r2, #24 19fbe: f04f 0c02 mov.w ip, #2 19fc2: 4fb0 ldr r7, [pc, #704] ; (1a284 <_malloc_r+0x2e4>) 19fc4: 443a add r2, r7 19fc6: f1a2 0308 sub.w r3, r2, #8 19fca: 6854 ldr r4, [r2, #4] 19fcc: 429c cmp r4, r3 19fce: f000 80a2 beq.w 1a116 <_malloc_r+0x176> 19fd2: 6863 ldr r3, [r4, #4] 19fd4: 68e2 ldr r2, [r4, #12] 19fd6: 68a1 ldr r1, [r4, #8] 19fd8: f023 0303 bic.w r3, r3, #3 19fdc: 4423 add r3, r4 19fde: 60ca str r2, [r1, #12] 19fe0: 6091 str r1, [r2, #8] 19fe2: 685a ldr r2, [r3, #4] 19fe4: f042 0201 orr.w r2, r2, #1 19fe8: 4628 mov r0, r5 19fea: 605a str r2, [r3, #4] 19fec: 3408 adds r4, #8 19fee: f000 fad9 bl 1a5a4 <__malloc_unlock> 19ff2: 4620 mov r0, r4 19ff4: b003 add sp, #12 19ff6: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} 19ffa: f036 0607 bics.w r6, r6, #7 19ffe: d47d bmi.n 1a0fc <_malloc_r+0x15c> 1a000: 42b1 cmp r1, r6 1a002: d87b bhi.n 1a0fc <_malloc_r+0x15c> 1a004: f000 facc bl 1a5a0 <__malloc_lock> 1a008: f5b6 7ffc cmp.w r6, #504 ; 0x1f8 1a00c: f0c0 8198 bcc.w 1a340 <_malloc_r+0x3a0> 1a010: 0a73 lsrs r3, r6, #9 1a012: d07a beq.n 1a10a <_malloc_r+0x16a> 1a014: 2b04 cmp r3, #4 1a016: f200 8164 bhi.w 1a2e2 <_malloc_r+0x342> 1a01a: 09b3 lsrs r3, r6, #6 1a01c: f103 0c39 add.w ip, r3, #57 ; 0x39 1a020: f103 0438 add.w r4, r3, #56 ; 0x38 1a024: ea4f 03cc mov.w r3, ip, lsl #3 1a028: 4f96 ldr r7, [pc, #600] ; (1a284 <_malloc_r+0x2e4>) 1a02a: 443b add r3, r7 1a02c: f1a3 0008 sub.w r0, r3, #8 1a030: 685b ldr r3, [r3, #4] 1a032: 4298 cmp r0, r3 1a034: d106 bne.n 1a044 <_malloc_r+0xa4> 1a036: e00c b.n 1a052 <_malloc_r+0xb2> 1a038: 2900 cmp r1, #0 1a03a: f280 8114 bge.w 1a266 <_malloc_r+0x2c6> 1a03e: 68db ldr r3, [r3, #12] 1a040: 4298 cmp r0, r3 1a042: d006 beq.n 1a052 <_malloc_r+0xb2> 1a044: 685a ldr r2, [r3, #4] 1a046: f022 0203 bic.w r2, r2, #3 1a04a: 1b91 subs r1, r2, r6 1a04c: 290f cmp r1, #15 1a04e: ddf3 ble.n 1a038 <_malloc_r+0x98> 1a050: 46a4 mov ip, r4 1a052: 693c ldr r4, [r7, #16] 1a054: f8df 8230 ldr.w r8, [pc, #560] ; 1a288 <_malloc_r+0x2e8> 1a058: 4544 cmp r4, r8 1a05a: d068 beq.n 1a12e <_malloc_r+0x18e> 1a05c: 6861 ldr r1, [r4, #4] 1a05e: f021 0103 bic.w r1, r1, #3 1a062: 1b8b subs r3, r1, r6 1a064: 2b0f cmp r3, #15 1a066: f300 817a bgt.w 1a35e <_malloc_r+0x3be> 1a06a: 2b00 cmp r3, #0 1a06c: e9c7 8804 strd r8, r8, [r7, #16] 1a070: f280 816b bge.w 1a34a <_malloc_r+0x3aa> 1a074: f5b1 7f00 cmp.w r1, #512 ; 0x200 1a078: f080 8112 bcs.w 1a2a0 <_malloc_r+0x300> 1a07c: 08cb lsrs r3, r1, #3 1a07e: 6878 ldr r0, [r7, #4] 1a080: 3301 adds r3, #1 1a082: 0949 lsrs r1, r1, #5 1a084: 2201 movs r2, #1 1a086: 408a lsls r2, r1 1a088: 4302 orrs r2, r0 1a08a: eb07 01c3 add.w r1, r7, r3, lsl #3 1a08e: f857 0033 ldr.w r0, [r7, r3, lsl #3] 1a092: 60a0 str r0, [r4, #8] 1a094: 3908 subs r1, #8 1a096: 60e1 str r1, [r4, #12] 1a098: 607a str r2, [r7, #4] 1a09a: f847 4033 str.w r4, [r7, r3, lsl #3] 1a09e: 60c4 str r4, [r0, #12] 1a0a0: ea4f 03ac mov.w r3, ip, asr #2 1a0a4: 2001 movs r0, #1 1a0a6: 4098 lsls r0, r3 1a0a8: 4290 cmp r0, r2 1a0aa: d847 bhi.n 1a13c <_malloc_r+0x19c> 1a0ac: 4210 tst r0, r2 1a0ae: d106 bne.n 1a0be <_malloc_r+0x11e> 1a0b0: f02c 0c03 bic.w ip, ip, #3 1a0b4: 0040 lsls r0, r0, #1 1a0b6: 4210 tst r0, r2 1a0b8: f10c 0c04 add.w ip, ip, #4 1a0bc: d0fa beq.n 1a0b4 <_malloc_r+0x114> 1a0be: eb07 0acc add.w sl, r7, ip, lsl #3 1a0c2: 4653 mov r3, sl 1a0c4: 46e1 mov r9, ip 1a0c6: 68d9 ldr r1, [r3, #12] 1a0c8: e00e b.n 1a0e8 <_malloc_r+0x148> 1a0ca: 684a ldr r2, [r1, #4] 1a0cc: f022 0203 bic.w r2, r2, #3 1a0d0: eba2 0e06 sub.w lr, r2, r6 1a0d4: f1be 0f0f cmp.w lr, #15 1a0d8: 460c mov r4, r1 1a0da: 68c9 ldr r1, [r1, #12] 1a0dc: f300 810e bgt.w 1a2fc <_malloc_r+0x35c> 1a0e0: f1be 0f00 cmp.w lr, #0 1a0e4: f280 811f bge.w 1a326 <_malloc_r+0x386> 1a0e8: 428b cmp r3, r1 1a0ea: d1ee bne.n 1a0ca <_malloc_r+0x12a> 1a0ec: f109 0901 add.w r9, r9, #1 1a0f0: f019 0f03 tst.w r9, #3 1a0f4: f103 0308 add.w r3, r3, #8 1a0f8: d1e5 bne.n 1a0c6 <_malloc_r+0x126> 1a0fa: e165 b.n 1a3c8 <_malloc_r+0x428> 1a0fc: 2400 movs r4, #0 1a0fe: 230c movs r3, #12 1a100: 4620 mov r0, r4 1a102: 602b str r3, [r5, #0] 1a104: b003 add sp, #12 1a106: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} 1a10a: f44f 7300 mov.w r3, #512 ; 0x200 1a10e: f04f 0c40 mov.w ip, #64 ; 0x40 1a112: 243f movs r4, #63 ; 0x3f 1a114: e788 b.n 1a028 <_malloc_r+0x88> 1a116: 68d4 ldr r4, [r2, #12] 1a118: 42a2 cmp r2, r4 1a11a: bf08 it eq 1a11c: f10c 0c02 addeq.w ip, ip, #2 1a120: f47f af57 bne.w 19fd2 <_malloc_r+0x32> 1a124: 693c ldr r4, [r7, #16] 1a126: f8df 8160 ldr.w r8, [pc, #352] ; 1a288 <_malloc_r+0x2e8> 1a12a: 4544 cmp r4, r8 1a12c: d196 bne.n 1a05c <_malloc_r+0xbc> 1a12e: 687a ldr r2, [r7, #4] 1a130: ea4f 03ac mov.w r3, ip, asr #2 1a134: 2001 movs r0, #1 1a136: 4098 lsls r0, r3 1a138: 4290 cmp r0, r2 1a13a: d9b7 bls.n 1a0ac <_malloc_r+0x10c> 1a13c: 68bc ldr r4, [r7, #8] 1a13e: 6863 ldr r3, [r4, #4] 1a140: f023 0903 bic.w r9, r3, #3 1a144: 454e cmp r6, r9 1a146: d803 bhi.n 1a150 <_malloc_r+0x1b0> 1a148: eba9 0306 sub.w r3, r9, r6 1a14c: 2b0f cmp r3, #15 1a14e: dc7a bgt.n 1a246 <_malloc_r+0x2a6> 1a150: f8df b138 ldr.w fp, [pc, #312] ; 1a28c <_malloc_r+0x2ec> 1a154: 4b4e ldr r3, [pc, #312] ; (1a290 <_malloc_r+0x2f0>) 1a156: f8db 2000 ldr.w r2, [fp] 1a15a: 681b ldr r3, [r3, #0] 1a15c: 3201 adds r2, #1 1a15e: 4433 add r3, r6 1a160: eb04 0a09 add.w sl, r4, r9 1a164: f000 8146 beq.w 1a3f4 <_malloc_r+0x454> 1a168: f503 5380 add.w r3, r3, #4096 ; 0x1000 1a16c: 330f adds r3, #15 1a16e: f423 687f bic.w r8, r3, #4080 ; 0xff0 1a172: f028 080f bic.w r8, r8, #15 1a176: 4641 mov r1, r8 1a178: 4628 mov r0, r5 1a17a: f000 fdc3 bl 1ad04 <_sbrk_r> 1a17e: 1c41 adds r1, r0, #1 1a180: 4602 mov r2, r0 1a182: f000 8105 beq.w 1a390 <_malloc_r+0x3f0> 1a186: 4582 cmp sl, r0 1a188: f200 8100 bhi.w 1a38c <_malloc_r+0x3ec> 1a18c: 4b41 ldr r3, [pc, #260] ; (1a294 <_malloc_r+0x2f4>) 1a18e: 6819 ldr r1, [r3, #0] 1a190: 4441 add r1, r8 1a192: 6019 str r1, [r3, #0] 1a194: 4608 mov r0, r1 1a196: f000 8162 beq.w 1a45e <_malloc_r+0x4be> 1a19a: f8db 1000 ldr.w r1, [fp] 1a19e: 9301 str r3, [sp, #4] 1a1a0: 3101 adds r1, #1 1a1a2: bf1b ittet ne 1a1a4: eba2 010a subne.w r1, r2, sl 1a1a8: 1809 addne r1, r1, r0 1a1aa: f8cb 2000 streq.w r2, [fp] 1a1ae: 6019 strne r1, [r3, #0] 1a1b0: f012 0b07 ands.w fp, r2, #7 1a1b4: f000 812a beq.w 1a40c <_malloc_r+0x46c> 1a1b8: f1cb 0108 rsb r1, fp, #8 1a1bc: 440a add r2, r1 1a1be: f5cb 5180 rsb r1, fp, #4096 ; 0x1000 1a1c2: 4490 add r8, r2 1a1c4: 3108 adds r1, #8 1a1c6: eba1 0108 sub.w r1, r1, r8 1a1ca: f3c1 0a0b ubfx sl, r1, #0, #12 1a1ce: 4651 mov r1, sl 1a1d0: 4628 mov r0, r5 1a1d2: 9200 str r2, [sp, #0] 1a1d4: f000 fd96 bl 1ad04 <_sbrk_r> 1a1d8: 1c42 adds r2, r0, #1 1a1da: e9dd 2300 ldrd r2, r3, [sp] 1a1de: f000 8164 beq.w 1a4aa <_malloc_r+0x50a> 1a1e2: 1a80 subs r0, r0, r2 1a1e4: eb00 080a add.w r8, r0, sl 1a1e8: 6819 ldr r1, [r3, #0] 1a1ea: 60ba str r2, [r7, #8] 1a1ec: f048 0001 orr.w r0, r8, #1 1a1f0: 4451 add r1, sl 1a1f2: 42bc cmp r4, r7 1a1f4: 6050 str r0, [r2, #4] 1a1f6: 6019 str r1, [r3, #0] 1a1f8: f000 813d beq.w 1a476 <_malloc_r+0x4d6> 1a1fc: f1b9 0f0f cmp.w r9, #15 1a200: f240 813b bls.w 1a47a <_malloc_r+0x4da> 1a204: 6860 ldr r0, [r4, #4] 1a206: f1a9 0c0c sub.w ip, r9, #12 1a20a: f02c 0c07 bic.w ip, ip, #7 1a20e: f000 0001 and.w r0, r0, #1 1a212: ea40 000c orr.w r0, r0, ip 1a216: 6060 str r0, [r4, #4] 1a218: f04f 0e05 mov.w lr, #5 1a21c: eb04 000c add.w r0, r4, ip 1a220: f1bc 0f0f cmp.w ip, #15 1a224: e9c0 ee01 strd lr, lr, [r0, #4] 1a228: f200 8147 bhi.w 1a4ba <_malloc_r+0x51a> 1a22c: 6850 ldr r0, [r2, #4] 1a22e: 4614 mov r4, r2 1a230: 4b19 ldr r3, [pc, #100] ; (1a298 <_malloc_r+0x2f8>) 1a232: 681a ldr r2, [r3, #0] 1a234: 428a cmp r2, r1 1a236: bf38 it cc 1a238: 6019 strcc r1, [r3, #0] 1a23a: 4b18 ldr r3, [pc, #96] ; (1a29c <_malloc_r+0x2fc>) 1a23c: 681a ldr r2, [r3, #0] 1a23e: 428a cmp r2, r1 1a240: bf38 it cc 1a242: 6019 strcc r1, [r3, #0] 1a244: e0a6 b.n 1a394 <_malloc_r+0x3f4> 1a246: 19a2 adds r2, r4, r6 1a248: f043 0301 orr.w r3, r3, #1 1a24c: f046 0601 orr.w r6, r6, #1 1a250: 6066 str r6, [r4, #4] 1a252: 4628 mov r0, r5 1a254: 60ba str r2, [r7, #8] 1a256: 6053 str r3, [r2, #4] 1a258: f000 f9a4 bl 1a5a4 <__malloc_unlock> 1a25c: 3408 adds r4, #8 1a25e: 4620 mov r0, r4 1a260: b003 add sp, #12 1a262: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} 1a266: e9d3 4102 ldrd r4, r1, [r3, #8] 1a26a: 441a add r2, r3 1a26c: 60e1 str r1, [r4, #12] 1a26e: 608c str r4, [r1, #8] 1a270: 6851 ldr r1, [r2, #4] 1a272: f041 0101 orr.w r1, r1, #1 1a276: 4628 mov r0, r5 1a278: 6051 str r1, [r2, #4] 1a27a: f103 0408 add.w r4, r3, #8 1a27e: f000 f991 bl 1a5a4 <__malloc_unlock> 1a282: e6b6 b.n 19ff2 <_malloc_r+0x52> 1a284: 20000488 .word 0x20000488 1a288: 20000490 .word 0x20000490 1a28c: 20000890 .word 0x20000890 1a290: 2000d1cc .word 0x2000d1cc 1a294: 2000d19c .word 0x2000d19c 1a298: 2000d1c4 .word 0x2000d1c4 1a29c: 2000d1c8 .word 0x2000d1c8 1a2a0: f5b1 6f20 cmp.w r1, #2560 ; 0xa00 1a2a4: ea4f 2251 mov.w r2, r1, lsr #9 1a2a8: d36a bcc.n 1a380 <_malloc_r+0x3e0> 1a2aa: 2a14 cmp r2, #20 1a2ac: f200 80bf bhi.w 1a42e <_malloc_r+0x48e> 1a2b0: f102 035c add.w r3, r2, #92 ; 0x5c 1a2b4: 00db lsls r3, r3, #3 1a2b6: 325b adds r2, #91 ; 0x5b 1a2b8: 18f8 adds r0, r7, r3 1a2ba: 58fb ldr r3, [r7, r3] 1a2bc: 3808 subs r0, #8 1a2be: 4298 cmp r0, r3 1a2c0: f000 809b beq.w 1a3fa <_malloc_r+0x45a> 1a2c4: 685a ldr r2, [r3, #4] 1a2c6: f022 0203 bic.w r2, r2, #3 1a2ca: 428a cmp r2, r1 1a2cc: d902 bls.n 1a2d4 <_malloc_r+0x334> 1a2ce: 689b ldr r3, [r3, #8] 1a2d0: 4298 cmp r0, r3 1a2d2: d1f7 bne.n 1a2c4 <_malloc_r+0x324> 1a2d4: 68d8 ldr r0, [r3, #12] 1a2d6: 687a ldr r2, [r7, #4] 1a2d8: e9c4 3002 strd r3, r0, [r4, #8] 1a2dc: 6084 str r4, [r0, #8] 1a2de: 60dc str r4, [r3, #12] 1a2e0: e6de b.n 1a0a0 <_malloc_r+0x100> 1a2e2: 2b14 cmp r3, #20 1a2e4: d964 bls.n 1a3b0 <_malloc_r+0x410> 1a2e6: 2b54 cmp r3, #84 ; 0x54 1a2e8: f200 80a9 bhi.w 1a43e <_malloc_r+0x49e> 1a2ec: 0b33 lsrs r3, r6, #12 1a2ee: f103 0c6f add.w ip, r3, #111 ; 0x6f 1a2f2: f103 046e add.w r4, r3, #110 ; 0x6e 1a2f6: ea4f 03cc mov.w r3, ip, lsl #3 1a2fa: e695 b.n 1a028 <_malloc_r+0x88> 1a2fc: 4628 mov r0, r5 1a2fe: 68a5 ldr r5, [r4, #8] 1a300: 19a3 adds r3, r4, r6 1a302: f046 0601 orr.w r6, r6, #1 1a306: 6066 str r6, [r4, #4] 1a308: 60e9 str r1, [r5, #12] 1a30a: 608d str r5, [r1, #8] 1a30c: f04e 0101 orr.w r1, lr, #1 1a310: e9c7 3304 strd r3, r3, [r7, #16] 1a314: e9c3 8802 strd r8, r8, [r3, #8] 1a318: 6059 str r1, [r3, #4] 1a31a: f844 e002 str.w lr, [r4, r2] 1a31e: f000 f941 bl 1a5a4 <__malloc_unlock> 1a322: 3408 adds r4, #8 1a324: e665 b.n 19ff2 <_malloc_r+0x52> 1a326: 4422 add r2, r4 1a328: 4628 mov r0, r5 1a32a: 6853 ldr r3, [r2, #4] 1a32c: f043 0301 orr.w r3, r3, #1 1a330: 6053 str r3, [r2, #4] 1a332: f854 3f08 ldr.w r3, [r4, #8]! 1a336: 60d9 str r1, [r3, #12] 1a338: 608b str r3, [r1, #8] 1a33a: f000 f933 bl 1a5a4 <__malloc_unlock> 1a33e: e658 b.n 19ff2 <_malloc_r+0x52> 1a340: ea4f 0cd6 mov.w ip, r6, lsr #3 1a344: f106 0208 add.w r2, r6, #8 1a348: e63b b.n 19fc2 <_malloc_r+0x22> 1a34a: 4421 add r1, r4 1a34c: 4628 mov r0, r5 1a34e: 684b ldr r3, [r1, #4] 1a350: f043 0301 orr.w r3, r3, #1 1a354: 604b str r3, [r1, #4] 1a356: 3408 adds r4, #8 1a358: f000 f924 bl 1a5a4 <__malloc_unlock> 1a35c: e649 b.n 19ff2 <_malloc_r+0x52> 1a35e: 19a2 adds r2, r4, r6 1a360: 4628 mov r0, r5 1a362: f046 0601 orr.w r6, r6, #1 1a366: f043 0501 orr.w r5, r3, #1 1a36a: 6066 str r6, [r4, #4] 1a36c: e9c7 2204 strd r2, r2, [r7, #16] 1a370: e9c2 8802 strd r8, r8, [r2, #8] 1a374: 6055 str r5, [r2, #4] 1a376: 5063 str r3, [r4, r1] 1a378: f000 f914 bl 1a5a4 <__malloc_unlock> 1a37c: 3408 adds r4, #8 1a37e: e638 b.n 19ff2 <_malloc_r+0x52> 1a380: 098a lsrs r2, r1, #6 1a382: f102 0339 add.w r3, r2, #57 ; 0x39 1a386: 00db lsls r3, r3, #3 1a388: 3238 adds r2, #56 ; 0x38 1a38a: e795 b.n 1a2b8 <_malloc_r+0x318> 1a38c: 42bc cmp r4, r7 1a38e: d061 beq.n 1a454 <_malloc_r+0x4b4> 1a390: 68bc ldr r4, [r7, #8] 1a392: 6860 ldr r0, [r4, #4] 1a394: f020 0803 bic.w r8, r0, #3 1a398: 4546 cmp r6, r8 1a39a: eba8 0306 sub.w r3, r8, r6 1a39e: d802 bhi.n 1a3a6 <_malloc_r+0x406> 1a3a0: 2b0f cmp r3, #15 1a3a2: f73f af50 bgt.w 1a246 <_malloc_r+0x2a6> 1a3a6: 4628 mov r0, r5 1a3a8: f000 f8fc bl 1a5a4 <__malloc_unlock> 1a3ac: 2400 movs r4, #0 1a3ae: e620 b.n 19ff2 <_malloc_r+0x52> 1a3b0: f103 0c5c add.w ip, r3, #92 ; 0x5c 1a3b4: f103 045b add.w r4, r3, #91 ; 0x5b 1a3b8: ea4f 03cc mov.w r3, ip, lsl #3 1a3bc: e634 b.n 1a028 <_malloc_r+0x88> 1a3be: f85a 3908 ldr.w r3, [sl], #-8 1a3c2: 4553 cmp r3, sl 1a3c4: f040 8098 bne.w 1a4f8 <_malloc_r+0x558> 1a3c8: f01c 0f03 tst.w ip, #3 1a3cc: f10c 3cff add.w ip, ip, #4294967295 ; 0xffffffff 1a3d0: d1f5 bne.n 1a3be <_malloc_r+0x41e> 1a3d2: 687b ldr r3, [r7, #4] 1a3d4: ea23 0300 bic.w r3, r3, r0 1a3d8: 607b str r3, [r7, #4] 1a3da: 0040 lsls r0, r0, #1 1a3dc: 4298 cmp r0, r3 1a3de: f63f aead bhi.w 1a13c <_malloc_r+0x19c> 1a3e2: b918 cbnz r0, 1a3ec <_malloc_r+0x44c> 1a3e4: e6aa b.n 1a13c <_malloc_r+0x19c> 1a3e6: 0040 lsls r0, r0, #1 1a3e8: f109 0904 add.w r9, r9, #4 1a3ec: 4218 tst r0, r3 1a3ee: d0fa beq.n 1a3e6 <_malloc_r+0x446> 1a3f0: 46cc mov ip, r9 1a3f2: e664 b.n 1a0be <_malloc_r+0x11e> 1a3f4: f103 0810 add.w r8, r3, #16 1a3f8: e6bd b.n 1a176 <_malloc_r+0x1d6> 1a3fa: 6879 ldr r1, [r7, #4] 1a3fc: 1092 asrs r2, r2, #2 1a3fe: f04f 0e01 mov.w lr, #1 1a402: fa0e f202 lsl.w r2, lr, r2 1a406: 430a orrs r2, r1 1a408: 607a str r2, [r7, #4] 1a40a: e765 b.n 1a2d8 <_malloc_r+0x338> 1a40c: eb02 0108 add.w r1, r2, r8 1a410: 4249 negs r1, r1 1a412: f3c1 0a0b ubfx sl, r1, #0, #12 1a416: 4651 mov r1, sl 1a418: 4628 mov r0, r5 1a41a: 9200 str r2, [sp, #0] 1a41c: f000 fc72 bl 1ad04 <_sbrk_r> 1a420: 1c43 adds r3, r0, #1 1a422: e9dd 2300 ldrd r2, r3, [sp] 1a426: f47f aedc bne.w 1a1e2 <_malloc_r+0x242> 1a42a: 46da mov sl, fp 1a42c: e6dc b.n 1a1e8 <_malloc_r+0x248> 1a42e: 2a54 cmp r2, #84 ; 0x54 1a430: d826 bhi.n 1a480 <_malloc_r+0x4e0> 1a432: 0b0a lsrs r2, r1, #12 1a434: f102 036f add.w r3, r2, #111 ; 0x6f 1a438: 00db lsls r3, r3, #3 1a43a: 326e adds r2, #110 ; 0x6e 1a43c: e73c b.n 1a2b8 <_malloc_r+0x318> 1a43e: f5b3 7faa cmp.w r3, #340 ; 0x154 1a442: d826 bhi.n 1a492 <_malloc_r+0x4f2> 1a444: 0bf3 lsrs r3, r6, #15 1a446: f103 0c78 add.w ip, r3, #120 ; 0x78 1a44a: f103 0477 add.w r4, r3, #119 ; 0x77 1a44e: ea4f 03cc mov.w r3, ip, lsl #3 1a452: e5e9 b.n 1a028 <_malloc_r+0x88> 1a454: 4b29 ldr r3, [pc, #164] ; (1a4fc <_malloc_r+0x55c>) 1a456: 6818 ldr r0, [r3, #0] 1a458: 4440 add r0, r8 1a45a: 6018 str r0, [r3, #0] 1a45c: e69d b.n 1a19a <_malloc_r+0x1fa> 1a45e: f3ca 0c0b ubfx ip, sl, #0, #12 1a462: f1bc 0f00 cmp.w ip, #0 1a466: f47f ae98 bne.w 1a19a <_malloc_r+0x1fa> 1a46a: 68bc ldr r4, [r7, #8] 1a46c: 44c8 add r8, r9 1a46e: f048 0001 orr.w r0, r8, #1 1a472: 6060 str r0, [r4, #4] 1a474: e6dc b.n 1a230 <_malloc_r+0x290> 1a476: 4614 mov r4, r2 1a478: e6da b.n 1a230 <_malloc_r+0x290> 1a47a: 2301 movs r3, #1 1a47c: 6053 str r3, [r2, #4] 1a47e: e792 b.n 1a3a6 <_malloc_r+0x406> 1a480: f5b2 7faa cmp.w r2, #340 ; 0x154 1a484: d824 bhi.n 1a4d0 <_malloc_r+0x530> 1a486: 0bca lsrs r2, r1, #15 1a488: f102 0378 add.w r3, r2, #120 ; 0x78 1a48c: 00db lsls r3, r3, #3 1a48e: 3277 adds r2, #119 ; 0x77 1a490: e712 b.n 1a2b8 <_malloc_r+0x318> 1a492: f240 5254 movw r2, #1364 ; 0x554 1a496: 4293 cmp r3, r2 1a498: d824 bhi.n 1a4e4 <_malloc_r+0x544> 1a49a: 0cb3 lsrs r3, r6, #18 1a49c: f103 0c7d add.w ip, r3, #125 ; 0x7d 1a4a0: f103 047c add.w r4, r3, #124 ; 0x7c 1a4a4: ea4f 03cc mov.w r3, ip, lsl #3 1a4a8: e5be b.n 1a028 <_malloc_r+0x88> 1a4aa: f1ab 0b08 sub.w fp, fp, #8 1a4ae: 44d8 add r8, fp 1a4b0: eba8 0802 sub.w r8, r8, r2 1a4b4: f04f 0a00 mov.w sl, #0 1a4b8: e696 b.n 1a1e8 <_malloc_r+0x248> 1a4ba: f104 0108 add.w r1, r4, #8 1a4be: 4628 mov r0, r5 1a4c0: 9300 str r3, [sp, #0] 1a4c2: f7ff fbd9 bl 19c78 <_free_r> 1a4c6: 68bc ldr r4, [r7, #8] 1a4c8: 9b00 ldr r3, [sp, #0] 1a4ca: 6860 ldr r0, [r4, #4] 1a4cc: 6819 ldr r1, [r3, #0] 1a4ce: e6af b.n 1a230 <_malloc_r+0x290> 1a4d0: f240 5354 movw r3, #1364 ; 0x554 1a4d4: 429a cmp r2, r3 1a4d6: d80b bhi.n 1a4f0 <_malloc_r+0x550> 1a4d8: 0c8a lsrs r2, r1, #18 1a4da: f102 037d add.w r3, r2, #125 ; 0x7d 1a4de: 00db lsls r3, r3, #3 1a4e0: 327c adds r2, #124 ; 0x7c 1a4e2: e6e9 b.n 1a2b8 <_malloc_r+0x318> 1a4e4: f44f 737e mov.w r3, #1016 ; 0x3f8 1a4e8: f04f 0c7f mov.w ip, #127 ; 0x7f 1a4ec: 247e movs r4, #126 ; 0x7e 1a4ee: e59b b.n 1a028 <_malloc_r+0x88> 1a4f0: f44f 737e mov.w r3, #1016 ; 0x3f8 1a4f4: 227e movs r2, #126 ; 0x7e 1a4f6: e6df b.n 1a2b8 <_malloc_r+0x318> 1a4f8: 687b ldr r3, [r7, #4] 1a4fa: e76e b.n 1a3da <_malloc_r+0x43a> 1a4fc: 2000d19c .word 0x2000d19c 0001a500 : 1a500: f001 01ff and.w r1, r1, #255 ; 0xff 1a504: 2a10 cmp r2, #16 1a506: db2b blt.n 1a560 1a508: f010 0f07 tst.w r0, #7 1a50c: d008 beq.n 1a520 1a50e: f810 3b01 ldrb.w r3, [r0], #1 1a512: 3a01 subs r2, #1 1a514: 428b cmp r3, r1 1a516: d02d beq.n 1a574 1a518: f010 0f07 tst.w r0, #7 1a51c: b342 cbz r2, 1a570 1a51e: d1f6 bne.n 1a50e 1a520: b4f0 push {r4, r5, r6, r7} 1a522: ea41 2101 orr.w r1, r1, r1, lsl #8 1a526: ea41 4101 orr.w r1, r1, r1, lsl #16 1a52a: f022 0407 bic.w r4, r2, #7 1a52e: f07f 0700 mvns.w r7, #0 1a532: 2300 movs r3, #0 1a534: e8f0 5602 ldrd r5, r6, [r0], #8 1a538: 3c08 subs r4, #8 1a53a: ea85 0501 eor.w r5, r5, r1 1a53e: ea86 0601 eor.w r6, r6, r1 1a542: fa85 f547 uadd8 r5, r5, r7 1a546: faa3 f587 sel r5, r3, r7 1a54a: fa86 f647 uadd8 r6, r6, r7 1a54e: faa5 f687 sel r6, r5, r7 1a552: b98e cbnz r6, 1a578 1a554: d1ee bne.n 1a534 1a556: bcf0 pop {r4, r5, r6, r7} 1a558: f001 01ff and.w r1, r1, #255 ; 0xff 1a55c: f002 0207 and.w r2, r2, #7 1a560: b132 cbz r2, 1a570 1a562: f810 3b01 ldrb.w r3, [r0], #1 1a566: 3a01 subs r2, #1 1a568: ea83 0301 eor.w r3, r3, r1 1a56c: b113 cbz r3, 1a574 1a56e: d1f8 bne.n 1a562 1a570: 2000 movs r0, #0 1a572: 4770 bx lr 1a574: 3801 subs r0, #1 1a576: 4770 bx lr 1a578: 2d00 cmp r5, #0 1a57a: bf06 itte eq 1a57c: 4635 moveq r5, r6 1a57e: 3803 subeq r0, #3 1a580: 3807 subne r0, #7 1a582: f015 0f01 tst.w r5, #1 1a586: d107 bne.n 1a598 1a588: 3001 adds r0, #1 1a58a: f415 7f80 tst.w r5, #256 ; 0x100 1a58e: bf02 ittt eq 1a590: 3001 addeq r0, #1 1a592: f415 3fc0 tsteq.w r5, #98304 ; 0x18000 1a596: 3001 addeq r0, #1 1a598: bcf0 pop {r4, r5, r6, r7} 1a59a: 3801 subs r0, #1 1a59c: 4770 bx lr 1a59e: bf00 nop 0001a5a0 <__malloc_lock>: 1a5a0: 4770 bx lr 1a5a2: bf00 nop 0001a5a4 <__malloc_unlock>: 1a5a4: 4770 bx lr 1a5a6: bf00 nop 0001a5a8 <_Balloc>: 1a5a8: 6cc3 ldr r3, [r0, #76] ; 0x4c 1a5aa: b570 push {r4, r5, r6, lr} 1a5ac: 4605 mov r5, r0 1a5ae: 460c mov r4, r1 1a5b0: b14b cbz r3, 1a5c6 <_Balloc+0x1e> 1a5b2: f853 0024 ldr.w r0, [r3, r4, lsl #2] 1a5b6: b180 cbz r0, 1a5da <_Balloc+0x32> 1a5b8: 6802 ldr r2, [r0, #0] 1a5ba: f843 2024 str.w r2, [r3, r4, lsl #2] 1a5be: 2300 movs r3, #0 1a5c0: e9c0 3303 strd r3, r3, [r0, #12] 1a5c4: bd70 pop {r4, r5, r6, pc} 1a5c6: 2221 movs r2, #33 ; 0x21 1a5c8: 2104 movs r1, #4 1a5ca: f001 fab5 bl 1bb38 <_calloc_r> 1a5ce: 4603 mov r3, r0 1a5d0: 64e8 str r0, [r5, #76] ; 0x4c 1a5d2: 2800 cmp r0, #0 1a5d4: d1ed bne.n 1a5b2 <_Balloc+0xa> 1a5d6: 2000 movs r0, #0 1a5d8: bd70 pop {r4, r5, r6, pc} 1a5da: 2101 movs r1, #1 1a5dc: fa01 f604 lsl.w r6, r1, r4 1a5e0: 1d72 adds r2, r6, #5 1a5e2: 0092 lsls r2, r2, #2 1a5e4: 4628 mov r0, r5 1a5e6: f001 faa7 bl 1bb38 <_calloc_r> 1a5ea: 2800 cmp r0, #0 1a5ec: d0f3 beq.n 1a5d6 <_Balloc+0x2e> 1a5ee: e9c0 4601 strd r4, r6, [r0, #4] 1a5f2: e7e4 b.n 1a5be <_Balloc+0x16> 0001a5f4 <_Bfree>: 1a5f4: b131 cbz r1, 1a604 <_Bfree+0x10> 1a5f6: 6cc3 ldr r3, [r0, #76] ; 0x4c 1a5f8: 684a ldr r2, [r1, #4] 1a5fa: f853 0022 ldr.w r0, [r3, r2, lsl #2] 1a5fe: 6008 str r0, [r1, #0] 1a600: f843 1022 str.w r1, [r3, r2, lsl #2] 1a604: 4770 bx lr 1a606: bf00 nop 0001a608 <__multadd>: 1a608: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} 1a60c: 690d ldr r5, [r1, #16] 1a60e: 4607 mov r7, r0 1a610: 460e mov r6, r1 1a612: 461c mov r4, r3 1a614: f101 0e14 add.w lr, r1, #20 1a618: 2000 movs r0, #0 1a61a: f8de 1000 ldr.w r1, [lr] 1a61e: b28b uxth r3, r1 1a620: fb02 4303 mla r3, r2, r3, r4 1a624: ea4f 4c13 mov.w ip, r3, lsr #16 1a628: 0c09 lsrs r1, r1, #16 1a62a: fb02 cc01 mla ip, r2, r1, ip 1a62e: 3001 adds r0, #1 1a630: b29b uxth r3, r3 1a632: eb03 430c add.w r3, r3, ip, lsl #16 1a636: 4285 cmp r5, r0 1a638: f84e 3b04 str.w r3, [lr], #4 1a63c: ea4f 441c mov.w r4, ip, lsr #16 1a640: dceb bgt.n 1a61a <__multadd+0x12> 1a642: b13c cbz r4, 1a654 <__multadd+0x4c> 1a644: 68b3 ldr r3, [r6, #8] 1a646: 42ab cmp r3, r5 1a648: dd07 ble.n 1a65a <__multadd+0x52> 1a64a: eb06 0385 add.w r3, r6, r5, lsl #2 1a64e: 3501 adds r5, #1 1a650: 615c str r4, [r3, #20] 1a652: 6135 str r5, [r6, #16] 1a654: 4630 mov r0, r6 1a656: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} 1a65a: 6871 ldr r1, [r6, #4] 1a65c: 4638 mov r0, r7 1a65e: 3101 adds r1, #1 1a660: f7ff ffa2 bl 1a5a8 <_Balloc> 1a664: 4680 mov r8, r0 1a666: b1a8 cbz r0, 1a694 <__multadd+0x8c> 1a668: 6932 ldr r2, [r6, #16] 1a66a: 3202 adds r2, #2 1a66c: f106 010c add.w r1, r6, #12 1a670: 0092 lsls r2, r2, #2 1a672: 300c adds r0, #12 1a674: f7fc fb2a bl 16ccc 1a678: 6cfb ldr r3, [r7, #76] ; 0x4c 1a67a: 6872 ldr r2, [r6, #4] 1a67c: f853 1022 ldr.w r1, [r3, r2, lsl #2] 1a680: 6031 str r1, [r6, #0] 1a682: f843 6022 str.w r6, [r3, r2, lsl #2] 1a686: 4646 mov r6, r8 1a688: eb06 0385 add.w r3, r6, r5, lsl #2 1a68c: 3501 adds r5, #1 1a68e: 615c str r4, [r3, #20] 1a690: 6135 str r5, [r6, #16] 1a692: e7df b.n 1a654 <__multadd+0x4c> 1a694: 4b02 ldr r3, [pc, #8] ; (1a6a0 <__multadd+0x98>) 1a696: 4803 ldr r0, [pc, #12] ; (1a6a4 <__multadd+0x9c>) 1a698: 4642 mov r2, r8 1a69a: 21b5 movs r1, #181 ; 0xb5 1a69c: f001 fa2c bl 1baf8 <__assert_func> 1a6a0: 0002c0e0 .word 0x0002c0e0 1a6a4: 0002c164 .word 0x0002c164 0001a6a8 <__hi0bits>: 1a6a8: 0c02 lsrs r2, r0, #16 1a6aa: 0412 lsls r2, r2, #16 1a6ac: 4603 mov r3, r0 1a6ae: b9ca cbnz r2, 1a6e4 <__hi0bits+0x3c> 1a6b0: 0403 lsls r3, r0, #16 1a6b2: 2010 movs r0, #16 1a6b4: f013 4f7f tst.w r3, #4278190080 ; 0xff000000 1a6b8: bf04 itt eq 1a6ba: 021b lsleq r3, r3, #8 1a6bc: 3008 addeq r0, #8 1a6be: f013 4f70 tst.w r3, #4026531840 ; 0xf0000000 1a6c2: bf04 itt eq 1a6c4: 011b lsleq r3, r3, #4 1a6c6: 3004 addeq r0, #4 1a6c8: f013 4f40 tst.w r3, #3221225472 ; 0xc0000000 1a6cc: bf04 itt eq 1a6ce: 009b lsleq r3, r3, #2 1a6d0: 3002 addeq r0, #2 1a6d2: 2b00 cmp r3, #0 1a6d4: db05 blt.n 1a6e2 <__hi0bits+0x3a> 1a6d6: f013 4f80 tst.w r3, #1073741824 ; 0x40000000 1a6da: f100 0001 add.w r0, r0, #1 1a6de: bf08 it eq 1a6e0: 2020 moveq r0, #32 1a6e2: 4770 bx lr 1a6e4: 2000 movs r0, #0 1a6e6: e7e5 b.n 1a6b4 <__hi0bits+0xc> 0001a6e8 <__lo0bits>: 1a6e8: 6803 ldr r3, [r0, #0] 1a6ea: f013 0207 ands.w r2, r3, #7 1a6ee: 4601 mov r1, r0 1a6f0: d007 beq.n 1a702 <__lo0bits+0x1a> 1a6f2: 07da lsls r2, r3, #31 1a6f4: d41f bmi.n 1a736 <__lo0bits+0x4e> 1a6f6: 0798 lsls r0, r3, #30 1a6f8: d521 bpl.n 1a73e <__lo0bits+0x56> 1a6fa: 085b lsrs r3, r3, #1 1a6fc: 600b str r3, [r1, #0] 1a6fe: 2001 movs r0, #1 1a700: 4770 bx lr 1a702: b298 uxth r0, r3 1a704: b1a0 cbz r0, 1a730 <__lo0bits+0x48> 1a706: 4610 mov r0, r2 1a708: b2da uxtb r2, r3 1a70a: b90a cbnz r2, 1a710 <__lo0bits+0x28> 1a70c: 3008 adds r0, #8 1a70e: 0a1b lsrs r3, r3, #8 1a710: 071a lsls r2, r3, #28 1a712: bf04 itt eq 1a714: 091b lsreq r3, r3, #4 1a716: 3004 addeq r0, #4 1a718: 079a lsls r2, r3, #30 1a71a: bf04 itt eq 1a71c: 089b lsreq r3, r3, #2 1a71e: 3002 addeq r0, #2 1a720: 07da lsls r2, r3, #31 1a722: d403 bmi.n 1a72c <__lo0bits+0x44> 1a724: 085b lsrs r3, r3, #1 1a726: f100 0001 add.w r0, r0, #1 1a72a: d006 beq.n 1a73a <__lo0bits+0x52> 1a72c: 600b str r3, [r1, #0] 1a72e: 4770 bx lr 1a730: 0c1b lsrs r3, r3, #16 1a732: 2010 movs r0, #16 1a734: e7e8 b.n 1a708 <__lo0bits+0x20> 1a736: 2000 movs r0, #0 1a738: 4770 bx lr 1a73a: 2020 movs r0, #32 1a73c: 4770 bx lr 1a73e: 089b lsrs r3, r3, #2 1a740: 600b str r3, [r1, #0] 1a742: 2002 movs r0, #2 1a744: 4770 bx lr 1a746: bf00 nop 0001a748 <__i2b>: 1a748: b538 push {r3, r4, r5, lr} 1a74a: 6cc3 ldr r3, [r0, #76] ; 0x4c 1a74c: 4604 mov r4, r0 1a74e: 460d mov r5, r1 1a750: b14b cbz r3, 1a766 <__i2b+0x1e> 1a752: 6858 ldr r0, [r3, #4] 1a754: b1b0 cbz r0, 1a784 <__i2b+0x3c> 1a756: 6802 ldr r2, [r0, #0] 1a758: 605a str r2, [r3, #4] 1a75a: 2200 movs r2, #0 1a75c: 2301 movs r3, #1 1a75e: e9c0 3504 strd r3, r5, [r0, #16] 1a762: 60c2 str r2, [r0, #12] 1a764: bd38 pop {r3, r4, r5, pc} 1a766: 2221 movs r2, #33 ; 0x21 1a768: 2104 movs r1, #4 1a76a: f001 f9e5 bl 1bb38 <_calloc_r> 1a76e: 4603 mov r3, r0 1a770: 64e0 str r0, [r4, #76] ; 0x4c 1a772: 2800 cmp r0, #0 1a774: d1ed bne.n 1a752 <__i2b+0xa> 1a776: 4b09 ldr r3, [pc, #36] ; (1a79c <__i2b+0x54>) 1a778: 4809 ldr r0, [pc, #36] ; (1a7a0 <__i2b+0x58>) 1a77a: 2200 movs r2, #0 1a77c: f44f 71a0 mov.w r1, #320 ; 0x140 1a780: f001 f9ba bl 1baf8 <__assert_func> 1a784: 221c movs r2, #28 1a786: 2101 movs r1, #1 1a788: 4620 mov r0, r4 1a78a: f001 f9d5 bl 1bb38 <_calloc_r> 1a78e: 2800 cmp r0, #0 1a790: d0f1 beq.n 1a776 <__i2b+0x2e> 1a792: 2201 movs r2, #1 1a794: 2302 movs r3, #2 1a796: e9c0 2301 strd r2, r3, [r0, #4] 1a79a: e7de b.n 1a75a <__i2b+0x12> 1a79c: 0002c0e0 .word 0x0002c0e0 1a7a0: 0002c164 .word 0x0002c164 0001a7a4 <__multiply>: 1a7a4: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} 1a7a8: 690e ldr r6, [r1, #16] 1a7aa: 6915 ldr r5, [r2, #16] 1a7ac: 42ae cmp r6, r5 1a7ae: b085 sub sp, #20 1a7b0: 4688 mov r8, r1 1a7b2: 4614 mov r4, r2 1a7b4: db05 blt.n 1a7c2 <__multiply+0x1e> 1a7b6: 462a mov r2, r5 1a7b8: 4623 mov r3, r4 1a7ba: 4635 mov r5, r6 1a7bc: 460c mov r4, r1 1a7be: 4616 mov r6, r2 1a7c0: 4698 mov r8, r3 1a7c2: 68a3 ldr r3, [r4, #8] 1a7c4: 6861 ldr r1, [r4, #4] 1a7c6: 19af adds r7, r5, r6 1a7c8: 42bb cmp r3, r7 1a7ca: bfb8 it lt 1a7cc: 3101 addlt r1, #1 1a7ce: f7ff feeb bl 1a5a8 <_Balloc> 1a7d2: 9001 str r0, [sp, #4] 1a7d4: 2800 cmp r0, #0 1a7d6: f000 8087 beq.w 1a8e8 <__multiply+0x144> 1a7da: 9b01 ldr r3, [sp, #4] 1a7dc: f103 0914 add.w r9, r3, #20 1a7e0: eb09 0a87 add.w sl, r9, r7, lsl #2 1a7e4: 45d1 cmp r9, sl 1a7e6: d205 bcs.n 1a7f4 <__multiply+0x50> 1a7e8: 464b mov r3, r9 1a7ea: 2200 movs r2, #0 1a7ec: f843 2b04 str.w r2, [r3], #4 1a7f0: 459a cmp sl, r3 1a7f2: d8fb bhi.n 1a7ec <__multiply+0x48> 1a7f4: f108 0814 add.w r8, r8, #20 1a7f8: eb08 0b86 add.w fp, r8, r6, lsl #2 1a7fc: f104 0314 add.w r3, r4, #20 1a800: 45d8 cmp r8, fp 1a802: 461a mov r2, r3 1a804: eb03 0585 add.w r5, r3, r5, lsl #2 1a808: d25f bcs.n 1a8ca <__multiply+0x126> 1a80a: 1b2b subs r3, r5, r4 1a80c: 3b15 subs r3, #21 1a80e: f023 0303 bic.w r3, r3, #3 1a812: 3304 adds r3, #4 1a814: 3415 adds r4, #21 1a816: 42a5 cmp r5, r4 1a818: bf38 it cc 1a81a: 2304 movcc r3, #4 1a81c: e9cd a702 strd sl, r7, [sp, #8] 1a820: 46ac mov ip, r5 1a822: 461f mov r7, r3 1a824: 4692 mov sl, r2 1a826: e005 b.n 1a834 <__multiply+0x90> 1a828: 0c09 lsrs r1, r1, #16 1a82a: d129 bne.n 1a880 <__multiply+0xdc> 1a82c: 45c3 cmp fp, r8 1a82e: f109 0904 add.w r9, r9, #4 1a832: d948 bls.n 1a8c6 <__multiply+0x122> 1a834: f858 1b04 ldr.w r1, [r8], #4 1a838: b28d uxth r5, r1 1a83a: 2d00 cmp r5, #0 1a83c: d0f4 beq.n 1a828 <__multiply+0x84> 1a83e: 4656 mov r6, sl 1a840: 464c mov r4, r9 1a842: 2300 movs r3, #0 1a844: f856 1b04 ldr.w r1, [r6], #4 1a848: 6822 ldr r2, [r4, #0] 1a84a: fa1f fe81 uxth.w lr, r1 1a84e: b290 uxth r0, r2 1a850: 0c09 lsrs r1, r1, #16 1a852: fb05 000e mla r0, r5, lr, r0 1a856: 0c12 lsrs r2, r2, #16 1a858: 4403 add r3, r0 1a85a: fb05 2201 mla r2, r5, r1, r2 1a85e: eb02 4213 add.w r2, r2, r3, lsr #16 1a862: b29b uxth r3, r3 1a864: ea43 4302 orr.w r3, r3, r2, lsl #16 1a868: 45b4 cmp ip, r6 1a86a: f844 3b04 str.w r3, [r4], #4 1a86e: ea4f 4312 mov.w r3, r2, lsr #16 1a872: d8e7 bhi.n 1a844 <__multiply+0xa0> 1a874: f849 3007 str.w r3, [r9, r7] 1a878: f858 1c04 ldr.w r1, [r8, #-4] 1a87c: 0c09 lsrs r1, r1, #16 1a87e: d0d5 beq.n 1a82c <__multiply+0x88> 1a880: f8d9 3000 ldr.w r3, [r9] 1a884: 4650 mov r0, sl 1a886: 461a mov r2, r3 1a888: 464c mov r4, r9 1a88a: 2600 movs r6, #0 1a88c: 8805 ldrh r5, [r0, #0] 1a88e: 0c12 lsrs r2, r2, #16 1a890: fb01 2205 mla r2, r1, r5, r2 1a894: 4416 add r6, r2 1a896: b29b uxth r3, r3 1a898: ea43 4306 orr.w r3, r3, r6, lsl #16 1a89c: f844 3b04 str.w r3, [r4], #4 1a8a0: f850 5b04 ldr.w r5, [r0], #4 1a8a4: 6822 ldr r2, [r4, #0] 1a8a6: 0c2d lsrs r5, r5, #16 1a8a8: b293 uxth r3, r2 1a8aa: fb01 3305 mla r3, r1, r5, r3 1a8ae: eb03 4316 add.w r3, r3, r6, lsr #16 1a8b2: 4584 cmp ip, r0 1a8b4: ea4f 4613 mov.w r6, r3, lsr #16 1a8b8: d8e8 bhi.n 1a88c <__multiply+0xe8> 1a8ba: 45c3 cmp fp, r8 1a8bc: f849 3007 str.w r3, [r9, r7] 1a8c0: f109 0904 add.w r9, r9, #4 1a8c4: d8b6 bhi.n 1a834 <__multiply+0x90> 1a8c6: e9dd a702 ldrd sl, r7, [sp, #8] 1a8ca: 2f00 cmp r7, #0 1a8cc: dc02 bgt.n 1a8d4 <__multiply+0x130> 1a8ce: e005 b.n 1a8dc <__multiply+0x138> 1a8d0: 3f01 subs r7, #1 1a8d2: d003 beq.n 1a8dc <__multiply+0x138> 1a8d4: f85a 3d04 ldr.w r3, [sl, #-4]! 1a8d8: 2b00 cmp r3, #0 1a8da: d0f9 beq.n 1a8d0 <__multiply+0x12c> 1a8dc: 9b01 ldr r3, [sp, #4] 1a8de: 4618 mov r0, r3 1a8e0: 611f str r7, [r3, #16] 1a8e2: b005 add sp, #20 1a8e4: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} 1a8e8: 4b03 ldr r3, [pc, #12] ; (1a8f8 <__multiply+0x154>) 1a8ea: 4804 ldr r0, [pc, #16] ; (1a8fc <__multiply+0x158>) 1a8ec: 9a01 ldr r2, [sp, #4] 1a8ee: f240 115d movw r1, #349 ; 0x15d 1a8f2: f001 f901 bl 1baf8 <__assert_func> 1a8f6: bf00 nop 1a8f8: 0002c0e0 .word 0x0002c0e0 1a8fc: 0002c164 .word 0x0002c164 0001a900 <__pow5mult>: 1a900: f012 0303 ands.w r3, r2, #3 1a904: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} 1a908: 4614 mov r4, r2 1a90a: 4606 mov r6, r0 1a90c: d132 bne.n 1a974 <__pow5mult+0x74> 1a90e: 460d mov r5, r1 1a910: 10a4 asrs r4, r4, #2 1a912: d020 beq.n 1a956 <__pow5mult+0x56> 1a914: f8d6 8048 ldr.w r8, [r6, #72] ; 0x48 1a918: f1b8 0f00 cmp.w r8, #0 1a91c: d033 beq.n 1a986 <__pow5mult+0x86> 1a91e: 07e3 lsls r3, r4, #31 1a920: f04f 0700 mov.w r7, #0 1a924: d407 bmi.n 1a936 <__pow5mult+0x36> 1a926: 1064 asrs r4, r4, #1 1a928: d015 beq.n 1a956 <__pow5mult+0x56> 1a92a: f8d8 0000 ldr.w r0, [r8] 1a92e: b1a8 cbz r0, 1a95c <__pow5mult+0x5c> 1a930: 4680 mov r8, r0 1a932: 07e3 lsls r3, r4, #31 1a934: d5f7 bpl.n 1a926 <__pow5mult+0x26> 1a936: 4642 mov r2, r8 1a938: 4629 mov r1, r5 1a93a: 4630 mov r0, r6 1a93c: f7ff ff32 bl 1a7a4 <__multiply> 1a940: b1b5 cbz r5, 1a970 <__pow5mult+0x70> 1a942: 6869 ldr r1, [r5, #4] 1a944: 6cf3 ldr r3, [r6, #76] ; 0x4c 1a946: 1064 asrs r4, r4, #1 1a948: f853 2021 ldr.w r2, [r3, r1, lsl #2] 1a94c: 602a str r2, [r5, #0] 1a94e: f843 5021 str.w r5, [r3, r1, lsl #2] 1a952: 4605 mov r5, r0 1a954: d1e9 bne.n 1a92a <__pow5mult+0x2a> 1a956: 4628 mov r0, r5 1a958: e8bd 81f0 ldmia.w sp!, {r4, r5, r6, r7, r8, pc} 1a95c: 4642 mov r2, r8 1a95e: 4641 mov r1, r8 1a960: 4630 mov r0, r6 1a962: f7ff ff1f bl 1a7a4 <__multiply> 1a966: f8c8 0000 str.w r0, [r8] 1a96a: 6007 str r7, [r0, #0] 1a96c: 4680 mov r8, r0 1a96e: e7e0 b.n 1a932 <__pow5mult+0x32> 1a970: 4605 mov r5, r0 1a972: e7d8 b.n 1a926 <__pow5mult+0x26> 1a974: 3b01 subs r3, #1 1a976: 4a0f ldr r2, [pc, #60] ; (1a9b4 <__pow5mult+0xb4>) 1a978: f852 2023 ldr.w r2, [r2, r3, lsl #2] 1a97c: 2300 movs r3, #0 1a97e: f7ff fe43 bl 1a608 <__multadd> 1a982: 4605 mov r5, r0 1a984: e7c4 b.n 1a910 <__pow5mult+0x10> 1a986: 2101 movs r1, #1 1a988: 4630 mov r0, r6 1a98a: f7ff fe0d bl 1a5a8 <_Balloc> 1a98e: 4680 mov r8, r0 1a990: b140 cbz r0, 1a9a4 <__pow5mult+0xa4> 1a992: 2301 movs r3, #1 1a994: f240 2271 movw r2, #625 ; 0x271 1a998: e9c0 3204 strd r3, r2, [r0, #16] 1a99c: 2300 movs r3, #0 1a99e: 64b0 str r0, [r6, #72] ; 0x48 1a9a0: 6003 str r3, [r0, #0] 1a9a2: e7bc b.n 1a91e <__pow5mult+0x1e> 1a9a4: 4b04 ldr r3, [pc, #16] ; (1a9b8 <__pow5mult+0xb8>) 1a9a6: 4805 ldr r0, [pc, #20] ; (1a9bc <__pow5mult+0xbc>) 1a9a8: 4642 mov r2, r8 1a9aa: f44f 71a0 mov.w r1, #320 ; 0x140 1a9ae: f001 f8a3 bl 1baf8 <__assert_func> 1a9b2: bf00 nop 1a9b4: 0002c2c8 .word 0x0002c2c8 1a9b8: 0002c0e0 .word 0x0002c0e0 1a9bc: 0002c164 .word 0x0002c164 0001a9c0 <__lshift>: 1a9c0: e92d 47f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, lr} 1a9c4: 460c mov r4, r1 1a9c6: 4690 mov r8, r2 1a9c8: 6926 ldr r6, [r4, #16] 1a9ca: 68a3 ldr r3, [r4, #8] 1a9cc: 6849 ldr r1, [r1, #4] 1a9ce: eb06 1662 add.w r6, r6, r2, asr #5 1a9d2: 1c75 adds r5, r6, #1 1a9d4: 429d cmp r5, r3 1a9d6: 4607 mov r7, r0 1a9d8: ea4f 1962 mov.w r9, r2, asr #5 1a9dc: dd04 ble.n 1a9e8 <__lshift+0x28> 1a9de: 005b lsls r3, r3, #1 1a9e0: 429d cmp r5, r3 1a9e2: f101 0101 add.w r1, r1, #1 1a9e6: dcfa bgt.n 1a9de <__lshift+0x1e> 1a9e8: 4638 mov r0, r7 1a9ea: f7ff fddd bl 1a5a8 <_Balloc> 1a9ee: 4684 mov ip, r0 1a9f0: 2800 cmp r0, #0 1a9f2: d051 beq.n 1aa98 <__lshift+0xd8> 1a9f4: f1b9 0f00 cmp.w r9, #0 1a9f8: f100 0014 add.w r0, r0, #20 1a9fc: dd0e ble.n 1aa1c <__lshift+0x5c> 1a9fe: f109 0205 add.w r2, r9, #5 1aa02: ea4f 0e82 mov.w lr, r2, lsl #2 1aa06: 4603 mov r3, r0 1aa08: eb0c 0282 add.w r2, ip, r2, lsl #2 1aa0c: 2100 movs r1, #0 1aa0e: f843 1b04 str.w r1, [r3], #4 1aa12: 4293 cmp r3, r2 1aa14: d1fb bne.n 1aa0e <__lshift+0x4e> 1aa16: f1ae 0314 sub.w r3, lr, #20 1aa1a: 4418 add r0, r3 1aa1c: 6921 ldr r1, [r4, #16] 1aa1e: f104 0314 add.w r3, r4, #20 1aa22: f018 081f ands.w r8, r8, #31 1aa26: eb03 0181 add.w r1, r3, r1, lsl #2 1aa2a: d02d beq.n 1aa88 <__lshift+0xc8> 1aa2c: f1c8 0920 rsb r9, r8, #32 1aa30: 4686 mov lr, r0 1aa32: f04f 0a00 mov.w sl, #0 1aa36: 681a ldr r2, [r3, #0] 1aa38: fa02 f208 lsl.w r2, r2, r8 1aa3c: ea42 020a orr.w r2, r2, sl 1aa40: f84e 2b04 str.w r2, [lr], #4 1aa44: f853 2b04 ldr.w r2, [r3], #4 1aa48: 4299 cmp r1, r3 1aa4a: fa22 fa09 lsr.w sl, r2, r9 1aa4e: d8f2 bhi.n 1aa36 <__lshift+0x76> 1aa50: 1b0b subs r3, r1, r4 1aa52: 3b15 subs r3, #21 1aa54: f023 0303 bic.w r3, r3, #3 1aa58: 3304 adds r3, #4 1aa5a: f104 0215 add.w r2, r4, #21 1aa5e: 4291 cmp r1, r2 1aa60: bf38 it cc 1aa62: 2304 movcc r3, #4 1aa64: f1ba 0f00 cmp.w sl, #0 1aa68: bf18 it ne 1aa6a: 462e movne r6, r5 1aa6c: f840 a003 str.w sl, [r0, r3] 1aa70: 6cfb ldr r3, [r7, #76] ; 0x4c 1aa72: 6862 ldr r2, [r4, #4] 1aa74: f8cc 6010 str.w r6, [ip, #16] 1aa78: f853 1022 ldr.w r1, [r3, r2, lsl #2] 1aa7c: 6021 str r1, [r4, #0] 1aa7e: 4660 mov r0, ip 1aa80: f843 4022 str.w r4, [r3, r2, lsl #2] 1aa84: e8bd 87f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, pc} 1aa88: 3804 subs r0, #4 1aa8a: f853 2b04 ldr.w r2, [r3], #4 1aa8e: f840 2f04 str.w r2, [r0, #4]! 1aa92: 4299 cmp r1, r3 1aa94: d8f9 bhi.n 1aa8a <__lshift+0xca> 1aa96: e7eb b.n 1aa70 <__lshift+0xb0> 1aa98: 4b03 ldr r3, [pc, #12] ; (1aaa8 <__lshift+0xe8>) 1aa9a: 4804 ldr r0, [pc, #16] ; (1aaac <__lshift+0xec>) 1aa9c: 4662 mov r2, ip 1aa9e: f240 11d9 movw r1, #473 ; 0x1d9 1aaa2: f001 f829 bl 1baf8 <__assert_func> 1aaa6: bf00 nop 1aaa8: 0002c0e0 .word 0x0002c0e0 1aaac: 0002c164 .word 0x0002c164 0001aab0 <__mcmp>: 1aab0: 690b ldr r3, [r1, #16] 1aab2: 4684 mov ip, r0 1aab4: 6900 ldr r0, [r0, #16] 1aab6: 1ac0 subs r0, r0, r3 1aab8: d115 bne.n 1aae6 <__mcmp+0x36> 1aaba: f10c 0c14 add.w ip, ip, #20 1aabe: 3114 adds r1, #20 1aac0: eb0c 0283 add.w r2, ip, r3, lsl #2 1aac4: b410 push {r4} 1aac6: eb01 0383 add.w r3, r1, r3, lsl #2 1aaca: e001 b.n 1aad0 <__mcmp+0x20> 1aacc: 4594 cmp ip, r2 1aace: d208 bcs.n 1aae2 <__mcmp+0x32> 1aad0: f852 4d04 ldr.w r4, [r2, #-4]! 1aad4: f853 1d04 ldr.w r1, [r3, #-4]! 1aad8: 428c cmp r4, r1 1aada: d0f7 beq.n 1aacc <__mcmp+0x1c> 1aadc: d204 bcs.n 1aae8 <__mcmp+0x38> 1aade: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff 1aae2: bc10 pop {r4} 1aae4: 4770 bx lr 1aae6: 4770 bx lr 1aae8: 2001 movs r0, #1 1aaea: bc10 pop {r4} 1aaec: 4770 bx lr 1aaee: bf00 nop 0001aaf0 <__mdiff>: 1aaf0: e92d 4ff8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr} 1aaf4: 690f ldr r7, [r1, #16] 1aaf6: 6913 ldr r3, [r2, #16] 1aaf8: 1aff subs r7, r7, r3 1aafa: 2f00 cmp r7, #0 1aafc: 460e mov r6, r1 1aafe: 4690 mov r8, r2 1ab00: d17f bne.n 1ac02 <__mdiff+0x112> 1ab02: f101 0514 add.w r5, r1, #20 1ab06: 3214 adds r2, #20 1ab08: eb02 0283 add.w r2, r2, r3, lsl #2 1ab0c: eb05 0383 add.w r3, r5, r3, lsl #2 1ab10: e001 b.n 1ab16 <__mdiff+0x26> 1ab12: 429d cmp r5, r3 1ab14: d278 bcs.n 1ac08 <__mdiff+0x118> 1ab16: f853 1d04 ldr.w r1, [r3, #-4]! 1ab1a: f852 4d04 ldr.w r4, [r2, #-4]! 1ab1e: 42a1 cmp r1, r4 1ab20: d0f7 beq.n 1ab12 <__mdiff+0x22> 1ab22: d369 bcc.n 1abf8 <__mdiff+0x108> 1ab24: 6871 ldr r1, [r6, #4] 1ab26: f7ff fd3f bl 1a5a8 <_Balloc> 1ab2a: 4681 mov r9, r0 1ab2c: 2800 cmp r0, #0 1ab2e: d077 beq.n 1ac20 <__mdiff+0x130> 1ab30: 6935 ldr r5, [r6, #16] 1ab32: f8d8 2010 ldr.w r2, [r8, #16] 1ab36: 60c7 str r7, [r0, #12] 1ab38: f108 0e14 add.w lr, r8, #20 1ab3c: f106 0014 add.w r0, r6, #20 1ab40: f109 0a14 add.w sl, r9, #20 1ab44: f106 0110 add.w r1, r6, #16 1ab48: eb0e 0282 add.w r2, lr, r2, lsl #2 1ab4c: eb00 0785 add.w r7, r0, r5, lsl #2 1ab50: 4656 mov r6, sl 1ab52: f04f 0c00 mov.w ip, #0 1ab56: f85e 4b04 ldr.w r4, [lr], #4 1ab5a: f851 bf04 ldr.w fp, [r1, #4]! 1ab5e: b2a3 uxth r3, r4 1ab60: fa1c fc8b uxtah ip, ip, fp 1ab64: ebac 0303 sub.w r3, ip, r3 1ab68: ea4f 4c14 mov.w ip, r4, lsr #16 1ab6c: ebcc 4c1b rsb ip, ip, fp, lsr #16 1ab70: eb0c 4c23 add.w ip, ip, r3, asr #16 1ab74: b29b uxth r3, r3 1ab76: ea43 430c orr.w r3, r3, ip, lsl #16 1ab7a: 4572 cmp r2, lr 1ab7c: f846 3b04 str.w r3, [r6], #4 1ab80: ea4f 4c2c mov.w ip, ip, asr #16 1ab84: d8e7 bhi.n 1ab56 <__mdiff+0x66> 1ab86: eba2 0108 sub.w r1, r2, r8 1ab8a: 3915 subs r1, #21 1ab8c: f108 0815 add.w r8, r8, #21 1ab90: 4542 cmp r2, r8 1ab92: f021 0403 bic.w r4, r1, #3 1ab96: f104 0404 add.w r4, r4, #4 1ab9a: bf38 it cc 1ab9c: 2404 movcc r4, #4 1ab9e: 4420 add r0, r4 1aba0: f021 0203 bic.w r2, r1, #3 1aba4: bf38 it cc 1aba6: 2200 movcc r2, #0 1aba8: 4287 cmp r7, r0 1abaa: 4452 add r2, sl 1abac: 4454 add r4, sl 1abae: d918 bls.n 1abe2 <__mdiff+0xf2> 1abb0: 4626 mov r6, r4 1abb2: 4601 mov r1, r0 1abb4: f851 3b04 ldr.w r3, [r1], #4 1abb8: fa1c fc83 uxtah ip, ip, r3 1abbc: ea4f 422c mov.w r2, ip, asr #16 1abc0: eb02 4213 add.w r2, r2, r3, lsr #16 1abc4: fa1f fc8c uxth.w ip, ip 1abc8: ea4c 4302 orr.w r3, ip, r2, lsl #16 1abcc: 428f cmp r7, r1 1abce: f846 3b04 str.w r3, [r6], #4 1abd2: ea4f 4c22 mov.w ip, r2, asr #16 1abd6: d8ed bhi.n 1abb4 <__mdiff+0xc4> 1abd8: 3f01 subs r7, #1 1abda: 1a3f subs r7, r7, r0 1abdc: f027 0703 bic.w r7, r7, #3 1abe0: 19e2 adds r2, r4, r7 1abe2: b923 cbnz r3, 1abee <__mdiff+0xfe> 1abe4: f852 3d04 ldr.w r3, [r2, #-4]! 1abe8: 3d01 subs r5, #1 1abea: 2b00 cmp r3, #0 1abec: d0fa beq.n 1abe4 <__mdiff+0xf4> 1abee: f8c9 5010 str.w r5, [r9, #16] 1abf2: 4648 mov r0, r9 1abf4: e8bd 8ff8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} 1abf8: 4633 mov r3, r6 1abfa: 2701 movs r7, #1 1abfc: 4646 mov r6, r8 1abfe: 4698 mov r8, r3 1ac00: e790 b.n 1ab24 <__mdiff+0x34> 1ac02: dbf9 blt.n 1abf8 <__mdiff+0x108> 1ac04: 2700 movs r7, #0 1ac06: e78d b.n 1ab24 <__mdiff+0x34> 1ac08: 2100 movs r1, #0 1ac0a: f7ff fccd bl 1a5a8 <_Balloc> 1ac0e: 4681 mov r9, r0 1ac10: b168 cbz r0, 1ac2e <__mdiff+0x13e> 1ac12: 2201 movs r2, #1 1ac14: 2300 movs r3, #0 1ac16: e9c9 2304 strd r2, r3, [r9, #16] 1ac1a: 4648 mov r0, r9 1ac1c: e8bd 8ff8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} 1ac20: 4b06 ldr r3, [pc, #24] ; (1ac3c <__mdiff+0x14c>) 1ac22: 4807 ldr r0, [pc, #28] ; (1ac40 <__mdiff+0x150>) 1ac24: 464a mov r2, r9 1ac26: f44f 7110 mov.w r1, #576 ; 0x240 1ac2a: f000 ff65 bl 1baf8 <__assert_func> 1ac2e: 4b03 ldr r3, [pc, #12] ; (1ac3c <__mdiff+0x14c>) 1ac30: 4803 ldr r0, [pc, #12] ; (1ac40 <__mdiff+0x150>) 1ac32: 464a mov r2, r9 1ac34: f240 2132 movw r1, #562 ; 0x232 1ac38: f000 ff5e bl 1baf8 <__assert_func> 1ac3c: 0002c0e0 .word 0x0002c0e0 1ac40: 0002c164 .word 0x0002c164 0001ac44 <__d2b>: 1ac44: b570 push {r4, r5, r6, lr} 1ac46: 2101 movs r1, #1 1ac48: b082 sub sp, #8 1ac4a: 4616 mov r6, r2 1ac4c: 461d mov r5, r3 1ac4e: f7ff fcab bl 1a5a8 <_Balloc> 1ac52: 4604 mov r4, r0 1ac54: 2800 cmp r0, #0 1ac56: d049 beq.n 1acec <__d2b+0xa8> 1ac58: 462b mov r3, r5 1ac5a: f3c5 550a ubfx r5, r5, #20, #11 1ac5e: f3c3 0313 ubfx r3, r3, #0, #20 1ac62: b10d cbz r5, 1ac68 <__d2b+0x24> 1ac64: f443 1380 orr.w r3, r3, #1048576 ; 0x100000 1ac68: 2e00 cmp r6, #0 1ac6a: 9301 str r3, [sp, #4] 1ac6c: d114 bne.n 1ac98 <__d2b+0x54> 1ac6e: a801 add r0, sp, #4 1ac70: f7ff fd3a bl 1a6e8 <__lo0bits> 1ac74: 9b01 ldr r3, [sp, #4] 1ac76: 6163 str r3, [r4, #20] 1ac78: 2101 movs r1, #1 1ac7a: 3020 adds r0, #32 1ac7c: 6121 str r1, [r4, #16] 1ac7e: b315 cbz r5, 1acc6 <__d2b+0x82> 1ac80: 9b06 ldr r3, [sp, #24] 1ac82: f2a5 4533 subw r5, r5, #1075 ; 0x433 1ac86: 4405 add r5, r0 1ac88: 601d str r5, [r3, #0] 1ac8a: 9b07 ldr r3, [sp, #28] 1ac8c: f1c0 0035 rsb r0, r0, #53 ; 0x35 1ac90: 6018 str r0, [r3, #0] 1ac92: 4620 mov r0, r4 1ac94: b002 add sp, #8 1ac96: bd70 pop {r4, r5, r6, pc} 1ac98: 4668 mov r0, sp 1ac9a: 9600 str r6, [sp, #0] 1ac9c: f7ff fd24 bl 1a6e8 <__lo0bits> 1aca0: 9b01 ldr r3, [sp, #4] 1aca2: b300 cbz r0, 1ace6 <__d2b+0xa2> 1aca4: 9900 ldr r1, [sp, #0] 1aca6: f1c0 0220 rsb r2, r0, #32 1acaa: fa03 f202 lsl.w r2, r3, r2 1acae: 430a orrs r2, r1 1acb0: 40c3 lsrs r3, r0 1acb2: 9301 str r3, [sp, #4] 1acb4: 6162 str r2, [r4, #20] 1acb6: 2b00 cmp r3, #0 1acb8: bf14 ite ne 1acba: 2102 movne r1, #2 1acbc: 2101 moveq r1, #1 1acbe: 61a3 str r3, [r4, #24] 1acc0: 6121 str r1, [r4, #16] 1acc2: 2d00 cmp r5, #0 1acc4: d1dc bne.n 1ac80 <__d2b+0x3c> 1acc6: eb04 0281 add.w r2, r4, r1, lsl #2 1acca: f2a0 4332 subw r3, r0, #1074 ; 0x432 1acce: 6910 ldr r0, [r2, #16] 1acd0: 9a06 ldr r2, [sp, #24] 1acd2: 6013 str r3, [r2, #0] 1acd4: f7ff fce8 bl 1a6a8 <__hi0bits> 1acd8: 9b07 ldr r3, [sp, #28] 1acda: ebc0 1041 rsb r0, r0, r1, lsl #5 1acde: 6018 str r0, [r3, #0] 1ace0: 4620 mov r0, r4 1ace2: b002 add sp, #8 1ace4: bd70 pop {r4, r5, r6, pc} 1ace6: 9a00 ldr r2, [sp, #0] 1ace8: 6162 str r2, [r4, #20] 1acea: e7e4 b.n 1acb6 <__d2b+0x72> 1acec: 4b03 ldr r3, [pc, #12] ; (1acfc <__d2b+0xb8>) 1acee: 4804 ldr r0, [pc, #16] ; (1ad00 <__d2b+0xbc>) 1acf0: 4622 mov r2, r4 1acf2: f240 310a movw r1, #778 ; 0x30a 1acf6: f000 feff bl 1baf8 <__assert_func> 1acfa: bf00 nop 1acfc: 0002c0e0 .word 0x0002c0e0 1ad00: 0002c164 .word 0x0002c164 0001ad04 <_sbrk_r>: 1ad04: b538 push {r3, r4, r5, lr} 1ad06: 4d07 ldr r5, [pc, #28] ; (1ad24 <_sbrk_r+0x20>) 1ad08: 2200 movs r2, #0 1ad0a: 4604 mov r4, r0 1ad0c: 4608 mov r0, r1 1ad0e: 602a str r2, [r5, #0] 1ad10: f7e5 fb26 bl 360 <_sbrk> 1ad14: 1c43 adds r3, r0, #1 1ad16: d000 beq.n 1ad1a <_sbrk_r+0x16> 1ad18: bd38 pop {r3, r4, r5, pc} 1ad1a: 682b ldr r3, [r5, #0] 1ad1c: 2b00 cmp r3, #0 1ad1e: d0fb beq.n 1ad18 <_sbrk_r+0x14> 1ad20: 6023 str r3, [r4, #0] 1ad22: bd38 pop {r3, r4, r5, pc} 1ad24: 2000d1d0 .word 0x2000d1d0 0001ad28 : 1ad28: b538 push {r3, r4, r5, lr} 1ad2a: 4b15 ldr r3, [pc, #84] ; (1ad80 ) 1ad2c: 281f cmp r0, #31 1ad2e: 681d ldr r5, [r3, #0] 1ad30: d820 bhi.n 1ad74 1ad32: f8d5 22dc ldr.w r2, [r5, #732] ; 0x2dc 1ad36: 4604 mov r4, r0 1ad38: b162 cbz r2, 1ad54 1ad3a: f852 3020 ldr.w r3, [r2, r0, lsl #2] 1ad3e: b14b cbz r3, 1ad54 1ad40: 2b01 cmp r3, #1 1ad42: d015 beq.n 1ad70 1ad44: 1c59 adds r1, r3, #1 1ad46: d00f beq.n 1ad68 1ad48: 2500 movs r5, #0 1ad4a: f842 5020 str.w r5, [r2, r0, lsl #2] 1ad4e: 4798 blx r3 1ad50: 4628 mov r0, r5 1ad52: bd38 pop {r3, r4, r5, pc} 1ad54: 4628 mov r0, r5 1ad56: f000 f82b bl 1adb0 <_getpid_r> 1ad5a: 4622 mov r2, r4 1ad5c: 4601 mov r1, r0 1ad5e: 4628 mov r0, r5 1ad60: e8bd 4038 ldmia.w sp!, {r3, r4, r5, lr} 1ad64: f000 b80e b.w 1ad84 <_kill_r> 1ad68: 2316 movs r3, #22 1ad6a: 602b str r3, [r5, #0] 1ad6c: 2001 movs r0, #1 1ad6e: bd38 pop {r3, r4, r5, pc} 1ad70: 2000 movs r0, #0 1ad72: bd38 pop {r3, r4, r5, pc} 1ad74: 2316 movs r3, #22 1ad76: 602b str r3, [r5, #0] 1ad78: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff 1ad7c: bd38 pop {r3, r4, r5, pc} 1ad7e: bf00 nop 1ad80: 20000068 .word 0x20000068 0001ad84 <_kill_r>: 1ad84: b570 push {r4, r5, r6, lr} 1ad86: 460c mov r4, r1 1ad88: 4d08 ldr r5, [pc, #32] ; (1adac <_kill_r+0x28>) 1ad8a: 4603 mov r3, r0 1ad8c: 2600 movs r6, #0 1ad8e: 4620 mov r0, r4 1ad90: 4611 mov r1, r2 1ad92: 461c mov r4, r3 1ad94: 602e str r6, [r5, #0] 1ad96: f7e5 fb07 bl 3a8 <_kill> 1ad9a: 1c43 adds r3, r0, #1 1ad9c: d000 beq.n 1ada0 <_kill_r+0x1c> 1ad9e: bd70 pop {r4, r5, r6, pc} 1ada0: 682b ldr r3, [r5, #0] 1ada2: 2b00 cmp r3, #0 1ada4: d0fb beq.n 1ad9e <_kill_r+0x1a> 1ada6: 6023 str r3, [r4, #0] 1ada8: bd70 pop {r4, r5, r6, pc} 1adaa: bf00 nop 1adac: 2000d1d0 .word 0x2000d1d0 0001adb0 <_getpid_r>: 1adb0: f7e5 bafb b.w 3aa <_getpid> 0001adb4 <__sread>: 1adb4: b510 push {r4, lr} 1adb6: 460c mov r4, r1 1adb8: f9b1 100e ldrsh.w r1, [r1, #14] 1adbc: f001 f9a8 bl 1c110 <_read_r> 1adc0: 2800 cmp r0, #0 1adc2: db03 blt.n 1adcc <__sread+0x18> 1adc4: 6d23 ldr r3, [r4, #80] ; 0x50 1adc6: 4403 add r3, r0 1adc8: 6523 str r3, [r4, #80] ; 0x50 1adca: bd10 pop {r4, pc} 1adcc: 89a3 ldrh r3, [r4, #12] 1adce: f423 5380 bic.w r3, r3, #4096 ; 0x1000 1add2: 81a3 strh r3, [r4, #12] 1add4: bd10 pop {r4, pc} 1add6: bf00 nop 0001add8 <__swrite>: 1add8: e92d 41f0 stmdb sp!, {r4, r5, r6, r7, r8, lr} 1addc: 460c mov r4, r1 1adde: f9b1 100c ldrsh.w r1, [r1, #12] 1ade2: 461f mov r7, r3 1ade4: 05cb lsls r3, r1, #23 1ade6: 4605 mov r5, r0 1ade8: 4616 mov r6, r2 1adea: d40b bmi.n 1ae04 <__swrite+0x2c> 1adec: f421 5180 bic.w r1, r1, #4096 ; 0x1000 1adf0: 81a1 strh r1, [r4, #12] 1adf2: 463b mov r3, r7 1adf4: f9b4 100e ldrsh.w r1, [r4, #14] 1adf8: 4632 mov r2, r6 1adfa: 4628 mov r0, r5 1adfc: e8bd 41f0 ldmia.w sp!, {r4, r5, r6, r7, r8, lr} 1ae00: f000 be64 b.w 1bacc <_write_r> 1ae04: f9b4 100e ldrsh.w r1, [r4, #14] 1ae08: 2302 movs r3, #2 1ae0a: 2200 movs r2, #0 1ae0c: f001 f954 bl 1c0b8 <_lseek_r> 1ae10: f9b4 100c ldrsh.w r1, [r4, #12] 1ae14: e7ea b.n 1adec <__swrite+0x14> 1ae16: bf00 nop 0001ae18 <__sseek>: 1ae18: b510 push {r4, lr} 1ae1a: 460c mov r4, r1 1ae1c: f9b1 100e ldrsh.w r1, [r1, #14] 1ae20: f001 f94a bl 1c0b8 <_lseek_r> 1ae24: 89a3 ldrh r3, [r4, #12] 1ae26: 1c42 adds r2, r0, #1 1ae28: bf0e itee eq 1ae2a: f423 5380 biceq.w r3, r3, #4096 ; 0x1000 1ae2e: f443 5380 orrne.w r3, r3, #4096 ; 0x1000 1ae32: 6520 strne r0, [r4, #80] ; 0x50 1ae34: 81a3 strh r3, [r4, #12] 1ae36: bd10 pop {r4, pc} 0001ae38 <__sclose>: 1ae38: f9b1 100e ldrsh.w r1, [r1, #14] 1ae3c: f000 beb8 b.w 1bbb0 <_close_r> 0001ae40 : 1ae40: b410 push {r4} 1ae42: 4c04 ldr r4, [pc, #16] ; (1ae54 ) 1ae44: 4684 mov ip, r0 1ae46: 4613 mov r3, r2 1ae48: 6820 ldr r0, [r4, #0] 1ae4a: bc10 pop {r4} 1ae4c: 460a mov r2, r1 1ae4e: 4661 mov r1, ip 1ae50: f000 be3c b.w 1bacc <_write_r> 1ae54: 20000068 .word 0x20000068 0001ae58 <__sprint_r.part.0>: 1ae58: e92d 4ff8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr} 1ae5c: 6e0b ldr r3, [r1, #96] ; 0x60 1ae5e: 049c lsls r4, r3, #18 1ae60: 4690 mov r8, r2 1ae62: d52d bpl.n 1aec0 <__sprint_r.part.0+0x68> 1ae64: 6893 ldr r3, [r2, #8] 1ae66: 6812 ldr r2, [r2, #0] 1ae68: b343 cbz r3, 1aebc <__sprint_r.part.0+0x64> 1ae6a: 468b mov fp, r1 1ae6c: 4606 mov r6, r0 1ae6e: f102 0908 add.w r9, r2, #8 1ae72: e959 5a02 ldrd r5, sl, [r9, #-8] 1ae76: ea5f 079a movs.w r7, sl, lsr #2 1ae7a: d015 beq.n 1aea8 <__sprint_r.part.0+0x50> 1ae7c: 3d04 subs r5, #4 1ae7e: 2400 movs r4, #0 1ae80: e001 b.n 1ae86 <__sprint_r.part.0+0x2e> 1ae82: 42a7 cmp r7, r4 1ae84: d00e beq.n 1aea4 <__sprint_r.part.0+0x4c> 1ae86: f855 1f04 ldr.w r1, [r5, #4]! 1ae8a: 465a mov r2, fp 1ae8c: 4630 mov r0, r6 1ae8e: f000 ff4f bl 1bd30 <_fputwc_r> 1ae92: 1c43 adds r3, r0, #1 1ae94: f104 0401 add.w r4, r4, #1 1ae98: d1f3 bne.n 1ae82 <__sprint_r.part.0+0x2a> 1ae9a: 2300 movs r3, #0 1ae9c: e9c8 3301 strd r3, r3, [r8, #4] 1aea0: e8bd 8ff8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} 1aea4: f8d8 3008 ldr.w r3, [r8, #8] 1aea8: f02a 0a03 bic.w sl, sl, #3 1aeac: eba3 030a sub.w r3, r3, sl 1aeb0: f8c8 3008 str.w r3, [r8, #8] 1aeb4: f109 0908 add.w r9, r9, #8 1aeb8: 2b00 cmp r3, #0 1aeba: d1da bne.n 1ae72 <__sprint_r.part.0+0x1a> 1aebc: 2000 movs r0, #0 1aebe: e7ec b.n 1ae9a <__sprint_r.part.0+0x42> 1aec0: f000 ff5e bl 1bd80 <__sfvwrite_r> 1aec4: 2300 movs r3, #0 1aec6: e9c8 3301 strd r3, r3, [r8, #4] 1aeca: e8bd 8ff8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} 1aece: bf00 nop 0001aed0 <__sprint_r>: 1aed0: b410 push {r4} 1aed2: 6894 ldr r4, [r2, #8] 1aed4: b114 cbz r4, 1aedc <__sprint_r+0xc> 1aed6: bc10 pop {r4} 1aed8: f7ff bfbe b.w 1ae58 <__sprint_r.part.0> 1aedc: 4620 mov r0, r4 1aede: 6054 str r4, [r2, #4] 1aee0: bc10 pop {r4} 1aee2: 4770 bx lr 0001aee4 <_vfiprintf_r>: 1aee4: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} 1aee8: b0ab sub sp, #172 ; 0xac 1aeea: 461c mov r4, r3 1aeec: 4688 mov r8, r1 1aeee: 4617 mov r7, r2 1aef0: 9306 str r3, [sp, #24] 1aef2: 4683 mov fp, r0 1aef4: b118 cbz r0, 1aefe <_vfiprintf_r+0x1a> 1aef6: 6b83 ldr r3, [r0, #56] ; 0x38 1aef8: 2b00 cmp r3, #0 1aefa: f000 81c6 beq.w 1b28a <_vfiprintf_r+0x3a6> 1aefe: f9b8 100c ldrsh.w r1, [r8, #12] 1af02: 0488 lsls r0, r1, #18 1af04: b28a uxth r2, r1 1af06: d40a bmi.n 1af1e <_vfiprintf_r+0x3a> 1af08: f8d8 3060 ldr.w r3, [r8, #96] ; 0x60 1af0c: f441 5100 orr.w r1, r1, #8192 ; 0x2000 1af10: f423 5300 bic.w r3, r3, #8192 ; 0x2000 1af14: f8a8 100c strh.w r1, [r8, #12] 1af18: b28a uxth r2, r1 1af1a: f8c8 3060 str.w r3, [r8, #96] ; 0x60 1af1e: 0711 lsls r1, r2, #28 1af20: f140 80a6 bpl.w 1b070 <_vfiprintf_r+0x18c> 1af24: f8d8 3010 ldr.w r3, [r8, #16] 1af28: 2b00 cmp r3, #0 1af2a: f000 80a1 beq.w 1b070 <_vfiprintf_r+0x18c> 1af2e: f002 021a and.w r2, r2, #26 1af32: 2a0a cmp r2, #10 1af34: f000 80aa beq.w 1b08c <_vfiprintf_r+0x1a8> 1af38: ab1a add r3, sp, #104 ; 0x68 1af3a: 930d str r3, [sp, #52] ; 0x34 1af3c: 2300 movs r3, #0 1af3e: e9cd 330e strd r3, r3, [sp, #56] ; 0x38 1af42: 9309 str r3, [sp, #36] ; 0x24 1af44: f10d 0968 add.w r9, sp, #104 ; 0x68 1af48: 9304 str r3, [sp, #16] 1af4a: 783b ldrb r3, [r7, #0] 1af4c: 2b00 cmp r3, #0 1af4e: f000 80c9 beq.w 1b0e4 <_vfiprintf_r+0x200> 1af52: 463c mov r4, r7 1af54: e004 b.n 1af60 <_vfiprintf_r+0x7c> 1af56: f814 3f01 ldrb.w r3, [r4, #1]! 1af5a: 2b00 cmp r3, #0 1af5c: f000 80a4 beq.w 1b0a8 <_vfiprintf_r+0x1c4> 1af60: 2b25 cmp r3, #37 ; 0x25 1af62: d1f8 bne.n 1af56 <_vfiprintf_r+0x72> 1af64: 1be5 subs r5, r4, r7 1af66: f040 80a1 bne.w 1b0ac <_vfiprintf_r+0x1c8> 1af6a: 7823 ldrb r3, [r4, #0] 1af6c: 2b00 cmp r3, #0 1af6e: f000 80b9 beq.w 1b0e4 <_vfiprintf_r+0x200> 1af72: 2100 movs r1, #0 1af74: 3401 adds r4, #1 1af76: f04f 0300 mov.w r3, #0 1af7a: 4627 mov r7, r4 1af7c: f88d 302f strb.w r3, [sp, #47] ; 0x2f 1af80: 4608 mov r0, r1 1af82: f04f 3aff mov.w sl, #4294967295 ; 0xffffffff 1af86: 460d mov r5, r1 1af88: 460c mov r4, r1 1af8a: f817 2b01 ldrb.w r2, [r7], #1 1af8e: f1a2 0320 sub.w r3, r2, #32 1af92: 2b58 cmp r3, #88 ; 0x58 1af94: f200 80b3 bhi.w 1b0fe <_vfiprintf_r+0x21a> 1af98: e8df f013 tbh [pc, r3, lsl #1] 1af9c: 00b10263 .word 0x00b10263 1afa0: 026000b1 .word 0x026000b1 1afa4: 00b100b1 .word 0x00b100b1 1afa8: 00b100b1 .word 0x00b100b1 1afac: 00b100b1 .word 0x00b100b1 1afb0: 048f017a .word 0x048f017a 1afb4: 018200b1 .word 0x018200b1 1afb8: 00b10185 .word 0x00b10185 1afbc: 00590274 .word 0x00590274 1afc0: 00590059 .word 0x00590059 1afc4: 00590059 .word 0x00590059 1afc8: 00590059 .word 0x00590059 1afcc: 00590059 .word 0x00590059 1afd0: 00b100b1 .word 0x00b100b1 1afd4: 00b100b1 .word 0x00b100b1 1afd8: 00b100b1 .word 0x00b100b1 1afdc: 00b100b1 .word 0x00b100b1 1afe0: 00b100b1 .word 0x00b100b1 1afe4: 00b10269 .word 0x00b10269 1afe8: 00b100b1 .word 0x00b100b1 1afec: 00b100b1 .word 0x00b100b1 1aff0: 00b100b1 .word 0x00b100b1 1aff4: 00b100b1 .word 0x00b100b1 1aff8: 022d00b1 .word 0x022d00b1 1affc: 00b100b1 .word 0x00b100b1 1b000: 00b100b1 .word 0x00b100b1 1b004: 022500b1 .word 0x022500b1 1b008: 00b100b1 .word 0x00b100b1 1b00c: 00b1021e .word 0x00b1021e 1b010: 00b100b1 .word 0x00b100b1 1b014: 00b100b1 .word 0x00b100b1 1b018: 00b100b1 .word 0x00b100b1 1b01c: 00b100b1 .word 0x00b100b1 1b020: 020e00b1 .word 0x020e00b1 1b024: 00b1014e .word 0x00b1014e 1b028: 00b100b1 .word 0x00b100b1 1b02c: 014e025d .word 0x014e025d 1b030: 00b100b1 .word 0x00b100b1 1b034: 00b10067 .word 0x00b10067 1b038: 02360248 .word 0x02360248 1b03c: 006701ff .word 0x006701ff 1b040: 01df00b1 .word 0x01df00b1 1b044: 01d000b1 .word 0x01d000b1 1b048: 00b100b1 .word 0x00b100b1 1b04c: 019c .short 0x019c 1b04e: f1a2 0330 sub.w r3, r2, #48 ; 0x30 1b052: 2400 movs r4, #0 1b054: f817 2b01 ldrb.w r2, [r7], #1 1b058: eb04 0484 add.w r4, r4, r4, lsl #2 1b05c: eb03 0444 add.w r4, r3, r4, lsl #1 1b060: f1a2 0330 sub.w r3, r2, #48 ; 0x30 1b064: 2b09 cmp r3, #9 1b066: d9f5 bls.n 1b054 <_vfiprintf_r+0x170> 1b068: e791 b.n 1af8e <_vfiprintf_r+0xaa> 1b06a: f045 0510 orr.w r5, r5, #16 1b06e: e78c b.n 1af8a <_vfiprintf_r+0xa6> 1b070: 4641 mov r1, r8 1b072: 4658 mov r0, fp 1b074: f7fd fc1e bl 188b4 <__swsetup_r> 1b078: 2800 cmp r0, #0 1b07a: f040 848a bne.w 1b992 <_vfiprintf_r+0xaae> 1b07e: f8b8 200c ldrh.w r2, [r8, #12] 1b082: f002 021a and.w r2, r2, #26 1b086: 2a0a cmp r2, #10 1b088: f47f af56 bne.w 1af38 <_vfiprintf_r+0x54> 1b08c: f9b8 300e ldrsh.w r3, [r8, #14] 1b090: 2b00 cmp r3, #0 1b092: f6ff af51 blt.w 1af38 <_vfiprintf_r+0x54> 1b096: 4623 mov r3, r4 1b098: 463a mov r2, r7 1b09a: 4641 mov r1, r8 1b09c: 4658 mov r0, fp 1b09e: b02b add sp, #172 ; 0xac 1b0a0: e8bd 4ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} 1b0a4: f000 bc88 b.w 1b9b8 <__sbprintf> 1b0a8: 1be5 subs r5, r4, r7 1b0aa: d01b beq.n 1b0e4 <_vfiprintf_r+0x200> 1b0ac: 9b0e ldr r3, [sp, #56] ; 0x38 1b0ae: 9a0f ldr r2, [sp, #60] ; 0x3c 1b0b0: 3301 adds r3, #1 1b0b2: 442a add r2, r5 1b0b4: 2b07 cmp r3, #7 1b0b6: e9c9 7500 strd r7, r5, [r9] 1b0ba: 920f str r2, [sp, #60] ; 0x3c 1b0bc: 930e str r3, [sp, #56] ; 0x38 1b0be: dc05 bgt.n 1b0cc <_vfiprintf_r+0x1e8> 1b0c0: f109 0908 add.w r9, r9, #8 1b0c4: 9b04 ldr r3, [sp, #16] 1b0c6: 442b add r3, r5 1b0c8: 9304 str r3, [sp, #16] 1b0ca: e74e b.n 1af6a <_vfiprintf_r+0x86> 1b0cc: 2a00 cmp r2, #0 1b0ce: f000 839e beq.w 1b80e <_vfiprintf_r+0x92a> 1b0d2: aa0d add r2, sp, #52 ; 0x34 1b0d4: 4641 mov r1, r8 1b0d6: 4658 mov r0, fp 1b0d8: f7ff febe bl 1ae58 <__sprint_r.part.0> 1b0dc: b930 cbnz r0, 1b0ec <_vfiprintf_r+0x208> 1b0de: f10d 0968 add.w r9, sp, #104 ; 0x68 1b0e2: e7ef b.n 1b0c4 <_vfiprintf_r+0x1e0> 1b0e4: 9b0f ldr r3, [sp, #60] ; 0x3c 1b0e6: 2b00 cmp r3, #0 1b0e8: f040 8424 bne.w 1b934 <_vfiprintf_r+0xa50> 1b0ec: f8b8 300c ldrh.w r3, [r8, #12] 1b0f0: 065b lsls r3, r3, #25 1b0f2: f100 844e bmi.w 1b992 <_vfiprintf_r+0xaae> 1b0f6: 9804 ldr r0, [sp, #16] 1b0f8: b02b add sp, #172 ; 0xac 1b0fa: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} 1b0fe: 9405 str r4, [sp, #20] 1b100: 2900 cmp r1, #0 1b102: f040 8413 bne.w 1b92c <_vfiprintf_r+0xa48> 1b106: 2a00 cmp r2, #0 1b108: d0ec beq.n 1b0e4 <_vfiprintf_r+0x200> 1b10a: f04f 0300 mov.w r3, #0 1b10e: f88d 302f strb.w r3, [sp, #47] ; 0x2f 1b112: 2301 movs r3, #1 1b114: f88d 2040 strb.w r2, [sp, #64] ; 0x40 1b118: 9301 str r3, [sp, #4] 1b11a: 9303 str r3, [sp, #12] 1b11c: ac10 add r4, sp, #64 ; 0x40 1b11e: 9502 str r5, [sp, #8] 1b120: f04f 0a00 mov.w sl, #0 1b124: 9b02 ldr r3, [sp, #8] 1b126: f013 0302 ands.w r3, r3, #2 1b12a: 9307 str r3, [sp, #28] 1b12c: d002 beq.n 1b134 <_vfiprintf_r+0x250> 1b12e: 9b01 ldr r3, [sp, #4] 1b130: 3302 adds r3, #2 1b132: 9301 str r3, [sp, #4] 1b134: e9dd 2c0e ldrd r2, ip, [sp, #56] ; 0x38 1b138: 9b02 ldr r3, [sp, #8] 1b13a: 1c50 adds r0, r2, #1 1b13c: f013 0384 ands.w r3, r3, #132 ; 0x84 1b140: 4601 mov r1, r0 1b142: 9308 str r3, [sp, #32] 1b144: d105 bne.n 1b152 <_vfiprintf_r+0x26e> 1b146: 9b05 ldr r3, [sp, #20] 1b148: 9d01 ldr r5, [sp, #4] 1b14a: 1b5d subs r5, r3, r5 1b14c: 2d00 cmp r5, #0 1b14e: f300 82a7 bgt.w 1b6a0 <_vfiprintf_r+0x7bc> 1b152: f89d 002f ldrb.w r0, [sp, #47] ; 0x2f 1b156: b190 cbz r0, 1b17e <_vfiprintf_r+0x29a> 1b158: f10d 022f add.w r2, sp, #47 ; 0x2f 1b15c: f10c 0c01 add.w ip, ip, #1 1b160: f8c9 2000 str.w r2, [r9] 1b164: 2907 cmp r1, #7 1b166: f04f 0201 mov.w r2, #1 1b16a: e9cd 1c0e strd r1, ip, [sp, #56] ; 0x38 1b16e: f8c9 2004 str.w r2, [r9, #4] 1b172: f300 8276 bgt.w 1b662 <_vfiprintf_r+0x77e> 1b176: 460a mov r2, r1 1b178: f109 0908 add.w r9, r9, #8 1b17c: 3101 adds r1, #1 1b17e: 9b07 ldr r3, [sp, #28] 1b180: b1eb cbz r3, 1b1be <_vfiprintf_r+0x2da> 1b182: ab0c add r3, sp, #48 ; 0x30 1b184: f10c 0c02 add.w ip, ip, #2 1b188: f8c9 3000 str.w r3, [r9] 1b18c: 2907 cmp r1, #7 1b18e: f04f 0302 mov.w r3, #2 1b192: e9cd 1c0e strd r1, ip, [sp, #56] ; 0x38 1b196: f8c9 3004 str.w r3, [r9, #4] 1b19a: f340 827c ble.w 1b696 <_vfiprintf_r+0x7b2> 1b19e: f1bc 0f00 cmp.w ip, #0 1b1a2: f000 832f beq.w 1b804 <_vfiprintf_r+0x920> 1b1a6: aa0d add r2, sp, #52 ; 0x34 1b1a8: 4641 mov r1, r8 1b1aa: 4658 mov r0, fp 1b1ac: f7ff fe54 bl 1ae58 <__sprint_r.part.0> 1b1b0: 2800 cmp r0, #0 1b1b2: d19b bne.n 1b0ec <_vfiprintf_r+0x208> 1b1b4: e9dd 2c0e ldrd r2, ip, [sp, #56] ; 0x38 1b1b8: f10d 0968 add.w r9, sp, #104 ; 0x68 1b1bc: 1c51 adds r1, r2, #1 1b1be: 9b08 ldr r3, [sp, #32] 1b1c0: 2b80 cmp r3, #128 ; 0x80 1b1c2: f000 81a8 beq.w 1b516 <_vfiprintf_r+0x632> 1b1c6: 9b03 ldr r3, [sp, #12] 1b1c8: ebaa 0603 sub.w r6, sl, r3 1b1cc: 2e00 cmp r6, #0 1b1ce: f300 81fe bgt.w 1b5ce <_vfiprintf_r+0x6ea> 1b1d2: 9a03 ldr r2, [sp, #12] 1b1d4: f8c9 4000 str.w r4, [r9] 1b1d8: eb02 030c add.w r3, r2, ip 1b1dc: 2907 cmp r1, #7 1b1de: e9cd 130e strd r1, r3, [sp, #56] ; 0x38 1b1e2: f8c9 2004 str.w r2, [r9, #4] 1b1e6: f340 817f ble.w 1b4e8 <_vfiprintf_r+0x604> 1b1ea: 2b00 cmp r3, #0 1b1ec: f000 829e beq.w 1b72c <_vfiprintf_r+0x848> 1b1f0: aa0d add r2, sp, #52 ; 0x34 1b1f2: 4641 mov r1, r8 1b1f4: 4658 mov r0, fp 1b1f6: f7ff fe2f bl 1ae58 <__sprint_r.part.0> 1b1fa: 2800 cmp r0, #0 1b1fc: f47f af76 bne.w 1b0ec <_vfiprintf_r+0x208> 1b200: 9b0f ldr r3, [sp, #60] ; 0x3c 1b202: f10d 0968 add.w r9, sp, #104 ; 0x68 1b206: 9a02 ldr r2, [sp, #8] 1b208: 0752 lsls r2, r2, #29 1b20a: d505 bpl.n 1b218 <_vfiprintf_r+0x334> 1b20c: 9a05 ldr r2, [sp, #20] 1b20e: 9901 ldr r1, [sp, #4] 1b210: 1a54 subs r4, r2, r1 1b212: 2c00 cmp r4, #0 1b214: f300 8295 bgt.w 1b742 <_vfiprintf_r+0x85e> 1b218: e9dd 2104 ldrd r2, r1, [sp, #16] 1b21c: 9801 ldr r0, [sp, #4] 1b21e: 4281 cmp r1, r0 1b220: bfac ite ge 1b222: 1852 addge r2, r2, r1 1b224: 1812 addlt r2, r2, r0 1b226: 9204 str r2, [sp, #16] 1b228: 2b00 cmp r3, #0 1b22a: f040 820c bne.w 1b646 <_vfiprintf_r+0x762> 1b22e: 2300 movs r3, #0 1b230: 930e str r3, [sp, #56] ; 0x38 1b232: f10d 0968 add.w r9, sp, #104 ; 0x68 1b236: e688 b.n 1af4a <_vfiprintf_r+0x66> 1b238: 9405 str r4, [sp, #20] 1b23a: 2900 cmp r1, #0 1b23c: f040 83a0 bne.w 1b980 <_vfiprintf_r+0xa9c> 1b240: 9b06 ldr r3, [sp, #24] 1b242: 06ee lsls r6, r5, #27 1b244: f853 2b04 ldr.w r2, [r3], #4 1b248: 9306 str r3, [sp, #24] 1b24a: d402 bmi.n 1b252 <_vfiprintf_r+0x36e> 1b24c: 066c lsls r4, r5, #25 1b24e: f100 8320 bmi.w 1b892 <_vfiprintf_r+0x9ae> 1b252: 4613 mov r3, r2 1b254: 2a00 cmp r2, #0 1b256: f2c0 82e8 blt.w 1b82a <_vfiprintf_r+0x946> 1b25a: f1ba 3fff cmp.w sl, #4294967295 ; 0xffffffff 1b25e: f89d 102f ldrb.w r1, [sp, #47] ; 0x2f 1b262: d006 beq.n 1b272 <_vfiprintf_r+0x38e> 1b264: f025 0080 bic.w r0, r5, #128 ; 0x80 1b268: 9002 str r0, [sp, #8] 1b26a: 2a00 cmp r2, #0 1b26c: f000 82d3 beq.w 1b816 <_vfiprintf_r+0x932> 1b270: 9d02 ldr r5, [sp, #8] 1b272: 2b09 cmp r3, #9 1b274: f200 82ee bhi.w 1b854 <_vfiprintf_r+0x970> 1b278: 3330 adds r3, #48 ; 0x30 1b27a: f88d 3067 strb.w r3, [sp, #103] ; 0x67 1b27e: 2301 movs r3, #1 1b280: 9502 str r5, [sp, #8] 1b282: 9303 str r3, [sp, #12] 1b284: f10d 0467 add.w r4, sp, #103 ; 0x67 1b288: e11b b.n 1b4c2 <_vfiprintf_r+0x5de> 1b28a: f7fe fc9f bl 19bcc <__sinit> 1b28e: e636 b.n 1aefe <_vfiprintf_r+0x1a> 1b290: 9b06 ldr r3, [sp, #24] 1b292: f853 4b04 ldr.w r4, [r3], #4 1b296: 2c00 cmp r4, #0 1b298: f280 82f1 bge.w 1b87e <_vfiprintf_r+0x99a> 1b29c: 4264 negs r4, r4 1b29e: 9306 str r3, [sp, #24] 1b2a0: f045 0504 orr.w r5, r5, #4 1b2a4: e671 b.n 1af8a <_vfiprintf_r+0xa6> 1b2a6: f817 2b01 ldrb.w r2, [r7], #1 1b2aa: 2a2a cmp r2, #42 ; 0x2a 1b2ac: f000 8376 beq.w 1b99c <_vfiprintf_r+0xab8> 1b2b0: f1a2 0330 sub.w r3, r2, #48 ; 0x30 1b2b4: 2b09 cmp r3, #9 1b2b6: f04f 0a00 mov.w sl, #0 1b2ba: f63f ae68 bhi.w 1af8e <_vfiprintf_r+0xaa> 1b2be: f817 2b01 ldrb.w r2, [r7], #1 1b2c2: eb0a 0a8a add.w sl, sl, sl, lsl #2 1b2c6: eb03 0a4a add.w sl, r3, sl, lsl #1 1b2ca: f1a2 0330 sub.w r3, r2, #48 ; 0x30 1b2ce: 2b09 cmp r3, #9 1b2d0: d9f5 bls.n 1b2be <_vfiprintf_r+0x3da> 1b2d2: e65c b.n 1af8e <_vfiprintf_r+0xaa> 1b2d4: 9405 str r4, [sp, #20] 1b2d6: 2900 cmp r1, #0 1b2d8: f040 8346 bne.w 1b968 <_vfiprintf_r+0xa84> 1b2dc: 4b94 ldr r3, [pc, #592] ; (1b530 <_vfiprintf_r+0x64c>) 1b2de: 9309 str r3, [sp, #36] ; 0x24 1b2e0: 9906 ldr r1, [sp, #24] 1b2e2: 06ec lsls r4, r5, #27 1b2e4: f851 3b04 ldr.w r3, [r1], #4 1b2e8: 9106 str r1, [sp, #24] 1b2ea: d402 bmi.n 1b2f2 <_vfiprintf_r+0x40e> 1b2ec: 0668 lsls r0, r5, #25 1b2ee: bf48 it mi 1b2f0: b29b uxthmi r3, r3 1b2f2: 07e9 lsls r1, r5, #31 1b2f4: d502 bpl.n 1b2fc <_vfiprintf_r+0x418> 1b2f6: 2b00 cmp r3, #0 1b2f8: f040 82ce bne.w 1b898 <_vfiprintf_r+0x9b4> 1b2fc: 2202 movs r2, #2 1b2fe: 2100 movs r1, #0 1b300: f1ba 3fff cmp.w sl, #4294967295 ; 0xffffffff 1b304: f88d 102f strb.w r1, [sp, #47] ; 0x2f 1b308: f000 80c0 beq.w 1b48c <_vfiprintf_r+0x5a8> 1b30c: f025 0080 bic.w r0, r5, #128 ; 0x80 1b310: 9002 str r0, [sp, #8] 1b312: 2b00 cmp r3, #0 1b314: f040 80b9 bne.w 1b48a <_vfiprintf_r+0x5a6> 1b318: f1ba 0f00 cmp.w sl, #0 1b31c: f040 80e7 bne.w 1b4ee <_vfiprintf_r+0x60a> 1b320: 2a00 cmp r2, #0 1b322: f040 827c bne.w 1b81e <_vfiprintf_r+0x93a> 1b326: f015 0301 ands.w r3, r5, #1 1b32a: 9303 str r3, [sp, #12] 1b32c: f000 82aa beq.w 1b884 <_vfiprintf_r+0x9a0> 1b330: 2330 movs r3, #48 ; 0x30 1b332: f88d 3067 strb.w r3, [sp, #103] ; 0x67 1b336: f10d 0467 add.w r4, sp, #103 ; 0x67 1b33a: e0c2 b.n 1b4c2 <_vfiprintf_r+0x5de> 1b33c: 9405 str r4, [sp, #20] 1b33e: 2900 cmp r1, #0 1b340: f040 8315 bne.w 1b96e <_vfiprintf_r+0xa8a> 1b344: 9a06 ldr r2, [sp, #24] 1b346: f852 3b04 ldr.w r3, [r2], #4 1b34a: 9206 str r2, [sp, #24] 1b34c: 06ea lsls r2, r5, #27 1b34e: d402 bmi.n 1b356 <_vfiprintf_r+0x472> 1b350: 066e lsls r6, r5, #25 1b352: bf48 it mi 1b354: b29b uxthmi r3, r3 1b356: 2201 movs r2, #1 1b358: e7d1 b.n 1b2fe <_vfiprintf_r+0x41a> 1b35a: 9e06 ldr r6, [sp, #24] 1b35c: 9405 str r4, [sp, #20] 1b35e: f856 4b04 ldr.w r4, [r6], #4 1b362: f04f 0300 mov.w r3, #0 1b366: f88d 302f strb.w r3, [sp, #47] ; 0x2f 1b36a: 2c00 cmp r4, #0 1b36c: f000 82c7 beq.w 1b8fe <_vfiprintf_r+0xa1a> 1b370: f1ba 3fff cmp.w sl, #4294967295 ; 0xffffffff 1b374: f000 82ac beq.w 1b8d0 <_vfiprintf_r+0x9ec> 1b378: 4652 mov r2, sl 1b37a: 2100 movs r1, #0 1b37c: 4620 mov r0, r4 1b37e: f7ff f8bf bl 1a500 1b382: 2800 cmp r0, #0 1b384: f000 82df beq.w 1b946 <_vfiprintf_r+0xa62> 1b388: 1b03 subs r3, r0, r4 1b38a: f89d 102f ldrb.w r1, [sp, #47] ; 0x2f 1b38e: 9303 str r3, [sp, #12] 1b390: 9606 str r6, [sp, #24] 1b392: 9502 str r5, [sp, #8] 1b394: f04f 0a00 mov.w sl, #0 1b398: e093 b.n 1b4c2 <_vfiprintf_r+0x5de> 1b39a: 9a06 ldr r2, [sp, #24] 1b39c: 9405 str r4, [sp, #20] 1b39e: f852 3b04 ldr.w r3, [r2], #4 1b3a2: 9206 str r2, [sp, #24] 1b3a4: f647 0230 movw r2, #30768 ; 0x7830 1b3a8: f8ad 2030 strh.w r2, [sp, #48] ; 0x30 1b3ac: 4a60 ldr r2, [pc, #384] ; (1b530 <_vfiprintf_r+0x64c>) 1b3ae: 9209 str r2, [sp, #36] ; 0x24 1b3b0: f045 0502 orr.w r5, r5, #2 1b3b4: 2202 movs r2, #2 1b3b6: e7a2 b.n 1b2fe <_vfiprintf_r+0x41a> 1b3b8: 9b06 ldr r3, [sp, #24] 1b3ba: 9405 str r4, [sp, #20] 1b3bc: f04f 0200 mov.w r2, #0 1b3c0: f88d 202f strb.w r2, [sp, #47] ; 0x2f 1b3c4: f853 2b04 ldr.w r2, [r3], #4 1b3c8: 9306 str r3, [sp, #24] 1b3ca: 2301 movs r3, #1 1b3cc: f88d 2040 strb.w r2, [sp, #64] ; 0x40 1b3d0: 9301 str r3, [sp, #4] 1b3d2: 9303 str r3, [sp, #12] 1b3d4: ac10 add r4, sp, #64 ; 0x40 1b3d6: e6a2 b.n 1b11e <_vfiprintf_r+0x23a> 1b3d8: 9405 str r4, [sp, #20] 1b3da: 2900 cmp r1, #0 1b3dc: f040 82ca bne.w 1b974 <_vfiprintf_r+0xa90> 1b3e0: 4b54 ldr r3, [pc, #336] ; (1b534 <_vfiprintf_r+0x650>) 1b3e2: 9309 str r3, [sp, #36] ; 0x24 1b3e4: e77c b.n 1b2e0 <_vfiprintf_r+0x3fc> 1b3e6: 9a06 ldr r2, [sp, #24] 1b3e8: 9405 str r4, [sp, #20] 1b3ea: f852 3b04 ldr.w r3, [r2], #4 1b3ee: 9206 str r2, [sp, #24] 1b3f0: f045 0510 orr.w r5, r5, #16 1b3f4: e7af b.n 1b356 <_vfiprintf_r+0x472> 1b3f6: 9a06 ldr r2, [sp, #24] 1b3f8: 9405 str r4, [sp, #20] 1b3fa: f852 3b04 ldr.w r3, [r2], #4 1b3fe: 9206 str r2, [sp, #24] 1b400: f045 0510 orr.w r5, r5, #16 1b404: 2200 movs r2, #0 1b406: e77a b.n 1b2fe <_vfiprintf_r+0x41a> 1b408: 9405 str r4, [sp, #20] 1b40a: 2900 cmp r1, #0 1b40c: f040 82a3 bne.w 1b956 <_vfiprintf_r+0xa72> 1b410: 9a06 ldr r2, [sp, #24] 1b412: f015 0110 ands.w r1, r5, #16 1b416: f852 3b04 ldr.w r3, [r2], #4 1b41a: 9206 str r2, [sp, #24] 1b41c: d1f2 bne.n 1b404 <_vfiprintf_r+0x520> 1b41e: f015 0240 ands.w r2, r5, #64 ; 0x40 1b422: f43f af6c beq.w 1b2fe <_vfiprintf_r+0x41a> 1b426: b29b uxth r3, r3 1b428: 460a mov r2, r1 1b42a: e768 b.n 1b2fe <_vfiprintf_r+0x41a> 1b42c: 2900 cmp r1, #0 1b42e: f040 8295 bne.w 1b95c <_vfiprintf_r+0xa78> 1b432: 9a06 ldr r2, [sp, #24] 1b434: 06e8 lsls r0, r5, #27 1b436: f102 0304 add.w r3, r2, #4 1b43a: d407 bmi.n 1b44c <_vfiprintf_r+0x568> 1b43c: 0669 lsls r1, r5, #25 1b43e: 9a06 ldr r2, [sp, #24] 1b440: d504 bpl.n 1b44c <_vfiprintf_r+0x568> 1b442: 6812 ldr r2, [r2, #0] 1b444: 9904 ldr r1, [sp, #16] 1b446: 8011 strh r1, [r2, #0] 1b448: 9306 str r3, [sp, #24] 1b44a: e57e b.n 1af4a <_vfiprintf_r+0x66> 1b44c: 6812 ldr r2, [r2, #0] 1b44e: 9904 ldr r1, [sp, #16] 1b450: 6011 str r1, [r2, #0] 1b452: 9306 str r3, [sp, #24] 1b454: e579 b.n 1af4a <_vfiprintf_r+0x66> 1b456: f045 0540 orr.w r5, r5, #64 ; 0x40 1b45a: e596 b.n 1af8a <_vfiprintf_r+0xa6> 1b45c: f045 0501 orr.w r5, r5, #1 1b460: e593 b.n 1af8a <_vfiprintf_r+0xa6> 1b462: 2800 cmp r0, #0 1b464: f47f ad91 bne.w 1af8a <_vfiprintf_r+0xa6> 1b468: 2101 movs r1, #1 1b46a: 2020 movs r0, #32 1b46c: e58d b.n 1af8a <_vfiprintf_r+0xa6> 1b46e: 9405 str r4, [sp, #20] 1b470: 2900 cmp r1, #0 1b472: f040 8276 bne.w 1b962 <_vfiprintf_r+0xa7e> 1b476: 9b06 ldr r3, [sp, #24] 1b478: f853 2b04 ldr.w r2, [r3], #4 1b47c: 9306 str r3, [sp, #24] 1b47e: f045 0510 orr.w r5, r5, #16 1b482: e6e6 b.n 1b252 <_vfiprintf_r+0x36e> 1b484: f045 0580 orr.w r5, r5, #128 ; 0x80 1b488: e57f b.n 1af8a <_vfiprintf_r+0xa6> 1b48a: 9d02 ldr r5, [sp, #8] 1b48c: 2a01 cmp r2, #1 1b48e: f43f aef0 beq.w 1b272 <_vfiprintf_r+0x38e> 1b492: 2a02 cmp r2, #2 1b494: d031 beq.n 1b4fa <_vfiprintf_r+0x616> 1b496: ac1a add r4, sp, #104 ; 0x68 1b498: f003 0207 and.w r2, r3, #7 1b49c: 3230 adds r2, #48 ; 0x30 1b49e: 08db lsrs r3, r3, #3 1b4a0: 4620 mov r0, r4 1b4a2: f804 2d01 strb.w r2, [r4, #-1]! 1b4a6: d1f7 bne.n 1b498 <_vfiprintf_r+0x5b4> 1b4a8: 07ee lsls r6, r5, #31 1b4aa: d52f bpl.n 1b50c <_vfiprintf_r+0x628> 1b4ac: 2a30 cmp r2, #48 ; 0x30 1b4ae: d02d beq.n 1b50c <_vfiprintf_r+0x628> 1b4b0: 2330 movs r3, #48 ; 0x30 1b4b2: 3802 subs r0, #2 1b4b4: f804 3c01 strb.w r3, [r4, #-1] 1b4b8: ab1a add r3, sp, #104 ; 0x68 1b4ba: 1a1b subs r3, r3, r0 1b4bc: 9502 str r5, [sp, #8] 1b4be: 9303 str r3, [sp, #12] 1b4c0: 4604 mov r4, r0 1b4c2: 9b03 ldr r3, [sp, #12] 1b4c4: 4553 cmp r3, sl 1b4c6: bfb8 it lt 1b4c8: 4653 movlt r3, sl 1b4ca: 9301 str r3, [sp, #4] 1b4cc: 2900 cmp r1, #0 1b4ce: f43f ae29 beq.w 1b124 <_vfiprintf_r+0x240> 1b4d2: 3301 adds r3, #1 1b4d4: 9301 str r3, [sp, #4] 1b4d6: e625 b.n 1b124 <_vfiprintf_r+0x240> 1b4d8: 9b03 ldr r3, [sp, #12] 1b4da: 941a str r4, [sp, #104] ; 0x68 1b4dc: 2201 movs r2, #1 1b4de: 931b str r3, [sp, #108] ; 0x6c 1b4e0: 930f str r3, [sp, #60] ; 0x3c 1b4e2: 920e str r2, [sp, #56] ; 0x38 1b4e4: f10d 0968 add.w r9, sp, #104 ; 0x68 1b4e8: f109 0908 add.w r9, r9, #8 1b4ec: e68b b.n 1b206 <_vfiprintf_r+0x322> 1b4ee: 2a01 cmp r2, #1 1b4f0: f000 8227 beq.w 1b942 <_vfiprintf_r+0xa5e> 1b4f4: 2a02 cmp r2, #2 1b4f6: 9d02 ldr r5, [sp, #8] 1b4f8: d1cd bne.n 1b496 <_vfiprintf_r+0x5b2> 1b4fa: 9809 ldr r0, [sp, #36] ; 0x24 1b4fc: ac1a add r4, sp, #104 ; 0x68 1b4fe: f003 020f and.w r2, r3, #15 1b502: 091b lsrs r3, r3, #4 1b504: 5c82 ldrb r2, [r0, r2] 1b506: f804 2d01 strb.w r2, [r4, #-1]! 1b50a: d1f8 bne.n 1b4fe <_vfiprintf_r+0x61a> 1b50c: ab1a add r3, sp, #104 ; 0x68 1b50e: 1b1b subs r3, r3, r4 1b510: 9502 str r5, [sp, #8] 1b512: 9303 str r3, [sp, #12] 1b514: e7d5 b.n 1b4c2 <_vfiprintf_r+0x5de> 1b516: 9b05 ldr r3, [sp, #20] 1b518: 9801 ldr r0, [sp, #4] 1b51a: 1a1e subs r6, r3, r0 1b51c: 2e00 cmp r6, #0 1b51e: f77f ae52 ble.w 1b1c6 <_vfiprintf_r+0x2e2> 1b522: 2e10 cmp r6, #16 1b524: f340 8232 ble.w 1b98c <_vfiprintf_r+0xaa8> 1b528: 4d03 ldr r5, [pc, #12] ; (1b538 <_vfiprintf_r+0x654>) 1b52a: 4663 mov r3, ip 1b52c: e00d b.n 1b54a <_vfiprintf_r+0x666> 1b52e: bf00 nop 1b530: 0002c060 .word 0x0002c060 1b534: 0002c04c .word 0x0002c04c 1b538: 0002c2e4 .word 0x0002c2e4 1b53c: 1c91 adds r1, r2, #2 1b53e: f109 0908 add.w r9, r9, #8 1b542: 4602 mov r2, r0 1b544: 3e10 subs r6, #16 1b546: 2e10 cmp r6, #16 1b548: dd1d ble.n 1b586 <_vfiprintf_r+0x6a2> 1b54a: 1c50 adds r0, r2, #1 1b54c: 3310 adds r3, #16 1b54e: 2110 movs r1, #16 1b550: 2807 cmp r0, #7 1b552: e9cd 030e strd r0, r3, [sp, #56] ; 0x38 1b556: f8c9 5000 str.w r5, [r9] 1b55a: f8c9 1004 str.w r1, [r9, #4] 1b55e: dded ble.n 1b53c <_vfiprintf_r+0x658> 1b560: aa0d add r2, sp, #52 ; 0x34 1b562: 2b00 cmp r3, #0 1b564: d078 beq.n 1b658 <_vfiprintf_r+0x774> 1b566: 4641 mov r1, r8 1b568: 4658 mov r0, fp 1b56a: f10d 0968 add.w r9, sp, #104 ; 0x68 1b56e: f7ff fc73 bl 1ae58 <__sprint_r.part.0> 1b572: 2800 cmp r0, #0 1b574: f47f adba bne.w 1b0ec <_vfiprintf_r+0x208> 1b578: e9dd 230e ldrd r2, r3, [sp, #56] ; 0x38 1b57c: 3e10 subs r6, #16 1b57e: 2e10 cmp r6, #16 1b580: f102 0101 add.w r1, r2, #1 1b584: dce1 bgt.n 1b54a <_vfiprintf_r+0x666> 1b586: 4608 mov r0, r1 1b588: 469c mov ip, r3 1b58a: 44b4 add ip, r6 1b58c: 2807 cmp r0, #7 1b58e: e9cd 0c0e strd r0, ip, [sp, #56] ; 0x38 1b592: f8c9 5000 str.w r5, [r9] 1b596: f8c9 6004 str.w r6, [r9, #4] 1b59a: f340 8175 ble.w 1b888 <_vfiprintf_r+0x9a4> 1b59e: f1bc 0f00 cmp.w ip, #0 1b5a2: f000 81b5 beq.w 1b910 <_vfiprintf_r+0xa2c> 1b5a6: aa0d add r2, sp, #52 ; 0x34 1b5a8: 4641 mov r1, r8 1b5aa: 4658 mov r0, fp 1b5ac: f7ff fc54 bl 1ae58 <__sprint_r.part.0> 1b5b0: 2800 cmp r0, #0 1b5b2: f47f ad9b bne.w 1b0ec <_vfiprintf_r+0x208> 1b5b6: 9b03 ldr r3, [sp, #12] 1b5b8: e9dd 2c0e ldrd r2, ip, [sp, #56] ; 0x38 1b5bc: ebaa 0603 sub.w r6, sl, r3 1b5c0: 2e00 cmp r6, #0 1b5c2: f102 0101 add.w r1, r2, #1 1b5c6: f10d 0968 add.w r9, sp, #104 ; 0x68 1b5ca: f77f ae02 ble.w 1b1d2 <_vfiprintf_r+0x2ee> 1b5ce: 2e10 cmp r6, #16 1b5d0: 4dbc ldr r5, [pc, #752] ; (1b8c4 <_vfiprintf_r+0x9e0>) 1b5d2: dd25 ble.n 1b620 <_vfiprintf_r+0x73c> 1b5d4: f04f 0a10 mov.w sl, #16 1b5d8: 4663 mov r3, ip 1b5da: e006 b.n 1b5ea <_vfiprintf_r+0x706> 1b5dc: 1c91 adds r1, r2, #2 1b5de: f109 0908 add.w r9, r9, #8 1b5e2: 4602 mov r2, r0 1b5e4: 3e10 subs r6, #16 1b5e6: 2e10 cmp r6, #16 1b5e8: dd19 ble.n 1b61e <_vfiprintf_r+0x73a> 1b5ea: 1c50 adds r0, r2, #1 1b5ec: 3310 adds r3, #16 1b5ee: 2807 cmp r0, #7 1b5f0: e9c9 5a00 strd r5, sl, [r9] 1b5f4: e9cd 030e strd r0, r3, [sp, #56] ; 0x38 1b5f8: ddf0 ble.n 1b5dc <_vfiprintf_r+0x6f8> 1b5fa: aa0d add r2, sp, #52 ; 0x34 1b5fc: 4641 mov r1, r8 1b5fe: b1eb cbz r3, 1b63c <_vfiprintf_r+0x758> 1b600: 4658 mov r0, fp 1b602: f10d 0968 add.w r9, sp, #104 ; 0x68 1b606: f7ff fc27 bl 1ae58 <__sprint_r.part.0> 1b60a: 2800 cmp r0, #0 1b60c: f47f ad6e bne.w 1b0ec <_vfiprintf_r+0x208> 1b610: e9dd 230e ldrd r2, r3, [sp, #56] ; 0x38 1b614: 3e10 subs r6, #16 1b616: 2e10 cmp r6, #16 1b618: f102 0101 add.w r1, r2, #1 1b61c: dce5 bgt.n 1b5ea <_vfiprintf_r+0x706> 1b61e: 469c mov ip, r3 1b620: 44b4 add ip, r6 1b622: 2907 cmp r1, #7 1b624: e9cd 1c0e strd r1, ip, [sp, #56] ; 0x38 1b628: f8c9 5000 str.w r5, [r9] 1b62c: f8c9 6004 str.w r6, [r9, #4] 1b630: f300 80d2 bgt.w 1b7d8 <_vfiprintf_r+0x8f4> 1b634: f109 0908 add.w r9, r9, #8 1b638: 3101 adds r1, #1 1b63a: e5ca b.n 1b1d2 <_vfiprintf_r+0x2ee> 1b63c: 2101 movs r1, #1 1b63e: 461a mov r2, r3 1b640: f10d 0968 add.w r9, sp, #104 ; 0x68 1b644: e7ce b.n 1b5e4 <_vfiprintf_r+0x700> 1b646: aa0d add r2, sp, #52 ; 0x34 1b648: 4641 mov r1, r8 1b64a: 4658 mov r0, fp 1b64c: f7ff fc04 bl 1ae58 <__sprint_r.part.0> 1b650: 2800 cmp r0, #0 1b652: f43f adec beq.w 1b22e <_vfiprintf_r+0x34a> 1b656: e549 b.n 1b0ec <_vfiprintf_r+0x208> 1b658: 2101 movs r1, #1 1b65a: 461a mov r2, r3 1b65c: f10d 0968 add.w r9, sp, #104 ; 0x68 1b660: e770 b.n 1b544 <_vfiprintf_r+0x660> 1b662: f1bc 0f00 cmp.w ip, #0 1b666: f000 80ca beq.w 1b7fe <_vfiprintf_r+0x91a> 1b66a: aa0d add r2, sp, #52 ; 0x34 1b66c: 4641 mov r1, r8 1b66e: 4658 mov r0, fp 1b670: f7ff fbf2 bl 1ae58 <__sprint_r.part.0> 1b674: 2800 cmp r0, #0 1b676: f47f ad39 bne.w 1b0ec <_vfiprintf_r+0x208> 1b67a: e9dd 2c0e ldrd r2, ip, [sp, #56] ; 0x38 1b67e: f10d 0968 add.w r9, sp, #104 ; 0x68 1b682: 1c51 adds r1, r2, #1 1b684: e57b b.n 1b17e <_vfiprintf_r+0x29a> 1b686: 2302 movs r3, #2 1b688: 931b str r3, [sp, #108] ; 0x6c 1b68a: 469c mov ip, r3 1b68c: ab0c add r3, sp, #48 ; 0x30 1b68e: 931a str r3, [sp, #104] ; 0x68 1b690: 2101 movs r1, #1 1b692: f10d 0968 add.w r9, sp, #104 ; 0x68 1b696: 460a mov r2, r1 1b698: f109 0908 add.w r9, r9, #8 1b69c: 1c51 adds r1, r2, #1 1b69e: e58e b.n 1b1be <_vfiprintf_r+0x2da> 1b6a0: 2d10 cmp r5, #16 1b6a2: f340 816a ble.w 1b97a <_vfiprintf_r+0xa96> 1b6a6: 4649 mov r1, r9 1b6a8: 4e87 ldr r6, [pc, #540] ; (1b8c8 <_vfiprintf_r+0x9e4>) 1b6aa: 46b9 mov r9, r7 1b6ac: 2310 movs r3, #16 1b6ae: 4627 mov r7, r4 1b6b0: 4664 mov r4, ip 1b6b2: e007 b.n 1b6c4 <_vfiprintf_r+0x7e0> 1b6b4: f102 0e02 add.w lr, r2, #2 1b6b8: 3108 adds r1, #8 1b6ba: 4602 mov r2, r0 1b6bc: 3d10 subs r5, #16 1b6be: 2d10 cmp r5, #16 1b6c0: dd1a ble.n 1b6f8 <_vfiprintf_r+0x814> 1b6c2: 1c50 adds r0, r2, #1 1b6c4: 3410 adds r4, #16 1b6c6: 2807 cmp r0, #7 1b6c8: e9c1 6300 strd r6, r3, [r1] 1b6cc: e9cd 040e strd r0, r4, [sp, #56] ; 0x38 1b6d0: ddf0 ble.n 1b6b4 <_vfiprintf_r+0x7d0> 1b6d2: aa0d add r2, sp, #52 ; 0x34 1b6d4: 4641 mov r1, r8 1b6d6: 4658 mov r0, fp 1b6d8: b31c cbz r4, 1b722 <_vfiprintf_r+0x83e> 1b6da: f7ff fbbd bl 1ae58 <__sprint_r.part.0> 1b6de: 2800 cmp r0, #0 1b6e0: f47f ad04 bne.w 1b0ec <_vfiprintf_r+0x208> 1b6e4: e9dd 240e ldrd r2, r4, [sp, #56] ; 0x38 1b6e8: 3d10 subs r5, #16 1b6ea: 2d10 cmp r5, #16 1b6ec: f102 0e01 add.w lr, r2, #1 1b6f0: a91a add r1, sp, #104 ; 0x68 1b6f2: f04f 0310 mov.w r3, #16 1b6f6: dce4 bgt.n 1b6c2 <_vfiprintf_r+0x7de> 1b6f8: 46a4 mov ip, r4 1b6fa: 463c mov r4, r7 1b6fc: 464f mov r7, r9 1b6fe: 4689 mov r9, r1 1b700: 44ac add ip, r5 1b702: f1be 0f07 cmp.w lr, #7 1b706: e9cd ec0e strd lr, ip, [sp, #56] ; 0x38 1b70a: f8c9 6000 str.w r6, [r9] 1b70e: f8c9 5004 str.w r5, [r9, #4] 1b712: f300 808e bgt.w 1b832 <_vfiprintf_r+0x94e> 1b716: f109 0908 add.w r9, r9, #8 1b71a: f10e 0101 add.w r1, lr, #1 1b71e: 4672 mov r2, lr 1b720: e517 b.n 1b152 <_vfiprintf_r+0x26e> 1b722: 4622 mov r2, r4 1b724: f04f 0e01 mov.w lr, #1 1b728: a91a add r1, sp, #104 ; 0x68 1b72a: e7c7 b.n 1b6bc <_vfiprintf_r+0x7d8> 1b72c: 9a02 ldr r2, [sp, #8] 1b72e: 930e str r3, [sp, #56] ; 0x38 1b730: 0751 lsls r1, r2, #29 1b732: d548 bpl.n 1b7c6 <_vfiprintf_r+0x8e2> 1b734: 9a05 ldr r2, [sp, #20] 1b736: 9901 ldr r1, [sp, #4] 1b738: 1a54 subs r4, r2, r1 1b73a: 2c00 cmp r4, #0 1b73c: dd43 ble.n 1b7c6 <_vfiprintf_r+0x8e2> 1b73e: f10d 0968 add.w r9, sp, #104 ; 0x68 1b742: 2c10 cmp r4, #16 1b744: 990e ldr r1, [sp, #56] ; 0x38 1b746: f340 811e ble.w 1b986 <_vfiprintf_r+0xaa2> 1b74a: 4e5f ldr r6, [pc, #380] ; (1b8c8 <_vfiprintf_r+0x9e4>) 1b74c: 2510 movs r5, #16 1b74e: 4608 mov r0, r1 1b750: e006 b.n 1b760 <_vfiprintf_r+0x87c> 1b752: 1c81 adds r1, r0, #2 1b754: f109 0908 add.w r9, r9, #8 1b758: 4610 mov r0, r2 1b75a: 3c10 subs r4, #16 1b75c: 2c10 cmp r4, #16 1b75e: dd19 ble.n 1b794 <_vfiprintf_r+0x8b0> 1b760: 1c42 adds r2, r0, #1 1b762: 3310 adds r3, #16 1b764: 2a07 cmp r2, #7 1b766: e9c9 6500 strd r6, r5, [r9] 1b76a: e9cd 230e strd r2, r3, [sp, #56] ; 0x38 1b76e: ddf0 ble.n 1b752 <_vfiprintf_r+0x86e> 1b770: aa0d add r2, sp, #52 ; 0x34 1b772: b31b cbz r3, 1b7bc <_vfiprintf_r+0x8d8> 1b774: 4641 mov r1, r8 1b776: 4658 mov r0, fp 1b778: f7ff fb6e bl 1ae58 <__sprint_r.part.0> 1b77c: 2800 cmp r0, #0 1b77e: f47f acb5 bne.w 1b0ec <_vfiprintf_r+0x208> 1b782: e9dd 030e ldrd r0, r3, [sp, #56] ; 0x38 1b786: 3c10 subs r4, #16 1b788: 2c10 cmp r4, #16 1b78a: f100 0101 add.w r1, r0, #1 1b78e: f10d 0968 add.w r9, sp, #104 ; 0x68 1b792: dce5 bgt.n 1b760 <_vfiprintf_r+0x87c> 1b794: 4608 mov r0, r1 1b796: 4423 add r3, r4 1b798: 2807 cmp r0, #7 1b79a: e9c9 6400 strd r6, r4, [r9] 1b79e: e9cd 030e strd r0, r3, [sp, #56] ; 0x38 1b7a2: f77f ad39 ble.w 1b218 <_vfiprintf_r+0x334> 1b7a6: b173 cbz r3, 1b7c6 <_vfiprintf_r+0x8e2> 1b7a8: aa0d add r2, sp, #52 ; 0x34 1b7aa: 4641 mov r1, r8 1b7ac: 4658 mov r0, fp 1b7ae: f7ff fb53 bl 1ae58 <__sprint_r.part.0> 1b7b2: 2800 cmp r0, #0 1b7b4: f47f ac9a bne.w 1b0ec <_vfiprintf_r+0x208> 1b7b8: 9b0f ldr r3, [sp, #60] ; 0x3c 1b7ba: e52d b.n 1b218 <_vfiprintf_r+0x334> 1b7bc: 2101 movs r1, #1 1b7be: 4618 mov r0, r3 1b7c0: f10d 0968 add.w r9, sp, #104 ; 0x68 1b7c4: e7c9 b.n 1b75a <_vfiprintf_r+0x876> 1b7c6: e9dd 3204 ldrd r3, r2, [sp, #16] 1b7ca: 9901 ldr r1, [sp, #4] 1b7cc: 428a cmp r2, r1 1b7ce: bfac ite ge 1b7d0: 189b addge r3, r3, r2 1b7d2: 185b addlt r3, r3, r1 1b7d4: 9304 str r3, [sp, #16] 1b7d6: e52a b.n 1b22e <_vfiprintf_r+0x34a> 1b7d8: f1bc 0f00 cmp.w ip, #0 1b7dc: f43f ae7c beq.w 1b4d8 <_vfiprintf_r+0x5f4> 1b7e0: aa0d add r2, sp, #52 ; 0x34 1b7e2: 4641 mov r1, r8 1b7e4: 4658 mov r0, fp 1b7e6: f7ff fb37 bl 1ae58 <__sprint_r.part.0> 1b7ea: 2800 cmp r0, #0 1b7ec: f47f ac7e bne.w 1b0ec <_vfiprintf_r+0x208> 1b7f0: 990e ldr r1, [sp, #56] ; 0x38 1b7f2: f8dd c03c ldr.w ip, [sp, #60] ; 0x3c 1b7f6: 3101 adds r1, #1 1b7f8: f10d 0968 add.w r9, sp, #104 ; 0x68 1b7fc: e4e9 b.n 1b1d2 <_vfiprintf_r+0x2ee> 1b7fe: 9b07 ldr r3, [sp, #28] 1b800: 2b00 cmp r3, #0 1b802: d152 bne.n 1b8aa <_vfiprintf_r+0x9c6> 1b804: 2101 movs r1, #1 1b806: 4662 mov r2, ip 1b808: f10d 0968 add.w r9, sp, #104 ; 0x68 1b80c: e4d7 b.n 1b1be <_vfiprintf_r+0x2da> 1b80e: 920e str r2, [sp, #56] ; 0x38 1b810: f10d 0968 add.w r9, sp, #104 ; 0x68 1b814: e456 b.n 1b0c4 <_vfiprintf_r+0x1e0> 1b816: f1ba 0f00 cmp.w sl, #0 1b81a: f040 8092 bne.w 1b942 <_vfiprintf_r+0xa5e> 1b81e: f04f 0a00 mov.w sl, #0 1b822: f8cd a00c str.w sl, [sp, #12] 1b826: ac1a add r4, sp, #104 ; 0x68 1b828: e64b b.n 1b4c2 <_vfiprintf_r+0x5de> 1b82a: 4253 negs r3, r2 1b82c: 212d movs r1, #45 ; 0x2d 1b82e: 2201 movs r2, #1 1b830: e566 b.n 1b300 <_vfiprintf_r+0x41c> 1b832: f1bc 0f00 cmp.w ip, #0 1b836: d056 beq.n 1b8e6 <_vfiprintf_r+0xa02> 1b838: aa0d add r2, sp, #52 ; 0x34 1b83a: 4641 mov r1, r8 1b83c: 4658 mov r0, fp 1b83e: f7ff fb0b bl 1ae58 <__sprint_r.part.0> 1b842: 2800 cmp r0, #0 1b844: f47f ac52 bne.w 1b0ec <_vfiprintf_r+0x208> 1b848: e9dd 2c0e ldrd r2, ip, [sp, #56] ; 0x38 1b84c: f10d 0968 add.w r9, sp, #104 ; 0x68 1b850: 1c51 adds r1, r2, #1 1b852: e47e b.n 1b152 <_vfiprintf_r+0x26e> 1b854: 4e1d ldr r6, [pc, #116] ; (1b8cc <_vfiprintf_r+0x9e8>) 1b856: ac1a add r4, sp, #104 ; 0x68 1b858: fba6 0203 umull r0, r2, r6, r3 1b85c: 08d2 lsrs r2, r2, #3 1b85e: eb02 0082 add.w r0, r2, r2, lsl #2 1b862: eba3 0040 sub.w r0, r3, r0, lsl #1 1b866: 3030 adds r0, #48 ; 0x30 1b868: f804 0d01 strb.w r0, [r4, #-1]! 1b86c: 4618 mov r0, r3 1b86e: 2809 cmp r0, #9 1b870: 4613 mov r3, r2 1b872: d8f1 bhi.n 1b858 <_vfiprintf_r+0x974> 1b874: ab1a add r3, sp, #104 ; 0x68 1b876: 1b1b subs r3, r3, r4 1b878: 9502 str r5, [sp, #8] 1b87a: 9303 str r3, [sp, #12] 1b87c: e621 b.n 1b4c2 <_vfiprintf_r+0x5de> 1b87e: 9306 str r3, [sp, #24] 1b880: f7ff bb83 b.w 1af8a <_vfiprintf_r+0xa6> 1b884: ac1a add r4, sp, #104 ; 0x68 1b886: e61c b.n 1b4c2 <_vfiprintf_r+0x5de> 1b888: f109 0908 add.w r9, r9, #8 1b88c: 1c41 adds r1, r0, #1 1b88e: 4602 mov r2, r0 1b890: e499 b.n 1b1c6 <_vfiprintf_r+0x2e2> 1b892: b212 sxth r2, r2 1b894: 4613 mov r3, r2 1b896: e4dd b.n 1b254 <_vfiprintf_r+0x370> 1b898: f88d 2031 strb.w r2, [sp, #49] ; 0x31 1b89c: 2230 movs r2, #48 ; 0x30 1b89e: f88d 2030 strb.w r2, [sp, #48] ; 0x30 1b8a2: f045 0502 orr.w r5, r5, #2 1b8a6: 2202 movs r2, #2 1b8a8: e529 b.n 1b2fe <_vfiprintf_r+0x41a> 1b8aa: 2302 movs r3, #2 1b8ac: 931b str r3, [sp, #108] ; 0x6c 1b8ae: 469c mov ip, r3 1b8b0: ab0c add r3, sp, #48 ; 0x30 1b8b2: 931a str r3, [sp, #104] ; 0x68 1b8b4: f10d 0968 add.w r9, sp, #104 ; 0x68 1b8b8: e6ee b.n 1b698 <_vfiprintf_r+0x7b4> 1b8ba: 2101 movs r1, #1 1b8bc: 202b movs r0, #43 ; 0x2b 1b8be: f7ff bb64 b.w 1af8a <_vfiprintf_r+0xa6> 1b8c2: bf00 nop 1b8c4: 0002c2e4 .word 0x0002c2e4 1b8c8: 0002c2d4 .word 0x0002c2d4 1b8cc: cccccccd .word 0xcccccccd 1b8d0: 4620 mov r0, r4 1b8d2: 9606 str r6, [sp, #24] 1b8d4: 9502 str r5, [sp, #8] 1b8d6: f7fb fd53 bl 17380 1b8da: f04f 0a00 mov.w sl, #0 1b8de: f89d 102f ldrb.w r1, [sp, #47] ; 0x2f 1b8e2: 9003 str r0, [sp, #12] 1b8e4: e5ed b.n 1b4c2 <_vfiprintf_r+0x5de> 1b8e6: f89d 202f ldrb.w r2, [sp, #47] ; 0x2f 1b8ea: b1b2 cbz r2, 1b91a <_vfiprintf_r+0xa36> 1b8ec: 2101 movs r1, #1 1b8ee: f10d 022f add.w r2, sp, #47 ; 0x2f 1b8f2: 911b str r1, [sp, #108] ; 0x6c 1b8f4: 921a str r2, [sp, #104] ; 0x68 1b8f6: f10d 0968 add.w r9, sp, #104 ; 0x68 1b8fa: 468c mov ip, r1 1b8fc: e43b b.n 1b176 <_vfiprintf_r+0x292> 1b8fe: 4653 mov r3, sl 1b900: 2b06 cmp r3, #6 1b902: bf28 it cs 1b904: 2306 movcs r3, #6 1b906: 4c29 ldr r4, [pc, #164] ; (1b9ac <_vfiprintf_r+0xac8>) 1b908: 9303 str r3, [sp, #12] 1b90a: 9606 str r6, [sp, #24] 1b90c: 9301 str r3, [sp, #4] 1b90e: e406 b.n 1b11e <_vfiprintf_r+0x23a> 1b910: 2101 movs r1, #1 1b912: 4662 mov r2, ip 1b914: f10d 0968 add.w r9, sp, #104 ; 0x68 1b918: e455 b.n 1b1c6 <_vfiprintf_r+0x2e2> 1b91a: 9b07 ldr r3, [sp, #28] 1b91c: 2b00 cmp r3, #0 1b91e: f47f aeb2 bne.w 1b686 <_vfiprintf_r+0x7a2> 1b922: 4662 mov r2, ip 1b924: 2101 movs r1, #1 1b926: f10d 0968 add.w r9, sp, #104 ; 0x68 1b92a: e44c b.n 1b1c6 <_vfiprintf_r+0x2e2> 1b92c: f88d 002f strb.w r0, [sp, #47] ; 0x2f 1b930: f7ff bbe9 b.w 1b106 <_vfiprintf_r+0x222> 1b934: aa0d add r2, sp, #52 ; 0x34 1b936: 4641 mov r1, r8 1b938: 4658 mov r0, fp 1b93a: f7ff fa8d bl 1ae58 <__sprint_r.part.0> 1b93e: f7ff bbd5 b.w 1b0ec <_vfiprintf_r+0x208> 1b942: 9d02 ldr r5, [sp, #8] 1b944: e498 b.n 1b278 <_vfiprintf_r+0x394> 1b946: f8cd a00c str.w sl, [sp, #12] 1b94a: f89d 102f ldrb.w r1, [sp, #47] ; 0x2f 1b94e: 9606 str r6, [sp, #24] 1b950: 9502 str r5, [sp, #8] 1b952: 4682 mov sl, r0 1b954: e5b5 b.n 1b4c2 <_vfiprintf_r+0x5de> 1b956: f88d 002f strb.w r0, [sp, #47] ; 0x2f 1b95a: e559 b.n 1b410 <_vfiprintf_r+0x52c> 1b95c: f88d 002f strb.w r0, [sp, #47] ; 0x2f 1b960: e567 b.n 1b432 <_vfiprintf_r+0x54e> 1b962: f88d 002f strb.w r0, [sp, #47] ; 0x2f 1b966: e586 b.n 1b476 <_vfiprintf_r+0x592> 1b968: f88d 002f strb.w r0, [sp, #47] ; 0x2f 1b96c: e4b6 b.n 1b2dc <_vfiprintf_r+0x3f8> 1b96e: f88d 002f strb.w r0, [sp, #47] ; 0x2f 1b972: e4e7 b.n 1b344 <_vfiprintf_r+0x460> 1b974: f88d 002f strb.w r0, [sp, #47] ; 0x2f 1b978: e532 b.n 1b3e0 <_vfiprintf_r+0x4fc> 1b97a: 4e0d ldr r6, [pc, #52] ; (1b9b0 <_vfiprintf_r+0xacc>) 1b97c: 4686 mov lr, r0 1b97e: e6bf b.n 1b700 <_vfiprintf_r+0x81c> 1b980: f88d 002f strb.w r0, [sp, #47] ; 0x2f 1b984: e45c b.n 1b240 <_vfiprintf_r+0x35c> 1b986: 4e0a ldr r6, [pc, #40] ; (1b9b0 <_vfiprintf_r+0xacc>) 1b988: 1c48 adds r0, r1, #1 1b98a: e704 b.n 1b796 <_vfiprintf_r+0x8b2> 1b98c: 4d09 ldr r5, [pc, #36] ; (1b9b4 <_vfiprintf_r+0xad0>) 1b98e: 4608 mov r0, r1 1b990: e5fb b.n 1b58a <_vfiprintf_r+0x6a6> 1b992: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff 1b996: 9304 str r3, [sp, #16] 1b998: f7ff bbad b.w 1b0f6 <_vfiprintf_r+0x212> 1b99c: 9b06 ldr r3, [sp, #24] 1b99e: f853 2b04 ldr.w r2, [r3], #4 1b9a2: 9306 str r3, [sp, #24] 1b9a4: ea42 7ae2 orr.w sl, r2, r2, asr #31 1b9a8: f7ff baef b.w 1af8a <_vfiprintf_r+0xa6> 1b9ac: 0002c074 .word 0x0002c074 1b9b0: 0002c2d4 .word 0x0002c2d4 1b9b4: 0002c2e4 .word 0x0002c2e4 0001b9b8 <__sbprintf>: 1b9b8: b570 push {r4, r5, r6, lr} 1b9ba: 460c mov r4, r1 1b9bc: 8989 ldrh r1, [r1, #12] 1b9be: f5ad 6d8d sub.w sp, sp, #1128 ; 0x468 1b9c2: f021 0102 bic.w r1, r1, #2 1b9c6: f8ad 1010 strh.w r1, [sp, #16] 1b9ca: 6e21 ldr r1, [r4, #96] ; 0x60 1b9cc: 9119 str r1, [sp, #100] ; 0x64 1b9ce: 89e1 ldrh r1, [r4, #14] 1b9d0: f8ad 1012 strh.w r1, [sp, #18] 1b9d4: 69e1 ldr r1, [r4, #28] 1b9d6: 9108 str r1, [sp, #32] 1b9d8: 6a61 ldr r1, [r4, #36] ; 0x24 1b9da: 910a str r1, [sp, #40] ; 0x28 1b9dc: a91a add r1, sp, #104 ; 0x68 1b9de: 9101 str r1, [sp, #4] 1b9e0: 9105 str r1, [sp, #20] 1b9e2: f44f 6180 mov.w r1, #1024 ; 0x400 1b9e6: 9103 str r1, [sp, #12] 1b9e8: 9106 str r1, [sp, #24] 1b9ea: 2100 movs r1, #0 1b9ec: 9107 str r1, [sp, #28] 1b9ee: a901 add r1, sp, #4 1b9f0: 4606 mov r6, r0 1b9f2: f7ff fa77 bl 1aee4 <_vfiprintf_r> 1b9f6: 1e05 subs r5, r0, #0 1b9f8: db07 blt.n 1ba0a <__sbprintf+0x52> 1b9fa: a901 add r1, sp, #4 1b9fc: 4630 mov r0, r6 1b9fe: f7fe f85d bl 19abc <_fflush_r> 1ba02: 2800 cmp r0, #0 1ba04: bf18 it ne 1ba06: f04f 35ff movne.w r5, #4294967295 ; 0xffffffff 1ba0a: f8bd 3010 ldrh.w r3, [sp, #16] 1ba0e: 065b lsls r3, r3, #25 1ba10: d503 bpl.n 1ba1a <__sbprintf+0x62> 1ba12: 89a3 ldrh r3, [r4, #12] 1ba14: f043 0340 orr.w r3, r3, #64 ; 0x40 1ba18: 81a3 strh r3, [r4, #12] 1ba1a: 4628 mov r0, r5 1ba1c: f50d 6d8d add.w sp, sp, #1128 ; 0x468 1ba20: bd70 pop {r4, r5, r6, pc} 1ba22: bf00 nop 0001ba24 : 1ba24: b510 push {r4, lr} 1ba26: 4c1a ldr r4, [pc, #104] ; (1ba90 ) 1ba28: 2900 cmp r1, #0 1ba2a: 6824 ldr r4, [r4, #0] 1ba2c: b09a sub sp, #104 ; 0x68 1ba2e: db2a blt.n 1ba86 1ba30: 9001 str r0, [sp, #4] 1ba32: 9005 str r0, [sp, #20] 1ba34: f44f 7002 mov.w r0, #520 ; 0x208 1ba38: f8ad 0010 strh.w r0, [sp, #16] 1ba3c: d013 beq.n 1ba66 1ba3e: 3901 subs r1, #1 1ba40: f64f 70ff movw r0, #65535 ; 0xffff 1ba44: 9103 str r1, [sp, #12] 1ba46: 9106 str r1, [sp, #24] 1ba48: f8ad 0012 strh.w r0, [sp, #18] 1ba4c: a901 add r1, sp, #4 1ba4e: 4620 mov r0, r4 1ba50: f000 fd60 bl 1c514 <_svfprintf_r> 1ba54: 1c42 adds r2, r0, #1 1ba56: da01 bge.n 1ba5c 1ba58: 238b movs r3, #139 ; 0x8b 1ba5a: 6023 str r3, [r4, #0] 1ba5c: 9b01 ldr r3, [sp, #4] 1ba5e: 2200 movs r2, #0 1ba60: 701a strb r2, [r3, #0] 1ba62: b01a add sp, #104 ; 0x68 1ba64: bd10 pop {r4, pc} 1ba66: f64f 70ff movw r0, #65535 ; 0xffff 1ba6a: 9103 str r1, [sp, #12] 1ba6c: 9106 str r1, [sp, #24] 1ba6e: f8ad 0012 strh.w r0, [sp, #18] 1ba72: a901 add r1, sp, #4 1ba74: 4620 mov r0, r4 1ba76: f000 fd4d bl 1c514 <_svfprintf_r> 1ba7a: 1c43 adds r3, r0, #1 1ba7c: da01 bge.n 1ba82 1ba7e: 238b movs r3, #139 ; 0x8b 1ba80: 6023 str r3, [r4, #0] 1ba82: b01a add sp, #104 ; 0x68 1ba84: bd10 pop {r4, pc} 1ba86: 238b movs r3, #139 ; 0x8b 1ba88: 6023 str r3, [r4, #0] 1ba8a: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff 1ba8e: e7f8 b.n 1ba82 1ba90: 20000068 .word 0x20000068 0001ba94 : 1ba94: b570 push {r4, r5, r6, lr} 1ba96: 4e0b ldr r6, [pc, #44] ; (1bac4 ) 1ba98: b09a sub sp, #104 ; 0x68 1ba9a: 4604 mov r4, r0 1ba9c: f06f 4500 mvn.w r5, #2147483648 ; 0x80000000 1baa0: e9cd 4505 strd r4, r5, [sp, #20] 1baa4: 4613 mov r3, r2 1baa6: 9401 str r4, [sp, #4] 1baa8: 460a mov r2, r1 1baaa: 6830 ldr r0, [r6, #0] 1baac: 4c06 ldr r4, [pc, #24] ; (1bac8 ) 1baae: 9503 str r5, [sp, #12] 1bab0: a901 add r1, sp, #4 1bab2: 9404 str r4, [sp, #16] 1bab4: f000 fd2e bl 1c514 <_svfprintf_r> 1bab8: 9b01 ldr r3, [sp, #4] 1baba: 2200 movs r2, #0 1babc: 701a strb r2, [r3, #0] 1babe: b01a add sp, #104 ; 0x68 1bac0: bd70 pop {r4, r5, r6, pc} 1bac2: bf00 nop 1bac4: 20000068 .word 0x20000068 1bac8: ffff0208 .word 0xffff0208 0001bacc <_write_r>: 1bacc: b538 push {r3, r4, r5, lr} 1bace: 460c mov r4, r1 1bad0: 4d08 ldr r5, [pc, #32] ; (1baf4 <_write_r+0x28>) 1bad2: 4684 mov ip, r0 1bad4: 4611 mov r1, r2 1bad6: 4620 mov r0, r4 1bad8: 461a mov r2, r3 1bada: 2300 movs r3, #0 1badc: 602b str r3, [r5, #0] 1bade: 4664 mov r4, ip 1bae0: f002 f8b0 bl 1dc44 <_write> 1bae4: 1c43 adds r3, r0, #1 1bae6: d000 beq.n 1baea <_write_r+0x1e> 1bae8: bd38 pop {r3, r4, r5, pc} 1baea: 682b ldr r3, [r5, #0] 1baec: 2b00 cmp r3, #0 1baee: d0fb beq.n 1bae8 <_write_r+0x1c> 1baf0: 6023 str r3, [r4, #0] 1baf2: bd38 pop {r3, r4, r5, pc} 1baf4: 2000d1d0 .word 0x2000d1d0 0001baf8 <__assert_func>: 1baf8: b500 push {lr} 1bafa: 4c0b ldr r4, [pc, #44] ; (1bb28 <__assert_func+0x30>) 1bafc: 6825 ldr r5, [r4, #0] 1bafe: 4614 mov r4, r2 1bb00: 68ee ldr r6, [r5, #12] 1bb02: 461a mov r2, r3 1bb04: b085 sub sp, #20 1bb06: 4603 mov r3, r0 1bb08: 460d mov r5, r1 1bb0a: b14c cbz r4, 1bb20 <__assert_func+0x28> 1bb0c: 4907 ldr r1, [pc, #28] ; (1bb2c <__assert_func+0x34>) 1bb0e: 9500 str r5, [sp, #0] 1bb10: e9cd 1401 strd r1, r4, [sp, #4] 1bb14: 4630 mov r0, r6 1bb16: 4906 ldr r1, [pc, #24] ; (1bb30 <__assert_func+0x38>) 1bb18: f000 f8a2 bl 1bc60 1bb1c: f001 ff3a bl 1d994 1bb20: 4904 ldr r1, [pc, #16] ; (1bb34 <__assert_func+0x3c>) 1bb22: 460c mov r4, r1 1bb24: e7f3 b.n 1bb0e <__assert_func+0x16> 1bb26: bf00 nop 1bb28: 20000068 .word 0x20000068 1bb2c: 0002c2f4 .word 0x0002c2f4 1bb30: 0002c304 .word 0x0002c304 1bb34: 0002c300 .word 0x0002c300 0001bb38 <_calloc_r>: 1bb38: b538 push {r3, r4, r5, lr} 1bb3a: fba1 1402 umull r1, r4, r1, r2 1bb3e: bb8c cbnz r4, 1bba4 <_calloc_r+0x6c> 1bb40: f7fe fa2e bl 19fa0 <_malloc_r> 1bb44: 4605 mov r5, r0 1bb46: b1e0 cbz r0, 1bb82 <_calloc_r+0x4a> 1bb48: f850 2c04 ldr.w r2, [r0, #-4] 1bb4c: f022 0203 bic.w r2, r2, #3 1bb50: 3a04 subs r2, #4 1bb52: 2a24 cmp r2, #36 ; 0x24 1bb54: d817 bhi.n 1bb86 <_calloc_r+0x4e> 1bb56: 2a13 cmp r2, #19 1bb58: d91a bls.n 1bb90 <_calloc_r+0x58> 1bb5a: 2a1b cmp r2, #27 1bb5c: e9c0 4400 strd r4, r4, [r0] 1bb60: d91d bls.n 1bb9e <_calloc_r+0x66> 1bb62: 2a24 cmp r2, #36 ; 0x24 1bb64: bf14 ite ne 1bb66: f100 0210 addne.w r2, r0, #16 1bb6a: f100 0218 addeq.w r2, r0, #24 1bb6e: f04f 0300 mov.w r3, #0 1bb72: e9c0 4402 strd r4, r4, [r0, #8] 1bb76: bf04 itt eq 1bb78: 6104 streq r4, [r0, #16] 1bb7a: 6144 streq r4, [r0, #20] 1bb7c: e9c2 3300 strd r3, r3, [r2] 1bb80: 6093 str r3, [r2, #8] 1bb82: 4628 mov r0, r5 1bb84: bd38 pop {r3, r4, r5, pc} 1bb86: 4621 mov r1, r4 1bb88: f7fb f9b6 bl 16ef8 1bb8c: 4628 mov r0, r5 1bb8e: bd38 pop {r3, r4, r5, pc} 1bb90: 4602 mov r2, r0 1bb92: 2300 movs r3, #0 1bb94: e9c2 3300 strd r3, r3, [r2] 1bb98: 6093 str r3, [r2, #8] 1bb9a: 4628 mov r0, r5 1bb9c: bd38 pop {r3, r4, r5, pc} 1bb9e: f100 0208 add.w r2, r0, #8 1bba2: e7f6 b.n 1bb92 <_calloc_r+0x5a> 1bba4: f000 f816 bl 1bbd4 <__errno> 1bba8: 230c movs r3, #12 1bbaa: 2500 movs r5, #0 1bbac: 6003 str r3, [r0, #0] 1bbae: e7e8 b.n 1bb82 <_calloc_r+0x4a> 0001bbb0 <_close_r>: 1bbb0: b538 push {r3, r4, r5, lr} 1bbb2: 4d07 ldr r5, [pc, #28] ; (1bbd0 <_close_r+0x20>) 1bbb4: 2200 movs r2, #0 1bbb6: 4604 mov r4, r0 1bbb8: 4608 mov r0, r1 1bbba: 602a str r2, [r5, #0] 1bbbc: f7e4 fbde bl 37c <_close> 1bbc0: 1c43 adds r3, r0, #1 1bbc2: d000 beq.n 1bbc6 <_close_r+0x16> 1bbc4: bd38 pop {r3, r4, r5, pc} 1bbc6: 682b ldr r3, [r5, #0] 1bbc8: 2b00 cmp r3, #0 1bbca: d0fb beq.n 1bbc4 <_close_r+0x14> 1bbcc: 6023 str r3, [r4, #0] 1bbce: bd38 pop {r3, r4, r5, pc} 1bbd0: 2000d1d0 .word 0x2000d1d0 0001bbd4 <__errno>: 1bbd4: 4b01 ldr r3, [pc, #4] ; (1bbdc <__errno+0x8>) 1bbd6: 6818 ldr r0, [r3, #0] 1bbd8: 4770 bx lr 1bbda: bf00 nop 1bbdc: 20000068 .word 0x20000068 0001bbe0 <_fclose_r>: 1bbe0: b570 push {r4, r5, r6, lr} 1bbe2: b139 cbz r1, 1bbf4 <_fclose_r+0x14> 1bbe4: 4606 mov r6, r0 1bbe6: 460c mov r4, r1 1bbe8: b108 cbz r0, 1bbee <_fclose_r+0xe> 1bbea: 6b83 ldr r3, [r0, #56] ; 0x38 1bbec: b363 cbz r3, 1bc48 <_fclose_r+0x68> 1bbee: f9b4 300c ldrsh.w r3, [r4, #12] 1bbf2: b913 cbnz r3, 1bbfa <_fclose_r+0x1a> 1bbf4: 2500 movs r5, #0 1bbf6: 4628 mov r0, r5 1bbf8: bd70 pop {r4, r5, r6, pc} 1bbfa: 4621 mov r1, r4 1bbfc: 4630 mov r0, r6 1bbfe: f7fd fec3 bl 19988 <__sflush_r> 1bc02: 6ae3 ldr r3, [r4, #44] ; 0x2c 1bc04: 4605 mov r5, r0 1bc06: b133 cbz r3, 1bc16 <_fclose_r+0x36> 1bc08: 69e1 ldr r1, [r4, #28] 1bc0a: 4630 mov r0, r6 1bc0c: 4798 blx r3 1bc0e: 2800 cmp r0, #0 1bc10: bfb8 it lt 1bc12: f04f 35ff movlt.w r5, #4294967295 ; 0xffffffff 1bc16: 89a3 ldrh r3, [r4, #12] 1bc18: 061b lsls r3, r3, #24 1bc1a: d41c bmi.n 1bc56 <_fclose_r+0x76> 1bc1c: 6b21 ldr r1, [r4, #48] ; 0x30 1bc1e: b141 cbz r1, 1bc32 <_fclose_r+0x52> 1bc20: f104 0340 add.w r3, r4, #64 ; 0x40 1bc24: 4299 cmp r1, r3 1bc26: d002 beq.n 1bc2e <_fclose_r+0x4e> 1bc28: 4630 mov r0, r6 1bc2a: f7fe f825 bl 19c78 <_free_r> 1bc2e: 2300 movs r3, #0 1bc30: 6323 str r3, [r4, #48] ; 0x30 1bc32: 6c61 ldr r1, [r4, #68] ; 0x44 1bc34: b121 cbz r1, 1bc40 <_fclose_r+0x60> 1bc36: 4630 mov r0, r6 1bc38: f7fe f81e bl 19c78 <_free_r> 1bc3c: 2300 movs r3, #0 1bc3e: 6463 str r3, [r4, #68] ; 0x44 1bc40: 2300 movs r3, #0 1bc42: 81a3 strh r3, [r4, #12] 1bc44: 4628 mov r0, r5 1bc46: bd70 pop {r4, r5, r6, pc} 1bc48: f7fd ffc0 bl 19bcc <__sinit> 1bc4c: f9b4 300c ldrsh.w r3, [r4, #12] 1bc50: 2b00 cmp r3, #0 1bc52: d0cf beq.n 1bbf4 <_fclose_r+0x14> 1bc54: e7d1 b.n 1bbfa <_fclose_r+0x1a> 1bc56: 6921 ldr r1, [r4, #16] 1bc58: 4630 mov r0, r6 1bc5a: f7fe f80d bl 19c78 <_free_r> 1bc5e: e7dd b.n 1bc1c <_fclose_r+0x3c> 0001bc60 : 1bc60: b40e push {r1, r2, r3} 1bc62: b510 push {r4, lr} 1bc64: b083 sub sp, #12 1bc66: ab05 add r3, sp, #20 1bc68: 4c06 ldr r4, [pc, #24] ; (1bc84 ) 1bc6a: f853 2b04 ldr.w r2, [r3], #4 1bc6e: 9301 str r3, [sp, #4] 1bc70: 4601 mov r1, r0 1bc72: 6820 ldr r0, [r4, #0] 1bc74: f7ff f936 bl 1aee4 <_vfiprintf_r> 1bc78: b003 add sp, #12 1bc7a: e8bd 4010 ldmia.w sp!, {r4, lr} 1bc7e: b003 add sp, #12 1bc80: 4770 bx lr 1bc82: bf00 nop 1bc84: 20000068 .word 0x20000068 0001bc88 <__fputwc>: 1bc88: e92d 43f0 stmdb sp!, {r4, r5, r6, r7, r8, r9, lr} 1bc8c: b083 sub sp, #12 1bc8e: 4607 mov r7, r0 1bc90: 4688 mov r8, r1 1bc92: 4614 mov r4, r2 1bc94: f000 fa0a bl 1c0ac <__locale_mb_cur_max> 1bc98: 2801 cmp r0, #1 1bc9a: d103 bne.n 1bca4 <__fputwc+0x1c> 1bc9c: f108 33ff add.w r3, r8, #4294967295 ; 0xffffffff 1bca0: 2bfe cmp r3, #254 ; 0xfe 1bca2: d937 bls.n 1bd14 <__fputwc+0x8c> 1bca4: 4642 mov r2, r8 1bca6: f104 0358 add.w r3, r4, #88 ; 0x58 1bcaa: a901 add r1, sp, #4 1bcac: 4638 mov r0, r7 1bcae: f001 fe49 bl 1d944 <_wcrtomb_r> 1bcb2: 1c42 adds r2, r0, #1 1bcb4: 4606 mov r6, r0 1bcb6: d033 beq.n 1bd20 <__fputwc+0x98> 1bcb8: b338 cbz r0, 1bd0a <__fputwc+0x82> 1bcba: f89d c004 ldrb.w ip, [sp, #4] 1bcbe: f10d 0905 add.w r9, sp, #5 1bcc2: 2500 movs r5, #0 1bcc4: e009 b.n 1bcda <__fputwc+0x52> 1bcc6: 6823 ldr r3, [r4, #0] 1bcc8: 1c5a adds r2, r3, #1 1bcca: 6022 str r2, [r4, #0] 1bccc: f883 c000 strb.w ip, [r3] 1bcd0: 3501 adds r5, #1 1bcd2: 42b5 cmp r5, r6 1bcd4: d219 bcs.n 1bd0a <__fputwc+0x82> 1bcd6: f819 cb01 ldrb.w ip, [r9], #1 1bcda: 68a3 ldr r3, [r4, #8] 1bcdc: 3b01 subs r3, #1 1bcde: 2b00 cmp r3, #0 1bce0: 60a3 str r3, [r4, #8] 1bce2: daf0 bge.n 1bcc6 <__fputwc+0x3e> 1bce4: f8d4 e018 ldr.w lr, [r4, #24] 1bce8: 4573 cmp r3, lr 1bcea: 4661 mov r1, ip 1bcec: 4622 mov r2, r4 1bcee: 4638 mov r0, r7 1bcf0: db02 blt.n 1bcf8 <__fputwc+0x70> 1bcf2: f1bc 0f0a cmp.w ip, #10 1bcf6: d1e6 bne.n 1bcc6 <__fputwc+0x3e> 1bcf8: f001 fdcc bl 1d894 <__swbuf_r> 1bcfc: 1c43 adds r3, r0, #1 1bcfe: d1e7 bne.n 1bcd0 <__fputwc+0x48> 1bd00: 4606 mov r6, r0 1bd02: 4630 mov r0, r6 1bd04: b003 add sp, #12 1bd06: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} 1bd0a: 4646 mov r6, r8 1bd0c: 4630 mov r0, r6 1bd0e: b003 add sp, #12 1bd10: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} 1bd14: fa5f fc88 uxtb.w ip, r8 1bd18: f88d c004 strb.w ip, [sp, #4] 1bd1c: 4606 mov r6, r0 1bd1e: e7ce b.n 1bcbe <__fputwc+0x36> 1bd20: 89a3 ldrh r3, [r4, #12] 1bd22: 4630 mov r0, r6 1bd24: f043 0340 orr.w r3, r3, #64 ; 0x40 1bd28: 81a3 strh r3, [r4, #12] 1bd2a: b003 add sp, #12 1bd2c: e8bd 83f0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, pc} 0001bd30 <_fputwc_r>: 1bd30: f9b2 300c ldrsh.w r3, [r2, #12] 1bd34: f413 5f00 tst.w r3, #8192 ; 0x2000 1bd38: d10a bne.n 1bd50 <_fputwc_r+0x20> 1bd3a: b410 push {r4} 1bd3c: 6e14 ldr r4, [r2, #96] ; 0x60 1bd3e: f443 5300 orr.w r3, r3, #8192 ; 0x2000 1bd42: f444 5400 orr.w r4, r4, #8192 ; 0x2000 1bd46: 6614 str r4, [r2, #96] ; 0x60 1bd48: 8193 strh r3, [r2, #12] 1bd4a: bc10 pop {r4} 1bd4c: f7ff bf9c b.w 1bc88 <__fputwc> 1bd50: f7ff bf9a b.w 1bc88 <__fputwc> 0001bd54 <_fstat_r>: 1bd54: b570 push {r4, r5, r6, lr} 1bd56: 460c mov r4, r1 1bd58: 4d08 ldr r5, [pc, #32] ; (1bd7c <_fstat_r+0x28>) 1bd5a: 4603 mov r3, r0 1bd5c: 2600 movs r6, #0 1bd5e: 4620 mov r0, r4 1bd60: 4611 mov r1, r2 1bd62: 461c mov r4, r3 1bd64: 602e str r6, [r5, #0] 1bd66: f7e4 fb0c bl 382 <_fstat> 1bd6a: 1c43 adds r3, r0, #1 1bd6c: d000 beq.n 1bd70 <_fstat_r+0x1c> 1bd6e: bd70 pop {r4, r5, r6, pc} 1bd70: 682b ldr r3, [r5, #0] 1bd72: 2b00 cmp r3, #0 1bd74: d0fb beq.n 1bd6e <_fstat_r+0x1a> 1bd76: 6023 str r3, [r4, #0] 1bd78: bd70 pop {r4, r5, r6, pc} 1bd7a: bf00 nop 1bd7c: 2000d1d0 .word 0x2000d1d0 0001bd80 <__sfvwrite_r>: 1bd80: 6893 ldr r3, [r2, #8] 1bd82: 2b00 cmp r3, #0 1bd84: f000 80fc beq.w 1bf80 <__sfvwrite_r+0x200> 1bd88: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} 1bd8c: f9b1 300c ldrsh.w r3, [r1, #12] 1bd90: fa1f fc83 uxth.w ip, r3 1bd94: 071b lsls r3, r3, #28 1bd96: b083 sub sp, #12 1bd98: 4690 mov r8, r2 1bd9a: 4681 mov r9, r0 1bd9c: 460c mov r4, r1 1bd9e: d531 bpl.n 1be04 <__sfvwrite_r+0x84> 1bda0: 690b ldr r3, [r1, #16] 1bda2: b37b cbz r3, 1be04 <__sfvwrite_r+0x84> 1bda4: f01c 0702 ands.w r7, ip, #2 1bda8: f8d8 6000 ldr.w r6, [r8] 1bdac: d03a beq.n 1be24 <__sfvwrite_r+0xa4> 1bdae: 2700 movs r7, #0 1bdb0: f8d4 b024 ldr.w fp, [r4, #36] ; 0x24 1bdb4: 69e1 ldr r1, [r4, #28] 1bdb6: f8df a2cc ldr.w sl, [pc, #716] ; 1c084 <__sfvwrite_r+0x304> 1bdba: 463d mov r5, r7 1bdbc: 4555 cmp r5, sl 1bdbe: 462b mov r3, r5 1bdc0: 463a mov r2, r7 1bdc2: bf28 it cs 1bdc4: 4653 movcs r3, sl 1bdc6: 4648 mov r0, r9 1bdc8: b1c5 cbz r5, 1bdfc <__sfvwrite_r+0x7c> 1bdca: 47d8 blx fp 1bdcc: 2800 cmp r0, #0 1bdce: f340 80cd ble.w 1bf6c <__sfvwrite_r+0x1ec> 1bdd2: f8d8 3008 ldr.w r3, [r8, #8] 1bdd6: 1a1b subs r3, r3, r0 1bdd8: 4407 add r7, r0 1bdda: 1a2d subs r5, r5, r0 1bddc: f8c8 3008 str.w r3, [r8, #8] 1bde0: 2b00 cmp r3, #0 1bde2: f000 80b9 beq.w 1bf58 <__sfvwrite_r+0x1d8> 1bde6: 4555 cmp r5, sl 1bde8: 462b mov r3, r5 1bdea: f8d4 b024 ldr.w fp, [r4, #36] ; 0x24 1bdee: 69e1 ldr r1, [r4, #28] 1bdf0: bf28 it cs 1bdf2: 4653 movcs r3, sl 1bdf4: 463a mov r2, r7 1bdf6: 4648 mov r0, r9 1bdf8: 2d00 cmp r5, #0 1bdfa: d1e6 bne.n 1bdca <__sfvwrite_r+0x4a> 1bdfc: e9d6 7500 ldrd r7, r5, [r6] 1be00: 3608 adds r6, #8 1be02: e7db b.n 1bdbc <__sfvwrite_r+0x3c> 1be04: 4621 mov r1, r4 1be06: 4648 mov r0, r9 1be08: f7fc fd54 bl 188b4 <__swsetup_r> 1be0c: 2800 cmp r0, #0 1be0e: f040 8136 bne.w 1c07e <__sfvwrite_r+0x2fe> 1be12: f9b4 300c ldrsh.w r3, [r4, #12] 1be16: f8d8 6000 ldr.w r6, [r8] 1be1a: fa1f fc83 uxth.w ip, r3 1be1e: f01c 0702 ands.w r7, ip, #2 1be22: d1c4 bne.n 1bdae <__sfvwrite_r+0x2e> 1be24: f01c 0a01 ands.w sl, ip, #1 1be28: d166 bne.n 1bef8 <__sfvwrite_r+0x178> 1be2a: 6823 ldr r3, [r4, #0] 1be2c: 68a1 ldr r1, [r4, #8] 1be2e: 4657 mov r7, sl 1be30: 4618 mov r0, r3 1be32: 468b mov fp, r1 1be34: 2f00 cmp r7, #0 1be36: d05b beq.n 1bef0 <__sfvwrite_r+0x170> 1be38: f41c 7f00 tst.w ip, #512 ; 0x200 1be3c: f000 80b4 beq.w 1bfa8 <__sfvwrite_r+0x228> 1be40: 42b9 cmp r1, r7 1be42: 460a mov r2, r1 1be44: f200 80e0 bhi.w 1c008 <__sfvwrite_r+0x288> 1be48: f41c 6f90 tst.w ip, #1152 ; 0x480 1be4c: d030 beq.n 1beb0 <__sfvwrite_r+0x130> 1be4e: 6921 ldr r1, [r4, #16] 1be50: 1a5d subs r5, r3, r1 1be52: 6963 ldr r3, [r4, #20] 1be54: eb03 0b43 add.w fp, r3, r3, lsl #1 1be58: eb0b 7bdb add.w fp, fp, fp, lsr #31 1be5c: 1c6b adds r3, r5, #1 1be5e: ea4f 0b6b mov.w fp, fp, asr #1 1be62: 443b add r3, r7 1be64: 455b cmp r3, fp 1be66: 465a mov r2, fp 1be68: bf84 itt hi 1be6a: 469b movhi fp, r3 1be6c: 465a movhi r2, fp 1be6e: f41c 6f80 tst.w ip, #1024 ; 0x400 1be72: f000 80e8 beq.w 1c046 <__sfvwrite_r+0x2c6> 1be76: 4611 mov r1, r2 1be78: 4648 mov r0, r9 1be7a: f7fe f891 bl 19fa0 <_malloc_r> 1be7e: 2800 cmp r0, #0 1be80: f000 80f7 beq.w 1c072 <__sfvwrite_r+0x2f2> 1be84: 462a mov r2, r5 1be86: 6921 ldr r1, [r4, #16] 1be88: 9001 str r0, [sp, #4] 1be8a: f7fa ff1f bl 16ccc 1be8e: 89a2 ldrh r2, [r4, #12] 1be90: 9b01 ldr r3, [sp, #4] 1be92: f422 6290 bic.w r2, r2, #1152 ; 0x480 1be96: f042 0280 orr.w r2, r2, #128 ; 0x80 1be9a: 81a2 strh r2, [r4, #12] 1be9c: 1958 adds r0, r3, r5 1be9e: ebab 0505 sub.w r5, fp, r5 1bea2: f8c4 b014 str.w fp, [r4, #20] 1bea6: 6123 str r3, [r4, #16] 1bea8: 60a5 str r5, [r4, #8] 1beaa: 6020 str r0, [r4, #0] 1beac: 46bb mov fp, r7 1beae: 463a mov r2, r7 1beb0: 4651 mov r1, sl 1beb2: 9201 str r2, [sp, #4] 1beb4: f7fa ffa4 bl 16e00 1beb8: 68a1 ldr r1, [r4, #8] 1beba: 6823 ldr r3, [r4, #0] 1bebc: 9a01 ldr r2, [sp, #4] 1bebe: eba1 010b sub.w r1, r1, fp 1bec2: 441a add r2, r3 1bec4: 463d mov r5, r7 1bec6: 60a1 str r1, [r4, #8] 1bec8: 6022 str r2, [r4, #0] 1beca: 2700 movs r7, #0 1becc: f8d8 3008 ldr.w r3, [r8, #8] 1bed0: 1b5b subs r3, r3, r5 1bed2: 44aa add sl, r5 1bed4: f8c8 3008 str.w r3, [r8, #8] 1bed8: 2b00 cmp r3, #0 1beda: d03d beq.n 1bf58 <__sfvwrite_r+0x1d8> 1bedc: f9b4 c00c ldrsh.w ip, [r4, #12] 1bee0: 6823 ldr r3, [r4, #0] 1bee2: 68a1 ldr r1, [r4, #8] 1bee4: fa1f fc8c uxth.w ip, ip 1bee8: 4618 mov r0, r3 1beea: 468b mov fp, r1 1beec: 2f00 cmp r7, #0 1beee: d1a3 bne.n 1be38 <__sfvwrite_r+0xb8> 1bef0: e9d6 a700 ldrd sl, r7, [r6] 1bef4: 3608 adds r6, #8 1bef6: e79b b.n 1be30 <__sfvwrite_r+0xb0> 1bef8: 4638 mov r0, r7 1befa: 46bb mov fp, r7 1befc: 463d mov r5, r7 1befe: 2d00 cmp r5, #0 1bf00: d040 beq.n 1bf84 <__sfvwrite_r+0x204> 1bf02: 2800 cmp r0, #0 1bf04: d045 beq.n 1bf92 <__sfvwrite_r+0x212> 1bf06: 463a mov r2, r7 1bf08: e9d4 c304 ldrd ip, r3, [r4, #16] 1bf0c: 6820 ldr r0, [r4, #0] 1bf0e: 68a1 ldr r1, [r4, #8] 1bf10: 42aa cmp r2, r5 1bf12: bf28 it cs 1bf14: 462a movcs r2, r5 1bf16: 4560 cmp r0, ip 1bf18: d904 bls.n 1bf24 <__sfvwrite_r+0x1a4> 1bf1a: eb01 0a03 add.w sl, r1, r3 1bf1e: 4552 cmp r2, sl 1bf20: f300 8082 bgt.w 1c028 <__sfvwrite_r+0x2a8> 1bf24: 4293 cmp r3, r2 1bf26: dc72 bgt.n 1c00e <__sfvwrite_r+0x28e> 1bf28: 69e1 ldr r1, [r4, #28] 1bf2a: f8d4 c024 ldr.w ip, [r4, #36] ; 0x24 1bf2e: 465a mov r2, fp 1bf30: 4648 mov r0, r9 1bf32: 47e0 blx ip 1bf34: f1b0 0a00 subs.w sl, r0, #0 1bf38: dd18 ble.n 1bf6c <__sfvwrite_r+0x1ec> 1bf3a: ebb7 070a subs.w r7, r7, sl 1bf3e: d00f beq.n 1bf60 <__sfvwrite_r+0x1e0> 1bf40: 2001 movs r0, #1 1bf42: f8d8 3008 ldr.w r3, [r8, #8] 1bf46: eba3 030a sub.w r3, r3, sl 1bf4a: 44d3 add fp, sl 1bf4c: eba5 050a sub.w r5, r5, sl 1bf50: f8c8 3008 str.w r3, [r8, #8] 1bf54: 2b00 cmp r3, #0 1bf56: d1d2 bne.n 1befe <__sfvwrite_r+0x17e> 1bf58: 2000 movs r0, #0 1bf5a: b003 add sp, #12 1bf5c: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} 1bf60: 4621 mov r1, r4 1bf62: 4648 mov r0, r9 1bf64: f7fd fdaa bl 19abc <_fflush_r> 1bf68: 2800 cmp r0, #0 1bf6a: d0ea beq.n 1bf42 <__sfvwrite_r+0x1c2> 1bf6c: f9b4 300c ldrsh.w r3, [r4, #12] 1bf70: f043 0340 orr.w r3, r3, #64 ; 0x40 1bf74: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff 1bf78: 81a3 strh r3, [r4, #12] 1bf7a: b003 add sp, #12 1bf7c: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} 1bf80: 2000 movs r0, #0 1bf82: 4770 bx lr 1bf84: 6875 ldr r5, [r6, #4] 1bf86: 4633 mov r3, r6 1bf88: 3608 adds r6, #8 1bf8a: 2d00 cmp r5, #0 1bf8c: d0fa beq.n 1bf84 <__sfvwrite_r+0x204> 1bf8e: f8d3 b000 ldr.w fp, [r3] 1bf92: 462a mov r2, r5 1bf94: 210a movs r1, #10 1bf96: 4658 mov r0, fp 1bf98: f7fe fab2 bl 1a500 1bf9c: 2800 cmp r0, #0 1bf9e: d065 beq.n 1c06c <__sfvwrite_r+0x2ec> 1bfa0: 3001 adds r0, #1 1bfa2: eba0 070b sub.w r7, r0, fp 1bfa6: e7ae b.n 1bf06 <__sfvwrite_r+0x186> 1bfa8: 6922 ldr r2, [r4, #16] 1bfaa: 429a cmp r2, r3 1bfac: d314 bcc.n 1bfd8 <__sfvwrite_r+0x258> 1bfae: 6962 ldr r2, [r4, #20] 1bfb0: 42ba cmp r2, r7 1bfb2: d811 bhi.n 1bfd8 <__sfvwrite_r+0x258> 1bfb4: f06f 4300 mvn.w r3, #2147483648 ; 0x80000000 1bfb8: 42bb cmp r3, r7 1bfba: bf28 it cs 1bfbc: 463b movcs r3, r7 1bfbe: 6a65 ldr r5, [r4, #36] ; 0x24 1bfc0: fb93 f3f2 sdiv r3, r3, r2 1bfc4: 69e1 ldr r1, [r4, #28] 1bfc6: fb02 f303 mul.w r3, r2, r3 1bfca: 4648 mov r0, r9 1bfcc: 4652 mov r2, sl 1bfce: 47a8 blx r5 1bfd0: 1e05 subs r5, r0, #0 1bfd2: ddcb ble.n 1bf6c <__sfvwrite_r+0x1ec> 1bfd4: 1b7f subs r7, r7, r5 1bfd6: e779 b.n 1becc <__sfvwrite_r+0x14c> 1bfd8: 42b9 cmp r1, r7 1bfda: bf28 it cs 1bfdc: 4639 movcs r1, r7 1bfde: 460d mov r5, r1 1bfe0: 4618 mov r0, r3 1bfe2: 460a mov r2, r1 1bfe4: 4651 mov r1, sl 1bfe6: f7fa ff0b bl 16e00 1bfea: 68a1 ldr r1, [r4, #8] 1bfec: 6823 ldr r3, [r4, #0] 1bfee: 1b49 subs r1, r1, r5 1bff0: 442b add r3, r5 1bff2: 60a1 str r1, [r4, #8] 1bff4: 6023 str r3, [r4, #0] 1bff6: 2900 cmp r1, #0 1bff8: d1ec bne.n 1bfd4 <__sfvwrite_r+0x254> 1bffa: 4621 mov r1, r4 1bffc: 4648 mov r0, r9 1bffe: f7fd fd5d bl 19abc <_fflush_r> 1c002: 2800 cmp r0, #0 1c004: d0e6 beq.n 1bfd4 <__sfvwrite_r+0x254> 1c006: e7b1 b.n 1bf6c <__sfvwrite_r+0x1ec> 1c008: 46bb mov fp, r7 1c00a: 463a mov r2, r7 1c00c: e750 b.n 1beb0 <__sfvwrite_r+0x130> 1c00e: 4659 mov r1, fp 1c010: 9201 str r2, [sp, #4] 1c012: f7fa fef5 bl 16e00 1c016: 9a01 ldr r2, [sp, #4] 1c018: 68a3 ldr r3, [r4, #8] 1c01a: 1a9b subs r3, r3, r2 1c01c: 60a3 str r3, [r4, #8] 1c01e: 6823 ldr r3, [r4, #0] 1c020: 4413 add r3, r2 1c022: 6023 str r3, [r4, #0] 1c024: 4692 mov sl, r2 1c026: e788 b.n 1bf3a <__sfvwrite_r+0x1ba> 1c028: 4659 mov r1, fp 1c02a: 4652 mov r2, sl 1c02c: f7fa fee8 bl 16e00 1c030: 6823 ldr r3, [r4, #0] 1c032: 4453 add r3, sl 1c034: 6023 str r3, [r4, #0] 1c036: 4621 mov r1, r4 1c038: 4648 mov r0, r9 1c03a: f7fd fd3f bl 19abc <_fflush_r> 1c03e: 2800 cmp r0, #0 1c040: f43f af7b beq.w 1bf3a <__sfvwrite_r+0x1ba> 1c044: e792 b.n 1bf6c <__sfvwrite_r+0x1ec> 1c046: 4648 mov r0, r9 1c048: f000 f878 bl 1c13c <_realloc_r> 1c04c: 4603 mov r3, r0 1c04e: 2800 cmp r0, #0 1c050: f47f af24 bne.w 1be9c <__sfvwrite_r+0x11c> 1c054: 6921 ldr r1, [r4, #16] 1c056: 4648 mov r0, r9 1c058: f7fd fe0e bl 19c78 <_free_r> 1c05c: f9b4 300c ldrsh.w r3, [r4, #12] 1c060: 220c movs r2, #12 1c062: f023 0380 bic.w r3, r3, #128 ; 0x80 1c066: f8c9 2000 str.w r2, [r9] 1c06a: e781 b.n 1bf70 <__sfvwrite_r+0x1f0> 1c06c: 1c6a adds r2, r5, #1 1c06e: 4617 mov r7, r2 1c070: e74a b.n 1bf08 <__sfvwrite_r+0x188> 1c072: 220c movs r2, #12 1c074: f9b4 300c ldrsh.w r3, [r4, #12] 1c078: f8c9 2000 str.w r2, [r9] 1c07c: e778 b.n 1bf70 <__sfvwrite_r+0x1f0> 1c07e: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff 1c082: e76a b.n 1bf5a <__sfvwrite_r+0x1da> 1c084: 7ffffc00 .word 0x7ffffc00 0001c088 <_isatty_r>: 1c088: b538 push {r3, r4, r5, lr} 1c08a: 4d07 ldr r5, [pc, #28] ; (1c0a8 <_isatty_r+0x20>) 1c08c: 2200 movs r2, #0 1c08e: 4604 mov r4, r0 1c090: 4608 mov r0, r1 1c092: 602a str r2, [r5, #0] 1c094: f7e4 f97a bl 38c <_isatty> 1c098: 1c43 adds r3, r0, #1 1c09a: d000 beq.n 1c09e <_isatty_r+0x16> 1c09c: bd38 pop {r3, r4, r5, pc} 1c09e: 682b ldr r3, [r5, #0] 1c0a0: 2b00 cmp r3, #0 1c0a2: d0fb beq.n 1c09c <_isatty_r+0x14> 1c0a4: 6023 str r3, [r4, #0] 1c0a6: bd38 pop {r3, r4, r5, pc} 1c0a8: 2000d1d0 .word 0x2000d1d0 0001c0ac <__locale_mb_cur_max>: 1c0ac: 4b01 ldr r3, [pc, #4] ; (1c0b4 <__locale_mb_cur_max+0x8>) 1c0ae: f893 0128 ldrb.w r0, [r3, #296] ; 0x128 1c0b2: 4770 bx lr 1c0b4: 20000898 .word 0x20000898 0001c0b8 <_lseek_r>: 1c0b8: b538 push {r3, r4, r5, lr} 1c0ba: 460c mov r4, r1 1c0bc: 4d08 ldr r5, [pc, #32] ; (1c0e0 <_lseek_r+0x28>) 1c0be: 4684 mov ip, r0 1c0c0: 4611 mov r1, r2 1c0c2: 4620 mov r0, r4 1c0c4: 461a mov r2, r3 1c0c6: 2300 movs r3, #0 1c0c8: 602b str r3, [r5, #0] 1c0ca: 4664 mov r4, ip 1c0cc: f7e4 f960 bl 390 <_lseek> 1c0d0: 1c43 adds r3, r0, #1 1c0d2: d000 beq.n 1c0d6 <_lseek_r+0x1e> 1c0d4: bd38 pop {r3, r4, r5, pc} 1c0d6: 682b ldr r3, [r5, #0] 1c0d8: 2b00 cmp r3, #0 1c0da: d0fb beq.n 1c0d4 <_lseek_r+0x1c> 1c0dc: 6023 str r3, [r4, #0] 1c0de: bd38 pop {r3, r4, r5, pc} 1c0e0: 2000d1d0 .word 0x2000d1d0 0001c0e4 <__ascii_mbtowc>: 1c0e4: b082 sub sp, #8 1c0e6: b149 cbz r1, 1c0fc <__ascii_mbtowc+0x18> 1c0e8: b15a cbz r2, 1c102 <__ascii_mbtowc+0x1e> 1c0ea: b16b cbz r3, 1c108 <__ascii_mbtowc+0x24> 1c0ec: 7813 ldrb r3, [r2, #0] 1c0ee: 600b str r3, [r1, #0] 1c0f0: 7812 ldrb r2, [r2, #0] 1c0f2: 1e10 subs r0, r2, #0 1c0f4: bf18 it ne 1c0f6: 2001 movne r0, #1 1c0f8: b002 add sp, #8 1c0fa: 4770 bx lr 1c0fc: a901 add r1, sp, #4 1c0fe: 2a00 cmp r2, #0 1c100: d1f3 bne.n 1c0ea <__ascii_mbtowc+0x6> 1c102: 4610 mov r0, r2 1c104: b002 add sp, #8 1c106: 4770 bx lr 1c108: f06f 0001 mvn.w r0, #1 1c10c: e7f4 b.n 1c0f8 <__ascii_mbtowc+0x14> 1c10e: bf00 nop 0001c110 <_read_r>: 1c110: b538 push {r3, r4, r5, lr} 1c112: 460c mov r4, r1 1c114: 4d08 ldr r5, [pc, #32] ; (1c138 <_read_r+0x28>) 1c116: 4684 mov ip, r0 1c118: 4611 mov r1, r2 1c11a: 4620 mov r0, r4 1c11c: 461a mov r2, r3 1c11e: 2300 movs r3, #0 1c120: 602b str r3, [r5, #0] 1c122: 4664 mov r4, ip 1c124: f001 fd86 bl 1dc34 <_read> 1c128: 1c43 adds r3, r0, #1 1c12a: d000 beq.n 1c12e <_read_r+0x1e> 1c12c: bd38 pop {r3, r4, r5, pc} 1c12e: 682b ldr r3, [r5, #0] 1c130: 2b00 cmp r3, #0 1c132: d0fb beq.n 1c12c <_read_r+0x1c> 1c134: 6023 str r3, [r4, #0] 1c136: bd38 pop {r3, r4, r5, pc} 1c138: 2000d1d0 .word 0x2000d1d0 0001c13c <_realloc_r>: 1c13c: e92d 4ff8 stmdb sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr} 1c140: 4616 mov r6, r2 1c142: 2900 cmp r1, #0 1c144: f000 809c beq.w 1c280 <_realloc_r+0x144> 1c148: 460c mov r4, r1 1c14a: f106 050b add.w r5, r6, #11 1c14e: 4607 mov r7, r0 1c150: f7fe fa26 bl 1a5a0 <__malloc_lock> 1c154: 2d16 cmp r5, #22 1c156: f854 0c04 ldr.w r0, [r4, #-4] 1c15a: d85d bhi.n 1c218 <_realloc_r+0xdc> 1c15c: 2510 movs r5, #16 1c15e: 462a mov r2, r5 1c160: 42ae cmp r6, r5 1c162: d85e bhi.n 1c222 <_realloc_r+0xe6> 1c164: f020 0803 bic.w r8, r0, #3 1c168: 4590 cmp r8, r2 1c16a: f1a4 0908 sub.w r9, r4, #8 1c16e: da63 bge.n 1c238 <_realloc_r+0xfc> 1c170: 4bbc ldr r3, [pc, #752] ; (1c464 <_realloc_r+0x328>) 1c172: f8d3 e008 ldr.w lr, [r3, #8] 1c176: eb09 0c08 add.w ip, r9, r8 1c17a: 45e6 cmp lr, ip 1c17c: f8dc 1004 ldr.w r1, [ip, #4] 1c180: f000 8094 beq.w 1c2ac <_realloc_r+0x170> 1c184: f021 0301 bic.w r3, r1, #1 1c188: 4463 add r3, ip 1c18a: 685b ldr r3, [r3, #4] 1c18c: 07db lsls r3, r3, #31 1c18e: d46c bmi.n 1c26a <_realloc_r+0x12e> 1c190: f021 0e03 bic.w lr, r1, #3 1c194: eb08 030e add.w r3, r8, lr 1c198: 4293 cmp r3, r2 1c19a: da48 bge.n 1c22e <_realloc_r+0xf2> 1c19c: 07c0 lsls r0, r0, #31 1c19e: d411 bmi.n 1c1c4 <_realloc_r+0x88> 1c1a0: f854 3c08 ldr.w r3, [r4, #-8] 1c1a4: eba9 0b03 sub.w fp, r9, r3 1c1a8: f8db 3004 ldr.w r3, [fp, #4] 1c1ac: f023 0103 bic.w r1, r3, #3 1c1b0: 448e add lr, r1 1c1b2: 44c6 add lr, r8 1c1b4: 4596 cmp lr, r2 1c1b6: f280 810f bge.w 1c3d8 <_realloc_r+0x29c> 1c1ba: eb08 0301 add.w r3, r8, r1 1c1be: 4293 cmp r3, r2 1c1c0: f280 80e4 bge.w 1c38c <_realloc_r+0x250> 1c1c4: 4631 mov r1, r6 1c1c6: 4638 mov r0, r7 1c1c8: f7fd feea bl 19fa0 <_malloc_r> 1c1cc: 4606 mov r6, r0 1c1ce: b1e8 cbz r0, 1c20c <_realloc_r+0xd0> 1c1d0: f854 3c04 ldr.w r3, [r4, #-4] 1c1d4: f023 0301 bic.w r3, r3, #1 1c1d8: 444b add r3, r9 1c1da: f1a0 0208 sub.w r2, r0, #8 1c1de: 4293 cmp r3, r2 1c1e0: f000 80ce beq.w 1c380 <_realloc_r+0x244> 1c1e4: f1a8 0204 sub.w r2, r8, #4 1c1e8: 2a24 cmp r2, #36 ; 0x24 1c1ea: f200 80f1 bhi.w 1c3d0 <_realloc_r+0x294> 1c1ee: 2a13 cmp r2, #19 1c1f0: f200 80a8 bhi.w 1c344 <_realloc_r+0x208> 1c1f4: 4603 mov r3, r0 1c1f6: 4622 mov r2, r4 1c1f8: 6811 ldr r1, [r2, #0] 1c1fa: 6019 str r1, [r3, #0] 1c1fc: 6851 ldr r1, [r2, #4] 1c1fe: 6059 str r1, [r3, #4] 1c200: 6892 ldr r2, [r2, #8] 1c202: 609a str r2, [r3, #8] 1c204: 4621 mov r1, r4 1c206: 4638 mov r0, r7 1c208: f7fd fd36 bl 19c78 <_free_r> 1c20c: 4638 mov r0, r7 1c20e: f7fe f9c9 bl 1a5a4 <__malloc_unlock> 1c212: 4630 mov r0, r6 1c214: e8bd 8ff8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} 1c218: f025 0507 bic.w r5, r5, #7 1c21c: 2d00 cmp r5, #0 1c21e: 462a mov r2, r5 1c220: da9e bge.n 1c160 <_realloc_r+0x24> 1c222: 230c movs r3, #12 1c224: 603b str r3, [r7, #0] 1c226: 2600 movs r6, #0 1c228: 4630 mov r0, r6 1c22a: e8bd 8ff8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} 1c22e: 4698 mov r8, r3 1c230: e9dc 2302 ldrd r2, r3, [ip, #8] 1c234: 60d3 str r3, [r2, #12] 1c236: 609a str r2, [r3, #8] 1c238: f8d9 3004 ldr.w r3, [r9, #4] 1c23c: eba8 0205 sub.w r2, r8, r5 1c240: 2a0f cmp r2, #15 1c242: f003 0301 and.w r3, r3, #1 1c246: eb09 0008 add.w r0, r9, r8 1c24a: d81e bhi.n 1c28a <_realloc_r+0x14e> 1c24c: ea48 0303 orr.w r3, r8, r3 1c250: f8c9 3004 str.w r3, [r9, #4] 1c254: 6843 ldr r3, [r0, #4] 1c256: f043 0301 orr.w r3, r3, #1 1c25a: 6043 str r3, [r0, #4] 1c25c: 4638 mov r0, r7 1c25e: 4626 mov r6, r4 1c260: f7fe f9a0 bl 1a5a4 <__malloc_unlock> 1c264: 4630 mov r0, r6 1c266: e8bd 8ff8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, pc} 1c26a: 07c3 lsls r3, r0, #31 1c26c: d4aa bmi.n 1c1c4 <_realloc_r+0x88> 1c26e: f854 3c08 ldr.w r3, [r4, #-8] 1c272: eba9 0b03 sub.w fp, r9, r3 1c276: f8db 1004 ldr.w r1, [fp, #4] 1c27a: f021 0103 bic.w r1, r1, #3 1c27e: e79c b.n 1c1ba <_realloc_r+0x7e> 1c280: e8bd 4ff8 ldmia.w sp!, {r3, r4, r5, r6, r7, r8, r9, sl, fp, lr} 1c284: 4611 mov r1, r2 1c286: f7fd be8b b.w 19fa0 <_malloc_r> 1c28a: eb09 0105 add.w r1, r9, r5 1c28e: 432b orrs r3, r5 1c290: f042 0201 orr.w r2, r2, #1 1c294: f8c9 3004 str.w r3, [r9, #4] 1c298: 604a str r2, [r1, #4] 1c29a: 6843 ldr r3, [r0, #4] 1c29c: f043 0301 orr.w r3, r3, #1 1c2a0: 6043 str r3, [r0, #4] 1c2a2: 3108 adds r1, #8 1c2a4: 4638 mov r0, r7 1c2a6: f7fd fce7 bl 19c78 <_free_r> 1c2aa: e7d7 b.n 1c25c <_realloc_r+0x120> 1c2ac: f021 0e03 bic.w lr, r1, #3 1c2b0: eb08 010e add.w r1, r8, lr 1c2b4: f105 0c10 add.w ip, r5, #16 1c2b8: 4561 cmp r1, ip 1c2ba: da4e bge.n 1c35a <_realloc_r+0x21e> 1c2bc: 07c1 lsls r1, r0, #31 1c2be: d481 bmi.n 1c1c4 <_realloc_r+0x88> 1c2c0: f854 1c08 ldr.w r1, [r4, #-8] 1c2c4: eba9 0b01 sub.w fp, r9, r1 1c2c8: f8db 1004 ldr.w r1, [fp, #4] 1c2cc: f021 0103 bic.w r1, r1, #3 1c2d0: 448e add lr, r1 1c2d2: eb0e 0a08 add.w sl, lr, r8 1c2d6: 45d4 cmp ip, sl 1c2d8: f73f af6f bgt.w 1c1ba <_realloc_r+0x7e> 1c2dc: 465e mov r6, fp 1c2de: f8db 100c ldr.w r1, [fp, #12] 1c2e2: f856 0f08 ldr.w r0, [r6, #8]! 1c2e6: f1a8 0204 sub.w r2, r8, #4 1c2ea: 2a24 cmp r2, #36 ; 0x24 1c2ec: 60c1 str r1, [r0, #12] 1c2ee: 6088 str r0, [r1, #8] 1c2f0: f200 80dd bhi.w 1c4ae <_realloc_r+0x372> 1c2f4: 2a13 cmp r2, #19 1c2f6: f240 80d8 bls.w 1c4aa <_realloc_r+0x36e> 1c2fa: 6821 ldr r1, [r4, #0] 1c2fc: f8cb 1008 str.w r1, [fp, #8] 1c300: 6861 ldr r1, [r4, #4] 1c302: f8cb 100c str.w r1, [fp, #12] 1c306: 2a1b cmp r2, #27 1c308: f200 80e1 bhi.w 1c4ce <_realloc_r+0x392> 1c30c: 3408 adds r4, #8 1c30e: f10b 0210 add.w r2, fp, #16 1c312: 6821 ldr r1, [r4, #0] 1c314: 6011 str r1, [r2, #0] 1c316: 6861 ldr r1, [r4, #4] 1c318: 6051 str r1, [r2, #4] 1c31a: 68a1 ldr r1, [r4, #8] 1c31c: 6091 str r1, [r2, #8] 1c31e: eb0b 0105 add.w r1, fp, r5 1c322: ebaa 0205 sub.w r2, sl, r5 1c326: f042 0201 orr.w r2, r2, #1 1c32a: 6099 str r1, [r3, #8] 1c32c: 604a str r2, [r1, #4] 1c32e: f8db 3004 ldr.w r3, [fp, #4] 1c332: f003 0301 and.w r3, r3, #1 1c336: 432b orrs r3, r5 1c338: 4638 mov r0, r7 1c33a: f8cb 3004 str.w r3, [fp, #4] 1c33e: f7fe f931 bl 1a5a4 <__malloc_unlock> 1c342: e771 b.n 1c228 <_realloc_r+0xec> 1c344: 6823 ldr r3, [r4, #0] 1c346: 6003 str r3, [r0, #0] 1c348: 6863 ldr r3, [r4, #4] 1c34a: 6043 str r3, [r0, #4] 1c34c: 2a1b cmp r2, #27 1c34e: d869 bhi.n 1c424 <_realloc_r+0x2e8> 1c350: f104 0208 add.w r2, r4, #8 1c354: f100 0308 add.w r3, r0, #8 1c358: e74e b.n 1c1f8 <_realloc_r+0xbc> 1c35a: eb09 0205 add.w r2, r9, r5 1c35e: 609a str r2, [r3, #8] 1c360: 1b4b subs r3, r1, r5 1c362: f043 0301 orr.w r3, r3, #1 1c366: 6053 str r3, [r2, #4] 1c368: f854 3c04 ldr.w r3, [r4, #-4] 1c36c: f003 0301 and.w r3, r3, #1 1c370: 432b orrs r3, r5 1c372: 4638 mov r0, r7 1c374: f844 3c04 str.w r3, [r4, #-4] 1c378: f7fe f914 bl 1a5a4 <__malloc_unlock> 1c37c: 4626 mov r6, r4 1c37e: e753 b.n 1c228 <_realloc_r+0xec> 1c380: f850 3c04 ldr.w r3, [r0, #-4] 1c384: f023 0303 bic.w r3, r3, #3 1c388: 4498 add r8, r3 1c38a: e755 b.n 1c238 <_realloc_r+0xfc> 1c38c: 465e mov r6, fp 1c38e: f8db 100c ldr.w r1, [fp, #12] 1c392: f856 0f08 ldr.w r0, [r6, #8]! 1c396: f1a8 0204 sub.w r2, r8, #4 1c39a: 2a24 cmp r2, #36 ; 0x24 1c39c: 60c1 str r1, [r0, #12] 1c39e: 6088 str r0, [r1, #8] 1c3a0: d84d bhi.n 1c43e <_realloc_r+0x302> 1c3a2: 2a13 cmp r2, #19 1c3a4: d949 bls.n 1c43a <_realloc_r+0x2fe> 1c3a6: 6821 ldr r1, [r4, #0] 1c3a8: f8cb 1008 str.w r1, [fp, #8] 1c3ac: 6861 ldr r1, [r4, #4] 1c3ae: f8cb 100c str.w r1, [fp, #12] 1c3b2: 2a1b cmp r2, #27 1c3b4: d858 bhi.n 1c468 <_realloc_r+0x32c> 1c3b6: 3408 adds r4, #8 1c3b8: f10b 0210 add.w r2, fp, #16 1c3bc: 4698 mov r8, r3 1c3be: 6823 ldr r3, [r4, #0] 1c3c0: 6013 str r3, [r2, #0] 1c3c2: 6863 ldr r3, [r4, #4] 1c3c4: 6053 str r3, [r2, #4] 1c3c6: 68a3 ldr r3, [r4, #8] 1c3c8: 6093 str r3, [r2, #8] 1c3ca: 46d9 mov r9, fp 1c3cc: 4634 mov r4, r6 1c3ce: e733 b.n 1c238 <_realloc_r+0xfc> 1c3d0: 4621 mov r1, r4 1c3d2: f7fa fd15 bl 16e00 1c3d6: e715 b.n 1c204 <_realloc_r+0xc8> 1c3d8: e9dc 1302 ldrd r1, r3, [ip, #8] 1c3dc: 465e mov r6, fp 1c3de: 60cb str r3, [r1, #12] 1c3e0: 6099 str r1, [r3, #8] 1c3e2: f856 1f08 ldr.w r1, [r6, #8]! 1c3e6: f8db 300c ldr.w r3, [fp, #12] 1c3ea: 60cb str r3, [r1, #12] 1c3ec: f1a8 0204 sub.w r2, r8, #4 1c3f0: 2a24 cmp r2, #36 ; 0x24 1c3f2: 6099 str r1, [r3, #8] 1c3f4: d82d bhi.n 1c452 <_realloc_r+0x316> 1c3f6: 2a13 cmp r2, #19 1c3f8: d929 bls.n 1c44e <_realloc_r+0x312> 1c3fa: 6823 ldr r3, [r4, #0] 1c3fc: f8cb 3008 str.w r3, [fp, #8] 1c400: 6863 ldr r3, [r4, #4] 1c402: f8cb 300c str.w r3, [fp, #12] 1c406: 2a1b cmp r2, #27 1c408: d843 bhi.n 1c492 <_realloc_r+0x356> 1c40a: 3408 adds r4, #8 1c40c: f10b 0310 add.w r3, fp, #16 1c410: 6822 ldr r2, [r4, #0] 1c412: 601a str r2, [r3, #0] 1c414: 6862 ldr r2, [r4, #4] 1c416: 605a str r2, [r3, #4] 1c418: 68a2 ldr r2, [r4, #8] 1c41a: 609a str r2, [r3, #8] 1c41c: 46f0 mov r8, lr 1c41e: 46d9 mov r9, fp 1c420: 4634 mov r4, r6 1c422: e709 b.n 1c238 <_realloc_r+0xfc> 1c424: 68a3 ldr r3, [r4, #8] 1c426: 6083 str r3, [r0, #8] 1c428: 68e3 ldr r3, [r4, #12] 1c42a: 60c3 str r3, [r0, #12] 1c42c: 2a24 cmp r2, #36 ; 0x24 1c42e: d027 beq.n 1c480 <_realloc_r+0x344> 1c430: f104 0210 add.w r2, r4, #16 1c434: f100 0310 add.w r3, r0, #16 1c438: e6de b.n 1c1f8 <_realloc_r+0xbc> 1c43a: 4632 mov r2, r6 1c43c: e7be b.n 1c3bc <_realloc_r+0x280> 1c43e: 4621 mov r1, r4 1c440: 4630 mov r0, r6 1c442: 4698 mov r8, r3 1c444: 46d9 mov r9, fp 1c446: f7fa fcdb bl 16e00 1c44a: 4634 mov r4, r6 1c44c: e6f4 b.n 1c238 <_realloc_r+0xfc> 1c44e: 4633 mov r3, r6 1c450: e7de b.n 1c410 <_realloc_r+0x2d4> 1c452: 4621 mov r1, r4 1c454: 4630 mov r0, r6 1c456: 46f0 mov r8, lr 1c458: 46d9 mov r9, fp 1c45a: f7fa fcd1 bl 16e00 1c45e: 4634 mov r4, r6 1c460: e6ea b.n 1c238 <_realloc_r+0xfc> 1c462: bf00 nop 1c464: 20000488 .word 0x20000488 1c468: 68a1 ldr r1, [r4, #8] 1c46a: f8cb 1010 str.w r1, [fp, #16] 1c46e: 68e1 ldr r1, [r4, #12] 1c470: f8cb 1014 str.w r1, [fp, #20] 1c474: 2a24 cmp r2, #36 ; 0x24 1c476: d020 beq.n 1c4ba <_realloc_r+0x37e> 1c478: 3410 adds r4, #16 1c47a: f10b 0218 add.w r2, fp, #24 1c47e: e79d b.n 1c3bc <_realloc_r+0x280> 1c480: 6923 ldr r3, [r4, #16] 1c482: 6103 str r3, [r0, #16] 1c484: 6961 ldr r1, [r4, #20] 1c486: 6141 str r1, [r0, #20] 1c488: f104 0218 add.w r2, r4, #24 1c48c: f100 0318 add.w r3, r0, #24 1c490: e6b2 b.n 1c1f8 <_realloc_r+0xbc> 1c492: 68a3 ldr r3, [r4, #8] 1c494: f8cb 3010 str.w r3, [fp, #16] 1c498: 68e3 ldr r3, [r4, #12] 1c49a: f8cb 3014 str.w r3, [fp, #20] 1c49e: 2a24 cmp r2, #36 ; 0x24 1c4a0: d021 beq.n 1c4e6 <_realloc_r+0x3aa> 1c4a2: 3410 adds r4, #16 1c4a4: f10b 0318 add.w r3, fp, #24 1c4a8: e7b2 b.n 1c410 <_realloc_r+0x2d4> 1c4aa: 4632 mov r2, r6 1c4ac: e731 b.n 1c312 <_realloc_r+0x1d6> 1c4ae: 4621 mov r1, r4 1c4b0: 4630 mov r0, r6 1c4b2: f7fa fca5 bl 16e00 1c4b6: 4b16 ldr r3, [pc, #88] ; (1c510 <_realloc_r+0x3d4>) 1c4b8: e731 b.n 1c31e <_realloc_r+0x1e2> 1c4ba: 6922 ldr r2, [r4, #16] 1c4bc: f8cb 2018 str.w r2, [fp, #24] 1c4c0: 6962 ldr r2, [r4, #20] 1c4c2: f8cb 201c str.w r2, [fp, #28] 1c4c6: 3418 adds r4, #24 1c4c8: f10b 0220 add.w r2, fp, #32 1c4cc: e776 b.n 1c3bc <_realloc_r+0x280> 1c4ce: 68a1 ldr r1, [r4, #8] 1c4d0: f8cb 1010 str.w r1, [fp, #16] 1c4d4: 68e1 ldr r1, [r4, #12] 1c4d6: f8cb 1014 str.w r1, [fp, #20] 1c4da: 2a24 cmp r2, #36 ; 0x24 1c4dc: d00d beq.n 1c4fa <_realloc_r+0x3be> 1c4de: 3410 adds r4, #16 1c4e0: f10b 0218 add.w r2, fp, #24 1c4e4: e715 b.n 1c312 <_realloc_r+0x1d6> 1c4e6: 6923 ldr r3, [r4, #16] 1c4e8: f8cb 3018 str.w r3, [fp, #24] 1c4ec: 6963 ldr r3, [r4, #20] 1c4ee: f8cb 301c str.w r3, [fp, #28] 1c4f2: 3418 adds r4, #24 1c4f4: f10b 0320 add.w r3, fp, #32 1c4f8: e78a b.n 1c410 <_realloc_r+0x2d4> 1c4fa: 6922 ldr r2, [r4, #16] 1c4fc: f8cb 2018 str.w r2, [fp, #24] 1c500: 6962 ldr r2, [r4, #20] 1c502: f8cb 201c str.w r2, [fp, #28] 1c506: 3418 adds r4, #24 1c508: f10b 0220 add.w r2, fp, #32 1c50c: e701 b.n 1c312 <_realloc_r+0x1d6> 1c50e: bf00 nop 1c510: 20000488 .word 0x20000488 0001c514 <_svfprintf_r>: 1c514: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} 1c518: b0bf sub sp, #252 ; 0xfc 1c51a: 468a mov sl, r1 1c51c: 4690 mov r8, r2 1c51e: 930d str r3, [sp, #52] ; 0x34 1c520: 900c str r0, [sp, #48] ; 0x30 1c522: f7fd fcc9 bl 19eb8 <_localeconv_r> 1c526: 6803 ldr r3, [r0, #0] 1c528: 9315 str r3, [sp, #84] ; 0x54 1c52a: 4618 mov r0, r3 1c52c: f7fa ff28 bl 17380 1c530: f8ba 300c ldrh.w r3, [sl, #12] 1c534: 9014 str r0, [sp, #80] ; 0x50 1c536: 061f lsls r7, r3, #24 1c538: d504 bpl.n 1c544 <_svfprintf_r+0x30> 1c53a: f8da 3010 ldr.w r3, [sl, #16] 1c53e: 2b00 cmp r3, #0 1c540: f000 8690 beq.w 1d264 <_svfprintf_r+0xd50> 1c544: 2300 movs r3, #0 1c546: e9cd 3322 strd r3, r3, [sp, #136] ; 0x88 1c54a: 9312 str r3, [sp, #72] ; 0x48 1c54c: 9313 str r3, [sp, #76] ; 0x4c 1c54e: 9316 str r3, [sp, #88] ; 0x58 1c550: 9309 str r3, [sp, #36] ; 0x24 1c552: 2400 movs r4, #0 1c554: 2300 movs r3, #0 1c556: e9cd 3410 strd r3, r4, [sp, #64] ; 0x40 1c55a: aa2e add r2, sp, #184 ; 0xb8 1c55c: 9221 str r2, [sp, #132] ; 0x84 1c55e: 4691 mov r9, r2 1c560: 46d3 mov fp, sl 1c562: f898 3000 ldrb.w r3, [r8] 1c566: 2b00 cmp r3, #0 1c568: f000 8137 beq.w 1c7da <_svfprintf_r+0x2c6> 1c56c: 4644 mov r4, r8 1c56e: e004 b.n 1c57a <_svfprintf_r+0x66> 1c570: f814 3f01 ldrb.w r3, [r4, #1]! 1c574: 2b00 cmp r3, #0 1c576: f000 8087 beq.w 1c688 <_svfprintf_r+0x174> 1c57a: 2b25 cmp r3, #37 ; 0x25 1c57c: d1f8 bne.n 1c570 <_svfprintf_r+0x5c> 1c57e: ebb4 0508 subs.w r5, r4, r8 1c582: f040 8085 bne.w 1c690 <_svfprintf_r+0x17c> 1c586: 7823 ldrb r3, [r4, #0] 1c588: 2b00 cmp r3, #0 1c58a: f000 8126 beq.w 1c7da <_svfprintf_r+0x2c6> 1c58e: 2300 movs r3, #0 1c590: 1c62 adds r2, r4, #1 1c592: f88d 3067 strb.w r3, [sp, #103] ; 0x67 1c596: 4618 mov r0, r3 1c598: f04f 35ff mov.w r5, #4294967295 ; 0xffffffff 1c59c: 4619 mov r1, r3 1c59e: 461c mov r4, r3 1c5a0: 4690 mov r8, r2 1c5a2: f818 7b01 ldrb.w r7, [r8], #1 1c5a6: f1a7 0220 sub.w r2, r7, #32 1c5aa: 2a58 cmp r2, #88 ; 0x58 1c5ac: f200 808b bhi.w 1c6c6 <_svfprintf_r+0x1b2> 1c5b0: e8df f012 tbh [pc, r2, lsl #1] 1c5b4: 00890296 .word 0x00890296 1c5b8: 02880089 .word 0x02880089 1c5bc: 00890089 .word 0x00890089 1c5c0: 00890089 .word 0x00890089 1c5c4: 00890089 .word 0x00890089 1c5c8: 06470194 .word 0x06470194 1c5cc: 019c0089 .word 0x019c0089 1c5d0: 0089019f .word 0x0089019f 1c5d4: 005902a8 .word 0x005902a8 1c5d8: 00590059 .word 0x00590059 1c5dc: 00590059 .word 0x00590059 1c5e0: 00590059 .word 0x00590059 1c5e4: 00590059 .word 0x00590059 1c5e8: 00890089 .word 0x00890089 1c5ec: 00890089 .word 0x00890089 1c5f0: 00890089 .word 0x00890089 1c5f4: 00890089 .word 0x00890089 1c5f8: 00890089 .word 0x00890089 1c5fc: 0125029c .word 0x0125029c 1c600: 01250089 .word 0x01250089 1c604: 00890089 .word 0x00890089 1c608: 00890089 .word 0x00890089 1c60c: 00890258 .word 0x00890258 1c610: 02640089 .word 0x02640089 1c614: 00890089 .word 0x00890089 1c618: 00890089 .word 0x00890089 1c61c: 025b0089 .word 0x025b0089 1c620: 00890089 .word 0x00890089 1c624: 0089027d .word 0x0089027d 1c628: 00890089 .word 0x00890089 1c62c: 00890089 .word 0x00890089 1c630: 00890089 .word 0x00890089 1c634: 00890089 .word 0x00890089 1c638: 026e0089 .word 0x026e0089 1c63c: 0125016a .word 0x0125016a 1c640: 01250125 .word 0x01250125 1c644: 016a0285 .word 0x016a0285 1c648: 00890089 .word 0x00890089 1c64c: 00890067 .word 0x00890067 1c650: 02310243 .word 0x02310243 1c654: 00670220 .word 0x00670220 1c658: 01fa0089 .word 0x01fa0089 1c65c: 01ea0089 .word 0x01ea0089 1c660: 00890089 .word 0x00890089 1c664: 01b6 .short 0x01b6 1c666: f1a7 0230 sub.w r2, r7, #48 ; 0x30 1c66a: 2100 movs r1, #0 1c66c: f818 7b01 ldrb.w r7, [r8], #1 1c670: eb01 0181 add.w r1, r1, r1, lsl #2 1c674: eb02 0141 add.w r1, r2, r1, lsl #1 1c678: f1a7 0230 sub.w r2, r7, #48 ; 0x30 1c67c: 2a09 cmp r2, #9 1c67e: d9f5 bls.n 1c66c <_svfprintf_r+0x158> 1c680: e791 b.n 1c5a6 <_svfprintf_r+0x92> 1c682: f044 0410 orr.w r4, r4, #16 1c686: e78c b.n 1c5a2 <_svfprintf_r+0x8e> 1c688: ebb4 0508 subs.w r5, r4, r8 1c68c: f000 80a5 beq.w 1c7da <_svfprintf_r+0x2c6> 1c690: 9b23 ldr r3, [sp, #140] ; 0x8c 1c692: 442b add r3, r5 1c694: 9323 str r3, [sp, #140] ; 0x8c 1c696: 9b22 ldr r3, [sp, #136] ; 0x88 1c698: 3301 adds r3, #1 1c69a: 2b07 cmp r3, #7 1c69c: e9c9 8500 strd r8, r5, [r9] 1c6a0: 9322 str r3, [sp, #136] ; 0x88 1c6a2: dc05 bgt.n 1c6b0 <_svfprintf_r+0x19c> 1c6a4: f109 0908 add.w r9, r9, #8 1c6a8: 9b09 ldr r3, [sp, #36] ; 0x24 1c6aa: 442b add r3, r5 1c6ac: 9309 str r3, [sp, #36] ; 0x24 1c6ae: e76a b.n 1c586 <_svfprintf_r+0x72> 1c6b0: 980c ldr r0, [sp, #48] ; 0x30 1c6b2: aa21 add r2, sp, #132 ; 0x84 1c6b4: 4659 mov r1, fp 1c6b6: f001 f975 bl 1d9a4 <__ssprint_r> 1c6ba: 2800 cmp r0, #0 1c6bc: f040 834f bne.w 1cd5e <_svfprintf_r+0x84a> 1c6c0: f10d 09b8 add.w r9, sp, #184 ; 0xb8 1c6c4: e7f0 b.n 1c6a8 <_svfprintf_r+0x194> 1c6c6: 910b str r1, [sp, #44] ; 0x2c 1c6c8: 2b00 cmp r3, #0 1c6ca: f040 8795 bne.w 1d5f8 <_svfprintf_r+0x10e4> 1c6ce: 2f00 cmp r7, #0 1c6d0: f000 8083 beq.w 1c7da <_svfprintf_r+0x2c6> 1c6d4: 2300 movs r3, #0 1c6d6: f88d 3067 strb.w r3, [sp, #103] ; 0x67 1c6da: 2301 movs r3, #1 1c6dc: f88d 7090 strb.w r7, [sp, #144] ; 0x90 1c6e0: 9307 str r3, [sp, #28] 1c6e2: 930a str r3, [sp, #40] ; 0x28 1c6e4: ad24 add r5, sp, #144 ; 0x90 1c6e6: 2300 movs r3, #0 1c6e8: 9406 str r4, [sp, #24] 1c6ea: 9308 str r3, [sp, #32] 1c6ec: 930f str r3, [sp, #60] ; 0x3c 1c6ee: 9b06 ldr r3, [sp, #24] 1c6f0: f013 0302 ands.w r3, r3, #2 1c6f4: d002 beq.n 1c6fc <_svfprintf_r+0x1e8> 1c6f6: 9a07 ldr r2, [sp, #28] 1c6f8: 3202 adds r2, #2 1c6fa: 9207 str r2, [sp, #28] 1c6fc: 9a06 ldr r2, [sp, #24] 1c6fe: 9c23 ldr r4, [sp, #140] ; 0x8c 1c700: f012 0284 ands.w r2, r2, #132 ; 0x84 1c704: 920e str r2, [sp, #56] ; 0x38 1c706: d105 bne.n 1c714 <_svfprintf_r+0x200> 1c708: 9a0b ldr r2, [sp, #44] ; 0x2c 1c70a: 9907 ldr r1, [sp, #28] 1c70c: 1a56 subs r6, r2, r1 1c70e: 2e00 cmp r6, #0 1c710: f300 8388 bgt.w 1ce24 <_svfprintf_r+0x910> 1c714: f89d 2067 ldrb.w r2, [sp, #103] ; 0x67 1c718: b18a cbz r2, 1c73e <_svfprintf_r+0x22a> 1c71a: 9a22 ldr r2, [sp, #136] ; 0x88 1c71c: f10d 0167 add.w r1, sp, #103 ; 0x67 1c720: 3201 adds r2, #1 1c722: 3401 adds r4, #1 1c724: f8c9 1000 str.w r1, [r9] 1c728: 2a07 cmp r2, #7 1c72a: f04f 0101 mov.w r1, #1 1c72e: 9423 str r4, [sp, #140] ; 0x8c 1c730: 9222 str r2, [sp, #136] ; 0x88 1c732: f8c9 1004 str.w r1, [r9, #4] 1c736: f300 83c9 bgt.w 1cecc <_svfprintf_r+0x9b8> 1c73a: f109 0908 add.w r9, r9, #8 1c73e: b183 cbz r3, 1c762 <_svfprintf_r+0x24e> 1c740: 9b22 ldr r3, [sp, #136] ; 0x88 1c742: aa1a add r2, sp, #104 ; 0x68 1c744: 3301 adds r3, #1 1c746: 3402 adds r4, #2 1c748: f8c9 2000 str.w r2, [r9] 1c74c: 2b07 cmp r3, #7 1c74e: f04f 0202 mov.w r2, #2 1c752: 9423 str r4, [sp, #140] ; 0x8c 1c754: 9322 str r3, [sp, #136] ; 0x88 1c756: f8c9 2004 str.w r2, [r9, #4] 1c75a: f300 83ab bgt.w 1ceb4 <_svfprintf_r+0x9a0> 1c75e: f109 0908 add.w r9, r9, #8 1c762: 9b0e ldr r3, [sp, #56] ; 0x38 1c764: 2b80 cmp r3, #128 ; 0x80 1c766: f000 8266 beq.w 1cc36 <_svfprintf_r+0x722> 1c76a: 9b08 ldr r3, [sp, #32] 1c76c: 9a0a ldr r2, [sp, #40] ; 0x28 1c76e: eba3 0a02 sub.w sl, r3, r2 1c772: f1ba 0f00 cmp.w sl, #0 1c776: f300 82a8 bgt.w 1ccca <_svfprintf_r+0x7b6> 1c77a: 9b06 ldr r3, [sp, #24] 1c77c: 05de lsls r6, r3, #23 1c77e: f100 81ea bmi.w 1cb56 <_svfprintf_r+0x642> 1c782: 9b0a ldr r3, [sp, #40] ; 0x28 1c784: f8c9 3004 str.w r3, [r9, #4] 1c788: 441c add r4, r3 1c78a: 9b22 ldr r3, [sp, #136] ; 0x88 1c78c: f8c9 5000 str.w r5, [r9] 1c790: 3301 adds r3, #1 1c792: 2b07 cmp r3, #7 1c794: 9423 str r4, [sp, #140] ; 0x8c 1c796: 9322 str r3, [sp, #136] ; 0x88 1c798: f300 82ee bgt.w 1cd78 <_svfprintf_r+0x864> 1c79c: f109 0908 add.w r9, r9, #8 1c7a0: 9b06 ldr r3, [sp, #24] 1c7a2: 075a lsls r2, r3, #29 1c7a4: d505 bpl.n 1c7b2 <_svfprintf_r+0x29e> 1c7a6: 9b0b ldr r3, [sp, #44] ; 0x2c 1c7a8: 9a07 ldr r2, [sp, #28] 1c7aa: 1a9d subs r5, r3, r2 1c7ac: 2d00 cmp r5, #0 1c7ae: f300 839b bgt.w 1cee8 <_svfprintf_r+0x9d4> 1c7b2: 9b09 ldr r3, [sp, #36] ; 0x24 1c7b4: 9a0b ldr r2, [sp, #44] ; 0x2c 1c7b6: 9907 ldr r1, [sp, #28] 1c7b8: 428a cmp r2, r1 1c7ba: bfac ite ge 1c7bc: 189b addge r3, r3, r2 1c7be: 185b addlt r3, r3, r1 1c7c0: 9309 str r3, [sp, #36] ; 0x24 1c7c2: 2c00 cmp r4, #0 1c7c4: f040 82c3 bne.w 1cd4e <_svfprintf_r+0x83a> 1c7c8: 2300 movs r3, #0 1c7ca: 9322 str r3, [sp, #136] ; 0x88 1c7cc: f898 3000 ldrb.w r3, [r8] 1c7d0: f10d 09b8 add.w r9, sp, #184 ; 0xb8 1c7d4: 2b00 cmp r3, #0 1c7d6: f47f aec9 bne.w 1c56c <_svfprintf_r+0x58> 1c7da: 9b23 ldr r3, [sp, #140] ; 0x8c 1c7dc: 46da mov sl, fp 1c7de: 2b00 cmp r3, #0 1c7e0: f040 87b1 bne.w 1d746 <_svfprintf_r+0x1232> 1c7e4: f8ba 300c ldrh.w r3, [sl, #12] 1c7e8: f013 0f40 tst.w r3, #64 ; 0x40 1c7ec: 9b09 ldr r3, [sp, #36] ; 0x24 1c7ee: bf18 it ne 1c7f0: f04f 33ff movne.w r3, #4294967295 ; 0xffffffff 1c7f4: 9309 str r3, [sp, #36] ; 0x24 1c7f6: 9809 ldr r0, [sp, #36] ; 0x24 1c7f8: b03f add sp, #252 ; 0xfc 1c7fa: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} 1c7fe: 910b str r1, [sp, #44] ; 0x2c 1c800: 9508 str r5, [sp, #32] 1c802: 2b00 cmp r3, #0 1c804: f040 87aa bne.w 1d75c <_svfprintf_r+0x1248> 1c808: 9b0d ldr r3, [sp, #52] ; 0x34 1c80a: 3307 adds r3, #7 1c80c: f023 0107 bic.w r1, r3, #7 1c810: e8f1 2302 ldrd r2, r3, [r1], #8 1c814: f023 4500 bic.w r5, r3, #2147483648 ; 0x80000000 1c818: e9cd 2310 strd r2, r3, [sp, #64] ; 0x40 1c81c: 910d str r1, [sp, #52] ; 0x34 1c81e: 4616 mov r6, r2 1c820: 4610 mov r0, r2 1c822: 4baa ldr r3, [pc, #680] ; (1cacc <_svfprintf_r+0x5b8>) 1c824: 4629 mov r1, r5 1c826: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff 1c82a: f001 f9c5 bl 1dbb8 <__aeabi_dcmpun> 1c82e: 2800 cmp r0, #0 1c830: f040 849c bne.w 1d16c <_svfprintf_r+0xc58> 1c834: 4ba5 ldr r3, [pc, #660] ; (1cacc <_svfprintf_r+0x5b8>) 1c836: 4630 mov r0, r6 1c838: 4629 mov r1, r5 1c83a: f04f 32ff mov.w r2, #4294967295 ; 0xffffffff 1c83e: f001 f99d bl 1db7c <__aeabi_dcmple> 1c842: 2800 cmp r0, #0 1c844: f040 8492 bne.w 1d16c <_svfprintf_r+0xc58> 1c848: e9dd 0110 ldrd r0, r1, [sp, #64] ; 0x40 1c84c: 2200 movs r2, #0 1c84e: 2300 movs r3, #0 1c850: f001 f98a bl 1db68 <__aeabi_dcmplt> 1c854: 2800 cmp r0, #0 1c856: f040 86a7 bne.w 1d5a8 <_svfprintf_r+0x1094> 1c85a: f89d 1067 ldrb.w r1, [sp, #103] ; 0x67 1c85e: 4d9c ldr r5, [pc, #624] ; (1cad0 <_svfprintf_r+0x5bc>) 1c860: f024 0380 bic.w r3, r4, #128 ; 0x80 1c864: 9306 str r3, [sp, #24] 1c866: 4b9b ldr r3, [pc, #620] ; (1cad4 <_svfprintf_r+0x5c0>) 1c868: 2200 movs r2, #0 1c86a: 2f47 cmp r7, #71 ; 0x47 1c86c: bfc8 it gt 1c86e: 461d movgt r5, r3 1c870: 2303 movs r3, #3 1c872: e9cd 3207 strd r3, r2, [sp, #28] 1c876: 930a str r3, [sp, #40] ; 0x28 1c878: 920f str r2, [sp, #60] ; 0x3c 1c87a: 2900 cmp r1, #0 1c87c: f43f af37 beq.w 1c6ee <_svfprintf_r+0x1da> 1c880: 9b07 ldr r3, [sp, #28] 1c882: 3301 adds r3, #1 1c884: 9307 str r3, [sp, #28] 1c886: e732 b.n 1c6ee <_svfprintf_r+0x1da> 1c888: 910b str r1, [sp, #44] ; 0x2c 1c88a: 9508 str r5, [sp, #32] 1c88c: 2b00 cmp r3, #0 1c88e: f040 8769 bne.w 1d764 <_svfprintf_r+0x1250> 1c892: 9b0d ldr r3, [sp, #52] ; 0x34 1c894: 06e5 lsls r5, r4, #27 1c896: f853 2b04 ldr.w r2, [r3], #4 1c89a: 930d str r3, [sp, #52] ; 0x34 1c89c: d402 bmi.n 1c8a4 <_svfprintf_r+0x390> 1c89e: 0660 lsls r0, r4, #25 1c8a0: f100 8460 bmi.w 1d164 <_svfprintf_r+0xc50> 1c8a4: 4613 mov r3, r2 1c8a6: 2a00 cmp r2, #0 1c8a8: f2c0 842a blt.w 1d100 <_svfprintf_r+0xbec> 1c8ac: 9808 ldr r0, [sp, #32] 1c8ae: f89d 1067 ldrb.w r1, [sp, #103] ; 0x67 1c8b2: 3001 adds r0, #1 1c8b4: d006 beq.n 1c8c4 <_svfprintf_r+0x3b0> 1c8b6: f024 0080 bic.w r0, r4, #128 ; 0x80 1c8ba: 9006 str r0, [sp, #24] 1c8bc: 2a00 cmp r2, #0 1c8be: f000 83c2 beq.w 1d046 <_svfprintf_r+0xb32> 1c8c2: 9c06 ldr r4, [sp, #24] 1c8c4: 2b09 cmp r3, #9 1c8c6: f200 851c bhi.w 1d302 <_svfprintf_r+0xdee> 1c8ca: 3330 adds r3, #48 ; 0x30 1c8cc: f88d 30b7 strb.w r3, [sp, #183] ; 0xb7 1c8d0: 2301 movs r3, #1 1c8d2: 9406 str r4, [sp, #24] 1c8d4: 930a str r3, [sp, #40] ; 0x28 1c8d6: f10d 05b7 add.w r5, sp, #183 ; 0xb7 1c8da: e133 b.n 1cb44 <_svfprintf_r+0x630> 1c8dc: 9a0d ldr r2, [sp, #52] ; 0x34 1c8de: f852 1b04 ldr.w r1, [r2], #4 1c8e2: 2900 cmp r1, #0 1c8e4: f280 842a bge.w 1d13c <_svfprintf_r+0xc28> 1c8e8: 4249 negs r1, r1 1c8ea: 920d str r2, [sp, #52] ; 0x34 1c8ec: f044 0404 orr.w r4, r4, #4 1c8f0: e657 b.n 1c5a2 <_svfprintf_r+0x8e> 1c8f2: f818 7b01 ldrb.w r7, [r8], #1 1c8f6: 2f2a cmp r7, #42 ; 0x2a 1c8f8: f000 87b0 beq.w 1d85c <_svfprintf_r+0x1348> 1c8fc: f1a7 0230 sub.w r2, r7, #48 ; 0x30 1c900: 2a09 cmp r2, #9 1c902: f04f 0500 mov.w r5, #0 1c906: f63f ae4e bhi.w 1c5a6 <_svfprintf_r+0x92> 1c90a: f818 7b01 ldrb.w r7, [r8], #1 1c90e: eb05 0585 add.w r5, r5, r5, lsl #2 1c912: eb02 0545 add.w r5, r2, r5, lsl #1 1c916: f1a7 0230 sub.w r2, r7, #48 ; 0x30 1c91a: 2a09 cmp r2, #9 1c91c: d9f5 bls.n 1c90a <_svfprintf_r+0x3f6> 1c91e: e642 b.n 1c5a6 <_svfprintf_r+0x92> 1c920: 910b str r1, [sp, #44] ; 0x2c 1c922: 9508 str r5, [sp, #32] 1c924: 2b00 cmp r3, #0 1c926: f040 8706 bne.w 1d736 <_svfprintf_r+0x1222> 1c92a: 4b6b ldr r3, [pc, #428] ; (1cad8 <_svfprintf_r+0x5c4>) 1c92c: 9313 str r3, [sp, #76] ; 0x4c 1c92e: 9a0d ldr r2, [sp, #52] ; 0x34 1c930: 06e1 lsls r1, r4, #27 1c932: f852 3b04 ldr.w r3, [r2], #4 1c936: 920d str r2, [sp, #52] ; 0x34 1c938: d402 bmi.n 1c940 <_svfprintf_r+0x42c> 1c93a: 0662 lsls r2, r4, #25 1c93c: bf48 it mi 1c93e: b29b uxthmi r3, r3 1c940: 07e6 lsls r6, r4, #31 1c942: d502 bpl.n 1c94a <_svfprintf_r+0x436> 1c944: 2b00 cmp r3, #0 1c946: f040 8403 bne.w 1d150 <_svfprintf_r+0xc3c> 1c94a: 2202 movs r2, #2 1c94c: 2100 movs r1, #0 1c94e: 9808 ldr r0, [sp, #32] 1c950: f88d 1067 strb.w r1, [sp, #103] ; 0x67 1c954: 1c45 adds r5, r0, #1 1c956: f000 80d9 beq.w 1cb0c <_svfprintf_r+0x5f8> 1c95a: f024 0580 bic.w r5, r4, #128 ; 0x80 1c95e: 9506 str r5, [sp, #24] 1c960: 2b00 cmp r3, #0 1c962: f040 80d2 bne.w 1cb0a <_svfprintf_r+0x5f6> 1c966: 2800 cmp r0, #0 1c968: f040 8150 bne.w 1cc0c <_svfprintf_r+0x6f8> 1c96c: 2a00 cmp r2, #0 1c96e: f040 836e bne.w 1d04e <_svfprintf_r+0xb3a> 1c972: f014 0301 ands.w r3, r4, #1 1c976: 930a str r3, [sp, #40] ; 0x28 1c978: f000 83e3 beq.w 1d142 <_svfprintf_r+0xc2e> 1c97c: 2330 movs r3, #48 ; 0x30 1c97e: f88d 30b7 strb.w r3, [sp, #183] ; 0xb7 1c982: f10d 05b7 add.w r5, sp, #183 ; 0xb7 1c986: e0dd b.n 1cb44 <_svfprintf_r+0x630> 1c988: 910b str r1, [sp, #44] ; 0x2c 1c98a: 9508 str r5, [sp, #32] 1c98c: 2b00 cmp r3, #0 1c98e: f040 86e1 bne.w 1d754 <_svfprintf_r+0x1240> 1c992: 9a0d ldr r2, [sp, #52] ; 0x34 1c994: 06e6 lsls r6, r4, #27 1c996: f852 3b04 ldr.w r3, [r2], #4 1c99a: 920d str r2, [sp, #52] ; 0x34 1c99c: d402 bmi.n 1c9a4 <_svfprintf_r+0x490> 1c99e: 0660 lsls r0, r4, #25 1c9a0: bf48 it mi 1c9a2: b29b uxthmi r3, r3 1c9a4: 2201 movs r2, #1 1c9a6: e7d1 b.n 1c94c <_svfprintf_r+0x438> 1c9a8: 9e0d ldr r6, [sp, #52] ; 0x34 1c9aa: 9508 str r5, [sp, #32] 1c9ac: f856 5b04 ldr.w r5, [r6], #4 1c9b0: 9b08 ldr r3, [sp, #32] 1c9b2: 910b str r1, [sp, #44] ; 0x2c 1c9b4: f04f 0a00 mov.w sl, #0 1c9b8: f88d a067 strb.w sl, [sp, #103] ; 0x67 1c9bc: 2d00 cmp r5, #0 1c9be: f000 8522 beq.w 1d406 <_svfprintf_r+0xef2> 1c9c2: 1c5a adds r2, r3, #1 1c9c4: f000 8486 beq.w 1d2d4 <_svfprintf_r+0xdc0> 1c9c8: 461a mov r2, r3 1c9ca: 4651 mov r1, sl 1c9cc: 4628 mov r0, r5 1c9ce: f7fd fd97 bl 1a500 1c9d2: 2800 cmp r0, #0 1c9d4: f000 86a4 beq.w 1d720 <_svfprintf_r+0x120c> 1c9d8: 1b43 subs r3, r0, r5 1c9da: 930a str r3, [sp, #40] ; 0x28 1c9dc: ea23 73e3 bic.w r3, r3, r3, asr #31 1c9e0: f89d 1067 ldrb.w r1, [sp, #103] ; 0x67 1c9e4: f8cd a020 str.w sl, [sp, #32] 1c9e8: 960d str r6, [sp, #52] ; 0x34 1c9ea: 9406 str r4, [sp, #24] 1c9ec: 9307 str r3, [sp, #28] 1c9ee: f8cd a03c str.w sl, [sp, #60] ; 0x3c 1c9f2: e742 b.n 1c87a <_svfprintf_r+0x366> 1c9f4: 9a0d ldr r2, [sp, #52] ; 0x34 1c9f6: 910b str r1, [sp, #44] ; 0x2c 1c9f8: f852 3b04 ldr.w r3, [r2], #4 1c9fc: 920d str r2, [sp, #52] ; 0x34 1c9fe: f647 0230 movw r2, #30768 ; 0x7830 1ca02: f8ad 2068 strh.w r2, [sp, #104] ; 0x68 1ca06: 4a34 ldr r2, [pc, #208] ; (1cad8 <_svfprintf_r+0x5c4>) 1ca08: 9213 str r2, [sp, #76] ; 0x4c 1ca0a: 9508 str r5, [sp, #32] 1ca0c: f044 0402 orr.w r4, r4, #2 1ca10: 2202 movs r2, #2 1ca12: 2778 movs r7, #120 ; 0x78 1ca14: e79a b.n 1c94c <_svfprintf_r+0x438> 1ca16: 910b str r1, [sp, #44] ; 0x2c 1ca18: 9508 str r5, [sp, #32] 1ca1a: 2b00 cmp r3, #0 1ca1c: f040 86a6 bne.w 1d76c <_svfprintf_r+0x1258> 1ca20: 9a0d ldr r2, [sp, #52] ; 0x34 1ca22: f014 0110 ands.w r1, r4, #16 1ca26: f852 3b04 ldr.w r3, [r2], #4 1ca2a: 920d str r2, [sp, #52] ; 0x34 1ca2c: d12e bne.n 1ca8c <_svfprintf_r+0x578> 1ca2e: f014 0240 ands.w r2, r4, #64 ; 0x40 1ca32: d08b beq.n 1c94c <_svfprintf_r+0x438> 1ca34: b29b uxth r3, r3 1ca36: 460a mov r2, r1 1ca38: e788 b.n 1c94c <_svfprintf_r+0x438> 1ca3a: 2b00 cmp r3, #0 1ca3c: f040 869a bne.w 1d774 <_svfprintf_r+0x1260> 1ca40: 9a0d ldr r2, [sp, #52] ; 0x34 1ca42: 06e0 lsls r0, r4, #27 1ca44: f102 0304 add.w r3, r2, #4 1ca48: d407 bmi.n 1ca5a <_svfprintf_r+0x546> 1ca4a: 0661 lsls r1, r4, #25 1ca4c: 9a0d ldr r2, [sp, #52] ; 0x34 1ca4e: d504 bpl.n 1ca5a <_svfprintf_r+0x546> 1ca50: 6812 ldr r2, [r2, #0] 1ca52: 9909 ldr r1, [sp, #36] ; 0x24 1ca54: 8011 strh r1, [r2, #0] 1ca56: 930d str r3, [sp, #52] ; 0x34 1ca58: e583 b.n 1c562 <_svfprintf_r+0x4e> 1ca5a: 6812 ldr r2, [r2, #0] 1ca5c: 9909 ldr r1, [sp, #36] ; 0x24 1ca5e: 6011 str r1, [r2, #0] 1ca60: 930d str r3, [sp, #52] ; 0x34 1ca62: e57e b.n 1c562 <_svfprintf_r+0x4e> 1ca64: f044 0408 orr.w r4, r4, #8 1ca68: e59b b.n 1c5a2 <_svfprintf_r+0x8e> 1ca6a: 9a0d ldr r2, [sp, #52] ; 0x34 1ca6c: 910b str r1, [sp, #44] ; 0x2c 1ca6e: f852 3b04 ldr.w r3, [r2], #4 1ca72: 9508 str r5, [sp, #32] 1ca74: f044 0410 orr.w r4, r4, #16 1ca78: 920d str r2, [sp, #52] ; 0x34 1ca7a: e793 b.n 1c9a4 <_svfprintf_r+0x490> 1ca7c: 9a0d ldr r2, [sp, #52] ; 0x34 1ca7e: 910b str r1, [sp, #44] ; 0x2c 1ca80: f852 3b04 ldr.w r3, [r2], #4 1ca84: 9508 str r5, [sp, #32] 1ca86: f044 0410 orr.w r4, r4, #16 1ca8a: 920d str r2, [sp, #52] ; 0x34 1ca8c: 2200 movs r2, #0 1ca8e: e75d b.n 1c94c <_svfprintf_r+0x438> 1ca90: 9b0d ldr r3, [sp, #52] ; 0x34 1ca92: 910b str r1, [sp, #44] ; 0x2c 1ca94: 2200 movs r2, #0 1ca96: f88d 2067 strb.w r2, [sp, #103] ; 0x67 1ca9a: f853 2b04 ldr.w r2, [r3], #4 1ca9e: 930d str r3, [sp, #52] ; 0x34 1caa0: 2301 movs r3, #1 1caa2: f88d 2090 strb.w r2, [sp, #144] ; 0x90 1caa6: 9307 str r3, [sp, #28] 1caa8: 930a str r3, [sp, #40] ; 0x28 1caaa: ad24 add r5, sp, #144 ; 0x90 1caac: e61b b.n 1c6e6 <_svfprintf_r+0x1d2> 1caae: 910b str r1, [sp, #44] ; 0x2c 1cab0: 9508 str r5, [sp, #32] 1cab2: 2b00 cmp r3, #0 1cab4: f040 8662 bne.w 1d77c <_svfprintf_r+0x1268> 1cab8: 4b08 ldr r3, [pc, #32] ; (1cadc <_svfprintf_r+0x5c8>) 1caba: 9313 str r3, [sp, #76] ; 0x4c 1cabc: e737 b.n 1c92e <_svfprintf_r+0x41a> 1cabe: f044 0440 orr.w r4, r4, #64 ; 0x40 1cac2: e56e b.n 1c5a2 <_svfprintf_r+0x8e> 1cac4: f044 0401 orr.w r4, r4, #1 1cac8: e56b b.n 1c5a2 <_svfprintf_r+0x8e> 1caca: bf00 nop 1cacc: 7fefffff .word 0x7fefffff 1cad0: 0002c03c .word 0x0002c03c 1cad4: 0002c040 .word 0x0002c040 1cad8: 0002c060 .word 0x0002c060 1cadc: 0002c04c .word 0x0002c04c 1cae0: 2800 cmp r0, #0 1cae2: f47f ad5e bne.w 1c5a2 <_svfprintf_r+0x8e> 1cae6: 2301 movs r3, #1 1cae8: 2020 movs r0, #32 1caea: e55a b.n 1c5a2 <_svfprintf_r+0x8e> 1caec: 910b str r1, [sp, #44] ; 0x2c 1caee: 9508 str r5, [sp, #32] 1caf0: 2b00 cmp r3, #0 1caf2: f040 8624 bne.w 1d73e <_svfprintf_r+0x122a> 1caf6: 9b0d ldr r3, [sp, #52] ; 0x34 1caf8: f853 2b04 ldr.w r2, [r3], #4 1cafc: 930d str r3, [sp, #52] ; 0x34 1cafe: f044 0410 orr.w r4, r4, #16 1cb02: e6cf b.n 1c8a4 <_svfprintf_r+0x390> 1cb04: f044 0480 orr.w r4, r4, #128 ; 0x80 1cb08: e54b b.n 1c5a2 <_svfprintf_r+0x8e> 1cb0a: 9c06 ldr r4, [sp, #24] 1cb0c: 2a01 cmp r2, #1 1cb0e: f43f aed9 beq.w 1c8c4 <_svfprintf_r+0x3b0> 1cb12: 2a02 cmp r2, #2 1cb14: f000 8081 beq.w 1cc1a <_svfprintf_r+0x706> 1cb18: ad2e add r5, sp, #184 ; 0xb8 1cb1a: f003 0207 and.w r2, r3, #7 1cb1e: 3230 adds r2, #48 ; 0x30 1cb20: 08db lsrs r3, r3, #3 1cb22: 4628 mov r0, r5 1cb24: f805 2d01 strb.w r2, [r5, #-1]! 1cb28: d1f7 bne.n 1cb1a <_svfprintf_r+0x606> 1cb2a: 07e3 lsls r3, r4, #31 1cb2c: d57e bpl.n 1cc2c <_svfprintf_r+0x718> 1cb2e: 2a30 cmp r2, #48 ; 0x30 1cb30: d07c beq.n 1cc2c <_svfprintf_r+0x718> 1cb32: 2330 movs r3, #48 ; 0x30 1cb34: 3802 subs r0, #2 1cb36: f805 3c01 strb.w r3, [r5, #-1] 1cb3a: ab2e add r3, sp, #184 ; 0xb8 1cb3c: 1a1b subs r3, r3, r0 1cb3e: 9406 str r4, [sp, #24] 1cb40: 930a str r3, [sp, #40] ; 0x28 1cb42: 4605 mov r5, r0 1cb44: 9b08 ldr r3, [sp, #32] 1cb46: 9a0a ldr r2, [sp, #40] ; 0x28 1cb48: 4293 cmp r3, r2 1cb4a: bfb8 it lt 1cb4c: 4613 movlt r3, r2 1cb4e: 9307 str r3, [sp, #28] 1cb50: 2300 movs r3, #0 1cb52: 930f str r3, [sp, #60] ; 0x3c 1cb54: e691 b.n 1c87a <_svfprintf_r+0x366> 1cb56: 2f65 cmp r7, #101 ; 0x65 1cb58: f340 8119 ble.w 1cd8e <_svfprintf_r+0x87a> 1cb5c: e9dd 0110 ldrd r0, r1, [sp, #64] ; 0x40 1cb60: 2200 movs r2, #0 1cb62: 2300 movs r3, #0 1cb64: f000 fff6 bl 1db54 <__aeabi_dcmpeq> 1cb68: 2800 cmp r0, #0 1cb6a: f000 81f8 beq.w 1cf5e <_svfprintf_r+0xa4a> 1cb6e: 9b22 ldr r3, [sp, #136] ; 0x88 1cb70: 4ab3 ldr r2, [pc, #716] ; (1ce40 <_svfprintf_r+0x92c>) 1cb72: f8c9 2000 str.w r2, [r9] 1cb76: 3301 adds r3, #1 1cb78: 3401 adds r4, #1 1cb7a: 2201 movs r2, #1 1cb7c: 2b07 cmp r3, #7 1cb7e: 9423 str r4, [sp, #140] ; 0x8c 1cb80: 9322 str r3, [sp, #136] ; 0x88 1cb82: f8c9 2004 str.w r2, [r9, #4] 1cb86: f300 8417 bgt.w 1d3b8 <_svfprintf_r+0xea4> 1cb8a: f109 0908 add.w r9, r9, #8 1cb8e: 9b1b ldr r3, [sp, #108] ; 0x6c 1cb90: 9a12 ldr r2, [sp, #72] ; 0x48 1cb92: 4293 cmp r3, r2 1cb94: db03 blt.n 1cb9e <_svfprintf_r+0x68a> 1cb96: 9b06 ldr r3, [sp, #24] 1cb98: 07dd lsls r5, r3, #31 1cb9a: f57f ae01 bpl.w 1c7a0 <_svfprintf_r+0x28c> 1cb9e: 9b14 ldr r3, [sp, #80] ; 0x50 1cba0: 9a15 ldr r2, [sp, #84] ; 0x54 1cba2: 441c add r4, r3 1cba4: e9c9 2300 strd r2, r3, [r9] 1cba8: 9b22 ldr r3, [sp, #136] ; 0x88 1cbaa: 9423 str r4, [sp, #140] ; 0x8c 1cbac: 3301 adds r3, #1 1cbae: 2b07 cmp r3, #7 1cbb0: 9322 str r3, [sp, #136] ; 0x88 1cbb2: f300 841b bgt.w 1d3ec <_svfprintf_r+0xed8> 1cbb6: f109 0908 add.w r9, r9, #8 1cbba: 9b12 ldr r3, [sp, #72] ; 0x48 1cbbc: 1e5d subs r5, r3, #1 1cbbe: 2d00 cmp r5, #0 1cbc0: f77f adee ble.w 1c7a0 <_svfprintf_r+0x28c> 1cbc4: 2d10 cmp r5, #16 1cbc6: 9b22 ldr r3, [sp, #136] ; 0x88 1cbc8: 4e9e ldr r6, [pc, #632] ; (1ce44 <_svfprintf_r+0x930>) 1cbca: f340 80ca ble.w 1cd62 <_svfprintf_r+0x84e> 1cbce: f8dd a030 ldr.w sl, [sp, #48] ; 0x30 1cbd2: 2710 movs r7, #16 1cbd4: e005 b.n 1cbe2 <_svfprintf_r+0x6ce> 1cbd6: f109 0908 add.w r9, r9, #8 1cbda: 3d10 subs r5, #16 1cbdc: 2d10 cmp r5, #16 1cbde: f340 80c0 ble.w 1cd62 <_svfprintf_r+0x84e> 1cbe2: 3301 adds r3, #1 1cbe4: 3410 adds r4, #16 1cbe6: 2b07 cmp r3, #7 1cbe8: e9c9 6700 strd r6, r7, [r9] 1cbec: e9cd 3422 strd r3, r4, [sp, #136] ; 0x88 1cbf0: ddf1 ble.n 1cbd6 <_svfprintf_r+0x6c2> 1cbf2: aa21 add r2, sp, #132 ; 0x84 1cbf4: 4659 mov r1, fp 1cbf6: 4650 mov r0, sl 1cbf8: f000 fed4 bl 1d9a4 <__ssprint_r> 1cbfc: 2800 cmp r0, #0 1cbfe: f040 80ae bne.w 1cd5e <_svfprintf_r+0x84a> 1cc02: e9dd 3422 ldrd r3, r4, [sp, #136] ; 0x88 1cc06: f10d 09b8 add.w r9, sp, #184 ; 0xb8 1cc0a: e7e6 b.n 1cbda <_svfprintf_r+0x6c6> 1cc0c: 2a01 cmp r2, #1 1cc0e: f000 854c beq.w 1d6aa <_svfprintf_r+0x1196> 1cc12: 2a02 cmp r2, #2 1cc14: 9c06 ldr r4, [sp, #24] 1cc16: f47f af7f bne.w 1cb18 <_svfprintf_r+0x604> 1cc1a: 9813 ldr r0, [sp, #76] ; 0x4c 1cc1c: ad2e add r5, sp, #184 ; 0xb8 1cc1e: f003 020f and.w r2, r3, #15 1cc22: 091b lsrs r3, r3, #4 1cc24: 5c82 ldrb r2, [r0, r2] 1cc26: f805 2d01 strb.w r2, [r5, #-1]! 1cc2a: d1f8 bne.n 1cc1e <_svfprintf_r+0x70a> 1cc2c: ab2e add r3, sp, #184 ; 0xb8 1cc2e: 1b5b subs r3, r3, r5 1cc30: 9406 str r4, [sp, #24] 1cc32: 930a str r3, [sp, #40] ; 0x28 1cc34: e786 b.n 1cb44 <_svfprintf_r+0x630> 1cc36: 9b0b ldr r3, [sp, #44] ; 0x2c 1cc38: 9a07 ldr r2, [sp, #28] 1cc3a: eba3 0a02 sub.w sl, r3, r2 1cc3e: f1ba 0f00 cmp.w sl, #0 1cc42: f77f ad92 ble.w 1c76a <_svfprintf_r+0x256> 1cc46: f1ba 0f10 cmp.w sl, #16 1cc4a: 9b22 ldr r3, [sp, #136] ; 0x88 1cc4c: 4e7d ldr r6, [pc, #500] ; (1ce44 <_svfprintf_r+0x930>) 1cc4e: dd2e ble.n 1ccae <_svfprintf_r+0x79a> 1cc50: 4632 mov r2, r6 1cc52: 950e str r5, [sp, #56] ; 0x38 1cc54: 465e mov r6, fp 1cc56: 9d0c ldr r5, [sp, #48] ; 0x30 1cc58: 46bb mov fp, r7 1cc5a: 4617 mov r7, r2 1cc5c: e006 b.n 1cc6c <_svfprintf_r+0x758> 1cc5e: f1aa 0a10 sub.w sl, sl, #16 1cc62: f1ba 0f10 cmp.w sl, #16 1cc66: f109 0908 add.w r9, r9, #8 1cc6a: dd1b ble.n 1cca4 <_svfprintf_r+0x790> 1cc6c: 3301 adds r3, #1 1cc6e: 3410 adds r4, #16 1cc70: 2210 movs r2, #16 1cc72: 2b07 cmp r3, #7 1cc74: e9cd 3422 strd r3, r4, [sp, #136] ; 0x88 1cc78: f8c9 7000 str.w r7, [r9] 1cc7c: f8c9 2004 str.w r2, [r9, #4] 1cc80: dded ble.n 1cc5e <_svfprintf_r+0x74a> 1cc82: aa21 add r2, sp, #132 ; 0x84 1cc84: 4631 mov r1, r6 1cc86: 4628 mov r0, r5 1cc88: f10d 09b8 add.w r9, sp, #184 ; 0xb8 1cc8c: f000 fe8a bl 1d9a4 <__ssprint_r> 1cc90: 2800 cmp r0, #0 1cc92: f040 8162 bne.w 1cf5a <_svfprintf_r+0xa46> 1cc96: f1aa 0a10 sub.w sl, sl, #16 1cc9a: f1ba 0f10 cmp.w sl, #16 1cc9e: e9dd 3422 ldrd r3, r4, [sp, #136] ; 0x88 1cca2: dce3 bgt.n 1cc6c <_svfprintf_r+0x758> 1cca4: 463a mov r2, r7 1cca6: 9d0e ldr r5, [sp, #56] ; 0x38 1cca8: 465f mov r7, fp 1ccaa: 46b3 mov fp, r6 1ccac: 4616 mov r6, r2 1ccae: 3301 adds r3, #1 1ccb0: 4454 add r4, sl 1ccb2: 2b07 cmp r3, #7 1ccb4: e9cd 3422 strd r3, r4, [sp, #136] ; 0x88 1ccb8: f8c9 6000 str.w r6, [r9] 1ccbc: f8c9 a004 str.w sl, [r9, #4] 1ccc0: f300 8387 bgt.w 1d3d2 <_svfprintf_r+0xebe> 1ccc4: f109 0908 add.w r9, r9, #8 1ccc8: e54f b.n 1c76a <_svfprintf_r+0x256> 1ccca: f1ba 0f10 cmp.w sl, #16 1ccce: 9b22 ldr r3, [sp, #136] ; 0x88 1ccd0: 4e5c ldr r6, [pc, #368] ; (1ce44 <_svfprintf_r+0x930>) 1ccd2: dd2e ble.n 1cd32 <_svfprintf_r+0x81e> 1ccd4: 4632 mov r2, r6 1ccd6: 9508 str r5, [sp, #32] 1ccd8: 465e mov r6, fp 1ccda: 9d0c ldr r5, [sp, #48] ; 0x30 1ccdc: 46bb mov fp, r7 1ccde: 4617 mov r7, r2 1cce0: e006 b.n 1ccf0 <_svfprintf_r+0x7dc> 1cce2: f1aa 0a10 sub.w sl, sl, #16 1cce6: f1ba 0f10 cmp.w sl, #16 1ccea: f109 0908 add.w r9, r9, #8 1ccee: dd1b ble.n 1cd28 <_svfprintf_r+0x814> 1ccf0: 3301 adds r3, #1 1ccf2: 3410 adds r4, #16 1ccf4: 2210 movs r2, #16 1ccf6: 2b07 cmp r3, #7 1ccf8: e9cd 3422 strd r3, r4, [sp, #136] ; 0x88 1ccfc: f8c9 7000 str.w r7, [r9] 1cd00: f8c9 2004 str.w r2, [r9, #4] 1cd04: dded ble.n 1cce2 <_svfprintf_r+0x7ce> 1cd06: aa21 add r2, sp, #132 ; 0x84 1cd08: 4631 mov r1, r6 1cd0a: 4628 mov r0, r5 1cd0c: f000 fe4a bl 1d9a4 <__ssprint_r> 1cd10: 2800 cmp r0, #0 1cd12: f040 8122 bne.w 1cf5a <_svfprintf_r+0xa46> 1cd16: f1aa 0a10 sub.w sl, sl, #16 1cd1a: f1ba 0f10 cmp.w sl, #16 1cd1e: e9dd 3422 ldrd r3, r4, [sp, #136] ; 0x88 1cd22: f10d 09b8 add.w r9, sp, #184 ; 0xb8 1cd26: dce3 bgt.n 1ccf0 <_svfprintf_r+0x7dc> 1cd28: 463a mov r2, r7 1cd2a: 9d08 ldr r5, [sp, #32] 1cd2c: 465f mov r7, fp 1cd2e: 46b3 mov fp, r6 1cd30: 4616 mov r6, r2 1cd32: 3301 adds r3, #1 1cd34: 4454 add r4, sl 1cd36: 2b07 cmp r3, #7 1cd38: e9cd 3422 strd r3, r4, [sp, #136] ; 0x88 1cd3c: f8c9 6000 str.w r6, [r9] 1cd40: f8c9 a004 str.w sl, [r9, #4] 1cd44: f300 81cf bgt.w 1d0e6 <_svfprintf_r+0xbd2> 1cd48: f109 0908 add.w r9, r9, #8 1cd4c: e515 b.n 1c77a <_svfprintf_r+0x266> 1cd4e: 980c ldr r0, [sp, #48] ; 0x30 1cd50: aa21 add r2, sp, #132 ; 0x84 1cd52: 4659 mov r1, fp 1cd54: f000 fe26 bl 1d9a4 <__ssprint_r> 1cd58: 2800 cmp r0, #0 1cd5a: f43f ad35 beq.w 1c7c8 <_svfprintf_r+0x2b4> 1cd5e: 46da mov sl, fp 1cd60: e540 b.n 1c7e4 <_svfprintf_r+0x2d0> 1cd62: 3301 adds r3, #1 1cd64: 442c add r4, r5 1cd66: 2b07 cmp r3, #7 1cd68: f8c9 6000 str.w r6, [r9] 1cd6c: f8c9 5004 str.w r5, [r9, #4] 1cd70: e9cd 3422 strd r3, r4, [sp, #136] ; 0x88 1cd74: f77f ad12 ble.w 1c79c <_svfprintf_r+0x288> 1cd78: 980c ldr r0, [sp, #48] ; 0x30 1cd7a: aa21 add r2, sp, #132 ; 0x84 1cd7c: 4659 mov r1, fp 1cd7e: f000 fe11 bl 1d9a4 <__ssprint_r> 1cd82: 2800 cmp r0, #0 1cd84: d1eb bne.n 1cd5e <_svfprintf_r+0x84a> 1cd86: 9c23 ldr r4, [sp, #140] ; 0x8c 1cd88: f10d 09b8 add.w r9, sp, #184 ; 0xb8 1cd8c: e508 b.n 1c7a0 <_svfprintf_r+0x28c> 1cd8e: 9b12 ldr r3, [sp, #72] ; 0x48 1cd90: 9f22 ldr r7, [sp, #136] ; 0x88 1cd92: 2b01 cmp r3, #1 1cd94: f104 0401 add.w r4, r4, #1 1cd98: f107 0701 add.w r7, r7, #1 1cd9c: f109 0a08 add.w sl, r9, #8 1cda0: f340 815a ble.w 1d058 <_svfprintf_r+0xb44> 1cda4: 2301 movs r3, #1 1cda6: 2f07 cmp r7, #7 1cda8: e9cd 7422 strd r7, r4, [sp, #136] ; 0x88 1cdac: f8c9 5000 str.w r5, [r9] 1cdb0: f8c9 3004 str.w r3, [r9, #4] 1cdb4: f300 81a8 bgt.w 1d108 <_svfprintf_r+0xbf4> 1cdb8: 9b14 ldr r3, [sp, #80] ; 0x50 1cdba: 9a15 ldr r2, [sp, #84] ; 0x54 1cdbc: 3701 adds r7, #1 1cdbe: 441c add r4, r3 1cdc0: 2f07 cmp r7, #7 1cdc2: e9ca 2300 strd r2, r3, [sl] 1cdc6: e9cd 7422 strd r7, r4, [sp, #136] ; 0x88 1cdca: f300 81aa bgt.w 1d122 <_svfprintf_r+0xc0e> 1cdce: f10a 0a08 add.w sl, sl, #8 1cdd2: 9b12 ldr r3, [sp, #72] ; 0x48 1cdd4: e9dd 0110 ldrd r0, r1, [sp, #64] ; 0x40 1cdd8: f103 39ff add.w r9, r3, #4294967295 ; 0xffffffff 1cddc: 2200 movs r2, #0 1cdde: 2300 movs r3, #0 1cde0: f000 feb8 bl 1db54 <__aeabi_dcmpeq> 1cde4: 2800 cmp r0, #0 1cde6: f040 8152 bne.w 1d08e <_svfprintf_r+0xb7a> 1cdea: 3701 adds r7, #1 1cdec: 3501 adds r5, #1 1cdee: 444c add r4, r9 1cdf0: 2f07 cmp r7, #7 1cdf2: e9cd 7422 strd r7, r4, [sp, #136] ; 0x88 1cdf6: f8ca 5000 str.w r5, [sl] 1cdfa: f8ca 9004 str.w r9, [sl, #4] 1cdfe: f300 8139 bgt.w 1d074 <_svfprintf_r+0xb60> 1ce02: f10a 0a08 add.w sl, sl, #8 1ce06: 9b16 ldr r3, [sp, #88] ; 0x58 1ce08: f8ca 3004 str.w r3, [sl, #4] 1ce0c: 3701 adds r7, #1 1ce0e: 441c add r4, r3 1ce10: 2f07 cmp r7, #7 1ce12: ab1d add r3, sp, #116 ; 0x74 1ce14: e9cd 7422 strd r7, r4, [sp, #136] ; 0x88 1ce18: f8ca 3000 str.w r3, [sl] 1ce1c: dcac bgt.n 1cd78 <_svfprintf_r+0x864> 1ce1e: f10a 0908 add.w r9, sl, #8 1ce22: e4bd b.n 1c7a0 <_svfprintf_r+0x28c> 1ce24: 2e10 cmp r6, #16 1ce26: 9a22 ldr r2, [sp, #136] ; 0x88 1ce28: dd35 ble.n 1ce96 <_svfprintf_r+0x982> 1ce2a: 4659 mov r1, fp 1ce2c: 9317 str r3, [sp, #92] ; 0x5c 1ce2e: 46b3 mov fp, r6 1ce30: 4623 mov r3, r4 1ce32: 462e mov r6, r5 1ce34: 9c0c ldr r4, [sp, #48] ; 0x30 1ce36: f04f 0a10 mov.w sl, #16 1ce3a: 460d mov r5, r1 1ce3c: e00b b.n 1ce56 <_svfprintf_r+0x942> 1ce3e: bf00 nop 1ce40: 0002c07c .word 0x0002c07c 1ce44: 0002c354 .word 0x0002c354 1ce48: f1ab 0b10 sub.w fp, fp, #16 1ce4c: f1bb 0f10 cmp.w fp, #16 1ce50: f109 0908 add.w r9, r9, #8 1ce54: dd19 ble.n 1ce8a <_svfprintf_r+0x976> 1ce56: 3201 adds r2, #1 1ce58: 49bb ldr r1, [pc, #748] ; (1d148 <_svfprintf_r+0xc34>) 1ce5a: 3310 adds r3, #16 1ce5c: 2a07 cmp r2, #7 1ce5e: e9c9 1a00 strd r1, sl, [r9] 1ce62: e9cd 2322 strd r2, r3, [sp, #136] ; 0x88 1ce66: ddef ble.n 1ce48 <_svfprintf_r+0x934> 1ce68: aa21 add r2, sp, #132 ; 0x84 1ce6a: 4629 mov r1, r5 1ce6c: 4620 mov r0, r4 1ce6e: f10d 09b8 add.w r9, sp, #184 ; 0xb8 1ce72: f000 fd97 bl 1d9a4 <__ssprint_r> 1ce76: 2800 cmp r0, #0 1ce78: f040 829b bne.w 1d3b2 <_svfprintf_r+0xe9e> 1ce7c: f1ab 0b10 sub.w fp, fp, #16 1ce80: f1bb 0f10 cmp.w fp, #16 1ce84: e9dd 2322 ldrd r2, r3, [sp, #136] ; 0x88 1ce88: dce5 bgt.n 1ce56 <_svfprintf_r+0x942> 1ce8a: 4629 mov r1, r5 1ce8c: 461c mov r4, r3 1ce8e: 9b17 ldr r3, [sp, #92] ; 0x5c 1ce90: 4635 mov r5, r6 1ce92: 465e mov r6, fp 1ce94: 468b mov fp, r1 1ce96: 3201 adds r2, #1 1ce98: 49ab ldr r1, [pc, #684] ; (1d148 <_svfprintf_r+0xc34>) 1ce9a: f8c9 6004 str.w r6, [r9, #4] 1ce9e: 4434 add r4, r6 1cea0: 2a07 cmp r2, #7 1cea2: e9cd 2422 strd r2, r4, [sp, #136] ; 0x88 1cea6: f8c9 1000 str.w r1, [r9] 1ceaa: f300 8273 bgt.w 1d394 <_svfprintf_r+0xe80> 1ceae: f109 0908 add.w r9, r9, #8 1ceb2: e42f b.n 1c714 <_svfprintf_r+0x200> 1ceb4: 980c ldr r0, [sp, #48] ; 0x30 1ceb6: aa21 add r2, sp, #132 ; 0x84 1ceb8: 4659 mov r1, fp 1ceba: f000 fd73 bl 1d9a4 <__ssprint_r> 1cebe: 2800 cmp r0, #0 1cec0: f47f af4d bne.w 1cd5e <_svfprintf_r+0x84a> 1cec4: 9c23 ldr r4, [sp, #140] ; 0x8c 1cec6: f10d 09b8 add.w r9, sp, #184 ; 0xb8 1ceca: e44a b.n 1c762 <_svfprintf_r+0x24e> 1cecc: 980c ldr r0, [sp, #48] ; 0x30 1cece: 9317 str r3, [sp, #92] ; 0x5c 1ced0: aa21 add r2, sp, #132 ; 0x84 1ced2: 4659 mov r1, fp 1ced4: f000 fd66 bl 1d9a4 <__ssprint_r> 1ced8: 2800 cmp r0, #0 1ceda: f47f af40 bne.w 1cd5e <_svfprintf_r+0x84a> 1cede: 9c23 ldr r4, [sp, #140] ; 0x8c 1cee0: 9b17 ldr r3, [sp, #92] ; 0x5c 1cee2: f10d 09b8 add.w r9, sp, #184 ; 0xb8 1cee6: e42a b.n 1c73e <_svfprintf_r+0x22a> 1cee8: 2d10 cmp r5, #16 1ceea: 9b22 ldr r3, [sp, #136] ; 0x88 1ceec: dd1f ble.n 1cf2e <_svfprintf_r+0xa1a> 1ceee: 9f0c ldr r7, [sp, #48] ; 0x30 1cef0: 2610 movs r6, #16 1cef2: e004 b.n 1cefe <_svfprintf_r+0x9ea> 1cef4: 3d10 subs r5, #16 1cef6: 2d10 cmp r5, #16 1cef8: f109 0908 add.w r9, r9, #8 1cefc: dd17 ble.n 1cf2e <_svfprintf_r+0xa1a> 1cefe: 3301 adds r3, #1 1cf00: 4a91 ldr r2, [pc, #580] ; (1d148 <_svfprintf_r+0xc34>) 1cf02: 3410 adds r4, #16 1cf04: 2b07 cmp r3, #7 1cf06: e9c9 2600 strd r2, r6, [r9] 1cf0a: e9cd 3422 strd r3, r4, [sp, #136] ; 0x88 1cf0e: ddf1 ble.n 1cef4 <_svfprintf_r+0x9e0> 1cf10: aa21 add r2, sp, #132 ; 0x84 1cf12: 4659 mov r1, fp 1cf14: 4638 mov r0, r7 1cf16: f10d 09b8 add.w r9, sp, #184 ; 0xb8 1cf1a: f000 fd43 bl 1d9a4 <__ssprint_r> 1cf1e: 2800 cmp r0, #0 1cf20: f47f af1d bne.w 1cd5e <_svfprintf_r+0x84a> 1cf24: 3d10 subs r5, #16 1cf26: 2d10 cmp r5, #16 1cf28: e9dd 3422 ldrd r3, r4, [sp, #136] ; 0x88 1cf2c: dce7 bgt.n 1cefe <_svfprintf_r+0x9ea> 1cf2e: 3301 adds r3, #1 1cf30: 4a85 ldr r2, [pc, #532] ; (1d148 <_svfprintf_r+0xc34>) 1cf32: f8c9 5004 str.w r5, [r9, #4] 1cf36: 442c add r4, r5 1cf38: 2b07 cmp r3, #7 1cf3a: e9cd 3422 strd r3, r4, [sp, #136] ; 0x88 1cf3e: f8c9 2000 str.w r2, [r9] 1cf42: f77f ac36 ble.w 1c7b2 <_svfprintf_r+0x29e> 1cf46: 980c ldr r0, [sp, #48] ; 0x30 1cf48: aa21 add r2, sp, #132 ; 0x84 1cf4a: 4659 mov r1, fp 1cf4c: f000 fd2a bl 1d9a4 <__ssprint_r> 1cf50: 2800 cmp r0, #0 1cf52: f47f af04 bne.w 1cd5e <_svfprintf_r+0x84a> 1cf56: 9c23 ldr r4, [sp, #140] ; 0x8c 1cf58: e42b b.n 1c7b2 <_svfprintf_r+0x29e> 1cf5a: 46b2 mov sl, r6 1cf5c: e442 b.n 1c7e4 <_svfprintf_r+0x2d0> 1cf5e: 991b ldr r1, [sp, #108] ; 0x6c 1cf60: 2900 cmp r1, #0 1cf62: f340 81e3 ble.w 1d32c <_svfprintf_r+0xe18> 1cf66: 9e12 ldr r6, [sp, #72] ; 0x48 1cf68: 9b0f ldr r3, [sp, #60] ; 0x3c 1cf6a: 429e cmp r6, r3 1cf6c: bfa8 it ge 1cf6e: 461e movge r6, r3 1cf70: 2e00 cmp r6, #0 1cf72: dd0b ble.n 1cf8c <_svfprintf_r+0xa78> 1cf74: 9b22 ldr r3, [sp, #136] ; 0x88 1cf76: 3301 adds r3, #1 1cf78: 4434 add r4, r6 1cf7a: 2b07 cmp r3, #7 1cf7c: e9c9 5600 strd r5, r6, [r9] 1cf80: 9423 str r4, [sp, #140] ; 0x8c 1cf82: 9322 str r3, [sp, #136] ; 0x88 1cf84: f300 83ae bgt.w 1d6e4 <_svfprintf_r+0x11d0> 1cf88: f109 0908 add.w r9, r9, #8 1cf8c: 9f0f ldr r7, [sp, #60] ; 0x3c 1cf8e: 2e00 cmp r6, #0 1cf90: bfa8 it ge 1cf92: 1bbf subge r7, r7, r6 1cf94: 2f00 cmp r7, #0 1cf96: f300 8175 bgt.w 1d284 <_svfprintf_r+0xd70> 1cf9a: 9a1b ldr r2, [sp, #108] ; 0x6c 1cf9c: 9b12 ldr r3, [sp, #72] ; 0x48 1cf9e: 429a cmp r2, r3 1cfa0: f280 8153 bge.w 1d24a <_svfprintf_r+0xd36> 1cfa4: 9b14 ldr r3, [sp, #80] ; 0x50 1cfa6: 9915 ldr r1, [sp, #84] ; 0x54 1cfa8: 441c add r4, r3 1cfaa: e9c9 1300 strd r1, r3, [r9] 1cfae: 9b22 ldr r3, [sp, #136] ; 0x88 1cfb0: 9423 str r4, [sp, #140] ; 0x8c 1cfb2: 3301 adds r3, #1 1cfb4: 2b07 cmp r3, #7 1cfb6: 9322 str r3, [sp, #136] ; 0x88 1cfb8: f300 82fb bgt.w 1d5b2 <_svfprintf_r+0x109e> 1cfbc: f109 0908 add.w r9, r9, #8 1cfc0: 9b12 ldr r3, [sp, #72] ; 0x48 1cfc2: 990f ldr r1, [sp, #60] ; 0x3c 1cfc4: 1a9a subs r2, r3, r2 1cfc6: 1a5e subs r6, r3, r1 1cfc8: 4296 cmp r6, r2 1cfca: bfa8 it ge 1cfcc: 4616 movge r6, r2 1cfce: 2e00 cmp r6, #0 1cfd0: dd0e ble.n 1cff0 <_svfprintf_r+0xadc> 1cfd2: 9b22 ldr r3, [sp, #136] ; 0x88 1cfd4: f8c9 6004 str.w r6, [r9, #4] 1cfd8: 3301 adds r3, #1 1cfda: 440d add r5, r1 1cfdc: 4434 add r4, r6 1cfde: 2b07 cmp r3, #7 1cfe0: f8c9 5000 str.w r5, [r9] 1cfe4: 9423 str r4, [sp, #140] ; 0x8c 1cfe6: 9322 str r3, [sp, #136] ; 0x88 1cfe8: f300 838b bgt.w 1d702 <_svfprintf_r+0x11ee> 1cfec: f109 0908 add.w r9, r9, #8 1cff0: 2e00 cmp r6, #0 1cff2: bfac ite ge 1cff4: 1b95 subge r5, r2, r6 1cff6: 4615 movlt r5, r2 1cff8: 2d00 cmp r5, #0 1cffa: f77f abd1 ble.w 1c7a0 <_svfprintf_r+0x28c> 1cffe: 2d10 cmp r5, #16 1d000: 9b22 ldr r3, [sp, #136] ; 0x88 1d002: 4e52 ldr r6, [pc, #328] ; (1d14c <_svfprintf_r+0xc38>) 1d004: f77f aead ble.w 1cd62 <_svfprintf_r+0x84e> 1d008: f8dd a030 ldr.w sl, [sp, #48] ; 0x30 1d00c: 2710 movs r7, #16 1d00e: e005 b.n 1d01c <_svfprintf_r+0xb08> 1d010: f109 0908 add.w r9, r9, #8 1d014: 3d10 subs r5, #16 1d016: 2d10 cmp r5, #16 1d018: f77f aea3 ble.w 1cd62 <_svfprintf_r+0x84e> 1d01c: 3301 adds r3, #1 1d01e: 3410 adds r4, #16 1d020: 2b07 cmp r3, #7 1d022: e9c9 6700 strd r6, r7, [r9] 1d026: e9cd 3422 strd r3, r4, [sp, #136] ; 0x88 1d02a: ddf1 ble.n 1d010 <_svfprintf_r+0xafc> 1d02c: aa21 add r2, sp, #132 ; 0x84 1d02e: 4659 mov r1, fp 1d030: 4650 mov r0, sl 1d032: f000 fcb7 bl 1d9a4 <__ssprint_r> 1d036: 2800 cmp r0, #0 1d038: f47f ae91 bne.w 1cd5e <_svfprintf_r+0x84a> 1d03c: e9dd 3422 ldrd r3, r4, [sp, #136] ; 0x88 1d040: f10d 09b8 add.w r9, sp, #184 ; 0xb8 1d044: e7e6 b.n 1d014 <_svfprintf_r+0xb00> 1d046: 9a08 ldr r2, [sp, #32] 1d048: 2a00 cmp r2, #0 1d04a: f040 832e bne.w 1d6aa <_svfprintf_r+0x1196> 1d04e: 2300 movs r3, #0 1d050: 9308 str r3, [sp, #32] 1d052: 930a str r3, [sp, #40] ; 0x28 1d054: ad2e add r5, sp, #184 ; 0xb8 1d056: e575 b.n 1cb44 <_svfprintf_r+0x630> 1d058: 9b06 ldr r3, [sp, #24] 1d05a: 07d9 lsls r1, r3, #31 1d05c: f53f aea2 bmi.w 1cda4 <_svfprintf_r+0x890> 1d060: 2301 movs r3, #1 1d062: 2f07 cmp r7, #7 1d064: e9cd 7422 strd r7, r4, [sp, #136] ; 0x88 1d068: f8c9 5000 str.w r5, [r9] 1d06c: f8c9 3004 str.w r3, [r9, #4] 1d070: f77f aec9 ble.w 1ce06 <_svfprintf_r+0x8f2> 1d074: 980c ldr r0, [sp, #48] ; 0x30 1d076: aa21 add r2, sp, #132 ; 0x84 1d078: 4659 mov r1, fp 1d07a: f000 fc93 bl 1d9a4 <__ssprint_r> 1d07e: 2800 cmp r0, #0 1d080: f47f ae6d bne.w 1cd5e <_svfprintf_r+0x84a> 1d084: e9dd 7422 ldrd r7, r4, [sp, #136] ; 0x88 1d088: f10d 0ab8 add.w sl, sp, #184 ; 0xb8 1d08c: e6bb b.n 1ce06 <_svfprintf_r+0x8f2> 1d08e: f1b9 0f00 cmp.w r9, #0 1d092: f77f aeb8 ble.w 1ce06 <_svfprintf_r+0x8f2> 1d096: f1b9 0f10 cmp.w r9, #16 1d09a: 4e2c ldr r6, [pc, #176] ; (1d14c <_svfprintf_r+0xc38>) 1d09c: f340 81be ble.w 1d41c <_svfprintf_r+0xf08> 1d0a0: f8cd 8020 str.w r8, [sp, #32] 1d0a4: 2510 movs r5, #16 1d0a6: f8dd 8030 ldr.w r8, [sp, #48] ; 0x30 1d0aa: e007 b.n 1d0bc <_svfprintf_r+0xba8> 1d0ac: f10a 0a08 add.w sl, sl, #8 1d0b0: f1a9 0910 sub.w r9, r9, #16 1d0b4: f1b9 0f10 cmp.w r9, #16 1d0b8: f340 81ae ble.w 1d418 <_svfprintf_r+0xf04> 1d0bc: 3701 adds r7, #1 1d0be: 3410 adds r4, #16 1d0c0: 2f07 cmp r7, #7 1d0c2: e9ca 6500 strd r6, r5, [sl] 1d0c6: e9cd 7422 strd r7, r4, [sp, #136] ; 0x88 1d0ca: ddef ble.n 1d0ac <_svfprintf_r+0xb98> 1d0cc: aa21 add r2, sp, #132 ; 0x84 1d0ce: 4659 mov r1, fp 1d0d0: 4640 mov r0, r8 1d0d2: f000 fc67 bl 1d9a4 <__ssprint_r> 1d0d6: 2800 cmp r0, #0 1d0d8: f47f ae41 bne.w 1cd5e <_svfprintf_r+0x84a> 1d0dc: e9dd 7422 ldrd r7, r4, [sp, #136] ; 0x88 1d0e0: f10d 0ab8 add.w sl, sp, #184 ; 0xb8 1d0e4: e7e4 b.n 1d0b0 <_svfprintf_r+0xb9c> 1d0e6: 980c ldr r0, [sp, #48] ; 0x30 1d0e8: aa21 add r2, sp, #132 ; 0x84 1d0ea: 4659 mov r1, fp 1d0ec: f000 fc5a bl 1d9a4 <__ssprint_r> 1d0f0: 2800 cmp r0, #0 1d0f2: f47f ae34 bne.w 1cd5e <_svfprintf_r+0x84a> 1d0f6: 9c23 ldr r4, [sp, #140] ; 0x8c 1d0f8: f10d 09b8 add.w r9, sp, #184 ; 0xb8 1d0fc: f7ff bb3d b.w 1c77a <_svfprintf_r+0x266> 1d100: 4253 negs r3, r2 1d102: 212d movs r1, #45 ; 0x2d 1d104: 2201 movs r2, #1 1d106: e422 b.n 1c94e <_svfprintf_r+0x43a> 1d108: 980c ldr r0, [sp, #48] ; 0x30 1d10a: aa21 add r2, sp, #132 ; 0x84 1d10c: 4659 mov r1, fp 1d10e: f000 fc49 bl 1d9a4 <__ssprint_r> 1d112: 2800 cmp r0, #0 1d114: f47f ae23 bne.w 1cd5e <_svfprintf_r+0x84a> 1d118: e9dd 7422 ldrd r7, r4, [sp, #136] ; 0x88 1d11c: f10d 0ab8 add.w sl, sp, #184 ; 0xb8 1d120: e64a b.n 1cdb8 <_svfprintf_r+0x8a4> 1d122: 980c ldr r0, [sp, #48] ; 0x30 1d124: aa21 add r2, sp, #132 ; 0x84 1d126: 4659 mov r1, fp 1d128: f000 fc3c bl 1d9a4 <__ssprint_r> 1d12c: 2800 cmp r0, #0 1d12e: f47f ae16 bne.w 1cd5e <_svfprintf_r+0x84a> 1d132: e9dd 7422 ldrd r7, r4, [sp, #136] ; 0x88 1d136: f10d 0ab8 add.w sl, sp, #184 ; 0xb8 1d13a: e64a b.n 1cdd2 <_svfprintf_r+0x8be> 1d13c: 920d str r2, [sp, #52] ; 0x34 1d13e: f7ff ba30 b.w 1c5a2 <_svfprintf_r+0x8e> 1d142: ad2e add r5, sp, #184 ; 0xb8 1d144: e4fe b.n 1cb44 <_svfprintf_r+0x630> 1d146: bf00 nop 1d148: 0002c344 .word 0x0002c344 1d14c: 0002c354 .word 0x0002c354 1d150: 2230 movs r2, #48 ; 0x30 1d152: f88d 2068 strb.w r2, [sp, #104] ; 0x68 1d156: f88d 7069 strb.w r7, [sp, #105] ; 0x69 1d15a: f044 0402 orr.w r4, r4, #2 1d15e: 2202 movs r2, #2 1d160: f7ff bbf4 b.w 1c94c <_svfprintf_r+0x438> 1d164: b212 sxth r2, r2 1d166: 4613 mov r3, r2 1d168: f7ff bb9d b.w 1c8a6 <_svfprintf_r+0x392> 1d16c: e9dd 0110 ldrd r0, r1, [sp, #64] ; 0x40 1d170: 4602 mov r2, r0 1d172: 460b mov r3, r1 1d174: f000 fd20 bl 1dbb8 <__aeabi_dcmpun> 1d178: 2800 cmp r0, #0 1d17a: f040 833e bne.w 1d7fa <_svfprintf_r+0x12e6> 1d17e: 9a08 ldr r2, [sp, #32] 1d180: f027 0320 bic.w r3, r7, #32 1d184: 1c51 adds r1, r2, #1 1d186: 930a str r3, [sp, #40] ; 0x28 1d188: f000 82b8 beq.w 1d6fc <_svfprintf_r+0x11e8> 1d18c: 2b47 cmp r3, #71 ; 0x47 1d18e: f000 80b2 beq.w 1d2f6 <_svfprintf_r+0xde2> 1d192: e9dd 1210 ldrd r1, r2, [sp, #64] ; 0x40 1d196: f444 7380 orr.w r3, r4, #256 ; 0x100 1d19a: 9306 str r3, [sp, #24] 1d19c: 4613 mov r3, r2 1d19e: 2b00 cmp r3, #0 1d1a0: f2c0 8221 blt.w 1d5e6 <_svfprintf_r+0x10d2> 1d1a4: 9307 str r3, [sp, #28] 1d1a6: f8dd a040 ldr.w sl, [sp, #64] ; 0x40 1d1aa: 2300 movs r3, #0 1d1ac: 930e str r3, [sp, #56] ; 0x38 1d1ae: 2f66 cmp r7, #102 ; 0x66 1d1b0: f000 8174 beq.w 1d49c <_svfprintf_r+0xf88> 1d1b4: 2f46 cmp r7, #70 ; 0x46 1d1b6: f000 8171 beq.w 1d49c <_svfprintf_r+0xf88> 1d1ba: 9b0a ldr r3, [sp, #40] ; 0x28 1d1bc: 2b45 cmp r3, #69 ; 0x45 1d1be: 4652 mov r2, sl 1d1c0: 9b07 ldr r3, [sp, #28] 1d1c2: f000 8275 beq.w 1d6b0 <_svfprintf_r+0x119c> 1d1c6: a91f add r1, sp, #124 ; 0x7c 1d1c8: 9104 str r1, [sp, #16] 1d1ca: a91c add r1, sp, #112 ; 0x70 1d1cc: 9103 str r1, [sp, #12] 1d1ce: a91b add r1, sp, #108 ; 0x6c 1d1d0: 9e08 ldr r6, [sp, #32] 1d1d2: 9102 str r1, [sp, #8] 1d1d4: 2102 movs r1, #2 1d1d6: 980c ldr r0, [sp, #48] ; 0x30 1d1d8: 9601 str r6, [sp, #4] 1d1da: 9100 str r1, [sp, #0] 1d1dc: f7fb fc88 bl 18af0 <_dtoa_r> 1d1e0: 2f67 cmp r7, #103 ; 0x67 1d1e2: 4605 mov r5, r0 1d1e4: f040 8345 bne.w 1d872 <_svfprintf_r+0x135e> 1d1e8: 07e3 lsls r3, r4, #31 1d1ea: f100 8273 bmi.w 1d6d4 <_svfprintf_r+0x11c0> 1d1ee: 9b1f ldr r3, [sp, #124] ; 0x7c 1d1f0: 1b5b subs r3, r3, r5 1d1f2: 9312 str r3, [sp, #72] ; 0x48 1d1f4: 9b1b ldr r3, [sp, #108] ; 0x6c 1d1f6: 930f str r3, [sp, #60] ; 0x3c 1d1f8: 9b0a ldr r3, [sp, #40] ; 0x28 1d1fa: 2b47 cmp r3, #71 ; 0x47 1d1fc: f040 819b bne.w 1d536 <_svfprintf_r+0x1022> 1d200: 9b0f ldr r3, [sp, #60] ; 0x3c 1d202: 1cde adds r6, r3, #3 1d204: f2c0 8196 blt.w 1d534 <_svfprintf_r+0x1020> 1d208: 9a08 ldr r2, [sp, #32] 1d20a: 429a cmp r2, r3 1d20c: f2c0 8192 blt.w 1d534 <_svfprintf_r+0x1020> 1d210: 9b12 ldr r3, [sp, #72] ; 0x48 1d212: 9a0f ldr r2, [sp, #60] ; 0x3c 1d214: 4293 cmp r3, r2 1d216: f300 82d6 bgt.w 1d7c6 <_svfprintf_r+0x12b2> 1d21a: 07e4 lsls r4, r4, #31 1d21c: 9b0f ldr r3, [sp, #60] ; 0x3c 1d21e: f100 82fd bmi.w 1d81c <_svfprintf_r+0x1308> 1d222: ea23 72e3 bic.w r2, r3, r3, asr #31 1d226: 9207 str r2, [sp, #28] 1d228: 930a str r3, [sp, #40] ; 0x28 1d22a: 2767 movs r7, #103 ; 0x67 1d22c: 9b0e ldr r3, [sp, #56] ; 0x38 1d22e: 2b00 cmp r3, #0 1d230: f000 8252 beq.w 1d6d8 <_svfprintf_r+0x11c4> 1d234: 232d movs r3, #45 ; 0x2d 1d236: f88d 3067 strb.w r3, [sp, #103] ; 0x67 1d23a: 2300 movs r3, #0 1d23c: 9308 str r3, [sp, #32] 1d23e: f7ff bb1f b.w 1c880 <_svfprintf_r+0x36c> 1d242: 2301 movs r3, #1 1d244: 202b movs r0, #43 ; 0x2b 1d246: f7ff b9ac b.w 1c5a2 <_svfprintf_r+0x8e> 1d24a: 9b06 ldr r3, [sp, #24] 1d24c: 07d8 lsls r0, r3, #31 1d24e: f53f aea9 bmi.w 1cfa4 <_svfprintf_r+0xa90> 1d252: 9b12 ldr r3, [sp, #72] ; 0x48 1d254: 990f ldr r1, [sp, #60] ; 0x3c 1d256: 1a9a subs r2, r3, r2 1d258: 1a5b subs r3, r3, r1 1d25a: 4293 cmp r3, r2 1d25c: bfa8 it ge 1d25e: 4613 movge r3, r2 1d260: 461e mov r6, r3 1d262: e6c5 b.n 1cff0 <_svfprintf_r+0xadc> 1d264: 980c ldr r0, [sp, #48] ; 0x30 1d266: 2140 movs r1, #64 ; 0x40 1d268: f7fc fe9a bl 19fa0 <_malloc_r> 1d26c: f8ca 0000 str.w r0, [sl] 1d270: f8ca 0010 str.w r0, [sl, #16] 1d274: 2800 cmp r0, #0 1d276: f000 82fe beq.w 1d876 <_svfprintf_r+0x1362> 1d27a: 2340 movs r3, #64 ; 0x40 1d27c: f8ca 3014 str.w r3, [sl, #20] 1d280: f7ff b960 b.w 1c544 <_svfprintf_r+0x30> 1d284: 2f10 cmp r7, #16 1d286: 9b22 ldr r3, [sp, #136] ; 0x88 1d288: 4ea6 ldr r6, [pc, #664] ; (1d524 <_svfprintf_r+0x1010>) 1d28a: f340 8180 ble.w 1d58e <_svfprintf_r+0x107a> 1d28e: 4632 mov r2, r6 1d290: 9508 str r5, [sp, #32] 1d292: 465e mov r6, fp 1d294: 9d0c ldr r5, [sp, #48] ; 0x30 1d296: f04f 0a10 mov.w sl, #16 1d29a: 4693 mov fp, r2 1d29c: e005 b.n 1d2aa <_svfprintf_r+0xd96> 1d29e: f109 0908 add.w r9, r9, #8 1d2a2: 3f10 subs r7, #16 1d2a4: 2f10 cmp r7, #16 1d2a6: f340 816e ble.w 1d586 <_svfprintf_r+0x1072> 1d2aa: 3301 adds r3, #1 1d2ac: 3410 adds r4, #16 1d2ae: 2b07 cmp r3, #7 1d2b0: e9c9 ba00 strd fp, sl, [r9] 1d2b4: e9cd 3422 strd r3, r4, [sp, #136] ; 0x88 1d2b8: ddf1 ble.n 1d29e <_svfprintf_r+0xd8a> 1d2ba: aa21 add r2, sp, #132 ; 0x84 1d2bc: 4631 mov r1, r6 1d2be: 4628 mov r0, r5 1d2c0: f000 fb70 bl 1d9a4 <__ssprint_r> 1d2c4: 2800 cmp r0, #0 1d2c6: f47f ae48 bne.w 1cf5a <_svfprintf_r+0xa46> 1d2ca: e9dd 3422 ldrd r3, r4, [sp, #136] ; 0x88 1d2ce: f10d 09b8 add.w r9, sp, #184 ; 0xb8 1d2d2: e7e6 b.n 1d2a2 <_svfprintf_r+0xd8e> 1d2d4: 4628 mov r0, r5 1d2d6: f8cd a020 str.w sl, [sp, #32] 1d2da: 960d str r6, [sp, #52] ; 0x34 1d2dc: 9406 str r4, [sp, #24] 1d2de: f7fa f84f bl 17380 1d2e2: ea20 73e0 bic.w r3, r0, r0, asr #31 1d2e6: f89d 1067 ldrb.w r1, [sp, #103] ; 0x67 1d2ea: 900a str r0, [sp, #40] ; 0x28 1d2ec: 9307 str r3, [sp, #28] 1d2ee: f8cd a03c str.w sl, [sp, #60] ; 0x3c 1d2f2: f7ff bac2 b.w 1c87a <_svfprintf_r+0x366> 1d2f6: 2a00 cmp r2, #0 1d2f8: 4613 mov r3, r2 1d2fa: bf08 it eq 1d2fc: 2301 moveq r3, #1 1d2fe: 9308 str r3, [sp, #32] 1d300: e747 b.n 1d192 <_svfprintf_r+0xc7e> 1d302: 4e89 ldr r6, [pc, #548] ; (1d528 <_svfprintf_r+0x1014>) 1d304: ad2e add r5, sp, #184 ; 0xb8 1d306: fba6 0203 umull r0, r2, r6, r3 1d30a: 08d2 lsrs r2, r2, #3 1d30c: eb02 0082 add.w r0, r2, r2, lsl #2 1d310: eba3 0040 sub.w r0, r3, r0, lsl #1 1d314: 3030 adds r0, #48 ; 0x30 1d316: f805 0d01 strb.w r0, [r5, #-1]! 1d31a: 4618 mov r0, r3 1d31c: 2809 cmp r0, #9 1d31e: 4613 mov r3, r2 1d320: d8f1 bhi.n 1d306 <_svfprintf_r+0xdf2> 1d322: ab2e add r3, sp, #184 ; 0xb8 1d324: 1b5b subs r3, r3, r5 1d326: 9406 str r4, [sp, #24] 1d328: 930a str r3, [sp, #40] ; 0x28 1d32a: e40b b.n 1cb44 <_svfprintf_r+0x630> 1d32c: 9b22 ldr r3, [sp, #136] ; 0x88 1d32e: 4a7f ldr r2, [pc, #508] ; (1d52c <_svfprintf_r+0x1018>) 1d330: f8c9 2000 str.w r2, [r9] 1d334: 3301 adds r3, #1 1d336: 3401 adds r4, #1 1d338: 2201 movs r2, #1 1d33a: 2b07 cmp r3, #7 1d33c: 9423 str r4, [sp, #140] ; 0x8c 1d33e: 9322 str r3, [sp, #136] ; 0x88 1d340: f8c9 2004 str.w r2, [r9, #4] 1d344: f300 8142 bgt.w 1d5cc <_svfprintf_r+0x10b8> 1d348: f109 0908 add.w r9, r9, #8 1d34c: 2900 cmp r1, #0 1d34e: d171 bne.n 1d434 <_svfprintf_r+0xf20> 1d350: 9b06 ldr r3, [sp, #24] 1d352: 9a12 ldr r2, [sp, #72] ; 0x48 1d354: f003 0301 and.w r3, r3, #1 1d358: 4313 orrs r3, r2 1d35a: f43f aa21 beq.w 1c7a0 <_svfprintf_r+0x28c> 1d35e: 9b14 ldr r3, [sp, #80] ; 0x50 1d360: 9915 ldr r1, [sp, #84] ; 0x54 1d362: 191a adds r2, r3, r4 1d364: e9c9 1300 strd r1, r3, [r9] 1d368: 9b22 ldr r3, [sp, #136] ; 0x88 1d36a: 9223 str r2, [sp, #140] ; 0x8c 1d36c: 3301 adds r3, #1 1d36e: 2b07 cmp r3, #7 1d370: 9322 str r3, [sp, #136] ; 0x88 1d372: f300 8180 bgt.w 1d676 <_svfprintf_r+0x1162> 1d376: f109 0908 add.w r9, r9, #8 1d37a: 9912 ldr r1, [sp, #72] ; 0x48 1d37c: f8c9 5000 str.w r5, [r9] 1d380: 3301 adds r3, #1 1d382: 188c adds r4, r1, r2 1d384: 2b07 cmp r3, #7 1d386: e9cd 3422 strd r3, r4, [sp, #136] ; 0x88 1d38a: f8c9 1004 str.w r1, [r9, #4] 1d38e: f77f aa05 ble.w 1c79c <_svfprintf_r+0x288> 1d392: e4f1 b.n 1cd78 <_svfprintf_r+0x864> 1d394: 980c ldr r0, [sp, #48] ; 0x30 1d396: 9317 str r3, [sp, #92] ; 0x5c 1d398: aa21 add r2, sp, #132 ; 0x84 1d39a: 4659 mov r1, fp 1d39c: f000 fb02 bl 1d9a4 <__ssprint_r> 1d3a0: 2800 cmp r0, #0 1d3a2: f47f acdc bne.w 1cd5e <_svfprintf_r+0x84a> 1d3a6: 9c23 ldr r4, [sp, #140] ; 0x8c 1d3a8: 9b17 ldr r3, [sp, #92] ; 0x5c 1d3aa: f10d 09b8 add.w r9, sp, #184 ; 0xb8 1d3ae: f7ff b9b1 b.w 1c714 <_svfprintf_r+0x200> 1d3b2: 46aa mov sl, r5 1d3b4: f7ff ba16 b.w 1c7e4 <_svfprintf_r+0x2d0> 1d3b8: 980c ldr r0, [sp, #48] ; 0x30 1d3ba: aa21 add r2, sp, #132 ; 0x84 1d3bc: 4659 mov r1, fp 1d3be: f000 faf1 bl 1d9a4 <__ssprint_r> 1d3c2: 2800 cmp r0, #0 1d3c4: f47f accb bne.w 1cd5e <_svfprintf_r+0x84a> 1d3c8: 9c23 ldr r4, [sp, #140] ; 0x8c 1d3ca: f10d 09b8 add.w r9, sp, #184 ; 0xb8 1d3ce: f7ff bbde b.w 1cb8e <_svfprintf_r+0x67a> 1d3d2: 980c ldr r0, [sp, #48] ; 0x30 1d3d4: aa21 add r2, sp, #132 ; 0x84 1d3d6: 4659 mov r1, fp 1d3d8: f000 fae4 bl 1d9a4 <__ssprint_r> 1d3dc: 2800 cmp r0, #0 1d3de: f47f acbe bne.w 1cd5e <_svfprintf_r+0x84a> 1d3e2: 9c23 ldr r4, [sp, #140] ; 0x8c 1d3e4: f10d 09b8 add.w r9, sp, #184 ; 0xb8 1d3e8: f7ff b9bf b.w 1c76a <_svfprintf_r+0x256> 1d3ec: 980c ldr r0, [sp, #48] ; 0x30 1d3ee: aa21 add r2, sp, #132 ; 0x84 1d3f0: 4659 mov r1, fp 1d3f2: f000 fad7 bl 1d9a4 <__ssprint_r> 1d3f6: 2800 cmp r0, #0 1d3f8: f47f acb1 bne.w 1cd5e <_svfprintf_r+0x84a> 1d3fc: 9c23 ldr r4, [sp, #140] ; 0x8c 1d3fe: f10d 09b8 add.w r9, sp, #184 ; 0xb8 1d402: f7ff bbda b.w 1cbba <_svfprintf_r+0x6a6> 1d406: 2b06 cmp r3, #6 1d408: bf28 it cs 1d40a: 2306 movcs r3, #6 1d40c: 4d48 ldr r5, [pc, #288] ; (1d530 <_svfprintf_r+0x101c>) 1d40e: 930a str r3, [sp, #40] ; 0x28 1d410: 960d str r6, [sp, #52] ; 0x34 1d412: 9307 str r3, [sp, #28] 1d414: f7ff b967 b.w 1c6e6 <_svfprintf_r+0x1d2> 1d418: f8dd 8020 ldr.w r8, [sp, #32] 1d41c: f8ca 6000 str.w r6, [sl] 1d420: 3701 adds r7, #1 1d422: 444c add r4, r9 1d424: 2f07 cmp r7, #7 1d426: e9cd 7422 strd r7, r4, [sp, #136] ; 0x88 1d42a: f8ca 9004 str.w r9, [sl, #4] 1d42e: f77f ace8 ble.w 1ce02 <_svfprintf_r+0x8ee> 1d432: e61f b.n 1d074 <_svfprintf_r+0xb60> 1d434: 9b14 ldr r3, [sp, #80] ; 0x50 1d436: 9815 ldr r0, [sp, #84] ; 0x54 1d438: 191a adds r2, r3, r4 1d43a: e9c9 0300 strd r0, r3, [r9] 1d43e: 9b22 ldr r3, [sp, #136] ; 0x88 1d440: 9223 str r2, [sp, #140] ; 0x8c 1d442: 3301 adds r3, #1 1d444: 2b07 cmp r3, #7 1d446: 9322 str r3, [sp, #136] ; 0x88 1d448: f300 8115 bgt.w 1d676 <_svfprintf_r+0x1162> 1d44c: f109 0908 add.w r9, r9, #8 1d450: 2900 cmp r1, #0 1d452: da92 bge.n 1d37a <_svfprintf_r+0xe66> 1d454: 424f negs r7, r1 1d456: 3110 adds r1, #16 1d458: 4e32 ldr r6, [pc, #200] ; (1d524 <_svfprintf_r+0x1010>) 1d45a: f280 8193 bge.w 1d784 <_svfprintf_r+0x1270> 1d45e: f8dd a030 ldr.w sl, [sp, #48] ; 0x30 1d462: 2410 movs r4, #16 1d464: e005 b.n 1d472 <_svfprintf_r+0xf5e> 1d466: f109 0908 add.w r9, r9, #8 1d46a: 3f10 subs r7, #16 1d46c: 2f10 cmp r7, #16 1d46e: f340 8189 ble.w 1d784 <_svfprintf_r+0x1270> 1d472: 3301 adds r3, #1 1d474: 3210 adds r2, #16 1d476: 2b07 cmp r3, #7 1d478: e9c9 6400 strd r6, r4, [r9] 1d47c: e9cd 3222 strd r3, r2, [sp, #136] ; 0x88 1d480: ddf1 ble.n 1d466 <_svfprintf_r+0xf52> 1d482: aa21 add r2, sp, #132 ; 0x84 1d484: 4659 mov r1, fp 1d486: 4650 mov r0, sl 1d488: f000 fa8c bl 1d9a4 <__ssprint_r> 1d48c: 2800 cmp r0, #0 1d48e: f47f ac66 bne.w 1cd5e <_svfprintf_r+0x84a> 1d492: e9dd 3222 ldrd r3, r2, [sp, #136] ; 0x88 1d496: f10d 09b8 add.w r9, sp, #184 ; 0xb8 1d49a: e7e6 b.n 1d46a <_svfprintf_r+0xf56> 1d49c: a91f add r1, sp, #124 ; 0x7c 1d49e: e9dd 3607 ldrd r3, r6, [sp, #28] 1d4a2: 9104 str r1, [sp, #16] 1d4a4: a91c add r1, sp, #112 ; 0x70 1d4a6: 9103 str r1, [sp, #12] 1d4a8: a91b add r1, sp, #108 ; 0x6c 1d4aa: 9102 str r1, [sp, #8] 1d4ac: 2103 movs r1, #3 1d4ae: 9601 str r6, [sp, #4] 1d4b0: 980c ldr r0, [sp, #48] ; 0x30 1d4b2: 9100 str r1, [sp, #0] 1d4b4: 4652 mov r2, sl 1d4b6: f7fb fb1b bl 18af0 <_dtoa_r> 1d4ba: 4605 mov r5, r0 1d4bc: 1986 adds r6, r0, r6 1d4be: 782b ldrb r3, [r5, #0] 1d4c0: 2b30 cmp r3, #48 ; 0x30 1d4c2: f000 818c beq.w 1d7de <_svfprintf_r+0x12ca> 1d4c6: 9b1b ldr r3, [sp, #108] ; 0x6c 1d4c8: 441e add r6, r3 1d4ca: 9907 ldr r1, [sp, #28] 1d4cc: 4650 mov r0, sl 1d4ce: 2200 movs r2, #0 1d4d0: 2300 movs r3, #0 1d4d2: f000 fb3f bl 1db54 <__aeabi_dcmpeq> 1d4d6: 2800 cmp r0, #0 1d4d8: f040 808c bne.w 1d5f4 <_svfprintf_r+0x10e0> 1d4dc: 9b1f ldr r3, [sp, #124] ; 0x7c 1d4de: 42b3 cmp r3, r6 1d4e0: d206 bcs.n 1d4f0 <_svfprintf_r+0xfdc> 1d4e2: 2130 movs r1, #48 ; 0x30 1d4e4: 1c5a adds r2, r3, #1 1d4e6: 921f str r2, [sp, #124] ; 0x7c 1d4e8: 7019 strb r1, [r3, #0] 1d4ea: 9b1f ldr r3, [sp, #124] ; 0x7c 1d4ec: 429e cmp r6, r3 1d4ee: d8f9 bhi.n 1d4e4 <_svfprintf_r+0xfd0> 1d4f0: 1b5b subs r3, r3, r5 1d4f2: 9312 str r3, [sp, #72] ; 0x48 1d4f4: 9b1b ldr r3, [sp, #108] ; 0x6c 1d4f6: 930f str r3, [sp, #60] ; 0x3c 1d4f8: 9b0a ldr r3, [sp, #40] ; 0x28 1d4fa: 2b47 cmp r3, #71 ; 0x47 1d4fc: f43f ae80 beq.w 1d200 <_svfprintf_r+0xcec> 1d500: 2f66 cmp r7, #102 ; 0x66 1d502: d118 bne.n 1d536 <_svfprintf_r+0x1022> 1d504: 9a08 ldr r2, [sp, #32] 1d506: f004 0301 and.w r3, r4, #1 1d50a: 4313 orrs r3, r2 1d50c: 9a0f ldr r2, [sp, #60] ; 0x3c 1d50e: 2a00 cmp r2, #0 1d510: f340 80aa ble.w 1d668 <_svfprintf_r+0x1154> 1d514: 2b00 cmp r3, #0 1d516: f040 8189 bne.w 1d82c <_svfprintf_r+0x1318> 1d51a: 9b0f ldr r3, [sp, #60] ; 0x3c 1d51c: 9307 str r3, [sp, #28] 1d51e: 930a str r3, [sp, #40] ; 0x28 1d520: e684 b.n 1d22c <_svfprintf_r+0xd18> 1d522: bf00 nop 1d524: 0002c354 .word 0x0002c354 1d528: cccccccd .word 0xcccccccd 1d52c: 0002c07c .word 0x0002c07c 1d530: 0002c074 .word 0x0002c074 1d534: 3f02 subs r7, #2 1d536: 9a0f ldr r2, [sp, #60] ; 0x3c 1d538: f88d 7074 strb.w r7, [sp, #116] ; 0x74 1d53c: 1e53 subs r3, r2, #1 1d53e: 2b00 cmp r3, #0 1d540: 931b str r3, [sp, #108] ; 0x6c 1d542: bfb6 itet lt 1d544: f1c2 0301 rsblt r3, r2, #1 1d548: 222b movge r2, #43 ; 0x2b 1d54a: 222d movlt r2, #45 ; 0x2d 1d54c: 2b09 cmp r3, #9 1d54e: f88d 2075 strb.w r2, [sp, #117] ; 0x75 1d552: dc55 bgt.n 1d600 <_svfprintf_r+0x10ec> 1d554: 3330 adds r3, #48 ; 0x30 1d556: f88d 3077 strb.w r3, [sp, #119] ; 0x77 1d55a: 2330 movs r3, #48 ; 0x30 1d55c: f88d 3076 strb.w r3, [sp, #118] ; 0x76 1d560: 2304 movs r3, #4 1d562: 9316 str r3, [sp, #88] ; 0x58 1d564: 9a12 ldr r2, [sp, #72] ; 0x48 1d566: 9b16 ldr r3, [sp, #88] ; 0x58 1d568: 2a01 cmp r2, #1 1d56a: 4413 add r3, r2 1d56c: 930a str r3, [sp, #40] ; 0x28 1d56e: f340 8121 ble.w 1d7b4 <_svfprintf_r+0x12a0> 1d572: 9b0a ldr r3, [sp, #40] ; 0x28 1d574: 9a14 ldr r2, [sp, #80] ; 0x50 1d576: 4413 add r3, r2 1d578: 930a str r3, [sp, #40] ; 0x28 1d57a: ea23 73e3 bic.w r3, r3, r3, asr #31 1d57e: 9307 str r3, [sp, #28] 1d580: 2300 movs r3, #0 1d582: 930f str r3, [sp, #60] ; 0x3c 1d584: e652 b.n 1d22c <_svfprintf_r+0xd18> 1d586: 465a mov r2, fp 1d588: 9d08 ldr r5, [sp, #32] 1d58a: 46b3 mov fp, r6 1d58c: 4616 mov r6, r2 1d58e: 3301 adds r3, #1 1d590: 443c add r4, r7 1d592: 2b07 cmp r3, #7 1d594: e9cd 3422 strd r3, r4, [sp, #136] ; 0x88 1d598: f8c9 6000 str.w r6, [r9] 1d59c: f8c9 7004 str.w r7, [r9, #4] 1d5a0: dc77 bgt.n 1d692 <_svfprintf_r+0x117e> 1d5a2: f109 0908 add.w r9, r9, #8 1d5a6: e4f8 b.n 1cf9a <_svfprintf_r+0xa86> 1d5a8: 212d movs r1, #45 ; 0x2d 1d5aa: f88d 1067 strb.w r1, [sp, #103] ; 0x67 1d5ae: f7ff b956 b.w 1c85e <_svfprintf_r+0x34a> 1d5b2: 980c ldr r0, [sp, #48] ; 0x30 1d5b4: aa21 add r2, sp, #132 ; 0x84 1d5b6: 4659 mov r1, fp 1d5b8: f000 f9f4 bl 1d9a4 <__ssprint_r> 1d5bc: 2800 cmp r0, #0 1d5be: f47f abce bne.w 1cd5e <_svfprintf_r+0x84a> 1d5c2: 9a1b ldr r2, [sp, #108] ; 0x6c 1d5c4: 9c23 ldr r4, [sp, #140] ; 0x8c 1d5c6: f10d 09b8 add.w r9, sp, #184 ; 0xb8 1d5ca: e4f9 b.n 1cfc0 <_svfprintf_r+0xaac> 1d5cc: 980c ldr r0, [sp, #48] ; 0x30 1d5ce: aa21 add r2, sp, #132 ; 0x84 1d5d0: 4659 mov r1, fp 1d5d2: f000 f9e7 bl 1d9a4 <__ssprint_r> 1d5d6: 2800 cmp r0, #0 1d5d8: f47f abc1 bne.w 1cd5e <_svfprintf_r+0x84a> 1d5dc: 991b ldr r1, [sp, #108] ; 0x6c 1d5de: 9c23 ldr r4, [sp, #140] ; 0x8c 1d5e0: f10d 09b8 add.w r9, sp, #184 ; 0xb8 1d5e4: e6b2 b.n 1d34c <_svfprintf_r+0xe38> 1d5e6: f103 4300 add.w r3, r3, #2147483648 ; 0x80000000 1d5ea: 9307 str r3, [sp, #28] 1d5ec: 232d movs r3, #45 ; 0x2d 1d5ee: 468a mov sl, r1 1d5f0: 930e str r3, [sp, #56] ; 0x38 1d5f2: e5dc b.n 1d1ae <_svfprintf_r+0xc9a> 1d5f4: 4633 mov r3, r6 1d5f6: e77b b.n 1d4f0 <_svfprintf_r+0xfdc> 1d5f8: f88d 0067 strb.w r0, [sp, #103] ; 0x67 1d5fc: f7ff b867 b.w 1c6ce <_svfprintf_r+0x1ba> 1d600: f10d 0683 add.w r6, sp, #131 ; 0x83 1d604: f8df c280 ldr.w ip, [pc, #640] ; 1d888 <_svfprintf_r+0x1374> 1d608: 4632 mov r2, r6 1d60a: 4610 mov r0, r2 1d60c: fb8c 2103 smull r2, r1, ip, r3 1d610: 17da asrs r2, r3, #31 1d612: ebc2 02a1 rsb r2, r2, r1, asr #2 1d616: eb02 0182 add.w r1, r2, r2, lsl #2 1d61a: eba3 0141 sub.w r1, r3, r1, lsl #1 1d61e: 3130 adds r1, #48 ; 0x30 1d620: f800 1c01 strb.w r1, [r0, #-1] 1d624: 4619 mov r1, r3 1d626: 2963 cmp r1, #99 ; 0x63 1d628: 4613 mov r3, r2 1d62a: f100 32ff add.w r2, r0, #4294967295 ; 0xffffffff 1d62e: dcec bgt.n 1d60a <_svfprintf_r+0x10f6> 1d630: 3330 adds r3, #48 ; 0x30 1d632: b2d9 uxtb r1, r3 1d634: 1e83 subs r3, r0, #2 1d636: 429e cmp r6, r3 1d638: f802 1c01 strb.w r1, [r2, #-1] 1d63c: f240 8116 bls.w 1d86c <_svfprintf_r+0x1358> 1d640: 4613 mov r3, r2 1d642: f10d 0276 add.w r2, sp, #118 ; 0x76 1d646: e001 b.n 1d64c <_svfprintf_r+0x1138> 1d648: f813 1b01 ldrb.w r1, [r3], #1 1d64c: f802 1b01 strb.w r1, [r2], #1 1d650: 429e cmp r6, r3 1d652: d1f9 bne.n 1d648 <_svfprintf_r+0x1134> 1d654: f10d 0385 add.w r3, sp, #133 ; 0x85 1d658: f10d 0276 add.w r2, sp, #118 ; 0x76 1d65c: 1a1b subs r3, r3, r0 1d65e: 4413 add r3, r2 1d660: aa1d add r2, sp, #116 ; 0x74 1d662: 1a9b subs r3, r3, r2 1d664: 9316 str r3, [sp, #88] ; 0x58 1d666: e77d b.n 1d564 <_svfprintf_r+0x1050> 1d668: 2b00 cmp r3, #0 1d66a: f040 80f4 bne.w 1d856 <_svfprintf_r+0x1342> 1d66e: 2301 movs r3, #1 1d670: 9307 str r3, [sp, #28] 1d672: 930a str r3, [sp, #40] ; 0x28 1d674: e5da b.n 1d22c <_svfprintf_r+0xd18> 1d676: 980c ldr r0, [sp, #48] ; 0x30 1d678: aa21 add r2, sp, #132 ; 0x84 1d67a: 4659 mov r1, fp 1d67c: f000 f992 bl 1d9a4 <__ssprint_r> 1d680: 2800 cmp r0, #0 1d682: f47f ab6c bne.w 1cd5e <_svfprintf_r+0x84a> 1d686: e9dd 3222 ldrd r3, r2, [sp, #136] ; 0x88 1d68a: 991b ldr r1, [sp, #108] ; 0x6c 1d68c: f10d 09b8 add.w r9, sp, #184 ; 0xb8 1d690: e6de b.n 1d450 <_svfprintf_r+0xf3c> 1d692: 980c ldr r0, [sp, #48] ; 0x30 1d694: aa21 add r2, sp, #132 ; 0x84 1d696: 4659 mov r1, fp 1d698: f000 f984 bl 1d9a4 <__ssprint_r> 1d69c: 2800 cmp r0, #0 1d69e: f47f ab5e bne.w 1cd5e <_svfprintf_r+0x84a> 1d6a2: 9c23 ldr r4, [sp, #140] ; 0x8c 1d6a4: f10d 09b8 add.w r9, sp, #184 ; 0xb8 1d6a8: e477 b.n 1cf9a <_svfprintf_r+0xa86> 1d6aa: 9c06 ldr r4, [sp, #24] 1d6ac: f7ff b90d b.w 1c8ca <_svfprintf_r+0x3b6> 1d6b0: 9908 ldr r1, [sp, #32] 1d6b2: 980c ldr r0, [sp, #48] ; 0x30 1d6b4: 1c4e adds r6, r1, #1 1d6b6: a91f add r1, sp, #124 ; 0x7c 1d6b8: 9104 str r1, [sp, #16] 1d6ba: a91c add r1, sp, #112 ; 0x70 1d6bc: 9103 str r1, [sp, #12] 1d6be: a91b add r1, sp, #108 ; 0x6c 1d6c0: 9102 str r1, [sp, #8] 1d6c2: 2102 movs r1, #2 1d6c4: 9601 str r6, [sp, #4] 1d6c6: 9100 str r1, [sp, #0] 1d6c8: f7fb fa12 bl 18af0 <_dtoa_r> 1d6cc: 4605 mov r5, r0 1d6ce: 2f47 cmp r7, #71 ; 0x47 1d6d0: f43f ad8a beq.w 1d1e8 <_svfprintf_r+0xcd4> 1d6d4: 442e add r6, r5 1d6d6: e6f8 b.n 1d4ca <_svfprintf_r+0xfb6> 1d6d8: 9b0e ldr r3, [sp, #56] ; 0x38 1d6da: f89d 1067 ldrb.w r1, [sp, #103] ; 0x67 1d6de: 9308 str r3, [sp, #32] 1d6e0: f7ff b8cb b.w 1c87a <_svfprintf_r+0x366> 1d6e4: 980c ldr r0, [sp, #48] ; 0x30 1d6e6: aa21 add r2, sp, #132 ; 0x84 1d6e8: 4659 mov r1, fp 1d6ea: f000 f95b bl 1d9a4 <__ssprint_r> 1d6ee: 2800 cmp r0, #0 1d6f0: f47f ab35 bne.w 1cd5e <_svfprintf_r+0x84a> 1d6f4: 9c23 ldr r4, [sp, #140] ; 0x8c 1d6f6: f10d 09b8 add.w r9, sp, #184 ; 0xb8 1d6fa: e447 b.n 1cf8c <_svfprintf_r+0xa78> 1d6fc: 2306 movs r3, #6 1d6fe: 9308 str r3, [sp, #32] 1d700: e547 b.n 1d192 <_svfprintf_r+0xc7e> 1d702: 980c ldr r0, [sp, #48] ; 0x30 1d704: aa21 add r2, sp, #132 ; 0x84 1d706: 4659 mov r1, fp 1d708: f000 f94c bl 1d9a4 <__ssprint_r> 1d70c: 2800 cmp r0, #0 1d70e: f47f ab26 bne.w 1cd5e <_svfprintf_r+0x84a> 1d712: 9a1b ldr r2, [sp, #108] ; 0x6c 1d714: 9b12 ldr r3, [sp, #72] ; 0x48 1d716: 9c23 ldr r4, [sp, #140] ; 0x8c 1d718: 1a9a subs r2, r3, r2 1d71a: f10d 09b8 add.w r9, sp, #184 ; 0xb8 1d71e: e467 b.n 1cff0 <_svfprintf_r+0xadc> 1d720: 9b08 ldr r3, [sp, #32] 1d722: f89d 1067 ldrb.w r1, [sp, #103] ; 0x67 1d726: 960d str r6, [sp, #52] ; 0x34 1d728: 9406 str r4, [sp, #24] 1d72a: 9307 str r3, [sp, #28] 1d72c: 930a str r3, [sp, #40] ; 0x28 1d72e: 9008 str r0, [sp, #32] 1d730: 900f str r0, [sp, #60] ; 0x3c 1d732: f7ff b8a2 b.w 1c87a <_svfprintf_r+0x366> 1d736: f88d 0067 strb.w r0, [sp, #103] ; 0x67 1d73a: f7ff b8f6 b.w 1c92a <_svfprintf_r+0x416> 1d73e: f88d 0067 strb.w r0, [sp, #103] ; 0x67 1d742: f7ff b9d8 b.w 1caf6 <_svfprintf_r+0x5e2> 1d746: 980c ldr r0, [sp, #48] ; 0x30 1d748: aa21 add r2, sp, #132 ; 0x84 1d74a: 4659 mov r1, fp 1d74c: f000 f92a bl 1d9a4 <__ssprint_r> 1d750: f7ff b848 b.w 1c7e4 <_svfprintf_r+0x2d0> 1d754: f88d 0067 strb.w r0, [sp, #103] ; 0x67 1d758: f7ff b91b b.w 1c992 <_svfprintf_r+0x47e> 1d75c: f88d 0067 strb.w r0, [sp, #103] ; 0x67 1d760: f7ff b852 b.w 1c808 <_svfprintf_r+0x2f4> 1d764: f88d 0067 strb.w r0, [sp, #103] ; 0x67 1d768: f7ff b893 b.w 1c892 <_svfprintf_r+0x37e> 1d76c: f88d 0067 strb.w r0, [sp, #103] ; 0x67 1d770: f7ff b956 b.w 1ca20 <_svfprintf_r+0x50c> 1d774: f88d 0067 strb.w r0, [sp, #103] ; 0x67 1d778: f7ff b962 b.w 1ca40 <_svfprintf_r+0x52c> 1d77c: f88d 0067 strb.w r0, [sp, #103] ; 0x67 1d780: f7ff b99a b.w 1cab8 <_svfprintf_r+0x5a4> 1d784: 3301 adds r3, #1 1d786: 443a add r2, r7 1d788: 2b07 cmp r3, #7 1d78a: e9cd 3222 strd r3, r2, [sp, #136] ; 0x88 1d78e: f8c9 6000 str.w r6, [r9] 1d792: f8c9 7004 str.w r7, [r9, #4] 1d796: f77f adee ble.w 1d376 <_svfprintf_r+0xe62> 1d79a: 980c ldr r0, [sp, #48] ; 0x30 1d79c: aa21 add r2, sp, #132 ; 0x84 1d79e: 4659 mov r1, fp 1d7a0: f000 f900 bl 1d9a4 <__ssprint_r> 1d7a4: 2800 cmp r0, #0 1d7a6: f47f aada bne.w 1cd5e <_svfprintf_r+0x84a> 1d7aa: e9dd 3222 ldrd r3, r2, [sp, #136] ; 0x88 1d7ae: f10d 09b8 add.w r9, sp, #184 ; 0xb8 1d7b2: e5e2 b.n 1d37a <_svfprintf_r+0xe66> 1d7b4: f014 0201 ands.w r2, r4, #1 1d7b8: 920f str r2, [sp, #60] ; 0x3c 1d7ba: f47f aeda bne.w 1d572 <_svfprintf_r+0x105e> 1d7be: ea23 73e3 bic.w r3, r3, r3, asr #31 1d7c2: 9307 str r3, [sp, #28] 1d7c4: e532 b.n 1d22c <_svfprintf_r+0xd18> 1d7c6: 9a14 ldr r2, [sp, #80] ; 0x50 1d7c8: 9b12 ldr r3, [sp, #72] ; 0x48 1d7ca: 4413 add r3, r2 1d7cc: 9a0f ldr r2, [sp, #60] ; 0x3c 1d7ce: 930a str r3, [sp, #40] ; 0x28 1d7d0: 2a00 cmp r2, #0 1d7d2: dd35 ble.n 1d840 <_svfprintf_r+0x132c> 1d7d4: ea23 73e3 bic.w r3, r3, r3, asr #31 1d7d8: 9307 str r3, [sp, #28] 1d7da: 2767 movs r7, #103 ; 0x67 1d7dc: e526 b.n 1d22c <_svfprintf_r+0xd18> 1d7de: 9907 ldr r1, [sp, #28] 1d7e0: 4650 mov r0, sl 1d7e2: 2200 movs r2, #0 1d7e4: 2300 movs r3, #0 1d7e6: f000 f9b5 bl 1db54 <__aeabi_dcmpeq> 1d7ea: 2800 cmp r0, #0 1d7ec: f47f ae6b bne.w 1d4c6 <_svfprintf_r+0xfb2> 1d7f0: 9b08 ldr r3, [sp, #32] 1d7f2: f1c3 0301 rsb r3, r3, #1 1d7f6: 931b str r3, [sp, #108] ; 0x6c 1d7f8: e666 b.n 1d4c8 <_svfprintf_r+0xfb4> 1d7fa: 9b11 ldr r3, [sp, #68] ; 0x44 1d7fc: 4d23 ldr r5, [pc, #140] ; (1d88c <_svfprintf_r+0x1378>) 1d7fe: 2b00 cmp r3, #0 1d800: bfb8 it lt 1d802: 212d movlt r1, #45 ; 0x2d 1d804: f024 0380 bic.w r3, r4, #128 ; 0x80 1d808: 9306 str r3, [sp, #24] 1d80a: bfa8 it ge 1d80c: f89d 1067 ldrbge.w r1, [sp, #103] ; 0x67 1d810: 4b1f ldr r3, [pc, #124] ; (1d890 <_svfprintf_r+0x137c>) 1d812: bfb8 it lt 1d814: f88d 1067 strblt.w r1, [sp, #103] ; 0x67 1d818: f7ff b826 b.w 1c868 <_svfprintf_r+0x354> 1d81c: 9a14 ldr r2, [sp, #80] ; 0x50 1d81e: 4413 add r3, r2 1d820: 930a str r3, [sp, #40] ; 0x28 1d822: ea23 73e3 bic.w r3, r3, r3, asr #31 1d826: 9307 str r3, [sp, #28] 1d828: 2767 movs r7, #103 ; 0x67 1d82a: e4ff b.n 1d22c <_svfprintf_r+0xd18> 1d82c: 9b0f ldr r3, [sp, #60] ; 0x3c 1d82e: 9a14 ldr r2, [sp, #80] ; 0x50 1d830: 4413 add r3, r2 1d832: 9a08 ldr r2, [sp, #32] 1d834: 441a add r2, r3 1d836: ea22 73e2 bic.w r3, r2, r2, asr #31 1d83a: 920a str r2, [sp, #40] ; 0x28 1d83c: 9307 str r3, [sp, #28] 1d83e: e4f5 b.n 1d22c <_svfprintf_r+0xd18> 1d840: 9b0f ldr r3, [sp, #60] ; 0x3c 1d842: 9a0a ldr r2, [sp, #40] ; 0x28 1d844: f1c3 0301 rsb r3, r3, #1 1d848: 441a add r2, r3 1d84a: ea22 73e2 bic.w r3, r2, r2, asr #31 1d84e: 920a str r2, [sp, #40] ; 0x28 1d850: 9307 str r3, [sp, #28] 1d852: 2767 movs r7, #103 ; 0x67 1d854: e4ea b.n 1d22c <_svfprintf_r+0xd18> 1d856: 9b14 ldr r3, [sp, #80] ; 0x50 1d858: 3301 adds r3, #1 1d85a: e7ea b.n 1d832 <_svfprintf_r+0x131e> 1d85c: 9a0d ldr r2, [sp, #52] ; 0x34 1d85e: f852 5b04 ldr.w r5, [r2], #4 1d862: 920d str r2, [sp, #52] ; 0x34 1d864: ea45 75e5 orr.w r5, r5, r5, asr #31 1d868: f7fe be9b b.w 1c5a2 <_svfprintf_r+0x8e> 1d86c: 2302 movs r3, #2 1d86e: 9316 str r3, [sp, #88] ; 0x58 1d870: e678 b.n 1d564 <_svfprintf_r+0x1050> 1d872: 9e08 ldr r6, [sp, #32] 1d874: e72b b.n 1d6ce <_svfprintf_r+0x11ba> 1d876: 9a0c ldr r2, [sp, #48] ; 0x30 1d878: 230c movs r3, #12 1d87a: 6013 str r3, [r2, #0] 1d87c: f04f 33ff mov.w r3, #4294967295 ; 0xffffffff 1d880: 9309 str r3, [sp, #36] ; 0x24 1d882: f7fe bfb8 b.w 1c7f6 <_svfprintf_r+0x2e2> 1d886: bf00 nop 1d888: 66666667 .word 0x66666667 1d88c: 0002c044 .word 0x0002c044 1d890: 0002c048 .word 0x0002c048 0001d894 <__swbuf_r>: 1d894: b5f8 push {r3, r4, r5, r6, r7, lr} 1d896: 460d mov r5, r1 1d898: 4614 mov r4, r2 1d89a: 4606 mov r6, r0 1d89c: b110 cbz r0, 1d8a4 <__swbuf_r+0x10> 1d89e: 6b83 ldr r3, [r0, #56] ; 0x38 1d8a0: 2b00 cmp r3, #0 1d8a2: d043 beq.n 1d92c <__swbuf_r+0x98> 1d8a4: f9b4 200c ldrsh.w r2, [r4, #12] 1d8a8: 69a3 ldr r3, [r4, #24] 1d8aa: 60a3 str r3, [r4, #8] 1d8ac: 0717 lsls r7, r2, #28 1d8ae: b290 uxth r0, r2 1d8b0: d51b bpl.n 1d8ea <__swbuf_r+0x56> 1d8b2: 6923 ldr r3, [r4, #16] 1d8b4: b1cb cbz r3, 1d8ea <__swbuf_r+0x56> 1d8b6: b2ed uxtb r5, r5 1d8b8: 0481 lsls r1, r0, #18 1d8ba: 462f mov r7, r5 1d8bc: d522 bpl.n 1d904 <__swbuf_r+0x70> 1d8be: 6822 ldr r2, [r4, #0] 1d8c0: 6961 ldr r1, [r4, #20] 1d8c2: 1ad3 subs r3, r2, r3 1d8c4: 4299 cmp r1, r3 1d8c6: dd29 ble.n 1d91c <__swbuf_r+0x88> 1d8c8: 3301 adds r3, #1 1d8ca: 68a1 ldr r1, [r4, #8] 1d8cc: 3901 subs r1, #1 1d8ce: 60a1 str r1, [r4, #8] 1d8d0: 1c51 adds r1, r2, #1 1d8d2: 6021 str r1, [r4, #0] 1d8d4: 7015 strb r5, [r2, #0] 1d8d6: 6962 ldr r2, [r4, #20] 1d8d8: 429a cmp r2, r3 1d8da: d02a beq.n 1d932 <__swbuf_r+0x9e> 1d8dc: 89a3 ldrh r3, [r4, #12] 1d8de: 07db lsls r3, r3, #31 1d8e0: d501 bpl.n 1d8e6 <__swbuf_r+0x52> 1d8e2: 2d0a cmp r5, #10 1d8e4: d025 beq.n 1d932 <__swbuf_r+0x9e> 1d8e6: 4638 mov r0, r7 1d8e8: bdf8 pop {r3, r4, r5, r6, r7, pc} 1d8ea: 4621 mov r1, r4 1d8ec: 4630 mov r0, r6 1d8ee: f7fa ffe1 bl 188b4 <__swsetup_r> 1d8f2: bb20 cbnz r0, 1d93e <__swbuf_r+0xaa> 1d8f4: f9b4 200c ldrsh.w r2, [r4, #12] 1d8f8: 6923 ldr r3, [r4, #16] 1d8fa: b290 uxth r0, r2 1d8fc: b2ed uxtb r5, r5 1d8fe: 0481 lsls r1, r0, #18 1d900: 462f mov r7, r5 1d902: d4dc bmi.n 1d8be <__swbuf_r+0x2a> 1d904: f442 5200 orr.w r2, r2, #8192 ; 0x2000 1d908: 81a2 strh r2, [r4, #12] 1d90a: 6e22 ldr r2, [r4, #96] ; 0x60 1d90c: 6961 ldr r1, [r4, #20] 1d90e: f422 5200 bic.w r2, r2, #8192 ; 0x2000 1d912: 6622 str r2, [r4, #96] ; 0x60 1d914: 6822 ldr r2, [r4, #0] 1d916: 1ad3 subs r3, r2, r3 1d918: 4299 cmp r1, r3 1d91a: dcd5 bgt.n 1d8c8 <__swbuf_r+0x34> 1d91c: 4621 mov r1, r4 1d91e: 4630 mov r0, r6 1d920: f7fc f8cc bl 19abc <_fflush_r> 1d924: b958 cbnz r0, 1d93e <__swbuf_r+0xaa> 1d926: 6822 ldr r2, [r4, #0] 1d928: 2301 movs r3, #1 1d92a: e7ce b.n 1d8ca <__swbuf_r+0x36> 1d92c: f7fc f94e bl 19bcc <__sinit> 1d930: e7b8 b.n 1d8a4 <__swbuf_r+0x10> 1d932: 4621 mov r1, r4 1d934: 4630 mov r0, r6 1d936: f7fc f8c1 bl 19abc <_fflush_r> 1d93a: 2800 cmp r0, #0 1d93c: d0d3 beq.n 1d8e6 <__swbuf_r+0x52> 1d93e: f04f 37ff mov.w r7, #4294967295 ; 0xffffffff 1d942: e7d0 b.n 1d8e6 <__swbuf_r+0x52> 0001d944 <_wcrtomb_r>: 1d944: b570 push {r4, r5, r6, lr} 1d946: 4d0b ldr r5, [pc, #44] ; (1d974 <_wcrtomb_r+0x30>) 1d948: b084 sub sp, #16 1d94a: f8d5 50e0 ldr.w r5, [r5, #224] ; 0xe0 1d94e: 4604 mov r4, r0 1d950: 461e mov r6, r3 1d952: b121 cbz r1, 1d95e <_wcrtomb_r+0x1a> 1d954: 47a8 blx r5 1d956: 1c43 adds r3, r0, #1 1d958: d006 beq.n 1d968 <_wcrtomb_r+0x24> 1d95a: b004 add sp, #16 1d95c: bd70 pop {r4, r5, r6, pc} 1d95e: 460a mov r2, r1 1d960: a901 add r1, sp, #4 1d962: 47a8 blx r5 1d964: 1c43 adds r3, r0, #1 1d966: d1f8 bne.n 1d95a <_wcrtomb_r+0x16> 1d968: 2200 movs r2, #0 1d96a: 238a movs r3, #138 ; 0x8a 1d96c: 6032 str r2, [r6, #0] 1d96e: 6023 str r3, [r4, #0] 1d970: b004 add sp, #16 1d972: bd70 pop {r4, r5, r6, pc} 1d974: 20000898 .word 0x20000898 0001d978 <__ascii_wctomb>: 1d978: b149 cbz r1, 1d98e <__ascii_wctomb+0x16> 1d97a: 2aff cmp r2, #255 ; 0xff 1d97c: d802 bhi.n 1d984 <__ascii_wctomb+0xc> 1d97e: 700a strb r2, [r1, #0] 1d980: 2001 movs r0, #1 1d982: 4770 bx lr 1d984: 238a movs r3, #138 ; 0x8a 1d986: 6003 str r3, [r0, #0] 1d988: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff 1d98c: 4770 bx lr 1d98e: 4608 mov r0, r1 1d990: 4770 bx lr 1d992: bf00 nop 0001d994 : 1d994: b508 push {r3, lr} 1d996: 2006 movs r0, #6 1d998: f7fd f9c6 bl 1ad28 1d99c: 2001 movs r0, #1 1d99e: f7e2 fcf9 bl 394 <_exit> 1d9a2: bf00 nop 0001d9a4 <__ssprint_r>: 1d9a4: e92d 4ff0 stmdb sp!, {r4, r5, r6, r7, r8, r9, sl, fp, lr} 1d9a8: 6893 ldr r3, [r2, #8] 1d9aa: 6816 ldr r6, [r2, #0] 1d9ac: b083 sub sp, #12 1d9ae: 4692 mov sl, r2 1d9b0: 2b00 cmp r3, #0 1d9b2: d071 beq.n 1da98 <__ssprint_r+0xf4> 1d9b4: 688b ldr r3, [r1, #8] 1d9b6: 680a ldr r2, [r1, #0] 1d9b8: 4681 mov r9, r0 1d9ba: 460c mov r4, r1 1d9bc: 3608 adds r6, #8 1d9be: e043 b.n 1da48 <__ssprint_r+0xa4> 1d9c0: 89a3 ldrh r3, [r4, #12] 1d9c2: f413 6f90 tst.w r3, #1152 ; 0x480 1d9c6: d02d beq.n 1da24 <__ssprint_r+0x80> 1d9c8: e9d4 1004 ldrd r1, r0, [r4, #16] 1d9cc: 1a57 subs r7, r2, r1 1d9ce: eb00 0840 add.w r8, r0, r0, lsl #1 1d9d2: eb08 78d8 add.w r8, r8, r8, lsr #31 1d9d6: 1c78 adds r0, r7, #1 1d9d8: ea4f 0868 mov.w r8, r8, asr #1 1d9dc: 4428 add r0, r5 1d9de: 4540 cmp r0, r8 1d9e0: 4642 mov r2, r8 1d9e2: bf84 itt hi 1d9e4: 4680 movhi r8, r0 1d9e6: 4642 movhi r2, r8 1d9e8: 055b lsls r3, r3, #21 1d9ea: d539 bpl.n 1da60 <__ssprint_r+0xbc> 1d9ec: 4611 mov r1, r2 1d9ee: 4648 mov r0, r9 1d9f0: f7fc fad6 bl 19fa0 <_malloc_r> 1d9f4: 9001 str r0, [sp, #4] 1d9f6: 2800 cmp r0, #0 1d9f8: d03c beq.n 1da74 <__ssprint_r+0xd0> 1d9fa: 463a mov r2, r7 1d9fc: 6921 ldr r1, [r4, #16] 1d9fe: f7f9 f965 bl 16ccc 1da02: 89a2 ldrh r2, [r4, #12] 1da04: 9b01 ldr r3, [sp, #4] 1da06: f422 6290 bic.w r2, r2, #1152 ; 0x480 1da0a: f042 0280 orr.w r2, r2, #128 ; 0x80 1da0e: 81a2 strh r2, [r4, #12] 1da10: 19d8 adds r0, r3, r7 1da12: eba8 0707 sub.w r7, r8, r7 1da16: 60a7 str r7, [r4, #8] 1da18: f8c4 8014 str.w r8, [r4, #20] 1da1c: 6123 str r3, [r4, #16] 1da1e: 6020 str r0, [r4, #0] 1da20: 46a8 mov r8, r5 1da22: 462f mov r7, r5 1da24: 463a mov r2, r7 1da26: 4659 mov r1, fp 1da28: f7f9 f9ea bl 16e00 1da2c: f8da 1008 ldr.w r1, [sl, #8] 1da30: 68a3 ldr r3, [r4, #8] 1da32: 6822 ldr r2, [r4, #0] 1da34: eba3 0308 sub.w r3, r3, r8 1da38: 443a add r2, r7 1da3a: 1b49 subs r1, r1, r5 1da3c: 60a3 str r3, [r4, #8] 1da3e: 6022 str r2, [r4, #0] 1da40: f8ca 1008 str.w r1, [sl, #8] 1da44: b341 cbz r1, 1da98 <__ssprint_r+0xf4> 1da46: 3608 adds r6, #8 1da48: e956 b502 ldrd fp, r5, [r6, #-8] 1da4c: 4698 mov r8, r3 1da4e: 461f mov r7, r3 1da50: 4610 mov r0, r2 1da52: 2d00 cmp r5, #0 1da54: d0f7 beq.n 1da46 <__ssprint_r+0xa2> 1da56: 42ab cmp r3, r5 1da58: d9b2 bls.n 1d9c0 <__ssprint_r+0x1c> 1da5a: 46a8 mov r8, r5 1da5c: 462f mov r7, r5 1da5e: e7e1 b.n 1da24 <__ssprint_r+0x80> 1da60: 4648 mov r0, r9 1da62: f7fe fb6b bl 1c13c <_realloc_r> 1da66: 4603 mov r3, r0 1da68: 2800 cmp r0, #0 1da6a: d1d1 bne.n 1da10 <__ssprint_r+0x6c> 1da6c: 6921 ldr r1, [r4, #16] 1da6e: 4648 mov r0, r9 1da70: f7fc f902 bl 19c78 <_free_r> 1da74: 89a3 ldrh r3, [r4, #12] 1da76: 220c movs r2, #12 1da78: f043 0340 orr.w r3, r3, #64 ; 0x40 1da7c: f8c9 2000 str.w r2, [r9] 1da80: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff 1da84: 81a3 strh r3, [r4, #12] 1da86: 2200 movs r2, #0 1da88: 2300 movs r3, #0 1da8a: f8ca 2008 str.w r2, [sl, #8] 1da8e: f8ca 3004 str.w r3, [sl, #4] 1da92: b003 add sp, #12 1da94: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} 1da98: 2000 movs r0, #0 1da9a: 2300 movs r3, #0 1da9c: f8ca 3004 str.w r3, [sl, #4] 1daa0: b003 add sp, #12 1daa2: e8bd 8ff0 ldmia.w sp!, {r4, r5, r6, r7, r8, r9, sl, fp, pc} 1daa6: bf00 nop 0001daa8 <__gedf2>: 1daa8: f04f 3cff mov.w ip, #4294967295 ; 0xffffffff 1daac: e006 b.n 1dabc <__cmpdf2+0x4> 1daae: bf00 nop 0001dab0 <__ledf2>: 1dab0: f04f 0c01 mov.w ip, #1 1dab4: e002 b.n 1dabc <__cmpdf2+0x4> 1dab6: bf00 nop 0001dab8 <__cmpdf2>: 1dab8: f04f 0c01 mov.w ip, #1 1dabc: f84d cd04 str.w ip, [sp, #-4]! 1dac0: ea4f 0c41 mov.w ip, r1, lsl #1 1dac4: ea7f 5c6c mvns.w ip, ip, asr #21 1dac8: ea4f 0c43 mov.w ip, r3, lsl #1 1dacc: bf18 it ne 1dace: ea7f 5c6c mvnsne.w ip, ip, asr #21 1dad2: d01b beq.n 1db0c <__cmpdf2+0x54> 1dad4: b001 add sp, #4 1dad6: ea50 0c41 orrs.w ip, r0, r1, lsl #1 1dada: bf0c ite eq 1dadc: ea52 0c43 orrseq.w ip, r2, r3, lsl #1 1dae0: ea91 0f03 teqne r1, r3 1dae4: bf02 ittt eq 1dae6: ea90 0f02 teqeq r0, r2 1daea: 2000 moveq r0, #0 1daec: 4770 bxeq lr 1daee: f110 0f00 cmn.w r0, #0 1daf2: ea91 0f03 teq r1, r3 1daf6: bf58 it pl 1daf8: 4299 cmppl r1, r3 1dafa: bf08 it eq 1dafc: 4290 cmpeq r0, r2 1dafe: bf2c ite cs 1db00: 17d8 asrcs r0, r3, #31 1db02: ea6f 70e3 mvncc.w r0, r3, asr #31 1db06: f040 0001 orr.w r0, r0, #1 1db0a: 4770 bx lr 1db0c: ea4f 0c41 mov.w ip, r1, lsl #1 1db10: ea7f 5c6c mvns.w ip, ip, asr #21 1db14: d102 bne.n 1db1c <__cmpdf2+0x64> 1db16: ea50 3c01 orrs.w ip, r0, r1, lsl #12 1db1a: d107 bne.n 1db2c <__cmpdf2+0x74> 1db1c: ea4f 0c43 mov.w ip, r3, lsl #1 1db20: ea7f 5c6c mvns.w ip, ip, asr #21 1db24: d1d6 bne.n 1dad4 <__cmpdf2+0x1c> 1db26: ea52 3c03 orrs.w ip, r2, r3, lsl #12 1db2a: d0d3 beq.n 1dad4 <__cmpdf2+0x1c> 1db2c: f85d 0b04 ldr.w r0, [sp], #4 1db30: 4770 bx lr 1db32: bf00 nop 0001db34 <__aeabi_cdrcmple>: 1db34: 4684 mov ip, r0 1db36: 4610 mov r0, r2 1db38: 4662 mov r2, ip 1db3a: 468c mov ip, r1 1db3c: 4619 mov r1, r3 1db3e: 4663 mov r3, ip 1db40: e000 b.n 1db44 <__aeabi_cdcmpeq> 1db42: bf00 nop 0001db44 <__aeabi_cdcmpeq>: 1db44: b501 push {r0, lr} 1db46: f7ff ffb7 bl 1dab8 <__cmpdf2> 1db4a: 2800 cmp r0, #0 1db4c: bf48 it mi 1db4e: f110 0f00 cmnmi.w r0, #0 1db52: bd01 pop {r0, pc} 0001db54 <__aeabi_dcmpeq>: 1db54: f84d ed08 str.w lr, [sp, #-8]! 1db58: f7ff fff4 bl 1db44 <__aeabi_cdcmpeq> 1db5c: bf0c ite eq 1db5e: 2001 moveq r0, #1 1db60: 2000 movne r0, #0 1db62: f85d fb08 ldr.w pc, [sp], #8 1db66: bf00 nop 0001db68 <__aeabi_dcmplt>: 1db68: f84d ed08 str.w lr, [sp, #-8]! 1db6c: f7ff ffea bl 1db44 <__aeabi_cdcmpeq> 1db70: bf34 ite cc 1db72: 2001 movcc r0, #1 1db74: 2000 movcs r0, #0 1db76: f85d fb08 ldr.w pc, [sp], #8 1db7a: bf00 nop 0001db7c <__aeabi_dcmple>: 1db7c: f84d ed08 str.w lr, [sp, #-8]! 1db80: f7ff ffe0 bl 1db44 <__aeabi_cdcmpeq> 1db84: bf94 ite ls 1db86: 2001 movls r0, #1 1db88: 2000 movhi r0, #0 1db8a: f85d fb08 ldr.w pc, [sp], #8 1db8e: bf00 nop 0001db90 <__aeabi_dcmpge>: 1db90: f84d ed08 str.w lr, [sp, #-8]! 1db94: f7ff ffce bl 1db34 <__aeabi_cdrcmple> 1db98: bf94 ite ls 1db9a: 2001 movls r0, #1 1db9c: 2000 movhi r0, #0 1db9e: f85d fb08 ldr.w pc, [sp], #8 1dba2: bf00 nop 0001dba4 <__aeabi_dcmpgt>: 1dba4: f84d ed08 str.w lr, [sp, #-8]! 1dba8: f7ff ffc4 bl 1db34 <__aeabi_cdrcmple> 1dbac: bf34 ite cc 1dbae: 2001 movcc r0, #1 1dbb0: 2000 movcs r0, #0 1dbb2: f85d fb08 ldr.w pc, [sp], #8 1dbb6: bf00 nop 0001dbb8 <__aeabi_dcmpun>: 1dbb8: ea4f 0c41 mov.w ip, r1, lsl #1 1dbbc: ea7f 5c6c mvns.w ip, ip, asr #21 1dbc0: d102 bne.n 1dbc8 <__aeabi_dcmpun+0x10> 1dbc2: ea50 3c01 orrs.w ip, r0, r1, lsl #12 1dbc6: d10a bne.n 1dbde <__aeabi_dcmpun+0x26> 1dbc8: ea4f 0c43 mov.w ip, r3, lsl #1 1dbcc: ea7f 5c6c mvns.w ip, ip, asr #21 1dbd0: d102 bne.n 1dbd8 <__aeabi_dcmpun+0x20> 1dbd2: ea52 3c03 orrs.w ip, r2, r3, lsl #12 1dbd6: d102 bne.n 1dbde <__aeabi_dcmpun+0x26> 1dbd8: f04f 0000 mov.w r0, #0 1dbdc: 4770 bx lr 1dbde: f04f 0001 mov.w r0, #1 1dbe2: 4770 bx lr 0001dbe4 <__aeabi_d2iz>: 1dbe4: ea4f 0241 mov.w r2, r1, lsl #1 1dbe8: f512 1200 adds.w r2, r2, #2097152 ; 0x200000 1dbec: d215 bcs.n 1dc1a <__aeabi_d2iz+0x36> 1dbee: d511 bpl.n 1dc14 <__aeabi_d2iz+0x30> 1dbf0: f46f 7378 mvn.w r3, #992 ; 0x3e0 1dbf4: ebb3 5262 subs.w r2, r3, r2, asr #21 1dbf8: d912 bls.n 1dc20 <__aeabi_d2iz+0x3c> 1dbfa: ea4f 23c1 mov.w r3, r1, lsl #11 1dbfe: f043 4300 orr.w r3, r3, #2147483648 ; 0x80000000 1dc02: ea43 5350 orr.w r3, r3, r0, lsr #21 1dc06: f011 4f00 tst.w r1, #2147483648 ; 0x80000000 1dc0a: fa23 f002 lsr.w r0, r3, r2 1dc0e: bf18 it ne 1dc10: 4240 negne r0, r0 1dc12: 4770 bx lr 1dc14: f04f 0000 mov.w r0, #0 1dc18: 4770 bx lr 1dc1a: ea50 3001 orrs.w r0, r0, r1, lsl #12 1dc1e: d105 bne.n 1dc2c <__aeabi_d2iz+0x48> 1dc20: f011 4000 ands.w r0, r1, #2147483648 ; 0x80000000 1dc24: bf08 it eq 1dc26: f06f 4000 mvneq.w r0, #2147483648 ; 0x80000000 1dc2a: 4770 bx lr 1dc2c: f04f 0000 mov.w r0, #0 1dc30: 4770 bx lr 1dc32: bf00 nop 0001dc34 <_read>: 1dc34: 4b02 ldr r3, [pc, #8] ; (1dc40 <_read+0xc>) 1dc36: 2258 movs r2, #88 ; 0x58 1dc38: 601a str r2, [r3, #0] 1dc3a: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff 1dc3e: 4770 bx lr 1dc40: 2000d1d0 .word 0x2000d1d0 0001dc44 <_write>: 1dc44: 4b02 ldr r3, [pc, #8] ; (1dc50 <_write+0xc>) 1dc46: 2258 movs r2, #88 ; 0x58 1dc48: 601a str r2, [r3, #0] 1dc4a: f04f 30ff mov.w r0, #4294967295 ; 0xffffffff 1dc4e: 4770 bx lr 1dc50: 2000d1d0 .word 0x2000d1d0 1dc54: 682f2e2e .word 0x682f2e2e 1dc58: 732f6c61 .word 0x732f6c61 1dc5c: 682f6372 .word 0x682f6372 1dc60: 695f6c61 .word 0x695f6c61 1dc64: 00632e6f .word 0x00632e6f 1dc68: 74697845 .word 0x74697845 1dc6c: 20676e69 .word 0x20676e69 1dc70: 68746977 .word 0x68746977 1dc74: 61747320 .word 0x61747320 1dc78: 20737574 .word 0x20737574 1dc7c: 0a2e6425 .word 0x0a2e6425 1dc80: 00 .byte 0x00 1dc81: 2e .byte 0x2e 1dc82: 2f2e .short 0x2f2e 1dc84: 2f6c6168 .word 0x2f6c6168 1dc88: 2f637273 .word 0x2f637273 1dc8c: 5f6c6168 .word 0x5f6c6168 1dc90: 656d6974 .word 0x656d6974 1dc94: 00632e72 .word 0x00632e72 1dc98: 682f2e2e .word 0x682f2e2e 1dc9c: 752f6c61 .word 0x752f6c61 1dca0: 736c6974 .word 0x736c6974 1dca4: 6372732f .word 0x6372732f 1dca8: 6974752f .word 0x6974752f 1dcac: 6c5f736c .word 0x6c5f736c 1dcb0: 2e747369 .word 0x2e747369 1dcb4: 0063 .short 0x0063 1dcb6: 2e2e .short 0x2e2e 1dcb8: 6c70682f .word 0x6c70682f 1dcbc: 7265732f .word 0x7265732f 1dcc0: 2f6d6f63 .word 0x2f6d6f63 1dcc4: 5f6c7068 .word 0x5f6c7068 1dcc8: 63726573 .word 0x63726573 1dccc: 632e6d6f .word 0x632e6d6f 1dcd0: 00000000 .word 0x00000000 1dcd4: 40003000 .word 0x40003000 1dcd8: 40003400 .word 0x40003400 1dcdc: 41012000 .word 0x41012000 1dce0: 41014000 .word 0x41014000 1dce4: 43000000 .word 0x43000000 1dce8: 43000400 .word 0x43000400 1dcec: 43000800 .word 0x43000800 1dcf0: 43000c00 .word 0x43000c00 0001dcf4 <_i2cms>: 1dcf4: 00000003 00200014 00000100 000000ff ...... ......... 1dd04: 00d70000 07270400 ......'. 0001dd0c : ... 1dd1c: 2f2e2e00 2f6c6168 2f637273 5f6c6168 .../hal/src/hal_ 1dd2c: 72617375 73615f74 2e636e79 2e2e0063 usart_async.c... 1dd3c: 6c61682f 6974752f 732f736c 752f6372 /hal/utils/src/u 1dd4c: 736c6974 6e69725f 66756267 2e726566 tils_ringbuffer. 1dd5c: 2e2e0063 6c70682f 2f63742f 5f6c7068 c.../hpl/tc/hpl_ 1dd6c: 632e6374 00000000 40003800 40003c00 tc.c.....8.@.<.@ 1dd7c: 4101a000 4101c000 42001400 42001800 ...A...A...B...B 1dd8c: 43001400 43001800 ...C...C 0001dd94 <_tcs>: 1dd94: 006b0000 00000308 00000000 00003a97 ..k..........:.. 1dda4: 00000000 682f2e2e 702f6c70 2f74726f ....../hpl/port/ 1ddb4: 5f6c7068 6f697067 7361625f 00682e65 hpl_gpio_base.h. 1ddc4: 454e4f4e 3a303000 303a3030 30303a30 NONE.00:00:00:00 1ddd4: 4c5b0030 5d4c4756 5d73255b 5d73255b 0.[LVGL][%s][%s] 1dde4: 5d73255b 5d64255b 092d2d20 0a0d7325 [%s][%d] --.%s.. 1ddf4: 41525400 49004543 004f464e 4e524157 .TRACE.INFO.WARN 1de04: 52524500 0000524f .ERROR.. 0001de0c : 1de0c: 0001ddf5 0001ddfb 0001de00 0001de05 ................ 1de1c: 6c6c6548 6f57206f 00646c72 Hello World. 0001de28 : 1de28: 1662e40a 0000855b 0001de34 ..b.[...4... 0001de34 : 1de34: ff07060b ffac882c ff871f25 ff895139 ....,...%...9Q.. 1de44: ffdcc46d ffc88348 ffc65632 ff46434d m...H...2V..MCF. 1de54: ff480a16 ffbca25c ffc22d38 ff8b6c67 ..H.\...8-..gl.. 1de64: ff48272d ff893622 ffc76d41 ffc38576 -'H."6..Am..v... 1de74: ffc6a49a ffa53520 ff692621 ffa95139 .... 5..!&i.9Q.. 1de84: ffe8e2a9 ff26242e ffe96e40 ffe98843 .....$&.@n..C... 1de94: ffaea64b ff873848 ffc5c4c9 ffa86e33 K...H8......3n.. 1dea4: ff69646a ffe45640 ff69342e ff280917 jdi.@V...4i...(. 1deb4: ffa8554e ffe7a996 ff838383 ff67101b NU............g. 1dec4: ff9e8880 ffc76e60 ffe7a65f ffe99647 ....`n.._...G... 1ded4: ffe68779 ffa9202e ff694527 ff8a4335 y.... ..'Ei.5C.. 1dee4: ffa76f64 ff493329 ffc0b5af ff89575f do..)3I....._W.. 1def4: ffc75543 ffa9462d ff9f9789 ffab603f CU..-F......?`.. 1df04: ff882c1d ffc97948 ff27151b ffc69482 .,..Hy....'..... 1df14: ff69282f ffe6b669 ffdfd484 ff48151b /(i.i.........H. 1df24: ffc89364 ffe66e5b ffc14715 ffe4c4bc d...[n...G...... 1df34: ff98371e ffc66343 ffe1e4e8 ff73542a .7..Cc......*Ts. 1df44: ff673a3e ffb7532b ff872b32 ffe68a60 >:g.+S..2+..`... 1df54: ff19141e ffd68448 ff38373f ffea9964 ....H...?78.d... 1df64: ffd69881 ff875f47 ff592621 ff37161a ....G_..!&Y...7. 1df74: ffe65550 ff886e77 ffd8a894 ffa97a73 PU..wn......sz.. 1df84: ff571922 ffeba872 fff6f3de ffa3a59e ".W.r........... 1df94: ffe03d49 ff671c24 ffa28c94 ffa86254 I=..$.g.....Tb.. 1dfa4: ffecc483 ffd76e48 ffa9473f ffa93a38 ....Hn..?G..8:.. 1dfb4: ffd5d4d6 ffa77937 ffe76254 ff595861 ....7y..Tb..aXY. 1dfc4: ff884648 ffd6b4a7 ffb0999a ff9b5036 HF..........6P.. 1dfd4: ff782620 ff392328 ffb3b5b4 ffe77a45 &x.(#9.....Ez.. 1dfe4: ffe8b596 ff593331 ffd87a46 ffc19aa2 ....13Y.Fz...... 1dff4: ff160c16 ffb1887e ff886263 ff797679 ....~...cb..yvy. 1e004: ff762930 ffc13d43 ff973c30 ff79362d 0)v.C=..0<..-6y. 1e014: ff67474c ff994530 ffbfb560 fff7975f LGg.0E..`..._... 1e024: ffd7624b ffc9875c ff952d18 ffe87959 Kb..\....-..Yy.. 1e034: ffc04945 ff94968f ff9c9729 ffebddae EI......)....... 1e044: ffc0aa64 ffe99a78 fff3ead1 ffc56232 d...x.......2b.. 1e054: ffd8343e ff685a61 ffda9842 fff1643e >4..aZh.B...>d.. 1e064: ff928678 ffd8b859 ffc67a62 ffe4dcdd x...Y...bz...... 1e074: ff867c7c ff574a54 ffdaa94f ffd58a7b ||..TJW.O...{... 1e084: ffafa9a4 ffd9a57b ffd6cdcd ff766b6f ....{.......okv. 1e094: ffecd27c fff7b894 ffa99931 ff84766c |.......1...lv.. 1e0a4: ffe1cb82 ffd85019 fff5b57b ffb96d49 .....P..{...Im.. 1e0b4: ffbb7947 ffac2b34 ffd7895e ffa48654 Gy..4+..^...T... 1e0c4: ff972129 ff570c18 ffc3aaaf ffede6bf )!....W......... 1e0d4: ffacac64 ff370815 fff9a55c ff7b4432 d.....7.\...2D{. 1e0e4: ffc1bcbf fff69b7e ff78575a ffb76e5f ....~...ZWx._n.. 1e0f4: ff99614b ffb97a64 ff771a22 ff994747 Ka..dz..".w.GG.. 1e104: ff986266 fff68745 fff6a996 ff77121c fb..E.........w. 1e114: fff7964c ffd8544a fffbc7b6 ff783a40 L...JT......@:x. 1e124: fffa875f fff5a67a ffae8b97 ff78484a _...z.......JHx. 1e134: fff8d7bb fffbfaf8 fff2c89a ffeeebeb ................ 1e144: fffb6e49 ffb7624f fffb6459 ffd97965 In..Ob..Yd..ey.. 1e154: ff883930 ff973747 ff483942 ff291825 09..G7..B9H.%.). 1e164: ffe4da9b ff481725 ffd79d99 ff381825 ....%.H.....%.8. 1e174: fff75652 ff995249 ffe5bcb4 ff5a373e RV..IR......>7Z. 1e184: ff98944c ffd99566 fffcd2d4 ffb7584e L...f.......NX.. 1e194: ff97595d ffc3343f ffdc494b ff95786b ]Y..?4..KI..kx.. 1e1a4: ffb9613b ff982931 fff97a43 ffd03c46 ;a..1)..Cz..F<.. 1e1b4: fffb785b ff997b7b ffa63c23 ffc79d8b [x..{{..#<...... 1e1c4: ffdadbdf ff885350 ff9f9b96 ffeab97a ....PS......z... 1e1d4: ffb7553a ff572a2f ffd7aba7 ffd9babb :U../*W......... 1e1e4: ff382938 ff8e8b89 ffdbbb69 ffecd7a1 8)8.....i....... 1e1f4: fff8b8ab ff966f68 ffab6c51 ffd86f5d ....ho..Ql..]o.. 1e204: fffb6e5b ff997077 ffd56331 ffd14848 [n..wp..1c..HH.. 1e214: fffc5a44 ffdccc73 ff4b4b54 ffc38c7a DZ..s...TKK.z... 1e224: ffc6ac9f ff2b2c37 ffcbcbcf ff6b6b6f ....7,+.....okk. 1e234: 70707070 70707070 70707070 70704870 pppppppppppppHpp 1e244: 48487070 36363648 e90c69cb 7744442d ppHHH666.i..-DDw 1e254: 771212e9 133179c8 c8763113 133179c8 ...w.y1..1v..y1. 1e264: e2e23131 407e40e2 40e2e2e2 25c531e2 11...@~@...@.1.% 1e274: 30c785a2 0d76b35e 46464646 404040dd ...0^.v.FFFF.@@@ 1e284: d1135e5f 5f762bb3 c876765f 9ca240c8 _^...+v__vv..@.. 1e294: e714c156 bd0439bd 9c263ae7 140404a7 V....9...:&..... 1e2a4: 7be0bce7 8047efef f3bc3d80 569c4733 ...{..G..=..3G.V 1e2b4: 5c56c1c1 9ce79cee 56ef39f9 9c86f93a ..V\.....9.V:... 1e2c4: 0e0ec785 9ccc55c7 c156e74b 9f35a2c2 .....U..K.V...5. 1e2d4: 9f9f9f9f 339f9f9f 67672033 20677979 .......33 ggyyg 1e2e4: dc132020 1e126717 7070704e 70707070 ...g..Nppppppp 1e2f4: 70707070 70487070 48487070 36364848 ppppppHpppHHHH66 1e304: 694e0c36 2b2b2d69 744e1e2b 3179c877 6.Nii-+++.Ntw.y1 1e314: 7631315e 3179c8c8 e2313113 3440e2e2 ^11v..y1.11...@4 1e324: e2313140 9f9fd731 c72825c5 76b35e30 @11.1....%(.0^.v 1e334: 4634340d 40407e46 13b37640 2b2bb3d1 .44FF~@@@v....++ 1e344: 40765f5f 6e407676 86c1869c f9e73904 __v@vv@n.....9.. 1e354: 559c3955 ee9c869c f4bc5c14 4783ef7b U9.U.....\..{..G 1e364: bc625e80 044720f3 c1c1c186 c28304f9 .^b.. G......... 1e374: 9c39f9e7 a7f9ccc1 35354b9c a75cd535 ..9......K555.\. 1e384: 565c55ef 3cd5efc1 7d7d7d7d 05050505 .U\V...<}}}}.... 1e394: c59f9fa0 33333333 dc333333 77136e17 ....3333333..n.w 1e3a4: 7070740d 70707070 70707070 36487070 .tppppppppppppH6 1e3b4: 48707048 cb364848 4e4ecb36 bb1e1e0c HppHHH6.6.NN.... 1e3c4: 4ec82bb3 2bc87777 79797979 79c8c876 .+.Nww.+yyyyv..y 1e3d4: 31131331 40e2e231 1331e240 13c5af33 1..11..@@.1.3... 1e3e4: 28f3e831 b35ee8f3 34340d76 7e7e4646 1..(..^.v.44FF~~ 1e3f4: b3764040 2bb3d113 76315f2b 40767640 @@v....++_1v@vv@ 1e404: 86a79c6e e7393a56 f955553a 9c86e726 n...V:9.:UU.&... 1e414: b59c83ee 83efbce0 7cb35e4b 6e13f3e0 ........K^.|...n 1e424: c1c186e7 a73a3ac1 550455e7 0483c19c .....::..U.U.... 1e434: 67a2e73a 5c55a2a0 5c9e14a7 2683c156 :..g..U\...\V..& 1e444: 3c3c3cd5 7d7d3c3c 9f350505 9fdcdc9f .<<<<<}}..5..... 1e454: 3113c5c5 33336e0e 700d0d34 70707070 ...1.n334..ppppp 1e464: 70707070 48707070 70704836 36484848 pppppppH6HppHHH6 1e474: 1e6936cb bb790c0c c82bbbbb c877744e .6i...y...+.Ntw. 1e484: 2b2bc8c8 76c8c8c8 13133179 31313131 ..++...vy1..1111 1e494: c53176e2 7613c5af 25e83176 b3e841f3 .v1....vv1.%.A.. 1e4a4: 340d76b3 34343434 5f114040 b3d1d1b3 .v.44444@@._.... 1e4b4: 3131762b 76767676 c2e7f340 04a7c1c0 +v11vvvv@....... 1e4c4: 55553a04 86e72604 9ccc8d3a c2bce0b8 .:UU.&..:....... 1e4d4: b35e4bcc d13de07c c1a7396e 8383c1c1 .K^.|.=.n9...... 1e4e4: 042639a7 14c19c55 9f4b9ee7 99853564 .9&.U.....K.d5.. 1e4f4: 9e14a75c 83c186e7 7d3cd526 7d3c3c3c \.......&.<}<<<} 1e504: a005057d 33dc9f9f 13dcc5dc 0d794579 }......3....yEy. 1e514: 0d74680d 70707070 70707070 70707070 .ht.pppppppppppp 1e524: 70704836 36484870 cfcbcbcb 2b1e6912 6HpppHH6.....i.+ 1e534: 2b6dbbbb 7774122b 762b2bc8 c8c8c876 ..m++.tw.++vv... 1e544: 13317976 13313113 9f133131 407933af vy1..11.11...3y@ 1e554: 790d7676 5ee8e8e8 0d76b3b3 34343434 vv.y...^..v.4444 1e564: 11407e34 1313b35f 31767967 76767631 4~@._...gyv11vvv 1e574: 390e7676 c1c156ef 39cc043a 39260426 vv.9.V..:..9&.&9 1e584: cc8def86 bce0b89c 5e4bcc5c 3dbc7c64 ........\.K^d|.= 1e594: a7550ed1 a7c1c1c1 26e7a7cc 569c55ee ..U........&.U.V 1e5a4: 35475583 2149f1b0 14143a9c c186e79e .UG5..I!.:...... 1e5b4: 3cd52683 7d7d7d7d 3505057d dc9fa035 .&.<}}}}}..55... 1e5c4: 13133333 0d767979 12743379 70707068 33..yyv.y3t.hppp 1e5d4: 70707070 70707070 70704848 36484870 ppppppppHHpppHH6 1e5e4: cbcbcb36 c80c3636 d344bb2b 7412bb79 6...66..+.D.y..t 1e5f4: 792bc877 76797979 3179c8c8 13131313 w.+yyyyv..y1.... 1e604: af9f1331 763113dc e6344040 3131e22c 1.....1v@@4.,.11 1e614: 7679b35e 34340d0d 40403434 13b35f11 ^.yv..4444@@._.. 1e624: 76b31313 7679315f 417676c8 c1c11439 ...v_1yv.vvA9... 1e634: 1404ccc1 26ee4be7 8d83a755 f4b89c3a .....K.&U...:... 1e644: 4bcce7bc bc7cb35e 260e133d c1c1c183 ...K^.|.=..&.... 1e654: e7a79c83 e755e726 0e4befa7 a2f2f5dc ....&.U...K..... 1e664: 143acc5c ef55e714 d52683c1 a27d7d3c \.:...U...&.<}}. 1e674: 05057d7d 9f356e35 311333dc 40767979 }}..5n5..3.1yyv@ 1e684: c87d3334 70701268 70707070 70704870 43}.h.pppppppHpp 1e694: 70707070 48487070 cbcbcb36 773636cb ppppppHH6....66w 1e6a4: 44bb2b76 1ee91ebb 2bc87774 31317979 v+.D....tw.+yy11 1e6b4: 79c8c879 e8e81331 c5b19fe8 31313131 y..y1.......1111 1e6c4: 647e0d40 5e406fc1 b35e5e5e 34340d76 @.~d.o@^^^^.v.44 1e6d4: 40343434 b35f4040 5e131313 31313176 444@@@_....^v111 1e6e4: 76767631 56ef3941 f914c1c1 397b5ca7 1vvvA9.V.....\{9 1e6f4: 83a72626 273a9c8d 3a39e0f4 b9b3804b &&....:'..9:K... 1e704: c5133dbc c1c18355 869c83c1 55e7269c .=..U........&.U 1e714: c75c3ae7 33e633dc 3a145cd5 bde714cc .:\..3.3.\.:.... 1e724: 26ef865c 7d7d3c3c 05057d7d 35491735 \..&<<}}}}..5.I5 1e734: 1333dc9f 0d0d7979 c513680d 7074680d ..3.yy...h...htp 1e744: 48487070 70364870 70483670 48707070 ppHHpH6pp6HppppH 1e754: cbcbcb48 cbcbcbcb bb2b7677 771e6d44 H.......wv+.Dm.w 1e764: 77771277 3179792b c8c87931 e8131379 w.ww+yy11y..y... 1e774: d78e8ec5 31e2e231 024040e2 40a6c1be ....1..1.@@....@ 1e784: 5e5e5e5e 340d76b3 0d346834 5f404040 ^^^^.v.44h4.@@@_ 1e794: 1313135e 31315e5e 795e3131 5c264176 ^...^^1111^yvA&\ 1e7a4: a7c1c186 7b9ca7f9 83264b55 3a048da7 .......{UK&....: 1e7b4: bdf4f44b 5e807b3a 5b3de030 c18699af K...:{.^0.=[.... 1e7c4: 9c14c1c1 554b9c86 4be75555 662ce89f ......KUUU.K..,f 1e7d4: 145c4b33 e714cc3a efcc9ebd 7d3c7d85 3K\.:........}<} 1e7e4: 057d7d7d 6e176e05 33dc9f35 0d767913 }}}..n.n5..3.yv. 1e7f4: 79680d0d 74687413 70707070 48367070 ..hy.thtpppppp6H 1e804: 36367070 48707048 cbcb3648 69cbcbcb pp66HppHH6.....i 1e814: bb1e6936 bb44d344 777777c8 792b2b77 6i..D.D..wwww++y 1e824: c8c87979 e8137979 e8257d8e 40403113 yy..yy...}%..1@@ 1e834: 4040e2e2 60c1fe68 5e5e3176 0d76b35e ..@@h..`v1^^^.v. 1e844: bb72680d 11e27eb2 13135e5f 315ee813 .hr..~.._^....^1 1e854: 5ee85e31 aa877931 c1c1869e 3aa7f9a7 1^.^1y.........: 1e864: 4b4b267b ee26a783 f4f44b3a 307b9cad {&KK..&.:K....{0 1e874: 17e0e85e 83c210b1 a7c1c156 4b9c869c ^.......V......K 1e884: 477b5555 6613dc0e 5c4bdc24 cc3a9ccc UU{G...f$.K\..:. 1e894: 5cbdade7 7d7dd55c 7d7d7d7d 49173505 ...\\.}}}}}}.5.I 1e8a4: dc9f9f35 76797913 340d0d0d 68687468 5....yyv...4hthh 1e8b4: 70707068 70707070 48703670 70484836 hpppppppp6pH6HHp 1e8c4: cbcb4848 cbcbcbcb 69cbcbcb 2b44d32d HH.........i-.D+ 1e8d4: 770dc8ab 2b2b7777 c8c8792b 9f137979 ...www+++y..yy.. 1e8e4: d7418e8e 344031e8 40e2e27e 5642e534 ..A..1@4~..@4.BV 1e8f4: 5e5fd156 76b35e5e 2eb20d0d 7e7766c1 V._^^^.v.....fw~ 1e904: 135e31e2 5ee81313 13133131 6e311313 .1^....^11....1n 1e914: c156e7aa 863a86c1 4b4b7bcc 39a7cc4b ..V...:..{KKK..9 1e924: e04bf939 7be77bc6 27dc5e30 5510fc85 9.K..{.{0^.'...U 1e934: c1c1569c 9c86f9a7 bcad4b4b 67dce80e .V......KK.....g 1e944: d50eb4ac 9c9c3a5c 85ade7cc 7dd59e9e ....\:.........} 1e954: 7d7d7d7d 4935057d dc9f3535 79791333 }}}}}.5I55..3.yy 1e964: 0d0d4076 6868340d 70707474 70707070 v@...4hhttpppppp 1e974: 70487070 4836cf48 cb484870 cb15cbcb ppHpH.6HpHH..... 1e984: 0ccbcbcb 44d32d0c 7979ab2b 2b77c840 .....-.D+.yy@.w+ 1e994: 7931792b 8edc7979 4141258e 7e1131d7 +y1yyy...%AA.1.~ 1e9a4: 11117e34 c3e10240 4053c1c3 b35e5e5e 4~..@.....S@^^^. 1e9b4: 340d0d76 42c142bb 5e3134f1 13131313 v..4.B.B.41^.... 1e9c4: 13135e5e dcc535e8 569c4b27 3a86c1c1 ^^...5..'K.V...: 1e9d4: 7b7bcca7 a73a4b4b 4bee2639 e7bcc6e0 ..{{KK:.9&.K.... 1e9e4: 8ac5b97b 5b715255 c156ee47 86f9a7c1 {...URq[G.V..... 1e9f4: bc7b4b3a 1313e85d 0ed11ab4 9c3ae7d5 :K{.].........:. 1ea04: ad5ccc9c a2555585 7d7d7d7d 05057d7d ..\..UU.}}}}}}.. 1ea14: 9f9f3505 793113dc 76767979 76767676 .5....1yyyvvvvvv 1ea24: 70120d0d 48707070 70707070 36cfcf70 ...ppppHppppp..6 1ea34: 36487036 69cbcbcb e9cb6969 6d4477c8 6pH6...iii...wDm 1ea44: 132bd344 c80d795e dc13792b 8eaf1313 D.+.^y..+y...... 1ea54: 2541c525 11e2e841 117e347e 94684011 %.A%A...~4~..@h. 1ea64: 10c1c3c3 5e5e5e40 460d76b3 c172b240 ....@^^^.v.F@.r. 1ea74: c894c1c1 131313e2 135e5e5e dc3939e8 ........^^^..99. 1ea84: 9c47dcdc 56c1c156 27cca7f9 9c277bb8 ..G.V..V...'.{'. 1ea94: 394b39a7 bcc6e07b d5f37b55 20b13755 .9K9{...U{..U7. 1eaa4: 86396ed1 f9a7c1c1 bc27efa7 e813e87f .n9.......'..... 1eab4: 13ac6679 f9e7856e 5c3a5c5c d5d585bd yf..n...\\:\.... 1eac4: 7d7d7dd5 05050505 35350505 1313dc35 .}}}......555... 1ead4: 79797979 79797979 c8797979 70707070 yyyyyyyyyyy.pppp 1eae4: 70707048 cbcf3600 48483636 cbcbcb36 Hppp.6..66HH6... 1eaf4: cb696969 bb77c877 ababb3bb 0d763113 iii.w.w......1v. 1eb04: 13792bc8 9fb19fc5 41d7e813 e245e841 .+y........AA.E. 1eb14: 7e347e11 68401111 c1c3c32e 5e31c896 .~4~..@h......1^ 1eb24: 0d76b35e 5940460d c1c1c194 2079d160 ^.v..F@Y....`.y 1eb34: 5eb3b3d1 9f9895e8 47313113 c1c1869c ...^.....11G.... 1eb44: cca73a56 17b8bc27 b839a79c d0f4b8aa V:..'.....9..... 1eb54: 21b69ebc 205bb195 395dd1d1 a7c1c1a7 ...!..[ ..]9.... 1eb64: 273aa7f9 1313dc3d be1a79e8 e7ad47e8 ..:'=....y...G.. 1eb74: 3a5ce79c a285bd5c 7da24bd5 a005057d ..\:\....K.}}... 1eb84: 350505a0 13130e6e 79767979 31797979 ...5n...yyvyyyy1 1eb94: 5e5e315e 70707079 70704848 36004870 ^1^^ypppHHpppH.6 1eba4: 48cb36cf cbcbcb48 69696915 c8c869cb .6.HH....iii.i.. 1ebb4: b3b32b1e 4076b32b 79797940 138e8e13 .+..+.v@@yyy.... 1ebc4: 31317979 31314531 3440e2e2 40e2117e yy111E11..@4~..@ 1ebd4: c3c360c8 31d1c3c1 7679b313 46460d0d .`.....1..yv..FF 1ebe4: c1e47734 53c3c1c1 b3b31379 9fd59f5e 4w.....Sy...^... 1ebf4: 31311313 c1a70447 a73a56c1 b8e04bcc ..11G....V:..K.. 1ec04: 55a7e7b5 e0b5bce0 babaadf4 b320c54c ...U........L. . 1ec14: 5db3d1b3 c1c18326 cc830486 13134127 ...]&.......'A.. 1ec24: e4d81313 adad5db4 e7e79c9e 85bd5c3a .....]......:\.. 1ec34: a285d5a2 a0057d7d a0a0a0a0 13339f9f ....}}........3. 1ec44: 0d2b7913 31797976 795e3131 70707979 .y+.vyy111^yyypp 1ec54: 70483648 480ce969 cb363670 cbcb4836 H6Hpi..Hp66.6H.. 1ec64: 696915cb 794ecb69 abab6d77 40312b67 ..iii.Nywm..g+1@ 1ec74: 13131376 13af8e33 79797979 e2317979 v...3...yyyyyy1. 1ec84: 4011e2e2 e2117e34 8f42e57e 53c1c342 ...@4~..~.B.B..S 1ec94: b37913e2 460d0d76 72a44034 c1c156c1 ..y.v..F4@.r.V.. 1eca4: b37971c1 13d75eb3 795e135e a7046e76 .qy..^..^.^yvn.. 1ecb4: f956c1c1 e04b1414 14e7b8b5 bce06226 ..V...K.....&b.. 1ecc4: babaadbc 5e807cad b3d1b364 c1cc265d .....|.^d...]&.. 1ecd4: cc0486c1 31e8273a 24791331 ad47d860 ....:'.11.y$`.G. 1ece4: e79c9e85 bd5c9ce7 85d5a285 7d7d7da2 ......\......}}} 1ecf4: a0a0057d 9f9fa0a0 79133333 760d0d0d }.......33.y...v 1ed04: 5e793179 7079795e 36364870 0c0c7000 y1y^^yyppH66.p.. 1ed14: 367070cb cb484836 6969cbcb 4ecb6969 .pp66HH...iiii.N 1ed24: bb1ee9c8 79b32b64 c5d71376 13c57d8e ....d+.yv....}.. 1ed34: 76767679 76797979 11e2e240 117e347e yvvvyyyv@...~4~. 1ed44: c3e57ee2 c1c3e4e4 79137610 0d0d7679 .~.......v.yyv.. 1ed54: 5f403434 c3c16602 37c1c1c1 5e5eb3c8 44@_.f.....7..^^ 1ed64: 315e5e5e ee6e7676 56c1c114 4b14ccf9 ^^^1vvn....V...K 1ed74: 39b5b5e0 bc414b3a adf0babd 80dabcbd ...9:KA......... 1ed84: 20b3645e 3a2641b3 0486c156 13179c9c ^d. .A&:V....... 1ed94: c8135e79 adc56aac 9c398585 5c9ce7e7 y^...j....9....\ 1eda4: 4bd585bd 3c7dd5ad 7d7d3c3c a0a07d7d ...K..}<<<}}}}.. 1edb4: 3333339f 0d2b6733 79790d0d b3b35e79 .3333g+...yyy^.. 1edc4: 36367070 36000070 7048360c 48487070 pp66p..6.6HpppHH 1edd4: 69cbcbcb cb696969 abe9cbcb 1364642b ...iiii.....+dd. 1ede4: c5133179 13c57d0f 76767913 79797976 y1...}...yvvvyyy 1edf4: 11404076 7e347e40 f17ee211 c36060c1 v@@.@~4~..~..``. 1ee04: 137696c1 0d767979 11403446 6077e211 ..v.yyv.F4@...w` 1ee14: 565642c3 5e0d6fc1 5e795e5e 5d40765e .BVV.o.^^^y^^v@] 1ee24: c1c1cc39 14ccf956 b5bce026 8ed59c26 9...V...&...&... 1ee34: e0f0d699 dae07be0 b3645e80 2741b320 .....{...^d. .A' 1ee44: 86c186f9 49040404 31137913 f35ae4e5 .......I.y.1..Z. 1ee54: 558555bd 9c9ee75c d5bdbd9c 9595b685 .U.U\........... 1ee64: 216c2121 52525252 b13ce395 13339fa0 !!l!RRRR..<...3. 1ee74: 0d34c879 b3797676 700036b3 70487048 y.4.vvy..6.pHpHp 1ee84: 36363670 48707070 15cbcb48 69696969 p666pppHH...iiii 1ee94: e90c69cb 206413bb c5137920 d7c58e0f .i....d y...... 1eea4: 76311313 79797676 11404079 347e4011 ..1vvvyyy@@..@~4 1eeb4: 02e21134 fe60c15a d856c1c3 76797931 4...Z.`...V.1yyv 1eec4: 40340d0d 11315f11 8fe4c12f 66c156c3 ..4@._1./....V.f 1eed4: 765e5e0d 0d765e5e 56cc3941 3af956c1 .^^v^^v.A9.V.V.: 1eee4: e0f426cc 219ebdb5 bc9eba65 e0bcc6c6 .&.....!e....... 1eef4: 195e75da d7b32064 c1860427 ee048d86 .u^.d ..'....... 1ef04: 1379136e f542e179 85555547 9e9ee755 n.y.y.B.GUU.U... 1ef14: 99993a3a d2baf06c 3c4c9521 7d7d3c3c ::..l...!.L<<<}} 1ef24: 4c3c7d7d fbce5252 c879139f 0d34340d }}E. 21c88: e887dce8 06e845e8 4545e8e8 45e8dce8 .....E....EE...E 21c98: 13f6de87 37797679 0d0db0fc 7774740d ....yvy7.....ttw 21ca8: 74777777 77777474 bbbb77bb 69e90c38 wwwtttww.w..8..i 21cb8: 0ccfcfcf 483648cf cbcb48cb 89579169 .....H6H.H..i.W. 21cc8: 69690c2d e944bf44 1ebb6444 771e1e1e -.iiD.D.Dd.....w 21cd8: 79792b77 0dc8c82b 4141e876 76797913 w+yy+...v.AA.yyv 21ce8: 76404040 79797676 40763131 e2e24040 @@@vvvyy11v@@@.. 21cf8: 7d333140 13a09552 31e23131 404040e2 @13}R...11.1.@@@ 21d08: 12114011 ff735722 4a979797 00000000 .@.."Ws....J.... 21d18: 00000000 1c1c97ec 739797ff 70704897 ...........s.Hpp 21d28: 60cf7070 31134066 45313131 acace640 pp.`f@.1111E@... 21d38: 32e1db24 4545e2e6 87dce8e8 4545e806 $..2..EE......EE 21d48: 45e8e8e8 e8e8e845 13e80645 e3677631 ...EE...E...1vg. 21d58: 7774b0fc 74747477 77777777 38747474 ..twwtttwwwwttt8 21d68: bb772b77 cde9bbab cfcfcf69 366969cf w+w.....i....ii6 21d78: 6d69cbcb e61c6969 6969ec91 d1e5780c ..imii....ii.x.. 21d88: 1e6d6dab 1e1e6464 792b771e c8c82b2b .mm.dd...w+y++.. 21d98: 5d30790d 76791341 40404076 79767676 .y0]A.yvv@@@vvvy 21da8: 79313179 31404040 523c9f13 e2319f4c y11y@@@1.. 23548: 4a6391ab 00000048 00000000 70700000 ..cJH.........pp 23558: cf4fcfcf cd4ecd4f 545454cd cd54544e ..O.O.N..TTTNTT. 23568: 4e54543b 12771212 46a1df68 cd545459 ;TTN..w.h..FYTT. 23578: 232354cd a9a9a9a5 a9a9a9a9 080808a9 .T##............ 23588: 08080808 08080808 a5a5a508 a5a5a5a5 ................ 23598: a5a5a5a5 08a5a5a5 d9b2a9a9 2323a4df ..............## 235a8: a5a52323 a5a90223 a5a5a5a5 b202b7a5 ##..#........... 235b8: a4d9ddb7 89897391 4444e978 44ed4444 .....s..x.DDDD.D 235c8: f7f7b975 5f75dff7 b702a4a1 59b2b2b7 u.....u_.......Y 235d8: 54a55459 3b3ba93b 4f4fcdcd 1f4f3636 YT.T;.;;..OO66O. 235e8: 1f363636 701f1f70 48707070 70707070 666.p..ppppHpppp 235f8: cb364848 79690c69 ec89aef6 00000048 HH6.i.iy....H... 23608: 00000000 70000000 cd1fcd1f 4ecdcdcd .......p.......N 23618: 5454cdcd 54545454 54543b54 12124e54 ..TTTTTTT;TTTN.. 23628: a968d959 1f1f1f1f 701f1f1f a9a5a5a9 Y.h........p.... 23638: a9a9a9a9 a9a9a9a9 0808a908 08080808 ................ 23648: a5080808 a5a5a5a5 a9a908a5 08a9a9a9 ................ 23658: dfd90254 2323a4d9 a5a52323 08a423a5 T.....####...#.. 23668: a5a5a508 b7a5a5a5 02b7b2b2 89971c59 ............Y... 23678: 6de96d89 2278d344 dd02dd74 a1a1a1a1 .m.mD.x"t....... 23688: a4a4dda1 b2020202 54a55459 3ba90854 ........YT.TT..; 23698: 4f3bcd3b 36361f4f 3636361f 361f1f70 ;.;OO.66.666p..6 236a8: 70707036 70707070 36cb3670 770c69cb 6pppppppp6.6.i.w 236b8: ec91338b 00000048 00007000 70000000 .3..H....p.....p 236c8: 364fcf70 4e4fcdcd 54cd3b38 544e4e54 p.O6..ON8;.TTNNT 236d8: 54545454 12545454 1f3bdd54 1f1f1f1f TTTTTTT.T.;..... 236e8: 1f1f1f1f 0870701f a9a9a9a5 a9a9a9a9 .....pp......... 236f8: a9a9a9a9 08080808 08080808 08a50808 ................ 23708: b2a5a9a9 d9a1a1dd d95858d9 2323a4a1 .........XX...## 23718: a5232323 a4a5a5a5 a5a5a959 a5a5a5a5 ###.....Y....... 23728: b2b223a5 89970cb7 e9e97889 89e9d36d .#.......x..m... 23738: dfda021c 2323b2a1 23b7b7b7 54232323 ......##...####T 23748: 3b545454 3ba93b3b 4f3b3b3b 1f1f1f4f TTT;;;.;;;;OO... 23758: 361f1f36 3670701f 48707036 70707070 6..6.pp66ppHpppp 23768: cb707048 6d69cf69 6944f606 00007036 Hpp.i.im..Di6p.. 23778: 00700000 00000000 36cd7000 cdcdcd1f ..p......p.6.... 23788: 4ecd4ee9 545454cd 54545454 54545454 .N.N.TTTTTTTTTTT 23798: 1f3b5954 1f1f1fa9 1f1f1f1f 1f1f1f1f TY;............. 237a8: a9a5a970 a9a9a9a9 a9a9a9a9 0808a9a9 p............... 237b8: 08080808 a9080808 d9a10208 58585858 ............XXXX 237c8: d9d9dfdf 2323a4a1 a5232323 a508a5a5 ......#####..... 237d8: a51f0202 a5a5a5a5 23a5a5a5 97fae546 ...........#F... 237e8: e9788989 e96de9e9 2308911c a1d9a102 ..x...m....#.... 237f8: a523b2a4 080808a5 cd54543b a93b3b3b ..#.....;TT.;;;. 23808: 1f4f3b3b 4fa91f1f 1f70704f 70707070 ;;O....OOpp.pppp 23818: 70707036 70707070 70363670 d30c6936 6pppppppp66p6i.. 23828: 69798b67 007048cb 00000000 00000000 g.yi.Hp......... 23838: 4f700000 cdcd4f1f 543bcd1e 545438e9 ..pO.O....;T.8TT 23848: 5454544e 54545454 a9545459 1f1f1fa9 NTTTTTTTYTT..... 23858: 1f1f1f1f 1f1f1f1f a9701f1f a9a9a9a5 ..........p..... 23868: a9a9a9a9 a9a9a9a9 0808a9a9 08a90808 ................ 23878: d9d9d9dd d9dfdfdf a1d9d9d9 23b702a1 ...............# 23888: a5232323 08a5a5a5 a9a10223 a5a5a508 ###.....#....... 23898: a5a5a5a5 6389e644 2d898989 6de90c0c ....D..c...-...m 238a8: 0a1effe9 b7b2dda1 020202b2 02a4a402 ................ 238b8: 3ba559b2 3ba9a908 543ba9a9 d9a1ddb2 .Y.;...;..;T.... 238c8: 4f298888 70701f70 48707070 70707070 ..)Op.pppppHpppp 238d8: cb487070 78693636 0c3e06e5 7048cb69 ppH.66ix..>.i.Hp ... 238f0: 70700000 4f4f7070 cdcd1e4e bbbb4e4e ..ppppOON...NN.. 23900: 54544e54 54545454 08545454 1f1f1fa9 TNTTTTTTTTT..... 23910: 1f1f1f1f 1f1f1f1f 1f1f1f1f a908a91f ................ 23920: a9a9a9a9 a9a9a9a9 a9a9a9a9 591f08a9 ...............Y 23930: d9a1a1d9 dfdfdfdf a1d9d9d9 23b70229 ............)..# 23940: a5232323 a5a5a5a5 a1b22308 08a5a9b2 ###......#...... 23950: 54a5a5a5 69bfe651 918991ff 2d0c0c0c ...TQ..i.......- 23960: 741c6d2d 58585888 0a0a8858 b202dda1 -m.t.XXXX....... 23970: 88d9ddb2 d90ad9d9 88d9d9d9 88888888 ................ 23980: 88888888 701f7029 70707070 70707070 ....)p.ppppppppp 23990: 70487070 892d6936 0ce2c889 4848cb69 ppHp6i-.....i.HH 239a0: 00000070 00000000 70000000 36707070 p..........pppp6 239b0: 3b381ecd 381eab1e 54543864 54545454 ..8;...8d8TTTTTT 239c0: cd545454 1f1fa9a9 1f1f1f1f 1f1f1f1f TTT............. 239d0: 1f1f1f1f 081f1f1f a9a91f08 a9a9a9a9 ................ 239e0: a9a9a9a9 591f08a9 dfd9d958 d9d9df58 .......YX...X... 239f0: a1a1d9d9 232302a4 a5232323 a5a5a5a5 ......#####..... 23a00: b22308a5 08a9a1dd 44a508a5 08388ced ..#........D..8. 23a10: 89911cca 0c0c0c91 63d30c2d d9a12923 ........-..c#).. 23a20: 888888d9 58585858 59b229d9 d9d9a102 ....XXXX.).Y.... 23a30: 880a0ad9 0a0a0ad9 0a0a0a0a 704f0a0a ..............Op 23a40: 70707070 70707070 48707070 89cacb48 pppppppppppHH... 23a50: 4e0d2d91 4836cbcb 00007070 00000000 .-.N..6Hpp...... 23a60: 00000000 36707000 cd38cd1f bb1e7977 .....pp6..8.wy.. 23a70: 54abbb1e 54545454 3b545454 a9a9083b ...TTTTTTTT;;... 23a80: 1f1f1f1f a9a91f1f 1f1f1f1f 1f1f1f1f ................ 23a90: a9a90800 a9a9a9a9 a9a9a9a9 08a9a9a9 ................ 23aa0: 0854dd88 d9465908 a1a1a1d9 b723b7a4 ..T..YF.......#. 23ab0: a5232323 a5a5a5a5 2308a5a5 b2d902b2 ###........#.... 23ac0: 5154081f a508bfed 918963a9 0ccdca63 ..TQ.....c..c... 23ad0: 910c2d0c a4a4b791 0a0aa1a1 dfd9d90a .-.............. 23ae0: 5858dfdf 6859ddd9 a1a1a129 0a0a0a0a ..XX..Yh)....... 23af0: a1a10a0a cfdda1a1 70703670 70707070 ........p6pppppp 23b00: 70707070 6391ec48 cdcd69ca 4836cbcb ppppH..c.i....6H 23b10: 00007048 00000000 00000000 70700000 Hp............pp 23b20: 4f4fcd4f 54c80e4e 641e1e1e 54545438 O.OON..T...d8TTT 23b30: 54545454 a9083b3b 1f1f1fa9 1f1f1f1f TTTT;;.......... 23b40: 1f1fa9a9 1f1f1f1f 08a9cd1f a9a9a9a9 ................ 23b50: a9a9a9a9 1fa9a9a9 1f00a502 1f1f1f1f ................ 23b60: a1d9dda9 2323b702 a5a5a523 a5a5a5a5 ......###....... 23b70: 08a5a5a5 a1b2b223 e6d3540a 08084e90 ....#....T...N.. 23b80: 91ffcb08 690c6391 0c2d0c0c a4b72d63 .....c.i..-.c-.. 23b90: a1a12929 a1a1a1a1 88d9d9d9 d958dfd9 ))............X. 23ba0: a42959b2 a1a129a4 dda1a1a1 6846dddd .Y)..)........Fh 23bb0: 7036703b 70707070 70707070 07910769 ;p6pppppppppi... 23bc0: 36484815 48483648 00707048 00000000 .HH6H6HHHpp..... 23bd0: 00000000 70007000 cdcd7070 12dc33cd .....p.ppp...3.. 23be0: 4e4e4e12 5454bbab 54545454 08543b54 .NNN..TTTTTTT;T. 23bf0: 1f1fa9a9 1f1f1f1f 1fa91fa9 1f1f1f1f ................ 23c00: 12131e1f a9a9a9a9 a9a9a9a9 1fa9a9a9 ................ 23c10: a9000808 a9a9a9a9 021f1fa9 2323b2a1 ..............## 23c20: a5a5a523 a5a5a5a5 08a5a5a5 b2b22308 #............#.. 23c30: e69380a4 08080878 1c4a0808 69916391 ....x.....J..c.i 23c40: 0c0c0c69 a5cf632d a40223a5 29a12929 i...-c...#..)).) 23c50: a1a1a1a1 d9df88d9 cd0258df 54545968 .........X..hYTT 23c60: 59595454 59595959 1f70cd54 70707070 TTYYYYYYT.p.pppp 23c70: cb707070 ec91fa4a 48707048 48484848 ppp.J...HppHHHHH 23c80: 70704848 00000000 00000000 00000000 HHpp............ 23c90: 36367000 77791e4f 54e94e77 54ab1e54 .p66O.ywwN.TT..T 23ca0: 54545454 54545454 1fa9a908 1f1f1f1f TTTTTTTT........ 23cb0: a9a9a91f 1f1f1f1f 67331e1f a9084f79 ..........3gyO.. 23cc0: 1fa9a9a9 a9a9a9a9 1f1fa91f 1f1f1f1f ................ 23cd0: a9a9a91f 23dddd1f a5a52323 08a508a5 .......###...... 23ce0: a5a5a5a5 b2230808 ceea5bb2 08a9a95e ......#..[..^... 23cf0: 63a90808 ca639163 0c0c6969 a963ca0c ...cc.c.ii....c. 23d00: a5a508a5 a4a4b2a5 dda1dddd dfd9a1dd ................ 23d10: dfd9d9df b212cd68 595959b2 cdcd5454 ....h....YYYTT.. 23d20: 70cfcdcd 70707070 4acb7070 cbec0707 ...ppppppp.J.... 23d30: 70707048 48484870 48484848 00000070 HppppHHHHHHHp... 23d40: 00000000 001f0000 4f700000 541ecd4f ..........pOO..T 23d50: 4e4e774e 3838544e 54545454 54595454 NwNNNT88TTTTTTYT 23d60: a9a90854 1f1f1f1f a9a91f1f 1f1f1fa9 T............... 23d70: 1379121f a9123113 a9a9a9a9 a9a91f1f ..y..1.......... 23d80: 1fa91fa9 1f1f1f1f a91f1f1f a1a91fa9 ................ 23d90: a5a5a5b2 08080808 08080808 23080808 ...............# 23da0: 5ba66619 08290aa1 3608a91f 639191ff .f.[..)....6...c 23db0: 0cec690c fa91ec2d a5a5a508 a5080808 .i..-........... 23dc0: 020202b2 4646dddd d9dfd9a1 cf54d9d9 ......FF......T. 23dd0: 595454cd 59595959 cd545959 70707070 .TTYYYYYYYT.pppp 23de0: ca154870 70cb4a07 70700000 48487070 pH...J.p..ppppHH 23df0: 48484848 00007070 00000000 70000000 HHHHpp.........p 23e00: 70000070 4ecf3b36 381e543b 1e544e4e p..p6;.N;T.8NNT. 23e10: 54545454 59545454 08a53b59 a91f1fa9 TTTTTTTYY;...... 23e20: a9a91f1f 1fa9a9a9 0d34121f 79131379 ..........4.y..y 23e30: a9a908a9 1f1f1fa9 a91fa9a9 1f1f1f1f ................ 23e40: 1f1f1f1f 1fa91f1f a5a5a454 08080808 ........T....... 23e50: 08080808 cd08a508 7453a6f1 0aa12902 ..........St.).. 23e60: 1f1f23a1 6391ff4a ec696991 63ec2d0c .#..J..c.ii..-.c 23e70: a5a508ca 3ba5a5a5 b2543b3b dd466802 .......;;;T..hF. 23e80: d9dd5968 a1d9d9df cdcfcfcf cdcdcdcd hY.............. 23e90: 545454cd 7070704f 07ca1548 7070154a .TTTOpppH...J.pp 23ea0: 70700070 70707070 48484848 00707070 p.ppppppHHHHppp. ... 23ebc: 4f1f7000 38cd3b4e 544e5438 544e5454 .p.ON;.88TNTTTNT 23ecc: 54545454 a9595959 1fa9a908 a91f1f1f TTTTYYY......... 23edc: 1fa9a9a9 686868a9 13790d34 08081279 .....hhh4.y.y... 23eec: 1fa9a9a9 1f1f1f1f 1f1f1fa9 1f1f1f1f ................ 23efc: 1f1f1f1f b7b21fa9 080808a5 08080808 ................ 23f0c: 44080808 596466e6 a1a40223 a4290a0a ...D.fdY#.....). 23f1c: 63fffaa9 69690763 0c0cecec 08086963 ...cc.ii....ci.. 23f2c: 08080808 3b3b3b3b 6868593b 5468dd68 ....;;;;;Yhhh.hT 23f3c: a1d9d946 cdcb68d9 cdcdcdcd cdcdcd54 F....h......T... 23f4c: 36704f54 4a07caec 70704815 70007070 TOp6...J.Hpppp.p 23f5c: 70707070 70704848 70707070 00000000 ppppHHpppppp.... 23f6c: 70000000 0000701f 70707000 cd3b544f ...p.p...pppOT;. 23f7c: 4e4e3838 4e4e5454 54545459 12595959 88NNTTNNYTTTYYY. 23f8c: 1f1fa959 a9a91f1f a91f1f1f 68686854 Y...........Thhh 23f9c: 76343468 08797979 a9a9a908 1f1f1f1f h44vyyy......... 23fac: 1f1fa91f 1f1f1f1f 1f1f1f1f 3b1fa91f ...............; 23fbc: 0808a502 08080808 5154083b 23597294 ........;.TQ.rY# 23fcc: 02b223b2 a1a1a1a4 ffec0229 69ec631c .#......)....c.i 23fdc: ececec69 a5a963ca 3b3b3b08 3b3b3b3b i....c...;;;;;;; 23fec: 54cdcd3b 46686868 d9745468 cfa1a1a1 ;..ThhhFhTt..... 23ffc: cdcdcdcf cdcdcdcd 1536cdcd cbec4aca ..........6..J.. 2400c: 70707070 70707070 70707000 70707070 pppppppp.ppppppp 2401c: 70704870 00000070 00000000 001f7000 pHppp........p.. 2402c: a9700000 1f1f7070 381e38cd 3854544e ..p.pp...8.8NTT8 2403c: 5454541e 12595959 3b591212 1f1f1fa9 .TTTYYY...Y;.... 2404c: 593ba91f 68b26868 34346868 310d0d0d ..;Yhh.hhh44...1 2405c: a9a9a912 1f1fa9a9 1f081f1f 1f1f1f1f ................ 2406c: 1f1f1f1f a9a91f1f 0823021f 3b080808 ..........#....; 2407c: e6783b3b a508e9ed 2323b259 a1a102b2 ;;x.....Y.##.... 2408c: a5292929 699163ec ececec69 1ffa07ec )))..c.ii....... 2409c: 3b3b0808 3b3b3b4f cdcd3b3b 686854cd ..;;O;;;;;...Thh 240ac: cd6868b2 d9a1a168 cfcfcf54 cdcdcdcd .hh.h...T....... 240bc: 36cdcdcd 704815ec 70707070 70707070 ...6..Hppppppppp 240cc: 70707070 70707070 70484870 00000070 pppppppppHHpp... 240dc: 00000000 00707000 00000000 1f70701f .....pp......pp. 240ec: 1e38cd1f 5454381e 5412bb12 59595959 ..8..8TT...TYYYY 240fc: 59121259 59595959 0d741259 6868680d Y..YYYYYY.t..hhh 2410c: 34346868 0d343434 a9a97931 1fa9a9a9 hh44444.1y...... 2411c: a91f1f1f 1f1f1fa9 1f1f1f1f a9a91f1f ................ 2412c: b259364f 08080808 94e1e908 3b083bae O6Y..........;.; 2413c: 23b223a5 a4b259a5 29292929 ca697002 .#.#.Y..)))).pi. 2414c: ecec6969 4a91ecec 08a94fa9 4f4f3b3b ii.....J.O..;;OO 2415c: 3bcf4f4f 54cdcdcd 6868b2b2 a1ddcd54 OO.;...T..hhT... 2416c: cfcb46d9 cfcdcfcf cfcdcfcf 70707070 .F..........pppp 2417c: 70707070 70364848 70707070 70707070 ppppHH6ppppppppp 2418c: 70484870 00007070 00000000 00000000 pHHppp.......... 2419c: 00000000 70707070 383b1f1f 544e3838 ....pppp..;888NT 241ac: 12771254 59595959 59681259 b2595959 T.w.YYYYY.hYYYY. 241bc: 683468b2 0dc82bc8 34686868 34343434 .h4h.+..hhh44444 241cc: 3b131340 a9a9a9a9 1f1f1f1f 1f1f081f @..;............ 241dc: 1f1f1f1f a91f1f1f 0d1e4f4f 083b3bb2 ........OO...;;. 241ec: 90e6ae08 083b08e9 59a5a53b b723a523 ......;.;..Y#.#. 241fc: 2929a4b2 cba92929 ec6969cf 63ececec ..))))...ii....c 2420c: a94fa9ec 4f4f4f4f cf4f4f4f cdcdcfcf ..O.OOOOOOO..... 2421c: 59b259cd 546868b2 cfa14654 cfcfcfcf .Y.Y.hhTTF...... 2422c: cdcfcfcf 7070001f 70707070 36363636 ......pppppp6666 2423c: 00707048 70700070 70487070 00007070 Hpp.p.ppppHppp.. ... 24258: 701f7000 a91f7070 5454543b 38121254 .p.ppp..;TTTT..8 24268: 12125959 68126812 34685959 0d0d6868 YY...h.hYYh4hh.. 24278: c8c87468 68340dc8 34343434 e8314034 ht....4h44444@1. 24288: a9a9a912 1f1f1fa9 1f08701f 1f1f1f1f .........p...... 24298: 4fa9a91f 161e4f4f 0854b245 78e6ed6d ...OOO..E.T.m..x 242a8: 083b3b3b a5a53ba9 a5082359 2902b723 ;;;..;..Y#..#..) 242b8: 1fa5b729 151569cb ecececec a9a936fa )....i.......6.. 242c8: 4f4f4fa9 4f4f4f4f cfcfcfcf 54cdcd4f .OOOOOOO....O..T 242d8: 36540259 54484848 cfcfcfcd cfcfcfcf Y.T6HHHT........ 242e8: 707070cf 48707070 4e4f3636 0070704f .ppppppH66ONOpp. 242f8: 00000000 70707000 00000000 00000000 .....ppp........ 24308: 00000000 00007070 00000000 3b707070 ....pp......ppp; 24318: 543ba9a9 59545454 59591259 68686868 ..;TTTTYY.YYhhhh 24328: 0db2b268 c8683476 6868680d 34c80d0d h...v4h..hhh...4 24338: 34340234 31403434 a9a9c813 1f1fa91f 4.4444@1........ 24348: a91f1f1f 1f1f1fa9 a9a9a9a9 06774fa9 .............Ow. 24358: 4e23e8b5 0c51e697 3b3bcd08 a53ba93b ..#N..Q...;;;.;. 24368: a52323a5 b702b2a5 00000008 15360000 .##...........6. 24378: ecec1569 4f1ffafa a9a9a9a9 4f4f4f4f i......O....OOOO 24388: cfcf4f4f cf4fcfcf 483659cd 48cbcb36 OO....O..Y6H6..H 24398: cfcb4f36 cfcfcfcf 700036cf 36707070 6O.......6.pppp6 243a8: 404f3636 70703640 00000000 70000000 66O@@6pp.......p 243b8: 00000070 00000000 00000000 00000000 p............... 243c8: 70000000 70700070 3b08a9a9 59125454 ...pp.pp...;TT.Y 243d8: 77123812 68746812 b2b26868 3476130d .8.w.hthhh....v4 243e8: b268c876 0d346868 34023434 40343434 v.h.hh4.44.4444@ 243f8: 3b797979 1f1f1fa9 701f1f1f a91fa9a9 yyy;.......p.... 24408: 1fa9a9a9 31c8cd1f bf79f687 a9d3edbe .......1..y..... 24418: 3bcdcd3b 3ba9083b 23a5a5a5 08022308 ;..;;..;...#.#.. ... 24430: 70700000 1f15cb70 a9a9a9a9 4fa9a9a9 ..ppp..........O 24440: 4f4f4f4f cfcfcf4f 481f59cf 48483636 OOOOO....Y.H66HH 24450: cf4f3648 4f4fcfcf 7070cf4f 70707070 H6O...OOO.pppppp 24460: 344f4f36 7036129d 00000070 00000000 6OO4..6pp....... 24470: 00000070 70007070 00007070 70700000 p...pp.ppp....pp 24480: 00000000 70007070 4f1f1f70 3838593b ....pp.pp..O;Y88 24490: 12771212 74127477 68686868 340d68b2 ..w.wt.thhhh.h.4 244a0: 68767634 0d68b2b2 3434340d 34343434 4vvh..h..4444444 244b0: af79400d 1f1f08b4 1f1f1f1f 1fa91f1f .@y............. 244c0: 701fa9a9 79311e4f e35b7976 a94fbf5a ...pO.1yvy[.Z.O. 244d0: cdcd3b3b 4f3b3bcd a508a53b 0023b2a5 ;;...;;O;.....#. ... 244e8: 70000000 701fa91f a94f1f4f a9a9a9a9 ...p...pO.O..... 244f8: 4f4f4f4f cb364f4f 481f594f 48483636 OOOOOO6.OY.H66HH 24508: 363b4848 364fcfcf 0048cb36 70707070 HH;6..O66.H.pppp 24518: 124fcf36 364fe29d 00000070 70000000 6.O...O6p......p 24528: 00000000 48707000 70707048 00000070 .....ppHHpppp... ... 24540: 1f1f7070 383854a9 77123838 59747412 pp...T8888.w.ttY 24550: 68681268 59b26868 3468b2b2 68686834 h.hhhh.Y..h44hhh 24560: 340dc8c8 34020234 fc37f279 a9543765 ...44..4y.7.e7T. 24570: 1f1fa91f a91f1fa9 4f1f1fa9 7913791e ...........O.y.y 24580: 65fbd176 3b081e0f cd3b4fa9 4f4fcdcd v..e...;.O;...OO 24590: a53b3b4f 00a559a5 00000000 00000000 O;;..Y.......... 245a0: 00000000 4f1f1f1f 1f361f1f 3636361f .......O..6..666 245b0: 4f4f3636 364f3636 48a95436 48484836 66OO66O66T.H6HHH 245c0: 1fcf4848 36364f36 0036cb36 70707070 HH..6O666.6.pppp 245d0: 4ecf3670 36129d3e 70007036 00000000 p6.N>..66p.p.... 245e0: 70000070 48487070 48484848 00004848 p..pppHHHHHHHH.. ... 245f8: 1f707000 7454a91f 12383874 74741274 .pp...Ttt88.t.tt 24608: 68b25959 68686868 b2686868 686868b2 YY.hhhhhhhh..hhh 24618: c8790d68 2c2b3434 fbfc2ee3 c831795b h.y.44+,....[y1. 24628: a91f1fa9 a91f1fa9 1e4f1f1f 79314513 ..........O..E1y 24638: e3657167 4f740dd1 3b4fa908 4fcfcdcd gqe...tO..O;...O 24648: 3b4f4f4f 00a9233b 00000000 00000000 OOO;;#.......... 24658: 00000000 701f1f70 3670a91f 361f1f1f ....p..p..p6...6 24668: 36363636 364f4f36 70083b36 48484848 66666OO66;.pHHHH 24678: 1f364848 36364f36 00363636 70707070 HH6.6O66666.pppp 24688: 3b4f361f cde29d40 00004836 70007000 .6O;@...6H...p.p 24698: 70707000 48484848 15484848 00fd1515 .pppHHHHHHH..... 246a8: 00007070 70000000 70707070 54a9361f pp.....ppppp.6.T 246b8: 74747412 68121212 68595974 68686868 .ttt...htYYhhhhh 246c8: 68686868 68b26868 0d343468 fce32c79 hhhhhh.hh44.y,.. 246d8: 76d153e3 79764040 1fa97745 1f1f1f1f .S.v@@vyEw...... 246e8: 13c84ea9 133113e8 f2fcfcaf 0d0d0dc8 .N....1......... 246f8: a9a9a93b cfcdcd4f a9a94f4f 00a9543b ;...O...OO..;T.. ... 24710: 48151500 1f007070 1fa9701f 36361f1f ...Hpp...p....66 24720: 36361f1f 36363636 703b3b36 48484848 ..6666666;;pHHHH 24730: a9364848 36364f1f 70363636 70707000 HH6..O66666p.ppp 24740: 4f363670 123e3e12 00703636 00000000 p66O.>>.66p..... 24750: 48487070 15484848 fd151515 07074a4a ppHHHHH.....JJ.. ... 24768: 1f700000 4f361f1f 7412543b 12681274 ..p...6O;T.tt.h. 24778: 5959340d 740d6868 68687434 b2686868 .4YYhh.t4thhhhh. 24788: c8346868 71fcfc53 34340dd1 76767676 hh4.S..q..44vvvv 24798: 31453131 4e541277 e8e86777 af313113 11E1w.TNwg...11. 247a8: 79716510 0d0d0d0d a9a94e0d cfcf4fa9 .eqy.....N...O.. 247b8: a94f4fcf 001fa5a9 00000000 00000000 .OO............. 247c8: cb150000 70707048 1f1f7000 1f1f70a9 ....Hppp.p...p.. 247d8: 1f36361f 36363636 703b4f36 48484870 .66.66666O;ppHHH 247e8: 1f364848 36363648 70483636 70707070 HH6.H66666Hppppp 247f8: 36367070 343e403b 7048364f 00000000 pp66;@>4O6Hp.... 24808: 48484870 15151548 07074afd 4a4a0707 pHHHH....J....JJ 24818: 000000fd 00000000 70700000 361f1f1f ..........pp...6 24828: 12543b4f 68127474 b268130d 0d68b2b2 O;T.tt.h..h...h. 24838: 34346874 68686868 712b6868 79b46ffc th44hhhhhh+q.o.y 24848: 340d0d0d 76797634 31313176 13e8e813 ...44vyvv111.... 24858: 1313e845 37333113 76d13765 0d0dc876 E....137e7.vv... 24868: 4f74770d cf4fa9a9 a94fcfcf 007008a9 .wtO..O...O...p. ... 24880: 15480000 70707015 70007070 1f70a91f ..H..ppppp.p..p. 24890: 361f1f1f 36363636 703b3636 70007070 ...6666666;ppp.p 248a0: 36484848 48484870 00704836 70707070 HHH6pHHH6Hp.pppp 248b0: 36707070 e23e1236 704836cd 48707070 ppp66.>..6HppppH 248c0: 48484848 4afd1515 4a070707 1515fd4a HHHH...J...JJ... 248d0: 00004848 00000000 00000000 1f363670 HH..........p66. 248e0: 543b4f36 12747459 68c80d74 68b25959 6O;TYtt.t..hYY.h 248f0: 68686868 68686834 fc53c8b2 68345b10 hhhh4hhh..S..[4h 24900: 0dc8c834 79763434 31313176 13131331 4...44vyv1111... 24910: 13131313 650f1331 76795b10 c80dc876 ....1..e.[yvv... 24920: 7474770d 4f3b1f4e 4f4fcfcf 0070a93b .wttN.;O..OO;.p. ... 24938: 15000000 700015cb 70707070 a91f0070 .......pppppp... 24948: 36363670 36363636 704f3648 70701f70 p6666666H6Opp.pp 24958: 48487070 36364870 70707048 70707070 ppHHpH66Hppppppp 24968: 36707070 e240cf36 483636cd 48484870 ppp66.@..66HpHHH 24978: 15484848 07074afd 15fd4a4a 48481515 HHH..J..JJ....HH 24988: 00484848 00000000 00000000 1f700000 HHH...........p. 24998: cd363670 59595454 74127459 68685912 p66.TTYYYt.t.Yhh 249a8: 68686868 b2683468 711053c8 34767664 hhhhh4h..S.qdvv4 249b8: 0d0d3468 0d34340d 13137676 13133131 h4...44.vv..11.. 249c8: 31131313 eafcaf13 797979b1 c8c8c876 ...1.....yyyv... 249d8: 74770dc8 1fcf7474 3bcdcd3b 00001f3b ..wttt..;..;;... ... 249f4: 00481515 70707070 00707070 36701f1f ..H.ppppppp...p6 24a04: 48363636 70a94f36 70701f70 70707070 666H6O.pp.pppppp 24a14: 48707070 70007070 70707070 70707070 pppHpp.ppppppppp 24a24: 34cd3636 483636cd 48484848 4afd1548 66.4.66HHHHHH..J 24a34: fd4a074a 48151515 48484848 00707048 J.J....HHHHHHpp. 24a44: 00000000 70000000 70000000 4f367070 .......p...ppp6O 24a54: 5454cdcd 12125959 68685974 0d686868 ..TTYY..tYhhhhh. 24a64: 77b26868 2b241053 0d346868 34683434 hh.wS.$+hh4.44h4 24a74: 34343434 31404034 31313113 13131313 44444@@1.111.... 24a84: 0f65e35b 79797967 c8c8c82b 777777c8 [.e.gyyy+....www 24a94: 74383874 4f4f7070 0000701f 00000000 t88tppOO.p...... ... 24aac: 48151548 70707000 70707070 00707070 H..H.pppppppppp. 24abc: 361f7070 701fa936 70707070 70707070 pp.66..ppppppppp 24acc: 70707070 70707070 70707070 70707070 pppppppppppppppp 24adc: cf364870 48cbcbcf 15484848 074afd15 pH6....HHHH...J. 24aec: 1515fd4a 48484815 70484848 00000070 J....HHHHHHpp... ... 24b04: 70000070 4f487070 121254cf 12125959 p..pppHO.T..YY.. 24b14: 68595974 68343434 f1746868 b2c85310 tYYh444hhht..S.. 24b24: 68686868 34343468 34686868 400d3434 hhhhh444hhh444.@ 24b34: 31311331 33313131 33e365fb 76797979 1.111113.e.3yyyv 24b44: c8c8c876 797977c8 38387477 00000038 v....wyywt888... ... 24b64: 15154800 70700000 70707070 70707070 .H....pppppppppp 24b74: 70000070 70707070 70707070 70707070 p..ppppppppppppp 24b84: 70707070 70707070 70707070 70707070 pppppppppppppppp 24b94: 36487070 cbcbcb36 fd151515 fd4a074a ppH66.......J.J. 24ba4: 48481515 48484848 00707048 00000000 ..HHHHHHHpp..... ... 24bbc: 70000000 36707070 0d12cdcd 59595968 ...pppp6....hYYY 24bcc: 59595959 34686868 66e56868 34682bbe YYYYhhh4hh.f.+h4 24bdc: 68686868 34686868 34686834 34343434 hhhhhhh44hh44444 24bec: 31317634 b1133131 79f210fc 76767979 4v1111.....yyyvv 24bfc: c8c8c8c8 45c877c8 381e74c8 00006938 .....w.E.t.88i.. 24c0c: 00707070 00000000 00000000 00000000 ppp............. 24c1c: 15150000 70000015 70707070 70707070 .......ppppppppp 24c2c: 70707070 70707070 70707070 70707070 pppppppppppppppp 24c3c: 70707070 70707070 70707070 70707070 pppppppppppppppp 24c4c: 48487070 cbcbcbcb 074aec15 15fd4a07 ppHH......J..J.. 24c5c: 48484848 00704848 00000000 00000000 HHHHHHp......... ... 24c78: 70707070 4554cd4f 59595976 59595959 ppppO.TEvYYYYYYY 24c88: 68685959 66be2b68 0d6868e5 68683434 YYhhh+.f.hh.44hh 24c98: 68686868 34686868 34460d34 76763434 hhhhhhh44.F444vv 24ca8: e3f27940 7967b1fc c8767679 c8c8c8c8 @y....gyyvv..... 24cb8: 77777777 381e1e77 00483838 70707000 wwwww..888H..ppp ... 24cd4: 15700000 00004815 70707070 70707070 ..p..H..pppppppp 24ce4: 70707070 701f7070 70707070 70707070 pppppp.ppppppppp 24cf4: 70707070 70707070 70707070 70707070 pppppppppppppppp 24d04: 48484848 15cb4848 ca91074a 4815694a HHHHHH..J...Ji.H 24d14: 70484848 00000000 00000000 00000000 HHHp............ ... 24d30: 70700000 ab4f3636 59126887 59595959 ..pp66O..h.YYYYY 24d40: 68685959 dba6f174 6868b274 68340d0d YYhht...t.hh..4h 24d50: 68686868 34686868 0d0d3434 40343446 hhhhhhh444..F44@ 24d60: e3372c79 764067b1 c8c8c876 77c8c8c8 y,7..g@vv......w 24d70: 77777777 1e1e1e1e 000c3838 70000000 wwww....88.....p ... 24d8c: 48000000 00701515 70707000 70707070 ...H..p..ppppppp 24d9c: 70707070 70707070 70707070 70707070 pppppppppppppppp 24dac: 70707070 70707070 70707070 70707070 pppppppppppppppp 24dbc: 48484848 ca15cbcb eccafa91 4815e969 HHHH........i..H 24dcc: 00004848 00000000 00000000 00000000 HH.............. ... 24de4: 70000000 70007070 0c363636 121277dc ...ppp.p666..w.. 24df4: 59595959 68595959 646666d1 68686868 YYYYYYYh.ffdhhhh 24e04: 68680d68 68686868 34686868 46346834 h.hhhhhhhhh44h4F 24e14: 2b34460d f27171f1 76767679 c8c8c876 .F4+.qq.yvvvv... 24e24: 7777c8c8 77777777 381e1e1e cb384e38 ..wwwwww...88N8. 24e34: 00000000 00000070 00000000 00000000 ....p........... 24e44: 00000000 00151515 70700000 70707070 ..........pppppp 24e54: 70707070 70707070 70707070 70707070 pppppppppppppppp 24e64: 70707070 70707070 4f367070 48707070 pppppppppp6OpppH 24e74: 48cb4848 6307fd48 15154a91 48e9e9cb HH.HH..c.J.....H 24e84: 00007048 00000000 00000000 00000000 Hp.............. ... 24e9c: 00007000 70707070 36cfcf1f 4e6979ab .p..pppp...6.yiN 24eac: 54545454 12595959 74f16553 68686868 TTTTYYY.Se.thhhh 24ebc: 68686868 68686868 34686868 6868340d hhhhhhhhhhh4.4hh 24ecc: b02b4634 0d67f153 4076400d c80d0d0d 4F+.S.g..@v@.... 24edc: 7777c8c8 1e1e7777 381e1e1e e94ee938 ..wwww.....88.N. 24eec: 00000048 00007000 00000000 00000000 H....p.......... 24efc: 00000000 1548fd00 70000000 70707070 ......H....ppppp 24f0c: 70707070 70707070 70707070 70707070 pppppppppppppppp 24f1c: 70707070 70707070 594f7070 4848703b ppppppppppOY;pHH 24f2c: 48cbcb48 9163faec 15cb154a 691e69cb H..H..c.J....i.i 24f3c: 00007048 00000000 00000000 00000000 Hp.............. ... 24f54: 00707000 70700000 4f367070 cf691e0c .pp...pppp6O..i. 24f64: 54cdcdcf bb545954 682b5a66 68686868 ...TTYT.fZ+hhhhh 24f74: 68686834 34686868 68686834 340d0d68 4hhhhhh44hhhh..4 24f84: b0640d68 34462bb0 0d0d0d34 0d0d0d0d h.d..+F44....... 24f94: 7777c8c8 1e1e1e77 381e1e1e 4ee9e9e9 ..www......8...N 24fa4: 0000000c 00700000 00000000 00000000 ......p......... 24fb4: 00000000 15fd4800 70000048 70707070 .....H..H..ppppp 24fc4: 70707070 70707070 70707070 70707070 pppppppppppppppp 24fd4: 70707070 70707070 59367070 48483659 pppppppppp6YY6HH 24fe4: ec4848cb 4a631c63 cbcb1515 124ecbcb .HH.c.cJ......N. 24ff4: 00007036 00000000 00000000 00000000 6p.............. ... 2500c: 70700000 70707070 36367070 cfcfcf36 ..pppppppp666... 2501c: 59cdcfcf 2f545459 59597294 68686812 ...YYTT/.rYY.hhh 2502c: 68346868 34686868 6874460d 0d466868 hh4hhhh4.FthhhF. 2503c: 2b2bc80d 46464646 0d343446 0d0d0d0d ..++FFFFF44..... 2504c: 7777c80d 1e1e7777 e91e3838 4ee9e9e9 ..wwww..88.....N 2505c: 0000cb4e 70000000 00000000 00000000 N......p........ 2506c: 00000000 15150000 00007015 70707070 .........p..pppp 2507c: 70707070 70707070 70707070 70707070 pppppppppppppppp 2508c: 48707070 70707048 cf487070 cb483654 pppHHpppppH.T6H. 2509c: 631548cb 154a6397 484815cb 12693648 .H.c.cJ...HHH6i. 250ac: 0070703b 00000000 00000000 00000000 ;pp............. ... 250c4: 70700000 70707070 4f707070 3636364f ..pppppppppOO666 250d4: 544fcf4f 0b545968 59a5bf94 74681259 O.OThYT....YY.ht 250e4: 34686868 6868400d 74460d68 74686868 hhh4.@hhh.Fthhht 250f4: 74460d0d 46746868 46746874 0d0d3434 ..FthhtFthtF44.. 25104: c80dc80d 1e1e7779 e9e9381e 4ee9e9e9 ....yw...8.....N 25114: 00480c0c 00000000 00000070 00000000 ..H.....p....... 25124: 00000000 fd000000 00001548 70707000 ........H....ppp 25134: 70707070 70707070 70707070 70707070 pppppppppppppppp 25144: 361f7070 70363636 36707070 15cb36cf pp.6666pppp6.6.. 25154: 73071548 48154a1c 48484848 4e484848 H..s.J.HHHHHHHHN 25164: 00703612 00000000 00000000 00000000 .6p............. ... 2517c: 70700000 70707070 70707070 36364f4f ..ppppppppppOO66 2518c: cfcf3636 24387454 54541e94 12595959 66..Tt8$..TTYYY. 2519c: 68687474 6831f640 68686868 74686874 tthh@.1hhhhhthht 251ac: 68747474 68687468 74686868 0d464646 ttthhthhhhhtFFF. 251bc: 79c80d0d 387731f6 e9e9e938 0c0ce9e9 ...y.1w88....... 251cc: 0069cdcd 00000000 00007000 00000000 ..i......p...... ... 251e4: 001548fd 70700000 70707070 70707070 .H....pppppppppp 251f4: 70707070 70707070 36367070 4f543636 pppppppppp6666TO 25204: 48707070 15cb3636 73ff4acb 48481507 pppH66...J.s..HH 25214: 48484848 cb484848 70704f12 00000000 HHHHHHH..Opp.... ... 25234: 70000000 70707070 701f1f70 36361f70 ...pppppp..pp.66 25244: cf363636 5a4ecdcf cd3b38e6 5959593b 666...NZ.8;.;YYY 25254: 68747412 3487f634 68686834 74747468 .tth4..44hhhhttt 25264: 74747474 68687474 74746868 46467468 tttttthhhhtthtFF 25274: 31c8c80d 1ec8f616 e9e9e91e cd0ce9e9 ...1............ 25284: cbcdcdcd 00000000 00000000 00000000 ................ 25294: 70700000 00000070 4848fd48 48000000 ..ppp...H.HH...H 252a4: 70707070 70707070 70707070 70707070 pppppppppppppppp 252b4: 36367070 59684f36 48484836 cb15cb36 pp666OhY6HHH6... 252c4: 63736315 48154815 48484848 48484848 .csc.H.HHHHHHHHH 252d4: 7070cdcd 00000000 00000000 00000000 ..pp............ ... 252f0: 361f1f70 36361f1f 1f1f1f1f cf363636 p..6..66....666. 25300: 32e9cfcf cd54e932 59543b3b 74746859 ...22.T.;;TYYhtt 25310: 34877968 68686868 74746868 68686868 hy.4hhhhhhtthhhh 25320: 68686874 74746868 74747468 79c80d74 thhhhhtthtttt..y 25330: 7479165d e9e9e91e cd0c0c0c cdcdcdcd ].yt............ 25340: 00000048 00000000 70000000 36363636 H..........p6666 25350: 00363636 48151500 00000000 70707048 666....H....Hppp 25360: 70707070 70707070 70707070 36484870 pppppppppppppHH6 25370: 34684f36 4848484f 15151548 4aff73ca 6Oh4OHHHH....s.J 25380: 48481548 70704848 48487070 0048cd36 H.HHHHppppHH6.H. ... 253a8: 361f1f00 36363636 36363636 36363636 ...6666666666666 253b8: e66dcfcb 59544e5a 543b3b54 74125959 ..m.ZNTYT;;TYY.t 253c8: 34406874 68686868 68686868 68686868 th@4hhhhhhhhhhhh 253d8: 68121268 74741212 74686874 c80d7474 h..h..ttthhttt.. 253e8: 77e816f6 0ce9e91e cd0c0c0c cfcdcdcd ...w............ 253f8: 00007069 00000000 cb000000 36cbcfcf ip.............6 25408: 48703636 48fd0070 00000015 70704800 66pHp..H.....Hpp 25418: 70707070 70707070 70707070 36487070 ppppppppppppppH6 25428: 7e593636 48363654 fdcb1548 15fa901c 66Y~T66HH....... 25438: 48481515 70704848 70707070 00363648 ..HHHHppppppH66. ... 25460: 1f1f0000 3636361f 36363636 36363636 .....66666666666 25470: 576d4f36 54cf4e24 3b3b5974 12595954 6OmW$N.TtY;;TYY. 25480: 68747474 68686868 12686812 12747474 ttthhhhh.hh.ttt. 25490: 12121274 74121212 12127474 c8747412 t......ttt...tt. 254a0: c8871606 0ce9381e cdcdcd0c cfcfcfcd .....8.......... 254b0: 0000cbcf 00000000 36000000 36cbcfcf ...........6...6 254c0: 48363636 fd707048 00004848 70700000 666HHpp.HH....pp 254d0: 70707070 70487070 48707070 48487048 ppppppHppppHHpHH 254e0: 7e543636 cb36cf68 071515cb 484aff73 66T~h.6.....s.JH 254f0: 48484815 70707048 70707070 70707070 .HHHHppppppppppp ... 25518: 1f000000 361f1f1f 36363636 36363636 .......666666666 25528: 57e93636 cfcd548c cd5454cf 59543b4f 66.W.T...TT.O;TY 25538: 74747459 12686868 12686812 38743812 Yttthhh..hh..8t8 25548: 12121212 12121212 12383812 74741212 .........88...tt 25558: c8f61613 0ce9381e cfcdcdcd cfcfcfcf .....8.......... 25568: 0048cfcf 00000000 70000000 cbcbcfcf ..H........p.... 25578: 483636cb 48704848 007048fd 70000000 .66HHHpH.Hp....p 25588: 70707070 70707070 70707070 48484870 pppppppppppppHHH 25598: 343b3636 cbcbcd68 1cfd4815 1515fa22 66;4h....H.."... 255a8: 48484815 70707048 70707070 00707070 .HHHHpppppppppp. ... 255d4: 1f36361f 3636361f 36363636 e60c3636 .66..666666666.. 255e4: cdcfcded cfcfcfcf 3b4f4fcf 38121254 .........OO;T..8 255f4: 12121238 12686812 12121212 12121212 8....hh......... 25604: 12121212 12125959 12121212 c8f6f60d ....YY.......... 25614: 0ce93838 cfcfcdcd cfcfcfcf 70cfcfcf 88.............p ... 2562c: cbcbcfcb 363636cb 70484848 004815fd .....666HHHp..H. 2563c: 00000000 70707070 70707070 70707070 ....pppppppppppp 2564c: 48487070 68cf3648 cbcb5402 7307cbcb ppHHH6.h.T.....s 2565c: 1548fdff 70484848 70707070 70707070 ..H.HHHppppppppp 2566c: 00707070 00000000 00000000 00000000 ppp............. ... 2568c: 36363600 1f36361f 36361f1f edcd3636 .666.66...6666.. 2569c: cf4f0c32 cfcfcfcf 3b4f54cf 12593b3b 2.O......TO;;;Y. 256ac: 12121212 12681212 12121259 12123838 ......h.Y...88.. 256bc: 59121212 59595912 59595959 77310d12 ...Y.YYYYYYY..1w 256cc: 0ce94e12 cfcfcfcd cfcfcfcf 36cfcfcf .N.............6 ... 256e4: cbcfcf70 36363636 48484848 4848fd70 p...6666HHHHp.HH 256f4: 00000000 70707000 48707070 70707070 .....ppppppHpppp 25704: 48707070 59364848 69695402 226315cb pppHHH6Y.Tii..c" 25714: 151515fa 70484848 70707070 70707070 ....HHHppppppppp 25724: 70707070 00000000 00000000 00000000 pppp............ ... 25744: 1f1f0000 1f361f1f 1f1f1f36 9bcf3636 ......6.6...66.. 25754: cf366d57 cfcfcfcf 3636cfcf 593b4f36 Wm6.......666O;Y 25764: 59121212 59125959 12121212 12121212 ...YYY.Y........ 25774: 59121212 54595959 54545454 4e125454 ...YYYYTTTTTTT.N 25784: cd0c4e4e cfcfcfcf cfcfcfcf cb3636cb NN...........66. 25794: 00000048 00000000 cbcfcb00 483636cb H............66H 257a4: 48484848 48fd4870 00000048 70700000 HHHHpH.HH.....pp 257b4: 70707070 70707048 70707070 cd484848 ppppHpppppppHHH. 257c4: 69695968 7397eccb 4815484a 70704848 hYii...sJH.HHHpp 257d4: 70707070 70707070 70707070 00000070 ppppppppppppp... ... 257fc: 1f000000 1f1f1f1f 361f1f1f 891f361f ...........6.6.. 2580c: cb1f7857 cdcfcbcf 54cfcfcf 3b3b4fcd Wx.........T.O;; 2581c: 59121259 59595959 59126812 59595959 Y..YYYYY.h.YYYYY 2582c: 54595959 54545454 54545454 54545454 YYYTTTTTTTTTTTTT 2583c: cdcdcd54 cfcfcfcf cbcbcbcf 363636cb T............666 2584c: 00007036 00000000 cbcf7000 703636cb 6p.......p...66p 2585c: 48487070 15157048 00007048 70000000 ppHHHp..Hp.....p 2586c: 70707070 70707070 70707070 36484870 pppppppppppppHH6 2587c: 15695454 6373cacb 48484815 70484848 TTi...sc.HHHHHHp 2588c: 70707070 70707070 00000070 00000000 ppppppppp....... ... 258b8: 70707070 1f707070 2d1f361f 364f9781 ppppppp..6.-..O6 258c8: cd4f3636 cf69cfcd 4f4f4fcd 125959cd 66O...i..OOO.YY. 258d8: 59595959 59121259 54545959 54545454 YYYYY..YYYTTTTTT 258e8: 54545454 54545454 cdcd5454 cfcdcdcd TTTTTTTTTT...... 258f8: 4f4fcfcf 36363636 36363636 00003636 ..OO6666666666.. 25908: 00000000 cb360000 483636cb 48707048 ......6..66HHppH 25918: fd704848 00004848 00000000 70707070 HHp.HH......pppp 25928: 70707070 70707070 48487070 cbcbcf36 ppppppppppHH6... 25938: ca736315 48481548 70707048 70707070 .cs.H.HHHppppppp 25948: 70707070 00000070 00000000 00000000 ppppp........... ... 25970: 70707000 70707070 cf1f1f70 1f692273 .pppppppp...s"i. 25980: 36363636 cd69cf4f 36cf4e0c 5954cf36 6666O.i..N.66.TY 25990: 54595959 54545459 54545454 54544e54 YYYTYTTTTTTTTNTT 259a0: 54545454 54545454 3bcdcd3b 4f4f3b3b TTTTTTTT;..;;;OO 259b0: 364f4f4f 36363636 36363636 00703636 OOO66666666666p. 259c0: 00000000 36000000 483636cb 48484848 .......6.66HHHHH 259d0: 48484848 0048484a 00000000 70707000 HHHHJHH......ppp 259e0: 70707070 70707070 48707070 cbcbcb48 pppppppppppHH... 259f0: fd1c1cec 48481548 70707070 70707070 ....H.HHpppppppp 25a00: 00707070 00000070 00000000 00000000 ppp.p........... ... 25a28: 70700000 70707070 1f707070 7091ed91 ..ppppppppp....p 25a38: 36361f70 0ccdcf36 cd2b2b0c cdcf4fcf p.666....++..O.. 25a48: 54545454 54545454 54545454 54545454 TTTTTTTTTTTTTTTT 25a58: 54545454 3b54cd54 4fa9a9a9 1f1fa91f TTTTT.T;...O.... 25a68: 1f1f701f 361f1f1f 36361f1f 00701f36 .p.....6..666.p. 25a78: 00000000 70000000 48363636 48704848 .......p666HHHpH 25a88: 70484848 4848fd48 00000000 70480000 HHHpH.HH......Hp 25a98: 70707048 70707070 48707070 cbcb4848 HppppppppppHHH.. 25aa8: 15631c4a 48484848 70707070 70707070 J.c.HHHHpppppppp 25ab8: 00000000 70007000 00000000 00000000 .....p.p........ ... 25ae0: 70000000 70707070 70707070 361cff69 ...pppppppppi..6 25af0: 36707070 cdcd3636 1e6eab0c 4f3636cf ppp666....n..66O 25b00: 545454cf 54545454 54545454 54545454 .TTTTTTTTTTTTTTT 25b10: 3b3b3b3b a93b3b3b 701f1f1f 70707070 ;;;;;;;....ppppp 25b20: 70707070 701f1f70 70707070 70707070 ppppp..ppppppppp ... 25b38: 36367070 48484870 48487070 4815fd70 pp66pHHHppHHp..H 25b48: 00000070 70000000 70707070 70707070 p......ppppppppp 25b58: 48707070 48cb4848 48071c4a 70484848 pppHHH.HJ..HHHHp 25b68: 00000070 00007000 00000000 00007000 p....p.......p.. ... 25b9c: 70707070 70707070 4affca70 70707070 ppppppppp..Jpppp 25bac: cf363636 0e6ee9cd 3636cf0c 54544f36 666...n...666OTT 25bbc: 3bcdcd54 cdcdcdcd 3b54cd3b 3b3b3b3b T..;....;.T;;;;; 25bcc: 1f3b3b3b 7070701f 70707070 00007000 ;;;..ppppppp.p.. 25bdc: 70700000 70707070 00707070 00000000 ..ppppppppp..... 25bec: 00000000 48707000 70484848 48484848 .....ppHHHHpHHHH 25bfc: 48fd0048 00000048 70000000 70707070 H..HH......ppppp 25c0c: 70700070 48707070 48484848 484a634a p.pppppHHHHHJcJH 25c1c: 70704848 00000070 00007070 00000070 HHppp...pp..p... 25c2c: 00707000 00000000 00000000 00000000 .pp............. ... 25c54: 70707000 70707070 91633670 70707036 .pppppppp6c.6ppp 25c64: 36367070 b5670ccf 36cdcdab 3b4f3636 pp66..g....666O; 25c74: 3b3b3bcd 3b3b3b3b 4f3b3b3b 1f1fa94f .;;;;;;;;;;OO... 25c84: 701fa9a9 70707070 00707070 00000000 ...pppppppp..... 25c94: 00000000 00707000 00700000 00000000 .....pp...p..... 25ca4: 00000000 70700000 70704870 70487070 ......pppHppppHp 25cb4: 4a707048 00004848 00000000 00707000 HppJHH.......pp. 25cc4: 00000000 70707000 48484848 48fd634a .....pppHHHHJc.H 25cd4: 70704848 00007070 00000000 00000000 HHpppp.......... 25ce4: 70700000 00000070 00000000 00000000 ..ppp........... ... 25d0c: 70700000 70707070 63ec7000 707070ec ..pppppp.p.c.ppp 25d1c: 36707070 6e4e4f36 cf690c87 4f1f7036 ppp66ONn..i.6p.O 25d2c: 3b3b3b3b a9080808 70a9a91f 1f707070 ;;;;.......pppp. 25d3c: 7070701f 00707070 00000070 00000000 .pppppp.p....... ... 25d60: 70000000 70707070 70707070 48007070 ...ppppppppppp.H 25d70: 007070fd 00000000 00700000 00000000 .pp.......p..... 25d80: 70700000 48484848 4815fa4a 00704848 ..ppHHHHJ..HHHp. 25d90: 00007000 00000000 00000000 70700000 .p............pp 25da0: 00007036 00000000 00000000 00000000 6p.............. ... 25dc4: 70000000 00707070 4a700000 000036fa ...pppp...pJ.6.. 25dd4: 70700000 2a363670 4f4f1e6e 70707036 ..ppp66*n.OO6ppp 25de4: 1f4f4f1f 1f1fa91f 70700070 70707070 .OO.....p.pppppp 25df4: 70707070 00707070 00000000 00000000 ppppppp......... 25e04: 00000000 00007000 00000000 00000000 .....p.......... ... 25e1c: 70707000 70707070 00707070 00701515 .pppppppppp...p. ... 25e38: 70700000 48484848 48154a4a 00704848 ..ppHHHHJJ.HHHp. ... 25e54: 70700000 00704f36 00000000 00000000 ..pp6Op......... ... 25e80: 00007070 70000000 00704a4a 70000000 pp.....pJJp....p 25e90: 36367070 4f4fab67 70703636 1f1f7070 pp66g.OO66pppp.. 25ea0: 00707070 70707000 70707070 70707070 ppp..ppppppppppp 25eb0: 70707070 00000000 00000000 00000000 pppp............ 25ec0: 00700000 00000000 00000000 00000000 ..p............. 25ed0: 00000000 70000000 00007070 00000000 .......ppp...... 25ee0: 70481500 00000000 00000000 00000000 ..Hp............ 25ef0: 70000000 48484848 48484afd 00007048 ...pHHHH.JHHHp.. ... 25f0c: 70000000 00363b70 00000000 00000000 ...pp;6......... ... 25f38: 00707000 00000000 70154a70 00000000 .pp.....pJ.p.... 25f48: 70707000 36364e4f 70703636 70707070 .pppON6666pppppp 25f58: 70707070 00000070 70707000 70707070 ppppp....ppppppp 25f68: 00707070 00000000 00000000 00000000 ppp............. ... 25f98: 00150000 00000000 00000000 00000000 ................ 25fa8: 70000000 48484870 4848fdfd 00007048 ...ppHHH..HHHp.. ... 25fc4: 70000000 703b4f70 00000000 00000000 ...ppO;p........ ... 25ff8: cb4a4800 00000000 70700000 36707070 .HJ.......ppppp6 26008: 7070701f 70707070 70707070 00007070 .ppppppppppppp.. 26018: 00000000 70000000 00000000 00000000 .......p........ ... 26050: 48700000 00000000 00000000 00000000 ..pH............ 26060: 00000000 48484870 4848fdfd 00007048 ....pHHH..HHHp.. ... 26080: 364f1f70 00000070 00000000 00000000 p.O6p........... ... 260b0: fd480000 00000048 00000000 70707070 ..H.H.......pppp 260c0: 70707070 70000070 70707070 00707070 ppppp..pppppppp. ... 2611c: 48487070 48481515 00000070 00000000 ppHH..HHp....... ... 26138: 4f4f7000 00000070 00000000 00000000 .pOOp........... ... 26168: 48000000 00004848 00000000 70000000 ...HHH.........p 26178: 70707070 00000070 70707000 00000070 ppppp....pppp... ... 261d4: 48487000 48481515 00000070 00000000 .pHH..HHp....... ... 261f0: 4f1f0000 0000001f 00000000 00000000 ...O............ ... 26220: 70000000 70484848 00000000 00000000 ...pHHHp........ 26230: 70000000 00000000 70000000 00000070 ...p.......pp... ... 2628c: 48700000 48481515 00000070 00000000 ..pH..HHp....... ... 262a8: 36700000 00007036 00000000 00000000 ..p66p.......... ... 262dc: 48484870 00000000 00000000 00000000 pHHH............ ... 26344: 70000000 70481548 00000070 00000000 ...pH.Hpp....... ... 26360: 70000000 00007036 00000000 00000000 ...p6p.......... ... 2638c: 2e000000 68732f2e 64657261 6968742f ...../shared/thi 2639c: 61706472 2f797472 6c67766c 6372732f rdparty/lvgl/src 263ac: 5f766c2f 65726f63 5f766c2f 75626564 /lv_core/lv_debu 263bc: 00632e67 645f766c 67756265 6568635f g.c.lv_debug_che 263cc: 735f6b63 203a7274 6f6e2061 53412d6e ck_str: a non-AS 263dc: 20494943 72616863 73616820 70657220 CII char has rep 263ec: 65746165 6f6d2064 74206572 206e6168 eated more than 263fc: 445f564c 47554245 5254535f 58414d5f LV_DEBUG_STR_MAX 2640c: 5045525f 20544145 656d6974 6c002973 _REPEAT times).l 2641c: 65645f76 5f677562 63656863 74735f6b v_debug_check_st 2642c: 69203a72 6c61766e 63206469 20726168 r: invalid char 2643c: 74206e69 73206568 6e697274 3c282067 in the string (< 2644c: 20303120 756c6176 6c002965 65645f76 10 value).lv_de 2645c: 5f677562 63656863 74735f6b 73203a72 bug_check_str: s 2646c: 6e697274 73692067 6e6f6c20 20726567 tring is longer 2647c: 6e616874 5f564c20 55424544 54535f47 than LV_DEBUG_ST 2648c: 414d5f52 454c5f58 4854474e R_MAX_LENGTH. 00026499 <__func__.2>: 26499: 645f766c 67756265 6568635f 735f6b63 lv_debug_check_s 264a9: tr. 000264ac : 264ac: 33323130 37363534 42413938 46454443 0123456789ABCDEF ... 000264bd <__func__.0>: 264bd: 645f766c 67756265 676f6c5f 7272655f lv_debug_log_err 264cd: 2e00726f 68732f2e 64657261 6968742f or.../shared/thi 264dd: 61706472 2f797472 6c67766c 6372732f rdparty/lvgl/src 264ed: 5f766c2f 65726f63 5f766c2f 70736964 /lv_core/lv_disp 264fd: 6c00632e 63735f76 63615f72 6e203a74 .c.lv_scr_act: n 2650d: 6964206f 616c7073 65722079 74736967 o display regist 2651d: 64657265 206f7420 20746567 20737469 ered to get its 2652d: 2e746361 72637320 006e6565 6c5f766c act. screen.lv_l 2653d: 72657961 706f745f 6f6e203a 73696420 ayer_top: no dis 2654d: 79616c70 67657220 65747369 20646572 play registered 2655d: 67206f74 69207465 74207374 6c20706f to get its top l 2656d: 72657961 5f766c00 6579616c 79735f72 ayer.lv_layer_sy 2657d: 6e203a73 6964206f 616c7073 65722079 s: no display re 2658d: 74736967 64657265 206f7420 20746567 gistered to get 2659d: 20737469 2e737973 79616c20 6c007265 its sys. layer.l 265ad: 69645f76 615f7073 67697373 63735f6e v_disp_assign_sc 265bd: 6e656572 7274203a 6f742079 73736120 reen: try to ass 265cd: 206e6769 6f6e2061 63732d6e 6e656572 ign a non-screen 265dd: 6a626f20 00746365 645f766c 5f707369 object.lv_disp_ 265ed: 5f746567 63616e69 65766974 6d69745f get_inactive_tim 265fd: 6e203a65 6964206f 616c7073 65722079 e: no display re 2660d: 74736967 64657265 5f766c00 70736964 gistered.lv_disp 2661d: 6972745f 63615f67 69766974 203a7974 _trig_activity: 2662d: 64206f6e 6c707369 72207961 73696765 no display regis 2663d: 65726574 766c0064 7369645f 65675f70 tered.lv_disp_ge 2664d: 65725f74 745f7266 3a6b7361 206f6e20 t_refr_task: no 2665d: 70736964 2079616c 69676572 72657473 display register 2666d: ed. 00026670 <__func__.6>: 26670: 645f766c 5f707369 5f746567 5f726373 lv_disp_get_scr_ 26680: 00746361 act. 00026684 <__func__.5>: 26684: 645f766c 5f707369 5f746567 6579616c lv_disp_get_laye 26694: 6f745f72 r_top. 0002669a <__func__.4>: 2669a: 645f766c 5f707369 5f746567 6579616c lv_disp_get_laye 266aa: 79735f72 r_sys. 000266b0 <__func__.3>: 266b0: 645f766c 5f707369 69737361 735f6e67 lv_disp_assign_s 266c0: 65657263 creen. 000266c6 <__func__.2>: 266c6: 645f766c 5f707369 5f746567 63616e69 lv_disp_get_inac 266d6: 65766974 6d69745f tive_time. 000266e0 <__func__.1>: 266e0: 645f766c 5f707369 67697274 7463615f lv_disp_trig_act 266f0: 74697669 ivity. 000266f6 <__func__.0>: 266f6: 5f766c5f 70736964 7465675f 6665725f _lv_disp_get_ref 26706: 61745f72 2e006b73 68732f2e 64657261 r_task.../shared 26716: 6968742f 61706472 2f797472 6c67766c /thirdparty/lvgl 26726: 6372732f 5f766c2f 65726f63 5f766c2f /src/lv_core/lv_ 26736: 756f7267 00632e70 2074754f 6d20666f group.c.Out of m 26746: 726f6d65 766c0079 6f72675f 615f7075 emory.lv_group_a 26756: 6f5f6464 203a6a62 20656874 656a626f dd_obj: the obje 26766: 69207463 6c612073 64616572 64612079 ct is already ad 26776: 20646564 74206f74 20736968 756f7267 ded to this grou 26786: 766c0070 6f72675f 615f7075 6f5f6464 p.lv_group_add_o 26796: 203a6a62 69737361 6f206e67 63656a62 bj: assign objec 267a6: 6f742074 206e6120 6568746f 72672072 t to an other gr 267b6: 0070756f oup. 000267ba <__func__.1>: 267ba: 675f766c 70756f72 6572635f 00657461 lv_group_create. 000267ca <__func__.0>: 267ca: 675f766c 70756f72 6464615f 6a626f5f lv_group_add_obj 267da: 2f2e2e00 72616873 742f6465 64726968 .../shared/third 267ea: 74726170 766c2f79 732f6c67 6c2f6372 party/lvgl/src/l 267fa: 6f635f76 6c2f6572 626f5f76 00632e6a v_core/lv_obj.c. 2680a: 695f766c 3a74696e 726c6120 79646165 lv_init: already 2681a: 696e6920 00646574 695f766c 2074696e inited.lv_init 2682a: 64616572 766c0079 6965645f 2074696e ready.lv_deinit 2683a: 656e6f64 4c554e00 6f70204c 65746e69 done.NULL pointe 2684a: 766c0072 7263735f 7465675f 7369645f r.lv_scr_get_dis 2685a: 73203a70 65657263 6f6e206e 6f662074 p: screen not fo 2686a: 00646e75 6f5f766c 735f6a62 625f7465 und.lv_obj_set_b 2687a: 5f657361 3a726964 766e6920 64696c61 ase_dir: invalid 2688a: 73616220 69642065 766c0072 6a626f5f base dir.lv_obj 2689a: 656c635f 735f6e61 656c7974 73696c5f _clean_style_lis 268aa: 63203a74 74276e61 6e696620 74732064 t: can't find st 268ba: 20656c79 68746977 61706020 00607472 yle with `part`. 268ca: 6f5f766c 735f6a62 705f7465 203a736f lv_obj_set_pos: 268da: 20746f6e 6e616863 676e6967 736f7020 not changing pos 268ea: 6f697469 666f206e 72637320 206e6565 ition of screen 268fa: 656a626f 6c007463 626f5f76 64615f6a object.lv_obj_ad 2690a: 74735f64 3a656c79 6e616320 66207427 d_style: can't f 2691a: 20646e69 6c797473 69772065 60206874 ind style with ` 2692a: 65707974 766c0060 6a626f5f 6572635f type`.lv_obj_cre 2693a: 3a657461 746f6e20 73696420 79616c70 ate: not display 2694a: 65726320 64657461 206f7420 66206f73 created to so f 2695a: 202e7261 70206f4e 6563616c 206f7420 ar. No place to 2696a: 69737361 74206e67 6e206568 73207765 assign the new s 2697a: 65657263 624f006e 7463656a 65726320 creen.Object cre 2698a: 20657461 64616572 61430079 2074276e ate ready.Can't 2699a: 20746573 20656874 65726170 6f20746e set the parent o 269aa: 20612066 65726373 43006e65 74276e61 f a screen.Can't 269ba: 74657320 72617020 20746e65 4e203d3d set parent == N 269ca: 204c4c55 61206f74 626f206e 7463656a ULL to an object 269da: 5f766c00 006a626f .lv_obj. 000269e2 <__func__.90>: 269e2: 695f766c 0074696e lv_init. 000269ea <__func__.89>: 269ea: 645f766c 696e6965 lv_deinit. 000269f4 <__func__.86>: 269f4: 6f5f766c 645f6a62 615f6c65 636e7973 lv_obj_del_async ... 00026a05 <__func__.69>: 26a05: 6f5f766c 735f6a62 615f7465 5f6f7475 lv_obj_set_auto_ 26a15: 6c616572 006e6769 realign. 00026a1d <__func__.68>: 26a1d: 6f5f766c 735f6a62 655f7465 635f7478 lv_obj_set_ext_c 26a2d: 6b63696c 6572615f lick_area. 00026a37 <__func__.62>: 26a37: 6f5f766c 735f6a62 615f7465 685f7664 lv_obj_set_adv_h 26a47: 65747469 ittest. 00026a4e <__func__.61>: 26a4e: 6f5f766c 735f6a62 635f7465 6b63696c lv_obj_set_click ... 00026a5f <__func__.60>: 26a5f: 6f5f766c 735f6a62 745f7465 lv_obj_set_top. 00026a6e <__func__.59>: 26a6e: 6f5f766c 735f6a62 645f7465 00676172 lv_obj_set_drag. 00026a7e <__func__.58>: 26a7e: 6f5f766c 735f6a62 645f7465 5f676172 lv_obj_set_drag_ 26a8e: 00726964 dir. 00026a92 <__func__.57>: 26a92: 6f5f766c 735f6a62 645f7465 5f676172 lv_obj_set_drag_ 26aa2: 6f726874 throw. 00026aa8 <__func__.56>: 26aa8: 6f5f766c 735f6a62 645f7465 5f676172 lv_obj_set_drag_ 26ab8: 65726170 parent. 00026abf <__func__.55>: 26abf: 6f5f766c 735f6a62 705f7465 6e657261 lv_obj_set_paren 26acf: 76655f74 00746e65 t_event. 00026ad7 <__func__.53>: 26ad7: 6f5f766c 615f6a62 705f6464 65746f72 lv_obj_add_prote 26ae7: ct. 00026aea <__func__.52>: 26aea: 6f5f766c 635f6a62 7261656c 6f72705f lv_obj_clear_pro 26afa: 74636574 tect. 00026aff <__func__.47>: 26aff: 6f5f766c 735f6a62 655f7465 746e6576 lv_obj_set_event 26b0f: 0062635f _cb. 00026b13 <__func__.45>: 26b13: 655f766c 746e6576 6e65735f 75665f64 lv_event_send_fu 26b23: nc. 00026b26 <__func__.46>: 26b26: 655f766c 746e6576 6e65735f lv_event_send. 00026b34 <__func__.44>: 26b34: 6f5f766c 735f6a62 735f7465 616e6769 lv_obj_set_signa 26b44: 62635f6c l_cb. 00026b49 <__func__.43>: 26b49: 6f5f766c 735f6a62 645f7465 67697365 lv_obj_set_desig 26b59: 62635f6e n_cb. 00026b5e <__func__.42>: 26b5e: 6f5f766c 615f6a62 636f6c6c 5f657461 lv_obj_allocate_ 26b6e: 5f747865 72747461 ext_attr. 00026b77 <__func__.41>: 26b77: 6f5f766c 725f6a62 65726665 655f6873 lv_obj_refresh_e 26b87: 645f7478 5f776172 00646170 xt_draw_pad. 00026b93 <__func__.38>: 26b93: 6f5f766c 675f6a62 705f7465 6e657261 lv_obj_get_paren 26ba3: t. 00026ba5 <__func__.40>: 26ba5: 6f5f766c 675f6a62 735f7465 65657263 lv_obj_get_scree 26bb5: n. 00026bb7 <__func__.39>: 26bb7: 6f5f766c 675f6a62 645f7465 00707369 lv_obj_get_disp. 00026bc7 <__func__.37>: 26bc7: 6f5f766c 675f6a62 635f7465 646c6968 lv_obj_get_child ... 00026bd8 <__func__.54>: 26bd8: 6f5f766c 735f6a62 625f7465 5f657361 lv_obj_set_base_ 26be8: 00726964 dir. 00026bec <__func__.36>: 26bec: 6f5f766c 675f6a62 635f7465 646c6968 lv_obj_get_child 26bfc: 6361625f _back. 00026c02 <__func__.35>: 26c02: 6f5f766c 635f6a62 746e756f 6968635f lv_obj_count_chi 26c12: 6572646c ldren. 00026c18 <__func__.34>: 26c18: 6f5f766c 635f6a62 746e756f 6968635f lv_obj_count_chi 26c28: 6572646c 65725f6e 73727563 00657669 ldren_recursive. 00026c38 <__func__.33>: 26c38: 6f5f766c 675f6a62 635f7465 64726f6f lv_obj_get_coord 26c48: s. 00026c4a <__func__.31>: 26c4a: 6f5f766c 675f6a62 785f7465 lv_obj_get_x. 00026c57 <__func__.30>: 26c57: 6f5f766c 675f6a62 795f7465 lv_obj_get_y. 00026c64 <__func__.29>: 26c64: 6f5f766c 675f6a62 775f7465 68746469 lv_obj_get_width ... 00026c75 <__func__.28>: 26c75: 6f5f766c 675f6a62 685f7465 68676965 lv_obj_get_heigh 26c85: t. 00026c87 <__func__.25>: 26c87: 6f5f766c 675f6a62 615f7465 5f6f7475 lv_obj_get_auto_ 26c97: 6c616572 006e6769 realign. 00026c9f <__func__.24>: 26c9f: 6f5f766c 675f6a62 655f7465 635f7478 lv_obj_get_ext_c 26caf: 6b63696c 6461705f 66656c5f lick_pad_left. 00026cbd <__func__.23>: 26cbd: 6f5f766c 675f6a62 655f7465 635f7478 lv_obj_get_ext_c 26ccd: 6b63696c 6461705f 6769725f lick_pad_right. 00026cdc <__func__.22>: 26cdc: 6f5f766c 675f6a62 655f7465 635f7478 lv_obj_get_ext_c 26cec: 6b63696c 6461705f 706f745f lick_pad_top. 00026cf9 <__func__.21>: 26cf9: 6f5f766c 675f6a62 655f7465 635f7478 lv_obj_get_ext_c 26d09: 6b63696c 6461705f 746f625f 006d6f74 lick_pad_bottom. 00026d19 <__func__.20>: 26d19: 6f5f766c 675f6a62 655f7465 645f7478 lv_obj_get_ext_d 26d29: 5f776172 00646170 raw_pad. 00026d31 <__func__.66>: 26d31: 6f5f766c 635f6a62 6e61656c 7974735f lv_obj_clean_sty 26d41: 6c5f656c 00747369 le_list. 00026d49 <__func__.19>: 26d49: 6f5f766c 675f6a62 6c5f7465 6c61636f lv_obj_get_local 26d59: 7974735f _style. 00026d60 <__func__.65>: 26d60: 6f5f766c 725f6a62 766f6d65 74735f65 lv_obj_remove_st 26d70: 5f656c79 61636f6c 72705f6c yle_local_prop. 00026d7f <__func__.18>: 26d7f: 6f5f766c 675f6a62 685f7465 65646469 lv_obj_get_hidde 26d8f: n. 00026d91 <__func__.83>: 26d91: 6f5f766c 695f6a62 6c61766e 74616469 lv_obj_invalidat 26da1: 72615f65 e_area. 00026da8 <__func__.82>: 26da8: 6f5f766c 695f6a62 6c61766e 74616469 lv_obj_invalidat 26db8: e. 00026dba <__func__.80>: 26dba: 6f5f766c 6d5f6a62 5f65766f 65726f66 lv_obj_move_fore 26dca: 756f7267 ground. 00026dd1 <__func__.79>: 26dd1: 6f5f766c 6d5f6a62 5f65766f 6b636162 lv_obj_move_back 26de1: 756f7267 ground. 00026de8 <__func__.78>: 26de8: 6f5f766c 735f6a62 705f7465 lv_obj_set_pos. 00026df7 <__func__.77>: 26df7: 6f5f766c 735f6a62 785f7465 lv_obj_set_x. 00026e04 <__func__.76>: 26e04: 6f5f766c 735f6a62 795f7465 lv_obj_set_y. 00026e11 <__func__.72>: 26e11: 6f5f766c 615f6a62 6e67696c lv_obj_align. 00026e1e <__func__.71>: 26e1e: 6f5f766c 615f6a62 6e67696c 69726f5f lv_obj_align_ori 26e2e: go. 00026e31 <__func__.70>: 26e31: 6f5f766c 725f6a62 696c6165 lv_obj_realign. 00026e40 <__func__.64>: 26e40: 6f5f766c 725f6a62 65726665 735f6873 lv_obj_refresh_s 26e50: 656c7974 tyle. 00026e55 <__func__.67>: 26e55: 6f5f766c 615f6a62 735f6464 656c7974 lv_obj_add_style ... 00026e66 <__func__.63>: 26e66: 6f5f766c 735f6a62 685f7465 65646469 lv_obj_set_hidde 26e76: n. 00026e78 <__func__.17>: 26e78: 6f5f766c 675f6a62 615f7465 685f7664 lv_obj_get_adv_h 26e88: 65747469 ittest. 00026e8f <__func__.16>: 26e8f: 6f5f766c 675f6a62 635f7465 6b63696c lv_obj_get_click ... 00026ea0 <__func__.15>: 26ea0: 6f5f766c 675f6a62 745f7465 lv_obj_get_top. 00026eaf <__func__.14>: 26eaf: 6f5f766c 675f6a62 645f7465 00676172 lv_obj_get_drag. 00026ebf <__func__.13>: 26ebf: 6f5f766c 675f6a62 645f7465 5f676172 lv_obj_get_drag_ 26ecf: 00726964 dir. 00026ed3 <__func__.12>: 26ed3: 6f5f766c 675f6a62 645f7465 5f676172 lv_obj_get_drag_ 26ee3: 6f726874 throw. 00026ee9 <__func__.11>: 26ee9: 6f5f766c 675f6a62 705f7465 6e657261 lv_obj_get_paren 26ef9: 76655f74 00746e65 t_event. 00026f01 <__func__.10>: 26f01: 6f5f766c 675f6a62 625f7465 5f657361 lv_obj_get_base_ 26f11: 00726964 dir. 00026f15 <__func__.88>: 26f15: 6f5f766c 635f6a62 74616572 lv_obj_create. 00026f23 <__func__.81>: 26f23: 6f5f766c 735f6a62 705f7465 6e657261 lv_obj_set_paren 26f33: t. 00026f35 <__func__.75>: 26f35: 6f5f766c 735f6a62 735f7465 00657a69 lv_obj_set_size. 00026f45 <__func__.74>: 26f45: 6f5f766c 735f6a62 775f7465 68746469 lv_obj_set_width ... 00026f56 <__func__.73>: 26f56: 6f5f766c 735f6a62 685f7465 68676965 lv_obj_set_heigh 26f66: t. 00026f68 <__func__.9>: 26f68: 6f5f766c 675f6a62 705f7465 65746f72 lv_obj_get_prote 26f78: ct. 00026f7b <__func__.8>: 26f7b: 6f5f766c 695f6a62 72705f73 6365746f lv_obj_is_protec 26f8b: 00646574 ted. 00026f8f <__func__.7>: 26f8f: 6f5f766c 675f6a62 735f7465 65746174 lv_obj_get_state ... 00026fa0 <__func__.27>: 26fa0: 6f5f766c 675f6a62 775f7465 68746469 lv_obj_get_width 26fb0: 7469665f _fit. 00026fb5 <__func__.26>: 26fb5: 6f5f766c 675f6a62 685f7465 68676965 lv_obj_get_heigh 26fc5: 69665f74 t_fit. 00026fcb <__func__.32>: 26fcb: 6f5f766c 675f6a62 695f7465 72656e6e lv_obj_get_inner 26fdb: 6f6f635f 00736472 _coords.... 00026fe6 <__func__.51>: 26fe6: 6f5f766c 735f6a62 735f7465 65746174 lv_obj_set_state ... 00026ff7 <__func__.50>: 26ff7: 6e617274 72635f73 65746165 trans_create. 00027004 <__func__.49>: 27004: 6f5f766c 615f6a62 735f6464 65746174 lv_obj_add_state ... 00027015 <__func__.48>: 27015: 6f5f766c 635f6a62 7261656c 6174735f lv_obj_clear_sta 27025: te. 00027028 <__func__.6>: 27028: 6f5f766c 675f6a62 735f7465 616e6769 lv_obj_get_signa 27038: 62635f6c l_cb. 0002703d <__func__.5>: 2703d: 6f5f766c 675f6a62 645f7465 67697365 lv_obj_get_desig 2704d: 62635f6e n_cb. 00027052 <__func__.4>: 27052: 6f5f766c 675f6a62 655f7465 746e6576 lv_obj_get_event 27062: 0062635f _cb. 00027066 <__func__.3>: 27066: 6f5f766c 675f6a62 655f7465 615f7478 lv_obj_get_ext_a 27076: 00727474 ttr. 0002707a <__func__.2>: 2707a: 6f5f766c 675f6a62 745f7465 00657079 lv_obj_get_type. 0002708a <__func__.1>: 2708a: 6f5f766c 675f6a62 675f7465 70756f72 lv_obj_get_group ... 0002709b <__func__.87>: 2709b: 6f5f766c 645f6a62 lv_obj_del. 000270a6 <__func__.85>: 270a6: 6f5f766c 645f6a62 615f6c65 636e7973 lv_obj_del_async 270b6: 0062635f _cb. 000270ba <__func__.84>: 270ba: 6f5f766c 635f6a62 6e61656c lv_obj_clean. 000270c7 <__func__.0>: 270c7: 6f5f766c 695f6a62 6f665f73 65737563 lv_obj_is_focuse 270d7: 2e2e0064 6168732f 2f646572 72696874 d.../shared/thir 270e7: 72617064 6c2f7974 2f6c6776 2f637273 dparty/lvgl/src/ 270f7: 635f766c 2f65726f 725f766c 2e726665 lv_core/lv_refr. 27107: 61430063 2074276e 20746573 20424456 c.Can't set VDB 27117: 67696568 75207468 676e6973 65687420 height using the 27127: 756f7220 6620646e 74636e75 2e6e6f69 round function. 27137: 72572820 20676e6f 6e756f72 62635f64 (Wrong round_cb 27147: 20726f20 73206f74 6c6c616d 42445620 or to small VDB 27157: ). 00027159 <__func__.0>: 27159: 725f766c 5f726665 61657261 2f2e2e00 lv_refr_area.../ 27169: 72616873 742f6465 64726968 74726170 shared/thirdpart 27179: 766c2f79 732f6c67 6c2f6372 6f635f76 y/lvgl/src/lv_co 27189: 6c2f6572 74735f76 2e656c79 766c0063 re/lv_style.c.lv 27199: 7974735f 6c5f656c 5f747369 6f6d6572 _style_list_remo 271a9: 735f6576 656c7974 6f63203a 6e646c75 ve_style: couldn 271b9: 72207427 6c6c6165 7461636f 6c632065 't reallocate cl 271c9: 20737361 7473696c 5f766c00 6c797473 ass list.lv_styl 271d9: 696c5f65 615f7473 735f6464 656c7974 e_list_add_style 271e9: 6f63203a 6e646c75 61207427 74206464 : couldn't add t 271f9: 63206568 7373616c 74656700 636f6c5f he class.get_loc 27209: 735f6c61 656c7974 6f63203a 6e646c75 al_style: couldn 27219: 63207427 74616572 6f6c2065 206c6163 't create local 27229: 6c797473 766c0065 7974735f 6c5f656c style.lv_style_l 27239: 5f747369 5f646461 6e617274 74735f73 ist_add_trans_st 27249: 3a656c79 756f6320 276e646c 72632074 yle: couldn't cr 27259: 65746165 61727420 7469736e 206e6f69 eate transition 27269: 6c797473 style. 0002726f <__func__.5>: 2726f: 5f766c5f 6c797473 696c5f65 725f7473 _lv_style_list_r 2727f: 766f6d65 74735f65 00656c79 emove_style. 0002728b <__func__.6>: 2728b: 5f766c5f 6c797473 696c5f65 615f7473 _lv_style_list_a 2729b: 735f6464 656c7974 dd_style. 000272a4 <__func__.7>: 272a4: 5f746567 6f6c6c61 6f6c5f63 5f6c6163 get_alloc_local_ 272b4: 6c797473 style. 000272ba <__func__.4>: 272ba: 5f766c5f 6c797473 65735f65 6e695f74 _lv_style_set_in 272ca: t. 000272cc <__func__.3>: 272cc: 5f766c5f 6c797473 65735f65 6f635f74 _lv_style_set_co 272dc: 00726f6c lor. 000272e0 <__func__.2>: 272e0: 5f766c5f 6c797473 65735f65 706f5f74 _lv_style_set_op 272f0: a. 000272f2 <__func__.1>: 272f2: 5f766c5f 6c797473 65735f65 74705f74 _lv_style_set_pt 27302: r. 00027304 <__func__.0>: 27304: 5f766c5f 6c797473 696c5f65 615f7473 _lv_style_list_a 27314: 745f6464 736e6172 7974735f 2e00656c dd_trans_style.. 27324: 68732f2e 64657261 6968742f 61706472 ./shared/thirdpa 27334: 2f797472 6c67766c 6372732f 5f766c2f rty/lvgl/src/lv_ 27344: 77617264 5f766c2f 77617264 656c625f draw/lv_draw_ble 27354: 632e646e 6c696600 6c625f6c 65646e65 nd.c.fill_blende 27364: 75203a64 7075736e 74726f70 62206465 d: unsupported b 27374: 646e656c 646f6d20 lend mode. 0002737e <__func__.1>: 2737e: 6c6c6966 656c625f 6465646e fill_blended. 0002738b <__func__.0>: 2738b: 5f70616d 6e656c62 00646564 732f2e2e map_blended.../s 2739b: 65726168 68742f64 70647269 79747261 hared/thirdparty 273ab: 67766c2f 72732f6c 766c2f63 6172645f /lvgl/src/lv_dra 273bb: 766c2f77 6172645f 6d695f77 00632e67 w/lv_draw_img.c. 273cb: 67616d49 72642065 203a7761 20637273 Image draw: src 273db: 4e207369 004c4c55 640a6f4e 00617461 is NULL.No.data. 273eb: 67616d49 72642065 65207761 726f7272 Image draw error 273fb: 616d4900 64206567 20776172 276e6163 .Image draw can' 2740b: 65722074 74206461 6c206568 00656e69 t read the line. 2741b: ... 0002741e : 2741e: 01101810 01080402 ........... 00027429 <__func__.2>: 27429: 645f766c 5f776172 00676d69 lv_draw_img. 00027435 <__func__.1>: 27435: 695f766c 645f676d 5f776172 65726f63 lv_img_draw_core 27445: 2f2e2e00 72616873 742f6465 64726968 .../shared/third 27455: 74726170 766c2f79 732f6c67 6c2f6372 party/lvgl/src/l 27465: 72645f76 6c2f7761 72645f76 6c5f7761 v_draw/lv_draw_l 27475: 6c656261 6c00632e 72645f76 6c5f7761 abel.c.lv_draw_l 27485: 65747465 67203a72 6870796c 63736420 etter: glyph dsc 27495: 6f6e202e 6f662074 00646e75 645f766c . not found.lv_d 274a5: 5f776172 7474656c 203a7265 72616863 raw_letter: char 274b5: 65746361 20732772 6d746962 6e207061 acter's bitmap n 274c5: 6620746f 646e756f 5f766c00 77617264 ot found.lv_draw 274d5: 74656c5f 3a726574 766e6920 64696c61 _letter: invalid 274e5: 70706220 746f6e20 756f6620 6c00646e bpp not found.l 274f5: 72645f76 6c5f7761 65747465 69203a72 v_draw_letter: i 27505: 6c61766e 62206469 nvalid bpp. 00027510 <_lv_bpp1_opa_table>: 27510: .. 00027512 <_lv_bpp2_opa_table>: 27512: ffaa5500 .U.. 00027516 <_lv_bpp4_opa_table>: 27516: 33221100 77665544 bbaa9988 ffeeddcc .."3DUfw........ 00027526 <_lv_bpp8_opa_table>: 27526: 03020100 07060504 0b0a0908 0f0e0d0c ................ 27536: 13121110 17161514 1b1a1918 1f1e1d1c ................ 27546: 23222120 27262524 2b2a2928 2f2e2d2c !"#$%&'()*+,-./ 27556: 33323130 37363534 3b3a3938 3f3e3d3c 0123456789:;<=>? 27566: 43424140 47464544 4b4a4948 4f4e4d4c @ABCDEFGHIJKLMNO 27576: 53525150 57565554 5b5a5958 5f5e5d5c PQRSTUVWXYZ[\]^_ 27586: 63626160 67666564 6b6a6968 6f6e6d6c `abcdefghijklmno 27596: 73727170 77767574 7b7a7978 7f7e7d7c pqrstuvwxyz{|}~. 275a6: 83828180 87868584 8b8a8988 8f8e8d8c ................ 275b6: 93929190 97969594 9b9a9998 9f9e9d9c ................ 275c6: a3a2a1a0 a7a6a5a4 abaaa9a8 afaeadac ................ 275d6: b3b2b1b0 b7b6b5b4 bbbab9b8 bfbebdbc ................ 275e6: c3c2c1c0 c7c6c5c4 cbcac9c8 cfcecdcc ................ 275f6: d3d2d1d0 d7d6d5d4 dbdad9d8 dfdedddc ................ 27606: e3e2e1e0 e7e6e5e4 ebeae9e8 efeeedec ................ 27616: f3f2f1f0 f7f6f5f4 fbfaf9f8 fffefdfc ................ 00027626 <__func__.5>: 27626: 645f766c 5f776172 7474656c lv_draw_letter. 00027635 <__func__.4>: 27635: 77617264 74656c5f 5f726574 70627573 draw_letter_subp 27645: x. 00027647 <__func__.3>: 27647: 77617264 74656c5f 5f726574 6d726f6e draw_letter_norm 27657: al. 0002765a <_lv_bpp3_opa_table>: 2765a: 6d492400 ffdbb692 .$Im.... 00027662 : 27662: 81808080 83828281 87868584 8d8c8a89 ................ 27672: 9593918f 9e9b9997 a7a5a2a0 b2afadaa ................ 27682: 2f2e2eb5 72616873 742f6465 64726968 .../shared/third 27692: 74726170 766c2f79 732f6c67 6c2f6372 party/lvgl/src/l 276a2: 72645f76 6c2f7761 72645f76 6d5f7761 v_draw/lv_draw_m 276b2: 2e6b7361 766c0063 73616d5f 64615f6b ask.c.lv_mask_ad 276c2: 6e203a64 6c70206f 20656361 61206f74 d: no place to a 276d2: 74206464 6d206568 006b7361 dd the mask. 000276de <__func__.1>: 276de: 645f766c 5f776172 6b73616d 6464615f lv_draw_mask_add 276ee: 2f2e2e00 72616873 742f6465 64726968 .../shared/third 276fe: 74726170 766c2f79 732f6c67 6c2f6372 party/lvgl/src/l 2770e: 72645f76 6c2f7761 72645f76 725f7761 v_draw/lv_draw_r 2771e: 2e746365 72640063 695f7761 203a676d ect.c.draw_img: 2772e: 276e6163 65672074 6d692074 20656761 can't get image 2773e: 6f666e69 5f766c00 5f676d69 69736564 info.lv_img_desi 2774e: 203a6e67 67616d69 6f732065 65637275 gn: image source 2775e: 70797420 73692065 6b6e7520 6e776f6e type is unknown 2776e: ffff0000 .... 00027772 <__func__.0>: 27772: 77617264 7461705f 6e726574 22110000 draw_pattern..." 27782: 66554433 aa998877 eeddccbb 3DUfw........ 0002778f <__func__.0>: 2778f: 695f766c 625f676d 735f6675 705f7465 lv_img_buf_set_p 2779f: 74656c61 2e006574 68732f2e 64657261 alette.../shared 277af: 6968742f 61706472 2f797472 6c67766c /thirdparty/lvgl 277bf: 6372732f 5f766c2f 77617264 5f766c2f /src/lv_draw/lv_ 277cf: 5f676d69 68636163 00632e65 695f766c img_cache.c.lv_i 277df: 635f676d 65686361 65706f5f 74203a6e mg_cache_open: t 277ef: 63206568 65686361 7a697320 73692065 he cache size is 277ff: 69003020 6567616d 61726420 63203a77 0.image draw: c 2780f: 65686361 73696d20 63202c73 65736f6c ache miss, close 2781f: 646e6120 75657220 61206573 6e65206e and reuse an en 2782f: 00797274 67616d69 72642065 203a7761 try.image draw: 2783f: 68636163 696d2065 202c7373 68636163 cache miss, cach 2784f: 74206465 6e61206f 706d6520 65207974 ed to an empty e 2785f: 7972746e 616d4900 64206567 20776172 ntry.Image draw 2786f: 6e6e6163 6f20746f 206e6570 20656874 cannot open the 2787f: 67616d69 65722065 72756f73 image resource. 0002788e <__func__.1>: 2788e: 5f766c5f 5f676d69 68636163 706f5f65 _lv_img_cache_op 2789e: en. 000278a1 <__func__.0>: 278a1: 695f766c 635f676d 65686361 7465735f lv_img_cache_set 278b1: 7a69735f 2e2e0065 6168732f 2f646572 _size.../shared/ 278c1: 72696874 72617064 6c2f7974 2f6c6776 thirdparty/lvgl/ 278d1: 2f637273 645f766c 2f776172 695f766c src/lv_draw/lv_i 278e1: 645f676d 646f6365 632e7265 616d4900 mg_decoder.c.Ima 278f1: 67206567 69207465 206f666e 20746567 ge get info get 27901: 64616572 6c696620 65682065 72656461 read file header 27911: 616d4900 67206567 69207465 206f666e .Image get info 27921: 6e756f66 6e752064 776f6e6b 7273206e found unknown sr 27931: 79742063 42006570 746c6975 206e692d c type.Built-in 27941: 67616d69 65642065 65646f63 65732072 image decoder se 27951: 66206b65 656c6961 75420064 2d746c69 ek failed.Built- 27961: 69206e69 6567616d 63656420 7265646f in image decoder 27971: 61657220 61662064 64656c69 69754200 read failed.Bui 27981: 692d746c 6d69206e 20656761 6f636564 lt-in image deco 27991: 20726564 64616572 746f6e20 70757320 der read not sup 279a1: 74726f70 68742073 6f632065 20726f6c ports the color 279b1: 6d726f66 62007461 42006e69 746c6975 format.bin.Built 279c1: 206e692d 67616d69 65642065 65646f63 -in image decode 279d1: 61632072 2074276e 6e65706f 65687420 r can't open the 279e1: 6c696620 6d690065 65645f67 65646f63 file.img_decode 279f1: 75625f72 5f746c69 6f5f6e69 3a6e6570 r_built_in_open: 27a01: 74756f20 20666f20 6f6d656d 49007972 out of memory.I 27a11: 6567616d 63656420 7265646f 65706f20 mage decoder ope 27a21: 75203a6e 6f6e6b6e 63206e77 726f6c6f n: unknown color 27a31: 726f6620 0074616d 695f766c 645f676d format.lv_img_d 27a41: 646f6365 695f7265 3a74696e 74756f20 ecoder_init: out 27a51: 20666f20 6f6d656d of memory. 00027a5c <__func__.3>: 27a5c: 695f766c 645f676d 646f6365 625f7265 lv_img_decoder_b 27a6c: 746c6975 5f6e695f 6f666e69 uilt_in_info. 00027a79 <__func__.0>: 27a79: 695f766c 645f676d 646f6365 625f7265 lv_img_decoder_b 27a89: 746c6975 5f6e695f 656e696c 7572745f uilt_in_line_tru 27a99: 6f635f65 00726f6c 33221100 77665544 e_color..."3DUfw 27aa9: bbaa9988 ffeeddcc ........ 00027ab1 <__func__.1>: 27ab1: 695f766c 645f676d 646f6365 625f7265 lv_img_decoder_b 27ac1: 746c6975 5f6e695f 64616572 6e696c5f uilt_in_read_lin 27ad1: e. 00027ad3 <__func__.2>: 27ad3: 695f766c 645f676d 646f6365 625f7265 lv_img_decoder_b 27ae3: 746c6975 5f6e695f 6e65706f uilt_in_open. 00027af0 <__func__.4>: 27af0: 695f766c 645f676d 646f6365 635f7265 lv_img_decoder_c 27b00: 74616572 reate. 00027b06 <__func__.5>: 27b06: 5f766c5f 5f676d69 6f636564 5f726564 _lv_img_decoder_ 27b16: 74696e69 2f2e2e00 72616873 742f6465 init.../shared/t 27b26: 64726968 74726170 766c2f79 732f6c67 hirdparty/lvgl/s 27b36: 6c2f6372 6f665f76 6c2f746e 6f665f76 rc/lv_font/lv_fo 27b46: 665f746e 745f746d 632e7478 nt_fmt_txt.c. 00027b53 : 27b53: 06040200 0f0d0b09 ........ 00027b5b <__func__.0>: 27b5b: 665f766c 5f746e6f 5f746567 6d746962 lv_font_get_bitm 27b6b: 665f7061 745f746d 00007478 ap_fmt_txt... 00027b78 : 27b78: 00027b88 000287d0 00028735 0000313d .{......5...=1.. 00027b88 : 27b88: 00000100 00000000 00000100 00000003 ................ 27b98: 00000200 00000000 00000000 00000000 ................ 27ba8: 00010000 00000000 00000000 00000000 ................ 27bb8: 000c0100 0000fa07 f1f20000 04060c02 ................ 27bc8: 010d02f6 0008030b 00000000 00000000 ................ 27bd8: 020f0000 000000fe 00000000 00000000 ................ 27be8: f8000500 00000000 0504fb00 00fd0000 ................ 27bf8: fd0003fe fbfffd00 00000000 fd0000fd ................ 27c08: fd0000fc 0000fb00 00000000 fd000000 ................ 27c18: 00fc00fd 00e100f9 0500fb00 fb000008 ................ 27c28: 05080303 000005fc 000000f1 00000000 ................ 27c38: 00000000 000000f7 00000000 00000000 ................ 27c48: f9000000 f600f3fd 000000fe 000a0100 ................ 27c58: 01fffef8 0000fc00 0000edfe 00000000 ................ 27c68: 00000000 0afeec00 00000000 00000000 ................ 27c78: 00000000 000000f6 00000000 08000000 ................ 27c88: 00000300 000000fb 00000000 00000000 ................ 27c98: 00000000 020a0000 00000001 00000000 ................ ... 27cc8: 000000f7 00000000 00000000 00000000 ................ 27cd8: 00000000 02000000 fd080305 fd050000 ................ 27ce8: 0702ddf8 00fd0105 00080009 00e80008 ................ 27cf8: 080008fd 000305fd 00fd0100 0014fc00 ................ 27d08: 00080014 0804030b f7000000 00000000 ................ 27d18: 0200fe01 02fbfdfb 0000fd00 0000f600 ................ ... 27d30: 0000ef00 00000000 00000000 00000000 ................ 27d40: 00f20100 000000f0 1900fe00 0303fdfd ................ 27d50: 03fd00fe 00f20000 00000000 00000000 ................ 27d60: 00e70000 00000003 00000000 00000000 ................ 27d70: 0f00f000 00f70000 e7ef0008 0008fbef ................ 27d80: 0300ef00 00fc00fa 00000000 00000000 ................ 27d90: 07000000 0000e108 00000000 00000000 ................ 27da0: 000c0000 00000002 02020000 ff00fbfd ................ 27db0: 0000fdff 000000fe 00fe00fb fa00fbfa ................ 27dc0: 00fbf8f8 00fb00fb fe000000 00030000 ................ 27dd0: 0100fd02 03000000 000000fe ff0303fe ................ 27de0: fb000000 0000ff00 01000000 00fe0300 ................ 27df0: 00fc00fd 0800fe00 00fd0000 00000000 ................ 27e00: fefe01ff 00fd0000 000000fd 00000000 ................ 27e10: ffff0000 00fdfd00 00000000 fe000001 ................ 27e20: fdfdfd00 00000000 00000000 0000fe00 ................ 27e30: fdfe0000 f800fc00 0005f8fe 0503fb00 ................ 27e40: fffa0007 f4ff00fd f202fe03 01000003 ................ 27e50: fef200f3 f300feea 00070500 00000003 ................ 27e60: fb000100 00f800fd 00fd0000 00fd0000 ................ 27e70: 00000000 ff00ffff 000000fd 00000000 ................ 27e80: fe00fdfd 0000fefd 000000fd 00000000 ................ 27e90: 00000000 fd00fefe fb00fe00 fd000003 ................ 27ea0: 00030301 00000000 0000fe00 02000000 ................ 27eb0: 00fd0000 00fdfefd 00000000 00020000 ................ 27ec0: 000000fe 00fcfd00 fe0800fb 0000f801 ................ 27ed0: f5f3f307 fe0003fb fb00fbef fb04fb00 ................ 27ee0: 00f900f0 02ff0100 000300fe f300f6f8 ................ 27ef0: f8fafbfa fbfff9fd 010002f9 0000fd00 ................ 27f00: 03000200 00000000 00000000 fd000000 ................ 27f10: ff00ff00 fafc00fd f800fffa 00000000 ................ 27f20: 00fe0000 01000000 000000fe 00000003 ................ 27f30: 00000000 00000c00 00000000 00000002 ................ 27f40: 000000fd 00000000 00000000 000300fb ................ ... 27f5c: 000000fe 000000fb 00f8f300 f3fc0000 ................ 27f6c: 03fd0000 0000f900 00000000 00000000 ................ 27f7c: fb0000fc 00000000 00000000 00000000 ................ 27f8c: 00fb0003 03000000 fbfb0200 fdfdfd00 ................ 27f9c: 00000000 00f80000 fdfc00fd f8fafa00 ................ 27fac: 00fb00fe 000000f8 00001400 fd000001 ................ 27fbc: f5000300 00000000 08fbe800 00f5fe08 ................ 27fcc: f300fc03 ee03fdff 040003fd f8f7fcf7 ................ 27fdc: f10000f5 00000f00 000000ff f9fdffff ................ 27fec: 00e8fff8 00000000 00000000 00000001 ................ ... 28008: ff00fd00 0000fcfd 00fd00fb 00000000 ................ ... 28020: 00ff0000 050000fb fa0003ff f9fffe03 ................ 28030: fdfd00fd fcfc00fe fffe0000 00fdfcfe ................ 28040: 0300fd00 00fa00fe 00fb0000 fcfc00fc ................ 28050: 00000003 00000000 0003fb00 fdfe00fc ................ 28060: fefefef8 fffdfeff 00000000 fefefd00 ................ 28070: 00000000 fe00fe03 fe000000 fdfefefd ................ 28080: 0a0200fe 00f900ff fd0005fe 0004fdf5 ................ 28090: 03fcf400 fe0002fc fc00f8fe fc000001 ................ 280a0: 03000000 00fbfb03 fdfcfdfc 01fc00fd ................ 280b0: 0008fcfb 00000000 00000000 00000003 ................ ... 280d4: 000000fc 00000000 00000000 00000000 ................ ... 28100: 000000fe 00000000 00000000 00000000 ................ ... 2811c: fdfe0000 00000000 00000000 00000000 ................ 2812c: fd0000fc fdfd0000 00000000 000000fd ................ 2813c: 0000ff00 fe000000 00000000 00fb00fc ................ 2814c: 00f80000 0105fa02 0000f4fe f600fdfa ................ 2815c: 0000f9fa f6f6fdf5 00f900f4 00fd1102 ................ 2816c: fdfffdfa f7fbf9fc 00fdfaf6 0100fe00 ................ 2817c: feee0000 f7fa0608 00f80100 05fdfef3 ................ 2818c: 0001fde8 f3fdef00 0000edfd 010f00ee ................ 2819c: 0000fe00 feff0000 ef00fef6 00000000 ................ 281ac: 00fe00f8 00f4f9ff f8fcff00 00fe00fd ................ 281bc: f4000000 fef8f8fd fcfdfafc f8fefb00 ................ 281cc: fbfd00fc 0100fbfd 00f8fe00 00fb0005 ................ 281dc: 03000000 0afb0200 fdfdfd00 00000000 ................ 281ec: 00f80000 fdfc00fd f8fafa00 02fb00fe ................ 281fc: 0000000a 00001400 fd000001 00000300 ................ 2820c: 00000000 00ff0000 00000000 0000fbfe ................ 2821c: ff000000 fd000000 fb0000fd fb0000fd ................ 2822c: 00ff0400 00000000 00000100 05040000 ................ 2823c: f800fe02 f80800fc 0afbfbf8 feea0305 ................ 2824c: fd00fd05 00f7fd03 fefd03fd 0000fef8 ................ 2825c: f9000508 07fdf200 fd01f6fd 0afdf8f8 ................ 2826c: 00fc0003 080200f9 faf6f7fa ed010008 ................ 2827c: fefc03fe f7fa00fa 00fefcfc fdfbfa00 ................ 2828c: fd060800 fcf200f2 fff1f700 f9f8fcf8 ................ 2829c: fd000007 00fefb00 0400fbfd 000003f8 ................ 282ac: fafd00f2 faf8fefc f800faf8 f8fbfafd ................ 282bc: 010000fd f800fc0c fbfd00fd f6f9f9fa ................ 282cc: 0005fbfd fdf300fc f7f80502 fd08f8fb ................ 282dc: 05fbe801 00f7fcfa fdfdf5f8 f8fbfdfe ................ 282ec: 080000ff 00effe07 f606faf1 f5f7fbef ................ 282fc: 0005f8f3 fd000000 fd030000 05fb0205 ................ 2830c: fff80000 0100ff00 0000fe01 00000000 ................ 2831c: 000000fd 01080200 0000fd00 fefe0000 ................ 2832c: 000000fd 00000201 00020000 000a00fe ................ 2833c: fd010105 00000500 00000200 00000000 ................ 2834c: 00000000 07000800 00000000 00000000 ................ 2835c: 00000000 00f10000 080004fd 03190000 ................ 2836c: 0303fbfb 00f301fe 00f10c00 00000000 ................ 2837c: 00000000 0aef0000 00000024 00000000 ........$....... 2838c: 00000000 0000f100 00000000 00000000 ................ ... 283ac: fb0000fc 000000fe 00000000 00000000 ................ ... 283c4: 00f900fe 00000100 fefb2103 03f90708 .........!...... 283d4: 03030000 000000fd 00000000 00000000 ................ 283e4: 000007df 00000000 00000000 00000000 ................ 283f4: f9000000 f9000000 00000000 0000fffa ................ 28404: fd00fa00 0000f400 00000000 00000000 ................ 28414: 0000ef00 00010000 00000000 0000fd00 ................ 28424: 00fc00fb 000000f9 00fd03fc fafdf900 ................ 28434: 00f90000 00f400fd eb0000fd f7fdf6fb ................ 28444: 00ef0000 0000fff9 00000000 fbfc0000 ................ 28454: 0000fcfe 00fa0000 05fd03fa fefafe00 ................ 28464: fd00fbfc f902feff 000000ff 00fcfee9 ................ 28474: f4fe00fa fe0000fe 000000fe fe000200 ................ 28484: 0004fefc 00000000 00000000 00000000 ................ ... 284b0: 00030000 00000000 fe00fa00 fb000000 ................ 284c0: 00000003 00fbfdf9 fd00f900 0000f400 ................ 284d0: 00e70000 00f3f7fb fe00ef00 000000fc ................ 284e0: 00000000 fffcfd00 000001fc 0800fd04 ................ 284f0: f8fdfd0d 06040d03 030b03f9 00070607 ................ ... 28508: 0c100000 fe00fdfb 00140b14 00030000 ................ 28518: 00000900 000000fc 00000000 00fe0000 ................ 28528: 00000000 04000000 00000000 f6fefdea ................ 28538: ef0000f3 00000000 00000000 00000000 ................ 28548: 00000000 0000fc00 00000000 fe000000 ................ ... 28560: 00000004 fefdea00 0000f3f6 000000f6 ................ ... 28580: 000000fe fd0003fa f8030502 03feff00 ................ 28590: 00000200 00fa0000 00fbfefe 1000f6fe ................ 285a0: fefa00fd 00fcfe00 fdfbf9fd fc000000 ................ ... 285b8: 0000fe00 00000000 00040000 ea000000 ................ 285c8: f3f6fefd 00ef0000 00000000 00000d00 ................ ... 285e0: fdf800fc fdfe08fe 01fe01f6 0601f9fe ................ 285f0: 02010201 00fdf6fa f5f9fbf6 fbfc00f6 ................ 28600: fefefdfd fe00fefd 040004ff 000800fe ................ ... 28618: fe000000 0000fdfd 00ff00f9 000000fc ................ ... 28630: 000000f1 00000000 00000000 fd00fdfd ................ 28640: 00000000 fc0000fe fc0003fd f900fefb ................ 28650: fdfefafe 0000fc00 00000000 00000000 ................ 28660: 0800ef00 00fb0000 fd000000 0000fd00 ................ 28670: fe0000ff 0000fa00 f8f8fd0b ff030302 ................ 28680: 020402f9 fe080208 f60000f9 f9f80000 ................ 28690: 00fb0000 fc00fcfd fe00fc00 f8fe0004 ................ 286a0: 000009fd 00fb00fe 00fa0300 0002fd03 ................ 286b0: fe00f800 03fd00ff 000000fe 00fafdf6 ................ 286c0: f40000f8 00fd0900 000200fb f8fd00fd ................ 286d0: 0003fd00 fe000000 fd030000 fd000001 ................ 286e0: 00fd00fe 00000000 00000000 00000000 ................ 286f0: 00000000 000600f0 0000fe00 00010000 ................ 28700: 0000fdfd 06000500 00000000 01f1f000 ................ 28710: f604080b 09000b02 00000500 00000000 ................ 28720: 00000000 00000e00 00000000 00000000 ................ 28730: 00000000 ..... 00028735 : 28735: 02010000 05040300 08070602 0a090a09 ................ 28745: 0e0d0c0b 0c11100f 15141312 00000015 ................ 28755: 19181716 19191917 1a191917 19191919 ................ 28765: 19171917 1d1c1b03 201f1e1d 00232221 ........... !"#. 28775: 26250024 00272727 29282627 2a2a2626 $.%&'''.'&()&&** 28785: 2a272a27 2e2d2c2b 302e2f2e 09230000 '*'*+,-../.0..#. 28795: 00000931 00000000 00000000 00000000 1............... ... 000287d0 : 287d0: 02010000 05040300 08070602 0a090a09 ................ 287e0: 0d000c0b 11100f0e 140c1312 00000014 ................ 287f0: 18171615 1b1a1619 1e1d1d1c 1d1d201f ............. .. 28800: 23222116 251e2403 28272625 002b2a29 .!"#.$.%%&'()*+. 28810: 2e2d002c 3231302f 34342d33 2d2d3035 ,.-./0123-4450-- 28820: 37362e2e 3a333938 3c3a3b3a 09000029 ..67893::;:<)... 28830: 0000093d 00000000 00000000 00000000 =............... ... 0002886c : 2886c: 00000020 0001005f 00000000 00000000 ..._........... 2887c: 00000000 000000b0 0060f7f3 00028894 ..........`..... 2888c: 00000000 0002003b ....;... 00028894 : 28894: 1f720000 ef58ef51 ef5cef5b ef61ef5d ..r.Q.X.[.\.].a. 288a4: ef65ef63 ef6cef69 ef76ef71 ef78ef77 c.e.i.l.q.v.w.x. 288b4: ef98ef8e ef9cef9b efa1ef9d efa3efa2 ................ 288c4: efb7efa4 efbeefb8 efc1efc0 efc7efc4 ................ 288d4: efc9efc8 efe3efcb f014efe5 f017f015 ................ 288e4: f03af037 f06cf043 f0abf074 f190f13b 7.:.C.l.t...;... 288f4: f192f191 f194f193 f1e3f1d7 f254f23d ............=.T. 28904: f712f4aa 0000f7f2 ........ 0002890c : ... 28914: 04500000 00000000 04500000 00010c03 ..P.......P..... 28924: 06400012 07010505 0b40001f 00000c0b ..@.......@..... 28934: 09f00061 fe00100a 0d8000b1 00000c0d a............... 28944: 0b0000ff ff000d0b 03600147 07010502 ........G.`..... 28954: 0560014c fd010f04 0570016a fd000f04 L.`.....j.p..... 28964: 06600188 05000707 095001a1 02010808 ..`.......P..... 28974: 03a001c1 fe000503 062001c9 03000306 .......... ..... 28984: 03a001d2 00000303 05a001d7 feff1008 ................ 28994: 0ab00217 00000c0a 05f00253 00000c05 ........S....... 289a4: 09300271 00000c09 092002a7 00000c09 q.0....... ..... 289b4: 0ab002dd 00000c0b 0930031f 00000c09 ..........0..... 289c4: 09e00355 00000c0a 09900391 00000c09 U............... 289d4: 0a5003c7 00000c0a 09e00403 00000c0a ..P............. 289e4: 03a0043f 00000903 03a0044d fd000c03 ?.......M....... 289f4: 0950045f 02010808 0950047f 03010608 _.P.......P..... 28a04: 09500497 02010808 093004b7 00000c09 ..P.......0..... 28a14: 109004ed fd000f10 0bb00565 00ff0c0d ........e....... 28a24: 0c2005b3 00010c0b 0b9005f5 00000c0b .. ............. 28a34: 0d300637 00010c0c 0ac0067f 00010c09 7.0............. 28a44: 0a3006b5 00010c09 0c6006eb 00000c0c ..0.......`..... 28a54: 0d000733 00010c0b 04f00775 00010c03 3.......u....... 28a64: 08300787 00ff0c08 0b8007b7 00010c0b ..0............. 28a74: 098007f9 00010c09 0f40082f 00010c0d ......../.@..... 28a84: 0d00087d 00010c0b 0d7008bf 00000c0d }.........p..... 28a94: 0b90090d 00010c0a 0d700949 fd000f0e ........I.p..... 28aa4: 0ba009b2 00010c0a 09f009ee 00000c0a ................ 28ab4: 09600a2a 00000c0a 0ca00a66 00010c0b *.`.....f....... 28ac4: 0b600aa8 00ff0c0d 12000af6 00000c12 ..`............. 28ad4: 0ac00b62 00000c0b 0a600ba4 00ff0c0c b.........`..... 28ae4: 0a800bec 00000c0b 05500c2e fd010f05 ..........P..... 28af4: 05a00c54 feff1008 05500c94 fd000f04 T.........P..... 28b04: 09500cb2 02010708 08000cce fe000208 ..P............. 28b14: 09a00cd6 0a010205 09900cdb 00000909 ................ 28b24: 0af00d04 00010c0a 09200d40 00000909 ........@. ..... 28b34: 0af00d69 00000c0a 09d00da5 0000090a i............... 28b44: 05a00dd2 00000c07 0b100dfc fd000c0a ................ 28b54: 0ae00e38 00010c09 04700e6e 00010c03 8.......n.p..... 28b64: 04900e80 fdfe0f06 09e00ead 00010c09 ................ 28b74: 04700ee3 00010c02 10f00eef 0001090f ..p............. 28b84: 0ae00f33 00010909 0a300f5c 0000090a 3.......\.0..... 28b94: 0af00f89 fd010c0a 0af00fc5 fd000c0a ................ 28ba4: 06901001 00010906 0800101c 00000908 ................ 28bb4: 06a01040 00000b07 0ad01067 00010909 @.......g....... 28bc4: 08f01090 00ff090a 0e6010bd 0000090f ..........`..... 28bd4: 08d01101 00000909 08f0112a fdff0c0a ........*....... 28be4: 08501166 00000908 05a0118a fd000f06 f.P............. 28bf4: 04d011b7 fd010f03 05a011ce fd000f05 ................ 28c04: 095011f4 04000509 06b0120b 06000606 ..P............. 28c14: 0500121d 03010403 10001223 fe001110 ........#....... 28c24: 100012ab 00000c10 1000130b ff000e10 ................ 28c34: 1000137b 00000c10 0b0013db 00000c0b {............... 28c44: 1000141d fe001010 1000149d fe001010 ................ 28c54: 1200151d ff000e12 1000159b fe001010 ................ 28c64: 1200161b 00000c12 10001687 fe001010 ................ 28c74: 08001707 ff000e08 0c00173f ff000e0c ........?....... 28c84: 12001793 fe001012 10001823 00000c10 ........#....... 28c94: 0e001883 fe02100a 0e0018d3 fd00120e ................ 28ca4: 0e001951 ff000f0e 0e0019ba ff000e0e Q............... 28cb4: 0e001a1c fe02100a 0e001a6c ffff0e10 ........l....... 28cc4: 0a001adc ff000e0a 0a001b22 ff000e0a ........"....... 28cd4: 0e001b68 ff000e0e 0e001bca 0400040e h............... 28ce4: 12001be6 00000c12 14001c52 fe001014 ........R....... 28cf4: 12001cf2 feff1014 10001d92 fe001010 ................ 28d04: 0e001e12 01000a0e 0e001e58 01000a0e ........X....... 28d14: 14001e9e ff000e14 10001f2a 00000c10 ........*....... 28d24: 10001f8a fe001010 1000200a feff1111 ......... ...... 28d34: 0e00209b ff000e0f 0e002104 fe00100e . .......!...... 28d44: 0e002174 ff000e0e 0a0021d6 feff100c t!.......!...... 28d54: 0e002236 fe00100e 0e0022a6 fe00100e 6"......."...... 28d64: 12002316 00000c12 10002382 fdff1212 .#.......#...... 28d74: 0c002424 fe00100c 14002484 ff000f14 $$.......$...... 28d84: 1400251a 01000a14 1400257e 01000a14 .%......~%...... 28d94: 140025e2 01000a14 14002646 01000a14 .%......F&...... 28da4: 140026aa 01000a14 1400270e ff000e15 .&.......'...... 28db4: 0e0027a1 fe01100c 0e002801 fe00100e .'.......(...... 28dc4: 10002871 fdff1111 14002902 00000c14 q(.......)...... 28dd4: 0c00297a fe00100c 102029da 01000b11 z).......) ..... 00028de4 : 28de4: aff00bbf 089ee00a c0078cd0 bf100000 ................ 28df4: 1ff5e01a e4f3513f f2403e0f 00100872 ....?Q...>@.r... 28e04: e003c005 007a0000 0900005c 01a00780 ......z.\....... 28e14: ffffffff 733e03fd 0030833c 00c500f2 ......>s<.0..... 28e24: 0e100f00 f0020030 9f00f200 ffffffff ....0........... 28e34: 36c33841 890030e3 00005c00 a007700a A8.6.0...\...p.. 28e44: 79000000 00000000 00000079 20e9ff5c ...y....y...\.. 28e54: 9ebcfc06 79b00e90 800f1000 0d000079 .......y....y... 28e64: 000079f5 50fdef03 cf060000 000040fe .y.....P.....@.. 28e74: 00f15e79 f3057900 07790007 bce92ff1 y^...y....y../.. 28e84: ae03a0af 0000d7ff 00007900 00790000 .........y....y. 28e94: 80de0300 00d00500 01500ce4 004c00e3 ..........P...L. 28ea4: 00a9005a c004a006 4c00004e 500d5a00 Z.......N..L.Z.P 28eb4: 1ce40000 0000a058 e173ce03 0000e93c ....X.....s.<... 28ec4: 400ed600 7c0000a8 d003c003 3c202e00 ...@...|...... < 28ed4: 0b003d00 09e20070 00d00680 00a0dd04 .=..p........... 28ee4: 00b1ef09 3ce40900 d90000a0 00007d00 .......<.....}.. 28ef4: a01cc00c ae3f0000 010000c1 0000c0df ......?......... 28f04: 708feb03 00db0018 3ff0657f ea8f0040 ...p.....e.?@... 28f14: 0000f703 f90b70cf 40bfcf66 30eadf08 .....p..f..@...0 28f24: 000000a5 f5000000 72e4e4f5 f205da00 ...........r.... 28f34: 700fc00b 205f403f 007f106f 205f106f ...p?@_ o...o._ 28f44: 700f403f f205c00b 303fda00 f106b00c ?@.p......?0.... 28f54: e900f601 ad00bc00 ad00ae00 e900bc00 ................ 28f64: f106f601 303fb00c 06004a00 2ba0a474 ......?0.J..t..+ 28f74: 7f00e5ff 6b7b20fb a004008d 00130000 ..... {k........ 28f84: 10050000 500f0000 500f0000 511f0100 .......P...P...Q 28f94: ffffef10 744f34f3 500f0040 500f0000 .....4Ot@..P...P 28fa4: fd520900 0fc5a00b 10110100 04f3ff1f ..R............. 28fb4: 12034044 00901efc 00f10500 00b00a00 D@.............. 28fc4: 00600f00 00105f00 0000ab00 0000f600 ..`.._.......... 28fd4: 0000f105 0000b00a 0000600f 0000104f .........`..O... 28fe4: 000000ac 040000f6 0a0000f1 0e0000c0 ................ 28ff4: 4f000060 00000010 00c5ef08 cfa8cf00 `..O............ 29004: 00f50770 c00df20a 1ff80100 dc000080 p............... 29014: 0000603f 00603fbd 801fbd00 0ddc0000 ?`...?`......... 29024: f80100c0 0a00f507 a8cf00f2 080070cf .............p.. 29034: ef00c5ef f37a36ff 05305f00 305f00f3 .....6z.._0..._0 29044: 5f00f305 00f30530 f305305f 05305f00 ..._0..._0..._0. 29054: fdbe04f3 98fd0770 002890cf 0000bf00 ....p.....(..... 29064: 00f20700 00af0000 804f0000 c03f0000 ..........O...?. 29074: c13e0000 c12e0000 d12e0000 f82e0000 ..>............. 29084: ff467777 6ffaffff 02ffffff b09f7777 wwF....o....ww.. 29094: e10c0000 f3090000 f6050000 df000000 ................ 290a4: 040010e9 0000fd59 00f40600 643f0000 ....Y.........?d 290b4: f3080040 fb8cc9bf d7ff7c00 01000000 @........|...... 290c4: 000000eb 0010be00 506f0000 2f000000 ..........oP.../ 290d4: 00000090 0000d00c 01f30800 f80300d5 ................ 290e4: 00602f00 f72322ed ffff6f21 5581ffff ./`.."#.!o.....U 290f4: 52f95655 2f000000 00000060 0500f602 UV.R.../`....... 29104: 00ffffff 7077777f 0000e008 0000ad00 .....wwp........ 29114: 10c20b00 ffdf0000 550430fb 0020ff68 .........0.Uh. . 29124: 00f80400 920f0000 f6050050 fd8ad98f ........P....... 29134: e9ef5b10 ce050010 9f0060fc 05708bc8 .[.......`....p. 29144: 000000f8 0000d00c 00801f00 682f0000 ............../h 29154: 3f10faef d08f64ee 0600f12f 00c00ef4 ...?.d../....... 29164: f109f602 01f30600 b09f86de d8ef1900 ................ 29174: ffff8f00 77f7e8ff 008ffc77 90554f00 .......ww....OU. 29184: 00e00b00 00f80200 109f0000 b00f0000 ................ 29194: f4060000 dd000000 3f000000 0a000070 ...........?p... 291a4: 010000f1 000000f9 00d7ff5c af76fc06 ........\.....v. 291b4: 00d00ca0 c00df109 07f20700 c05e11f7 ..............^. 291c4: feffbf00 54f90910 802fd07e 4ff60400 .......T~./....O 291d4: f8000050 0500a01f 76fb09f6 6c00d0af P..........v...l 291e4: 0010d8ff 0080fd8e fc68f80c 00505f00 ..........h.._P. 291f4: 008f703f 7fc00e00 f01f0030 cf13d41f ?p......0....... 29204: ffef04f1 0200f0a9 00f00a31 a00e0000 ........1....... 29214: 9f000000 8da70930 df0700f7 1e0040eb ....0........@.. 29224: 1003fc92 00000000 1efc1203 fc921e90 ................ 29234: 00001003 01000000 a8d01fe9 00a0300e .............0.. 29244: 00420000 03f37d01 bf10e89f ee0000b5 ..B..}.......... 29254: 17000081 0000b4df 00d2af04 ef820100 ................ 29264: 45f3ffff 00515555 01000000 ef101111 ...EUUQ......... 29274: 34f3ffff 50404444 ef000000 06000092 ...4DD@P........ 29284: 0000b5cf 00e29f03 02f36c00 bf20e99e .........l.... . 29294: 930000c6 04000000 0770fdbe a0bf77fc ..........p..w.. 292a4: cf000027 09000000 010000f0 010000ea '............... 292b4: 000010dd 000010ce 0000603f 00003001 ........?`...0.. 292c4: 00000100 00f50600 405f0000 17000000 .........._@.... 292d4: 00b5fdce fb050000 c27d2353 406e0000 ........S#}...n@ 292e4: 8e000000 01f40210 493ffaae 1e900ab0 ..........?I.... 292f4: 40ef5be6 8f300fe3 40af0010 d9001f98 .[.@..0....@.... 29304: 403f0000 e8003f6a 401f0000 d9001f5c ..?@j?.....@\... 29314: 403f0000 8f300f6a 40af0010 1e900a98 ..?@j.0....@.... 29324: a6de5ad6 01f303f2 ee16faaf 406e0050 .Z..........P.n@ 29334: 00000000 fb060000 00752353 17000000 ........S#u..... 29344: 00a3fdce 02000000 000000fd f49f0000 ................ 29354: 00000000 00b09e0f f2060000 0000207f ............. .. 29364: f801dc00 4f000000 00e00b60 00f00b00 .......O`....... 29374: 0100604f ed1111fa ff8f0000 00f3ffff O`.............. 29384: 4444c40e f406a04f af000000 0000cd10 ..DDO........... 29394: 5ff80200 40ebffff 5755f805 405f40df ..._...@..UW.@_@ 293a4: 05fa0100 0f0000f4 11515fa0 ff05f43a ........._Q.:... 293b4: 00faffff 5944745f 00f405fa 5ff20800 ...._tDY......._ 293c4: 5f000040 0000f445 855ff209 05fb6a55 @.._E....._.Uj.. 293d4: d7ffffff 8d020000 0400b4fe f99db8ff ................ 293e4: 0020fd02 20bf5008 0f000000 000000a0 .. ..P. ........ 293f4: 0000f602 602f0000 00000000 000000fa ....../`........ 29404: 00f20b00 2f000000 850000d2 89fb5f00 ......./....._.. 29414: 290080df 5f40ebdf 30eaffff 77975f00 ...)..@_...0._.w 29424: 5f00f89e af000040 00405f60 5fe00d00 ..._@...`_@...._ 29434: 06000040 00405ff4 5ff60300 03000040 @...._@...._@... 29444: 00405ff6 5ff40600 0d000040 00405fe0 ._@...._@...._@. 29454: 5f60af00 f89e7797 ffff5f00 5f0030ea ..`_.w..._...0._ 29464: 95ffffff 747777f9 0000405f 0000f405 .....wwt_@...... 29474: 11515f00 ffff0511 745fe0ff f4054444 ._Q......._tDD.. 29484: 5f000000 05000040 000000f4 7777975f ..._@......._.ww 29494: ffffff65 ffff5ffd 77f995ff 405f7477 e...._.....wwt_@ 294a4: f4050000 5f000000 05000040 102222f5 ......._@...."". 294b4: feffff5f 5555f805 00405f40 00f40500 _.....UU@_@..... 294c4: 405f0000 f4050000 00000000 b5fe8d01 .._@............ 294d4: fb4f0000 02b0df89 060020fd 00f20b60 ..O...... ..`... 294e4: 0f000000 000000a0 00602f00 2f000000 ........./`..../ 294f4: 09000060 00a00ff0 0bf00900 090000f2 `............... 29504: 20fd02f0 00f00a00 df89fb4f 8d0200c0 ... ....O....... 29514: 5f00c6fe 4f000040 0000f455 405ff504 ..._@..OU....._@ 29524: 554f0000 040000f4 22525ff5 ff555f22 ..OU....._R""_U. 29534: f5ffffff 5555855f 00f4558f 5ff50400 ...._.UU.U....._ 29544: 4f000040 0000f455 405ff504 554f0000 @..OU....._@..OU 29554: 040000f4 f4455ff5 5ff4455f 455ff445 ....._E._E._E._E 29564: f4455ff4 00f4455f 00faffff 00fa7777 ._E._E......ww.. 29574: 00fa0000 00fa0000 00fa0000 00fa0000 ................ 29584: 00fa0000 00fa0000 07f90000 0df60320 ............ ... 29594: 01f18ee9 5f30fbae eb020040 0100f405 ......0_@....... 295a4: 405f00ec 0510de01 20ce00f4 bf405f00 .._@....... ._@. 295b4: f4050030 0000909f 40efcf5f 91ff0500 0......._..@.... 295c4: 5f0010ee 00fc03a0 0600f405 405f00f8 ..._.........._@ 295d4: 05f50900 0c0000f4 00405ff2 00f40500 ........._@..... 295e4: 405f0000 f4050000 5f000000 05000040 .._@......._@... 295f4: 000000f4 0000405f 0000f405 00405f00 ...._@......._@. 29604: 00f40500 975f0000 ff257777 5ff5ffff ......_.ww%...._ 29614: 00000040 00fc951e f9080000 0000f55f @..........._... 29624: fd95ff02 ae0000e0 705f5ff9 955f3f00 .........__p.?_. 29634: 0b108ff3 315ff9c0 0ff304e9 f207f395 ......_1........ 29644: 5ff900db 20ef0d30 00f3950f f900905f ..._0.. ...._... 29654: 7100305f f3950f00 00000000 00505ff9 _0.q........._P. 29664: ff554f00 f5040020 0000fd5f f9fa554f .OU. ..._...OU.. 29674: 5ff50400 4f00f54a f20df455 405ff504 ..._J..OU....._@ 29684: 554fd02f 946f00f4 00405ff5 f455afaf /.OU..o.._@...U. 29694: f5df0000 0200405f 00f455ff 00f50600 ...._@...U...... 296a4: b5fe8d01 ff040000 00fa9eb8 0020fd02 .............. . 296b4: bf00f908 0a000020 00a00ff2 723f0000 .... .........?r 296c4: 000000f6 602ff900 0f000000 0000fa90 ....../`........ 296d4: 0bf70300 000000f2 d22f20af 908f0000 ......... /..... 296e4: 89fb4f00 0000a0ef 50ebdf28 ffff5f00 .O......(..P._.. 296f4: 975f00d7 5fc0bf78 f6070040 0000405f .._.x.._@..._@.. 29704: 00405ffa 405ffa00 5ff80300 f16e2362 ._@..._@..._b#n. 29714: fdffff5f 54855f30 405f0020 5f000000 _...0_.T ._@..._ 29724: 00000040 0000405f 8d010000 0000b5fe @..._@.......... 29734: 89fb4e00 0200a0ef 080020fd f20a00f9 .N....... ...... 29744: af000000 00a00f20 703f0000 0000602f .... .....?p/`.. 29754: 2f900f00 00000060 901f900f 2f000000 .../`........../ 29764: 00f10b70 20af0000 0010fc03 0000f907 p...... ........ 29774: df78fa6f 030000b0 00c5ffae 00000000 o.x............. 29784: b015d43e 02000000 0080ffbf 01000000 >............... 29794: ff5f0031 5f00d7ff c0bf7897 0700405f 1._...._.x.._@.. 297a4: 00405ff6 405ffa00 5ffa0000 f8030040 ._@..._@..._@... 297b4: 6e23525f ffff5fe1 855f30fc 5f00f955 _R#n._...0_.U.._ 297c4: 407f0040 0c00405f 00405fe0 5c00f902 @..@_@..._@....\ 297d4: 0720d9ef 90af87fc 0100c00e 00800f10 .. ............. 297e4: f50d0000 03000000 0050eaef feae0500 ..........P..... 297f4: 00000040 0000f14e 08f30500 f2080000 @...N........... 29804: bf77fa2f ff9d02a0 ffff00c7 67f5ffff /.w............g 29814: 7277fb78 00f70100 f7010000 01000000 x.wr............ 29824: 000000f7 0000f701 00f70100 f7010000 ................ 29834: 01000000 000000f7 0000f701 00f70100 ................ 29844: f7010000 306f0000 168f0000 080000f3 ......o0........ 29854: 00306ff1 f3168f00 f1080000 0000306f .o0.........o0.. 29864: 00f3168f 6ff10800 8f000030 0000f405 .......o0....... 29874: 703ff009 00cd0000 5f0020de a8ff0480 ..?p..... ._.... 29884: 0300d0bf 0081fdbe 0000e00c 6f306f00 .............o0o 29894: 0c000050 00fb00c0 00f60300 0000f209 P............... 298a4: 2f0000ae 901f0080 00ce0000 0000f207 .../............ 298b4: db00f605 0e000000 00504fc0 3b8f0000 .........OP....; 298c4: 000000e0 00f8fb02 0b000000 000010ff ................ 298d4: b04f0000 405f0000 00df0000 0ff50200 ..O..._@........ 298e4: ff020090 f0070040 0700e00b 0c0090fe ....@........... 298f4: 00f306b0 00e0aa0c f801601f f3541f00 .........`....T. 29904: 00106f00 107f00cd 00cc00f8 cb207f00 .o............ . 29914: f701ad00 712f0000 265f00f6 0d0000f2 ....../q.._&.... 29924: 0f00f1c6 0000d07b 00c0fd08 0080df0b ....{........... 29934: 70ff0300 30ff0600 ef000000 fe010020 ...p...0.... ... 29944: 903f0000 00cd0000 7f00408f 10de0030 ..?......@..0... 29954: 0300802f 00d00cfa f3fb0700 0c000000 /............... 29964: 000000f8 00c0ef01 7fbf0000 6f000070 ............p..o 29974: 0020af60 ed01b02f 00f10c00 f607f804 `. ./........... 29984: f3090000 0000e00c f703f207 901f0000 ................ 29994: 0010af00 1f00109e 00f602a0 0bf30800 ................ 299a4: 000000d0 00404fec fb5f0000 00000000 .....O@..._..... 299b4: 0000f20c f0090000 00000000 0000f009 ................ 299c4: f0090000 00000000 0000f009 ffffff3f ............?... 299d4: 777701fd 0090bf77 c01e0000 0c000000 ..www........... 299e4: 000000f2 0000f508 00f90400 ec010000 ................ 299f4: 00000000 000020cf 00508f00 904f0000 ..... ....P...O. 29a04: 1e000000 777777f8 ffffff05 ff5ff0ff .....www......_. 29a14: 5f50f705 00f30530 f305305f 05305f00 ..P_0..._0..._0. 29a24: 305f00f3 5f00f305 00f30530 f705305f .._0..._0..._0.. 29a34: 00ff5f50 0000007e 0000401f 0000900c P_..~....@...... 29a44: 0000e007 0000f402 0000c900 00007e00 .............~.. 29a54: 00402f00 00900c00 00e00700 00f30200 ./@............. 29a64: 00d90000 007e0000 302f0000 900d0000 ......~.../0.... 29a74: e0070000 ea35fabf ea00ea00 ea00ea00 ......5......... 29a84: ea00ea00 ea00ea00 ea00ea00 ea35ea00 ..............5. 29a94: 2f00fabf 9d000080 f30000e0 d00600d5 .../............ 29aa4: 600c007b 103f201f 009a800b ffffe004 {..`. ?......... 29ab4: 1111ffff f6071111 01e70300 0080fd9e ................ 29ac4: 90af87ce af000002 06000000 ffbe02f2 ................ 29ad4: 42ec20ff 502ff227 ec207f00 02f27f42 . .B'./P.. .B... 29ae4: 206ffbbf 0000008f 00008f00 008f0000 ..o ............ 29af4: 8f000000 00b3fe2b ef78ec8f 00a08f30 ....+.....x.0... 29b04: 208fc01e 8ff10700 f3050000 0700208f ... ......... .. 29b14: 00a08ff1 ec8fd01e 8e30ef78 00b3fe2b ........x.0.+... 29b24: c4ef3a00 7cd84f00 00d00df4 00f61307 .:...O.|........ 29b34: 304f0000 f6030000 0d000000 100600d0 ..O0............ 29b44: f47cd74f c4ef3a00 00000000 0000f701 O.|..:.......... 29b54: 00f70100 f7010000 a3ff3b00 87fd04f7 .........;...... 29b64: d00ef7ce 3ff70b00 f7030060 0100304f .......?`...O0.. 29b74: 00503ff7 c00ef703 04f70a00 f7be65fc .?P..........e.. 29b84: b2ff3b00 fe3b00f7 fc0400a2 0e20ee67 .;....;.....g. . 29b94: a01e00c0 0700503f ffff4ff0 723ff1ff ....?P...O....?r 29ba4: 0e202222 000200c0 af87fd04 ef3a0050 "" .........P.:. 29bb4: 5d0000d6 b52f00fc 00f30470 a0ffff0c ...]../.p....... 29bc4: 0053f748 0500305f 5f0000f3 f3050030 H.S._0....._0... 29bd4: 305f0000 00f30500 00305f00 b2ff3b00 .._0....._0..;.. 29be4: 87fe04e9 d10ef9cf 3ff90a00 f9010060 ...........?`... 29bf4: 0000404f 00603ff9 d00ef901 04f90900 O@...?`......... 29c04: f8cf87fd b3ff3b00 000000f7 e909f405 .....;.......... 29c14: 01b0af77 00d8ff7c 0000008f 0000f008 w...|........... 29c24: 00008f00 bff20800 fb8f10ea f808fd89 ................ 29c34: 8ff40600 781f0010 f80000f0 0f00008f .......x........ 29c44: 0000f088 00008ff8 00f0880f 1a9ef800 ................ 29c54: f00800f2 8ff0088f 088ff008 f0088ff0 ................ 29c64: 00e20700 0000f309 f1070000 00f10700 ................ 29c74: 0700f107 f10700f1 00f10700 0700f107 ................ 29c84: f10700f1 18f00800 fc3ec06e 00008f20 ........n.>. ... 29c94: 00f00800 008f0000 f0080000 8fd11d00 ................ 29ca4: 08e21d00 00e21df0 00f32d8f 70fffe08 .........-.....p 29cb4: bfe28f00 01f20830 008f10ee f008fb03 ....0........... 29cc4: 8ff70700 8f8f8f8f 8f8f8f8f 8e8f8f8f ................ 29cd4: 3b91fe3c ff08a2fe c6cf9f96 708fd08f <..;...........p 29ce4: 00c09f00 00f1585f 0100f605 00008ff7 ...._X.......... 29cf4: 0f00404f 0400f088 f80000f4 4f00008f O@.............O 29d04: 880f0040 f40400f0 8ff80000 404f0000 @.............O@ 29d14: 8e800f00 08a1fe3b d08fa6ff 6f00808f ....;..........o 29d24: 0100f148 00008ff7 00f0880f 008ff800 H............... 29d34: f0880f00 8ff80000 800f0000 c4ef3b00 .............;.. 29d44: 87fd0400 d00e60cf 3ff10b00 f5030060 .....`.....?`... 29d54: 0100304f 00603ff7 d00ef503 04f10b00 O0...?`......... 29d64: 60cf77fd c4ef3b00 fe3b8e00 fb8f00b3 .w.`.;....;..... 29d74: 8f30df57 c00d0090 0700108f 00008ff1 W.0............. 29d84: 208ff305 8ff10700 d01e00a0 ef78ec8f ... ..........x. 29d94: fe2b8f30 008f00b3 8f000000 00000000 0.+............. 29da4: 0000008f ff3b0000 fd04f7a2 0ef7de87 ......;......... 29db4: f70b00d0 0300603f 00304ff7 603ff701 ....?`...O0...?` 29dc4: 0ef70300 f70b00d0 ce77fd04 ff3b00f7 ..........w...;. 29dd4: 0000f7a3 00f70100 f7010000 01000000 ................ 29de4: f02b8ef7 8f90ed8f 208f00a0 00008f00 ..+........ .... 29df4: 8f00008f 008f0000 00008f00 91fdae02 ................ 29e04: d069d71e 0000304f 0010b42f 60fdef06 ..i.O0../......` 29e14: f55b0100 f7000001 f36ba75f 40ecdf19 ..[....._.k....@ 29e24: 0000f305 cf00305f 8f04faff f3053075 ...._0......u0.. 29e34: 305f0000 00f30500 00305f00 0000f404 .._0....._0..... 29e44: 0080c61f ae10fc5d 5a2f0000 f50200e0 ....]...../Z.... 29e54: 2f0000ae 0200e05a 0000aef5 00f0592f .../Z......./Y.. 29e64: 306ff504 ee51af00 02f5bf76 503ffbbe ..o0..Q.v.....?P 29e74: 0000c00d 00f206cb f900f502 00e00900 ................ 29e84: 800f009e 6f602f00 c00c0010 050000cb ...../`o........ 29e94: 0000f4f6 00d0ef00 708f0000 0000bb00 ...........p.... 29ea4: 4f00109f 0e00f116 c00900f6 fc05600f ...O.........`.. 29eb4: 00f600b0 5fab00ac 05105f10 f7500ff1 ......._._....P. 29ec4: 0f00b00a c009f076 ac0000f5 8f4f00ba ....v.........O. 29ed4: ff040000 a0ef0040 e00e0000 00f40800 ....@........... 29ee4: 00704f00 308f209f cd00505f 0200902e .Op.. .0_P...... 29ef4: 0000d0ff 0000f60a 00e1fd04 c00deb01 ................ 29f04: 3f10be00 00406f80 c00d407f 06cb0000 ...?.o@..@...... 29f14: f40200f3 0900ea00 108f00d0 1f00701f .............p.. 29f24: 00107f70 00d9e00a f2f90300 cf000000 p............... 29f34: 000000b0 0000406f 0000ad00 00f5791c ....o@.......y.. 29f44: 70ee1a00 ff4f0000 5515f9ff 0000f45b ...p..O....U[... 29f54: 0100804f 0b0000ec 8f0000e1 f7040040 O...........@... 29f64: e51e0000 ff5f5355 2c00fcff 61af00f5 ....US_....,...a 29f74: 0000cc00 db0000db 00db0000 1f00ea02 ................ 29f84: fa0500f4 00db0000 0000db00 cc0000db ................ 29f94: 61af0000 5ff52c00 155ff115 f1155ff1 ...a.,._.._.._.. 29fa4: 5ff1155f 155ff115 f1155ff1 80be105f _.._.._.._.._... 29fb4: 0140af03 701f00f6 1f00f701 00f90070 ..@....p....p... 29fc4: fb00fb0a 01701f20 701f00f7 af03f601 .... .p....p.... 29fd4: 0090be40 00000000 00e43d00 f5860cb5 @........=...... 29fe4: 03f0201e 000290ef 02001000 400d90ce . .............@ 29ff4: 0e003b89 0d0e003b ce028940 f8080090 .;..;...@....... 2a004: 00f7e7ef 00000000 00000000 00000000 ................ 2a014: 00dc4900 16000000 00ffffbf ff8d0300 .I.............. 2a024: 00ffffff ffffcf00 00ffffff ffffff00 ................ 2a034: 00ffc7ff eaffff00 00ff0051 0083ff00 ........Q....... 2a044: 00ff0000 0000ff00 00ff0000 0000ff00 ................ 2a054: 00ff0000 0000ff00 00ff0000 0000ff00 ................ 2a064: 00ffff2b 0000ff00 2bffffdf 0000ffff +..........+.... 2a074: dffdffdf 0000ffff dfb2ff2b 0000fdff ........+....... 2a084: 2b000000 0000b2ff d0000000 ffffff0f ...+............ 2a094: ff0df0ff 8888c8ff f0ffff8c 0000800f ................ 2a0a4: f00ff008 0000800f ff0ff008 000080ff ................ 2a0b4: f0ffff08 ccccec0f f00ff0ce ccccec0f ................ 2a0c4: ff0ff0ce 000080ff f0ffff08 0000800f ................ 2a0d4: f00ff008 0000800f ff0ff008 8888c8ff ................ 2a0e4: d0ffff8c ffffff0f df0df0ff ffff73ff .............s.. 2a0f4: fffdffff ffffa5ff ffffffff ffffa5ff ................ 2a104: dfffffff ffff73ff 00fdffff 00000000 .....s.......... 2a114: df000000 ffff73ff fffdffff ffffa5ff .....s.......... 2a124: ffffffff ffffa5ff dfffffff ffff73ff .............s.. 2a134: 00fdffff 00000000 df000000 ffff73ff .............s.. 2a144: fffdffff ffffa5ff ffffffff ffffa5ff ................ 2a154: dfffffff ffff73ff 00fdffff 00000000 .....s.......... 2a164: 00b10a00 00000000 00fcbf00 00000000 ................ 2a174: 00fbff0b 00000000 1bc0ffbf 0b0000a0 ................ 2a184: cf00fcff bf0000fb bf00c0ff ff0bb0ff ................ 2a194: 0c0000fc ffbffbff 000000c0 fbffffcf ................ 2a1a4: 00000000 b0ffff0c 00000000 00fbbf00 ................ 2a1b4: 00000000 00b00b00 03000000 03000000 ................ 2a1c4: 0010fc08 fcfff81c f5ff1c10 ff2cfcff ..............,. 2a1d4: ffff05f5 0500f5ff 00f5ffff fdff1d00 ................ 2a1e4: ff1c0010 1c10fcff fcfff9ff 05f5ff1c ................ 2a1f4: f5dffcff d1ff0500 040000a4 000000a1 ................ 2a204: 0000e04f 10020000 1003f16f d05f0000 O.......o....._. 2a214: d13ff16f f1ff0300 fd5ff16f 40ff0d00 o.?.....o._....@ 2a224: ff09f16f 00f74f70 cf00f16f 00f09fe0 o...pO..o....... 2a234: 5f00f16f 00c0bff3 2f00f16f 00c0bff5 o.._....o../.... 2a244: 1f00e04f 00e0aff6 4f000000 00f46ff4 O..........O.o.. 2a254: af000000 10fe0ff0 ff050000 d3ff06a0 ................ 2a264: ff7f0000 ff9f0020 f4ffbeda ff060000 .... ........... 2a274: 30fdffff 17000000 0050cabd 00000000 ...0......P..... 2a284: 0000b88b 00000000 0000ffff 06300000 ..............0. 2a294: 0360ffff dffd0400 effdffff ffff0d40 ..`.........@... 2a2a4: ffffffff ffff4fd0 ffff9ff9 ffff08f4 .....O.......... 2a2b4: ffff0220 f9ff0080 ff9f0000 f9ff0000 ............... 2a2c4: ff9f0000 ffff0800 ffff0220 ffff4f80 ........ ....O.. 2a2d4: ffff9ff9 ffff0df4 ffffffff dffe04d0 ................ 2a2e4: dffdffff 06300040 0360ffff 00000000 ....@.0...`..... 2a2f4: 0000ffff 00000000 0000b88b 00000000 ................ 2a304: 3f30dd03 000000f3 f5ff6f00 0000f44f ..0?.....o..O... 2a314: 99ff0900 00f4bfff f6bf0100 f4ff6f22 ............"o.. 2a324: fe2d0000 ef53ff35 ff0400f4 f8ff8fc1 ..-.5.S......... 2a334: 7f40fe2d ffff1afa f7afa1ff ffdf82cf -.@............. 2a344: 28fdffff ff0e14fc ffffffff 0f0041e0 ...(.........A.. 2a354: ffffffff 0000f0ff 00f9ff0f 00f0ff8f ................ 2a364: f8ff0f00 f0ff8f00 ff0f0000 ff8f00f8 ................ 2a374: 0e0000f0 6f00f6ff 0000e0ff fddf0000 .......o........ 2a384: 00000000 ffff0000 00000000 ffff0000 ................ 2a394: 00000000 ffff0000 00000000 ffff0000 ................ 2a3a4: 00000000 ffff0000 00000000 ffffff4f ............O... 2a3b4: 0000f4ff ffffff0b 0000b0ff ffffbf00 ................ 2a3c4: 000000fb ffff0b00 000000b0 fbbf0000 ................ 2a3d4: df000000 b11bfcff fffdffcf 2cc2ffff ..............., 2a3e4: ffffffff ffffffff ffffffff ffffffff ................ 2a3f4: dfffe0f0 ffffffff 00fdffff ffffef04 ................ 2a404: 0040feff ffff1e00 e1ffffff b0af0000 ..@............. 2a414: 0b000000 ff0500fa 00000010 1e50ff01 ..............P. 2a424: 000000f6 e16f0000 0000b0af 0b000000 ......o......... 2a434: fffffffa ff080080 ffffffff 1f00f1ff ................ 2a444: ffffffff ffffffff ffffffff ffffffff ................ 2a454: ffffffff ffffffff ffffffff ff8fffff ................ 2a464: ffffffff 00f8ffff dabd0600 00ff0250 ............P... 2a474: ffffef05 00ff42fe 7ba7ff7f 05fff9ff .....B.....{.... 2a484: 0000c1ff 0effff2c 020000fc 5fffdf22 ....,.......".._ 2a494: 0f0000f2 8fffffff 0f0000b0 00ffffff ................ ... 2a4b0: ff000000 00f0ffff fff80b00 00f0ffff ................ 2a4c0: fff42f00 002022fd ffe0cf00 0000c2ff ./..." ......... 2a4d0: ff40ff2c 6ab7ff9f ff00f7ff ffffdf24 ,.@....j....$... 2a4e0: ff0050fe dbac0520 00000060 00000000 .P.. ...`....... 2a4f0: 008d0000 00ff0800 dfff8f00 ffffffff ................ 2a500: ffffffff ffffffff ffffffff dfffffff ................ 2a510: 00ffffff 00ff8f00 00ff0800 008d0000 ................ ... 2a52c: 0000008d 00ff0800 8f000000 cf0000ff ................ 2a53c: 01ffffff ffffff50 fff706ff 00ffffff ....P........... 2a54c: ffffffbe ffae00ff 05ffffff ffffdff8 ................ 2a55c: 006002ff 00ff9f00 09000000 000000ff ..`............. 2a56c: 009e0000 00000000 00000000 00000000 ................ 2a57c: 00100600 00000000 d21f0000 00000000 ................ 2a58c: 0300008d 000010ee 0a00ff08 00b02fb1 ............./.. 2a59c: 00ff8f00 f407fc05 ffffffdf 605f5002 .............P_` 2a5ac: fffffff9 0df706ff ffffbdc0 ae00ffff ................ 2a5bc: ff9ff009 00ffffff 8ff009ae ffffffff ................ 2a5cc: c00df706 ffffdfad 5f5002ff 0000e960 ..........P_`... 2a5dc: 0500ff8f 00f406fc 00ff0800 b02fb10a ............../. 2a5ec: 8d000000 ee020000 00000010 1f000000 ................ 2a5fc: 000000d2 00000000 8f001006 ffffffff ................ 2a60c: fff8ffff fffffffc ffffffff ffff2f20 ............ /.. 2a61c: fcffffff ffff0c00 ffffffee feff2f20 ............ /.. 2a62c: ffffef22 e2fffffc ffff2e00 20fe4efe "............N. 2a63c: ffff0200 00c202e2 ffff0000 00000020 ............ ... 2a64c: ffff0000 00000000 ffff0000 ffffffff ................ 2a65c: 8fffffff ffffffff 00f8ffff 00000000 ................ 2a66c: 010030ff 0040ffcc 40ffff2d ffffef03 .0....@.-..@.... 2a67c: ffff3f40 ffff44ff ff9fffff ffffffff @?...D.......... 2a68c: ffffffff ffffffff ffffafff ff45ffff ..............E. 2a69c: 40ffffff ffffff4f ffef0340 2e0040ff ...@O...@....@.. 2a6ac: 0030ffff 0000cc01 00000000 00000000 ..0............. 2a6bc: 918f0000 00000000 70ffff00 00000000 ...........p.... 2a6cc: 40fdffff ff000000 10faffff ffff0000 ...@............ 2a6dc: 00f7ffff ffffff00 00d5ffff ffffffff ................ 2a6ec: ffb2ffff ffffffff fffffdff ffffffff ................ 2a6fc: fffffffd b2ffffff ffffffff ff00d5ff ................ 2a70c: f7ffffff ffff0000 0010faff fdffff00 ................ 2a71c: 00000040 0070ffff 8e000000 000000a1 @.....p......... ... 2a73c: 00f8ff8f fff8ff8f ff00ffff ffffffff ................ 2a74c: ffff00ff ffffffff ffffff00 00ffffff ................ 2a75c: ffffffff ff00ffff ffffffff ffff00ff ................ 2a76c: ffffffff ffffff00 00ffffff ffffffff ................ 2a77c: ff00ffff ffffffff ffff00ff ffffffff ................ 2a78c: ffffff00 00ffffff 7fffffff 7f00f7ff ................ 2a79c: ff8ff7ff ffffffff fffffff8 ffffffff ................ 2a7ac: ffffffff ffffffff ffffffff ffffffff ................ 2a7bc: ffffffff ffffffff ffffffff ffffffff ................ 2a7cc: ffffffff ffffffff ffffffff ffffffff ................ 2a7dc: ffffffff ffffffff ffffffff ffffffff ................ 2a7ec: ffffffff ffffffff ffffffff ffff8fff ................ 2a7fc: f8ffffff 00000000 0010cc00 d2ffff03 ................ 2a80c: ffff0400 ff0430fe 04f4ffff ffffffff .....0.......... 2a81c: ffffff54 fffff9ff ffffffff ffffffff T............... 2a82c: ffffffff fffffff9 ffff44ff ff04f3ff .........D...... 2a83c: 0430feff 00d2ffff 10ccff04 00ff0300 ..0............. 2a84c: 00000000 2d000000 000000d2 ef010000 .......-........ 2a85c: 000010fe ff1d0000 0000d1ff ffcf0000 ................ 2a86c: 0000fcff ffff0b00 00b0ffff ffffaf00 ................ 2a87c: 00faffff ffffff09 90ffffff ffffff0f ................ 2a88c: f0ffffff ffffff08 80ffffff 00000000 ................ 2a89c: 00000000 ffffff0c c0ffffff ffffff0f ................ 2a8ac: f0ffffff ffffff0f f0ffffff ffffff0c ................ 2a8bc: c0ffffff 1a000000 01000040 0000f0df ........@....... 2a8cc: 00a0ff1d 00fadf01 a0ff1d00 fadf0100 ................ 2a8dc: ff0c0000 0d0000a0 000080ff 00f8df01 ................ 2a8ec: ff1d0000 01000080 0000f8df 80ff1d00 ................ 2a8fc: df010000 000000f0 a104501b 0f000000 .........P...... 2a90c: 000010fd 00d1ff0a fdaf0000 0a000010 ................ 2a91c: 0000d1ff 10fdaf00 ff0a0000 080000c0 ................ 2a92c: 0000d0ff 0010fd8f 00d1ff08 10fd8f00 ................ 2a93c: d1ff0800 fd0f0000 05000010 000000b1 ................ 2a94c: ff040000 00000040 80ff0800 00000000 ....@........... 2a95c: 0080ff08 08000000 000080ff ff080000 ................ 2a96c: 48000080 c8ff8c88 ffff8488 ffffffff ...H............ 2a97c: ffffffff ffffffff ff8c8848 008488c8 ........H....... 2a98c: 80ff0800 00000000 0080ff08 08000000 ................ 2a99c: 000080ff ff080000 00000080 40ff0400 ...............@ 2a9ac: 44140000 44444444 ffffef41 feffffff ...DDDDDA....... 2a9bc: ffffffff 7bffffff bbbbbbbb 0000b7bb .......{........ 2a9cc: daffad05 00000050 88fcdf04 0040fdcf ....P.........@. 2a9dc: 40fe7f00 f7ef0400 f4ff0700 4f809e00 ...@...........O 2a9ec: ff4f70ff f8af00c0 dff4ff0c ff9a80ff .pO............. 2a9fc: fdff08fe ef80ffdf ff08feff c0ff4ffd .............O.. 2aa0c: 0cf8ff8f ff07f4ff 80ee08f4 0070ff4f ............O.p. 2aa1c: 0040fe7f 00f8ef04 fcdf0400 40fdcf88 ..@............@ 2aa2c: 05000000 50daffad 208c0000 00000000 .......P... .... 2aa3c: 00000000 0000e4df 00000000 ff1b0000 ................ 2aa4c: fddf4980 000000a5 ffff7f00 d4ff8cd8 .I.............. 2aa5c: 04000000 0000f8ef 0070ff4e ff1c0000 ........N.p..... 2aa6c: ff04e869 e30400f7 fffe9f00 40ffcf80 i..............@ 2aa7c: 0570ff0d 8fe0ffff ff0dd0ff ff2d00f7 ..p...........-. 2aa8c: d0ff8fe0 00fcff04 cff8af00 7f0030ff .............0.. 2aa9c: 060040ff 00f7ffff f4ff0800 ff3e0000 .@............>. 2aaac: 000000a0 82c8ff4d 00f7bf01 5a000000 ....M..........Z 2aabc: 0810fcdf 0000a0ff 00000000 fd4e0000 ..............N. ... 2aad4: 0000c802 d22d0000 00000000 00000000 ......-......... 2aae4: 0000fbbf 00000000 ffff0500 00000050 ............P... 2aaf4: 0d000000 00d0ffff 00000000 ffff7f00 ................ 2ab04: 000000f7 ff010000 10ff8dd8 00000000 ................ 2ab14: 0aa0ff0a 0000a0ff ff3f0000 f3ff0bb0 ..........?..... 2ab24: 00000000 0cc0ffcf 0000fcff ffff0500 ................ 2ab34: ffff0dd0 0e000050 9ff9ffff 00e0ffff ....P........... 2ab44: ffff8f00 ffff2ee2 ff0200f8 0990ffff ................ 2ab54: 10ffffff ffffff0a ffff3ee3 ff0fa0ff .........>...... 2ab64: ffffffff f0ffffff ffffff08 ffffffff ................ 2ab74: 000080ff 00000000 00000000 00000000 ................ 2ab84: 000000d8 00000000 ffff80ff ff070070 ............p... 2ab94: fffff8ff ff6f00f6 8e78fdff e8ff15ff ......o...x..... 2aba4: 0200e2ff 20fe4fe5 000020fe 00f3ff13 .....O. . ...... 2abb4: 00000052 0031ff3f 02000052 205ef4ef R...?.1.R.....^ 2abc4: 8e7820fe e8ff51ff ffffe2ff ff6f00f6 . x..Q........o. 2abd4: fffffdff ff070070 0000f8ff 00000000 ....p........... 2abe4: 000080ff 00000000 000000d8 00000000 ................ ... 2abfc: 01000000 000010dd ff1d0000 000000d1 ................ 2ac0c: fdffdf01 1d000010 d1ff99ff f9df0100 ................ 2ac1c: 10fd9f00 0090ff1d bfd1ff09 000000f9 ................ 2ac2c: 905ffb9f 09000000 000000f5 00000000 .._............. 2ac3c: 00000000 5f000000 00000090 f9bff509 ......._........ 2ac4c: 9f000000 90ff1dfb d1ff0900 00f9df01 ................ 2ac5c: 0010fd9f ff99ff1d 010000d1 10fdffdf ................ 2ac6c: 1d000000 0000d1ff dd010000 00000010 ................ ... 2ac8c: 00d11d00 00000000 df010000 ffef10fd ................ 2ac9c: 00d0ffff d1ffff1d ffffffaf cfcf00f0 ................ 2acac: 0000fcfc 00f00f00 b6f11f6b 0f000000 ........k....... 2acbc: 0f0000f0 000000f0 00f00f00 00f00f00 ................ 2accc: 0f000000 0f0000f0 000000f0 b6f11f6b ............k... 2acdc: 00f00f00 cfcf0000 0f00fcfc faffffff ................ 2acec: d1ffff1d ffff0d00 df01feff 000010fd ................ 2acfc: 00000000 00d11d00 00000000 00000000 ................ 2ad0c: ff8f0000 0000e2ff ffff0000 0020feff .............. . 2ad1c: ffff0000 ffffffff fffff8ff ffffffff ................ 2ad2c: ffffffff ffffffff ffffffff ffffffff ................ 2ad3c: ffffffff ffffffff ffffffff ffffffff ................ 2ad4c: ffffffff ffffffff ffffffff ffffffff ................ 2ad5c: ffffffff ffffffff ff8fffff ffffffff ................ 2ad6c: 0000f8ff 00b00b00 00000000 00fbbf00 ................ 2ad7c: 00000000 b0ffff0b 00000000 fbffffbf ................ 2ad8c: 0b000000 ffffffff 4f0000b0 ffffffff ...........O.... 2ad9c: 000000f4 00ffff00 00000000 00ffff00 ................ 2adac: 00000000 00ffff00 00000000 00ffff00 ................ 2adbc: 00000000 00ffff00 ffdf0000 0ffddff0 ................ 2adcc: fffffdff 9f0000f9 ffffffff ffffffff ................ 2addc: ffffffff f0ffffff ffdfffe0 ffffffff ................ 2adec: 0000fdff 00000000 00000000 00000000 ................ 2adfc: 0062ea0a 00000000 f0ffff02 00000000 ..b............. 2ae0c: ffff9f00 00000000 ffff0f00 000000d0 ................ 2ae1c: ffff0200 000000fb ef030000 000070ff .............p.. 2ae2c: 04000000 0000f2ff 00000000 0000fbbf ................ 2ae3c: 00000000 0030ff6f 00000200 0090ff4f ....o.0.....O... 2ae4c: 00f38f02 00d0ff6f e4ffff0a 00d1ffbf ....o........... 2ae5c: ffffef00 00d1ffff ffff0a00 0090ffff ................ 2ae6c: ff6f0000 0030fbff ff020000 000072db ..o...0......r.. 2ae7c: 08000000 000080ee ff086106 2d0080ff .........a.....- 2ae8c: 33efd0ff ff2e00fe 3ff30ef3 f3ff2ee0 ...3.......?.... 2ae9c: ffff8f00 00f3ff6e ffff8e00 0000f3ff ....n........... 2aeac: ffef0200 000000f3 ffff2e00 08000030 ............0... 2aebc: ffffffef ff080030 ffeff6ff 33ef0030 ....0.......0..3 2aecc: ffef02fe 3ff30e30 ffef02e0 f8ff8f30 ....0..?....0... 2aedc: fddf0200 00e88e00 10660000 ffdf0000 ..........f..... 2aeec: 00200dff ffffff00 0000e20f 0fffffff .. ............. 2aefc: fff0dffd 0020ffff fffff0ff ffffffff ...... ......... 2af0c: fffffff0 f0ffffff ffffffff fff0ffff ................ 2af1c: ffffffff fffff0ff ffffffff fffffff0 ................ 2af2c: f0ffffff ffffffff fff0ffff ffffffff ................ 2af3c: ffdff0ff fffdffff 000000f9 ffff0000 ................ 2af4c: 00ffffff ffffdf00 0000fdff ffffff8f ................ 2af5c: ff00c2ff ffffffff 00ff20fe ff010000 ......... ...... 2af6c: 0000ffe2 fcff0000 000000ff ffffff00 ................ 2af7c: 00000000 ffffffff ffffffff ffffffff ................ 2af8c: ffffffff 11fbffff ffffffbf 1f00f1ff ................ 2af9c: ffffffff ff1f00f1 fbffffff ffffbf11 ................ 2afac: ffffffff 8fffffff ffffffff df00f8ff ................ 2afbc: 0000fdff fcffff01 ff030000 0000f7ff ................ 2afcc: f2ffff06 ff080000 0000d0ff ffffff0a ................ 2afdc: ff0cd0ff a0ffffff ffffff0e ff0d20ff ............. .. 2afec: 00f8ffff ff0a0000 000000e0 0050ff0e ..............P. 2affc: fc2f0000 00000000 0000f35f a09f0000 ../....._....... 2b00c: 00000000 000010df 00d70000 04000000 ................ 2b01c: 000040ee 99ffdf00 0000fdff ff99ffff .@.............. 2b02c: ff0000ff ffffffff ffff0000 00000090 ................ 2b03c: 0dffff00 200dffff ff0fffff ffe20fff ....... ........ 2b04c: ffff0fff fffffd0f 20ffff0f 0fffff00 ........... .... 2b05c: ffffffff ff0fffff ffffffff ffff0fff ................ 2b06c: ffdfffff ffffff0f 0f0000ff ffffffff ................ 2b07c: ff0f0000 00ffffff ffff0d00 0000fdff ................ 2b08c: 0000cc00 02000000 000030ff ffbf0100 .........0...... 2b09c: 000020fc ffffff1e 9f0000e1 f8ffffff . .............. 2b0ac: ffef0000 00fdffff ffffff00 0100ffff ................ 2b0bc: ffffffff ff0300ff ffffffff ffff0830 ............0... 2b0cc: 80ffffff ffffff1e cfe1ffff ffffffff ................ 2b0dc: ffcffcff ffffffff 000000fc 00000000 ................ 2b0ec: ff0e0000 000000e0 40ee0400 ff8f0000 ...........@.... 2b0fc: ffffffff fff8ffff ffffffff ffffffff ................ 2b10c: 0ff000ff 000ff000 f000ffff 0ff0000f ................ 2b11c: ffffff00 ffffffff ffffffff 888008f8 ................ 2b12c: ff8f8008 8008f8ff 8f800888 ffffffff ................ 2b13c: ffffffff 00ffffff 000000f0 ffff000f ................ 2b14c: 0000f000 ff000f00 ffffffff ffffffff ................ 2b15c: ffff8fff ffffffff 0000f8ff 00000000 ................ ... 2b174: 70af0300 00000000 ffcf0400 000000f0 ...p............ 2b184: ffdf0600 0000a0ff ffef1700 0030ffff ..............0. 2b194: ffff1800 00fcffff ffff2a00 f4ffffff .........*...... 2b1a4: ffff0800 ffffffff ff0f00d0 ffffffff ................ 2b1b4: 080060ff ffffffff 0000feff 00000000 .`.............. 2b1c4: 00f7ffff 00000000 f1ffff00 00000000 ................ 2b1d4: ffff0000 00000080 ff000000 000010ff ................ 2b1e4: 00000000 0000faff 00000000 00f2ff00 ................ 2b1f4: 00000000 808f0000 00000000 00000000 ................ 2b204: 00000000 f0ffffdf ffff00d2 20fef0ff ............... 2b214: f0ffffff ffffe2ff fdfff0ff f2ffffff ................ 2b224: ffff0000 ffffffff ffffffff ffffffff ................ 2b234: ffffffff ffffffff ffffffff ffffffff ................ 2b244: ffffffff ffffffff ffffffff ffffffff ................ 2b254: ffffffff ffffffff ffffffff ffdfffff ................ 2b264: fdffffff 00000000 00000000 00000000 ................ 2b274: feef9c04 000040c9 ffef0700 feffffff .....@.......... 2b284: df040070 8aa8fcff 40fdffcf 00d5ff6f p..........@o... 2b294: 5d000000 f6cff6ff 00000000 fc6f0000 ...]..........o. 2b2a4: 5a00301a 00a5fddf 0000a103 ffffff4d .0.Z........M... 2b2b4: 0000d4ff feff0500 ffef8aa8 01000050 ............P... 2b2c4: 000070df 0010fd07 00120000 21000000 .p.............! 2b2d4: 00000000 e44e0000 00000000 00000000 ......N......... 2b2e4: 0000feef 00000000 feef0000 00000000 ................ 2b2f4: 00000000 0000e44e ff8f0000 ffffffff ....N........... 2b304: 80ffffff ffffffff ffffffff 00fff0ff ................ 2b314: 00000000 fd0f0000 ffff0fff ffffffff ................ 2b324: 0fffff0f ffffffff ff00ffff ffff0fff ................ 2b334: ffffffff 0fffff00 ffffffff ff0fffff ................ 2b344: 000000ff 00000000 fffffd0f ffffffff ................ 2b354: f0ffffff ffffff8f ffffffff ff8f80ff ................ 2b364: ffffffff 80ffffff ffffffff ffffffff ................ 2b374: 00fff0ff 00000000 fd0f0000 ffff0fff ................ 2b384: 00f0ffff 0fffff0f ffffffff ff0000f0 ................ 2b394: ffff0fff 00f0ffff 0fffff00 ffffffff ................ 2b3a4: ff0f00f0 000000ff 00000000 fffffd0f ................ 2b3b4: ffffffff f0ffffff ffffff8f ffffffff ................ 2b3c4: ff8f80ff ffffffff 80ffffff ffffffff ................ 2b3d4: ffffffff 00fff0ff 00000000 fd0f0000 ................ 2b3e4: ffff0fff 000000ff 0fffff0f 00ffffff ................ 2b3f4: ff000000 ffff0fff 000000ff 0fffff00 ................ 2b404: 00ffffff ff0f0000 000000ff 00000000 ................ 2b414: fffffd0f ffffffff f0ffffff ffffff8f ................ 2b424: ffffffff ff8f80ff ffffffff 80ffffff ................ 2b434: ffffffff ffffffff 00fff0ff 00000000 ................ 2b444: fd0f0000 f0ff0fff 00000000 0fffff0f ................ 2b454: 0000f0ff ff000000 f0ff0fff 00000000 ................ 2b464: 0fffff00 0000f0ff ff0f0000 000000ff ................ 2b474: 00000000 fffffd0f ffffffff f0ffffff ................ 2b484: ffffff8f ffffffff ff8f80ff ffffffff ................ 2b494: 80ffffff ffffffff ffffffff 00fff0ff ................ 2b4a4: 00000000 fd0f0000 000000ff 00000000 ................ 2b4b4: 00ffff0f 00000000 ff000000 000000ff ................ 2b4c4: 00000000 00ffff00 00000000 ff0f0000 ................ 2b4d4: 000000ff 00000000 fffffd0f ffffffff ................ 2b4e4: f0ffffff ffffff8f ffffffff 000080ff ................ 2b4f4: 01000000 00000000 00000000 10fd0700 ................ 2b504: 00000000 cf010000 0000f5ff 00000000 ................ 2b514: fe29b900 00000010 3f000000 00000210 ..)........?.... 2b524: df030000 00900a80 70030000 77ffdf00 ...........p...w 2b534: 555555f7 0fd38f55 dfccfdff cdccccdc .UUUU........... 2b544: fe8fb0ff 00aa0010 404d0000 00104600 ..........M@.F.. 2b554: 3302f201 00000010 09000000 00f9cfb1 ...3............ 2b564: 00000000 ff0a0000 000090ff 00000000 ................ 2b574: f9bf0000 00000000 00000000 00002201 .............".. 2b584: df180000 020092fd ffeffbef faff0d30 ............0... 2b594: 4fe0ff2e ff03faff fafa9ff5 cffa4f35 ...O........5O.. 2b5a4: 0b3d8ac0 03fbeffd fffe8f12 ff06b0ff ..=............. 2b5b4: d1ffffff efffff08 9f1011fd 59d1dfff ...............Y 2b5c4: affd0b3b 1d38fad7 faff5ffb 0df7df01 ;.....8.._...... 2b5d4: ff1dfaff fcef03f1 0050ffdf a3fedf18 ..........P..... 2b5e4: 7f000000 0000f7ff ffffffef effeffff ................ 2b5f4: ffffffff 0000feff 00000000 ffff0f00 ................ 2b604: f0ffffff ffffff0f 0ff0ffff f9999ff9 ................ 2b614: f80ff09f 8ff8888f 8ff80ff0 f08ff888 ................ 2b624: 888ff80f 0ff08ff8 f8888ff8 f80ff08f ................ 2b634: 8ff8888f 8ff80ff0 f08ff888 999ff90f ................ 2b644: 0ff09ff9 ffffffff ff08f0ff ffffffff ................ 2b654: 00000080 7f000000 000000a0 8f000000 ................ 2b664: 0000b0ff 0d000000 00a0ffff 8a000000 ................ 2b674: 00ffff1d 8f000000 70ff1dfa 8f000000 ...........p.... 2b684: 801dfaff 8f000000 00faffff 8f000000 ................ 2b694: 80ffffff 8f000000 80ffffff 8f000000 ................ 2b6a4: 80ffffff 8f000000 80ffffff 6f000000 ...............o 2b6b4: 80ffffff 0b000000 80ffffff 00000000 ................ 2b6c4: 80ffffdf 00000000 80ffff0e 00000000 ................ 2b6d4: 60dbde00 00000000 00000000 00000000 ...`............ 2b6e4: 00000000 ffffff1b e4ffffff ffdf0100 ................ 2b6f4: ffffffff 1d00feff effaffff ffffaffe ................ 2b704: ffffdf01 0ae22ea0 ff1dffff 02e2ffff ................ 2b714: ffff2e20 ffffffcf ef0220fe ffcfffff ........ ...... 2b724: 20feffff ffffef02 ffffff1d 2e2002e2 ... .......... . 2b734: df01ffff 2ea0ffff ffff0ae2 ffff1d00 ................ 2b744: affeeffa 0100ffff ffffffdf feffffff ................ 2b754: ff1b0000 ffffffff 0800e4ff e4ffffff ................ 2b764: ffff8f00 f808feff ff400b0f 0b0ff88f ..........@..... 2b774: f8ffff40 ff400b0f ffffffff ffffffff @.....@......... 2b784: ffffffff ffffffff ffffffff ffffffff ................ 2b794: ffffffff ffffffff ffffffff ffffffff ................ 2b7a4: ffffffff ffffffff ffffffff ffefffff ................ 2b7b4: feffffff ffffff4e 0000e4ff 00000000 ....N........... 2b7c4: 00000100 00000000 00e00300 00001000 ................ 2b7d4: 10ef0200 0000bf00 f17f0000 00f1cf00 ................ 2b7e4: ff070000 77ffcf11 bf777777 ffffcff1 .......wwww..... 2b7f4: ffffffff ffff17ff ffffffff ff07e0ff ................ 2b804: 000000f1 06000000 000010ff 00000000 ................ 2b814: 0000a005 00000000 732f2e2e 65726168 ........../share 2b824: 68742f64 70647269 79747261 67766c2f d/thirdparty/lvg 2b834: 72732f6c 766c2f63 6c61685f 5f766c2f l/src/lv_hal/lv_ 2b844: 5f6c6168 70736964 hal_disp.c. 0002b84f <__func__.0>: 2b84f: 645f766c 5f707369 5f767264 69676572 lv_disp_drv_regi 2b85f: 72657473 2f2e2e00 72616873 742f6465 ster.../shared/t 2b86f: 64726968 74726170 766c2f79 732f6c67 hirdparty/lvgl/s 2b87f: 6c2f6372 696d5f76 6c2f6373 6e615f76 rc/lv_misc/lv_an 2b88f: 632e6d69 im.c. 0002b894 <__func__.0>: 2b894: 615f766c 5f6d696e 72617473 00000074 lv_anim_start... 0002b8a4 : 2b8a4: 0000dc99 00000000 732f2e2e 65726168 ........../share 2b8b4: 68742f64 70647269 79747261 67766c2f d/thirdparty/lvg 2b8c4: 72732f6c 766c2f63 73696d5f 766c2f63 l/src/lv_misc/lv 2b8d4: 2e73665f _fs.c. 0002b8da <__func__.0>: 2b8da: 665f766c 72645f73 65725f76 74736967 lv_fs_drv_regist 2b8ea: er. 0002b8ed <__func__.2>: 2b8ed: 665f766c 706f5f73 lv_fs_open. 0002b8f8 <__func__.1>: 2b8f8: 665f766c 69645f73 706f5f72 00006e65 lv_fs_dir_open.. 0002b908 : 2b908: 023c0000 06b30478 0b2808ee 0f990d61 ..<.x.....(.a... 2b918: 140611d0 186c163a 1ccb1a9d 21211ef7 ....:.l.......!! 2b928: 256c2348 29ac278e 2ddf2bc7 32032ff3 H#l%.'.).+.-./.2 2b938: 36183410 3a1c381c 3e0e3c17 41ec3fff .4.6.8.:.<.>.?.A 2b948: 45b643d4 496a4793 4d084b3c 508d4ecd .C.E.GjI: 2bad2: 6d5f766c 615f6d65 636f6c6c lv_mem_alloc. 0002badf <__func__.0>: 2badf: 5f766c5f 5f6d656d 5f667562 656c6572 _lv_mem_buf_rele 2baef: 00657361 ase. 0002baf3 <__func__.2>: 2baf3: 6d5f766c 725f6d65 6c6c6165 lv_mem_realloc. 0002bb02 <__func__.1>: 2bb02: 5f766c5f 5f6d656d 5f667562 00746567 _lv_mem_buf_get. 2bb12: 732f2e2e 65726168 68742f64 70647269 ../shared/thirdp 2bb22: 79747261 67766c2f 72732f6c 766c2f63 arty/lvgl/src/lv 2bb32: 73696d5f 766c2f63 7361745f 00632e6b _misc/lv_task.c. 0002bb42 <__func__.1>: 2bb42: 745f766c 5f6b7361 61657263 625f6574 lv_task_create_b 2bb52: 63697361 asic. 0002bb57 <__func__.0>: 2bb57: 745f766c 5f6b7361 61657263 20006574 lv_task_create. 2bb67: 3a3b2e2c 2e005f2d 68732f2e 64657261 ,.;:-_.../shared 2bb77: 6968742f 61706472 2f797472 6c67766c /thirdparty/lvgl 2bb87: 6372732f 5f766c2f 6373696d 5f766c2f /src/lv_misc/lv_ 2bb97: 2e747874 766c0063 7478745f 7465675f txt.c.lv_txt_get 2bba7: 7a69735f 69203a65 6765746e 6f207265 _size: integer o 2bbb7: 66726576 20776f6c 6c696877 61632065 verflow while ca 2bbc7: 6c75636c 6e697461 65742067 68207478 lculating text h 2bbd7: 68676965 eight. 0002bbdd <__func__.0>: 2bbdd: 5f766c5f 5f747874 5f746567 657a6973 _lv_txt_get_size 2bbed: 8c80ef00 10ffff00 2ec61884 68732f2e ............./sh 2bbfd: 64657261 6968742f 61706472 2f797472 ared/thirdparty/ 2bc0d: 6c67766c 6372732f 5f766c2f 67646977 lvgl/src/lv_widg 2bc1d: 2f737465 695f766c 632e676d 5f766c00 ets/lv_img.c.lv_ 2bc2d: 5f676d69 5f746573 3a637273 6b6e7520 img_set_src: unk 2bc3d: 6e776f6e 70797420 766c0065 676d695f nown type.lv_img 2bc4d: 7465735f 6372735f 6e75203a 776f6e6b _set_src: unknow 2bc5d: 6d69206e 20656761 65707974 5f766c00 n image type.lv_ 2bc6d: 5f676d69 5f746573 3a637273 4c602020 img_set_src: `L 2bc7d: 4d495f56 52535f47 41565f43 42414952 V_IMG_SRC_VARIAB 2bc8d: 2060454c 65707974 756f6620 6900646e LE` type found.i 2bc9d: 6567616d 65726320 64657461 5f766c00 mage created.lv_ 2bcad: 00676d69 img. 0002bcb1 <__func__.13>: 2bcb1: 695f766c 645f676d 67697365 lv_img_design. 0002bcbf <__func__.11>: 2bcbf: 695f766c 735f676d 615f7465 5f6f7475 lv_img_set_auto_ 2bccf: 657a6973 size. 0002bcd4 <__func__.10>: 2bcd4: 695f766c 735f676d 6f5f7465 65736666 lv_img_set_offse 2bce4: 00785f74 t_x. 0002bce8 <__func__.9>: 2bce8: 695f766c 735f676d 6f5f7465 65736666 lv_img_set_offse 2bcf8: 00795f74 t_y. 0002bcfc <__func__.8>: 2bcfc: 695f766c 675f676d 735f7465 lv_img_get_src. 0002bd0b <__func__.7>: 2bd0b: 695f766c 675f676d 665f7465 5f656c69 lv_img_get_file_ 2bd1b: 656d616e name. 0002bd20 <__func__.6>: 2bd20: 695f766c 675f676d 615f7465 5f6f7475 lv_img_get_auto_ 2bd30: 657a6973 size. 0002bd35 <__func__.12>: 2bd35: 695f766c 735f676d 735f7465 lv_img_set_src. 0002bd44 <__func__.14>: 2bd44: 695f766c 635f676d 74616572 lv_img_create. 0002bd52 <__func__.5>: 2bd52: 695f766c 675f676d 6f5f7465 65736666 lv_img_get_offse 2bd62: 00785f74 t_x. 0002bd66 <__func__.4>: 2bd66: 695f766c 675f676d 6f5f7465 65736666 lv_img_get_offse 2bd76: 00795f74 t_y. 0002bd7a <__func__.3>: 2bd7a: 695f766c 675f676d 705f7465 746f7669 lv_img_get_pivot ... 0002bd8b <__func__.2>: 2bd8b: 695f766c 675f676d 615f7465 656c676e lv_img_get_angle ... 0002bd9c <__func__.1>: 2bd9c: 695f766c 675f676d 7a5f7465 006d6f6f lv_img_get_zoom. 0002bdac <__func__.0>: 2bdac: 695f766c 675f676d 615f7465 6169746e lv_img_get_antia 2bdbc: 7361696c 2f2e2e00 72616873 742f6465 lias.../shared/t 2bdcc: 64726968 74726170 766c2f79 732f6c67 hirdparty/lvgl/s 2bddc: 6c2f6372 69775f76 74656764 766c2f73 rc/lv_widgets/lv 2bdec: 62616c5f 632e6c65 69614600 2064656c _label.c.Failed 2bdfc: 61206f74 636f6c6c 20657461 6f6d656d to allocate memo 2be0c: 66207972 6420726f 745f746f 705f706d ry for dot_tmp_p 2be1c: 54007274 00747865 6562616c 7263206c tr.Text.label cr 2be2c: 65746165 766c0064 62616c5f eated.lv_label. 0002be3b <__func__.21>: 2be3b: 6c5f766c 6c656261 7465735f 746f645f lv_label_set_dot 2be4b: 706d745f _tmp. 0002be50 <__func__.16>: 2be50: 6c5f766c 6c656261 7465735f 696c615f lv_label_set_ali 2be60: gn. 0002be63 <__func__.13>: 2be63: 6c5f766c 6c656261 7465735f 7865745f lv_label_set_tex 2be73: 65735f74 74735f6c 00747261 t_sel_start. 0002be7f <__func__.12>: 2be7f: 6c5f766c 6c656261 7465735f 7865745f lv_label_set_tex 2be8f: 65735f74 6e655f6c t_sel_end. 0002be99 <__func__.11>: 2be99: 6c5f766c 6c656261 7465675f 7865745f lv_label_get_tex 2bea9: t. 0002beab <__func__.10>: 2beab: 6c5f766c 6c656261 7465675f 6e6f6c5f lv_label_get_lon 2bebb: 6f6d5f67 g_mode. 0002bec2 <__func__.9>: 2bec2: 6c5f766c 6c656261 7465675f 696c615f lv_label_get_ali 2bed2: gn. 0002bed5 <__func__.8>: 2bed5: 6c5f766c 6c656261 7465675f 6365725f lv_label_get_rec 2bee5: 726f6c6f olor. 0002beea <__func__.7>: 2beea: 6c5f766c 6c656261 7465675f 696e615f lv_label_get_ani 2befa: 70735f6d 00646565 m_speed. 0002bf02 <__func__.6>: 2bf02: 6c5f766c 6c656261 7465675f 74656c5f lv_label_get_let 2bf12: 5f726574 00736f70 ter_pos. 0002bf1a <__func__.5>: 2bf1a: 6c5f766c 6c656261 7465675f 74656c5f lv_label_get_let 2bf2a: 5f726574 ter_on. 0002bf31 <__func__.20>: 2bf31: 6c5f766c 6c656261 7465735f 7865745f lv_label_set_tex 2bf41: t. 0002bf43 <__func__.19>: 2bf43: 6c5f766c 6c656261 7465735f 7865745f lv_label_set_tex 2bf53: 6d665f74 t_fmt. 0002bf59 <__func__.18>: 2bf59: 6c5f766c 6c656261 7465735f 7865745f lv_label_set_tex 2bf69: 74735f74 63697461 t_static. 0002bf72 <__func__.17>: 2bf72: 6c5f766c 6c656261 7465735f 6e6f6c5f lv_label_set_lon 2bf82: 6f6d5f67 g_mode. 0002bf89 <__func__.15>: 2bf89: 6c5f766c 6c656261 7465735f 6365725f lv_label_set_rec 2bf99: 726f6c6f olor. 0002bf9e <__func__.22>: 2bf9e: 6c5f766c 6c656261 6572635f 00657461 lv_label_create. 0002bfae <__func__.14>: 2bfae: 6c5f766c 6c656261 7465735f 696e615f lv_label_set_ani 2bfbe: 70735f6d 00646565 m_speed. 0002bfc6 <__func__.4>: 2bfc6: 6c5f766c 6c656261 7465675f 7865745f lv_label_get_tex 2bfd6: 65735f74 74735f6c 00747261 t_sel_start. 0002bfe2 <__func__.3>: 2bfe2: 6c5f766c 6c656261 7465675f 7865745f lv_label_get_tex 2bff2: 65735f74 6e655f6c t_sel_end. 0002bffc <__func__.2>: 2bffc: 6c5f766c 6c656261 5f73695f 72616863 lv_label_is_char 2c00c: 646e755f 705f7265 _under_pos. 0002c017 <__func__.1>: 2c017: 6c5f766c 6c656261 736e695f 7865745f lv_label_ins_tex 2c027: t. 0002c029 <__func__.0>: 2c029: 6c5f766c 6c656261 7475635f 7865745f lv_label_cut_tex 2c039: 49000074 6900464e 4e00666e 6e004e41 t..INF.inf.NAN.n 2c049: 30006e61 34333231 38373635 43424139 an.0123456789ABC 2c059: 00464544 30000000 34333231 38373635 DEF....012345678 2c069: 63626139 00666564 28000000 6c6c756e 9abcdef....(null 2c079: 30000029 )..0... 0002c080 : 2c080: 20202020 20202020 20202020 20202020 0002c090 : 2c090: 30303030 30303030 30303030 30303030 0000000000000000 2c0a0: 202a2a2a 66667562 6f207265 66726576 *** buffer overf 2c0b0: 20776f6c 65746564 64657463 2a2a2a20 low detected *** 2c0c0: 6574203a 6e696d72 64657461 0000000a : terminated.... 2c0d0: 69666e49 7974696e 00000000 004e614e Infinity....NaN. 2c0e0: 6c6c6142 7320636f 65636375 64656465 Balloc succeeded 2c0f0: 00000000 7261762f 706d742f 726f702f ..../var/tmp/por 2c100: 65676174 6f72632f 612d7373 6e2d6d72 tage/cross-arm-n 2c110: 2d656e6f 69626165 77656e2f 2d62696c one-eabi/newlib- 2c120: 2e322e34 30322e30 32313132 772f3133 4.2.0.20211231/w 2c130: 2f6b726f 6c77656e 342d6269 302e322e ork/newlib-4.2.0 2c140: 3230322e 33323131 656e2f31 62696c77 .20211231/newlib 2c150: 62696c2f 74732f63 62696c64 6f74642f /libc/stdlib/dto 2c160: 00632e61 7261762f 706d742f 726f702f a.c./var/tmp/por 2c170: 65676174 6f72632f 612d7373 6e2d6d72 tage/cross-arm-n 2c180: 2d656e6f 69626165 77656e2f 2d62696c one-eabi/newlib- 2c190: 2e322e34 30322e30 32313132 772f3133 4.2.0.20211231/w 2c1a0: 2f6b726f 6c77656e 342d6269 302e322e ork/newlib-4.2.0 2c1b0: 3230322e 33323131 656e2f31 62696c77 .20211231/newlib 2c1c0: 62696c2f 74732f63 62696c64 72706d2f /libc/stdlib/mpr 2c1d0: 632e6365 00000000 ec.c.... 0002c1d8 <__mprec_bigtens>: 2c1d8: 37e08000 4341c379 b5056e17 4693b8b5 ...7y.AC.n.....F 2c1e8: e93ff9f5 4d384f03 f9301d32 5a827748 ..?..O8M2.0.Hw.Z 2c1f8: 7f73bf3c 75154fdd <.s..O.u 0002c200 <__mprec_tens>: 2c200: 00000000 3ff00000 00000000 40240000 .......?......$@ 2c210: 00000000 40590000 00000000 408f4000 ......Y@.....@.@ 2c220: 00000000 40c38800 00000000 40f86a00 .......@.....j.@ 2c230: 00000000 412e8480 00000000 416312d0 .......A......cA 2c240: 00000000 4197d784 00000000 41cdcd65 .......A....e..A 2c250: 20000000 4202a05f e8000000 42374876 ... _..B....vH7B 2c260: a2000000 426d1a94 e5400000 42a2309c ......mB..@..0.B 2c270: 1e900000 42d6bcc4 26340000 430c6bf5 .......B..4&.k.C 2c280: 37e08000 4341c379 85d8a000 43763457 ...7y.AC....W4vC 2c290: 674ec800 43abc16d 60913d00 43e158e4 ..Ngm..C.=.`.X.C 2c2a0: 78b58c40 4415af1d d6e2ef50 444b1ae4 @..x...DP.....KD 2c2b0: 064dd592 4480f0cf c7e14af6 44b52d02 ..M....D.J...-.D 2c2c0: 79d99db4 44ea7843 ...yCx.D 0002c2c8 : 2c2c8: 00000005 00000019 0000007d ........}... 0002c2d4 : 2c2d4: 20202020 20202020 20202020 20202020 0002c2e4 : 2c2e4: 30303030 30303030 30303030 30303030 0000000000000000 2c2f4: 7566202c 6974636e 203a6e6f 00000000 , function: .... 2c304: 65737361 6f697472 2522206e 66202273 assertion "%s" f 2c314: 656c6961 66203a64 20656c69 22732522 ailed: file "%s" 2c324: 696c202c 2520656e 25732564 00000a73 , line %d%s%s... 2c334: 00000043 49534f50 00000058 0000002e C...POSIX....... 0002c344 : 2c344: 20202020 20202020 20202020 20202020 0002c354 : 2c354: 30303030 30303030 30303030 30303030 0000000000000000 0002c364 <_ctype_>: 2c364: 20202000 20202020 28282020 20282828 . ((((( 2c374: 20202020 20202020 20202020 20202020 2c384: 10108820 10101010 10101010 10101010 ............... 2c394: 04040410 04040404 10040404 10101010 ................ 2c3a4: 41411010 41414141 01010101 01010101 ..AAAAAA........ 2c3b4: 01010101 01010101 01010101 10101010 ................ 2c3c4: 42421010 42424242 02020202 02020202 ..BBBBBB........ 2c3d4: 02020202 02020202 02020202 10101010 ................ 2c3e4: 00000020 00000000 00000000 00000000 ............... ... 0002c468 <_init>: 2c468: b5f8 push {r3, r4, r5, r6, r7, lr} 2c46a: bf00 nop 2c46c: bcf8 pop {r3, r4, r5, r6, r7} 2c46e: bc08 pop {r3} 2c470: 469e mov lr, r3 2c472: 4770 bx lr 0002c474 <__frame_dummy_init_array_entry>: 2c474: 02cd 0000 .... 0002c478 <_fini>: 2c478: b5f8 push {r3, r4, r5, r6, r7, lr} 2c47a: bf00 nop 2c47c: bcf8 pop {r3, r4, r5, r6, r7} 2c47e: bc08 pop {r3} 2c480: 469e mov lr, r3 2c482: 4770 bx lr 0002c484 <__do_global_dtors_aux_fini_array_entry>: 2c484: 02a5 0000 ....