// File: /workspace/github_c_makefile_star2_O3/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
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
testq %rdx, %rdx
je 0x2a0ce
movq %r9, %r12
movq %r8, %rbx
movq %rdx, %r14
movl %esi, %r15d
movq %rdi, 0x18(%rsp)
movl 0x68(%rsp), %eax
movq %rax, 0x20(%rsp)
movl 0x60(%rsp), %eax
movl %eax, 0x8(%rsp)
leaq 0x2e996(%rip), %rax     # 0x58180
xorl %ebp, %ebp
testb $0x4, 0x2(%rax)
je 0x29845
movq 0x8(%r14), %rsi
leaq 0x178df(%rip), %rcx     # 0x410dc
movl $0x40000, %edi          # imm = 0x40000
movq 0x20(%rsp), %rdx
callq 0x55eb
leaq 0x18(%r14), %rsi
movq 0x18(%r14), %rcx
leaq 0x2023b(%rip), %rdi     # 0x49a56
movl 0x8(%rsp), %edx
xorl %eax, %eax
callq 0x3120
movl %eax, %ebp
movq 0x10(%r14), %rsi
leaq 0x1ef27(%rip), %rdi     # 0x4875a
xorl %eax, %eax
callq 0x3120
addl %eax, %ebp
movl %ebp, %edi
callq 0x1707a
movl %eax, %ebp
movq 0x18(%r14), %rax
cmpq $0x47414d48, %rax       # imm = 0x47414D48
jg 0x2993b
cmpq $0x32414d49, %rax       # imm = 0x32414D49
je 0x29a7f
cmpq $0x464d4143, %rax       # imm = 0x464D4143
jne 0x29a22
leaq 0x18123(%rip), %rsi     # 0x41997
leaq 0x2025f(%rip), %rdx     # 0x49ada
movq %r12, %rdi
callq 0x17f99
movq %rax, %r13
movq 0x8(%r14), %rdx
movzwl %r15w, %esi
movq 0x18(%rsp), %rdi
callq 0x2b442
movq 0x20(%rsp), %rbx
leal 0x4(%rbx), %r12d
movq %r14, %rdi
movq %rax, %rsi
movq %r13, 0x10(%rsp)
movq %r13, %rdx
movl 0x8(%rsp), %ecx
movl %r12d, %r8d
callq 0x2b54a
movq %rax, %r13
movq 0x8(%r14), %r15
subq %rax, %r15
leaq 0x2e8b4(%rip), %rax     # 0x58180
movq (%rax), %rax
addq 0x10(%r14), %r15
btl $0x12, %eax
jb 0x29c72
btl $0x18, %eax
jb 0x29f82
leaq 0x177ee(%rip), %rcx     # 0x410dc
movl $0x4003333, %edi        # imm = 0x4003333
movq %r13, %rbx
movq %r13, %rsi
movl %r12d, %edx
callq 0x55eb
leaq 0x2e878(%rip), %r12     # 0x58180
movq (%r12), %rax
testl $0x3003, %eax           # imm = 0x3003
movq 0x10(%rsp), %r13
je 0x2a135
testb $0x40, %al
jne 0x2a0dd
leaq 0x201d8(%rip), %rdi     # 0x49b03
movl 0x8(%rsp), %esi
xorl %eax, %eax
callq 0x3120
jmp 0x2a0f2
cmpq $0x504f5250, %rax       # imm = 0x504F5250
je 0x29b4e
cmpq $0x47414d49, %rax       # imm = 0x47414D49
jne 0x29a22
leaq 0x1803d(%rip), %rsi     # 0x41997
leaq 0x20109(%rip), %rdx     # 0x49a6a
movq %r12, %rdi
callq 0x17f99
movq %rax, %r13
movq 0x8(%r14), %rdx
movzwl %r15w, %esi
movq 0x18(%rsp), %rdi
callq 0x2a230
movq %rax, %r12
movq 0x20(%rsp), %rax
leal 0x4(%rax), %r8d
movq %r14, %rdi
movq %r12, %rsi
movq %r13, 0x10(%rsp)
movq %r13, %rdx
movl 0x8(%rsp), %ecx
movl %r8d, 0xc(%rsp)
callq 0x2a338
movq %rax, %r13
movq 0x8(%r14), %r15
subq %rax, %r15
addq 0x10(%r14), %r15
testq %rbx, %rbx
je 0x299bf
cmpl $0x0, 0x10(%rbx)
je 0x299dd
movq %rbx, %rdi
movl $0x62564f46, %esi       # imm = 0x62564F46
movl $0x62564f46, %edx       # imm = 0x62564F46
callq 0xfc85
movq %rax, %rbx
testq %rax, %rax
je 0x29d75
xorl %eax, %eax
cmpq $0x3, 0x10(%r12)
setne %al
leal 0x1(,%rax,4), %eax
movl %eax, 0xc4(%rbx)
movq 0x18(%r12), %rax
cmpq $0xa, %rax
jg 0x29cf6
cmpq $0x3, %rax
je 0x29d34
cmpq $0x6, %rax
jne 0x29d23
movl $0x20004, %eax          # imm = 0x20004
jmp 0x29d40
leaq 0x2e757(%rip), %r12     # 0x58180
movq (%r12), %rax
btl $0x12, %eax
jb 0x29bdc
btl $0x18, %eax
jb 0x2a058
leaq 0x17694(%rip), %rcx     # 0x410dc
movl $0x4003333, %edi        # imm = 0x4003333
xorl %esi, %esi
movq 0x20(%rsp), %rdx
callq 0x55eb
movq (%r12), %rax
testl $0x3003, %eax           # imm = 0x3003
je 0x2a03c
testb $0x40, %al
jne 0x2a000
leaq 0x200b1(%rip), %rdi     # 0x49b28
movq %r14, %rsi
jmp 0x2a009
leaq 0x17f11(%rip), %rsi     # 0x41997
leaq 0x20016(%rip), %rdx     # 0x49aa3
movq %r12, %rdi
callq 0x17f99
movq %rax, %r13
movq 0x8(%r14), %rdx
movzwl %r15w, %esi
movq 0x18(%rsp), %rdi
callq 0x2a230
movq %rax, %r12
movq 0x20(%rsp), %rax
leal 0x4(%rax), %r8d
movq %r14, %rdi
movq %r12, %rsi
movq %r13, 0x10(%rsp)
movq %r13, %rdx
movl 0x8(%rsp), %ecx
movl %r8d, 0xc(%rsp)
callq 0x2a338
movq %rax, %r13
movq 0x8(%r14), %r15
subq %rax, %r15
addq 0x10(%r14), %r15
testq %rbx, %rbx
je 0x29aeb
cmpl $0x0, 0x10(%rbx)
je 0x29b09
movq %rbx, %rdi
movl $0x62564f46, %esi       # imm = 0x62564F46
movl $0x62564f46, %edx       # imm = 0x62564F46
callq 0xfc85
movq %rax, %rbx
testq %rax, %rax
je 0x29e93
xorl %eax, %eax
cmpq $0x3, 0x10(%r12)
setne %al
leal 0x1(,%rax,4), %eax
movl %eax, 0xc4(%rbx)
movq 0x18(%r12), %rax
cmpq $0xa, %rax
jg 0x29d09
cmpq $0x3, %rax
je 0x29e52
cmpq $0x6, %rax
jne 0x29d2a
movl $0x20004, %eax          # imm = 0x20004
jmp 0x29e5e
leaq 0x17e42(%rip), %rsi     # 0x41997
leaq 0x1ff79(%rip), %rdx     # 0x49ad5
movq %r12, %rdi
callq 0x17f99
movq %rax, %r13
movq 0x8(%r14), %rdx
movzwl %r15w, %ebx
movl %ebp, 0x10(%rsp)
movq 0x18(%rsp), %rbp
movq %rbp, %rdi
movl %ebx, %esi
callq 0x2a8b4
movq %rax, %r15
movq 0x20(%rsp), %rax
leal 0x4(%rax), %r12d
movq %r14, %rdi
movq %r15, %rsi
movq %r13, %rdx
movl 0x8(%rsp), %ecx
movl %r12d, %r8d
callq 0x2a9a6
movq 0x10(%r14), %rcx
subq %rax, %rcx
addq 0x8(%r14), %rcx
movq 0x18(%r15), %r8
movq %rbp, %rdi
movl 0x10(%rsp), %ebp
movl %ebx, %esi
movq %rax, %rdx
movq %r13, %r9
pushq %r12
pushq 0x10(%r15)
callq 0x2ade7
addq $0x10, %rsp
leaq 0x2e5a9(%rip), %r12     # 0x58180
jmp 0x2a064
movq 0x8(%r14), %rsi
movq 0x20(%rsp), %r15
leal 0x4(%r15), %ebx
leaq 0x174ec(%rip), %r13     # 0x410dc
movl $0x40000, %edi          # imm = 0x40000
movl %ebx, %edx
movq %r13, %rcx
callq 0x55eb
movq 0x10(%r14), %rdx
leaq 0x1ff02(%rip), %rdi     # 0x49b0c
movq %r14, %rsi
xorl %eax, %eax
callq 0x3120
addl %eax, %ebp
movl %ebp, %edi
callq 0x1707a
movl %eax, %r12d
leal 0x8(%r15), %ecx
movq 0x18(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x9870
movq 0x8(%r14), %rax
movq 0x10(%r14), %rcx
leaq (%rax,%rcx), %rsi
decq %rsi
movl $0x40000, %edi          # imm = 0x40000
movl %ebx, %edx
movq %r13, %rcx
callq 0x55eb
leaq 0x1fec8(%rip), %rdi     # 0x49b1f
movq %r14, %rsi
xorl %eax, %eax
callq 0x3120
movl %eax, %ebp
addl %r12d, %ebp
leaq 0x2e513(%rip), %r12     # 0x58180
jmp 0x2a058
leaq 0x17463(%rip), %rcx     # 0x410dc
movl $0x40000, %edi          # imm = 0x40000
movq %r13, %rsi
movl %r12d, %edx
callq 0x55eb
leaq 0x1fe4f(%rip), %rdi     # 0x49adf
movq %r15, %rsi
xorl %eax, %eax
callq 0x3120
addl %eax, %ebp
movl %ebp, %edi
callq 0x1707a
movl %eax, 0xc(%rsp)
leal 0x8(%rbx), %ecx
movq 0x18(%rsp), %rdi
movq %r13, %rsi
movq %r15, %rdx
callq 0x9870
movq 0x8(%r14), %rax
movq 0x10(%r14), %rcx
leaq (%rax,%rcx), %rsi
decq %rsi
movl $0x40000, %edi          # imm = 0x40000
movl %r12d, %edx
leaq 0x17404(%rip), %rcx     # 0x410dc
callq 0x55eb
leaq 0x1fe12(%rip), %rdi     # 0x49af6
xorl %eax, %eax
callq 0x3120
movl %eax, %ebp
addl 0xc(%rsp), %ebp
jmp 0x29f82
cmpq $0x12, %rax
je 0x29d3b
cmpq $0xb, %rax
jne 0x29d23
movl $0x20001, %eax          # imm = 0x20001
jmp 0x29d40
cmpq $0x12, %rax
je 0x29e59
cmpq $0xb, %rax
jne 0x29d2a
movl $0x20001, %eax          # imm = 0x20001
jmp 0x29e5e
movl $0x20003, %eax          # imm = 0x20003
jmp 0x29d40
movl $0x20003, %eax          # imm = 0x20003
jmp 0x29e5e
movl $0x10002, %eax          # imm = 0x10002
jmp 0x29d40
movl $0x20002, %eax          # imm = 0x20002
movq %rax, 0x88(%rbx)
movq $0x62564f46, 0x80(%rbx) # imm = 0x62564F46
movups 0x20(%r12), %xmm0
movups %xmm0, 0x70(%rbx)
movq %r13, 0x90(%rbx)
movq %r15, 0x98(%rbx)
movq %rbx, %rdi
callq 0xfee6
movl %eax, 0x10(%rbx)
leaq 0x2e404(%rip), %r12     # 0x58180
movq (%r12), %rax
btl $0x12, %eax
jb 0x29dd5
btl $0x18, %eax
jb 0x29f89
leaq 0x17345(%rip), %rcx     # 0x410dc
movl $0x4003333, %edi        # imm = 0x4003333
movq %r13, 0x18(%rsp)
movq %r13, %rsi
movl 0xc(%rsp), %edx
callq 0x55eb
movq (%r12), %rax
testl $0x3003, %eax           # imm = 0x3003
movq 0x10(%rsp), %r13
je 0x29feb
testb $0x40, %al
jne 0x29f9c
leaq 0x1fcca(%rip), %rdi     # 0x49a9a
jmp 0x29eee
leaq 0x17300(%rip), %rcx     # 0x410dc
movl $0x40000, %edi          # imm = 0x40000
movq %r13, %rsi
movl 0xc(%rsp), %ebx
movl %ebx, %edx
callq 0x55eb
leaq 0x1fc79(%rip), %rdi     # 0x49a6f
movq %r15, %rsi
xorl %eax, %eax
callq 0x3120
addl %eax, %ebp
movl %ebp, %edi
callq 0x1707a
movl %eax, %r12d
movq 0x20(%rsp), %rax
leal 0x8(%rax), %ecx
movq 0x18(%rsp), %rdi
movq %r13, %rsi
movq %r15, %rdx
callq 0x9870
movq 0x8(%r14), %rax
movq 0x10(%r14), %rcx
leaq (%rax,%rcx), %rsi
decq %rsi
movl $0x40000, %edi          # imm = 0x40000
movl %ebx, %edx
leaq 0x1729b(%rip), %rcx     # 0x410dc
callq 0x55eb
leaq 0x1fc39(%rip), %rdi     # 0x49a86
jmp 0x29f76
movl $0x10002, %eax          # imm = 0x10002
jmp 0x29e5e
movl $0x20002, %eax          # imm = 0x20002
movq %rax, 0x88(%rbx)
movq $0x62564f46, 0x80(%rbx) # imm = 0x62564F46
movups 0x20(%r12), %xmm0
movups %xmm0, 0x70(%rbx)
movq %r13, 0x90(%rbx)
movq %r15, 0x98(%rbx)
movq %rbx, %rdi
callq 0xfee6
movl %eax, 0x10(%rbx)
leaq 0x2e2e6(%rip), %r12     # 0x58180
movq (%r12), %rax
btl $0x12, %eax
jb 0x29efe
btl $0x18, %eax
jb 0x29f89
leaq 0x17227(%rip), %rcx     # 0x410dc
movl $0x4003333, %edi        # imm = 0x4003333
movq %r13, 0x18(%rsp)
movq %r13, %rsi
movl 0xc(%rsp), %edx
callq 0x55eb
movq (%r12), %rax
testl $0x3003, %eax           # imm = 0x3003
movq 0x10(%rsp), %r13
je 0x29feb
testb $0x40, %al
jne 0x29f9c
leaq 0x1fbde(%rip), %rdi     # 0x49acc
movl 0x8(%rsp), %esi
xorl %eax, %eax
callq 0x3120
jmp 0x29fb1
leaq 0x171d7(%rip), %rcx     # 0x410dc
movl $0x40000, %edi          # imm = 0x40000
movq %r13, %rsi
movl 0xc(%rsp), %ebx
movl %ebx, %edx
callq 0x55eb
leaq 0x1fb89(%rip), %rdi     # 0x49aa8
movq %r15, %rsi
xorl %eax, %eax
callq 0x3120
addl %eax, %ebp
movl %ebp, %edi
callq 0x1707a
movl %eax, %r12d
movq 0x20(%rsp), %rax
leal 0x8(%rax), %ecx
movq 0x18(%rsp), %rdi
movq %r13, %rsi
movq %r15, %rdx
callq 0x9870
movq 0x8(%r14), %rax
movq 0x10(%r14), %rcx
leaq (%rax,%rcx), %rsi
decq %rsi
movl $0x40000, %edi          # imm = 0x40000
movl %ebx, %edx
leaq 0x17172(%rip), %rcx     # 0x410dc
callq 0x55eb
leaq 0x1fb49(%rip), %rdi     # 0x49abf
xorl %eax, %eax
callq 0x3120
movl %eax, %ebp
addl %r12d, %ebp
leaq 0x2e1f7(%rip), %r12     # 0x58180
movq 0x10(%rsp), %r13
movl %ebp, %edi
callq 0x1707a
movl %eax, %ebp
jmp 0x2a064
leaq 0x1faf0(%rip), %rdi     # 0x49a93
movq %r13, %rsi
movl 0x8(%rsp), %edx
xorl %eax, %eax
callq 0x3120
movl %eax, %ebx
leaq 0x1a99b(%rip), %rdi     # 0x44955
xorl %eax, %eax
callq 0x3120
addl %eax, %ebp
addl %ebx, %ebp
movq (%r12), %rax
testb $0x30, %al
je 0x29feb
movl $0xb, %edi
callq 0x5716
leaq 0x205ca(%rip), %rdi     # 0x4a5a8
xorl %eax, %eax
callq 0x3120
addl %eax, %ebp
movq (%r12), %rax
testb $0x30, %al
je 0x29f8e
leaq 0x1b1b0(%rip), %rdi     # 0x451a6
movq 0x18(%rsp), %rsi
jmp 0x2a147
leaq 0x1fa8c(%rip), %rdi     # 0x49a93
xorl %esi, %esi
movl 0x8(%rsp), %edx
xorl %eax, %eax
callq 0x3120
addl %eax, %ebp
movq (%r12), %rax
testb $0x30, %al
je 0x2a03c
movl $0xb, %edi
callq 0x5716
leaq 0x20579(%rip), %rdi     # 0x4a5a8
xorl %eax, %eax
callq 0x3120
addl %eax, %ebp
movq (%r12), %rax
testb $0x30, %al
je 0x2a058
movq 0x8(%r14), %rsi
movq 0x10(%r14), %rdx
leaq 0x1b157(%rip), %rdi     # 0x451a6
xorl %eax, %eax
callq 0x3120
addl %eax, %ebp
movl %ebp, %edi
callq 0x1707a
movl %eax, %ebp
xorl %r13d, %r13d
testb $0x4, 0x2(%r12)
je 0x2a0b3
leaq 0x18(%r14), %rbx
movq 0x8(%r14), %rax
movq 0x10(%r14), %rcx
leaq (%rax,%rcx), %rsi
decq %rsi
leaq 0x17056(%rip), %rcx     # 0x410dc
movl $0x40000, %edi          # imm = 0x40000
movq 0x20(%rsp), %rdx
callq 0x55eb
leaq 0x1fa96(%rip), %rdi     # 0x49b32
movq %rbx, %rsi
movl 0x8(%rsp), %edx
xorl %eax, %eax
callq 0x3120
addl %eax, %ebp
movl %ebp, %edi
callq 0x1707a
testq %r13, %r13
je 0x2a0ce
movq %r13, %rdi
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x3050
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x1f9af(%rip), %rdi     # 0x49a93
movq %r13, %rsi
movl 0x8(%rsp), %edx
xorl %eax, %eax
callq 0x3120
movl %eax, %r12d
leaq 0x1a859(%rip), %rdi     # 0x44955
xorl %eax, %eax
callq 0x3120
addl %eax, %ebp
addl %r12d, %ebp
leaq 0x2e071(%rip), %r12     # 0x58180
movq (%r12), %rax
testb $0x30, %al
je 0x2a135
movl $0xb, %edi
callq 0x5716
leaq 0x20480(%rip), %rdi     # 0x4a5a8
xorl %eax, %eax
callq 0x3120
addl %eax, %ebp
movq (%r12), %rax
testb $0x30, %al
je 0x29f8e
leaq 0x1b062(%rip), %rdi     # 0x451a6
movq %rbx, %rsi
movq %r15, %rdx
xorl %eax, %eax
callq 0x3120
addl %eax, %ebp
jmp 0x29f8e