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

```asm
<getCoordsString>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x1000,%rsp
  orq    $0x0,(%rsp)
  sub    $0x1000,%rsp
  orq    $0x0,(%rsp)
  sub    $0x90,%rsp
  mov    %rdi,-0x2078(%rbp)
  mov    %rsi,-0x2080(%rbp)
  movsd  %xmm0,-0x2088(%rbp)
  movsd  %xmm1,-0x2090(%rbp)
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  movl   $0x0,-0x206c(%rbp)
  lea    D87(%rip),%rax
  mov    %rax,-0x2060(%rbp)
  mov    -0x2078(%rbp),%rax
  mov    %rax,%rdi
  call   <strdup@plt>
  mov    %rax,-0x2058(%rbp)
  lea    D13(%rip),%rax
  mov    %rax,-0x2050(%rbp)
  lea    D19(%rip),%rax
  mov    %rax,-0x2048(%rbp)
  lea    D10(%rip),%rax
  mov    %rax,-0x2040(%rbp)
  mov    -0x2088(%rbp),%rdx
  lea    -0x2010(%rbp),%rax
  movq   %rdx,%xmm0
  lea    D60(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x1,%eax
  call   <sprintf@plt>
  lea    -0x2010(%rbp),%rax
  mov    %rax,%rdi
  call   <strdup@plt>
  mov    %rax,-0x2038(%rbp)
  mov    -0x2090(%rbp),%rdx
  lea    -0x2010(%rbp),%rax
  movq   %rdx,%xmm0
  lea    D60(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x1,%eax
  call   <sprintf@plt>
  lea    -0x2010(%rbp),%rax
  mov    %rax,%rdi
  call   <strdup@plt>
  mov    %rax,-0x2030(%rbp)
  lea    D54(%rip),%rax
  mov    %rax,-0x2028(%rbp)
  movq   $0x0,-0x2020(%rbp)
  mov    -0x2080(%rbp),%rdx
  lea    -0x1010(%rbp),%rax
  lea    D76(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <sprintf@plt>
  lea    -0x1010(%rbp),%rax
  mov    %rax,%rdi
  call   <strdup@plt>
  mov    %rax,%rdx
  lea    -0x2060(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <wgrib22@plt>
  lea    -0x1010(%rbp),%rax
  lea    D39(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <OpenFile@plt>
  mov    %rax,-0x2068(%rbp)
  mov    -0x2068(%rbp),%rax
  lea    -0x2010(%rbp),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <GetALine@plt>
  test   %rax,%rax
  je     L11
  movl   $0x1,-0x206c(%rbp)
L11:
  lea    -0x2068(%rbp),%rax
  mov    %rax,%rdi
  call   <CloseFile@plt>
  lea    -0x1010(%rbp),%rax
  mov    %rax,%rdi
  call   <removeAFile@plt>
  cmpl   $0x1,-0x206c(%rbp)
  jne    L27
  lea    -0x2010(%rbp),%rax
  mov    %rax,%rdi
  call   <strdup@plt>
  jmp    L12
L27:
  mov    $0x0,%eax
L12:
  mov    -0x8(%rbp),%rdx
  sub    %fs:0x28,%rdx
  je     L6
  call   <__stack_chk_fail@plt>
L6:
  leave
  ret
```

tool_calls: name: parse_data
arguments: data_label: D87
type_guessed: string
name: parse_data
arguments: data_label: D13
type_guessed: string
name: parse_data
arguments: data_label: D19
type_guessed: string
name: parse_data
arguments: data_label: D10
type_guessed: string
name: parse_data
arguments: data_label: D60
type_guessed: string
name: parse_data
arguments: data_label: D54
type_guessed: string
name: parse_data
arguments: data_label: D76
type_guessed: string
name: parse_data
arguments: data_label: D39
type_guessed: string

tool: D87: wgrib2

tool: D13: -colon

tool: D19: ,

tool: D10: -lon

tool: D60: %5.6f

tool: D54: -end

tool: D76: %s.txt

tool: D39: r

assistant: ```c
char *getCoordsString(char *inputFileName, char *site, double longitude, double latitude) {
  int success = 0;
  char *grib_cargv[9], temp[4096], temp2[4096];
  grib_cargv[0] = "wgrib2";
  grib_cargv[1] = strdup(inputFileName);
  grib_cargv[2] = "-colon";
  grib_cargv[3] = ",";
  grib_cargv[4] = "-lon";
  sprintf(temp, "%5.6f", longitude);
  grib_cargv[5] = strdup(temp);
  sprintf(temp, "%5.6f", latitude);
  grib_cargv[6] = strdup(temp);
  grib_cargv[7] = "-end";
  grib_cargv[8] = NULL;
  sprintf(temp2, "%s.txt", site);
  wgrib22(grib_cargv, strdup(temp2));
  FILE *dailyCoordsFile = OpenFile(temp2, "r");
  if (GetALine(dailyCoordsFile, temp))
    success = 1;
  CloseFile(&dailyCoordsFile);
  removeAFile(temp2);
  if (success == 1)
    return strdup(temp);
  return NULL;
}
```