user: 请显示与下面列出的汇编代码相匹配的C语言实现：

```asm
<main>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbx
  sub    $0x418,%rsp
  mov    %edi,-0x1c4(%rbp)
  mov    %rsi,-0x1d0(%rbp)
  mov    %fs:0x28,%rax
  mov    %rax,-0x38(%rbp)
  xor    %eax,%eax
  mov    $0x32,%edi
  call   <malloc@plt>
  mov    %rax,-0x178(%rbp)
  mov    $0x32,%edi
  call   <malloc@plt>
  mov    %rax,-0x170(%rbp)
  mov    $0x32,%edi
  call   <malloc@plt>
  mov    %rax,-0x168(%rbp)
  mov    $0xc8,%edi
  call   <malloc@plt>
  mov    %rax,-0x160(%rbp)
  mov    $0xc8,%edi
  call   <malloc@plt>
  mov    %rax,-0x158(%rbp)
  mov    $0xc8,%edi
  call   <malloc@plt>
  mov    %rax,-0x150(%rbp)
  mov    $0x1,%edi
  call   <malloc@plt>
  mov    %rax,-0x148(%rbp)
  mov    $0x40,%edi
  call   <malloc@plt>
  mov    %rax,-0x140(%rbp)
  mov    $0x40,%edi
  call   <malloc@plt>
  mov    %rax,-0x138(%rbp)
  mov    $0x10,%edi
  call   <malloc@plt>
  mov    %rax,-0x130(%rbp)
  mov    $0x14,%edi
  call   <malloc@plt>
  mov    %rax,-0x128(%rbp)
  mov    $0x14,%edi
  call   <malloc@plt>
  mov    %rax,-0x120(%rbp)
  lea    D323(%rip),%rax
  mov    %rax,%rsi
  lea    D587(%rip),%rax
  mov    %rax,%rdi
  call   <fopen@plt>
  mov    %rax,-0x118(%rbp)
  cmpq   $0x0,-0x118(%rbp)
  jne    L485
  lea    D624(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  mov    $0xffffffff,%eax
  jmp    L329
L485:
  lea    -0x1be(%rbp),%rdx
  mov    -0x118(%rbp),%rax
  lea    D12(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <fscanf@plt>
  test   %ax,%ax
  jne    L357
  lea    D28(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  mov    $0xffffffff,%eax
  jmp    L329
L357:
  lea    -0x1bc(%rbp),%rdx
  mov    -0x118(%rbp),%rax
  lea    D299(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <fscanf@plt>
  test   %ax,%ax
  jne    L457
  lea    D592(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  mov    $0xffffffff,%eax
  jmp    L329
L457:
  lea    -0x1a0(%rbp),%rdx
  mov    -0x118(%rbp),%rax
  lea    D724(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <fscanf@plt>
  test   %ax,%ax
  jne    L433
  lea    D339(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  mov    $0xffffffff,%eax
  jmp    L329
L433:
  lea    -0x198(%rbp),%rdx
  mov    -0x118(%rbp),%rax
  lea    D70(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <fscanf@plt>
  test   %ax,%ax
  jne    L161
  lea    D525(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  mov    $0xffffffff,%eax
  jmp    L329
L161:
  lea    -0x190(%rbp),%rdx
  mov    -0x118(%rbp),%rax
  lea    D565(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <fscanf@plt>
  test   %ax,%ax
  jne    L157
  lea    D36(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  mov    $0xffffffff,%eax
  jmp    L329
L157:
  lea    -0x188(%rbp),%rdx
  mov    -0x118(%rbp),%rax
  lea    D164(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <fscanf@plt>
  test   %ax,%ax
  jne    L232
  lea    D700(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  mov    $0xffffffff,%eax
  jmp    L329
L232:
  lea    -0x180(%rbp),%rdx
  mov    -0x118(%rbp),%rax
  lea    D391(%rip),%rcx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <fscanf@plt>
  test   %ax,%ax
  jne    L155
  lea    D353(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  mov    $0xffffffff,%eax
  jmp    L329
L155:
  mov    -0x118(%rbp),%rax
  mov    %rax,%rdi
  call   <fclose@plt>
  lea    D522(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  movzwl -0x1be(%rbp),%eax
  cwtl
  mov    %eax,%esi
  lea    D12(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  movzwl -0x1bc(%rbp),%eax
  cwtl
  mov    %eax,%esi
  lea    D299(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    -0x1a0(%rbp),%rax
  movq   %rax,%xmm0
  lea    D724(%rip),%rax
  mov    %rax,%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  mov    -0x198(%rbp),%rax
  movq   %rax,%xmm0
  lea    D70(%rip),%rax
  mov    %rax,%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  mov    -0x190(%rbp),%rax
  movq   %rax,%xmm0
  lea    D565(%rip),%rax
  mov    %rax,%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  mov    -0x188(%rbp),%rax
  movq   %rax,%xmm0
  lea    D164(%rip),%rax
  mov    %rax,%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  mov    -0x180(%rbp),%rax
  movq   %rax,%xmm0
  lea    D391(%rip),%rax
  mov    %rax,%rdi
  mov    $0x1,%eax
  call   <printf@plt>
  mov    $0xa,%edi
  call   <putchar@plt>
  cmpl   $0x1,-0x1c4(%rbp)
  jg     L444
  lea    D342(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    -0x178(%rbp),%rax
  mov    %rax,%rsi
  lea    D294(%rip),%rax
  mov    %rax,%rdi
  call   <scanf@plt>
  jmp    L358
L444:
  mov    -0x1d0(%rbp),%rax
  add    $0x8,%rax
  mov    (%rax),%rdx
  mov    -0x178(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcpy@plt>
L358:
  cmpl   $0x2,-0x1c4(%rbp)
  jg     L88
  lea    D663(%rip),%rax
  mov    %rax,%rdi
  call   <puts@plt>
  mov    -0x148(%rbp),%rax
  mov    %rax,%rsi
  lea    D294(%rip),%rax
  mov    %rax,%rdi
  call   <scanf@plt>
  jmp    L103
L88:
  mov    -0x1d0(%rbp),%rax
  add    $0x10,%rax
  mov    (%rax),%rax
  movzbl (%rax),%edx
  mov    -0x148(%rbp),%rax
  mov    %dl,(%rax)
L103:
  mov    -0x178(%rbp),%rdx
  mov    -0x170(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcpy@plt>
  mov    -0x170(%rbp),%rax
  lea    D439(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcat@plt>
  mov    -0x178(%rbp),%rdx
  mov    -0x168(%rbp),%rax
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcpy@plt>
  mov    -0x168(%rbp),%rax
  lea    D281(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strcat@plt>
  mov    -0x170(%rbp),%rax
  lea    D323(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <fopen@plt>
  mov    %rax,-0x110(%rbp)
  cmpq   $0x0,-0x110(%rbp)
  jne    L458
  mov    -0x170(%rbp),%rax
  mov    %rax,%rsi
  lea    D576(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    $0xffffffff,%eax
  jmp    L329
L458:
  mov    -0x168(%rbp),%rax
  lea    D735(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <fopen@plt>
  mov    %rax,-0x108(%rbp)
  cmpq   $0x0,-0x108(%rbp)
  jne    L352
  mov    -0x168(%rbp),%rax
  mov    %rax,%rsi
  lea    D576(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  mov    $0xffffffff,%eax
  jmp    L329
L352:
  mov    -0x110(%rbp),%rax
  lea    D250(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <fscanf@plt>
  movsd  D333(%rip),%xmm0
  movsd  %xmm0,-0x100(%rbp)
  movsd  D611(%rip),%xmm0
  movsd  %xmm0,-0xf8(%rbp)
  movsd  D92(%rip),%xmm0
  movsd  %xmm0,-0xf0(%rbp)
  movsd  D255(%rip),%xmm0
  movsd  %xmm0,-0xe8(%rbp)
  mov    -0x148(%rbp),%rax
  movzbl (%rax),%eax
  cmp    $0x79,%al
  jne    L43
  mov    -0x108(%rbp),%rax
  mov    %rax,%rcx
  mov    $0x9,%edx
  mov    $0x1,%esi
  lea    D305(%rip),%rax
  mov    %rax,%rdi
  call   <fwrite@plt>
  movw   $0x0,-0x1ba(%rbp)
  jmp    L280
L108:
  movswl -0x1ba(%rbp),%eax
  lea    0x1(%rax),%ecx
  movswl -0x1ba(%rbp),%eax
  lea    0x1(%rax),%edx
  mov    -0x108(%rbp),%rax
  lea    D466(%rip),%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <fprintf@plt>
  movzwl -0x1ba(%rbp),%eax
  add    $0x1,%eax
  mov    %ax,-0x1ba(%rbp)
L280:
  cmpw   $0x1f,-0x1ba(%rbp)
  jle    L108
  movw   $0x0,-0x1ba(%rbp)
  jmp    L25
L41:
  movswl -0x1ba(%rbp),%eax
  lea    0x1(%rax),%ecx
  movswl -0x1ba(%rbp),%eax
  lea    0x1(%rax),%edx
  mov    -0x108(%rbp),%rax
  lea    D107(%rip),%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <fprintf@plt>
  movzwl -0x1ba(%rbp),%eax
  add    $0x1,%eax
  mov    %ax,-0x1ba(%rbp)
L25:
  cmpw   $0x9,-0x1ba(%rbp)
  jle    L41
  mov    -0x108(%rbp),%rax
  mov    %rax,%rsi
  mov    $0xa,%edi
  call   <fputc@plt>
  jmp    L206
L43:
  mov    -0x108(%rbp),%rax
  mov    %rax,%rcx
  mov    $0xf,%edx
  mov    $0x1,%esi
  lea    D729(%rip),%rax
  mov    %rax,%rdi
  call   <fwrite@plt>
  jmp    L206
L70:
  mov    -0x120(%rbp),%rax
  add    $0x12,%rax
  mov    %rax,-0x1d8(%rbp)
  mov    -0x128(%rbp),%rax
  lea    0x12(%rax),%rbx
  mov    %rbx,-0x1e0(%rbp)
  mov    -0x120(%rbp),%rax
  lea    0x10(%rax),%rcx
  mov    %rcx,-0x1e8(%rbp)
  mov    -0x128(%rbp),%rax
  lea    0x10(%rax),%rsi
  mov    %rsi,-0x1f0(%rbp)
  mov    -0x120(%rbp),%rax
  lea    0xe(%rax),%rdi
  mov    %rdi,-0x1f8(%rbp)
  mov    -0x128(%rbp),%rax
  lea    0xe(%rax),%rdx
  mov    %rdx,-0x200(%rbp)
  mov    -0x120(%rbp),%rax
  lea    0xc(%rax),%r10
  mov    %r10,-0x208(%rbp)
  mov    -0x128(%rbp),%rax
  lea    0xc(%rax),%r11
  mov    %r11,-0x210(%rbp)
  mov    -0x120(%rbp),%rax
  lea    0xa(%rax),%r14
  mov    %r14,-0x218(%rbp)
  mov    -0x128(%rbp),%rax
  lea    0xa(%rax),%r15
  mov    %r15,-0x220(%rbp)
  mov    -0x120(%rbp),%rax
  lea    0x8(%rax),%r8
  mov    %r8,-0x228(%rbp)
  mov    -0x128(%rbp),%rax
  lea    0x8(%rax),%r9
  mov    %r9,-0x230(%rbp)
  mov    -0x120(%rbp),%rax
  lea    0x6(%rax),%r12
  mov    %r12,-0x238(%rbp)
  mov    -0x128(%rbp),%rax
  lea    0x6(%rax),%r13
  mov    %r13,-0x240(%rbp)
  mov    -0x120(%rbp),%rax
  add    $0x4,%rax
  mov    %rax,-0x248(%rbp)
  mov    -0x128(%rbp),%rax
  lea    0x4(%rax),%rbx
  mov    %rbx,-0x250(%rbp)
  mov    -0x120(%rbp),%rax
  lea    0x2(%rax),%rcx
  mov    %rcx,-0x258(%rbp)
  mov    -0x128(%rbp),%rax
  lea    0x2(%rax),%rsi
  mov    %rsi,-0x260(%rbp)
  mov    -0x130(%rbp),%rax
  lea    0xe(%rax),%rdi
  mov    %rdi,-0x268(%rbp)
  mov    -0x130(%rbp),%rax
  lea    0xc(%rax),%rdx
  mov    %rdx,-0x270(%rbp)
  mov    -0x130(%rbp),%rax
  lea    0xa(%rax),%r10
  mov    %r10,-0x278(%rbp)
  mov    -0x130(%rbp),%rax
  lea    0x8(%rax),%r11
  mov    %r11,-0x280(%rbp)
  mov    -0x130(%rbp),%rax
  lea    0x6(%rax),%r14
  mov    %r14,-0x288(%rbp)
  mov    -0x130(%rbp),%rax
  lea    0x4(%rax),%r15
  mov    %r15,-0x290(%rbp)
  mov    -0x130(%rbp),%rax
  lea    0x2(%rax),%r8
  mov    %r8,-0x298(%rbp)
  mov    -0x138(%rbp),%rax
  lea    0x3e(%rax),%r9
  mov    %r9,-0x2a0(%rbp)
  mov    -0x140(%rbp),%rax
  lea    0x3e(%rax),%r12
  mov    %r12,-0x2a8(%rbp)
  mov    -0x138(%rbp),%rax
  lea    0x3c(%rax),%r13
  mov    %r13,-0x2b0(%rbp)
  mov    -0x140(%rbp),%rax
  add    $0x3c,%rax
  mov    %rax,-0x2b8(%rbp)
  mov    -0x138(%rbp),%rax
  lea    0x3a(%rax),%rbx
  mov    %rbx,-0x2c0(%rbp)
  mov    -0x140(%rbp),%rax
  lea    0x3a(%rax),%rcx
  mov    %rcx,-0x2c8(%rbp)
  mov    -0x138(%rbp),%rax
  lea    0x38(%rax),%rsi
  mov    %rsi,-0x2d0(%rbp)
  mov    -0x140(%rbp),%rax
  lea    0x38(%rax),%rdi
  mov    %rdi,-0x2d8(%rbp)
  mov    -0x138(%rbp),%rax
  lea    0x36(%rax),%rdx
  mov    %rdx,-0x2e0(%rbp)
  mov    -0x140(%rbp),%rax
  lea    0x36(%rax),%r10
  mov    %r10,-0x2e8(%rbp)
  mov    -0x138(%rbp),%rax
  lea    0x34(%rax),%r11
  mov    %r11,-0x2f0(%rbp)
  mov    -0x140(%rbp),%rax
  lea    0x34(%rax),%r14
  mov    %r14,-0x2f8(%rbp)
  mov    -0x138(%rbp),%rax
  lea    0x32(%rax),%r15
  mov    %r15,-0x300(%rbp)
  mov    -0x140(%rbp),%rax
  lea    0x32(%rax),%r8
  mov    %r8,-0x308(%rbp)
  mov    -0x138(%rbp),%rax
  lea    0x30(%rax),%r9
  mov    %r9,-0x310(%rbp)
  mov    -0x140(%rbp),%rax
  lea    0x30(%rax),%r12
  mov    %r12,-0x318(%rbp)
  mov    -0x138(%rbp),%rax
  lea    0x2e(%rax),%r13
  mov    %r13,-0x320(%rbp)
  mov    -0x140(%rbp),%rax
  add    $0x2e,%rax
  mov    %rax,-0x328(%rbp)
  mov    -0x138(%rbp),%rax
  lea    0x2c(%rax),%rbx
  mov    %rbx,-0x330(%rbp)
  mov    -0x140(%rbp),%rax
  lea    0x2c(%rax),%rcx
  mov    %rcx,-0x338(%rbp)
  mov    -0x138(%rbp),%rax
  lea    0x2a(%rax),%rsi
  mov    %rsi,-0x340(%rbp)
  mov    -0x140(%rbp),%rax
  lea    0x2a(%rax),%rdi
  mov    %rdi,-0x348(%rbp)
  mov    -0x138(%rbp),%rax
  lea    0x28(%rax),%rdx
  mov    %rdx,-0x350(%rbp)
  mov    -0x140(%rbp),%rax
  lea    0x28(%rax),%r10
  mov    %r10,-0x358(%rbp)
  mov    -0x138(%rbp),%rax
  lea    0x26(%rax),%r11
  mov    %r11,-0x360(%rbp)
  mov    -0x140(%rbp),%rax
  lea    0x26(%rax),%r14
  mov    %r14,-0x368(%rbp)
  mov    -0x138(%rbp),%rax
  lea    0x24(%rax),%r15
  mov    %r15,-0x370(%rbp)
  mov    -0x140(%rbp),%rax
  lea    0x24(%rax),%r8
  mov    %r8,-0x378(%rbp)
  mov    -0x138(%rbp),%rax
  lea    0x22(%rax),%r9
  mov    %r9,-0x380(%rbp)
  mov    -0x140(%rbp),%rax
  lea    0x22(%rax),%r12
  mov    %r12,-0x388(%rbp)
  mov    -0x138(%rbp),%rax
  lea    0x20(%rax),%r13
  mov    %r13,-0x390(%rbp)
  mov    -0x140(%rbp),%rax
  add    $0x20,%rax
  mov    %rax,-0x398(%rbp)
  mov    -0x138(%rbp),%rax
  lea    0x1e(%rax),%rbx
  mov    %rbx,-0x3a0(%rbp)
  mov    -0x140(%rbp),%rax
  lea    0x1e(%rax),%rcx
  mov    %rcx,-0x3a8(%rbp)
  mov    -0x138(%rbp),%rax
  lea    0x1c(%rax),%rsi
  mov    %rsi,-0x3b0(%rbp)
  mov    -0x140(%rbp),%rax
  lea    0x1c(%rax),%rdi
  mov    %rdi,-0x3b8(%rbp)
  mov    -0x138(%rbp),%rax
  lea    0x1a(%rax),%rdx
  mov    %rdx,-0x3c0(%rbp)
  mov    -0x140(%rbp),%rax
  lea    0x1a(%rax),%r10
  mov    %r10,-0x3c8(%rbp)
  mov    -0x138(%rbp),%rax
  lea    0x18(%rax),%r11
  mov    %r11,-0x3d0(%rbp)
  mov    -0x140(%rbp),%rax
  lea    0x18(%rax),%r14
  mov    %r14,-0x3d8(%rbp)
  mov    -0x138(%rbp),%rax
  lea    0x16(%rax),%r15
  mov    %r15,-0x3e0(%rbp)
  mov    -0x140(%rbp),%rax
  lea    0x16(%rax),%r8
  mov    %r8,-0x3e8(%rbp)
  mov    -0x138(%rbp),%rax
  lea    0x14(%rax),%r9
  mov    %r9,-0x3f0(%rbp)
  mov    -0x140(%rbp),%rax
  lea    0x14(%rax),%r12
  mov    %r12,-0x3f8(%rbp)
  mov    -0x138(%rbp),%rax
  lea    0x12(%rax),%r13
  mov    %r13,-0x400(%rbp)
  mov    -0x140(%rbp),%rax
  add    $0x12,%rax
  mov    %rax,-0x408(%rbp)
  mov    -0x138(%rbp),%rax
  lea    0x10(%rax),%rbx
  mov    %rbx,-0x410(%rbp)
  mov    -0x140(%rbp),%rax
  lea    0x10(%rax),%rcx
  mov    %rcx,-0x418(%rbp)
  mov    -0x138(%rbp),%rax
  lea    0xe(%rax),%rsi
  mov    %rsi,-0x420(%rbp)
  mov    -0x140(%rbp),%rax
  lea    0xe(%rax),%rdi
  mov    %rdi,-0x428(%rbp)
  mov    -0x138(%rbp),%rax
  lea    0xc(%rax),%rdx
  mov    %rdx,-0x430(%rbp)
  mov    -0x140(%rbp),%rax
  lea    0xc(%rax),%r10
  mov    %r10,-0x438(%rbp)
  mov    -0x138(%rbp),%rax
  lea    0xa(%rax),%r14
  mov    -0x140(%rbp),%rax
  lea    0xa(%rax),%r13
  mov    -0x138(%rbp),%rax
  lea    0x8(%rax),%r12
  mov    -0x140(%rbp),%rax
  lea    0x8(%rax),%rbx
  mov    -0x138(%rbp),%rax
  lea    0x6(%rax),%r11
  mov    -0x140(%rbp),%rax
  lea    0x6(%rax),%r9
  mov    -0x138(%rbp),%rax
  lea    0x4(%rax),%r8
  mov    -0x140(%rbp),%rax
  lea    0x4(%rax),%rsi
  mov    -0x138(%rbp),%rax
  lea    0x2(%rax),%rcx
  mov    -0x140(%rbp),%rax
  lea    0x2(%rax),%r15
  mov    -0x138(%rbp),%r10
  mov    -0x140(%rbp),%rdx
  mov    -0x160(%rbp),%rax
  mov    -0x110(%rbp),%rdi
  sub    $0x8,%rsp
  push   -0x1d8(%rbp)
  push   -0x1e0(%rbp)
  push   -0x1e8(%rbp)
  push   -0x1f0(%rbp)
  push   -0x1f8(%rbp)
  push   -0x200(%rbp)
  push   -0x208(%rbp)
  push   -0x210(%rbp)
  push   -0x218(%rbp)
  push   -0x220(%rbp)
  push   -0x228(%rbp)
  push   -0x230(%rbp)
  push   -0x238(%rbp)
  push   -0x240(%rbp)
  push   -0x248(%rbp)
  push   -0x250(%rbp)
  push   -0x258(%rbp)
  push   -0x260(%rbp)
  push   -0x120(%rbp)
  push   -0x128(%rbp)
  push   -0x268(%rbp)
  push   -0x270(%rbp)
  push   -0x278(%rbp)
  push   -0x280(%rbp)
  push   -0x288(%rbp)
  push   -0x290(%rbp)
  push   -0x298(%rbp)
  push   -0x130(%rbp)
  push   -0x2a0(%rbp)
  push   -0x2a8(%rbp)
  push   -0x2b0(%rbp)
  push   -0x2b8(%rbp)
  push   -0x2c0(%rbp)
  push   -0x2c8(%rbp)
  push   -0x2d0(%rbp)
  push   -0x2d8(%rbp)
  push   -0x2e0(%rbp)
  push   -0x2e8(%rbp)
  push   -0x2f0(%rbp)
  push   -0x2f8(%rbp)
  push   -0x300(%rbp)
  push   -0x308(%rbp)
  push   -0x310(%rbp)
  push   -0x318(%rbp)
  push   -0x320(%rbp)
  push   -0x328(%rbp)
  push   -0x330(%rbp)
  push   -0x338(%rbp)
  push   -0x340(%rbp)
  push   -0x348(%rbp)
  push   -0x350(%rbp)
  push   -0x358(%rbp)
  push   -0x360(%rbp)
  push   -0x368(%rbp)
  push   -0x370(%rbp)
  push   -0x378(%rbp)
  push   -0x380(%rbp)
  push   -0x388(%rbp)
  push   -0x390(%rbp)
  push   -0x398(%rbp)
  push   -0x3a0(%rbp)
  push   -0x3a8(%rbp)
  push   -0x3b0(%rbp)
  push   -0x3b8(%rbp)
  push   -0x3c0(%rbp)
  push   -0x3c8(%rbp)
  push   -0x3d0(%rbp)
  push   -0x3d8(%rbp)
  push   -0x3e0(%rbp)
  push   -0x3e8(%rbp)
  push   -0x3f0(%rbp)
  push   -0x3f8(%rbp)
  push   -0x400(%rbp)
  push   -0x408(%rbp)
  push   -0x410(%rbp)
  push   -0x418(%rbp)
  push   -0x420(%rbp)
  push   -0x428(%rbp)
  push   -0x430(%rbp)
  push   -0x438(%rbp)
  push   %r14
  push   %r13
  push   %r12
  push   %rbx
  push   %r11
  push   %r9
  push   %r8
  push   %rsi
  push   %rcx
  mov    %r15,%r9
  mov    %r10,%r8
  mov    %rdx,%rcx
  mov    %rax,%rdx
  lea    D538(%rip),%rax
  mov    %rax,%rsi
  mov    $0x0,%eax
  call   <fscanf@plt>
  add    $0x2d0,%rsp
  mov    %ax,-0x1b8(%rbp)
  cmpw   $0x5d,-0x1b8(%rbp)
  je     L121
  movswl -0x1b8(%rbp),%edx
  mov    -0x160(%rbp),%rax
  mov    %rax,%rsi
  lea    D63(%rip),%rax
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <printf@plt>
  jmp    L206
L121:
  mov    -0x130(%rbp),%rax
  movzwl (%rax),%eax
  mov    %ax,-0x1b6(%rbp)
  mov    -0x130(%rbp),%rax
  add    $0x2,%rax
  movzwl (%rax),%eax
  cwtl
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm1
  movsd  D38(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  cvttsd2si %xmm0,%eax
  mov    %ax,-0x1b4(%rbp)
  mov    -0x130(%rbp),%rax
  movzwl 0x4(%rax),%eax
  mov    %ax,-0x1b2(%rbp)
  mov    -0x130(%rbp),%rax
  add    $0x6,%rax
  movzwl (%rax),%eax
  cwtl
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm1
  movsd  D38(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  cvttsd2si %xmm0,%eax
  mov    %ax,-0x1b0(%rbp)
  mov    -0x130(%rbp),%rax
  movzwl 0x8(%rax),%eax
  mov    %ax,-0x1ae(%rbp)
  mov    -0x130(%rbp),%rax
  add    $0xa,%rax
  movzwl (%rax),%eax
  cwtl
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm1
  movsd  D38(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  cvttsd2si %xmm0,%eax
  mov    %ax,-0x1ac(%rbp)
  mov    -0x130(%rbp),%rax
  movzwl 0xc(%rax),%eax
  mov    %ax,-0x1aa(%rbp)
  mov    -0x130(%rbp),%rax
  add    $0xe,%rax
  movzwl (%rax),%eax
  cwtl
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm1
  movsd  D38(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  cvttsd2si %xmm0,%eax
  mov    %ax,-0x1a8(%rbp)
  movsd  -0x190(%rbp),%xmm7
  movsd  %xmm7,-0x1d8(%rbp)
  movswl -0x1aa(%rbp),%eax
  movswl -0x1ae(%rbp),%ecx
  sub    %ecx,%eax
  mov    %eax,%edx
  movswl -0x1aa(%rbp),%eax
  movswl -0x1ae(%rbp),%ecx
  sub    %ecx,%eax
  mov    %edx,%ecx
  imul   %eax,%ecx
  movswl -0x1ac(%rbp),%eax
  movswl -0x1a8(%rbp),%esi
  sub    %esi,%eax
  mov    %eax,%edx
  movswl -0x1ac(%rbp),%eax
  movswl -0x1a8(%rbp),%esi
  sub    %esi,%eax
  imul   %edx,%eax
  add    %ecx,%eax
  pxor   %xmm5,%xmm5
  cvtsi2sd %eax,%xmm5
  movq   %xmm5,%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  cwtl
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm1
  movsd  -0x1d8(%rbp),%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0xe0(%rbp)
  movsd  -0x180(%rbp),%xmm0
  divsd  -0xe0(%rbp),%xmm0
  movsd  %xmm0,-0xd8(%rbp)
  movsd  -0x188(%rbp),%xmm0
  movq   D705(%rip),%xmm1
  xorpd  %xmm1,%xmm0
  movsd  %xmm0,-0x1d8(%rbp)
  movsd  -0x190(%rbp),%xmm1
  movsd  -0x190(%rbp),%xmm0
  mulsd  %xmm0,%xmm1
  movsd  -0x188(%rbp),%xmm2
  movsd  -0x188(%rbp),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm1,%xmm0
  movsd  -0x180(%rbp),%xmm2
  movsd  -0x180(%rbp),%xmm1
  mulsd  %xmm1,%xmm2
  movapd %xmm0,%xmm1
  subsd  %xmm2,%xmm1
  movsd  -0x190(%rbp),%xmm0
  movapd %xmm0,%xmm2
  addsd  %xmm0,%xmm2
  movsd  -0x188(%rbp),%xmm0
  mulsd  %xmm2,%xmm0
  divsd  %xmm0,%xmm1
  cvttsd2si %xmm1,%eax
  cwtl
  mov    %eax,%edi
  call   <acos@plt>
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  call   <sin@plt>
  mulsd  -0x1d8(%rbp),%xmm0
  movsd  %xmm0,-0x1d8(%rbp)
  movsd  -0x190(%rbp),%xmm5
  movsd  %xmm5,-0x1e0(%rbp)
  movsd  -0x190(%rbp),%xmm1
  movsd  -0x190(%rbp),%xmm0
  mulsd  %xmm0,%xmm1
  movsd  -0x188(%rbp),%xmm2
  movsd  -0x188(%rbp),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm1,%xmm0
  movsd  -0x180(%rbp),%xmm2
  movsd  -0x180(%rbp),%xmm1
  mulsd  %xmm1,%xmm2
  movapd %xmm0,%xmm1
  subsd  %xmm2,%xmm1
  movsd  -0x190(%rbp),%xmm0
  movapd %xmm0,%xmm2
  addsd  %xmm0,%xmm2
  movsd  -0x188(%rbp),%xmm0
  mulsd  %xmm2,%xmm0
  divsd  %xmm0,%xmm1
  cvttsd2si %xmm1,%eax
  cwtl
  mov    %eax,%edi
  call   <acos@plt>
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  call   <cos@plt>
  movsd  -0x188(%rbp),%xmm1
  mulsd  %xmm0,%xmm1
  movsd  -0x1e0(%rbp),%xmm5
  subsd  %xmm1,%xmm5
  movapd %xmm5,%xmm0
  movsd  -0x1d8(%rbp),%xmm4
  divsd  %xmm0,%xmm4
  movq   %xmm4,%rax
  movq   %rax,%xmm0
  call   <atan@plt>
  movq   %xmm0,%rax
  mov    %rax,-0xd0(%rbp)
  movswl -0x1ac(%rbp),%eax
  movswl -0x1a8(%rbp),%edx
  sub    %edx,%eax
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movswl -0x1aa(%rbp),%eax
  movswl -0x1ae(%rbp),%edx
  sub    %edx,%eax
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm1
  divsd  %xmm1,%xmm0
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  call   <atan@plt>
  movq   %xmm0,%rax
  mov    %rax,-0xc8(%rbp)
  movswl -0x1b4(%rbp),%eax
  movswl -0x1b0(%rbp),%edx
  sub    %edx,%eax
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movswl -0x1b2(%rbp),%eax
  movswl -0x1b6(%rbp),%edx
  sub    %edx,%eax
  pxor   %xmm1,%xmm1
  cvtsi2sd %eax,%xmm1
  divsd  %xmm1,%xmm0
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  call   <atan@plt>
  movq   %xmm0,%rax
  mov    %rax,-0xc0(%rbp)
  movsd  -0xc0(%rbp),%xmm0
  subsd  -0xc8(%rbp),%xmm0
  movsd  %xmm0,-0xb8(%rbp)
  movsd  -0x1a0(%rbp),%xmm1
  movsd  D254(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0xb8(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0xb0(%rbp)
  movswl -0x1ae(%rbp),%eax
  pxor   %xmm4,%xmm4
  cvtsi2sd %eax,%xmm4
  movsd  %xmm4,-0x1d8(%rbp)
  movsd  -0xd0(%rbp),%xmm0
  movapd %xmm0,%xmm6
  subsd  -0xc8(%rbp),%xmm6
  movq   %xmm6,%rax
  movq   %rax,%xmm0
  call   <cos@plt>
  movq   %xmm0,%rax
  movq   %rax,%xmm1
  mulsd  -0xd8(%rbp),%xmm1
  movsd  -0x1d8(%rbp),%xmm0
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0xa8(%rbp)
  movswl -0x1ac(%rbp),%eax
  pxor   %xmm3,%xmm3
  cvtsi2sd %eax,%xmm3
  movsd  %xmm3,-0x1d8(%rbp)
  movsd  -0xd0(%rbp),%xmm0
  movapd %xmm0,%xmm7
  subsd  -0xc8(%rbp),%xmm7
  movq   %xmm7,%rax
  movq   %rax,%xmm0
  call   <sin@plt>
  movq   %xmm0,%rax
  movq   %rax,%xmm1
  mulsd  -0xd8(%rbp),%xmm1
  movsd  -0x1d8(%rbp),%xmm0
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0xa0(%rbp)
  movsd  -0x198(%rbp),%xmm1
  movsd  -0xe0(%rbp),%xmm0
  divsd  %xmm1,%xmm0
  movsd  %xmm0,-0x1d8(%rbp)
  movswl -0x1b6(%rbp),%eax
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movapd %xmm0,%xmm1
  subsd  -0xa8(%rbp),%xmm1
  movswl -0x1b6(%rbp),%eax
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  subsd  -0xa8(%rbp),%xmm0
  mulsd  %xmm0,%xmm1
  movswl -0x1b4(%rbp),%eax
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movapd %xmm0,%xmm2
  subsd  -0xa0(%rbp),%xmm2
  movswl -0x1b4(%rbp),%eax
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  subsd  -0xa0(%rbp),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm0,%xmm1
  movq   %xmm1,%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  cwtl
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  mulsd  -0x1d8(%rbp),%xmm0
  movsd  %xmm0,-0x98(%rbp)
  movswl -0x1b6(%rbp),%eax
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  subsd  -0xa8(%rbp),%xmm0
  movsd  %xmm0,-0x1d8(%rbp)
  movswl -0x1b6(%rbp),%eax
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movapd %xmm0,%xmm3
  subsd  -0xa8(%rbp),%xmm3
  movapd %xmm3,%xmm1
  movswl -0x1b6(%rbp),%eax
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  subsd  -0xa8(%rbp),%xmm0
  mulsd  %xmm0,%xmm1
  movswl -0x1b4(%rbp),%eax
  pxor   %xmm3,%xmm3
  cvtsi2sd %eax,%xmm3
  movsd  -0xa0(%rbp),%xmm0
  movapd %xmm0,%xmm2
  subsd  %xmm3,%xmm2
  movswl -0x1b4(%rbp),%eax
  pxor   %xmm3,%xmm3
  cvtsi2sd %eax,%xmm3
  movsd  -0xa0(%rbp),%xmm0
  subsd  %xmm3,%xmm0
  mulsd  %xmm2,%xmm0
  movapd %xmm1,%xmm6
  addsd  %xmm0,%xmm6
  movq   %xmm6,%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  cwtl
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  -0x1d8(%rbp),%xmm1
  divsd  %xmm0,%xmm1
  cvttsd2si %xmm1,%eax
  cwtl
  mov    %eax,%edi
  call   <acos@plt>
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  subsd  -0xc8(%rbp),%xmm0
  movsd  %xmm0,-0x90(%rbp)
  mov    -0x90(%rbp),%rax
  movq   %rax,%xmm0
  call   <cos@plt>
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  mulsd  -0x98(%rbp),%xmm0
  movsd  -0xf0(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x88(%rbp)
  mov    -0x90(%rbp),%rax
  movq   %rax,%xmm0
  call   <sin@plt>
  movq   %xmm0,%rax
  movq   %rax,%xmm1
  mulsd  -0x98(%rbp),%xmm1
  movsd  -0xe8(%rbp),%xmm0
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x80(%rbp)
  movsd  -0x88(%rbp),%xmm0
  movapd %xmm0,%xmm1
  subsd  -0x100(%rbp),%xmm1
  movsd  -0x88(%rbp),%xmm0
  subsd  -0x100(%rbp),%xmm0
  mulsd  %xmm0,%xmm1
  movsd  -0xf8(%rbp),%xmm0
  movapd %xmm0,%xmm2
  subsd  -0x80(%rbp),%xmm2
  movsd  -0xf8(%rbp),%xmm0
  subsd  -0x80(%rbp),%xmm0
  mulsd  %xmm2,%xmm0
  addsd  %xmm0,%xmm1
  movq   %xmm1,%rax
  movq   %rax,%xmm0
  call   <sqrt@plt>
  cwtl
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0x78(%rbp)
  movsd  -0x88(%rbp),%xmm0
  subsd  -0x100(%rbp),%xmm0
  movsd  -0xf8(%rbp),%xmm1
  subsd  -0x80(%rbp),%xmm1
  divsd  %xmm1,%xmm0
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  call   <atan@plt>
  movq   %xmm0,%rax
  mov    %rax,-0x70(%rbp)
  movsd  -0x70(%rbp),%xmm0
  addsd  -0xb0(%rbp),%xmm0
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  call   <sin@plt>
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  mulsd  -0x78(%rbp),%xmm0
  movsd  -0x100(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x68(%rbp)
  movsd  -0x70(%rbp),%xmm0
  addsd  -0xb0(%rbp),%xmm0
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  call   <cos@plt>
  movq   %xmm0,%rax
  movq   %rax,%xmm1
  mulsd  -0x78(%rbp),%xmm1
  movsd  -0xf8(%rbp),%xmm0
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x60(%rbp)
  movzwl -0x1be(%rbp),%eax
  cwtl
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  subsd  -0x68(%rbp),%xmm0
  cvttsd2si %xmm0,%eax
  mov    %ax,-0x1a6(%rbp)
  movzwl -0x1bc(%rbp),%eax
  cwtl
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  subsd  -0x60(%rbp),%xmm0
  cvttsd2si %xmm0,%eax
  mov    %ax,-0x1a4(%rbp)
  movsd  -0xb0(%rbp),%xmm0
  movq   D705(%rip),%xmm1
  xorpd  %xmm1,%xmm0
  movsd  %xmm0,-0xb0(%rbp)
  movw   $0x0,-0x1ba(%rbp)
  jmp    L449
L194:
  movswq -0x1ba(%rbp),%rax
  lea    (%rax,%rax,1),%rdx
  mov    -0x140(%rbp),%rax
  add    %rdx,%rax
  movzwl (%rax),%eax
  cwtl
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0x58(%rbp)
  movswq -0x1ba(%rbp),%rax
  lea    (%rax,%rax,1),%rdx
  mov    -0x138(%rbp),%rax
  add    %rdx,%rax
  movzwl (%rax),%eax
  cwtl
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0x50(%rbp)
  movsd  D434(%rip),%xmm0
  ucomisd -0x58(%rbp),%xmm0
  jp     L89
  movsd  D434(%rip),%xmm0
  ucomisd -0x58(%rbp),%xmm0
  je     L92
L89:
  movsd  -0x50(%rbp),%xmm1
  movsd  D38(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x50(%rbp)
  movsd  -0x58(%rbp),%xmm0
  movsd  D658(%rip),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x58(%rbp)
  movsd  -0x50(%rbp),%xmm0
  movsd  D707(%rip),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x50(%rbp)
  mov    -0xb0(%rbp),%rax
  movq   %rax,%xmm0
  call   <cos@plt>
  movq   %xmm0,%rax
  movq   %rax,%xmm4
  mulsd  -0x58(%rbp),%xmm4
  movsd  %xmm4,-0x1d8(%rbp)
  mov    -0xb0(%rbp),%rax
  movq   %rax,%xmm0
  call   <sin@plt>
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  mulsd  -0x50(%rbp),%xmm0
  addsd  -0x1d8(%rbp),%xmm0
  movsd  %xmm0,-0x48(%rbp)
  mov    -0xb0(%rbp),%rax
  movq   %rax,%xmm0
  call   <cos@plt>
  movq   %xmm0,%rax
  movq   %rax,%xmm5
  mulsd  -0x50(%rbp),%xmm5
  movsd  %xmm5,-0x1d8(%rbp)
  mov    -0xb0(%rbp),%rax
  movq   %rax,%xmm0
  call   <sin@plt>
  movq   %xmm0,%rax
  movq   %rax,%xmm1
  mulsd  -0x58(%rbp),%xmm1
  movsd  -0x1d8(%rbp),%xmm0
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x40(%rbp)
  movsd  -0x48(%rbp),%xmm1
  movsd  D658(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x58(%rbp)
  movsd  -0x40(%rbp),%xmm1
  movsd  D707(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x50(%rbp)
  movswl -0x1a6(%rbp),%eax
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  -0x58(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x58(%rbp)
  movswl -0x1a4(%rbp),%eax
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  -0x50(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x50(%rbp)
  movsd  -0x58(%rbp),%xmm0
  cvttsd2si %xmm0,%edx
  movswq -0x1ba(%rbp),%rax
  lea    (%rax,%rax,1),%rcx
  mov    -0x140(%rbp),%rax
  add    %rcx,%rax
  mov    %dx,(%rax)
  movsd  -0x50(%rbp),%xmm0
  cvttsd2si %xmm0,%edx
  movswq -0x1ba(%rbp),%rax
  lea    (%rax,%rax,1),%rcx
  mov    -0x138(%rbp),%rax
  add    %rcx,%rax
  mov    %dx,(%rax)
  jmp    L54
L92:
  movswq -0x1ba(%rbp),%rax
  lea    (%rax,%rax,1),%rdx
  mov    -0x140(%rbp),%rax
  add    %rdx,%rax
  movw   $0xffff,(%rax)
  movswq -0x1ba(%rbp),%rax
  lea    (%rax,%rax,1),%rdx
  mov    -0x138(%rbp),%rax
  add    %rdx,%rax
  movw   $0xffff,(%rax)
L54:
  movzwl -0x1ba(%rbp),%eax
  add    $0x1,%eax
  mov    %ax,-0x1ba(%rbp)
L449:
  cmpw   $0x1f,-0x1ba(%rbp)
  jle    L194
  movsd  -0x1a0(%rbp),%xmm1
  movsd  D254(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  -0xc0(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0xb0(%rbp)
  movsd  -0xb0(%rbp),%xmm0
  movq   D705(%rip),%xmm1
  xorpd  %xmm1,%xmm0
  movsd  %xmm0,-0xb0(%rbp)
  movzwl -0x1be(%rbp),%eax
  movzwl -0x1b6(%rbp),%edx
  sub    %edx,%eax
  mov    %ax,-0x1a6(%rbp)
  movzwl -0x1bc(%rbp),%eax
  movzwl -0x1b4(%rbp),%edx
  sub    %edx,%eax
  mov    %ax,-0x1a4(%rbp)
  movw   $0x0,-0x1ba(%rbp)
  jmp    L432
L443:
  movswq -0x1ba(%rbp),%rax
  lea    (%rax,%rax,1),%rdx
  mov    -0x128(%rbp),%rax
  add    %rdx,%rax
  movzwl (%rax),%eax
  cwtl
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0x58(%rbp)
  movswq -0x1ba(%rbp),%rax
  lea    (%rax,%rax,1),%rdx
  mov    -0x120(%rbp),%rax
  add    %rdx,%rax
  movzwl (%rax),%eax
  cwtl
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  %xmm0,-0x50(%rbp)
  movsd  D434(%rip),%xmm0
  ucomisd -0x58(%rbp),%xmm0
  jp     L385
  movsd  D434(%rip),%xmm0
  ucomisd -0x58(%rbp),%xmm0
  je     L233
L385:
  movsd  -0x50(%rbp),%xmm1
  movsd  D38(%rip),%xmm0
  mulsd  %xmm1,%xmm0
  movsd  %xmm0,-0x50(%rbp)
  movsd  -0x58(%rbp),%xmm0
  movsd  D658(%rip),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x58(%rbp)
  movsd  -0x50(%rbp),%xmm0
  movsd  D707(%rip),%xmm1
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x50(%rbp)
  mov    -0xb0(%rbp),%rax
  movq   %rax,%xmm0
  call   <cos@plt>
  movq   %xmm0,%rax
  movq   %rax,%xmm7
  mulsd  -0x58(%rbp),%xmm7
  movsd  %xmm7,-0x1d8(%rbp)
  mov    -0xb0(%rbp),%rax
  movq   %rax,%xmm0
  call   <sin@plt>
  movq   %xmm0,%rax
  movq   %rax,%xmm0
  mulsd  -0x50(%rbp),%xmm0
  addsd  -0x1d8(%rbp),%xmm0
  movsd  %xmm0,-0x48(%rbp)
  mov    -0xb0(%rbp),%rax
  movq   %rax,%xmm0
  call   <cos@plt>
  movq   %xmm0,%rax
  movq   %rax,%xmm6
  mulsd  -0x50(%rbp),%xmm6
  movsd  %xmm6,-0x1d8(%rbp)
  mov    -0xb0(%rbp),%rax
  movq   %rax,%xmm0
  call   <sin@plt>
  movq   %xmm0,%rax
  movq   %rax,%xmm1
  mulsd  -0x58(%rbp),%xmm1
  movsd  -0x1d8(%rbp),%xmm0
  subsd  %xmm1,%xmm0
  movsd  %xmm0,-0x40(%rbp)
  movsd  -0x48(%rbp),%xmm1
  movsd  D658(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x58(%rbp)
  movsd  -0x40(%rbp),%xmm1
  movsd  D707(%rip),%xmm0
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x50(%rbp)
  movswl -0x1a6(%rbp),%eax
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  -0x58(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x58(%rbp)
  movswl -0x1a4(%rbp),%eax
  pxor   %xmm0,%xmm0
  cvtsi2sd %eax,%xmm0
  movsd  -0x50(%rbp),%xmm1
  addsd  %xmm1,%xmm0
  movsd  %xmm0,-0x50(%rbp)
  movsd  -0x58(%rbp),%xmm0
  cvttsd2si %xmm0,%edx
  movswq -0x1ba(%rbp),%rax
  lea    (%rax,%rax,1),%rcx
  mov    -0x128(%rbp),%rax
  add    %rcx,%rax
  mov    %dx,(%rax)
  movsd  -0x50(%rbp),%xmm0
  cvttsd2si %xmm0,%edx
  movswq -0x1ba(%rbp),%rax
  lea    (%rax,%rax,1),%rcx
  mov    -0x120(%rbp),%rax
  add    %rcx,%rax
  mov    %dx,(%rax)
  jmp    L215
L233:
  movswq -0x1ba(%rbp),%rax
  lea    (%rax,%rax,1),%rdx
  mov    -0x128(%rbp),%rax
  add    %rdx,%rax
  movw   $0xffff,(%rax)
  movswq -0x1ba(%rbp),%rax
  lea    (%rax,%rax,1),%rdx
  mov    -0x120(%rbp),%rax
  add    %rdx,%rax
  movw   $0xffff,(%rax)
L215:
  movzwl -0x1ba(%rbp),%eax
  add    $0x1,%eax
  mov    %ax,-0x1ba(%rbp)
L432:
  cmpw   $0x9,-0x1ba(%rbp)
  jle    L443
  mov    -0x148(%rbp),%rax
  movzbl (%rax),%eax
  cmp    $0x79,%al
  jne    L60
  mov    -0x120(%rbp),%rax
  add    $0x12,%rax
  movzwl (%rax),%eax
  cwtl
  mov    %eax,%edx
  mov    -0x128(%rbp),%rax
  add    $0x12,%rax
  movzwl (%rax),%eax
  movswl %ax,%ebx
  mov    %ebx,-0x1d8(%rbp)
  mov    -0x120(%rbp),%rax
  add    $0x10,%rax
  movzwl (%rax),%eax
  movswl %ax,%ecx
  mov    %ecx,-0x1e0(%rbp)
  mov    -0x128(%rbp),%rax
  add    $0x10,%rax
  movzwl (%rax),%eax
  movswl %ax,%esi
  mov    %esi,-0x1e8(%rbp)
  mov    -0x120(%rbp),%rax
  add    $0xe,%rax
  movzwl (%rax),%eax
  movswl %ax,%edi
  mov    %edi,-0x1f0(%rbp)
  mov    -0x128(%rbp),%rax
  add    $0xe,%rax
  movzwl (%rax),%eax
  movswl %ax,%r11d
  mov    %r11d,-0x1f8(%rbp)
  mov    -0x120(%rbp),%rax
  add    $0xc,%rax
  movzwl (%rax),%eax
  movswl %ax,%r14d
  mov    %r14d,-0x200(%rbp)
  mov    -0x128(%rbp),%rax
  add    $0xc,%rax
  movzwl (%rax),%eax
  movswl %ax,%r15d
  mov    %r15d,-0x208(%rbp)
  mov    -0x120(%rbp),%rax
  add    $0xa,%rax
  movzwl (%rax),%eax
  movswl %ax,%r10d
  mov    %r10d,-0x210(%rbp)
  mov    -0x128(%rbp),%rax
  add    $0xa,%rax
  movzwl (%rax),%eax
  movswl %ax,%r8d
  mov    %r8d,-0x218(%rbp)
  mov    -0x120(%rbp),%rax
  add    $0x8,%rax
  movzwl (%rax),%eax
  movswl %ax,%r9d
  mov    %r9d,-0x220(%rbp)
  mov    -0x128(%rbp),%rax
  add    $0x8,%rax
  movzwl (%rax),%eax
  movswl %ax,%r12d
  mov    %r12d,-0x228(%rbp)
  mov    -0x120(%rbp),%rax
  add    $0x6,%rax
  movzwl (%rax),%eax
  movswl %ax,%r13d
  mov    %r13d,-0x230(%rbp)
  mov    -0x128(%rbp),%rax
  add    $0x6,%rax
  movzwl (%rax),%eax
  cwtl
  mov    %eax,-0x238(%rbp)
  mov    -0x120(%rbp),%rax
  add    $0x4,%rax
  movzwl (%rax),%eax
  movswl %ax,%ebx
  mov    %ebx,-0x240(%rbp)
  mov    -0x128(%rbp),%rax
  add    $0x4,%rax
  movzwl (%rax),%eax
  movswl %ax,%ecx
  mov    %ecx,-0x248(%rbp)
  mov    -0x120(%rbp),%rax
  add    $0x2,%rax
  movzwl (%rax),%eax
  movswl %ax,%esi
  mov    %esi,-0x250(%rbp)
  mov    -0x128(%rbp),%rax
  add    $0x2,%rax
  movzwl (%rax),%eax
  movswl %ax,%edi
  mov    %edi,-0x258(%rbp)
  mov    -0x120(%rbp),%rax
  movzwl (%rax),%eax
  movswl %ax,%r11d
  mov    %r11d,-0x260(%rbp)
  mov    -0x128(%rbp),%rax
  movzwl (%rax),%eax
  movswl %ax,%r14d
  mov    %r14d,-0x268(%rbp)
  mov    -0x138(%rbp),%rax
  add    $0x3e,%rax
  movzwl (%rax),%eax
  movswl %ax,%r15d
  mov    %r15d,-0x270(%rbp)
  mov    -0x140(%rbp),%rax
  add    $0x3e,%rax
  movzwl (%rax),%eax
  movswl %ax,%r10d
  mov    %r10d,-0x278(%rbp)
  mov    -0x138(%rbp),%rax
  add    $0x3c,%rax
  movzwl (%rax),%eax
  movswl %ax,%r8d
  mov    %r8d,-0x280(%rbp)
  mov    -0x140(%rbp),%rax
  add    $0x3c,%rax
  movzwl (%rax),%eax
  movswl %ax,%r9d
  mov    %r9d,-0x288(%rbp)
  mov    -0x138(%rbp),%rax
  add    $0x3a,%rax
  movzwl (%rax),%eax
  movswl %ax,%r12d
  mov    %r12d,-0x290(%rbp)
  mov    -0x140(%rbp),%rax
  add    $0x3a,%rax
  movzwl (%rax),%eax
  movswl %ax,%r13d
  mov    %r13d,-0x298(%rbp)
  mov    -0x138(%rbp),%rax
  add    $0x38,%rax
  movzwl (%rax),%eax
  cwtl
  mov    %eax,-0x2a0(%rbp)
  mov    -0x140(%rbp),%rax
  add    $0x38,%rax
  movzwl (%rax),%eax
  movswl %ax,%ebx
  mov    %ebx,-0x2a8(%rbp)
  mov    -0x138(%rbp),%rax
  add    $0x36,%rax
  movzwl (%rax),%eax
  movswl %ax,%ecx
  mov    %ecx,-0x2b0(%rbp)
  mov    -0x140(%rbp),%rax
  add    $0x36,%rax
  movzwl (%rax),%eax
  movswl %ax,%esi
  mov    %esi,-0x2b8(%rbp)
  mov    -0x138(%rbp),%rax
  add    $0x34,%rax
  movzwl (%rax),%eax
  movswl %ax,%edi
  mov    %edi,-0x2c0(%rbp)
  mov    -0x140(%rbp),%rax
  add    $0x34,%rax
  movzwl (%rax),%eax
  movswl %ax,%r11d
  mov    %r11d,-0x2c8(%rbp)
  mov    -0x138(%rbp),%rax
  add    $0x32,%rax
  movzwl (%rax),%eax
  movswl %ax,%r14d
  mov    %r14d,-0x2d0(%rbp)
  mov    -0x140(%rbp),%rax
  add    $0x32,%rax
  movzwl (%rax),%eax
  movswl %ax,%r15d
  mov    %r15d,-0x2d8(%rbp)
  mov    -0x138(%rbp),%rax
  add    $0x30,%rax
  movzwl (%rax),%eax
  movswl %ax,%r10d
  mov    %r10d,-0x2e0(%rbp)
  mov    -0x140(%rbp),%rax
  add    $0x30,%rax
  movzwl (%rax),%eax
  movswl %ax,%r8d
  mov    %r8d,-0x2e8(%rbp)
  mov    -0x138(%rbp),%rax
  add    $0x2e,%rax
  movzwl (%rax),%eax
  movswl %ax,%r9d
  mov    %r9d,-0x2f0(%rbp)
  mov    -0x140(%rbp),%rax
  add    $0x2e,%rax
  movzwl (%rax),%eax
  movswl %ax,%r12d
  mov    %r12d,-0x2f8(%rbp)
  mov    -0x138(%rbp),%rax
  add    $0x2c,%rax
  movzwl (%rax),%eax
  movswl %ax,%r13d
  mov    %r13d,-0x300(%rbp)
  mov    -0x140(%rbp),%rax
  add    $0x2c,%rax
  movzwl (%rax),%eax
  cwtl
  mov    %eax,-0x308(%rbp)
  mov    -0x138(%rbp),%rax
  add    $0x2a,%rax
  movzwl (%rax),%eax
  movswl %ax,%ebx
  mov    %ebx,-0x310(%rbp)
  mov    -0x140(%rbp),%rax
  add    $0x2a,%rax
  movzwl (%rax),%eax
  movswl %ax,%ecx
  mov    %ecx,-0x318(%rbp)
  mov    -0x138(%rbp),%rax
  add    $0x28,%rax
  movzwl (%rax),%eax
  movswl %ax,%esi
  mov    %esi,-0x320(%rbp)
  mov    -0x140(%rbp),%rax
  add    $0x28,%rax
  movzwl (%rax),%eax
  movswl %ax,%edi
  mov    %edi,-0x328(%rbp)
  mov    -0x138(%rbp),%rax
  add    $0x26,%rax
  movzwl (%rax),%eax
  movswl %ax,%r11d
  mov    %r11d,-0x330(%rbp)
  mov    -0x140(%rbp),%rax
  add    $0x26,%rax
  movzwl (%rax),%eax
  movswl %ax,%r14d
  mov    %r14d,-0x338(%rbp)
  mov    -0x138(%rbp),%rax
  add    $0x24,%rax
  movzwl (%rax),%eax
  movswl %ax,%r15d
  mov    %r15d,-0x340(%rbp)
  mov    -0x140(%rbp),%rax
  add    $0x24,%rax
  movzwl (%rax),%eax
  movswl %ax,%r10d
  mov    %r10d,-0x348(%rbp)
  mov    -0x138(%rbp),%rax
  add    $0x22,%rax
  movzwl (%rax),%eax
  movswl %ax,%r8d
  mov    %r8d,-0x350(%rbp)
  mov    -0x140(%rbp),%rax
  add    $0x22,%rax
  movzwl (%rax),%eax
  movswl %ax,%r9d
  mov    %r9d,-0x358(%rbp)
  mov    -0x138(%rbp),%rax
  add    $0x20,%rax
  movzwl (%rax),%eax
  movswl %ax,%r12d
  mov    %r12d,-0x360(%rbp)
  mov    -0x140(%rbp),%rax
  add    $0x20,%rax
  movzwl (%rax),%eax
  movswl %ax,%r13d
  mov    %r13d,-0x368(%rbp)
  mov    -0x138(%rbp),%rax
  add    $0x1e,%rax
  movzwl (%rax),%eax
  cwtl
  mov    %eax,-0x370(%rbp)
  mov    -0x140(%rbp),%rax
  add    $0x1e,%rax
  movzwl (%rax),%eax
  movswl %ax,%ebx
  mov    %ebx,-0x378(%rbp)
  mov    -0x138(%rbp),%rax
  add    $0x1c,%rax
  movzwl (%rax),%eax
  movswl %ax,%ecx
  mov    %ecx,-0x380(%rbp)
  mov    -0x140(%rbp),%rax
  add    $0x1c,%rax
  movzwl (%rax),%eax
  movswl %ax,%esi
  mov    %esi,-0x388(%rbp)
  mov    -0x138(%rbp),%rax
  add    $0x1a,%rax
  movzwl (%rax),%eax
  movswl %ax,%edi
  mov    %edi,-0x390(%rbp)
  mov    -0x140(%rbp),%rax
  add    $0x1a,%rax
  movzwl (%rax),%eax
  movswl %ax,%r11d
  mov    %r11d,-0x398(%rbp)
  mov    -0x138(%rbp),%rax
  add    $0x18,%rax
  movzwl (%rax),%eax
  movswl %ax,%r14d
  mov    %r14d,-0x3a0(%rbp)
  mov    -0x140(%rbp),%rax
  add    $0x18,%rax
  movzwl (%rax),%eax
  movswl %ax,%r15d
  mov    %r15d,-0x3a8(%rbp)
  mov    -0x138(%rbp),%rax
  add    $0x16,%rax
  movzwl (%rax),%eax
  movswl %ax,%r10d
  mov    %r10d,-0x3b0(%rbp)
  mov    -0x140(%rbp),%rax
  add    $0x16,%rax
  movzwl (%rax),%eax
  movswl %ax,%r8d
  mov    %r8d,-0x3b8(%rbp)
  mov    -0x138(%rbp),%rax
  add    $0x14,%rax
  movzwl (%rax),%eax
  movswl %ax,%r9d
  mov    %r9d,-0x3c0(%rbp)
  mov    -0x140(%rbp),%rax
  add    $0x14,%rax
  movzwl (%rax),%eax
  movswl %ax,%r12d
  mov    %r12d,-0x3c8(%rbp)
  mov    -0x138(%rbp),%rax
  add    $0x12,%rax
  movzwl (%rax),%eax
  movswl %ax,%r13d
  mov    %r13d,-0x3d0(%rbp)
  mov    -0x140(%rbp),%rax
  add    $0x12,%rax
  movzwl (%rax),%eax
  cwtl
  mov    %eax,-0x3d8(%rbp)
  mov    -0x138(%rbp),%rax
  add    $0x10,%rax
  movzwl (%rax),%eax
  movswl %ax,%ebx
  mov    %ebx,-0x3e0(%rbp)
  mov    -0x140(%rbp),%rax
  add    $0x10,%rax
  movzwl (%rax),%eax
  movswl %ax,%ecx
  mov    %ecx,-0x3e8(%rbp)
  mov    -0x138(%rbp),%rax
  add    $0xe,%rax
  movzwl (%rax),%eax
  movswl %ax,%esi
  mov    %esi,-0x3f0(%rbp)
  mov    -0x140(%rbp),%rax
  add    $0xe,%rax
  movzwl (%rax),%eax
  movswl %ax,%edi
  mov    %edi,-0x3f8(%rbp)
  mov    -0x138(%rbp),%rax
  add    $0xc,%rax
  movzwl (%rax),%eax
  movswl %ax,%r11d
  mov    %r11d,-0x400(%rbp)
  mov    -0x140(%rbp),%rax
  add    $0xc,%rax
  movzwl (%rax),%eax
  movswl %ax,%r14d
  mov    %r14d,-0x408(%rbp)
  mov    -0x138(%rbp),%rax
  add    $0xa,%rax
  movzwl (%rax),%eax
  movswl %ax,%r15d
  mov    -0x140(%rbp),%rax
  add    $0xa,%rax
  movzwl (%rax),%eax
  movswl %ax,%r14d
  mov    -0x138(%rbp),%rax
  add    $0x8,%rax
  movzwl (%rax),%eax
  movswl %ax,%r13d
  mov    -0x140(%rbp),%rax
  add    $0x8,%rax
  movzwl (%rax),%eax
  movswl %ax,%r12d
  mov    -0x138(%rbp),%rax
  add    $0x6,%rax
  movzwl (%rax),%eax
  movswl %ax,%ebx
  mov    -0x140(%rbp),%rax
  add    $0x6,%rax
  movzwl (%rax),%eax
  movswl %ax,%r9d
  mov    -0x138(%rbp),%rax
  add    $0x4,%rax
  movzwl (%rax),%eax
  movswl %ax,%r8d
  mov    -0x140(%rbp),%rax
  add    $0x4,%rax
  movzwl (%rax),%eax
  movswl %ax,%esi
  mov    -0x138(%rbp),%rax
  add    $0x2,%rax
  movzwl (%rax),%eax
  movswl %ax,%ecx
  mov    -0x140(%rbp),%rax
  add    $0x2,%rax
  movzwl (%rax),%eax
  movswl %ax,%r11d
  mov    -0x138(%rbp),%rax
  movzwl (%rax),%eax
  movswl %ax,%r10d
  mov    -0x140(%rbp),%rax
  movzwl (%rax),%eax
  cwtl
  mov    %eax,-0x410(%rbp)
  mov    -0x160(%rbp),%rax
  mov    -0x108(%rbp),%rdi
  sub    $0x8,%rsp
  push   %rdx
  mov    -0x1d8(%rbp),%edx
  push   %rdx
  mov    -0x1e0(%rbp),%edx
  push   %rdx
  mov    -0x1e8(%rbp),%edx
  push   %rdx
  mov    -0x1f0(%rbp),%edx
  push   %rdx
  mov    -0x1f8(%rbp),%edx
  push   %rdx
  mov    -0x200(%rbp),%edx
  push   %rdx
  mov    -0x208(%rbp),%edx
  push   %rdx
  mov    -0x210(%rbp),%edx
  push   %rdx
  mov    -0x218(%rbp),%edx
  push   %rdx
  mov    -0x220(%rbp),%edx
  push   %rdx
  mov    -0x228(%rbp),%edx
  push   %rdx
  mov    -0x230(%rbp),%edx
  push   %rdx
  mov    -0x238(%rbp),%edx
  push   %rdx
  mov    -0x240(%rbp),%edx
  push   %rdx
  mov    -0x248(%rbp),%edx
  push   %rdx
  mov    -0x250(%rbp),%edx
  push   %rdx
  mov    -0x258(%rbp),%edx
  push   %rdx
  mov    -0x260(%rbp),%edx
  push   %rdx
  mov    -0x268(%rbp),%edx
  push   %rdx
  mov    -0x270(%rbp),%edx
  push   %rdx
  mov    -0x278(%rbp),%edx
  push   %rdx
  mov    -0x280(%rbp),%edx
  push   %rdx
  mov    -0x288(%rbp),%edx
  push   %rdx
  mov    -0x290(%rbp),%edx
  push   %rdx
  mov    -0x298(%rbp),%edx
  push   %rdx
  mov    -0x2a0(%rbp),%edx
  push   %rdx
  mov    -0x2a8(%rbp),%edx
  push   %rdx
  mov    -0x2b0(%rbp),%edx
  push   %rdx
  mov    -0x2b8(%rbp),%edx
  push   %rdx
  mov    -0x2c0(%rbp),%edx
  push   %rdx
  mov    -0x2c8(%rbp),%edx
  push   %rdx
  mov    -0x2d0(%rbp),%edx
  push   %rdx
  mov    -0x2d8(%rbp),%edx
  push   %rdx
  mov    -0x2e0(%rbp),%edx
  push   %rdx
  mov    -0x2e8(%rbp),%edx
  push   %rdx
  mov    -0x2f0(%rbp),%edx
  push   %rdx
  mov    -0x2f8(%rbp),%edx
  push   %rdx
  mov    -0x300(%rbp),%edx
  push   %rdx
  mov    -0x308(%rbp),%edx
  push   %rdx
  mov    -0x310(%rbp),%edx
  push   %rdx
  mov    -0x318(%rbp),%edx
  push   %rdx
  mov    -0x320(%rbp),%edx
  push   %rdx
  mov    -0x328(%rbp),%edx
  push   %rdx
  mov    -0x330(%rbp),%edx
  push   %rdx
  mov    -0x338(%rbp),%edx
  push   %rdx
  mov    -0x340(%rbp),%edx
  push   %rdx
  mov    -0x348(%rbp),%edx
  push   %rdx
  mov    -0x350(%rbp),%edx
  push   %rdx
  mov    -0x358(%rbp),%edx
  push   %rdx
  mov    -0x360(%rbp),%edx
  push   %rdx
  mov    -0x368(%rbp),%edx
  push   %rdx
  mov    -0x370(%rbp),%edx
  push   %rdx
  mov    -0x378(%rbp),%edx
  push   %rdx
  mov    -0x380(%rbp),%edx
  push   %rdx
  mov    -0x388(%rbp),%edx
  push   %rdx
  mov    -0x390(%rbp),%edx
  push   %rdx
  mov    -0x398(%rbp),%edx
  push   %rdx
  mov    -0x3a0(%rbp),%edx
  push   %rdx
  mov    -0x3a8(%rbp),%edx
  push   %rdx
  mov    -0x3b0(%rbp),%edx
  push   %rdx
  mov    -0x3b8(%rbp),%edx
  push   %rdx
  mov    -0x3c0(%rbp),%edx
  push   %rdx
  mov    -0x3c8(%rbp),%edx
  push   %rdx
  mov    -0x3d0(%rbp),%edx
  push   %rdx
  mov    -0x3d8(%rbp),%edx
  push   %rdx
  mov    -0x3e0(%rbp),%edx
  push   %rdx
  mov    -0x3e8(%rbp),%edx
  push   %rdx
  mov    -0x3f0(%rbp),%edx
  push   %rdx
  mov    -0x3f8(%rbp),%edx
  push   %rdx
  mov    -0x400(%rbp),%edx
  push   %rdx
  mov    -0x408(%rbp),%edx
  push   %rdx
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbx
  push   %r9
  push   %r8
  push   %rsi
  push   %rcx
  mov    %r11d,%r9d
  mov    %r10d,%r8d
  mov    -0x410(%rbp),%ecx
  mov    %rax,%rdx
  lea    D622(%rip),%rax
  mov    %rax,%rsi
  mov    $0x0,%eax
  call   <fprintf@plt>
  add    $0x290,%rsp
  jmp    L206
L60:
  mov    -0x160(%rbp),%rax
  lea    D33(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strpbrk@plt>
  sub    -0x160(%rbp),%rax
  mov    %ax,-0x1a2(%rbp)
  movswl -0x1a2(%rbp),%edx
  mov    -0x160(%rbp),%rcx
  mov    -0x158(%rbp),%rax
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <strncpy@plt>
  movswq -0x1a2(%rbp),%rdx
  mov    -0x158(%rbp),%rax
  add    %rdx,%rax
  movb   $0x0,(%rax)
  mov    -0x160(%rbp),%rax
  mov    $0x5f,%esi
  mov    %rax,%rdi
  call   <strchr@plt>
  mov    %rax,%rbx
  mov    -0x160(%rbp),%rax
  lea    D33(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strpbrk@plt>
  mov    %rax,%rdx
  mov    %rbx,%rax
  sub    %rdx,%rax
  mov    %ax,-0x1a2(%rbp)
  movswl -0x1a2(%rbp),%ebx
  mov    -0x160(%rbp),%rax
  lea    D33(%rip),%rdx
  mov    %rdx,%rsi
  mov    %rax,%rdi
  call   <strpbrk@plt>
  mov    %rax,%rcx
  mov    -0x150(%rbp),%rax
  mov    %ebx,%edx
  mov    %rcx,%rsi
  mov    %rax,%rdi
  call   <strncpy@plt>
  movswq -0x1a2(%rbp),%rdx
  mov    -0x150(%rbp),%rax
  add    %rdx,%rax
  movb   $0x0,(%rax)
  movw   $0x0,-0x1ba(%rbp)
  jmp    L326
L418:
  movswq -0x1ba(%rbp),%rax
  lea    (%rax,%rax,1),%rdx
  mov    -0x140(%rbp),%rax
  add    %rdx,%rax
  movzwl (%rax),%eax
  cmp    $0xffff,%ax
  je     L23
  movswq -0x1ba(%rbp),%rax
  lea    (%rax,%rax,1),%rdx
  mov    -0x138(%rbp),%rax
  add    %rdx,%rax
  movzwl (%rax),%eax
  movswl %ax,%edi
  movswq -0x1ba(%rbp),%rax
  lea    (%rax,%rax,1),%rdx
  mov    -0x140(%rbp),%rax
  add    %rdx,%rax
  movzwl (%rax),%eax
  movswl %ax,%esi
  mov    -0x150(%rbp),%rcx
  mov    -0x158(%rbp),%rdx
  mov    -0x108(%rbp),%rax
  mov    %edi,%r9d
  mov    %esi,%r8d
  lea    D343(%rip),%rsi
  mov    %rax,%rdi
  mov    $0x0,%eax
  call   <fprintf@plt>
L23:
  movzwl -0x1ba(%rbp),%eax
  add    $0x1,%eax
  mov    %ax,-0x1ba(%rbp)
L326:
  cmpw   $0x1f,-0x1ba(%rbp)
  jle    L418
L206:
  mov    -0x110(%rbp),%rax
  mov    %rax,%rdi
  call   <feof@plt>
  test   %rax,%rax
  je     L70
  mov    -0x110(%rbp),%rax
  mov    %rax,%rdi
  call   <fclose@plt>
  mov    -0x108(%rbp),%rax
  mov    %rax,%rdi
  call   <fclose@plt>
  mov    $0x0,%eax
L329:
  mov    -0x38(%rbp),%rdx
  sub    %fs:0x28,%rdx
  je     L446
  call   <__stack_chk_fail@plt>
L446:
  lea    -0x28(%rbp),%rsp
  pop    %rbx
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  pop    %rbp
  ret
```

