Function at 0x10006f4d0
Capabilities:
Get common file path

Disassembly:
mov rax, rsp
push rsi
push r12
push r13
sub rsp, 0xb30
mov qword [rsp + 0x190], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x18], rbp
mov rax, qword [0x100190170]
xor rax, rsp
mov qword [rsp + 0xb20], rax
mov rbp, rdx
mov byte [rsp + 0x30], 1
mov byte [rsp + 0x31], 1
mov byte [rsp + 0x32], 1
mov byte [rsp + 0x33], 1
mov byte [rsp + 0x34], 1
mov byte [rsp + 0x35], 1
xor ebx, ebx
mov byte [rsp + 0x36], bl
mov byte [rsp + 0x37], bl
mov byte [rsp + 0x38], 1
mov byte [rsp + 0x39], 1
mov byte [rsp + 0x3a], 1
mov byte [rsp + 0x3b], 1
or r12d, 0xffffffff
mov dword [rsp + 0x3c], r12d
mov dword [rsp + 0x40], 4
mov dword [rsp + 0x44], 4
mov byte [rsp + 0x48], bl
mov dword [rsp + 0x4c], 1
mov dword [rsp + 0x50], 1
mov dword [rsp + 0x54], r12d
mov dword [rsp + 0x58], ebx
mov dword [rsp + 0x5c], ebx
mov dword [rsp + 0x60], 0x320
mov dword [rsp + 0x64], 0x1f0
mov byte [rsp + 0x68], bl
mov byte [rsp + 0x69], bl
mov byte [rsp + 0x6a], bl
mov byte [rsp + 0x6b], 1
mov byte [rsp + 0x308], 1
mov byte [rsp + 0x309], 1
mov byte [rsp + 0x30a], 1
mov dword [rsp + 0x30c], ebx
mov dword [rsp + 0x310], 2
mov dword [rsp + 0x314], ebx
mov dword [rsp + 0x318], ebx
mov rax, rbx
mov dword [rsp + rax*4 + 0x1a0], ebx
mov dword [rsp + rax*4 + 0x1c8], ebx
mov dword [rsp + rax*4 + 0x1f0], ebx
mov dword [rsp + rax*4 + 0x218], ebx
mov dword [rsp + rax*4 + 0x268], ebx
mov dword [rsp + rax*4 + 0x240], ebx
mov dword [rsp + rax*4 + 0x290], ebx
mov dword [rsp + rax*4 + 0x2b8], ebx
mov dword [rsp + rax*4 + 0x2e0], ebx
inc rax
cmp rax, 0xa
jl 0x10006f5da
mov qword [rsp + 0xc0], rbx
mov qword [rsp + 0xc8], rbx
mov qword [rsp + 0xd0], rbx
mov qword [rsp + 0xd8], rbx
mov qword [rsp + 0xe0], rbx
mov qword [rsp + 0xe8], rbx
lea rax, [rsp + 0x320]
mov qword [rsp + 0x20], rax
xor r9d, r9d
xor r8d, r8d
mov edx, 0x801c
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
cmp eax, ebx
jne 0x10006f707
lea rdx, [rsp + 0x320]
lea rcx, [rsp + 0xc0]
call fcn.10016e658
mov edx, 0x74
lea rcx, [rsp + 0xa8]
call fcn.10016e534
nop
mov rdx, rax
lea rcx, [rsp + 0xc0]
call fcn.10016e7cc
nop
mov rcx, qword [rsp + 0xb8]
call sub.msvcrt.dll_free
mov edx, 0x75
lea rcx, [rsp + 0xa8]
call fcn.10016e534
nop
mov rdx, rax
lea rcx, [rsp + 0xc0]
call fcn.10016e7cc
nop
mov rcx, qword [rsp + 0xb8]
call sub.msvcrt.dll_free
lea rdx, [0x100026a6c]
lea rcx, [rsp + 0xc0]
call fcn.10016e788
jmp 0x10006f71b
lea rdx, [0x100002660]
lea rcx, [rsp + 0xc0]
call fcn.10016e658
lea rdx, [rsp + 0xc0]
lea rcx, [rsp + 0xd8]
call fcn.10016e6f0
mov edx, 0xc2
lea rcx, [rsp + 0xa8]
call fcn.10016e534
nop
mov rdx, rax
lea rcx, [rsp + 0xd8]
call fcn.10016e7cc
nop
mov rcx, qword [rsp + 0xb8]
call sub.msvcrt.dll_free
call fcn.100056cbc
cmp al, bl
je 0x10006f79d
mov edx, 0xfa
lea rcx, [rsp + 0xa8]
call fcn.10016e534
nop
mov rdx, rax
lea rcx, [rsp + 0xc0]
call fcn.10016e7cc
nop
mov rcx, qword [rsp + 0xb8]
call sub.msvcrt.dll_free
jmp 0x10006f7ce
mov edx, 0xc1
lea rcx, [rsp + 0xa8]
call fcn.10016e534
nop
mov rdx, rax
lea rcx, [rsp + 0xc0]
call fcn.10016e7cc
nop
mov rcx, qword [rsp + 0xb8]
call sub.msvcrt.dll_free
lea r8, [0x10002a3b0]
mov rdx, qword [rsp + 0xd0]
lea rcx, [rsp + 0x88]
call qword [sym.imp.msvcrt.dll__wfopen_s]
mov rcx, qword [rsp + 0x88]
cmp rcx, rbx
jne 0x10006f850
lea r8, [0x10002a3b0]
mov rdx, qword [rsp + 0xe8]
lea rcx, [rsp + 0x88]
call qword [sym.imp.msvcrt.dll__wfopen_s]
mov rcx, qword [rsp + 0x88]
cmp rcx, rbx
jne 0x10006f850
call fcn.100056cbc
cmp al, bl
je 0x10006f82e
mov byte [rbp + 5], bl
mov rcx, qword [rsp + 0xe8]
call sub.msvcrt.dll_free
nop
mov rcx, qword [rsp + 0xd0]
call sub.msvcrt.dll_free
xor al, al
jmp 0x10006fee1
call sub.msvcrt.dll_fgetwc
movzx esi, ax
lea rdx, [0x100002660]
lea rcx, [rsp + 0xa8]
call fcn.10016e414
nop
mov r13d, 0xffff
cmp r13w, si
je 0x10006f8d5
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x78], rbx
mov qword [rsp + 0x80], rbx
movzx r8d, si
lea rdx, [0x10002a39c]
lea rcx, [rsp + 0x70]
call fcn.10016e8bc
lea rdx, [rsp + 0x70]
lea rcx, [rsp + 0xa8]
call fcn.10016e7cc
mov rcx, qword [rsp + 0x88]
call sub.msvcrt.dll_fgetwc
mov si, ax
mov rcx, qword [rsp + 0x80]
call sub.msvcrt.dll_free
cmp r13w, si
jne 0x10006f879
mov rcx, qword [rsp + 0x88]
call qword [sym.imp.msvcrt.dll_fclose]
lea rcx, [rsp + 0xf0]
call fcn.100177bf8
nop
mov r8d, dword [rsp + 0xa8]
inc r8d
mov rsi, qword [rsp + 0xb8]
mov rdx, rsi
lea rcx, [rsp + 0xf0]
call fcn.100177f74
cmp al, bl
jne 0x10006f942
lea rcx, [rsp + 0xf0]
call fcn.100177c84
nop
mov rcx, rsi
call sub.msvcrt.dll_free
nop
mov rcx, qword [rsp + 0xe8]
call sub.msvcrt.dll_free
nop
jmp 0x10006fed2
mov r8b, 1
lea rdx, [0x10002a940]
lea rcx, [rsp + 0xf0]
call fcn.100178d58
mov byte [rsp + 0x30], al
mov r8b, 1
lea rdx, [0x10002a960]
lea rcx, [rsp + 0xf0]
call fcn.100178d58
mov byte [rsp + 0x33], al
mov r8b, 1
lea rdx, [0x10002a980]
lea rcx, [rsp + 0xf0]
call fcn.100178d58
mov byte [rsp + 0x34], al
mov r8b, 1
lea rdx, [0x10002a998]
lea rcx, [rsp + 0xf0]
call fcn.100178d58
mov byte [rsp + 0x35], al
xor r8d, r8d
lea rdx, [0x10002a9b0]
lea rcx, [rsp + 0xf0]
call fcn.100178d58
mov byte [rsp + 0x36], al
xor r8d, r8d
lea rdx, [0x10002a9e0]
lea rcx, [rsp + 0xf0]
call fcn.100178d58
mov byte [rsp + 0x37], al
mov r8b, 1
lea rdx, [0x10002aa00]
lea rcx, [rsp + 0xf0]
call fcn.100178d58
mov byte [rsp + 0x38], al
mov r8b, 1
lea rdx, [0x10002aa20]
lea rcx, [rsp + 0xf0]
call fcn.100178d58
mov byte [rsp + 0x39], al
mov r8b, 1
lea rdx, [0x10002aa40]
lea rcx, [rsp + 0xf0]
call fcn.100178d58
mov byte [rsp + 0x3a], al
mov r8b, 1
lea rdx, [0x10002aa68]
lea rcx, [rsp + 0xf0]
call fcn.100178d58
mov byte [rsp + 0x3b], al
mov r8d, r12d
lea rdx, [0x10002aa90]
lea rcx, [rsp + 0xf0]
call fcn.100178cf0
mov dword [rsp + 0x3c], eax
mov r8d, 4
lea rdx, [0x10002aaa8]
lea rcx, [rsp + 0xf0]
call fcn.100178cf0
mov dword [rsp + 0x40], eax
mov r8d, 4
lea rdx, [0x10002aac0]
lea rcx, [rsp + 0xf0]
call fcn.100178cf0
mov dword [rsp + 0x44], eax
xor r8d, r8d
lea rdx, [0x10002aae8]
lea rcx, [rsp + 0xf0]
call fcn.100178d58
mov byte [rsp + 0x48], al
mov r8d, 1
lea rdx, [0x10002ab10]
lea rcx, [rsp + 0xf0]
call fcn.100178cf0
mov dword [rsp + 0x4c], eax
mov r8d, 1
lea rdx, [0x10002ab28]
lea rcx, [rsp + 0xf0]
call fcn.100178cf0
mov dword [rsp + 0x50], eax
mov r12d, 0x80000000
mov r8d, r12d
lea rdx, [0x10002ab40]
lea rcx, [rsp + 0xf0]
call fcn.100178cf0
mov dword [rsp + 0x58], eax
mov r8d, r12d
lea rdx, [0x10002ab58]
lea rcx, [rsp + 0xf0]
call fcn.100178cf0
mov dword [rsp + 0x5c], eax
mov r8d, 0x320
lea rdx, [0x10002ab70]
lea rcx, [rsp + 0xf0]
call fcn.100178cf0
mov dword [rsp + 0x60], eax
mov r8d, 0x1f0
lea rdx, [0x10002ab90]
lea rcx, [rsp + 0xf0]
call fcn.100178cf0
mov dword [rsp + 0x64], eax
xor r8d, r8d
lea rdx, [0x10002abb0]
lea rcx, [rsp + 0xf0]
call fcn.100178d58
mov byte [rsp + 0x68], al
xor r8d, r8d
lea rdx, [0x10002abd8]
lea rcx, [rsp + 0xf0]
call fcn.100178d58
mov byte [rsp + 0x69], al
xor r8d, r8d
lea rdx, [0x10002abf8]
lea rcx, [rsp + 0xf0]
call fcn.100178d58
mov byte [rsp + 0x6a], al
mov r8b, 1
lea rdx, [0x10002ac20]
lea rcx, [rsp + 0xf0]
call fcn.100178d58
mov byte [rsp + 0x6b], al
mov r13d, ebx
lea r12, [rsp + 0x1c8]
mov qword [rsp + 0x70], rbx
mov qword [rsp + 0x78], rbx
mov qword [rsp + 0x80], rbx
mov r8d, r13d
lea rdx, [0x1000291a0]
lea rcx, [rsp + 0x70]
call fcn.10016e8bc
lea r8, [rsp + 0x70]
lea rdx, [0x10002ac48]
lea rcx, [rsp + 0x90]
call fcn.10006ff10
nop
xor r8d, r8d
mov rdx, qword [rax + 0x10]
lea rcx, [rsp + 0xf0]
call fcn.100178cf0
mov dword [r12 - 0x28], eax
mov rcx, qword [rsp + 0xa0]
call sub.msvcrt.dll_free
lea r8, [rsp + 0x70]
lea rdx, [0x10002ac68]
lea rcx, [rsp + 0x90]
call fcn.10006ff10
nop
xor r8d, r8d
mov rdx, qword [rax + 0x10]
lea rcx, [rsp + 0xf0]
call fcn.100178cf0
mov dword [r12], eax
mov rcx, qword [rsp + 0xa0]
call sub.msvcrt.dll_free
lea r8, [rsp + 0x70]
lea rdx, [0x10002ac80]
lea rcx, [rsp + 0x90]
call fcn.10006ff10
nop
xor r8d, r8d
mov rdx, qword [rax + 0x10]
lea rcx, [rsp + 0xf0]
call fcn.100178cf0
mov dword [r12 + 0x28], eax
mov rcx, qword [rsp + 0xa0]
call sub.msvcrt.dll_free
lea r8, [rsp + 0x70]
lea rdx, [0x10002ac98]
lea rcx, [rsp + 0x90]
call fcn.10006ff10
nop
xor r8d, r8d
mov rdx, qword [rax + 0x10]
lea rcx, [rsp + 0xf0]
call fcn.100178cf0
mov dword [r12 + 0x50], eax
mov rcx, qword [rsp + 0xa0]
call sub.msvcrt.dll_free
lea r8, [rsp + 0x70]
lea rdx, [0x10002acc0]
lea rcx, [rsp + 0x90]
call fcn.10006ff10
nop
xor r8d, r8d
mov rdx, qword [rax + 0x10]
lea rcx, [rsp + 0xf0]
call fcn.100178cf0
mov dword [r12 + 0xa0], eax
mov rcx, qword [rsp + 0xa0]
call sub.msvcrt.dll_free
lea r8, [rsp + 0x70]
lea rdx, [0x10002ace8]
lea rcx, [rsp + 0x90]
call fcn.10006ff10
nop
xor r8d, r8d
mov rdx, qword [rax + 0x10]
lea rcx, [rsp + 0xf0]
call fcn.100178cf0
mov dword [r12 + 0x78], eax
mov rcx, qword [rsp + 0xa0]
call sub.msvcrt.dll_free
lea r8, [rsp + 0x70]
lea rdx, [0x10002ad10]
lea rcx, [rsp + 0x90]
call fcn.10006ff10
nop
xor r8d, r8d
mov rdx, qword [rax + 0x10]
lea rcx, [rsp + 0xf0]
call fcn.100178cf0
mov dword [r12 + 0xc8], eax
mov rcx, qword [rsp + 0xa0]
call sub.msvcrt.dll_free
lea r8, [rsp + 0x70]
lea rdx, [0x10002ad38]
lea rcx, [rsp + 0x90]
call fcn.10006ff10
nop
xor r8d, r8d
mov rdx, qword [rax + 0x10]
lea rcx, [rsp + 0xf0]
call fcn.100178cf0
mov dword [r12 + 0xf0], eax
mov rcx, qword [rsp + 0xa0]
call sub.msvcrt.dll_free
lea r8, [rsp + 0x70]
lea rdx, [0x10002ad60]
lea rcx, [rsp + 0x90]
call fcn.10006ff10
nop
xor r8d, r8d
mov rdx, qword [rax + 0x10]
lea rcx, [rsp + 0xf0]
call fcn.100178cf0
mov dword [r12 + 0x118], eax
mov rcx, qword [rsp + 0xa0]
call sub.msvcrt.dll_free
nop
mov rcx, qword [rsp + 0x80]
call sub.msvcrt.dll_free
inc r13d
add r12, 4
cmp r13d, 0xa
jl 0x10006fbed
mov rcx, rbp
lea rdx, [rsp + 0x30]
mov r8d, 0x3c
call sub.msvcrt.dll_memcpy
lea rcx, [0x100199b90]
lea rdx, [rsp + 0x1a0]
mov r8d, 0x17c
call sub.msvcrt.dll_memcpy
nop
lea rcx, [rsp + 0xf0]
call fcn.100177c84
nop
mov rcx, rsi
call sub.msvcrt.dll_free
nop
mov rcx, qword [rsp + 0xe8]
call sub.msvcrt.dll_free
nop
mov bl, 1
mov rcx, qword [rsp + 0xd0]
call sub.msvcrt.dll_free
mov al, bl
mov rcx, qword [rsp + 0xb20]
xor rcx, rsp
call fcn.10017a260
lea r11, [rsp + 0xb30]
mov rbx, qword [r11 + 0x20]
mov rbp, qword [r11 + 0x30]
mov rsp, r11
pop r13
pop r12
pop rsi
ret