// File: /workspace/github_c_makefile_star2_O0/endeav0r[P]hvm/src/instruction.c
// Function: ins_opcode_str
const char * ins_opcode_str (uint8_t opcode) {
    #define OPCODECASE(XX, XXSTR) case OP_##XX : return #XXSTR;
    switch (opcode) {
    OPCODECASE(ADD,      add)
    OPCODECASE(ADDLVAL,  add)
    OPCODECASE(SUB,      sub)
    OPCODECASE(SUBLVAL,  sub)
    OPCODECASE(MUL,      mul)
    OPCODECASE(MULLVAL,  mul)
    OPCODECASE(DIV,      div)
    OPCODECASE(DIVLVAL,  div)
    OPCODECASE(MOD,      mod)
    OPCODECASE(MODLVAL,  mod)
    OPCODECASE(AND,      and)
    OPCODECASE(ANDLVAL,  and)
    OPCODECASE(OR,       or)
    OPCODECASE(ORLVAL,   or)
    OPCODECASE(XOR,      xor)
    OPCODECASE(XORLVAL,  xor)
    OPCODECASE(JMP,      jmp)
    OPCODECASE(JE,       je)
    OPCODECASE(JNE,      jne)
    OPCODECASE(JL,       jl)
    OPCODECASE(JLE,      jle)
    OPCODECASE(JG,       jg)
    OPCODECASE(JGE,      jge)
    OPCODECASE(CALL,     call)
    OPCODECASE(CALLR,    call)
    OPCODECASE(RET,      ret)
    OPCODECASE(LOAD,     load)
    OPCODECASE(LOADR,    load)
    OPCODECASE(LOADB,    loadb)
    OPCODECASE(LOADBR,   loadb)
    OPCODECASE(STOR,     stor)
    OPCODECASE(STORR,    stor)
    OPCODECASE(STORB,    storb)
    OPCODECASE(STORBR,   storb)
    OPCODECASE(IN,       in)
    OPCODECASE(OUT,      out)
    OPCODECASE(PUSH,     push)
    OPCODECASE(PUSHLVAL, push)
    OPCODECASE(POP,      pop)
    OPCODECASE(MOV,      mov)
    OPCODECASE(MOVLVAL,  mov)
    OPCODECASE(CMP,      cmp)
    OPCODECASE(CMPLVAL,  cmp)
    OPCODECASE(HLT,      hlt)
    OPCODECASE(SYSCALL,  syscall)
    OPCODECASE(NOP,      nop)
    }
    return NULL;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
movb %dil, %al
movb %al, -0x9(%rbp)
movzbl -0x9(%rbp), %eax
addl $-0x10, %eax
movl %eax, %ecx
movq %rcx, -0x18(%rbp)
subl $0x80, %eax
ja 0x3078
movq -0x18(%rbp), %rax
leaq 0x63bf(%rip), %rcx      # 0x916c
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x67db(%rip), %rax      # 0x9598
movq %rax, -0x8(%rbp)
jmp 0x3080
leaq 0x67cb(%rip), %rax      # 0x9598
movq %rax, -0x8(%rbp)
jmp 0x3080
leaq 0x67bf(%rip), %rax      # 0x959c
movq %rax, -0x8(%rbp)
jmp 0x3080
leaq 0x67af(%rip), %rax      # 0x959c
movq %rax, -0x8(%rbp)
jmp 0x3080
leaq 0x67a3(%rip), %rax      # 0x95a0
movq %rax, -0x8(%rbp)
jmp 0x3080
leaq 0x6793(%rip), %rax      # 0x95a0
movq %rax, -0x8(%rbp)
jmp 0x3080
leaq 0x6787(%rip), %rax      # 0x95a4
movq %rax, -0x8(%rbp)
jmp 0x3080
leaq 0x6777(%rip), %rax      # 0x95a4
movq %rax, -0x8(%rbp)
jmp 0x3080
leaq 0x676b(%rip), %rax      # 0x95a8
movq %rax, -0x8(%rbp)
jmp 0x3080
leaq 0x675b(%rip), %rax      # 0x95a8
movq %rax, -0x8(%rbp)
jmp 0x3080
leaq 0x674f(%rip), %rax      # 0x95ac
movq %rax, -0x8(%rbp)
jmp 0x3080
leaq 0x673f(%rip), %rax      # 0x95ac
movq %rax, -0x8(%rbp)
jmp 0x3080
leaq 0x6761(%rip), %rax      # 0x95de
movq %rax, -0x8(%rbp)
jmp 0x3080
leaq 0x6751(%rip), %rax      # 0x95de
movq %rax, -0x8(%rbp)
jmp 0x3080
leaq 0x6713(%rip), %rax      # 0x95b0
movq %rax, -0x8(%rbp)
jmp 0x3080
leaq 0x6703(%rip), %rax      # 0x95b0
movq %rax, -0x8(%rbp)
jmp 0x3080
leaq 0x66f7(%rip), %rax      # 0x95b4
movq %rax, -0x8(%rbp)
jmp 0x3080
leaq 0x66eb(%rip), %rax      # 0x95b8
movq %rax, -0x8(%rbp)
jmp 0x3080
leaq 0x66de(%rip), %rax      # 0x95bb
movq %rax, -0x8(%rbp)
jmp 0x3080
leaq 0x66d2(%rip), %rax      # 0x95bf
movq %rax, -0x8(%rbp)
jmp 0x3080
leaq 0x66c5(%rip), %rax      # 0x95c2
movq %rax, -0x8(%rbp)
jmp 0x3080
leaq 0x66b9(%rip), %rax      # 0x95c6
movq %rax, -0x8(%rbp)
jmp 0x3080
leaq 0x66ac(%rip), %rax      # 0x95c9
movq %rax, -0x8(%rbp)
jmp 0x3080
leaq 0x66d9(%rip), %rax      # 0x9606
movq %rax, -0x8(%rbp)
jmp 0x3080
leaq 0x66c9(%rip), %rax      # 0x9606
movq %rax, -0x8(%rbp)
jmp 0x3080
leaq 0x6680(%rip), %rax      # 0x95cd
movq %rax, -0x8(%rbp)
jmp 0x3080
leaq 0x6674(%rip), %rax      # 0x95d1
movq %rax, -0x8(%rbp)
jmp 0x3080
leaq 0x6664(%rip), %rax      # 0x95d1
movq %rax, -0x8(%rbp)
jmp 0x3080
leaq 0x6659(%rip), %rax      # 0x95d6
movq %rax, -0x8(%rbp)
jmp 0x3080
leaq 0x6649(%rip), %rax      # 0x95d6
movq %rax, -0x8(%rbp)
jmp 0x3080
leaq 0x663f(%rip), %rax      # 0x95dc
movq %rax, -0x8(%rbp)
jmp 0x3080
leaq 0x662f(%rip), %rax      # 0x95dc
movq %rax, -0x8(%rbp)
jmp 0x3080
leaq 0x6624(%rip), %rax      # 0x95e1
movq %rax, -0x8(%rbp)
jmp 0x3080
leaq 0x6614(%rip), %rax      # 0x95e1
movq %rax, -0x8(%rbp)
jmp 0x3080
leaq 0x660a(%rip), %rax      # 0x95e7
movq %rax, -0x8(%rbp)
jmp 0x3080
leaq 0x65fd(%rip), %rax      # 0x95ea
movq %rax, -0x8(%rbp)
jmp 0x3080
leaq 0x65f1(%rip), %rax      # 0x95ee
movq %rax, -0x8(%rbp)
jmp 0x3080
leaq 0x65e4(%rip), %rax      # 0x95ee
movq %rax, -0x8(%rbp)
jmp 0x3080
leaq 0x65dc(%rip), %rax      # 0x95f3
movq %rax, -0x8(%rbp)
jmp 0x3080
leaq 0x65d3(%rip), %rax      # 0x95f7
movq %rax, -0x8(%rbp)
jmp 0x3080
leaq 0x65c6(%rip), %rax      # 0x95f7
movq %rax, -0x8(%rbp)
jmp 0x3080
leaq 0x65bd(%rip), %rax      # 0x95fb
movq %rax, -0x8(%rbp)
jmp 0x3080
leaq 0x65b0(%rip), %rax      # 0x95fb
movq %rax, -0x8(%rbp)
jmp 0x3080
leaq 0x65a7(%rip), %rax      # 0x95ff
movq %rax, -0x8(%rbp)
jmp 0x3080
leaq 0x659e(%rip), %rax      # 0x9603
movq %rax, -0x8(%rbp)
jmp 0x3080
leaq 0x6599(%rip), %rax      # 0x960b
movq %rax, -0x8(%rbp)
jmp 0x3080
movq $0x0, -0x8(%rbp)
movq -0x8(%rbp), %rax
popq %rbp
retq
nopw %cs:(%rax,%rax)