user: Please show me the C implementation that matches the assembly code listed below:

```asm
<get_operation_code>:
  endbr64
  push   %rbx
  mov    %rdi,%rbx
  lea    D115(%rip),%rsi
  call   <strcmp@plt>
  mov    %rax,%rdx
  mov    $0x0,%eax
  test   %rdx,%rdx
  jne    L104
L85:
  pop    %rbx
  ret
L104:
  lea    D1(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %rax,%rdx
  mov    $0x1,%eax
  test   %rdx,%rdx
  je     L85
  lea    D50(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %rax,%rdx
  mov    $0x2,%eax
  test   %rdx,%rdx
  je     L85
  lea    D9(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %rax,%rdx
  mov    $0x3,%eax
  test   %rdx,%rdx
  je     L85
  lea    D105(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %rax,%rdx
  mov    $0x4,%eax
  test   %rdx,%rdx
  je     L85
  lea    D94(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %rax,%rdx
  mov    $0x5,%eax
  test   %rdx,%rdx
  je     L85
  lea    D107(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %rax,%rdx
  mov    $0x6,%eax
  test   %rdx,%rdx
  je     L85
  lea    D59(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %rax,%rdx
  mov    $0x7,%eax
  test   %rdx,%rdx
  je     L85
  lea    D80(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %rax,%rdx
  mov    $0x8,%eax
  test   %rdx,%rdx
  je     L85
  lea    D108(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %rax,%rdx
  mov    $0x9,%eax
  test   %rdx,%rdx
  je     L85
  lea    D92(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %rax,%rdx
  mov    $0xa,%eax
  test   %rdx,%rdx
  je     L85
  lea    D130(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %rax,%rdx
  mov    $0xb,%eax
  test   %rdx,%rdx
  je     L85
  lea    D86(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  mov    %rax,%rdx
  mov    $0xc,%eax
  test   %rdx,%rdx
  je     L85
  lea    D49(%rip),%rsi
  mov    %rbx,%rdi
  call   <strcmp@plt>
  cmp    $0x1,%rax
  sbb    %eax,%eax
  and    $0xe,%al
  add    $0xff,%eax
  jmp    L85
```

tool_calls: name: extract_symbolic_data
arguments: data_label: D115
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D1
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D50
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D9
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D105
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D94
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D107
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D59
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D80
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D108
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D92
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D130
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D86
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D49
type_guessed: string

tool: D115: cmove

tool: D1: get

tool: D50: set

tool: D9: add

tool: D105: mult

tool: D94: div

tool: D107: nand

tool: D59: halt

tool: D80: allocate

tool: D108: free

tool: D92: out

tool: D130: in

tool: D86: load

tool: D49: put

assistant: ```c
uint8_t get_operation_code(const char *code) {
  if (strcmp(code, "cmove") == 0)
    return 0;
  else if (strcmp(code, "get") == 0)
    return 1;
  else if (strcmp(code, "set") == 0)
    return 2;
  else if (strcmp(code, "add") == 0)
    return 3;
  else if (strcmp(code, "mult") == 0)
    return 4;
  else if (strcmp(code, "div") == 0)
    return 5;
  else if (strcmp(code, "nand") == 0)
    return 6;
  else if (strcmp(code, "halt") == 0)
    return 7;
  else if (strcmp(code, "allocate") == 0)
    return 8;
  else if (strcmp(code, "free") == 0)
    return 9;
  else if (strcmp(code, "out") == 0)
    return 10;
  else if (strcmp(code, "in") == 0)
    return 11;
  else if (strcmp(code, "load") == 0)
    return 12;
  else if (strcmp(code, "put") == 0)
    return 13;
  return 255;
}
```