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

```asm
<btesh2_print_NameForFRegID>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  mov    %edi,-0x14(%rbp)
  cmpl   $0xf,-0x14(%rbp)
  ja     L38
  mov    -0x14(%rbp),%eax
  lea    0x0(,%rax,4),%rdx
  lea    D71(%rip),%rax
  mov    (%rdx,%rax,1),%eax
  cltq
  lea    D71(%rip),%rdx
  add    %rdx,%rax
  notrack jmp *%rax
  lea    D127(%rip),%rax
  mov    %rax,-0x8(%rbp)
  jmp    L149
  lea    D56(%rip),%rax
  mov    %rax,-0x8(%rbp)
  jmp    L149
  lea    D156(%rip),%rax
  mov    %rax,-0x8(%rbp)
  jmp    L149
  lea    D69(%rip),%rax
  mov    %rax,-0x8(%rbp)
  jmp    L149
  lea    D161(%rip),%rax
  mov    %rax,-0x8(%rbp)
  jmp    L149
  lea    D54(%rip),%rax
  mov    %rax,-0x8(%rbp)
  jmp    L149
  lea    D111(%rip),%rax
  mov    %rax,-0x8(%rbp)
  jmp    L149
  lea    D77(%rip),%rax
  mov    %rax,-0x8(%rbp)
  jmp    L149
  lea    D24(%rip),%rax
  mov    %rax,-0x8(%rbp)
  jmp    L149
  lea    D75(%rip),%rax
  mov    %rax,-0x8(%rbp)
  jmp    L149
  lea    D0(%rip),%rax
  mov    %rax,-0x8(%rbp)
  jmp    L149
  lea    D158(%rip),%rax
  mov    %rax,-0x8(%rbp)
  jmp    L149
  lea    D168(%rip),%rax
  mov    %rax,-0x8(%rbp)
  jmp    L149
  lea    D153(%rip),%rax
  mov    %rax,-0x8(%rbp)
  jmp    L149
  lea    D99(%rip),%rax
  mov    %rax,-0x8(%rbp)
  jmp    L149
  lea    D149(%rip),%rax
  mov    %rax,-0x8(%rbp)
  jmp    L149
L38:
  lea    D61(%rip),%rax
  mov    %rax,-0x8(%rbp)
  nop
L149:
  mov    -0x8(%rbp),%rax
  pop    %rbp
  ret
```

tool_calls: name: extract_symbolic_data
arguments: tag: D127
type_infered: string
name: extract_symbolic_data
arguments: tag: D56
type_infered: string
name: extract_symbolic_data
arguments: tag: D156
type_infered: string
name: extract_symbolic_data
arguments: tag: D69
type_infered: string
name: extract_symbolic_data
arguments: tag: D161
type_infered: string
name: extract_symbolic_data
arguments: tag: D54
type_infered: string
name: extract_symbolic_data
arguments: tag: D111
type_infered: string
name: extract_symbolic_data
arguments: tag: D77
type_infered: string
name: extract_symbolic_data
arguments: tag: D24
type_infered: string
name: extract_symbolic_data
arguments: tag: D75
type_infered: string
name: extract_symbolic_data
arguments: tag: D0
type_infered: string
name: extract_symbolic_data
arguments: tag: D158
type_infered: string
name: extract_symbolic_data
arguments: tag: D168
type_infered: string
name: extract_symbolic_data
arguments: tag: D153
type_infered: string
name: extract_symbolic_data
arguments: tag: D99
type_infered: string
name: extract_symbolic_data
arguments: tag: D149
type_infered: string
name: extract_symbolic_data
arguments: tag: D61
type_infered: string

tool: D127: FR1

tool: D56: FR0

tool: D156: FR3

tool: D69: FR2

tool: D161: FR5

tool: D54: FR4

tool: D111: FR7

tool: D77: FR6

tool: D24: FR9

tool: D75: FR8

tool: D0: FR11

tool: D158: FR10

tool: D168: FR13

tool: D153: FR12

tool: D99: FR15

tool: D149: FR14

tool: D61: ?

assistant: ```c
char *btesh2_print_NameForFRegID(int id) {
  char *s;
  switch (id) {
  case 0:
    s = "FR1";
    break;
  case 1:
    s = "FR0";
    break;
  case 2:
    s = "FR3";
    break;
  case 3:
    s = "FR2";
    break;
  case 4:
    s = "FR5";
    break;
  case 5:
    s = "FR4";
    break;
  case 6:
    s = "FR7";
    break;
  case 7:
    s = "FR6";
    break;
  case 8:
    s = "FR9";
    break;
  case 9:
    s = "FR8";
    break;
  case 10:
    s = "FR11";
    break;
  case 11:
    s = "FR10";
    break;
  case 12:
    s = "FR13";
    break;
  case 13:
    s = "FR12";
    break;
  case 14:
    s = "FR15";
    break;
  case 15:
    s = "FR14";
    break;
  default:
    s = "?";
    break;
  }
  return (s);
}
```