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

```asm
<MoroInvCND>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x60,%rsp
  movss  %xmm0,-0x54(%rbp)
  movss  D255(%rip),%xmm0
  movss  %xmm0,-0x48(%rbp)
  movss  D269(%rip),%xmm0
  movss  %xmm0,-0x44(%rbp)
  movss  D198(%rip),%xmm0
  movss  %xmm0,-0x40(%rbp)
  movss  D43(%rip),%xmm0
  movss  %xmm0,-0x3c(%rbp)
  movss  D0(%rip),%xmm0
  movss  %xmm0,-0x38(%rbp)
  movss  D77(%rip),%xmm0
  movss  %xmm0,-0x34(%rbp)
  movss  D177(%rip),%xmm0
  movss  %xmm0,-0x30(%rbp)
  movss  D165(%rip),%xmm0
  movss  %xmm0,-0x2c(%rbp)
  movss  D110(%rip),%xmm0
  movss  %xmm0,-0x28(%rbp)
  movss  D1(%rip),%xmm0
  movss  %xmm0,-0x24(%rbp)
  movss  D204(%rip),%xmm0
  movss  %xmm0,-0x20(%rbp)
  movss  D178(%rip),%xmm0
  movss  %xmm0,-0x1c(%rbp)
  movss  D225(%rip),%xmm0
  movss  %xmm0,-0x18(%rbp)
  movss  D106(%rip),%xmm0
  movss  %xmm0,-0x14(%rbp)
  movss  D208(%rip),%xmm0
  movss  %xmm0,-0x10(%rbp)
  movss  D184(%rip),%xmm0
  movss  %xmm0,-0xc(%rbp)
  movss  D86(%rip),%xmm0
  movss  %xmm0,-0x8(%rbp)
  pxor   %xmm0,%xmm0
  comiss -0x54(%rbp),%xmm0
  jae    L62
  movss  -0x54(%rbp),%xmm0
  movss  D159(%rip),%xmm1
  comiss %xmm1,%xmm0
  jb     L44
L62:
  movss  D173(%rip),%xmm0
  jmp    L51
L44:
  movss  -0x54(%rbp),%xmm0
  movss  D47(%rip),%xmm1
  subss  %xmm1,%xmm0
  movss  %xmm0,-0x4(%rbp)
  movss  -0x4(%rbp),%xmm0
  movss  D38(%rip),%xmm1
  andps  %xmm0,%xmm1
  movss  D191(%rip),%xmm0
  comiss %xmm1,%xmm0
  jbe    L16
  movss  -0x4(%rbp),%xmm0
  mulss  %xmm0,%xmm0
  movss  %xmm0,-0x4c(%rbp)
  movss  -0x3c(%rbp),%xmm0
  mulss  -0x4c(%rbp),%xmm0
  addss  -0x40(%rbp),%xmm0
  mulss  -0x4c(%rbp),%xmm0
  addss  -0x44(%rbp),%xmm0
  mulss  -0x4c(%rbp),%xmm0
  addss  -0x48(%rbp),%xmm0
  mulss  -0x4(%rbp),%xmm0
  movss  -0x2c(%rbp),%xmm1
  mulss  -0x4c(%rbp),%xmm1
  addss  -0x30(%rbp),%xmm1
  mulss  -0x4c(%rbp),%xmm1
  addss  -0x34(%rbp),%xmm1
  mulss  -0x4c(%rbp),%xmm1
  addss  -0x38(%rbp),%xmm1
  movaps %xmm1,%xmm2
  mulss  -0x4c(%rbp),%xmm2
  movss  D159(%rip),%xmm1
  addss  %xmm2,%xmm1
  divss  %xmm1,%xmm0
  movss  %xmm0,-0x4c(%rbp)
  jmp    L5
L16:
  movss  -0x4(%rbp),%xmm0
  pxor   %xmm1,%xmm1
  comiss %xmm1,%xmm0
  jbe    L2
  movss  D159(%rip),%xmm0
  subss  -0x54(%rbp),%xmm0
  movd   %xmm0,%eax
  movd   %eax,%xmm0
  call   <logf@plt>
  movd   %xmm0,%eax
  movss  D35(%rip),%xmm0
  movd   %eax,%xmm3
  xorps  %xmm0,%xmm3
  movd   %xmm3,%eax
  movd   %eax,%xmm0
  call   <logf@plt>
  movd   %xmm0,%eax
  mov    %eax,-0x4c(%rbp)
  jmp    L65
L2:
  mov    -0x54(%rbp),%eax
  movd   %eax,%xmm0
  call   <logf@plt>
  movd   %xmm0,%eax
  movss  D35(%rip),%xmm0
  movd   %eax,%xmm4
  xorps  %xmm0,%xmm4
  movd   %xmm4,%eax
  movd   %eax,%xmm0
  call   <logf@plt>
  movd   %xmm0,%eax
  mov    %eax,-0x4c(%rbp)
L65:
  movss  -0x4c(%rbp),%xmm0
  mulss  -0x8(%rbp),%xmm0
  addss  -0xc(%rbp),%xmm0
  mulss  -0x4c(%rbp),%xmm0
  addss  -0x10(%rbp),%xmm0
  mulss  -0x4c(%rbp),%xmm0
  addss  -0x14(%rbp),%xmm0
  mulss  -0x4c(%rbp),%xmm0
  addss  -0x18(%rbp),%xmm0
  mulss  -0x4c(%rbp),%xmm0
  addss  -0x1c(%rbp),%xmm0
  mulss  -0x4c(%rbp),%xmm0
  addss  -0x20(%rbp),%xmm0
  mulss  -0x4c(%rbp),%xmm0
  addss  -0x24(%rbp),%xmm0
  mulss  -0x4c(%rbp),%xmm0
  movss  -0x28(%rbp),%xmm1
  addss  %xmm1,%xmm0
  movss  %xmm0,-0x4c(%rbp)
  pxor   %xmm0,%xmm0
  comiss -0x4(%rbp),%xmm0
  jbe    L5
  movss  -0x4c(%rbp),%xmm0
  movss  D35(%rip),%xmm1
  xorps  %xmm1,%xmm0
  movss  %xmm0,-0x4c(%rbp)
L5:
  movss  -0x4c(%rbp),%xmm0
L51:
  leave
  ret
```

