user: 请将以下的汇编代码转换成C语言代码:

```asm
<biscPlayFireflies>:
  endbr64
  push   %rbp
  mov    %rsp,%rbp
  sub    $0xd0,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,-0x8(%rbp)
  xor    %eax,%eax
  movabs $0x3f4b52463a56463a,%rax
  mov    %rax,-0x7a(%rbp)
  movl   $0x4d4b4d4b,-0x72(%rbp)
  movw   $0x4b52,-0x6e(%rbp)
  movabs $0xa0a140a0a0a0a0a,%rax
  mov    %rax,-0x6c(%rbp)
  movl   $0xa0a0a0a,-0x64(%rbp)
  movw   $0xa14,-0x60(%rbp)
  movabs $0x46383f4b48464838,%rsi
  mov    %rsi,-0x5e(%rbp)
  movl   $0x463c4648,-0x56(%rbp)
  movw   $0x4d4b,-0x52(%rbp)
  movabs $0xa140a0a0a0a0a14,%rsi
  mov    %rsi,-0x50(%rbp)
  movl   $0xa0a0a0a,-0x48(%rbp)
  movw   $0xa0a,-0x44(%rbp)
  movabs $0x3f4b52414a564d38,%rsi
  mov    %rsi,-0x26(%rbp)
  movl   $0x504b4d46,-0x1e(%rbp)
  movw   $0x4b4f,-0x1a(%rbp)
  movb   $0x46,-0x18(%rbp)
  mov    %rax,-0x17(%rbp)
  movl   $0xa0a0a0a,-0xf(%rbp)
  movw   $0xa0a,-0xb(%rbp)
  movb   $0xa,-0x9(%rbp)
  movabs $0x38483f46383f4838,%rax
  mov    %rax,-0x94(%rbp)
  movl   $0x4b3c4648,-0x8c(%rbp)
  movb   $0x4d,-0x88(%rbp)
  movabs $0xa0a0a140a0a0a14,%rcx
  mov    %rcx,-0x87(%rbp)
  movl   $0xa0a0a0a,-0x7f(%rbp)
  movb   $0x14,-0x7b(%rbp)
  movl   $0x4a41464a,-0xc4(%rbp)
  movw   $0x4846,-0xc0(%rbp)
  movl   $0x1e141e1e,-0xbe(%rbp)
  movw   $0x141e,-0xba(%rbp)
  movabs $0x4838464b48464838,%rsi
  mov    %rsi,-0xaa(%rbp)
  movw   $0x3c4b,-0xa2(%rbp)
  movb   $0x4d,-0xa0(%rbp)
  movabs $0x1e0a0a0a0a0a0a14,%rsi
  mov    %rsi,-0x9f(%rbp)
  movw   $0x140a,-0x97(%rbp)
  movb   $0x14,-0x95(%rbp)
  movl   $0x46463f38,-0xb8(%rbp)
  movw   $0x4d4f,-0xb4(%rbp)
  movb   $0x4b,-0xb2(%rbp)
  movl   $0x140a0a28,-0xb1(%rbp)
  movw   $0x1e1e,-0xad(%rbp)
  movb   $0x14,-0xab(%rbp)
  mov    %rax,-0x42(%rbp)
  movl   $0x4b3c4648,-0x3a(%rbp)
  movw   $0x4b4d,-0x36(%rbp)
  mov    %rcx,-0x34(%rbp)
  movl   $0xa0a0a0a,-0x2c(%rbp)
  movw   $0xa0a,-0x28(%rbp)
  lea    -0x6c(%rbp),%rdx
  lea    -0x7a(%rbp),%rax
  mov    $0xe,%ecx
  mov    %rax,%rsi
  mov    $0x1,%edi
  call   <biscDefineSong@plt>
  cmp    $0xffffffff,%eax
  jne    L182
  mov    $0xffffffff,%eax
  jmp    L144
L182:
  lea    -0x50(%rbp),%rdx
  lea    -0x5e(%rbp),%rax
  mov    $0xe,%ecx
  mov    %rax,%rsi
  mov    $0x2,%edi
  call   <biscDefineSong@plt>
  cmp    $0xffffffff,%eax
  jne    L122
  mov    $0xffffffff,%eax
  jmp    L144
L122:
  lea    -0x17(%rbp),%rdx
  lea    -0x26(%rbp),%rax
  mov    $0xf,%ecx
  mov    %rax,%rsi
  mov    $0x3,%edi
  call   <biscDefineSong@plt>
  cmp    $0xffffffff,%eax
  jne    L260
  mov    $0xffffffff,%eax
  jmp    L144
L260:
  lea    -0x87(%rbp),%rdx
  lea    -0x94(%rbp),%rax
  mov    $0xd,%ecx
  mov    %rax,%rsi
  mov    $0x4,%edi
  call   <biscDefineSong@plt>
  cmp    $0xffffffff,%eax
  jne    L226
  mov    $0xffffffff,%eax
  jmp    L144
L226:
  lea    -0xbe(%rbp),%rdx
  lea    -0xc4(%rbp),%rax
  mov    $0x6,%ecx
  mov    %rax,%rsi
  mov    $0x5,%edi
  call   <biscDefineSong@plt>
  cmp    $0xffffffff,%eax
  jne    L187
  mov    $0xffffffff,%eax
  jmp    L144
L187:
  lea    -0x9f(%rbp),%rdx
  lea    -0xaa(%rbp),%rax
  mov    $0xb,%ecx
  mov    %rax,%rsi
  mov    $0x6,%edi
  call   <biscDefineSong@plt>
  cmp    $0xffffffff,%eax
  jne    L93
  mov    $0xffffffff,%eax
  jmp    L144
L93:
  lea    -0xb1(%rbp),%rdx
  lea    -0xb8(%rbp),%rax
  mov    $0x7,%ecx
  mov    %rax,%rsi
  mov    $0x7,%edi
  call   <biscDefineSong@plt>
  cmp    $0xffffffff,%eax
  jne    L88
  mov    $0xffffffff,%eax
  jmp    L144
L88:
  lea    -0x34(%rbp),%rdx
  lea    -0x42(%rbp),%rax
  mov    $0xe,%ecx
  mov    %rax,%rsi
  mov    $0x8,%edi
  call   <biscDefineSong@plt>
  cmp    $0xffffffff,%eax
  jne    L177
  mov    $0xffffffff,%eax
  jmp    L144
L177:
  mov    $0x1,%edi
  call   <biscPlaySong@plt>
  cmp    $0xffffffff,%eax
  jne    L21
  mov    $0xffffffff,%eax
  jmp    L144
L21:
  mov    $0x24b288,%edi
  call   <usleep@plt>
  mov    $0x2,%edi
  call   <biscPlaySong@plt>
  cmp    $0xffffffff,%eax
  jne    L211
  mov    $0xffffffff,%eax
  jmp    L144
L211:
  mov    $0x24c610,%edi
  call   <usleep@plt>
  mov    $0x3,%edi
  call   <biscPlaySong@plt>
  cmp    $0xffffffff,%eax
  jne    L185
  mov    $0xffffffff,%eax
  jmp    L144
L185:
  mov    $0x24b288,%edi
  call   <usleep@plt>
  mov    $0x4,%edi
  call   <biscPlaySong@plt>
  cmp    $0xffffffff,%eax
  jne    L118
  mov    $0xffffffff,%eax
  jmp    L144
L118:
  mov    $0x254ec8,%edi
  call   <usleep@plt>
  mov    $0x5,%edi
  call   <biscPlaySong@plt>
  cmp    $0xffffffff,%eax
  jne    L19
  mov    $0xffffffff,%eax
  jmp    L144
L19:
  mov    $0x25c3f8,%edi
  call   <usleep@plt>
  mov    $0x6,%edi
  call   <biscPlaySong@plt>
  cmp    $0xffffffff,%eax
  jne    L155
  mov    $0xffffffff,%eax
  jmp    L144
L155:
  mov    $0x2527b8,%edi
  call   <usleep@plt>
  mov    $0x7,%edi
  call   <biscPlaySong@plt>
  cmp    $0xffffffff,%eax
  jne    L141
  mov    $0xffffffff,%eax
  jmp    L144
L141:
  mov    $0x254ec8,%edi
  call   <usleep@plt>
  mov    $0x8,%edi
  call   <biscPlaySong@plt>
  cmp    $0xffffffff,%eax
  jne    L145
  mov    $0xffffffff,%eax
  jmp    L144
L145:
  mov    $0x254ec8,%edi
  call   <usleep@plt>
  mov    $0x0,%eax
L144:
  mov    -0x8(%rbp),%rdx
  sub    %fs:0x28,%rdx
  je     L292
  call   <__stack_chk_fail@plt>
L292:
  leave
  ret
```

