// File: /workspace/github_c_makefile_star2_O0/icebert[P]pblat/lib/psl.c
// Function: pslCommaIn
struct psl *pslCommaIn(char **pS, struct psl *ret)
/* Create a psl out of a comma separated string. 
 * This will fill in ret if non-null, otherwise will
 * return a new psl */
{
char *s = *pS;
int i;

if (ret == NULL)
    AllocVar(ret);
ret->match = sqlUnsignedComma(&s);
ret->misMatch = sqlUnsignedComma(&s);
ret->repMatch = sqlUnsignedComma(&s);
ret->nCount = sqlUnsignedComma(&s);
ret->qNumInsert = sqlUnsignedComma(&s);
ret->qBaseInsert = sqlSignedComma(&s);
ret->tNumInsert = sqlUnsignedComma(&s);
ret->tBaseInsert = sqlSignedComma(&s);
sqlFixedStringComma(&s, ret->strand, sizeof(ret->strand));
ret->qName = sqlStringComma(&s);
ret->qSize = sqlUnsignedComma(&s);
ret->qStart = sqlUnsignedComma(&s);
ret->qEnd = sqlUnsignedComma(&s);
ret->tName = sqlStringComma(&s);
ret->tSize = sqlUnsignedComma(&s);
ret->tStart = sqlUnsignedComma(&s);
ret->tEnd = sqlUnsignedComma(&s);
ret->blockCount = sqlUnsignedComma(&s);
s = sqlEatChar(s, '{');
AllocArray(ret->blockSizes, ret->blockCount);
for (i=0; i<ret->blockCount; ++i)
    {
    ret->blockSizes[i] = sqlUnsignedComma(&s);
    }
s = sqlEatChar(s, '}');
s = sqlEatChar(s, ',');
s = sqlEatChar(s, '{');
AllocArray(ret->qStarts, ret->blockCount);
for (i=0; i<ret->blockCount; ++i)
    {
    ret->qStarts[i] = sqlUnsignedComma(&s);
    }
s = sqlEatChar(s, '}');
s = sqlEatChar(s, ',');
s = sqlEatChar(s, '{');
AllocArray(ret->tStarts, ret->blockCount);
for (i=0; i<ret->blockCount; ++i)
    {
    ret->tStarts[i] = sqlUnsignedComma(&s);
    }
s = sqlEatChar(s, '}');
s = sqlEatChar(s, ',');
*pS = s;
return ret;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq (%rax), %rax
movq %rax, -0x18(%rbp)
cmpq $0x0, -0x10(%rbp)
jne 0x4d720
movl $0x88, %edi
callq 0x40c50
movq %rax, -0x10(%rbp)
leaq -0x18(%rbp), %rdi
callq 0x58520
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x8(%rax)
leaq -0x18(%rbp), %rdi
callq 0x58520
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0xc(%rax)
leaq -0x18(%rbp), %rdi
callq 0x58520
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x10(%rax)
leaq -0x18(%rbp), %rdi
callq 0x58520
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x14(%rax)
leaq -0x18(%rbp), %rdi
callq 0x58520
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x18(%rax)
leaq -0x18(%rbp), %rdi
callq 0x58580
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x1c(%rax)
leaq -0x18(%rbp), %rdi
callq 0x58520
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x20(%rax)
leaq -0x18(%rbp), %rdi
callq 0x58580
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x24(%rax)
movq -0x10(%rbp), %rsi
addq $0x28, %rsi
leaq -0x18(%rbp), %rdi
movl $0x3, %edx
callq 0x58870
leaq -0x18(%rbp), %rdi
callq 0x58770
movq %rax, %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x30(%rax)
leaq -0x18(%rbp), %rdi
callq 0x58520
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x38(%rax)
leaq -0x18(%rbp), %rdi
callq 0x58520
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x3c(%rax)
leaq -0x18(%rbp), %rdi
callq 0x58520
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x40(%rax)
leaq -0x18(%rbp), %rdi
callq 0x58770
movq %rax, %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x48(%rax)
leaq -0x18(%rbp), %rdi
callq 0x58520
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x50(%rax)
leaq -0x18(%rbp), %rdi
callq 0x58520
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x54(%rax)
leaq -0x18(%rbp), %rdi
callq 0x58520
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x58(%rax)
leaq -0x18(%rbp), %rdi
callq 0x58520
movl %eax, %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x5c(%rax)
movq -0x18(%rbp), %rdi
movl $0x7b, %esi
callq 0x588b0
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rax
movl 0x5c(%rax), %eax
movl %eax, %edi
shlq $0x2, %rdi
callq 0x409d0
movq %rax, %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x60(%rax)
movl $0x0, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
movq -0x10(%rbp), %rcx
cmpl 0x5c(%rcx), %eax
jae 0x4d8d3
leaq -0x18(%rbp), %rdi
callq 0x58520
movl %eax, %edx
movq -0x10(%rbp), %rax
movq 0x60(%rax), %rax
movslq -0x1c(%rbp), %rcx
movl %edx, (%rax,%rcx,4)
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x4d8a2
movq -0x18(%rbp), %rdi
movl $0x7d, %esi
callq 0x588b0
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rdi
movl $0x2c, %esi
callq 0x588b0
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rdi
movl $0x7b, %esi
callq 0x588b0
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rax
movl 0x5c(%rax), %eax
movl %eax, %edi
shlq $0x2, %rdi
callq 0x409d0
movq %rax, %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x68(%rax)
movl $0x0, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
movq -0x10(%rbp), %rcx
cmpl 0x5c(%rcx), %eax
jae 0x4d95e
leaq -0x18(%rbp), %rdi
callq 0x58520
movl %eax, %edx
movq -0x10(%rbp), %rax
movq 0x68(%rax), %rax
movslq -0x1c(%rbp), %rcx
movl %edx, (%rax,%rcx,4)
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x4d92d
movq -0x18(%rbp), %rdi
movl $0x7d, %esi
callq 0x588b0
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rdi
movl $0x2c, %esi
callq 0x588b0
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rdi
movl $0x7b, %esi
callq 0x588b0
movq %rax, -0x18(%rbp)
movq -0x10(%rbp), %rax
movl 0x5c(%rax), %eax
movl %eax, %edi
shlq $0x2, %rdi
callq 0x409d0
movq %rax, %rcx
movq -0x10(%rbp), %rax
movq %rcx, 0x70(%rax)
movl $0x0, -0x1c(%rbp)
movl -0x1c(%rbp), %eax
movq -0x10(%rbp), %rcx
cmpl 0x5c(%rcx), %eax
jae 0x4d9e9
leaq -0x18(%rbp), %rdi
callq 0x58520
movl %eax, %edx
movq -0x10(%rbp), %rax
movq 0x70(%rax), %rax
movslq -0x1c(%rbp), %rcx
movl %edx, (%rax,%rcx,4)
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x4d9b8
movq -0x18(%rbp), %rdi
movl $0x7d, %esi
callq 0x588b0
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rdi
movl $0x2c, %esi
callq 0x588b0
movq %rax, -0x18(%rbp)
movq -0x18(%rbp), %rcx
movq -0x8(%rbp), %rax
movq %rcx, (%rax)
movq -0x10(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)