// File: /workspace/github_cpp_makefile_star2_O3/Wombozo[P]harmony/src/utils.cpp
// Function: valid_user_type_chord_input(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
bool valid_user_type_chord_input(const std::string &str)
{
    std::string stypes[] = {"M",
                            "m",
                            "dim",
                            "aug",
                            "sus4",
                            "7sus4",
                            "sus2",
                            "m7",
                            "7",
                            "maj7",
                            "minmaj7",
                            "6",
                            "m6",
                            "7b5",
                            "dim7",
                            "m7b5"};
    for (auto stype : stypes)
    {
        if (!stype.compare(str))
            return true;
    }
    std::cout << "Available answers : ";
    for (auto stype : stypes)
    {
        std::cout << "| " + stype + " | ";
    }
    std::cout << std::endl;
    return false;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x268, %rsp            # imm = 0x268
movq %rdi, %r13
leaq -0x280(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x83c2(%rip), %rsi      # 0xe2c4
leaq 0x83bc(%rip), %rdx      # 0xe2c5
leaq -0x290(%rbp), %rbx
movq %rbx, %rdi
callq 0x5178
leaq -0x270(%rbp), %r14
leaq -0x260(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x8397(%rip), %rsi      # 0xe2c8
leaq 0x8391(%rip), %rdx      # 0xe2c9
movq %r14, %rdi
callq 0x5178
leaq -0x250(%rbp), %r14
leaq -0x240(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x836d(%rip), %rsi      # 0xe2c6
leaq 0x8369(%rip), %rdx      # 0xe2c9
movq %r14, %rdi
callq 0x5178
leaq -0x230(%rbp), %r14
leaq -0x220(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x8349(%rip), %rsi      # 0xe2ca
leaq 0x8345(%rip), %rdx      # 0xe2cd
movq %r14, %rdi
callq 0x5178
leaq -0x210(%rbp), %r14
leaq -0x200(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x8326(%rip), %rsi      # 0xe2cf
leaq 0x8323(%rip), %rdx      # 0xe2d3
movq %r14, %rdi
callq 0x5178
leaq -0x1f0(%rbp), %r14
leaq -0x1e0(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x82fd(%rip), %rsi      # 0xe2ce
leaq 0x82fb(%rip), %rdx      # 0xe2d3
movq %r14, %rdi
callq 0x5178
leaq -0x1d0(%rbp), %r14
leaq -0x1c0(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x82db(%rip), %rsi      # 0xe2d4
leaq 0x82d8(%rip), %rdx      # 0xe2d8
movq %r14, %rdi
callq 0x5178
leaq -0x1b0(%rbp), %r14
leaq -0x1a0(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x82c5(%rip), %rsi      # 0xe2e6
leaq 0x82c0(%rip), %rdx      # 0xe2e8
movq %r14, %rdi
callq 0x5178
leaq -0x190(%rbp), %r14
leaq -0x180(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x8296(%rip), %rsi      # 0xe2df
leaq 0x8290(%rip), %rdx      # 0xe2e0
movq %r14, %rdi
callq 0x5178
leaq -0x170(%rbp), %r14
leaq -0x160(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x826b(%rip), %rsi      # 0xe2dc
leaq 0x8268(%rip), %rdx      # 0xe2e0
movq %r14, %rdi
callq 0x5178
leaq -0x150(%rbp), %r14
leaq -0x140(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x8240(%rip), %rsi      # 0xe2d9
leaq 0x8240(%rip), %rdx      # 0xe2e0
movq %r14, %rdi
callq 0x5178
leaq -0x130(%rbp), %r14
leaq -0x120(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x8221(%rip), %rsi      # 0xe2e2
leaq 0x821b(%rip), %rdx      # 0xe2e3
movq %r14, %rdi
callq 0x5178
leaq -0x110(%rbp), %r14
leaq -0x100(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x81f8(%rip), %rsi      # 0xe2e1
leaq 0x81f3(%rip), %rdx      # 0xe2e3
movq %r14, %rdi
callq 0x5178
leaq -0xf0(%rbp), %r14
leaq -0xe0(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x81d9(%rip), %rsi      # 0xe2ea
leaq 0x81d5(%rip), %rdx      # 0xe2ed
movq %r14, %rdi
callq 0x5178
leaq -0xd0(%rbp), %r14
leaq -0xc0(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x81ab(%rip), %rsi      # 0xe2e4
leaq 0x81a8(%rip), %rdx      # 0xe2e8
movq %r14, %rdi
callq 0x5178
leaq -0xb0(%rbp), %r14
leaq -0xa0(%rbp), %r12
movq %r12, -0x10(%r12)
leaq 0x8187(%rip), %rsi      # 0xe2e9
leaq 0x8184(%rip), %rdx      # 0xe2ed
movq %r14, %rdi
callq 0x5178
movl $0x8, %r15d
leaq -0x48(%rbp), %r14
leaq -0x38(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x298(%rbp,%r15), %rsi
movq -0x290(%rbp,%r15), %rdx
addq %rsi, %rdx
movq %r14, %rdi
callq 0x663a
movq %r14, %rdi
movq %r13, %rsi
callq 0x3040
movl %eax, %ebx
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x61c4
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x3190
testl %ebx, %ebx
je 0x6332
addq $0x20, %r15
cmpq $0x208, %r15            # imm = 0x208
jne 0x617b
movq 0xcde8(%rip), %rdi      # 0x12fc8
leaq 0x7f8b(%rip), %rsi      # 0xe172
movl $0x14, %edx
callq 0x31c0
movl %ebx, -0x4c(%rbp)
xorl %r15d, %r15d
leaq -0x48(%rbp), %r13
leaq -0x90(%rbp), %rbx
leaq -0x38(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x290(%rbp,%r15), %rsi
movq -0x288(%rbp,%r15), %rdx
addq %rsi, %rdx
movq %r13, %rdi
callq 0x663a
movq %rbx, %rdi
leaq 0x7f59(%rip), %rsi      # 0xe188
movq %r13, %r14
movq %r13, %rdx
callq 0x6599
movq %rbx, %rdi
leaq 0x7f43(%rip), %rsi      # 0xe187
callq 0x32e0
leaq -0x60(%rbp), %rsi
movq %rsi, -0x70(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x626d
movq %rdx, -0x70(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x60(%rbp)
jmp 0x6273
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0x68(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x70(%rbp), %rsi
movq -0x68(%rbp), %rdx
movq 0xcd2f(%rip), %rdi      # 0x12fc8
callq 0x31c0
movq -0x70(%rbp), %rdi
leaq -0x60(%rbp), %rax
cmpq %rax, %rdi
je 0x62b7
movq -0x60(%rbp), %rsi
incq %rsi
callq 0x3190
movq -0x90(%rbp), %rdi
leaq -0x80(%rbp), %rax
cmpq %rax, %rdi
je 0x62d3
movq -0x80(%rbp), %rsi
incq %rsi
callq 0x3190
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x62ec
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x3190
addq $0x20, %r15
cmpq $0x200, %r15            # imm = 0x200
movq %r14, %r13
jne 0x6202
movq 0xccc1(%rip), %rdi      # 0x12fc8
movq (%rdi), %rax
addq -0x18(%rax), %rdi
movl $0xa, %esi
callq 0x3170
movl -0x4c(%rbp), %ebx
movsbl %al, %esi
movq 0xcca3(%rip), %rdi      # 0x12fc8
callq 0x3030
movq %rax, %rdi
callq 0x3110
movq $-0x200, %r14           # imm = 0xFE00
movq -0x10(%r12), %rdi
cmpq %rdi, %r12
je 0x634f
movq (%r12), %rsi
incq %rsi
callq 0x3190
addq $-0x20, %r12
addq $0x20, %r14
jne 0x6339
testl %ebx, %ebx
sete %al
addq $0x268, %rsp            # imm = 0x268
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x638c
jmp 0x638c
jmp 0x638c
jmp 0x638c
jmp 0x638c
jmp 0x638c
jmp 0x638c
jmp 0x638c
jmp 0x638c
jmp 0x638c
jmp 0x638c
jmp 0x638c
jmp 0x638c
jmp 0x638c
movq %rax, %r15
addq $-0x10, %r14
movq -0x10(%r14), %rdi
cmpq %rdi, %r14
je 0x63a7
movq (%r14), %rsi
incq %rsi
callq 0x3190
leaq -0x20(%r14), %rax
addq $-0x10, %r14
cmpq %rbx, %r14
movq %rax, %r14
jne 0x6393
jmp 0x644d
jmp 0x6401
jmp 0x6401
jmp 0x6406
movq %rax, %r15
jmp 0x63e3
movq %rax, %r15
movq -0x70(%rbp), %rdi
leaq -0x60(%rbp), %rax
cmpq %rax, %rdi
je 0x63e3
movq -0x60(%rbp), %rsi
incq %rsi
callq 0x3190
movq -0x90(%rbp), %rdi
leaq -0x80(%rbp), %rax
cmpq %rax, %rdi
je 0x6409
movq -0x80(%rbp), %rsi
incq %rsi
callq 0x3190
jmp 0x6409
movq %rax, %r15
jmp 0x6422
movq %rax, %r15
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x6422
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x3190
xorl %ebx, %ebx
movq -0xb0(%rbp,%rbx), %rdi
leaq (%r12,%rbx), %rax
cmpq %rdi, %rax
je 0x6440
movq (%rax), %rsi
incq %rsi
callq 0x3190
addq $-0x20, %rbx
cmpq $-0x200, %rbx           # imm = 0xFE00
jne 0x6424
movq %r15, %rdi
callq 0x32b0