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

```asm
<CreateImplFile>:
  endbr64
  push   %r15
  mov    %esi,%r15d
  push   %r14
  mov    %rdx,%r14
  push   %r13
  mov    %rdi,%r13
  lea    D90(%rip),%rdi
  push   %r12
  mov    %rcx,%r12
  push   %rbp
  push   %rbx
  lea    D278(%rip),%rbx
  sub    $0x18,%rsp
  mov    %esi,0x4(%rsp)
  mov    $0x1,%esi
  mov    %rdx,0x8(%rsp)
  mov    $0x32,%edx
  call   <fwrite@plt>
  mov    %r12,%rcx
  mov    $0x17,%edx
  mov    $0x1,%esi
  lea    D128(%rip),%rdi
  call   <fwrite@plt>
  mov    %r12,%rcx
  mov    $0x24,%edx
  mov    $0x1,%esi
  lea    D192(%rip),%rdi
  call   <fwrite@plt>
  mov    %r12,%rcx
  mov    $0x1f,%edx
  mov    $0x1,%esi
  lea    D211(%rip),%rdi
  call   <fwrite@plt>
  mov    %r12,%rcx
  mov    $0x14,%edx
  mov    $0x1,%esi
  lea    D314(%rip),%rdi
  call   <fwrite@plt>
  mov    %r12,%rcx
  mov    $0xa9,%edx
  mov    $0x1,%esi
  lea    D201(%rip),%rdi
  call   <fwrite@plt>
  test   %r15d,%r15d
  jle    L2
  lea    -0x1(%r15),%eax
  lea    D152(%rip),%rbp
  lea    0x8(%r14,%rax,8),%r15
  cs nopw 0x0(%rax,%rax,1)
L35:
  mov    (%r14),%rcx
  mov    %rbx,%rdx
  mov    %rbp,%rsi
  mov    %r12,%rdi
  xor    %eax,%eax
  add    $0x8,%r14
  call   <fprintf@plt>
  cmp    %r15,%r14
  jne    L35
L2:
  mov    %r13,%rdx
  lea    D143(%rip),%rsi
  mov    %r12,%rdi
  xor    %eax,%eax
  call   <fprintf@plt>
  mov    %r12,%rcx
  mov    $0x19,%edx
  mov    $0x1,%esi
  lea    D183(%rip),%rdi
  lea    D166(%rip),%r15
  call   <fwrite@plt>
  mov    %r12,%rcx
  mov    $0x10,%edx
  mov    %r15,%rdi
  mov    $0x1,%esi
  lea    D52(%rip),%rbp
  call   <fwrite@plt>
  mov    %r13,%rdx
  mov    %r12,%rdi
  xor    %eax,%eax
  lea    D54(%rip),%rsi
  call   <fprintf@plt>
  mov    %r12,%rcx
  mov    $0x19,%edx
  mov    $0x1,%esi
  lea    D71(%rip),%rdi
  call   <fwrite@plt>
  mov    %r13,%rdx
  mov    %r12,%rdi
  xor    %eax,%eax
  lea    D244(%rip),%rsi
  call   <fprintf@plt>
  mov    %r12,%rcx
  mov    $0x11,%edx
  mov    $0x1,%esi
  lea    D18(%rip),%rdi
  call   <fwrite@plt>
  mov    %r12,%rcx
  mov    $0xf,%edx
  mov    $0x1,%esi
  lea    D294(%rip),%rdi
  call   <fwrite@plt>
  mov    %r13,%rdx
  mov    %r12,%rdi
  xor    %eax,%eax
  lea    D62(%rip),%rsi
  call   <fprintf@plt>
  mov    %r12,%rcx
  mov    $0x14,%edx
  mov    $0x1,%esi
  lea    D145(%rip),%rdi
  call   <fwrite@plt>
  mov    %r12,%rcx
  mov    $0x16,%edx
  mov    $0x1,%esi
  lea    D320(%rip),%rdi
  call   <fwrite@plt>
  mov    %r12,%rcx
  mov    $0x13,%edx
  mov    $0x1,%esi
  lea    D225(%rip),%rdi
  call   <fwrite@plt>
  mov    %r12,%rcx
  mov    $0x12,%edx
  mov    $0x1,%esi
  lea    D119(%rip),%rdi
  call   <fwrite@plt>
  mov    %r12,%rcx
  mov    $0x3,%edx
  mov    $0x1,%esi
  lea    D202(%rip),%rdi
  call   <fwrite@plt>
  mov    %r12,%rcx
  mov    $0x8,%edx
  mov    %rbp,%rdi
  mov    $0x1,%esi
  call   <fwrite@plt>
  mov    %r13,%rcx
  mov    %rbx,%rdx
  mov    %r12,%rdi
  lea    D64(%rip),%rsi
  xor    %eax,%eax
  call   <fprintf@plt>
  mov    %r13,%rdx
  mov    %r12,%rdi
  xor    %eax,%eax
  lea    D325(%rip),%rsi
  call   <fprintf@plt>
  mov    %r12,%rcx
  mov    $0x10,%edx
  mov    %r15,%rdi
  mov    $0x1,%esi
  call   <fwrite@plt>
  mov    %r13,%rdx
  mov    %r12,%rdi
  xor    %eax,%eax
  lea    D289(%rip),%rsi
  call   <fprintf@plt>
  mov    %r12,%rcx
  mov    $0x7,%edx
  mov    $0x1,%esi
  lea    D203(%rip),%rdi
  call   <fwrite@plt>
  mov    %r13,%rcx
  mov    %r13,%rdx
  mov    %r12,%rdi
  lea    D239(%rip),%rsi
  xor    %eax,%eax
  call   <fprintf@plt>
  mov    %r12,%rcx
  mov    $0x8,%edx
  mov    %rbp,%rdi
  mov    $0x1,%esi
  call   <fwrite@plt>
  mov    %r12,%rcx
  mov    $0x25,%edx
  mov    $0x1,%esi
  lea    D252(%rip),%rdi
  call   <fwrite@plt>
  mov    %r12,%rcx
  mov    $0xa,%edx
  mov    $0x1,%esi
  lea    D28(%rip),%rdi
  call   <fwrite@plt>
  mov    %r12,%rcx
  mov    $0x6,%edx
  mov    $0x1,%esi
  lea    D306(%rip),%rdi
  call   <fwrite@plt>
  mov    %r13,%rdx
  mov    %r12,%rdi
  xor    %eax,%eax
  lea    D169(%rip),%rsi
  call   <fprintf@plt>
  mov    %r12,%rcx
  mov    $0x6,%edx
  mov    $0x1,%esi
  lea    D342(%rip),%rdi
  call   <fwrite@plt>
  mov    0x4(%rsp),%eax
  test   %eax,%eax
  jle    L38
  mov    0x8(%rsp),%rbx
  sub    $0x1,%eax
  lea    D194(%rip),%rbp
  lea    0x8(%rbx,%rax,8),%r13
  nopw   0x0(%rax,%rax,1)
L34:
  mov    (%rbx),%rdx
  mov    %rbp,%rsi
  mov    %r12,%rdi
  xor    %eax,%eax
  add    $0x8,%rbx
  call   <fprintf@plt>
  cmp    %r13,%rbx
  jne    L34
L38:
  mov    %r12,%rsi
  mov    $0xa,%edi
  call   <fputc@plt>
  mov    %r12,%rcx
  mov    $0xc,%edx
  mov    $0x1,%esi
  lea    D269(%rip),%rdi
  call   <fwrite@plt>
  add    $0x18,%rsp
  mov    %r12,%rcx
  mov    $0x3,%edx
  pop    %rbx
  mov    $0x1,%esi
  lea    D73(%rip),%rdi
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  jmp    1090 <fwrite@plt>
```

