user: Please show me the C implementation that matches the assembly code listed below:

```asm
<Inertia>:
  endbr64
  push   %r13
  push   %r12
  push   %rbp
  mov    %rsi,%rbp
  push   %rbx
  mov    %rdi,%rbx
  sub    $0xd8,%rsp
  movsd  0x8(%rsi),%xmm0
  lea    0xc8(%rsp),%r12
  lea    0xc0(%rsp),%r13
  mov    %r13,%rsi
  mov    %r12,%rdi
  call   <sincos@plt>
  movsd  0x10(%rbp),%xmm0
  mov    %r13,%rsi
  mov    %r12,%rdi
  movsd  0xc0(%rsp),%xmm14
  movsd  0xc8(%rsp),%xmm9
  movsd  %xmm14,0xb8(%rsp)
  movsd  %xmm9,(%rsp)
  call   <sincos@plt>
  movsd  0x18(%rbp),%xmm0
  mov    %r13,%rsi
  mov    %r12,%rdi
  movsd  0xc0(%rsp),%xmm2
  movsd  0xc8(%rsp),%xmm4
  movsd  %xmm2,0x58(%rsp)
  movsd  %xmm4,0x50(%rsp)
  call   <sincos@plt>
  movsd  0x20(%rbp),%xmm0
  mov    %r13,%rsi
  mov    %r12,%rdi
  movsd  0xc0(%rsp),%xmm3
  movsd  0xc8(%rsp),%xmm1
  movsd  %xmm3,0x18(%rsp)
  movsd  %xmm1,0x10(%rsp)
  call   <sincos@plt>
  movsd  D294(%rip),%xmm6
  movsd  0xc8(%rsp),%xmm5
  movsd  D213(%rip),%xmm11
  movsd  0x10(%rsp),%xmm1
  mulsd  %xmm6,%xmm5
  movsd  D416(%rip),%xmm12
  movsd  D365(%rip),%xmm3
  movq   D382(%rip),%xmm0
  mulsd  0xc0(%rsp),%xmm6
  movsd  D143(%rip),%xmm10
  movsd  D166(%rip),%xmm9
  movsd  D328(%rip),%xmm7
  movsd  D77(%rip),%xmm15
  addsd  %xmm5,%xmm12
  movapd %xmm5,%xmm13
  mulsd  %xmm6,%xmm11
  addsd  %xmm6,%xmm3
  xorpd  %xmm0,%xmm13
  mulsd  D46(%rip),%xmm5
  movsd  %xmm13,0x8(%rsp)
  movapd %xmm12,%xmm4
  movapd %xmm3,%xmm13
  movapd %xmm9,%xmm3
  subsd  %xmm5,%xmm10
  movapd %xmm11,%xmm5
  addsd  %xmm11,%xmm5
  subsd  %xmm5,%xmm7
  subsd  %xmm5,%xmm3
  movapd %xmm1,%xmm5
  xorpd  %xmm0,%xmm5
  mulsd  %xmm5,%xmm4
  movapd %xmm5,%xmm2
  mulsd  %xmm6,%xmm2
  movq   %xmm3,%rax
  movsd  0x18(%rsp),%xmm3
  mulsd  %xmm10,%xmm5
  mulsd  %xmm3,%xmm6
  movapd %xmm3,%xmm8
  mulsd  %xmm12,%xmm8
  movsd  D125(%rip),%xmm12
  mulsd  %xmm4,%xmm15
  movsd  %xmm4,0x30(%rsp)
  movsd  %xmm2,0x38(%rsp)
  mulsd  %xmm4,%xmm12
  movq   %rax,%xmm2
  xorpd  %xmm0,%xmm2
  movapd %xmm2,%xmm9
  movsd  D7(%rip),%xmm2
  movsd  %xmm6,0x10(%rsp)
  movsd  D112(%rip),%xmm6
  mulsd  %xmm1,%xmm9
  addsd  %xmm13,%xmm2
  movsd  %xmm15,0x20(%rsp)
  movapd %xmm3,%xmm15
  mulsd  %xmm7,%xmm15
  mulsd  %xmm13,%xmm6
  movsd  %xmm2,0x28(%rsp)
  mulsd  %xmm1,%xmm7
  movapd %xmm4,%xmm2
  subsd  D286(%rip),%xmm2
  movapd %xmm3,%xmm4
  mulsd  %xmm9,%xmm4
  movsd  %xmm2,0x40(%rsp)
  mulsd  %xmm1,%xmm9
  movapd %xmm15,%xmm2
  mulsd  %xmm1,%xmm15
  mulsd  %xmm1,%xmm7
  movapd %xmm4,%xmm14
  addsd  %xmm15,%xmm14
  movsd  D174(%rip),%xmm15
  mulsd  %xmm8,%xmm15
  movapd %xmm14,%xmm4
  subsd  %xmm15,%xmm4
  movapd %xmm3,%xmm15
  mulsd  %xmm10,%xmm15
  movsd  %xmm4,0x98(%rsp)
  movapd %xmm15,%xmm14
  movsd  D77(%rip),%xmm15
  movapd %xmm14,%xmm4
  mulsd  %xmm8,%xmm15
  subsd  %xmm15,%xmm4
  movapd %xmm12,%xmm15
  addsd  %xmm12,%xmm15
  movsd  %xmm4,0x18(%rsp)
  movapd %xmm15,%xmm14
  movsd  D443(%rip),%xmm15
  subsd  %xmm14,%xmm15
  movapd %xmm10,%xmm14
  xorpd  %xmm0,%xmm14
  mulsd  %xmm1,%xmm14
  subsd  D431(%rip),%xmm14
  mulsd  %xmm11,%xmm1
  movq   %xmm14,%rdx
  movsd  D174(%rip),%xmm14
  movsd  0x20(%rsp),%xmm4
  mulsd  %xmm13,%xmm14
  movq   %rdx,%xmm13
  subsd  %xmm4,%xmm5
  movq   %xmm5,%rdx
  movsd  0x28(%rsp),%xmm5
  subsd  %xmm14,%xmm13
  movsd  D180(%rip),%xmm14
  subsd  %xmm9,%xmm14
  movq   %rax,%xmm9
  subsd  %xmm4,%xmm13
  mulsd  %xmm3,%xmm9
  movsd  0x50(%rsp),%xmm4
  movsd  %xmm13,0x20(%rsp)
  movapd %xmm2,%xmm13
  movsd  0x58(%rsp),%xmm2
  mulsd  %xmm3,%xmm13
  mulsd  %xmm3,%xmm9
  addsd  D344(%rip),%xmm9
  mulsd  %xmm11,%xmm3
  addsd  %xmm13,%xmm14
  movapd %xmm6,%xmm13
  addsd  %xmm7,%xmm9
  movsd  0x10(%rsp),%xmm7
  addsd  %xmm6,%xmm13
  addsd  %xmm12,%xmm6
  addsd  %xmm6,%xmm6
  subsd  %xmm13,%xmm14
  movsd  0x8(%rsp),%xmm13
  movsd  %xmm14,0xa8(%rsp)
  subsd  %xmm6,%xmm9
  movsd  D77(%rip),%xmm6
  movsd  0x98(%rsp),%xmm14
  mulsd  %xmm7,%xmm6
  subsd  %xmm6,%xmm3
  movsd  D208(%rip),%xmm6
  subsd  %xmm12,%xmm6
  movsd  D174(%rip),%xmm12
  movq   %xmm3,%rax
  movapd %xmm7,%xmm3
  mulsd  %xmm7,%xmm12
  movapd %xmm2,%xmm7
  movsd  %xmm6,0x78(%rsp)
  movsd  D174(%rip),%xmm6
  mulsd  %xmm8,%xmm7
  mulsd  %xmm13,%xmm6
  movsd  %xmm12,0x48(%rsp)
  movapd %xmm4,%xmm12
  xorpd  %xmm0,%xmm12
  movapd %xmm7,%xmm11
  movsd  %xmm7,0x88(%rsp)
  movapd %xmm12,%xmm7
  subsd  %xmm6,%xmm1
  movsd  D77(%rip),%xmm6
  mulsd  0x38(%rsp),%xmm6
  mulsd  %xmm8,%xmm7
  addsd  %xmm6,%xmm1
  movapd %xmm5,%xmm6
  mulsd  %xmm4,%xmm6
  mulsd  %xmm2,%xmm5
  movsd  %xmm6,0x90(%rsp)
  addsd  %xmm6,%xmm11
  movapd %xmm12,%xmm6
  movsd  0x30(%rsp),%xmm12
  movapd %xmm5,%xmm10
  movapd %xmm7,%xmm5
  movapd %xmm3,%xmm7
  mulsd  %xmm2,%xmm12
  addsd  %xmm10,%xmm5
  mulsd  %xmm2,%xmm7
  movapd %xmm11,%xmm10
  movsd  %xmm12,0xb0(%rsp)
  movapd %xmm7,%xmm12
  movapd %xmm13,%xmm7
  movsd  D113(%rip),%xmm13
  mulsd  %xmm4,%xmm7
  movapd %xmm12,%xmm3
  mulsd  %xmm5,%xmm13
  addsd  %xmm7,%xmm3
  movsd  %xmm3,0x50(%rsp)
  movsd  D261(%rip),%xmm3
  mulsd  %xmm3,%xmm10
  mulsd  %xmm3,%xmm8
  movsd  %xmm10,0x58(%rsp)
  movsd  0x18(%rsp),%xmm10
  movapd %xmm10,%xmm7
  mulsd  %xmm2,%xmm7
  movapd %xmm7,%xmm12
  movapd %xmm4,%xmm7
  mulsd  %xmm15,%xmm7
  mulsd  %xmm2,%xmm15
  addsd  %xmm12,%xmm7
  movsd  %xmm7,0x60(%rsp)
  movapd %xmm10,%xmm7
  xorpd  %xmm0,%xmm7
  mulsd  %xmm4,%xmm7
  addsd  %xmm7,%xmm15
  movsd  %xmm15,0x68(%rsp)
  movapd %xmm2,%xmm15
  mulsd  %xmm9,%xmm15
  mulsd  %xmm4,%xmm9
  subsd  %xmm7,%xmm15
  movapd %xmm14,%xmm7
  mulsd  %xmm4,%xmm14
  mulsd  %xmm2,%xmm7
  movsd  %xmm15,0x80(%rsp)
  movapd %xmm12,%xmm15
  subsd  %xmm9,%xmm15
  movsd  %xmm15,0x70(%rsp)
  movsd  0x20(%rsp),%xmm10
  movsd  (%rsp),%xmm9
  movsd  %xmm14,0x20(%rsp)
  movapd %xmm10,%xmm15
  mulsd  %xmm2,%xmm10
  mulsd  %xmm4,%xmm15
  movapd %xmm10,%xmm14
  movapd %xmm13,%xmm10
  movsd  %xmm15,0x98(%rsp)
  addsd  %xmm13,%xmm10
  addsd  %xmm7,%xmm15
  xorpd  %xmm0,%xmm7
  movsd  %xmm14,0xa0(%rsp)
  subsd  0x98(%rsp),%xmm7
  movsd  %xmm10,0x28(%rsp)
  mulsd  %xmm9,%xmm15
  movapd %xmm9,%xmm10
  movsd  D83(%rip),%xmm9
  subsd  0x20(%rsp),%xmm9
  xorpd  %xmm0,%xmm10
  mulsd  %xmm10,%xmm11
  mulsd  %xmm10,%xmm7
  addsd  %xmm14,%xmm9
  movsd  0x40(%rsp),%xmm14
  mulsd  %xmm3,%xmm14
  subsd  %xmm14,%xmm9
  movsd  0xb8(%rsp),%xmm14
  mulsd  %xmm14,%xmm9
  subsd  %xmm9,%xmm15
  movsd  D223(%rip),%xmm9
  addsd  %xmm5,%xmm9
  mulsd  %xmm14,%xmm9
  addsd  %xmm11,%xmm9
  movsd  0x78(%rsp),%xmm11
  mulsd  D174(%rip),%xmm9
  mulsd  %xmm4,%xmm11
  subsd  %xmm9,%xmm15
  movapd %xmm11,%xmm9
  movapd %xmm8,%xmm11
  addsd  %xmm12,%xmm9
  movsd  0xb0(%rsp),%xmm12
  movapd %xmm9,%xmm8
  subsd  %xmm11,%xmm8
  movsd  0x18(%rsp),%xmm11
  mulsd  %xmm6,%xmm11
  mulsd  %xmm10,%xmm8
  movapd %xmm11,%xmm9
  movsd  0x78(%rsp),%xmm11
  mulsd  %xmm2,%xmm11
  addsd  %xmm11,%xmm9
  movapd %xmm14,%xmm11
  mulsd  %xmm12,%xmm11
  mulsd  %xmm14,%xmm9
  addsd  %xmm9,%xmm8
  movsd  0x30(%rsp),%xmm9
  mulsd  %xmm6,%xmm9
  mulsd  (%rsp),%xmm9
  addsd  %xmm11,%xmm9
  mulsd  D174(%rip),%xmm9
  subsd  %xmm9,%xmm8
  movapd %xmm2,%xmm9
  mulsd  %xmm1,%xmm9
  mulsd  %xmm6,%xmm1
  movapd %xmm9,%xmm11
  movsd  0x48(%rsp),%xmm9
  mulsd  %xmm4,%xmm9
  addsd  %xmm11,%xmm9
  movsd  0x38(%rsp),%xmm11
  mulsd  %xmm3,%xmm11
  addsd  %xmm11,%xmm9
  movsd  0x48(%rsp),%xmm11
  mulsd  %xmm2,%xmm11
  mulsd  %xmm10,%xmm9
  movapd %xmm5,%xmm10
  movapd %xmm14,%xmm5
  mulsd  %xmm14,%xmm10
  addsd  %xmm11,%xmm1
  movsd  0x8(%rsp),%xmm11
  mulsd  %xmm2,%xmm11
  mulsd  %xmm14,%xmm1
  addsd  %xmm1,%xmm9
  movsd  0x10(%rsp),%xmm1
  mulsd  %xmm6,%xmm1
  addsd  %xmm11,%xmm1
  movsd  0x50(%rsp),%xmm11
  mulsd  (%rsp),%xmm1
  mulsd  %xmm14,%xmm11
  addsd  %xmm11,%xmm1
  mulsd  D174(%rip),%xmm1
  subsd  %xmm1,%xmm9
  movsd  0x20(%rsp),%xmm1
  subsd  0xa0(%rsp),%xmm1
  mulsd  %xmm14,%xmm1
  addsd  %xmm1,%xmm7
  movsd  0x88(%rsp),%xmm1
  xorpd  %xmm0,%xmm1
  subsd  0x90(%rsp),%xmm1
  movsd  (%rsp),%xmm11
  movsd  %xmm15,0x8(%rbx)
  mulsd  0x80(%rsp),%xmm6
  movq   $0x0,0x28(%rbx)
  movapd %xmm11,%xmm14
  movsd  %xmm8,0x18(%rbx)
  mulsd  %xmm11,%xmm1
  movsd  %xmm9,0x20(%rbx)
  movsd  %xmm15,0x30(%rbx)
  addsd  %xmm10,%xmm1
  mulsd  D174(%rip),%xmm1
  movsd  0x80(%rsp),%xmm10
  mulsd  %xmm2,%xmm10
  addsd  D205(%rip),%xmm10
  subsd  %xmm1,%xmm7
  movsd  0x60(%rsp),%xmm1
  mulsd  %xmm4,%xmm1
  movsd  %xmm7,0x10(%rbx)
  addsd  %xmm1,%xmm10
  subsd  0x28(%rsp),%xmm10
  movsd  0x70(%rsp),%xmm1
  mulsd  %xmm2,%xmm1
  mulsd  %xmm11,%xmm10
  movsd  0x68(%rsp),%xmm11
  mulsd  %xmm4,%xmm11
  mulsd  0x70(%rsp),%xmm4
  addsd  %xmm11,%xmm1
  subsd  0x58(%rsp),%xmm1
  mulsd  %xmm5,%xmm1
  subsd  %xmm10,%xmm1
  movsd  D393(%rip),%xmm10
  mulsd  %xmm14,%xmm1
  subsd  %xmm1,%xmm10
  movsd  0x60(%rsp),%xmm1
  mulsd  %xmm2,%xmm1
  mulsd  0x68(%rsp),%xmm2
  addsd  %xmm1,%xmm6
  movsd  D186(%rip),%xmm1
  subsd  0x58(%rsp),%xmm6
  subsd  %xmm4,%xmm1
  movq   %rdx,%xmm4
  mulsd  %xmm14,%xmm6
  addsd  %xmm2,%xmm1
  movsd  0x40(%rsp),%xmm2
  addsd  D23(%rip),%xmm2
  mulsd  D174(%rip),%xmm2
  mulsd  %xmm5,%xmm1
  addsd  %xmm2,%xmm2
  subsd  %xmm6,%xmm1
  mulsd  %xmm5,%xmm1
  movsd  0xa8(%rsp),%xmm5
  addsd  %xmm1,%xmm10
  movsd  D299(%rip),%xmm1
  subsd  %xmm2,%xmm10
  movsd  D75(%rip),%xmm2
  addsd  %xmm5,%xmm2
  subsd  0x28(%rsp),%xmm2
  addsd  %xmm1,%xmm10
  addsd  %xmm1,%xmm2
  movapd %xmm13,%xmm1
  subsd  %xmm5,%xmm1
  movsd  %xmm10,(%rbx)
  movsd  %xmm2,0x38(%rbx)
  movapd %xmm12,%xmm2
  mulsd  %xmm3,%xmm2
  xorpd  %xmm0,%xmm1
  movsd  %xmm1,0x40(%rbx)
  subsd  %xmm2,%xmm4
  movq   %rax,%xmm2
  xorpd  %xmm0,%xmm4
  movsd  %xmm4,0x48(%rbx)
  mulsd  0x50(%rsp),%xmm3
  movsd  %xmm1,0x68(%rbx)
  movsd  D288(%rip),%xmm1
  movq   $0x0,0x58(%rbx)
  addsd  %xmm5,%xmm1
  movq   %rdx,%xmm5
  movq   $0x0,0x88(%rbx)
  xorpd  %xmm0,%xmm5
  movsd  %xmm7,0x60(%rbx)
  subsd  %xmm3,%xmm2
  movq   %rax,%xmm3
  mov    D192(%rip),%rax
  movq   $0x0,0xb0(%rbx)
  movq   $0x0,0xb8(%rbx)
  mov    %rax,0xa8(%rbx)
  mov    D252(%rip),%rax
  xorpd  %xmm0,%xmm2
  xorpd  %xmm3,%xmm0
  movq   $0x0,0xd8(%rbx)
  mov    %rax,0xe0(%rbx)
  mov    D366(%rip),%rax
  movq   $0x0,0xe8(%rbx)
  movq   $0x0,0xf0(%rbx)
  movq   $0x0,0xf8(%rbx)
  movq   $0x0,0x100(%rbx)
  movq   $0x0,0x108(%rbx)
  movq   $0x0,0x110(%rbx)
  mov    %rax,0x118(%rbx)
  movsd  %xmm2,0x50(%rbx)
  movsd  %xmm1,0x70(%rbx)
  movsd  %xmm5,0x78(%rbx)
  movsd  %xmm0,0x80(%rbx)
  movsd  %xmm8,0x90(%rbx)
  movsd  %xmm4,0x98(%rbx)
  movsd  %xmm5,0xa0(%rbx)
  movsd  %xmm9,0xc0(%rbx)
  movsd  %xmm2,0xc8(%rbx)
  movsd  %xmm0,0xd0(%rbx)
  add    $0xd8,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  ret
```

