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

```asm
<mr_parsenum>:
  endbr64
  push   %r15
  mov    %rdx,%r15
  push   %r14
  push   %r13
  push   %r12
  mov    %rdi,%r12
  push   %rbp
  movslq %esi,%rbp
  push   %rbx
  sub    $0x3e8,%rsp
  mov    %fs:0x28,%rax
  mov    %rax,0x3d8(%rsp)
  lea    D498(%rip),%rax
  mov    %rax,0x10(%rsp)
  lea    D392(%rip),%rax
  mov    %rax,0x18(%rsp)
  lea    D164(%rip),%rax
  mov    %rax,0x20(%rsp)
  lea    D638(%rip),%rax
  mov    %rax,0x28(%rsp)
  lea    D579(%rip),%rax
  mov    %rax,0x30(%rsp)
  lea    D649(%rip),%rax
  mov    %rax,0x38(%rsp)
  lea    D1108(%rip),%rax
  mov    %rax,0x40(%rsp)
  lea    D904(%rip),%rax
  mov    %rax,0x48(%rsp)
  lea    D160(%rip),%rax
  mov    %rax,0x50(%rsp)
  lea    D1033(%rip),%rax
  mov    %rax,0x58(%rsp)
  lea    D264(%rip),%rax
  mov    %rax,0x60(%rsp)
  lea    D256(%rip),%rax
  mov    %rax,0x68(%rsp)
  lea    D353(%rip),%rax
  mov    %rax,0x70(%rsp)
  lea    D1091(%rip),%rax
  mov    %rax,0x78(%rsp)
  lea    D137(%rip),%rax
  mov    %rax,0x80(%rsp)
  lea    D247(%rip),%rax
  mov    %rax,0x88(%rsp)
  lea    D417(%rip),%rax
  mov    %rax,0x90(%rsp)
  lea    D960(%rip),%rax
  mov    %rax,0x98(%rsp)
  lea    D157(%rip),%rax
  mov    %rax,0xa0(%rsp)
  lea    D741(%rip),%rax
  mov    %rax,0xa8(%rsp)
  lea    D324(%rip),%rax
  mov    %rax,0xb0(%rsp)
  lea    D151(%rip),%rax
  mov    %rax,0xb8(%rsp)
  lea    D1019(%rip),%rax
  mov    %rax,0xc0(%rsp)
  lea    D113(%rip),%rax
  mov    %rax,0xc8(%rsp)
  lea    D548(%rip),%rax
  mov    %rax,0xd0(%rsp)
  lea    D166(%rip),%rax
  mov    %rax,0xd8(%rsp)
  lea    D1161(%rip),%rax
  mov    %rax,0xe0(%rsp)
  lea    D577(%rip),%rax
  mov    %rax,0xe8(%rsp)
  lea    D238(%rip),%rax
  mov    %rax,0xf0(%rsp)
  lea    D242(%rip),%rax
  mov    %rax,0xf8(%rsp)
  lea    D356(%rip),%rax
  mov    %rax,0x100(%rsp)
  lea    D281(%rip),%rax
  mov    %rax,0x108(%rsp)
  lea    D268(%rip),%rax
  mov    %rax,0x110(%rsp)
  lea    D536(%rip),%rax
  mov    %rax,0x118(%rsp)
  lea    D1012(%rip),%rax
  mov    %rax,0x120(%rsp)
  lea    D129(%rip),%rax
  mov    %rax,0x128(%rsp)
  lea    D610(%rip),%rax
  mov    %rax,0x130(%rsp)
  lea    D248(%rip),%rax
  mov    %rax,0x138(%rsp)
  lea    D464(%rip),%rax
  mov    %rax,0x140(%rsp)
  lea    D194(%rip),%rax
  mov    %rax,0x148(%rsp)
  lea    D1146(%rip),%rax
  mov    %rax,0x150(%rsp)
  lea    D534(%rip),%rax
  mov    %rax,0x158(%rsp)
  lea    D481(%rip),%rax
  mov    %rax,0x160(%rsp)
  lea    D614(%rip),%rax
  mov    %rax,0x168(%rsp)
  lea    D1025(%rip),%rax
  mov    %rax,0x170(%rsp)
  lea    D1005(%rip),%rax
  mov    %rax,0x178(%rsp)
  lea    D118(%rip),%rax
  mov    %rax,0x180(%rsp)
  lea    D734(%rip),%rax
  mov    %rax,0x188(%rsp)
  lea    D358(%rip),%rax
  mov    %rax,0x190(%rsp)
  lea    D96(%rip),%rax
  mov    %rax,0x198(%rsp)
  lea    D695(%rip),%rax
  mov    %rax,0x1a0(%rsp)
  lea    D290(%rip),%rax
  mov    %rax,0x1a8(%rsp)
  lea    D567(%rip),%rax
  mov    %rax,0x1b0(%rsp)
  lea    D447(%rip),%rax
  mov    %rax,0x1b8(%rsp)
  lea    D829(%rip),%rax
  mov    %rax,0x1c0(%rsp)
  lea    D816(%rip),%rax
  mov    %rax,0x1c8(%rsp)
  lea    D77(%rip),%rax
  mov    %rax,0x1d0(%rsp)
  lea    D915(%rip),%rax
  mov    %rax,0x1d8(%rsp)
  lea    D373(%rip),%rax
  mov    %rax,0x1e0(%rsp)
  lea    D365(%rip),%rax
  mov    %rax,0x1e8(%rsp)
  lea    D1065(%rip),%rax
  mov    %rax,0x1f0(%rsp)
  lea    D630(%rip),%rax
  mov    %rax,0x1f8(%rsp)
  lea    D1006(%rip),%rax
  mov    %rax,0x200(%rsp)
  lea    D767(%rip),%rax
  mov    %rax,0x208(%rsp)
  lea    D201(%rip),%rax
  mov    %rax,0x210(%rsp)
  lea    D928(%rip),%rax
  mov    %rax,0x218(%rsp)
  lea    D856(%rip),%rax
  mov    %rax,0x220(%rsp)
  lea    D169(%rip),%rax
  mov    %rax,0x228(%rsp)
  lea    D1036(%rip),%rax
  mov    %rax,0x230(%rsp)
  lea    D622(%rip),%rax
  mov    %rax,0x238(%rsp)
  lea    D1125(%rip),%rax
  mov    %rax,0x240(%rsp)
  lea    D668(%rip),%rax
  mov    %rax,0x248(%rsp)
  lea    D946(%rip),%rax
  mov    %rax,0x250(%rsp)
  lea    D803(%rip),%rax
  mov    %rax,0x258(%rsp)
  lea    D185(%rip),%rax
  mov    %rax,0x260(%rsp)
  lea    D210(%rip),%rax
  mov    %rax,0x268(%rsp)
  lea    D0(%rip),%rax
  mov    %rax,0x270(%rsp)
  lea    D715(%rip),%rax
  mov    %rax,0x278(%rsp)
  lea    D121(%rip),%rax
  mov    %rax,0x280(%rsp)
  lea    D612(%rip),%rax
  mov    %rax,0x288(%rsp)
  lea    D728(%rip),%rax
  mov    %rax,0x290(%rsp)
  lea    D527(%rip),%rax
  mov    %rax,0x298(%rsp)
  lea    D665(%rip),%rax
  mov    %rax,0x2a0(%rsp)
  lea    D532(%rip),%rax
  mov    %rax,0x2a8(%rsp)
  lea    D840(%rip),%rax
  mov    %rax,0x2b0(%rsp)
  lea    D801(%rip),%rax
  mov    %rax,0x2b8(%rsp)
  lea    D291(%rip),%rax
  mov    %rax,0x2c0(%rsp)
  lea    D873(%rip),%rax
  mov    %rax,0x2c8(%rsp)
  lea    D853(%rip),%rax
  mov    %rax,0x2d0(%rsp)
  lea    D1159(%rip),%rax
  mov    %rax,0x2d8(%rsp)
  lea    D1084(%rip),%rax
  mov    %rax,0x2e0(%rsp)
  lea    D581(%rip),%rax
  mov    %rax,0x2e8(%rsp)
  lea    D844(%rip),%rax
  mov    %rax,0x2f0(%rsp)
  lea    D156(%rip),%rax
  mov    %rax,0x2f8(%rsp)
  lea    D289(%rip),%rax
  mov    %rax,0x300(%rsp)
  lea    D1138(%rip),%rax
  mov    %rax,0x308(%rsp)
  lea    D1094(%rip),%rax
  mov    %rax,0x310(%rsp)
  lea    D379(%rip),%rax
  mov    %rax,0x318(%rsp)
  lea    D1093(%rip),%rax
  mov    %rax,0x320(%rsp)
  lea    D192(%rip),%rax
  mov    %rax,0x328(%rsp)
  lea    D518(%rip),%rax
  mov    %rax,0x330(%rsp)
  lea    D547(%rip),%rax
  mov    %rax,0x338(%rsp)
  lea    D1042(%rip),%rax
  mov    %rax,0x340(%rsp)
  lea    D205(%rip),%rax
  mov    %rax,0x348(%rsp)
  lea    D642(%rip),%rax
  mov    %rax,0x350(%rsp)
  lea    D1139(%rip),%rax
  mov    %rax,0x358(%rsp)
  lea    D19(%rip),%rax
  mov    %rax,0x360(%rsp)
  lea    D709(%rip),%rax
  mov    %rax,0x368(%rsp)
  lea    D725(%rip),%rax
  mov    %rax,0x370(%rsp)
  lea    D710(%rip),%rax
  mov    %rax,0x378(%rsp)
  lea    0x60(%rsp),%rax
  mov    %rax,0x380(%rsp)
  lea    0xb0(%rsp),%rax
  mov    %rax,0x388(%rsp)
  lea    0x100(%rsp),%rax
  mov    %rax,0x390(%rsp)
  lea    0x150(%rsp),%rax
  mov    %rax,0x398(%rsp)
  lea    0x1a0(%rsp),%rax
  mov    %rax,0x3a0(%rsp)
  lea    0x1f0(%rsp),%rax
  mov    %rax,0x3a8(%rsp)
  lea    0x240(%rsp),%rax
  mov    %rax,0x3b0(%rsp)
  lea    0x290(%rsp),%rax
  mov    %rax,0x3b8(%rsp)
  lea    0x2e0(%rsp),%rax
  mov    %rax,0x3c0(%rsp)
  lea    0x330(%rsp),%rax
  mov    %rax,0x3c8(%rsp)
  cmp    $0x1,%ebp
  je     L46
  cmp    $0x2,%ebp
  je     L72
  cmp    $0x3,%ebp
  je     L5
  jg     L14
  mov    0x3d8(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L158
  add    $0x3e8,%rsp
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  ret
  nopw   0x0(%rax,%rax,1)
L14:
  mov    %ebp,%eax
  and    $0x1,%eax
  mov    %eax,%edx
  xor    $0x1,%edx
  test   %eax,%eax
  je     L123
L81:
  lea    -0x3(%rbp),%eax
  cmp    %eax,%edx
  jge    L124
  lea    -0x4(%rbp),%eax
  movslq %edx,%rcx
  lea    D713(%rip),%r13
  mov    %ebp,%ebx
  sub    %rdx,%rax
  lea    (%r12,%rcx,4),%r14
  sub    %edx,%ebx
  and    $0xfffffffe,%eax
  add    %rcx,%rax
  lea    0x8(%r12,%rax,4),%rax
  mov    %rax,0x8(%rsp)
  nopl   (%rax)
L61:
  movslq (%r14),%rax
  movslq 0x4(%r14),%rcx
  mov    %r15,%rdi
  add    $0x8,%r14
  mov    0x380(%rsp,%rax,8),%rax
  mov    (%rax,%rcx,8),%rsi
  call   <strcat@plt>
  mov    %r13,%rsi
  mov    %r15,%rdi
  call   <strcat@plt>
  mov    %ebx,%eax
  mov    %r15,%rdi
  shr    $0x1f,%eax
  add    %ebx,%eax
  sub    $0x2,%ebx
  sar    %eax
  cltq
  mov    0x10(%rsp,%rax,8),%rsi
  call   <strcat@plt>
  mov    %r13,%rsi
  mov    %r15,%rdi
  call   <strcat@plt>
  cmp    %r14,0x8(%rsp)
  jne    L61
L124:
  shl    $0x2,%rbp
  movslq -0xc(%r12,%rbp,1),%rax
  test   %eax,%eax
  jne    L58
L43:
  movslq -0x8(%r12,%rbp,1),%rax
  movslq -0x4(%r12,%rbp,1),%rdx
L141:
  mov    0x380(%rsp,%rax,8),%rax
  mov    %r15,%rdi
  mov    (%rax,%rdx,8),%rsi
  call   <strcat@plt>
  mov    0x3d8(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L158
L30:
  lea    D713(%rip),%rsi
L105:
  add    $0x3e8,%rsp
  mov    %r15,%rdi
  pop    %rbx
  pop    %rbp
  pop    %r12
  pop    %r13
  pop    %r14
  pop    %r15
  jmp    1070 <strcat@plt>
  nopl   0x0(%rax)
L46:
  movslq (%rdi),%rax
  mov    %rdx,%rdi
  mov    0x60(%rsp,%rax,8),%rsi
  call   <strcat@plt>
  mov    0x3d8(%rsp),%rax
  sub    %fs:0x28,%rax
  je     L30
L158:
  call   <__stack_chk_fail@plt>
L58:
  mov    0x60(%rsp,%rax,8),%rsi
  mov    %r15,%rdi
  lea    D713(%rip),%r13
  call   <strcat@plt>
  mov    %r13,%rsi
  mov    %r15,%rdi
  call   <strcat@plt>
  mov    %r15,%rdi
  lea    D392(%rip),%rsi
  call   <strcat@plt>
  mov    %r13,%rsi
  mov    %r15,%rdi
  call   <strcat@plt>
  jmp    L43
  xchg   %ax,%ax
L123:
  movslq (%rdi),%rax
  lea    D713(%rip),%r13
  mov    %r15,%rdi
  mov    %edx,0x8(%rsp)
  mov    0x60(%rsp,%rax,8),%rsi
  call   <strcat@plt>
  mov    %r13,%rsi
  mov    %r15,%rdi
  call   <strcat@plt>
  mov    0x8(%rsp),%edx
  mov    %ebp,%eax
  mov    %r15,%rdi
  sub    %edx,%eax
  sar    %eax
  add    $0x1,%eax
  cltq
  mov    0x10(%rsp,%rax,8),%rsi
  call   <strcat@plt>
  mov    %r13,%rsi
  mov    %r15,%rdi
  call   <strcat@plt>
  mov    0x8(%rsp),%edx
  jmp    L81
  cs nopw 0x0(%rax,%rax,1)
L72:
  movslq (%rdi),%rax
  movslq 0x4(%rdi),%rdx
  jmp    L141
  nopl   0x0(%rax)
L5:
  movslq (%rdi),%rax
  lea    D713(%rip),%rbp
  mov    %rdx,%rdi
  mov    0x60(%rsp,%rax,8),%rsi
  call   <strcat@plt>
  mov    %rbp,%rsi
  mov    %r15,%rdi
  call   <strcat@plt>
  lea    D392(%rip),%rsi
  mov    %r15,%rdi
  call   <strcat@plt>
  mov    %rbp,%rsi
  mov    %r15,%rdi
  call   <strcat@plt>
  movslq 0x4(%r12),%rax
  movslq 0x8(%r12),%rdx
  mov    %r15,%rdi
  mov    0x380(%rsp,%rax,8),%rax
  mov    (%rax,%rdx,8),%rsi
  call   <strcat@plt>
  mov    0x3d8(%rsp),%rax
  sub    %fs:0x28,%rax
  jne    L158
  mov    %rbp,%rsi
  jmp    L105
```

