Function at 0x1400bbe30
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.140125120
mov rcx, rbx
mov rdx, r15
xor r8d, r8d
call fcn.14011a200
cmp edi, 0x100
jae 0x1400bc226
lea rax, [rsp + 0xa8]
mov qword [rax], 0
mov qword [rsp + 0x20], rax
lea rcx, [0x1402ef048]
lea r9, [0x14032a730]
xor ebx, ebx
xor edx, edx
mov r8d, 1
call qword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x1400bc1a9
lea r8, [rsp + 0xa0]
mov qword [r8], 0
mov rcx, qword [rsp + 0xa8]
mov rax, qword [rcx]
mov rax, qword [rax]
lea rdx, [0x14032a740]
call qword [0x14036e550]
test eax, eax
js 0x1400bc4d9
mov rcx, qword [rsp + 0xa0]
cmp byte [r14 + 0x17], 0
jns 0x1400bbf35
mov r14, qword [r14]
mov rax, qword [rcx]
mov rax, qword [rax + 0x28]
xor ebx, ebx
mov rdx, r14
xor r8d, r8d
call qword [0x14036e550]
test eax, eax
js 0x1400bc183
mov dword [rsi + 0xac], 0
lea rcx, [rsp + 0xf0]
mov r8d, 0x208
mov dl, 0xaa
call fcn.1401a5320
test dil, 1
je 0x1400bbff3
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 [0x14036e550]
test eax, eax
js 0x1400bc183
lea rbx, [rsp + 0x70]
mov qword [rbx], r14
mov rcx, r14
call fcn.14018db74
mov qword [rbx + 8], rax
lea r14, [rsp + 0x80]
mov rcx, r14
mov rdx, rbx
call fcn.140125e00
mov rcx, rsi
mov rdx, r14
call fcn.140125f50
or byte [rsi + 0xac], 1
mov rcx, r14
call fcn.140125f40
test dil, 2
jne 0x1400bc54e
test dil, 4
je 0x1400bc163
mov rcx, qword [rsp + 0xa8]
mov rax, qword [rcx]
mov rax, qword [rax + 0x50]
lea rdx, [rsp + 0xf0]
mov r8d, 0x104
call qword [0x14036e550]
test eax, eax
js 0x1400bc4d9
movabs r15, 0x7ffffffffffffff7
lea r14, [rsp + 0xf0]
mov rcx, r14
call fcn.14018db74
cmp rax, r15
ja 0x1400bc230
mov rbx, rax
cmp rax, 0xa
jbe 0x1400bc127
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 0x1400bc221
lea rcx, [r12 + r12]
call fcn.14016b3ac
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 0x1400bc21f
test rbx, rbx
je 0x1400bc0e1
add rbx, rbx
lea rdx, [rsp + 0xf0]
mov r8, rbx
call fcn.1401a4c80
mov word [r15], 0
lea rcx, [rsi + 0x30]
lea rdx, [rsp + 0x80]
cmp rcx, rdx
je 0x1400bc14e
cmp byte [rsi + 0x47], 0
movzx r8d, byte [rsp + 0x97]
js 0x1400bc200
test r8b, r8b
jns 0x1400bc137
mov rdx, qword [rsp + 0x80]
mov r8, qword [rsp + 0x88]
call fcn.140044b60
jmp 0x1400bc14e
lea rcx, [rsp + 0x80]
mov byte [rcx + 0x17], bl
jmp 0x1400bc0b1
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 0x1400bc23d
test dil, 8
jne 0x1400bc4e0
test dil, 0x10
jne 0x1400bc5c3
mov bl, 1
test dil, 0xe0
jne 0x1400bc433
mov rcx, qword [rsp + 0xa0]
test rcx, rcx
je 0x1400bc1a9
mov qword [rsp + 0xa0], 0
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [0x14036e550]
mov rcx, qword [rsp + 0xa8]
test rcx, rcx
je 0x1400bc1cf
mov qword [rsp + 0xa8], 0
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [0x14036e550]
lea rcx, [rsp + 0xb0]
call fcn.14011a280
mov rcx, qword [rsp + 0x2f8]
xor rcx, rsp
call fcn.14016c920
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.140044a00
jmp 0x1400bc14e
ud2
call fcn.1401a62b0
call fcn.1401e0610
jmp 0x1400bbeb7
lea rcx, [rsp + 0x80]
call fcn.1401a6270
mov rcx, qword [rsp + 0x80]
call fcn.14016b3e8
jmp 0x1400bc163
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 0x1400bc3ab
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 0x1400bc340
mov byte [rsi + 0x98], 0
or byte [rsi + 0xac], 0x40
jmp 0x1400bc340
mov rdx, qword [rsp + 0x88]
lea r14, [rsp + 0x30]
mov rcx, r14
call fcn.14010a070
jmp 0x1400bc2f6
movzx eax, word [rsp + 0x80]
cmp eax, 0x1f
je 0x1400bc2b0
test eax, eax
je 0x1400bc2e2
call fcn.1401e0610
jmp 0x1400bc4a0
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.14010a4c0
or byte [rsi + 0xac], 0x20
cmp byte [r14 + 0x17], 0
jns 0x1400bc31d
mov rcx, qword [rsp + 0x30]
call fcn.14016b3e8
cmp word [rsp + 0x80], 0
je 0x1400bc336
lea rcx, [rsp + 0x80]
call qword [sym.imp.ole32.dll_PropVariantClear]
test dil, 0x40
jne 0x1400bc3d4
test dil, dil
jns 0x1400bc3ab
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, [0x140315004]
call qword [0x14036e550]
test eax, eax
jne 0x1400bc4a0
movzx eax, word [rsp + 0x80]
cmp eax, 0x48
je 0x1400bc24f
test eax, eax
jne 0x1400bc42c
movups xmm0, xmmword [0x1402ef030]
movups xmmword [rsi + 0x9c], xmm0
or byte [rsi + 0xac], 0x80
mov rcx, qword [rsp + 0x48]
test rcx, rcx
je 0x1400bc183
mov qword [rsp + 0x48], 0
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [0x14036e550]
jmp 0x1400bc183
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, [0x140314ff0]
call qword [0x14036e550]
test eax, eax
jne 0x1400bc4a0
movzx eax, word [rsp + 0x80]
cmp eax, 0xb
je 0x1400bc277
test eax, eax
je 0x1400bc29d
call fcn.1401e0610
jmp 0x1400bc4a0
call fcn.1401e0610
jmp 0x1400bc4a0
lea r8, [rsp + 0x48]
mov qword [r8], 0
mov rcx, qword [rsp + 0xa8]
mov rax, qword [rcx]
mov rax, qword [rax]
lea rdx, [0x14032a750]
call qword [0x14036e550]
test eax, eax
js 0x1400bc4b9
test dil, 0x20
je 0x1400bc336
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, [0x140314fdc]
call qword [0x14036e550]
test eax, eax
je 0x1400bc2c7
cmp word [rsp + 0x80], 0
je 0x1400bc4b9
lea rcx, [rsp + 0x80]
call qword [sym.imp.ole32.dll_PropVariantClear]
mov rcx, qword [rsp + 0x48]
test rcx, rcx
je 0x1400bc4d9
mov qword [rsp + 0x48], 0
mov rax, qword [rcx]
mov rax, qword [rax + 0x10]
call qword [0x14036e550]
xor ebx, ebx
jmp 0x1400bc183
mov rcx, qword [rsp + 0xa8]
mov rax, qword [rcx]
mov rax, qword [rax + 0x30]
lea rdx, [rsp + 0xf0]
mov r8d, 0x104
call qword [0x14036e550]
test eax, eax
js 0x1400bc4d9
lea rbx, [rsp + 0x80]
lea rdx, [rsp + 0xf0]
mov rcx, rbx
call fcn.14010a070
lea rcx, [rsi + 0x48]
mov rdx, rbx
call fcn.14010a4c0
or byte [rsi + 0xac], 8
cmp byte [rbx + 0x17], 0
jns 0x1400bc16d
mov rcx, qword [rsp + 0x80]
call fcn.14016b3e8
jmp 0x1400bc16d
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 [0x14036e550]
test eax, eax
js 0x1400bc4d9
lea r14, [rsp + 0x60]
mov qword [r14], rbx
mov rcx, rbx
call fcn.14018db74
mov qword [r14 + 8], rax
lea rbx, [rsp + 0x80]
mov rcx, rbx
mov rdx, r14
call fcn.140125e00
lea rcx, [rsi + 0x18]
mov rdx, rbx
call fcn.140125f50
or byte [rsi + 0xac], 2
mov rcx, rbx
call fcn.140125f40
jmp 0x1400bbffd
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 [0x14036e550]
test eax, eax
js 0x1400bc4d9
mov ebp, dword [rsp + 0x30]
lea r14, [rsp + 0x50]
mov qword [r14], rbx
mov rcx, rbx
call fcn.14018db74
mov qword [r14 + 8], rax
lea rbx, [rsp + 0x80]
mov rcx, rbx
mov rdx, r14
call fcn.140125e00
lea rcx, [rsi + 0x60]
mov rdx, rbx
call fcn.140125f50
mov dword [rsi + 0x78], ebp
or byte [rsi + 0xac], 0x10
mov rcx, rbx
call fcn.140125f40
jmp 0x1400bc177