// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/worksheet.c
// Function: worksheet_write_custom_filter
STATIC void
_worksheet_write_custom_filter(lxw_worksheet *self, const char *str,
                               double num, uint8_t criteria)
{
    struct xml_attribute_list attributes;
    struct xml_attribute *attribute;

    LXW_INIT_ATTRIBUTES();

    if (criteria == LXW_FILTER_CRITERIA_NOT_EQUAL_TO)
        LXW_PUSH_ATTRIBUTES_STR("operator", "notEqual");
    if (criteria == LXW_FILTER_CRITERIA_GREATER_THAN)
        LXW_PUSH_ATTRIBUTES_STR("operator", "greaterThan");
    else if (criteria == LXW_FILTER_CRITERIA_GREATER_THAN_OR_EQUAL_TO)
        LXW_PUSH_ATTRIBUTES_STR("operator", "greaterThanOrEqual");
    else if (criteria == LXW_FILTER_CRITERIA_LESS_THAN)
        LXW_PUSH_ATTRIBUTES_STR("operator", "lessThan");
    else if (criteria == LXW_FILTER_CRITERIA_LESS_THAN_OR_EQUAL_TO)
        LXW_PUSH_ATTRIBUTES_STR("operator", "lessThanOrEqual");

    if (str)
        LXW_PUSH_ATTRIBUTES_STR("val", str);
    else
        LXW_PUSH_ATTRIBUTES_DBL("val", num);

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

    LXW_FREE_ATTRIBUTES();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movb %dl, %al
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movsd %xmm0, -0x18(%rbp)
movb %al, -0x19(%rbp)
movq $0x0, -0x30(%rbp)
leaq -0x30(%rbp), %rax
movq %rax, -0x28(%rbp)
movzbl -0x19(%rbp), %eax
cmpl $0x2, %eax
jne 0x5e828
jmp 0x5e7e5
leaq 0xfecd(%rip), %rdi      # 0x6e6b9
leaq 0xfecf(%rip), %rsi      # 0x6e6c2
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 0x5e826
jmp 0x5e828
movzbl -0x19(%rbp), %eax
cmpl $0x3, %eax
jne 0x5e879
jmp 0x5e833
leaq 0xfe7f(%rip), %rdi      # 0x6e6b9
leaq 0xfe8a(%rip), %rsi      # 0x6e6cb
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 0x5e874
jmp 0x5e96c
movzbl -0x19(%rbp), %eax
cmpl $0x5, %eax
jne 0x5e8ca
jmp 0x5e884
leaq 0xfe2e(%rip), %rdi      # 0x6e6b9
leaq 0xfe45(%rip), %rsi      # 0x6e6d7
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 0x5e8c5
jmp 0x5e96a
movzbl -0x19(%rbp), %eax
cmpl $0x4, %eax
jne 0x5e918
jmp 0x5e8d5
leaq 0xfddd(%rip), %rdi      # 0x6e6b9
leaq 0xfe07(%rip), %rsi      # 0x6e6ea
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 0x5e916
jmp 0x5e968
movzbl -0x19(%rbp), %eax
cmpl $0x6, %eax
jne 0x5e966
jmp 0x5e923
leaq 0xfd8f(%rip), %rdi      # 0x6e6b9
leaq 0xfdc2(%rip), %rsi      # 0x6e6f3
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 0x5e964
jmp 0x5e966
jmp 0x5e968
jmp 0x5e96a
jmp 0x5e96c
cmpq $0x0, -0x10(%rbp)
je 0x5e9b5
jmp 0x5e975
movq -0x10(%rbp), %rsi
leaq 0x891c(%rip), %rdi      # 0x6729c
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 0x5e9b3
jmp 0x5e9f8
jmp 0x5e9b7
movsd -0x18(%rbp), %xmm0
leaq 0x88d9(%rip), %rdi      # 0x6729c
callq 0xcd20
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 0x5e9f6
jmp 0x5e9f8
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0xfcfd(%rip), %rsi      # 0x6e703
leaq -0x30(%rbp), %rdx
callq 0xcca0
jmp 0x5ea11
cmpq $0x0, -0x30(%rbp)
sete %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x5ea21
jmp 0x5ea53
movq -0x30(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x30(%rbp), %rax
movq 0x1040(%rax), %rax
movq %rax, -0x30(%rbp)
cmpq $0x0, %rax
jne 0x5ea46
leaq -0x30(%rbp), %rax
movq %rax, -0x28(%rbp)
jmp 0x5ea48
movq -0x38(%rbp), %rdi
callq 0xc0d0
jmp 0x5ea11
jmp 0x5ea55
addq $0x40, %rsp
popq %rbp
retq
nopl (%rax,%rax)