tool_calls: name: disassemble_data
arguments: data_label: D255
type: byte[4]
name: disassemble_data
arguments: data_label: D269
type: byte[4]
name: disassemble_data
arguments: data_label: D198
type: byte[4]
name: disassemble_data
arguments: data_label: D43
type: byte[4]
name: disassemble_data
arguments: data_label: D0
type: byte[4]
name: disassemble_data
arguments: data_label: D77
type: byte[4]
name: disassemble_data
arguments: data_label: D177
type: byte[4]
name: disassemble_data
arguments: data_label: D165
type: byte[4]
name: disassemble_data
arguments: data_label: D110
type: byte[4]
name: disassemble_data
arguments: data_label: D1
type: byte[4]
name: disassemble_data
arguments: data_label: D204
type: byte[4]
name: disassemble_data
arguments: data_label: D178
type: byte[4]
name: disassemble_data
arguments: data_label: D225
type: byte[4]
name: disassemble_data
arguments: data_label: D106
type: byte[4]
name: disassemble_data
arguments: data_label: D208
type: byte[4]
name: disassemble_data
arguments: data_label: D184
type: byte[4]
name: disassemble_data
arguments: data_label: D86
type: byte[4]
name: disassemble_data
arguments: data_label: D159
type: byte[4]
name: disassemble_data
arguments: data_label: D173
type: byte[4]
name: disassemble_data
arguments: data_label: D47
type: byte[4]
name: disassemble_data
arguments: data_label: D38
type: dword
name: disassemble_data
arguments: data_label: D191
type: byte[4]
name: disassemble_data
arguments: data_label: D35
type: byte[4]

tool: {"D255": [0x99,0x6c,0x20,0x40]}

tool: {"D269": [0x85,0xeb,0x94,0xc1]}

tool: {"D198": [0x96,0x90,0x25,0x42]}

tool: {"D43": [0x4b,0x87,0xcb,0xc1]}

tool: {"D0": [0x80,0x93,0x07,0xc1]}

tool: {"D77": [0xbd,0xaa,0xb8,0x41]}

tool: {"D177": [0x78,0x7f,0xa8,0xc1]}

tool: {"D165": [0x81,0x5f,0x48,0x40]}

tool: {"D110": [0x96,0xc9,0xac,0x3e]}

tool: {"D1": [0x36,0xe6,0x79,0x3f]}

tool: {"D204": [0x39,0xa8,0x24,0x3e]}

tool: {"D178": [0x6c,0x75,0xe2,0x3c]}

tool: {"D225": [0x1f,0xb2,0x7b,0x3b]}

tool: {"D106": [0x75,0x31,0xcf,0x39]}

tool: {"D208": [0x90,0xf5,0x06,0x38]}

tool: {"D184": [0xac,0x0e,0x9b,0x34]}

tool: {"D86": [0x28,0x9e,0xd4,0x34]}

tool: {"D159": [0x00,0x00,0x80,0x3f]}

tool: {"D173": [0x00,0x00,0x00,0x4f]}

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

tool: D38: 2147483647

tool: {"D191": [0x3d,0x0a,0xd7,0x3e]}

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

assistant: ```c
float MoroInvCND(float P) {
  const float a1 = 2.50662823884f;
  const float a2 = -18.61500062529f;
  const float a3 = 41.39119773534f;
  const float a4 = -25.44106049637f;
  const float b1 = -8.4735109309f;
  const float b2 = 23.08336743743f;
  const float b3 = -21.06224101826f;
  const float b4 = 3.13082909833f;
  const float c1 = 0.337475482272615f;
  const float c2 = 0.976169019091719f;
  const float c3 = 0.160797971491821f;
  const float c4 = 2.76438810333863E-02f;
  const float c5 = 3.8405729373609E-03f;
  const float c6 = 3.951896511919E-04f;
  const float c7 = 3.21767881768E-05f;
  const float c8 = 2.888167364E-07f;
  const float c9 = 3.960315187E-07f;
  float y, z;
  if (P <= 0 || P >= 1.0f)
    return (float)(0x7FFFFFFF);
  y = P - 0.5f;
  if (fabsf(y) < 0.42f) {
    z = y * y;
    z = y * (((a4 * z + a3) * z + a2) * z + a1) / ((((b4 * z + b3) * z + b2) * z + b1) * z + 1.0f);
  } else {
    if (y > 0)
      z = logf(-logf(1.0f - P));
    else
      z = logf(-logf(P));
    z = c1 + z * (c2 + z * (c3 + z * (c4 + z * (c5 + z * (c6 + z * (c7 + z * (c8 + z * c9)))))));
    if (y < 0)
      z = -z;
  }
  return z;
}
```