// File: /workspace/github_c_makefile_star2_O0/icebert[P]pblat/jkOwnLib/gfOut.c
// Function: gfOutputAny
struct gfOutput *gfOutputAny(char *format, 
	int goodPpt, boolean qIsProt, boolean tIsProt, 
	boolean noHead, char *databaseName,
	int databaseSeqCount, double databaseLetters,
	double minIdentity,
	FILE *f)
/* Initialize output in a variety of formats in file or memory. 
 * Parameters:
 *    format - either 'psl', 'pslx', 'sim4', 'blast', 'wublast', 'axt', 'xml'
 *    goodPpt - minimum identity of alignments to output in parts per thousand
 *    qIsProt - true if query side is a protein.
 *    tIsProt - true if target (database) side is a protein.
 *    noHead - if true suppress header in psl/pslx output.
 *    databaseName - name of database.  Only used for blast output
 *    databaseSeq - number of sequences in database - only for blast
 *    databaseLetters - number of bases/aas in database - only blast
 *    minIdentity - minimum identity - only blast
 *    FILE *f - file.  
 */
{
struct gfOutput *out = NULL;
static char *blastTypes[] = {"blast", "wublast", "blast8", "blast9", "xml"};

if (format == NULL)
    format = "psl";
if (sameWord(format, "psl"))
    out = gfOutputPsl(goodPpt, qIsProt, tIsProt, f, FALSE, noHead);
else if (sameWord(format, "pslx"))
    out = gfOutputPsl(goodPpt, qIsProt, tIsProt, f, TRUE, noHead);
else if (sameWord(format, "sim4"))
    out = gfOutputSim4(goodPpt, qIsProt, tIsProt, databaseName);
else if (stringArrayIx(format, blastTypes, ArraySize(blastTypes)) >= 0)
    out = gfOutputBlast(goodPpt, qIsProt, tIsProt, 
	    databaseName, databaseSeqCount, databaseLetters, format, 
	    minIdentity, f);
else if (sameWord(format, "axt"))
    out = gfOutputAxt(goodPpt, qIsProt, tIsProt, f);
else if (sameWord(format, "maf"))
    out = gfOutputMaf(goodPpt, qIsProt, tIsProt, f);
else
    errAbort("Unrecognized output format '%s'", format);
return out;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x40, %rsp
movq 0x18(%rbp), %rax
movl 0x10(%rbp), %eax
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
movl %edx, -0x10(%rbp)
movl %ecx, -0x14(%rbp)
movl %r8d, -0x18(%rbp)
movq %r9, -0x20(%rbp)
movsd %xmm0, -0x28(%rbp)
movsd %xmm1, -0x30(%rbp)
movq $0x0, -0x38(%rbp)
cmpq $0x0, -0x8(%rbp)
jne 0x17488
leaq 0xc0d6f(%rip), %rax     # 0xd81f3
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rdi
leaq 0xc0d60(%rip), %rsi     # 0xd81f3
callq 0x2b9f0
cmpl $0x0, %eax
jne 0x174bf
movl -0xc(%rbp), %edi
movl -0x10(%rbp), %esi
movl -0x14(%rbp), %edx
movq 0x18(%rbp), %rcx
movl -0x18(%rbp), %r9d
xorl %r8d, %r8d
callq 0x16760
movq %rax, -0x38(%rbp)
jmp 0x175eb
movq -0x8(%rbp), %rdi
leaq 0xc0caa(%rip), %rsi     # 0xd8174
callq 0x2b9f0
cmpl $0x0, %eax
jne 0x174f9
movl -0xc(%rbp), %edi
movl -0x10(%rbp), %esi
movl -0x14(%rbp), %edx
movq 0x18(%rbp), %rcx
movl -0x18(%rbp), %r9d
movl $0x1, %r8d
callq 0x16760
movq %rax, -0x38(%rbp)
jmp 0x175e9
movq -0x8(%rbp), %rdi
leaq 0xc0c75(%rip), %rsi     # 0xd8179
callq 0x2b9f0
cmpl $0x0, %eax
jne 0x17529
movl -0xc(%rbp), %edi
movl -0x10(%rbp), %esi
movl -0x14(%rbp), %edx
movq -0x20(%rbp), %rcx
callq 0x170a0
movq %rax, -0x38(%rbp)
jmp 0x175e7
movq -0x8(%rbp), %rdi
leaq 0xee8ec(%rip), %rsi     # 0x105e20
movl $0x5, %edx
callq 0x2f620
cmpl $0x0, %eax
jl 0x17575
movl -0xc(%rbp), %edi
movl -0x10(%rbp), %esi
movl -0x14(%rbp), %edx
movq -0x20(%rbp), %rcx
movl 0x10(%rbp), %r8d
movsd -0x28(%rbp), %xmm0
movq -0x8(%rbp), %r9
movsd -0x30(%rbp), %xmm1
movq 0x18(%rbp), %rax
movq %rax, (%rsp)
callq 0x17310
movq %rax, -0x38(%rbp)
jmp 0x175e5
movq -0x8(%rbp), %rdi
leaq 0xc0bfe(%rip), %rsi     # 0xd817e
callq 0x2b9f0
cmpl $0x0, %eax
jne 0x175a2
movl -0xc(%rbp), %edi
movl -0x10(%rbp), %esi
movl -0x14(%rbp), %edx
movq 0x18(%rbp), %rcx
callq 0x16ec0
movq %rax, -0x38(%rbp)
jmp 0x175e3
movq -0x8(%rbp), %rdi
leaq 0xc4217(%rip), %rsi     # 0xdb7c4
callq 0x2b9f0
cmpl $0x0, %eax
jne 0x175cf
movl -0xc(%rbp), %edi
movl -0x10(%rbp), %esi
movl -0x14(%rbp), %edx
movq 0x18(%rbp), %rcx
callq 0x16f80
movq %rax, -0x38(%rbp)
jmp 0x175e1
movq -0x8(%rbp), %rsi
leaq 0xc0ba8(%rip), %rdi     # 0xd8182
movb $0x0, %al
callq 0x35d40
jmp 0x175e3
jmp 0x175e5
jmp 0x175e7
jmp 0x175e9
jmp 0x175eb
movq -0x38(%rbp), %rax
addq $0x40, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)