Function at 0x4027bc
Capabilities:
Create shortcut via ishelllink
Get common file path

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x27c
push ebx
push esi
mov esi, dword [ebp + 8]
movzx edx, word [esi]
lea eax, [edx - 0x30]
cmp ax, 9
ja 0x4027e5
push esi
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll__wtol]
movzx edx, word [esi]
pop ecx
mov ecx, eax
jmp 0x40284a
push 0x20
mov eax, edx
pop ecx
or eax, ecx
sub eax, 0x64
je 0x402836
sub eax, 0xc
je 0x402828
sub eax, 3
je 0x402812
sub eax, 1
jne 0x402abd
mov ax, word [esi + 2]
push 7
or ax, cx
pop ecx
push 0x18
jmp 0x40281e
mov ax, word [esi + 2]
push 0xb
or ax, cx
pop ecx
push 0x16
cmp ax, 0x75
pop ebx
cmovne ecx, ebx
jmp 0x40284a
mov ax, word [esi + 2]
push 2
or ax, cx
pop ecx
push 0x17
jmp 0x40281e
mov ax, word [esi + 2]
or ax, cx
cmp ax, 0x75
jne 0x402847
push 0x10
jmp 0x402849
push 0x19
pop ecx
push 0x2c
pop ebx
cmp dx, bx
je 0x40286b
movzx edx, dx
test dx, dx
je 0x402abd
add esi, 2
movzx eax, word [esi]
mov edx, eax
cmp ax, bx
jne 0x402855
xor ebx, ebx
lea eax, [ebp - 0x27c]
push ebx
push ecx
push eax
push ebx
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
je 0x402abd
lea eax, [ebp - 0x27c]
push eax
lea ecx, [ebp - 0x1c]
call fcn.0040e420
lea ecx, [ebp - 0x28]
call fcn.0040e457
lea ecx, [ebp - 0x64]
call fcn.0040e457
lea ecx, [ebp - 0x58]
call fcn.0040e457
lea ecx, [ebp - 0x4c]
call fcn.0040e457
lea ecx, [ebp - 0x10]
call fcn.0040e457
lea ecx, [ebp - 0x40]
call fcn.0040e457
lea ecx, [ebp - 0x34]
call fcn.0040e457
lea ecx, [ebp - 0x70]
call fcn.0040e457
lea eax, [ebp - 0x28]
push eax
push esi
call fcn.00402df1
pop ecx
pop ecx
cmp dword [ebp - 0x24], ebx
je 0x402a72
lea ecx, [ebp - 0x64]
push ecx
push eax
call fcn.00402df1
lea ecx, [ebp - 0x58]
push ecx
push eax
call fcn.00402df1
lea ecx, [ebp - 0x4c]
push ecx
push eax
call fcn.00402df1
lea ecx, [ebp - 0x10]
push ecx
push eax
call fcn.00402df1
lea ecx, [ebp - 0x40]
push ecx
push eax
call fcn.00402df1
lea ecx, [ebp - 0x34]
push ecx
push eax
call fcn.00402df1
lea ecx, [ebp - 0x70]
push ecx
push eax
call fcn.00402df1
push dword [ebp - 0x70]
call dword [sym.imp.api_ms_win_crt_convert_l1_1_0.dll__wtol]
add esp, 0x3c
mov esi, eax
cmp dword [ebp - 0xc], ebx
jne 0x402978
lea eax, [ebp - 0x28]
push eax
call fcn.00403008
pop ecx
mov ecx, dword [ebp - 0x28]
add ecx, 2
lea eax, [ecx + eax*2]
push eax
lea ecx, [ebp - 0x10]
call fcn.0040e589
push 0x2e
lea ecx, [ebp - 0x10]
call fcn.0040eb0a
test eax, eax
js 0x402978
mov ecx, dword [ebp - 0x10]
xor edx, edx
mov dword [ebp - 0xc], eax
mov word [ecx + eax*2], dx
push 0x5c
lea ecx, [ebp - 0x1c]
call fcn.004013e1
cmp dword [ebp - 0x54], ebx
je 0x40299d
lea eax, [ebp - 0x58]
push eax
lea ecx, [ebp - 0x1c]
call fcn.0040e6b9
push 0x5c
lea ecx, [ebp - 0x1c]
call fcn.004013e1
push dword [ebp - 0x1c]
call fcn.00402648
pop ecx
test eax, eax
je 0x402a72
lea eax, [ebp - 0x10]
push eax
lea ecx, [ebp - 0x1c]
call fcn.0040e6b9
push str..lnk
lea ecx, [ebp - 0x1c]
call fcn.0040e6f7
lea eax, [ebp + 8]
mov dword [ebp + 8], ebx
push eax
push 0x41e8d0
push 1
push ebx
push 0x41e900
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x402a72
mov eax, dword [ebp + 8]
push dword [ebp - 0x28]
mov dword [ebp - 4], ebx
push eax
mov ecx, dword [eax]
call dword [ecx + 0x50]
cmp dword [ebp - 0x48], ebx
je 0x402a09
mov eax, dword [ebp + 8]
push dword [ebp - 0x4c]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x1c]
cmp dword [ebp - 0x60], ebx
je 0x402a1a
mov eax, dword [ebp + 8]
push dword [ebp - 0x64]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x2c]
cmp dword [ebp - 0x3c], ebx
je 0x402a2b
mov eax, dword [ebp + 8]
push dword [ebp - 0x40]
push eax
mov ecx, dword [eax]
call dword [ecx + 0x24]
cmp dword [ebp - 0x30], ebx
je 0x402a3d
mov eax, dword [ebp + 8]
push esi
push dword [ebp - 0x34]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x44]
mov eax, dword [ebp + 8]
lea edx, [ebp - 4]
push edx
push 0x41e8f0
push eax
mov ecx, dword [eax]
call dword [ecx]
test eax, eax
js 0x402a69
mov eax, dword [ebp - 4]
push 1
push dword [ebp - 0x1c]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x18]
mov eax, dword [ebp - 4]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
mov eax, dword [ebp + 8]
push eax
mov ecx, dword [eax]
call dword [ecx + 8]
push dword [ebp - 0x70]
call fcn.0041a3c0
push dword [ebp - 0x34]
call fcn.0041a3c0
push dword [ebp - 0x40]
call fcn.0041a3c0
push dword [ebp - 0x10]
call fcn.0041a3c0
push dword [ebp - 0x4c]
call fcn.0041a3c0
push dword [ebp - 0x58]
call fcn.0041a3c0
push dword [ebp - 0x64]
call fcn.0041a3c0
push dword [ebp - 0x28]
call fcn.0041a3c0
push dword [ebp - 0x1c]
call fcn.0041a3c0
add esp, 0x24
pop esi
xor eax, eax
pop ebx
leave
ret