user: 下面的汇编指令对应的C源代码是什么:

```asm
<create_clone_filename_get_clone_application_compressed_filename>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x440,%rsp
  mov    %rdi,-0x418(%rbp)
  mov    %rsi,-0x420(%rbp)
  mov    %rdx,-0x428(%rbp)
  mov    %ecx,%eax
  mov    %r8,-0x438(%rbp)
  mov    %al,-0x42c(%rbp)
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  mov    -0x418(%rbp),%rax
  mov    (%rax),%rdx
  mov    -0x428(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <create_clone_filename_get_directory_name@plt>
  mov    -0x418(%rbp),%rdx
  mov    %rax,(%rdx)
  cmpb   $0x79,-0x42c(%rbp)
  jne    L8
  cmpq   $0x0,-0x438(%rbp)
  je     L104
  mov    -0x438(%rbp),%rax
  lea    D89(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L104
  mov    -0x418(%rbp),%rax
  mov    (%rax),%rdx
  mov    -0x420(%rbp),%rcx
  lea    -0x410(%rbp),%rax
  lea    D36(%rip),%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
  jmp    L140
L104:
  cmpq   $0x0,-0x438(%rbp)
  je     L49
  mov    -0x438(%rbp),%rax
  lea    D67(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L49
  mov    -0x418(%rbp),%rax
  mov    (%rax),%rdx
  mov    -0x420(%rbp),%rcx
  lea    -0x410(%rbp),%rax
  lea    D91(%rip),%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
  jmp    L140
L49:
  mov    -0x418(%rbp),%rax
  mov    (%rax),%rdx
  mov    -0x420(%rbp),%rcx
  lea    -0x410(%rbp),%rax
  lea    D16(%rip),%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
  jmp    L140
L8:
  cmpq   $0x0,-0x438(%rbp)
  je     L91
  mov    -0x438(%rbp),%rax
  lea    D89(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L91
  mov    -0x418(%rbp),%rax
  mov    (%rax),%rdx
  mov    -0x420(%rbp),%rcx
  lea    -0x410(%rbp),%rax
  lea    D35(%rip),%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
  jmp    L140
L91:
  cmpq   $0x0,-0x438(%rbp)
  je     L130
  mov    -0x438(%rbp),%rax
  lea    D67(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L130
  mov    -0x418(%rbp),%rax
  mov    (%rax),%rdx
  mov    -0x420(%rbp),%rcx
  lea    -0x410(%rbp),%rax
  lea    D70(%rip),%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
  jmp    L140
L130:
  mov    -0x418(%rbp),%rax
  mov    (%rax),%rdx
  mov    -0x420(%rbp),%rcx
  lea    -0x410(%rbp),%rax
  lea    D60(%rip),%rsi
  mov    %rax,%rdi
  call   <sprintf@plt>
L140:
  lea    -0x410(%rbp),%rax
  mov    %rax,%rdi
  call   <strdup@plt>
  mov    -0x8(%rbp),%rdx
  sub    %fs:0x28,%rdx
  je     L76
  call   <__stack_chk_fail@plt>
L76:
  leave
  ret
```

tool_calls: name: retrieve_data
arguments: label: D89
type_guessed: string
name: retrieve_data
arguments: label: D36
type_guessed: string
name: retrieve_data
arguments: label: D67
type_guessed: string
name: retrieve_data
arguments: label: D91
type_guessed: string
name: retrieve_data
arguments: label: D16
type_guessed: string
name: retrieve_data
arguments: label: D35
type_guessed: string
name: retrieve_data
arguments: label: D70
type_guessed: string
name: retrieve_data
arguments: label: D60
type_guessed: string

tool: D89: shell_script

tool: D36: %s/insert_%s_appaserver.sh.gz

tool: D67: spreadsheet

tool: D91: %s/%s_appaserver.csv.gz

tool: D16: %s/insert_%s_appaserver.sql.gz

tool: D35: %s/insert_%s_application.sh.gz

tool: D70: %s/%s.csv.gz

tool: D60: %s/insert_%s_application.sql.gz

assistant: ```c
char *create_clone_filename_get_clone_application_compressed_filename(char **directory_name, char *application_name, char *appaserver_data_directory, char system_folders_yn, char *export_output) {
  char buffer[1024];
  *directory_name = create_clone_filename_get_directory_name(appaserver_data_directory, *directory_name);
  if (system_folders_yn == 'y') {
    if (export_output && strcmp(export_output, "shell_script") == 0) {
      sprintf(buffer, "%s/insert_%s_appaserver.sh.gz", *directory_name, application_name);
    } else if (export_output && strcmp(export_output, "spreadsheet") == 0) {
      sprintf(buffer, "%s/%s_appaserver.csv.gz", *directory_name, application_name);
    } else {
      sprintf(buffer, "%s/insert_%s_appaserver.sql.gz", *directory_name, application_name);
    }
  } else {
    if (export_output && strcmp(export_output, "shell_script") == 0) {
      sprintf(buffer, "%s/insert_%s_application.sh.gz", *directory_name, application_name);
    } else if (export_output && strcmp(export_output, "spreadsheet") == 0) {
      sprintf(buffer, "%s/%s.csv.gz", *directory_name, application_name);
    } else {
      sprintf(buffer, "%s/insert_%s_application.sql.gz", *directory_name, application_name);
    }
  }
  return strdup(buffer);
}
```