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

```asm
<Daily_Events>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x1000,%rsp
  orq    $0x0,(%rsp)
  sub    $0x1000,%rsp
  orq    $0x0,(%rsp)
  sub    $0x1d0,%rsp
  mov    %rdi,-0x21b8(%rbp)
  mov    %rsi,-0x21c0(%rbp)
  mov    %edx,-0x21c4(%rbp)
  mov    %ecx,-0x21c8(%rbp)
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  movl   $0x0,-0x21a0(%rbp)
  mov    -0x21b8(%rbp),%rax
  mov    %rax,-0x2188(%rbp)
  movq   $0x0,-0x2160(%rbp)
  movq   $0x0,-0x2158(%rbp)
  movq   $0x0,-0x2150(%rbp)
  movq   $0x0,-0x2148(%rbp)
  movq   $0x0,-0x2140(%rbp)
  movq   $0x0,-0x2138(%rbp)
  movq   $0x0,-0x2130(%rbp)
  movq   $0x0,-0x2128(%rbp)
  movq   $0x0,-0x2120(%rbp)
  movq   $0x0,-0x2118(%rbp)
  movq   $0x0,-0x2110(%rbp)
  movq   $0x0,-0x2108(%rbp)
  movl   $0x0,-0x2100(%rbp)
  movq   $0x0,-0x20f0(%rbp)
  movq   $0x0,-0x20e8(%rbp)
  movq   $0x0,-0x20e0(%rbp)
  movq   $0x0,-0x20d8(%rbp)
  movq   $0x0,-0x20d0(%rbp)
  movq   $0x0,-0x20c8(%rbp)
  movq   $0x0,-0x20c0(%rbp)
  movq   $0x0,-0x20b8(%rbp)
  movq   $0x0,-0x20b0(%rbp)
  movq   $0x0,-0x20a8(%rbp)
  movq   $0x0,-0x20a0(%rbp)
  movq   $0x0,-0x2098(%rbp)
  movl   $0x0,-0x2090(%rbp)
  movq   $0x0,-0x216a(%rbp)
  movw   $0x0,-0x2162(%rbp)
  movl   $0x0,-0x219c(%rbp)
  movl   $0x0,-0x2198(%rbp)
  movq   $0x0,-0x2180(%rbp)
  cmpl   $0x0,-0x21c8(%rbp)
  je     L223
  jmp    L256
L79:
  lea    -0x2160(%rbp),%rax
  lea    D118(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  je     L299
  lea    -0x20f0(%rbp),%rcx
  lea    -0x2080(%rbp),%rax
  mov    $0x64,%edx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <strncpy@plt>
  lea    -0x2080(%rbp),%rax
  mov    %rax,%rdi
  call   <atoi@plt>
  sub    $0x1,%eax
  mov    %eax,-0x219c(%rbp)
L299:
  lea    -0x2160(%rbp),%rax
  lea    D0(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  je     L34
  lea    -0x20f0(%rbp),%rcx
  lea    -0x2080(%rbp),%rax
  mov    $0x64,%edx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <strncpy@plt>
  lea    -0x2080(%rbp),%rax
  mov    %rax,%rdi
  call   <atoi@plt>
  sub    $0x1,%eax
  mov    %eax,-0x2198(%rbp)
L34:
  lea    -0x2160(%rbp),%rax
  lea    D138(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strstr@plt>
  test   %rax,%rax
  je     L256
  lea    -0x20f0(%rbp),%rcx
  lea    -0x216a(%rbp),%rax
  mov    $0xa,%edx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <strncpy@plt>
L256:
  lea    -0x20f0(%rbp),%rdx
  lea    -0x2160(%rbp),%rsi
  mov    -0x2188(%rbp),%rax
  mov    $0x64,%r8d
  mov    %rdx,%rcx
  mov    $0x64,%edx
  mov    %rax,%rdi
  call   <getNextArgument@plt>
  mov    %rax,-0x2188(%rbp)
  cmpq   $0x0,-0x2188(%rbp)
  jne    L79
  cmpl   $0xffffffff,-0x219c(%rbp)
  jne    L238
  cmpl   $0xffffffff,-0x2198(%rbp)
  je     L223
L238:
  cmpl   $0xffffffff,-0x219c(%rbp)
  jne    L263
  cmpl   $0xffffffff,-0x2198(%rbp)
  je     L263
  mov    -0x2198(%rbp),%eax
  mov    %eax,-0x219c(%rbp)
  jmp    L223
L263:
  cmpl   $0xffffffff,-0x219c(%rbp)
  je     L223
  cmpl   $0xffffffff,-0x2198(%rbp)
  jne    L223
  mov    -0x219c(%rbp),%eax
  mov    %eax,-0x2198(%rbp)
L223:
  lea    -0x216a(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  test   %rax,%rax
  jle    L100
  lea    -0x216a(%rbp),%rax
  mov    %rax,%rdi
  call   <getFilename@plt>
  mov    %rax,-0x2190(%rbp)
  cmpq   $0x0,-0x2190(%rbp)
  je     L172
  mov    -0x2190(%rbp),%rax
  lea    D78(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <fopen@plt>
  mov    %rax,-0x2180(%rbp)
  mov    -0x2180(%rbp),%rax
  mov    %rax,%rdi
  call   <getTotalSavedLogs@plt>
  mov    %eax,-0x21a0(%rbp)
  cmpq   $0x0,-0x2180(%rbp)
  je     L172
  mov    -0x2180(%rbp),%rax
  mov    %rax,%rdi
  call   <fclose@plt>
L172:
  mov    -0x21a0(%rbp),%ecx
  lea    -0x216a(%rbp),%rdx
  mov    -0x21c0(%rbp),%rax
  lea    D29(%rip),%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <sprintf@plt>
  jmp    L295
L100:
  lea    -0x21a4(%rbp),%rax
  mov    %rax,%rdi
  call   <time@plt>
  lea    -0x21a4(%rbp),%rax
  mov    %rax,%rdi
  call   <localtime@plt>
  mov    %rax,-0x2178(%rbp)
  mov    -0x2178(%rbp),%rax
  mov    0x8(%rax),%eax
  mov    -0x2178(%rbp),%rdx
  mov    0x4(%rdx),%edx
  add    $0x1,%edx
  mov    -0x2178(%rbp),%rcx
  mov    (%rcx),%ecx
  lea    0x76c(%rcx),%esi
  mov    %eax,%ecx
  mov    $0x0,%edi
  call   <calculateFileName@plt>
  mov    %rax,-0x2190(%rbp)
  cmpq   $0x0,-0x2190(%rbp)
  je     L267
  mov    -0x2190(%rbp),%rax
  lea    D78(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <fopen@plt>
  mov    %rax,-0x2180(%rbp)
  mov    -0x2180(%rbp),%rax
  mov    %rax,%rdi
  call   <getTotalSavedLogs@plt>
  mov    %eax,-0x21a0(%rbp)
  cmpq   $0x0,-0x2180(%rbp)
  je     L267
  mov    -0x2180(%rbp),%rax
  mov    %rax,%rdi
  call   <fclose@plt>
L267:
  mov    -0x2178(%rbp),%rax
  mov    0x8(%rax),%esi
  mov    -0x2178(%rbp),%rax
  mov    0x4(%rax),%eax
  lea    0x1(%rax),%ecx
  mov    -0x2178(%rbp),%rax
  mov    (%rax),%eax
  lea    0x76c(%rax),%edx
  mov    -0x21a0(%rbp),%edi
  mov    -0x21c0(%rbp),%rax
  mov    %edi,%r9d
  mov    %esi,%r8d
  lea    D30(%rip),%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <sprintf@plt>
L295:
  cmpl   $0x0,-0x21c8(%rbp)
  je     L209
  cmpl   $0x0,-0x219c(%rbp)
  js     L209
  mov    -0x2198(%rbp),%eax
  cmp    -0x219c(%rbp),%eax
  jl     L209
  mov    -0x2198(%rbp),%eax
  cmp    -0x21a0(%rbp),%eax
  jge    L209
  lea    -0x216a(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  test   %rax,%rax
  jg     L251
  mov    -0x2198(%rbp),%eax
  lea    0x1(%rax),%edx
  mov    -0x219c(%rbp),%eax
  add    $0x1,%eax
  mov    %edx,%esi
  mov    %eax,%edi
  call   <sendRequestToAgent@plt>
L251:
  cmpq   $0x0,-0x2190(%rbp)
  je     L209
  mov    -0x2190(%rbp),%rax
  lea    D78(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <fopen@plt>
  mov    %rax,-0x2180(%rbp)
  cmpq   $0x0,-0x2180(%rbp)
  je     L209
  mov    -0x219c(%rbp),%edx
  lea    -0x2010(%rbp),%rcx
  mov    -0x2180(%rbp),%rax
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <getSavedLogAt@plt>
  movl   $0x0,-0x2194(%rbp)
  mov    -0x219c(%rbp),%eax
  mov    %eax,-0x2194(%rbp)
  jmp    L71
L127:
  mov    -0x2194(%rbp),%eax
  sub    -0x219c(%rbp),%eax
  cmp    $0x14,%eax
  jg     L10
  mov    -0x2194(%rbp),%eax
  and    $0x1,%eax
  test   %eax,%eax
  je     L152
  lea    -0x2010(%rbp),%rcx
  mov    -0x21c0(%rbp),%rdx
  mov    -0x21c0(%rbp),%rax
  lea    D137(%rip),%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <sprintf@plt>
  jmp    L10
L152:
  lea    -0x2010(%rbp),%rcx
  mov    -0x21c0(%rbp),%rdx
  mov    -0x21c0(%rbp),%rax
  lea    D54(%rip),%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <sprintf@plt>
L10:
  mov    -0x2194(%rbp),%eax
  cmp    -0x2198(%rbp),%eax
  jg     L163
  lea    -0x2010(%rbp),%rcx
  mov    -0x2180(%rbp),%rax
  mov    $0x0,%edx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <getSavedLogAt@plt>
L163:
  addl   $0x1,-0x2194(%rbp)
L71:
  mov    -0x2194(%rbp),%eax
  cmp    -0x2198(%rbp),%eax
  jle    L127
  mov    -0x2180(%rbp),%rax
  mov    %rax,%rdi
  call   <fclose@plt>
L209:
  mov    -0x2190(%rbp),%rax
  mov    %rax,%rdi
  call   <free@plt>
  mov    -0x21c0(%rbp),%rax
  lea    D23(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcat@plt>
  mov    -0x21c0(%rbp),%rax
  lea    D83(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcat@plt>
  mov    -0x21c0(%rbp),%rax
  lea    D4(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcat@plt>
  mov    -0x21c0(%rbp),%rax
  lea    D60(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcat@plt>
  mov    $0x0,%eax
  mov    -0x8(%rbp),%rdx
  sub    %fs:0x28,%rdx
  je     L54
  call   <__stack_chk_fail@plt>
L54:
  leave
  ret
```

