user: 请将这段汇编代码片段转换成等效的C代码：

```asm
<main>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x10,%rsp
  movl   $0x1,-0xc(%rbp)
  mov    $0x100,%edi
  call   <malloc@plt>
  mov    %rax,-0x8(%rbp)
  lea    D144(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  jmp    L86
L94:
  lea    D218(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  mov    -0x8(%rbp),%rax
  mov    %rax,%rsi
  lea    D237(%rip),%rax
  mov    %rax,%rdi
  call   <scanf@plt>
  mov    -0x8(%rbp),%rax
  lea    D128(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  je     L1
  lea    D106(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  movl   $0x0,-0xc(%rbp)
L1:
  mov    -0x8(%rbp),%rax
  lea    D172(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  je     L52
  lea    D207(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
L52:
  mov    -0x8(%rbp),%rax
  lea    D201(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  je     L103
  lea    D69(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D8(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D167(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D51(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D70(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D65(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D209(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  lea    D197(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
L103:
  mov    -0x8(%rbp),%rax
  lea    D63(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  je     L2
  lea    D96(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  mov    $0x0,%eax
  call   <es1@plt>
L2:
  mov    -0x8(%rbp),%rax
  lea    D277(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  je     L75
  lea    D71(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  mov    $0x0,%eax
  call   <es2@plt>
L75:
  mov    -0x8(%rbp),%rax
  lea    D77(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  je     L79
  lea    D253(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  mov    $0x0,%eax
  call   <es3@plt>
L79:
  mov    -0x8(%rbp),%rax
  lea    D161(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  je     L9
  lea    D160(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  mov    $0x0,%eax
  call   <es4@plt>
L9:
  mov    -0x8(%rbp),%rax
  lea    D147(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  je     L72
  lea    D146(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  mov    $0x1,%edi
  call   <es5@plt>
L72:
  mov    -0x8(%rbp),%rax
  lea    D212(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  je     L14
  lea    D189(%rip),%rax
  mov    %rax,%rdi
  call   <printf@plt>
  mov    $0x0,%eax
  call   <es6@plt>
L14:
  mov    -0x8(%rbp),%rax
  lea    D100(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  je     L86
  mov    $0x0,%eax
  call   <es_random@plt>
L86:
  cmpl   $0x0,-0xc(%rbp)
  jne    L94
  mov    $0x0,%eax
  leave
  ret
```

tool_calls: name: read_data
arguments: label: D144
type: string
name: read_data
arguments: label: D218
type: string
name: read_data
arguments: label: D237
type: string
name: read_data
arguments: label: D128
type: string
name: read_data
arguments: label: D106
type: string
name: read_data
arguments: label: D172
type: string
name: read_data
arguments: label: D207
type: string
name: read_data
arguments: label: D201
type: string
name: read_data
arguments: label: D69
type: string
name: read_data
arguments: label: D8
type: string
name: read_data
arguments: label: D167
type: string
name: read_data
arguments: label: D51
type: string
name: read_data
arguments: label: D70
type: string
name: read_data
arguments: label: D65
type: string
name: read_data
arguments: label: D209
type: string
name: read_data
arguments: label: D197
type: string
name: read_data
arguments: label: D63
type: string
name: read_data
arguments: label: D96
type: string
name: read_data
arguments: label: D277
type: string
name: read_data
arguments: label: D71
type: string
name: read_data
arguments: label: D77
type: string
name: read_data
arguments: label: D253
type: string
name: read_data
arguments: label: D161
type: string
name: read_data
arguments: label: D160
type: string
name: read_data
arguments: label: D147
type: string
name: read_data
arguments: label: D146
type: string
name: read_data
arguments: label: D212
type: string
name: read_data
arguments: label: D189
type: string
name: read_data
arguments: label: D100
type: string

tool: D144: Hi! This is a simple application made for a little course of C/C++
write menu for evoke this


tool: D218: :c> 

tool: D237: %s

tool: D128: quit

tool: D106: Bye Bye! See you later! 


tool: D172: windows

tool: D207: It's a fucking malware! Don't use it!


tool: D201: menu

tool: D69: Action:
 

tool: D8: 	 es1 -> see result of es1


tool: D167: 	 es2 -> see result of es2


tool: D51: 	 es3 -> see result of es3


tool: D70: 	 es4 -> see result of es4


tool: D65: 	 es5 -> see result of es5


tool: D209: 	 es6 -> see result of es6


tool: D197: 	 random -> generate new file


tool: D63: es1

tool: D96: Ris es1: 


tool: D277: es2

tool: D71: Ris es2: 


tool: D77: es3

tool: D253: Ris es3: 


tool: D161: es4

tool: D160: Ris es4: 


tool: D147: es5

tool: D146: Ris es5: 


tool: D212: es6

tool: D189: Ris es6: 


tool: D100: random

assistant: ```c
int main() {
  int esc = 1;
  char *command = malloc(256 * sizeof(char));
  printf("Hi! This is a simple application made for a little course of C/C++\n"
         "write menu for evoke this\n");
  while (esc) {
    printf(":c> ");
    scanf("%s", command);
    if (strstr(command, "quit") != NULL) {
      printf("Bye Bye! See you later! \n");
      esc = 0;
    }
    if (strstr(command, "windows") != NULL) {
      printf("It's a fucking malware! Don't use it!\n");
    }
    if (strstr(command, "menu") != NULL) {
      printf("Action:\n ");
      printf("\t es1 -> see result of es1\n");
      printf("\t es2 -> see result of es2\n");
      printf("\t es3 -> see result of es3\n");
      printf("\t es4 -> see result of es4\n");
      printf("\t es5 -> see result of es5\n");
      printf("\t es6 -> see result of es6\n");
      printf("\t random -> generate new file\n");
    }
    if (strstr(command, "es1") != NULL) {
      printf("Ris es1: \n");
      es1();
    }
    if (strstr(command, "es2") != NULL) {
      printf("Ris es2: \n");
      es2();
    }
    if (strstr(command, "es3") != NULL) {
      printf("Ris es3: \n");
      es3();
    }
    if (strstr(command, "es4") != NULL) {
      printf("Ris es4: \n");
      es4();
    }
    if (strstr(command, "es5") != NULL) {
      printf("Ris es5: \n");
      es5(1);
    }
    if (strstr(command, "es6") != NULL) {
      printf("Ris es6: \n");
      es6();
    }
    if (strstr(command, "random") != NULL) {
      es_random();
    }
  }
  return 0;
}
```