tool_calls: name: retrieve_data
arguments: data_tag: D323
datatype: string
name: retrieve_data
arguments: data_tag: D587
datatype: string
name: retrieve_data
arguments: data_tag: D624
datatype: string
name: retrieve_data
arguments: data_tag: D12
datatype: string
name: retrieve_data
arguments: data_tag: D28
datatype: string
name: retrieve_data
arguments: data_tag: D299
datatype: string
name: retrieve_data
arguments: data_tag: D592
datatype: string
name: retrieve_data
arguments: data_tag: D724
datatype: string
name: retrieve_data
arguments: data_tag: D339
datatype: string
name: retrieve_data
arguments: data_tag: D70
datatype: string
name: retrieve_data
arguments: data_tag: D525
datatype: string
name: retrieve_data
arguments: data_tag: D565
datatype: string
name: retrieve_data
arguments: data_tag: D36
datatype: string
name: retrieve_data
arguments: data_tag: D164
datatype: string
name: retrieve_data
arguments: data_tag: D700
datatype: string
name: retrieve_data
arguments: data_tag: D391
datatype: string
name: retrieve_data
arguments: data_tag: D353
datatype: string
name: retrieve_data
arguments: data_tag: D522
datatype: string
name: retrieve_data
arguments: data_tag: D342
datatype: string
name: retrieve_data
arguments: data_tag: D294
datatype: string
name: retrieve_data
arguments: data_tag: D663
datatype: string
name: retrieve_data
arguments: data_tag: D439
datatype: string
name: retrieve_data
arguments: data_tag: D281
datatype: string
name: retrieve_data
arguments: data_tag: D576
datatype: string
name: retrieve_data
arguments: data_tag: D735
datatype: string
name: retrieve_data
arguments: data_tag: D250
datatype: string
name: retrieve_data
arguments: data_tag: D333
datatype: f64
name: retrieve_data
arguments: data_tag: D611
datatype: f64
name: retrieve_data
arguments: data_tag: D92
datatype: f64
name: retrieve_data
arguments: data_tag: D255
datatype: f64
name: retrieve_data
arguments: data_tag: D305
datatype: string
name: retrieve_data
arguments: data_tag: D466
datatype: string
name: retrieve_data
arguments: data_tag: D107
datatype: string
name: retrieve_data
arguments: data_tag: D729
datatype: string
name: retrieve_data
arguments: data_tag: D538
datatype: string
name: retrieve_data
arguments: data_tag: D63
datatype: string
name: retrieve_data
arguments: data_tag: D38
datatype: byte[8]
name: retrieve_data
arguments: data_tag: D705
datatype: byte[8]
name: retrieve_data
arguments: data_tag: D254
datatype: byte[8]
name: retrieve_data
arguments: data_tag: D434
datatype: byte[8]
name: retrieve_data
arguments: data_tag: D658
datatype: byte[8]
name: retrieve_data
arguments: data_tag: D707
datatype: f64
name: retrieve_data
arguments: data_tag: D622
datatype: string
name: retrieve_data
arguments: data_tag: D33
datatype: string
name: retrieve_data
arguments: data_tag: D343
datatype: string

