// File: /workspace/github_c_makefile_star2_O2/genometools[P]genometools/src/core/file.c
// Function: xvprintf
static int xvprintf(GtFile *file, const char *format, va_list va, int buflen)
{
  int rval = 0;

  if (!file) /* implies stdout */
    gt_xvfprintf(stdout, format, va);
  else {
    switch (file->mode) {
      case GT_FILE_MODE_UNCOMPRESSED:
        gt_xvfprintf(file->fileptr.file, format, va);
        break;
      case GT_FILE_MODE_GZIP:
        rval = vgzprintf(file->fileptr.gzfile, format, va, buflen);
        break;
      case GT_FILE_MODE_BZIP2:
        rval = vbzprintf(file->fileptr.bzfile, format, va, buflen);
        break;
      default: gt_assert(0);
    }
  }
  return rval;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x2008, %rsp           # imm = 0x2008
movq %rdx, %rbx
movq %rsi, %r15
testq %rdi, %rdi
je 0x54440
movl %ecx, %r14d
movl (%rdi), %eax
cmpl $0x2, %eax
je 0x544bb
cmpl $0x1, %eax
je 0x5445a
testl %eax, %eax
jne 0x54585
movq 0x10(%rdi), %rdi
jmp 0x5444a
movq 0xd9b01(%rip), %rax     # 0x12df48
movq (%rax), %rdi
movq %r15, %rsi
movq %rbx, %rdx
callq 0x16667
jmp 0x5451f
movq 0x10(%rdi), %r12
testl %r14d, %r14d
je 0x54533
leal 0x1(%r14), %ebp
leaq 0x85a41(%rip), %rsi     # 0xd9eb3
movq %rbp, %rdi
movl $0xff, %edx
callq 0xccb0
movq %rax, %r13
movq %rax, %rdi
movq %rbp, %rsi
movq %r15, %rdx
movq %rbx, %rcx
callq 0x16687
cmpl %r14d, %eax
jne 0x545b3
movq %r12, %rdi
movq %r13, %rsi
movl %r14d, %edx
callq 0x6285e
leaq 0x85a02(%rip), %rsi     # 0xd9eb3
movq %r13, %rdi
movl $0x103, %edx            # imm = 0x103
jmp 0x5451a
movq 0x10(%rdi), %r12
testl %r14d, %r14d
je 0x5455c
leal 0x1(%r14), %ebp
leaq 0x859e0(%rip), %rsi     # 0xd9eb3
movq %rbp, %rdi
movl $0x116, %edx            # imm = 0x116
callq 0xccb0
movq %rax, %r13
movq %rax, %rdi
movq %rbp, %rsi
movq %r15, %rdx
movq %rbx, %rcx
callq 0x16687
cmpl %r14d, %eax
jne 0x545e1
movq %r12, %rdi
movq %r13, %rsi
movl %r14d, %edx
callq 0x62294
leaq 0x859a1(%rip), %rsi     # 0xd9eb3
movq %r13, %rdi
movl $0x11a, %edx            # imm = 0x11A
callq 0xd249
xorl %eax, %eax
addq $0x2008, %rsp           # imm = 0x2008
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rsp, %rdi
movl $0x2000, %esi           # imm = 0x2000
movq %r15, %rdx
movq %rbx, %rcx
callq 0x16687
cmpl $0x1fff, %eax           # imm = 0x1FFF
jg 0x54521
movq %rsp, %rsi
movq %r12, %rdi
movl %eax, %edx
callq 0x6285e
jmp 0x5451f
movq %rsp, %rdi
movl $0x2000, %esi           # imm = 0x2000
movq %r15, %rdx
movq %rbx, %rcx
callq 0x16687
cmpl $0x1fff, %eax           # imm = 0x1FFF
jg 0x54521
movq %rsp, %rsi
movq %r12, %rdi
movl %eax, %edx
callq 0x62294
jmp 0x5451f
movq 0xd9a2c(%rip), %rax     # 0x12dfb8
movq (%rax), %rdi
leaq 0x75ad0(%rip), %rsi     # 0xca066
leaq 0x870a4(%rip), %rdx     # 0xdb641
leaq 0x85a6a(%rip), %rcx     # 0xda00e
leaq 0x85908(%rip), %r8      # 0xd9eb3
movl $0x130, %r9d            # imm = 0x130
jmp 0x5460d
movq 0xd99fe(%rip), %rax     # 0x12dfb8
movq (%rax), %rdi
leaq 0x75aa2(%rip), %rsi     # 0xca066
leaq 0x85a4c(%rip), %rdx     # 0xda017
leaq 0x85a53(%rip), %rcx     # 0xda025
leaq 0x858da(%rip), %r8      # 0xd9eb3
movl $0x101, %r9d            # imm = 0x101
jmp 0x5460d
movq 0xd99d0(%rip), %rax     # 0x12dfb8
movq (%rax), %rdi
leaq 0x75a74(%rip), %rsi     # 0xca066
leaq 0x85a1e(%rip), %rdx     # 0xda017
leaq 0x85a2f(%rip), %rcx     # 0xda02f
leaq 0x858ac(%rip), %r8      # 0xd9eb3
movl $0x118, %r9d            # imm = 0x118
xorl %eax, %eax
callq 0xb8c0
callq 0xb300