// File: /workspace/github_c_makefile_star2_O0/hfiguiere[P]exifprobe/x3f.c
// Function: process_x3f_direntry
void
process_x3f_direntry(FILE *inptr,unsigned short byteorder,struct x3f_direntry *entry,
                            unsigned long offset,struct image_summary *summary_entry,
                            char *parent_name,int entry_num,int indent)
{
    struct x3f_imag_header *imag_header;
    struct x3f_prop_header *prop_header;
    struct x3f_camf_header *camf_header;
    unsigned long data_offset = 0UL;
    unsigned long data_length = 0UL;
    char *dirname = CNULL;
    int chpr = 0;

    if(entry)
    {
        if((PRINT_SECTION))
        {
            print_tag_address(SECTION,entry->data_offset,indent,"@");
            chpr += printf("<%4.4s:%d> (%#06lx)",(char *)&entry->data_type,entry_num,entry->data_type);
            chpr += printf(" length %lu",entry->data_length);
            chpr = newline(chpr);
        }
        switch(entry->data_type)
        {
            case X3F_IMAG:
                dirname = splice(parent_name,".","IMAG");
                imag_header = read_x3f_imag_header(inptr,byteorder,entry->data_offset);
                data_offset = display_x3f_imag_header(entry,imag_header,dirname,entry_num,
                                                                    indent + MEDIUMINDENT);
                data_length = entry->data_length - (data_offset - entry->data_offset);
                if((summary_entry == NULL) || summary_entry->entry_lock)
                    summary_entry = new_summary_entry(summary_entry,FILEFMT_X3F,IMGFMT_X3F);
                if(summary_entry)
                {
                    switch(imag_header->image_type)
                    {
                        case 2:
                            summary_entry->subfiletype = REDUCED_RES_TYPE;
                            break;
                        case 3:
                            /* observed; spec doesn't say             */
                            summary_entry->subfiletype = PRIMARY_TYPE;
                            break;
                        default:
                            /* assume this; spec doesn't say          */
                            summary_entry->subfiletype = REDUCED_RES_TYPE;
                            break;
                    }
                    switch(imag_header->image_format)
                    {
                        case 3:
                            summary_entry->imagesubformat = IMGSUBFMT_RGB;
                            break;
                        case 11:
                            summary_entry->imagesubformat = IMGSUBFMT_HUFF_COMPRESSED_RGB;
                            break;
                        case 18:
                            summary_entry->imagesubformat = IMGSUBFMT_JPEG_COMPRESSED_RGB;
                            break;
                        case 6:
                            summary_entry->imagesubformat = IMGSUBFMT_X3F_COMPRESSED;
                            break;
                        default:
                            summary_entry->imagesubformat = IMGSUBFMT_X3F_UNSPECIFIED;
                            break;
                    }
                    summary_entry->imageformat = IMGFMT_X3F;
                    summary_entry->pixel_width = imag_header->image_width;
                    summary_entry->pixel_height = imag_header->image_height;
                    summary_entry->offset = data_offset;
                    summary_entry->length = data_length;
                    summary_entry->entry_lock = lock_number(summary_entry);

                }
                if((PRINT_SECTION))
                {
                    print_tag_address(SECTION,data_offset,indent + MEDIUMINDENT,"@");
                    chpr += printf("<IMAG.Data> length %lu",data_length);
                    chpr = newline(chpr);
                    dumpsection(inptr,data_offset,data_length,indent + LARGEINDENT);
                    print_tag_address(SECTION,entry->data_offset + entry->data_length - 1,
                                                                indent + MEDIUMINDENT,"@");
                    chpr += printf("</IMAG.Data>");
                }
                else if((LIST_MODE))
                {
                    print_tag_address(ENTRY,data_offset,indent + MEDIUMINDENT,"@");
                    if((PRINT_TAGINFO))
                    {
                        if((PRINT_LONGNAMES))
                            chpr += printf("%s:%d.",dirname,entry_num);
                        else
                            chpr += printf("IMAG:%d.",entry_num);
                        chpr += printf("Data");
                        if((PRINT_VALUE))
                        {
                            putindent(X3FTAGWIDTH - 7);
                            chpr += printf(" = ");
                        }
                    }
                    if((PRINT_VALUE))
                        chpr += printf("@%lu:%lu",data_offset,data_length);
                }
                chpr = newline(chpr);
                break;
            case X3F_IMA2:
                dirname = splice(parent_name,".","IMA2");
                imag_header = read_x3f_imag_header(inptr,byteorder,entry->data_offset);
                data_offset = display_x3f_imag_header(entry,imag_header,dirname,entry_num,
                                                                    indent + MEDIUMINDENT);
                data_length = entry->data_length - (data_offset - entry->data_offset);
                if((summary_entry == NULL) || summary_entry->entry_lock)
                    summary_entry = new_summary_entry(summary_entry,FILEFMT_X3F,IMGFMT_X3F);
                if(summary_entry)
                {
                    switch(imag_header->image_type)
                    {
                        case 2:
                            summary_entry->subfiletype = REDUCED_RES_TYPE;
                            break;
                        case 3:
                            /* observed; spec doesn't say             */
                            summary_entry->subfiletype = PRIMARY_TYPE;
                            break;
                        default:
                            /* assume this; spec doesn't say          */
                            summary_entry->subfiletype = REDUCED_RES_TYPE;
                            break;
                    }
                    switch(imag_header->image_format)
                    {
                        case 3:
                            summary_entry->imagesubformat = IMGSUBFMT_RGB;
                            break;
                        case 11:
                            summary_entry->imagesubformat = IMGSUBFMT_HUFF_COMPRESSED_RGB;
                            break;
                        case 18:
                            summary_entry->imagesubformat = IMGSUBFMT_JPEG_COMPRESSED_RGB;
                            break;
                        case 6:
                            /* No idea how "raw" this is, or how it's */
                            /* compressed/encoded                     */
                            summary_entry->imagesubformat = IMGSUBFMT_X3F_COMPRESSED;
                            break;
                        default:
                            summary_entry->imagesubformat = IMGSUBFMT_X3F_UNSPECIFIED;
                            break;
                    }
                    summary_entry->imageformat = IMGFMT_X3F;
                    summary_entry->pixel_width = imag_header->image_width;
                    summary_entry->pixel_height = imag_header->image_height;
                    summary_entry->offset = data_offset;
                    summary_entry->length = data_length;
                    summary_entry->entry_lock = lock_number(summary_entry);

                }
                if((PRINT_SECTION))
                {
                    print_tag_address(SECTION,data_offset,indent + MEDIUMINDENT,"@");
                    chpr += printf("<IMA2.Data> length %lu",data_length);
                    chpr = newline(chpr);
                    dumpsection(inptr,data_offset,data_length,indent + LARGEINDENT);
                    print_tag_address(SECTION,entry->data_offset + entry->data_length - 1,
                                                                indent + MEDIUMINDENT,"@");
                    chpr += printf("</IMA2.Data>");
                }
                else if((LIST_MODE))
                {
                    print_tag_address(ENTRY,data_offset,indent + MEDIUMINDENT,"@");
                    if((PRINT_TAGINFO))
                    {
                        if((PRINT_LONGNAMES))
                            chpr += printf("%s:%d.",dirname,entry_num);
                        else
                            chpr += printf("IMA2:%d.",entry_num);
                        chpr += printf("Data");
                        if((PRINT_VALUE))
                        {
                            putindent(X3FTAGWIDTH - 7);
                            chpr += printf(" = ");
                        }
                    }
                    if((PRINT_VALUE))
                        chpr += printf("@%lu:%lu",data_offset,data_length);
                }
                chpr = newline(chpr);
                break;
            case X3F_PROP:
                dirname = splice(parent_name,".","PROP");
                prop_header = read_x3f_prop_header(inptr,byteorder,entry->data_offset);
                data_offset = display_x3f_prop_header(entry,prop_header,dirname,entry_num,
                                                                    indent + MEDIUMINDENT);
                data_length = entry->data_length - (data_offset - entry->data_offset);
                process_x3f_props(inptr,byteorder,data_offset,data_length,
                                                prop_header->char_format,dirname,
                                                prop_header->num_entries,
                                                indent + MEDIUMINDENT);
                break;
            case X3F_CAMF:
                dirname = splice(parent_name,".","CAMF");
                camf_header = read_x3f_camf_header(inptr,byteorder,entry->data_offset);
                data_offset = display_x3f_camf_header(entry,camf_header,dirname,entry_num,
                                                                    indent + MEDIUMINDENT);
                data_length = entry->data_length - (data_offset - entry->data_offset);
                if((PRINT_SECTION))
                {
                    print_tag_address(SECTION,data_offset,indent + MEDIUMINDENT,"@");
                    chpr += printf("<CAMF.Data> length %lu",data_length);
                    chpr = newline(chpr);
                    dumpsection(inptr,data_offset,data_length,indent + LARGEINDENT);
                    print_tag_address(SECTION,entry->data_offset + entry->data_length - 1,
                                                                indent + MEDIUMINDENT,"@");
                    chpr += printf("</CAMF.Data>");
                }
                else if((LIST_MODE))
                {
                    print_tag_address(ENTRY,data_offset,indent + MEDIUMINDENT,"@");
                    if((PRINT_TAGINFO))
                    {
                        if((PRINT_LONGNAMES))
                            chpr += printf("%s:%d.",dirname,entry_num);
                        else
                            chpr += printf("CAMF:%d.",entry_num);
                        chpr += printf("Data");
                        if((PRINT_VALUE))
                        {
                            putindent(X3FTAGWIDTH - 7);
                            chpr += printf(" = ");
                        }
                    }
                    if((PRINT_VALUE))
                        chpr += printf("@%lu:%lu",data_offset,data_length);
                }
                chpr = newline(chpr);
                break;
            default:
                if((PRINT_SECTION))
                {
                    print_tag_address(SECTION,entry->data_offset,indent + MEDIUMINDENT,"@");
                    chpr += printf("<%4.4s> length %lu",(char *)&entry->section_id,entry->data_length);
                    chpr = newline(chpr);
                    dumpsection(inptr,data_offset,data_length,indent + LARGEINDENT);
                    print_tag_address(SECTION,entry->data_offset + entry->data_length - 1,
                                                                indent + MEDIUMINDENT,"@");
                    chpr += printf("</%4.4s>",(char *)&entry->section_id);
                }
                else if((LIST_MODE))
                {
                    print_tag_address(ENTRY,data_offset,indent,"@");
                    if((PRINT_TAGINFO))
                    {
                        if((PRINT_LONGNAMES))
                            chpr += printf("%s:%d.",dirname,entry_num);
                        else
                            chpr += printf("%4.4s:%d.",(char *)&entry->section_id,entry_num);
                        if((PRINT_VALUE))
                        {
                            putindent(X3FTAGWIDTH - 7);
                            chpr += printf(" = ");
                        }
                    }
                    if((PRINT_VALUE))
                        chpr += printf("@%lu:%lu",entry->data_offset,entry->data_length);
                }
                chpr = newline(chpr);
                break;
        }
        if((PRINT_SECTION))
        {
            print_tag_address(SECTION,entry->data_offset + entry->data_length - 1,indent,"@");
            chpr += printf("</%4.4s:%d>",(char *)&entry->data_type,entry_num);
            chpr += newline(chpr);
        }
        if(dirname)
            free(dirname);
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xa0, %rsp
movw %si, %ax
movl 0x18(%rbp), %esi
movl 0x10(%rbp), %esi
movq %rdi, -0x8(%rbp)
movw %ax, -0xa(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq %r8, -0x28(%rbp)
movq %r9, -0x30(%rbp)
movq $0x0, -0x50(%rbp)
movq $0x0, -0x58(%rbp)
movq $0x0, -0x60(%rbp)
movl $0x0, -0x64(%rbp)
cmpq $0x0, -0x18(%rbp)
je 0x3bec1
leaq 0x3c023(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x40000, %rax          # imm = 0x40000
cmpq $0x0, %rax
je 0x3b1d6
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rsi
movl 0x18(%rbp), %edx
movl $0x40000, %edi          # imm = 0x40000
leaq 0x28f59(%rip), %rcx     # 0x640dc
callq 0x5ed0
movq -0x18(%rbp), %rsi
addq $0x18, %rsi
movl 0x10(%rbp), %edx
movq -0x18(%rbp), %rax
movq 0x18(%rax), %rcx
leaq 0x3114c(%rip), %rdi     # 0x6c2ee
movb $0x0, %al
callq 0x3110
addl -0x64(%rbp), %eax
movl %eax, -0x64(%rbp)
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rsi
leaq 0x2fafb(%rip), %rdi     # 0x6acb9
movb $0x0, %al
callq 0x3110
addl -0x64(%rbp), %eax
movl %eax, -0x64(%rbp)
movl -0x64(%rbp), %edi
callq 0x1ef50
movl %eax, -0x64(%rbp)
movq -0x18(%rbp), %rax
movq 0x18(%rax), %rax
movq %rax, -0x70(%rbp)
subq $0x32414d49, %rax       # imm = 0x32414D49
je 0x3b5c7
jmp 0x3b1f0
movq -0x70(%rbp), %rax
subq $0x464d4143, %rax       # imm = 0x464D4143
je 0x3ba26
jmp 0x3b202
movq -0x70(%rbp), %rax
subq $0x47414d49, %rax       # imm = 0x47414D49
je 0x3b225
jmp 0x3b210
movq -0x70(%rbp), %rax
subq $0x504f5250, %rax       # imm = 0x504F5250
je 0x3b975
jmp 0x3bc6e
movq -0x30(%rbp), %rdi
leaq 0x29732(%rip), %rsi     # 0x64962
leaq 0x310cb(%rip), %rdx     # 0x6c302
callq 0x20960
movq %rax, -0x60(%rbp)
movq -0x8(%rbp), %rdi
movw -0xa(%rbp), %ax
movq -0x18(%rbp), %rcx
movq 0x8(%rcx), %rdx
movzwl %ax, %esi
callq 0x3c000
movq %rax, -0x38(%rbp)
movq -0x18(%rbp), %rdi
movq -0x38(%rbp), %rsi
movq -0x60(%rbp), %rdx
movl 0x10(%rbp), %ecx
movl 0x18(%rbp), %r8d
addl $0x4, %r8d
callq 0x3c140
movq %rax, -0x50(%rbp)
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x50(%rbp), %rcx
movq -0x18(%rbp), %rdx
subq 0x8(%rdx), %rcx
subq %rcx, %rax
movq %rax, -0x58(%rbp)
cmpq $0x0, -0x28(%rbp)
je 0x3b2a8
movq -0x28(%rbp), %rax
cmpl $0x0, 0x10(%rax)
je 0x3b2bc
movq -0x28(%rbp), %rdi
movl $0x62564f46, %edx       # imm = 0x62564F46
movl %edx, %esi
callq 0x15420
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
je 0x3b3f1
movq -0x38(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x78(%rbp)
subq $0x2, %rax
je 0x3b2e7
jmp 0x3b2db
movq -0x78(%rbp), %rax
subq $0x3, %rax
je 0x3b2f7
jmp 0x3b307
movq -0x28(%rbp), %rax
movl $0x5, 0xc4(%rax)
jmp 0x3b315
movq -0x28(%rbp), %rax
movl $0x1, 0xc4(%rax)
jmp 0x3b315
movq -0x28(%rbp), %rax
movl $0x5, 0xc4(%rax)
movq -0x38(%rbp), %rax
movq 0x18(%rax), %rax
addq $-0x3, %rax
movq %rax, -0x80(%rbp)
subq $0xf, %rax
ja 0x3b383
movq -0x80(%rbp), %rax
leaq 0x30d8a(%rip), %rcx     # 0x6c0c0
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x28(%rbp), %rax
movq $0x10002, 0x88(%rax) # imm = 0x10002
jmp 0x3b392
movq -0x28(%rbp), %rax
movq $0x20001, 0x88(%rax) # imm = 0x20001
jmp 0x3b392
movq -0x28(%rbp), %rax
movq $0x20002, 0x88(%rax) # imm = 0x20002
jmp 0x3b392
movq -0x28(%rbp), %rax
movq $0x20004, 0x88(%rax) # imm = 0x20004
jmp 0x3b392
movq -0x28(%rbp), %rax
movq $0x20003, 0x88(%rax) # imm = 0x20003
movq -0x28(%rbp), %rax
movq $0x62564f46, 0x80(%rax) # imm = 0x62564F46
movq -0x38(%rbp), %rax
movq 0x20(%rax), %rcx
movq -0x28(%rbp), %rax
movq %rcx, 0x70(%rax)
movq -0x38(%rbp), %rax
movq 0x28(%rax), %rcx
movq -0x28(%rbp), %rax
movq %rcx, 0x78(%rax)
movq -0x50(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, 0x90(%rax)
movq -0x58(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, 0x98(%rax)
movq -0x28(%rbp), %rdi
callq 0x157c0
movl %eax, %ecx
movq -0x28(%rbp), %rax
movl %ecx, 0x10(%rax)
leaq 0x3bd88(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x40000, %rax          # imm = 0x40000
cmpq $0x0, %rax
je 0x3b4a4
movq -0x50(%rbp), %rsi
movl 0x18(%rbp), %edx
addl $0x4, %edx
movl $0x40000, %edi          # imm = 0x40000
leaq 0x28cbb(%rip), %rcx     # 0x640dc
callq 0x5ed0
movq -0x58(%rbp), %rsi
leaq 0x30ed6(%rip), %rdi     # 0x6c307
movb $0x0, %al
callq 0x3110
addl -0x64(%rbp), %eax
movl %eax, -0x64(%rbp)
movl -0x64(%rbp), %edi
callq 0x1ef50
movl %eax, -0x64(%rbp)
movq -0x8(%rbp), %rdi
movq -0x50(%rbp), %rsi
movq -0x58(%rbp), %rdx
movl 0x18(%rbp), %ecx
addl $0x8, %ecx
callq 0xbc60
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rsi
movq -0x18(%rbp), %rax
addq 0x10(%rax), %rsi
subq $0x1, %rsi
movl 0x18(%rbp), %edx
addl $0x4, %edx
movl $0x40000, %edi          # imm = 0x40000
leaq 0x28c56(%rip), %rcx     # 0x640dc
callq 0x5ed0
leaq 0x30e8c(%rip), %rdi     # 0x6c31e
movb $0x0, %al
callq 0x3110
addl -0x64(%rbp), %eax
movl %eax, -0x64(%rbp)
jmp 0x3b5b7
leaq 0x3bcd5(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x1040000, %rax        # imm = 0x1040000
cmpq $0x0, %rax
jne 0x3b5b5
movq -0x50(%rbp), %rsi
movl 0x18(%rbp), %edx
addl $0x4, %edx
movl $0x4003333, %edi        # imm = 0x4003333
leaq 0x28c08(%rip), %rcx     # 0x640dc
callq 0x5ed0
leaq 0x3bca0(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x3003, %rax           # imm = 0x3003
cmpq $0x0, %rax
je 0x3b583
leaq 0x3bc86(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x40, %rax
cmpq $0x0, %rax
je 0x3b524
movq -0x60(%rbp), %rsi
movl 0x10(%rbp), %edx
leaq 0x30e16(%rip), %rdi     # 0x6c32b
movb $0x0, %al
callq 0x3110
addl -0x64(%rbp), %eax
movl %eax, -0x64(%rbp)
jmp 0x3b53b
movl 0x10(%rbp), %esi
leaq 0x30e04(%rip), %rdi     # 0x6c332
movb $0x0, %al
callq 0x3110
addl -0x64(%rbp), %eax
movl %eax, -0x64(%rbp)
leaq 0x2baa1(%rip), %rdi     # 0x66fe3
movb $0x0, %al
callq 0x3110
addl -0x64(%rbp), %eax
movl %eax, -0x64(%rbp)
leaq 0x3bc2a(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x30, %rax
cmpq $0x0, %rax
je 0x3b581
movl $0xb, %edi
callq 0x60e0
leaq 0x317a4(%rip), %rdi     # 0x6cd18
movb $0x0, %al
callq 0x3110
addl -0x64(%rbp), %eax
movl %eax, -0x64(%rbp)
jmp 0x3b583
leaq 0x3bbf6(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x30, %rax
cmpq $0x0, %rax
je 0x3b5b3
movq -0x50(%rbp), %rsi
movq -0x58(%rbp), %rdx
leaq 0x2c28e(%rip), %rdi     # 0x67834
movb $0x0, %al
callq 0x3110
addl -0x64(%rbp), %eax
movl %eax, -0x64(%rbp)
jmp 0x3b5b5
jmp 0x3b5b7
movl -0x64(%rbp), %edi
callq 0x1ef50
movl %eax, -0x64(%rbp)
jmp 0x3be44
movq -0x30(%rbp), %rdi
leaq 0x29390(%rip), %rsi     # 0x64962
leaq 0x30d62(%rip), %rdx     # 0x6c33b
callq 0x20960
movq %rax, -0x60(%rbp)
movq -0x8(%rbp), %rdi
movw -0xa(%rbp), %ax
movq -0x18(%rbp), %rcx
movq 0x8(%rcx), %rdx
movzwl %ax, %esi
callq 0x3c000
movq %rax, -0x38(%rbp)
movq -0x18(%rbp), %rdi
movq -0x38(%rbp), %rsi
movq -0x60(%rbp), %rdx
movl 0x10(%rbp), %ecx
movl 0x18(%rbp), %r8d
addl $0x4, %r8d
callq 0x3c140
movq %rax, -0x50(%rbp)
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x50(%rbp), %rcx
movq -0x18(%rbp), %rdx
subq 0x8(%rdx), %rcx
subq %rcx, %rax
movq %rax, -0x58(%rbp)
cmpq $0x0, -0x28(%rbp)
je 0x3b64a
movq -0x28(%rbp), %rax
cmpl $0x0, 0x10(%rax)
je 0x3b65e
movq -0x28(%rbp), %rdi
movl $0x62564f46, %edx       # imm = 0x62564F46
movl %edx, %esi
callq 0x15420
movq %rax, -0x28(%rbp)
cmpq $0x0, -0x28(%rbp)
je 0x3b79f
movq -0x38(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x88(%rbp)
subq $0x2, %rax
je 0x3b68f
jmp 0x3b680
movq -0x88(%rbp), %rax
subq $0x3, %rax
je 0x3b69f
jmp 0x3b6af
movq -0x28(%rbp), %rax
movl $0x5, 0xc4(%rax)
jmp 0x3b6bd
movq -0x28(%rbp), %rax
movl $0x1, 0xc4(%rax)
jmp 0x3b6bd
movq -0x28(%rbp), %rax
movl $0x5, 0xc4(%rax)
movq -0x38(%rbp), %rax
movq 0x18(%rax), %rax
addq $-0x3, %rax
movq %rax, -0x90(%rbp)
subq $0xf, %rax
ja 0x3b731
movq -0x90(%rbp), %rax
leaq 0x3099c(%rip), %rcx     # 0x6c080
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x28(%rbp), %rax
movq $0x10002, 0x88(%rax) # imm = 0x10002
jmp 0x3b740
movq -0x28(%rbp), %rax
movq $0x20001, 0x88(%rax) # imm = 0x20001
jmp 0x3b740
movq -0x28(%rbp), %rax
movq $0x20002, 0x88(%rax) # imm = 0x20002
jmp 0x3b740
movq -0x28(%rbp), %rax
movq $0x20004, 0x88(%rax) # imm = 0x20004
jmp 0x3b740
movq -0x28(%rbp), %rax
movq $0x20003, 0x88(%rax) # imm = 0x20003
movq -0x28(%rbp), %rax
movq $0x62564f46, 0x80(%rax) # imm = 0x62564F46
movq -0x38(%rbp), %rax
movq 0x20(%rax), %rcx
movq -0x28(%rbp), %rax
movq %rcx, 0x70(%rax)
movq -0x38(%rbp), %rax
movq 0x28(%rax), %rcx
movq -0x28(%rbp), %rax
movq %rcx, 0x78(%rax)
movq -0x50(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, 0x90(%rax)
movq -0x58(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, 0x98(%rax)
movq -0x28(%rbp), %rdi
callq 0x157c0
movl %eax, %ecx
movq -0x28(%rbp), %rax
movl %ecx, 0x10(%rax)
leaq 0x3b9da(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x40000, %rax          # imm = 0x40000
cmpq $0x0, %rax
je 0x3b852
movq -0x50(%rbp), %rsi
movl 0x18(%rbp), %edx
addl $0x4, %edx
movl $0x40000, %edi          # imm = 0x40000
leaq 0x2890d(%rip), %rcx     # 0x640dc
callq 0x5ed0
movq -0x58(%rbp), %rsi
leaq 0x30b61(%rip), %rdi     # 0x6c340
movb $0x0, %al
callq 0x3110
addl -0x64(%rbp), %eax
movl %eax, -0x64(%rbp)
movl -0x64(%rbp), %edi
callq 0x1ef50
movl %eax, -0x64(%rbp)
movq -0x8(%rbp), %rdi
movq -0x50(%rbp), %rsi
movq -0x58(%rbp), %rdx
movl 0x18(%rbp), %ecx
addl $0x8, %ecx
callq 0xbc60
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rsi
movq -0x18(%rbp), %rax
addq 0x10(%rax), %rsi
subq $0x1, %rsi
movl 0x18(%rbp), %edx
addl $0x4, %edx
movl $0x40000, %edi          # imm = 0x40000
leaq 0x288a8(%rip), %rcx     # 0x640dc
callq 0x5ed0
leaq 0x30b17(%rip), %rdi     # 0x6c357
movb $0x0, %al
callq 0x3110
addl -0x64(%rbp), %eax
movl %eax, -0x64(%rbp)
jmp 0x3b965
leaq 0x3b927(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x1040000, %rax        # imm = 0x1040000
cmpq $0x0, %rax
jne 0x3b963
movq -0x50(%rbp), %rsi
movl 0x18(%rbp), %edx
addl $0x4, %edx
movl $0x4003333, %edi        # imm = 0x4003333
leaq 0x2885a(%rip), %rcx     # 0x640dc
callq 0x5ed0
leaq 0x3b8f2(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x3003, %rax           # imm = 0x3003
cmpq $0x0, %rax
je 0x3b931
leaq 0x3b8d8(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x40, %rax
cmpq $0x0, %rax
je 0x3b8d2
movq -0x60(%rbp), %rsi
movl 0x10(%rbp), %edx
leaq 0x30a68(%rip), %rdi     # 0x6c32b
movb $0x0, %al
callq 0x3110
addl -0x64(%rbp), %eax
movl %eax, -0x64(%rbp)
jmp 0x3b8e9
movl 0x10(%rbp), %esi
leaq 0x30a88(%rip), %rdi     # 0x6c364
movb $0x0, %al
callq 0x3110
addl -0x64(%rbp), %eax
movl %eax, -0x64(%rbp)
leaq 0x2b6f3(%rip), %rdi     # 0x66fe3
movb $0x0, %al
callq 0x3110
addl -0x64(%rbp), %eax
movl %eax, -0x64(%rbp)
leaq 0x3b87c(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x30, %rax
cmpq $0x0, %rax
je 0x3b92f
movl $0xb, %edi
callq 0x60e0
leaq 0x313f6(%rip), %rdi     # 0x6cd18
movb $0x0, %al
callq 0x3110
addl -0x64(%rbp), %eax
movl %eax, -0x64(%rbp)
jmp 0x3b931
leaq 0x3b848(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x30, %rax
cmpq $0x0, %rax
je 0x3b961
movq -0x50(%rbp), %rsi
movq -0x58(%rbp), %rdx
leaq 0x2bee0(%rip), %rdi     # 0x67834
movb $0x0, %al
callq 0x3110
addl -0x64(%rbp), %eax
movl %eax, -0x64(%rbp)
jmp 0x3b963
jmp 0x3b965
movl -0x64(%rbp), %edi
callq 0x1ef50
movl %eax, -0x64(%rbp)
jmp 0x3be44
movq -0x30(%rbp), %rdi
leaq 0x28fe2(%rip), %rsi     # 0x64962
leaq 0x309e6(%rip), %rdx     # 0x6c36d
callq 0x20960
movq %rax, -0x60(%rbp)
movq -0x8(%rbp), %rdi
movw -0xa(%rbp), %ax
movq -0x18(%rbp), %rcx
movq 0x8(%rcx), %rdx
movzwl %ax, %esi
callq 0x3c900
movq %rax, -0x40(%rbp)
movq -0x18(%rbp), %rdi
movq -0x40(%rbp), %rsi
movq -0x60(%rbp), %rdx
movl 0x10(%rbp), %ecx
movl 0x18(%rbp), %r8d
addl $0x4, %r8d
callq 0x3ca30
movq %rax, -0x50(%rbp)
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x50(%rbp), %rcx
movq -0x18(%rbp), %rdx
subq 0x8(%rdx), %rcx
subq %rcx, %rax
movq %rax, -0x58(%rbp)
movq -0x8(%rbp), %rdi
movw -0xa(%rbp), %si
movq -0x50(%rbp), %rdx
movq -0x58(%rbp), %rcx
movq -0x40(%rbp), %rax
movq 0x18(%rax), %r8
movq -0x60(%rbp), %r9
movq -0x40(%rbp), %rax
movq 0x10(%rax), %r10
movl 0x18(%rbp), %eax
addl $0x4, %eax
movzwl %si, %esi
movq %r10, (%rsp)
movl %eax, 0x8(%rsp)
callq 0x3d000
jmp 0x3be44
movq -0x30(%rbp), %rdi
leaq 0x28f31(%rip), %rsi     # 0x64962
leaq 0x3093a(%rip), %rdx     # 0x6c372
callq 0x20960
movq %rax, -0x60(%rbp)
movq -0x8(%rbp), %rdi
movw -0xa(%rbp), %ax
movq -0x18(%rbp), %rcx
movq 0x8(%rcx), %rdx
movzwl %ax, %esi
callq 0x3d7a0
movq %rax, -0x48(%rbp)
movq -0x18(%rbp), %rdi
movq -0x48(%rbp), %rsi
movq -0x60(%rbp), %rdx
movl 0x10(%rbp), %ecx
movl 0x18(%rbp), %r8d
addl $0x4, %r8d
callq 0x3d8e0
movq %rax, -0x50(%rbp)
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rax
movq -0x50(%rbp), %rcx
movq -0x18(%rbp), %rdx
subq 0x8(%rdx), %rcx
subq %rcx, %rax
movq %rax, -0x58(%rbp)
leaq 0x3b6e1(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x40000, %rax          # imm = 0x40000
cmpq $0x0, %rax
je 0x3bb4b
movq -0x50(%rbp), %rsi
movl 0x18(%rbp), %edx
addl $0x4, %edx
movl $0x40000, %edi          # imm = 0x40000
leaq 0x28614(%rip), %rcx     # 0x640dc
callq 0x5ed0
movq -0x58(%rbp), %rsi
leaq 0x3089f(%rip), %rdi     # 0x6c377
movb $0x0, %al
callq 0x3110
addl -0x64(%rbp), %eax
movl %eax, -0x64(%rbp)
movl -0x64(%rbp), %edi
callq 0x1ef50
movl %eax, -0x64(%rbp)
movq -0x8(%rbp), %rdi
movq -0x50(%rbp), %rsi
movq -0x58(%rbp), %rdx
movl 0x18(%rbp), %ecx
addl $0x8, %ecx
callq 0xbc60
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rsi
movq -0x18(%rbp), %rax
addq 0x10(%rax), %rsi
subq $0x1, %rsi
movl 0x18(%rbp), %edx
addl $0x4, %edx
movl $0x40000, %edi          # imm = 0x40000
leaq 0x285af(%rip), %rcx     # 0x640dc
callq 0x5ed0
leaq 0x30855(%rip), %rdi     # 0x6c38e
movb $0x0, %al
callq 0x3110
addl -0x64(%rbp), %eax
movl %eax, -0x64(%rbp)
jmp 0x3bc5e
leaq 0x3b62e(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x1040000, %rax        # imm = 0x1040000
cmpq $0x0, %rax
jne 0x3bc5c
movq -0x50(%rbp), %rsi
movl 0x18(%rbp), %edx
addl $0x4, %edx
movl $0x4003333, %edi        # imm = 0x4003333
leaq 0x28561(%rip), %rcx     # 0x640dc
callq 0x5ed0
leaq 0x3b5f9(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x3003, %rax           # imm = 0x3003
cmpq $0x0, %rax
je 0x3bc2a
leaq 0x3b5df(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x40, %rax
cmpq $0x0, %rax
je 0x3bbcb
movq -0x60(%rbp), %rsi
movl 0x10(%rbp), %edx
leaq 0x3076f(%rip), %rdi     # 0x6c32b
movb $0x0, %al
callq 0x3110
addl -0x64(%rbp), %eax
movl %eax, -0x64(%rbp)
jmp 0x3bbe2
movl 0x10(%rbp), %esi
leaq 0x307c6(%rip), %rdi     # 0x6c39b
movb $0x0, %al
callq 0x3110
addl -0x64(%rbp), %eax
movl %eax, -0x64(%rbp)
leaq 0x2b3fa(%rip), %rdi     # 0x66fe3
movb $0x0, %al
callq 0x3110
addl -0x64(%rbp), %eax
movl %eax, -0x64(%rbp)
leaq 0x3b583(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x30, %rax
cmpq $0x0, %rax
je 0x3bc28
movl $0xb, %edi
callq 0x60e0
leaq 0x310fd(%rip), %rdi     # 0x6cd18
movb $0x0, %al
callq 0x3110
addl -0x64(%rbp), %eax
movl %eax, -0x64(%rbp)
jmp 0x3bc2a
leaq 0x3b54f(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x30, %rax
cmpq $0x0, %rax
je 0x3bc5a
movq -0x50(%rbp), %rsi
movq -0x58(%rbp), %rdx
leaq 0x2bbe7(%rip), %rdi     # 0x67834
movb $0x0, %al
callq 0x3110
addl -0x64(%rbp), %eax
movl %eax, -0x64(%rbp)
jmp 0x3bc5c
jmp 0x3bc5e
movl -0x64(%rbp), %edi
callq 0x1ef50
movl %eax, -0x64(%rbp)
jmp 0x3be44
leaq 0x3b50b(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x40000, %rax          # imm = 0x40000
cmpq $0x0, %rax
je 0x3bd31
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rsi
movl 0x18(%rbp), %edx
addl $0x4, %edx
movl $0x40000, %edi          # imm = 0x40000
leaq 0x2843a(%rip), %rcx     # 0x640dc
callq 0x5ed0
movq -0x18(%rbp), %rsi
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rdx
leaq 0x306ea(%rip), %rdi     # 0x6c3a4
movb $0x0, %al
callq 0x3110
addl -0x64(%rbp), %eax
movl %eax, -0x64(%rbp)
movl -0x64(%rbp), %edi
callq 0x1ef50
movl %eax, -0x64(%rbp)
movq -0x8(%rbp), %rdi
movq -0x50(%rbp), %rsi
movq -0x58(%rbp), %rdx
movl 0x18(%rbp), %ecx
addl $0x8, %ecx
callq 0xbc60
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rsi
movq -0x18(%rbp), %rax
addq 0x10(%rax), %rsi
subq $0x1, %rsi
movl 0x18(%rbp), %edx
addl $0x4, %edx
movl $0x40000, %edi          # imm = 0x40000
leaq 0x283cd(%rip), %rcx     # 0x640dc
callq 0x5ed0
movq -0x18(%rbp), %rsi
leaq 0x30698(%rip), %rdi     # 0x6c3b7
movb $0x0, %al
callq 0x3110
addl -0x64(%rbp), %eax
movl %eax, -0x64(%rbp)
jmp 0x3be39
leaq 0x3b448(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x1040000, %rax        # imm = 0x1040000
cmpq $0x0, %rax
jne 0x3be37
movq -0x50(%rbp), %rsi
movl 0x18(%rbp), %edx
movl $0x4003333, %edi        # imm = 0x4003333
leaq 0x2837e(%rip), %rcx     # 0x640dc
callq 0x5ed0
leaq 0x3b416(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x3003, %rax           # imm = 0x3003
cmpq $0x0, %rax
je 0x3bdfd
leaq 0x3b3fc(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x40, %rax
cmpq $0x0, %rax
je 0x3bdae
movq -0x60(%rbp), %rsi
movl 0x10(%rbp), %edx
leaq 0x3058c(%rip), %rdi     # 0x6c32b
movb $0x0, %al
callq 0x3110
addl -0x64(%rbp), %eax
movl %eax, -0x64(%rbp)
jmp 0x3bdc9
movq -0x18(%rbp), %rsi
movl 0x10(%rbp), %edx
leaq 0x30604(%rip), %rdi     # 0x6c3c0
movb $0x0, %al
callq 0x3110
addl -0x64(%rbp), %eax
movl %eax, -0x64(%rbp)
leaq 0x3b3b0(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x30, %rax
cmpq $0x0, %rax
je 0x3bdfb
movl $0xb, %edi
callq 0x60e0
leaq 0x30f2a(%rip), %rdi     # 0x6cd18
movb $0x0, %al
callq 0x3110
addl -0x64(%rbp), %eax
movl %eax, -0x64(%rbp)
jmp 0x3bdfd
leaq 0x3b37c(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x30, %rax
cmpq $0x0, %rax
je 0x3be35
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rsi
movq -0x18(%rbp), %rax
movq 0x10(%rax), %rdx
leaq 0x2ba0c(%rip), %rdi     # 0x67834
movb $0x0, %al
callq 0x3110
addl -0x64(%rbp), %eax
movl %eax, -0x64(%rbp)
jmp 0x3be37
jmp 0x3be39
movl -0x64(%rbp), %edi
callq 0x1ef50
movl %eax, -0x64(%rbp)
leaq 0x3b335(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x40000, %rax          # imm = 0x40000
cmpq $0x0, %rax
je 0x3beaf
movq -0x18(%rbp), %rax
movq 0x8(%rax), %rsi
movq -0x18(%rbp), %rax
addq 0x10(%rax), %rsi
subq $0x1, %rsi
movl 0x18(%rbp), %edx
movl $0x40000, %edi          # imm = 0x40000
leaq 0x2825f(%rip), %rcx     # 0x640dc
callq 0x5ed0
movq -0x18(%rbp), %rsi
addq $0x18, %rsi
movl 0x10(%rbp), %edx
leaq 0x30536(%rip), %rdi     # 0x6c3ca
movb $0x0, %al
callq 0x3110
addl -0x64(%rbp), %eax
movl %eax, -0x64(%rbp)
movl -0x64(%rbp), %edi
callq 0x1ef50
addl -0x64(%rbp), %eax
movl %eax, -0x64(%rbp)
cmpq $0x0, -0x60(%rbp)
je 0x3bebf
movq -0x60(%rbp), %rdi
callq 0x3040
jmp 0x3bec1
addq $0xa0, %rsp
popq %rbp
retq
nopw (%rax,%rax)