tool: D323: r

tool: D587: settings.txt

tool: D624: Couldn't open settings.txt

tool: D12: OverlayX = %hd


tool: D28: Error reading value of: OverlayX

tool: D299: OverlayY = %hd


tool: D592: Error reading value of: OverlayY

tool: D724: Angle = %lf


tool: D339: Error reading value of: Angle

tool: D70: UsScale = %lf


tool: D525: Error reading value of: UsScale

tool: D565: distance_btwn_lower_dots = %lf


tool: D36: Error reading value of: distance_btwn_lower_dots

tool: D164: tip_of_transducer_to_lower_right_dot = %lf


tool: D700: Error reading value of: tip_of_transducer_to_lower_right_dot

tool: D391: tip_of_transducer_to_lower_left_dot = %lf


tool: D353: Error reading value of: tip_of_transducer_to_lower_left_dot

tool: D522: Using these settings:

tool: D342: Enter the filename (without '.txt'): 

tool: D294: %s

tool: D663: Would you like tab-delimited format instead of R/SSANOVA format? (y/n)

tool: D439: .txt

tool: D281: _output.txt

tool: D576: Unable to open file: %s


tool: D735: w

tool: D250: Filename Raw.R1.X Raw.R1.Y Raw.R2.X Raw.R2.Y Raw.R3.X Raw.R3.Y Raw.R4.X Raw.R4.Y Raw.R5.X Raw.R5.Y Raw.R6.X Raw.R6.Y Raw.R7.X Raw.R7.Y Raw.R8.X Raw.R8.Y Raw.R9.X Raw.R9.Y Raw.R10.X Raw.R10.Y Raw.R11.X Raw.R11.Y Raw.R12.X Raw.R12.Y Raw.R13.X Raw.R13.Y Raw.R14.X Raw.R14.Y Raw.R15.X Raw.R15.Y Raw.R16.X Raw.R16.Y Raw.R17.X Raw.R17.Y Raw.R18.X Raw.R18.Y Raw.R19.X Raw.R19.Y Raw.R20.X Raw.R20.Y Raw.R21.X Raw.R21.Y Raw.R22.X Raw.R22.Y Raw.R23.X Raw.R23.Y Raw.R24.X Raw.R24.Y Raw.R25.X Raw.R25.Y Raw.R26.X Raw.R26.Y Raw.R27.X Raw.R27.Y Raw.R28.X Raw.R28.Y Raw.R29.X Raw.R29.Y Raw.R30.X Raw.R30.Y Raw.R31.X Raw.R31.Y Raw.R32.X Raw.R32.Y UL.x UL.y UR.x UR.y LL.x LL.y LR.x LR.y Aux1.x Aux1.y Aux2.x Aux2.y Aux3.x Aux3.y Aux4.x Aux4.y Aux5.x Aux5.y Aux6.x Aux6.y Aux7.x Aux7.y Aux8.x Aux8.y Aux9.x Aux9.y Aux10.x Aux10.y

