user: 请显示与下面列出的汇编代码相匹配的C语言实现:

```asm
<bladerf_strerror>:
  endbr64
  add    $0x12,%edi
  cmp    $0x12,%edi
  ja     L0
  mov    %edi,%edi
  lea    D30(%rip),%rdx
  movslq (%rdx,%rdi,4),%rax
  add    %rdx,%rax
  notrack jmp *%rax
  lea    D62(%rip),%rax
  ret
  lea    D50(%rip),%rax
  ret
  lea    D43(%rip),%rax
  ret
  lea    D115(%rip),%rax
  ret
  lea    D203(%rip),%rax
  ret
  lea    D187(%rip),%rax
  ret
  lea    D148(%rip),%rax
  ret
  lea    D41(%rip),%rax
  ret
  lea    D78(%rip),%rax
  ret
  lea    D105(%rip),%rax
  ret
  lea    D65(%rip),%rax
  ret
  lea    D159(%rip),%rax
  ret
  lea    D98(%rip),%rax
  ret
  lea    D79(%rip),%rax
  ret
  lea    D14(%rip),%rax
  ret
  lea    D128(%rip),%rax
  ret
  lea    D91(%rip),%rax
  ret
  lea    D138(%rip),%rax
  ret
L0:
  lea    D174(%rip),%rax
  ret
  lea    D199(%rip),%rax
  ret
```

tool_calls: name: parse_data
arguments: data_tag: D62
data_type: string
name: parse_data
arguments: data_tag: D50
data_type: string
name: parse_data
arguments: data_tag: D43
data_type: string
name: parse_data
arguments: data_tag: D115
data_type: string
name: parse_data
arguments: data_tag: D203
data_type: string
name: parse_data
arguments: data_tag: D187
data_type: string
name: parse_data
arguments: data_tag: D148
data_type: string
name: parse_data
arguments: data_tag: D41
data_type: string
name: parse_data
arguments: data_tag: D78
data_type: string
name: parse_data
arguments: data_tag: D105
data_type: string
name: parse_data
arguments: data_tag: D65
data_type: string
name: parse_data
arguments: data_tag: D159
data_type: string
name: parse_data
arguments: data_tag: D98
data_type: string
name: parse_data
arguments: data_tag: D79
data_type: string
name: parse_data
arguments: data_tag: D14
data_type: string
name: parse_data
arguments: data_tag: D128
data_type: string
name: parse_data
arguments: data_tag: D91
data_type: string
name: parse_data
arguments: data_tag: D138
data_type: string
name: parse_data
arguments: data_tag: D174
data_type: string
name: parse_data
arguments: data_tag: D199
data_type: string

tool: D62: Provided parameter was out of the allowable range

tool: D50: Invalid operation or parameter

tool: D43: A memory allocation error occurred

tool: D115: File or device I/O failure

tool: D203: Operation timed out

tool: D187: No devices available

tool: D148: Operation not supported

tool: D41: Misaligned flash access

tool: D78: Invalid checksum

tool: D105: File not found

tool: D65: An FPGA update is required

tool: D159: A firmware update is required

tool: D98: Requested timestamp is in the past

tool: D79: Could not enqueue data into full queue

tool: D14: An FPGA operation reported a failure

tool: D128: Insufficient permissions for the requested operation

tool: D91: The operation would block, but has been requested to be non-blocking

tool: D138: Success

tool: D174: Unknown error code

tool: D199: An unexpected error occurred

assistant: ```c
const char *bladerf_strerror(int error) {
  switch (error) {
  case (-1):
    return "An unexpected error occurred";
  case (-2):
    return "Provided parameter was out of the allowable range";
  case (-3):
    return "Invalid operation or parameter";
  case (-4):
    return "A memory allocation error occurred";
  case (-5):
    return "File or device I/O failure";
  case (-6):
    return "Operation timed out";
  case (-7):
    return "No devices available";
  case (-8):
    return "Operation not supported";
  case (-9):
    return "Misaligned flash access";
  case (-10):
    return "Invalid checksum";
  case (-11):
    return "File not found";
  case (-12):
    return "An FPGA update is required";
  case (-13):
    return "A firmware update is required";
  case (-14):
    return "Requested timestamp is in the past";
  case (-15):
    return "Could not enqueue data into full queue";
  case (-16):
    return "An FPGA operation reported a failure";
  case (-17):
    return "Insufficient permissions for the requested operation";
  case (-18):
    return "The operation would block, but has been requested to be non-blocking";
  case 0:
    return "Success";
  default:
    return "Unknown error code";
  }
}
```