// File: /workspace/github_c_makefile_star2_O0/icebert[P]pblat/jkOwnLib/gfBlatLib.c
// Function: loadHashT3Ranges
static void loadHashT3Ranges(struct gfRange *rangeList, 
	char *tSeqDir, struct hash *tFileCache, int qSeqSize, boolean isRc, 
	struct hash **retT3Hash, struct dnaSeq **retSeqList,
	struct slRef **retT3RefList)
/* Load DNA in ranges into memory, and put translation in a hash
 * that gets returned. */
{
struct hash *t3Hash = newHash(10);
struct dnaSeq *targetSeq, *tSeqList = NULL;
struct slRef *t3RefList = NULL;
struct gfRange *range;

for (range = rangeList; range != NULL; range = range->next)
    {
    struct trans3 *t3, *oldT3;

    targetSeq = gfiExpandAndLoadCached(range, tFileCache,
    	tSeqDir, qSeqSize*3, &range->tTotalSize, TRUE, isRc, usualExpansion);
    slAddHead(&tSeqList, targetSeq);
    freez(&targetSeq->name);
    targetSeq->name = cloneString(range->tName);
    t3 = trans3New(targetSeq);
    refAdd(&t3RefList, t3);
    t3->start = range->tStart;
    t3->end = range->tEnd;
    t3->nibSize = range->tTotalSize;
    t3->isRc = isRc;
    if ((oldT3 = hashFindVal(t3Hash, range->tName)) != NULL)
	{
	slAddTail(&oldT3->next, t3);
	}
    else
	{
	hashAdd(t3Hash, range->tName, t3);
	}
    }
*retT3Hash = t3Hash;
*retSeqList = tSeqList;
*retT3RefList = t3RefList;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x70, %rsp
movq 0x18(%rbp), %rax
movq 0x10(%rbp), %rax
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movl %ecx, -0x1c(%rbp)
movl %r8d, -0x20(%rbp)
movq %r9, -0x28(%rbp)
movl $0xa, %edi
movl $0x1, %esi
callq 0x398a0
movq %rax, -0x30(%rbp)
movq $0x0, -0x40(%rbp)
movq $0x0, -0x48(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x50(%rbp)
cmpq $0x0, -0x50(%rbp)
je 0x13937
movq -0x50(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x10(%rbp), %rdx
imull $0x3, -0x1c(%rbp), %ecx
movq -0x50(%rbp), %r8
addq $0x40, %r8
movl -0x20(%rbp), %r10d
movl 0xf25a1(%rip), %eax     # 0x105df0
movl $0x1, %r9d
movl %r10d, (%rsp)
movl %eax, 0x8(%rsp)
callq 0x16390
movq %rax, -0x38(%rbp)
movq -0x38(%rbp), %rsi
leaq -0x40(%rbp), %rdi
callq 0x119b0
movq -0x38(%rbp), %rdi
addq $0x8, %rdi
callq 0x40d70
movq -0x50(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0x2a450
movq %rax, %rcx
movq -0x38(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x38(%rbp), %rdi
callq 0x1a4b0
movq %rax, -0x58(%rbp)
movq -0x58(%rbp), %rsi
leaq -0x48(%rbp), %rdi
callq 0x2c290
movq -0x50(%rbp), %rax
movl 0x20(%rax), %ecx
movq -0x58(%rbp), %rax
movl %ecx, 0x30(%rax)
movq -0x50(%rbp), %rax
movl 0x24(%rax), %ecx
movq -0x58(%rbp), %rax
movl %ecx, 0x34(%rax)
movq -0x50(%rbp), %rax
movl 0x40(%rax), %ecx
movq -0x58(%rbp), %rax
movl %ecx, 0x38(%rax)
movl -0x20(%rbp), %ecx
movq -0x58(%rbp), %rax
movl %ecx, 0x3c(%rax)
movq -0x30(%rbp), %rdi
movq -0x50(%rbp), %rax
movq 0x10(%rax), %rsi
callq 0x39630
movq %rax, -0x60(%rbp)
cmpq $0x0, %rax
je 0x13910
movq -0x60(%rbp), %rdi
movq -0x58(%rbp), %rsi
callq 0x2a960
jmp 0x13925
movq -0x30(%rbp), %rdi
movq -0x50(%rbp), %rax
movq 0x10(%rax), %rsi
movq -0x58(%rbp), %rdx
callq 0x39230
jmp 0x13927
movq -0x50(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x50(%rbp)
jmp 0x13822
movq -0x30(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, (%rax)
movq -0x40(%rbp), %rcx
movq 0x10(%rbp), %rax
movq %rcx, (%rax)
movq -0x48(%rbp), %rcx
movq 0x18(%rbp), %rax
movq %rcx, (%rax)
addq $0x70, %rsp
popq %rbp
retq
nop