Function at 0x14003a210
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 0x14003a40f
mov rdx, qword [rbx + 0x10]
cmp rdx, rcx
jl 0x14003a420
mov rsi, rdx
sub rsi, rcx
jo 0x14003a40f
test rsi, rsi
js 0x14003a288
je 0x14003a2b8
test rdx, rdx
jle 0x14003a4b0
cmp rdx, rcx
jle 0x14003a460
test rcx, rcx
js 0x14003a460
mov rax, qword [rbx + 0x18]
mov r8, rsi
lea rdx, [rax + rcx + 8]
lea rcx, [rax + 8]
call sym.memmove
jmp 0x14003a2b4
movdqa xmm2, xmmword [0x1400eb910]
lea rcx, [rsp + 0x20]
movaps xmmword [rsp + 0x20], xmm2
call sym.failedAssertImpl__stdZassertions_u310
mov rcx, qword [0x1400f8300]
call dbg.__emutls_get_address
cmp byte [rax], 0
jne 0x14003a499
mov rax, qword [rbx + 0x30]
add rax, rsi
jo 0x14003a40f
add rax, 1
jo 0x14003a40f
sub rax, 1
jo 0x14003a40f
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 [0x1400f8300]
mov r12, rax
call dbg.__emutls_get_address
cmp byte [rax], 0
mov r13, rax
jne 0x14003a499
add rsi, r12
jo 0x14003a40f
mov rax, qword [rbx + 0x30]
add rax, 1
jo 0x14003a40f
cmp rax, r12
jg 0x14003a4c0
add rsi, 0xffffffffffffffff
jo 0x14003a40f
mov r12, qword [rbx + 0x10]
cmp r12, rsi
jg 0x14003a39f
movdqa xmm3, xmmword [0x1400eb8c0]
mov rcx, rbp
movaps xmmword [rsp + 0x20], xmm3
call sym.failedAssertImpl__stdZassertions_u310
cmp byte [r13], 0
jne 0x14003a499
mov r12, qword [rbx + 0x10]
jmp 0x14003a39f
cmp r12, rsi
jle 0x14003a4d7
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 0x14003a4e1
sub rsi, 1
test rsi, rsi
jns 0x14003a370
imul rcx, r12, 2
jo 0x14003a40f
test rcx, rcx
js 0x14003a50a
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 0x14003a40f
mov r8, rbp
mov rdx, rdi
movaps xmmword [rsp + 0x20], xmm0
call sym.readDataStr__pureZstreams_u84
cmp byte [r13], 0
jne 0x14003a499
cmp r12, rax
jg 0x14003a4e7
mov r12, qword [rbx + 0x10]
mov rsi, r12
add rsi, 0xffffffffffffffff
jno 0x14003a340
add rsp, 0x38
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
jmp sym.raiseOverflow
movdqa xmm1, xmmword [0x1400eb950]
lea rcx, [rsp + 0x20]
movaps xmmword [rsp + 0x20], xmm1
call sym.failedAssertImpl__stdZassertions_u310
mov rcx, qword [0x1400f8300]
call dbg.__emutls_get_address
cmp byte [rax], 0
jne 0x14003a499
mov rax, qword [rbx + 0x30]
mov rcx, rax
add rcx, 1
jo 0x14003a40f
mov rdx, qword [rbx + 0x10]
jmp 0x14003a23d
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 0x14003a490
test byte [rax + 7], 0x40
je 0x14003a490
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 0x14003a464
mov rdx, qword [rbx + 0x10]
test rsi, rsi
js 0x14003a4ce
cmp rdx, rsi
jg 0x14003a475
sub rdx, 1
mov rcx, rsi
jmp 0x14003a464
lea rdx, [r12 - 1]
mov rcx, rsi
jmp 0x14003a464
mov qword [rbx + 0x30], rsi
jmp 0x14003a499
add r12, rax
jo 0x14003a40f
mov rax, qword [rbx + 0x10]
test r12, r12
js 0x14003a4fe
cmp rax, r12
jg 0x14003a527
lea rdx, [rax - 1]
mov rcx, r12
jmp 0x14003a464
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 0x14003a53e
test byte [rax + 7], 0x40
je 0x14003a53e
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 0x14003a499