tool_calls: name: disassemble_data
arguments: tag: D498
type_infered: string
name: disassemble_data
arguments: tag: D392
type_infered: string
name: disassemble_data
arguments: tag: D164
type_infered: string
name: disassemble_data
arguments: tag: D638
type_infered: string
name: disassemble_data
arguments: tag: D579
type_infered: string
name: disassemble_data
arguments: tag: D649
type_infered: string
name: disassemble_data
arguments: tag: D1108
type_infered: string
name: disassemble_data
arguments: tag: D904
type_infered: string
name: disassemble_data
arguments: tag: D160
type_infered: string
name: disassemble_data
arguments: tag: D1033
type_infered: string
name: disassemble_data
arguments: tag: D264
type_infered: string
name: disassemble_data
arguments: tag: D256
type_infered: string
name: disassemble_data
arguments: tag: D353
type_infered: string
name: disassemble_data
arguments: tag: D1091
type_infered: string
name: disassemble_data
arguments: tag: D137
type_infered: string
name: disassemble_data
arguments: tag: D247
type_infered: string
name: disassemble_data
arguments: tag: D417
type_infered: string
name: disassemble_data
arguments: tag: D960
type_infered: string
name: disassemble_data
arguments: tag: D157
type_infered: string
name: disassemble_data
arguments: tag: D741
type_infered: string
name: disassemble_data
arguments: tag: D324
type_infered: string
name: disassemble_data
arguments: tag: D151
type_infered: string
name: disassemble_data
arguments: tag: D1019
type_infered: string
name: disassemble_data
arguments: tag: D113
type_infered: string
name: disassemble_data
arguments: tag: D548
type_infered: string
name: disassemble_data
arguments: tag: D166
type_infered: string
name: disassemble_data
arguments: tag: D1161
type_infered: string
name: disassemble_data
arguments: tag: D577
type_infered: string
name: disassemble_data
arguments: tag: D238
type_infered: string
name: disassemble_data
arguments: tag: D242
type_infered: string
name: disassemble_data
arguments: tag: D356
type_infered: string
name: disassemble_data
arguments: tag: D281
type_infered: string
name: disassemble_data
arguments: tag: D268
type_infered: string
name: disassemble_data
arguments: tag: D536
type_infered: string
name: disassemble_data
arguments: tag: D1012
type_infered: string
name: disassemble_data
arguments: tag: D129
type_infered: string
name: disassemble_data
arguments: tag: D610
type_infered: string
name: disassemble_data
arguments: tag: D248
type_infered: string
name: disassemble_data
arguments: tag: D464
type_infered: string
name: disassemble_data
arguments: tag: D194
type_infered: string
name: disassemble_data
arguments: tag: D1146
type_infered: string
name: disassemble_data
arguments: tag: D534
type_infered: string
name: disassemble_data
arguments: tag: D481
type_infered: string
name: disassemble_data
arguments: tag: D614
type_infered: string
name: disassemble_data
arguments: tag: D1025
type_infered: string
name: disassemble_data
arguments: tag: D1005
type_infered: string
name: disassemble_data
arguments: tag: D118
type_infered: string
name: disassemble_data
arguments: tag: D734
type_infered: string
name: disassemble_data
arguments: tag: D358
type_infered: string
name: disassemble_data
arguments: tag: D96
type_infered: string
name: disassemble_data
arguments: tag: D695
type_infered: string
name: disassemble_data
arguments: tag: D290
type_infered: string
name: disassemble_data
arguments: tag: D567
type_infered: string
name: disassemble_data
arguments: tag: D447
type_infered: string
name: disassemble_data
arguments: tag: D829
type_infered: string
name: disassemble_data
arguments: tag: D816
type_infered: string
name: disassemble_data
arguments: tag: D77
type_infered: string
name: disassemble_data
arguments: tag: D915
type_infered: string
name: disassemble_data
arguments: tag: D373
type_infered: string
name: disassemble_data
arguments: tag: D365
type_infered: string
name: disassemble_data
arguments: tag: D1065
type_infered: string
name: disassemble_data
arguments: tag: D630
type_infered: string
name: disassemble_data
arguments: tag: D1006
type_infered: string
name: disassemble_data
arguments: tag: D767
type_infered: string
name: disassemble_data
arguments: tag: D201
type_infered: string
name: disassemble_data
arguments: tag: D928
type_infered: string
name: disassemble_data
arguments: tag: D856
type_infered: string
name: disassemble_data
arguments: tag: D169
type_infered: string
name: disassemble_data
arguments: tag: D1036
type_infered: string
name: disassemble_data
arguments: tag: D622
type_infered: string
name: disassemble_data
arguments: tag: D1125
type_infered: string
name: disassemble_data
arguments: tag: D668
type_infered: string
name: disassemble_data
arguments: tag: D946
type_infered: string
name: disassemble_data
arguments: tag: D803
type_infered: string
name: disassemble_data
arguments: tag: D185
type_infered: string
name: disassemble_data
arguments: tag: D210
type_infered: string
name: disassemble_data
arguments: tag: D0
type_infered: string
name: disassemble_data
arguments: tag: D715
type_infered: string
name: disassemble_data
arguments: tag: D121
type_infered: string
name: disassemble_data
arguments: tag: D612
type_infered: string
name: disassemble_data
arguments: tag: D728
type_infered: string
name: disassemble_data
arguments: tag: D527
type_infered: string
name: disassemble_data
arguments: tag: D665
type_infered: string
name: disassemble_data
arguments: tag: D532
type_infered: string
name: disassemble_data
arguments: tag: D840
type_infered: string
name: disassemble_data
arguments: tag: D801
type_infered: string
name: disassemble_data
arguments: tag: D291
type_infered: string
name: disassemble_data
arguments: tag: D873
type_infered: string
name: disassemble_data
arguments: tag: D853
type_infered: string
name: disassemble_data
arguments: tag: D1159
type_infered: string
name: disassemble_data
arguments: tag: D1084
type_infered: string
name: disassemble_data
arguments: tag: D581
type_infered: string
name: disassemble_data
arguments: tag: D844
type_infered: string
name: disassemble_data
arguments: tag: D156
type_infered: string
name: disassemble_data
arguments: tag: D289
type_infered: string
name: disassemble_data
arguments: tag: D1138
type_infered: string
name: disassemble_data
arguments: tag: D1094
type_infered: string
name: disassemble_data
arguments: tag: D379
type_infered: string
name: disassemble_data
arguments: tag: D1093
type_infered: string
name: disassemble_data
arguments: tag: D192
type_infered: string
name: disassemble_data
arguments: tag: D518
type_infered: string
name: disassemble_data
arguments: tag: D547
type_infered: string
name: disassemble_data
arguments: tag: D1042
type_infered: string
name: disassemble_data
arguments: tag: D205
type_infered: string
name: disassemble_data
arguments: tag: D642
type_infered: string
name: disassemble_data
arguments: tag: D1139
type_infered: string
name: disassemble_data
arguments: tag: D19
type_infered: string
name: disassemble_data
arguments: tag: D709
type_infered: string
name: disassemble_data
arguments: tag: D725
type_infered: string
name: disassemble_data
arguments: tag: D710
type_infered: string
name: disassemble_data
arguments: tag: D713
type_infered: string