tool_calls: name: disassemble_data
arguments: data_label: D118
type_infered: string
name: disassemble_data
arguments: data_label: D0
type_infered: string
name: disassemble_data
arguments: data_label: D138
type_infered: string
name: disassemble_data
arguments: data_label: D78
type_infered: string
name: disassemble_data
arguments: data_label: D29
type_infered: string
name: disassemble_data
arguments: data_label: D30
type_infered: string
name: disassemble_data
arguments: data_label: D137
type_infered: string
name: disassemble_data
arguments: data_label: D54
type_infered: string
name: disassemble_data
arguments: data_label: D23
type_infered: string
name: disassemble_data
arguments: data_label: D83
type_infered: string
name: disassemble_data
arguments: data_label: D4
type_infered: string
name: disassemble_data
arguments: data_label: D60
type_infered: string

tool: D118: numberFrom

tool: D0: numberTo

tool: D138: thedate

tool: D78: r

tool: D29: <HTML><BODY><form method=get action=/geteventlogat><H2><CENTER>Daily Events for %s</H2></CENTER><P><center><br/>
<CENTER>TOTAL Events : %d</CENTER><P><center><br />
<table border=1 cellspacing=0 cellpadding=2 width="99%%" bgcolor="white">
<tr bgcolor="#F0F1F5"><td align=Center>Event Log</td></tr>


