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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x1c
mov eax, dword [0x57a040]
xor eax, esp
mov dword [esp + 0x18], eax
push ebx
push esi
mov esi, dword [ebp + 8]
push edi
push esi
call fcn.0040f4e0
xor edx, edx
lea ebx, [esi + 0x48]
mov eax, ebx
lea edi, [edx + 0x32]
nop word [eax + eax]
mov ecx, dword [eax]
test ecx, ecx
js 0x40e20f
cmp ecx, 0x1194
jge 0x40e20f
inc edx
add eax, 0x10
sub edi, 1
jne 0x40e200
test edx, edx
jne 0x40e241
push esi
mov ecx, 0x57b090
mov dword [esi + 4], 1
call fcn.0040e570
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x18]
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret 4
mov eax, dword [esi + 0x24]
cmp eax, 4
ja case.0x40e24d.4
jmp dword [eax*4 + 0x40e4b0]
mov eax, dword [esi + 0x28]
cmp eax, dword [esi + 0x2c]
jl case.0x40e24d.4
mov dword [esi + 0x24], 1
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [esi + 0x30], eax
mov edi, ebx
xor eax, eax
mov word [esp + 0x14], 0xec1
mov dword [esp + 0x16], 0x39b
mov dword [esp + 0x1a], eax
mov word [esp + 0x1e], ax
mov byte [esp + 0x20], 0xff
lea ebx, [eax + 0x32]
mov eax, dword [edi]
test eax, eax
js 0x40e2ae
cmp eax, 0x1194
jge 0x40e2ae
push 0xe
lea ecx, [esp + 0x18]
push ecx
push eax
call fcn.005192f0
add edi, 0x10
sub ebx, 1
jne 0x40e294
push ebx
push esi
call fcn.00410160
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 4
push eax
lea eax, [esp + 0x18]
mov ecx, 0xa9b83c
push eax
call fcn.00405650
mov eax, dword [esp + 0x1c]
mov ecx, dword [0xa9b83c]
cmp byte [eax + 0xd], bl
jne 0x40e2ee
cmp dword [eax + 0x10], 4
jle 0x40e2f0
mov eax, ecx
cmp eax, ecx
jne 0x40e310
push 4
push str.Could_not_find_message__d_
push 0xa9b7bc
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
mov eax, 0xa9b7bc
jmp 0x40e313
add eax, 0x18
push eax
push 0
push esi
push 0x57b090
call fcn.004106e0
add esp, 0x10
lea ebx, [esi + 0x48]
jmp case.0x40e24d.4
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esi + 0x30]
cmp eax, 0xbb8
jb case.0x40e24d.4
push 1
push esi
mov dword [esi + 0x24], 2
mov dword [esi + 0x30], 0
call fcn.00410160
mov eax, dword [esi + 0x368]
test eax, eax
js case.0x40e24d.4
cmp eax, 0x1194
jge case.0x40e24d.4
push 0x3f
push dword [eax*4 + 0x20a514c]
call fcn.004774b0
mov eax, dword [esi + 0x368]
push 0x40
push dword [eax*4 + 0x20a514c]
call fcn.004774b0
jmp case.0x40e24d.4
push esi
call fcn.0040ef90
jmp case.0x40e24d.4
push esi
call fcn.0040f130
mov eax, dword [esi + 0x24]
test eax, eax
je 0x40e3a7
cmp eax, 1
je 0x40e3a7
cmp eax, 2
je 0x40e3a7
push 4
jmp 0x40e3a9
push 1
push esi
call fcn.00410ca0
cmp dword [esi + 0x24], 4
jne 0x40e3c7
mov eax, dword [esi + 0x44]
test eax, eax
js 0x40e3c7
cmp eax, 0x1194
jl 0x40e488
mov eax, dword [esi + 0xc]
test eax, eax
jle 0x40e420
cmp eax, 0x1e
jg 0x40e49a
cmp dword [esi + 0x20], 0
jne 0x40e49a
mov dword [esp + 0x10], 0x59204c1
mov edi, 0x32
nop
mov eax, dword [ebx]
test eax, eax
js 0x40e40a
cmp eax, 0x1194
jge 0x40e40a
push 4
lea ecx, [esp + 0x14]
push ecx
push eax
call fcn.005192f0
add ebx, 0x10
sub edi, 1
jne 0x40e3f0
mov eax, dword [esi + 0xc]
mov dword [esi + 0x20], 1
test eax, eax
jg 0x40e49a
lea eax, [esp + 0x10]
mov dword [esp + 0x10], 6
push eax
lea eax, [esp + 0x18]
mov ecx, 0xa9b83c
push eax
call fcn.00405650
mov eax, dword [esp + 0x1c]
mov ecx, dword [0xa9b83c]
cmp byte [eax + 0xd], 0
jne 0x40e452
cmp dword [eax + 0x10], 6
jle 0x40e454
mov eax, ecx
cmp eax, ecx
jne 0x40e474
push 6
push str.Could_not_find_message__d_
push 0xa9b7bc
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
mov eax, 0xa9b7bc
jmp 0x40e477
add eax, 0x18
push eax
push 0
push esi
push 0x57b090
call fcn.004106e0
add esp, 0x10
push esi
mov ecx, 0x57b090
mov dword [esi + 4], 4
call fcn.0040ed60
mov ecx, dword [esp + 0x24]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00529f01
mov esp, ebp
pop ebp
ret 4