// File: /workspace/github_c_makefile_star2_O2/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 0x1932a
pushq %r15
pushq %r14
pushq %rbx
movq %rdi, %rbx
movq 0x10(%rdi), %rax
testq %rax, %rax
je 0x1931d
xorl %ecx, %ecx
movq %rcx, %r14
movq (%rax), %rcx
leaq 0x10(%rcx), %rax
testq %rcx, %rcx
jne 0x18eaf
jmp 0x1930b
movq 0x18(%r14), %rax
testq %rax, %rax
je 0x18f93
movq %rax, %rcx
movq %rcx, %r15
movq 0x10(%rcx), %rcx
testq %rcx, %rcx
jne 0x18ed3
movq 0x10(%rbx), %rcx
movq 0x10(%r14), %rdi
testq %rdi, %rdi
je 0x18fbc
testq %rax, %rax
je 0x18fcd
leaq 0x10(%r14), %r8
movq %rax, %rdi
movq 0x10(%rax), %rax
testq %rax, %rax
jne 0x18efd
movq 0x18(%rdi), %rax
movq 0x20(%rdi), %rdx
movl 0x28(%rdi), %esi
testq %rax, %rax
je 0x18f1d
movq %rdx, 0x20(%rax)
movq %rcx, %r9
testq %rdx, %rdx
je 0x18f35
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 0x18f72
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 0x19019
movq %rdi, 0x20(%r8)
jmp 0x19019
movq 0x20(%r14), %rdx
testq %rdx, %rdx
je 0x18fa2
cmpq %r14, 0x10(%rdx)
je 0x18fdb
movq %r14, %rcx
movq 0x20(%rcx), %r15
testq %r15, %r15
je 0x18fd3
cmpq 0x18(%r15), %rcx
movq %r15, %rcx
je 0x18fa5
jmp 0x18edf
movq 0x20(%r14), %rdx
movl 0x28(%r14), %esi
testq %rax, %rax
jne 0x18ff6
xorl %eax, %eax
jmp 0x18ffa
movq 0x20(%r14), %rdx
jmp 0x18fef
xorl %r15d, %r15d
jmp 0x18edf
movq 0x10(%rbx), %rcx
movq 0x10(%r14), %rdi
testq %rdi, %rdi
je 0x19225
movq %rdx, %r15
movl 0x28(%r14), %esi
movq %rdi, %rax
movq %rdx, 0x20(%rax)
testq %rdx, %rdx
je 0x19011
leaq 0x10(%rdx), %r8
leaq 0x18(%rdx), %rdi
cmpq %r14, 0x10(%rdx)
cmoveq %r8, %rdi
jmp 0x19016
xorl %edx, %edx
movq %rcx, %rdi
movq %rax, (%rdi)
testl %esi, %esi
jne 0x192f7
jmp 0x1902e
movl $0x1, 0x28(%rdx)
movq 0x20(%rax), %rdx
movq %rax, %rdi
movq %rdx, %rax
testq %rdi, %rdi
je 0x19043
cmpl $0x0, 0x28(%rdi)
jne 0x192f3
movq (%rcx), %rsi
cmpq %rsi, %rdi
je 0x192ee
movq 0x10(%rax), %rdx
cmpq %rdi, %rdx
je 0x19097
cmpl $0x1, 0x28(%rdx)
jne 0x190f9
andl $0x0, 0x28(%rdx)
movl $0x1, 0x28(%rax)
movq 0x18(%rdx), %rdi
movq %rdi, 0x10(%rax)
testq %rdi, %rdi
je 0x1907e
movq %rax, 0x20(%rdi)
movq 0x20(%rax), %r8
movq %r8, 0x20(%rdx)
testq %r8, %r8
je 0x190de
cmpq 0x10(%r8), %rax
je 0x190e6
movq %rdx, 0x18(%r8)
jmp 0x190ee
movq 0x18(%rax), %rdx
cmpl $0x1, 0x28(%rdx)
jne 0x1913d
andl $0x0, 0x28(%rdx)
movl $0x1, 0x28(%rax)
movq 0x10(%rdx), %rdi
movq %rdi, 0x18(%rax)
testq %rdi, %rdi
je 0x190c1
movq %rax, 0x20(%rdi)
movq 0x20(%rax), %r8
movq %r8, 0x20(%rdx)
testq %r8, %r8
je 0x19126
cmpq 0x10(%r8), %rax
je 0x1912e
movq %rdx, 0x18(%r8)
movq 0x18(%rax), %rdi
jmp 0x19132
movq %rdx, (%rcx)
movq %rdx, %rsi
jmp 0x190ee
movq %rdx, 0x10(%r8)
movq 0x10(%rax), %rdi
movq %rax, 0x18(%rdx)
movq %rdx, 0x20(%rax)
movq %rdi, %rdx
movq 0x10(%rdx), %r8
testq %r8, %r8
je 0x1910d
cmpl $0x0, 0x28(%r8)
jne 0x191d1
movq 0x18(%rdx), %rdi
testq %rdi, %rdi
je 0x19023
cmpl $0x0, 0x28(%rdi)
je 0x19023
jmp 0x1916d
movq %rdx, (%rcx)
movq %rdx, %rsi
jmp 0x19132
movq %rdx, 0x10(%r8)
movq %rax, 0x10(%rdx)
movq %rdx, 0x20(%rax)
movq %rdi, %rdx
movq 0x10(%rdx), %rdi
testq %rdi, %rdi
je 0x19150
cmpl $0x0, 0x28(%rdi)
jne 0x19233
movq 0x18(%rdx), %r8
testq %r8, %r8
je 0x19023
cmpl $0x0, 0x28(%r8)
je 0x19023
jmp 0x1929b
testq %r8, %r8
je 0x19179
cmpl $0x0, 0x28(%r8)
jne 0x191d1
andl $0x0, 0x28(%rdi)
movl $0x1, 0x28(%rdx)
movq 0x10(%rdi), %r8
movq %r8, 0x18(%rdx)
testq %r8, %r8
je 0x19195
movq %rdx, 0x20(%r8)
movq 0x20(%rdx), %r10
movq %r10, 0x20(%rdi)
movq %rcx, %r8
movq %rdi, %r9
testq %r10, %r10
je 0x191bb
leaq 0x10(%r10), %r9
cmpq 0x10(%r10), %rdx
leaq 0x18(%r10), %r8
cmoveq %r9, %r8
movq %rsi, %r9
movq %rdi, (%r8)
movq %rdx, 0x10(%rdi)
movq %rdi, 0x20(%rdx)
movq 0x10(%rax), %rdx
movq 0x10(%rdx), %r8
movq %r9, %rsi
movl 0x28(%rax), %edi
movl %edi, 0x28(%rdx)
andl $0x0, 0x28(%rax)
testq %r8, %r8
je 0x191e5
andl $0x0, 0x28(%r8)
movq 0x18(%rdx), %rdi
movq %rdi, 0x10(%rax)
testq %rdi, %rdi
je 0x191f6
movq %rax, 0x20(%rdi)
movq 0x20(%rax), %r8
movq %r8, 0x20(%rdx)
movq %rdx, %rdi
testq %r8, %r8
je 0x19219
leaq 0x10(%r8), %rdi
cmpq 0x10(%r8), %rax
leaq 0x18(%r8), %rcx
cmoveq %rdi, %rcx
movq %rsi, %rdi
movq %rdx, (%rcx)
movq %rax, 0x18(%rdx)
jmp 0x192ea
movl 0x28(%r14), %esi
xorl %eax, %eax
movq %rdx, %r15
jmp 0x18fff
movq 0x18(%rdx), %r8
testq %r8, %r8
je 0x19243
cmpl $0x0, 0x28(%r8)
jne 0x1929b
andl $0x0, 0x28(%rdi)
movl $0x1, 0x28(%rdx)
movq 0x18(%rdi), %r8
movq %r8, 0x10(%rdx)
testq %r8, %r8
je 0x1925f
movq %rdx, 0x20(%r8)
movq 0x20(%rdx), %r10
movq %r10, 0x20(%rdi)
movq %rcx, %r8
movq %rdi, %r9
testq %r10, %r10
je 0x19285
leaq 0x10(%r10), %r9
cmpq 0x10(%r10), %rdx
leaq 0x18(%r10), %r8
cmoveq %r9, %r8
movq %rsi, %r9
movq %rdi, (%r8)
movq %rdx, 0x18(%rdi)
movq %rdi, 0x20(%rdx)
movq 0x18(%rax), %rdx
movq 0x18(%rdx), %r8
movq %r9, %rsi
movl 0x28(%rax), %edi
movl %edi, 0x28(%rdx)
andl $0x0, 0x28(%rax)
testq %r8, %r8
je 0x192af
andl $0x0, 0x28(%r8)
movq 0x10(%rdx), %rdi
movq %rdi, 0x18(%rax)
testq %rdi, %rdi
je 0x192c0
movq %rax, 0x20(%rdi)
movq 0x20(%rax), %r8
movq %r8, 0x20(%rdx)
movq %rdx, %rdi
testq %r8, %r8
je 0x192e3
leaq 0x10(%r8), %rdi
cmpq 0x10(%r8), %rax
leaq 0x18(%r8), %rcx
cmoveq %rdi, %rcx
movq %rsi, %rdi
movq %rdx, (%rcx)
movq %rax, 0x10(%rdx)
movq %rdx, 0x20(%rax)
testq %rdi, %rdi
je 0x192f7
andl $0x0, 0x28(%rdi)
movq 0x8(%r14), %rdi
callq 0xc0d0
movq %r14, %rdi
callq 0xc0d0
movq %r15, %r14
testq %r14, %r14
jne 0x18ec3
movq 0x10(%rbx), %rdi
callq 0xc0d0
movq %rbx, %rdi
popq %rbx
popq %r14
popq %r15
jmp 0xc0d0
retq