user: 请将这段汇编代码片段转换成等效的C代码:

```asm
<encoding_hash>:
  endbr64
  sub    $0x8,%rsp
  mov    %rsi,%rcx
  cmp    $0x21,%dil
  ja     L92
  movzbl %dil,%eax
  lea    D194(%rip),%rdx
  movslq (%rdx,%rax,4),%rax
  add    %rdx,%rax
  notrack jmp *%rax
  lea    D134(%rip),%rsi
  mov    %rcx,%rdi
  call   <strcpy@plt>
L2:
  add    $0x8,%rsp
  ret
  lea    D15(%rip),%rsi
  mov    %rcx,%rdi
  call   <strcpy@plt>
  jmp    L2
  lea    D125(%rip),%rsi
  mov    %rcx,%rdi
  call   <strcpy@plt>
  jmp    L2
  lea    D186(%rip),%rsi
  mov    %rcx,%rdi
  call   <strcpy@plt>
  jmp    L2
  lea    D90(%rip),%rsi
  mov    %rcx,%rdi
  call   <strcpy@plt>
  jmp    L2
  lea    D137(%rip),%rsi
  mov    %rcx,%rdi
  call   <strcpy@plt>
  jmp    L2
  lea    D173(%rip),%rsi
  mov    %rcx,%rdi
  call   <strcpy@plt>
  jmp    L2
  lea    D48(%rip),%rsi
  mov    %rcx,%rdi
  call   <strcpy@plt>
  jmp    L2
  lea    D0(%rip),%rsi
  mov    %rcx,%rdi
  call   <strcpy@plt>
  jmp    L2
  lea    D36(%rip),%rsi
  mov    %rcx,%rdi
  call   <strcpy@plt>
  jmp    L2
  lea    D75(%rip),%rsi
  mov    %rcx,%rdi
  call   <strcpy@plt>
  jmp    L2
  lea    D183(%rip),%rsi
  mov    %rcx,%rdi
  call   <strcpy@plt>
  jmp    L2
  lea    D182(%rip),%rsi
  mov    %rcx,%rdi
  call   <strcpy@plt>
  jmp    L2
  lea    D31(%rip),%rsi
  mov    %rcx,%rdi
  call   <strcpy@plt>
  jmp    L2
  lea    D20(%rip),%rsi
  mov    %rcx,%rdi
  call   <strcpy@plt>
  jmp    L2
  lea    D12(%rip),%rsi
  mov    %rcx,%rdi
  call   <strcpy@plt>
  jmp    L2
  lea    D9(%rip),%rsi
  mov    %rcx,%rdi
  call   <strcpy@plt>
  jmp    L2
  lea    D153(%rip),%rsi
  mov    %rcx,%rdi
  call   <strcpy@plt>
  jmp    L2
  lea    D219(%rip),%rsi
  mov    %rcx,%rdi
  call   <strcpy@plt>
  jmp    L2
  lea    D97(%rip),%rsi
  mov    %rcx,%rdi
  call   <strcpy@plt>
  jmp    L2
L92:
  movsbl %dil,%edx
  lea    D156(%rip),%rsi
  mov    %rcx,%rdi
  call   <sprintf@plt>
  jmp    L2
```

tool_calls: name: disassemble_data
arguments: data_label: D134
type: string
name: disassemble_data
arguments: data_label: D15
type: string
name: disassemble_data
arguments: data_label: D125
type: string
name: disassemble_data
arguments: data_label: D186
type: string
name: disassemble_data
arguments: data_label: D90
type: string
name: disassemble_data
arguments: data_label: D137
type: string
name: disassemble_data
arguments: data_label: D173
type: string
name: disassemble_data
arguments: data_label: D48
type: string
name: disassemble_data
arguments: data_label: D0
type: string
name: disassemble_data
arguments: data_label: D36
type: string
name: disassemble_data
arguments: data_label: D75
type: string
name: disassemble_data
arguments: data_label: D183
type: string
name: disassemble_data
arguments: data_label: D182
type: string
name: disassemble_data
arguments: data_label: D31
type: string
name: disassemble_data
arguments: data_label: D20
type: string
name: disassemble_data
arguments: data_label: D12
type: string
name: disassemble_data
arguments: data_label: D9
type: string
name: disassemble_data
arguments: data_label: D153
type: string
name: disassemble_data
arguments: data_label: D219
type: string
name: disassemble_data
arguments: data_label: D97
type: string
name: disassemble_data
arguments: data_label: D156
type: string

