LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/app.c
// Function: lxw_app_free
void
lxw_app_free(lxw_app *app)
{
    lxw_heading_pair *heading_pair;
    lxw_part_name *part_name;

    if (!app)
        return;

    /* Free the lists in the App object. */
    if (app->heading_pairs) {
        while (!STAILQ_EMPTY(app->heading_pairs)) {
            heading_pair = STAILQ_FIRST(app->heading_pairs);
            STAILQ_REMOVE_HEAD(app->heading_pairs, list_pointers);
            free(heading_pair->key);
            free(heading_pair->value);
            free(heading_pair);
        }
        free(app->heading_pairs);
    }

    if (app->part_names) {
        while (!STAILQ_EMPTY(app->part_names)) {
            part_name = STAILQ_FIRST(app->part_names);
            STAILQ_REMOVE_HEAD(app->part_names, list_pointers);
            free(part_name->name);
            free(part_name);
        }
        free(app->part_names);
    }

    free(app);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
cmpq $0x0, -0x8(%rbp)
jne 0x13148
jmp 0x13280
movq -0x8(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0x131e6
jmp 0x13159
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
cmpq $0x0, (%rax)
sete %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x13170
jmp 0x131d9
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movq %rax, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movq 0x10(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x8(%rcx), %rcx
movq %rax, (%rcx)
cmpq $0x0, %rax
jne 0x131b3
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rcx
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq %rcx, 0x8(%rax)
jmp 0x131b5
movq -0x10(%rbp), %rax
movq (%rax), %rdi
callq 0xc0d0
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0xc0d0
movq -0x10(%rbp), %rdi
callq 0xc0d0
jmp 0x13159
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
cmpq $0x0, 0x10(%rax)
je 0x13277
jmp 0x131f7
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
cmpq $0x0, (%rax)
sete %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x1320e
jmp 0x1326a
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movq (%rax), %rax
movq %rax, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movq (%rax), %rax
movq 0x8(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x10(%rcx), %rcx
movq %rax, (%rcx)
cmpq $0x0, %rax
jne 0x13251
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rcx
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movq %rcx, 0x8(%rax)
jmp 0x13253
movq -0x18(%rbp), %rax
movq (%rax), %rdi
callq 0xc0d0
movq -0x18(%rbp), %rdi
callq 0xc0d0
jmp 0x131f7
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rdi
callq 0xc0d0
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/app.c
// Function: lxw_app_assemble_xml_file
void
lxw_app_assemble_xml_file(lxw_app *self)
{

    /* Write the XML declaration. */
    _app_xml_declaration(self);

    _write_properties(self);
    _write_application(self);
    _write_doc_security(self);
    _write_scale_crop(self);
    _write_heading_pairs(self);
    _write_titles_of_parts(self);
    _write_manager(self);
    _write_company(self);
    _write_links_up_to_date(self);
    _write_shared_doc(self);
    _write_hyperlink_base(self);
    _write_hyperlinks_changed(self);
    _write_app_version(self);

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

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
callq 0x13340
movq -0x8(%rbp), %rdi
callq 0x13360
movq -0x8(%rbp), %rdi
callq 0x134a0
movq -0x8(%rbp), %rdi
callq 0x134d0
movq -0x8(%rbp), %rdi
callq 0x13530
movq -0x8(%rbp), %rdi
callq 0x13560
movq -0x8(%rbp), %rdi
callq 0x135b0
movq -0x8(%rbp), %rdi
callq 0x13600
movq -0x8(%rbp), %rdi
callq 0x13660
movq -0x8(%rbp), %rdi
callq 0x136d0
movq -0x8(%rbp), %rdi
callq 0x13700
movq -0x8(%rbp), %rdi
callq 0x13730
movq -0x8(%rbp), %rdi
callq 0x13790
movq -0x8(%rbp), %rdi
callq 0x137c0
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x54f2a(%rip), %rsi     # 0x68252
callq 0xc060
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/app.c
// Function: write_properties
STATIC void
_write_properties(lxw_app *self)
{
    struct xml_attribute_list attributes;
    struct xml_attribute *attribute;
    char xmlns[] = LXW_SCHEMA_OFFICEDOC "/extended-properties";
    char xmlns_vt[] = LXW_SCHEMA_OFFICEDOC "/docPropsVTypes";

    LXW_INIT_ATTRIBUTES();
    LXW_PUSH_ATTRIBUTES_STR("xmlns", xmlns);
    LXW_PUSH_ATTRIBUTES_STR("xmlns:vt", xmlns_vt);

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

    LXW_FREE_ATTRIBUTES();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xc0, %rsp
movq %rdi, -0x8(%rbp)
leaq -0x70(%rbp), %rdi
leaq 0x52e76(%rip), %rsi     # 0x661f0
movl $0x4a, %edx
callq 0xc980
leaq -0xc0(%rbp), %rdi
leaq 0x52eae(%rip), %rsi     # 0x66240
movl $0x45, %edx
callq 0xc980
movq $0x0, -0x18(%rbp)
leaq -0x18(%rbp), %rax
movq %rax, -0x10(%rbp)
jmp 0x133ae
leaq -0x70(%rbp), %rsi
leaq 0x52d48(%rip), %rdi     # 0x66101
callq 0xc030
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x20(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, (%rax)
movq -0x20(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x10(%rbp)
jmp 0x133ec
jmp 0x133ee
leaq -0xc0(%rbp), %rsi
leaq 0x52d0b(%rip), %rdi     # 0x66107
callq 0xc030
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x20(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, (%rax)
movq -0x20(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x10(%rbp)
jmp 0x1342f
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x54e15(%rip), %rsi     # 0x68252
leaq -0x18(%rbp), %rdx
callq 0xc390
jmp 0x13448
cmpq $0x0, -0x18(%rbp)
sete %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x13458
jmp 0x1348a
movq -0x18(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rax
movq 0x1040(%rax), %rax
movq %rax, -0x18(%rbp)
cmpq $0x0, %rax
jne 0x1347d
leaq -0x18(%rbp), %rax
movq %rax, -0x10(%rbp)
jmp 0x1347f
movq -0x20(%rbp), %rdi
callq 0xc0d0
jmp 0x13448
jmp 0x1348c
addq $0xc0, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/app.c
// Function: write_manager
STATIC void
_write_manager(lxw_app *self)
{
    lxw_doc_properties *properties = self->properties;

    if (!properties)
        return;

    if (properties->manager)
        lxw_xml_data_element(self->file, "Manager", properties->manager,
                             NULL);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x13621
jmp 0x1364b
movq -0x10(%rbp), %rax
cmpq $0x0, 0x18(%rax)
je 0x1364b
movq -0x8(%rbp), %rax
movq (%rax), %rdi
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rdx
leaq 0x52b4e(%rip), %rsi     # 0x66190
xorl %eax, %eax
movl %eax, %ecx
callq 0xcbd0
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/app.c
// Function: write_company
STATIC void
_write_company(lxw_app *self)
{
    lxw_doc_properties *properties = self->properties;

    if (properties && properties->company)
        lxw_xml_data_element(self->file, "Company", properties->company,
                             NULL);
    else
        lxw_xml_data_element(self->file, "Company", "", NULL);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
je 0x136ab
movq -0x10(%rbp), %rax
cmpq $0x0, 0x20(%rax)
je 0x136ab
movq -0x8(%rbp), %rax
movq (%rax), %rdi
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rdx
leaq 0x52af8(%rip), %rsi     # 0x66198
xorl %eax, %eax
movl %eax, %ecx
callq 0xcbd0
jmp 0x136c9
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x52adf(%rip), %rsi     # 0x66198
leaq 0x5bbf3(%rip), %rdx     # 0x6f2b3
xorl %eax, %eax
movl %eax, %ecx
callq 0xcbd0
addq $0x10, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/app.c
// Function: write_hyperlink_base
STATIC void
_write_hyperlink_base(lxw_app *self)
{
    lxw_doc_properties *properties = self->properties;

    if (!properties)
        return;

    if (properties->hyperlink_base)
        lxw_xml_data_element(self->file, "HyperlinkBase",
                             properties->hyperlink_base, NULL);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x13751
jmp 0x1377b
movq -0x10(%rbp), %rax
cmpq $0x0, 0x48(%rax)
je 0x1377b
movq -0x8(%rbp), %rax
movq (%rax), %rdi
movq -0x10(%rbp), %rax
movq 0x48(%rax), %rdx
leaq 0x52a46(%rip), %rsi     # 0x661b8
xorl %eax, %eax
movl %eax, %ecx
callq 0xcbd0
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/app.c
// Function: lxw_app_add_part_name
void
lxw_app_add_part_name(lxw_app *self, const char *name)
{
    lxw_part_name *part_name;

    if (!name)
        return;

    part_name = calloc(1, sizeof(lxw_part_name));
    GOTO_LABEL_ON_MEM_ERROR(part_name, mem_error);

    part_name->name = lxw_strdup(name);
    GOTO_LABEL_ON_MEM_ERROR(part_name->name, mem_error);

    STAILQ_INSERT_TAIL(self->part_names, part_name, list_pointers);
    self->num_part_names++;

    return;

mem_error:
    if (part_name) {
        free(part_name->name);
        free(part_name);
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x1380c
jmp 0x138f6
movl $0x1, %edi
movl $0x10, %esi
callq 0xc870
movq %rax, -0x18(%rbp)
cmpq $0x0, -0x18(%rbp)
jne 0x1384f
movq 0x697cb(%rip), %rax     # 0x7cff8
movq (%rax), %rdi
leaq 0x52899(%rip), %rsi     # 0x660d0
leaq 0x528bd(%rip), %rdx     # 0x660fb
movl $0x18d, %ecx            # imm = 0x18D
movb $0x0, %al
callq 0xc8f0
jmp 0x138da
jmp 0x13851
movq -0x10(%rbp), %rdi
callq 0xcd80
movq %rax, %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movq -0x18(%rbp), %rax
cmpq $0x0, (%rax)
jne 0x13894
movq 0x69783(%rip), %rax     # 0x7cff8
movq (%rax), %rdi
leaq 0x52851(%rip), %rsi     # 0x660d0
leaq 0x52875(%rip), %rdx     # 0x660fb
movl $0x190, %ecx            # imm = 0x190
movb $0x0, %al
callq 0xc8f0
jmp 0x138da
jmp 0x13896
jmp 0x13898
movq -0x18(%rbp), %rax
movq $0x0, 0x8(%rax)
movq -0x18(%rbp), %rcx
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq %rcx, (%rax)
movq -0x18(%rbp), %rcx
addq $0x8, %rcx
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movq %rcx, 0x8(%rax)
movq -0x8(%rbp), %rax
movl 0x24(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x24(%rax)
jmp 0x138f6
cmpq $0x0, -0x18(%rbp)
je 0x138f6
movq -0x18(%rbp), %rax
movq (%rax), %rdi
callq 0xc0d0
movq -0x18(%rbp), %rdi
callq 0xc0d0
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/app.c
// Function: lxw_app_add_heading_pair
void
lxw_app_add_heading_pair(lxw_app *self, const char *key, const char *value)
{
    lxw_heading_pair *heading_pair;

    if (!key || !value)
        return;

    heading_pair = calloc(1, sizeof(lxw_heading_pair));
    GOTO_LABEL_ON_MEM_ERROR(heading_pair, mem_error);

    heading_pair->key = lxw_strdup(key);
    GOTO_LABEL_ON_MEM_ERROR(heading_pair->key, mem_error);

    heading_pair->value = lxw_strdup(value);
    GOTO_LABEL_ON_MEM_ERROR(heading_pair->value, mem_error);

    STAILQ_INSERT_TAIL(self->heading_pairs, heading_pair, list_pointers);
    self->num_heading_pairs++;

    return;

mem_error:
    if (heading_pair) {
        free(heading_pair->key);
        free(heading_pair->value);
        free(heading_pair);
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
cmpq $0x0, -0x10(%rbp)
je 0x13922
cmpq $0x0, -0x18(%rbp)
jne 0x13927
jmp 0x13a68
movl $0x1, %edi
movl $0x18, %esi
callq 0xc870
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
jne 0x1396a
movq 0x696b0(%rip), %rax     # 0x7cff8
movq (%rax), %rdi
leaq 0x5277e(%rip), %rsi     # 0x660d0
leaq 0x527a2(%rip), %rdx     # 0x660fb
movl $0x1ab, %ecx            # imm = 0x1AB
movb $0x0, %al
callq 0xc8f0
jmp 0x13a3f
jmp 0x1396c
movq -0x10(%rbp), %rdi
callq 0xcd80
movq %rax, %rcx
movq -0x20(%rbp), %rax
movq %rcx, (%rax)
movq -0x20(%rbp), %rax
cmpq $0x0, (%rax)
jne 0x139b2
movq 0x69668(%rip), %rax     # 0x7cff8
movq (%rax), %rdi
leaq 0x52736(%rip), %rsi     # 0x660d0
leaq 0x5275a(%rip), %rdx     # 0x660fb
movl $0x1ae, %ecx            # imm = 0x1AE
movb $0x0, %al
callq 0xc8f0
jmp 0x13a3f
jmp 0x139b4
movq -0x18(%rbp), %rdi
callq 0xcd80
movq %rax, %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x20(%rbp), %rax
cmpq $0x0, 0x8(%rax)
jne 0x139f9
movq 0x6961e(%rip), %rax     # 0x7cff8
movq (%rax), %rdi
leaq 0x526ec(%rip), %rsi     # 0x660d0
leaq 0x52710(%rip), %rdx     # 0x660fb
movl $0x1b1, %ecx            # imm = 0x1B1
movb $0x0, %al
callq 0xc8f0
jmp 0x13a3f
jmp 0x139fb
jmp 0x139fd
movq -0x20(%rbp), %rax
movq $0x0, 0x10(%rax)
movq -0x20(%rbp), %rcx
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq 0x8(%rax), %rax
movq %rcx, (%rax)
movq -0x20(%rbp), %rcx
addq $0x10, %rcx
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq %rcx, 0x8(%rax)
movq -0x8(%rbp), %rax
movl 0x20(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x20(%rax)
jmp 0x13a68
cmpq $0x0, -0x20(%rbp)
je 0x13a68
movq -0x20(%rbp), %rax
movq (%rax), %rdi
callq 0xc0d0
movq -0x20(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0xc0d0
movq -0x20(%rbp), %rdi
callq 0xc0d0
addq $0x20, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/app.c
// Function: write_vt_vector_heading_pairs
STATIC void
_write_vt_vector_heading_pairs(lxw_app *self)
{
    struct xml_attribute_list attributes;
    struct xml_attribute *attribute;
    lxw_heading_pair *heading_pair;

    LXW_INIT_ATTRIBUTES();
    LXW_PUSH_ATTRIBUTES_INT("size", self->num_heading_pairs * 2);
    LXW_PUSH_ATTRIBUTES_STR("baseType", "variant");

    lxw_xml_start_tag(self->file, "vt:vector", &attributes);

    STAILQ_FOREACH(heading_pair, self->heading_pairs, list_pointers) {
        _write_vt_variant(self, heading_pair->key, heading_pair->value);
    }

    lxw_xml_end_tag(self->file, "vt:vector");

    LXW_FREE_ATTRIBUTES();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq $0x0, -0x18(%rbp)
leaq -0x18(%rbp), %rax
movq %rax, -0x10(%rbp)
jmp 0x13a8e
movq -0x8(%rbp), %rax
movl 0x20(%rax), %eax
shll %eax
movl %eax, %eax
movl %eax, %esi
leaq 0x53544(%rip), %rdi     # 0x66fe6
callq 0xc1b0
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x20(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, (%rax)
movq -0x20(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x10(%rbp)
jmp 0x13ad5
jmp 0x13ad7
leaq 0x52677(%rip), %rdi     # 0x66155
leaq 0x52686(%rip), %rsi     # 0x6616b
callq 0xc030
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x20(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, (%rax)
movq -0x20(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x10(%rbp)
jmp 0x13b18
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x52638(%rip), %rsi     # 0x6615e
leaq -0x18(%rbp), %rdx
callq 0xc390
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rax
movq (%rax), %rax
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
je 0x13b6b
movq -0x8(%rbp), %rdi
movq -0x28(%rbp), %rax
movq (%rax), %rsi
movq -0x28(%rbp), %rax
movq 0x8(%rax), %rdx
callq 0x13bd0
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x28(%rbp)
jmp 0x13b3e
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x525e5(%rip), %rsi     # 0x6615e
callq 0xc060
jmp 0x13b80
cmpq $0x0, -0x18(%rbp)
sete %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x13b90
jmp 0x13bc2
movq -0x18(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rax
movq 0x1040(%rax), %rax
movq %rax, -0x18(%rbp)
cmpq $0x0, %rax
jne 0x13bb5
leaq -0x18(%rbp), %rax
movq %rax, -0x10(%rbp)
jmp 0x13bb7
movq -0x20(%rbp), %rdi
callq 0xc0d0
jmp 0x13b80
jmp 0x13bc4
addq $0x30, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/app.c
// Function: write_vt_variant
STATIC void
_write_vt_variant(lxw_app *self, const char *key, const char *value)
{
    /* Write the vt:lpstr element. */
    lxw_xml_start_tag(self->file, "vt:variant", NULL);
    _write_vt_lpstr(self, key);
    lxw_xml_end_tag(self->file, "vt:variant");

    /* Write the vt:i4 element. */
    lxw_xml_start_tag(self->file, "vt:variant", NULL);
    _write_vt_i4(self, value);
    lxw_xml_end_tag(self->file, "vt:variant");
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x52576(%rip), %rsi     # 0x66168
xorl %eax, %eax
movl %eax, %edx
callq 0xc390
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x13c60
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x52552(%rip), %rsi     # 0x66168
callq 0xc060
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x5253f(%rip), %rsi     # 0x66168
xorl %eax, %eax
movl %eax, %edx
callq 0xc390
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x13ca0
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x5251b(%rip), %rsi     # 0x66168
callq 0xc060
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/app.c
// Function: write_vt_vector_lpstr_named_parts
STATIC void
_write_vt_vector_lpstr_named_parts(lxw_app *self)
{
    struct xml_attribute_list attributes;
    struct xml_attribute *attribute;
    lxw_part_name *part_name;

    LXW_INIT_ATTRIBUTES();
    LXW_PUSH_ATTRIBUTES_INT("size", self->num_part_names);
    LXW_PUSH_ATTRIBUTES_STR("baseType", "lpstr");

    lxw_xml_start_tag(self->file, "vt:vector", &attributes);

    STAILQ_FOREACH(part_name, self->part_names, list_pointers) {
        _write_vt_lpstr(self, part_name->name);
    }

    lxw_xml_end_tag(self->file, "vt:vector");

    LXW_FREE_ATTRIBUTES();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq $0x0, -0x18(%rbp)
leaq -0x18(%rbp), %rax
movq %rax, -0x10(%rbp)
jmp 0x13cfe
movq -0x8(%rbp), %rax
movl 0x24(%rax), %eax
movl %eax, %esi
leaq 0x532d8(%rip), %rdi     # 0x66fe6
callq 0xc1b0
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x20(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, (%rax)
movq -0x20(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x10(%rbp)
jmp 0x13d41
jmp 0x13d43
leaq 0x5240b(%rip), %rdi     # 0x66155
leaq 0x52425(%rip), %rsi     # 0x66176
callq 0xc030
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x20(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, (%rax)
movq -0x20(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x10(%rbp)
jmp 0x13d84
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x523cc(%rip), %rsi     # 0x6615e
leaq -0x18(%rbp), %rdx
callq 0xc390
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movq (%rax), %rax
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
je 0x13dcf
movq -0x8(%rbp), %rdi
movq -0x28(%rbp), %rax
movq (%rax), %rsi
callq 0x13c60
movq -0x28(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x28(%rbp)
jmp 0x13daa
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x52381(%rip), %rsi     # 0x6615e
callq 0xc060
jmp 0x13de4
cmpq $0x0, -0x18(%rbp)
sete %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x13df4
jmp 0x13e26
movq -0x18(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rax
movq 0x1040(%rax), %rax
movq %rax, -0x18(%rbp)
cmpq $0x0, %rax
jne 0x13e19
leaq -0x18(%rbp), %rax
movq %rax, -0x10(%rbp)
jmp 0x13e1b
movq -0x20(%rbp), %rdi
callq 0xc0d0
jmp 0x13de4
jmp 0x13e28
addq $0x30, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/chart.c
// Function: chart_series_free
STATIC void
_chart_series_free(lxw_chart_series *series)
{
    if (!series)
        return;

    free(series->title.name);
    free(series->line);
    free(series->fill);
    free(series->pattern);
    free(series->label_num_format);
    free(series->label_line);
    free(series->label_fill);
    free(series->label_pattern);

    _chart_free_font(series->label_font);

    if (series->marker) {
        free(series->marker->line);
        free(series->marker->fill);
        free(series->marker->pattern);
        free(series->marker);
    }

    _chart_free_range(series->categories);
    _chart_free_range(series->values);
    _chart_free_range(series->title.range);
    _chart_free_points(series);
    _chart_free_data_labels(series);

    if (series->x_error_bars) {
        free(series->x_error_bars->line);
        free(series->x_error_bars);
    }

    if (series->y_error_bars) {
        free(series->y_error_bars->line);
        free(series->y_error_bars);
    }

    free(series->trendline_line);
    free(series->trendline_name);

    free(series);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
cmpq $0x0, -0x8(%rbp)
jne 0x14208
jmp 0x1439c
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0x60(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0x68(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0x70(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0xa0(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0xb0(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0xb8(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0xc0(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0xa8(%rax), %rdi
callq 0x143b0
movq -0x8(%rbp), %rax
cmpq $0x0, 0x78(%rax)
je 0x142d7
movq -0x8(%rbp), %rax
movq 0x78(%rax), %rax
movq 0x8(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0x78(%rax), %rax
movq 0x10(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0x78(%rax), %rax
movq 0x18(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0x78(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq (%rax), %rdi
callq 0x143e0
movq -0x8(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x143e0
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rdi
callq 0x143e0
movq -0x8(%rbp), %rdi
callq 0x16160
movq -0x8(%rbp), %rdi
callq 0x16540
movq -0x8(%rbp), %rax
cmpq $0x0, 0xc8(%rax)
je 0x14341
movq -0x8(%rbp), %rax
movq 0xc8(%rax), %rax
movq 0x10(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0xc8(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
cmpq $0x0, 0xd0(%rax)
je 0x14373
movq -0x8(%rbp), %rax
movq 0xd0(%rax), %rax
movq 0x10(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0xd0(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0x100(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0xf8(%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/chart.c
// Function: chart_free_font
STATIC void
_chart_free_font(lxw_chart_font *font)
{
    if (!font)
        return;

    free((void *) font->name);
    free(font);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
cmpq $0x0, -0x8(%rbp)
jne 0x143c5
jmp 0x143da
movq -0x8(%rbp), %rax
movq (%rax), %rdi
callq 0xc0d0
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/chart.c
// Function: chart_free_range
STATIC void
_chart_free_range(lxw_series_range *range)
{
    struct lxw_series_data_point *data_point;

    if (!range)
        return;

    if (range->data_cache) {
        while (!STAILQ_EMPTY(range->data_cache)) {
            data_point = STAILQ_FIRST(range->data_cache);
            free(data_point->string);
            STAILQ_REMOVE_HEAD(range->data_cache, list_pointers);

            free(data_point);
        }
        free(range->data_cache);
    }

    free(range->formula);
    free(range->sheetname);
    free(range);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
cmpq $0x0, -0x8(%rbp)
jne 0x143f8
jmp 0x144ac
movq -0x8(%rbp), %rax
cmpq $0x0, 0x20(%rax)
je 0x1448a
jmp 0x14409
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
cmpq $0x0, (%rax)
sete %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x14420
jmp 0x1447d
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
movq (%rax), %rax
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
movq (%rax), %rax
movq 0x20(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x20(%rcx), %rcx
movq %rax, (%rcx)
cmpq $0x0, %rax
jne 0x14470
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rcx
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
movq %rcx, 0x8(%rax)
jmp 0x14472
movq -0x10(%rbp), %rdi
callq 0xc0d0
jmp 0x14409
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq (%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0x8(%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/chart.c
// Function: chart_init_data_cache
STATIC lxw_error
_chart_init_data_cache(lxw_series_range *range)
{
    /* Initialize the series range data cache. */
    range->data_cache = calloc(1, sizeof(struct lxw_series_data_points));
    RETURN_ON_MEM_ERROR(range->data_cache, LXW_ERROR_MEMORY_MALLOC_FAILED);
    STAILQ_INIT(range->data_cache);

    return LXW_NO_ERROR;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x10(%rbp)
movl $0x1, %edi
movl $0x10, %esi
callq 0xc870
movq %rax, %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x20(%rax)
movq -0x10(%rbp), %rax
cmpq $0x0, 0x20(%rax)
jne 0x148de
movq 0x68740(%rip), %rax     # 0x7cff8
movq (%rax), %rdi
leaq 0x5180e(%rip), %rsi     # 0x660d0
leaq 0x51a63(%rip), %rdx     # 0x6632c
movl $0xa2, %ecx
movb $0x0, %al
callq 0xc8f0
movl $0x1, -0x4(%rbp)
jmp 0x1490c
jmp 0x148e0
jmp 0x148e2
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rax
movq $0x0, (%rax)
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rcx
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rax
movq %rcx, 0x8(%rax)
movl $0x0, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/chart.c
// Function: chart_axis_set_default_num_format
STATIC void
_chart_axis_set_default_num_format(lxw_chart_axis *axis, char *num_format)
{
    if (!num_format)
        return;

    /* Free any previously allocated resource. */
    free(axis->default_num_format);

    axis->default_num_format = lxw_strdup(num_format);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x14939
jmp 0x1495a
movq -0x8(%rbp), %rax
movq 0x58(%rax), %rdi
callq 0xc0d0
movq -0x10(%rbp), %rdi
callq 0xcd80
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x58(%rax)
addq $0x10, %rsp
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/chart.c
// Function: chart_initialize
STATIC void
_chart_initialize(lxw_chart *self, uint8_t type)
{
    switch (type) {

        case LXW_CHART_AREA:
        case LXW_CHART_AREA_STACKED:
        case LXW_CHART_AREA_STACKED_PERCENT:
            _chart_initialize_area_chart(self, type);
            break;

        case LXW_CHART_BAR:
        case LXW_CHART_BAR_STACKED:
        case LXW_CHART_BAR_STACKED_PERCENT:
            _chart_initialize_bar_chart(self, type);
            break;

        case LXW_CHART_COLUMN:
        case LXW_CHART_COLUMN_STACKED:
        case LXW_CHART_COLUMN_STACKED_PERCENT:
            _chart_initialize_column_chart(self, type);
            break;

        case LXW_CHART_DOUGHNUT:
            _chart_initialize_doughnut_chart(self);
            break;

        case LXW_CHART_LINE:
        case LXW_CHART_LINE_STACKED:
        case LXW_CHART_LINE_STACKED_PERCENT:
            _chart_initialize_line_chart(self, type);
            break;

        case LXW_CHART_PIE:
            _chart_initialize_pie_chart(self);
            break;

        case LXW_CHART_SCATTER:
        case LXW_CHART_SCATTER_STRAIGHT:
        case LXW_CHART_SCATTER_STRAIGHT_WITH_MARKERS:
        case LXW_CHART_SCATTER_SMOOTH:
        case LXW_CHART_SCATTER_SMOOTH_WITH_MARKERS:
            _chart_initialize_scatter_chart(self);
            break;

        case LXW_CHART_RADAR:
        case LXW_CHART_RADAR_WITH_MARKERS:
        case LXW_CHART_RADAR_FILLED:
            _chart_initialize_radar_chart(self, type);
            break;

        default:
            LXW_WARN_FORMAT1("workbook_add_chart(): "
                             "unhandled chart type '%d'", type);
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movb %sil, %al
movq %rdi, -0x8(%rbp)
movb %al, -0x9(%rbp)
movzbl -0x9(%rbp), %eax
decl %eax
movl %eax, %ecx
movq %rcx, -0x18(%rbp)
subl $0x15, %eax
ja 0x14a07
movq -0x18(%rbp), %rax
leaq 0x518f6(%rip), %rcx     # 0x66288
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x8(%rbp), %rdi
movzbl -0x9(%rbp), %esi
callq 0x180d0
jmp 0x14a23
movq -0x8(%rbp), %rdi
movzbl -0x9(%rbp), %esi
callq 0x18190
jmp 0x14a23
movq -0x8(%rbp), %rdi
movzbl -0x9(%rbp), %esi
callq 0x182a0
jmp 0x14a23
movq -0x8(%rbp), %rdi
callq 0x18390
jmp 0x14a23
movq -0x8(%rbp), %rdi
movzbl -0x9(%rbp), %esi
callq 0x183d0
jmp 0x14a23
movq -0x8(%rbp), %rdi
callq 0x184a0
jmp 0x14a23
movq -0x8(%rbp), %rdi
callq 0x184e0
jmp 0x14a23
movq -0x8(%rbp), %rdi
movzbl -0x9(%rbp), %esi
callq 0x18590
jmp 0x14a23
movq 0x685ea(%rip), %rax     # 0x7cff8
movq (%rax), %rdi
movzbl -0x9(%rbp), %edx
leaq 0x524ac(%rip), %rsi     # 0x66ec8
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/chart.c
// Function: chart_check_error_bars
lxw_error
_chart_check_error_bars(lxw_series_error_bars *error_bars, char *property)
{
    /* Check that the error bar type has been set for all error bar
     * functions except the one that is used to set the type. */
    if (strlen(property) && !error_bars->is_set) {
        LXW_WARN_FORMAT1("chart_series_set_error_bars%s(): "
                         "error bar type must be set first using "
                         "chart_series_set_error_bars()", property);

        return LXW_ERROR_PARAMETER_VALIDATION;
    }

    if (error_bars->is_x) {
        if (error_bars->chart_group != LXW_CHART_SCATTER
            && error_bars->chart_group != LXW_CHART_BAR) {

            LXW_WARN_FORMAT1("chart_series_set_error_bars%s(): "
                             "'X error bar' properties only available for"
                             " Scatter and Bar charts in Excel", property);

            return LXW_ERROR_PARAMETER_VALIDATION;
        }
    }
    else {
        if (error_bars->chart_group == LXW_CHART_BAR) {
            LXW_WARN_FORMAT1("chart_series_set_error_bars%s(): "
                             "'Y error bar' properties not available for "
                             "Bar charts in Excel", property);

            return LXW_ERROR_PARAMETER_VALIDATION;
        }
    }

    return LXW_NO_ERROR;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq -0x18(%rbp), %rdi
callq 0xc4e0
cmpq $0x0, %rax
je 0x14a81
movq -0x10(%rbp), %rax
cmpb $0x0, 0x4(%rax)
jne 0x14a81
movq 0x68598(%rip), %rax     # 0x7cff8
movq (%rax), %rdi
movq -0x18(%rbp), %rdx
leaq 0x518ce(%rip), %rsi     # 0x6633c
movb $0x0, %al
callq 0xc8f0
movl $0xd, -0x4(%rbp)
jmp 0x14b07
movq -0x10(%rbp), %rax
cmpb $0x0, 0x5(%rax)
je 0x14acc
movq -0x10(%rbp), %rax
movzbl 0x6(%rax), %eax
cmpl $0xf, %eax
je 0x14aca
movq -0x10(%rbp), %rax
movzbl 0x6(%rax), %eax
cmpl $0x4, %eax
je 0x14aca
movq 0x6854c(%rip), %rax     # 0x7cff8
movq (%rax), %rdi
movq -0x18(%rbp), %rdx
leaq 0x518f4(%rip), %rsi     # 0x663ae
movb $0x0, %al
callq 0xc8f0
movl $0xd, -0x4(%rbp)
jmp 0x14b07
jmp 0x14b00
movq -0x10(%rbp), %rax
movzbl 0x6(%rax), %eax
cmpl $0x4, %eax
jne 0x14afe
movq 0x68518(%rip), %rax     # 0x7cff8
movq (%rax), %rdi
movq -0x18(%rbp), %rdx
leaq 0x51939(%rip), %rsi     # 0x66427
movb $0x0, %al
callq 0xc8f0
movl $0xd, -0x4(%rbp)
jmp 0x14b07
jmp 0x14b00
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/chart.c
// Function: lxw_chart_assemble_xml_file
void
lxw_chart_assemble_xml_file(lxw_chart *self)
{
    /* Reverse the X and Y axes for Bar charts. */
    if (self->type == LXW_CHART_BAR || self->type == LXW_CHART_BAR_STACKED
        || self->type == LXW_CHART_BAR_STACKED_PERCENT)
        _chart_swap_bar_axes(self);

    /* Write the XML declaration. */
    _chart_xml_declaration(self);

    /* Write the c:chartSpace element. */
    _chart_write_chart_space(self);

    /* Write the c:lang element. */
    _chart_write_lang(self);

    /* Write the c:style element. */
    _chart_write_style(self);

    /* Write the c:protection element. */
    if (self->is_protected)
        _chart_write_protection(self);

    /* Write the c:chart element. */
    _chart_write_chart(self);

    /* Write the c:spPr element for the chartarea formatting. */
    _chart_write_sp_pr(self, self->chartarea_line, self->chartarea_fill,
                       self->chartarea_pattern);

    /* Write the c:printSettings element. */
    if (!self->is_chartsheet)
        _chart_write_print_settings(self);

    lxw_xml_end_tag(self->file, "c:chartSpace");
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movzbl 0x8(%rax), %eax
cmpl $0x4, %eax
je 0x14b43
movq -0x8(%rbp), %rax
movzbl 0x8(%rax), %eax
cmpl $0x5, %eax
je 0x14b43
movq -0x8(%rbp), %rax
movzbl 0x8(%rax), %eax
cmpl $0x6, %eax
jne 0x14b4c
movq -0x8(%rbp), %rdi
callq 0x14bf0
movq -0x8(%rbp), %rdi
callq 0x14c30
movq -0x8(%rbp), %rdi
callq 0x14c50
movq -0x8(%rbp), %rdi
callq 0x14de0
movq -0x8(%rbp), %rdi
callq 0x14eb0
movq -0x8(%rbp), %rax
cmpb $0x0, 0x169(%rax)
je 0x14b86
movq -0x8(%rbp), %rdi
callq 0x14f90
movq -0x8(%rbp), %rdi
callq 0x14fc0
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movq 0xd8(%rax), %rsi
movq -0x8(%rbp), %rax
movq 0xe0(%rax), %rdx
movq -0x8(%rbp), %rax
movq 0xe8(%rax), %rcx
callq 0x15030
movq -0x8(%rbp), %rax
cmpb $0x0, 0x97(%rax)
jne 0x14bcf
movq -0x8(%rbp), %rdi
callq 0x15100
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x518b6(%rip), %rsi     # 0x66493
callq 0xc060
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/chart.c
// Function: chart_write_chart_space
STATIC void
_chart_write_chart_space(lxw_chart *self)
{
    struct xml_attribute_list attributes;
    struct xml_attribute *attribute;
    char xmlns_c[] = LXW_SCHEMA_DRAWING "/chart";
    char xmlns_a[] = LXW_SCHEMA_DRAWING "/main";
    char xmlns_r[] = LXW_SCHEMA_OFFICEDOC "/relationships";

    LXW_INIT_ATTRIBUTES();
    LXW_PUSH_ATTRIBUTES_STR("xmlns:c", xmlns_c);
    LXW_PUSH_ATTRIBUTES_STR("xmlns:a", xmlns_a);
    LXW_PUSH_ATTRIBUTES_STR("xmlns:r", xmlns_r);

    lxw_xml_start_tag(self->file, "c:chartSpace", &attributes);

    LXW_FREE_ATTRIBUTES();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xf0, %rsp
movq %rdi, -0x8(%rbp)
leaq -0x60(%rbp), %rdi
leaq 0x52d56(%rip), %rsi     # 0x679c0
movl $0x37, %edx
callq 0xc980
leaq -0xa0(%rbp), %rdi
leaq 0x52d7e(%rip), %rsi     # 0x67a00
movl $0x36, %edx
callq 0xc980
leaq -0xf0(%rbp), %rdi
leaq 0x52da6(%rip), %rsi     # 0x67a40
movl $0x44, %edx
callq 0xc980
movq $0x0, -0x18(%rbp)
leaq -0x18(%rbp), %rax
movq %rax, -0x10(%rbp)
jmp 0x14cb6
leaq -0x60(%rbp), %rsi
leaq 0x52964(%rip), %rdi     # 0x67625
callq 0xc030
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x20(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, (%rax)
movq -0x20(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x10(%rbp)
jmp 0x14cf4
jmp 0x14cf6
leaq -0xa0(%rbp), %rsi
leaq 0x52929(%rip), %rdi     # 0x6762d
callq 0xc030
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x20(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, (%rax)
movq -0x20(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x10(%rbp)
jmp 0x14d37
jmp 0x14d39
leaq -0xf0(%rbp), %rsi
leaq 0x528ee(%rip), %rdi     # 0x67635
callq 0xc030
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x20(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, (%rax)
movq -0x20(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x10(%rbp)
jmp 0x14d7a
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x5170b(%rip), %rsi     # 0x66493
leaq -0x18(%rbp), %rdx
callq 0xc390
jmp 0x14d93
cmpq $0x0, -0x18(%rbp)
sete %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x14da3
jmp 0x14dd5
movq -0x18(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rax
movq 0x1040(%rax), %rax
movq %rax, -0x18(%rbp)
cmpq $0x0, %rax
jne 0x14dc8
leaq -0x18(%rbp), %rax
movq %rax, -0x10(%rbp)
jmp 0x14dca
movq -0x20(%rbp), %rdi
callq 0xc0d0
jmp 0x14d93
jmp 0x14dd7
addq $0xf0, %rsp
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/chart.c
// Function: chart_write_lang
STATIC void
_chart_write_lang(lxw_chart *self)
{
    struct xml_attribute_list attributes;
    struct xml_attribute *attribute;

    LXW_INIT_ATTRIBUTES();
    LXW_PUSH_ATTRIBUTES_STR("val", "en-US");

    lxw_xml_empty_tag(self->file, "c:lang", &attributes);

    LXW_FREE_ATTRIBUTES();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq $0x0, -0x18(%rbp)
leaq -0x18(%rbp), %rax
movq %rax, -0x10(%rbp)
jmp 0x14dfe
leaq 0x52497(%rip), %rdi     # 0x6729c
leaq 0x522bf(%rip), %rsi     # 0x670cb
callq 0xc030
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x20(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, (%rax)
movq -0x20(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x10(%rbp)
jmp 0x14e3f
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x527f0(%rip), %rsi     # 0x6763d
leaq -0x18(%rbp), %rdx
callq 0xcca0
jmp 0x14e58
cmpq $0x0, -0x18(%rbp)
sete %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x14e68
jmp 0x14e9a
movq -0x18(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rax
movq 0x1040(%rax), %rax
movq %rax, -0x18(%rbp)
cmpq $0x0, %rax
jne 0x14e8d
leaq -0x18(%rbp), %rax
movq %rax, -0x10(%rbp)
jmp 0x14e8f
movq -0x20(%rbp), %rdi
callq 0xc0d0
jmp 0x14e58
jmp 0x14e9c
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/chart.c
// Function: chart_write_style
STATIC void
_chart_write_style(lxw_chart *self)
{
    struct xml_attribute_list attributes;
    struct xml_attribute *attribute;

    /* Don"t write an element for the default style, 2. */
    if (self->style_id == 2)
        return;

    LXW_INIT_ATTRIBUTES();
    LXW_PUSH_ATTRIBUTES_INT("val", self->style_id);

    lxw_xml_empty_tag(self->file, "c:style", &attributes);

    LXW_FREE_ATTRIBUTES();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movzbl 0x9a(%rax), %eax
cmpl $0x2, %eax
jne 0x14ed1
jmp 0x14f89
jmp 0x14ed3
movq $0x0, -0x18(%rbp)
leaq -0x18(%rbp), %rax
movq %rax, -0x10(%rbp)
jmp 0x14ee5
movq -0x8(%rbp), %rax
movzbl 0x9a(%rax), %eax
movl %eax, %esi
leaq 0x523a3(%rip), %rdi     # 0x6729c
callq 0xc1b0
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x20(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, (%rax)
movq -0x20(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x10(%rbp)
jmp 0x14f2c
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x5270a(%rip), %rsi     # 0x67644
leaq -0x18(%rbp), %rdx
callq 0xcca0
jmp 0x14f45
cmpq $0x0, -0x18(%rbp)
sete %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x14f55
jmp 0x14f87
movq -0x18(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rax
movq 0x1040(%rax), %rax
movq %rax, -0x18(%rbp)
cmpq $0x0, %rax
jne 0x14f7a
leaq -0x18(%rbp), %rax
movq %rax, -0x10(%rbp)
jmp 0x14f7c
movq -0x20(%rbp), %rdi
callq 0xc0d0
jmp 0x14f45
jmp 0x14f89
addq $0x20, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/chart.c
// Function: chart_write_chart
STATIC void
_chart_write_chart(lxw_chart *self)
{
    lxw_xml_start_tag(self->file, "c:chart", NULL);

    /* Write the c:title element. */
    _chart_write_chart_title(self);

    /* Write the c:plotArea element. */
    self->write_plot_area(self);

    /* Write the c:legend element. */
    _chart_write_legend(self);

    /* Write the c:plotVisOnly element. */
    _chart_write_plot_vis_only(self);

    /* Write the c:dispBlanksAs element. */
    _chart_write_disp_blanks_as(self);

    lxw_xml_end_tag(self->file, "c:chart");
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x5267f(%rip), %rsi     # 0x67659
xorl %eax, %eax
movl %eax, %edx
callq 0xc390
movq -0x8(%rbp), %rdi
callq 0x215f0
movq -0x8(%rbp), %rax
movq 0x18(%rax), %rax
movq -0x8(%rbp), %rdi
callq *%rax
movq -0x8(%rbp), %rdi
callq 0x21630
movq -0x8(%rbp), %rdi
callq 0x21810
movq -0x8(%rbp), %rdi
callq 0x218f0
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x52636(%rip), %rsi     # 0x67659
callq 0xc060
addq $0x10, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/chart.c
// Function: chart_write_sp_pr
STATIC void
_chart_write_sp_pr(lxw_chart *self, lxw_chart_line *line,
                   lxw_chart_fill *fill, lxw_chart_pattern *pattern)
{
    if (!line && !fill && !pattern)
        return;

    lxw_xml_start_tag(self->file, "c:spPr", NULL);

    /* Write the series fill. Note: a pattern fill overrides a solid fill. */
    if (fill && !pattern) {
        if (fill->none) {
            /* Write the a:noFill element. */
            _chart_write_a_no_fill(self);
        }
        else {
            /* Write the a:solidFill element. */
            _chart_write_a_solid_fill(self, fill->color, fill->transparency);
        }
    }

    if (pattern) {
        /* Write the a:pattFill element. */
        _chart_write_a_patt_fill(self, pattern);
    }

    if (line) {
        /* Write the a:ln element. */
        _chart_write_a_ln(self, line);
    }

    lxw_xml_end_tag(self->file, "c:spPr");
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x15062
cmpq $0x0, -0x18(%rbp)
jne 0x15062
cmpq $0x0, -0x20(%rbp)
jne 0x15062
jmp 0x150f0
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x5206b(%rip), %rsi     # 0x670db
xorl %eax, %eax
movl %eax, %edx
callq 0xc390
cmpq $0x0, -0x18(%rbp)
je 0x150b5
cmpq $0x0, -0x20(%rbp)
jne 0x150b5
movq -0x18(%rbp), %rax
cmpb $0x0, 0x4(%rax)
je 0x1509c
movq -0x8(%rbp), %rdi
callq 0x21ef0
jmp 0x150b3
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rax
movl (%rax), %esi
movq -0x18(%rbp), %rax
movzbl 0x5(%rax), %edx
callq 0x1b840
jmp 0x150b5
cmpq $0x0, -0x20(%rbp)
je 0x150c9
movq -0x8(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x21f20
cmpq $0x0, -0x10(%rbp)
je 0x150dd
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x230d0
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x51ff0(%rip), %rsi     # 0x670db
callq 0xc060
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/chart.c
// Function: chart_write_print_settings
STATIC void
_chart_write_print_settings(lxw_chart *self)
{
    lxw_xml_start_tag(self->file, "c:printSettings", NULL);

    /* Write the c:headerFooter element. */
    _chart_write_header_footer(self);

    /* Write the c:pageMargins element. */
    _chart_write_page_margins(self);

    /* Write the c:pageSetup element. */
    _chart_write_page_setup(self);

    lxw_xml_end_tag(self->file, "c:printSettings");
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x527b9(%rip), %rsi     # 0x678d3
xorl %eax, %eax
movl %eax, %edx
callq 0xc390
movq -0x8(%rbp), %rdi
callq 0x23710
movq -0x8(%rbp), %rdi
callq 0x23740
movq -0x8(%rbp), %rdi
callq 0x23960
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x52787(%rip), %rsi     # 0x678d3
callq 0xc060
addq $0x10, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/chart.c
// Function: lxw_chart_add_data_cache
lxw_error
lxw_chart_add_data_cache(lxw_series_range *range, uint8_t *data,
                         uint16_t rows, uint8_t cols, uint8_t col)
{
    struct lxw_series_data_point *data_point;
    uint16_t i;

    range->ignore_cache = LXW_TRUE;
    range->num_data_points = rows;

    /* Initialize the series range data cache. */
    for (i = 0; i < rows; i++) {
        data_point = calloc(1, sizeof(struct lxw_series_data_point));
        RETURN_ON_MEM_ERROR(data_point, LXW_ERROR_MEMORY_MALLOC_FAILED);
        STAILQ_INSERT_TAIL(range->data_cache, data_point, list_pointers);
        data_point->number = data[i * cols + col];
    }

    return LXW_NO_ERROR;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movb %r8b, %al
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movw %dx, -0x1a(%rbp)
movb %cl, -0x1b(%rbp)
movb %al, -0x1c(%rbp)
movq -0x10(%rbp), %rax
movb $0x1, 0x1c(%rax)
movw -0x1a(%rbp), %cx
movq -0x10(%rbp), %rax
movw %cx, 0x1e(%rax)
movw $0x0, -0x2a(%rbp)
movzwl -0x2a(%rbp), %eax
movzwl -0x1a(%rbp), %ecx
cmpl %ecx, %eax
jge 0x1525c
movl $0x1, %edi
movl $0x28, %esi
callq 0xc870
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
jne 0x151ee
movq 0x67e30(%rip), %rax     # 0x7cff8
movq (%rax), %rdi
leaq 0x50efe(%rip), %rsi     # 0x660d0
leaq 0x51153(%rip), %rdx     # 0x6632c
movl $0x1437, %ecx           # imm = 0x1437
movb $0x0, %al
callq 0xc8f0
movl $0x1, -0x4(%rbp)
jmp 0x15263
jmp 0x151f0
jmp 0x151f2
movq -0x28(%rbp), %rax
movq $0x0, 0x20(%rax)
movq -0x28(%rbp), %rcx
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rax
movq 0x8(%rax), %rax
movq %rcx, (%rax)
movq -0x28(%rbp), %rcx
addq $0x20, %rcx
movq -0x10(%rbp), %rax
movq 0x20(%rax), %rax
movq %rcx, 0x8(%rax)
movq -0x18(%rbp), %rax
movzwl -0x2a(%rbp), %ecx
movzbl -0x1b(%rbp), %edx
imull %edx, %ecx
movzbl -0x1c(%rbp), %edx
addl %edx, %ecx
movzbl (%rax,%rcx), %eax
cvtsi2sd %eax, %xmm0
movq -0x28(%rbp), %rax
movsd %xmm0, 0x8(%rax)
movw -0x2a(%rbp), %ax
addw $0x1, %ax
movw %ax, -0x2a(%rbp)
jmp 0x15197
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/chart.c
// Function: chart_series_set_name
void
chart_series_set_name(lxw_chart_series *series, const char *name)
{
    if (!name)
        return;

    if (name[0] == '=')
        series->title.range->formula = lxw_strdup(name + 1);
    else
        series->title.name = lxw_strdup(name);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x156c9
jmp 0x15706
movq -0x10(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x3d, %eax
jne 0x156f2
movq -0x10(%rbp), %rdi
addq $0x1, %rdi
callq 0xcd80
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rax
movq %rcx, (%rax)
jmp 0x15706
movq -0x10(%rbp), %rdi
callq 0xcd80
movq %rax, %rcx
movq -0x8(%rbp), %rax
movq %rcx, 0x10(%rax)
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/chart.c
// Function: chart_series_set_name_range
void
chart_series_set_name_range(lxw_chart_series *series, const char *sheetname,
                            lxw_row_t row, lxw_col_t col)
{
    if (!sheetname) {
        LXW_WARN("chart_series_set_name_range(): "
                 "sheetname must be specified");
        return;
    }

    /* Start and end row, col are the same for single cell range. */
    _chart_set_range(series->title.range, sheetname, row, col, row, col);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movw %cx, %ax
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movw %ax, -0x16(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x1574b
movq 0x678c0(%rip), %rax     # 0x7cff8
movq (%rax), %rdi
leaq 0x50db1(%rip), %rsi     # 0x664f3
movb $0x0, %al
callq 0xc8f0
jmp 0x1576f
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rdi
movq -0x10(%rbp), %rsi
movl -0x14(%rbp), %edx
movw -0x16(%rbp), %ax
movl -0x14(%rbp), %r8d
movzwl %ax, %ecx
movzwl -0x16(%rbp), %r9d
callq 0x15780
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)