// File: /workspace/github_c_makefile_star2_O2/Paxa[P]fast_excel/libxlsxwriter/src/drawing.c
// Function: drawing_write_c_nv_pr
STATIC void
_drawing_write_c_nv_pr(lxw_drawing *self, char *object_name, uint32_t index,
                       lxw_drawing_object *drawing_object)
{
    struct xml_attribute_list attributes;
    struct xml_attribute *attribute;

    char name[LXW_OBJ_NAME_LENGTH];
    lxw_snprintf(name, LXW_OBJ_NAME_LENGTH, "%s %d", object_name, index);

    LXW_INIT_ATTRIBUTES();

    LXW_PUSH_ATTRIBUTES_INT("id", index + 1);
    LXW_PUSH_ATTRIBUTES_STR("name", name);

    if (drawing_object && drawing_object->description
        && strlen(drawing_object->description)
        && !drawing_object->decorative) {

        LXW_PUSH_ATTRIBUTES_STR("descr", drawing_object->description);
    }

    if (drawing_object
        && (drawing_object->url_rel_index || drawing_object->decorative)) {
        lxw_xml_start_tag(self->file, "xdr:cNvPr", &attributes);

        if (drawing_object->url_rel_index) {
            /* Write the a:hlinkClick element. */
            _drawing_write_a_hlink_click(self,
                                         drawing_object->url_rel_index,
                                         drawing_object->tip);
        }

        if (drawing_object->decorative) {
            _workbook_write_decorative(self);
        }

        lxw_xml_end_tag(self->file, "xdr:cNvPr");
    }
    else {
        lxw_xml_empty_tag(self->file, "xdr:cNvPr", &attributes);
    }

    LXW_FREE_ATTRIBUTES();
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x8a8, %rsp            # imm = 0x8A8
movq %rcx, %r14
movl %edx, %r12d
movq %rsi, %rcx
movq %rdi, %rbx
leaq 0x24017(%rip), %rdx     # 0x3f763
leaq 0x72(%rsp), %r15
pushq $0xe
popq %rsi
movq %r15, %rdi
movl %r12d, %r8d
xorl %eax, %eax
callq 0xc5b0
movq %rsp, %rbp
andq $0x0, (%rbp)
movq %rbp, 0x8(%rbp)
incl %r12d
leaq 0x2a9ee(%rip), %rdi     # 0x46165
movq %r12, %rsi
callq 0xc1a0
movl $0x1040, %r12d          # imm = 0x1040
andq $0x0, 0x1040(%rax)
leaq (%rax,%r12), %rcx
movq 0x8(%rbp), %rdx
movq %rax, (%rdx)
movq %rcx, 0x8(%rbp)
leaq 0x22bbc(%rip), %rdi     # 0x3e35f
movq %r15, %rsi
callq 0xc030
addq %rax, %r12
andq $0x0, 0x1040(%rax)
movq 0x8(%rbp), %rcx
movq %rax, (%rcx)
movq %r12, 0x8(%rbp)
testq %r14, %r14
je 0x1ba2f
movq 0x60(%r14), %rsi
testq %rsi, %rsi
je 0x1b807
cmpb $0x0, (%rsi)
je 0x1b807
cmpb $0x0, 0x70(%r14)
jne 0x1b807
leaq 0x23f83(%rip), %rdi     # 0x3f769
callq 0xc030
andq $0x0, 0x1040(%rax)
leaq 0x1040(%rax), %rcx
movq 0x8(%rsp), %rdx
movq %rax, (%rdx)
movq %rcx, 0x8(%rsp)
cmpl $0x0, 0x58(%r14)
jne 0x1b819
cmpb $0x0, 0x70(%r14)
je 0x1ba2f
movq (%rbx), %rdi
leaq 0x23f4c(%rip), %rsi     # 0x3f76f
movq %rsp, %rdx
callq 0xc380
movl 0x58(%r14), %eax
testl %eax, %eax
je 0x1b936
movq 0x68(%r14), %r12
leaq 0x233ae(%rip), %rsi     # 0x3ebf0
pushq $0x44
popq %rcx
leaq 0x20(%rsp), %r13
movq %r13, %rdi
rep  movsb (%rsi), %es:(%rdi)
leaq 0x23f23(%rip), %rdx     # 0x3f779
leaq 0x80(%rsp), %rdi
pushq $0x20
popq %rsi
movl %eax, %ecx
xorl %eax, %eax
callq 0xc5b0
leaq 0x10(%rsp), %r15
andq $0x0, (%r15)
movq %r15, 0x8(%r15)
leaq 0x22f67(%rip), %rdi     # 0x3e7e5
movq %r13, %rsi
callq 0xc030
movl $0x1040, %r13d          # imm = 0x1040
andq $0x0, 0x1040(%rax)
leaq (%rax,%r13), %rcx
movq 0x8(%r15), %rdx
movq %rax, (%rdx)
movq %rcx, 0x8(%r15)
leaq 0x23ed5(%rip), %rdi     # 0x3f77f
leaq 0x80(%rsp), %rsi
callq 0xc030
addq %rax, %r13
andq $0x0, 0x1040(%rax)
movq 0x8(%r15), %rcx
movq %rax, (%rcx)
movq %r13, 0x8(%r15)
testq %r12, %r12
je 0x1b8fd
leaq 0x23eab(%rip), %rdi     # 0x3f784
movq %r12, %rsi
callq 0xc030
andq $0x0, 0x1040(%rax)
leaq 0x1040(%rax), %rcx
movq 0x18(%rsp), %rdx
movq %rax, (%rdx)
movq %rcx, 0x18(%rsp)
movq (%rbx), %rdi
leaq 0x23e85(%rip), %rsi     # 0x3f78c
movq %r15, %rdx
callq 0xcc70
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x1b936
movq 0x1040(%rdi), %rax
movq %rax, 0x10(%rsp)
testq %rax, %rax
jne 0x1b92f
movq %r15, 0x18(%rsp)
callq 0xc0d0
jmp 0x1b90f
cmpb $0x0, 0x70(%r14)
je 0x1bb4f
movq (%rbx), %rdi
leaq 0x23e4e(%rip), %rsi     # 0x3f799
xorl %edx, %edx
callq 0xc380
leaq 0x23e49(%rip), %rsi     # 0x3f7a2
movq %rbx, %rdi
callq 0x1bb95
movaps 0x24088(%rip), %xmm0    # 0x3f9f0
leaq 0x80(%rsp), %rsi
movaps %xmm0, 0x20(%rsi)
movaps 0x24065(%rip), %xmm0    # 0x3f9e0
movaps %xmm0, 0x10(%rsi)
movaps 0x2404a(%rip), %xmm0    # 0x3f9d0
movaps %xmm0, (%rsi)
movabsq $0x6e69616d2f3431, %rax # imm = 0x6E69616D2F3431
movq %rax, 0x2e(%rsi)
leaq 0x20(%rsp), %r14
andq $0x0, (%r14)
movq %r14, 0x8(%r14)
leaq 0x23e4f(%rip), %rdi     # 0x3f7fa
callq 0xc030
movl $0x1040, %r15d          # imm = 0x1040
andq $0x0, 0x1040(%rax)
leaq (%rax,%r15), %rcx
movq 0x8(%r14), %rdx
movq %rax, (%rdx)
movq %rcx, 0x8(%r14)
leaq 0x2a791(%rip), %rdi     # 0x46165
leaq 0x23e29(%rip), %rsi     # 0x3f804
callq 0xc030
addq %rax, %r15
andq $0x0, 0x1040(%rax)
movq 0x8(%r14), %rcx
movq %rax, (%rcx)
movq %r15, 0x8(%r14)
movq (%rbx), %rdi
leaq 0x23e2b(%rip), %rsi     # 0x3f82b
movq %r14, %rdx
callq 0xcc70
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x1ba46
movq 0x1040(%rdi), %rax
movq %rax, 0x20(%rsp)
testq %rax, %rax
jne 0x1ba28
movq %r14, 0x28(%rsp)
callq 0xc0d0
jmp 0x1ba08
movq (%rbx), %rdi
leaq 0x23d36(%rip), %rsi     # 0x3f76f
movq %rsp, %rdx
callq 0xcc70
jmp 0x1bb7a
movq (%rbx), %rdi
leaq 0x23d79(%rip), %rsi     # 0x3f7c9
callq 0xc060
leaq 0x23d73(%rip), %rsi     # 0x3f7cf
movq %rbx, %rdi
callq 0x1bb95
movups 0x23fd1(%rip), %xmm0    # 0x3fa3c
leaq 0x80(%rsp), %rsi
movups %xmm0, 0x2c(%rsi)
movaps 0x23fb2(%rip), %xmm0    # 0x3fa30
movaps %xmm0, 0x20(%rsi)
movaps 0x23f97(%rip), %xmm0    # 0x3fa20
movaps %xmm0, 0x10(%rsi)
movaps 0x23f7c(%rip), %xmm0    # 0x3fa10
movaps %xmm0, (%rsi)
andq $0x0, 0x20(%rsp)
movq %r14, 0x28(%rsp)
leaq 0x23d91(%rip), %rdi     # 0x3f83a
callq 0xc030
movl $0x1040, %r15d          # imm = 0x1040
andq $0x0, 0x1040(%rax)
leaq (%rax,%r15), %rcx
movq 0x28(%rsp), %rdx
movq %rax, (%rdx)
movq %rcx, 0x28(%rsp)
leaq 0x22978(%rip), %rdi     # 0x3e44c
leaq 0x26c6d(%rip), %rsi     # 0x42748
callq 0xc030
addq %rax, %r15
andq $0x0, 0x1040(%rax)
movq 0x28(%rsp), %rcx
movq %rax, (%rcx)
movq %r15, 0x28(%rsp)
movq (%rbx), %rdi
leaq 0x23d43(%rip), %rsi     # 0x3f845
movq %r14, %rdx
callq 0xcc70
movq 0x20(%rsp), %rdi
testq %rdi, %rdi
je 0x1bb31
movq 0x1040(%rdi), %rax
movq %rax, 0x20(%rsp)
testq %rax, %rax
jne 0x1bb2a
movq %r14, 0x28(%rsp)
callq 0xc0d0
jmp 0x1bb0a
movq (%rbx), %rdi
leaq 0x23c8e(%rip), %rsi     # 0x3f7c9
callq 0xc060
movq (%rbx), %rdi
leaq 0x23c4f(%rip), %rsi     # 0x3f799
callq 0xc060
movq (%rbx), %rdi
leaq 0x23c16(%rip), %rsi     # 0x3f76f
callq 0xc060
jmp 0x1bb7a
movq 0x1040(%rdi), %rax
movq %rax, (%rsp)
testq %rax, %rax
jne 0x1bb75
movq %rbp, 0x8(%rsp)
callq 0xc0d0
movq (%rsp), %rdi
testq %rdi, %rdi
jne 0x1bb60
addq $0x8a8, %rsp            # imm = 0x8A8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq