Function at 0x140021290
Capabilities:
Terminate process

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0xa8
movaps xmmword [rsp + 0x90], xmm6
xor r8d, r8d
mov r9, 0xffffffffffffffff
movdqu xmm6, xmmword [rcx]
lea rbp, [rsp + 0x70]
mov r12, rdx
mov edx, 0x28
movaps xmmword [rsp + 0x70], xmm6
mov rcx, rbp
call sym.nsuFindChar
mov rcx, qword [0x14012c5f0]
mov r14, rax
call dbg.__emutls_get_address
cmp byte [rax], 0
mov rdi, rax
jne 0x140021689
mov rbx, r14
add rbx, 1
jo 0x140021810
test rbx, rbx
js 0x1400216d0
mov r8, rbx
mov edx, 0x29
mov rcx, rbp
movaps xmmword [rsp + 0x70], xmm6
mov r9, 0xffffffffffffffff
call sym.nsuFindChar
cmp byte [rdi], 0
mov rsi, rax
jne 0x140021689
movaps xmmword [rsp + 0x60], xmm6
cmp r14, rax
jge 0x140021670
test r14, r14
js 0x140021670
lea rax, [rsp + 0x60]
xor r8d, r8d
lea r9, [r14 - 1]
mov rcx, rbp
mov rdx, rax
mov qword [rsp + 0x28], rax
xor r15d, r15d
call sym.substr__system_u8804
mov rax, qword [rsp + 0x70]
mov r8, rsi
mov r14, qword [rsp + 0x78]
add r8, 1
mov qword [rsp + 0x20], rax
seto r15b
jo 0x140021720
mov r13, qword [rsp + 0x28]
mov rcx, rbp
movaps xmmword [rsp + 0x60], xmm6
mov rdx, r13
call sym.substr__system_u8816
mov rax, qword [rsp + 0x70]
mov r8, rbx
mov rdx, r13
lea r9, [rsi - 1]
mov rcx, rbp
mov qword [rsp + 0x80], 0
mov qword [rsp + 0x38], rax
mov rax, qword [rsp + 0x78]
mov qword [rsp + 0x88], 0
mov qword [rsp + 0x48], rax
movaps xmmword [rsp + 0x60], xmm6
call sym.substr__system_u8804
mov rcx, qword [rsp + 0x70]
mov rbx, qword [rsp + 0x78]
mov qword [rsp + 0x30], 0xffffffffffffffff
lea rax, [rcx - 1]
mov rsi, rcx
mov r13, rbx
mov qword [rsp + 0x40], rax
test rcx, rcx
js 0x1400215fd
mov qword [rsp + 0x50], r12
mov r8, r15
mov rbx, r8
jmp 0x14002142d
test rbx, rbx
js 0x1400216a8
cmp byte [r13 + rbx + 8], 0x7c
je 0x140021432
add rbx, 1
cmp rbx, rsi
jl 0x140021418
cmp qword [rsp + 0x30], 0
lea r9, [rbx - 1]
jne 0x140021445
lea r9, [rsi - 1]
mov rbx, rsi
mov rdx, qword [rsp + 0x28]
mov rcx, rbp
mov qword [rsp + 0x60], rsi
mov qword [rsp + 0x68], r13
call sym.substr__system_u8804
lea rcx, [rsp + 0x80]
mov rdx, rbp
call sym.eqsink___stdZassertions_u36
mov rax, qword [rsp + 0x38]
mov rdx, qword [rsp + 0x20]
mov rcx, rbp
add rdx, qword [rsp + 0x80]
add rdx, rax
call sym.rawNewString
cmp qword [rsp + 0x20], 0
mov r12, qword [rsp + 0x70]
mov r15, qword [rsp + 0x78]
jle 0x140021758
mov rcx, qword [rsp + 0x20]
add rcx, 1
jo 0x140021750
test rcx, rcx
js 0x1400217a5
lea rax, [r12 + r15 + 8]
mov r8, rcx
lea rdx, [r14 + 8]
mov rcx, rax
call sym.memcpy
mov r10, qword [rsp + 0x20]
add r10, r12
jo 0x140021750
mov r12, qword [rsp + 0x80]
test r12, r12
jle 0x140021748
mov rcx, r12
add rcx, 1
jo 0x14002183a
test rcx, rcx
js 0x1400217b8
mov rdx, qword [rsp + 0x88]
lea rax, [r10 + r15 + 8]
mov r8, rcx
mov qword [rsp + 0x58], r10
mov rcx, rax
add rdx, 8
call sym.memcpy
mov r10, qword [rsp + 0x58]
add r12, r10
jo 0x140021738
cmp qword [rsp + 0x38], 0
jle 0x140021730
mov rcx, qword [rsp + 0x38]
add rcx, 1
jo 0x14002172a
test rcx, rcx
js 0x140021792
mov rdx, qword [rsp + 0x48]
lea rax, [r12 + r15 + 8]
mov r8, rcx
mov rcx, rax
add rdx, 8
call sym.memcpy
mov rax, qword [rsp + 0x38]
add rax, r12
jo 0x14002172a
mov rdx, qword [rsp + 0x50]
mov rcx, rbp
mov qword [rsp + 0x70], rax
mov qword [rsp + 0x78], r15
call sym.libCandidates__pureZdynlib_u81
cmp byte [rdi], 0
jne 0x1400217df
mov rax, qword [rsp + 0x30]
test rax, rax
je 0x1400217ef
sub rax, 1
mov r12, rax
jo 0x140021777
mov r8, rbx
xor edx, edx
add r8, 1
js 0x14002184e
cmp r8, rbx
jb 0x14002184e
test rdx, rdx
jne 0x1400217d8
test r15, r15
je 0x140021830
test byte [r15 + 7], 0x40
je 0x140021700
mov qword [rsp + 0x30], r12
cmp byte [rdi], 0
jne 0x1400215fd
cmp rsi, r8
jge 0x14002140d
test r13, r13
je 0x14002160d
test byte [r13 + 7], 0x40
je 0x14002176a
mov rcx, qword [rsp + 0x88]
test rcx, rcx
je 0x140021624
test byte [rcx + 7], 0x40
je 0x140021760
mov rax, qword [rsp + 0x48]
test rax, rax
je 0x14002163c
test byte [rax + 7], 0x40
jne 0x14002163c
mov rcx, rax
call sym.deallocShared
test r14, r14
je 0x140021689
test byte [r14 + 7], 0x40
jne 0x140021689
movaps xmm6, xmmword [rsp + 0x90]
mov rcx, r14
add rsp, 0xa8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp sym.deallocShared
lea rdx, [rsp + 0x60]
mov rcx, rbp
call sym.eqdup___stdZassertions_u33
mov rdx, rbp
mov rcx, r12
call sym.add__pureZunicode_u6557
nop
movaps xmm6, xmmword [rsp + 0x90]
add rsp, 0xa8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
mov rdx, qword [rsp + 0x40]
mov rcx, rbx
call sym.raiseIndexError2
cmp byte [rdi], 0
jne 0x1400215fd
mov r8, rbx
jmp 0x14002140d
movaps xmm6, xmmword [rsp + 0x90]
xor edx, edx
mov rcx, rbx
movabs r8, 0x7fffffffffffffff
add rsp, 0xa8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp sym.raiseRangeErrorI
mov rcx, r15
mov qword [rsp + 0x30], r8
call sym.deallocShared
mov r8, qword [rsp + 0x30]
jmp 0x1400215ea
call sym.raiseOverflow
jmp 0x14002163c
call sym.raiseOverflow
nop
mov rax, r12
jmp 0x14002157a
call sym.raiseOverflow
mov r10, qword [rsp + 0x58]
nop word [rax + rax]
mov r12, r10
jmp 0x14002152f
call sym.raiseOverflow
nop dword [rax]
mov r10, r12
jmp 0x1400214d9
call sym.deallocShared
jmp 0x140021624
mov rcx, r13
call sym.deallocShared
jmp 0x14002160d
call sym.raiseOverflow
mov r12, qword [rsp + 0x30]
test r15, r15
je 0x140021858
mov r8, rbx
jmp 0x1400215df
movabs r8, 0x7fffffffffffffff
xor edx, edx
call sym.raiseRangeErrorI
jmp 0x140021730
movabs r8, 0x7fffffffffffffff
xor edx, edx
call sym.raiseRangeErrorI
jmp 0x140021758
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov qword [rsp + 0x58], r10
call sym.raiseRangeErrorI
mov r10, qword [rsp + 0x58]
jmp 0x140021748
call sym.raiseOverflow
jmp 0x140021781
test r15, r15
je 0x1400215fd
mov r12, qword [rsp + 0x30]
jmp 0x14002178a
test r15, r15
je 0x1400215fd
test byte [r15 + 7], 0x40
jne 0x1400215fd
mov rcx, r15
call sym.deallocShared
jmp 0x1400215fd
movaps xmm6, xmmword [rsp + 0x90]
add rsp, 0xa8
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
jmp sym.raiseOverflow
mov qword [rsp + 0x30], rax
jmp 0x1400215f4
mov qword [rsp + 0x58], r10
call sym.raiseOverflow
mov r10, qword [rsp + 0x58]
jmp 0x140021748
mov edx, 1
jmp 0x1400215cd
mov qword [rsp + 0x30], r12
mov r8, rbx
jmp 0x1400215ef