// File: /workspace/github_c_makefile_star2_O0/icebert[P]pblat/lib/axt.c
// Function: axtScoreSchemeFromBlastzMatrix
struct axtScoreScheme *axtScoreSchemeFromBlastzMatrix(char *text, int gapOpen, int gapExtend)
/* return scoring schema from a string in the following format */
/* 91,-90,-25,-100,-90,100,-100,-25,-25,-100,100,-90,-100,-25,-90,91 */
{
char *matrixDna[32];
struct axtScoreScheme *ss = axtScoreSchemeDefault();
int matrixSize = chopString(text, ",", matrixDna, 32);
if (matrixSize != 16)
    return ss;
if (ss == NULL)
    return NULL;
ss->gapOpen = gapOpen;
ss->gapExtend = gapExtend;
ss->matrix['a']['a'] = atoi(matrixDna[0]);
ss->matrix['a']['c'] = atoi(matrixDna[1]);
ss->matrix['a']['g'] = atoi(matrixDna[2]);
ss->matrix['a']['t'] = atoi(matrixDna[3]);

ss->matrix['c']['a'] = atoi(matrixDna[4]);
ss->matrix['c']['c'] = atoi(matrixDna[5]);
ss->matrix['c']['g'] = atoi(matrixDna[6]);
ss->matrix['c']['t'] = atoi(matrixDna[7]);

ss->matrix['g']['a'] = atoi(matrixDna[8]);
ss->matrix['g']['c'] = atoi(matrixDna[9]);
ss->matrix['g']['g'] = atoi(matrixDna[10]);
ss->matrix['g']['t'] = atoi(matrixDna[11]);

ss->matrix['t']['a'] = atoi(matrixDna[12]);
ss->matrix['t']['c'] = atoi(matrixDna[13]);
ss->matrix['t']['g'] = atoi(matrixDna[14]);
ss->matrix['t']['t'] = atoi(matrixDna[15]);
return ss;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x130, %rsp            # imm = 0x130
movq %rdi, -0x10(%rbp)
movl %esi, -0x14(%rbp)
movl %edx, -0x18(%rbp)
callq 0x219d0
movq %rax, -0x128(%rbp)
movq -0x10(%rbp), %rdi
leaq -0x120(%rbp), %rdx
leaq 0xb796c(%rip), %rsi     # 0xd985f
movl $0x20, %ecx
callq 0x2e840
movl %eax, -0x12c(%rbp)
cmpl $0x10, -0x12c(%rbp)
je 0x21f1c
movq -0x128(%rbp), %rax
movq %rax, -0x8(%rbp)
jmp 0x2210e
cmpq $0x0, -0x128(%rbp)
jne 0x21f33
movq $0x0, -0x8(%rbp)
jmp 0x2210e
movl -0x14(%rbp), %ecx
movq -0x128(%rbp), %rax
movl %ecx, 0x40008(%rax)
movl -0x18(%rbp), %ecx
movq -0x128(%rbp), %rax
movl %ecx, 0x4000c(%rax)
movq -0x120(%rbp), %rdi
callq 0x6bd0
movl %eax, %ecx
movq -0x128(%rbp), %rax
movl %ecx, 0x1858c(%rax)
movq -0x118(%rbp), %rdi
callq 0x6bd0
movl %eax, %ecx
movq -0x128(%rbp), %rax
movl %ecx, 0x18594(%rax)
movq -0x110(%rbp), %rdi
callq 0x6bd0
movl %eax, %ecx
movq -0x128(%rbp), %rax
movl %ecx, 0x185a4(%rax)
movq -0x108(%rbp), %rdi
callq 0x6bd0
movl %eax, %ecx
movq -0x128(%rbp), %rax
movl %ecx, 0x185d8(%rax)
movq -0x100(%rbp), %rdi
callq 0x6bd0
movl %eax, %ecx
movq -0x128(%rbp), %rax
movl %ecx, 0x18d8c(%rax)
movq -0xf8(%rbp), %rdi
callq 0x6bd0
movl %eax, %ecx
movq -0x128(%rbp), %rax
movl %ecx, 0x18d94(%rax)
movq -0xf0(%rbp), %rdi
callq 0x6bd0
movl %eax, %ecx
movq -0x128(%rbp), %rax
movl %ecx, 0x18da4(%rax)
movq -0xe8(%rbp), %rdi
callq 0x6bd0
movl %eax, %ecx
movq -0x128(%rbp), %rax
movl %ecx, 0x18dd8(%rax)
movq -0xe0(%rbp), %rdi
callq 0x6bd0
movl %eax, %ecx
movq -0x128(%rbp), %rax
movl %ecx, 0x19d8c(%rax)
movq -0xd8(%rbp), %rdi
callq 0x6bd0
movl %eax, %ecx
movq -0x128(%rbp), %rax
movl %ecx, 0x19d94(%rax)
movq -0xd0(%rbp), %rdi
callq 0x6bd0
movl %eax, %ecx
movq -0x128(%rbp), %rax
movl %ecx, 0x19da4(%rax)
movq -0xc8(%rbp), %rdi
callq 0x6bd0
movl %eax, %ecx
movq -0x128(%rbp), %rax
movl %ecx, 0x19dd8(%rax)
movq -0xc0(%rbp), %rdi
callq 0x6bd0
movl %eax, %ecx
movq -0x128(%rbp), %rax
movl %ecx, 0x1d18c(%rax)
movq -0xb8(%rbp), %rdi
callq 0x6bd0
movl %eax, %ecx
movq -0x128(%rbp), %rax
movl %ecx, 0x1d194(%rax)
movq -0xb0(%rbp), %rdi
callq 0x6bd0
movl %eax, %ecx
movq -0x128(%rbp), %rax
movl %ecx, 0x1d1a4(%rax)
movq -0xa8(%rbp), %rdi
callq 0x6bd0
movl %eax, %ecx
movq -0x128(%rbp), %rax
movl %ecx, 0x1d1d8(%rax)
movq -0x128(%rbp), %rax
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x130, %rsp            # imm = 0x130
popq %rbp
retq
nopl (%rax,%rax)