// File: /workspace/github_c_makefile_star2_O0/hfiguiere[P]exifprobe/jp2000.c
// Function: process_jpeg2000_codestream
unsigned long
process_jpeg2000_codestream(FILE *inptr,unsigned long marker_offset,
                                    unsigned long data_length,
                                    struct image_summary *summary_entry,
                                    int indent)
{
    unsigned long max_offset = 0L;
    unsigned long start_of_jp2c_data = marker_offset;
    unsigned long start_of_tile = 0;
    unsigned long tile_length = 0;
    unsigned short seg_length,tmp;
    unsigned short tilenum = 0;
    unsigned short part_index = 0;
    unsigned short nparts = 0;
    unsigned short regvalue = 0;
    unsigned short tag = 0;
    int chpr = 0;
    int tagindent,dataindent;
    char *name;

    if(inptr)
    {
        PUSHCOLOR(JPEG_COLOR);
        tag = read_ushort(inptr,TIFF_MOTOROLA,marker_offset);
        tagindent = indent;
        while(tag != 0)
        {
            switch(tag)
            {
                case JP2C_SOC:  /* Start of code stream               */
                    start_of_jp2c_data = marker_offset;
                    if((summary_entry == NULL) || summary_entry->entry_lock)
                        summary_entry = new_summary_entry(summary_entry,0,IMGFMT_JPEG2000);
                    if(summary_entry)
                    {
                        if(summary_entry->length <= 0)
                            summary_entry->length = data_length;
                        if(summary_entry->offset <= 0)
                            summary_entry->offset = start_of_jp2c_data;
                        summary_entry->imageformat = IMGFMT_JPEG2000;
                        summary_entry->entry_lock = lock_number(summary_entry);
                    }
                    name = jp2000tagname(tag);
                    print_tag_address(SECTION|ENTRY,marker_offset,tagindent,"@");
                    dataindent = charsprinted();
                    if((LIST_MODE))
                    {
                        if((PRINT_TAGINFO))
                        {
                            if((PRINT_LONGNAMES))
                                chpr += printf("JP2.jp2c.");
                            chpr += printf("%s",name);
                        }
                        if((PRINT_VALUE))
                            chpr += printf(" = @%lu",marker_offset);
                        chpr = newline(chpr);
                    }
                    else
                        chpr += printf("<%#x=%s> Start of codestream",tag,name);
                    chpr = newline(chpr);
                    marker_offset += 2;
                    break;
                case JP2C_SOT:  /* Start of tile-part                 */
                    name = jp2000tagname(tag);
                    start_of_tile = marker_offset;
                    seg_length = read_ushort(inptr,TIFF_MOTOROLA,marker_offset + 2);
                    print_tag_address(SEGMENT,marker_offset,tagindent,"@");
                    if((PRINT_SEGMENT) && (PRINT_SECTION))
                    {
                        if((LIST_MODE))
                        {
                            if((PRINT_TAGINFO))
                            {
                                if((PRINT_LONGNAMES))
                                    chpr += printf("JP2.jp2c.");
                                chpr += printf("%s",name);
                            }
                            if((PRINT_VALUE))
                                chpr += printf(" = @%lu:%u",marker_offset,seg_length);
                            chpr = newline(chpr);
                        }
                        else
                            chpr += printf("<%#x=%s> length %u",tag,name,seg_length);
                    }

                    tilenum = read_ushort(inptr,TIFF_MOTOROLA,marker_offset + 4);
                    if((PRINT_SEGMENT) && (PRINT_ENTRY) && !(LIST_MODE))
                        chpr += printf(" tile number %u",tilenum);
                    tile_length = read_ulong(inptr,TIFF_MOTOROLA,marker_offset + 6);
                    if((PRINT_SEGMENT) && (PRINT_ENTRY) && !(LIST_MODE))
                        chpr += printf(" tile_length = %lu",tile_length);
                    part_index = read_ubyte(inptr,HERE);
                    if((PRINT_SEGMENT) && (PRINT_ENTRY) && !(LIST_MODE))
                        chpr += printf(" tile index = %u",part_index);
                    nparts = read_ubyte(inptr,HERE);
                    if((PRINT_SEGMENT) && (PRINT_ENTRY) && !(LIST_MODE))
                        chpr += printf(" [of %u tile parts]",nparts);
                    chpr = newline(chpr);

                    if(ferror(inptr))
                    {
                        tag = 0;
                        continue;
                    }
                    marker_offset += seg_length + 2;
                    break;
                case JP2C_EPH:  /* End of packet header               */
                case JP2C_SOD:  /* Start of data                      */
                    name = jp2000tagname(tag);
                    if((PRINT_SEGMENT) && (PRINT_SECTION))
                    {
                        print_tag_address(SEGMENT,marker_offset,tagindent,"@");
                        if((LIST_MODE))
                        {
                            if((PRINT_TAGINFO))
                            {
                                if((PRINT_LONGNAMES))
                                    chpr += printf("JP2.jp2c.");
                                chpr += printf("%s",name);
                            }
                            if((PRINT_VALUE))
                                chpr += printf(" = @%lu",marker_offset);
                            chpr = newline(chpr);
                        }
                        else
                            chpr += printf("<%#x=%s>",tag,name);
                        chpr = newline(chpr);
                    }
                    marker_offset = start_of_tile + tile_length;
                    break;
                case JP2C_COM:
                    name = jp2000tagname(tag);
                    print_tag_address(SECTION|ENTRY,marker_offset,tagindent,"@");
                    if((LIST_MODE))
                    {
                        if((PRINT_TAGINFO))
                        {
                            if((PRINT_LONGNAMES))
                                chpr += printf("JP2.jpc.");
                            chpr += printf("Comment");
                        }
                    }
                    else
                        chpr += printf("<%#x=%s>",tag,name);
                    seg_length = read_ushort(inptr,TIFF_MOTOROLA,marker_offset + 2);
                    tmp = read_ushort(inptr,TIFF_MOTOROLA,marker_offset + 4);

                    if(ferror(inptr) == 0)
                    {
                        if(!(LIST_MODE))
                            chpr += printf(" length %u, reg %u",seg_length,
                                                                    regvalue);
                        if((PRINT_VALUE))
                        {
                            chpr += printf(" = ");
                            setcharsprinted(chpr);
                            (void)print_ascii(inptr,seg_length - 6,marker_offset + 6);
                        }
                        chpr = newline(chpr);
                        marker_offset += seg_length + 2;
                    }
                    else
                    {
                        tag = 0;
                        clearerr(inptr);
                    }
                    break;
                case JP2C_SIZ:
                    marker_offset = process_jpc_siz(inptr,marker_offset,tag,
                                                    summary_entry,tagindent);
                    break;
                case JP2C_COD:
                    marker_offset = process_jpc_cod(inptr,marker_offset,tag,
                                                    summary_entry,tagindent);
                    break;
                case JP2C_QCD:
                    marker_offset = process_jpc_qcd(inptr,marker_offset,tag,
                                                    summary_entry,tagindent);
                    break;
                case JP2C_EOC:
                    name = jp2000tagname(tag);
                    print_tag_address(SECTION|ENTRY,marker_offset,tagindent,"@");
                    if((LIST_MODE))
                    {
                        if((PRINT_TAGINFO))
                        {
                            if((PRINT_LONGNAMES))
                                chpr += printf("JP2.jp2c.");
                            chpr += printf("%s",name);
                        }
                        if((PRINT_VALUE))
                            chpr += printf(" = @%lu",marker_offset);
                        chpr = newline(chpr);
                    }
                    else
                        chpr += printf("<%#x=%s> End of codestream",tag,name);
                    chpr = newline(chpr);
                    tag = 0;
                    continue;
                    break;
                /* All of these fall through to the default           */
                case JP2C_CRG:
                case JP2C_SOP:
                case JP2C_POC:
                case JP2C_QCC:
                case JP2C_TLM:  /* Tile-part lengths, main header     */
                case JP2C_PLM:  /* Packet length, main header         */
                case JP2C_PLT:  /* Packet length, tile-part header    */
                case JP2C_PPM:  /* Packed packet headers; main header */
                case JP2C_PPT:  /* Packed packet headers; part header */
                default:
                    name = jp2000tagname(tag);
                    print_tag_address(SEGMENT,marker_offset,tagindent,"@");
                    /* These are exclude from LIST mode unless        */
                    /* SEGMENTS are explicitly enabled                */
                    if((PRINT_SEGMENT))
                    {
                        if((LIST_MODE))
                        {
                            if((PRINT_TAGINFO))
                            {
                                if((PRINT_LONGNAMES))
                                    chpr += printf("JP2.jp2c.");
                                chpr += printf("%s",name);
                            }
                            if((PRINT_VALUE))
                                chpr += printf(" = @%lu",marker_offset);
                        }
                        else
                            chpr += printf("<%#x=%s>",tag,name);
                    }
                    if((tag & 0xff00) != 0xff00)
                    {
                        tag = 0;
                        continue;
                    }
                    seg_length = read_ushort(inptr,TIFF_MOTOROLA,marker_offset + 2);
                    if(ferror(inptr) == 0)
                    {
                        if((PRINT_SEGMENT))
                        {
                            if((LIST_MODE))
                                chpr += printf(":%u",seg_length);
                            else
                                chpr += printf(" length %u",seg_length);
                            chpr = newline(chpr);
                        }
                        marker_offset += seg_length + 2;
                    }
                    else
                    {
                        tag = 0;
                        clearerr(inptr);
                    }
                    break;
            }
            tag = read_ushort(inptr,TIFF_MOTOROLA,marker_offset);
            if(ferror(inptr) == 0)
            {
                max_offset = ftell(inptr);
            }
            else
            {
                tag = 0;
                clearerr(inptr);
            }
        }
        POPCOLOR();
        if((summary_entry) && (summary_entry->length <= 0))
                summary_entry->length = max_offset - start_of_jp2c_data;
    }
    setcharsprinted(chpr);
    return(max_offset);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x80, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movl %r8d, -0x24(%rbp)
movq $0x0, -0x30(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x38(%rbp)
movq $0x0, -0x40(%rbp)
movq $0x0, -0x48(%rbp)
movw $0x0, -0x4e(%rbp)
movw $0x0, -0x50(%rbp)
movw $0x0, -0x52(%rbp)
movw $0x0, -0x54(%rbp)
movw $0x0, -0x56(%rbp)
movl $0x0, -0x5c(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x33450
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rdx
movl $0x4d4d, %esi           # imm = 0x4D4D
callq 0x4480
movw %ax, -0x56(%rbp)
movl -0x24(%rbp), %eax
movl %eax, -0x60(%rbp)
movzwl -0x56(%rbp), %eax
cmpl $0x0, %eax
je 0x33426
movzwl -0x56(%rbp), %eax
addl $0xffff00b1, %eax       # imm = 0xFFFF00B1
movl %eax, %ecx
movq %rcx, -0x78(%rbp)
subl $0x8a, %eax
ja 0x33214
movq -0x78(%rbp), %rax
leaq 0x388c3(%rip), %rcx     # 0x6b1a0
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x10(%rbp), %rax
movq %rax, -0x38(%rbp)
cmpq $0x0, -0x20(%rbp)
je 0x328ff
movq -0x20(%rbp), %rax
cmpl $0x0, 0x10(%rax)
je 0x32913
movq -0x20(%rbp), %rdi
xorl %esi, %esi
movl $0xd0a870a, %edx        # imm = 0xD0A870A
callq 0x15420
movq %rax, -0x20(%rbp)
cmpq $0x0, -0x20(%rbp)
je 0x32975
movq -0x20(%rbp), %rax
cmpq $0x0, 0x98(%rax)
ja 0x32937
movq -0x18(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x98(%rax)
movq -0x20(%rbp), %rax
cmpq $0x0, 0x90(%rax)
ja 0x32954
movq -0x38(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x90(%rax)
movq -0x20(%rbp), %rax
movq $0xd0a870a, 0x80(%rax) # imm = 0xD0A870A
movq -0x20(%rbp), %rdi
callq 0x157c0
movl %eax, %ecx
movq -0x20(%rbp), %rax
movl %ecx, 0x10(%rax)
movzwl -0x56(%rbp), %edi
callq 0x110f0
movq %rax, -0x70(%rbp)
movq -0x10(%rbp), %rsi
movl -0x60(%rbp), %edx
movl $0x4043333, %edi        # imm = 0x4043333
leaq 0x31747(%rip), %rcx     # 0x640dc
callq 0x5ed0
movb $0x0, %al
callq 0x20a00
movl %eax, -0x64(%rbp)
leaq 0x447d5(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x1040000, %rax        # imm = 0x1040000
cmpq $0x0, %rax
jne 0x32a4d
leaq 0x447bb(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x3003, %rax           # imm = 0x3003
cmpq $0x0, %rax
je 0x32a14
leaq 0x447a5(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x40, %rax
cmpq $0x0, %rax
je 0x329fc
leaq 0x38cfb(%rip), %rdi     # 0x6b6ea
movb $0x0, %al
callq 0x3110
addl -0x5c(%rbp), %eax
movl %eax, -0x5c(%rbp)
movq -0x70(%rbp), %rsi
leaq 0x31690(%rip), %rdi     # 0x64097
movb $0x0, %al
callq 0x3110
addl -0x5c(%rbp), %eax
movl %eax, -0x5c(%rbp)
leaq 0x44765(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x30, %rax
cmpq $0x0, %rax
je 0x32a40
movq -0x10(%rbp), %rsi
leaq 0x38355(%rip), %rdi     # 0x6ad88
movb $0x0, %al
callq 0x3110
addl -0x5c(%rbp), %eax
movl %eax, -0x5c(%rbp)
movl -0x5c(%rbp), %edi
callq 0x1ef50
movl %eax, -0x5c(%rbp)
jmp 0x32a69
movzwl -0x56(%rbp), %esi
movq -0x70(%rbp), %rdx
leaq 0x38c98(%rip), %rdi     # 0x6b6f4
movb $0x0, %al
callq 0x3110
addl -0x5c(%rbp), %eax
movl %eax, -0x5c(%rbp)
movl -0x5c(%rbp), %edi
callq 0x1ef50
movl %eax, -0x5c(%rbp)
movq -0x10(%rbp), %rax
addq $0x2, %rax
movq %rax, -0x10(%rbp)
jmp 0x333df
movzwl -0x56(%rbp), %edi
callq 0x110f0
movq %rax, -0x70(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rdx
addq $0x2, %rdx
movl $0x4d4d, %esi           # imm = 0x4D4D
callq 0x4480
movw %ax, -0x4a(%rbp)
movq -0x10(%rbp), %rsi
movl -0x60(%rbp), %edx
movl $0x80000, %edi          # imm = 0x80000
leaq 0x31615(%rip), %rcx     # 0x640dc
callq 0x5ed0
leaq 0x446ad(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x80000, %rax          # imm = 0x80000
cmpq $0x0, %rax
je 0x32bcf
leaq 0x44693(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x40000, %rax          # imm = 0x40000
cmpq $0x0, %rax
je 0x32bcf
leaq 0x44679(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x1040000, %rax        # imm = 0x1040000
cmpq $0x0, %rax
jne 0x32bad
leaq 0x4465f(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x3003, %rax           # imm = 0x3003
cmpq $0x0, %rax
je 0x32b70
leaq 0x44649(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x40, %rax
cmpq $0x0, %rax
je 0x32b58
leaq 0x38b9f(%rip), %rdi     # 0x6b6ea
movb $0x0, %al
callq 0x3110
addl -0x5c(%rbp), %eax
movl %eax, -0x5c(%rbp)
movq -0x70(%rbp), %rsi
leaq 0x31534(%rip), %rdi     # 0x64097
movb $0x0, %al
callq 0x3110
addl -0x5c(%rbp), %eax
movl %eax, -0x5c(%rbp)
leaq 0x44609(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x30, %rax
cmpq $0x0, %rax
je 0x32ba0
movq -0x10(%rbp), %rsi
movzwl -0x4a(%rbp), %edx
leaq 0x38b7e(%rip), %rdi     # 0x6b711
movb $0x0, %al
callq 0x3110
addl -0x5c(%rbp), %eax
movl %eax, -0x5c(%rbp)
movl -0x5c(%rbp), %edi
callq 0x1ef50
movl %eax, -0x5c(%rbp)
jmp 0x32bcd
movzwl -0x56(%rbp), %esi
movq -0x70(%rbp), %rdx
movzwl -0x4a(%rbp), %ecx
leaq 0x38b5c(%rip), %rdi     # 0x6b71c
movb $0x0, %al
callq 0x3110
addl -0x5c(%rbp), %eax
movl %eax, -0x5c(%rbp)
jmp 0x32bcf
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rdx
addq $0x4, %rdx
movl $0x4d4d, %esi           # imm = 0x4D4D
callq 0x4480
movw %ax, -0x4e(%rbp)
leaq 0x44590(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x80000, %rax          # imm = 0x80000
cmpq $0x0, %rax
je 0x32c43
leaq 0x4457a(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x4003333, %rax        # imm = 0x4003333
cmpq $0x0, %rax
je 0x32c43
leaq 0x44564(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x1040000, %rax        # imm = 0x1040000
cmpq $0x0, %rax
je 0x32c43
movzwl -0x4e(%rbp), %esi
leaq 0x38af9(%rip), %rdi     # 0x6b72f
movb $0x0, %al
callq 0x3110
addl -0x5c(%rbp), %eax
movl %eax, -0x5c(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rdx
addq $0x6, %rdx
movl $0x4d4d, %esi           # imm = 0x4D4D
callq 0x4610
movq %rax, -0x48(%rbp)
leaq 0x4451c(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x80000, %rax          # imm = 0x80000
cmpq $0x0, %rax
je 0x32cb7
leaq 0x44506(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x4003333, %rax        # imm = 0x4003333
cmpq $0x0, %rax
je 0x32cb7
leaq 0x444f0(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x1040000, %rax        # imm = 0x1040000
cmpq $0x0, %rax
je 0x32cb7
movq -0x48(%rbp), %rsi
leaq 0x38a95(%rip), %rdi     # 0x6b73f
movb $0x0, %al
callq 0x3110
addl -0x5c(%rbp), %eax
movl %eax, -0x5c(%rbp)
movq -0x8(%rbp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x4f20
movw %ax, -0x50(%rbp)
leaq 0x444b0(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x80000, %rax          # imm = 0x80000
cmpq $0x0, %rax
je 0x32d23
leaq 0x4449a(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x4003333, %rax        # imm = 0x4003333
cmpq $0x0, %rax
je 0x32d23
leaq 0x44484(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x1040000, %rax        # imm = 0x1040000
cmpq $0x0, %rax
je 0x32d23
movzwl -0x50(%rbp), %esi
leaq 0x38a3c(%rip), %rdi     # 0x6b752
movb $0x0, %al
callq 0x3110
addl -0x5c(%rbp), %eax
movl %eax, -0x5c(%rbp)
movq -0x8(%rbp), %rdi
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
callq 0x4f20
movw %ax, -0x52(%rbp)
leaq 0x44444(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x80000, %rax          # imm = 0x80000
cmpq $0x0, %rax
je 0x32d8f
leaq 0x4442e(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x4003333, %rax        # imm = 0x4003333
cmpq $0x0, %rax
je 0x32d8f
leaq 0x44418(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x1040000, %rax        # imm = 0x1040000
cmpq $0x0, %rax
je 0x32d8f
movzwl -0x52(%rbp), %esi
leaq 0x389e1(%rip), %rdi     # 0x6b763
movb $0x0, %al
callq 0x3110
addl -0x5c(%rbp), %eax
movl %eax, -0x5c(%rbp)
movl -0x5c(%rbp), %edi
callq 0x1ef50
movl %eax, -0x5c(%rbp)
movq -0x8(%rbp), %rdi
callq 0x30a0
cmpl $0x0, %eax
je 0x32db3
movw $0x0, -0x56(%rbp)
jmp 0x328ab
movzwl -0x4a(%rbp), %eax
addl $0x2, %eax
cltq
addq -0x10(%rbp), %rax
movq %rax, -0x10(%rbp)
jmp 0x333df
movzwl -0x56(%rbp), %edi
callq 0x110f0
movq %rax, -0x70(%rbp)
leaq 0x443a3(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x80000, %rax          # imm = 0x80000
cmpq $0x0, %rax
je 0x32ef2
leaq 0x44389(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x40000, %rax          # imm = 0x40000
cmpq $0x0, %rax
je 0x32ef2
movq -0x10(%rbp), %rsi
movl -0x60(%rbp), %edx
movl $0x80000, %edi          # imm = 0x80000
leaq 0x312bf(%rip), %rcx     # 0x640dc
callq 0x5ed0
leaq 0x44357(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x1040000, %rax        # imm = 0x1040000
cmpq $0x0, %rax
jne 0x32ecb
leaq 0x4433d(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x3003, %rax           # imm = 0x3003
cmpq $0x0, %rax
je 0x32e92
leaq 0x44327(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x40, %rax
cmpq $0x0, %rax
je 0x32e7a
leaq 0x3887d(%rip), %rdi     # 0x6b6ea
movb $0x0, %al
callq 0x3110
addl -0x5c(%rbp), %eax
movl %eax, -0x5c(%rbp)
movq -0x70(%rbp), %rsi
leaq 0x31212(%rip), %rdi     # 0x64097
movb $0x0, %al
callq 0x3110
addl -0x5c(%rbp), %eax
movl %eax, -0x5c(%rbp)
leaq 0x442e7(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x30, %rax
cmpq $0x0, %rax
je 0x32ebe
movq -0x10(%rbp), %rsi
leaq 0x37ed7(%rip), %rdi     # 0x6ad88
movb $0x0, %al
callq 0x3110
addl -0x5c(%rbp), %eax
movl %eax, -0x5c(%rbp)
movl -0x5c(%rbp), %edi
callq 0x1ef50
movl %eax, -0x5c(%rbp)
jmp 0x32ee7
movzwl -0x56(%rbp), %esi
movq -0x70(%rbp), %rdx
leaq 0x3889d(%rip), %rdi     # 0x6b777
movb $0x0, %al
callq 0x3110
addl -0x5c(%rbp), %eax
movl %eax, -0x5c(%rbp)
movl -0x5c(%rbp), %edi
callq 0x1ef50
movl %eax, -0x5c(%rbp)
movq -0x40(%rbp), %rax
addq -0x48(%rbp), %rax
movq %rax, -0x10(%rbp)
jmp 0x333df
movzwl -0x56(%rbp), %edi
callq 0x110f0
movq %rax, -0x70(%rbp)
movq -0x10(%rbp), %rsi
movl -0x60(%rbp), %edx
movl $0x4043333, %edi        # imm = 0x4043333
leaq 0x311b9(%rip), %rcx     # 0x640dc
callq 0x5ed0
leaq 0x44251(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x1040000, %rax        # imm = 0x1040000
cmpq $0x0, %rax
jne 0x32f92
leaq 0x4423b(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x3003, %rax           # imm = 0x3003
cmpq $0x0, %rax
je 0x32f90
leaq 0x44225(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x40, %rax
cmpq $0x0, %rax
je 0x32f7c
leaq 0x38811(%rip), %rdi     # 0x6b780
movb $0x0, %al
callq 0x3110
addl -0x5c(%rbp), %eax
movl %eax, -0x5c(%rbp)
leaq 0x39ea3(%rip), %rdi     # 0x6ce26
movb $0x0, %al
callq 0x3110
addl -0x5c(%rbp), %eax
movl %eax, -0x5c(%rbp)
jmp 0x32fae
movzwl -0x56(%rbp), %esi
movq -0x70(%rbp), %rdx
leaq 0x387d6(%rip), %rdi     # 0x6b777
movb $0x0, %al
callq 0x3110
addl -0x5c(%rbp), %eax
movl %eax, -0x5c(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rdx
addq $0x2, %rdx
movl $0x4d4d, %esi           # imm = 0x4D4D
callq 0x4480
movw %ax, -0x4a(%rbp)
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rdx
addq $0x4, %rdx
movl $0x4d4d, %esi           # imm = 0x4D4D
callq 0x4480
movw %ax, -0x4c(%rbp)
movq -0x8(%rbp), %rdi
callq 0x30a0
cmpl $0x0, %eax
jne 0x3308f
leaq 0x44185(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x1040000, %rax        # imm = 0x1040000
cmpq $0x0, %rax
je 0x33026
movzwl -0x4a(%rbp), %esi
movzwl -0x54(%rbp), %edx
leaq 0x38770(%rip), %rdi     # 0x6b789
movb $0x0, %al
callq 0x3110
addl -0x5c(%rbp), %eax
movl %eax, -0x5c(%rbp)
leaq 0x44153(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x30, %rax
cmpq $0x0, %rax
je 0x33071
leaq 0x39cd7(%rip), %rdi     # 0x6cd18
movb $0x0, %al
callq 0x3110
addl -0x5c(%rbp), %eax
movl %eax, -0x5c(%rbp)
movl -0x5c(%rbp), %edi
callq 0x1ff00
movq -0x8(%rbp), %rdi
movzwl -0x4a(%rbp), %eax
subl $0x6, %eax
movslq %eax, %rsi
movq -0x10(%rbp), %rdx
addq $0x6, %rdx
callq 0x8e70
movl -0x5c(%rbp), %edi
callq 0x1ef50
movl %eax, -0x5c(%rbp)
movzwl -0x4a(%rbp), %eax
addl $0x2, %eax
cltq
addq -0x10(%rbp), %rax
movq %rax, -0x10(%rbp)
jmp 0x3309e
movw $0x0, -0x56(%rbp)
movq -0x8(%rbp), %rdi
callq 0x31a0
jmp 0x333df
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movw -0x56(%rbp), %ax
movq -0x20(%rbp), %rcx
movl -0x60(%rbp), %r8d
movzwl %ax, %edx
callq 0x33470
movq %rax, -0x10(%rbp)
jmp 0x333df
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movw -0x56(%rbp), %ax
movq -0x20(%rbp), %rcx
movl -0x60(%rbp), %r8d
movzwl %ax, %edx
callq 0x340c0
movq %rax, -0x10(%rbp)
jmp 0x333df
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rsi
movw -0x56(%rbp), %ax
movq -0x20(%rbp), %rcx
movl -0x60(%rbp), %r8d
movzwl %ax, %edx
callq 0x34f60
movq %rax, -0x10(%rbp)
jmp 0x333df
movzwl -0x56(%rbp), %edi
callq 0x110f0
movq %rax, -0x70(%rbp)
movq -0x10(%rbp), %rsi
movl -0x60(%rbp), %edx
movl $0x4043333, %edi        # imm = 0x4043333
leaq 0x30faa(%rip), %rcx     # 0x640dc
callq 0x5ed0
leaq 0x44042(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x1040000, %rax        # imm = 0x1040000
cmpq $0x0, %rax
jne 0x331e0
leaq 0x44028(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x3003, %rax           # imm = 0x3003
cmpq $0x0, %rax
je 0x331a7
leaq 0x44012(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x40, %rax
cmpq $0x0, %rax
je 0x3318f
leaq 0x38568(%rip), %rdi     # 0x6b6ea
movb $0x0, %al
callq 0x3110
addl -0x5c(%rbp), %eax
movl %eax, -0x5c(%rbp)
movq -0x70(%rbp), %rsi
leaq 0x30efd(%rip), %rdi     # 0x64097
movb $0x0, %al
callq 0x3110
addl -0x5c(%rbp), %eax
movl %eax, -0x5c(%rbp)
leaq 0x43fd2(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x30, %rax
cmpq $0x0, %rax
je 0x331d3
movq -0x10(%rbp), %rsi
leaq 0x37bc2(%rip), %rdi     # 0x6ad88
movb $0x0, %al
callq 0x3110
addl -0x5c(%rbp), %eax
movl %eax, -0x5c(%rbp)
movl -0x5c(%rbp), %edi
callq 0x1ef50
movl %eax, -0x5c(%rbp)
jmp 0x331fc
movzwl -0x56(%rbp), %esi
movq -0x70(%rbp), %rdx
leaq 0x385ad(%rip), %rdi     # 0x6b79c
movb $0x0, %al
callq 0x3110
addl -0x5c(%rbp), %eax
movl %eax, -0x5c(%rbp)
movl -0x5c(%rbp), %edi
callq 0x1ef50
movl %eax, -0x5c(%rbp)
movw $0x0, -0x56(%rbp)
jmp 0x328ab
jmp 0x33214
movzwl -0x56(%rbp), %edi
callq 0x110f0
movq %rax, -0x70(%rbp)
movq -0x10(%rbp), %rsi
movl -0x60(%rbp), %edx
movl $0x80000, %edi          # imm = 0x80000
leaq 0x30ea8(%rip), %rcx     # 0x640dc
callq 0x5ed0
leaq 0x43f40(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x80000, %rax          # imm = 0x80000
cmpq $0x0, %rax
je 0x3330f
leaq 0x43f26(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x1040000, %rax        # imm = 0x1040000
cmpq $0x0, %rax
jne 0x332f1
leaq 0x43f0c(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x3003, %rax           # imm = 0x3003
cmpq $0x0, %rax
je 0x332c3
leaq 0x43ef6(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x40, %rax
cmpq $0x0, %rax
je 0x332ab
leaq 0x3844c(%rip), %rdi     # 0x6b6ea
movb $0x0, %al
callq 0x3110
addl -0x5c(%rbp), %eax
movl %eax, -0x5c(%rbp)
movq -0x70(%rbp), %rsi
leaq 0x30de1(%rip), %rdi     # 0x64097
movb $0x0, %al
callq 0x3110
addl -0x5c(%rbp), %eax
movl %eax, -0x5c(%rbp)
leaq 0x43eb6(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x30, %rax
cmpq $0x0, %rax
je 0x332ef
movq -0x10(%rbp), %rsi
leaq 0x37aa6(%rip), %rdi     # 0x6ad88
movb $0x0, %al
callq 0x3110
addl -0x5c(%rbp), %eax
movl %eax, -0x5c(%rbp)
jmp 0x3330d
movzwl -0x56(%rbp), %esi
movq -0x70(%rbp), %rdx
leaq 0x38477(%rip), %rdi     # 0x6b777
movb $0x0, %al
callq 0x3110
addl -0x5c(%rbp), %eax
movl %eax, -0x5c(%rbp)
jmp 0x3330f
movzwl -0x56(%rbp), %eax
andl $0xff00, %eax           # imm = 0xFF00
cmpl $0xff00, %eax           # imm = 0xFF00
je 0x3332a
movw $0x0, -0x56(%rbp)
jmp 0x328ab
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rdx
addq $0x2, %rdx
movl $0x4d4d, %esi           # imm = 0x4D4D
callq 0x4480
movw %ax, -0x4a(%rbp)
movq -0x8(%rbp), %rdi
callq 0x30a0
cmpl $0x0, %eax
jne 0x333ce
leaq 0x43e27(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x80000, %rax          # imm = 0x80000
cmpq $0x0, %rax
je 0x333bb
leaq 0x43e11(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x1040000, %rax        # imm = 0x1040000
cmpq $0x0, %rax
jne 0x33398
movzwl -0x4a(%rbp), %esi
leaq 0x3838f(%rip), %rdi     # 0x6b718
movb $0x0, %al
callq 0x3110
addl -0x5c(%rbp), %eax
movl %eax, -0x5c(%rbp)
jmp 0x333b0
movzwl -0x4a(%rbp), %esi
leaq 0x38381(%rip), %rdi     # 0x6b724
movb $0x0, %al
callq 0x3110
addl -0x5c(%rbp), %eax
movl %eax, -0x5c(%rbp)
movl -0x5c(%rbp), %edi
callq 0x1ef50
movl %eax, -0x5c(%rbp)
movzwl -0x4a(%rbp), %eax
addl $0x2, %eax
cltq
addq -0x10(%rbp), %rax
movq %rax, -0x10(%rbp)
jmp 0x333dd
movw $0x0, -0x56(%rbp)
movq -0x8(%rbp), %rdi
callq 0x31a0
jmp 0x333df
movq -0x8(%rbp), %rdi
movq -0x10(%rbp), %rdx
movl $0x4d4d, %esi           # imm = 0x4D4D
callq 0x4480
movw %ax, -0x56(%rbp)
movq -0x8(%rbp), %rdi
callq 0x30a0
cmpl $0x0, %eax
jne 0x33412
movq -0x8(%rbp), %rdi
callq 0x3180
movq %rax, -0x30(%rbp)
jmp 0x33421
movw $0x0, -0x56(%rbp)
movq -0x8(%rbp), %rdi
callq 0x31a0
jmp 0x328ab
cmpq $0x0, -0x20(%rbp)
je 0x3344e
movq -0x20(%rbp), %rax
cmpq $0x0, 0x98(%rax)
ja 0x3344e
movq -0x30(%rbp), %rcx
subq -0x38(%rbp), %rcx
movq -0x20(%rbp), %rax
movq %rcx, 0x98(%rax)
jmp 0x33450
movl -0x5c(%rbp), %edi
callq 0x1ff00
movq -0x30(%rbp), %rax
addq $0x80, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)