user: Converte this assembly snippet into its equivalent C code:

```asm
<contr_hrr>:
  endbr64
  push   %r15
  mov    %ecx,%r10d
  mov    %edx,%r11d
  push   %r14
  push   %r13
  push   %r12
  mov    %r9,%r12
  push   %rbp
  mov    %rsi,%rbp
  push   %rbx
  mov    %r8d,%ebx
  sub    $0x108,%rsp
  mov    0x140(%rsp),%rax
  mov    0x168(%rsp),%esi
  mov    0x170(%rsp),%rcx
  mov    0x178(%rsp),%rdx
  mov    %rax,0x10(%rsp)
  mov    0x148(%rsp),%eax
  mov    %esi,0xc(%rsp)
  mov    0x180(%rsp),%esi
  mov    %rcx,0x20(%rsp)
  mov    0x190(%rsp),%rcx
  mov    %eax,0x30(%rsp)
  mov    0x150(%rsp),%rax
  mov    %rdx,0x28(%rsp)
  mov    0x198(%rsp),%edx
  mov    %esi,0x34(%rsp)
  mov    0x1a0(%rsp),%esi
  mov    %rcx,0x38(%rsp)
  mov    0x1a8(%rsp),%ecx
  mov    %rax,0x18(%rsp)
  mov    0x160(%rsp),%r15d
  mov    %esi,0x44(%rsp)
  mov    0x158(%rsp),%eax
  movsd  0x188(%rsp),%xmm9
  mov    %ecx,0x58(%rsp)
  mov    %edx,0x40(%rsp)
  mov    0x1b0(%rsp),%rdx
  mov    0x1b8(%rsp),%rsi
  mov    0x1c0(%rsp),%ecx
  mov    %rdx,0x48(%rsp)
  mov    0x1e0(%rsp),%rdx
  mov    %rsi,0x50(%rsp)
  mov    0x1f8(%rsp),%esi
  mov    %ecx,0x5c(%rsp)
  mov    0x200(%rsp),%rcx
  mov    %rdx,0x60(%rsp)
  mov    0x208(%rsp),%rdx
  mov    %esi,0x88(%rsp)
  movsd  0x1c8(%rsp),%xmm10
  mov    %rcx,0x68(%rsp)
  movsd  0x1d0(%rsp),%xmm12
  mov    %rdx,0x70(%rsp)
  mov    0x1e8(%rsp),%r13d
  movsd  0x1d8(%rsp),%xmm11
  mov    0x1f0(%rsp),%r14d
  test   %eax,%eax
  jg     L16
  test   %r15d,%r15d
  jg     L25
  mov    0xc(%rsp),%edx
  test   %edx,%edx
  jg     L75
  test   %r13d,%r13d
  jg     L83
  test   %r14d,%r14d
  jg     L40
  mov    0x88(%rsp),%edx
  test   %edx,%edx
  jg     L73
  mov    0x70(%rsp),%rax
  mov    %rbp,%rsi
  mov    %r10d,%ecx
  mov    %r11d,%edx
  movsd  %xmm11,0x1c0(%rsp)
  mov    %rax,0x1d8(%rsp)
  mov    0x68(%rsp),%rax
  movsd  %xmm12,0x1b8(%rsp)
  mov    %rax,0x1d0(%rsp)
  mov    0x60(%rsp),%rax
  movsd  %xmm10,0x1b0(%rsp)
  mov    %rax,0x1c8(%rsp)
  mov    0x5c(%rsp),%eax
  movsd  %xmm9,0x170(%rsp)
  mov    %eax,0x1a8(%rsp)
  mov    0x50(%rsp),%rax
  mov    %rax,0x1a0(%rsp)
  mov    0x48(%rsp),%rax
  mov    %rax,0x198(%rsp)
  mov    0x58(%rsp),%eax
  mov    %eax,0x190(%rsp)
  mov    0x44(%rsp),%eax
  mov    %eax,0x188(%rsp)
  mov    0x40(%rsp),%eax
  mov    %eax,0x180(%rsp)
  mov    0x38(%rsp),%rax
  mov    %rax,0x178(%rsp)
  mov    0x34(%rsp),%eax
  mov    %eax,0x168(%rsp)
  mov    0x28(%rsp),%rax
  mov    %rax,0x160(%rsp)
  mov    0x20(%rsp),%rax
  mov    %rax,0x158(%rsp)
  mov    0x18(%rsp),%rax
  mov    %rax,0x150(%rsp)
  mov    0x30(%rsp),%eax
  mov    %eax,0x148(%rsp)
  mov    0x10(%rsp),%rax
  mov    %rax,0x140(%rsp)
  add    $0x108,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  jmp    1050 <contr_vrr@plt>
  nopl   0x0(%rax)
L16:
  mov    %r11d,0xf8(%rsp)
  lea    0x1(%r11),%edx
  sub    $0x1,%eax
  push   0x70(%rsp)
  push   %rcx
  mov    0x98(%rsp),%ecx
  push   %rcx
  push   %r14
  push   %r13
  push   0x88(%rsp)
  sub    $0x18,%rsp
  mov    0xa4(%rsp),%esi
  movsd  %xmm12,0x8(%rsp)
  movsd  %xmm12,0x130(%rsp)
  movsd  %xmm10,(%rsp)
  movsd  %xmm10,0x128(%rsp)
  movsd  %xmm11,0x10(%rsp)
  movsd  %xmm11,0x138(%rsp)
  push   %rsi
  push   0xa0(%rsp)
  push   0xa0(%rsp)
  mov    0xb8(%rsp),%r11d
  push   %r11
  mov    0xac(%rsp),%r8d
  push   %r8
  mov    0xb0(%rsp),%r9d
  mov    %ebx,%r8d
  push   %r9
  mov    %r12,%r9
  push   0xb0(%rsp)
  sub    $0x8,%rsp
  movsd  %xmm9,(%rsp)
  movsd  %xmm9,0x160(%rsp)
  mov    0xbc(%rsp),%ecx
  push   %rcx
  mov    %r10d,%ecx
  push   0xb8(%rsp)
  push   0xb8(%rsp)
  mov    0xac(%rsp),%esi
  push   %rsi
  mov    %rbp,%rsi
  push   %r15
  push   %rax
  mov    %eax,0x188(%rsp)
  push   0xd0(%rsp)
  mov    0xf0(%rsp),%eax
  push   %rax
  push   0xd8(%rsp)
  movsd  %xmm7,0x198(%rsp)
  movsd  %xmm6,0x190(%rsp)
  movsd  %xmm5,0x188(%rsp)
  movsd  %xmm4,0x180(%rsp)
  movsd  %xmm3,0x178(%rsp)
  movsd  %xmm2,0x168(%rsp)
  movsd  %xmm1,0x160(%rsp)
  mov    %r10d,0x170(%rsp)
  mov    %edi,0x15c(%rsp)
  movsd  %xmm0,0x150(%rsp)
  call   <contr_hrr>
  movsd  0x150(%rsp),%xmm8
  movsd  0x178(%rsp),%xmm3
  movsd  %xmm0,0x148(%rsp)
  movapd %xmm8,%xmm7
  subsd  %xmm3,%xmm7
  movsd  %xmm7,0x150(%rsp)
  add    $0xd0,%rsp
  push   0x70(%rsp)
  push   0x70(%rsp)
  mov    0x98(%rsp),%ecx
  push   %rcx
  push   %r14
  push   %r13
  push   0x88(%rsp)
  movsd  0x120(%rsp),%xmm11
  sub    $0x18,%rsp
  mov    0xa4(%rsp),%esi
  movsd  %xmm11,0x10(%rsp)
  movsd  0x130(%rsp),%xmm12
  movsd  0x128(%rsp),%xmm10
  movsd  %xmm12,0x8(%rsp)
  movsd  %xmm10,(%rsp)
  push   %rsi
  push   0xa0(%rsp)
  push   0xa0(%rsp)
  mov    0xb8(%rsp),%r11d
  push   %r11
  mov    0xac(%rsp),%r8d
  push   %r8
  mov    0xb0(%rsp),%r9d
  mov    %ebx,%r8d
  push   %r9
  mov    %r12,%r9
  push   0xb0(%rsp)
  movsd  0x158(%rsp),%xmm9
  sub    $0x8,%rsp
  mov    0xbc(%rsp),%ecx
  movsd  %xmm9,(%rsp)
  push   %rcx
  push   0xb8(%rsp)
  push   0xb8(%rsp)
  mov    0xac(%rsp),%esi
  push   %rsi
  mov    %rbp,%rsi
  push   %r15
  mov    0x180(%rsp),%eax
  push   %rax
  push   0xd0(%rsp)
  mov    0xf0(%rsp),%eax
  push   %rax
  push   0xd8(%rsp)
  mov    0x170(%rsp),%ecx
  movsd  0x198(%rsp),%xmm7
  movsd  0x190(%rsp),%xmm6
  mov    0x1c8(%rsp),%edx
  movsd  0x188(%rsp),%xmm5
  movsd  0x180(%rsp),%xmm4
  movsd  0x168(%rsp),%xmm2
  movsd  0x160(%rsp),%xmm1
L86:
  mov    0x15c(%rsp),%edi
  movapd %xmm8,%xmm0
  call   <contr_hrr>
  mulsd  0x150(%rsp),%xmm0
  addsd  0x148(%rsp),%xmm0
  add    $0xd0,%rsp
  add    $0x108,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
  cs nopw 0x0(%rax,%rax,1)
L75:
  mov    0xc(%rsp),%ecx
  push   0x70(%rsp)
  push   0x70(%rsp)
  mov    0x98(%rsp),%edx
  sub    $0x1,%ecx
  push   %rdx
  push   %r14
  push   %r13
  push   0x88(%rsp)
  sub    $0x18,%rsp
  mov    0xa4(%rsp),%esi
  movsd  %xmm12,0x8(%rsp)
  movsd  %xmm12,0x138(%rsp)
  movsd  %xmm10,(%rsp)
  movsd  %xmm10,0x130(%rsp)
  movsd  %xmm11,0x10(%rsp)
  movsd  %xmm11,0x140(%rsp)
  push   %rsi
  push   0xa0(%rsp)
  push   0xa0(%rsp)
  mov    0xb8(%rsp),%r8d
  push   %r8
  mov    0xac(%rsp),%r9d
  lea    0x1(%rbx),%r8d
  push   %r9
  mov    0xb0(%rsp),%edx
  mov    %r12,%r9
  push   %rdx
  mov    %r11d,%edx
  push   0xb0(%rsp)
  sub    $0x8,%rsp
  movsd  %xmm9,(%rsp)
  movsd  %xmm9,0x168(%rsp)
  mov    0xbc(%rsp),%esi
  push   %rsi
  mov    %rbp,%rsi
  push   0xb8(%rsp)
  push   0xb8(%rsp)
  mov    %ecx,0xac(%rsp)
  push   %rcx
  mov    %r10d,%ecx
  push   %r15
  push   %rax
  mov    %eax,0x190(%rsp)
  push   0xd0(%rsp)
  mov    0xf0(%rsp),%eax
  push   %rax
  push   0xd8(%rsp)
  movsd  %xmm7,0x1a0(%rsp)
  movsd  %xmm6,0x198(%rsp)
  movsd  %xmm5,0x190(%rsp)
  movsd  %xmm4,0x188(%rsp)
  movsd  %xmm3,0x180(%rsp)
  movsd  %xmm2,0x150(%rsp)
  movsd  %xmm1,0x168(%rsp)
  mov    %r10d,0x178(%rsp)
  mov    %r11d,0x170(%rsp)
  mov    %edi,0x15c(%rsp)
  movsd  %xmm0,0x160(%rsp)
  call   <contr_hrr>
  movsd  0x150(%rsp),%xmm2
  movsd  0x190(%rsp),%xmm5
  movsd  %xmm0,0x148(%rsp)
  movapd %xmm2,%xmm1
  subsd  %xmm5,%xmm1
  movsd  %xmm1,0x150(%rsp)
  add    $0xd0,%rsp
  push   0x70(%rsp)
  push   0x70(%rsp)
  mov    0x98(%rsp),%edx
  push   %rdx
  push   %r14
  push   %r13
  push   0x88(%rsp)
  movsd  0x128(%rsp),%xmm11
  sub    $0x18,%rsp
  mov    0xa4(%rsp),%esi
  movsd  %xmm11,0x10(%rsp)
  movsd  0x138(%rsp),%xmm12
  movsd  0x130(%rsp),%xmm10
  movsd  %xmm12,0x8(%rsp)
  movsd  %xmm10,(%rsp)
  push   %rsi
  push   0xa0(%rsp)
  push   0xa0(%rsp)
  mov    0xb8(%rsp),%r8d
  push   %r8
  mov    0xac(%rsp),%r9d
  mov    %ebx,%r8d
  push   %r9
  mov    0xb0(%rsp),%edx
  mov    %r12,%r9
  push   %rdx
  push   0xb0(%rsp)
  movsd  0x160(%rsp),%xmm9
  sub    $0x8,%rsp
  mov    0xbc(%rsp),%esi
  movsd  %xmm9,(%rsp)
  push   %rsi
  mov    %rbp,%rsi
  push   0xb8(%rsp)
  push   0xb8(%rsp)
  mov    0xac(%rsp),%ecx
  push   %rcx
  push   %r15
  mov    0x188(%rsp),%eax
  push   %rax
  push   0xd0(%rsp)
  mov    0xf0(%rsp),%eax
  push   %rax
  push   0xd8(%rsp)
  mov    0x178(%rsp),%ecx
  movsd  0x1a0(%rsp),%xmm7
  movsd  0x198(%rsp),%xmm6
  mov    0x170(%rsp),%edx
  movsd  0x188(%rsp),%xmm4
  movsd  0x180(%rsp),%xmm3
L74:
  movsd  0x168(%rsp),%xmm1
L94:
  movsd  0x160(%rsp),%xmm8
  jmp    L86
  nopl   0x0(%rax)
L73:
  push   0x70(%rsp)
  sub    $0x1,%edx
  push   0x70(%rsp)
  mov    %edx,0x98(%rsp)
  push   %rdx
  push   %r14
  push   %r13
  push   0x88(%rsp)
  sub    $0x18,%rsp
  mov    0xa4(%rsp),%ecx
  movsd  %xmm12,0x8(%rsp)
  movsd  %xmm12,0x138(%rsp)
  movsd  %xmm10,(%rsp)
  movsd  %xmm10,0x130(%rsp)
  movsd  %xmm11,0x10(%rsp)
  movsd  %xmm11,0x140(%rsp)
  push   %rcx
  push   0xa0(%rsp)
  push   0xa0(%rsp)
  mov    0xb8(%rsp),%esi
  lea    0x1(%rsi),%edx
  push   %rdx
  mov    0xac(%rsp),%r8d
  mov    %r11d,%edx
  push   %r8
  mov    0xb0(%rsp),%r9d
  mov    %ebx,%r8d
  push   %r9
  mov    %r12,%r9
  push   0xb0(%rsp)
  sub    $0x8,%rsp
  movsd  %xmm9,(%rsp)
  movsd  %xmm9,0x108(%rsp)
  mov    0xbc(%rsp),%ecx
  push   %rcx
  mov    %r10d,%ecx
  push   0xb8(%rsp)
  push   0xb8(%rsp)
  mov    0xac(%rsp),%esi
  push   %rsi
  mov    %rbp,%rsi
  push   %r15
  push   %rax
  mov    %eax,0x198(%rsp)
  push   0xd0(%rsp)
  mov    0xf0(%rsp),%eax
  push   %rax
  push   0xd8(%rsp)
  movsd  %xmm7,0x1a8(%rsp)
  movsd  %xmm5,0x198(%rsp)
  mov    %r10d,0x180(%rsp)
  mov    %r11d,0x178(%rsp)
  mov    %edi,0x15c(%rsp)
  movsd  %xmm6,0x1a0(%rsp)
  movsd  %xmm4,0x190(%rsp)
  movsd  %xmm3,0x188(%rsp)
  movsd  %xmm2,0x170(%rsp)
  movsd  %xmm1,0x168(%rsp)
  movsd  %xmm0,0x160(%rsp)
  call   <contr_hrr>
  movsd  0x150(%rsp),%xmm9
  movsd  0x1c8(%rsp),%xmm11
  movsd  %xmm0,0x148(%rsp)
  movapd %xmm9,%xmm5
  subsd  %xmm11,%xmm5
  movsd  %xmm5,0x150(%rsp)
  add    $0xd0,%rsp
  push   0x70(%rsp)
  push   0x70(%rsp)
  mov    0x98(%rsp),%edx
  push   %rdx
  push   %r14
  push   %r13
  push   0x88(%rsp)
  sub    $0x18,%rsp
  mov    0xa4(%rsp),%ecx
  movsd  %xmm11,0x10(%rsp)
  movsd  0x138(%rsp),%xmm12
  movsd  0x130(%rsp),%xmm10
  movsd  %xmm12,0x8(%rsp)
  movsd  %xmm10,(%rsp)
  push   %rcx
  push   0xa0(%rsp)
  push   0xa0(%rsp)
  mov    0xb8(%rsp),%esi
  push   %rsi
  mov    0xac(%rsp),%r8d
  push   %r8
  mov    0xb0(%rsp),%r9d
  push   %r9
  push   0xb0(%rsp)
  sub    $0x8,%rsp
  mov    0xbc(%rsp),%ecx
  movsd  %xmm9,(%rsp)
  push   %rcx
  push   0xb8(%rsp)
  push   0xb8(%rsp)
  mov    0xac(%rsp),%esi
  push   %rsi
  push   %r15
  mov    0x190(%rsp),%eax
  push   %rax
  push   0xd0(%rsp)
  mov    0xf0(%rsp),%eax
  push   %rax
  push   0xd8(%rsp)
  movsd  0x1a8(%rsp),%xmm7
L102:
  movsd  0x1a0(%rsp),%xmm6
L60:
  mov    0x180(%rsp),%ecx
  mov    %r12,%r9
  mov    %ebx,%r8d
  mov    %rbp,%rsi
  movsd  0x198(%rsp),%xmm5
  mov    0x178(%rsp),%edx
  movsd  0x190(%rsp),%xmm4
  movsd  0x188(%rsp),%xmm3
  movsd  0x170(%rsp),%xmm2
  jmp    L74
  cs nopw 0x0(%rax,%rax,1)
L25:
  mov    %r10d,0xf8(%rsp)
  lea    0x1(%r10),%ecx
  sub    $0x1,%r15d
  push   0x70(%rsp)
  push   0x70(%rsp)
  mov    0x98(%rsp),%edx
  push   %rdx
  push   %r14
  push   %r13
  push   0x88(%rsp)
  sub    $0x18,%rsp
  mov    0xa4(%rsp),%esi
  movsd  %xmm12,0x8(%rsp)
  movsd  %xmm12,0x130(%rsp)
  movsd  %xmm10,(%rsp)
  movsd  %xmm10,0x128(%rsp)
  movsd  %xmm11,0x10(%rsp)
  movsd  %xmm11,0x138(%rsp)
  push   %rsi
  push   0xa0(%rsp)
  push   0xa0(%rsp)
  mov    0xb8(%rsp),%r10d
  push   %r10
  mov    0xac(%rsp),%r8d
  push   %r8
  mov    0xb0(%rsp),%r9d
  mov    %ebx,%r8d
  push   %r9
  mov    %r12,%r9
  push   0xb0(%rsp)
  sub    $0x8,%rsp
  movsd  %xmm9,(%rsp)
  movsd  %xmm9,0x160(%rsp)
  mov    0xbc(%rsp),%edx
  push   %rdx
  mov    %r11d,%edx
  push   0xb8(%rsp)
  push   0xb8(%rsp)
  mov    0xac(%rsp),%esi
  push   %rsi
  mov    %rbp,%rsi
  push   %r15
  push   %rax
  mov    %eax,0x188(%rsp)
  push   0xd0(%rsp)
  mov    0xf0(%rsp),%eax
  push   %rax
  push   0xd8(%rsp)
  movsd  %xmm7,0x198(%rsp)
  movsd  %xmm6,0x190(%rsp)
  movsd  %xmm5,0x188(%rsp)
  movsd  %xmm4,0x180(%rsp)
  movsd  %xmm3,0x178(%rsp)
  movsd  %xmm2,0x168(%rsp)
  movsd  %xmm1,0x150(%rsp)
  mov    %r11d,0x170(%rsp)
  mov    %edi,0x15c(%rsp)
  movsd  %xmm0,0x160(%rsp)
  call   <contr_hrr>
  movsd  0x150(%rsp),%xmm1
  movsd  0x180(%rsp),%xmm4
  movsd  %xmm0,0x148(%rsp)
  movapd %xmm1,%xmm6
  subsd  %xmm4,%xmm6
  movsd  %xmm6,0x150(%rsp)
  add    $0xd0,%rsp
  push   0x70(%rsp)
  push   0x70(%rsp)
  mov    0x98(%rsp),%edx
  push   %rdx
  push   %r14
  push   %r13
  push   0x88(%rsp)
  movsd  0x120(%rsp),%xmm11
  sub    $0x18,%rsp
  mov    0xa4(%rsp),%esi
  movsd  %xmm11,0x10(%rsp)
  movsd  0x130(%rsp),%xmm12
  movsd  0x128(%rsp),%xmm10
  movsd  %xmm12,0x8(%rsp)
  movsd  %xmm10,(%rsp)
  push   %rsi
  push   0xa0(%rsp)
  push   0xa0(%rsp)
  mov    0xb8(%rsp),%r10d
  push   %r10
  mov    0xac(%rsp),%r8d
  push   %r8
  mov    0xb0(%rsp),%r9d
  mov    %ebx,%r8d
  push   %r9
  mov    %r12,%r9
  push   0xb0(%rsp)
  movsd  0x158(%rsp),%xmm9
  sub    $0x8,%rsp
  mov    0xbc(%rsp),%edx
  movsd  %xmm9,(%rsp)
  push   %rdx
  push   0xb8(%rsp)
  push   0xb8(%rsp)
  mov    0xac(%rsp),%esi
  push   %rsi
  mov    %rbp,%rsi
  push   %r15
  mov    0x180(%rsp),%eax
  push   %rax
  push   0xd0(%rsp)
  mov    0xf0(%rsp),%eax
  push   %rax
  push   0xd8(%rsp)
  mov    0x1c8(%rsp),%ecx
  movsd  0x198(%rsp),%xmm7
  movsd  0x190(%rsp),%xmm6
  mov    0x170(%rsp),%edx
  movsd  0x188(%rsp),%xmm5
  movsd  0x178(%rsp),%xmm3
  movsd  0x168(%rsp),%xmm2
  jmp    L94
L83:
  push   0x70(%rsp)
  sub    $0x1,%r13d
  push   0x70(%rsp)
  mov    0x98(%rsp),%ecx
  push   %rcx
  push   %r14
  push   %r13
  push   0x88(%rsp)
  sub    $0x18,%rsp
  mov    0xa4(%rsp),%edx
  movsd  %xmm12,0x8(%rsp)
  movsd  %xmm12,0x138(%rsp)
  movsd  %xmm11,0x10(%rsp)
  movsd  %xmm11,0x140(%rsp)
  movsd  %xmm10,(%rsp)
  movsd  %xmm10,0x130(%rsp)
  push   %rdx
  push   0xa0(%rsp)
  push   0xa0(%rsp)
  mov    0xb8(%rsp),%esi
  push   %rsi
  mov    0xac(%rsp),%r8d
  mov    %rbp,%rsi
  push   %r8
  mov    0xb0(%rsp),%r9d
  mov    %ebx,%r8d
  lea    0x1(%r9),%edx
  mov    %r12,%r9
  push   %rdx
  push   0xb0(%rsp)
  sub    $0x8,%rsp
  movsd  %xmm9,(%rsp)
  movsd  %xmm9,0x168(%rsp)
  mov    0xbc(%rsp),%ecx
  push   %rcx
  mov    %r10d,%ecx
  push   0xb8(%rsp)
  push   0xb8(%rsp)
  mov    0xac(%rsp),%edx
  push   %rdx
  mov    %r11d,%edx
  push   %r15
  push   %rax
  mov    %eax,0x190(%rsp)
  push   0xd0(%rsp)
  mov    0xf0(%rsp),%eax
  push   %rax
  push   0xd8(%rsp)
  movsd  %xmm7,0x1a0(%rsp)
  movsd  %xmm6,0x150(%rsp)
  movsd  %xmm4,0x190(%rsp)
  mov    %r10d,0x180(%rsp)
  mov    %r11d,0x178(%rsp)
  mov    %edi,0x15c(%rsp)
  movsd  %xmm5,0x198(%rsp)
  movsd  %xmm3,0x188(%rsp)
  movsd  %xmm2,0x170(%rsp)
  movsd  %xmm1,0x168(%rsp)
  movsd  %xmm0,0x160(%rsp)
  call   <contr_hrr>
  movsd  0x150(%rsp),%xmm6
  movsd  0x1b8(%rsp),%xmm10
  movsd  %xmm0,0x148(%rsp)
  movapd %xmm6,%xmm4
  subsd  %xmm10,%xmm4
  movsd  %xmm4,0x150(%rsp)
  add    $0xd0,%rsp
  push   0x70(%rsp)
  push   0x70(%rsp)
  mov    0x98(%rsp),%ecx
  push   %rcx
  push   %r14
  push   %r13
  push   0x88(%rsp)
  movsd  0x128(%rsp),%xmm11
  sub    $0x18,%rsp
  movsd  0x138(%rsp),%xmm12
  mov    0xa4(%rsp),%edx
  movsd  %xmm11,0x10(%rsp)
  movsd  %xmm10,(%rsp)
  movsd  %xmm12,0x8(%rsp)
  push   %rdx
  push   0xa0(%rsp)
  push   0xa0(%rsp)
  mov    0xb8(%rsp),%esi
  push   %rsi
  mov    0xac(%rsp),%r8d
  push   %r8
  mov    0xb0(%rsp),%r9d
  push   %r9
  push   0xb0(%rsp)
  movsd  0x160(%rsp),%xmm9
  sub    $0x8,%rsp
  mov    0xbc(%rsp),%ecx
  movsd  %xmm9,(%rsp)
  push   %rcx
  push   0xb8(%rsp)
  push   0xb8(%rsp)
  mov    0xac(%rsp),%edx
  push   %rdx
  push   %r15
  mov    0x188(%rsp),%eax
  push   %rax
  push   0xd0(%rsp)
  mov    0xf0(%rsp),%eax
  push   %rax
  push   0xd8(%rsp)
  movsd  0x1a0(%rsp),%xmm7
  jmp    L60
  nopl   0x0(%rax,%rax,1)
L40:
  push   0x70(%rsp)
  sub    $0x1,%r14d
  push   0x70(%rsp)
  mov    0x98(%rsp),%ecx
  push   %rcx
  push   %r14
  push   %r13
  push   0x88(%rsp)
  sub    $0x18,%rsp
  mov    0xa4(%rsp),%edx
  movsd  %xmm10,(%rsp)
  movsd  %xmm10,0x130(%rsp)
  movsd  %xmm11,0x10(%rsp)
  movsd  %xmm11,0x140(%rsp)
  movsd  %xmm12,0x8(%rsp)
  movsd  %xmm12,0x138(%rsp)
  push   %rdx
  push   0xa0(%rsp)
  push   0xa0(%rsp)
  mov    0xb8(%rsp),%esi
  push   %rsi
  mov    0xac(%rsp),%r8d
  mov    %rbp,%rsi
  lea    0x1(%r8),%edx
  mov    %ebx,%r8d
  push   %rdx
  mov    0xb0(%rsp),%r9d
  push   %r9
  mov    %r12,%r9
  push   0xb0(%rsp)
  sub    $0x8,%rsp
  movsd  %xmm9,(%rsp)
  movsd  %xmm9,0x168(%rsp)
  mov    0xbc(%rsp),%ecx
  push   %rcx
  mov    %r10d,%ecx
  push   0xb8(%rsp)
  push   0xb8(%rsp)
  mov    0xac(%rsp),%edx
  push   %rdx
  mov    %r11d,%edx
  push   %r15
  push   %rax
  mov    %eax,0x190(%rsp)
  push   0xd0(%rsp)
  mov    0xf0(%rsp),%eax
  push   %rax
  push   0xd8(%rsp)
  movsd  %xmm7,0x150(%rsp)
  movsd  %xmm3,0x188(%rsp)
  mov    %r10d,0x180(%rsp)
  mov    %r11d,0x178(%rsp)
  mov    %edi,0x15c(%rsp)
  movsd  %xmm6,0x1a0(%rsp)
  movsd  %xmm5,0x198(%rsp)
  movsd  %xmm4,0x190(%rsp)
  movsd  %xmm2,0x170(%rsp)
  movsd  %xmm1,0x168(%rsp)
  movsd  %xmm0,0x160(%rsp)
  call   <contr_hrr>
  movsd  0x150(%rsp),%xmm7
  movsd  0x1c0(%rsp),%xmm12
  movsd  %xmm0,0x148(%rsp)
  movapd %xmm7,%xmm3
  subsd  %xmm12,%xmm3
  movsd  %xmm3,0x150(%rsp)
  add    $0xd0,%rsp
  push   0x70(%rsp)
  push   0x70(%rsp)
  mov    0x98(%rsp),%ecx
  push   %rcx
  push   %r14
  push   %r13
  push   0x88(%rsp)
  movsd  0x128(%rsp),%xmm11
  sub    $0x18,%rsp
  mov    0xa4(%rsp),%edx
  movsd  %xmm11,0x10(%rsp)
  movsd  0x130(%rsp),%xmm10
  movsd  %xmm12,0x8(%rsp)
  movsd  %xmm10,(%rsp)
  push   %rdx
  push   0xa0(%rsp)
  push   0xa0(%rsp)
  mov    0xb8(%rsp),%esi
  push   %rsi
  mov    0xac(%rsp),%r8d
  push   %r8
  mov    0xb0(%rsp),%r9d
  push   %r9
  push   0xb0(%rsp)
  movsd  0x160(%rsp),%xmm9
  sub    $0x8,%rsp
  mov    0xbc(%rsp),%ecx
  movsd  %xmm9,(%rsp)
  push   %rcx
  push   0xb8(%rsp)
  push   0xb8(%rsp)
  mov    0xac(%rsp),%edx
  push   %rdx
  push   %r15
  mov    0x188(%rsp),%eax
  push   %rax
  push   0xd0(%rsp)
  mov    0xf0(%rsp),%eax
  push   %rax
  push   0xd8(%rsp)
  jmp    L102
```

