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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x5c
mov eax, dword [0x44465c]
xor eax, esp
mov dword [esp + 0x58], eax
push ebx
push esi
push edi
mov ebx, ecx
mov eax, dword [ebx]
xor esi, esi
push esi
push 1
mov dword [esp + 0x18], ebx
call dword [eax + 4]
test eax, eax
je 0x403ef7
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edx, dword [ebx + 0x2468]
mov dword [ebx + 0x26ac], eax
cmp edx, 0xa
jl 0x403b0d
push 0xa
pop edx
mov dword [ebx + 0x26d0], eax
mov dword [esp + 0x14], eax
lea eax, [ebx + 0x62cc0]
push eax
mov dword [ebx + 0x2468], edx
mov dword [esp + 0x24], eax
call fcn.00424ab3
pop ecx
xor eax, eax
lea ecx, [ebx + 0x270c]
mov edx, 0x90e0
cmp dword [ecx], esi
je 0x403b4c
inc eax
add ecx, edx
cmp eax, 0xa
jl 0x403b3b
jmp 0x403ef7
imul eax, eax, 0x90e0
lea edi, [eax + ebx + 0x2700]
mov dword [esp + 0x1c], edi
cmp edi, esi
je 0x403ef7
push edx
push esi
push edi
call fcn.00427d80
or dword [edi + 0x38], 0xffffffff
or dword [edi + 0x3c], 0xffffffff
add esp, 0xc
push esi
push 1
push 1
push esi
call dword [sym.imp.KERNEL32.dll_CreateEventW]
mov dword [edi + 0xc], eax
cmp eax, esi
je 0x403ef7
push edi
mov ecx, ebx
call fcn.00406d0e
test eax, eax
je 0x403ef7
mov dword [edi + 0x28], esi
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [edi + 8], eax
mov eax, dword [edi + 0x20]
cmp dword [eax + 4], 1
je 0x403bc2
push ebx
call fcn.0040534c
test eax, eax
je 0x403ef7
lea esi, [ebx + 0x26dc]
lea eax, [esp + 0x1c]
mov dword [esp + 0x18], esi
call fcn.00406e70
cmp dword [ebx + 0x5d100], 7
je 0x403bff
cmp dword [ebx + 0x26a8], 0
je 0x403bff
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [ebx + 0x26ac]
cmp eax, dword [ebx + 0x26a8]
ja 0x403f09
and dword [esp + 0x38], 0
mov esi, dword [esp + 0x18]
push 0xa
xor eax, eax
pop ecx
lea edi, [esp + 0x3c]
rep stosd dword es:[edi], eax
lea eax, [esp + 0x38]
test eax, eax
je 0x403c5d
mov eax, dword [ebx + 0x2464]
mov dword [esp + 0x38], eax
mov eax, dword [esi + 4]
sub eax, dword [esi]
xor edi, edi
sar eax, 2
push 0xb
pop ecx
cmp eax, ecx
jge 0x403c38
mov ecx, eax
cmp edi, ecx
jge 0x403c58
mov ecx, dword [esi]
mov ecx, dword [ecx + edi*4]
mov edx, dword [ecx + 0x10]
test edx, edx
je 0x403c4e
mov dword [esp + edi*4 + 0x3c], edx
jmp 0x403c55
mov ecx, dword [ecx + 0xc]
mov dword [esp + edi*4 + 0x3c], ecx
inc edi
jmp 0x403c2f
lea eax, [edi + 1]
jmp 0x403c5f
xor eax, eax
cmp eax, 1
jbe 0x403f15
mov edi, 0x1f4
push edi
push 0
lea ecx, [esp + 0x40]
push ecx
push eax
call dword [sym.imp.KERNEL32.dll_WaitForMultipleObjects]
mov dword [esp + 0x2c], eax
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov ecx, eax
sub ecx, dword [esp + 0x14]
mov dword [esp + 0x1c], eax
cmp ecx, edi
jb 0x403d5b
xor eax, eax
lea edi, [esp + 0x28]
stosd dword es:[edi], eax
mov eax, dword [ebx + 0x26c4]
mov dword [esp + 0x24], eax
lea esi, [ebx + 0x26b4]
lea eax, [esp + 0x24]
mov dword [esp + 0x28], ecx
call fcn.00406dec
mov eax, dword [esi + 4]
sub eax, dword [esi]
sar eax, 3
cmp eax, 6
jbe 0x403cf0
mov eax, dword [esi]
mov edx, dword [esi + 4]
add eax, 8
cmp eax, edx
je 0x403cec
lea ecx, [eax - 8]
mov edi, dword [eax]
mov dword [ecx], edi
mov edi, dword [eax + 4]
mov dword [ecx + 4], edi
add eax, 8
add ecx, 8
cmp eax, edx
jne 0x403cd8
add dword [esi + 4], 0xfffffff8
mov eax, dword [esi + 4]
sub eax, dword [esi]
and eax, 0xfffffff8
cmp eax, 0x30
jne 0x403d48
mov esi, dword [esi]
push 6
xor eax, eax
xor ecx, ecx
pop edx
add eax, dword [esi + 4]
add ecx, dword [esi]
add esi, 8
dec edx
jne 0x403d06
mov dword [esp + 0x14], ecx
fild dword [esp + 0x14]
test ecx, ecx
jns 0x403d23
fadd qword [0x440df8]
mov dword [esp + 0x14], eax
fild dword [esp + 0x14]
test eax, eax
jns 0x403d35
fadd qword [0x440df8]
fdivp st(1)
fmul qword [0x440dd8]
call fcn.00439586
mov dword [ebx + 0x26b0], eax
mov eax, dword [esp + 0x1c]
and dword [ebx + 0x26c4], 0
mov esi, dword [esp + 0x18]
mov dword [esp + 0x14], eax
lea eax, [esp + 0x30]
push eax
call fcn.00424ab3
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x38]
pop ecx
mov ecx, dword [esp + 0x30]
sub ecx, dword [eax]
sbb edx, dword [eax + 4]
mov dword [ebx + 0x62cc8], ecx
mov dword [ebx + 0x62ccc], edx
mov edx, dword [ebx + 0x26b0]
test edx, edx
je 0x403dc6
mov eax, dword [ebx + 0x5d108]
mov ecx, dword [ebx + 0x5d10c]
mov edi, eax
and edi, ecx
cmp edi, 0xffffffff
je 0x403dc6
sub eax, dword [ebx + 0x5d118]
push 0
sbb ecx, dword [ebx + 0x5d11c]
push edx
push ecx
push eax
call fcn.0042dcf0
mov dword [ebx + 0x62cd0], eax
mov dword [ebx + 0x62cd4], edx
jmp 0x403dd4
and dword [ebx + 0x62cd0], 0
and dword [ebx + 0x62cd4], 0
mov eax, dword [esp + 0x2c]
cmp eax, 0xffffffff
je 0x403eed
cmp eax, 0x102
jne 0x403e2d
cmp dword [ebx + 0x246c], 6
jne 0x403bd5
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edx, eax
sub edx, dword [ebx + 0x26a4]
cmp edx, 0x3e8
jbe 0x403bd5
push 0
mov dword [ebx + 0x26a4], eax
mov eax, dword [ebx]
push 6
mov ecx, ebx
call dword [eax + 4]
test eax, eax
jne 0x403bd5
jmp 0x403ef7
test eax, eax
je 0x403f3e
lea edi, [eax - 1]
mov eax, dword [esi]
mov esi, dword [eax + edi*4]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [ebx + 0x26c8], eax
mov eax, dword [esi + 0x10]
test eax, eax
je 0x403e64
push eax
call dword [sym.imp.KERNEL32.dll_CancelWaitableTimer]
push dword [esi + 0x10]
call dword [sym.imp.KERNEL32.dll_CloseHandle]
and dword [esi + 0x10], 0
mov esi, dword [esi + 0x28]
cmp esi, 0xa
ja case.default.0x403e6c
jmp dword [esi*4 + 0x403f4c]
push edi
call fcn.00403f78
mov ebx, dword [esp + 0x10]
jmp 0x403ee5
mov ecx, edi
mov edi, ebx
call fcn.00403fef
jmp 0x403ee5
push edi
mov ecx, ebx
call fcn.00404088
jmp 0x403ee5
mov ecx, edi
call fcn.00404189
jmp 0x403e79
push edi
call fcn.00404a7f
jmp 0x403e79
mov eax, dword [esp + 0x10]
mov ebx, edi
call fcn.00404b00
jmp 0x403e79
push edi
mov ecx, ebx
call fcn.00404ba6
jmp 0x403ee5
push edi
mov eax, ebx
call fcn.00404ca7
jmp 0x403ee5
push edi
push ebx
call fcn.00404e7e
jmp 0x403ee5
push edi
mov eax, ebx
call fcn.00404f85
jmp 0x403ee5
push edi
mov eax, ebx
call fcn.004050f1
jmp 0x403ee5
xor eax, eax
test eax, eax
jne 0x403bd5
mov dword [ebx + 0x5d100], 8
mov ecx, dword [esp + 0x64]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0042396b
mov esp, ebp
pop ebp
ret
mov dword [ebx + 0x5d100], 9
jmp 0x403ef7
cmp dword [ebx + 0x26fc], 0
je 0x403ef7
mov eax, dword [ebx + 0x5d11c]
cmp eax, dword [ebx + 0x5d10c]
ja 0x403ef7
jb 0x403eed
mov eax, dword [ebx + 0x5d118]
cmp eax, dword [ebx + 0x5d108]
jae 0x403ef7
jmp 0x403eed
cmp dword [ebx + 0x5d100], 7
je 0x403ef7
jmp 0x403f09