user: 下面的汇编指令对应的C源代码是什么：

```asm
<HexToDec>:
  endbr64
  mov    %rdi,%rax
  push   %rbx
  mov    %rsi,%rdi
  mov    %rdx,%r8
  movzbl 0x2(%rax),%esi
  mov    %rcx,%r9
  movzbl 0x1(%rax),%ecx
  lea    -0x30(%rsi),%edx
  cmp    $0x36,%dl
  ja     L349
  lea    D59(%rip),%r11
  movzbl %dl,%edx
  movslq (%r11,%rdx,4),%rdx
  add    %r11,%rdx
  notrack jmp *%rdx
  nopl   (%rax)
  sub    $0x30,%esi
  movsbl %sil,%r10d
  nop
L349:
  lea    -0x30(%rcx),%edx
  cmp    $0x36,%dl
  ja     L364
  lea    D10(%rip),%rsi
  movzbl %dl,%edx
  movslq (%rsi,%rdx,4),%rdx
  add    %rsi,%rdx
  notrack jmp *%rdx
  nopl   0x0(%rax)
L364:
  mov    %r10d,%ecx
  mov    %r10d,%edx
  shl    $0x4,%ecx
  nopl   0x0(%rax)
L223:
  movzbl 0x4(%rax),%r11d
  add    %ecx,%r10d
  movzbl 0x3(%rax),%esi
  lea    -0x30(%r11),%ecx
  cmp    $0x36,%cl
  ja     L192
  lea    D26(%rip),%rbx
  movzbl %cl,%ecx
  movslq (%rbx,%rcx,4),%rcx
  add    %rbx,%rcx
  notrack jmp *%rcx
  nopl   0x0(%rax)
  sub    $0x30,%r11d
  movsbl %r11b,%edx
  nopl   0x0(%rax,%rax,1)
L192:
  lea    -0x30(%rsi),%ecx
  cmp    $0x36,%cl
  ja     L194
  lea    D15(%rip),%r11
  movzbl %cl,%ecx
  movslq (%r11,%rcx,4),%rcx
  add    %r11,%rcx
  notrack jmp *%rcx
  nopl   0x0(%rax)
L194:
  mov    %edx,%ecx
  mov    %edx,%esi
  shl    $0x4,%ecx
  nopw   0x0(%rax,%rax,1)
L99:
  movzbl 0x6(%rax),%r11d
  add    %edx,%ecx
  movzbl 0x5(%rax),%edx
  lea    -0x30(%r11),%eax
  cmp    $0x36,%al
  ja     L104
  lea    D20(%rip),%rbx
  movzbl %al,%eax
  movslq (%rbx,%rax,4),%rax
  add    %rbx,%rax
  notrack jmp *%rax
  mov    $0xe,%esi
  nopl   0x0(%rax)
L104:
  lea    -0x30(%rdx),%eax
  cmp    $0x36,%al
  ja     L155
  lea    D36(%rip),%r11
  movzbl %al,%eax
  movslq (%r11,%rax,4),%rax
  add    %r11,%rax
  notrack jmp *%rax
  nopl   0x0(%rax,%rax,1)
L155:
  mov    %esi,%eax
  shl    $0x4,%eax
L307:
  add    %esi,%eax
  mov    %r10d,(%rdi)
  pop    %rbx
  mov    %ecx,(%r8)
  mov    %eax,(%r9)
  ret
  nopw   0x0(%rax,%rax,1)
  lea    -0x30(%rdx),%eax
  mov    %r10d,(%rdi)
  pop    %rbx
  movsbl %al,%eax
  mov    %ecx,(%r8)
  shl    $0x4,%eax
  add    %esi,%eax
  mov    %eax,(%r9)
  ret
  xchg   %ax,%ax
  lea    -0x30(%rcx),%edx
  movsbl %dl,%edx
  mov    %edx,%ecx
  shl    $0x4,%ecx
  jmp    L223
  sub    $0x30,%esi
  movsbl %sil,%esi
  mov    %esi,%ecx
  shl    $0x4,%ecx
  jmp    L99
  nopl   0x0(%rax)
  sub    $0x30,%r11d
  movsbl %r11b,%esi
  jmp    L104
  mov    $0xa0,%ecx
  mov    $0xa,%esi
  jmp    L99
  mov    $0xa,%esi
  jmp    L104
  mov    $0xb,%esi
  jmp    L104
  mov    $0xd0,%ecx
  mov    $0xd,%esi
  jmp    L99
  mov    $0xf,%esi
  jmp    L104
  mov    $0xc,%r10d
  jmp    L349
  mov    $0xd,%r10d
  jmp    L349
  mov    $0xc0,%ecx
  mov    $0xc,%esi
  jmp    L99
  mov    $0xb0,%ecx
  mov    $0xb,%esi
  jmp    L99
  mov    $0xd0,%ecx
  mov    $0xd,%edx
  jmp    L223
  mov    $0xb0,%ecx
  mov    $0xb,%edx
  jmp    L223
  mov    $0xa0,%eax
  mov    %r10d,(%rdi)
  pop    %rbx
  add    %esi,%eax
  mov    %ecx,(%r8)
  mov    %eax,(%r9)
  ret
  mov    $0xa,%edx
  jmp    L192
  mov    $0xc,%edx
  jmp    L192
  mov    $0xb,%edx
  jmp    L192
  mov    $0xd,%edx
  jmp    L192
  mov    $0xd0,%eax
  mov    %r10d,(%rdi)
  pop    %rbx
  add    %esi,%eax
  mov    %ecx,(%r8)
  mov    %eax,(%r9)
  ret
  mov    $0xc0,%eax
  mov    %r10d,(%rdi)
  pop    %rbx
  add    %esi,%eax
  mov    %ecx,(%r8)
  mov    %eax,(%r9)
  ret
  mov    $0xb0,%eax
  mov    %r10d,(%rdi)
  pop    %rbx
  add    %esi,%eax
  mov    %ecx,(%r8)
  mov    %eax,(%r9)
  ret
  mov    $0xc0,%ecx
  mov    $0xc,%edx
  jmp    L223
  mov    $0xa0,%ecx
  mov    $0xa,%edx
  jmp    L223
  mov    $0xa,%r10d
  jmp    L349
  mov    $0xb,%r10d
  jmp    L349
  mov    $0xc,%esi
  jmp    L104
  mov    $0xf0,%ecx
  mov    $0xf,%esi
  jmp    L99
  mov    $0xf,%r10d
  jmp    L349
  mov    $0xf0,%ecx
  mov    $0xf,%edx
  jmp    L223
  mov    $0xf,%edx
  jmp    L192
  mov    $0xe0,%eax
  jmp    L307
  mov    $0xf0,%eax
  jmp    L307
  mov    $0xd,%esi
  jmp    L104
  mov    $0xe0,%ecx
  mov    $0xe,%esi
  jmp    L99
  mov    $0xe,%edx
  jmp    L192
  mov    $0xe0,%ecx
  mov    $0xe,%edx
  jmp    L223
  mov    $0xe,%r10d
  jmp    L349
```

