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

```asm
<pa_parseMiscellaneous>:
  endbr64
  push   %r15
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  sub    $0xe8,%rsp
  mov    %rdi,%r13
  mov    %esi,%r12d
  mov    %fs:0x28,%rax
  mov    %rax,0xd8(%rsp)
  xor    %eax,%eax
  mov    $0x64,%edi
  call   <malloc@plt>
  mov    %rax,%rbp
  movabs $0x20303030334720,%rax
  mov    %rax,0xd0(%rsp)
  lea    D181(%rip),%rax
  mov    %rax,(%rsp)
  lea    D180(%rip),%rax
  mov    %rax,0x8(%rsp)
  lea    D183(%rip),%rax
  mov    %rax,0x10(%rsp)
  lea    D63(%rip),%rax
  mov    %rax,0x18(%rsp)
  lea    D34(%rip),%rax
  mov    %rax,0x20(%rsp)
  lea    D42(%rip),%rax
  mov    %rax,0x28(%rsp)
  lea    D189(%rip),%rax
  mov    %rax,0x30(%rsp)
  lea    D227(%rip),%rax
  mov    %rax,0x38(%rsp)
  lea    D49(%rip),%rax
  mov    %rax,0x40(%rsp)
  lea    D119(%rip),%rax
  mov    %rax,0x48(%rsp)
  lea    D116(%rip),%rax
  mov    %rax,0x50(%rsp)
  lea    D71(%rip),%rax
  mov    %rax,0x58(%rsp)
  lea    D83(%rip),%rax
  mov    %rax,0x60(%rsp)
  lea    D136(%rip),%rax
  mov    %rax,0x68(%rsp)
  lea    D151(%rip),%rax
  mov    %rax,0x70(%rsp)
  lea    D266(%rip),%rax
  mov    %rax,0x78(%rsp)
  lea    D156(%rip),%rax
  mov    %rax,0x80(%rsp)
  lea    D308(%rip),%rax
  mov    %rax,0x88(%rsp)
  lea    D158(%rip),%rax
  mov    %rax,0x90(%rsp)
  lea    D102(%rip),%rax
  mov    %rax,0x98(%rsp)
  lea    D188(%rip),%rax
  mov    %rax,0xa0(%rsp)
  lea    D291(%rip),%rax
  mov    %rax,0xa8(%rsp)
  lea    D132(%rip),%rax
  mov    %rax,0xb0(%rsp)
  lea    D103(%rip),%rax
  mov    %rax,0xb8(%rsp)
  lea    D241(%rip),%rax
  mov    %rax,0xc0(%rsp)
  lea    D33(%rip),%rax
  mov    %rax,0xc8(%rsp)
  movb   $0x0,0x0(%rbp)
  lea    D258(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  test   %r12d,%r12d
  jle    L93
  mov    %r13,%rbx
  lea    -0x1(%r12),%eax
  lea    0x2(%r13,%rax,2),%r13
  lea    D18(%rip),%r15
  lea    D14(%rip),%r14
  jmp    L74
L21:
  cwtl
  sub    $0x41,%eax
  cltq
  mov    (%rsp,%rax,8),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  lea    0xd0(%rsp),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
L99:
  add    $0x2,%rbx
  cmp    %r13,%rbx
  je     L93
L74:
  mov    %rbx,%r12
  movzwl (%rbx),%eax
  lea    -0x41(%rax),%edx
  cmp    $0x19,%dx
  jbe    L21
  lea    -0x61(%rax),%edx
  cmp    $0x19,%dx
  jbe    L127
  cmp    $0x25,%ax
  je     L31
L79:
  cmpw   $0x24,(%r12)
  je     L36
L125:
  cmpw   $0x3d,(%r12)
  je     L40
L7:
  cmpw   $0x40,(%r12)
  jne    L99
  mov    %r15,%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  lea    0xd0(%rsp),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  jmp    L99
L127:
  cwtl
  sub    $0x61,%eax
  cltq
  mov    (%rsp,%rax,8),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  lea    0xd0(%rsp),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  jmp    L99
L31:
  lea    D304(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  lea    0xd0(%rsp),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  jmp    L79
L36:
  lea    D80(%rip),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  lea    0xd0(%rsp),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  jmp    L125
L40:
  mov    %r14,%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  lea    0xd0(%rsp),%rsi
  mov    %rbp,%rdi
  call   <strcat@plt>
  jmp    L7
L93:
  mov    0xd8(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L4
  mov    %rbp,%rax
  add    $0xe8,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
L4:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: unpack_data
arguments: label: D181
type_infered: string
name: unpack_data
arguments: label: D180
type_infered: string
name: unpack_data
arguments: label: D183
type_infered: string
name: unpack_data
arguments: label: D63
type_infered: string
name: unpack_data
arguments: label: D34
type_infered: string
name: unpack_data
arguments: label: D42
type_infered: string
name: unpack_data
arguments: label: D189
type_infered: string
name: unpack_data
arguments: label: D227
type_infered: string
name: unpack_data
arguments: label: D49
type_infered: string
name: unpack_data
arguments: label: D119
type_infered: string
name: unpack_data
arguments: label: D116
type_infered: string
name: unpack_data
arguments: label: D71
type_infered: string
name: unpack_data
arguments: label: D83
type_infered: string
name: unpack_data
arguments: label: D136
type_infered: string
name: unpack_data
arguments: label: D151
type_infered: string
name: unpack_data
arguments: label: D266
type_infered: string
name: unpack_data
arguments: label: D156
type_infered: string
name: unpack_data
arguments: label: D308
type_infered: string
name: unpack_data
arguments: label: D158
type_infered: string
name: unpack_data
arguments: label: D102
type_infered: string
name: unpack_data
arguments: label: D188
type_infered: string
name: unpack_data
arguments: label: D291
type_infered: string
name: unpack_data
arguments: label: D132
type_infered: string
name: unpack_data
arguments: label: D103
type_infered: string
name: unpack_data
arguments: label: D241
type_infered: string
name: unpack_data
arguments: label: D33
type_infered: string
name: unpack_data
arguments: label: D258
type_infered: string
name: unpack_data
arguments: label: D18
type_infered: string
name: unpack_data
arguments: label: D14
type_infered: string
name: unpack_data
arguments: label: D304
type_infered: string
name: unpack_data
arguments: label: D80
type_infered: string

tool: D181: 7

tool: D180: b3

tool: D183: s3

tool: D63: d3

tool: D34: 3

tool: D42: 7f

tool: D189: j3

tool: D227: 7ch

tool: D49: 1y

tool: D119: j7

tool: D116: k3

tool: D71: 7l

tool: D83: 7m

tool: D136: 7n

tool: D151: 11

tool: D266: p3

tool: D156: kHy5

tool: D308: 2r

tool: D158: 7s

tool: D102: tt3

tool: D188: y5

tool: D291: v3

tool: D132: d1b l3 y5

tool: D103: 7 k 0s

tool: D241: v1y

tool: D33: 3z 1d

tool: D258:  

tool: D18: 1tt

tool: D14: s1 m1m

tool: D304: s1 t1 m2 n1m

tool: D80: d12 ll1r

assistant: ```c
char *pa_parseMiscellaneous(short *s, int size) {
  char *phoneticScript = (char *)malloc(100 * sizeof(char));
  int i = 0;
  char gap[] = " G3000 ";
  char *englishAlph[26] = {"7", "b3", "s3", "d3", "3", "7f", "j3", "7ch", "1y", "j7", "k3", "7l", "7m", "7n", "11", "p3", "kHy5", "2r", "7s", "tt3", "y5", "v3", "d1b l3 y5", "7 k 0s", "v1y", "3z 1d"};
  phoneticScript[0] = '\0';
  strcat(phoneticScript, " ");
  for (i = 0; i < size; i++) {
    if (s[i] >= 65 && s[i] <= 90) {
      strcat(phoneticScript, englishAlph[s[i] - 65]);
      strcat(phoneticScript, gap);
    } else if (s[i] >= 97 && s[i] <= 122) {
      strcat(phoneticScript, englishAlph[s[i] - 97]);
      strcat(phoneticScript, gap);
    } else {
      if (s[i] == 0x25) {
        strcat(phoneticScript, "s1 t1 m2 n1m");
        strcat(phoneticScript, gap);
      }
      if (s[i] == 0x24) {
        strcat(phoneticScript, "d12 ll1r");
        strcat(phoneticScript, gap);
      }
      if (s[i] == 0x3D) {
        strcat(phoneticScript, "s1 m1m");
        strcat(phoneticScript, gap);
      }
      if (s[i] == 0x40) {
        strcat(phoneticScript, "1tt");
        strcat(phoneticScript, gap);
      }
    }
  }
  return phoneticScript;
}
```