LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/workbook.c
// Function: workbook_set_custom_property_integer
lxw_error
workbook_set_custom_property_integer(lxw_workbook *self, const char *name,
                                     int32_t value)
{
    lxw_custom_property *custom_property;

    if (!name) {
        LXW_WARN_FORMAT("workbook_set_custom_property_integer(): parameter "
                        "'name' cannot be NULL.");
        return LXW_ERROR_NULL_PARAMETER_IGNORED;
    }

    if (strlen(name) > 255) {
        LXW_WARN_FORMAT("workbook_set_custom_property_integer(): parameter "
                        "'name' exceeds Excel length limit of 255.");
        return LXW_ERROR_255_STRING_LENGTH_EXCEEDED;
    }

    /* Create a struct to hold the custom property. */
    custom_property = calloc(1, sizeof(struct lxw_custom_property));
    RETURN_ON_MEM_ERROR(custom_property, LXW_ERROR_MEMORY_MALLOC_FAILED);

    custom_property->name = lxw_strdup(name);
    custom_property->u.integer = value;
    custom_property->type = LXW_CUSTOM_INTEGER;

    STAILQ_INSERT_TAIL(self->custom_properties, custom_property,
                       list_pointers);

    return LXW_NO_ERROR;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movl %edx, -0x1c(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0x3ff9e
movq 0x3d077(%rip), %rax     # 0x7cff8
movq (%rax), %rdi
leaq 0x2bc97(%rip), %rsi     # 0x6bc22
movb $0x0, %al
callq 0xc8f0
movl $0xc, -0x4(%rbp)
jmp 0x4007e
movq -0x18(%rbp), %rdi
callq 0xc4e0
cmpq $0xff, %rax
jbe 0x3ffd3
movq 0x3d042(%rip), %rax     # 0x7cff8
movq (%rax), %rdi
leaq 0x2bcb7(%rip), %rsi     # 0x6bc77
movb $0x0, %al
callq 0xc8f0
movl $0x14, -0x4(%rbp)
jmp 0x4007e
movl $0x1, %edi
movl $0x38, %esi
callq 0xc870
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
jne 0x4001a
movq 0x3d004(%rip), %rax     # 0x7cff8
movq (%rax), %rdi
leaq 0x260d2(%rip), %rsi     # 0x660d0
leaq 0x2b64b(%rip), %rdx     # 0x6b650
movl $0x9a4, %ecx            # imm = 0x9A4
movb $0x0, %al
callq 0xc8f0
movl $0x1, -0x4(%rbp)
jmp 0x4007e
jmp 0x4001c
movq -0x18(%rbp), %rdi
callq 0xcd80
movq %rax, %rcx
movq -0x28(%rbp), %rax
movq %rcx, 0x8(%rax)
movl -0x1c(%rbp), %ecx
movq -0x28(%rbp), %rax
movl %ecx, 0x10(%rax)
movq -0x28(%rbp), %rax
movl $0x3, (%rax)
movq -0x28(%rbp), %rax
movq $0x0, 0x30(%rax)
movq -0x28(%rbp), %rcx
movq -0x10(%rbp), %rax
movq 0x78(%rax), %rax
movq 0x8(%rax), %rax
movq %rcx, (%rax)
movq -0x28(%rbp), %rcx
addq $0x30, %rcx
movq -0x10(%rbp), %rax
movq 0x78(%rax), %rax
movq %rcx, 0x8(%rax)
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x30, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/workbook.c
// Function: workbook_set_custom_property_boolean
lxw_error
workbook_set_custom_property_boolean(lxw_workbook *self, const char *name,
                                     uint8_t value)
{
    lxw_custom_property *custom_property;

    if (!name) {
        LXW_WARN_FORMAT("workbook_set_custom_property_boolean(): parameter "
                        "'name' cannot be NULL.");
        return LXW_ERROR_NULL_PARAMETER_IGNORED;
    }

    if (lxw_utf8_strlen(name) > 255) {
        LXW_WARN_FORMAT("workbook_set_custom_property_boolean(): parameter "
                        "'name' exceeds Excel length limit of 255.");
        return LXW_ERROR_255_STRING_LENGTH_EXCEEDED;
    }

    /* Create a struct to hold the custom property. */
    custom_property = calloc(1, sizeof(struct lxw_custom_property));
    RETURN_ON_MEM_ERROR(custom_property, LXW_ERROR_MEMORY_MALLOC_FAILED);

    custom_property->name = lxw_strdup(name);
    custom_property->u.boolean = value;
    custom_property->type = LXW_CUSTOM_BOOLEAN;

    STAILQ_INSERT_TAIL(self->custom_properties, custom_property,
                       list_pointers);

    return LXW_NO_ERROR;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movb %dl, %al
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movb %al, -0x19(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0x400d0
movq 0x3cf45(%rip), %rax     # 0x7cff8
movq (%rax), %rdi
leaq 0x2bc22(%rip), %rsi     # 0x6bcdf
movb $0x0, %al
callq 0xc8f0
movl $0xc, -0x4(%rbp)
jmp 0x401b0
movq -0x18(%rbp), %rdi
callq 0xd180
cmpq $0xff, %rax
jbe 0x40105
movq 0x3cf10(%rip), %rax     # 0x7cff8
movq (%rax), %rdi
leaq 0x2bc42(%rip), %rsi     # 0x6bd34
movb $0x0, %al
callq 0xc8f0
movl $0x14, -0x4(%rbp)
jmp 0x401b0
movl $0x1, %edi
movl $0x38, %esi
callq 0xc870
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
jne 0x4014c
movq 0x3ced2(%rip), %rax     # 0x7cff8
movq (%rax), %rdi
leaq 0x25fa0(%rip), %rsi     # 0x660d0
leaq 0x2b519(%rip), %rdx     # 0x6b650
movl $0x9c7, %ecx            # imm = 0x9C7
movb $0x0, %al
callq 0xc8f0
movl $0x1, -0x4(%rbp)
jmp 0x401b0
jmp 0x4014e
movq -0x18(%rbp), %rdi
callq 0xcd80
movq %rax, %rcx
movq -0x28(%rbp), %rax
movq %rcx, 0x8(%rax)
movb -0x19(%rbp), %cl
movq -0x28(%rbp), %rax
movb %cl, 0x10(%rax)
movq -0x28(%rbp), %rax
movl $0x4, (%rax)
movq -0x28(%rbp), %rax
movq $0x0, 0x30(%rax)
movq -0x28(%rbp), %rcx
movq -0x10(%rbp), %rax
movq 0x78(%rax), %rax
movq 0x8(%rax), %rax
movq %rcx, (%rax)
movq -0x28(%rbp), %rcx
addq $0x30, %rcx
movq -0x10(%rbp), %rax
movq 0x78(%rax), %rax
movq %rcx, 0x8(%rax)
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/workbook.c
// Function: workbook_get_worksheet_by_name
lxw_worksheet *
workbook_get_worksheet_by_name(lxw_workbook *self, const char *name)
{
    lxw_worksheet_name worksheet_name;
    lxw_worksheet_name *found;

    if (!name)
        return NULL;

    worksheet_name.name = name;
    found = RB_FIND(lxw_worksheet_names,
                    self->worksheet_names, &worksheet_name);

    if (found)
        return found->worksheet;
    else
        return NULL;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0x40361
movq $0x0, -0x8(%rbp)
jmp 0x4039b
movq -0x18(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rdi
leaq -0x48(%rbp), %rsi
callq 0x403b0
movq %rax, -0x50(%rbp)
cmpq $0x0, -0x50(%rbp)
je 0x40393
movq -0x50(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x8(%rbp)
jmp 0x4039b
movq $0x0, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x50, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/workbook.c
// Function: workbook_get_chartsheet_by_name
lxw_chartsheet *
workbook_get_chartsheet_by_name(lxw_workbook *self, const char *name)
{
    lxw_chartsheet_name chartsheet_name;
    lxw_chartsheet_name *found;

    if (!name)
        return NULL;

    chartsheet_name.name = name;
    found = RB_FIND(lxw_chartsheet_names,
                    self->chartsheet_names, &chartsheet_name);

    if (found)
        return found->chartsheet;
    else
        return NULL;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0x40451
movq $0x0, -0x8(%rbp)
jmp 0x4048b
movq -0x18(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rdi
leaq -0x48(%rbp), %rsi
callq 0x404a0
movq %rax, -0x50(%rbp)
cmpq $0x0, -0x50(%rbp)
je 0x40483
movq -0x50(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x8(%rbp)
jmp 0x4048b
movq $0x0, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x50, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/workbook.c
// Function: workbook_unset_default_url_format
void
workbook_unset_default_url_format(lxw_workbook *self)
{
    self->default_url_format->hyperlink = LXW_FALSE;
    self->default_url_format->xf_id = 0;
    self->default_url_format->underline = LXW_UNDERLINE_NONE;
    self->default_url_format->theme = 0;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq 0x100(%rax), %rax
movb $0x0, 0x1da(%rax)
movq -0x8(%rbp), %rax
movq 0x100(%rax), %rax
movl $0x0, 0x30(%rax)
movq -0x8(%rbp), %rax
movq 0x100(%rax), %rax
movb $0x0, 0x1d0(%rax)
movq -0x8(%rbp), %rax
movq 0x100(%rax), %rax
movb $0x0, 0x1d9(%rax)
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/workbook.c
// Function: workbook_add_vba_project
lxw_error
workbook_add_vba_project(lxw_workbook *self, const char *filename)
{
    FILE *filehandle;

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

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

    self->vba_project = lxw_strdup(filename);

    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 0x405d8
movq 0x3ca3a(%rip), %rax     # 0x7cff8
movq (%rax), %rdi
leaq 0x2b8f5(%rip), %rsi     # 0x6bebd
movb $0x0, %al
callq 0xc8f0
movl $0xc, -0x4(%rbp)
jmp 0x4063f
movq -0x18(%rbp), %rdi
leaq 0x25a1d(%rip), %rsi     # 0x66000
callq 0xc280
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
jne 0x40618
movq 0x3c9fe(%rip), %rax     # 0x7cff8
movq (%rax), %rdi
movq -0x18(%rbp), %rdx
leaq 0x2b901(%rip), %rsi     # 0x6bf09
movb $0x0, %al
callq 0xc8f0
movl $0xd, -0x4(%rbp)
jmp 0x4063f
movq -0x20(%rbp), %rdi
callq 0xc460
movq -0x18(%rbp), %rdi
callq 0xcd80
movq %rax, %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0xe8(%rax)
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/workbook.c
// Function: workbook_add_signed_vba_project
lxw_error
workbook_add_signed_vba_project(lxw_workbook *self,
                                const char *vba_project,
                                const char *signature)
{
    FILE *filehandle;

    lxw_error error = workbook_add_vba_project(self, vba_project);
    if (error != LXW_NO_ERROR)
        return error;

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

    /* Check that the vbaProjectSignature file exists and can be opened. */
    filehandle = lxw_fopen(signature, "rb");
    if (!filehandle) {
        LXW_WARN_FORMAT1("workbook_add_signed_vba_project(): "
                         "signature file doesn't exist or can't be opened: %s.",
                         signature);
        return LXW_ERROR_PARAMETER_VALIDATION;
    }
    fclose(filehandle);

    self->vba_project_signature = lxw_strdup(signature);

    return LXW_NO_ERROR;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0xca10
movl %eax, -0x2c(%rbp)
cmpl $0x0, -0x2c(%rbp)
je 0x40685
movl -0x2c(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x40714
cmpq $0x0, -0x20(%rbp)
jne 0x406ad
movq 0x3c965(%rip), %rax     # 0x7cff8
movq (%rax), %rdi
leaq 0x2b8c7(%rip), %rsi     # 0x6bf64
movb $0x0, %al
callq 0xc8f0
movl $0xc, -0x4(%rbp)
jmp 0x40714
movq -0x20(%rbp), %rdi
leaq 0x25948(%rip), %rsi     # 0x66000
callq 0xc280
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
jne 0x406ed
movq 0x3c929(%rip), %rax     # 0x7cff8
movq (%rax), %rdi
movq -0x20(%rbp), %rdx
leaq 0x2b8dc(%rip), %rsi     # 0x6bfb9
movb $0x0, %al
callq 0xc8f0
movl $0xd, -0x4(%rbp)
jmp 0x40714
movq -0x28(%rbp), %rdi
callq 0xc460
movq -0x20(%rbp), %rdi
callq 0xcd80
movq %rax, %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0xf0(%rax)
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/workbook.c
// Function: write_defined_name
STATIC void
_write_defined_name(lxw_workbook *self, lxw_defined_name *defined_name)
{
    struct xml_attribute_list attributes;
    struct xml_attribute *attribute;

    LXW_INIT_ATTRIBUTES();
    LXW_PUSH_ATTRIBUTES_STR("name", defined_name->name);

    if (defined_name->index != -1)
        LXW_PUSH_ATTRIBUTES_INT("localSheetId", defined_name->index);

    if (defined_name->hidden)
        LXW_PUSH_ATTRIBUTES_INT("hidden", 1);

    lxw_xml_data_element(self->file, "definedName", defined_name->formula,
                         &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)
jmp 0x42c32
movq -0x10(%rbp), %rsi
addq $0x3, %rsi
leaq 0x2456e(%rip), %rdi     # 0x671af
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 0x42c74
movq -0x10(%rbp), %rax
movswl (%rax), %eax
cmpl $-0x1, %eax
je 0x42cc6
jmp 0x42c82
movq -0x10(%rbp), %rax
movswq (%rax), %rsi
leaq 0x294fe(%rip), %rdi     # 0x6c18f
callq 0xc1b0
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 0x42cc4
jmp 0x42cc6
movq -0x10(%rbp), %rax
cmpb $0x0, 0x2(%rax)
je 0x42d13
jmp 0x42cd2
leaq 0x26a28(%rip), %rdi     # 0x69701
movl $0x1, %esi
callq 0xc1b0
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 0x42d11
jmp 0x42d13
movq -0x8(%rbp), %rax
movq (%rax), %rdi
movq -0x10(%rbp), %rdx
addq $0x103, %rdx            # imm = 0x103
leaq 0x29470(%rip), %rsi     # 0x6c19c
leaq -0x20(%rbp), %rcx
callq 0xcbd0
jmp 0x42d37
cmpq $0x0, -0x20(%rbp)
sete %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x42d47
jmp 0x42d79
movq -0x20(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x20(%rbp), %rax
movq 0x1040(%rax), %rax
movq %rax, -0x20(%rbp)
cmpq $0x0, %rax
jne 0x42d6c
leaq -0x20(%rbp), %rax
movq %rax, -0x18(%rbp)
jmp 0x42d6e
movq -0x28(%rbp), %rdi
callq 0xc0d0
jmp 0x42d37
jmp 0x42d7b
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/workbook.c
// Function: store_image_type
STATIC void
_store_image_type(lxw_workbook *self, uint8_t image_type)
{
    if (image_type == LXW_IMAGE_PNG)
        self->has_png = LXW_TRUE;

    if (image_type == LXW_IMAGE_JPEG)
        self->has_jpeg = LXW_TRUE;

    if (image_type == LXW_IMAGE_BMP)
        self->has_bmp = LXW_TRUE;

    if (image_type == LXW_IMAGE_GIF)
        self->has_gif = LXW_TRUE;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movb %sil, %al
movq %rdi, -0x8(%rbp)
movb %al, -0x9(%rbp)
movzbl -0x9(%rbp), %eax
cmpl $0x1, %eax
jne 0x43732
movq -0x8(%rbp), %rax
movb $0x1, 0xcf(%rax)
movzbl -0x9(%rbp), %eax
cmpl $0x2, %eax
jne 0x43746
movq -0x8(%rbp), %rax
movb $0x1, 0xd0(%rax)
movzbl -0x9(%rbp), %eax
cmpl $0x3, %eax
jne 0x4375a
movq -0x8(%rbp), %rax
movb $0x1, 0xd1(%rax)
movzbl -0x9(%rbp), %eax
cmpl $0x4, %eax
jne 0x4376e
movq -0x8(%rbp), %rax
movb $0x1, 0xd2(%rax)
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/workbook.c
// Function: populate_range
STATIC void
_populate_range(lxw_workbook *self, lxw_series_range *range)
{
    if (!range)
        return;

    _populate_range_dimensions(self, range);
    _populate_range_data_cache(self, range);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x43dd9
jmp 0x43df3
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x43e00
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x44070
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/workbook.c
// Function: compare_defined_names
static int
_compare_defined_names(lxw_defined_name *a, lxw_defined_name *b)
{
    int res = strcmp(a->normalised_name, b->normalised_name);

    /* Primary comparison based on defined name. */
    if (res)
        return res;

    /* Secondary comparison based on worksheet name. */
    res = strcmp(a->normalised_sheetname, b->normalised_sheetname);

    return res;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x10(%rbp), %rdi
addq $0x183, %rdi            # imm = 0x183
movq -0x18(%rbp), %rsi
addq $0x183, %rsi            # imm = 0x183
callq 0xc880
movl %eax, -0x1c(%rbp)
cmpl $0x0, -0x1c(%rbp)
je 0x442cc
movl -0x1c(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x442f0
movq -0x10(%rbp), %rdi
addq $0x203, %rdi            # imm = 0x203
movq -0x18(%rbp), %rsi
addq $0x203, %rsi            # imm = 0x203
callq 0xc880
movl %eax, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
movl %eax, -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: lxw_worksheet_find_cell_in_row
lxw_cell *
lxw_worksheet_find_cell_in_row(lxw_row *row, lxw_col_t col_num)
{
    lxw_cell tmp_cell;

    if (!row)
        return NULL;

    tmp_cell.col_num = col_num;

    return RB_FIND(lxw_table_cells, row->cells, &tmp_cell);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x80, %rsp
movw %si, %ax
movq %rdi, -0x10(%rbp)
movw %ax, -0x12(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x443d7
movq $0x0, -0x8(%rbp)
jmp 0x443f4
movw -0x12(%rbp), %ax
movw %ax, -0x7c(%rbp)
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rdi
leaq -0x80(%rbp), %rsi
callq 0x44410
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x80, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/worksheet.c
// Function: free_row
STATIC void
_free_row(lxw_row *row)
{
    lxw_cell *cell;
    lxw_cell *next_cell;

    if (!row)
        return;

    for (cell = RB_MIN(lxw_table_cells, row->cells); cell; cell = next_cell) {
        next_cell = RB_NEXT(lxw_table_cells, row->cells, cell);
        RB_REMOVE(lxw_table_cells, row->cells, cell);
        _free_cell(cell);
    }

    free(row->cells);
    free(row);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
cmpq $0x0, -0x8(%rbp)
jne 0x464e5
jmp 0x46549
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x4afb0
movq %rax, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
je 0x46533
movq -0x10(%rbp), %rdi
callq 0x4b010
movq %rax, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rdi
movq -0x10(%rbp), %rsi
callq 0x57830
movq -0x10(%rbp), %rdi
callq 0x47410
movq -0x18(%rbp), %rax
movq %rax, -0x10(%rbp)
jmp 0x464fb
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rdi
callq 0xc0d0
addq $0x20, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/worksheet.c
// Function: free_object_properties
STATIC void
_free_object_properties(lxw_object_properties *object_property)
{
    if (!object_property)
        return;

    free(object_property->filename);
    free(object_property->description);
    free(object_property->extension);
    free(object_property->url);
    free(object_property->tip);
    free(object_property->image_buffer);
    free(object_property->md5);
    free(object_property->image_position);
    free(object_property);
    object_property = NULL;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
cmpq $0x0, -0x8(%rbp)
jne 0x46565
jmp 0x465e4
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0x78(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0x58(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0xa0(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0xa8(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rdi
callq 0xc0d0
movq $0x0, -0x8(%rbp)
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: free_vml_object
STATIC void
_free_vml_object(lxw_vml_obj *vml_obj)
{
    if (!vml_obj)
        return;

    free(vml_obj->author);
    free(vml_obj->font_name);
    free(vml_obj->text);
    free(vml_obj->image_position);
    free(vml_obj->name);
    free(vml_obj->macro);

    free(vml_obj);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
cmpq $0x0, -0x8(%rbp)
jne 0x46605
jmp 0x4666e
movq -0x8(%rbp), %rax
movq 0x88(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0x90(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0x98(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0xa0(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0xa8(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0xb0(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rdi
callq 0xc0d0
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: free_worksheet_table
STATIC void
_free_worksheet_table(lxw_table_obj *table)
{
    uint16_t i;

    if (!table)
        return;

    for (i = 0; i < table->num_cols; i++)
        _free_worksheet_table_column(table->columns[i]);

    free(table->name);
    free(table->total_string);
    free(table->columns);

    free(table);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
cmpq $0x0, -0x8(%rbp)
jne 0x46695
jmp 0x466fd
movw $0x0, -0xa(%rbp)
movzwl -0xa(%rbp), %eax
movq -0x8(%rbp), %rcx
movzwl 0x32(%rcx), %ecx
cmpl %ecx, %eax
jge 0x466ce
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movzwl -0xa(%rbp), %ecx
movq (%rax,%rcx,8), %rdi
callq 0x581c0
movw -0xa(%rbp), %ax
addw $0x1, %ax
movw %ax, -0xa(%rbp)
jmp 0x4669b
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 %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/worksheet.c
// Function: free_data_validation
STATIC void
_free_data_validation(lxw_data_val_obj *data_validation)
{
    if (!data_validation)
        return;

    free(data_validation->value_formula);
    free(data_validation->maximum_formula);
    free(data_validation->input_title);
    free(data_validation->input_message);
    free(data_validation->error_title);
    free(data_validation->error_message);
    free(data_validation->minimum_formula);

    free(data_validation);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
cmpq $0x0, -0x8(%rbp)
jne 0x46725
jmp 0x46795
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0x58(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0x80(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0x88(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0x90(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0x98(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rdi
callq 0xc0d0
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: free_relationship
STATIC void
_free_relationship(lxw_rel_tuple *relationship)
{
    if (!relationship)
        return;

    free(relationship->type);
    free(relationship->target);
    free(relationship->target_mode);

    free(relationship);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
cmpq $0x0, -0x8(%rbp)
jne 0x467b5
jmp 0x467e4
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: free_cond_format
STATIC void
_free_cond_format(lxw_cond_format_obj *cond_format)
{
    if (!cond_format)
        return;

    free(cond_format->min_value_string);
    free(cond_format->mid_value_string);
    free(cond_format->max_value_string);
    free(cond_format->type_string);
    free(cond_format->guid);

    free(cond_format);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
cmpq $0x0, -0x8(%rbp)
jne 0x47335
jmp 0x47382
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0x40(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0x78(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0x80(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rdi
callq 0xc0d0
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: free_filter_rules
STATIC void
_free_filter_rules(lxw_worksheet *worksheet)
{
    uint16_t i;

    if (!worksheet->filter_rules)
        return;

    for (i = 0; i < worksheet->num_filter_rules; i++)
        _free_filter_rule(worksheet->filter_rules[i]);

    free(worksheet->filter_rules);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
cmpq $0x0, 0x3b0(%rax)
jne 0x473ac
jmp 0x473fb
movw $0x0, -0xa(%rbp)
movzwl -0xa(%rbp), %eax
movq -0x8(%rbp), %rcx
movzwl 0x3b8(%rcx), %ecx
cmpl %ecx, %eax
jge 0x473eb
movq -0x8(%rbp), %rax
movq 0x3b0(%rax), %rax
movzwl -0xa(%rbp), %ecx
movq (%rax,%rcx,8), %rdi
callq 0x52fa0
movw -0xa(%rbp), %ax
addw $0x1, %ax
movw %ax, -0xa(%rbp)
jmp 0x473b2
movq -0x8(%rbp), %rax
movq 0x3b0(%rax), %rdi
callq 0xc0d0
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: free_cell
STATIC void
_free_cell(lxw_cell *cell)
{
    if (!cell)
        return;

    if (cell->type != NUMBER_CELL && cell->type != STRING_CELL
        && cell->type != BLANK_CELL && cell->type != BOOLEAN_CELL) {

        free((void *) cell->u.string);
    }

    free(cell->user_data1);
    free(cell->user_data2);

    _free_vml_object(cell->comment);

    free(cell);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
cmpq $0x0, -0x8(%rbp)
jne 0x47425
jmp 0x4748a
movq -0x8(%rbp), %rax
cmpl $0x1, 0x8(%rax)
je 0x4745a
movq -0x8(%rbp), %rax
cmpl $0x2, 0x8(%rax)
je 0x4745a
movq -0x8(%rbp), %rax
cmpl $0x8, 0x8(%rax)
je 0x4745a
movq -0x8(%rbp), %rax
cmpl $0x9, 0x8(%rax)
je 0x4745a
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0x38(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdi
callq 0x465f0
movq -0x8(%rbp), %rdi
callq 0xc0d0
addq $0x10, %rsp
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/worksheet.c
// Function: lxw_basename
const char *
lxw_basename(const char *path)
{

    const char *forward_slash;
    const char *back_slash;

    if (!path)
        return NULL;

    forward_slash = strrchr(path, '/');
    back_slash = strrchr(path, '\\');

    if (!forward_slash && !back_slash)
        return path;

    if (forward_slash > back_slash)
        return forward_slash + 1;
    else
        return back_slash + 1;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x474ad
movq $0x0, -0x8(%rbp)
jmp 0x4750d
movq -0x10(%rbp), %rdi
movl $0x2f, %esi
callq 0xc610
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rdi
movl $0x5c, %esi
callq 0xc610
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0x474e9
cmpq $0x0, -0x20(%rbp)
jne 0x474e9
movq -0x10(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x4750d
movq -0x18(%rbp), %rax
cmpq -0x20(%rbp), %rax
jbe 0x47501
movq -0x18(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x8(%rbp)
jmp 0x4750d
movq -0x20(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/worksheet.c
// Function: validation_list_length
size_t
_validation_list_length(const char **list)
{
    uint8_t i = 0;
    size_t length = 0;

    if (!list || !list[0])
        return 0;

    while (list[i] && length < LXW_VALIDATION_MAX_STRING_LENGTH) {
        /* Include commas in the length. */
        length += 1 + lxw_utf8_strlen(list[i]);
        i++;
    }

    /* Adjust the count for extraneous comma at end. */
    length--;

    return length;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movb $0x0, -0x11(%rbp)
movq $0x0, -0x20(%rbp)
cmpq $0x0, -0x10(%rbp)
je 0x47549
movq -0x10(%rbp), %rax
cmpq $0x0, (%rax)
jne 0x47553
movq $0x0, -0x8(%rbp)
jmp 0x475bd
jmp 0x47555
movq -0x10(%rbp), %rcx
movzbl -0x11(%rbp), %eax
movl %eax, %edx
xorl %eax, %eax
cmpq $0x0, (%rcx,%rdx,8)
movb %al, -0x21(%rbp)
je 0x47579
cmpq $0xff, -0x20(%rbp)
setb %al
movb %al, -0x21(%rbp)
movb -0x21(%rbp), %al
testb $0x1, %al
jne 0x47582
jmp 0x475a9
movq -0x10(%rbp), %rax
movzbl -0x11(%rbp), %ecx
movq (%rax,%rcx,8), %rdi
callq 0xd180
addq $0x1, %rax
addq -0x20(%rbp), %rax
movq %rax, -0x20(%rbp)
movb -0x11(%rbp), %al
addb $0x1, %al
movb %al, -0x11(%rbp)
jmp 0x47555
movq -0x20(%rbp), %rax
addq $-0x1, %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/worksheet.c
// Function: validation_list_to_csv
char *
_validation_list_to_csv(const char **list)
{
    uint8_t i = 0;
    char *str;

    /* Create a buffer for the concatenated, and quoted, string. */
    /* Allow for 4 byte UTF-8 chars and add 3 bytes for quotes and EOL. */
    str = calloc(1, LXW_VALIDATION_MAX_STRING_LENGTH * 4 + 3);
    if (!str)
        return NULL;

    /* Add the start quote and first element. */
    strcat(str, "\"");
    strcat(str, list[0]);

    /* Add the other elements preceded by a comma. */
    i = 1;
    while (list[i]) {
        strcat(str, ",");
        strcat(str, list[i]);
        i++;
    }

    /* Add the end quote. */
    strcat(str, "\"");

    return str;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movb $0x0, -0x11(%rbp)
movl $0x1, %edi
movl $0x3ff, %esi            # imm = 0x3FF
callq 0xc870
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
jne 0x47604
movq $0x0, -0x8(%rbp)
jmp 0x4767e
movq -0x20(%rbp), %rdi
leaq 0x271bf(%rip), %rsi     # 0x6e7ce
callq 0xcf50
movq -0x20(%rbp), %rdi
movq -0x10(%rbp), %rax
movq (%rax), %rsi
callq 0xcf50
movb $0x1, -0x11(%rbp)
movq -0x10(%rbp), %rax
movzbl -0x11(%rbp), %ecx
cmpq $0x0, (%rax,%rcx,8)
je 0x47666
movq -0x20(%rbp), %rdi
leaq 0x2502b(%rip), %rsi     # 0x6c66d
callq 0xcf50
movq -0x20(%rbp), %rdi
movq -0x10(%rbp), %rax
movzbl -0x11(%rbp), %ecx
movq (%rax,%rcx,8), %rsi
callq 0xcf50
movb -0x11(%rbp), %al
addb $0x1, %al
movb %al, -0x11(%rbp)
jmp 0x47628
movq -0x20(%rbp), %rdi
leaq 0x2715d(%rip), %rsi     # 0x6e7ce
callq 0xcf50
movq -0x20(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %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: set_custom_filter
void
_set_custom_filter(lxw_filter_rule_obj *rule_obj)
{
    rule_obj->is_custom = LXW_TRUE;

    if (rule_obj->criteria1 == LXW_FILTER_CRITERIA_EQUAL_TO)
        rule_obj->is_custom = LXW_FALSE;

    if (rule_obj->criteria1 == LXW_FILTER_CRITERIA_BLANKS)
        rule_obj->is_custom = LXW_FALSE;

    if (rule_obj->criteria2 != LXW_FILTER_CRITERIA_NONE) {
        if (rule_obj->criteria1 == LXW_FILTER_CRITERIA_EQUAL_TO)
            rule_obj->is_custom = LXW_FALSE;

        if (rule_obj->criteria1 == LXW_FILTER_CRITERIA_BLANKS)
            rule_obj->is_custom = LXW_FALSE;

        if (rule_obj->type == LXW_FILTER_TYPE_AND)
            rule_obj->is_custom = LXW_TRUE;
    }

    if (rule_obj->value1_string && strpbrk(rule_obj->value1_string, "*?"))
        rule_obj->is_custom = LXW_TRUE;

    if (rule_obj->value2_string && strpbrk(rule_obj->value2_string, "*?"))
        rule_obj->is_custom = LXW_TRUE;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movb $0x1, 0x1(%rax)
movq -0x8(%rbp), %rax
movzbl 0x6(%rax), %eax
cmpl $0x1, %eax
jne 0x476b9
movq -0x8(%rbp), %rax
movb $0x0, 0x1(%rax)
movq -0x8(%rbp), %rax
movzbl 0x6(%rax), %eax
cmpl $0x7, %eax
jne 0x476ce
movq -0x8(%rbp), %rax
movb $0x0, 0x1(%rax)
movq -0x8(%rbp), %rax
movzbl 0x7(%rax), %eax
cmpl $0x0, %eax
je 0x4771b
movq -0x8(%rbp), %rax
movzbl 0x6(%rax), %eax
cmpl $0x1, %eax
jne 0x476f0
movq -0x8(%rbp), %rax
movb $0x0, 0x1(%rax)
movq -0x8(%rbp), %rax
movzbl 0x6(%rax), %eax
cmpl $0x7, %eax
jne 0x47705
movq -0x8(%rbp), %rax
movb $0x0, 0x1(%rax)
movq -0x8(%rbp), %rax
movzbl (%rax), %eax
cmpl $0x2, %eax
jne 0x47719
movq -0x8(%rbp), %rax
movb $0x1, 0x1(%rax)
jmp 0x4771b
movq -0x8(%rbp), %rax
cmpq $0x0, 0x18(%rax)
je 0x47748
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rdi
leaq 0x24d1e(%rip), %rsi     # 0x6c453
callq 0xcbb0
cmpq $0x0, %rax
je 0x47748
movq -0x8(%rbp), %rax
movb $0x1, 0x1(%rax)
movq -0x8(%rbp), %rax
cmpq $0x0, 0x20(%rax)
je 0x47775
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rdi
leaq 0x24cf1(%rip), %rsi     # 0x6c453
callq 0xcbb0
cmpq $0x0, %rax
je 0x47775
movq -0x8(%rbp), %rax
movb $0x1, 0x1(%rax)
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: set_default_table_columns
lxw_error
_set_default_table_columns(lxw_table_obj *table_obj)
{

    char col_name[LXW_ATTR_32];
    char *header;
    uint16_t i;
    lxw_table_column *column;
    uint16_t num_cols = table_obj->num_cols;
    lxw_table_column **columns = table_obj->columns;

    for (i = 0; i < num_cols; i++) {
        lxw_snprintf(col_name, LXW_ATTR_32, "Column%d", i + 1);

        column = calloc(num_cols, sizeof(lxw_table_column));
        RETURN_ON_MEM_ERROR(column, LXW_ERROR_MEMORY_MALLOC_FAILED);

        header = lxw_strdup(col_name);
        if (!header) {
            free(column);
            RETURN_ON_MEM_ERROR(header, LXW_ERROR_MEMORY_MALLOC_FAILED);
        }
        columns[i] = column;
        columns[i]->header = header;
    }

    return LXW_NO_ERROR;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movw 0x32(%rax), %ax
movw %ax, -0x4a(%rbp)
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x58(%rbp)
movw $0x0, -0x3a(%rbp)
movzwl -0x3a(%rbp), %eax
movzwl -0x4a(%rbp), %ecx
cmpl %ecx, %eax
jge 0x47a5e
leaq -0x30(%rbp), %rdi
movzwl -0x3a(%rbp), %ecx
addl $0x1, %ecx
movl $0x20, %esi
leaq 0x24cd8(%rip), %rdx     # 0x6c659
movb $0x0, %al
callq 0xc5d0
movzwl -0x4a(%rbp), %eax
movl %eax, %edi
movl $0x38, %esi
callq 0xc870
movq %rax, -0x48(%rbp)
cmpq $0x0, -0x48(%rbp)
jne 0x479d3
movq 0x3564e(%rip), %rax     # 0x7cff8
movq (%rax), %rdi
leaq 0x1e71c(%rip), %rsi     # 0x660d0
leaq 0x24a39(%rip), %rdx     # 0x6c3f4
movl $0x677, %ecx            # imm = 0x677
movb $0x0, %al
callq 0xc8f0
movl $0x1, -0x4(%rbp)
jmp 0x47a65
jmp 0x479d5
leaq -0x30(%rbp), %rdi
callq 0xcd80
movq %rax, -0x38(%rbp)
cmpq $0x0, -0x38(%rbp)
jne 0x47a2a
movq -0x48(%rbp), %rdi
callq 0xc0d0
cmpq $0x0, -0x38(%rbp)
jne 0x47a26
movq 0x355f8(%rip), %rax     # 0x7cff8
movq (%rax), %rdi
leaq 0x1e6c6(%rip), %rsi     # 0x660d0
leaq 0x249e3(%rip), %rdx     # 0x6c3f4
movl $0x67c, %ecx            # imm = 0x67C
movb $0x0, %al
callq 0xc8f0
movl $0x1, -0x4(%rbp)
jmp 0x47a65
jmp 0x47a28
jmp 0x47a2a
movq -0x48(%rbp), %rdx
movq -0x58(%rbp), %rax
movzwl -0x3a(%rbp), %ecx
movq %rdx, (%rax,%rcx,8)
movq -0x38(%rbp), %rcx
movq -0x58(%rbp), %rax
movzwl -0x3a(%rbp), %edx
movq (%rax,%rdx,8), %rax
movq %rcx, (%rax)
movw -0x3a(%rbp), %ax
addw $0x1, %ax
movw %ax, -0x3a(%rbp)
jmp 0x4795a
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x60, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/worksheet.c
// Function: expand_table_formula
char *
_expand_table_formula(const char *formula)
{
    char *expanded;
    const char *ptr;
    size_t i;
    size_t ref_count = 0;
    size_t expanded_len;

    ptr = formula;

    while (*ptr++) {
        if (*ptr == '@')
            ref_count++;
    }

    if (ref_count == 0) {
        /* String doesn't need to be expanded. Just copy it. */
        expanded = lxw_strdup_formula(formula);
    }
    else {
        /* Convert "@" in the formula string to "[#This Row],".  */
        expanded_len = strlen(formula) + (sizeof(LXW_THIS_ROW) * ref_count);
        expanded = calloc(1, expanded_len);

        if (!expanded)
            return NULL;

        i = 0;
        ptr = formula;
        /* Ignore the = in the formula. */
        if (*ptr == '=')
            ptr++;

        /* Do the "@" expansion. */
        while (*ptr) {
            if (*ptr == '@') {
                strcat(&expanded[i], LXW_THIS_ROW);
                i += sizeof(LXW_THIS_ROW) - 1;
            }
            else {
                expanded[i] = *ptr;
                i++;
            }

            ptr++;
        }
    }

    return expanded;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x10(%rbp)
movq $0x0, -0x30(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, -0x20(%rbp)
cmpb $0x0, (%rax)
je 0x47aba
movq -0x20(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x40, %eax
jne 0x47ab8
movq -0x30(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x30(%rbp)
jmp 0x47a8c
cmpq $0x0, -0x30(%rbp)
jne 0x47ad3
movq -0x10(%rbp), %rdi
callq 0xc0f0
movq %rax, -0x18(%rbp)
jmp 0x47b9c
movq -0x10(%rbp), %rdi
callq 0xc4e0
imulq $0xd, -0x30(%rbp), %rcx
addq %rcx, %rax
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rsi
movl $0x1, %edi
callq 0xc870
movq %rax, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0x47b0e
movq $0x0, -0x8(%rbp)
jmp 0x47ba4
movq $0x0, -0x28(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x3d, %eax
jne 0x47b36
movq -0x20(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x20(%rbp)
jmp 0x47b38
movq -0x20(%rbp), %rax
cmpb $0x0, (%rax)
je 0x47b9a
movq -0x20(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x40, %eax
jne 0x47b6f
movq -0x18(%rbp), %rdi
addq -0x28(%rbp), %rdi
leaq 0x24b06(%rip), %rsi     # 0x6c662
callq 0xcf50
movq -0x28(%rbp), %rax
addq $0xc, %rax
movq %rax, -0x28(%rbp)
jmp 0x47b8c
movq -0x20(%rbp), %rax
movb (%rax), %dl
movq -0x18(%rbp), %rax
movq -0x28(%rbp), %rcx
movb %dl, (%rax,%rcx)
movq -0x28(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x28(%rbp)
movq -0x20(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x20(%rbp)
jmp 0x47b38
jmp 0x47b9c
movq -0x18(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x40, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/worksheet.c
// Function: worksheet_write_formula_num
lxw_error
worksheet_write_formula_num(lxw_worksheet *self,
                            lxw_row_t row_num,
                            lxw_col_t col_num,
                            const char *formula,
                            lxw_format *format, double result)
{
    lxw_cell *cell;
    char *formula_copy;
    lxw_error err;

    if (!formula)
        return LXW_ERROR_NULL_PARAMETER_IGNORED;

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

    /* Strip leading "=" from formula. */
    if (formula[0] == '=')
        formula_copy = lxw_strdup(formula + 1);
    else
        formula_copy = lxw_strdup(formula);

    cell = _new_formula_cell(row_num, col_num, formula_copy, format);
    cell->formula_result = result;

    _insert_cell(self, row_num, col_num, cell);

    return LXW_NO_ERROR;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movw %dx, %ax
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movw %ax, -0x16(%rbp)
movq %rcx, -0x20(%rbp)
movq %r8, -0x28(%rbp)
movsd %xmm0, -0x30(%rbp)
cmpq $0x0, -0x20(%rbp)
jne 0x47fa6
movl $0xc, -0x4(%rbp)
jmp 0x48040
movq -0x10(%rbp), %rdi
movl -0x14(%rbp), %esi
xorl %r8d, %r8d
movzwl -0x16(%rbp), %edx
movl %r8d, %ecx
callq 0x4ff90
movl %eax, -0x44(%rbp)
cmpl $0x0, -0x44(%rbp)
je 0x47fcd
movl -0x44(%rbp), %eax
movl %eax, -0x4(%rbp)
jmp 0x48040
movq -0x20(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x3d, %eax
jne 0x47fec
movq -0x20(%rbp), %rdi
addq $0x1, %rdi
callq 0xcd80
movq %rax, -0x40(%rbp)
jmp 0x47ff9
movq -0x20(%rbp), %rdi
callq 0xcd80
movq %rax, -0x40(%rbp)
movl -0x14(%rbp), %edi
movw -0x16(%rbp), %ax
movq -0x40(%rbp), %rdx
movq -0x28(%rbp), %rcx
movzwl %ax, %esi
callq 0x50420
movq %rax, -0x38(%rbp)
movsd -0x30(%rbp), %xmm0
movq -0x38(%rbp), %rax
movsd %xmm0, 0x28(%rax)
movq -0x10(%rbp), %rdi
movl -0x14(%rbp), %esi
movw -0x16(%rbp), %ax
movq -0x38(%rbp), %rcx
movzwl %ax, %edx
callq 0x50170
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x50, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/worksheet.c
// Function: write_column_formula
void
_write_column_formula(lxw_worksheet *self, lxw_row_t first_row,
                      lxw_row_t last_row, lxw_col_t col,
                      lxw_table_column *column)
{
    lxw_row_t row;
    const char *formula = column->formula;
    lxw_format *format = column->format;

    for (row = first_row; row <= last_row; row++)
        worksheet_write_formula(self, row, col, formula, format);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movw %cx, %ax
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl %edx, -0x10(%rbp)
movw %ax, -0x12(%rbp)
movq %r8, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x30(%rbp)
movq -0x20(%rbp), %rax
movq 0x28(%rax), %rax
movq %rax, -0x38(%rbp)
movl -0xc(%rbp), %eax
movl %eax, -0x24(%rbp)
movl -0x24(%rbp), %eax
cmpl -0x10(%rbp), %eax
ja 0x480b9
movq -0x8(%rbp), %rdi
movl -0x24(%rbp), %esi
movw -0x12(%rbp), %ax
movq -0x30(%rbp), %rcx
movq -0x38(%rbp), %r8
movzwl %ax, %edx
callq 0xcb50
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0x4808b
addq $0x40, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/worksheet.c
// Function: check_table_rows
lxw_error
_check_table_rows(lxw_row_t first_row, lxw_row_t last_row,
                  lxw_table_options *user_options)
{
    lxw_row_t num_non_header_rows = last_row - first_row;

    if (user_options && user_options->no_header_row == LXW_TRUE)
        num_non_header_rows++;

    if (num_non_header_rows == 0) {
        LXW_WARN_FORMAT("worksheet_add_table(): "
                        "table must have at least 1 non-header row.");
        return LXW_ERROR_PARAMETER_VALIDATION;
    }

    return LXW_NO_ERROR;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movl %edi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movq %rdx, -0x18(%rbp)
movl -0xc(%rbp), %eax
subl -0x8(%rbp), %eax
movl %eax, -0x1c(%rbp)
cmpq $0x0, -0x18(%rbp)
je 0x48428
movq -0x18(%rbp), %rax
movzbl 0x8(%rax), %eax
cmpl $0x1, %eax
jne 0x48428
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
cmpl $0x0, -0x1c(%rbp)
jne 0x4844f
movq 0x34bc3(%rip), %rax     # 0x7cff8
movq (%rax), %rdi
leaq 0x2429e(%rip), %rsi     # 0x6c6dd
movb $0x0, %al
callq 0xc8f0
movl $0xd, -0x4(%rbp)
jmp 0x48456
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: worksheet_position_vml_object
void
_worksheet_position_vml_object(lxw_worksheet *self, lxw_vml_obj *vml_obj)
{
    lxw_object_properties object_props;
    lxw_drawing_object drawing_object;

    object_props.col = vml_obj->start_col;
    object_props.row = vml_obj->start_row;
    object_props.x_offset = vml_obj->x_offset;
    object_props.y_offset = vml_obj->y_offset;
    object_props.width = vml_obj->width;
    object_props.height = vml_obj->height;

    drawing_object.anchor = LXW_OBJECT_DONT_MOVE_DONT_SIZE;

    _worksheet_position_object_pixels(self, &object_props, &drawing_object);

    vml_obj->from.col = drawing_object.from.col;
    vml_obj->from.row = drawing_object.from.row;
    vml_obj->from.col_offset = drawing_object.from.col_offset;
    vml_obj->from.row_offset = drawing_object.from.row_offset;
    vml_obj->to.col = drawing_object.to.col;
    vml_obj->to.row = drawing_object.to.row;
    vml_obj->to.col_offset = drawing_object.to.col_offset;
    vml_obj->to.row_offset = drawing_object.to.row_offset;
    vml_obj->col_absolute = drawing_object.col_absolute;
    vml_obj->row_absolute = drawing_object.row_absolute;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x150, %rsp            # imm = 0x150
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movw 0xc(%rax), %ax
movw %ax, -0xb4(%rbp)
movq -0x10(%rbp), %rax
movl 0x8(%rax), %eax
movl %eax, -0xb8(%rbp)
movq -0x10(%rbp), %rax
movl 0x10(%rax), %eax
movl %eax, -0xd0(%rbp)
movq -0x10(%rbp), %rax
movl 0x14(%rax), %eax
movl %eax, -0xcc(%rbp)
movq -0x10(%rbp), %rax
movl 0x28(%rax), %eax
cvtsi2sd %rax, %xmm0
movsd %xmm0, -0x68(%rbp)
movq -0x10(%rbp), %rax
movl 0x2c(%rax), %eax
cvtsi2sd %rax, %xmm0
movsd %xmm0, -0x60(%rbp)
movb $0x3, -0x14f(%rbp)
movq -0x8(%rbp), %rdi
leaq -0xd0(%rbp), %rsi
leaq -0x150(%rbp), %rdx
callq 0x48f00
movl -0x148(%rbp), %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x58(%rax)
movl -0x144(%rbp), %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x5c(%rax)
movsd -0x140(%rbp), %xmm0
movq -0x10(%rbp), %rax
movsd %xmm0, 0x60(%rax)
movsd -0x138(%rbp), %xmm0
movq -0x10(%rbp), %rax
movsd %xmm0, 0x68(%rax)
movl -0x130(%rbp), %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x70(%rax)
movl -0x12c(%rbp), %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x74(%rax)
movsd -0x128(%rbp), %xmm0
movq -0x10(%rbp), %rax
movsd %xmm0, 0x78(%rax)
movsd -0x120(%rbp), %xmm0
movq -0x10(%rbp), %rax
movsd %xmm0, 0x80(%rax)
movq -0x118(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x110(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x20(%rax)
addq $0x150, %rsp            # imm = 0x150
popq %rbp
retq
nopl (%rax,%rax)