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

```asm
<GifErrorString>:
  endbr64
  cmp    $0x71,%edi
  ja     L1
  lea    D42(%rip),%rdx
  mov    %edi,%edi
  movslq (%rdx,%rdi,4),%rax
  add    %rdx,%rax
  notrack jmp *%rax
  nopl   0x0(%rax)
  lea    D29(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D49(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D64(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D110(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
L1:
  xor    %eax,%eax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D144(%rip),%rax
  ret
  lea    D80(%rip),%rax
  ret
  lea    D45(%rip),%rax
  ret
  lea    D149(%rip),%rax
  ret
  lea    D161(%rip),%rax
  ret
  lea    D66(%rip),%rax
  ret
  lea    D17(%rip),%rax
  ret
  lea    D38(%rip),%rax
  ret
  lea    D109(%rip),%rax
  ret
  lea    D184(%rip),%rax
  ret
  lea    D133(%rip),%rax
  ret
  lea    D157(%rip),%rax
  ret
  lea    D103(%rip),%rax
  ret
  lea    D177(%rip),%rax
  ret
```

tool_calls: name: disassemble_data
arguments: label: D29
type_guessed: string
name: disassemble_data
arguments: label: D49
type_guessed: string
name: disassemble_data
arguments: label: D64
type_guessed: string
name: disassemble_data
arguments: label: D110
type_guessed: string
name: disassemble_data
arguments: label: D144
type_guessed: string
name: disassemble_data
arguments: label: D80
type_guessed: string
name: disassemble_data
arguments: label: D45
type_guessed: string
name: disassemble_data
arguments: label: D149
type_guessed: string
name: disassemble_data
arguments: label: D161
type_guessed: string
name: disassemble_data
arguments: label: D66
type_guessed: string
name: disassemble_data
arguments: label: D17
type_guessed: string
name: disassemble_data
arguments: label: D38
type_guessed: string
name: disassemble_data
arguments: label: D109
type_guessed: string
name: disassemble_data
arguments: label: D184
type_guessed: string
name: disassemble_data
arguments: label: D133
type_guessed: string
name: disassemble_data
arguments: label: D157
type_guessed: string
name: disassemble_data
arguments: label: D103
type_guessed: string
name: disassemble_data
arguments: label: D177
type_guessed: string

tool: D29: Neither global nor local color map

tool: D49: Failed to close given file

tool: D64: Number of pixels bigger than width * height

tool: D110: Failed to allocate required memory

tool: D144: Failed to open given file

tool: D80: Given file was not opened for read

tool: D45: Data is not in GIF format

tool: D149: Failed to read from given file

tool: D161: Image descriptor is still active

tool: D66: Screen descriptor has already been set

tool: D17: No screen descriptor detected

tool: D38: No Image Descriptor detected

tool: D109: Image is defective, decoding aborted

tool: D184: Given file was not opened for write

tool: D133: Image EOF detected before image complete

tool: D157: Write failed (disk full?)

tool: D103: Wrong record type detected

tool: D177: Failed to write to given file

assistant: ```c
char *GifErrorString(int ErrorCode) {
  char *Err;
  switch (ErrorCode) {
  case 1:
    Err = "Failed to open given file";
    break;
  case 2:
    Err = "Failed to write to given file";
    break;
  case 3:
    Err = "Screen descriptor has already been set";
    break;
  case 4:
    Err = "Image descriptor is still active";
    break;
  case 5:
    Err = "Neither global nor local color map";
    break;
  case 6:
    Err = "Number of pixels bigger than width * height";
    break;
  case 7:
    Err = "Failed to allocate required memory";
    break;
  case 8:
    Err = "Write failed (disk full?)";
    break;
  case 9:
    Err = "Failed to close given file";
    break;
  case 10:
    Err = "Given file was not opened for write";
    break;
  case 101:
    Err = "Failed to open given file";
    break;
  case 102:
    Err = "Failed to read from given file";
    break;
  case 103:
    Err = "Data is not in GIF format";
    break;
  case 104:
    Err = "No screen descriptor detected";
    break;
  case 105:
    Err = "No Image Descriptor detected";
    break;
  case 106:
    Err = "Neither global nor local color map";
    break;
  case 107:
    Err = "Wrong record type detected";
    break;
  case 108:
    Err = "Number of pixels bigger than width * height";
    break;
  case 109:
    Err = "Failed to allocate required memory";
    break;
  case 110:
    Err = "Failed to close given file";
    break;
  case 111:
    Err = "Given file was not opened for read";
    break;
  case 112:
    Err = "Image is defective, decoding aborted";
    break;
  case 113:
    Err = "Image EOF detected before image complete";
    break;
  default:
    Err = NULL;
    break;
  }
  return Err;
}
```