tool: D333: 360.5

tool: D611: 267

tool: D92: 390

tool: D255: 416

tool: D305: Filename	

tool: D466: x.%i	y.%i	

tool: D107: aux.x.%i	aux.y.%i	

tool: D729: word	token	X	Y


tool: D538: %s	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd


tool: D63: 
For the entry "%s", only %d items were read, whereas I was expecting 93. I'm going to skip that line and finish the rest of the file.



tool: {"D38": [0x44,0x44,0x44,0x44,0x44,0xc4,0xf1,0x3f]}

tool: {"D705": [0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80]}

tool: {"D254": [0x39,0x9d,0x52,0xa2,0x46,0xdf,0x91,0x3f]}

tool: {"D434": [0x00,0x00,0x00,0x00,0x00,0x00,0xf0,0xbf]}

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

tool: D707: 266.5

tool: D622: %s	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd	%hd


tool: D33: 1234567890

tool: D343: %s	%s	%hd	%hd


assistant: ```c
int main(int argc, char *argv[]) {
  FILE *in, *out, *settings;
  char *filebase = (char *)malloc(50);
  char *infile = (char *)malloc(50);
  char *outfile = (char *)malloc(50);
  char *fn = (char *)malloc(200);
  short ct;
  short ulx, uly, urx, ury, llx, lly, lrx, lry, tmp;
  short OverlayX, OverlayY;
  double Angle, UsScale, tranlrmm, ortranrmm, ortranlmm;
  short XOffset, YOffset;
  double AngleOffset;
  short i, nread, len;
  double X, Y, tmpX, tmpY;
  char *token = (char *)malloc(200);
  char *item = (char *)malloc(200);
  char *tabdelimited = (char *)malloc(1);
  short *x = (short *)malloc(sizeof(short) * 32);
  short *y = (short *)malloc(sizeof(short) * 32);
  short *pt = (short *)malloc(sizeof(short) * 8);
  short *ax = (short *)malloc(sizeof(short) * 10);
  short *ay = (short *)malloc(sizeof(short) * 10);
  settings = fopen("settings.txt", "r");
  if (settings == NULL) {
    printf("Couldn\'t open settings.txt\n");
    return -1;
  }
  if (fscanf(settings, "OverlayX = %hd\n", &OverlayX) == 0) {
    printf("Error reading value of: OverlayX\n");
    return -1;
  }
  if (fscanf(settings, "OverlayY = %hd\n", &OverlayY) == 0) {
    printf("Error reading value of: OverlayY\n");
    return -1;
  }
  if (fscanf(settings, "Angle = %lf\n", &Angle) == 0) {
    printf("Error reading value of: Angle\n");
    return -1;
  }
  if (fscanf(settings, "UsScale = %lf\n", &UsScale) == 0) {
    printf("Error reading value of: UsScale\n");
    return -1;
  }
  if (fscanf(settings, "distance_btwn_lower_dots = %lf\n", &tranlrmm) == 0) {
    printf("Error reading value of: distance_btwn_lower_dots\n");
    return -1;
  }
  if (fscanf(settings, "tip_of_transducer_to_lower_right_dot = %lf\n", &ortranrmm) == 0) {
    printf("Error reading value of: tip_of_transducer_to_lower_right_dot\n");
    return -1;
  }
  if (fscanf(settings, "tip_of_transducer_to_lower_left_dot = %lf\n", &ortranlmm) == 0) {
    printf("Error reading value of: tip_of_transducer_to_lower_left_dot\n");
    return -1;
  }
  fclose(settings);
  printf("Using these settings:\n");
  printf("OverlayX = %hd\n", OverlayX);
  printf("OverlayY = %hd\n", OverlayY);
  printf("Angle = %lf\n", Angle);
  printf("UsScale = %lf\n", UsScale);
  printf("distance_btwn_lower_dots = %lf\n", tranlrmm);
  printf("tip_of_transducer_to_lower_right_dot = %lf\n", ortranrmm);
  printf("tip_of_transducer_to_lower_left_dot = %lf\n", ortranlmm);
  printf("\n");
  if (argc < 2) {
    printf("Enter the filename (without \'.txt\'): ");
    scanf("%s", filebase);
  } else {
    strcpy(filebase, argv[1]);
  }
  if (argc < 3) {
    printf("Would you like tab-delimited format instead of R/SSANOVA format? (y/n)\n");
    scanf("%s", tabdelimited);
  } else {
    *tabdelimited = *argv[2];
  }
  strcpy(infile, filebase);
  strcat(infile, ".txt");
  strcpy(outfile, filebase);
  strcat(outfile, "_output.txt");
  in = fopen(infile, "r");
  if (in == NULL) {
    printf("Unable to open file: %s\n", infile);
    return -1;
  }
  out = fopen(outfile, "w");
  if (out == NULL) {
    printf("Unable to open file: %s\n", outfile);
    return -1;
  }
  fscanf(in, "Filename Raw.R1.X Raw.R1.Y Raw.R2.X Raw.R2.Y Raw.R3.X Raw.R3.Y Raw.R4.X Raw.R4.Y Raw.R5.X Raw.R5.Y Raw.R6.X Raw.R6.Y Raw.R7.X Raw.R7.Y Raw.R8.X Raw.R8.Y Raw.R9.X Raw.R9.Y Raw.R10.X Raw.R10.Y Raw.R11.X Raw.R11.Y Raw.R12.X Raw.R12.Y Raw.R13.X Raw.R13.Y Raw.R14.X Raw.R14.Y Raw.R15.X Raw.R15.Y Raw.R16.X Raw.R16.Y Raw.R17.X Raw.R17.Y Raw.R18.X Raw.R18.Y Raw.R19.X Raw.R19.Y Raw.R20.X Raw.R20.Y Raw.R21.X Raw.R21.Y Raw.R22.X Raw.R22.Y Raw.R23.X Raw.R23.Y Raw.R24.X Raw.R24.Y Raw.R25.X Raw.R25.Y Raw.R26.X Raw.R26.Y Raw.R27.X Raw.R27.Y Raw.R28.X Raw.R28.Y Raw.R29.X Raw.R29.Y Raw.R30.X Raw.R30.Y Raw.R31.X Raw.R31.Y Raw.R32.X Raw.R32.Y UL.x UL.y UR.x UR.y LL.x LL.y LR.x LR.y Aux1.x Aux1.y Aux2.x Aux2.y Aux3.x Aux3.y Aux4.x Aux4.y Aux5.x Aux5.y Aux6.x Aux6.y Aux7.x Aux7.y Aux8.x Aux8.y Aux9.x Aux9.y Aux10.x Aux10.y");
  double orheaddist, orheadangle, vidoriginx, vidoriginy, vidscale, imagecenterx = 360.5, imagecentery = 267.0, tranangle, usoriginx = 390, usoriginy = 416, ortrandist, ortranangle, headangle, htangle, headx, heady, centerheaddist, centerheadangle, rotatedheadx, rotatedheady;
  if (*tabdelimited == 'y') {
    fprintf(out, "Filename\t");
    for (i = 0; i < 32; i++) {
      fprintf(out, "x.%i\ty.%i\t", i + 1, i + 1);
    }
    for (i = 0; i < 10; i++) {
      fprintf(out, "aux.x.%i\taux.y.%i\t", i + 1, i + 1);
    }
    fprintf(out, "\n");
  } else {
    fprintf(out, "word\ttoken\tX\tY\n");
  }
  while (0 == feof(in)) {
    nread = fscanf(in, "%s\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\n", fn, x, y, x + 1, y + 1, x + 2, y + 2, x + 3, y + 3, x + 4, y + 4, x + 5, y + 5, x + 6, y + 6, x + 7, y + 7, x + 8, y + 8, x + 9, y + 9, x + 10, y + 10, x + 11, y + 11, x + 12, y + 12, x + 13, y + 13, x + 14, y + 14, x + 15, y + 15, x + 16, y + 16, x + 17, y + 17, x + 18, y + 18, x + 19, y + 19, x + 20, y + 20, x + 21, y + 21, x + 22, y + 22, x + 23, y + 23, x + 24, y + 24, x + 25, y + 25, x + 26, y + 26, x + 27, y + 27, x + 28, y + 28, x + 29, y + 29, x + 30, y + 30, x + 31, y + 31, pt, pt + 1, pt + 2, pt + 3, pt + 4, pt + 5, pt + 6, pt + 7, ax, ay, ax + 1, ay + 1, ax + 2, ay + 2, ax + 3, ay + 3, ax + 4, ay + 4, ax + 5, ay + 5, ax + 6, ay + 6, ax + 7, ay + 7, ax + 8, ay + 8, ax + 9, ay + 9);
    if (nread != 93) {
      printf("\nFor the entry \"%s\", only %d items were read, whereas I was expecting 93. I\'m going to skip that line and finish the rest of the file.\n\n", fn, nread);
      continue;
    }
    ulx = *(pt + 0);
    uly = *(pt + 1) * ((double)533 / (double)480);
    urx = *(pt + 2);
    ury = *(pt + 3) * ((double)533 / (double)480);
    llx = *(pt + 4);
    lly = *(pt + 5) * ((double)533 / (double)480);
    lrx = *(pt + 6);
    lry = *(pt + 7) * ((double)533 / (double)480);
    vidscale = tranlrmm / sqrt((lrx - llx) * (lrx - llx) + (lly - lry) * (lly - lry));
    ortrandist = ortranlmm / vidscale;
    ortranangle = atan(-1.0f * ortranrmm * sin(acos((tranlrmm * tranlrmm + ortranrmm * ortranrmm - ortranlmm * ortranlmm) / (2.0f * tranlrmm * ortranrmm))) / (tranlrmm - ortranrmm * cos(acos((tranlrmm * tranlrmm + ortranrmm * ortranrmm - ortranlmm * ortranlmm) / (2 * tranlrmm * ortranrmm)))));
    tranangle = atan((double)(lly - lry) / (double)(lrx - llx));
    headangle = atan((double)(uly - ury) / (double)(urx - ulx));
    htangle = headangle - tranangle;
    AngleOffset = htangle - Angle * (-3.1415926535897932384626433832795 / 180.0f);
    vidoriginx = llx - (ortrandist * cos(ortranangle - tranangle));
    vidoriginy = lly - (ortrandist * sin(ortranangle - tranangle));
    orheaddist = vidscale / UsScale * sqrt((ulx - vidoriginx) * (ulx - vidoriginx) + (uly - vidoriginy) * (uly - vidoriginy));
    orheadangle = acos((ulx - vidoriginx) / (sqrt((ulx - vidoriginx) * (ulx - vidoriginx) + (vidoriginy - uly) * (vidoriginy - uly)))) - tranangle;
    headx = usoriginx + orheaddist * cos(orheadangle);
    heady = usoriginy - orheaddist * sin(orheadangle);
    centerheaddist = sqrt((headx - imagecenterx) * (headx - imagecenterx) + (imagecentery - heady) * (imagecentery - heady));
    centerheadangle = atan((headx - imagecenterx) / (imagecentery - heady));
    rotatedheadx = imagecenterx + (centerheaddist * sin(centerheadangle + AngleOffset));
    rotatedheady = imagecentery - (centerheaddist * cos(centerheadangle + AngleOffset));
    XOffset = (short)(OverlayX - rotatedheadx);
    YOffset = (short)(OverlayY - rotatedheady);
    AngleOffset *= -1;
    for (i = 0; i < 32; i++) {
      X = (double)*(x + i);
      Y = (double)*(y + i);
      if (X != -1) {
        Y *= (double)533 / (double)480;
        X -= 360;
        Y -= 266.5;
        tmpX = X * cos(AngleOffset) + Y * sin(AngleOffset);
        tmpY = Y * cos(AngleOffset) - X * sin(AngleOffset);
        X = tmpX + 360;
        Y = tmpY + 266.5;
        X += XOffset;
        Y += YOffset;
        *(x + i) = (int)X;
        *(y + i) = (int)Y;
      } else {
        *(x + i) = -1;
        *(y + i) = -1;
      }
    }
    AngleOffset = headangle - Angle * (-3.1415926535897932384626433832795 / 180.0f);
    AngleOffset *= -1;
    XOffset = OverlayX - ulx;
    YOffset = OverlayY - uly;
    for (i = 0; i < 10; i++) {
      X = (double)*(ax + i);
      Y = (double)*(ay + i);
      if (X != -1) {
        Y *= (double)533 / (double)480;
        X -= 360;
        Y -= 266.5;
        tmpX = X * cos(AngleOffset) + Y * sin(AngleOffset);
        tmpY = Y * cos(AngleOffset) - X * sin(AngleOffset);
        X = tmpX + 360;
        Y = tmpY + 266.5;
        X += XOffset;
        Y += YOffset;
        *(ax + i) = (int)X;
        *(ay + i) = (int)Y;
      } else {
        *(ax + i) = -1;
        *(ay + i) = -1;
      }
    }
    if (*tabdelimited == 'y') {
      fprintf(out, "%s\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\t%hd\n", fn, *(x), *(y), *(x + 1), *(y + 1), *(x + 2), *(y + 2), *(x + 3), *(y + 3), *(x + 4), *(y + 4), *(x + 5), *(y + 5), *(x + 6), *(y + 6), *(x + 7), *(y + 7), *(x + 8), *(y + 8), *(x + 9), *(y + 9), *(x + 10), *(y + 10), *(x + 11), *(y + 11), *(x + 12), *(y + 12), *(x + 13), *(y + 13), *(x + 14), *(y + 14), *(x + 15), *(y + 15), *(x + 16), *(y + 16), *(x + 17), *(y + 17), *(x + 18), *(y + 18), *(x + 19), *(y + 19), *(x + 20), *(y + 20), *(x + 21), *(y + 21), *(x + 22), *(y + 22), *(x + 23), *(y + 23), *(x + 24), *(y + 24), *(x + 25), *(y + 25), *(x + 26), *(y + 26), *(x + 27), *(y + 27), *(x + 28), *(y + 28), *(x + 29), *(y + 29), *(x + 30), *(y + 30), *(x + 31), *(y + 31), *(ax), *(ay), *(ax + 1), *(ay + 1), *(ax + 2), *(ay + 2), *(ax + 3), *(ay + 3), *(ax + 4), *(ay + 4), *(ax + 5), *(ay + 5), *(ax + 6), *(ay + 6), *(ax + 7), *(ay + 7), *(ax + 8), *(ay + 8), *(ax + 9), *(ay + 9));
    } else {
      len = strpbrk(fn, "1234567890") - fn;
      strncpy(token, fn, len);
      *(token + len) = '\0';
      len = strchr(fn, '_') - strpbrk(fn, "1234567890");
      strncpy(item, strpbrk(fn, "1234567890"), len);
      *(item + len) = '\0';
      for (i = 0; i < 32; i++) {
        if (*(x + i) != -1) {
          fprintf(out, "%s\t%s\t%hd\t%hd\n", token, item, *(x + i), *(y + i));
        }
      }
    }
  }
  fclose(in);
  fclose(out);
}
```