// File: /workspace/github_c_makefile_star2_O0/OnionIoT[P]lv_example/lvgl/src/lv_core/lv_obj.c
// Function: lv_obj_set_size
void lv_obj_set_size(lv_obj_t * obj, lv_coord_t w, lv_coord_t h)
{
    LV_ASSERT_OBJ(obj, LV_OBJX_NAME);


    /* Do nothing if the size is not changed */
    /* It is very important else recursive resizing can
     * occur without size change*/
    if(lv_obj_get_width(obj) == w && lv_obj_get_height(obj) == h) {
        return;
    }

    /*Invalidate the original area*/
    lv_obj_invalidate(obj);

    /*Save the original coordinates*/
    lv_area_t ori;
    lv_obj_get_coords(obj, &ori);

    /*Set the length and height*/
    obj->coords.y2 = obj->coords.y1 + h - 1;
    if(lv_obj_get_base_dir(obj) == LV_BIDI_DIR_RTL) {
        obj->coords.x1 = obj->coords.x2 - w + 1;
    } else {
        obj->coords.x2 = obj->coords.x1 + w - 1;
    }

    /*Send a signal to the object with its new coordinates*/
    obj->signal_cb(obj, LV_SIGNAL_CORD_CHG, &ori);

    /*Send a signal to the parent too*/
    lv_obj_t * par = lv_obj_get_parent(obj);
    if(par != NULL) par->signal_cb(par, LV_SIGNAL_CHILD_CHG, obj);

    /*Tell the children the parent's size has changed*/
    lv_obj_t * i;
    LV_LL_READ(obj->child_ll, i)
    {
        i->signal_cb(i, LV_SIGNAL_PARENT_SIZE_CHG, NULL);
    }

    /*Invalidate the new area*/
    lv_obj_invalidate(obj);

    /*Automatically realign the object if required*/
#if LV_USE_OBJ_REALIGN
    if(obj->realign.auto_realign) lv_obj_realign(obj);
#endif
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %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 0x81b9
movq -0x8(%rbp), %rsi
leaq 0x5ff4a(%rip), %rdi     # 0x680fc
callq 0xd410
jmp 0x81b7
movq -0x8(%rbp), %rdi
callq 0x8310
cwtl
movswl -0xa(%rbp), %ecx
cmpl %ecx, %eax
jne 0x81e2
movq -0x8(%rbp), %rdi
callq 0x8350
cwtl
movswl -0xc(%rbp), %ecx
cmpl %ecx, %eax
jne 0x81e2
jmp 0x8306
movq -0x8(%rbp), %rdi
callq 0x7430
movq -0x8(%rbp), %rdi
leaq -0x14(%rbp), %rsi
callq 0x7fb0
movq -0x8(%rbp), %rax
movswl 0x22(%rax), %eax
movswl -0xc(%rbp), %ecx
addl %ecx, %eax
subl $0x1, %eax
movw %ax, %cx
movq -0x8(%rbp), %rax
movw %cx, 0x26(%rax)
movq -0x8(%rbp), %rdi
callq 0x7180
movzbl %al, %eax
cmpl $0x1, %eax
jne 0x8243
movq -0x8(%rbp), %rax
movswl 0x24(%rax), %eax
movswl -0xa(%rbp), %ecx
subl %ecx, %eax
addl $0x1, %eax
movw %ax, %cx
movq -0x8(%rbp), %rax
movw %cx, 0x20(%rax)
jmp 0x825f
movq -0x8(%rbp), %rax
movswl 0x20(%rax), %eax
movswl -0xa(%rbp), %ecx
addl %ecx, %eax
subl $0x1, %eax
movw %ax, %cx
movq -0x8(%rbp), %rax
movw %cx, 0x24(%rax)
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rax
movq -0x8(%rbp), %rdi
movl $0x2, %esi
leaq -0x14(%rbp), %rdx
callq *%rax
movq -0x8(%rbp), %rdi
callq 0x71b0
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
je 0x82a1
movq -0x20(%rbp), %rax
movq 0x30(%rax), %rax
movq -0x20(%rbp), %rdi
movq -0x8(%rbp), %rdx
movl $0x1, %esi
callq *%rax
movq -0x8(%rbp), %rdi
addq $0x8, %rdi
callq 0x45660
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
je 0x82e7
movq -0x28(%rbp), %rax
movq 0x30(%rax), %rax
movq -0x28(%rbp), %rdi
movl $0x3, %esi
xorl %ecx, %ecx
movl %ecx, %edx
callq *%rax
movq -0x8(%rbp), %rdi
addq $0x8, %rdi
movq -0x28(%rbp), %rsi
callq 0x458a0
movq %rax, -0x28(%rbp)
jmp 0x82b2
movq -0x8(%rbp), %rdi
callq 0x7430
movq -0x8(%rbp), %rax
movb 0x6d(%rax), %al
andb $0x1, %al
cmpb $0x0, %al
je 0x8306
movq -0x8(%rbp), %rdi
callq 0x8390
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax)