user: What is the c source code of the assembly code below:

```asm
<tce_sortacc_6_scalar>:
  endbr64
  push   %r15
  mov    %edx,%r10d
  mov    %ecx,%eax
  mov    %r8d,%edx
  push   %r14
  mov    %r9d,%ecx
  mov    %rdi,%r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0x1e8,%rsp
  mov    %rsi,0x80(%rsp)
  mov    0x220(%rsp),%esi
  mov    0x228(%rsp),%edi
  mov    0x258(%rsp),%r9d
  mov    %fs:0x28,%r8
  mov    %r8,0x1d8(%rsp)
  xor    %r8d,%r8d
  mov    %eax,0x1a4(%rsp)
  imul   %edx,%eax
  mov    %esi,0x1b0(%rsp)
  mov    %edi,0x1b4(%rsp)
  imul   %ecx,%eax
  mov    %edi,0x1d0(%rsp)
  mov    %edx,0x1a8(%rsp)
  mov    %ecx,0x1ac(%rsp)
  imul   %esi,%eax
  mov    %r10d,0x1a0(%rsp)
  movl   $0x1,0x1d4(%rsp)
  imul   %edi,%eax
  mov    %eax,0x1c0(%rsp)
  mov    %edx,%eax
  imul   %ecx,%eax
  imul   %esi,%eax
  imul   %edi,%eax
  mov    %eax,0x1c4(%rsp)
  mov    %ecx,%eax
  movslq 0x240(%rsp),%rcx
  imul   %esi,%eax
  imul   %edi,%esi
  imul   %edi,%eax
  movslq 0x230(%rsp),%rdi
  mov    %esi,0x1cc(%rsp)
  movslq 0x238(%rsp),%rsi
  mov    %eax,0x1c8(%rsp)
  mov    0x1a0(%rsp,%rdi,4),%eax
  mov    0x1a0(%rsp,%rsi,4),%ebp
  mov    %eax,(%rsp)
  movslq %r9d,%rax
  mov    %ebp,0x4(%rsp)
  mov    0x1a0(%rsp,%rcx,4),%r10d
  mov    0x1a0(%rsp,%rax,4),%r15d
  mov    0x1c0(%rsp,%rax,4),%eax
  movslq 0x248(%rsp),%r8
  movslq 0x250(%rsp),%rdx
  mov    %r10d,0x8(%rsp)
  mov    %eax,0x3c(%rsp)
  mov    %ebp,%eax
  mov    0x1c0(%rsp,%rdi,4),%edi
  imul   %r10d,%eax
  mov    0x1a0(%rsp,%r8,4),%r11d
  mov    0x1a0(%rsp,%rdx,4),%ebx
  mov    %edi,0x68(%rsp)
  mov    0x1c0(%rsp,%rsi,4),%edi
  imul   %r11d,%r10d
  mov    %r11d,0xc(%rsp)
  imul   %r11d,%eax
  mov    %edi,0x78(%rsp)
  mov    0x1c0(%rsp,%rcx,4),%edi
  imul   %ebx,%r11d
  mov    %ebx,0x38(%rsp)
  mov    %edi,0x58(%rsp)
  mov    0x1c0(%rsp,%r8,4),%edi
  imul   %ebx,%eax
  mov    %edi,0x5c(%rsp)
  mov    0x1c0(%rsp,%rdx,4),%edi
  imul   %r15d,%eax
  mov    %edi,0x70(%rsp)
  mov    %eax,0x6c(%rsp)
  mov    %r10d,%eax
  imul   %ebx,%eax
  imul   %r15d,%ebx
  imul   %r15d,%eax
  mov    %ebx,0x64(%rsp)
  mov    %eax,0x7c(%rsp)
  mov    %r11d,%eax
  imul   %r15d,%eax
  mov    %eax,0x60(%rsp)
  cmp    $0x5,%r9d
  je     L786
  cmpl   $0x5,0x250(%rsp)
  je     L285
L559:
  cmpl   $0x5,0x248(%rsp)
  je     L501
L649:
  cmpl   $0x5,0x240(%rsp)
  je     L24
L196:
  cmpl   $0x5,0x238(%rsp)
  je     L734
L259:
  cmpl   $0x5,0x230(%rsp)
  je     L3
L450:
  mov    0x1d8(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L585
  add    $0x1e8,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
L786:
  mov    (%rsp),%eax
  test   %eax,%eax
  jle    L1179
  movslq 0x68(%rsp),%rax
  movslq 0x58(%rsp),%rsi
  movslq %ebx,%r9
  movslq %r15d,%r10
  movslq 0x60(%rsp),%rdi
  movslq 0x5c(%rsp),%r8
  mov    %r14,0x20(%rsp)
  mov    %rax,0x40(%rsp)
  shl    $0x3,%rax
  movslq 0x70(%rsp),%r11
  mov    %rax,0xc0(%rsp)
  movslq 0x6c(%rsp),%rax
  movl   $0x0,0x10(%rsp)
  mov    %rax,0x50(%rsp)
  shl    $0x3,%rax
  mov    %rax,0xc8(%rsp)
  lea    -0x1(%r15),%eax
  lea    0x0(,%rax,8),%rdx
  mov    0x80(%rsp),%rax
  mov    %r14,0xd8(%rsp)
  mov    %r10,0xe0(%rsp)
  lea    0x8(%rax,%rdx,1),%rax
  mov    %rsi,0xe8(%rsp)
  mov    %rax,0x28(%rsp)
  movslq 0x78(%rsp),%rax
  mov    %r8,0xf0(%rsp)
  shl    $0x3,%rax
  mov    %r11,0xf8(%rsp)
  mov    %rax,0xb0(%rsp)
  movslq 0x7c(%rsp),%rax
  shl    $0x3,%rax
  mov    %rax,0xb8(%rsp)
  lea    0x0(,%rsi,8),%rax
  mov    %rax,0xa0(%rsp)
  lea    0x0(,%rdi,8),%rax
  mov    %rax,0xa8(%rsp)
  lea    0x0(,%r8,8),%rax
  mov    %rax,0x90(%rsp)
  lea    0x0(,%r9,8),%rax
  mov    %rax,0x98(%rsp)
  lea    0x0(,%r11,8),%rax
  mov    %rax,0x30(%rsp)
  lea    0x0(,%r10,8),%rax
  mov    %rax,0x88(%rsp)
  movslq 0x3c(%rsp),%rax
  mov    %rax,0x48(%rsp)
  lea    0x0(,%rax,8),%rbx
  mov    $0xfffffffffffffff8,%rax
  sub    %rdx,%rax
  mov    %rax,0xd0(%rsp)
  mov    %rdi,0x100(%rsp)
  mov    %r9,0x108(%rsp)
L1164:
  mov    0x28(%rsp),%rax
  mov    0x20(%rsp),%r9
  xor    %edi,%edi
  mov    %rax,0x18(%rsp)
  mov    0x4(%rsp),%eax
  test   %eax,%eax
  jle    L173
L435:
  mov    0x8(%rsp),%eax
  mov    0x18(%rsp),%r10
  mov    %r9,%r8
  xor    %esi,%esi
  test   %eax,%eax
  jle    L394
L721:
  mov    0xc(%rsp),%eax
  mov    %r10,%r12
  mov    %r8,%rbp
  xor    %r11d,%r11d
  test   %eax,%eax
  jle    L397
L191:
  mov    0x38(%rsp),%eax
  mov    %r12,%rcx
  mov    %rbp,%r14
  xor    %r13d,%r13d
  test   %eax,%eax
  jle    L563
L752:
  mov    0xd0(%rsp),%rax
  mov    %r14,%rdx
  add    %rcx,%rax
  test   %r15d,%r15d
  jle    L1112
  nopw   0x0(%rax,%rax,1)
L839:
  movsd  (%rdx),%xmm1
  add    $0x8,%rax
  add    %rbx,%rdx
  mulsd  %xmm0,%xmm1
  addsd  -0x8(%rax),%xmm1
  movsd  %xmm1,-0x8(%rax)
  cmp    %rcx,%rax
  jne    L839
L1112:
  add    $0x1,%r13d
  add    0x30(%rsp),%r14
  add    0x88(%rsp),%rcx
  cmp    %r13d,0x38(%rsp)
  jne    L752
L563:
  add    $0x1,%r11d
  add    0x90(%rsp),%rbp
  add    0x98(%rsp),%r12
  cmp    %r11d,0xc(%rsp)
  jne    L191
L397:
  add    $0x1,%esi
  add    0xa0(%rsp),%r8
  add    0xa8(%rsp),%r10
  cmp    %esi,0x8(%rsp)
  jne    L721
L394:
  mov    0xb8(%rsp),%rsi
  add    $0x1,%edi
  add    %rsi,0x18(%rsp)
  add    0xb0(%rsp),%r9
  cmp    %edi,0x4(%rsp)
  jne    L435
L173:
  mov    0xc0(%rsp),%rsi
  addl   $0x1,0x10(%rsp)
  add    %rsi,0x20(%rsp)
  mov    0x10(%rsp),%eax
  mov    0xc8(%rsp),%rsi
  add    %rsi,0x28(%rsp)
  cmp    %eax,(%rsp)
  jne    L1164
  cmpl   $0x5,0x250(%rsp)
  mov    0xd8(%rsp),%r14
  mov    0xe0(%rsp),%r10
  mov    0xe8(%rsp),%rsi
  mov    0xf0(%rsp),%r8
  mov    0xf8(%rsp),%r11
  mov    0x100(%rsp),%rdi
  mov    0x108(%rsp),%r9
  je     L717
  cmpl   $0x5,0x248(%rsp)
  je     L452
  cmpl   $0x5,0x240(%rsp)
  jne    L196
  jmp    L566
L285:
  mov    (%rsp),%ebp
  test   %ebp,%ebp
  jle    L917
  movslq 0x68(%rsp),%rax
  movslq 0x70(%rsp),%r11
  movslq %r15d,%r10
  mov    %rax,0x40(%rsp)
  movslq 0x6c(%rsp),%rax
  mov    %rax,0x50(%rsp)
  movslq 0x3c(%rsp),%rax
  mov    %rax,0x48(%rsp)
L717:
  mov    0x70(%rsp),%eax
  movq   $0x0,0x158(%rsp)
  lea    0x0(,%r11,8),%rbp
  lea    0x0(,%r10,8),%r13
  movl   $0x0,0x160(%rsp)
  shl    $0x3,%eax
  mov    %r14,0x18(%rsp)
  mov    %r15d,%r14d
  mov    %eax,0x168(%rsp)
  lea    0x0(,%r15,8),%eax
  mov    %eax,0x16c(%rsp)
  mov    0x3c(%rsp),%eax
  movq   $0x0,0x150(%rsp)
  movl   $0x0,0x14c(%rsp)
  shl    $0x3,%eax
  mov    %eax,0x10(%rsp)
  mov    0x48(%rsp),%rax
  movl   $0x0,0x148(%rsp)
  lea    0x0(,%rax,8),%r12
  mov    0x80(%rsp),%rax
  movl   $0x0,0x144(%rsp)
  movl   $0x0,0x88(%rsp)
  mov    %r12,%r15
  mov    %rbp,%r12
  add    $0x8,%rax
  mov    %rax,0x30(%rsp)
L1074:
  mov    0x4(%rsp),%ebx
  test   %ebx,%ebx
  jle    L958
  movl   $0x0,0x90(%rsp)
  movslq 0x78(%rsp),%rax
  mov    %rax,0x170(%rsp)
  movslq 0x7c(%rsp),%rax
  mov    %rax,0x178(%rsp)
  mov    0x158(%rsp),%rax
  mov    %rax,0x138(%rsp)
  mov    0x160(%rsp),%eax
  mov    %eax,0x140(%rsp)
  mov    0x150(%rsp),%rax
  mov    %rax,0x130(%rsp)
  mov    0x14c(%rsp),%eax
  mov    %eax,0x128(%rsp)
  mov    0x148(%rsp),%eax
  mov    %eax,0x120(%rsp)
  mov    0x144(%rsp),%eax
  mov    %eax,0x118(%rsp)
  movslq 0x5c(%rsp),%rax
  mov    %rax,0x188(%rsp)
L493:
  mov    0x8(%rsp),%r11d
  test   %r11d,%r11d
  jle    L377
  movl   $0x0,0x98(%rsp)
  movslq 0x58(%rsp),%rax
  mov    %rax,0x198(%rsp)
  movslq 0x60(%rsp),%rax
  mov    %rax,0x190(%rsp)
  mov    0x138(%rsp),%rax
  mov    %rax,0x110(%rsp)
  mov    0x140(%rsp),%eax
  mov    %eax,0x108(%rsp)
  mov    0x130(%rsp),%rax
  mov    %rax,0x100(%rsp)
  mov    0x128(%rsp),%eax
  mov    %eax,0xf8(%rsp)
  mov    0x120(%rsp),%eax
  mov    %eax,0xf0(%rsp)
  mov    0x118(%rsp),%eax
  mov    %eax,0xe8(%rsp)
  movslq 0x64(%rsp),%rax
  mov    %rax,0x180(%rsp)
L218:
  mov    0xc(%rsp),%r10d
  test   %r10d,%r10d
  jle    L737
  mov    0x110(%rsp),%rax
  mov    %r12,%rbp
  movl   $0x0,0xa0(%rsp)
  mov    %rax,0xe0(%rsp)
  mov    0x108(%rsp),%eax
  mov    %eax,0xd8(%rsp)
  mov    0x100(%rsp),%rax
  mov    %rax,0xd0(%rsp)
  mov    0xf8(%rsp),%eax
  mov    %eax,0xc8(%rsp)
  mov    0xf0(%rsp),%eax
  mov    %eax,0xc0(%rsp)
  mov    0xe8(%rsp),%eax
  mov    %eax,0xb8(%rsp)
L470:
  mov    0xc0(%rsp),%eax
  mov    0x38(%rsp),%r9d
  xor    %r12d,%r12d
  mov    %eax,0xb0(%rsp)
  mov    0xb8(%rsp),%eax
  mov    %eax,0xa8(%rsp)
  test   %r9d,%r9d
  jle    L652
L927:
  test   %r14d,%r14d
  jle    L63
  mov    0x38(%rsp),%ebx
  lea    0x7(%r12),%eax
  lea    0x8(%r12),%r11d
  mov    %r11d,0x164(%rsp)
  cmp    %eax,%ebx
  mov    0xa8(%rsp),%eax
  cmovle %ebx,%r11d
  add    0xc8(%rsp),%eax
  xor    %ebx,%ebx
  xor    %r8d,%r8d
  cltq
  add    0xd0(%rsp),%rax
  mov    %rax,0x20(%rsp)
  mov    0xb0(%rsp),%eax
  add    0xd8(%rsp),%eax
  cltq
  add    0xe0(%rsp),%rax
  mov    %rax,0x28(%rsp)
  xchg   %ax,%ax
L1047:
  cmp    %r12d,%r11d
  jle    L251
  lea    0x7(%r8),%eax
  lea    0x8(%r8),%r10d
  mov    0x18(%rsp),%rdi
  mov    0x30(%rsp),%rsi
  cmp    %eax,%r14d
  movslq %ebx,%rax
  cmovle %r14d,%r10d
  add    0x20(%rsp),%rax
  lea    (%rdi,%rax,8),%rdi
  mov    %r10d,%eax
  sub    %r8d,%eax
  lea    -0x1(%rax),%r9d
  mov    0x28(%rsp),%rax
  add    %r8,%rax
  add    %r9,%rax
  not    %r9
  lea    (%rsi,%rax,8),%rcx
  shl    $0x3,%r9
  mov    %r12d,%esi
  nopl   0x0(%rax)
L328:
  lea    (%r9,%rcx,1),%rax
  mov    %rdi,%rdx
  cmp    %r8d,%r10d
  jle    L22
  nopl   0x0(%rax)
L439:
  movsd  (%rdx),%xmm1
  add    $0x8,%rax
  add    %r15,%rdx
  mulsd  %xmm0,%xmm1
  addsd  -0x8(%rax),%xmm1
  movsd  %xmm1,-0x8(%rax)
  cmp    %rcx,%rax
  jne    L439
L22:
  add    $0x1,%esi
  add    %rbp,%rdi
  add    %r13,%rcx
  cmp    %esi,%r11d
  jne    L328
L251:
  add    $0x8,%r8
  add    0x10(%rsp),%ebx
  cmp    %r8d,%r14d
  jg     L1047
L0:
  mov    0x168(%rsp),%ebx
  mov    0x164(%rsp),%r12d
  add    %ebx,0xa8(%rsp)
  mov    0x16c(%rsp),%ebx
  add    %ebx,0xb0(%rsp)
  cmp    %r12d,0x38(%rsp)
  jg     L927
L652:
  mov    0x5c(%rsp),%edi
  mov    0x64(%rsp),%esi
  addl   $0x1,0xa0(%rsp)
  mov    0xa0(%rsp),%eax
  add    %edi,0xb8(%rsp)
  sub    %edi,0xc8(%rsp)
  mov    0x188(%rsp),%rdi
  add    %esi,0xc0(%rsp)
  add    %rdi,0xd0(%rsp)
  mov    0x180(%rsp),%rdi
  sub    %esi,0xd8(%rsp)
  add    %rdi,0xe0(%rsp)
  cmp    %eax,0xc(%rsp)
  jne    L470
  mov    %rbp,%r12
L737:
  mov    0x58(%rsp),%edi
  mov    0x60(%rsp),%esi
  addl   $0x1,0x98(%rsp)
  mov    0x98(%rsp),%eax
  add    %edi,0xe8(%rsp)
  sub    %edi,0xf8(%rsp)
  mov    0x198(%rsp),%rdi
  add    %esi,0xf0(%rsp)
  add    %rdi,0x100(%rsp)
  mov    0x190(%rsp),%rdi
  sub    %esi,0x108(%rsp)
  add    %rdi,0x110(%rsp)
  cmp    %eax,0x8(%rsp)
  jne    L218
L377:
  mov    0x78(%rsp),%edi
  mov    0x7c(%rsp),%esi
  addl   $0x1,0x90(%rsp)
  mov    0x90(%rsp),%eax
  add    %edi,0x118(%rsp)
  sub    %edi,0x128(%rsp)
  mov    0x170(%rsp),%rdi
  add    %esi,0x120(%rsp)
  add    %rdi,0x130(%rsp)
  mov    0x178(%rsp),%rdi
  sub    %esi,0x140(%rsp)
  add    %rdi,0x138(%rsp)
  cmp    %eax,0x4(%rsp)
  jne    L493
L958:
  mov    0x68(%rsp),%edi
  mov    0x6c(%rsp),%esi
  addl   $0x1,0x88(%rsp)
  mov    0x88(%rsp),%eax
  add    %edi,0x144(%rsp)
  sub    %edi,0x14c(%rsp)
  mov    0x40(%rsp),%rdi
  add    %esi,0x148(%rsp)
  add    %rdi,0x150(%rsp)
  mov    0x50(%rsp),%rdi
  sub    %esi,0x160(%rsp)
  add    %rdi,0x158(%rsp)
  cmp    %eax,(%rsp)
  jg     L1074
  cmpl   $0x5,0x248(%rsp)
  mov    %r14d,%r15d
  mov    0x18(%rsp),%r14
  jne    L649
  movslq 0x5c(%rsp),%r8
  movslq 0x64(%rsp),%r9
L452:
  mov    0x5c(%rsp),%eax
  mov    %r14,0x28(%rsp)
  lea    0x0(,%r9,8),%r13
  lea    0x0(,%r8,8),%rbp
  movq   $0x0,0xe0(%rsp)
  mov    %r13,%r14
  mov    %rbp,%r13
  movq   $0x0,0xd8(%rsp)
  shl    $0x3,%eax
  mov    %eax,0xf0(%rsp)
  mov    0x64(%rsp),%eax
  movl   $0x0,0x88(%rsp)
  shl    $0x3,%eax
  mov    %eax,0xf8(%rsp)
  mov    0x3c(%rsp),%eax
  shl    $0x3,%eax
  mov    %eax,0x10(%rsp)
  mov    0x48(%rsp),%rax
  lea    0x0(,%rax,8),%r12
  movslq 0x70(%rsp),%rax
  mov    %rax,0x118(%rsp)
  mov    0x80(%rsp),%rax
  add    $0x8,%rax
  mov    %rax,0x30(%rsp)
L290:
  mov    0x4(%rsp),%edi
  test   %edi,%edi
  jle    L980
  movl   $0x0,0x90(%rsp)
  movslq 0x78(%rsp),%rax
  mov    %rax,0x100(%rsp)
  movslq 0x7c(%rsp),%rax
  mov    %rax,0x108(%rsp)
  mov    0xe0(%rsp),%rax
  mov    %rax,0xd0(%rsp)
  mov    0xd8(%rsp),%rax
  mov    %rax,0xc8(%rsp)
  movslq %r15d,%rax
  mov    %rax,0x110(%rsp)
L261:
  mov    0x8(%rsp),%esi
  test   %esi,%esi
  jle    L842
  movslq 0x58(%rsp),%rax
  mov    %r14,%rbp
  mov    %r13,%r14
  movl   $0x0,0x98(%rsp)
  mov    %rax,0x128(%rsp)
  movslq 0x60(%rsp),%rax
  mov    %rax,0x120(%rsp)
  mov    0xd0(%rsp),%rax
  mov    %rax,0xc0(%rsp)
  mov    0xc8(%rsp),%rax
  mov    %rax,0xb8(%rsp)
L1151:
  mov    0xc(%rsp),%ecx
  xor    %r13d,%r13d
  movl   $0x0,0xb0(%rsp)
  movl   $0x0,0xa8(%rsp)
  test   %ecx,%ecx
  jle    L408
L524:
  mov    0x38(%rsp),%edx
  test   %edx,%edx
  jle    L544
  mov    0xc(%rsp),%ebx
  lea    0x7(%r13),%eax
  lea    0x8(%r13),%r11d
  movl   $0x0,0xa0(%rsp)
  mov    %r11d,0xe8(%rsp)
  cmp    %eax,%ebx
  movslq 0xa8(%rsp),%rax
  cmovle %ebx,%r11d
  add    0xb8(%rsp),%rax
  mov    %rax,0x18(%rsp)
  movslq 0xb0(%rsp),%rax
  add    0xc0(%rsp),%rax
  mov    %rax,0x20(%rsp)
L404:
  xor    %ebx,%ebx
  xor    %r8d,%r8d
  test   %r15d,%r15d
  jle    L324
  nopl   (%rax)
L97:
  cmp    %r13d,%r11d
  jle    L203
  lea    0x7(%r8),%eax
  lea    0x8(%r8),%r10d
  mov    0x28(%rsp),%rdi
  mov    0x30(%rsp),%rsi
  cmp    %eax,%r15d
  movslq %ebx,%rax
  cmovle %r15d,%r10d
  add    0x18(%rsp),%rax
  lea    (%rdi,%rax,8),%rdi
  mov    %r10d,%eax
  sub    %r8d,%eax
  lea    -0x1(%rax),%r9d
  mov    0x20(%rsp),%rax
  add    %r8,%rax
  add    %r9,%rax
  not    %r9
  lea    (%rsi,%rax,8),%rcx
  shl    $0x3,%r9
  mov    %r13d,%esi
  nopl   0x0(%rax)
L744:
  lea    (%r9,%rcx,1),%rax
  mov    %rdi,%rdx
  cmp    %r8d,%r10d
  jle    L344
  nopl   0x0(%rax)
L994:
  movsd  (%rdx),%xmm1
  add    $0x8,%rax
  add    %r12,%rdx
  mulsd  %xmm0,%xmm1
  addsd  -0x8(%rax),%xmm1
  movsd  %xmm1,-0x8(%rax)
  cmp    %rcx,%rax
  jne    L994
L344:
  add    $0x1,%esi
  add    %r14,%rdi
  add    %rbp,%rcx
  cmp    %esi,%r11d
  jne    L744
L203:
  add    $0x8,%r8
  add    0x10(%rsp),%ebx
  cmp    %r8d,%r15d
  jg     L97
L324:
  mov    0x118(%rsp),%rdi
  addl   $0x1,0xa0(%rsp)
  add    %rdi,0x18(%rsp)
  mov    0xa0(%rsp),%eax
  mov    0x110(%rsp),%rdi
  add    %rdi,0x20(%rsp)
  cmp    %eax,0x38(%rsp)
  jne    L404
L814:
  mov    0xf0(%rsp),%ebx
  mov    0xe8(%rsp),%r13d
  add    %ebx,0xa8(%rsp)
  mov    0xf8(%rsp),%ebx
  add    %ebx,0xb0(%rsp)
  cmp    %r13d,0xc(%rsp)
  jg     L524
L408:
  mov    0x128(%rsp),%rdi
  addl   $0x1,0x98(%rsp)
  add    %rdi,0xb8(%rsp)
  mov    0x98(%rsp),%eax
  mov    0x120(%rsp),%rdi
  add    %rdi,0xc0(%rsp)
  cmp    %eax,0x8(%rsp)
  jne    L1151
  mov    %r14,%r13
  mov    %rbp,%r14
L842:
  mov    0x100(%rsp),%rdi
  addl   $0x1,0x90(%rsp)
  add    %rdi,0xc8(%rsp)
  mov    0x90(%rsp),%eax
  mov    0x108(%rsp),%rdi
  add    %rdi,0xd0(%rsp)
  cmp    %eax,0x4(%rsp)
  jne    L261
L980:
  mov    0x40(%rsp),%rdi
  addl   $0x1,0x88(%rsp)
  add    %rdi,0xd8(%rsp)
  mov    0x88(%rsp),%eax
  mov    0x50(%rsp),%rdi
  add    %rdi,0xe0(%rsp)
  cmp    %eax,(%rsp)
  jg     L290
  cmpl   $0x5,0x240(%rsp)
  mov    0x28(%rsp),%r14
  jne    L196
  movslq 0x58(%rsp),%rsi
  movslq 0x60(%rsp),%rdi
L566:
  mov    0x58(%rsp),%eax
  mov    %r14,0x28(%rsp)
  lea    0x0(,%rdi,8),%r13
  lea    0x0(,%rsi,8),%rbp
  movq   $0x0,0xe0(%rsp)
  mov    %r13,%r14
  mov    %rbp,%r13
  movq   $0x0,0xd8(%rsp)
  shl    $0x3,%eax
  mov    %eax,0xf0(%rsp)
  mov    0x60(%rsp),%eax
  movl   $0x0,0x88(%rsp)
  shl    $0x3,%eax
  mov    %eax,0xf8(%rsp)
  mov    0x3c(%rsp),%eax
  shl    $0x3,%eax
  mov    %eax,0x10(%rsp)
  mov    0x48(%rsp),%rax
  lea    0x0(,%rax,8),%r12
  movslq 0x70(%rsp),%rax
  mov    %rax,0x128(%rsp)
  mov    0x80(%rsp),%rax
  add    $0x8,%rax
  mov    %rax,0x30(%rsp)
L572:
  mov    0x4(%rsp),%eax
  test   %eax,%eax
  jle    L1175
  movslq 0x78(%rsp),%rax
  mov    %r14,%rbp
  mov    %r13,%r14
  movl   $0x0,0x90(%rsp)
  mov    %rax,0x100(%rsp)
  movslq 0x7c(%rsp),%rax
  mov    %rax,0x108(%rsp)
  mov    0xe0(%rsp),%rax
  mov    %rax,0xd0(%rsp)
  mov    0xd8(%rsp),%rax
  mov    %rax,0xc8(%rsp)
  movslq %r15d,%rax
  mov    %rax,0x120(%rsp)
L874:
  movslq 0x5c(%rsp),%rax
  xor    %r13d,%r13d
  movl   $0x0,0xc0(%rsp)
  movl   $0x0,0xb8(%rsp)
  mov    %rax,0x110(%rsp)
  movslq 0x64(%rsp),%rax
  mov    %rax,0x118(%rsp)
  mov    0x8(%rsp),%eax
  test   %eax,%eax
  jle    L221
L329:
  mov    0xc(%rsp),%eax
  test   %eax,%eax
  jle    L246
  mov    0x8(%rsp),%ebx
  lea    0x7(%r13),%eax
  lea    0x8(%r13),%r11d
  movl   $0x0,0x98(%rsp)
  mov    %r11d,0xe8(%rsp)
  cmp    %eax,%ebx
  movslq 0xb8(%rsp),%rax
  cmovle %ebx,%r11d
  add    0xc8(%rsp),%rax
  mov    %rax,0xa8(%rsp)
  movslq 0xc0(%rsp),%rax
  add    0xd0(%rsp),%rax
  mov    %rax,0xb0(%rsp)
L148:
  mov    0xb0(%rsp),%rax
  movl   $0x0,0xa0(%rsp)
  mov    %rax,0x20(%rsp)
  mov    0xa8(%rsp),%rax
  mov    %rax,0x18(%rsp)
  mov    0x38(%rsp),%eax
  test   %eax,%eax
  jle    L358
L1113:
  xor    %ebx,%ebx
  xor    %r8d,%r8d
  test   %r15d,%r15d
  jle    L1199
  nopw   0x0(%rax,%rax,1)
L1075:
  cmp    %r13d,%r11d
  jle    L637
  lea    0x7(%r8),%eax
  lea    0x8(%r8),%r10d
  mov    0x28(%rsp),%rdi
  mov    0x30(%rsp),%rsi
  cmp    %eax,%r15d
  movslq %ebx,%rax
  cmovle %r15d,%r10d
  add    0x18(%rsp),%rax
  lea    (%rdi,%rax,8),%rdi
  mov    %r10d,%eax
  sub    %r8d,%eax
  lea    -0x1(%rax),%r9d
  mov    0x20(%rsp),%rax
  add    %r8,%rax
  add    %r9,%rax
  not    %r9
  lea    (%rsi,%rax,8),%rcx
  shl    $0x3,%r9
  mov    %r13d,%esi
  nopl   0x0(%rax)
L761:
  lea    (%r9,%rcx,1),%rax
  mov    %rdi,%rdx
  cmp    %r8d,%r10d
  jle    L216
  nopl   0x0(%rax)
L513:
  movsd  (%rdx),%xmm1
  add    $0x8,%rax
  add    %r12,%rdx
  mulsd  %xmm0,%xmm1
  addsd  -0x8(%rax),%xmm1
  movsd  %xmm1,-0x8(%rax)
  cmp    %rcx,%rax
  jne    L513
L216:
  add    $0x1,%esi
  add    %r14,%rdi
  add    %rbp,%rcx
  cmp    %esi,%r11d
  jne    L761
L637:
  add    $0x8,%r8
  add    0x10(%rsp),%ebx
  cmp    %r8d,%r15d
  jg     L1075
L1199:
  mov    0x128(%rsp),%rdi
  addl   $0x1,0xa0(%rsp)
  add    %rdi,0x18(%rsp)
  mov    0xa0(%rsp),%eax
  mov    0x120(%rsp),%rdi
  add    %rdi,0x20(%rsp)
  cmp    %eax,0x38(%rsp)
  jne    L1113
L358:
  mov    0x110(%rsp),%rdi
  addl   $0x1,0x98(%rsp)
  add    %rdi,0xa8(%rsp)
  mov    0x98(%rsp),%eax
  mov    0x118(%rsp),%rdi
  add    %rdi,0xb0(%rsp)
  cmp    %eax,0xc(%rsp)
  jne    L148
L1089:
  mov    0xf0(%rsp),%ebx
  mov    0xe8(%rsp),%r13d
  add    %ebx,0xb8(%rsp)
  mov    0xf8(%rsp),%ebx
  add    %ebx,0xc0(%rsp)
  cmp    %r13d,0x8(%rsp)
  jg     L329
L221:
  mov    0x100(%rsp),%rdi
  addl   $0x1,0x90(%rsp)
  add    %rdi,0xc8(%rsp)
  mov    0x90(%rsp),%eax
  mov    0x108(%rsp),%rdi
  add    %rdi,0xd0(%rsp)
  cmp    %eax,0x4(%rsp)
  jne    L874
  mov    %r14,%r13
  mov    %rbp,%r14
L1175:
  mov    0x40(%rsp),%rdi
  addl   $0x1,0x88(%rsp)
  add    %rdi,0xd8(%rsp)
  mov    0x88(%rsp),%eax
  mov    0x50(%rsp),%rdi
  add    %rdi,0xe0(%rsp)
  cmp    %eax,(%rsp)
  jg     L572
  cmpl   $0x5,0x238(%rsp)
  mov    0x28(%rsp),%r14
  jne    L259
L885:
  movslq 0x78(%rsp),%rax
  mov    %r14,0x28(%rsp)
  movq   $0x0,0xe0(%rsp)
  lea    0x0(,%rax,8),%ebx
  lea    0x0(,%rax,8),%r12
  movq   $0x0,0xd8(%rsp)
  mov    %ebx,0x100(%rsp)
  mov    0x7c(%rsp),%ebx
  mov    %r12,%r14
  movl   $0x0,0x88(%rsp)
  movslq %ebx,%rax
  lea    0x0(,%rbx,8),%edi
  lea    0x0(,%rax,8),%r13
  mov    0x48(%rsp),%rax
  mov    %edi,0x108(%rsp)
  mov    0x3c(%rsp),%edi
  mov    %r13,%r12
  lea    0x0(,%rax,8),%rsi
  movslq 0x70(%rsp),%rax
  shl    $0x3,%edi
  mov    %rax,0x128(%rsp)
  mov    0x80(%rsp),%rax
  mov    %edi,0x10(%rsp)
  add    $0x8,%rax
  mov    %rax,0x30(%rsp)
L647:
  mov    0x4(%rsp),%ebx
  movslq %r15d,%rax
  movl   $0x0,0xd0(%rsp)
  xor    %r13d,%r13d
  movl   $0x0,0xc8(%rsp)
  mov    %rax,0x120(%rsp)
  test   %ebx,%ebx
  jle    L926
  mov    %r14,%rax
  mov    %r12,%rbp
  mov    %r13d,%r14d
  mov    %r15d,%r13d
  mov    %rax,%r15
L120:
  mov    0x8(%rsp),%r9d
  test   %r9d,%r9d
  jle    L561
  mov    0x4(%rsp),%ebx
  lea    0x7(%r14),%eax
  lea    0x8(%r14),%r12d
  movl   $0x0,0x90(%rsp)
  mov    %r12d,0xe8(%rsp)
  cmp    %eax,%ebx
  movslq 0x58(%rsp),%rax
  cmovle %ebx,%r12d
  mov    %rax,0xf0(%rsp)
  movslq 0xc8(%rsp),%rax
  add    0xd8(%rsp),%rax
  mov    %rax,0xb8(%rsp)
  movslq 0x60(%rsp),%rax
  mov    %rax,0xf8(%rsp)
  movslq 0xd0(%rsp),%rax
  add    0xe0(%rsp),%rax
  mov    %rax,0xc0(%rsp)
  movslq 0x5c(%rsp),%rax
  mov    %rax,0x110(%rsp)
  movslq 0x64(%rsp),%rax
  mov    %rax,0x118(%rsp)
  mov    %r14d,%eax
  mov    %r12d,%r14d
  mov    %r13d,%r12d
  mov    %eax,%r13d
L306:
  mov    0xc0(%rsp),%rax
  mov    0xc(%rsp),%r11d
  movl   $0x0,0x98(%rsp)
  mov    %rax,0xb0(%rsp)
  mov    0xb8(%rsp),%rax
  mov    %rax,0xa8(%rsp)
  test   %r11d,%r11d
  jle    L57
L295:
  mov    0xb0(%rsp),%rax
  mov    0x38(%rsp),%r10d
  movl   $0x0,0xa0(%rsp)
  mov    %rax,0x20(%rsp)
  mov    0xa8(%rsp),%rax
  mov    %rax,0x18(%rsp)
  test   %r10d,%r10d
  jle    L48
L21:
  xor    %ebx,%ebx
  xor    %r9d,%r9d
  test   %r12d,%r12d
  jle    L661
  nopl   0x0(%rax)
L748:
  cmp    %r13d,%r14d
  jle    L745
  lea    0x7(%r9),%eax
  lea    0x8(%r9),%r11d
  mov    0x28(%rsp),%rdi
  cmp    %eax,%r12d
  movslq %ebx,%rax
  cmovle %r12d,%r11d
  add    0x18(%rsp),%rax
  lea    (%rdi,%rax,8),%r8
  mov    0x30(%rsp),%rdi
  mov    %r11d,%eax
  sub    %r9d,%eax
  lea    -0x1(%rax),%r10d
  mov    0x20(%rsp),%rax
  add    %r9,%rax
  add    %r10,%rax
  not    %r10
  lea    (%rdi,%rax,8),%rcx
  shl    $0x3,%r10
  mov    %r13d,%edi
  nopl   0x0(%rax)
L596:
  lea    (%r10,%rcx,1),%rax
  mov    %r8,%rdx
  cmp    %r9d,%r11d
  jle    L911
  nopl   0x0(%rax)
L1022:
  movsd  (%rdx),%xmm1
  add    $0x8,%rax
  add    %rsi,%rdx
  mulsd  %xmm0,%xmm1
  addsd  -0x8(%rax),%xmm1
  movsd  %xmm1,-0x8(%rax)
  cmp    %rcx,%rax
  jne    L1022
L911:
  add    $0x1,%edi
  add    %r15,%r8
  add    %rbp,%rcx
  cmp    %edi,%r14d
  jne    L596
L745:
  add    $0x8,%r9
  add    0x10(%rsp),%ebx
  cmp    %r9d,%r12d
  jg     L748
L661:
  mov    0x128(%rsp),%rdi
  addl   $0x1,0xa0(%rsp)
  add    %rdi,0x18(%rsp)
  mov    0xa0(%rsp),%eax
  mov    0x120(%rsp),%rdi
  add    %rdi,0x20(%rsp)
  cmp    %eax,0x38(%rsp)
  jne    L21
L48:
  mov    0x110(%rsp),%rdi
  addl   $0x1,0x98(%rsp)
  add    %rdi,0xa8(%rsp)
  mov    0x98(%rsp),%eax
  mov    0x118(%rsp),%rdi
  add    %rdi,0xb0(%rsp)
  cmp    %eax,0xc(%rsp)
  jne    L295
L57:
  mov    0xf0(%rsp),%rdi
  addl   $0x1,0x90(%rsp)
  add    %rdi,0xb8(%rsp)
  mov    0x90(%rsp),%eax
  mov    0xf8(%rsp),%rdi
  add    %rdi,0xc0(%rsp)
  cmp    %eax,0x8(%rsp)
  jne    L306
  mov    %r12d,%r13d
L303:
  mov    0x100(%rsp),%ebx
  mov    0xe8(%rsp),%r14d
  add    %ebx,0xc8(%rsp)
  mov    0x108(%rsp),%ebx
  add    %ebx,0xd0(%rsp)
  cmp    %r14d,0x4(%rsp)
  jg     L120
  mov    %r15,%r14
  mov    %rbp,%r12
  mov    %r13d,%r15d
L926:
  mov    0x40(%rsp),%rdi
  addl   $0x1,0x88(%rsp)
  add    %rdi,0xd8(%rsp)
  mov    0x88(%rsp),%eax
  mov    0x50(%rsp),%rdi
  add    %rdi,0xe0(%rsp)
  cmp    %eax,(%rsp)
  jg     L647
  cmpl   $0x5,0x230(%rsp)
  mov    0x28(%rsp),%r14
  jne    L450
L609:
  mov    0x68(%rsp),%eax
  mov    0x40(%rsp),%r12
  xor    %ebx,%ebx
  mov    %r14,0x30(%rsp)
  mov    0x50(%rsp),%r13
  mov    0x48(%rsp),%rsi
  movl   $0x0,0x68(%rsp)
  mov    %ebx,%r14d
  shl    $0x3,%eax
  shl    $0x3,%r12
  mov    %eax,0xb8(%rsp)
  mov    0x6c(%rsp),%eax
  shl    $0x3,%r13
  shl    $0x3,%rsi
  mov    %r13,%rbp
  movl   $0x0,0x6c(%rsp)
  mov    %r15d,%r13d
  mov    %r12,%r15
  shl    $0x3,%eax
  mov    %eax,0xb0(%rsp)
  mov    0x3c(%rsp),%eax
  shl    $0x3,%eax
  mov    %eax,0x20(%rsp)
  movslq 0x70(%rsp),%rax
  mov    %rax,0xf8(%rsp)
  mov    0x80(%rsp),%rax
  add    $0x8,%rax
  mov    %rax,0x28(%rsp)
  mov    0x4(%rsp),%eax
  test   %eax,%eax
  jle    L105
L60:
  mov    (%rsp),%r12d
  lea    0x7(%r14),%eax
  lea    0x8(%r14),%ebx
  movl   $0x0,0x3c(%rsp)
  mov    %ebx,0xa8(%rsp)
  cmp    %r12d,%eax
  movslq 0x78(%rsp),%rax
  cmovl  %ebx,%r12d
  mov    %rax,0xc8(%rsp)
  movslq 0x6c(%rsp),%rax
  mov    %rax,0x80(%rsp)
  movslq 0x7c(%rsp),%rax
  mov    %rax,0xc0(%rsp)
  movslq 0x68(%rsp),%rax
  mov    %rax,0x70(%rsp)
  movslq %r13d,%rax
  mov    %rax,0xf0(%rsp)
  mov    %rbp,%rax
  mov    %r15,%rbp
  mov    %r14d,%r15d
  mov    %r13d,%r14d
  mov    %r12d,%r13d
  mov    %rax,%r12
L14:
  mov    0x8(%rsp),%edi
  test   %edi,%edi
  jle    L554
  movslq 0x58(%rsp),%rax
  movl   $0x0,0x40(%rsp)
  mov    %rax,0xd8(%rsp)
  movslq 0x60(%rsp),%rax
  mov    %rax,0xd0(%rsp)
  mov    0x70(%rsp),%rax
  mov    %rax,0x88(%rsp)
  mov    0x80(%rsp),%rax
  mov    %rax,0x90(%rsp)
  movslq 0x5c(%rsp),%rax
  mov    %rax,0xe0(%rsp)
  movslq 0x64(%rsp),%rax
  mov    %rax,0xe8(%rsp)
  mov    %r15d,%eax
  mov    %r13d,%r15d
  mov    %r14d,%r13d
  mov    %eax,%r14d
L107:
  mov    0x88(%rsp),%rax
  mov    0xc(%rsp),%ecx
  movl   $0x0,0x48(%rsp)
  mov    %rax,0x98(%rsp)
  mov    0x90(%rsp),%rax
  mov    %rax,0xa0(%rsp)
  test   %ecx,%ecx
  jle    L467
L539:
  mov    0x98(%rsp),%rax
  mov    0x38(%rsp),%edx
  movl   $0x0,0x50(%rsp)
  mov    %rax,0x10(%rsp)
  mov    0xa0(%rsp),%rax
  mov    %rax,0x18(%rsp)
  test   %edx,%edx
  jle    L861
L1038:
  xor    %ebx,%ebx
  xor    %r9d,%r9d
  test   %r13d,%r13d
  jle    L1061
  nopw   0x0(%rax,%rax,1)
L364:
  cmp    %r14d,%r15d
  jle    L122
  lea    0x7(%r9),%eax
  lea    0x8(%r9),%r11d
  mov    0x30(%rsp),%rdi
  cmp    %eax,%r13d
  movslq %ebx,%rax
  cmovle %r13d,%r11d
  add    0x18(%rsp),%rax
  lea    (%rdi,%rax,8),%r8
  mov    0x28(%rsp),%rdi
  mov    %r11d,%eax
  sub    %r9d,%eax
  lea    -0x1(%rax),%r10d
  mov    0x10(%rsp),%rax
  add    %r9,%rax
  add    %r10,%rax
  not    %r10
  lea    (%rdi,%rax,8),%rcx
  shl    $0x3,%r10
  mov    %r14d,%edi
  nopl   0x0(%rax)
L1194:
  lea    (%r10,%rcx,1),%rax
  mov    %r8,%rdx
  cmp    %r9d,%r11d
  jle    L880
  nopl   0x0(%rax)
L1034:
  movsd  (%rdx),%xmm1
  add    $0x8,%rax
  add    %rsi,%rdx
  mulsd  %xmm0,%xmm1
  addsd  -0x8(%rax),%xmm1
  movsd  %xmm1,-0x8(%rax)
  cmp    %rcx,%rax
  jne    L1034
L880:
  add    $0x1,%edi
  add    %rbp,%r8
  add    %r12,%rcx
  cmp    %edi,%r15d
  jne    L1194
L122:
  add    $0x8,%r9
  add    0x20(%rsp),%ebx
  cmp    %r9d,%r13d
  jg     L364
L1061:
  mov    0xf8(%rsp),%rdi
  addl   $0x1,0x50(%rsp)
  add    %rdi,0x18(%rsp)
  mov    0x50(%rsp),%eax
  mov    0xf0(%rsp),%rdi
  add    %rdi,0x10(%rsp)
  cmp    %eax,0x38(%rsp)
  jne    L1038
L861:
  mov    0xe0(%rsp),%rdi
  addl   $0x1,0x48(%rsp)
  add    %rdi,0xa0(%rsp)
  mov    0x48(%rsp),%eax
  mov    0xe8(%rsp),%rdi
  add    %rdi,0x98(%rsp)
  cmp    %eax,0xc(%rsp)
  jne    L539
L467:
  mov    0xd8(%rsp),%rdi
  addl   $0x1,0x40(%rsp)
  add    %rdi,0x90(%rsp)
  mov    0x40(%rsp),%eax
  mov    0xd0(%rsp),%rdi
  add    %rdi,0x88(%rsp)
  cmp    %eax,0x8(%rsp)
  jne    L107
  mov    %r14d,%eax
  mov    %r13d,%r14d
  mov    %r15d,%r13d
  mov    %eax,%r15d
L554:
  mov    0xc8(%rsp),%rdi
  addl   $0x1,0x3c(%rsp)
  add    %rdi,0x80(%rsp)
  mov    0x3c(%rsp),%eax
  mov    0xc0(%rsp),%rdi
  add    %rdi,0x70(%rsp)
  cmp    %eax,0x4(%rsp)
  jne    L14
  mov    %rbp,%r15
  mov    %r14d,%r13d
  mov    %r12,%rbp
L747:
  mov    0xb8(%rsp),%ebx
  mov    0xa8(%rsp),%r14d
  add    %ebx,0x6c(%rsp)
  mov    0xb0(%rsp),%ebx
  add    %ebx,0x68(%rsp)
  cmp    %r14d,(%rsp)
  jle    L450
  mov    0x4(%rsp),%eax
  test   %eax,%eax
  jg     L60
L105:
  lea    0x8(%r14),%eax
  mov    %eax,0xa8(%rsp)
  jmp    L747
L3:
  movslq 0x68(%rsp),%rax
  mov    (%rsp),%r8d
  mov    %rax,0x40(%rsp)
  movslq 0x6c(%rsp),%rax
  mov    %rax,0x50(%rsp)
  movslq 0x3c(%rsp),%rax
  mov    %rax,0x48(%rsp)
  test   %r8d,%r8d
  jg     L609
  jmp    L450
  xchg   %ax,%ax
L734:
  mov    (%rsp),%ebp
  test   %ebp,%ebp
  jle    L450
  movslq 0x68(%rsp),%rax
  mov    %rax,0x40(%rsp)
  movslq 0x6c(%rsp),%rax
  mov    %rax,0x50(%rsp)
  movslq 0x3c(%rsp),%rax
  mov    %rax,0x48(%rsp)
  jmp    L885
  xchg   %ax,%ax
L63:
  lea    0x8(%r12),%eax
  mov    %eax,0x164(%rsp)
  jmp    L0
L561:
  lea    0x8(%r14),%eax
  mov    %eax,0xe8(%rsp)
  jmp    L303
L246:
  lea    0x8(%r13),%eax
  mov    %eax,0xe8(%rsp)
  jmp    L1089
L544:
  lea    0x8(%r13),%eax
  mov    %eax,0xe8(%rsp)
  jmp    L814
L24:
  mov    (%rsp),%eax
  test   %eax,%eax
  jle    L450
  movslq 0x68(%rsp),%rax
  movslq 0x58(%rsp),%rsi
  movslq 0x60(%rsp),%rdi
  mov    %rax,0x40(%rsp)
  movslq 0x6c(%rsp),%rax
  mov    %rax,0x50(%rsp)
  movslq 0x3c(%rsp),%rax
  mov    %rax,0x48(%rsp)
  jmp    L566
L501:
  mov    (%rsp),%r8d
  test   %r8d,%r8d
  jle    L899
  movslq 0x68(%rsp),%rax
  movslq 0x5c(%rsp),%r8
  movslq 0x64(%rsp),%r9
  mov    %rax,0x40(%rsp)
  movslq 0x6c(%rsp),%rax
  mov    %rax,0x50(%rsp)
  movslq 0x3c(%rsp),%rax
  mov    %rax,0x48(%rsp)
  jmp    L452
L1179:
  cmpl   $0x5,0x250(%rsp)
  jne    L559
L917:
  cmpl   $0x5,0x248(%rsp)
  jne    L649
L899:
  cmpl   $0x5,0x240(%rsp)
  jne    L196
  jmp    L450
L585:
  call   <__stack_chk_fail@plt>
```

