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

```asm
<main>:
  endbr64
  push   %rbp
  lea    D62(%rip),%rdi
  push   %rbx
  sub    $0x88,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,0x78(%rsp)
  xor    %eax,%eax
  lea    0x3c(%rsp),%rsi
  call   <scanf@plt>
  xor    %eax,%eax
  call   <getchar@plt>
  mov    0x3c(%rsp),%eax
  lea    -0x1(%rax),%edx
  mov    %edx,0x3c(%rsp)
  test   %eax,%eax
  je     L159
  pxor   %xmm15,%xmm15
  lea    0x40(%rsp),%rbx
  lea    0x60(%rsp),%rbp
  movdqa D28(%rip),%xmm11
  movdqa %xmm15,%xmm7
  pcmpgtd %xmm11,%xmm7
  movaps %xmm7,(%rsp)
  xchg   %ax,%ax
L172:
  mov    %rbx,%rdi
  call   <gets@plt>
  mov    %rbx,%rdi
  call   <strlen@plt>
  movslq %eax,%r8
  test   %r8d,%r8d
  jle    L59
  lea    -0x1(%r8),%edx
  mov    %rbx,%rax
  xor    %esi,%esi
  lea    0x41(%rsp,%rdx,1),%rdi
  nopw   0x0(%rax,%rax,1)
L160:
  movzbl (%rax),%edx
  lea    -0x30(%rdx),%ecx
  cmp    $0x9,%cl
  ja     L7
  movslq %esi,%rcx
  add    $0x1,%esi
  mov    %dl,0x60(%rsp,%rcx,1)
L7:
  add    $0x1,%rax
  cmp    %rdi,%rax
  jne    L160
L102:
  movslq %esi,%rsi
  mov    %rbp,%rdi
  movb   $0x0,0x40(%rsp,%r8,1)
  movb   $0x0,0x60(%rsp,%rsi,1)
  call   <strlen@plt>
  pxor   %xmm15,%xmm15
  movdqa D28(%rip),%xmm11
  test   %eax,%eax
  jle    L127
  lea    -0x1(%rax),%edx
  cmp    $0xe,%edx
  jbe    L381
  movdqa 0x60(%rsp),%xmm4
  pxor   %xmm0,%xmm0
  movdqa %xmm15,%xmm9
  mov    %eax,%edx
  and    $0xfffffff0,%edx
  pcmpgtb %xmm4,%xmm0
  movdqa %xmm4,%xmm6
  punpcklbw %xmm0,%xmm6
  punpckhbw %xmm0,%xmm4
  pxor   %xmm0,%xmm0
  movdqa %xmm0,%xmm1
  movdqa %xmm6,%xmm8
  movdqa %xmm4,%xmm7
  pcmpgtw %xmm6,%xmm1
  pcmpgtw %xmm4,%xmm0
  punpckhwd %xmm1,%xmm6
  punpcklwd %xmm0,%xmm7
  punpckhwd %xmm0,%xmm4
  paddd  D40(%rip),%xmm6
  pcmpeqd %xmm0,%xmm0
  punpcklwd %xmm1,%xmm8
  paddd  D40(%rip),%xmm7
  paddd  D40(%rip),%xmm8
  movdqa %xmm6,%xmm13
  paddd  D40(%rip),%xmm4
  pslld  $0x1,%xmm13
  movdqa %xmm7,%xmm12
  movdqa %xmm8,%xmm1
  movdqa %xmm13,%xmm3
  pslld  $0x1,%xmm12
  movdqa %xmm4,%xmm5
  paddd  %xmm0,%xmm3
  pslld  $0x1,%xmm5
  movdqa %xmm12,%xmm2
  movdqa %xmm3,%xmm14
  pslld  $0x1,%xmm1
  paddd  %xmm0,%xmm2
  movaps %xmm5,0x20(%rsp)
  punpckldq %xmm3,%xmm14
  movaps %xmm1,0x10(%rsp)
  paddd  %xmm0,%xmm1
  paddd  %xmm5,%xmm0
  pcmpgtd %xmm14,%xmm9
  movdqa %xmm14,%xmm5
  movdqa (%rsp),%xmm14
  movdqa %xmm3,%xmm10
  punpckhdq %xmm3,%xmm3
  psrad  $0x1f,%xmm10
  pmuludq %xmm5,%xmm14
  pmuludq %xmm11,%xmm5
  pmuludq %xmm11,%xmm9
  paddq  %xmm14,%xmm9
  movdqa (%rsp),%xmm14
  psllq  $0x20,%xmm9
  paddq  %xmm9,%xmm5
  pmuludq %xmm3,%xmm14
  movdqa %xmm15,%xmm9
  pcmpgtd %xmm3,%xmm9
  pmuludq %xmm11,%xmm3
  pmuludq %xmm11,%xmm9
  paddq  %xmm14,%xmm9
  movdqa (%rsp),%xmm14
  psllq  $0x20,%xmm9
  paddq  %xmm9,%xmm3
  movdqa %xmm2,%xmm9
  shufps $0xdd,%xmm3,%xmm5
  movdqa %xmm10,%xmm3
  psrad  $0x1,%xmm5
  psubd  %xmm5,%xmm3
  psrad  $0x1f,%xmm9
  movdqa %xmm3,%xmm10
  pslld  $0x3,%xmm10
  paddd  %xmm3,%xmm10
  movdqa %xmm2,%xmm3
  punpckldq %xmm2,%xmm3
  paddd  %xmm13,%xmm10
  movdqa %xmm15,%xmm13
  pcmpgtd %xmm3,%xmm13
  punpckhdq %xmm2,%xmm2
  movdqa %xmm13,%xmm5
  movdqa %xmm14,%xmm13
  pmuludq %xmm3,%xmm13
  pmuludq %xmm11,%xmm5
  pmuludq %xmm11,%xmm3
  paddq  %xmm13,%xmm5
  movdqa %xmm15,%xmm13
  pcmpgtd %xmm2,%xmm13
  psllq  $0x20,%xmm5
  paddq  %xmm5,%xmm3
  movdqa %xmm13,%xmm5
  movdqa %xmm14,%xmm13
  pmuludq %xmm2,%xmm13
  pmuludq %xmm11,%xmm5
  pmuludq %xmm11,%xmm2
  paddq  %xmm13,%xmm5
  psllq  $0x20,%xmm5
  paddq  %xmm5,%xmm2
  shufps $0xdd,%xmm2,%xmm3
  psrad  $0x1,%xmm3
  psubd  %xmm3,%xmm9
  movdqa %xmm0,%xmm3
  movdqa %xmm9,%xmm2
  psrad  $0x1f,%xmm3
  pslld  $0x3,%xmm2
  movdqa %xmm3,%xmm5
  movdqa %xmm15,%xmm3
  paddd  %xmm2,%xmm9
  movdqa %xmm0,%xmm2
  punpckldq %xmm0,%xmm2
  paddd  %xmm12,%xmm9
  movdqa %xmm14,%xmm12
  pcmpgtd %xmm2,%xmm3
  pmuludq %xmm2,%xmm12
  punpckhdq %xmm0,%xmm0
  pmuludq %xmm11,%xmm2
  pmuludq %xmm11,%xmm3
  paddq  %xmm12,%xmm3
  movdqa %xmm14,%xmm12
  psllq  $0x20,%xmm3
  pmuludq %xmm0,%xmm12
  paddq  %xmm3,%xmm2
  movdqa %xmm15,%xmm3
  pcmpgtd %xmm0,%xmm3
  pmuludq %xmm11,%xmm0
  pmuludq %xmm11,%xmm3
  paddq  %xmm12,%xmm3
  movdqa %xmm14,%xmm12
  psllq  $0x20,%xmm3
  paddq  %xmm3,%xmm0
  movdqa %xmm15,%xmm3
  shufps $0xdd,%xmm0,%xmm2
  psrad  $0x1,%xmm2
  psubd  %xmm2,%xmm5
  movdqa %xmm1,%xmm2
  movdqa %xmm5,%xmm0
  psrad  $0x1f,%xmm2
  pslld  $0x3,%xmm0
  paddd  %xmm0,%xmm5
  movdqa %xmm1,%xmm0
  paddd  0x20(%rsp),%xmm5
  punpckldq %xmm1,%xmm0
  punpckhdq %xmm1,%xmm1
  pcmpgtd %xmm0,%xmm3
  pmuludq %xmm0,%xmm12
  pmuludq %xmm11,%xmm0
  pmuludq %xmm11,%xmm3
  paddq  %xmm12,%xmm3
  movdqa %xmm14,%xmm12
  psllq  $0x20,%xmm3
  pmuludq %xmm1,%xmm12
  paddq  %xmm3,%xmm0
  movdqa %xmm15,%xmm3
  pcmpgtd %xmm1,%xmm3
  pmuludq %xmm11,%xmm1
  pmuludq %xmm11,%xmm3
  paddq  %xmm12,%xmm3
  psllq  $0x20,%xmm3
  paddq  %xmm3,%xmm1
  shufps $0xdd,%xmm1,%xmm0
  psrad  $0x1,%xmm0
  movdqa D25(%rip),%xmm1
  psubd  %xmm0,%xmm2
  movdqa %xmm2,%xmm0
  pand   %xmm1,%xmm10
  pslld  $0x3,%xmm0
  paddd  %xmm2,%xmm0
  paddd  0x10(%rsp),%xmm0
  movdqa %xmm9,%xmm2
  pand   %xmm1,%xmm2
  pand   %xmm1,%xmm0
  pand   %xmm5,%xmm1
  paddd  %xmm0,%xmm10
  movdqa D75(%rip),%xmm0
  movdqa %xmm1,%xmm9
  paddd  %xmm10,%xmm2
  pand   %xmm0,%xmm8
  pand   %xmm0,%xmm6
  pand   %xmm0,%xmm7
  paddd  %xmm6,%xmm8
  pand   %xmm4,%xmm0
  paddd  %xmm2,%xmm9
  paddd  %xmm8,%xmm7
  paddd  %xmm7,%xmm0
  movdqa %xmm0,%xmm1
  psrldq $0x8,%xmm1
  paddd  %xmm1,%xmm0
  movdqa %xmm0,%xmm1
  psrldq $0x4,%xmm1
  paddd  %xmm1,%xmm0
  movd   %xmm0,%esi
  movdqa %xmm9,%xmm0
  psrldq $0x8,%xmm0
  paddd  %xmm0,%xmm9
  movdqa %xmm9,%xmm0
  psrldq $0x4,%xmm0
  paddd  %xmm0,%xmm9
  movd   %xmm9,%ecx
  test   $0xf,%al
  je     L314
  movslq %edx,%rdi
  movsbl 0x60(%rsp,%rdi,1),%edi
L128:
  lea    -0x60(%rdi,%rdi,1),%r9d
  lea    -0x1(%r9),%edi
  movslq %edi,%r8
  sar    $0x1f,%edi
  imul   $0x38e38e39,%r8,%r8
  sar    $0x21,%r8
  sub    %r8d,%edi
  lea    (%rdi,%rdi,8),%edi
  add    %r9d,%edi
  add    %edi,%ecx
  lea    0x1(%rdx),%edi
  cmp    %edi,%eax
  jle    L314
  movslq %edi,%r8
  and    $0x1,%edi
  movsbl 0x60(%rsp,%r8,1),%r8d
  jne    L294
  lea    -0x60(%r8,%r8,1),%r9d
  lea    -0x1(%r9),%edi
  movslq %edi,%r8
  sar    $0x1f,%edi
  imul   $0x38e38e39,%r8,%r8
  sar    $0x21,%r8
  sub    %r8d,%edi
  lea    (%rdi,%rdi,8),%edi
  add    %edi,%r9d
  add    %r9d,%ecx
L308:
  lea    0x2(%rdx),%edi
  cmp    %eax,%edi
  jge    L314
  movslq %edi,%rdi
  movsbl 0x60(%rsp,%rdi,1),%edi
  lea    -0x60(%rdi,%rdi,1),%r9d
  lea    -0x1(%r9),%edi
  movslq %edi,%r8
  sar    $0x1f,%edi
  imul   $0x38e38e39,%r8,%r8
  sar    $0x21,%r8
  sub    %r8d,%edi
  lea    (%rdi,%rdi,8),%edi
  add    %edi,%r9d
  lea    0x3(%rdx),%edi
  add    %r9d,%ecx
  cmp    %edi,%eax
  jle    L314
  movslq %edi,%r8
  and    $0x1,%edi
  movsbl 0x60(%rsp,%r8,1),%r8d
  jne    L393
  lea    -0x60(%r8,%r8,1),%r9d
  lea    -0x1(%r9),%edi
  movslq %edi,%r8
  sar    $0x1f,%edi
  imul   $0x38e38e39,%r8,%r8
  sar    $0x21,%r8
  sub    %r8d,%edi
  lea    (%rdi,%rdi,8),%edi
  add    %edi,%r9d
  add    %r9d,%ecx
L80:
  lea    0x4(%rdx),%edi
  cmp    %edi,%eax
  jle    L314
  movslq %edi,%rdi
  movsbl 0x60(%rsp,%rdi,1),%edi
  lea    -0x60(%rdi,%rdi,1),%r9d
  lea    -0x1(%r9),%edi
  movslq %edi,%r8
  sar    $0x1f,%edi
  imul   $0x38e38e39,%r8,%r8
  sar    $0x21,%r8
  sub    %r8d,%edi
  lea    (%rdi,%rdi,8),%edi
  add    %edi,%r9d
  lea    0x5(%rdx),%edi
  add    %r9d,%ecx
  cmp    %edi,%eax
  jle    L314
  movslq %edi,%r8
  and    $0x1,%edi
  movsbl 0x60(%rsp,%r8,1),%r8d
  jne    L383
  lea    -0x60(%r8,%r8,1),%r9d
  lea    -0x1(%r9),%edi
  movslq %edi,%r8
  sar    $0x1f,%edi
  imul   $0x38e38e39,%r8,%r8
  sar    $0x21,%r8
  sub    %r8d,%edi
  lea    (%rdi,%rdi,8),%edi
  add    %edi,%r9d
  add    %r9d,%ecx
L179:
  lea    0x6(%rdx),%edi
  cmp    %edi,%eax
  jle    L314
  movslq %edi,%rdi
  movsbl 0x60(%rsp,%rdi,1),%edi
  lea    -0x60(%rdi,%rdi,1),%r9d
  lea    -0x1(%r9),%edi
  movslq %edi,%r8
  sar    $0x1f,%edi
  imul   $0x38e38e39,%r8,%r8
  sar    $0x21,%r8
  sub    %r8d,%edi
  lea    (%rdi,%rdi,8),%edi
  add    %edi,%r9d
  lea    0x7(%rdx),%edi
  add    %r9d,%ecx
  cmp    %edi,%eax
  jle    L314
  movslq %edi,%r8
  and    $0x1,%edi
  movsbl 0x60(%rsp,%r8,1),%r8d
  jne    L327
  lea    -0x60(%r8,%r8,1),%r9d
  lea    -0x1(%r9),%edi
  movslq %edi,%r8
  sar    $0x1f,%edi
  imul   $0x38e38e39,%r8,%r8
  sar    $0x21,%r8
  sub    %r8d,%edi
  lea    (%rdi,%rdi,8),%edi
  add    %edi,%r9d
  add    %r9d,%ecx
L77:
  lea    0x8(%rdx),%edi
  cmp    %edi,%eax
  jle    L314
  movslq %edi,%rdi
  movsbl 0x60(%rsp,%rdi,1),%edi
  lea    -0x60(%rdi,%rdi,1),%r9d
  lea    -0x1(%r9),%edi
  movslq %edi,%r8
  sar    $0x1f,%edi
  imul   $0x38e38e39,%r8,%r8
  sar    $0x21,%r8
  sub    %r8d,%edi
  lea    (%rdi,%rdi,8),%edi
  add    %edi,%r9d
  lea    0x9(%rdx),%edi
  add    %r9d,%ecx
  cmp    %edi,%eax
  jle    L314
  movslq %edi,%r8
  and    $0x1,%edi
  movsbl 0x60(%rsp,%r8,1),%r8d
  jne    L274
  lea    -0x60(%r8,%r8,1),%r9d
  lea    -0x1(%r9),%edi
  movslq %edi,%r8
  sar    $0x1f,%edi
  imul   $0x38e38e39,%r8,%r8
  sar    $0x21,%r8
  sub    %r8d,%edi
  lea    (%rdi,%rdi,8),%edi
  add    %edi,%r9d
  add    %r9d,%ecx
L119:
  lea    0xa(%rdx),%edi
  cmp    %edi,%eax
  jle    L314
  movslq %edi,%rdi
  movsbl 0x60(%rsp,%rdi,1),%edi
  lea    -0x60(%rdi,%rdi,1),%r9d
  lea    -0x1(%r9),%edi
  movslq %edi,%r8
  sar    $0x1f,%edi
  imul   $0x38e38e39,%r8,%r8
  sar    $0x21,%r8
  sub    %r8d,%edi
  lea    (%rdi,%rdi,8),%edi
  add    %edi,%r9d
  lea    0xb(%rdx),%edi
  add    %r9d,%ecx
  cmp    %edi,%eax
  jle    L314
  movslq %edi,%r8
  and    $0x1,%edi
  movsbl 0x60(%rsp,%r8,1),%r8d
  jne    L322
  lea    -0x60(%r8,%r8,1),%r9d
  lea    -0x1(%r9),%edi
  movslq %edi,%r8
  sar    $0x1f,%edi
  imul   $0x38e38e39,%r8,%r8
  sar    $0x21,%r8
  sub    %r8d,%edi
  lea    (%rdi,%rdi,8),%edi
  add    %edi,%r9d
  add    %r9d,%ecx
L66:
  lea    0xc(%rdx),%edi
  cmp    %edi,%eax
  jle    L314
  movslq %edi,%rdi
  movsbl 0x60(%rsp,%rdi,1),%edi
  lea    -0x60(%rdi,%rdi,1),%r9d
  lea    -0x1(%r9),%edi
  movslq %edi,%r8
  sar    $0x1f,%edi
  imul   $0x38e38e39,%r8,%r8
  sar    $0x21,%r8
  sub    %r8d,%edi
  lea    (%rdi,%rdi,8),%edi
  add    %edi,%r9d
  lea    0xd(%rdx),%edi
  add    %r9d,%ecx
  cmp    %edi,%eax
  jle    L314
  movslq %edi,%r8
  and    $0x1,%edi
  movsbl 0x60(%rsp,%r8,1),%r8d
  jne    L280
  lea    -0x60(%r8,%r8,1),%r9d
  lea    -0x1(%r9),%edi
  movslq %edi,%r8
  sar    $0x1f,%edi
  imul   $0x38e38e39,%r8,%r8
  sar    $0x21,%r8
  sub    %r8d,%edi
  lea    (%rdi,%rdi,8),%edi
  add    %edi,%r9d
  add    %r9d,%ecx
L336:
  add    $0xe,%edx
  cmp    %edx,%eax
  jle    L314
  movslq %edx,%rdx
  mov    $0xfffffff7,%r8d
  movsbl 0x60(%rsp,%rdx,1),%eax
  lea    -0x60(%rax,%rax,1),%edi
  lea    -0x1(%rdi),%eax
  cltd
  idiv   %r8d
  lea    (%rax,%rax,8),%eax
  add    %eax,%edi
  add    %edi,%ecx
  nopl   0x0(%rax)
L314:
  add    %esi,%ecx
  imul   $0xcccccccd,%ecx,%ecx
  add    $0x19999998,%ecx
  ror    %ecx
  cmp    $0x19999998,%ecx
  jbe    L127
  lea    D36(%rip),%rdi
  call   <printf@plt>
L397:
  mov    0x3c(%rsp),%eax
  lea    -0x1(%rax),%edx
  mov    %edx,0x3c(%rsp)
  test   %eax,%eax
  jne    L172
L159:
  mov    0x78(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L99
  add    $0x88,%rsp
  xor    %eax,%eax
  pop    %rbx
  pop    %rbp
  ret
  nopw   0x0(%rax,%rax,1)
L127:
  lea    D64(%rip),%rdi
  call   <printf@plt>
  jmp    L397
  xchg   %ax,%ax
L294:
  lea    -0x30(%rsi,%r8,1),%esi
  jmp    L308
  nopw   0x0(%rax,%rax,1)
L393:
  lea    -0x30(%rsi,%r8,1),%esi
  jmp    L80
  nopw   0x0(%rax,%rax,1)
L383:
  lea    -0x30(%rsi,%r8,1),%esi
  jmp    L179
  nopw   0x0(%rax,%rax,1)
L327:
  lea    -0x30(%rsi,%r8,1),%esi
  jmp    L77
  nopw   0x0(%rax,%rax,1)
L274:
  lea    -0x30(%rsi,%r8,1),%esi
  jmp    L119
  nopw   0x0(%rax,%rax,1)
L322:
  lea    -0x30(%rsi,%r8,1),%esi
  jmp    L66
  nopw   0x0(%rax,%rax,1)
L59:
  xor    %esi,%esi
  xor    %r8d,%r8d
  jmp    L102
  nopw   0x0(%rax,%rax,1)
L280:
  lea    -0x30(%rsi,%r8,1),%esi
  jmp    L336
L381:
  movsbl 0x60(%rsp),%edi
  xor    %edx,%edx
  xor    %esi,%esi
  xor    %ecx,%ecx
  jmp    L128
L99:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: unpack_data
arguments: data_tag: D62
type_infered: string
name: unpack_data
arguments: data_tag: D28
type_infered: byte[16]
name: unpack_data
arguments: data_tag: D40
type_infered: byte[16]
name: unpack_data
arguments: data_tag: D25
type_infered: byte[16]
name: unpack_data
arguments: data_tag: D75
type_infered: byte[16]
name: unpack_data
arguments: data_tag: D36
type_infered: string
name: unpack_data
arguments: data_tag: D64
type_infered: string

tool: D62: %d

tool: {"D28": [0x39,0x8e,0xe3,0x38,0x39,0x8e,0xe3,0x38,0x39,0x8e,0xe3,0x38,0x39,0x8e,0xe3,0x38]}

tool: {"D40": [0xd0,0xff,0xff,0xff,0xd0,0xff,0xff,0xff,0xd0,0xff,0xff,0xff,0xd0,0xff,0xff,0xff]}

tool: {"D25": [0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00]}

tool: {"D75": [0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff]}

tool: D36: Invalid


tool: D64: Valid


assistant: ```c
int main() {
  char m[22], a[22];
  int b, c = 0, d = 0, ch;
  int n, i, j, l, len, len2, total;
  scanf("%d", &n);
  getchar();
  while (n--) {
    gets(m);
    len = strlen(m);
    j = 0, l = 0;
    while (j < len) {
      if (m[j] >= '0' && m[j] <= '9') {
        a[l] = m[j];
        l++;
      }
      j++;
    }
    m[j] = '\0';
    a[l] = '\0';
    len2 = strlen(a);
    for (j = 0; j < len2; j++) {
      if (j % 2 == 0) {
        ch = 0;
        b = (a[j] - '0') * 2;
        b = b - 9 * ((b - 1) / 9);
        c = c + b;
      } else {
        d += (a[j] - '0');
      }
    }
    total = c + d;
    if (total % 10 == 0) {
      printf("Valid\n");
    } else {
      printf("Invalid\n");
    }
    c = 0, d = 0, ch = 0;
  }
  return 0;
}
```