user: 提供的汇编代码用C语言表示会是什么样子:

```asm
<save_makefile_install_scripts>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x1000,%rsp
  orq    $0x0,(%rsp)
  sub    $0x220,%rsp
  mov    %rdi,-0x1218(%rbp)
  mov    %rsi,-0x1220(%rbp)
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  lea    -0x1210(%rbp),%rax
  mov    %rax,%rsi
  lea    D220(%rip),%rax
  mov    %rax,%rdi
  call   <get_setting@plt>
  lea    -0x1010(%rbp),%rax
  mov    %rax,%rsi
  lea    D49(%rip),%rax
  mov    %rax,%rdi
  call   <get_setting@plt>
  lea    -0xe10(%rbp),%rax
  mov    %rax,%rsi
  lea    D271(%rip),%rax
  mov    %rax,%rdi
  call   <get_setting@plt>
  lea    -0x810(%rbp),%rax
  mov    %rax,%rsi
  lea    D180(%rip),%rax
  mov    %rax,%rdi
  call   <get_setting@plt>
  lea    -0x610(%rbp),%rax
  mov    %rax,%rsi
  lea    D295(%rip),%rax
  mov    %rax,%rdi
  call   <get_setting@plt>
  lea    -0x1010(%rbp),%rax
  mov    %rax,%rdi
  call   <is_library@plt>
  test   %rax,%rax
  jne    L190
  lea    -0xe10(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  test   %eax,%eax
  je     L34
  lea    -0x1210(%rbp),%rax
  mov    %rax,%rdi
  call   <is_script_language@plt>
  test   %rax,%rax
  je     L105
  mov    -0x1220(%rbp),%rcx
  mov    -0x1218(%rbp),%rax
  lea    D196(%rip),%rdx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <add_makefile_entry_to_file@plt>
  mov    -0x1220(%rbp),%rcx
  mov    -0x1218(%rbp),%rax
  lea    D286(%rip),%rdx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <add_makefile_entry_to_file@plt>
  lea    -0x810(%rbp),%rdx
  lea    -0xc10(%rbp),%rax
  mov    %rdx,%rcx
  lea    D16(%rip),%rdx
  lea    D10(%rip),%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <sprintf@plt>
  lea    -0xc10(%rbp),%rdx
  mov    -0x1220(%rbp),%rcx
  mov    -0x1218(%rbp),%rax
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <add_makefile_entry_to_file@plt>
  lea    -0xa10(%rbp),%rax
  lea    D68(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <sprintf@plt>
  lea    -0xa10(%rbp),%rdx
  lea    -0xc10(%rbp),%rax
  lea    D316(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <sprintf@plt>
  lea    -0xc10(%rbp),%rdx
  mov    -0x1220(%rbp),%rcx
  mov    -0x1218(%rbp),%rax
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <add_makefile_entry_to_file@plt>
  lea    -0xa10(%rbp),%rdx
  lea    -0xc10(%rbp),%rax
  lea    D276(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <sprintf@plt>
  lea    -0xc10(%rbp),%rdx
  mov    -0x1220(%rbp),%rcx
  mov    -0x1218(%rbp),%rax
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <add_makefile_entry_to_file@plt>
  lea    -0xa10(%rbp),%rdx
  lea    -0xc10(%rbp),%rax
  lea    D39(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <sprintf@plt>
  lea    -0xc10(%rbp),%rdx
  mov    -0x1220(%rbp),%rcx
  mov    -0x1218(%rbp),%rax
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <add_makefile_entry_to_file@plt>
  lea    -0xa10(%rbp),%rdx
  lea    -0xc10(%rbp),%rax
  lea    D138(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <sprintf@plt>
  lea    -0xc10(%rbp),%rdx
  mov    -0x1220(%rbp),%rcx
  mov    -0x1218(%rbp),%rax
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <add_makefile_entry_to_file@plt>
  lea    -0xa10(%rbp),%rdx
  lea    -0xc10(%rbp),%rax
  lea    D256(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <sprintf@plt>
  lea    -0xc10(%rbp),%rdx
  mov    -0x1220(%rbp),%rcx
  mov    -0x1218(%rbp),%rax
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <add_makefile_entry_to_file@plt>
  lea    -0xa10(%rbp),%rdx
  lea    -0xc10(%rbp),%rax
  lea    D233(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <sprintf@plt>
  lea    -0xc10(%rbp),%rdx
  mov    -0x1220(%rbp),%rcx
  mov    -0x1218(%rbp),%rax
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <add_makefile_entry_to_file@plt>
  lea    -0x1210(%rbp),%rax
  mov    %rax,%rdi
  call   <is_script_language@plt>
  test   %rax,%rax
  je     L118
  lea    -0x410(%rbp),%rax
  lea    D51(%rip),%rdx
  lea    D114(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <sprintf@plt>
  lea    -0x1210(%rbp),%rax
  lea    D300(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L134
  lea    -0x410(%rbp),%rax
  lea    D92(%rip),%rdx
  lea    D114(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <sprintf@plt>
L134:
  lea    -0x1210(%rbp),%rax
  lea    D149(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L9
  lea    -0x210(%rbp),%rax
  mov    %rax,%rsi
  lea    D241(%rip),%rax
  mov    %rax,%rdi
  call   <get_setting@plt>
  lea    -0x210(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  test   %eax,%eax
  jle    L170
  lea    -0x210(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  cmp    $0x1,%eax
  jne    L33
  lea    -0x210(%rbp),%rdx
  lea    -0x410(%rbp),%rax
  lea    D30(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <sprintf@plt>
  jmp    L9
L33:
  lea    -0x210(%rbp),%rdx
  lea    -0x410(%rbp),%rax
  lea    D114(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <sprintf@plt>
  jmp    L9
L170:
  lea    -0x410(%rbp),%rax
  lea    D218(%rip),%rdx
  lea    D114(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <sprintf@plt>
L9:
  lea    -0x410(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  test   %eax,%eax
  jle    L118
  lea    -0x610(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  test   %eax,%eax
  jle    L126
  lea    -0xa10(%rbp),%rdi
  lea    -0xe10(%rbp),%rsi
  lea    -0x410(%rbp),%rcx
  lea    -0x610(%rbp),%rdx
  lea    -0xc10(%rbp),%rax
  mov    %rdi,%r9
  mov    %rsi,%r8
  lea    D261(%rip),%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <sprintf@plt>
  jmp    L37
L126:
  lea    -0xa10(%rbp),%rsi
  lea    -0xe10(%rbp),%rcx
  lea    -0x410(%rbp),%rdx
  lea    -0xc10(%rbp),%rax
  mov    %rsi,%r8
  lea    D278(%rip),%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <sprintf@plt>
L37:
  lea    -0xc10(%rbp),%rdx
  mov    -0x1220(%rbp),%rcx
  mov    -0x1218(%rbp),%rax
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <add_makefile_entry_to_file@plt>
L118:
  lea    -0x1210(%rbp),%rax
  lea    D300(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcmp@plt>
  test   %rax,%rax
  jne    L149
  lea    -0x610(%rbp),%rax
  mov    %rax,%rdi
  call   <strlen@plt>
  test   %eax,%eax
  jle    L64
  lea    -0xa10(%rbp),%rsi
  lea    -0xe10(%rbp),%rcx
  lea    -0x610(%rbp),%rdx
  lea    -0xc10(%rbp),%rax
  mov    %rsi,%r8
  lea    D202(%rip),%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <sprintf@plt>
  jmp    L166
L64:
  lea    -0xa10(%rbp),%rcx
  lea    -0xe10(%rbp),%rdx
  lea    -0xc10(%rbp),%rax
  lea    D146(%rip),%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <sprintf@plt>
L166:
  lea    -0xc10(%rbp),%rdx
  mov    -0x1220(%rbp),%rcx
  mov    -0x1218(%rbp),%rax
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <add_makefile_entry_to_file@plt>
L149:
  lea    -0xa10(%rbp),%rdx
  lea    -0xc10(%rbp),%rax
  lea    D325(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <sprintf@plt>
  lea    -0xc10(%rbp),%rdx
  mov    -0x1220(%rbp),%rcx
  mov    -0x1218(%rbp),%rax
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <add_makefile_entry_to_file@plt>
  jmp    L176
L190:
  nop
  jmp    L176
L34:
  nop
  jmp    L176
L105:
  nop
L176:
  mov    -0x8(%rbp),%rax
  sub    %fs:0x28,%rax
  je     L31
  call   <__stack_chk_fail@plt>
L31:
  leave
  ret
```

