user: 请将这段汇编代码片段转换成等效的C代码：

```asm
<main>:
  endbr64
  push   %r15
  push   %r14
  push   %rbp
  push   %rbx
  sub    $0x48,%rsp
  mov    %rsi,%rbx
  cmp    $0x4,%edi
  jne    L10
L3:
  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    D185(%rip),%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  pxor   %xmm0,%xmm0
  cvtss2sd 0x8(%rsp),%xmm0
  lea    D33(%rip),%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  pxor   %xmm0,%xmm0
  cvtss2sd 0x10(%rsp),%xmm0
  lea    D116(%rip),%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  movss  D205(%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  D58(%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    D198(%rip),%rdi
  call   <puts@plt>
  movq   %rbx,%xmm0
  mulsd  0x30(%rsp),%xmm0
  addsd  0x28(%rsp),%xmm0
  cvtsd2ss %xmm0,%xmm0
  xorps  D57(%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  D57(%rip),%xmm0
  pxor   %xmm1,%xmm1
  cvtss2sd %xmm0,%xmm1
  movq   %xmm1,%r14
  cvtss2sd %xmm3,%xmm3
  movq   %xmm3,%rbx
  xorps  D57(%rip),%xmm5
  pxor   %xmm6,%xmm6
  cvtss2sd %xmm5,%xmm6
  movq   %xmm6,%rbp
  movss  0x38(%rsp),%xmm5
  xorps  D57(%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    D210(%rip),%rdi
  mov    $0x6,%eax
  call   <printf@plt>
  lea    D141(%rip),%rdi
  call   <puts@plt>
  movq   %r14,%xmm0
  lea    D182(%rip),%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  movq   %rbp,%xmm0
  lea    D143(%rip),%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  movq   %rbx,%xmm0
  lea    D84(%rip),%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  movq   %r15,%xmm0
  lea    D113(%rip),%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  pxor   %xmm0,%xmm0
  cvtss2sd 0x38(%rsp),%xmm0
  lea    D174(%rip),%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  movss  0x18(%rsp),%xmm0
  xorps  D57(%rip),%xmm0
  cvtss2sd %xmm0,%xmm0
  lea    D72(%rip),%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  mov    $0x0,%eax
  add    $0x48,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r14
  pop    %r15
  ret
L10:
  lea    D109(%rip),%rdi
  call   <puts@plt>
  lea    D26(%rip),%rdi
  call   <puts@plt>
  lea    D42(%rip),%rdi
  call   <puts@plt>
  mov    $0x1,%edi
  call   <exit@plt>
  jmp    L3
```

tool_calls: name: disassemble_data
arguments: label: D185
type_guessed: string
name: disassemble_data
arguments: label: D33
type_guessed: string
name: disassemble_data
arguments: label: D116
type_guessed: string
name: disassemble_data
arguments: label: D205
type_guessed: f32
name: disassemble_data
arguments: label: D58
type_guessed: f64
name: disassemble_data
arguments: label: D198
type_guessed: string
name: disassemble_data
arguments: label: D57
type_guessed: byte[16]
name: disassemble_data
arguments: label: D210
type_guessed: string
name: disassemble_data
arguments: label: D141
type_guessed: string
name: disassemble_data
arguments: label: D182
type_guessed: string
name: disassemble_data
arguments: label: D143
type_guessed: string
name: disassemble_data
arguments: label: D84
type_guessed: string
name: disassemble_data
arguments: label: D113
type_guessed: string
name: disassemble_data
arguments: label: D174
type_guessed: string
name: disassemble_data
arguments: label: D72
type_guessed: string
name: disassemble_data
arguments: label: D109
type_guessed: string
name: disassemble_data
arguments: label: D26
type_guessed: string
name: disassemble_data
arguments: label: D42
type_guessed: string

tool: D185: 
Strike = %9.5f degrees


tool: D33: Dip = %9.5f degrees


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


tool: D205: 0.017453293

tool: D58: 0.5

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

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

tool: D210: %9.5f %9.5f %9.5f %9.5f %9.5f %9.5f


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

tool: D182: Mrr: %9.5f


tool: D143: Mtt: %9.5f


tool: D84: Mpp: %9.5f


tool: D113: Mrt: %9.5f


tool: D174: Mrp: %9.5f


tool: D72: Mtp: %9.5f



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

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

tool: D42: 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);
}
```