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

```asm
<det6x6>:
  endbr64
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0x4f8,%rsp
  mov    %rdi,%rbx
  mov    %fs:0x28,%rax
  mov    %rax,0x4e8(%rsp)
  xor    %eax,%eax
  mov    0x38(%rdi),%r10
  mov    %r10,0x10(%rsp)
  mov    0x40(%rdi),%r9
  mov    %r9,0x18(%rsp)
  mov    0x48(%rdi),%r8
  mov    %r8,0x20(%rsp)
  mov    0x50(%rdi),%rdi
  mov    %rdi,0x28(%rsp)
  mov    0x58(%rbx),%r15
  mov    %r15,0x30(%rsp)
  mov    0x68(%rbx),%rcx
  mov    %rcx,0x38(%rsp)
  mov    0x70(%rbx),%rdx
  mov    %rdx,0x40(%rsp)
  mov    0x78(%rbx),%rax
  mov    %rax,0x48(%rsp)
  movsd  0x80(%rbx),%xmm15
  movsd  %xmm15,0x50(%rsp)
  mov    0x88(%rbx),%r14
  mov    %r14,0x58(%rsp)
  movsd  0x98(%rbx),%xmm13
  movsd  %xmm13,0x60(%rsp)
  movsd  0xa0(%rbx),%xmm12
  movsd  %xmm12,0x68(%rsp)
  movsd  0xa8(%rbx),%xmm11
  movsd  %xmm11,0x70(%rsp)
  movsd  0xb0(%rbx),%xmm10
  movsd  %xmm10,0x78(%rsp)
  mov    0xb8(%rbx),%r13
  mov    %r13,0x80(%rsp)
  movsd  0xc8(%rbx),%xmm8
  movsd  %xmm8,0x88(%rsp)
  movsd  0xd0(%rbx),%xmm7
  movsd  %xmm7,0x90(%rsp)
  movsd  0xd8(%rbx),%xmm6
  movsd  %xmm6,0x98(%rsp)
  movsd  0xe0(%rbx),%xmm5
  movsd  %xmm5,0xa0(%rsp)
  mov    0xe8(%rbx),%r12
  mov    %r12,0xa8(%rsp)
  movsd  0xf8(%rbx),%xmm3
  movsd  %xmm3,0xb0(%rsp)
  movsd  0x100(%rbx),%xmm2
  movsd  %xmm2,0xb8(%rsp)
  movsd  0x108(%rbx),%xmm1
  movsd  %xmm1,0xc0(%rsp)
  movsd  0x110(%rbx),%xmm0
  movsd  %xmm0,0xc8(%rsp)
  mov    0x118(%rbx),%rbp
  mov    %rbp,0xd0(%rsp)
  mov    0x30(%rbx),%r11
  mov    %r11,0xe0(%rsp)
  mov    %r9,0xe8(%rsp)
  mov    %r8,0xf0(%rsp)
  mov    %rdi,0xf8(%rsp)
  mov    %r15,0x100(%rsp)
  mov    0x60(%rbx),%rsi
  mov    %rsi,0x108(%rsp)
  mov    %rdx,0x110(%rsp)
  mov    %rax,0x118(%rsp)
  movsd  %xmm15,0x120(%rsp)
  mov    %r14,0x128(%rsp)
  movsd  0x90(%rbx),%xmm14
  movsd  %xmm14,0x130(%rsp)
  movsd  %xmm12,0x138(%rsp)
  movsd  %xmm11,0x140(%rsp)
  movsd  %xmm10,0x148(%rsp)
  mov    %r13,0x150(%rsp)
  movsd  0xc0(%rbx),%xmm9
  movsd  %xmm9,0x158(%rsp)
  movsd  %xmm7,0x160(%rsp)
  movsd  %xmm6,0x168(%rsp)
  movsd  %xmm5,0x170(%rsp)
  mov    %r12,0x178(%rsp)
  movsd  0xf0(%rbx),%xmm4
  movsd  %xmm4,0x180(%rsp)
  movsd  %xmm2,0x188(%rsp)
  movsd  %xmm1,0x190(%rsp)
  movsd  %xmm0,0x198(%rsp)
  mov    %rbp,0x1a0(%rsp)
  mov    %r11,0x1b0(%rsp)
  mov    %r10,0x1b8(%rsp)
  mov    %r8,0x1c0(%rsp)
  mov    %rdi,0x1c8(%rsp)
  mov    %r15,0x1d0(%rsp)
  mov    %rsi,0x1d8(%rsp)
  mov    %rcx,0x1e0(%rsp)
  mov    %rax,0x1e8(%rsp)
  movsd  %xmm15,0x1f0(%rsp)
  mov    %r14,0x1f8(%rsp)
  movsd  %xmm14,0x200(%rsp)
  movsd  %xmm13,0x208(%rsp)
  movsd  %xmm11,0x210(%rsp)
  movsd  %xmm10,0x218(%rsp)
  mov    %r13,0x220(%rsp)
  movsd  %xmm9,0x228(%rsp)
  movsd  %xmm8,0x230(%rsp)
  movsd  %xmm6,0x238(%rsp)
  movsd  %xmm5,0x240(%rsp)
  mov    %r12,0x248(%rsp)
  movsd  %xmm4,0x250(%rsp)
  movsd  %xmm3,0x258(%rsp)
  movsd  %xmm1,0x260(%rsp)
  movsd  %xmm0,0x268(%rsp)
  mov    %rbp,0x270(%rsp)
  mov    %r11,0x280(%rsp)
  mov    %r10,0x288(%rsp)
  mov    %r9,0x290(%rsp)
  mov    %rdi,0x298(%rsp)
  mov    %r15,0x2a0(%rsp)
  mov    %rsi,0x2a8(%rsp)
  mov    %rcx,0x2b0(%rsp)
  mov    %rdx,0x2b8(%rsp)
  movsd  %xmm15,0x2c0(%rsp)
  mov    %r14,0x2c8(%rsp)
  movsd  %xmm14,0x2d0(%rsp)
  movsd  %xmm13,0x2d8(%rsp)
  movsd  %xmm12,0x2e0(%rsp)
  movsd  %xmm10,0x2e8(%rsp)
  mov    %r13,0x2f0(%rsp)
  movsd  %xmm9,0x2f8(%rsp)
  movsd  %xmm8,0x300(%rsp)
  movsd  %xmm7,0x308(%rsp)
  movsd  %xmm5,0x310(%rsp)
  mov    %r12,0x318(%rsp)
  movsd  %xmm4,0x320(%rsp)
  movsd  %xmm3,0x328(%rsp)
  movsd  %xmm2,0x330(%rsp)
  movsd  %xmm0,0x338(%rsp)
  mov    %rbp,0x340(%rsp)
  mov    %r11,0x350(%rsp)
  mov    %r10,0x358(%rsp)
  mov    %r9,0x360(%rsp)
  mov    %r8,0x368(%rsp)
  mov    %r15,0x370(%rsp)
  mov    %rsi,0x378(%rsp)
  mov    %rcx,0x380(%rsp)
  mov    %rdx,0x388(%rsp)
  mov    %rax,0x390(%rsp)
  mov    %r14,0x398(%rsp)
  movsd  %xmm14,0x3a0(%rsp)
  movsd  %xmm13,0x3a8(%rsp)
  movsd  %xmm12,0x3b0(%rsp)
  movsd  %xmm11,0x3b8(%rsp)
  mov    %r13,0x3c0(%rsp)
  movsd  %xmm9,0x3c8(%rsp)
  movsd  %xmm8,0x3d0(%rsp)
  movsd  %xmm7,0x3d8(%rsp)
  movsd  %xmm6,0x3e0(%rsp)
  mov    %r12,0x3e8(%rsp)
  movsd  %xmm4,0x3f0(%rsp)
  movsd  %xmm3,0x3f8(%rsp)
  movsd  %xmm2,0x400(%rsp)
  movsd  %xmm1,0x408(%rsp)
  mov    %rbp,0x410(%rsp)
  mov    %r11,0x420(%rsp)
  mov    %r10,0x428(%rsp)
  mov    %r9,0x430(%rsp)
  mov    %r8,0x438(%rsp)
  mov    %rdi,0x440(%rsp)
  mov    %rsi,0x448(%rsp)
  mov    %rcx,0x450(%rsp)
  mov    %rdx,0x458(%rsp)
  mov    %rax,0x460(%rsp)
  movsd  %xmm15,0x468(%rsp)
  movsd  %xmm14,0x470(%rsp)
  movsd  %xmm13,0x478(%rsp)
  movsd  %xmm12,0x480(%rsp)
  movsd  %xmm11,0x488(%rsp)
  movsd  %xmm10,0x490(%rsp)
  movsd  %xmm9,0x498(%rsp)
  movsd  %xmm8,0x4a0(%rsp)
  movsd  %xmm7,0x4a8(%rsp)
  movsd  %xmm6,0x4b0(%rsp)
  movsd  %xmm5,0x4b8(%rsp)
  movsd  %xmm4,0x4c0(%rsp)
  movsd  %xmm3,0x4c8(%rsp)
  movsd  %xmm2,0x4d0(%rsp)
  movsd  %xmm1,0x4d8(%rsp)
  movsd  %xmm0,0x4e0(%rsp)
  mov    (%rbx),%rbp
  lea    0x10(%rsp),%rdi
  mov    $0x0,%eax
  call   <det5x5@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movq   %rbp,%xmm3
  mulsd  %xmm0,%xmm3
  movq   %xmm3,%rbp
  mov    0x8(%rbx),%r12
  lea    0xe0(%rsp),%rdi
  mov    $0x0,%eax
  call   <det5x5@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movq   %r12,%xmm5
  mulsd  %xmm5,%xmm0
  movq   %rbp,%xmm4
  subsd  %xmm0,%xmm4
  movsd  %xmm4,0x8(%rsp)
  mov    0x10(%rbx),%rbp
  lea    0x1b0(%rsp),%rdi
  mov    $0x0,%eax
  call   <det5x5@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movq   %rbp,%xmm6
  mulsd  %xmm6,%xmm0
  addsd  0x8(%rsp),%xmm0
  movsd  %xmm0,0x8(%rsp)
  mov    0x18(%rbx),%rbp
  lea    0x280(%rsp),%rdi
  mov    $0x0,%eax
  call   <det5x5@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movq   %rbp,%xmm7
  mulsd  %xmm7,%xmm0
  movsd  0x8(%rsp),%xmm2
  subsd  %xmm0,%xmm2
  movsd  %xmm2,0x8(%rsp)
  mov    0x20(%rbx),%rbp
  lea    0x350(%rsp),%rdi
  mov    $0x0,%eax
  call   <det5x5@plt>
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movq   %rbp,%xmm5
  mulsd  %xmm5,%xmm0
  addsd  0x8(%rsp),%xmm0
  movsd  %xmm0,0x8(%rsp)
  mov    0x28(%rbx),%rbx
  lea    0x420(%rsp),%rdi
  mov    $0x0,%eax
  call   <det5x5@plt>
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm1
  movq   %rbx,%xmm6
  mulsd  %xmm6,%xmm1
  movsd  0x8(%rsp),%xmm0
  subsd  %xmm1,%xmm0
  mov    0x4e8(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L0
  add    $0x4f8,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
L0:
  call   <__stack_chk_fail@plt>
```

