user: 请将以下的汇编代码转换成C语言代码:

```asm
<vdeFun>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x190,%rsp
  mov    %rdi,-0x168(%rbp)
  mov    %rsi,-0x170(%rbp)
  mov    %rdx,-0x178(%rbp)
  mov    %rcx,-0x180(%rbp)
  mov    %r8d,-0x184(%rbp)
  mov    -0x168(%rbp),%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L355
  mov    -0x168(%rbp),%rax
  mov    (%rax),%rax
  add    $0x10,%rax
  movsd  (%rax),%xmm0
  jmp    L194
L355:
  pxor   %xmm0,%xmm0
L194:
  movsd  %xmm0,-0x160(%rbp)
  mov    -0x170(%rbp),%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L249
  mov    -0x170(%rbp),%rax
  mov    (%rax),%rax
  movsd  -0x160(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L249:
  mov    -0x168(%rbp),%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L180
  mov    -0x168(%rbp),%rax
  mov    (%rax),%rax
  add    $0x18,%rax
  movsd  (%rax),%xmm0
  jmp    L478
L180:
  pxor   %xmm0,%xmm0
L478:
  movsd  %xmm0,-0x160(%rbp)
  mov    -0x170(%rbp),%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L463
  mov    -0x170(%rbp),%rax
  mov    (%rax),%rax
  add    $0x8,%rax
  movsd  -0x160(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L463:
  mov    -0x168(%rbp),%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L208
  mov    -0x168(%rbp),%rax
  mov    (%rax),%rax
  add    $0x8,%rax
  movsd  (%rax),%xmm0
  jmp    L603
L208:
  pxor   %xmm0,%xmm0
L603:
  movsd  %xmm0,-0x158(%rbp)
  mov    -0x158(%rbp),%rax
  movq   %rax,%xmm0
  call   <sin@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x150(%rbp)
  movsd  D59(%rip),%xmm0
  movsd  %xmm0,-0x148(%rbp)
  movsd  -0x150(%rbp),%xmm0
  mulsd  -0x148(%rbp),%xmm0
  movsd  %xmm0,-0x150(%rbp)
  mov    -0x160(%rbp),%rax
  movq   %rax,%xmm0
  call   <vde_forw_pendulum_sq@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x140(%rbp)
  movsd  -0x150(%rbp),%xmm0
  mulsd  -0x140(%rbp),%xmm0
  movsd  %xmm0,-0x138(%rbp)
  mov    -0x168(%rbp),%rax
  add    $0x18,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L246
  mov    -0x168(%rbp),%rax
  add    $0x18,%rax
  mov    (%rax),%rax
  movsd  (%rax),%xmm0
  jmp    L610
L246:
  pxor   %xmm0,%xmm0
L610:
  movsd  %xmm0,-0x130(%rbp)
  movsd  -0x138(%rbp),%xmm0
  addsd  -0x130(%rbp),%xmm0
  movsd  %xmm0,-0x138(%rbp)
  mov    -0x158(%rbp),%rax
  movq   %rax,%xmm0
  call   <cos@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x128(%rbp)
  movsd  D65(%rip),%xmm0
  movsd  %xmm0,-0x120(%rbp)
  movsd  -0x128(%rbp),%xmm0
  mulsd  -0x120(%rbp),%xmm0
  movsd  %xmm0,-0x128(%rbp)
  mov    -0x158(%rbp),%rax
  movq   %rax,%xmm0
  call   <sin@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x118(%rbp)
  movsd  -0x128(%rbp),%xmm0
  mulsd  -0x118(%rbp),%xmm0
  movsd  %xmm0,-0x110(%rbp)
  movsd  -0x138(%rbp),%xmm0
  addsd  -0x110(%rbp),%xmm0
  movsd  %xmm0,-0x138(%rbp)
  mov    -0x158(%rbp),%rax
  movq   %rax,%xmm0
  call   <cos@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x110(%rbp)
  mov    -0x110(%rbp),%rax
  movq   %rax,%xmm0
  call   <vde_forw_pendulum_sq@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x108(%rbp)
  movsd  D25(%rip),%xmm0
  movsd  %xmm0,-0x100(%rbp)
  movsd  -0x108(%rbp),%xmm0
  mulsd  -0x100(%rbp),%xmm0
  movsd  %xmm0,-0x108(%rbp)
  movsd  D14(%rip),%xmm0
  movsd  %xmm0,-0xf8(%rbp)
  movsd  -0xf8(%rbp),%xmm0
  subsd  -0x108(%rbp),%xmm0
  movsd  %xmm0,-0x108(%rbp)
  movsd  -0x138(%rbp),%xmm0
  divsd  -0x108(%rbp),%xmm0
  movsd  %xmm0,-0x138(%rbp)
  mov    -0x170(%rbp),%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L373
  mov    -0x170(%rbp),%rax
  mov    (%rax),%rax
  add    $0x10,%rax
  movsd  -0x138(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L373:
  mov    -0x158(%rbp),%rax
  movq   %rax,%xmm0
  call   <cos@plt>
  movq   %xmm0,%rax
  mov    %rax,-0xf0(%rbp)
  movsd  -0xf0(%rbp),%xmm0
  mulsd  -0x148(%rbp),%xmm0
  movsd  %xmm0,-0xf0(%rbp)
  mov    -0x158(%rbp),%rax
  movq   %rax,%xmm0
  call   <sin@plt>
  movq   %xmm0,%rax
  mov    %rax,-0xe8(%rbp)
  movsd  -0xf0(%rbp),%xmm0
  mulsd  -0xe8(%rbp),%xmm0
  movsd  %xmm0,-0xe0(%rbp)
  mov    -0x160(%rbp),%rax
  movq   %rax,%xmm0
  call   <vde_forw_pendulum_sq@plt>
  movq   %xmm0,%rax
  mov    %rax,-0xd8(%rbp)
  movsd  -0xe0(%rbp),%xmm0
  mulsd  -0xd8(%rbp),%xmm0
  movsd  %xmm0,-0xd0(%rbp)
  mov    -0x158(%rbp),%rax
  movq   %rax,%xmm0
  call   <cos@plt>
  movq   %xmm0,%rax
  mov    %rax,-0xc8(%rbp)
  movsd  -0x130(%rbp),%xmm0
  mulsd  -0xc8(%rbp),%xmm0
  movsd  %xmm0,-0xc0(%rbp)
  movsd  -0xd0(%rbp),%xmm0
  addsd  -0xc0(%rbp),%xmm0
  movsd  %xmm0,-0xd0(%rbp)
  mov    -0x158(%rbp),%rax
  movq   %rax,%xmm0
  call   <sin@plt>
  movq   %xmm0,%rax
  mov    %rax,-0xc0(%rbp)
  movsd  -0xc0(%rbp),%xmm0
  mulsd  -0x120(%rbp),%xmm0
  movsd  %xmm0,-0xc0(%rbp)
  movsd  -0xd0(%rbp),%xmm0
  addsd  -0xc0(%rbp),%xmm0
  movsd  %xmm0,-0xd0(%rbp)
  mov    -0x158(%rbp),%rax
  movq   %rax,%xmm0
  call   <sin@plt>
  movq   %xmm0,%rax
  mov    %rax,-0xc0(%rbp)
  movsd  D69(%rip),%xmm0
  movsd  %xmm0,-0xb8(%rbp)
  movsd  -0xc0(%rbp),%xmm0
  mulsd  -0xb8(%rbp),%xmm0
  movsd  %xmm0,-0xc0(%rbp)
  movsd  -0xd0(%rbp),%xmm0
  addsd  -0xc0(%rbp),%xmm0
  movsd  %xmm0,-0xd0(%rbp)
  mov    -0x158(%rbp),%rax
  movq   %rax,%xmm0
  call   <cos@plt>
  movq   %xmm0,%rax
  mov    %rax,-0xc0(%rbp)
  mov    -0xc0(%rbp),%rax
  movq   %rax,%xmm0
  call   <vde_forw_pendulum_sq@plt>
  movq   %xmm0,%rax
  mov    %rax,-0xb0(%rbp)
  movsd  -0xb0(%rbp),%xmm0
  mulsd  -0x100(%rbp),%xmm0
  movsd  %xmm0,-0xb0(%rbp)
  movsd  -0xf8(%rbp),%xmm0
  subsd  -0xb0(%rbp),%xmm0
  movsd  %xmm0,-0xf8(%rbp)
  movsd  D36(%rip),%xmm0
  movsd  %xmm0,-0xb0(%rbp)
  movsd  -0xf8(%rbp),%xmm0
  mulsd  -0xb0(%rbp),%xmm0
  movsd  %xmm0,-0xf8(%rbp)
  movsd  -0xd0(%rbp),%xmm0
  divsd  -0xf8(%rbp),%xmm0
  movsd  %xmm0,-0xd0(%rbp)
  mov    -0x170(%rbp),%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L320
  mov    -0x170(%rbp),%rax
  mov    (%rax),%rax
  add    $0x18,%rax
  movsd  -0xd0(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L320:
  mov    -0x168(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L532
  mov    -0x168(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x10,%rax
  movsd  (%rax),%xmm0
  jmp    L500
L532:
  pxor   %xmm0,%xmm0
L500:
  movsd  %xmm0,-0xa8(%rbp)
  mov    -0x170(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L582
  mov    -0x170(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  movsd  -0xa8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L582:
  mov    -0x168(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L428
  mov    -0x168(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x18,%rax
  movsd  (%rax),%xmm0
  jmp    L420
L428:
  pxor   %xmm0,%xmm0
L420:
  movsd  %xmm0,-0xa8(%rbp)
  mov    -0x170(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L518
  mov    -0x170(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x8,%rax
  movsd  -0xa8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L518:
  mov    -0x158(%rbp),%rax
  movq   %rax,%xmm0
  call   <cos@plt>
  movq   %xmm0,%rax
  mov    %rax,-0xa0(%rbp)
  mov    -0x168(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L129
  mov    -0x168(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x8,%rax
  movsd  (%rax),%xmm0
  jmp    L102
L129:
  pxor   %xmm0,%xmm0
L102:
  movsd  %xmm0,-0x98(%rbp)
  movsd  -0xa0(%rbp),%xmm0
  mulsd  -0x98(%rbp),%xmm0
  movsd  %xmm0,-0x90(%rbp)
  movsd  -0x90(%rbp),%xmm0
  mulsd  -0x148(%rbp),%xmm0
  movsd  %xmm0,-0x90(%rbp)
  movsd  -0x90(%rbp),%xmm0
  mulsd  -0x140(%rbp),%xmm0
  movsd  %xmm0,-0x90(%rbp)
  movsd  -0x160(%rbp),%xmm0
  addsd  %xmm0,%xmm0
  movsd  %xmm0,-0x88(%rbp)
  movsd  -0x88(%rbp),%xmm0
  mulsd  -0xa8(%rbp),%xmm0
  movsd  %xmm0,-0x80(%rbp)
  movsd  -0x80(%rbp),%xmm0
  mulsd  -0x150(%rbp),%xmm0
  movsd  %xmm0,-0x80(%rbp)
  movsd  -0x90(%rbp),%xmm0
  addsd  -0x80(%rbp),%xmm0
  movsd  %xmm0,-0x90(%rbp)
  mov    -0x158(%rbp),%rax
  movq   %rax,%xmm0
  call   <cos@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x80(%rbp)
  movsd  -0x80(%rbp),%xmm0
  mulsd  -0x98(%rbp),%xmm0
  movsd  %xmm0,-0x78(%rbp)
  movsd  -0x78(%rbp),%xmm0
  mulsd  -0x128(%rbp),%xmm0
  movsd  %xmm0,-0x78(%rbp)
  mov    -0x158(%rbp),%rax
  movq   %rax,%xmm0
  call   <sin@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x70(%rbp)
  movsd  -0x70(%rbp),%xmm0
  mulsd  -0x98(%rbp),%xmm0
  movsd  %xmm0,-0x68(%rbp)
  movsd  -0x68(%rbp),%xmm0
  mulsd  -0x120(%rbp),%xmm0
  movsd  %xmm0,-0x68(%rbp)
  movsd  -0x68(%rbp),%xmm0
  mulsd  -0x118(%rbp),%xmm0
  movsd  %xmm0,-0x68(%rbp)
  movsd  -0x78(%rbp),%xmm0
  subsd  -0x68(%rbp),%xmm0
  movsd  %xmm0,-0x78(%rbp)
  movsd  -0x90(%rbp),%xmm0
  addsd  -0x78(%rbp),%xmm0
  movsd  %xmm0,-0x90(%rbp)
  movsd  -0x90(%rbp),%xmm0
  divsd  -0x108(%rbp),%xmm0
  movsd  %xmm0,-0x90(%rbp)
  movsd  -0x138(%rbp),%xmm0
  divsd  -0x108(%rbp),%xmm0
  movsd  %xmm0,-0x78(%rbp)
  movsd  -0x110(%rbp),%xmm0
  addsd  %xmm0,%xmm0
  movsd  %xmm0,-0x68(%rbp)
  mov    -0x158(%rbp),%rax
  movq   %rax,%xmm0
  call   <sin@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x60(%rbp)
  movsd  -0x60(%rbp),%xmm0
  mulsd  -0x98(%rbp),%xmm0
  movsd  %xmm0,-0x58(%rbp)
  movsd  -0x58(%rbp),%xmm0
  mulsd  -0x68(%rbp),%xmm0
  movsd  %xmm0,-0x58(%rbp)
  movsd  -0x58(%rbp),%xmm0
  mulsd  -0x100(%rbp),%xmm0
  movsd  %xmm0,-0x58(%rbp)
  movsd  -0x58(%rbp),%xmm0
  mulsd  -0x78(%rbp),%xmm0
  movsd  %xmm0,-0x58(%rbp)
  movsd  -0x90(%rbp),%xmm0
  subsd  -0x58(%rbp),%xmm0
  movsd  %xmm0,-0x90(%rbp)
  mov    -0x170(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L399
  mov    -0x170(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x10,%rax
  movsd  -0x90(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L399:
  mov    -0x158(%rbp),%rax
  movq   %rax,%xmm0
  call   <cos@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x90(%rbp)
  movsd  -0x90(%rbp),%xmm0
  mulsd  -0x98(%rbp),%xmm0
  movsd  %xmm0,-0x58(%rbp)
  movsd  -0x58(%rbp),%xmm0
  mulsd  -0xf0(%rbp),%xmm0
  movsd  %xmm0,-0x58(%rbp)
  mov    -0x158(%rbp),%rax
  movq   %rax,%xmm0
  call   <sin@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x50(%rbp)
  movsd  -0x50(%rbp),%xmm0
  mulsd  -0x98(%rbp),%xmm0
  movsd  %xmm0,-0x48(%rbp)
  movsd  -0x48(%rbp),%xmm0
  mulsd  -0x148(%rbp),%xmm0
  movsd  %xmm0,-0x48(%rbp)
  movsd  -0x48(%rbp),%xmm0
  mulsd  -0xe8(%rbp),%xmm0
  movsd  %xmm0,-0x48(%rbp)
  movsd  -0x58(%rbp),%xmm0
  subsd  -0x48(%rbp),%xmm0
  movsd  %xmm0,-0x58(%rbp)
  movsd  -0x58(%rbp),%xmm0
  mulsd  -0xd8(%rbp),%xmm0
  movsd  %xmm0,-0x58(%rbp)
  movsd  -0x160(%rbp),%xmm0
  addsd  %xmm0,%xmm0
  movsd  %xmm0,-0x48(%rbp)
  movsd  -0xa8(%rbp),%xmm0
  mulsd  -0x48(%rbp),%xmm0
  movsd  %xmm0,-0xa8(%rbp)
  movsd  -0xa8(%rbp),%xmm0
  mulsd  -0xe0(%rbp),%xmm0
  movsd  %xmm0,-0xa8(%rbp)
  movsd  -0x58(%rbp),%xmm0
  addsd  -0xa8(%rbp),%xmm0
  movsd  %xmm0,-0x58(%rbp)
  mov    -0x158(%rbp),%rax
  movq   %rax,%xmm0
  call   <sin@plt>
  movq   %xmm0,%rax
  mov    %rax,-0xa8(%rbp)
  movsd  -0xa8(%rbp),%xmm0
  mulsd  -0x98(%rbp),%xmm0
  movsd  %xmm0,-0x40(%rbp)
  movsd  -0x40(%rbp),%xmm0
  mulsd  -0x130(%rbp),%xmm0
  movsd  %xmm0,-0x40(%rbp)
  movsd  -0x58(%rbp),%xmm0
  subsd  -0x40(%rbp),%xmm0
  movsd  %xmm0,-0x58(%rbp)
  mov    -0x158(%rbp),%rax
  movq   %rax,%xmm0
  call   <cos@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x40(%rbp)
  movsd  -0x40(%rbp),%xmm0
  mulsd  -0x98(%rbp),%xmm0
  movsd  %xmm0,-0x38(%rbp)
  movsd  -0x38(%rbp),%xmm0
  mulsd  -0x120(%rbp),%xmm0
  movsd  %xmm0,-0x38(%rbp)
  movsd  -0x58(%rbp),%xmm0
  addsd  -0x38(%rbp),%xmm0
  movsd  %xmm0,-0x58(%rbp)
  mov    -0x158(%rbp),%rax
  movq   %rax,%xmm0
  call   <cos@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x38(%rbp)
  movsd  -0x38(%rbp),%xmm0
  mulsd  -0x98(%rbp),%xmm0
  movsd  %xmm0,-0x30(%rbp)
  movsd  -0x30(%rbp),%xmm0
  mulsd  -0xb8(%rbp),%xmm0
  movsd  %xmm0,-0x30(%rbp)
  movsd  -0x58(%rbp),%xmm0
  addsd  -0x30(%rbp),%xmm0
  movsd  %xmm0,-0x58(%rbp)
  movsd  -0x58(%rbp),%xmm0
  divsd  -0xf8(%rbp),%xmm0
  movsd  %xmm0,-0x58(%rbp)
  movsd  -0xd0(%rbp),%xmm0
  divsd  -0xf8(%rbp),%xmm0
  movsd  %xmm0,-0x30(%rbp)
  movsd  -0xc0(%rbp),%xmm0
  addsd  %xmm0,%xmm0
  movsd  %xmm0,-0x28(%rbp)
  mov    -0x158(%rbp),%rax
  movq   %rax,%xmm0
  call   <sin@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x20(%rbp)
  movsd  -0x98(%rbp),%xmm0
  mulsd  -0x20(%rbp),%xmm0
  movsd  %xmm0,-0x98(%rbp)
  movsd  -0x98(%rbp),%xmm0
  mulsd  -0x28(%rbp),%xmm0
  movsd  %xmm0,-0x98(%rbp)
  movsd  -0x98(%rbp),%xmm0
  mulsd  -0x100(%rbp),%xmm0
  movsd  %xmm0,-0x98(%rbp)
  movsd  -0x98(%rbp),%xmm0
  mulsd  -0xb0(%rbp),%xmm0
  movsd  %xmm0,-0x98(%rbp)
  movsd  -0x98(%rbp),%xmm0
  mulsd  -0x30(%rbp),%xmm0
  movsd  %xmm0,-0x98(%rbp)
  movsd  -0x58(%rbp),%xmm0
  subsd  -0x98(%rbp),%xmm0
  movsd  %xmm0,-0x58(%rbp)
  mov    -0x170(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L528
  mov    -0x170(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x18,%rax
  movsd  -0x58(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L528:
  mov    -0x168(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L361
  mov    -0x168(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x30,%rax
  movsd  (%rax),%xmm0
  jmp    L176
L361:
  pxor   %xmm0,%xmm0
L176:
  movsd  %xmm0,-0x58(%rbp)
  mov    -0x170(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L30
  mov    -0x170(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x20,%rax
  movsd  -0x58(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L30:
  mov    -0x168(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L166
  mov    -0x168(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x38,%rax
  movsd  (%rax),%xmm0
  jmp    L346
L166:
  pxor   %xmm0,%xmm0
L346:
  movsd  %xmm0,-0x58(%rbp)
  mov    -0x170(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L293
  mov    -0x170(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x28,%rax
  movsd  -0x58(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L293:
  mov    -0x168(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L310
  mov    -0x168(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x28,%rax
  movsd  (%rax),%xmm0
  jmp    L341
L310:
  pxor   %xmm0,%xmm0
L341:
  movsd  %xmm0,-0x98(%rbp)
  movsd  -0xa0(%rbp),%xmm0
  mulsd  -0x98(%rbp),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x18(%rbp),%xmm0
  mulsd  -0x148(%rbp),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x18(%rbp),%xmm0
  mulsd  -0x140(%rbp),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x88(%rbp),%xmm0
  mulsd  -0x58(%rbp),%xmm0
  movsd  %xmm0,-0x10(%rbp)
  movsd  -0x10(%rbp),%xmm0
  mulsd  -0x150(%rbp),%xmm0
  movsd  %xmm0,-0x10(%rbp)
  movsd  -0x18(%rbp),%xmm0
  addsd  -0x10(%rbp),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x80(%rbp),%xmm0
  mulsd  -0x98(%rbp),%xmm0
  movsd  %xmm0,-0x10(%rbp)
  movsd  -0x10(%rbp),%xmm0
  mulsd  -0x128(%rbp),%xmm0
  movsd  %xmm0,-0x10(%rbp)
  movsd  -0x70(%rbp),%xmm0
  mulsd  -0x98(%rbp),%xmm0
  movsd  %xmm0,-0x8(%rbp)
  movsd  -0x8(%rbp),%xmm0
  mulsd  -0x120(%rbp),%xmm0
  movsd  %xmm0,-0x8(%rbp)
  movsd  -0x8(%rbp),%xmm0
  mulsd  -0x118(%rbp),%xmm0
  movsd  %xmm0,-0x8(%rbp)
  movsd  -0x10(%rbp),%xmm0
  subsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,-0x10(%rbp)
  movsd  -0x18(%rbp),%xmm0
  addsd  -0x10(%rbp),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x18(%rbp),%xmm0
  divsd  -0x108(%rbp),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x60(%rbp),%xmm0
  mulsd  -0x98(%rbp),%xmm0
  movsd  %xmm0,-0x10(%rbp)
  movsd  -0x10(%rbp),%xmm0
  mulsd  -0x68(%rbp),%xmm0
  movsd  %xmm0,-0x10(%rbp)
  movsd  -0x10(%rbp),%xmm0
  mulsd  -0x100(%rbp),%xmm0
  movsd  %xmm0,-0x10(%rbp)
  movsd  -0x10(%rbp),%xmm0
  mulsd  -0x78(%rbp),%xmm0
  movsd  %xmm0,-0x10(%rbp)
  movsd  -0x18(%rbp),%xmm0
  subsd  -0x10(%rbp),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  mov    -0x170(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L415
  mov    -0x170(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x30,%rax
  movsd  -0x18(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L415:
  movsd  -0x90(%rbp),%xmm0
  mulsd  -0x98(%rbp),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x18(%rbp),%xmm0
  mulsd  -0xf0(%rbp),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x50(%rbp),%xmm0
  mulsd  -0x98(%rbp),%xmm0
  movsd  %xmm0,-0x10(%rbp)
  movsd  -0x10(%rbp),%xmm0
  mulsd  -0x148(%rbp),%xmm0
  movsd  %xmm0,-0x10(%rbp)
  movsd  -0x10(%rbp),%xmm0
  mulsd  -0xe8(%rbp),%xmm0
  movsd  %xmm0,-0x10(%rbp)
  movsd  -0x18(%rbp),%xmm0
  subsd  -0x10(%rbp),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x18(%rbp),%xmm0
  mulsd  -0xd8(%rbp),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x58(%rbp),%xmm0
  mulsd  -0x48(%rbp),%xmm0
  movsd  %xmm0,-0x58(%rbp)
  movsd  -0x58(%rbp),%xmm0
  mulsd  -0xe0(%rbp),%xmm0
  movsd  %xmm0,-0x58(%rbp)
  movsd  -0x18(%rbp),%xmm0
  addsd  -0x58(%rbp),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0xa8(%rbp),%xmm0
  mulsd  -0x98(%rbp),%xmm0
  movsd  %xmm0,-0x58(%rbp)
  movsd  -0x58(%rbp),%xmm0
  mulsd  -0x130(%rbp),%xmm0
  movsd  %xmm0,-0x58(%rbp)
  movsd  -0x18(%rbp),%xmm0
  subsd  -0x58(%rbp),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x40(%rbp),%xmm0
  mulsd  -0x98(%rbp),%xmm0
  movsd  %xmm0,-0x58(%rbp)
  movsd  -0x58(%rbp),%xmm0
  mulsd  -0x120(%rbp),%xmm0
  movsd  %xmm0,-0x58(%rbp)
  movsd  -0x18(%rbp),%xmm0
  addsd  -0x58(%rbp),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x38(%rbp),%xmm0
  mulsd  -0x98(%rbp),%xmm0
  movsd  %xmm0,-0x58(%rbp)
  movsd  -0x58(%rbp),%xmm0
  mulsd  -0xb8(%rbp),%xmm0
  movsd  %xmm0,-0x58(%rbp)
  movsd  -0x18(%rbp),%xmm0
  addsd  -0x58(%rbp),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x18(%rbp),%xmm0
  divsd  -0xf8(%rbp),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x98(%rbp),%xmm0
  mulsd  -0x20(%rbp),%xmm0
  movsd  %xmm0,-0x98(%rbp)
  movsd  -0x98(%rbp),%xmm0
  mulsd  -0x28(%rbp),%xmm0
  movsd  %xmm0,-0x98(%rbp)
  movsd  -0x98(%rbp),%xmm0
  mulsd  -0x100(%rbp),%xmm0
  movsd  %xmm0,-0x98(%rbp)
  movsd  -0x98(%rbp),%xmm0
  mulsd  -0xb0(%rbp),%xmm0
  movsd  %xmm0,-0x98(%rbp)
  movsd  -0x98(%rbp),%xmm0
  mulsd  -0x30(%rbp),%xmm0
  movsd  %xmm0,-0x98(%rbp)
  movsd  -0x18(%rbp),%xmm0
  subsd  -0x98(%rbp),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  mov    -0x170(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L157
  mov    -0x170(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x38,%rax
  movsd  -0x18(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L157:
  mov    -0x168(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L563
  mov    -0x168(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x50,%rax
  movsd  (%rax),%xmm0
  jmp    L94
L563:
  pxor   %xmm0,%xmm0
L94:
  movsd  %xmm0,-0x18(%rbp)
  mov    -0x170(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L116
  mov    -0x170(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x40,%rax
  movsd  -0x18(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L116:
  mov    -0x168(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L382
  mov    -0x168(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x58,%rax
  movsd  (%rax),%xmm0
  jmp    L433
L382:
  pxor   %xmm0,%xmm0
L433:
  movsd  %xmm0,-0x18(%rbp)
  mov    -0x170(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L377
  mov    -0x170(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x48,%rax
  movsd  -0x18(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L377:
  mov    -0x168(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L67
  mov    -0x168(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x48,%rax
  movsd  (%rax),%xmm0
  jmp    L223
L67:
  pxor   %xmm0,%xmm0
L223:
  movsd  %xmm0,-0x98(%rbp)
  movsd  -0xa0(%rbp),%xmm0
  mulsd  -0x98(%rbp),%xmm0
  movsd  %xmm0,-0x58(%rbp)
  movsd  -0x58(%rbp),%xmm0
  mulsd  -0x148(%rbp),%xmm0
  movsd  %xmm0,-0x58(%rbp)
  movsd  -0x58(%rbp),%xmm0
  mulsd  -0x140(%rbp),%xmm0
  movsd  %xmm0,-0x58(%rbp)
  movsd  -0x88(%rbp),%xmm0
  mulsd  -0x18(%rbp),%xmm0
  movsd  %xmm0,-0x10(%rbp)
  movsd  -0x10(%rbp),%xmm0
  mulsd  -0x150(%rbp),%xmm0
  movsd  %xmm0,-0x10(%rbp)
  movsd  -0x58(%rbp),%xmm0
  addsd  -0x10(%rbp),%xmm0
  movsd  %xmm0,-0x58(%rbp)
  movsd  -0x80(%rbp),%xmm0
  mulsd  -0x98(%rbp),%xmm0
  movsd  %xmm0,-0x10(%rbp)
  movsd  -0x10(%rbp),%xmm0
  mulsd  -0x128(%rbp),%xmm0
  movsd  %xmm0,-0x10(%rbp)
  movsd  -0x70(%rbp),%xmm0
  mulsd  -0x98(%rbp),%xmm0
  movsd  %xmm0,-0x8(%rbp)
  movsd  -0x8(%rbp),%xmm0
  mulsd  -0x120(%rbp),%xmm0
  movsd  %xmm0,-0x8(%rbp)
  movsd  -0x8(%rbp),%xmm0
  mulsd  -0x118(%rbp),%xmm0
  movsd  %xmm0,-0x8(%rbp)
  movsd  -0x10(%rbp),%xmm0
  subsd  -0x8(%rbp),%xmm0
  movsd  %xmm0,-0x10(%rbp)
  movsd  -0x58(%rbp),%xmm0
  addsd  -0x10(%rbp),%xmm0
  movsd  %xmm0,-0x58(%rbp)
  movsd  -0x58(%rbp),%xmm0
  divsd  -0x108(%rbp),%xmm0
  movsd  %xmm0,-0x58(%rbp)
  movsd  -0x60(%rbp),%xmm0
  mulsd  -0x98(%rbp),%xmm0
  movsd  %xmm0,-0x10(%rbp)
  movsd  -0x10(%rbp),%xmm0
  mulsd  -0x68(%rbp),%xmm0
  movsd  %xmm0,-0x10(%rbp)
  movsd  -0x10(%rbp),%xmm0
  mulsd  -0x100(%rbp),%xmm0
  movsd  %xmm0,-0x10(%rbp)
  movsd  -0x10(%rbp),%xmm0
  mulsd  -0x78(%rbp),%xmm0
  movsd  %xmm0,-0x10(%rbp)
  movsd  -0x58(%rbp),%xmm0
  subsd  -0x10(%rbp),%xmm0
  movsd  %xmm0,-0x58(%rbp)
  mov    -0x170(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L69
  mov    -0x170(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x50,%rax
  movsd  -0x58(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L69:
  movsd  -0x90(%rbp),%xmm0
  mulsd  -0x98(%rbp),%xmm0
  movsd  %xmm0,-0x58(%rbp)
  movsd  -0x58(%rbp),%xmm0
  mulsd  -0xf0(%rbp),%xmm0
  movsd  %xmm0,-0x58(%rbp)
  movsd  -0x50(%rbp),%xmm0
  mulsd  -0x98(%rbp),%xmm0
  movsd  %xmm0,-0x10(%rbp)
  movsd  -0x10(%rbp),%xmm0
  mulsd  -0x148(%rbp),%xmm0
  movsd  %xmm0,-0x10(%rbp)
  movsd  -0x10(%rbp),%xmm0
  mulsd  -0xe8(%rbp),%xmm0
  movsd  %xmm0,-0x10(%rbp)
  movsd  -0x58(%rbp),%xmm0
  subsd  -0x10(%rbp),%xmm0
  movsd  %xmm0,-0x58(%rbp)
  movsd  -0x58(%rbp),%xmm0
  mulsd  -0xd8(%rbp),%xmm0
  movsd  %xmm0,-0x58(%rbp)
  movsd  -0x18(%rbp),%xmm0
  mulsd  -0x48(%rbp),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x18(%rbp),%xmm0
  mulsd  -0xe0(%rbp),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x58(%rbp),%xmm0
  addsd  -0x18(%rbp),%xmm0
  movsd  %xmm0,-0x58(%rbp)
  movsd  -0xa8(%rbp),%xmm0
  mulsd  -0x98(%rbp),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x18(%rbp),%xmm0
  mulsd  -0x130(%rbp),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x58(%rbp),%xmm0
  subsd  -0x18(%rbp),%xmm0
  movsd  %xmm0,-0x58(%rbp)
  movsd  -0x40(%rbp),%xmm0
  mulsd  -0x98(%rbp),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x18(%rbp),%xmm0
  mulsd  -0x120(%rbp),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x58(%rbp),%xmm0
  addsd  -0x18(%rbp),%xmm0
  movsd  %xmm0,-0x58(%rbp)
  movsd  -0x38(%rbp),%xmm0
  mulsd  -0x98(%rbp),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x18(%rbp),%xmm0
  mulsd  -0xb8(%rbp),%xmm0
  movsd  %xmm0,-0x18(%rbp)
  movsd  -0x58(%rbp),%xmm0
  addsd  -0x18(%rbp),%xmm0
  movsd  %xmm0,-0x58(%rbp)
  movsd  -0x58(%rbp),%xmm0
  divsd  -0xf8(%rbp),%xmm0
  movsd  %xmm0,-0x58(%rbp)
  movsd  -0x98(%rbp),%xmm0
  mulsd  -0x20(%rbp),%xmm0
  movsd  %xmm0,-0x98(%rbp)
  movsd  -0x98(%rbp),%xmm0
  mulsd  -0x28(%rbp),%xmm0
  movsd  %xmm0,-0x98(%rbp)
  movsd  -0x98(%rbp),%xmm0
  mulsd  -0x100(%rbp),%xmm0
  movsd  %xmm0,-0x98(%rbp)
  movsd  -0x98(%rbp),%xmm0
  mulsd  -0xb0(%rbp),%xmm0
  movsd  %xmm0,-0x98(%rbp)
  movsd  -0x98(%rbp),%xmm0
  mulsd  -0x30(%rbp),%xmm0
  movsd  %xmm0,-0x98(%rbp)
  movsd  -0x58(%rbp),%xmm0
  subsd  -0x98(%rbp),%xmm0
  movsd  %xmm0,-0x58(%rbp)
  mov    -0x170(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L403
  mov    -0x170(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x58,%rax
  movsd  -0x58(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L403:
  mov    -0x168(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L321
  mov    -0x168(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x70,%rax
  movsd  (%rax),%xmm0
  jmp    L233
L321:
  pxor   %xmm0,%xmm0
L233:
  movsd  %xmm0,-0x58(%rbp)
  mov    -0x170(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L393
  mov    -0x170(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x60,%rax
  movsd  -0x58(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L393:
  mov    -0x168(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L36
  mov    -0x168(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x78,%rax
  movsd  (%rax),%xmm0
  jmp    L267
L36:
  pxor   %xmm0,%xmm0
L267:
  movsd  %xmm0,-0x58(%rbp)
  mov    -0x170(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L521
  mov    -0x170(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x68,%rax
  movsd  -0x58(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L521:
  mov    -0x168(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L316
  mov    -0x168(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x68,%rax
  movsd  (%rax),%xmm0
  jmp    L308
L316:
  pxor   %xmm0,%xmm0
L308:
  movsd  %xmm0,-0x98(%rbp)
  movsd  -0xa0(%rbp),%xmm0
  mulsd  -0x98(%rbp),%xmm0
  movsd  %xmm0,-0xa0(%rbp)
  movsd  -0xa0(%rbp),%xmm0
  mulsd  -0x148(%rbp),%xmm0
  movsd  %xmm0,-0xa0(%rbp)
  movsd  -0xa0(%rbp),%xmm0
  mulsd  -0x140(%rbp),%xmm0
  movsd  %xmm0,-0xa0(%rbp)
  movsd  -0x88(%rbp),%xmm0
  mulsd  -0x58(%rbp),%xmm0
  movsd  %xmm0,-0x88(%rbp)
  movsd  -0x88(%rbp),%xmm0
  mulsd  -0x150(%rbp),%xmm0
  movsd  %xmm0,-0x88(%rbp)
  movsd  -0xa0(%rbp),%xmm0
  addsd  -0x88(%rbp),%xmm0
  movsd  %xmm0,-0xa0(%rbp)
  movsd  -0x80(%rbp),%xmm0
  mulsd  -0x98(%rbp),%xmm0
  movsd  %xmm0,-0x80(%rbp)
  movsd  -0x80(%rbp),%xmm0
  mulsd  -0x128(%rbp),%xmm0
  movsd  %xmm0,-0x80(%rbp)
  movsd  -0x70(%rbp),%xmm0
  mulsd  -0x98(%rbp),%xmm0
  movsd  %xmm0,-0x70(%rbp)
  movsd  -0x70(%rbp),%xmm0
  mulsd  -0x120(%rbp),%xmm0
  movsd  %xmm0,-0x70(%rbp)
  movsd  -0x70(%rbp),%xmm0
  mulsd  -0x118(%rbp),%xmm0
  movsd  %xmm0,-0x70(%rbp)
  movsd  -0x80(%rbp),%xmm0
  subsd  -0x70(%rbp),%xmm0
  movsd  %xmm0,-0x80(%rbp)
  movsd  -0xa0(%rbp),%xmm0
  addsd  -0x80(%rbp),%xmm0
  movsd  %xmm0,-0xa0(%rbp)
  movsd  -0xa0(%rbp),%xmm0
  divsd  -0x108(%rbp),%xmm0
  movsd  %xmm0,-0xa0(%rbp)
  movsd  -0x60(%rbp),%xmm0
  mulsd  -0x98(%rbp),%xmm0
  movsd  %xmm0,-0x60(%rbp)
  movsd  -0x68(%rbp),%xmm0
  mulsd  -0x60(%rbp),%xmm0
  movsd  %xmm0,-0x68(%rbp)
  movsd  -0x68(%rbp),%xmm0
  mulsd  -0x100(%rbp),%xmm0
  movsd  %xmm0,-0x68(%rbp)
  movsd  -0x78(%rbp),%xmm0
  mulsd  -0x68(%rbp),%xmm0
  movsd  %xmm0,-0x78(%rbp)
  movsd  -0xa0(%rbp),%xmm0
  subsd  -0x78(%rbp),%xmm0
  movsd  %xmm0,-0xa0(%rbp)
  mov    -0x170(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L394
  mov    -0x170(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x70,%rax
  movsd  -0xa0(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L394:
  movsd  -0x90(%rbp),%xmm0
  mulsd  -0x98(%rbp),%xmm0
  movsd  %xmm0,-0x90(%rbp)
  movsd  -0x90(%rbp),%xmm0
  mulsd  -0xf0(%rbp),%xmm0
  movsd  %xmm0,-0x90(%rbp)
  movsd  -0x50(%rbp),%xmm0
  mulsd  -0x98(%rbp),%xmm0
  movsd  %xmm0,-0x50(%rbp)
  movsd  -0x50(%rbp),%xmm0
  mulsd  -0x148(%rbp),%xmm0
  movsd  %xmm0,-0x50(%rbp)
  movsd  -0x50(%rbp),%xmm0
  mulsd  -0xe8(%rbp),%xmm0
  movsd  %xmm0,-0x50(%rbp)
  movsd  -0x90(%rbp),%xmm0
  subsd  -0x50(%rbp),%xmm0
  movsd  %xmm0,-0x90(%rbp)
  movsd  -0x90(%rbp),%xmm0
  mulsd  -0xd8(%rbp),%xmm0
  movsd  %xmm0,-0x90(%rbp)
  movsd  -0x48(%rbp),%xmm0
  mulsd  -0x58(%rbp),%xmm0
  movsd  %xmm0,-0x48(%rbp)
  movsd  -0x48(%rbp),%xmm0
  mulsd  -0xe0(%rbp),%xmm0
  movsd  %xmm0,-0x48(%rbp)
  movsd  -0x90(%rbp),%xmm0
  addsd  -0x48(%rbp),%xmm0
  movsd  %xmm0,-0x90(%rbp)
  movsd  -0xa8(%rbp),%xmm0
  mulsd  -0x98(%rbp),%xmm0
  movsd  %xmm0,-0xa8(%rbp)
  movsd  -0xa8(%rbp),%xmm0
  mulsd  -0x130(%rbp),%xmm0
  movsd  %xmm0,-0xa8(%rbp)
  movsd  -0x90(%rbp),%xmm0
  subsd  -0xa8(%rbp),%xmm0
  movsd  %xmm0,-0x90(%rbp)
  movsd  -0x40(%rbp),%xmm0
  mulsd  -0x98(%rbp),%xmm0
  movsd  %xmm0,-0x40(%rbp)
  movsd  -0x40(%rbp),%xmm0
  mulsd  -0x120(%rbp),%xmm0
  movsd  %xmm0,-0x40(%rbp)
  movsd  -0x90(%rbp),%xmm0
  addsd  -0x40(%rbp),%xmm0
  movsd  %xmm0,-0x90(%rbp)
  movsd  -0x38(%rbp),%xmm0
  mulsd  -0x98(%rbp),%xmm0
  movsd  %xmm0,-0x38(%rbp)
  movsd  -0x38(%rbp),%xmm0
  mulsd  -0xb8(%rbp),%xmm0
  movsd  %xmm0,-0x38(%rbp)
  movsd  -0x90(%rbp),%xmm0
  addsd  -0x38(%rbp),%xmm0
  movsd  %xmm0,-0x90(%rbp)
  movsd  -0x90(%rbp),%xmm0
  divsd  -0xf8(%rbp),%xmm0
  movsd  %xmm0,-0x90(%rbp)
  movsd  -0x20(%rbp),%xmm0
  mulsd  -0x98(%rbp),%xmm0
  movsd  %xmm0,-0x20(%rbp)
  movsd  -0x28(%rbp),%xmm0
  mulsd  -0x20(%rbp),%xmm0
  movsd  %xmm0,-0x28(%rbp)
  movsd  -0x28(%rbp),%xmm0
  mulsd  -0x100(%rbp),%xmm0
  movsd  %xmm0,-0x28(%rbp)
  movsd  -0x28(%rbp),%xmm0
  mulsd  -0xb0(%rbp),%xmm0
  movsd  %xmm0,-0x28(%rbp)
  movsd  -0x30(%rbp),%xmm0
  mulsd  -0x28(%rbp),%xmm0
  movsd  %xmm0,-0x30(%rbp)
  movsd  -0x90(%rbp),%xmm0
  subsd  -0x30(%rbp),%xmm0
  movsd  %xmm0,-0x90(%rbp)
  mov    -0x170(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L419
  mov    -0x170(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rax
  add    $0x78,%rax
  movsd  -0x90(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L419:
  mov    -0x168(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L443
  mov    -0x168(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  add    $0x10,%rax
  movsd  (%rax),%xmm0
  jmp    L583
L443:
  pxor   %xmm0,%xmm0
L583:
  movsd  %xmm0,-0x90(%rbp)
  mov    -0x170(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L309
  mov    -0x170(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  movsd  -0x90(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L309:
  mov    -0x168(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L401
  mov    -0x168(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  add    $0x18,%rax
  movsd  (%rax),%xmm0
  jmp    L406
L401:
  pxor   %xmm0,%xmm0
L406:
  movsd  %xmm0,-0x90(%rbp)
  mov    -0x170(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L77
  mov    -0x170(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  add    $0x8,%rax
  movsd  -0x90(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L77:
  mov    -0x158(%rbp),%rax
  movq   %rax,%xmm0
  call   <cos@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x30(%rbp)
  mov    -0x168(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L193
  mov    -0x168(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  add    $0x8,%rax
  movsd  (%rax),%xmm0
  jmp    L595
L193:
  pxor   %xmm0,%xmm0
L595:
  movsd  %xmm0,-0x28(%rbp)
  movsd  -0x30(%rbp),%xmm0
  mulsd  -0x28(%rbp),%xmm0
  movsd  %xmm0,-0x30(%rbp)
  movsd  -0x30(%rbp),%xmm0
  mulsd  -0x148(%rbp),%xmm0
  movsd  %xmm0,-0x30(%rbp)
  movsd  -0x140(%rbp),%xmm0
  mulsd  -0x30(%rbp),%xmm0
  movsd  %xmm0,-0x140(%rbp)
  movsd  -0x160(%rbp),%xmm0
  addsd  %xmm0,%xmm0
  movsd  %xmm0,-0x30(%rbp)
  movsd  -0x30(%rbp),%xmm0
  mulsd  -0x90(%rbp),%xmm0
  movsd  %xmm0,-0x30(%rbp)
  movsd  -0x150(%rbp),%xmm0
  mulsd  -0x30(%rbp),%xmm0
  movsd  %xmm0,-0x150(%rbp)
  movsd  -0x140(%rbp),%xmm0
  addsd  -0x150(%rbp),%xmm0
  movsd  %xmm0,-0x140(%rbp)
  mov    -0x158(%rbp),%rax
  movq   %rax,%xmm0
  call   <cos@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x150(%rbp)
  movsd  -0x150(%rbp),%xmm0
  mulsd  -0x28(%rbp),%xmm0
  movsd  %xmm0,-0x150(%rbp)
  movsd  -0x128(%rbp),%xmm0
  mulsd  -0x150(%rbp),%xmm0
  movsd  %xmm0,-0x128(%rbp)
  mov    -0x158(%rbp),%rax
  movq   %rax,%xmm0
  call   <sin@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x150(%rbp)
  movsd  -0x150(%rbp),%xmm0
  mulsd  -0x28(%rbp),%xmm0
  movsd  %xmm0,-0x150(%rbp)
  movsd  -0x150(%rbp),%xmm0
  mulsd  -0x120(%rbp),%xmm0
  movsd  %xmm0,-0x150(%rbp)
  movsd  -0x118(%rbp),%xmm0
  mulsd  -0x150(%rbp),%xmm0
  movsd  %xmm0,-0x118(%rbp)
  movsd  -0x128(%rbp),%xmm0
  subsd  -0x118(%rbp),%xmm0
  movsd  %xmm0,-0x128(%rbp)
  movsd  -0x140(%rbp),%xmm0
  addsd  -0x128(%rbp),%xmm0
  movsd  %xmm0,-0x140(%rbp)
  movsd  -0x140(%rbp),%xmm0
  divsd  -0x108(%rbp),%xmm0
  movsd  %xmm0,-0x140(%rbp)
  movsd  -0x138(%rbp),%xmm0
  divsd  -0x108(%rbp),%xmm0
  movsd  %xmm0,-0x138(%rbp)
  movsd  -0x110(%rbp),%xmm0
  addsd  %xmm0,%xmm0
  movsd  %xmm0,-0x110(%rbp)
  mov    -0x158(%rbp),%rax
  movq   %rax,%xmm0
  call   <sin@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x128(%rbp)
  movsd  -0x128(%rbp),%xmm0
  mulsd  -0x28(%rbp),%xmm0
  movsd  %xmm0,-0x128(%rbp)
  movsd  -0x110(%rbp),%xmm0
  mulsd  -0x128(%rbp),%xmm0
  movsd  %xmm0,-0x110(%rbp)
  movsd  -0x110(%rbp),%xmm0
  mulsd  -0x100(%rbp),%xmm0
  movsd  %xmm0,-0x110(%rbp)
  movsd  -0x138(%rbp),%xmm0
  mulsd  -0x110(%rbp),%xmm0
  movsd  %xmm0,-0x138(%rbp)
  movsd  -0x140(%rbp),%xmm0
  subsd  -0x138(%rbp),%xmm0
  movsd  %xmm0,-0x140(%rbp)
  movsd  D10(%rip),%xmm0
  divsd  -0x108(%rbp),%xmm0
  movsd  %xmm0,-0x108(%rbp)
  movsd  -0x108(%rbp),%xmm0
  addsd  -0x140(%rbp),%xmm0
  movsd  %xmm0,-0x108(%rbp)
  mov    -0x170(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L446
  mov    -0x170(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  add    $0x10,%rax
  movsd  -0x108(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L446:
  movsd  -0xc8(%rbp),%xmm0
  divsd  -0xf8(%rbp),%xmm0
  movsd  %xmm0,-0xc8(%rbp)
  mov    -0x158(%rbp),%rax
  movq   %rax,%xmm0
  call   <cos@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x108(%rbp)
  movsd  -0x108(%rbp),%xmm0
  mulsd  -0x28(%rbp),%xmm0
  movsd  %xmm0,-0x108(%rbp)
  movsd  -0xf0(%rbp),%xmm0
  mulsd  -0x108(%rbp),%xmm0
  movsd  %xmm0,-0xf0(%rbp)
  mov    -0x158(%rbp),%rax
  movq   %rax,%xmm0
  call   <sin@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x108(%rbp)
  movsd  -0x108(%rbp),%xmm0
  mulsd  -0x28(%rbp),%xmm0
  movsd  %xmm0,-0x108(%rbp)
  movsd  -0x148(%rbp),%xmm0
  mulsd  -0x108(%rbp),%xmm0
  movsd  %xmm0,-0x148(%rbp)
  movsd  -0xe8(%rbp),%xmm0
  mulsd  -0x148(%rbp),%xmm0
  movsd  %xmm0,-0xe8(%rbp)
  movsd  -0xf0(%rbp),%xmm0
  subsd  -0xe8(%rbp),%xmm0
  movsd  %xmm0,-0xf0(%rbp)
  movsd  -0xd8(%rbp),%xmm0
  mulsd  -0xf0(%rbp),%xmm0
  movsd  %xmm0,-0xd8(%rbp)
  movsd  -0x160(%rbp),%xmm0
  addsd  %xmm0,%xmm0
  movsd  %xmm0,-0x160(%rbp)
  movsd  -0x160(%rbp),%xmm0
  mulsd  -0x90(%rbp),%xmm0
  movsd  %xmm0,-0x160(%rbp)
  movsd  -0xe0(%rbp),%xmm0
  mulsd  -0x160(%rbp),%xmm0
  movsd  %xmm0,-0xe0(%rbp)
  movsd  -0xd8(%rbp),%xmm0
  addsd  -0xe0(%rbp),%xmm0
  movsd  %xmm0,-0xd8(%rbp)
  mov    -0x158(%rbp),%rax
  movq   %rax,%xmm0
  call   <sin@plt>
  movq   %xmm0,%rax
  mov    %rax,-0xe0(%rbp)
  movsd  -0xe0(%rbp),%xmm0
  mulsd  -0x28(%rbp),%xmm0
  movsd  %xmm0,-0xe0(%rbp)
  movsd  -0x130(%rbp),%xmm0
  mulsd  -0xe0(%rbp),%xmm0
  movsd  %xmm0,-0x130(%rbp)
  movsd  -0xd8(%rbp),%xmm0
  subsd  -0x130(%rbp),%xmm0
  movsd  %xmm0,-0xd8(%rbp)
  mov    -0x158(%rbp),%rax
  movq   %rax,%xmm0
  call   <cos@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x130(%rbp)
  movsd  -0x130(%rbp),%xmm0
  mulsd  -0x28(%rbp),%xmm0
  movsd  %xmm0,-0x130(%rbp)
  movsd  -0x120(%rbp),%xmm0
  mulsd  -0x130(%rbp),%xmm0
  movsd  %xmm0,-0x120(%rbp)
  movsd  -0xd8(%rbp),%xmm0
  addsd  -0x120(%rbp),%xmm0
  movsd  %xmm0,-0xd8(%rbp)
  mov    -0x158(%rbp),%rax
  movq   %rax,%xmm0
  call   <cos@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x120(%rbp)
  movsd  -0x120(%rbp),%xmm0
  mulsd  -0x28(%rbp),%xmm0
  movsd  %xmm0,-0x120(%rbp)
  movsd  -0xb8(%rbp),%xmm0
  mulsd  -0x120(%rbp),%xmm0
  movsd  %xmm0,-0xb8(%rbp)
  movsd  -0xd8(%rbp),%xmm0
  addsd  -0xb8(%rbp),%xmm0
  movsd  %xmm0,-0xd8(%rbp)
  movsd  -0xd8(%rbp),%xmm0
  divsd  -0xf8(%rbp),%xmm0
  movsd  %xmm0,-0xd8(%rbp)
  movsd  -0xd0(%rbp),%xmm0
  divsd  -0xf8(%rbp),%xmm0
  movsd  %xmm0,-0xd0(%rbp)
  movsd  -0xc0(%rbp),%xmm0
  addsd  %xmm0,%xmm0
  movsd  %xmm0,-0xc0(%rbp)
  mov    -0x158(%rbp),%rax
  movq   %rax,%xmm0
  call   <sin@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x158(%rbp)
  movsd  -0x158(%rbp),%xmm0
  mulsd  -0x28(%rbp),%xmm0
  movsd  %xmm0,-0x158(%rbp)
  movsd  -0xc0(%rbp),%xmm0
  mulsd  -0x158(%rbp),%xmm0
  movsd  %xmm0,-0xc0(%rbp)
  movsd  -0x100(%rbp),%xmm0
  mulsd  -0xc0(%rbp),%xmm0
  movsd  %xmm0,-0x100(%rbp)
  movsd  -0xb0(%rbp),%xmm0
  mulsd  -0x100(%rbp),%xmm0
  movsd  %xmm0,-0xb0(%rbp)
  movsd  -0xd0(%rbp),%xmm0
  mulsd  -0xb0(%rbp),%xmm0
  movsd  %xmm0,-0xd0(%rbp)
  movsd  -0xd8(%rbp),%xmm0
  subsd  -0xd0(%rbp),%xmm0
  movsd  %xmm0,-0xd8(%rbp)
  movsd  -0xc8(%rbp),%xmm0
  addsd  -0xd8(%rbp),%xmm0
  movsd  %xmm0,-0xc8(%rbp)
  mov    -0x170(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  test   %rax,%rax
  je     L92
  mov    -0x170(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  add    $0x18,%rax
  movsd  -0xc8(%rbp),%xmm0
  movsd  %xmm0,(%rax)
L92:
  mov    $0x0,%eax
  leave
  ret
```

