// File: /workspace/github_cpp_makefile_star2_O1/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 0x73e1
leaq 0x6dac(%rip), %rcx      # 0xe18b
jmp 0x7430
movl %edx, %ecx
xorl $0x2, %ecx
movl %eax, %edi
orl %ecx, %edi
jne 0x73f5
leaq 0x6da5(%rip), %rcx      # 0xe198
jmp 0x7430
movl %edx, %edi
xorl $0x3, %edi
movl $0x10, %r8d
orl %edi, %eax
jne 0x740d
leaq 0x6d9a(%rip), %rcx      # 0xe1a5
jmp 0x7430
movl %esi, %eax
xorl $0x3, %eax
orl %eax, %ecx
jne 0x741f
leaq 0x6d99(%rip), %rcx      # 0xe1b6
jmp 0x7430
orl %eax, %edi
jne 0x7447
movl $0xb, %r8d
leaq 0x6d97(%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 0x745e
leaq 0x6d7a(%rip), %rsi      # 0xe1d3
jmp 0x7560
movl %edx, %edi
xorl $0x5, %edi
orl %edi, %eax
jne 0x7473
leaq 0x6d71(%rip), %rsi      # 0xe1df
jmp 0x7560
movl %esi, %eax
xorl $0x4, %eax
orl %eax, %ecx
jne 0x7488
leaq 0x6d6c(%rip), %rsi      # 0xe1ef
jmp 0x7560
orl %eax, %edi
jne 0x7498
leaq 0x6d6e(%rip), %rsi      # 0xe201
jmp 0x7560
movl %edx, %ecx
xorl $0x6, %ecx
orl %ecx, %eax
jne 0x74ad
leaq 0x6d68(%rip), %rsi      # 0xe210
jmp 0x7560
movl %esi, %eax
xorl $0x5, %eax
orl %eax, %ecx
jne 0x74c2
leaq 0x6d64(%rip), %rsi      # 0xe221
jmp 0x7560
movl %edx, %ecx
xorl $0x7, %ecx
movl %eax, %edi
orl %ecx, %edi
jne 0x74d9
leaq 0x6d5e(%rip), %rsi      # 0xe232
jmp 0x7560
movl %edx, %edi
xorl $0x8, %edi
orl %edi, %eax
jne 0x74eb
leaq 0x6d57(%rip), %rsi      # 0xe240
jmp 0x7560
movl %esi, %eax
xorl $0x6, %eax
orl %eax, %ecx
jne 0x74fd
leaq 0x6d55(%rip), %rsi      # 0xe250
jmp 0x7560
orl %eax, %edi
jne 0x750a
leaq 0x6d59(%rip), %rsi      # 0xe261
jmp 0x7560
movl %edx, %ecx
xorl $0x9, %ecx
movl %eax, %edi
orl %ecx, %edi
jne 0x751e
leaq 0x6d51(%rip), %rsi      # 0xe26d
jmp 0x7560
movl %edx, %edi
xorl $0xa, %edi
orl %edi, %eax
jne 0x7530
leaq 0x6d4b(%rip), %rsi      # 0xe279
jmp 0x7560
movl %esi, %eax
xorl $0x7, %eax
orl %eax, %ecx
jne 0x7542
leaq 0x6d49(%rip), %rsi      # 0xe289
jmp 0x7560
orl %edi, %eax
jne 0x754f
leaq 0x6d4f(%rip), %rsi      # 0xe29c
jmp 0x7560
cmpl $0x7, %esi
jne 0x756d
cmpl $0xb, %edx
jne 0x756d
leaq 0x6d4a(%rip), %rsi      # 0xe2aa
movq %rbx, %rdi
callq 0x31f0
jmp 0x743c
movl $0x4, %edi
callq 0x30d0
movl $0x0, (%rax)
leaq 0xb2f4(%rip), %rsi      # 0x12878
movq %rax, %rdi
xorl %edx, %edx
callq 0x3290
movq %rax, %r14
movq (%rbx), %rdi
cmpq %r15, %rdi
je 0x75a4
movq (%r15), %rsi
incq %rsi
callq 0x3190
movq %r14, %rdi
callq 0x32b0