user: What is the c source code of the assembly code below:

```asm
<main>:
  endbr64
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0x58,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,0x48(%rsp)
  xor    %eax,%eax
  movl   $0x420d999a,(%rsp)
  movl   $0x423acccd,0x4(%rsp)
  movl   $0x429b199a,0x8(%rsp)
  movl   $0x4131999a,0xc(%rsp)
  movl   $0x4110a3d7,0x10(%rsp)
  movl   $0x3f400000,0x14(%rsp)
  movl   $0x1,0x20(%rsp)
  movl   $0x2,0x24(%rsp)
  movl   $0x3,0x28(%rsp)
  movl   $0x4,0x2c(%rsp)
  movl   $0x5,0x30(%rsp)
  movl   $0x6,0x34(%rsp)
  movl   $0x7,0x38(%rsp)
  movl   $0x8,0x3c(%rsp)
  movl   $0x9,0x40(%rsp)
  movl   $0xa,0x44(%rsp)
  mov    $0x100,%edi
  call   <malloc@plt>
  mov    %rax,%rbx
  lea    D114(%rip),%rdi
  call   <printf@plt>
  lea    D188(%rip),%r14
  lea    D22(%rip),%r13
  lea    D180(%rip),%r12
  lea    D6(%rip),%r15
  jmp    L35
L83:
  test   %ebp,%ebp
  je     L47
L35:
  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     L2
  mov    %r15,%rdi
  call   <printf@plt>
  mov    $0x0,%ebp
L2:
  lea    D42(%rip),%rsi
  mov    %rbx,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  je     L85
  lea    D227(%rip),%rdi
  call   <printf@plt>
L85:
  lea    D351(%rip),%rsi
  mov    %rbx,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  je     L124
  lea    D292(%rip),%rdi
  call   <printf@plt>
  lea    D179(%rip),%rdi
  call   <printf@plt>
  lea    D325(%rip),%rdi
  call   <printf@plt>
  lea    D303(%rip),%rdi
  call   <printf@plt>
  lea    D67(%rip),%rdi
  call   <printf@plt>
  lea    D11(%rip),%rdi
  call   <printf@plt>
  lea    D281(%rip),%rdi
  call   <printf@plt>
  lea    D342(%rip),%rdi
  call   <printf@plt>
  lea    D7(%rip),%rdi
  call   <printf@plt>
  lea    D71(%rip),%rdi
  call   <printf@plt>
L124:
  lea    D12(%rip),%rsi
  mov    %rbx,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  je     L120
  lea    D309(%rip),%rdi
  call   <printf@plt>
  lea    0x20(%rsp),%rdi
  mov    $0xa,%esi
  call   <es1@plt>
L120:
  lea    D241(%rip),%rsi
  mov    %rbx,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  je     L87
  lea    D107(%rip),%rdi
  call   <printf@plt>
  lea    0x20(%rsp),%rdi
  mov    $0xa,%esi
  call   <es2@plt>
L87:
  lea    D305(%rip),%rsi
  mov    %rbx,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  je     L111
  lea    D283(%rip),%rdi
  call   <printf@plt>
  lea    0x20(%rsp),%rdi
  mov    $0xa,%esi
  call   <es3@plt>
L111:
  lea    D21(%rip),%rsi
  mov    %rbx,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  je     L157
  lea    D197(%rip),%rdi
  call   <printf@plt>
  mov    %rsp,%rdi
  mov    $0x6,%esi
  call   <es4@plt>
L157:
  lea    D182(%rip),%rsi
  mov    %rbx,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  je     L3
  lea    D300(%rip),%rdi
  call   <printf@plt>
  mov    %rsp,%rdi
  mov    $0x6,%esi
  call   <es5@plt>
L3:
  lea    D200(%rip),%rsi
  mov    %rbx,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  je     L41
  lea    D264(%rip),%rdi
  call   <printf@plt>
  mov    %rsp,%rdi
  mov    $0x6,%esi
  call   <es6@plt>
L41:
  lea    D127(%rip),%rsi
  mov    %rbx,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  je     L135
  lea    D132(%rip),%rdi
  call   <printf@plt>
  mov    %rsp,%rdi
  mov    $0x6,%esi
  call   <es7@plt>
L135:
  lea    D308(%rip),%rsi
  mov    %rbx,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  je     L115
  lea    D191(%rip),%rdi
  call   <printf@plt>
  mov    %rsp,%rdi
  mov    $0x6,%esi
  call   <es8@plt>
L115:
  lea    D29(%rip),%rsi
  mov    %rbx,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  je     L83
  lea    D171(%rip),%rdi
  call   <printf@plt>
  mov    %rsp,%rdi
  mov    $0x6,%esi
  call   <es9@plt>
  jmp    L83
L47:
  mov    0x48(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L62
  mov    $0x0,%eax
  add    $0x58,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
L62:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: retrieve_data
arguments: data_tag: D114
type_infered: string
name: retrieve_data
arguments: data_tag: D188
type_infered: string
name: retrieve_data
arguments: data_tag: D22
type_infered: string
name: retrieve_data
arguments: data_tag: D180
type_infered: string
name: retrieve_data
arguments: data_tag: D6
type_infered: string
name: retrieve_data
arguments: data_tag: D42
type_infered: string
name: retrieve_data
arguments: data_tag: D227
type_infered: string
name: retrieve_data
arguments: data_tag: D351
type_infered: string
name: retrieve_data
arguments: data_tag: D292
type_infered: string
name: retrieve_data
arguments: data_tag: D179
type_infered: string
name: retrieve_data
arguments: data_tag: D325
type_infered: string
name: retrieve_data
arguments: data_tag: D303
type_infered: string
name: retrieve_data
arguments: data_tag: D67
type_infered: string
name: retrieve_data
arguments: data_tag: D11
type_infered: string
name: retrieve_data
arguments: data_tag: D281
type_infered: string
name: retrieve_data
arguments: data_tag: D342
type_infered: string
name: retrieve_data
arguments: data_tag: D7
type_infered: string
name: retrieve_data
arguments: data_tag: D71
type_infered: string
name: retrieve_data
arguments: data_tag: D12
type_infered: string
name: retrieve_data
arguments: data_tag: D309
type_infered: string
name: retrieve_data
arguments: data_tag: D241
type_infered: string
name: retrieve_data
arguments: data_tag: D107
type_infered: string
name: retrieve_data
arguments: data_tag: D305
type_infered: string
name: retrieve_data
arguments: data_tag: D283
type_infered: string
name: retrieve_data
arguments: data_tag: D21
type_infered: string
name: retrieve_data
arguments: data_tag: D197
type_infered: string
name: retrieve_data
arguments: data_tag: D182
type_infered: string
name: retrieve_data
arguments: data_tag: D300
type_infered: string
name: retrieve_data
arguments: data_tag: D200
type_infered: string
name: retrieve_data
arguments: data_tag: D264
type_infered: string
name: retrieve_data
arguments: data_tag: D127
type_infered: string
name: retrieve_data
arguments: data_tag: D132
type_infered: string
name: retrieve_data
arguments: data_tag: D308
type_infered: string
name: retrieve_data
arguments: data_tag: D191
type_infered: string
name: retrieve_data
arguments: data_tag: D29
type_infered: string
name: retrieve_data
arguments: data_tag: D171
type_infered: string

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


tool: D188: :c> 

tool: D22: %s

tool: D180: quit

tool: D6: Bye Bye! See you later! 


tool: D42: windows

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


tool: D351: menu

tool: D292: Action:
 

tool: D179: 	 es1 -> see result of es1


tool: D325: 	 es2 -> see result of es2


tool: D303: 	 es3 -> see result of es3


tool: D67: 	 es4 -> see result of es4


tool: D11: 	 es5 -> see result of es5


tool: D281: 	 es6 -> see result of es6


tool: D342: 	 es7 -> see result of es7


tool: D7: 	 es8 -> see result of es8


tool: D71: 	 es9 -> see result of es9


tool: D12: es1

tool: D309: Ris es1: 


tool: D241: es2

tool: D107: Ris es2: 


tool: D305: es3

tool: D283: Ris es3: 


tool: D21: es4

tool: D197: Ris es4: 


tool: D182: es5

tool: D300: Ris es5: 


tool: D200: es6

tool: D264: Ris es6: 


tool: D127: es7

tool: D132: Ris es7: 


tool: D308: es8

tool: D191: Ris es8: 


tool: D29: es9

tool: D171: Ris es9: 


assistant: ```c
int main() {
  int esc = 1;
  float array_f[] = {35.4, 46.7, 77.55, 11.1, 9.04, 0.75};
  int array[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
  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 es7 -> see result of es7\n");
      printf("\t es8 -> see result of es8\n");
      printf("\t es9 -> see result of es9\n");
    }
    if (strstr(command, "es1") != NULL) {
      printf("Ris es1: \n");
      es1(array, sizeof(array) / sizeof(array[0]));
    }
    if (strstr(command, "es2") != NULL) {
      printf("Ris es2: \n");
      es2(array, sizeof(array) / sizeof(array[0]));
    }
    if (strstr(command, "es3") != NULL) {
      printf("Ris es3: \n");
      es3(array, sizeof(array) / sizeof(array[0]));
    }
    if (strstr(command, "es4") != NULL) {
      printf("Ris es4: \n");
      es4(array_f, sizeof(array_f) / sizeof(array_f[0]));
    }
    if (strstr(command, "es5") != NULL) {
      printf("Ris es5: \n");
      es5(array_f, sizeof(array_f) / sizeof(array_f[0]));
    }
    if (strstr(command, "es6") != NULL) {
      printf("Ris es6: \n");
      es6(array_f, sizeof(array_f) / sizeof(array_f[0]));
    }
    if (strstr(command, "es7") != NULL) {
      printf("Ris es7: \n");
      es7(array_f, sizeof(array_f) / sizeof(array_f[0]));
    }
    if (strstr(command, "es8") != NULL) {
      printf("Ris es8: \n");
      es8(array_f, sizeof(array_f) / sizeof(array_f[0]));
    }
    if (strstr(command, "es9") != NULL) {
      printf("Ris es9: \n");
      es9(array_f, sizeof(array_f) / sizeof(array_f[0]));
    }
  }
  return 0;
}
```