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

```asm
<safeEucldNormOne>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x10,%rsp
  mov    %rdi,-0x8(%rbp)
  mov    %rsi,-0x10(%rbp)
  mov    -0x8(%rbp),%rax
  movsd  (%rax),%xmm0
  pxor   %xmm1,%xmm1
  comisd %xmm1,%xmm0
  jbe    L48
  mov    -0x8(%rbp),%rax
  movsd  (%rax),%xmm1
  movsd  D302(%rip),%xmm0
  comisd %xmm1,%xmm0
  jbe    L36
  mov    -0x8(%rbp),%rax
  movsd  (%rax),%xmm1
  movsd  D182(%rip),%xmm0
  comisd %xmm1,%xmm0
  jbe    L161
  mov    -0x8(%rbp),%rax
  movsd  (%rax),%xmm1
  movsd  D378(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  mov    -0x8(%rbp),%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm0,%xmm1
  mov    -0x8(%rbp),%rax
  movsd  (%rax),%xmm2
  movsd  D409(%rip),%xmm0
  mulsd  %xmm0,%xmm2
  mov    -0x8(%rbp),%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm0,%xmm2
  movsd  D302(%rip),%xmm0
  subsd  %xmm2,%xmm0
  mulsd  %xmm0,%xmm1
  movsd  D302(%rip),%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x10(%rbp),%rax
  movsd  %xmm0,(%rax)
  jmp    L165
L161:
  mov    -0x8(%rbp),%rax
  movsd  (%rax),%xmm1
  movsd  D384(%rip),%xmm0
  comisd %xmm1,%xmm0
  jbe    L2
  mov    -0x8(%rbp),%rax
  movsd  (%rax),%xmm1
  movsd  D378(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  mov    -0x8(%rbp),%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm0,%xmm1
  mov    -0x8(%rbp),%rax
  movsd  (%rax),%xmm2
  movsd  D378(%rip),%xmm0
  mulsd  %xmm0,%xmm2
  mov    -0x8(%rbp),%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm2,%xmm0
  movsd  D302(%rip),%xmm3
  movapd %xmm0,%xmm2
  subsd  %xmm3,%xmm2
  movsd  D409(%rip),%xmm0
  mulsd  %xmm0,%xmm2
  mov    -0x8(%rbp),%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm0,%xmm2
  mov    -0x8(%rbp),%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm0,%xmm2
  movsd  D302(%rip),%xmm0
  addsd  %xmm2,%xmm0
  mulsd  %xmm0,%xmm1
  movsd  D302(%rip),%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x10(%rbp),%rax
  movsd  %xmm0,(%rax)
  jmp    L165
L2:
  mov    -0x8(%rbp),%rax
  movsd  (%rax),%xmm1
  mov    -0x8(%rbp),%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm0,%xmm1
  movsd  D302(%rip),%xmm0
  addsd  %xmm0,%xmm1
  movq   %xmm1,%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movq   %xmm0,%rax
  mov    -0x10(%rbp),%rdx
  mov    %rax,(%rdx)
  jmp    L165
L36:
  mov    -0x8(%rbp),%rax
  movsd  (%rax),%xmm0
  comisd D369(%rip),%xmm0
  jbe    L148
  mov    -0x8(%rbp),%rax
  movsd  (%rax),%xmm1
  movsd  D302(%rip),%xmm0
  divsd  %xmm1,%xmm0
  mov    -0x10(%rbp),%rax
  movsd  %xmm0,(%rax)
  mov    -0x8(%rbp),%rax
  movsd  (%rax),%xmm1
  mov    -0x10(%rbp),%rax
  movsd  (%rax),%xmm2
  movsd  D378(%rip),%xmm0
  mulsd  %xmm0,%xmm2
  mov    -0x10(%rbp),%rax
  movsd  (%rax),%xmm3
  movsd  D409(%rip),%xmm0
  mulsd  %xmm0,%xmm3
  mov    -0x10(%rbp),%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm0,%xmm3
  movsd  D302(%rip),%xmm0
  subsd  %xmm3,%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x10(%rbp),%rax
  movsd  %xmm0,(%rax)
  jmp    L165
L148:
  mov    -0x8(%rbp),%rax
  movsd  (%rax),%xmm0
  comisd D553(%rip),%xmm0
  jbe    L219
  mov    -0x8(%rbp),%rax
  movsd  (%rax),%xmm1
  movsd  D302(%rip),%xmm0
  divsd  %xmm1,%xmm0
  mov    -0x10(%rbp),%rax
  movsd  %xmm0,(%rax)
  mov    -0x8(%rbp),%rax
  movsd  (%rax),%xmm1
  mov    -0x10(%rbp),%rax
  movsd  (%rax),%xmm2
  movsd  D378(%rip),%xmm0
  mulsd  %xmm0,%xmm2
  mov    -0x10(%rbp),%rax
  movsd  (%rax),%xmm3
  movsd  D378(%rip),%xmm0
  mulsd  %xmm0,%xmm3
  mov    -0x10(%rbp),%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm3,%xmm0
  movsd  D302(%rip),%xmm4
  movapd %xmm0,%xmm3
  subsd  %xmm4,%xmm3
  movsd  D409(%rip),%xmm0
  mulsd  %xmm0,%xmm3
  mov    -0x10(%rbp),%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm0,%xmm3
  mov    -0x10(%rbp),%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm0,%xmm3
  movsd  D302(%rip),%xmm0
  addsd  %xmm3,%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x10(%rbp),%rax
  movsd  %xmm0,(%rax)
  jmp    L165
L219:
  mov    -0x8(%rbp),%rax
  movsd  (%rax),%xmm1
  mov    -0x8(%rbp),%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm0,%xmm1
  movsd  D302(%rip),%xmm0
  addsd  %xmm0,%xmm1
  movq   %xmm1,%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movq   %xmm0,%rax
  mov    -0x10(%rbp),%rdx
  mov    %rax,(%rdx)
  jmp    L165
L48:
  mov    -0x8(%rbp),%rax
  movsd  (%rax),%xmm0
  movsd  D176(%rip),%xmm1
  comisd %xmm1,%xmm0
  jbe    L159
  mov    -0x8(%rbp),%rax
  movsd  (%rax),%xmm0
  comisd D457(%rip),%xmm0
  jbe    L146
  mov    -0x8(%rbp),%rax
  movsd  (%rax),%xmm1
  movsd  D378(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  mov    -0x8(%rbp),%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm0,%xmm1
  mov    -0x8(%rbp),%rax
  movsd  (%rax),%xmm2
  movsd  D409(%rip),%xmm0
  mulsd  %xmm0,%xmm2
  mov    -0x8(%rbp),%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm0,%xmm2
  movsd  D302(%rip),%xmm0
  subsd  %xmm2,%xmm0
  mulsd  %xmm0,%xmm1
  movsd  D302(%rip),%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x10(%rbp),%rax
  movsd  %xmm0,(%rax)
  jmp    L165
L146:
  mov    -0x8(%rbp),%rax
  movsd  (%rax),%xmm0
  comisd D92(%rip),%xmm0
  jbe    L66
  mov    -0x8(%rbp),%rax
  movsd  (%rax),%xmm1
  movsd  D378(%rip),%xmm0
  mulsd  %xmm0,%xmm1
  mov    -0x8(%rbp),%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm0,%xmm1
  mov    -0x8(%rbp),%rax
  movsd  (%rax),%xmm2
  movsd  D378(%rip),%xmm0
  mulsd  %xmm0,%xmm2
  mov    -0x8(%rbp),%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm2,%xmm0
  movsd  D302(%rip),%xmm3
  movapd %xmm0,%xmm2
  subsd  %xmm3,%xmm2
  movsd  D409(%rip),%xmm0
  mulsd  %xmm0,%xmm2
  mov    -0x8(%rbp),%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm0,%xmm2
  mov    -0x8(%rbp),%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm0,%xmm2
  movsd  D302(%rip),%xmm0
  addsd  %xmm2,%xmm0
  mulsd  %xmm0,%xmm1
  movsd  D302(%rip),%xmm0
  addsd  %xmm1,%xmm0
  mov    -0x10(%rbp),%rax
  movsd  %xmm0,(%rax)
  jmp    L165
L66:
  mov    -0x8(%rbp),%rax
  movsd  (%rax),%xmm1
  mov    -0x8(%rbp),%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm0,%xmm1
  movsd  D302(%rip),%xmm0
  addsd  %xmm0,%xmm1
  movq   %xmm1,%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movq   %xmm0,%rax
  mov    -0x10(%rbp),%rdx
  mov    %rax,(%rdx)
  jmp    L165
L159:
  mov    -0x8(%rbp),%rax
  movsd  (%rax),%xmm1
  movsd  D554(%rip),%xmm0
  comisd %xmm1,%xmm0
  jbe    L63
  mov    -0x8(%rbp),%rax
  movsd  (%rax),%xmm1
  movsd  D302(%rip),%xmm0
  divsd  %xmm1,%xmm0
  mov    -0x10(%rbp),%rax
  movsd  %xmm0,(%rax)
  mov    -0x8(%rbp),%rax
  movsd  (%rax),%xmm0
  movq   D475(%rip),%xmm1
  xorpd  %xmm1,%xmm0
  mov    -0x10(%rbp),%rax
  movsd  (%rax),%xmm2
  movsd  D378(%rip),%xmm1
  mulsd  %xmm1,%xmm2
  mov    -0x10(%rbp),%rax
  movsd  (%rax),%xmm3
  movsd  D409(%rip),%xmm1
  mulsd  %xmm1,%xmm3
  mov    -0x10(%rbp),%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm1,%xmm3
  movsd  D302(%rip),%xmm1
  subsd  %xmm3,%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x10(%rbp),%rax
  movsd  %xmm0,(%rax)
  jmp    L165
L63:
  mov    -0x8(%rbp),%rax
  movsd  (%rax),%xmm1
  movsd  D344(%rip),%xmm0
  comisd %xmm1,%xmm0
  jbe    L189
  mov    -0x8(%rbp),%rax
  movsd  (%rax),%xmm1
  movsd  D302(%rip),%xmm0
  divsd  %xmm1,%xmm0
  mov    -0x10(%rbp),%rax
  movsd  %xmm0,(%rax)
  mov    -0x8(%rbp),%rax
  movsd  (%rax),%xmm0
  movq   D475(%rip),%xmm1
  xorpd  %xmm1,%xmm0
  mov    -0x10(%rbp),%rax
  movsd  (%rax),%xmm2
  movsd  D378(%rip),%xmm1
  mulsd  %xmm1,%xmm2
  mov    -0x10(%rbp),%rax
  movsd  (%rax),%xmm3
  movsd  D378(%rip),%xmm1
  mulsd  %xmm1,%xmm3
  mov    -0x10(%rbp),%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm3,%xmm1
  movsd  D302(%rip),%xmm4
  movapd %xmm1,%xmm3
  subsd  %xmm4,%xmm3
  movsd  D409(%rip),%xmm1
  mulsd  %xmm1,%xmm3
  mov    -0x10(%rbp),%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm1,%xmm3
  mov    -0x10(%rbp),%rax
  movsd  (%rax),%xmm1
  mulsd  %xmm1,%xmm3
  movsd  D302(%rip),%xmm1
  addsd  %xmm3,%xmm1
  mulsd  %xmm2,%xmm1
  subsd  %xmm1,%xmm0
  mov    -0x10(%rbp),%rax
  movsd  %xmm0,(%rax)
  jmp    L165
L189:
  mov    -0x8(%rbp),%rax
  movsd  (%rax),%xmm1
  mov    -0x8(%rbp),%rax
  movsd  (%rax),%xmm0
  mulsd  %xmm0,%xmm1
  movsd  D302(%rip),%xmm0
  addsd  %xmm0,%xmm1
  movq   %xmm1,%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  movq   %xmm0,%rax
  mov    -0x10(%rbp),%rdx
  mov    %rax,(%rdx)
  nop
L165:
  leave
  ret
```

