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

```asm
<main>:
  endbr64
  sub    $0x338,%rsp
  pxor   %xmm0,%xmm0
  xor    %esi,%esi
  mov    %fs:0x28,%rax
  mov    %rax,0x328(%rsp)
  xor    %eax,%eax
  movaps %xmm0,(%rsp)
  lea    0x50(%rsp),%rcx
  movaps %xmm0,0x10(%rsp)
  movaps %xmm0,0x20(%rsp)
  movaps %xmm0,0x30(%rsp)
  movaps %xmm0,0x40(%rsp)
  movdqa D397(%rip),%xmm0
  movaps %xmm0,0x50(%rsp)
  movdqa D245(%rip),%xmm0
  movaps %xmm0,0x60(%rsp)
  movdqa D407(%rip),%xmm0
  movaps %xmm0,0x70(%rsp)
  movdqa D418(%rip),%xmm0
  movaps %xmm0,0x80(%rsp)
  movdqa D189(%rip),%xmm0
  movaps %xmm0,0x90(%rsp)
  movdqa D4(%rip),%xmm0
  movaps %xmm0,0xa0(%rsp)
  movdqa D335(%rip),%xmm0
  movaps %xmm0,0xb0(%rsp)
  movdqa D282(%rip),%xmm0
  movaps %xmm0,0xc0(%rsp)
  movdqa D28(%rip),%xmm0
  movaps %xmm0,0xd0(%rsp)
  movdqa D328(%rip),%xmm0
  movaps %xmm0,0xe0(%rsp)
  movdqa D97(%rip),%xmm0
  movaps %xmm0,0xf0(%rsp)
  movdqa D247(%rip),%xmm0
  movaps %xmm0,0x100(%rsp)
  movdqa D430(%rip),%xmm0
  movaps %xmm0,0x110(%rsp)
  movdqa D432(%rip),%xmm0
  movaps %xmm0,0x120(%rsp)
  movdqa D255(%rip),%xmm0
  movaps %xmm0,0x130(%rsp)
  movdqa D197(%rip),%xmm0
  movaps %xmm0,0x140(%rsp)
  movdqa D257(%rip),%xmm0
  movaps %xmm0,0x150(%rsp)
  movdqa D362(%rip),%xmm0
  movaps %xmm0,0x160(%rsp)
  movdqa D226(%rip),%xmm0
  movaps %xmm0,0x170(%rsp)
  movdqa D347(%rip),%xmm0
  movaps %xmm0,0x180(%rsp)
  movdqa D88(%rip),%xmm0
  movaps %xmm0,0x190(%rsp)
  movdqa D356(%rip),%xmm0
  movaps %xmm0,0x1a0(%rsp)
  movdqa D82(%rip),%xmm0
  movaps %xmm0,0x1b0(%rsp)
  movdqa D318(%rip),%xmm0
  movaps %xmm0,0x1c0(%rsp)
  movdqa D141(%rip),%xmm0
  movaps %xmm0,0x1d0(%rsp)
  movdqa D161(%rip),%xmm0
  movaps %xmm0,0x1e0(%rsp)
  movdqa D14(%rip),%xmm0
  movaps %xmm0,0x1f0(%rsp)
  movdqa D34(%rip),%xmm0
  movaps %xmm0,0x200(%rsp)
  movdqa D143(%rip),%xmm0
  movaps %xmm0,0x210(%rsp)
  movdqa D447(%rip),%xmm0
  movaps %xmm0,0x220(%rsp)
  movdqa D380(%rip),%xmm0
  movaps %xmm0,0x230(%rsp)
  movdqa D49(%rip),%xmm0
  movaps %xmm0,0x240(%rsp)
  movdqa D256(%rip),%xmm0
  movaps %xmm0,0x250(%rsp)
  movdqa D70(%rip),%xmm0
  movaps %xmm0,0x260(%rsp)
  movdqa D52(%rip),%xmm0
  movaps %xmm0,0x270(%rsp)
  movdqa D399(%rip),%xmm0
  movaps %xmm0,0x280(%rsp)
  movdqa D55(%rip),%xmm0
  movaps %xmm0,0x290(%rsp)
  movdqa D146(%rip),%xmm0
  movaps %xmm0,0x2a0(%rsp)
  movdqa D218(%rip),%xmm0
  movaps %xmm0,0x2b0(%rsp)
  movdqa D11(%rip),%xmm0
  movaps %xmm0,0x2c0(%rsp)
  movdqa D83(%rip),%xmm0
  movaps %xmm0,0x2d0(%rsp)
  movdqa D379(%rip),%xmm0
  movaps %xmm0,0x2e0(%rsp)
  movdqa D153(%rip),%xmm0
  movaps %xmm0,0x2f0(%rsp)
  movdqa D21(%rip),%xmm0
  movaps %xmm0,0x300(%rsp)
  movdqa D402(%rip),%xmm0
  movaps %xmm0,0x310(%rsp)
L23:
  lea    -0x50(%rcx),%rax
  xor    %edx,%edx
  jmp    L18
L47:
  add    $0x4,%rax
  add    %esi,%edx
  cmp    %rcx,%rax
  je     L44
L18:
  cmp    %edx,(%rax)
  je     L47
  mov    $0x1,%eax
L9:
  mov    0x328(%rsp),%rdx
  sub    %fs:0x28,%rdx
  jne    L46
  add    $0x338,%rsp
  ret
L44:
  add    $0x1,%esi
  lea    0x50(%rax),%rcx
  cmp    $0xa,%esi
  jne    L23
  lea    D409(%rip),%rdi
  call   <printf@plt>
  xor    %eax,%eax
  jmp    L9
L46:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: unpack_data
arguments: label: D397
datatype: byte[16]
name: unpack_data
arguments: label: D245
datatype: byte[16]
name: unpack_data
arguments: label: D407
datatype: byte[16]
name: unpack_data
arguments: label: D418
datatype: byte[16]
name: unpack_data
arguments: label: D189
datatype: byte[16]
name: unpack_data
arguments: label: D4
datatype: byte[16]
name: unpack_data
arguments: label: D335
datatype: byte[16]
name: unpack_data
arguments: label: D282
datatype: byte[16]
name: unpack_data
arguments: label: D28
datatype: byte[16]
name: unpack_data
arguments: label: D328
datatype: byte[16]
name: unpack_data
arguments: label: D97
datatype: byte[16]
name: unpack_data
arguments: label: D247
datatype: byte[16]
name: unpack_data
arguments: label: D430
datatype: byte[16]
name: unpack_data
arguments: label: D432
datatype: byte[16]
name: unpack_data
arguments: label: D255
datatype: byte[16]
name: unpack_data
arguments: label: D197
datatype: byte[16]
name: unpack_data
arguments: label: D257
datatype: byte[16]
name: unpack_data
arguments: label: D362
datatype: byte[16]
name: unpack_data
arguments: label: D226
datatype: byte[16]
name: unpack_data
arguments: label: D347
datatype: byte[16]
name: unpack_data
arguments: label: D88
datatype: byte[16]
name: unpack_data
arguments: label: D356
datatype: byte[16]
name: unpack_data
arguments: label: D82
datatype: byte[16]
name: unpack_data
arguments: label: D318
datatype: byte[16]
name: unpack_data
arguments: label: D141
datatype: byte[16]
name: unpack_data
arguments: label: D161
datatype: byte[16]
name: unpack_data
arguments: label: D14
datatype: byte[16]
name: unpack_data
arguments: label: D34
datatype: byte[16]
name: unpack_data
arguments: label: D143
datatype: byte[16]
name: unpack_data
arguments: label: D447
datatype: byte[16]
name: unpack_data
arguments: label: D380
datatype: byte[16]
name: unpack_data
arguments: label: D49
datatype: byte[16]
name: unpack_data
arguments: label: D256
datatype: byte[16]
name: unpack_data
arguments: label: D70
datatype: byte[16]
name: unpack_data
arguments: label: D52
datatype: byte[16]
name: unpack_data
arguments: label: D399
datatype: byte[16]
name: unpack_data
arguments: label: D55
datatype: byte[16]
name: unpack_data
arguments: label: D146
datatype: byte[16]
name: unpack_data
arguments: label: D218
datatype: byte[16]
name: unpack_data
arguments: label: D11
datatype: byte[16]
name: unpack_data
arguments: label: D83
datatype: byte[16]
name: unpack_data
arguments: label: D379
datatype: byte[16]
name: unpack_data
arguments: label: D153
datatype: byte[16]
name: unpack_data
arguments: label: D21
datatype: byte[16]
name: unpack_data
arguments: label: D402
datatype: byte[16]
name: unpack_data
arguments: label: D409
datatype: string

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

tool: {"D245": [0x04,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x07,0x00,0x00,0x00]}

tool: {"D407": [0x08,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x0b,0x00,0x00,0x00]}

tool: {"D418": [0x0c,0x00,0x00,0x00,0x0d,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x0f,0x00,0x00,0x00]}

tool: {"D189": [0x10,0x00,0x00,0x00,0x11,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x13,0x00,0x00,0x00]}

tool: {"D4": [0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x06,0x00,0x00,0x00]}

tool: {"D335": [0x08,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x0e,0x00,0x00,0x00]}

tool: {"D282": [0x10,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x16,0x00,0x00,0x00]}

tool: {"D28": [0x18,0x00,0x00,0x00,0x1a,0x00,0x00,0x00,0x1c,0x00,0x00,0x00,0x1e,0x00,0x00,0x00]}

tool: {"D328": [0x20,0x00,0x00,0x00,0x22,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x26,0x00,0x00,0x00]}

tool: {"D97": [0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x09,0x00,0x00,0x00]}

tool: {"D247": [0x0c,0x00,0x00,0x00,0x0f,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x15,0x00,0x00,0x00]}

tool: {"D430": [0x18,0x00,0x00,0x00,0x1b,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x21,0x00,0x00,0x00]}

tool: {"D432": [0x24,0x00,0x00,0x00,0x27,0x00,0x00,0x00,0x2a,0x00,0x00,0x00,0x2d,0x00,0x00,0x00]}

tool: {"D255": [0x30,0x00,0x00,0x00,0x33,0x00,0x00,0x00,0x36,0x00,0x00,0x00,0x39,0x00,0x00,0x00]}

tool: {"D197": [0x00,0x00,0x00,0x00,0x04,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x0c,0x00,0x00,0x00]}

tool: {"D257": [0x10,0x00,0x00,0x00,0x14,0x00,0x00,0x00,0x18,0x00,0x00,0x00,0x1c,0x00,0x00,0x00]}

tool: {"D362": [0x20,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x2c,0x00,0x00,0x00]}

tool: {"D226": [0x30,0x00,0x00,0x00,0x34,0x00,0x00,0x00,0x38,0x00,0x00,0x00,0x3c,0x00,0x00,0x00]}

tool: {"D347": [0x40,0x00,0x00,0x00,0x44,0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x4c,0x00,0x00,0x00]}

tool: {"D88": [0x00,0x00,0x00,0x00,0x05,0x00,0x00,0x00,0x0a,0x00,0x00,0x00,0x0f,0x00,0x00,0x00]}

tool: {"D356": [0x14,0x00,0x00,0x00,0x19,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x23,0x00,0x00,0x00]}

tool: {"D82": [0x28,0x00,0x00,0x00,0x2d,0x00,0x00,0x00,0x32,0x00,0x00,0x00,0x37,0x00,0x00,0x00]}

tool: {"D318": [0x3c,0x00,0x00,0x00,0x41,0x00,0x00,0x00,0x46,0x00,0x00,0x00,0x4b,0x00,0x00,0x00]}

tool: {"D141": [0x50,0x00,0x00,0x00,0x55,0x00,0x00,0x00,0x5a,0x00,0x00,0x00,0x5f,0x00,0x00,0x00]}

tool: {"D161": [0x00,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x0c,0x00,0x00,0x00,0x12,0x00,0x00,0x00]}

tool: {"D14": [0x18,0x00,0x00,0x00,0x1e,0x00,0x00,0x00,0x24,0x00,0x00,0x00,0x2a,0x00,0x00,0x00]}

tool: {"D34": [0x30,0x00,0x00,0x00,0x36,0x00,0x00,0x00,0x3c,0x00,0x00,0x00,0x42,0x00,0x00,0x00]}

tool: {"D143": [0x48,0x00,0x00,0x00,0x4e,0x00,0x00,0x00,0x54,0x00,0x00,0x00,0x5a,0x00,0x00,0x00]}

tool: {"D447": [0x60,0x00,0x00,0x00,0x66,0x00,0x00,0x00,0x6c,0x00,0x00,0x00,0x72,0x00,0x00,0x00]}

tool: {"D380": [0x00,0x00,0x00,0x00,0x07,0x00,0x00,0x00,0x0e,0x00,0x00,0x00,0x15,0x00,0x00,0x00]}

tool: {"D49": [0x1c,0x00,0x00,0x00,0x23,0x00,0x00,0x00,0x2a,0x00,0x00,0x00,0x31,0x00,0x00,0x00]}

tool: {"D256": [0x38,0x00,0x00,0x00,0x3f,0x00,0x00,0x00,0x46,0x00,0x00,0x00,0x4d,0x00,0x00,0x00]}

tool: {"D70": [0x54,0x00,0x00,0x00,0x5b,0x00,0x00,0x00,0x62,0x00,0x00,0x00,0x69,0x00,0x00,0x00]}

tool: {"D52": [0x70,0x00,0x00,0x00,0x77,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x85,0x00,0x00,0x00]}

tool: {"D399": [0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x10,0x00,0x00,0x00,0x18,0x00,0x00,0x00]}

tool: {"D55": [0x20,0x00,0x00,0x00,0x28,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x38,0x00,0x00,0x00]}

tool: {"D146": [0x40,0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x50,0x00,0x00,0x00,0x58,0x00,0x00,0x00]}

tool: {"D218": [0x60,0x00,0x00,0x00,0x68,0x00,0x00,0x00,0x70,0x00,0x00,0x00,0x78,0x00,0x00,0x00]}

tool: {"D11": [0x80,0x00,0x00,0x00,0x88,0x00,0x00,0x00,0x90,0x00,0x00,0x00,0x98,0x00,0x00,0x00]}

tool: {"D83": [0x00,0x00,0x00,0x00,0x09,0x00,0x00,0x00,0x12,0x00,0x00,0x00,0x1b,0x00,0x00,0x00]}

tool: {"D379": [0x24,0x00,0x00,0x00,0x2d,0x00,0x00,0x00,0x36,0x00,0x00,0x00,0x3f,0x00,0x00,0x00]}

tool: {"D153": [0x48,0x00,0x00,0x00,0x51,0x00,0x00,0x00,0x5a,0x00,0x00,0x00,0x63,0x00,0x00,0x00]}

tool: {"D21": [0x6c,0x00,0x00,0x00,0x75,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,0x87,0x00,0x00,0x00]}

tool: {"D402": [0x90,0x00,0x00,0x00,0x99,0x00,0x00,0x00,0xa2,0x00,0x00,0x00,0xab,0x00,0x00,0x00]}

tool: D409: PASS


assistant: ```c
int main() {
  int a[10][20];
#pragma acc parallel loop
  for (int i = 0; i < 10; i++) {
    for (int j = 0; j < 20; j++) {
      a[i][j] = i * j;
    }
  }
  for (int i = 0; i < 10; i++) {
    for (int j = 0; j < 20; j++) {
      if (a[i][j] != i * j)
        return 1;
    }
  }
  printf("PASS\n");
  return 0;
}
```