tool: D498:  

tool: D392: sh8

tool: D164: h1 z2r

tool: D638: l2kh

tool: D579: k12 tt4

tool: D649: 1 r1b

tool: D1108: kh1 r1b

tool: D904: n4l

tool: D160: p1 d1m

tool: D1033: sh1n 0kh

tool: D264: sh6n 0y

tool: D256: 8k

tool: D353: d12n

tool: D1091: t4n

tool: D137: ch2r

tool: D247: p2ch

tool: D417: s1 h2

tool: D960: s2t

tool: D157: 2tth

tool: D741: n6

tool: D324: d1 h2

tool: D151: 1k r2

tool: D1019: b2 r2

tool: D113: t8 r2

tool: D548: ch13 d2

tool: D166: p1n dh1 r2

tool: D1161: s12 ll2

tool: D577: s1t r2

tool: D238: 1tth r2

tool: D242: 8 k12 nna2 v3s

tool: D356: v4s

tool: D281: 8k v4s

tool: D268: b2 v4s

tool: D536: t8 v4s

tool: D1012: ch12 v4s

tool: D129: p1n ch1 v4s

tool: D610: s1v v4s

tool: D248: s1t t2 v4s

tool: D464: 1tth tth2 v4s

tool: D194: 8 k12nna t4s

