// File: /workspace/github_c_makefile_star2_O2/Paxa[P]fast_excel/libxlsxwriter/src/workbook.c
// Function: workbook_set_properties
lxw_error
workbook_set_properties(lxw_workbook *self, lxw_doc_properties *user_props)
{
    lxw_doc_properties *doc_props;

    /* Free any existing properties. */
    _free_doc_properties(self->properties);

    doc_props = calloc(1, sizeof(lxw_doc_properties));
    GOTO_LABEL_ON_MEM_ERROR(doc_props, mem_error);

    /* Copy the user properties to an internal structure. */
    if (user_props->title) {
        doc_props->title = lxw_strdup(user_props->title);
        GOTO_LABEL_ON_MEM_ERROR(doc_props->title, mem_error);
    }

    if (user_props->subject) {
        doc_props->subject = lxw_strdup(user_props->subject);
        GOTO_LABEL_ON_MEM_ERROR(doc_props->subject, mem_error);
    }

    if (user_props->author) {
        doc_props->author = lxw_strdup(user_props->author);
        GOTO_LABEL_ON_MEM_ERROR(doc_props->author, mem_error);
    }

    if (user_props->manager) {
        doc_props->manager = lxw_strdup(user_props->manager);
        GOTO_LABEL_ON_MEM_ERROR(doc_props->manager, mem_error);
    }

    if (user_props->company) {
        doc_props->company = lxw_strdup(user_props->company);
        GOTO_LABEL_ON_MEM_ERROR(doc_props->company, mem_error);
    }

    if (user_props->category) {
        doc_props->category = lxw_strdup(user_props->category);
        GOTO_LABEL_ON_MEM_ERROR(doc_props->category, mem_error);
    }

    if (user_props->keywords) {
        doc_props->keywords = lxw_strdup(user_props->keywords);
        GOTO_LABEL_ON_MEM_ERROR(doc_props->keywords, mem_error);
    }

    if (user_props->comments) {
        doc_props->comments = lxw_strdup(user_props->comments);
        GOTO_LABEL_ON_MEM_ERROR(doc_props->comments, mem_error);
    }

    if (user_props->status) {
        doc_props->status = lxw_strdup(user_props->status);
        GOTO_LABEL_ON_MEM_ERROR(doc_props->status, mem_error);
    }

    if (user_props->hyperlink_base) {
        doc_props->hyperlink_base = lxw_strdup(user_props->hyperlink_base);
        GOTO_LABEL_ON_MEM_ERROR(doc_props->hyperlink_base, mem_error);
    }

    doc_props->created = user_props->created;

    self->properties = doc_props;

    return LXW_NO_ERROR;

mem_error:
    _free_doc_properties(doc_props);
    return LXW_ERROR_MEMORY_MALLOC_FAILED;
}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
movq %rsi, %r15
movq %rdi, %r14
movq 0x70(%rdi), %rdi
callq 0x265ef
pushq $0x1
popq %rdi
pushq $0x58
popq %rsi
callq 0xc850
movq %rax, %rbx
testq %rax, %rax
je 0x299cd
movq (%r15), %rdi
testq %rdi, %rdi
je 0x298d6
callq 0xcd50
movq %rax, (%rbx)
testq %rax, %rax
je 0x299d4
movq 0x8(%r15), %rdi
testq %rdi, %rdi
je 0x298f1
callq 0xcd50
movq %rax, 0x8(%rbx)
testq %rax, %rax
je 0x299db
movq 0x10(%r15), %rdi
testq %rdi, %rdi
je 0x2990c
callq 0xcd50
movq %rax, 0x10(%rbx)
testq %rax, %rax
je 0x299e2
movq 0x18(%r15), %rdi
testq %rdi, %rdi
je 0x29927
callq 0xcd50
movq %rax, 0x18(%rbx)
testq %rax, %rax
je 0x299e9
movq 0x20(%r15), %rdi
testq %rdi, %rdi
je 0x29942
callq 0xcd50
movq %rax, 0x20(%rbx)
testq %rax, %rax
je 0x299f0
movq 0x28(%r15), %rdi
testq %rdi, %rdi
je 0x2995d
callq 0xcd50
movq %rax, 0x28(%rbx)
testq %rax, %rax
je 0x299f7
movq 0x30(%r15), %rdi
testq %rdi, %rdi
je 0x29978
callq 0xcd50
movq %rax, 0x30(%rbx)
testq %rax, %rax
je 0x299fe
movq 0x38(%r15), %rdi
testq %rdi, %rdi
je 0x2998f
callq 0xcd50
movq %rax, 0x38(%rbx)
testq %rax, %rax
je 0x29a05
movq 0x40(%r15), %rdi
testq %rdi, %rdi
je 0x299a6
callq 0xcd50
movq %rax, 0x40(%rbx)
testq %rax, %rax
je 0x29a0c
movq 0x48(%r15), %rdi
testq %rdi, %rdi
je 0x299bd
callq 0xcd50
movq %rax, 0x48(%rbx)
testq %rax, %rax
je 0x29a13
movq 0x50(%r15), %rax
movq %rax, 0x50(%rbx)
movq %rbx, 0x70(%r14)
xorl %eax, %eax
jmp 0x29a42
movl $0x8fb, %ecx            # imm = 0x8FB
jmp 0x29a18
movl $0x900, %ecx            # imm = 0x900
jmp 0x29a18
movl $0x905, %ecx            # imm = 0x905
jmp 0x29a18
movl $0x90a, %ecx            # imm = 0x90A
jmp 0x29a18
movl $0x90f, %ecx            # imm = 0x90F
jmp 0x29a18
movl $0x914, %ecx            # imm = 0x914
jmp 0x29a18
movl $0x919, %ecx            # imm = 0x919
jmp 0x29a18
movl $0x91e, %ecx            # imm = 0x91E
jmp 0x29a18
movl $0x923, %ecx            # imm = 0x923
jmp 0x29a18
movl $0x928, %ecx            # imm = 0x928
jmp 0x29a18
movl $0x92d, %ecx            # imm = 0x92D
movq 0x295d9(%rip), %rax     # 0x52ff8
movq (%rax), %rdi
leaq 0x136b7(%rip), %rsi     # 0x3d0e0
leaq 0x18f21(%rip), %rdx     # 0x42951
xorl %eax, %eax
callq 0xc8d0
movq %rbx, %rdi
callq 0x265ef
pushq $0x1
popq %rax
popq %rbx
popq %r14
popq %r15
retq