assistant: ```c
double contr_hrr(int lena, double xa, double ya, double za, double *anorms, int la, int ma, int na, double *aexps, double *acoefs, int lenb, double xb, double yb, double zb, double *bnorms, int lb, int mb, int nb, double *bexps, double *bcoefs, int lenc, double xc, double yc, double zc, double *cnorms, int lc, int mc, int nc, double *cexps, double *ccoefs, int lend, double xd, double yd, double zd, double *dnorms, int ld, int md, int nd, double *dexps, double *dcoefs) {
  if (lb > 0) {
    return contr_hrr(lena, xa, ya, za, anorms, la + 1, ma, na, aexps, acoefs, lenb, xb, yb, zb, bnorms, lb - 1, mb, nb, bexps, bcoefs, lenc, xc, yc, zc, cnorms, lc, mc, nc, cexps, ccoefs, lend, xd, yd, zd, dnorms, ld, md, nd, dexps, dcoefs) + (xa - xb) * contr_hrr(lena, xa, ya, za, anorms, la, ma, na, aexps, acoefs, lenb, xb, yb, zb, bnorms, lb - 1, mb, nb, bexps, bcoefs, lenc, xc, yc, zc, cnorms, lc, mc, nc, cexps, ccoefs, lend, xd, yd, zd, dnorms, ld, md, nd, dexps, dcoefs);
  } else if (mb > 0) {
    return contr_hrr(lena, xa, ya, za, anorms, la, ma + 1, na, aexps, acoefs, lenb, xb, yb, zb, bnorms, lb, mb - 1, nb, bexps, bcoefs, lenc, xc, yc, zc, cnorms, lc, mc, nc, cexps, ccoefs, lend, xd, yd, zd, dnorms, ld, md, nd, dexps, dcoefs) + (ya - yb) * contr_hrr(lena, xa, ya, za, anorms, la, ma, na, aexps, acoefs, lenb, xb, yb, zb, bnorms, lb, mb - 1, nb, bexps, bcoefs, lenc, xc, yc, zc, cnorms, lc, mc, nc, cexps, ccoefs, lend, xd, yd, zd, dnorms, ld, md, nd, dexps, dcoefs);
  } else if (nb > 0) {
    return contr_hrr(lena, xa, ya, za, anorms, la, ma, na + 1, aexps, acoefs, lenb, xb, yb, zb, bnorms, lb, mb, nb - 1, bexps, bcoefs, lenc, xc, yc, zc, cnorms, lc, mc, nc, cexps, ccoefs, lend, xd, yd, zd, dnorms, ld, md, nd, dexps, dcoefs) + (za - zb) * contr_hrr(lena, xa, ya, za, anorms, la, ma, na, aexps, acoefs, lenb, xb, yb, zb, bnorms, lb, mb, nb - 1, bexps, bcoefs, lenc, xc, yc, zc, cnorms, lc, mc, nc, cexps, ccoefs, lend, xd, yd, zd, dnorms, ld, md, nd, dexps, dcoefs);
  } else if (ld > 0) {
    return contr_hrr(lena, xa, ya, za, anorms, la, ma, na, aexps, acoefs, lenb, xb, yb, zb, bnorms, lb, mb, nb, bexps, bcoefs, lenc, xc, yc, zc, cnorms, lc + 1, mc, nc, cexps, ccoefs, lend, xd, yd, zd, dnorms, ld - 1, md, nd, dexps, dcoefs) + (xc - xd) * contr_hrr(lena, xa, ya, za, anorms, la, ma, na, aexps, acoefs, lenb, xb, yb, zb, bnorms, lb, mb, nb, bexps, bcoefs, lenc, xc, yc, zc, cnorms, lc, mc, nc, cexps, ccoefs, lend, xd, yd, zd, dnorms, ld - 1, md, nd, dexps, dcoefs);
  } else if (md > 0) {
    return contr_hrr(lena, xa, ya, za, anorms, la, ma, na, aexps, acoefs, lenb, xb, yb, zb, bnorms, lb, mb, nb, bexps, bcoefs, lenc, xc, yc, zc, cnorms, lc, mc + 1, nc, cexps, ccoefs, lend, xd, yd, zd, dnorms, ld, md - 1, nd, dexps, dcoefs) + (yc - yd) * contr_hrr(lena, xa, ya, za, anorms, la, ma, na, aexps, acoefs, lenb, xb, yb, zb, bnorms, lb, mb, nb, bexps, bcoefs, lenc, xc, yc, zc, cnorms, lc, mc, nc, cexps, ccoefs, lend, xd, yd, zd, dnorms, ld, md - 1, nd, dexps, dcoefs);
  } else if (nd > 0) {
    return contr_hrr(lena, xa, ya, za, anorms, la, ma, na, aexps, acoefs, lenb, xb, yb, zb, bnorms, lb, mb, nb, bexps, bcoefs, lenc, xc, yc, zc, cnorms, lc, mc, nc + 1, cexps, ccoefs, lend, xd, yd, zd, dnorms, ld, md, nd - 1, dexps, dcoefs) + (zc - zd) * contr_hrr(lena, xa, ya, za, anorms, la, ma, na, aexps, acoefs, lenb, xb, yb, zb, bnorms, lb, mb, nb, bexps, bcoefs, lenc, xc, yc, zc, cnorms, lc, mc, nc, cexps, ccoefs, lend, xd, yd, zd, dnorms, ld, md, nd - 1, dexps, dcoefs);
  }
  return contr_vrr(lena, xa, ya, za, anorms, la, ma, na, aexps, acoefs, lenb, xb, yb, zb, bnorms, bexps, bcoefs, lenc, xc, yc, zc, cnorms, lc, mc, nc, cexps, ccoefs, lend, xd, yd, zd, dnorms, dexps, dcoefs);
}
```