tool: D1146: t4s

tool: D534: 8k t4s

tool: D481: b1t t4s

tool: D614: t8h t4s

tool: D1025: ch13 t4s

tool: D1005: p1s t4s

tool: D118: chh1t t4s

tool: D734: s1d t4s

tool: D358: 1dd t4s

tool: D96: 8 k12nna ch2 ll4s

tool: D695: ch2 ll4s

tool: D290: 8k k8 ch2 ll4s

tool: D567: b8 ch2 ll4s

tool: D447: tHr8 ch2 ll4s

tool: D829: ch1v v8 ch2 ll4s

tool: D816: p1n 0ch ch8 ch2 ll4s

tool: D77: s8 h8 ch2 ll4s

tool: D915: s1t t8 ch2 ll4s

tool: D373: 1tth tth8 ch2 ll4s

tool: D365: 8 k12nna p1n n2s

tool: D1065: p1n n2s

tool: D630: 8k k2 v1n

tool: D1006: b2 v1n

tool: D767: tHr8 p1n 0n

tool: D201: ch12 p1n

tool: D928: p1n ch2 v1n 0n

tool: D856: chh1p p1n

tool: D169: s1t t2 v1n

tool: D1036: 1tth tth2 v1n

tool: D622: 8 k12nna s2tth

