// File: /workspace/github_c_makefile_star2_O1/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 0x29a78
pushq %r15
pushq %r14
pushq %rbx
movq %rdi, %rbx
movq 0x70(%rdi), %rdi
callq 0x29a79
movq 0x80(%rbx), %rdi
callq 0xc0c0
cmpq $0x0, 0x8(%rbx)
je 0x28f59
movq 0x8(%rbx), %rdi
movq (%rdi), %r14
testq %r14, %r14
je 0x28f54
cmpb $0x0, (%r14)
movq 0x8(%r14), %rdi
je 0x28f2e
callq 0xccf0
jmp 0x28f33
callq 0xcdb0
movq 0x8(%rbx), %rax
movq (%rax), %rcx
movq 0x10(%rcx), %rcx
movq %rcx, (%rax)
testq %rcx, %rcx
jne 0x28f4a
movq %rax, 0x8(%rax)
movq %r14, %rdi
callq 0xc0c0
jmp 0x28f11
callq 0xc0c0
movq 0x10(%rbx), %rdi
callq 0xc0c0
movq 0x18(%rbx), %rdi
callq 0xc0c0
cmpq $0x0, 0x48(%rbx)
je 0x28fa0
movq 0x48(%rbx), %rdi
movq (%rdi), %rax
testq %rax, %rax
je 0x28f9b
movq 0x178(%rax), %rcx
movq %rcx, (%rdi)
testq %rcx, %rcx
jne 0x28f91
movq %rdi, 0x8(%rdi)
movq %rax, %rdi
callq 0xc6e0
jmp 0x28f72
callq 0xc0c0
cmpq $0x0, 0x58(%rbx)
je 0x28fd5
movq 0x58(%rbx), %rdi
movq (%rdi), %rax
testq %rax, %rax
je 0x28fd0
movq 0x230(%rax), %rcx
movq %rcx, (%rdi)
testq %rcx, %rcx
jne 0x28fc6
movq %rdi, 0x8(%rdi)
movq %rax, %rdi
callq 0xcfd0
jmp 0x28fa7
callq 0xc0c0
movq 0x60(%rbx), %rax
testq %rax, %rax
je 0x29003
movq (%rax), %rdi
testq %rdi, %rdi
je 0x28ffa
movq 0x288(%rdi), %r14
callq 0xc0c0
movq %r14, %rdi
testq %r14, %r14
jne 0x28fe6
movq 0x60(%rbx), %rdi
callq 0xc0c0
cmpq $0x0, 0x78(%rbx)
je 0x2904d
movq 0x78(%rbx), %rdi
movq (%rdi), %r14
testq %r14, %r14
je 0x29048
movq 0x30(%r14), %rax
movq %rax, (%rdi)
testq %rax, %rax
jne 0x29026
movq %rdi, 0x8(%rdi)
movq 0x8(%r14), %rdi
callq 0xc0c0
cmpl $0x1, (%r14)
jne 0x2903e
movq 0x10(%r14), %rdi
callq 0xc0c0
movq %r14, %rdi
callq 0xc0c0
jmp 0x2900a
callq 0xc0c0
movq 0x20(%rbx), %rax
testq %rax, %rax
je 0x294ab
xorl %ecx, %ecx
movq %rcx, %r14
movq (%rax), %rcx
leaq 0x10(%rcx), %rax
testq %rcx, %rcx
jne 0x2905c
jmp 0x29499
movq %r14, %rdi
movq 0x18(%r14), %rdx
testq %rdx, %rdx
je 0x2916e
movq %rdx, %rax
movq %rax, %r14
movq 0x10(%rax), %rax
testq %rax, %rax
jne 0x29083
testq %rdx, %rdx
sete %sil
movq 0x20(%rbx), %rax
movq 0x10(%rdi), %rcx
testq %rcx, %rcx
sete %r8b
cmoveq %rdx, %rcx
orb %sil, %r8b
je 0x290da
movq 0x20(%rdi), %rdx
movl 0x28(%rdi), %esi
testq %rcx, %rcx
je 0x290be
movq %rdx, 0x20(%rcx)
testq %rdx, %rdx
je 0x2919f
cmpq %rdi, 0x10(%rdx)
je 0x291a6
movq %rcx, 0x18(%rdx)
jmp 0x291aa
leaq 0x10(%rdi), %r9
movq %rdx, %r8
movq 0x10(%rdx), %rdx
testq %rdx, %rdx
jne 0x290de
movq 0x18(%r8), %rcx
movq 0x20(%r8), %rdx
movl 0x28(%r8), %esi
testq %rcx, %rcx
je 0x290ff
movq %rdx, 0x20(%rcx)
movq %rax, %r10
testq %rdx, %rdx
je 0x29117
leaq 0x10(%rdx), %r11
leaq 0x18(%rdx), %r10
cmpq %r8, 0x10(%rdx)
cmoveq %r11, %r10
movq %rcx, (%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 %rax, %r9
testq %r10, %r10
je 0x29154
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 0x291aa
movq %r8, 0x20(%r9)
jmp 0x291aa
movq 0x20(%rdi), %r14
testq %r14, %r14
je 0x29181
cmpq %rdi, 0x10(%r14)
je 0x2908f
movq %rdi, %rax
movq 0x20(%rax), %r14
testq %r14, %r14
je 0x2908f
cmpq 0x18(%r14), %rax
movq %r14, %rax
je 0x29184
jmp 0x2908f
movq %rcx, (%rax)
xorl %edx, %edx
jmp 0x291aa
movq %rcx, 0x10(%rdx)
testl %esi, %esi
jne 0x29494
jmp 0x291bf
movl $0x1, 0x28(%rdx)
movq 0x20(%rcx), %rdx
movq %rcx, %rsi
movq %rdx, %rcx
testq %rsi, %rsi
je 0x291d4
cmpl $0x0, 0x28(%rsi)
jne 0x29488
cmpq (%rax), %rsi
je 0x29488
movq 0x10(%rcx), %rdx
cmpq %rsi, %rdx
je 0x29272
cmpl $0x1, 0x28(%rdx)
jne 0x29242
movl $0x0, 0x28(%rdx)
movl $0x1, 0x28(%rcx)
movq 0x18(%rdx), %rsi
movq %rsi, 0x10(%rcx)
testq %rsi, %rsi
je 0x2920f
movq %rcx, 0x20(%rsi)
movq 0x20(%rcx), %r8
movq %r8, 0x20(%rdx)
movq %rax, %rsi
testq %r8, %r8
je 0x29233
movq 0x20(%rcx), %r8
leaq 0x10(%r8), %r9
leaq 0x18(%r8), %rsi
cmpq 0x10(%r8), %rcx
cmoveq %r9, %rsi
movq %rdx, (%rsi)
movq %rcx, 0x18(%rdx)
movq %rdx, 0x20(%rcx)
movq 0x10(%rcx), %rdx
movq 0x10(%rdx), %rsi
testq %rsi, %rsi
je 0x29255
cmpl $0x0, 0x28(%rsi)
jne 0x293be
movq 0x18(%rdx), %r8
testq %r8, %r8
je 0x291b4
cmpl $0x0, 0x28(%r8)
je 0x291b4
jmp 0x293be
movq 0x18(%rcx), %rdx
cmpl $0x1, 0x28(%rdx)
jne 0x292ce
movl $0x0, 0x28(%rdx)
movl $0x1, 0x28(%rcx)
movq 0x10(%rdx), %rsi
movq %rsi, 0x18(%rcx)
testq %rsi, %rsi
je 0x2929b
movq %rcx, 0x20(%rsi)
movq 0x20(%rcx), %r8
movq %r8, 0x20(%rdx)
movq %rax, %rsi
testq %r8, %r8
je 0x292bf
movq 0x20(%rcx), %r8
leaq 0x10(%r8), %r9
leaq 0x18(%r8), %rsi
cmpq 0x10(%r8), %rcx
cmoveq %r9, %rsi
movq %rdx, (%rsi)
movq %rcx, 0x10(%rdx)
movq %rdx, 0x20(%rcx)
movq 0x18(%rcx), %rdx
movq 0x10(%rdx), %rsi
testq %rsi, %rsi
je 0x292dd
cmpl $0x0, 0x28(%rsi)
jne 0x292f5
movq 0x18(%rdx), %r8
testq %r8, %r8
je 0x291b4
cmpl $0x0, 0x28(%r8)
je 0x291b4
movq 0x18(%rdx), %r8
testq %r8, %r8
je 0x29305
cmpl $0x0, 0x28(%r8)
jne 0x2935c
testq %rsi, %rsi
je 0x29311
movl $0x0, 0x28(%rsi)
movl $0x1, 0x28(%rdx)
movq 0x18(%rsi), %r8
movq %r8, 0x10(%rdx)
testq %r8, %r8
je 0x29329
movq %rdx, 0x20(%r8)
movq 0x20(%rdx), %r9
movq %r9, 0x20(%rsi)
movq %rax, %r8
testq %r9, %r9
je 0x2934d
movq 0x20(%rdx), %r9
leaq 0x10(%r9), %r10
leaq 0x18(%r9), %r8
cmpq 0x10(%r9), %rdx
cmoveq %r10, %r8
movq %rsi, (%r8)
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 0x29379
movl $0x0, 0x28(%rdx)
movq 0x18(%rcx), %rdx
movq 0x10(%rdx), %rsi
movq %rsi, 0x18(%rcx)
testq %rsi, %rsi
je 0x2938e
movq %rcx, 0x20(%rsi)
movq 0x20(%rcx), %r8
movq %r8, 0x20(%rdx)
movq %rax, %rsi
testq %r8, %r8
je 0x293b2
movq 0x20(%rcx), %r8
leaq 0x10(%r8), %r9
leaq 0x18(%r8), %rsi
cmpq 0x10(%r8), %rcx
cmoveq %r9, %rsi
movq %rdx, (%rsi)
movq %rcx, 0x10(%rdx)
jmp 0x29481
testq %rsi, %rsi
je 0x293c9
cmpl $0x0, 0x28(%rsi)
jne 0x29424
movq 0x18(%rdx), %rsi
testq %rsi, %rsi
je 0x293d9
movl $0x0, 0x28(%rsi)
movl $0x1, 0x28(%rdx)
movq 0x10(%rsi), %r8
movq %r8, 0x18(%rdx)
testq %r8, %r8
je 0x293f1
movq %rdx, 0x20(%r8)
movq 0x20(%rdx), %r9
movq %r9, 0x20(%rsi)
movq %rax, %r8
testq %r9, %r9
je 0x29415
movq 0x20(%rdx), %r9
leaq 0x10(%r9), %r10
leaq 0x18(%r9), %r8
cmpq 0x10(%r9), %rdx
cmoveq %r10, %r8
movq %rsi, (%r8)
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 0x29441
movl $0x0, 0x28(%rdx)
movq 0x10(%rcx), %rdx
movq 0x18(%rdx), %rsi
movq %rsi, 0x10(%rcx)
testq %rsi, %rsi
je 0x29456
movq %rcx, 0x20(%rsi)
movq 0x20(%rcx), %r8
movq %r8, 0x20(%rdx)
movq %rax, %rsi
testq %r8, %r8
je 0x2947a
movq 0x20(%rcx), %r8
leaq 0x10(%r8), %r9
leaq 0x18(%r8), %rsi
cmpq 0x10(%r8), %rcx
cmoveq %r9, %rsi
movq %rdx, (%rsi)
movq %rcx, 0x18(%rdx)
movq %rdx, 0x20(%rcx)
movq (%rax), %rsi
testq %rsi, %rsi
je 0x29494
movl $0x0, 0x28(%rsi)
callq 0xc0c0
testq %r14, %r14
jne 0x29070
movq 0x20(%rbx), %rdi
callq 0xc0c0
movq 0x28(%rbx), %rax
testq %rax, %rax
je 0x29909
xorl %ecx, %ecx
movq %rcx, %r14
movq (%rax), %rcx
leaq 0x10(%rcx), %rax
testq %rcx, %rcx
jne 0x294ba
jmp 0x298f7
movq %r14, %rdi
movq 0x18(%r14), %rdx
testq %rdx, %rdx
je 0x295cc
movq %rdx, %rax
movq %rax, %r14
movq 0x10(%rax), %rax
testq %rax, %rax
jne 0x294e1
testq %rdx, %rdx
sete %sil
movq 0x28(%rbx), %rax
movq 0x10(%rdi), %rcx
testq %rcx, %rcx
sete %r8b
cmoveq %rdx, %rcx
orb %sil, %r8b
je 0x29538
movq 0x20(%rdi), %rdx
movl 0x28(%rdi), %esi
testq %rcx, %rcx
je 0x2951c
movq %rdx, 0x20(%rcx)
testq %rdx, %rdx
je 0x295fd
cmpq %rdi, 0x10(%rdx)
je 0x29604
movq %rcx, 0x18(%rdx)
jmp 0x29608
leaq 0x10(%rdi), %r9
movq %rdx, %r8
movq 0x10(%rdx), %rdx
testq %rdx, %rdx
jne 0x2953c
movq 0x18(%r8), %rcx
movq 0x20(%r8), %rdx
movl 0x28(%r8), %esi
testq %rcx, %rcx
je 0x2955d
movq %rdx, 0x20(%rcx)
movq %rax, %r10
testq %rdx, %rdx
je 0x29575
leaq 0x10(%rdx), %r11
leaq 0x18(%rdx), %r10
cmpq %r8, 0x10(%rdx)
cmoveq %r11, %r10
movq %rcx, (%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 %rax, %r9
testq %r10, %r10
je 0x295b2
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 0x29608
movq %r8, 0x20(%r9)
jmp 0x29608
movq 0x20(%rdi), %r14
testq %r14, %r14
je 0x295df
cmpq %rdi, 0x10(%r14)
je 0x294ed
movq %rdi, %rax
movq 0x20(%rax), %r14
testq %r14, %r14
je 0x294ed
cmpq 0x18(%r14), %rax
movq %r14, %rax
je 0x295e2
jmp 0x294ed
movq %rcx, (%rax)
xorl %edx, %edx
jmp 0x29608
movq %rcx, 0x10(%rdx)
testl %esi, %esi
jne 0x298f2
jmp 0x2961d
movl $0x1, 0x28(%rdx)
movq 0x20(%rcx), %rdx
movq %rcx, %rsi
movq %rdx, %rcx
testq %rsi, %rsi
je 0x29632
cmpl $0x0, 0x28(%rsi)
jne 0x298e6
cmpq (%rax), %rsi
je 0x298e6
movq 0x10(%rcx), %rdx
cmpq %rsi, %rdx
je 0x296d0
cmpl $0x1, 0x28(%rdx)
jne 0x296a0
movl $0x0, 0x28(%rdx)
movl $0x1, 0x28(%rcx)
movq 0x18(%rdx), %rsi
movq %rsi, 0x10(%rcx)
testq %rsi, %rsi
je 0x2966d
movq %rcx, 0x20(%rsi)
movq 0x20(%rcx), %r8
movq %r8, 0x20(%rdx)
movq %rax, %rsi
testq %r8, %r8
je 0x29691
movq 0x20(%rcx), %r8
leaq 0x10(%r8), %r9
leaq 0x18(%r8), %rsi
cmpq 0x10(%r8), %rcx
cmoveq %r9, %rsi
movq %rdx, (%rsi)
movq %rcx, 0x18(%rdx)
movq %rdx, 0x20(%rcx)
movq 0x10(%rcx), %rdx
movq 0x10(%rdx), %rsi
testq %rsi, %rsi
je 0x296b3
cmpl $0x0, 0x28(%rsi)
jne 0x2981c
movq 0x18(%rdx), %r8
testq %r8, %r8
je 0x29612
cmpl $0x0, 0x28(%r8)
je 0x29612
jmp 0x2981c
movq 0x18(%rcx), %rdx
cmpl $0x1, 0x28(%rdx)
jne 0x2972c
movl $0x0, 0x28(%rdx)
movl $0x1, 0x28(%rcx)
movq 0x10(%rdx), %rsi
movq %rsi, 0x18(%rcx)
testq %rsi, %rsi
je 0x296f9
movq %rcx, 0x20(%rsi)
movq 0x20(%rcx), %r8
movq %r8, 0x20(%rdx)
movq %rax, %rsi
testq %r8, %r8
je 0x2971d
movq 0x20(%rcx), %r8
leaq 0x10(%r8), %r9
leaq 0x18(%r8), %rsi
cmpq 0x10(%r8), %rcx
cmoveq %r9, %rsi
movq %rdx, (%rsi)
movq %rcx, 0x10(%rdx)
movq %rdx, 0x20(%rcx)
movq 0x18(%rcx), %rdx
movq 0x10(%rdx), %rsi
testq %rsi, %rsi
je 0x2973b
cmpl $0x0, 0x28(%rsi)
jne 0x29753
movq 0x18(%rdx), %r8
testq %r8, %r8
je 0x29612
cmpl $0x0, 0x28(%r8)
je 0x29612
movq 0x18(%rdx), %r8
testq %r8, %r8
je 0x29763
cmpl $0x0, 0x28(%r8)
jne 0x297ba
testq %rsi, %rsi
je 0x2976f
movl $0x0, 0x28(%rsi)
movl $0x1, 0x28(%rdx)
movq 0x18(%rsi), %r8
movq %r8, 0x10(%rdx)
testq %r8, %r8
je 0x29787
movq %rdx, 0x20(%r8)
movq 0x20(%rdx), %r9
movq %r9, 0x20(%rsi)
movq %rax, %r8
testq %r9, %r9
je 0x297ab
movq 0x20(%rdx), %r9
leaq 0x10(%r9), %r10
leaq 0x18(%r9), %r8
cmpq 0x10(%r9), %rdx
cmoveq %r10, %r8
movq %rsi, (%r8)
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 0x297d7
movl $0x0, 0x28(%rdx)
movq 0x18(%rcx), %rdx
movq 0x10(%rdx), %rsi
movq %rsi, 0x18(%rcx)
testq %rsi, %rsi
je 0x297ec
movq %rcx, 0x20(%rsi)
movq 0x20(%rcx), %r8
movq %r8, 0x20(%rdx)
movq %rax, %rsi
testq %r8, %r8
je 0x29810
movq 0x20(%rcx), %r8
leaq 0x10(%r8), %r9
leaq 0x18(%r8), %rsi
cmpq 0x10(%r8), %rcx
cmoveq %r9, %rsi
movq %rdx, (%rsi)
movq %rcx, 0x10(%rdx)
jmp 0x298df
testq %rsi, %rsi
je 0x29827
cmpl $0x0, 0x28(%rsi)
jne 0x29882
movq 0x18(%rdx), %rsi
testq %rsi, %rsi
je 0x29837
movl $0x0, 0x28(%rsi)
movl $0x1, 0x28(%rdx)
movq 0x10(%rsi), %r8
movq %r8, 0x18(%rdx)
testq %r8, %r8
je 0x2984f
movq %rdx, 0x20(%r8)
movq 0x20(%rdx), %r9
movq %r9, 0x20(%rsi)
movq %rax, %r8
testq %r9, %r9
je 0x29873
movq 0x20(%rdx), %r9
leaq 0x10(%r9), %r10
leaq 0x18(%r9), %r8
cmpq 0x10(%r9), %rdx
cmoveq %r10, %r8
movq %rsi, (%r8)
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 0x2989f
movl $0x0, 0x28(%rdx)
movq 0x10(%rcx), %rdx
movq 0x18(%rdx), %rsi
movq %rsi, 0x10(%rcx)
testq %rsi, %rsi
je 0x298b4
movq %rcx, 0x20(%rsi)
movq 0x20(%rcx), %r8
movq %r8, 0x20(%rdx)
movq %rax, %rsi
testq %r8, %r8
je 0x298d8
movq 0x20(%rcx), %r8
leaq 0x10(%r8), %r9
leaq 0x18(%r8), %rsi
cmpq 0x10(%r8), %rcx
cmoveq %r9, %rsi
movq %rdx, (%rsi)
movq %rcx, 0x18(%rdx)
movq %rdx, 0x20(%rcx)
movq (%rax), %rsi
testq %rsi, %rsi
je 0x298f2
movl $0x0, 0x28(%rsi)
callq 0xc0c0
testq %r14, %r14
jne 0x294ce
movq 0x28(%rbx), %rdi
callq 0xc0c0
movq 0x30(%rbx), %rax
testq %rax, %rax
je 0x29961
xorl %ecx, %ecx
movq %rcx, %r14
movq (%rax), %rcx
leaq 0x10(%rcx), %rax
testq %rcx, %rcx
jne 0x29914
testq %r14, %r14
je 0x29958
movq %r14, %rdi
callq 0x29ae4
movq %rax, %r15
movq 0x30(%rbx), %rdi
movq %r14, %rsi
callq 0x29b1d
movq 0x8(%r14), %rdi
callq 0xc0c0
movq %r14, %rdi
callq 0xc0c0
movq %r15, %r14
testq %r15, %r15
jne 0x29928
movq 0x30(%rbx), %rdi
callq 0xc0c0
movq 0x38(%rbx), %rax
testq %rax, %rax
je 0x299b9
xorl %ecx, %ecx
movq %rcx, %r14
movq (%rax), %rcx
leaq 0x10(%rcx), %rax
testq %rcx, %rcx
jne 0x2996c
testq %r14, %r14
je 0x299b0
movq %r14, %rdi
callq 0x29ae4
movq %rax, %r15
movq 0x38(%rbx), %rdi
movq %r14, %rsi
callq 0x29b1d
movq 0x8(%r14), %rdi
callq 0xc0c0
movq %r14, %rdi
callq 0xc0c0
movq %r15, %r14
testq %r15, %r15
jne 0x29980
movq 0x38(%rbx), %rdi
callq 0xc0c0
movq 0x40(%rbx), %rax
testq %rax, %rax
je 0x29a11
xorl %ecx, %ecx
movq %rcx, %r14
movq (%rax), %rcx
leaq 0x10(%rcx), %rax
testq %rcx, %rcx
jne 0x299c4
testq %r14, %r14
je 0x29a08
movq %r14, %rdi
callq 0x29ae4
movq %rax, %r15
movq 0x40(%rbx), %rdi
movq %r14, %rsi
callq 0x29b1d
movq 0x8(%r14), %rdi
callq 0xc0c0
movq %r14, %rdi
callq 0xc0c0
movq %r15, %r14
testq %r15, %r15
jne 0x299d8
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