tool_calls: name: unpack_data
arguments: tag: D90
type: string
name: unpack_data
arguments: tag: D278
type: string
name: unpack_data
arguments: tag: D128
type: string
name: unpack_data
arguments: tag: D192
type: string
name: unpack_data
arguments: tag: D211
type: string
name: unpack_data
arguments: tag: D314
type: string
name: unpack_data
arguments: tag: D201
type: string
name: unpack_data
arguments: tag: D152
type: string
name: unpack_data
arguments: tag: D143
type: string
name: unpack_data
arguments: tag: D183
type: string
name: unpack_data
arguments: tag: D166
type: string
name: unpack_data
arguments: tag: D52
type: string
name: unpack_data
arguments: tag: D54
type: string
name: unpack_data
arguments: tag: D71
type: string
name: unpack_data
arguments: tag: D244
type: string
name: unpack_data
arguments: tag: D18
type: string
name: unpack_data
arguments: tag: D294
type: string
name: unpack_data
arguments: tag: D62
type: string
name: unpack_data
arguments: tag: D145
type: string
name: unpack_data
arguments: tag: D320
type: string
name: unpack_data
arguments: tag: D225
type: string
name: unpack_data
arguments: tag: D119
type: string
name: unpack_data
arguments: tag: D202
type: string
name: unpack_data
arguments: tag: D64
type: string
name: unpack_data
arguments: tag: D325
type: string
name: unpack_data
arguments: tag: D289
type: string
name: unpack_data
arguments: tag: D203
type: string
name: unpack_data
arguments: tag: D239
type: string
name: unpack_data
arguments: tag: D252
type: string
name: unpack_data
arguments: tag: D28
type: string
name: unpack_data
arguments: tag: D306
type: string
name: unpack_data
arguments: tag: D169
type: string
name: unpack_data
arguments: tag: D342
type: string
name: unpack_data
arguments: tag: D194
type: string
name: unpack_data
arguments: tag: D269
type: string
name: unpack_data
arguments: tag: D73
type: string

tool: D90: // Generated by vtkWrapPythonInit in VTK/Wrapping


tool: D278: VTK_ABI_EXPORT 

tool: D128: #include "vtkPython.h"


tool: D192: #include "vtkPythonCompatibility.h"


tool: D211: #include "vtkSystemIncludes.h"