tool_calls: name: disassemble_data
arguments: data_label: D294
type: byte[8]
name: disassemble_data
arguments: data_label: D213
type: byte[8]
name: disassemble_data
arguments: data_label: D416
type: byte[8]
name: disassemble_data
arguments: data_label: D365
type: f64
name: disassemble_data
arguments: data_label: D382
type: f32[2]
name: disassemble_data
arguments: data_label: D143
type: byte[8]
name: disassemble_data
arguments: data_label: D166
type: f64
name: disassemble_data
arguments: data_label: D328
type: f64
name: disassemble_data
arguments: data_label: D77
type: byte[8]
name: disassemble_data
arguments: data_label: D46
type: f64
name: disassemble_data
arguments: data_label: D125
type: byte[8]
name: disassemble_data
arguments: data_label: D7
type: f64
name: disassemble_data
arguments: data_label: D112
type: byte[8]
name: disassemble_data
arguments: data_label: D286
type: f64
name: disassemble_data
arguments: data_label: D174
type: f64
name: disassemble_data
arguments: data_label: D443
type: f64
name: disassemble_data
arguments: data_label: D431
type: f64
name: disassemble_data
arguments: data_label: D180
type: f64
name: disassemble_data
arguments: data_label: D344
type: f64
name: disassemble_data
arguments: data_label: D208
type: byte[8]
name: disassemble_data
arguments: data_label: D113
type: byte[8]
name: disassemble_data
arguments: data_label: D261
type: f64
name: disassemble_data
arguments: data_label: D83
type: byte[8]
name: disassemble_data
arguments: data_label: D223
type: f64
name: disassemble_data
arguments: data_label: D205
type: f64
name: disassemble_data
arguments: data_label: D393
type: f64
name: disassemble_data
arguments: data_label: D186
type: f64
name: disassemble_data
arguments: data_label: D23
type: f64
name: disassemble_data
arguments: data_label: D299
type: f64
name: disassemble_data
arguments: data_label: D75
type: f64
name: disassemble_data
arguments: data_label: D288
type: f64
name: disassemble_data
arguments: data_label: D192
type: f64
name: disassemble_data
arguments: data_label: D252
type: f64
name: disassemble_data
arguments: data_label: D366
type: f64

