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

Disassembly:
push ebp
mov ebp, esp
xor ecx, ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ecx
push ebx
push esi
push edi
mov dword [ebp - 4], edx
mov esi, eax
xor eax, eax
push ebp
push 0x459ec7
push dword fs:[eax]
mov dword fs:[eax], esp
xor edi, edi
mov ebx, dword [ebp - 4]
test ebx, ebx
jle 0x459eac
mov eax, dword [esi + 0x340]
call fcn.00404c90
cmp ebx, eax
jge 0x459eac
mov edi, 1
xor ecx, ecx
mov edx, ebx
mov eax, esi
call fcn.00459ee4
test eax, eax
jle 0x459cc8
call sub.kernel32.dll_GetTickCount
imul edx, ebx, 0xb
mov ecx, dword [esi + 0x340]
mov dword [ecx + edx*4], eax
xor ecx, ecx
mov edx, ebx
mov eax, esi
call fcn.0045a000
test eax, eax
jle 0x459ce8
call sub.kernel32.dll_GetTickCount
imul edx, ebx, 0xb
mov ecx, dword [esi + 0x340]
mov dword [ecx + edx*4], eax
call sub.kernel32.dll_GetTickCount
mov dword [ebp - 8], eax
imul eax, ebx, 0xb
mov edx, dword [esi + 0x340]
cmp byte [edx + eax*4 + 4], 2
jne 0x459e7a
mov edx, dword [esi + 0x340]
cmp dword [edx + eax*4 + 0x24], 0
setne byte [ebp - 0xb]
mov edx, dword [esi + 0x340]
cmp dword [edx + eax*4 + 0x28], 0
setne byte [ebp - 0xc]
mov byte [ebp - 9], 0
mov byte [ebp - 0xa], 0
cmp byte [ebp - 0xb], 0
je 0x459d76
imul eax, ebx, 0xb
mov edx, dword [esi + 0x340]
mov eax, dword [edx + eax*4 + 0x24]
cmp byte [eax + 8], 0
je 0x459d76
imul eax, ebx, 0xb
mov edx, dword [esi + 0x340]
mov eax, dword [edx + eax*4 + 0xc]
call fcn.00404188
test eax, eax
jg 0x459d6d
imul eax, ebx, 0xb
mov edx, dword [esi + 0x340]
mov ecx, dword [ebp - 8]
sub ecx, dword [edx + eax*4]
cmp ecx, 0x64
jge 0x459d71
xor eax, eax
jmp 0x459d73
mov al, 1
mov byte [ebp - 9], al
cmp byte [ebp - 0xc], 0
je 0x459dc2
imul eax, ebx, 0xb
mov edx, dword [esi + 0x340]
mov eax, dword [edx + eax*4 + 0x28]
cmp byte [eax + 8], 0
je 0x459dc2
imul eax, ebx, 0xb
mov edx, dword [esi + 0x340]
mov eax, dword [edx + eax*4 + 0x10]
call fcn.00404188
test eax, eax
jg 0x459db9
imul eax, ebx, 0xb
mov edx, dword [esi + 0x340]
mov ecx, dword [ebp - 8]
sub ecx, dword [edx + eax*4]
cmp ecx, 0x64
jge 0x459dbd
xor eax, eax
jmp 0x459dbf
mov al, 1
mov byte [ebp - 0xa], al
mov al, byte [ebp - 0xb]
xor al, 1
and al, byte [ebp - 0xa]
jne 0x459df6
mov al, byte [ebp - 0xc]
xor al, 1
and al, byte [ebp - 9]
jne 0x459df6
cmp byte [ebp - 0xb], 0
jne 0x459de2
cmp byte [ebp - 0xc], 0
je 0x459df6
mov al, byte [ebp - 0xb]
and al, byte [ebp - 0xc]
je 0x459e02
cmp byte [ebp - 9], 0
je 0x459e02
cmp byte [ebp - 0xa], 0
je 0x459e02
mov edx, ebx
mov eax, esi
call fcn.00459b54
or edi, 0xffffffff
mov eax, dword [esi + 0x308]
mov edx, dword [eax]
call dword [edx + 0xc8]
test al, al
je 0x459e7a
lea ecx, [ebp - 0x14]
mov dl, 1
mov al, byte [ebp - 0xb]
call fcn.00407fe4
push dword [ebp - 0x14]
push 0x459ee0
lea ecx, [ebp - 0x18]
mov dl, 1
mov al, byte [ebp - 0xc]
call fcn.00407fe4
push dword [ebp - 0x18]
push 0x459ee0
lea ecx, [ebp - 0x1c]
mov dl, 1
mov al, byte [ebp - 9]
call fcn.00407fe4
push dword [ebp - 0x1c]
push 0x459ee0
lea ecx, [ebp - 0x20]
mov dl, 1
mov al, byte [ebp - 0xa]
call fcn.00407fe4
push dword [ebp - 0x20]
lea eax, [ebp - 0x10]
mov edx, 7
call fcn.00404248
mov edx, dword [ebp - 0x10]
mov eax, esi
call fcn.0045a124
imul eax, ebx, 0xb
mov edx, dword [esi + 0x340]
cmp byte [edx + eax*4 + 4], 3
jne 0x459eac
mov edx, dword [esi + 0x340]
mov ecx, dword [ebp - 8]
sub ecx, dword [edx + eax*4]
cmp ecx, 0xbb8
jl 0x459eac
mov edx, ebx
mov eax, esi
call fcn.00459b54
mov edi, 0xfffffffe
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x459ece
lea eax, [ebp - 0x20]
mov edx, 5
call fcn.00403eec
ret