// File: /workspace/github_c_makefile_star2_O0/neosploit[P]compiler/libfort/lib/fort.c
// Function: get_prop_value_if_exists_otherwise_default
static int get_prop_value_if_exists_otherwise_default(const struct f_cell_props *cell_opts, uint32_t property)
{
    if (cell_opts == NULL || !PROP_IS_SET(cell_opts->properties_flags, property)) {
        cell_opts = &g_default_cell_properties;
    }

    switch (property) {
        case FT_CPROP_MIN_WIDTH:
            return cell_opts->col_min_width;
        case FT_CPROP_TEXT_ALIGN:
            return cell_opts->align;
        case FT_CPROP_TOP_PADDING:
            return cell_opts->cell_padding_top;
        case FT_CPROP_BOTTOM_PADDING:
            return cell_opts->cell_padding_bottom;
        case FT_CPROP_LEFT_PADDING:
            return cell_opts->cell_padding_left;
        case FT_CPROP_RIGHT_PADDING:
            return cell_opts->cell_padding_right;
        case FT_CPROP_EMPTY_STR_HEIGHT:
            return cell_opts->cell_empty_string_height;
        case FT_CPROP_ROW_TYPE:
            return cell_opts->row_type;
        case FT_CPROP_CONT_FG_COLOR:
            return cell_opts->content_fg_color_number;
        case FT_CPROP_CONT_BG_COLOR:
            return cell_opts->content_bg_color_number;
        case FT_CPROP_CELL_BG_COLOR:
            return cell_opts->cell_bg_color_number;
        case FT_CPROP_CELL_TEXT_STYLE:
            return cell_opts->cell_text_style;
        case FT_CPROP_CONT_TEXT_STYLE:
            return cell_opts->content_text_style;
        default:
            /* todo: implement later */
            exit(333);
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
cmpq $0x0, -0x10(%rbp)
je 0x1b965
movq -0x10(%rbp), %rax
movl 0x10(%rax), %eax
andl -0x14(%rbp), %eax
cmpl $0x0, %eax
jne 0x1b970
leaq 0xff1c(%rip), %rax      # 0x2b888
movq %rax, -0x10(%rbp)
movl -0x14(%rbp), %eax
movl %eax, -0x18(%rbp)
subl $0x1, %eax
je 0x1ba38
jmp 0x1b981
movl -0x18(%rbp), %eax
subl $0x2, %eax
je 0x1ba47
jmp 0x1b98f
movl -0x18(%rbp), %eax
subl $0x4, %eax
je 0x1ba56
jmp 0x1b99d
movl -0x18(%rbp), %eax
subl $0x8, %eax
je 0x1ba65
jmp 0x1b9ab
movl -0x18(%rbp), %eax
subl $0x10, %eax
je 0x1ba71
jmp 0x1b9b9
movl -0x18(%rbp), %eax
subl $0x20, %eax
je 0x1ba7d
jmp 0x1b9c7
movl -0x18(%rbp), %eax
subl $0x40, %eax
je 0x1ba89
jmp 0x1b9d5
movl -0x18(%rbp), %eax
subl $0x80, %eax
je 0x1ba95
jmp 0x1b9e5
movl -0x18(%rbp), %eax
subl $0x100, %eax            # imm = 0x100
je 0x1baa1
jmp 0x1b9f5
movl -0x18(%rbp), %eax
subl $0x200, %eax            # imm = 0x200
je 0x1bab9
jmp 0x1ba05
movl -0x18(%rbp), %eax
subl $0x400, %eax            # imm = 0x400
je 0x1baad
jmp 0x1ba15
movl -0x18(%rbp), %eax
subl $0x800, %eax            # imm = 0x800
je 0x1bac5
jmp 0x1ba25
movl -0x18(%rbp), %eax
subl $0x1000, %eax           # imm = 0x1000
je 0x1bad1
jmp 0x1badd
movq -0x10(%rbp), %rax
movl 0x14(%rax), %eax
movl %eax, -0x4(%rbp)
jmp 0x1bae7
movq -0x10(%rbp), %rax
movl 0x18(%rax), %eax
movl %eax, -0x4(%rbp)
jmp 0x1bae7
movq -0x10(%rbp), %rax
movl 0x1c(%rax), %eax
movl %eax, -0x4(%rbp)
jmp 0x1bae7
movq -0x10(%rbp), %rax
movl 0x20(%rax), %eax
movl %eax, -0x4(%rbp)
jmp 0x1bae7
movq -0x10(%rbp), %rax
movl 0x24(%rax), %eax
movl %eax, -0x4(%rbp)
jmp 0x1bae7
movq -0x10(%rbp), %rax
movl 0x28(%rax), %eax
movl %eax, -0x4(%rbp)
jmp 0x1bae7
movq -0x10(%rbp), %rax
movl 0x2c(%rax), %eax
movl %eax, -0x4(%rbp)
jmp 0x1bae7
movq -0x10(%rbp), %rax
movl 0x30(%rax), %eax
movl %eax, -0x4(%rbp)
jmp 0x1bae7
movq -0x10(%rbp), %rax
movl 0x34(%rax), %eax
movl %eax, -0x4(%rbp)
jmp 0x1bae7
movq -0x10(%rbp), %rax
movl 0x38(%rax), %eax
movl %eax, -0x4(%rbp)
jmp 0x1bae7
movq -0x10(%rbp), %rax
movl 0x3c(%rax), %eax
movl %eax, -0x4(%rbp)
jmp 0x1bae7
movq -0x10(%rbp), %rax
movl 0x40(%rax), %eax
movl %eax, -0x4(%rbp)
jmp 0x1bae7
movq -0x10(%rbp), %rax
movl 0x44(%rax), %eax
movl %eax, -0x4(%rbp)
jmp 0x1bae7
movl $0x14d, %edi            # imm = 0x14D
callq 0x7250
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq