Function at 0x180013890
Capabilities:
Check if file exists
Create directory

Disassembly:
mov rax, rsp
push rsi
push rdi
push r12
push r14
push r15
sub rsp, 0x170
mov qword [rsp + 0x60], 0xfffffffffffffffe
mov qword [rax + 0x10], rbx
mov qword [rax + 0x18], rbp
mov rax, qword [0x180143158]
xor rax, rsp
mov qword [rsp + 0x160], rax
mov rsi, rcx
lea rax, vtable._BaseModule::CAutoLocker.0
mov qword [rsp + 0x68], rax
lea r14, [rcx + 8]
mov qword [rsp + 0x70], r14
test r14, r14
je 0x1800138eb
mov rax, qword [r14]
mov rcx, r14
call qword [rax]
nop
xor edi, edi
mov r12d, edi
mov rcx, qword [rsi + 0x50]
mov r8, 0xffffffffffffffff
mov rax, r8
nop
inc rax
cmp word [rcx + rax*2], di
jne 0x180013900
inc eax
movsxd rbx, eax
mov eax, 2
mul rbx
cmovo rax, r8
mov rcx, rax
call fcn.180050fb4
mov rbp, rax
add rbx, rbx
mov r8, rbx
xor edx, edx
mov rcx, rax
call fcn.18009b770
mov r8, qword [rsi + 0x50]
shr rbx, 1
lea rax, [rbx - 1]
mov edx, 0x7ffffffe
cmp rax, rdx
ja 0x180013981
mov rcx, rbp
sub rdx, rbx
sub r8, rbp
lea rax, [rdx + rbx]
test rax, rax
je 0x180013973
movzx eax, word [r8 + rcx]
test ax, ax
je 0x180013973
mov word [rcx], ax
add rcx, 2
sub rbx, 1
jne 0x180013953
lea rax, [rcx - 2]
test rbx, rbx
cmovne rax, rcx
mov word [rax], di
mov rcx, rbp
call qword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
mov rcx, rbp
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
jne 0x1800139a5
xor r8d, r8d
mov rdx, rbp
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHCreateDirectoryExW]
mov rcx, rbp
call qword [sym.imp.SHLWAPI.dll_PathFileExistsW]
test eax, eax
je 0x180013ad8
xor eax, eax
mov qword [rsp + 0x78], rax
mov qword [rsp + 0x80], rax
lea rcx, [rsp + 0x78]
call qword [sym.imp.KERNEL32.dll_GetLocalTime]
xor edx, edx
mov r8d, reloc.OLEAUT32.dll_SetErrorInfo
lea rcx, [rsp + 0x90]
call fcn.18009b770
call qword [sym.imp.KERNEL32.dll_GetCurrentThreadId]
mov ebx, eax
call qword [sym.imp.KERNEL32.dll_GetCurrentProcessId]
movzx ecx, word [rsp + 0x84]
movzx edx, word [rsp + 0x82]
movzx r8d, word [rsp + 0x80]
movzx r10d, word [rsp + 0x7e]
movzx r11d, word [rsp + 0x7a]
movzx r9d, word [rsp + 0x78]
mov dword [rsp + 0x50], ebx
mov dword [rsp + 0x48], eax
mov dword [rsp + 0x40], ecx
mov dword [rsp + 0x38], edx
mov dword [rsp + 0x30], r8d
mov dword [rsp + 0x28], r10d
mov dword [rsp + 0x20], r11d
lea r8, str._04d__02d__02d__02d:_02d:_02d___d___d_
mov edx, 0x400
lea rcx, [rsp + 0x90]
call fcn.180013d50
lea rdx, [0x1800f48e0]
mov rcx, qword [rsi + 0x50]
call fcn.1800a29a0
mov rbx, rax
test rax, rax
je 0x180013ad8
mov r12d, 1
cmp dword [rsi + 0x58], edi
je 0x180013a93
lea r8, [rsp + 0x90]
lea rdx, str._r_n_Start_Log:_s__n
mov rcx, rax
call fcn.180013f60
mov dword [rsi + 0x58], edi
mov rax, qword [rsi + 0x40]
sub rax, qword [rsi + 0x38]
sar rax, 3
movsxd r15, eax
test eax, eax
jle 0x180013ac8
nop word [rax + rax]
mov rax, qword [rsi + 0x38]
mov rdx, qword [rax + rdi*8]
mov rcx, rbx
call fcn.180013f60
inc rdi
cmp rdi, r15
jl 0x180013ab0
mov rcx, rbx
call fcn.1800a2c58
mov rcx, rbx
call fcn.1800a2a38
test rbp, rbp
je 0x180013ae5
mov rcx, rbp
call fcn.180050b00
mov rcx, rsi
call fcn.180013760
nop
test r14, r14
je 0x180013afd
mov rdx, qword [r14]
mov rcx, r14
call qword [rdx + reloc.OLEAUT32.dll_VariantClear]
nop
mov eax, r12d
mov rcx, qword [rsp + 0x160]
xor rcx, rsp
call fcn.180050f90
lea r11, [rsp + 0x170]
mov rbx, qword [r11 + 0x38]
mov rbp, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rsi
ret