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

```asm
<fdct>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x180,%rsp
  mov    %rdi,-0x178(%rbp)
  mov    %rsi,-0x180(%rbp)
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  lea    -0x110(%rbp),%rax
  mov    %rax,-0x118(%rbp)
  movl   $0x0,-0x168(%rbp)
  jmp    L10
L77:
  movl   $0x0,-0x164(%rbp)
  jmp    L13
L90:
  mov    -0x168(%rbp),%eax
  lea    0x0(,%rax,8),%edx
  mov    -0x164(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    (%rax,%rax,1),%rdx
  mov    -0x178(%rbp),%rax
  add    %rdx,%rax
  movzwl (%rax),%eax
  movzwl %ax,%eax
  mov    %eax,-0x11c(%rbp)
  mov    -0x168(%rbp),%eax
  lea    0x0(,%rax,8),%edx
  mov    -0x164(%rbp),%eax
  add    %edx,%eax
  cltq
  lea    0x0(,%rax,4),%rdx
  mov    -0x118(%rbp),%rax
  add    %rax,%rdx
  mov    -0x11c(%rbp),%eax
  mov    %eax,(%rdx)
  addl   $0x1,-0x164(%rbp)
L13:
  cmpl   $0x7,-0x164(%rbp)
  jle    L90
  addl   $0x1,-0x168(%rbp)
L10:
  cmpl   $0x7,-0x168(%rbp)
  jle    L77
  lea    -0x110(%rbp),%rax
  mov    %rax,-0x118(%rbp)
  movl   $0x7,-0x16c(%rbp)
  jmp    L50
L47:
  mov    -0x118(%rbp),%rax
  mov    (%rax),%edx
  mov    -0x118(%rbp),%rax
  add    $0x1c,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  mov    %eax,-0x160(%rbp)
  mov    -0x118(%rbp),%rax
  mov    (%rax),%eax
  mov    -0x118(%rbp),%rdx
  add    $0x1c,%rdx
  mov    (%rdx),%edx
  sub    %edx,%eax
  mov    %eax,-0x15c(%rbp)
  mov    -0x118(%rbp),%rax
  add    $0x4,%rax
  mov    (%rax),%edx
  mov    -0x118(%rbp),%rax
  add    $0x18,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  mov    %eax,-0x158(%rbp)
  mov    -0x118(%rbp),%rax
  add    $0x4,%rax
  mov    (%rax),%eax
  mov    -0x118(%rbp),%rdx
  add    $0x18,%rdx
  mov    (%rdx),%edx
  sub    %edx,%eax
  mov    %eax,-0x154(%rbp)
  mov    -0x118(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%edx
  mov    -0x118(%rbp),%rax
  add    $0x14,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  mov    %eax,-0x150(%rbp)
  mov    -0x118(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%eax
  mov    -0x118(%rbp),%rdx
  add    $0x14,%rdx
  mov    (%rdx),%edx
  sub    %edx,%eax
  mov    %eax,-0x14c(%rbp)
  mov    -0x118(%rbp),%rax
  add    $0xc,%rax
  mov    (%rax),%edx
  mov    -0x118(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  mov    %eax,-0x148(%rbp)
  mov    -0x118(%rbp),%rax
  add    $0xc,%rax
  mov    (%rax),%eax
  mov    -0x118(%rbp),%rdx
  add    $0x10,%rdx
  mov    (%rdx),%edx
  sub    %edx,%eax
  mov    %eax,-0x144(%rbp)
  mov    -0x160(%rbp),%edx
  mov    -0x148(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x140(%rbp)
  mov    -0x160(%rbp),%eax
  sub    -0x148(%rbp),%eax
  mov    %eax,-0x13c(%rbp)
  mov    -0x158(%rbp),%edx
  mov    -0x150(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x138(%rbp)
  mov    -0x158(%rbp),%eax
  sub    -0x150(%rbp),%eax
  mov    %eax,-0x134(%rbp)
  mov    -0x140(%rbp),%edx
  mov    -0x138(%rbp),%eax
  add    %edx,%eax
  lea    (%rax,%rax,1),%edx
  mov    -0x118(%rbp),%rax
  mov    %edx,(%rax)
  mov    -0x140(%rbp),%eax
  sub    -0x138(%rbp),%eax
  mov    %eax,%edx
  mov    -0x118(%rbp),%rax
  add    $0x10,%rax
  add    %edx,%edx
  mov    %edx,(%rax)
  mov    -0x134(%rbp),%edx
  mov    -0x13c(%rbp),%eax
  add    %edx,%eax
  imul   $0x1151,%eax,%eax
  mov    %eax,-0x130(%rbp)
  mov    -0x13c(%rbp),%eax
  imul   $0x187e,%eax,%edx
  mov    -0x130(%rbp),%eax
  add    %edx,%eax
  lea    0x800(%rax),%edx
  mov    -0x118(%rbp),%rax
  add    $0x8,%rax
  sar    $0xc,%edx
  mov    %edx,(%rax)
  mov    -0x134(%rbp),%eax
  imul   $0xffffc4df,%eax,%edx
  mov    -0x130(%rbp),%eax
  add    %edx,%eax
  lea    0x800(%rax),%edx
  mov    -0x118(%rbp),%rax
  add    $0x18,%rax
  sar    $0xc,%edx
  mov    %edx,(%rax)
  mov    -0x144(%rbp),%edx
  mov    -0x15c(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x130(%rbp)
  mov    -0x14c(%rbp),%edx
  mov    -0x154(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x12c(%rbp)
  mov    -0x144(%rbp),%edx
  mov    -0x154(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x128(%rbp)
  mov    -0x14c(%rbp),%edx
  mov    -0x15c(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x124(%rbp)
  mov    -0x128(%rbp),%edx
  mov    -0x124(%rbp),%eax
  add    %edx,%eax
  imul   $0x25a1,%eax,%eax
  mov    %eax,-0x120(%rbp)
  mov    -0x144(%rbp),%eax
  imul   $0x98e,%eax,%eax
  mov    %eax,-0x144(%rbp)
  mov    -0x14c(%rbp),%eax
  imul   $0x41b3,%eax,%eax
  mov    %eax,-0x14c(%rbp)
  mov    -0x154(%rbp),%eax
  imul   $0x6254,%eax,%eax
  mov    %eax,-0x154(%rbp)
  mov    -0x15c(%rbp),%eax
  imul   $0x300b,%eax,%eax
  mov    %eax,-0x15c(%rbp)
  mov    -0x130(%rbp),%eax
  imul   $0xffffe333,%eax,%eax
  mov    %eax,-0x130(%rbp)
  mov    -0x12c(%rbp),%eax
  imul   $0xffffadfd,%eax,%eax
  mov    %eax,-0x12c(%rbp)
  mov    -0x128(%rbp),%eax
  imul   $0xffffc13b,%eax,%eax
  mov    %eax,-0x128(%rbp)
  mov    -0x124(%rbp),%eax
  imul   $0xfffff384,%eax,%eax
  mov    %eax,-0x124(%rbp)
  mov    -0x120(%rbp),%eax
  add    %eax,-0x128(%rbp)
  mov    -0x120(%rbp),%eax
  add    %eax,-0x124(%rbp)
  mov    -0x144(%rbp),%edx
  mov    -0x130(%rbp),%eax
  add    %eax,%edx
  mov    -0x128(%rbp),%eax
  add    %edx,%eax
  lea    0x800(%rax),%edx
  mov    -0x118(%rbp),%rax
  add    $0x1c,%rax
  sar    $0xc,%edx
  mov    %edx,(%rax)
  mov    -0x14c(%rbp),%edx
  mov    -0x12c(%rbp),%eax
  add    %eax,%edx
  mov    -0x124(%rbp),%eax
  add    %edx,%eax
  lea    0x800(%rax),%edx
  mov    -0x118(%rbp),%rax
  add    $0x14,%rax
  sar    $0xc,%edx
  mov    %edx,(%rax)
  mov    -0x154(%rbp),%edx
  mov    -0x12c(%rbp),%eax
  add    %eax,%edx
  mov    -0x128(%rbp),%eax
  add    %edx,%eax
  lea    0x800(%rax),%edx
  mov    -0x118(%rbp),%rax
  add    $0xc,%rax
  sar    $0xc,%edx
  mov    %edx,(%rax)
  mov    -0x15c(%rbp),%edx
  mov    -0x130(%rbp),%eax
  add    %eax,%edx
  mov    -0x124(%rbp),%eax
  add    %edx,%eax
  lea    0x800(%rax),%edx
  mov    -0x118(%rbp),%rax
  add    $0x4,%rax
  sar    $0xc,%edx
  mov    %edx,(%rax)
  addq   $0x20,-0x118(%rbp)
  subl   $0x1,-0x16c(%rbp)
L50:
  cmpl   $0x0,-0x16c(%rbp)
  jns    L47
  lea    -0x110(%rbp),%rax
  mov    %rax,-0x118(%rbp)
  movl   $0x7,-0x16c(%rbp)
  jmp    L96
L32:
  mov    -0x118(%rbp),%rax
  mov    (%rax),%edx
  mov    -0x118(%rbp),%rax
  add    $0xe0,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  mov    %eax,-0x160(%rbp)
  mov    -0x118(%rbp),%rax
  mov    (%rax),%eax
  mov    -0x118(%rbp),%rdx
  add    $0xe0,%rdx
  mov    (%rdx),%edx
  sub    %edx,%eax
  mov    %eax,-0x15c(%rbp)
  mov    -0x118(%rbp),%rax
  add    $0x20,%rax
  mov    (%rax),%edx
  mov    -0x118(%rbp),%rax
  add    $0xc0,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  mov    %eax,-0x158(%rbp)
  mov    -0x118(%rbp),%rax
  add    $0x20,%rax
  mov    (%rax),%eax
  mov    -0x118(%rbp),%rdx
  add    $0xc0,%rdx
  mov    (%rdx),%edx
  sub    %edx,%eax
  mov    %eax,-0x154(%rbp)
  mov    -0x118(%rbp),%rax
  add    $0x40,%rax
  mov    (%rax),%edx
  mov    -0x118(%rbp),%rax
  add    $0xa0,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  mov    %eax,-0x150(%rbp)
  mov    -0x118(%rbp),%rax
  add    $0x40,%rax
  mov    (%rax),%eax
  mov    -0x118(%rbp),%rdx
  add    $0xa0,%rdx
  mov    (%rdx),%edx
  sub    %edx,%eax
  mov    %eax,-0x14c(%rbp)
  mov    -0x118(%rbp),%rax
  add    $0x60,%rax
  mov    (%rax),%edx
  mov    -0x118(%rbp),%rax
  sub    $0xffffffffffffff80,%rax
  mov    (%rax),%eax
  add    %edx,%eax
  mov    %eax,-0x148(%rbp)
  mov    -0x118(%rbp),%rax
  add    $0x60,%rax
  mov    (%rax),%eax
  mov    -0x118(%rbp),%rdx
  sub    $0xffffffffffffff80,%rdx
  mov    (%rdx),%edx
  sub    %edx,%eax
  mov    %eax,-0x144(%rbp)
  mov    -0x160(%rbp),%edx
  mov    -0x148(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x140(%rbp)
  mov    -0x160(%rbp),%eax
  sub    -0x148(%rbp),%eax
  mov    %eax,-0x13c(%rbp)
  mov    -0x158(%rbp),%edx
  mov    -0x150(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x138(%rbp)
  mov    -0x158(%rbp),%eax
  sub    -0x150(%rbp),%eax
  mov    %eax,-0x134(%rbp)
  mov    -0x140(%rbp),%edx
  mov    -0x138(%rbp),%eax
  add    %edx,%eax
  add    $0x1,%eax
  sar    %eax
  mov    %eax,%edx
  mov    -0x118(%rbp),%rax
  mov    %edx,(%rax)
  mov    -0x140(%rbp),%eax
  sub    -0x138(%rbp),%eax
  lea    0x1(%rax),%edx
  mov    -0x118(%rbp),%rax
  sub    $0xffffffffffffff80,%rax
  sar    %edx
  mov    %edx,(%rax)
  mov    -0x134(%rbp),%edx
  mov    -0x13c(%rbp),%eax
  add    %edx,%eax
  imul   $0x1151,%eax,%eax
  mov    %eax,-0x130(%rbp)
  mov    -0x13c(%rbp),%eax
  imul   $0x187e,%eax,%edx
  mov    -0x130(%rbp),%eax
  add    %edx,%eax
  lea    0x2000(%rax),%edx
  mov    -0x118(%rbp),%rax
  add    $0x40,%rax
  sar    $0xe,%edx
  mov    %edx,(%rax)
  mov    -0x134(%rbp),%eax
  imul   $0xffffc4df,%eax,%edx
  mov    -0x130(%rbp),%eax
  add    %edx,%eax
  lea    0x2000(%rax),%edx
  mov    -0x118(%rbp),%rax
  add    $0xc0,%rax
  sar    $0xe,%edx
  mov    %edx,(%rax)
  mov    -0x144(%rbp),%edx
  mov    -0x15c(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x130(%rbp)
  mov    -0x14c(%rbp),%edx
  mov    -0x154(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x12c(%rbp)
  mov    -0x144(%rbp),%edx
  mov    -0x154(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x128(%rbp)
  mov    -0x14c(%rbp),%edx
  mov    -0x15c(%rbp),%eax
  add    %edx,%eax
  mov    %eax,-0x124(%rbp)
  mov    -0x128(%rbp),%edx
  mov    -0x124(%rbp),%eax
  add    %edx,%eax
  imul   $0x25a1,%eax,%eax
  mov    %eax,-0x120(%rbp)
  mov    -0x144(%rbp),%eax
  imul   $0x98e,%eax,%eax
  mov    %eax,-0x144(%rbp)
  mov    -0x14c(%rbp),%eax
  imul   $0x41b3,%eax,%eax
  mov    %eax,-0x14c(%rbp)
  mov    -0x154(%rbp),%eax
  imul   $0x6254,%eax,%eax
  mov    %eax,-0x154(%rbp)
  mov    -0x15c(%rbp),%eax
  imul   $0x300b,%eax,%eax
  mov    %eax,-0x15c(%rbp)
  mov    -0x130(%rbp),%eax
  imul   $0xffffe333,%eax,%eax
  mov    %eax,-0x130(%rbp)
  mov    -0x12c(%rbp),%eax
  imul   $0xffffadfd,%eax,%eax
  mov    %eax,-0x12c(%rbp)
  mov    -0x128(%rbp),%eax
  imul   $0xffffc13b,%eax,%eax
  mov    %eax,-0x128(%rbp)
  mov    -0x124(%rbp),%eax
  imul   $0xfffff384,%eax,%eax
  mov    %eax,-0x124(%rbp)
  mov    -0x120(%rbp),%eax
  add    %eax,-0x128(%rbp)
  mov    -0x120(%rbp),%eax
  add    %eax,-0x124(%rbp)
  mov    -0x144(%rbp),%edx
  mov    -0x130(%rbp),%eax
  add    %eax,%edx
  mov    -0x128(%rbp),%eax
  add    %edx,%eax
  lea    0x2000(%rax),%edx
  mov    -0x118(%rbp),%rax
  add    $0xe0,%rax
  sar    $0xe,%edx
  mov    %edx,(%rax)
  mov    -0x14c(%rbp),%edx
  mov    -0x12c(%rbp),%eax
  add    %eax,%edx
  mov    -0x124(%rbp),%eax
  add    %edx,%eax
  lea    0x2000(%rax),%edx
  mov    -0x118(%rbp),%rax
  add    $0xa0,%rax
  sar    $0xe,%edx
  mov    %edx,(%rax)
  mov    -0x154(%rbp),%edx
  mov    -0x12c(%rbp),%eax
  add    %eax,%edx
  mov    -0x128(%rbp),%eax
  add    %edx,%eax
  lea    0x2000(%rax),%edx
  mov    -0x118(%rbp),%rax
  add    $0x60,%rax
  sar    $0xe,%edx
  mov    %edx,(%rax)
  mov    -0x15c(%rbp),%edx
  mov    -0x130(%rbp),%eax
  add    %eax,%edx
  mov    -0x124(%rbp),%eax
  add    %edx,%eax
  lea    0x2000(%rax),%edx
  mov    -0x118(%rbp),%rax
  add    $0x20,%rax
  sar    $0xe,%edx
  mov    %edx,(%rax)
  addq   $0x4,-0x118(%rbp)
  subl   $0x1,-0x16c(%rbp)
L96:
  cmpl   $0x0,-0x16c(%rbp)
  jns    L32
  movl   $0x0,-0x168(%rbp)
  jmp    L119
L54:
  movl   $0x0,-0x164(%rbp)
  jmp    L82
L105:
  mov    -0x168(%rbp),%eax
  lea    0x0(,%rax,8),%edx
  mov    -0x164(%rbp),%eax
  add    %edx,%eax
  cltq
  mov    -0x110(%rbp,%rax,4),%eax
  sar    $0x3,%eax
  mov    %eax,%edx
  mov    -0x168(%rbp),%eax
  lea    0x0(,%rax,8),%ecx
  mov    -0x164(%rbp),%eax
  add    %ecx,%eax
  cltq
  lea    (%rax,%rax,1),%rcx
  mov    -0x180(%rbp),%rax
  add    %rcx,%rax
  mov    %dx,(%rax)
  addl   $0x1,-0x164(%rbp)
L82:
  cmpl   $0x7,-0x164(%rbp)
  jle    L105
  addl   $0x1,-0x168(%rbp)
L119:
  cmpl   $0x7,-0x168(%rbp)
  jle    L54
  nop
  mov    -0x8(%rbp),%rax
  sub    %fs:0x28,%rax
  je     L34
  call   <__stack_chk_fail@plt>
L34:
  leave
  ret
```

