Function at 0x14002a5a0
Capabilities:
Check if file exists
Create directory
Get file attributes

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
push rsi
push rdi
push r14
sub rsp, 0x50
mov rax, qword [0x14007f080]
xor rax, rsp
mov qword [rsp + 0x40], rax
mov rdi, r8
xor r14d, r14d
mov dword [rsp + 0x28], r14d
mov rcx, r8
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x14002a86b
call fcn.140001a70
mov rcx, rax
test rax, rax
je 0x14002a8a1
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x30], rax
call fcn.140001a70
mov rcx, rax
test rax, rax
je 0x14002a8ac
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x38], rax
lea rsi, [r14 - 1]
test rdi, rdi
jne 0x14002a62c
mov r8d, r14d
jmp 0x14002a63b
mov r8, rsi
nop
inc r8
cmp word [rdi + r8*2], 0
jne 0x14002a630
mov rdx, rdi
lea rcx, [rsp + 0x30]
call fcn.140002da0
mov rbx, qword [rsp + 0x30]
movsxd rbp, dword [rbx - 0x10]
test ebp, ebp
js 0x14002a896
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, ebp
or eax, ecx
jge 0x14002a67b
mov edx, ebp
lea rcx, [rsp + 0x30]
call fcn.140002b00
mov rbx, qword [rsp + 0x30]
lea eax, [rbp + 1]
movsxd rdx, eax
mov rcx, rbx
call fcn.14004b7b4
cmp ebp, dword [rbx - 0xc]
jg 0x14002a896
mov dword [rbx - 0x10], ebp
mov word [rbx + rbp*2], r14w
cmp dword [rbx - 0x10], 0
jl 0x14002a7fa
lea rdx, [0x14006ed20]
mov rcx, rbx
call fcn.1400407c8
test rax, rax
je 0x14002a7fa
sub rax, rbx
sar rax, 1
cmp eax, esi
je 0x14002a7fa
mov qword [rsp + 0x20], r14
call fcn.140001a70
mov rcx, rax
test rax, rax
je 0x14002a88b
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x20], rax
test rdi, rdi
je 0x14002a71d
cmp rdi, 0x10000
jae 0x14002a70c
movzx edx, di
lea rcx, [rsp + 0x20]
call fcn.140002950
jmp 0x14002a72e
mov r8, rsi
nop
inc r8
cmp word [rdi + r8*2], 0
jne 0x14002a710
jmp 0x14002a720
mov r8d, r14d
mov rdx, rdi
lea rcx, [rsp + 0x20]
call fcn.140002da0
nop
mov dword [rsp + 0x28], 1
mov rdx, rsi
nop dword [rax]
inc rdx
cmp word [rdi + rdx*2], 0
jne 0x14002a740
test rdx, rdx
je 0x14002a782
nop
movzx eax, word [rdi + rdx*2]
cmp ax, 0x5c
je 0x14002a768
cmp ax, 0x2f
je 0x14002a768
sub rdx, 1
jne 0x14002a750
jmp 0x14002a782
test edx, edx
jle 0x14002a782
mov rax, qword [rsp + 0x20]
mov r8d, dword [rax - 0x10]
sub r8d, edx
lea rcx, [rsp + 0x20]
call fcn.140006300
mov rdx, qword [rsp + 0x20]
lea rdi, [rdx - 0x18]
add rbx, 0xffffffffffffffe8
cmp rdi, rbx
je 0x14002a7e0
cmp dword [rbx + 0x10], 0
jl 0x14002a7d1
mov rax, qword [rbx]
cmp qword [rdi], rax
jne 0x14002a7d1
mov rcx, rdi
call fcn.140004a00
mov rbp, rax
mov ecx, esi
lock xadd dword [rbx + 0x10], ecx
sub ecx, 1
jg 0x14002a7c6
mov rcx, qword [rbx]
mov r8, qword [rcx]
mov rdx, rbx
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
lea rax, [rbp + 0x18]
mov qword [rsp + 0x30], rax
jmp 0x14002a7e0
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x30]
call fcn.140002da0
nop
mov eax, esi
lock xadd dword [rdi + 0x10], eax
sub eax, 1
jg 0x14002a81f
mov rcx, qword [rdi]
mov rax, qword [rcx]
mov rdx, rdi
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
jmp 0x14002a81f
test rdi, rdi
je 0x14002a80f
mov rax, rsi
inc rax
cmp word [rdi + rax*2], 0
jne 0x14002a802
mov r14d, eax
mov r8d, r14d
mov rdx, rdi
lea rcx, [rsp + 0x30]
call fcn.140002da0
xor r8d, r8d
mov rdx, qword [rsp + 0x30]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHCreateDirectoryExW]
nop
mov rdx, qword [rsp + 0x38]
add rdx, 0xffffffffffffffe8
mov eax, esi
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x14002a84f
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x30]
add rdx, 0xffffffffffffffe8
lock xadd dword [rdx + 0x10], esi
sub esi, 1
jg 0x14002a86b
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rcx, qword [rsp + 0x40]
xor rcx, rsp
call fcn.14003f1d0
mov rbx, qword [rsp + 0x70]
mov rbp, qword [rsp + 0x78]
add rsp, 0x50
pop r14
pop rdi
pop rsi
ret
mov ecx, 0x80004005
call fcn.1400018b0
nop
mov ecx, 0x80070057
call fcn.1400018b0
nop
mov ecx, 0x80004005
call fcn.1400018b0
nop
mov ecx, 0x80004005
call fcn.1400018b0
int3