// File: /workspace/github_c_makefile_star2_O3/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 0x14973
movdqu 0x20(%rbx), %xmm0
pshufd $0x4e, %xmm0, %xmm0     # xmm0 = xmm0[2,3,0,1]
movdqu %xmm0, 0x20(%rbx)
movq (%rbx), %rdi
callq 0xcf30
movaps 0x2d20e(%rip), %xmm0    # 0x41b90
leaq 0xa0(%rsp), %rax
movaps %xmm0, 0x20(%rax)
movaps 0x2d1eb(%rip), %xmm0    # 0x41b80
movaps %xmm0, 0x10(%rax)
movaps 0x2d1d0(%rip), %xmm0    # 0x41b70
movaps %xmm0, (%rax)
movabsq $0x74726168632f36, %rcx # imm = 0x74726168632F36
movq %rcx, 0x2f(%rax)
movaps 0x2d218(%rip), %xmm0    # 0x41bd0
leaq 0x60(%rsp), %r12
movaps %xmm0, 0x20(%r12)
movaps 0x2d1f6(%rip), %xmm0    # 0x41bc0
movaps %xmm0, 0x10(%r12)
movaps 0x2d1d9(%rip), %xmm0    # 0x41bb0
movaps %xmm0, (%r12)
movabsq $0x6e69616d2f3630, %rcx # imm = 0x6E69616D2F3630
movq %rcx, 0x2e(%r12)
leaq 0x2d1fe(%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 0x2cdb7(%rip), %rdi     # 0x417d5
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 0x2cd95(%rip), %rdi     # 0x417dd
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 0x2cd78(%rip), %rdi     # 0x417e5
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 0x2bbaf(%rip), %rsi     # 0x40643
movq %r15, %rdx
callq 0xc350
movq (%r15), %rdi
testq %rdi, %rdi
je 0x14ac6
movq 0x1040(%rdi), %rax
movq %rax, 0x50(%rsp)
testq %rax, %rax
jne 0x14aba
movq %r15, 0x58(%rsp)
callq 0xc0c0
movq 0x50(%rsp), %rdi
jmp 0x14a9f
xorl %r15d, %r15d
movq %r15, (%rsp)
movq %r14, 0x8(%rsp)
leaq 0x2c973(%rip), %rdi     # 0x4144c
leaq 0x2c79b(%rip), %rsi     # 0x4127b
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 0x2cce3(%rip), %rsi     # 0x417ed
movq %r14, %rdx
callq 0xcc00
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x14b37
movq 0x1040(%rdi), %rax
movq %rax, (%rsp)
testq %rax, %rax
jne 0x14b30
movq %r14, 0x8(%rsp)
callq 0xc0c0
jmp 0x14b12
movzbl 0x9a(%rbx), %esi
cmpq $0x2, %rsi
jne 0x14bf2
cmpb $0x0, 0x169(%rbx)
je 0x14b62
movq (%rbx), %rdi
leaq 0x2cca1(%rip), %rsi     # 0x417fc
xorl %edx, %edx
callq 0xcc00
movq (%rbx), %rdi
leaq 0x2cc9d(%rip), %rsi     # 0x41809
xorl %edx, %edx
callq 0xc350
cmpb $0x0, 0x48(%rbx)
je 0x14c60
xorl %r15d, %r15d
movq %r15, (%rsp)
movq %r14, 0x8(%rsp)
leaq 0x2c8bc(%rip), %rdi     # 0x4144c
leaq 0x30bb1(%rip), %rsi     # 0x45748
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 0x2cc50(%rip), %rsi     # 0x41811
movq %r14, %rdx
callq 0xcc00
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x14c6c
movq 0x1040(%rdi), %rax
movq %rax, (%rsp)
testq %rax, %rax
jne 0x14beb
movq %r14, 0x8(%rsp)
callq 0xc0c0
jmp 0x14bc9
xorl %r15d, %r15d
movq %r15, (%rsp)
movq %r14, 0x8(%rsp)
leaq 0x2c847(%rip), %rdi     # 0x4144c
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 0x2cbc5(%rip), %rsi     # 0x417f4
movq %r14, %rdx
callq 0xcc00
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x14b48
movq 0x1040(%rdi), %rax
movq %rax, (%rsp)
testq %rax, %rax
jne 0x14c59
movq %r14, 0x8(%rsp)
callq 0xc0c0
jmp 0x14c37
leaq 0x30(%rbx), %rsi
movq %rbx, %rdi
callq 0x1a282
movq %rbx, %rdi
callq *0x18(%rbx)
cmpb $0x0, 0xb8(%rbx)
je 0x14f1b
movq (%rbx), %rdi
leaq 0x2cb9b(%rip), %rsi     # 0x41824
xorl %edx, %edx
callq 0xc350
movzbl 0xb8(%rbx), %eax
movb $0x1, %bpl
addl $-0x2, %eax
cmpl $0x6, %eax
ja 0x14cd4
leaq 0x2c76e(%rip), %rsi     # 0x41417
leaq 0x2b640(%rip), %rcx     # 0x402f0
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x2c5c9(%rip), %rsi     # 0x41289
jmp 0x14cef
leaq 0x2b33c(%rip), %rsi     # 0x40005
jmp 0x14cef
leaq 0x2c607(%rip), %rsi     # 0x412d9
jmp 0x14cef
leaq 0x2c59e(%rip), %rsi     # 0x41279
jmp 0x14cef
leaq 0x2c595(%rip), %rsi     # 0x41279
jmp 0x14ced
leaq 0x2c5ec(%rip), %rsi     # 0x412d9
xorl %ebp, %ebp
xorl %r15d, %r15d
movq %r15, (%rsp)
movq %r14, 0x8(%rsp)
leaq 0x2c74a(%rip), %rdi     # 0x4144c
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 0x2cb01(%rip), %rsi     # 0x4182d
movq %r14, %rdx
callq 0xcc00
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x14d59
movq 0x1040(%rdi), %rax
movq %rax, (%rsp)
testq %rax, %rax
jne 0x14d52
movq %r14, 0x8(%rsp)
callq 0xc0c0
jmp 0x14d34
cmpw $0x0, 0xc8(%rbx)
je 0x14db0
xorl %r12d, %r12d
leaq 0x2cacc(%rip), %r15     # 0x41839
movq (%rbx), %rdi
movq %r15, %rsi
xorl %edx, %edx
callq 0xc350
movq 0xc0(%rbx), %rax
movzwl (%rax,%r12,2), %esi
movq %rbx, %rdi
callq 0x177bc
movq %rbx, %rdi
callq 0x18bd7
movq (%rbx), %rdi
movq %r15, %rsi
callq 0xc060
incq %r12
movzwl 0xc8(%rbx), %eax
cmpq %rax, %r12
jb 0x14d6d
movq (%rbx), %rdi
leaq 0x2c412(%rip), %rsi     # 0x411cc
xorl %edx, %edx
callq 0xcc00
movzbl 0x95(%rbx), %eax
orl $0x4, %eax
cmpl $0xe, %eax
jne 0x14def
testb %bpl, %bpl
jne 0x14ddd
movq %rbx, %rdi
callq 0x1b8c8
movq 0xb0(%rbx), %r15
testq %r15, %r15
je 0x14e1b
movl 0x14(%r15), %ebp
jmp 0x14e1d
movq 0xb0(%rbx), %rdx
testq %rdx, %rdx
je 0x14e05
movq %rbx, %rdi
xorl %esi, %esi
callq 0x188cc
testb %bpl, %bpl
jne 0x14f0c
movq %rbx, %rdi
callq 0x1b8c8
jmp 0x14f0c
xorl %ebp, %ebp
movq (%rbx), %rdi
leaq 0x2c481(%rip), %rsi     # 0x412a8
xorl %r12d, %r12d
xorl %edx, %edx
callq 0xc350
movq %rbx, %rdi
movl %ebp, %esi
xorl %edx, %edx
callq 0x190ed
movq (%rbx), %rdi
leaq 0x2c3bf(%rip), %rsi     # 0x41206
xorl %edx, %edx
callq 0xcc00
movq (%rbx), %rdi
leaq 0x2c3b9(%rip), %rsi     # 0x41211
xorl %edx, %edx
callq 0xc350
movq %r12, (%rsp)
movq %r14, 0x8(%rsp)
leaq 0x2c9e2(%rip), %rdi     # 0x41851
leaq 0x30930(%rip), %rsi     # 0x457a6
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 0x2c375(%rip), %r12     # 0x41215
movq %r12, %rsi
movq %r14, %rdx
callq 0xc350
movq %rbx, %rdi
movq %r15, %rsi
callq 0x19262
movq (%rbx), %rdi
movq %r12, %rsi
callq 0xc060
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x14ee6
movq 0x1040(%rdi), %rax
movq %rax, (%rsp)
testq %rax, %rax
jne 0x14edf
movq %r14, 0x8(%rsp)
callq 0xc0c0
jmp 0x14ec1
movq %rbx, %rdi
callq 0x19731
movq (%rbx), %rdi
leaq 0x2c319(%rip), %rsi     # 0x41211
callq 0xc060
movq (%rbx), %rdi
leaq 0x2c3a1(%rip), %rsi     # 0x412a8
callq 0xc060
movq (%rbx), %rdi
leaq 0x2c90e(%rip), %rsi     # 0x41824
callq 0xc060
cmpb $0x0, 0x141(%rbx)
je 0x15159
movb 0x140(%rbx), %al
leal -0x1(%rax), %ecx
cmpb $0x1, %cl
ja 0x14fb4
xorl %r15d, %r15d
movq %r15, (%rsp)
movq %r14, 0x8(%rsp)
cmpb $0x1, %al
leaq 0x2c918(%rip), %rax     # 0x41863
leaq 0x2c916(%rip), %rsi     # 0x41868
cmoveq %rax, %rsi
leaq 0x2c4ef(%rip), %rdi     # 0x4144c
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 0x2c8e6(%rip), %rsi     # 0x4186d
movq %r14, %rdx
callq 0xcc00
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x14fb4
movq 0x1040(%rdi), %rax
movq %rax, (%rsp)
testq %rax, %rax
jne 0x14fad
movq %r14, 0x8(%rsp)
callq 0xc0c0
jmp 0x14f8f
movq (%rbx), %rdi
leaq 0x2c84b(%rip), %rsi     # 0x41809
callq 0xc060
movq 0xd8(%rbx), %rsi
movq 0xe0(%rbx), %rdx
movq 0xe8(%rbx), %rcx
movq %rbx, %rdi
callq 0x1520f
cmpb $0x0, 0x97(%rbx)
jne 0x151ee
movq (%rbx), %rdi
leaq 0x2ca8c(%rip), %rsi     # 0x41a83
xorl %r13d, %r13d
xorl %edx, %edx
callq 0xc350
movq (%rbx), %rdi
leaq 0x2ca88(%rip), %rsi     # 0x41a93
xorl %edx, %edx
callq 0xcc00
movq %r13, (%rsp)
movq %r14, 0x8(%rsp)
leaq 0x2afe3(%rip), %rdi     # 0x40005
leaq 0x2ca79(%rip), %r15     # 0x41aa2
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 0x2c3c2(%rip), %rdi     # 0x41417
leaq 0x2ca4b(%rip), %r12     # 0x41aa7
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 0x2c1f6(%rip), %rdi     # 0x41279
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 0x2c1df(%rip), %rdi     # 0x41289
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 0x2c9da(%rip), %rdi     # 0x41aab
leaq 0x2c9da(%rip), %r15     # 0x41ab2
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 0x2c9b7(%rip), %rdi     # 0x41ab6
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 0x2c995(%rip), %rsi     # 0x41abd
movq %r14, %rdx
callq 0xcc00
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x151ce
movq 0x1040(%rdi), %rax
movq %rax, (%rsp)
testq %rax, %rax
jne 0x15152
movq %r14, 0x8(%rsp)
callq 0xc0c0
jmp 0x15130
xorl %r15d, %r15d
movq %r15, (%rsp)
movq %r14, 0x8(%rsp)
leaq 0x2c2e0(%rip), %rdi     # 0x4144c
leaq 0x305d5(%rip), %rsi     # 0x45748
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 0x2c6b8(%rip), %rsi     # 0x41855
movq %r14, %rdx
callq 0xcc00
movq (%rsp), %rdi
testq %rdi, %rdi
je 0x14f28
movq 0x1040(%rdi), %rax
movq %rax, (%rsp)
testq %rax, %rax
jne 0x151c7
movq %r14, 0x8(%rsp)
callq 0xc0c0
jmp 0x151a5
movq (%rbx), %rdi
leaq 0x2c8f3(%rip), %rsi     # 0x41acb
xorl %edx, %edx
callq 0xcc00
movq (%rbx), %rdi
leaq 0x2c89a(%rip), %rsi     # 0x41a83
callq 0xc060
movq (%rbx), %rdi
leaq 0x2b44b(%rip), %rsi     # 0x40643
callq 0xc060
addq $0xd8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq