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

Disassembly:
mov eax, 0x411ef8
call fcn.00411950
sub esp, 0x280
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
mov ax, word [esi]
cmp ax, 0x30
jb 0x4025ef
cmp ax, 0x39
ja 0x4025ef
push esi
call fcn.00401bfb
pop ecx
jmp 0x40266a
movzx eax, ax
push 0x20
pop ecx
or eax, ecx
sub eax, 0x64
je 0x402654
sub eax, 0xc
je 0x40263d
sub eax, 3
je 0x402625
dec eax
jne 0x402a00
mov ax, word [esi + 2]
or ax, cx
sub ax, 0x75
neg ax
sbb eax, eax
and eax, 0x11
add eax, 7
jmp 0x40266a
mov ax, word [esi + 2]
or ax, cx
sub ax, 0x75
neg ax
sbb eax, eax
and eax, 0xb
add eax, 0xb
jmp 0x40266a
mov ax, word [esi + 2]
or ax, cx
sub ax, 0x75
neg ax
sbb eax, eax
and eax, 0x15
inc eax
inc eax
jmp 0x40266a
mov ax, word [esi + 2]
or ax, cx
sub ax, 0x75
neg ax
sbb eax, eax
and eax, 9
add eax, 0x10
mov cx, word [esi]
xor ebx, ebx
cmp cx, 0x2c
je 0x402685
cmp cx, bx
je 0x402a00
inc esi
inc esi
mov cx, word [esi]
jmp 0x40266f
push ebx
push eax
lea eax, [ebp - 0x28c]
push eax
push ebx
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderPathW]
test eax, eax
je 0x402a00
lea eax, [ebp - 0x28c]
lea ecx, [ebp - 0x34]
push eax
call fcn.00402c9c
push 0xf
lea ecx, [ebp - 0x24]
pop edi
mov dword [ebp - 4], ebx
push edi
mov dword [ebp - 0x24], ebx
mov dword [ebp - 0x20], ebx
mov dword [ebp - 0x1c], ebx
call fcn.00401838
push edi
lea ecx, [ebp - 0x70]
mov byte [ebp - 4], 1
mov dword [ebp - 0x70], ebx
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x68], ebx
call fcn.00401838
push edi
lea ecx, [ebp - 0x4c]
mov byte [ebp - 4], 2
mov dword [ebp - 0x4c], ebx
mov dword [ebp - 0x48], ebx
mov dword [ebp - 0x44], ebx
call fcn.00401838
push edi
lea ecx, [ebp - 0x58]
mov byte [ebp - 4], 3
mov dword [ebp - 0x58], ebx
mov dword [ebp - 0x54], ebx
mov dword [ebp - 0x50], ebx
call fcn.00401838
push edi
lea ecx, [ebp - 0x18]
mov byte [ebp - 4], 4
mov dword [ebp - 0x18], ebx
mov dword [ebp - 0x14], ebx
mov dword [ebp - 0x10], ebx
call fcn.00401838
push edi
lea ecx, [ebp - 0x64]
mov byte [ebp - 4], 5
mov dword [ebp - 0x64], ebx
mov dword [ebp - 0x60], ebx
mov dword [ebp - 0x5c], ebx
call fcn.00401838
push edi
lea ecx, [ebp - 0x40]
mov byte [ebp - 4], 6
mov dword [ebp - 0x40], ebx
mov dword [ebp - 0x3c], ebx
mov dword [ebp - 0x38], ebx
call fcn.00401838
push edi
lea ecx, [ebp - 0x7c]
mov byte [ebp - 4], 7
mov dword [ebp - 0x7c], ebx
mov dword [ebp - 0x78], ebx
mov dword [ebp - 0x74], ebx
call fcn.00401838
lea eax, [ebp - 0x24]
mov byte [ebp - 4], 8
push eax
push esi
call fcn.0040252f
cmp dword [ebp - 0x20], ebx
pop ecx
pop ecx
jne 0x4027db
push dword [ebp - 0x7c]
mov byte [ebp - 4], 7
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
push dword [ebp - 0x40]
mov byte [ebp - 4], 6
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
push dword [ebp - 0x64]
mov byte [ebp - 4], 5
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
push dword [ebp - 0x18]
mov byte [ebp - 4], 4
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
push dword [ebp - 0x58]
mov byte [ebp - 4], 3
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
push dword [ebp - 0x4c]
mov byte [ebp - 4], 2
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
push dword [ebp - 0x70]
mov byte [ebp - 4], 1
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
push dword [ebp - 0x24]
mov byte [ebp - 4], bl
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
or dword [ebp - 4], 0xffffffff
jmp 0x4029f5
lea ecx, [ebp - 0x70]
push ecx
push eax
call fcn.0040252f
lea ecx, [ebp - 0x4c]
push ecx
push eax
call fcn.0040252f
lea ecx, [ebp - 0x58]
push ecx
push eax
call fcn.0040252f
lea ecx, [ebp - 0x18]
push ecx
push eax
call fcn.0040252f
lea ecx, [ebp - 0x64]
push ecx
push eax
call fcn.0040252f
lea ecx, [ebp - 0x40]
push ecx
push eax
call fcn.0040252f
lea ecx, [ebp - 0x7c]
push ecx
push eax
call fcn.0040252f
push dword [ebp - 0x7c]
call fcn.00401bfb
add esp, 0x3c
or edi, 0xffffffff
cmp dword [ebp - 0x14], ebx
mov dword [ebp - 0x80], eax
push 0x5c
pop esi
jne 0x402899
mov eax, dword [ebp - 0x20]
mov ecx, dword [ebp - 0x24]
cmp eax, ebx
je 0x40285b
lea eax, [ecx + eax*2 - 2]
cmp word [eax], si
je 0x402855
cmp eax, ecx
je 0x40285b
dec eax
dec eax
jmp 0x402848
sub eax, ecx
sar eax, 1
jmp 0x40285d
mov eax, edi
lea eax, [ecx + eax*2 + 2]
lea ecx, [ebp - 0x18]
push eax
call fcn.004016f2
mov eax, dword [ebp - 0x14]
cmp eax, ebx
je 0x402899
mov ecx, dword [ebp - 0x18]
lea eax, [ecx + eax*2 - 2]
cmp word [eax], 0x2e
je 0x402886
cmp eax, ecx
je 0x40288c
dec eax
dec eax
jmp 0x402878
sub eax, ecx
sar eax, 1
jmp 0x40288e
mov eax, edi
cmp eax, ebx
jl 0x402899
mov word [ecx + eax*2], bx
mov dword [ebp - 0x14], eax
push esi
lea ecx, [ebp - 0x34]
call fcn.0040178f
cmp dword [ebp - 0x48], ebx
je 0x4028bc
lea eax, [ebp - 0x4c]
lea ecx, [ebp - 0x34]
push eax
call fcn.00401935
push esi
lea ecx, [ebp - 0x34]
call fcn.0040178f
push dword [ebp - 0x34]
call fcn.00402287
test eax, eax
pop ecx
je 0x402993
lea eax, [ebp - 0x18]
lea ecx, [ebp - 0x34]
push eax
call fcn.00401935
push str..lnk
lea ecx, [ebp - 0x34]
call fcn.00402cfd
lea eax, [ebp + 8]
mov dword [ebp + 8], ebx
push eax
push 0x414b00
push 1
push ebx
push 0x414b10
call dword [sym.imp.ole32.dll_CoCreateInstance]
cmp eax, ebx
jl 0x402993
mov eax, dword [ebp + 8]
push dword [ebp - 0x24]
mov dword [ebp - 0x28], ebx
mov ecx, dword [eax]
push eax
call dword [ecx + 0x50]
cmp dword [ebp - 0x54], ebx
je 0x402928
mov eax, dword [ebp + 8]
push dword [ebp - 0x58]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x1c]
cmp dword [ebp - 0x6c], ebx
je 0x402939
mov eax, dword [ebp + 8]
push dword [ebp - 0x70]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x2c]
cmp dword [ebp - 0x60], ebx
je 0x40294a
mov eax, dword [ebp + 8]
push dword [ebp - 0x64]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x24]
cmp dword [ebp - 0x3c], ebx
je 0x40295e
push dword [ebp - 0x80]
mov eax, dword [ebp + 8]
push dword [ebp - 0x40]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x44]
mov eax, dword [ebp + 8]
lea edx, [ebp - 0x28]
push edx
push 0x414b20
mov ecx, dword [eax]
push eax
call dword [ecx]
cmp eax, ebx
jl 0x40298a
mov eax, dword [ebp - 0x28]
push 1
push dword [ebp - 0x34]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x18]
mov eax, dword [ebp - 0x28]
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 - 0x7c]
mov byte [ebp - 4], 7
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
push dword [ebp - 0x40]
mov byte [ebp - 4], 6
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
push dword [ebp - 0x64]
mov byte [ebp - 4], 5
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
push dword [ebp - 0x18]
mov byte [ebp - 4], 4
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
push dword [ebp - 0x58]
mov byte [ebp - 4], 3
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
push dword [ebp - 0x4c]
mov byte [ebp - 4], 2
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
push dword [ebp - 0x70]
mov byte [ebp - 4], 1
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
push dword [ebp - 0x24]
mov byte [ebp - 4], bl
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
mov dword [ebp - 4], edi
push dword [ebp - 0x34]
call sub.MSVCRT.dll_void___cdecl_operator_delete_void__
add esp, 0x24
mov ecx, dword [ebp - 0xc]
pop edi
pop esi
xor eax, eax
pop ebx
mov dword fs:[0], ecx
leave
ret