Function at 0x140018144
Capabilities:
Get common file path

Disassembly:
mov rax, rsp
push rbp
push r14
push r15
lea rbp, [rax - 0xa98]
sub rsp, 0xb80
mov qword [rbp + 0x50], 0xfffffffffffffffe
mov qword [rax + 8], rbx
mov qword [rax + 0x10], rsi
mov qword [rax + 0x18], rdi
mov rax, qword [0x1401a2e90]
xor rax, rsp
mov qword [rbp + 0xa70], rax
lea rcx, [0x1401a29a8]
mov rax, qword [0x1401a29a8]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x20], rax
mov r9d, dword [0x1401aad80]
lea ecx, [r9 + 2]
lea eax, [r9 + 1]
imul ecx, eax
imul ecx, r9d
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0x16
sub ecx, edx
xor r15d, r15d
lea edi, [r15 + 1]
cmp ecx, 0x12
jne 0x14001823a
mov esi, r15d
lea r14, [rbp + 0xd0]
mov r10d, r15d
lea ebx, [r10 + 1]
lea ecx, [rsi + 1]
mov eax, r9d
cdq
idiv ecx
mov r8d, edx
mov ecx, r9d
sub ecx, esi
imul r8d, ecx
mov eax, r9d
cdq
idiv ebx
add r8d, eax
sub r8d, r10d
mov dword [r14], r8d
mov edx, r8d
lea rcx, [0x140138060]
call fcn.1400be234
mov r10d, ebx
add r14, 4
cmp ebx, 0x16
jge 0x14001822a
mov r9d, dword [0x1401aad80]
jmp 0x1400181de
add esi, edi
cmp esi, 0x10
jge 0x14001823a
mov r9d, dword [0x1401aad80]
jmp 0x1400181db
lea rax, [rbp + 0x38]
mov qword [rsp + 0x68], rax
lea rdx, str.113432393e713e37375c5b
lea rcx, [rbp + 0x38]
call fcn.140001f6c
nop
mov rdx, rax
lea rcx, [rbp + 0x10]
call fcn.1400233a4
nop
mov rdx, qword [rax]
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x20]
call fcn.14000e884
nop
mov rdx, qword [rbp + 0x10]
add rdx, 0xffffffffffffffe8
or r14d, 0xffffffff
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, r14d
test eax, eax
jg 0x140018297
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rax, [rbp + 0x40]
mov qword [rsp + 0x28], rax
lea rdx, str.1817711f1e0571140918020571746071161e051e71141f155c5b
lea rcx, [rbp + 0x40]
call fcn.140001f6c
nop
mov rdx, rax
lea rcx, [rbp - 8]
call fcn.1400233a4
nop
mov rdx, qword [rax]
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x20]
call fcn.14000e884
nop
mov rdx, qword [rbp - 8]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, r14d
test eax, eax
jg 0x1400182f0
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rax, [rbp - 0x78]
mov qword [rsp + 0x28], rax
lea rdx, str.021405717e3071386c615c5b
lea rcx, [rbp - 0x78]
call fcn.140001f6c
nop
mov rdx, rax
lea rcx, [rbp + 0x20]
call fcn.1400233a4
nop
mov rdx, qword [rax]
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x20]
call fcn.14000e884
nop
mov rdx, qword [rbp + 0x20]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, r14d
test eax, eax
jg 0x140018349
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rax, [rbp - 0x68]
mov qword [rsp + 0x28], rax
lea rdx, str.6b0314011410055c5b
lea rcx, [rbp - 0x68]
call fcn.140001f6c
nop
mov rdx, rax
lea rcx, [rbp + 8]
call fcn.1400233a4
nop
mov rdx, qword [rax]
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x20]
call fcn.14000e884
nop
mov rdx, qword [rbp + 8]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, r14d
test eax, eax
jg 0x1400183a2
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rax, [rbp - 0x58]
mov qword [rsp + 0x28], rax
lea rdx, str.1817717438746c6c676171161e051e71141f155c5b
lea rcx, [rbp - 0x58]
call fcn.140001f6c
nop
mov rdx, rax
lea rcx, [rbp + 0x28]
call fcn.1400233a4
nop
mov rdx, qword [rax]
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x20]
call fcn.14000e884
nop
mov rdx, qword [rbp + 0x28]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, r14d
test eax, eax
jg 0x1400183fb
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rax, [rbp - 0x48]
mov qword [rsp + 0x28], rax
lea rdx, str.15141d7174605c5b
lea rcx, [rbp - 0x48]
call fcn.140001f6c
nop
mov rdx, rax
lea rcx, [rbp + 0x18]
call fcn.1400233a4
nop
mov rdx, qword [rax]
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x20]
call fcn.14000e884
nop
mov rdx, qword [rbp + 0x18]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, r14d
test eax, eax
jg 0x140018454
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rax, [rbp - 0x38]
mov qword [rsp + 0x28], rax
lea rdx, str.1817711f1e0571140918020571746071161e051e71141f155c5b
lea rcx, [rbp - 0x38]
call fcn.140001f6c
nop
mov rdx, rax
lea rcx, [rsp + 0x70]
call fcn.1400233a4
nop
mov rdx, qword [rax]
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x20]
call fcn.14000e884
nop
mov rdx, qword [rsp + 0x70]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, r14d
test eax, eax
jg 0x1400184af
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rax, [rbp - 0x28]
mov qword [rsp + 0x28], rax
lea rdx, str.21383f3671607f607f607f60717c3f7160717c267160616161716f713f243d5c5b
lea rcx, [rbp - 0x28]
call fcn.140001f6c
nop
mov rdx, rax
lea rcx, [rbp + 0x48]
call fcn.1400233a4
nop
mov rdx, qword [rax]
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x20]
call fcn.14000e884
nop
mov rdx, qword [rbp + 0x48]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, r14d
test eax, eax
jg 0x140018508
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rax, [rbp - 0x18]
mov qword [rsp + 0x28], rax
lea rdx, str.021405717e3071386c7438747a605c5b
lea rcx, [rbp - 0x18]
call fcn.140001f6c
nop
mov rdx, rax
lea rcx, [rbp + 0x30]
call fcn.1400233a4
nop
mov rdx, qword [rax]
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x20]
call fcn.14000e884
nop
mov rdx, qword [rbp + 0x30]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, r14d
test eax, eax
jg 0x140018561
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rax, [rsp + 0x78]
mov qword [rsp + 0x28], rax
lea rdx, str.161e051e710314011410055c5b
lea rcx, [rsp + 0x78]
call fcn.140001f6c
nop
mov rdx, rax
lea rcx, [rbp - 0x80]
call fcn.1400233a4
nop
mov rdx, qword [rax]
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x20]
call fcn.14000e884
nop
mov rdx, qword [rbp - 0x80]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, r14d
test eax, eax
jg 0x1400185bc
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rax, [rbp - 0x70]
mov qword [rsp + 0x28], rax
lea rdx, str.6b141f155c5b
lea rcx, [rbp - 0x70]
call fcn.140001f6c
nop
mov rdx, rax
lea rcx, [rbp - 0x60]
call fcn.1400233a4
nop
mov rdx, qword [rax]
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x20]
call fcn.14000e884
nop
mov rdx, qword [rbp - 0x60]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, r14d
test eax, eax
jg 0x140018615
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rax, [rbp - 0x50]
mov qword [rsp + 0x28], rax
lea rdx, str.15141d7174615c5b
lea rcx, [rbp - 0x50]
call fcn.140001f6c
nop
mov rdx, rax
lea rcx, [rbp - 0x40]
call fcn.1400233a4
nop
mov rdx, qword [rax]
mov r8d, dword [rdx - 0x10]
lea rcx, [rsp + 0x20]
call fcn.14000e884
nop
mov rdx, qword [rbp - 0x40]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, r14d
test eax, eax
jg 0x14001866e
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov word [rbp + 0x650], r15w
mov ebx, 0x206
mov r8d, ebx
xor edx, edx
lea rcx, [rbp + 0x652]
call fcn.1400c2d60
mov esi, 0x104
mov r8d, esi
lea rdx, [rbp + 0x650]
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetModuleFileNameW]
mov eax, dword [0x1401aad80]
lea ecx, [rax + 1]
imul ecx, eax
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0x16
sub ecx, edx
cmp ecx, 0xd
jne 0x1400186ef
lea eax, [rsi - 8]
lea r8d, [rsi - 0x3e]
test r8d, r8d
je 0x1400186e6
mov ecx, r8d
cdq
idiv r8d
mov r8d, edx
mov eax, ecx
test ecx, ecx
jne 0x1400186d1
add eax, r8d
mov dword [0x1401aad80], eax
lea rdx, [rbp + 0x650]
lea rcx, [rsp + 0x50]
call fcn.140001f6c
nop
lea rcx, [0x1401a29a8]
mov rax, qword [0x1401a29a8]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x38], rax
mov edx, edi
sub edx, dword [rax - 8]
mov ecx, dword [rax - 0xc]
sub ecx, edi
or ecx, edx
jge 0x14001873a
mov edx, edi
lea rcx, [rsp + 0x38]
call fcn.140002210
mov rax, qword [rsp + 0x38]
mov ecx, 0x22
mov word [rax], cx
cmp dword [rax - 0xc], edi
jge 0x140018752
mov ecx, 0x80070057
call fcn.140001874
int3
mov dword [rax - 0x10], edi
mov word [rax + 2], r15w
lea r8, [rsp + 0x50]
lea rdx, [rsp + 0x38]
lea rcx, [rbp - 0x30]
call fcn.14000de60
nop
mov rdx, rax
lea rcx, [rsp + 0x40]
call fcn.1400191c8
nop
mov rdx, qword [rbp - 0x30]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, r14d
test eax, eax
jg 0x14001879d
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x38]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, r14d
test eax, eax
jg 0x1400187be
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
lea rcx, [0x1401a29a8]
mov rax, qword [0x1401a29a8]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x48], rax
call fcn.1400be2e0
mov r8d, eax
lea rdx, [0x1401393a8]
lea rcx, [rsp + 0x48]
call fcn.1400101f8
mov word [rbp + 0x860], r15w
mov r8, rbx
xor edx, edx
lea rcx, [rbp + 0x862]
call fcn.1400c2d60
lea rdx, [rbp + 0x860]
mov ecx, esi
call qword [sym.imp.KERNEL32.dll_GetTempPathW]
lea rcx, [0x1401a29a8]
mov rax, qword [0x1401a29a8]
call qword [rax + 0x18]
add rax, 0x18
mov qword [rsp + 0x58], rax
lea r8, [rbp + 0x860]
lea rdx, [rsp + 0x58]
lea rcx, [rbp - 0x10]
call fcn.140019018
nop
lea r8, [rsp + 0x48]
mov rdx, rax
lea rcx, [rbp - 0x20]
call fcn.14000de60
nop
lea r8, str..bat
mov rdx, rax
lea rcx, [rsp + 0x30]
call fcn.140019018
nop
mov rdx, qword [rbp - 0x20]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, r14d
test eax, eax
jg 0x140018891
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rbp - 0x10]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, r14d
test eax, eax
jg 0x1400188b2
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x58]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, r14d
test eax, eax
jg 0x1400188d4
mov rcx, qword [rdx]
mov r8, qword [rcx]
call qword [rreloc.OLEAUT32.dll_VariantClear + 8]
mov rdx, qword [rsp + 0x20]
lea rcx, [rsp + 0x60]
call fcn.140018bd8
nop
mov r8d, dword [0x1401aad80]
lea ecx, [r8 + 1]
imul ecx, r8d
mov eax, 0x2e8ba2e9
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
imul edx, edx, 0x16
sub ecx, edx
cmp ecx, 7
jne 0x140018958
lea r10d, [rcx + 0x37]
mov ecx, r15d
mov eax, r8d
cdq
sub eax, edx
sar eax, 1
mov esi, eax
test esi, esi
jle 0x140018951
mov eax, r8d
cdq
and edx, 3
add eax, edx
sar eax, 2
mov r9d, r15d
mov rbx, rsi
test eax, eax
jle 0x140018949
mov edx, r9d
mov r11d, eax
add r10d, edx
sub edx, edi
sub r11, rdi
jne 0x14001893f
add r9d, ecx
sub rbx, rdi
jne 0x140018935
add ecx, edi
cmp ecx, r10d
jl 0x14001891f
lea rdx, [rsp + 0x60]
lea rcx, [rsp + 0x30]
call fcn.140025184
mov ebx, 0x70
mov r8d, ebx
xor edx, edx
lea rcx, [rbp + 0x60]
call fcn.1400c2d60
mov r8d, dword [0x1401aad80]
lea ecx, [r8 + 2]
lea eax, [r8 + 1]
imul ecx, eax
imul ecx, r8d
mov eax, 0x2aaaaaab
imul ecx
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*2]
add eax, eax
sub ecx, eax
cmp ecx, 5
jne 0x1400189b4
sub r8d, edi
mov dword [0x1401aad80], r8d
mov dword [rbp + 0x60], ebx
lea rax, [rbp]
mov qword [rsp + 0x28], rax
lea rdx, str.3e21343f
lea rcx, [rbp]
call fcn.140001f6c
nop
mov rdx, rax
lea rcx, [rsp + 0x68]
call fcn.1400233a4
nop
mov rax, qword [rax]
mov qword [rbp + 0x70], rax
mov rdx, qword [rsp + 0x68]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, r14d
test eax, eax
jg 0x140018a07
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov eax, dword [0x1401aad80]
mov ecx, eax
imul ecx, eax
imul ecx, eax
mov eax, 0x38e38e39
imul ecx
sar edx, 2
mov eax, edx
shr eax, 0x1f
add edx, eax
lea eax, [rdx + rdx*8]
add eax, eax
sub ecx, eax
cmp ecx, 0xd
jne 0x140018a3a
xor ecx, ecx
call qword [sym.imp.KERNEL32.dll_GetFileType]
mov rax, qword [rsp + 0x30]
mov edx, edi
sub edx, dword [rax - 8]
mov ecx, dword [rax - 0xc]
or ecx, edx
jge 0x140018a5c
xor edx, edx
lea rcx, [rsp + 0x30]
call fcn.140002210
mov rax, qword [rsp + 0x30]
mov qword [rbp + 0x78], rax
mov dword [rbp + 0x90], r15d
mov dword [rbp + 0x64], 0x440
mov rax, qword [rsp + 0x40]
sub edi, dword [rax - 8]
mov ecx, dword [rax - 0xc]
or ecx, edi
jge 0x140018a8e
xor edx, edx
lea rcx, [rsp + 0x40]
call fcn.140002210
mov rax, qword [rsp + 0x40]
mov qword [rbp + 0x80], rax
mov rax, qword [0x1401acec0]
test rax, rax
jne 0x140018ad8
lea rcx, str.Shell32.dll
call qword [sym.imp.KERNEL32.dll_LoadLibraryW]
test rax, rax
je 0x140018acc
lea rdx, str.ShellExecuteExW
mov rcx, rax
call qword [sym.imp.KERNEL32.dll_GetProcAddress]
mov qword [0x1401acec0], rax
jmp 0x140018ad3
mov rax, qword [0x1401acec0]
test rax, rax
je 0x140018adf
lea rcx, [rbp + 0x60]
call rax
nop
mov rdx, qword [rsp + 0x60]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, r14d
test eax, eax
jg 0x140018b01
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x30]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, r14d
test eax, eax
jg 0x140018b23
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x48]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, r14d
test eax, eax
jg 0x140018b45
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x40]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, r14d
test eax, eax
jg 0x140018b67
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x50]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, r14d
test eax, eax
jg 0x140018b89
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
nop
mov rdx, qword [rsp + 0x20]
add rdx, 0xffffffffffffffe8
mov eax, r14d
lock xadd dword [rdx + 0x10], eax
add eax, r14d
test eax, eax
jg 0x140018baa
mov rcx, qword [rdx]
mov rax, qword [rcx]
call qword [rax + reloc.OLEAUT32.dll_VariantClear]
mov rcx, qword [rbp + 0xa70]
xor rcx, rsp
call fcn.1400bd920
lea r11, [rsp + 0xb80]
mov rbx, qword [r11 + 0x20]
mov rsi, qword [r11 + 0x28]
mov rdi, qword [r11 + 0x30]
mov rsp, r11
pop r15
pop r14
pop rbp
ret