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

```asm
<sputtype>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x10,%rsp
  mov    %rdi,-0x8(%rbp)
  mov    %esi,-0xc(%rbp)
  cmpl   $0x12d,-0xc(%rbp)
  je     L103
  cmpl   $0x12d,-0xc(%rbp)
  jg     L178
  cmpl   $0x116,-0xc(%rbp)
  je     L149
  cmpl   $0x116,-0xc(%rbp)
  jg     L178
  cmpl   $0x113,-0xc(%rbp)
  je     L194
  cmpl   $0x113,-0xc(%rbp)
  jg     L178
  cmpl   $0x80,-0xc(%rbp)
  je     L228
  cmpl   $0x80,-0xc(%rbp)
  jg     L178
  cmpl   $0x20,-0xc(%rbp)
  jg     L145
  cmpl   $0x0,-0xc(%rbp)
  jle    L178
  cmpl   $0x20,-0xc(%rbp)
  ja     L178
  mov    -0xc(%rbp),%eax
  lea    0x0(,%rax,4),%rdx
  lea    D89(%rip),%rax
  mov    (%rdx,%rax,1),%eax
  cltq
  lea    D89(%rip),%rdx
  add    %rdx,%rax
  notrack jmp *%rax
L145:
  cmpl   $0x40,-0xc(%rbp)
  je     L155
  jmp    L178
  mov    -0x8(%rbp),%rax
  lea    D39(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcpy@plt>
  jmp    L171
  mov    -0x8(%rbp),%rax
  lea    D103(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcpy@plt>
  jmp    L171
  mov    -0x8(%rbp),%rax
  lea    D76(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcpy@plt>
  jmp    L171
L155:
  mov    -0x8(%rbp),%rax
  lea    D53(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcpy@plt>
  jmp    L171
  mov    -0x8(%rbp),%rax
  lea    D22(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcpy@plt>
  jmp    L171
  mov    -0x8(%rbp),%rax
  lea    D43(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcpy@plt>
  jmp    L171
L194:
  mov    -0x8(%rbp),%rax
  lea    D15(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcpy@plt>
  jmp    L171
L228:
  mov    -0x8(%rbp),%rax
  lea    D38(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcpy@plt>
  jmp    L171
L103:
  mov    -0x8(%rbp),%rax
  lea    D115(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcpy@plt>
  jmp    L171
L149:
  mov    -0x8(%rbp),%rax
  lea    D98(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcpy@plt>
  mov    $0x0,%eax
  jmp    L55
L178:
  mov    -0x8(%rbp),%rax
  lea    D9(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcpy@plt>
  mov    $0x0,%eax
  jmp    L55
L171:
  mov    $0x1,%eax
L55:
  leave
  ret
```

tool_calls: name: disassemble_data
arguments: label: D39
type_guessed: string
name: disassemble_data
arguments: label: D103
type_guessed: string
name: disassemble_data
arguments: label: D76
type_guessed: string
name: disassemble_data
arguments: label: D53
type_guessed: string
name: disassemble_data
arguments: label: D22
type_guessed: string
name: disassemble_data
arguments: label: D43
type_guessed: string
name: disassemble_data
arguments: label: D15
type_guessed: string
name: disassemble_data
arguments: label: D38
type_guessed: string
name: disassemble_data
arguments: label: D115
type_guessed: string
name: disassemble_data
arguments: label: D98
type_guessed: string
name: disassemble_data
arguments: label: D9
type_guessed: string

tool: D39: unsigned 

tool: D103: bit   

tool: D76: byte  

tool: D53: chan  

tool: D22: short 

tool: D43: int   

tool: D15: mtype 

tool: D38: struct

tool: D115: proctype

tool: D98: label 

tool: D9: value 

assistant: ```c
int sputtype(char *foo, int m) {
  switch (m) {
  case 5:
    strcpy(foo, "unsigned ");
    break;
  case 1:
    strcpy(foo, "bit   ");
    break;
  case 8:
    strcpy(foo, "byte  ");
    break;
  case 64:
    strcpy(foo, "chan  ");
    break;
  case 16:
    strcpy(foo, "short ");
    break;
  case 32:
    strcpy(foo, "int   ");
    break;
  case 275:
    strcpy(foo, "mtype ");
    break;
  case 128:
    strcpy(foo, "struct");
    break;
  case 301:
    strcpy(foo, "proctype");
    break;
  case 278:
    strcpy(foo, "label ");
    return 0;
  default:
    strcpy(foo, "value ");
    return 0;
  }
  return 1;
}
```