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

```asm
<error_il>:
  endbr64
  push   %r12
  cmp    $0x63,%edi
  ja     L102
  lea    D237(%rip),%rdx
  mov    %edi,%edi
  movslq (%rdx,%rdi,4),%rax
  add    %rdx,%rax
  notrack jmp *%rax
  xchg   %ax,%ax
  lea    D329(%rip),%r12
  lea    D295(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
L33:
  mov    %r12,%rax
  pop    %r12
  ret
  nopl   0x0(%rax)
  lea    D329(%rip),%r12
  lea    D318(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
  jmp    L33
  nopl   0x0(%rax,%rax,1)
L102:
  lea    D329(%rip),%r12
  lea    D110(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
  jmp    L33
  nopl   0x0(%rax,%rax,1)
  lea    D329(%rip),%r12
L121:
  mov    %r12,%rdi
  lea    D164(%rip),%rsi
  call   <strcpy@plt>
  mov    %r12,%rax
  pop    %r12
  ret
  lea    D329(%rip),%r12
  lea    D348(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
  jmp    L33
  lea    D329(%rip),%r12
  lea    D116(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
  jmp    L33
  lea    D329(%rip),%r12
  lea    D192(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
L116:
  lea    D240(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
  jmp    L121
  lea    D329(%rip),%r12
  lea    D194(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
  jmp    L33
  lea    D329(%rip),%r12
  lea    D167(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
  jmp    L33
  lea    D329(%rip),%r12
  lea    D23(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
  jmp    L33
  lea    D329(%rip),%r12
  lea    D324(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
  jmp    L33
  lea    D329(%rip),%r12
  lea    D0(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
  jmp    L33
  lea    D329(%rip),%r12
  lea    D155(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
  jmp    L33
  lea    D329(%rip),%r12
  lea    D6(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
  jmp    L33
  lea    D329(%rip),%r12
  lea    D144(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
  jmp    L33
  lea    D329(%rip),%r12
  lea    D190(%rip),%rsi
  mov    %r12,%rdi
  call   <strcpy@plt>
  jmp    L33
  lea    D329(%rip),%r12
  jmp    L116
```

tool_calls: name: extract_symbolic_data
arguments: data_label: D295
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D318
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D110
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D164
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D348
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D116
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D192
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D240
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D194
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D167
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D23
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D324
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D0
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D155
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D6
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D144
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D190
type_guessed: string

tool: D295: Error writing the index

tool: D318: Error reading the text

tool: D110: Unknown error

tool: D164: Error reading the index

tool: D348: Cannot create files

tool: D116: Error reading source posting lists

tool: D192: Cannot open index; break

tool: D240: Cannot open text; break

tool: D194: You can't free the text if you don't copy it

tool: D167: The text must end with a \0

tool: D23: Empty Source list or incomplete !!

tool: D324: default function for Intersect_N-op not initialized

tool: D0: default function for Intersect_2-op not initialized

tool: D155: Out of memory

tool: D6: No error

tool: D144: Not implemented

tool: D190: default function for fsearch-op not initialized

assistant: ```c
char *error_il(int e) {
  static char err[100];
  switch (e) {
  case 0:
    strcpy(err, "No error");
    break;
  case 1:
    strcpy(err, "Out of memory");
    break;
  case 30:
    strcpy(err, "Error reading source posting lists");
    break;
  case 31:
    strcpy(err, "Empty Source list or incomplete !!");
    break;
  case 40:
    strcpy(err, "default function for Intersect_2-op not initialized");
    break;
  case 41:
    strcpy(err, "default function for Intersect_N-op not initialized");
    break;
  case 42:
    strcpy(err, "default function for fsearch-op not initialized");
    break;
  case 2:
    strcpy(err, "The text must end with a \\0");
    break;
  case 5:
    strcpy(err, "You can't free the text if you don't copy it");
    break;
  case 20:
    strcpy(err, "Cannot create files");
    break;
  case 21:
    strcpy(err, "Error writing the index");
    break;
  case 22:
    strcpy(err, "Error writing the index");
    break;
  case 23:
    strcpy(err, "Cannot open index; break");
  case 24:
    strcpy(err, "Cannot open text; break");
  case 25:
    strcpy(err, "Error reading the index");
    break;
  case 26:
    strcpy(err, "Error reading the index");
    break;
  case 27:
    strcpy(err, "Error reading the text");
    break;
  case 28:
    strcpy(err, "Error reading the text");
    break;
  case 99:
    strcpy(err, "Not implemented");
    break;
  default:
    strcpy(err, "Unknown error");
  }
  return err;
}
```