// File: /workspace/github_cpp_makefile_star2_O1/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 0x5c72
leal -0xe0(%rax), %ecx
cmpl $0x1f, %ecx
ja 0x5cbb
leaq 0x23ba(%rip), %rax      # 0x8010
movslq (%rax,%rcx,4), %rcx
addq %rax, %rcx
jmpq *%rcx
leaq 0x2678(%rip), %rsi      # 0x82de
leaq 0x267a(%rip), %rdx      # 0x82e7
jmp 0x5df3
cmpl $0x9f, %eax
jg 0x5c9a
cmpl $0x80, %eax
je 0x5ce0
cmpl $0x90, %eax
jne 0x5d06
leaq 0x261e(%rip), %rsi      # 0x82ac
leaq 0x261d(%rip), %rdx      # 0x82b2
jmp 0x5df3
cmpl $0xa0, %eax
je 0x5cf3
cmpl $0xb0, %eax
jne 0x5d06
leaq 0x2613(%rip), %rsi      # 0x82c2
leaq 0x2619(%rip), %rdx      # 0x82cf
jmp 0x5df3
cmpl $0xc0, %eax
je 0x5de5
cmpl $0xd0, %eax
jne 0x5d06
leaq 0x25e3(%rip), %rsi      # 0x82b7
leaq 0x25e6(%rip), %rdx      # 0x82c1
jmp 0x5df3
leaq 0x25bd(%rip), %rsi      # 0x82a4
leaq 0x25bd(%rip), %rdx      # 0x82ab
jmp 0x5df3
leaq 0x25b9(%rip), %rsi      # 0x82b3
leaq 0x25c0(%rip), %rdx      # 0x82c1
jmp 0x5df3
leaq 0x2644(%rip), %rsi      # 0x8351
leaq 0x2644(%rip), %rdx      # 0x8358
jmp 0x5df3
leaq 0x25c8(%rip), %rsi      # 0x82e8
leaq 0x25c6(%rip), %rdx      # 0x82ed
jmp 0x5df3
leaq 0x25cc(%rip), %rsi      # 0x82ff
leaq 0x25cf(%rip), %rdx      # 0x8309
jmp 0x5df3
leaq 0x25d0(%rip), %rsi      # 0x8316
leaq 0x25d1(%rip), %rdx      # 0x831e
jmp 0x5df3
leaq 0x2595(%rip), %rsi      # 0x82ee
leaq 0x2596(%rip), %rdx      # 0x82f6
jmp 0x5df3
leaq 0x25cd(%rip), %rsi      # 0x8339
leaq 0x25d1(%rip), %rdx      # 0x8344
jmp 0x5df3
leaq 0x257b(%rip), %rsi      # 0x82f7
leaq 0x257b(%rip), %rdx      # 0x82fe
jmp 0x5df3
leaq 0x259f(%rip), %rsi      # 0x832b
leaq 0x25a0(%rip), %rdx      # 0x8333
jmp 0x5df3
leaq 0x256e(%rip), %rsi      # 0x830a
leaq 0x2572(%rip), %rdx      # 0x8315
jmp 0x5df3
leaq 0x2588(%rip), %rsi      # 0x8334
leaq 0x2585(%rip), %rdx      # 0x8338
jmp 0x5df3
leaq 0x2563(%rip), %rsi      # 0x831f
leaq 0x2561(%rip), %rdx      # 0x8324
jmp 0x5df3
leaq 0x2559(%rip), %rsi      # 0x8325
leaq 0x2557(%rip), %rdx      # 0x832a
jmp 0x5df3
leaq 0x2569(%rip), %rsi      # 0x8345
leaq 0x256d(%rip), %rdx      # 0x8350
jmp 0x5df3
leaq 0x24e4(%rip), %rsi      # 0x82d0
leaq 0x24ea(%rip), %rdx      # 0x82dd
movq %rbx, %rdi
callq 0x5f90
movq %rbx, %rax
popq %rbx
retq