LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/worksheet.c
// Function: worksheet_position_object_emus
STATIC void
_worksheet_position_object_emus(lxw_worksheet *self,
                                lxw_object_properties *image,
                                lxw_drawing_object *drawing_object)
{

    _worksheet_position_object_pixels(self, image, drawing_object);

    /* Convert the pixel values to EMUs. See above. */
    drawing_object->from.col_offset *= 9525;
    drawing_object->from.row_offset *= 9525;
    drawing_object->to.col_offset *= 9525;
    drawing_object->to.row_offset *= 9525;
    drawing_object->to.col_offset += 0.5;
    drawing_object->to.row_offset += 0.5;
    drawing_object->col_absolute *= 9525;
    drawing_object->row_absolute *= 9525;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x48f00
movq -0x18(%rbp), %rax
movsd 0x22587(%rip), %xmm0    # 0x6c2d8
mulsd 0x10(%rax), %xmm0
movsd %xmm0, 0x10(%rax)
movq -0x18(%rbp), %rax
movsd 0x22571(%rip), %xmm0    # 0x6c2d8
mulsd 0x18(%rax), %xmm0
movsd %xmm0, 0x18(%rax)
movq -0x18(%rbp), %rax
movsd 0x2255b(%rip), %xmm0    # 0x6c2d8
mulsd 0x28(%rax), %xmm0
movsd %xmm0, 0x28(%rax)
movq -0x18(%rbp), %rax
movsd 0x22545(%rip), %xmm0    # 0x6c2d8
mulsd 0x30(%rax), %xmm0
movsd %xmm0, 0x30(%rax)
movq -0x18(%rbp), %rax
movsd 0x1c577(%rip), %xmm0    # 0x66320
addsd 0x28(%rax), %xmm0
movsd %xmm0, 0x28(%rax)
movq -0x18(%rbp), %rax
movsd 0x1c561(%rip), %xmm0    # 0x66320
addsd 0x30(%rax), %xmm0
movsd %xmm0, 0x30(%rax)
movq -0x18(%rbp), %rax
imulq $0x2535, 0x38(%rax), %rcx # imm = 0x2535
movq %rcx, 0x38(%rax)
movq -0x18(%rbp), %rax
imulq $0x2535, 0x40(%rax), %rcx # imm = 0x2535
movq %rcx, 0x40(%rax)
addq $0x20, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/worksheet.c
// Function: find_drawing_rel_index
STATIC uint32_t
_find_drawing_rel_index(lxw_worksheet *self, char *target)
{
    lxw_drawing_rel_id tmp_drawing_rel_id;
    lxw_drawing_rel_id *found_duplicate_target = NULL;

    if (!target)
        return 0;

    tmp_drawing_rel_id.target = target;
    found_duplicate_target = RB_FIND(lxw_drawing_rel_ids,
                                     self->drawing_rel_ids,
                                     &tmp_drawing_rel_id);

    if (found_duplicate_target)
        return found_duplicate_target->id;
    else
        return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq $0x0, -0x50(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0x49e18
movl $0x0, -0x4(%rbp)
jmp 0x49e4e
movq -0x18(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x10(%rbp), %rax
movq 0x70(%rax), %rdi
leaq -0x48(%rbp), %rsi
callq 0x59b60
movq %rax, -0x50(%rbp)
cmpq $0x0, -0x50(%rbp)
je 0x49e47
movq -0x50(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x4(%rbp)
jmp 0x49e4e
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x50, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/worksheet.c
// Function: get_drawing_rel_index
STATIC uint32_t
_get_drawing_rel_index(lxw_worksheet *self, char *target)
{
    lxw_drawing_rel_id tmp_drawing_rel_id;
    lxw_drawing_rel_id *found_duplicate_target = NULL;
    lxw_drawing_rel_id *new_drawing_rel_id = NULL;

    if (target) {
        tmp_drawing_rel_id.target = target;
        found_duplicate_target = RB_FIND(lxw_drawing_rel_ids,
                                         self->drawing_rel_ids,
                                         &tmp_drawing_rel_id);
    }

    if (found_duplicate_target) {
        return found_duplicate_target->id;
    }
    else {
        self->drawing_rel_id++;

        if (target) {
            new_drawing_rel_id = calloc(1, sizeof(lxw_drawing_rel_id));

            if (new_drawing_rel_id) {
                new_drawing_rel_id->id = self->drawing_rel_id;
                new_drawing_rel_id->target = lxw_strdup(target);

                RB_INSERT(lxw_drawing_rel_ids, self->drawing_rel_ids,
                          new_drawing_rel_id);
            }
        }

        return self->drawing_rel_id;
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq $0x0, -0x50(%rbp)
movq $0x0, -0x58(%rbp)
cmpq $0x0, -0x18(%rbp)
je 0x49ea4
movq -0x18(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x10(%rbp), %rax
movq 0x70(%rax), %rdi
leaq -0x48(%rbp), %rsi
callq 0x59b60
movq %rax, -0x50(%rbp)
cmpq $0x0, -0x50(%rbp)
je 0x49eb6
movq -0x50(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x4(%rbp)
jmp 0x49f2e
movq -0x10(%rbp), %rax
movl 0x20c(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x20c(%rax)
cmpq $0x0, -0x18(%rbp)
je 0x49f21
movl $0x1, %edi
movl $0x30, %esi
callq 0xc870
movq %rax, -0x58(%rbp)
cmpq $0x0, -0x58(%rbp)
je 0x49f1f
movq -0x10(%rbp), %rax
movl 0x20c(%rax), %ecx
movq -0x58(%rbp), %rax
movl %ecx, (%rax)
movq -0x18(%rbp), %rdi
callq 0xcd80
movq %rax, %rcx
movq -0x58(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x10(%rbp), %rax
movq 0x70(%rax), %rdi
movq -0x58(%rbp), %rsi
callq 0x59c10
jmp 0x49f21
movq -0x10(%rbp), %rax
movl 0x20c(%rax), %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x60, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/worksheet.c
// Function: find_vml_drawing_rel_index
STATIC uint32_t
_find_vml_drawing_rel_index(lxw_worksheet *self, char *target)
{
    lxw_drawing_rel_id tmp_drawing_rel_id;
    lxw_drawing_rel_id *found_duplicate_target = NULL;

    if (!target)
        return 0;

    tmp_drawing_rel_id.target = target;
    found_duplicate_target = RB_FIND(lxw_vml_drawing_rel_ids,
                                     self->vml_drawing_rel_ids,
                                     &tmp_drawing_rel_id);

    if (found_duplicate_target)
        return found_duplicate_target->id;
    else
        return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq $0x0, -0x50(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0x4a2f8
movl $0x0, -0x4(%rbp)
jmp 0x4a32e
movq -0x18(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x10(%rbp), %rax
movq 0x78(%rax), %rdi
leaq -0x48(%rbp), %rsi
callq 0x5a1b0
movq %rax, -0x50(%rbp)
cmpq $0x0, -0x50(%rbp)
je 0x4a327
movq -0x50(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x4(%rbp)
jmp 0x4a32e
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x50, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/worksheet.c
// Function: get_vml_drawing_rel_index
STATIC uint32_t
_get_vml_drawing_rel_index(lxw_worksheet *self, char *target)
{
    lxw_drawing_rel_id tmp_drawing_rel_id;
    lxw_drawing_rel_id *found_duplicate_target = NULL;
    lxw_drawing_rel_id *new_drawing_rel_id = NULL;

    if (target) {
        tmp_drawing_rel_id.target = target;
        found_duplicate_target = RB_FIND(lxw_vml_drawing_rel_ids,
                                         self->vml_drawing_rel_ids,
                                         &tmp_drawing_rel_id);
    }

    if (found_duplicate_target) {
        return found_duplicate_target->id;
    }
    else {
        self->vml_drawing_rel_id++;

        if (target) {
            new_drawing_rel_id = calloc(1, sizeof(lxw_drawing_rel_id));

            if (new_drawing_rel_id) {
                new_drawing_rel_id->id = self->vml_drawing_rel_id;
                new_drawing_rel_id->target = lxw_strdup(target);

                RB_INSERT(lxw_vml_drawing_rel_ids, self->vml_drawing_rel_ids,
                          new_drawing_rel_id);
            }
        }

        return self->vml_drawing_rel_id;
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq $0x0, -0x50(%rbp)
movq $0x0, -0x58(%rbp)
cmpq $0x0, -0x18(%rbp)
je 0x4a384
movq -0x18(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x10(%rbp), %rax
movq 0x78(%rax), %rdi
leaq -0x48(%rbp), %rsi
callq 0x5a1b0
movq %rax, -0x50(%rbp)
cmpq $0x0, -0x50(%rbp)
je 0x4a396
movq -0x50(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x4(%rbp)
jmp 0x4a40e
movq -0x10(%rbp), %rax
movl 0x210(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x210(%rax)
cmpq $0x0, -0x18(%rbp)
je 0x4a401
movl $0x1, %edi
movl $0x30, %esi
callq 0xc870
movq %rax, -0x58(%rbp)
cmpq $0x0, -0x58(%rbp)
je 0x4a3ff
movq -0x10(%rbp), %rax
movl 0x210(%rax), %ecx
movq -0x58(%rbp), %rax
movl %ecx, (%rax)
movq -0x18(%rbp), %rdi
callq 0xcd80
movq %rax, %rcx
movq -0x58(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x10(%rbp), %rax
movq 0x78(%rax), %rdi
movq -0x58(%rbp), %rsi
callq 0x5a230
jmp 0x4a401
movq -0x10(%rbp), %rax
movl 0x210(%rax), %eax
movl %eax, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x60, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/worksheet.c
// Function: lxw_worksheet_write_single_row
void
lxw_worksheet_write_single_row(lxw_worksheet *self)
{
    lxw_row *row = self->optimize_row;
    lxw_col_t col;

    /* skip row if it doesn't contain row formatting, cell data or a comment. */
    if (!(row->row_changed || row->data_changed))
        return;

    /* Write the cells if the row contains data. */
    if (!row->data_changed) {
        /* Row data only. No cells. */
        _write_row(self, row, NULL);
    }
    else {
        /* Row and cell data. */
        _write_row(self, row, NULL);

        for (col = self->dim_colmin; col <= self->dim_colmax; col++) {
            if (self->array[col]) {
                _write_cell(self, self->array[col], row->format);
                _free_cell(self->array[col]);
                self->array[col] = NULL;
            }
        }

        lxw_xml_end_tag(self->file, "row");
    }

    /* Reset the row. */
    row->height = LXW_DEF_ROW_HEIGHT;
    row->format = NULL;
    row->hidden = LXW_FALSE;
    row->level = 0;
    row->collapsed = LXW_FALSE;
    row->data_changed = LXW_FALSE;
    row->row_changed = LXW_FALSE;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq 0x120(%rax), %rax
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movzbl 0x1b(%rax), %eax
cmpl $0x0, %eax
jne 0x4b93a
movq -0x10(%rbp), %rax
movzbl 0x1c(%rax), %eax
cmpl $0x0, %eax
jne 0x4b93a
jmp 0x4ba52
movq -0x10(%rbp), %rax
cmpb $0x0, 0x1c(%rax)
jne 0x4b95a
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
xorl %eax, %eax
movl %eax, %edx
callq 0x4ba60
jmp 0x4ba0d
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
xorl %eax, %eax
movl %eax, %edx
callq 0x4ba60
movq -0x8(%rbp), %rax
movw 0xac(%rax), %ax
movw %ax, -0x12(%rbp)
movzwl -0x12(%rbp), %eax
movq -0x8(%rbp), %rcx
movzwl 0xae(%rcx), %ecx
cmpl %ecx, %eax
jg 0x4b9fa
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movzwl -0x12(%rbp), %ecx
cmpq $0x0, (%rax,%rcx,8)
je 0x4b9ea
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movzwl -0x12(%rbp), %ecx
movq (%rax,%rcx,8), %rsi
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdx
callq 0x4be90
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movzwl -0x12(%rbp), %ecx
movq (%rax,%rcx,8), %rdi
callq 0x47410
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rax
movzwl -0x12(%rbp), %ecx
movq $0x0, (%rax,%rcx,8)
jmp 0x4b9ec
movw -0x12(%rbp), %ax
addw $0x1, %ax
movw %ax, -0x12(%rbp)
jmp 0x4b97a
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x1cb59(%rip), %rsi     # 0x68561
callq 0xc060
movq -0x10(%rbp), %rax
movsd 0x208a7(%rip), %xmm0    # 0x6c2c0
movsd %xmm0, 0x8(%rax)
movq -0x10(%rbp), %rax
movq $0x0, 0x10(%rax)
movq -0x10(%rbp), %rax
movb $0x0, 0x18(%rax)
movq -0x10(%rbp), %rax
movb $0x0, 0x19(%rax)
movq -0x10(%rbp), %rax
movb $0x0, 0x1a(%rax)
movq -0x10(%rbp), %rax
movb $0x0, 0x1c(%rax)
movq -0x10(%rbp), %rax
movb $0x0, 0x1b(%rax)
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/worksheet.c
// Function: validate_conditional_icons
lxw_error
_validate_conditional_icons(lxw_conditional_format *user)
{
    if (user->icon_style > LXW_CONDITIONAL_ICONS_5_QUARTERS) {

        LXW_WARN_FORMAT1("worksheet_conditional_format_cell()/_range(): "
                         "For type = LXW_CONDITIONAL_TYPE_ICON_SETS, "
                         "invalid icon_style (%d).", user->icon_style);

        return LXW_ERROR_PARAMETER_VALIDATION;
    }
    else {
        return LXW_NO_ERROR;
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movzbl 0x88(%rax), %eax
cmpl $0x10, %eax
jle 0x4c7c8
movq 0x30855(%rip), %rax     # 0x7cff8
movq (%rax), %rdi
movq -0x10(%rbp), %rax
movzbl 0x88(%rax), %edx
leaq 0x20337(%rip), %rsi     # 0x6caef
movb $0x0, %al
callq 0xc8f0
movl $0xd, -0x4(%rbp)
jmp 0x4c7cf
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/worksheet.c
// Function: validate_conditional_top
lxw_error
_validate_conditional_top(lxw_cond_format_obj *cond_format,
                          lxw_conditional_format *user_options)
{
    /* Restrict the range of rank values to Excel's allowed range. */
    if (user_options->criteria ==
        LXW_CONDITIONAL_CRITERIA_TOP_OR_BOTTOM_PERCENT) {
        if (user_options->value < 0.0 || user_options->value > 100.0) {

            LXW_WARN_FORMAT1("worksheet_conditional_format_cell()/_range(): "
                             "For type = LXW_CONDITIONAL_TYPE_TOP/BOTTOM, "
                             "top/bottom percent (%g%%) must by in range 0-100",
                             user_options->value);

            return LXW_ERROR_PARAMETER_VALIDATION;
        }
    }
    else {
        if (user_options->value < 1.0 || user_options->value > 1000.0) {

            LXW_WARN_FORMAT1("worksheet_conditional_format_cell()/_range(): "
                             "For type = LXW_CONDITIONAL_TYPE_TOP/BOTTOM, "
                             "top/bottom items (%g) must by in range 1-1000",
                             user_options->value);

            return LXW_ERROR_PARAMETER_VALIDATION;
        }
    }

    cond_format->min_value = (uint16_t) user_options->value;

    return LXW_NO_ERROR;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x18(%rbp), %rax
movzbl 0x1(%rax), %eax
cmpl $0x21, %eax
jne 0x4cd3e
movq -0x18(%rbp), %rax
xorps %xmm0, %xmm0
ucomisd 0x8(%rax), %xmm0
ja 0x4cd12
movq -0x18(%rbp), %rax
movsd 0x8(%rax), %xmm0
movsd 0x195f4(%rip), %xmm1    # 0x66300
ucomisd %xmm1, %xmm0
jbe 0x4cd3c
movq 0x302df(%rip), %rax     # 0x7cff8
movq (%rax), %rdi
movq -0x18(%rbp), %rax
movsd 0x8(%rax), %xmm0
leaq 0x1fe41(%rip), %rsi     # 0x6cb6d
movb $0x1, %al
callq 0xc8f0
movl $0xd, -0x4(%rbp)
jmp 0x4cdb4
jmp 0x4cd94
movq -0x18(%rbp), %rax
movsd 0x1ad4e(%rip), %xmm0    # 0x67a98
ucomisd 0x8(%rax), %xmm0
ja 0x4cd68
movq -0x18(%rbp), %rax
movsd 0x8(%rax), %xmm0
movsd 0x1f586(%rip), %xmm1    # 0x6c2e8
ucomisd %xmm1, %xmm0
jbe 0x4cd92
movq 0x30289(%rip), %rax     # 0x7cff8
movq (%rax), %rdi
movq -0x18(%rbp), %rax
movsd 0x8(%rax), %xmm0
leaq 0x1fe82(%rip), %rsi     # 0x6cc04
movb $0x1, %al
callq 0xc8f0
movl $0xd, -0x4(%rbp)
jmp 0x4cdb4
jmp 0x4cd94
movq -0x18(%rbp), %rax
cvttsd2si 0x8(%rax), %eax
movzwl %ax, %eax
cvtsi2sd %eax, %xmm0
movq -0x10(%rbp), %rax
movsd %xmm0, 0x8(%rax)
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/worksheet.c
// Function: validate_conditional_average
lxw_error
_validate_conditional_average(lxw_conditional_format *user)
{
    if (user->criteria < LXW_CONDITIONAL_CRITERIA_AVERAGE_ABOVE ||
        user->criteria > LXW_CONDITIONAL_CRITERIA_AVERAGE_3_STD_DEV_BELOW) {

        LXW_WARN_FORMAT1("worksheet_conditional_format_cell()/_range(): "
                         "For type = LXW_CONDITIONAL_TYPE_AVERAGE, "
                         "invalid criteria value (%d).", user->criteria);

        return LXW_ERROR_PARAMETER_VALIDATION;
    }
    else {
        return LXW_NO_ERROR;
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movzbl 0x1(%rax), %eax
cmpl $0x17, %eax
jl 0x4cde6
movq -0x10(%rbp), %rax
movzbl 0x1(%rax), %eax
cmpl $0x20, %eax
jle 0x4ce0f
movq 0x3020b(%rip), %rax     # 0x7cff8
movq (%rax), %rdi
movq -0x10(%rbp), %rax
movzbl 0x1(%rax), %edx
leaq 0x1fe99(%rip), %rsi     # 0x6cc98
movb $0x0, %al
callq 0xc8f0
movl $0xd, -0x4(%rbp)
jmp 0x4ce16
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x10, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/worksheet.c
// Function: validate_conditional_time_period
lxw_error
_validate_conditional_time_period(lxw_conditional_format *user)
{
    if (user->criteria < LXW_CONDITIONAL_CRITERIA_TIME_PERIOD_YESTERDAY ||
        user->criteria > LXW_CONDITIONAL_CRITERIA_TIME_PERIOD_NEXT_MONTH) {

        LXW_WARN_FORMAT1("worksheet_conditional_format_cell()/_range(): "
                         "For type = LXW_CONDITIONAL_TYPE_TIME_PERIOD, "
                         "invalid criteria value (%d).", user->criteria);

        return LXW_ERROR_PARAMETER_VALIDATION;
    }
    else {
        return LXW_NO_ERROR;
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movzbl 0x1(%rax), %eax
cmpl $0xd, %eax
jl 0x4ce46
movq -0x10(%rbp), %rax
movzbl 0x1(%rax), %eax
cmpl $0x16, %eax
jle 0x4ce6f
movq 0x301ab(%rip), %rax     # 0x7cff8
movq (%rax), %rdi
movq -0x10(%rbp), %rax
movzbl 0x1(%rax), %edx
leaq 0x1feb9(%rip), %rsi     # 0x6cd18
movb $0x0, %al
callq 0xc8f0
movl $0xd, -0x4(%rbp)
jmp 0x4ce76
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x10, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/worksheet.c
// Function: validate_conditional_text
lxw_error
_validate_conditional_text(lxw_cond_format_obj *cond_format,
                           lxw_conditional_format *user_options)
{
    if (!user_options->value_string) {

        LXW_WARN_FORMAT("worksheet_conditional_format_cell()/_range(): "
                        "For type = LXW_CONDITIONAL_TYPE_TEXT, "
                        "value_string can not be NULL. "
                        "Text must be specified.");

        return LXW_ERROR_PARAMETER_VALIDATION;
    }

    if (strlen(user_options->value_string) >= LXW_MAX_ATTRIBUTE_LENGTH) {

        LXW_WARN_FORMAT2("worksheet_conditional_format_cell()/_range(): "
                         "For type = LXW_CONDITIONAL_TYPE_TEXT, "
                         "value_string length (%d) must be less than %d.",
                         (uint16_t) strlen(user_options->value_string),
                         LXW_MAX_ATTRIBUTE_LENGTH);

        return LXW_ERROR_PARAMETER_VALIDATION;
    }

    if (user_options->criteria < LXW_CONDITIONAL_CRITERIA_TEXT_CONTAINING ||
        user_options->criteria > LXW_CONDITIONAL_CRITERIA_TEXT_ENDS_WITH) {

        LXW_WARN_FORMAT1("worksheet_conditional_format_cell()/_range(): "
                         "For type = LXW_CONDITIONAL_TYPE_TEXT, "
                         "invalid criteria value (%d).",
                         user_options->criteria);

        return LXW_ERROR_PARAMETER_VALIDATION;
    }

    cond_format->min_value_string =
        lxw_strdup_formula(user_options->value_string);

    return LXW_NO_ERROR;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpq $0x0, 0x10(%rax)
jne 0x4cebf
movq 0x30156(%rip), %rax     # 0x7cff8
movq (%rax), %rdi
leaq 0x1fef0(%rip), %rsi     # 0x6cd9c
movb $0x0, %al
callq 0xc8f0
movl $0xd, -0x4(%rbp)
jmp 0x4cf74
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0xc4e0
cmpq $0x820, %rax            # imm = 0x820
jb 0x4cf12
movq 0x3011d(%rip), %rax     # 0x7cff8
movq (%rax), %rax
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0xc4e0
movq -0x20(%rbp), %rdi
movzwl %ax, %edx
leaq 0x1ff35(%rip), %rsi     # 0x6ce32
movl $0x820, %ecx            # imm = 0x820
movb $0x0, %al
callq 0xc8f0
movl $0xd, -0x4(%rbp)
jmp 0x4cf74
movq -0x18(%rbp), %rax
movzbl 0x1(%rax), %eax
cmpl $0x9, %eax
jl 0x4cf2c
movq -0x18(%rbp), %rax
movzbl 0x1(%rax), %eax
cmpl $0xc, %eax
jle 0x4cf55
movq 0x300c5(%rip), %rax     # 0x7cff8
movq (%rax), %rdi
movq -0x18(%rbp), %rax
movzbl 0x1(%rax), %edx
leaq 0x1ff7c(%rip), %rsi     # 0x6cec1
movb $0x0, %al
callq 0xc8f0
movl $0xd, -0x4(%rbp)
jmp 0x4cf74
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0xc0f0
movq %rax, %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x10(%rax)
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/worksheet.c
// Function: validate_conditional_formula
lxw_error
_validate_conditional_formula(lxw_cond_format_obj *cond_format,
                              lxw_conditional_format *user_options)
{
    if (!user_options->value_string) {

        LXW_WARN_FORMAT("worksheet_conditional_format_cell()/_range(): "
                        "For type = LXW_CONDITIONAL_TYPE_FORMULA, "
                        "value_string can not be NULL. "
                        "Formula must be specified.");

        return LXW_ERROR_PARAMETER_VALIDATION;
    }

    cond_format->min_value_string =
        lxw_strdup_formula(user_options->value_string);

    return LXW_NO_ERROR;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x18(%rbp), %rax
cmpq $0x0, 0x10(%rax)
jne 0x4cfbc
movq 0x30056(%rip), %rax     # 0x7cff8
movq (%rax), %rdi
leaq 0x1ff92(%rip), %rsi     # 0x6cf3e
movb $0x0, %al
callq 0xc8f0
movl $0xd, -0x4(%rbp)
jmp 0x4cfdb
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0xc0f0
movq %rax, %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x10(%rax)
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/worksheet.c
// Function: validate_conditional_cell
lxw_error
_validate_conditional_cell(lxw_cond_format_obj *cond_format,
                           lxw_conditional_format *user_options)
{
    cond_format->min_value = user_options->value;
    cond_format->min_value_string =
        lxw_strdup_formula(user_options->value_string);

    if (cond_format->criteria == LXW_CONDITIONAL_CRITERIA_BETWEEN
        || cond_format->criteria == LXW_CONDITIONAL_CRITERIA_NOT_BETWEEN) {
        cond_format->has_max = LXW_TRUE;
        cond_format->min_value = user_options->min_value;
        cond_format->max_value = user_options->max_value;
        cond_format->min_value_string =
            lxw_strdup_formula(user_options->min_value_string);
        cond_format->max_value_string =
            lxw_strdup_formula(user_options->max_value_string);
    }

    return LXW_NO_ERROR;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movsd 0x8(%rax), %xmm0
movq -0x8(%rbp), %rax
movsd %xmm0, 0x8(%rax)
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0xc0f0
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x8(%rbp), %rax
movzbl 0x1(%rax), %eax
cmpl $0x7, %eax
je 0x4d044
movq -0x8(%rbp), %rax
movzbl 0x1(%rax), %eax
cmpl $0x8, %eax
jne 0x4d0a0
movq -0x8(%rbp), %rax
movb $0x1, 0x74(%rax)
movq -0x10(%rbp), %rax
movsd 0x20(%rax), %xmm0
movq -0x8(%rbp), %rax
movsd %xmm0, 0x8(%rax)
movq -0x10(%rbp), %rax
movsd 0x50(%rax), %xmm0
movq -0x8(%rbp), %rax
movsd %xmm0, 0x38(%rax)
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rdi
callq 0xc0f0
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x10(%rbp), %rax
movq 0x58(%rax), %rdi
callq 0xc0f0
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x40(%rax)
xorl %eax, %eax
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/worksheet.c
// Function: worksheet_write_drawings
STATIC void
_worksheet_write_drawings(lxw_worksheet *self)
{
    if (!self->drawing)
        return;

    self->rel_count++;

    _worksheet_write_drawing(self, self->rel_count);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
cmpq $0x0, 0x290(%rax)
jne 0x4d3ec
jmp 0x4d416
movq -0x8(%rbp), %rax
movw 0x134(%rax), %cx
addw $0x1, %cx
movw %cx, 0x134(%rax)
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movzwl 0x134(%rax), %esi
callq 0x5d4e0
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/worksheet.c
// Function: worksheet_write_header_footer
STATIC void
_worksheet_write_header_footer(lxw_worksheet *self)
{
    if (!self->header_footer_changed)
        return;

    lxw_xml_start_tag(self->file, "headerFooter", NULL);

    if (self->header)
        _worksheet_write_odd_header(self);

    if (self->footer)
        _worksheet_write_odd_footer(self);

    lxw_xml_end_tag(self->file, "headerFooter");
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
cmpb $0x0, 0x1ac(%rax)
jne 0x4e18b
jmp 0x4e1e3
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x1974c(%rip), %rsi     # 0x678e5
xorl %eax, %eax
movl %eax, %edx
callq 0xc390
movq -0x8(%rbp), %rax
cmpq $0x0, 0x1b0(%rax)
je 0x4e1b9
movq -0x8(%rbp), %rdi
callq 0x5d990
movq -0x8(%rbp), %rax
cmpq $0x0, 0x1b8(%rax)
je 0x4e1d0
movq -0x8(%rbp), %rdi
callq 0x5d9d0
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x19707(%rip), %rsi     # 0x678e5
callq 0xc060
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/worksheet.c
// Function: worksheet_write_cols
STATIC void
_worksheet_write_cols(lxw_worksheet *self)
{
    lxw_col_t col;

    if (!self->col_size_changed)
        return;

    lxw_xml_start_tag(self->file, "cols", NULL);

    for (col = 0; col < self->col_options_max; col++) {
        if (self->col_options[col])
            _worksheet_write_col_info(self, self->col_options[col]);
    }

    lxw_xml_end_tag(self->file, "cols");
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
cmpb $0x0, 0x11a(%rax)
jne 0x4e9be
jmp 0x4ea43
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x1fc88(%rip), %rsi     # 0x6e654
xorl %eax, %eax
movl %eax, %edx
callq 0xc390
movw $0x0, -0xa(%rbp)
movzwl -0xa(%rbp), %eax
movq -0x8(%rbp), %rcx
movzwl 0xf8(%rcx), %ecx
cmpl %ecx, %eax
jge 0x4ea30
movq -0x8(%rbp), %rax
movq 0xf0(%rax), %rax
movzwl -0xa(%rbp), %ecx
cmpq $0x0, (%rax,%rcx,8)
je 0x4ea20
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0xf0(%rax), %rax
movzwl -0xa(%rbp), %ecx
movq (%rax,%rcx,8), %rsi
callq 0x5da10
jmp 0x4ea22
movw -0xa(%rbp), %ax
addw $0x1, %ax
movw %ax, -0xa(%rbp)
jmp 0x4e9db
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x1fc16(%rip), %rsi     # 0x6e654
callq 0xc060
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/worksheet.c
// Function: worksheet_write_sheet_data
STATIC void
_worksheet_write_sheet_data(lxw_worksheet *self)
{
    if (RB_EMPTY(self->table)) {
        lxw_xml_empty_tag(self->file, "sheetData", NULL);
    }
    else {
        lxw_xml_start_tag(self->file, "sheetData", NULL);
        _worksheet_write_rows(self);
        lxw_xml_end_tag(self->file, "sheetData");
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
cmpq $0x0, (%rax)
jne 0x4ea83
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x1fbf3(%rip), %rsi     # 0x6e66b
xorl %eax, %eax
movl %eax, %edx
callq 0xcca0
jmp 0x4eab6
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x1fbda(%rip), %rsi     # 0x6e66b
xorl %eax, %eax
movl %eax, %edx
callq 0xc390
movq -0x8(%rbp), %rdi
callq 0x5de50
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x1fbba(%rip), %rsi     # 0x6e66b
callq 0xc060
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/worksheet.c
// Function: worksheet_write_optimized_sheet_data
STATIC void
_worksheet_write_optimized_sheet_data(lxw_worksheet *self)
{
    size_t read_size = 1;
    char buffer[LXW_BUFFER_SIZE];

    if (self->dim_rowmin == LXW_ROW_MAX) {
        /* If the dimensions aren't defined then there is no data to write. */
        lxw_xml_empty_tag(self->file, "sheetData", NULL);
    }
    else {

        lxw_xml_start_tag(self->file, "sheetData", NULL);

        /* Flush the temp file. */
        fflush(self->optimize_tmpfile);

        if (self->optimize_buffer) {
            /* Ignore return value. There is no easy way to raise error. */
            (void) fwrite(self->optimize_buffer, self->optimize_buffer_size,
                          1, self->file);
        }
        else {
            /* Rewind the temp file. */
            rewind(self->optimize_tmpfile);
            while (read_size) {
                read_size =
                    fread(buffer, 1, LXW_BUFFER_SIZE, self->optimize_tmpfile);
                /* Ignore return value. There is no easy way to raise error. */
                (void) fwrite(buffer, 1, read_size, self->file);
            }
        }

        fclose(self->optimize_tmpfile);
        free(self->optimize_buffer);

        lxw_xml_end_tag(self->file, "sheetData");
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1010, %rsp           # imm = 0x1010
movq %rdi, -0x8(%rbp)
movq $0x1, -0x10(%rbp)
movq -0x8(%rbp), %rax
cmpl $0x100000, 0xa4(%rax)   # imm = 0x100000
jne 0x4eb03
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x1fb76(%rip), %rsi     # 0x6e66b
xorl %eax, %eax
movl %eax, %edx
callq 0xcca0
jmp 0x4ebd8
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x1fb5a(%rip), %rsi     # 0x6e66b
xorl %eax, %eax
movl %eax, %edx
callq 0xc390
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0xcb00
movq -0x8(%rbp), %rax
cmpq $0x0, 0x10(%rax)
je 0x4eb55
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rdi
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rsi
movq -0x8(%rbp), %rax
movq (%rax), %rcx
movl $0x1, %edx
callq 0xd030
jmp 0x4ebab
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0xc560
cmpq $0x0, -0x10(%rbp)
je 0x4eba9
leaq -0x1010(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rcx
movl $0x1, %esi
movl $0x1000, %edx           # imm = 0x1000
callq 0xc320
movq %rax, -0x10(%rbp)
leaq -0x1010(%rbp), %rdi
movq -0x10(%rbp), %rdx
movq -0x8(%rbp), %rax
movq (%rax), %rcx
movl $0x1, %esi
callq 0xd030
jmp 0x4eb62
jmp 0x4ebab
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0xc460
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x1fa98(%rip), %rsi     # 0x6e66b
callq 0xc060
addq $0x1010, %rsp           # imm = 0x1010
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/worksheet.c
// Function: worksheet_write_auto_filter
STATIC void
_worksheet_write_auto_filter(lxw_worksheet *self)
{
    struct xml_attribute_list attributes;
    struct xml_attribute *attribute;
    char range[LXW_MAX_CELL_RANGE_LENGTH];
    uint16_t i;

    if (!self->autofilter.in_use)
        return;

    lxw_rowcol_to_range(range,
                        self->autofilter.first_row,
                        self->autofilter.first_col,
                        self->autofilter.last_row, self->autofilter.last_col);

    LXW_INIT_ATTRIBUTES();
    LXW_PUSH_ATTRIBUTES_STR("ref", range);

    if (self->autofilter.has_rules) {
        lxw_xml_start_tag(self->file, "autoFilter", &attributes);

        for (i = 0; i < self->num_filter_rules; i++)
            _worksheet_write_filter_column(self, self->filter_rules[i]);

        lxw_xml_end_tag(self->file, "autoFilter");

    }
    else {
        lxw_xml_empty_tag(self->file, "autoFilter", &attributes);
    }

    LXW_FREE_ATTRIBUTES();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
cmpb $0x0, 0x1e4(%rax)
jne 0x4ec0e
jmp 0x4ed70
leaq -0x40(%rbp), %rdi
movq -0x8(%rbp), %rax
movl 0x1e8(%rax), %esi
movq -0x8(%rbp), %rax
movw 0x1f0(%rax), %dx
movq -0x8(%rbp), %rax
movl 0x1ec(%rax), %ecx
movq -0x8(%rbp), %rax
movzwl %dx, %edx
movzwl 0x1f2(%rax), %r8d
callq 0xcdc0
movq $0x0, -0x18(%rbp)
leaq -0x18(%rbp), %rax
movq %rax, -0x10(%rbp)
jmp 0x4ec57
leaq -0x40(%rbp), %rsi
leaq 0x203c6(%rip), %rdi     # 0x6f028
callq 0xc030
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x20(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, (%rax)
movq -0x20(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x10(%rbp)
jmp 0x4ec95
movq -0x8(%rbp), %rax
cmpb $0x0, 0x1e5(%rax)
je 0x4ed11
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x1ab1e(%rip), %rsi     # 0x697ce
leaq -0x18(%rbp), %rdx
callq 0xc390
movw $0x0, -0x42(%rbp)
movzwl -0x42(%rbp), %eax
movq -0x8(%rbp), %rcx
movzwl 0x3b8(%rcx), %ecx
cmpl %ecx, %eax
jge 0x4ecfc
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x3b0(%rax), %rax
movzwl -0x42(%rbp), %ecx
movq (%rax,%rcx,8), %rsi
callq 0x5e0f0
movw -0x42(%rbp), %ax
addw $0x1, %ax
movw %ax, -0x42(%rbp)
jmp 0x4ecbf
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x1aac4(%rip), %rsi     # 0x697ce
callq 0xc060
jmp 0x4ed28
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x1aaaf(%rip), %rsi     # 0x697ce
leaq -0x18(%rbp), %rdx
callq 0xcca0
jmp 0x4ed2a
jmp 0x4ed2c
cmpq $0x0, -0x18(%rbp)
sete %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x4ed3c
jmp 0x4ed6e
movq -0x18(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rax
movq 0x1040(%rax), %rax
movq %rax, -0x18(%rbp)
cmpq $0x0, %rax
jne 0x4ed61
leaq -0x18(%rbp), %rax
movq %rax, -0x10(%rbp)
jmp 0x4ed63
movq -0x20(%rbp), %rdi
callq 0xc0d0
jmp 0x4ed2c
jmp 0x4ed70
addq $0x50, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/worksheet.c
// Function: worksheet_write_merge_cells
STATIC void
_worksheet_write_merge_cells(lxw_worksheet *self)
{
    struct xml_attribute_list attributes;
    struct xml_attribute *attribute;
    lxw_merged_range *merged_range;

    if (self->merged_range_count) {
        LXW_INIT_ATTRIBUTES();

        LXW_PUSH_ATTRIBUTES_INT("count", self->merged_range_count);

        lxw_xml_start_tag(self->file, "mergeCells", &attributes);

        STAILQ_FOREACH(merged_range, self->merged_ranges, list_pointers) {
            _worksheet_write_merge_cell(self, merged_range);
        }
        lxw_xml_end_tag(self->file, "mergeCells");

        LXW_FREE_ATTRIBUTES();
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
cmpw $0x0, 0x1f4(%rax)
je 0x4ee9c
jmp 0x4eda0
movq $0x0, -0x18(%rbp)
leaq -0x18(%rbp), %rax
movq %rax, -0x10(%rbp)
jmp 0x4edb2
movq -0x8(%rbp), %rax
movzwl 0x1f4(%rax), %eax
movl %eax, %esi
leaq 0x19b4f(%rip), %rdi     # 0x68915
callq 0xc1b0
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x20(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, (%rax)
movq -0x20(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x10(%rbp)
jmp 0x4edf9
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x1f909(%rip), %rsi     # 0x6e710
leaq -0x18(%rbp), %rdx
callq 0xc390
movq -0x8(%rbp), %rax
movq 0x40(%rax), %rax
movq (%rax), %rax
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
je 0x4ee41
movq -0x8(%rbp), %rdi
movq -0x28(%rbp), %rsi
callq 0x5ea60
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x28(%rbp)
jmp 0x4ee1f
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x1f8c1(%rip), %rsi     # 0x6e710
callq 0xc060
jmp 0x4ee56
cmpq $0x0, -0x18(%rbp)
sete %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x4ee66
jmp 0x4ee98
movq -0x18(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rax
movq 0x1040(%rax), %rax
movq %rax, -0x18(%rbp)
cmpq $0x0, %rax
jne 0x4ee8b
leaq -0x18(%rbp), %rax
movq %rax, -0x10(%rbp)
jmp 0x4ee8d
movq -0x20(%rbp), %rdi
callq 0xc0d0
jmp 0x4ee56
jmp 0x4ee9a
jmp 0x4ee9c
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/worksheet.c
// Function: worksheet_write_conditional_formats
STATIC void
_worksheet_write_conditional_formats(lxw_worksheet *self)
{
    lxw_cond_format_hash_element *element;
    lxw_cond_format_hash_element *next_element;

    for (element = RB_MIN(lxw_cond_format_hash, self->conditional_formats);
         element; element = next_element) {

        _worksheet_write_conditional_formatting(self, element);

        next_element =
            RB_NEXT(lxw_cond_format_hash, self->conditional_formats, element);
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq 0x58(%rax), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x46ef0
movq %rax, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
je 0x4eefd
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x5eb50
movq -0x10(%rbp), %rdi
callq 0x46f50
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rax
movq %rax, -0x10(%rbp)
jmp 0x4eed2
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/worksheet.c
// Function: worksheet_write_data_validations
STATIC void
_worksheet_write_data_validations(lxw_worksheet *self)
{
    struct xml_attribute_list attributes;
    struct xml_attribute *attribute;
    lxw_data_val_obj *data_validation;

    if (self->num_validations == 0)
        return;

    LXW_INIT_ATTRIBUTES();
    LXW_PUSH_ATTRIBUTES_INT("count", self->num_validations);

    lxw_xml_start_tag(self->file, "dataValidations", &attributes);

    STAILQ_FOREACH(data_validation, self->data_validations, list_pointers) {
        /* Write the dataValidation element. */
        _worksheet_write_data_validation(self, data_validation);
    }

    lxw_xml_end_tag(self->file, "dataValidations");

    LXW_FREE_ATTRIBUTES();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movzbl 0x150(%rax), %eax
cmpl $0x0, %eax
jne 0x4ef31
jmp 0x4f030
jmp 0x4ef33
movq $0x0, -0x18(%rbp)
leaq -0x18(%rbp), %rax
movq %rax, -0x10(%rbp)
jmp 0x4ef45
movq -0x8(%rbp), %rax
movzbl 0x150(%rax), %eax
movl %eax, %esi
leaq 0x199bc(%rip), %rdi     # 0x68915
callq 0xc1b0
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x20(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, (%rax)
movq -0x20(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x10(%rbp)
jmp 0x4ef8c
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x1fcb1(%rip), %rsi     # 0x6ec4b
leaq -0x18(%rbp), %rdx
callq 0xc390
movq -0x8(%rbp), %rax
movq 0x50(%rax), %rax
movq (%rax), %rax
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
je 0x4efd7
movq -0x8(%rbp), %rdi
movq -0x28(%rbp), %rsi
callq 0x61af0
movq -0x28(%rbp), %rax
movq 0xc0(%rax), %rax
movq %rax, -0x28(%rbp)
jmp 0x4efb2
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x1fc66(%rip), %rsi     # 0x6ec4b
callq 0xc060
jmp 0x4efec
cmpq $0x0, -0x18(%rbp)
sete %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x4effc
jmp 0x4f02e
movq -0x18(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rax
movq 0x1040(%rax), %rax
movq %rax, -0x18(%rbp)
cmpq $0x0, %rax
jne 0x4f021
leaq -0x18(%rbp), %rax
movq %rax, -0x10(%rbp)
jmp 0x4f023
movq -0x20(%rbp), %rdi
callq 0xc0d0
jmp 0x4efec
jmp 0x4f030
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/worksheet.c
// Function: worksheet_write_row_breaks
STATIC void
_worksheet_write_row_breaks(lxw_worksheet *self)
{
    struct xml_attribute_list attributes;
    struct xml_attribute *attribute;
    uint16_t count = self->hbreaks_count;
    uint16_t i;

    if (!count)
        return;

    LXW_INIT_ATTRIBUTES();
    LXW_PUSH_ATTRIBUTES_INT("count", count);
    LXW_PUSH_ATTRIBUTES_INT("manualBreakCount", count);

    lxw_xml_start_tag(self->file, "rowBreaks", &attributes);

    for (i = 0; i < count; i++)
        _worksheet_write_brk(self, self->hbreaks[i], LXW_COL_MAX - 1);

    lxw_xml_end_tag(self->file, "rowBreaks");

    LXW_FREE_ATTRIBUTES();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movw 0x208(%rax), %ax
movw %ax, -0x22(%rbp)
cmpw $0x0, -0x22(%rbp)
jne 0x4f557
jmp 0x4f69d
jmp 0x4f559
movq $0x0, -0x18(%rbp)
leaq -0x18(%rbp), %rax
movq %rax, -0x10(%rbp)
jmp 0x4f56b
movzwl -0x22(%rbp), %eax
movl %eax, %esi
leaq 0x1939d(%rip), %rdi     # 0x68915
callq 0xc1b0
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x20(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, (%rax)
movq -0x20(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x10(%rbp)
jmp 0x4f5ab
jmp 0x4f5ad
movzwl -0x22(%rbp), %eax
movl %eax, %esi
leaq 0x1f7c9(%rip), %rdi     # 0x6ed83
callq 0xc1b0
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x20(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, (%rax)
movq -0x20(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x10(%rbp)
jmp 0x4f5ed
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x1f799(%rip), %rsi     # 0x6ed94
leaq -0x18(%rbp), %rdx
callq 0xc390
movw $0x0, -0x24(%rbp)
movzwl -0x24(%rbp), %eax
movzwl -0x22(%rbp), %ecx
cmpl %ecx, %eax
jge 0x4f644
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x1f8(%rax), %rax
movzwl -0x24(%rbp), %ecx
movl (%rax,%rcx,4), %esi
movl $0x3fff, %edx           # imm = 0x3FFF
callq 0x62920
movw -0x24(%rbp), %ax
addw $0x1, %ax
movw %ax, -0x24(%rbp)
jmp 0x4f60a
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x1f742(%rip), %rsi     # 0x6ed94
callq 0xc060
jmp 0x4f659
cmpq $0x0, -0x18(%rbp)
sete %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x4f669
jmp 0x4f69b
movq -0x18(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rax
movq 0x1040(%rax), %rax
movq %rax, -0x18(%rbp)
cmpq $0x0, %rax
jne 0x4f68e
leaq -0x18(%rbp), %rax
movq %rax, -0x10(%rbp)
jmp 0x4f690
movq -0x20(%rbp), %rdi
callq 0xc0d0
jmp 0x4f659
jmp 0x4f69d
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/worksheet.c
// Function: worksheet_write_col_breaks
STATIC void
_worksheet_write_col_breaks(lxw_worksheet *self)
{
    struct xml_attribute_list attributes;
    struct xml_attribute *attribute;
    uint16_t count = self->vbreaks_count;
    uint16_t i;

    if (!count)
        return;

    LXW_INIT_ATTRIBUTES();
    LXW_PUSH_ATTRIBUTES_INT("count", count);
    LXW_PUSH_ATTRIBUTES_INT("manualBreakCount", count);

    lxw_xml_start_tag(self->file, "colBreaks", &attributes);

    for (i = 0; i < count; i++)
        _worksheet_write_brk(self, self->vbreaks[i], LXW_ROW_MAX - 1);

    lxw_xml_end_tag(self->file, "colBreaks");

    LXW_FREE_ATTRIBUTES();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movw 0x20a(%rax), %ax
movw %ax, -0x22(%rbp)
cmpw $0x0, -0x22(%rbp)
jne 0x4f6d7
jmp 0x4f81e
jmp 0x4f6d9
movq $0x0, -0x18(%rbp)
leaq -0x18(%rbp), %rax
movq %rax, -0x10(%rbp)
jmp 0x4f6eb
movzwl -0x22(%rbp), %eax
movl %eax, %esi
leaq 0x1921d(%rip), %rdi     # 0x68915
callq 0xc1b0
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x20(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, (%rax)
movq -0x20(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x10(%rbp)
jmp 0x4f72b
jmp 0x4f72d
movzwl -0x22(%rbp), %eax
movl %eax, %esi
leaq 0x1f649(%rip), %rdi     # 0x6ed83
callq 0xc1b0
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x20(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, (%rax)
movq -0x20(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x10(%rbp)
jmp 0x4f76d
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x1f62b(%rip), %rsi     # 0x6eda6
leaq -0x18(%rbp), %rdx
callq 0xc390
movw $0x0, -0x24(%rbp)
movzwl -0x24(%rbp), %eax
movzwl -0x22(%rbp), %ecx
cmpl %ecx, %eax
jge 0x4f7c5
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0x200(%rax), %rax
movzwl -0x24(%rbp), %ecx
movzwl (%rax,%rcx,2), %esi
movl $0xfffff, %edx          # imm = 0xFFFFF
callq 0x62920
movw -0x24(%rbp), %ax
addw $0x1, %ax
movw %ax, -0x24(%rbp)
jmp 0x4f78a
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x1f5d3(%rip), %rsi     # 0x6eda6
callq 0xc060
jmp 0x4f7da
cmpq $0x0, -0x18(%rbp)
sete %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x4f7ea
jmp 0x4f81c
movq -0x18(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rax
movq 0x1040(%rax), %rax
movq %rax, -0x18(%rbp)
cmpq $0x0, %rax
jne 0x4f80f
leaq -0x18(%rbp), %rax
movq %rax, -0x10(%rbp)
jmp 0x4f811
movq -0x20(%rbp), %rdi
callq 0xc0d0
jmp 0x4f7da
jmp 0x4f81e
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/worksheet.c
// Function: worksheet_write_legacy_drawing
STATIC void
_worksheet_write_legacy_drawing(lxw_worksheet *self)
{
    struct xml_attribute_list attributes;
    struct xml_attribute *attribute;
    char r_id[LXW_MAX_ATTRIBUTE_LENGTH];

    if (!self->has_vml)
        return;
    else
        self->rel_count++;

    lxw_snprintf(r_id, LXW_ATTR_32, "rId%d", self->rel_count);
    LXW_INIT_ATTRIBUTES();
    LXW_PUSH_ATTRIBUTES_STR("r:id", r_id);

    lxw_xml_empty_tag(self->file, "legacyDrawing", &attributes);

    LXW_FREE_ATTRIBUTES();

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x840, %rsp            # imm = 0x840
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
cmpb $0x0, 0x2a0(%rax)
jne 0x4fa11
jmp 0x4fafc
movq -0x8(%rbp), %rax
movw 0x134(%rax), %cx
addw $0x1, %cx
movw %cx, 0x134(%rax)
leaq -0x840(%rbp), %rdi
movq -0x8(%rbp), %rax
movzwl 0x134(%rax), %ecx
movl $0x20, %esi
leaq 0x18b74(%rip), %rdx     # 0x685b9
movb $0x0, %al
callq 0xc5d0
movq $0x0, -0x18(%rbp)
leaq -0x18(%rbp), %rax
movq %rax, -0x10(%rbp)
jmp 0x4fa5e
leaq -0x840(%rbp), %rsi
leaq 0x18b53(%rip), %rdi     # 0x685bf
callq 0xc030
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x20(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, (%rax)
movq -0x20(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x10(%rbp)
jmp 0x4fa9f
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x1f3a0(%rip), %rsi     # 0x6ee4d
leaq -0x18(%rbp), %rdx
callq 0xcca0
jmp 0x4fab8
cmpq $0x0, -0x18(%rbp)
sete %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x4fac8
jmp 0x4fafa
movq -0x18(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rax
movq 0x1040(%rax), %rax
movq %rax, -0x18(%rbp)
cmpq $0x0, %rax
jne 0x4faed
leaq -0x18(%rbp), %rax
movq %rax, -0x10(%rbp)
jmp 0x4faef
movq -0x20(%rbp), %rdi
callq 0xc0d0
jmp 0x4fab8
jmp 0x4fafc
addq $0x840, %rsp            # imm = 0x840
popq %rbp
retq
nopw %cs:(%rax,%rax)