// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/worksheet.c
// Function: worksheet_write_x14_cfvo
STATIC void
_worksheet_write_x14_cfvo(lxw_worksheet *self, uint8_t rule_type,
                          double number, char *string)
{
    struct xml_attribute_list attributes;
    struct xml_attribute *attribute;
    char data[LXW_ATTR_32];
    uint8_t has_value = LXW_FALSE;

    LXW_INIT_ATTRIBUTES();

    if (!string)
        lxw_sprintf_dbl(data, number);

    if (rule_type == LXW_CONDITIONAL_RULE_TYPE_AUTO_MIN) {
        LXW_PUSH_ATTRIBUTES_STR("type", "autoMin");
        has_value = LXW_FALSE;
    }
    else if (rule_type == LXW_CONDITIONAL_RULE_TYPE_MINIMUM) {
        LXW_PUSH_ATTRIBUTES_STR("type", "min");
        has_value = LXW_FALSE;
    }
    else if (rule_type == LXW_CONDITIONAL_RULE_TYPE_NUMBER) {
        LXW_PUSH_ATTRIBUTES_STR("type", "num");
        has_value = LXW_TRUE;
    }
    else if (rule_type == LXW_CONDITIONAL_RULE_TYPE_PERCENT) {
        LXW_PUSH_ATTRIBUTES_STR("type", "percent");
        has_value = LXW_TRUE;
    }
    else if (rule_type == LXW_CONDITIONAL_RULE_TYPE_PERCENTILE) {
        LXW_PUSH_ATTRIBUTES_STR("type", "percentile");
        has_value = LXW_TRUE;
    }
    else if (rule_type == LXW_CONDITIONAL_RULE_TYPE_FORMULA) {
        LXW_PUSH_ATTRIBUTES_STR("type", "formula");
        has_value = LXW_TRUE;
    }
    else if (rule_type == LXW_CONDITIONAL_RULE_TYPE_MAXIMUM) {
        LXW_PUSH_ATTRIBUTES_STR("type", "max");
        has_value = LXW_FALSE;
    }
    else if (rule_type == LXW_CONDITIONAL_RULE_TYPE_AUTO_MAX) {
        LXW_PUSH_ATTRIBUTES_STR("type", "autoMax");
        has_value = LXW_FALSE;
    }

    if (has_value) {
        lxw_xml_start_tag(self->file, "x14:cfvo", &attributes);

        if (string)
            lxw_xml_data_element(self->file, "xm:f", string, NULL);
        else
            lxw_xml_data_element(self->file, "xm:f", data, NULL);

        lxw_xml_end_tag(self->file, "x14:cfvo");
    }
    else {
        lxw_xml_empty_tag(self->file, "x14:cfvo", &attributes);
    }
    LXW_FREE_ATTRIBUTES();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movb %sil, %al
movq %rdi, -0x8(%rbp)
movb %al, -0x9(%rbp)
movsd %xmm0, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movb $0x0, -0x61(%rbp)
movq $0x0, -0x30(%rbp)
leaq -0x30(%rbp), %rax
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x20(%rbp)
jne 0x634d2
leaq -0x60(%rbp), %rdi
movsd -0x18(%rbp), %xmm0
movl $0x20, %esi
leaq 0x3abe(%rip), %rdx      # 0x66f89
movb $0x1, %al
callq 0xc5d0
movzbl -0x9(%rbp), %eax
cmpl $0x7, %eax
jne 0x63527
jmp 0x634dd
leaq 0x4ecc(%rip), %rdi      # 0x683b0
leaq 0xbb1a(%rip), %rsi      # 0x6f005
callq 0xc030
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x38(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, (%rax)
movq -0x38(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x28(%rbp)
jmp 0x6351e
movb $0x0, -0x61(%rbp)
jmp 0x63780
movzbl -0x9(%rbp), %eax
cmpl $0x1, %eax
jne 0x6357c
jmp 0x63532
leaq 0x4e77(%rip), %rdi      # 0x683b0
leaq 0x3dee(%rip), %rsi      # 0x6732e
callq 0xc030
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x38(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, (%rax)
movq -0x38(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x28(%rbp)
jmp 0x63573
movb $0x0, -0x61(%rbp)
jmp 0x6377e
movzbl -0x9(%rbp), %eax
cmpl $0x2, %eax
jne 0x635d1
jmp 0x63587
leaq 0x4e22(%rip), %rdi      # 0x683b0
leaq 0xb58c(%rip), %rsi      # 0x6eb21
callq 0xc030
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x38(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, (%rax)
movq -0x38(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x28(%rbp)
jmp 0x635c8
movb $0x1, -0x61(%rbp)
jmp 0x6377c
movzbl -0x9(%rbp), %eax
cmpl $0x3, %eax
jne 0x63626
jmp 0x635dc
leaq 0x4dcd(%rip), %rdi      # 0x683b0
leaq 0xb4ed(%rip), %rsi      # 0x6ead7
callq 0xc030
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x38(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, (%rax)
movq -0x38(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x28(%rbp)
jmp 0x6361d
movb $0x1, -0x61(%rbp)
jmp 0x6377a
movzbl -0x9(%rbp), %eax
cmpl $0x4, %eax
jne 0x6367b
jmp 0x63631
leaq 0x4d78(%rip), %rdi      # 0x683b0
leaq 0xb4e6(%rip), %rsi      # 0x6eb25
callq 0xc030
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x38(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, (%rax)
movq -0x38(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x28(%rbp)
jmp 0x63672
movb $0x1, -0x61(%rbp)
jmp 0x63778
movzbl -0x9(%rbp), %eax
cmpl $0x5, %eax
jne 0x636d0
jmp 0x63686
leaq 0x4d23(%rip), %rdi      # 0x683b0
leaq 0xb0bc(%rip), %rsi      # 0x6e750
callq 0xc030
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x38(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, (%rax)
movq -0x38(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x28(%rbp)
jmp 0x636c7
movb $0x1, -0x61(%rbp)
jmp 0x63776
movzbl -0x9(%rbp), %eax
cmpl $0x6, %eax
jne 0x63722
jmp 0x636db
leaq 0x4cce(%rip), %rdi      # 0x683b0
leaq 0x3c3f(%rip), %rsi      # 0x67328
callq 0xc030
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x38(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, (%rax)
movq -0x38(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x28(%rbp)
jmp 0x6371c
movb $0x0, -0x61(%rbp)
jmp 0x63774
movzbl -0x9(%rbp), %eax
cmpl $0x8, %eax
jne 0x63772
jmp 0x6372d
leaq 0x4c7c(%rip), %rdi      # 0x683b0
leaq 0xb8d2(%rip), %rsi      # 0x6f00d
callq 0xc030
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x38(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, (%rax)
movq -0x38(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x28(%rbp)
jmp 0x6376e
movb $0x0, -0x61(%rbp)
jmp 0x63774
jmp 0x63776
jmp 0x63778
jmp 0x6377a
jmp 0x6377c
jmp 0x6377e
jmp 0x63780
cmpb $0x0, -0x61(%rbp)
je 0x637f1
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0xb881(%rip), %rsi      # 0x6f015
leaq -0x30(%rbp), %rdx
callq 0xc390
cmpq $0x0, -0x20(%rbp)
je 0x637c1
movq -0x8(%rbp), %rax
movq (%rax), %rdi
movq -0x20(%rbp), %rdx
leaq 0xb868(%rip), %rsi      # 0x6f01e
xorl %eax, %eax
movl %eax, %ecx
callq 0xcbd0
jmp 0x637dc
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq -0x60(%rbp), %rdx
leaq 0xb84b(%rip), %rsi      # 0x6f01e
xorl %eax, %eax
movl %eax, %ecx
callq 0xcbd0
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0xb82b(%rip), %rsi      # 0x6f015
callq 0xc060
jmp 0x63808
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0xb816(%rip), %rsi      # 0x6f015
leaq -0x30(%rbp), %rdx
callq 0xcca0
jmp 0x6380a
jmp 0x6380c
cmpq $0x0, -0x30(%rbp)
sete %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x6381c
jmp 0x6384e
movq -0x30(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x30(%rbp), %rax
movq 0x1040(%rax), %rax
movq %rax, -0x30(%rbp)
cmpq $0x0, %rax
jne 0x63841
leaq -0x30(%rbp), %rax
movq %rax, -0x28(%rbp)
jmp 0x63843
movq -0x38(%rbp), %rdi
callq 0xc0d0
jmp 0x6380c
jmp 0x63850
addq $0x70, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)