Function at 0x140079940
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 0x140079b10
test rbp, rbp
je 0x140079ae0
jle 0x140079c48
cmp byte [r12 + 8], 0x2f
jne 0x140079da8
mov rcx, r13
mov rdx, rbp
call sym.prepareAdd
mov rcx, rbp
add rcx, 1
jo 0x140079c2f
test rcx, rcx
js 0x140079c68
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 0x140079c2f
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 [0x14011a5b0]
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 0x140079c00
mov rdx, qword [rbx + 0x58]
cmp byte [rdx + rax + 7], 0x2f
jne 0x140079c00
test rbp, rbp
jle 0x140079c90
cmp byte [r12 + 8], 0x2f
jne 0x140079a7d
mov qword [rsp + 0x30], 0
lea rsi, [rbp - 1]
mov qword [rsp + 0x38], 0
sub rsi, 1
jo 0x140079dc8
xor r14d, r14d
add rsi, 1
seto r14b
jo 0x140079dc8
test rsi, rsi
js 0x140079ca0
mov rdx, rsi
mov rcx, rdi
call sym.mnewString
movdqu xmm3, xmmword [rsp + 0x20]
movaps xmmword [rsp + 0x30], xmm3
test rsi, rsi
je 0x140079cb8
lea rdi, [rsp + 0x30]
jmp 0x140079bbc
movzx ecx, byte [r12 + rax + 8]
mov rdx, qword [rsp + 0x38]
mov byte [rdx + r14 + 8], cl
cmp rax, rsi
jge 0x140079cb8
mov r14, rax
mov rdx, qword [rsp + 0x30]
cmp r14, rdx
jge 0x140079ddc
mov rax, qword [rsp + 0x38]
test rax, rax
je 0x140079be2
test byte [rax + 7], 0x40
je 0x140079be2
mov rcx, rdi
call sym.nimPrepareStrMutationImpl__system_u2390
lea rax, [r14 + 1]
cmp rbp, rax
jne 0x140079ba0
mov rdx, r14
mov rcx, rbp
call sym.raiseIndexError2
jmp 0x140079cb8
test rbp, rbp
je 0x140079d50
jle 0x140079c48
cmp byte [r12 + 8], 0x2f
jne 0x140079d50
mov rdx, rbp
mov rcx, r13
call sym.prepareAdd
mov rcx, rbp
add rcx, 1
jno 0x140079a95
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 0x140079afa
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov rcx, rsi
call sym.raiseRangeErrorI
nop dword [rax]
mov rcx, qword [0x140123df0]
mov rsi, qword [rsp + 0x30]
mov rdi, qword [rsp + 0x38]
call dbg.__emutls_get_address
cmp byte [rax], 0
jne 0x140079ac9
mov rdx, rsi
mov rcx, r13
call sym.prepareAdd
test rsi, rsi
jle 0x140079d27
mov rcx, rsi
add rcx, 1
jo 0x140079dd2
test rcx, rcx
js 0x140079df8
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 0x140079dd2
mov qword [rbx + 0x50], rsi
test rdi, rdi
je 0x140079ac9
test byte [rdi + 7], 0x40
jne 0x140079ac9
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 0x140079ded
mov rdx, qword [rbx + 0x58]
mov byte [rdx + rax + 8], 0
mov rax, qword [rbx + 0x50]
add rax, 1
jo 0x140079ded
mov qword [rbx + 0x50], rax
mov rdx, rbp
mov rcx, r13
call sym.prepareAdd
test rbp, rbp
je 0x140079ac9
jmp 0x140079c22
movdqa xmm4, xmmword [0x14011a5b0]
mov rdx, rdi
mov rcx, r13
movaps xmmword [rsp + 0x20], xmm4
call sym.eqsink___stdZassertions_u36
jmp 0x140079a7d
call sym.raiseOverflow
jmp 0x140079cb8
call sym.raiseOverflow
jmp 0x140079d27
sub rdx, 1
mov rcx, r14
call sym.raiseIndexError2
jmp 0x140079cb8
call sym.raiseOverflow
jmp 0x140079d8b
movabs r8, 0x7fffffffffffffff
xor edx, edx
call sym.raiseRangeErrorI
jmp 0x140079d27