// File: /workspace/github_c_makefile_star2_O0/Matthias-Wandel[P]imgcomp/src/exif.c
// Function: PrintFormatNumber
void PrintFormatNumber(void * ValuePtr, int Format, int ByteCount)
{
    int s,n;

    for(n=0;n<16;n++){
        switch(Format){
            case FMT_SBYTE:
            case FMT_BYTE:      printf("%02x",*(uchar *)ValuePtr); s=1;  break;
            case FMT_USHORT:    printf("%d",Get16u(ValuePtr)); s=2;      break;
            case FMT_ULONG:     
            case FMT_SLONG:     printf("%d",Get32s(ValuePtr)); s=4;      break;
            case FMT_SSHORT:    printf("%hd",(signed short)Get16u(ValuePtr)); s=2; break;
            case FMT_URATIONAL:
                printf("%u/%u",Get32s(ValuePtr), Get32s(4+(char *)ValuePtr)); 
                s = 8;
                break;

            case FMT_SRATIONAL: 
                printf("%d/%d",Get32s(ValuePtr), Get32s(4+(char *)ValuePtr)); 
                s = 8;
                break;

            case FMT_SINGLE:    printf("%f",(double)*(float *)ValuePtr); s=8; break;
            case FMT_DOUBLE:    printf("%f",*(double *)ValuePtr);        s=8; break;
            default: 
                printf("Unknown format %d:", Format);
                return;
        }
        ByteCount -= s;
        if (ByteCount <= 0) break;
        printf(", ");
        ValuePtr = (void *)((char *)ValuePtr + s);

    }
    if (n >= 16) printf("...");
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl %edx, -0x10(%rbp)
movl $0x0, -0x18(%rbp)
cmpl $0x10, -0x18(%rbp)
jge 0x947c
movl -0xc(%rbp), %eax
decl %eax
movl %eax, %ecx
movq %rcx, -0x20(%rbp)
subl $0xb, %eax
ja 0x942b
movq -0x20(%rbp), %rax
leaq 0x68ee(%rip), %rcx      # 0xfbd0
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x8(%rbp), %rax
movzbl (%rax), %esi
leaq 0x6b63(%rip), %rdi      # 0xfe5c
movb $0x0, %al
callq 0x3170
movl $0x1, -0x14(%rbp)
jmp 0x943e
movq -0x8(%rbp), %rdi
callq 0x9120
movl %eax, %esi
leaq 0x83b2(%rip), %rdi      # 0x116d0
movb $0x0, %al
callq 0x3170
movl $0x2, -0x14(%rbp)
jmp 0x943e
movq -0x8(%rbp), %rdi
callq 0x9170
movl %eax, %esi
leaq 0x838d(%rip), %rdi      # 0x116d0
movb $0x0, %al
callq 0x3170
movl $0x4, -0x14(%rbp)
jmp 0x943e
movq -0x8(%rbp), %rdi
callq 0x9120
movswl %ax, %esi
leaq 0x6af8(%rip), %rdi      # 0xfe61
movb $0x0, %al
callq 0x3170
movl $0x2, -0x14(%rbp)
jmp 0x943e
movq -0x8(%rbp), %rdi
callq 0x9170
movl %eax, -0x24(%rbp)
movq -0x8(%rbp), %rdi
addq $0x4, %rdi
callq 0x9170
movl -0x24(%rbp), %esi
movl %eax, %edx
leaq 0x6ac4(%rip), %rdi      # 0xfe65
movb $0x0, %al
callq 0x3170
movl $0x8, -0x14(%rbp)
jmp 0x943e
movq -0x8(%rbp), %rdi
callq 0x9170
movl %eax, -0x28(%rbp)
movq -0x8(%rbp), %rdi
addq $0x4, %rdi
callq 0x9170
movl -0x28(%rbp), %esi
movl %eax, %edx
leaq 0x6a92(%rip), %rdi      # 0xfe6b
movb $0x0, %al
callq 0x3170
movl $0x8, -0x14(%rbp)
jmp 0x943e
movq -0x8(%rbp), %rax
movss (%rax), %xmm0
cvtss2sd %xmm0, %xmm0
leaq 0x6071(%rip), %rdi      # 0xf46d
movb $0x1, %al
callq 0x3170
movl $0x8, -0x14(%rbp)
jmp 0x943e
movq -0x8(%rbp), %rax
movsd (%rax), %xmm0
leaq 0x6052(%rip), %rdi      # 0xf46d
movb $0x1, %al
callq 0x3170
movl $0x8, -0x14(%rbp)
jmp 0x943e
movl -0xc(%rbp), %esi
leaq 0x6a3c(%rip), %rdi      # 0xfe71
movb $0x0, %al
callq 0x3170
jmp 0x9490
movl -0x14(%rbp), %ecx
movl -0x10(%rbp), %eax
subl %ecx, %eax
movl %eax, -0x10(%rbp)
cmpl $0x0, -0x10(%rbp)
jg 0x9451
jmp 0x947c
leaq 0x6a2c(%rip), %rdi      # 0xfe84
movb $0x0, %al
callq 0x3170
movq -0x8(%rbp), %rax
movslq -0x14(%rbp), %rcx
addq %rcx, %rax
movq %rax, -0x8(%rbp)
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
jmp 0x92b9
cmpl $0x10, -0x18(%rbp)
jl 0x9490
leaq 0x69fe(%rip), %rdi      # 0xfe87
movb $0x0, %al
callq 0x3170
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)