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

```asm
<main>:
  endbr64
  push   %r12
  push   %rbp
  push   %rbx
  xor    %ebx,%ebx
  sub    $0x1a0,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,0x198(%rsp)
  xor    %eax,%eax
  lea    0xc0(%rsp),%r12
  mov    %rsp,%rbp
  call   <check_vect@plt>
  movdqa D63(%rip),%xmm0
  movdqa D189(%rip),%xmm8
  lea    0x138(%rsp),%rdi
  movdqa D133(%rip),%xmm9
  movdqa D237(%rip),%xmm6
  mov    $0x5,%edx
  mov    $0x5,%esi
  movdqa D49(%rip),%xmm5
  movdqa D124(%rip),%xmm4
  movaps %xmm0,0xd0(%rsp)
  movdqa D100(%rip),%xmm3
  movdqa D21(%rip),%xmm2
  movaps %xmm8,0x160(%rsp)
  movdqa D157(%rip),%xmm1
  movdqa D23(%rip),%xmm0
  movaps %xmm9,0xc0(%rsp)
  movdqa D219(%rip),%xmm7
  movaps %xmm6,0xe0(%rsp)
  movdqa D218(%rip),%xmm8
  movdqa D139(%rip),%xmm10
  movaps %xmm5,0xf0(%rsp)
  movaps %xmm4,0x100(%rsp)
  movaps %xmm3,0x110(%rsp)
  movaps %xmm2,0x120(%rsp)
  movaps %xmm1,0x130(%rsp)
  movaps %xmm0,0x140(%rsp)
  movaps %xmm7,0x150(%rsp)
  movaps %xmm8,0x170(%rsp)
  movq   $0x1a,0x190(%rsp)
  movaps %xmm10,0x180(%rsp)
  call   <foo@plt>
  movdqa D219(%rip),%xmm7
  movdqa D133(%rip),%xmm9
  movdqa D237(%rip),%xmm6
  movdqa D49(%rip),%xmm5
  movdqa D218(%rip),%xmm8
  movdqa D124(%rip),%xmm4
  movaps %xmm9,(%rsp)
  movdqa D100(%rip),%xmm3
  movdqa D21(%rip),%xmm2
  movaps %xmm7,0x30(%rsp)
  movdqa D110(%rip),%xmm9
  movdqa D1(%rip),%xmm7
  movaps %xmm8,0x20(%rsp)
  movdqa D157(%rip),%xmm1
  movdqa D23(%rip),%xmm0
  movaps %xmm6,0x50(%rsp)
  movaps %xmm9,0x10(%rsp)
  movaps %xmm7,0x40(%rsp)
  movaps %xmm5,0x60(%rsp)
  movaps %xmm4,0x70(%rsp)
  movaps %xmm3,0x80(%rsp)
  movaps %xmm2,0x90(%rsp)
  movaps %xmm1,0xa0(%rsp)
  movaps %xmm0,0xb0(%rsp)
  nopl   0x0(%rax)
L3:
  mov    0x0(%rbp,%rbx,1),%rax
  cmp    %rax,(%r12,%rbx,1)
  je     L4
  xor    %eax,%eax
  call   <__builtin_abort@plt>
L4:
  add    $0x8,%rbx
  cmp    $0xc0,%rbx
  jne    L3
  mov    0x198(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L1
  add    $0x1a0,%rsp
  xor    %eax,%eax
  pop    %rbx
  pop    %rbp
  pop    %r12
  ret
L1:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: disassemble_data
arguments: tag: D63
type: byte[16]
name: disassemble_data
arguments: tag: D189
type: byte[16]
name: disassemble_data
arguments: tag: D133
type: byte[16]
name: disassemble_data
arguments: tag: D237
type: byte[16]
name: disassemble_data
arguments: tag: D49
type: byte[16]
name: disassemble_data
arguments: tag: D124
type: byte[16]
name: disassemble_data
arguments: tag: D100
type: byte[16]
name: disassemble_data
arguments: tag: D21
type: byte[16]
name: disassemble_data
arguments: tag: D157
type: byte[16]
name: disassemble_data
arguments: tag: D23
type: byte[16]
name: disassemble_data
arguments: tag: D219
type: byte[16]
name: disassemble_data
arguments: tag: D218
type: byte[16]
name: disassemble_data
arguments: tag: D139
type: byte[16]
name: disassemble_data
arguments: tag: D110
type: byte[16]
name: disassemble_data
arguments: tag: D1
type: byte[16]

tool: {"D63": [0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00]}

tool: {"D189": [0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00]}

tool: {"D133": [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00]}

tool: {"D237": [0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00]}

tool: {"D49": [0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00]}

tool: {"D124": [0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x00,0x00,0x00,0x00]}

tool: {"D100": [0x0a,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0b,0x00,0x00,0x00,0x00,0x00,0x00,0x00]}

tool: {"D21": [0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0d,0x00,0x00,0x00,0x00,0x00,0x00,0x00]}

tool: {"D157": [0x0e,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00]}

tool: {"D23": [0x10,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x00,0x00,0x00,0x00]}

tool: {"D219": [0x12,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x13,0x00,0x00,0x00,0x00,0x00,0x00,0x00]}

tool: {"D218": [0x16,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x17,0x00,0x00,0x00,0x00,0x00,0x00,0x00]}

tool: {"D139": [0x18,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x00,0x00,0x00,0x00]}

tool: {"D110": [0x02,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x15,0x00,0x00,0x00,0x00,0x00,0x00,0x00]}

tool: {"D1": [0x14,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00]}

assistant: ```c
int main() {
  long a[3 * 9];
  check_vect();
  for (int i = 0; i < 3 * 9; ++i)
    a[i] = i;
  foo(a + 3 * 5, 6 - 1, 5);
  const long b[3 * 8] = {0, 1, 2, 21, 22, 23, 18, 19, 20, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17};
  for (int i = 0; i < 3 * 8; ++i)
    if (a[i] != b[i])
      __builtin_abort();
  return 0;
}
```