user: 请显示与下面列出的汇编代码相匹配的C语言实现:

```asm
<get_rtm_typestr>:
  endbr64
  add    $0xffffff80,%edi
  cmp    $0x10,%edi
  ja     L6
  lea    D168(%rip),%rdx
  movslq (%rdx,%rdi,4),%rax
  add    %rdx,%rax
  notrack jmp *%rax
  nopl   0x0(%rax)
  lea    D160(%rip),%rax
  ret
  lea    D34(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D118(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D106(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D175(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D13(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D184(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D137(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D120(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D166(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D128(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D59(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D60(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D145(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D159(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D132(%rip),%rax
  ret
  nopl   0x0(%rax,%rax,1)
  lea    D54(%rip),%rax
  ret
L6:
  lea    D76(%rip),%rax
  ret
```

tool_calls: name: unpack_data
arguments: label: D160
type_guessed: string
name: unpack_data
arguments: label: D34
type_guessed: string
name: unpack_data
arguments: label: D118
type_guessed: string
name: unpack_data
arguments: label: D106
type_guessed: string
name: unpack_data
arguments: label: D175
type_guessed: string
name: unpack_data
arguments: label: D13
type_guessed: string
name: unpack_data
arguments: label: D184
type_guessed: string
name: unpack_data
arguments: label: D137
type_guessed: string
name: unpack_data
arguments: label: D120
type_guessed: string
name: unpack_data
arguments: label: D166
type_guessed: string
name: unpack_data
arguments: label: D128
type_guessed: string
name: unpack_data
arguments: label: D59
type_guessed: string
name: unpack_data
arguments: label: D60
type_guessed: string
name: unpack_data
arguments: label: D145
type_guessed: string
name: unpack_data
arguments: label: D159
type_guessed: string
name: unpack_data
arguments: label: D132
type_guessed: string
name: unpack_data
arguments: label: D54
type_guessed: string
name: unpack_data
arguments: label: D76
type_guessed: string

tool: D160: RTM_GETADDR

tool: D34: RTM_GETLINK

tool: D118: RTM_GETADDRLABEL

tool: D106: RTM_GETANYCAST

tool: D175: RTM_GETMDB

tool: D13: RTM_GETNEIGHTBL

tool: D184: RTM_GETNEIGH

tool: D137: RTM_GETMULTICAST

tool: D120: RTM_GETDCB

tool: D166: RTM_GETACTION

tool: D128: RTM_GETTFILTER

tool: D59: RTM_GETTCLASS

tool: D60: RTM_GETSTATS

tool: D145: RTM_GETRULE

tool: D159: RTM_GETROUTE

tool: D132: RTM_GETQDISC

tool: D54: RTM_GETNSID

tool: D76: unspecified

assistant: ```c
const char *get_rtm_typestr(int type) {
  switch (type) {
  case RTM_GETLINK:
    return "RTM_GETLINK";
  case RTM_GETADDR:
    return "RTM_GETADDR";
  case RTM_GETROUTE:
    return "RTM_GETROUTE";
  case RTM_GETNEIGH:
    return "RTM_GETNEIGH";
  case RTM_GETRULE:
    return "RTM_GETRULE";
  case RTM_GETQDISC:
    return "RTM_GETQDISC";
  case RTM_GETTCLASS:
    return "RTM_GETTCLASS";
  case RTM_GETTFILTER:
    return "RTM_GETTFILTER";
  case RTM_GETACTION:
    return "RTM_GETACTION";
  case RTM_GETMULTICAST:
    return "RTM_GETMULTICAST";
  case RTM_GETANYCAST:
    return "RTM_GETANYCAST";
  case RTM_GETNEIGHTBL:
    return "RTM_GETNEIGHTBL";
  case RTM_GETADDRLABEL:
    return "RTM_GETADDRLABEL";
  case RTM_GETDCB:
    return "RTM_GETDCB";
  case RTM_GETMDB:
    return "RTM_GETMDB";
  case RTM_GETNSID:
    return "RTM_GETNSID";
  case RTM_GETSTATS:
    return "RTM_GETSTATS";
  default:
    return "unspecified";
  }
}
```