user: What is the c source code of the assembly code below:

```asm
<fmatrixAeqRenormRotA>:
  endbr64
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0x10,%rsp
  mov    %rdi,%rbx
  mov    (%rdi),%r13d
  mov    0xc(%rdi),%r12d
  mov    0x18(%rdi),%ebp
  movd   %r13d,%xmm0
  mulss  %xmm0,%xmm0
  movd   %r12d,%xmm1
  mulss  %xmm1,%xmm1
  addss  %xmm1,%xmm0
  movd   %ebp,%xmm1
  mulss  %xmm1,%xmm1
  addss  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  ucomiss %xmm0,%xmm1
  ja     L60
  sqrtss %xmm0,%xmm0
L48:
  comiss D26(%rip),%xmm0
  jbe    L17
  movss  D6(%rip),%xmm1
  divss  %xmm0,%xmm1
  movd   %r13d,%xmm0
  mulss  %xmm1,%xmm0
  movss  %xmm0,(%rbx)
  movd   %r12d,%xmm0
  mulss  %xmm1,%xmm0
  movss  %xmm0,0xc(%rbx)
  movd   %ebp,%xmm3
  mulss  %xmm1,%xmm3
  movss  %xmm3,0x18(%rbx)
L15:
  movss  (%rbx),%xmm5
  movd   %xmm5,%r13d
  movss  0x4(%rbx),%xmm3
  movss  0xc(%rbx),%xmm6
  movd   %xmm6,%r14d
  movss  0x10(%rbx),%xmm2
  mov    0x18(%rbx),%ebp
  movss  0x1c(%rbx),%xmm1
  movaps %xmm5,%xmm0
  mulss  %xmm3,%xmm0
  movaps %xmm6,%xmm4
  mulss  %xmm2,%xmm4
  addss  %xmm4,%xmm0
  movd   %ebp,%xmm4
  mulss  %xmm1,%xmm4
  addss  %xmm4,%xmm0
  movaps %xmm5,%xmm4
  mulss  %xmm0,%xmm4
  movaps %xmm3,%xmm7
  subss  %xmm4,%xmm7
  movss  %xmm7,0x8(%rsp)
  movaps %xmm6,%xmm3
  mulss  %xmm0,%xmm3
  subss  %xmm3,%xmm2
  movss  %xmm2,0xc(%rsp)
  movd   %ebp,%xmm5
  mulss  %xmm5,%xmm0
  subss  %xmm0,%xmm1
  movd   %xmm1,%r12d
  movss  %xmm1,0x1c(%rbx)
  movaps %xmm7,%xmm0
  mulss  %xmm7,%xmm0
  movaps %xmm2,%xmm1
  mulss  %xmm2,%xmm1
  addss  %xmm1,%xmm0
  movd   %r12d,%xmm1
  mulss  %xmm1,%xmm1
  addss  %xmm1,%xmm0
  pxor   %xmm1,%xmm1
  ucomiss %xmm0,%xmm1
  ja     L77
  sqrtss %xmm0,%xmm0
L39:
  comiss D26(%rip),%xmm0
  jbe    L8
  movss  D6(%rip),%xmm1
  divss  %xmm0,%xmm1
  movss  0x8(%rsp),%xmm0
  mulss  %xmm1,%xmm0
  movss  %xmm0,0x4(%rbx)
  movss  0xc(%rsp),%xmm0
  mulss  %xmm1,%xmm0
  movss  %xmm0,0x10(%rbx)
  movd   %r12d,%xmm4
  mulss  %xmm1,%xmm4
  movss  %xmm4,0x1c(%rbx)
L16:
  movss  0x1c(%rbx),%xmm1
  movss  0x10(%rbx),%xmm3
  movd   %r14d,%xmm5
  movd   %r14d,%xmm0
  mulss  %xmm1,%xmm0
  movd   %ebp,%xmm2
  mulss  %xmm3,%xmm2
  subss  %xmm2,%xmm0
  movss  %xmm0,0x8(%rbx)
  movss  0x4(%rbx),%xmm2
  movd   %ebp,%xmm0
  mulss  %xmm2,%xmm0
  movd   %r13d,%xmm6
  mulss  %xmm6,%xmm1
  subss  %xmm1,%xmm0
  movss  %xmm0,0x14(%rbx)
  mulss  %xmm3,%xmm6
  movaps %xmm6,%xmm0
  mulss  %xmm2,%xmm5
  subss  %xmm5,%xmm0
  movss  %xmm0,0x20(%rbx)
  add    $0x10,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  ret
L60:
  call   <sqrtf@plt>
  jmp    L48
L17:
  movl   $0x3f800000,(%rbx)
  movl   $0x0,0x18(%rbx)
  movl   $0x0,0xc(%rbx)
  jmp    L15
L77:
  call   <sqrtf@plt>
  jmp    L39
L8:
  movl   $0x3f800000,0x10(%rbx)
  movl   $0x0,0x1c(%rbx)
  movl   $0x0,0x4(%rbx)
  jmp    L16
```

tool_calls: name: retrieve_data
arguments: data_tag: D26
data_type: byte[4]
name: retrieve_data
arguments: data_tag: D6
data_type: byte[4]

tool: {"D26": [0x6f,0x12,0x83,0x3a]}

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

assistant: ```c
void fmatrixAeqRenormRotA(float A[][3]) {
  float ftmp;
  ftmp = sqrtf(A[0][0] * A[0][0] + A[1][0] * A[1][0] + A[2][0] * A[2][0]);
  if (ftmp > 0.001F) {
    ftmp = 1.0F / ftmp;
    A[0][0] *= ftmp;
    A[1][0] *= ftmp;
    A[2][0] *= ftmp;
  } else {
    A[0][0] = 1.0F;
    A[1][0] = A[2][0] = 0.0F;
  }
  ftmp = A[0][0] * A[0][1] + A[1][0] * A[1][1] + A[2][0] * A[2][1];
  A[0][1] -= ftmp * A[0][0];
  A[1][1] -= ftmp * A[1][0];
  A[2][1] -= ftmp * A[2][0];
  ftmp = sqrtf(A[0][1] * A[0][1] + A[1][1] * A[1][1] + A[2][1] * A[2][1]);
  if (ftmp > 0.001F) {
    ftmp = 1.0F / ftmp;
    A[0][1] *= ftmp;
    A[1][1] *= ftmp;
    A[2][1] *= ftmp;
  } else {
    A[1][1] = 1.0F;
    A[0][1] = A[2][1] = 0.0F;
  }
  A[0][2] = A[1][0] * A[2][1] - A[2][0] * A[1][1];
  A[1][2] = A[2][0] * A[0][1] - A[0][0] * A[2][1];
  A[2][2] = A[0][0] * A[1][1] - A[1][0] * A[0][1];
}
```