tool: D30: <HTML><BODY><form method=get action=/geteventlogat><H2><CENTER>Daily Events for %04d%02d%02d</H2></CENTER><P><center><br />
<CENTER>TOTAL Events : %d</CENTER><P><center><br />
<table border=1 cellspacing=0 cellpadding=2 width="99%%" bgcolor="white">
<tr bgcolor="#F0F1F5"><td align=Center>Event Log</td></tr>


tool: D137: %s<tr bgcolor=#FEFEFE><td>
%s
</td></tr>


tool: D54: %s<tr bgcolor=#EEEEEE><td>
%s
</td></tr>


tool: D23: </table><br><br><table border=1 cellspacing=0 cellpadding=2 width="50%%" bgcolor="white">


tool: D83: <tr bgcolor=#F0F1F5><td>Insert the Date For Recovery Via HTTP</td><td><input type=text name=thedate size=12 value="" onMouseover="ddrivetip('When entered the date the recovery of the event logs is only via Http with the max number of recovered event logs of 20. Otherwise the event logs are sent to the syslog server ')" onMouseout="hideddrivetip()"></td></tr>


tool: D4: <tr bgcolor=#F0F1F5><td>Insert the From Event Log Number </td><td><input type=text name=numberFrom size=12 value=""></td></tr>
<tr bgcolor=#F0F1F5><td>Insert the To Event Log Number </td><td><input type=text name=numberTo size=12 value=""></td></tr>
</table>


tool: D60: <input type=submit name=0 value=Send></CENTER></form></BODY></HTML>

