Function at 0x14002cf54
Capabilities:
Get common file path

Disassembly:
push rbp
push rbx
push rsi
push rdi
push r12
push r13
push r14
push r15
lea rbp, [rsp - 0x508]
sub rsp, 0x608
mov rax, qword [0x1401e7e78]
xor rax, rsp
mov qword [rbp + 0x4f0], rax
mov r13, r9
mov r12, r8
mov rdi, rdx
mov r15, rcx
xor esi, esi
test rcx, rcx
je 0x14002cf99
cmp word [rcx], si
jne 0x14002cfac
test r12, r12
je 0x14002d621
cmp word [r8], si
je 0x14002d621
mov rcx, qword [0x14021c748]
call fcn.14008b684
mov rbx, rax
test rax, rax
je 0x14002cfcc
movzx ecx, word [rax]
neg cx
sbb rdx, rdx
and rbx, rdx
lea rcx, [rbp - 0x20]
call fcn.140120d54
nop
xor r8d, r8d
lea rdx, [rbp - 0x20]
mov rcx, qword [0x14021c5d8]
call fcn.140017028
mov r14, rax
or r8, 0xffffffffffffffff
xor eax, eax
test r15, r15
je 0x14002d0d6
cmp word [r15], ax
je 0x14002d0d6
xor r14d, r14d
test rdi, rdi
je 0x14002d1a7
test rbx, rbx
je 0x14002d023
mov rax, r8
inc rax
cmp word [rbx + rax*2], r14w
jne 0x14002d019
mov rcx, r8
inc rcx
cmp word [rdi + rcx*2], r14w
jne 0x14002d026
mov rdx, r8
inc rdx
cmp word [r15 + rdx*2], r14w
jne 0x14002d033
lea r14, [rcx + rax]
add rdx, 0x20
add r14, rdx
lea rcx, [r14 + r14]
call fcn.140120104
mov rsi, rax
xor eax, eax
test rsi, rsi
je 0x14002d12f
mov word [rsi], ax
mov r8, rdi
mov rdx, r14
mov rcx, rsi
call fcn.140001f38
lea r8, [0x140168a9c]
mov rdx, r14
mov rcx, rsi
call fcn.140001f38
test rbx, rbx
je 0x14002d0b9
lea r8, str._config__
mov rdx, r14
mov rcx, rsi
call fcn.140001f38
mov r8, rbx
mov rdx, r14
mov rcx, rsi
call fcn.140001f38
lea r8, [0x14016b500]
mov rdx, r14
mov rcx, rsi
call fcn.140001f38
lea r8, [0x14016c980]
mov rdx, r14
mov rcx, rsi
call fcn.140001f38
mov r8, r15
mov rdx, r14
jmp 0x14002d199
xor r15d, r15d
test rdi, rdi
je 0x14002d0ed
mov rdx, r8
inc rdx
cmp word [rdi + rdx*2], r15w
jne 0x14002d0e1
jmp 0x14002d0f0
mov rdx, r15
test r14, r14
je 0x14002d104
mov rcx, r8
inc rcx
cmp word [r14 + rcx*2], r15w
jne 0x14002d0f8
jmp 0x14002d107
mov rcx, r15
mov rax, r8
inc rax
cmp word [r12 + rax*2], r15w
jne 0x14002d10a
add rax, rcx
lea rbx, [rdx + 0x20]
add rbx, rax
lea rcx, [rbx + rbx]
call fcn.140120104
mov rsi, rax
test rax, rax
jne 0x14002d139
mov edi, 0x8000ffff
jmp 0x14002d614
mov word [rax], r15w
test rdi, rdi
je 0x14002d168
cmp word [rdi], r15w
je 0x14002d168
mov r8, rdi
mov rdx, rbx
mov rcx, rsi
call fcn.140001f38
lea r8, [0x140168a9c]
mov rdx, rbx
mov rcx, rsi
call fcn.140001f38
test r14, r14
je 0x14002d181
cmp word [r14], r15w
je 0x14002d181
mov r8, r14
mov rdx, rbx
mov rcx, rsi
call fcn.140001f38
lea r8, [0x14016c980]
mov rdx, rbx
mov rcx, rsi
call fcn.140001f38
mov r8, r12
mov rdx, rbx
mov rcx, rsi
call fcn.140001f38
xor r14d, r14d
mov r15, rsi
lea rax, [rsp + 0x60]
mov qword [rsp + 0x20], rax
lea r9, [0x1401b3a68]
xor edx, edx
lea r8d, [rdx + 1]
lea rcx, [0x1401b3b98]
call qword [sym.imp.ole32.dll_CoCreateInstance]
mov edi, eax
test eax, eax
js 0x14002d606
mov r8d, 0x104
lea rdx, [rbp + 0x2e0]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
test eax, eax
je 0x14002d5e7
mov rcx, qword [rsp + 0x60]
mov rax, qword [rcx]
lea rdx, [rbp + 0x2e0]
call qword [rax + 0xa0]
mov edi, eax
lea rcx, [rbp - 0x48]
call fcn.1401286a8
nop
lea rcx, [rbp - 0x80]
call fcn.140120d54
nop
mov dword [rsp + 0x68], r14d
lea rcx, [rbp - 0x58]
call fcn.140120d54
nop
lea rcx, [rbp - 0x10]
call fcn.14012c674
nop
mov rcx, r15
jmp 0x14002d2ae
mov rax, qword [rbp - 0x48]
cmp word [rax], 0x2f
jne 0x14002d24d
mov ecx, 0x2d
mov word [rax], cx
xor r8d, r8d
lea rdx, [0x140171f98]
lea rcx, [rbp - 0x48]
call fcn.140128860
xor ecx, ecx
test al, al
jne 0x14002d398
mov qword [rsp + 0x50], rcx
mov qword [rsp + 0x48], rcx
mov qword [rsp + 0x40], rcx
mov qword [rsp + 0x38], rcx
mov qword [rsp + 0x30], rcx
mov qword [rsp + 0x28], rcx
mov qword [rsp + 0x20], rcx
xor r9d, r9d
lea r8, [0x140171fa8]
lea rdx, [0x140171fb8]
lea rcx, [rbp - 0x48]
call fcn.1401288cc
test al, al
jne 0x14002d2cb
mov rcx, rbx
xor r8d, r8d
lea rdx, [rbp - 0x48]
call fcn.14012571c
mov rbx, rax
test rax, rax
jne 0x14002d23b
jmp 0x14002d3b8
cmp word [rbx], 0x40
je 0x14002d2eb
cmp word [rbx], 0x7b
je 0x14002d2eb
lea rdx, str._Startup_
mov rcx, rbx
call qword [sym.imp.KERNEL32.dll_lstrcmpW]
test eax, eax
jne 0x14002d316
xor r9d, r9d
mov r8, rbx
lea rdx, [rbp - 0x70]
mov rcx, qword [0x14021c5d8]
call fcn.140014ffc
mov rdx, rax
lea rcx, [rbp - 0x58]
call fcn.140120e10
lea rcx, [rbp - 0x70]
call fcn.140120ddc
lea rcx, [rbp - 0x58]
call fcn.14012148c
test al, al
jne 0x14002d38f
lea rcx, [rbp - 0x58]
call fcn.140058574
mov rdx, rax
lea r9, [rbp - 0x10]
xor r8d, r8d
mov rcx, qword [0x14021c5d8]
call fcn.14001e480
mov rbx, rax
mov rax, qword [rbp + 0x30]
test rax, rax
jne 0x14002d387
xor r8d, r8d
mov rdx, rbx
lea rcx, [rbp - 0x70]
call fcn.140128120
nop
mov rcx, rax
call fcn.140121210
mov qword [rbp + 0x10], rax
lea rcx, [rbp - 0x70]
call fcn.140120ddc
xor edx, edx
lea rcx, [rbp - 0x10]
call fcn.14012a1f4
mov rax, qword [rbp + 0x30]
test rax, rax
je 0x14002d38f
mov r14, rax
test rax, rax
jne 0x14002d3b8
lea rcx, [rbp - 0x48]
call fcn.140128704
xor r8d, r8d
lea rdx, [rbp - 0x48]
mov rcx, rbx
call fcn.14012571c
test rax, rax
je 0x14002d3b8
lea rcx, [rbp - 0x48]
call fcn.140058574
mov r14, rax
lea rcx, [rbp - 0x80]
call fcn.1401211c4
xor eax, eax
test r14, r14
je 0x14002d4a7
cmp word [r14], ax
je 0x14002d4a7
lea rcx, [rsp + 0x70]
call fcn.140120d54
nop
or r8, 0xffffffffffffffff
mov rdx, r14
lea rcx, [rsp + 0x70]
call fcn.140121718
lea rdx, [rsp + 0x68]
lea rcx, [rsp + 0x70]
call fcn.14006509c
lea rcx, [rsp + 0x70]
call fcn.140058574
mov rdx, rax
lea rcx, [rbp - 0x70]
call fcn.140127e1c
nop
lea rcx, [rbp - 0x70]
call fcn.14012148c
mov rbx, qword [rbp - 0x70]
xor r14d, r14d
test al, al
cmovne rbx, qword [rsp + 0x70]
lea rdx, [rbp - 0x80]
mov rcx, rbx
call fcn.140123690
test eax, eax
je 0x14002d457
lea rcx, [rbp - 0x80]
call fcn.140058574
mov rcx, rax
xor edx, edx
call fcn.140122088
test al, al
jne 0x14002d493
lea r9, [rbp - 0x80]
xor r8d, r8d
mov rdx, rbx
xor ecx, ecx
call fcn.1401237b0
test eax, eax
jne 0x14002d493
lea r9, [rbp - 0x80]
lea r8, [0x140169428]
mov rdx, rbx
xor ecx, ecx
call fcn.1401237b0
test eax, eax
jne 0x14002d493
lea rcx, [rbp - 0x80]
call fcn.1401211c4
mov dword [rsp + 0x68], r14d
lea rcx, [rbp - 0x70]
call fcn.140120ddc
nop
lea rcx, [rsp + 0x70]
call fcn.140120ddc
mov rax, qword [rsp + 0x60]
mov rbx, qword [rax]
lea rcx, [rbp - 0x80]
call fcn.14012148c
lea rdx, [rbp + 0x2e0]
test al, al
cmove rdx, qword [rbp - 0x80]
mov r8d, dword [rsp + 0x68]
mov rcx, qword [rsp + 0x60]
call qword [rbx + 0x88]
lea rdx, [rbp + 0x2e0]
mov ecx, 0x104
call qword [sym.imp.KERNEL32.dll_GetCurrentDirectoryW]
dec eax
cmp eax, 0x102
ja 0x14002d503
mov rcx, qword [rsp + 0x60]
mov rax, qword [rcx]
lea rdx, [rbp + 0x2e0]
call qword [rax + 0x48]
test edi, edi
js 0x14002d5be
mov rcx, qword [rsp + 0x60]
mov rax, qword [rcx]
mov rdx, r15
call qword [rax + 0x58]
mov edi, eax
test eax, eax
js 0x14002d5be
mov rcx, qword [rsp + 0x60]
mov rax, qword [rcx]
lea r8, [rsp + 0x70]
lea rdx, [0x140171f78]
call qword [rax]
mov edi, eax
test eax, eax
js 0x14002d5be
mov eax, 8
mov word [rbp - 0x70], ax
xorps xmm0, xmm0
xor eax, eax
movups xmmword [rbp - 0x6e], xmm0
mov dword [rbp - 0x5e], eax
mov word [rbp - 0x5a], ax
mov rcx, r12
call qword [sym.imp.OLEAUT32.dll_SysReAllocString]
mov qword [rbp - 0x68], rax
mov rcx, qword [rsp + 0x70]
mov rax, qword [rcx]
lea r8, [rbp - 0x70]
lea rdx, [0x1401b3c40]
call qword [rax + 0x30]
mov edi, eax
test eax, eax
js 0x14002d5a8
mov rcx, qword [rsp + 0x70]
mov rax, qword [rcx]
call qword [rax + 0x38]
mov edi, eax
test eax, eax
js 0x14002d5a8
mov rcx, qword [rsp + 0x60]
mov rax, qword [rcx]
mov r8, r13
lea rdx, [0x140171f88]
call qword [rax]
mov edi, eax
mov rcx, qword [rbp - 0x68]
call qword [sym.imp.OLEAUT32.dll_SysStringLen]
mov rcx, qword [rsp + 0x70]
mov rax, qword [rcx]
call qword [rax + 0x10]
nop
lea rcx, [rbp - 0x10]
call fcn.14012c6a8
nop
lea rcx, [rbp - 0x58]
call fcn.140120ddc
nop
lea rcx, [rbp - 0x80]
call fcn.140120ddc
nop
lea rcx, [rbp - 0x48]
call fcn.1401286cc
jmp 0x14002d5fb
call qword [sym.imp.KERNEL32.dll_GetLastError]
movzx edi, ax
or edi, 0x80070000
test eax, eax
cmovle edi, eax
mov rcx, qword [rsp + 0x60]
mov rax, qword [rcx]
call qword [rax + 0x10]
test rsi, rsi
je 0x14002d614
mov rcx, rsi
call fcn.14012008c
nop
lea rcx, [rbp - 0x20]
call fcn.140120ddc
mov eax, edi
jmp 0x14002d626
mov eax, 0x80070057
mov rcx, qword [rbp + 0x4f0]
xor rcx, rsp
call fcn.140139b10
add rsp, 0x608
pop r15
pop r14
pop r13
pop r12
pop rdi
pop rsi
pop rbx
pop rbp
ret