user: Demonstrate the C code that generates the assembly output below:

```asm
<obex_response_to_string>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  mov    %edi,-0x4(%rbp)
  mov    -0x4(%rbp),%eax
  sub    $0x10,%eax
  cmp    $0x51,%eax
  ja     L68
  mov    %eax,%eax
  lea    0x0(,%rax,4),%rdx
  lea    D87(%rip),%rax
  mov    (%rdx,%rax,1),%eax
  cltq
  lea    D87(%rip),%rdx
  add    %rdx,%rax
  notrack jmp *%rax
  lea    D140(%rip),%rax
  jmp    L86
  lea    D113(%rip),%rax
  jmp    L86
  lea    D183(%rip),%rax
  jmp    L86
  lea    D26(%rip),%rax
  jmp    L86
  lea    D179(%rip),%rax
  jmp    L86
  lea    D61(%rip),%rax
  jmp    L86
  lea    D136(%rip),%rax
  jmp    L86
  lea    D71(%rip),%rax
  jmp    L86
  lea    D1(%rip),%rax
  jmp    L86
  lea    D32(%rip),%rax
  jmp    L86
  lea    D192(%rip),%rax
  jmp    L86
  lea    D199(%rip),%rax
  jmp    L86
  lea    D154(%rip),%rax
  jmp    L86
  lea    D46(%rip),%rax
  jmp    L86
  lea    D8(%rip),%rax
  jmp    L86
  lea    D36(%rip),%rax
  jmp    L86
  lea    D44(%rip),%rax
  jmp    L86
L68:
  lea    D155(%rip),%rax
L86:
  pop    %rbp
  ret
```

tool_calls: name: unpack_data
arguments: tag: D140
data_type: string
name: unpack_data
arguments: tag: D113
data_type: string
name: unpack_data
arguments: tag: D183
data_type: string
name: unpack_data
arguments: tag: D26
data_type: string
name: unpack_data
arguments: tag: D179
data_type: string
name: unpack_data
arguments: tag: D61
data_type: string
name: unpack_data
arguments: tag: D136
data_type: string
name: unpack_data
arguments: tag: D71
data_type: string
name: unpack_data
arguments: tag: D1
data_type: string
name: unpack_data
arguments: tag: D32
data_type: string
name: unpack_data
arguments: tag: D192
data_type: string
name: unpack_data
arguments: tag: D199
data_type: string
name: unpack_data
arguments: tag: D154
data_type: string
name: unpack_data
arguments: tag: D46
data_type: string
name: unpack_data
arguments: tag: D8
data_type: string
name: unpack_data
arguments: tag: D36
data_type: string
name: unpack_data
arguments: tag: D44
data_type: string
name: unpack_data
arguments: tag: D155
data_type: string

tool: D140: Continue

tool: D113: Switching protocols

tool: D183: OK, Success

tool: D26: Created

tool: D179: Accepted

tool: D61: No Content

tool: D136: Bad Request

tool: D71: Unautorized

tool: D1: Payment required

tool: D32: Forbidden

tool: D192: Not found

tool: D199: Method not allowed

tool: D154: Conflict

tool: D46: Internal server error

tool: D8: Not implemented!

tool: D36: Database full

tool: D44: Database locked

tool: D155: Unknown response

assistant: ```c
char *obex_response_to_string(int rsp) {
  switch (rsp) {
  case 0x10:
    return "Continue";
  case 0x11:
    return "Switching protocols";
  case 0x20:
    return "OK, Success";
  case 0x21:
    return "Created";
  case 0x22:
    return "Accepted";
  case 0x24:
    return "No Content";
  case 0x40:
    return "Bad Request";
  case 0x41:
    return "Unautorized";
  case 0x42:
    return "Payment required";
  case 0x43:
    return "Forbidden";
  case 0x44:
    return "Not found";
  case 0x45:
    return "Method not allowed";
  case 0x49:
    return "Conflict";
  case 0x50:
    return "Internal server error";
  case 0x51:
    return "Not implemented!";
  case 0x60:
    return "Database full";
  case 0x61:
    return "Database locked";
  default:
    return "Unknown response";
  }
}
```