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

```asm
<makexmap>:
  endbr64
  test   %ecx,%ecx
  jle    L42
  pxor   %xmm11,%xmm11
  pxor   %xmm10,%xmm10
  lea    -0x1(%rcx),%eax
  cvtsi2sd %ecx,%xmm11
  cvtsi2ss %edx,%xmm10
  cmp    $0x2,%eax
  jbe    L39
  mov    %ecx,%edx
  pxor   %xmm3,%xmm3
  movapd %xmm11,%xmm7
  mov    %rsi,%rax
  movdqa %xmm3,%xmm4
  shr    $0x2,%edx
  movq   %rdi,%xmm6
  movaps %xmm10,%xmm9
  sub    $0x1,%edx
  unpcklpd %xmm7,%xmm7
  movdqa D48(%rip),%xmm1
  movdqa D37(%rip),%xmm2
  shl    $0x5,%rdx
  movapd D49(%rip),%xmm5
  punpcklqdq %xmm6,%xmm6
  movdqa D43(%rip),%xmm8
  pcmpgtd %xmm1,%xmm4
  lea    0x20(%rsi,%rdx,1),%rdx
  shufps $0x0,%xmm9,%xmm9
  nopl   0x0(%rax,%rax,1)
L20:
  movdqa %xmm2,%xmm12
  movdqa %xmm3,%xmm13
  movdqa %xmm4,%xmm14
  add    $0x20,%rax
  cvtdq2pd %xmm12,%xmm0
  pshufd $0xee,%xmm12,%xmm12
  addpd  %xmm5,%xmm0
  paddd  %xmm8,%xmm2
  cvtdq2pd %xmm12,%xmm12
  addpd  %xmm5,%xmm12
  divpd  %xmm7,%xmm0
  divpd  %xmm7,%xmm12
  cvtpd2ps %xmm0,%xmm0
  cvtpd2ps %xmm12,%xmm12
  movlhps %xmm12,%xmm0
  mulps  %xmm9,%xmm0
  cvttps2dq %xmm0,%xmm0
  movdqa %xmm0,%xmm12
  punpckldq %xmm0,%xmm12
  punpckhdq %xmm0,%xmm0
  pcmpgtd %xmm12,%xmm13
  pmuludq %xmm12,%xmm14
  pmuludq %xmm1,%xmm12
  pmuludq %xmm1,%xmm13
  paddq  %xmm14,%xmm13
  psllq  $0x20,%xmm13
  paddq  %xmm13,%xmm12
  movdqa %xmm4,%xmm13
  paddq  %xmm6,%xmm12
  pmuludq %xmm0,%xmm13
  movups %xmm12,-0x20(%rax)
  movdqa %xmm3,%xmm12
  pcmpgtd %xmm0,%xmm12
  pmuludq %xmm1,%xmm0
  pmuludq %xmm1,%xmm12
  paddq  %xmm13,%xmm12
  psllq  $0x20,%xmm12
  paddq  %xmm12,%xmm0
  paddq  %xmm6,%xmm0
  movups %xmm0,-0x10(%rax)
  cmp    %rdx,%rax
  jne    L20
  mov    %ecx,%edx
  and    $0xfffffffc,%edx
  test   $0x3,%cl
  je     L56
L29:
  pxor   %xmm0,%xmm0
  movsd  D49(%rip),%xmm1
  movslq %edx,%r9
  cvtsi2sd %edx,%xmm0
  lea    0x0(,%r9,8),%rax
  addsd  %xmm1,%xmm0
  divsd  %xmm11,%xmm0
  cvtsd2ss %xmm0,%xmm0
  mulss  %xmm10,%xmm0
  cvttss2si %xmm0,%r8d
  movslq %r8d,%r8
  lea    (%rdi,%r8,2),%r8
  mov    %r8,(%rsi,%r9,8)
  lea    0x1(%rdx),%r8d
  cmp    %r8d,%ecx
  jle    L42
  pxor   %xmm0,%xmm0
  add    $0x2,%edx
  cvtsi2sd %r8d,%xmm0
  addsd  %xmm1,%xmm0
  divsd  %xmm11,%xmm0
  cvtsd2ss %xmm0,%xmm0
  mulss  %xmm10,%xmm0
  cvttss2si %xmm0,%r8d
  movslq %r8d,%r8
  lea    (%rdi,%r8,2),%r8
  mov    %r8,0x8(%rsi,%rax,1)
  cmp    %edx,%ecx
  jle    L42
  pxor   %xmm0,%xmm0
  cvtsi2sd %edx,%xmm0
  addsd  %xmm1,%xmm0
  divsd  %xmm11,%xmm0
  cvtsd2ss %xmm0,%xmm0
  mulss  %xmm10,%xmm0
  cvttss2si %xmm0,%edx
  movslq %edx,%rdx
  lea    (%rdi,%rdx,2),%rdx
  mov    %rdx,0x10(%rsi,%rax,1)
L42:
  ret
  nopl   0x0(%rax,%rax,1)
L56:
  ret
L39:
  xor    %edx,%edx
  jmp    L29
```

tool_calls: name: parse_data
arguments: tag: D48
type: byte[16]
name: parse_data
arguments: tag: D37
type: byte[16]
name: parse_data
arguments: tag: D49
type: f64[2]
name: parse_data
arguments: tag: D43
type: byte[16]

tool: {"D48": [0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x02,0x00,0x00,0x00]}

tool: {"D37": [0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x03,0x00,0x00,0x00]}

tool: {"D49": [0.5,0.5]}

tool: {"D43": [0x04,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x04,0x00,0x00,0x00]}

assistant: ```c
void makexmap(short *abuf, short *xmap[], int anx, int bnx) {
  int x, ax;
  float fx;
  for (x = 0; x < bnx; x++) {
    fx = (((x) + 0.5) / (bnx));
    ax = ((fx) * (anx));
    xmap[x] = abuf + ax;
  }
}
```