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

Disassembly:
push 0x284
mov eax, 0x5ad932
call fcn.00588aeb
mov ebx, ecx
mov dword [ebp - 0x274], ebx
mov eax, dword [ebp + 8]
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
pop edx
xor ecx, ecx
xor eax, eax
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 - 0x28c], esi
mov dword [ebp - 0x288], ecx
mov dword [ebp - 0x284], ecx
push 0x5d38c4
push str.CShortcut::AddW
push 5
mov byte [ebp - 4], 2
call fcn.00423f75
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.0046862d
push 1
mov ecx, ebx
call fcn.00468194
cmp dword [ebx + 0x4c], 1
jne 0x467c72
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.00423f75
mov edi, dword [ebp - 0x274]
add edi, 4
add esp, 0xc
cmp dword [edi + 0x14], 8
jb 0x467bb5
mov eax, dword [edi]
jmp 0x467bb7
mov eax, edi
push 0x5d3860
push eax
call fcn.0058b527
pop ecx
pop ecx
test eax, eax
jne 0x467bcc
push 0x19
jmp 0x467c08
cmp dword [edi + 0x14], 8
jb 0x467bd6
mov eax, dword [edi]
jmp 0x467bd8
mov eax, edi
push str.Programs
push eax
call fcn.0058b527
pop ecx
pop ecx
test eax, eax
je 0x467c28
cmp dword [edi + 0x14], 8
jb 0x467bf3
mov eax, dword [edi]
jmp 0x467bf5
mov eax, edi
push str.Start_Menu
push eax
call fcn.0058b527
pop ecx
pop ecx
test eax, eax
jne 0x467c0b
push 0x16
pop ebx
jmp 0x467c28
cmp dword [edi + 0x14], 8
jb 0x467c13
mov edi, dword [edi]
push str.Startup
push edi
call fcn.0058b527
pop ecx
pop ecx
test eax, eax
push 0x18
pop eax
cmove ebx, eax
xor edi, edi
push edi
push ebx
lea eax, [ebp - 0x234]
push eax
push edi
call fcn.0044a039
add esp, 0x10
test eax, eax
je 0x467c58
lea eax, [ebp - 0x234]
push eax
lea ecx, [ebp - 0x28c]
call fcn.0041fe09
mov esi, dword [ebp - 0x28c]
push edi
push 1
lea ecx, [ebp - 0x234]
mov byte [ebp - 4], 2
call fcn.00403a7f
mov ebx, dword [ebp - 0x274]
jmp 0x467cd9
push str.Not_CShortcut::user_all._n
push str.CShortcut::AddW
push 5
call fcn.00423f75
add esp, 0xc
lea eax, [ebx + 4]
push eax
lea ecx, [ebp - 0x234]
call fcn.00401069
cmp dword [ebp - 0x220], 8
lea ecx, [ebp - 0x28c]
push ecx
lea eax, [ebp - 0x234]
cmovae eax, dword [ebp - 0x234]
push eax
push str.SOFTWAREMicrosoftWindowsCurrentVersionExplorerShell_Folders
mov ecx, ebx
mov byte [ebp - 4], 4
call fcn.00468e6a
push edi
push 1
lea ecx, [ebp - 0x234]
mov byte [ebp - 4], 2
call fcn.00403a7f
mov esi, dword [ebp - 0x28c]
cmp esi, dword [ebp - 0x288]
je 0x468119
cmp dword [esi + 0x14], 8
mov dword [ebp - 0x268], edi
mov dword [ebp - 0x27c], edi
jb 0x467cfb
mov eax, dword [esi]
jmp 0x467cfd
mov eax, esi
push eax
push str.vstrPaths_item____1_ls__._n
push str.CShortcut::AddW
push 5
call fcn.00423f75
add esp, 0x10
cmp dword [esi + 0x14], 8
jb 0x467d1c
mov edi, dword [esi]
jmp 0x467d1e
mov edi, esi
xor eax, eax
cmp word [edi], ax
je 0x467d2c
push edi
call fcn.00588144
pop ecx
push eax
push edi
lea ecx, [ebp - 0x24c]
call fcn.00403cef
mov edi, 0x5bef0c
push edi
call fcn.00588144
pop ecx
push eax
push edi
lea ecx, [ebp - 0x24c]
call fcn.00403b92
cmp dword [ebx + 0x44], 0
je 0x467e91
lea ecx, [ebp - 0x234]
call fcn.0046c48f
lea eax, [ebx + 0x34]
mov byte [ebp - 4], 5
cmp dword [eax + 0x14], 8
jb 0x467d76
mov eax, dword [eax]
push 0x5c
push eax
lea ecx, [ebp - 0x234]
call fcn.0046d9ee
xor ecx, ecx
mov ebx, ecx
lea ecx, [ebp - 0x234]
call fcn.0046c815
test eax, eax
je 0x467e7c
push ebx
lea ecx, [ebp - 0x234]
call fcn.0046caa8
push ebx
lea ecx, [ebp - 0x234]
mov edi, eax
call fcn.0046cb38
inc eax
test edi, edi
je 0x467e68
push eax
push edi
call fcn.0058b10d
pop ecx
pop ecx
test eax, eax
je 0x467e68
xor eax, eax
cmp word [edi], ax
je 0x467ddd
push edi
call fcn.00588144
pop ecx
push eax
push edi
lea ecx, [ebp - 0x24c]
call fcn.00403b92
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 0x467e2a
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 0x467e4f
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 0x4680cb
mov edi, 0x5bef0c
push edi
call fcn.00588144
pop ecx
push eax
push edi
lea ecx, [ebp - 0x24c]
call fcn.00403b92
lea ecx, [ebp - 0x234]
inc ebx
call fcn.0046c815
cmp ebx, eax
jb 0x467d9b
lea ecx, [ebp - 0x234]
mov byte [ebp - 4], 2
call fcn.0046c546
mov ebx, dword [ebp - 0x274]
push 0xffffffffffffffff
xor eax, eax
push eax
lea eax, [ebp - 0x24c]
push eax
lea ecx, [ebp - 0x264]
call fcn.00403c35
mov edi, dword [ebp - 0x290]
xor eax, eax
cmp word [edi], ax
je 0x467ebc
push edi
call fcn.00588144
pop ecx
push eax
push edi
lea ecx, [ebp - 0x264]
call fcn.00403b92
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.00423f75
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 0x605ae0
push 1
xor eax, eax
push eax
push 0x605e70
call dword [sym.imp.ole32.dll_CoCreateInstance]
test eax, eax
js 0x46808d
push dword [ebp - 0x26c]
push str.ShortCut_pTarget___1_ls__n
push str.CShortcut::AddW
push 4
call fcn.00423f75
mov eax, dword [ebp - 0x268]
add esp, 0x10
mov ecx, dword [eax]
push dword [ebp - 0x26c]
push eax
call dword [ecx + 0x50]
mov eax, dword [ebp - 0x270]
test eax, eax
je 0x467f92
push dword [ebp + 0x1c]
push eax
call fcn.0058b10d
pop ecx
pop ecx
test eax, eax
je 0x467f92
push dword [ebp - 0x270]
push str.ShortCut_pArg___1_ls__n
push str.CShortcut::AddW
push 4
call fcn.00423f75
mov eax, dword [ebp - 0x268]
add esp, 0x10
mov ecx, dword [eax]
push dword [ebp - 0x270]
push eax
call dword [ecx + 0x2c]
mov eax, dword [ebp - 0x278]
test eax, eax
je 0x467fd7
push dword [ebp + 0x24]
push eax
call fcn.0058b10d
pop ecx
pop ecx
test eax, eax
je 0x467fd7
push dword [ebp - 0x278]
push str.ShortCut_pComment___1_ls__n
push str.CShortcut::AddW
push 4
call fcn.00423f75
mov eax, dword [ebp - 0x268]
add esp, 0x10
mov ecx, dword [eax]
push dword [ebp - 0x278]
push eax
call dword [ecx + 0x1c]
mov eax, dword [ebp - 0x280]
test eax, eax
je 0x46801c
push dword [ebp + 0x2c]
push eax
call fcn.0058b10d
pop ecx
pop ecx
test eax, eax
je 0x46801c
push dword [ebp - 0x280]
push str.ShortCut_pWorkDir___1_ls__n
push str.CShortcut::AddW
push 4
call fcn.00423f75
mov eax, dword [ebp - 0x268]
add esp, 0x10
mov ecx, dword [eax]
push dword [ebp - 0x280]
push eax
call dword [ecx + 0x24]
mov eax, dword [ebp - 0x268]
lea edx, [ebp - 0x27c]
mov ecx, dword [eax]
push edx
push 0x605e20
push eax
call dword [ecx]
test eax, eax
js 0x46808d
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.0058b0b1
mov eax, dword [ebp - 0x27c]
add esp, 0xc
mov ecx, dword [eax]
push 1
lea edx, [ebp - 0x21c]
push edx
push eax
call dword [ecx + 0x18]
test eax, eax
js 0x46808d
push str.succeeded._n
push str.CShortcut::AddW
push 4
call fcn.00423f75
add esp, 0xc
mov ecx, dword [ebp - 0x268]
test ecx, ecx
je 0x46809d
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov ecx, dword [ebp - 0x27c]
test ecx, ecx
je 0x4680ad
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
test edi, edi
js 0x4680b7
call dword [sym.imp.ole32.dll_CoUninitialize]
push 0x18
pop eax
add esi, eax
cmp esi, dword [ebp - 0x288]
je 0x468119
xor edi, edi
jmp 0x467ce5
cmp dword [ebp - 0x250], edi
lea eax, [ebp - 0x264]
cmovae eax, dword [ebp - 0x264]
push eax
push str.ShortCut_File___1_ls__n
mov ebx, str.CShortcut::AddW
push ebx
push 2
call fcn.00423f75
add esp, 0x10
lea ecx, [ebp - 0x234]
mov byte [ebp - 4], 2
call fcn.0046c546
push 0x5d3964
push ebx
push 5
call fcn.00423f75
add esp, 0xc
xor ebx, ebx
mov esi, ebx
jmp 0x468163
push dword [ebp + 0x14]
mov ecx, ebx
push dword [ebp - 0x26c]
push dword [ebp + 0xc]
push dword [ebp - 0x290]
call fcn.004696e8
test eax, eax
jne 0x46814a
push str.WriteHistory_failed._n
push str.CShortcut::AddW
push 2
call fcn.00423f75
add esp, 0xc
push 0x5d3964
push str.CShortcut::AddW
push 5
call fcn.00423f75
xor esi, esi
add esp, 0xc
inc esi
xor ebx, ebx
lea ecx, [ebp - 0x28c]
call fcn.0041eb55
push ebx
push 1
lea ecx, [ebp - 0x264]
call fcn.00403a7f
push ebx
push 1
lea ecx, [ebp - 0x24c]
call fcn.00403a7f
mov eax, esi
call fcn.00588a9a
ret 0x28