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

```asm
<test1>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0x100,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  lea    D96(%rip),%rax
  mov    %rax,-0xf0(%rbp)
  lea    D226(%rip),%rax
  mov    %rax,-0xe8(%rbp)
  lea    D112(%rip),%rax
  mov    %rax,-0xe0(%rbp)
  lea    D24(%rip),%rax
  mov    %rax,-0xd8(%rbp)
  lea    D135(%rip),%rax
  mov    %rax,-0xd0(%rbp)
  lea    D191(%rip),%rax
  mov    %rax,-0xc8(%rbp)
  lea    D53(%rip),%rax
  mov    %rax,-0xc0(%rbp)
  lea    D145(%rip),%rax
  mov    %rax,-0xb8(%rbp)
  lea    D56(%rip),%rax
  mov    %rax,-0xb0(%rbp)
  lea    D220(%rip),%rax
  mov    %rax,-0xa8(%rbp)
  lea    D13(%rip),%rax
  mov    %rax,-0xa0(%rbp)
  lea    D211(%rip),%rax
  mov    %rax,-0x98(%rbp)
  lea    D186(%rip),%rax
  mov    %rax,-0x90(%rbp)
  lea    D156(%rip),%rax
  mov    %rax,-0x88(%rbp)
  lea    D149(%rip),%rax
  mov    %rax,-0x80(%rbp)
  lea    D169(%rip),%rax
  mov    %rax,-0x78(%rbp)
  lea    D69(%rip),%rax
  mov    %rax,-0x70(%rbp)
  lea    D146(%rip),%rax
  mov    %rax,-0x68(%rbp)
  lea    D19(%rip),%rax
  mov    %rax,-0x60(%rbp)
  lea    D144(%rip),%rax
  mov    %rax,-0x58(%rbp)
  lea    D18(%rip),%rax
  mov    %rax,-0x50(%rbp)
  movl   $0x15,-0xf4(%rbp)
  lea    D35(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  movl   $0x0,-0xf8(%rbp)
  jmp    L14
L28:
  mov    -0xf8(%rbp),%eax
  cltq
  mov    -0xf0(%rbp,%rax,8),%rdx
  lea    -0x40(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcpy@plt>
  lea    -0x40(%rbp),%rax
  mov    %rax,%rdi
  call   <mystrupr@plt>
  mov    -0xf8(%rbp),%eax
  cltq
  mov    -0xf0(%rbp,%rax,8),%rax
  lea    -0x40(%rbp),%rdx
  mov    %rax,%rsi
  lea    D66(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  addl   $0x1,-0xf8(%rbp)
L14:
  mov    -0xf8(%rbp),%eax
  cmp    -0xf4(%rbp),%eax
  jl     L28
  nop
  mov    -0x8(%rbp),%rax
  sub    %fs:0x28,%rax
  je     L19
  call   <__stack_chk_fail@plt>
L19:
  leave
  ret
```

tool_calls: name: disassemble_data
arguments: label: D96
datatype: string
name: disassemble_data
arguments: label: D226
datatype: string
name: disassemble_data
arguments: label: D112
datatype: string
name: disassemble_data
arguments: label: D24
datatype: string
name: disassemble_data
arguments: label: D135
datatype: string
name: disassemble_data
arguments: label: D191
datatype: string
name: disassemble_data
arguments: label: D53
datatype: string
name: disassemble_data
arguments: label: D145
datatype: string
name: disassemble_data
arguments: label: D56
datatype: string
name: disassemble_data
arguments: label: D220
datatype: string
name: disassemble_data
arguments: label: D13
datatype: string
name: disassemble_data
arguments: label: D211
datatype: string
name: disassemble_data
arguments: label: D186
datatype: string
name: disassemble_data
arguments: label: D156
datatype: string
name: disassemble_data
arguments: label: D149
datatype: string
name: disassemble_data
arguments: label: D169
datatype: string
name: disassemble_data
arguments: label: D69
datatype: string
name: disassemble_data
arguments: label: D146
datatype: string
name: disassemble_data
arguments: label: D19
datatype: string
name: disassemble_data
arguments: label: D144
datatype: string
name: disassemble_data
arguments: label: D18
datatype: string
name: disassemble_data
arguments: label: D35
datatype: string
name: disassemble_data
arguments: label: D66
datatype: string

tool: D96: Four

tool: D226: score

tool: D112: and

tool: D24: seven

tool: D135: years

tool: D191: ago

tool: D53: our

tool: D145: fathers

tool: D56: brought

tool: D220: forth

tool: D13: on

tool: D211: this

tool: D186: continent

tool: D156: a

tool: D149: new

tool: D169: NATION

tool: D69: fast123

tool: D146: 123  abc

tool: D19: Hello!!

tool: 

tool: D18: *&^%$#8UPPERlower

tool: D35: 
Test1--------------------------------------------------------

tool: D66: Word: %s (%s)


assistant: ```c
void test1(void) {
  int i, num_words;
  const char *words[] = {"Four", "score", "and", "seven", "years", "ago", "our", "fathers", "brought", "forth", "on", "this", "continent", "a", "new", "NATION", "fast123", "123  abc", "Hello!!", "", "*&^%$#8UPPERlower"};
  num_words = sizeof(words) / sizeof(*words);
  printf("\nTest1--------------------------------------------------------\n");
  for (i = 0; i < num_words; i++) {
    char buffer[50 + 1];
    strcpy(buffer, words[i]);
    mystrupr(buffer);
    printf("Word: %s (%s)\n", words[i], buffer);
  }
}
```