user: 请显示与下面列出的汇编代码相匹配的C语言实现:

```asm
<go_output2shell_script_header>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x20,%rsp
  mov    %rdi,-0x8(%rbp)
  mov    %rsi,-0x10(%rbp)
  mov    %rdx,-0x18(%rbp)
  mov    %ecx,%eax
  mov    %al,-0x1c(%rbp)
  mov    -0x8(%rbp),%rax
  mov    %rax,%rcx
  mov    $0xa,%edx
  mov    $0x1,%esi
  lea    D23(%rip),%rax
  mov    %rax,%rdi
  call   <fwrite@plt>
  cmpb   $0x79,-0x1c(%rbp)
  je     L38
  mov    -0x18(%rbp),%rax
  mov    %rax,%rdi
  call   <appaserver_library_is_system_folder@plt>
  test   %eax,%eax
  jne    L38
  mov    -0x10(%rbp),%rdx
  mov    -0x8(%rbp),%rax
  lea    D40(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <fprintf@plt>
  mov    -0x8(%rbp),%rax
  mov    %rax,%rcx
  mov    $0x5,%edx
  mov    $0x1,%esi
  lea    D86(%rip),%rax
  mov    %rax,%rdi
  call   <fwrite@plt>
  mov    -0x8(%rbp),%rax
  mov    %rax,%rcx
  mov    $0x8,%edx
  mov    $0x1,%esi
  lea    D49(%rip),%rax
  mov    %rax,%rdi
  call   <fwrite@plt>
  mov    -0x8(%rbp),%rax
  mov    %rax,%rcx
  mov    $0x4,%edx
  mov    $0x1,%esi
  lea    D34(%rip),%rax
  mov    %rax,%rdi
  call   <fwrite@plt>
L38:
  mov    -0x18(%rbp),%rax
  lea    D84(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L8
  mov    -0x10(%rbp),%rdx
  mov    -0x8(%rbp),%rax
  lea    D41(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <fprintf@plt>
  jmp    L18
L8:
  mov    -0x18(%rbp),%rdx
  mov    -0x8(%rbp),%rax
  lea    D19(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <fprintf@plt>
L18:
  mov    -0x8(%rbp),%rax
  mov    %rax,%rcx
  mov    $0x14,%edx
  mov    $0x1,%esi
  lea    D74(%rip),%rax
  mov    %rax,%rdi
  call   <fwrite@plt>
  nop
  leave
  ret
```

tool_calls: name: disassemble_data
arguments: label: D23
data_type: string
name: disassemble_data
arguments: label: D40
data_type: string
name: disassemble_data
arguments: label: D86
data_type: string
name: disassemble_data
arguments: label: D49
data_type: string
name: disassemble_data
arguments: label: D34
data_type: string
name: disassemble_data
arguments: label: D84
data_type: string
name: disassemble_data
arguments: label: D41
data_type: string
name: disassemble_data
arguments: label: D19
data_type: string
name: disassemble_data
arguments: label: D74
data_type: string

tool: D23: #!/bin/sh


tool: D40: if [ "$application" != %s ]


tool: D86: then


tool: D49: 	exit 0


tool: D34: fi



tool: D84: application

tool: D41: table_name=%s_application


tool: D19: table_name=%s


tool: D74: (
sql.e << all_done


assistant: ```c
void go_output2shell_script_header(FILE *output_file, char *application_name, char *folder_name, char dont_output_if_statement_yn) {
  fprintf(output_file, "#!/bin/sh\n");
  if (dont_output_if_statement_yn != 'y' && !appaserver_library_is_system_folder(folder_name)) {
    fprintf(output_file, "if [ \"$application\" != %s ]\n", application_name);
    fprintf(output_file, "then\n");
    fprintf(output_file, "\texit 0\n");
    fprintf(output_file, "fi\n\n");
  }
  if (strcmp(folder_name, "application") == 0) {
    fprintf(output_file, "table_name=%s_application\n", application_name);
  } else {
    fprintf(output_file, "table_name=%s\n", folder_name);
  }
  fprintf(output_file, "(\nsql.e << all_done\n");
}
```