// File: /workspace/github_c_makefile_star2_O1/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 $0x3b8, %rsp            # imm = 0x3B8
movl %r9d, 0x2c(%rsp)
movss %xmm0, 0x34(%rsp)
movl %ecx, 0x30(%rsp)
movq %rsi, 0x48(%rsp)
movl $0x0, 0x14(%rsp)
movq $0x0, 0x20(%rsp)
testl %edi, %edi
jle 0x130de
movq %r8, %r15
movl %edx, %r12d
movl %edi, %eax
movq %rax, 0x40(%rsp)
xorl %r14d, %r14d
xorl %ebx, %ebx
movq %r8, 0x38(%rsp)
movq 0x48(%rsp), %rax
movq (%rax,%r14,8), %rbp
movq %rbp, %rdi
callq 0x3221b
testl %eax, %eax
je 0x12cef
movl $0x5, %edi
movq %rbp, %rsi
callq 0x31e3f
jmp 0x12d20
movq %rbp, %rdi
callq 0x3ef22
movq %rbp, %rdi
testl %eax, %eax
je 0x12d05
callq 0x3e9b8
jmp 0x12d20
leaq 0x20(%rsp), %rsi
leaq 0x14(%rsp), %rdx
testl %r12d, %r12d
je 0x12d1b
callq 0x27d80
jmp 0x12d20
callq 0x27d8c
movq %rax, %r13
leaq 0x20(%rsp), %rdi
leaq 0x14(%rsp), %rsi
callq 0x275e3
testq %r15, %r15
je 0x12e07
movq %r15, %rdi
leaq 0x7a902(%rip), %rsi     # 0x8d647
callq 0x2054a
testl %eax, %eax
je 0x13097
movq 0x38(%rsp), %r15
movq %r15, %rdi
leaq 0x7a812(%rip), %rsi     # 0x8d573
callq 0x2054a
testl %eax, %eax
je 0x12e39
movq %r15, %rdi
leaq 0x7b327(%rip), %rsi     # 0x8e09f
callq 0x2054a
testl %eax, %eax
jne 0x12d9d
leaq 0x1b0(%rsp), %r15
movq %r15, %rdi
leaq 0x7b309(%rip), %rsi     # 0x8e09c
movq %rbp, %rdx
xorl %eax, %eax
callq 0x6170
testq %r13, %r13
je 0x12e5f
movq %r13, %rbp
movq 0x10(%rbp), %rdi
movl 0x18(%rbp), %esi
callq 0x27b6c
movq (%rbp), %rbp
testq %rbp, %rbp
jne 0x12da9
movq %r15, %rdi
movl $0x1, %esi
callq 0x2a1fc
movq %rax, (%rsp)
xorl %edi, %edi
movl $0x1, %esi
callq 0x29160
movq %rax, 0x18(%rsp)
testq %r13, %r13
je 0x12e81
movq %r13, %r15
movq 0x18(%rsp), %rdi
movq 0x8(%r15), %rsi
movq %r15, %rdx
callq 0x28dbe
movq (%r15), %r15
testq %r15, %r15
jne 0x12dec
jmp 0x12e81
movq %r13, %r15
testq %r13, %r13
je 0x130bb
movq 0x10(%r15), %rdi
movl 0x18(%r15), %esi
testl %r12d, %r12d
je 0x12e27
callq 0x27b26
jmp 0x12e2c
callq 0x27b6c
movq (%r15), %r15
testq %r15, %r15
jne 0x12e13
jmp 0x130bb
testq %r13, %r13
je 0x13097
movq %r13, %r15
movq 0x10(%r15), %rdi
movl 0x18(%r15), %esi
callq 0x21c9f
movq (%r15), %r15
testq %r15, %r15
jne 0x12e45
jmp 0x13097
movq %r15, %rdi
movl $0x1, %esi
callq 0x2a1fc
movq %rax, (%rsp)
xorl %edi, %edi
movl $0x1, %esi
callq 0x29160
movq %rax, 0x18(%rsp)
movq (%rsp), %rdi
leaq 0x8(%rsp), %rsi
xorl %edx, %edx
callq 0x2a455
testl %eax, %eax
jne 0x12eab
movq (%rsp), %rax
movq 0x8(%rax), %rsi
leaq 0x7b1ff(%rip), %rdi     # 0x8e0a3
xorl %eax, %eax
callq 0x26b6f
movq 0x8(%rsp), %rsi
leaq 0x7b200(%rip), %rdi     # 0x8e0b7
callq 0x217c8
testl %eax, %eax
jne 0x13085
movq 0x8(%rsp), %rsi
leaq 0x7b1f5(%rip), %rdi     # 0x8e0c5
callq 0x217c8
testl %eax, %eax
jne 0x12eef
movq (%rsp), %rax
movq 0x8(%rax), %rsi
leaq 0x7b1e3(%rip), %rdi     # 0x8e0cb
xorl %eax, %eax
callq 0x26b6f
movq (%rsp), %rdi
leaq 0x8(%rsp), %rsi
xorl %edx, %edx
callq 0x2a455
testl %eax, %eax
je 0x12f18
movq 0x8(%rsp), %rsi
leaq 0x7cc39(%rip), %rdi     # 0x8fb48
callq 0x217c8
testl %eax, %eax
jne 0x12f2e
movq (%rsp), %rax
movq 0x8(%rax), %rsi
leaq 0x7b1a4(%rip), %rdi     # 0x8e0cb
xorl %eax, %eax
callq 0x26b6f
movq (%rsp), %rdi
leaq 0x8(%rsp), %r15
movq %r15, %rsi
xorl %edx, %edx
callq 0x2a455
movq (%rsp), %rdi
movq %r15, %rsi
xorl %edx, %edx
callq 0x2a455
testl %eax, %eax
leaq 0xb0(%rsp), %r15
je 0x13085
movq 0x8(%rsp), %rdi
movq %r15, %rsi
movl $0x20, %edx
callq 0x223ad
cmpl $0xd, %eax
jg 0x12f8f
movq (%rsp), %rax
movq 0x8(%rax), %rsi
movl 0x28(%rax), %edx
leaq 0x7b166(%rip), %rdi     # 0x8e0ee
xorl %eax, %eax
callq 0x26b6f
movq %r15, %rdi
leaq 0x50(%rsp), %rsi
callq 0x3b108
movss 0x5c(%rsp), %xmm0
addss 0x60(%rsp), %xmm0
addss 0x64(%rsp), %xmm0
movss 0x34(%rsp), %xmm1
ucomiss %xmm0, %xmm1
jb 0x1306d
movq 0x18(%rsp), %rdi
movq 0x68(%rsp), %rsi
callq 0x29029
movq %rax, %rbp
testq %rax, %rax
jne 0x12fef
movq 0x68(%rsp), %rsi
movq (%rsp), %rax
movq 0x8(%rax), %rdx
leaq 0x7b133(%rip), %rdi     # 0x8e11b
xorl %eax, %eax
callq 0x26b6f
movl 0x18(%rbp), %r15d
movl 0x70(%rsp), %esi
testl %esi, %esi
jle 0x13011
cmpl %r15d, %esi
jg 0x13011
movl 0x74(%rsp), %eax
testl %eax, %eax
jle 0x13011
cmpl %r15d, %eax
jg 0x13011
cmpl %eax, %esi
jle 0x13046
movl 0x74(%rsp), %edx
movq 0x68(%rsp), %r8
leaq 0x7b13f(%rip), %rdi     # 0x8e160
movl %r15d, %ecx
xorl %eax, %eax
callq 0x268ca
cmpl $0x0, 0x70(%rsp)
jg 0x1303a
movl $0x1, 0x70(%rsp)
cmpl %r15d, 0x74(%rsp)
jle 0x13046
movl %r15d, 0x74(%rsp)
movl 0x74(%rsp), %esi
movslq 0x70(%rsp), %rax
subl %eax, %esi
leaq 0xb0(%rsp), %r15
js 0x1306d
incl %esi
movq 0x10(%rbp), %rcx
leaq (%rcx,%rax), %rdi
decq %rdi
callq 0x21c37
movq (%rsp), %rdi
leaq 0x8(%rsp), %rsi
xorl %edx, %edx
callq 0x2a455
testl %eax, %eax
jne 0x12f5f
leaq 0x18(%rsp), %rdi
callq 0x29565
movq %rsp, %rdi
callq 0x2ab48
cmpl $0x0, 0x30(%rsp)
je 0x130bb
testq %r13, %r13
je 0x130bb
movq %r13, %r15
movq 0x10(%r15), %rdi
movl 0x18(%r15), %esi
callq 0x255de
movq (%r15), %r15
testq %r15, %r15
jne 0x130a6
movq %rbx, %rdi
movq %r13, %rsi
callq 0x1fc95
movq %rax, %rbx
incq %r14
cmpq 0x40(%rsp), %r14
movq 0x38(%rsp), %r15
jne 0x12ccb
jmp 0x130e0
xorl %ebx, %ebx
cmpl $0x0, 0x2c(%rsp)
je 0x13118
testq %rbx, %rbx
je 0x13106
xorl %esi, %esi
xorl %edx, %edx
movq %rbx, %rax
movslq 0x18(%rax), %rcx
addq %rcx, %rsi
incl %edx
movq (%rax), %rax
testq %rax, %rax
jne 0x130f3
jmp 0x1310a
xorl %edx, %edx
xorl %esi, %esi
leaq 0x7af67(%rip), %rdi     # 0x8e078
xorl %eax, %eax
callq 0x6070
movq %rbx, %rax
addq $0x3b8, %rsp            # imm = 0x3B8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
nopl (%rax)