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

```asm
<alpn_desc>:
  endbr64
  push   %rbp
  lea    D211(%rip),%rsi
  mov    %rdi,%rbp
  call   <strcmp@plt>
  mov    %rax,%r8
  lea    D188(%rip),%rax
  test   %r8,%r8
  jne    L67
L60:
  pop    %rbp
  ret
  nopl   (%rax)
L67:
  lea    D77(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  lea    D132(%rip),%rax
  test   %r8,%r8
  je     L60
  lea    D210(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  lea    D196(%rip),%rax
  test   %r8,%r8
  je     L60
  lea    D241(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  lea    D120(%rip),%rax
  test   %r8,%r8
  je     L60
  lea    D202(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  lea    D243(%rip),%rax
  test   %r8,%r8
  je     L60
  lea    D235(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  lea    D232(%rip),%rax
  test   %r8,%r8
  je     L60
  lea    D223(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  lea    D144(%rip),%rax
  test   %r8,%r8
  je     L60
  lea    D13(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  lea    D37(%rip),%rax
  test   %r8,%r8
  je     L60
  lea    D205(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  lea    D72(%rip),%rax
  test   %r8,%r8
  je     L60
  lea    D54(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  lea    D192(%rip),%rax
  test   %r8,%r8
  je     L60
  lea    D168(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcmp@plt>
  mov    %rax,%r8
  lea    D20(%rip),%rax
  test   %r8,%r8
  je     L60
  mov    %rbp,%rdi
  lea    D26(%rip),%rsi
  call   <strcmp@plt>
  lea    D25(%rip),%rdx
  pop    %rbp
  test   %rax,%rax
  lea    D56(%rip),%rax
  cmovne %rdx,%rax
  ret
```

tool_calls: name: parse_data
arguments: data_label: D211
type: string
name: parse_data
arguments: data_label: D188
type: string
name: parse_data
arguments: data_label: D77
type: string
name: parse_data
arguments: data_label: D132
type: string
name: parse_data
arguments: data_label: D210
type: string
name: parse_data
arguments: data_label: D196
type: string
name: parse_data
arguments: data_label: D241
type: string
name: parse_data
arguments: data_label: D120
type: string
name: parse_data
arguments: data_label: D202
type: string
name: parse_data
arguments: data_label: D243
type: string
name: parse_data
arguments: data_label: D235
type: string
name: parse_data
arguments: data_label: D232
type: string
name: parse_data
arguments: data_label: D223
type: string
name: parse_data
arguments: data_label: D144
type: string
name: parse_data
arguments: data_label: D13
type: string
name: parse_data
arguments: data_label: D37
type: string
name: parse_data
arguments: data_label: D205
type: string
name: parse_data
arguments: data_label: D72
type: string
name: parse_data
arguments: data_label: D54
type: string
name: parse_data
arguments: data_label: D192
type: string
name: parse_data
arguments: data_label: D168
type: string
name: parse_data
arguments: data_label: D20
type: string
name: parse_data
arguments: data_label: D26
type: string
name: parse_data
arguments: data_label: D25
type: string
name: parse_data
arguments: data_label: D56
type: string

tool: D211: http/1.1

tool: D188: HTTP/1.1

tool: D77: spdy/1

tool: D132: SPDY/1

tool: D210: spdy/2

tool: D196: SPDY/2

tool: D241: spdy/3

tool: D120: SPDY/3

tool: D202: spdy/3.1

tool: D243: SPDY/3.1

tool: D235: stun.turn

tool: D232: Traversal Using Relays around NAT (TURN)

tool: D223: stun.nat-discovery

tool: D144: NAT discovery using Session Traversal Utilities for NAT (STUN)

tool: D13: h2

tool: D37: HTTP/2 over TLS

tool: D205: h2c

tool: D72: HTTP/2 over TCP

tool: D54: webrtc

tool: D192: WebRTC Media and Data

tool: D168: c-webrtc

tool: D20: Confidential WebRTC Media and Data

tool: D26: ftp

tool: 

tool: D56: FTP

assistant: ```c
const char *alpn_desc(char *code) {
  if (strcmp(code, "http/1.1") == 0)
    return "HTTP/1.1";
  else if (strcmp(code, "spdy/1") == 0)
    return "SPDY/1";
  else if (strcmp(code, "spdy/2") == 0)
    return "SPDY/2";
  else if (strcmp(code, "spdy/3") == 0)
    return "SPDY/3";
  else if (strcmp(code, "spdy/3.1") == 0)
    return "SPDY/3.1";
  else if (strcmp(code, "stun.turn") == 0)
    return "Traversal Using Relays around NAT (TURN)";
  else if (strcmp(code, "stun.nat-discovery") == 0)
    return "NAT discovery using Session Traversal Utilities for NAT (STUN)";
  else if (strcmp(code, "h2") == 0)
    return "HTTP/2 over TLS";
  else if (strcmp(code, "h2c") == 0)
    return "HTTP/2 over TCP";
  else if (strcmp(code, "webrtc") == 0)
    return "WebRTC Media and Data";
  else if (strcmp(code, "c-webrtc") == 0)
    return "Confidential WebRTC Media and Data";
  else if (strcmp(code, "ftp") == 0)
    return "FTP";
  else
    return "";
}
```