assistant: ```c
int Daily_Events(char *source, char *dest, int size, int at) {
  char *filename;
  int savedLogs = 0;
  char line[8192];
  char *psource = source, Variable[100] = "", Argument[100] = "", number_s[100], date_s[10] = "";
  int numberFrom = 0;
  int numberTo = 0;
  FILE *file = (FILE *)NULL;
  if (at) {
    while ((psource = getNextArgument(psource, Variable, sizeof(Variable), Argument, sizeof(Argument))) != (char *)NULL) {
      if (strstr(Variable, "numberFrom") != NULL) {
        strncpy(number_s, Argument, sizeof(number_s));
        numberFrom = atoi(number_s) - 1;
      }
      if (strstr(Variable, "numberTo") != NULL) {
        strncpy(number_s, Argument, sizeof(number_s));
        numberTo = atoi(number_s) - 1;
      }
      if (strstr(Variable, "thedate") != NULL) {
        strncpy(date_s, Argument, sizeof(date_s));
      }
    }
    if (!((numberFrom == -1) && (numberTo == -1))) {
      if ((numberFrom == -1) && !(numberTo == -1))
        numberFrom = numberTo;
      else if (!(numberFrom == -1) && (numberTo == -1))
        numberTo = numberFrom;
    }
  }
  if (strlen(date_s) > 0) {
    filename = getFilename(date_s);
    if (filename) {
      file = fopen(filename, "r");
      savedLogs = getTotalSavedLogs(file);
      if (file) {
        fclose(file);
      }
    }
    sprintf(dest,
            "<HTML><BODY><form method=get action=/geteventlogat><H2><CENTER>Daily Events for %s</H2></CENTER><P><center><br/>\n"
            "<CENTER>TOTAL Events : %d</CENTER><P><center><br />\n"
            "<table border=1 cellspacing=0 cellpadding=2 width=\"99%%\" bgcolor=\"white\">\n"
            "<tr bgcolor=\"#F0F1F5\"><td align=Center>Event Log</td></tr>\n",
            date_s, savedLogs);
  } else {
    time_t startime;
    time(&startime);
    struct tm *t = localtime(&startime);
    filename = calculateFileName(NULL, t->tm_year + 1900, t->tm_mon + 1, t->tm_mday);
    if (filename) {
      file = fopen(filename, "r");
      savedLogs = getTotalSavedLogs(file);
      if (file) {
        fclose(file);
      }
    }
    sprintf(dest,
            "<HTML><BODY><form method=get action=/geteventlogat><H2><CENTER>Daily Events for %04d%02d%02d</H2></CENTER><P><center><br />\n"
            "<CENTER>TOTAL Events : %d</CENTER><P><center><br />\n"
            "<table border=1 cellspacing=0 cellpadding=2 width=\"99%%\" bgcolor=\"white\">\n"
            "<tr bgcolor=\"#F0F1F5\"><td align=Center>Event Log</td></tr>\n",
            t->tm_year + 1900, t->tm_mon + 1, t->tm_mday, savedLogs);
  }
  if (at) {
    if ((numberFrom >= 0) && (numberTo >= numberFrom) && (numberTo < savedLogs)) {
      if (strlen(date_s) <= 0) {
        sendRequestToAgent(numberFrom + 1, numberTo + 1);
      }
      if (filename) {
        file = fopen(filename, "r");
        if (file) {
          getSavedLogAt(file, line, numberFrom);
          int i = 0;
          for (i = numberFrom; i <= numberTo; i++) {
            if (i - numberFrom <= 20) {
              if (i % 2)
                sprintf(dest, "%s<tr bgcolor=#FEFEFE><td>\n%s\n</td></tr>\n", dest, line);
              else
                sprintf(dest, "%s<tr bgcolor=#EEEEEE><td>\n%s\n</td></tr>\n", dest, line);
            }
            if (i <= numberTo)
              getSavedLogAt(file, line, 0);
          }
          fclose(file);
        }
      }
    }
  }
  free(filename);
  strcat(dest, "</table><br><br><table border=1 cellspacing=0 cellpadding=2 width=\"50%%\" bgcolor=\"white\">\n");
  strcat(dest, "<tr bgcolor=#F0F1F5><td>Insert the Date For Recovery Via HTTP</td><td><input type=text name=thedate size=12 value=\"\" onMouseover=\"ddrivetip(\'When entered the date the recovery of the event logs is only via Http with the max number of recovered event logs of 20. Otherwise the event logs are sent to the syslog server \')\" onMouseout=\"hideddrivetip()\"></td></tr>\n");
  strcat(dest, "<tr bgcolor=#F0F1F5><td>Insert the From Event Log Number </td><td><input type=text name=numberFrom size=12 value=\"\"></td></tr>\n"
               "<tr bgcolor=#F0F1F5><td>Insert the To Event Log Number </td><td><input type=text name=numberTo size=12 value=\"\"></td></tr>\n"
               "</table>\n");
  strcat(dest, "<input type=submit name=0 value=Send></CENTER></form></BODY></HTML>");
  return (0);
}
```