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

Disassembly:
mov rax, rsp
push rbp
push rsi
push rdi
lea rbp, [rax - 0x48]
sub rsp, 0x130
mov qword [rax + 8], rbx
mov qword [rax + 0x10], r12
xor r12d, r12d
mov qword [rax - 0x20], r14
mov esi, r12d
mov qword [rax - 0x28], r15
mov edi, r12d
mov r15, rcx
mov dword [rsp + 0x68], r12d
mov dword [rbp + 0x68], r12d
mov r14, rdx
mov dword [rbp + 0x60], r12d
mov qword [rsp + 0x60], r12
mov qword [rsp + 0x70], r12
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x14002919a
test al, 0x50
jne 0x14002919a
call fcn.140028c90
cmp eax, 1
je 0x140028fd2
lea esi, [r12 + 0x7e]
jmp 0x14002919f
mov rbx, qword [0x14010ce08]
mov rcx, rbx
call qword [fcn.1400017d0]
mov qword [rsp + 0x50], r12
lea rax, [rsp + 0x70]
mov qword [rsp + 0x48], rax
mov r9d, 2
lea rax, [rsp + 0x60]
mov r8d, 0x400
mov qword [rsp + 0x40], rax
mov rdx, r15
lea rax, [rbp + 0x60]
mov qword [rsp + 0x38], rax
lea ecx, [r9 - 1]
lea rax, [rbp + 0x68]
mov qword [rsp + 0x30], rax
lea rax, [rsp + 0x68]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], r12d
call rbx
mov edi, eax
test eax, eax
jne 0x140029044
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
jmp 0x14002919f
mov ecx, 0x23f0
call fcn.140029560
test eax, eax
jne 0x140029083
mov rcx, r15
call fcn.140027500
test eax, eax
je 0x140029083
call fcn.1400286f0
test eax, eax
jne 0x140029083
mov rdx, qword [rsp + 0x70]
mov r8, r14
mov rcx, qword [rsp + 0x60]
call fcn.1400288f0
mov edi, 1
jmp 0x14002919f
xor eax, eax
lea rcx, [rbp - 0x40]
xor edx, edx
mov qword [rbp - 0x68], rax
mov qword [rbp - 0x58], rax
mov qword [rbp - 0x50], rax
lea r8d, [rax + 0x58]
call fcn.140098cd0
or dword [rbp + 8], 0x1000
lea rax, [rbp - 0x68]
mov ecx, 0x23f0
mov qword [rbp - 0x18], rax
mov dword [rbp - 0x68], 0x20
mov qword [rbp - 0x60], r15
mov dword [rbp - 0x40], 0x58
mov dword [rbp - 0x10], 1
mov dword [rbp - 0x28], 2
mov dword [rbp - 0x24], 1
mov dword [rbp - 0x20], 1
call fcn.140029560
mov rdx, qword [rsp + 0x60]
mov r9, r14
lea rcx, [rbp - 0x40]
test eax, eax
jne 0x140029113
call fcn.140028a80
mov edi, eax
test eax, eax
jne 0x14002919f
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
jmp 0x14002919f
xor eax, eax
mov qword [rsp + 0x78], 0x20
mov qword [rbp - 0x80], rax
mov qword [rbp - 0x78], rax
mov qword [rbp - 0x70], rax
lea rax, [rsp + 0x78]
mov qword [rbp + 0x10], rax
mov dword [rbp - 0x80], 3
call fcn.140028a80
mov edi, eax
test eax, eax
jne 0x14002919f
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
mov ebx, 1
mov rax, qword [rbp + 0x10]
cmp dword [rax + 0xc], ebx
jb 0x14002919f
nop dword [rax + rax]
mov qword [rbp - 8], r12
lea rcx, [rbp - 0x40]
mov dword [rbp - 0x10], 1
mov r9, r14
mov dword [rax + 4], ebx
mov rdx, qword [rsp + 0x60]
call fcn.140028a80
mov edi, eax
test eax, eax
jne 0x14002919f
call qword [sym.imp.KERNEL32.dll_GetLastError]
mov esi, eax
inc ebx
mov rax, qword [rbp + 0x10]
cmp ebx, dword [rax + 0xc]
jbe 0x140029160
jmp 0x14002919f
mov esi, 2
mov r14, qword [rsp + 0x60]
mov r15, qword [rsp + 0x120]
mov r12, qword [rsp + 0x158]
test r14, r14
je 0x1400291d0
mov rbx, qword [0x14010ce28]
mov rcx, rbx
call qword [fcn.1400017d0]
xor edx, edx
mov rcx, r14
call rbx
mov r14, qword [rsp + 0x70]
test r14, r14
je 0x1400291ef
mov rbx, qword [0x14010cf50]
mov rcx, rbx
call qword [fcn.1400017d0]
mov rcx, r14
call rbx
mov r14, qword [rsp + 0x128]
mov rbx, qword [rsp + 0x150]
test edi, edi
jne 0x140029207
mov ecx, esi
jmp 0x140029209
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_SetLastError]
mov eax, edi
add rsp, 0x130
pop rdi
pop rsi
pop rbp
ret