// File: /workspace/github_c_makefile_star2_O3/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 0x278a2(%rip), %rsi     # 0x415b2
xorl %edx, %edx
callq 0xc350
movl 0x88(%rbx), %esi
movq %rbx, %rdi
callq 0x19c7e
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 0x19ebf
movq 0x28(%rbx), %rax
cmpb $0x0, 0xaf(%rax)
je 0x19d77
movq %rbx, %rdi
callq 0x18bd7
movq 0x28(%rbx), %rax
movzbl 0xab(%rax), %esi
movq 0x20(%rbx), %rax
movzbl 0xb0(%rax), %edx
movq %rbx, %rdi
callq 0x1a105
movq 0x28(%rbx), %rsi
movq %rbx, %rdi
callq 0x1a1b2
movq 0x28(%rbx), %rsi
movq %rbx, %rdi
callq 0x1a217
movb 0x99(%rbx), %al
movq 0x28(%rbx), %rsi
movb %al, 0x19(%rsi)
movq %rbx, %rdi
callq 0x1a282
movq 0x28(%rbx), %rsi
movq %rbx, %rdi
callq 0x1a7c8
movq 0x28(%rbx), %rax
movzbl 0x61(%rax), %esi
movq %rbx, %rdi
callq 0x1a360
movq 0x28(%rbx), %rax
movzbl 0x62(%rax), %esi
movq %rbx, %rdi
callq 0x1a414
movq 0x28(%rbx), %rax
movzbl 0xad(%rax), %esi
movq %rbx, %rdi
callq 0x1a4c8
movq 0x28(%rbx), %rax
movq 0x90(%rax), %rsi
movq 0x98(%rax), %rdx
movq 0xa0(%rax), %rcx
movq %rbx, %rdi
callq 0x1520f
movq 0x28(%rbx), %rax
movq 0x88(%rax), %rsi
movq %rbx, %rdi
callq 0x1a578
movl 0x84(%rbx), %esi
movq %rbx, %rdi
callq 0x1a60b
movq 0x20(%rbx), %rsi
cmpb $0x0, 0xf8(%rsi)
je 0x19e5e
cmpb $0x0, 0xf9(%rsi)
jne 0x19e5e
cmpb $0x0, 0xfa(%rsi)
je 0x19ead
movq %rbx, %rdi
callq 0x1a68f
movq 0x20(%rbx), %rax
movzbl 0xac(%rax), %esi
movq %rbx, %rdi
callq 0x1a8a8
movq 0x28(%rbx), %rsi
movq %rbx, %rdi
callq 0x1a94b
movq 0x28(%rbx), %rsi
movq %rbx, %rdi
callq 0x1a9e2
movq 0x28(%rbx), %rsi
movq %rbx, %rdi
callq 0x1aa79
movq (%rbx), %rdi
leaq 0x2770b(%rip), %rsi     # 0x415b2
popq %rbx
jmp 0xc060
movsd 0x100(%rsi), %xmm0
movq %rbx, %rdi
callq 0x1a746
jmp 0x19e66