user: Converte this assembly snippet into its equivalent C code:

```asm
<scalar_opcode>:
  endbr64
  cmp    $0x1f,%edi
  ja     L7
  lea    D158(%rip),%rdx
  mov    %edi,%edi
  movslq (%rdx,%rdi,4),%rax
  add    %rdx,%rax
  notrack jmp *%rax
  lea    D317(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D54(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D33(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D93(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D216(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D289(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D48(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D17(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D300(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D78(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D295(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D268(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D79(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D152(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D89(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D249(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D247(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D100(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D302(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D264(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D42(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D304(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D129(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D32(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D106(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D242(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D107(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D114(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D316(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
L7:
  lea    D231(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D314(%rip),%rax
  ret
```

tool_calls: name: read_data
arguments: data_label: D317
type: string
name: read_data
arguments: data_label: D54
type: string
name: read_data
arguments: data_label: D33
type: string
name: read_data
arguments: data_label: D93
type: string
name: read_data
arguments: data_label: D216
type: string
name: read_data
arguments: data_label: D289
type: string
name: read_data
arguments: data_label: D48
type: string
name: read_data
arguments: data_label: D17
type: string
name: read_data
arguments: data_label: D300
type: string
name: read_data
arguments: data_label: D78
type: string
name: read_data
arguments: data_label: D295
type: string
name: read_data
arguments: data_label: D268
type: string
name: read_data
arguments: data_label: D79
type: string
name: read_data
arguments: data_label: D152
type: string
name: read_data
arguments: data_label: D89
type: string
name: read_data
arguments: data_label: D249
type: string
name: read_data
arguments: data_label: D247
type: string
name: read_data
arguments: data_label: D100
type: string
name: read_data
arguments: data_label: D302
type: string
name: read_data
arguments: data_label: D264
type: string
name: read_data
arguments: data_label: D42
type: string
name: read_data
arguments: data_label: D304
type: string
name: read_data
arguments: data_label: D129
type: string
name: read_data
arguments: data_label: D32
type: string
name: read_data
arguments: data_label: D106
type: string
name: read_data
arguments: data_label: D242
type: string
name: read_data
arguments: data_label: D107
type: string
name: read_data
arguments: data_label: D114
type: string
name: read_data
arguments: data_label: D316
type: string
name: read_data
arguments: data_label: D231
type: string
name: read_data
arguments: data_label: D314
type: string

tool: D317: OPCODE-31

tool: D54: OPCODE-30

tool: D33: OPCODE-29

tool: D93: OPCODE-28

tool: D216: OPCODE-27

tool: D289: OPCODE-26

tool: D48: OPCODE-25

tool: D17: OPCODE-24

tool: D300: OPCODE-23

tool: D78: OPCODE-22

tool: D295: OPCODE-21

tool: D268: POPA

tool: D79: PUSHA

tool: D152: OPCODE-18

tool: D89: OPCODE-17

tool: D249: COS

tool: D247: SIN

tool: D100: EX2

tool: D302: LG2

tool: D264: RET

tool: D42: CAL

tool: D304: BRA

tool: D129: LIT

tool: D32: LOG

tool: D106: EXP

tool: D242: RSQ

tool: D107: RCC

tool: D114: RCP

tool: D316: NOP

tool: D231: INVALID!

tool: D314: MOV

assistant: ```c
const char *scalar_opcode(unsigned opcode) {
  switch (opcode) {
  case 0:
    return "NOP";
  case 1:
    return "MOV";
  case 2:
    return "RCP";
  case 3:
    return "RCC";
  case 4:
    return "RSQ";
  case 5:
    return "EXP";
  case 6:
    return "LOG";
  case 7:
    return "LIT";
  case 9:
    return "BRA";
  case 11:
    return "CAL";
  case 12:
    return "RET";
  case 13:
    return "LG2";
  case 14:
    return "EX2";
  case 15:
    return "SIN";
  case 16:
    return "COS";
  case 19:
    return "PUSHA";
  case 20:
    return "POPA";
  case 17:
    return "OPCODE-17";
  case 18:
    return "OPCODE-18";
  case 21:
    return "OPCODE-21";
  case 22:
    return "OPCODE-22";
  case 23:
    return "OPCODE-23";
  case 24:
    return "OPCODE-24";
  case 25:
    return "OPCODE-25";
  case 26:
    return "OPCODE-26";
  case 27:
    return "OPCODE-27";
  case 28:
    return "OPCODE-28";
  case 29:
    return "OPCODE-29";
  case 30:
    return "OPCODE-30";
  case 31:
    return "OPCODE-31";
  default:
    break;
  }
  return "INVALID!";
}
```