assistant: ```c
int biscPlayFireflies(void) {
  unsigned char part1[] = {58, 70, 86, 58, 70, 82, 75, 63, 75, 77, 75, 77, 82, 75};
  unsigned char part1d[] = {10, 10, 10, 10, 10, 20, 10, 10, 10, 10, 10, 10, 20, 10};
  unsigned char part2[] = {56, 72, 70, 72, 75, 63, 56, 70, 72, 70, 60, 70, 75, 77};
  unsigned char part2d[] = {20, 10, 10, 10, 10, 10, 20, 10, 10, 10, 10, 10, 10, 10};
  unsigned char part3[] = {56, 77, 86, 74, 65, 82, 75, 63, 70, 77, 75, 80, 79, 75, 70};
  unsigned char part3d[] = {10, 10, 10, 10, 10, 20, 10, 10, 10, 10, 10, 10, 10, 10, 10};
  unsigned char part4[] = {56, 72, 63, 56, 70, 63, 72, 56, 72, 70, 60, 75, 77};
  unsigned char part4d[] = {20, 10, 10, 10, 20, 10, 10, 10, 10, 10, 10, 10, 20};
  unsigned char part5[] = {74, 70, 65, 74, 70, 72};
  unsigned char part5d[] = {30, 30, 20, 30, 30, 20};
  unsigned char part6[] = {56, 72, 70, 72, 75, 70, 56, 72, 75, 60, 77};
  unsigned char part6d[] = {20, 10, 10, 10, 10, 10, 10, 30, 10, 20, 20};
  unsigned char part7[] = {56, 63, 70, 70, 79, 77, 75};
  unsigned char part7d[] = {40, 10, 10, 20, 30, 30, 20};
  unsigned char part8[] = {56, 72, 63, 56, 70, 63, 72, 56, 72, 70, 60, 75, 77, 75};
  unsigned char part8d[] = {20, 10, 10, 10, 20, 10, 10, 10, 10, 10, 10, 10, 10, 10};
  if (biscDefineSong(1, part1, part1d, sizeof(part1)) == -1)
    return -1;
  if (biscDefineSong(2, part2, part2d, sizeof(part2)) == -1)
    return -1;
  if (biscDefineSong(3, part3, part3d, sizeof(part3)) == -1)
    return -1;
  if (biscDefineSong(4, part4, part4d, sizeof(part4)) == -1)
    return -1;
  if (biscDefineSong(5, part5, part5d, sizeof(part5)) == -1)
    return -1;
  if (biscDefineSong(6, part6, part6d, sizeof(part6)) == -1)
    return -1;
  if (biscDefineSong(7, part7, part7d, sizeof(part7)) == -1)
    return -1;
  if (biscDefineSong(8, part8, part8d, sizeof(part8)) == -1)
    return -1;
  if (biscPlaySong(1) == -1)
    return -1;
  usleep(2405 * 1000);
  if (biscPlaySong(2) == -1)
    return -1;
  usleep(2410 * 1000);
  if (biscPlaySong(3) == -1)
    return -1;
  usleep(2405 * 1000);
  if (biscPlaySong(4) == -1)
    return -1;
  usleep(2445 * 1000);
  if (biscPlaySong(5) == -1)
    return -1;
  usleep(2475 * 1000);
  if (biscPlaySong(6) == -1)
    return -1;
  usleep(2435 * 1000);
  if (biscPlaySong(7) == -1)
    return -1;
  usleep(2445 * 1000);
  if (biscPlaySong(8) == -1)
    return -1;
  usleep(2445 * 1000);
  return 0;
}
```