// File: Wombozo[P]harmony/src/utils.cpp
// Function: valid_user_type_scale_input(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
bool valid_user_type_scale_input(const std::string &str)
{
    std::string sscales[] = {"Major",
                             "Minor"};
    for (auto scale : sscales)
    {
        if (!scale.compare(str))
            return true;
    }
    std::cout << "Available answers : ";
    for (auto sscale : sscales)
    {
        std::cout << "| " + sscale + " | ";
    }
    std::cout << std::endl;
    return false;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x190, %rsp            # imm = 0x190
movq %rdi, -0x10(%rbp)
movb $0x1, -0x6e(%rbp)
leaq -0x50(%rbp), %rax
movq %rax, -0x138(%rbp)
movq %rax, -0x58(%rbp)
leaq -0x59(%rbp), %rdi
movq %rdi, -0x130(%rbp)
callq 0x33e0
movq -0x138(%rbp), %rdi
movq -0x130(%rbp), %rdx
leaq 0x100db(%rip), %rsi     # 0x192e2
callq 0x7340
jmp 0x920e
leaq -0x30(%rbp), %rax
movq %rax, -0x148(%rbp)
movq %rax, -0x58(%rbp)
leaq -0x6d(%rbp), %rdi
movq %rdi, -0x140(%rbp)
callq 0x33e0
movq -0x148(%rbp), %rdi
movq -0x140(%rbp), %rdx
leaq 0x100a6(%rip), %rsi     # 0x192e8
callq 0x7340
jmp 0x9249
movb $0x0, -0x6e(%rbp)
leaq -0x6d(%rbp), %rdi
callq 0x3270
leaq -0x59(%rbp), %rdi
callq 0x3270
leaq -0x50(%rbp), %rax
movq %rax, -0x78(%rbp)
movq -0x78(%rbp), %rax
movq %rax, -0x80(%rbp)
movq -0x78(%rbp), %rax
addq $0x40, %rax
movq %rax, -0x88(%rbp)
movq -0x80(%rbp), %rax
cmpq -0x88(%rbp), %rax
je 0x93bf
movq -0x80(%rbp), %rsi
leaq -0xa8(%rbp), %rdi
callq 0x3100
jmp 0x92a1
movq -0x10(%rbp), %rsi
leaq -0xa8(%rbp), %rdi
callq 0x3040
movl %eax, -0x14c(%rbp)
jmp 0x92b9
movl -0x14c(%rbp), %eax
cmpl $0x0, %eax
jne 0x9386
movb $0x1, -0x1(%rbp)
movl $0x1, -0xac(%rbp)
jmp 0x9390
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x92fe
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x6d(%rbp), %rdi
callq 0x3270
leaq -0x59(%rbp), %rdi
callq 0x3270
testb $0x1, -0x6e(%rbp)
jne 0x930f
jmp 0x9353
movq -0x58(%rbp), %rax
leaq -0x50(%rbp), %rcx
cmpq %rax, %rcx
movq %rax, -0x158(%rbp)
je 0x9351
movq -0x158(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x160(%rbp)
callq 0x3190
movq -0x160(%rbp), %rax
leaq -0x50(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x158(%rbp)
jne 0x9323
jmp 0x9353
jmp 0x95bf
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x9576
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0xa8(%rbp), %rdi
callq 0x3190
jmp 0x9576
movl $0x0, -0xac(%rbp)
leaq -0xa8(%rbp), %rdi
callq 0x3190
movl -0xac(%rbp), %eax
testl %eax, %eax
jne 0x9521
jmp 0x93ac
jmp 0x93ae
movq -0x80(%rbp), %rax
addq $0x20, %rax
movq %rax, -0x80(%rbp)
jmp 0x927e
movq 0x17c0a(%rip), %rdi     # 0x20fd0
leaq 0xfdcf(%rip), %rsi      # 0x1919c
callq 0x3220
jmp 0x93d4
leaq -0x50(%rbp), %rax
movq %rax, -0xb8(%rbp)
movq -0xb8(%rbp), %rax
movq %rax, -0xc0(%rbp)
movq -0xb8(%rbp), %rax
addq $0x40, %rax
movq %rax, -0xc8(%rbp)
movq -0xc0(%rbp), %rax
cmpq -0xc8(%rbp), %rax
je 0x94fe
movq -0xc0(%rbp), %rsi
leaq -0xe8(%rbp), %rdi
callq 0x3100
jmp 0x9428
leaq 0xfd83(%rip), %rsi      # 0x191b2
leaq -0x128(%rbp), %rdi
leaq -0xe8(%rbp), %rdx
callq 0xa380
jmp 0x9444
leaq 0xfd66(%rip), %rdx      # 0x191b1
leaq -0x108(%rbp), %rdi
leaq -0x128(%rbp), %rsi
callq 0xa330
jmp 0x9460
movq 0x17b69(%rip), %rdi     # 0x20fd0
leaq -0x108(%rbp), %rsi
callq 0x3210
jmp 0x9475
leaq -0x108(%rbp), %rdi
callq 0x3190
leaq -0x128(%rbp), %rdi
callq 0x3190
leaq -0xe8(%rbp), %rdi
callq 0x3190
movq -0xc0(%rbp), %rax
addq $0x20, %rax
movq %rax, -0xc0(%rbp)
jmp 0x93ff
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x94f0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x94e4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0x108(%rbp), %rdi
callq 0x3190
leaq -0x128(%rbp), %rdi
callq 0x3190
leaq -0xe8(%rbp), %rdi
callq 0x3190
jmp 0x9576
movq 0x17acb(%rip), %rdi     # 0x20fd0
movq 0x17aac(%rip), %rsi     # 0x20fb8
callq 0x3250
jmp 0x9513
movb $0x0, -0x1(%rbp)
movl $0x1, -0xac(%rbp)
leaq -0x50(%rbp), %rax
movq %rax, -0x170(%rbp)
addq $0x40, %rax
movq %rax, -0x168(%rbp)
movq -0x168(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x178(%rbp)
callq 0x3190
movq -0x170(%rbp), %rcx
movq -0x178(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x168(%rbp)
jne 0x9537
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x190, %rsp            # imm = 0x190
popq %rbp
retq
leaq -0x50(%rbp), %rax
movq %rax, -0x188(%rbp)
addq $0x40, %rax
movq %rax, -0x180(%rbp)
movq -0x180(%rbp), %rdi
addq $-0x20, %rdi
movq %rdi, -0x190(%rbp)
callq 0x3190
movq -0x188(%rbp), %rcx
movq -0x190(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x180(%rbp)
jne 0x958c
jmp 0x95bf
movq -0x68(%rbp), %rdi
callq 0x33d0
nopl (%rax,%rax)