tool: {"D294": [0xa2,0x7f,0x82,0x8b,0x15,0x35,0x98,0x3f]}

tool: {"D213": [0x52,0xb8,0x1e,0x85,0xeb,0x51,0xd8,0xbf]}

tool: {"D416": [0xca,0x53,0x56,0xd3,0xf5,0x44,0x87,0x3f]}

tool: D365: 3.23171

tool: {"D382": [0.0,-0.0]}

tool: {"D143": [0x6c,0xac,0x69,0x83,0xb8,0x17,0x7d,0x3f]}

tool: D166: 1.041886

tool: D328: 1.0408974

tool: {"D77": [0xec,0x51,0xb8,0x1e,0x85,0xeb,0xb1,0x3f]}

tool: D46: 0.38

tool: {"D125": [0x9a,0x99,0x99,0x99,0x99,0x99,0xb9,0xbf]}

tool: D7: 0.74235

tool: {"D112": [0xec,0x51,0xb8,0x1e,0x85,0xeb,0xb1,0xbf]}

tool: D286: 0.2491

tool: D174: 0.1

tool: D443: 0.3080284

tool: D431: 0.1000071

tool: D180: 0.1027879

tool: D344: 0.3658049

tool: {"D208": [0x00,0x67,0x73,0xe6,0x68,0x9f,0x78,0x3f]}