tool: D1125: s2tth

tool: D668: 8k s1sh 0tth

tool: D946: b2 s1sh 0tth

tool: D803: tHr8 s1sh 0tth

tool: D185: ch13 s1sh 0tth

tool: D210: p2 s1sh 0tth

tool: D0: s1 h2 s1sh 0tth

tool: D715: s1 d5 s1sh 0tth

tool: D121: 1 dd5 s1sh 0tth

tool: D612: 8 k12nna s1t t1r

tool: D728: s1t t1r

tool: D527: 8k k2 h1t t1r

tool: D665: b2 h1t t1r

tool: D532: tHr8 h1t t1r

tool: D840: ch13r y2 h1t t1r

tool: D801: p1n 0ch ch2 h1t t1r 

tool: D291: sh1 h2 h1t t1r

tool: D873: s1t y2 h1t t1r

tool: D853: 1tth y2 h1t t1r

tool: D1159: 8 k12 nna9n sh4

tool: D1084: 9n sh4

tool: D581: 8k y2 9n sh4

tool: D844: bHy2 9n sh4

tool: D156: 0t 0r y2 9n sh4

tool: D289: ch13r y2 9n sh4

tool: D1138: p1n  chHy2 9n sh4

tool: D1094: sh1h y2 9n sh4

tool: D379: s1t y2 9n sh4

