// File: /workspace/github_c_makefile_star2_O0/OnionIoT[P]lv_example/lvgl/src/lv_objx/lv_cont.c
// Function: lv_cont_layout_col
static void lv_cont_layout_col(lv_obj_t * cont)
{
    lv_layout_t type = lv_cont_get_layout(cont);
    lv_obj_t * child;

    /*Adjust margin and get the alignment type*/
    lv_align_t align;
    const lv_style_t * style = lv_obj_get_style(cont);
    lv_coord_t hpad_corr;

    switch(type) {
        case LV_LAYOUT_COL_L:
            hpad_corr = style->body.padding.left;
            align     = LV_ALIGN_IN_TOP_LEFT;
            break;
        case LV_LAYOUT_COL_M:
            hpad_corr = 0;
            align     = LV_ALIGN_IN_TOP_MID;
            break;
        case LV_LAYOUT_COL_R:
            hpad_corr = -style->body.padding.right;
            align     = LV_ALIGN_IN_TOP_RIGHT;
            break;
        default:
            hpad_corr = 0;
            align     = LV_ALIGN_IN_TOP_LEFT;
            break;
    }

    /* Disable child change action because the children will be moved a lot
     * an unnecessary child change signals could be sent*/
    lv_obj_set_protect(cont, LV_PROTECT_CHILD_CHG);
    /* Align the children */
    lv_coord_t last_cord = style->body.padding.top;
    LV_LL_READ_BACK(cont->child_ll, child)
    {
        if(lv_obj_get_hidden(child) != false || lv_obj_is_protected(child, LV_PROTECT_POS) != false) continue;

        lv_obj_align(child, cont, align, hpad_corr, last_cord);
        last_cord += lv_obj_get_height(child) + style->body.padding.inner;
    }

    lv_obj_clear_protect(cont, LV_PROTECT_CHILD_CHG);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
callq 0x387b0
movb %al, -0x9(%rbp)
movq -0x8(%rbp), %rdi
callq 0xa080
movq %rax, -0x28(%rbp)
movzbl -0x9(%rbp), %eax
movl %eax, -0x30(%rbp)
subl $0x2, %eax
je 0x39247
jmp 0x39233
movl -0x30(%rbp), %eax
subl $0x3, %eax
je 0x39259
jmp 0x3923d
movl -0x30(%rbp), %eax
subl $0x4, %eax
je 0x39265
jmp 0x3927b
movq -0x28(%rbp), %rax
movw 0x1a(%rax), %ax
movw %ax, -0x2a(%rbp)
movb $0x1, -0x19(%rbp)
jmp 0x39285
movw $0x0, -0x2a(%rbp)
movb $0x2, -0x19(%rbp)
jmp 0x39285
movq -0x28(%rbp), %rax
movswl 0x1c(%rax), %ecx
xorl %eax, %eax
subl %ecx, %eax
movw %ax, -0x2a(%rbp)
movb $0x3, -0x19(%rbp)
jmp 0x39285
movw $0x0, -0x2a(%rbp)
movb $0x1, -0x19(%rbp)
movq -0x8(%rbp), %rdi
movl $0x1, %esi
callq 0x9a50
movq -0x28(%rbp), %rax
movw 0x16(%rax), %ax
movw %ax, -0x2c(%rbp)
movq -0x8(%rbp), %rdi
addq $0x8, %rdi
callq 0x458e0
movq %rax, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
je 0x39341
movq -0x18(%rbp), %rdi
callq 0x7c90
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
jne 0x392e6
movq -0x18(%rbp), %rdi
movl $0x4, %esi
callq 0xa7d0
andb $0x1, %al
movzbl %al, %eax
cmpl $0x0, %eax
je 0x392e8
jmp 0x39327
movq -0x18(%rbp), %rdi
movq -0x8(%rbp), %rsi
movb -0x19(%rbp), %cl
movw -0x2a(%rbp), %ax
movzbl %cl, %edx
movswl %ax, %ecx
movswl -0x2c(%rbp), %r8d
callq 0x8500
movq -0x18(%rbp), %rdi
callq 0x8350
movswl %ax, %ecx
movq -0x28(%rbp), %rax
movswl 0x1e(%rax), %eax
addl %eax, %ecx
movswl -0x2c(%rbp), %eax
addl %ecx, %eax
movw %ax, -0x2c(%rbp)
movq -0x8(%rbp), %rdi
addq $0x8, %rdi
movq -0x18(%rbp), %rsi
callq 0x45690
movq %rax, -0x18(%rbp)
jmp 0x392b0
movq -0x8(%rbp), %rdi
movl $0x1, %esi
callq 0x9aa0
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)