user: 请从给定的汇编指令推导出C源代码：

```asm
<chabbrev>:
  endbr64
  cmp    $0x7f,%edi
  ja     L6
  mov    %edi,%edi
  lea    D312(%rip),%rdx
  movslq (%rdx,%rdi,4),%rax
  add    %rdx,%rax
  notrack jmp *%rax
  lea    D177(%rip),%rax
  ret
  lea    D146(%rip),%rax
  ret
  lea    D320(%rip),%rax
  ret
  lea    D198(%rip),%rax
  ret
  lea    D114(%rip),%rax
  ret
  lea    D343(%rip),%rax
  ret
  lea    D215(%rip),%rax
  ret
  lea    D272(%rip),%rax
  ret
  lea    D131(%rip),%rax
  ret
  lea    D243(%rip),%rax
  ret
  lea    D315(%rip),%rax
  ret
  lea    D184(%rip),%rax
  ret
  lea    D104(%rip),%rax
  ret
  lea    D31(%rip),%rax
  ret
  lea    D60(%rip),%rax
  ret
  lea    D223(%rip),%rax
  ret
  lea    D299(%rip),%rax
  ret
  lea    D238(%rip),%rax
  ret
  lea    D8(%rip),%rax
  ret
  lea    D152(%rip),%rax
  ret
  lea    D194(%rip),%rax
  ret
  lea    D336(%rip),%rax
  ret
  lea    D216(%rip),%rax
  ret
  lea    D11(%rip),%rax
  ret
  lea    D283(%rip),%rax
  ret
  lea    D3(%rip),%rax
  ret
  lea    D292(%rip),%rax
  ret
  lea    D202(%rip),%rax
  ret
  lea    D34(%rip),%rax
  ret
  lea    D228(%rip),%rax
  ret
  lea    D86(%rip),%rax
  ret
  lea    D143(%rip),%rax
  ret
L6:
  lea    D195(%rip),%rax
  ret
  lea    D341(%rip),%rax
  ret
```

tool_calls: name: parse_data
arguments: data_label: D177
data_type: string
name: parse_data
arguments: data_label: D146
data_type: string
name: parse_data
arguments: data_label: D320
data_type: string
name: parse_data
arguments: data_label: D198
data_type: string
name: parse_data
arguments: data_label: D114
data_type: string
name: parse_data
arguments: data_label: D343
data_type: string
name: parse_data
arguments: data_label: D215
data_type: string
name: parse_data
arguments: data_label: D272
data_type: string
name: parse_data
arguments: data_label: D131
data_type: string
name: parse_data
arguments: data_label: D243
data_type: string
name: parse_data
arguments: data_label: D315
data_type: string
name: parse_data
arguments: data_label: D184
data_type: string
name: parse_data
arguments: data_label: D104
data_type: string
name: parse_data
arguments: data_label: D31
data_type: string
name: parse_data
arguments: data_label: D60
data_type: string
name: parse_data
arguments: data_label: D223
data_type: string
name: parse_data
arguments: data_label: D299
data_type: string
name: parse_data
arguments: data_label: D238
data_type: string
name: parse_data
arguments: data_label: D8
data_type: string
name: parse_data
arguments: data_label: D152
data_type: string
name: parse_data
arguments: data_label: D194
data_type: string
name: parse_data
arguments: data_label: D336
data_type: string
name: parse_data
arguments: data_label: D216
data_type: string
name: parse_data
arguments: data_label: D11
data_type: string
name: parse_data
arguments: data_label: D283
data_type: string
name: parse_data
arguments: data_label: D3
data_type: string
name: parse_data
arguments: data_label: D292
data_type: string
name: parse_data
arguments: data_label: D202
data_type: string
name: parse_data
arguments: data_label: D34
data_type: string
name: parse_data
arguments: data_label: D228
data_type: string
name: parse_data
arguments: data_label: D86
data_type: string
name: parse_data
arguments: data_label: D143
data_type: string
name: parse_data
arguments: data_label: D195
data_type: string
name: parse_data
arguments: data_label: D341
data_type: string

tool: D177: SOH

tool: D146: STX

tool: D320: ETX

tool: D198: EOT

tool: D114: ENQ

tool: D343: ACK

tool: D215: BEL

tool: D272: BS

tool: D131: HT

tool: D243: LF

tool: D315: VT

tool: D184: FF

tool: D104: CR

tool: D31: SO

tool: D60: SI

tool: D223: DLE

tool: D299: DC1

tool: D238: DC2

tool: D8: DC3

tool: D152: DC4

tool: D194: NAK

tool: D336: SYN

tool: D216: ETB

tool: D11: CAN

tool: D283: EM

tool: D3: SUB

tool: D292: ESC

tool: D202: FS

tool: D34: GS

tool: D228: RS

tool: D86: US

tool: D143: DEL

tool: 

tool: D341: NUL

assistant: ```c
char *chabbrev(ch)
int ch;
{
  switch (ch) {
  case 0:
    return "NUL";
  case 1:
    return "SOH";
  case 2:
    return "STX";
  case 3:
    return "ETX";
  case 4:
    return "EOT";
  case 5:
    return "ENQ";
  case 6:
    return "ACK";
  case 7:
    return "BEL";
  case 8:
    return "BS";
  case 9:
    return "HT";
  case 10:
    return "LF";
  case 11:
    return "VT";
  case 12:
    return "FF";
  case 13:
    return "CR";
  case 14:
    return "SO";
  case 15:
    return "SI";
  case 16:
    return "DLE";
  case 17:
    return "DC1";
  case 18:
    return "DC2";
  case 19:
    return "DC3";
  case 20:
    return "DC4";
  case 21:
    return "NAK";
  case 22:
    return "SYN";
  case 23:
    return "ETB";
  case 24:
    return "CAN";
  case 25:
    return "EM";
  case 26:
    return "SUB";
  case 27:
    return "ESC";
  case 28:
    return "FS";
  case 29:
    return "GS";
  case 30:
    return "RS";
  case 31:
    return "US";
  case 127:
    return "DEL";
  default:
    return "";
  }
}
```