user: Translate the below assembly code into C programming language:

```asm
<main>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbx
  sub    $0xfb8,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,-0x38(%rbp)
  xor    %eax,%eax
  lea    -0xfe0(%rbp),%rax
  lea    D8(%rip),%rdx
  mov    $0x1f4,%ecx
  mov    %rax,%rdi
  mov    %rdx,%rsi
  rep movsq %ds:(%rsi),%es:(%rdi)
  mov    $0x3e7,%r15d
  mov    $0x1,%r13d
  mov    $0x1,%r12d
  jmp    L42
L46:
  mov    $0x0,%r13d
  test   %r12d,%r12d
  sete   %al
  movzbl %al,%r12d
  mov    %r12d,%ebx
  jmp    L67
L60:
  movslq %ebx,%rax
  mov    -0xfe0(%rbp,%rax,4),%edx
  lea    0x1(%rbx),%eax
  cltq
  mov    -0xfe0(%rbp,%rax,4),%eax
  cmp    %eax,%edx
  jle    L33
  mov    $0x1,%r13d
  movslq %ebx,%rax
  mov    -0xfe0(%rbp,%rax,4),%r14d
  lea    0x1(%rbx),%eax
  cltq
  mov    -0xfe0(%rbp,%rax,4),%edx
  movslq %ebx,%rax
  mov    %edx,-0xfe0(%rbp,%rax,4)
  lea    0x1(%rbx),%eax
  cltq
  mov    %r14d,-0xfe0(%rbp,%rax,4)
L33:
  add    $0x2,%ebx
L67:
  cmp    %r15d,%ebx
  jl     L60
L42:
  test   %r13d,%r13d
  jne    L46
  mov    $0x0,%ebx
  jmp    L10
L36:
  mov    $0x0,%r12d
  jmp    L20
L93:
  mov    %ebx,%eax
  shl    $0x2,%eax
  add    %ebx,%eax
  add    %eax,%eax
  add    %r12d,%eax
  cltq
  mov    -0xfe0(%rbp,%rax,4),%eax
  mov    %eax,%esi
  lea    D19(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  add    $0x1,%r12d
L20:
  cmp    $0x9,%r12d
  jle    L93
  mov    $0xa,%edi
  call   <putchar@plt>
  add    $0x1,%ebx
L10:
  lea    0x1(%r15),%eax
  movslq %eax,%rdx
  imul   $0x66666667,%rdx,%rdx
  shr    $0x20,%rdx
  sar    $0x2,%edx
  sar    $0x1f,%eax
  mov    %eax,%ecx
  mov    %edx,%eax
  sub    %ecx,%eax
  cmp    %eax,%ebx
  jl     L36
  mov    $0x0,%eax
  mov    -0x38(%rbp),%rdx
  sub    %fs:0x28,%rdx
  je     L73
  call   <__stack_chk_fail@plt>
L73:
  add    $0xfb8,%rsp
  pop    %rbx
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  pop    %rbp
  ret
```

tool_calls: name: read_data
arguments: tag: D8
type_guessed: string
name: read_data
arguments: tag: D19
type_guessed: string

tool: D8: 

tool: D19: %3d 

