// File: /workspace/github_c_makefile_star2_O0/icebert[P]pblat/lib/axt.c
// Function: axtScoreSchemeSimpleDna
struct axtScoreScheme *axtScoreSchemeSimpleDna(int match, int misMatch, int gapOpen, int gapExtend)
/* Return a relatively simple scoring scheme for DNA. */
{
static struct axtScoreScheme *ss;
static struct axtScoreScheme *tt;

if (ss != NULL)
    return ss;
if (tt == NULL)
    AllocVar(tt);

/* Set up lower case elements of matrix. */
tt->matrix['a']['a'] = match;
tt->matrix['a']['c'] = -misMatch;
tt->matrix['a']['g'] = -misMatch;
tt->matrix['a']['t'] = -misMatch;

tt->matrix['c']['a'] = -misMatch;
tt->matrix['c']['c'] = match;
tt->matrix['c']['g'] = -misMatch;
tt->matrix['c']['t'] = -misMatch;

tt->matrix['g']['a'] = -misMatch;
tt->matrix['g']['c'] = -misMatch;
tt->matrix['g']['g'] = match;
tt->matrix['g']['t'] = -misMatch;

tt->matrix['t']['a'] = -misMatch;
tt->matrix['t']['c'] = -misMatch;
tt->matrix['t']['g'] = -misMatch;
tt->matrix['t']['t'] = match;

propagateCase(tt);
tt->gapOpen = gapOpen;
tt->gapExtend = gapExtend;

ss = tt;
return ss;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movl %edi, -0xc(%rbp)
movl %esi, -0x10(%rbp)
movl %edx, -0x14(%rbp)
movl %ecx, -0x18(%rbp)
cmpq $0x0, 0xe5764(%rip)     # 0x107410
je 0x21cbe
movq 0xe575b(%rip), %rax     # 0x107410
movq %rax, -0x8(%rbp)
jmp 0x21e36
cmpq $0x0, 0xe5752(%rip)     # 0x107418
jne 0x21cd9
movl $0x40018, %edi          # imm = 0x40018
callq 0x40c50
movq %rax, 0xe573f(%rip)     # 0x107418
movl -0xc(%rbp), %ecx
movq 0xe5735(%rip), %rax     # 0x107418
movl %ecx, 0x1858c(%rax)
xorl %ecx, %ecx
subl -0x10(%rbp), %ecx
movq 0xe5723(%rip), %rax     # 0x107418
movl %ecx, 0x18594(%rax)
xorl %ecx, %ecx
subl -0x10(%rbp), %ecx
movq 0xe5711(%rip), %rax     # 0x107418
movl %ecx, 0x185a4(%rax)
xorl %ecx, %ecx
subl -0x10(%rbp), %ecx
movq 0xe56ff(%rip), %rax     # 0x107418
movl %ecx, 0x185d8(%rax)
xorl %ecx, %ecx
subl -0x10(%rbp), %ecx
movq 0xe56ed(%rip), %rax     # 0x107418
movl %ecx, 0x18d8c(%rax)
movl -0xc(%rbp), %ecx
movq 0xe56dd(%rip), %rax     # 0x107418
movl %ecx, 0x18d94(%rax)
xorl %ecx, %ecx
subl -0x10(%rbp), %ecx
movq 0xe56cb(%rip), %rax     # 0x107418
movl %ecx, 0x18da4(%rax)
xorl %ecx, %ecx
subl -0x10(%rbp), %ecx
movq 0xe56b9(%rip), %rax     # 0x107418
movl %ecx, 0x18dd8(%rax)
xorl %ecx, %ecx
subl -0x10(%rbp), %ecx
movq 0xe56a7(%rip), %rax     # 0x107418
movl %ecx, 0x19d8c(%rax)
xorl %ecx, %ecx
subl -0x10(%rbp), %ecx
movq 0xe5695(%rip), %rax     # 0x107418
movl %ecx, 0x19d94(%rax)
movl -0xc(%rbp), %ecx
movq 0xe5685(%rip), %rax     # 0x107418
movl %ecx, 0x19da4(%rax)
xorl %ecx, %ecx
subl -0x10(%rbp), %ecx
movq 0xe5673(%rip), %rax     # 0x107418
movl %ecx, 0x19dd8(%rax)
xorl %ecx, %ecx
subl -0x10(%rbp), %ecx
movq 0xe5661(%rip), %rax     # 0x107418
movl %ecx, 0x1d18c(%rax)
xorl %ecx, %ecx
subl -0x10(%rbp), %ecx
movq 0xe564f(%rip), %rax     # 0x107418
movl %ecx, 0x1d194(%rax)
xorl %ecx, %ecx
subl -0x10(%rbp), %ecx
movq 0xe563d(%rip), %rax     # 0x107418
movl %ecx, 0x1d1a4(%rax)
movl -0xc(%rbp), %ecx
movq 0xe562d(%rip), %rax     # 0x107418
movl %ecx, 0x1d1d8(%rax)
movq 0xe5620(%rip), %rdi     # 0x107418
callq 0x21b70
movl -0x14(%rbp), %ecx
movq 0xe5611(%rip), %rax     # 0x107418
movl %ecx, 0x40008(%rax)
movl -0x18(%rbp), %ecx
movq 0xe5601(%rip), %rax     # 0x107418
movl %ecx, 0x4000c(%rax)
movq 0xe55f4(%rip), %rax     # 0x107418
movq %rax, 0xe55e5(%rip)     # 0x107410
movq 0xe55de(%rip), %rax     # 0x107410
movq %rax, -0x8(%rbp)
movq -0x8(%rbp), %rax
addq $0x20, %rsp
popq %rbp
retq