Function at 0x268ae85f
Capabilities:
Check if file exists
Create directory
Create shortcut via ishelllink
Get file attributes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x660
push ebx
push esi
push edi
xor edi, edi
push edi
mov dword [ebp - 4], edi
mov dword [ebp - 0xc], edi
mov dword [ebp - 0x14], edi
mov dword [ebp - 0x10], edi
call dword [sym.imp.ole32.dll_CoInitialize]
lea eax, [ebp - 4]
push eax
push 0x268f151c
xor esi, esi
inc esi
push esi
push edi
push 0x268f153c
call dword [sym.imp.ole32.dll_CoCreateInstance]
mov ebx, eax
cmp ebx, edi
jl 0x268aebf0
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
lea edx, [ebp - 0xc]
push edx
push 0x268f155c
push eax
call dword [ecx]
mov ebx, eax
cmp ebx, edi
jl 0x268aebf0
call fcn.268e99ca
test eax, eax
je 0x268ae942
cmp dword [ebp + 0xc], 5
jne 0x268ae942
mov eax, dword [ebp - 4]
lea edx, [ebp - 8]
push edx
push 0x268f2988
mov dword [ebp - 8], edi
mov ecx, dword [eax]
push eax
call dword [ecx]
mov eax, dword [ebp - 8]
cmp eax, edi
je 0x268ae942
lea edx, [ebp - 0x38]
push edx
lea edx, [ebp - 0x28]
push edx
mov word [ebp - 0x38], 0x17
mov dword [ebp - 0x30], esi
mov dword [ebp - 0x28], 0x9f4c2855
mov word [ebp - 0x24], 0x9f79
mov word [ebp - 0x22], 0x4b39
mov byte [ebp - 0x20], 0xa8
mov byte [ebp - 0x1f], 0xd0
mov byte [ebp - 0x1e], 0xe1
mov byte [ebp - 0x1d], 0xd4
mov byte [ebp - 0x1c], 0x2d
mov byte [ebp - 0x1b], 0xe1
mov byte [ebp - 0x1a], 0xd5
mov byte [ebp - 0x19], 0xf3
mov dword [ebp - 0x18], 0xc
mov ecx, dword [eax]
push eax
call dword [ecx + 0x18]
mov eax, dword [ebp - 8]
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ebx, dword [ebp + 0x14]
cmp word [ebx], 0x22
lea eax, [ebx + 2]
jne 0x268ae96c
push 0x22
push eax
mov dword [ebp - 0x14], esi
call dword [sym.imp.MSVCRT.dll_wcschr]
mov esi, eax
cmp esi, edi
pop ecx
pop ecx
je 0x268ae981
cmp word [esi + 2], di
jne 0x268ae979
xor esi, esi
jmp 0x268ae979
push 0x20
push eax
call dword [sym.imp.MSVCRT.dll_wcschr]
pop ecx
pop ecx
mov esi, eax
cmp esi, edi
jne 0x268aea23
push 0xffffffffffffffff
mov eax, ebx
push 0x106
lea ebx, [ebp - 0x454]
call fcn.268dfa74
pop ecx
pop ecx
cmp dword [ebp - 0x14], edi
je 0x268ae9cd
lea eax, [ebp - 0x454]
push eax
call dword [sym.imp.MSVCRT.dll_wcslen]
mov word [ebp + eax*2 - 0x456], di
lea eax, [eax + eax - 2]
push eax
lea eax, [ebp - 0x452]
push eax
lea eax, [ebp - 0x454]
push eax
call dword [sym.imp.MSVCRT.dll_memmove]
add esp, 0x10
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
lea edx, [ebp - 0x454]
push edx
push eax
call dword [ecx + 0x50]
mov ebx, eax
cmp ebx, edi
jl 0x268aebf0
mov esi, dword [ebp + 0x24]
xor eax, eax
cmp esi, edi
jne 0x268aea80
push 0xffffffffffffffff
push 0x104
lea eax, [ebp - 0x454]
lea ebx, [ebp - 0x660]
call fcn.268dfa74
mov eax, ebx
push eax
call dword [sym.imp.MSVCRT.dll_wcslen]
add esp, 0xc
lea eax, [ebp + eax*2 - 0x660]
jmp 0x268aea77
inc esi
inc esi
cmp word [esi], 0x20
je 0x268aea21
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
inc esi
inc esi
push esi
push eax
call dword [ecx + 0x2c]
mov ebx, eax
cmp ebx, edi
jl 0x268aebf0
sub esi, dword [ebp + 0x14]
lea eax, [ebp - 0x454]
sar esi, 1
push esi
push dword [ebp + 0x14]
push eax
call dword [sym.imp.MSVCRT.dll_wcsncpy]
add esp, 0xc
mov word [ebp + esi*2 - 0x454], di
jmp 0x268ae997
cmp cx, 0x2f
je 0x268aea80
lea ecx, [ebp - 0x660]
cmp eax, ecx
jb 0x268aeabb
dec eax
dec eax
mov cx, word [eax]
cmp cx, 0x5c
jne 0x268aea65
lea ecx, [ebp - 0x660]
cmp eax, ecx
jae 0x268aea8e
cmp esi, edi
je 0x268aeabb
cmp esi, edi
jne 0x268aeaaf
cmp word [eax], di
je 0x268aeaa4
cmp word [eax - 2], 0x3a
jne 0x268aeaa4
mov word [eax + 2], di
jmp 0x268aeaa7
mov word [eax], di
lea ecx, [ebp - 0x660]
jmp 0x268aeab1
mov ecx, esi
mov eax, dword [ebp - 4]
mov edx, dword [eax]
push ecx
push eax
call dword [edx + 0x24]
cmp dword [ebp + 0x18], edi
je 0x268aead7
mov eax, dword [ebp - 4]
mov ecx, dword [eax]
push edi
push dword [ebp + 0x18]
push eax
call dword [ecx + 0x44]
mov ebx, eax
cmp ebx, edi
jl 0x268aebf0
mov eax, dword [ebp - 4]
push dword [ebp + 0x1c]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x3c]
mov ebx, eax
cmp ebx, edi
jl 0x268aebf0
cmp word [ebp + 0x20], di
je 0x268aeb09
mov eax, dword [ebp - 4]
push dword [ebp + 0x20]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x34]
mov ebx, eax
cmp ebx, edi
jl 0x268aebf0
mov eax, dword [ebp + 0xc]
dec eax
mov word [ebp - 0x244], di
je 0x268aeb28
dec eax
je 0x268aec1f
dec eax
je 0x268aebd7
dec eax
dec eax
jne 0x268aeb35
lea eax, [ebp - 0x244]
push eax
call fcn.268aec7d
pop ecx
push dword [ebp + 8]
mov esi, dword [sym.imp.MSVCRT.dll_wcscat]
lea eax, [ebp - 0x244]
push eax
call esi
pop ecx
pop ecx
lea eax, [ebp - 0x244]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
jne 0x268aeb69
push edi
lea eax, [ebp - 0x244]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
cmp word [ebp - 0x244], di
je 0x268aeb9b
lea eax, [ebp - 0x244]
push eax
call dword [sym.imp.MSVCRT.dll_wcslen]
cmp word [ebp + eax*2 - 0x246], 0x5c
pop ecx
je 0x268aeb9b
lea eax, [ebp - 0x244]
push 0x26911198
push eax
call esi
pop ecx
pop ecx
push dword [ebp + 0x10]
lea eax, [ebp - 0x244]
push eax
call esi
lea eax, [ebp - 0x244]
push str..lnk
push eax
call esi
mov eax, dword [ebp - 0xc]
mov ecx, dword [eax]
add esp, 0x10
xor esi, esi
inc esi
push esi
lea edx, [ebp - 0x244]
push edx
push eax
call dword [ecx + 0x18]
mov ebx, eax
cmp ebx, edi
jl 0x268aebf0
mov dword [ebp - 0x10], esi
jmp 0x268aebf7
push dword [ebp + 0x28]
lea eax, [ebp - 0x244]
push eax
call fcn.268aecca
test eax, eax
pop ecx
pop ecx
jne 0x268aeb35
push ebx
call dword [sym.imp.KERNEL32.dll_SetLastError]
mov eax, dword [ebp - 4]
cmp eax, edi
je 0x268aec04
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov eax, dword [ebp - 0xc]
cmp eax, edi
pop edi
pop esi
pop ebx
je 0x268aec14
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
call dword [sym.imp.ole32.dll_CoUninitialize]
mov eax, dword [ebp - 0x10]
leave
ret
lea eax, [ebp - 0x244]
push eax
call fcn.268aec30
jmp 0x268aeb34