assistant: ```c
void tce_sortacc_6_scalar(double *unsorted, double *sorted, int a, int b, int c, int d, int e, int f, int i, int j, int k, int l, int m, int n, double factor) {
  int id[6], jd[6], ia, ib, j1, j2, j3, j4, j5, j6;
  int l1, l2, l3, l4, l5, l6;
  int ia1, ia2, ia3, ia4, ia5, ia6;
  int ib1, ib2, ib3, ib4, ib5, ib6;
  int rangea1, rangea2, rangea3, rangea4, rangea5, rangea6;
  int rangeb1, rangeb2, rangeb3, rangeb4, rangeb5, rangeb6;
  int range[6], order[6], order_r[6];
  int jj1, jj2, jj3, jj4, jj5, jj6;
  int jj1_bound, jj2_bound, jj3_bound, jj4_bound, jj5_bound, jj6_bound;
  int N1, N2;
  jd[0] = a;
  jd[1] = b;
  jd[2] = c;
  jd[3] = d;
  jd[4] = e;
  jd[5] = f;
  range[0] = b * c * d * e * f;
  range[1] = c * d * e * f;
  range[2] = d * e * f;
  range[3] = e * f;
  range[4] = f;
  range[5] = 1;
  l1 = jd[i];
  l2 = jd[j];
  l3 = jd[k];
  l4 = jd[l];
  l5 = jd[m];
  l6 = jd[n];
  rangea1 = range[i];
  rangea2 = range[j];
  rangea3 = range[k];
  rangea4 = range[l];
  rangea5 = range[m];
  rangea6 = range[n];
  rangeb1 = l2 * l3 * l4 * l5 * l6;
  rangeb2 = l3 * l4 * l5 * l6;
  rangeb3 = l4 * l5 * l6;
  rangeb4 = l5 * l6;
  rangeb5 = l6;
  rangeb6 = 1;
  if (n == 5) {
    for (j1 = 0; j1 < l1; j1++) {
      ia1 = j1 * rangea1;
      ib1 = j1 * rangeb1;
      for (j2 = 0; j2 < l2; j2++) {
        ia2 = ia1 + j2 * rangea2;
        ib2 = ib1 + j2 * rangeb2;
        for (j3 = 0; j3 < l3; j3++) {
          ia3 = ia2 + j3 * rangea3;
          ib3 = ib2 + j3 * rangeb3;
          for (j4 = 0; j4 < l4; j4++) {
            ia4 = ia3 + j4 * rangea4;
            ib4 = ib3 + j4 * rangeb4;
            for (j5 = 0; j5 < l5; j5++) {
              ia5 = ia4 + j5 * rangea5;
              ib5 = ib4 + j5 * rangeb5;
              for (j6 = 0; j6 < l6; j6++) {
                ia = ia5 + j6 * rangea6;
                ib = ib5 + j6 * rangeb6;
                sorted[ib] += unsorted[ia] * factor;
              }
            }
          }
        }
      }
    }
  }
  if (m == 5) {
    for (j1 = 0; j1 < l1; j1++) {
      ia1 = j1 * rangea1;
      ib1 = j1 * rangeb1;
      for (j2 = 0; j2 < l2; j2++) {
        ia2 = ia1 + j2 * rangea2;
        ib2 = ib1 + j2 * rangeb2;
        for (j3 = 0; j3 < l3; j3++) {
          ia3 = ia2 + j3 * rangea3;
          ib3 = ib2 + j3 * rangeb3;
          for (j4 = 0; j4 < l4; j4++) {
            ia4 = ia3 + j4 * rangea4;
            ib4 = ib3 + j4 * rangeb4;
            for (j5 = 0; j5 < l5; j5 += 8) {
              for (j6 = 0; j6 < l6; j6 += 8) {
                jj5_bound = (j5 + 8 > l5) ? l5 : j5 + 8;
                for (jj5 = j5; jj5 < jj5_bound; jj5++) {
                  ia5 = ia4 + jj5 * rangea5;
                  ib5 = ib4 + jj5 * rangeb5;
                  jj6_bound = (j6 + 8 > l6) ? l6 : j6 + 8;
                  for (jj6 = j6; jj6 < jj6_bound; jj6++) {
                    ia = ia5 + jj6 * rangea6;
                    ib = ib5 + jj6 * rangeb6;
                    sorted[ib] += unsorted[ia] * factor;
                  }
                }
              }
            }
          }
        }
      }
    }
  }
  if (l == 5) {
    for (j1 = 0; j1 < l1; j1++) {
      ia1 = j1 * rangea1;
      ib1 = j1 * rangeb1;
      for (j2 = 0; j2 < l2; j2++) {
        ia2 = ia1 + j2 * rangea2;
        ib2 = ib1 + j2 * rangeb2;
        for (j3 = 0; j3 < l3; j3++) {
          ia3 = ia2 + j3 * rangea3;
          ib3 = ib2 + j3 * rangeb3;
          for (j4 = 0; j4 < l4; j4 += 8) {
            for (j5 = 0; j5 < l5; j5++) {
              ia5 = ia3 + j5 * rangea5;
              ib5 = ib3 + j5 * rangeb5;
              for (j6 = 0; j6 < l6; j6 += 8) {
                jj4_bound = (j4 + 8 > l4) ? l4 : j4 + 8;
                for (jj4 = j4; jj4 < jj4_bound; jj4++) {
                  ia4 = ia5 + jj4 * rangea4;
                  ib4 = ib5 + jj4 * rangeb4;
                  jj6_bound = (j6 + 8 > l6) ? l6 : j6 + 8;
                  for (jj6 = j6; jj6 < jj6_bound; jj6++) {
                    ia = ia4 + jj6 * rangea6;
                    ib = ib4 + jj6 * rangeb6;
                    sorted[ib] += unsorted[ia] * factor;
                  }
                }
              }
            }
          }
        }
      }
    }
  }
  if (k == 5) {
    for (j1 = 0; j1 < l1; j1++) {
      ia1 = j1 * rangea1;
      ib1 = j1 * rangeb1;
      for (j2 = 0; j2 < l2; j2++) {
        ia2 = ia1 + j2 * rangea2;
        ib2 = ib1 + j2 * rangeb2;
        for (j3 = 0; j3 < l3; j3 += 8) {
          for (j4 = 0; j4 < l4; j4++) {
            ia4 = ia2 + j4 * rangea4;
            ib4 = ib2 + j4 * rangeb4;
            for (j5 = 0; j5 < l5; j5++) {
              ia5 = ia4 + j5 * rangea5;
              ib5 = ib4 + j5 * rangeb5;
              for (j6 = 0; j6 < l6; j6 += 8) {
                jj3_bound = (j3 + 8 > l3) ? l3 : j3 + 8;
                for (jj3 = j3; jj3 < jj3_bound; jj3++) {
                  ia3 = ia5 + jj3 * rangea3;
                  ib3 = ib5 + jj3 * rangeb3;
                  jj6_bound = (j6 + 8 > l6) ? l6 : j6 + 8;
                  for (jj6 = j6; jj6 < jj6_bound; jj6++) {
                    ia = ia3 + jj6 * rangea6;
                    ib = ib3 + jj6 * rangeb6;
                    sorted[ib] += unsorted[ia] * factor;
                  }
                }
              }
            }
          }
        }
      }
    }
  }
  if (j == 5) {
    for (j1 = 0; j1 < l1; j1++) {
      ia1 = j1 * rangea1;
      ib1 = j1 * rangeb1;
      for (j2 = 0; j2 < l2; j2 += 8) {
        for (j3 = 0; j3 < l3; j3++) {
          ia3 = ia1 + j3 * rangea3;
          ib3 = ib1 + j3 * rangeb3;
          for (j4 = 0; j4 < l4; j4++) {
            ia4 = ia3 + j4 * rangea4;
            ib4 = ib3 + j4 * rangeb4;
            for (j5 = 0; j5 < l5; j5++) {
              ia5 = ia4 + j5 * rangea5;
              ib5 = ib4 + j5 * rangeb5;
              for (j6 = 0; j6 < l6; j6 += 8) {
                jj2_bound = (j2 + 8 > l2) ? l2 : j2 + 8;
                for (jj2 = j2; jj2 < jj2_bound; jj2++) {
                  ia2 = ia5 + jj2 * rangea2;
                  ib2 = ib5 + jj2 * rangeb2;
                  jj6_bound = (j6 + 8 > l6) ? l6 : j6 + 8;
                  for (jj6 = j6; jj6 < jj6_bound; jj6++) {
                    ia = ia2 + jj6 * rangea6;
                    ib = ib2 + jj6 * rangeb6;
                    sorted[ib] += unsorted[ia] * factor;
                  }
                }
              }
            }
          }
        }
      }
    }
  }
  if (i == 5) {
    for (j1 = 0; j1 < l1; j1 += 8) {
      for (j2 = 0; j2 < l2; j2++) {
        ia2 = j2 * rangea2;
        ib2 = j2 * rangeb2;
        for (j3 = 0; j3 < l3; j3++) {
          ia3 = ia2 + j3 * rangea3;
          ib3 = ib2 + j3 * rangeb3;
          for (j4 = 0; j4 < l4; j4++) {
            ia4 = ia3 + j4 * rangea4;
            ib4 = ib3 + j4 * rangeb4;
            for (j5 = 0; j5 < l5; j5++) {
              ia5 = ia4 + j5 * rangea5;
              ib5 = ib4 + j5 * rangeb5;
              for (j6 = 0; j6 < l6; j6 += 8) {
                jj1_bound = (j1 + 8 > l1) ? l1 : j1 + 8;
                for (jj1 = j1; jj1 < jj1_bound; jj1++) {
                  ia1 = ia5 + jj1 * rangea1;
                  ib1 = ib5 + jj1 * rangeb1;
                  jj6_bound = (j6 + 8 > l6) ? l6 : j6 + 8;
                  for (jj6 = j6; jj6 < jj6_bound; jj6++) {
                    ia = ia1 + jj6 * rangea6;
                    ib = ib1 + jj6 * rangeb6;
                    sorted[ib] += unsorted[ia] * factor;
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}
```