user: What would the C source look like for the assembly code provided here?

```asm
<main>:
  endbr64
  push   %r15
  push   %r14
  push   %rbp
  push   %rbx
  sub    $0x48,%rsp
  mov    %rsi,%rbx
  cmp    $0x4,%edi
  jne    L14
L0:
  mov    0x8(%rbx),%rdi
  call   <atof@plt>
  movss  %xmm0,0x38(%rsp)
  mov    0x10(%rbx),%rdi
  call   <atof@plt>
  movss  %xmm0,0x8(%rsp)
  mov    0x18(%rbx),%rdi
  call   <atof@plt>
  movss  %xmm0,0x10(%rsp)
  pxor   %xmm0,%xmm0
  cvtss2sd 0x38(%rsp),%xmm0
  lea    D24(%rip),%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  pxor   %xmm0,%xmm0
  cvtss2sd 0x8(%rsp),%xmm0
  lea    D58(%rip),%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  pxor   %xmm0,%xmm0
  cvtss2sd 0x10(%rsp),%xmm0
  lea    D121(%rip),%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  movss  D53(%rip),%xmm0
  movss  0x38(%rsp),%xmm6
  mulss  %xmm0,%xmm6
  movss  %xmm6,0x38(%rsp)
  movss  0x8(%rsp),%xmm2
  mulss  %xmm0,%xmm2
  mulss  0x10(%rsp),%xmm0
  movss  %xmm0,0x8(%rsp)
  movss  %xmm2,0x10(%rsp)
  movaps %xmm2,%xmm0
  call   <sin@plt>
  movq   %xmm0,%rbx
  movss  0x8(%rsp),%xmm0
  call   <cos@plt>
  movq   %rbx,%xmm4
  mulsd  %xmm0,%xmm4
  movsd  %xmm4,0x18(%rsp)
  movss  0x38(%rsp),%xmm7
  movaps %xmm7,%xmm6
  addss  %xmm7,%xmm6
  movd   %xmm6,%r15d
  movaps %xmm6,%xmm0
  call   <sin@plt>
  movapd %xmm0,%xmm3
  mulsd  0x18(%rsp),%xmm3
  movsd  %xmm3,0x18(%rsp)
  movss  0x10(%rsp),%xmm2
  movaps %xmm2,%xmm3
  addss  %xmm2,%xmm3
  movaps %xmm3,%xmm0
  movd   %xmm3,%r14d
  call   <sin@plt>
  movq   %xmm0,%rbx
  movss  0x8(%rsp),%xmm0
  call   <sin@plt>
  movq   %rbx,%xmm1
  mulsd  %xmm0,%xmm1
  movsd  %xmm1,0x20(%rsp)
  movss  0x38(%rsp),%xmm0
  call   <sin@plt>
  movapd %xmm0,%xmm6
  mulsd  0x20(%rsp),%xmm6
  movsd  %xmm6,0x20(%rsp)
  movss  0x38(%rsp),%xmm0
  call   <sin@plt>
  mulsd  0x20(%rsp),%xmm0
  addsd  0x18(%rsp),%xmm0
  pxor   %xmm5,%xmm5
  cvtsd2ss %xmm0,%xmm5
  movss  %xmm5,0x20(%rsp)
  movss  0x10(%rsp),%xmm0
  call   <sin@plt>
  movq   %xmm0,%rbx
  movss  0x8(%rsp),%xmm0
  call   <cos@plt>
  movq   %rbx,%xmm4
  mulsd  %xmm0,%xmm4
  movsd  %xmm4,0x18(%rsp)
  movd   %r15d,%xmm0
  call   <sin@plt>
  movapd %xmm0,%xmm3
  mulsd  0x18(%rsp),%xmm3
  movq   %xmm3,%rbx
  movd   %r14d,%xmm0
  call   <sin@plt>
  movq   %xmm0,%rbp
  movss  0x8(%rsp),%xmm0
  call   <sin@plt>
  movapd %xmm0,%xmm3
  movq   %rbp,%xmm4
  mulsd  %xmm4,%xmm3
  movsd  %xmm3,0x18(%rsp)
  movss  0x38(%rsp),%xmm0
  call   <cos@plt>
  movapd %xmm0,%xmm4
  mulsd  0x18(%rsp),%xmm4
  movsd  %xmm4,0x18(%rsp)
  movss  0x38(%rsp),%xmm0
  call   <cos@plt>
  movsd  0x18(%rsp),%xmm1
  mulsd  %xmm0,%xmm1
  movq   %rbx,%xmm6
  subsd  %xmm1,%xmm6
  pxor   %xmm3,%xmm3
  cvtsd2ss %xmm6,%xmm3
  movss  %xmm3,0x3c(%rsp)
  movss  0x10(%rsp),%xmm0
  call   <sin@plt>
  movq   %xmm0,%rbx
  movss  0x8(%rsp),%xmm0
  call   <cos@plt>
  movq   %rbx,%xmm1
  mulsd  %xmm0,%xmm1
  movsd  %xmm1,0x18(%rsp)
  movd   %r15d,%xmm0
  call   <cos@plt>
  movapd %xmm0,%xmm4
  mulsd  0x18(%rsp),%xmm4
  movsd  %xmm4,0x18(%rsp)
  movd   %r14d,%xmm0
  call   <sin@plt>
  movq   %xmm0,%rbx
  movss  0x8(%rsp),%xmm0
  call   <sin@plt>
  movq   %rbx,%xmm6
  mulsd  D82(%rip),%xmm6
  mulsd  %xmm0,%xmm6
  movsd  %xmm6,0x28(%rsp)
  movd   %r15d,%xmm0
  call   <sin@plt>
  mulsd  0x28(%rsp),%xmm0
  addsd  0x18(%rsp),%xmm0
  pxor   %xmm4,%xmm4
  cvtsd2ss %xmm0,%xmm4
  movss  %xmm4,0x18(%rsp)
  movss  0x10(%rsp),%xmm0
  call   <cos@plt>
  movq   %xmm0,%rbx
  movss  0x8(%rsp),%xmm0
  call   <cos@plt>
  movq   %rbx,%xmm1
  mulsd  %xmm0,%xmm1
  movsd  %xmm1,0x28(%rsp)
  movss  0x38(%rsp),%xmm0
  call   <cos@plt>
  movapd %xmm0,%xmm6
  mulsd  0x28(%rsp),%xmm6
  movsd  %xmm6,0x28(%rsp)
  movd   %r14d,%xmm0
  call   <cos@plt>
  movq   %xmm0,%rbx
  movss  0x8(%rsp),%xmm0
  call   <sin@plt>
  movq   %rbx,%xmm1
  mulsd  %xmm0,%xmm1
  movsd  %xmm1,0x30(%rsp)
  movss  0x38(%rsp),%xmm0
  call   <sin@plt>
  movq   %xmm0,%rbx
  movss  0x10(%rsp),%xmm0
  call   <cos@plt>
  movq   %xmm0,%r15
  movss  0x8(%rsp),%xmm0
  call   <cos@plt>
  movapd %xmm0,%xmm7
  movq   %r15,%xmm2
  mulsd  %xmm2,%xmm7
  movsd  %xmm7,0x10(%rsp)
  movss  0x38(%rsp),%xmm0
  call   <sin@plt>
  movapd %xmm0,%xmm7
  mulsd  0x10(%rsp),%xmm7
  movsd  %xmm7,0x10(%rsp)
  movd   %r14d,%xmm0
  call   <cos@plt>
  movq   %xmm0,%r14
  movss  0x8(%rsp),%xmm0
  call   <sin@plt>
  movapd %xmm0,%xmm6
  movq   %r14,%xmm2
  mulsd  %xmm2,%xmm6
  movsd  %xmm6,0x8(%rsp)
  movss  0x38(%rsp),%xmm0
  call   <cos@plt>
  movsd  0x8(%rsp),%xmm1
  mulsd  %xmm0,%xmm1
  movsd  0x10(%rsp),%xmm7
  subsd  %xmm1,%xmm7
  pxor   %xmm2,%xmm2
  cvtsd2ss %xmm7,%xmm2
  movss  %xmm2,0x38(%rsp)
  lea    D41(%rip),%rdi
  call   <puts@plt>
  movq   %rbx,%xmm0
  mulsd  0x30(%rsp),%xmm0
  addsd  0x28(%rsp),%xmm0
  cvtsd2ss %xmm0,%xmm0
  xorps  D137(%rip),%xmm0
  pxor   %xmm7,%xmm7
  cvtss2sd %xmm0,%xmm7
  movq   %xmm7,%r15
  movss  0x3c(%rsp),%xmm3
  movaps %xmm3,%xmm0
  movss  0x20(%rsp),%xmm5
  subss  %xmm5,%xmm0
  xorps  D137(%rip),%xmm0
  pxor   %xmm1,%xmm1
  cvtss2sd %xmm0,%xmm1
  movq   %xmm1,%r14
  cvtss2sd %xmm3,%xmm3
  movq   %xmm3,%rbx
  xorps  D137(%rip),%xmm5
  pxor   %xmm6,%xmm6
  cvtss2sd %xmm5,%xmm6
  movq   %xmm6,%rbp
  movss  0x38(%rsp),%xmm5
  xorps  D137(%rip),%xmm5
  cvtss2sd %xmm5,%xmm5
  movapd %xmm7,%xmm4
  pxor   %xmm3,%xmm3
  cvtss2sd 0x18(%rsp),%xmm3
  movapd %xmm1,%xmm2
  movq   %rbx,%xmm1
  movapd %xmm6,%xmm0
  lea    D103(%rip),%rdi
  mov    $0x6,%eax
  call   <printf@plt>
  lea    D175(%rip),%rdi
  call   <puts@plt>
  movq   %r14,%xmm0
  lea    D19(%rip),%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  movq   %rbp,%xmm0
  lea    D30(%rip),%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  movq   %rbx,%xmm0
  lea    D8(%rip),%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  movq   %r15,%xmm0
  lea    D160(%rip),%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  pxor   %xmm0,%xmm0
  cvtss2sd 0x38(%rsp),%xmm0
  lea    D78(%rip),%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  movss  0x18(%rsp),%xmm0
  xorps  D137(%rip),%xmm0
  cvtss2sd %xmm0,%xmm0
  lea    D196(%rip),%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  mov    $0x0,%eax
  add    $0x48,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r14
  pop    %r15
  ret
L14:
  lea    D50(%rip),%rdi
  call   <puts@plt>
  lea    D187(%rip),%rdi
  call   <puts@plt>
  lea    D133(%rip),%rdi
  call   <puts@plt>
  mov    $0x1,%edi
  call   <exit@plt>
  jmp    L0
```

