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

```asm
<mod95>:
  endbr64
  cmp    $0x251b,%edi
  jle    L146
  lea    -0x251c(%rdi),%edx
  mov    $0xdcc0ba43,%ecx
  mov    %rdx,%rax
  imul   %rcx,%rdx
  shr    $0x2d,%rdx
  add    $0x1,%edx
  cmp    $0x6f53,%eax
  jbe    L208
  movd   %edi,%xmm4
  mov    %edx,%ecx
  movdqa D58(%rip),%xmm3
  xor    %eax,%eax
  pshufd $0x0,%xmm4,%xmm1
  movdqa D16(%rip),%xmm2
  paddd  D27(%rip),%xmm1
  shr    $0x2,%ecx
  nopl   0x0(%rax,%rax,1)
L191:
  movdqa %xmm1,%xmm0
  add    $0x1,%eax
  paddd  %xmm3,%xmm1
  paddd  %xmm2,%xmm0
  cmp    %ecx,%eax
  jne    L191
  mov    %edx,%ecx
  pshufd $0xff,%xmm0,%xmm0
  and    $0xfffffffc,%ecx
  movd   %xmm0,%eax
  imul   $0xffffdae4,%ecx,%esi
  add    %esi,%edi
  cmp    %ecx,%edx
  je     L112
  lea    -0x251c(%rdi),%eax
L208:
  cmp    $0x251b,%eax
  jle    L112
  lea    -0x4a38(%rdi),%eax
  sub    $0x6f54,%edi
  cmp    $0x251b,%eax
  cmovg  %edi,%eax
L112:
  cmp    $0x3b5,%eax
  jle    L306
  lea    -0x3b6(%rax),%edx
  cmp    $0x3b5,%edx
  jle    L229
  lea    -0x76c(%rax),%edx
  cmp    $0x3b5,%edx
  jle    L229
  lea    -0xb22(%rax),%edx
  cmp    $0x3b5,%edx
  jle    L229
  lea    -0xed8(%rax),%edx
  cmp    $0x3b5,%edx
  jle    L229
  lea    -0x128e(%rax),%edx
  cmp    $0x3b5,%edx
  jle    L229
  lea    -0x1644(%rax),%edx
  cmp    $0x3b5,%edx
  jle    L229
  lea    -0x19fa(%rax),%edx
  cmp    $0x3b5,%edx
  jle    L229
  lea    -0x1db0(%rax),%edx
  sub    $0x2166,%eax
  cmp    $0x3b5,%edx
  cmovg  %eax,%edx
L229:
  cmp    $0x5e,%edx
  jle    L291
L111:
  lea    -0x5f(%rdx),%r8d
  cmp    $0x5e,%r8d
  jle    L239
  lea    -0xbe(%rdx),%r8d
  cmp    $0x5e,%r8d
  jle    L239
  lea    -0x11d(%rdx),%r8d
  cmp    $0x5e,%r8d
  jle    L239
  lea    -0x17c(%rdx),%r8d
  cmp    $0x5e,%r8d
  jle    L239
  lea    -0x1db(%rdx),%r8d
  cmp    $0x5e,%r8d
  jle    L239
  lea    -0x23a(%rdx),%r8d
  cmp    $0x5e,%r8d
  jle    L239
  lea    -0x299(%rdx),%r8d
  cmp    $0x5e,%r8d
  jle    L239
  lea    -0x2f8(%rdx),%r8d
  sub    $0x357,%edx
  cmp    $0x5e,%r8d
  cmovg  %edx,%r8d
L239:
  mov    %r8d,%eax
  ret
  nopl   0x0(%rax)
L306:
  cmp    $0x5e,%eax
  jg     L218
  test   %eax,%eax
  jns    L51
  mov    %eax,%edx
  not    %edx
  mov    %edx,%esi
  mov    %edx,%ecx
  imul   $0x58ed2309,%rsi,%rsi
  shr    $0x20,%rsi
  sub    %esi,%ecx
  shr    %ecx
  add    %esi,%ecx
  shr    $0x6,%ecx
  add    $0x1,%ecx
  cmp    $0xfffffee2,%eax
  ja     L141
  movd   %eax,%xmm5
  mov    %ecx,%esi
  movdqa D31(%rip),%xmm3
  xor    %edx,%edx
  pshufd $0x0,%xmm5,%xmm1
  movdqa D45(%rip),%xmm2
  paddd  D13(%rip),%xmm1
  shr    $0x2,%esi
  nop
L42:
  movdqa %xmm1,%xmm0
  add    $0x1,%edx
  paddd  %xmm3,%xmm1
  paddd  %xmm2,%xmm0
  cmp    %edx,%esi
  jne    L42
  mov    %ecx,%edx
  pshufd $0xff,%xmm0,%xmm0
  and    $0xfffffffc,%edx
  movd   %xmm0,%r8d
  imul   $0x5f,%edx,%esi
  add    %esi,%eax
  cmp    %edx,%ecx
  je     L239
L141:
  mov    %eax,%r8d
  add    $0x5f,%r8d
  jns    L239
  lea    0x11d(%rax),%edx
  add    $0xbe,%eax
  mov    %eax,%r8d
  cmovs  %edx,%r8d
  mov    %r8d,%eax
  ret
  nopw   0x0(%rax,%rax,1)
L146:
  mov    %edi,%eax
  jmp    L112
L218:
  mov    %eax,%edx
  jmp    L111
L291:
  mov    %edx,%r8d
  jmp    L239
L51:
  mov    %eax,%r8d
  jmp    L239
```

tool_calls: name: parse_data
arguments: label: D58
type_infered: byte[16]
name: parse_data
arguments: label: D16
type_infered: byte[16]
name: parse_data
arguments: label: D27
type_infered: byte[16]
name: parse_data
arguments: label: D31
type_infered: byte[16]
name: parse_data
arguments: label: D45
type_infered: byte[16]
name: parse_data
arguments: label: D13
type_infered: byte[16]

tool: {"D58": [0x90,0x6b,0xff,0xff,0x90,0x6b,0xff,0xff,0x90,0x6b,0xff,0xff,0x90,0x6b,0xff,0xff]}

tool: {"D16": [0xe4,0xda,0xff,0xff,0xe4,0xda,0xff,0xff,0xe4,0xda,0xff,0xff,0xe4,0xda,0xff,0xff]}

tool: {"D27": [0x00,0x00,0x00,0x00,0xe4,0xda,0xff,0xff,0xc8,0xb5,0xff,0xff,0xac,0x90,0xff,0xff]}

tool: {"D31": [0x7c,0x01,0x00,0x00,0x7c,0x01,0x00,0x00,0x7c,0x01,0x00,0x00,0x7c,0x01,0x00,0x00]}

tool: {"D45": [0x5f,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,0x5f,0x00,0x00,0x00]}

tool: {"D13": [0x00,0x00,0x00,0x00,0x5f,0x00,0x00,0x00,0xbe,0x00,0x00,0x00,0x1d,0x01,0x00,0x00]}

assistant: ```c
int mod95(val)
register int val;
{
  while (val >= 9500)
    val -= 9500;
  while (val >= 950)
    val -= 950;
  while (val >= 95)
    val -= 95;
  while (val < 0)
    val += 95;
  return (val);
}
```