// File: /workspace/github_c_makefile_star2_O3/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 %r13
pushq %r12
pushq %rbx
subq $0x18, %rsp
movq %rdx, %r15
movq %rsi, %r14
movq %rdi, %rbx
movq 0x10(%rsi), %rdi
testq %rdi, %rdi
je 0x32da3
callq 0xc9c0
movl %eax, %ebp
jmp 0x32da5
xorl %ebp, %ebp
leaq 0x8(%r14), %rax
leaq 0x198(%rbx), %rcx
cmpb $0x0, 0x1d(%r14)
cmoveq %rcx, %rax
movsd (%rax), %xmm0
movsd %xmm0, 0x10(%rsp)
xorl %r13d, %r13d
movq %rsp, %r12
movq %r13, (%r12)
movq %r12, 0x8(%r12)
movl (%r14), %esi
incl %esi
leaq 0xe49b(%rip), %rdi      # 0x41279
callq 0xc180
leaq 0x1040(%rax), %rcx
movq %r13, 0x1040(%rax)
movq 0x8(%r12), %rdx
movq %rax, (%rdx)
movq %rcx, 0x8(%r12)
testq %r15, %r15
je 0x32e31
leaq 0x157cd(%rip), %rdi     # 0x485d7
movq %r15, %rsi
callq 0xc030
leaq 0x1040(%rax), %rcx
movq $0x0, 0x1040(%rax)
movq 0x8(%rsp), %rdx
movq %rax, (%rdx)
movq %rcx, 0x8(%rsp)
testl %ebp, %ebp
je 0x32e63
movslq %ebp, %rsi
leaq 0x14066(%rip), %rdi     # 0x46ea5
callq 0xc180
leaq 0x1040(%rax), %rcx
movq $0x0, 0x1040(%rax)
movq 0x8(%rsp), %rdx
movq %rax, (%rdx)
movq %rcx, 0x8(%rsp)
cmpq $0x0, 0x10(%r14)
je 0x32e9c
leaq 0x1576c(%rip), %rdi     # 0x485dd
leaq 0x128d0(%rip), %rsi     # 0x45748
callq 0xc030
leaq 0x1040(%rax), %rcx
movq $0x0, 0x1040(%rax)
movq 0x8(%rsp), %rdx
movq %rax, (%rdx)
movq %rcx, 0x8(%rsp)
movsd 0x10(%rsp), %xmm0
ucomisd 0x13846(%rip), %xmm0    # 0x466f0
jne 0x32eae
jnp 0x32ee5
leaq 0x15adc(%rip), %rdi     # 0x48991
movsd 0x10(%rsp), %xmm0
callq 0xcc80
movsd 0x10(%rsp), %xmm0
leaq 0x1040(%rax), %rcx
movq $0x0, 0x1040(%rax)
movq 0x8(%rsp), %rdx
movq %rax, (%rdx)
movq %rcx, 0x8(%rsp)
cmpb $0x0, 0x18(%r14)
je 0x32f24
leaq 0x109ee(%rip), %rdi     # 0x438e1
leaq 0x1284e(%rip), %rsi     # 0x45748
callq 0xc030
movsd 0x10(%rsp), %xmm0
leaq 0x1040(%rax), %rcx
movq $0x0, 0x1040(%rax)
movq 0x8(%rsp), %rdx
movq %rax, (%rdx)
movq %rcx, 0x8(%rsp)
ucomisd 0x137c4(%rip), %xmm0    # 0x466f0
jne 0x32f30
jnp 0x32f62
leaq 0x156b3(%rip), %rdi     # 0x485ea
leaq 0x1280a(%rip), %rsi     # 0x45748
callq 0xc030
leaq 0x1040(%rax), %rcx
movq $0x0, 0x1040(%rax)
movq 0x8(%rsp), %rdx
movq %rax, (%rdx)
movq %rcx, 0x8(%rsp)
movzbl 0x19(%r14), %esi
testq %rsi, %rsi
je 0x32f97
leaq 0x15684(%rip), %rdi     # 0x485f7
callq 0xc180
leaq 0x1040(%rax), %rcx
movq $0x0, 0x1040(%rax)
movq 0x8(%rsp), %rdx
movq %rax, (%rdx)
movq %rcx, 0x8(%rsp)
cmpb $0x0, 0x1a(%r14)
je 0x32fd0
leaq 0x1565f(%rip), %rdi     # 0x48604
leaq 0x1279c(%rip), %rsi     # 0x45748
callq 0xc030
leaq 0x1040(%rax), %rcx
movq $0x0, 0x1040(%rax)
movq 0x8(%rsp), %rdx
movq %rax, (%rdx)
movq %rcx, 0x8(%rsp)
cmpw $0x7da, 0x340(%rbx)     # imm = 0x7DA
jne 0x3300d
leaq 0x1562c(%rip), %rdi     # 0x4860e
leaq 0x15635(%rip), %rsi     # 0x4861e
callq 0xc030
leaq 0x1040(%rax), %rcx
movq $0x0, 0x1040(%rax)
movq 0x8(%rsp), %rdx
movq %rax, (%rdx)
movq %rcx, 0x8(%rsp)
cmpb $0x0, 0x1c(%r14)
movq (%rbx), %rdi
leaq 0xf705(%rip), %rsi      # 0x42721
movq %rsp, %rdx
je 0x33028
callq 0xc350
jmp 0x33049
callq 0xcc00
jmp 0x33049
movq 0x1040(%rdi), %rax
movq %rax, (%rsp)
testq %rax, %rax
jne 0x33044
movq %r12, 0x8(%rsp)
callq 0xc0c0
movq (%rsp), %rdi
testq %rdi, %rdi
jne 0x3302f
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq