Function at 0x180017b60
Capabilities:
Get common file path

Disassembly:
add rcx, 8
lea r8, [rcx + 0x40]
lea rdx, [rcx + 0x20]
jmp 0x18004d220
mov qword [rsp + 0x20], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x20]
sub rsp, 0x120
mov rax, qword [0x180068040]
xor rax, rsp
mov qword [rbp + 0x10], rax
mov r12, r8
mov rsi, rdx
mov r13, rcx
xor r14d, r14d
mov dword [rsp + 0x30], r14d
xorps xmm0, xmm0
movups xmmword [rbp - 0x20], xmm0
mov qword [rbp - 0x10], r14
mov qword [rbp - 8], r14
mov ecx, 0x110
call fcn.180052e70
mov rbx, rax
mov qword [rbp - 0x20], rax
mov qword [rbp - 0x10], 0x104
mov qword [rbp - 8], 0x10f
xor edx, edx
mov r8d, 0x104
mov rcx, rax
call sub.VCRUNTIME140.dll_memset
mov byte [rbx + 0x104], r14b
lea rax, [rbp - 0x20]
cmp qword [rbp - 8], 0xf
cmova rax, qword [rbp - 0x20]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
mov edx, 0x1a
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetFolderPathA]
test eax, eax
jne 0x18004d7a4
lea rax, [rbp - 0x20]
mov r8, qword [rbp - 0x20]
mov rdx, qword [rbp - 8]
cmp rdx, 0xf
cmova rax, r8
mov rdi, 0xffffffffffffffff
nop dword [rax + rax]
inc rdi
cmp byte [rax + rdi], 0
jne 0x18004d2f0
mov rcx, qword [rbp - 0x10]
cmp rdi, rcx
ja 0x18004d318
mov qword [rbp - 0x10], rdi
lea rax, [rbp - 0x20]
cmp rdx, 0xf
cmova rax, r8
mov byte [rax + rdi], 0
jmp 0x18004d35f
sub rdi, rcx
mov rax, rdx
sub rax, rcx
cmp rdi, rax
ja 0x18004d350
lea rax, [rcx + rdi]
mov qword [rbp - 0x10], rax
lea rbx, [rbp - 0x20]
cmp rdx, 0xf
cmova rbx, r8
add rbx, rcx
mov r8, rdi
xor edx, edx
mov rcx, rbx
call sub.VCRUNTIME140.dll_memset
mov byte [rbx + rdi], 0
jmp 0x18004d35f
mov r9, rdi
mov rdx, rdi
lea rcx, [rbp - 0x20]
call fcn.180019780
mov r15, qword [rsi + 0x10]
movabs rcx, 0x7fffffffffffffff
mov rax, rcx
sub rax, r15
cmp rax, 1
jb 0x18004d80e
cmp qword [rsi + 0x18], 0xf
jbe 0x18004d387
mov rsi, qword [rsi]
xorps xmm0, xmm0
movups xmmword [rbp - 0x40], xmm0
mov qword [rbp - 0x30], r14
mov qword [rbp - 0x28], r14
lea r14, [r15 + 1]
mov ebx, 0xf
lea rdi, [rbp - 0x40]
movabs rax, 0x8000000000000000
mov edx, 0x16
cmp r14, rbx
jbe 0x18004d421
mov rbx, r14
or rbx, 0xf
cmp rbx, rcx
jbe 0x18004d3cc
mov rbx, rcx
add rax, 0x27
jmp 0x18004d3f6
cmp rbx, rdx
cmovb rbx, rdx
lea rcx, [rbx + 1]
test rcx, rcx
jne 0x18004d3e0
xor edi, edi
jmp 0x18004d41d
cmp rcx, 0x1000
jb 0x18004d415
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x18004d814
mov rcx, rax
call fcn.180052e70
test rax, rax
je 0x18004d6a0
lea rdi, [rax + 0x27]
and rdi, 0xffffffffffffffe0
mov qword [rdi - 8], rax
jmp 0x18004d41d
call fcn.180052e70
mov rdi, rax
mov qword [rbp - 0x40], rdi
mov qword [rbp - 0x30], r14
mov qword [rbp - 0x28], rbx
movzx ecx, word [0x18005cca4]
mov byte [rdi], cl
lea rcx, [rdi + 1]
mov r8, r15
mov rdx, rsi
call sub.VCRUNTIME140.dll_memcpy
mov byte [rdi + r14], 0
lea rdx, [rbp - 0x40]
cmp qword [rbp - 0x28], 0xf
cmova rdx, qword [rbp - 0x40]
mov r8, qword [rbp - 0x30]
lea rcx, [rbp - 0x20]
call fcn.180019130
nop
mov rdx, qword [rbp - 0x28]
cmp rdx, 0xf
jbe 0x18004d49d
inc rdx
mov rcx, qword [rbp - 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18004d498
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18004d6a0
call fcn.180052e68
lea rax, [rbp - 0x20]
cmp qword [rbp - 8], 0xf
cmova rax, qword [rbp - 0x20]
mov qword [rbp - 0x40], rax
mov rax, qword [rbp - 0x10]
mov qword [rbp - 0x38], rax
call fcn.180052268
movaps xmm0, xmmword [rbp - 0x40]
movdqa xmmword [rbp - 0x40], xmm0
lea r8, [rbp - 0x40]
mov edx, eax
lea rcx, [rsp + 0x38]
call fcn.1800182c0
nop
mov dword [rsp + 0x30], 0xf
lea rcx, [rsp + 0x38]
cmp qword [rsp + 0x50], 7
cmova rcx, qword [rsp + 0x38]
call fcn.1800523a4
mov rdx, rax
shr rdx, 0x20
test edx, edx
jne 0x18004d81a
test al, al
jne 0x18004d518
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x18004d518
mov bl, 1
jmp 0x18004d51a
xor bl, bl
mov rdx, qword [rsp + 0x50]
cmp rdx, 7
jbe 0x18004d55f
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x38]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18004d55a
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x18004d55a
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.180052e68
test bl, bl
jne 0x18004d7a4
mov r14, qword [r12 + 0x10]
movabs rcx, 0x7fffffffffffffff
mov rax, rcx
sub rax, r14
cmp rax, 1
jb 0x18004d80e
mov r15, r12
cmp qword [r12 + 0x18], 0xf
jbe 0x18004d595
mov r15, qword [r12]
xorps xmm0, xmm0
movups xmmword [rbp - 0x40], xmm0
xor eax, eax
mov qword [rbp - 0x30], rax
mov qword [rbp - 0x28], rax
lea rsi, [r14 + 1]
mov edi, 0xf
lea rbx, [rbp - 0x40]
cmp rsi, rdi
jbe 0x18004d62e
mov rdi, rsi
or rdi, 0xf
cmp rdi, rcx
jbe 0x18004d5f4
mov rdi, rcx
movabs rax, 0x8000000000000000
add rax, 0x27
mov rcx, rax
call fcn.180052e70
test rax, rax
je 0x18004d6a0
lea rbx, [rax + 0x27]
and rbx, 0xffffffffffffffe0
mov qword [rbx - 8], rax
jmp 0x18004d62a
cmp rdi, 0x16
mov ecx, 0x16
cmovb rdi, rcx
lea rcx, [rdi + 1]
test rcx, rcx
je 0x18004d627
cmp rcx, 0x1000
jb 0x18004d622
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x18004d814
jmp 0x18004d5d5
call fcn.180052e70
mov rbx, rax
mov qword [rbp - 0x40], rbx
mov qword [rbp - 0x30], rsi
mov qword [rbp - 0x28], rdi
movzx ecx, word [0x18005cca4]
mov byte [rbx], cl
lea rcx, [rbx + 1]
mov r8, r14
mov rdx, r15
call sub.VCRUNTIME140.dll_memcpy
mov byte [rbx + rsi], 0
lea rdx, [rbp - 0x40]
cmp qword [rbp - 0x28], 0xf
cmova rdx, qword [rbp - 0x40]
mov r8, qword [rbp - 0x30]
lea rcx, [rbp - 0x20]
call fcn.180019130
nop
mov rdx, qword [rbp - 0x28]
cmp rdx, 0xf
jbe 0x18004d6ac
inc rdx
mov rcx, qword [rbp - 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18004d6a7
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x18004d6a7
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.180052e68
mov rdx, r13
lea rcx, [rsp + 0x60]
call fcn.180017600
nop
lea rdx, [rbp - 0x20]
lea rcx, [rbp - 0x80]
call fcn.180017600
nop
mov rdx, r12
lea rcx, [rbp - 0x60]
call fcn.180017600
nop
mov ecx, 0x60
call fcn.180052e70
mov rbx, rax
mov qword [rsp + 0x30], rax
mov qword [rbp - 0x40], rax
lea rdx, [rsp + 0x60]
mov rcx, rax
call fcn.180017600
nop
xor edi, edi
movaps xmm0, xmmword [rbp - 0x80]
movups xmmword [rbx + 0x20], xmm0
movaps xmm1, xmmword [rbp - 0x70]
movups xmmword [rbx + 0x30], xmm1
mov qword [rbp - 0x70], rdi
mov qword [rbp - 0x68], 0xf
mov byte [rbp - 0x80], dil
lea rcx, [rbx + 0x40]
lea rdx, [rbp - 0x60]
call fcn.180017600
nop
mov qword [rbp - 0x40], rbx
lea rax, [rbp + 8]
mov qword [rsp + 0x28], rax
mov dword [rsp + 0x20], edi
mov r9, rbx
lea r8, [0x180051db0]
xor edx, edx
xor ecx, ecx
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__beginthreadex]
mov qword [rbp], rax
test rax, rax
je 0x18004d795
lea rcx, [rsp + 0x60]
call fcn.1800173b0
cmp dword [rbp + 8], edi
je 0x18004d789
movaps xmm0, xmmword [rbp]
movdqa xmmword [rbp - 0x40], xmm0
lea rcx, [rbp - 0x40]
call qword [sym.imp.MSVCP140.dll__Thrd_detach]
test eax, eax
jne 0x18004d789
xorps xmm0, xmm0
movdqa xmmword [rbp], xmm0
mov bl, 1
jmp 0x18004d7a6
mov ecx, 1
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
nop
mov dword [rbp + 8], edi
mov ecx, 6
call qword [sym.imp.MSVCP140.dll_void___cdecl_std::_Throw_Cpp_error_int_]
nop
xor bl, bl
mov rdx, qword [rbp - 8]
cmp rdx, 0xf
jbe 0x18004d7e4
inc rdx
mov rcx, qword [rbp - 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18004d7df
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x18004d7df
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.180052e68
movzx eax, bl
mov rcx, qword [rbp + 0x10]
xor rcx, rsp
call fcn.180052ad0
mov rbx, qword [rsp + 0x178]
add rsp, 0x120
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
call fcn.180012cf0
nop
call fcn.180012c50
nop
lea r8, [rsp + 0x38]
lea rcx, str.create_directory
call fcn.180018ba0
int3