// File: /workspace/github_c_makefile_star2_O2/Paxa[P]fast_excel/libxlsxwriter/src/worksheet.c
// Function: write_row
STATIC void
_write_row(lxw_worksheet *self, lxw_row *row, char *spans)
{
    struct xml_attribute_list attributes;
    struct xml_attribute *attribute;
    int32_t xf_index = 0;
    double height;

    if (row->format) {
        xf_index = lxw_format_get_xf_index(row->format);
    }

    if (row->height_changed)
        height = row->height;
    else
        height = self->default_row_height;

    LXW_INIT_ATTRIBUTES();
    LXW_PUSH_ATTRIBUTES_INT("r", row->row_num + 1);

    if (spans)
        LXW_PUSH_ATTRIBUTES_STR("spans", spans);

    if (xf_index)
        LXW_PUSH_ATTRIBUTES_INT("s", xf_index);

    if (row->format)
        LXW_PUSH_ATTRIBUTES_STR("customFormat", "1");

    if (height != LXW_DEF_ROW_HEIGHT)
        LXW_PUSH_ATTRIBUTES_DBL("ht", height);

    if (row->hidden)
        LXW_PUSH_ATTRIBUTES_STR("hidden", "1");

    if (height != LXW_DEF_ROW_HEIGHT)
        LXW_PUSH_ATTRIBUTES_STR("customHeight", "1");

    if (row->level)
        LXW_PUSH_ATTRIBUTES_INT("outlineLevel", row->level);

    if (row->collapsed)
        LXW_PUSH_ATTRIBUTES_STR("collapsed", "1");

    if (self->excel_version == 2010)
        LXW_PUSH_ATTRIBUTES_STR("x14ac:dyDescent", "0.25");

    if (!row->data_changed)
        lxw_xml_empty_tag(self->file, "row", &attributes);
    else
        lxw_xml_start_tag(self->file, "row", &attributes);

    LXW_FREE_ATTRIBUTES();
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x20, %rsp
movq %rdx, %r15
movq %rsi, %r14
movq %rdi, %rbx
movq 0x10(%rsi), %rdi
testq %rdi, %rdi
je 0x2fe3e
callq 0xca20
movl %eax, %ebp
jmp 0x2fe40
xorl %ebp, %ebp
leaq 0x8(%r14), %rax
cmpb $0x0, 0x1d(%r14)
leaq 0x198(%rbx), %rcx
cmoveq %rcx, %rax
movsd (%rax), %xmm0
movsd %xmm0, 0x18(%rsp)
leaq 0x8(%rsp), %r12
andq $0x0, (%r12)
movq %r12, 0x8(%r12)
movl (%r14), %esi
incl %esi
leaq 0xe400(%rip), %rdi      # 0x3e279
callq 0xc1a0
leaq 0x1040(%rax), %rcx
andq $0x0, 0x1040(%rax)
movq 0x8(%r12), %rdx
movq %rax, (%rdx)
movq %rcx, 0x8(%r12)
testq %r15, %r15
je 0x2feca
leaq 0x1571d(%rip), %rdi     # 0x455c3
movq %r15, %rsi
callq 0xc030
andq $0x0, 0x1040(%rax)
leaq 0x1040(%rax), %rcx
movq 0x10(%rsp), %rdx
movq %rax, (%rdx)
movq %rcx, 0x10(%rsp)
testl %ebp, %ebp
je 0x2fef9
movslq %ebp, %rsi
leaq 0x13fb9(%rip), %rdi     # 0x43e91
callq 0xc1a0
andq $0x0, 0x1040(%rax)
leaq 0x1040(%rax), %rcx
movq 0x10(%rsp), %rdx
movq %rax, (%rdx)
movq %rcx, 0x10(%rsp)
cmpq $0x0, 0x10(%r14)
je 0x2ff2f
leaq 0x156c2(%rip), %rdi     # 0x455c9
leaq 0x1283a(%rip), %rsi     # 0x42748
callq 0xc030
andq $0x0, 0x1040(%rax)
leaq 0x1040(%rax), %rcx
movq 0x10(%rsp), %rdx
movq %rax, (%rdx)
movq %rcx, 0x10(%rsp)
movsd 0x18(%rsp), %xmm0
ucomisd 0x13793(%rip), %xmm0    # 0x436d0
jne 0x2ff41
jnp 0x2ff75
leaq 0x15a35(%rip), %rdi     # 0x4597d
movsd 0x18(%rsp), %xmm0
callq 0xccf0
movsd 0x18(%rsp), %xmm0
andq $0x0, 0x1040(%rax)
leaq 0x1040(%rax), %rcx
movq 0x10(%rsp), %rdx
movq %rax, (%rdx)
movq %rcx, 0x10(%rsp)
cmpb $0x0, 0x18(%r14)
je 0x2ffb1
leaq 0x1095e(%rip), %rdi     # 0x408e1
leaq 0x127be(%rip), %rsi     # 0x42748
callq 0xc030
movsd 0x18(%rsp), %xmm0
andq $0x0, 0x1040(%rax)
leaq 0x1040(%rax), %rcx
movq 0x10(%rsp), %rdx
movq %rax, (%rdx)
movq %rcx, 0x10(%rsp)
ucomisd 0x13717(%rip), %xmm0    # 0x436d0
jne 0x2ffbd
jnp 0x2ffec
leaq 0x15612(%rip), %rdi     # 0x455d6
leaq 0x1277d(%rip), %rsi     # 0x42748
callq 0xc030
andq $0x0, 0x1040(%rax)
leaq 0x1040(%rax), %rcx
movq 0x10(%rsp), %rdx
movq %rax, (%rdx)
movq %rcx, 0x10(%rsp)
movzbl 0x19(%r14), %esi
testq %rsi, %rsi
je 0x3001e
leaq 0x155e6(%rip), %rdi     # 0x455e3
callq 0xc1a0
andq $0x0, 0x1040(%rax)
leaq 0x1040(%rax), %rcx
movq 0x10(%rsp), %rdx
movq %rax, (%rdx)
movq %rcx, 0x10(%rsp)
cmpb $0x0, 0x1a(%r14)
je 0x30054
leaq 0x155c4(%rip), %rdi     # 0x455f0
leaq 0x12715(%rip), %rsi     # 0x42748
callq 0xc030
andq $0x0, 0x1040(%rax)
leaq 0x1040(%rax), %rcx
movq 0x10(%rsp), %rdx
movq %rax, (%rdx)
movq %rcx, 0x10(%rsp)
cmpw $0x7da, 0x340(%rbx)     # imm = 0x7DA
jne 0x3008e
leaq 0x15594(%rip), %rdi     # 0x455fa
leaq 0x1559d(%rip), %rsi     # 0x4560a
callq 0xc030
andq $0x0, 0x1040(%rax)
leaq 0x1040(%rax), %rcx
movq 0x10(%rsp), %rdx
movq %rax, (%rdx)
movq %rcx, 0x10(%rsp)
cmpb $0x0, 0x1c(%r14)
movq (%rbx), %rdi
leaq 0xf684(%rip), %rsi      # 0x3f721
leaq 0x8(%rsp), %rdx
je 0x300ab
callq 0xc380
jmp 0x300cd
callq 0xcc70
jmp 0x300cd
movq 0x1040(%rdi), %rax
movq %rax, 0x8(%rsp)
testq %rax, %rax
jne 0x300c8
movq %r12, 0x10(%rsp)
callq 0xc0d0
movq 0x8(%rsp), %rdi
testq %rdi, %rdi
jne 0x300b2
addq $0x20, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq