// File: /workspace/github_c_makefile_star2_O3/Paxa[P]fast_excel/libxlsxwriter/src/workbook.c
// Function: lxw_workbook_free
void
lxw_workbook_free(lxw_workbook *workbook)
{
    lxw_sheet *sheet;
    struct lxw_worksheet_name *worksheet_name;
    struct lxw_worksheet_name *next_worksheet_name;
    struct lxw_chartsheet_name *chartsheet_name;
    struct lxw_chartsheet_name *next_chartsheet_name;
    struct lxw_image_md5 *image_md5;
    struct lxw_image_md5 *next_image_md5;
    lxw_chart *chart;
    lxw_format *format;
    lxw_defined_name *defined_name;
    lxw_defined_name *defined_name_tmp;
    lxw_custom_property *custom_property;

    if (!workbook)
        return;

    _free_doc_properties(workbook->properties);

    free(workbook->filename);

    /* Free the sheets in the workbook. */
    if (workbook->sheets) {
        while (!STAILQ_EMPTY(workbook->sheets)) {
            sheet = STAILQ_FIRST(workbook->sheets);

            if (sheet->is_chartsheet)
                lxw_chartsheet_free(sheet->u.chartsheet);
            else
                lxw_worksheet_free(sheet->u.worksheet);

            STAILQ_REMOVE_HEAD(workbook->sheets, list_pointers);
            free(sheet);
        }
        free(workbook->sheets);
    }

    /* Free the sheet lists. The worksheet objects are freed above. */
    free(workbook->worksheets);
    free(workbook->chartsheets);

    /* Free the charts in the workbook. */
    if (workbook->charts) {
        while (!STAILQ_EMPTY(workbook->charts)) {
            chart = STAILQ_FIRST(workbook->charts);
            STAILQ_REMOVE_HEAD(workbook->charts, list_pointers);
            lxw_chart_free(chart);
        }
        free(workbook->charts);
    }

    /* Free the formats in the workbook. */
    if (workbook->formats) {
        while (!STAILQ_EMPTY(workbook->formats)) {
            format = STAILQ_FIRST(workbook->formats);
            STAILQ_REMOVE_HEAD(workbook->formats, list_pointers);
            lxw_format_free(format);
        }
        free(workbook->formats);
    }

    /* Free the defined_names in the workbook. */
    if (workbook->defined_names) {
        defined_name = TAILQ_FIRST(workbook->defined_names);
        while (defined_name) {

            defined_name_tmp = TAILQ_NEXT(defined_name, list_pointers);
            free(defined_name);
            defined_name = defined_name_tmp;
        }
        free(workbook->defined_names);
    }

    /* Free the custom_properties in the workbook. */
    if (workbook->custom_properties) {
        while (!STAILQ_EMPTY(workbook->custom_properties)) {
            custom_property = STAILQ_FIRST(workbook->custom_properties);
            STAILQ_REMOVE_HEAD(workbook->custom_properties, list_pointers);
            _free_custom_doc_property(custom_property);
        }
        free(workbook->custom_properties);
    }

    if (workbook->worksheet_names) {
        for (worksheet_name =
             RB_MIN(lxw_worksheet_names, workbook->worksheet_names);
             worksheet_name; worksheet_name = next_worksheet_name) {

            next_worksheet_name = RB_NEXT(lxw_worksheet_names,
                                          workbook->worksheet_name,
                                          worksheet_name);
            RB_REMOVE(lxw_worksheet_names, workbook->worksheet_names,
                      worksheet_name);
            free(worksheet_name);
        }

        free(workbook->worksheet_names);
    }

    if (workbook->chartsheet_names) {
        for (chartsheet_name =
             RB_MIN(lxw_chartsheet_names, workbook->chartsheet_names);
             chartsheet_name; chartsheet_name = next_chartsheet_name) {

            next_chartsheet_name = RB_NEXT(lxw_chartsheet_names,
                                           workbook->chartsheet_name,
                                           chartsheet_name);
            RB_REMOVE(lxw_chartsheet_names, workbook->chartsheet_names,
                      chartsheet_name);
            free(chartsheet_name);
        }

        free(workbook->chartsheet_names);
    }

    if (workbook->image_md5s) {
        for (image_md5 = RB_MIN(lxw_image_md5s, workbook->image_md5s);
             image_md5; image_md5 = next_image_md5) {

            next_image_md5 =
                RB_NEXT(lxw_image_md5s, workbook->image_md5, image_md5);
            RB_REMOVE(lxw_image_md5s, workbook->image_md5s, image_md5);
            free(image_md5->md5);
            free(image_md5);
        }

        free(workbook->image_md5s);
    }

    if (workbook->header_image_md5s) {
        for (image_md5 = RB_MIN(lxw_image_md5s, workbook->header_image_md5s);
             image_md5; image_md5 = next_image_md5) {

            next_image_md5 =
                RB_NEXT(lxw_image_md5s, workbook->image_md5, image_md5);
            RB_REMOVE(lxw_image_md5s, workbook->header_image_md5s, image_md5);
            free(image_md5->md5);
            free(image_md5);
        }

        free(workbook->header_image_md5s);
    }

    if (workbook->background_md5s) {
        for (image_md5 = RB_MIN(lxw_image_md5s, workbook->background_md5s);
             image_md5; image_md5 = next_image_md5) {

            next_image_md5 =
                RB_NEXT(lxw_image_md5s, workbook->image_md5, image_md5);
            RB_REMOVE(lxw_image_md5s, workbook->background_md5s, image_md5);
            free(image_md5->md5);
            free(image_md5);
        }

        free(workbook->background_md5s);
    }

    lxw_hash_free(workbook->used_xf_formats);
    lxw_hash_free(workbook->used_dxf_formats);
    lxw_sst_free(workbook->sst);
    free((void *) workbook->options.tmpdir);
    free(workbook->ordered_charts);
    free(workbook->vba_project);
    free(workbook->vba_project_signature);
    free(workbook->vba_codename);
    free(workbook);
}

