// File: /workspace/github_c_makefile_star2_O0/neosploit[P]compiler/libfort/lib/fort.c
// Function: print_row_separator_impl
static
int print_row_separator_impl(f_conv_context_t *cntx,
                             const size_t *col_width_arr, size_t cols,
                             const f_row_t *upper_row, const f_row_t *lower_row,
                             enum f_hor_separator_pos separatorPos,
                             const f_separator_t *sep)
{
    assert(cntx);

    int status = FT_GEN_ERROR;

    const f_context_t *context = cntx->cntx;

    /* Get cell types
     *
     * Regions above top row and below bottom row areconsidered full of virtual
     * GROUP_SLAVE_CELL cells
     */
    enum f_cell_type *top_row_types = (enum f_cell_type *)F_MALLOC(sizeof(enum f_cell_type) * cols * 2);
    if (top_row_types == NULL) {
        return FT_MEMORY_ERROR;
    }
    enum f_cell_type *bottom_row_types = top_row_types + cols;
    if (upper_row) {
        get_row_cell_types(upper_row, top_row_types, cols);
    } else {
        size_t i = 0;
        for (i = 0; i < cols; ++i)
            top_row_types[i] = GROUP_SLAVE_CELL;
    }
    if (lower_row) {
        get_row_cell_types(lower_row, bottom_row_types, cols);
    } else {
        size_t i = 0;
        for (i = 0; i < cols; ++i)
            bottom_row_types[i] = GROUP_SLAVE_CELL;
    }


    f_table_properties_t *properties = context->table_properties;
    fort_entire_table_properties_t *entire_tprops = &properties->entire_table_properties;

    size_t written = 0;
    int tmp = 0;

    enum ft_row_type lower_row_type = FT_ROW_COMMON;
    if (lower_row != NULL) {
        lower_row_type = (enum ft_row_type)get_cell_property_hierarchically(properties, context->row, FT_ANY_COLUMN, FT_CPROP_ROW_TYPE);
    }
    enum ft_row_type upper_row_type = FT_ROW_COMMON;
    if (upper_row != NULL) {
        upper_row_type = (enum ft_row_type)get_cell_property_hierarchically(properties, context->row - 1, FT_ANY_COLUMN, FT_CPROP_ROW_TYPE);
    }

    /* Row separator anatomy
     *
     *  |      C11    |   C12         C13      |      C14           C15         |
     *  L  I  I  I   IV  I   I   IT  I  I  I  IB    I    I     II    I    I     R
     *  |      C21    |   C22     |   C23             C24           C25         |
    */
    const char **L = NULL;
    const char **I = NULL;
    const char **IV = NULL;
    const char **R = NULL;
    const char **IT = NULL;
    const char **IB = NULL;
    const char **II = NULL;

    struct fort_border_style *border_style = &properties->border_style;

    typedef const char *(*border_chars_point_t)[BORDER_ITEM_POS_SIZE];
    const char *(*border_chars)[BORDER_ITEM_POS_SIZE] = NULL;
    border_chars = (border_chars_point_t)&border_style->border_chars;
    if (upper_row_type == FT_ROW_HEADER || lower_row_type == FT_ROW_HEADER) {
        border_chars = (border_chars_point_t)&border_style->header_border_chars;
    }

    if (sep && sep->enabled) {
        L = &(border_style->separator_chars[LH_sip]);
        I = &(border_style->separator_chars[IH_sip]);
        IV = &(border_style->separator_chars[II_sip]);
        R = &(border_style->separator_chars[RH_sip]);

        IT = &(border_style->separator_chars[TI_sip]);
        IB = &(border_style->separator_chars[BI_sip]);
        II = &(border_style->separator_chars[IH_sip]);

        if (lower_row == NULL) {
            L = &(*border_chars)[BL_bip];
            R = &(*border_chars)[BR_bip];
        } else if (upper_row == NULL) {
            L = &(*border_chars)[TL_bip];
            R = &(*border_chars)[TR_bip];
        }
    } else {
        switch (separatorPos) {
            case TOP_SEPARATOR:
                L = &(*border_chars)[TL_bip];
                I = &(*border_chars)[TT_bip];
                IV = &(*border_chars)[TV_bip];
                R = &(*border_chars)[TR_bip];

                IT = &(*border_chars)[TV_bip];
                IB = &(*border_chars)[TV_bip];
                II = &(*border_chars)[TT_bip];
                break;
            case INSIDE_SEPARATOR:
                L = &(*border_chars)[LH_bip];
                I = &(*border_chars)[IH_bip];
                IV = &(*border_chars)[II_bip];
                R = &(*border_chars)[RH_bip];

                IT = &(*border_chars)[TI_bip];
                IB = &(*border_chars)[BI_bip];
                II = &(*border_chars)[IH_bip];
                break;
            case BOTTOM_SEPARATOR:
                L = &(*border_chars)[BL_bip];
                I = &(*border_chars)[BB_bip];
                IV = &(*border_chars)[BV_bip];
                R = &(*border_chars)[BR_bip];

                IT = &(*border_chars)[BV_bip];
                IB = &(*border_chars)[BV_bip];
                II = &(*border_chars)[BB_bip];
                break;
            default:
                break;
        }
    }

    size_t i = 0;

    /* If all chars are not printable, skip line separator */
    /* NOTE: argument of `isprint` should be explicitly converted to
     * unsigned char according to
     * https://en.cppreference.com/w/c/string/byte/isprint
     */
    if ((strlen(*L) == 0 || (strlen(*L) == 1 && !isprint((unsigned char) **L)))
        && (strlen(*I) == 0 || (strlen(*I) == 1 && !isprint((unsigned char) **I)))
        && (strlen(*IV) == 0 || (strlen(*IV) == 1 && !isprint((unsigned char) **IV)))
        && (strlen(*R) == 0 || (strlen(*R) == 1 && !isprint((unsigned char) **R)))) {
        status = 0;
        goto clear;
    }

    /* Print left margin */
    CHCK_RSLT_ADD_TO_WRITTEN(print_n_strings(cntx, entire_tprops->left_margin, FT_SPACE));

    for (i = 0; i < cols; ++i) {
        if (i == 0) {
            CHCK_RSLT_ADD_TO_WRITTEN(print_n_strings(cntx, 1, *L));
        } else {
            if ((top_row_types[i] == COMMON_CELL || top_row_types[i] == GROUP_MASTER_CELL)
                && (bottom_row_types[i] == COMMON_CELL || bottom_row_types[i] == GROUP_MASTER_CELL)) {
                CHCK_RSLT_ADD_TO_WRITTEN(print_n_strings(cntx, 1, *IV));
            } else if (top_row_types[i] == GROUP_SLAVE_CELL && bottom_row_types[i] == GROUP_SLAVE_CELL) {
                CHCK_RSLT_ADD_TO_WRITTEN(print_n_strings(cntx, 1, *II));
            } else if (top_row_types[i] == GROUP_SLAVE_CELL) {
                CHCK_RSLT_ADD_TO_WRITTEN(print_n_strings(cntx, 1, *IT));
            } else {
                CHCK_RSLT_ADD_TO_WRITTEN(print_n_strings(cntx, 1, *IB));
            }
        }
        CHCK_RSLT_ADD_TO_WRITTEN(print_n_strings(cntx, col_width_arr[i], *I));
    }
    CHCK_RSLT_ADD_TO_WRITTEN(print_n_strings(cntx, 1, *R));

    /* Print right margin */
    CHCK_RSLT_ADD_TO_WRITTEN(print_n_strings(cntx, entire_tprops->right_margin, FT_SPACE));

    CHCK_RSLT_ADD_TO_WRITTEN(print_n_strings(cntx, 1, FT_NEWLINE));

    status = (int)written;

clear:
    F_FREE(top_row_types);
    return status;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xe0, %rsp
movq 0x10(%rbp), %rax
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq %rcx, -0x28(%rbp)
movq %r8, -0x30(%rbp)
movl %r9d, -0x34(%rbp)
cmpq $0x0, -0x10(%rbp)
je 0x1c530
jmp 0x1c54f
leaq 0x7bbd(%rip), %rdi      # 0x240f4
leaq 0x6658(%rip), %rsi      # 0x22b96
movl $0x15e2, %edx           # imm = 0x15E2
leaq 0x7baf(%rip), %rcx      # 0x240f9
callq 0x7120
movl $0xfffffffc, -0x38(%rbp) # imm = 0xFFFFFFFC
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x40(%rbp)
movq 0xde4f(%rip), %rax      # 0x2a3b8
movq -0x20(%rbp), %rdi
shlq $0x2, %rdi
shlq %rdi
callq *%rax
movq %rax, -0x48(%rbp)
cmpq $0x0, -0x48(%rbp)
jne 0x1c58d
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x1ce91
movq -0x48(%rbp), %rax
movq -0x20(%rbp), %rcx
shlq $0x2, %rcx
addq %rcx, %rax
movq %rax, -0x50(%rbp)
cmpq $0x0, -0x28(%rbp)
je 0x1c5ba
movq -0x28(%rbp), %rdi
movq -0x48(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0x1cea0
jmp 0x1c5f3
movq $0x0, -0x58(%rbp)
movq $0x0, -0x58(%rbp)
movq -0x58(%rbp), %rax
cmpq -0x20(%rbp), %rax
jae 0x1c5f1
movq -0x48(%rbp), %rax
movq -0x58(%rbp), %rcx
movl $0x2, (%rax,%rcx,4)
movq -0x58(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x58(%rbp)
jmp 0x1c5ca
jmp 0x1c5f3
cmpq $0x0, -0x30(%rbp)
je 0x1c60d
movq -0x30(%rbp), %rdi
movq -0x50(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0x1cea0
jmp 0x1c646
movq $0x0, -0x60(%rbp)
movq $0x0, -0x60(%rbp)
movq -0x60(%rbp), %rax
cmpq -0x20(%rbp), %rax
jae 0x1c644
movq -0x50(%rbp), %rax
movq -0x60(%rbp), %rcx
movl $0x2, (%rax,%rcx,4)
movq -0x60(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x60(%rbp)
jmp 0x1c61d
jmp 0x1c646
movq -0x40(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x68(%rbp)
movq -0x68(%rbp), %rax
addq $0x168, %rax            # imm = 0x168
movq %rax, -0x70(%rbp)
movq $0x0, -0x78(%rbp)
movl $0x0, -0x7c(%rbp)
movl $0x0, -0x80(%rbp)
cmpq $0x0, -0x30(%rbp)
je 0x1c69a
movq -0x68(%rbp), %rdi
movq -0x40(%rbp), %rax
movq 0x8(%rax), %rsi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
movl $0x80, %ecx
callq 0x1a550
movl %eax, -0x80(%rbp)
movl $0x0, -0x84(%rbp)
cmpq $0x0, -0x28(%rbp)
je 0x1c6d0
movq -0x68(%rbp), %rdi
movq -0x40(%rbp), %rax
movq 0x8(%rax), %rsi
subq $0x1, %rsi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
movl $0x80, %ecx
callq 0x1a550
movl %eax, -0x84(%rbp)
movq $0x0, -0x90(%rbp)
movq $0x0, -0x98(%rbp)
movq $0x0, -0xa0(%rbp)
movq $0x0, -0xa8(%rbp)
movq $0x0, -0xb0(%rbp)
movq $0x0, -0xb8(%rbp)
movq $0x0, -0xc0(%rbp)
movq -0x68(%rbp), %rax
movq %rax, -0xc8(%rbp)
movq $0x0, -0xd0(%rbp)
movq -0xc8(%rbp), %rax
movq %rax, -0xd0(%rbp)
cmpl $0x1, -0x84(%rbp)
je 0x1c750
cmpl $0x1, -0x80(%rbp)
jne 0x1c764
movq -0xc8(%rbp), %rax
addq $0x98, %rax
movq %rax, -0xd0(%rbp)
cmpq $0x0, 0x10(%rbp)
je 0x1c87b
movq 0x10(%rbp), %rax
cmpl $0x0, (%rax)
je 0x1c87b
movq -0xc8(%rbp), %rax
addq $0x130, %rax            # imm = 0x130
movq %rax, -0x90(%rbp)
movq -0xc8(%rbp), %rax
addq $0x130, %rax            # imm = 0x130
addq $0x8, %rax
movq %rax, -0x98(%rbp)
movq -0xc8(%rbp), %rax
addq $0x130, %rax            # imm = 0x130
addq $0x10, %rax
movq %rax, -0xa0(%rbp)
movq -0xc8(%rbp), %rax
addq $0x130, %rax            # imm = 0x130
addq $0x18, %rax
movq %rax, -0xa8(%rbp)
movq -0xc8(%rbp), %rax
addq $0x130, %rax            # imm = 0x130
addq $0x20, %rax
movq %rax, -0xb0(%rbp)
movq -0xc8(%rbp), %rax
addq $0x130, %rax            # imm = 0x130
addq $0x28, %rax
movq %rax, -0xb8(%rbp)
movq -0xc8(%rbp), %rax
addq $0x130, %rax            # imm = 0x130
addq $0x8, %rax
movq %rax, -0xc0(%rbp)
cmpq $0x0, -0x30(%rbp)
jne 0x1c84d
movq -0xd0(%rbp), %rax
addq $0x58, %rax
movq %rax, -0x90(%rbp)
movq -0xd0(%rbp), %rax
addq $0x70, %rax
movq %rax, -0xa8(%rbp)
jmp 0x1c876
cmpq $0x0, -0x28(%rbp)
jne 0x1c874
movq -0xd0(%rbp), %rax
movq %rax, -0x90(%rbp)
movq -0xd0(%rbp), %rax
addq $0x18, %rax
movq %rax, -0xa8(%rbp)
jmp 0x1c876
jmp 0x1ca39
movl -0x34(%rbp), %eax
movl %eax, -0xdc(%rbp)
testl %eax, %eax
je 0x1c8af
jmp 0x1c88a
movl -0xdc(%rbp), %eax
subl $0x1, %eax
je 0x1c92e
jmp 0x1c89b
movl -0xdc(%rbp), %eax
subl $0x2, %eax
je 0x1c9b5
jmp 0x1ca35
movq -0xd0(%rbp), %rax
movq %rax, -0x90(%rbp)
movq -0xd0(%rbp), %rax
addq $0x8, %rax
movq %rax, -0x98(%rbp)
movq -0xd0(%rbp), %rax
addq $0x10, %rax
movq %rax, -0xa0(%rbp)
movq -0xd0(%rbp), %rax
addq $0x18, %rax
movq %rax, -0xa8(%rbp)
movq -0xd0(%rbp), %rax
addq $0x10, %rax
movq %rax, -0xb0(%rbp)
movq -0xd0(%rbp), %rax
addq $0x10, %rax
movq %rax, -0xb8(%rbp)
movq -0xd0(%rbp), %rax
addq $0x8, %rax
movq %rax, -0xc0(%rbp)
jmp 0x1ca37
movq -0xd0(%rbp), %rax
addq $0x38, %rax
movq %rax, -0x90(%rbp)
movq -0xd0(%rbp), %rax
addq $0x40, %rax
movq %rax, -0x98(%rbp)
movq -0xd0(%rbp), %rax
addq $0x48, %rax
movq %rax, -0xa0(%rbp)
movq -0xd0(%rbp), %rax
addq $0x50, %rax
movq %rax, -0xa8(%rbp)
movq -0xd0(%rbp), %rax
addq $0x80, %rax
movq %rax, -0xb0(%rbp)
movq -0xd0(%rbp), %rax
addq $0x90, %rax
movq %rax, -0xb8(%rbp)
movq -0xd0(%rbp), %rax
addq $0x40, %rax
movq %rax, -0xc0(%rbp)
jmp 0x1ca37
movq -0xd0(%rbp), %rax
addq $0x58, %rax
movq %rax, -0x90(%rbp)
movq -0xd0(%rbp), %rax
addq $0x60, %rax
movq %rax, -0x98(%rbp)
movq -0xd0(%rbp), %rax
addq $0x68, %rax
movq %rax, -0xa0(%rbp)
movq -0xd0(%rbp), %rax
addq $0x70, %rax
movq %rax, -0xa8(%rbp)
movq -0xd0(%rbp), %rax
addq $0x68, %rax
movq %rax, -0xb0(%rbp)
movq -0xd0(%rbp), %rax
addq $0x68, %rax
movq %rax, -0xb8(%rbp)
movq -0xd0(%rbp), %rax
addq $0x60, %rax
movq %rax, -0xc0(%rbp)
jmp 0x1ca37
jmp 0x1ca37
jmp 0x1ca39
movq $0x0, -0xd8(%rbp)
movq -0x90(%rbp), %rax
movq (%rax), %rdi
callq 0x70d0
cmpq $0x0, %rax
je 0x1ca9c
movq -0x90(%rbp), %rax
movq (%rax), %rdi
callq 0x70d0
cmpq $0x1, %rax
jne 0x1cba4
callq 0x7280
movq (%rax), %rax
movq -0x90(%rbp), %rcx
movq (%rcx), %rcx
movzbl (%rcx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x4000, %eax           # imm = 0x4000
cmpl $0x0, %eax
jne 0x1cba4
movq -0x98(%rbp), %rax
movq (%rax), %rdi
callq 0x70d0
cmpq $0x0, %rax
je 0x1caf4
movq -0x98(%rbp), %rax
movq (%rax), %rdi
callq 0x70d0
cmpq $0x1, %rax
jne 0x1cba4
callq 0x7280
movq (%rax), %rax
movq -0x98(%rbp), %rcx
movq (%rcx), %rcx
movzbl (%rcx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x4000, %eax           # imm = 0x4000
cmpl $0x0, %eax
jne 0x1cba4
movq -0xa0(%rbp), %rax
movq (%rax), %rdi
callq 0x70d0
cmpq $0x0, %rax
je 0x1cb48
movq -0xa0(%rbp), %rax
movq (%rax), %rdi
callq 0x70d0
cmpq $0x1, %rax
jne 0x1cba4
callq 0x7280
movq (%rax), %rax
movq -0xa0(%rbp), %rcx
movq (%rcx), %rcx
movzbl (%rcx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x4000, %eax           # imm = 0x4000
cmpl $0x0, %eax
jne 0x1cba4
movq -0xa8(%rbp), %rax
movq (%rax), %rdi
callq 0x70d0
cmpq $0x0, %rax
je 0x1cb98
movq -0xa8(%rbp), %rax
movq (%rax), %rdi
callq 0x70d0
cmpq $0x1, %rax
jne 0x1cba4
callq 0x7280
movq (%rax), %rax
movq -0xa8(%rbp), %rcx
movq (%rcx), %rcx
movzbl (%rcx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x4000, %eax           # imm = 0x4000
cmpl $0x0, %eax
jne 0x1cba4
movl $0x0, -0x38(%rbp)
jmp 0x1ce7e
jmp 0x1cba6
movq -0x10(%rbp), %rdi
movq -0x70(%rbp), %rax
movl (%rax), %eax
movl %eax, %esi
leaq 0x5a70(%rip), %rdx      # 0x22629
callq 0x19700
movl %eax, -0x7c(%rbp)
cmpl $0x0, -0x7c(%rbp)
jge 0x1cbcc
jmp 0x1ce7e
movslq -0x7c(%rbp), %rax
addq -0x78(%rbp), %rax
movq %rax, -0x78(%rbp)
movq $0x0, -0xd8(%rbp)
movq -0xd8(%rbp), %rax
cmpq -0x20(%rbp), %rax
jae 0x1cde6
cmpq $0x0, -0xd8(%rbp)
jne 0x1cc37
jmp 0x1cc00
movq -0x10(%rbp), %rdi
movq -0x90(%rbp), %rax
movq (%rax), %rdx
movl $0x1, %esi
callq 0x19700
movl %eax, -0x7c(%rbp)
cmpl $0x0, -0x7c(%rbp)
jge 0x1cc26
jmp 0x1ce7e
movslq -0x7c(%rbp), %rax
addq -0x78(%rbp), %rax
movq %rax, -0x78(%rbp)
jmp 0x1cd8f
movq -0x48(%rbp), %rax
movq -0xd8(%rbp), %rcx
cmpl $0x0, (%rax,%rcx,4)
je 0x1cc59
movq -0x48(%rbp), %rax
movq -0xd8(%rbp), %rcx
cmpl $0x1, (%rax,%rcx,4)
jne 0x1ccb4
movq -0x50(%rbp), %rax
movq -0xd8(%rbp), %rcx
cmpl $0x0, (%rax,%rcx,4)
je 0x1cc7b
movq -0x50(%rbp), %rax
movq -0xd8(%rbp), %rcx
cmpl $0x1, (%rax,%rcx,4)
jne 0x1ccb4
jmp 0x1cc7d
movq -0x10(%rbp), %rdi
movq -0xa0(%rbp), %rax
movq (%rax), %rdx
movl $0x1, %esi
callq 0x19700
movl %eax, -0x7c(%rbp)
cmpl $0x0, -0x7c(%rbp)
jge 0x1cca3
jmp 0x1ce7e
movslq -0x7c(%rbp), %rax
addq -0x78(%rbp), %rax
movq %rax, -0x78(%rbp)
jmp 0x1cd8d
movq -0x48(%rbp), %rax
movq -0xd8(%rbp), %rcx
cmpl $0x2, (%rax,%rcx,4)
jne 0x1cd0c
movq -0x50(%rbp), %rax
movq -0xd8(%rbp), %rcx
cmpl $0x2, (%rax,%rcx,4)
jne 0x1cd0c
jmp 0x1ccd8
movq -0x10(%rbp), %rdi
movq -0xc0(%rbp), %rax
movq (%rax), %rdx
movl $0x1, %esi
callq 0x19700
movl %eax, -0x7c(%rbp)
cmpl $0x0, -0x7c(%rbp)
jge 0x1ccfe
jmp 0x1ce7e
movslq -0x7c(%rbp), %rax
addq -0x78(%rbp), %rax
movq %rax, -0x78(%rbp)
jmp 0x1cd8b
movq -0x48(%rbp), %rax
movq -0xd8(%rbp), %rcx
cmpl $0x2, (%rax,%rcx,4)
jne 0x1cd53
jmp 0x1cd1f
movq -0x10(%rbp), %rdi
movq -0xb0(%rbp), %rax
movq (%rax), %rdx
movl $0x1, %esi
callq 0x19700
movl %eax, -0x7c(%rbp)
cmpl $0x0, -0x7c(%rbp)
jge 0x1cd45
jmp 0x1ce7e
movslq -0x7c(%rbp), %rax
addq -0x78(%rbp), %rax
movq %rax, -0x78(%rbp)
jmp 0x1cd89
jmp 0x1cd55
movq -0x10(%rbp), %rdi
movq -0xb8(%rbp), %rax
movq (%rax), %rdx
movl $0x1, %esi
callq 0x19700
movl %eax, -0x7c(%rbp)
cmpl $0x0, -0x7c(%rbp)
jge 0x1cd7b
jmp 0x1ce7e
movslq -0x7c(%rbp), %rax
addq -0x78(%rbp), %rax
movq %rax, -0x78(%rbp)
jmp 0x1cd89
jmp 0x1cd8b
jmp 0x1cd8d
jmp 0x1cd8f
jmp 0x1cd91
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rax
movq -0xd8(%rbp), %rcx
movq (%rax,%rcx,8), %rsi
movq -0x98(%rbp), %rax
movq (%rax), %rdx
callq 0x19700
movl %eax, -0x7c(%rbp)
cmpl $0x0, -0x7c(%rbp)
jge 0x1cdc1
jmp 0x1ce7e
movslq -0x7c(%rbp), %rax
addq -0x78(%rbp), %rax
movq %rax, -0x78(%rbp)
jmp 0x1cdcf
movq -0xd8(%rbp), %rax
addq $0x1, %rax
movq %rax, -0xd8(%rbp)
jmp 0x1cbe3
jmp 0x1cde8
movq -0x10(%rbp), %rdi
movq -0xa8(%rbp), %rax
movq (%rax), %rdx
movl $0x1, %esi
callq 0x19700
movl %eax, -0x7c(%rbp)
cmpl $0x0, -0x7c(%rbp)
jge 0x1ce0b
jmp 0x1ce7e
movslq -0x7c(%rbp), %rax
addq -0x78(%rbp), %rax
movq %rax, -0x78(%rbp)
jmp 0x1ce19
movq -0x10(%rbp), %rdi
movq -0x70(%rbp), %rax
movl 0x8(%rax), %eax
movl %eax, %esi
leaq 0x57fc(%rip), %rdx      # 0x22629
callq 0x19700
movl %eax, -0x7c(%rbp)
cmpl $0x0, -0x7c(%rbp)
jge 0x1ce3d
jmp 0x1ce7e
movslq -0x7c(%rbp), %rax
addq -0x78(%rbp), %rax
movq %rax, -0x78(%rbp)
jmp 0x1ce4b
movq -0x10(%rbp), %rdi
movl $0x1, %esi
leaq 0x5202(%rip), %rdx      # 0x2205d
callq 0x19700
movl %eax, -0x7c(%rbp)
cmpl $0x0, -0x7c(%rbp)
jge 0x1ce6b
jmp 0x1ce7e
movslq -0x7c(%rbp), %rax
addq -0x78(%rbp), %rax
movq %rax, -0x78(%rbp)
movq -0x78(%rbp), %rax
movl %eax, -0x38(%rbp)
movq 0xd3a3(%rip), %rax      # 0x2a228
movq -0x48(%rbp), %rdi
callq *%rax
movl -0x38(%rbp), %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0xe0, %rsp
popq %rbp
retq
nopl (%rax)