user: Demonstrate the C code that generates the assembly output below:

```asm
<parse_char_code_common>:
  endbr64
  push   %r15
  push   %r14
  push   %r13
  mov    %rdi,%r13
  push   %r12
  mov    %edx,%r12d
  push   %rbp
  push   %rbx
  mov    %rsi,%rbx
  sub    $0x18,%rsp
  mov    (%rdi),%rbp
  mov    %ecx,0x8(%rsp)
  movsbl 0x1(%rbp),%r14d
  movsbl 0x0(%rbp),%r15d
  mov    %r14d,%edi
  call   <isxdigit@plt>
  test   %rax,%rax
  jne    L15
  add    $0x1,%rbp
L203:
  xor    %r14d,%r14d
  test   %rbx,%rbx
  je     L197
  cmpb   $0x7e,0x0(%rbp)
  je     L29
L197:
  cmp    $0x20,%r12b
  je     L199
L111:
  test   %r12b,%r12b
  jne    L211
L195:
  mov    %r15d,%eax
  not    %eax
  shr    $0x1f,%eax
L49:
  test   %r14d,%r14d
  js     L222
  test   %al,%al
  je     L222
  mov    %rbp,0x0(%r13)
L222:
  test   %rbx,%rbx
  je     L13
  mov    %r14d,(%rbx)
L13:
  add    $0x18,%rsp
  mov    %r15d,%eax
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
  nopl   0x0(%rax)
L211:
  cmp    %r12b,0x0(%rbp)
  jne    L87
  add    $0x1,%rbp
  jmp    L195
L29:
  movsbl 0x2(%rbp),%esi
  movsbl 0x1(%rbp),%r14d
  mov    %esi,%edi
  mov    %esi,0xc(%rsp)
  call   <isxdigit@plt>
  mov    0xc(%rsp),%esi
  test   %rax,%rax
  jne    L65
  add    $0x2,%rbp
  cmp    $0x20,%r12b
  jne    L111
L199:
  movsbl 0x0(%rbp),%edi
  test   %dil,%dil
  je     L163
  call   <isspace@plt>
  test   %eax,%eax
  jne    L163
  xor    %r15d,%r15d
  mov    $0x1,%eax
  jmp    L49
  nopw   0x0(%rax,%rax,1)
L163:
  mov    %rbp,%rdi
  call   <skip_whitespace@plt>
  mov    %rax,%rbp
  mov    %r15d,%eax
  not    %eax
  shr    $0x1f,%eax
  jmp    L49
  nopl   0x0(%rax,%rax,1)
L15:
  mov    %r15d,%edi
  add    $0x2,%rbp
  call   <isxdigit@plt>
  test   %rax,%rax
  jne    L32
  mov    $0xffffffff,%r15d
  jmp    L203
  nopl   0x0(%rax)
L32:
  mov    %r15d,%edi
  mov    %r14d,%esi
  call   <two_char_as_hex@plt>
  mov    %eax,%r15d
  mov    0x8(%rsp),%eax
  or     %r15d,%eax
  mov    $0xffffffff,%eax
  cmove  %eax,%r15d
  jmp    L203
  nopl   0x0(%rax,%rax,1)
L65:
  mov    %r14d,%edi
  mov    %esi,0xc(%rsp)
  add    $0x3,%rbp
  call   <isxdigit@plt>
  mov    0xc(%rsp),%esi
  test   %rax,%rax
  jne    L116
  mov    $0xffffffff,%r14d
  jmp    L197
  nopl   0x0(%rax)
L87:
  mov    $0xffffffff,%r15d
  jmp    L222
L116:
  mov    %r14d,%edi
  call   <two_char_as_hex@plt>
  mov    %eax,%r14d
  mov    0x8(%rsp),%eax
  or     %r14d,%eax
  mov    $0xffffffff,%eax
  cmove  %eax,%r14d
  jmp    L197
```

assistant: ```c
int parse_char_code_common(char **_s, int *comp, char terminator, int zeroOk) {
  char *s = *_s;
  int cc, cc2;
  char follower;
  cc = *(s++);
  follower = *s;
  if (isxdigit(follower)) {
    s++;
    if (isxdigit(cc))
      cc = two_char_as_hex(cc, follower);
    else
      cc = -1;
    if ((!zeroOk) && (cc == 0))
      cc = -1;
  }
  cc2 = 0;
  if ((comp != NULL) && (*s != '~'))
    ;
  else if ((comp != NULL) && (*s == '~')) {
    s++;
    cc2 = *(s++);
    follower = *s;
    if (isxdigit(follower)) {
      s++;
      if (isxdigit(cc2))
        cc2 = two_char_as_hex(cc2, follower);
      else
        cc2 = -1;
      if ((!zeroOk) && (cc2 == 0))
        cc2 = -1;
    }
  }
  if (terminator == ' ') {
    if ((*s != 0) && (!isspace(*s)))
      cc = 0;
    else
      s = skip_whitespace(s);
  } else if (terminator != 0) {
    if (*s != terminator)
      cc = -1;
    else
      s++;
  }
  if ((cc >= 0) && (cc2 >= 0))
    *_s = s;
  if (comp != NULL)
    *comp = cc2;
  return cc;
}
```