// File: /workspace/github_c_makefile_star2_O0/hfiguiere[P]exifprobe/print.c
// Function: print_value
void
print_value(struct ifd_entry *entry_ptr,char *prefix)
{
    unsigned long byte;
    unsigned short ushort_val;
    unsigned long i;
    int chpr = 0;

    if(entry_ptr && (PRINT_VALUE))
    {
        if(prefix)
            chpr += printf("%s",prefix);
        switch(entry_ptr->value_type)
        {
            case SBYTE:
                byte = entry_ptr->value;
                for(i = 0; i < entry_ptr->count; ++i)
                {
                    if(PRINT_BOTH_VALUE)
                        chpr += printf("%#x=%d",(unsigned int)((char)byte & 0xff),
                                    (int)((char)byte & 0xff));
                    else if(PRINT_HEX_VALUE)
                        chpr += printf("%#x",(unsigned int)((char)byte & 0xff));
                    else if(PRINT_DEC_VALUE)
                        chpr += printf("%d",(int)((char)byte & 0xff));
                    byte >>= 8;
                }
                break;
            case SHORT:
                ushort_val = entry_ptr->value ;
                if(PRINT_BOTH_VALUE)
                    chpr += printf("%#x=%u",ushort_val,ushort_val);
                else if(PRINT_HEX_VALUE)
                    chpr += printf("%#x",ushort_val);
                else if(PRINT_DEC_VALUE)
                    chpr += printf("%u",ushort_val);
                if(entry_ptr->count > 1)
                {
                    (void)putchar(','); ++chpr;
                    ushort_val = (entry_ptr->value & 0xffff0000) >> 16;
                    if(PRINT_BOTH_VALUE)
                        chpr += printf("%#x=%u",ushort_val,ushort_val);
                    else if(PRINT_HEX_VALUE)
                        chpr += printf("%#x",ushort_val);
                    else if(PRINT_DEC_VALUE)
                        chpr += printf("%u",ushort_val);
                }
                break;
            case SSHORT:
                ushort_val = entry_ptr->value & 0xffff;
                if(PRINT_BOTH_VALUE)
                    chpr += printf("%#x=%d",(unsigned int)ushort_val,
                                (int)ushort_val);
                else if(PRINT_HEX_VALUE)
                    chpr += printf("%#x",(unsigned int)ushort_val);
                else if(PRINT_DEC_VALUE)
                    chpr += printf("%d",(int)ushort_val);
                if(entry_ptr->count > 1)
                {
                    (void)putchar(',');
                    ushort_val = (entry_ptr->value & 0xffff0000) >> 16;
                    if(PRINT_BOTH_VALUE)
                        chpr += printf("%#x=%d",(unsigned int)ushort_val,
                                    (int)ushort_val);
                    else if(PRINT_HEX_VALUE)
                        chpr += printf("%#x",(unsigned int)ushort_val);
                    else if(PRINT_DEC_VALUE)
                        chpr += printf("%d",(int)ushort_val);
                }
                break;
            case LONG:
                if(PRINT_BOTH_VALUE)
                    chpr += printf("0x%08lx=%lu",entry_ptr->value,
                                entry_ptr->value);
                else if(PRINT_HEX_VALUE)
                    chpr += printf("0x%08lx",entry_ptr->value);
                else if(PRINT_DEC_VALUE)
                    chpr += printf("%lu",entry_ptr->value);
                break;
            case SLONG:
                if(PRINT_BOTH_VALUE)
                    chpr += printf("%#lx=%ld",(unsigned long)entry_ptr->value,
                                (long)entry_ptr->value);
                else if(PRINT_HEX_VALUE)
                    chpr += printf("%#lx",(unsigned long)entry_ptr->value);
                else if(PRINT_DEC_VALUE)
                    chpr += printf("%ld",(long)entry_ptr->value);
                break;
            case ASCII:
                byte = entry_ptr->value;
                if(entry_ptr->count <= 4)
                {
                    chpr += printf("\'");
                    for(i = 0; i < entry_ptr->count; ++i)
                    {
                        if(isprint(byte & 0xff))
                            (void)putchar(byte & 0xff);
                        else
                            chpr += printf("\\%03ld",byte & 0xff);
                        byte >>= 8;
                        ++chpr;
                    }
                    chpr += printf("\'");
                }
                break;
            case FLOAT:
                chpr += printf("%g",(float)entry_ptr->value);
                break;
            case DOUBLE: /* double is not possible in a direct ifd entry  */
                chpr += printf("# DOUBLE TYPE IS INVALID HERE");
                break;
            case UNDEFINED: /* fall through; handle these as BYTE         */
            case BYTE:
        default:
                byte = entry_ptr->value;
                for(i = 0; i < entry_ptr->count; ++i)
                {
                    if(i)
                        (void)putchar(',');
                    if(PRINT_BOTH_VALUE)
                        chpr += printf("%#lx=%lu",byte & 0xff,byte & 0xff);
                    else if(PRINT_HEX_VALUE)
                        chpr += printf("%#lx",byte & 0xff);
                    else if(PRINT_DEC_VALUE)
                        chpr += printf("%lu",byte & 0xff);
                    byte >>= 8;
                }
                /* UNDEFINED stuff may be ascii                   */
                byte = entry_ptr->value;
                if((entry_ptr->value_type == UNDEFINED) &&
                    (entry_ptr->count == 4) &&
                        isprint(byte & 0xff))   
                        
                {
                    chpr += printf(" = \'");
                    for(i = 0; i < entry_ptr->count; ++i)
                    {
                        if(isprint(byte & 0xff))
                            (void)putchar(byte & 0xff);
                        else
                            (void)putchar('.');
                        byte >>= 8;
                        ++chpr;
                    }
                    (void)putchar('\'');
                    ++chpr;
                }
                break;
        }
    }
    setcharsprinted(chpr);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movl $0x0, -0x2c(%rbp)
cmpq $0x0, -0x8(%rbp)
je 0x7ac4
leaq 0x6ff87(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x30, %rax
cmpq $0x0, %rax
je 0x7ac4
cmpq $0x0, -0x10(%rbp)
je 0x7229
movq -0x10(%rbp), %rsi
leaq 0x5ce7b(%rip), %rdi     # 0x64097
movb $0x0, %al
callq 0x3110
addl -0x2c(%rbp), %eax
movl %eax, -0x2c(%rbp)
movq -0x8(%rbp), %rax
movzwl 0x2(%rax), %eax
decl %eax
movl %eax, %ecx
movq %rcx, -0x38(%rbp)
subl $0xb, %eax
ja 0x78cb
movq -0x38(%rbp), %rax
leaq 0x5d1b3(%rip), %rcx     # 0x64400
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x18(%rbp)
movq $0x0, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq -0x8(%rbp), %rcx
cmpq 0x8(%rcx), %rax
jae 0x734d
leaq 0x6fefd(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x30, %rax
cmpq $0x30, %rax
jne 0x72c0
movq -0x18(%rbp), %rax
movsbl %al, %esi
andl $0xff, %esi
movq -0x18(%rbp), %rax
movsbl %al, %edx
andl $0xff, %edx
leaq 0x5d367(%rip), %rdi     # 0x64618
movb $0x0, %al
callq 0x3110
addl -0x2c(%rbp), %eax
movl %eax, -0x2c(%rbp)
jmp 0x7330
leaq 0x6feb9(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x10, %rax
cmpq $0x0, %rax
je 0x72f7
movq -0x18(%rbp), %rax
movsbl %al, %esi
andl $0xff, %esi
leaq 0x645c1(%rip), %rdi     # 0x6b8a9
movb $0x0, %al
callq 0x3110
addl -0x2c(%rbp), %eax
movl %eax, -0x2c(%rbp)
jmp 0x732e
leaq 0x6fe82(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x20, %rax
cmpq $0x0, %rax
je 0x732c
movq -0x18(%rbp), %rax
movsbl %al, %esi
andl $0xff, %esi
leaq 0x609da(%rip), %rdi     # 0x67cf9
movb $0x0, %al
callq 0x3110
addl -0x2c(%rbp), %eax
movl %eax, -0x2c(%rbp)
jmp 0x732e
jmp 0x7330
movq -0x18(%rbp), %rax
shrq $0x8, %rax
movq %rax, -0x18(%rbp)
movq -0x28(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x28(%rbp)
jmp 0x726a
jmp 0x7ac2
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movw %ax, -0x1a(%rbp)
leaq 0x6fe1b(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x30, %rax
cmpq $0x30, %rax
jne 0x7390
movzwl -0x1a(%rbp), %esi
movzwl -0x1a(%rbp), %edx
leaq 0x5d29e(%rip), %rdi     # 0x6461f
movb $0x0, %al
callq 0x3110
addl -0x2c(%rbp), %eax
movl %eax, -0x2c(%rbp)
jmp 0x73ee
leaq 0x6fde9(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x10, %rax
cmpq $0x0, %rax
je 0x73be
movzwl -0x1a(%rbp), %esi
leaq 0x644fa(%rip), %rdi     # 0x6b8a9
movb $0x0, %al
callq 0x3110
addl -0x2c(%rbp), %eax
movl %eax, -0x2c(%rbp)
jmp 0x73ec
leaq 0x6fdbb(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x20, %rax
cmpq $0x0, %rax
je 0x73ea
movzwl -0x1a(%rbp), %esi
leaq 0x60252(%rip), %rdi     # 0x6762f
movb $0x0, %al
callq 0x3110
addl -0x2c(%rbp), %eax
movl %eax, -0x2c(%rbp)
jmp 0x73ec
jmp 0x73ee
movq -0x8(%rbp), %rax
cmpq $0x1, 0x8(%rax)
jbe 0x74bc
movl $0x2c, %edi
callq 0x3050
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
movq -0x8(%rbp), %rcx
movabsq $0xffff0000, %rax       # imm = 0xFFFF0000
andq 0x10(%rcx), %rax
shrq $0x10, %rax
movw %ax, -0x1a(%rbp)
leaq 0x6fd4f(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x30, %rax
cmpq $0x30, %rax
jne 0x745c
movzwl -0x1a(%rbp), %esi
movzwl -0x1a(%rbp), %edx
leaq 0x5d1d2(%rip), %rdi     # 0x6461f
movb $0x0, %al
callq 0x3110
addl -0x2c(%rbp), %eax
movl %eax, -0x2c(%rbp)
jmp 0x74ba
leaq 0x6fd1d(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x10, %rax
cmpq $0x0, %rax
je 0x748a
movzwl -0x1a(%rbp), %esi
leaq 0x6442e(%rip), %rdi     # 0x6b8a9
movb $0x0, %al
callq 0x3110
addl -0x2c(%rbp), %eax
movl %eax, -0x2c(%rbp)
jmp 0x74b8
leaq 0x6fcef(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x20, %rax
cmpq $0x0, %rax
je 0x74b6
movzwl -0x1a(%rbp), %esi
leaq 0x60186(%rip), %rdi     # 0x6762f
movb $0x0, %al
callq 0x3110
addl -0x2c(%rbp), %eax
movl %eax, -0x2c(%rbp)
jmp 0x74b8
jmp 0x74ba
jmp 0x74bc
jmp 0x7ac2
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
andq $0xffff, %rax           # imm = 0xFFFF
movw %ax, -0x1a(%rbp)
leaq 0x6fca6(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x30, %rax
cmpq $0x30, %rax
jne 0x7505
movzwl -0x1a(%rbp), %esi
movzwl -0x1a(%rbp), %edx
leaq 0x5d122(%rip), %rdi     # 0x64618
movb $0x0, %al
callq 0x3110
addl -0x2c(%rbp), %eax
movl %eax, -0x2c(%rbp)
jmp 0x7563
leaq 0x6fc74(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x10, %rax
cmpq $0x0, %rax
je 0x7533
movzwl -0x1a(%rbp), %esi
leaq 0x64385(%rip), %rdi     # 0x6b8a9
movb $0x0, %al
callq 0x3110
addl -0x2c(%rbp), %eax
movl %eax, -0x2c(%rbp)
jmp 0x7561
leaq 0x6fc46(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x20, %rax
cmpq $0x0, %rax
je 0x755f
movzwl -0x1a(%rbp), %esi
leaq 0x607a7(%rip), %rdi     # 0x67cf9
movb $0x0, %al
callq 0x3110
addl -0x2c(%rbp), %eax
movl %eax, -0x2c(%rbp)
jmp 0x7561
jmp 0x7563
movq -0x8(%rbp), %rax
cmpq $0x1, 0x8(%rax)
jbe 0x7628
movl $0x2c, %edi
callq 0x3050
movq -0x8(%rbp), %rcx
movabsq $0xffff0000, %rax       # imm = 0xFFFF0000
andq 0x10(%rcx), %rax
shrq $0x10, %rax
movw %ax, -0x1a(%rbp)
leaq 0x6fbe3(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x30, %rax
cmpq $0x30, %rax
jne 0x75c8
movzwl -0x1a(%rbp), %esi
movzwl -0x1a(%rbp), %edx
leaq 0x5d05f(%rip), %rdi     # 0x64618
movb $0x0, %al
callq 0x3110
addl -0x2c(%rbp), %eax
movl %eax, -0x2c(%rbp)
jmp 0x7626
leaq 0x6fbb1(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x10, %rax
cmpq $0x0, %rax
je 0x75f6
movzwl -0x1a(%rbp), %esi
leaq 0x642c2(%rip), %rdi     # 0x6b8a9
movb $0x0, %al
callq 0x3110
addl -0x2c(%rbp), %eax
movl %eax, -0x2c(%rbp)
jmp 0x7624
leaq 0x6fb83(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x20, %rax
cmpq $0x0, %rax
je 0x7622
movzwl -0x1a(%rbp), %esi
leaq 0x606e4(%rip), %rdi     # 0x67cf9
movb $0x0, %al
callq 0x3110
addl -0x2c(%rbp), %eax
movl %eax, -0x2c(%rbp)
jmp 0x7624
jmp 0x7626
jmp 0x7628
jmp 0x7ac2
leaq 0x6fb4c(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x30, %rax
cmpq $0x30, %rax
jne 0x7667
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rsi
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rdx
leaq 0x5cfce(%rip), %rdi     # 0x64626
movb $0x0, %al
callq 0x3110
addl -0x2c(%rbp), %eax
movl %eax, -0x2c(%rbp)
jmp 0x76cd
leaq 0x6fb12(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x10, %rax
cmpq $0x0, %rax
je 0x7699
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rsi
leaq 0x5cfa8(%rip), %rdi     # 0x64632
movb $0x0, %al
callq 0x3110
addl -0x2c(%rbp), %eax
movl %eax, -0x2c(%rbp)
jmp 0x76cb
leaq 0x6fae0(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x20, %rax
cmpq $0x0, %rax
je 0x76c9
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rsi
leaq 0x637e4(%rip), %rdi     # 0x6aea0
movb $0x0, %al
callq 0x3110
addl -0x2c(%rbp), %eax
movl %eax, -0x2c(%rbp)
jmp 0x76cb
jmp 0x76cd
jmp 0x7ac2
leaq 0x6faa7(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x30, %rax
cmpq $0x30, %rax
jne 0x770c
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rsi
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rdx
leaq 0x5cf3d(%rip), %rdi     # 0x6463a
movb $0x0, %al
callq 0x3110
addl -0x2c(%rbp), %eax
movl %eax, -0x2c(%rbp)
jmp 0x7772
leaq 0x6fa6d(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x10, %rax
cmpq $0x0, %rax
je 0x773e
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rsi
leaq 0x66c81(%rip), %rdi     # 0x6e3b0
movb $0x0, %al
callq 0x3110
addl -0x2c(%rbp), %eax
movl %eax, -0x2c(%rbp)
jmp 0x7770
leaq 0x6fa3b(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x20, %rax
cmpq $0x0, %rax
je 0x776e
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rsi
leaq 0x650b3(%rip), %rdi     # 0x6c814
movb $0x0, %al
callq 0x3110
addl -0x2c(%rbp), %eax
movl %eax, -0x2c(%rbp)
jmp 0x7770
jmp 0x7772
jmp 0x7ac2
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x18(%rbp)
movq -0x8(%rbp), %rax
cmpq $0x4, 0x8(%rax)
ja 0x784c
leaq 0x5feca(%rip), %rdi     # 0x67663
movb $0x0, %al
callq 0x3110
addl -0x2c(%rbp), %eax
movl %eax, -0x2c(%rbp)
movq $0x0, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq -0x8(%rbp), %rcx
cmpq 0x8(%rcx), %rax
jae 0x7838
callq 0x32c0
movq (%rax), %rax
movq -0x18(%rbp), %rcx
andq $0xff, %rcx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x4000, %eax           # imm = 0x4000
cmpl $0x0, %eax
je 0x77f3
movq -0x18(%rbp), %rax
andq $0xff, %rax
movl %eax, %edi
callq 0x3050
jmp 0x7812
movq -0x18(%rbp), %rsi
andq $0xff, %rsi
leaq 0x5ce3e(%rip), %rdi     # 0x64643
movb $0x0, %al
callq 0x3110
addl -0x2c(%rbp), %eax
movl %eax, -0x2c(%rbp)
movq -0x18(%rbp), %rax
shrq $0x8, %rax
movq %rax, -0x18(%rbp)
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
movq -0x28(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x28(%rbp)
jmp 0x77ae
leaq 0x5fe24(%rip), %rdi     # 0x67663
movb $0x0, %al
callq 0x3110
addl -0x2c(%rbp), %eax
movl %eax, -0x2c(%rbp)
jmp 0x7ac2
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, %rdx
shrq %rdx
movl %eax, %ecx
andl $0x1, %ecx
orq %rdx, %rcx
cvtsi2ss %rcx, %xmm0
addss %xmm0, %xmm0
cvtsi2ss %rax, %xmm1
movss %xmm1, -0x40(%rbp)
testq %rax, %rax
movss %xmm0, -0x3c(%rbp)
js 0x788e
movss -0x40(%rbp), %xmm0
movss %xmm0, -0x3c(%rbp)
movss -0x3c(%rbp), %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x6411c(%rip), %rdi     # 0x6b9ba
movb $0x1, %al
callq 0x3110
addl -0x2c(%rbp), %eax
movl %eax, -0x2c(%rbp)
jmp 0x7ac2
leaq 0x5cd93(%rip), %rdi     # 0x6464a
movb $0x0, %al
callq 0x3110
addl -0x2c(%rbp), %eax
movl %eax, -0x2c(%rbp)
jmp 0x7ac2
jmp 0x78cb
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x18(%rbp)
movq $0x0, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq -0x8(%rbp), %rcx
cmpq 0x8(%rcx), %rax
jae 0x79cb
cmpq $0x0, -0x28(%rbp)
je 0x7902
movl $0x2c, %edi
callq 0x3050
leaq 0x6f877(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x30, %rax
cmpq $0x30, %rax
jne 0x7942
movq -0x18(%rbp), %rsi
andq $0xff, %rsi
movq -0x18(%rbp), %rdx
andq $0xff, %rdx
leaq 0x5d25c(%rip), %rdi     # 0x64b8f
movb $0x0, %al
callq 0x3110
addl -0x2c(%rbp), %eax
movl %eax, -0x2c(%rbp)
jmp 0x79ae
leaq 0x6f837(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x10, %rax
cmpq $0x0, %rax
je 0x7977
movq -0x18(%rbp), %rsi
andq $0xff, %rsi
leaq 0x66a48(%rip), %rdi     # 0x6e3b0
movb $0x0, %al
callq 0x3110
addl -0x2c(%rbp), %eax
movl %eax, -0x2c(%rbp)
jmp 0x79ac
leaq 0x6f802(%rip), %rax     # 0x77180
movq (%rax), %rax
andq $0x20, %rax
cmpq $0x0, %rax
je 0x79aa
movq -0x18(%rbp), %rsi
andq $0xff, %rsi
leaq 0x63503(%rip), %rdi     # 0x6aea0
movb $0x0, %al
callq 0x3110
addl -0x2c(%rbp), %eax
movl %eax, -0x2c(%rbp)
jmp 0x79ac
jmp 0x79ae
movq -0x18(%rbp), %rax
shrq $0x8, %rax
movq %rax, -0x18(%rbp)
movq -0x28(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x28(%rbp)
jmp 0x78df
movq -0x8(%rbp), %rax
movq 0x10(%rax), %rax
movq %rax, -0x18(%rbp)
movq -0x8(%rbp), %rax
movzwl 0x2(%rax), %eax
cmpl $0x7, %eax
jne 0x7ac0
movq -0x8(%rbp), %rax
cmpq $0x4, 0x8(%rax)
jne 0x7ac0
callq 0x32c0
movq (%rax), %rax
movq -0x18(%rbp), %rcx
andq $0xff, %rcx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x4000, %eax           # imm = 0x4000
cmpl $0x0, %eax
je 0x7ac0
leaq 0x5cc42(%rip), %rdi     # 0x64668
movb $0x0, %al
callq 0x3110
addl -0x2c(%rbp), %eax
movl %eax, -0x2c(%rbp)
movq $0x0, -0x28(%rbp)
movq -0x28(%rbp), %rax
movq -0x8(%rbp), %rcx
cmpq 0x8(%rcx), %rax
jae 0x7aad
callq 0x32c0
movq (%rax), %rax
movq -0x18(%rbp), %rcx
andq $0xff, %rcx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x4000, %eax           # imm = 0x4000
cmpl $0x0, %eax
je 0x7a80
movq -0x18(%rbp), %rax
andq $0xff, %rax
movl %eax, %edi
callq 0x3050
jmp 0x7a8a
movl $0x2e, %edi
callq 0x3050
movq -0x18(%rbp), %rax
shrq $0x8, %rax
movq %rax, -0x18(%rbp)
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
movq -0x28(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x28(%rbp)
jmp 0x7a3b
movl $0x27, %edi
callq 0x3050
movl -0x2c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x2c(%rbp)
jmp 0x7ac2
jmp 0x7ac4
movl -0x2c(%rbp), %edi
callq 0x1ff00
addq $0x40, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)