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

Disassembly:
push ebp
mov ebp, esp
mov ecx, 0x1a
push 0
push 0
dec ecx
jne 0x4651e4
push ecx
push esi
push edi
xor eax, eax
push ebp
push 0x46578d
push dword fs:[eax]
mov dword fs:[eax], esp
lea eax, [ebp - 0x24]
call fcn.00405f6c
push eax
lea eax, [ebp - 0x34]
xor edx, edx
mov cl, 1
call fcn.00413cb0
push dword [ebp - 0x28]
push dword [ebp - 0x2c]
push dword [ebp - 0x30]
push dword [ebp - 0x34]
lea eax, [ebp - 0x44]
mov edx, 0x4657a8
call fcn.00413fb4
push dword [ebp - 0x38]
push dword [ebp - 0x3c]
push dword [ebp - 0x40]
push dword [ebp - 0x44]
lea eax, [ebp - 0x48]
call fcn.00405f6c
push eax
mov eax, dword [0x469f8c]
push eax
mov eax, dword [eax]
call dword [eax + 0x20]
call fcn.0040607c
mov eax, dword [ebp - 0x48]
push eax
mov eax, dword [eax]
call dword [eax + 0x2c]
call fcn.0040607c
mov edx, dword [ebp - 0x24]
lea eax, [ebp - 4]
mov ecx, 0x4657b8
call fcn.00405fb0
cmp dword [ebp - 4], 0
je 0x4652e2
lea eax, [ebp - 0x4c]
call fcn.00404c0c
push eax
mov eax, dword [ebp - 4]
push eax
mov eax, dword [eax]
call dword [eax + 0xf0]
call fcn.0040607c
mov eax, dword [ebp - 0x4c]
xor edx, edx
call fcn.00404d90
je 0x4652e2
lea eax, [ebp - 0x50]
call fcn.00404c0c
push eax
mov eax, dword [ebp - 4]
push eax
mov eax, dword [eax]
call dword [eax + 0xf0]
call fcn.0040607c
mov eax, dword [ebp - 0x50]
push eax
lea eax, [ebp - 0x54]
mov edx, dword [0x469f80]
add edx, 9
call fcn.00404d58
mov edx, dword [ebp - 0x54]
pop eax
call fcn.00404d90
jne 0x4652e2
mov dword [0x469f88], 0x14
jmp 0x46569c
lea eax, [ebp - 0x58]
call fcn.00405f6c
push eax
lea eax, [ebp - 0x68]
xor edx, edx
mov cl, 1
call fcn.00413cb0
push dword [ebp - 0x5c]
push dword [ebp - 0x60]
push dword [ebp - 0x64]
push dword [ebp - 0x68]
lea eax, [ebp - 0x78]
mov edx, 0x4657d0
call fcn.00413fb4
push dword [ebp - 0x6c]
push dword [ebp - 0x70]
push dword [ebp - 0x74]
push dword [ebp - 0x78]
lea eax, [ebp - 0x7c]
call fcn.00405f6c
push eax
mov eax, dword [0x469f8c]
push eax
mov eax, dword [eax]
call dword [eax + 0x20]
call fcn.0040607c
mov eax, dword [ebp - 0x7c]
push eax
mov eax, dword [eax]
call dword [eax + 0x2c]
call fcn.0040607c
mov edx, dword [ebp - 0x58]
lea eax, [ebp - 8]
mov ecx, 0x4657d8
call fcn.00405fb0
cmp dword [ebp - 8], 0
je 0x46569c
push 0x4657e8
mov eax, dword [ebp - 8]
push eax
lea eax, [ebp - 0x84]
push eax
call fcn.0040535c
add esp, 0xc
mov edx, dword [ebp - 0x84]
lea eax, [ebp - 0x80]
call fcn.004047b4
mov eax, dword [ebp - 0x80]
lea ecx, [ebp - 0xc]
mov edx, dword [0x469f8c]
call fcn.004625d4
cmp dword [ebp - 0xc], 0
je 0x46569c
mov eax, dword [0x46bc3c]
mov edx, 0x4657f8
call fcn.00404938
jne 0x4653fd
or edx, 0xffffffff
mov eax, 0x465808
call fcn.00461f28
mov dword [0x469f88], 3
mov eax, dword [0x469f80]
lea edi, [eax + 0x399]
mov esi, 0x465818
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsb byte es:[edi], byte [esi]
mov eax, dword [0x469f80]
mov eax, dword [eax]
push eax
push 7
push 0x414
mov eax, dword [0x46a43c]
mov eax, dword [eax]
mov eax, dword [eax]
push eax
call sub.user32.dll_PostMessageA
jmp 0x46569c
cmp dword [0x46bc3c], 0
jne 0x46552c
call sub.kernel32.dll_GetTickCount
xor edx, edx
sub eax, dword [0x46bc44]
sbb edx, dword [0x46bc48]
cmp edx, 0
jne 0x46542b
cmp eax, 0xea60
jbe 0x46547e
jmp 0x46542d
jle 0x46547e
mov eax, dword [0x469f80]
lea edi, [eax + 0x399]
mov esi, 0x465828
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov dword [0x469f88], 2
push 0xffffffffffffffff
lea eax, [ebp - 0x88]
call fcn.00405f6c
push eax
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [eax]
call dword [eax + 0x94]
call fcn.0040607c
mov eax, dword [ebp - 0x88]
push eax
mov eax, dword [eax]
call dword [eax + 0x5c]
call fcn.0040607c
jmp 0x4654e4
push 0x465844
push 0
push 0x3e8
call sub.kernel32.dll_GetTickCount
xor edx, edx
sub eax, dword [0x46bc44]
sbb edx, dword [0x46bc48]
call fcn.00405390
push edx
push eax
lea eax, [ebp - 0x90]
call fcn.00408bf8
push dword [ebp - 0x90]
push 0x465860
lea eax, [ebp - 0x8c]
mov edx, 3
call fcn.004048ac
mov edx, dword [ebp - 0x8c]
mov eax, dword [0x469f80]
add eax, 0x399
mov ecx, 0xff
call fcn.004047c8
lea eax, [ebp - 0x94]
mov edx, dword [0x469f80]
add edx, 0x399
call fcn.00404790
mov eax, dword [ebp - 0x94]
or edx, 0xffffffff
call fcn.00461f28
mov eax, dword [0x469f80]
mov eax, dword [eax]
push eax
push 7
push 0x414
mov eax, dword [0x46a43c]
mov eax, dword [eax]
mov eax, dword [eax]
push eax
call sub.user32.dll_PostMessageA
jmp 0x46569c
lea eax, [ebp - 0x98]
mov ecx, dword [0x46bc3c]
mov edx, 0x46586c
call fcn.00404838
mov eax, dword [ebp - 0x98]
or edx, 0xffffffff
call fcn.00461f28
lea eax, [ebp - 0x9c]
call fcn.00405f6c
push eax
lea eax, [ebp - 0xac]
xor edx, edx
mov cl, 1
call fcn.00413cb0
push dword [ebp - 0xa0]
push dword [ebp - 0xa4]
push dword [ebp - 0xa8]
push dword [ebp - 0xac]
lea eax, [ebp - 0xbc]
mov edx, 0x465880
call fcn.00413fb4
push dword [ebp - 0xb0]
push dword [ebp - 0xb4]
push dword [ebp - 0xb8]
push dword [ebp - 0xbc]
lea eax, [ebp - 0xc0]
call fcn.00405f6c
push eax
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [eax]
call dword [eax + 0x20]
call fcn.0040607c
mov eax, dword [ebp - 0xc0]
push eax
mov eax, dword [eax]
call dword [eax + 0x2c]
call fcn.0040607c
mov edx, dword [ebp - 0x9c]
lea eax, [ebp - 0x20]
call fcn.00413f88
push 0x46588c
lea eax, [ebp - 0x20]
push eax
push 0
call fcn.0040fa04
add esp, 0xc
push 0
push 0x465898
lea eax, [ebp - 0x20]
push eax
push 0
call fcn.0040fa04
add esp, 0x10
push 0x46bc3c
push 0x4658a4
lea eax, [ebp - 0x20]
push eax
push 0
call fcn.0040fa04
add esp, 0x10
mov eax, 0x1f4
call fcn.00462370
lea eax, [ebp - 0xd0]
call fcn.0040f9fc
push eax
push 0x4658b4
push 0x4658d0
lea eax, [ebp - 0xd4]
call fcn.00405f6c
push eax
mov eax, dword [ebp - 0xc]
push eax
mov eax, dword [eax]
call dword [eax + 0x1b0]
call fcn.0040607c
mov eax, dword [ebp - 0xd4]
push eax
mov eax, dword [eax]
call dword [eax + 0x110]
call fcn.0040607c
mov eax, 0x2710
call fcn.00462370
call sub.kernel32.dll_GetTickCount
xor edx, edx
mov dword [0x46bc44], eax
mov dword [0x46bc48], edx
mov dword [0x469f88], 5
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x465797
lea eax, [ebp - 0xd4]
call fcn.00405f6c
lea eax, [ebp - 0xd0]
call fcn.0040f9fc
lea eax, [ebp - 0xc0]
call fcn.00405f6c
lea eax, [ebp - 0xbc]
mov edx, dword [0x4010e8]
mov ecx, 2
call fcn.00404fc4
lea eax, [ebp - 0x9c]
call fcn.00405f6c
lea eax, [ebp - 0x98]
mov edx, 4
call fcn.00404540
lea eax, [ebp - 0x88]
call fcn.00405f6c
lea eax, [ebp - 0x84]
call fcn.00404c0c
lea eax, [ebp - 0x80]
call fcn.0040451c
lea eax, [ebp - 0x7c]
call fcn.00405f6c
lea eax, [ebp - 0x78]
mov edx, dword [0x4010e8]
mov ecx, 2
call fcn.00404fc4
lea eax, [ebp - 0x58]
call fcn.00405f6c
lea eax, [ebp - 0x54]
mov edx, 3
call fcn.00404c24
lea eax, [ebp - 0x48]
call fcn.00405f6c
lea eax, [ebp - 0x44]
mov edx, dword [0x4010e8]
mov ecx, 2
call fcn.00404fc4
lea eax, [ebp - 0x24]
call fcn.00405f6c
lea eax, [ebp - 0x20]
call fcn.0040f9fc
lea eax, [ebp - 0xc]
call fcn.00405f6c
lea eax, [ebp - 8]
call fcn.00405f6c
lea eax, [ebp - 4]
call fcn.00405f6c
ret