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

```asm
<help_message>:
  endbr64
  push   %r15
  lea    D79(%rip),%rdi
  lea    D2(%rip),%r15
  push   %r14
  lea    D6(%rip),%r14
  push   %r13
  mov    $0x80200,%r13d
  push   %r12
  lea    D59(%rip),%r12
  push   %rbp
  push   %rbx
  xor    %ebx,%ebx
  lea    0x1(%rbx),%ebp
  sub    $0x8,%rsp
  call   <printf@plt>
  mov    %r12,%rdi
  call   <printf@plt>
  cmp    $0x1d,%ebx
  je     L29
  nopl   0x0(%rax,%rax,1)
L33:
  mov    %r12,%rdi
  call   <printf@plt>
  bt     %rbx,%r13
  jb     L32
  mov    %ebp,%ebx
L7:
  lea    0x1(%rbx),%ebp
  cmp    $0x1d,%ebx
  jne    L33
L29:
  lea    D39(%rip),%rdi
  call   <printf@plt>
  lea    D60(%rip),%rdi
  call   <printf@plt>
  lea    D46(%rip),%rdi
  call   <printf@plt>
  lea    D154(%rip),%rdi
  call   <printf@plt>
  lea    D169(%rip),%rdi
  call   <printf@plt>
  lea    D117(%rip),%rdi
  call   <printf@plt>
  lea    D80(%rip),%rdi
  call   <printf@plt>
  lea    D97(%rip),%rdi
  call   <printf@plt>
  lea    D92(%rip),%rdi
  call   <printf@plt>
  lea    D113(%rip),%rdi
  call   <printf@plt>
  lea    D178(%rip),%rdi
  call   <printf@plt>
  lea    D160(%rip),%rdi
  call   <printf@plt>
  lea    D75(%rip),%rdi
  call   <printf@plt>
  lea    D135(%rip),%rdi
  call   <printf@plt>
  add    $0x8,%rsp
  lea    D145(%rip),%rdi
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  jmp    1050 <printf@plt>
  xchg   %ax,%ax
L32:
  mov    %r15,%rdi
  mov    %ebp,%ebx
  call   <printf@plt>
  mov    %r14,%rdi
  call   <printf@plt>
  jmp    L7
```

tool_calls: name: extract_symbolic_data
arguments: label: D79
type_infered: string
name: extract_symbolic_data
arguments: label: D2
type_infered: string
name: extract_symbolic_data
arguments: label: D6
type_infered: string
name: extract_symbolic_data
arguments: label: D59
type_infered: string
name: extract_symbolic_data
arguments: label: D39
type_infered: string
name: extract_symbolic_data
arguments: label: D60
type_infered: string
name: extract_symbolic_data
arguments: label: D46
type_infered: string
name: extract_symbolic_data
arguments: label: D154
type_infered: string
name: extract_symbolic_data
arguments: label: D169
type_infered: string
name: extract_symbolic_data
arguments: label: D117
type_infered: string
name: extract_symbolic_data
arguments: label: D80
type_infered: string
name: extract_symbolic_data
arguments: label: D97
type_infered: string
name: extract_symbolic_data
arguments: label: D92
type_infered: string
name: extract_symbolic_data
arguments: label: D113
type_infered: string
name: extract_symbolic_data
arguments: label: D178
type_infered: string
name: extract_symbolic_data
arguments: label: D160
type_infered: string
name: extract_symbolic_data
arguments: label: D75
type_infered: string
name: extract_symbolic_data
arguments: label: D135
type_infered: string
name: extract_symbolic_data
arguments: label: D145
type_infered: string

tool: D79: 
Stuck in a pickle? Give us a few minutes, a representative will be with you shortly!


tool: D2:            

tool: D6: 

tool: D59: .

tool: D39: 

JK ain't nobody got time for dat!


tool: D60: 
Here is a list of your options:


tool: D46: 	'a' - change the conditional code (case sensitive)


tool: D154: 	'c' - *change the value of a memory location


tool: D169: 	'd' - dumps out CPU


tool: D117: 	'f' - change running flag to 1


tool: D80: 	'h' or '?' - help menu (seems kinda redundant at this point)


tool: D97: 	'p' - *change the PC


tool: D92: 	'q' - quits the program


tool: D113: 	'r' - *change the value of a register


tool: D178: 	's' - *dumps a specific section of memory


tool: D160: 	an integer > 0 - executes N instruction cycles (don't get too crazy with this one!)


tool: D75: 	return - executes one instruction cycle


tool: D135: 		*(*YOU MUST ENTER A 4-DIGIT HEX VALUE OR ELSE!)


tool: D145: 			*this assumption was approved by Dr. Jim Sasaki


assistant: ```c
void help_message(void) {
  printf("\nStuck in a pickle? Give us a few minutes, a representative will be with you shortly!\n");
  for (int i = 0; i < 30; i++) {
    printf(".");
    int j = 0;
    while (j < 1e7 * 2) {
      j++;
    }
    if (i == 10 || i == 20) {
      printf("\r           ");
      printf("\r");
    }
  }
  printf("\n\nJK ain't nobody got time for dat!\n");
  printf("\nHere is a list of your options:\n");
  printf("\t'a' - change the conditional code (case sensitive)\n");
  printf("\t'c' - *change the value of a memory location\n");
  printf("\t'd' - dumps out CPU\n");
  printf("\t'f' - change running flag to 1\n");
  printf("\t'h' or '?' - help menu (seems kinda redundant at this point)\n");
  printf("\t'p' - *change the PC\n");
  printf("\t'q' - quits the program\n");
  printf("\t'r' - *change the value of a register\n");
  printf("\t's' - *dumps a specific section of memory\n");
  printf("\tan integer > 0 - executes N instruction cycles (don't get too crazy with this one!)\n");
  printf("\treturn - executes one instruction cycle\n");
  printf("\t\t*(*YOU MUST ENTER A 4-DIGIT HEX VALUE OR ELSE!)\n");
  printf("\t\t\t*this assumption was approved by Dr. Jim Sasaki\n");
}
```