Function at 0x403149
Capabilities:
Check for time delay via gettickcount
Write file on windows

Disassembly:
push ebp
mov ebp, esp
push edi
push esi
push ebx
sub esp, 0x6c
mov eax, dword [ebp + 8]
cmp dword [ebp + 0x10], 0
mov ebx, dword [ebp + 0x14]
je 0x403169
mov edx, dword [ebp + 0x10]
mov dword [ebp - 0x6c], ebx
mov dword [ebp - 0x70], edx
jmp 0x403177
mov dword [ebp - 0x70], 0x410c60
mov dword [ebp - 0x6c], 0x8000
test eax, eax
js 0x403191
add eax, dword [0x42f990]
push 0
push 0
push eax
push dword [0x409010]
call sub.KERNEL32.dll_SetFilePointer
push esi
push esi
push 4
lea eax, [ebp - 0x10]
push eax
call fcn.00403110
pop edx
pop ecx
test eax, eax
je 0x4033a1
mov eax, dword [ebp - 0x10]
test eax, eax
jns 0x403331
call sub.KERNEL32.dll_GetTickCount
mov edi, dword [ebp - 0x10]
xor esi, esi
mov dword [0x420ca0], 8
mov dword [0x4211bc], 0
mov dword [0x4211b8], 0
and edi, 0x7fffffff
mov dword [0x42a848], 0x422840
mov dword [ebp - 0x68], eax
mov dword [0x42a844], 0x422840
mov dword [0x42a840], 0x42a840
mov dword [ebp - 0x10], edi
jmp 0x403324
cmp eax, 0x4000
mov ebx, eax
jle 0x403218
mov ebx, 0x4000
push eax
push eax
push ebx
push 0x40cc60
call fcn.00403110
pop edx
pop ecx
test eax, eax
je 0x4033a1
sub dword [ebp - 0x10], ebx
mov dword [0x420c90], 0x40cc60
mov dword [0x420c94], ebx
mov eax, dword [ebp - 0x70]
sub esp, 0xc
mov edx, dword [ebp - 0x6c]
push 0x420c90
mov dword [0x420c98], eax
mov dword [0x420c9c], edx
call fcn.0040749a
add esp, 0xc
test eax, eax
mov dword [ebp - 0x60], eax
jns 0x403274
mov esi, 0xfffffffc
jmp 0x4033ad
mov ebx, dword [0x420c98]
sub ebx, dword [ebp - 0x70]
call sub.KERNEL32.dll_GetTickCount
test byte [0x42f91c], 1
mov dword [ebp - 0x64], eax
je 0x4032d1
sub eax, dword [ebp - 0x68]
cmp eax, 0xc8
ja 0x40329e
cmp dword [ebp - 0x10], 0
jne 0x4032d1
push eax
mov eax, edi
sub eax, dword [ebp - 0x10]
push edi
push 0x64
push eax
call sub.KERNEL32.dll_MulDiv
push eax
push str....__d__
lea eax, [ebp - 0x54]
push eax
call sub.USER32.dll_wsprintfA
lea edx, [ebp - 0x54]
pop ecx
pop eax
push edx
push 0
call fcn.00403d54
mov eax, dword [ebp - 0x64]
mov dword [ebp - 0x68], eax
pop eax
pop edx
test ebx, ebx
je 0x403324
cmp dword [ebp + 0x10], 0
jne 0x403308
sub esp, 0xc
push 0
lea edx, [ebp - 0x14]
push edx
push ebx
push dword [ebp - 0x70]
push dword [ebp + 0xc]
call sub.KERNEL32.dll_WriteFile
add esp, 0xc
test eax, eax
je 0x4033a8
cmp dword [ebp - 0x14], ebx
jne 0x4033a8
add esi, ebx
jmp 0x403315
mov eax, dword [0x420c98]
add esi, ebx
sub dword [ebp - 0x6c], ebx
mov dword [ebp - 0x70], eax
cmp dword [ebp - 0x60], 1
jne 0x403242
jmp 0x4033ad
mov eax, dword [ebp - 0x10]
test eax, eax
jg 0x40320a
jmp 0x4033ad
cmp dword [ebp + 0x10], 0
jne 0x403388
xor esi, esi
lea edi, [ebp - 0x14]
jmp 0x40337f
mov ebx, dword [ebp - 0x6c]
cmp ebx, eax
jle 0x403347
mov ebx, eax
push eax
push eax
push ebx
push 0x40cc60
call fcn.00403110
pop edx
pop ecx
test eax, eax
je 0x4033a1
sub esp, 0xc
push 0
push edi
push ebx
push 0x40cc60
push dword [ebp + 0xc]
call sub.KERNEL32.dll_WriteFile
add esp, 0xc
test eax, eax
je 0x4033a8
cmp ebx, dword [ebp - 0x14]
jne 0x4033a8
sub dword [ebp - 0x10], ebx
add esi, ebx
mov eax, dword [ebp - 0x10]
test eax, eax
jg 0x40333e
jmp 0x4033ad
cmp ebx, eax
jle 0x40338e
mov ebx, eax
push esi
push esi
mov esi, ebx
push ebx
push dword [ebp + 0x10]
call fcn.00403110
pop edx
pop ecx
test eax, eax
jne 0x4033ad
mov esi, 0xfffffffd
jmp 0x4033ad
mov esi, 0xfffffffe
lea esp, [ebp - 0xc]
mov eax, esi
pop ebx
pop esi
pop edi
pop ebp
ret 0x10