// File: /workspace/github_c_makefile_star2_O0/hfiguiere[P]exifprobe/interpret.c
// Function: print_flash
void
print_flash(unsigned long flash)
{
    unsigned long bits;
    int chpr = 0;

    print_startvalue();
    bits = flash & 0x1;
    if(bits != 0)
        chpr += printf("flash fired");
    else
        chpr += printf("no flash");    /* there will be more          */
    bits = (flash & 0x6) >> 1;
    switch(bits)    /* return detection                               */
    {
        case 2: chpr += printf(" - return not detected"); break;
        case 3: chpr += printf(" - return detected"); break;
        default: break;
    }
    bits = (flash & 0x18) >> 3; /* flash mode                         */
    switch(bits)
    {
        case 1: chpr += printf(" - compulsory"); break;
        case 2: chpr += printf(" - suppressed"); break;
        case 3: chpr += printf(" - auto"); break;
        default: break;
    }
    bits = (flash & 0x20) >> 5; /* flash function                     */
    if(bits != 0)
        chpr += printf(" - no flash function present");
    bits = (flash & 0x40) >> 6; /* red-eye                            */
    if(bits != 0)
        chpr += printf(" - no red-eye function present");
    print_endvalue();
    setcharsprinted(chpr);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x8(%rbp)
movl $0x0, -0x14(%rbp)
movb $0x0, %al
callq 0xb9a0
movq -0x8(%rbp), %rax
andq $0x1, %rax
movq %rax, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
je 0x22053
leaq 0x46a93(%rip), %rdi     # 0x68ad7
movb $0x0, %al
callq 0x3110
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
jmp 0x22067
leaq 0x46a89(%rip), %rdi     # 0x68ae3
movb $0x0, %al
callq 0x3110
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
movl -0x8(%rbp), %eax
andl $0x6, %eax
shrl %eax
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x20(%rbp)
subq $0x2, %rax
je 0x2208f
jmp 0x22083
movq -0x20(%rbp), %rax
subq $0x3, %rax
je 0x220a5
jmp 0x220bb
leaq 0x46a56(%rip), %rdi     # 0x68aec
movb $0x0, %al
callq 0x3110
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
jmp 0x220bd
leaq 0x46a57(%rip), %rdi     # 0x68b03
movb $0x0, %al
callq 0x3110
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
jmp 0x220bd
jmp 0x220bd
movl -0x8(%rbp), %eax
andl $0x18, %eax
shrl $0x3, %eax
movq %rax, -0x10(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x28(%rbp)
subq $0x1, %rax
je 0x220f2
jmp 0x220da
movq -0x28(%rbp), %rax
subq $0x2, %rax
je 0x22108
jmp 0x220e6
movq -0x28(%rbp), %rax
subq $0x3, %rax
je 0x2211e
jmp 0x22134
leaq 0x46a1d(%rip), %rdi     # 0x68b16
movb $0x0, %al
callq 0x3110
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
jmp 0x22136
leaq 0x46a15(%rip), %rdi     # 0x68b24
movb $0x0, %al
callq 0x3110
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
jmp 0x22136
leaq 0x46a0d(%rip), %rdi     # 0x68b32
movb $0x0, %al
callq 0x3110
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
jmp 0x22136
jmp 0x22136
movq -0x8(%rbp), %rax
andq $0x20, %rax
shrq $0x5, %rax
movq %rax, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
je 0x22161
leaq 0x469e6(%rip), %rdi     # 0x68b3a
movb $0x0, %al
callq 0x3110
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
movq -0x8(%rbp), %rax
andq $0x40, %rax
shrq $0x6, %rax
movq %rax, -0x10(%rbp)
cmpq $0x0, -0x10(%rbp)
je 0x2218c
leaq 0x469d8(%rip), %rdi     # 0x68b57
movb $0x0, %al
callq 0x3110
addl -0x14(%rbp), %eax
movl %eax, -0x14(%rbp)
movb $0x0, %al
callq 0xb9d0
movl -0x14(%rbp), %edi
callq 0x1ff00
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)