tool: D1093: 1tth 0tth y2 9n sh4

tool: D192: 8 k12nna n1v v1d

tool: D518: n1v v1d

tool: D547: 8k y2 n1v

tool: D1042: bHy2 n1v

tool: D205: 0t 0r y2n n1v

tool: D642: ch13r y2n n1v

tool: D1139: p1n  chHy2n n1v

tool: D19: sh1h y2 nna1v

tool: D709: s1t  tHy2n n1v

tool: D725: 1tth 0tth y2n n1v

tool: D710: n1v y2n n1v

tool: D713:  G3000 

assistant: ```c
void mr_parsenum(int *arr, int arrsz, char *final) {
  char *scales[] = {" ", "sh8", "h1 z2r", "l2kh", "k12 tt4", "1 r1b", "kh1 r1b", "n4l", "p1 d1m", "sh1n 0kh"};
  char *units[] = {"sh6n 0y", "8k", "d12n", "t4n", "ch2r", "p2ch", "s1 h2", "s2t", "2tth", "n6"};
  char *teens[] = {"d1 h2", "1k r2", "b2 r2", "t8 r2", "ch13 d2", "p1n dh1 r2", "s12 ll2", "s1t r2", "1tth r2", "8 k12 nna2 v3s"};
  char *twenties[] = {"v4s", "8k v4s", "b2 v4s", "t8 v4s", "ch12 v4s", "p1n ch1 v4s", "s1v v4s", "s1t t2 v4s", "1tth tth2 v4s", "8 k12nna t4s"};
  char *thirties[] = {"t4s", "8k t4s", "b1t t4s", "t8h t4s", "ch13 t4s", "p1s t4s", "chh1t t4s", "s1d t4s", "1dd t4s", "8 k12nna ch2 ll4s"};
  char *forties[] = {"ch2 ll4s", "8k k8 ch2 ll4s", "b8 ch2 ll4s", "tHr8 ch2 ll4s", "ch1v v8 ch2 ll4s", "p1n 0ch ch8 ch2 ll4s", "s8 h8 ch2 ll4s", "s1t t8 ch2 ll4s", "1tth tth8 ch2 ll4s", "8 k12nna p1n n2s"};
  char *fifties[] = {"p1n n2s", "8k k2 v1n", "b2 v1n", "tHr8 p1n 0n", "ch12 p1n", "p1n ch2 v1n 0n", "chh1p p1n", "s1t t2 v1n", "1tth tth2 v1n", "8 k12nna s2tth"};
  char *sixties[] = {"s2tth", "8k s1sh 0tth", "b2 s1sh 0tth", "tHr8 s1sh 0tth", "ch13 s1sh 0tth", "p2 s1sh 0tth", "s1 h2 s1sh 0tth", "s1 d5 s1sh 0tth", "1 dd5 s1sh 0tth", "8 k12nna s1t t1r"};
  char *seventies[] = {"s1t t1r", "8k k2 h1t t1r", "b2 h1t t1r", "tHr8 h1t t1r", "ch13r y2 h1t t1r", "p1n 0ch ch2 h1t t1r ", "sh1 h2 h1t t1r", "s1t y2 h1t t1r", "1tth y2 h1t t1r", "8 k12 nna9n sh4"};
  char *eighties[] = {"9n sh4", "8k y2 9n sh4", "bHy2 9n sh4", "0t 0r y2 9n sh4", "ch13r y2 9n sh4", "p1n  chHy2 9n sh4", "sh1h y2 9n sh4", "s1t y2 9n sh4", "1tth 0tth y2 9n sh4", "8 k12nna n1v v1d"};
  char *nineties[] = {"n1v v1d", "8k y2 n1v", "bHy2 n1v", "0t 0r y2n n1v", "ch13r y2n n1v", "p1n  chHy2n n1v", "sh1h y2 nna1v", "s1t  tHy2n n1v", "1tth 0tth y2n n1v", "n1v y2n n1v"};
  char **uptohundred[] = {units, teens, twenties, thirties, forties, fifties, sixties, seventies, eighties, nineties};
  int i = 0, j = 0;
  if (arrsz == 1) {
    strcat(final, units[arr[i]]);
    strcat(final, " G3000 ");
  } else if (arrsz == 2) {
    strcat(final, uptohundred[arr[i]][arr[i + 1]]);
    strcat(final, " G3000 ");
  } else if (arrsz == 3) {
    strcat(final, units[arr[i]]);
    strcat(final, " G3000 ");
    i++;
    strcat(final, scales[1]);
    strcat(final, " G3000 ");
    strcat(final, uptohundred[arr[i]][arr[i + 1]]);
    strcat(final, " G3000 ");
  } else if (arrsz > 3) {
    j = 0;
    i = (arrsz % 2) ? 0 : 1;
    if (i) {
      strcat(final, units[arr[0]]);
      strcat(final, " G3000 ");
      j++;
      strcat(final, scales[(arrsz - i) / 2 + 1]);
      strcat(final, " G3000 ");
      j++;
    }
    for (; i < arrsz - 3; i += 2) {
      strcat(final, uptohundred[arr[i]][arr[i + 1]]);
      strcat(final, " G3000 ");
      j++;
      strcat(final, scales[(arrsz - i) / 2]);
      strcat(final, " G3000 ");
      j++;
    }
    if (arr[arrsz - 3]) {
      strcat(final, units[arr[arrsz - 3]]);
      strcat(final, " G3000 ");
      j++;
      strcat(final, scales[1]);
      strcat(final, " G3000 ");
      j++;
    }
    strcat(final, uptohundred[arr[arrsz - 2]][arr[arrsz - 1]]);
    strcat(final, " G3000 ");
  }
}
```