// File: /workspace/github_c_makefile_star2_O0/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
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movq %rcx, -0x20(%rbp)
leaq -0x46(%rbp), %rdi
movq -0x10(%rbp), %rcx
movl -0x14(%rbp), %r8d
movl $0xe, %esi
leaq 0x3fcc4(%rip), %rdx     # 0x685a3
movb $0x0, %al
callq 0xc5d0
movq $0x0, -0x30(%rbp)
leaq -0x30(%rbp), %rax
movq %rax, -0x28(%rbp)
jmp 0x288f8
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, %eax
movl %eax, %esi
leaq 0x4627c(%rip), %rdi     # 0x6eb85
callq 0xc1b0
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 0x2893c
jmp 0x2893e
leaq -0x46(%rbp), %rsi
leaq 0x3e866(%rip), %rdi     # 0x671af
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 0x2897c
cmpq $0x0, -0x20(%rbp)
je 0x289f1
movq -0x20(%rbp), %rax
cmpq $0x0, 0x60(%rax)
je 0x289f1
movq -0x20(%rbp), %rax
movq 0x60(%rax), %rdi
callq 0xc4e0
cmpq $0x0, %rax
je 0x289f1
movq -0x20(%rbp), %rax
cmpb $0x0, 0x70(%rax)
jne 0x289f1
jmp 0x289ad
movq -0x20(%rbp), %rax
movq 0x60(%rax), %rsi
leaq 0x3fbed(%rip), %rdi     # 0x685a9
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 0x289ef
jmp 0x289f1
cmpq $0x0, -0x20(%rbp)
je 0x28a70
movq -0x20(%rbp), %rax
cmpl $0x0, 0x58(%rax)
jne 0x28a0f
movq -0x20(%rbp), %rax
movzbl 0x70(%rax), %eax
cmpl $0x0, %eax
je 0x28a70
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x3fb92(%rip), %rsi     # 0x685af
leaq -0x30(%rbp), %rdx
callq 0xc390
movq -0x20(%rbp), %rax
cmpl $0x0, 0x58(%rax)
je 0x28a48
movq -0x8(%rbp), %rdi
movq -0x20(%rbp), %rax
movl 0x58(%rax), %esi
movq -0x20(%rbp), %rax
movq 0x68(%rax), %rdx
callq 0x28b50
movq -0x20(%rbp), %rax
cmpb $0x0, 0x70(%rax)
je 0x28a5b
movq -0x8(%rbp), %rdi
callq 0x28ce0
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x3fb46(%rip), %rsi     # 0x685af
callq 0xc060
jmp 0x28a87
movq -0x8(%rbp), %rax
movq (%rax), %rdi
leaq 0x3fb31(%rip), %rsi     # 0x685af
leaq -0x30(%rbp), %rdx
callq 0xcca0
jmp 0x28a89
jmp 0x28a8b
cmpq $0x0, -0x30(%rbp)
sete %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x28a9b
jmp 0x28acd
movq -0x30(%rbp), %rax
movq %rax, -0x38(%rbp)
movq -0x30(%rbp), %rax
movq 0x1040(%rax), %rax
movq %rax, -0x30(%rbp)
cmpq $0x0, %rax
jne 0x28ac0
leaq -0x30(%rbp), %rax
movq %rax, -0x28(%rbp)
jmp 0x28ac2
movq -0x38(%rbp), %rdi
callq 0xc0d0
jmp 0x28a8b
jmp 0x28acf
addq $0x50, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)