user: What is the c source code of the assembly code below?

```asm
<duk__parse_pointer>:
  endbr64
  xor    %r8d,%r8d
  cmpb   $0x30,(%rdi)
  mov    %rdi,%rdx
  mov    %rsi,%rcx
  jne    L63
  cmpb   $0x78,0x1(%rdi)
  je     L268
L63:
  mov    %r8d,%eax
  ret
  nopl   0x0(%rax)
L268:
  movzbl 0x2(%rdi),%eax
  lea    -0x30(%rax),%esi
  cmp    $0x9,%sil
  jbe    L7
  lea    -0x61(%rax),%esi
  cmp    $0x5,%sil
  ja     L63
  sub    $0x57,%eax
  cltq
L422:
  movzbl 0x3(%rdx),%esi
  shl    $0x4,%rax
  lea    -0x30(%rsi),%edi
  cmp    $0x9,%dil
  jbe    L81
  lea    -0x61(%rsi),%edi
  cmp    $0x5,%dil
  ja     L413
  sub    $0x57,%esi
  movslq %esi,%rsi
  add    %rsi,%rax
L36:
  movzbl 0x4(%rdx),%esi
  shl    $0x4,%rax
  lea    -0x30(%rsi),%edi
  cmp    $0x9,%dil
  jbe    L121
  lea    -0x61(%rsi),%edi
  cmp    $0x5,%dil
  ja     L413
  sub    $0x57,%esi
  movslq %esi,%rsi
  add    %rsi,%rax
L242:
  movzbl 0x5(%rdx),%esi
  shl    $0x4,%rax
  lea    -0x30(%rsi),%edi
  cmp    $0x9,%dil
  jbe    L101
  lea    -0x61(%rsi),%edi
  cmp    $0x5,%dil
  ja     L413
  sub    $0x57,%esi
  movslq %esi,%rsi
  add    %rsi,%rax
L282:
  movzbl 0x6(%rdx),%esi
  shl    $0x4,%rax
  lea    -0x30(%rsi),%edi
  cmp    $0x9,%dil
  jbe    L74
  lea    -0x61(%rsi),%edi
  cmp    $0x5,%dil
  ja     L413
  sub    $0x57,%esi
  movslq %esi,%rsi
  add    %rsi,%rax
L120:
  movzbl 0x7(%rdx),%esi
  shl    $0x4,%rax
  lea    -0x30(%rsi),%edi
  cmp    $0x9,%dil
  jbe    L435
  lea    -0x61(%rsi),%edi
  cmp    $0x5,%dil
  ja     L413
  sub    $0x57,%esi
  movslq %esi,%rsi
  add    %rsi,%rax
L473:
  movzbl 0x8(%rdx),%esi
  shl    $0x4,%rax
  lea    -0x30(%rsi),%edi
  cmp    $0x9,%dil
  jbe    L246
  lea    -0x61(%rsi),%edi
  cmp    $0x5,%dil
  ja     L413
  sub    $0x57,%esi
  movslq %esi,%rsi
  add    %rsi,%rax
L190:
  movzbl 0x9(%rdx),%esi
  shl    $0x4,%rax
  lea    -0x30(%rsi),%edi
  cmp    $0x9,%dil
  jbe    L454
  lea    -0x61(%rsi),%edi
  cmp    $0x5,%dil
  ja     L413
  sub    $0x57,%esi
  movslq %esi,%rsi
  add    %rsi,%rax
L486:
  movzbl 0xa(%rdx),%esi
  shl    $0x4,%rax
  lea    -0x30(%rsi),%edi
  cmp    $0x9,%dil
  jbe    L167
  lea    -0x61(%rsi),%edi
  cmp    $0x5,%dil
  ja     L413
  sub    $0x57,%esi
  movslq %esi,%rsi
  add    %rsi,%rax
L73:
  movzbl 0xb(%rdx),%esi
  shl    $0x4,%rax
  lea    -0x30(%rsi),%edi
  cmp    $0x9,%dil
  jbe    L425
  lea    -0x61(%rsi),%edi
  cmp    $0x5,%dil
  ja     L413
  sub    $0x57,%esi
  movslq %esi,%rsi
  add    %rsi,%rax
L15:
  movzbl 0xc(%rdx),%esi
  shl    $0x4,%rax
  lea    -0x30(%rsi),%edi
  cmp    $0x9,%dil
  jbe    L87
  lea    -0x61(%rsi),%edi
  cmp    $0x5,%dil
  ja     L413
  sub    $0x57,%esi
  movslq %esi,%rsi
  add    %rsi,%rax
L401:
  movzbl 0xd(%rdx),%esi
  shl    $0x4,%rax
  lea    -0x30(%rsi),%edi
  cmp    $0x9,%dil
  jbe    L233
  lea    -0x61(%rsi),%edi
  cmp    $0x5,%dil
  ja     L413
  sub    $0x57,%esi
  movslq %esi,%rsi
  add    %rsi,%rax
L138:
  movzbl 0xe(%rdx),%esi
  shl    $0x4,%rax
  lea    -0x30(%rsi),%edi
  cmp    $0x9,%dil
  jbe    L367
  lea    -0x61(%rsi),%edi
  cmp    $0x5,%dil
  ja     L413
  sub    $0x57,%esi
  movslq %esi,%rsi
  add    %rsi,%rax
L38:
  movzbl 0xf(%rdx),%esi
  shl    $0x4,%rax
  lea    -0x30(%rsi),%edi
  cmp    $0x9,%dil
  jbe    L320
  lea    -0x61(%rsi),%edi
  cmp    $0x5,%dil
  ja     L413
  sub    $0x57,%esi
  movslq %esi,%rsi
  add    %rsi,%rax
L490:
  movzbl 0x10(%rdx),%esi
  shl    $0x4,%rax
  lea    -0x30(%rsi),%edi
  cmp    $0x9,%dil
  jbe    L500
  lea    -0x61(%rsi),%edi
  cmp    $0x5,%dil
  ja     L413
  sub    $0x57,%esi
  movslq %esi,%rsi
  add    %rsi,%rax
L26:
  movzbl 0x11(%rdx),%edx
  shl    $0x4,%rax
  lea    -0x30(%rdx),%esi
  cmp    $0x9,%sil
  ja     L56
  sub    $0x30,%edx
  movslq %edx,%rdx
  add    %rdx,%rax
L296:
  mov    $0x1,%r8d
  mov    %rax,(%rcx)
  mov    %r8d,%eax
  ret
  nopl   0x0(%rax)
L7:
  sub    $0x30,%eax
  cltq
  jmp    L422
  nopw   0x0(%rax,%rax,1)
L81:
  sub    $0x30,%esi
  movslq %esi,%rsi
  add    %rsi,%rax
  jmp    L36
  cs nopw 0x0(%rax,%rax,1)
L121:
  sub    $0x30,%esi
  movslq %esi,%rsi
  add    %rsi,%rax
  jmp    L242
  xchg   %ax,%ax
L101:
  sub    $0x30,%esi
  movslq %esi,%rsi
  add    %rsi,%rax
  jmp    L282
  xchg   %ax,%ax
L74:
  sub    $0x30,%esi
  movslq %esi,%rsi
  add    %rsi,%rax
  jmp    L120
  xchg   %ax,%ax
L435:
  sub    $0x30,%esi
  movslq %esi,%rsi
  add    %rsi,%rax
  jmp    L473
  xchg   %ax,%ax
L246:
  sub    $0x30,%esi
  movslq %esi,%rsi
  add    %rsi,%rax
  jmp    L190
  xchg   %ax,%ax
L454:
  sub    $0x30,%esi
  movslq %esi,%rsi
  add    %rsi,%rax
  jmp    L486
  xchg   %ax,%ax
L167:
  sub    $0x30,%esi
  movslq %esi,%rsi
  add    %rsi,%rax
  jmp    L73
  xchg   %ax,%ax
L425:
  sub    $0x30,%esi
  movslq %esi,%rsi
  add    %rsi,%rax
  jmp    L15
  xchg   %ax,%ax
L87:
  sub    $0x30,%esi
  movslq %esi,%rsi
  add    %rsi,%rax
  jmp    L401
  xchg   %ax,%ax
L233:
  sub    $0x30,%esi
  movslq %esi,%rsi
  add    %rsi,%rax
  jmp    L138
  xchg   %ax,%ax
L367:
  sub    $0x30,%esi
  movslq %esi,%rsi
  add    %rsi,%rax
  jmp    L38
  xchg   %ax,%ax
L320:
  sub    $0x30,%esi
  movslq %esi,%rsi
  add    %rsi,%rax
  jmp    L490
  xchg   %ax,%ax
L500:
  sub    $0x30,%esi
  movslq %esi,%rsi
  add    %rsi,%rax
  jmp    L26
  xchg   %ax,%ax
L413:
  xor    %r8d,%r8d
  jmp    L63
  nopl   0x0(%rax,%rax,1)
L56:
  lea    -0x61(%rdx),%esi
  cmp    $0x5,%sil
  ja     L413
  sub    $0x57,%edx
  movslq %edx,%rdx
  add    %rdx,%rax
  jmp    L296
```

assistant: ```c
int duk__parse_pointer(const char *str, void **out) {
  const unsigned char *p;
  unsigned char ch;
  int count;
  int limit;
  long val;
  p = (const unsigned char *)str;
  if (p[0] != (unsigned char)'0' || p[1] != (unsigned char)'x') {
    return 0;
  }
  p += 2;
  for (val = 0, count = 0, limit = sizeof(void *) * 2; count < limit; count++) {
    ch = *p++;
    val <<= 4;
    if (ch >= (unsigned char)'0' && ch <= (unsigned char)'9') {
      val += ch - (unsigned char)'0';
    } else if (ch >= (unsigned char)'a' && ch <= (unsigned char)'f') {
      val += ch - (unsigned char)'a' + 0x0a;
    } else {
      return 0;
    }
  }
  *out = (void *)val;
  return 1;
}
```