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

Disassembly:
push 0x284
mov eax, 0x5b48d4
call fcn.0058f792
mov ebx, ecx
mov dword [ebp - 0x274], ebx
mov eax, dword [ebp + 8]
xor ecx, ecx
mov edi, dword [ebp + 0x10]
mov dword [ebp - 0x290], eax
mov eax, dword [ebp + 0x18]
mov dword [ebp - 0x270], eax
mov eax, dword [ebp + 0x20]
mov dword [ebp - 0x278], eax
mov eax, dword [ebp + 0x28]
push 7
mov dword [ebp - 0x280], eax
xor eax, eax
pop edx
mov dword [ebp - 0x26c], edi
mov dword [ebp - 0x238], edx
mov dword [ebp - 0x23c], ecx
mov word [ebp - 0x24c], ax
mov dword [ebp - 4], ecx
mov dword [ebp - 0x250], edx
mov dword [ebp - 0x254], ecx
mov word [ebp - 0x264], ax
mov esi, ecx
mov dword [ebp - 0x288], ecx
mov dword [ebp - 0x28c], esi
mov dword [ebp - 0x284], ecx
push 0x5d994c
push str.CShortcut::AddW
push 5
mov byte [ebp - 4], 2
call fcn.00424dad
add esp, 0xc
xor ecx, ecx
push ecx
push dword [ebp + 0x14]
mov ecx, ebx
push edi
xor edi, edi
push edi
push edi
call fcn.004696ef
push 1
mov ecx, ebx
call fcn.00469267
cmp dword [ebx + 0x4c], 1
jne 0x468d45
xor eax, eax
mov dword [ebp - 0x220], 7
mov dword [ebp - 0x224], edi
mov word [ebp - 0x234], ax
push 0x17
pop ebx
push str.CShortcut::user_all._n
push str.CShortcut::AddW
push 5
mov byte [ebp - 4], 3
call fcn.00424dad
mov edi, dword [ebp - 0x274]
add esp, 0xc
add edi, 4
cmp dword [edi + 0x14], 8
jb 0x468c88
mov eax, dword [edi]
jmp 0x468c8a
mov eax, edi
push 0x5d98e8
push eax
call fcn.005921d4
pop ecx
pop ecx
test eax, eax
jne 0x468c9f
push 0x19
jmp 0x468cdb
cmp dword [edi + 0x14], 8
jb 0x468ca9
mov eax, dword [edi]
jmp 0x468cab
mov eax, edi
push str.Programs
push eax
call fcn.005921d4
pop ecx
pop ecx
test eax, eax
je 0x468cfb
cmp dword [edi + 0x14], 8
jb 0x468cc6
mov eax, dword [edi]
jmp 0x468cc8
mov eax, edi
push str.Start_Menu
push eax
call fcn.005921d4
pop ecx
pop ecx
test eax, eax
jne 0x468cde
push 0x16
pop ebx
jmp 0x468cfb
cmp dword [edi + 0x14], 8
jb 0x468ce6
mov edi, dword [edi]
push str.Startup
push edi
call fcn.005921d4
pop ecx
pop ecx
test eax, eax
push 0x18
pop eax
cmove ebx, eax
xor edi, edi
lea eax, [ebp - 0x234]
push edi
push ebx
push eax
push edi
call fcn.0044adc9
add esp, 0x10
test eax, eax
je 0x468d2b
lea eax, [ebp - 0x234]
push eax
lea ecx, [ebp - 0x28c]
call fcn.00420c43
mov esi, dword [ebp - 0x28c]
push edi
push 1
lea ecx, [ebp - 0x234]
mov byte [ebp - 4], 2
call fcn.00404970
mov ebx, dword [ebp - 0x274]
jmp 0x468dac
push str.Not_CShortcut::user_all._n
push str.CShortcut::AddW
push 5
call fcn.00424dad
add esp, 0xc
lea eax, [ebx + 4]
lea ecx, [ebp - 0x234]
push eax
call fcn.00401bb9
cmp dword [ebp - 0x220], 8
lea ecx, [ebp - 0x28c]
push ecx
lea eax, [ebp - 0x234]
mov byte [ebp - 4], 4
cmovae eax, dword [ebp - 0x234]
mov ecx, ebx
push eax
push str.SOFTWAREMicrosoftWindowsCurrentVersionExplorerShell_Folders
call fcn.00469f2c
push edi
push 1
lea ecx, [ebp - 0x234]
mov byte [ebp - 4], 2
call fcn.00404970
mov esi, dword [ebp - 0x28c]
cmp esi, dword [ebp - 0x288]
je 0x4691ec
cmp dword [esi + 0x14], 8
mov dword [ebp - 0x268], edi
mov dword [ebp - 0x27c], edi
jb 0x468dce
mov eax, dword [esi]
jmp 0x468dd0
mov eax, esi
push eax
push str.vstrPaths_item____1_ls__._n
push str.CShortcut::AddW
push 5
call fcn.00424dad
add esp, 0x10
cmp dword [esi + 0x14], 8
jb 0x468def
mov edi, dword [esi]
jmp 0x468df1
mov edi, esi
xor eax, eax
cmp word [edi], ax
je 0x468dff
push edi
call fcn.0058edd4
pop ecx
push eax
push edi
lea ecx, [ebp - 0x24c]
call fcn.00404be0
mov edi, 0x5c4f0c
push edi
call fcn.0058edd4
pop ecx
push eax
push edi
lea ecx, [ebp - 0x24c]
call fcn.00404a83
cmp dword [ebx + 0x44], 0
je 0x468f64
lea ecx, [ebp - 0x234]
call fcn.0046d5d4
lea eax, [ebx + 0x34]
mov byte [ebp - 4], 5
cmp dword [eax + 0x14], 8
jb 0x468e49
mov eax, dword [eax]
push 0x5c
push eax
lea ecx, [ebp - 0x234]
call fcn.0046eb6a
xor ecx, ecx
mov ebx, ecx
lea ecx, [ebp - 0x234]
call fcn.0046d95f
test eax, eax
je 0x468f4f
push ebx
lea ecx, [ebp - 0x234]
call fcn.0046dbf8
push ebx
lea ecx, [ebp - 0x234]
mov edi, eax
call fcn.0046dc88
inc eax
test edi, edi
je 0x468f3b
push eax
push edi
call fcn.00591dbe
pop ecx
pop ecx
test eax, eax
je 0x468f3b
xor eax, eax
cmp word [edi], ax
je 0x468eb0
push edi
call fcn.0058edd4
pop ecx
push eax
push edi
lea ecx, [ebp - 0x24c]
call fcn.00404a83
push 8
pop edi
cmp dword [ebp - 0x238], edi
lea eax, [ebp - 0x24c]
cmovae eax, dword [ebp - 0x24c]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
cmp eax, 0xffffffff
je 0x468efd
cmp dword [ebp - 0x238], edi
lea eax, [ebp - 0x24c]
cmovae eax, dword [ebp - 0x24c]
push eax
call dword [sym.imp.KERNEL32.dll_GetFileAttributesW]
test al, 0x10
jne 0x468f22
cmp dword [ebp - 0x238], edi
lea eax, [ebp - 0x24c]
cmovae eax, dword [ebp - 0x24c]
xor ecx, ecx
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryW]
test eax, eax
je 0x46919e
mov edi, 0x5c4f0c
push edi
call fcn.0058edd4
pop ecx
push eax
push edi
lea ecx, [ebp - 0x24c]
call fcn.00404a83
lea ecx, [ebp - 0x234]
inc ebx
call fcn.0046d95f
cmp ebx, eax
jb 0x468e6e
lea ecx, [ebp - 0x234]
mov byte [ebp - 4], 2
call fcn.0046d690
mov ebx, dword [ebp - 0x274]
push 0xffffffffffffffff
xor eax, eax
lea ecx, [ebp - 0x264]
push eax
lea eax, [ebp - 0x24c]
push eax
call fcn.00404b26
mov edi, dword [ebp - 0x290]
xor eax, eax
cmp word [edi], ax
je 0x468f8f
push edi
call fcn.0058edd4
pop ecx
push eax
push edi
lea ecx, [ebp - 0x264]
call fcn.00404a83
cmp dword [ebp - 0x250], 8
lea eax, [ebp - 0x264]
cmovae eax, dword [ebp - 0x264]
push eax
push str.ShortCut_File___1_ls__n
push str.CShortcut::AddW
push 4
call fcn.00424dad
add esp, 0x10
xor eax, eax
push eax
call dword [sym.imp.ole32.dll_CoInitialize]
mov edi, eax
lea eax, [ebp - 0x268]
push eax
push 0x60ccb4
push 1
xor eax, eax
push eax
push 0x60cd84
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x469160
push dword [ebp - 0x26c]
push str.ShortCut_pTarget___1_ls__n
push str.CShortcut::AddW
push 4
call fcn.00424dad
mov eax, dword [ebp - 0x268]
add esp, 0x10
push dword [ebp - 0x26c]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x50]
mov eax, dword [ebp - 0x270]
test eax, eax
je 0x469065
push dword [ebp + 0x1c]
push eax
call fcn.00591dbe
pop ecx
pop ecx
test eax, eax
je 0x469065
push dword [ebp - 0x270]
push str.ShortCut_pArg___1_ls__n
push str.CShortcut::AddW
push 4
call fcn.00424dad
mov eax, dword [ebp - 0x268]
add esp, 0x10
push dword [ebp - 0x270]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x2c]
mov eax, dword [ebp - 0x278]
test eax, eax
je 0x4690aa
push dword [ebp + 0x24]
push eax
call fcn.00591dbe
pop ecx
pop ecx
test eax, eax
je 0x4690aa
push dword [ebp - 0x278]
push str.ShortCut_pComment___1_ls__n
push str.CShortcut::AddW
push 4
call fcn.00424dad
mov eax, dword [ebp - 0x268]
add esp, 0x10
push dword [ebp - 0x278]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x1c]
mov eax, dword [ebp - 0x280]
test eax, eax
je 0x4690ef
push dword [ebp + 0x2c]
push eax
call fcn.00591dbe
pop ecx
pop ecx
test eax, eax
je 0x4690ef
push dword [ebp - 0x280]
push str.ShortCut_pWorkDir___1_ls__n
push str.CShortcut::AddW
push 4
call fcn.00424dad
mov eax, dword [ebp - 0x268]
add esp, 0x10
push dword [ebp - 0x280]
mov ecx, dword [eax]
push eax
call dword [ecx + 0x24]
mov eax, dword [ebp - 0x268]
lea edx, [ebp - 0x27c]
push edx
push 0x60cd34
push eax
mov ecx, dword [eax]
call dword [ecx]
test eax, eax
js 0x469160
cmp dword [ebp - 0x250], 8
lea eax, [ebp - 0x264]
cmovae eax, dword [ebp - 0x264]
push eax
lea eax, [ebp - 0x21c]
push 0x105
push eax
call fcn.00591d62
mov eax, dword [ebp - 0x27c]
lea edx, [ebp - 0x21c]
add esp, 0xc
mov ecx, dword [eax]
push 1
push edx
push eax
call dword [ecx + 0x18]
test eax, eax
js 0x469160
push str.succeeded._n
push str.CShortcut::AddW
push 4
call fcn.00424dad
add esp, 0xc
mov ecx, dword [ebp - 0x268]
test ecx, ecx
je 0x469170
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov ecx, dword [ebp - 0x27c]
test ecx, ecx
je 0x469180
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
test edi, edi
js 0x46918a
call dword [sym.imp.ole32.dll_CoUninitialize]
push 0x18
pop eax
add esi, eax
cmp esi, dword [ebp - 0x288]
je 0x4691ec
xor edi, edi
jmp 0x468db8
cmp dword [ebp - 0x250], edi
lea eax, [ebp - 0x264]
mov ebx, str.CShortcut::AddW
cmovae eax, dword [ebp - 0x264]
push eax
push str.ShortCut_File___1_ls__n
push ebx
push 2
call fcn.00424dad
add esp, 0x10
mov byte [ebp - 4], 2
lea ecx, [ebp - 0x234]
call fcn.0046d690
push 0x5d99ec
push ebx
push 5
call fcn.00424dad
add esp, 0xc
xor ebx, ebx
mov esi, ebx
jmp 0x469236
push dword [ebp + 0x14]
mov ecx, ebx
push dword [ebp - 0x26c]
push dword [ebp + 0xc]
push dword [ebp - 0x290]
call fcn.0046a7ae
test eax, eax
jne 0x46921d
push str.WriteHistory_failed._n
push str.CShortcut::AddW
push 2
call fcn.00424dad
add esp, 0xc
push 0x5d99ec
push str.CShortcut::AddW
push 5
call fcn.00424dad
xor esi, esi
add esp, 0xc
inc esi
xor ebx, ebx
lea ecx, [ebp - 0x28c]
call fcn.0041fac8
push ebx
push 1
lea ecx, [ebp - 0x264]
call fcn.00404970
push ebx
push 1
lea ecx, [ebp - 0x24c]
call fcn.00404970
mov eax, esi
call fcn.0058f741
ret 0x28