assistant: ```c
void HexToDec(char *hRGB, int *dR, int *dG, int *dB) {
  char tempCh[3];
  int i, j, rgb[3], tempI;
  for (i = 0; i < 3; i++) {
    rgb[i] = 0;
  }
  for (i = 1; i < 7; i += 2) {
    for (j = 0; j < 2; j++)
      tempCh[j] = hRGB[i + j];
    tempCh[2] = '\0';
    for (j = 0; j < 2; j++) {
      switch (tempCh[1 - j]) {
      case '0':
      case '1':
      case '2':
      case '3':
      case '4':
      case '5':
      case '6':
      case '7':
      case '8':
      case '9':
        tempI = tempCh[1 - j] - '0';
        break;
      case 'A':
      case 'a':
        tempI = 10;
        break;
      case 'B':
      case 'b':
        tempI = 11;
        break;
      case 'C':
      case 'c':
        tempI = 12;
        break;
      case 'D':
      case 'd':
        tempI = 13;
        break;
      case 'E':
      case 'e':
        tempI = 14;
        break;
      case 'F':
      case 'f':
        tempI = 15;
        break;
      }
      if (j == 0)
        rgb[(i - 1) / 2] += tempI;
      else
        rgb[(i - 1) / 2] += tempI * 16 * j;
    }
  }
  *dR = rgb[0];
  *dG = rgb[1];
  *dB = rgb[2];
}
```