tool_calls: name: extract_symbolic_data
arguments: tag: D24
type_guessed: string
name: extract_symbolic_data
arguments: tag: D58
type_guessed: string
name: extract_symbolic_data
arguments: tag: D121
type_guessed: string
name: extract_symbolic_data
arguments: tag: D53
type_guessed: f32
name: extract_symbolic_data
arguments: tag: D82
type_guessed: f64
name: extract_symbolic_data
arguments: tag: D41
type_guessed: string
name: extract_symbolic_data
arguments: tag: D137
type_guessed: byte[16]
name: extract_symbolic_data
arguments: tag: D103
type_guessed: string
name: extract_symbolic_data
arguments: tag: D175
type_guessed: string
name: extract_symbolic_data
arguments: tag: D19
type_guessed: string
name: extract_symbolic_data
arguments: tag: D30
type_guessed: string
name: extract_symbolic_data
arguments: tag: D8
type_guessed: string
name: extract_symbolic_data
arguments: tag: D160
type_guessed: string
name: extract_symbolic_data
arguments: tag: D78
type_guessed: string
name: extract_symbolic_data
arguments: tag: D196
type_guessed: string
name: extract_symbolic_data
arguments: tag: D50
type_guessed: string
name: extract_symbolic_data
arguments: tag: D187
type_guessed: string
name: extract_symbolic_data
arguments: tag: D133
type_guessed: string

