user: 请从给定的汇编指令推导出C源代码：

```asm
<bn_parseMiscellaneous>:
  endbr64
  push   %r15
  mov    %rdi,%r15
  mov    $0x64,%edi
  push   %r14
  push   %r13
  push   %r12
  push   %rbp
  push   %rbx
  mov    %esi,%ebx
  sub    $0xe8,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,0xd8(%rsp)
  xor    %eax,%eax
  call   <malloc@plt>
  lea    D285(%rip),%rcx
  lea    D9(%rip),%rdx
  mov    %rax,%r12
  movq   %rcx,%xmm0
  movabs $0x20303030334720,%rax
  mov    %rax,0xd0(%rsp)
  lea    D80(%rip),%rax
  lea    D175(%rip),%rcx
  movq   %rax,%xmm1
  lea    D169(%rip),%rax
  lea    D139(%rip),%rdi
  movb   $0x0,(%r12)
  punpcklqdq %xmm1,%xmm0
  movq   %rax,%xmm2
  lea    D251(%rip),%rax
  movaps %xmm0,(%rsp)
  movq   %rcx,%xmm0
  movq   %rax,%xmm3
  lea    D53(%rip),%rcx
  punpcklqdq %xmm2,%xmm0
  lea    D197(%rip),%rax
  lea    D271(%rip),%rsi
  movaps %xmm0,0x10(%rsp)
  movq   %rcx,%xmm0
  movq   %rax,%xmm4
  lea    D50(%rip),%rcx
  punpcklqdq %xmm3,%xmm0
  lea    D206(%rip),%rax
  movaps %xmm0,0x20(%rsp)
  movq   %rcx,%xmm0
  movq   %rax,%xmm5
  lea    D253(%rip),%rcx
  punpcklqdq %xmm4,%xmm0
  lea    D294(%rip),%rax
  movaps %xmm0,0x30(%rsp)
  movq   %rcx,%xmm0
  movq   %rax,%xmm6
  lea    D219(%rip),%rcx
  punpcklqdq %xmm5,%xmm0
  lea    D20(%rip),%rax
  movaps %xmm0,0x40(%rsp)
  movq   %rcx,%xmm0
  movq   %rax,%xmm7
  lea    D274(%rip),%rcx
  punpcklqdq %xmm6,%xmm0
  lea    D291(%rip),%rax
  movaps %xmm0,0x50(%rsp)
  movq   %rcx,%xmm0
  movq   %rax,%xmm1
  lea    D267(%rip),%rcx
  punpcklqdq %xmm7,%xmm0
  lea    D298(%rip),%rax
  movaps %xmm0,0x60(%rsp)
  movq   %rcx,%xmm0
  movq   %rax,%xmm2
  lea    D163(%rip),%rcx
  punpcklqdq %xmm1,%xmm0
  lea    D181(%rip),%rax
  movaps %xmm0,0x70(%rsp)
  movq   %rcx,%xmm0
  movq   %rax,%xmm3
  lea    D205(%rip),%rcx
  punpcklqdq %xmm2,%xmm0
  lea    D0(%rip),%rax
  movaps %xmm0,0x80(%rsp)
  movq   %rdx,%xmm0
  movq   %rax,%xmm4
  lea    D133(%rip),%rdx
  punpcklqdq %xmm3,%xmm0
  lea    D130(%rip),%rax
  movaps %xmm0,0x90(%rsp)
  movq   %rcx,%xmm0
  movq   %rax,%xmm5
  lea    D70(%rip),%rax
  punpcklqdq %xmm4,%xmm0
  movq   %rax,%xmm6
  movaps %xmm0,0xa0(%rsp)
  movq   %rdx,%xmm0
  punpcklqdq %xmm5,%xmm0
  movaps %xmm0,0xb0(%rsp)
  movq   %rdi,%xmm0
  mov    %r12,%rdi
  punpcklqdq %xmm6,%xmm0
  movaps %xmm0,0xc0(%rsp)
  call   <strcat@plt>
  test   %ebx,%ebx
  jle    L77
  lea    -0x1(%rbx),%eax
  lea    D16(%rip),%r14
  lea    0x2(%r15,%rax,2),%rbx
  lea    D128(%rip),%r13
  lea    D42(%rip),%rbp
  jmp    L72
  nopw   0x0(%rax,%rax,1)
L138:
  cmp    $0x25,%ax
  je     L137
L18:
  cmp    $0x24,%ax
  je     L74
L0:
  cmp    $0x3d,%ax
  je     L26
L121:
  cmp    $0x40,%ax
  je     L126
  add    $0x2,%r15
  cmp    %r15,%rbx
  je     L77
L72:
  movzwl (%r15),%eax
  lea    -0x41(%rax),%edx
  cmp    $0x19,%dx
  ja     L138
  sub    $0x41,%eax
  cltq
  mov    (%rsp,%rax,8),%rsi
L5:
  mov    %r12,%rdi
  add    $0x2,%r15
  call   <strcat@plt>
  lea    0xd0(%rsp),%rsi
  mov    %r12,%rdi
  call   <strcat@plt>
  cmp    %r15,%rbx
  jne    L72
L77:
  mov    0xd8(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L32
  add    $0xe8,%rsp
  mov    %r12,%rax
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
  nopl   0x0(%rax)
L126:
  mov    %r14,%rsi
  jmp    L5
  nopl   (%rax)
L26:
  mov    %r13,%rsi
  mov    %r12,%rdi
  call   <strcat@plt>
  lea    0xd0(%rsp),%rsi
  mov    %r12,%rdi
  call   <strcat@plt>
  movzwl (%r15),%eax
  jmp    L121
  nopl   0x0(%rax)
L74:
  lea    D29(%rip),%rsi
  mov    %r12,%rdi
  call   <strcat@plt>
  lea    0xd0(%rsp),%rsi
  mov    %r12,%rdi
  call   <strcat@plt>
  movzwl (%r15),%eax
  jmp    L0
L137:
  mov    %rbp,%rsi
  mov    %r12,%rdi
  call   <strcat@plt>
  lea    0xd0(%rsp),%rsi
  mov    %r12,%rdi
  call   <strcat@plt>
  movzwl (%r15),%eax
  jmp    L18
L32:
  call   <__stack_chk_fail@plt>
```

