// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/styles.c
// Function: write_xf
STATIC void
_write_xf(lxw_styles *self, lxw_format *format)
{
    struct xml_attribute_list attributes;
    struct xml_attribute *attribute;
    uint8_t has_protection = (!format->locked) | format->hidden;
    uint8_t has_alignment = _has_alignment(format);
    uint8_t apply_alignment = _apply_alignment(format);

    LXW_INIT_ATTRIBUTES();
    LXW_PUSH_ATTRIBUTES_INT("numFmtId", format->num_format_index);
    LXW_PUSH_ATTRIBUTES_INT("fontId", format->font_index);
    LXW_PUSH_ATTRIBUTES_INT("fillId", format->fill_index);
    LXW_PUSH_ATTRIBUTES_INT("borderId", format->border_index);
    LXW_PUSH_ATTRIBUTES_INT("xfId", format->xf_id);

    if (format->quote_prefix)
        LXW_PUSH_ATTRIBUTES_STR("quotePrefix", "1");

    if (format->num_format_index > 0)
        LXW_PUSH_ATTRIBUTES_STR("applyNumberFormat", "1");

    /* Add applyFont attribute if XF format uses a font element. */
    if (format->font_index > 0 && !format->hyperlink)
        LXW_PUSH_ATTRIBUTES_STR("applyFont", "1");

    /* Add applyFill attribute if XF format uses a fill element. */
    if (format->fill_index > 0)
        LXW_PUSH_ATTRIBUTES_STR("applyFill", "1");

    /* Add applyBorder attribute if XF format uses a border element. */
    if (format->border_index > 0)
        LXW_PUSH_ATTRIBUTES_STR("applyBorder", "1");

    /* We can also have applyAlignment without a sub-element. */
    if (apply_alignment || format->hyperlink)
        LXW_PUSH_ATTRIBUTES_STR("applyAlignment", "1");

    if (has_protection || format->hyperlink)
        LXW_PUSH_ATTRIBUTES_STR("applyProtection", "1");

    /* Write XF with sub-elements if required. */
    if (has_alignment || has_protection) {
        lxw_xml_start_tag(self->file, "xf", &attributes);

        if (has_alignment)
            _write_alignment(self, format);

        if (has_protection)
            _write_protection(self, format);

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

    LXW_FREE_ATTRIBUTES();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rax
cmpb $0x0, 0x1dc(%rax)
setne %al
xorb $-0x1, %al
andb $0x1, %al
movzbl %al, %eax
movq -0x10(%rbp), %rcx
movzbl 0x1db(%rcx), %ecx
orl %ecx, %eax
movb %al, -0x29(%rbp)
movq -0x10(%rbp), %rdi
callq 0x35150
movb %al, -0x2a(%rbp)
movq -0x10(%rbp), %rdi
callq 0x35210
movb %al, -0x2b(%rbp)
movq $0x0, -0x20(%rbp)
leaq -0x20(%rbp), %rax
movq %rax, -0x18(%rbp)
jmp 0x34caf
movq -0x10(%rbp), %rax
movzwl 0x1b4(%rax), %eax
movl %eax, %esi
leaq 0x3477e(%rip), %rdi     # 0x69441
callq 0xc1b0
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x28(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movq -0x28(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x18(%rbp)
jmp 0x34cf6
jmp 0x34cf8
movq -0x10(%rbp), %rax
movzwl 0x1b6(%rax), %eax
movl %eax, %esi
leaq 0x348fd(%rip), %rdi     # 0x69609
callq 0xc1b0
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x28(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movq -0x28(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x18(%rbp)
jmp 0x34d3f
jmp 0x34d41
movq -0x10(%rbp), %rax
movslq 0x1f8(%rax), %rsi
leaq 0x348bd(%rip), %rdi     # 0x69610
callq 0xc1b0
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x28(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movq -0x28(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x18(%rbp)
jmp 0x34d86
jmp 0x34d88
movq -0x10(%rbp), %rax
movslq 0x200(%rax), %rsi
leaq 0x3487d(%rip), %rdi     # 0x69617
callq 0xc1b0
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x28(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movq -0x28(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x18(%rbp)
jmp 0x34dcd
jmp 0x34dcf
movq -0x10(%rbp), %rax
movslq 0x30(%rax), %rsi
leaq 0x34a48(%rip), %rdi     # 0x69826
callq 0xc1b0
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x28(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movq -0x28(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x18(%rbp)
jmp 0x34e11
movq -0x10(%rbp), %rax
cmpb $0x0, 0x22f(%rax)
je 0x34e63
jmp 0x34e20
leaq 0x34859(%rip), %rdi     # 0x69680
leaq 0x36642(%rip), %rsi     # 0x6b470
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 0x34e61
jmp 0x34e63
movq -0x10(%rbp), %rax
movzwl 0x1b4(%rax), %eax
cmpl $0x0, %eax
jle 0x34eb8
jmp 0x34e75
leaq 0x347a4(%rip), %rdi     # 0x69620
leaq 0x365ed(%rip), %rsi     # 0x6b470
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 0x34eb6
jmp 0x34eb8
movq -0x10(%rbp), %rax
movzwl 0x1b6(%rax), %eax
cmpl $0x0, %eax
jle 0x34f1a
movq -0x10(%rbp), %rax
cmpb $0x0, 0x1da(%rax)
jne 0x34f1a
jmp 0x34ed7
leaq 0x347ae(%rip), %rdi     # 0x6968c
leaq 0x3658b(%rip), %rsi     # 0x6b470
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 0x34f18
jmp 0x34f1a
movq -0x10(%rbp), %rax
cmpl $0x0, 0x1f8(%rax)
jle 0x34f6c
jmp 0x34f29
leaq 0x34702(%rip), %rdi     # 0x69632
leaq 0x36539(%rip), %rsi     # 0x6b470
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 0x34f6a
jmp 0x34f6c
movq -0x10(%rbp), %rax
cmpl $0x0, 0x200(%rax)
jle 0x34fbe
jmp 0x34f7b
leaq 0x346ba(%rip), %rdi     # 0x6963c
leaq 0x364e7(%rip), %rsi     # 0x6b470
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 0x34fbc
jmp 0x34fbe
movzbl -0x2b(%rbp), %eax
cmpl $0x0, %eax
jne 0x34fd7
movq -0x10(%rbp), %rax
movzbl 0x1da(%rax), %eax
cmpl $0x0, %eax
je 0x3501c
jmp 0x34fd9
leaq 0x34668(%rip), %rdi     # 0x69648
leaq 0x36489(%rip), %rsi     # 0x6b470
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 0x3501a
jmp 0x3501c
movzbl -0x29(%rbp), %eax
cmpl $0x0, %eax
jne 0x35035
movq -0x10(%rbp), %rax
movzbl 0x1da(%rax), %eax
cmpl $0x0, %eax
je 0x3507a
jmp 0x35037
leaq 0x34619(%rip), %rdi     # 0x69657
leaq 0x3642b(%rip), %rsi     # 0x6b470
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 0x35078
jmp 0x3507a
movzbl -0x2a(%rbp), %eax
cmpl $0x0, %eax
jne 0x3508c
movzbl -0x29(%rbp), %eax
cmpl $0x0, %eax
je 0x350de
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x3469d(%rip), %rsi     # 0x69737
leaq -0x20(%rbp), %rdx
callq 0xc390
cmpb $0x0, -0x2a(%rbp)
je 0x350b6
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x352c0
cmpb $0x0, -0x29(%rbp)
je 0x350c9
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
callq 0x35a60
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x34660(%rip), %rsi     # 0x69737
callq 0xc060
jmp 0x350f5
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x3464b(%rip), %rsi     # 0x69737
leaq -0x20(%rbp), %rdx
callq 0xcca0
jmp 0x350f7
jmp 0x350f9
cmpq $0x0, -0x20(%rbp)
sete %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x35109
jmp 0x3513b
movq -0x20(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x20(%rbp), %rax
movq 0x1040(%rax), %rax
movq %rax, -0x20(%rbp)
cmpq $0x0, %rax
jne 0x3512e
leaq -0x20(%rbp), %rax
movq %rax, -0x18(%rbp)
jmp 0x35130
movq -0x28(%rbp), %rdi
callq 0xc0d0
jmp 0x350f9
jmp 0x3513d
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)