Function at 0x1400e5d00
Capabilities:
Check if file exists
Enumerate files on windows
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, 0x9f8
mov qword [rsp + 0x88], 0
mov qword [rsp + 0x90], 8
mov qword [rsp + 0x98], 0
test r8, r8
je 0x1400e686f
js 0x1400e687e
mov r15, r8
mov rsi, rdx
mov rbx, rcx
movzx eax, byte [0x140346130]
xor ecx, ecx
mov rdx, r8
call sym.std::sys::pal::windows::alloc::process_heap_alloc::hcc99af14aa596ba0
test rax, rax
je 0x1400e6883
mov r13, rax
mov rcx, rax
mov rdx, rsi
mov r8, r15
call sym.memcpy
movzx eax, byte [0x140346130]
xor ecx, ecx
mov rdx, r15
call sym.std::sys::pal::windows::alloc::process_heap_alloc::hcc99af14aa596ba0
test rax, rax
je 0x1400e6890
mov rdi, rax
mov rcx, rax
mov rdx, rsi
mov r8, r15
call sym.memcpy
mov qword [rsp + 0xe0], r15
mov qword [rsp + 0xe8], rdi
mov qword [rsp + 0xf0], r15
mov byte [rsp + 0xf8], 0
lea rdx, [0x14030bb30]
lea rcx, [rsp + 0xe0]
mov r8d, 1
call sym.std::path::PathBuf::_push::h92eb24449e4b610d
mov r12, qword [rsp + 0xe0]
mov rsi, qword [rsp + 0xe8]
mov r8, qword [rsp + 0xf0]
lea rcx, [rsp + 0x7d8]
mov rdx, rsi
call sym.std::sys::pal::windows::to_u16s::inner::hf728dee756204d12
movabs rdi, 0x8000000000000000
mov rax, qword [rsp + 0x7d8]
mov r14, qword [rsp + 0x7e0]
cmp rax, rdi
je 0x1400e6825
mov rcx, qword [rsp + 0x7e8]
mov qword [rsp + 0xe0], rax
mov qword [rsp + 0xe8], r14
mov qword [rsp + 0xf0], rcx
lea rcx, [rsp + 0xb0]
lea rdx, [rsp + 0xe0]
call sym.std::sys::path::windows::get_long_path::h85d0c0c90979e971
mov rbp, qword [rsp + 0xb0]
mov r14, qword [rsp + 0xb8]
cmp rbp, rdi
je 0x1400e6825
lea rdi, [rsp + 0xe0]
mov r8d, 0x250
mov rcx, rdi
xor edx, edx
call sub.msvcrt.dll_memset
mov rcx, r14
mov rdx, rdi
call sub.KERNEL32.dll_FindFirstFileW
cmp rax, 0xffffffffffffffff
mov qword [rsp + 0xa0], rbx
je 0x1400e5f99
mov rdi, rax
movzx eax, byte [0x140346130]
mov edx, 0x30
xor ecx, ecx
call sym.std::sys::pal::windows::alloc::process_heap_alloc::hcc99af14aa596ba0
test rax, rax
je 0x1400e68a2
mov rbx, rax
mov qword [rax], 1
mov qword [rax + 8], 1
mov qword [rax + 0x10], r15
mov qword [rax + 0x18], r13
mov qword [rax + 0x20], r15
mov byte [rax + 0x28], 0
movups xmm0, xmmword [rsp + 0xe0]
movups xmm1, xmmword [rsp + 0xf0]
movups xmm2, xmmword [rsp + 0xfc]
movups xmmword [rsp + 0x5ac], xmm2
movaps xmmword [rsp + 0x5a0], xmm1
movaps xmmword [rsp + 0x590], xmm0
movzx eax, word [rsp + 0x10c]
mov word [rsp + 0x3a], ax
movzx eax, word [rsp + 0x10e]
mov dword [rsp + 0x3c], eax
movzx eax, word [rsp + 0x110]
mov word [rsp + 0x38], ax
lea rdx, [rsp + 0x112]
lea rcx, [rsp + 0x340]
mov r8d, 0x21e
call sym.memcpy
test rbp, rbp
je 0x1400e5f75
mov rcx, qword [0x1403460d0]
xor edx, edx
mov r8, r14
call fcn.14013f0f4
mov ebp, 1
test r12, r12
je 0x1400e6022
mov rcx, qword [0x1403460d0]
xor edx, edx
mov r8, rsi
call fcn.14013f0f4
jmp 0x1400e6022
call sub.KERNEL32.dll_GetLastError
cmp eax, 2
jne 0x1400e68b6
movzx eax, byte [0x140346130]
mov edx, 0x30
xor ecx, ecx
call sym.std::sys::pal::windows::alloc::process_heap_alloc::hcc99af14aa596ba0
test rax, rax
je 0x1400e6934
mov rbx, rax
mov qword [rax], 1
mov qword [rax + 8], 1
mov qword [rax + 0x10], r15
mov qword [rax + 0x18], r13
mov qword [rax + 0x20], r15
mov byte [rax + 0x28], 0
test rbp, rbp
je 0x1400e5ffb
mov rcx, qword [0x1403460d0]
xor edx, edx
mov r8, r14
call fcn.14013f0f4
mov rdi, 0xffffffffffffffff
test r12, r12
je 0x1400e601c
mov rcx, qword [0x1403460d0]
xor ebp, ebp
xor edx, edx
mov r8, rsi
call fcn.14013f0f4
jmp 0x1400e601e
xor ebp, ebp
mov dword [rsp + 0x3c], eax
movups xmm0, xmmword [rsp + 0x5ac]
movups xmmword [rsp + 0x6c], xmm0
movaps xmm0, xmmword [rsp + 0x590]
movaps xmm1, xmmword [rsp + 0x5a0]
movaps xmmword [rsp + 0x60], xmm1
movaps xmmword [rsp + 0x50], xmm0
lea rsi, [rsp + 0xe0]
lea r14, [rsp + 0x340]
mov r8d, 0x21e
mov rcx, rsi
mov rdx, r14
call sym.memcpy
movaps xmm0, xmmword [rsp + 0x50]
movaps xmm1, xmmword [rsp + 0x60]
movaps xmmword [rsp + 0xb0], xmm0
movaps xmmword [rsp + 0xc0], xmm1
movups xmm0, xmmword [rsp + 0x6c]
movups xmmword [rsp + 0xcc], xmm0
lea rcx, [rsp + 0x7d8]
mov r8d, 0x21e
mov rdx, rsi
call sym.memcpy
cmp word [rsp + 0x3a], 0x2e
sete cl
mov eax, dword [rsp + 0x3c]
test ax, ax
sete dl
xor eax, 0x2e
or ax, word [rsp + 0x38]
sete r8b
test ebp, ebp
sete al
or r8b, dl
and r8b, cl
mov byte [rsp + 0x37], r8b
xor ecx, ecx
mov qword [rsp + 0x40], rcx
jmp 0x1400e60e2
mov al, 1
cmp rdi, 0xffffffffffffffff
je 0x1400e675a
or al, byte [rsp + 0x37]
test al, 1
je 0x1400e6180
mov r8d, 0x250
mov rcx, r14
xor edx, edx
call sub.msvcrt.dll_memset
nop dword [rax + rax]
mov rcx, rdi
mov rdx, r14
call sub.KERNEL32.dll_FindNextFileW
test eax, eax
je 0x1400e6220
cmp word [rsp + 0x36c], 0x2e
jne 0x1400e614c
movzx eax, word [rsp + 0x36e]
test ax, ax
je 0x1400e6110
cmp ax, 0x2e
jne 0x1400e614c
cmp word [rsp + 0x370], 0
je 0x1400e6110
lock inc qword [rbx]
jle 0x1400e6943
mov r8d, 0x250
lea rcx, [rsp + 0xf0]
mov rdx, r14
call sym.memcpy
mov ecx, 8
mov rax, rbx
jmp 0x1400e624c
lock inc qword [rbx]
jle 0x1400e6943
movups xmm0, xmmword [rsp + 0xcc]
lea rax, [rsp + 0xf0]
movups xmmword [rax + 0x1c], xmm0
movaps xmm0, xmmword [rsp + 0xb0]
movaps xmm1, xmmword [rsp + 0xc0]
movups xmmword [rax + 0x10], xmm1
movups xmmword [rax], xmm0
mov r8d, 0x21e
lea rcx, [rsp + 0x122]
lea rdx, [rsp + 0x7d8]
call sym.memcpy
mov qword [rsp + 0xe8], rbx
movzx eax, word [rsp + 0x3a]
mov word [rsp + 0x11c], ax
mov eax, dword [rsp + 0x3c]
mov word [rsp + 0x11e], ax
movzx eax, word [rsp + 0x38]
mov word [rsp + 0x120], ax
mov rsi, rbx
mov r15, qword [rsp + 0xf0]
test rsi, rsi
jne 0x1400e626d
jmp 0x1400e67a3
call sub.KERNEL32.dll_GetLastError
cmp eax, 0x12
je 0x1400e675a
call sub.KERNEL32.dll_GetLastError
shl rax, 0x20
or rax, 2
mov qword [rsp + 0xe8], 0
mov ecx, 0x10
mov qword [rsp + rcx + 0xe0], rax
mov rsi, qword [rsp + 0xe8]
mov r15, qword [rsp + 0xf0]
test rsi, rsi
je 0x1400e67a3
mov r8d, 0x248
mov rcx, r14
lea rdx, [rsp + 0xf8]
call sym.memcpy
mov r8d, 0x248
lea r12, [rsp + 0x590]
mov rcx, r12
mov rdx, r14
call sym.memcpy
mov qword [rsp + 0xe0], rsi
mov qword [rsp + 0xe8], r15
mov r8d, 0x248
lea rcx, [rsp + 0xf0]
mov rdx, r12
call sym.memcpy
mov rbp, qword [rsi + 0x18]
mov r15, qword [rsi + 0x20]
mov ecx, 0x104
lea rdx, [rsp + 0x114]
mov rax, rdx
cmp word [rax], 0
je 0x1400e63c0
cmp word [rax + 2], 0
je 0x1400e6393
cmp word [rax + 4], 0
je 0x1400e6399
cmp word [rax + 6], 0
je 0x1400e639f
cmp word [rax + 8], 0
je 0x1400e63a5
cmp word [rax + 0xa], 0
je 0x1400e63ab
cmp word [rax + 0xc], 0
je 0x1400e63b1
cmp word [rax + 0xe], 0
je 0x1400e63b7
add rcx, 0xfffffffffffffff8
add rax, 0x10
cmp rcx, 7
ja 0x1400e62da
cmp word [rsp + 0x314], 0
lea rax, [rsp + 0x314]
je 0x1400e63c0
cmp word [rsp + 0x316], 0
lea rax, [rsp + 0x316]
je 0x1400e63c0
cmp word [rsp + 0x318], 0
lea rax, [rsp + 0x318]
je 0x1400e63c0
mov r8d, 0x104
cmp word [rsp + 0x31a], 0
lea rax, [rsp + 0x31a]
jne 0x1400e63d5
jmp 0x1400e63c0
add rax, 2
jmp 0x1400e63c0
add rax, 4
jmp 0x1400e63c0
add rax, 6
jmp 0x1400e63c0
add rax, 8
jmp 0x1400e63c0
add rax, 0xa
jmp 0x1400e63c0
add rax, 0xc
jmp 0x1400e63c0
add rax, 0xe
nop dword [rax + rax]
sub rax, rdx
mov r8, rax
shr r8, 1
cmp rax, 0x20a
jae 0x1400e67f2
lea rcx, [rsp + 0x50]
call sym.__std::ffi::os_str::OsString_as_std::os::windows::ffi::OsStringExt_::from_wide::hd997a8717ceae36b
mov r13, qword [rsp + 0x58]
mov r12, qword [rsp + 0x60]
test r15, r15
je 0x1400e6420
js 0x1400e6813
movzx eax, byte [0x140346130]
xor ecx, ecx
mov rdx, r15
call sym.std::sys::pal::windows::alloc::process_heap_alloc::hcc99af14aa596ba0
test rax, rax
je 0x1400e6809
mov rsi, rax
jmp 0x1400e6425
mov esi, 1
mov rcx, rsi
mov rdx, rbp
mov r8, r15
call sym.memcpy
mov qword [rsp + 0x340], r15
mov qword [rsp + 0x348], rsi
mov qword [rsp + 0x350], r15
mov byte [rsp + 0x358], 0
mov rcx, r14
mov rdx, r13
mov r8, r12
call sym.std::path::PathBuf::_push::h92eb24449e4b610d
mov rsi, qword [rsp + 0x340]
mov r15, qword [rsp + 0x348]
mov rbp, qword [rsp + 0x350]
cmp qword [rsp + 0x50], 0
je 0x1400e6492
mov rcx, qword [0x1403460d0]
xor edx, edx
mov r8, r13
call fcn.14013f0f4
mov rcx, r14
mov rdx, r15
mov r8, rbp
call sym.std::sys::pal::windows::fs::stat::hfe0d5c68794b1871
cmp dword [rsp + 0x340], 2
jne 0x1400e64d0
mov rax, qword [rsp + 0x348]
mov qword [rsp + 0x58], rax
mov byte [rsp + 0x50], 1
lea rcx, [rsp + 0x58]
call sym.core::ptr::drop_in_place_std::io::error::Error_::hd3404dd2e1da2dda
jmp 0x1400e6720
mov eax, dword [rsp + 0x380]
mov ecx, dword [rsp + 0x384]
mov edx, eax
shr edx, 0xa
shr ecx, 0x1d
and ecx, edx
test cl, 1
jne 0x1400e6720
and eax, 0x10
je 0x1400e6720
lea rax, [0x1402f844b]
mov qword [rsp + 0x340], rax
mov rcx, qword [rsp + 0x340]
movabs rax, 0x4652c4d82916df15
mov qword [rsp + 0x340], rax
mov rdx, qword [rsp + 0x340]
call sym.obfstr::xref::inner::h9af27f5894c78480
mov rcx, qword [rax]
movabs rdx, 0xf6aa801bb04c7058
xor rcx, rdx
movzx eax, word [rax + 8]
mov edx, eax
xor dl, 0xaf
shr eax, 8
xor al, 0xda
mov qword [rsp + 0x340], rcx
mov byte [rsp + 0x348], dl
mov byte [rsp + 0x349], al
mov qword [rsp + 0x20], 0xa
lea rcx, [rsp + 0x50]
mov rdx, r15
mov r8, rbp
mov r9, r14
call sym.std::path::Path::_join::he13b0a2e79c985dd
mov rdx, qword [rsp + 0x58]
mov r8, qword [rsp + 0x60]
mov rcx, r14
call sym.std::sys::pal::windows::fs::stat::hfe0d5c68794b1871
cmp dword [rsp + 0x340], 2
jne 0x1400e6601
mov r13, qword [rsp + 0x348]
mov eax, r13d
and eax, 3
cmp eax, 1
jne 0x1400e66f6
mov r12, qword [r13 - 1]
mov rbp, qword [r13 + 7]
mov rax, qword [rbp]
test rax, rax
je 0x1400e65c9
mov rcx, r12
call rax
cmp qword [rbp + 8], 0
je 0x1400e65ed
cmp qword [rbp + 0x10], 0x11
jb 0x1400e65dc
mov r12, qword [r12 - 8]
mov rcx, qword [0x1403460d0]
xor edx, edx
mov r8, r12
call fcn.14013f0f4
dec r13
mov rcx, qword [0x1403460d0]
xor edx, edx
mov r8, r13
jmp 0x1400e66f1
mov rcx, r15
mov rdx, rbp
call sym.std::path::Path::file_name::ha564201b566334a3
test rax, rax
je 0x1400e66f6
mov r8, rdx
mov rcx, r14
mov rdx, rax
call sym.std::sys::os_str::wtf8::Slice::to_string_lossy::hfdcfbe70a54de416
mov r13, qword [rsp + 0x348]
mov rbp, qword [rsp + 0x350]
test rbp, rbp
je 0x1400e665d
js 0x1400e6860
movzx eax, byte [0x140346130]
xor ecx, ecx
mov rdx, rbp
call sym.std::sys::pal::windows::alloc::process_heap_alloc::hcc99af14aa596ba0
test rax, rax
je 0x1400e6851
mov r12, rbp
jmp 0x1400e6665
mov eax, 1
xor r12d, r12d
mov qword [rsp + 0x48], rax
mov rcx, rax
mov qword [rsp + 0xa8], r13
mov rdx, r13
mov r8, rbp
call sym.memcpy
mov r13, qword [rsp + 0x98]
cmp r13, qword [rsp + 0x88]
jne 0x1400e669f
lea rcx, [rsp + 0x88]
call sym.alloc::raw_vec::RawVec_T_A_::grow_one::h39ba3bdd1ae1a4ce
mov rax, qword [rsp + 0x90]
lea rcx, [r13*2]
add rcx, r13
mov qword [rax + rcx*8], r12
mov rdx, qword [rsp + 0x48]
mov qword [rax + rcx*8 + 8], rdx
mov qword [rax + rcx*8 + 0x10], rbp
inc r13
mov qword [rsp + 0x98], r13
mov rax, qword [rsp + 0x340]
shl rax, 1
test rax, rax
je 0x1400e66f6
mov rcx, qword [0x1403460d0]
xor edx, edx
mov r8, qword [rsp + 0xa8]
call fcn.14013f0f4
cmp qword [rsp + 0x50], 0
je 0x1400e6720
mov r8, qword [rsp + 0x58]
mov rcx, qword [0x1403460d0]
xor edx, edx
call fcn.14013f0f4
nop word cs:[rax + rax]
test rsi, rsi
je 0x1400e6736
mov rcx, qword [0x1403460d0]
xor edx, edx
mov r8, r15
call fcn.14013f0f4
mov rax, qword [rsp + 0xe0]
lock dec qword [rax]
jne 0x1400e60e0
mov rcx, qword [rsp + 0xe0]
call sym.alloc::sync::Arc_T_A_::drop_slow::ha21dc24423956c07
jmp 0x1400e60e0
mov rcx, rdi
call sub.KERNEL32.dll_FindClose
lock dec qword [rbx]
jne 0x1400e6770
mov rcx, rbx
call sym.alloc::sync::Arc_T_A_::drop_slow::ha21dc24423956c07
mov rax, qword [rsp + 0x98]
mov rcx, qword [rsp + 0xa0]
mov qword [rcx + 0x10], rax
movups xmm0, xmmword [rsp + 0x88]
movups xmmword [rcx], xmm0
add rsp, 0x9f8
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
lea rcx, [rsp + 0x590]
lea rdx, [rsp + 0x340]
mov r8d, 0x248
call sym.memcpy
mov qword [rsp + 0x340], r15
lea rax, str.src_feature_browser.rs
mov qword [rsp + 0x20], rax
lea rcx, [0x14030fd76]
lea r9, sym.core::ptr::drop_in_place_std::io::error::Error_::h1c28098bcf3777fe
lea r8, [rsp + 0x340]
mov edx, 0x2b
call sym.core::result::unwrap_failed::he553ba724245dc85
lea rax, str.library_std_src_syspalwindowsmod.rsstrings_passed_to_WinAPI_cannot_contain_NULs
mov edx, 0x104
mov rcx, r8
mov r8, rax
call sym.core::slice::index::slice_end_index_len_fail::hda10811658e048af
mov eax, 1
mov qword [rsp + 0x40], rax
mov rcx, qword [rsp + 0x40]
mov rdx, r15
call sym.alloc::raw_vec::handle_error::h4c8b686338b9335b
jmp 0x1400e6943
test r12, r12
je 0x1400e683b
mov rcx, qword [0x1403460d0]
xor edx, edx
mov r8, rsi
call fcn.14013f0f4
mov rcx, qword [0x1403460d0]
xor edx, edx
mov r8, r13
call fcn.14013f0f4
jmp 0x1400e6900
mov eax, 1
mov qword [rsp + 0x40], rax
mov qword [rsp + 0x48], rbp
mov rcx, qword [rsp + 0x40]
mov rdx, qword [rsp + 0x48]
call sym.alloc::raw_vec::handle_error::h4c8b686338b9335b
movabs r14, 0x300000002
jmp 0x1400e6900
call sym.alloc::raw_vec::capacity_overflow::h1e9621a84679a79e
mov ecx, 1
mov rdx, r15
call sym.alloc::raw_vec::handle_error::h4c8b686338b9335b
mov ecx, 1
mov rdx, r15
call sym.alloc::raw_vec::handle_error::h4c8b686338b9335b
jmp 0x1400e6943
mov ecx, 8
mov edx, 0x30
call sym.alloc::alloc::handle_alloc_error::ha2de6b786ec4bee4
jmp 0x1400e6943
mov edi, eax
test rbp, rbp
je 0x1400e68ce
mov rcx, qword [0x1403460d0]
xor edx, edx
mov r8, r14
call fcn.14013f0f4
shl rdi, 0x20
test r12, r12
je 0x1400e68e8
mov rcx, qword [0x1403460d0]
xor edx, edx
mov r8, rsi
call fcn.14013f0f4
or rdi, 2
mov rcx, qword [0x1403460d0]
xor edx, edx
mov r8, r13
call fcn.14013f0f4
mov r14, rdi
mov qword [rsp + 0xe0], r14
lea rax, str.src_feature_browser.rs
mov qword [rsp + 0x20], rax
lea rcx, [0x14030fd76]
lea r9, sym.core::ptr::drop_in_place_std::io::error::Error_::h1c28098bcf3777fe
lea r8, [rsp + 0xe0]
mov edx, 0x2b
call sym.core::result::unwrap_failed::he553ba724245dc85
mov ecx, 8
mov edx, 0x30
call sym.alloc::alloc::handle_alloc_error::ha2de6b786ec4bee4
ud2