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

Disassembly:
push r15
push r14
push r13
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x88
mov rdi, rcx
mov rax, qword [0x1401c6b58]
xor rax, rsp
mov qword [rsp + 0x80], rax
call fcn.14011413c
mov esi, 0x1126
test al, al
jne 0x140114832
xorps xmm0, xmm0
lea r14, [rsp + 0x50]
movaps xmmword [r14], xmm0
mov qword [r14 + 0x10], 0
mov rcx, rdi
mov rdx, r14
call fcn.140114860
mov esi, eax
mov rcx, r14
call fcn.140114921
mov ebx, eax
mov rcx, r14
mov rdx, r14
call fcn.140114988
mov byte [rsp + 0x33], bl
test bl, bl
jne 0x1401145e6
test sil, sil
jne 0x1401145e6
mov dword [rsp + 0x34], 0x7b
test al, al
je 0x14011481d
cmp byte [rsp + 0x33], 0
jne 0x1401146a0
lea rdx, [0x1401a1060]
lea rsi, [rsp + 0x38]
mov rcx, rsi
call fcn.140001b50
movzx r8d, byte [rsp + 0x50]
test r8b, 1
je 0x14011461d
mov r8, qword [rsp + 0x58]
mov rdx, qword [rsp + 0x60]
jmp 0x140114625
shr r8d, 1
lea rdx, [rsp + 0x52]
mov rcx, rsi
call fcn.14002e8a2
mov bl, byte [rax]
mov sil, byte [rax + 1]
movzx edi, word [rax + 2]
mov ecx, dword [rax + 0xc]
mov dword [rsp + 0x78], ecx
mov rcx, qword [rax + 4]
mov qword [rsp + 0x70], rcx
mov r14, qword [rax + 0x10]
xorps xmm0, xmm0
movups xmmword [rax], xmm0
mov qword [rax + 0x10], 0
test byte [rsp + 0x50], 1
je 0x14011466a
mov rcx, qword [rsp + 0x60]
call fcn.140148278
mov byte [rsp + 0x50], bl
mov byte [rsp + 0x51], sil
mov word [rsp + 0x52], di
mov rax, qword [rsp + 0x70]
mov qword [rsp + 0x54], rax
mov eax, dword [rsp + 0x78]
mov dword [rsp + 0x5c], eax
mov qword [rsp + 0x60], r14
test byte [rsp + 0x38], 1
je 0x1401146a0
mov rcx, qword [rsp + 0x48]
call fcn.140148278
mov r15, 0xffffffffffffffff
lea r12, [rsp + 0x52]
xor ebx, ebx
lea r13, [rsp + 0x70]
lea rdi, [rsp + 0x38]
lea rsi, [rsp + 0x50]
mov rbp, qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
mov qword [rsp + 0x20], r13
mov rcx, rdi
mov rdx, rsi
xor r8d, r8d
mov r9, r15
call fcn.14002eab2
test byte [rsp + 0x50], 1
je 0x1401146eb
mov rcx, qword [rsp + 0x60]
call fcn.140148278
mov rcx, qword [rsp + 0x48]
mov qword [rsp + 0x60], rcx
movups xmm0, xmmword [rsp + 0x38]
movaps xmmword [rsp + 0x50], xmm0
test byte [rsp + 0x50], 1
cmove rcx, r12
call rbp
cmp eax, 0xffffffff
je 0x14011471e
bt eax, 0xa
jae 0x1401147ac
jmp 0x140114815
mov r14, rdi
mov rdi, rbp
mov rbp, r13
xor r13d, r13d
call qword [sym.imp.KERNEL32.dll_GetLastError]
lea ecx, [rax - 2]
cmp ecx, 2
jb 0x140114799
cmp eax, 0x7b
je 0x140114799
test bl, 1
sete dl
or dl, byte [rsp + 0x33]
jne 0x14011478d
movzx edx, byte [rsp + 0x50]
test dl, 1
je 0x14011475f
mov rdx, qword [rsp + 0x58]
mov r8, qword [rsp + 0x60]
jmp 0x140114764
shr edx, 1
mov r8, r12
test rdx, rdx
je 0x14011478d
add rdx, rdx
test rdx, rdx
je 0x14011478d
lea r9, [rdx - 2]
cmp word [r8 + rdx - 2], 0x5c
mov rdx, r9
jne 0x14011476c
mov r13d, 2
cmp r9, 6
je 0x140114799
mov r13d, 1
mov edx, eax
mov dword [rsp + 0x34], eax
cmp ecx, 2
jb 0x1401147a3
cmp eax, 0x7b
jne 0x1401147f3
mov r13, rbp
mov rbp, rdi
mov rdi, r14
movzx eax, byte [rsp + 0x50]
test al, 1
je 0x1401147c1
mov rax, qword [rsp + 0x58]
mov rcx, qword [rsp + 0x60]
jmp 0x1401147c6
shr eax, 1
mov rcx, r12
mov r15, 0xffffffffffffffff
mov bl, 1
test rax, rax
je 0x140114801
add rax, rax
test rax, rax
je 0x140114801
lea rdx, [rax - 2]
cmp word [rcx + rax - 2], 0x5c
mov rax, rdx
jne 0x1401147d7
sar rdx, 1
mov r15, rdx
jmp 0x140114801
test r13d, r13d
jne 0x140114858
mov r13, rbp
mov rbp, rdi
mov rdi, r14
cmp r15, 2
ja 0x1401146c4
mov dword [rsp + 0x34], 0x1126
jmp 0x14011481d
mov dword [rsp + 0x34], 0
test byte [rsp + 0x50], 1
je 0x14011482e
mov rcx, qword [rsp + 0x60]
call fcn.140148278
mov esi, dword [rsp + 0x34]
mov rcx, qword [rsp + 0x80]
xor rcx, rsp
call fcn.140148650
mov eax, esi
add rsp, 0x88
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r13
pop r14
pop r15
ret
cmp r13d, 2
je 0x14011480b
jmp 0x14011481d