user: 这段汇编代码用C语言表示是什么样的？

```asm
<jsonp_memmemmemi>:
  endbr64
  cmp    %rcx,%r9
  ja     L66
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  mov    %rsi,%r12
  push   %rbp
  push   %rbx
  sub    $0x138,%rsp
  test   %rsi,%rsi
  je     L67
  test   %rcx,%rcx
  mov    %r8,%r15
  mov    $0x1,%eax
  mov    %rcx,%r13
  setne  %r8b
  test   %r9,%r9
  mov    %rdi,%r10
  mov    %rdx,%r14
  cmovne %r9,%rax
  mov    %rdi,%rbp
  xor    %ebx,%ebx
  mov    %rax,%r11
  mov    %rax,0x38(%rsp)
  and    $0xfffffffffffffff0,%r11
  lea    (%r15,%r11,1),%rax
  mov    %r11,%rcx
  mov    %rax,0x48(%rsp)
  lea    0x1(%r11),%rax
  mov    %rax,0x40(%rsp)
  add    %r15,%rax
  mov    %rax,0x58(%rsp)
  lea    0x2(%r11),%rax
  mov    %rax,0x50(%rsp)
  add    %r15,%rax
  mov    %rax,0x68(%rsp)
  lea    0x3(%r11),%rax
  mov    %rax,0x60(%rsp)
  add    %r15,%rax
  mov    %rax,0x78(%rsp)
  lea    0x4(%r11),%rax
  mov    %rax,0x70(%rsp)
  add    %r15,%rax
  mov    %rax,0x88(%rsp)
  lea    0x5(%r11),%rax
  mov    %rax,0x80(%rsp)
  add    %r15,%rax
  mov    %rax,0x98(%rsp)
  lea    0x6(%r11),%rax
  mov    %rax,0x90(%rsp)
  add    %r15,%rax
  mov    %rax,0xb0(%rsp)
  lea    0x7(%r11),%rax
  mov    %rax,0xa0(%rsp)
  add    %r15,%rax
  mov    %rax,0xb8(%rsp)
  lea    0x8(%r11),%rax
  mov    %rax,0xa8(%rsp)
  add    %r15,%rax
  mov    %rax,0xd0(%rsp)
  lea    0x9(%r11),%rax
  mov    %rax,0xc0(%rsp)
  add    %r15,%rax
  mov    %rax,0xd8(%rsp)
  lea    0xa(%r11),%rax
  mov    %rax,0xc8(%rsp)
  add    %r15,%rax
  mov    %rax,0xf0(%rsp)
  lea    0xb(%r11),%rax
  mov    %rax,0xe0(%rsp)
  add    %r15,%rax
  mov    %rax,0xf8(%rsp)
  lea    0xc(%r11),%rax
  mov    %rax,0xe8(%rsp)
  add    %r15,%rax
  mov    %rax,0x120(%rsp)
  lea    0xd(%r11),%rax
  mov    %rax,0x100(%rsp)
  add    %r15,%rax
  mov    %rax,0x128(%rsp)
  lea    0xe(%r11),%rax
  mov    %rax,0x108(%rsp)
  add    %r15,%rax
  mov    %rax,0x110(%rsp)
  lea    0xf(%r11),%rax
  mov    %rax,0x118(%rsp)
  lea    0x1(%r15),%rax
  mov    %rax,0x30(%rsp)
  mov    %r9,%rax
  movdqa D27(%rip),%xmm3
  mov    %r15,%r9
  movdqa D9(%rip),%xmm2
  mov    %rax,%r15
  nopl   0x0(%rax)
L289:
  cmp    %rbx,%r12
  jbe    L301
  xor    %eax,%eax
  test   %r8b,%r8b
  jne    L28
  jmp    L301
  cs nopw 0x0(%rax,%rax,1)
L273:
  add    $0x1,%rax
  lea    (%rax,%rbx,1),%rdx
  cmp    %rdx,%r12
  jbe    L145
  cmp    %rax,%r13
  jbe    L145
L28:
  movzbl (%r14,%rax,1),%esi
  cmp    %sil,0x0(%rbp,%rax,1)
  je     L273
L145:
  cmp    %r13,%rax
  je     L24
L301:
  add    $0x1,%rbx
  add    $0x1,%rbp
  cmp    %rbx,%r12
  jne    L289
L67:
  add    $0x138,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
  nopw   0x0(%rax,%rax,1)
L24:
  test   %r15,%r15
  je     L161
  mov    %rbp,%rax
  sub    0x30(%rsp),%rax
  cmp    $0xe,%rax
  mov    $0x0,%eax
  jbe    L344
  cmp    $0xf,%r15
  jbe    L344
  movdqa D24(%rip),%xmm1
  nopw   0x0(%rax,%rax,1)
L80:
  movdqu (%r9,%rax,1),%xmm4
  movdqa %xmm1,%xmm0
  paddq  %xmm3,%xmm1
  paddq  %xmm2,%xmm0
  movups %xmm4,0x0(%rbp,%rax,1)
  add    $0x10,%rax
  cmp    %r11,%rax
  jne    L80
  movhlps %xmm0,%xmm5
  movq   %xmm5,%rax
  cmp    %rcx,0x38(%rsp)
  je     L146
  mov    0x48(%rsp),%rax
  mov    0x40(%rsp),%rdi
  movzbl (%rax),%edx
  lea    (%r10,%rbx,1),%rax
  mov    %dl,(%rax,%rcx,1)
  cmp    %rdi,%r15
  jbe    L304
  mov    0x58(%rsp),%rsi
  movzbl (%rsi),%edx
  mov    %dl,(%rax,%rdi,1)
  mov    0x50(%rsp),%rdi
  cmp    %rdi,%r15
  jbe    L304
  mov    0x68(%rsp),%rsi
  movzbl (%rsi),%edx
  mov    %dl,(%rax,%rdi,1)
  mov    0x60(%rsp),%rdi
  cmp    %rdi,%r15
  jbe    L304
  mov    0x78(%rsp),%rsi
  movzbl (%rsi),%edx
  mov    %dl,(%rax,%rdi,1)
  mov    0x70(%rsp),%rdi
  cmp    %rdi,%r15
  jbe    L304
  mov    0x88(%rsp),%rsi
  movzbl (%rsi),%edx
  mov    %dl,(%rax,%rdi,1)
  mov    0x80(%rsp),%rdi
  cmp    %rdi,%r15
  jbe    L304
  mov    0x98(%rsp),%rsi
  movzbl (%rsi),%edx
  mov    %dl,(%rax,%rdi,1)
  mov    0x90(%rsp),%rdi
  cmp    %rdi,%r15
  jbe    L304
  mov    0xb0(%rsp),%rsi
  movzbl (%rsi),%edx
  mov    %dl,(%rax,%rdi,1)
  mov    0xa0(%rsp),%rdi
  cmp    %rdi,%r15
  jbe    L304
  mov    0xb8(%rsp),%rsi
  movzbl (%rsi),%edx
  mov    %dl,(%rax,%rdi,1)
  mov    0xa8(%rsp),%rdi
  cmp    %rdi,%r15
  jbe    L304
  mov    0xd0(%rsp),%rsi
  movzbl (%rsi),%edx
  mov    %dl,(%rax,%rdi,1)
  mov    0xc0(%rsp),%rdi
  cmp    %rdi,%r15
  jbe    L304
  mov    0xd8(%rsp),%rsi
  movzbl (%rsi),%edx
  mov    %dl,(%rax,%rdi,1)
  mov    0xc8(%rsp),%rdi
  cmp    %rdi,%r15
  jbe    L304
  mov    0xf0(%rsp),%rsi
  movzbl (%rsi),%edx
  mov    %dl,(%rax,%rdi,1)
  mov    0xe0(%rsp),%rdi
  cmp    %rdi,%r15
  jbe    L304
  mov    0xf8(%rsp),%rsi
  movzbl (%rsi),%edx
  mov    %dl,(%rax,%rdi,1)
  mov    0xe8(%rsp),%rdi
  cmp    %rdi,%r15
  jbe    L304
  mov    0x120(%rsp),%rsi
  movzbl (%rsi),%edx
  mov    %dl,(%rax,%rdi,1)
  mov    0x100(%rsp),%rdi
  cmp    %rdi,%r15
  jbe    L304
  mov    0x128(%rsp),%rsi
  movzbl (%rsi),%edx
  mov    %dl,(%rax,%rdi,1)
  mov    0x108(%rsp),%rdi
  cmp    %rdi,%r15
  jbe    L304
  mov    0x110(%rsp),%rsi
  movzbl (%rsi),%edx
  mov    %dl,(%rax,%rdi,1)
  mov    0x118(%rsp),%rax
  nopw   0x0(%rax,%rax,1)
L146:
  cmp    %r13,%rax
  jae    L301
L318:
  lea    0x1(%rax),%rsi
  mov    %r13,%rdx
  mov    $0x1,%edi
  mov    %r9,0x28(%rsp)
  sub    %rax,%rdx
  cmp    %r13,%rsi
  mov    %r11,0x20(%rsp)
  cmova  %rdi,%rdx
  add    %rbx,%rax
  xor    %esi,%esi
  mov    %rcx,0x18(%rsp)
  lea    (%r10,%rax,1),%rdi
  mov    %r8b,0x17(%rsp)
  mov    %r10,0x8(%rsp)
  call   <memset@plt>
  mov    0x8(%rsp),%r10
  mov    0x18(%rsp),%rcx
  movdqa D27(%rip),%xmm3
  movdqa D9(%rip),%xmm2
  movzbl 0x17(%rsp),%r8d
  mov    0x20(%rsp),%r11
  mov    0x28(%rsp),%r9
  jmp    L301
  nopl   (%rax)
L344:
  movzbl (%r9,%rax,1),%edx
  mov    %dl,0x0(%rbp,%rax,1)
  add    $0x1,%rax
  cmp    %rax,%r15
  ja     L344
  jmp    L146
  nop
L161:
  xor    %eax,%eax
  jmp    L318
L304:
  mov    %rdi,%rax
  jmp    L146
L66:
  ret
```

tool_calls: name: extract_symbolic_data
arguments: label: D27
type_infered: byte[16]
name: extract_symbolic_data
arguments: label: D9
type_infered: byte[16]
name: extract_symbolic_data
arguments: label: D24
type_infered: byte[16]

tool: {"D27": [0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00]}

tool: {"D9": [0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00]}

tool: {"D24": [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00]}

assistant: ```c
void jsonp_memmemmemi(void *m, size_t mn, const void *n, size_t nn, const void *r, size_t rn) {
  size_t i;
  size_t j;
  unsigned char *mem = m;
  const unsigned char *nee = n;
  const unsigned char *rep = r;
  if (rn > nn)
    return;
  for (i = 0; i < mn; ++i) {
    for (j = 0; i + j < mn && j < nn && mem[i + j] == nee[j]; ++j)
      ;
    if (j == nn)
      for (j = 0; j < nn; ++j) {
        if (j < rn)
          mem[i + j] = rep[j];
        else
          mem[i + j] = 0x00;
      }
  }
}
```