Function at 0x42c720
Capabilities:
Check if file exists
Get file attributes

Disassembly:
push r15
push r14
push r13
push r12
push rbp
push rdi
push rsi
push rbx
sub rsp, 0x48
mov eax, dword [rsp + 0xc0]
mov rbp, rcx
mov rdi, rdx
mov r13, r8
mov rsi, r9
test eax, eax
jne 0x42c860
mov r14, qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
lea rax, [rsi + rsi]
mov qword [rsp + 0x28], rax
cmp rdi, 2
ja 0x42c930
test rdi, rdi
jne 0x42ce40
mov rax, qword [rsp + 0xb8]
mov r12, rdi
lea rcx, [rsi + rax + 7]
add rcx, rdi
add rcx, rcx
call fcn.004109f0
mov r8, qword [rsp + 0xb8]
mov rdx, qword [rsp + 0xb0]
mov rcx, rax
mov rbx, rax
call sub.msvcrt.dll_wcsncpy
mov rax, qword [rsp + 0xb8]
mov r11, rbp
test rax, rax
lea r15, [rbx + rax*2]
jne 0x42cab4
mov rcx, r15
mov r8, r12
mov rdx, r11
call sub.msvcrt.dll_wcsncpy
test r12, r12
lea r15, [r15 + r12*2]
jne 0x42cbe2
mov r8, rsi
mov rdx, r13
mov rcx, r15
call sub.msvcrt.dll_wcsncpy
mov rax, qword [rsp + 0x28]
test rsi, rsi
lea r12, [r15 + rax]
je 0x42c80c
cmp word [r12 - 2], 0x2e
je 0x42c80c
mov r10d, 0x2e
add r12, 2
mov word [r12 - 2], r10w
lea rdx, [0x0044e82c]
mov r8d, 3
mov rcx, r12
call sub.msvcrt.dll_wcsncpy
xor r9d, r9d
mov rcx, rbx
mov word [r12 + 6], r9w
call r14
cmp eax, 0xffffffff
je 0x42cc40
test al, 0x10
jne 0x42cc40
test rbx, rbx
je 0x42cc48
mov rax, rbx
add rsp, 0x48
pop rbx
pop rsi
pop rdi
pop rbp
pop r12
pop r13
pop r14
pop r15
ret
cmp rdx, 2
ja 0x42c9c0
test rdx, rdx
jne 0x42ce70
mov rax, qword [rsp + 0xb8]
mov r12, rbp
mov r15, rdi
lea rcx, [rsi + rax + 4]
add rcx, rdi
add rcx, rcx
call fcn.004109f0
mov r8, qword [rsp + 0xb8]
mov rdx, qword [rsp + 0xb0]
mov rcx, rax
mov rbx, rax
call sub.msvcrt.dll_wcsncpy
mov rax, qword [rsp + 0xb8]
test rax, rax
lea r14, [rbx + rax*2]
jne 0x42cb4a
mov rcx, r14
mov r8, r15
mov rdx, r12
call sub.msvcrt.dll_wcsncpy
test r15, r15
lea r14, [r14 + r15*2]
jne 0x42cc10
mov rcx, r14
mov r8, rsi
mov rdx, r13
call sub.msvcrt.dll_wcsncpy
lea rax, [rsi + rsi]
mov rcx, rbx
mov qword [rsp + 0x28], rax
xor eax, eax
mov word [r14 + rsi*2], ax
mov r14, qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
call r14
cmp eax, 0xffffffff
je 0x42cd50
test al, 0x10
jne 0x42cd50
test rbx, rbx
jne 0x42c84a
jmp 0x42c752
movzx eax, word [rbp]
cmp ax, 0x5c
je 0x42ca50
cmp ax, 0x2f
je 0x42ca50
cmp word [rbp + 2], 0x3a
jne 0x42c76e
cmp rdi, 2
je 0x42c971
movzx eax, word [rbp + 4]
cmp ax, 0x2f
je 0x42cb80
cmp ax, 0x5c
je 0x42cb80
cmp qword [rsp + 0xb8], 1
jbe 0x42cb80
mov r8d, 2
mov rdx, rbp
mov rcx, qword [rsp + 0xb0]
call qword [sym.imp.msvcrt.dll__wcsnicmp]
test eax, eax
jne 0x42cb80
mov rax, qword [rsp + 0xb8]
lea r11, [rbp + 4]
lea r12, [rdi - 2]
lea r15, [rax + rax]
mov r8, rax
jmp 0x42ca7a
movzx eax, word [rcx]
cmp ax, 0x5c
je 0x42caf0
cmp ax, 0x2f
je 0x42caf0
cmp word [rbp + 2], 0x3a
jne 0x42c873
cmp rdi, 2
je 0x42ca00
movzx eax, word [rbp + 4]
cmp ax, 0x2f
je 0x42cbb1
cmp ax, 0x5c
je 0x42cbb1
cmp qword [rsp + 0xb8], 1
jbe 0x42cbb1
mov r8d, 2
mov rdx, rbp
mov rcx, qword [rsp + 0xb0]
call qword [sym.imp.msvcrt.dll__wcsnicmp]
test eax, eax
jne 0x42cbb1
mov rax, qword [rsp + 0xb8]
lea r12, [rbp + 4]
lea r15, [rdi - 2]
lea r14, [rax + rax]
mov r8, rax
jmp 0x42cb1a
movzx eax, word [rbp + 2]
cmp ax, 0x5c
je 0x42cb80
cmp ax, 0x2f
je 0x42cb80
mov r12, rdi
mov r11, rbp
mov r15d, 4
mov r8d, 2
lea rcx, [r12 + rsi + 7]
mov qword [rsp + 0x38], r11
mov qword [rsp + 0x30], r8
add rcx, r8
add rcx, rcx
call fcn.004109f0
mov r8, qword [rsp + 0x30]
mov rdx, qword [rsp + 0xb0]
mov rcx, rax
mov rbx, rax
add r15, rbx
call sub.msvcrt.dll_wcsncpy
mov r11, qword [rsp + 0x38]
movzx edx, word [r15 - 2]
lea rcx, [0x0044e824]
mov qword [rsp + 0x30], r11
call sub.msvcrt.dll_wcsrchr
test rax, rax
mov r11, qword [rsp + 0x30]
jne 0x42c7bc
mov eax, 0x5c
add r15, 2
mov word [r15 - 2], ax
jmp 0x42c7bc
movzx eax, word [rbp + 2]
cmp ax, 0x5c
je 0x42cbb1
cmp ax, 0x2f
je 0x42cbb1
mov r15, rdi
mov r12, rbp
mov r14d, 4
mov r8d, 2
lea rcx, [r15 + rsi + 4]
mov qword [rsp + 0x28], r8
add rcx, r8
add rcx, rcx
call fcn.004109f0
mov r8, qword [rsp + 0x28]
mov rdx, qword [rsp + 0xb0]
mov rbx, rax
mov rcx, rax
add r14, rbx
call sub.msvcrt.dll_wcsncpy
movzx edx, word [r14 - 2]
lea rcx, [0x0044e824]
call sub.msvcrt.dll_wcsrchr
test rax, rax
jne 0x42c8c1
mov eax, 0x5c
add r14, 2
mov word [r14 - 2], ax
jmp 0x42c8c1
lea rcx, [rdi + rsi + 7]
mov r12, rdi
add rcx, rcx
call fcn.004109f0
mov rdx, qword [rsp + 0xb0]
mov r15, rax
xor r8d, r8d
mov rcx, rax
mov rbx, r15
call sub.msvcrt.dll_wcsncpy
mov r11, rbp
jmp 0x42c7bc
lea rcx, [rdi + rsi + 4]
mov r12, rbp
mov r15, rdi
add rcx, rcx
call fcn.004109f0
mov rdx, qword [rsp + 0xb0]
mov r14, rax
xor r8d, r8d
mov rcx, rax
mov rbx, r14
call sub.msvcrt.dll_wcsncpy
jmp 0x42c8c1
movzx edx, word [r15 - 2]
lea rcx, [0x0044e824]
call sub.msvcrt.dll_wcsrchr
test rax, rax
jne 0x42c7d7
mov r11d, 0x5c
add r15, 2
mov word [r15 - 2], r11w
jmp 0x42c7d7
movzx edx, word [r14 - 2]
lea rcx, [0x0044e824]
call sub.msvcrt.dll_wcsrchr
test rax, rax
jne 0x42c8dc
mov eax, 0x5c
add r14, 2
mov word [r14 - 2], ax
jmp 0x42c8dc
mov rcx, rbx
call fcn.00410a10
cmp rdi, 2
jbe 0x42cd60
movzx eax, word [rbp]
cmp ax, 0x5c
je 0x42cf02
cmp ax, 0x2f
je 0x42cf02
cmp word [rbp + 2], 0x3a
jne 0x42cd69
cmp rdi, 2
je 0x42cc93
movzx eax, word [rbp + 4]
cmp ax, 0x2f
je 0x42ced0
cmp ax, 0x5c
je 0x42ced0
cmp qword [rsp + 0xb8], 1
jbe 0x42ced0
mov r8d, 2
mov rdx, rbp
mov rcx, qword [rsp + 0xb0]
call qword [sym.imp.msvcrt.dll__wcsnicmp]
test eax, eax
jne 0x42ced0
mov rax, qword [rsp + 0xb8]
add rbp, 4
sub rdi, 2
add rax, rax
mov r15, rax
nop word [rax + rax]
lea rcx, [rdi + rsi + 7]
add rcx, qword [rsp + 0xb8]
add rcx, rcx
call fcn.004109f0
mov r8, qword [rsp + 0xb8]
mov rdx, qword [rsp + 0xb0]
mov rcx, rax
mov rbx, rax
call sub.msvcrt.dll_wcsncpy
mov r9, r15
add r9, rbx
movzx edx, word [r9 - 2]
lea rcx, [0x0044e824]
mov qword [rsp + 0x30], r9
call sub.msvcrt.dll_wcsrchr
test rax, rax
mov r9, qword [rsp + 0x30]
jne 0x42cdb1
mov r8d, 0x5c
add r9, 2
mov word [r9 - 2], r8w
jmp 0x42cdb1
mov rcx, rbx
call fcn.00410a10
jmp 0x42c75b
test rdi, rdi
jne 0x42cf29
mov rax, qword [rsp + 0xb8]
lea rcx, [rsi + rax + 7]
add rcx, rdi
add rcx, rcx
call fcn.004109f0
mov r8, qword [rsp + 0xb8]
mov rdx, qword [rsp + 0xb0]
mov rcx, rax
mov rbx, rax
call sub.msvcrt.dll_wcsncpy
mov rax, qword [rsp + 0xb8]
test rax, rax
lea r9, [rbx + rax*2]
jne 0x42cd16
mov rdx, rbp
mov rcx, r9
mov r8, rdi
mov qword [rsp + 0x30], r9
call sub.msvcrt.dll_wcsncpy
mov r9, qword [rsp + 0x30]
test rdi, rdi
lea rbp, [r9 + rdi*2]
jne 0x42cea0
mov rcx, rbp
mov r8, rsi
mov rdx, r13
call sub.msvcrt.dll_wcsncpy
add rbp, qword [rsp + 0x28]
test rsi, rsi
je 0x42ce02
cmp word [rbp - 2], 0x2e
je 0x42ce02
mov edx, 0x2e
add rbp, 2
mov word [rbp - 2], dx
lea rdx, [0x0044e834]
mov r8d, 3
mov rcx, rbp
call sub.msvcrt.dll_wcsncpy
xor eax, eax
mov rcx, rbx
mov word [rbp + 6], ax
call r14
cmp eax, 0xffffffff
je 0x42ce30
test al, 0x10
je 0x42c84a
mov rcx, rbx
xor ebx, ebx
call fcn.00410a10
jmp 0x42c84a
movzx eax, word [rbp]
cmp ax, 0x2f
je 0x42ca68
cmp ax, 0x5c
je 0x42ca68
cmp rdi, 1
ja 0x42c948
jmp 0x42c76e
movzx eax, word [rcx]
cmp ax, 0x2f
je 0x42cb08
cmp ax, 0x5c
je 0x42cb08
cmp rdx, 1
ja 0x42c9d7
jmp 0x42c873
movzx edx, word [rbp - 2]
lea rcx, [0x0044e824]
call sub.msvcrt.dll_wcsrchr
test rax, rax
jne 0x42cdd6
mov ecx, 0x5c
add rbp, 2
mov word [rbp - 2], cx
jmp 0x42cdd6
lea rcx, [rdi + rsi + 7]
add rcx, rcx
call fcn.004109f0
mov rdx, qword [rsp + 0xb0]
xor r8d, r8d
mov rcx, rax
mov qword [rsp + 0x30], rax
call sub.msvcrt.dll_wcsncpy
mov r9, qword [rsp + 0x30]
mov rbx, r9
jmp 0x42cdb1
movzx eax, word [rbp + 2]
cmp ax, 0x5c
je 0x42ced0
cmp ax, 0x2f
je 0x42ced0
mov r15d, 4
mov qword [rsp + 0xb8], 2
jmp 0x42cce0
movzx eax, word [rbp]
cmp ax, 0x2f
je 0x42cf12
cmp ax, 0x5c
je 0x42cf12
cmp rdi, 1
ja 0x42cc6a
jmp 0x42cd69