// Assembly:
testq %rdi, %rdi
je 0x29b78
pushq %r15
pushq %r14
pushq %rbx
movq %rdi, %rbx
movq 0x70(%rdi), %rdi
callq 0x29b79
movq 0x80(%rbx), %rdi
callq 0xc0c0
movq 0x8(%rbx), %rdi
testq %rdi, %rdi
je 0x28f8b
movq (%rdi), %r14
testq %r14, %r14
je 0x28f86
cmpb $0x0, (%r14)
movq 0x8(%r14), %rdi
je 0x28f5c
callq 0xccf0
jmp 0x28f61
callq 0xcdb0
movq 0x8(%rbx), %rax
movq (%rax), %rcx
movq 0x10(%rcx), %rcx
movq %rcx, (%rax)
testq %rcx, %rcx
jne 0x28f78
movq %rax, 0x8(%rax)
movq %r14, %rdi
callq 0xc0c0
movq 0x8(%rbx), %rdi
jmp 0x28f43
callq 0xc0c0
movq 0x10(%rbx), %rdi
callq 0xc0c0
movq 0x18(%rbx), %rdi
callq 0xc0c0
movq 0x48(%rbx), %rdi
testq %rdi, %rdi
je 0x28fd4
movq (%rdi), %rax
testq %rax, %rax
je 0x28fcf
movq 0x178(%rax), %rcx
movq %rcx, (%rdi)
testq %rcx, %rcx
jne 0x28fc1
movq %rdi, 0x8(%rdi)
movq %rax, %rdi
callq 0xc6e0
movq 0x48(%rbx), %rdi
jmp 0x28fa6
callq 0xc0c0
movq 0x58(%rbx), %rdi
testq %rdi, %rdi
je 0x2900b
movq (%rdi), %rax
testq %rax, %rax
je 0x29006
movq 0x230(%rax), %rcx
movq %rcx, (%rdi)
testq %rcx, %rcx
jne 0x28ff8
movq %rdi, 0x8(%rdi)
movq %rax, %rdi
callq 0xcfd0
movq 0x58(%rbx), %rdi
jmp 0x28fdd
callq 0xc0c0
movq 0x60(%rbx), %rax
testq %rax, %rax
je 0x2903c
movq (%rax), %rdi
testq %rdi, %rdi
je 0x29034
movq 0x288(%rdi), %r14
callq 0xc0c0
movq %r14, %rdi
testq %r14, %r14
jne 0x2901c
movq 0x60(%rbx), %rax
movq %rax, %rdi
callq 0xc0c0
movq 0x78(%rbx), %rdi
testq %rdi, %rdi
je 0x29088
movq (%rdi), %r14
testq %r14, %r14
je 0x29083
movq 0x30(%r14), %rax
movq %rax, (%rdi)
testq %rax, %rax
jne 0x2905d
movq %rdi, 0x8(%rdi)
movq 0x8(%r14), %rdi
callq 0xc0c0
cmpl $0x1, (%r14)
jne 0x29075
movq 0x10(%r14), %rdi
callq 0xc0c0
movq %r14, %rdi
callq 0xc0c0
movq 0x78(%rbx), %rdi
jmp 0x29045
callq 0xc0c0
movq 0x20(%rbx), %rdi
testq %rdi, %rdi
je 0x29544
xorl %eax, %eax
movq %rdi, %rcx
movq %rax, %r14
movq (%rcx), %rax
leaq 0x10(%rax), %rcx
testq %rax, %rax
jne 0x2909a
testq %r14, %r14
je 0x2953f
movq %r14, %rdi
movq 0x18(%r14), %rax
testq %rax, %rax
je 0x29186
movq %rax, %rcx
movq %rcx, %r14
movq 0x10(%rcx), %rcx
testq %rcx, %rcx
jne 0x290c5
movq 0x20(%rbx), %rcx
movq 0x10(%rdi), %r8
testq %r8, %r8
je 0x291af
testq %rax, %rax
je 0x291bf
leaq 0x10(%rdi), %r9
movq %rax, %r8
movq 0x10(%rax), %rax
testq %rax, %rax
jne 0x290ef
movq 0x18(%r8), %rax
movq 0x20(%r8), %rdx
movl 0x28(%r8), %esi
testq %rax, %rax
je 0x29110
movq %rdx, 0x20(%rax)
movq %rcx, %r10
testq %rdx, %rdx
je 0x29128
leaq 0x10(%rdx), %r11
leaq 0x18(%rdx), %r10
cmpq %r8, 0x10(%rdx)
cmoveq %r11, %r10
movq %rax, (%r10)
cmpq %rdi, 0x20(%r8)
cmoveq %r8, %rdx
leaq 0x10(%r8), %r10
movups (%r9), %xmm0
movups 0x10(%r9), %xmm1
movups %xmm1, 0x10(%r10)
movups %xmm0, (%r10)
movq 0x20(%rdi), %r10
movq %rcx, %r9
testq %r10, %r10
je 0x29165
leaq 0x10(%r10), %r11
leaq 0x18(%r10), %r9
cmpq %rdi, 0x10(%r10)
cmoveq %r11, %r9
movq %r8, (%r9)
movq 0x10(%rdi), %r9
movq %r8, 0x20(%r9)
movq 0x18(%rdi), %r9
testq %r9, %r9
je 0x2920a
movq %r8, 0x20(%r9)
jmp 0x2920a
movq 0x20(%rdi), %rdx
testq %rdx, %rdx
je 0x29195
cmpq %rdi, 0x10(%rdx)
je 0x291cd
movq %rdi, %rcx
movq 0x20(%rcx), %r14
testq %r14, %r14
je 0x291c5
cmpq 0x18(%r14), %rcx
movq %r14, %rcx
je 0x29198
jmp 0x290d1
movq 0x20(%rdi), %rdx
movl 0x28(%rdi), %esi
testq %rax, %rax
jne 0x291e7
xorl %eax, %eax
jmp 0x291eb
movq 0x20(%rdi), %rdx
jmp 0x291e1
xorl %r14d, %r14d
jmp 0x290d1
movq 0x20(%rbx), %rcx
movq 0x10(%rdi), %r8
testq %r8, %r8
je 0x2937f
movq %rdx, %r14
movl 0x28(%rdi), %esi
movq %r8, %rax
movq %rdx, 0x20(%rax)
testq %rdx, %rdx
je 0x29202
leaq 0x10(%rdx), %r9
leaq 0x18(%rdx), %r8
cmpq %rdi, 0x10(%rdx)
cmoveq %r9, %r8
jmp 0x29207
xorl %edx, %edx
movq %rcx, %r8
movq %rax, (%r8)
testl %esi, %esi
jne 0x2952d
jmp 0x2921f
movl $0x1, 0x28(%rdx)
movq 0x20(%rax), %rdx
movq %rax, %r9
movq %rdx, %rax
testq %r9, %r9
je 0x29235
cmpl $0x0, 0x28(%r9)
jne 0x29525
movq (%rcx), %rsi
cmpq %rsi, %r9
je 0x29520
movq 0x10(%rax), %rdx
cmpq %r9, %rdx
je 0x2928c
cmpl $0x1, 0x28(%rdx)
jne 0x292f1
movl $0x0, 0x28(%rdx)
movl $0x1, 0x28(%rax)
movq 0x18(%rdx), %r8
movq %r8, 0x10(%rax)
testq %r8, %r8
je 0x29273
movq %rax, 0x20(%r8)
movq 0x20(%rax), %r9
movq %r9, 0x20(%rdx)
testq %r9, %r9
je 0x292d6
cmpq 0x10(%r9), %rax
je 0x292de
movq %rdx, 0x18(%r9)
jmp 0x292e6
movq 0x18(%rax), %rdx
cmpl $0x1, 0x28(%rdx)
jne 0x29332
movl $0x0, 0x28(%rdx)
movl $0x1, 0x28(%rax)
movq 0x10(%rdx), %r8
movq %r8, 0x18(%rax)
testq %r8, %r8
je 0x292b9
movq %rax, 0x20(%r8)
movq 0x20(%rax), %r9
movq %r9, 0x20(%rdx)
testq %r9, %r9
je 0x2931b
cmpq 0x10(%r9), %rax
je 0x29323
movq %rdx, 0x18(%r9)
movq 0x18(%rax), %r8
jmp 0x29327
movq %rdx, (%rcx)
movq %rdx, %rsi
jmp 0x292e6
movq %rdx, 0x10(%r9)
movq 0x10(%rax), %r8
movq %rax, 0x18(%rdx)
movq %rdx, 0x20(%rax)
movq %r8, %rdx
movq 0x10(%rdx), %r10
testq %r10, %r10
je 0x29301
cmpl $0x0, 0x28(%r10)
jne 0x29368
movq 0x18(%rdx), %r9
testq %r9, %r9
je 0x29214
cmpl $0x0, 0x28(%r9)
je 0x29214
jmp 0x2935c
movq %rdx, (%rcx)
movq %rdx, %rsi
jmp 0x29327
movq %rdx, 0x10(%r9)
movq %rax, 0x10(%rdx)
movq %rdx, 0x20(%rax)
movq %r8, %rdx
movq 0x10(%rdx), %r9
testq %r9, %r9
je 0x29342
cmpl $0x0, 0x28(%r9)
jne 0x2938c
movq 0x18(%rdx), %r10
testq %r10, %r10
je 0x29214
cmpl $0x0, 0x28(%r10)
je 0x29214
jmp 0x293a4
testq %r10, %r10
je 0x293bb
cmpl $0x0, 0x28(%r10)
je 0x293bb
movl 0x28(%rax), %r8d
movl %r8d, 0x28(%rdx)
movl $0x0, 0x28(%rax)
movq %rsi, %r8
jmp 0x29426
movl 0x28(%rdi), %esi
xorl %eax, %eax
movq %rdx, %r14
jmp 0x291f0
movq 0x18(%rdx), %r10
testq %r10, %r10
je 0x2946e
cmpl $0x0, 0x28(%r10)
je 0x2946e
movl 0x28(%rax), %r8d
movl %r8d, 0x28(%rdx)
movl $0x0, 0x28(%rax)
movq %rsi, %r8
jmp 0x294d9
movl $0x0, 0x28(%r9)
movl $0x1, 0x28(%rdx)
movq 0x10(%r9), %r8
movq %r8, 0x18(%rdx)
testq %r8, %r8
je 0x293db
movq %rdx, 0x20(%r8)
movq 0x20(%rdx), %r11
movq %r11, 0x20(%r9)
movq %rcx, %r10
movq %r9, %r8
testq %r11, %r11
je 0x29401
leaq 0x10(%r11), %r8
cmpq 0x10(%r11), %rdx
leaq 0x18(%r11), %r10
cmoveq %r8, %r10
movq %rsi, %r8
movq %r9, (%r10)
movq %rdx, 0x10(%r9)
movq %r9, 0x20(%rdx)
movq 0x10(%rax), %rdx
movq 0x10(%rdx), %r10
movl 0x28(%rax), %esi
movl %esi, 0x28(%rdx)
movl $0x0, 0x28(%rax)
testq %r10, %r10
je 0x2942e
movl $0x0, 0x28(%r10)
movq 0x18(%rdx), %rsi
movq %rsi, 0x10(%rax)
testq %rsi, %rsi
je 0x2943f
movq %rax, 0x20(%rsi)
movq 0x20(%rax), %rsi
movq %rsi, 0x20(%rdx)
movq %rdx, %r9
testq %rsi, %rsi
je 0x29462
leaq 0x10(%rsi), %r9
cmpq 0x10(%rsi), %rax
leaq 0x18(%rsi), %rcx
cmoveq %r9, %rcx
movq %r8, %r9
movq %rdx, (%rcx)
movq %rax, 0x18(%rdx)
jmp 0x2951c
movl $0x0, 0x28(%r9)
movl $0x1, 0x28(%rdx)
movq 0x18(%r9), %r8
movq %r8, 0x10(%rdx)
testq %r8, %r8
je 0x2948e
movq %rdx, 0x20(%r8)
movq 0x20(%rdx), %r11
movq %r11, 0x20(%r9)
movq %rcx, %r10
movq %r9, %r8
testq %r11, %r11
je 0x294b4
leaq 0x10(%r11), %r8
cmpq 0x10(%r11), %rdx
leaq 0x18(%r11), %r10
cmoveq %r8, %r10
movq %rsi, %r8
movq %r9, (%r10)
movq %rdx, 0x18(%r9)
movq %r9, 0x20(%rdx)
movq 0x18(%rax), %rdx
movq 0x18(%rdx), %r10
movl 0x28(%rax), %esi
movl %esi, 0x28(%rdx)
movl $0x0, 0x28(%rax)
testq %r10, %r10
je 0x294e1
movl $0x0, 0x28(%r10)
movq 0x10(%rdx), %rsi
movq %rsi, 0x18(%rax)
testq %rsi, %rsi
je 0x294f2
movq %rax, 0x20(%rsi)
movq 0x20(%rax), %rsi
movq %rsi, 0x20(%rdx)
movq %rdx, %r9
testq %rsi, %rsi
je 0x29515
leaq 0x10(%rsi), %r9
cmpq 0x10(%rsi), %rax
leaq 0x18(%rsi), %rcx
cmoveq %r9, %rcx
movq %r8, %r9
movq %rdx, (%rcx)
movq %rax, 0x10(%rdx)
movq %rdx, 0x20(%rax)
testq %r9, %r9
je 0x2952d
movl $0x0, 0x28(%r9)
callq 0xc0c0
testq %r14, %r14
jne 0x290b2
movq 0x20(%rbx), %rdi
callq 0xc0c0
movq 0x28(%rbx), %rdi
testq %rdi, %rdi
je 0x29a00
xorl %eax, %eax
movq %rdi, %rcx
movq %rax, %r14
movq (%rcx), %rax
leaq 0x10(%rax), %rcx
testq %rax, %rax
jne 0x29556
testq %r14, %r14
je 0x299fb
movq %r14, %rdi
movq 0x18(%r14), %rax
testq %rax, %rax
je 0x29642
movq %rax, %rcx
movq %rcx, %r14
movq 0x10(%rcx), %rcx
testq %rcx, %rcx
jne 0x29581
movq 0x28(%rbx), %rcx
movq 0x10(%rdi), %r8
testq %r8, %r8
je 0x2966b
testq %rax, %rax
je 0x2967b
leaq 0x10(%rdi), %r9
movq %rax, %r8
movq 0x10(%rax), %rax
testq %rax, %rax
jne 0x295ab
movq 0x18(%r8), %rax
movq 0x20(%r8), %rdx
movl 0x28(%r8), %esi
testq %rax, %rax
je 0x295cc
movq %rdx, 0x20(%rax)
movq %rcx, %r10
testq %rdx, %rdx
je 0x295e4
leaq 0x10(%rdx), %r11
leaq 0x18(%rdx), %r10
cmpq %r8, 0x10(%rdx)
cmoveq %r11, %r10
movq %rax, (%r10)
cmpq %rdi, 0x20(%r8)
cmoveq %r8, %rdx
leaq 0x10(%r8), %r10
movups (%r9), %xmm0
movups 0x10(%r9), %xmm1
movups %xmm1, 0x10(%r10)
movups %xmm0, (%r10)
movq 0x20(%rdi), %r10
movq %rcx, %r9
testq %r10, %r10
je 0x29621
leaq 0x10(%r10), %r11
leaq 0x18(%r10), %r9
cmpq %rdi, 0x10(%r10)
cmoveq %r11, %r9
movq %r8, (%r9)
movq 0x10(%rdi), %r9
movq %r8, 0x20(%r9)
movq 0x18(%rdi), %r9
testq %r9, %r9
je 0x296c6
movq %r8, 0x20(%r9)
jmp 0x296c6
movq 0x20(%rdi), %rdx
testq %rdx, %rdx
je 0x29651
cmpq %rdi, 0x10(%rdx)
je 0x29689
movq %rdi, %rcx
movq 0x20(%rcx), %r14
testq %r14, %r14
je 0x29681
cmpq 0x18(%r14), %rcx
movq %r14, %rcx
je 0x29654
jmp 0x2958d
movq 0x20(%rdi), %rdx
movl 0x28(%rdi), %esi
testq %rax, %rax
jne 0x296a3
xorl %eax, %eax
jmp 0x296a7
movq 0x20(%rdi), %rdx
jmp 0x2969d
xorl %r14d, %r14d
jmp 0x2958d
movq 0x28(%rbx), %rcx
movq 0x10(%rdi), %r8
testq %r8, %r8
je 0x2983b
movq %rdx, %r14
movl 0x28(%rdi), %esi
movq %r8, %rax
movq %rdx, 0x20(%rax)
testq %rdx, %rdx
je 0x296be
leaq 0x10(%rdx), %r9
leaq 0x18(%rdx), %r8
cmpq %rdi, 0x10(%rdx)
cmoveq %r9, %r8
jmp 0x296c3
xorl %edx, %edx
movq %rcx, %r8
movq %rax, (%r8)
testl %esi, %esi
jne 0x299e9
jmp 0x296db
movl $0x1, 0x28(%rdx)
movq 0x20(%rax), %rdx
movq %rax, %r9
movq %rdx, %rax
testq %r9, %r9
je 0x296f1
cmpl $0x0, 0x28(%r9)
jne 0x299e1
movq (%rcx), %rsi
cmpq %rsi, %r9
je 0x299dc
movq 0x10(%rax), %rdx
cmpq %r9, %rdx
je 0x29748
cmpl $0x1, 0x28(%rdx)
jne 0x297ad
movl $0x0, 0x28(%rdx)
movl $0x1, 0x28(%rax)
movq 0x18(%rdx), %r8
movq %r8, 0x10(%rax)
testq %r8, %r8
je 0x2972f
movq %rax, 0x20(%r8)
movq 0x20(%rax), %r9
movq %r9, 0x20(%rdx)
testq %r9, %r9
je 0x29792
cmpq 0x10(%r9), %rax
je 0x2979a
movq %rdx, 0x18(%r9)
jmp 0x297a2
movq 0x18(%rax), %rdx
cmpl $0x1, 0x28(%rdx)
jne 0x297ee
movl $0x0, 0x28(%rdx)
movl $0x1, 0x28(%rax)
movq 0x10(%rdx), %r8
movq %r8, 0x18(%rax)
testq %r8, %r8
je 0x29775
movq %rax, 0x20(%r8)
movq 0x20(%rax), %r9
movq %r9, 0x20(%rdx)
testq %r9, %r9
je 0x297d7
cmpq 0x10(%r9), %rax
je 0x297df
movq %rdx, 0x18(%r9)
movq 0x18(%rax), %r8
jmp 0x297e3
movq %rdx, (%rcx)
movq %rdx, %rsi
jmp 0x297a2
movq %rdx, 0x10(%r9)
movq 0x10(%rax), %r8
movq %rax, 0x18(%rdx)
movq %rdx, 0x20(%rax)
movq %r8, %rdx
movq 0x10(%rdx), %r10
testq %r10, %r10
je 0x297bd
cmpl $0x0, 0x28(%r10)
jne 0x29824
movq 0x18(%rdx), %r9
testq %r9, %r9
je 0x296d0
cmpl $0x0, 0x28(%r9)
je 0x296d0
jmp 0x29818
movq %rdx, (%rcx)
movq %rdx, %rsi
jmp 0x297e3
movq %rdx, 0x10(%r9)
movq %rax, 0x10(%rdx)
movq %rdx, 0x20(%rax)
movq %r8, %rdx
movq 0x10(%rdx), %r9
testq %r9, %r9
je 0x297fe
cmpl $0x0, 0x28(%r9)
jne 0x29848
movq 0x18(%rdx), %r10
testq %r10, %r10
je 0x296d0
cmpl $0x0, 0x28(%r10)
je 0x296d0
jmp 0x29860
testq %r10, %r10
je 0x29877
cmpl $0x0, 0x28(%r10)
je 0x29877
movl 0x28(%rax), %r8d
movl %r8d, 0x28(%rdx)
movl $0x0, 0x28(%rax)
movq %rsi, %r8
jmp 0x298e2
movl 0x28(%rdi), %esi
xorl %eax, %eax
movq %rdx, %r14
jmp 0x296ac
movq 0x18(%rdx), %r10
testq %r10, %r10
je 0x2992a
cmpl $0x0, 0x28(%r10)
je 0x2992a
movl 0x28(%rax), %r8d
movl %r8d, 0x28(%rdx)
movl $0x0, 0x28(%rax)
movq %rsi, %r8
jmp 0x29995
movl $0x0, 0x28(%r9)
movl $0x1, 0x28(%rdx)
movq 0x10(%r9), %r8
movq %r8, 0x18(%rdx)
testq %r8, %r8
je 0x29897
movq %rdx, 0x20(%r8)
movq 0x20(%rdx), %r11
movq %r11, 0x20(%r9)
movq %rcx, %r10
movq %r9, %r8
testq %r11, %r11
je 0x298bd
leaq 0x10(%r11), %r8
cmpq 0x10(%r11), %rdx
leaq 0x18(%r11), %r10
cmoveq %r8, %r10
movq %rsi, %r8
movq %r9, (%r10)
movq %rdx, 0x10(%r9)
movq %r9, 0x20(%rdx)
movq 0x10(%rax), %rdx
movq 0x10(%rdx), %r10
movl 0x28(%rax), %esi
movl %esi, 0x28(%rdx)
movl $0x0, 0x28(%rax)
testq %r10, %r10
je 0x298ea
movl $0x0, 0x28(%r10)
movq 0x18(%rdx), %rsi
movq %rsi, 0x10(%rax)
testq %rsi, %rsi
je 0x298fb
movq %rax, 0x20(%rsi)
movq 0x20(%rax), %rsi
movq %rsi, 0x20(%rdx)
movq %rdx, %r9
testq %rsi, %rsi
je 0x2991e
leaq 0x10(%rsi), %r9
cmpq 0x10(%rsi), %rax
leaq 0x18(%rsi), %rcx
cmoveq %r9, %rcx
movq %r8, %r9
movq %rdx, (%rcx)
movq %rax, 0x18(%rdx)
jmp 0x299d8
movl $0x0, 0x28(%r9)
movl $0x1, 0x28(%rdx)
movq 0x18(%r9), %r8
movq %r8, 0x10(%rdx)
testq %r8, %r8
je 0x2994a
movq %rdx, 0x20(%r8)
movq 0x20(%rdx), %r11
movq %r11, 0x20(%r9)
movq %rcx, %r10
movq %r9, %r8
testq %r11, %r11
je 0x29970
leaq 0x10(%r11), %r8
cmpq 0x10(%r11), %rdx
leaq 0x18(%r11), %r10
cmoveq %r8, %r10
movq %rsi, %r8
movq %r9, (%r10)
movq %rdx, 0x18(%r9)
movq %r9, 0x20(%rdx)
movq 0x18(%rax), %rdx
movq 0x18(%rdx), %r10
movl 0x28(%rax), %esi
movl %esi, 0x28(%rdx)
movl $0x0, 0x28(%rax)
testq %r10, %r10
je 0x2999d
movl $0x0, 0x28(%r10)
movq 0x10(%rdx), %rsi
movq %rsi, 0x18(%rax)
testq %rsi, %rsi
je 0x299ae
movq %rax, 0x20(%rsi)
movq 0x20(%rax), %rsi
movq %rsi, 0x20(%rdx)
movq %rdx, %r9
testq %rsi, %rsi
je 0x299d1
leaq 0x10(%rsi), %r9
cmpq 0x10(%rsi), %rax
leaq 0x18(%rsi), %rcx
cmoveq %r9, %rcx
movq %r8, %r9
movq %rdx, (%rcx)
movq %rax, 0x10(%rdx)
movq %rdx, 0x20(%rax)
testq %r9, %r9
je 0x299e9
movl $0x0, 0x28(%r9)
callq 0xc0c0
testq %r14, %r14
jne 0x2956e
movq 0x28(%rbx), %rdi
callq 0xc0c0
movq 0x30(%rbx), %rdi
testq %rdi, %rdi
je 0x29a5b
xorl %eax, %eax
movq %rdi, %rcx
movq %rax, %r14
movq (%rcx), %rax
leaq 0x10(%rax), %rcx
testq %rax, %rax
jne 0x29a0e
testq %r14, %r14
je 0x29a56
movq %r14, %rdi
callq 0x29be4
movq %rax, %r15
movq 0x30(%rbx), %rdi
movq %r14, %rsi
callq 0x29c20
movq 0x8(%r14), %rdi
callq 0xc0c0
movq %r14, %rdi
callq 0xc0c0
movq %r15, %r14
testq %r15, %r15
jne 0x29a22
movq 0x30(%rbx), %rdi
callq 0xc0c0
movq 0x38(%rbx), %rdi
testq %rdi, %rdi
je 0x29ab6
xorl %eax, %eax
movq %rdi, %rcx
movq %rax, %r14
movq (%rcx), %rax
leaq 0x10(%rax), %rcx
testq %rax, %rax
jne 0x29a69
testq %r14, %r14
je 0x29ab1
movq %r14, %rdi
callq 0x29be4
movq %rax, %r15
movq 0x38(%rbx), %rdi
movq %r14, %rsi
callq 0x29c20
movq 0x8(%r14), %rdi
callq 0xc0c0
movq %r14, %rdi
callq 0xc0c0
movq %r15, %r14
testq %r15, %r15
jne 0x29a7d
movq 0x38(%rbx), %rdi
callq 0xc0c0
movq 0x40(%rbx), %rdi
testq %rdi, %rdi
je 0x29b11
xorl %eax, %eax
movq %rdi, %rcx
movq %rax, %r14
movq (%rcx), %rax
leaq 0x10(%rax), %rcx
testq %rax, %rax
jne 0x29ac4
testq %r14, %r14
je 0x29b0c
movq %r14, %rdi
callq 0x29be4
movq %rax, %r15
movq 0x40(%rbx), %rdi
movq %r14, %rsi
callq 0x29c20
movq 0x8(%r14), %rdi
callq 0xc0c0
movq %r14, %rdi
callq 0xc0c0
movq %r15, %r14
testq %r15, %r15
jne 0x29ad8
movq 0x40(%rbx), %rdi
callq 0xc0c0
movq 0xd8(%rbx), %rdi
callq 0xd030
movq 0xe0(%rbx), %rdi
callq 0xd030
movq 0x68(%rbx), %rdi
callq 0xd090
movq 0x90(%rbx), %rdi
callq 0xc0c0
movq 0x50(%rbx), %rdi
callq 0xc0c0
movq 0xe8(%rbx), %rdi
callq 0xc0c0
movq 0xf0(%rbx), %rdi
callq 0xc0c0
movq 0xf8(%rbx), %rdi
callq 0xc0c0
movq %rbx, %rdi
popq %rbx
popq %r14
popq %r15
jmp 0xc0c0
retq