Function at 0x423c53
Capabilities:
Check for time delay via gettickcount
Enumerate files on windows
Enumerate files recursively
Set file attributes

Disassembly:
push ebp
lea ebp, [esp - 0x64]
sub esp, 0x3b4
push esi
mov esi, dword [ebp + 0x70]
push edi
xor edi, edi
inc edi
cmp byte [ebp + 0x7c], 0
mov dword [ebp + 0x54], ecx
jne 0x423c92
mov ecx, dword [0x45e2f0]
push edi
push 0
push 0xffffffffffffffff
push 0x454094
call fcn.0040161c
cmp byte [esi], 0
je 0x423ca0
cmp dword [ebp + 0x74], 0
jne 0x423c92
mov dword [ebp + 0x74], edi
push esi
call sub.MSVCR71.dll_strlen
cmp eax, 0x104
pop ecx
jb 0x423ca7
xor eax, eax
jmp 0x42418c
push dword [ebp + 0x6c]
lea edi, [ebp - 0x148]
push 0x40
pop eax
call fcn.00438a10
lea eax, [ebp - 0x350]
push esi
push eax
call sub.MSVCR71.dll_strcpy
lea eax, [ebp - 0x24c]
push esi
push eax
call sub.MSVCR71.dll_strcpy
mov esi, dword [sym.imp.MSVCR71.dll_strrchr]
lea eax, [ebp - 0x24c]
push 0x5c
push eax
call esi
add esp, 0x1c
test eax, eax
je 0x423cfd
mov byte [eax + 1], 0
lea eax, [ebp - 0x24c]
push eax
call sub.MSVCR71.dll_strlen
pop ecx
jmp 0x423d06
mov byte [ebp - 0x24c], 0
xor eax, eax
lea ecx, [ebp + eax - 0x24c]
mov dword [ebp + 0x5c], ecx
mov ecx, 0x103
sub ecx, eax
lea eax, [ebp - 0x350]
push 0x5c
push eax
mov dword [ebp + 0x6c], ecx
call esi
test eax, eax
pop ecx
pop ecx
je 0x423d2e
inc eax
jmp 0x423d34
lea eax, [ebp - 0x350]
mov edi, 0x4569e4
mov dword [ebp + 0x60], eax
call fcn.00438cc6
test eax, eax
jne 0x423d4c
mov dword [ebp + 0x74], 2
push ebx
mov ebx, dword [sym.imp.KERNEL32.dll_FindFirstFileA]
lea eax, [ebp - 0xec]
push eax
lea eax, [ebp - 0x350]
xor esi, esi
push eax
mov dword [ebp + 0x70], esi
call ebx
cmp eax, 0xffffffff
mov dword [ebp + 0x58], eax
je 0x424048
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call edi
sub eax, dword [0x460024]
mov ecx, dword [0x45b170]
cmp eax, dword [ecx + 0xb0]
jbe 0x423db9
xor eax, eax
push eax
push eax
push eax
push eax
lea eax, [ebp - 0x108]
push eax
call dword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
je 0x423db2
push 1
push 0xffffffffffffffff
call fcn.0040d9dd
pop ecx
pop ecx
call edi
mov dword [0x460024], eax
test byte [ebp - 0xec], 0x10
je 0x423df9
cmp byte [ebp - 0xc0], 0x2e
jne 0x423dee
cmp byte [ebp - 0xbf], 0
je 0x424027
cmp byte [ebp - 0xbf], 0x2e
jne 0x423dee
cmp byte [ebp - 0xbe], 0
je 0x424027
cmp dword [ebp + 0x74], 1
jne 0x423e03
jmp 0x424027
cmp dword [ebp + 0x74], 3
je 0x424027
lea eax, [ebp - 0xc0]
push eax
call sub.MSVCR71.dll_strlen
cmp eax, dword [ebp + 0x6c]
pop ecx
ja 0x424024
lea eax, [ebp - 0xc0]
push eax
push dword [ebp + 0x5c]
call sub.MSVCR71.dll_strcpy
cmp byte [ebp - 0x148], 0
pop ecx
pop ecx
lea edi, [ebp - 0x148]
je 0x42400d
movsx eax, byte [edi]
push eax
call dword [sym.imp.MSVCR71.dll_toupper]
cmp eax, 0x4f
pop ecx
jg 0x423f6c
je 0x423f32
sub eax, 0x2b
je 0x423f2a
push 2
pop ecx
sub eax, ecx
je 0x423f23
sub eax, 0x14
je 0x423eed
sub eax, 7
je 0x423eb8
sub eax, 6
jne 0x424003
cmp esi, 1
jne 0x423e8f
or byte [ebp - 0xec], 0x80
jmp 0x424003
cmp esi, 2
jne 0x423ea0
and byte [ebp - 0xec], 0x7f
jmp 0x424003
cmp esi, 3
jne 0x424003
xor dword [ebp - 0xec], 0x80
jmp 0x424003
cmp esi, 1
jne 0x423ec8
or dword [ebp - 0xec], ecx
jmp 0x424003
cmp esi, ecx
jne 0x423ed8
and dword [ebp - 0xec], 0xfffffffd
jmp 0x424003
cmp esi, 3
jne 0x424003
xor dword [ebp - 0xec], 2
jmp 0x424003
cmp esi, 1
jne 0x423efe
or dword [ebp - 0xec], 0x20
jmp 0x424003
cmp esi, ecx
jne 0x423f0e
and dword [ebp - 0xec], 0xffffffdf
jmp 0x424003
cmp esi, 3
jne 0x424003
xor dword [ebp - 0xec], 0x20
jmp 0x424003
mov esi, ecx
jmp 0x424003
xor esi, esi
inc esi
jmp 0x424003
cmp esi, 1
jne 0x423f43
or byte [ebp - 0xeb], 0x10
jmp 0x424003
cmp esi, 2
jne 0x423f54
and byte [ebp - 0xeb], 0xef
jmp 0x424003
cmp esi, 3
jne 0x424003
xor dword [ebp - 0xec], 0x1000
jmp 0x424003
sub eax, 0x52
je 0x423fdc
dec eax
je 0x423fb2
dec eax
je 0x423f85
sub eax, 0xa
jne 0x424003
push 3
pop esi
jmp 0x424003
cmp esi, 1
jne 0x423f93
or byte [ebp - 0xeb], 1
jmp 0x424003
cmp esi, 2
jne 0x423fa1
and byte [ebp - 0xeb], 0xfe
jmp 0x424003
cmp esi, 3
jne 0x424003
xor dword [ebp - 0xec], 0x100
jmp 0x424003
cmp esi, 1
jne 0x423fc0
or dword [ebp - 0xec], 4
jmp 0x424003
cmp esi, 2
jne 0x423fce
and dword [ebp - 0xec], 0xfffffffb
jmp 0x424003
cmp esi, 3
jne 0x424003
xor dword [ebp - 0xec], 4
jmp 0x424003
cmp esi, 1
jne 0x423fe9
or dword [ebp - 0xec], esi
jmp 0x424003
cmp esi, 2
jne 0x423ff7
and dword [ebp - 0xec], 0xfffffffe
jmp 0x424003
cmp esi, 3
jne 0x424003
xor dword [ebp - 0xec], 1
inc edi
cmp byte [edi], 0
jne 0x423e3d
push dword [ebp - 0xec]
lea eax, [ebp - 0x24c]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
test eax, eax
jne 0x424027
inc dword [ebp + 0x70]
lea eax, [ebp - 0xec]
push eax
push dword [ebp + 0x58]
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x423d74
push dword [ebp + 0x58]
call dword [sym.imp.KERNEL32.dll_FindClose]
cmp byte [ebp + 0x78], 0
je 0x424170
cmp dword [ebp + 0x6c], 2
jbe 0x424170
push 0x454a74
push dword [ebp + 0x5c]
call sub.MSVCR71.dll_strcpy
pop ecx
pop ecx
lea eax, [ebp - 0xec]
push eax
lea eax, [ebp - 0x24c]
push eax
call ebx
mov esi, eax
cmp esi, 0xffffffff
je 0x424170
push dword [ebp + 0x60]
call sub.MSVCR71.dll_strlen
mov ebx, dword [sym.imp.KERNEL32.dll_GetTickCount]
pop ecx
mov edi, eax
call ebx
sub eax, dword [0x460024]
mov ecx, dword [0x45b170]
cmp eax, dword [ecx + 0xb0]
jbe 0x4240d6
xor eax, eax
push eax
push eax
push eax
push eax
lea eax, [ebp - 0x108]
push eax
call dword [sym.imp.USER32.dll_PeekMessageA]
test eax, eax
je 0x4240cf
push 1
push 0xffffffffffffffff
call fcn.0040d9dd
pop ecx
pop ecx
call ebx
mov dword [0x460024], eax
test byte [ebp - 0xec], 0x10
je 0x424153
cmp byte [ebp - 0xc0], 0x2e
jne 0x424103
cmp byte [ebp - 0xbf], 0
je 0x424153
cmp byte [ebp - 0xbf], 0x2e
jne 0x424103
cmp byte [ebp - 0xbe], 0
je 0x424153
lea eax, [ebp - 0xc0]
push eax
call sub.MSVCR71.dll_strlen
add eax, edi
cmp eax, dword [ebp + 0x6c]
pop ecx
jae 0x424153
push dword [ebp + 0x60]
lea eax, [ebp - 0xc0]
push eax
push str._s_s
push dword [ebp + 0x5c]
call dword [sym.imp.MSVCR71.dll_sprintf]
mov ecx, dword [ebp + 0x54]
add esp, 0x10
push 1
push dword [ebp + 0x78]
lea eax, [ebp - 0x24c]
push dword [ebp + 0x74]
push eax
lea eax, [ebp - 0x148]
push eax
call fcn.00423c53
add dword [ebp + 0x70], eax
lea eax, [ebp - 0xec]
push eax
push esi
call dword [sym.imp.KERNEL32.dll_FindNextFileA]
test eax, eax
jne 0x424097
push esi
call dword [sym.imp.KERNEL32.dll_FindClose]
cmp byte [ebp + 0x7c], 0
pop ebx
jne 0x424189
mov eax, dword [ebp + 0x70]
cdq
push 0x18
push edx
push eax
mov eax, dword [0x45e2f0]
call fcn.004019da
mov eax, dword [ebp + 0x70]
pop edi
pop esi
add ebp, 0x64
leave
ret 0x14