// File: /workspace/github_c_makefile_star2_O1/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 0x27b3b(%rip), %rsi     # 0x415ba
xorl %edx, %edx
callq 0xc350
movl 0x88(%rbx), %esi
movq %rbx, %rdi
callq 0x199ed
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 0x19c17
movq 0x28(%rbx), %rax
cmpb $0x0, 0xaf(%rax)
je 0x19ae2
movq %rbx, %rdi
callq 0x189b1
movq 0x20(%rbx), %rax
movq 0x28(%rbx), %rcx
movzbl 0xab(%rcx), %esi
movzbl 0xb0(%rax), %edx
movq %rbx, %rdi
callq 0x19e5d
movq 0x28(%rbx), %rsi
movq %rbx, %rdi
callq 0x19f0a
movq 0x28(%rbx), %rsi
movq %rbx, %rdi
callq 0x19f6f
movb 0x99(%rbx), %al
movq 0x28(%rbx), %rsi
movb %al, 0x19(%rsi)
movq %rbx, %rdi
callq 0x19fda
movq 0x28(%rbx), %rsi
movq %rbx, %rdi
callq 0x1a528
movq 0x28(%rbx), %rsi
movq %rbx, %rdi
callq 0x1a0b8
movq 0x28(%rbx), %rsi
movq %rbx, %rdi
callq 0x1a16b
movq 0x28(%rbx), %rsi
movq %rbx, %rdi
callq 0x1a21e
movq 0x28(%rbx), %rax
movq 0x90(%rax), %rsi
movq 0x98(%rax), %rdx
movq 0xa0(%rax), %rcx
movq %rbx, %rdi
callq 0x14fbe
movq 0x28(%rbx), %rax
movq 0x88(%rax), %rsi
movq %rbx, %rdi
callq 0x1a2d0
movl 0x84(%rbx), %esi
movq %rbx, %rdi
callq 0x1a363
movq 0x20(%rbx), %rsi
cmpb $0x0, 0xf8(%rsi)
je 0x19bbe
cmpb $0x0, 0xf9(%rsi)
jne 0x19bbe
cmpb $0x0, 0xfa(%rsi)
je 0x19c0d
movq %rbx, %rdi
callq 0x1a3e7
movq 0x20(%rbx), %rax
movzbl 0xac(%rax), %esi
movq %rbx, %rdi
callq 0x1a60a
movq 0x28(%rbx), %rsi
movq %rbx, %rdi
callq 0x1a6ad
movq 0x28(%rbx), %rsi
movq %rbx, %rdi
callq 0x1a744
movq 0x28(%rbx), %rsi
movq %rbx, %rdi
callq 0x1a7db
movq (%rbx), %rdi
leaq 0x279b3(%rip), %rsi     # 0x415ba
popq %rbx
jmp 0xc060
movq %rbx, %rdi
callq 0x1a49e
jmp 0x19bc6