// File: /workspace/github_c_makefile_star2_O3/icebert[P]pblat/jkOwnLib/gfClientLib.c
// Function: gfClientSeqList
bioSeq *gfClientSeqList(int fileCount, char *files[], 
	boolean isProt, boolean isTransDna, char *maskType, 
	float minRepDivergence, boolean showStatus)
/* From an array of .fa and .nib file names, create a
 * list of dnaSeqs, which are set up so that upper case is masked and lower case
 * is unmasked sequence. (This is the opposite of the input, but set so that
 * we can use lower case as our primary DNA sequence, which historically predates
 * our use of lower case masking.)  Protein sequence on the other hand is
 * all upper case. */

{
int i;
char *fileName;
bioSeq *seqList = NULL, *seq;
boolean doMask = (maskType != NULL);

unsigned faFastBufSize = 0;
DNA     *faFastBuf = NULL;

for (i=0; i<fileCount; ++i)
    {
    struct dnaSeq *list = NULL, sseq;
    ZeroVar(&sseq);
    fileName = files[i];
    if (nibIsFile(fileName))
	list = nibLoadAllMasked(NIB_MASK_MIXED|NIB_BASE_NAME, fileName);
    else if (twoBitIsSpec(fileName))
	list = twoBitLoadAll(fileName);
    else if (isProt)
      list = faReadAllPep(fileName, &faFastBuf, &faFastBufSize);
    else
      list = faReadAllMixed(fileName, &faFastBuf, &faFastBufSize);
    faFreeFastBuf(&faFastBuf, &faFastBufSize);
    

    /* If necessary mask sequence from file. */
    if (doMask)
	{
	maskNucSeqList(list, fileName, maskType, isTransDna, minRepDivergence);
	}
    else
        {
	/* If not masking send everything to proper case here. */
	for (seq = list; seq != NULL; seq = seq->next)
	    {
	    if (isProt)
		faToProtein(seq->dna, seq->size);
	    else
		faToDna(seq->dna, seq->size);
	    }
	}
    /* Move local list to end of bigger list. */
    seqList = slCat(seqList, list);
    }
if (showStatus)
    {
    /* Total up size and sequence count and report. */
    int count = 0; 
    unsigned long totalSize = 0;
    for (seq = seqList; seq != NULL; seq = seq->next)
        {
	totalSize += seq->size;
	count += 1;
	}
    printf("Loaded %lu letters in %d sequences\n", totalSize, count);
    }
return seqList;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x3c8, %rsp            # imm = 0x3C8
movss %xmm0, 0x2c(%rsp)
movl %ecx, 0x28(%rsp)
movq %rsi, 0x48(%rsp)
movl $0x0, 0x14(%rsp)
movq $0x0, 0x18(%rsp)
testl %edi, %edi
jle 0x13202
movq %r8, %rbp
movl %edx, %r12d
movl %r9d, 0x24(%rsp)
movl %edi, %eax
movq %rax, 0x40(%rsp)
xorl %r13d, %r13d
xorl %r14d, %r14d
movq %r8, 0x30(%rsp)
movq 0x48(%rsp), %rax
movq (%rax,%r13,8), %r15
movq %r15, %rdi
callq 0x324f7
testl %eax, %eax
je 0x12e1c
movl $0x5, %edi
movq %r15, %rsi
callq 0x32118
jmp 0x12e4d
movq %r15, %rdi
callq 0x3f293
movq %r15, %rdi
testl %eax, %eax
je 0x12e32
callq 0x3ed1c
jmp 0x12e4d
leaq 0x18(%rsp), %rsi
leaq 0x14(%rsp), %rdx
testl %r12d, %r12d
je 0x12e48
callq 0x280d1
jmp 0x12e4d
callq 0x280dd
movq %rax, (%rsp)
leaq 0x18(%rsp), %rdi
leaq 0x14(%rsp), %rsi
callq 0x27927
testq %rbp, %rbp
je 0x12f99
movq %rbp, %rdi
leaq 0x7a7d4(%rip), %rsi     # 0x8d647
callq 0x209d6
testl %eax, %eax
je 0x12fe5
movq %rbp, %rdi
leaq 0x7a6e9(%rip), %rsi     # 0x8d573
callq 0x209d6
testl %eax, %eax
je 0x12fc7
movq %r14, 0x38(%rsp)
movq %rbp, %rdi
leaq 0x7b239(%rip), %rsi     # 0x8e0df
callq 0x209d6
movq %rbp, %rbx
testl %eax, %eax
jne 0x12ece
leaq 0x1c0(%rsp), %rbx
movq %rbx, %rdi
leaq 0x7b218(%rip), %rsi     # 0x8e0dc
movq %r15, %rdx
xorl %eax, %eax
callq 0x6170
movq (%rsp), %r15
testq %r15, %r15
je 0x12eef
movq %r15, %r14
movq 0x10(%r14), %rdi
movl 0x18(%r14), %esi
callq 0x27ebd
movq (%r14), %r14
testq %r14, %r14
jne 0x12eda
movq %rbx, %rdi
movl $0x1, %esi
callq 0x2a550
movq %rax, %rbp
movq %rax, 0x58(%rsp)
xorl %edi, %edi
movl $0x1, %esi
callq 0x294ea
movq %r15, %rcx
movq %rax, %r15
movq %rax, 0x50(%rsp)
testq %rcx, %rcx
je 0x12f3b
movq (%rsp), %rbx
movq 0x8(%rbx), %rsi
movq %r15, %rdi
movq %rbx, %rdx
callq 0x29142
movq (%rbx), %rbx
testq %rbx, %rbx
jne 0x12f24
movq %rbp, %rdi
leaq 0x8(%rsp), %rsi
xorl %edx, %edx
callq 0x2a7a9
testl %eax, %eax
jne 0x12f60
movq 0x8(%rbp), %rsi
leaq 0x7b18a(%rip), %rdi     # 0x8e0e3
xorl %eax, %eax
callq 0x26e94
movq 0x8(%rsp), %rsi
leaq 0x7b18b(%rip), %rdi     # 0x8e0f7
callq 0x21b23
testl %eax, %eax
je 0x1302d
leaq 0x50(%rsp), %rdi
callq 0x298bd
leaq 0x58(%rsp), %rdi
callq 0x2ae73
movq 0x38(%rsp), %r14
movq 0x30(%rsp), %rbp
jmp 0x12fe5
movq (%rsp), %r15
movq %r15, %rbx
testq %r15, %r15
je 0x1300c
movq 0x10(%rbx), %rdi
movl 0x18(%rbx), %esi
testl %r12d, %r12d
je 0x12fb8
callq 0x27e77
jmp 0x12fbd
callq 0x27ebd
movq (%rbx), %rbx
testq %rbx, %rbx
jne 0x12fa5
jmp 0x1300c
movq (%rsp), %r15
testq %r15, %r15
je 0x1300c
movq 0x10(%r15), %rdi
movl 0x18(%r15), %esi
callq 0x21ffe
movq (%r15), %r15
testq %r15, %r15
jne 0x12fd0
cmpl $0x0, 0x28(%rsp)
movq (%rsp), %r15
je 0x1300c
testq %r15, %r15
je 0x1300c
movq %r15, %rbx
movq 0x10(%rbx), %rdi
movl 0x18(%rbx), %esi
callq 0x258eb
movq (%rbx), %rbx
testq %rbx, %rbx
jne 0x12ff8
movq %r14, %rdi
movq %r15, %rsi
callq 0x20155
movq %rax, %r14
incq %r13
cmpq 0x40(%rsp), %r13
jne 0x12df8
jmp 0x131dc
movq 0x8(%rsp), %rsi
leaq 0x7b0cc(%rip), %rdi     # 0x8e105
callq 0x21b23
testl %eax, %eax
jne 0x13054
movq 0x8(%rbp), %rsi
leaq 0x7b0be(%rip), %rdi     # 0x8e10b
xorl %eax, %eax
callq 0x26e94
movq %rbp, %rdi
leaq 0x8(%rsp), %rsi
xorl %edx, %edx
callq 0x2a7a9
testl %eax, %eax
je 0x1307c
movq 0x8(%rsp), %rsi
leaq 0x7cb95(%rip), %rdi     # 0x8fc08
callq 0x21b23
testl %eax, %eax
jne 0x1308e
movq 0x8(%rbp), %rsi
leaq 0x7b084(%rip), %rdi     # 0x8e10b
xorl %eax, %eax
callq 0x26e94
movq %rbp, %rdi
leaq 0x8(%rsp), %rbx
movq %rbx, %rsi
xorl %edx, %edx
callq 0x2a7a9
movq %rbp, %rdi
movq %rbx, %rsi
xorl %edx, %edx
callq 0x2a7a9
testl %eax, %eax
je 0x12f79
movq 0x8(%rsp), %rdi
leaq 0xc0(%rsp), %rsi
movl $0x20, %edx
callq 0x226f5
cmpl $0xd, %eax
jg 0x130e6
movq 0x8(%rbp), %rsi
movl 0x28(%rbp), %edx
leaq 0x7b04f(%rip), %rdi     # 0x8e12e
xorl %eax, %eax
callq 0x26e94
leaq 0xc0(%rsp), %rdi
leaq 0x60(%rsp), %rsi
callq 0x3b4e0
movss 0x6c(%rsp), %xmm0
addss 0x70(%rsp), %xmm0
addss 0x74(%rsp), %xmm0
movss 0x2c(%rsp), %xmm1
ucomiss %xmm0, %xmm1
jb 0x131cf
movq 0x78(%rsp), %rsi
movq %r15, %rdi
callq 0x293ad
movq %rax, %r14
testq %rax, %rax
jne 0x13145
movq 0x78(%rsp), %rsi
movq 0x8(%rbp), %rdx
leaq 0x7b01d(%rip), %rdi     # 0x8e15b
xorl %eax, %eax
callq 0x26e94
movl 0x18(%r14), %ebx
movl 0x80(%rsp), %esi
movl 0x84(%rsp), %edx
testl %esi, %esi
jle 0x1316f
cmpl %ebx, %esi
jg 0x1316f
testl %edx, %edx
jle 0x1316f
cmpl %ebx, %edx
jg 0x1316f
cmpl %edx, %esi
jg 0x1316f
movl %edx, %ebx
jmp 0x131b5
movq 0x78(%rsp), %r8
leaq 0x7b025(%rip), %rdi     # 0x8e1a0
movl %ebx, %ecx
xorl %eax, %eax
callq 0x26bea
movl 0x80(%rsp), %esi
testl %esi, %esi
jg 0x1319f
movl $0x1, 0x80(%rsp)
movl $0x1, %esi
movl 0x84(%rsp), %eax
cmpl %ebx, %eax
jle 0x131b3
movl %ebx, 0x84(%rsp)
jmp 0x131b5
movl %eax, %ebx
subl %esi, %ebx
js 0x131cf
incl %ebx
movq 0x10(%r14), %rax
movl %esi, %ecx
leaq (%rax,%rcx), %rdi
decq %rdi
movl %ebx, %esi
callq 0x21f96
movq %rbp, %rdi
leaq 0x8(%rsp), %rsi
jmp 0x130a6
cmpl $0x0, 0x24(%rsp)
je 0x1322b
testq %r14, %r14
je 0x13216
xorl %esi, %esi
xorl %edx, %edx
movq %r14, %rax
movslq 0x18(%rax), %rcx
addq %rcx, %rsi
incl %edx
movq (%rax), %rax
testq %rax, %rax
jne 0x131ef
jmp 0x1321d
xorl %r14d, %r14d
movl $0x0, %edx
movl $0x0, %esi
testl %r9d, %r9d
jne 0x1321d
jmp 0x1322b
xorl %r14d, %r14d
xorl %edx, %edx
xorl %esi, %esi
leaq 0x7ae94(%rip), %rdi     # 0x8e0b8
xorl %eax, %eax
callq 0x6070
movq %r14, %rax
addq $0x3c8, %rsp            # imm = 0x3C8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq