Function at 0x40378f
Capabilities:
Check if file exists
Create directory
Create shortcut via ishelllink
Delete directory
Delete file
Enumerate files on windows
Get common file path
Get file attributes

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xaac
mov dword [ebp - 0xaac], ecx
and dword [ebp - 0x22c], 0
and dword [ebp - 4], 0
and dword [ebp - 0x224], 0
lea eax, [ebp - 4]
push eax
call dword [sym.imp.SHELL32.dll_SHGetMalloc]
mov dword [ebp - 0x228], eax
cmp dword [ebp - 0x228], 0
je 0x4037e2
push 0
push 0
push str.Could_not_get_a_handle_to_Shell_memory_object
mov ecx, dword [ebp - 0xaac]
call sub.MFC70.DLL_Ordinal_3890
jmp 0x403c1e
lea eax, [ebp - 0x224]
push eax
push 0x17
mov eax, dword [ebp - 0xaac]
push dword [eax + 0x20]
call dword [sym.imp.SHELL32.dll_SHGetSpecialFolderLocation]
mov dword [ebp - 0x228], eax
cmp dword [ebp - 0x228], 0
je 0x40383c
push 0
push 0
push str.Could_not_get_a_handle_to_the_Common_Programs_folder
mov ecx, dword [ebp - 0xaac]
call sub.MFC70.DLL_Ordinal_3890
cmp dword [ebp - 0x224], 0
je 0x403837
push dword [ebp - 0x224]
mov eax, dword [ebp - 4]
mov eax, dword [eax]
push dword [ebp - 4]
call dword [eax + 0x14]
jmp 0x403c1e
lea eax, [ebp - 0x440]
push eax
push dword [ebp - 0x224]
call dword [sym.imp.SHELL32.dll_SHGetPathFromIDListA]
mov dword [ebp - 0x228], eax
push dword [ebp - 0x224]
mov eax, dword [ebp - 4]
mov eax, dword [eax]
push dword [ebp - 4]
call dword [eax + 0x14]
cmp dword [ebp + 8], 0
je 0x403b08
lea eax, [ebp - 0x440]
push eax
push str._sISC
lea eax, [ebp - 0x338]
push eax
call dword [sym.imp.MSVCR70.dll_sprintf]
add esp, 0xc
push 0
lea eax, [ebp - 0x338]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
lea eax, [ebp - 0x440]
push eax
push str._sISCBIND
lea eax, [ebp - 0x338]
push eax
call dword [sym.imp.MSVCR70.dll_sprintf]
add esp, 0xc
push 0
lea eax, [ebp - 0x338]
push eax
call dword [sym.imp.KERNEL32.dll_CreateDirectoryA]
push 0
call dword [sym.imp.ole32.dll_CoInitialize]
mov dword [ebp - 0x114], eax
cmp dword [ebp - 0x114], 0
jl 0x403b03
lea eax, [ebp - 0x22c]
push eax
push 0x406f44
push 1
push 0
push 0x406f54
call dword [sym.imp.ole32.dll_CoCreateInstance]
mov dword [ebp - 0x114], eax
cmp dword [ebp - 0x114], 0
jl 0x403afd
lea eax, [ebp - 0x338]
push eax
push str._sBINDCtrl.lnk
lea eax, [ebp - 0x110]
push eax
call dword [sym.imp.MSVCR70.dll_sprintf]
add esp, 0xc
mov eax, dword [ebp - 0xaac]
push dword [eax + 0x98]
push str._sBINDCtrl.exe
lea eax, [ebp - 0x220]
push eax
call dword [sym.imp.MSVCR70.dll_sprintf]
add esp, 0xc
lea eax, [ebp - 0x220]
push eax
mov eax, dword [ebp - 0x22c]
mov eax, dword [eax]
push dword [ebp - 0x22c]
call dword [eax + 0x50]
push str.BIND_Control_Panel
mov eax, dword [ebp - 0x22c]
mov eax, dword [eax]
push dword [ebp - 0x22c]
call dword [eax + 0x1c]
lea eax, [ebp - 0x444]
push eax
push 0x406f64
mov eax, dword [ebp - 0x22c]
mov eax, dword [eax]
push dword [ebp - 0x22c]
call dword [eax]
mov dword [ebp - 0x114], eax
cmp dword [ebp - 0x114], 0
jl 0x4039f5
push 0x104
lea eax, [ebp - 0x650]
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0x110]
push eax
push 0
push 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
push 1
lea eax, [ebp - 0x650]
push eax
mov eax, dword [ebp - 0x444]
mov eax, dword [eax]
push dword [ebp - 0x444]
call dword [eax + 0x18]
mov dword [ebp - 0x114], eax
mov eax, dword [ebp - 0x444]
mov eax, dword [eax]
push dword [ebp - 0x444]
call dword [eax + 8]
push str.readme.txt
call dword [sym.imp.KERNEL32.dll_GetFileAttributesA]
cmp eax, 0xffffffff
je 0x403afd
mov eax, dword [ebp - 0xaac]
push dword [eax + 0x74]
push str._sReadme.txt
lea eax, [ebp - 0x220]
push eax
call dword [sym.imp.MSVCR70.dll_sprintf]
add esp, 0xc
lea eax, [ebp - 0x338]
push eax
push str._sReadme.lnk
lea eax, [ebp - 0x110]
push eax
call dword [sym.imp.MSVCR70.dll_sprintf]
add esp, 0xc
lea eax, [ebp - 0x220]
push eax
mov eax, dword [ebp - 0x22c]
mov eax, dword [eax]
push dword [ebp - 0x22c]
call dword [eax + 0x50]
push str.BIND_Readme
mov eax, dword [ebp - 0x22c]
mov eax, dword [eax]
push dword [ebp - 0x22c]
call dword [eax + 0x1c]
lea eax, [ebp - 0x444]
push eax
push 0x406f64
mov eax, dword [ebp - 0x22c]
mov eax, dword [eax]
push dword [ebp - 0x22c]
call dword [eax]
mov dword [ebp - 0x114], eax
cmp dword [ebp - 0x114], 0
jl 0x403aec
push 0x104
lea eax, [ebp - 0x858]
push eax
push 0xffffffffffffffff
lea eax, [ebp - 0x110]
push eax
push 0
push 0
call dword [sym.imp.KERNEL32.dll_MultiByteToWideChar]
push 1
lea eax, [ebp - 0x858]
push eax
mov eax, dword [ebp - 0x444]
mov eax, dword [eax]
push dword [ebp - 0x444]
call dword [eax + 0x18]
mov dword [ebp - 0x114], eax
mov eax, dword [ebp - 0x444]
mov eax, dword [eax]
push dword [ebp - 0x444]
call dword [eax + 8]
mov eax, dword [ebp - 0x22c]
mov eax, dword [eax]
push dword [ebp - 0x22c]
call dword [eax + 8]
call dword [sym.imp.ole32.dll_CoUninitialize]
jmp 0x403c1e
lea eax, [ebp - 0x440]
push eax
push str._sISCBIND
lea eax, [ebp - 0x338]
push eax
call dword [sym.imp.MSVCR70.dll_sprintf]
add esp, 0xc
lea eax, [ebp - 0x338]
push eax
push str._s.
lea eax, [ebp - 0x960]
push eax
call dword [sym.imp.MSVCR70.dll_sprintf]
add esp, 0xc
lea eax, [ebp - 0xaa8]
push eax
lea eax, [ebp - 0x960]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov dword [ebp - 0x964], eax
cmp dword [ebp - 0x964], 0xffffffff
je 0x403be8
push 0x406ae8
lea eax, [ebp - 0xa7c]
push eax
call sub.MSVCR70.dll_strcmp
pop ecx
pop ecx
test eax, eax
je 0x403bc5
push 0x406ae4
lea eax, [ebp - 0xa7c]
push eax
call sub.MSVCR70.dll_strcmp
pop ecx
pop ecx
test eax, eax
je 0x403bc5
lea eax, [ebp - 0xa7c]
push eax
lea eax, [ebp - 0x338]
push eax
push str._s_s
lea eax, [ebp - 0x960]
push eax
call dword [sym.imp.MSVCR70.dll_sprintf]
add esp, 0x10
lea eax, [ebp - 0x960]
push eax
call dword [sym.imp.KERNEL32.dll_DeleteFileA]
lea eax, [ebp - 0xaa8]
push eax
push dword [ebp - 0x964]
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x403b67
push dword [ebp - 0x964]
call dword [sym.imp.KERNEL32.dll_FindClose]
lea eax, [ebp - 0x338]
push eax
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
lea eax, [ebp - 0x440]
push eax
push str._sISC
lea eax, [ebp - 0x338]
push eax
call dword [sym.imp.MSVCR70.dll_sprintf]
add esp, 0xc
lea eax, [ebp - 0x338]
push eax
call dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
leave
ret 4