// File: millanek[P]evo/process_vcf_IUPAC.cpp
// Function: getAmbiguityCode(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
std::string getAmbiguityCode(std::string b1, std::string b2) {
    if ((b1 == "A" && b2 == "C") || (b1 == "C" && b2 == "A"))
        return "M";
    else if ((b1 == "A" && b2 == "G") || (b1 == "G" && b2 == "A"))
        return "R";
    else if ((b1 == "A" && b2 == "T") || (b1 == "T" && b2 == "A"))
        return "W";
    else if ((b1 == "C" && b2 == "G") || (b1 == "G" && b2 == "C"))
        return "S";
    else if ((b1 == "C" && b2 == "T") || (b1 == "T" && b2 == "C"))
        return "Y";
    else if ((b1 == "G" && b2 == "T") || (b1 == "T" && b2 == "G"))
        return "K";
    else
        return "?";
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x90, %rsp
movq %rdx, -0x58(%rbp)
movq %rsi, -0x50(%rbp)
movq %rdi, %rax
movq -0x50(%rbp), %rdi
movq %rax, -0x48(%rbp)
movq %rax, %rcx
movq %rcx, -0x40(%rbp)
movq %rax, -0x8(%rbp)
movq %rdi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
leaq 0x9faf8(%rip), %rsi     # 0x12e4c0
callq 0x2d770
testb $0x1, %al
jne 0x8e9d3
jmp 0x8e9e7
movq -0x58(%rbp), %rdi
leaq 0x9fad4(%rip), %rsi     # 0x12e4b2
callq 0x2d770
testb $0x1, %al
jne 0x8ea13
movq -0x50(%rbp), %rdi
leaq 0x9fac0(%rip), %rsi     # 0x12e4b2
callq 0x2d770
testb $0x1, %al
jne 0x8e9fd
jmp 0x8ea5e
movq -0x58(%rbp), %rdi
leaq 0x9fab8(%rip), %rsi     # 0x12e4c0
callq 0x2d770
testb $0x1, %al
jne 0x8ea13
jmp 0x8ea5e
leaq -0x19(%rbp), %rdi
movq %rdi, -0x60(%rbp)
callq 0xab60
movq -0x48(%rbp), %rdi
movq -0x60(%rbp), %rdx
leaq 0x9fd78(%rip), %rsi     # 0x12e7a7
callq 0x2d6c0
jmp 0x8ea36
leaq -0x19(%rbp), %rdi
callq 0xa640
jmp 0x8edce
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x19(%rbp), %rdi
callq 0xa640
jmp 0x8eddb
movq -0x50(%rbp), %rdi
leaq 0x9fa57(%rip), %rsi     # 0x12e4c0
callq 0x2d770
testb $0x1, %al
jne 0x8ea74
jmp 0x8ea88
movq -0x58(%rbp), %rdi
leaq 0x9fa3a(%rip), %rsi     # 0x12e4b9
callq 0x2d770
testb $0x1, %al
jne 0x8eab4
movq -0x50(%rbp), %rdi
leaq 0x9fa26(%rip), %rsi     # 0x12e4b9
callq 0x2d770
testb $0x1, %al
jne 0x8ea9e
jmp 0x8eaff
movq -0x58(%rbp), %rdi
leaq 0x9fa17(%rip), %rsi     # 0x12e4c0
callq 0x2d770
testb $0x1, %al
jne 0x8eab4
jmp 0x8eaff
leaq -0x2d(%rbp), %rdi
movq %rdi, -0x68(%rbp)
callq 0xab60
movq -0x48(%rbp), %rdi
movq -0x68(%rbp), %rdx
leaq 0xbaa69(%rip), %rsi     # 0x149539
callq 0x2d6c0
jmp 0x8ead7
leaq -0x2d(%rbp), %rdi
callq 0xa640
jmp 0x8edce
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x2d(%rbp), %rdi
callq 0xa640
jmp 0x8eddb
movq -0x50(%rbp), %rdi
leaq 0x9f9b6(%rip), %rsi     # 0x12e4c0
callq 0x2d770
testb $0x1, %al
jne 0x8eb15
jmp 0x8eb29
movq -0x58(%rbp), %rdi
leaq 0x9f98b(%rip), %rsi     # 0x12e4ab
callq 0x2d770
testb $0x1, %al
jne 0x8eb55
movq -0x50(%rbp), %rdi
leaq 0x9f977(%rip), %rsi     # 0x12e4ab
callq 0x2d770
testb $0x1, %al
jne 0x8eb3f
jmp 0x8eba0
movq -0x58(%rbp), %rdi
leaq 0x9f976(%rip), %rsi     # 0x12e4c0
callq 0x2d770
testb $0x1, %al
jne 0x8eb55
jmp 0x8eba0
leaq -0x2e(%rbp), %rdi
movq %rdi, -0x70(%rbp)
callq 0xab60
movq -0x48(%rbp), %rdi
movq -0x70(%rbp), %rdx
leaq 0xbd806(%rip), %rsi     # 0x14c377
callq 0x2d6c0
jmp 0x8eb78
leaq -0x2e(%rbp), %rdi
callq 0xa640
jmp 0x8edce
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x2e(%rbp), %rdi
callq 0xa640
jmp 0x8eddb
movq -0x50(%rbp), %rdi
leaq 0x9f907(%rip), %rsi     # 0x12e4b2
callq 0x2d770
testb $0x1, %al
jne 0x8ebb6
jmp 0x8ebca
movq -0x58(%rbp), %rdi
leaq 0x9f8f8(%rip), %rsi     # 0x12e4b9
callq 0x2d770
testb $0x1, %al
jne 0x8ebf6
movq -0x50(%rbp), %rdi
leaq 0x9f8e4(%rip), %rsi     # 0x12e4b9
callq 0x2d770
testb $0x1, %al
jne 0x8ebe0
jmp 0x8ec41
movq -0x58(%rbp), %rdi
leaq 0x9f8c7(%rip), %rsi     # 0x12e4b2
callq 0x2d770
testb $0x1, %al
jne 0x8ebf6
jmp 0x8ec41
leaq -0x2f(%rbp), %rdi
movq %rdi, -0x78(%rbp)
callq 0xab60
movq -0x48(%rbp), %rdi
movq -0x78(%rbp), %rdx
leaq 0x9fb16(%rip), %rsi     # 0x12e728
callq 0x2d6c0
jmp 0x8ec19
leaq -0x2f(%rbp), %rdi
callq 0xa640
jmp 0x8edce
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x2f(%rbp), %rdi
callq 0xa640
jmp 0x8eddb
movq -0x50(%rbp), %rdi
leaq 0x9f866(%rip), %rsi     # 0x12e4b2
callq 0x2d770
testb $0x1, %al
jne 0x8ec57
jmp 0x8ec6b
movq -0x58(%rbp), %rdi
leaq 0x9f849(%rip), %rsi     # 0x12e4ab
callq 0x2d770
testb $0x1, %al
jne 0x8ec97
movq -0x50(%rbp), %rdi
leaq 0x9f835(%rip), %rsi     # 0x12e4ab
callq 0x2d770
testb $0x1, %al
jne 0x8ec81
jmp 0x8ece2
movq -0x58(%rbp), %rdi
leaq 0x9f826(%rip), %rsi     # 0x12e4b2
callq 0x2d770
testb $0x1, %al
jne 0x8ec97
jmp 0x8ece2
leaq -0x30(%rbp), %rdi
movq %rdi, -0x80(%rbp)
callq 0xab60
movq -0x48(%rbp), %rdi
movq -0x80(%rbp), %rdx
leaq 0xa90fc(%rip), %rsi     # 0x137daf
callq 0x2d6c0
jmp 0x8ecba
leaq -0x30(%rbp), %rdi
callq 0xa640
jmp 0x8edce
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x30(%rbp), %rdi
callq 0xa640
jmp 0x8eddb
movq -0x50(%rbp), %rdi
leaq 0x9f7cc(%rip), %rsi     # 0x12e4b9
callq 0x2d770
testb $0x1, %al
jne 0x8ecf8
jmp 0x8ed0c
movq -0x58(%rbp), %rdi
leaq 0x9f7a8(%rip), %rsi     # 0x12e4ab
callq 0x2d770
testb $0x1, %al
jne 0x8ed38
movq -0x50(%rbp), %rdi
leaq 0x9f794(%rip), %rsi     # 0x12e4ab
callq 0x2d770
testb $0x1, %al
jne 0x8ed22
jmp 0x8ed83
movq -0x58(%rbp), %rdi
leaq 0x9f78c(%rip), %rsi     # 0x12e4b9
callq 0x2d770
testb $0x1, %al
jne 0x8ed38
jmp 0x8ed83
leaq -0x31(%rbp), %rdi
movq %rdi, -0x88(%rbp)
callq 0xab60
movq -0x48(%rbp), %rdi
movq -0x88(%rbp), %rdx
leaq 0xad3f3(%rip), %rsi     # 0x13c14d
callq 0x2d6c0
jmp 0x8ed61
leaq -0x31(%rbp), %rdi
callq 0xa640
jmp 0x8edce
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x31(%rbp), %rdi
callq 0xa640
jmp 0x8eddb
leaq -0x32(%rbp), %rdi
movq %rdi, -0x90(%rbp)
callq 0xab60
movq -0x48(%rbp), %rdi
movq -0x90(%rbp), %rdx
leaq 0xb7d4e(%rip), %rsi     # 0x146af3
callq 0x2d6c0
jmp 0x8edac
leaq -0x32(%rbp), %rdi
callq 0xa640
jmp 0x8edce
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x28(%rbp)
movl %eax, -0x2c(%rbp)
leaq -0x32(%rbp), %rdi
callq 0xa640
jmp 0x8eddb
movq -0x40(%rbp), %rax
addq $0x90, %rsp
popq %rbp
retq
movq -0x28(%rbp), %rdi
callq 0xab50
nopw %cs:(%rax,%rax)
nop