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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push ecx
push ebx
mov ebx, dword [ebp + 8]
push esi
push edi
mov edi, ecx
mov edx, dword [edi + 0xd0]
cmp edx, ebx
jne 0x40d66a
mov eax, dword [edi + 0xd4]
cmp eax, 0x46
jge 0x40d483
inc eax
mov dword [edi + 0xd4], eax
cmp byte [0x5c7840], 1
jne 0x40d464
cmp eax, 0x28
jg 0x40d3d3
push 0x7e2
lea ecx, [edi - 0xa8]
call fcn.00402cc0
mov esi, eax
push 1
mov ecx, esi
mov edx, dword [esi]
call dword [edx + 0x20]
movd xmm0, dword [edi + 0xd4]
cvtdq2ps xmm0, xmm0
cvtps2pd xmm0, xmm0
divsd xmm0, qword [0x5a8c80]
mulsd xmm0, qword [0x5a8c88]
cvttsd2si eax, xmm0
cmp eax, 0x64
ja 0x40d66a
cmp dword [esi + 0x9c], eax
je 0x40d66a
cmp dword [esi + 0x20], 0
mov dword [esi + 0x9c], eax
je 0x40d66a
mov ecx, dword [esi + 4]
movups xmm0, xmmword [esi + 0x10]
push esi
push 1
mov edx, dword [ecx]
sub esp, 0x10
mov eax, esp
movups xmmword [eax], xmm0
call dword [edx + 4]
jmp 0x40d66a
cmp eax, 0x2d
jl 0x40d41b
add eax, 0xffffffd3
movsd xmm1, qword [0x5a8c68]
push 2
movd xmm0, eax
cvtdq2ps xmm0, xmm0
cvtps2pd xmm0, xmm0
divsd xmm0, qword [0x5a8c78]
subsd xmm1, xmm0
mulsd xmm1, qword [0x5a8c90]
cvttsd2si eax, xmm1
push eax
push 0
push dword [edi - 0x88]
call dword [sym.imp.USER32.dll_SetLayeredWindowAttributes]
jmp 0x40d66a
cmp eax, 0x2b
jl 0x40d66a
push 0x7e2
lea ecx, [edi - 0xa8]
call fcn.00402cc0
mov esi, eax
push 0
mov ecx, esi
mov edx, dword [esi]
call dword [edx + 0x20]
mov edx, dword [esi]
mov ecx, esi
push 0
call dword [edx + 0x20]
mov ecx, dword [esi + 4]
movups xmm0, xmmword [esi + 0x10]
push esi
push 1
mov edx, dword [ecx]
sub esp, 0x10
mov eax, esp
movups xmmword [eax], xmm0
call dword [edx + 4]
jmp 0x40d66a
cmp dword [0x5d043c], 0
jne 0x40d66a
push 0
lea ecx, [edi - 0xa8]
call fcn.00418e78
jmp 0x40d66a
mov al, byte [0x5c7840]
cmp al, 1
je 0x40d494
cmp al, 2
jne 0x40d550
cmp dword [0x5d043c], 0
jne 0x40d4aa
push 0
lea ecx, [edi - 0xa8]
call fcn.00418e78
mov dword [0x5d0068], 0x3bc
call fcn.0041c89b
call fcn.0041c89b
push 0xdf
mov eax, dword [eax + 0xc]
push eax
call dword [sym.imp.USER32.dll_LoadIconW]
movups xmm0, xmmword [0x5a860c]
mov dword [0x5d007c], eax
mov eax, dword [edi - 0x88]
mov dword [0x5d006c], eax
mov ax, word [0x5a861c]
movups xmmword [0x5d0080], xmm0
push 0x5d0068
movups xmmword [0x5d038c], xmm0
mov word [0x5d0090], ax
movq xmm0, qword [0x5a865c]
mov word [0x5d039c], ax
mov eax, dword [0x5a8664]
push 1
movq qword [0x5d0188], xmm0
mov dword [0x5d0190], eax
mov dword [0x5d0078], 0x403
mov dword [0x5d0074], 0x17
call dword [sym.imp.SHELL32.dll_Shell_NotifyIconW]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov edx, dword [edi + 0xd0]
mov dword [0x5d0060], eax
mov ecx, dword [edi + 8]
xor esi, esi
mov eax, dword [edi + 4]
sub ecx, eax
sar ecx, 2
test ecx, ecx
je 0x40d593
cmp edx, dword [eax]
je 0x40d56f
inc esi
add eax, 4
cmp esi, ecx
jb 0x40d561
jmp 0x40d593
push edx
call dword [sym.imp.WINMM.dll_timeKillEvent]
mov eax, dword [edi + 4]
lea edx, [eax + esi*4]
mov eax, dword [edi + 8]
lea ecx, [edx + 4]
sub eax, ecx
push eax
push ecx
push edx
call fcn.0054aa40
add esp, 0xc
add dword [edi + 8], 0xfffffffc
push 0x7e7
lea ecx, [edi - 0xa8]
mov dword [edi + 0xd0], 0xffffffff
call fcn.00402cc0
mov esi, eax
push 1
mov ecx, esi
mov edx, dword [esi]
call dword [edx + 0x20]
mov ecx, dword [esi + 4]
movups xmm0, xmmword [esi + 0x10]
push esi
push 1
mov edx, dword [ecx]
sub esp, 0x10
mov eax, esp
movups xmmword [eax], xmm0
call dword [edx + 4]
cmp byte [0x5c7840], 3
jne 0x40d66a
mov dword [0x5d0068], 0x3bc
call fcn.0041c89b
call fcn.0041c89b
push 0xdf
mov eax, dword [eax + 0xc]
push eax
call dword [sym.imp.USER32.dll_LoadIconW]
movups xmm0, xmmword [0x5a8668]
mov dword [0x5d007c], eax
mov eax, dword [edi - 0x88]
movups xmmword [0x5d0080], xmm0
push 0x5d0068
movups xmmword [0x5d038c], xmm0
mov dword [0x5d006c], eax
movq xmm0, qword [0x5a865c]
mov eax, dword [0x5a8664]
push 1
movq qword [0x5d0188], xmm0
mov dword [0x5d0190], eax
mov dword [0x5d0078], 0x403
mov dword [0x5d0074], 0x17
call dword [sym.imp.SHELL32.dll_Shell_NotifyIconW]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [0x5d0060], eax
cmp dword [edi + 0x1c], ebx
jne 0x40d703
mov ecx, dword [edi + 0xbc]
xor esi, esi
mov edx, dword [edi + 0xb8]
mov eax, ecx
sub eax, edx
sar eax, 2
test eax, eax
je 0x40d6bd
nop dword [eax]
sub ecx, edx
sar ecx, 2
cmp ecx, esi
jbe 0x40d70c
mov ecx, dword [edx + esi*4]
test ecx, ecx
je 0x40d6a5
call fcn.00407930
mov ecx, dword [edi + 0xbc]
inc esi
mov edx, dword [edi + 0xb8]
mov eax, ecx
sub eax, edx
sar eax, 2
cmp esi, eax
jb 0x40d690
mov ecx, dword [edi + 0x9c]
xor esi, esi
mov edx, dword [edi + 0x98]
mov eax, ecx
sub eax, edx
sar eax, 2
test eax, eax
je 0x40d703
sub ecx, edx
sar ecx, 2
cmp ecx, esi
jbe 0x40d70c
mov ecx, dword [edx + esi*4]
test ecx, ecx
je 0x40d6eb
call fcn.00407930
mov ecx, dword [edi + 0x9c]
inc esi
mov edx, dword [edi + 0x98]
mov eax, ecx
sub eax, edx
sar eax, 2
cmp esi, eax
jb 0x40d6d6
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
call fcn.004055f0
int3