tool_calls: name: disassemble_data
arguments: data_tag: D59
datatype: byte[8]
name: disassemble_data
arguments: data_tag: D65
datatype: byte[8]
name: disassemble_data
arguments: data_tag: D25
datatype: byte[8]
name: disassemble_data
arguments: data_tag: D14
datatype: byte[8]
name: disassemble_data
arguments: data_tag: D69
datatype: byte[8]
name: disassemble_data
arguments: data_tag: D36
datatype: byte[8]
name: disassemble_data
arguments: data_tag: D10
datatype: f64

tool: {"D59": [0x7c,0x14,0xae,0x47,0xe1,0x7a,0xb4,0xbf]}

tool: {"D65": [0x32,0x08,0xac,0x1c,0x5a,0x64,0xef,0x3f]}

tool: {"D25": [0x9a,0x99,0x99,0x99,0x99,0x99,0xb9,0x3f]}

tool: {"D14": [0x9a,0x99,0x99,0x99,0x99,0x99,0xf1,0x3f]}

tool: {"D69": [0x1f,0x85,0xeb,0x51,0xb8,0x9e,0x23,0x40]}

tool: {"D36": [0x9a,0x99,0x99,0x99,0x99,0x99,0xe9,0x3f]}

tool: D10: 1

assistant: ```c
int vdeFun(const double **arg, double **res, int *iw, double *w, int mem) {
  double a0 = arg[0] ? arg[0][2] : 0;
  if (res[0] != 0)
    res[0][0] = a0;
  a0 = arg[0] ? arg[0][3] : 0;
  if (res[0] != 0)
    res[0][1] = a0;
  double a1 = arg[0] ? arg[0][1] : 0;
  double a2 = sin(a1);
  double a3 = -8.0000000000000016e-02;
  a2 = (a3 * a2);
  double a4 = vde_forw_pendulum_sq(a0);
  double a5 = (a2 * a4);
  double a6 = arg[3] ? arg[3][0] : 0;
  a5 = (a5 + a6);
  double a7 = cos(a1);
  double a8 = 9.8100000000000009e-01;
  a7 = (a8 * a7);
  double a9 = sin(a1);
  double a10 = (a7 * a9);
  a5 = (a5 + a10);
  a10 = cos(a1);
  double a11 = vde_forw_pendulum_sq(a10);
  double a12 = 1.0000000000000001e-01;
  a11 = (a12 * a11);
  double a13 = 1.1000000000000001e+00;
  a11 = (a13 - a11);
  a5 = (a5 / a11);
  if (res[0] != 0)
    res[0][2] = a5;
  double a14 = cos(a1);
  a14 = (a3 * a14);
  double a15 = sin(a1);
  double a16 = (a14 * a15);
  double a17 = vde_forw_pendulum_sq(a0);
  double a18 = (a16 * a17);
  double a19 = cos(a1);
  double a20 = (a6 * a19);
  a18 = (a18 + a20);
  a20 = sin(a1);
  a20 = (a8 * a20);
  a18 = (a18 + a20);
  a20 = sin(a1);
  double a21 = 9.8100000000000005e+00;
  a20 = (a21 * a20);
  a18 = (a18 + a20);
  a20 = cos(a1);
  double a22 = vde_forw_pendulum_sq(a20);
  a22 = (a12 * a22);
  a13 = (a13 - a22);
  a22 = 8.0000000000000004e-01;
  a13 = (a22 * a13);
  a18 = (a18 / a13);
  if (res[0] != 0)
    res[0][3] = a18;
  double a23 = arg[1] ? arg[1][2] : 0;
  if (res[1] != 0)
    res[1][0] = a23;
  a23 = arg[1] ? arg[1][3] : 0;
  if (res[1] != 0)
    res[1][1] = a23;
  double a24 = cos(a1);
  double a25 = arg[1] ? arg[1][1] : 0;
  double a26 = (a24 * a25);
  a26 = (a3 * a26);
  a26 = (a4 * a26);
  double a27 = (a0 + a0);
  double a28 = (a27 * a23);
  a28 = (a2 * a28);
  a26 = (a26 + a28);
  a28 = cos(a1);
  double a29 = (a28 * a25);
  a29 = (a7 * a29);
  double a30 = sin(a1);
  double a31 = (a30 * a25);
  a31 = (a8 * a31);
  a31 = (a9 * a31);
  a29 = (a29 - a31);
  a26 = (a26 + a29);
  a26 = (a26 / a11);
  a29 = (a5 / a11);
  a31 = (a10 + a10);
  double a32 = sin(a1);
  double a33 = (a32 * a25);
  a33 = (a31 * a33);
  a33 = (a12 * a33);
  a33 = (a29 * a33);
  a26 = (a26 - a33);
  if (res[1] != 0)
    res[1][2] = a26;
  a26 = cos(a1);
  a33 = (a26 * a25);
  a33 = (a14 * a33);
  double a34 = sin(a1);
  double a35 = (a34 * a25);
  a35 = (a3 * a35);
  a35 = (a15 * a35);
  a33 = (a33 - a35);
  a33 = (a17 * a33);
  a35 = (a0 + a0);
  a23 = (a35 * a23);
  a23 = (a16 * a23);
  a33 = (a33 + a23);
  a23 = sin(a1);
  double a36 = (a23 * a25);
  a36 = (a6 * a36);
  a33 = (a33 - a36);
  a36 = cos(a1);
  double a37 = (a36 * a25);
  a37 = (a8 * a37);
  a33 = (a33 + a37);
  a37 = cos(a1);
  double a38 = (a37 * a25);
  a38 = (a21 * a38);
  a33 = (a33 + a38);
  a33 = (a33 / a13);
  a38 = (a18 / a13);
  double a39 = (a20 + a20);
  double a40 = sin(a1);
  a25 = (a40 * a25);
  a25 = (a39 * a25);
  a25 = (a12 * a25);
  a25 = (a22 * a25);
  a25 = (a38 * a25);
  a33 = (a33 - a25);
  if (res[1] != 0)
    res[1][3] = a33;
  a33 = arg[1] ? arg[1][6] : 0;
  if (res[1] != 0)
    res[1][4] = a33;
  a33 = arg[1] ? arg[1][7] : 0;
  if (res[1] != 0)
    res[1][5] = a33;
  a25 = arg[1] ? arg[1][5] : 0;
  double a41 = (a24 * a25);
  a41 = (a3 * a41);
  a41 = (a4 * a41);
  double a42 = (a27 * a33);
  a42 = (a2 * a42);
  a41 = (a41 + a42);
  a42 = (a28 * a25);
  a42 = (a7 * a42);
  double a43 = (a30 * a25);
  a43 = (a8 * a43);
  a43 = (a9 * a43);
  a42 = (a42 - a43);
  a41 = (a41 + a42);
  a41 = (a41 / a11);
  a42 = (a32 * a25);
  a42 = (a31 * a42);
  a42 = (a12 * a42);
  a42 = (a29 * a42);
  a41 = (a41 - a42);
  if (res[1] != 0)
    res[1][6] = a41;
  a41 = (a26 * a25);
  a41 = (a14 * a41);
  a42 = (a34 * a25);
  a42 = (a3 * a42);
  a42 = (a15 * a42);
  a41 = (a41 - a42);
  a41 = (a17 * a41);
  a33 = (a35 * a33);
  a33 = (a16 * a33);
  a41 = (a41 + a33);
  a33 = (a23 * a25);
  a33 = (a6 * a33);
  a41 = (a41 - a33);
  a33 = (a36 * a25);
  a33 = (a8 * a33);
  a41 = (a41 + a33);
  a33 = (a37 * a25);
  a33 = (a21 * a33);
  a41 = (a41 + a33);
  a41 = (a41 / a13);
  a25 = (a40 * a25);
  a25 = (a39 * a25);
  a25 = (a12 * a25);
  a25 = (a22 * a25);
  a25 = (a38 * a25);
  a41 = (a41 - a25);
  if (res[1] != 0)
    res[1][7] = a41;
  a41 = arg[1] ? arg[1][10] : 0;
  if (res[1] != 0)
    res[1][8] = a41;
  a41 = arg[1] ? arg[1][11] : 0;
  if (res[1] != 0)
    res[1][9] = a41;
  a25 = arg[1] ? arg[1][9] : 0;
  a33 = (a24 * a25);
  a33 = (a3 * a33);
  a33 = (a4 * a33);
  a42 = (a27 * a41);
  a42 = (a2 * a42);
  a33 = (a33 + a42);
  a42 = (a28 * a25);
  a42 = (a7 * a42);
  a43 = (a30 * a25);
  a43 = (a8 * a43);
  a43 = (a9 * a43);
  a42 = (a42 - a43);
  a33 = (a33 + a42);
  a33 = (a33 / a11);
  a42 = (a32 * a25);
  a42 = (a31 * a42);
  a42 = (a12 * a42);
  a42 = (a29 * a42);
  a33 = (a33 - a42);
  if (res[1] != 0)
    res[1][10] = a33;
  a33 = (a26 * a25);
  a33 = (a14 * a33);
  a42 = (a34 * a25);
  a42 = (a3 * a42);
  a42 = (a15 * a42);
  a33 = (a33 - a42);
  a33 = (a17 * a33);
  a41 = (a35 * a41);
  a41 = (a16 * a41);
  a33 = (a33 + a41);
  a41 = (a23 * a25);
  a41 = (a6 * a41);
  a33 = (a33 - a41);
  a41 = (a36 * a25);
  a41 = (a8 * a41);
  a33 = (a33 + a41);
  a41 = (a37 * a25);
  a41 = (a21 * a41);
  a33 = (a33 + a41);
  a33 = (a33 / a13);
  a25 = (a40 * a25);
  a25 = (a39 * a25);
  a25 = (a12 * a25);
  a25 = (a22 * a25);
  a25 = (a38 * a25);
  a33 = (a33 - a25);
  if (res[1] != 0)
    res[1][11] = a33;
  a33 = arg[1] ? arg[1][14] : 0;
  if (res[1] != 0)
    res[1][12] = a33;
  a33 = arg[1] ? arg[1][15] : 0;
  if (res[1] != 0)
    res[1][13] = a33;
  a25 = arg[1] ? arg[1][13] : 0;
  a24 = (a24 * a25);
  a24 = (a3 * a24);
  a24 = (a4 * a24);
  a27 = (a27 * a33);
  a27 = (a2 * a27);
  a24 = (a24 + a27);
  a28 = (a28 * a25);
  a28 = (a7 * a28);
  a30 = (a30 * a25);
  a30 = (a8 * a30);
  a30 = (a9 * a30);
  a28 = (a28 - a30);
  a24 = (a24 + a28);
  a24 = (a24 / a11);
  a32 = (a32 * a25);
  a31 = (a31 * a32);
  a31 = (a12 * a31);
  a29 = (a29 * a31);
  a24 = (a24 - a29);
  if (res[1] != 0)
    res[1][14] = a24;
  a26 = (a26 * a25);
  a26 = (a14 * a26);
  a34 = (a34 * a25);
  a34 = (a3 * a34);
  a34 = (a15 * a34);
  a26 = (a26 - a34);
  a26 = (a17 * a26);
  a35 = (a35 * a33);
  a35 = (a16 * a35);
  a26 = (a26 + a35);
  a23 = (a23 * a25);
  a23 = (a6 * a23);
  a26 = (a26 - a23);
  a36 = (a36 * a25);
  a36 = (a8 * a36);
  a26 = (a26 + a36);
  a37 = (a37 * a25);
  a37 = (a21 * a37);
  a26 = (a26 + a37);
  a26 = (a26 / a13);
  a40 = (a40 * a25);
  a39 = (a39 * a40);
  a39 = (a12 * a39);
  a39 = (a22 * a39);
  a38 = (a38 * a39);
  a26 = (a26 - a38);
  if (res[1] != 0)
    res[1][15] = a26;
  a26 = arg[2] ? arg[2][2] : 0;
  if (res[2] != 0)
    res[2][0] = a26;
  a26 = arg[2] ? arg[2][3] : 0;
  if (res[2] != 0)
    res[2][1] = a26;
  a38 = cos(a1);
  a39 = arg[2] ? arg[2][1] : 0;
  a38 = (a38 * a39);
  a38 = (a3 * a38);
  a4 = (a4 * a38);
  a38 = (a0 + a0);
  a38 = (a38 * a26);
  a2 = (a2 * a38);
  a4 = (a4 + a2);
  a2 = cos(a1);
  a2 = (a2 * a39);
  a7 = (a7 * a2);
  a2 = sin(a1);
  a2 = (a2 * a39);
  a2 = (a8 * a2);
  a9 = (a9 * a2);
  a7 = (a7 - a9);
  a4 = (a4 + a7);
  a4 = (a4 / a11);
  a5 = (a5 / a11);
  a10 = (a10 + a10);
  a7 = sin(a1);
  a7 = (a7 * a39);
  a10 = (a10 * a7);
  a10 = (a12 * a10);
  a5 = (a5 * a10);
  a4 = (a4 - a5);
  a11 = (1. / a11);
  a11 = (a11 + a4);
  if (res[2] != 0)
    res[2][2] = a11;
  a19 = (a19 / a13);
  a11 = cos(a1);
  a11 = (a11 * a39);
  a14 = (a14 * a11);
  a11 = sin(a1);
  a11 = (a11 * a39);
  a3 = (a3 * a11);
  a15 = (a15 * a3);
  a14 = (a14 - a15);
  a17 = (a17 * a14);
  a0 = (a0 + a0);
  a0 = (a0 * a26);
  a16 = (a16 * a0);
  a17 = (a17 + a16);
  a16 = sin(a1);
  a16 = (a16 * a39);
  a6 = (a6 * a16);
  a17 = (a17 - a6);
  a6 = cos(a1);
  a6 = (a6 * a39);
  a8 = (a8 * a6);
  a17 = (a17 + a8);
  a8 = cos(a1);
  a8 = (a8 * a39);
  a21 = (a21 * a8);
  a17 = (a17 + a21);
  a17 = (a17 / a13);
  a18 = (a18 / a13);
  a20 = (a20 + a20);
  a1 = sin(a1);
  a1 = (a1 * a39);
  a20 = (a20 * a1);
  a12 = (a12 * a20);
  a22 = (a22 * a12);
  a18 = (a18 * a22);
  a17 = (a17 - a18);
  a19 = (a19 + a17);
  if (res[2] != 0)
    res[2][3] = a19;
  return 0;
}
```