// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/chart.c
// Function: lxw_chart_free
void
lxw_chart_free(lxw_chart *chart)
{
    lxw_chart_series *series;

    if (!chart)
        return;

    /* Chart series. */
    if (chart->series_list) {
        while (!STAILQ_EMPTY(chart->series_list)) {
            series = STAILQ_FIRST(chart->series_list);
            STAILQ_REMOVE_HEAD(chart->series_list, list_pointers);

            _chart_series_free(series);
        }

        free(chart->series_list);
    }

    /* X Axis. */
    if (chart->x_axis) {
        _chart_free_font(chart->x_axis->title.font);
        _chart_free_font(chart->x_axis->num_font);
        _chart_free_range(chart->x_axis->title.range);
        free(chart->x_axis->title.name);
        free(chart->x_axis->line);
        free(chart->x_axis->fill);
        free(chart->x_axis->pattern);
        free(chart->x_axis->major_gridlines.line);
        free(chart->x_axis->minor_gridlines.line);
        free(chart->x_axis->num_format);
        free(chart->x_axis->default_num_format);
        free(chart->x_axis);
    }

    /* Y Axis. */
    if (chart->y_axis) {
        _chart_free_font(chart->y_axis->title.font);
        _chart_free_font(chart->y_axis->num_font);
        _chart_free_range(chart->y_axis->title.range);
        free(chart->y_axis->title.name);
        free(chart->y_axis->line);
        free(chart->y_axis->fill);
        free(chart->y_axis->pattern);
        free(chart->y_axis->major_gridlines.line);
        free(chart->y_axis->minor_gridlines.line);
        free(chart->y_axis->num_format);
        free(chart->y_axis->default_num_format);
        free(chart->y_axis);
    }

    /* Chart title. */
    _chart_free_font(chart->title.font);
    _chart_free_range(chart->title.range);
    free(chart->title.name);

    /* Chart legend. */
    _chart_free_font(chart->legend.font);
    free(chart->delete_series);

    free(chart->default_marker);

    free(chart->chartarea_line);
    free(chart->chartarea_fill);
    free(chart->chartarea_pattern);
    free(chart->plotarea_line);
    free(chart->plotarea_fill);
    free(chart->plotarea_pattern);

    free(chart->drop_lines_line);
    free(chart->high_low_lines_line);

    free(chart->up_bar_line);
    free(chart->up_bar_fill);
    free(chart->down_bar_line);
    free(chart->down_bar_fill);

    _chart_free_font(chart->table_font);

    free(chart);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
cmpq $0x0, -0x8(%rbp)
jne 0x13e48
jmp 0x141e2
movq -0x8(%rbp), %rax
cmpq $0x0, 0x128(%rax)
je 0x13ee8
jmp 0x13e5c
movq -0x8(%rbp), %rax
movq 0x128(%rax), %rax
cmpq $0x0, (%rax)
sete %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x13e76
jmp 0x13ed8
movq -0x8(%rbp), %rax
movq 0x128(%rax), %rax
movq (%rax), %rax
movq %rax, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq 0x128(%rax), %rax
movq (%rax), %rax
movq 0x110(%rax), %rax
movq -0x8(%rbp), %rcx
movq 0x128(%rcx), %rcx
movq %rax, (%rcx)
cmpq $0x0, %rax
jne 0x13ecb
movq -0x8(%rbp), %rax
movq 0x128(%rax), %rcx
movq -0x8(%rbp), %rax
movq 0x128(%rax), %rax
movq %rcx, 0x8(%rax)
jmp 0x13ecd
movq -0x10(%rbp), %rdi
callq 0x141f0
jmp 0x13e5c
movq -0x8(%rbp), %rax
movq 0x128(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
cmpq $0x0, 0x20(%rax)
je 0x13fcd
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
movq 0x10(%rax), %rdi
callq 0x143b0
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
movq 0x88(%rax), %rdi
callq 0x143b0
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
movq 0x20(%rax), %rdi
callq 0x143e0
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
movq (%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
movq 0x90(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
movq 0x98(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
movq 0xa0(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
movq 0x70(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
movq 0x80(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
movq 0x50(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rax
movq 0x58(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0x20(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
cmpq $0x0, 0x28(%rax)
je 0x140b2
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq 0x10(%rax), %rdi
callq 0x143b0
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq 0x88(%rax), %rdi
callq 0x143b0
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq 0x20(%rax), %rdi
callq 0x143e0
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq (%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq 0x90(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq 0x98(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq 0xa0(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq 0x70(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq 0x80(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq 0x50(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rax
movq 0x58(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0x28(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0x40(%rax), %rdi
callq 0x143b0
movq -0x8(%rbp), %rax
movq 0x50(%rax), %rdi
callq 0x143e0
movq -0x8(%rbp), %rax
movq 0x30(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0xb0(%rax), %rdi
callq 0x143b0
movq -0x8(%rbp), %rax
movq 0xc0(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0xd0(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0xd8(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0xe0(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0xe8(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0xf0(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0xf8(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0x100(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0x110(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0x120(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0x148(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0x158(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0x150(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0x160(%rax), %rdi
callq 0xc0d0
movq -0x8(%rbp), %rax
movq 0x138(%rax), %rdi
callq 0x143b0
movq -0x8(%rbp), %rdi
callq 0xc0d0
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax,%rax)