Function at 0x42e0a0
Capabilities:
Check if file exists
Get common file path
Get file attributes
Set current directory

Disassembly:
push rbp
push r13
push rdi
push rsi
push rbx
sub rsp, 0x250
mov rbp, rsp
mov ebx, edx
cmp word [rcx], 0x5c
jne 0x42e0ca
cmp word [rcx + 2], 0x5c
jne 0x42e0ca
mov eax, 0x23bd
jmp 0x42e355
call fcn.0042e050
mov rsi, rax
mov rdi, rax
test rax, rax
jne 0x42e0e5
mov eax, 8
jmp 0x42e355
test rsi, rsi
je 0x42e0f7
mov rax, rsi
mov rcx, rax
call fcn.0040a830
jmp 0x42e0fa
xor rax, rax
cmp eax, 1
jl 0x42e11c
movsxd rcx, eax
cmp word [rsi + rcx*2 - 2], 0x20
je 0x42e115
movsxd rax, eax
mov word [rsi + rax*2], 0
jmp 0x42e11c
sub eax, 1
test eax, eax
jne 0x42e0ff
nop
mov ecx, 0x104
lea rdx, [rbp + 0x3e]
call sub.kernel32.dll_GetCurrentDirectoryW
movzx r13, word [rbp + 0x3e]
movzx rax, word [rbp + 0x3e]
sub ax, 0x61
cmp ax, 0x1a
jae 0x42e14a
movzx r13, word [rbp + 0x3e]
and r13w, 0xffdf
mov word [rbp + 0x36], 0x3d
lea rax, [0x0042e364]
mov qword [rbp + 0x28], rax
movzx rax, word [rsi]
cmp ax, 0xff
ja 0x42e177
mov rcx, qword [rbp + 0x28]
movzx rax, ax
bt qword [rcx], rax
setb al
jmp 0x42e17a
xor rax, rax
test al, al
je 0x42e188
cmp word [rsi + 2], 0x3a
sete al
jmp 0x42e18b
xor rax, rax
test al, al
je 0x42e1af
movzx rax, word [rsi]
movzx rcx, word [rsi]
sub cx, 0x61
cmp cx, 0x1a
jae 0x42e1a9
movzx rax, word [rsi]
and ax, 0xffdf
mov word [rbp + 0x38], ax
jmp 0x42e1b4
mov word [rbp + 0x38], r13w
mov word [rbp + 0x3a], 0x3a
mov word [rbp + 0x3c], 0
mov word [rbp + 0x244], 0
mov rcx, rsi
mov edx, 0x104
lea r8, [rbp + 0x3e]
lea r9, [rbp + 0x248]
call sub.kernel32.dll_GetFullPathNameW
test eax, eax
jne 0x42e1f0
call sub.kernel32.dll_GetLastError_2
jmp 0x42e355
cmp eax, 0x104
jbe 0x42e203
mov eax, 0xce
jmp 0x42e355
cmp word [rbp + 0x3e], 0
je 0x42e211
cmp word [rbp + 0x40], 0x3a
je 0x42e21c
mov eax, 3
jmp 0x42e355
cmp qword [rbp + 0x248], 0
jne 0x42e24f
lea rax, [rbp + 0x3e]
test rax, rax
je 0x42e23d
lea rax, [rbp + 0x3e]
mov rcx, rax
call fcn.0040a830
jmp 0x42e240
xor rax, rax
movsxd rax, eax
lea rax, [rbp + rax*2 + 0x3e]
mov qword [rbp + 0x248], rax
mov rax, qword [rbp + 0x248]
cmp word [rax], 0
jne 0x42e28b
lea rax, [rbp + 0x44]
cmp qword [rbp + 0x248], rax
jbe 0x42e28b
mov rax, qword [rbp + 0x248]
cmp word [rax - 2], 0x5c
jne 0x42e28b
sub qword [rbp + 0x248], 2
mov rax, qword [rbp + 0x248]
mov word [rax], 0
lea rcx, [rbp + 0x3e]
call sub.kernel32.dll_GetFileAttributesW
cmp eax, 0xffffffff
jne 0x42e2b1
call sub.kernel32.dll_GetLastError_2
cmp eax, 2
je 0x42e2b1
cmp eax, 3
je 0x42e2b1
cmp eax, 0x7b
jne 0x42e355
mov rax, qword [0x00449430]
cmp byte [rax], 0
je 0x42e2c9
lea rcx, [rbp + 0x3e]
xor rdx, rdx
call fcn.0042deb0
cmp ebx, 2
je 0x42e2f6
lea rcx, [rbp + 0x3e]
call sub.kernel32.dll_GetFileAttributesW
cmp eax, 0xffffffff
jne 0x42e2ee
call sub.kernel32.dll_GetLastError_2
cmp eax, 2
jne 0x42e355
mov eax, 3
jmp 0x42e355
test eax, 0x410
je 0x42e34f
test ebx, ebx
je 0x42e306
cmp ebx, 1
jne 0x42e313
cmp r13w, word [rbp + 0x38]
jne 0x42e313
lea rcx, [rbp + 0x3e]
call sub.kernel32.dll_SetCurrentDirectoryW
test eax, eax
je 0x42e348
lea rcx, [rbp + 0x36]
lea rdx, [rbp + 0x3e]
call fcn.0042bc70
test eax, eax
jne 0x42e340
mov rcx, qword [0x00449a50]
xor rdx, rdx
call fcn.0042ddf0
mov rcx, rdi
call fcn.00424160
xor rax, rax
jmp 0x42e355
mov eax, 8
jmp 0x42e355
call sub.kernel32.dll_GetLastError_2
jmp 0x42e355
mov eax, 0x10b
lea rsp, [rbp + 0x250]
pop rbx
pop rsi
pop rdi
pop r13
pop rbp
ret