Function at 0x1015dd4
Capabilities:
Get common file path

Disassembly:
push rbx
push rsi
push rdi
sub rsp, 0x40
mov qword [rsp + 0x38], 0xfffffffffffffffe
mov ebx, edx
mov rdi, rcx
lea rcx, [0x01008db0]
call fcn.01011d38
cmp ebx, 1
jne 0x1015e25
lea rcx, [0x01008e00]
call fcn.01011d38
mov dword [0x01046b80], 9
mov dword [0x01046b84], ebx
and dword [0x01046db4], 0
xor eax, eax
jmp 0x1016110
lea rdx, [rdi + 0x30]
lea rcx, [rdi + 0x108]
call fcn.0100faec
mov r11, qword [rdi + 0x108]
cmp qword [r11 - 0x10], 0
jne 0x1015e71
lea rcx, [0x01008e60]
call fcn.01011d38
mov dword [0x01046b80], 5
mov dword [0x01046b84], 2
and dword [0x01046db4], 0
xor eax, eax
jmp 0x1016110
lea rdx, [0x01005540]
lea rcx, [rsp + 0x28]
call fcn.0100f9f8
nop
lea rdx, [rdi + 0x108]
lea rcx, [rsp + 0x78]
call fcn.0100f74c
mov r8, rax
lea rdx, [rsp + 0x70]
mov rcx, rdi
call fcn.01019c48
mov rdx, rax
lea rcx, [rsp + 0x28]
call fcn.0100faec
lea rcx, [rsp + 0x70]
call fcn.0100f940
lea rdx, [rdi + 0x108]
lea rcx, [rsp + 0x70]
call fcn.0100f74c
mov rdx, rax
mov rcx, rdi
call fcn.0101727c
lea rdx, [0x010053c0]
lea rcx, [rsp + 0x20]
call fcn.0100f990
nop
mov edx, 0x104
lea rcx, [rsp + 0x20]
call fcn.0100fe90
mov rdx, rax
xor r9d, r9d
xor ecx, ecx
lea r8d, [r9 + 0x23]
call qword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
mov ebx, eax
or edx, 0xffffffff
lea rcx, [rsp + 0x20]
call fcn.0100ff00
test ebx, ebx
jne 0x1015f29
lea rcx, [0x01008ed0]
call fcn.01011d38
lea r8, [0x01008f30]
lea rdx, [rsp + 0x20]
lea rcx, [rsp + 0x30]
call fcn.0100fcd0
lea r8, [rdi + 0x108]
mov rdx, rax
lea rcx, [rsp + 0x78]
call fcn.0100fc90
lea r8, [0x01008f28]
mov rdx, rax
lea rcx, [rsp + 0x70]
call fcn.0100fcd0
mov rdx, rax
lea rcx, [rsp + 0x20]
call fcn.0100faec
lea rcx, [rsp + 0x70]
call fcn.0100f940
lea rcx, [rsp + 0x78]
call fcn.0100f940
lea rcx, [rsp + 0x30]
call fcn.0100f940
xor edx, edx
lea rcx, [rsp + 0x20]
call fcn.0100fe90
mov rdx, rax
lea rcx, [0x01008f40]
call fcn.01011d38
lea rdx, [0x01008f30]
mov rcx, qword [rsp + 0x20]
call fcn.010297a4
test rax, rax
je 0x1015ff8
sub rax, qword [rsp + 0x20]
sar rax, 1
cmp eax, 0xffffffff
je 0x1015ff8
xor edx, edx
lea rcx, [rsp + 0x20]
call fcn.0100fe90
mov rdx, rax
mov rcx, rdi
call fcn.010199bc
cmp eax, 0xffffff9d
jne 0x1015ff8
lea rcx, [0x01008f90]
call fcn.01011d38
mov eax, dword [rdi + 0xf4]
cmp eax, 2
je 0x1016008
cmp eax, 3
jne 0x101605b
lea r9, [rdi + 0x144]
lea r8, [rdi + 0x150]
lea rdx, [0x01008fe0]
mov rcx, rdi
call fcn.0101a2a8
lea r9, [rdi + 0x15c]
lea r8, [rdi + 0x168]
lea rdx, [0x01008ff8]
mov rcx, rdi
call fcn.0101a2a8
mov rcx, rdi
call fcn.0101aa08
cmp dword [rdi + 0x158], 1
jne 0x101605b
mov rcx, rdi
call fcn.0101aad0
lea r8, [rsp + 0x78]
lea rdx, [rsp + 0x70]
lea rcx, [rsp + 0x68]
call fcn.0101ffc4
cmp dword [rsp + 0x68], 2
jne 0x101608c
cmp dword [rsp + 0x70], 5
jl 0x101608c
cmp dword [rsp + 0x78], 0
jl 0x101608c
mov rcx, rdi
call fcn.01018174
mov rcx, rdi
call fcn.0101ab9c
mov rcx, rdi
call fcn.0101ac6c
mov rcx, rdi
call fcn.0101ad28
mov ebx, eax
cmp dword [rdi + 0x158], 1
jne 0x10160c1
mov rcx, rdi
call fcn.0101afb8
test ebx, ebx
je 0x10160bf
test eax, eax
jne 0x10160c5
xor ebx, ebx
test ebx, ebx
je 0x10160cf
mov rcx, rdi
call fcn.01017a18
jmp 0x10160e9
lea rdx, [rsp + 0x28]
lea rcx, [rsp + 0x70]
call fcn.0100f74c
mov rdx, rax
mov rcx, rdi
call fcn.01017fc8
lea rcx, [0x01009020]
call fcn.01011d38
nop
lea rcx, [rsp + 0x20]
call fcn.0100f940
nop
lea rcx, [rsp + 0x28]
call fcn.0100f940
mov eax, 1
add rsp, 0x40
pop rdi
pop rsi
pop rbx
ret