// File: danomatika[P]miditester/src/main.cpp
// Function: channelMessages(std::vector<TestSet, std::allocator<TestSet>>&, int)
void channelMessages(TestQueue &queue, int channel) {
    TestSet set;
    set.name = "channel";
    set.messages = {

        {
            (unsigned char)(MIDI_NOTEON + channel),
            64, // note
            65  // velocity
        },
        
        {
            (unsigned char)(MIDI_NOTEOFF + channel),
            66, // note
            0   // velocity
        },

        {
            (unsigned char)(MIDI_POLYAFTERTOUCH + channel),
            67, // note
            68  // value
        },

        {
            (unsigned char)(MIDI_CONTROLCHANGE + channel),
            69, // control
            70  // value
        },

        {
            (unsigned char)(MIDI_PROGRAMCHANGE + channel),
            71  // program
        },

        {
            (unsigned char)(MIDI_AFTERTOUCH + channel),
            72  // value
        },

        {
            (unsigned char)(MIDI_PITCHBEND + channel),
            73, // value lsb
            0   // value msb
        }
    };
    queue.push_back(set);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x280, %rsp            # imm = 0x280
movq %rdi, -0x8(%rbp)
movl %esi, -0xc(%rbp)
leaq -0x48(%rbp), %rdi
movq %rdi, -0x1c8(%rbp)
callq 0x86b0
movq -0x1c8(%rbp), %rdi
leaq 0xb0ae(%rip), %rsi      # 0x1027e
callq 0x3290
jmp 0x51d7
movb $0x1, -0x1bd(%rbp)
leaq -0x110(%rbp), %rax
movq %rax, -0x1d8(%rbp)
movq %rax, -0x118(%rbp)
movb -0xc(%rbp), %al
addb $-0x70, %al
movb %al, -0x12b(%rbp)
movb $0x40, -0x12a(%rbp)
movb $0x41, -0x129(%rbp)
leaq -0x12b(%rbp), %rax
movq %rax, -0x128(%rbp)
movq $0x3, -0x120(%rbp)
leaq -0x12c(%rbp), %rdi
movq %rdi, -0x1d0(%rbp)
callq 0x86e0
movq -0x1d8(%rbp), %rdi
movq -0x1d0(%rbp), %rcx
movq -0x128(%rbp), %rsi
movq -0x120(%rbp), %rdx
callq 0x8700
jmp 0x525b
leaq -0xf8(%rbp), %rax
movq %rax, -0x1e8(%rbp)
movq %rax, -0x118(%rbp)
movb -0xc(%rbp), %al
addb $-0x80, %al
movb %al, -0x143(%rbp)
movb $0x42, -0x142(%rbp)
movb $0x0, -0x141(%rbp)
leaq -0x143(%rbp), %rax
movq %rax, -0x140(%rbp)
movq $0x3, -0x138(%rbp)
leaq -0x144(%rbp), %rdi
movq %rdi, -0x1e0(%rbp)
callq 0x86e0
movq -0x1e8(%rbp), %rdi
movq -0x1e0(%rbp), %rcx
movq -0x140(%rbp), %rsi
movq -0x138(%rbp), %rdx
callq 0x8700
jmp 0x52d8
leaq -0xe0(%rbp), %rax
movq %rax, -0x1f8(%rbp)
movq %rax, -0x118(%rbp)
movb -0xc(%rbp), %al
addb $-0x60, %al
movb %al, -0x15b(%rbp)
movb $0x43, -0x15a(%rbp)
movb $0x44, -0x159(%rbp)
leaq -0x15b(%rbp), %rax
movq %rax, -0x158(%rbp)
movq $0x3, -0x150(%rbp)
leaq -0x15c(%rbp), %rdi
movq %rdi, -0x1f0(%rbp)
callq 0x86e0
movq -0x1f8(%rbp), %rdi
movq -0x1f0(%rbp), %rcx
movq -0x158(%rbp), %rsi
movq -0x150(%rbp), %rdx
callq 0x8700
jmp 0x5355
leaq -0xc8(%rbp), %rax
movq %rax, -0x208(%rbp)
movq %rax, -0x118(%rbp)
movb -0xc(%rbp), %al
addb $-0x50, %al
movb %al, -0x173(%rbp)
movb $0x45, -0x172(%rbp)
movb $0x46, -0x171(%rbp)
leaq -0x173(%rbp), %rax
movq %rax, -0x170(%rbp)
movq $0x3, -0x168(%rbp)
leaq -0x174(%rbp), %rdi
movq %rdi, -0x200(%rbp)
callq 0x86e0
movq -0x208(%rbp), %rdi
movq -0x200(%rbp), %rcx
movq -0x170(%rbp), %rsi
movq -0x168(%rbp), %rdx
callq 0x8700
jmp 0x53d2
leaq -0xb0(%rbp), %rax
movq %rax, -0x218(%rbp)
movq %rax, -0x118(%rbp)
movb -0xc(%rbp), %al
addb $-0x40, %al
movb %al, -0x18a(%rbp)
movb $0x47, -0x189(%rbp)
leaq -0x18a(%rbp), %rax
movq %rax, -0x188(%rbp)
movq $0x2, -0x180(%rbp)
leaq -0x18b(%rbp), %rdi
movq %rdi, -0x210(%rbp)
callq 0x86e0
movq -0x218(%rbp), %rdi
movq -0x210(%rbp), %rcx
movq -0x188(%rbp), %rsi
movq -0x180(%rbp), %rdx
callq 0x8700
jmp 0x5448
leaq -0x98(%rbp), %rax
movq %rax, -0x228(%rbp)
movq %rax, -0x118(%rbp)
movb -0xc(%rbp), %al
addb $-0x30, %al
movb %al, -0x1a2(%rbp)
movb $0x48, -0x1a1(%rbp)
leaq -0x1a2(%rbp), %rax
movq %rax, -0x1a0(%rbp)
movq $0x2, -0x198(%rbp)
leaq -0x1a3(%rbp), %rdi
movq %rdi, -0x220(%rbp)
callq 0x86e0
movq -0x228(%rbp), %rdi
movq -0x220(%rbp), %rcx
movq -0x1a0(%rbp), %rsi
movq -0x198(%rbp), %rdx
callq 0x8700
jmp 0x54be
leaq -0x80(%rbp), %rax
movq %rax, -0x238(%rbp)
movq %rax, -0x118(%rbp)
movb -0xc(%rbp), %al
addb $-0x20, %al
movb %al, -0x1bb(%rbp)
movb $0x49, -0x1ba(%rbp)
movb $0x0, -0x1b9(%rbp)
leaq -0x1bb(%rbp), %rax
movq %rax, -0x1b8(%rbp)
movq $0x3, -0x1b0(%rbp)
leaq -0x1bc(%rbp), %rdi
movq %rdi, -0x230(%rbp)
callq 0x86e0
movq -0x238(%rbp), %rdi
movq -0x230(%rbp), %rcx
movq -0x1b8(%rbp), %rsi
movq -0x1b0(%rbp), %rdx
callq 0x8700
jmp 0x5538
movb $0x0, -0x1bd(%rbp)
leaq -0x110(%rbp), %rax
movq %rax, -0x68(%rbp)
movq $0x7, -0x60(%rbp)
leaq -0x28(%rbp), %rdi
movq -0x68(%rbp), %rsi
movq -0x60(%rbp), %rdx
callq 0x8780
jmp 0x5565
leaq -0x110(%rbp), %rax
movq %rax, -0x248(%rbp)
addq $0xa8, %rax
movq %rax, -0x240(%rbp)
movq -0x240(%rbp), %rdi
addq $-0x18, %rdi
movq %rdi, -0x250(%rbp)
callq 0x83c0
movq -0x248(%rbp), %rcx
movq -0x250(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x240(%rbp)
jne 0x5580
leaq -0x1bc(%rbp), %rdi
callq 0x87d0
leaq -0x1a3(%rbp), %rdi
callq 0x87d0
leaq -0x18b(%rbp), %rdi
callq 0x87d0
leaq -0x174(%rbp), %rdi
callq 0x87d0
leaq -0x15c(%rbp), %rdi
callq 0x87d0
leaq -0x144(%rbp), %rdi
callq 0x87d0
leaq -0x12c(%rbp), %rdi
callq 0x87d0
movq -0x8(%rbp), %rdi
leaq -0x48(%rbp), %rsi
callq 0x87f0
jmp 0x5614
leaq -0x48(%rbp), %rdi
callq 0x8860
addq $0x280, %rsp            # imm = 0x280
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x57b0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x574a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x573e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x5732
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x5726
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x571a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x570e
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x5702
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x110(%rbp), %rax
movq %rax, -0x260(%rbp)
addq $0xa8, %rax
movq %rax, -0x258(%rbp)
movq -0x258(%rbp), %rdi
addq $-0x18, %rdi
movq %rdi, -0x268(%rbp)
callq 0x83c0
movq -0x260(%rbp), %rcx
movq -0x268(%rbp), %rax
cmpq %rcx, %rax
movq %rax, -0x258(%rbp)
jne 0x56cf
jmp 0x5702
leaq -0x1bc(%rbp), %rdi
callq 0x87d0
leaq -0x1a3(%rbp), %rdi
callq 0x87d0
leaq -0x18b(%rbp), %rdi
callq 0x87d0
leaq -0x174(%rbp), %rdi
callq 0x87d0
leaq -0x15c(%rbp), %rdi
callq 0x87d0
leaq -0x144(%rbp), %rdi
callq 0x87d0
leaq -0x12c(%rbp), %rdi
callq 0x87d0
testb $0x1, -0x1bd(%rbp)
jne 0x5761
jmp 0x57ae
movq -0x118(%rbp), %rax
leaq -0x110(%rbp), %rcx
cmpq %rax, %rcx
movq %rax, -0x270(%rbp)
je 0x57ac
movq -0x270(%rbp), %rdi
addq $-0x18, %rdi
movq %rdi, -0x278(%rbp)
callq 0x83c0
movq -0x278(%rbp), %rax
leaq -0x110(%rbp), %rcx
cmpq %rcx, %rax
movq %rax, -0x270(%rbp)
jne 0x577b
jmp 0x57ae
jmp 0x57b0
leaq -0x48(%rbp), %rdi
callq 0x8860
movq -0x50(%rbp), %rdi
callq 0x3320
nopw %cs:(%rax,%rax)