tool_calls: name: extract_symbolic_data
arguments: label: D285
type_infered: string
name: extract_symbolic_data
arguments: label: D9
type_infered: string
name: extract_symbolic_data
arguments: label: D80
type_infered: string
name: extract_symbolic_data
arguments: label: D175
type_infered: string
name: extract_symbolic_data
arguments: label: D169
type_infered: string
name: extract_symbolic_data
arguments: label: D139
type_infered: string
name: extract_symbolic_data
arguments: label: D251
type_infered: string
name: extract_symbolic_data
arguments: label: D53
type_infered: string
name: extract_symbolic_data
arguments: label: D197
type_infered: string
name: extract_symbolic_data
arguments: label: D271
type_infered: string
name: extract_symbolic_data
arguments: label: D50
type_infered: string
name: extract_symbolic_data
arguments: label: D206
type_infered: string
name: extract_symbolic_data
arguments: label: D253
type_infered: string
name: extract_symbolic_data
arguments: label: D294
type_infered: string
name: extract_symbolic_data
arguments: label: D219
type_infered: string
name: extract_symbolic_data
arguments: label: D20
type_infered: string
name: extract_symbolic_data
arguments: label: D274
type_infered: string
name: extract_symbolic_data
arguments: label: D291
type_infered: string
name: extract_symbolic_data
arguments: label: D267
type_infered: string
name: extract_symbolic_data
arguments: label: D298
type_infered: string
name: extract_symbolic_data
arguments: label: D163
type_infered: string
name: extract_symbolic_data
arguments: label: D181
type_infered: string
name: extract_symbolic_data
arguments: label: D205
type_infered: string
name: extract_symbolic_data
arguments: label: D0
type_infered: string
name: extract_symbolic_data
arguments: label: D133
type_infered: string
name: extract_symbolic_data
arguments: label: D130
type_infered: string
name: extract_symbolic_data
arguments: label: D70
type_infered: string
name: extract_symbolic_data
arguments: label: D16
type_infered: string
name: extract_symbolic_data
arguments: label: D128
type_infered: string
name: extract_symbolic_data
arguments: label: D42
type_infered: string
name: extract_symbolic_data
arguments: label: D29
type_infered: string

tool: D285: 7

tool: D9: 7s

tool: D80: 9B

tool: D175: s3

tool: D169: d3

tool: D139: v1y

tool: D251: 7f

tool: D53: 3

tool: D197: 7ch

tool: D271:  

tool: D50: j3

tool: D206: j7

tool: D253: 1y

tool: D294: 7l

tool: D219: k3

tool: D20: 7n

tool: D274: 7m

tool: D291: p3

tool: D267: 11

tool: D298: 2r

tool: D163: kHy5

tool: D181: tt3

tool: D205: y5

tool: D0: v3

tool: D133: d1b l3 y5

tool: D130: 7 k 0s

tool: D70: 3z 1d

tool: D16: 1tt

tool: D128: s1 m1m

tool: D42: s1 t1 m2 n1m

tool: D29: d12 ll1r

assistant: ```c
char *bn_parseMiscellaneous(unsigned short *s, int size) {
  char *phoneticScript = (char *)malloc(100 * sizeof(char));
  int i = 0;
  char gap[] = " G3000 ";
  char *englishAlph[26] = {"7", "9B", "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] == 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;
}
```