Function at 0x14003ac10
Capabilities:
Terminate process

Disassembly:
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x38
mov rax, qword [rcx + 0x30]
mov rbx, rcx
mov rcx, rax
add rcx, 1
jo 0x14003ae0f
mov rdx, qword [rbx + 0x10]
cmp rdx, rcx
jl 0x14003ae20
mov rsi, rdx
sub rsi, rcx
jo 0x14003ae0f
test rsi, rsi
js 0x14003ac88
je 0x14003acb8
test rdx, rdx
jle 0x14003aeb0
cmp rdx, rcx
jle 0x14003ae60
test rcx, rcx
js 0x14003ae60
mov rax, qword [rbx + 0x18]
mov r8, rsi
lea rdx, [rax + rcx + 8]
lea rcx, [rax + 8]
call sym.memmove
jmp 0x14003acb4
movdqa xmm2, xmmword [0x1401149f0]
lea rcx, [rsp + 0x20]
movaps xmmword [rsp + 0x20], xmm2
call sym.failedAssertImpl__stdZassertions_u310
mov rcx, qword [0x14012c5f0]
call dbg.__emutls_get_address
cmp byte [rax], 0
jne 0x14003ae99
mov rax, qword [rbx + 0x30]
add rax, rsi
jo 0x14003ae0f
add rax, 1
jo 0x14003ae0f
sub rax, 1
jo 0x14003ae0f
mov rcx, qword [rbx + 0x20]
lea rdi, [rbx + 0x10]
lea rbp, [rsp + 0x20]
mov qword [rsp + 0x20], rsi
mov r8, rbp
mov rdx, rdi
mov qword [rsp + 0x28], rax
call sym.readDataStr__pureZstreams_u84
mov rcx, qword [0x14012c5f0]
mov r12, rax
call dbg.__emutls_get_address
cmp byte [rax], 0
mov r13, rax
jne 0x14003ae99
add rsi, r12
jo 0x14003ae0f
mov rax, qword [rbx + 0x30]
add rax, 1
jo 0x14003ae0f
cmp rax, r12
jg 0x14003aec0
add rsi, 0xffffffffffffffff
jo 0x14003ae0f
mov r12, qword [rbx + 0x10]
cmp r12, rsi
jg 0x14003ad9f
movdqa xmm3, xmmword [0x1401149a0]
mov rcx, rbp
movaps xmmword [rsp + 0x20], xmm3
call sym.failedAssertImpl__stdZassertions_u310
cmp byte [r13], 0
jne 0x14003ae99
mov r12, qword [rbx + 0x10]
jmp 0x14003ad9f
cmp r12, rsi
jle 0x14003aed7
mov rax, qword [rbx + 0x18]
movzx eax, byte [rax + rsi + 8]
mov edx, eax
and eax, 7
shr dl, 3
movzx edx, dl
movzx edx, byte [rbx + rdx + 0x48]
bt edx, eax
jb 0x14003aee1
sub rsi, 1
test rsi, rsi
jns 0x14003ad70
imul rcx, r12, 2
jo 0x14003ae0f
test rcx, rcx
js 0x14003af0a
mov rdx, rcx
mov rcx, rdi
call sym.setLengthStrV2
mov rax, qword [rbx + 0x10]
movq xmm0, r12
mov rcx, qword [rbx + 0x20]
sub rax, 1
movq xmm4, rax
punpcklqdq xmm0, xmm4
jo 0x14003ae0f
mov r8, rbp
mov rdx, rdi
movaps xmmword [rsp + 0x20], xmm0
call sym.readDataStr__pureZstreams_u84
cmp byte [r13], 0
jne 0x14003ae99
cmp r12, rax
jg 0x14003aee7
mov r12, qword [rbx + 0x10]
mov rsi, r12
add rsi, 0xffffffffffffffff
jno 0x14003ad40
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
jmp sym.raiseOverflow
movdqa xmm1, xmmword [0x140114a30]
lea rcx, [rsp + 0x20]
movaps xmmword [rsp + 0x20], xmm1
call sym.failedAssertImpl__stdZassertions_u310
mov rcx, qword [0x14012c5f0]
call dbg.__emutls_get_address
cmp byte [rax], 0
jne 0x14003ae99
mov rax, qword [rbx + 0x30]
mov rcx, rax
add rcx, 1
jo 0x14003ae0f
mov rdx, qword [rbx + 0x10]
jmp 0x14003ac3d
sub rdx, 1
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
jmp sym.raiseIndexError2
mov rax, qword [rbx + 0x18]
test rax, rax
je 0x14003ae90
test byte [rax + 7], 0x40
je 0x14003ae90
mov rcx, rdi
call sym.nimPrepareStrMutationImpl__system_u2390
mov rax, qword [rbx + 0x18]
mov byte [rax + rsi + 8], 0
mov qword [rbx + 0x30], rsi
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
ret
sub rdx, 1
xor ecx, ecx
jmp 0x14003ae64
mov rdx, qword [rbx + 0x10]
test rsi, rsi
js 0x14003aece
cmp rdx, rsi
jg 0x14003ae75
sub rdx, 1
mov rcx, rsi
jmp 0x14003ae64
lea rdx, [r12 - 1]
mov rcx, rsi
jmp 0x14003ae64
mov qword [rbx + 0x30], rsi
jmp 0x14003ae99
add r12, rax
jo 0x14003ae0f
mov rax, qword [rbx + 0x10]
test r12, r12
js 0x14003aefe
cmp rax, r12
jg 0x14003af27
lea rdx, [rax - 1]
mov rcx, r12
jmp 0x14003ae64
movabs r8, 0x7fffffffffffffff
xor edx, edx
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
jmp sym.raiseRangeErrorI
mov rax, qword [rbx + 0x18]
test rax, rax
je 0x14003af3e
test byte [rax + 7], 0x40
je 0x14003af3e
mov rcx, rdi
call sym.nimPrepareStrMutationImpl__system_u2390
mov rax, qword [rbx + 0x18]
mov byte [rax + r12 + 8], 0
mov qword [rbx + 0x30], r12
jmp 0x14003ae99