// File: /workspace/github_c_makefile_star2_O0/Paxa[P]fast_excel/libxlsxwriter/src/vml.c
// Function: vml_write_comment_shape
STATIC void
_vml_write_comment_shape(lxw_vml *self, uint32_t vml_shape_id,
                         uint32_t z_index, lxw_vml_obj *vml_obj)
{
    struct xml_attribute_list attributes;
    struct xml_attribute *attribute;
    char id[LXW_ATTR_32];
    char margin_left[LXW_ATTR_32];
    char margin_top[LXW_ATTR_32];
    char width[LXW_ATTR_32];
    char height[LXW_ATTR_32];
    char visible[LXW_ATTR_32];
    char fillcolor[LXW_ATTR_32];
    char style[LXW_MAX_ATTRIBUTE_LENGTH];
    char type[] = "#_x0000_t202";
    char o_insetmode[] = "auto";

    lxw_sprintf_dbl(margin_left, vml_obj->col_absolute * 0.75);
    lxw_sprintf_dbl(margin_top, vml_obj->row_absolute * 0.75);
    lxw_sprintf_dbl(width, vml_obj->width * 0.75);
    lxw_sprintf_dbl(height, vml_obj->height * 0.75);

    lxw_snprintf(id, LXW_ATTR_32, "_x0000_s%d", vml_shape_id);

    if (vml_obj->visible == LXW_COMMENT_DISPLAY_DEFAULT)
        vml_obj->visible = self->comment_display_default;

    if (vml_obj->visible == LXW_COMMENT_DISPLAY_VISIBLE)
        lxw_snprintf(visible, LXW_ATTR_32, "visible");
    else
        lxw_snprintf(visible, LXW_ATTR_32, "hidden");

    if (vml_obj->color)
        lxw_snprintf(fillcolor, LXW_ATTR_32, "#%06x",
                     vml_obj->color & LXW_COLOR_MASK);
    else
        lxw_snprintf(fillcolor, LXW_ATTR_32, "#%06x", 0xffffe1);

    lxw_snprintf(style,
                 LXW_MAX_ATTRIBUTE_LENGTH,
                 "position:absolute;"
                 "margin-left:%spt;"
                 "margin-top:%spt;"
                 "width:%spt;"
                 "height:%spt;"
                 "z-index:%d;"
                 "visibility:%s",
                 margin_left, margin_top, width, height, z_index, visible);

    LXW_INIT_ATTRIBUTES();
    LXW_PUSH_ATTRIBUTES_STR("id", id);
    LXW_PUSH_ATTRIBUTES_STR("type", type);
    LXW_PUSH_ATTRIBUTES_STR("style", style);
    LXW_PUSH_ATTRIBUTES_STR("fillcolor", fillcolor);
    LXW_PUSH_ATTRIBUTES_STR("o:insetmode", o_insetmode);

    lxw_xml_start_tag(self->file, "v:shape", &attributes);

    /* Write the v:fill element. */
    _vml_write_comment_fill(self);

    /* Write the v:shadow element. */
    _vml_write_shadow(self);

    /* Write the v:path element. */
    _vml_write_comment_path(self, LXW_FALSE, "none");

    /* Write the v:textbox element. */
    _vml_write_comment_textbox(self);

    /* Write the x:ClientData element. */
    _vml_write_comment_client_data(self, vml_obj);

    lxw_xml_end_tag(self->file, "v:shape");

    LXW_FREE_ATTRIBUTES();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x9b0, %rsp            # imm = 0x9B0
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl %edx, -0x10(%rbp)
movq %rcx, -0x18(%rbp)
movabsq $0x323032745f3030, %rax # imm = 0x323032745F3030
movq %rax, -0x93b(%rbp)
movabsq $0x5f30303030785f23, %rax # imm = 0x5F30303030785F23
movq %rax, -0x940(%rbp)
movb $0x0, -0x944(%rbp)
movl $0x6f747561, -0x948(%rbp) # imm = 0x6F747561
movq -0x18(%rbp), %rax
movq 0x18(%rax), %xmm0
movaps 0x32424(%rip), %xmm1    # 0x6b000
movaps %xmm1, -0x990(%rbp)
punpckldq %xmm1, %xmm0    # xmm0 = xmm0[0],xmm1[0],xmm0[1],xmm1[1]
movapd 0x32421(%rip), %xmm1    # 0x6b010
movaps %xmm1, -0x980(%rbp)
subpd %xmm1, %xmm0
movaps %xmm0, %xmm1
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm1, %xmm0
movsd 0x323cb(%rip), %xmm1    # 0x6afd8
movsd %xmm1, -0x968(%rbp)
mulsd %xmm1, %xmm0
leaq 0x2e369(%rip), %rdx     # 0x66f89
movq %rdx, -0x958(%rbp)
leaq -0x70(%rbp), %rdi
movl $0x20, %esi
movq %rsi, -0x960(%rbp)
movb $0x1, %al
movb %al, -0x949(%rbp)
callq 0xc5d0
movaps -0x990(%rbp), %xmm3
movaps -0x980(%rbp), %xmm2
movsd -0x968(%rbp), %xmm1
movq -0x960(%rbp), %rsi
movq -0x958(%rbp), %rdx
movb -0x949(%rbp), %al
movq -0x18(%rbp), %rcx
movq 0x20(%rcx), %xmm0
punpckldq %xmm3, %xmm0    # xmm0 = xmm0[0],xmm3[0],xmm0[1],xmm3[1]
subpd %xmm2, %xmm0
movaps %xmm0, %xmm2
unpckhpd %xmm0, %xmm0            # xmm0 = xmm0[1,1]
addsd %xmm2, %xmm0
mulsd %xmm1, %xmm0
leaq -0x90(%rbp), %rdi
callq 0xc5d0
movsd -0x968(%rbp), %xmm1
movq -0x960(%rbp), %rsi
movq -0x958(%rbp), %rdx
movb -0x949(%rbp), %al
movq -0x18(%rbp), %rcx
movl 0x28(%rcx), %ecx
cvtsi2sd %rcx, %xmm0
mulsd %xmm1, %xmm0
leaq -0xb0(%rbp), %rdi
callq 0xc5d0
leaq -0xd0(%rbp), %rdi
movq -0x18(%rbp), %rax
movl 0x2c(%rax), %eax
cvtsi2sd %rax, %xmm0
movsd 0x322eb(%rip), %xmm1    # 0x6afd8
mulsd %xmm1, %xmm0
movl $0x20, %esi
leaq 0x2e28c(%rip), %rdx     # 0x66f89
movb $0x1, %al
callq 0xc5d0
leaq -0x50(%rbp), %rdi
movl -0xc(%rbp), %ecx
movl $0x20, %esi
leaq 0x323f3(%rip), %rdx     # 0x6b10a
movb $0x0, %al
callq 0xc5d0
movq -0x18(%rbp), %rax
movzbl 0x45(%rax), %eax
cmpl $0x0, %eax
jne 0x38d39
movq -0x8(%rbp), %rax
movb 0x34(%rax), %cl
movq -0x18(%rbp), %rax
movb %cl, 0x45(%rax)
movq -0x18(%rbp), %rax
movzbl 0x45(%rax), %eax
cmpl $0x2, %eax
jne 0x38d62
leaq -0xf0(%rbp), %rdi
movl $0x20, %esi
leaq 0x32598(%rip), %rdx     # 0x6b2f1
movb $0x0, %al
callq 0xc5d0
jmp 0x38d7c
leaq -0xf0(%rbp), %rdi
movl $0x20, %esi
leaq 0x3098c(%rip), %rdx     # 0x69701
movb $0x0, %al
callq 0xc5d0
movq -0x18(%rbp), %rax
cmpl $0x0, 0x40(%rax)
je 0x38daf
leaq -0x110(%rbp), %rdi
movq -0x18(%rbp), %rax
movl 0x40(%rax), %ecx
andl $0xffffff, %ecx         # imm = 0xFFFFFF
movl $0x20, %esi
leaq 0x32553(%rip), %rdx     # 0x6b2f9
movb $0x0, %al
callq 0xc5d0
jmp 0x38dce
leaq -0x110(%rbp), %rdi
movl $0x20, %esi
leaq 0x32537(%rip), %rdx     # 0x6b2f9
movl $0xffffe1, %ecx         # imm = 0xFFFFE1
movb $0x0, %al
callq 0xc5d0
leaq -0x930(%rbp), %rdi
leaq -0x70(%rbp), %rcx
leaq -0x90(%rbp), %r8
leaq -0xb0(%rbp), %r9
leaq -0xd0(%rbp), %r11
movl -0x10(%rbp), %r10d
leaq -0xf0(%rbp), %rax
movl $0x820, %esi            # imm = 0x820
leaq 0x324fa(%rip), %rdx     # 0x6b2ff
movq %r11, (%rsp)
movl %r10d, 0x8(%rsp)
movq %rax, 0x10(%rsp)
movb $0x0, %al
callq 0xc5d0
movq $0x0, -0x28(%rbp)
leaq -0x28(%rbp), %rax
movq %rax, -0x20(%rbp)
jmp 0x38e2c
leaq -0x50(%rbp), %rsi
leaq 0x35d4e(%rip), %rdi     # 0x6eb85
callq 0xc030
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x30(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, (%rax)
movq -0x30(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x20(%rbp)
jmp 0x38e6a
jmp 0x38e6c
leaq -0x940(%rbp), %rsi
leaq 0x2f536(%rip), %rdi     # 0x683b0
callq 0xc030
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x30(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, (%rax)
movq -0x30(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x20(%rbp)
jmp 0x38ead
jmp 0x38eaf
leaq -0x930(%rbp), %rsi
leaq 0x2e789(%rip), %rdi     # 0x67646
callq 0xc030
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x30(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, (%rax)
movq -0x30(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x20(%rbp)
jmp 0x38ef0
jmp 0x38ef2
leaq -0x110(%rbp), %rsi
leaq 0x3228c(%rip), %rdi     # 0x6b18c
callq 0xc030
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x30(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, (%rax)
movq -0x30(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x20(%rbp)
jmp 0x38f33
jmp 0x38f35
leaq -0x948(%rbp), %rsi
leaq 0x3225f(%rip), %rdi     # 0x6b1a2
callq 0xc030
movq %rax, -0x30(%rbp)
movq -0x30(%rbp), %rax
movq $0x0, 0x1040(%rax)
movq -0x30(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, (%rax)
movq -0x30(%rbp), %rax
addq $0x1040, %rax           # imm = 0x1040
movq %rax, -0x20(%rbp)
jmp 0x38f76
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x3222a(%rip), %rsi     # 0x6b1ae
leaq -0x28(%rbp), %rdx
callq 0xc390
movq -0x8(%rbp), %rdi
callq 0x3a400
movq -0x8(%rbp), %rdi
callq 0x3a4d0
movq -0x8(%rbp), %rdi
xorl %esi, %esi
leaq 0x2e02a(%rip), %rdx     # 0x66fd6
callq 0x3a2e0
movq -0x8(%rbp), %rdi
callq 0x3a620
movq -0x8(%rbp), %rdi
movq -0x18(%rbp), %rsi
callq 0x3a700
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x321d9(%rip), %rsi     # 0x6b1ae
callq 0xc060
jmp 0x38fdc
cmpq $0x0, -0x28(%rbp)
sete %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x38fec
jmp 0x3901e
movq -0x28(%rbp), %rax
movq %rax, -0x30(%rbp)
movq -0x28(%rbp), %rax
movq 0x1040(%rax), %rax
movq %rax, -0x28(%rbp)
cmpq $0x0, %rax
jne 0x39011
leaq -0x28(%rbp), %rax
movq %rax, -0x20(%rbp)
jmp 0x39013
movq -0x30(%rbp), %rdi
callq 0xc0d0
jmp 0x38fdc
jmp 0x39020
addq $0x9b0, %rsp            # imm = 0x9B0
popq %rbp
retq
nopl (%rax)