// File: /workspace/github_c_makefile_star2_O2/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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xd8, %rsp
movq %rdi, %rbx
movb 0x8(%rdi), %al
addb $-0x4, %al
cmpb $0x2, %al
ja 0x117ad
movdqu 0x20(%rbx), %xmm0
pshufd $0x4e, %xmm0, %xmm0     # xmm0 = xmm0[2,3,0,1]
movdqu %xmm0, 0x20(%rbx)
movq (%rbx), %rdi
callq 0xcfb0
movaps 0x2d3d4(%rip), %xmm0    # 0x3eb90
leaq 0xa0(%rsp), %rax
movaps %xmm0, 0x20(%rax)
movaps 0x2d3b1(%rip), %xmm0    # 0x3eb80
movaps %xmm0, 0x10(%rax)
movaps 0x2d396(%rip), %xmm0    # 0x3eb70
movaps %xmm0, (%rax)
movabsq $0x74726168632f36, %rcx # imm = 0x74726168632F36
movq %rcx, 0x2f(%rax)
movaps 0x2d3de(%rip), %xmm0    # 0x3ebd0
leaq 0x60(%rsp), %r12
movaps %xmm0, 0x20(%r12)
movaps 0x2d3bc(%rip), %xmm0    # 0x3ebc0
movaps %xmm0, 0x10(%r12)
movaps 0x2d39f(%rip), %xmm0    # 0x3ebb0
movaps %xmm0, (%r12)
movabsq $0x6e69616d2f3630, %rcx # imm = 0x6E69616D2F3630
movq %rcx, 0x2e(%r12)
leaq 0x2d3c4(%rip), %rsi     # 0x3ebf0
pushq $0x44
popq %rcx
movq %rsp, %r14
movq %r14, %rdi
rep  movsb (%rsi), %es:(%rdi)
leaq 0x50(%rsp), %r15
andq $0x0, (%r15)
movq %r15, 0x8(%r15)
leaq 0x2cf8a(%rip), %rdi     # 0x3e7d5
movq %rax, %rsi
callq 0xc030
movl $0x1040, %r13d          # imm = 0x1040
andq $0x0, 0x1040(%rax)
leaq (%rax,%r13), %rcx
movq 0x8(%r15), %rdx
movq %rax, (%rdx)
movq %rcx, 0x8(%r15)
leaq 0x2cf66(%rip), %rdi     # 0x3e7dd
movq %r12, %rsi
callq 0xc030
andq $0x0, 0x1040(%rax)
leaq (%rax,%r13), %rcx
movq 0x8(%r15), %rdx
movq %rax, (%rdx)
movq %rcx, 0x8(%r15)
leaq 0x2cf48(%rip), %rdi     # 0x3e7e5
movq %r14, %rsi
callq 0xc030
addq %rax, %r13
andq $0x0, 0x1040(%rax)
movq 0x8(%r15), %rcx
movq %rax, (%rcx)
movq %r13, 0x8(%r15)
movq (%rbx), %rdi
leaq 0x2bd7e(%rip), %rsi     # 0x3d643
movq %r15, %rdx
callq 0xc380
movq 0x50(%rsp), %rdi
testq %rdi, %rdi
je 0x118f4
movq 0x1040(%rdi), %rax
movq %rax, 0x50(%rsp)
testq %rax, %rax
jne 0x118ed
movq %r15, 0x58(%rsp)
callq 0xc0d0
jmp 0x118cd
andq $0x0, (%rsp)
movq %r14, 0x8(%rsp)
leaq 0x2cb47(%rip), %rdi     # 0x3e44c
leaq 0x2c96f(%rip), %rsi     # 0x3e27b
callq 0xc030
leaq 0x1040(%rax), %rcx
andq $0x0, 0x1040(%rax)
movq 0x8(%rsp), %rdx
movq %rax, (%rdx)
movq %rcx, 0x8(%rsp)
movq (%rbx), %rdi
leaq 0x2ceb6(%rip), %rsi     # 0x3e7ed
movq %r14, %rdx
callq 0xcc70
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x11964
movq 0x1040(%rdi), %rax
movq %rax, (%rsp)
testq %rax, %rax
jne 0x1195d
movq %r14, 0x8(%rsp)
callq 0xc0d0
jmp 0x1193f
movzbl 0x9a(%rbx), %esi
cmpq $0x2, %rsi
jne 0x11a1e
cmpb $0x0, 0x169(%rbx)
je 0x1198f
movq (%rbx), %rdi
leaq 0x2ce74(%rip), %rsi     # 0x3e7fc
xorl %edx, %edx
callq 0xcc70
movq (%rbx), %rdi
leaq 0x2ce70(%rip), %rsi     # 0x3e809
xorl %edx, %edx
callq 0xc380
cmpb $0x0, 0x48(%rbx)
je 0x11a8b
andq $0x0, (%rsp)
movq %r14, 0x8(%rsp)
leaq 0x2ca91(%rip), %rdi     # 0x3e44c
leaq 0x30d86(%rip), %rsi     # 0x42748
callq 0xc030
leaq 0x1040(%rax), %rcx
andq $0x0, 0x1040(%rax)
movq 0x8(%rsp), %rdx
movq %rax, (%rdx)
movq %rcx, 0x8(%rsp)
movq (%rbx), %rdi
leaq 0x2ce24(%rip), %rsi     # 0x3e811
movq %r14, %rdx
callq 0xcc70
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x11a97
movq 0x1040(%rdi), %rax
movq %rax, (%rsp)
testq %rax, %rax
jne 0x11a17
movq %r14, 0x8(%rsp)
callq 0xc0d0
jmp 0x119f5
andq $0x0, (%rsp)
movq %r14, 0x8(%rsp)
leaq 0x2ca1d(%rip), %rdi     # 0x3e44c
callq 0xc1a0
leaq 0x1040(%rax), %rcx
andq $0x0, 0x1040(%rax)
movq 0x8(%rsp), %rdx
movq %rax, (%rdx)
movq %rcx, 0x8(%rsp)
movq (%rbx), %rdi
leaq 0x2cd9a(%rip), %rsi     # 0x3e7f4
movq %r14, %rdx
callq 0xcc70
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x11975
movq 0x1040(%rdi), %rax
movq %rax, (%rsp)
testq %rax, %rax
jne 0x11a84
movq %r14, 0x8(%rsp)
callq 0xc0d0
jmp 0x11a62
leaq 0x30(%rbx), %rsi
movq %rbx, %rdi
callq 0x172d2
movq %rbx, %rdi
callq *0x18(%rbx)
cmpb $0x0, 0xb8(%rbx)
je 0x11d24
movq (%rbx), %rdi
leaq 0x2cd70(%rip), %rsi     # 0x3e824
xorl %edx, %edx
callq 0xc380
movzbl 0xb8(%rbx), %edx
movb $0x1, %bpl
addl $-0x2, %edx
leaq 0x2c7aa(%rip), %rax     # 0x3e279
cmpl $0x6, %edx
ja 0x11afd
leaq 0x2c93c(%rip), %rcx     # 0x3e417
leaq 0x2b80e(%rip), %rsi     # 0x3d2f0
movslq (%rsi,%rdx,4), %rdx
addq %rsi, %rdx
leaq 0x2c7e9(%rip), %rsi     # 0x3e2d9
jmpq *%rdx
leaq 0x2c790(%rip), %rsi     # 0x3e289
jmp 0x11b14
xorl %ebp, %ebp
movq %rax, %rsi
jmp 0x11b14
leaq 0x2b4fc(%rip), %rsi     # 0x3d005
jmp 0x11b14
xorl %ebp, %ebp
movq %rcx, %rsi
jmp 0x11b14
xorl %ebp, %ebp
andq $0x0, (%rsp)
movq %r14, 0x8(%rsp)
leaq 0x2c927(%rip), %rdi     # 0x3e44c
callq 0xc030
leaq 0x1040(%rax), %rcx
andq $0x0, 0x1040(%rax)
movq 0x8(%rsp), %rdx
movq %rax, (%rdx)
movq %rcx, 0x8(%rsp)
movq (%rbx), %rdi
leaq 0x2ccdd(%rip), %rsi     # 0x3e82d
movq %r14, %rdx
callq 0xcc70
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x11b7d
movq 0x1040(%rdi), %rax
movq %rax, (%rsp)
testq %rax, %rax
jne 0x11b76
movq %r14, 0x8(%rsp)
callq 0xc0d0
jmp 0x11b58
xorl %r12d, %r12d
leaq 0x2ccb2(%rip), %r15     # 0x3e839
movzwl 0xc8(%rbx), %eax
cmpq %rax, %r12
jae 0x11bcc
movq (%rbx), %rdi
movq %r15, %rsi
xorl %edx, %edx
callq 0xc380
movq 0xc0(%rbx), %rax
movzwl (%rax,%r12,2), %esi
movq %rbx, %rdi
callq 0x148f0
movq %rbx, %rdi
callq 0x15cd8
movq (%rbx), %rdi
movq %r15, %rsi
callq 0xc060
incq %r12
jmp 0x11b87
movq %rbx, %rdi
callq 0x16d3e
movzbl 0x95(%rbx), %eax
orl $0x4, %eax
cmpl $0xe, %eax
jne 0x11c02
testb %bpl, %bpl
jne 0x11bf0
movq %rbx, %rdi
callq 0x1884e
movq 0xb0(%rbx), %r15
testq %r15, %r15
je 0x11c2e
movl 0x14(%r15), %ebp
jmp 0x11c30
movq 0xb0(%rbx), %rdx
testq %rdx, %rdx
je 0x11c18
movq %rbx, %rdi
xorl %esi, %esi
callq 0x159ee
testb %bpl, %bpl
jne 0x11d15
movq %rbx, %rdi
callq 0x1884e
jmp 0x11d15
xorl %ebp, %ebp
movq (%rbx), %rdi
leaq 0x2c66e(%rip), %rsi     # 0x3e2a8
xorl %edx, %edx
callq 0xc380
movq %rbx, %rdi
movl %ebp, %esi
xorl %edx, %edx
callq 0x161bd
movq %rbx, %rdi
callq 0x162e7
movq (%rbx), %rdi
leaq 0x2c5b2(%rip), %rsi     # 0x3e211
xorl %edx, %edx
callq 0xc380
andq $0x0, (%rsp)
movq %r14, 0x8(%rsp)
leaq 0x2cbda(%rip), %rdi     # 0x3e851
leaq 0x30b28(%rip), %rsi     # 0x427a6
callq 0xc030
leaq 0x1040(%rax), %rcx
andq $0x0, 0x1040(%rax)
movq 0x8(%rsp), %rdx
movq %rax, (%rdx)
movq %rcx, 0x8(%rsp)
movq (%rbx), %rdi
leaq 0x2c56c(%rip), %r12     # 0x3e215
movq %r12, %rsi
movq %r14, %rdx
callq 0xc380
movq %rbx, %rdi
movq %r15, %rsi
callq 0x16332
movq (%rbx), %rdi
movq %r12, %rsi
callq 0xc060
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x11cef
movq 0x1040(%rdi), %rax
movq %rax, (%rsp)
testq %rax, %rax
jne 0x11ce8
movq %r14, 0x8(%rsp)
callq 0xc0d0
jmp 0x11cca
movq %rbx, %rdi
callq 0x167d6
movq (%rbx), %rdi
leaq 0x2c510(%rip), %rsi     # 0x3e211
callq 0xc060
movq (%rbx), %rdi
leaq 0x2c598(%rip), %rsi     # 0x3e2a8
callq 0xc060
movq (%rbx), %rdi
leaq 0x2cb05(%rip), %rsi     # 0x3e824
callq 0xc060
cmpb $0x0, 0x141(%rbx)
je 0x11f66
movb 0x140(%rbx), %al
leal -0x1(%rax), %ecx
cmpb $0x1, %cl
ja 0x11dbc
andq $0x0, (%rsp)
movq %r14, 0x8(%rsp)
cmpb $0x1, %al
leaq 0x2cb11(%rip), %rax     # 0x3e863
leaq 0x2cb0f(%rip), %rsi     # 0x3e868
cmoveq %rax, %rsi
leaq 0x2c6e8(%rip), %rdi     # 0x3e44c
callq 0xc030
leaq 0x1040(%rax), %rcx
andq $0x0, 0x1040(%rax)
movq 0x8(%rsp), %rdx
movq %rax, (%rdx)
movq %rcx, 0x8(%rsp)
movq (%rbx), %rdi
leaq 0x2cade(%rip), %rsi     # 0x3e86d
movq %r14, %rdx
callq 0xcc70
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x11dbc
movq 0x1040(%rdi), %rax
movq %rax, (%rsp)
testq %rax, %rax
jne 0x11db5
movq %r14, 0x8(%rsp)
callq 0xc0d0
jmp 0x11d97
movq (%rbx), %rdi
leaq 0x2ca43(%rip), %rsi     # 0x3e809
callq 0xc060
movq 0xd8(%rbx), %rsi
movq 0xe0(%rbx), %rdx
movq 0xe8(%rbx), %rcx
movq %rbx, %rdi
callq 0x1201b
cmpb $0x0, 0x97(%rbx)
jne 0x11ffa
movq (%rbx), %rdi
leaq 0x2cc84(%rip), %rsi     # 0x3ea83
xorl %edx, %edx
callq 0xc380
movq (%rbx), %rdi
leaq 0x2cc83(%rip), %rsi     # 0x3ea93
xorl %edx, %edx
callq 0xcc70
andq $0x0, (%rsp)
movq %r14, 0x8(%rsp)
leaq 0x2b1dd(%rip), %rdi     # 0x3d005
leaq 0x2cc73(%rip), %r15     # 0x3eaa2
movq %r15, %rsi
callq 0xc030
movl $0x1040, %r13d          # imm = 0x1040
andq $0x0, 0x1040(%rax)
leaq (%rax,%r13), %rcx
movq 0x8(%rsp), %rdx
movq %rax, (%rdx)
movq %rcx, 0x8(%rsp)
leaq 0x2c5ba(%rip), %rdi     # 0x3e417
leaq 0x2cc43(%rip), %r12     # 0x3eaa7
movq %r12, %rsi
callq 0xc030
andq $0x0, 0x1040(%rax)
leaq (%rax,%r13), %rcx
movq 0x8(%rsp), %rdx
movq %rax, (%rdx)
movq %rcx, 0x8(%rsp)
leaq 0x2c3ed(%rip), %rdi     # 0x3e279
movq %r12, %rsi
callq 0xc030
andq $0x0, 0x1040(%rax)
leaq (%rax,%r13), %rcx
movq 0x8(%rsp), %rdx
movq %rax, (%rdx)
movq %rcx, 0x8(%rsp)
leaq 0x2c3d5(%rip), %rdi     # 0x3e289
movq %r15, %rsi
callq 0xc030
andq $0x0, 0x1040(%rax)
leaq (%rax,%r13), %rcx
movq 0x8(%rsp), %rdx
movq %rax, (%rdx)
movq %rcx, 0x8(%rsp)
leaq 0x2cbcf(%rip), %rdi     # 0x3eaab
leaq 0x2cbcf(%rip), %r15     # 0x3eab2
movq %r15, %rsi
callq 0xc030
andq $0x0, 0x1040(%rax)
leaq (%rax,%r13), %rcx
movq 0x8(%rsp), %rdx
movq %rax, (%rdx)
movq %rcx, 0x8(%rsp)
leaq 0x2cbab(%rip), %rdi     # 0x3eab6
movq %r15, %rsi
callq 0xc030
addq %rax, %r13
andq $0x0, 0x1040(%rax)
movq 0x8(%rsp), %rcx
movq %rax, (%rcx)
movq %r13, 0x8(%rsp)
movq (%rbx), %rdi
leaq 0x2cb88(%rip), %rsi     # 0x3eabd
movq %r14, %rdx
callq 0xcc70
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x11fda
movq 0x1040(%rdi), %rax
movq %rax, (%rsp)
testq %rax, %rax
jne 0x11f5f
movq %r14, 0x8(%rsp)
callq 0xc0d0
jmp 0x11f3d
andq $0x0, (%rsp)
movq %r14, 0x8(%rsp)
leaq 0x2c4d5(%rip), %rdi     # 0x3e44c
leaq 0x307ca(%rip), %rsi     # 0x42748
callq 0xc030
leaq 0x1040(%rax), %rcx
andq $0x0, 0x1040(%rax)
movq 0x8(%rsp), %rdx
movq %rax, (%rdx)
movq %rcx, 0x8(%rsp)
movq (%rbx), %rdi
leaq 0x2c8ac(%rip), %rsi     # 0x3e855
movq %r14, %rdx
callq 0xcc70
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x11d31
movq 0x1040(%rdi), %rax
movq %rax, (%rsp)
testq %rax, %rax
jne 0x11fd3
movq %r14, 0x8(%rsp)
callq 0xc0d0
jmp 0x11fb1
movq (%rbx), %rdi
leaq 0x2cae7(%rip), %rsi     # 0x3eacb
xorl %edx, %edx
callq 0xcc70
movq (%rbx), %rdi
leaq 0x2ca8e(%rip), %rsi     # 0x3ea83
callq 0xc060
movq (%rbx), %rdi
leaq 0x2b63f(%rip), %rsi     # 0x3d643
callq 0xc060
addq $0xd8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq