Function at 0x1401657a0
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0xb8
mov r15d, r9d
mov r13, rdx
mov rdi, rcx
mov r10, qword [rsp + 0x160]
mov r14, qword [rsp + 0x158]
mov esi, dword [rsp + 0x150]
movzx eax, word [rsp + 0x148]
mov word [rsp + 0x3e], ax
movzx eax, word [rsp + 0x140]
mov word [rsp + 0x3c], ax
mov rax, qword [rsp + 0x138]
mov qword [rsp + 0x80], rax
mov eax, dword [rsp + 0x130]
mov dword [rsp + 0x6c], eax
mov eax, dword [rsp + 0x128]
mov dword [rsp + 0x68], eax
mov eax, dword [rsp + 0x120]
mov dword [rsp + 0x64], eax
mov r12d, r9d
lea rbx, [r12 + 1]
cmp rbx, rsi
jne 0x140165862
mov rbx, qword [r13 + 0x30]
mov rbp, qword [r13 + 0x38]
mov rax, rbp
test esi, esi
je 0x1401658a6
mov rax, rbp
sub rax, rsi
jbe 0x1401658a4
cmp byte [rbx + rsi], 0xbf
jg 0x1401658a6
lea rax, [0x140215680]
mov qword [rsp + 0x20], rax
mov rcx, rbx
mov rdx, rbp
mov r8, rsi
jmp 0x1401658f5
lea rax, [r12 + 3]
cmp rax, rsi
jne 0x140165a77
mov rbp, qword [r13 + 0x30]
mov r9, qword [r13 + 0x38]
cmp esi, r15d
jb 0x140165946
test r15d, r15d
je 0x140165936
cmp r9, r12
jbe 0x140165934
cmp byte [rbp + r12], 0xc0
jge 0x140165936
jmp 0x140165946
jne 0x140165848
cmp rax, 2
jb 0x1401658b7
movzx eax, word [rbx + rsi]
cmp eax, 0x2f2f
je 0x1401658ff
test r15d, r15d
je 0x140165a52
mov rax, rbp
sub rax, r12
jbe 0x1401658de
cmp byte [rbx + r12], 0xbf
jle 0x1401658e0
cmp rax, 3
jae 0x140165a5b
jmp 0x140165a77
je 0x1401658cf
lea rax, [0x140215698]
mov qword [rsp + 0x20], rax
mov rcx, rbx
mov rdx, rbp
mov r8, r12
mov r9, rbp
call fcn.14016f7f0
ud2
test esi, esi
je 0x1401659fb
cmp rbp, rsi
jbe 0x1401659f5
cmp byte [rbx + rsi], 0xbf
jg 0x1401659fb
lea rcx, str.assertion_failed:_self.is_char_boundary_idx_
lea r8, [0x140215058]
mov edx, 0x2c
call fcn.14016f3d0
ud2
jne 0x140165946
test esi, esi
je 0x140165967
cmp r9, rsi
jbe 0x140165965
cmp byte [rbp + rsi], 0xbf
jg 0x140165967
lea rax, [0x140215720]
mov qword [rsp + 0x20], rax
mov rcx, rbp
mov rdx, r9
mov r8, r12
mov r9, rsi
call fcn.14016f7f0
ud2
jne 0x140165946
mov rax, rsi
sub rax, r12
cmp rax, 3
jne 0x140165a77
movzx eax, word [rbp + r12]
xor eax, 0x2f3a
movzx ecx, byte [rbp + r12 + 2]
xor ecx, 0x2e
or cx, ax
jne 0x140165a77
cmp r9, rsi
jbe 0x140165df8
cmp byte [rbp + rsi], 0x2f
jne 0x140165e26
lea r11, [rsi + 1]
cmp r11, r9
jae 0x1401659bd
cmp byte [rbp + r11], 0x2f
je 0x140165ceb
test r15d, r15d
je 0x140165b6b
cmp r9, r12
jbe 0x140165b65
cmp byte [rbp + r12], 0xbf
jg 0x140165b6b
lea rcx, str.assertion_failed:_self.is_char_boundary_n_
lea r8, [0x1402150a0]
mov edx, 0x2a
call fcn.14016f3d0
ud2
jne 0x14016591a
mov qword [rsp + 0x50], r10
mov byte [rsp + 0x3b], r8b
mov rax, qword [r13 + 0x28]
sub rax, rbp
cmp rax, 1
jbe 0x140165c83
lea rdx, [rbx + rsi]
lea rcx, [rbx + rsi]
add rcx, 2
mov r8, rbp
sub r8, rsi
call sub.VCRUNTIME140.dll_memmove
mov word [rbx + rsi], 0x2e2f
add rbp, 2
mov qword [r13 + 0x38], rbp
add esi, 2
movzx r8d, byte [rsp + 0x3b]
mov r10, qword [rsp + 0x50]
test r15d, r15d
jne 0x1401658c0
mov rax, rbp
cmp rax, 3
jb 0x140165a77
movzx eax, word [rbx + r12]
xor eax, 0x2f3a
movzx ecx, byte [rbx + r12 + 2]
xor ecx, 0x2f
or cx, ax
je 0x140165e0c
mov qword [rsp + 0x28], r10
mov qword [rsp + 0x20], r14
lea rcx, [rsp + 0x88]
mov rdx, r13
mov r9d, r15d
call fcn.1401690f0
mov eax, dword [rsp + 0x88]
cmp eax, 2
jne 0x140165ae3
movzx eax, byte [rsp + 0x8c]
mov byte [rdi], al
mov dword [rdi + 0x18], 2
cmp qword [r13 + 0x28], 0
je 0x140165b51
mov r8, qword [r13 + 0x30]
mov rcx, qword [0x140221370]
xor edx, edx
add rsp, 0xb8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp qword [sym.imp.KERNEL32.dll_HeapFree]
mov ecx, dword [rsp + 0x8c]
mov rdx, qword [rsp + 0x90]
mov rbp, qword [r13 + 0x38]
mov qword [rdi + 0x10], rbp
movups xmm0, xmmword [r13 + 0x28]
movups xmmword [rdi], xmm0
mov rbp, qword [rsp + 0x80]
movups xmm0, xmmword [rbp]
movups xmmword [rdi + 0x40], xmm0
movzx ebx, byte [rbp + 0x10]
mov byte [rdi + 0x50], bl
mov dword [rdi + 0x18], eax
mov dword [rdi + 0x1c], ecx
mov qword [rdi + 0x20], rdx
mov dword [rdi + 0x28], r15d
mov eax, dword [rsp + 0x64]
mov dword [rdi + 0x2c], eax
mov eax, dword [rsp + 0x68]
mov dword [rdi + 0x30], eax
mov eax, dword [rsp + 0x6c]
mov dword [rdi + 0x34], eax
mov dword [rdi + 0x38], esi
movzx eax, word [rsp + 0x3c]
mov word [rdi + 0x3c], ax
movzx eax, word [rsp + 0x3e]
mov word [rdi + 0x3e], ax
add rsp, 0xb8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
jne 0x1401659db
mov rax, r9
sub rax, rsi
jb 0x140165e47
mov qword [r13 + 0x38], r12
jne 0x140165b94
mov rax, r12
cmp qword [r13 + 0x28], r12
je 0x140165d4a
mov byte [rbp + rax], 0x3a
jmp 0x140165ce1
cmp esi, r15d
mov qword [rsp + 0x40], rax
mov byte [rsp + 0x3b], r8b
mov qword [rsp + 0x50], r10
jne 0x140165c78
mov rbx, r12
mov qword [rsp + 0x48], r9
cmp qword [r13 + 0x28], r9
je 0x140165d79
mov qword [rsp + 0x58], r11
lea rdx, [rsi + rbp]
lea rcx, [r11 + rbp]
mov qword [rsp + 0x78], rcx
mov r8, rax
call sub.VCRUNTIME140.dll_memmove
mov rdx, qword [rsp + 0x58]
cmp rbx, rdx
jne 0x140165c9e
mov ecx, 1
mov edx, 1
call fcn.1400137e0
test rax, rax
je 0x140165e77
mov qword [rsp + 0x70], rax
mov byte [rax], 0x3a
mov rdx, qword [rsp + 0x48]
inc rdx
cmp qword [r13 + 0x28], rdx
mov rax, qword [rsp + 0x40]
je 0x140165da5
mov rbx, rbp
lea rcx, [rsi + rbp]
add rcx, 2
lea rbp, [rsi + 2]
mov rdx, qword [rsp + 0x78]
mov r8, rax
mov qword [rsp + 0x48], rbx
call sub.VCRUNTIME140.dll_memmove
mov rcx, rbp
mov rbp, qword [rsp + 0x58]
mov r8, qword [rsp + 0x70]
movzx eax, byte [r8]
mov rdx, qword [rsp + 0x48]
mov byte [rdx + rbp], al
inc rbp
mov qword [r13 + 0x38], rbp
mov rbx, rbp
mov rbp, rcx
mov rcx, qword [0x140221370]
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rdx, rbp
jmp 0x140165ca6
mov byte [rbp + r12], 0x3a
mov rdx, rsi
jmp 0x140165cb6
lea rcx, [r13 + 0x28]
mov r8d, 2
mov rdx, rbp
call fcn.14016c0a0
mov rbx, qword [r13 + 0x30]
jmp 0x140165a16
mov byte [rbp + rbx], 0x3a
inc rbx
movzx r8d, byte [rsp + 0x3b]
mov r10, qword [rsp + 0x50]
mov rax, qword [rsp + 0x40]
mov rbp, qword [r13 + 0x30]
cmp rdx, rbx
je 0x140165cde
add rdx, rbp
lea rcx, [rbx + rbp]
mov r8, rax
call sub.VCRUNTIME140.dll_memmove
mov rax, qword [rsp + 0x40]
mov r10, qword [rsp + 0x50]
movzx r8d, byte [rsp + 0x3b]
add rbx, rax
mov qword [r13 + 0x38], rbx
add esi, 0xfffffffe
mov r9, rbx
test r15d, r15d
je 0x140165d05
mov rax, r9
sub rax, r12
jbe 0x140165d0a
cmp byte [rbp + r12], 0xbf
jg 0x140165d10
jmp 0x140165e5b
mov rax, r9
jmp 0x140165d10
jne 0x140165e5b
cmp rax, 3
jb 0x140165a77
movzx eax, word [rbp + r12]
xor eax, 0x2f3a
movzx ecx, byte [rbp + r12 + 2]
xor ecx, 0x2f
or cx, ax
jne 0x140165a77
lea rcx, str.assertion_failed:__self.serialization_scheme_end_as_usize.._.starts_with__:____
lea r8, [0x140215788]
jmp 0x140165e1a
lea rcx, [r13 + 0x28]
mov ebx, r8d
mov r8d, 1
mov rbp, r10
mov rdx, r12
call fcn.1401726f0
mov r10, rbp
mov r8d, ebx
mov rbp, qword [r13 + 0x30]
mov rax, qword [r13 + 0x38]
lea rbx, [rax + 1]
jmp 0x140165b8a
lea rcx, [r13 + 0x28]
mov r8d, 1
mov rdx, qword [rsp + 0x48]
mov rbx, r11
call fcn.1401726f0
mov rax, qword [rsp + 0x40]
mov r11, rbx
mov rbp, qword [r13 + 0x30]
mov rbx, qword [r13 + 0x38]
jmp 0x140165bbe
lea rcx, [r13 + 0x28]
mov r8d, 1
call fcn.1401726f0
mov rax, qword [r13 + 0x30]
mov rbx, qword [r13 + 0x38]
mov rdx, qword [rsp + 0x58]
add rdx, rax
mov qword [rsp + 0x48], rax
lea rcx, [rax + rsi]
add rcx, 2
lea rbp, [rsi + 2]
mov r8, qword [rsp + 0x40]
call sub.VCRUNTIME140.dll_memmove
mov rcx, rbp
mov rbp, rbx
cmp rbx, rcx
mov r8, qword [rsp + 0x70]
jne 0x140165c4b
jmp 0x140165c64
lea r8, [0x140215738]
mov rcx, rsi
mov rdx, r9
call fcn.14016f330
ud2
lea rcx, str.assertion_failed:__self.serialization_scheme_end_as_usize.._.starts_with__:____
lea r8, [0x140215708]
mov edx, 0x51
call fcn.14016f3d0
ud2
mov qword [rsp + 0x98], 0
add rbp, rsi
lea rdx, [rsp + 0x88]
mov rcx, rbp
call fcn.140175de0
ud2
lea r8, str._rustc_84c898d65adf2f39a5a98507f1fe0ce10a2b8dbclibrary_alloc_src_vecmod.rs
mov rcx, rsi
mov rdx, r9
call fcn.14016f3c0
ud2
lea rax, [0x140215770]
mov qword [rsp + 0x20], rax
mov rcx, rbp
mov rdx, r9
mov r8, r12
call fcn.14016f7f0
ud2
mov ecx, 1
mov edx, 1
call fcn.14016c090
ud2