user: Demonstrate the C code that generates the assembly output below:

```asm
<MoroInvCND>:
  endbr64
  pxor   %xmm5,%xmm5
  comiss %xmm0,%xmm5
  jae    L46
  movss  D135(%rip),%xmm3
  movaps %xmm0,%xmm1
  movss  D76(%rip),%xmm0
  comiss %xmm3,%xmm1
  jae    L22
  movaps %xmm1,%xmm2
  subss  D53(%rip),%xmm2
  movss  D132(%rip),%xmm4
  movaps %xmm2,%xmm0
  andps  D52(%rip),%xmm0
  comiss %xmm0,%xmm4
  jbe    L4
  movaps %xmm2,%xmm4
  movss  D59(%rip),%xmm1
  movss  D148(%rip),%xmm0
  mulss  %xmm2,%xmm4
  mulss  %xmm4,%xmm1
  subss  D130(%rip),%xmm1
  mulss  %xmm4,%xmm0
  addss  D86(%rip),%xmm0
  mulss  %xmm4,%xmm1
  addss  D89(%rip),%xmm1
  mulss  %xmm4,%xmm0
  subss  D126(%rip),%xmm0
  mulss  %xmm4,%xmm1
  subss  D50(%rip),%xmm1
  mulss  %xmm4,%xmm0
  addss  D83(%rip),%xmm0
  mulss  %xmm4,%xmm1
  mulss  %xmm2,%xmm0
  addss  %xmm3,%xmm1
  divss  %xmm1,%xmm0
  ret
  nopl   0x0(%rax,%rax,1)
L22:
  ret
  nopl   0x0(%rax)
L46:
  movss  D76(%rip),%xmm0
  ret
  nopl   0x0(%rax)
L4:
  pxor   %xmm6,%xmm6
  sub    $0x28,%rsp
  comiss %xmm6,%xmm2
  movss  %xmm2,0x1c(%rsp)
  jbe    L28
  subss  %xmm1,%xmm3
  movaps %xmm3,%xmm0
  call   <logf@plt>
  movss  D5(%rip),%xmm3
  xorps  %xmm3,%xmm0
  movaps %xmm3,(%rsp)
  call   <logf@plt>
  movaps (%rsp),%xmm3
  movss  0x1c(%rsp),%xmm2
L21:
  movss  D175(%rip),%xmm1
  pxor   %xmm7,%xmm7
  comiss %xmm2,%xmm7
  mulss  %xmm0,%xmm1
  addss  D190(%rip),%xmm1
  mulss  %xmm0,%xmm1
  addss  D174(%rip),%xmm1
  mulss  %xmm0,%xmm1
  addss  D95(%rip),%xmm1
  mulss  %xmm0,%xmm1
  addss  D232(%rip),%xmm1
  mulss  %xmm0,%xmm1
  addss  D4(%rip),%xmm1
  mulss  %xmm0,%xmm1
  addss  D136(%rip),%xmm1
  mulss  %xmm0,%xmm1
  addss  D51(%rip),%xmm1
  mulss  %xmm1,%xmm0
  addss  D235(%rip),%xmm0
  jbe    L59
  xorps  %xmm3,%xmm0
L59:
  add    $0x28,%rsp
  ret
  nopw   0x0(%rax,%rax,1)
L28:
  movaps %xmm1,%xmm0
  call   <logf@plt>
  movss  D5(%rip),%xmm3
  xorps  %xmm3,%xmm0
  movaps %xmm3,(%rsp)
  call   <logf@plt>
  movss  0x1c(%rsp),%xmm2
  movaps (%rsp),%xmm3
  jmp    L21
```

tool_calls: name: unpack_data
arguments: data_label: D135
type_guessed: byte[4]
name: unpack_data
arguments: data_label: D76
type_guessed: byte[4]
name: unpack_data
arguments: data_label: D53
type_guessed: byte[4]
name: unpack_data
arguments: data_label: D132
type_guessed: byte[4]
name: unpack_data
arguments: data_label: D52
type_guessed: dword[4]
name: unpack_data
arguments: data_label: D59
type_guessed: byte[4]
name: unpack_data
arguments: data_label: D148
type_guessed: byte[4]
name: unpack_data
arguments: data_label: D130
type_guessed: byte[4]
name: unpack_data
arguments: data_label: D86
type_guessed: byte[4]
name: unpack_data
arguments: data_label: D89
type_guessed: byte[4]
name: unpack_data
arguments: data_label: D126
type_guessed: byte[4]
name: unpack_data
arguments: data_label: D50
type_guessed: byte[4]
name: unpack_data
arguments: data_label: D83
type_guessed: byte[4]
name: unpack_data
arguments: data_label: D5
type_guessed: byte[4]
name: unpack_data
arguments: data_label: D175
type_guessed: byte[4]
name: unpack_data
arguments: data_label: D190
type_guessed: byte[4]
name: unpack_data
arguments: data_label: D174
type_guessed: byte[4]
name: unpack_data
arguments: data_label: D95
type_guessed: byte[4]
name: unpack_data
arguments: data_label: D232
type_guessed: byte[4]
name: unpack_data
arguments: data_label: D4
type_guessed: byte[4]
name: unpack_data
arguments: data_label: D136
type_guessed: byte[4]
name: unpack_data
arguments: data_label: D51
type_guessed: byte[4]
name: unpack_data
arguments: data_label: D235
type_guessed: byte[4]

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

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

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

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

tool: {"D52": [0x7fffffff,0x00000000,0x00000000,0x00000000]}

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

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

tool: {"D130": [0x78,0x7f,0xa8,0x41]}

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

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

tool: {"D126": [0x85,0xeb,0x94,0x41]}

tool: {"D50": [0x80,0x93,0x07,0x41]}

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

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

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

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

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

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

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

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

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

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

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

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;
}
```