tool_calls: name: read_data
arguments: tag: D302
type_guessed: f64
name: read_data
arguments: tag: D182
type_guessed: byte[8]
name: read_data
arguments: tag: D378
type_guessed: f64
name: read_data
arguments: tag: D409
type_guessed: f64
name: read_data
arguments: tag: D384
type_guessed: byte[8]
name: read_data
arguments: tag: D369
type_guessed: f64[2]
name: read_data
arguments: tag: D553
type_guessed: f64[2]
name: read_data
arguments: tag: D176
type_guessed: f32[2]
name: read_data
arguments: tag: D457
type_guessed: byte[16]
name: read_data
arguments: tag: D92
type_guessed: byte[16]
name: read_data
arguments: tag: D554
type_guessed: f32[2]
name: read_data
arguments: tag: D475
type_guessed: f32[2]
name: read_data
arguments: tag: D344
type_guessed: f32[2]

tool: D302: 1

tool: {"D182": [0x7b,0x14,0xae,0x47,0xe1,0x7a,0x64,0x3f]}

tool: D378: 0.5

tool: D409: 0.25

tool: {"D384": [0x3b,0xdf,0x4f,0x8d,0x97,0x6e,0x82,0x3f]}

tool: {"D369": [350.0,110.0]}

tool: {"D553": [110.0,-1.0]}

