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

```asm
<main1>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x110,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  pxor   %xmm0,%xmm0
  movss  %xmm0,-0xb0(%rbp)
  movss  D18(%rip),%xmm0
  movss  %xmm0,-0xac(%rbp)
  movss  D185(%rip),%xmm0
  movss  %xmm0,-0xa8(%rbp)
  movss  D89(%rip),%xmm0
  movss  %xmm0,-0xa4(%rbp)
  movss  D254(%rip),%xmm0
  movss  %xmm0,-0xa0(%rbp)
  movss  D180(%rip),%xmm0
  movss  %xmm0,-0x9c(%rbp)
  movss  D5(%rip),%xmm0
  movss  %xmm0,-0x98(%rbp)
  movss  D175(%rip),%xmm0
  movss  %xmm0,-0x94(%rbp)
  movss  D62(%rip),%xmm0
  movss  %xmm0,-0x90(%rbp)
  movss  D245(%rip),%xmm0
  movss  %xmm0,-0x8c(%rbp)
  movss  D183(%rip),%xmm0
  movss  %xmm0,-0x88(%rbp)
  movss  D345(%rip),%xmm0
  movss  %xmm0,-0x84(%rbp)
  movss  D187(%rip),%xmm0
  movss  %xmm0,-0x80(%rbp)
  movss  D133(%rip),%xmm0
  movss  %xmm0,-0x7c(%rbp)
  movss  D70(%rip),%xmm0
  movss  %xmm0,-0x78(%rbp)
  movss  D272(%rip),%xmm0
  movss  %xmm0,-0x74(%rbp)
  movss  D52(%rip),%xmm0
  movss  %xmm0,-0x70(%rbp)
  movss  D263(%rip),%xmm0
  movss  %xmm0,-0x6c(%rbp)
  movss  D176(%rip),%xmm0
  movss  %xmm0,-0x68(%rbp)
  movss  D357(%rip),%xmm0
  movss  %xmm0,-0x64(%rbp)
  pxor   %xmm0,%xmm0
  movss  %xmm0,-0x60(%rbp)
  movss  D257(%rip),%xmm0
  movss  %xmm0,-0x5c(%rbp)
  movss  D378(%rip),%xmm0
  movss  %xmm0,-0x58(%rbp)
  movss  D18(%rip),%xmm0
  movss  %xmm0,-0x54(%rbp)
  movss  D367(%rip),%xmm0
  movss  %xmm0,-0x50(%rbp)
  movss  D316(%rip),%xmm0
  movss  %xmm0,-0x4c(%rbp)
  movss  D185(%rip),%xmm0
  movss  %xmm0,-0x48(%rbp)
  movss  D318(%rip),%xmm0
  movss  %xmm0,-0x44(%rbp)
  movss  D77(%rip),%xmm0
  movss  %xmm0,-0x40(%rbp)
  movss  D89(%rip),%xmm0
  movss  %xmm0,-0x3c(%rbp)
  movss  D255(%rip),%xmm0
  movss  %xmm0,-0x38(%rbp)
  movss  D208(%rip),%xmm0
  movss  %xmm0,-0x34(%rbp)
  movss  D254(%rip),%xmm0
  movss  %xmm0,-0x30(%rbp)
  movss  D190(%rip),%xmm0
  movss  %xmm0,-0x2c(%rbp)
  movss  D330(%rip),%xmm0
  movss  %xmm0,-0x28(%rbp)
  movss  D180(%rip),%xmm0
  movss  %xmm0,-0x24(%rbp)
  movss  D273(%rip),%xmm0
  movss  %xmm0,-0x20(%rbp)
  movss  D347(%rip),%xmm0
  movss  %xmm0,-0x1c(%rbp)
  movss  D5(%rip),%xmm0
  movss  %xmm0,-0x18(%rbp)
  movss  D188(%rip),%xmm0
  movss  %xmm0,-0x14(%rbp)
  movl   $0x0,-0x104(%rbp)
  jmp    L17
L61:
  mov    -0x104(%rbp),%eax
  cltq
  movss  -0xb0(%rbp,%rax,4),%xmm1
  mov    -0x104(%rbp),%eax
  cltq
  movss  -0x60(%rbp,%rax,4),%xmm0
  mulss  %xmm1,%xmm0
  mov    -0x104(%rbp),%eax
  cltq
  movss  %xmm0,-0x100(%rbp,%rax,4)
  addl   $0x1,-0x104(%rbp)
L17:
  cmpl   $0x13,-0x104(%rbp)
  jle    L61
  movl   $0x0,-0x104(%rbp)
  jmp    L39
L38:
  mov    -0x104(%rbp),%eax
  cltq
  movss  -0x100(%rbp,%rax,4),%xmm0
  mov    -0x104(%rbp),%eax
  cltq
  movss  -0xb0(%rbp,%rax,4),%xmm2
  mov    -0x104(%rbp),%eax
  cltq
  movss  -0x60(%rbp,%rax,4),%xmm1
  mulss  %xmm2,%xmm1
  ucomiss %xmm1,%xmm0
  jp     L9
  ucomiss %xmm1,%xmm0
  je     L0
L9:
  mov    $0x0,%eax
  call   <abort@plt>
L0:
  addl   $0x1,-0x104(%rbp)
L39:
  cmpl   $0x13,-0x104(%rbp)
  jle    L38
  mov    $0x0,%eax
  mov    -0x8(%rbp),%rdx
  sub    %fs:0x28,%rdx
  je     L67
  call   <__stack_chk_fail@plt>
L67:
  leave
  ret
```