assistant: ```c
int main(void) {
  register int ii, tmp, i, a, arrs;
  int array[1000] = {6, 2, 0, 1, 0, 0, 0, 4, 3, 8, 7, 8, 8, 5, 0, 2, 7, 0, 5, 9, 9, 4, 7, 5, 9, 4, 8, 8, 9, 7, 2, 8, 9, 4, 9, 9, 4, 1, 5, 0, 0, 3, 8, 0, 0, 0, 2, 0, 0, 9, 9, 9, 5, 6, 6, 5, 0, 4, 5, 2, 1, 9, 0, 1, 4, 1, 2, 0, 2, 8, 0, 4, 3, 0, 4, 3, 0, 9, 3, 2, 8, 2, 3, 4, 0, 9, 1, 1, 5, 8, 5, 7, 8, 5, 0, 4, 8, 4, 4, 2, 2, 7, 7, 5, 7, 3, 1, 0, 4, 6, 2, 3, 1, 8, 9, 1, 9, 2, 4, 5, 0, 9, 4, 0, 6, 6, 4, 4, 0, 9, 7, 3, 6, 6, 0, 5, 1, 3, 5, 6, 0, 0, 1, 3, 0, 0, 4, 9, 4, 1, 6, 6, 0, 0, 7, 7, 6, 1, 3, 7, 2, 2, 2, 0, 0, 2, 6, 2, 8, 3, 0, 0, 5, 1, 3, 5, 3, 9, 5, 9, 0, 1, 5, 3, 4, 2, 0, 0, 6, 5, 9, 0, 8, 1, 1, 0, 6, 9, 2, 6, 2, 4, 6, 8, 5, 9, 5, 0, 0, 0, 9, 1, 4, 5, 6, 8, 9, 8, 0, 5, 3, 0, 6, 3, 3, 9, 4, 1, 8, 8, 7, 2, 3, 3, 2, 8, 4, 8, 1, 7, 0, 0, 0, 4, 7, 6, 4, 7, 4, 5, 4, 7, 5, 0, 1, 0, 1, 7, 2, 1, 5, 1, 4, 8, 7, 8, 9, 1, 8, 0, 8, 9, 2, 8, 5, 0, 6, 0, 9, 0, 5, 3, 8, 2, 6, 1, 4, 7, 8, 8, 9, 3, 0, 5, 4, 7, 5, 3, 0, 4, 3, 1, 5, 7, 1, 0, 9, 8, 2, 8, 0, 9, 2, 8, 3, 0, 1, 8, 9, 1, 6, 0, 5, 8, 5, 9, 7, 3, 4, 8, 7, 9, 1, 4, 6, 4, 4, 6, 2, 9, 6, 5, 8, 0, 3, 2, 0, 7, 2, 0, 8, 0, 0, 5, 9, 8, 6, 6, 1, 2, 6, 0, 1, 7, 4, 8, 4, 0, 6, 8, 9, 2, 3, 0, 3, 7, 4, 5, 6, 6, 5, 6, 6, 8, 4, 7, 6, 0, 4, 9, 3, 2, 9, 6, 0, 3, 6, 4, 3, 2, 4, 5, 7, 8, 5, 2, 7, 9, 7, 3, 7, 3, 9, 5, 3, 5, 3, 1, 6, 9, 0, 1, 1, 9, 9, 1, 2, 6, 7, 7, 8, 2, 2, 7, 0, 7, 9, 9, 8, 7, 2, 5, 2, 3, 1, 5, 9, 6, 6, 7, 5, 8, 0, 6, 7, 9, 0, 1, 5, 9, 8, 6, 3, 3, 3, 5, 0, 3, 4, 9, 0, 6, 6, 2, 2, 9, 9, 1, 5, 7, 0, 0, 5, 0, 7, 4, 1, 7, 5, 7, 6, 5, 5, 0, 8, 8, 5, 1, 1, 0, 2, 3, 8, 8, 7, 0, 0, 8, 3, 5, 5, 5, 8, 2, 5, 5, 6, 9, 4, 3, 8, 2, 9, 3, 4, 9, 1, 2, 0, 5, 4, 4, 8, 2, 5, 8, 5, 5, 6, 0, 0, 4, 6, 0, 6, 3, 5, 5, 2, 1, 8, 0, 4, 9, 3, 0, 1, 7, 2, 1, 2, 6, 8, 2, 1, 3, 2, 8, 8, 9, 8, 0, 3, 6, 1, 1, 2, 8, 6, 4, 0, 5, 7, 6, 6, 2, 8, 7, 1, 1, 1, 5, 9, 9, 8, 2, 2, 0, 0, 2, 1, 1, 2, 6, 7, 5, 8, 9, 4, 4, 6, 6, 1, 5, 4, 0, 9, 2, 7, 1, 5, 8, 6, 5, 7, 6, 9, 1, 9, 0, 3, 0, 1, 8, 9, 0, 3, 7, 2, 7, 3, 8, 3, 7, 3, 9, 7, 4, 2, 4, 5, 7, 5, 2, 4, 4, 8, 4, 8, 9, 6, 1, 0, 7, 9, 1, 9, 3, 8, 1, 2, 3, 9, 8, 2, 4, 7, 9, 9, 9, 6, 6, 9, 3, 8, 5, 7, 9, 1, 5, 8, 7, 9, 0, 6, 0, 1, 8, 3, 1, 9, 8, 5, 1, 6, 7, 7, 3, 9, 8, 5, 7, 5, 6, 0, 3, 3, 9, 4, 5, 7, 5, 4, 6, 5, 3, 6, 7, 1, 2, 0, 0, 0, 5, 1, 8, 5, 1, 1, 6, 9, 8, 3, 4, 4, 5, 0, 8, 4, 4, 3, 1, 9, 9, 9, 7, 2, 8, 6, 3, 0, 6, 6, 2, 2, 9, 0, 9, 0, 3, 7, 0, 2, 0, 4, 6, 7, 6, 6, 3, 3, 1, 5, 4, 1, 6, 1, 5, 4, 7, 9, 6, 4, 7, 0, 8, 6, 2, 9, 9, 6, 6, 9, 0, 8, 5, 8, 5, 2, 5, 8, 5, 8, 5, 9, 9, 4, 3, 5, 0, 0, 6, 7, 6, 5, 9, 6, 1, 2, 5, 0, 0, 3, 1, 2, 1, 7, 0, 8, 1, 7, 9, 8, 6, 6, 9, 5, 0, 2, 2, 1, 5, 0, 0, 1, 5, 1, 8, 9, 5, 5, 1, 5, 9, 3, 9, 2, 2, 0, 3, 5, 7, 2, 3, 3, 0, 2, 1, 1, 7, 5, 4, 2, 6, 6, 5, 3, 9, 5, 2, 5, 3, 6, 2, 4, 1, 2, 6, 3, 2, 1, 0, 1, 5, 5, 7, 6, 9, 0, 9, 6, 5, 5, 0, 3, 1, 6, 7, 0, 1, 1, 7, 4, 7, 0, 8, 8, 4, 7, 3, 8, 8, 5, 9, 4, 0, 8, 2, 0, 8, 1, 6, 4, 6, 7, 9, 9, 5, 6, 1, 6, 8, 9, 3, 7, 1, 3, 8, 5, 0, 1, 5, 1, 7, 6, 7, 9, 5, 9, 9, 5, 2, 6, 1, 8, 5, 1, 9, 0, 7, 0, 8, 7, 1, 1, 7, 4, 5, 5, 1, 7, 8, 6, 0, 7, 3, 7, 7, 0, 8};
  arrs = 999;
  a = 1;
  i = 1;
  while (a) {
    a = 0;
    i = (i) ? 0 : 1;
    for (ii = 0 + i; ii < arrs; ii = ii + 2) {
      if (array[ii] > array[ii + 1]) {
        a = 1;
        tmp = array[ii];
        array[ii] = array[ii + 1];
        array[ii + 1] = tmp;
      }
    }
  }
  for (ii = 0; ii < ((arrs + 1) / 10); ii++) {
    for (i = 0; i < 10; i++)
      printf("%3d ", array[i + ii * 10]);
    printf("\n");
  }
  return 0;
}
```