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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x50
mov eax, dword [0x4a02f0]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
xor ebx, ebx
mov esi, ecx
mov eax, dword [esi]
push ebx
push 1
call dword [eax + 4]
test eax, eax
je 0x465994
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edx, dword [esi + 0x2468]
mov dword [esi + 0x26ac], eax
cmp edx, 0xa
jl 0x4655e4
push 0xa
pop edx
mov dword [esi + 0x26d0], eax
mov dword [ebp - 8], eax
lea eax, [esi + 0x62cc0]
push edi
push eax
mov dword [esi + 0x2468], edx
call fcn.0046ecbc
pop ecx
xor edi, edi
lea eax, [esi + 0x270c]
mov ecx, 0x90e0
cmp dword [eax], ebx
je 0x46561f
inc edi
add eax, ecx
cmp edi, 0xa
jl 0x46560e
jmp 0x465993
imul edi, edi, 0x90e0
lea edi, [edi + esi + 0x2700]
mov dword [ebp - 0xc], edi
cmp edi, ebx
je 0x465993
push ecx
push ebx
push edi
call fcn.0046e0e0
or dword [edi + 0x38], 0xffffffff
or dword [edi + 0x3c], 0xffffffff
add esp, 0xc
push ebx
push 1
push 1
push ebx
call dword [sym.imp.KERNEL32.dll_CreateEventW]
mov dword [edi + 0xc], eax
cmp eax, ebx
je 0x465993
push edi
mov ecx, esi
call fcn.00462724
test eax, eax
je 0x465993
mov dword [edi + 0x28], ebx
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [edi + 8], eax
mov eax, dword [edi + 0x20]
cmp dword [eax + 4], 1
je 0x465696
push edi
mov ecx, esi
call fcn.00461eff
test eax, eax
je 0x465993
lea eax, [ebp - 0xc]
lea ecx, [esi + 0x26dc]
push eax
call fcn.00435887
cmp dword [esi + 0x5d100], 7
je 0x4656ce
cmp dword [esi + 0x26a8], ebx
je 0x4656ce
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esi + 0x26ac]
cmp eax, dword [esi + 0x26a8]
ja 0x4659ab
push 0xa
pop ecx
xor eax, eax
mov dword [ebp - 0x50], ebx
lea edi, [ebp - 0x4c]
rep stosd dword es:[edi], eax
push 0xb
lea eax, [ebp - 0x50]
push eax
mov ecx, esi
call fcn.00461e9b
cmp eax, 1
jbe 0x465963
mov edi, 0x1f4
push edi
push ebx
lea ecx, [ebp - 0x50]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
mov dword [ebp - 0x10], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, eax
mov dword [ebp - 0xc], ecx
sub ecx, dword [ebp - 8]
cmp ecx, edi
jb 0x4657d1
xor eax, eax
lea edi, [ebp - 0x14]
stosd dword es:[edi], eax
mov eax, dword [esi + 0x26c4]
mov dword [ebp - 0x18], eax
lea eax, [ebp - 0x18]
mov dword [ebp - 0x14], ecx
push eax
lea ecx, [esi + 0x26b4]
call fcn.0046514e
mov eax, dword [esi + 0x26b8]
sub eax, dword [esi + 0x26b4]
sar eax, 3
cmp eax, 6
jbe 0x465766
push dword [esi + 0x26b4]
lea eax, [ebp - 0x24]
push eax
lea ecx, [esi + 0x26b4]
call fcn.00463642
mov eax, dword [esi + 0x26b8]
sub eax, dword [esi + 0x26b4]
and eax, 0xfffffff8
cmp eax, 0x30
jne 0x4657c5
mov edi, dword [esi + 0x26b4]
push 6
xor eax, eax
xor ecx, ecx
pop edx
add eax, dword [edi + 4]
add ecx, dword [edi]
add edi, 8
dec edx
jne 0x465787
mov dword [ebp - 8], ecx
fild dword [ebp - 8]
test ecx, ecx
jns 0x4657a2
fadd qword [0x49c7b0]
mov dword [ebp - 8], eax
fild dword [ebp - 8]
test eax, eax
jns 0x4657b2
fadd qword [0x49c7b0]
fdivp st(1)
fmul qword [0x49c750]
call fcn.00471c26
mov dword [esi + 0x26b0], eax
mov eax, dword [ebp - 0xc]
mov dword [ebp - 8], eax
mov dword [esi + 0x26c4], ebx
lea eax, [ebp - 0x20]
push eax
call fcn.0046ecbc
mov edx, dword [ebp - 0x1c]
pop ecx
mov ecx, dword [ebp - 0x20]
sub ecx, dword [esi + 0x62cc0]
sbb edx, dword [esi + 0x62cc4]
mov dword [esi + 0x62cc8], ecx
mov dword [esi + 0x62ccc], edx
mov edx, dword [esi + 0x26b0]
cmp edx, ebx
je 0x46583b
mov eax, dword [esi + 0x5d108]
mov ecx, dword [esi + 0x5d10c]
mov edi, eax
and edi, ecx
cmp edi, 0xffffffff
je 0x46583b
sub eax, dword [esi + 0x5d118]
push ebx
sbb ecx, dword [esi + 0x5d11c]
push edx
push ecx
push eax
call fcn.00471b80
mov dword [esi + 0x62cd0], eax
mov dword [esi + 0x62cd4], edx
jmp 0x465847
mov dword [esi + 0x62cd0], ebx
mov dword [esi + 0x62cd4], ebx
mov eax, dword [ebp - 0x10]
cmp eax, 0xffffffff
je 0x465989
cmp eax, 0x102
jne 0x46589e
cmp dword [esi + 0x246c], 6
jne 0x4656a5
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edx, eax
sub edx, dword [esi + 0x26a4]
cmp edx, 0x3e8
jbe 0x4656a5
push ebx
mov dword [esi + 0x26a4], eax
mov eax, dword [esi]
push 6
mov ecx, esi
call dword [eax + 4]
test eax, eax
jne 0x4656a5
jmp 0x465993
cmp eax, ebx
je 0x4659a2
lea ebx, [eax - 1]
mov eax, dword [esi + 0x26dc]
mov edi, dword [eax + ebx*4]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [esi + 0x26c8], eax
mov eax, dword [edi + 0x10]
test eax, eax
je 0x4658d9
push eax
call dword [sym.imp.KERNEL32.dll_CancelWaitableTimer]
push dword [edi + 0x10]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
and dword [edi + 0x10], 0
mov edi, dword [edi + 0x28]
cmp edi, 0xa
ja case.default.0x4658e1
jmp dword [edi*4 + 0x4659b8]
push ebx
mov ecx, esi
call fcn.00462dec
jmp 0x465958
push ebx
mov ecx, esi
call fcn.00464560
jmp 0x465958
push ebx
mov ecx, esi
call fcn.00462e66
jmp 0x465958
push ebx
mov ecx, esi
call fcn.00464600
jmp 0x465958
push ebx
mov ecx, esi
call fcn.00462f6a
jmp 0x465958
push ebx
mov ecx, esi
call fcn.00464ec7
jmp 0x465958
push ebx
mov ecx, esi
call fcn.00462fea
jmp 0x465958
push ebx
mov ecx, esi
call fcn.00464f71
jmp 0x465958
push ebx
mov ecx, esi
call fcn.004630ee
jmp 0x465958
push ebx
mov ecx, esi
call fcn.00465436
jmp 0x465958
push ebx
mov ecx, esi
call fcn.00463a7f
jmp 0x465958
xor eax, eax
test eax, eax
je 0x465989
xor ebx, ebx
jmp 0x4656a5
cmp dword [esi + 0x26fc], ebx
je 0x465993
mov eax, dword [esi + 0x5d11c]
cmp eax, dword [esi + 0x5d10c]
ja 0x465993
jb 0x465989
mov eax, dword [esi + 0x5d118]
cmp eax, dword [esi + 0x5d108]
jae 0x465993
mov dword [esi + 0x5d100], 8
pop edi
mov ecx, dword [ebp - 4]
pop esi
xor ecx, ebp
pop ebx
call fcn.0046e0cd
leave
ret
cmp dword [esi + 0x5d100], 7
je 0x465993
mov dword [esi + 0x5d100], 9
jmp 0x465993