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

```asm
<invert>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x1e0,%rsp
  mov    %rdi,-0x1c8(%rbp)
  mov    %rsi,-0x1d0(%rbp)
  mov    %rdx,-0x1d8(%rbp)
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  movq   $0x0,-0x1b0(%rbp)
  jmp    L49
L202:
  mov    -0x1b0(%rbp),%rax
  mov    %rax,-0x1b8(%rbp)
  jmp    L103
L93:
  mov    -0x1b0(%rbp),%rdx
  mov    %rdx,%rax
  shl    $0x2,%rax
  add    %rdx,%rax
  add    %rax,%rax
  mov    %rax,%rdx
  mov    -0x1b8(%rbp),%rax
  add    %rdx,%rax
  lea    0x0(,%rax,4),%rdx
  mov    -0x1c8(%rbp),%rax
  lea    (%rdx,%rax,1),%rcx
  mov    -0x1b0(%rbp),%rdx
  mov    %rdx,%rax
  shl    $0x2,%rax
  add    %rdx,%rax
  add    %rax,%rax
  mov    %rax,%rdx
  mov    -0x1b8(%rbp),%rax
  add    %rdx,%rax
  movss  (%rcx),%xmm0
  movss  %xmm0,-0x1a0(%rbp,%rax,4)
  addq   $0x1,-0x1b8(%rbp)
L103:
  cmpq   $0x9,-0x1b8(%rbp)
  jle    L93
  movq   $0x0,-0x1a8(%rbp)
  jmp    L84
L20:
  mov    -0x1a8(%rbp),%rdx
  mov    %rdx,%rax
  shl    $0x2,%rax
  add    %rdx,%rax
  add    %rax,%rax
  mov    %rax,%rdx
  mov    -0x1b0(%rbp),%rax
  add    %rdx,%rax
  movss  -0x1a0(%rbp,%rax,4),%xmm1
  mov    -0x1a8(%rbp),%rdx
  mov    %rdx,%rax
  shl    $0x2,%rax
  add    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  movss  -0x1a0(%rbp,%rax,4),%xmm0
  mulss  %xmm1,%xmm0
  movss  %xmm0,-0x1bc(%rbp)
  mov    -0x1b0(%rbp),%rax
  mov    %rax,-0x1b8(%rbp)
  jmp    L76
L180:
  mov    -0x1b0(%rbp),%rdx
  mov    %rdx,%rax
  shl    $0x2,%rax
  add    %rdx,%rax
  add    %rax,%rax
  mov    %rax,%rdx
  mov    -0x1b8(%rbp),%rax
  add    %rdx,%rax
  movss  -0x1a0(%rbp,%rax,4),%xmm0
  mov    -0x1a8(%rbp),%rdx
  mov    %rdx,%rax
  shl    $0x2,%rax
  add    %rdx,%rax
  add    %rax,%rax
  mov    %rax,%rdx
  mov    -0x1b8(%rbp),%rax
  add    %rdx,%rax
  movss  -0x1a0(%rbp,%rax,4),%xmm1
  mulss  -0x1bc(%rbp),%xmm1
  mov    -0x1b0(%rbp),%rdx
  mov    %rdx,%rax
  shl    $0x2,%rax
  add    %rdx,%rax
  add    %rax,%rax
  mov    %rax,%rdx
  mov    -0x1b8(%rbp),%rax
  add    %rdx,%rax
  subss  %xmm1,%xmm0
  movss  %xmm0,-0x1a0(%rbp,%rax,4)
  addq   $0x1,-0x1b8(%rbp)
L76:
  cmpq   $0x9,-0x1b8(%rbp)
  jle    L180
  addq   $0x1,-0x1a8(%rbp)
L84:
  mov    -0x1a8(%rbp),%rax
  cmp    -0x1b0(%rbp),%rax
  jl     L20
  mov    -0x1b0(%rbp),%rdx
  mov    %rdx,%rax
  shl    $0x2,%rax
  add    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  mov    -0x1a0(%rbp,%rax,4),%eax
  movd   %eax,%xmm0
  call   <fabs@plt>
  movss  D7(%rip),%xmm1
  comiss %xmm0,%xmm1
  ja     L191
  mov    -0x1b0(%rbp),%rax
  lea    0x0(,%rax,4),%rdx
  mov    -0x1d0(%rbp),%rax
  add    %rax,%rdx
  mov    -0x1b0(%rbp),%rax
  lea    0x0(,%rax,4),%rcx
  mov    -0x1d8(%rbp),%rax
  add    %rcx,%rax
  movss  (%rdx),%xmm0
  movss  %xmm0,(%rax)
  movq   $0x0,-0x1a8(%rbp)
  jmp    L73
L42:
  mov    -0x1b0(%rbp),%rax
  lea    0x0(,%rax,4),%rdx
  mov    -0x1d8(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  mov    -0x1a8(%rbp),%rax
  lea    0x0(,%rax,4),%rdx
  mov    -0x1d8(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm2
  mov    -0x1a8(%rbp),%rdx
  mov    %rdx,%rax
  shl    $0x2,%rax
  add    %rdx,%rax
  add    %rax,%rax
  mov    %rax,%rdx
  mov    -0x1b0(%rbp),%rax
  add    %rdx,%rax
  movss  -0x1a0(%rbp,%rax,4),%xmm1
  mulss  %xmm2,%xmm1
  mov    -0x1b0(%rbp),%rax
  lea    0x0(,%rax,4),%rdx
  mov    -0x1d8(%rbp),%rax
  add    %rdx,%rax
  subss  %xmm1,%xmm0
  movss  %xmm0,(%rax)
  addq   $0x1,-0x1a8(%rbp)
L73:
  mov    -0x1a8(%rbp),%rax
  cmp    -0x1b0(%rbp),%rax
  jl     L42
  mov    -0x1b0(%rbp),%rdx
  mov    %rdx,%rax
  shl    $0x2,%rax
  add    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  movss  -0x1a0(%rbp,%rax,4),%xmm1
  mov    -0x1b0(%rbp),%rdx
  mov    %rdx,%rax
  shl    $0x2,%rax
  add    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  movss  D0(%rip),%xmm0
  divss  %xmm1,%xmm0
  movss  %xmm0,-0x1a0(%rbp,%rax,4)
  mov    -0x1b0(%rbp),%rax
  lea    0x0(,%rax,4),%rdx
  mov    -0x1d8(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm1
  mov    -0x1b0(%rbp),%rdx
  mov    %rdx,%rax
  shl    $0x2,%rax
  add    %rdx,%rax
  add    %rax,%rax
  add    %rdx,%rax
  movss  -0x1a0(%rbp,%rax,4),%xmm0
  mov    -0x1b0(%rbp),%rax
  lea    0x0(,%rax,4),%rdx
  mov    -0x1d8(%rbp),%rax
  add    %rdx,%rax
  mulss  %xmm1,%xmm0
  movss  %xmm0,(%rax)
  mov    -0x1b0(%rbp),%rax
  lea    0x0(,%rax,4),%rdx
  mov    -0x1d8(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm1
  movss  D26(%rip),%xmm0
  comiss %xmm1,%xmm0
  jb     L9
  mov    -0x1b0(%rbp),%rax
  lea    0x0(,%rax,4),%rdx
  mov    -0x1d8(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  comiss D55(%rip),%xmm0
  setae  %al
  jmp    L75
L9:
  mov    $0x1,%eax
L75:
  test   %al,%al
  je     L167
  mov    -0x1b0(%rbp),%rax
  lea    0x0(,%rax,4),%rdx
  mov    -0x1d8(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm1
  movss  D26(%rip),%xmm0
  comiss %xmm1,%xmm0
  jb     L102
  mov    -0x1b0(%rbp),%rax
  lea    0x0(,%rax,4),%rdx
  mov    -0x1d8(%rbp),%rax
  add    %rdx,%rax
  movss  (%rax),%xmm0
  jmp    L60
L102:
  movss  D26(%rip),%xmm0
  jmp    L60
L167:
  movss  D55(%rip),%xmm0
L60:
  mov    -0x1b0(%rbp),%rax
  lea    0x0(,%rax,4),%rdx
  mov    -0x1d8(%rbp),%rax
  add    %rdx,%rax
  movss  %xmm0,(%rax)
  addq   $0x1,-0x1b0(%rbp)
L49:
  cmpq   $0x9,-0x1b0(%rbp)
  jle    L202
  jmp    L11
L191:
  nop
  mov    -0x1b0(%rbp),%rax
  mov    %rax,-0x1b8(%rbp)
  jmp    L207
L209:
  mov    -0x1b8(%rbp),%rax
  lea    0x0(,%rax,4),%rdx
  mov    -0x1d8(%rbp),%rax
  add    %rdx,%rax
  pxor   %xmm0,%xmm0
  movss  %xmm0,(%rax)
  addq   $0x1,-0x1b8(%rbp)
L207:
  cmpq   $0x9,-0x1b8(%rbp)
  jle    L209
L11:
  mov    -0x8(%rbp),%rax
  sub    %fs:0x28,%rax
  je     L110
  call   <__stack_chk_fail@plt>
L110:
  leave
  ret
```

