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

Disassembly:
push rbx
push rbp
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x30
mov rbx, rcx
call fcn.1400a2364
mov rcx, rax
test rax, rax
je 0x140030b3f
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x80], rax
xor ebp, ebp
lea r15, [rbp - 1]
test rbx, rbx
je 0x14003092b
cmp rbx, 0x10000
jae 0x14003091b
movzx edx, bx
lea rcx, [rsp + 0x80]
call fcn.14000d610
jmp 0x140030941
mov rax, r15
nop
inc rax
cmp word [rbx + rax*2], bp
jne 0x140030920
jmp 0x14003092d
mov eax, ebp
mov r8d, eax
mov rdx, rbx
lea rcx, [rsp + 0x80]
call fcn.14000df90
nop
mov dword [rsp + 0x78], ebp
mov rbx, qword [rsp + 0x80]
lea rcx, [rbx - 0x18]
call fcn.14000de80
add rax, 0x18
mov qword [rsp + 0x88], rax
lea rdx, [rsp + 0x78]
lea rcx, [rsp + 0x88]
call fcn.140034860
test eax, eax
je 0x140030988
cmp dword [rsp + 0x78], 0
je 0x140030b14
mov r12b, 1
jmp 0x1400309a7
lea r8, [0x1402ee008]
lea rcx, [rsp + 0x80]
call fcn.140021fb0
xor r12b, r12b
mov rbx, qword [rsp + 0x80]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x1400309c3
test al, 0x10
je 0x1400309c3
mov ebp, 1
jmp 0x140030b14
mov edi, 7
mov eax, 2
test r12b, r12b
cmovne edi, eax
lea r14, [rbx - 0x18]
test edi, edi
js 0x140030b07
cmp edi, dword [r14 + 8]
jge 0x140030b07
movsxd rax, edi
lea rcx, [rbx + rax*2]
mov edx, 0x5c
call fcn.140241344
mov rcx, rax
test rax, rax
je 0x140030b07
sub rcx, rbx
sar rcx, 1
cmp ecx, 0xffffffff
je 0x140030b07
mov edx, dword [r14 + 8]
lea eax, [rdx - 1]
cmp ecx, eax
je 0x140030b07
test r12b, r12b
je 0x140030a33
cmp edi, 2
jne 0x140030a33
lea edi, [rcx + 1]
jmp 0x1400309d7
lea edi, [rcx + 1]
mov esi, ebp
test edi, edi
cmovns esi, edi
cmp esi, edx
jl 0x140030a54
mov rcx, r14
call fcn.14000de80
lea rbx, [rax + 0x18]
mov qword [rsp + 0x20], rbx
jmp 0x140030a8e
mov rcx, qword [r14]
test rcx, rcx
je 0x140030a67
mov rax, qword [rcx]
call qword [rax + 0x20]
test rax, rax
jne 0x140030a76
call fcn.1400a2364
nop
mov rdx, qword [rax]
mov rcx, rax
call qword [rdx + 0x20]
mov r9, rax
mov r8d, esi
mov rdx, rbx
lea rcx, [rsp + 0x20]
call fcn.140015720
mov rbx, qword [rsp + 0x20]
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x140030aa0
test al, 0x10
jne 0x140030aaf
xor edx, edx
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
je 0x140030ae3
lea rdx, [rbx - 0x18]
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jle 0x140030acd
mov rbx, qword [rsp + 0x80]
jmp 0x1400309d7
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rbx, qword [rsp + 0x80]
jmp 0x1400309d7
lea rdx, [rbx - 0x18]
mov eax, r15d
lock xadd dword [rdx + 0x10], eax
sub eax, 1
jg 0x140030afd
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rbx, qword [rsp + 0x80]
jmp 0x140030b14
xor edx, edx
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov ebp, eax
lea rdx, [rbx - 0x18]
lock xadd dword [rdx + 0x10], r15d
sub r15d, 1
jg 0x140030b2e
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
mov eax, ebp
add rsp, 0x30
pop r15
pop r14
pop r12
pop rdi
pop rsi
pop rbp
pop rbx
ret
mov ecx, 0x80004005
call fcn.1400080b0
int3