// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/worksheet.c
// Function: worksheet_write_icon_set
STATIC void
_worksheet_write_icon_set(lxw_worksheet *self,
                          lxw_cond_format_obj *cond_format)
{
    struct xml_attribute_list attributes;
    struct xml_attribute *attribute;
    char *icon_set[] = {
        "3Arrows",
        "3ArrowsGray",
        "3Flags",
        "3TrafficLights",
        "3TrafficLights2",
        "3Signs",
        "3Symbols",
        "3Symbols2",
        "4Arrows",
        "4ArrowsGray",
        "4RedToBlack",
        "4Rating",
        "4TrafficLights",
        "5Arrows",
        "5ArrowsGray",
        "5Rating",
        "5Quarters",
    };
    uint8_t percent = LXW_CONDITIONAL_RULE_TYPE_PERCENT;
    uint8_t style = cond_format->icon_style;

    LXW_INIT_ATTRIBUTES();

    if (style != LXW_CONDITIONAL_ICONS_3_TRAFFIC_LIGHTS_UNRIMMED)
        LXW_PUSH_ATTRIBUTES_STR("iconSet", icon_set[style]);

    if (cond_format->reverse_icons == LXW_TRUE)
        LXW_PUSH_ATTRIBUTES_STR("reverse", "1");

    if (cond_format->icons_only == LXW_TRUE)
        LXW_PUSH_ATTRIBUTES_STR("showValue", "0");

    lxw_xml_start_tag(self->file, "iconSet", &attributes);

    if (style < LXW_CONDITIONAL_ICONS_4_ARROWS_COLORED) {
        _worksheet_write_cfvo_num(self, percent, 0, LXW_FALSE);
        _worksheet_write_cfvo_num(self, percent, 33, LXW_FALSE);
        _worksheet_write_cfvo_num(self, percent, 67, LXW_FALSE);
    }

    if (style >= LXW_CONDITIONAL_ICONS_4_ARROWS_COLORED
        && style < LXW_CONDITIONAL_ICONS_5_ARROWS_COLORED) {
        _worksheet_write_cfvo_num(self, percent, 0, LXW_FALSE);
        _worksheet_write_cfvo_num(self, percent, 25, LXW_FALSE);
        _worksheet_write_cfvo_num(self, percent, 50, LXW_FALSE);
        _worksheet_write_cfvo_num(self, percent, 75, LXW_FALSE);
    }

    if (style >= LXW_CONDITIONAL_ICONS_5_ARROWS_COLORED
        && style <= LXW_CONDITIONAL_ICONS_5_QUARTERS) {
        _worksheet_write_cfvo_num(self, percent, 0, LXW_FALSE);
        _worksheet_write_cfvo_num(self, percent, 20, LXW_FALSE);
        _worksheet_write_cfvo_num(self, percent, 40, LXW_FALSE);
        _worksheet_write_cfvo_num(self, percent, 60, LXW_FALSE);
        _worksheet_write_cfvo_num(self, percent, 80, LXW_FALSE);
    }

    LXW_FREE_ATTRIBUTES();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xc0, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
leaq -0xb0(%rbp), %rdi
leaq 0x1b56f(%rip), %rsi     # 0x7cd60
movl $0x88, %edx
callq 0xc980
movb $0x3, -0xb1(%rbp)
movq -0x10(%rbp), %rax
movb 0x70(%rax), %al
movb %al, -0xb2(%rbp)
movq $0x0, -0x20(%rbp)
leaq -0x20(%rbp), %rax
movq %rax, -0x18(%rbp)
movzbl -0xb2(%rbp), %eax
cmpl $0x3, %eax
je 0x61878
jmp 0x6182d
movzbl -0xb2(%rbp), %eax
movq -0xb0(%rbp,%rax,8), %rsi
leaq 0xc62f(%rip), %rdi      # 0x6de72
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 0x61876
jmp 0x61878
movq -0x10(%rbp), %rax
movzbl 0x71(%rax), %eax
cmpl $0x1, %eax
jne 0x618ca
jmp 0x61887
leaq 0xd3b5(%rip), %rdi      # 0x6ec43
leaq 0x9bdb(%rip), %rsi      # 0x6b470
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 0x618c8
jmp 0x618ca
movq -0x10(%rbp), %rax
movzbl 0x72(%rax), %eax
cmpl $0x1, %eax
jne 0x6191c
jmp 0x618d9
leaq 0xd250(%rip), %rdi      # 0x6eb30
leaq 0x9be7(%rip), %rsi      # 0x6b4ce
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 0x6191a
jmp 0x6191c
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0xc548(%rip), %rsi      # 0x6de72
leaq -0x20(%rbp), %rdx
callq 0xc390
movzbl -0xb2(%rbp), %eax
cmpl $0x8, %eax
jge 0x61988
movq -0x8(%rbp), %rdi
xorps %xmm0, %xmm0
xorl %edx, %edx
movzbl -0xb1(%rbp), %esi
callq 0x61110
movq -0x8(%rbp), %rdi
movsd 0xaa10(%rip), %xmm0     # 0x6c370
xorl %edx, %edx
movzbl -0xb1(%rbp), %esi
callq 0x61110
movq -0x8(%rbp), %rdi
movsd 0xa9ee(%rip), %xmm0     # 0x6c368
xorl %edx, %edx
movzbl -0xb1(%rbp), %esi
callq 0x61110
movzbl -0xb2(%rbp), %eax
cmpl $0x8, %eax
jl 0x61a03
movzbl -0xb2(%rbp), %eax
cmpl $0xd, %eax
jge 0x61a03
movq -0x8(%rbp), %rdi
xorps %xmm0, %xmm0
xorl %edx, %edx
movzbl -0xb1(%rbp), %esi
callq 0x61110
movq -0x8(%rbp), %rdi
movsd 0xa9bf(%rip), %xmm0     # 0x6c380
xorl %edx, %edx
movzbl -0xb1(%rbp), %esi
callq 0x61110
movq -0x8(%rbp), %rdi
movsd 0xa905(%rip), %xmm0     # 0x6c2e0
xorl %edx, %edx
movzbl -0xb1(%rbp), %esi
callq 0x61110
movq -0x8(%rbp), %rdi
movsd 0xa983(%rip), %xmm0     # 0x6c378
xorl %edx, %edx
movzbl -0xb1(%rbp), %esi
callq 0x61110
movzbl -0xb2(%rbp), %eax
cmpl $0xd, %eax
jl 0x61a9c
movzbl -0xb2(%rbp), %eax
cmpl $0x10, %eax
jg 0x61a9c
movq -0x8(%rbp), %rdi
xorps %xmm0, %xmm0
xorl %edx, %edx
movzbl -0xb1(%rbp), %esi
callq 0x61110
movq -0x8(%rbp), %rdi
movsd 0xa8d8(%rip), %xmm0     # 0x6c318
xorl %edx, %edx
movzbl -0xb1(%rbp), %esi
callq 0x61110
movq -0x8(%rbp), %rdi
movsd 0xa936(%rip), %xmm0     # 0x6c390
xorl %edx, %edx
movzbl -0xb1(%rbp), %esi
callq 0x61110
movq -0x8(%rbp), %rdi
movsd 0x8fcc(%rip), %xmm0     # 0x6aa40
xorl %edx, %edx
movzbl -0xb1(%rbp), %esi
callq 0x61110
movq -0x8(%rbp), %rdi
movsd 0xa8fa(%rip), %xmm0     # 0x6c388
xorl %edx, %edx
movzbl -0xb1(%rbp), %esi
callq 0x61110
jmp 0x61a9e
jmp 0x61aa0
cmpq $0x0, -0x20(%rbp)
sete %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x61ab0
jmp 0x61ae2
movq -0x20(%rbp), %rax
movq %rax, -0x28(%rbp)
movq -0x20(%rbp), %rax
movq 0x1040(%rax), %rax
movq %rax, -0x20(%rbp)
cmpq $0x0, %rax
jne 0x61ad5
leaq -0x20(%rbp), %rax
movq %rax, -0x18(%rbp)
jmp 0x61ad7
movq -0x28(%rbp), %rdi
callq 0xc0d0
jmp 0x61aa0
jmp 0x61ae4
addq $0xc0, %rsp
popq %rbp
retq
nopl (%rax)