// File: /workspace/github_c_makefile_star2_O3/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 0x3c235
movl %r8d, %ebp
movq %rcx, %r15
movq %rdx, %r12
leaq 0x28(%rsp), %rdi
movq %rbx, %rsi
movq %r14, %rdx
callq 0x28d24
testb %al, %al
je 0x3c284
cmpb $-0x1, %bpl
je 0x3c093
movzbl %bpl, %eax
movzbl 0x3b(%r15), %r13d
imull %eax, %r13d
shrl $0x8, %r13d
jmp 0x3c097
movb 0x3b(%r15), %r13b
movq %r12, %rdi
movq %r15, %rsi
callq 0x3e67c
testq %rax, %rax
je 0x3c235
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 0x3c102
leaq 0x23e4b(%rip), %r15     # 0x5ff18
movq %r14, %rdi
movq %rbx, %rsi
movq %r15, %rdx
movl $0xff, %ecx
callq 0x36968
movq 0x30(%r12), %r8
xorps %xmm0, %xmm0
movups %xmm0, (%rsp)
movl $0x0, 0x18(%rsp)
movq $0x0, 0x10(%rsp)
jmp 0x3c26e
movq 0x20(%r12), %rdx
testq %rdx, %rdx
je 0x3c140
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 0x3612f
jmp 0x3c284
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 0x36748
movq %rax, 0x50(%rsp)
movq 0x28(%rsp), %rax
leaq 0x38(%rsp), %rdi
movq %rax, (%rdi)
movl $0x1, %esi
callq 0x28cd7
movzwl 0x2a(%rsp), %ebp
cmpw 0x2e(%rsp), %bp
jg 0x3c284
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 0x3e5fe
cmpb $0x1, %al
jne 0x3c22d
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 0x3612f
incw 0x3a(%rsp)
incw 0x3e(%rsp)
incl %ebp
cmpw 0x2e(%rsp), %bp
jle 0x3c1c6
jmp 0x3c284
movq %r12, %rdi
callq 0x3e62b
leaq 0x23cdc(%rip), %r15     # 0x5ff18
movq %r14, %rdi
movq %rbx, %rsi
movq %r15, %rdx
movl $0xff, %ecx
callq 0x36968
xorps %xmm0, %xmm0
movups %xmm0, (%rsp)
movl $0x0, 0x18(%rsp)
movq $0x0, 0x10(%rsp)
leaq 0x72a0(%rip), %r8       # 0x4350e
movq %r14, %rdi
movq %rbx, %rsi
movq %r15, %rdx
movl $0xff, %ecx
xorl %r9d, %r9d
callq 0x3a5ac
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq