// File: /workspace/github_cpp_makefile_star2_O3/Wombozo[P]harmony/src/Interval.cpp
// Function: Interval::Interval(int, int)
Interval::Interval(int t, int s) : type(t), semitones(s)
{
    if (t == 2 && s == 1)
        name = "minor second";
    else if (t == 2 && s == 2)
        name = "major second";
    else if (t == 2 && s == 3)
        name = "augmented second";
    else if (t == 3 && s == 2)
        name = "diminished third";
    else if (t == 3 && s == 3)
        name = "minor third";
    else if (t == 3 && s == 4)
        name = "major third";
    else if (t == 3 && s == 5)
        name = "augmented third";
    else if (t == 4 && s == 4)
        name = "diminished fourth";
    else if (t == 4 && s == 5)
        name = "perfect fourth";
    else if (t == 4 && s == 6)
        name = "augmented fourth";
    else if (t == 5 && s == 6)
        name = "diminished fifth";
    else if (t == 5 && s == 7)
        name = "perfect fifth";
    else if (t == 5 && s == 8)
        name = "augmented fifth";
    else if (t == 6 && s == 7)
        name = "diminished sixth";
    else if (t == 6 && s == 8)
        name = "minor sixth";
    else if (t == 6 && s == 9)
        name = "major sixth";
    else if (t == 6 && s == 10)
        name = "augmented sixth";
    else if (t == 7 && s == 9)
        name = "diminished seventh";
    else if (t == 7 && s == 10)
        name = "minor seventh";
    else if (t == 7 && s == 11)
        name = "major seventh";
    else
        throw E_INTERVAL;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movq %rdi, %rbx
leaq 0x10(%rdi), %r15
movq %r15, (%rdi)
movq $0x0, 0x8(%rdi)
movb $0x0, 0x10(%rdi)
movl %esi, 0x20(%rdi)
movl %edx, 0x24(%rdi)
movl %esi, %eax
xorl $0x2, %eax
movl %edx, %ecx
xorl $0x1, %ecx
movl $0xc, %r8d
orl %eax, %ecx
jne 0x737d
leaq 0x6e10(%rip), %rcx      # 0xe18b
jmp 0x73cc
movl %edx, %ecx
xorl $0x2, %ecx
movl %eax, %edi
orl %ecx, %edi
jne 0x7391
leaq 0x6e09(%rip), %rcx      # 0xe198
jmp 0x73cc
movl %edx, %edi
xorl $0x3, %edi
movl $0x10, %r8d
orl %edi, %eax
jne 0x73a9
leaq 0x6dfe(%rip), %rcx      # 0xe1a5
jmp 0x73cc
movl %esi, %eax
xorl $0x3, %eax
orl %eax, %ecx
jne 0x73bb
leaq 0x6dfd(%rip), %rcx      # 0xe1b6
jmp 0x73cc
orl %eax, %edi
jne 0x73e3
movl $0xb, %r8d
leaq 0x6dfb(%rip), %rcx      # 0xe1c7
movq %rbx, %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x3230
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
movl %edx, %ecx
xorl $0x4, %ecx
movl %eax, %edi
orl %ecx, %edi
jne 0x73fa
leaq 0x6dde(%rip), %rsi      # 0xe1d3
jmp 0x74fc
movl %edx, %edi
xorl $0x5, %edi
orl %edi, %eax
jne 0x740f
leaq 0x6dd5(%rip), %rsi      # 0xe1df
jmp 0x74fc
movl %esi, %eax
xorl $0x4, %eax
orl %eax, %ecx
jne 0x7424
leaq 0x6dd0(%rip), %rsi      # 0xe1ef
jmp 0x74fc
orl %eax, %edi
jne 0x7434
leaq 0x6dd2(%rip), %rsi      # 0xe201
jmp 0x74fc
movl %edx, %ecx
xorl $0x6, %ecx
orl %ecx, %eax
jne 0x7449
leaq 0x6dcc(%rip), %rsi      # 0xe210
jmp 0x74fc
movl %esi, %eax
xorl $0x5, %eax
orl %eax, %ecx
jne 0x745e
leaq 0x6dc8(%rip), %rsi      # 0xe221
jmp 0x74fc
movl %edx, %ecx
xorl $0x7, %ecx
movl %eax, %edi
orl %ecx, %edi
jne 0x7475
leaq 0x6dc2(%rip), %rsi      # 0xe232
jmp 0x74fc
movl %edx, %edi
xorl $0x8, %edi
orl %edi, %eax
jne 0x7487
leaq 0x6dbb(%rip), %rsi      # 0xe240
jmp 0x74fc
movl %esi, %eax
xorl $0x6, %eax
orl %eax, %ecx
jne 0x7499
leaq 0x6db9(%rip), %rsi      # 0xe250
jmp 0x74fc
orl %eax, %edi
jne 0x74a6
leaq 0x6dbd(%rip), %rsi      # 0xe261
jmp 0x74fc
movl %edx, %ecx
xorl $0x9, %ecx
movl %eax, %edi
orl %ecx, %edi
jne 0x74ba
leaq 0x6db5(%rip), %rsi      # 0xe26d
jmp 0x74fc
movl %edx, %edi
xorl $0xa, %edi
orl %edi, %eax
jne 0x74cc
leaq 0x6daf(%rip), %rsi      # 0xe279
jmp 0x74fc
movl %esi, %eax
xorl $0x7, %eax
orl %eax, %ecx
jne 0x74de
leaq 0x6dad(%rip), %rsi      # 0xe289
jmp 0x74fc
orl %edi, %eax
jne 0x74eb
leaq 0x6db3(%rip), %rsi      # 0xe29c
jmp 0x74fc
cmpl $0x7, %esi
jne 0x7509
cmpl $0xb, %edx
jne 0x7509
leaq 0x6dae(%rip), %rsi      # 0xe2aa
movq %rbx, %rdi
callq 0x31f0
jmp 0x73d8
movl $0x4, %edi
callq 0x30d0
movl $0x0, (%rax)
leaq 0xb358(%rip), %rsi      # 0x12878
movq %rax, %rdi
xorl %edx, %edx
callq 0x3290
movq %rax, %r14
movq (%rbx), %rdi
cmpq %r15, %rdi
je 0x7540
movq (%r15), %rsi
incq %rsi
callq 0x3190
movq %r14, %rdi
callq 0x32b0