Function at 0x49c4f4
Capabilities:
Check for time delay via gettickcount

Disassembly:
push ebp
mov ebp, esp
push ecx
mov ecx, 0x15
push 0
push 0
dec ecx
jne 0x49c4fd
push ecx
xchg dword [ebp - 4], ecx
push ebx
push esi
push edi
mov dword [ebp - 8], ecx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x49cc76
push dword fs:[eax]
mov dword fs:[eax], esp
cmp dword [ebp - 8], 0xffffffff
je 0x49cbfd
xor eax, eax
push ebp
push 0x49cbb3
push dword fs:[eax]
mov dword fs:[eax], esp
push 0x20
mov ecx, edx
mov eax, dword [0x419358]
mov dl, 1
call fcn.0041df84
mov dword [ebp - 0x3c], eax
xor eax, eax
push ebp
push 0x49cb9f
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebp + 8]
mov byte [eax], 0
mov eax, dword [ebp + 8]
add eax, 8
call fcn.00404e6c
mov eax, dword [ebp + 8]
xor edx, edx
mov dword [eax + 4], edx
mov eax, dword [ebp - 4]
mov byte [eax + 0x4b9], 0
xor ebx, ebx
mov dword [ebp - 0x30], 0
mov dword [ebp - 0x2c], 0
xor eax, eax
mov dword [ebp - 0x38], eax
cmp byte [ebp + 0xc], 0
je 0x49c615
lea edx, [ebp - 0x4e]
mov ecx, 0xe
mov eax, dword [ebp - 0x3c]
mov esi, dword [eax]
call dword [esi + 0xc]
cmp eax, 0xe
jne 0x49c5fd
lea eax, [ebp - 0x4e]
mov edx, str.ZIM_
mov ecx, 4
call fcn.00403720
jne 0x49c5fd
movzx eax, word [ebp - 0x4a]
and ax, 0xff00
cmp ax, 0x100
ja 0x49c5fd
cmp dword [ebp - 0x44], 0
jne 0x49c5db
cmp dword [ebp - 0x48], 0
jbe 0x49c5fd
jmp 0x49c5dd
jle 0x49c5fd
mov eax, dword [ebp - 0x48]
mov dword [ebp - 0x28], eax
mov eax, dword [ebp - 0x44]
mov dword [ebp - 0x24], eax
mov ecx, dword [ebp - 0x3c]
mov dl, 1
mov eax, dword [0x46cec4]
call fcn.0046d424
mov dword [ebp - 0x40], eax
jmp 0x49c628
mov ecx, 0x49cc90
mov dl, 1
mov eax, dword [0x41875c]
call fcn.0040ce1c
call fcn.004048b4
jmp 0x49c628
mov eax, dword [ebp - 0x3c]
mov edx, dword [eax]
call dword [edx]
mov dword [ebp - 0x28], eax
mov dword [ebp - 0x24], edx
mov eax, dword [ebp - 0x3c]
mov dword [ebp - 0x40], eax
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x24]
cmp edx, dword [ebp + 0x18]
jne 0x49c636
cmp eax, dword [ebp + 0x14]
je 0x49c6b7
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x24]
cmp edx, dword [ebp + 0x18]
jne 0x49c64e
cmp eax, dword [ebp + 0x14]
jae 0x49cb3d
jmp 0x49c654
jge 0x49cb3d
push 0x34
lea eax, [ebp - 0x54]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4d8]
mov ecx, 0x49ccb0
mov edx, 0x49ccc0
call fcn.00492f6c
mov eax, dword [ebp - 0x54]
call fcn.00405330
push eax
lea eax, [ebp - 0x58]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4d8]
mov ecx, 0x49ccd4
mov edx, 0x49cd5c
call fcn.00492f6c
mov eax, dword [ebp - 0x58]
call fcn.00405330
mov edx, eax
mov eax, dword [0x4a54ac]
mov eax, dword [eax]
pop ecx
call fcn.0046b734
cmp eax, 6
jne 0x49cb3d
mov eax, dword [ebp + 0x10]
xor edx, edx
push edx
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4b4]
call fcn.004910dc
push dword [ebp + 0x18]
push dword [ebp + 0x14]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4b4]
call fcn.00490ee0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4b4]
call fcn.00490ff8
push 0
lea eax, [ebp - 0x5c]
push eax
lea eax, [ebp - 0x60]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4d8]
mov ecx, 0x49cd74
mov edx, 0x49cd94
call fcn.00492f6c
mov eax, dword [ebp - 0x60]
push eax
push 0
push 0x200
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4b4]
mov edx, dword [eax + 0x1bc]
mov eax, dword [eax + 0x1b8]
call fcn.00405e08
mov dword [ebp - 0x70], eax
mov dword [ebp - 0x6c], edx
lea eax, [ebp - 0x70]
mov dword [ebp - 0x68], eax
mov byte [ebp - 0x64], 0x10
lea ecx, [ebp - 0x68]
mov eax, dword [ebp - 4]
pop edx
call fcn.0049edf0
mov edx, dword [ebp - 0x5c]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3ec]
call fcn.0044cdd0
lea eax, [ebp - 0x74]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4d8]
mov ecx, 0x49cdac
mov edx, 0x49cdbc
call fcn.00492f6c
mov edx, dword [ebp - 0x74]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3f0]
call fcn.0044cdd0
xor ecx, ecx
movzx edx, word [ebp + 0x10]
mov eax, 0x100000
call fcn.00491440
mov ecx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4b4]
mov edx, dword [eax + 0x1b8]
mov eax, dword [ebp - 4]
call fcn.0049d564
mov esi, eax
mov eax, esi
call fcn.00402d34
mov dword [ebp - 0x34], eax
xor ecx, ecx
xor edx, edx
mov eax, dword [ebp - 8]
call fcn.004099e8
push 0
push 0x20000
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x24]
call fcn.00405e08
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3bc]
call fcn.00484260
mov eax, dword [ebp - 4]
mov edi, dword [eax + 0x3bc]
mov eax, edi
call fcn.00484050
mov edx, eax
mov eax, edi
call fcn.00484270
mov dword [ebp - 0x10], 0
mov dword [ebp - 0xc], 0
mov eax, esi
xor edx, edx
push edx
push eax
mov eax, dword [ebp - 0x28]
mov edx, dword [ebp - 0x24]
sub eax, dword [ebp - 0x10]
sbb edx, dword [ebp - 0xc]
push edx
push eax
mov eax, dword [ebp - 4]
call fcn.0049d524
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], edx
mov edx, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 0x40]
mov edi, dword [eax]
call dword [edi + 0xc]
cdq
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], edx
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x14]
jne 0x49c85e
cmp eax, dword [ebp - 0x18]
je 0x49c8ef
push 0
lea eax, [ebp - 0x78]
push eax
lea eax, [ebp - 0x7c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4d8]
mov ecx, 0x49cdd0
mov edx, 0x49cdf8
call fcn.00492f6c
mov eax, dword [ebp - 0x7c]
push eax
call sub.kernel32.dll_GetLastError_1
lea edx, [ebp - 0x80]
call fcn.0040c608
mov eax, dword [ebp - 0x80]
mov dword [ebp - 0x68], eax
mov byte [ebp - 0x64], 0xb
lea ecx, [ebp - 0x68]
mov eax, dword [ebp - 4]
pop edx
call fcn.0049edf0
mov edx, dword [ebp - 0x78]
mov ecx, 0xff
mov eax, dword [ebp - 4]
call fcn.0049e98c
lea eax, [ebp - 0x84]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4d8]
mov ecx, 0x49ce10
mov edx, 0x49ce2c
call fcn.00492f6c
mov edx, dword [ebp - 0x84]
mov eax, dword [ebp + 8]
add eax, 8
call fcn.00404ec0
mov bl, 1
test bl, bl
jne 0x49cad9
call sub.kernel32.dll_GetTickCount
mov edi, eax
mov edx, dword [ebp - 0x34]
mov ecx, dword [ebp - 0x18]
mov eax, dword [ebp - 8]
call fcn.004099bc
cdq
mov dword [ebp - 0x20], eax
mov dword [ebp - 0x1c], edx
call sub.kernel32.dll_GetTickCount
mov edx, eax
sub edx, edi
mov ecx, 1
mov eax, dword [ebp - 4]
call fcn.0049d570
mov edi, eax
mov eax, dword [ebp - 0x18]
mov edx, dword [ebp - 0x14]
add dword [ebp - 0x10], eax
adc dword [ebp - 0xc], edx
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
cmp edx, dword [ebp - 0x14]
jne 0x49c9a2
cmp eax, dword [ebp - 0x18]
jne 0x49c9a2
mov eax, dword [ebp - 0x20]
mov edx, dword [ebp - 0x1c]
add dword [ebp - 0x30], eax
adc dword [ebp - 0x2c], edx
add dword [ebp - 0x38], edi
fild qword [ebp - 0x30]
fdiv dword [0x49ce40]
mov eax, dword [ebp - 0x38]
mov dword [ebp - 0x68], eax
xor eax, eax
mov dword [ebp - 0x64], eax
fild qword [ebp - 0x68]
fdiv dword [0x49ce44]
fdivp st(1)
mov eax, dword [ebp - 4]
fstp qword [eax + 0x4d0]
wait
push dword [ebp - 0xc]
push dword [ebp - 0x10]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4b4]
call fcn.00490d04
mov edx, 0x800080
call fcn.00490210
jmp 0x49caab
push dword [ebp - 0xc]
push dword [ebp - 0x10]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4b4]
call fcn.00490d04
mov edx, 0xff
call fcn.00490210
push 1
lea eax, [ebp - 0x88]
push eax
lea eax, [ebp - 0x8c]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4d8]
mov ecx, 0x49ce50
mov edx, 0x49ce8c
call fcn.00492f6c
mov eax, dword [ebp - 0x8c]
push eax
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0xc]
sub eax, dword [ebp - 0x18]
sbb edx, dword [ebp - 0x14]
mov dword [ebp - 0x68], eax
mov dword [ebp - 0x64], edx
lea eax, [ebp - 0x68]
mov dword [ebp - 0x9c], eax
mov byte [ebp - 0x98], 0x10
lea eax, [ebp - 0x10]
mov dword [ebp - 0x94], eax
mov byte [ebp - 0x90], 0x10
lea ecx, [ebp - 0x9c]
mov eax, dword [ebp - 4]
pop edx
call fcn.0049edf0
mov edx, dword [ebp - 0x88]
mov ecx, 0xff
mov eax, dword [ebp - 4]
call fcn.0049e98c
lea eax, [ebp - 0xa0]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4d8]
mov ecx, 0x49ceac
mov edx, 0x49ced0
call fcn.00492f6c
mov edx, dword [ebp - 0xa0]
mov eax, dword [ebp + 8]
add eax, 8
call fcn.00404ec0
mov eax, dword [ebp + 8]
inc dword [eax + 4]
lea edx, [ebp - 0xa4]
mov eax, dword [ebp + 8]
mov eax, dword [eax + 4]
call fcn.0040956c
mov edx, dword [ebp - 0xa4]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x384]
call fcn.0044cdd0
xor ecx, ecx
mov edx, dword [ebp - 0x10]
mov eax, dword [ebp - 8]
call fcn.004099e8
push 0
push 0x20000
mov eax, dword [ebp - 0x10]
mov edx, dword [ebp - 0xc]
call fcn.00405e08
mov edx, eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x3bc]
call fcn.00484270
mov eax, dword [0x4a54ac]
mov eax, dword [eax]
call fcn.0046b39c
mov eax, esi
xor edx, edx
cmp edx, dword [ebp - 0x14]
jne 0x49cae9
cmp eax, dword [ebp - 0x18]
ja 0x49caff
jmp 0x49caeb
jg 0x49caff
mov eax, dword [ebp - 4]
cmp byte [eax + 0x4b9], 0
jne 0x49caff
test bl, bl
je 0x49c819
mov edx, esi
mov eax, dword [ebp - 0x34]
call fcn.00402d50
mov eax, dword [ebp - 4]
cmp byte [eax + 0x4b9], 0
je 0x49cb1b
mov eax, dword [ebp + 8]
mov byte [eax], 4
test bl, bl
je 0x49cb25
mov eax, dword [ebp + 8]
mov byte [eax], 2
mov eax, dword [ebp - 8]
push eax
call sub.kernel32.dll_FlushFileBuffers
mov cl, 5
mov edx, dword [ebp - 8]
mov eax, dword [ebp - 4]
call fcn.0049ad2c
jmp 0x49cb7b
mov eax, dword [ebp + 8]
mov byte [eax], 1
lea eax, [ebp - 0xa8]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4d8]
mov ecx, 0x49cee8
mov edx, 0x49cf08
call fcn.00492f6c
mov edx, dword [ebp - 0xa8]
mov eax, dword [ebp + 8]
add eax, 8
call fcn.00404ec0
mov eax, dword [ebp + 8]
xor edx, edx
mov dword [eax + 4], edx
cmp byte [ebp + 0xc], 0
je 0x49cb89
mov eax, dword [ebp - 0x40]
call fcn.00404018
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x49cba6
mov eax, dword [ebp - 0x3c]
call fcn.00404018
ret
mov eax, dword [ebp + 8]
mov byte [eax], 1
lea eax, [ebp - 0xb0]
push eax
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x4d8]
mov ecx, 0x49cf60
mov edx, 0x49cf78
call fcn.00492f6c
mov edx, dword [ebp - 0xb0]
mov eax, dword [ebp + 8]
add eax, 8
call fcn.00404ec0
mov eax, dword [ebp + 8]
xor edx, edx
mov dword [eax + 4], edx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x49cc7d
lea eax, [ebp - 0xb0]
mov edx, 5
call fcn.00404e90
lea eax, [ebp - 0x8c]
mov edx, 7
call fcn.00404e90
lea eax, [ebp - 0x60]
mov edx, 4
call fcn.00404e90
ret