LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/OnionIoT[P]lv_example/lvgl/src/lv_objx/lv_btn.c
// Function: lv_btn_toggle
void lv_btn_toggle(lv_obj_t * btn)
{
    LV_ASSERT_OBJ(btn, LV_OBJX_NAME);

    lv_btn_ext_t * ext = lv_obj_get_ext_attr(btn);
    switch(ext->state) {
        case LV_BTN_STATE_REL: lv_btn_set_state(btn, LV_BTN_STATE_TGL_REL); break;
        case LV_BTN_STATE_PR: lv_btn_set_state(btn, LV_BTN_STATE_TGL_PR); break;
        case LV_BTN_STATE_TGL_REL: lv_btn_set_state(btn, LV_BTN_STATE_REL); break;
        case LV_BTN_STATE_TGL_PR: lv_btn_set_state(btn, LV_BTN_STATE_PR); break;
        default: break;
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
callq 0xd120
testb $0x1, %al
jne 0x207eb
movq -0x8(%rbp), %rsi
leaq 0x47918(%rip), %rdi     # 0x680fc
callq 0xd410
jmp 0x207e9
movq -0x8(%rbp), %rdi
callq 0xa8f0
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movzbl 0x30(%rax), %eax
andl $0x7, %eax
movq %rax, -0x18(%rbp)
subb $0x3, %al
ja 0x2085c
movq -0x18(%rbp), %rax
leaq 0x47cc2(%rip), %rcx     # 0x684d8
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x8(%rbp), %rdi
movl $0x2, %esi
callq 0x20730
jmp 0x2085e
movq -0x8(%rbp), %rdi
movl $0x3, %esi
callq 0x20730
jmp 0x2085e
movq -0x8(%rbp), %rdi
xorl %esi, %esi
callq 0x20730
jmp 0x2085e
movq -0x8(%rbp), %rdi
movl $0x1, %esi
callq 0x20730
jmp 0x2085e
jmp 0x2085e
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/OnionIoT[P]lv_example/lvgl/src/lv_objx/lv_btn.c
// Function: lv_btn_get_style
const lv_style_t * lv_btn_get_style(const lv_obj_t * btn, lv_btn_style_t type)
{
    LV_ASSERT_OBJ(btn, LV_OBJX_NAME);

    const lv_style_t * style = NULL;
    lv_btn_ext_t * ext       = lv_obj_get_ext_attr(btn);
    lv_btn_state_t state     = lv_btn_get_state(btn);

    /* If the style of the current state is asked then return object style.
     * If the button is focused then this style is updated by the group's
     * `style_mod_cb` function */
    if((type == LV_BTN_STYLE_REL && state == LV_BTN_STATE_REL) ||
       (type == LV_BTN_STYLE_PR && state == LV_BTN_STATE_PR) ||
       (type == LV_BTN_STYLE_TGL_REL && state == LV_BTN_STATE_TGL_REL) ||
       (type == LV_BTN_STYLE_TGL_PR && state == LV_BTN_STATE_TGL_PR) ||
       (type == LV_BTN_STYLE_INA && state == LV_BTN_STATE_INA)) {

        style = lv_obj_get_style(btn);
    } else {
        switch(type) {
            case LV_BTN_STYLE_REL: style = ext->styles[LV_BTN_STATE_REL]; break;
            case LV_BTN_STYLE_PR: style = ext->styles[LV_BTN_STATE_PR]; break;
            case LV_BTN_STYLE_TGL_REL: style = ext->styles[LV_BTN_STATE_TGL_REL]; break;
            case LV_BTN_STYLE_TGL_PR: style = ext->styles[LV_BTN_STATE_TGL_PR]; break;
            case LV_BTN_STYLE_INA: style = ext->styles[LV_BTN_STATE_INA]; break;
            default: style = NULL; break;
        }
    }

    return style;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movb %sil, %al
movq %rdi, -0x8(%rbp)
movb %al, -0x9(%rbp)
movq -0x8(%rbp), %rdi
callq 0xd120
testb $0x1, %al
jne 0x20ae1
movq -0x8(%rbp), %rsi
leaq 0x47622(%rip), %rdi     # 0x680fc
callq 0xd410
jmp 0x20adf
movq $0x0, -0x18(%rbp)
movq -0x8(%rbp), %rdi
callq 0xa8f0
movq %rax, -0x20(%rbp)
movq -0x8(%rbp), %rdi
callq 0x20930
movb %al, -0x21(%rbp)
movzbl -0x9(%rbp), %eax
cmpl $0x0, %eax
jne 0x20b14
movzbl -0x21(%rbp), %eax
cmpl $0x0, %eax
je 0x20b5c
movzbl -0x9(%rbp), %eax
cmpl $0x1, %eax
jne 0x20b26
movzbl -0x21(%rbp), %eax
cmpl $0x1, %eax
je 0x20b5c
movzbl -0x9(%rbp), %eax
cmpl $0x2, %eax
jne 0x20b38
movzbl -0x21(%rbp), %eax
cmpl $0x2, %eax
je 0x20b5c
movzbl -0x9(%rbp), %eax
cmpl $0x3, %eax
jne 0x20b4a
movzbl -0x21(%rbp), %eax
cmpl $0x3, %eax
je 0x20b5c
movzbl -0x9(%rbp), %eax
cmpl $0x4, %eax
jne 0x20b6b
movzbl -0x21(%rbp), %eax
cmpl $0x4, %eax
jne 0x20b6b
movq -0x8(%rbp), %rdi
callq 0xa080
movq %rax, -0x18(%rbp)
jmp 0x20bdd
movzbl -0x9(%rbp), %eax
movq %rax, -0x30(%rbp)
subq $0x4, %rax
ja 0x20bd3
movq -0x30(%rbp), %rax
leaq 0x47964(%rip), %rcx     # 0x684e8
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x20(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x18(%rbp)
jmp 0x20bdb
movq -0x20(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x18(%rbp)
jmp 0x20bdb
movq -0x20(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x18(%rbp)
jmp 0x20bdb
movq -0x20(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x18(%rbp)
jmp 0x20bdb
movq -0x20(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0x18(%rbp)
jmp 0x20bdb
movq $0x0, -0x18(%rbp)
jmp 0x20bdd
movq -0x18(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/OnionIoT[P]lv_example/lvgl/src/lv_objx/lv_calendar.c
// Function: lv_calendar_design
static bool lv_calendar_design(lv_obj_t * calendar, const lv_area_t * mask, lv_design_mode_t mode)
{
    /*Return false if the object is not covers the mask_p area*/
    if(mode == LV_DESIGN_COVER_CHK) {
        return ancestor_design(calendar, mask, mode);
    }
    /*Draw the object*/
    else if(mode == LV_DESIGN_DRAW_MAIN) {
        lv_opa_t opa_scale = lv_obj_get_opa_scale(calendar);
        lv_draw_rect(&calendar->coords, mask, lv_calendar_get_style(calendar, LV_CALENDAR_STYLE_BG), opa_scale);

        draw_header(calendar, mask);
        draw_day_names(calendar, mask);
        draw_days(calendar, mask);

    }
    /*Post draw when the children are drawn*/
    else if(mode == LV_DESIGN_DRAW_POST) {
    }

    return true;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movb %dl, %al
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movb %al, -0x19(%rbp)
movzbl -0x19(%rbp), %eax
cmpl $0x2, %eax
jne 0x214dd
movq 0x67f83(%rip), %rax     # 0x89448
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movzbl -0x19(%rbp), %edx
callq *%rax
andb $0x1, %al
movb %al, -0x1(%rbp)
jmp 0x21561
movzbl -0x19(%rbp), %eax
cmpl $0x0, %eax
jne 0x2154e
movq -0x10(%rbp), %rdi
callq 0xa710
movb %al, -0x1a(%rbp)
movq -0x10(%rbp), %rax
addq $0x20, %rax
movq %rax, -0x30(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x10(%rbp), %rdi
xorl %esi, %esi
callq 0x21b80
movq -0x30(%rbp), %rdi
movq -0x28(%rbp), %rsi
movq %rax, %rdx
movzbl -0x1a(%rbp), %ecx
callq 0x5a9e0
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x21c70
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x21f20
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x220d0
jmp 0x2155b
movzbl -0x19(%rbp), %eax
cmpl $0x1, %eax
jne 0x21559
jmp 0x21559
jmp 0x2155b
jmp 0x2155d
movb $0x1, -0x1(%rbp)
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/OnionIoT[P]lv_example/lvgl/src/lv_objx/lv_calendar.c
// Function: lv_calendar_set_style
void lv_calendar_set_style(lv_obj_t * calendar, lv_calendar_style_t type, const lv_style_t * style)
{
    LV_ASSERT_OBJ(calendar, LV_OBJX_NAME);

    lv_calendar_ext_t * ext = lv_obj_get_ext_attr(calendar);

    switch(type) {
        case LV_CALENDAR_STYLE_BG: lv_obj_set_style(calendar, style); break;
        case LV_CALENDAR_STYLE_DAY_NAMES: ext->style_day_names = style; break;
        case LV_CALENDAR_STYLE_HEADER: ext->style_header = style; break;
        case LV_CALENDAR_STYLE_HEADER_PR: ext->style_header_pr = style; break;
        case LV_CALENDAR_STYLE_HIGHLIGHTED_DAYS: ext->style_highlighted_days = style; break;
        case LV_CALENDAR_STYLE_INACTIVE_DAYS: ext->style_inactive_days = style; break;
        case LV_CALENDAR_STYLE_TODAY_BOX: ext->style_today_box = style; break;
        case LV_CALENDAR_STYLE_WEEK_BOX: ext->style_week_box = style; break;
    }

    lv_obj_invalidate(calendar);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movb %sil, %al
movq %rdi, -0x8(%rbp)
movb %al, -0x9(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rdi
callq 0xd120
testb $0x1, %al
jne 0x215a5
movq -0x8(%rbp), %rsi
leaq 0x46b5e(%rip), %rdi     # 0x680fc
callq 0xd410
jmp 0x215a3
movq -0x8(%rbp), %rdi
callq 0xa8f0
movq %rax, -0x20(%rbp)
movzbl -0x9(%rbp), %eax
movq %rax, -0x28(%rbp)
subq $0x7, %rax
ja 0x21647
movq -0x28(%rbp), %rax
leaq 0x46f35(%rip), %rcx     # 0x68504
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x9150
jmp 0x21647
movq -0x18(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x38(%rax)
jmp 0x21647
movq -0x18(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x28(%rax)
jmp 0x21647
movq -0x18(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x30(%rax)
jmp 0x21647
movq -0x18(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x40(%rax)
jmp 0x21647
movq -0x18(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x48(%rax)
jmp 0x21647
movq -0x18(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x58(%rax)
jmp 0x21647
movq -0x18(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x50(%rax)
movq -0x8(%rbp), %rdi
callq 0x7430
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/OnionIoT[P]lv_example/lvgl/src/lv_objx/lv_calendar.c
// Function: lv_calendar_set_today_date
void lv_calendar_set_today_date(lv_obj_t * calendar, lv_calendar_date_t * today)
{
    LV_ASSERT_OBJ(calendar, LV_OBJX_NAME);
    LV_ASSERT_NULL(today);

    lv_calendar_ext_t * ext = lv_obj_get_ext_attr(calendar);
    ext->today.year         = today->year;
    ext->today.month        = today->month;
    ext->today.day          = today->day;

    lv_obj_invalidate(calendar);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rdi
callq 0xd120
testb $0x1, %al
jne 0x2168f
movq -0x8(%rbp), %rsi
leaq 0x46a74(%rip), %rdi     # 0x680fc
callq 0xd410
jmp 0x2168d
movq -0x10(%rbp), %rdi
callq 0xd120
testb $0x1, %al
jne 0x216ae
movq -0x10(%rbp), %rsi
leaq 0x46a55(%rip), %rdi     # 0x680fc
callq 0xd410
jmp 0x216ac
movq -0x8(%rbp), %rdi
callq 0xa8f0
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rax
movw (%rax), %cx
movq -0x18(%rbp), %rax
movw %cx, (%rax)
movq -0x10(%rbp), %rax
movb 0x2(%rax), %cl
movq -0x18(%rbp), %rax
movb %cl, 0x2(%rax)
movq -0x10(%rbp), %rax
movb 0x3(%rax), %cl
movq -0x18(%rbp), %rax
movb %cl, 0x3(%rax)
movq -0x8(%rbp), %rdi
callq 0x7430
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/OnionIoT[P]lv_example/lvgl/src/lv_objx/lv_calendar.c
// Function: lv_calendar_set_showed_date
void lv_calendar_set_showed_date(lv_obj_t * calendar, lv_calendar_date_t * showed)
{
    LV_ASSERT_OBJ(calendar, LV_OBJX_NAME);
    LV_ASSERT_NULL(showed);

    lv_calendar_ext_t * ext = lv_obj_get_ext_attr(calendar);
    ext->showed_date.year   = showed->year;
    ext->showed_date.month  = showed->month;
    ext->showed_date.day    = showed->day;

    lv_obj_invalidate(calendar);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rdi
callq 0xd120
testb $0x1, %al
jne 0x2172f
movq -0x8(%rbp), %rsi
leaq 0x469d4(%rip), %rdi     # 0x680fc
callq 0xd410
jmp 0x2172d
movq -0x10(%rbp), %rdi
callq 0xd120
testb $0x1, %al
jne 0x2174e
movq -0x10(%rbp), %rsi
leaq 0x469b5(%rip), %rdi     # 0x680fc
callq 0xd410
jmp 0x2174c
movq -0x8(%rbp), %rdi
callq 0xa8f0
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rax
movw (%rax), %cx
movq -0x18(%rbp), %rax
movw %cx, 0x4(%rax)
movq -0x10(%rbp), %rax
movb 0x2(%rax), %cl
movq -0x18(%rbp), %rax
movb %cl, 0x6(%rax)
movq -0x10(%rbp), %rax
movb 0x3(%rax), %cl
movq -0x18(%rbp), %rax
movb %cl, 0x7(%rax)
movq -0x8(%rbp), %rdi
callq 0x7430
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/OnionIoT[P]lv_example/lvgl/src/lv_objx/lv_calendar.c
// Function: lv_calendar_set_highlighted_dates
void lv_calendar_set_highlighted_dates(lv_obj_t * calendar, lv_calendar_date_t highlighted[], uint16_t date_num)
{
    LV_ASSERT_OBJ(calendar, LV_OBJX_NAME);
    LV_ASSERT_NULL(highlighted);

    lv_calendar_ext_t * ext    = lv_obj_get_ext_attr(calendar);
    ext->highlighted_dates     = highlighted;
    ext->highlighted_dates_num = date_num;

    lv_obj_invalidate(calendar);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movw %dx, %ax
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movw %ax, -0x12(%rbp)
movq -0x8(%rbp), %rdi
callq 0xd120
testb $0x1, %al
jne 0x217d6
movq -0x8(%rbp), %rsi
leaq 0x4692d(%rip), %rdi     # 0x680fc
callq 0xd410
jmp 0x217d4
movq -0x10(%rbp), %rdi
callq 0xd120
testb $0x1, %al
jne 0x217f5
movq -0x10(%rbp), %rsi
leaq 0x4690e(%rip), %rdi     # 0x680fc
callq 0xd410
jmp 0x217f3
movq -0x8(%rbp), %rdi
callq 0xa8f0
movq %rax, -0x20(%rbp)
movq -0x10(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x8(%rax)
movw -0x12(%rbp), %cx
movq -0x20(%rbp), %rax
movw %cx, 0x12(%rax)
movq -0x8(%rbp), %rdi
callq 0x7430
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/OnionIoT[P]lv_example/lvgl/src/lv_objx/lv_calendar.c
// Function: lv_calendar_set_day_names
void lv_calendar_set_day_names(lv_obj_t * calendar, const char ** day_names)
{
    LV_ASSERT_OBJ(calendar, LV_OBJX_NAME);
    LV_ASSERT_NULL(day_names);

    lv_calendar_ext_t * ext = lv_obj_get_ext_attr(calendar);
    ext->day_names          = day_names;
    lv_obj_invalidate(calendar);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rdi
callq 0xd120
testb $0x1, %al
jne 0x2185f
movq -0x8(%rbp), %rsi
leaq 0x468a4(%rip), %rdi     # 0x680fc
callq 0xd410
jmp 0x2185d
movq -0x10(%rbp), %rdi
callq 0xd120
testb $0x1, %al
jne 0x2187e
movq -0x10(%rbp), %rsi
leaq 0x46885(%rip), %rdi     # 0x680fc
callq 0xd410
jmp 0x2187c
movq -0x8(%rbp), %rdi
callq 0xa8f0
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x8(%rbp), %rdi
callq 0x7430
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/OnionIoT[P]lv_example/lvgl/src/lv_objx/lv_calendar.c
// Function: lv_calendar_set_month_names
void lv_calendar_set_month_names(lv_obj_t * calendar, const char ** month_names)
{
    LV_ASSERT_OBJ(calendar, LV_OBJX_NAME);
    LV_ASSERT_NULL(month_names);

    lv_calendar_ext_t * ext = lv_obj_get_ext_attr(calendar);
    ext->month_names        = month_names;
    lv_obj_invalidate(calendar);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rdi
callq 0xd120
testb $0x1, %al
jne 0x218df
movq -0x8(%rbp), %rsi
leaq 0x46824(%rip), %rdi     # 0x680fc
callq 0xd410
jmp 0x218dd
movq -0x10(%rbp), %rdi
callq 0xd120
testb $0x1, %al
jne 0x218fe
movq -0x10(%rbp), %rsi
leaq 0x46805(%rip), %rdi     # 0x680fc
callq 0xd410
jmp 0x218fc
movq -0x8(%rbp), %rdi
callq 0xa8f0
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x20(%rax)
movq -0x8(%rbp), %rdi
callq 0x7430
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/OnionIoT[P]lv_example/lvgl/src/lv_objx/lv_calendar.c
// Function: lv_calendar_get_style
const lv_style_t * lv_calendar_get_style(const lv_obj_t * calendar, lv_calendar_style_t type)
{
    LV_ASSERT_OBJ(calendar, LV_OBJX_NAME);

    const lv_style_t * style = NULL;
    lv_calendar_ext_t * ext  = lv_obj_get_ext_attr(calendar);

    switch(type) {
        case LV_CALENDAR_STYLE_BG: style = lv_obj_get_style(calendar); break;
        case LV_CALENDAR_STYLE_HEADER: style = ext->style_header; break;
        case LV_CALENDAR_STYLE_HEADER_PR: style = ext->style_header_pr; break;
        case LV_CALENDAR_STYLE_DAY_NAMES: style = ext->style_day_names; break;
        case LV_CALENDAR_STYLE_HIGHLIGHTED_DAYS: style = ext->style_highlighted_days; break;
        case LV_CALENDAR_STYLE_INACTIVE_DAYS: style = ext->style_inactive_days; break;
        case LV_CALENDAR_STYLE_WEEK_BOX: style = ext->style_week_box; break;
        case LV_CALENDAR_STYLE_TODAY_BOX: style = ext->style_today_box; break;
        default: style = NULL; break;
    }

    return style;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movb %sil, %al
movq %rdi, -0x8(%rbp)
movb %al, -0x9(%rbp)
movq -0x8(%rbp), %rdi
callq 0xd120
testb $0x1, %al
jne 0x21bb1
movq -0x8(%rbp), %rsi
leaq 0x46552(%rip), %rdi     # 0x680fc
callq 0xd410
jmp 0x21baf
movq $0x0, -0x18(%rbp)
movq -0x8(%rbp), %rdi
callq 0xa8f0
movq %rax, -0x20(%rbp)
movzbl -0x9(%rbp), %eax
movq %rax, -0x28(%rbp)
subq $0x7, %rax
ja 0x21c5d
movq -0x28(%rbp), %rax
leaq 0x46941(%rip), %rcx     # 0x68524
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x8(%rbp), %rdi
callq 0xa080
movq %rax, -0x18(%rbp)
jmp 0x21c65
movq -0x20(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0x18(%rbp)
jmp 0x21c65
movq -0x20(%rbp), %rax
movq 0x30(%rax), %rax
movq %rax, -0x18(%rbp)
jmp 0x21c65
movq -0x20(%rbp), %rax
movq 0x38(%rax), %rax
movq %rax, -0x18(%rbp)
jmp 0x21c65
movq -0x20(%rbp), %rax
movq 0x40(%rax), %rax
movq %rax, -0x18(%rbp)
jmp 0x21c65
movq -0x20(%rbp), %rax
movq 0x48(%rax), %rax
movq %rax, -0x18(%rbp)
jmp 0x21c65
movq -0x20(%rbp), %rax
movq 0x50(%rax), %rax
movq %rax, -0x18(%rbp)
jmp 0x21c65
movq -0x20(%rbp), %rax
movq 0x58(%rax), %rax
movq %rax, -0x18(%rbp)
jmp 0x21c65
movq $0x0, -0x18(%rbp)
movq -0x18(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/OnionIoT[P]lv_example/lvgl/src/lv_objx/lv_calendar.c
// Function: get_month_name
static const char * get_month_name(lv_obj_t * calendar, int32_t month)
{
    month--; /*Range of months id [1..12] but range of indexes is [0..11]*/
    if(month < 0) month = 12 + month;

    lv_calendar_ext_t * ext = lv_obj_get_ext_attr(calendar);
    if(ext->month_names)
        return ext->month_names[month];
    else
        return month_name[month];
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movl -0x14(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x14(%rbp)
cmpl $0x0, -0x14(%rbp)
jge 0x22847
movl -0x14(%rbp), %eax
addl $0xc, %eax
movl %eax, -0x14(%rbp)
movq -0x10(%rbp), %rdi
callq 0xa8f0
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
cmpq $0x0, 0x20(%rax)
je 0x22875
movq -0x20(%rbp), %rax
movq 0x20(%rax), %rax
movslq -0x14(%rbp), %rcx
movq (%rax,%rcx,8), %rax
movq %rax, -0x8(%rbp)
jmp 0x22888
movslq -0x14(%rbp), %rcx
leaq 0x59d00(%rip), %rax     # 0x7c580
movq (%rax,%rcx,8), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/OnionIoT[P]lv_example/lvgl/src/lv_objx/lv_calendar.c
// Function: get_day_name
static const char * get_day_name(lv_obj_t * calendar, uint8_t day)
{

    lv_calendar_ext_t * ext = lv_obj_get_ext_attr(calendar);
    if(ext->day_names)
        return ext->day_names[day];
    else
        return day_name[day];
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movb %sil, %al
movq %rdi, -0x10(%rbp)
movb %al, -0x11(%rbp)
movq -0x10(%rbp), %rdi
callq 0xa8f0
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
cmpq $0x0, 0x18(%rax)
je 0x22900
movq -0x20(%rbp), %rax
movq 0x18(%rax), %rax
movzbl -0x11(%rbp), %ecx
movq (%rax,%rcx,8), %rax
movq %rax, -0x8(%rbp)
jmp 0x22915
movzbl -0x11(%rbp), %eax
movl %eax, %ecx
leaq 0x59cd3(%rip), %rax     # 0x7c5e0
movq (%rax,%rcx,8), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/OnionIoT[P]lv_example/lvgl/src/lv_objx/lv_calendar.c
// Function: get_day_of_week
static uint8_t get_day_of_week(uint32_t year, uint32_t month, uint32_t day)
{
    uint32_t a = month < 3 ? 1 : 0;
    uint32_t b = year - a;

    uint32_t day_of_week = (day + (31 * (month - 2 + 12 * a) / 12) + b + (b / 4) - (b / 100) + (b / 400)) % 7;

    return day_of_week;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movl %edi, -0x4(%rbp)
movl %esi, -0x8(%rbp)
movl %edx, -0xc(%rbp)
movl -0x8(%rbp), %edx
xorl %eax, %eax
movl $0x1, %ecx
cmpl $0x3, %edx
cmovbl %ecx, %eax
movl %eax, -0x10(%rbp)
movl -0x4(%rbp), %eax
subl -0x10(%rbp), %eax
movl %eax, -0x14(%rbp)
movl -0xc(%rbp), %eax
movl %eax, -0x24(%rbp)
movl -0x8(%rbp), %eax
subl $0x2, %eax
imull $0xc, -0x10(%rbp), %ecx
addl %ecx, %eax
imull $0x1f, %eax, %eax
movl $0xc, %ecx
xorl %edx, %edx
divl %ecx
movl %eax, %ecx
movl -0x24(%rbp), %eax
addl %ecx, %eax
addl -0x14(%rbp), %eax
movl -0x14(%rbp), %ecx
shrl $0x2, %ecx
addl %ecx, %eax
movl %eax, -0x20(%rbp)
movl -0x14(%rbp), %eax
movl $0x64, %ecx
xorl %edx, %edx
divl %ecx
movl %eax, %ecx
movl -0x20(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x1c(%rbp)
movl -0x14(%rbp), %eax
movl $0x190, %ecx            # imm = 0x190
xorl %edx, %edx
divl %ecx
movl %eax, %ecx
movl -0x1c(%rbp), %eax
addl %ecx, %eax
movl $0x7, %ecx
xorl %edx, %edx
divl %ecx
movl %edx, -0x18(%rbp)
movl -0x18(%rbp), %eax
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/OnionIoT[P]lv_example/lvgl/src/lv_objx/lv_calendar.c
// Function: get_month_length
static uint8_t get_month_length(int32_t year, int32_t month)
{
    month--; /*Range of months id [1..12] but range of indexes is [0..11]*/
    if(month < 0) {
        year--;             /*Already in the previous year (won't be less then -12 to skip a whole year)*/
        month = 12 + month; /*`month` is negative, the result will be < 12*/
    }
    if(month >= 12) {
        year++;
        month -= 12;
    }

    /*month == 1 is february*/
    return (month == 1) ? (28 + is_leap_year(year)) : 31 - month % 7 % 2;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movl %edi, -0x4(%rbp)
movl %esi, -0x8(%rbp)
movl -0x8(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x8(%rbp)
cmpl $0x0, -0x8(%rbp)
jge 0x229ef
movl -0x4(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x4(%rbp)
movl -0x8(%rbp), %eax
addl $0xc, %eax
movl %eax, -0x8(%rbp)
cmpl $0xc, -0x8(%rbp)
jl 0x22a07
movl -0x4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4(%rbp)
movl -0x8(%rbp), %eax
subl $0xc, %eax
movl %eax, -0x8(%rbp)
cmpl $0x1, -0x8(%rbp)
jne 0x22a20
movl -0x4(%rbp), %edi
callq 0x22b30
movzbl %al, %eax
addl $0x1c, %eax
movl %eax, -0xc(%rbp)
jmp 0x22a3f
movl -0x8(%rbp), %eax
movl $0x7, %ecx
cltd
idivl %ecx
movl %edx, %eax
movl $0x2, %ecx
cltd
idivl %ecx
movl $0x1f, %eax
subl %edx, %eax
movl %eax, -0xc(%rbp)
movl -0xc(%rbp), %eax
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/OnionIoT[P]lv_example/lvgl/src/lv_objx/lv_calendar.c
// Function: is_highlighted
static bool is_highlighted(lv_obj_t * calendar, int32_t year, int32_t month, int32_t day)
{
    lv_calendar_ext_t * ext = lv_obj_get_ext_attr(calendar);

    if(ext->highlighted_dates == NULL || ext->highlighted_dates_num == 0) return false;

    uint32_t i;
    for(i = 0; i < ext->highlighted_dates_num; i++) {
        if(ext->highlighted_dates[i].year == year && ext->highlighted_dates[i].month == month &&
           ext->highlighted_dates[i].day == day) {
            return true;
        }
    }

    return false;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movl %edx, -0x18(%rbp)
movl %ecx, -0x1c(%rbp)
movq -0x10(%rbp), %rdi
callq 0xa8f0
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0x22aaa
movq -0x28(%rbp), %rax
movzwl 0x12(%rax), %eax
cmpl $0x0, %eax
jne 0x22ab0
movb $0x0, -0x1(%rbp)
jmp 0x22b1b
movl $0x0, -0x2c(%rbp)
movl -0x2c(%rbp), %eax
movq -0x28(%rbp), %rcx
movzwl 0x12(%rcx), %ecx
cmpl %ecx, %eax
jae 0x22b17
movq -0x28(%rbp), %rax
movq 0x8(%rax), %rax
movl -0x2c(%rbp), %ecx
movzwl (%rax,%rcx,4), %eax
cmpl -0x14(%rbp), %eax
jne 0x22b0a
movq -0x28(%rbp), %rax
movq 0x8(%rax), %rax
movl -0x2c(%rbp), %ecx
movsbl 0x2(%rax,%rcx,4), %eax
cmpl -0x18(%rbp), %eax
jne 0x22b0a
movq -0x28(%rbp), %rax
movq 0x8(%rax), %rax
movl -0x2c(%rbp), %ecx
movsbl 0x3(%rax,%rcx,4), %eax
cmpl -0x1c(%rbp), %eax
jne 0x22b0a
movb $0x1, -0x1(%rbp)
jmp 0x22b1b
jmp 0x22b0c
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
jmp 0x22ab7
movb $0x0, -0x1(%rbp)
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/OnionIoT[P]lv_example/lvgl/src/lv_objx/lv_chart.c
// Function: lv_chart_signal
static lv_res_t lv_chart_signal(lv_obj_t * chart, lv_signal_t sign, void * param)
{
    /* Include the ancient signal function */
    lv_res_t res;
    res = ancestor_signal(chart, 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_chart_ext_t * ext = lv_obj_get_ext_attr(chart);

    if(sign == LV_SIGNAL_CLEANUP) {
        lv_coord_t ** datal;
        LV_LL_READ(ext->series_ll, datal)
        {
            lv_mem_free(*datal);
        }
        lv_ll_clear(&ext->series_ll);
    } else if(sign == LV_SIGNAL_REFR_EXT_DRAW_PAD) {
        /*Provide extra px draw area around the chart*/
        chart->ext_draw_pad = ext->margin;
    }

    return res;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movb %sil, %al
movq %rdi, -0x10(%rbp)
movb %al, -0x11(%rbp)
movq %rdx, -0x20(%rbp)
movq 0x6615b(%rip), %rax     # 0x89458
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 0x23324
movb -0x21(%rbp), %al
movb %al, -0x1(%rbp)
jmp 0x233b7
movzbl -0x11(%rbp), %eax
cmpl $0x7, %eax
jne 0x23342
movq -0x20(%rbp), %rdi
leaq 0x45283(%rip), %rsi     # 0x685bb
callq 0xaa80
movb %al, -0x1(%rbp)
jmp 0x233b7
movq -0x10(%rbp), %rdi
callq 0xa8f0
movq %rax, -0x30(%rbp)
movzbl -0x11(%rbp), %eax
cmpl $0x0, %eax
jne 0x23396
movq -0x30(%rbp), %rdi
callq 0x45660
movq %rax, -0x38(%rbp)
cmpq $0x0, -0x38(%rbp)
je 0x2338b
movq -0x38(%rbp), %rax
movq (%rax), %rdi
callq 0x44ec0
movq -0x30(%rbp), %rdi
movq -0x38(%rbp), %rsi
callq 0x458a0
movq %rax, -0x38(%rbp)
jmp 0x23365
movq -0x30(%rbp), %rdi
callq 0x45910
jmp 0x233b1
movzbl -0x11(%rbp), %eax
cmpl $0x6, %eax
jne 0x233af
movq -0x30(%rbp), %rax
movw 0x58(%rax), %cx
movq -0x10(%rbp), %rax
movw %cx, 0x5c(%rax)
jmp 0x233b1
movb -0x21(%rbp), %al
movb %al, -0x1(%rbp)
movb -0x1(%rbp), %al
addq $0x40, %rsp
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/OnionIoT[P]lv_example/lvgl/src/lv_objx/lv_chart.c
// Function: lv_chart_add_series
lv_chart_series_t * lv_chart_add_series(lv_obj_t * chart, lv_color_t color)
{
    LV_ASSERT_OBJ(chart, LV_OBJX_NAME);

    lv_chart_ext_t * ext    = lv_obj_get_ext_attr(chart);
    lv_chart_series_t * ser = lv_ll_ins_head(&ext->series_ll);
    LV_ASSERT_MEM(ser);
    if(ser == NULL) return NULL;

    lv_coord_t def = LV_CHART_POINT_DEF;

    if(ser == NULL) return NULL;

    ser->color  = color;
    ser->points = lv_mem_alloc(sizeof(lv_coord_t) * ext->point_cnt);
    LV_ASSERT_MEM(ser->points);
    if(ser->points == NULL) {
        lv_ll_rem(&ext->series_ll, ser);
        lv_mem_free(ser);
        return NULL;
    }

    ser->start_point = 0;

    uint16_t i;
    lv_coord_t * p_tmp = ser->points;
    for(i = 0; i < ext->point_cnt; i++) {
        *p_tmp = def;
        p_tmp++;
    }

    ext->series.num++;

    return ser;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movw %si, %ax
movw %ax, -0xa(%rbp)
movq %rdi, -0x18(%rbp)
movq -0x18(%rbp), %rdi
callq 0xd120
testb $0x1, %al
jne 0x235a2
movq -0x18(%rbp), %rsi
leaq 0x44b61(%rip), %rdi     # 0x680fc
callq 0xd410
jmp 0x235a0
movq -0x18(%rbp), %rdi
callq 0xa8f0
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rdi
callq 0x453f0
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rdi
callq 0xd120
testb $0x1, %al
jne 0x235db
movq -0x28(%rbp), %rsi
leaq 0x44a70(%rip), %rdi     # 0x68044
callq 0xd410
jmp 0x235d9
cmpq $0x0, -0x28(%rbp)
jne 0x235ef
movq $0x0, -0x8(%rbp)
jmp 0x236e5
movw $0x83e8, -0x2a(%rbp)    # imm = 0x83E8
cmpq $0x0, -0x28(%rbp)
jne 0x23609
movq $0x0, -0x8(%rbp)
jmp 0x236e5
movq -0x28(%rbp), %rax
movw -0xa(%rbp), %cx
movw %cx, 0x8(%rax)
movq -0x20(%rbp), %rax
movzwl 0x1e(%rax), %eax
movl %eax, %edi
shlq %rdi
callq 0x44d20
movq %rax, %rcx
movq -0x28(%rbp), %rax
movq %rcx, (%rax)
movq -0x28(%rbp), %rax
movq (%rax), %rdi
callq 0xd120
testb $0x1, %al
jne 0x23656
movq -0x28(%rbp), %rax
movq (%rax), %rsi
leaq 0x449f5(%rip), %rdi     # 0x68044
callq 0xd410
jmp 0x23654
movq -0x28(%rbp), %rax
cmpq $0x0, (%rax)
jne 0x23680
movq -0x20(%rbp), %rdi
movq -0x28(%rbp), %rsi
callq 0x45790
movq -0x28(%rbp), %rdi
callq 0x44ec0
movq $0x0, -0x8(%rbp)
jmp 0x236e5
movq -0x28(%rbp), %rax
movw $0x0, 0xa(%rax)
movq -0x28(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x38(%rbp)
movw $0x0, -0x2c(%rbp)
movzwl -0x2c(%rbp), %eax
movq -0x20(%rbp), %rcx
movzwl 0x1e(%rcx), %ecx
cmpl %ecx, %eax
jge 0x236d0
movw -0x2a(%rbp), %cx
movq -0x38(%rbp), %rax
movw %cx, (%rax)
movq -0x38(%rbp), %rax
addq $0x2, %rax
movq %rax, -0x38(%rbp)
movw -0x2c(%rbp), %ax
addw $0x1, %ax
movw %ax, -0x2c(%rbp)
jmp 0x2369b
movq -0x20(%rbp), %rax
movb 0x5e(%rax), %cl
addb $0x1, %cl
movb %cl, 0x5e(%rax)
movq -0x28(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x40, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/OnionIoT[P]lv_example/lvgl/src/lv_objx/lv_chart.c
// Function: lv_chart_clear_serie
void lv_chart_clear_serie(lv_obj_t * chart, lv_chart_series_t * serie)
{
    LV_ASSERT_OBJ(chart, LV_OBJX_NAME);
    LV_ASSERT_NULL(serie);

    if(chart == NULL || serie == NULL) return;
    lv_chart_ext_t * ext = lv_obj_get_ext_attr(chart);
    if(ext == NULL) return;

    uint32_t i;
    for(i = 0; i < ext->point_cnt; i++) {
        serie->points[i] = LV_CHART_POINT_DEF;
    }

    serie->start_point = 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rdi
callq 0xd120
testb $0x1, %al
jne 0x2371f
movq -0x8(%rbp), %rsi
leaq 0x449e4(%rip), %rdi     # 0x680fc
callq 0xd410
jmp 0x2371d
movq -0x10(%rbp), %rdi
callq 0xd120
testb $0x1, %al
jne 0x2373e
movq -0x10(%rbp), %rsi
leaq 0x449c5(%rip), %rdi     # 0x680fc
callq 0xd410
jmp 0x2373c
cmpq $0x0, -0x8(%rbp)
je 0x2374c
cmpq $0x0, -0x10(%rbp)
jne 0x2374e
jmp 0x2379f
movq -0x8(%rbp), %rdi
callq 0xa8f0
movq %rax, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0x23764
jmp 0x2379f
movl $0x0, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
movq -0x18(%rbp), %rcx
movzwl 0x1e(%rcx), %ecx
cmpl %ecx, %eax
jae 0x23795
movq -0x10(%rbp), %rax
movq (%rax), %rax
movl -0x1c(%rbp), %ecx
movw $0x83e8, (%rax,%rcx,2)  # imm = 0x83E8
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x2376b
movq -0x10(%rbp), %rax
movw $0x0, 0xa(%rax)
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/OnionIoT[P]lv_example/lvgl/src/lv_objx/lv_chart.c
// Function: lv_chart_set_div_line_count
void lv_chart_set_div_line_count(lv_obj_t * chart, uint8_t hdiv, uint8_t vdiv)
{
    LV_ASSERT_OBJ(chart, LV_OBJX_NAME);

    lv_chart_ext_t * ext = lv_obj_get_ext_attr(chart);
    if(ext->hdiv_cnt == hdiv && ext->vdiv_cnt == vdiv) return;

    ext->hdiv_cnt = hdiv;
    ext->vdiv_cnt = vdiv;

    lv_obj_invalidate(chart);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movb %dl, %al
movb %sil, %cl
movq %rdi, -0x8(%rbp)
movb %cl, -0x9(%rbp)
movb %al, -0xa(%rbp)
movq -0x8(%rbp), %rdi
callq 0xd120
testb $0x1, %al
jne 0x237e6
movq -0x8(%rbp), %rsi
leaq 0x4491d(%rip), %rdi     # 0x680fc
callq 0xd410
jmp 0x237e4
movq -0x8(%rbp), %rdi
callq 0xa8f0
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movzbl 0x1c(%rax), %eax
movzbl -0x9(%rbp), %ecx
cmpl %ecx, %eax
jne 0x23815
movq -0x18(%rbp), %rax
movzbl 0x1d(%rax), %eax
movzbl -0xa(%rbp), %ecx
cmpl %ecx, %eax
jne 0x23815
jmp 0x23832
movb -0x9(%rbp), %cl
movq -0x18(%rbp), %rax
movb %cl, 0x1c(%rax)
movb -0xa(%rbp), %cl
movq -0x18(%rbp), %rax
movb %cl, 0x1d(%rax)
movq -0x8(%rbp), %rdi
callq 0x7430
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/OnionIoT[P]lv_example/lvgl/src/lv_objx/lv_chart.c
// Function: lv_chart_set_range
void lv_chart_set_range(lv_obj_t * chart, lv_coord_t ymin, lv_coord_t ymax)
{
    LV_ASSERT_OBJ(chart, LV_OBJX_NAME);

    lv_chart_ext_t * ext = lv_obj_get_ext_attr(chart);
    if(ext->ymin == ymin && ext->ymax == ymax) return;

    ext->ymin = ymin;
    ext->ymax = ymax;

    lv_chart_refresh(chart);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movw %dx, %ax
movw %si, %cx
movq %rdi, -0x8(%rbp)
movw %cx, -0xa(%rbp)
movw %ax, -0xc(%rbp)
movq -0x8(%rbp), %rdi
callq 0xd120
testb $0x1, %al
jne 0x23879
movq -0x8(%rbp), %rsi
leaq 0x4488a(%rip), %rdi     # 0x680fc
callq 0xd410
jmp 0x23877
movq -0x8(%rbp), %rdi
callq 0xa8f0
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movswl 0x18(%rax), %eax
movswl -0xa(%rbp), %ecx
cmpl %ecx, %eax
jne 0x238a8
movq -0x18(%rbp), %rax
movswl 0x1a(%rax), %eax
movswl -0xc(%rbp), %ecx
cmpl %ecx, %eax
jne 0x238a8
jmp 0x238c9
movw -0xa(%rbp), %cx
movq -0x18(%rbp), %rax
movw %cx, 0x18(%rax)
movw -0xc(%rbp), %cx
movq -0x18(%rbp), %rax
movw %cx, 0x1a(%rax)
movq -0x8(%rbp), %rdi
callq 0x238d0
addq $0x20, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/OnionIoT[P]lv_example/lvgl/src/lv_objx/lv_chart.c
// Function: lv_chart_set_type
void lv_chart_set_type(lv_obj_t * chart, lv_chart_type_t type)
{
    LV_ASSERT_OBJ(chart, LV_OBJX_NAME);

    lv_chart_ext_t * ext = lv_obj_get_ext_attr(chart);
    if(ext->type == type) return;

    ext->type = type;

    lv_chart_refresh(chart);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movb %sil, %al
movq %rdi, -0x8(%rbp)
movb %al, -0x9(%rbp)
movq -0x8(%rbp), %rdi
callq 0xd120
testb $0x1, %al
jne 0x23941
movq -0x8(%rbp), %rsi
leaq 0x447c2(%rip), %rdi     # 0x680fc
callq 0xd410
jmp 0x2393f
movq -0x8(%rbp), %rdi
callq 0xa8f0
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movzbl 0x20(%rax), %eax
movzbl -0x9(%rbp), %ecx
cmpl %ecx, %eax
jne 0x23960
jmp 0x23973
movb -0x9(%rbp), %cl
movq -0x18(%rbp), %rax
movb %cl, 0x20(%rax)
movq -0x8(%rbp), %rdi
callq 0x238d0
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/OnionIoT[P]lv_example/lvgl/src/lv_objx/lv_chart.c
// Function: lv_chart_set_series_opa
void lv_chart_set_series_opa(lv_obj_t * chart, lv_opa_t opa)
{
    LV_ASSERT_OBJ(chart, LV_OBJX_NAME);

    lv_chart_ext_t * ext = lv_obj_get_ext_attr(chart);
    if(ext->series.opa == opa) return;

    ext->series.opa = opa;
    lv_obj_invalidate(chart);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movb %sil, %al
movq %rdi, -0x8(%rbp)
movb %al, -0x9(%rbp)
movq -0x8(%rbp), %rdi
callq 0xd120
testb $0x1, %al
jne 0x23c71
movq -0x8(%rbp), %rsi
leaq 0x44492(%rip), %rdi     # 0x680fc
callq 0xd410
jmp 0x23c6f
movq -0x8(%rbp), %rdi
callq 0xa8f0
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movzbl 0x5f(%rax), %eax
movzbl -0x9(%rbp), %ecx
cmpl %ecx, %eax
jne 0x23c90
jmp 0x23ca3
movb -0x9(%rbp), %cl
movq -0x18(%rbp), %rax
movb %cl, 0x5f(%rax)
movq -0x8(%rbp), %rdi
callq 0x7430
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/OnionIoT[P]lv_example/lvgl/src/lv_objx/lv_chart.c
// Function: lv_chart_set_series_width
void lv_chart_set_series_width(lv_obj_t * chart, lv_coord_t width)
{
    LV_ASSERT_OBJ(chart, LV_OBJX_NAME);

    lv_chart_ext_t * ext = lv_obj_get_ext_attr(chart);
    if(ext->series.width == width) return;

    ext->series.width = width;
    lv_obj_invalidate(chart);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movw %si, %ax
movq %rdi, -0x8(%rbp)
movw %ax, -0xa(%rbp)
movq -0x8(%rbp), %rdi
callq 0xd120
testb $0x1, %al
jne 0x23ce2
movq -0x8(%rbp), %rsi
leaq 0x44421(%rip), %rdi     # 0x680fc
callq 0xd410
jmp 0x23ce0
movq -0x8(%rbp), %rdi
callq 0xa8f0
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movswl 0x5c(%rax), %eax
movswl -0xa(%rbp), %ecx
cmpl %ecx, %eax
jne 0x23d01
jmp 0x23d16
movw -0xa(%rbp), %cx
movq -0x18(%rbp), %rax
movw %cx, 0x5c(%rax)
movq -0x8(%rbp), %rdi
callq 0x7430
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/OnionIoT[P]lv_example/lvgl/src/lv_objx/lv_chart.c
// Function: lv_chart_set_series_darking
void lv_chart_set_series_darking(lv_obj_t * chart, lv_opa_t dark_eff)
{
    LV_ASSERT_OBJ(chart, LV_OBJX_NAME);

    lv_chart_ext_t * ext = lv_obj_get_ext_attr(chart);
    if(ext->series.dark == dark_eff) return;

    ext->series.dark = dark_eff;
    lv_obj_invalidate(chart);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movb %sil, %al
movq %rdi, -0x8(%rbp)
movb %al, -0x9(%rbp)
movq -0x8(%rbp), %rdi
callq 0xd120
testb $0x1, %al
jne 0x23d51
movq -0x8(%rbp), %rsi
leaq 0x443b2(%rip), %rdi     # 0x680fc
callq 0xd410
jmp 0x23d4f
movq -0x8(%rbp), %rdi
callq 0xa8f0
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movzbl 0x60(%rax), %eax
movzbl -0x9(%rbp), %ecx
cmpl %ecx, %eax
jne 0x23d70
jmp 0x23d83
movb -0x9(%rbp), %cl
movq -0x18(%rbp), %rax
movb %cl, 0x60(%rax)
movq -0x8(%rbp), %rdi
callq 0x7430
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/OnionIoT[P]lv_example/lvgl/src/lv_objx/lv_chart.c
// Function: lv_chart_init_points
void lv_chart_init_points(lv_obj_t * chart, lv_chart_series_t * ser, lv_coord_t y)
{
    LV_ASSERT_OBJ(chart, LV_OBJX_NAME);
    LV_ASSERT_NULL(ser);

    lv_chart_ext_t * ext = lv_obj_get_ext_attr(chart);
    uint16_t i;
    for(i = 0; i < ext->point_cnt; i++) {
        ser->points[i] = y;
    }
    ser->start_point = 0;
    lv_chart_refresh(chart);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movw %dx, %ax
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movw %ax, -0x12(%rbp)
movq -0x8(%rbp), %rdi
callq 0xd120
testb $0x1, %al
jne 0x23dc6
movq -0x8(%rbp), %rsi
leaq 0x4433d(%rip), %rdi     # 0x680fc
callq 0xd410
jmp 0x23dc4
movq -0x10(%rbp), %rdi
callq 0xd120
testb $0x1, %al
jne 0x23de5
movq -0x10(%rbp), %rsi
leaq 0x4431e(%rip), %rdi     # 0x680fc
callq 0xd410
jmp 0x23de3
movq -0x8(%rbp), %rdi
callq 0xa8f0
movq %rax, -0x20(%rbp)
movw $0x0, -0x22(%rbp)
movzwl -0x22(%rbp), %eax
movq -0x20(%rbp), %rcx
movzwl 0x1e(%rcx), %ecx
cmpl %ecx, %eax
jge 0x23e29
movw -0x12(%rbp), %dx
movq -0x10(%rbp), %rax
movq (%rax), %rax
movzwl -0x22(%rbp), %ecx
movw %dx, (%rax,%rcx,2)
movw -0x22(%rbp), %ax
addw $0x1, %ax
movw %ax, -0x22(%rbp)
jmp 0x23df8
movq -0x10(%rbp), %rax
movw $0x0, 0xa(%rax)
movq -0x8(%rbp), %rdi
callq 0x238d0
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/OnionIoT[P]lv_example/lvgl/src/lv_objx/lv_chart.c
// Function: lv_chart_set_points
void lv_chart_set_points(lv_obj_t * chart, lv_chart_series_t * ser, lv_coord_t y_array[])
{
    LV_ASSERT_OBJ(chart, LV_OBJX_NAME);
    LV_ASSERT_NULL(ser);

    lv_chart_ext_t * ext = lv_obj_get_ext_attr(chart);
    memcpy(ser->points, y_array, ext->point_cnt * (sizeof(lv_coord_t)));
    ser->start_point = 0;
    lv_chart_refresh(chart);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rdi
callq 0xd120
testb $0x1, %al
jne 0x23e83
movq -0x8(%rbp), %rsi
leaq 0x44280(%rip), %rdi     # 0x680fc
callq 0xd410
jmp 0x23e81
movq -0x10(%rbp), %rdi
callq 0xd120
testb $0x1, %al
jne 0x23ea2
movq -0x10(%rbp), %rsi
leaq 0x44261(%rip), %rdi     # 0x680fc
callq 0xd410
jmp 0x23ea0
movq -0x8(%rbp), %rdi
callq 0xa8f0
movq %rax, -0x20(%rbp)
movq -0x10(%rbp), %rax
movq (%rax), %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rax
movzwl 0x1e(%rax), %eax
movl %eax, %edx
shlq %rdx
callq 0x20e0
movq -0x10(%rbp), %rax
movw $0x0, 0xa(%rax)
movq -0x8(%rbp), %rdi
callq 0x238d0
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/OnionIoT[P]lv_example/lvgl/src/lv_objx/lv_chart.c
// Function: lv_chart_inv_lines
static void lv_chart_inv_lines(lv_obj_t * chart, uint16_t i)
{
    lv_chart_ext_t * ext = lv_obj_get_ext_attr(chart);

    lv_coord_t w     = lv_obj_get_width(chart);
    lv_coord_t x_ofs = chart->coords.x1;

    if(i < ext->point_cnt) {
        lv_area_t coords;
        lv_obj_get_coords(chart, &coords);
        if(i < ext->point_cnt - 1) {
            coords.x1 = ((w * i) / (ext->point_cnt - 1)) + x_ofs - ext->series.width;
            coords.x2 = ((w * (i + 1)) / (ext->point_cnt - 1)) + x_ofs + ext->series.width;
            lv_inv_area(lv_obj_get_disp(chart), &coords);
        }

        if(i > 0) {
            coords.x1 = ((w * (i - 1)) / (ext->point_cnt - 1)) + x_ofs - ext->series.width;
            coords.x2 = ((w * i) / (ext->point_cnt - 1)) + x_ofs + ext->series.width;
            lv_inv_area(lv_obj_get_disp(chart), &coords);
        }
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movw %si, %ax
movq %rdi, -0x8(%rbp)
movw %ax, -0xa(%rbp)
movq -0x8(%rbp), %rdi
callq 0xa8f0
movq %rax, -0x18(%rbp)
movq -0x8(%rbp), %rdi
callq 0x8310
movw %ax, -0x1a(%rbp)
movq -0x8(%rbp), %rax
movw 0x20(%rax), %ax
movw %ax, -0x1c(%rbp)
movzwl -0xa(%rbp), %eax
movq -0x18(%rbp), %rcx
movzwl 0x1e(%rcx), %ecx
cmpl %ecx, %eax
jge 0x2420c
movq -0x8(%rbp), %rdi
leaq -0x24(%rbp), %rsi
callq 0x7fb0
movzwl -0xa(%rbp), %eax
movq -0x18(%rbp), %rcx
movzwl 0x1e(%rcx), %ecx
subl $0x1, %ecx
cmpl %ecx, %eax
jge 0x2418f
movswl -0x1a(%rbp), %eax
movzwl -0xa(%rbp), %ecx
imull %ecx, %eax
movq -0x18(%rbp), %rcx
movzwl 0x1e(%rcx), %ecx
subl $0x1, %ecx
cltd
idivl %ecx
movswl -0x1c(%rbp), %ecx
addl %ecx, %eax
movq -0x18(%rbp), %rcx
movswl 0x5c(%rcx), %ecx
subl %ecx, %eax
movw %ax, -0x24(%rbp)
movswl -0x1a(%rbp), %eax
movzwl -0xa(%rbp), %ecx
addl $0x1, %ecx
imull %ecx, %eax
movq -0x18(%rbp), %rcx
movzwl 0x1e(%rcx), %ecx
subl $0x1, %ecx
cltd
idivl %ecx
movswl -0x1c(%rbp), %ecx
addl %ecx, %eax
movq -0x18(%rbp), %rcx
movswl 0x5c(%rcx), %ecx
addl %ecx, %eax
movw %ax, -0x20(%rbp)
movq -0x8(%rbp), %rdi
callq 0x7a40
movq %rax, %rdi
leaq -0x24(%rbp), %rsi
callq 0xadd0
movzwl -0xa(%rbp), %eax
cmpl $0x0, %eax
jle 0x2420a
movswl -0x1a(%rbp), %eax
movzwl -0xa(%rbp), %ecx
subl $0x1, %ecx
imull %ecx, %eax
movq -0x18(%rbp), %rcx
movzwl 0x1e(%rcx), %ecx
subl $0x1, %ecx
cltd
idivl %ecx
movswl -0x1c(%rbp), %ecx
addl %ecx, %eax
movq -0x18(%rbp), %rcx
movswl 0x5c(%rcx), %ecx
subl %ecx, %eax
movw %ax, -0x24(%rbp)
movswl -0x1a(%rbp), %eax
movzwl -0xa(%rbp), %ecx
imull %ecx, %eax
movq -0x18(%rbp), %rcx
movzwl 0x1e(%rcx), %ecx
subl $0x1, %ecx
cltd
idivl %ecx
movswl -0x1c(%rbp), %ecx
addl %ecx, %eax
movq -0x18(%rbp), %rcx
movswl 0x5c(%rcx), %ecx
addl %ecx, %eax
movw %ax, -0x20(%rbp)
movq -0x8(%rbp), %rdi
callq 0x7a40
movq %rax, %rdi
leaq -0x24(%rbp), %rsi
callq 0xadd0
jmp 0x2420c
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/OnionIoT[P]lv_example/lvgl/src/lv_objx/lv_chart.c
// Function: lv_chart_inv_cols
static void lv_chart_inv_cols(lv_obj_t * chart, uint16_t i)
{
    lv_chart_ext_t * ext = lv_obj_get_ext_attr(chart);

    lv_area_t col_a;
    lv_coord_t w     = lv_obj_get_width(chart);
    lv_coord_t col_w = w / ((ext->series.num + 1) * ext->point_cnt); /* Suppose + 1 series as separator*/
    lv_coord_t x_ofs = col_w / 2;                                    /*Shift with a half col.*/

    lv_coord_t x_act;

    x_act = (int32_t)((int32_t)w * i) / ext->point_cnt;
    x_act += chart->coords.x1 + x_ofs;

    lv_obj_get_coords(chart, &col_a);
    col_a.x1 = x_act;
    col_a.x2 = col_a.x1 + col_w;

    lv_inv_area(lv_obj_get_disp(chart), &col_a);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movw %si, %ax
movq %rdi, -0x8(%rbp)
movw %ax, -0xa(%rbp)
movq -0x8(%rbp), %rdi
callq 0xa8f0
movq %rax, -0x18(%rbp)
movq -0x8(%rbp), %rdi
callq 0x8310
movw %ax, -0x22(%rbp)
movswl -0x22(%rbp), %eax
movq -0x18(%rbp), %rcx
movzbl 0x5e(%rcx), %ecx
addl $0x1, %ecx
movq -0x18(%rbp), %rdx
movzwl 0x1e(%rdx), %edx
imull %edx, %ecx
cltd
idivl %ecx
movw %ax, -0x24(%rbp)
movswl -0x24(%rbp), %eax
movl $0x2, %ecx
cltd
idivl %ecx
movw %ax, -0x26(%rbp)
movswl -0x22(%rbp), %eax
movzwl -0xa(%rbp), %ecx
imull %ecx, %eax
movq -0x18(%rbp), %rcx
movzwl 0x1e(%rcx), %ecx
cltd
idivl %ecx
movw %ax, -0x28(%rbp)
movq -0x8(%rbp), %rax
movswl 0x20(%rax), %ecx
movswl -0x26(%rbp), %eax
addl %eax, %ecx
movswl -0x28(%rbp), %eax
addl %ecx, %eax
movw %ax, -0x28(%rbp)
movq -0x8(%rbp), %rdi
leaq -0x20(%rbp), %rsi
callq 0x7fb0
movw -0x28(%rbp), %ax
movw %ax, -0x20(%rbp)
movswl -0x20(%rbp), %eax
movswl -0x24(%rbp), %ecx
addl %ecx, %eax
movw %ax, -0x1c(%rbp)
movq -0x8(%rbp), %rdi
callq 0x7a40
movq %rax, %rdi
leaq -0x20(%rbp), %rsi
callq 0xadd0
addq $0x30, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/OnionIoT[P]lv_example/lvgl/src/lv_objx/lv_chart.c
// Function: lv_chart_inv_points
static void lv_chart_inv_points(lv_obj_t * chart, uint16_t i)
{
    lv_chart_ext_t * ext = lv_obj_get_ext_attr(chart);

    lv_area_t cir_a;
    lv_coord_t w     = lv_obj_get_width(chart);
    lv_coord_t x_ofs = chart->coords.x1;

    lv_obj_get_coords(chart, &cir_a);
    cir_a.x1 = ((w * i) / (ext->point_cnt - 1)) + x_ofs;
    cir_a.x2 = cir_a.x1 + ext->series.width;
    cir_a.x1 -= ext->series.width;

    lv_inv_area(lv_obj_get_disp(chart), &cir_a);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movw %si, %ax
movq %rdi, -0x8(%rbp)
movw %ax, -0xa(%rbp)
movq -0x8(%rbp), %rdi
callq 0xa8f0
movq %rax, -0x18(%rbp)
movq -0x8(%rbp), %rdi
callq 0x8310
movw %ax, -0x22(%rbp)
movq -0x8(%rbp), %rax
movw 0x20(%rax), %ax
movw %ax, -0x24(%rbp)
movq -0x8(%rbp), %rdi
leaq -0x20(%rbp), %rsi
callq 0x7fb0
movswl -0x22(%rbp), %eax
movzwl -0xa(%rbp), %ecx
imull %ecx, %eax
movq -0x18(%rbp), %rcx
movzwl 0x1e(%rcx), %ecx
subl $0x1, %ecx
cltd
idivl %ecx
movswl -0x24(%rbp), %ecx
addl %ecx, %eax
movw %ax, -0x20(%rbp)
movswl -0x20(%rbp), %eax
movq -0x18(%rbp), %rcx
movswl 0x5c(%rcx), %ecx
addl %ecx, %eax
movw %ax, -0x1c(%rbp)
movq -0x18(%rbp), %rax
movswl 0x5c(%rax), %ecx
movswl -0x20(%rbp), %eax
subl %ecx, %eax
movw %ax, -0x20(%rbp)
movq -0x8(%rbp), %rdi
callq 0x7a40
movq %rax, %rdi
leaq -0x20(%rbp), %rsi
callq 0xadd0
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/OnionIoT[P]lv_example/lvgl/src/lv_objx/lv_chart.c
// Function: lv_chart_set_update_mode
void lv_chart_set_update_mode(lv_obj_t * chart, lv_chart_update_mode_t update_mode)
{
    LV_ASSERT_OBJ(chart, LV_OBJX_NAME);

    lv_chart_ext_t * ext = lv_obj_get_ext_attr(chart);
    if(ext->update_mode == update_mode) return;

    ext->update_mode = update_mode;
    lv_obj_invalidate(chart);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movb %sil, %al
movq %rdi, -0x8(%rbp)
movb %al, -0x9(%rbp)
movq -0x8(%rbp), %rdi
callq 0xd120
testb $0x1, %al
jne 0x243d1
movq -0x8(%rbp), %rsi
leaq 0x43d32(%rip), %rdi     # 0x680fc
callq 0xd410
jmp 0x243cf
movq -0x8(%rbp), %rdi
callq 0xa8f0
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movb 0x5a(%rax), %al
andb $0x1, %al
movzbl %al, %eax
movzbl -0x9(%rbp), %ecx
cmpl %ecx, %eax
jne 0x243f4
jmp 0x24412
movb -0x9(%rbp), %dl
movq -0x18(%rbp), %rax
movb 0x5a(%rax), %cl
andb $0x1, %dl
andb $-0x2, %cl
orb %dl, %cl
movb %cl, 0x5a(%rax)
movq -0x8(%rbp), %rdi
callq 0x7430
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/OnionIoT[P]lv_example/lvgl/src/lv_objx/lv_chart.c
// Function: lv_chart_set_x_tick_length
void lv_chart_set_x_tick_length(lv_obj_t * chart, uint8_t major_tick_len, uint8_t minor_tick_len)
{
    LV_ASSERT_OBJ(chart, LV_OBJX_NAME);

    lv_chart_ext_t * ext       = lv_obj_get_ext_attr(chart);
    ext->x_axis.major_tick_len = major_tick_len;
    ext->x_axis.minor_tick_len = minor_tick_len;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movb %dl, %al
movb %sil, %cl
movq %rdi, -0x8(%rbp)
movb %cl, -0x9(%rbp)
movb %al, -0xa(%rbp)
movq -0x8(%rbp), %rdi
callq 0xd120
testb $0x1, %al
jne 0x24456
movq -0x8(%rbp), %rsi
leaq 0x43cad(%rip), %rdi     # 0x680fc
callq 0xd410
jmp 0x24454
movq -0x8(%rbp), %rdi
callq 0xa8f0
movq %rax, -0x18(%rbp)
movb -0x9(%rbp), %cl
movq -0x18(%rbp), %rax
movb %cl, 0x42(%rax)
movb -0xa(%rbp), %cl
movq -0x18(%rbp), %rax
movb %cl, 0x43(%rax)
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/OnionIoT[P]lv_example/lvgl/src/lv_objx/lv_chart.c
// Function: lv_chart_set_y_tick_length
void lv_chart_set_y_tick_length(lv_obj_t * chart, uint8_t major_tick_len, uint8_t minor_tick_len)
{
    LV_ASSERT_OBJ(chart, LV_OBJX_NAME);

    lv_chart_ext_t * ext       = lv_obj_get_ext_attr(chart);
    ext->y_axis.major_tick_len = major_tick_len;
    ext->y_axis.minor_tick_len = minor_tick_len;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movb %dl, %al
movb %sil, %cl
movq %rdi, -0x8(%rbp)
movb %cl, -0x9(%rbp)
movb %al, -0xa(%rbp)
movq -0x8(%rbp), %rdi
callq 0xd120
testb $0x1, %al
jne 0x244b6
movq -0x8(%rbp), %rsi
leaq 0x43c4d(%rip), %rdi     # 0x680fc
callq 0xd410
jmp 0x244b4
movq -0x8(%rbp), %rdi
callq 0xa8f0
movq %rax, -0x18(%rbp)
movb -0x9(%rbp), %cl
movq -0x18(%rbp), %rax
movb %cl, 0x32(%rax)
movb -0xa(%rbp), %cl
movq -0x18(%rbp), %rax
movb %cl, 0x33(%rax)
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)