Function at 0x180006f00
Capabilities:
Get common file path

Disassembly:
mov rax, rsp
mov dword [rax + 0x10], edx
mov qword [rax + 8], rcx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x30
mov qword [rax - 0x48], 0xfffffffffffffffe
mov qword [rax + 0x20], rbx
mov r15, rcx
call fcn.1800029b0
mov rcx, rax
test rax, rax
je 0x18000722b
mov rax, qword [rax]
call qword [rax + 0x18]
lea rbx, [rax + 0x18]
mov qword [rsp + 0x80], rbx
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, 0x200
or eax, ecx
jge 0x180006f79
mov edx, 0x200
lea rcx, [rsp + 0x80]
call fcn.180004250
mov rbx, qword [rsp + 0x80]
xor r9d, r9d
lea r8d, [r9 + 0x1a]
mov rdx, rbx
xor ecx, ecx
call qword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
movsxd rdx, dword [rbx - 0xc]
mov rcx, rbx
call fcn.18000d370
test eax, eax
js 0x180007220
cmp eax, dword [rbx - 0xc]
jg 0x180007220
mov dword [rbx - 0x10], eax
cdqe
xor ecx, ecx
mov word [rbx + rax*2], cx
mov esi, dword [rbx - 0x10]
test esi, esi
jne 0x18000704b
call fcn.1800029b0
mov rcx, rax
test rax, rax
je 0x180007236
mov rax, qword [rax]
call qword [rax + 0x18]
add rax, 0x18
mov qword [r15], rax
lea rdx, [0x1800228b8]
mov rdi, 0xffffffffffffffff
cmp rdx, 0x10000
jae 0x180007000
movzx edx, dx
mov rcx, r15
call fcn.180003790
jmp 0x180007019
mov rax, rdi
inc rax
cmp word [rdx + rax*2], 0
jne 0x180007003
mov r8d, eax
mov rcx, r15
call fcn.180004be0
nop
lea rdx, [rbx - 0x18]
lock xadd dword [rdx + 0x10], edi
sub edi, 1
jg 0x180007030
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + 8]
mov rax, r15
mov rbx, qword [rsp + 0x88]
add rsp, 0x30
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
lea eax, [rsi - 1]
test eax, eax
js 0x180007215
cmp eax, esi
jg 0x180007215
movsxd rax, esi
mov rdi, 0xffffffffffffffff
mov ebp, 0x7fffffff
cmp word [rbx + rax*2 - 2], 0x5c
je 0x18000712c
lea rbp, [0x1800228bc]
mov rax, rdi
inc rax
cmp word [rbp + rax*2], cx
jne 0x180007083
mov r12, rbp
sub r12, rbx
sar r12, 1
test eax, eax
js 0x180007241
movsxd rdx, eax
mov rcx, rbp
call fcn.18000d370
mov r13, rax
mov ecx, 0x7fffffff
sub ecx, eax
cmp ecx, esi
jl 0x18000724c
lea r14d, [rsi + rax]
test r14d, r14d
js 0x180007257
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, r14d
or eax, ecx
jge 0x1800070f2
mov edx, r14d
lea rcx, [rsp + 0x80]
call fcn.180004250
mov rbx, qword [rsp + 0x80]
cmp r12, rsi
ja 0x1800070fb
lea rbp, [rbx + r12*2]
movsxd rdx, r13d
lea rcx, [rbx + rsi*2]
mov r9d, r13d
mov r8, rbp
call fcn.180005b70
cmp r14d, dword [rbx - 0xc]
jg 0x18000726d
mov dword [rbx - 0x10], r14d
movsxd rax, r14d
xor ecx, ecx
mov word [rbx + rax*2], cx
mov esi, dword [rbx - 0x10]
mov ebp, 0x7fffffff
lea r14, str.SmallTreesPDF_
mov rax, rdi
nop word [rax + rax]
inc rax
cmp word [r14 + rax*2], 0
jne 0x180007140
mov r12, r14
sub r12, rbx
sar r12, 1
test eax, eax
js 0x180007262
movsxd rdx, eax
mov rcx, r14
call fcn.18000d370
mov r13, rax
sub ebp, eax
cmp ebp, esi
jl 0x180007278
lea ebp, [rsi + rax]
test ebp, ebp
js 0x180007283
mov ecx, 1
sub ecx, dword [rbx - 8]
mov eax, dword [rbx - 0xc]
sub eax, ebp
or eax, ecx
jge 0x1800071a7
mov edx, ebp
lea rcx, [rsp + 0x80]
call fcn.180004250
mov rbx, qword [rsp + 0x80]
mov eax, esi
cmp r12, rax
ja 0x1800071b2
lea r14, [rbx + r12*2]
movsxd rdx, r13d
lea rcx, [rbx + rax*2]
mov r9d, r13d
mov r8, r14
call fcn.180005b70
cmp ebp, dword [rbx - 0xc]
jg 0x18000728e
mov dword [rbx - 0x10], ebp
movsxd rax, ebp
xor ecx, ecx
mov word [rbx + rax*2], cx
cmp dword [rsp + 0x78], ecx
je 0x1800071e7
mov rcx, rbx
call fcn.180005c00
lea rcx, [rbx - 0x18]
call fcn.180001660
add rax, 0x18
mov qword [r15], rax
lock xadd dword [rbx - 8], edi
sub edi, 1
jg 0x180007030
mov rcx, qword [rbx - 0x18]
mov rax, qword [rcx]
lea rdx, [rbx - 0x18]
jmp 0x18000702d
mov ecx, 0x80070057
call fcn.180001600
int3
mov ecx, 0x80070057
call fcn.180001600
nop
mov ecx, 0x80004005
call fcn.180001600
nop
mov ecx, 0x80004005
call fcn.180001600
int3
mov ecx, 0x80070057
call fcn.180001600
int3
mov ecx, 0x80070057
call fcn.180001600
int3
mov ecx, 0x80070057
call fcn.180001600
int3
mov ecx, 0x80070057
call fcn.180001600
int3
mov ecx, 0x80070057
call fcn.180001600
int3
mov ecx, 0x80070057
call fcn.180001600
int3
mov ecx, 0x80070057
call fcn.180001600
int3
mov ecx, 0x80070057
call fcn.180001600
int3