// File: /workspace/github_c_makefile_star2_O1/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 0x1c119
pushq %r15
pushq %r14
pushq %rbx
movq %rdi, %rbx
movq 0x10(%rdi), %rax
testq %rax, %rax
je 0x1c10c
xorl %ecx, %ecx
movq %rcx, %r15
movq (%rax), %rcx
leaq 0x10(%rcx), %rax
testq %rcx, %rcx
jne 0x1bcb4
jmp 0x1c0fa
movq %r15, %r14
movq 0x18(%r15), %rdx
testq %rdx, %rdx
je 0x1bdc6
movq %rdx, %rax
movq %rax, %r15
movq 0x10(%rax), %rax
testq %rax, %rax
jne 0x1bcdb
testq %rdx, %rdx
sete %sil
movq 0x10(%rbx), %rax
movq 0x10(%r14), %rcx
testq %rcx, %rcx
sete %dil
cmoveq %rdx, %rcx
orb %sil, %dil
je 0x1bd33
movq 0x20(%r14), %rdx
movl 0x28(%r14), %esi
testq %rcx, %rcx
je 0x1bd17
movq %rdx, 0x20(%rcx)
testq %rdx, %rdx
je 0x1bdf7
cmpq %r14, 0x10(%rdx)
je 0x1bdfe
movq %rcx, 0x18(%rdx)
jmp 0x1be02
leaq 0x10(%r14), %r8
movq %rdx, %rdi
movq 0x10(%rdx), %rdx
testq %rdx, %rdx
jne 0x1bd37
movq 0x18(%rdi), %rcx
movq 0x20(%rdi), %rdx
movl 0x28(%rdi), %esi
testq %rcx, %rcx
je 0x1bd57
movq %rdx, 0x20(%rcx)
movq %rax, %r9
testq %rdx, %rdx
je 0x1bd6f
leaq 0x10(%rdx), %r10
leaq 0x18(%rdx), %r9
cmpq %rdi, 0x10(%rdx)
cmoveq %r10, %r9
movq %rcx, (%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 %rax, %r8
testq %r9, %r9
je 0x1bdac
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 0x1be02
movq %rdi, 0x20(%r8)
jmp 0x1be02
movq 0x20(%r14), %r15
testq %r15, %r15
je 0x1bdd9
cmpq %r14, 0x10(%r15)
je 0x1bce7
movq %r14, %rax
movq 0x20(%rax), %r15
testq %r15, %r15
je 0x1bce7
cmpq 0x18(%r15), %rax
movq %r15, %rax
je 0x1bddc
jmp 0x1bce7
movq %rcx, (%rax)
xorl %edx, %edx
jmp 0x1be02
movq %rcx, 0x10(%rdx)
testl %esi, %esi
jne 0x1c0e9
jmp 0x1be17
movl $0x1, 0x28(%rdx)
movq 0x20(%rcx), %rdx
movq %rcx, %rsi
movq %rdx, %rcx
testq %rsi, %rsi
je 0x1be2c
cmpl $0x0, 0x28(%rsi)
jne 0x1c0dd
cmpq (%rax), %rsi
je 0x1c0dd
movq 0x10(%rcx), %rdx
cmpq %rsi, %rdx
je 0x1bec9
cmpl $0x1, 0x28(%rdx)
jne 0x1be9a
movl $0x0, 0x28(%rdx)
movl $0x1, 0x28(%rcx)
movq 0x18(%rdx), %rsi
movq %rsi, 0x10(%rcx)
testq %rsi, %rsi
je 0x1be67
movq %rcx, 0x20(%rsi)
movq 0x20(%rcx), %rdi
movq %rdi, 0x20(%rdx)
movq %rax, %rsi
testq %rdi, %rdi
je 0x1be8b
movq 0x20(%rcx), %rdi
leaq 0x10(%rdi), %r8
leaq 0x18(%rdi), %rsi
cmpq 0x10(%rdi), %rcx
cmoveq %r8, %rsi
movq %rdx, (%rsi)
movq %rcx, 0x18(%rdx)
movq %rdx, 0x20(%rcx)
movq 0x10(%rcx), %rdx
movq 0x10(%rdx), %rsi
testq %rsi, %rsi
je 0x1bead
cmpl $0x0, 0x28(%rsi)
jne 0x1c013
movq 0x18(%rdx), %rdi
testq %rdi, %rdi
je 0x1be0c
cmpl $0x0, 0x28(%rdi)
je 0x1be0c
jmp 0x1c013
movq 0x18(%rcx), %rdx
cmpl $0x1, 0x28(%rdx)
jne 0x1bf25
movl $0x0, 0x28(%rdx)
movl $0x1, 0x28(%rcx)
movq 0x10(%rdx), %rsi
movq %rsi, 0x18(%rcx)
testq %rsi, %rsi
je 0x1bef2
movq %rcx, 0x20(%rsi)
movq 0x20(%rcx), %rdi
movq %rdi, 0x20(%rdx)
movq %rax, %rsi
testq %rdi, %rdi
je 0x1bf16
movq 0x20(%rcx), %rdi
leaq 0x10(%rdi), %r8
leaq 0x18(%rdi), %rsi
cmpq 0x10(%rdi), %rcx
cmoveq %r8, %rsi
movq %rdx, (%rsi)
movq %rcx, 0x10(%rdx)
movq %rdx, 0x20(%rcx)
movq 0x18(%rcx), %rdx
movq 0x10(%rdx), %rsi
testq %rsi, %rsi
je 0x1bf34
cmpl $0x0, 0x28(%rsi)
jne 0x1bf4b
movq 0x18(%rdx), %rdi
testq %rdi, %rdi
je 0x1be0c
cmpl $0x0, 0x28(%rdi)
je 0x1be0c
movq 0x18(%rdx), %rdi
testq %rdi, %rdi
je 0x1bf5a
cmpl $0x0, 0x28(%rdi)
jne 0x1bfb1
testq %rsi, %rsi
je 0x1bf66
movl $0x0, 0x28(%rsi)
movl $0x1, 0x28(%rdx)
movq 0x18(%rsi), %rdi
movq %rdi, 0x10(%rdx)
testq %rdi, %rdi
je 0x1bf7e
movq %rdx, 0x20(%rdi)
movq 0x20(%rdx), %r8
movq %r8, 0x20(%rsi)
movq %rax, %rdi
testq %r8, %r8
je 0x1bfa2
movq 0x20(%rdx), %r8
leaq 0x10(%r8), %r9
leaq 0x18(%r8), %rdi
cmpq 0x10(%r8), %rdx
cmoveq %r9, %rdi
movq %rsi, (%rdi)
movq %rdx, 0x18(%rsi)
movq %rsi, 0x20(%rdx)
movq 0x18(%rcx), %rdx
movl 0x28(%rcx), %esi
movl %esi, 0x28(%rdx)
movl $0x0, 0x28(%rcx)
movq 0x18(%rdx), %rdx
testq %rdx, %rdx
je 0x1bfce
movl $0x0, 0x28(%rdx)
movq 0x18(%rcx), %rdx
movq 0x10(%rdx), %rsi
movq %rsi, 0x18(%rcx)
testq %rsi, %rsi
je 0x1bfe3
movq %rcx, 0x20(%rsi)
movq 0x20(%rcx), %rdi
movq %rdi, 0x20(%rdx)
movq %rax, %rsi
testq %rdi, %rdi
je 0x1c007
movq 0x20(%rcx), %rdi
leaq 0x10(%rdi), %r8
leaq 0x18(%rdi), %rsi
cmpq 0x10(%rdi), %rcx
cmoveq %r8, %rsi
movq %rdx, (%rsi)
movq %rcx, 0x10(%rdx)
jmp 0x1c0d6
testq %rsi, %rsi
je 0x1c01e
cmpl $0x0, 0x28(%rsi)
jne 0x1c079
movq 0x18(%rdx), %rsi
testq %rsi, %rsi
je 0x1c02e
movl $0x0, 0x28(%rsi)
movl $0x1, 0x28(%rdx)
movq 0x10(%rsi), %rdi
movq %rdi, 0x18(%rdx)
testq %rdi, %rdi
je 0x1c046
movq %rdx, 0x20(%rdi)
movq 0x20(%rdx), %r8
movq %r8, 0x20(%rsi)
movq %rax, %rdi
testq %r8, %r8
je 0x1c06a
movq 0x20(%rdx), %r8
leaq 0x10(%r8), %r9
leaq 0x18(%r8), %rdi
cmpq 0x10(%r8), %rdx
cmoveq %r9, %rdi
movq %rsi, (%rdi)
movq %rdx, 0x10(%rsi)
movq %rsi, 0x20(%rdx)
movq 0x10(%rcx), %rdx
movl 0x28(%rcx), %esi
movl %esi, 0x28(%rdx)
movl $0x0, 0x28(%rcx)
movq 0x10(%rdx), %rdx
testq %rdx, %rdx
je 0x1c096
movl $0x0, 0x28(%rdx)
movq 0x10(%rcx), %rdx
movq 0x18(%rdx), %rsi
movq %rsi, 0x10(%rcx)
testq %rsi, %rsi
je 0x1c0ab
movq %rcx, 0x20(%rsi)
movq 0x20(%rcx), %rdi
movq %rdi, 0x20(%rdx)
movq %rax, %rsi
testq %rdi, %rdi
je 0x1c0cf
movq 0x20(%rcx), %rdi
leaq 0x10(%rdi), %r8
leaq 0x18(%rdi), %rsi
cmpq 0x10(%rdi), %rcx
cmoveq %r8, %rsi
movq %rdx, (%rsi)
movq %rcx, 0x18(%rdx)
movq %rdx, 0x20(%rcx)
movq (%rax), %rsi
testq %rsi, %rsi
je 0x1c0e9
movl $0x0, 0x28(%rsi)
movq 0x8(%r14), %rdi
callq 0xc0c0
movq %r14, %rdi
callq 0xc0c0
testq %r15, %r15
jne 0x1bcc8
movq 0x10(%rbx), %rdi
callq 0xc0c0
movq %rbx, %rdi
popq %rbx
popq %r14
popq %r15
jmp 0xc0c0
retq