Function at 0x180066560
Capabilities:
Get common file path

Disassembly:
mov qword [rsp + 0x10], rbx
push rbp
push rsi
push rdi
push r12
push r13
push r14
push r15
sub rsp, 0x2b0
mov rax, qword [0x18009da48]
xor rax, rsp
mov qword [rsp + 0x2a0], rax
mov edi, dword [rsp + 0x40]
mov rbp, r8
mov ebx, dword [rsp + 0x40]
mov r13d, edx
mov r12d, dword [rsp + 0x40]
mov rsi, rcx
imul r15d, edx, 0x42b
mov r14d, edx
mov qword [rsp + 0x58], r8
cmp edx, r15d
ja 0x1800668e9
mov rax, qword [rsp + 0x58]
lea rdx, [0x180000000]
mov qword [rsp + 0x60], rax
mov eax, dword [rsp + 0x40]
mov dword [rsp + 0x44], eax
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x68], rax
nop word [rax + rax]
cmp r14d, 0x3f8c
ja 0x180066712
je 0x1800666b5
mov eax, r14d
sub eax, 0x2e
je 0x1800668a5
sub eax, 0x62
je 0x18006669a
sub eax, 0x16
je 0x180066677
sub eax, 1
je 0x18006663b
cmp eax, 0x3679
jne 0x180066887
mov rax, qword [rsi + 0x10]
mov ecx, dword [rax]
and ecx, 0x7f
cmp byte [rcx + rdx + 0x902a0], 1
jne 0x180066887
xor eax, eax
jmp 0x1800668be
mov qword [rsp + 0x38], 0
xor r9d, r9d
mov qword [rsp + 0x30], 0
xor r8d, r8d
mov qword [rsp + 0x28], 0
mov rdx, rsi
xor ecx, ecx
mov dword [rsp + 0x20], 0xfb
call fcn.18004e790
mov byte [rsp + 0x48], al
jmp 0x180066880
mov edx, 0x40
mov qword [rsp + 0x60], 0
mov rcx, rsi
call fcn.18004ac20
mov dword [rsp + 0x44], 0x36
jmp 0x180066880
mov dword [rbp], 0
cmp dword [rsi + 8], 1
je 0x18006689e
cmp dword [rsi], 0
je 0x180066634
jmp 0x180066887
mov bpl, 0x61
nop dword [rax + rax]
mov rcx, qword [rsi + 0x10]
mov rdx, qword [rsi + 0x18]
cmp rcx, rdx
jae 0x1800666ec
lea rax, [rcx + 1]
mov qword [rsi + 0x10], rax
mov rax, rsi
cmp rdx, 0x10
jb 0x1800666e1
mov rax, qword [rsi]
mov byte [rax + rcx], bpl
mov byte [rax + rcx + 1], 0
jmp 0x1800666ff
xor r8d, r8d
movzx r9d, bpl
mov rcx, rsi
lea edx, [r8 + 1]
call fcn.180002960
inc bpl
cmp bpl, 0x7a
jbe 0x1800666c0
mov rbp, qword [rsp + 0x58]
jmp 0x180066880
cmp r14d, 0x3fee
je 0x1800668ba
cmp r14d, 0x6db0
je 0x180066822
cmp r14d, 0x7e72
je 0x1800667c0
cmp r14d, 0xa440
je 0x180066793
cmp r14d, 0xdad0
jne 0x180066887
xor r9d, r9d
mov dword [rsp + 0x20], 0x151
lea r8, [rsp + 0x70]
xor edx, edx
xor ecx, ecx
call fcn.18006b380
mov rbx, rax
mov eax, 0xba2e8ba3
mul ebx
mov ecx, ebx
shr edx, 3
imul eax, edx, 0xb
sub ecx, eax
mov eax, 1
shl eax, cl
test eax, 0x5c4
jne 0x180066bd8
jmp 0x180066880
mov r9, rsi
mov dword [rsp + 0x20], PathYetAnotherMakeUniqueName
xor r8d, r8d
lea rdx, [rsp + 0x70]
lea rcx, [rsp + 0x70]
call fcn.180068a10
mov rdi, rax
test eax, eax
jne 0x180066bd8
jmp 0x180066880
mov qword [rsp + 0x68], 0
mov bpl, 0x41
nop dword [rax]
mov rcx, qword [rsi + 0x10]
mov rdx, qword [rsi + 0x18]
cmp rcx, rdx
jae 0x1800667fc
lea rax, [rcx + 1]
mov qword [rsi + 0x10], rax
mov rax, rsi
cmp rdx, 0x10
jb 0x1800667f1
mov rax, qword [rsi]
mov byte [rax + rcx], bpl
mov byte [rax + rcx + 1], 0
jmp 0x18006680f
xor r8d, r8d
movzx r9d, bpl
mov rcx, rsi
lea edx, [r8 + 1]
call fcn.180002960
inc bpl
cmp bpl, 0x5a
jbe 0x1800667d0
mov rbp, qword [rsp + 0x58]
xor r12d, r12d
jmp 0x180066880
lea r9, [rsp + 0x50]
mov dword [rsp + 0x50], 0x69
mov r8, rsi
lea rcx, [rsp + 0x40]
mov edx, 0xc2
call fcn.180054560
test eax, eax
jne 0x1800668be
mov eax, dword [rsp + 0x40]
lea rcx, [0x180000000]
cmp byte [rax + rcx + 0x90320], 1
je 0x180066634
lea r8, [rsp + 0x70]
mov dword [rsp + 0x50], 0x38ece7e1
mov edx, reloc.SHELL32.dll_ILFree
lea rcx, [rsp + 0x50]
call fcn.18000a8e0
mov edi, eax
test eax, eax
jne 0x1800668be
lea rdx, [0x180000000]
imul eax, r13d, 0x61
add r14d, eax
cmp r14d, r15d
jbe 0x1800665e0
mov r15, qword [rsp + 0x60]
jmp 0x180066905
mov eax, 0xfffffffd
jmp 0x1800668be
mov rcx, qword [rsi]
mov edx, 0xff
cmp rcx, rdx
movzx eax, cl
cmovbe edx, eax
mov byte [rsp + 0x48], dl
mov eax, dword [rsp + 0x48]
mov rcx, qword [rsp + 0x2a0]
xor rcx, rsp
call fcn.180083f10
mov rbx, qword [rsp + 0x2f8]
add rsp, 0x2b0
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbp
ret
mov eax, dword [rsp + 0x40]
mov r15, qword [rsp + 0x58]
mov dword [rsp + 0x44], eax
mov rax, qword [rsp + 0x58]
mov qword [rsp + 0x68], rax
mov qword [rsp + 0x60], r15
mov r14d, r13d
imul eax, r13d, 0x81f
cmp r14d, eax
ja 0x1800668ba
cmp r14d, 0x13f80
ja 0x180066b6f
je 0x180066b4b
mov eax, r14d
sub eax, 0x90
je 0x180066ad5
sub eax, 0x16
je 0x180066a1f
sub eax, 0x6a3a
je 0x1800669f1
sub eax, 0x1054
je 0x1800669ae
cmp eax, 0x59fc
jne 0x180066c07
mov eax, 0x8d3dcb09
mov ecx, ebx
mul ebx
shr edx, 4
imul eax, edx, 0x1d
sub ecx, eax
mov eax, 1
shl eax, cl
test eax, 0xc2edd0c
jne 0x180066bd8
mov eax, 0x8421085
mov ecx, ebx
mul ebx
mov eax, ebx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 4
imul eax, eax, 0x1f
sub ecx, eax
mov eax, 1
shl eax, cl
test eax, 0x6de2b848
jne 0x180066bd8
jmp 0x180066c07
mov rcx, qword [rsi + 0x10]
mov rdx, qword [rsi + 0x18]
cmp rcx, rdx
jae 0x1800669da
lea rax, [rcx + 1]
mov qword [rsi + 0x10], rax
mov rax, rsi
cmp rdx, 0x10
jb 0x1800669cf
mov rax, qword [rsi]
mov word [rax + rcx], 0x5f
jmp 0x180066c07
xor r8d, r8d
mov r9b, 0x5f
mov rcx, rsi
lea edx, [r8 + 1]
call fcn.180002960
jmp 0x180066c07
mov eax, 0xb21642c9
mov ecx, ebx
mul ebx
shr edx, 4
imul eax, edx, 0x17
sub ecx, eax
mov eax, 1
shl eax, cl
test eax, 0x7acca0
je 0x180066c07
mov r14d, 0x21420
jmp 0x180066c07
mov bpl, 0x30
mov rcx, qword [rsi + 0x10]
mov rdx, qword [rsi + 0x18]
cmp rcx, rdx
jae 0x180066a4e
lea rax, [rcx + 1]
mov qword [rsi + 0x10], rax
mov rax, rsi
cmp rdx, 0x10
jb 0x180066a43
mov rax, qword [rsi]
mov byte [rax + rcx], bpl
mov byte [rax + rcx + 1], 0
jmp 0x180066a61
xor r8d, r8d
movzx r9d, bpl
mov rcx, rsi
lea edx, [r8 + 1]
call fcn.180002960
inc bpl
cmp bpl, 0x39
jbe 0x180066a22
mov rcx, qword [rsi + 0x10]
mov rdx, qword [rsi + 0x18]
cmp rcx, rdx
jae 0x180066a93
lea rax, [rcx + 1]
mov qword [rsi + 0x10], rax
mov rax, rsi
cmp rdx, 0x10
jb 0x180066a8b
mov rax, qword [rsi]
mov word [rax + rcx], PathMakeUniqueName
jmp 0x180066aa5
xor r8d, r8d
mov r9b, PathMakeUniqueName
mov rcx, rsi
lea edx, [r8 + 1]
call fcn.180002960
mov r8, qword [rsp + 0x68]
lea rax, [rsp + 0x90]
mov edx, dword [rsp + 0x44]
mov r9d, r12d
mov qword [rsp + 0x28], rax
mov rcx, r15
mov qword [rsp + 0x20], 0
call qword [sym.imp.SHELL32.dll_SHGetFolderPathAndSubDirW]
jmp 0x180066c07
mov eax, 0x4ec4ec4f
mov ecx, ebx
mul ebx
shr edx, 2
imul eax, edx, 0xd
sub ecx, eax
mov eax, 1
shl eax, cl
test eax, 0x9e4
jne 0x180066bd8
mov eax, 0xf0f0f0f1
mov ecx, ebx
mul ebx
shr edx, 4
imul eax, edx, 0x11
sub ecx, eax
mov eax, 1
shl eax, cl
test eax, 0x5ce8
jne 0x180066bd8
mov eax, 0xaf286bcb
mov ecx, ebx
mul ebx
mov eax, ebx
sub eax, edx
shr eax, 1
add eax, edx
shr eax, 4
imul eax, eax, 0x13
sub ecx, eax
mov eax, 1
shl eax, cl
test eax, 0x4f50c
jne 0x180066bd8
jmp 0x180066c07
lea r9, [rsp + 0x70]
mov qword [rsp + 0x20], rsi
xor r8d, r8d
xor edx, edx
mov ecx, 0xdf
call fcn.180055220
mov edi, eax
test eax, eax
jne 0x180066bd8
jmp 0x180066c07
cmp r14d, 0x1a9d0
je 0x180066bbe
cmp r14d, 0x21420
je 0x180066bd8
cmp r14d, 0x27e70
je 0x180066ba8
cmp r14d, 0x2e8c0
je 0x180066ba2
cmp r14d, 0x35310
je 0x1800668ba
jmp 0x180066c07
mov dword [rsp + 0x48], edi
jmp 0x180066c07
xor r9d, r9d
lea rcx, [rsp + 0x70]
xor r8d, r8d
lea edx, [r9 + 0xa]
call fcn.18003c210
jmp 0x180066c07
lea r8, [rsp + 0x70]
mov ecx, 0x95
lea rdx, [rsp + 0x70]
call fcn.180047970
mov edi, eax
test eax, eax
je 0x180066be0
mov r14d, 0x21420
jmp 0x180066c07
xor r8d, r8d
mov qword [rsp + 0x20], 0
lea r9, [rsp + 0x70]
mov rdx, rsi
lea ecx, [r8 + 0x3c]
call fcn.18003f700
xor ecx, ecx
test eax, eax
sete cl
mov dword [rbp], ecx
mov r15, qword [rsp + 0x60]
mov rbp, qword [rsp + 0x58]
imul eax, r13d, 0xbd
add r14d, eax
jmp 0x180066908