tool: D314: #include <string.h>


tool: D201: // Handle compiler warning messages, etc.
#if defined( _MSC_VER ) && !defined(VTK_DISPLAY_WIN32_WARNINGS)
#pragma warning ( disable : 4706 )
#endif // Windows Warnings



tool: D152: extern  "C" {%sPyObject *PyVTKAddFile_%s(PyObject *); }


tool: D143: 
static PyMethodDef Py%s_Methods[] = {


tool: D183: {NULL, NULL, 0, NULL}};



tool: D166: #ifdef VTK_PY3K


tool: D52: #endif



tool: D54: static PyModuleDef Py%s_Module = {


tool: D71:   PyModuleDef_HEAD_INIT,


tool: D244:   "%s", // m_name


tool: D18:   NULL, // m_doc


tool: D294:   0, // m_size


tool: D62:   Py%s_Methods, //m_methods


tool: D145:   NULL, // m_reload


tool: D320:   NULL, // m_traverse


tool: D225:   NULL, // m_clear


tool: D119:   NULL  // m_free


tool: D202: };


tool: D64: extern  "C" {%sPyObject *real_init%s(const char *); }



tool: D325: PyObject *real_init%s(const char *)
{


tool: D289:   PyObject *m = PyModule_Create(&Py%s_Module);


tool: D203: #else



tool: D239:   PyObject *m = Py_InitModule("%s",
                              Py%s_Methods);


tool: D252:   PyObject *d = PyModule_GetDict(m);


tool: D28:   if (!d)


tool: D306:     {


tool: D169:     Py_FatalError("can't get dictionary for module %s");


tool: D342:     }


tool: D194:   PyVTKAddFile_%s(d);


tool: D269:   return m;


tool: D73: }



assistant: ```c
void CreateImplFile(const char *libName, int numFiles, char **files, FILE *fout) {
  int i;
  const char *dllexp = "VTK_ABI_EXPORT ";
  fprintf(fout, "// Generated by vtkWrapPythonInit in VTK/Wrapping\n");
  fprintf(fout, "#include \"vtkPython.h\"\n");
  fprintf(fout, "#include \"vtkPythonCompatibility.h\"\n");
  fprintf(fout, "#include \"vtkSystemIncludes.h\"\n");
  fprintf(fout, "#include <string.h>\n");
  fprintf(fout, "// Handle compiler warning messages, etc.\n"
                "#if defined( _MSC_VER ) && !defined(VTK_DISPLAY_WIN32_WARNINGS)\n"
                "#pragma warning ( disable : 4706 )\n"
                "#endif // Windows Warnings\n\n");
  for (i = 0; i < numFiles; i++) {
    fprintf(fout, "extern  \"C\" {%sPyObject *PyVTKAddFile_%s(PyObject *); }\n", dllexp, files[i]);
  }
  fprintf(fout, "\nstatic PyMethodDef Py%s_Methods[] = {\n", libName);
  fprintf(fout, "{NULL, NULL, 0, NULL}};\n\n");
  fprintf(fout, "#ifdef VTK_PY3K\n");
  fprintf(fout, "static PyModuleDef Py%s_Module = {\n", libName);
  fprintf(fout, "  PyModuleDef_HEAD_INIT,\n");
  fprintf(fout, "  \"%s\", // m_name\n", libName);
  fprintf(fout, "  NULL, // m_doc\n");
  fprintf(fout, "  0, // m_size\n");
  fprintf(fout, "  Py%s_Methods, //m_methods\n", libName);
  fprintf(fout, "  NULL, // m_reload\n");
  fprintf(fout, "  NULL, // m_traverse\n");
  fprintf(fout, "  NULL, // m_clear\n");
  fprintf(fout, "  NULL  // m_free\n");
  fprintf(fout, "};\n");
  fprintf(fout, "#endif\n\n");
  fprintf(fout, "extern  \"C\" {%sPyObject *real_init%s(const char *); }\n\n", dllexp, libName);
  fprintf(fout, "PyObject *real_init%s(const char *)\n{\n", libName);
  fprintf(fout, "#ifdef VTK_PY3K\n");
  fprintf(fout, "  PyObject *m = PyModule_Create(&Py%s_Module);\n", libName);
  fprintf(fout, "#else\n\n");
  fprintf(fout,
          "  PyObject *m = Py_InitModule(\"%s\",\n"
          "                              Py%s_Methods);\n",
          libName, libName);
  fprintf(fout, "#endif\n\n");
  fprintf(fout, "  PyObject *d = PyModule_GetDict(m);\n");
  fprintf(fout, "  if (!d)\n");
  fprintf(fout, "    {\n");
  fprintf(fout, "    Py_FatalError(\"can't get dictionary for module %s\");\n", libName);
  fprintf(fout, "    }\n");
  for (i = 0; i < numFiles; i++) {
    fprintf(fout, "  PyVTKAddFile_%s(d);\n", files[i]);
  }
  fprintf(fout, "\n");
  fprintf(fout, "  return m;\n");
  fprintf(fout, "}\n\n");
}
```