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

Disassembly:
push r15
push r14
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x88
mov rsi, r8
mov rax, qword [0x1404a7eb8]
xor rax, rsp
mov qword [rsp + 0x80], rax
lea rcx, [rsp + 0x40]
call fcn.1402750d0
test rsi, rsi
je 0x140275740
movzx eax, byte [rsi]
movzx ecx, byte [rsi + 1]
mov edx, eax
xor dl, 0x5c
mov r8d, ecx
xor r8b, 0x5c
or r8b, dl
jne 0x14027571d
lea rcx, [rsp + 0x48]
mov rdx, rsi
call fcn.1402750d0
mov rsi, qword [rsp + 0x48]
mov rcx, rsi
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov ebx, 2
cmp eax, 0xffffffff
je 0x1402758b1
test eax, 0x400
je 0x140275712
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0x2000000
mov dword [rsp + 0x20], 3
mov rcx, rsi
xor edx, edx
mov r8d, 7
xor r9d, r9d
call qword [sym.imp.KERNEL32.dll_CreateFileW]
cmp rax, 0xffffffffffffffff
je 0x1402758b1
mov rdi, rax
lea rdx, [rsp + 0x48]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileInformationByHandle]
mov ebp, eax
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test ebp, ebp
je 0x1402758b1
mov eax, dword [rsp + 0x48]
shr eax, 4
and eax, 1
jmp 0x1402758a6
cmp cl, 0x3a
jne 0x140275740
or al, 0x20
add al, 0x9f
cmp al, 0x19
ja 0x140275740
movzx eax, byte [rsi + 2]
cmp eax, 0x5c
je 0x140275683
cmp eax, 0x2f
je 0x140275683
lea rcx, [rsp + 0x48]
mov rdx, rsi
call fcn.1402790a0
mov rsi, qword [rsp + 0x48]
mov rdi, qword [rsp + 0x40]
mov rcx, rdi
call fcn.1402c1174
mov rbx, rax
mov rcx, rsi
call fcn.1402c1174
lea rcx, [rbx + rax]
lea r14, [rbx + rax]
add r14, 2
lea rax, [rcx*2 + 4]
test r14, r14
mov r15, 0xffffffffffffffff
cmovns r15, rax
mov rcx, r15
call fcn.14029fa30
mov rbx, rax
mov rcx, rax
xor edx, edx
mov r8, r15
call fcn.1402a4b90
mov rcx, rbx
mov rdx, r14
mov r8, rdi
call fcn.1402c574c
mov rcx, rbx
mov rdx, r14
call qword [sym.imp.api_ms_win_core_path_l1_1_0.dll_PathCchRemoveFileSpec]
test eax, eax
je 0x1402757d0
mov ecx, 5
cmp eax, 1
je 0x1402757f0
mov ecx, eax
jmp 0x1402757f0
mov dword [rsp + 0x20], 1
mov rcx, rbx
mov rdx, r14
mov r8, rbx
mov r9, rsi
call qword [sym.imp.api_ms_win_core_path_l1_1_0.dll_PathCchCombineEx]
mov ecx, eax
test eax, eax
je 0x14027580e
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov rcx, rbx
call fcn.14029f9fc
xor ebp, ebp
test rsi, rsi
jne 0x1402758f4
jmp 0x140275901
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x14027582d
test eax, 0x400
jne 0x140275834
shr eax, 4
and eax, 1
mov ebp, eax
jmp 0x14027589c
mov ebp, 5
jmp 0x14027589c
mov ebp, 5
mov qword [rsp + 0x30], 0
mov dword [rsp + 0x28], 0x2000000
mov dword [rsp + 0x20], 3
mov rcx, rbx
xor edx, edx
mov r8d, 7
xor r9d, r9d
call qword [sym.imp.KERNEL32.dll_CreateFileW]
cmp rax, 0xffffffffffffffff
je 0x14027589c
mov rdi, rax
lea rdx, [rsp + 0x48]
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetFileInformationByHandle]
mov ebp, eax
mov rcx, rdi
call qword [sym.imp.KERNEL32.dll_CloseHandle]
mov eax, dword [rsp + 0x48]
shr eax, 4
and eax, 1
test ebp, ebp
mov ebp, 5
cmovne ebp, eax
mov rcx, rbx
call fcn.14029f9fc
mov eax, ebp
xor ebx, ebx
cmp eax, 1
sete bl
or ebx, 2
mov rdi, qword [rsp + 0x40]
mov rcx, rdi
mov rdx, rsi
mov r8d, ebx
call qword [sym.imp.KERNEL32.dll_CreateSymbolicLinkW]
mov bpl, 1
test al, al
jne 0x1402758ef
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0x57
jne 0x14027593a
and ebx, 1
mov rcx, rdi
mov rdx, rsi
mov r8d, ebx
call qword [sym.imp.KERNEL32.dll_CreateSymbolicLinkW]
test al, al
setne bpl
test rsi, rsi
je 0x140275901
mov rcx, rsi
call fcn.14029f9fc
mov rdi, qword [rsp + 0x40]
test rdi, rdi
je 0x14027590e
mov rcx, rdi
call fcn.14029f9fc
mov rcx, qword [rsp + 0x80]
xor rcx, rsp
cmp rcx, qword [0x1404a7eb8]
jne 0x140275934
mov eax, ebp
add rsp, 0x88
pop rbx
pop rbp
pop rdi
pop rsi
pop r14
pop r15
ret
call fcn.14029fd30
int3
xor ebp, ebp
test rsi, rsi
jne 0x1402758f4
jmp 0x140275901