assistant: ```c
void fdct(const unsigned short *in, short *out) {
  int tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6, tmp7;
  int tmp10, tmp11, tmp12, tmp13;
  int z1, z2, z3, z4, z5;
  int ctr;
  int data[8 * 8];
  int i, j;
  int *dataptr = data;
  for (i = 0; i < 8; i++) {
    for (j = 0; j < 8; j++) {
      int temp;
      temp = in[i * 8 + j];
      dataptr[i * 8 + j] = temp;
    }
  }
  dataptr = data;
  for (ctr = 8 - 1; ctr >= 0; ctr--) {
    tmp0 = dataptr[0] + dataptr[7];
    tmp7 = dataptr[0] - dataptr[7];
    tmp1 = dataptr[1] + dataptr[6];
    tmp6 = dataptr[1] - dataptr[6];
    tmp2 = dataptr[2] + dataptr[5];
    tmp5 = dataptr[2] - dataptr[5];
    tmp3 = dataptr[3] + dataptr[4];
    tmp4 = dataptr[3] - dataptr[4];
    tmp10 = tmp0 + tmp3;
    tmp13 = tmp0 - tmp3;
    tmp11 = tmp1 + tmp2;
    tmp12 = tmp1 - tmp2;
    dataptr[0] = (int)((tmp10 + tmp11) << 1);
    dataptr[4] = (int)((tmp10 - tmp11) << 1);
    z1 = ((tmp12 + tmp13) * (((int)4433)));
    dataptr[2] = (int)(((z1 + ((tmp13) * (((int)6270)))) + (((int)1) << ((13 - 1) - 1))) >> (13 - 1));
    dataptr[6] = (int)(((z1 + ((tmp12) * (-((int)15137)))) + (((int)1) << ((13 - 1) - 1))) >> (13 - 1));
    z1 = tmp4 + tmp7;
    z2 = tmp5 + tmp6;
    z3 = tmp4 + tmp6;
    z4 = tmp5 + tmp7;
    z5 = ((z3 + z4) * (((int)9633)));
    tmp4 = ((tmp4) * (((int)2446)));
    tmp5 = ((tmp5) * (((int)16819)));
    tmp6 = ((tmp6) * (((int)25172)));
    tmp7 = ((tmp7) * (((int)12299)));
    z1 = ((z1) * (-((int)7373)));
    z2 = ((z2) * (-((int)20995)));
    z3 = ((z3) * (-((int)16069)));
    z4 = ((z4) * (-((int)3196)));
    z3 += z5;
    z4 += z5;
    dataptr[7] = (int)(((tmp4 + z1 + z3) + (((int)1) << ((13 - 1) - 1))) >> (13 - 1));
    dataptr[5] = (int)(((tmp5 + z2 + z4) + (((int)1) << ((13 - 1) - 1))) >> (13 - 1));
    dataptr[3] = (int)(((tmp6 + z2 + z3) + (((int)1) << ((13 - 1) - 1))) >> (13 - 1));
    dataptr[1] = (int)(((tmp7 + z1 + z4) + (((int)1) << ((13 - 1) - 1))) >> (13 - 1));
    dataptr += 8;
  }
  dataptr = data;
  for (ctr = 8 - 1; ctr >= 0; ctr--) {
    tmp0 = dataptr[8 * 0] + dataptr[8 * 7];
    tmp7 = dataptr[8 * 0] - dataptr[8 * 7];
    tmp1 = dataptr[8 * 1] + dataptr[8 * 6];
    tmp6 = dataptr[8 * 1] - dataptr[8 * 6];
    tmp2 = dataptr[8 * 2] + dataptr[8 * 5];
    tmp5 = dataptr[8 * 2] - dataptr[8 * 5];
    tmp3 = dataptr[8 * 3] + dataptr[8 * 4];
    tmp4 = dataptr[8 * 3] - dataptr[8 * 4];
    tmp10 = tmp0 + tmp3;
    tmp13 = tmp0 - tmp3;
    tmp11 = tmp1 + tmp2;
    tmp12 = tmp1 - tmp2;
    dataptr[8 * 0] = (int)(((tmp10 + tmp11) + (((int)1) << ((1) - 1))) >> (1));
    dataptr[8 * 4] = (int)(((tmp10 - tmp11) + (((int)1) << ((1) - 1))) >> (1));
    z1 = ((tmp12 + tmp13) * (((int)4433)));
    dataptr[8 * 2] = (int)(((z1 + ((tmp13) * (((int)6270)))) + (((int)1) << ((13 + 1) - 1))) >> (13 + 1));
    dataptr[8 * 6] = (int)(((z1 + ((tmp12) * (-((int)15137)))) + (((int)1) << ((13 + 1) - 1))) >> (13 + 1));
    z1 = tmp4 + tmp7;
    z2 = tmp5 + tmp6;
    z3 = tmp4 + tmp6;
    z4 = tmp5 + tmp7;
    z5 = ((z3 + z4) * (((int)9633)));
    tmp4 = ((tmp4) * (((int)2446)));
    tmp5 = ((tmp5) * (((int)16819)));
    tmp6 = ((tmp6) * (((int)25172)));
    tmp7 = ((tmp7) * (((int)12299)));
    z1 = ((z1) * (-((int)7373)));
    z2 = ((z2) * (-((int)20995)));
    z3 = ((z3) * (-((int)16069)));
    z4 = ((z4) * (-((int)3196)));
    z3 += z5;
    z4 += z5;
    dataptr[8 * 7] = (int)(((tmp4 + z1 + z3) + (((int)1) << ((13 + 1) - 1))) >> (13 + 1));
    dataptr[8 * 5] = (int)(((tmp5 + z2 + z4) + (((int)1) << ((13 + 1) - 1))) >> (13 + 1));
    dataptr[8 * 3] = (int)(((tmp6 + z2 + z3) + (((int)1) << ((13 + 1) - 1))) >> (13 + 1));
    dataptr[8 * 1] = (int)(((tmp7 + z1 + z4) + (((int)1) << ((13 + 1) - 1))) >> (13 + 1));
    dataptr++;
  }
  for (i = 0; i < 8; i++)
    for (j = 0; j < 8; j++)
      out[i * 8 + j] = data[i * 8 + j] >> 3;
}
```