user: What would the C source look like for the assembly code provided here?

```asm
<vtkWrapText_PythonName>:
  endbr64
  push   %r12
  mov    %rdi,%r12
  push   %rbp
  mov    %rsi,%rbp
  push   %rbx
  call   <vtkParse_IdentifierLength@plt>
  cmpb   $0x0,(%r12,%rax,1)
  je     L179
  mov    %rbp,%rsi
  mov    %r12,%rdi
  call   <vtkParse_MangledTypeName@plt>
  movzbl 0x0(%rbp),%edx
  cmp    $0x4e,%dl
  jne    L13
  mov    %rbp,%rax
  xor    %edi,%edi
  xor    %ecx,%ecx
  xor    %r8d,%r8d
L6:
  lea    0x1(%rax),%rdx
  movzbl 0x1(%rax),%eax
  add    $0x1,%edi
  lea    -0x30(%rax),%esi
  cmp    $0x9,%sil
  ja     L203
  nopl   0x0(%rax)
L379:
  sub    $0x30,%eax
  lea    (%rcx,%rcx,4),%rcx
  add    $0x1,%rdx
  movsbq %al,%rax
  lea    (%rax,%rcx,2),%rcx
  movzbl (%rdx),%eax
  lea    -0x30(%rax),%esi
  cmp    $0x9,%sil
  jbe    L379
L203:
  lea    (%r8,%rcx,1),%rsi
  cmp    %r8,%rsi
  jbe    L405
  lea    0x0(%rbp,%r8,1),%r11
  lea    0x1(%rdx),%r10
  mov    %r11,%r9
  lea    -0x1(%rcx),%rax
  sub    %r10,%r9
  cmp    $0xe,%r9
  jbe    L283
  cmp    $0x6,%rax
  jbe    L283
  cmp    $0xe,%rax
  jbe    L461
  mov    %rcx,%r9
  xor    %eax,%eax
  and    $0xfffffffffffffff0,%r9
  xchg   %ax,%ax
L176:
  movdqu (%rdx,%rax,1),%xmm0
  movups %xmm0,(%r11,%rax,1)
  add    $0x10,%rax
  cmp    %r9,%rax
  jne    L176
  mov    %rcx,%r9
  and    $0xfffffffffffffff0,%r9
  lea    (%r8,%r9,1),%rax
  lea    (%rdx,%r9,1),%rbx
  cmp    %r9,%rcx
  je     L100
  mov    %rcx,%r10
  sub    %r9,%r10
  lea    -0x1(%r10),%r8
  cmp    $0x6,%r8
  jbe    L300
L144:
  mov    (%rdx,%r9,1),%r8
  mov    %r8,(%r11,%r9,1)
  mov    %r10,%r8
  and    $0xfffffffffffffff8,%r8
  add    %r8,%rax
  add    %r8,%rbx
  cmp    %r8,%r10
  je     L100
L300:
  movzbl (%rbx),%r9d
  lea    0x1(%rax),%r8
  mov    %r9b,0x0(%rbp,%rax,1)
  cmp    %r8,%rsi
  jbe    L100
  movzbl 0x1(%rbx),%r9d
  lea    0x2(%rax),%r8
  mov    %r9b,0x1(%rbp,%rax,1)
  cmp    %r8,%rsi
  jbe    L100
  movzbl 0x2(%rbx),%r9d
  lea    0x3(%rax),%r8
  mov    %r9b,0x2(%rbp,%rax,1)
  cmp    %r8,%rsi
  jbe    L100
  movzbl 0x3(%rbx),%r9d
  lea    0x4(%rax),%r8
  mov    %r9b,0x3(%rbp,%rax,1)
  cmp    %r8,%rsi
  jbe    L100
  movzbl 0x4(%rbx),%r9d
  lea    0x5(%rax),%r8
  mov    %r9b,0x4(%rbp,%rax,1)
  cmp    %r8,%rsi
  jbe    L100
  movzbl 0x5(%rbx),%r9d
  lea    0x6(%rax),%r8
  mov    %r9b,0x5(%rbp,%rax,1)
  cmp    %r8,%rsi
  jbe    L100
  movzbl 0x6(%rbx),%r8d
  mov    %r8b,0x6(%rbp,%rax,1)
L100:
  lea    (%rdx,%rcx,1),%rax
  mov    %rsi,%rcx
L195:
  movb   $0x2e,0x0(%rbp,%rcx,1)
  movzbl (%rax),%edx
  lea    0x1(%rcx),%r8
  cmp    $0x4e,%dl
  jne    L256
  mov    %rsi,%rcx
  jmp    L6
L179:
  pop    %rbx
  mov    %r12,%rsi
  mov    %rbp,%rdi
  pop    %rbp
  pop    %r12
  jmp    1080 <strcpy@plt>
  nop
L283:
  mov    %rdx,%r9
  mov    %r8,%rax
  sub    %r8,%r9
  nopl   0x0(%rax)
L480:
  add    $0x1,%rax
  movzbl -0x1(%r9,%rax,1),%r8d
  mov    %r8b,-0x1(%rbp,%rax,1)
  cmp    %rax,%rsi
  jne    L480
  jmp    L100
  cs nopw 0x0(%rax,%rax,1)
L405:
  mov    %rdx,%rax
  mov    %r8,%rcx
  jmp    L195
  nopl   0x0(%rax,%rax,1)
L256:
  lea    0x2(%rcx),%rsi
  lea    0x0(%rbp,%r8,1),%r11
L397:
  lea    -0x30(%rdx),%ecx
  cmp    $0x9,%cl
  ja     L313
  xor    %ecx,%ecx
  nopw   0x0(%rax,%rax,1)
L238:
  sub    $0x30,%edx
  mov    %rax,%r10
  lea    (%rcx,%rcx,4),%rcx
  add    $0x1,%rax
  movsbq %dl,%rdx
  lea    (%rdx,%rcx,2),%rcx
  movzbl (%rax),%edx
  lea    -0x30(%rdx),%r9d
  cmp    $0x9,%r9b
  jbe    L238
  lea    (%rcx,%r8,1),%r9
  cmp    %r8,%r9
  jbe    L313
  lea    0x0(%rbp,%r8,1),%rsi
  add    $0x2,%r10
  lea    -0x1(%rcx),%rdx
  mov    %rsi,%r11
  sub    %r10,%r11
  cmp    $0xe,%r11
  jbe    L118
  cmp    $0x6,%rdx
  jbe    L118
  cmp    $0xe,%rdx
  jbe    L29
  mov    %rcx,%r10
  xor    %edx,%edx
  and    $0xfffffffffffffff0,%r10
  nopw   0x0(%rax,%rax,1)
L420:
  movdqu (%rax,%rdx,1),%xmm1
  movups %xmm1,(%rsi,%rdx,1)
  add    $0x10,%rdx
  cmp    %r10,%rdx
  jne    L420
  mov    %rcx,%rsi
  and    $0xfffffffffffffff0,%rsi
  lea    (%rsi,%r8,1),%rdx
  lea    (%rax,%rsi,1),%r10
  cmp    %rcx,%rsi
  je     L55
  mov    %rcx,%r11
  sub    %rsi,%r11
  lea    -0x1(%r11),%rbx
  cmp    $0x6,%rbx
  jbe    L501
L327:
  mov    (%rax,%rsi,1),%rbx
  add    %rbp,%rsi
  mov    %rbx,(%rsi,%r8,1)
  mov    %r11,%rsi
  and    $0xfffffffffffffff8,%rsi
  add    %rsi,%rdx
  add    %rsi,%r10
  cmp    %rsi,%r11
  je     L55
L501:
  movzbl (%r10),%r8d
  lea    0x1(%rdx),%rsi
  mov    %r8b,0x0(%rbp,%rdx,1)
  cmp    %r9,%rsi
  jae    L55
  movzbl 0x1(%r10),%r8d
  lea    0x2(%rdx),%rsi
  mov    %r8b,0x1(%rbp,%rdx,1)
  cmp    %rsi,%r9
  jbe    L55
  movzbl 0x2(%r10),%r8d
  lea    0x3(%rdx),%rsi
  mov    %r8b,0x2(%rbp,%rdx,1)
  cmp    %r9,%rsi
  jae    L55
  movzbl 0x3(%r10),%r8d
  lea    0x4(%rdx),%rsi
  mov    %r8b,0x3(%rbp,%rdx,1)
  cmp    %rsi,%r9
  jbe    L55
  movzbl 0x4(%r10),%r8d
  lea    0x5(%rdx),%rsi
  mov    %r8b,0x4(%rbp,%rdx,1)
  cmp    %rsi,%r9
  jbe    L55
  movzbl 0x5(%r10),%r8d
  lea    0x6(%rdx),%rsi
  mov    %r8b,0x5(%rbp,%rdx,1)
  cmp    %rsi,%r9
  jbe    L55
  movzbl 0x6(%r10),%esi
  mov    %sil,0x6(%rbp,%rdx,1)
L55:
  add    %rcx,%rax
  lea    0x0(%rbp,%r9,1),%r11
  lea    0x1(%r9),%rsi
L313:
  movb   $0x5f,(%r11)
  movzbl (%rax),%ecx
  mov    %rsi,%rdx
  test   %cl,%cl
  je     L201
  sub    %rsi,%rax
  nop
L83:
  add    $0x1,%rdx
  mov    %cl,-0x1(%rbp,%rdx,1)
  movzbl (%rax,%rdx,1),%ecx
  test   %cl,%cl
  jne    L83
L201:
  movb   $0x0,0x0(%rbp,%rdx,1)
  test   %edi,%edi
  je     L316
  mov    %rbp,%rdi
  call   <strlen@plt>
  cmp    $0x2,%rax
  jbe    L316
  lea    -0x2(%rbp,%rax,1),%rdx
  cmpb   $0x5f,(%rdx)
  je     L407
L316:
  pop    %rbx
  pop    %rbp
  pop    %r12
  ret
L461:
  mov    %rcx,%r10
  mov    %rdx,%rbx
  mov    %r8,%rax
  xor    %r9d,%r9d
  jmp    L144
L13:
  mov    %rbp,%r11
  mov    %rbp,%rax
  mov    $0x1,%esi
  xor    %edi,%edi
  xor    %r8d,%r8d
  jmp    L397
L118:
  mov    %rax,%rsi
  sub    %r8,%rsi
  nopw   0x0(%rax,%rax,1)
L329:
  add    $0x1,%r8
  movzbl -0x1(%rsi,%r8,1),%edx
  mov    %dl,-0x1(%rbp,%r8,1)
  cmp    %r8,%r9
  jne    L329
  jmp    L55
L407:
  cmpb   $0x45,-0x1(%rbp,%rax,1)
  jne    L316
  movb   $0x0,(%rdx)
  jmp    L316
L29:
  mov    %rcx,%r11
  mov    %r8,%rdx
  mov    %rax,%r10
  xor    %esi,%esi
  jmp    L327
```

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';
    }
  }
}
```