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

```asm
<gen_outputtest>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x10,%rsp
  lea    D14(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D22(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D132(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D69(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D180(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D118(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D29(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D111(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D149(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  movl   $0x0,-0x4(%rbp)
  jmp    L40
L44:
  mov    -0x4(%rbp),%edx
  mov    -0x4(%rbp),%eax
  mov    %eax,%esi
  lea    D26(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    -0x4(%rbp),%eax
  lea    0x1(%rax),%edx
  mov    -0x4(%rbp),%eax
  mov    %eax,%esi
  lea    D78(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  addl   $0x2,-0x4(%rbp)
L40:
  cmpl   $0x3f,-0x4(%rbp)
  jle    L44
  movl   $0x0,-0x4(%rbp)
  jmp    L54
L1:
  mov    -0x4(%rbp),%eax
  and    $0xf,%eax
  test   %eax,%eax
  jne    L53
  mov    -0x4(%rbp),%eax
  mov    %eax,%esi
  lea    D145(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
L53:
  mov    -0x4(%rbp),%eax
  mov    %eax,%esi
  lea    D33(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  addl   $0x2,-0x4(%rbp)
L54:
  cmpl   $0x3f,-0x4(%rbp)
  jle    L1
  lea    D48(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D93(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D154(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  lea    D185(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  movl   $0x0,-0x4(%rbp)
  jmp    L23
L66:
  mov    -0x4(%rbp),%edx
  mov    -0x4(%rbp),%eax
  mov    %eax,%esi
  lea    D58(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    -0x4(%rbp),%edx
  mov    -0x4(%rbp),%eax
  mov    %eax,%esi
  lea    D20(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  addl   $0x2,-0x4(%rbp)
L23:
  cmpl   $0x3f,-0x4(%rbp)
  jle    L66
  nop
  nop
  leave
  ret
```

tool_calls: name: unpack_data
arguments: label: D14
type_guessed: string
name: unpack_data
arguments: label: D22
type_guessed: string
name: unpack_data
arguments: label: D132
type_guessed: string
name: unpack_data
arguments: label: D69
type_guessed: string
name: unpack_data
arguments: label: D180
type_guessed: string
name: unpack_data
arguments: label: D118
type_guessed: string
name: unpack_data
arguments: label: D29
type_guessed: string
name: unpack_data
arguments: label: D111
type_guessed: string
name: unpack_data
arguments: label: D149
type_guessed: string
name: unpack_data
arguments: label: D26
type_guessed: string
name: unpack_data
arguments: label: D78
type_guessed: string
name: unpack_data
arguments: label: D145
type_guessed: string
name: unpack_data
arguments: label: D33
type_guessed: string
name: unpack_data
arguments: label: D48
type_guessed: string
name: unpack_data
arguments: label: D93
type_guessed: string
name: unpack_data
arguments: label: D154
type_guessed: string
name: unpack_data
arguments: label: D185
type_guessed: string
name: unpack_data
arguments: label: D58
type_guessed: string
name: unpack_data
arguments: label: D20
type_guessed: string

tool: D14: // Output test program

tool: D22: #include "vu.mac"

tool: D132: .parm VU 0 stereopeak

tool: D69: .gpr VUTMP

tool: D180: .gpr TMP

tool: D118: .gpr TMP_L

tool: D29: .gpr TMP_R

tool: D111: .send TEST_L 0

tool: D149: .send TEST_R 1

tool: D26: .output O%d_L	%d


tool: D78: .output O%d_R	%d


tool: D145: .parm G%x		0		group


tool: D33: .parm OUT%d	0		stereo


tool: D48: ACC3(TMP_L, TEST_L, 0, 0)

tool: D93: ACC3(TMP_R, TEST_R, 0, 0)

tool: D154: VU(VU_L, TMP_L)

tool: D185: VU(VU_R, TMP_R)

tool: D58: MACS(O%d_L, 0, TMP_L, OUT%d_L)


tool: D20: MACS(O%d_R, 0, TMP_R, OUT%d_R)


assistant: ```c
void gen_outputtest(void) {
  int i;
  printf("// Output test program\n");
  printf("#include \"vu.mac\"\n");
  printf(".parm VU 0 stereopeak\n");
  printf(".gpr VUTMP\n");
  printf(".gpr TMP\n");
  printf(".gpr TMP_L\n");
  printf(".gpr TMP_R\n");
  printf(".send TEST_L 0\n");
  printf(".send TEST_R 1\n");
  for (i = 0; i < 64; i += 2) {
    printf(".output O%d_L	%d\n", i, i);
    printf(".output O%d_R	%d\n", i, i + 1);
  }
  for (i = 0; i < 64; i += 2) {
    if (!(i % 16))
      printf(".parm G%x		0		group\n", i);
    printf(".parm OUT%d	0		stereo\n", i);
  }
  printf("ACC3(TMP_L, TEST_L, 0, 0)\n");
  printf("ACC3(TMP_R, TEST_R, 0, 0)\n");
  printf("VU(VU_L, TMP_L)\n");
  printf("VU(VU_R, TMP_R)\n");
  for (i = 0; i < 64; i += 2) {
    printf("MACS(O%d_L, 0, TMP_L, OUT%d_L)\n", i, i);
    printf("MACS(O%d_R, 0, TMP_R, OUT%d_R)\n", i, i);
  }
}
```