// File: /workspace/github_cpp_makefile_star2_O2/Wombozo[P]harmony/src/Interval.cpp
// Function: Interval::Interval(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
Interval::Interval(const std::string &str) : name(str)
{
    if (!str.compare("minor second"))
    {
        type = 2;
        semitones = 1;
    }
    else if (!str.compare("major second"))
    {
        type = 2;
        semitones = 2;
    }
    else if (!str.compare("augmented second"))
    {
        type = 2;
        semitones = 3;
    }
    else if (!str.compare("diminished third"))
    {
        type = 3;
        semitones = 2;
    }
    else if (!str.compare("minor third"))
    {
        type = 3;
        semitones = 3;
    }
    else if (!str.compare("major third"))
    {
        type = 3;
        semitones = 4;
    }
    else if (!str.compare("augmented third"))
    {
        type = 3;
        semitones = 5;
    }
    else if (!str.compare("diminished fourth"))
    {
        type = 4;
        semitones = 4;
    }
    else if (!str.compare("perfect fourth"))
    {
        type = 4;
        semitones = 5;
    }
    else if (!str.compare("augmented fourth"))
    {
        type = 4;
        semitones = 6;
    }
    else if (!str.compare("diminished fifth"))
    {
        type = 5;
        semitones = 6;
    }
    else if (!str.compare("perfect fifth"))
    {
        type = 5;
        semitones = 7;
    }
    else if (!str.compare("augmented fifth"))
    {
        type = 5;
        semitones = 8;
    }
    else if (!str.compare("diminished sixth"))
    {
        type = 6;
        semitones = 7;
    }
    else if (!str.compare("minor sixth"))
    {
        type = 6;
        semitones = 8;
    }
    else if (!str.compare("major sixth"))
    {
        type = 6;
        semitones = 9;
    }
    else if (!str.compare("augmented sixth"))
    {
        type = 6;
        semitones = 10;
    }
    else if (!str.compare("diminished seventh"))
    {
        type = 7;
        semitones = 9;
    }
    else if (!str.compare("minor seventh"))
    {
        type = 7;
        semitones = 10;
    }
    else if (!str.compare("major seventh"))
    {
        type = 7;
        semitones = 11;
    }
    else
    {
        throw E_INTERVAL;
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rsi, %r14
movq %rdi, %rbx
callq 0x31f0
leaq 0x5955(%rip), %rsi      # 0xc1b5
movq %r14, %rdi
callq 0x3080
testl %eax, %eax
je 0x6a45
leaq 0x594b(%rip), %rsi      # 0xc1c2
movq %r14, %rdi
callq 0x3080
pushq $0x2
popq %r12
testl %eax, %eax
je 0x6a4f
leaq 0x593d(%rip), %rsi      # 0xc1cf
movq %r14, %rdi
callq 0x3080
testl %eax, %eax
je 0x6a54
leaq 0x5937(%rip), %rsi      # 0xc1e0
movq %r14, %rdi
callq 0x3080
testl %eax, %eax
je 0x6a5d
leaq 0x5931(%rip), %rsi      # 0xc1f1
movq %r14, %rdi
callq 0x3080
pushq $0x3
popq %r15
testl %eax, %eax
je 0x6a61
leaq 0x5922(%rip), %rsi      # 0xc1fd
movq %r14, %rdi
callq 0x3080
testl %eax, %eax
je 0x6a7b
leaq 0x5917(%rip), %rsi      # 0xc209
movq %r14, %rdi
callq 0x3080
pushq $0x5
popq %r12
testl %eax, %eax
je 0x6a64
leaq 0x590c(%rip), %rsi      # 0xc219
movq %r14, %rdi
callq 0x3080
pushq $0x4
popq %r15
testl %eax, %eax
je 0x6a61
leaq 0x5903(%rip), %rsi      # 0xc22b
movq %r14, %rdi
callq 0x3080
testl %eax, %eax
je 0x6a64
leaq 0x58fb(%rip), %rsi      # 0xc23a
movq %r14, %rdi
callq 0x3080
pushq $0x6
popq %r12
testl %eax, %eax
je 0x6a64
leaq 0x58f1(%rip), %rsi      # 0xc24b
movq %r14, %rdi
callq 0x3080
pushq $0x5
popq %r15
testl %eax, %eax
je 0x6a64
leaq 0x58e7(%rip), %rsi      # 0xc25c
movq %r14, %rdi
callq 0x3080
pushq $0x7
popq %r12
testl %eax, %eax
je 0x6a64
leaq 0x58da(%rip), %rsi      # 0xc26a
movq %r14, %rdi
callq 0x3080
pushq $0x8
popq %r13
testl %eax, %eax
je 0x6a7f
leaq 0x58cf(%rip), %rsi      # 0xc27a
movq %r14, %rdi
callq 0x3080
pushq $0x6
popq %r15
testl %eax, %eax
je 0x6a64
leaq 0x58c5(%rip), %rsi      # 0xc28b
movq %r14, %rdi
callq 0x3080
testl %eax, %eax
je 0x6a7f
leaq 0x58ba(%rip), %rsi      # 0xc297
movq %r14, %rdi
callq 0x3080
pushq $0x9
popq %r12
testl %eax, %eax
je 0x6a64
leaq 0x58af(%rip), %rsi      # 0xc2a3
movq %r14, %rdi
callq 0x3080
pushq $0xa
popq %r13
testl %eax, %eax
je 0x6a7f
leaq 0x58a8(%rip), %rsi      # 0xc2b3
movq %r14, %rdi
callq 0x3080
pushq $0x7
popq %r15
testl %eax, %eax
je 0x6a64
leaq 0x58a4(%rip), %rsi      # 0xc2c6
movq %r14, %rdi
callq 0x3080
testl %eax, %eax
je 0x6a7f
leaq 0x589f(%rip), %rsi      # 0xc2d4
movq %r14, %rdi
callq 0x3080
testl %eax, %eax
jne 0x6a84
pushq $0xb
jmp 0x6a59
pushq $0x1
popq %r12
pushq $0x2
popq %r15
jmp 0x6a64
movl %r12d, %r15d
jmp 0x6a64
movl %r12d, %r15d
pushq $0x3
popq %r12
jmp 0x6a64
pushq $0x3
jmp 0x6a4b
movl %r15d, %r12d
movl %r15d, 0x20(%rbx)
movl %r12d, 0x24(%rbx)
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
pushq $0x4
jmp 0x6a59
movl %r13d, %r12d
jmp 0x6a64
pushq $0x4
popq %rdi
callq 0x30f0
andl $0x0, (%rax)
leaq 0xade2(%rip), %rsi      # 0x11878
movq %rax, %rdi
xorl %edx, %edx
callq 0x3290
movq %rax, %r14
movq %rbx, %rdi
callq 0x30d0
movq %r14, %rdi
callq 0x32b0
nop