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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xc
push ebx
push esi
push edi
mov edi, dword [ebp + 0x1c]
test edi, edi
jne 0x40e480
push 0x4a3920
push 0x4a6c0c
mov ecx, 0x4cb508
call fcn.00430950
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
mov ebx, dword [ebp + 0x18]
mov eax, dword [ebx]
mov ecx, dword [eax + 8]
cmp ecx, 5
ja case.0x40e48d.1
jmp dword [ecx*4 + 0x40eca4]
mov eax, dword [eax]
cmp byte [eax + 0x17], 0
jne 0x40e4a1
mov esi, dword [eax + 0xc]
jmp 0x40e4a3
mov esi, eax
test byte [esi + 0x15], 8
je 0x40e4b0
mov eax, esi
call fcn.00401160
mov al, byte [esi + 0x17]
cmp al, 1
jne 0x40e4c9
test byte [esi + 0x15], 4
je 0x40e4c4
mov eax, esi
call fcn.00430ff0
mov esi, dword [esi + 8]
jmp 0x40e4e6
cmp al, 2
jne 0x40e4d6
call fcn.00401000
mov esi, eax
jmp 0x40e4e6
mov esi, 0x4cb4dc
jmp 0x40e4e6
mov esi, dword [eax]
jmp 0x40e4e6
mov esi, 0x4a3920
mov eax, dword [ebp + 0x14]
test al, 2
je 0x40e6e2
push 0x4a6c2c
push esi
call fcn.0048fff9
add esp, 8
test eax, eax
jne 0x40e532
mov eax, dword [ebp + 8]
cmp dword [eax + 8], 1
lea esi, [eax + 8]
je 0x40e658
mov dword [eax + 0x18], 0
mov eax, dword [eax + 0x14]
xor ecx, ecx
xor edi, edi
mov word [eax], cx
call fcn.004358f0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
push 0x4a6bf0
push esi
call fcn.0048fff9
add esp, 8
test eax, eax
jne 0x40e666
cmp edi, 1
jle 0x40e590
mov eax, dword [ebx + 4]
cmp dword [eax + 8], 3
je 0x40e590
push 0
push 1
call fcn.00451240
fmul qword [0x4c0e20]
fnstcw word [esp + 0x14]
add esp, 8
movzx eax, word [esp + 0xc]
or eax, 0xc00
mov dword [esp + 0x10], eax
fldcw word [esp + 0x10]
fistp qword [esp + 0x10]
mov edx, dword [esp + 0x10]
fldcw word [esp + 0xc]
mov dword [esp + 0xc], edx
jmp 0x40e598
mov dword [esp + 0xc], 0xffffffff
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call edi
mov esi, dword [ebp + 8]
cmp dword [esi + 8], 1
mov ebx, eax
jne 0x40e5cf
jmp 0x40e5b0
call edi
sub eax, ebx
cmp eax, dword [esp + 0xc]
jae 0x40e5cf
push 1
push 0x8000012f
call fcn.004013d0
add esp, 8
cmp dword [esi + 8], 1
je 0x40e5b0
mov ecx, dword [ebp + 0xc]
mov dword [ecx + 8], 0
mov esi, dword [esi + 8]
cmp esi, 6
ja case.0x40e791.1
jmp dword [esi*4 + 0x40ecbc]
mov eax, 0x4a6bfc
mov dword [ecx], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
mov eax, 0x4a6c80
mov dword [ecx], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
mov eax, 0x4aa308
mov dword [ecx], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
mov eax, 0x4ad224
mov dword [ecx], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
mov eax, 0x4ad238
mov dword [ecx], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
mov eax, 0x4a3920
mov dword [ecx], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
push 0x4a6c38
push esi
call fcn.0048fff9
add esp, 8
test eax, eax
jne 0x40e6b5
mov eax, dword [ebp + 8]
add eax, 8
cmp dword [eax], 1
jne 0x40e6a7
mov edx, dword [0x4ca564]
mov cl, byte [0x4ca561]
push 0
push eax
push 0x41b
push edx
mov byte [eax + 0x4c], cl
mov dword [eax], 0
call dword [sym.imp.USER32.dll_PostMessageW]
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
push 0x4a6c44
push esi
call fcn.0048fff9
add esp, 8
test eax, eax
jne 0x40ec93
mov ecx, dword [ebp + 8]
dec edi
push edi
lea eax, [ebx + 4]
push ecx
call fcn.0040ed10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
mov edi, eax
and edi, 1
mov edx, 0
setne dl
inc edx
cmp dword [ebp + 0x1c], edx
jne 0x40e463
test al, 3
jne 0x40e945
push 0x4a5984
push esi
call fcn.0048fff9
add esp, 8
test eax, eax
jne 0x40e730
mov edi, dword [ebp + 0xc]
mov ecx, dword [ebp + 8]
mov dword [edi + 8], eax
mov eax, dword [ecx + 0x18]
mov ebx, dword [ecx + 0x14]
call fcn.00451530
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
push 0x4a6c54
push esi
call fcn.0048fff9
add esp, 8
test eax, eax
jne 0x40e76a
mov ecx, dword [ebp + 0xc]
mov eax, dword [ebp + 8]
mov esi, 1
mov dword [ecx + 8], esi
cmp dword [eax + 8], esi
sete dl
movzx eax, dl
cdq
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
push 0x4a6c6c
push esi
call fcn.0048fff9
add esp, 8
test eax, eax
jne 0x40e7ad
mov ecx, dword [ebp + 0xc]
mov dword [ecx + 8], eax
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
cmp eax, 6
ja case.0x40e791.1
jmp dword [eax*4 + 0x40ecd8]
mov eax, 0x4a6ca0
mov dword [ecx], eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
push 0x4a6c80
push esi
call fcn.0048fff9
add esp, 8
test eax, eax
jne 0x40e804
mov ecx, dword [ebp + 0xc]
mov dword [ecx + 8], eax
mov eax, dword [ebp + 8]
add eax, 8
cmp dword [eax], 4
jne 0x40e7f0
mov edx, dword [ecx + 4]
push 0
push 0x100
push edx
mov dword [ecx], edx
call fcn.00436110
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
mov dword [ecx], 0x4a3920
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
push 0x4a6c90
push esi
call fcn.0048fff9
add esp, 8
test eax, eax
jne 0x40e8fe
mov ecx, dword [ebp + 0xc]
mov dword [ecx + 8], eax
mov eax, dword [ecx + 4]
mov dword [ecx], eax
mov ecx, dword [ebp + 8]
test byte [ecx + 0x54], 1
je 0x40e842
mov edx, 0x3c
mov word [eax], dx
mov edx, 0x5e
mov word [eax + 2], dx
add eax, 4
test byte [ecx + 0x54], 2
je 0x40e85c
mov edx, 0x3e
mov word [eax], dx
mov edx, 0x5e
mov word [eax + 2], dx
add eax, 4
test byte [ecx + 0x54], 4
je 0x40e876
mov edx, 0x3c
mov word [eax], dx
mov edx, 0x21
mov word [eax + 2], dx
add eax, 4
test byte [ecx + 0x54], 8
je 0x40e890
mov edx, 0x3e
mov word [eax], dx
mov edx, 0x21
mov word [eax + 2], dx
add eax, 4
test byte [ecx + 0x54], 0x10
je 0x40e8aa
mov edx, 0x3c
mov word [eax], dx
mov edx, 0x2b
mov word [eax + 2], dx
add eax, 4
test byte [ecx + 0x54], 0x20
je 0x40e8c4
mov edx, 0x3e
mov word [eax], dx
mov edx, 0x2b
mov word [eax + 2], dx
add eax, 4
test byte [ecx + 0x54], 0x40
je 0x40e8de
mov edx, 0x3c
mov word [eax], dx
mov edx, 0x23
mov word [eax + 2], dx
add eax, 4
test byte [ecx + 0x54], 0x80
je 0x40e8ed
mov dword [eax], 0x23003e
add eax, 4
xor ecx, ecx
mov word [eax], cx
lea eax, [ecx + 1]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
push 0x4a6ca0
push esi
call fcn.0048fff9
add esp, 8
test eax, eax
jne 0x40e945
mov ecx, dword [ebp + 0xc]
mov dword [ecx + 8], eax
mov eax, dword [ebp + 8]
cmp dword [eax + 8], 3
jne 0x40e7f0
mov edx, dword [eax + 0x58]
cmp edx, dword [eax + 0x2c]
jae 0x40e7f0
mov eax, dword [eax + 0x28]
mov edx, dword [eax + edx*4]
mov dword [ecx], edx
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
push 2
push 0x4a632c
push esi
call fcn.004901fd
add esp, 0xc
test eax, eax
jne 0x40ea57
add esi, 4
push 0x4a3ea4
push esi
call fcn.0048fff9
add esp, 8
test eax, eax
jne 0x40e97d
mov esi, dword [ebp + 8]
add esi, 0x35c
jmp 0x40e9d6
push 0x4a6cac
push esi
call fcn.0048fff9
add esp, 8
test eax, eax
jne 0x40e99a
mov esi, dword [ebp + 8]
add esi, 0x360
jmp 0x40e9d6
push 0x4a6cbc
push esi
call fcn.0048fff9
add esp, 8
test eax, eax
jne 0x40e9b7
mov esi, dword [ebp + 8]
add esi, 0x368
jmp 0x40e9d6
push 0x4a6cc8
push esi
call fcn.0048fff9
add esp, 8
test eax, eax
jne 0x40ec93
mov esi, dword [ebp + 8]
add esi, 0x364
test edi, edi
je 0x40ea00
mov ecx, dword [ebx + 4]
call fcn.00451450
mov edi, eax
test edi, edi
je 0x40ea2e
mov eax, dword [edi]
mov ecx, dword [eax + 4]
push edi
call ecx
mov eax, dword [esi]
test eax, eax
je 0x40e9fe
mov edx, dword [eax]
push eax
mov eax, dword [edx + 8]
call eax
mov dword [esi], edi
mov eax, dword [esi]
test eax, eax
je 0x40ea93
mov ecx, dword [eax]
mov edx, dword [ecx + 4]
push eax
call edx
mov eax, dword [ebp + 0xc]
mov esi, dword [esi]
mov dword [eax + 8], 6
mov dword [eax], esi
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
mov ecx, dword [ebx + 4]
call fcn.004510d0
test eax, eax
jne 0x40e9f0
push 0x4a3920
push 0x4a6cd4
mov ecx, 0x4cb508
call fcn.00430950
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
push 0x4a6cf4
push esi
call fcn.0048fff9
add esp, 8
test eax, eax
jne 0x40eaa1
mov esi, dword [ebp + 8]
test edi, edi
je 0x40ea7f
mov ecx, dword [ebx + 4]
push eax
call fcn.004511b0
add esp, 4
mov byte [esi + 0x44], al
movzx eax, byte [esi + 0x44]
mov ecx, dword [ebp + 0xc]
cdq
mov dword [ecx + 8], 1
mov dword [ecx], eax
mov dword [ecx + 4], edx
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
push 0x4a6bfc
push esi
call fcn.0048fff9
add esp, 8
test eax, eax
jne 0x40eb0b
mov esi, dword [ebp + 8]
test edi, edi
je 0x40eae8
push eax
mov eax, dword [ebx + 4]
push 1
call fcn.00451240
fmul qword [0x4c0e20]
add esp, 8
call fcn.0049e710
cmp dword [esi + 8], 1
mov dword [esi + 0x3c], eax
jne 0x40eae8
test eax, eax
jle 0x40eae8
lea eax, [esi + 8]
call fcn.00435b30
fild dword [esi + 0x3c]
mov eax, dword [ebp + 0xc]
mov dword [eax + 8], 2
fdiv qword [0x4c0e20]
fstp qword [eax]
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x18
push 0x4a6d10
push esi
call fcn.0048fff9
add esp, 8
test eax, eax
jne 0x40eb28
mov ebx, dword [ebp + 8]
add ebx, 0x45
jmp 0x40ebac
push 0x4a6d30
push esi
call fcn.0048fff9
add esp, 8
test eax, eax
jne 0x40eb42
mov ebx, dword [ebp + 8]
add ebx, 0x46
jmp 0x40ebac
push 0x4a6d4c
push esi
call fcn.0048fff9
add esp, 8
test eax, eax
jne 0x40eb5c
mov ebx, dword [ebp + 8]
add ebx, 0x4b
jmp 0x40ebac
push 0x4a6d68
push esi
call fcn.0048fff9
add esp, 8
test eax, eax
jne 0x40eb76
mov ebx, dword [ebp + 8]
add ebx, 0x48
jmp 0x40ebac
push 0x4a6d80
push esi
call fcn.0048fff9
add esp, 8
test eax, eax
jne 0x40eb90
mov ebx, dword [ebp + 8]
add ebx, 0x49
jmp 0x40ebac
push 0x4a6da0
push esi
call fcn.0048fff9
add esp, 8
test eax, eax
jne 0x40ec93
mov ebx, dword [ebp + 8]
add ebx, 0x4a
test ebx, ebx
je 0x40ec93
test edi, edi
je 0x40ec67
mov eax, dword [ebp + 0x18]
mov esi, dword [eax + 4]
push esi
call fcn.00451060
add esp, 4
dec eax
je 0x40ec6f
dec eax
mov eax, dword [esi + 8]
je 0x40ec1d
cmp eax, 6
je 0x40ec7f
cmp eax, 4
jne 0x40ebfb
mov eax, dword [esi]
cmp byte [eax + 0x17], 0
jne 0x40ebf1
mov eax, dword [eax + 0xc]
test byte [eax + 0x15], 2
jne 0x40ec7f
xor ecx, ecx
mov eax, esi
call fcn.004512f0
xor ecx, ecx
cmp word [eax], cx
setne cl
mov eax, ecx
test eax, eax
setne al
mov byte [ebx], al
movzx eax, al
jmp 0x40ea83
dec eax
cmp eax, 5
ja case.0x40ec23.3
jmp dword [eax*4 + 0x40ecf4]
fild qword [esi]
jmp 0x40ec53
fld qword [esi]
jmp 0x40ec53
mov eax, dword [esi]
push 1
call fcn.004152a0
jmp 0x40ec53
mov eax, dword [esi + 4]
test eax, eax
je case.0x40ec23.3
fild qword [eax]
jmp 0x40ec53
mov edx, dword [esi]
push edx
call fcn.00491df2
add esp, 4
fldz
fucompp
fnstsw ax
test ah, 0x44
jp 0x40ec7f
xor eax, eax
test eax, eax
setne al
mov byte [ebx], al
movzx eax, byte [ebx]
jmp 0x40ea83
push 1
mov ecx, esi
call fcn.004511b0
add esp, 4
or eax, edx
je case.0x40ec23.6
mov eax, 1
test eax, eax
setne al
mov byte [ebx], al
movzx eax, al
jmp 0x40ea83
pop edi
pop esi
mov eax, 4
pop ebx
mov esp, ebp
pop ebp
ret 0x18