assistant: ```c
double det6x6(double M[6 * 6]) {
  double minor11[5 * 5] = {M[7], M[8], M[9], M[10], M[11], M[13], M[14], M[15], M[16], M[17], M[19], M[20], M[21], M[22], M[23], M[25], M[26], M[27], M[28], M[29], M[31], M[32], M[33], M[34], M[35]};
  double minor12[5 * 5] = {M[6], M[8], M[9], M[10], M[11], M[12], M[14], M[15], M[16], M[17], M[18], M[20], M[21], M[22], M[23], M[24], M[26], M[27], M[28], M[29], M[30], M[32], M[33], M[34], M[35]};
  double minor13[5 * 5] = {M[6], M[7], M[9], M[10], M[11], M[12], M[13], M[15], M[16], M[17], M[18], M[19], M[21], M[22], M[23], M[24], M[25], M[27], M[28], M[29], M[30], M[31], M[33], M[34], M[35]};
  double minor14[5 * 5] = {M[6], M[7], M[8], M[10], M[11], M[12], M[13], M[14], M[16], M[17], M[18], M[19], M[20], M[22], M[23], M[24], M[25], M[26], M[28], M[29], M[30], M[31], M[32], M[34], M[35]};
  double minor15[5 * 5] = {M[6], M[7], M[8], M[9], M[11], M[12], M[13], M[14], M[15], M[17], M[18], M[19], M[20], M[21], M[23], M[24], M[25], M[26], M[27], M[29], M[30], M[31], M[32], M[33], M[35]};
  double minor16[5 * 5] = {M[6], M[7], M[8], M[9], M[10], M[12], M[13], M[14], M[15], M[16], M[18], M[19], M[20], M[21], M[22], M[24], M[25], M[26], M[27], M[28], M[30], M[31], M[32], M[33], M[34]};
  return M[0] * (det5x5(minor11)) - M[1] * (det5x5(minor12)) + M[2] * (det5x5(minor13)) - M[3] * (det5x5(minor14)) + M[4] * (det5x5(minor15)) - M[5] * (det5x5(minor16));
}
```