Function at 0x180017cf0
Capabilities:
Get common file path

Disassembly:
add rcx, 8
lea r8, [rcx + 0x40]
lea rdx, [rcx + 0x20]
jmp 0x18004d3a0
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, pe_nt_image_headers64
call fcn.180053730
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 0x18004d924
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 0x18004d470
mov rcx, qword [rbp - 0x10]
cmp rdi, rcx
ja 0x18004d498
mov qword [rbp - 0x10], rdi
lea rax, [rbp - 0x20]
cmp rdx, 0xf
cmova rax, r8
mov byte [rax + rdi], 0
jmp 0x18004d4df
sub rdi, rcx
mov rax, rdx
sub rax, rcx
cmp rdi, rax
ja 0x18004d4d0
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 0x18004d4df
mov r9, rdi
mov rdx, rdi
lea rcx, [rbp - 0x20]
call fcn.180019910
mov r15, qword [rsi + 0x10]
movabs rcx, 0x7fffffffffffffff
mov rax, rcx
sub rax, r15
cmp rax, 1
jb 0x18004d98e
cmp qword [rsi + 0x18], 0xf
jbe 0x18004d507
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 0x18004d5a1
mov rbx, r14
or rbx, 0xf
cmp rbx, rcx
jbe 0x18004d54c
mov rbx, rcx
add rax, 0x27
jmp 0x18004d576
cmp rbx, rdx
cmovb rbx, rdx
lea rcx, [rbx + 1]
test rcx, rcx
jne 0x18004d560
xor edi, edi
jmp 0x18004d59d
cmp rcx, 0x1000
jb 0x18004d595
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x18004d994
mov rcx, rax
call fcn.180053730
test rax, rax
je 0x18004d820
lea rdi, [rax + 0x27]
and rdi, 0xffffffffffffffe0
mov qword [rdi - 8], rax
jmp 0x18004d59d
call fcn.180053730
mov rdi, rax
mov qword [rbp - 0x40], rdi
mov qword [rbp - 0x30], r14
mov qword [rbp - 0x28], rbx
movzx ecx, word [0x18005ce04]
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.1800192c0
nop
mov rdx, qword [rbp - 0x28]
cmp rdx, 0xf
jbe 0x18004d61d
inc rdx
mov rcx, qword [rbp - 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18004d618
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
ja 0x18004d820
call fcn.180053728
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.180052b28
movaps xmm0, xmmword [rbp - 0x40]
movdqa xmmword [rbp - 0x40], xmm0
lea r8, [rbp - 0x40]
mov edx, eax
lea rcx, [rsp + 0x38]
call fcn.180018450
nop
mov dword [rsp + 0x30], 0xf
lea rcx, [rsp + 0x38]
cmp qword [rsp + 0x50], 7
cmova rcx, qword [rsp + 0x38]
call fcn.180052c64
mov rdx, rax
shr rdx, 0x20
test edx, edx
jne 0x18004d99a
test al, al
jne 0x18004d698
call qword [sym.imp.KERNEL32.dll_GetLastError]
cmp eax, 0xb7
je 0x18004d698
mov bl, 1
jmp 0x18004d69a
xor bl, bl
mov rdx, qword [rsp + 0x50]
cmp rdx, 7
jbe 0x18004d6df
lea rdx, [rdx*2 + 2]
mov rcx, qword [rsp + 0x38]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18004d6da
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x18004d6da
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.180053728
test bl, bl
jne 0x18004d924
mov r14, qword [r12 + 0x10]
movabs rcx, 0x7fffffffffffffff
mov rax, rcx
sub rax, r14
cmp rax, 1
jb 0x18004d98e
mov r15, r12
cmp qword [r12 + 0x18], 0xf
jbe 0x18004d715
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 0x18004d7ae
mov rdi, rsi
or rdi, 0xf
cmp rdi, rcx
jbe 0x18004d774
mov rdi, rcx
movabs rax, 0x8000000000000000
add rax, 0x27
mov rcx, rax
call fcn.180053730
test rax, rax
je 0x18004d820
lea rbx, [rax + 0x27]
and rbx, 0xffffffffffffffe0
mov qword [rbx - 8], rax
jmp 0x18004d7aa
cmp rdi, 0x16
mov ecx, 0x16
cmovb rdi, rcx
lea rcx, [rdi + 1]
test rcx, rcx
je 0x18004d7a7
cmp rcx, 0x1000
jb 0x18004d7a2
lea rax, [rcx + 0x27]
cmp rax, rcx
jbe 0x18004d994
jmp 0x18004d755
call fcn.180053730
mov rbx, rax
mov qword [rbp - 0x40], rbx
mov qword [rbp - 0x30], rsi
mov qword [rbp - 0x28], rdi
movzx ecx, word [0x18005ce04]
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.1800192c0
nop
mov rdx, qword [rbp - 0x28]
cmp rdx, 0xf
jbe 0x18004d82c
inc rdx
mov rcx, qword [rbp - 0x40]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18004d827
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x18004d827
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.180053728
mov rdx, r13
lea rcx, [rsp + 0x60]
call fcn.180017710
nop
lea rdx, [rbp - 0x20]
lea rcx, [rbp - 0x80]
call fcn.180017710
nop
mov rdx, r12
lea rcx, [rbp - 0x60]
call fcn.180017710
nop
mov ecx, 0x60
call fcn.180053730
mov rbx, rax
mov qword [rsp + 0x30], rax
mov qword [rbp - 0x40], rax
lea rdx, [rsp + 0x60]
mov rcx, rax
call fcn.180017710
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.180017710
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, [0x180052790]
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 0x18004d915
lea rcx, [rsp + 0x60]
call fcn.1800174b0
cmp dword [rbp + 8], edi
je 0x18004d909
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 0x18004d909
xorps xmm0, xmm0
movdqa xmmword [rbp], xmm0
mov bl, 1
jmp 0x18004d926
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 0x18004d964
inc rdx
mov rcx, qword [rbp - 0x20]
mov rax, rcx
cmp rdx, 0x1000
jb 0x18004d95f
add rdx, 0x27
mov rcx, qword [rcx - 8]
sub rax, rcx
add rax, 0xfffffffffffffff8
cmp rax, 0x1f
jbe 0x18004d95f
call qword [sym.imp.api_ms_win_crt_runtime_l1_1_0.dll__invalid_parameter_noinfo_noreturn]
int3
call fcn.180053728
movzx eax, bl
mov rcx, qword [rbp + 0x10]
xor rcx, rsp
call fcn.180053390
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.180018d30
int3