tool: {"D176": [0.0,-1.875]}

tool: {"D457": [0x7b,0x14,0xae,0x47,0xe1,0x7a,0x64,0xbf,0x3b,0xdf,0x4f,0x8d,0x97,0x6e,0x82,0xbf]}

tool: {"D92": [0x3b,0xdf,0x4f,0x8d,0x97,0x6e,0x82,0xbf,0x00,0x00,0x00,0x00,0x00,0xe0,0x75,0xc0]}

tool: {"D554": [0.0,-3.841796875]}

tool: {"D475": [0.0,-0.0]}

tool: {"D344": [0.0,-3.4296875]}

assistant: ```c
void safeEucldNormOne(double *a, double *d) {
  if (a[0] > 0.0) {
    if (a[0] < 1.0) {
      if (a[0] < 2.5e-3) {
        d[0] = 1.0 + 0.5 * a[0] * a[0] * (1.0 - 0.25 * a[0] * a[0]);
      } else if (a[0] < 9.0e-3) {
        d[0] = 1.0 + 0.5 * a[0] * a[0] * (1.0 + (0.5 * a[0] * a[0] - 1.0) * 0.25 * a[0] * a[0]);
      } else {
        d[0] = sqrt(1.0 + a[0] * a[0]);
      }
    } else {
      if (a[0] > 350.0) {
        d[0] = 1.0 / a[0];
        d[0] = a[0] + 0.5 * d[0] * (1.0 - 0.25 * d[0] * d[0]);
      } else if (a[0] > 110.0) {
        d[0] = 1.0 / a[0];
        d[0] = a[0] + 0.5 * d[0] * (1.0 + (0.5 * d[0] * d[0] - 1.0) * 0.25 * d[0] * d[0]);
      } else {
        d[0] = sqrt(1.0 + a[0] * a[0]);
      }
    }
  } else {
    if (a[0] > -1.0) {
      if (a[0] > -2.5e-3) {
        d[0] = 1.0 + 0.5 * a[0] * a[0] * (1.0 - 0.25 * a[0] * a[0]);
      } else if (a[0] > -9.0e-3) {
        d[0] = 1.0 + 0.5 * a[0] * a[0] * (1.0 + (0.5 * a[0] * a[0] - 1.0) * 0.25 * a[0] * a[0]);
      } else {
        d[0] = sqrt(1.0 + a[0] * a[0]);
      }
    } else {
      if (a[0] < -350.0) {
        d[0] = 1.0 / a[0];
        d[0] = -a[0] - 0.5 * d[0] * (1.0 - 0.25 * d[0] * d[0]);
      } else if (a[0] < -110.0) {
        d[0] = 1.0 / a[0];
        d[0] = -a[0] - 0.5 * d[0] * (1.0 + (0.5 * d[0] * d[0] - 1.0) * 0.25 * d[0] * d[0]);
      } else {
        d[0] = sqrt(1.0 + a[0] * a[0]);
      }
    }
  }
  return;
}
```