Function at 0x140020ba0
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 [0x1400f8300]
mov r14, rax
call dbg.__emutls_get_address
cmp byte [rax], 0
mov rdi, rax
jne 0x140020f99
mov rbx, r14
add rbx, 1
jo 0x140021120
test rbx, rbx
js 0x140020fe0
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 0x140020f99
movaps xmmword [rsp + 0x60], xmm6
cmp r14, rax
jge 0x140020f80
test r14, r14
js 0x140020f80
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 0x140021030
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 0x140020f0d
mov qword [rsp + 0x50], r12
mov r8, r15
mov rbx, r8
jmp 0x140020d3d
test rbx, rbx
js 0x140020fb8
cmp byte [r13 + rbx + 8], 0x7c
je 0x140020d42
add rbx, 1
cmp rbx, rsi
jl 0x140020d28
cmp qword [rsp + 0x30], 0
lea r9, [rbx - 1]
jne 0x140020d55
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 0x140021068
mov rcx, qword [rsp + 0x20]
add rcx, 1
jo 0x140021060
test rcx, rcx
js 0x1400210b5
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 0x140021060
mov r12, qword [rsp + 0x80]
test r12, r12
jle 0x140021058
mov rcx, r12
add rcx, 1
jo 0x14002114a
test rcx, rcx
js 0x1400210c8
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 0x140021048
cmp qword [rsp + 0x38], 0
jle 0x140021040
mov rcx, qword [rsp + 0x38]
add rcx, 1
jo 0x14002103a
test rcx, rcx
js 0x1400210a2
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 0x14002103a
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 0x1400210ef
mov rax, qword [rsp + 0x30]
test rax, rax
je 0x1400210ff
sub rax, 1
mov r12, rax
jo 0x140021087
mov r8, rbx
xor edx, edx
add r8, 1
js 0x14002115e
cmp r8, rbx
jb 0x14002115e
test rdx, rdx
jne 0x1400210e8
test r15, r15
je 0x140021140
test byte [r15 + 7], 0x40
je 0x140021010
mov qword [rsp + 0x30], r12
cmp byte [rdi], 0
jne 0x140020f0d
cmp rsi, r8
jge 0x140020d1d
test r13, r13
je 0x140020f1d
test byte [r13 + 7], 0x40
je 0x14002107a
mov rcx, qword [rsp + 0x88]
test rcx, rcx
je 0x140020f34
test byte [rcx + 7], 0x40
je 0x140021070
mov rax, qword [rsp + 0x48]
test rax, rax
je 0x140020f4c
test byte [rax + 7], 0x40
jne 0x140020f4c
mov rcx, rax
call sym.deallocShared
test r14, r14
je 0x140020f99
test byte [r14 + 7], 0x40
jne 0x140020f99
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 0x140020f0d
mov r8, rbx
jmp 0x140020d1d
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 0x140020efa
call sym.raiseOverflow
jmp 0x140020f4c
call sym.raiseOverflow
nop
mov rax, r12
jmp 0x140020e8a
call sym.raiseOverflow
mov r10, qword [rsp + 0x58]
nop word [rax + rax]
mov r12, r10
jmp 0x140020e3f
call sym.raiseOverflow
nop dword [rax]
mov r10, r12
jmp 0x140020de9
call sym.deallocShared
jmp 0x140020f34
mov rcx, r13
call sym.deallocShared
jmp 0x140020f1d
call sym.raiseOverflow
mov r12, qword [rsp + 0x30]
test r15, r15
je 0x140021168
mov r8, rbx
jmp 0x140020eef
movabs r8, 0x7fffffffffffffff
xor edx, edx
call sym.raiseRangeErrorI
jmp 0x140021040
movabs r8, 0x7fffffffffffffff
xor edx, edx
call sym.raiseRangeErrorI
jmp 0x140021068
movabs r8, 0x7fffffffffffffff
xor edx, edx
mov qword [rsp + 0x58], r10
call sym.raiseRangeErrorI
mov r10, qword [rsp + 0x58]
jmp 0x140021058
call sym.raiseOverflow
jmp 0x140021091
test r15, r15
je 0x140020f0d
mov r12, qword [rsp + 0x30]
jmp 0x14002109a
test r15, r15
je 0x140020f0d
test byte [r15 + 7], 0x40
jne 0x140020f0d
mov rcx, r15
call sym.deallocShared
jmp 0x140020f0d
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 0x140020f04
mov qword [rsp + 0x58], r10
call sym.raiseOverflow
mov r10, qword [rsp + 0x58]
jmp 0x140021058
mov edx, 1
jmp 0x140020edd
mov qword [rsp + 0x30], r12
mov r8, rbx
jmp 0x140020eff