// File: /workspace/github_c_makefile_star2_O1/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 0x14784
movq 0x20(%rbx), %rax
movq 0x28(%rbx), %rcx
movq %rcx, 0x20(%rbx)
movq %rax, 0x28(%rbx)
movq (%rbx), %rdi
callq 0xcf30
movaps 0x2d3fd(%rip), %xmm0    # 0x41b90
leaq 0xa0(%rsp), %rax
movaps %xmm0, 0x20(%rax)
movaps 0x2d3da(%rip), %xmm0    # 0x41b80
movaps %xmm0, 0x10(%rax)
movaps 0x2d3bf(%rip), %xmm0    # 0x41b70
movaps %xmm0, (%rax)
movabsq $0x74726168632f36, %rcx # imm = 0x74726168632F36
movq %rcx, 0x2f(%rax)
movaps 0x2d407(%rip), %xmm0    # 0x41bd0
leaq 0x60(%rsp), %r12
movaps %xmm0, 0x20(%r12)
movaps 0x2d3e5(%rip), %xmm0    # 0x41bc0
movaps %xmm0, 0x10(%r12)
movaps 0x2d3c8(%rip), %xmm0    # 0x41bb0
movaps %xmm0, (%r12)
movabsq $0x6e69616d2f3630, %rcx # imm = 0x6E69616D2F3630
movq %rcx, 0x2e(%r12)
leaq 0x2d3ed(%rip), %rsi     # 0x41bf0
movq %rsp, %r14
movl $0x8, %ecx
movq %r14, %rdi
rep  movsq (%rsi), %es:(%rdi)
movl $0x737069, 0x40(%r14)   # imm = 0x737069
xorl %r13d, %r13d
leaq 0x50(%rsp), %r15
movq %r13, (%r15)
movq %r15, 0x8(%r15)
leaq 0x2cfae(%rip), %rdi     # 0x417dd
movq %rax, %rsi
callq 0xc030
movl $0x1040, %ebp           # imm = 0x1040
leaq (%rax,%rbp), %rcx
movq %r13, 0x1040(%rax)
movq 0x8(%r15), %rdx
movq %rax, (%rdx)
movq %rcx, 0x8(%r15)
leaq 0x2cf8c(%rip), %rdi     # 0x417e5
movq %r12, %rsi
callq 0xc030
leaq (%rax,%rbp), %rcx
movq %r13, 0x1040(%rax)
movq 0x8(%r15), %rdx
movq %rax, (%rdx)
movq %rcx, 0x8(%r15)
leaq 0x2cf6f(%rip), %rdi     # 0x417ed
movq %r14, %rsi
callq 0xc030
addq %rax, %rbp
movq %r13, 0x1040(%rax)
movq 0x8(%r15), %rcx
movq %rax, (%rcx)
movq %rbp, 0x8(%r15)
movq (%rbx), %rdi
leaq 0x2bda6(%rip), %rsi     # 0x4064b
movq %r15, %rdx
callq 0xc350
movq (%r15), %rdi
testq %rdi, %rdi
je 0x148d7
movq 0x1040(%rdi), %rax
movq %rax, 0x50(%rsp)
testq %rax, %rax
jne 0x148cb
movq %r15, 0x58(%rsp)
callq 0xc0c0
movq 0x50(%rsp), %rdi
jmp 0x148b0
xorl %r15d, %r15d
movq %r15, (%rsp)
movq %r14, 0x8(%rsp)
leaq 0x2cb6a(%rip), %rdi     # 0x41454
leaq 0x2c992(%rip), %rsi     # 0x41283
callq 0xc030
leaq 0x1040(%rax), %rcx
movq %r15, 0x1040(%rax)
movq 0x8(%rsp), %rdx
movq %rax, (%rdx)
movq %rcx, 0x8(%rsp)
movq (%rbx), %rdi
leaq 0x2ceda(%rip), %rsi     # 0x417f5
movq %r14, %rdx
callq 0xcc00
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x14948
movq 0x1040(%rdi), %rax
movq %rax, (%rsp)
testq %rax, %rax
jne 0x14941
movq %r14, 0x8(%rsp)
callq 0xc0c0
jmp 0x14923
movzbl 0x9a(%rbx), %esi
cmpq $0x2, %rsi
jne 0x14a03
cmpb $0x0, 0x169(%rbx)
je 0x14973
movq (%rbx), %rdi
leaq 0x2ce98(%rip), %rsi     # 0x41804
xorl %edx, %edx
callq 0xcc00
movq (%rbx), %rdi
leaq 0x2ce94(%rip), %rsi     # 0x41811
xorl %edx, %edx
callq 0xc350
cmpb $0x0, 0x48(%rbx)
je 0x14a71
xorl %r15d, %r15d
movq %r15, (%rsp)
movq %r14, 0x8(%rsp)
leaq 0x2cab3(%rip), %rdi     # 0x41454
leaq 0x30d90(%rip), %rsi     # 0x45738
callq 0xc030
leaq 0x1040(%rax), %rcx
movq %r15, 0x1040(%rax)
movq 0x8(%rsp), %rdx
movq %rax, (%rdx)
movq %rcx, 0x8(%rsp)
movq (%rbx), %rdi
leaq 0x2ce47(%rip), %rsi     # 0x41819
movq %r14, %rdx
callq 0xcc00
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x14a7d
movq 0x1040(%rdi), %rax
movq %rax, (%rsp)
testq %rax, %rax
jne 0x149fc
movq %r14, 0x8(%rsp)
callq 0xc0c0
jmp 0x149da
xorl %r15d, %r15d
movq %r15, (%rsp)
movq %r14, 0x8(%rsp)
leaq 0x2ca3e(%rip), %rdi     # 0x41454
callq 0xc180
leaq 0x1040(%rax), %rcx
movq %r15, 0x1040(%rax)
movq 0x8(%rsp), %rdx
movq %rax, (%rdx)
movq %rcx, 0x8(%rsp)
movq (%rbx), %rdi
leaq 0x2cdbc(%rip), %rsi     # 0x417fc
movq %r14, %rdx
callq 0xcc00
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x14959
movq 0x1040(%rdi), %rax
movq %rax, (%rsp)
testq %rax, %rax
jne 0x14a6a
movq %r14, 0x8(%rsp)
callq 0xc0c0
jmp 0x14a48
leaq 0x30(%rbx), %rsi
movq %rbx, %rdi
callq 0x19fda
movq %rbx, %rdi
callq *0x18(%rbx)
cmpb $0x0, 0xb8(%rbx)
je 0x14cca
movq (%rbx), %rdi
leaq 0x2cd92(%rip), %rsi     # 0x4182c
xorl %edx, %edx
callq 0xc350
movzbl 0xb8(%rbx), %eax
movb $0x1, %bpl
addl $-0x2, %eax
cmpl $0x6, %eax
ja 0x14ae5
leaq 0x2c965(%rip), %rsi     # 0x4141f
leaq 0x2b82f(%rip), %rcx     # 0x402f0
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x2c7c0(%rip), %rsi     # 0x41291
jmp 0x14b00
leaq 0x2b52b(%rip), %rsi     # 0x40005
jmp 0x14b00
leaq 0x2c7fe(%rip), %rsi     # 0x412e1
jmp 0x14b00
leaq 0x2c795(%rip), %rsi     # 0x41281
jmp 0x14b00
leaq 0x2c78c(%rip), %rsi     # 0x41281
jmp 0x14afe
leaq 0x2c7e3(%rip), %rsi     # 0x412e1
xorl %ebp, %ebp
movq %rbx, %rdi
callq 0x1b62d
cmpw $0x0, 0xc8(%rbx)
je 0x14b5f
xorl %r12d, %r12d
leaq 0x2cd25(%rip), %r15     # 0x41841
movq (%rbx), %rdi
movq %r15, %rsi
xorl %edx, %edx
callq 0xc350
movq 0xc0(%rbx), %rax
movzwl (%rax,%r12,2), %esi
movq %rbx, %rdi
callq 0x1759c
movq %rbx, %rdi
callq 0x189b1
movq (%rbx), %rdi
movq %r15, %rsi
callq 0xc060
incq %r12
movzwl 0xc8(%rbx), %eax
cmpq %rax, %r12
jb 0x14b1c
movq (%rbx), %rdi
leaq 0x2c66b(%rip), %rsi     # 0x411d4
xorl %edx, %edx
callq 0xcc00
movzbl 0x95(%rbx), %eax
orl $0x4, %eax
cmpl $0xe, %eax
jne 0x14b9e
testb %bpl, %bpl
jne 0x14b8c
movq %rbx, %rdi
callq 0x1b6af
movq 0xb0(%rbx), %r15
testq %r15, %r15
je 0x14bca
movl 0x14(%r15), %ebp
jmp 0x14bcc
movq 0xb0(%rbx), %rdx
testq %rdx, %rdx
je 0x14bb4
movq %rbx, %rdi
xorl %esi, %esi
callq 0x186a6
testb %bpl, %bpl
jne 0x14cbb
movq %rbx, %rdi
callq 0x1b6af
jmp 0x14cbb
xorl %ebp, %ebp
movq (%rbx), %rdi
leaq 0x2c6da(%rip), %rsi     # 0x412b0
xorl %r12d, %r12d
xorl %edx, %edx
callq 0xc350
movq %rbx, %rdi
movl %ebp, %esi
xorl %edx, %edx
callq 0x18e92
movq (%rbx), %rdi
leaq 0x2c618(%rip), %rsi     # 0x4120e
xorl %edx, %edx
callq 0xcc00
movq (%rbx), %rdi
leaq 0x2c612(%rip), %rsi     # 0x41219
xorl %edx, %edx
callq 0xc350
movq %r12, (%rsp)
movq %r14, 0x8(%rsp)
leaq 0x2cc3b(%rip), %rdi     # 0x41859
leaq 0x30b71(%rip), %rsi     # 0x45796
callq 0xc030
leaq 0x1040(%rax), %rcx
movq %r12, 0x1040(%rax)
movq 0x8(%rsp), %rdx
movq %rax, (%rdx)
movq %rcx, 0x8(%rsp)
movq (%rbx), %rdi
leaq 0x2c5ce(%rip), %r12     # 0x4121d
movq %r12, %rsi
movq %r14, %rdx
callq 0xc350
movq %rbx, %rdi
movq %r15, %rsi
callq 0x19007
movq (%rbx), %rdi
movq %r12, %rsi
callq 0xc060
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x14c95
movq 0x1040(%rdi), %rax
movq %rax, (%rsp)
testq %rax, %rax
jne 0x14c8e
movq %r14, 0x8(%rsp)
callq 0xc0c0
jmp 0x14c70
movq %rbx, %rdi
callq 0x194a0
movq (%rbx), %rdi
leaq 0x2c572(%rip), %rsi     # 0x41219
callq 0xc060
movq (%rbx), %rdi
leaq 0x2c5fa(%rip), %rsi     # 0x412b0
callq 0xc060
movq (%rbx), %rdi
leaq 0x2cb67(%rip), %rsi     # 0x4182c
callq 0xc060
cmpb $0x0, 0x141(%rbx)
je 0x14f08
movb 0x140(%rbx), %al
leal -0x1(%rax), %ecx
cmpb $0x1, %cl
ja 0x14d63
xorl %r15d, %r15d
movq %r15, (%rsp)
movq %r14, 0x8(%rsp)
cmpb $0x1, %al
leaq 0x2cb71(%rip), %rax     # 0x4186b
leaq 0x2cb6f(%rip), %rsi     # 0x41870
cmoveq %rax, %rsi
leaq 0x2c748(%rip), %rdi     # 0x41454
callq 0xc030
leaq 0x1040(%rax), %rcx
movq %r15, 0x1040(%rax)
movq 0x8(%rsp), %rdx
movq %rax, (%rdx)
movq %rcx, 0x8(%rsp)
movq (%rbx), %rdi
leaq 0x2cb3f(%rip), %rsi     # 0x41875
movq %r14, %rdx
callq 0xcc00
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x14d63
movq 0x1040(%rdi), %rax
movq %rax, (%rsp)
testq %rax, %rax
jne 0x14d5c
movq %r14, 0x8(%rsp)
callq 0xc0c0
jmp 0x14d3e
movq (%rbx), %rdi
leaq 0x2caa4(%rip), %rsi     # 0x41811
callq 0xc060
movq 0xd8(%rbx), %rsi
movq 0xe0(%rbx), %rdx
movq 0xe8(%rbx), %rcx
movq %rbx, %rdi
callq 0x14fbe
cmpb $0x0, 0x97(%rbx)
jne 0x14f9d
movq (%rbx), %rdi
leaq 0x2cce5(%rip), %rsi     # 0x41a8b
xorl %r13d, %r13d
xorl %edx, %edx
callq 0xc350
movq (%rbx), %rdi
leaq 0x2cce1(%rip), %rsi     # 0x41a9b
xorl %edx, %edx
callq 0xcc00
movq %r13, (%rsp)
movq %r14, 0x8(%rsp)
leaq 0x2b234(%rip), %rdi     # 0x40005
leaq 0x2ccd2(%rip), %r15     # 0x41aaa
movq %r15, %rsi
callq 0xc030
movl $0x1040, %ebp           # imm = 0x1040
leaq (%rax,%rbp), %rcx
movq %r13, 0x1040(%rax)
movq 0x8(%rsp), %rdx
movq %rax, (%rdx)
movq %rcx, 0x8(%rsp)
leaq 0x2c61b(%rip), %rdi     # 0x4141f
leaq 0x2cca4(%rip), %r12     # 0x41aaf
movq %r12, %rsi
callq 0xc030
leaq (%rax,%rbp), %rcx
movq %r13, 0x1040(%rax)
movq 0x8(%rsp), %rdx
movq %rax, (%rdx)
movq %rcx, 0x8(%rsp)
leaq 0x2c44f(%rip), %rdi     # 0x41281
movq %r12, %rsi
callq 0xc030
leaq (%rax,%rbp), %rcx
movq %r13, 0x1040(%rax)
movq 0x8(%rsp), %rdx
movq %rax, (%rdx)
movq %rcx, 0x8(%rsp)
leaq 0x2c438(%rip), %rdi     # 0x41291
movq %r15, %rsi
callq 0xc030
leaq (%rax,%rbp), %rcx
movq %r13, 0x1040(%rax)
movq 0x8(%rsp), %rdx
movq %rax, (%rdx)
movq %rcx, 0x8(%rsp)
leaq 0x2cc33(%rip), %rdi     # 0x41ab3
leaq 0x2cc33(%rip), %r15     # 0x41aba
movq %r15, %rsi
callq 0xc030
leaq (%rax,%rbp), %rcx
movq %r13, 0x1040(%rax)
movq 0x8(%rsp), %rdx
movq %rax, (%rdx)
movq %rcx, 0x8(%rsp)
leaq 0x2cc10(%rip), %rdi     # 0x41abe
movq %r15, %rsi
callq 0xc030
addq %rax, %rbp
movq %r13, 0x1040(%rax)
movq 0x8(%rsp), %rcx
movq %rax, (%rcx)
movq %rbp, 0x8(%rsp)
movq (%rbx), %rdi
leaq 0x2cbee(%rip), %rsi     # 0x41ac5
movq %r14, %rdx
callq 0xcc00
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x14f7d
movq 0x1040(%rdi), %rax
movq %rax, (%rsp)
testq %rax, %rax
jne 0x14f01
movq %r14, 0x8(%rsp)
callq 0xc0c0
jmp 0x14edf
xorl %r15d, %r15d
movq %r15, (%rsp)
movq %r14, 0x8(%rsp)
leaq 0x2c539(%rip), %rdi     # 0x41454
leaq 0x30816(%rip), %rsi     # 0x45738
callq 0xc030
leaq 0x1040(%rax), %rcx
movq %r15, 0x1040(%rax)
movq 0x8(%rsp), %rdx
movq %rax, (%rdx)
movq %rcx, 0x8(%rsp)
movq (%rbx), %rdi
leaq 0x2c911(%rip), %rsi     # 0x4185d
movq %r14, %rdx
callq 0xcc00
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x14cd7
movq 0x1040(%rdi), %rax
movq %rax, (%rsp)
testq %rax, %rax
jne 0x14f76
movq %r14, 0x8(%rsp)
callq 0xc0c0
jmp 0x14f54
movq (%rbx), %rdi
leaq 0x2cb4c(%rip), %rsi     # 0x41ad3
xorl %edx, %edx
callq 0xcc00
movq (%rbx), %rdi
leaq 0x2caf3(%rip), %rsi     # 0x41a8b
callq 0xc060
movq (%rbx), %rdi
leaq 0x2b6a4(%rip), %rsi     # 0x4064b
callq 0xc060
addq $0xd8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq