// File: shangjingbo1226[P]MACFP/src/methods/../config/dna.h
// Function: loadDNASequence[abi:cxx11]()
string loadDNASequence()
{
    FILE* in = tryOpen(DNA_FILENAME, "r");
    string dna = "";
    while (getLine(in)) {
        for (size_t i = 0; line[i]; ++ i) {
            line[i] = tolower(line[i]);
            myAssert(alphabet.find(line[i]) != -1, "Unknown Character: " + line[i]);
        }
        dna += line;
    }
    fclose(in);
    return dna;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xf0, %rsp
movq %rdi, -0xb0(%rbp)
movq %rdi, %rax
movq %rax, -0xa8(%rbp)
movq %rdi, -0x8(%rbp)
leaq 0x5f831a1(%rip), %rsi   # 0x5f873a8
leaq -0x30(%rbp), %rdi
callq 0x30f0
leaq -0x51(%rbp), %rdi
movq %rdi, -0xa0(%rbp)
callq 0x3430
movq -0xa0(%rbp), %rdx
leaq 0x17ec4(%rip), %rsi     # 0x1c0f2
leaq -0x50(%rbp), %rdi
callq 0x8300
jmp 0x4239
leaq -0x30(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x3cc0
movq %rax, -0xb8(%rbp)
jmp 0x424f
leaq -0x50(%rbp), %rdi
callq 0x34a8
leaq -0x51(%rbp), %rdi
callq 0x32c0
leaq -0x30(%rbp), %rdi
callq 0x34a8
movq -0xb8(%rbp), %rax
movq %rax, -0x10(%rbp)
movb $0x0, -0x65(%rbp)
leaq -0x66(%rbp), %rdi
movq %rdi, -0xc0(%rbp)
callq 0x3430
movq -0xb0(%rbp), %rdi
movq -0xc0(%rbp), %rdx
leaq 0x17ef7(%rip), %rsi     # 0x1c195
callq 0x8300
jmp 0x42a5
leaq -0x66(%rbp), %rdi
callq 0x32c0
movq -0x10(%rbp), %rdi
callq 0x3c00
movb %al, -0xc1(%rbp)
jmp 0x42bf
movb -0xc1(%rbp), %al
testb $0x1, %al
jne 0x42ce
jmp 0x447e
movq $0x0, -0x70(%rbp)
movq -0x70(%rbp), %rcx
leaq 0x24fbf(%rip), %rax     # 0x292a0
cmpb $0x0, (%rax,%rcx)
je 0x4464
movq -0x70(%rbp), %rax
leaq 0x24faa(%rip), %rcx     # 0x292a0
movq %rcx, -0xe8(%rbp)
movsbl (%rax,%rcx), %edi
callq 0x3380
movq -0xe8(%rbp), %rcx
movb %al, %dl
movq -0x70(%rbp), %rax
movb %dl, (%rax,%rcx)
movq -0x70(%rbp), %rax
movsbl (%rax,%rcx), %esi
leaq 0x5f830c3(%rip), %rdi   # 0x5f873e8
xorl %eax, %eax
movl %eax, %edx
callq 0x3330
movq -0xe8(%rbp), %rcx
subq $-0x1, %rax
setne %al
movb %al, -0xd9(%rbp)
movq -0x70(%rbp), %rax
movsbq (%rax,%rcx), %rcx
leaq 0x17d5c(%rip), %rax     # 0x1c0ae
addq %rcx, %rax
movq %rax, -0xd8(%rbp)
leaq -0x91(%rbp), %rdi
movq %rdi, -0xd0(%rbp)
callq 0x3430
movq -0xd8(%rbp), %rsi
movq -0xd0(%rbp), %rdx
leaq -0x90(%rbp), %rdi
callq 0x8300
jmp 0x438b
movb -0xd9(%rbp), %al
movzbl %al, %edi
andl $0x1, %edi
leaq -0x90(%rbp), %rsi
callq 0x3a80
jmp 0x43a5
leaq -0x90(%rbp), %rdi
callq 0x34a8
leaq -0x91(%rbp), %rdi
callq 0x32c0
movq -0x70(%rbp), %rax
addq $0x1, %rax
movq %rax, -0x70(%rbp)
jmp 0x42d6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x43f1
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x50(%rbp), %rdi
callq 0x34a8
leaq -0x51(%rbp), %rdi
callq 0x32c0
leaq -0x30(%rbp), %rdi
callq 0x34a8
jmp 0x44bb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x66(%rbp), %rdi
callq 0x32c0
jmp 0x44bb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x44af
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0x4456
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x90(%rbp), %rdi
callq 0x34a8
leaq -0x91(%rbp), %rdi
callq 0x32c0
jmp 0x44af
movq -0xb0(%rbp), %rdi
leaq 0x24e2e(%rip), %rsi     # 0x292a0
callq 0x3230
jmp 0x4479
jmp 0x42ae
movq -0x10(%rbp), %rdi
callq 0x3260
jmp 0x4489
movb $0x1, -0x65(%rbp)
testb $0x1, -0x65(%rbp)
jne 0x449f
movq -0xb0(%rbp), %rdi
callq 0x34a8
movq -0xa8(%rbp), %rax
addq $0xf0, %rsp
popq %rbp
retq
movq -0xb0(%rbp), %rdi
callq 0x34a8
movq -0x60(%rbp), %rdi
callq 0x3420
nopw %cs:(%rax,%rax)