tool_calls: name: extract_symbolic_data
arguments: data_label: D7
datatype: byte[4]
name: extract_symbolic_data
arguments: data_label: D0
datatype: byte[4]
name: extract_symbolic_data
arguments: data_label: D26
datatype: byte[4]
name: extract_symbolic_data
arguments: data_label: D55
datatype: byte[4]

tool: {"D7": [0xff,0xe6,0xdb,0x2e]}

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

tool: {"D26": [0x77,0xbe,0x7f,0x3f]}

tool: {"D55": [0x77,0xbe,0x7f,0xbf]}

assistant: ```c
void invert(float *phi, float *psi, float *rc) {
  float save;
  long i, j, k;
  float v[100];
  for (j = 0; j < 10; ++j) {
    for (i = j; i < 10; ++i) {
      v[i + j * 10] = phi[i + j * 10];
    }
    for (k = 0; k < j; ++k) {
      save = v[j + k * 10] * v[k + k * 10];
      for (i = j; i < 10; ++i) {
        v[i + j * 10] -= v[i + k * 10] * save;
      }
    }
    if ((fabs(v[j + j * 10])) < 1e-10f) {
      goto L100;
    }
    rc[j] = psi[j];
    for (k = 0; k < j; ++k) {
      rc[j] -= rc[k] * v[j + k * 10];
    }
    v[j + j * 10] = 1.f / v[j + j * 10];
    rc[j] *= v[j + j * 10];
    rc[j] = ((((rc[j]) <= (.999f) ? (rc[j]) : (.999f))) >= (-.999f) ? (((rc[j]) <= (.999f) ? (rc[j]) : (.999f))) : (-.999f));
  }
  return;
L100:
  for (i = j; i < 10; ++i) {
    rc[i] = 0.f;
  }
}
```