Function at 0x1401a2ac1
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, 0xd8
mov ebp, r9d
mov rsi, rdx
mov rbx, rcx
mov rdx, qword [rsp + 0x180]
mov r9, qword [rsp + 0x178]
mov edi, dword [rsp + 0x170]
movzx eax, word [rsp + 0x168]
mov word [rsp + 0x3e], ax
movzx eax, word [rsp + 0x160]
mov word [rsp + 0x3c], ax
mov rax, qword [rsp + 0x158]
mov qword [rsp + 0xb8], rax
mov eax, dword [rsp + 0x150]
mov dword [rsp + 0x6c], eax
mov eax, dword [rsp + 0x148]
mov dword [rsp + 0x68], eax
mov eax, dword [rsp + 0x140]
mov dword [rsp + 0x64], eax
mov r14d, ebp
lea rax, [r14 + 1]
cmp rax, rdi
jne 0x1401a2b70
mov rcx, qword [rsi + 8]
mov r12, qword [rsi + 0x10]
mov r13, r12
sub r13, rdi
jbe 0x1401a2ba1
cmp byte [rcx + rdi], 0xbf
jg 0x1401a2ba3
lea rax, [0x1402afa98]
mov r14, rdi
jmp 0x1401a2cca
lea rax, [r14 + 3]
cmp rax, rdi
jne 0x1401a2d0c
mov rcx, qword [rsi + 8]
mov r12, qword [rsi + 0x10]
test ebp, ebp
je 0x1401a2be9
lea rax, [0x1402af9b8]
cmp r12, r14
jbe 0x1401a2be3
cmp byte [rcx + r14], 0xc0
jge 0x1401a2be9
jmp 0x1401a2ccd
jne 0x1401a2b61
cmp r13, 2
jb 0x1401a2cb3
movzx eax, word [rcx + rdi]
cmp eax, 0x2f2f
jne 0x1401a2cb3
cmp r12, rdi
jbe 0x1401a2c45
cmp byte [rcx + rdi], 0xc0
jge 0x1401a2c47
lea r8, [0x1402af610]
mov edx, 0x2c
lea rax, str.assertion_failed:_self.is_char_boundary_idx_
jmp 0x1401a3144
jne 0x1401a2ccd
cmp r12, rdi
mov qword [rsp + 0x40], rdx
jbe 0x1401a2c05
cmp byte [rcx + rdi], 0xbf
jg 0x1401a2c07
lea rax, [0x1402af9b8]
jmp 0x1401a2ccd
jne 0x1401a2bf9
mov r10, rdi
sub r10, r14
cmp r10, 3
jne 0x1401a2c3b
mov qword [rsp + 0x58], r9
movzx eax, word [rcx + r14]
xor eax, 0x2f3a
movzx r9d, byte [rcx + r14 + 2]
xor r9d, 0x2e
or r9w, ax
je 0x1401a2de9
mov r9, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x40]
jmp 0x1401a2d0c
jne 0x1401a2bcb
mov qword [rsp + 0x40], rdx
mov qword [rsp + 0x58], r9
mov byte [rsp + 0x3b], r8b
mov rax, qword [rsi]
sub rax, r12
cmp rax, 1
ja 0x1401a2c77
mov r8d, 2
mov rcx, rsi
mov rdx, r12
call sym.alloc::raw_vec::RawVec_T_A_::reserve::do_reserve_and_handle::hdf2bd8c0cd912581
mov rcx, qword [rsi + 8]
lea rdx, [rcx + rdi]
lea r15, [rcx + rdi]
add r15, 2
mov rcx, r15
mov r8, r13
call sub.msvcrt.dll_memmove
mov word [r15 - 2], 0x2e2f
add r12, 2
mov qword [rsi + 0x10], r12
add edi, 2
mov rcx, qword [rsi + 8]
mov r8b, byte [rsp + 0x3b]
mov r9, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x40]
test ebp, ebp
je 0x1401a2ce7
cmp r12, r14
jbe 0x1401a2ce5
cmp byte [rcx + r14], 0xbf
jg 0x1401a2ce7
lea rax, [0x1402afab0]
mov rdi, r12
mov qword [rsp + 0x20], rax
mov rdx, r12
mov r8, r14
mov r9, rdi
call dbg.slice_error_fail
jmp 0x1401a319f
jne 0x1401a2cc3
sub r12, r14
cmp r12, 3
jb 0x1401a2d0c
movzx eax, word [rcx + r14]
xor eax, 0x2f3a
movzx ecx, byte [rcx + r14 + 2]
xor ecx, 0x2f
or cx, ax
je 0x1401a3131
mov qword [rsp + 0x28], rdx
mov qword [rsp + 0x20], r9
lea rcx, [rsp + 0x70]
mov rdx, rsi
mov r9d, ebp
call sym.url::parser::Parser::parse_query_and_fragment::h6744f011428c7ae7
mov eax, dword [rsp + 0x70]
cmp eax, 2
jne 0x1401a2d72
mov al, byte [rsp + 0x74]
mov byte [rbx + 8], al
movabs rax, 0x8000000000000000
mov qword [rbx], rax
cmp qword [rsi], 0
je 0x1401a2dd5
mov r8, qword [rsi + 8]
mov rcx, qword [0x14030f110]
xor edx, edx
add rsp, 0xd8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp sub.kernel32.dll_HeapFree
mov rcx, qword [rsp + 0x74]
mov edx, dword [rsp + 0x7c]
mov r8, qword [rsi + 0x10]
mov qword [rbx + 0x10], r8
movups xmm0, xmmword [rsi]
movups xmmword [rbx], xmm0
mov dword [rbx + 0x18], eax
mov qword [rbx + 0x1c], rcx
mov dword [rbx + 0x24], edx
movzx eax, word [rsp + 0x3c]
mov word [rbx + 0x28], ax
movzx eax, word [rsp + 0x3e]
mov word [rbx + 0x2a], ax
mov dword [rbx + 0x2c], ebp
mov eax, dword [rsp + 0x64]
mov dword [rbx + 0x30], eax
mov eax, dword [rsp + 0x68]
mov dword [rbx + 0x34], eax
mov eax, dword [rsp + 0x6c]
mov dword [rbx + 0x38], eax
mov dword [rbx + 0x3c], edi
mov rax, qword [rsp + 0xb8]
movups xmm0, xmmword [rax]
movups xmmword [rbx + 0x40], xmm0
mov al, byte [rax + 0x10]
mov byte [rbx + 0x50], al
add rsp, 0xd8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
mov byte [rsp + 0x3b], r8b
cmp r12, rdi
jbe 0x1401a311d
lea r9, [rcx + rdi]
cmp byte [rcx + rdi], 0x2f
jne 0x1401a314e
lea rax, [rdi + 1]
cmp rax, r12
jae 0x1401a2e18
cmp byte [rcx + rax], 0x2f
je 0x1401a30be
test ebp, ebp
je 0x1401a2e42
lea r8, [0x1402afff0]
lea rax, str.assertion_failed:_self.is_char_boundary_n__rustc_3406ada96f8e16e49e947a91db3eba0db45245falibrary_alloc_src_string.rs
cmp r12, r14
jbe 0x1401a2e40
cmp byte [rcx + r14], 0xc0
jge 0x1401a2e42
mov edx, 0x2a
jmp 0x1401a3144
jne 0x1401a2e36
cmp byte [r9], 0xc0
jl 0x1401a3164
cmp ebp, edi
ja 0x1401a3179
mov r9, r12
sub r9, rdi
jb 0x1401a318d
mov qword [rsi + 0x10], r14
lea rdx, [rsp + 0x98]
mov qword [rdx - 0x10], rdi
mov qword [rdx - 8], r9
mov qword [rdx - 0x18], rsi
lea r11, [0x1402afe7a]
mov qword [rdx], r11
lea rax, [0x1402afe7b]
mov qword [rdx + 8], rax
lea r8, sym.core::ptr::drop_in_place_widestring::error::ContainsNul_u16__::h4f0bc1d0dae5f8b4
mov qword [rdx - 0x28], r8
mov qword [rdx - 0x20], r8
jne 0x1401a2eab
mov rcx, rsi
call sym.alloc::vec::Vec_T_A_::extend_trusted::h6e03c72b1434305e
jmp 0x1401a30a9
cmp ebp, edi
jne 0x1401a2f4d
xor r15d, r15d
mov qword [rsp + 0x48], r11
mov qword [rsp + 0x50], r9
mov r13d, 1
sub r13, r15
mov rax, qword [rsi]
sub rax, r12
cmp rax, r13
jae 0x1401a2ee2
mov rcx, rsi
mov rdx, r12
mov r8, r13
call sym.alloc::raw_vec::RawVec_T_A_::reserve::do_reserve_and_handle::h6fd76780598b4568
add r13, rdi
mov rcx, qword [rsi + 8]
lea rdx, [rcx + rdi]
add rcx, r13
mov r8, qword [rsp + 0x50]
call sub.msvcrt.dll_memmove
mov qword [rsp + 0x88], r13
mov rcx, qword [rsi + 0x10]
mov rax, qword [rsp + 0x48]
cmp rcx, r13
je 0x1401a2f8a
mov rax, rdi
sub rax, rcx
add rcx, qword [rsi + 8]
inc rax
cmp r15, 1
je 0x1401a309a
inc r15
mov byte [rcx], 0x3a
inc rcx
inc qword [rsi + 0x10]
cmp rax, r15
jne 0x1401a2f1d
lea rax, [0x1402afe7a]
add rax, r15
mov qword [rsp + 0x98], rax
jmp 0x1401a2f8a
add rcx, r14
xor r15d, r15d
cmp r15, 1
je 0x1401a309a
mov byte [rcx + r15], 0x3a
inc r15
inc qword [rsi + 0x10]
cmp r10, r15
jne 0x1401a2f53
lea r11, [0x1402afe7a]
add r11, r15
mov qword [rsp + 0x98], r11
cmp r15, 1
jne 0x1401a2eb6
lea rcx, [0x1402afe7a]
sub rcx, rax
inc rcx
call sym.alloc::raw_vec::RawVec_T_A_::allocate_in::h355293c87b2bb0fb
lea rcx, [rsp + 0xc0]
mov qword [rcx], rax
mov qword [rcx + 8], rdx
mov qword [rcx + 0x10], 0
lea rdx, [rsp + 0x98]
call sym.alloc::vec::Vec_T_A_::extend_trusted::h6e03c72b1434305e
mov rdx, qword [rsp + 0xc0]
mov rcx, qword [rsp + 0xc8]
mov r12, qword [rsp + 0xd0]
test r12, r12
je 0x1401a3093
mov qword [rsp + 0x48], rcx
mov qword [rsp + 0x50], rdx
mov r13, qword [rsp + 0x80]
mov r15, qword [rsp + 0x88]
mov rax, qword [rsp + 0x90]
mov qword [rsp + 0xb0], rax
lea rdx, [rax + r15]
mov rax, qword [r13]
sub rax, rdx
cmp rax, r12
jae 0x1401a3026
mov rcx, r13
mov r8, r12
call sym.alloc::raw_vec::RawVec_T_A_::reserve::do_reserve_and_handle::h6fd76780598b4568
lea rax, [r15 + r12]
mov qword [rsp + 0xa8], rax
mov rcx, qword [r13 + 8]
lea rdx, [rcx + r15]
add rcx, rax
mov r8, qword [rsp + 0xb0]
call sub.msvcrt.dll_memmove
mov rcx, qword [rsp + 0xa8]
mov qword [rsp + 0x88], rcx
mov rax, qword [r13 + 0x10]
cmp rax, rcx
mov rdx, qword [rsp + 0x50]
mov rcx, qword [rsp + 0x48]
je 0x1401a3093
sub r15, rax
add rax, qword [r13 + 8]
add r15, r12
xor r9d, r9d
cmp r12, r9
je 0x1401a3093
mov r8b, byte [rcx + r9]
mov byte [rax + r9], r8b
inc qword [r13 + 0x10]
inc r9
cmp r15, r9
jne 0x1401a307a
call sym.__alloc::vec::into_iter::IntoIter_T_A__as_core::ops::drop::Drop_::drop::h067556bcca931424
jmp 0x1401a30a9
lea rax, [0x1402afe7b]
mov qword [rsp + 0x98], rax
lea rcx, [rsp + 0x70]
call sym.__alloc::vec::drain::Drain_T_A__as_core::ops::drop::Drop_::drop::h4c41a9855c4694bb
add edi, 0xfffffffe
mov rcx, qword [rsi + 8]
mov r12, qword [rsi + 0x10]
test ebp, ebp
mov r8b, byte [rsp + 0x3b]
mov r9, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x40]
je 0x1401a30eb
cmp r12, r14
jbe 0x1401a30e9
cmp byte [rcx + r14], 0xbf
jg 0x1401a30eb
lea rax, [0x1402af9f0]
jmp 0x1401a2cca
jne 0x1401a30dd
sub r12, r14
cmp r12, 3
jb 0x1401a2d0c
movzx eax, word [rcx + r14]
xor eax, 0x2f3a
movzx ecx, byte [rcx + r14 + 2]
xor ecx, 0x2f
or cx, ax
jne 0x1401a2d0c
lea r8, [0x1402afa60]
jmp 0x1401a3138
lea r8, [0x1402af9d8]
mov rcx, rdi
mov rdx, r12
call dbg.panic_bounds_check
jmp 0x1401a319f
lea r8, [0x1402afac8]
mov edx, 0x4f
lea rax, [0x1402afa0b]
mov rcx, rax
call dbg.panic
jmp 0x1401a319f
lea rdx, [rsp + 0x70]
mov qword [rdx], 0
mov rcx, r9
call sym.core::panicking::assert_failed::h70aa8777e0ad7df6
jmp 0x1401a319f
lea r8, [0x1402b0008]
mov edx, 0x2a
lea rax, str.assertion_failed:_self.is_char_boundary_n__rustc_3406ada96f8e16e49e947a91db3eba0db45245falibrary_alloc_src_string.rs
jmp 0x1401a3144
lea r8, str._rustc_3406ada96f8e16e49e947a91db3eba0db45245falibrary_alloc_src_vecmod.rs
mov rcx, r14
mov rdx, rdi
call dbg.slice_index_order_fail
jmp 0x1401a319f
lea r8, str._rustc_3406ada96f8e16e49e947a91db3eba0db45245falibrary_alloc_src_vecmod.rs
mov rcx, rdi
mov rdx, r12
call dbg.slice_end_index_len_fail
ud2