tool: D134: ASCII text (val:0)

tool: D15: 16 bit integers (val:1)

tool: D125: 24 bit integers (val:2)

tool: D186: 32 bit integers (val:3)

tool: D90: IEEE floating point (val:4)

tool: D137: IEEE double precision float (val:5)

tool: D173: STEIM 1 Compression (val:10)

tool: D48: STEIM 2 Compression (val:11)

tool: D0: GEOSCOPE Muxed 24 bit int (val:12)

tool: D36: GEOSCOPE Muxed 16/3 bit gain/exp (val:13)

tool: D75: GEOSCOPE Muxed 16/4 bit gain/exp (val:14)

tool: D183: US National Network compression (val:15)

tool: D182: CDSN 16 bit gain ranged (val:16)

tool: D31: Graefenberg 16 bit gain ranged (val:17)

tool: D20: IPG - Strasbourg 16 bit gain (val:18)

tool: D12: STEIM 3 Compression (val:19)

tool: D9: SRO Format (val:30)

tool: D153: HGLP Format (val:31)

tool: D219: DWWSSN Gain Ranged Format (val:32)

tool: D97: RSTN 16 bit gain ranged (val:33)

tool: D156: Unknown format code: (%d)

assistant: ```c
void encoding_hash(char enc, char *encstr) {
  switch (enc) {
  case 0:
    strcpy(encstr, "ASCII text (val:0)");
    break;
  case 1:
    strcpy(encstr, "16 bit integers (val:1)");
    break;
  case 2:
    strcpy(encstr, "24 bit integers (val:2)");
    break;
  case 3:
    strcpy(encstr, "32 bit integers (val:3)");
    break;
  case 4:
    strcpy(encstr, "IEEE floating point (val:4)");
    break;
  case 5:
    strcpy(encstr, "IEEE double precision float (val:5)");
    break;
  case 10:
    strcpy(encstr, "STEIM 1 Compression (val:10)");
    break;
  case 11:
    strcpy(encstr, "STEIM 2 Compression (val:11)");
    break;
  case 12:
    strcpy(encstr, "GEOSCOPE Muxed 24 bit int (val:12)");
    break;
  case 13:
    strcpy(encstr, "GEOSCOPE Muxed 16/3 bit gain/exp (val:13)");
    break;
  case 14:
    strcpy(encstr, "GEOSCOPE Muxed 16/4 bit gain/exp (val:14)");
    break;
  case 15:
    strcpy(encstr, "US National Network compression (val:15)");
    break;
  case 16:
    strcpy(encstr, "CDSN 16 bit gain ranged (val:16)");
    break;
  case 17:
    strcpy(encstr, "Graefenberg 16 bit gain ranged (val:17)");
    break;
  case 18:
    strcpy(encstr, "IPG - Strasbourg 16 bit gain (val:18)");
    break;
  case 19:
    strcpy(encstr, "STEIM 3 Compression (val:19)");
    break;
  case 30:
    strcpy(encstr, "SRO Format (val:30)");
    break;
  case 31:
    strcpy(encstr, "HGLP Format (val:31)");
    break;
  case 32:
    strcpy(encstr, "DWWSSN Gain Ranged Format (val:32)");
    break;
  case 33:
    strcpy(encstr, "RSTN 16 bit gain ranged (val:33)");
    break;
  default:
    sprintf(encstr, "Unknown format code: (%d)", enc);
  }
}
```