// File: /workspace/github_c_makefile_star2_O0/hfiguiere[P]exifprobe/process.c
// Function: process_pim
unsigned long
process_pim(FILE *inptr,unsigned short byteorder,unsigned long pim_offset,
                    unsigned long fileoffset_base, unsigned long count,
                    char *tagname,char *dirname,char *prefix,
                    int indent)
{
    unsigned long entry_offset,extra,value;
    unsigned long max_offset = 0L;
    unsigned long max_value_offset = 0L;
    unsigned char *pim_id,*pim_version,*valueptr;
    unsigned short tag;
    int tagwidth = PIMTAGWIDTH;
    int chpr = 0;
    int entry_num,num_entries;

    if(inptr == (FILE *)0)
    {
        fprintf(stderr,"%s: no open file pointer to read Print Image data\n",
                Progname);
        max_offset = 0L;
        return(0L);
    }

    entry_offset = pim_offset + fileoffset_base;
    max_offset = entry_offset + count;

    /* Always starts with "PrintIM\0"; read it as a sanity check      */
    pim_id = read_bytes(inptr,8,entry_offset);
    if((pim_id == (unsigned char *)0) || strncasecmp((char *)pim_id,"PrintIM",8) != 0)
    {
        /* Print the value as a comment here, since we are processing */
        /* no further.                                                */
        if(PRINT_SECTION)
        {
            print_tag_address(SECTION,entry_offset,indent,prefix);
            chpr += printf("%s",tagname);
            if((PRINT_VALUE))
                chpr += printf(": length %lu",count);
        }
        if(!(PRINT_SECTION))
        {
            chpr = newline(chpr);
            printred("# WARNING:");
        }
        printred(" INVALID PrintImage data...");
        return(0L);
    }
    chpr = newline(0);

    pim_version = read_bytes(inptr,6,HERE);
    num_entries = read_ushort(inptr,byteorder,HERE);

    if(PRINT_SECTION)
    {
        print_tag_address(SECTION,entry_offset,indent,prefix);
        chpr += printf("<%s> Version %s, size %lu, %d entries",tagname,pim_version,
                                                                count,num_entries);
        if((num_entries * 6) > (count - 16))
        {
            chpr = newline(chpr);
            num_entries = (count - 16) / 6;
            PUSHCOLOR(HI_RED);
            chpr += printf("# WARNING: PIM claims too many entries for section size, printing %d",num_entries);
            POPCOLOR();
        }
    }
    else
    {

        /* Make pseudo-tags for these                                 */
        if((PRINT_TAGINFO) || (PRINT_VALUE))
            print_tag_address(ENTRY,HERE,indent+SMALLINDENT,"*");
        if(PRINT_TAGINFO)
        {
            if((PRINT_LONGNAMES))
                chpr += printf("%s.",dirname);
            chpr += printf("%s.",tagname);
            chpr += printf("%-*.*s",tagwidth,tagwidth,"Offset");
        }
        if((PRINT_VALUE))
            chpr += printf(" = @%lu",entry_offset);
        chpr = newline(chpr);
        if((PRINT_TAGINFO) || (PRINT_VALUE))
            print_tag_address(ENTRY,HERE,indent+SMALLINDENT,"*");
        if(PRINT_TAGINFO)
        {
            if((PRINT_LONGNAMES))
                chpr += printf("%s.",dirname);
            chpr += printf("%s.",tagname);
            chpr += printf("%-*.*s",tagwidth,tagwidth,"Length");
        }
        if((PRINT_VALUE))
            chpr += printf(" = %lu",count);
        chpr = newline(chpr);
        if((PRINT_TAGINFO) || (PRINT_VALUE))
            print_tag_address(ENTRY,HERE,indent+SMALLINDENT,"*");
        if(PRINT_TAGINFO)
        {
            if((PRINT_LONGNAMES))
                chpr += printf("%s.",dirname);
            chpr += printf("%s.",tagname);
            chpr += printf("%-*.*s",tagwidth,tagwidth,"Version");
        }
        if((PRINT_VALUE))
            chpr += printf(" = %s",pim_version);
        chpr = newline(chpr);
        if((num_entries * 6) > (count - 16))
        {
            chpr = newline(chpr);
            chpr += printf("# WARNING: PIM claims too many entries (%d) for section size; ",num_entries);
            num_entries = (count - 16) / 6;
            PUSHCOLOR(HI_RED);
            chpr += printf("printing %d",num_entries);
            POPCOLOR();
        }
    }
    
    max_value_offset = entry_offset = ftell(inptr);

    indent += SMALLINDENT;
    for(entry_num = 0; entry_num < num_entries; ++entry_num)
    {
        int i;

        chpr = newline(chpr);
        tag = read_ushort(inptr,byteorder,HERE);
        if(ferror(inptr) || feof(inptr))
            goto blewit;
        if((PRINT_ENTRY))
        {
            print_tag_address(ENTRY,entry_offset,indent,prefix);
            if((PRINT_TAGINFO))
            {
                if((PRINT_LONGNAMES))
                    chpr += printf("%s.%s.",dirname,tagname);
                else if((LIST_MODE))
                    chpr += printf("%s.",tagname);
                chpr += printf("PIM_%#06X",(int)tag);
                if((PRINT_VALUE))
                {
                    putindent(tagwidth - 10);
                    chpr += printf(" = ");
                }
            }
        }
        valueptr = read_bytes(inptr,4,HERE);
        value = read_ulong(inptr,byteorder,entry_offset + 2);

        if(PRINT_SECTION)
        {
            if((PRINT_VALUE))
            {
                for(i = 0; i < 4; ++i)
                    chpr += printf("%02x ",(unsigned int)(valueptr[i] & 0xff));
                chpr += printf(" |");
                for(i = 0; i < 4; ++i)
                {
                    if(isprint(valueptr[i]))
                        putchar(valueptr[i]);
                    else
                        putchar('.');  /* can't win 'em all  */
                }
                chpr += printf("| = %#lx/%lu",value,value);
            }
        }
        else if((PRINT_VALUE))
            chpr += printf("%#lx/%lu",value,value);

        max_value_offset = entry_offset = ftell(inptr);
    }

    if(PRINT_SECTION)
    {
        chpr = newline(chpr);
        if((max_value_offset < max_offset) && PRINT_VALUE_AT_OFFSET)
        {
            int printlength = 0;

            print_tag_address(SECTION,max_value_offset,indent,"*");
            PUSHCOLOR(RED);
            chpr += printf("---- End of values before end of %s section",tagname);
            POPCOLOR();
            chpr = newline(chpr);
            extra = max_offset - max_value_offset;
            /* dump the extra as UNDEFINED                            */
            if(Max_undefined)
            {
                if((Max_undefined == DUMPALL) || (Max_undefined > extra))
                    printlength = extra;
                else if(Max_undefined > 0L)
                    printlength = Max_undefined;
                hexdump(inptr,max_value_offset,extra,printlength,6,indent,
                                                    SMALLINDENT+8);
            }
            chpr = newline(chpr);
        }
        indent -= SMALLINDENT;
        print_tag_address(SECTION,max_offset - 1,indent,"-");
        chpr += printf("</%s>",tagname);
    }

    setcharsprinted(chpr);
    return(max_value_offset - 1);
blewit:
    clearerr(inptr);
    return(0L);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xa0, %rsp
movw %si, %ax
movl 0x20(%rbp), %esi
movq 0x18(%rbp), %rsi
movq 0x10(%rbp), %rsi
movq %rdi, -0x10(%rbp)
movw %ax, -0x12(%rbp)
movq %rdx, -0x20(%rbp)
movq %rcx, -0x28(%rbp)
movq %r8, -0x30(%rbp)
movq %r9, -0x38(%rbp)
movq $0x0, -0x58(%rbp)
movq $0x0, -0x60(%rbp)
movl $0x11, -0x80(%rbp)
movl $0x0, -0x84(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x199e0
movq 0x5d648(%rip), %rax     # 0x76ff8
movq (%rax), %rdi
leaq 0x5eaae(%rip), %rax     # 0x78468
movq (%rax), %rdx
leaq 0x4e0a1(%rip), %rsi     # 0x67a65
movb $0x0, %al
callq 0x3170
movq $0x0, -0x58(%rbp)
movq $0x0, -0x8(%rbp)
jmp 0x1a4bf
movq -0x20(%rbp), %rax
addq -0x28(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rax
addq -0x30(%rbp), %rax
movq %rax, -0x58(%rbp)
movq -0x10(%rbp), %rdi
movq -0x40(%rbp), %rdx
movl $0x8, %esi
callq 0x47a0
movq %rax, -0x68(%rbp)
cmpq $0x0, -0x68(%rbp)
je 0x19a33
movq -0x68(%rbp), %rdi
leaq 0x4c0aa(%rip), %rsi     # 0x65aca
movl $0x8, %edx
callq 0x31e0
cmpl $0x0, %eax
je 0x19afc
leaq 0x5d746(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x40000, %rax          # imm = 0x40000
cmpq $0x0, %rax
je 0x19ab0
movq -0x40(%rbp), %rsi
movl 0x20(%rbp), %edx
movq 0x18(%rbp), %rcx
movl $0x40000, %edi          # imm = 0x40000
callq 0x5ed0
movq -0x38(%rbp), %rsi
leaq 0x4a62e(%rip), %rdi     # 0x64097
movb $0x0, %al
callq 0x3110
addl -0x84(%rbp), %eax
movl %eax, -0x84(%rbp)
leaq 0x5d6fd(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x30, %rax
cmpq $0x0, %rax
je 0x19aae
movq -0x30(%rbp), %rsi
leaq 0x4dffd(%rip), %rdi     # 0x67a98
movb $0x0, %al
callq 0x3110
addl -0x84(%rbp), %eax
movl %eax, -0x84(%rbp)
jmp 0x19ab0
leaq 0x5d6c9(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x40000, %rax          # imm = 0x40000
cmpq $0x0, %rax
jne 0x19ae3
movl -0x84(%rbp), %edi
callq 0x1ef50
movl %eax, -0x84(%rbp)
leaq 0x4dfc7(%rip), %rdi     # 0x67aa5
callq 0x6860
leaq 0x4dfc6(%rip), %rdi     # 0x67ab0
callq 0x6860
movq $0x0, -0x8(%rbp)
jmp 0x1a4bf
xorl %edi, %edi
callq 0x1ef50
movl %eax, -0x84(%rbp)
movq -0x10(%rbp), %rdi
movl $0x6, %esi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x47a0
movq %rax, -0x70(%rbp)
movq -0x10(%rbp), %rdi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
movzwl -0x12(%rbp), %esi
callq 0x4480
movzwl %ax, %eax
movl %eax, -0x8c(%rbp)
leaq 0x5d63e(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x40000, %rax          # imm = 0x40000
cmpq $0x0, %rax
je 0x19bfb
movq -0x40(%rbp), %rsi
movl 0x20(%rbp), %edx
movq 0x18(%rbp), %rcx
movl $0x40000, %edi          # imm = 0x40000
callq 0x5ed0
movq -0x38(%rbp), %rsi
movq -0x70(%rbp), %rdx
movq -0x30(%rbp), %rcx
movl -0x8c(%rbp), %r8d
leaq 0x4df48(%rip), %rdi     # 0x67acc
movb $0x0, %al
callq 0x3110
addl -0x84(%rbp), %eax
movl %eax, -0x84(%rbp)
imull $0x6, -0x8c(%rbp), %eax
cltq
movq -0x30(%rbp), %rcx
subq $0x10, %rcx
cmpq %rcx, %rax
jbe 0x19bf6
movl -0x84(%rbp), %edi
callq 0x1ef50
movl %eax, -0x84(%rbp)
movq -0x30(%rbp), %rax
subq $0x10, %rax
movl $0x6, %ecx
xorl %edx, %edx
divq %rcx
movl %eax, -0x8c(%rbp)
movl -0x8c(%rbp), %esi
leaq 0x4df0f(%rip), %rdi     # 0x67af2
movb $0x0, %al
callq 0x3110
addl -0x84(%rbp), %eax
movl %eax, -0x84(%rbp)
jmp 0x19fbe
leaq 0x5d57e(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x3003, %rax           # imm = 0x3003
cmpq $0x0, %rax
jne 0x19c25
leaq 0x5d568(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x30, %rax
cmpq $0x0, %rax
je 0x19c41
movl 0x20(%rbp), %edx
addl $0x2, %edx
movl $0x4003333, %edi        # imm = 0x4003333
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
leaq 0x4ace8(%rip), %rcx     # 0x64924
callq 0x5ed0
leaq 0x5d538(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x3003, %rax           # imm = 0x3003
cmpq $0x0, %rax
je 0x19cce
leaq 0x5d522(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x40, %rax
cmpq $0x0, %rax
je 0x19c89
movq 0x10(%rbp), %rsi
leaq 0x4df03(%rip), %rdi     # 0x67b79
movb $0x0, %al
callq 0x3110
addl -0x84(%rbp), %eax
movl %eax, -0x84(%rbp)
movq -0x38(%rbp), %rsi
leaq 0x4dee5(%rip), %rdi     # 0x67b79
movb $0x0, %al
callq 0x3110
addl -0x84(%rbp), %eax
movl %eax, -0x84(%rbp)
movl -0x80(%rbp), %esi
movl -0x80(%rbp), %edx
leaq 0x513e8(%rip), %rdi     # 0x6b09c
leaq 0x52215(%rip), %rcx     # 0x6bed0
movb $0x0, %al
callq 0x3110
addl -0x84(%rbp), %eax
movl %eax, -0x84(%rbp)
leaq 0x5d4ab(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x30, %rax
cmpq $0x0, %rax
je 0x19d00
movq -0x40(%rbp), %rsi
leaq 0x5109b(%rip), %rdi     # 0x6ad88
movb $0x0, %al
callq 0x3110
addl -0x84(%rbp), %eax
movl %eax, -0x84(%rbp)
movl -0x84(%rbp), %edi
callq 0x1ef50
movl %eax, -0x84(%rbp)
leaq 0x5d468(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x3003, %rax           # imm = 0x3003
cmpq $0x0, %rax
jne 0x19d3b
leaq 0x5d452(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x30, %rax
cmpq $0x0, %rax
je 0x19d57
movl 0x20(%rbp), %edx
addl $0x2, %edx
movl $0x4003333, %edi        # imm = 0x4003333
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
leaq 0x4abd2(%rip), %rcx     # 0x64924
callq 0x5ed0
leaq 0x5d422(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x3003, %rax           # imm = 0x3003
cmpq $0x0, %rax
je 0x19de4
leaq 0x5d40c(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x40, %rax
cmpq $0x0, %rax
je 0x19d9f
movq 0x10(%rbp), %rsi
leaq 0x4dded(%rip), %rdi     # 0x67b79
movb $0x0, %al
callq 0x3110
addl -0x84(%rbp), %eax
movl %eax, -0x84(%rbp)
movq -0x38(%rbp), %rsi
leaq 0x4ddcf(%rip), %rdi     # 0x67b79
movb $0x0, %al
callq 0x3110
addl -0x84(%rbp), %eax
movl %eax, -0x84(%rbp)
movl -0x80(%rbp), %esi
movl -0x80(%rbp), %edx
leaq 0x512d2(%rip), %rdi     # 0x6b09c
leaq 0x5210c(%rip), %rcx     # 0x6bedd
movb $0x0, %al
callq 0x3110
addl -0x84(%rbp), %eax
movl %eax, -0x84(%rbp)
leaq 0x5d395(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x30, %rax
cmpq $0x0, %rax
je 0x19e16
movq -0x30(%rbp), %rsi
leaq 0x4a2c8(%rip), %rdi     # 0x640cb
movb $0x0, %al
callq 0x3110
addl -0x84(%rbp), %eax
movl %eax, -0x84(%rbp)
movl -0x84(%rbp), %edi
callq 0x1ef50
movl %eax, -0x84(%rbp)
leaq 0x5d352(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x3003, %rax           # imm = 0x3003
cmpq $0x0, %rax
jne 0x19e51
leaq 0x5d33c(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x30, %rax
cmpq $0x0, %rax
je 0x19e6d
movl 0x20(%rbp), %edx
addl $0x2, %edx
movl $0x4003333, %edi        # imm = 0x4003333
movl $0xffffffff, %esi       # imm = 0xFFFFFFFF
leaq 0x4aabc(%rip), %rcx     # 0x64924
callq 0x5ed0
leaq 0x5d30c(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x3003, %rax           # imm = 0x3003
cmpq $0x0, %rax
je 0x19efa
leaq 0x5d2f6(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x40, %rax
cmpq $0x0, %rax
je 0x19eb5
movq 0x10(%rbp), %rsi
leaq 0x4dcd7(%rip), %rdi     # 0x67b79
movb $0x0, %al
callq 0x3110
addl -0x84(%rbp), %eax
movl %eax, -0x84(%rbp)
movq -0x38(%rbp), %rsi
leaq 0x4dcb9(%rip), %rdi     # 0x67b79
movb $0x0, %al
callq 0x3110
addl -0x84(%rbp), %eax
movl %eax, -0x84(%rbp)
movl -0x80(%rbp), %esi
movl -0x80(%rbp), %edx
leaq 0x511bc(%rip), %rdi     # 0x6b09c
leaq 0x4bc1b(%rip), %rcx     # 0x65b02
movb $0x0, %al
callq 0x3110
addl -0x84(%rbp), %eax
movl %eax, -0x84(%rbp)
leaq 0x5d27f(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x30, %rax
cmpq $0x0, %rax
je 0x19f2c
movq -0x70(%rbp), %rsi
leaq 0x4a17b(%rip), %rdi     # 0x64094
movb $0x0, %al
callq 0x3110
addl -0x84(%rbp), %eax
movl %eax, -0x84(%rbp)
movl -0x84(%rbp), %edi
callq 0x1ef50
movl %eax, -0x84(%rbp)
imull $0x6, -0x8c(%rbp), %eax
cltq
movq -0x30(%rbp), %rcx
subq $0x10, %rcx
cmpq %rcx, %rax
jbe 0x19fbc
movl -0x84(%rbp), %edi
callq 0x1ef50
movl %eax, -0x84(%rbp)
movl -0x8c(%rbp), %esi
leaq 0x4dbc6(%rip), %rdi     # 0x67b37
movb $0x0, %al
callq 0x3110
addl -0x84(%rbp), %eax
movl %eax, -0x84(%rbp)
movq -0x30(%rbp), %rax
subq $0x10, %rax
movl $0x6, %ecx
xorl %edx, %edx
divq %rcx
movl %eax, -0x8c(%rbp)
movl -0x8c(%rbp), %esi
leaq 0x4db82(%rip), %rdi     # 0x67b2b
movb $0x0, %al
callq 0x3110
addl -0x84(%rbp), %eax
movl %eax, -0x84(%rbp)
jmp 0x19fbe
movq -0x10(%rbp), %rdi
callq 0x3180
movq %rax, -0x40(%rbp)
movq %rax, -0x60(%rbp)
movl 0x20(%rbp), %eax
addl $0x2, %eax
movl %eax, 0x20(%rbp)
movl $0x0, -0x88(%rbp)
movl -0x88(%rbp), %eax
cmpl -0x8c(%rbp), %eax
jge 0x1a30f
movl -0x84(%rbp), %edi
callq 0x1ef50
movl %eax, -0x84(%rbp)
movq -0x10(%rbp), %rdi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
movzwl -0x12(%rbp), %esi
callq 0x4480
movw %ax, -0x7a(%rbp)
movq -0x10(%rbp), %rdi
callq 0x30a0
cmpl $0x0, %eax
jne 0x1a037
movq -0x10(%rbp), %rdi
callq 0x3190
cmpl $0x0, %eax
je 0x1a03c
jmp 0x1a4ae
leaq 0x5d13d(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x4003333, %rax        # imm = 0x4003333
cmpq $0x0, %rax
je 0x1a14e
movq -0x40(%rbp), %rsi
movl 0x20(%rbp), %edx
movq 0x18(%rbp), %rcx
movl $0x4003333, %edi        # imm = 0x4003333
callq 0x5ed0
leaq 0x5d10e(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x3003, %rax           # imm = 0x3003
cmpq $0x0, %rax
je 0x1a14c
leaq 0x5d0f4(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x40, %rax
cmpq $0x0, %rax
je 0x1a0bd
movq 0x10(%rbp), %rsi
movq -0x38(%rbp), %rdx
leaq 0x4dace(%rip), %rdi     # 0x67b76
movb $0x0, %al
callq 0x3110
addl -0x84(%rbp), %eax
movl %eax, -0x84(%rbp)
jmp 0x1a0f3
leaq 0x5d0bc(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x1040000, %rax        # imm = 0x1040000
cmpq $0x0, %rax
jne 0x1a0f1
movq -0x38(%rbp), %rsi
leaq 0x4da9b(%rip), %rdi     # 0x67b79
movb $0x0, %al
callq 0x3110
addl -0x84(%rbp), %eax
movl %eax, -0x84(%rbp)
jmp 0x1a0f3
movzwl -0x7a(%rbp), %esi
leaq 0x4da7f(%rip), %rdi     # 0x67b7d
movb $0x0, %al
callq 0x3110
addl -0x84(%rbp), %eax
movl %eax, -0x84(%rbp)
leaq 0x5d068(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x30, %rax
cmpq $0x0, %rax
je 0x1a14a
movl -0x80(%rbp), %edi
subl $0xa, %edi
callq 0x60e0
leaq 0x52be1(%rip), %rdi     # 0x6cd18
movb $0x0, %al
callq 0x3110
addl -0x84(%rbp), %eax
movl %eax, -0x84(%rbp)
jmp 0x1a14c
jmp 0x1a14e
movq -0x10(%rbp), %rdi
movl $0x4, %esi
movl $0xffffffff, %edx       # imm = 0xFFFFFFFF
callq 0x47a0
movq %rax, -0x78(%rbp)
movq -0x10(%rbp), %rdi
movw -0x12(%rbp), %ax
movq -0x40(%rbp), %rdx
addq $0x2, %rdx
movzwl %ax, %esi
callq 0x4610
movq %rax, -0x50(%rbp)
leaq 0x5cff8(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x40000, %rax          # imm = 0x40000
cmpq $0x0, %rax
je 0x1a2b2
leaq 0x5cfde(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x30, %rax
cmpq $0x0, %rax
je 0x1a2b0
movl $0x0, -0x90(%rbp)
cmpl $0x4, -0x90(%rbp)
jge 0x1a206
movq -0x78(%rbp), %rax
movslq -0x90(%rbp), %rcx
movzbl (%rax,%rcx), %esi
andl $0xff, %esi
leaq 0x4a7f3(%rip), %rdi     # 0x649d5
movb $0x0, %al
callq 0x3110
addl -0x84(%rbp), %eax
movl %eax, -0x84(%rbp)
movl -0x90(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x90(%rbp)
jmp 0x1a1bd
leaq 0x4a7ce(%rip), %rdi     # 0x649db
movb $0x0, %al
callq 0x3110
addl -0x84(%rbp), %eax
movl %eax, -0x84(%rbp)
movl $0x0, -0x90(%rbp)
cmpl $0x4, -0x90(%rbp)
jge 0x1a28e
callq 0x32c0
movq (%rax), %rax
movq -0x78(%rbp), %rcx
movslq -0x90(%rbp), %rdx
movzbl (%rcx,%rdx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x4000, %eax           # imm = 0x4000
cmpl $0x0, %eax
je 0x1a271
movq -0x78(%rbp), %rax
movslq -0x90(%rbp), %rcx
movzbl (%rax,%rcx), %edi
callq 0x3050
jmp 0x1a27b
movl $0x2e, %edi
callq 0x3050
jmp 0x1a27d
movl -0x90(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x90(%rbp)
jmp 0x1a22a
movq -0x50(%rbp), %rsi
movq -0x50(%rbp), %rdx
leaq 0x4d8ea(%rip), %rdi     # 0x67b87
movb $0x0, %al
callq 0x3110
addl -0x84(%rbp), %eax
movl %eax, -0x84(%rbp)
jmp 0x1a2ea
leaq 0x5cec7(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x30, %rax
cmpq $0x0, %rax
je 0x1a2e8
movq -0x50(%rbp), %rsi
movq -0x50(%rbp), %rdx
leaq 0x49e17(%rip), %rdi     # 0x640ec
movb $0x0, %al
callq 0x3110
addl -0x84(%rbp), %eax
movl %eax, -0x84(%rbp)
jmp 0x1a2ea
movq -0x10(%rbp), %rdi
callq 0x3180
movq %rax, -0x40(%rbp)
movq %rax, -0x60(%rbp)
movl -0x88(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x88(%rbp)
jmp 0x19fe2
leaq 0x5ce6a(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x40000, %rax          # imm = 0x40000
cmpq $0x0, %rax
je 0x1a495
movl -0x84(%rbp), %edi
callq 0x1ef50
movl %eax, -0x84(%rbp)
movq -0x60(%rbp), %rax
cmpq -0x58(%rbp), %rax
jae 0x1a452
leaq 0x5ce31(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x1000000, %rax        # imm = 0x1000000
cmpq $0x0, %rax
je 0x1a452
movl $0x0, -0x94(%rbp)
movq -0x60(%rbp), %rsi
movl 0x20(%rbp), %edx
movl $0x40000, %edi          # imm = 0x40000
leaq 0x4a5a5(%rip), %rcx     # 0x64924
callq 0x5ed0
movq -0x38(%rbp), %rsi
leaq 0x4d805(%rip), %rdi     # 0x67b94
movb $0x0, %al
callq 0x3110
addl -0x84(%rbp), %eax
movl %eax, -0x84(%rbp)
movl -0x84(%rbp), %edi
callq 0x1ef50
movl %eax, -0x84(%rbp)
movq -0x58(%rbp), %rax
subq -0x60(%rbp), %rax
movq %rax, -0x48(%rbp)
leaq 0x5e042(%rip), %rax     # 0x78408
cmpq $0x0, (%rax)
je 0x1a441
movl $0xffffffff, %ecx       # imm = 0xFFFFFFFF
leaq 0x5e030(%rip), %rax     # 0x78408
cmpq %rcx, (%rax)
je 0x1a3ed
leaq 0x5e024(%rip), %rax     # 0x78408
movq (%rax), %rax
cmpq -0x48(%rbp), %rax
jbe 0x1a3f9
movq -0x48(%rbp), %rax
movl %eax, -0x94(%rbp)
jmp 0x1a418
leaq 0x5e008(%rip), %rax     # 0x78408
cmpq $0x0, (%rax)
jbe 0x1a416
leaq 0x5dffb(%rip), %rax     # 0x78408
movq (%rax), %rax
movl %eax, -0x94(%rbp)
jmp 0x1a418
movq -0x10(%rbp), %rdi
movq -0x60(%rbp), %rsi
movq -0x48(%rbp), %rdx
movslq -0x94(%rbp), %rcx
movl 0x20(%rbp), %r9d
movl $0x6, %r8d
movl $0xa, (%rsp)
callq 0x8aa0
movl -0x84(%rbp), %edi
callq 0x1ef50
movl %eax, -0x84(%rbp)
movl 0x20(%rbp), %eax
subl $0x2, %eax
movl %eax, 0x20(%rbp)
movq -0x58(%rbp), %rsi
subq $0x1, %rsi
movl 0x20(%rbp), %edx
movl $0x40000, %edi          # imm = 0x40000
leaq 0x49c87(%rip), %rcx     # 0x640f9
callq 0x5ed0
movq -0x38(%rbp), %rsi
leaq 0x4a678(%rip), %rdi     # 0x64afa
movb $0x0, %al
callq 0x3110
addl -0x84(%rbp), %eax
movl %eax, -0x84(%rbp)
movl -0x84(%rbp), %edi
callq 0x1ff00
movq -0x60(%rbp), %rax
subq $0x1, %rax
movq %rax, -0x8(%rbp)
jmp 0x1a4bf
movq -0x10(%rbp), %rdi
callq 0x31a0
movq $0x0, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0xa0, %rsp
popq %rbp
retq
nopl (%rax)