// File: Wombozo[P]harmony/src/utils.cpp
// Function: valid_user_type_interval_input(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
bool valid_user_type_interval_input(const std::string &str)
{
    std::string sints[] = {"minor second",
                           "major second",
                           "augmented second",
                           "diminished third",
                           "minor third",
                           "major third",
                           "augmented third",
                           "diminished fourth",
                           "perfect fourth",
                           "augmented fourth",
                           "diminished fifth",
                           "perfect fifth",
                           "augmented fifth",
                           "diminished sixth",
                           "minor sixth",
                           "major sixth",
                           "augmented sixth",
                           "diminished seventh",
                           "minor seventh",
                           "major seventh"};
    for (auto sint : sints)
    {
        if (!sint.compare(str))
            return true;
    }
    std::cout << "Available answers : ";
    for (auto sint : sints)
    {
        std::cout << "| " + sint + " | ";
    }
    std::cout << std::endl;
    return false;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x500, %rsp            # imm = 0x500
movq %rdi, -0x10(%rbp)
movb $0x1, -0x2c0(%rbp)
leaq -0x290(%rbp), %rax
movq %rax, -0x388(%rbp)
movq %rax, -0x298(%rbp)
leaq -0x299(%rbp), %rdi
movq %rdi, -0x380(%rbp)
callq 0x33e0
movq -0x388(%rbp), %rdi
movq -0x380(%rbp), %rdx
leaq 0x10c42(%rip), %rsi     # 0x191b5
callq 0x7340
jmp 0x857a
leaq -0x270(%rbp), %rax
movq %rax, -0x398(%rbp)
movq %rax, -0x298(%rbp)
leaq -0x2ad(%rbp), %rdi
movq %rdi, -0x390(%rbp)
callq 0x33e0
movq -0x398(%rbp), %rdi
movq -0x390(%rbp), %rdx
leaq 0x10c0b(%rip), %rsi     # 0x191c2
callq 0x7340
jmp 0x85be
leaq -0x250(%rbp), %rax
movq %rax, -0x3a8(%rbp)
movq %rax, -0x298(%rbp)
leaq -0x2ae(%rbp), %rdi
movq %rdi, -0x3a0(%rbp)
callq 0x33e0
movq -0x3a8(%rbp), %rdi
movq -0x3a0(%rbp), %rdx
leaq 0x10bd4(%rip), %rsi     # 0x191cf
callq 0x7340
jmp 0x8602
leaq -0x230(%rbp), %rax
movq %rax, -0x3b8(%rbp)
movq %rax, -0x298(%rbp)
leaq -0x2af(%rbp), %rdi
movq %rdi, -0x3b0(%rbp)
callq 0x33e0
movq -0x3b8(%rbp), %rdi
movq -0x3b0(%rbp), %rdx
leaq 0x10ba1(%rip), %rsi     # 0x191e0
callq 0x7340
jmp 0x8646
leaq -0x210(%rbp), %rax
movq %rax, -0x3c8(%rbp)
movq %rax, -0x298(%rbp)
leaq -0x2b0(%rbp), %rdi
movq %rdi, -0x3c0(%rbp)
callq 0x33e0
movq -0x3c8(%rbp), %rdi
movq -0x3c0(%rbp), %rdx
leaq 0x10b6e(%rip), %rsi     # 0x191f1
callq 0x7340
jmp 0x868a
leaq -0x1f0(%rbp), %rax
movq %rax, -0x3d8(%rbp)
movq %rax, -0x298(%rbp)
leaq -0x2b1(%rbp), %rdi
movq %rdi, -0x3d0(%rbp)
callq 0x33e0
movq -0x3d8(%rbp), %rdi
movq -0x3d0(%rbp), %rdx
leaq 0x10b36(%rip), %rsi     # 0x191fd
callq 0x7340
jmp 0x86ce
leaq -0x1d0(%rbp), %rax
movq %rax, -0x3e8(%rbp)
movq %rax, -0x298(%rbp)
leaq -0x2b2(%rbp), %rdi
movq %rdi, -0x3e0(%rbp)
callq 0x33e0
movq -0x3e8(%rbp), %rdi
movq -0x3e0(%rbp), %rdx
leaq 0x10afe(%rip), %rsi     # 0x19209
callq 0x7340
jmp 0x8712
leaq -0x1b0(%rbp), %rax
movq %rax, -0x3f8(%rbp)
movq %rax, -0x298(%rbp)
leaq -0x2b3(%rbp), %rdi
movq %rdi, -0x3f0(%rbp)
callq 0x33e0
movq -0x3f8(%rbp), %rdi
movq -0x3f0(%rbp), %rdx
leaq 0x10aca(%rip), %rsi     # 0x19219
callq 0x7340
jmp 0x8756
leaq -0x190(%rbp), %rax
movq %rax, -0x408(%rbp)
movq %rax, -0x298(%rbp)
leaq -0x2b4(%rbp), %rdi
movq %rdi, -0x400(%rbp)
callq 0x33e0
movq -0x408(%rbp), %rdi
movq -0x400(%rbp), %rdx
leaq 0x10a98(%rip), %rsi     # 0x1922b
callq 0x7340
jmp 0x879a
leaq -0x170(%rbp), %rax
movq %rax, -0x418(%rbp)
movq %rax, -0x298(%rbp)
leaq -0x2b5(%rbp), %rdi
movq %rdi, -0x410(%rbp)
callq 0x33e0
movq -0x418(%rbp), %rdi
movq -0x410(%rbp), %rdx
leaq 0x10a63(%rip), %rsi     # 0x1923a
callq 0x7340
jmp 0x87de
leaq -0x150(%rbp), %rax
movq %rax, -0x428(%rbp)
movq %rax, -0x298(%rbp)
leaq -0x2b6(%rbp), %rdi
movq %rdi, -0x420(%rbp)
callq 0x33e0
movq -0x428(%rbp), %rdi
movq -0x420(%rbp), %rdx
leaq 0x10a30(%rip), %rsi     # 0x1924b
callq 0x7340
jmp 0x8822
leaq -0x130(%rbp), %rax
movq %rax, -0x438(%rbp)
movq %rax, -0x298(%rbp)
leaq -0x2b7(%rbp), %rdi
movq %rdi, -0x430(%rbp)
callq 0x33e0
movq -0x438(%rbp), %rdi
movq -0x430(%rbp), %rdx
leaq 0x109fd(%rip), %rsi     # 0x1925c
callq 0x7340
jmp 0x8866
leaq -0x110(%rbp), %rax
movq %rax, -0x448(%rbp)
movq %rax, -0x298(%rbp)
leaq -0x2b8(%rbp), %rdi
movq %rdi, -0x440(%rbp)
callq 0x33e0
movq -0x448(%rbp), %rdi
movq -0x440(%rbp), %rdx
leaq 0x109c7(%rip), %rsi     # 0x1926a
callq 0x7340
jmp 0x88aa
leaq -0xf0(%rbp), %rax
movq %rax, -0x458(%rbp)
movq %rax, -0x298(%rbp)
leaq -0x2b9(%rbp), %rdi
movq %rdi, -0x450(%rbp)
callq 0x33e0
movq -0x458(%rbp), %rdi
movq -0x450(%rbp), %rdx
leaq 0x10993(%rip), %rsi     # 0x1927a
callq 0x7340
jmp 0x88ee
leaq -0xd0(%rbp), %rax
movq %rax, -0x468(%rbp)
movq %rax, -0x298(%rbp)
leaq -0x2ba(%rbp), %rdi
movq %rdi, -0x460(%rbp)
callq 0x33e0
movq -0x468(%rbp), %rdi
movq -0x460(%rbp), %rdx
leaq 0x10960(%rip), %rsi     # 0x1928b
callq 0x7340
jmp 0x8932
leaq -0xb0(%rbp), %rax
movq %rax, -0x478(%rbp)
movq %rax, -0x298(%rbp)
leaq -0x2bb(%rbp), %rdi
movq %rdi, -0x470(%rbp)
callq 0x33e0
movq -0x478(%rbp), %rdi
movq -0x470(%rbp), %rdx
leaq 0x10928(%rip), %rsi     # 0x19297
callq 0x7340
jmp 0x8976
leaq -0x90(%rbp), %rax
movq %rax, -0x488(%rbp)
movq %rax, -0x298(%rbp)
leaq -0x2bc(%rbp), %rdi
movq %rdi, -0x480(%rbp)
callq 0x33e0
movq -0x488(%rbp), %rdi
movq -0x480(%rbp), %rdx
leaq 0x108f0(%rip), %rsi     # 0x192a3
callq 0x7340
jmp 0x89ba
leaq -0x70(%rbp), %rax
movq %rax, -0x498(%rbp)
movq %rax, -0x298(%rbp)
leaq -0x2bd(%rbp), %rdi
movq %rdi, -0x490(%rbp)
callq 0x33e0
movq -0x498(%rbp), %rdi
movq -0x490(%rbp), %rdx
leaq 0x108bf(%rip), %rsi     # 0x192b3
callq 0x7340
jmp 0x89fb
leaq -0x50(%rbp), %rax
movq %rax, -0x4a8(%rbp)
movq %rax, -0x298(%rbp)
leaq -0x2be(%rbp), %rdi
movq %rdi, -0x4a0(%rbp)
callq 0x33e0
movq -0x4a8(%rbp), %rdi
movq -0x4a0(%rbp), %rdx
leaq 0x10891(%rip), %rsi     # 0x192c6
callq 0x7340
jmp 0x8a3c
leaq -0x30(%rbp), %rax
movq %rax, -0x4b8(%rbp)
movq %rax, -0x298(%rbp)
leaq -0x2bf(%rbp), %rdi
movq %rdi, -0x4b0(%rbp)
callq 0x33e0
movq -0x4b8(%rbp), %rdi
movq -0x4b0(%rbp), %rdx
leaq 0x1085e(%rip), %rsi     # 0x192d4
callq 0x7340
jmp 0x8a7d
movb $0x0, -0x2c0(%rbp)
leaq -0x2bf(%rbp), %rdi
callq 0x3270
leaq -0x2be(%rbp), %rdi
callq 0x3270
leaq -0x2bd(%rbp), %rdi
callq 0x3270
leaq -0x2bc(%rbp), %rdi
callq 0x3270
leaq -0x2bb(%rbp), %rdi
callq 0x3270
leaq -0x2ba(%rbp), %rdi
callq 0x3270
leaq -0x2b9(%rbp), %rdi
callq 0x3270
leaq -0x2b8(%rbp), %rdi
callq 0x3270
leaq -0x2b7(%rbp), %rdi
callq 0x3270
leaq -0x2b6(%rbp), %rdi
callq 0x3270
leaq -0x2b5(%rbp), %rdi
callq 0x3270
leaq -0x2b4(%rbp), %rdi
callq 0x3270
leaq -0x2b3(%rbp), %rdi
callq 0x3270
leaq -0x2b2(%rbp), %rdi
callq 0x3270
leaq -0x2b1(%rbp), %rdi
callq 0x3270
leaq -0x2b0(%rbp), %rdi
callq 0x3270
leaq -0x2af(%rbp), %rdi
callq 0x3270
leaq -0x2ae(%rbp), %rdi
callq 0x3270
leaq -0x2ad(%rbp), %rdi
callq 0x3270
leaq -0x299(%rbp), %rdi
callq 0x3270
leaq -0x290(%rbp), %rax
movq %rax, -0x2c8(%rbp)
movq -0x2c8(%rbp), %rax
movq %rax, -0x2d0(%rbp)
movq -0x2c8(%rbp), %rax
addq $0x280, %rax            # imm = 0x280
movq %rax, -0x2d8(%rbp)
movq -0x2d0(%rbp), %rax
cmpq -0x2d8(%rbp), %rax
je 0x8f88
movq -0x2d0(%rbp), %rsi
leaq -0x2f8(%rbp), %rdi
callq 0x3100
jmp 0x8bcd
movq -0x10(%rbp), %rsi
leaq -0x2f8(%rbp), %rdi
callq 0x3040
movl %eax, -0x4bc(%rbp)
jmp 0x8be5
movl -0x4bc(%rbp), %eax
cmpl $0x0, %eax
jne 0x8f49
movb $0x1, -0x1(%rbp)
movl $0x1, -0x2fc(%rbp)
jmp 0x8f53
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2a8(%rbp)
movl %eax, -0x2ac(%rbp)
jmp 0x8ea6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2a8(%rbp)
movl %eax, -0x2ac(%rbp)
jmp 0x8e9a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2a8(%rbp)
movl %eax, -0x2ac(%rbp)
jmp 0x8e8e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2a8(%rbp)
movl %eax, -0x2ac(%rbp)
jmp 0x8e82
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2a8(%rbp)
movl %eax, -0x2ac(%rbp)
jmp 0x8e76
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2a8(%rbp)
movl %eax, -0x2ac(%rbp)
jmp 0x8e6a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2a8(%rbp)
movl %eax, -0x2ac(%rbp)
jmp 0x8e5e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2a8(%rbp)
movl %eax, -0x2ac(%rbp)
jmp 0x8e52
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2a8(%rbp)
movl %eax, -0x2ac(%rbp)
jmp 0x8e46
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2a8(%rbp)
movl %eax, -0x2ac(%rbp)
jmp 0x8e3a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2a8(%rbp)
movl %eax, -0x2ac(%rbp)
jmp 0x8e2e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2a8(%rbp)
movl %eax, -0x2ac(%rbp)
jmp 0x8e22
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2a8(%rbp)
movl %eax, -0x2ac(%rbp)
jmp 0x8e16
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2a8(%rbp)
movl %eax, -0x2ac(%rbp)
jmp 0x8e0a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2a8(%rbp)
movl %eax, -0x2ac(%rbp)
jmp 0x8dfe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2a8(%rbp)
movl %eax, -0x2ac(%rbp)
jmp 0x8df2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2a8(%rbp)
movl %eax, -0x2ac(%rbp)
jmp 0x8de6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2a8(%rbp)
movl %eax, -0x2ac(%rbp)
jmp 0x8dda
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2a8(%rbp)
movl %eax, -0x2ac(%rbp)
jmp 0x8dce
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2a8(%rbp)
movl %eax, -0x2ac(%rbp)
leaq -0x2bf(%rbp), %rdi
callq 0x3270
leaq -0x2be(%rbp), %rdi
callq 0x3270
leaq -0x2bd(%rbp), %rdi
callq 0x3270
leaq -0x2bc(%rbp), %rdi
callq 0x3270
leaq -0x2bb(%rbp), %rdi
callq 0x3270
leaq -0x2ba(%rbp), %rdi
callq 0x3270
leaq -0x2b9(%rbp), %rdi
callq 0x3270
leaq -0x2b8(%rbp), %rdi
callq 0x3270
leaq -0x2b7(%rbp), %rdi
callq 0x3270
leaq -0x2b6(%rbp), %rdi
callq 0x3270
leaq -0x2b5(%rbp), %rdi
callq 0x3270
leaq -0x2b4(%rbp), %rdi
callq 0x3270
leaq -0x2b3(%rbp), %rdi
callq 0x3270
leaq -0x2b2(%rbp), %rdi
callq 0x3270
leaq -0x2b1(%rbp), %rdi
callq 0x3270
leaq -0x2b0(%rbp), %rdi
callq 0x3270
leaq -0x2af(%rbp), %rdi
callq 0x3270
leaq -0x2ae(%rbp), %rdi
callq 0x3270
leaq -0x2ad(%rbp), %rdi
callq 0x3270
leaq -0x299(%rbp), %rdi
callq 0x3270
testb $0x1, -0x2c0(%rbp)
jne 0x8ebd
jmp 0x8f0a
movq -0x298(%rbp), %rax
leaq -0x290(%rbp), %rcx
cmpq %rax, %rcx
movq %rax, -0x4c8(%rbp)
je 0x8f08
movq -0x4c8(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x4d0(%rbp)
callq 0x3190
movq -0x4d0(%rbp), %rax
leaq -0x290(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x4c8(%rbp)
jne 0x8ed7
jmp 0x8f0a
jmp 0x91a9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2a8(%rbp)
movl %eax, -0x2ac(%rbp)
jmp 0x915b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2a8(%rbp)
movl %eax, -0x2ac(%rbp)
leaq -0x2f8(%rbp), %rdi
callq 0x3190
jmp 0x915b
movl $0x0, -0x2fc(%rbp)
leaq -0x2f8(%rbp), %rdi
callq 0x3190
movl -0x2fc(%rbp), %eax
testl %eax, %eax
jne 0x9101
jmp 0x8f6f
jmp 0x8f71
movq -0x2d0(%rbp), %rax
addq $0x20, %rax
movq %rax, -0x2d0(%rbp)
jmp 0x8ba4
movq 0x18041(%rip), %rdi     # 0x20fd0
leaq 0x10206(%rip), %rsi     # 0x1919c
callq 0x3220
jmp 0x8f9d
leaq -0x290(%rbp), %rax
movq %rax, -0x308(%rbp)
movq -0x308(%rbp), %rax
movq %rax, -0x310(%rbp)
movq -0x308(%rbp), %rax
addq $0x280, %rax            # imm = 0x280
movq %rax, -0x318(%rbp)
movq -0x310(%rbp), %rax
cmpq -0x318(%rbp), %rax
je 0x90de
movq -0x310(%rbp), %rsi
leaq -0x338(%rbp), %rdi
callq 0x3100
jmp 0x8ff6
leaq 0x101b5(%rip), %rsi     # 0x191b2
leaq -0x378(%rbp), %rdi
leaq -0x338(%rbp), %rdx
callq 0xa380
jmp 0x9012
leaq 0x10198(%rip), %rdx     # 0x191b1
leaq -0x358(%rbp), %rdi
leaq -0x378(%rbp), %rsi
callq 0xa330
jmp 0x902e
movq 0x17f9b(%rip), %rdi     # 0x20fd0
leaq -0x358(%rbp), %rsi
callq 0x3210
jmp 0x9043
leaq -0x358(%rbp), %rdi
callq 0x3190
leaq -0x378(%rbp), %rdi
callq 0x3190
leaq -0x338(%rbp), %rdi
callq 0x3190
movq -0x310(%rbp), %rax
addq $0x20, %rax
movq %rax, -0x310(%rbp)
jmp 0x8fcd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2a8(%rbp)
movl %eax, -0x2ac(%rbp)
jmp 0x90d0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2a8(%rbp)
movl %eax, -0x2ac(%rbp)
jmp 0x90c4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x2a8(%rbp)
movl %eax, -0x2ac(%rbp)
leaq -0x358(%rbp), %rdi
callq 0x3190
leaq -0x378(%rbp), %rdi
callq 0x3190
leaq -0x338(%rbp), %rdi
callq 0x3190
jmp 0x915b
movq 0x17eeb(%rip), %rdi     # 0x20fd0
movq 0x17ecc(%rip), %rsi     # 0x20fb8
callq 0x3250
jmp 0x90f3
movb $0x0, -0x1(%rbp)
movl $0x1, -0x2fc(%rbp)
leaq -0x290(%rbp), %rax
movq %rax, -0x4e0(%rbp)
addq $0x280, %rax            # imm = 0x280
movq %rax, -0x4d8(%rbp)
movq -0x4d8(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x4e8(%rbp)
callq 0x3190
movq -0x4e0(%rbp), %rcx
movq -0x4e8(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x4d8(%rbp)
jne 0x911c
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x500, %rsp            # imm = 0x500
popq %rbp
retq
leaq -0x290(%rbp), %rax
movq %rax, -0x4f8(%rbp)
addq $0x280, %rax            # imm = 0x280
movq %rax, -0x4f0(%rbp)
movq -0x4f0(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x500(%rbp)
callq 0x3190
movq -0x4f8(%rbp), %rcx
movq -0x500(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x4f0(%rbp)
jne 0x9176
jmp 0x91a9
movq -0x2a8(%rbp), %rdi
callq 0x33d0
nopw %cs:(%rax,%rax)