tool_calls: name: extract_symbolic_data
arguments: data_label: D220
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D49
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D271
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D180
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D295
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D196
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D286
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D16
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D10
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D68
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D316
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D276
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D39
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D138
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D256
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D233
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D51
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D114
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D300
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D92
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D149
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D241
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D30
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D218
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D261
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D278
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D202
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D146
type_guessed: string
name: extract_symbolic_data
arguments: data_label: D325
type_guessed: string

tool: D220: project type

tool: D49: project name

tool: D271: main script

tool: D180: source dir

tool: D295: library path

tool: D196: mkdir -m 755 -p ${DESTDIR}${PREFIX}/share

tool: D286: mkdir -m 755 -p ${DESTDIR}${PREFIX}/share/${APP}

tool: D16: cp

tool: D10: %s -rf %s/* ${DESTDIR}${PREFIX}/share/${APP}

tool: D68: ${DESTDIR}${PREFIX}/bin/${APP}

tool: D316: echo '#!/bin/sh' > %s

tool: D276: echo 'if [ -d ${DESTDIR}${PREFIX}/share/${APP} ]; then' >> %s

tool: D39: echo '  cd ${DESTDIR}${PREFIX}/share/${APP}' >> %s

tool: D138: echo 'else' >> %s

tool: D256: echo '  cd /usr/share/${APP}' >> %s

tool: D233: echo 'fi' >> %s

tool: 

tool: D114: %s

tool: D300: pl

tool: D92: perl

tool: D149: py

tool: D241: python version

tool: D30: python%s

tool: D218: python

tool: D261: echo 'LD_LIBRARY_PATH="%s" exec %s %s' >> %s

tool: D278: echo 'exec %s %s' >> %s

tool: D202: echo 'LD_LIBRARY_PATH="%s" exec perl %s' >> %s

tool: D146: echo 'exec perl %s' >> %s

tool: D325: chmod +x %s

assistant: ```c
void save_makefile_install_scripts(char *filename, char *section) {
  char project_type[512];
  char project_name[512];
  char mainscript[512];
  char str[512];
  char runscript[512];
  char sourcedir[512];
  char library_path[512];
  char progname[512];
  char python_version[512];
  get_setting("project type", project_type);
  get_setting("project name", project_name);
  get_setting("main script", mainscript);
  get_setting("source dir", sourcedir);
  get_setting("library path", library_path);
  if (is_library(project_name) != 0)
    return;
  if (strlen(mainscript) == 0)
    return;
  if (is_script_language(project_type) == 0)
    return;
  add_makefile_entry_to_file(filename, section, "mkdir -m 755 -p ${DESTDIR}${PREFIX}/share");
  add_makefile_entry_to_file(filename, section, "mkdir -m 755 -p ${DESTDIR}${PREFIX}/share/${APP}");
  sprintf(str, "%s -rf %s/* ${DESTDIR}${PREFIX}/share/${APP}", "cp", sourcedir);
  add_makefile_entry_to_file(filename, section, str);
  sprintf(runscript, "${DESTDIR}${PREFIX}/bin/${APP}");
  sprintf(str, "echo '#!/bin/sh' > %s", runscript);
  add_makefile_entry_to_file(filename, section, str);
  sprintf(str, "echo 'if [ -d ${DESTDIR}${PREFIX}/share/${APP} ]; then' >> %s", runscript);
  add_makefile_entry_to_file(filename, section, str);
  sprintf(str, "echo '  cd ${DESTDIR}${PREFIX}/share/${APP}' >> %s", runscript);
  add_makefile_entry_to_file(filename, section, str);
  sprintf(str, "echo 'else' >> %s", runscript);
  add_makefile_entry_to_file(filename, section, str);
  sprintf(str, "echo '  cd /usr/share/${APP}' >> %s", runscript);
  add_makefile_entry_to_file(filename, section, str);
  sprintf(str, "echo 'fi' >> %s", runscript);
  add_makefile_entry_to_file(filename, section, str);
  if (is_script_language(project_type) != 0) {
    sprintf(progname, "%s", "");
    if (strcmp(project_type, "pl") == 0) {
      sprintf(progname, "%s", "perl");
    }
    if (strcmp(project_type, "py") == 0) {
      get_setting("python version", python_version);
      if (strlen(python_version) > 0) {
        if (strlen(python_version) == 1) {
          sprintf(progname, "python%s", python_version);
        } else {
          sprintf(progname, "%s", python_version);
        }
      } else {
        sprintf(progname, "%s", "python");
      }
    }
    if (strlen(progname) > 0) {
      if (strlen(library_path) > 0) {
        sprintf(str,
                "echo 'LD_LIBRARY_PATH=\"%s\" "
                "exec %s %s' >> %s",
                library_path, progname, mainscript, runscript);
      } else {
        sprintf(str, "echo 'exec %s %s' >> %s", progname, mainscript, runscript);
      }
      add_makefile_entry_to_file(filename, section, str);
    }
  }
  if (strcmp(project_type, "pl") == 0) {
    if (strlen(library_path) > 0) {
      sprintf(str,
              "echo 'LD_LIBRARY_PATH=\"%s\" "
              "exec perl %s' >> %s",
              library_path, mainscript, runscript);
    } else {
      sprintf(str, "echo 'exec perl %s' >> %s", mainscript, runscript);
    }
    add_makefile_entry_to_file(filename, section, str);
  }
  sprintf(str, "chmod +x %s", runscript);
  add_makefile_entry_to_file(filename, section, str);
}
```