// File: /workspace/github_c_makefile_star2_O3/Paxa[P]fast_excel/libxlsxwriter/src/comment.c
// Function: lxw_comment_free
void
lxw_comment_free(lxw_comment *comment)
{
    struct lxw_author_id *author_id;
    struct lxw_author_id *next_author_id;

    if (!comment)
        return;

    if (comment->author_ids) {
        for (author_id =
             RB_MIN(lxw_author_ids, comment->author_ids);
             author_id; author_id = next_author_id) {

            next_author_id =
                RB_NEXT(lxw_author_ids, worksheet->author_id, author_id);
            RB_REMOVE(lxw_author_ids, comment->author_ids, author_id);
            free(author_id->author);
            free(author_id);
        }

        free(comment->author_ids);
    }

    free(comment);
}

// Assembly:
testq %rdi, %rdi
je 0x1c360
pushq %r15
pushq %r14
pushq %rbx
movq %rdi, %rbx
movq 0x10(%rdi), %rdi
testq %rdi, %rdi
je 0x1c353
xorl %eax, %eax
movq %rdi, %rcx
movq %rax, %r15
movq (%rcx), %rax
leaq 0x10(%rax), %rcx
testq %rax, %rax
jne 0x1be9f
testq %r15, %r15
je 0x1c34e
movq %r15, %r14
movq 0x18(%r15), %rax
testq %rax, %rax
je 0x1bf8a
movq %rax, %rcx
movq %rcx, %r15
movq 0x10(%rcx), %rcx
testq %rcx, %rcx
jne 0x1beca
movq 0x10(%rbx), %rcx
movq 0x10(%r14), %rdi
testq %rdi, %rdi
je 0x1bfb3
testq %rax, %rax
je 0x1bfc4
leaq 0x10(%r14), %r8
movq %rax, %rdi
movq 0x10(%rax), %rax
testq %rax, %rax
jne 0x1bef4
movq 0x18(%rdi), %rax
movq 0x20(%rdi), %rdx
movl 0x28(%rdi), %esi
testq %rax, %rax
je 0x1bf14
movq %rdx, 0x20(%rax)
movq %rcx, %r9
testq %rdx, %rdx
je 0x1bf2c
leaq 0x10(%rdx), %r10
leaq 0x18(%rdx), %r9
cmpq %rdi, 0x10(%rdx)
cmoveq %r10, %r9
movq %rax, (%r9)
cmpq %r14, 0x20(%rdi)
cmoveq %rdi, %rdx
leaq 0x10(%rdi), %r9
movups (%r8), %xmm0
movups 0x10(%r8), %xmm1
movups %xmm1, 0x10(%r9)
movups %xmm0, (%r9)
movq 0x20(%r14), %r9
movq %rcx, %r8
testq %r9, %r9
je 0x1bf69
leaq 0x10(%r9), %r10
leaq 0x18(%r9), %r8
cmpq %r14, 0x10(%r9)
cmoveq %r10, %r8
movq %rdi, (%r8)
movq 0x10(%r14), %r8
movq %rdi, 0x20(%r8)
movq 0x18(%r14), %r8
testq %r8, %r8
je 0x1c010
movq %rdi, 0x20(%r8)
jmp 0x1c010
movq 0x20(%r14), %rdx
testq %rdx, %rdx
je 0x1bf99
cmpq %r14, 0x10(%rdx)
je 0x1bfd2
movq %r14, %rcx
movq 0x20(%rcx), %r15
testq %r15, %r15
je 0x1bfca
cmpq 0x18(%r15), %rcx
movq %r15, %rcx
je 0x1bf9c
jmp 0x1bed6
movq 0x20(%r14), %rdx
movl 0x28(%r14), %esi
testq %rax, %rax
jne 0x1bfed
xorl %eax, %eax
jmp 0x1bff1
movq 0x20(%r14), %rdx
jmp 0x1bfe6
xorl %r15d, %r15d
jmp 0x1bed6
movq 0x10(%rbx), %rcx
movq 0x10(%r14), %rdi
testq %rdi, %rdi
je 0x1c183
movq %rdx, %r15
movl 0x28(%r14), %esi
movq %rdi, %rax
movq %rdx, 0x20(%rax)
testq %rdx, %rdx
je 0x1c008
leaq 0x10(%rdx), %r8
leaq 0x18(%rdx), %rdi
cmpq %r14, 0x10(%rdx)
cmoveq %r8, %rdi
jmp 0x1c00d
xorl %edx, %edx
movq %rcx, %rdi
movq %rax, (%rdi)
testl %esi, %esi
jne 0x1c330
jmp 0x1c025
movl $0x1, 0x28(%rdx)
movq 0x20(%rax), %rdx
movq %rax, %r8
movq %rdx, %rax
testq %r8, %r8
je 0x1c03b
cmpl $0x0, 0x28(%r8)
jne 0x1c328
movq (%rcx), %rsi
cmpq %rsi, %r8
je 0x1c323
movq 0x10(%rax), %rdx
cmpq %r8, %rdx
je 0x1c092
cmpl $0x1, 0x28(%rdx)
jne 0x1c0f7
movl $0x0, 0x28(%rdx)
movl $0x1, 0x28(%rax)
movq 0x18(%rdx), %rdi
movq %rdi, 0x10(%rax)
testq %rdi, %rdi
je 0x1c079
movq %rax, 0x20(%rdi)
movq 0x20(%rax), %r8
movq %r8, 0x20(%rdx)
testq %r8, %r8
je 0x1c0dc
cmpq 0x10(%r8), %rax
je 0x1c0e4
movq %rdx, 0x18(%r8)
jmp 0x1c0ec
movq 0x18(%rax), %rdx
cmpl $0x1, 0x28(%rdx)
jne 0x1c138
movl $0x0, 0x28(%rdx)
movl $0x1, 0x28(%rax)
movq 0x10(%rdx), %rdi
movq %rdi, 0x18(%rax)
testq %rdi, %rdi
je 0x1c0bf
movq %rax, 0x20(%rdi)
movq 0x20(%rax), %r8
movq %r8, 0x20(%rdx)
testq %r8, %r8
je 0x1c121
cmpq 0x10(%r8), %rax
je 0x1c129
movq %rdx, 0x18(%r8)
movq 0x18(%rax), %rdi
jmp 0x1c12d
movq %rdx, (%rcx)
movq %rdx, %rsi
jmp 0x1c0ec
movq %rdx, 0x10(%r8)
movq 0x10(%rax), %rdi
movq %rax, 0x18(%rdx)
movq %rdx, 0x20(%rax)
movq %rdi, %rdx
movq 0x10(%rdx), %r9
testq %r9, %r9
je 0x1c107
cmpl $0x0, 0x28(%r9)
jne 0x1c16e
movq 0x18(%rdx), %r8
testq %r8, %r8
je 0x1c01a
cmpl $0x0, 0x28(%r8)
je 0x1c01a
jmp 0x1c162
movq %rdx, (%rcx)
movq %rdx, %rsi
jmp 0x1c12d
movq %rdx, 0x10(%r8)
movq %rax, 0x10(%rdx)
movq %rdx, 0x20(%rax)
movq %rdi, %rdx
movq 0x10(%rdx), %r8
testq %r8, %r8
je 0x1c148
cmpl $0x0, 0x28(%r8)
jne 0x1c191
movq 0x18(%rdx), %r9
testq %r9, %r9
je 0x1c01a
cmpl $0x0, 0x28(%r9)
je 0x1c01a
jmp 0x1c1a9
testq %r9, %r9
je 0x1c1be
cmpl $0x0, 0x28(%r9)
je 0x1c1be
movl 0x28(%rax), %edi
movl %edi, 0x28(%rdx)
movl $0x0, 0x28(%rax)
movq %rsi, %rdi
jmp 0x1c229
movl 0x28(%r14), %esi
xorl %eax, %eax
movq %rdx, %r15
jmp 0x1bff6
movq 0x18(%rdx), %r9
testq %r9, %r9
je 0x1c271
cmpl $0x0, 0x28(%r9)
je 0x1c271
movl 0x28(%rax), %edi
movl %edi, 0x28(%rdx)
movl $0x0, 0x28(%rax)
movq %rsi, %rdi
jmp 0x1c2dc
movl $0x0, 0x28(%r8)
movl $0x1, 0x28(%rdx)
movq 0x10(%r8), %rdi
movq %rdi, 0x18(%rdx)
testq %rdi, %rdi
je 0x1c1de
movq %rdx, 0x20(%rdi)
movq 0x20(%rdx), %r10
movq %r10, 0x20(%r8)
movq %rcx, %r9
movq %r8, %rdi
testq %r10, %r10
je 0x1c204
leaq 0x10(%r10), %rdi
cmpq 0x10(%r10), %rdx
leaq 0x18(%r10), %r9
cmoveq %rdi, %r9
movq %rsi, %rdi
movq %r8, (%r9)
movq %rdx, 0x10(%r8)
movq %r8, 0x20(%rdx)
movq 0x10(%rax), %rdx
movq 0x10(%rdx), %r9
movl 0x28(%rax), %esi
movl %esi, 0x28(%rdx)
movl $0x0, 0x28(%rax)
testq %r9, %r9
je 0x1c231
movl $0x0, 0x28(%r9)
movq 0x18(%rdx), %rsi
movq %rsi, 0x10(%rax)
testq %rsi, %rsi
je 0x1c242
movq %rax, 0x20(%rsi)
movq 0x20(%rax), %rsi
movq %rsi, 0x20(%rdx)
movq %rdx, %r8
testq %rsi, %rsi
je 0x1c265
leaq 0x10(%rsi), %r8
cmpq 0x10(%rsi), %rax
leaq 0x18(%rsi), %rcx
cmoveq %r8, %rcx
movq %rdi, %r8
movq %rdx, (%rcx)
movq %rax, 0x18(%rdx)
jmp 0x1c31f
movl $0x0, 0x28(%r8)
movl $0x1, 0x28(%rdx)
movq 0x18(%r8), %rdi
movq %rdi, 0x10(%rdx)
testq %rdi, %rdi
je 0x1c291
movq %rdx, 0x20(%rdi)
movq 0x20(%rdx), %r10
movq %r10, 0x20(%r8)
movq %rcx, %r9
movq %r8, %rdi
testq %r10, %r10
je 0x1c2b7
leaq 0x10(%r10), %rdi
cmpq 0x10(%r10), %rdx
leaq 0x18(%r10), %r9
cmoveq %rdi, %r9
movq %rsi, %rdi
movq %r8, (%r9)
movq %rdx, 0x18(%r8)
movq %r8, 0x20(%rdx)
movq 0x18(%rax), %rdx
movq 0x18(%rdx), %r9
movl 0x28(%rax), %esi
movl %esi, 0x28(%rdx)
movl $0x0, 0x28(%rax)
testq %r9, %r9
je 0x1c2e4
movl $0x0, 0x28(%r9)
movq 0x10(%rdx), %rsi
movq %rsi, 0x18(%rax)
testq %rsi, %rsi
je 0x1c2f5
movq %rax, 0x20(%rsi)
movq 0x20(%rax), %rsi
movq %rsi, 0x20(%rdx)
movq %rdx, %r8
testq %rsi, %rsi
je 0x1c318
leaq 0x10(%rsi), %r8
cmpq 0x10(%rsi), %rax
leaq 0x18(%rsi), %rcx
cmoveq %r8, %rcx
movq %rdi, %r8
movq %rdx, (%rcx)
movq %rax, 0x10(%rdx)
movq %rdx, 0x20(%rax)
testq %r8, %r8
je 0x1c330
movl $0x0, 0x28(%r8)
movq 0x8(%r14), %rdi
callq 0xc0c0
movq %r14, %rdi
callq 0xc0c0
testq %r15, %r15
jne 0x1beb7
movq 0x10(%rbx), %rdi
callq 0xc0c0
movq %rbx, %rdi
popq %rbx
popq %r14
popq %r15
jmp 0xc0c0
retq