Function at 0x140003fa0
Capabilities:
Check if file exists
Get common file path
Get file attributes
Get file system object information

Disassembly:
mov rax, rsp
push rdi
sub rsp, 0x590
mov qword [rsp + 0x58], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov rax, qword [0x14003b510]
xor rax, rsp
mov qword [rsp + 0x580], rax
xor esi, esi
mov qword [rsp + 0x40], rsi
mov qword [rsp + 0x48], rsi
mov qword [rsp + 0x38], rsi
lea rcx, [rsp + 0x40]
call qword [sym.imp.SHELL32.dll_SHGetDesktopFolder]
lea r8, [rsp + 0x48]
lea edx, [rsi + 0xa]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetSpecialFolderLocation]
mov rcx, qword [rsp + 0x40]
mov rax, qword [rcx]
lea rdx, [rsp + 0x38]
mov qword [rsp + 0x20], rdx
lea r9, [0x140030510]
xor r8d, r8d
mov rdx, qword [rsp + 0x48]
call qword [rax + 0x28]
mov rcx, qword [rsp + 0x40]
mov rax, qword [rcx]
lea r9, [rsp + 0x60]
xor r8d, r8d
mov rdx, qword [rsp + 0x48]
call qword [rax + 0x58]
mov qword [rsp + 0x30], rsi
mov rcx, qword [rsp + 0x38]
mov rax, qword [rcx]
lea r9, [rsp + 0x50]
xor edx, edx
mov r8d, 0xe0
call qword [rax + 0x20]
mov qword [rsp + 0x2c0], rsi
xor edx, edx
mov r8d, 0x2b0
lea rcx, [rsp + 0x2c8]
call fcn.140017030
mov dword [rsp + 0x170], esi
xor edx, edx
mov r8d, 0x114
lea rcx, [rsp + 0x174]
call fcn.140017030
mov rcx, qword [rsp + 0x50]
mov rax, qword [rcx]
xor r9d, r9d
lea r8, [rsp + 0x30]
lea edx, [rsi + 1]
call qword [rax + 0x18]
cmp eax, 1
je 0x140004251
nop dword [rax + rax]
mov dword [rsp + 0x20], 0x4009
mov r9d, 0x2b8
lea r8, [rsp + 0x2c0]
xor edx, edx
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.SHELL32.dll_SHGetFileInfoW]
mov rcx, qword [rsp + 0x38]
mov rax, qword [rcx]
lea r9, [rsp + 0x170]
xor r8d, r8d
mov rdx, qword [rsp + 0x30]
call qword [rax + 0x90]
mov rcx, qword [rsp + 0x38]
mov rax, qword [rcx]
lea r9, [rsp + 0x60]
mov r8d, 0x8000
mov rdx, qword [rsp + 0x30]
call qword [rax + 0x58]
mov qword [rsp + 0x2b0], 7
mov qword [rsp + 0x2a8], rsi
mov word [rsp + 0x298], si
xor eax, eax
or rcx, 0xffffffffffffffff
mov rdx, qword [rsp + 0x68]
mov rdi, rdx
repne scasw ax, word [rdi]
not rcx
lea r8, [rcx - 1]
lea rcx, [rsp + 0x290]
call fcn.140006d30
nop
lea rcx, [rsp + 0x298]
cmp qword [rsp + 0x2b0], 8
cmovae rcx, qword [rsp + 0x298]
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x140004219
test al, 0x10
je 0x1400041d8
mov r8d, 1
lea rdx, [0x140033a60]
lea rcx, [rsp + 0x290]
call fcn.140006bb0
mov rbx, qword [0x140042678]
lea r9, [rsp + 0x290]
mov r8, qword [rbx + 8]
mov rdx, rbx
lea rcx, [0x140042650]
call fcn.140006fe0
mov rdi, rax
mov edx, 1
lea rcx, [0x140042650]
call fcn.140007080
mov qword [rbx + 8], rdi
mov rcx, qword [rdi + 8]
mov qword [rcx], rdi
jmp 0x140004219
mov rbx, qword [0x140042720]
lea r9, [rsp + 0x290]
mov r8, qword [rbx + 8]
mov rdx, rbx
lea rcx, [0x1400426f8]
call fcn.140006fe0
mov rdi, rax
mov edx, 1
lea rcx, [0x1400426f8]
call fcn.140007080
mov qword [rbx + 8], rdi
mov rcx, qword [rdi + 8]
mov qword [rcx], rdi
cmp qword [rsp + 0x2b0], 8
jb 0x140004231
mov rcx, qword [rsp + 0x298]
call fcn.140016cb8
mov rcx, qword [rsp + 0x50]
mov rax, qword [rcx]
xor r9d, r9d
lea r8, [rsp + 0x30]
lea edx, [r9 + 1]
call qword [rax + 0x18]
cmp eax, 1
jne 0x1400040b0
mov rcx, qword [rsp + 0x580]
xor rcx, rsp
call fcn.140015ba0
lea r11, [rsp + 0x590]
mov rbx, qword [r11 + 0x10]
mov rsi, qword [r11 + 0x18]
mov rsp, r11
pop rdi
ret