user: 请从给定的汇编指令推导出C源代码：

```asm
<vtkWrapText_PythonName>:
  endbr64
  push   %r12
  mov    %rdi,%r12
  push   %rbp
  mov    %rsi,%rbp
  sub    $0x8,%rsp
  call   <vtkParse_IdentifierLength@plt>
  cmpb   $0x0,(%r12,%rax,1)
  je     L192
  mov    %rbp,%rsi
  mov    %r12,%rdi
  call   <vtkParse_MangledTypeName@plt>
  movzbl 0x0(%rbp),%edx
  cmp    $0x4e,%dl
  jne    L130
  mov    %rbp,%rsi
  xor    %r9d,%r9d
  xor    %edx,%edx
  xor    %r8d,%r8d
  nopl   0x0(%rax)
L199:
  movzbl 0x1(%rsi),%eax
  lea    0x1(%rsi),%rcx
  add    $0x1,%r9d
  lea    -0x30(%rax),%esi
  cmp    $0x9,%sil
  ja     L38
  nopl   (%rax)
L194:
  sub    $0x30,%eax
  lea    (%rdx,%rdx,4),%rdx
  add    $0x1,%rcx
  movsbq %al,%rax
  lea    (%rax,%rdx,2),%rdx
  movzbl (%rcx),%eax
  lea    -0x30(%rax),%esi
  cmp    $0x9,%sil
  jbe    L194
L38:
  lea    (%r8,%rdx,1),%rdi
  cmp    %r8,%rdi
  jbe    L202
  mov    %r8,%rax
  mov    %rcx,%r8
  sub    %rax,%r8
  nopl   0x0(%rax)
L57:
  add    $0x1,%rax
  movzbl -0x1(%r8,%rax,1),%esi
  mov    %sil,-0x1(%rbp,%rax,1)
  cmp    %rax,%rdi
  jne    L57
  lea    (%rcx,%rdx,1),%rsi
  mov    %rdi,%rcx
L49:
  movb   $0x2e,0x0(%rbp,%rcx,1)
  movzbl (%rsi),%edx
  lea    0x1(%rcx),%r8
  cmp    $0x4e,%dl
  jne    L96
  mov    %rdi,%rdx
  jmp    L199
  nopl   0x0(%rax)
L192:
  add    $0x8,%rsp
  mov    %r12,%rsi
  mov    %rbp,%rdi
  pop    %rbp
  pop    %r12
  jmp    1080 <strcpy@plt>
  nopw   0x0(%rax,%rax,1)
L202:
  mov    %rcx,%rsi
  mov    %r8,%rcx
  jmp    L49
L96:
  add    $0x2,%rcx
  lea    0x0(%rbp,%r8,1),%r11
L190:
  lea    -0x30(%rdx),%eax
  cmp    $0x9,%al
  ja     L177
  xor    %edi,%edi
  nopw   0x0(%rax,%rax,1)
L140:
  sub    $0x30,%edx
  lea    (%rdi,%rdi,4),%rax
  add    $0x1,%rsi
  movsbq %dl,%rdx
  lea    (%rdx,%rax,2),%rdi
  movzbl (%rsi),%edx
  lea    -0x30(%rdx),%eax
  cmp    $0x9,%al
  jbe    L140
  lea    (%rdi,%r8,1),%r10
  cmp    %r8,%r10
  jbe    L177
  mov    %rsi,%rcx
  mov    %r8,%rax
  sub    %r8,%rcx
  jmp    L27
  nopl   0x0(%rax)
L197:
  movzbl (%rcx,%rax,1),%edx
L27:
  add    $0x1,%rax
  mov    %dl,-0x1(%rbp,%rax,1)
  cmp    %rax,%r10
  jne    L197
  add    %rdi,%rsi
  lea    0x0(%rbp,%r10,1),%r11
  lea    0x1(%r10),%rcx
L177:
  movb   $0x5f,(%r11)
  movzbl (%rsi),%edi
  mov    %rcx,%rdx
  test   %dil,%dil
  je     L65
  mov    %rsi,%rax
  sub    %rcx,%rax
  nopw   0x0(%rax,%rax,1)
L189:
  add    $0x1,%rdx
  mov    %dil,-0x1(%rbp,%rdx,1)
  movzbl (%rax,%rdx,1),%edi
  test   %dil,%dil
  jne    L189
L65:
  movb   $0x0,0x0(%rbp,%rdx,1)
  test   %r9d,%r9d
  je     L150
  mov    %rbp,%rdi
  call   <strlen@plt>
  cmp    $0x2,%rax
  jbe    L150
  lea    -0x2(%rbp,%rax,1),%rdx
  cmpb   $0x5f,(%rdx)
  je     L160
L150:
  add    $0x8,%rsp
  pop    %rbp
  pop    %r12
  ret
L130:
  mov    %rbp,%r11
  mov    %rbp,%rsi
  mov    $0x1,%ecx
  xor    %r9d,%r9d
  xor    %r8d,%r8d
  jmp    L190
L160:
  cmpb   $0x45,-0x1(%rbp,%rax,1)
  jne    L150
  movb   $0x0,(%rdx)
  jmp    L150
```

assistant: ```c
void vtkWrapText_PythonName(const char *name, char *pname) {
  size_t j = 0;
  size_t i;
  size_t l;
  char *cp;
  int scoped = 0;
  l = vtkParse_IdentifierLength(name);
  if (name[l] != '\0') {
    vtkParse_MangledTypeName(name, pname);
    i = 0;
    cp = pname;
    while (*cp == 'N') {
      scoped++;
      cp++;
      while (*cp >= '0' && *cp <= '9') {
        i = i * 10 + (*cp++ - '0');
      }
      i += j;
      while (j < i) {
        pname[j++] = *cp++;
      }
      pname[j++] = '.';
    }
    i = 0;
    while (*cp >= '0' && *cp <= '9') {
      i = i * 10 + (*cp++ - '0');
    }
    i += j;
    while (j < i) {
      pname[j++] = *cp++;
    }
    pname[j++] = '_';
    while (*cp != '\0') {
      pname[j++] = *cp++;
    }
    pname[j] = '\0';
  } else {
    strcpy(pname, name);
  }
  if (scoped) {
    j = strlen(pname);
    if (j > 2 && pname[j - 2] == '_' && pname[j - 1] == 'E') {
      pname[j - 2] = '\0';
    }
  }
}
```