// File: /workspace/github_c_makefile_star2_O2/Paxa[P]fast_excel/libxlsxwriter/src/chart.c
// Function: chart_write_val_axis
STATIC void
_chart_write_val_axis(lxw_chart *self)
{
    lxw_xml_start_tag(self->file, "c:valAx", NULL);

    _chart_write_axis_id(self, self->axis_id_2);

    /* Write the c:scaling element. */
    _chart_write_scaling(self,
                         self->y_axis->reverse,
                         self->y_axis->has_min, self->y_axis->min,
                         self->y_axis->has_max, self->y_axis->max,
                         self->y_axis->log_base);

    /* Write the c:delete element to hide axis. */
    if (self->y_axis->hidden)
        _chart_write_delete(self);

    /* Write the c:axPos element. */
    _chart_write_axis_pos(self, self->y_axis->axis_position,
                          self->x_axis->reverse);

    /* Write the c:majorGridlines element. */
    _chart_write_major_gridlines(self, self->y_axis);

    /* Write the c:minorGridlines element. */
    _chart_write_minor_gridlines(self, self->y_axis);

    /* Write the axis title elements. */
    self->y_axis->title.is_horizontal = self->has_horiz_val_axis;
    _chart_write_title(self, &self->y_axis->title);

    /* Write the c:numFmt element. */
    _chart_write_number_format(self, self->y_axis);

    /* Write the c:majorTickMark element. */
    _chart_write_major_tick_mark(self, self->y_axis);

    /* Write the c:minorTickMark element. */
    _chart_write_minor_tick_mark(self, self->y_axis);

    /* Write the c:tickLblPos element. */
    _chart_write_tick_label_pos(self, self->y_axis);

    /* Write the c:spPr element for the axis line. */
    _chart_write_sp_pr(self, self->y_axis->line, self->y_axis->fill,
                       self->y_axis->pattern);

    /* Write the axis font elements. */
    _chart_write_axis_font(self, self->y_axis->num_font);

    /* Write the c:crossAx element. */
    _chart_write_cross_axis(self, self->axis_id_1);

    /* Write the c:crosses element. */
    if (!self->x_axis->has_crossing || self->x_axis->crossing_min
        || self->x_axis->crossing_max)
        _chart_write_crosses(self, self->x_axis);
    else
        _chart_write_crosses_at(self, self->x_axis);

    /* Write the c:crossBetween element. */
    _chart_write_cross_between(self, self->x_axis->position_axis);

    /* Write the c:majorUnit element. */
    _chart_write_major_unit(self, self->y_axis);

    /* Write the c:minorUnit element. */
    _chart_write_minor_unit(self, self->y_axis);

    /* Write the c:dispUnits element. */
    _chart_write_disp_units(self, self->y_axis);

    lxw_xml_end_tag(self->file, "c:valAx");
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
movq (%rdi), %rdi
leaq 0x2782c(%rip), %rsi     # 0x3e5b2
xorl %edx, %edx
callq 0xc380
movl 0x88(%rbx), %esi
movq %rbx, %rdi
callq 0x16cbe
movq 0x28(%rbx), %rax
movzbl 0xb0(%rax), %esi
movzbl 0xb1(%rax), %edx
movzbl 0xc0(%rax), %ecx
movsd 0xb8(%rax), %xmm0
movsd 0xc8(%rax), %xmm1
movzwl 0xf4(%rax), %r8d
movq %rbx, %rdi
callq 0x16f1e
movq 0x28(%rbx), %rax
cmpb $0x0, 0xaf(%rax)
je 0x16ded
movq %rbx, %rdi
callq 0x15cd8
movq 0x28(%rbx), %rax
movzbl 0xab(%rax), %esi
movq 0x20(%rbx), %rax
movzbl 0xb0(%rax), %edx
movq %rbx, %rdi
callq 0x17159
movq 0x28(%rbx), %rsi
movq %rbx, %rdi
callq 0x17202
movq 0x28(%rbx), %rsi
movq %rbx, %rdi
callq 0x17267
movb 0x99(%rbx), %al
movq 0x28(%rbx), %rsi
movb %al, 0x19(%rsi)
movq %rbx, %rdi
callq 0x172d2
movq 0x28(%rbx), %rsi
movq %rbx, %rdi
callq 0x177cd
movq 0x28(%rbx), %rsi
movq %rbx, %rdi
callq 0x1739e
movq 0x28(%rbx), %rsi
movq %rbx, %rdi
callq 0x17445
movq 0x28(%rbx), %rsi
movq %rbx, %rdi
callq 0x174ec
movq 0x28(%rbx), %rax
movq 0x90(%rax), %rsi
movq 0x98(%rax), %rdx
movq 0xa0(%rax), %rcx
movq %rbx, %rdi
callq 0x1201b
movq 0x28(%rbx), %rax
movq 0x88(%rax), %rsi
movq %rbx, %rdi
callq 0x17592
movl 0x84(%rbx), %esi
movq %rbx, %rdi
callq 0x1761c
movq 0x20(%rbx), %rsi
cmpb $0x0, 0xf8(%rsi)
je 0x16ec5
cmpb $0x0, 0xf9(%rsi)
jne 0x16ec5
cmpb $0x0, 0xfa(%rsi)
je 0x16f14
movq %rbx, %rdi
callq 0x1769c
movq 0x20(%rbx), %rax
movzbl 0xac(%rax), %esi
movq %rbx, %rdi
callq 0x178aa
movq 0x28(%rbx), %rsi
movq %rbx, %rdi
callq 0x17949
movq 0x28(%rbx), %rsi
movq %rbx, %rdi
callq 0x179dc
movq 0x28(%rbx), %rsi
movq %rbx, %rdi
callq 0x17a6f
movq (%rbx), %rdi
leaq 0x276a4(%rip), %rsi     # 0x3e5b2
popq %rbx
jmp 0xc060
movq %rbx, %rdi
callq 0x17747
jmp 0x16ecd