Function at 0x1800012e0
Capabilities:
Create directory
Get common file path

Disassembly:
push rbp
push r14
push r15
lea rbp, [rsp - 0x600]
sub rsp, 0x700
mov rax, qword [section..data]
xor rax, rsp
mov qword [rbp + 0x5f0], rax
xor r15d, r15d
mov r14, rcx
test rcx, rcx
jne 0x180001318
xor eax, eax
jmp 0x1800015a0
xor edx, edx
lea rcx, [rbp + 0x3e0]
mov r8d, 0x20a
call fcn.180014970
xor edx, edx
lea rcx, [rbp - 0x40]
mov r8d, 0x414
call fcn.180014970
xorps xmm0, xmm0
lea rdx, [rbp + 0x3e0]
mov ecx, 0x105
movups xmmword [rbp - 0x80], xmm0
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
test eax, eax
je 0x18000159d
lea rcx, [rbp - 0x80]
call qword [sym.imp.ole32.dll_CoCreateGuid]
test eax, eax
jne 0x18000159d
mov qword [rsp + 0x738], rdi
lea r9, [rbp + 0x3e0]
lea r8, str._s_s
mov qword [rsp + 0x728], rbx
mov edx, 0x20a
mov qword [rsp + 0x20], r14
lea rcx, [rbp - 0x40]
call fcn.180001280
xorps xmm0, xmm0
lea r8, [rbp - 0x70]
xor eax, eax
lea rcx, [rbp - 0x40]
xor edx, edx
mov dword [rbp - 0x50], eax
movups xmmword [rbp - 0x70], xmm0
movups xmmword [rbp - 0x60], xmm0
call qword [sym.imp.KERNEL32.dll_GetFileAttributesExW]
test eax, eax
je 0x180001524
test byte [rbp - 0x70], 0x10
jne 0x180001524
xor edx, edx
mov qword [rsp + 0x730], rsi
mov r8d, 0x414
lea rcx, [rbp - 0x40]
call fcn.180014970
movzx eax, byte [rbp - 0x71]
movzx ecx, byte [rbp - 0x72]
movzx edx, byte [rbp - 0x73]
movzx r8d, byte [rbp - 0x74]
movzx r9d, byte [rbp - 0x75]
movzx r10d, byte [rbp - 0x76]
movzx r11d, byte [rbp - 0x77]
movzx ebx, byte [rbp - 0x78]
movzx edi, word [rbp - 0x7a]
movzx esi, word [rbp - 0x7c]
mov dword [rsp + 0x70], eax
mov eax, dword [rbp - 0x80]
mov dword [rsp + 0x68], ecx
lea rcx, [rbp - 0x40]
mov dword [rsp + 0x60], edx
mov edx, 0x104
mov dword [rsp + 0x58], r8d
lea r8, str._s_08X__04X__04X__02X_02X__02X_02X_02X_02X_02X_02X_
mov dword [rsp + 0x50], r9d
lea r9, [rbp + 0x3e0]
mov dword [rsp + 0x48], r10d
mov dword [rsp + 0x40], r11d
mov dword [rsp + 0x38], ebx
mov dword [rsp + 0x30], edi
mov dword [rsp + 0x28], esi
mov dword [rsp + 0x20], eax
call fcn.180001280
xor edx, edx
lea rcx, [rbp - 0x40]
call qword [sym.imp.KERNEL32.dll_CreateDirectoryW]
mov rsi, qword [rsp + 0x730]
test eax, eax
je 0x180001524
mov edx, 0x208
lea rcx, [rbp - 0x40]
call fcn.180005840
mov edx, 0x104
mov rcx, r14
mov rbx, rax
call fcn.180005840
mov rdi, rax
mov r8, 0xffffffffffffffff
nop dword [rax + rax]
inc r8
cmp word [r14 + r8*2], r15w
jne 0x1800014b0
mov eax, 0x208
sub eax, ebx
movsxd rbx, ebx
movsxd rcx, eax
lea rax, [rbp - 0x40]
add rcx, rcx
lea rax, [rax + rbx*2]
add r8, r8
je 0x180001518
test rax, rax
jne 0x1800014e9
call fcn.1800085fc
mov dword [rax], 0x16
jmp 0x180001513
cmp rcx, r8
jb 0x1800014fb
mov rdx, r14
mov rcx, rax
call fcn.180014d30
jmp 0x180001518
mov r8, rcx
xor edx, edx
mov rcx, rax
call fcn.180014970
call fcn.1800085fc
mov dword [rax], 0x22
call fcn.1800084c0
movsxd rax, edi
add rax, rbx
mov word [rbp + rax*2 - 0x40], r15w
mov edx, 0x208
lea rcx, [rbp - 0x40]
call fcn.180005840
mov rdi, rax
test eax, eax
jle 0x18000158d
lea ecx, [rax + 1]
movsxd rbx, ecx
mov ecx, 0x40
add rbx, rbx
mov rdx, rbx
call qword [sym.imp.KERNEL32.dll_GlobalAlloc]
mov r15, rax
test rax, rax
je 0x18000158d
movsxd r8, edi
add r8, r8
je 0x18000158d
mov rcx, rax
cmp rbx, r8
jb 0x180001573
lea rdx, [rbp - 0x40]
call fcn.180014d30
jmp 0x18000158d
mov r8, rbx
xor edx, edx
call fcn.180014970
call fcn.1800085fc
mov dword [rax], 0x22
call fcn.1800084c0
mov rbx, qword [rsp + 0x728]
mov rdi, qword [rsp + 0x738]
mov rax, r15
mov rcx, qword [rbp + 0x5f0]
xor rcx, rsp
call fcn.180002170
add rsp, 0x700
pop r15
pop r14
pop rbp
ret