user: 请将以下的汇编代码转换成C语言代码:

```asm
<bladerf_strerror>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  mov    %edi,-0x4(%rbp)
  mov    -0x4(%rbp),%eax
  add    $0x12,%eax
  cmp    $0x12,%eax
  ja     L62
  mov    %eax,%eax
  lea    0x0(,%rax,4),%rdx
  lea    D16(%rip),%rax
  mov    (%rdx,%rax,1),%eax
  cltq
  lea    D16(%rip),%rdx
  add    %rdx,%rax
  notrack jmp *%rax
  lea    D39(%rip),%rax
  jmp    L152
  lea    D8(%rip),%rax
  jmp    L152
  lea    D7(%rip),%rax
  jmp    L152
  lea    D74(%rip),%rax
  jmp    L152
  lea    D91(%rip),%rax
  jmp    L152
  lea    D166(%rip),%rax
  jmp    L152
  lea    D217(%rip),%rax
  jmp    L152
  lea    D79(%rip),%rax
  jmp    L152
  lea    D43(%rip),%rax
  jmp    L152
  lea    D95(%rip),%rax
  jmp    L152
  lea    D19(%rip),%rax
  jmp    L152
  lea    D110(%rip),%rax
  jmp    L152
  lea    D15(%rip),%rax
  jmp    L152
  lea    D172(%rip),%rax
  jmp    L152
  lea    D177(%rip),%rax
  jmp    L152
  lea    D55(%rip),%rax
  jmp    L152
  lea    D11(%rip),%rax
  jmp    L152
  lea    D49(%rip),%rax
  jmp    L152
  lea    D114(%rip),%rax
  jmp    L152
L62:
  lea    D135(%rip),%rax
L152:
  pop    %rbp
  ret
```

tool_calls: name: parse_data
arguments: label: D39
data_type: string
name: parse_data
arguments: label: D8
data_type: string
name: parse_data
arguments: label: D7
data_type: string
name: parse_data
arguments: label: D74
data_type: string
name: parse_data
arguments: label: D91
data_type: string
name: parse_data
arguments: label: D166
data_type: string
name: parse_data
arguments: label: D217
data_type: string
name: parse_data
arguments: label: D79
data_type: string
name: parse_data
arguments: label: D43
data_type: string
name: parse_data
arguments: label: D95
data_type: string
name: parse_data
arguments: label: D19
data_type: string
name: parse_data
arguments: label: D110
data_type: string
name: parse_data
arguments: label: D15
data_type: string
name: parse_data
arguments: label: D172
data_type: string
name: parse_data
arguments: label: D177
data_type: string
name: parse_data
arguments: label: D55
data_type: string
name: parse_data
arguments: label: D11
data_type: string
name: parse_data
arguments: label: D49
data_type: string
name: parse_data
arguments: label: D114
data_type: string
name: parse_data
arguments: label: D135
data_type: string

tool: D39: An unexpected error occurred

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

tool: D7: Invalid operation or parameter

tool: D74: A memory allocation error occurred

tool: D91: File or device I/O failure

tool: D166: Operation timed out

tool: D217: No devices available

tool: D79: Operation not supported

tool: D43: Misaligned flash access

tool: D95: Invalid checksum

tool: D19: File not found

tool: D110: An FPGA update is required

tool: D15: A firmware update is required

tool: D172: Requested timestamp is in the past

tool: D177: Could not enqueue data into full queue

tool: D55: An FPGA operation reported a failure

tool: D11: Insufficient permissions for the requested operation

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

tool: D114: Success

tool: D135: Unknown error code

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";
  }
}
```