Function at 0x18001e178
Capabilities:
Create directory
Delete file
Get common file path

Disassembly:
mov r11, rsp
mov qword [r11 + 8], rbx
mov qword [r11 + 0x10], rbp
mov qword [r11 + 0x18], rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x40
lea rax, [r11 - 0x38]
lea rcx, [0x180036508]
mov qword [r11 - 0x30], rax
lea rax, [r11 - 0x38]
mov qword [r11 - 0x38], rax
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov ebp, 0x12
lea r8, [rsp + 0x30]
lea rdx, [0x1800368c8]
lea rcx, [0x180036800]
xor edi, edi
xor r9d, r9d
mov dword [rsp + 0x28], ebp
mov ebx, eax
mov dword [rsp + 0x20], edi
call fcn.18001537c
lea r8, [rsp + 0x30]
lea rdx, [0x1800368f0]
lea rcx, [0x180036800]
xor r9d, r9d
mov dword [rsp + 0x28], ebp
mov esi, eax
mov dword [rsp + 0x20], edi
call fcn.18001537c
mov rcx, qword [0x1800339a8]
lea r8, [rbx + rbx + 0x36]
xor edx, edx
add esi, eax
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
cmp rax, rdi
mov rbp, rax
je 0x18001e27d
add rbx, rbx
lea rdx, [0x180036508]
mov rcx, rax
mov r8, rbx
call sub.ntdll.dll_memcpy
lea rcx, [rbx + rbp]
lea rdx, [0x180036858]
call qword [sym.imp.KERNEL32.dll_lstrcpyW]
lea r8, [rsp + 0x30]
lea rdx, [0x180036928]
xor r9d, r9d
mov rcx, rbp
mov dword [rsp + 0x28], 0x10
mov dword [rsp + 0x20], edi
call fcn.18001537c
mov rcx, qword [0x1800339a8]
mov r8, rbp
xor edx, edx
add esi, eax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rcx, qword [0x1800339a8]
xor edx, edx
mov r8d, 0x20c
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
cmp rax, rdi
mov rbx, rax
je 0x18001e30e
xor r9d, r9d
xor r8d, r8d
xor ecx, ecx
lea edx, [r9 + 0x21]
mov qword [rsp + 0x20], rax
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
cmp eax, edi
jne 0x18001e2fc
mov ebp, 0x11
lea r8, [rsp + 0x30]
lea rdx, [0x180036940]
xor r9d, r9d
mov rcx, rbx
mov dword [rsp + 0x28], ebp
mov dword [rsp + 0x20], edi
call fcn.18001537c
lea r8, [rsp + 0x30]
lea rdx, [0x180036968]
xor r9d, r9d
mov rcx, rbx
mov dword [rsp + 0x28], ebp
add esi, eax
mov dword [rsp + 0x20], edi
call fcn.18001537c
add esi, eax
mov rcx, qword [0x1800339a8]
mov r8, rbx
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
lea rcx, [0x180036a48]
call fcn.180027804
cmp rax, rdi
mov rbx, rax
je 0x18001e3e6
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_lstrlenW]
mov rcx, qword [0x1800339a8]
xor edx, edx
add eax, 1
lea r8, [rax + rax + 0x42]
call qword [sym.imp.KERNEL32.dll_HeapAlloc]
cmp rax, rdi
mov rbp, rax
je 0x18001e3d4
lea r8, [0x180036b80]
mov rdx, rbx
mov rcx, rax
call qword [sym.imp.SHLWAPI.dll_PathCombineW]
lea r8, [rsp + 0x30]
lea rdx, [0x180036bc0]
xor r9d, r9d
mov rcx, rbp
mov dword [rsp + 0x28], 0x13
mov dword [rsp + 0x20], edi
call fcn.18001537c
lea r8, [0x180036b20]
mov rdx, rbx
mov rcx, rbp
add esi, eax
call qword [sym.imp.SHLWAPI.dll_PathCombineW]
lea r8, [rsp + 0x30]
lea rdx, [0x180036bc0]
xor r9d, r9d
mov rcx, rbp
mov dword [rsp + 0x28], 0x14
mov dword [rsp + 0x20], edi
call fcn.18001537c
mov rcx, qword [0x1800339a8]
mov r8, rbp
xor edx, edx
add esi, eax
call qword [sym.imp.KERNEL32.dll_HeapFree]
mov rcx, qword [0x1800339a8]
mov r8, rbx
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
cmp esi, edi
je 0x18001e53b
mov rcx, qword [0x180033a30]
mov r12, qword [rsp + 0x30]
call fcn.1800087b4
cmp rax, rdi
mov rbx, rax
je 0x18001e412
xor edx, edx
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
lea r13, [0x1800369f8]
lea r14, [0x1800369d0]
lea r15, [0x180036988]
lea rdx, [0x1800369b0]
mov rsi, r12
mov r12, qword [r12]
mov rbp, rdi
mov rax, qword [rsi + 8]
mov rcx, qword [rsi]
mov r8, rdi
mov qword [rax], rcx
mov qword [rcx + 8], rax
mov eax, dword [rsi + 0x18]
sub eax, 0x10
je 0x18001e4cd
sub eax, 1
je 0x18001e4ae
sub eax, 1
je 0x18001e496
sub eax, 1
je 0x18001e47e
cmp eax, 1
jne 0x18001e4d4
mov rcx, r13
mov rbp, r13
call qword [sym.imp.KERNEL32.dll_lstrlenW]
sub eax, 3
movsxd rcx, eax
lea r8, [r13 + rcx*2]
jmp 0x18001e4d4
mov rcx, r14
mov rbp, r14
call qword [sym.imp.KERNEL32.dll_lstrlenW]
sub eax, 3
movsxd rcx, eax
lea r8, [r14 + rcx*2]
jmp 0x18001e4d4
mov rcx, r15
mov rbp, r15
call qword [sym.imp.KERNEL32.dll_lstrlenW]
sub eax, 3
movsxd rcx, eax
lea r8, [r15 + rcx*2]
jmp 0x18001e4d4
mov rcx, rdx
mov rbp, rdx
call qword [sym.imp.KERNEL32.dll_lstrlenW]
sub eax, 3
movsxd rcx, eax
lea rax, [0x1800369b0]
lea r8, [rax + rcx*2]
jmp 0x18001e4d4
lea rbp, [0x180036a30]
cmp rbx, rdi
je 0x18001e4f1
mov qword [rsp + 0x20], r8
mov r8d, dword [rsi + 0x24]
lea rdx, [rsi + 0x28]
mov r9, rbp
mov rcx, rbx
call fcn.180008848
lea rcx, [rsi + 0x28]
call qword [sym.imp.KERNEL32.dll_DeleteFileW]
mov rcx, qword [0x1800339a8]
mov r8, rsi
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
lea r11, [rsp + 0x30]
lea rdx, [0x1800369b0]
cmp r12, r11
jne 0x18001e42e
cmp rbx, rdi
je 0x18001e540
mov rcx, qword [0x1800339a8]
mov r8, rbx
xor edx, edx
call qword [sym.imp.KERNEL32.dll_HeapFree]
jmp 0x18001e540
mov edi, 2
lea r11, [rsp + 0x40]
mov eax, edi
mov rbx, qword [r11 + 0x30]
mov rbp, qword [r11 + 0x38]
mov rsi, qword [r11 + 0x40]
mov rsp, r11
pop r15
pop r14
pop r13
pop r12
pop rdi
ret