// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/worksheet.c
// Function: worksheet_write_cf_rule_top
STATIC void
_worksheet_write_cf_rule_top(lxw_worksheet *self,
                             lxw_cond_format_obj *cond_format)
{
    struct xml_attribute_list attributes;
    struct xml_attribute *attribute;

    LXW_INIT_ATTRIBUTES();

    LXW_PUSH_ATTRIBUTES_STR("type", cond_format->type_string);

    if (cond_format->dxf_index != LXW_PROPERTY_UNSET)
        LXW_PUSH_ATTRIBUTES_INT("dxfId", cond_format->dxf_index);

    LXW_PUSH_ATTRIBUTES_INT("priority", cond_format->dxf_priority);

    if (cond_format->stop_if_true)
        LXW_PUSH_ATTRIBUTES_INT("stopIfTrue", 1);

    if (cond_format->criteria ==
        LXW_CONDITIONAL_CRITERIA_TOP_OR_BOTTOM_PERCENT)
        LXW_PUSH_ATTRIBUTES_INT("percent", 1);

    if (cond_format->type == LXW_CONDITIONAL_TYPE_BOTTOM)
        LXW_PUSH_ATTRIBUTES_INT("bottom", 1);

    /* Rank must be an int in the range 1-1000 . */
    if (cond_format->min_value < 1.0 || cond_format->min_value > 1000.0)
        LXW_PUSH_ATTRIBUTES_DBL("rank", 10);
    else
        LXW_PUSH_ATTRIBUTES_DBL("rank", (uint16_t) cond_format->min_value);

    lxw_xml_empty_tag(self->file, "cfRule", &attributes);

    LXW_FREE_ATTRIBUTES();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq $0x0, -0x20(%rbp)
leaq -0x20(%rbp), %rax
movq %rax, -0x18(%rbp)
jmp 0x60032
movq -0x10(%rbp), %rax
movq 0x78(%rax), %rsi
leaq 0x836f(%rip), %rdi      # 0x683b0
callq 0xc030
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x28(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movq -0x28(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x18(%rbp)
jmp 0x60074
movq -0x10(%rbp), %rax
cmpl $-0x1, 0x88(%rax)
je 0x600ca
jmp 0x60083
movq -0x10(%rbp), %rax
movslq 0x88(%rax), %rsi
leaq 0xe6a1(%rip), %rdi      # 0x6e736
callq 0xc1b0
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x28(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movq -0x28(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x18(%rbp)
jmp 0x600c8
jmp 0x600ca
jmp 0x600cc
movq -0x10(%rbp), %rax
movl 0x8c(%rax), %eax
movl %eax, %esi
leaq 0xe65d(%rip), %rdi      # 0x6e73c
callq 0xc1b0
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x28(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movq -0x28(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x18(%rbp)
jmp 0x60112
movq -0x10(%rbp), %rax
cmpb $0x0, 0x73(%rax)
je 0x6015f
jmp 0x6011e
leaq 0xe620(%rip), %rdi      # 0x6e745
movl $0x1, %esi
callq 0xc1b0
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x28(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movq -0x28(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x18(%rbp)
jmp 0x6015d
jmp 0x6015f
movq -0x10(%rbp), %rax
movzbl 0x1(%rax), %eax
cmpl $0x21, %eax
jne 0x601af
jmp 0x6016e
leaq 0xe962(%rip), %rdi      # 0x6ead7
movl $0x1, %esi
callq 0xc1b0
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x28(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movq -0x28(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x18(%rbp)
jmp 0x601ad
jmp 0x601af
movq -0x10(%rbp), %rax
movzbl (%rax), %eax
cmpl $0x8, %eax
jne 0x601fe
jmp 0x601bd
leaq 0x93ab(%rip), %rdi      # 0x6956f
movl $0x1, %esi
callq 0xc1b0
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x28(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movq -0x28(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x18(%rbp)
jmp 0x601fc
jmp 0x601fe
movq -0x10(%rbp), %rax
movsd 0x788e(%rip), %xmm0     # 0x67a98
ucomisd 0x8(%rax), %xmm0
ja 0x60228
movq -0x10(%rbp), %rax
movsd 0x8(%rax), %xmm0
movsd 0xc0c6(%rip), %xmm1     # 0x6c2e8
ucomisd %xmm1, %xmm0
jbe 0x6026e
jmp 0x6022a
leaq 0xe8ae(%rip), %rdi      # 0x6eadf
movsd 0xc127(%rip), %xmm0     # 0x6c360
callq 0xcd20
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x28(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movq -0x28(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x18(%rbp)
jmp 0x6026c
jmp 0x602bc
jmp 0x60270
movq -0x10(%rbp), %rax
cvttsd2si 0x8(%rax), %eax
movzwl %ax, %eax
cvtsi2sd %eax, %xmm0
leaq 0xe858(%rip), %rdi      # 0x6eadf
callq 0xcd20
movq %rax, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x28(%rbp), %rcx
movq -0x18(%rbp), %rax
movq %rcx, (%rax)
movq -0x28(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x18(%rbp)
jmp 0x602ba
jmp 0x602bc
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0xec67(%rip), %rsi      # 0x6ef31
leaq -0x20(%rbp), %rdx
callq 0xcca0
jmp 0x602d5
cmpq $0x0, -0x20(%rbp)
sete %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x602e5
jmp 0x60317
movq -0x20(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x20(%rbp), %rax
movq 0x1040(%rax), %rax
movq %rax, -0x20(%rbp)
cmpq $0x0, %rax
jne 0x6030a
leaq -0x20(%rbp), %rax
movq %rax, -0x18(%rbp)
jmp 0x6030c
movq -0x28(%rbp), %rdi
callq 0xc0d0
jmp 0x602d5
jmp 0x60319
addq $0x30, %rsp
popq %rbp
retq
nop