// File: /workspace/github_c_makefile_star2_O3/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 0x29b79
movl $0x1, %edi
movl $0x58, %esi
callq 0xc7f0
movq %rax, %rbx
testq %rax, %rax
je 0x2cec9
movq (%r15), %rdi
testq %rdi, %rdi
je 0x2cdd2
callq 0xcce0
movq %rax, (%rbx)
testq %rax, %rax
je 0x2ced0
movq 0x8(%r15), %rdi
testq %rdi, %rdi
je 0x2cded
callq 0xcce0
movq %rax, 0x8(%rbx)
testq %rax, %rax
je 0x2ced7
movq 0x10(%r15), %rdi
testq %rdi, %rdi
je 0x2ce08
callq 0xcce0
movq %rax, 0x10(%rbx)
testq %rax, %rax
je 0x2cede
movq 0x18(%r15), %rdi
testq %rdi, %rdi
je 0x2ce23
callq 0xcce0
movq %rax, 0x18(%rbx)
testq %rax, %rax
je 0x2cee5
movq 0x20(%r15), %rdi
testq %rdi, %rdi
je 0x2ce3e
callq 0xcce0
movq %rax, 0x20(%rbx)
testq %rax, %rax
je 0x2ceec
movq 0x28(%r15), %rdi
testq %rdi, %rdi
je 0x2ce59
callq 0xcce0
movq %rax, 0x28(%rbx)
testq %rax, %rax
je 0x2cef3
movq 0x30(%r15), %rdi
testq %rdi, %rdi
je 0x2ce74
callq 0xcce0
movq %rax, 0x30(%rbx)
testq %rax, %rax
je 0x2cefa
movq 0x38(%r15), %rdi
testq %rdi, %rdi
je 0x2ce8b
callq 0xcce0
movq %rax, 0x38(%rbx)
testq %rax, %rax
je 0x2cf01
movq 0x40(%r15), %rdi
testq %rdi, %rdi
je 0x2cea2
callq 0xcce0
movq %rax, 0x40(%rbx)
testq %rax, %rax
je 0x2cf08
movq 0x48(%r15), %rdi
testq %rdi, %rdi
je 0x2ceb9
callq 0xcce0
movq %rax, 0x48(%rbx)
testq %rax, %rax
je 0x2cf0f
movq 0x50(%r15), %rax
movq %rax, 0x50(%rbx)
movq %rbx, 0x70(%r14)
xorl %eax, %eax
jmp 0x2cf21
movl $0x8fb, %edi            # imm = 0x8FB
jmp 0x2cf14
movl $0x900, %edi            # imm = 0x900
jmp 0x2cf14
movl $0x905, %edi            # imm = 0x905
jmp 0x2cf14
movl $0x90a, %edi            # imm = 0x90A
jmp 0x2cf14
movl $0x90f, %edi            # imm = 0x90F
jmp 0x2cf14
movl $0x914, %edi            # imm = 0x914
jmp 0x2cf14
movl $0x919, %edi            # imm = 0x919
jmp 0x2cf14
movl $0x91e, %edi            # imm = 0x91E
jmp 0x2cf14
movl $0x923, %edi            # imm = 0x923
jmp 0x2cf14
movl $0x928, %edi            # imm = 0x928
jmp 0x2cf14
movl $0x92d, %edi            # imm = 0x92D
movq %rbx, %rsi
callq 0xe2b0
movl $0x1, %eax
popq %rbx
popq %r14
popq %r15
retq