user: 这段汇编代码用C语言表示是什么样的?

```asm
<showMenu>:
  endbr64
  sub    $0x8,%rsp
  lea    D137(%rip),%rdi
  call   <system@plt>
  lea    D112(%rip),%rdi
  call   <printf@plt>
  lea    D58(%rip),%rdi
  call   <printf@plt>
  lea    D100(%rip),%rdi
  call   <printf@plt>
  lea    D7(%rip),%rdi
  call   <printf@plt>
  lea    D5(%rip),%rdi
  call   <printf@plt>
  lea    D80(%rip),%rdi
  call   <printf@plt>
  lea    D129(%rip),%rdi
  call   <printf@plt>
  lea    D96(%rip),%rdi
  call   <printf@plt>
  lea    D78(%rip),%rdi
  call   <printf@plt>
  lea    D8(%rip),%rdi
  call   <printf@plt>
  lea    D126(%rip),%rdi
  call   <printf@plt>
  lea    D131(%rip),%rdi
  call   <printf@plt>
  xor    %eax,%eax
  call   <getch@plt>
  sub    $0x31,%eax
  cmp    $0x4,%eax
  ja     L7
  lea    D87(%rip),%rdx
  movslq (%rdx,%rax,4),%rax
  add    %rdx,%rax
  notrack jmp *%rax
  nopl   0x0(%rax)
  xor    %eax,%eax
  add    $0x8,%rsp
  jmp    10e0 <doInOrder@plt>
  nopl   0x0(%rax,%rax,1)
  xor    %eax,%eax
  add    $0x8,%rsp
  jmp    1110 <doShowHeight@plt>
  nopl   0x0(%rax,%rax,1)
  xor    %eax,%eax
  add    $0x8,%rsp
  jmp    10d0 <doInsert@plt>
  nopl   0x0(%rax,%rax,1)
  xor    %eax,%eax
  add    $0x8,%rsp
  jmp    1120 <doDelete@plt>
  nopl   0x0(%rax,%rax,1)
  xor    %eax,%eax
  add    $0x8,%rsp
  jmp    1130 <doSearch@plt>
L7:
  xor    %edi,%edi
  add    $0x8,%rsp
  jmp    1150 <exit@plt>
```

tool_calls: name: read_data
arguments: data_label: D137
type_guessed: string
name: read_data
arguments: data_label: D112
type_guessed: string
name: read_data
arguments: data_label: D58
type_guessed: string
name: read_data
arguments: data_label: D100
type_guessed: string
name: read_data
arguments: data_label: D7
type_guessed: string
name: read_data
arguments: data_label: D5
type_guessed: string
name: read_data
arguments: data_label: D80
type_guessed: string
name: read_data
arguments: data_label: D129
type_guessed: string
name: read_data
arguments: data_label: D96
type_guessed: string
name: read_data
arguments: data_label: D78
type_guessed: string
name: read_data
arguments: data_label: D8
type_guessed: string
name: read_data
arguments: data_label: D126
type_guessed: string
name: read_data
arguments: data_label: D131
type_guessed: string

tool: D137: cls

tool: D112:      ___   ___      _____ ___ ___ ___       


tool: D58:      /_\ \ / / |    |_   _| _ \ __| __|  


tool: D100:     / _ \ - /| |__    | | |   / _|| _|     


tool: D7:    /_/ \_\_/ |____|   |_| |_|_\___|___|  


tool: D5:                      By: Raven G. Duran     


tool: D80: 



tool: D129: (1) Insert a Node


tool: D96: (2) Delete a Node


tool: D78: (3) Search a Node


tool: D8: (4) Print In Order


tool: D126: (5) Show Heights of Root


tool: D131: (6) Exit


assistant: ```c
void showMenu() {
  system("cls");
  printf("     ___   ___      _____ ___ ___ ___       \n");
  printf("     /_\\ \\ / / |    |_   _| _ \\ __| __|  \n");
  printf("    / _ \\ - /| |__    | | |   / _|| _|     \n");
  printf("   /_/ \\_\\_/ |____|   |_| |_|_\\___|___|  \n");
  printf("                     By: Raven G. Duran     \n");
  printf("\n\n");
  printf("(1) Insert a Node\n");
  printf("(2) Delete a Node\n");
  printf("(3) Search a Node\n");
  printf("(4) Print In Order\n");
  printf("(5) Show Heights of Root\n");
  printf("(6) Exit\n");
  switch (getch()) {
  case '1':
    doInsert();
    break;
  case '2':
    doDelete();
    break;
  case '3':
    doSearch();
    break;
  case '4':
    doInOrder();
    break;
  case '5':
    doShowHeight();
    break;
  default:
    exit(0);
  }
}
```