// File: /workspace/github_c_makefile_star2_O0/OnionIoT[P]lv_example/lvgl/src/lv_core/lv_style.c
// Function: lv_style_mix
void lv_style_mix(const lv_style_t * start, const lv_style_t * end, lv_style_t * res, uint16_t ratio)
{
    STYLE_ATTR_MIX(body.opa, ratio);
    STYLE_ATTR_MIX(body.radius, ratio);
    STYLE_ATTR_MIX(body.border.width, ratio);
    STYLE_ATTR_MIX(body.border.opa, ratio);
    STYLE_ATTR_MIX(body.shadow.width, ratio);
    STYLE_ATTR_MIX(body.padding.left, ratio);
    STYLE_ATTR_MIX(body.padding.right, ratio);
    STYLE_ATTR_MIX(body.padding.top, ratio);
    STYLE_ATTR_MIX(body.padding.bottom, ratio);
    STYLE_ATTR_MIX(body.padding.inner, ratio);
    STYLE_ATTR_MIX(text.line_space, ratio);
    STYLE_ATTR_MIX(text.letter_space, ratio);
    STYLE_ATTR_MIX(text.opa, ratio);
    STYLE_ATTR_MIX(line.width, ratio);
    STYLE_ATTR_MIX(line.opa, ratio);
    STYLE_ATTR_MIX(image.intense, ratio);
    STYLE_ATTR_MIX(image.opa, ratio);

    lv_opa_t opa = ratio == STYLE_MIX_MAX ? LV_OPA_COVER : ratio;

    res->body.main_color   = lv_color_mix(end->body.main_color, start->body.main_color, opa);
    res->body.grad_color   = lv_color_mix(end->body.grad_color, start->body.grad_color, opa);
    res->body.border.color = lv_color_mix(end->body.border.color, start->body.border.color, opa);
    res->body.shadow.color = lv_color_mix(end->body.shadow.color, start->body.shadow.color, opa);
    res->text.color        = lv_color_mix(end->text.color, start->text.color, opa);
    res->image.color       = lv_color_mix(end->image.color, start->image.color, opa);
    res->line.color        = lv_color_mix(end->line.color, start->line.color, opa);

    if(ratio < (STYLE_MIX_MAX >> 1)) {
        res->body.border.part = start->body.border.part;
        res->glass            = start->glass;
        res->text.font        = start->text.font;
        res->body.shadow.type = start->body.shadow.type;
        res->line.rounded     = start->line.rounded;
    } else {
        res->body.border.part = end->body.border.part;
        res->glass            = end->glass;
        res->text.font        = end->text.font;
        res->body.shadow.type = end->body.shadow.type;
        res->line.rounded     = end->line.rounded;
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movw %cx, %ax
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movw %ax, -0x1a(%rbp)
movq -0x8(%rbp), %rax
movzbl 0x8(%rax), %eax
movq -0x10(%rbp), %rcx
movzbl 0x8(%rcx), %ecx
cmpl %ecx, %eax
je 0xc5e0
movq -0x8(%rbp), %rax
movzbl 0x8(%rax), %eax
movq -0x10(%rbp), %rcx
movzbl 0x8(%rcx), %ecx
movq -0x8(%rbp), %rdx
movzbl 0x8(%rdx), %edx
subl %edx, %ecx
movzwl -0x1a(%rbp), %edx
imull %edx, %ecx
sarl $0x8, %ecx
addl %ecx, %eax
movb %al, %cl
movq -0x18(%rbp), %rax
movb %cl, 0x8(%rax)
jmp 0xc5ee
movq -0x8(%rbp), %rax
movb 0x8(%rax), %cl
movq -0x18(%rbp), %rax
movb %cl, 0x8(%rax)
movq -0x8(%rbp), %rax
movswl 0x6(%rax), %eax
movq -0x10(%rbp), %rcx
movswl 0x6(%rcx), %ecx
cmpl %ecx, %eax
je 0xc635
movq -0x8(%rbp), %rax
movswl 0x6(%rax), %eax
movq -0x10(%rbp), %rcx
movswl 0x6(%rcx), %ecx
movq -0x8(%rbp), %rdx
movswl 0x6(%rdx), %edx
subl %edx, %ecx
movzwl -0x1a(%rbp), %edx
imull %edx, %ecx
sarl $0x8, %ecx
addl %ecx, %eax
movw %ax, %cx
movq -0x18(%rbp), %rax
movw %cx, 0x6(%rax)
jmp 0xc645
movq -0x8(%rbp), %rax
movw 0x6(%rax), %cx
movq -0x18(%rbp), %rax
movw %cx, 0x6(%rax)
movq -0x8(%rbp), %rax
movswl 0xc(%rax), %eax
movq -0x10(%rbp), %rcx
movswl 0xc(%rcx), %ecx
cmpl %ecx, %eax
je 0xc68c
movq -0x8(%rbp), %rax
movswl 0xc(%rax), %eax
movq -0x10(%rbp), %rcx
movswl 0xc(%rcx), %ecx
movq -0x8(%rbp), %rdx
movswl 0xc(%rdx), %edx
subl %edx, %ecx
movzwl -0x1a(%rbp), %edx
imull %edx, %ecx
sarl $0x8, %ecx
addl %ecx, %eax
movw %ax, %cx
movq -0x18(%rbp), %rax
movw %cx, 0xc(%rax)
jmp 0xc69c
movq -0x8(%rbp), %rax
movw 0xc(%rax), %cx
movq -0x18(%rbp), %rax
movw %cx, 0xc(%rax)
movq -0x8(%rbp), %rax
movzbl 0xf(%rax), %eax
movq -0x10(%rbp), %rcx
movzbl 0xf(%rcx), %ecx
cmpl %ecx, %eax
je 0xc6e1
movq -0x8(%rbp), %rax
movzbl 0xf(%rax), %eax
movq -0x10(%rbp), %rcx
movzbl 0xf(%rcx), %ecx
movq -0x8(%rbp), %rdx
movzbl 0xf(%rdx), %edx
subl %edx, %ecx
movzwl -0x1a(%rbp), %edx
imull %edx, %ecx
sarl $0x8, %ecx
addl %ecx, %eax
movb %al, %cl
movq -0x18(%rbp), %rax
movb %cl, 0xf(%rax)
jmp 0xc6ef
movq -0x8(%rbp), %rax
movb 0xf(%rax), %cl
movq -0x18(%rbp), %rax
movb %cl, 0xf(%rax)
movq -0x8(%rbp), %rax
movswl 0x12(%rax), %eax
movq -0x10(%rbp), %rcx
movswl 0x12(%rcx), %ecx
cmpl %ecx, %eax
je 0xc736
movq -0x8(%rbp), %rax
movswl 0x12(%rax), %eax
movq -0x10(%rbp), %rcx
movswl 0x12(%rcx), %ecx
movq -0x8(%rbp), %rdx
movswl 0x12(%rdx), %edx
subl %edx, %ecx
movzwl -0x1a(%rbp), %edx
imull %edx, %ecx
sarl $0x8, %ecx
addl %ecx, %eax
movw %ax, %cx
movq -0x18(%rbp), %rax
movw %cx, 0x12(%rax)
jmp 0xc746
movq -0x8(%rbp), %rax
movw 0x12(%rax), %cx
movq -0x18(%rbp), %rax
movw %cx, 0x12(%rax)
movq -0x8(%rbp), %rax
movswl 0x1a(%rax), %eax
movq -0x10(%rbp), %rcx
movswl 0x1a(%rcx), %ecx
cmpl %ecx, %eax
je 0xc78d
movq -0x8(%rbp), %rax
movswl 0x1a(%rax), %eax
movq -0x10(%rbp), %rcx
movswl 0x1a(%rcx), %ecx
movq -0x8(%rbp), %rdx
movswl 0x1a(%rdx), %edx
subl %edx, %ecx
movzwl -0x1a(%rbp), %edx
imull %edx, %ecx
sarl $0x8, %ecx
addl %ecx, %eax
movw %ax, %cx
movq -0x18(%rbp), %rax
movw %cx, 0x1a(%rax)
jmp 0xc79d
movq -0x8(%rbp), %rax
movw 0x1a(%rax), %cx
movq -0x18(%rbp), %rax
movw %cx, 0x1a(%rax)
movq -0x8(%rbp), %rax
movswl 0x1c(%rax), %eax
movq -0x10(%rbp), %rcx
movswl 0x1c(%rcx), %ecx
cmpl %ecx, %eax
je 0xc7e4
movq -0x8(%rbp), %rax
movswl 0x1c(%rax), %eax
movq -0x10(%rbp), %rcx
movswl 0x1c(%rcx), %ecx
movq -0x8(%rbp), %rdx
movswl 0x1c(%rdx), %edx
subl %edx, %ecx
movzwl -0x1a(%rbp), %edx
imull %edx, %ecx
sarl $0x8, %ecx
addl %ecx, %eax
movw %ax, %cx
movq -0x18(%rbp), %rax
movw %cx, 0x1c(%rax)
jmp 0xc7f4
movq -0x8(%rbp), %rax
movw 0x1c(%rax), %cx
movq -0x18(%rbp), %rax
movw %cx, 0x1c(%rax)
movq -0x8(%rbp), %rax
movswl 0x16(%rax), %eax
movq -0x10(%rbp), %rcx
movswl 0x16(%rcx), %ecx
cmpl %ecx, %eax
je 0xc83b
movq -0x8(%rbp), %rax
movswl 0x16(%rax), %eax
movq -0x10(%rbp), %rcx
movswl 0x16(%rcx), %ecx
movq -0x8(%rbp), %rdx
movswl 0x16(%rdx), %edx
subl %edx, %ecx
movzwl -0x1a(%rbp), %edx
imull %edx, %ecx
sarl $0x8, %ecx
addl %ecx, %eax
movw %ax, %cx
movq -0x18(%rbp), %rax
movw %cx, 0x16(%rax)
jmp 0xc84b
movq -0x8(%rbp), %rax
movw 0x16(%rax), %cx
movq -0x18(%rbp), %rax
movw %cx, 0x16(%rax)
movq -0x8(%rbp), %rax
movswl 0x18(%rax), %eax
movq -0x10(%rbp), %rcx
movswl 0x18(%rcx), %ecx
cmpl %ecx, %eax
je 0xc892
movq -0x8(%rbp), %rax
movswl 0x18(%rax), %eax
movq -0x10(%rbp), %rcx
movswl 0x18(%rcx), %ecx
movq -0x8(%rbp), %rdx
movswl 0x18(%rdx), %edx
subl %edx, %ecx
movzwl -0x1a(%rbp), %edx
imull %edx, %ecx
sarl $0x8, %ecx
addl %ecx, %eax
movw %ax, %cx
movq -0x18(%rbp), %rax
movw %cx, 0x18(%rax)
jmp 0xc8a2
movq -0x8(%rbp), %rax
movw 0x18(%rax), %cx
movq -0x18(%rbp), %rax
movw %cx, 0x18(%rax)
movq -0x8(%rbp), %rax
movswl 0x1e(%rax), %eax
movq -0x10(%rbp), %rcx
movswl 0x1e(%rcx), %ecx
cmpl %ecx, %eax
je 0xc8e9
movq -0x8(%rbp), %rax
movswl 0x1e(%rax), %eax
movq -0x10(%rbp), %rcx
movswl 0x1e(%rcx), %ecx
movq -0x8(%rbp), %rdx
movswl 0x1e(%rdx), %edx
subl %edx, %ecx
movzwl -0x1a(%rbp), %edx
imull %edx, %ecx
sarl $0x8, %ecx
addl %ecx, %eax
movw %ax, %cx
movq -0x18(%rbp), %rax
movw %cx, 0x1e(%rax)
jmp 0xc8f9
movq -0x8(%rbp), %rax
movw 0x1e(%rax), %cx
movq -0x18(%rbp), %rax
movw %cx, 0x1e(%rax)
movq -0x8(%rbp), %rax
movswl 0x32(%rax), %eax
movq -0x10(%rbp), %rcx
movswl 0x32(%rcx), %ecx
cmpl %ecx, %eax
je 0xc940
movq -0x8(%rbp), %rax
movswl 0x32(%rax), %eax
movq -0x10(%rbp), %rcx
movswl 0x32(%rcx), %ecx
movq -0x8(%rbp), %rdx
movswl 0x32(%rdx), %edx
subl %edx, %ecx
movzwl -0x1a(%rbp), %edx
imull %edx, %ecx
sarl $0x8, %ecx
addl %ecx, %eax
movw %ax, %cx
movq -0x18(%rbp), %rax
movw %cx, 0x32(%rax)
jmp 0xc950
movq -0x8(%rbp), %rax
movw 0x32(%rax), %cx
movq -0x18(%rbp), %rax
movw %cx, 0x32(%rax)
movq -0x8(%rbp), %rax
movswl 0x30(%rax), %eax
movq -0x10(%rbp), %rcx
movswl 0x30(%rcx), %ecx
cmpl %ecx, %eax
je 0xc997
movq -0x8(%rbp), %rax
movswl 0x30(%rax), %eax
movq -0x10(%rbp), %rcx
movswl 0x30(%rcx), %ecx
movq -0x8(%rbp), %rdx
movswl 0x30(%rdx), %edx
subl %edx, %ecx
movzwl -0x1a(%rbp), %edx
imull %edx, %ecx
sarl $0x8, %ecx
addl %ecx, %eax
movw %ax, %cx
movq -0x18(%rbp), %rax
movw %cx, 0x30(%rax)
jmp 0xc9a7
movq -0x8(%rbp), %rax
movw 0x30(%rax), %cx
movq -0x18(%rbp), %rax
movw %cx, 0x30(%rax)
movq -0x8(%rbp), %rax
movzbl 0x34(%rax), %eax
movq -0x10(%rbp), %rcx
movzbl 0x34(%rcx), %ecx
cmpl %ecx, %eax
je 0xc9ec
movq -0x8(%rbp), %rax
movzbl 0x34(%rax), %eax
movq -0x10(%rbp), %rcx
movzbl 0x34(%rcx), %ecx
movq -0x8(%rbp), %rdx
movzbl 0x34(%rdx), %edx
subl %edx, %ecx
movzwl -0x1a(%rbp), %edx
imull %edx, %ecx
sarl $0x8, %ecx
addl %ecx, %eax
movb %al, %cl
movq -0x18(%rbp), %rax
movb %cl, 0x34(%rax)
jmp 0xc9fa
movq -0x8(%rbp), %rax
movb 0x34(%rax), %cl
movq -0x18(%rbp), %rax
movb %cl, 0x34(%rax)
movq -0x8(%rbp), %rax
movswl 0x3e(%rax), %eax
movq -0x10(%rbp), %rcx
movswl 0x3e(%rcx), %ecx
cmpl %ecx, %eax
je 0xca41
movq -0x8(%rbp), %rax
movswl 0x3e(%rax), %eax
movq -0x10(%rbp), %rcx
movswl 0x3e(%rcx), %ecx
movq -0x8(%rbp), %rdx
movswl 0x3e(%rdx), %edx
subl %edx, %ecx
movzwl -0x1a(%rbp), %edx
imull %edx, %ecx
sarl $0x8, %ecx
addl %ecx, %eax
movw %ax, %cx
movq -0x18(%rbp), %rax
movw %cx, 0x3e(%rax)
jmp 0xca51
movq -0x8(%rbp), %rax
movw 0x3e(%rax), %cx
movq -0x18(%rbp), %rax
movw %cx, 0x3e(%rax)
movq -0x8(%rbp), %rax
movzbl 0x40(%rax), %eax
movq -0x10(%rbp), %rcx
movzbl 0x40(%rcx), %ecx
cmpl %ecx, %eax
je 0xca96
movq -0x8(%rbp), %rax
movzbl 0x40(%rax), %eax
movq -0x10(%rbp), %rcx
movzbl 0x40(%rcx), %ecx
movq -0x8(%rbp), %rdx
movzbl 0x40(%rdx), %edx
subl %edx, %ecx
movzwl -0x1a(%rbp), %edx
imull %edx, %ecx
sarl $0x8, %ecx
addl %ecx, %eax
movb %al, %cl
movq -0x18(%rbp), %rax
movb %cl, 0x40(%rax)
jmp 0xcaa4
movq -0x8(%rbp), %rax
movb 0x40(%rax), %cl
movq -0x18(%rbp), %rax
movb %cl, 0x40(%rax)
movq -0x8(%rbp), %rax
movzbl 0x3a(%rax), %eax
movq -0x10(%rbp), %rcx
movzbl 0x3a(%rcx), %ecx
cmpl %ecx, %eax
je 0xcae9
movq -0x8(%rbp), %rax
movzbl 0x3a(%rax), %eax
movq -0x10(%rbp), %rcx
movzbl 0x3a(%rcx), %ecx
movq -0x8(%rbp), %rdx
movzbl 0x3a(%rdx), %edx
subl %edx, %ecx
movzwl -0x1a(%rbp), %edx
imull %edx, %ecx
sarl $0x8, %ecx
addl %ecx, %eax
movb %al, %cl
movq -0x18(%rbp), %rax
movb %cl, 0x3a(%rax)
jmp 0xcaf7
movq -0x8(%rbp), %rax
movb 0x3a(%rax), %cl
movq -0x18(%rbp), %rax
movb %cl, 0x3a(%rax)
movq -0x8(%rbp), %rax
movzbl 0x3b(%rax), %eax
movq -0x10(%rbp), %rcx
movzbl 0x3b(%rcx), %ecx
cmpl %ecx, %eax
je 0xcb3c
movq -0x8(%rbp), %rax
movzbl 0x3b(%rax), %eax
movq -0x10(%rbp), %rcx
movzbl 0x3b(%rcx), %ecx
movq -0x8(%rbp), %rdx
movzbl 0x3b(%rdx), %edx
subl %edx, %ecx
movzwl -0x1a(%rbp), %edx
imull %edx, %ecx
sarl $0x8, %ecx
addl %ecx, %eax
movb %al, %cl
movq -0x18(%rbp), %rax
movb %cl, 0x3b(%rax)
jmp 0xcb4a
movq -0x8(%rbp), %rax
movb 0x3b(%rax), %cl
movq -0x18(%rbp), %rax
movb %cl, 0x3b(%rax)
movzwl -0x1a(%rbp), %eax
cmpl $0x100, %eax            # imm = 0x100
jne 0xcb5f
movl $0xff, %eax
movl %eax, -0x30(%rbp)
jmp 0xcb66
movzwl -0x1a(%rbp), %eax
movl %eax, -0x30(%rbp)
movl -0x30(%rbp), %eax
movb %al, -0x1b(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x68(%rbp)
movq -0x10(%rbp), %rdx
movq -0x8(%rbp), %rcx
movb -0x1b(%rbp), %al
movw 0x2(%rdx), %dx
movzwl %dx, %edi
movzwl 0x2(%rcx), %esi
movzbl %al, %edx
callq 0xcdd0
movw %ax, %cx
movq -0x68(%rbp), %rax
movw %cx, -0x1e(%rbp)
movw -0x1e(%rbp), %cx
movw %cx, 0x2(%rax)
movq -0x18(%rbp), %rax
movq %rax, -0x60(%rbp)
movq -0x10(%rbp), %rdx
movq -0x8(%rbp), %rcx
movb -0x1b(%rbp), %al
movw 0x4(%rdx), %dx
movzwl %dx, %edi
movzwl 0x4(%rcx), %esi
movzbl %al, %edx
callq 0xcdd0
movw %ax, %cx
movq -0x60(%rbp), %rax
movw %cx, -0x20(%rbp)
movw -0x20(%rbp), %cx
movw %cx, 0x4(%rax)
movq -0x18(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0x10(%rbp), %rdx
movq -0x8(%rbp), %rcx
movb -0x1b(%rbp), %al
movw 0xa(%rdx), %dx
movzwl %dx, %edi
movzwl 0xa(%rcx), %esi
movzbl %al, %edx
callq 0xcdd0
movw %ax, %cx
movq -0x58(%rbp), %rax
movw %cx, -0x22(%rbp)
movw -0x22(%rbp), %cx
movw %cx, 0xa(%rax)
movq -0x18(%rbp), %rax
movq %rax, -0x50(%rbp)
movq -0x10(%rbp), %rdx
movq -0x8(%rbp), %rcx
movb -0x1b(%rbp), %al
movw 0x10(%rdx), %dx
movzwl %dx, %edi
movzwl 0x10(%rcx), %esi
movzbl %al, %edx
callq 0xcdd0
movw %ax, %cx
movq -0x50(%rbp), %rax
movw %cx, -0x24(%rbp)
movw -0x24(%rbp), %cx
movw %cx, 0x10(%rax)
movq -0x18(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x10(%rbp), %rdx
movq -0x8(%rbp), %rcx
movb -0x1b(%rbp), %al
movw 0x20(%rdx), %dx
movzwl %dx, %edi
movzwl 0x20(%rcx), %esi
movzbl %al, %edx
callq 0xcdd0
movw %ax, %cx
movq -0x48(%rbp), %rax
movw %cx, -0x26(%rbp)
movw -0x26(%rbp), %cx
movw %cx, 0x20(%rax)
movq -0x18(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x10(%rbp), %rdx
movq -0x8(%rbp), %rcx
movb -0x1b(%rbp), %al
movw 0x38(%rdx), %dx
movzwl %dx, %edi
movzwl 0x38(%rcx), %esi
movzbl %al, %edx
callq 0xcdd0
movw %ax, %cx
movq -0x40(%rbp), %rax
movw %cx, -0x28(%rbp)
movw -0x28(%rbp), %cx
movw %cx, 0x38(%rax)
movq -0x18(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x10(%rbp), %rdx
movq -0x8(%rbp), %rcx
movb -0x1b(%rbp), %al
movw 0x3c(%rdx), %dx
movzwl %dx, %edi
movzwl 0x3c(%rcx), %esi
movzbl %al, %edx
callq 0xcdd0
movw %ax, %cx
movq -0x38(%rbp), %rax
movw %cx, -0x2a(%rbp)
movw -0x2a(%rbp), %cx
movw %cx, 0x3c(%rax)
movzwl -0x1a(%rbp), %eax
cmpl $0x80, %eax
jge 0xcd69
movq -0x8(%rbp), %rax
movb 0xe(%rax), %cl
movq -0x18(%rbp), %rax
movb %cl, 0xe(%rax)
movq -0x8(%rbp), %rax
movb (%rax), %dl
andb $0x1, %dl
movq -0x18(%rbp), %rax
movb (%rax), %cl
andb $0x1, %dl
andb $-0x2, %cl
orb %dl, %cl
movb %cl, (%rax)
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x28(%rax)
movq -0x8(%rbp), %rax
movb 0x14(%rax), %cl
movq -0x18(%rbp), %rax
movb %cl, 0x14(%rax)
movq -0x8(%rbp), %rax
movb 0x41(%rax), %dl
andb $0x1, %dl
movq -0x18(%rbp), %rax
movb 0x41(%rax), %cl
andb $0x1, %dl
andb $-0x2, %cl
orb %dl, %cl
movb %cl, 0x41(%rax)
jmp 0xcdca
movq -0x10(%rbp), %rax
movb 0xe(%rax), %cl
movq -0x18(%rbp), %rax
movb %cl, 0xe(%rax)
movq -0x10(%rbp), %rax
movb (%rax), %dl
andb $0x1, %dl
movq -0x18(%rbp), %rax
movb (%rax), %cl
andb $0x1, %dl
andb $-0x2, %cl
orb %dl, %cl
movb %cl, (%rax)
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rcx
movq -0x18(%rbp), %rax
movq %rcx, 0x28(%rax)
movq -0x10(%rbp), %rax
movb 0x14(%rax), %cl
movq -0x18(%rbp), %rax
movb %cl, 0x14(%rax)
movq -0x10(%rbp), %rax
movb 0x41(%rax), %dl
andb $0x1, %dl
movq -0x18(%rbp), %rax
movb 0x41(%rax), %cl
andb $0x1, %dl
andb $-0x2, %cl
orb %dl, %cl
movb %cl, 0x41(%rax)
addq $0x70, %rsp
popq %rbp
retq