// File: /workspace/github_c_makefile_star2_O0/icebert[P]pblat/jkOwnLib/gfBlatLib.c
// Function: gfQuerySeqTransTrans
static void gfQuerySeqTransTrans(int conn, struct dnaSeq *seq, 
    struct gfClump *clumps[2][3][3], 
    struct lm *lm, struct gfSeqSource **retSsList, int *retTileSize)
/* Query server for clumps where translated DNA sequence hits translated 
 * index. */
{
int qFrame, tFrame, isRc, rowSize;
struct gfClump *clump;
int tileSize = 0;
char *line;
char buf[256], *row[12];
struct gfSeqSource *ssList = NULL, *ss;

for (isRc = 0; isRc <= 1; ++isRc)
    for (qFrame = 0; qFrame<3; ++qFrame)
	for (tFrame = 0; tFrame<3; ++tFrame)
	    clumps[isRc][qFrame][tFrame] = NULL;

/* Send sequence to server. */
startSeqQuery(conn, seq, "transQuery");
line = netRecieveString(conn, buf);
if (!startsWith("Error:", line))
    {
    tileSize = findTileSize(line);

    /* Read results line by line and save in memory. */
    for (;;)
	{
	/* Read and parse first line that describes clump overall. */
	netRecieveString(conn, buf);
	if (sameString(buf, "end"))
	    {
	    break;
	    }
	else if (startsWith("Error:", buf))
	    {
	    gfServerWarn(seq, buf);
	    break;
	    }
	rowSize = chopLine(buf, row);
	if (rowSize < 9)
	    errAbort("Expecting 9 words from server got %d", rowSize);
	AllocVar(clump);
	clump->qStart = sqlUnsigned(row[0]);
	clump->qEnd = sqlUnsigned(row[1]);
	AllocVar(ss);
	ss->fileName = cloneString(row[2]);
	slAddHead(&ssList, ss);
	clump->target = ss;
	clump->tStart = sqlUnsigned(row[3]);
	clump->tEnd = sqlUnsigned(row[4]);
	clump->hitCount = sqlUnsigned(row[5]);
	isRc = ((row[6][0] == '-') ? 1 : 0);
	qFrame = sqlUnsigned(row[7]);
	tFrame = sqlUnsigned(row[8]);
	slAddHead(&clumps[isRc][qFrame][tFrame], clump);

	/* Read and parse next (long) line that describes hits. */
	clump->hitList = getHitsFromServer(conn, lm);
	assert(slCount(clump->hitList) == clump->hitCount);
	}
    for (isRc = 0; isRc <= 1; ++isRc)
	for (qFrame = 0; qFrame<3; ++qFrame)
	    for (tFrame = 0; tFrame<3; ++tFrame)
		slReverse(&clumps[isRc][qFrame][tFrame]);
    }
else
    {
    gfServerWarn(seq, buf);
    }
*retSsList = ssList;
*retTileSize = tileSize;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1d0, %rsp            # imm = 0x1D0
movl %edi, -0x4(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq %r8, -0x28(%rbp)
movq %r9, -0x30(%rbp)
movl $0x0, -0x4c(%rbp)
movq $0x0, -0x1c8(%rbp)
movl $0x0, -0x3c(%rbp)
cmpl $0x1, -0x3c(%rbp)
jg 0x14196
movl $0x0, -0x34(%rbp)
cmpl $0x3, -0x34(%rbp)
jge 0x14189
movl $0x0, -0x38(%rbp)
cmpl $0x3, -0x38(%rbp)
jge 0x1417c
movq -0x18(%rbp), %rax
movslq -0x3c(%rbp), %rcx
imulq $0x48, %rcx, %rcx
addq %rcx, %rax
movslq -0x34(%rbp), %rcx
imulq $0x18, %rcx, %rcx
addq %rcx, %rax
movslq -0x38(%rbp), %rcx
movq $0x0, (%rax,%rcx,8)
movl -0x38(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x38(%rbp)
jmp 0x14145
jmp 0x1417e
movl -0x34(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x34(%rbp)
jmp 0x14138
jmp 0x1418b
movl -0x3c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3c(%rbp)
jmp 0x1412b
movl -0x4(%rbp), %edi
movq -0x10(%rbp), %rsi
leaq 0xc3d5f(%rip), %rdx     # 0xd7f03
callq 0x15130
movl -0x4(%rbp), %edi
leaq -0x160(%rbp), %rsi
callq 0x456e0
movq %rax, -0x58(%rbp)
movq -0x58(%rbp), %rsi
leaq 0xc3b6c(%rip), %rdi     # 0xd7d33
callq 0x2d3d0
cmpl $0x0, %eax
jne 0x14463
movq -0x58(%rbp), %rdi
callq 0x15640
movl %eax, -0x4c(%rbp)
movl -0x4(%rbp), %edi
leaq -0x160(%rbp), %rsi
callq 0x456e0
leaq -0x160(%rbp), %rdi
leaq 0xd077a(%rip), %rsi     # 0xe4978
callq 0x6a40
cmpl $0x0, %eax
jne 0x1420d
jmp 0x143eb
leaq -0x160(%rbp), %rsi
leaq 0xc3b18(%rip), %rdi     # 0xd7d33
callq 0x2d3d0
cmpl $0x0, %eax
je 0x1423a
movq -0x10(%rbp), %rdi
leaq -0x160(%rbp), %rsi
callq 0x15230
jmp 0x143eb
jmp 0x1423c
leaq -0x160(%rbp), %rdi
leaq -0x1c0(%rbp), %rsi
movl $0xc, %edx
callq 0x2e900
movl %eax, -0x40(%rbp)
cmpl $0x9, -0x40(%rbp)
jge 0x1426e
movl -0x40(%rbp), %esi
leaq 0xc3ca7(%rip), %rdi     # 0xd7f0e
movb $0x0, %al
callq 0x35d40
movl $0x38, %edi
callq 0x40c50
movq %rax, -0x48(%rbp)
movq -0x1c0(%rbp), %rdi
callq 0x55b40
movl %eax, %ecx
movq -0x48(%rbp), %rax
movl %ecx, 0x8(%rax)
movq -0x1b8(%rbp), %rdi
callq 0x55b40
movl %eax, %ecx
movq -0x48(%rbp), %rax
movl %ecx, 0xc(%rax)
movl $0x28, %edi
callq 0x40c50
movq %rax, -0x1d0(%rbp)
movq -0x1b0(%rbp), %rdi
callq 0x2a450
movq %rax, %rcx
movq -0x1d0(%rbp), %rax
movq %rcx, 0x8(%rax)
movq -0x1d0(%rbp), %rsi
leaq -0x1c8(%rbp), %rdi
callq 0x119b0
movq -0x1d0(%rbp), %rcx
movq -0x48(%rbp), %rax
movq %rcx, 0x10(%rax)
movq -0x1a8(%rbp), %rdi
callq 0x55b40
movl %eax, %ecx
movq -0x48(%rbp), %rax
movl %ecx, 0x18(%rax)
movq -0x1a0(%rbp), %rdi
callq 0x55b40
movl %eax, %ecx
movq -0x48(%rbp), %rax
movl %ecx, 0x1c(%rax)
movq -0x198(%rbp), %rdi
callq 0x55b40
movl %eax, %ecx
movq -0x48(%rbp), %rax
movl %ecx, 0x20(%rax)
movq -0x190(%rbp), %rax
movsbl (%rax), %edx
xorl %eax, %eax
movl $0x1, %ecx
cmpl $0x2d, %edx
cmovel %ecx, %eax
movl %eax, -0x3c(%rbp)
movq -0x188(%rbp), %rdi
callq 0x55b40
movl %eax, -0x34(%rbp)
movq -0x180(%rbp), %rdi
callq 0x55b40
movl %eax, -0x38(%rbp)
movq -0x18(%rbp), %rdi
movslq -0x3c(%rbp), %rax
imulq $0x48, %rax, %rax
addq %rax, %rdi
movslq -0x34(%rbp), %rax
imulq $0x18, %rax, %rax
addq %rax, %rdi
movslq -0x38(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rdi
movq -0x48(%rbp), %rsi
callq 0x119b0
movl -0x4(%rbp), %edi
movq -0x20(%rbp), %rsi
callq 0x118e0
movq %rax, %rcx
movq -0x48(%rbp), %rax
movq %rcx, 0x28(%rax)
movq -0x48(%rbp), %rax
movq 0x28(%rax), %rdi
callq 0x2a810
movq -0x48(%rbp), %rcx
cmpl 0x20(%rcx), %eax
jne 0x143c7
jmp 0x143e6
leaq 0xc3aa4(%rip), %rdi     # 0xd7e72
leaq 0xc3943(%rip), %rsi     # 0xd7d18
movl $0x152, %edx            # imm = 0x152
leaq 0xc3b52(%rip), %rcx     # 0xd7f33
callq 0x6450
jmp 0x141e1
movl $0x0, -0x3c(%rbp)
cmpl $0x1, -0x3c(%rbp)
jg 0x14461
movl $0x0, -0x34(%rbp)
cmpl $0x3, -0x34(%rbp)
jge 0x14454
movl $0x0, -0x38(%rbp)
cmpl $0x3, -0x38(%rbp)
jge 0x14447
movq -0x18(%rbp), %rdi
movslq -0x3c(%rbp), %rax
imulq $0x48, %rax, %rax
addq %rax, %rdi
movslq -0x34(%rbp), %rax
imulq $0x18, %rax, %rax
addq %rax, %rdi
movslq -0x38(%rbp), %rax
shlq $0x3, %rax
addq %rax, %rdi
callq 0x2aad0
movl -0x38(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x38(%rbp)
jmp 0x1440c
jmp 0x14449
movl -0x34(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x34(%rbp)
jmp 0x143ff
jmp 0x14456
movl -0x3c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x3c(%rbp)
jmp 0x143f2
jmp 0x14473
movq -0x10(%rbp), %rdi
leaq -0x160(%rbp), %rsi
callq 0x15230
movq -0x1c8(%rbp), %rcx
movq -0x28(%rbp), %rax
movq %rcx, (%rax)
movl -0x4c(%rbp), %ecx
movq -0x30(%rbp), %rax
movl %ecx, (%rax)
addq $0x1d0, %rsp            # imm = 0x1D0
popq %rbp
retq
nopw %cs:(%rax,%rax)