Function at 0x18001bc40
Capabilities:
Get common file path

Disassembly:
mov rax, rsp
push rbp
push rdi
push r12
push r14
push r15
lea rbp, [rax - 0xc08]
sub rsp, 0xce0
mov qword [rsp + 0x40], 0xfffffffffffffffe
mov qword [rax + 0x18], rbx
mov qword [rax + 0x20], rsi
mov rax, qword [0x1800a4830]
xor rax, rsp
mov qword [rbp + 0xbd0], rax
mov r14, rdx
mov rdi, rcx
xor r15d, r15d
mov dword [rsp + 0x38], r15d
xor edx, edx
mov r8d, 0x208
lea rcx, [rbp + 0x5a0]
call fcn.18004fb10
xor edx, edx
mov r8d, 0x208
lea rcx, [rbp + 0x7b0]
call fcn.18004fb10
xor edx, edx
mov r8d, 0x208
lea rcx, [rbp + 0x390]
call fcn.18004fb10
xor edx, edx
mov r8d, 0x208
lea rcx, [rbp + 0x9c0]
call fcn.18004fb10
xor edx, edx
mov r8d, 0x208
lea rcx, [rbp + 0x180]
call fcn.18004fb10
xor edx, edx
mov r8d, 0x208
lea rcx, [rsp + 0x70]
call fcn.18004fb10
mov qword [rsp + 0x60], 7
mov qword [rsp + 0x58], r15
mov word [rsp + 0x48], r15w
xor bl, bl
call fcn.18001b8c0
lea r12d, [r15 + 1]
test al, al
je 0x18001bd73
mov qword [rsp + 0x30], r15
lea rcx, [rsp + 0x30]
call fcn.18001b7d0
test al, al
je 0x18001bd73
lea rax, [rbp + 0x5a0]
mov qword [rsp + 0x20], rax
mov r9d, r12d
mov r8, qword [rsp + 0x30]
lea edx, [r15 + 0x1a]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetFolderPathW]
movzx ebx, bl
test eax, eax
cmove ebx, r12d
call qword [sym.imp.ADVAPI32.dll_RevertToSelf]
mov rcx, qword [rsp + 0x30]
call qword [sym.imp.KERNEL32.dll_CloseHandle]
test bl, bl
jne 0x18001bd89
xor r9d, r9d
lea r8d, [r9 + 0x1a]
lea rdx, [rbp + 0x5a0]
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
mov rcx, r15
nop dword [rax]
movzx eax, word [rbp + rcx + 0x5a0]
mov word [rbp + rcx + 0x180], ax
lea rcx, [rcx + 2]
test ax, ax
jne 0x18001bd90
mov edx, 0x5c
lea rcx, [rbp + 0x180]
call fcn.18005167c
test rax, rax
jne 0x18001bdeb
mov rdx, r14
lea rcx, [rsp + 0x48]
call fcn.18001a5d0
mov qword [rdi + 0x18], 7
mov qword [rdi + 0x10], r15
cmp qword [rdi + 0x18], 8
jb 0x18001bfaf
mov rax, qword [rdi]
jmp 0x18001bfb2
mov word [rax], r15w
mov rcx, r15
nop dword [rax]
nop word [rax + rax]
movzx eax, word [rbp + rcx + 0x180]
mov word [rbp + rcx + 0x7b0], ax
lea rcx, [rcx + 2]
test ax, ax
jne 0x18001be00
lea rcx, [rbp + 0x7b0]
sub rcx, 2
lea rcx, [rcx + 2]
cmp word [rcx], 0
jne 0x18001be24
movsd xmm0, qword [0x180071de0]
movsd qword [rcx], xmm0
mov eax, dword [0x180071de8]
mov dword [rcx + 8], eax
movzx eax, word [0x180071dec]
mov word [rcx + 0xc], ax
lea rcx, [rbp + 0x7b0]
call fcn.180019910
mov esi, r15d
test al, al
cmovne esi, r12d
mov rcx, r15
nop word [rax + rax]
movzx eax, word [rbp + rcx + 0x180]
mov word [rbp + rcx + 0x390], ax
lea rcx, [rcx + 2]
test ax, ax
jne 0x18001be70
lea rcx, [rbp + 0x390]
sub rcx, 2
lea rcx, [rcx + 2]
cmp word [rcx], 0
jne 0x18001be94
movups xmm0, xmmword [0x180071df0]
movups xmmword [rcx], xmm0
mov eax, dword [0x180071e00]
mov dword [rcx + 0x10], eax
lea rcx, [rbp + 0x390]
call fcn.180019910
mov ebx, r15d
test al, al
cmovne ebx, r12d
mov rcx, r15
nop dword [rax]
movzx eax, word [rbp + rcx + 0x180]
mov word [rbp + rcx + 0x9c0], ax
lea rcx, [rcx + 2]
test ax, ax
jne 0x18001bed0
lea rcx, [rbp + 0x9c0]
sub rcx, 2
lea rcx, [rcx + 2]
cmp word [rcx], 0
jne 0x18001bef4
movups xmm0, xmmword [0x180071e08]
movups xmmword [rcx], xmm0
movzx eax, word [0x180071e18]
mov word [rcx + 0x10], ax
lea rcx, [rbp + 0x9c0]
call fcn.180019910
mov ecx, r15d
test al, al
cmovne ecx, r12d
test esi, esi
je 0x18001bdbf
test ebx, ebx
je 0x18001bdbf
test ecx, ecx
je 0x18001bdbf
mov r9, r14
lea r8, [rbp + 0x390]
lea rdx, str._s_s_
lea rcx, [rsp + 0x70]
call fcn.180010750
lea rcx, [rsp + 0x70]
call fcn.180019910
test al, al
jne 0x18001bf73
lea rcx, [rsp + 0x70]
call fcn.18001a4f0
cmp word [rsp + 0x70], 0
jne 0x18001bf80
mov r8, r15
jmp 0x18001bf9b
lea rax, [rsp + 0x70]
or r8, 0xffffffffffffffff
nop dword [rax]
inc r8
cmp word [rax + r8*2], 0
jne 0x18001bf90
lea rdx, [rsp + 0x70]
lea rcx, [rsp + 0x48]
call fcn.18000ae80
jmp 0x18001bdcc
mov rax, rdi
mov word [rax], r15w
lea rdx, [rsp + 0x48]
mov rcx, rdi
call fcn.180012220
nop
mov r8, qword [rsp + 0x60]
cmp r8, 8
jb 0x18001bfe1
inc r8
mov rdx, qword [rsp + 0x48]
lea rcx, [rsp + 0x48]
call fcn.18000afd0
mov rax, rdi
mov rcx, qword [rbp + 0xbd0]
xor rcx, rsp
call fcn.18002fe60
lea r11, [rsp + 0xce0]
mov rbx, qword [r11 + 0x40]
mov rsi, qword [r11 + 0x48]
mov rsp, r11
pop r15
pop r14
pop r12
pop rdi
pop rbp
ret