// File: /workspace/github_cpp_makefile_star2_O1/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, -0x50(%rbp)
leaq -0x280(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x8379(%rip), %rsi      # 0xe2c4
leaq 0x8373(%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 0x834e(%rip), %rsi      # 0xe2c8
leaq 0x8348(%rip), %rdx      # 0xe2c9
movq %r14, %rdi
callq 0x5178
leaq -0x250(%rbp), %r14
leaq -0x240(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x8324(%rip), %rsi      # 0xe2c6
leaq 0x8320(%rip), %rdx      # 0xe2c9
movq %r14, %rdi
callq 0x5178
leaq -0x230(%rbp), %r14
leaq -0x220(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x8300(%rip), %rsi      # 0xe2ca
leaq 0x82fc(%rip), %rdx      # 0xe2cd
movq %r14, %rdi
callq 0x5178
leaq -0x210(%rbp), %r14
leaq -0x200(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x82dd(%rip), %rsi      # 0xe2cf
leaq 0x82da(%rip), %rdx      # 0xe2d3
movq %r14, %rdi
callq 0x5178
leaq -0x1f0(%rbp), %r14
leaq -0x1e0(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x82b4(%rip), %rsi      # 0xe2ce
leaq 0x82b2(%rip), %rdx      # 0xe2d3
movq %r14, %rdi
callq 0x5178
leaq -0x1d0(%rbp), %r14
leaq -0x1c0(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x8292(%rip), %rsi      # 0xe2d4
leaq 0x828f(%rip), %rdx      # 0xe2d8
movq %r14, %rdi
callq 0x5178
leaq -0x1b0(%rbp), %r14
leaq -0x1a0(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x827c(%rip), %rsi      # 0xe2e6
leaq 0x8277(%rip), %rdx      # 0xe2e8
movq %r14, %rdi
callq 0x5178
leaq -0x190(%rbp), %r14
leaq -0x180(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x824d(%rip), %rsi      # 0xe2df
leaq 0x8247(%rip), %rdx      # 0xe2e0
movq %r14, %rdi
callq 0x5178
leaq -0x170(%rbp), %r14
leaq -0x160(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x8222(%rip), %rsi      # 0xe2dc
leaq 0x821f(%rip), %rdx      # 0xe2e0
movq %r14, %rdi
callq 0x5178
leaq -0x150(%rbp), %r14
leaq -0x140(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x81f7(%rip), %rsi      # 0xe2d9
leaq 0x81f7(%rip), %rdx      # 0xe2e0
movq %r14, %rdi
callq 0x5178
leaq -0x130(%rbp), %r14
leaq -0x120(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x81d8(%rip), %rsi      # 0xe2e2
leaq 0x81d2(%rip), %rdx      # 0xe2e3
movq %r14, %rdi
callq 0x5178
leaq -0x110(%rbp), %r14
leaq -0x100(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x81af(%rip), %rsi      # 0xe2e1
leaq 0x81aa(%rip), %rdx      # 0xe2e3
movq %r14, %rdi
callq 0x5178
leaq -0xf0(%rbp), %r14
leaq -0xe0(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x8190(%rip), %rsi      # 0xe2ea
leaq 0x818c(%rip), %rdx      # 0xe2ed
movq %r14, %rdi
callq 0x5178
leaq -0xd0(%rbp), %r14
leaq -0xc0(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x8162(%rip), %rsi      # 0xe2e4
leaq 0x815f(%rip), %rdx      # 0xe2e8
movq %r14, %rdi
callq 0x5178
leaq -0xb0(%rbp), %r14
leaq -0xa0(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x813f(%rip), %rsi      # 0xe2e9
leaq 0x813c(%rip), %rdx      # 0xe2ed
movq %r14, %rdi
callq 0x5178
movb $0x1, %bl
movl $0x8, %r13d
leaq -0x48(%rbp), %r14
leaq -0x38(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x298(%rbp,%r13), %rsi
movq -0x290(%rbp,%r13), %rdx
addq %rsi, %rdx
movq %r14, %rdi
callq 0x669c
movq %r14, %rdi
movq -0x50(%rbp), %rsi
callq 0x3040
movl %eax, %r12d
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x6210
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x3190
testl %r12d, %r12d
je 0x6382
addq $0x20, %r13
cmpq $0x208, %r13            # imm = 0x208
setne %bl
jne 0x61c5
movq 0xcd98(%rip), %rdi      # 0x12fc8
leaq 0x7f3b(%rip), %rsi      # 0xe172
movl $0x14, %edx
callq 0x31c0
movb %bl, -0x50(%rbp)
xorl %r13d, %r13d
leaq -0x48(%rbp), %r12
leaq -0x90(%rbp), %rbx
leaq -0x38(%rbp), %rax
movq %rax, -0x48(%rbp)
movq -0x290(%rbp,%r13), %rsi
movq -0x288(%rbp,%r13), %rdx
addq %rsi, %rdx
movq %r12, %rdi
callq 0x669c
movq %rbx, %rdi
leaq 0x7f09(%rip), %rsi      # 0xe188
movq %r12, %r14
movq %r12, %rdx
callq 0x65fc
movq %rbx, %rdi
leaq 0x7ef3(%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 0x62bd
movq %rdx, -0x70(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x60(%rbp)
jmp 0x62c3
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 0xccdf(%rip), %rdi      # 0x12fc8
callq 0x31c0
movq -0x70(%rbp), %rdi
leaq -0x60(%rbp), %rax
cmpq %rax, %rdi
je 0x6307
movq -0x60(%rbp), %rsi
incq %rsi
callq 0x3190
movq -0x90(%rbp), %rdi
leaq -0x80(%rbp), %rax
cmpq %rax, %rdi
je 0x6323
movq -0x80(%rbp), %rsi
incq %rsi
callq 0x3190
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x633c
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x3190
addq $0x20, %r13
cmpq $0x200, %r13            # imm = 0x200
movq %r14, %r12
jne 0x6252
movq 0xcc71(%rip), %rdi      # 0x12fc8
movq (%rdi), %rax
addq -0x18(%rax), %rdi
movl $0xa, %esi
callq 0x3170
movb -0x50(%rbp), %bl
movsbl %al, %esi
movq 0xcc53(%rip), %rdi      # 0x12fc8
callq 0x3030
movq %rax, %rdi
callq 0x3110
movq $-0x200, %r14           # imm = 0xFE00
movq -0x10(%r15), %rdi
cmpq %rdi, %r15
je 0x639d
movq (%r15), %rsi
incq %rsi
callq 0x3190
addq $-0x20, %r15
addq $0x20, %r14
jne 0x6389
andb $0x1, %bl
movl %ebx, %eax
addq $0x268, %rsp            # imm = 0x268
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x63da
jmp 0x63da
jmp 0x63da
jmp 0x63da
jmp 0x63da
jmp 0x63da
jmp 0x63da
jmp 0x63da
jmp 0x63da
jmp 0x63da
jmp 0x63da
jmp 0x63da
jmp 0x63da
jmp 0x63da
movq %rax, %r13
cmpq %r14, %rbx
je 0x64b3
addq $-0x10, %r14
leaq -0x290(%rbp), %rbx
movq -0x10(%r14), %rdi
cmpq %rdi, %r14
je 0x6405
movq (%r14), %rsi
incq %rsi
callq 0x3190
leaq -0x20(%r14), %rax
addq $-0x10, %r14
cmpq %rbx, %r14
movq %rax, %r14
jne 0x63f1
jmp 0x64b3
movq %rax, %r13
movq %rbx, %r14
jmp 0x63dd
jmp 0x6467
jmp 0x6467
jmp 0x646c
movq %rax, %r13
jmp 0x6449
movq %rax, %r13
movq -0x70(%rbp), %rdi
leaq -0x60(%rbp), %rax
cmpq %rax, %rdi
je 0x6449
movq -0x60(%rbp), %rsi
incq %rsi
callq 0x3190
movq -0x90(%rbp), %rdi
leaq -0x80(%rbp), %rax
cmpq %rax, %rdi
je 0x646f
movq -0x80(%rbp), %rsi
incq %rsi
callq 0x3190
jmp 0x646f
movq %rax, %r13
jmp 0x6488
movq %rax, %r13
movq -0x48(%rbp), %rdi
leaq -0x38(%rbp), %rax
cmpq %rax, %rdi
je 0x6488
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x3190
xorl %ebx, %ebx
movq -0xb0(%rbp,%rbx), %rdi
leaq (%r15,%rbx), %rax
cmpq %rdi, %rax
je 0x64a6
movq (%rax), %rsi
incq %rsi
callq 0x3190
addq $-0x20, %rbx
cmpq $-0x200, %rbx           # imm = 0xFE00
jne 0x648a
movq %r13, %rdi
callq 0x32b0