Function at 0x10017f10
Capabilities:
Create shortcut via ishelllink

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x478
mov eax, dword [0x10123068]
xor eax, ebp
mov dword [ebp - 4], eax
mov dword [ebp - 0x430], 0
lea eax, [ebp - 0x430]
push eax
push 0x101067bc
push 1
push 0
push 0x100f6418
call dword [sym.imp.ole32.dll_CoCreateInstance]
mov dword [ebp - 0x434], eax
cmp dword [ebp - 0x434], 0
jl 0x10017f60
cmp dword [ebp - 0x430], 0
jne 0x10017f67
xor al, al
jmp 0x100183b3
mov dword [ebp - 0x43c], 0
lea ecx, [ebp - 0x43c]
push ecx
push 0x100f63f8
mov edx, dword [ebp - 0x430]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x430]
push ecx
mov edx, dword [eax]
call edx
mov dword [ebp - 0x434], eax
cmp dword [ebp - 0x434], 0
jl 0x10017fa8
cmp dword [ebp - 0x43c], 0
jne 0x10017fc3
mov eax, dword [ebp - 0x430]
mov ecx, dword [eax]
mov edx, dword [ebp - 0x430]
push edx
mov eax, dword [ecx + 8]
call eax
xor al, al
jmp 0x100183b3
push 2
mov ecx, dword [ebp + 8]
call fcn.10002b10
push eax
mov ecx, dword [ebp - 0x43c]
mov edx, dword [ecx]
mov eax, dword [ebp - 0x43c]
push eax
mov ecx, dword [edx + 0x14]
call ecx
push 0x400
push 0
lea edx, [ebp - 0x42c]
push edx
call fcn.100bc780
add esp, 0xc
push 0x200
mov ecx, dword [ebp + 0xc]
call fcn.10002b10
push eax
lea eax, [ebp - 0x42c]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcpynW]
lea ecx, [ebp - 0x42c]
push ecx
call dword [sym.imp.SHLWAPI.dll_PathRemoveFileSpecW]
mov ecx, dword [ebp + 0xc]
call fcn.10002b10
push eax
mov edx, dword [ebp - 0x430]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x430]
push ecx
mov edx, dword [eax + 0x50]
call edx
lea eax, [ebp - 0x42c]
push eax
mov ecx, dword [ebp - 0x430]
mov edx, dword [ecx]
mov eax, dword [ebp - 0x430]
push eax
mov ecx, dword [edx + 0x24]
call ecx
mov edx, 0x8bbf
mov word [ebp - 0x10], dx
mov eax, 0x95ee
mov word [ebp - 0xe], ax
mov ecx, 0x4e92
mov word [ebp - 0xc], cx
mov edx, 0x8054
mov word [ebp - 0xa], dx
mov eax, 0x7f51
mov word [ebp - 8], ax
xor ecx, ecx
mov word [ebp - 6], cx
lea edx, [ebp - 0x10]
push edx
mov eax, dword [ebp - 0x430]
mov ecx, dword [eax]
mov edx, dword [ebp - 0x430]
push edx
mov eax, dword [ecx + 0x1c]
call eax
mov ecx, dword [ebp + 0x10]
call fcn.10002af0
movzx ecx, al
test ecx, ecx
jne 0x100180cf
mov ecx, dword [ebp + 0x10]
call fcn.10002b10
push eax
mov edx, dword [ebp - 0x430]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x430]
push ecx
mov edx, dword [eax + 0x2c]
call edx
push 0
push 0
mov ecx, dword [ebp + 0xc]
call fcn.10002b10
push eax
call dword [sym.imp.KERNEL32.dll_GetShortPathNameW]
mov dword [ebp - 0x444], eax
mov eax, dword [ebp - 0x444]
add eax, 1
xor ecx, ecx
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.100ba724
add esp, 4
mov dword [ebp - 0x454], eax
mov eax, dword [ebp - 0x454]
mov dword [ebp - 0x448], eax
mov ecx, dword [ebp - 0x444]
lea edx, [ecx + ecx + 2]
push edx
push 0
mov eax, dword [ebp - 0x448]
push eax
call fcn.100bc780
add esp, 0xc
mov ecx, dword [ebp - 0x444]
push ecx
mov edx, dword [ebp - 0x448]
push edx
mov ecx, dword [ebp + 0xc]
call fcn.10002b10
push eax
call dword [sym.imp.KERNEL32.dll_GetShortPathNameW]
mov dword [ebp - 0x444], eax
mov eax, dword [ebp - 0x448]
push eax
call dword [sym.imp.KERNEL32.dll_lstrlenW]
test eax, eax
jle 0x10018192
cmp dword [ebp - 0x444], 0
jbe 0x10018192
push 0
mov ecx, dword [ebp - 0x448]
push ecx
mov edx, dword [ebp - 0x430]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x430]
push ecx
mov edx, dword [eax + 0x44]
call edx
mov eax, dword [ebp - 0x448]
mov dword [ebp - 0x458], eax
mov ecx, dword [ebp - 0x458]
push ecx
call fcn.100ba71f
add esp, 4
mov dword [ebp - 0x438], 0
lea edx, [ebp - 0x438]
push edx
push 0x100f6428
mov eax, dword [ebp - 0x430]
mov ecx, dword [eax]
mov edx, dword [ebp - 0x430]
push edx
mov eax, dword [ecx]
call eax
mov dword [ebp - 0x434], eax
cmp dword [ebp - 0x434], 0
jl 0x10018340
cmp dword [ebp - 0x438], 0
je 0x10018340
lea ecx, [ebp - 0x478]
push ecx
push 0x10106818
mov edx, dword [ebp - 0x438]
mov eax, dword [edx]
mov ecx, dword [ebp - 0x438]
push ecx
mov edx, dword [eax + 0x14]
call edx
mov dword [ebp - 0x434], eax
cmp dword [ebp - 0x434], 0
jl 0x1001832c
movzx eax, word [ebp - 0x478]
mov dword [ebp - 0x44c], eax
cmp dword [ebp - 0x44c], 0
je 0x1001824d
cmp dword [ebp - 0x44c], 0x1f
je 0x1001824d
jmp 0x1001832c
mov ecx, 0x32
mov word [ebp - 0x2c], cx
mov edx, 0x33
mov word [ebp - 0x2a], dx
mov eax, 0x34
mov word [ebp - 0x28], ax
mov ecx, 0x35
mov word [ebp - 0x26], cx
mov edx, 0x45
mov word [ebp - 0x24], dx
mov eax, 0x78
mov word [ebp - 0x22], ax
mov ecx, 0x70
mov word [ebp - 0x20], cx
mov edx, 0x6c
mov word [ebp - 0x1e], dx
mov eax, 0x6f
mov word [ebp - 0x1c], ax
mov ecx, 0x72
mov word [ebp - 0x1a], cx
mov edx, 0x65
mov word [ebp - 0x18], dx
mov eax, 0x72
mov word [ebp - 0x16], ax
xor ecx, ecx
mov word [ebp - 0x14], cx
lea edx, [ebp - 0x468]
lea ecx, [ebp - 0x2c]
call fcn.100151d0
mov dword [ebp - 0x434], eax
cmp dword [ebp - 0x434], 0
jl 0x1001832c
lea edx, [ebp - 0x468]
push edx
push 0x10106818
mov eax, dword [ebp - 0x438]
mov ecx, dword [eax]
mov edx, dword [ebp - 0x438]
push edx
mov eax, dword [ecx + 0x18]
call eax
mov dword [ebp - 0x434], eax
cmp dword [ebp - 0x434], 0
jl 0x1001831f
mov ecx, dword [ebp - 0x438]
mov edx, dword [ecx]
mov eax, dword [ebp - 0x438]
push eax
mov ecx, dword [edx + 0x1c]
call ecx
lea edx, [ebp - 0x468]
push edx
call dword [sym.imp.ole32.dll_PropVariantClear]
mov eax, dword [ebp - 0x438]
mov ecx, dword [eax]
mov edx, dword [ebp - 0x438]
push edx
mov eax, dword [ecx + 8]
call eax
push 1
mov ecx, dword [ebp + 8]
call fcn.10002b10
push eax
mov ecx, dword [ebp - 0x43c]
mov edx, dword [ecx]
mov eax, dword [ebp - 0x43c]
push eax
mov ecx, dword [edx + 0x18]
call ecx
test eax, eax
jne 0x1001836f
mov dword [ebp - 0x450], 1
jmp 0x10018379
mov dword [ebp - 0x450], 0
mov dl, byte [ebp - 0x450]
mov byte [ebp - 0x43d], dl
mov eax, dword [ebp - 0x43c]
mov ecx, dword [eax]
mov edx, dword [ebp - 0x43c]
push edx
mov eax, dword [ecx + 8]
call eax
mov ecx, dword [ebp - 0x430]
mov edx, dword [ecx]
mov eax, dword [ebp - 0x430]
push eax
mov ecx, dword [edx + 8]
call ecx
mov al, byte [ebp - 0x43d]
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.100ba074
mov esp, ebp
pop ebp
ret