tool_calls: name: parse_data
arguments: data_label: D18
type_guessed: byte[4]
name: parse_data
arguments: data_label: D185
type_guessed: byte[4]
name: parse_data
arguments: data_label: D89
type_guessed: byte[4]
name: parse_data
arguments: data_label: D254
type_guessed: byte[4]
name: parse_data
arguments: data_label: D180
type_guessed: byte[4]
name: parse_data
arguments: data_label: D5
type_guessed: byte[4]
name: parse_data
arguments: data_label: D175
type_guessed: byte[4]
name: parse_data
arguments: data_label: D62
type_guessed: byte[4]
name: parse_data
arguments: data_label: D245
type_guessed: byte[4]
name: parse_data
arguments: data_label: D183
type_guessed: byte[4]
name: parse_data
arguments: data_label: D345
type_guessed: byte[4]
name: parse_data
arguments: data_label: D187
type_guessed: byte[4]
name: parse_data
arguments: data_label: D133
type_guessed: byte[4]
name: parse_data
arguments: data_label: D70
type_guessed: byte[4]
name: parse_data
arguments: data_label: D272
type_guessed: byte[4]
name: parse_data
arguments: data_label: D52
type_guessed: byte[4]
name: parse_data
arguments: data_label: D263
type_guessed: byte[4]
name: parse_data
arguments: data_label: D176
type_guessed: byte[4]
name: parse_data
arguments: data_label: D357
type_guessed: byte[4]
name: parse_data
arguments: data_label: D257
type_guessed: byte[4]
name: parse_data
arguments: data_label: D378
type_guessed: byte[4]
name: parse_data
arguments: data_label: D367
type_guessed: byte[4]
name: parse_data
arguments: data_label: D316
type_guessed: byte[4]
name: parse_data
arguments: data_label: D318
type_guessed: byte[4]
name: parse_data
arguments: data_label: D77
type_guessed: byte[4]
name: parse_data
arguments: data_label: D255
type_guessed: byte[4]
name: parse_data
arguments: data_label: D208
type_guessed: byte[4]
name: parse_data
arguments: data_label: D190
type_guessed: byte[4]
name: parse_data
arguments: data_label: D330
type_guessed: byte[4]
name: parse_data
arguments: data_label: D273
type_guessed: byte[4]
name: parse_data
arguments: data_label: D347
type_guessed: byte[4]
name: parse_data
arguments: data_label: D188
type_guessed: byte[4]

tool: {"D18": [0x00,0x00,0x40,0x40]}

tool: {"D185": [0x00,0x00,0xc0,0x40]}

tool: {"D89": [0x00,0x00,0x10,0x41]}

tool: {"D254": [0x00,0x00,0x40,0x41]}

tool: {"D180": [0x00,0x00,0x70,0x41]}

tool: {"D5": [0x00,0x00,0x90,0x41]}

tool: {"D175": [0x00,0x00,0xa8,0x41]}

tool: {"D62": [0x00,0x00,0xc0,0x41]}

tool: {"D245": [0x00,0x00,0xd8,0x41]}

tool: {"D183": [0x00,0x00,0xf0,0x41]}

tool: {"D345": [0x00,0x00,0x04,0x42]}

tool: {"D187": [0x00,0x00,0x10,0x42]}

tool: {"D133": [0x00,0x00,0x1c,0x42]}

tool: {"D70": [0x00,0x00,0x28,0x42]}

tool: {"D272": [0x00,0x00,0x34,0x42]}

tool: {"D52": [0x00,0x00,0x40,0x42]}

tool: {"D263": [0x00,0x00,0x4c,0x42]}

tool: {"D176": [0x00,0x00,0x58,0x42]}

tool: {"D357": [0x00,0x00,0x64,0x42]}

tool: {"D257": [0x00,0x00,0x80,0x3f]}

tool: {"D378": [0x00,0x00,0x00,0x40]}

tool: {"D367": [0x00,0x00,0x80,0x40]}

tool: {"D316": [0x00,0x00,0xa0,0x40]}

tool: {"D318": [0x00,0x00,0xe0,0x40]}

tool: {"D77": [0x00,0x00,0x00,0x41]}

tool: {"D255": [0x00,0x00,0x20,0x41]}

tool: {"D208": [0x00,0x00,0x30,0x41]}

tool: {"D190": [0x00,0x00,0x50,0x41]}

tool: {"D330": [0x00,0x00,0x60,0x41]}

tool: {"D273": [0x00,0x00,0x80,0x41]}

tool: {"D347": [0x00,0x00,0x88,0x41]}

tool: {"D188": [0x00,0x00,0x98,0x41]}

assistant: ```c
int main1() {
  int i;
  float a[20];
  float b[20] = {0, 3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57};
  float c[20] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19};
  for (i = 0; i < 20; i++) {
    a[i] = b[i] * c[i];
  }
  for (i = 0; i < 20; i++) {
    if (a[i] != b[i] * c[i])
      abort();
  }
  return 0;
}
```