Function at 0x1400bb650
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 [0x14037e040]
xor rax, rsp
mov qword [rsp + 0x2f8], rax
movaps xmm0, xmmword [0x1402faf80]
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, 0xda
call fcn.1401250e0
mov rcx, rbx
mov rdx, r15
xor r8d, r8d
call fcn.14011a140
cmp edi, 0x100
jae 0x1400bba46
lea rax, [rsp + 0xa8]
mov qword [rax], 0
mov qword [rsp + 0x20], rax
lea rcx, [0x1402ef048]
lea r9, [0x14032a770]
xor ebx, ebx
xor edx, edx
mov r8d, 1
call qword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x1400bb9c9
lea r8, [rsp + 0xa0]
mov qword [r8], 0
mov rcx, qword [rsp + 0xa8]
mov rax, qword [rcx]
mov rax, qword [rax]
lea rdx, [0x14032a780]
call qword [0x14036e598]
test eax, eax
js 0x1400bbcf9
mov rcx, qword [rsp + 0xa0]
cmp byte [r14 + 0x17], 0
jns 0x1400bb755
mov r14, qword [r14]
mov rax, qword [rcx]
mov rax, qword [rax + 0x28]
xor ebx, ebx
mov rdx, r14
xor r8d, r8d
call qword [0x14036e598]
test eax, eax
js 0x1400bb9a3
mov dword [rsi + 0xac], 0
lea rcx, [rsp + 0xf0]
mov r8d, 0x208
mov dl, 0xaa
call fcn.1401a5660
test dil, 1
je 0x1400bb813
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 [0x14036e598]
test eax, eax
js 0x1400bb9a3
lea rbx, [rsp + 0x70]
mov qword [rbx], r14
mov rcx, r14
call fcn.14018deb4
mov qword [rbx + 8], rax
lea r14, [rsp + 0x80]
mov rcx, r14
mov rdx, rbx
call fcn.140125dc0
mov rcx, rsi
mov rdx, r14
call fcn.140125f10
or byte [rsi + 0xac], 1
mov rcx, r14
call fcn.140125f00
test dil, 2
jne 0x1400bbd6e
test dil, 4
je 0x1400bb983
mov rcx, qword [rsp + 0xa8]
mov rax, qword [rcx]
mov rax, qword [rax + 0x50]
lea rdx, [rsp + 0xf0]
mov r8d, 0x104
call qword [0x14036e598]
test eax, eax
js 0x1400bbcf9
movabs r15, 0x7ffffffffffffff7
lea r14, [rsp + 0xf0]
mov rcx, r14
call fcn.14018deb4
cmp rax, r15
ja 0x1400bba50
mov rbx, rax
cmp rax, 0xa
jbe 0x1400bb947
lea rax, [r15 + 5]
and rax, rbx
add rax, 4
mov r12, rbx
or r12, 3
cmp r12, 0xb
cmove r12, rax
inc r12
js 0x1400bba41
lea rcx, [r12 + r12]
call fcn.14016b6ec
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 rcx, r14
seta al
cmp r15, r14
setbe dl
or dl, al
je 0x1400bba3f
test rbx, rbx
je 0x1400bb901
add rbx, rbx
lea rdx, [rsp + 0xf0]
mov r8, rbx
call fcn.1401a4fc0
mov word [r15], 0
lea rcx, [rsi + 0x30]
lea rdx, [rsp + 0x80]
cmp rcx, rdx
je 0x1400bb96e
cmp byte [rsi + 0x47], 0
movzx r8d, byte [rsp + 0x97]
js 0x1400bba20
test r8b, r8b
jns 0x1400bb957
mov rdx, qword [rsp + 0x80]
mov r8, qword [rsp + 0x88]
call fcn.140044f20
jmp 0x1400bb96e
lea rcx, [rsp + 0x80]
mov byte [rcx + 0x17], bl
jmp 0x1400bb8d1
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 0x1400bba5d
test dil, 8
jne 0x1400bbd00
test dil, 0x10
jne 0x1400bbde3
mov bl, 1
test dil, 0xe0
jne 0x1400bbc53
mov rcx, qword [rsp + 0xa0]
test rcx, rcx
je 0x1400bb9c9
mov qword [rsp + 0xa0], 0
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [0x14036e598]
mov rcx, qword [rsp + 0xa8]
test rcx, rcx
je 0x1400bb9ef
mov qword [rsp + 0xa8], 0
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [0x14036e598]
lea rcx, [rsp + 0xb0]
call fcn.14011a1c0
mov rcx, qword [rsp + 0x2f8]
xor rcx, rsp
call fcn.14016cc60
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.140044dc0
jmp 0x1400bb96e
ud2
call fcn.1401a65f0
call fcn.1401dff40
jmp 0x1400bb6d7
lea rcx, [rsp + 0x80]
call fcn.1401a65b0
mov rcx, qword [rsp + 0x80]
call fcn.14016b728
jmp 0x1400bb983
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]
jmp 0x1400bbbcb
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]
jmp 0x1400bbb60
mov byte [rsi + 0x98], 0
or byte [rsi + 0xac], 0x40
jmp 0x1400bbb60
mov rdx, qword [rsp + 0x88]
lea r14, [rsp + 0x30]
mov rcx, r14
call fcn.140109820
jmp 0x1400bbb16
movzx eax, word [rsp + 0x80]
cmp eax, 0x1f
je 0x1400bbad0
test eax, eax
je 0x1400bbb02
call fcn.1401dff40
jmp 0x1400bbcc0
xorps xmm0, xmm0
lea r14, [rsp + 0x30]
movaps xmmword [r14], xmm0
mov qword [r14 + 0x10], 0
lea rcx, [rsi + 0x80]
mov rdx, r14
call fcn.140109c70
or byte [rsi + 0xac], 0x20
cmp byte [r14 + 0x17], 0
jns 0x1400bbb3d
mov rcx, qword [rsp + 0x30]
call fcn.14016b728
cmp word [rsp + 0x80], 0
je 0x1400bbb56
lea rcx, [rsp + 0x80]
call qword [sym.imp.ole32.dll_PropVariantClear]
test dil, 0x40
jne 0x1400bbbf4
test dil, dil
jns 0x1400bbbcb
xorps xmm0, xmm0
lea r8, [rsp + 0x80]
movaps xmmword [r8], xmm0
mov qword [r8 + 0x10], 0
mov rcx, qword [rsp + 0x48]
mov rax, qword [rcx]
mov rax, qword [rax + 0x28]
lea rdx, [0x140315024]
call qword [0x14036e598]
test eax, eax
jne 0x1400bbcc0
movzx eax, word [rsp + 0x80]
cmp eax, 0x48
je 0x1400bba6f
test eax, eax
jne 0x1400bbc4c
movups xmm0, xmmword [0x1402ef030]
movups xmmword [rsi + 0x9c], xmm0
or byte [rsi + 0xac], 0x80
mov rcx, qword [rsp + 0x48]
test rcx, rcx
je 0x1400bb9a3
mov qword [rsp + 0x48], 0
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [0x14036e598]
jmp 0x1400bb9a3
xorps xmm0, xmm0
lea r8, [rsp + 0x80]
movaps xmmword [r8], xmm0
mov qword [r8 + 0x10], 0
mov rcx, qword [rsp + 0x48]
mov rax, qword [rcx]
mov rax, qword [rax + 0x28]
lea rdx, [0x140315010]
call qword [0x14036e598]
test eax, eax
jne 0x1400bbcc0
movzx eax, word [rsp + 0x80]
cmp eax, 0xb
je 0x1400bba97
test eax, eax
je 0x1400bbabd
call fcn.1401dff40
jmp 0x1400bbcc0
call fcn.1401dff40
jmp 0x1400bbcc0
lea r8, [rsp + 0x48]
mov qword [r8], 0
mov rcx, qword [rsp + 0xa8]
mov rax, qword [rcx]
mov rax, qword [rax]
lea rdx, [0x14032a790]
call qword [0x14036e598]
test eax, eax
js 0x1400bbcd9
test dil, 0x20
je 0x1400bbb56
xorps xmm0, xmm0
lea r8, [rsp + 0x80]
movaps xmmword [r8], xmm0
mov qword [r8 + 0x10], 0
mov rcx, qword [rsp + 0x48]
mov rax, qword [rcx]
mov rax, qword [rax + 0x28]
lea rdx, [0x140314ffc]
call qword [0x14036e598]
test eax, eax
je 0x1400bbae7
cmp word [rsp + 0x80], 0
je 0x1400bbcd9
lea rcx, [rsp + 0x80]
call qword [sym.imp.ole32.dll_PropVariantClear]
mov rcx, qword [rsp + 0x48]
test rcx, rcx
je 0x1400bbcf9
mov qword [rsp + 0x48], 0
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [0x14036e598]
xor ebx, ebx
jmp 0x1400bb9a3
mov rcx, qword [rsp + 0xa8]
mov rax, qword [rcx]
mov rax, qword [rax + 0x30]
lea rdx, [rsp + 0xf0]
mov r8d, 0x104
call qword [0x14036e598]
test eax, eax
js 0x1400bbcf9
lea rbx, [rsp + 0x80]
lea rdx, [rsp + 0xf0]
mov rcx, rbx
call fcn.140109820
lea rcx, [rsi + 0x48]
mov rdx, rbx
call fcn.140109c70
or byte [rsi + 0xac], 8
cmp byte [rbx + 0x17], 0
jns 0x1400bb98d
mov rcx, qword [rsp + 0x80]
call fcn.14016b728
jmp 0x1400bb98d
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 [0x14036e598]
test eax, eax
js 0x1400bbcf9
lea r14, [rsp + 0x60]
mov qword [r14], rbx
mov rcx, rbx
call fcn.14018deb4
mov qword [r14 + 8], rax
lea rbx, [rsp + 0x80]
mov rcx, rbx
mov rdx, r14
call fcn.140125dc0
lea rcx, [rsi + 0x18]
mov rdx, rbx
call fcn.140125f10
or byte [rsi + 0xac], 2
mov rcx, rbx
call fcn.140125f00
jmp 0x1400bb81d
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 [0x14036e598]
test eax, eax
js 0x1400bbcf9
mov ebp, dword [rsp + 0x30]
lea r14, [rsp + 0x50]
mov qword [r14], rbx
mov rcx, rbx
call fcn.14018deb4
mov qword [r14 + 8], rax
lea rbx, [rsp + 0x80]
mov rcx, rbx
mov rdx, r14
call fcn.140125dc0
lea rcx, [rsi + 0x60]
mov rdx, rbx
call fcn.140125f10
mov dword [rsi + 0x78], ebp
or byte [rsi + 0xac], 0x10
mov rcx, rbx
call fcn.140125f00
jmp 0x1400bb997