tool: D24: 
Strike = %9.5f degrees


tool: D58: Dip = %9.5f degrees


tool: D121: Rake/Slip = %9.5f degrees


tool: D53: 0.017453293

tool: D82: 0.5

tool: D41: 
Output Aki&Richards1980:  Mxx  Myy  Mzz  Mxy  Mxz  Myz 

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

tool: D103: %9.5f %9.5f %9.5f %9.5f %9.5f %9.5f


tool: D175: 
Output Harvard CMTSOLUTION:  Mrr Mtt Mpp Mrt Mrp Mtp

tool: D19: Mrr: %9.5f


tool: D30: Mtt: %9.5f


tool: D8: Mpp: %9.5f


tool: D160: Mrt: %9.5f


tool: D78: Mrp: %9.5f


tool: D196: Mtp: %9.5f



tool: D50: 
Double Couple - Moment Tensor Converter (by Onur TAN)

tool: D187: Usage : dc2mt Strike Dip Rake (in degrees)

tool: D133: Output Aki&Richards1980:  Mxx  Myy  Mzz  Mxy  Mxz  Myz 


assistant: ```c
int main(int argc, char *argv[]) {
  float S, D, R, d2r;
  float Mxx, Myy, Mzz, Mxy, Mxz, Myz;
  float Mrr, Mtt, Mpp, Mrt, Mrp, Mtp;
  if (argc != 4) {
    printf("\nDouble Couple - Moment Tensor Converter (by Onur TAN)\n");
    printf("Usage : dc2mt Strike Dip Rake (in degrees)\n");
    printf("Output Aki&Richards1980:  Mxx  Myy  Mzz  Mxy  Mxz  Myz \n\n");
    exit(1);
  }
  d2r = 0.017453293;
  S = atof(argv[1]);
  D = atof(argv[2]);
  R = atof(argv[3]);
  printf("\nStrike = %9.5f degrees\n", S);
  printf("Dip = %9.5f degrees\n", D);
  printf("Rake/Slip = %9.5f degrees\n", R);
  S *= d2r;
  D *= d2r;
  R *= d2r;
  Mxx = -1.0 * (sin(D) * cos(R) * sin(2 * S) + sin(2 * D) * sin(R) * sin(S) * sin(S));
  Myy = (sin(D) * cos(R) * sin(2 * S) - sin(2 * D) * sin(R) * cos(S) * cos(S));
  Mzz = -1.0 * (Mxx + Myy);
  Mxy = (sin(D) * cos(R) * cos(2 * S) + 0.5 * sin(2 * D) * sin(R) * sin(2 * S));
  Mxz = -1.0 * (cos(D) * cos(R) * cos(S) + cos(2 * D) * sin(R) * sin(S));
  Myz = -1.0 * (cos(D) * cos(R) * sin(S) - cos(2 * D) * sin(R) * cos(S));
  printf("\nOutput Aki&Richards1980:  Mxx  Myy  Mzz  Mxy  Mxz  Myz \n");
  printf("%9.5f %9.5f %9.5f %9.5f %9.5f %9.5f\n", Mxx, Myy, Mzz, Mxy, Mxz, Myz);
  Mtt = Mxx;
  Mpp = Myy;
  Mrr = Mzz;
  Mtp = Mxy * -1.;
  Mrt = Mxz;
  Mrp = Myz * -1.;
  printf("\nOutput Harvard CMTSOLUTION:  Mrr Mtt Mpp Mrt Mrp Mtp\n");
  printf("Mrr: %9.5f\n", Mrr);
  printf("Mtt: %9.5f\n", Mtt);
  printf("Mpp: %9.5f\n", Mpp);
  printf("Mrt: %9.5f\n", Mrt);
  printf("Mrp: %9.5f\n", Mrp);
  printf("Mtp: %9.5f\n\n", Mtp);
}
```