Function at 0x140147c10
Capabilities:
Create shortcut via ishelllink

Disassembly:
push r15
push r14
push r12
push rsi
push rdi
push rbp
push rbx
sub rsp, 0x300
mov rsi, r8
mov edi, edx
mov r14, rcx
mov rax, qword [0x140430040]
xor rax, rsp
mov qword [rsp + 0x2f8], rax
movaps xmm0, xmmword [0x1403d4b30]
lea rbx, [rsp + 0xb0]
movaps xmmword [rbx + 0x30], xmm0
movaps xmmword [rbx + 0x20], xmm0
movaps xmmword [rbx + 0x10], xmm0
movaps xmmword [rbx], xmm0
lea rdx, str.ResolveShortcutProperties
lea r8, str....._basewin_shortcut.cc
lea r15, [rsp + 0xf0]
mov rcx, r15
mov r9d, Ordinal_219
call fcn.14021c360
mov rcx, rbx
mov rdx, r15
xor r8d, r8d
call fcn.14020f7b0
cmp edi, 0x100
jae 0x14014800e
lea rax, [rsp + 0xa8]
mov qword [rax], 0
mov qword [rsp + 0x20], rax
lea rcx, [0x1403af4a8]
lea r9, [0x1403f9928]
xor ebx, ebx
xor edx, edx
mov r8d, 1
call qword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x140147f87
lea r8, [rsp + 0xa0]
mov qword [r8], 0
mov rcx, qword [rsp + 0xa8]
mov rax, qword [rcx]
mov rax, qword [rax]
lea rdx, [0x1403f9938]
call qword [str._a_]
test eax, eax
js 0x1401481d3
mov rcx, qword [rsp + 0xa0]
cmp byte [r14 + 0x17], 0
jns 0x140147d15
mov r14, qword [r14]
mov rax, qword [rcx]
mov rax, qword [rax + 0x28]
xor ebx, ebx
mov rdx, r14
xor r8d, r8d
call qword [str._a_]
test eax, eax
js 0x140147f61
mov dword [rsi + 0xac], 0
lea rcx, [rsp + 0xf0]
mov r8d, 0x208
mov dl, 0xaa
call fcn.1402b6a10
test dil, 1
je 0x140147dd3
mov rcx, qword [rsp + 0xa8]
mov rax, qword [rcx]
mov rax, qword [rax + 0x18]
mov dword [rsp + 0x20], 2
xor ebx, ebx
lea r14, [rsp + 0xf0]
mov rdx, r14
mov r8d, 0x104
xor r9d, r9d
call qword [str._a_]
test eax, eax
js 0x140147f61
lea rbx, [rsp + 0x70]
mov qword [rbx], r14
mov rcx, r14
call fcn.14029c474
mov qword [rbx + 8], rax
lea r14, [rsp + 0x80]
mov rcx, r14
mov rdx, rbx
call fcn.14021c580
mov rcx, rsi
mov rdx, r14
call fcn.14021c6d0
or byte [rsi + 0xac], 1
mov rcx, r14
call fcn.14021c6c0
test dil, 2
jne 0x1401481da
test dil, 4
je 0x140147f42
mov rcx, qword [rsp + 0xa8]
mov rax, qword [rcx]
mov rax, qword [rax + 0x50]
lea rdx, [rsp + 0xf0]
mov r8d, 0x104
call qword [str._a_]
test eax, eax
js 0x1401481d3
movabs r15, 0x7ffffffffffffff7
lea r14, [rsp + 0xf0]
mov rcx, r14
call fcn.14029c474
cmp rax, r15
ja 0x140148011
mov rbx, rax
cmp rax, 0xa
jbe 0x140147f06
mov rax, rbx
or rax, 3
lea rcx, [rax + 1]
cmp rax, 0xb
mov r12d, reloc.WS2_32.dll_listen
cmovne r12, rcx
test r12, r12
js 0x140148009
lea rcx, [r12 + r12]
call fcn.14027768c
mov rcx, rax
mov qword [rsp + 0x80], rax
lea rax, [r15 + r12]
add rax, 9
mov qword [rsp + 0x90], rax
mov qword [rsp + 0x88], rbx
lea r15, [rcx + rbx*2]
cmp r14, rcx
setb al
cmp r14, r15
setae dl
or dl, al
je 0x140148007
test rbx, rbx
je 0x140147ec0
add rbx, rbx
lea rdx, [rsp + 0xf0]
mov r8, rbx
call fcn.1402b6370
mov word [r15], 0
lea rcx, [rsi + 0x30]
lea rdx, [rsp + 0x80]
cmp rcx, rdx
je 0x140147f2d
cmp byte [rsi + 0x47], 0
movzx r8d, byte [rsp + 0x97]
js 0x140147fe8
test r8b, r8b
jns 0x140147f16
mov rdx, qword [rsp + 0x80]
mov r8, qword [rsp + 0x88]
call fcn.1400e8bf0
jmp 0x140147f2d
lea rcx, [rsp + 0x80]
mov byte [rcx + 0x17], bl
jmp 0x140147e90
mov rax, qword [rsp + 0x90]
mov qword [rcx + 0x10], rax
movups xmm0, xmmword [rsp + 0x80]
movups xmmword [rcx], xmm0
or byte [rsi + 0xac], 4
cmp byte [rsp + 0x97], 0
js 0x14014801e
test dil, 8
jne 0x1401480bb
test dil, 0x10
jne 0x140148030
mov bl, 1
cmp edi, 0x20
jae 0x14014812d
mov rcx, qword [rsp + 0xa0]
test rcx, rcx
je 0x140147f87
mov qword [rsp + 0xa0], 0
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [str._a_]
mov rcx, qword [rsp + 0xa8]
test rcx, rcx
je 0x140147fad
mov qword [rsp + 0xa8], 0
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [str._a_]
lea rcx, [rsp + 0xb0]
call fcn.14020f840
mov rcx, qword [rsp + 0x2f8]
xor rcx, rsp
cmp rcx, qword [0x140430040]
je 0x140147fd4
call fcn.140278ca0
int3
mov eax, ebx
add rsp, 0x300
pop rbx
pop rbp
pop rdi
pop rsi
pop r12
pop r14
pop r15
ret
test r8b, r8b
cmovs r8, qword [rsp + 0x88]
cmovs rdx, qword [rsp + 0x80]
call fcn.1400e8a90
jmp 0x140147f2d
ud2
call fcn.1402b9a10
int3
lea rcx, [rsp + 0x80]
call fcn.1402b99d0
mov rcx, qword [rsp + 0x80]
call fcn.1402776c8
jmp 0x140147f42
lea r9, [rsp + 0x30]
mov dword [r9], 0xaaaaaaaa
mov rcx, qword [rsp + 0xa8]
mov rax, qword [rcx]
mov rax, qword [rax + 0x80]
lea rbx, [rsp + 0xf0]
mov rdx, rbx
mov r8d, 0x104
call qword [str._a_]
test eax, eax
js 0x1401481d3
mov ebp, dword [rsp + 0x30]
lea r14, [rsp + 0x50]
mov qword [r14], rbx
mov rcx, rbx
call fcn.14029c474
mov qword [r14 + 8], rax
lea rbx, [rsp + 0x80]
mov rcx, rbx
mov rdx, r14
call fcn.14021c580
lea rcx, [rsi + 0x60]
mov rdx, rbx
call fcn.14021c6d0
mov dword [rsi + 0x78], ebp
or byte [rsi + 0xac], 0x10
mov rcx, rbx
call fcn.14021c6c0
jmp 0x140147f56
mov rcx, qword [rsp + 0xa8]
mov rax, qword [rcx]
mov rax, qword [rax + 0x30]
lea rdx, [rsp + 0xf0]
mov r8d, 0x104
call qword [str._a_]
test eax, eax
js 0x1401481d3
lea rbx, [rsp + 0x80]
lea rdx, [rsp + 0xf0]
mov rcx, rbx
call fcn.140201c60
lea rcx, [rsi + 0x48]
mov rdx, rbx
call fcn.140202070
or byte [rsi + 0xac], 8
cmp byte [rbx + 0x17], 0
jns 0x140147f4c
mov rcx, qword [rsp + 0x80]
call fcn.1402776c8
jmp 0x140147f4c
lea r8, [rsp + 0x48]
mov qword [r8], 0
mov rcx, qword [rsp + 0xa8]
mov rax, qword [rcx]
mov rax, qword [rax]
lea rdx, [0x1403f9948]
call qword [str._a_]
test eax, eax
js 0x1401481b3
test dil, 0x20
je 0x1401482c3
xorps xmm0, xmm0
lea r14, [rsp + 0x80]
movaps xmmword [r14], xmm0
mov qword [r14 + 0x10], 0
mov rcx, qword [rsp + 0x48]
mov rax, qword [rcx]
mov rax, qword [rax + 0x28]
lea rdx, [0x1403ec218]
mov r8, r14
call qword [str._a_]
movzx ecx, word [r14]
test eax, eax
je 0x14014824b
test ecx, ecx
je 0x1401481b3
lea rcx, [rsp + 0x80]
call qword [sym.imp.ole32.dll_PropVariantClear]
mov rcx, qword [rsp + 0x48]
test rcx, rcx
je 0x1401481d3
mov qword [rsp + 0x48], 0
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [str._a_]
xor ebx, ebx
jmp 0x140147f61
mov rcx, qword [rsp + 0xa8]
mov rax, qword [rcx]
mov rax, qword [rax + 0x40]
lea rbx, [rsp + 0xf0]
mov rdx, rbx
mov r8d, 0x104
call qword [str._a_]
test eax, eax
js 0x1401481d3
lea r14, [rsp + 0x60]
mov qword [r14], rbx
mov rcx, rbx
call fcn.14029c474
mov qword [r14 + 8], rax
lea rbx, [rsp + 0x80]
mov rcx, rbx
mov rdx, r14
call fcn.14021c580
lea rcx, [rsi + 0x18]
mov rdx, rbx
call fcn.14021c6d0
or byte [rsi + 0xac], 2
mov rcx, rbx
call fcn.14021c6c0
jmp 0x140147ddd
cmp ecx, 0x1f
je 0x14014826e
test ecx, ecx
jne 0x1401483f7
xorps xmm0, xmm0
lea r14, [rsp + 0x30]
movaps xmmword [r14], xmm0
mov qword [r14 + 0x10], 0
jmp 0x140148283
mov rdx, qword [rsp + 0x88]
lea r14, [rsp + 0x30]
mov rcx, r14
call fcn.140201c60
lea rcx, [rsi + 0x80]
mov rdx, r14
call fcn.140202070
or byte [rsi + 0xac], 0x20
cmp byte [r14 + 0x17], 0
jns 0x1401482aa
mov rcx, qword [rsp + 0x30]
call fcn.1402776c8
cmp word [rsp + 0x80], 0
je 0x1401482c3
lea rcx, [rsp + 0x80]
call qword [sym.imp.ole32.dll_PropVariantClear]
test dil, 0x40
je 0x140148346
xorps xmm0, xmm0
lea r14, [rsp + 0x80]
movaps xmmword [r14], xmm0
mov qword [r14 + 0x10], 0
mov rcx, qword [rsp + 0x48]
mov rax, qword [rcx]
mov rax, qword [rax + 0x28]
lea rdx, [0x1403ec22c]
mov r8, r14
call qword [str._a_]
movzx ecx, word [r14]
test eax, eax
jne 0x1401481a1
cmp ecx, 0xb
je 0x140148325
test ecx, ecx
jne 0x1401483fa
mov byte [rsi + 0x98], 0
or byte [rsi + 0xac], 0x40
jmp 0x140148346
lea rcx, [rsp + 0x80]
cmp word [rcx + 8], 0xffff
sete byte [rsi + 0x98]
or byte [rsi + 0xac], 0x40
call qword [sym.imp.ole32.dll_PropVariantClear]
cmp edi, 0x80
jb 0x1401483b3
xorps xmm0, xmm0
lea rdi, [rsp + 0x80]
movaps xmmword [rdi], xmm0
mov qword [rdi + 0x10], 0
mov rcx, qword [rsp + 0x48]
mov rax, qword [rcx]
mov rax, qword [rax + 0x28]
lea rdx, [0x1403ec240]
mov r8, rdi
call qword [str._a_]
movzx ecx, word [rdi]
test eax, eax
jne 0x1401481a1
cmp ecx, 0x48
jne 0x1401483dc
lea rcx, [rsp + 0x80]
mov rax, qword [rcx + 8]
movups xmm0, xmmword [rax]
movups xmmword [rsi + 0x9c], xmm0
or byte [rsi + 0xac], 0x80
call qword [sym.imp.ole32.dll_PropVariantClear]
mov rcx, qword [rsp + 0x48]
test rcx, rcx
je 0x140147f61
mov qword [rsp + 0x48], 0
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [str._a_]
jmp 0x140147f61
test ecx, ecx
jne 0x1401483fd
movups xmm0, xmmword [0x1403ae3b0]
movups xmmword [rsi + 0x9c], xmm0
or byte [rsi + 0xac], 0x80
jmp 0x1401483b3
int3
int3
int3