// File: /workspace/github_c_makefile_star2_O2/OnionIoT[P]lv_example/lvgl/src/lv_draw/lv_draw_img.c
// Function: lv_draw_img
void lv_draw_img(const lv_area_t * coords, const lv_area_t * mask, const void * src, const lv_style_t * style,
                 lv_opa_t opa_scale)
{
    if(src == NULL) {
        LV_LOG_WARN("Image draw: src is NULL");
        lv_draw_rect(coords, mask, &lv_style_plain, LV_OPA_COVER);
        lv_draw_label(coords, mask, &lv_style_plain, LV_OPA_COVER, "No\ndata", LV_TXT_FLAG_NONE, NULL, NULL, NULL, LV_BIDI_DIR_LTR);
        return;
    }

    lv_res_t res;
    res = lv_img_draw_core(coords, mask, src, style, opa_scale);

    if(res == LV_RES_INV) {
        LV_LOG_WARN("Image draw error");
        lv_draw_rect(coords, mask, &lv_style_plain, LV_OPA_COVER);
        lv_draw_label(coords, mask, &lv_style_plain, LV_OPA_COVER, "No\ndata", LV_TXT_FLAG_NONE, NULL,  NULL, NULL, LV_BIDI_DIR_LTR);
        return;
    }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x58, %rsp
movq %rsi, %rbx
movq %rdi, %r14
testq %rdx, %rdx
je 0x3837b
movl %r8d, %ebp
movq %rcx, %r15
movq %rdx, %r12
leaq 0x28(%rsp), %rdi
movq %rbx, %rsi
movq %r14, %rdx
callq 0x26880
testb %al, %al
je 0x383c4
cmpb $-0x1, %bpl
je 0x381e3
movzbl %bpl, %eax
movzbl 0x3b(%r15), %r13d
imull %eax, %r13d
shrl $0x8, %r13d
jmp 0x381e7
movb 0x3b(%r15), %r13b
movq %r12, %rdi
movq %r15, %rsi
callq 0x3a708
testq %rax, %rax
je 0x3837b
movq %rax, %r12
movb 0x1c(%rax), %cl
movl $0x7c8, %edi            # imm = 0x7C8
shrl %cl, %edi
movl $0x7fa4, %esi           # imm = 0x7FA4
shrl %cl, %esi
cmpq $0x0, 0x30(%rax)
je 0x3824c
leaq 0x25cfb(%rip), %r15     # 0x5df18
movq %r14, %rdi
movq %rbx, %rsi
movq %r15, %rdx
movl $0xff, %ecx
callq 0x336d4
movq 0x30(%r12), %r8
xorps %xmm0, %xmm0
movups %xmm0, (%rsp)
andl $0x0, 0x18(%rsp)
andq $0x0, 0x10(%rsp)
jmp 0x383ae
movq 0x20(%r12), %rdx
testq %rdx, %rdx
je 0x3828a
movzbl 0x3a(%r15), %eax
movl 0x38(%r15), %ecx
movl %eax, 0x8(%rsp)
movl %ecx, (%rsp)
movzbl %r13b, %ecx
movzbl %dil, %r8d
andl $0x1, %r8d
movzbl %sil, %r9d
andl $0x1, %r9d
movq %r14, %rdi
movq %rbx, %rsi
callq 0x33008
jmp 0x383c4
movzwl 0x2c(%rsp), %eax
subw 0x28(%rsp), %ax
incl %eax
cwtl
movq %rax, 0x50(%rsp)
movl %edi, 0x24(%rsp)
leal (%rax,%rax,2), %edi
movl %esi, 0x20(%rsp)
callq 0x334c8
movq %rax, 0x48(%rsp)
movq 0x28(%rsp), %rax
leaq 0x30(%rsp), %rdi
movq %rax, (%rdi)
pushq $0x1
popq %rsi
callq 0x26833
movzwl 0x28(%rsp), %eax
movzwl 0x2a(%rsp), %ebp
subw (%r14), %ax
xorl %ecx, %ecx
subw 0x2(%r14), %cx
movq %rcx, 0x40(%rsp)
cwtl
movl %eax, 0x3c(%rsp)
movzbl %r13b, %eax
movl %eax, 0x38(%rsp)
movzbl 0x24(%rsp), %eax
andl $0x1, %eax
movl %eax, 0x24(%rsp)
movzbl 0x20(%rsp), %eax
andl $0x1, %eax
movl %eax, 0x20(%rsp)
movq 0x48(%rsp), %r13
cmpw 0x2e(%rsp), %bp
jg 0x383c4
movq 0x40(%rsp), %rax
addl %ebp, %eax
movswl %ax, %edx
movq %r12, %rdi
movl 0x3c(%rsp), %esi
movq 0x50(%rsp), %rcx
movq %r13, %r8
callq 0x3a66e
cmpb $0x1, %al
jne 0x38373
movzbl 0x3a(%r15), %eax
movl 0x38(%r15), %ecx
movl %eax, 0x8(%rsp)
movl %ecx, (%rsp)
leaq 0x30(%rsp), %rdi
movq %rbx, %rsi
movq %r13, %rdx
movl 0x38(%rsp), %ecx
movl 0x24(%rsp), %r8d
movl 0x20(%rsp), %r9d
callq 0x33008
incw 0x32(%rsp)
incw 0x36(%rsp)
incl %ebp
jmp 0x3830a
movq %r12, %rdi
callq 0x3a69b
leaq 0x25b96(%rip), %r15     # 0x5df18
movq %r14, %rdi
movq %rbx, %rsi
movq %r15, %rdx
movl $0xff, %ecx
callq 0x336d4
xorps %xmm0, %xmm0
movups %xmm0, (%rsp)
andl $0x0, 0x18(%rsp)
andq $0x0, 0x10(%rsp)
leaq 0x6fe9(%rip), %r8       # 0x3f397
movq %r14, %rdi
movq %rbx, %rsi
movq %r15, %rdx
movl $0xff, %ecx
xorl %r9d, %r9d
callq 0x3699c
addq $0x58, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq