// File: /workspace/github_c_makefile_star2_O0/OnionIoT[P]lv_example/lvgl/src/lv_objx/lv_label.c
// Function: lv_label_signal
static lv_res_t lv_label_signal(lv_obj_t * label, lv_signal_t sign, void * param)
{
    lv_res_t res;

    /* Include the ancient signal function */
    res = ancestor_signal(label, sign, param);
    if(res != LV_RES_OK) return res;
    if(sign == LV_SIGNAL_GET_TYPE) return lv_obj_handle_get_type_signal(param, LV_OBJX_NAME);

    lv_label_ext_t * ext = lv_obj_get_ext_attr(label);
    if(sign == LV_SIGNAL_CLEANUP) {
        if(ext->static_txt == 0) {
            lv_mem_free(ext->text);
            ext->text = NULL;
        }
        lv_label_dot_tmp_free(label);
    } else if(sign == LV_SIGNAL_STYLE_CHG) {
        /*Revert dots for proper refresh*/
        lv_label_revert_dots(label);

        lv_label_refr_text(label);
    } else if(sign == LV_SIGNAL_CORD_CHG) {
        if(lv_area_get_width(&label->coords) != lv_area_get_width(param) ||
           lv_area_get_height(&label->coords) != lv_area_get_height(param)) {
            lv_label_revert_dots(label);
            lv_label_refr_text(label);
        }
    } else if(sign == LV_SIGNAL_REFR_EXT_DRAW_PAD) {
        if(ext->body_draw) {
            const lv_style_t * style = lv_label_get_style(label, LV_LABEL_STYLE_MAIN);

            label->ext_draw_pad = LV_MATH_MAX(label->ext_draw_pad, style->body.padding.left);
            label->ext_draw_pad = LV_MATH_MAX(label->ext_draw_pad, style->body.padding.right);
            label->ext_draw_pad = LV_MATH_MAX(label->ext_draw_pad, style->body.padding.top);
            label->ext_draw_pad = LV_MATH_MAX(label->ext_draw_pad, style->body.padding.bottom);
        }
    }
    else if(sign == LV_SIGNAL_BASE_DIR_CHG) {
#if LV_USE_BIDI
        if(ext->static_txt == 0) lv_label_set_text(label, NULL);
#endif
    } else if(sign == LV_SIGNAL_GET_TYPE) {
        lv_obj_type_t * buf = param;
        uint8_t i;
        for(i = 0; i < LV_MAX_ANCESTOR_NUM - 1; i++) { /*Find the last set data*/
            if(buf->type[i] == NULL) break;
        }
        buf->type[i] = "lv_label";
    }

    return res;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movb %sil, %al
movq %rdi, -0x10(%rbp)
movb %al, -0x11(%rbp)
movq %rdx, -0x20(%rbp)
movq 0x5f253(%rip), %rax     # 0x89480
movq -0x10(%rbp), %rdi
movb -0x11(%rbp), %cl
movq -0x20(%rbp), %rdx
movzbl %cl, %esi
callq *%rax
movb %al, -0x21(%rbp)
movzbl -0x21(%rbp), %eax
cmpl $0x1, %eax
je 0x2a254
movb -0x21(%rbp), %al
movb %al, -0x1(%rbp)
jmp 0x2a4dd
movzbl -0x11(%rbp), %eax
cmpl $0x7, %eax
jne 0x2a275
movq -0x20(%rbp), %rdi
leaq 0x3e37e(%rip), %rsi     # 0x685e6
callq 0xaa80
movb %al, -0x1(%rbp)
jmp 0x2a4dd
movq -0x10(%rbp), %rdi
callq 0xa8f0
movq %rax, -0x30(%rbp)
movzbl -0x11(%rbp), %eax
cmpl $0x0, %eax
jne 0x2a2c8
movq -0x30(%rbp), %rax
movw 0x18(%rax), %ax
shrw $0x3, %ax
andw $0x1, %ax
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x2a2ba
movq -0x30(%rbp), %rax
movq (%rax), %rdi
callq 0x44ec0
movq -0x30(%rbp), %rax
movq $0x0, (%rax)
movq -0x10(%rbp), %rdi
callq 0x2ca70
jmp 0x2a4d7
movzbl -0x11(%rbp), %eax
cmpl $0x4, %eax
jne 0x2a2e8
movq -0x10(%rbp), %rdi
callq 0x2ba30
movq -0x10(%rbp), %rdi
callq 0x2adc0
jmp 0x2a4d5
movzbl -0x11(%rbp), %eax
cmpl $0x2, %eax
jne 0x2a356
movq -0x10(%rbp), %rdi
addq $0x20, %rdi
callq 0x2cae0
cwtl
movl %eax, -0x48(%rbp)
movq -0x20(%rbp), %rdi
callq 0x2cae0
movw %ax, %cx
movl -0x48(%rbp), %eax
movswl %cx, %ecx
cmpl %ecx, %eax
jne 0x2a33f
movq -0x10(%rbp), %rdi
addq $0x20, %rdi
callq 0x2cb00
cwtl
movl %eax, -0x4c(%rbp)
movq -0x20(%rbp), %rdi
callq 0x2cb00
movw %ax, %cx
movl -0x4c(%rbp), %eax
movswl %cx, %ecx
cmpl %ecx, %eax
je 0x2a351
movq -0x10(%rbp), %rdi
callq 0x2ba30
movq -0x10(%rbp), %rdi
callq 0x2adc0
jmp 0x2a4d3
movzbl -0x11(%rbp), %eax
cmpl $0x6, %eax
jne 0x2a474
movq -0x30(%rbp), %rax
movw 0x18(%rax), %ax
shrw $0x8, %ax
andw $0x1, %ax
cmpb $0x0, %al
je 0x2a472
movq -0x10(%rbp), %rdi
xorl %esi, %esi
callq 0x2cb20
movq %rax, -0x38(%rbp)
movq -0x10(%rbp), %rax
movswl 0x5c(%rax), %eax
movq -0x38(%rbp), %rcx
movswl 0x1a(%rcx), %ecx
cmpl %ecx, %eax
jle 0x2a3ab
movq -0x10(%rbp), %rax
movswl 0x5c(%rax), %eax
movl %eax, -0x50(%rbp)
jmp 0x2a3b6
movq -0x38(%rbp), %rax
movswl 0x1a(%rax), %eax
movl %eax, -0x50(%rbp)
movl -0x50(%rbp), %eax
movw %ax, %cx
movq -0x10(%rbp), %rax
movw %cx, 0x5c(%rax)
movq -0x10(%rbp), %rax
movswl 0x5c(%rax), %eax
movq -0x38(%rbp), %rcx
movswl 0x1c(%rcx), %ecx
cmpl %ecx, %eax
jle 0x2a3e5
movq -0x10(%rbp), %rax
movswl 0x5c(%rax), %eax
movl %eax, -0x54(%rbp)
jmp 0x2a3f0
movq -0x38(%rbp), %rax
movswl 0x1c(%rax), %eax
movl %eax, -0x54(%rbp)
movl -0x54(%rbp), %eax
movw %ax, %cx
movq -0x10(%rbp), %rax
movw %cx, 0x5c(%rax)
movq -0x10(%rbp), %rax
movswl 0x5c(%rax), %eax
movq -0x38(%rbp), %rcx
movswl 0x16(%rcx), %ecx
cmpl %ecx, %eax
jle 0x2a41f
movq -0x10(%rbp), %rax
movswl 0x5c(%rax), %eax
movl %eax, -0x58(%rbp)
jmp 0x2a42a
movq -0x38(%rbp), %rax
movswl 0x16(%rax), %eax
movl %eax, -0x58(%rbp)
movl -0x58(%rbp), %eax
movw %ax, %cx
movq -0x10(%rbp), %rax
movw %cx, 0x5c(%rax)
movq -0x10(%rbp), %rax
movswl 0x5c(%rax), %eax
movq -0x38(%rbp), %rcx
movswl 0x18(%rcx), %ecx
cmpl %ecx, %eax
jle 0x2a459
movq -0x10(%rbp), %rax
movswl 0x5c(%rax), %eax
movl %eax, -0x5c(%rbp)
jmp 0x2a464
movq -0x38(%rbp), %rax
movswl 0x18(%rax), %eax
movl %eax, -0x5c(%rbp)
movl -0x5c(%rbp), %eax
movw %ax, %cx
movq -0x10(%rbp), %rax
movw %cx, 0x5c(%rax)
jmp 0x2a4d1
movzbl -0x11(%rbp), %eax
cmpl $0x5, %eax
jne 0x2a47f
jmp 0x2a4cf
movzbl -0x11(%rbp), %eax
cmpl $0x7, %eax
jne 0x2a4cd
movq -0x20(%rbp), %rax
movq %rax, -0x40(%rbp)
movb $0x0, -0x41(%rbp)
movzbl -0x41(%rbp), %eax
cmpl $0x7, %eax
jge 0x2a4ba
movq -0x40(%rbp), %rax
movzbl -0x41(%rbp), %ecx
cmpq $0x0, (%rax,%rcx,8)
jne 0x2a4ae
jmp 0x2a4ba
jmp 0x2a4b0
movb -0x41(%rbp), %al
addb $0x1, %al
movb %al, -0x41(%rbp)
jmp 0x2a494
movq -0x40(%rbp), %rax
movzbl -0x41(%rbp), %ecx
leaq 0x3e11d(%rip), %rdx     # 0x685e6
movq %rdx, (%rax,%rcx,8)
jmp 0x2a4cf
jmp 0x2a4d1
jmp 0x2a4d3
jmp 0x2a4d5
jmp 0x2a4d7
movb -0x21(%rbp), %al
movb %al, -0x1(%rbp)
movb -0x1(%rbp), %al
addq $0x60, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)