// File: /workspace/github_c_makefile_star2_O1/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 $0x68, %rsp
movq %rsi, %rbx
movq %rdi, %r14
testq %rdx, %rdx
je 0x3be39
movl %r8d, %ebp
movq %rcx, %r15
movq %rdx, %r12
leaq 0x28(%rsp), %rdi
movq %rbx, %rsi
movq %r14, %rdx
callq 0x2865e
testb %al, %al
je 0x3be88
cmpb $-0x1, %bpl
je 0x3bc97
movzbl %bpl, %eax
movzbl 0x3b(%r15), %r13d
imull %eax, %r13d
shrl $0x8, %r13d
jmp 0x3bc9b
movb 0x3b(%r15), %r13b
movq %r12, %rdi
movq %r15, %rsi
callq 0x3e2d0
testq %rax, %rax
je 0x3be39
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 0x3bd06
leaq 0x24247(%rip), %r15     # 0x5ff18
movq %r14, %rdi
movq %rbx, %rsi
movq %r15, %rdx
movl $0xff, %ecx
callq 0x365ac
movq 0x30(%r12), %r8
xorps %xmm0, %xmm0
movups %xmm0, (%rsp)
movl $0x0, 0x18(%rsp)
movq $0x0, 0x10(%rsp)
jmp 0x3be72
movq 0x20(%r12), %rdx
testq %rdx, %rdx
je 0x3bd44
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 0x35cbe
jmp 0x3be88
movl %edi, 0x34(%rsp)
movl %esi, 0x44(%rsp)
movzwl 0x2c(%rsp), %eax
subw 0x28(%rsp), %ax
incl %eax
cwtl
movq %rax, 0x60(%rsp)
leal (%rax,%rax,2), %edi
callq 0x3638c
movq %rax, 0x50(%rsp)
movq 0x28(%rsp), %rax
leaq 0x38(%rsp), %rdi
movq %rax, (%rdi)
movl $0x1, %esi
callq 0x28613
movzwl 0x2a(%rsp), %ebp
cmpw 0x2e(%rsp), %bp
jg 0x3be88
movzwl 0x28(%rsp), %eax
subw (%r14), %ax
xorl %ecx, %ecx
subw 0x2(%r14), %cx
movq %rcx, 0x58(%rsp)
cwtl
movl %eax, 0x4c(%rsp)
movzbl %r13b, %eax
movl %eax, 0x48(%rsp)
movzbl 0x34(%rsp), %eax
andl $0x1, %eax
movl %eax, 0x34(%rsp)
movzbl 0x44(%rsp), %r13d
andl $0x1, %r13d
movq 0x58(%rsp), %rax
addl %ebp, %eax
movswl %ax, %edx
movq %r12, %rdi
movl 0x4c(%rsp), %esi
movq 0x60(%rsp), %rcx
movq 0x50(%rsp), %r8
callq 0x3e251
cmpb $0x1, %al
jne 0x3be31
movzbl 0x3a(%r15), %eax
movl 0x38(%r15), %ecx
movl %eax, 0x8(%rsp)
movl %ecx, (%rsp)
leaq 0x38(%rsp), %rdi
movq %rbx, %rsi
movq 0x50(%rsp), %rdx
movl 0x48(%rsp), %ecx
movl 0x34(%rsp), %r8d
movl %r13d, %r9d
callq 0x35cbe
incw 0x3a(%rsp)
incw 0x3e(%rsp)
incl %ebp
cmpw 0x2e(%rsp), %bp
jle 0x3bdca
jmp 0x3be88
movq %r12, %rdi
callq 0x3e27e
leaq 0x240d8(%rip), %r15     # 0x5ff18
movq %r14, %rdi
movq %rbx, %rsi
movq %r15, %rdx
movl $0xff, %ecx
callq 0x365ac
xorps %xmm0, %xmm0
movups %xmm0, (%rsp)
movl $0x0, 0x18(%rsp)
movq $0x0, 0x10(%rsp)
leaq 0x74ac(%rip), %r8       # 0x4331e
movq %r14, %rdi
movq %rbx, %rsi
movq %r15, %rdx
movl $0xff, %ecx
xorl %r9d, %r9d
callq 0x3a034
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq