// File: /workspace/github_cpp_makefile_star2_O1/Wombozo[P]harmony/src/Chord.cpp
// Function: Chord::Chord(Note*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&, Note*, int)
Chord::Chord(Note *n, const std::string &str, Note *b, int inv) : bass(b), inversion(inv)
{
    const std::string *ret = std::find(std::begin(triads), std::end(triads), str);
    if (ret != std::end(triads))
    {
        t = new Triad(n, str, b, inv);
        root = t->getRoot();
        bass = t->getBass();
        inversion = t->getInversion();
        name = t->getName();
        notes = t->notes;
    }
    else
    {
        if (!str.compare(chords[0]))
        {
            t = new Triad(n, "", b);
            notes = t->notes;
            notes.push_back(Interval("minor seventh").getNextSorted(n));
        }
        else if (!str.compare(chords[1]))
        {
            t = new Triad(n, "", b);
            notes = t->notes;
            notes.push_back(Interval("major seventh").getNextSorted(n));
        }
        else if (!str.compare(chords[2]))
        {
            t = new Triad(n, "", b);
            notes = t->notes;
            notes.push_back(Interval("major sixth").getNextSorted(n));
        }
        else if (!str.compare(chords[3]))
        {
            t = new Triad(n, "m", b);
            notes = t->notes;
            notes.push_back(Interval("minor seventh").getNextSorted(n));
        }
        else if (!str.compare(chords[4]))
        {
            t = new Triad(n, "m", b);
            notes = t->notes;
            notes.push_back(Interval("major seventh").getNextSorted(n));
        }
        else if (!str.compare(chords[5]))
        {
            t = new Triad(n, "m", b);
            notes = t->notes;
            notes.push_back(Interval("major sixth").getNextSorted(n));
        }
        else if (!str.compare(chords[6]))
        {
            t = new Triad(n, "dim", b);
            notes = t->notes;
            notes.push_back(Interval("minor seventh").getNextSorted(n));
        }
        else if (!str.compare(chords[7]))
        {
            t = new Triad(n, "b5", b);
            notes = t->notes;
            notes.push_back(Interval("minor seventh").getNextSorted(n));
        }
        else if (!str.compare(chords[8]))
        {
            t = new Triad(n, "dim", b);
            notes = t->notes;
            notes.push_back(Interval("diminished seventh").getNextSorted(n));
        }
        else
            throw E_CHORD_UNKNOWN;
        root = t->getRoot();
        if (inv > 3 | inv < 0)
            throw E_INVERSION;
        std::rotate(notes.begin(), notes.begin() + inversion, notes.end());

        name = n->display() + str;
        if (root != bass)
        {
            name += "/" + bass->display();
        }
        if (inversion)
        {
            name += "/" + notes.at(0)->display();
        }
    }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x88, %rsp
movq %rcx, %rbx
movq %rdx, %r12
movq %rsi, -0x68(%rbp)
movq %rdi, %r14
movq %rcx, 0x10(%rdi)
movl %r8d, -0xa4(%rbp)
movl %r8d, 0x18(%rdi)
leaq 0x20(%rdi), %rax
movq %rax, -0xa0(%rbp)
leaq 0x30(%rdi), %r13
movq %r13, 0x20(%rdi)
movq $0x0, 0x28(%rdi)
movb $0x0, 0x30(%rdi)
leaq 0x58(%rdi), %rax
movq %rax, -0x60(%rbp)
xorps %xmm0, %xmm0
movups %xmm0, 0x40(%rdi)
movups %xmm0, 0x50(%rdi)
movups %xmm0, 0x60(%rdi)
leaq 0xbb0b(%rip), %rdi      # 0x13450
leaq 0x100(%rdi), %rsi
callq 0x9878
movl $0x100, %ecx            # imm = 0x100
addq 0xb683(%rip), %rcx      # 0x12fe0
cmpq %rcx, %rax
je 0x7a10
movl $0x88, %edi
callq 0x3180
movq %rax, %r15
movq %rax, %rdi
movq -0x68(%rbp), %rsi
movq %r12, %rdx
movq %rbx, %rcx
movl -0xa4(%rbp), %r8d
callq 0x9b2c
movq %r15, 0x8(%r14)
movq %r15, %rdi
callq 0xb994
movq %rax, (%r14)
movq 0x8(%r14), %rdi
callq 0xb99e
movq %rax, 0x10(%r14)
movq 0x8(%r14), %rdi
callq 0xb9c4
movl %eax, 0x18(%r14)
movq 0x8(%r14), %rsi
leaq -0x58(%rbp), %rdi
callq 0xb966
leaq -0x58(%rbp), %rbx
movq -0xa0(%rbp), %rdi
movq %rbx, %rsi
callq 0x31d0
movq (%rbx), %rdi
leaq -0x48(%rbp), %rax
cmpq %rax, %rdi
je 0x79ed
movq -0x48(%rbp), %rsi
incq %rsi
callq 0x3190
movq 0x8(%r14), %rsi
addq $0x70, %rsi
movq -0x60(%rbp), %rdi
callq 0x9210
addq $0x88, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0xb909(%rip), %rsi      # 0x13320
movq %r12, %rdi
callq 0x3040
testl %eax, %eax
je 0x7bae
leaq 0xb912(%rip), %rsi      # 0x13340
movq %r12, %rdi
callq 0x3040
testl %eax, %eax
je 0x7c72
leaq 0xb91b(%rip), %rsi      # 0x13360
movq %r12, %rdi
callq 0x3040
testl %eax, %eax
je 0x7d36
leaq 0xb924(%rip), %rsi      # 0x13380
movq %r12, %rdi
callq 0x3040
testl %eax, %eax
je 0x7dfa
leaq 0xb92d(%rip), %rsi      # 0x133a0
movq %r12, %rdi
callq 0x3040
testl %eax, %eax
je 0x7ec9
leaq 0xb936(%rip), %rsi      # 0x133c0
movq %r12, %rdi
callq 0x3040
testl %eax, %eax
je 0x7f98
leaq 0xb93f(%rip), %rsi      # 0x133e0
movq %r12, %rdi
callq 0x3040
testl %eax, %eax
je 0x8067
leaq 0xb948(%rip), %rsi      # 0x13400
movq %r12, %rdi
callq 0x3040
testl %eax, %eax
je 0x8136
leaq 0xb951(%rip), %rsi      # 0x13420
movq %r12, %rdi
callq 0x3040
testl %eax, %eax
jne 0x84ac
movl $0x88, %edi
callq 0x3180
movq %rax, -0x90(%rbp)
leaq -0x48(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x67c7(%rip), %rsi      # 0xe2c6
leaq 0x67c3(%rip), %rdx      # 0xe2c9
leaq -0x58(%rbp), %rdi
callq 0x5178
leaq -0x58(%rbp), %rdx
movq -0x90(%rbp), %r15
movq %r15, %rdi
movq -0x68(%rbp), %rsi
movq %rbx, %rcx
callq 0xaa1a
movq %r15, 0x8(%r14)
movq -0x58(%rbp), %rdi
leaq -0x48(%rbp), %rax
cmpq %rax, %rdi
je 0x7b46
movq -0x48(%rbp), %rsi
incq %rsi
callq 0x3190
movq 0x8(%r14), %rsi
addq $0x70, %rsi
movq -0x60(%rbp), %rdi
callq 0x9210
leaq -0x78(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x6723(%rip), %rsi      # 0xe289
leaq 0x672e(%rip), %rdx      # 0xe29b
leaq -0x88(%rbp), %rdi
callq 0x5178
leaq -0x58(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x75ac
leaq -0x58(%rbp), %rdi
movq -0x68(%rbp), %rsi
callq 0x7256
leaq -0x98(%rbp), %rsi
movq %rax, (%rsi)
movq -0x60(%rbp), %rdi
callq 0x971c
jmp 0x8200
movl $0x88, %edi
callq 0x3180
movq %rax, %r15
movq %r13, -0x30(%rbp)
leaq -0x48(%rbp), %r13
movq %r13, -0x10(%r13)
leaq 0x69d7(%rip), %rdx      # 0xe5a5
leaq -0x58(%rbp), %rdi
movq %rdx, %rsi
callq 0x5178
leaq -0x58(%rbp), %rdx
movq %r15, %rdi
movq -0x68(%rbp), %rsi
movq %rbx, %rcx
callq 0xaa1a
movq %r15, 0x8(%r14)
movq -0x58(%rbp), %rdi
cmpq %r13, %rdi
je 0x7c06
movq -0x48(%rbp), %rsi
incq %rsi
callq 0x3190
movq 0x8(%r14), %rsi
addq $0x70, %rsi
movq -0x60(%rbp), %rdi
movq -0x30(%rbp), %r13
callq 0x9210
leaq -0x78(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x6672(%rip), %rsi      # 0xe29c
leaq 0x6678(%rip), %rdx      # 0xe2a9
leaq -0x88(%rbp), %rdi
callq 0x5178
leaq -0x58(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x75ac
leaq -0x58(%rbp), %rdi
movq -0x68(%rbp), %rsi
callq 0x7256
leaq -0x98(%rbp), %rsi
movq %rax, (%rsi)
movq -0x60(%rbp), %rdi
callq 0x971c
jmp 0x8200
movl $0x88, %edi
callq 0x3180
movq %rax, %r15
movq %r13, -0x30(%rbp)
leaq -0x48(%rbp), %r13
movq %r13, -0x10(%r13)
leaq 0x6913(%rip), %rdx      # 0xe5a5
leaq -0x58(%rbp), %rdi
movq %rdx, %rsi
callq 0x5178
leaq -0x58(%rbp), %rdx
movq %r15, %rdi
movq -0x68(%rbp), %rsi
movq %rbx, %rcx
callq 0xaa1a
movq %r15, 0x8(%r14)
movq -0x58(%rbp), %rdi
cmpq %r13, %rdi
je 0x7cca
movq -0x48(%rbp), %rsi
incq %rsi
callq 0x3190
movq 0x8(%r14), %rsi
addq $0x70, %rsi
movq -0x60(%rbp), %rdi
movq -0x30(%rbp), %r13
callq 0x9210
leaq -0x78(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x65bc(%rip), %rsi      # 0xe2aa
leaq 0x65c2(%rip), %rdx      # 0xe2b7
leaq -0x88(%rbp), %rdi
callq 0x5178
leaq -0x58(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x75ac
leaq -0x58(%rbp), %rdi
movq -0x68(%rbp), %rsi
callq 0x7256
leaq -0x98(%rbp), %rsi
movq %rax, (%rsi)
movq -0x60(%rbp), %rdi
callq 0x971c
jmp 0x8200
movl $0x88, %edi
callq 0x3180
movq %rax, %r15
movq %r13, -0x30(%rbp)
leaq -0x48(%rbp), %r13
movq %r13, -0x10(%r13)
leaq 0x684f(%rip), %rdx      # 0xe5a5
leaq -0x58(%rbp), %rdi
movq %rdx, %rsi
callq 0x5178
leaq -0x58(%rbp), %rdx
movq %r15, %rdi
movq -0x68(%rbp), %rsi
movq %rbx, %rcx
callq 0xaa1a
movq %r15, 0x8(%r14)
movq -0x58(%rbp), %rdi
cmpq %r13, %rdi
je 0x7d8e
movq -0x48(%rbp), %rsi
incq %rsi
callq 0x3190
movq 0x8(%r14), %rsi
addq $0x70, %rsi
movq -0x60(%rbp), %rdi
movq -0x30(%rbp), %r13
callq 0x9210
leaq -0x78(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x64bb(%rip), %rsi      # 0xe26d
leaq 0x64bf(%rip), %rdx      # 0xe278
leaq -0x88(%rbp), %rdi
callq 0x5178
leaq -0x58(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x75ac
leaq -0x58(%rbp), %rdi
movq -0x68(%rbp), %rsi
callq 0x7256
leaq -0x98(%rbp), %rsi
movq %rax, (%rsi)
movq -0x60(%rbp), %rdi
callq 0x971c
jmp 0x8200
movl $0x88, %edi
callq 0x3180
movq %rax, -0x90(%rbp)
leaq -0x48(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x64ae(%rip), %rsi      # 0xe2c8
leaq 0x64a8(%rip), %rdx      # 0xe2c9
leaq -0x58(%rbp), %rdi
callq 0x5178
leaq -0x58(%rbp), %rdx
movq -0x90(%rbp), %r15
movq %r15, %rdi
movq -0x68(%rbp), %rsi
movq %rbx, %rcx
callq 0xaa1a
movq %r15, 0x8(%r14)
movq -0x58(%rbp), %rdi
leaq -0x48(%rbp), %rax
cmpq %rax, %rdi
je 0x7e61
movq -0x48(%rbp), %rsi
incq %rsi
callq 0x3190
movq 0x8(%r14), %rsi
addq $0x70, %rsi
movq -0x60(%rbp), %rdi
callq 0x9210
leaq -0x78(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x641b(%rip), %rsi      # 0xe29c
leaq 0x6421(%rip), %rdx      # 0xe2a9
leaq -0x88(%rbp), %rdi
callq 0x5178
leaq -0x58(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x75ac
leaq -0x58(%rbp), %rdi
movq -0x68(%rbp), %rsi
callq 0x7256
leaq -0x98(%rbp), %rsi
movq %rax, (%rsi)
movq -0x60(%rbp), %rdi
callq 0x971c
jmp 0x8200
movl $0x88, %edi
callq 0x3180
movq %rax, -0x90(%rbp)
leaq -0x48(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x63df(%rip), %rsi      # 0xe2c8
leaq 0x63d9(%rip), %rdx      # 0xe2c9
leaq -0x58(%rbp), %rdi
callq 0x5178
leaq -0x58(%rbp), %rdx
movq -0x90(%rbp), %r15
movq %r15, %rdi
movq -0x68(%rbp), %rsi
movq %rbx, %rcx
callq 0xaa1a
movq %r15, 0x8(%r14)
movq -0x58(%rbp), %rdi
leaq -0x48(%rbp), %rax
cmpq %rax, %rdi
je 0x7f30
movq -0x48(%rbp), %rsi
incq %rsi
callq 0x3190
movq 0x8(%r14), %rsi
addq $0x70, %rsi
movq -0x60(%rbp), %rdi
callq 0x9210
leaq -0x78(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x635a(%rip), %rsi      # 0xe2aa
leaq 0x6360(%rip), %rdx      # 0xe2b7
leaq -0x88(%rbp), %rdi
callq 0x5178
leaq -0x58(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x75ac
leaq -0x58(%rbp), %rdi
movq -0x68(%rbp), %rsi
callq 0x7256
leaq -0x98(%rbp), %rsi
movq %rax, (%rsi)
movq -0x60(%rbp), %rdi
callq 0x971c
jmp 0x8200
movl $0x88, %edi
callq 0x3180
movq %rax, -0x90(%rbp)
leaq -0x48(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x6310(%rip), %rsi      # 0xe2c8
leaq 0x630a(%rip), %rdx      # 0xe2c9
leaq -0x58(%rbp), %rdi
callq 0x5178
leaq -0x58(%rbp), %rdx
movq -0x90(%rbp), %r15
movq %r15, %rdi
movq -0x68(%rbp), %rsi
movq %rbx, %rcx
callq 0xaa1a
movq %r15, 0x8(%r14)
movq -0x58(%rbp), %rdi
leaq -0x48(%rbp), %rax
cmpq %rax, %rdi
je 0x7fff
movq -0x48(%rbp), %rsi
incq %rsi
callq 0x3190
movq 0x8(%r14), %rsi
addq $0x70, %rsi
movq -0x60(%rbp), %rdi
callq 0x9210
leaq -0x78(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x624e(%rip), %rsi      # 0xe26d
leaq 0x6252(%rip), %rdx      # 0xe278
leaq -0x88(%rbp), %rdi
callq 0x5178
leaq -0x58(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x75ac
leaq -0x58(%rbp), %rdi
movq -0x68(%rbp), %rsi
callq 0x7256
leaq -0x98(%rbp), %rsi
movq %rax, (%rsi)
movq -0x60(%rbp), %rdi
callq 0x971c
jmp 0x8200
movl $0x88, %edi
callq 0x3180
movq %rax, -0x90(%rbp)
leaq -0x48(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x623f(%rip), %rsi      # 0xe2c6
leaq 0x623b(%rip), %rdx      # 0xe2c9
leaq -0x58(%rbp), %rdi
callq 0x5178
leaq -0x58(%rbp), %rdx
movq -0x90(%rbp), %r15
movq %r15, %rdi
movq -0x68(%rbp), %rsi
movq %rbx, %rcx
callq 0xaa1a
movq %r15, 0x8(%r14)
movq -0x58(%rbp), %rdi
leaq -0x48(%rbp), %rax
cmpq %rax, %rdi
je 0x80ce
movq -0x48(%rbp), %rsi
incq %rsi
callq 0x3190
movq 0x8(%r14), %rsi
addq $0x70, %rsi
movq -0x60(%rbp), %rdi
callq 0x9210
leaq -0x78(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x61ae(%rip), %rsi      # 0xe29c
leaq 0x61b4(%rip), %rdx      # 0xe2a9
leaq -0x88(%rbp), %rdi
callq 0x5178
leaq -0x58(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x75ac
leaq -0x58(%rbp), %rdi
movq -0x68(%rbp), %rsi
callq 0x7256
leaq -0x98(%rbp), %rsi
movq %rax, (%rsi)
movq -0x60(%rbp), %rdi
callq 0x971c
jmp 0x8200
movl $0x88, %edi
callq 0x3180
movq %rax, -0x90(%rbp)
leaq -0x48(%rbp), %rax
movq %rax, -0x10(%rax)
leaq 0x6195(%rip), %rsi      # 0xe2eb
leaq 0x6190(%rip), %rdx      # 0xe2ed
leaq -0x58(%rbp), %rdi
callq 0x5178
leaq -0x58(%rbp), %rdx
movq -0x90(%rbp), %r15
movq %r15, %rdi
movq -0x68(%rbp), %rsi
movq %rbx, %rcx
callq 0xaa1a
movq %r15, 0x8(%r14)
movq -0x58(%rbp), %rdi
leaq -0x48(%rbp), %rax
cmpq %rax, %rdi
je 0x819d
movq -0x48(%rbp), %rsi
incq %rsi
callq 0x3190
movq 0x8(%r14), %rsi
addq $0x70, %rsi
movq -0x60(%rbp), %rdi
callq 0x9210
leaq -0x78(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x60df(%rip), %rsi      # 0xe29c
leaq 0x60e5(%rip), %rdx      # 0xe2a9
leaq -0x88(%rbp), %rdi
callq 0x5178
leaq -0x58(%rbp), %rdi
leaq -0x88(%rbp), %rsi
callq 0x75ac
leaq -0x58(%rbp), %rdi
movq -0x68(%rbp), %rsi
callq 0x7256
leaq -0x98(%rbp), %rsi
movq %rax, (%rsi)
movq -0x60(%rbp), %rdi
callq 0x971c
leaq -0x58(%rbp), %rdi
callq 0x786e
movq -0x88(%rbp), %rdi
cmpq %r15, %rdi
je 0x8221
movq -0x78(%rbp), %rsi
incq %rsi
callq 0x3190
movq 0x8(%r14), %rdi
callq 0xb994
movq %rax, (%r14)
cmpl $0x4, -0xa4(%rbp)
jae 0x8478
movslq 0x18(%r14), %rax
movq 0x58(%r14), %rdi
movq 0x60(%r14), %rdx
leaq (%rdi,%rax,8), %rsi
callq 0x99a5
movq -0x68(%rbp), %rsi
movq (%rsi), %rax
leaq -0x88(%rbp), %rdi
callq *(%rax)
movq (%r12), %rsi
movq 0x8(%r12), %rdx
leaq -0x88(%rbp), %rdi
callq 0x3080
leaq -0x48(%rbp), %r12
movq %r12, -0x10(%r12)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x8299
movq %rdx, -0x58(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x48(%rbp)
jmp 0x82a1
movups (%rcx), %xmm0
movups %xmm0, (%r12)
movq -0xa0(%rbp), %rdi
movq 0x8(%rax), %rdx
leaq -0x58(%rbp), %rbx
movq %rdx, 0x8(%rbx)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq %rbx, %rsi
callq 0x31d0
movq (%rbx), %rdi
cmpq %r12, %rdi
je 0x82df
movq -0x48(%rbp), %rsi
incq %rsi
callq 0x3190
movq -0x10(%r15), %rdi
cmpq %r15, %rdi
je 0x82f4
movq -0x78(%rbp), %rsi
incq %rsi
callq 0x3190
movq 0x10(%r14), %rsi
cmpq %rsi, (%r14)
je 0x83aa
movq (%rsi), %rax
leaq -0x88(%rbp), %rdi
callq *(%rax)
leaq 0x6148(%rip), %rcx      # 0xe45c
leaq -0x88(%rbp), %rdi
movl $0x1, %r8d
xorl %esi, %esi
xorl %edx, %edx
callq 0x31b0
movq %r12, -0x58(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x834a
movq %rdx, -0x58(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x48(%rbp)
jmp 0x8352
movups (%rcx), %xmm0
movups %xmm0, (%r12)
movq 0x8(%rax), %rdx
movq %rdx, -0x50(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x58(%rbp), %rsi
movq -0x50(%rbp), %rdx
movq -0xa0(%rbp), %rdi
callq 0x3080
movq -0x58(%rbp), %rdi
cmpq %r12, %rdi
je 0x8392
movq -0x48(%rbp), %rsi
incq %rsi
callq 0x3190
movq -0x88(%rbp), %rdi
cmpq %r15, %rdi
je 0x83aa
movq -0x78(%rbp), %rsi
incq %rsi
callq 0x3190
cmpl $0x0, 0x18(%r14)
je 0x79fe
movq 0x58(%r14), %rax
cmpq %rax, 0x60(%r14)
je 0x849a
movq (%rax), %rsi
movq (%rsi), %rax
leaq -0x88(%rbp), %rdi
callq *(%rax)
leaq 0x6083(%rip), %rcx      # 0xe45c
leaq -0x88(%rbp), %rdi
movl $0x1, %r8d
xorl %esi, %esi
xorl %edx, %edx
callq 0x31b0
movq %r12, -0x58(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x840f
movq %rdx, -0x58(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x48(%rbp)
jmp 0x8417
movups (%rcx), %xmm0
movups %xmm0, (%r12)
movq 0x8(%rax), %rdx
movq %rdx, -0x50(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x58(%rbp), %rsi
movq -0x50(%rbp), %rdx
movq -0xa0(%rbp), %rdi
callq 0x3080
movq -0x58(%rbp), %rdi
cmpq %r12, %rdi
je 0x8457
movq -0x48(%rbp), %rsi
incq %rsi
callq 0x3190
movq -0x88(%rbp), %rdi
cmpq %r15, %rdi
je 0x79fe
movq -0x78(%rbp), %rsi
incq %rsi
callq 0x3190
jmp 0x79fe
movl $0x2, %ebx
movl $0x4, %edi
callq 0x30d0
movl %ebx, (%rax)
leaq 0xa3e8(%rip), %rsi      # 0x12878
movq %rax, %rdi
xorl %edx, %edx
callq 0x3290
leaq 0x5e4d(%rip), %rdi      # 0xe2ee
xorl %esi, %esi
xorl %edx, %edx
xorl %eax, %eax
callq 0x3210
movl $0x1, %ebx
jmp 0x847d
jmp 0x85b6
jmp 0x8616
jmp 0x850b
jmp 0x852d
jmp 0x85b6
jmp 0x8616
jmp 0x850b
jmp 0x852d
jmp 0x85b6
jmp 0x8616
jmp 0x850b
jmp 0x852d
jmp 0x8555
jmp 0x85b6
jmp 0x8616
jmp 0x850b
jmp 0x852d
jmp 0x8555
jmp 0x8555
jmp 0x85b6
jmp 0x8616
jmp 0x850b
jmp 0x852d
jmp 0x8555
jmp 0x85b6
jmp 0x8616
movq %r13, -0x30(%rbp)
movq %rax, %rbx
movq -0x58(%rbp), %rdi
leaq -0x48(%rbp), %rax
cmpq %rax, %rdi
je 0x8534
movq -0x48(%rbp), %rsi
incq %rsi
callq 0x3190
jmp 0x8534
movq %r13, -0x30(%rbp)
movq %rax, %rbx
movl $0x88, %esi
movq -0x90(%rbp), %rdi
jmp 0x860f
jmp 0x8555
jmp 0x85ba
jmp 0x861a
jmp 0x8572
jmp 0x8604
movq %r13, -0x30(%rbp)
jmp 0x85c1
jmp 0x85ba
jmp 0x861a
jmp 0x8572
jmp 0x8604
jmp 0x85c1
jmp 0x85ba
jmp 0x861a
movq %rax, %rbx
movq -0x58(%rbp), %rdi
cmpq %r13, %rdi
je 0x8607
movq -0x48(%rbp), %rsi
incq %rsi
callq 0x3190
jmp 0x8607
jmp 0x8604
jmp 0x85c1
jmp 0x8598
jmp 0x85b6
movq %r13, -0x30(%rbp)
movq %rax, %rbx
movq -0x58(%rbp), %rdi
cmpq %r12, %rdi
je 0x85cd
movq -0x48(%rbp), %rsi
incq %rsi
callq 0x3190
jmp 0x85cd
movq %r13, -0x30(%rbp)
movq %rax, %rbx
jmp 0x85cd
jmp 0x8616
movq %rax, %rbx
leaq -0x58(%rbp), %rdi
callq 0x786e
movq -0x88(%rbp), %rdi
cmpq %r15, %rdi
je 0x861d
movq -0x78(%rbp), %rsi
incq %rsi
jmp 0x860f
movq %r13, -0x30(%rbp)
movq %rax, %rbx
leaq -0x78(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
jne 0x85d9
jmp 0x861d
jmp 0x8616
jmp 0x8616
jmp 0x8616
jmp 0x8616
movq %r13, -0x30(%rbp)
movq %rax, %rbx
movl $0x88, %esi
movq %r15, %rdi
callq 0x3190
jmp 0x861d
movq %r13, -0x30(%rbp)
movq %rax, %rbx
leaq 0x40(%r14), %r15
movq -0x60(%rbp), %rax
movq (%rax), %rdi
testq %rdi, %rdi
je 0x8639
movq 0x68(%r14), %rsi
subq %rdi, %rsi
callq 0x3190
movq %r15, %rdi
callq 0x91c0
movq -0xa0(%rbp), %rax
movq (%rax), %rdi
cmpq -0x30(%rbp), %rdi
je 0x8660
movq -0x30(%rbp), %rax
movq (%rax), %rsi
incq %rsi
callq 0x3190
movq %rbx, %rdi
callq 0x32b0