Function at 0x408590
Capabilities:
Delete directory
Delete file
Enumerate files on windows
Read .ini file

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x364
mov eax, dword [0x424008]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, dword [sym.imp.USER32.dll_wsprintfA]
lea eax, [ebp - 0x218]
push edi
push 0x425750
push 0x425548
push 0x425414
push str._s_s_s
push eax
call esi
add esp, 0x14
lea eax, [ebp - 0x218]
push str..ini
push eax
call dword [sym.imp.SHLWAPI.dll_PathRenameExtensionA]
lea eax, [ebp - 0x218]
push eax
push 0
push str.AllDelete
push str.UNINSTALL
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileIntA]
test eax, eax
je 0x40897b
lea eax, [ebp - 0x218]
push eax
push 0x104
lea eax, [ebp - 0x110]
push eax
push 0x420874
push str.SaveFold
push str.INSTALL
call dword [sym.imp.KERNEL32.dll_GetPrivateProfileStringA]
lea eax, [ebp - 0x110]
push eax
lea eax, [ebp - 0x218]
push str._s.
push eax
call esi
add esp, 0xc
lea eax, [ebp - 0x358]
push eax
lea eax, [ebp - 0x218]
push eax
call dword [sym.imp.KERNEL32.dll_FindFirstFileA]
mov ebx, eax
cmp ebx, 0xffffffff
je 0x40897b
mov edi, dword [sym.imp.KERNEL32.dll_DeleteFileA]
nop dword [eax]
nop dword [eax + eax]
mov ecx, 0x4211c4
lea eax, [ebp - 0x32c]
nop dword [eax + eax]
mov dl, byte [eax]
cmp dl, byte [ecx]
jne 0x4086a0
test dl, dl
je 0x40869c
mov dl, byte [eax + 1]
cmp dl, byte [ecx + 1]
jne 0x4086a0
add eax, 2
add ecx, 2
test dl, dl
jne 0x408680
xor eax, eax
jmp 0x4086a5
sbb eax, eax
or eax, 1
test eax, eax
je 0x408766
mov eax, 0x4211c8
lea ecx, [ebp - 0x32c]
mov dl, byte [ecx]
cmp dl, byte [eax]
jne 0x4086d8
test dl, dl
je 0x4086d4
mov dl, byte [ecx + 1]
cmp dl, byte [eax + 1]
jne 0x4086d8
add ecx, 2
add eax, 2
test dl, dl
jne 0x4086b8
xor eax, eax
jmp 0x4086dd
sbb eax, eax
or eax, 1
test eax, eax
je 0x408766
test byte [ebp - 0x358], 0x10
jne 0x408766
mov edx, str..dat
lea ecx, [ebp - 0x32c]
call fcn.0040a520
test eax, eax
je 0x40872a
lea eax, [ebp - 0x32c]
push eax
lea eax, [ebp - 0x110]
push eax
lea eax, [ebp - 0x218]
push 0x42086c
push eax
call esi
add esp, 0x10
lea eax, [ebp - 0x218]
push eax
call edi
mov edx, str..jpg
lea ecx, [ebp - 0x32c]
call fcn.0040a520
test eax, eax
je 0x408766
lea eax, [ebp - 0x32c]
push eax
lea eax, [ebp - 0x110]
push eax
lea eax, [ebp - 0x218]
push 0x42086c
push eax
call esi
add esp, 0x10
lea eax, [ebp - 0x218]
push eax
call edi
lea eax, [ebp - 0x358]
push eax
push ebx
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x408670
push ebx
call dword [sym.imp.KERNEL32.dll_FindClose]
lea ecx, [ebp - 0x110]
call fcn.0040a470
mov esi, dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
lea eax, [ebp - 0x110]
push eax
call esi
mov ebx, dword [sym.imp.KERNEL32.dll_lstrlenA]
lea eax, [ebp - 0x110]
push eax
call ebx
dec eax
lea ecx, [ebp - 0x110]
mov dword [ebp - 0x360], eax
add eax, ecx
mov dword [ebp - 0x35c], eax
xor eax, eax
mov edi, dword [ebp - 0x35c]
mov al, 0x5c
mov ecx, dword [ebp - 0x360]
std
repne scasb al, byte es:[edi]
jne 0x4087df
inc edi
mov dword [ebp - 0x35c], edi
jmp 0x4087e9
mov dword [ebp - 0x35c], 0
cld
mov eax, dword [ebp - 0x35c]
mov byte [eax], 0
lea eax, [ebp - 0x110]
push eax
call ebx
dec eax
lea ecx, [ebp - 0x110]
mov dword [ebp - 0x360], eax
add eax, ecx
mov dword [ebp - 0x35c], eax
xor eax, eax
mov edi, dword [ebp - 0x35c]
mov al, 0x5c
mov ecx, dword [ebp - 0x360]
std
repne scasb al, byte es:[edi]
jne 0x40882f
inc edi
mov dword [ebp - 0x35c], edi
jmp 0x408839
mov dword [ebp - 0x35c], 0
cld
mov edi, dword [ebp - 0x35c]
push 0x42564c
inc edi
call ebx
push edi
mov dword [ebp - 0x360], eax
call ebx
mov ecx, dword [ebp - 0x360]
cmp ecx, eax
jg 0x40897b
push ecx
push 0x42564c
push edi
call fcn.0040d0f0
add esp, 0xc
test eax, eax
jne 0x40897b
lea ecx, [ebp - 0x110]
call fcn.0040a470
lea eax, [ebp - 0x110]
push eax
call esi
mov dl, 0x5c
mov byte [edi - 1], 0
lea ecx, [ebp - 0x110]
call fcn.0040a650
cmp byte [0x425958], 0
lea esi, [eax + 1]
je 0x40893e
push 0x425958
call ebx
push esi
mov edi, eax
call ebx
cmp edi, eax
jg 0x40897b
push edi
push 0x425958
push esi
call fcn.0040d0f0
add esp, 0xc
test eax, eax
jne 0x40897b
lea ecx, [ebp - 0x110]
call fcn.0040a470
mov edi, dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
lea eax, [ebp - 0x110]
push eax
call edi
mov dl, 0x5c
mov byte [esi - 1], 0
lea ecx, [ebp - 0x110]
call fcn.0040a650
push 0x425548
lea esi, [eax + 1]
call ebx
push esi
mov dword [ebp - 0x360], eax
call ebx
mov ecx, dword [ebp - 0x360]
cmp ecx, eax
jg 0x40897b
push ecx
push 0x425548
push esi
call fcn.0040d0f0
add esp, 0xc
test eax, eax
jne 0x40897b
lea ecx, [ebp - 0x110]
call fcn.0040a470
jmp 0x408972
push 0x425548
call ebx
push esi
mov edi, eax
call ebx
cmp edi, eax
jg 0x40897b
push edi
push 0x425548
push esi
call fcn.0040d0f0
add esp, 0xc
test eax, eax
jne 0x40897b
lea ecx, [ebp - 0x110]
call fcn.0040a470
mov edi, dword [sym.imp.KERNEL32.dll_RemoveDirectoryA]
lea eax, [ebp - 0x110]
push eax
call edi
mov ecx, dword [ebp - 4]
mov eax, 1
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.0040a88f
mov esp, ebp
pop ebp
ret