LLM4Binary/decompile-bench-makefile huggingface dataset:
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/relationships.c
// Function: lxw_free_relationships
void
lxw_free_relationships(lxw_relationships *rels)
{
    lxw_rel_tuple *relationship;

    if (!rels)
        return;

    if (rels->relationships) {
        while (!STAILQ_EMPTY(rels->relationships)) {
            relationship = STAILQ_FIRST(rels->relationships);
            STAILQ_REMOVE_HEAD(rels->relationships, list_pointers);
            free(relationship->type);
            free(relationship->target);
            free(relationship->target_mode);
            free(relationship);
        }

        free(rels->relationships);
    }

    free(rels);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
cmpq $0x0, -0x8(%rbp)
jne 0x30668
jmp 0x3071f
movq -0x8(%rbp), %rax
cmpq $0x0, 0x10(%rax)
je 0x30716
jmp 0x30679
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
cmpq $0x0, (%rax)
sete %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x30690
jmp 0x30709
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movq (%rax), %rax
movq %rax, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movq (%rax), %rax
movq 0x18(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x10(%rcx), %rcx
movq %rax, (%rcx)
cmpq $0x0, %rax
jne 0x306d3
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rcx
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movq %rcx, 0x8(%rax)
jmp 0x306d5
movq -0x10(%rbp), %rax
movq (%rax), %rdi
callq 0xc0d0
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0xc0d0
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0xc0d0
movq -0x10(%rbp), %rdi
callq 0xc0d0
jmp 0x30679
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/relationships.c
// Function: write_relationships
STATIC void
_write_relationships(lxw_relationships *self)
{
    struct xml_attribute_list attributes;
    struct xml_attribute *attribute;
    lxw_rel_tuple *rel;

    LXW_INIT_ATTRIBUTES();
    LXW_PUSH_ATTRIBUTES_STR("xmlns", LXW_SCHEMA_PACKAGE);

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

    STAILQ_FOREACH(rel, self->relationships, list_pointers) {
        _write_relationship(self, rel->type, rel->target, rel->target_mode);
    }

    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 0x307ae
leaq 0x3594c(%rip), %rdi     # 0x66101
leaq 0x388d3(%rip), %rsi     # 0x6908f
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 0x307ef
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x38840(%rip), %rsi     # 0x6903d
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 0x3084a
movq -0x8(%rbp), %rdi
movq -0x28(%rbp), %rax
movq (%rax), %rsi
movq -0x28(%rbp), %rax
movq 0x8(%rax), %rdx
movq -0x28(%rbp), %rax
movq 0x10(%rax), %rcx
callq 0x30ba0
movq -0x28(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x28(%rbp)
jmp 0x30815
jmp 0x3084c
jmp 0x3084e
cmpq $0x0, -0x18(%rbp)
sete %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x3085e
jmp 0x30890
movq -0x18(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rax
movq 0x1040(%rax), %rax
movq %rax, -0x18(%rbp)
cmpq $0x0, %rax
jne 0x30883
leaq -0x18(%rbp), %rax
movq %rax, -0x10(%rbp)
jmp 0x30885
movq -0x20(%rbp), %rdi
callq 0xc0d0
jmp 0x3084e
jmp 0x30892
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/shared_strings.c
// Function: lxw_sst_new
lxw_sst *
lxw_sst_new(void)
{
    /* Create the new shared string table. */
    lxw_sst *sst = calloc(1, sizeof(lxw_sst));
    RETURN_ON_MEM_ERROR(sst, NULL);

    /* Add the sst RB tree. */
    sst->rb_tree = calloc(1, sizeof(struct sst_rb_tree));
    GOTO_LABEL_ON_MEM_ERROR(sst->rb_tree, mem_error);

    /* Add a list for tracking the insertion order. */
    sst->order_list = calloc(1, sizeof(struct sst_order_list));
    GOTO_LABEL_ON_MEM_ERROR(sst->order_list, mem_error);

    /* Initialize the order list. */
    STAILQ_INIT(sst->order_list);

    /* Initialize the RB tree. */
    RB_INIT(sst->rb_tree);

    return sst;

mem_error:
    lxw_sst_free(sst);
    return NULL;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movl $0x1, %edi
movl $0x20, %esi
callq 0xc870
movq %rax, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x30dd3
movq 0x4c24f(%rip), %rax     # 0x7cff8
movq (%rax), %rdi
leaq 0x3531d(%rip), %rsi     # 0x660d0
leaq 0x38368(%rip), %rdx     # 0x69122
movl $0x29, %ecx
movb $0x0, %al
callq 0xc8f0
movq $0x0, -0x8(%rbp)
jmp 0x30ec3
jmp 0x30dd5
movl $0x1, %edi
movl $0x8, %esi
callq 0xc870
movq %rax, %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x18(%rax)
movq -0x10(%rbp), %rax
cmpq $0x0, 0x18(%rax)
jne 0x30e23
movq 0x4c1f7(%rip), %rax     # 0x7cff8
movq (%rax), %rdi
leaq 0x352c5(%rip), %rsi     # 0x660d0
leaq 0x38310(%rip), %rdx     # 0x69122
movl $0x2d, %ecx
movb $0x0, %al
callq 0xc8f0
jmp 0x30eb2
jmp 0x30e25
movl $0x1, %edi
movl $0x10, %esi
callq 0xc870
movq %rax, %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x10(%rbp), %rax
cmpq $0x0, 0x10(%rax)
jne 0x30e70
movq 0x4c1a7(%rip), %rax     # 0x7cff8
movq (%rax), %rdi
leaq 0x35275(%rip), %rsi     # 0x660d0
leaq 0x382c0(%rip), %rdx     # 0x69122
movl $0x31, %ecx
movb $0x0, %al
callq 0xc8f0
jmp 0x30eb2
jmp 0x30e72
jmp 0x30e74
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq $0x0, (%rax)
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rcx
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq %rcx, 0x8(%rax)
jmp 0x30e99
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movq $0x0, (%rax)
movq -0x10(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x30ec3
movq -0x10(%rbp), %rdi
callq 0xd140
movq $0x0, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/shared_strings.c
// Function: lxw_sst_free
void
lxw_sst_free(lxw_sst *sst)
{
    struct sst_element *sst_element;
    struct sst_element *sst_element_temp;

    if (!sst)
        return;

    /* Free the sst_elements and their data using the ordered linked list. */
    if (sst->order_list) {
        STAILQ_FOREACH_SAFE(sst_element, sst->order_list, sst_order_pointers,
                            sst_element_temp) {

            if (sst_element && sst_element->string)
                free(sst_element->string);
            if (sst_element)
                free(sst_element);
        }
    }

    free(sst->order_list);
    free(sst->rb_tree);
    free(sst);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
cmpq $0x0, -0x8(%rbp)
jne 0x30ee8
jmp 0x30f88
movq -0x8(%rbp), %rax
cmpq $0x0, 0x10(%rax)
je 0x30f65
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movq (%rax), %rax
movq %rax, -0x10(%rbp)
xorl %eax, %eax
cmpq $0x0, -0x10(%rbp)
movb %al, -0x19(%rbp)
je 0x30f1f
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x18(%rbp)
movb $0x1, %al
movb %al, -0x19(%rbp)
movb -0x19(%rbp), %al
testb $0x1, %al
jne 0x30f28
jmp 0x30f63
cmpq $0x0, -0x10(%rbp)
je 0x30f47
movq -0x10(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0x30f47
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0xc0d0
cmpq $0x0, -0x10(%rbp)
je 0x30f57
movq -0x10(%rbp), %rdi
callq 0xc0d0
jmp 0x30f59
movq -0x18(%rbp), %rax
movq %rax, -0x10(%rbp)
jmp 0x30f02
jmp 0x30f65
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0x18(%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/shared_strings.c
// Function: lxw_sst_assemble_xml_file
void
lxw_sst_assemble_xml_file(lxw_sst *self)
{
    /* Write the XML declaration. */
    _sst_xml_declaration(self);

    /* Write the sst element. */
    _write_sst(self);

    /* Write the sst strings. */
    _write_sst_strings(self);

    /* Close the sst tag. */
    lxw_xml_end_tag(self->file, "sst");
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
callq 0x30fd0
movq -0x8(%rbp), %rdi
callq 0x30ff0
movq -0x8(%rbp), %rdi
callq 0x31150
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x3816e(%rip), %rsi     # 0x69133
callq 0xc060
addq $0x10, %rsp
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/shared_strings.c
// Function: write_sst
STATIC void
_write_sst(lxw_sst *self)
{
    struct xml_attribute_list attributes;
    struct xml_attribute *attribute;
    char xmlns[] =
        "http://schemas.openxmlformats.org/spreadsheetml/2006/main";

    LXW_INIT_ATTRIBUTES();
    LXW_PUSH_ATTRIBUTES_STR("xmlns", xmlns);
    LXW_PUSH_ATTRIBUTES_INT("count", self->string_count);
    LXW_PUSH_ATTRIBUTES_INT("uniqueCount", self->unique_count);

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

    LXW_FREE_ATTRIBUTES();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x60, %rsp
movq %rdi, -0x8(%rbp)
leaq -0x60(%rbp), %rdi
leaq 0x36c49(%rip), %rsi     # 0x67c50
movl $0x3a, %edx
callq 0xc980
movq $0x0, -0x18(%rbp)
leaq -0x18(%rbp), %rax
movq %rax, -0x10(%rbp)
jmp 0x31023
leaq -0x60(%rbp), %rsi
leaq 0x350d3(%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 0x31061
jmp 0x31063
movq -0x8(%rbp), %rax
movl 0x8(%rax), %eax
movl %eax, %esi
leaq 0x378a2(%rip), %rdi     # 0x68915
callq 0xc1b0
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x20(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, (%rax)
movq -0x20(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x10(%rbp)
jmp 0x310a6
jmp 0x310a8
movq -0x8(%rbp), %rax
movl 0xc(%rax), %eax
movl %eax, %esi
leaq 0x3807f(%rip), %rdi     # 0x69137
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 0x310eb
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x3803a(%rip), %rsi     # 0x69133
leaq -0x18(%rbp), %rdx
callq 0xc390
jmp 0x31104
cmpq $0x0, -0x18(%rbp)
sete %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x31114
jmp 0x31146
movq -0x18(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rax
movq 0x1040(%rax), %rax
movq %rax, -0x18(%rbp)
cmpq $0x0, %rax
jne 0x31139
leaq -0x18(%rbp), %rax
movq %rax, -0x10(%rbp)
jmp 0x3113b
movq -0x20(%rbp), %rdi
callq 0xc0d0
jmp 0x31104
jmp 0x31148
addq $0x60, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/shared_strings.c
// Function: write_sst_strings
STATIC void
_write_sst_strings(lxw_sst *self)
{
    struct sst_element *sst_element;

    STAILQ_FOREACH(sst_element, self->order_list, sst_order_pointers) {
        /* Write the si element. */
        if (sst_element->is_rich_string)
            _write_rich_si(self, sst_element->string);
        else
            _write_si(self, sst_element->string);

    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movq (%rax), %rax
movq %rax, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
je 0x311b0
movq -0x10(%rbp), %rax
cmpb $0x0, 0x10(%rax)
je 0x3118f
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rsi
callq 0x313f0
jmp 0x311a0
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x8(%rax), %rsi
callq 0x31420
jmp 0x311a2
movq -0x10(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x10(%rbp)
jmp 0x3116b
addq $0x10, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/shared_strings.c
// Function: lxw_get_sst_index
struct sst_element *
lxw_get_sst_index(lxw_sst *sst, const char *string, uint8_t is_rich_string)
{
    struct sst_element *element;
    struct sst_element *existing_element;

    /* Create an sst element to potentially add to the table. */
    element = calloc(1, sizeof(struct sst_element));
    if (!element)
        return NULL;

    /* Create potential new element with the string and its index. */
    element->index = sst->unique_count;
    element->string = lxw_strdup(string);
    element->is_rich_string = is_rich_string;

    /* Try to insert it and see whether we already have that string. */
    existing_element = RB_INSERT(sst_rb_tree, sst->rb_tree, element);

    /* If existing_element is not NULL, then it already existed. */
    /* Free new created element. */
    if (existing_element) {
        free(element->string);
        free(element);
        sst->string_count++;
        return existing_element;
    }

    /* If it didn't exist, also add it to the insertion order linked list. */
    STAILQ_INSERT_TAIL(sst->order_list, element, sst_order_pointers);

    /* Update SST string counts. */
    sst->string_count++;
    sst->unique_count++;
    return element;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movb %dl, %al
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movb %al, -0x19(%rbp)
movl $0x1, %edi
movl $0x40, %esi
callq 0xc870
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
jne 0x311fc
movq $0x0, -0x8(%rbp)
jmp 0x312c7
movq -0x10(%rbp), %rax
movl 0xc(%rax), %ecx
movq -0x28(%rbp), %rax
movl %ecx, (%rax)
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 -0x10(%rbp), %rax
movq 0x18(%rax), %rdi
movq -0x28(%rbp), %rsi
callq 0x312e0
movq %rax, -0x30(%rbp)
cmpq $0x0, -0x30(%rbp)
je 0x31270
movq -0x28(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0xc0d0
movq -0x28(%rbp), %rdi
callq 0xc0d0
movq -0x10(%rbp), %rax
movl 0x8(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x8(%rax)
movq -0x30(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x312c7
jmp 0x31272
movq -0x28(%rbp), %rax
movq $0x0, 0x18(%rax)
movq -0x28(%rbp), %rcx
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq 0x8(%rax), %rax
movq %rcx, (%rax)
movq -0x28(%rbp), %rcx
addq $0x18, %rcx
movq -0x10(%rbp), %rax
movq 0x10(%rax), %rax
movq %rcx, 0x8(%rax)
movq -0x10(%rbp), %rax
movl 0x8(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0x8(%rax)
movq -0x10(%rbp), %rax
movl 0xc(%rax), %ecx
addl $0x1, %ecx
movl %ecx, 0xc(%rax)
movq -0x28(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/shared_strings.c
// Function: write_si
STATIC void
_write_si(lxw_sst *self, char *string)
{
    uint8_t escaped_string = LXW_FALSE;

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

    /* Look for and escape control chars in the string. */
    if (lxw_has_control_characters(string)) {
        string = lxw_escape_control_characters(string);
        escaped_string = LXW_TRUE;
    }

    /* Write the t element. */
    _write_t(self, string);

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

    if (escaped_string)
        free(string);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movb $0x0, -0x11(%rbp)
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x36ef1(%rip), %rsi     # 0x68333
xorl %eax, %eax
movl %eax, %edx
callq 0xc390
movq -0x10(%rbp), %rdi
callq 0xc9a0
cmpb $0x0, %al
je 0x31469
movq -0x10(%rbp), %rdi
callq 0xca20
movq %rax, -0x10(%rbp)
movb $0x1, -0x11(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x314a0
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x36eaf(%rip), %rsi     # 0x68333
callq 0xc060
cmpb $0x0, -0x11(%rbp)
je 0x31498
movq -0x10(%rbp), %rdi
callq 0xc0d0
addq $0x20, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/shared_strings.c
// Function: write_t
STATIC void
_write_t(lxw_sst *self, char *string)
{
    struct xml_attribute_list attributes;
    struct xml_attribute *attribute;

    LXW_INIT_ATTRIBUTES();

    /* Add attribute to preserve leading or trailing whitespace. */
    if (isspace((unsigned char) string[0])
        || isspace((unsigned char) string[strlen(string) - 1]))
        LXW_PUSH_ATTRIBUTES_STR("xml:space", "preserve");

    lxw_xml_data_element(self->file, "t", string, &attributes);

    LXW_FREE_ATTRIBUTES();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq $0x0, -0x20(%rbp)
leaq -0x20(%rbp), %rax
movq %rax, -0x18(%rbp)
callq 0xd190
movq (%rax), %rax
movq -0x10(%rbp), %rcx
movzbl (%rcx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x2000, %eax           # imm = 0x2000
cmpl $0x0, %eax
jne 0x31521
callq 0xd190
movq (%rax), %rax
movq %rax, -0x30(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x10(%rbp), %rdi
callq 0xc4e0
movq -0x38(%rbp), %rcx
movq %rax, %rdx
movq -0x30(%rbp), %rax
subq $0x1, %rdx
movzbl (%rcx,%rdx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x2000, %eax           # imm = 0x2000
cmpl $0x0, %eax
je 0x31566
jmp 0x31523
leaq 0x37c19(%rip), %rdi     # 0x69143
leaq 0x37c1c(%rip), %rsi     # 0x6914d
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 0x31564
jmp 0x31566
movq -0x8(%rbp), %rax
movq (%rax), %rdi
movq -0x10(%rbp), %rdx
leaq 0x35b61(%rip), %rsi     # 0x670d9
leaq -0x20(%rbp), %rcx
callq 0xcbd0
jmp 0x31583
cmpq $0x0, -0x20(%rbp)
sete %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x31593
jmp 0x315c5
movq -0x20(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x20(%rbp), %rax
movq 0x1040(%rax), %rax
movq %rax, -0x20(%rbp)
cmpq $0x0, %rax
jne 0x315b8
leaq -0x20(%rbp), %rax
movq %rax, -0x18(%rbp)
jmp 0x315ba
movq -0x28(%rbp), %rdi
callq 0xc0d0
jmp 0x31583
jmp 0x315c7
addq $0x40, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/styles.c
// Function: lxw_styles_new
lxw_styles *
lxw_styles_new(void)
{
    lxw_styles *styles = calloc(1, sizeof(lxw_styles));
    GOTO_LABEL_ON_MEM_ERROR(styles, mem_error);

    styles->xf_formats = calloc(1, sizeof(struct lxw_formats));
    GOTO_LABEL_ON_MEM_ERROR(styles->xf_formats, mem_error);
    STAILQ_INIT(styles->xf_formats);

    styles->dxf_formats = calloc(1, sizeof(struct lxw_formats));
    GOTO_LABEL_ON_MEM_ERROR(styles->dxf_formats, mem_error);
    STAILQ_INIT(styles->dxf_formats);

    return styles;

mem_error:
    lxw_styles_free(styles);
    return NULL;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movl $0x1, %edi
movl $0x38, %esi
callq 0xc870
movq %rax, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x31adb
movq 0x4b53f(%rip), %rax     # 0x7cff8
movq (%rax), %rdi
leaq 0x3460d(%rip), %rsi     # 0x660d0
leaq 0x37696(%rip), %rdx     # 0x69160
movl $0x21, %ecx
movb $0x0, %al
callq 0xc8f0
jmp 0x31bce
jmp 0x31add
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 0x31b2b
movq 0x4b4ef(%rip), %rax     # 0x7cff8
movq (%rax), %rdi
leaq 0x345bd(%rip), %rsi     # 0x660d0
leaq 0x37646(%rip), %rdx     # 0x69160
movl $0x24, %ecx
movb $0x0, %al
callq 0xc8f0
jmp 0x31bce
jmp 0x31b2d
jmp 0x31b2f
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 $0x1, %edi
movl $0x10, %esi
callq 0xc870
movq %rax, %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x28(%rax)
movq -0x10(%rbp), %rax
cmpq $0x0, 0x28(%rax)
jne 0x31b9d
movq 0x4b47a(%rip), %rax     # 0x7cff8
movq (%rax), %rdi
leaq 0x34548(%rip), %rsi     # 0x660d0
leaq 0x375d1(%rip), %rdx     # 0x69160
movl $0x28, %ecx
movb $0x0, %al
callq 0xc8f0
jmp 0x31bce
jmp 0x31b9f
jmp 0x31ba1
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rax
movq $0x0, (%rax)
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rcx
movq -0x10(%rbp), %rax
movq 0x28(%rax), %rax
movq %rcx, 0x8(%rax)
movq -0x10(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x31bdf
movq -0x10(%rbp), %rdi
callq 0xc600
movq $0x0, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/styles.c
// Function: lxw_styles_free
void
lxw_styles_free(lxw_styles *styles)
{
    lxw_format *format;

    if (!styles)
        return;

    /* Free the xf formats in the styles. */
    if (styles->xf_formats) {
        while (!STAILQ_EMPTY(styles->xf_formats)) {
            format = STAILQ_FIRST(styles->xf_formats);
            STAILQ_REMOVE_HEAD(styles->xf_formats, list_pointers);
            free(format);
        }
        free(styles->xf_formats);
    }

    /* Free the dxf formats in the styles. */
    if (styles->dxf_formats) {
        while (!STAILQ_EMPTY(styles->dxf_formats)) {
            format = STAILQ_FIRST(styles->dxf_formats);
            STAILQ_REMOVE_HEAD(styles->dxf_formats, list_pointers);
            free(format);
        }
        free(styles->dxf_formats);
    }

    free(styles);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
cmpq $0x0, -0x8(%rbp)
jne 0x31c08
jmp 0x31d19
movq -0x8(%rbp), %rax
cmpq $0x0, 0x20(%rax)
je 0x31c8c
jmp 0x31c15
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
cmpq $0x0, (%rax)
sete %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x31c2c
jmp 0x31c7f
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
movq (%rax), %rax
movq %rax, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
movq (%rax), %rax
movq 0x230(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x20(%rcx), %rcx
movq %rax, (%rcx)
cmpq $0x0, %rax
jne 0x31c72
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rcx
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
movq %rcx, 0x8(%rax)
jmp 0x31c74
movq -0x10(%rbp), %rdi
callq 0xc0d0
jmp 0x31c15
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
cmpq $0x0, 0x28(%rax)
je 0x31d10
jmp 0x31c99
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
cmpq $0x0, (%rax)
sete %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x31cb0
jmp 0x31d03
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq (%rax), %rax
movq %rax, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq (%rax), %rax
movq 0x230(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x28(%rcx), %rcx
movq %rax, (%rcx)
cmpq $0x0, %rax
jne 0x31cf6
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rcx
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq %rcx, 0x8(%rax)
jmp 0x31cf8
movq -0x10(%rbp), %rdi
callq 0xc0d0
jmp 0x31c99
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rdi
callq 0xc0d0
addq $0x10, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/styles.c
// Function: write_style_sheet
STATIC void
_write_style_sheet(lxw_styles *self)
{
    struct xml_attribute_list attributes;
    struct xml_attribute *attribute;
    LXW_INIT_ATTRIBUTES();
    LXW_PUSH_ATTRIBUTES_STR("xmlns",
                            "http://schemas.openxmlformats.org/spreadsheetml/2006/main");

    lxw_xml_start_tag(self->file, "styleSheet", &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 0x3227e
leaq 0x33e7c(%rip), %rdi     # 0x66101
leaq 0x36f75(%rip), %rsi     # 0x69201
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 0x322bf
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x36e9c(%rip), %rsi     # 0x69169
leaq -0x18(%rbp), %rdx
callq 0xc390
jmp 0x322d8
cmpq $0x0, -0x18(%rbp)
sete %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x322e8
jmp 0x3231a
movq -0x18(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rax
movq 0x1040(%rax), %rax
movq %rax, -0x18(%rbp)
cmpq $0x0, %rax
jne 0x3230d
leaq -0x18(%rbp), %rax
movq %rax, -0x10(%rbp)
jmp 0x3230f
movq -0x20(%rbp), %rdi
callq 0xc0d0
jmp 0x322d8
jmp 0x3231c
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/styles.c
// Function: write_num_fmts
STATIC void
_write_num_fmts(lxw_styles *self)
{
    struct xml_attribute_list attributes;
    struct xml_attribute *attribute;
    lxw_format *format;
    uint16_t last_format_index = 0;

    if (!self->num_format_count)
        return;

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

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

    /* Write the numFmts elements. */
    STAILQ_FOREACH(format, self->xf_formats, list_pointers) {

        /* Ignore built-in number formats, i.e., < 164. */
        if (format->num_format_index < 164)
            continue;

        /* Ignore duplicates which have an already used index. */
        if (format->num_format_index <= last_format_index)
            continue;

        _write_num_fmt(self, format->num_format_index, format->num_format);

        last_format_index = format->num_format_index;
    }

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

    LXW_FREE_ATTRIBUTES();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movw $0x0, -0x2a(%rbp)
movq -0x8(%rbp), %rax
cmpl $0x0, 0x14(%rax)
jne 0x32351
jmp 0x32496
jmp 0x32353
movq $0x0, -0x18(%rbp)
leaq -0x18(%rbp), %rax
movq %rax, -0x10(%rbp)
jmp 0x32365
movq -0x8(%rbp), %rax
movl 0x14(%rax), %eax
movl %eax, %esi
leaq 0x365a0(%rip), %rdi     # 0x68915
callq 0xc1b0
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x20(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, (%rax)
movq -0x20(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x10(%rbp)
jmp 0x323a8
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x36e85(%rip), %rsi     # 0x6923b
leaq -0x18(%rbp), %rdx
callq 0xc390
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
movq (%rax), %rax
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
je 0x3243d
movq -0x28(%rbp), %rax
movzwl 0x1b4(%rax), %eax
cmpl $0xa4, %eax
jge 0x323e9
jmp 0x3242c
movq -0x28(%rbp), %rax
movzwl 0x1b4(%rax), %eax
movzwl -0x2a(%rbp), %ecx
cmpl %ecx, %eax
jg 0x323fe
jmp 0x3242c
movq -0x8(%rbp), %rdi
movq -0x28(%rbp), %rax
movw 0x1b4(%rax), %ax
movq -0x28(%rbp), %rdx
addq $0x34, %rdx
movzwl %ax, %esi
callq 0x33a50
movq -0x28(%rbp), %rax
movw 0x1b4(%rax), %ax
movw %ax, -0x2a(%rbp)
movq -0x28(%rbp), %rax
movq 0x230(%rax), %rax
movq %rax, -0x28(%rbp)
jmp 0x323ce
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x36df0(%rip), %rsi     # 0x6923b
callq 0xc060
jmp 0x32452
cmpq $0x0, -0x18(%rbp)
sete %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x32462
jmp 0x32494
movq -0x18(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rax
movq 0x1040(%rax), %rax
movq %rax, -0x18(%rbp)
cmpq $0x0, %rax
jne 0x32487
leaq -0x18(%rbp), %rax
movq %rax, -0x10(%rbp)
jmp 0x32489
movq -0x20(%rbp), %rdi
callq 0xc0d0
jmp 0x32452
jmp 0x32496
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/styles.c
// Function: write_fonts
STATIC void
_write_fonts(lxw_styles *self)
{
    struct xml_attribute_list attributes;
    struct xml_attribute *attribute;
    lxw_format *format;
    uint32_t count;

    LXW_INIT_ATTRIBUTES();

    count = self->font_count;
    if (self->has_comments)
        count++;

    LXW_PUSH_ATTRIBUTES_INT("count", count);

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

    STAILQ_FOREACH(format, self->xf_formats, list_pointers) {
        if (format->has_font)
            _write_font(self, format, LXW_FALSE, LXW_FALSE);
    }

    if (self->has_comments)
        _write_comment_font(self);

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

    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)
movq -0x8(%rbp), %rax
movl 0x8(%rax), %eax
movl %eax, -0x2c(%rbp)
movq -0x8(%rbp), %rax
cmpb $0x0, 0x34(%rax)
je 0x324d9
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
jmp 0x324db
movl -0x2c(%rbp), %eax
movl %eax, %esi
leaq 0x3642e(%rip), %rdi     # 0x68915
callq 0xc1b0
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x20(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, (%rax)
movq -0x20(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x10(%rbp)
jmp 0x3251a
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x36f22(%rip), %rsi     # 0x6944a
leaq -0x18(%rbp), %rdx
callq 0xc390
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
movq (%rax), %rax
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
je 0x32578
movq -0x28(%rbp), %rax
cmpb $0x0, 0x1b8(%rax)
je 0x32565
movq -0x8(%rbp), %rdi
movq -0x28(%rbp), %rsi
xorl %ecx, %ecx
movl %ecx, %edx
callq 0x31e80
jmp 0x32567
movq -0x28(%rbp), %rax
movq 0x230(%rax), %rax
movq %rax, -0x28(%rbp)
jmp 0x32540
movq -0x8(%rbp), %rax
cmpb $0x0, 0x34(%rax)
je 0x3258b
movq -0x8(%rbp), %rdi
callq 0x33c30
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x36eb1(%rip), %rsi     # 0x6944a
callq 0xc060
jmp 0x325a0
cmpq $0x0, -0x18(%rbp)
sete %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x325b0
jmp 0x325e2
movq -0x18(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rax
movq 0x1040(%rax), %rax
movq %rax, -0x18(%rbp)
cmpq $0x0, %rax
jne 0x325d5
leaq -0x18(%rbp), %rax
movq %rax, -0x10(%rbp)
jmp 0x325d7
movq -0x20(%rbp), %rdi
callq 0xc0d0
jmp 0x325a0
jmp 0x325e4
addq $0x30, %rsp
popq %rbp
retq
nopw (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/styles.c
// Function: write_fills
STATIC void
_write_fills(lxw_styles *self)
{
    struct xml_attribute_list attributes;
    struct xml_attribute *attribute;
    lxw_format *format;

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

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

    /* Write the default fills. */
    _write_default_fill(self, "none");
    _write_default_fill(self, "gray125");

    STAILQ_FOREACH(format, self->xf_formats, list_pointers) {
        if (format->has_fill)
            _write_fill(self, format, LXW_FALSE);
    }

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

    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 0x3260e
movq -0x8(%rbp), %rax
movl 0x1c(%rax), %eax
movl %eax, %esi
leaq 0x362f7(%rip), %rdi     # 0x68915
callq 0xc1b0
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x20(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, (%rax)
movq -0x20(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x10(%rbp)
jmp 0x32651
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x36df1(%rip), %rsi     # 0x69450
leaq -0x18(%rbp), %rdx
callq 0xc390
movq -0x8(%rbp), %rdi
leaq 0x34963(%rip), %rsi     # 0x66fd6
callq 0x33cb0
movq -0x8(%rbp), %rdi
leaq 0x36dd3(%rip), %rsi     # 0x69456
callq 0x33cb0
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
movq (%rax), %rax
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
je 0x326cd
movq -0x28(%rbp), %rax
cmpb $0x0, 0x1f5(%rax)
je 0x326ba
movq -0x8(%rbp), %rdi
movq -0x28(%rbp), %rsi
xorl %edx, %edx
callq 0x33da0
jmp 0x326bc
movq -0x28(%rbp), %rax
movq 0x230(%rax), %rax
movq %rax, -0x28(%rbp)
jmp 0x32697
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x36d75(%rip), %rsi     # 0x69450
callq 0xc060
jmp 0x326e2
cmpq $0x0, -0x18(%rbp)
sete %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x326f2
jmp 0x32724
movq -0x18(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rax
movq 0x1040(%rax), %rax
movq %rax, -0x18(%rbp)
cmpq $0x0, %rax
jne 0x32717
leaq -0x18(%rbp), %rax
movq %rax, -0x10(%rbp)
jmp 0x32719
movq -0x20(%rbp), %rdi
callq 0xc0d0
jmp 0x326e2
jmp 0x32726
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/styles.c
// Function: write_borders
STATIC void
_write_borders(lxw_styles *self)
{
    struct xml_attribute_list attributes;
    struct xml_attribute *attribute;
    lxw_format *format;

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

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

    STAILQ_FOREACH(format, self->xf_formats, list_pointers) {
        if (format->has_border)
            _write_border(self, format, LXW_FALSE);
    }

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

    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 0x3274e
movq -0x8(%rbp), %rax
movl 0x18(%rax), %eax
movl %eax, %esi
leaq 0x361b7(%rip), %rdi     # 0x68915
callq 0xc1b0
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x20(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, (%rax)
movq -0x20(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x10(%rbp)
jmp 0x32791
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x36d9f(%rip), %rsi     # 0x6953e
leaq -0x18(%rbp), %rdx
callq 0xc390
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
movq (%rax), %rax
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
je 0x327ed
movq -0x28(%rbp), %rax
cmpb $0x0, 0x204(%rax)
je 0x327da
movq -0x8(%rbp), %rdi
movq -0x28(%rbp), %rsi
xorl %edx, %edx
callq 0x34210
jmp 0x327dc
movq -0x28(%rbp), %rax
movq 0x230(%rax), %rax
movq %rax, -0x28(%rbp)
jmp 0x327b7
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x36d43(%rip), %rsi     # 0x6953e
callq 0xc060
jmp 0x32802
cmpq $0x0, -0x18(%rbp)
sete %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x32812
jmp 0x32844
movq -0x18(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rax
movq 0x1040(%rax), %rax
movq %rax, -0x18(%rbp)
cmpq $0x0, %rax
jne 0x32837
leaq -0x18(%rbp), %rax
movq %rax, -0x10(%rbp)
jmp 0x32839
movq -0x20(%rbp), %rdi
callq 0xc0d0
jmp 0x32802
jmp 0x32846
addq $0x30, %rsp
popq %rbp
retq
nopl (%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/styles.c
// Function: write_cell_style_xfs
STATIC void
_write_cell_style_xfs(lxw_styles *self)
{
    struct xml_attribute_list attributes;
    struct xml_attribute *attribute;

    LXW_INIT_ATTRIBUTES();

    if (self->has_hyperlink)
        LXW_PUSH_ATTRIBUTES_STR("count", "2");
    else
        LXW_PUSH_ATTRIBUTES_STR("count", "1");

    lxw_xml_start_tag(self->file, "cellStyleXfs", &attributes);
    _write_style_xf(self, LXW_FALSE, 0);

    if (self->has_hyperlink)
        _write_style_xf(self, self->has_hyperlink, self->hyperlink_font_id);

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

    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)
movq -0x8(%rbp), %rax
cmpb $0x0, 0x30(%rax)
je 0x328bb
jmp 0x32878
leaq 0x36096(%rip), %rdi     # 0x68915
leaq 0x38bac(%rip), %rsi     # 0x6b432
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 0x328b9
jmp 0x32900
jmp 0x328bd
leaq 0x36051(%rip), %rdi     # 0x68915
leaq 0x38ba5(%rip), %rsi     # 0x6b470
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 0x328fe
jmp 0x32900
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x36cee(%rip), %rsi     # 0x695fc
leaq -0x18(%rbp), %rdx
callq 0xc390
movq -0x8(%rbp), %rdi
xorl %edx, %edx
movl %edx, %esi
callq 0x34780
movq -0x8(%rbp), %rax
cmpb $0x0, 0x30(%rax)
je 0x32949
movq -0x8(%rbp), %rdi
movq -0x8(%rbp), %rax
movb 0x30(%rax), %cl
movq -0x8(%rbp), %rax
movzbl %cl, %esi
movzwl 0x32(%rax), %edx
callq 0x34780
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x36ca5(%rip), %rsi     # 0x695fc
callq 0xc060
jmp 0x3295e
cmpq $0x0, -0x18(%rbp)
sete %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x3296e
jmp 0x329a0
movq -0x18(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rax
movq 0x1040(%rax), %rax
movq %rax, -0x18(%rbp)
cmpq $0x0, %rax
jne 0x32993
leaq -0x18(%rbp), %rax
movq %rax, -0x10(%rbp)
jmp 0x32995
movq -0x20(%rbp), %rdi
callq 0xc0d0
jmp 0x3295e
jmp 0x329a2
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/styles.c
// Function: write_cell_xfs
STATIC void
_write_cell_xfs(lxw_styles *self)
{
    struct xml_attribute_list attributes;
    struct xml_attribute *attribute;
    lxw_format *format;
    uint32_t count = self->xf_count;
    uint32_t i = 0;

    /* If the last format is "font_only" it is for the comment font and
     * shouldn't be counted. This is a workaround to get the last object
     * in the list since STAILQ_LAST() requires __containerof and isn't
     * ANSI compatible. */
    STAILQ_FOREACH(format, self->xf_formats, list_pointers) {
        i++;
        if (i == self->xf_count && format->font_only)
            count--;
    }

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

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

    STAILQ_FOREACH(format, self->xf_formats, list_pointers) {
        if (!format->font_only)
            _write_xf(self, format);
    }

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

    LXW_FREE_ATTRIBUTES();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movl 0xc(%rax), %eax
movl %eax, -0x2c(%rbp)
movl $0x0, -0x30(%rbp)
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
movq (%rax), %rax
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
je 0x32a24
movl -0x30(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x30(%rbp)
movl -0x30(%rbp), %eax
movq -0x8(%rbp), %rcx
cmpl 0xc(%rcx), %eax
jne 0x32a11
movq -0x28(%rbp), %rax
movzbl 0x22e(%rax), %eax
cmpl $0x0, %eax
je 0x32a11
movl -0x2c(%rbp), %eax
addl $-0x1, %eax
movl %eax, -0x2c(%rbp)
jmp 0x32a13
movq -0x28(%rbp), %rax
movq 0x230(%rax), %rax
movq %rax, -0x28(%rbp)
jmp 0x329dc
jmp 0x32a26
movq $0x0, -0x18(%rbp)
leaq -0x18(%rbp), %rax
movq %rax, -0x10(%rbp)
jmp 0x32a38
movl -0x2c(%rbp), %eax
movl %eax, %esi
leaq 0x35ed1(%rip), %rdi     # 0x68915
callq 0xc1b0
movq %rax, -0x20(%rbp)
movq -0x20(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x20(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, (%rax)
movq -0x20(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x10(%rbp)
jmp 0x32a77
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x36bf3(%rip), %rsi     # 0x69678
leaq -0x18(%rbp), %rdx
callq 0xc390
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
movq (%rax), %rax
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
je 0x32ad1
movq -0x28(%rbp), %rax
cmpb $0x0, 0x22e(%rax)
jne 0x32abe
movq -0x8(%rbp), %rdi
movq -0x28(%rbp), %rsi
callq 0x34c50
jmp 0x32ac0
movq -0x28(%rbp), %rax
movq 0x230(%rax), %rax
movq %rax, -0x28(%rbp)
jmp 0x32a9d
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x36b99(%rip), %rsi     # 0x69678
callq 0xc060
jmp 0x32ae6
cmpq $0x0, -0x18(%rbp)
sete %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x32af6
jmp 0x32b28
movq -0x18(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rax
movq 0x1040(%rax), %rax
movq %rax, -0x18(%rbp)
cmpq $0x0, %rax
jne 0x32b1b
leaq -0x18(%rbp), %rax
movq %rax, -0x10(%rbp)
jmp 0x32b1d
movq -0x20(%rbp), %rdi
callq 0xc0d0
jmp 0x32ae6
jmp 0x32b2a
addq $0x30, %rsp
popq %rbp
retq
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/styles.c
// Function: write_cell_styles
STATIC void
_write_cell_styles(lxw_styles *self)
{
    struct xml_attribute_list attributes;
    struct xml_attribute *attribute;
    LXW_INIT_ATTRIBUTES();

    if (self->has_hyperlink)
        LXW_PUSH_ATTRIBUTES_STR("count", "2");
    else
        LXW_PUSH_ATTRIBUTES_STR("count", "1");

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

    if (self->has_hyperlink)
        _write_cell_style(self, "Hyperlink", 1, 8);

    _write_cell_style(self, "Normal", 0, 0);

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

    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)
movq -0x8(%rbp), %rax
cmpb $0x0, 0x30(%rax)
je 0x32b9b
jmp 0x32b58
leaq 0x35db6(%rip), %rdi     # 0x68915
leaq 0x388cc(%rip), %rsi     # 0x6b432
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 0x32b99
jmp 0x32be0
jmp 0x32b9d
leaq 0x35d71(%rip), %rdi     # 0x68915
leaq 0x388c5(%rip), %rsi     # 0x6b470
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 0x32bde
jmp 0x32be0
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x36b1a(%rip), %rsi     # 0x69708
leaq -0x18(%rbp), %rdx
callq 0xc390
movq -0x8(%rbp), %rax
cmpb $0x0, 0x30(%rax)
je 0x32c1b
movq -0x8(%rbp), %rdi
leaq 0x36b07(%rip), %rsi     # 0x69713
movl $0x1, %edx
movl $0x8, %ecx
callq 0x35b90
movq -0x8(%rbp), %rdi
leaq 0x3b74e(%rip), %rsi     # 0x6e374
xorl %ecx, %ecx
movl %ecx, %edx
callq 0x35b90
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x36acb(%rip), %rsi     # 0x69708
callq 0xc060
jmp 0x32c44
cmpq $0x0, -0x18(%rbp)
sete %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x32c54
jmp 0x32c86
movq -0x18(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rax
movq 0x1040(%rax), %rax
movq %rax, -0x18(%rbp)
cmpq $0x0, %rax
jne 0x32c79
leaq -0x18(%rbp), %rax
movq %rax, -0x10(%rbp)
jmp 0x32c7b
movq -0x20(%rbp), %rdi
callq 0xc0d0
jmp 0x32c44
jmp 0x32c88
addq $0x20, %rsp
popq %rbp
retq
nop
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/styles.c
// Function: write_table_styles
STATIC void
_write_table_styles(lxw_styles *self)
{
    struct xml_attribute_list attributes;
    struct xml_attribute *attribute;

    LXW_INIT_ATTRIBUTES();
    LXW_PUSH_ATTRIBUTES_STR("count", "0");
    LXW_PUSH_ATTRIBUTES_STR("defaultTableStyle", "TableStyleMedium9");
    LXW_PUSH_ATTRIBUTES_STR("defaultPivotStyle", "PivotStyleLight16");

    lxw_xml_empty_tag(self->file, "tableStyles", &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 0x32e9e
leaq 0x35a70(%rip), %rdi     # 0x68915
leaq 0x38622(%rip), %rsi     # 0x6b4ce
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 0x32edf
jmp 0x32ee1
leaq 0x36852(%rip), %rdi     # 0x6973a
leaq 0x3685d(%rip), %rsi     # 0x6974c
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 0x32f22
jmp 0x32f24
leaq 0x36833(%rip), %rdi     # 0x6975e
leaq 0x3683e(%rip), %rsi     # 0x69770
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 0x32f65
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x3680f(%rip), %rsi     # 0x69782
leaq -0x18(%rbp), %rdx
callq 0xcca0
jmp 0x32f7e
cmpq $0x0, -0x18(%rbp)
sete %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x32f8e
jmp 0x32fc0
movq -0x18(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rax
movq 0x1040(%rax), %rax
movq %rax, -0x18(%rbp)
cmpq $0x0, %rax
jne 0x32fb3
leaq -0x18(%rbp), %rax
movq %rax, -0x10(%rbp)
jmp 0x32fb5
movq -0x20(%rbp), %rdi
callq 0xc0d0
jmp 0x32f7e
jmp 0x32fc2
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/styles.c
// Function: write_font_condense
STATIC void
_write_font_condense(lxw_styles *self)
{
    struct xml_attribute_list attributes;
    struct xml_attribute *attribute;

    LXW_INIT_ATTRIBUTES();
    LXW_PUSH_ATTRIBUTES_STR("val", "0");

    lxw_xml_empty_tag(self->file, "condense", &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 0x32fee
leaq 0x342a7(%rip), %rdi     # 0x6729c
leaq 0x384d2(%rip), %rsi     # 0x6b4ce
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 0x3302f
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x36169(%rip), %rsi     # 0x691a6
leaq -0x18(%rbp), %rdx
callq 0xcca0
jmp 0x33048
cmpq $0x0, -0x18(%rbp)
sete %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x33058
jmp 0x3308a
movq -0x18(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rax
movq 0x1040(%rax), %rax
movq %rax, -0x18(%rbp)
cmpq $0x0, %rax
jne 0x3307d
leaq -0x18(%rbp), %rax
movq %rax, -0x10(%rbp)
jmp 0x3307f
movq -0x20(%rbp), %rdi
callq 0xc0d0
jmp 0x33048
jmp 0x3308c
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)
// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/styles.c
// Function: write_font_extend
STATIC void
_write_font_extend(lxw_styles *self)
{
    struct xml_attribute_list attributes;
    struct xml_attribute *attribute;

    LXW_INIT_ATTRIBUTES();
    LXW_PUSH_ATTRIBUTES_STR("val", "0");

    lxw_xml_empty_tag(self->file, "extend", &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 0x330be
leaq 0x341d7(%rip), %rdi     # 0x6729c
leaq 0x38402(%rip), %rsi     # 0x6b4ce
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 0x330ff
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x360a2(%rip), %rsi     # 0x691af
leaq -0x18(%rbp), %rdx
callq 0xcca0
jmp 0x33118
cmpq $0x0, -0x18(%rbp)
sete %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x33128
jmp 0x3315a
movq -0x18(%rbp), %rax
movq %rax, -0x20(%rbp)
movq -0x18(%rbp), %rax
movq 0x1040(%rax), %rax
movq %rax, -0x18(%rbp)
cmpq $0x0, %rax
jne 0x3314d
leaq -0x18(%rbp), %rax
movq %rax, -0x10(%rbp)
jmp 0x3314f
movq -0x20(%rbp), %rdi
callq 0xc0d0
jmp 0x33118
jmp 0x3315c
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)