LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/worksheet.c
// Function: worksheet_repeat_columns
lxw_error
worksheet_repeat_columns(lxw_worksheet *self, lxw_col_t first_col,
                         lxw_col_t last_col)
{
    lxw_col_t tmp_col;
    lxw_error err;

    if (first_col > last_col) {
        tmp_col = last_col;
        last_col = first_col;
        first_col = tmp_col;
    }

    err = _check_dimensions(self, last_col, 0, LXW_IGNORE, LXW_IGNORE);
    if (err)
        return err;

    self->repeat_cols.in_use = LXW_TRUE;
    self->repeat_cols.first_col = first_col;
    self->repeat_cols.last_col = last_col;

    return LXW_NO_ERROR;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movw %dx, %ax
movw %si, %cx
movq %rdi, -0x10(%rbp)
movw %cx, -0x12(%rbp)
movw %ax, -0x14(%rbp)
movzwl -0x12(%rbp), %eax
movzwl -0x14(%rbp), %ecx
cmpl %ecx, %eax
jle 0x5491e
movw -0x14(%rbp), %ax
movw %ax, -0x16(%rbp)
movw -0x12(%rbp), %ax
movw %ax, -0x14(%rbp)
movw -0x16(%rbp), %ax
movw %ax, -0x12(%rbp)
movq -0x10(%rbp), %rdi
movzwl -0x14(%rbp), %esi
xorl %edx, %edx
movl $0x1, %r8d
movl %r8d, %ecx
callq 0x4ff90
movl %eax, -0x1c(%rbp)
cmpl $0x0, -0x1c(%rbp)
je 0x54947
movl -0x1c(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x54977
movq -0x10(%rbp), %rax
movb $0x1, 0x1cc(%rax)
movw -0x12(%rbp), %cx
movq -0x10(%rbp), %rax
movw %cx, 0x1ce(%rax)
movw -0x14(%rbp), %cx
movq -0x10(%rbp), %rax
movw %cx, 0x1d0(%rax)
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/worksheet.c
// Function: worksheet_print_area
lxw_error
worksheet_print_area(lxw_worksheet *self, lxw_row_t first_row,
                     lxw_col_t first_col, lxw_row_t last_row,
                     lxw_col_t last_col)
{
    lxw_row_t tmp_row;
    lxw_col_t tmp_col;
    lxw_error err;

    if (first_row > last_row) {
        tmp_row = last_row;
        last_row = first_row;
        first_row = tmp_row;
    }

    if (first_col > last_col) {
        tmp_col = last_col;
        last_col = first_col;
        first_col = tmp_col;
    }

    err = _check_dimensions(self, last_row, last_col, LXW_IGNORE, LXW_IGNORE);
    if (err)
        return err;

    /* Ignore max area since it is the same as no print area in Excel. */
    if (first_row == 0 && first_col == 0 && last_row == LXW_ROW_MAX - 1
        && last_col == LXW_COL_MAX - 1) {
        return LXW_NO_ERROR;
    }

    self->print_area.in_use = LXW_TRUE;
    self->print_area.first_row = first_row;
    self->print_area.last_row = last_row;
    self->print_area.first_col = first_col;
    self->print_area.last_col = last_col;

    return LXW_NO_ERROR;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movw %r8w, %ax
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movw %dx, -0x16(%rbp)
movl %ecx, -0x1c(%rbp)
movw %ax, -0x1e(%rbp)
movl -0x14(%rbp), %eax
cmpl -0x1c(%rbp), %eax
jbe 0x549b8
movl -0x1c(%rbp), %eax
movl %eax, -0x24(%rbp)
movl -0x14(%rbp), %eax
movl %eax, -0x1c(%rbp)
movl -0x24(%rbp), %eax
movl %eax, -0x14(%rbp)
movzwl -0x16(%rbp), %eax
movzwl -0x1e(%rbp), %ecx
cmpl %ecx, %eax
jle 0x549dc
movw -0x1e(%rbp), %ax
movw %ax, -0x26(%rbp)
movw -0x16(%rbp), %ax
movw %ax, -0x1e(%rbp)
movw -0x26(%rbp), %ax
movw %ax, -0x16(%rbp)
movq -0x10(%rbp), %rdi
movl -0x1c(%rbp), %esi
movl $0x1, %r8d
movzwl -0x1e(%rbp), %edx
movl %r8d, %ecx
callq 0x4ff90
movl %eax, -0x2c(%rbp)
cmpl $0x0, -0x2c(%rbp)
je 0x54a06
movl -0x2c(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x54a7c
cmpl $0x0, -0x14(%rbp)
jne 0x54a32
movzwl -0x16(%rbp), %eax
cmpl $0x0, %eax
jne 0x54a32
cmpl $0xfffff, -0x1c(%rbp)   # imm = 0xFFFFF
jne 0x54a32
movzwl -0x1e(%rbp), %eax
cmpl $0x3fff, %eax           # imm = 0x3FFF
jne 0x54a32
movl $0x0, -0x4(%rbp)
jmp 0x54a7c
movq -0x10(%rbp), %rax
movb $0x1, 0x1d4(%rax)
movl -0x14(%rbp), %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x1d8(%rax)
movl -0x1c(%rbp), %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x1dc(%rax)
movw -0x16(%rbp), %cx
movq -0x10(%rbp), %rax
movw %cx, 0x1e0(%rax)
movw -0x1e(%rbp), %cx
movq -0x10(%rbp), %rax
movw %cx, 0x1e2(%rax)
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
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_fit_to_pages
void
worksheet_fit_to_pages(lxw_worksheet *self, uint16_t width, uint16_t height)
{
    self->fit_page = 1;
    self->fit_width = width;
    self->fit_height = height;
    self->page_setup_changed = 1;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movw %dx, %ax
movw %si, %cx
movq %rdi, -0x8(%rbp)
movw %cx, -0xa(%rbp)
movw %ax, -0xc(%rbp)
movq -0x8(%rbp), %rax
movb $0x1, 0x13b(%rax)
movw -0xa(%rbp), %cx
movq -0x8(%rbp), %rax
movw %cx, 0x12a(%rax)
movw -0xc(%rbp), %cx
movq -0x8(%rbp), %rax
movw %cx, 0x128(%rax)
movq -0x8(%rbp), %rax
movb $0x1, 0x144(%rax)
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/worksheet.c
// Function: worksheet_set_print_scale
void
worksheet_set_print_scale(lxw_worksheet *self, uint16_t scale)
{
    /* Confine the scale to Excel"s range */
    if (scale < 10 || scale > 400)
        return;

    /* Turn off "fit to page" option. */
    self->fit_page = LXW_FALSE;

    self->print_scale = scale;
    self->page_setup_changed = LXW_TRUE;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movw %si, %ax
movq %rdi, -0x8(%rbp)
movw %ax, -0xa(%rbp)
movzwl -0xa(%rbp), %eax
cmpl $0xa, %eax
jl 0x54b23
movzwl -0xa(%rbp), %eax
cmpl $0x190, %eax            # imm = 0x190
jle 0x54b25
jmp 0x54b4a
movq -0x8(%rbp), %rax
movb $0x0, 0x13b(%rax)
movw -0xa(%rbp), %cx
movq -0x8(%rbp), %rax
movw %cx, 0x132(%rax)
movq -0x8(%rbp), %rax
movb $0x1, 0x144(%rax)
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/worksheet.c
// Function: worksheet_set_h_pagebreaks
lxw_error
worksheet_set_h_pagebreaks(lxw_worksheet *self, lxw_row_t hbreaks[])
{
    uint16_t count = 0;

    if (hbreaks == NULL)
        return LXW_ERROR_NULL_PARAMETER_IGNORED;

    while (hbreaks[count])
        count++;

    /* The Excel 2007 specification says that the maximum number of page
     * breaks is 1026. However, in practice it is actually 1023. */
    if (count > LXW_BREAKS_MAX)
        count = LXW_BREAKS_MAX;

    self->hbreaks = calloc(count, sizeof(lxw_row_t));
    RETURN_ON_MEM_ERROR(self->hbreaks, LXW_ERROR_MEMORY_MALLOC_FAILED);
    memcpy(self->hbreaks, hbreaks, count * sizeof(lxw_row_t));
    self->hbreaks_count = count;

    return LXW_NO_ERROR;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movw $0x0, -0x1a(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0x54b99
movl $0xc, -0x4(%rbp)
jmp 0x54c57
jmp 0x54b9b
movq -0x18(%rbp), %rax
movzwl -0x1a(%rbp), %ecx
cmpl $0x0, (%rax,%rcx,4)
je 0x54bb7
movw -0x1a(%rbp), %ax
addw $0x1, %ax
movw %ax, -0x1a(%rbp)
jmp 0x54b9b
movzwl -0x1a(%rbp), %eax
cmpl $0x3ff, %eax            # imm = 0x3FF
jle 0x54bc8
movw $0x3ff, -0x1a(%rbp)     # imm = 0x3FF
movzwl -0x1a(%rbp), %eax
movl %eax, %edi
movl $0x4, %esi
callq 0xc870
movq %rax, %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x1f8(%rax)
movq -0x10(%rbp), %rax
cmpq $0x0, 0x1f8(%rax)
jne 0x54c21
movq 0x283fd(%rip), %rax     # 0x7cff8
movq (%rax), %rdi
leaq 0x114cb(%rip), %rsi     # 0x660d0
leaq 0x177e8(%rip), %rdx     # 0x6c3f4
movl $0x277f, %ecx           # imm = 0x277F
movb $0x0, %al
callq 0xc8f0
movl $0x1, -0x4(%rbp)
jmp 0x54c57
jmp 0x54c23
movq -0x10(%rbp), %rax
movq 0x1f8(%rax), %rdi
movq -0x18(%rbp), %rsi
movzwl -0x1a(%rbp), %eax
movl %eax, %edx
shlq $0x2, %rdx
callq 0xc980
movw -0x1a(%rbp), %cx
movq -0x10(%rbp), %rax
movw %cx, 0x208(%rax)
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/worksheet.c
// Function: worksheet_set_v_pagebreaks
lxw_error
worksheet_set_v_pagebreaks(lxw_worksheet *self, lxw_col_t vbreaks[])
{
    uint16_t count = 0;

    if (vbreaks == NULL)
        return LXW_ERROR_NULL_PARAMETER_IGNORED;

    while (vbreaks[count])
        count++;

    /* The Excel 2007 specification says that the maximum number of page
     * breaks is 1026. However, in practice it is actually 1023. */
    if (count > LXW_BREAKS_MAX)
        count = LXW_BREAKS_MAX;

    self->vbreaks = calloc(count, sizeof(lxw_col_t));
    RETURN_ON_MEM_ERROR(self->vbreaks, LXW_ERROR_MEMORY_MALLOC_FAILED);
    memcpy(self->vbreaks, vbreaks, count * sizeof(lxw_col_t));
    self->vbreaks_count = count;

    return LXW_NO_ERROR;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movw $0x0, -0x1a(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0x54c89
movl $0xc, -0x4(%rbp)
jmp 0x54d47
jmp 0x54c8b
movq -0x18(%rbp), %rax
movzwl -0x1a(%rbp), %ecx
cmpw $0x0, (%rax,%rcx,2)
je 0x54ca8
movw -0x1a(%rbp), %ax
addw $0x1, %ax
movw %ax, -0x1a(%rbp)
jmp 0x54c8b
movzwl -0x1a(%rbp), %eax
cmpl $0x3ff, %eax            # imm = 0x3FF
jle 0x54cb9
movw $0x3ff, -0x1a(%rbp)     # imm = 0x3FF
movzwl -0x1a(%rbp), %eax
movl %eax, %edi
movl $0x2, %esi
callq 0xc870
movq %rax, %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x200(%rax)
movq -0x10(%rbp), %rax
cmpq $0x0, 0x200(%rax)
jne 0x54d12
movq 0x2830c(%rip), %rax     # 0x7cff8
movq (%rax), %rdi
leaq 0x113da(%rip), %rsi     # 0x660d0
leaq 0x176f7(%rip), %rdx     # 0x6c3f4
movl $0x279a, %ecx           # imm = 0x279A
movb $0x0, %al
callq 0xc8f0
movl $0x1, -0x4(%rbp)
jmp 0x54d47
jmp 0x54d14
movq -0x10(%rbp), %rax
movq 0x200(%rax), %rdi
movq -0x18(%rbp), %rsi
movzwl -0x1a(%rbp), %eax
movl %eax, %edx
shlq %rdx
callq 0xc980
movw -0x1a(%rbp), %cx
movq -0x10(%rbp), %rax
movw %cx, 0x20a(%rax)
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/worksheet.c
// Function: worksheet_set_zoom
void
worksheet_set_zoom(lxw_worksheet *self, uint16_t scale)
{
    /* Confine the scale to Excel"s range */
    if (scale < 10 || scale > 400) {
        LXW_WARN("worksheet_set_zoom(): "
                 "Zoom factor scale outside range: 10 <= zoom <= 400.");
        return;
    }

    self->zoom = scale;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movw %si, %ax
movq %rdi, -0x8(%rbp)
movw %ax, -0xa(%rbp)
movzwl -0xa(%rbp), %eax
cmpl $0xa, %eax
jl 0x54d77
movzwl -0xa(%rbp), %eax
cmpl $0x190, %eax            # imm = 0x190
jle 0x54d91
movq 0x2827a(%rip), %rax     # 0x7cff8
movq (%rax), %rdi
leaq 0x188c9(%rip), %rsi     # 0x6d651
movb $0x0, %al
callq 0xc8f0
jmp 0x54da0
movw -0xa(%rbp), %cx
movq -0x8(%rbp), %rax
movw %cx, 0x138(%rax)
addq $0x10, %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_outline_settings
void
worksheet_outline_settings(lxw_worksheet *self,
                           uint8_t visible,
                           uint8_t symbols_below,
                           uint8_t symbols_right, uint8_t auto_style)
{
    self->outline_on = visible;
    self->outline_below = symbols_below;
    self->outline_right = symbols_right;
    self->outline_style = auto_style;

    self->outline_changed = LXW_TRUE;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movb %r8b, %al
movq %rdi, -0x8(%rbp)
movb %sil, -0x9(%rbp)
movb %dl, -0xa(%rbp)
movb %cl, -0xb(%rbp)
movb %al, -0xc(%rbp)
movb -0x9(%rbp), %cl
movq -0x8(%rbp), %rax
movb %cl, 0x13f(%rax)
movb -0xa(%rbp), %cl
movq -0x8(%rbp), %rax
movb %cl, 0x141(%rax)
movb -0xb(%rbp), %cl
movq -0x8(%rbp), %rax
movb %cl, 0x142(%rax)
movb -0xc(%rbp), %cl
movq -0x8(%rbp), %rax
movb %cl, 0x140(%rax)
movq -0x8(%rbp), %rax
movb $0x1, 0x13e(%rax)
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/worksheet.c
// Function: worksheet_set_default_row
void
worksheet_set_default_row(lxw_worksheet *self, double height,
                          uint8_t hide_unused_rows)
{
    if (height < 0)
        height = self->default_row_height;

    if (height != self->default_row_height) {
        self->default_row_height = height;
        self->row_size_changed = LXW_TRUE;
    }

    if (hide_unused_rows)
        self->default_row_zeroed = LXW_TRUE;

    self->default_row_set = LXW_TRUE;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movb %sil, %al
movq %rdi, -0x8(%rbp)
movsd %xmm0, -0x10(%rbp)
movb %al, -0x11(%rbp)
xorps %xmm0, %xmm0
ucomisd -0x10(%rbp), %xmm0
jbe 0x54fee
movq -0x8(%rbp), %rax
movsd 0x198(%rax), %xmm0
movsd %xmm0, -0x10(%rbp)
movsd -0x10(%rbp), %xmm0
movq -0x8(%rbp), %rax
ucomisd 0x198(%rax), %xmm0
jne 0x55005
jp 0x55005
jmp 0x55021
movsd -0x10(%rbp), %xmm0
movq -0x8(%rbp), %rax
movsd %xmm0, 0x198(%rax)
movq -0x8(%rbp), %rax
movb $0x1, 0x11b(%rax)
cmpb $0x0, -0x11(%rbp)
je 0x55032
movq -0x8(%rbp), %rax
movb $0x1, 0x1a8(%rax)
movq -0x8(%rbp), %rax
movb $0x1, 0x1a9(%rax)
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/worksheet.c
// Function: worksheet_set_background
lxw_error
worksheet_set_background(lxw_worksheet *self, const char *filename)
{
    FILE *image_stream;
    lxw_object_properties *object_props;

    if (!filename) {
        LXW_WARN("worksheet_set_background(): "
                 "filename must be specified.");
        return LXW_ERROR_NULL_PARAMETER_IGNORED;
    }

    /* Check that the image file exists and can be opened. */
    image_stream = lxw_fopen(filename, "rb");
    if (!image_stream) {
        LXW_WARN_FORMAT1("worksheet_set_background(): "
                         "file doesn't exist or can't be opened: %s.",
                         filename);
        return LXW_ERROR_PARAMETER_VALIDATION;
    }

    /* Create a new object to hold the image properties. */
    object_props = calloc(1, sizeof(lxw_object_properties));
    if (!object_props) {
        fclose(image_stream);
        return LXW_ERROR_MEMORY_MALLOC_FAILED;
    }

    /* Copy other options or set defaults. */
    object_props->filename = lxw_strdup(filename);
    object_props->stream = image_stream;
    object_props->is_background = LXW_TRUE;

    if (_get_image_properties(object_props) == LXW_NO_ERROR) {
        _free_object_properties(self->background_image);
        self->background_image = object_props;
        self->has_background_image = LXW_TRUE;
        fclose(image_stream);
        return LXW_NO_ERROR;
    }
    else {
        _free_object_properties(object_props);
        fclose(image_stream);
        return LXW_ERROR_IMAGE_DIMENSIONS;
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0x556db
movq 0x2793a(%rip), %rax     # 0x7cff8
movq (%rax), %rdi
leaq 0x18129(%rip), %rsi     # 0x6d7f1
movb $0x0, %al
callq 0xc8f0
movl $0xc, -0x4(%rbp)
jmp 0x557db
movq -0x18(%rbp), %rdi
leaq 0x1091a(%rip), %rsi     # 0x66000
callq 0xc280
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
jne 0x5571e
movq 0x278fb(%rip), %rax     # 0x7cff8
movq (%rax), %rdi
movq -0x18(%rbp), %rdx
leaq 0x1812a(%rip), %rsi     # 0x6d835
movb $0x0, %al
callq 0xc8f0
movl $0xd, -0x4(%rbp)
jmp 0x557db
movl $0x1, %edi
movl $0xc0, %esi
callq 0xc870
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
jne 0x5574d
movq -0x20(%rbp), %rdi
callq 0xc460
movl $0x1, -0x4(%rbp)
jmp 0x557db
movq -0x18(%rbp), %rdi
callq 0xcd80
movq %rax, %rcx
movq -0x28(%rbp), %rax
movq %rcx, 0x20(%rax)
movq -0x20(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, 0x48(%rax)
movq -0x28(%rbp), %rax
movb $0x1, 0x99(%rax)
movq -0x28(%rbp), %rdi
callq 0x4c4c0
cmpl $0x0, %eax
jne 0x557c2
movq -0x10(%rbp), %rax
movq 0x3a8(%rax), %rdi
callq 0x46550
movq -0x28(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x3a8(%rax)
movq -0x10(%rbp), %rax
movb $0x1, 0x2a3(%rax)
movq -0x20(%rbp), %rdi
callq 0xc460
movl $0x0, -0x4(%rbp)
jmp 0x557db
movq -0x28(%rbp), %rdi
callq 0x46550
movq -0x20(%rbp), %rdi
callq 0xc460
movl $0x1a, -0x4(%rbp)
movl -0x4(%rbp), %eax
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_insert_button
lxw_error
worksheet_insert_button(lxw_worksheet *self, lxw_row_t row_num,
                        lxw_col_t col_num, lxw_button_options *options)
{
    lxw_error err;
    lxw_vml_obj *button;

    err = _check_dimensions(self, row_num, col_num, LXW_TRUE, LXW_TRUE);
    if (err)
        return err;

    button = calloc(1, sizeof(lxw_vml_obj));
    GOTO_LABEL_ON_MEM_ERROR(button, mem_error);

    button->row = row_num;
    button->col = col_num;

    /* Set user and default parameters for the button. */
    err = _get_button_params(button, 1 + self->num_buttons, options);
    if (err)
        goto mem_error;

    /* Calculate the worksheet position of the button. */
    _worksheet_position_vml_object(self, button);

    self->has_vml = LXW_TRUE;
    self->has_buttons = LXW_TRUE;
    self->num_buttons++;

    STAILQ_INSERT_TAIL(self->button_objs, button, list_pointers);

    return LXW_NO_ERROR;

mem_error:
    if (button)
        _free_vml_object(button);

    return LXW_ERROR_MEMORY_MALLOC_FAILED;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movw %dx, %ax
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movw %ax, -0x16(%rbp)
movq %rcx, -0x20(%rbp)
movq -0x10(%rbp), %rdi
movl -0x14(%rbp), %esi
movl $0x1, %r8d
movzwl -0x16(%rbp), %edx
movl %r8d, %ecx
callq 0x4ff90
movl %eax, -0x24(%rbp)
cmpl $0x0, -0x24(%rbp)
je 0x56bf7
movl -0x24(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x56d15
movl $0x1, %edi
movl $0xc0, %esi
callq 0xc870
movq %rax, -0x30(%rbp)
cmpq $0x0, -0x30(%rbp)
jne 0x56c3a
movq 0x263e0(%rip), %rax     # 0x7cff8
movq (%rax), %rdi
leaq 0xf4ae(%rip), %rsi      # 0x660d0
leaq 0x157cb(%rip), %rdx     # 0x6c3f4
movl $0x2ba7, %ecx           # imm = 0x2BA7
movb $0x0, %al
callq 0xc8f0
jmp 0x56cfe
jmp 0x56c3c
movl -0x14(%rbp), %ecx
movq -0x30(%rbp), %rax
movl %ecx, (%rax)
movw -0x16(%rbp), %cx
movq -0x30(%rbp), %rax
movw %cx, 0x4(%rax)
movq -0x30(%rbp), %rdi
movq -0x10(%rbp), %rax
movzwl 0x160(%rax), %eax
addl $0x1, %eax
movq -0x20(%rbp), %rdx
movzwl %ax, %esi
callq 0xc3a0
movl %eax, -0x24(%rbp)
cmpl $0x0, -0x24(%rbp)
je 0x56c7d
jmp 0x56cfe
movq -0x10(%rbp), %rdi
movq -0x30(%rbp), %rsi
callq 0xcc70
movq -0x10(%rbp), %rax
movb $0x1, 0x2a0(%rax)
movq -0x10(%rbp), %rax
movb $0x1, 0x2a4(%rax)
movq -0x10(%rbp), %rax
movw 0x160(%rax), %cx
addw $0x1, %cx
movw %cx, 0x160(%rax)
movq -0x30(%rbp), %rax
movq $0x0, 0xb8(%rax)
movq -0x30(%rbp), %rcx
movq -0x10(%rbp), %rax
movq 0x90(%rax), %rax
movq 0x8(%rax), %rax
movq %rcx, (%rax)
movq -0x30(%rbp), %rcx
addq $0xb8, %rcx
movq -0x10(%rbp), %rax
movq 0x90(%rax), %rax
movq %rcx, 0x8(%rax)
movl $0x0, -0x4(%rbp)
jmp 0x56d15
cmpq $0x0, -0x30(%rbp)
je 0x56d0e
movq -0x30(%rbp), %rdi
callq 0x465f0
movl $0x1, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x30, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/worksheet.c
// Function: worksheet_set_vba_name
lxw_error
worksheet_set_vba_name(lxw_worksheet *self, const char *name)
{
    if (!name) {
        LXW_WARN("worksheet_set_vba_name(): " "name must be specified.");
        return LXW_ERROR_NULL_PARAMETER_IGNORED;
    }

    self->vba_codename = lxw_strdup(name);

    return LXW_NO_ERROR;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0x56d58
movq 0x262ba(%rip), %rax     # 0x7cff8
movq (%rax), %rdi
leaq 0x171da(%rip), %rsi     # 0x6df22
movb $0x0, %al
callq 0xc8f0
movl $0xc, -0x4(%rbp)
jmp 0x56d76
movq -0x18(%rbp), %rdi
callq 0xcd80
movq %rax, %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x158(%rax)
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/worksheet.c
// Function: row_cmp
STATIC int
_row_cmp(lxw_row *row1, lxw_row *row2)
{
    if (row1->row_num > row2->row_num)
        return 1;
    if (row1->row_num < row2->row_num)
        return -1;
    return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x10(%rbp), %rax
movl (%rax), %eax
movq -0x18(%rbp), %rcx
cmpl (%rcx), %eax
jbe 0x57073
movl $0x1, -0x4(%rbp)
jmp 0x57091
movq -0x10(%rbp), %rax
movl (%rax), %eax
movq -0x18(%rbp), %rcx
cmpl (%rcx), %eax
jae 0x5708a
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x57091
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/worksheet.c
// Function: cell_cmp
STATIC int
_cell_cmp(lxw_cell *cell1, lxw_cell *cell2)
{
    if (cell1->col_num > cell2->col_num)
        return 1;
    if (cell1->col_num < cell2->col_num)
        return -1;
    return 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x10(%rbp), %rax
movzwl 0x4(%rax), %eax
movq -0x18(%rbp), %rcx
movzwl 0x4(%rcx), %ecx
cmpl %ecx, %eax
jle 0x570c9
movl $0x1, -0x4(%rbp)
jmp 0x570ed
movq -0x10(%rbp), %rax
movzwl 0x4(%rax), %eax
movq -0x18(%rbp), %rcx
movzwl 0x4(%rcx), %ecx
cmpl %ecx, %eax
jge 0x570e6
movl $0xffffffff, -0x4(%rbp) # imm = 0xFFFFFFFF
jmp 0x570ed
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/worksheet.c
// Function: free_worksheet_table_column
STATIC void
_free_worksheet_table_column(lxw_table_column *column)
{
    if (!column)
        return;

    free((void *) column->header);
    free((void *) column->formula);
    free((void *) column->total_string);

    free(column);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
cmpq $0x0, -0x8(%rbp)
jne 0x581d5
jmp 0x58204
movq -0x8(%rbp), %rax
movq (%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rdi
callq 0xc0d0
addq $0x10, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/worksheet.c
// Function: worksheet_size_col
STATIC int32_t
_worksheet_size_col(lxw_worksheet *self, lxw_col_t col_num, uint8_t anchor)
{
    lxw_col_options *col_opt = NULL;
    uint32_t pixels;
    double width;
    double max_digit_width = 7.0;       /* For Calabri 11. */
    double padding = 5.0;
    lxw_col_t col_index;

    /* Search for the col number in the array of col_options. Each col_option
     * entry contains the start and end column for a range.
     */
    for (col_index = 0; col_index < self->col_options_max; col_index++) {
        col_opt = self->col_options[col_index];

        if (col_opt) {
            if (col_num >= col_opt->firstcol && col_num <= col_opt->lastcol)
                break;
            else
                col_opt = NULL;
        }
    }

    if (col_opt) {
        width = col_opt->width;

        /* Convert to pixels. */
        if (col_opt->hidden && anchor != LXW_OBJECT_MOVE_AND_SIZE_AFTER) {
            pixels = 0;
        }
        else if (width < 1.0) {
            pixels = (uint32_t) (width * (max_digit_width + padding) + 0.5);
        }
        else {
            pixels = (uint32_t) (width * max_digit_width + 0.5) + 5;
        }
    }
    else {
        pixels = self->default_col_pixels;
    }

    return pixels;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movb %dl, %al
movw %si, %cx
movq %rdi, -0x8(%rbp)
movw %cx, -0xa(%rbp)
movb %al, -0xb(%rbp)
movq $0x0, -0x18(%rbp)
movsd 0x12984(%rip), %xmm0    # 0x6c308
movsd %xmm0, -0x30(%rbp)
movsd 0x1296f(%rip), %xmm0    # 0x6c300
movsd %xmm0, -0x38(%rbp)
movw $0x0, -0x3a(%rbp)
movzwl -0x3a(%rbp), %eax
movq -0x8(%rbp), %rcx
movzwl 0xf8(%rcx), %ecx
cmpl %ecx, %eax
jge 0x59a08
movq -0x8(%rbp), %rax
movq 0xf0(%rax), %rax
movzwl -0x3a(%rbp), %ecx
movq (%rax,%rcx,8), %rax
movq %rax, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
je 0x599f8
movzwl -0xa(%rbp), %eax
movq -0x18(%rbp), %rcx
movzwl (%rcx), %ecx
cmpl %ecx, %eax
jl 0x599ee
movzwl -0xa(%rbp), %eax
movq -0x18(%rbp), %rcx
movzwl 0x2(%rcx), %ecx
cmpl %ecx, %eax
jg 0x599ee
jmp 0x59a08
movq $0x0, -0x18(%rbp)
jmp 0x599f8
jmp 0x599fa
movw -0x3a(%rbp), %ax
addw $0x1, %ax
movw %ax, -0x3a(%rbp)
jmp 0x5999c
cmpq $0x0, -0x18(%rbp)
je 0x59aa5
movq -0x18(%rbp), %rax
movsd 0x8(%rax), %xmm0
movsd %xmm0, -0x28(%rbp)
movq -0x18(%rbp), %rax
movzbl 0x18(%rax), %eax
cmpl $0x0, %eax
je 0x59a40
movzbl -0xb(%rbp), %eax
cmpl $0x4, %eax
je 0x59a40
movl $0x0, -0x1c(%rbp)
jmp 0x59aa3
movsd 0xe050(%rip), %xmm0     # 0x67a98
ucomisd -0x28(%rbp), %xmm0
jbe 0x59a7c
movsd -0x28(%rbp), %xmm0
movsd -0x30(%rbp), %xmm1
movsd -0x38(%rbp), %xmm2
addsd %xmm2, %xmm1
mulsd %xmm1, %xmm0
movsd 0xc8b2(%rip), %xmm1     # 0x66320
addsd %xmm1, %xmm0
cvttsd2si %xmm0, %rax
movl %eax, -0x1c(%rbp)
jmp 0x59aa1
movsd -0x28(%rbp), %xmm0
movsd -0x30(%rbp), %xmm1
mulsd %xmm1, %xmm0
movsd 0xc88e(%rip), %xmm1     # 0x66320
addsd %xmm1, %xmm0
cvttsd2si %xmm0, %rax
addl $0x5, %eax
movl %eax, -0x1c(%rbp)
jmp 0x59aa3
jmp 0x59ab2
movq -0x8(%rbp), %rax
movl 0x1a4(%rax), %eax
movl %eax, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/worksheet.c
// Function: worksheet_size_row
STATIC int32_t
_worksheet_size_row(lxw_worksheet *self, lxw_row_t row_num, uint8_t anchor)
{
    lxw_row *row;
    uint32_t pixels;

    row = lxw_worksheet_find_row(self, row_num);

    /* Note, the 0.75 below is due to the difference between 72/96 DPI. */
    if (row) {
        if (row->hidden && anchor != LXW_OBJECT_MOVE_AND_SIZE_AFTER)
            pixels = 0;
        else
            pixels = (uint32_t) (row->height / 0.75);
    }
    else {
        pixels = (uint32_t) (self->default_row_height / 0.75);
    }

    return pixels;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movb %dl, %al
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movb %al, -0xd(%rbp)
movq -0x8(%rbp), %rdi
movl -0xc(%rbp), %esi
callq 0xc790
movq %rax, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
je 0x59b29
movq -0x18(%rbp), %rax
movzbl 0x18(%rax), %eax
cmpl $0x0, %eax
je 0x59b0a
movzbl -0xd(%rbp), %eax
cmpl $0x4, %eax
je 0x59b0a
movl $0x0, -0x1c(%rbp)
jmp 0x59b27
movq -0x18(%rbp), %rax
movsd 0x8(%rax), %xmm0
movsd 0x114bd(%rip), %xmm1    # 0x6afd8
divsd %xmm1, %xmm0
cvttsd2si %xmm0, %rax
movl %eax, -0x1c(%rbp)
jmp 0x59b49
movq -0x8(%rbp), %rax
movsd 0x198(%rax), %xmm0
movsd 0x1149b(%rip), %xmm1    # 0x6afd8
divsd %xmm1, %xmm0
cvttsd2si %xmm0, %rax
movl %eax, -0x1c(%rbp)
movl -0x1c(%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: write_number_cell
STATIC void
_write_number_cell(lxw_worksheet *self, char *range,
                   int32_t style_index, lxw_cell *cell)
{
#ifdef USE_DTOA_LIBRARY
    char data[LXW_ATTR_32];

    lxw_sprintf_dbl(data, cell->u.number);

    if (style_index)
        fprintf(self->file,
                "<c r=\"%s\" s=\"%d\"><v>%s</v></c>",
                range, style_index, data);
    else
        fprintf(self->file, "<c r=\"%s\"><v>%s</v></c>", range, data);
#else
    if (style_index)
        fprintf(self->file,
                "<c r=\"%s\" s=\"%d\"><v>%.16G</v></c>",
                range, style_index, cell->u.number);
    else
        fprintf(self->file,
                "<c r=\"%s\"><v>%.16G</v></c>", range, cell->u.number);

#endif
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movq %rcx, -0x20(%rbp)
cmpl $0x0, -0x14(%rbp)
je 0x5adc4
movq -0x8(%rbp), %rax
movq (%rax), %rdi
movq -0x10(%rbp), %rdx
movl -0x14(%rbp), %ecx
movq -0x20(%rbp), %rax
movsd 0x20(%rax), %xmm0
leaq 0x13277(%rip), %rsi     # 0x6e032
movb $0x1, %al
callq 0xc8f0
jmp 0x5ade6
movq -0x8(%rbp), %rax
movq (%rax), %rdi
movq -0x10(%rbp), %rdx
movq -0x20(%rbp), %rax
movsd 0x20(%rax), %xmm0
leaq 0x13275(%rip), %rsi     # 0x6e054
movb $0x1, %al
callq 0xc8f0
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/worksheet.c
// Function: write_string_cell
STATIC void
_write_string_cell(lxw_worksheet *self, char *range,
                   int32_t style_index, lxw_cell *cell)
{

    if (style_index)
        fprintf(self->file,
                "<c r=\"%s\" s=\"%d\" t=\"s\"><v>%d</v></c>",
                range, style_index, cell->u.string_id);
    else
        fprintf(self->file,
                "<c r=\"%s\" t=\"s\"><v>%d</v></c>",
                range, cell->u.string_id);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movq %rcx, -0x20(%rbp)
cmpl $0x0, -0x14(%rbp)
je 0x5ae33
movq -0x8(%rbp), %rax
movq (%rax), %rdi
movq -0x10(%rbp), %rdx
movl -0x14(%rbp), %ecx
movq -0x20(%rbp), %rax
movl 0x20(%rax), %r8d
leaq 0x13245(%rip), %rsi     # 0x6e06f
movb $0x0, %al
callq 0xc8f0
jmp 0x5ae53
movq -0x8(%rbp), %rax
movq (%rax), %rdi
movq -0x10(%rbp), %rdx
movq -0x20(%rbp), %rax
movl 0x20(%rax), %ecx
leaq 0x13248(%rip), %rsi     # 0x6e094
movb $0x0, %al
callq 0xc8f0
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/worksheet.c
// Function: write_inline_string_cell
STATIC void
_write_inline_string_cell(lxw_worksheet *self, char *range,
                          int32_t style_index, lxw_cell *cell)
{
    char *string = lxw_escape_data(cell->u.string);

    /* Add attribute to preserve leading or trailing whitespace. */
    if (isspace((unsigned char) string[0])
        || isspace((unsigned char) string[strlen(string) - 1])) {

        if (style_index)
            fprintf(self->file,
                    "<c r=\"%s\" s=\"%d\" t=\"inlineStr\"><is>"
                    "<t xml:space=\"preserve\">%s</t></is></c>",
                    range, style_index, string);
        else
            fprintf(self->file,
                    "<c r=\"%s\" t=\"inlineStr\"><is>"
                    "<t xml:space=\"preserve\">%s</t></is></c>",
                    range, string);
    }
    else {
        if (style_index)
            fprintf(self->file,
                    "<c r=\"%s\" s=\"%d\" t=\"inlineStr\">"
                    "<is><t>%s</t></is></c>", range, style_index, string);
        else
            fprintf(self->file,
                    "<c r=\"%s\" t=\"inlineStr\">"
                    "<is><t>%s</t></is></c>", range, string);
    }

    free(string);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movq %rcx, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq 0x20(%rax), %rdi
callq 0xc590
movq %rax, -0x28(%rbp)
callq 0xd190
movq (%rax), %rax
movq -0x28(%rbp), %rcx
movzbl (%rcx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x2000, %eax           # imm = 0x2000
cmpl $0x0, %eax
jne 0x5aee9
callq 0xd190
movq (%rax), %rax
movq %rax, -0x30(%rbp)
movq -0x28(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x28(%rbp), %rdi
callq 0xc4e0
movq -0x38(%rbp), %rcx
movq %rax, %rdx
movq -0x30(%rbp), %rax
subq $0x1, %rdx
movzbl (%rcx,%rdx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x2000, %eax           # imm = 0x2000
cmpl $0x0, %eax
je 0x5af30
cmpl $0x0, -0x14(%rbp)
je 0x5af11
movq -0x8(%rbp), %rax
movq (%rax), %rdi
movq -0x10(%rbp), %rdx
movl -0x14(%rbp), %ecx
movq -0x28(%rbp), %r8
leaq 0x131aa(%rip), %rsi     # 0x6e0b2
movb $0x0, %al
callq 0xc8f0
jmp 0x5af2e
movq -0x8(%rbp), %rax
movq (%rax), %rdi
movq -0x10(%rbp), %rdx
movq -0x28(%rbp), %rcx
leaq 0x131d6(%rip), %rsi     # 0x6e0fd
movb $0x0, %al
callq 0xc8f0
jmp 0x5af77
cmpl $0x0, -0x14(%rbp)
je 0x5af58
movq -0x8(%rbp), %rax
movq (%rax), %rdi
movq -0x10(%rbp), %rdx
movl -0x14(%rbp), %ecx
movq -0x28(%rbp), %r8
leaq 0x131f2(%rip), %rsi     # 0x6e141
movb $0x0, %al
callq 0xc8f0
jmp 0x5af75
movq -0x8(%rbp), %rax
movq (%rax), %rdi
movq -0x10(%rbp), %rdx
movq -0x28(%rbp), %rcx
leaq 0x13209(%rip), %rsi     # 0x6e177
movb $0x0, %al
callq 0xc8f0
jmp 0x5af77
movq -0x28(%rbp), %rdi
callq 0xc0d0
addq $0x40, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/worksheet.c
// Function: write_inline_rich_string_cell
STATIC void
_write_inline_rich_string_cell(lxw_worksheet *self, char *range,
                               int32_t style_index, lxw_cell *cell)
{
    const char *string = cell->u.string;

    if (style_index)
        fprintf(self->file,
                "<c r=\"%s\" s=\"%d\" t=\"inlineStr\">"
                "<is>%s</is></c>", range, style_index, string);
    else
        fprintf(self->file,
                "<c r=\"%s\" t=\"inlineStr\">"
                "<is>%s</is></c>", range, string);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movq %rcx, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq 0x20(%rax), %rax
movq %rax, -0x28(%rbp)
cmpl $0x0, -0x14(%rbp)
je 0x5afdb
movq -0x8(%rbp), %rax
movq (%rax), %rdi
movq -0x10(%rbp), %rdx
movl -0x14(%rbp), %ecx
movq -0x28(%rbp), %r8
leaq 0x131d4(%rip), %rsi     # 0x6e1a6
movb $0x0, %al
callq 0xc8f0
jmp 0x5aff8
movq -0x8(%rbp), %rax
movq (%rax), %rdi
movq -0x10(%rbp), %rdx
movq -0x28(%rbp), %rcx
leaq 0x131e4(%rip), %rsi     # 0x6e1d5
movb $0x0, %al
callq 0xc8f0
addq $0x30, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/worksheet.c
// Function: write_boolean_cell
STATIC void
_write_boolean_cell(lxw_worksheet *self, lxw_cell *cell)
{
    char data[LXW_ATTR_32];

    if (cell->u.number == 0.0)
        data[0] = '0';
    else
        data[0] = '1';

    data[1] = '\0';

    lxw_xml_data_element(self->file, "v", data, NULL);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movsd 0x20(%rax), %xmm0
xorps %xmm1, %xmm1
ucomisd %xmm1, %xmm0
jne 0x5b0fa
jp 0x5b0fa
movb $0x30, -0x30(%rbp)
jmp 0x5b0fe
movb $0x31, -0x30(%rbp)
movb $0x0, -0x2f(%rbp)
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq -0x30(%rbp), %rdx
leaq 0xbe4c(%rip), %rsi      # 0x66f60
xorl %eax, %eax
movl %eax, %ecx
callq 0xcbd0
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: write_array_formula_num_cell
STATIC void
_write_array_formula_num_cell(lxw_worksheet *self, lxw_cell *cell)
{
    struct xml_attribute_list attributes;
    struct xml_attribute *attribute;
    char data[LXW_ATTR_32];

    LXW_INIT_ATTRIBUTES();
    LXW_PUSH_ATTRIBUTES_STR("t", "array");
    LXW_PUSH_ATTRIBUTES_STR("ref", cell->user_data1);

    lxw_sprintf_dbl(data, cell->formula_result);

    lxw_xml_data_element(self->file, "f", cell->u.string, &attributes);
    lxw_xml_data_element(self->file, "v", data, NULL);

    LXW_FREE_ATTRIBUTES();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq $0x0, -0x20(%rbp)
leaq -0x20(%rbp), %rax
movq %rax, -0x18(%rbp)
jmp 0x5b152
leaq 0xbf80(%rip), %rdi      # 0x670d9
leaq 0x1309d(%rip), %rsi     # 0x6e1fd
callq 0xc030
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x28(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movq -0x28(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x18(%rbp)
jmp 0x5b193
jmp 0x5b195
movq -0x10(%rbp), %rax
movq 0x30(%rax), %rsi
leaq 0x13e84(%rip), %rdi     # 0x6f028
callq 0xc030
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x28(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movq -0x28(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x18(%rbp)
jmp 0x5b1d7
leaq -0x50(%rbp), %rdi
movq -0x10(%rbp), %rax
movsd 0x28(%rax), %xmm0
movl $0x20, %esi
leaq 0xbd99(%rip), %rdx      # 0x66f89
movb $0x1, %al
callq 0xc5d0
movq -0x8(%rbp), %rax
movq (%rax), %rdi
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rdx
leaq 0xbd60(%rip), %rsi      # 0x66f6d
leaq -0x20(%rbp), %rcx
callq 0xcbd0
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq -0x50(%rbp), %rdx
leaq 0xbd38(%rip), %rsi      # 0x66f60
xorl %eax, %eax
movl %eax, %ecx
callq 0xcbd0
jmp 0x5b233
cmpq $0x0, -0x20(%rbp)
sete %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x5b243
jmp 0x5b275
movq -0x20(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x20(%rbp), %rax
movq 0x1040(%rax), %rax
movq %rax, -0x20(%rbp)
cmpq $0x0, %rax
jne 0x5b268
leaq -0x20(%rbp), %rax
movq %rax, -0x18(%rbp)
jmp 0x5b26a
movq -0x28(%rbp), %rdi
callq 0xc0d0
jmp 0x5b233
jmp 0x5b277
addq $0x50, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/worksheet.c
// Function: process_bmp
STATIC lxw_error
_process_bmp(lxw_object_properties *image_props)
{
    uint32_t width = 0;
    uint32_t height = 0;
    double x_dpi = 96;
    double y_dpi = 96;
    int fseek_err;

    FILE *stream = image_props->stream;

    /* Skip another 14 bytes to the start of the BMP height/width. */
    fseek_err = fseek(stream, 14, SEEK_CUR);
    if (fseek_err)
        goto file_error;

    if (fread(&width, sizeof(width), 1, stream) < 1)
        width = 0;

    if (fread(&height, sizeof(height), 1, stream) < 1)
        height = 0;

    /* Ensure that we read some valid data from the file. */
    if (width == 0)
        goto file_error;

    height = LXW_UINT32_HOST(height);
    width = LXW_UINT32_HOST(width);

    /* Set the image metadata. */
    image_props->image_type = LXW_IMAGE_BMP;
    image_props->width = width;
    image_props->height = height;
    image_props->x_dpi = x_dpi;
    image_props->y_dpi = y_dpi;
    image_props->extension = lxw_strdup("bmp");

    return LXW_NO_ERROR;

file_error:
    LXW_WARN_FORMAT1("worksheet image insertion: "
                     "no size data found in: %s.", image_props->filename);

    return LXW_ERROR_IMAGE_DIMENSIONS;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x10(%rbp)
movl $0x0, -0x14(%rbp)
movl $0x0, -0x18(%rbp)
movsd 0xf456(%rip), %xmm0     # 0x6afe8
movsd %xmm0, -0x20(%rbp)
movsd 0xf449(%rip), %xmm0     # 0x6afe8
movsd %xmm0, -0x28(%rbp)
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rdi
movl $0xe, %esi
movl $0x1, %edx
callq 0xcbe0
movl %eax, -0x2c(%rbp)
cmpl $0x0, -0x2c(%rbp)
je 0x5bbd1
jmp 0x5bc8d
movq -0x38(%rbp), %rcx
leaq -0x14(%rbp), %rdi
movl $0x4, %esi
movl $0x1, %edx
callq 0xc320
cmpq $0x1, %rax
jae 0x5bbf5
movl $0x0, -0x14(%rbp)
movq -0x38(%rbp), %rcx
leaq -0x18(%rbp), %rdi
movl $0x4, %esi
movl $0x1, %edx
callq 0xc320
cmpq $0x1, %rax
jae 0x5bc19
movl $0x0, -0x18(%rbp)
cmpl $0x0, -0x14(%rbp)
jne 0x5bc21
jmp 0x5bc8d
movq -0x10(%rbp), %rax
movb $0x3, 0x50(%rax)
movl -0x14(%rbp), %eax
cvtsi2sd %rax, %xmm0
movq -0x10(%rbp), %rax
movsd %xmm0, 0x68(%rax)
movl -0x18(%rbp), %eax
cvtsi2sd %rax, %xmm0
movq -0x10(%rbp), %rax
movsd %xmm0, 0x70(%rax)
movsd -0x20(%rbp), %xmm0
movq -0x10(%rbp), %rax
movsd %xmm0, 0x80(%rax)
movsd -0x28(%rbp), %xmm0
movq -0x10(%rbp), %rax
movsd %xmm0, 0x88(%rax)
leaq 0xce36(%rip), %rdi      # 0x68aaa
callq 0xcd80
movq %rax, %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x78(%rax)
movl $0x0, -0x4(%rbp)
jmp 0x5bcb4
movq 0x21364(%rip), %rax     # 0x7cff8
movq (%rax), %rdi
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rdx
leaq 0x1260f(%rip), %rsi     # 0x6e2b5
movb $0x0, %al
callq 0xc8f0
movl $0x1a, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x40, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/worksheet.c
// Function: process_gif
STATIC lxw_error
_process_gif(lxw_object_properties *image_props)
{
    uint16_t width = 0;
    uint16_t height = 0;
    double x_dpi = 96;
    double y_dpi = 96;
    int fseek_err;

    FILE *stream = image_props->stream;

    /* Skip another 2 bytes to the start of the GIF height/width. */
    fseek_err = fseek(stream, 2, SEEK_CUR);
    if (fseek_err)
        goto file_error;

    if (fread(&width, sizeof(width), 1, stream) < 1)
        width = 0;

    if (fread(&height, sizeof(height), 1, stream) < 1)
        height = 0;

    /* Ensure that we read some valid data from the file. */
    if (width == 0)
        goto file_error;

    height = LXW_UINT16_HOST(height);
    width = LXW_UINT16_HOST(width);

    /* Set the image metadata. */
    image_props->image_type = LXW_IMAGE_GIF;
    image_props->width = width;
    image_props->height = height;
    image_props->x_dpi = x_dpi;
    image_props->y_dpi = y_dpi;
    image_props->extension = lxw_strdup("gif");

    return LXW_NO_ERROR;

file_error:
    LXW_WARN_FORMAT1("worksheet image insertion: "
                     "no size data found in: %s.", image_props->filename);

    return LXW_ERROR_IMAGE_DIMENSIONS;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x10(%rbp)
movw $0x0, -0x12(%rbp)
movw $0x0, -0x14(%rbp)
movsd 0xf308(%rip), %xmm0     # 0x6afe8
movsd %xmm0, -0x20(%rbp)
movsd 0xf2fb(%rip), %xmm0     # 0x6afe8
movsd %xmm0, -0x28(%rbp)
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rdi
movl $0x2, %esi
movl $0x1, %edx
callq 0xcbe0
movl %eax, -0x2c(%rbp)
cmpl $0x0, -0x2c(%rbp)
je 0x5bd1f
jmp 0x5bddc
movq -0x38(%rbp), %rcx
leaq -0x12(%rbp), %rdi
movl $0x2, %esi
movl $0x1, %edx
callq 0xc320
cmpq $0x1, %rax
jae 0x5bd42
movw $0x0, -0x12(%rbp)
movq -0x38(%rbp), %rcx
leaq -0x14(%rbp), %rdi
movl $0x2, %esi
movl $0x1, %edx
callq 0xc320
cmpq $0x1, %rax
jae 0x5bd65
movw $0x0, -0x14(%rbp)
movzwl -0x12(%rbp), %eax
cmpl $0x0, %eax
jne 0x5bd70
jmp 0x5bddc
movq -0x10(%rbp), %rax
movb $0x4, 0x50(%rax)
movzwl -0x12(%rbp), %eax
cvtsi2sd %eax, %xmm0
movq -0x10(%rbp), %rax
movsd %xmm0, 0x68(%rax)
movzwl -0x14(%rbp), %eax
cvtsi2sd %eax, %xmm0
movq -0x10(%rbp), %rax
movsd %xmm0, 0x70(%rax)
movsd -0x20(%rbp), %xmm0
movq -0x10(%rbp), %rax
movsd %xmm0, 0x80(%rax)
movsd -0x28(%rbp), %xmm0
movq -0x10(%rbp), %rax
movsd %xmm0, 0x88(%rax)
leaq 0xccf1(%rip), %rdi      # 0x68ab4
callq 0xcd80
movq %rax, %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x78(%rax)
movl $0x0, -0x4(%rbp)
jmp 0x5be03
movq 0x21215(%rip), %rax     # 0x7cff8
movq (%rax), %rdi
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rdx
leaq 0x124c0(%rip), %rsi     # 0x6e2b5
movb $0x0, %al
callq 0xc8f0
movl $0x1a, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x40, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/worksheet.c
// Function: worksheet_write_panes
STATIC void
_worksheet_write_panes(lxw_worksheet *self)
{
    if (self->panes.type == NO_PANES)
        return;

    else if (self->panes.type == FREEZE_PANES)
        _worksheet_write_freeze_panes(self);

    else if (self->panes.type == FREEZE_SPLIT_PANES)
        _worksheet_write_freeze_panes(self);

    else if (self->panes.type == SPLIT_PANES)
        _worksheet_write_split_panes(self);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movzbl 0x240(%rax), %eax
cmpl $0x0, %eax
jne 0x5c25e
jmp 0x5c2b3
movq -0x8(%rbp), %rax
movzbl 0x240(%rax), %eax
cmpl $0x1, %eax
jne 0x5c279
movq -0x8(%rbp), %rdi
callq 0x5c310
jmp 0x5c2b1
movq -0x8(%rbp), %rax
movzbl 0x240(%rax), %eax
cmpl $0x3, %eax
jne 0x5c294
movq -0x8(%rbp), %rdi
callq 0x5c310
jmp 0x5c2af
movq -0x8(%rbp), %rax
movzbl 0x240(%rax), %eax
cmpl $0x2, %eax
jne 0x5c2ad
movq -0x8(%rbp), %rdi
callq 0x5ca70
jmp 0x5c2af
jmp 0x5c2b1
jmp 0x5c2b3
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_calculate_x_split_width
STATIC uint32_t
_worksheet_calculate_x_split_width(double x_split)
{
    uint32_t width;
    uint32_t pixels;
    uint32_t points;
    uint32_t twips;
    double max_digit_width = 7.0;       /* For Calabri 11. */
    double padding = 5.0;

    /* Convert to pixels. */
    if (x_split < 1.0) {
        pixels = (uint32_t) (x_split * (max_digit_width + padding) + 0.5);
    }
    else {
        pixels = (uint32_t) (x_split * max_digit_width + 0.5) + 5;
    }

    /* Convert to points. */
    points = (pixels * 3) / 4;

    /* Convert to twips (twentieths of a point). */
    twips = points * 20;

    /* Add offset/padding. */
    width = twips + 390;

    return width;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movsd %xmm0, -0x8(%rbp)
movsd 0xf037(%rip), %xmm0     # 0x6c308
movsd %xmm0, -0x20(%rbp)
movsd 0xf022(%rip), %xmm0     # 0x6c300
movsd %xmm0, -0x28(%rbp)
movsd 0xa7ad(%rip), %xmm0     # 0x67a98
ucomisd -0x8(%rbp), %xmm0
jbe 0x5d31f
movsd -0x8(%rbp), %xmm0
movsd -0x20(%rbp), %xmm1
movsd -0x28(%rbp), %xmm2
addsd %xmm2, %xmm1
mulsd %xmm1, %xmm0
movsd 0x900f(%rip), %xmm1     # 0x66320
addsd %xmm1, %xmm0
cvttsd2si %xmm0, %rax
movl %eax, -0x10(%rbp)
jmp 0x5d344
movsd -0x8(%rbp), %xmm0
movsd -0x20(%rbp), %xmm1
mulsd %xmm1, %xmm0
movsd 0x8feb(%rip), %xmm1     # 0x66320
addsd %xmm1, %xmm0
cvttsd2si %xmm0, %rax
addl $0x5, %eax
movl %eax, -0x10(%rbp)
imull $0x3, -0x10(%rbp), %eax
shrl $0x2, %eax
movl %eax, -0x14(%rbp)
imull $0x14, -0x14(%rbp), %eax
movl %eax, -0x18(%rbp)
movl -0x18(%rbp), %eax
addl $0x186, %eax            # imm = 0x186
movl %eax, -0xc(%rbp)
movl -0xc(%rbp), %eax
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_selection
STATIC void
_worksheet_write_selection(lxw_worksheet *self, lxw_selection *selection)
{
    struct xml_attribute_list attributes;
    struct xml_attribute *attribute;

    LXW_INIT_ATTRIBUTES();

    if (*selection->pane)
        LXW_PUSH_ATTRIBUTES_STR("pane", selection->pane);

    if (*selection->active_cell)
        LXW_PUSH_ATTRIBUTES_STR("activeCell", selection->active_cell);

    if (*selection->sqref)
        LXW_PUSH_ATTRIBUTES_STR("sqref", selection->sqref);

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

    LXW_FREE_ATTRIBUTES();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq $0x0, -0x20(%rbp)
leaq -0x20(%rbp), %rax
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rax
cmpb $0x0, (%rax)
je 0x5d3db
jmp 0x5d39b
movq -0x10(%rbp), %rsi
leaq 0x1103a(%rip), %rdi     # 0x6e3e0
callq 0xc030
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x28(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movq -0x28(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x18(%rbp)
jmp 0x5d3d9
jmp 0x5d3db
movq -0x10(%rbp), %rax
cmpb $0x0, 0xc(%rax)
je 0x5d42b
jmp 0x5d3e7
movq -0x10(%rbp), %rsi
addq $0xc, %rsi
leaq 0x10fef(%rip), %rdi     # 0x6e3e5
callq 0xc030
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x28(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movq -0x28(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x18(%rbp)
jmp 0x5d429
jmp 0x5d42b
movq -0x10(%rbp), %rax
cmpb $0x0, 0x28(%rax)
je 0x5d47b
jmp 0x5d437
movq -0x10(%rbp), %rsi
addq $0x28, %rsi
leaq 0x11be0(%rip), %rdi     # 0x6f026
callq 0xc030
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x28(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movq -0x28(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x18(%rbp)
jmp 0x5d479
jmp 0x5d47b
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x10f67(%rip), %rsi     # 0x6e3f0
leaq -0x20(%rbp), %rdx
callq 0xcca0
jmp 0x5d494
cmpq $0x0, -0x20(%rbp)
sete %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x5d4a4
jmp 0x5d4d6
movq -0x20(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x20(%rbp), %rax
movq 0x1040(%rax), %rax
movq %rax, -0x20(%rbp)
cmpq $0x0, %rax
jne 0x5d4c9
leaq -0x20(%rbp), %rax
movq %rax, -0x18(%rbp)
jmp 0x5d4cb
movq -0x28(%rbp), %rdi
callq 0xc0d0
jmp 0x5d494
jmp 0x5d4d8
addq $0x30, %rsp
popq %rbp
retq
nop