user: 提供的汇编代码用C语言表示会是什么样子：

```asm
<quoted_printable_decode>:
  endbr64
  mov    %rsi,%r8
  mov    (%rsi),%rax
  mov    (%rdi),%rsi
  movzbl (%rax),%edx
  test   %dl,%dl
  je     L234
  lea    -0x1(%rax),%rcx
  mov    $0x61,%r10d
  mov    $0x41,%r9d
  jmp    L120
L345:
  movb   $0x20,(%rsi)
  lea    0x1(%rsi),%rsi
  mov    %rax,%rcx
  jmp    L91
L104:
  lea    0x2(%rcx),%r11
  movzbl 0x2(%rcx),%edx
  test   %dl,%dl
  je     L1
  cmp    $0x3d,%dl
  je     L105
  mov    %r11,%rax
  jmp    L94
L1:
  mov    %rax,(%r8)
L274:
  mov    %rsi,(%rdi)
  pop    %rbx
  ret
L105:
  add    $0x3,%rcx
  mov    %rcx,(%r8)
  jmp    L274
L211:
  mov    %edx,%r11d
  and    $0xffffffdf,%r11d
  sub    $0x41,%r11d
  cmp    $0x5,%r11b
  ja     L346
  cmp    $0x60,%ebx
  mov    %r9d,%ecx
  cmovg  %r10d,%ecx
  add    $0xa,%edx
  sub    %ecx,%edx
  jmp    L2
L346:
  cmp    $0xa,%ebx
  je     L91
  cmp    $0xd,%ebx
  je     L91
  movb   $0x3d,(%rsi)
  mov    %dl,0x1(%rsi)
  lea    0x2(%rsi),%rsi
  jmp    L91
L238:
  lea    -0x30(%rax,%rdx,1),%eax
L164:
  mov    %al,(%rsi)
  add    $0x1,%rsi
L91:
  lea    0x1(%rcx),%rax
  movzbl 0x1(%rcx),%edx
  test   %dl,%dl
  je     L274
  cmp    $0x5f,%dl
  je     L345
  cmp    $0x3f,%dl
  je     L104
L94:
  movzbl (%rax),%edx
  cmp    $0x3d,%dl
  je     L343
  mov    %dl,(%rsi)
  lea    0x1(%rsi),%rsi
  mov    %rax,%rcx
  jmp    L91
L280:
  cmp    $0x60,%ebx
  mov    %r9d,%r11d
  cmovg  %r10d,%r11d
  lea    0xa(%rax,%rdx,1),%eax
  sub    %r11d,%eax
  jmp    L164
L68:
  mov    %al,(%rsi)
  lea    0x1(%rsi),%rsi
  jmp    L91
L216:
  movb   $0x20,(%rsi)
  lea    0x1(%rsi),%rsi
  mov    %rax,%rcx
L292:
  lea    0x1(%rcx),%rax
  movzbl 0x1(%rcx),%edx
  test   %dl,%dl
  je     L234
L120:
  cmp    $0x5f,%dl
  je     L216
  cmp    $0x3f,%dl
  je     L201
L303:
  movzbl (%rax),%edx
  cmp    $0x3d,%dl
  je     L87
  mov    %dl,(%rsi)
  lea    0x1(%rsi),%rsi
  mov    %rax,%rcx
  jmp    L292
L201:
  lea    0x2(%rcx),%r11
  movzbl 0x2(%rcx),%edx
  test   %dl,%dl
  je     L175
  cmp    $0x3d,%dl
  je     L182
  mov    %r11,%rax
  jmp    L303
L175:
  mov    %rax,(%r8)
L234:
  mov    %rsi,(%rdi)
  ret
L182:
  add    $0x3,%rcx
  mov    %rcx,(%r8)
  jmp    L234
L87:
  push   %rbx
L343:
  lea    0x1(%rax),%rcx
  movzbl 0x1(%rax),%edx
  movsbl %dl,%ebx
  test   %ebx,%ebx
  je     L274
  cmpb   $0x0,0x2(%rax)
  je     L274
  mov    %ebx,%r11d
  sub    $0x30,%r11d
  cmp    $0x9,%r11d
  ja     L211
  sub    $0x30,%edx
L2:
  movsbl %dl,%edx
  shl    $0x4,%edx
  mov    %dl,(%rsi)
  lea    0x2(%rax),%rcx
  movzbl 0x2(%rax),%eax
  movsbl %al,%r11d
  sub    $0x30,%r11d
  cmp    $0x9,%r11d
  jbe    L238
  movsbl %al,%ebx
  mov    %eax,%r11d
  and    $0xffffffdf,%r11d
  sub    $0x41,%r11d
  cmp    $0x5,%r11b
  jbe    L280
  cmp    $0xa,%ebx
  je     L68
  cmp    $0xd,%ebx
  je     L68
  movb   $0x20,(%rsi)
  jmp    L91
```

assistant: ```c
void quoted_printable_decode(char **dest, char **src) {
  char *buf = *src;
  char *s = *dest;
  register int n = 0;
  buf--;
  while (*++buf) {
    if (*buf == '_') {
      *s++ = ' ';
      continue;
    };
    if (*buf == '?') {
      buf++;
      if (!*buf) {
        *src = --buf;
        break;
      } else if (*buf == '=') {
        *src = ++buf;
        break;
      }
    }
    if (*buf == '=') {
      n = *++buf;
      if (!n) {
        buf--;
        break;
      }
      if (!*(buf + 1))
        break;
      if ((n >= '0') && (n <= '9'))
        *s = (n - '0');
      else if (((n >= 'A') && (n <= 'F')) || ((n >= 'a') && (n <= 'f')))
        *s = 10 + n - ((n >= 'a') ? 'a' : 'A');
      else {
        if (n == '\n' || n == '\r')
          continue;
        *s++ = '=';
        *s++ = n;
        continue;
      };
      *s <<= 4;
      n = *++buf;
      if ((n >= '0') && (n <= '9'))
        *s += (n - '0');
      else if (((n >= 'A') && (n <= 'F')) || ((n >= 'a') && (n <= 'f')))
        *s += 10 + n - ((n >= 'a') ? 'a' : 'A');
      else {
        if (n == '\n' || n == '\r') {
          *s++ = n;
          continue;
        };
        *s = ' ';
        continue;
      };
      s++;
      continue;
    };
    *s++ = *buf;
  }
  *dest = s;
}
```