tool: {"D113": [0xcd,0xcc,0xcc,0xcc,0xcc,0xcc,0xdc,0xbf]}

tool: D261: 0.45

tool: {"D83": [0xcc,0xe8,0xec,0x09,0xb7,0x21,0xdd,0xbf]}

tool: D223: 18.288

tool: D205: 7.8244775

tool: D393: 0.7112539

tool: D186: 0.1397675

tool: D23: 1.407276

tool: D299: 3.120061

tool: D75: 7.68471

tool: D288: 1.204223

tool: D192: 0.8318674

tool: D252: 0.5508

tool: D366: 0.268288

assistant: ```c
void Inertia(M, q) double M[36];
double q[6];
{
  double C0 = cos(q[0]);
  double S0 = sin(q[0]);
  double C1 = cos(q[1]);
  double S1 = sin(q[1]);
  double C2 = cos(q[2]);
  double S2 = sin(q[2]);
  double C3 = cos(q[3]);
  double S3 = sin(q[3]);
  double C4 = cos(q[4]);
  double S4 = sin(q[4]);
  double C5 = cos(q[5]);
  double S5 = sin(q[5]);
  double tmp1 = 0.2364e-1 * S4;
  double tmp2 = 0.2364e-1 * C4;
  double tmp3 = -0.2364e-1 * S4;
  double tmp4 = 0.2364e-1 * C4;
  double tmp5 = -0.38e0 * tmp2;
  double tmp6 = -0.38e0 * tmp2;
  double tmp7 = 0.38e0 * tmp1;
  double tmp8 = 0.11362e-1 + tmp1;
  double tmp9 = 0.3231710e1 + tmp2;
  double tmp10 = 0.71027e-2 - tmp7;
  double tmp11 = 0.10408974e1 - 2 * tmp5;
  double tmp12 = 0.10418860e1 - 2 * tmp6;
  double tmp13 = 0.71027e-2 - tmp7;
  double tmp14 = -0.38e0 * tmp4;
  double tmp15 = C3 * tmp8;
  double tmp16 = -S3 * tmp8;
  double tmp17 = -S3 * tmp4;
  double tmp18 = -S3 * tmp8;
  double tmp19 = -C3 * tmp8;
  double tmp20 = C3 * tmp4;
  double tmp21 = 0.1e0 * tmp15;
  double tmp22 = -0.1e0 * tmp16;
  double tmp23 = 0.1e0 * tmp9;
  double tmp24 = 0.7e-1 * tmp16;
  double tmp25 = -0.7e-1 * tmp9;
  double tmp26 = -0.1e0 * tmp16 - 0.7e-1 * tmp9;
  double tmp27 = 0.7e-1 * tmp15;
  double tmp28 = -tmp12 * S3;
  double tmp29 = tmp10 * C3;
  double tmp30 = -tmp10 * S3;
  double tmp31 = tmp11 * S3;
  double tmp32 = tmp11 * C3;
  double tmp33 = tmp12 * C3;
  double tmp34 = 0.74235e0 + tmp9;
  double tmp35 = -0.2491e0 + tmp16;
  double tmp36 = C3 * tmp28 + S3 * tmp32 - tmp21;
  double tmp37 = tmp29 - tmp27;
  double tmp38 = 0.3080284e0 - 2 * tmp22;
  double tmp39 = -0.1000071e0 + tmp30 - tmp23 - tmp24;
  double tmp42 = 0.1027879e0 - S3 * tmp28 + C3 * tmp32 - 2 * tmp25;
  double tmp43 = 0.3658049e0 + C3 * tmp33 + S3 * tmp31 - 2 * tmp26;
  double tmp44 = C3 * tmp13 - tmp27;
  double tmp45 = C3 * tmp14 - 0.7e-1 * tmp20;
  double tmp46 = C3 * tmp13 + 0.7e-1 * tmp19;
  double tmp47 = -S3 * tmp13 - 0.7e-1 * tmp18;
  double tmp48 = 0.60114e-2 + 0.1e0 * tmp18;
  double tmp49 = 0.1e0 * tmp20;
  double tmp50 = S3 * tmp14 - 0.1e0 * tmp3 + 0.7e-1 * tmp17;
  double tmp51 = C2 * tmp15 + S2 * tmp34;
  double tmp52 = -S2 * tmp15 + C2 * tmp34;
  double tmp53 = -S2 * tmp15 + C2 * tmp34;
  double tmp54 = C2 * tmp18;
  double tmp55 = -S2 * tmp18;
  double tmp56 = -S2 * tmp20 + C2 * tmp3;
  double tmp57 = -C2 * tmp15 - S2 * tmp34;
  double tmp58 = C2 * tmp20 + S2 * tmp3;
  double tmp59 = 0.45e0 * tmp35;
  double tmp60 = -0.45e0 * tmp52;
  double tmp61 = -0.45e0 * tmp52;
  double tmp62 = 0.45e0 * tmp51;
  double tmp63 = tmp37 * C2 + tmp38 * S2;
  double tmp64 = -tmp37 * S2 + tmp38 * C2;
  double tmp67 = tmp43 * C2 + tmp44 * S2;
  double tmp68 = -tmp43 * S2 + tmp44 * C2;
  double tmp69 = 0.1828800e2 + tmp52;
  double tmp70 = 0.1407276e1 + tmp35;
  double tmp71 = C2 * tmp36 + S2 * tmp39;
  double tmp72 = -S2 * tmp67 + C2 * tmp63 - tmp62;
  double tmp73 = 0.1397675e0 - S2 * tmp68 + C2 * tmp64;
  double tmp74 = -0.4551828e0 - S2 * tmp36 + C2 * tmp39 - tmp59;
  double tmp76 = 0.76847100e1 + tmp42 - 2 * tmp60;
  double tmp77 = 0.78244775e1 + C2 * tmp67 + S2 * tmp63 - 2 * tmp61;
  double tmp78 = C2 * tmp68 + S2 * tmp64 - tmp62;
  double tmp79 = tmp45 - 0.45e0 * tmp58;
  double tmp80 = -C2 * tmp36 - S2 * tmp39;
  double tmp81 = C2 * tmp46 + S2 * tmp48 + 0.45e0 * tmp19;
  double tmp82 = tmp47 - 0.45e0 * tmp54;
  double tmp83 = -S2 * tmp46 + C2 * tmp48;
  double tmp84 = -S2 * tmp50 + C2 * tmp49;
  double tmp85 = S2 * tmp36 - C2 * tmp39;
  double tmp86 = C2 * tmp50 + S2 * tmp49 + 0.45e0 * tmp17;
  double tmp87 = -tmp42 - 0.45e0 * tmp53;
  double tmp90 = C1 * tmp53 + S1 * tmp57;
  double tmp91 = C1 * tmp54 + S1 * tmp55;
  double tmp96 = C1 * tmp58 + S1 * tmp56;
  double tmp97 = -S1 * tmp51 + C1 * tmp69;
  double tmp99 = 0.10e0 * tmp70;
  double tmp106 = -tmp72 * S1 + tmp73 * C1;
  double tmp110 = -tmp77 * S1 + tmp78 * C1;
  double tmp116 = 0.7112539e0 - S1 * tmp110 + C1 * tmp106 - 2 * tmp99;
  double tmp127 = S1 * tmp71 - C1 * tmp74 - 0.10e0 * tmp97;
  double tmp128 = -S1 * tmp81 + C1 * tmp83 - 0.10e0 * tmp91;
  double tmp129 = -S1 * tmp86 + C1 * tmp84 - 0.10e0 * tmp96;
  double tmp130 = -S1 * tmp80 + C1 * tmp85 - 0.10e0 * tmp90;
  M[0] = tmp116 + 0.3120061e1;
  M[1] = tmp127;
  M[2] = tmp130;
  M[3] = tmp128;
  M[4] = tmp129;
  M[5] = 0.0e0;
  M[6] = tmp127;
  M[7] = tmp76 + 0.3120061e1;
  M[8] = -tmp87;
  M[9] = -tmp82;
  M[10] = -tmp79;
  M[11] = 0.0e0;
  M[12] = tmp130;
  M[13] = -tmp87;
  M[14] = tmp42 + 0.1204223e1;
  M[15] = -tmp47;
  M[16] = -tmp45;
  M[17] = 0.0e0;
  M[18] = tmp128;
  M[19] = -tmp82;
  M[20] = -tmp47;
  M[21] = 0.8318674e0;
  M[22] = 0.0e0;
  M[23] = 0.0e0;
  M[24] = tmp129;
  M[25] = -tmp79;
  M[26] = -tmp45;
  M[27] = 0.0e0;
  M[28] = 0.5508e0;
  M[29] = 0.0e0;
  M[30] = 0.0e0;
  M[31] = 0.0e0;
  M[32] = 0.0e0;
  M[33] = 0.0e0;
  M[34] = 0.0e0;
  M[35] = 0.268288e0;
}
```