Function at 0x5833b7
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, 0xc8
mov ebx, r9d
mov r14, rdx
mov rdi, rcx
mov r10, qword [rsp + 0x170]
mov r9, qword [rsp + 0x168]
mov esi, dword [rsp + 0x160]
movzx r11d, word [rsp + 0x158]
movzx r13d, word [rsp + 0x150]
mov rdx, qword [rsp + 0x148]
mov ebp, dword [rsp + 0x140]
mov r12d, dword [rsp + 0x138]
mov ecx, dword [rsp + 0x130]
mov r15d, ebx
lea rax, [r15 + 1]
cmp rax, rsi
mov dword [rsp + 0xa4], ecx
mov qword [rsp + 0xa8], rdx
jne 0x58347a
mov dword [rsp + 0x44], r12d
mov rdx, qword [r14 + 0x30]
mov r12, qword [r14 + 0x38]
mov rax, r12
test esi, esi
je 0x5834e9
sub rax, rsi
jbe 0x583508
cmp byte [rdx + rsi], 0xbf
jg 0x58350e
lea rax, [0x0062c598]
mov qword [rsp + 0x20], rax
mov rcx, rdx
mov rdx, r12
mov r8, rsi
jmp 0x583700
lea rax, [r15 + 3]
cmp rax, rsi
jne 0x5834d3
mov qword [rsp + 0x48], r10
mov qword [rsp + 0x50], r9
mov byte [rsp + 0x3f], r8b
mov dword [rsp + 0x44], r12d
mov dword [rsp + 0x64], ebp
mov word [rsp + 0x40], r13w
mov r13, qword [r14 + 0x30]
mov r12, qword [r14 + 0x38]
cmp esi, ebx
jb 0x583565
test ebx, ebx
je 0x583554
cmp r12, r15
jbe 0x583552
cmp byte [r13 + r15], 0xc0
jge 0x583554
jmp 0x583565
mov qword [rsp + 0x58], rsi
mov esi, r13d
mov r13, r14
mov r14d, ebx
mov ebx, r11d
jmp 0x58374e
sub rax, rsi
cmp rax, 2
jb 0x583501
movzx eax, word [rdx + rsi]
cmp eax, 0x2f2f
je 0x583660
xor esi, esi
jmp 0x5836db
jne 0x583460
cmp rax, 2
jb 0x5836db
movzx eax, word [rdx + rsi]
cmp eax, 0x2f2f
jne 0x5836db
cmp r12, rsi
jbe 0x58365a
cmp byte [rdx + rsi], 0xbf
jg 0x583660
lea rcx, str.assertion_failed:_self.is_char_boundary_idx_
lea r8, [0x0062beb8]
mov edx, 0x2c
jmp 0x583adb
jne 0x583565
test esi, esi
je 0x583584
cmp r12, rsi
jbe 0x583582
cmp byte [r13 + rsi], 0xbf
jg 0x583584
lea rax, [0x0062c638]
mov qword [rsp + 0x20], rax
mov rcx, r13
mov rdx, r12
mov r8, r15
mov r9, rsi
jmp 0x583703
jne 0x583565
mov word [rsp + 0x42], r11w
lea rbp, [r15 + r13]
mov rdx, rsi
sub rdx, r15
lea r8, [0x0062c650]
mov r9d, 3
mov rcx, rbp
call fcn.005166d5
test al, al
je 0x5835f5
cmp r12, rsi
mov r8b, byte [rsp + 0x3f]
mov r9, qword [rsp + 0x50]
mov r10, qword [rsp + 0x48]
jbe 0x583ae2
cmp byte [r13 + rsi], 0x2f
jne 0x583af6
lea rax, [rsi + 1]
cmp rax, r12
jae 0x583627
cmp byte [r13 + rax], 0x2f
jne 0x583627
mov rcx, r13
mov r13, r14
mov r14d, ebx
movzx ebx, word [rsp + 0x42]
jmp 0x583a37
mov qword [rsp + 0x58], rsi
mov r13, r14
mov r14d, ebx
movzx ebx, word [rsp + 0x42]
movzx esi, word [rsp + 0x40]
mov ebp, dword [rsp + 0x64]
mov r12d, dword [rsp + 0x44]
mov r8b, byte [rsp + 0x3f]
mov r9, qword [rsp + 0x50]
mov r10, qword [rsp + 0x48]
jmp 0x58374e
test ebx, ebx
je 0x58381a
cmp r12, r15
jbe 0x583814
cmp byte [rbp], 0xbf
jg 0x58381a
lea rcx, str.assertion_failed:_self.is_char_boundary_n_
lea r8, [0x0062bf00]
mov edx, 0x2a
jmp 0x583adb
jne 0x58353a
mov dword [rsp + 0x58], ebx
mov ebx, r11d
mov qword [rsp + 0x48], r10
mov qword [rsp + 0x50], r9
mov byte [rsp + 0x3f], r8b
mov word [rsp + 0x40], r13w
lea rcx, [r14 + 0x28]
mov rax, qword [rcx]
sub rax, r12
cmp rax, 1
jbe 0x583ab1
lea r13, [rdx + rsi]
add r13, 2
add rdx, rsi
mov r8, r12
sub r8, rsi
mov rcx, r13
call sub.msvcrt.dll_memmove
mov word [r13 - 2], 0x2e2f
add r12, 2
mov qword [r14 + 0x38], r12
add esi, 2
mov rdx, qword [r14 + 0x30]
movzx r13d, word [rsp + 0x40]
mov r8b, byte [rsp + 0x3f]
mov r9, qword [rsp + 0x50]
mov r10, qword [rsp + 0x48]
mov r11d, ebx
mov ebx, dword [rsp + 0x58]
test ebx, ebx
je 0x58370c
cmp r12, r15
jbe 0x58370a
cmp byte [rdx + r15], 0xbf
jg 0x58370c
lea rax, [0x0062c5b0]
mov qword [rsp + 0x20], rax
mov rcx, rdx
mov rdx, r12
mov r8, r15
mov r9, r12
call fcn.00425480
ud2
jne 0x5836eb
mov qword [rsp + 0x58], rsi
mov esi, r13d
mov r13, r14
mov r14d, ebx
mov ebx, r11d
sub r12, r15
cmp r12, 3
jae 0x58372d
mov r12d, dword [rsp + 0x44]
jmp 0x58374e
movzx eax, word [rdx + r15]
xor eax, 0x2f3a
movzx ecx, byte [rdx + r15 + 2]
xor ecx, 0x2f
or cx, ax
mov r12d, dword [rsp + 0x44]
je 0x583ac8
mov qword [rsp + 0x28], r10
mov qword [rsp + 0x20], r9
lea r15, [rsp + 0x68]
mov rcx, r15
mov rdx, r13
mov r9d, r14d
call fcn.00584c0d
mov eax, dword [r15]
cmp eax, 2
jne 0x5837a0
mov al, byte [rsp + 0x6c]
mov byte [rdi], al
mov dword [rdi + 0x18], 2
mov rcx, qword [r13 + 0x28]
mov rdx, qword [r13 + 0x30]
add rsp, 0xc8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
jmp fcn.004c9843
mov rcx, qword [rsp + 0x70]
mov edx, dword [rsp + 0x6c]
mov r8, qword [r13 + 0x38]
mov qword [rdi + 0x10], r8
movups xmm0, xmmword [r13 + 0x28]
movups xmmword [rdi], xmm0
mov r8, qword [rsp + 0xa8]
movups xmm0, xmmword [r8]
movups xmmword [rdi + 0x40], xmm0
mov r8b, byte [r8 + 0x10]
mov byte [rdi + 0x50], r8b
mov dword [rdi + 0x18], eax
mov dword [rdi + 0x1c], edx
mov qword [rdi + 0x20], rcx
mov dword [rdi + 0x28], r14d
mov eax, dword [rsp + 0xa4]
mov dword [rdi + 0x2c], eax
mov dword [rdi + 0x30], r12d
mov dword [rdi + 0x34], ebp
mov rax, qword [rsp + 0x58]
mov dword [rdi + 0x38], eax
mov word [rdi + 0x3c], si
mov word [rdi + 0x3e], bx
add rsp, 0xc8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
jne 0x583642
cmp esi, ebx
jb 0x583b10
cmp r12, rsi
movzx ebp, word [rsp + 0x42]
jb 0x583b24
lea rax, [r14 + 0x28]
mov qword [r14 + 0x38], r15
mov rcx, rsi
not rcx
and rcx, r12
add rcx, rcx
xor r12, rsi
mov qword [rsp + 0x88], rsi
sub rcx, r12
mov qword [rsp + 0x90], rcx
mov qword [rsp + 0x98], rax
lea rcx, [0x0062c1ab]
mov qword [rsp + 0x68], rcx
lea rcx, [0x0062c1aa]
mov qword [rsp + 0x70], rcx
lea rcx, str.combase.dll
mov qword [rsp + 0x78], rcx
mov qword [rsp + 0x80], rcx
jne 0x5838a2
lea rdx, [rsp + 0x68]
mov rcx, rax
call fcn.0057dad1
jmp 0x5839af
lea r8, [rsp + 0x68]
mov rcx, rsi
mov rdx, rax
call fcn.0057e732
test al, al
je 0x5839af
lea r8, [rsp + 0x78]
mov rdx, qword [r8 - 0x10]
mov rcx, qword [r8 - 8]
mov rax, rcx
sub rdx, rcx
je 0x5838fb
mov rcx, r8
call fcn.0057e77a
lea r8, [rsp + 0x68]
mov rcx, qword [r8 + 0x20]
mov rdx, qword [r8 + 0x30]
call fcn.0057e732
test al, al
je 0x5839af
mov rcx, qword [rsp + 0x68]
mov rax, qword [rsp + 0x70]
sub rcx, rax
call fcn.004d0988
lea r12, [rsp + 0xb0]
mov qword [r12], rax
mov qword [r12 + 8], rdx
mov qword [r12 + 0x10], 0
lea rdx, [rsp + 0x68]
mov rcx, r12
call fcn.0057dad1
mov r11, qword [r12]
mov r13, qword [r12 + 8]
mov r12, qword [r12 + 0x10]
test r12, r12
je 0x5839a4
lea rcx, [rsp + 0x78]
mov rdx, r12
mov qword [rsp + 0x58], r11
call fcn.0057e77a
mov r11, qword [rsp + 0x58]
mov rax, qword [rsp + 0x88]
mov rcx, qword [rsp + 0x98]
mov rdx, qword [rcx + 0x10]
cmp rdx, rax
je 0x5839a4
sub rax, rdx
add rdx, qword [rcx + 8]
xor r8d, r8d
cmp r12, r8
je 0x5839a4
mov r9b, byte [r13 + r8]
mov byte [rdx + r8], r9b
mov r9, qword [rcx + 0x10]
mov r10d, r9d
and r10d, 1
xor r9, 1
lea r9, [r9 + r10*2]
mov qword [rcx + 0x10], r9
inc r8
cmp rax, r8
jne 0x583977
mov rcx, r11
mov rdx, r13
call fcn.004c9843
mov r13, r14
mov r14d, ebx
mov rax, qword [rsp + 0x78]
mov r12, qword [rsp + 0x90]
cmp rax, qword [rsp + 0x80]
mov ebx, ebp
test r12, r12
mov r8b, byte [rsp + 0x3f]
mov r9, qword [rsp + 0x50]
mov r10, qword [rsp + 0x48]
je 0x583a29
mov rdx, qword [rsp + 0x88]
mov rax, qword [rsp + 0x98]
lea rbx, [rax + 0x10]
mov rbp, qword [rax + 0x10]
cmp rdx, rbp
je 0x583a1e
mov rcx, qword [rax + 8]
add rdx, rcx
add rcx, rbp
mov r8, r12
call sub.msvcrt.dll_memmove
mov r10, qword [rsp + 0x48]
mov r9, qword [rsp + 0x50]
mov r8b, byte [rsp + 0x3f]
add rbp, r12
mov qword [rbx], rbp
movzx ebx, word [rsp + 0x42]
add esi, 0xfffffffe
mov rax, r13
mov rcx, qword [r13 + 0x30]
mov r12, qword [r13 + 0x38]
test r14d, r14d
je 0x583a5b
cmp r12, r15
jbe 0x583a59
cmp byte [rcx + r15], 0xbf
jg 0x583a5b
lea rax, [0x0062c690]
mov qword [rsp + 0x20], rax
jmp 0x5836fa
jne 0x583a48
mov qword [rsp + 0x58], rsi
sub r12, r15
cmp r12, 3
jae 0x583a77
movzx esi, word [rsp + 0x40]
mov ebp, dword [rsp + 0x64]
jmp 0x583726
movzx eax, word [rcx + r15]
xor eax, 0x2f3a
movzx ecx, byte [rcx + r15 + 2]
xor ecx, 0x2f
or cx, ax
movzx esi, word [rsp + 0x40]
mov ebp, dword [rsp + 0x64]
mov r12d, dword [rsp + 0x44]
jne 0x58374e
lea rcx, str.assertion_failed:__self.serialization_scheme_end_as_usize.._.starts_with__:____
lea r8, [0x0062c6a8]
jmp 0x583ad6
mov r8d, 2
mov rdx, r12
call fcn.00417450
mov rdx, qword [r14 + 0x30]
jmp 0x583690
lea rcx, str.assertion_failed:__self.serialization_scheme_end_as_usize.._.starts_with__:____
lea r8, [0x0062c620]
mov edx, 0x51
call fcn.00426370
ud2
lea r8, [0x0062c658]
mov rcx, rsi
mov rdx, r12
call fcn.004262b0
ud2
add r13, rsi
lea rdx, [rsp + 0x68]
mov qword [rdx + 0x10], 0
mov rcx, r13
call fcn.0057e6d0
ud2
lea r8, str._repos_rust_1.70.0_library_alloc_src_vec_mod.rs
mov rcx, r15
mov rdx, rsi
call fcn.00429a20
ud2
lea r8, str._repos_rust_1.70.0_library_alloc_src_vec_mod.rs
mov rcx, rsi
mov rdx, r12
call fcn.004292f0
ud2