Function at 0x1400170c0
Capabilities:
Get common file path

Disassembly:
mov qword [rsp + 8], rbx
mov qword [rsp + 0x10], rbp
mov qword [rsp + 0x18], rsi
push rdi
sub rsp, 0x6b0
mov rax, qword [0x1400c81d8]
xor rax, rsp
mov qword [rsp + 0x6a0], rax
xor r9d, r9d
lea rax, [rsp + 0x490]
xor r8d, r8d
mov qword [rsp + 0x20], rax
xor ecx, ecx
lea edx, [r9 + 0x25]
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
lea rax, [rsp + 0x280]
mov ebx, 0x104
lea rsi, [rsp + 0x490]
mov edx, ebx
sub rsi, rax
lea rcx, [rsp + 0x280]
nop word [rax + rax]
lea rax, [rdx + 0x7ffffefa]
test rax, rax
je 0x140017152
movzx eax, word [rsi + rcx]
test ax, ax
je 0x140017152
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x140017130
test rdx, rdx
lea rax, [rcx - 2]
cmovne rax, rcx
xor ebp, ebp
mov rcx, rbx
mov word [rax], bp
lea rax, [rsp + 0x280]
nop dword [rax]
cmp word [rax], bp
je 0x14001717f
add rax, 2
sub rcx, 1
jne 0x140017170
mov rax, rbx
mov edi, 0x7ffffffe
sub rax, rcx
test rcx, rcx
cmove rax, rbp
je 0x1400171e2
mov rdx, rbx
lea rcx, [rsp + 0x280]
lea rcx, [rcx + rax*2]
sub rdx, rax
je 0x1400171d4
lea r9, str.msvcp140.dll
mov eax, edi
sub r9, rcx
test rax, rax
je 0x1400171d4
movzx r8d, word [r9 + rcx]
test r8w, r8w
je 0x1400171d4
mov word [rcx], r8w
dec rax
add rcx, 2
sub rdx, 1
jne 0x1400171b3
test rdx, rdx
lea rax, [rcx - 2]
cmovne rax, rcx
mov word [rax], bp
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x280]
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
cmp rax, 0xffffffffffffffff
je 0x1400173c2
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_FindClose]
mov rdx, rbx
lea rcx, [rsp + 0x280]
lea rax, [rdx + 0x7ffffefa]
test rax, rax
je 0x140017235
movzx eax, word [rsi + rcx]
test ax, ax
je 0x140017235
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x140017213
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov rcx, rbx
mov word [rax], bp
lea rax, [rsp + 0x280]
nop
cmp word [rax], bp
je 0x14001725f
add rax, 2
sub rcx, 1
jne 0x140017250
mov rax, rbx
sub rax, rcx
test rcx, rcx
cmove rax, rbp
je 0x1400172bf
mov rdx, rbx
lea rcx, [rsp + 0x280]
lea rcx, [rcx + rax*2]
sub rdx, rax
je 0x1400172b1
lea r9, str._vcruntime140.dll
mov rax, rdi
sub r9, rcx
nop
test rax, rax
je 0x1400172b1
movzx r8d, word [rcx + r9]
test r8w, r8w
je 0x1400172b1
mov word [rcx], r8w
dec rax
add rcx, 2
sub rdx, 1
jne 0x140017290
test rdx, rdx
lea rax, [rcx - 2]
cmovne rax, rcx
mov word [rax], bp
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x280]
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
cmp rax, 0xffffffffffffffff
je 0x1400173c2
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_FindClose]
mov rdx, rbx
lea rcx, [rsp + 0x280]
lea rax, [rdx + 0x7ffffefa]
test rax, rax
je 0x140017312
movzx eax, word [rsi + rcx]
test ax, ax
je 0x140017312
mov word [rcx], ax
add rcx, 2
sub rdx, 1
jne 0x1400172f0
lea rax, [rcx - 2]
test rdx, rdx
cmovne rax, rcx
mov rcx, rbx
mov word [rax], bp
lea rax, [rsp + 0x280]
nop dword [rax + rax]
cmp word [rax], bp
je 0x14001733f
add rax, 2
sub rcx, 1
jne 0x140017330
mov rax, rbx
sub rax, rcx
test rcx, rcx
cmove rax, rbp
je 0x14001739c
lea rcx, [rsp + 0x280]
lea rcx, [rcx + rax*2]
sub rbx, rax
je 0x14001738e
lea rdx, str._vcruntime140_1.dll
sub rdx, rcx
nop dword [rax]
test rdi, rdi
je 0x14001738e
movzx eax, word [rdx + rcx]
test ax, ax
je 0x14001738e
mov word [rcx], ax
dec rdi
add rcx, 2
sub rbx, 1
jne 0x140017370
test rbx, rbx
lea rax, [rcx - 2]
cmovne rax, rcx
mov word [rax], bp
lea rdx, [rsp + 0x30]
lea rcx, [rsp + 0x280]
call qword [sym.imp.KERNEL32.dll_FindFirstFileW]
cmp rax, 0xffffffffffffffff
je 0x1400173c2
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_FindClose]
mov al, 1
jmp 0x1400173c4
xor al, al
mov rcx, qword [rsp + 0x6a0]
xor rcx, rsp
call fcn.1400890e0
lea r11, [rsp + 0x6b0]
mov rbx, qword [r11 + 0x10]
mov rbp, qword [r11 + 0x18]
mov rsi, qword [r11 + 0x20]
mov rsp, r11
pop rdi
ret