// File: /workspace/github_c_makefile_star2_O1/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 0x32ac0
callq 0xc9c0
movl %eax, %ebp
jmp 0x32ac2
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 0xe786(%rip), %rdi      # 0x41281
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 0x32b4e
leaq 0x159c7(%rip), %rdi     # 0x484ee
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 0x32b80
movslq %ebp, %rsi
leaq 0x1425d(%rip), %rdi     # 0x46db9
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 0x32bb9
leaq 0x15966(%rip), %rdi     # 0x484f4
leaq 0x12ba3(%rip), %rsi     # 0x45738
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 0x13a29(%rip), %xmm0    # 0x465f0
jne 0x32bcb
jnp 0x32c02
leaq 0x15cd6(%rip), %rdi     # 0x488a8
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 0x32c41
leaq 0x10cc1(%rip), %rdi     # 0x438d1
leaq 0x12b21(%rip), %rsi     # 0x45738
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 0x139a7(%rip), %xmm0    # 0x465f0
jne 0x32c4d
jnp 0x32c7f
leaq 0x158ad(%rip), %rdi     # 0x48501
leaq 0x12add(%rip), %rsi     # 0x45738
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 0x32cb4
leaq 0x1587e(%rip), %rdi     # 0x4850e
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 0x32ced
leaq 0x15859(%rip), %rdi     # 0x4851b
leaq 0x12a6f(%rip), %rsi     # 0x45738
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 0x32d2a
leaq 0x15826(%rip), %rdi     # 0x48525
leaq 0x1582f(%rip), %rsi     # 0x48535
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 0xf9d8(%rip), %rsi      # 0x42711
movq %rsp, %rdx
je 0x32d45
callq 0xc350
jmp 0x32d66
callq 0xcc00
jmp 0x32d66
movq 0x1040(%rdi), %rax
movq %rax, (%rsp)
testq %rax, %rax
jne 0x32d61
movq %r12, 0x8(%rsp)
callq 0xc0c0
movq (%rsp), %rdi
testq %rdi, %rdi
jne 0x32d4c
addq $0x18, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq