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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff0
push ebx
push esi
push edi
mov edi, dword [ebp + 8]
add edi, 0xfffffffc
xor ebx, ebx
mov eax, dword [edi]
cmp dword [eax + 0x3b0], 0
je 0x6149c2
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [edi]
sub eax, dword [edx + 0x3b0]
mov edx, dword [edi]
mov edx, dword [edx + 0x29c]
cmp eax, dword [edx + 0x44]
jbe 0x6149c2
mov eax, dword [edi]
cmp dword [eax + 0x3bc], 0
je 0x614907
mov eax, dword [edi]
mov esi, dword [eax + 0x290]
mov eax, dword [esi + 0x228]
push eax
mov ecx, dword [esi + 0x22c]
mov eax, dword [edi]
mov edx, dword [eax + 0x3c4]
mov eax, dword [edi]
mov eax, dword [eax + 0x3b4]
call fcn.00614840
test al, al
jne 0x61494c
mov eax, dword [edi]
cmp dword [eax + 0x3c0], 0
je 0x6149c2
mov eax, dword [edi]
mov eax, dword [eax + 0x28c]
mov eax, dword [eax + 0x228]
push eax
mov eax, dword [edi]
mov eax, dword [eax + 0x28c]
mov ecx, dword [eax + 0x22c]
mov eax, dword [edi]
mov edx, dword [eax + 0x3c8]
mov eax, dword [edi]
mov eax, dword [eax + 0x3b8]
call fcn.00614840
test al, al
je 0x6149c2
mov eax, dword [edi]
cmp dword [eax + 0x3bc], 0
je 0x614987
mov eax, dword [edi]
mov edx, dword [eax + 0x3c4]
mov eax, dword [edi]
mov eax, dword [eax + 0x290]
xor ecx, ecx
call fcn.005c40e4
mov eax, dword [edi]
xor edx, edx
mov dword [eax + 0x3bc], edx
mov bl, 1
mov eax, dword [edi]
mov eax, dword [eax + 0x290]
call fcn.005c1728
mov eax, dword [edi]
cmp dword [eax + 0x3c0], 0
je 0x6149c2
mov eax, dword [edi]
mov edx, dword [eax + 0x3c8]
mov eax, dword [edi]
mov eax, dword [eax + 0x28c]
xor ecx, ecx
call fcn.005c40e4
mov eax, dword [edi]
xor edx, edx
mov dword [eax + 0x3c0], edx
mov bl, 1
mov eax, dword [edi]
mov eax, dword [eax + 0x28c]
call fcn.005c1728
mov eax, dword [edi]
cmp dword [eax + 0x3bc], 0
je 0x614a85
mov eax, dword [edi]
mov edx, dword [eax + 0x290]
mov eax, dword [edx + 0x22c]
mov ecx, dword [edi]
cmp eax, dword [ecx + 0x3c4]
je 0x614a85
mov ebx, eax
mov ecx, dword [edi]
add eax, dword [ecx + 0x3bc]
xor ecx, ecx
xchg edx, eax
call fcn.005c40e4
mov eax, dword [edi]
cmp dword [eax + 0x3bc], 0
jle 0x614a22
mov eax, dword [edi]
mov eax, dword [eax + 0x290]
mov eax, dword [eax + 0x22c]
mov edx, dword [edi]
cmp eax, dword [edx + 0x3c4]
jge 0x614a55
mov eax, dword [edi]
cmp dword [eax + 0x3bc], 0
jge 0x614a45
mov eax, dword [edi]
mov eax, dword [eax + 0x290]
mov eax, dword [eax + 0x22c]
mov edx, dword [edi]
cmp eax, dword [edx + 0x3c4]
jle 0x614a55
mov eax, dword [edi]
mov eax, dword [eax + 0x290]
cmp ebx, dword [eax + 0x22c]
jne 0x614a76
mov eax, dword [edi]
mov edx, dword [eax + 0x3c4]
mov eax, dword [edi]
mov eax, dword [eax + 0x290]
xor ecx, ecx
call fcn.005c40e4
mov eax, dword [edi]
xor edx, edx
mov dword [eax + 0x3bc], edx
mov bl, 1
mov eax, dword [edi]
mov eax, dword [eax + 0x290]
call fcn.005c1728
mov eax, dword [edi]
cmp dword [eax + 0x3c0], 0
je 0x614b48
mov eax, dword [edi]
mov edx, dword [eax + 0x28c]
mov eax, dword [edx + 0x22c]
mov ecx, dword [edi]
cmp eax, dword [ecx + 0x3c8]
je 0x614b48
mov ebx, eax
mov ecx, dword [edi]
add eax, dword [ecx + 0x3c0]
xor ecx, ecx
xchg edx, eax
call fcn.005c40e4
mov eax, dword [edi]
cmp dword [eax + 0x3c0], 0
jle 0x614ae5
mov eax, dword [edi]
mov eax, dword [eax + 0x28c]
mov eax, dword [eax + 0x22c]
mov edx, dword [edi]
cmp eax, dword [edx + 0x3c8]
jge 0x614b18
mov eax, dword [edi]
cmp dword [eax + 0x3c0], 0
jge 0x614b08
mov eax, dword [edi]
mov eax, dword [eax + 0x28c]
mov eax, dword [eax + 0x22c]
mov edx, dword [edi]
cmp eax, dword [edx + 0x3c8]
jle 0x614b18
mov eax, dword [edi]
mov eax, dword [eax + 0x28c]
cmp ebx, dword [eax + 0x22c]
jne 0x614b39
mov eax, dword [edi]
mov edx, dword [eax + 0x3c8]
mov eax, dword [edi]
mov eax, dword [eax + 0x28c]
xor ecx, ecx
call fcn.005c40e4
mov eax, dword [edi]
xor edx, edx
mov dword [eax + 0x3c0], edx
mov bl, 1
mov eax, dword [edi]
mov eax, dword [eax + 0x28c]
call fcn.005c1728
test bl, bl
je 0x614b56
mov eax, dword [edi]
mov edx, dword [eax]
call dword [edx + 0x80]
mov eax, dword [edi]
cmp dword [eax + 0x3b0], 0
jne 0x614b6f
call sub.kernel32.dll_GetTickCount_1
inc eax
mov edx, dword [edi]
mov dword [edx + 0x3b0], eax
mov eax, dword [edi]
cmp dword [eax + 0x3bc], 0
jne 0x614c2a
mov eax, dword [edi]
cmp dword [eax + 0x3c0], 0
jne 0x614c2a
push 1
mov eax, dword [edi]
mov eax, dword [eax + 0x24c]
push eax
call sub.user32.dll_KillTimer
mov eax, dword [edi]
xor edx, edx
mov dword [eax + 0x3b0], edx
lea edx, [ebp - 8]
mov eax, dword [0x733f24]
mov eax, dword [eax]
call fcn.0051f574
lea ecx, [ebp - 0x10]
lea edx, [ebp - 8]
mov eax, dword [edi]
call fcn.00511220
mov eax, dword [ebp - 0x10]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
push eax
mov eax, dword [edi]
mov ecx, dword [ebp - 8]
movzx edx, byte [0x614c34]
mov si, 0xffd4
call fcn.00404948
mov eax, dword [edi]
mov ebx, dword [eax + 0x3f0]
test ebx, ebx
je 0x614c09
push 0xffffffffffffffff
mov eax, ebx
call fcn.0060970c
mov edx, eax
mov eax, dword [edi]
or ecx, 0xffffffff
call fcn.00612e48
mov eax, dword [edi]
mov ebx, dword [eax + 0x3f4]
test ebx, ebx
je 0x614c2a
push 0xffffffffffffffff
mov eax, ebx
call fcn.0060970c
mov edx, eax
mov eax, dword [edi]
or ecx, 0xffffffff
call fcn.00612e48
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret