Function at 0x10096d80
Capabilities:
Create shortcut via ishelllink

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x100ab750
mov eax, dword fs:[0]
push eax
sub esp, 0x7c
mov eax, dword [0x100cd008]
xor eax, ebp
mov dword [ebp - 0x10], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov esi, edx
mov edi, ecx
mov eax, dword [ebp + 8]
mov ebx, dword [ebp + 0x10]
mov dword [ebp - 0x88], eax
mov eax, dword [ebp + 0xc]
mov dword [ebp - 0x80], eax
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0x7c], eax
mov eax, dword [ebp + 0x1c]
mov dword [ebp - 0x84], eax
mov dword [ebp - 0x74], 0
lea eax, [ebp - 0x74]
mov dword [ebp - 4], 0
push eax
push 0x100b632c
push 1
push 0
push 0x100ac470
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x1009705a
cmp dword [ebp - 0x74], 0
je 0x1009705a
mov dword [ebp - 0x78], 0
mov byte [ebp - 4], 3
lea edx, [ebp - 0x78]
mov eax, dword [ebp - 0x74]
push edx
push 0x100ac460
push eax
mov ecx, dword [eax]
call dword [ecx]
test eax, eax
js 0x10097041
mov eax, dword [ebp - 0x78]
test eax, eax
je 0x10097041
cmp dword [edi + 0x14], 8
mov edx, edi
jb 0x10096e41
mov edx, dword [edi]
mov ecx, dword [eax]
push 2
push edx
push eax
call dword [ecx + 0x14]
test eax, eax
js 0x10097041
lea ecx, [ebp - 0x40]
call fcn.10004e70
mov eax, dword [ebp - 0x7c]
mov byte [ebp - 4], 8
cmp dword [eax + 0x10], 0
je 0x10096ec1
push eax
call fcn.10008f50
mov eax, dword [ebp - 0x74]
lea edx, [ebp - 0x40]
cmp dword [ebp - 0x2c], 8
cmovae edx, dword [ebp - 0x40]
mov ecx, dword [eax]
push edx
push eax
call dword [ecx + 0x24]
cmp dword [esi + 0x14], 8
mov edx, esi
jb 0x10096e8c
mov edx, dword [esi]
mov eax, dword [ebp - 0x74]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x50]
mov edx, dword [ebp - 0x80]
cmp dword [edx + 0x14], 8
jb 0x10096ea1
mov edx, dword [edx]
mov eax, dword [ebp - 0x74]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x1c]
cmp dword [ebx + 0x10], 0
mov dword [ebp - 0x7c], eax
je 0x10096ee2
cmp dword [ebx + 0x14], 8
jb 0x10096ebc
mov ebx, dword [ebx]
push 0
push ebx
jmp 0x10096eed
lea edx, [ebp - 0x40]
mov ecx, esi
call fcn.10067bd0
test al, al
jne 0x10096e6d
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 3
xor bl, bl
call fcn.10002b00
jmp 0x10097043
cmp dword [esi + 0x14], 8
jb 0x10096eea
mov esi, dword [esi]
push 0
push esi
mov eax, dword [ebp - 0x74]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x44]
cmp byte [ebp + 0x20], 0
je 0x10096f17
mov edx, dword [ebp - 0x84]
cmp dword [edx + 0x14], 8
jb 0x10096f0a
mov edx, dword [edx]
mov eax, dword [ebp - 0x74]
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x2c]
mov dword [ebp - 0x7c], eax
cmp dword [edi + 0x14], 8
mov edx, edi
jb 0x10096f21
mov edx, dword [edi]
mov eax, dword [ebp - 0x78]
push 1
push edx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov edx, edi
lea ecx, [ebp - 0x28]
call fcn.10067990
mov ebx, dword [ebp - 0x88]
mov byte [ebp - 4], 0xb
cmp dword [ebx + 0x10], 0
je 0x10097020
cmp dword [ebx + 0x14], 8
mov edx, ebx
jb 0x10096f55
mov edx, dword [ebx]
cmp dword [ebp - 0x14], 8
lea ecx, [ebp - 0x28]
jb 0x10096f6c
mov ecx, dword [ebp - 0x28]
test ecx, ecx
jne 0x10096f6c
test edx, edx
sete al
jmp 0x10096f7c
test edx, edx
jne 0x10096f77
test ecx, ecx
sete al
jmp 0x10096f7c
call fcn.10064dd0
test al, al
jne 0x10097020
push edi
lea ecx, [ebp - 0x70]
call fcn.10004e90
mov byte [ebp - 4], 0xc
lea edx, [ebp - 0x28]
cmp dword [ebp - 0x14], 8
lea ecx, [ebp - 0x70]
cmovae edx, dword [ebp - 0x28]
call fcn.10064fc0
push ebx
lea edx, [ebp - 0x70]
lea ecx, [ebp - 0x58]
call fcn.10064890
add esp, 4
lea edx, [ebp - 0x58]
mov byte [ebp - 4], 0xd
mov ecx, edi
call fcn.10064d70
test al, al
jne 0x10097008
mov ecx, edi
call fcn.10066dc0
test al, al
je 0x10096fe4
lea ecx, [ebp - 0x58]
call fcn.10066dc0
test al, al
je 0x10096fe4
lea ecx, [ebp - 0x58]
call fcn.10084ce0
mov ebx, dword [sym.imp.KERNEL32.dll_Sleep]
xor esi, esi
nop dword [eax]
lea edx, [ebp - 0x58]
mov ecx, edi
call fcn.10084b40
test al, al
jne 0x10097008
push 0x32
call ebx
inc esi
cmp esi, 3
jb 0x10096ff0
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 0xc
call fcn.10002b00
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 0xb
call fcn.10002b00
cmp dword [ebp - 0x7c], 0
lea ecx, [ebp - 0x28]
mov byte [ebp - 4], 8
sete bl
call fcn.10002b00
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 3
call fcn.10002b00
jmp 0x10097043
xor bl, bl
mov byte [ebp - 4], 0xe
mov eax, dword [ebp - 0x78]
test eax, eax
je 0x10097054
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov byte [ebp - 4], 0
jmp 0x1009705c
xor bl, bl
mov dword [ebp - 4], 0xf
mov ecx, dword [ebp - 0x74]
test ecx, ecx
je 0x10097070
mov edx, dword [ecx]
push ecx
call dword [edx + 8]
mov al, bl
mov dword [ebp - 4], 0xffffffff
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x10]
xor ecx, ebp
call fcn.10097213
mov esp, ebp
pop ebp
ret