user: 请显示与下面列出的汇编代码相匹配的C语言实现:

```asm
<bessk0>:
  endbr64
  sub    $0x28,%rsp
  movaps %xmm0,%xmm1
  movss  D51(%rip),%xmm0
  comiss %xmm1,%xmm0
  jb     L2
  movaps %xmm1,%xmm2
  movaps %xmm1,%xmm0
  movss  %xmm1,0x14(%rsp)
  mulss  %xmm1,%xmm2
  mulss  D121(%rip),%xmm0
  cvtss2sd %xmm2,%xmm2
  mulsd  D138(%rip),%xmm2
  movsd  %xmm2,0x18(%rsp)
  call   <log@plt>
  movss  0x14(%rsp),%xmm1
  movsd  %xmm0,0x8(%rsp)
  movaps %xmm1,%xmm0
  call   <bessi0@plt>
  movsd  0x18(%rsp),%xmm2
  movsd  D127(%rip),%xmm5
  movaps %xmm0,%xmm1
  movsd  D133(%rip),%xmm0
  mulsd  %xmm2,%xmm5
  cvtss2sd %xmm1,%xmm1
  mulsd  0x8(%rsp),%xmm1
  addsd  %xmm5,%xmm0
  mulsd  %xmm2,%xmm0
  addsd  D131(%rip),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  D63(%rip),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  D101(%rip),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  D172(%rip),%xmm0
  mulsd  %xmm2,%xmm0
  subsd  D150(%rip),%xmm0
  add    $0x28,%rsp
  subsd  %xmm1,%xmm0
  cvtsd2ss %xmm0,%xmm0
  ret
  nopl   0x0(%rax,%rax,1)
L2:
  movsd  D47(%rip),%xmm2
  pxor   %xmm0,%xmm0
  movss  %xmm1,0x14(%rsp)
  cvtss2sd %xmm1,%xmm0
  divsd  %xmm0,%xmm2
  movaps %xmm1,%xmm0
  xorps  D142(%rip),%xmm0
  movsd  %xmm2,0x18(%rsp)
  call   <exp@plt>
  movss  0x14(%rsp),%xmm1
  movsd  %xmm0,0x8(%rsp)
  movaps %xmm1,%xmm0
  call   <sqrt@plt>
  movsd  0x8(%rsp),%xmm3
  movsd  0x18(%rsp),%xmm2
  movapd %xmm0,%xmm4
  movsd  D85(%rip),%xmm0
  divsd  %xmm4,%xmm3
  mulsd  %xmm2,%xmm0
  subsd  D173(%rip),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  D49(%rip),%xmm0
  mulsd  %xmm2,%xmm0
  subsd  D103(%rip),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  D53(%rip),%xmm0
  mulsd  %xmm2,%xmm0
  subsd  D164(%rip),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  D160(%rip),%xmm0
  add    $0x28,%rsp
  mulsd  %xmm3,%xmm0
  cvtsd2ss %xmm0,%xmm0
  ret
```

tool_calls: name: extract_symbolic_data
arguments: label: D51
datatype: f32
name: extract_symbolic_data
arguments: label: D121
datatype: byte[4]
name: extract_symbolic_data
arguments: label: D138
datatype: byte[8]
name: extract_symbolic_data
arguments: label: D127
datatype: byte[8]
name: extract_symbolic_data
arguments: label: D133
datatype: byte[8]
name: extract_symbolic_data
arguments: label: D131
datatype: byte[8]
name: extract_symbolic_data
arguments: label: D63
datatype: byte[8]
name: extract_symbolic_data
arguments: label: D101
datatype: f64
name: extract_symbolic_data
arguments: label: D172
datatype: f64
name: extract_symbolic_data
arguments: label: D150
datatype: f64
name: extract_symbolic_data
arguments: label: D47
datatype: byte[8]
name: extract_symbolic_data
arguments: label: D142
datatype: byte[16]
name: extract_symbolic_data
arguments: label: D85
datatype: byte[8]
name: extract_symbolic_data
arguments: label: D173
datatype: byte[8]
name: extract_symbolic_data
arguments: label: D49
datatype: byte[8]
name: extract_symbolic_data
arguments: label: D103
datatype: byte[8]
name: extract_symbolic_data
arguments: label: D53
datatype: byte[8]
name: extract_symbolic_data
arguments: label: D164
datatype: byte[8]
name: extract_symbolic_data
arguments: label: D160
datatype: f64

tool: D51: 2

tool: {"D121": [0x00,0x00,0x00,0x3f]}

tool: {"D138": [0x00,0x00,0x00,0x00,0x00,0x00,0xd0,0x3f]}

tool: {"D127": [0xac,0x2a,0xea,0x82,0xb0,0x09,0xdf,0x3e]}

tool: {"D133": [0x03,0x95,0xf1,0xef,0x33,0x2e,0x1c,0x3f]}

tool: {"D131": [0x7e,0xeb,0xfd,0x25,0x2d,0x85,0x65,0x3f]}

tool: {"D63": [0x8c,0xdc,0x2e,0x8f,0x90,0xdc,0xa1,0x3f]}

tool: D101: 0.23069756

tool: D172: 0.4227842

tool: D150: 0.57721566

tool: {"D47": [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40]}

tool: {"D142": [0x00,0x00,0x00,0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00]}

tool: {"D85": [0x59,0x1a,0x74,0x19,0x69,0x6f,0x41,0x3f]}

tool: {"D173": [0x7e,0x3f,0x90,0x17,0x2d,0x9b,0x64,0x3f]}

tool: {"D49": [0x7b,0x07,0x47,0xe2,0x48,0x14,0x78,0x3f]}

tool: {"D103": [0x5f,0xba,0xe6,0xe1,0x46,0xc2,0x85,0x3f]}

tool: {"D53": [0xe8,0x3f,0x18,0x36,0xd2,0x6b,0x96,0x3f]}

tool: {"D164": [0x34,0x0b,0x9b,0x9e,0x03,0x0d,0xb4,0x3f]}

tool: D160: 1.25331414

assistant: ```c
float bessk0(float x) {
  float bessi0(float x);
  double y, ans;
  if (x <= 2.0) {
    y = x * x / 4.0;
    ans = (-log(x / 2.0) * bessi0(x)) + (-0.57721566 + y * (0.42278420 + y * (0.23069756 + y * (0.3488590e-1 + y * (0.262698e-2 + y * (0.10750e-3 + y * 0.74e-5))))));
  } else {
    y = 2.0 / x;
    ans = (exp(-x) / sqrt(x)) * (1.25331414 + y * (-0.7832358e-1 + y * (0.2189568e-1 + y * (-0.1062446e-1 + y * (0.587872e-2 + y * (-0.251540e-2 + y * 0.53208e-3))))));
  }
  return ans;
}
```