// File: /workspace/github_cpp_makefile_star2_O3/danomatika[P]miditester/src/main.cpp
// Function: statusByteName[abi:cxx11](unsigned char)
std::string statusByteName(unsigned char status) {
    if(status < MIDI_SYSEX) status = status & 0xF0;
    switch(status) {
        case MIDI_NOTEOFF:        return "NOTEOFF";
        case MIDI_NOTEON:         return "NOTEON";
        case MIDI_POLYAFTERTOUCH: return "POLYAFTERTOUCH";
        case MIDI_CONTROLCHANGE:  return "CONTROLCHANGE";
        case MIDI_PROGRAMCHANGE:  return "PROGRAMCHANGE";
        case MIDI_AFTERTOUCH:     return "AFTERTOUCH";
        case MIDI_PITCHBEND:      return "PITCHBEND";
        case MIDI_SYSEX:          return "SYSEX";
        case MIDI_TIMECODE:       return "TIMECODE";
        case MIDI_SONGPOS:        return "SONGPOS";
        case MIDI_SONGSELECT:     return "SONGSELECT";
        case MIDI_TUNEREQUEST:    return "TUNEREQUEST";
        case MIDI_SYSEXEND:       return "SYSEXEND";
        case MIDI_CLOCK:          return "CLOCK";
        case MIDI_START:          return "START";
        case MIDI_CONTINUE:       return "CONTINUE";
        case MIDI_STOP:           return "STOP";
        case MIDI_ACTIVESENSING:  return "ACTIVESENSE";
        case MIDI_SYSTEMRESET:    return "SYSTEMRESET";
        default:                  return "UNKNOWN";
    }
}

// Assembly:
pushq %rbx
movq %rdi, %rbx
movl %esi, %eax
andb $-0x10, %al
cmpb $-0x10, %sil
movzbl %al, %eax
cmovael %esi, %eax
leaq 0x10(%rdi), %rcx
movq %rcx, (%rdi)
movzbl %al, %eax
cmpl $0xbf, %eax
jle 0x5b54
leal -0xe0(%rax), %ecx
cmpl $0x1f, %ecx
ja 0x5b9d
leaq 0x24d8(%rip), %rax      # 0x8010
movslq (%rax,%rcx,4), %rcx
addq %rax, %rcx
jmpq *%rcx
leaq 0x2796(%rip), %rsi      # 0x82de
leaq 0x2798(%rip), %rdx      # 0x82e7
jmp 0x5cd5
cmpl $0x9f, %eax
jg 0x5b7c
cmpl $0x80, %eax
je 0x5bc2
cmpl $0x90, %eax
jne 0x5be8
leaq 0x273c(%rip), %rsi      # 0x82ac
leaq 0x273b(%rip), %rdx      # 0x82b2
jmp 0x5cd5
cmpl $0xa0, %eax
je 0x5bd5
cmpl $0xb0, %eax
jne 0x5be8
leaq 0x2731(%rip), %rsi      # 0x82c2
leaq 0x2737(%rip), %rdx      # 0x82cf
jmp 0x5cd5
cmpl $0xc0, %eax
je 0x5cc7
cmpl $0xd0, %eax
jne 0x5be8
leaq 0x2701(%rip), %rsi      # 0x82b7
leaq 0x2704(%rip), %rdx      # 0x82c1
jmp 0x5cd5
leaq 0x26db(%rip), %rsi      # 0x82a4
leaq 0x26db(%rip), %rdx      # 0x82ab
jmp 0x5cd5
leaq 0x26d7(%rip), %rsi      # 0x82b3
leaq 0x26de(%rip), %rdx      # 0x82c1
jmp 0x5cd5
leaq 0x2762(%rip), %rsi      # 0x8351
leaq 0x2762(%rip), %rdx      # 0x8358
jmp 0x5cd5
leaq 0x26e6(%rip), %rsi      # 0x82e8
leaq 0x26e4(%rip), %rdx      # 0x82ed
jmp 0x5cd5
leaq 0x26ea(%rip), %rsi      # 0x82ff
leaq 0x26ed(%rip), %rdx      # 0x8309
jmp 0x5cd5
leaq 0x26ee(%rip), %rsi      # 0x8316
leaq 0x26ef(%rip), %rdx      # 0x831e
jmp 0x5cd5
leaq 0x26b3(%rip), %rsi      # 0x82ee
leaq 0x26b4(%rip), %rdx      # 0x82f6
jmp 0x5cd5
leaq 0x26eb(%rip), %rsi      # 0x8339
leaq 0x26ef(%rip), %rdx      # 0x8344
jmp 0x5cd5
leaq 0x2699(%rip), %rsi      # 0x82f7
leaq 0x2699(%rip), %rdx      # 0x82fe
jmp 0x5cd5
leaq 0x26bd(%rip), %rsi      # 0x832b
leaq 0x26be(%rip), %rdx      # 0x8333
jmp 0x5cd5
leaq 0x268c(%rip), %rsi      # 0x830a
leaq 0x2690(%rip), %rdx      # 0x8315
jmp 0x5cd5
leaq 0x26a6(%rip), %rsi      # 0x8334
leaq 0x26a3(%rip), %rdx      # 0x8338
jmp 0x5cd5
leaq 0x2681(%rip), %rsi      # 0x831f
leaq 0x267f(%rip), %rdx      # 0x8324
jmp 0x5cd5
leaq 0x2677(%rip), %rsi      # 0x8325
leaq 0x2675(%rip), %rdx      # 0x832a
jmp 0x5cd5
leaq 0x2687(%rip), %rsi      # 0x8345
leaq 0x268b(%rip), %rdx      # 0x8350
jmp 0x5cd5
leaq 0x2602(%rip), %rsi      # 0x82d0
leaq 0x2608(%rip), %rdx      # 0x82dd
movq %rbx, %rdi
callq 0x5e78
movq %rbx, %rax
popq %rbx
retq