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

```asm
<main>:
  endbr64
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0x8,%rsp
  mov    $0x100,%edi
  call   <malloc@plt>
  mov    %rax,%rbx
  lea    D183(%rip),%rdi
  call   <printf@plt>
  lea    D212(%rip),%r14
  lea    D3(%rip),%r13
  lea    D201(%rip),%r12
  lea    D115(%rip),%r15
  jmp    L61
L35:
  test   %ebp,%ebp
  je     L50
L61:
  mov    %r14,%rdi
  call   <printf@plt>
  mov    %rbx,%rsi
  mov    %r13,%rdi
  call   <scanf@plt>
  mov    %r12,%rsi
  mov    %rbx,%rdi
  call   <strstr@plt>
  mov    $0x1,%ebp
  test   %rax,%rax
  je     L80
  mov    %r15,%rdi
  call   <printf@plt>
  mov    $0x0,%ebp
L80:
  lea    D265(%rip),%rsi
  mov    %rbx,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  je     L57
  lea    D139(%rip),%rdi
  call   <printf@plt>
L57:
  lea    D167(%rip),%rsi
  mov    %rbx,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  je     L112
  lea    D157(%rip),%rdi
  call   <printf@plt>
  lea    D281(%rip),%rdi
  call   <printf@plt>
  lea    D11(%rip),%rdi
  call   <printf@plt>
  lea    D175(%rip),%rdi
  call   <printf@plt>
  lea    D71(%rip),%rdi
  call   <printf@plt>
  lea    D185(%rip),%rdi
  call   <printf@plt>
  lea    D239(%rip),%rdi
  call   <printf@plt>
  lea    D120(%rip),%rdi
  call   <printf@plt>
L112:
  lea    D90(%rip),%rsi
  mov    %rbx,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  je     L100
  lea    D17(%rip),%rdi
  call   <printf@plt>
  mov    $0x0,%eax
  call   <es1@plt>
L100:
  lea    D251(%rip),%rsi
  mov    %rbx,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  je     L64
  lea    D8(%rip),%rdi
  call   <printf@plt>
  mov    $0x0,%eax
  call   <es2@plt>
L64:
  lea    D277(%rip),%rsi
  mov    %rbx,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  je     L39
  lea    D147(%rip),%rdi
  call   <printf@plt>
  mov    $0x0,%eax
  call   <es3@plt>
L39:
  lea    D284(%rip),%rsi
  mov    %rbx,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  je     L29
  lea    D76(%rip),%rdi
  call   <printf@plt>
  mov    $0x0,%eax
  call   <es4@plt>
L29:
  lea    D261(%rip),%rsi
  mov    %rbx,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  je     L107
  lea    D95(%rip),%rdi
  call   <printf@plt>
  mov    $0x1,%edi
  call   <es5@plt>
L107:
  lea    D143(%rip),%rsi
  mov    %rbx,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  je     L66
  lea    D86(%rip),%rdi
  call   <printf@plt>
  mov    $0x0,%eax
  call   <es6@plt>
L66:
  lea    D59(%rip),%rsi
  mov    %rbx,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  je     L35
  mov    $0x0,%eax
  call   <es_random@plt>
  jmp    L35
L50:
  mov    $0x0,%eax
  add    $0x8,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
```

tool_calls: name: parse_data
arguments: data_tag: D183
data_type: string
name: parse_data
arguments: data_tag: D212
data_type: string
name: parse_data
arguments: data_tag: D3
data_type: string
name: parse_data
arguments: data_tag: D201
data_type: string
name: parse_data
arguments: data_tag: D115
data_type: string
name: parse_data
arguments: data_tag: D265
data_type: string
name: parse_data
arguments: data_tag: D139
data_type: string
name: parse_data
arguments: data_tag: D167
data_type: string
name: parse_data
arguments: data_tag: D157
data_type: string
name: parse_data
arguments: data_tag: D281
data_type: string
name: parse_data
arguments: data_tag: D11
data_type: string
name: parse_data
arguments: data_tag: D175
data_type: string
name: parse_data
arguments: data_tag: D71
data_type: string
name: parse_data
arguments: data_tag: D185
data_type: string
name: parse_data
arguments: data_tag: D239
data_type: string
name: parse_data
arguments: data_tag: D120
data_type: string
name: parse_data
arguments: data_tag: D90
data_type: string
name: parse_data
arguments: data_tag: D17
data_type: string
name: parse_data
arguments: data_tag: D251
data_type: string
name: parse_data
arguments: data_tag: D8
data_type: string
name: parse_data
arguments: data_tag: D277
data_type: string
name: parse_data
arguments: data_tag: D147
data_type: string
name: parse_data
arguments: data_tag: D284
data_type: string
name: parse_data
arguments: data_tag: D76
data_type: string
name: parse_data
arguments: data_tag: D261
data_type: string
name: parse_data
arguments: data_tag: D95
data_type: string
name: parse_data
arguments: data_tag: D143
data_type: string
name: parse_data
arguments: data_tag: D86
data_type: string
name: parse_data
arguments: data_tag: D59
data_type: string

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


tool: D212: :c> 

tool: D3: %s

tool: D201: quit

tool: D115: Bye Bye! See you later! 


tool: D265: windows

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


tool: D167: menu

tool: D157: Action:
 

tool: D281: 	 es1 -> see result of es1


tool: D11: 	 es2 -> see result of es2


tool: D175: 	 es3 -> see result of es3


tool: D71: 	 es4 -> see result of es4


tool: D185: 	 es5 -> see result of es5


tool: D239: 	 es6 -> see result of es6


tool: D120: 	 random -> generate new file


tool: D90: es1

tool: D17: Ris es1: 


tool: D251: es2

tool: D8: Ris es2: 


tool: D277: es3

tool: D147: Ris es3: 


tool: D284: es4

tool: D76: Ris es4: 


tool: D261: es5

tool: D95: Ris es5: 


tool: D143: es6

tool: D86: Ris es6: 


tool: D59: 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;
}
```