Function at 0x140058fc0
Capabilities:
Terminate process

Disassembly:
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x40
xor eax, eax
mov rbp, qword [rdx]
mov r12, qword [rdx + 8]
lea rdi, [r8 + 8]
mov rsi, rcx
mov rcx, r8
mov qword [r8], 0
and rdi, 0xfffffffffffffff8
mov rbx, r8
mov qword [r8 + 0x80], 0
sub rcx, rdi
lea r13, [rbx + 0x50]
add ecx, 0x88
shr ecx, 3
rep stosq qword [rdi], rax
lea rdi, [rsp + 0x20]
mov rcx, r8
mov rdx, rdi
movdqu xmm0, xmmword [rsi]
movaps xmmword [rsp + 0x20], xmm0
call sym.eqcopy___stdZassertions_u30
movdqu xmm1, xmmword [rsi + 0x10]
lea rcx, [rbx + 0x10]
mov rdx, rdi
movaps xmmword [rsp + 0x20], xmm1
call sym.eqcopy___stdZassertions_u30
movdqu xmm2, xmmword [rsi + 0x20]
lea rcx, [rbx + 0x20]
mov rdx, rdi
movaps xmmword [rsp + 0x20], xmm2
call sym.eqcopy___stdZassertions_u30
movdqu xmm3, xmmword [rsi + 0x30]
lea rcx, [rbx + 0x30]
mov rdx, rdi
movaps xmmword [rsp + 0x20], xmm3
call sym.eqcopy___stdZassertions_u30
movdqu xmm4, xmmword [rsi + 0x40]
lea rcx, [rbx + 0x40]
mov rdx, rdi
movaps xmmword [rsp + 0x20], xmm4
call sym.eqcopy___stdZassertions_u30
movdqu xmm5, xmmword [rsi + 0x50]
mov rdx, rdi
mov rcx, r13
movaps xmmword [rsp + 0x20], xmm5
call sym.eqcopy___stdZassertions_u30
movdqu xmm0, xmmword [rsi + 0x60]
lea rcx, [rbx + 0x60]
mov rdx, rdi
movaps xmmword [rsp + 0x20], xmm0
call sym.eqcopy___stdZassertions_u30
movdqu xmm1, xmmword [rsi + 0x70]
lea rcx, [rbx + 0x70]
mov rdx, rdi
movaps xmmword [rsp + 0x20], xmm1
call sym.eqcopy___stdZassertions_u30
movzx eax, byte [rsi + 0x80]
mov byte [rbx + 0x80], al
movzx eax, byte [rsi + 0x81]
mov byte [rbx + 0x81], al
mov rax, qword [rbx + 0x50]
test rax, rax
jne 0x140059190
test rbp, rbp
je 0x140059160
jle 0x1400592c8
cmp byte [r12 + 8], 0x2f
jne 0x140059428
mov rcx, r13
mov rdx, rbp
call sym.prepareAdd
mov rcx, rbp
add rcx, 1
jo 0x1400592af
test rcx, rcx
js 0x1400592e8
mov rdx, qword [rbx + 0x58]
mov rax, qword [rbx + 0x50]
mov r8, rcx
lea rax, [rdx + rax + 8]
lea rdx, [r12 + 8]
mov rcx, rax
call sym.memcpy
add rbp, qword [rbx + 0x50]
jo 0x1400592af
mov qword [rbx + 0x50], rbp
add rsp, 0x40
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
ret
movdqa xmm2, xmmword [0x1400eead0]
mov rdx, rdi
mov rcx, r13
movaps xmmword [rsp + 0x20], xmm2
call sym.eqsink___stdZassertions_u36
xor edx, edx
mov rcx, r13
add rsp, 0x40
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
jmp sym.prepareAdd
jle 0x140059280
mov rdx, qword [rbx + 0x58]
cmp byte [rdx + rax + 7], 0x2f
jne 0x140059280
test rbp, rbp
jle 0x140059310
cmp byte [r12 + 8], 0x2f
jne 0x1400590fd
mov qword [rsp + 0x30], 0
lea rsi, [rbp - 1]
mov qword [rsp + 0x38], 0
sub rsi, 1
jo 0x140059448
xor r14d, r14d
add rsi, 1
seto r14b
jo 0x140059448
test rsi, rsi
js 0x140059320
mov rdx, rsi
mov rcx, rdi
call sym.mnewString
movdqu xmm3, xmmword [rsp + 0x20]
movaps xmmword [rsp + 0x30], xmm3
test rsi, rsi
je 0x140059338
lea rdi, [rsp + 0x30]
jmp 0x14005923c
movzx ecx, byte [r12 + rax + 8]
mov rdx, qword [rsp + 0x38]
mov byte [rdx + r14 + 8], cl
cmp rax, rsi
jge 0x140059338
mov r14, rax
mov rdx, qword [rsp + 0x30]
cmp r14, rdx
jge 0x14005945c
mov rax, qword [rsp + 0x38]
test rax, rax
je 0x140059262
test byte [rax + 7], 0x40
je 0x140059262
mov rcx, rdi
call sym.nimPrepareStrMutationImpl__system_u2390
lea rax, [r14 + 1]
cmp rbp, rax
jne 0x140059220
mov rdx, r14
mov rcx, rbp
call sym.raiseIndexError2
jmp 0x140059338
test rbp, rbp
je 0x1400593d0
jle 0x1400592c8
cmp byte [r12 + 8], 0x2f
jne 0x1400593d0
mov rdx, rbp
mov rcx, r13
call sym.prepareAdd
mov rcx, rbp
add rcx, 1
jno 0x140059115
add rsp, 0x40
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
jmp sym.raiseOverflow
lea rdx, [rbp - 1]
xor ecx, ecx
add rsp, 0x40
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
jmp sym.raiseIndexError2
movabs r8, 0x7fffffffffffffff
xor edx, edx
add rsp, 0x40
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
jmp sym.raiseRangeErrorI
mov rdx, rbp
jmp 0x14005917a
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, rsi
call sym.raiseRangeErrorI
nop dword [rax]
mov rcx, qword [0x1400f8300]
mov rsi, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x38]
call dbg.__emutls_get_address
cmp byte [rax], 0
jne 0x140059149
mov rdx, rsi
mov rcx, r13
call sym.prepareAdd
test rsi, rsi
jle 0x1400593a7
mov rcx, rsi
add rcx, 1
jo 0x140059452
test rcx, rcx
js 0x140059478
mov rdx, qword [rbx + 0x58]
mov rax, qword [rbx + 0x50]
mov r8, rcx
lea rax, [rdx + rax + 8]
lea rdx, [rdi + 8]
mov rcx, rax
call sym.memcpy
add rsi, qword [rbx + 0x50]
jo 0x140059452
mov qword [rbx + 0x50], rsi
test rdi, rdi
je 0x140059149
test byte [rdi + 7], 0x40
jne 0x140059149
mov rcx, rdi
add rsp, 0x40
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
jmp sym.deallocShared
mov edx, 1
mov rcx, r13
call sym.prepareAdd
mov rax, qword [rbx + 0x50]
mov rdx, qword [rbx + 0x58]
mov byte [rdx + rax + 8], 0x2f
mov rax, qword [rbx + 0x50]
add rax, 1
jo 0x14005946d
mov rdx, qword [rbx + 0x58]
mov byte [rdx + rax + 8], 0
mov rax, qword [rbx + 0x50]
add rax, 1
jo 0x14005946d
mov qword [rbx + 0x50], rax
mov rdx, rbp
mov rcx, r13
call sym.prepareAdd
test rbp, rbp
je 0x140059149
jmp 0x1400592a2
movdqa xmm4, xmmword [0x1400eead0]
mov rdx, rdi
mov rcx, r13
movaps xmmword [rsp + 0x20], xmm4
call sym.eqsink___stdZassertions_u36
jmp 0x1400590fd
call sym.raiseOverflow
jmp 0x140059338
call sym.raiseOverflow
jmp 0x1400593a7
sub rdx, 1
mov rcx, r14
call sym.raiseIndexError2
jmp 0x140059338
call sym.raiseOverflow
jmp 0x14005940b
movabs r8, 0x7fffffffffffffff
xor edx, edx
call sym.raiseRangeErrorI
jmp 0x1400593a7