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

Disassembly:
push ebp
mov ebp, esp
push ebx
push edi
push esi
and esp, 0xfffffff0
sub esp, 0x80
mov edi, dword [ebp + 8]
mov eax, dword [0x520014]
xor eax, ebp
mov dword [esp + 0x78], eax
xor eax, eax
dec eax
lea esi, [esp + 0x10]
mov dword [esi + 0x64], eax
mov dword [esi + 0x60], eax
pcmpeqd xmm0, xmm0
movdqa xmmword [esi + 0x50], xmm0
movdqa xmmword [esi + 0x40], xmm0
movdqa xmmword [esi + 0x30], xmm0
movdqa xmmword [esi + 0x20], xmm0
movdqa xmmword [esi + 0x10], xmm0
movdqa xmmword [esi], xmm0
mov ecx, esi
call fcn.004d1a90
mov ecx, esi
push dword [ebp + 0xc]
push edi
call fcn.004d1db0
test al, al
je 0x42ca28
mov edi, dword [ebp + 0x20]
test edi, edi
je 0x42c919
mov eax, dword [ebp + 0xc]
cmp dword [eax + 4], 0
jne 0x42c919
mov eax, dword [edi]
xor esi, esi
mov ecx, edi
push esi
call dword [eax + 4]
mov eax, dword [edi]
mov ecx, edi
push esi
push 0xffffffffffffffff
call dword [eax + 0xc]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [esp + 0xc], eax
mov dword [esp + 8], 0
mov eax, dword [ebp + 0x1c]
test eax, eax
je 0x42c946
push 0
push eax
call dword [sym.imp.KERNEL32.dll_WaitForSingleObject]
cmp eax, 0x102
jne 0x42cafc
lea ecx, [esp + 0x10]
call fcn.004d2220
test eax, eax
je 0x42ca67
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov esi, dword [esp + 0x54]
test esi, esi
je 0x42c92b
mov ebx, eax
mov eax, dword [ebp + 0xc]
mov edi, dword [eax + 4]
mov ecx, dword [ebp + 0x20]
test ecx, ecx
je 0x42c9ad
movd xmm0, edi
movq xmm2, qword [0x501c70]
por xmm0, xmm2
subsd xmm0, xmm2
cvtsd2ss xmm0, xmm0
movd xmm1, esi
por xmm1, xmm2
subsd xmm1, xmm2
cvtsd2ss xmm1, xmm1
divss xmm0, xmm1
mov eax, dword [ecx]
sub esp, 4
movss dword [esp], xmm0
call dword [eax + 4]
test edi, edi
je 0x42c92b
sub ebx, dword [esp + 0xc]
mov eax, ebx
sub eax, dword [esp + 8]
cmp eax, 0xea60
jb 0x42c92b
sub esi, edi
mov eax, esi
mul ebx
xor esi, esi
push esi
push edi
push edx
push eax
call fcn.004b37b0
push esi
push 0x3e8
push edx
push eax
call fcn.004b37b0
mov dword [esp + 8], ebx
cmp dword [ebp + 0x20], 0
je 0x42c92b
mov esi, eax
mov eax, ebx
mov ecx, 0x10624dd3
mul ecx
shr edx, 6
add edx, esi
cmp edx, 0x79
mov edi, dword [ebp + 0x20]
jl 0x42ca15
mov eax, dword [edi]
mov ecx, edi
call dword [eax + 8]
mov eax, dword [edi]
mov ecx, edi
push 1
push esi
call dword [eax + 0xc]
mov dword [esp + 8], ebx
jmp 0x42c92b
mov esi, dword [ebp + 0x24]
test esi, esi
je 0x42cafc
lea edi, [esp + 0x2c]
mov eax, dword [edi]
mov dword [esi], eax
cmp esi, edi
je 0x42cad1
lea ecx, [esi + 4]
lea eax, [esp + 0x30]
cmp byte [ecx + 0xb], 0
js 0x42cab9
cmp byte [esp + 0x3b], 0
js 0x42caaa
mov edx, dword [eax + 8]
mov dword [ecx + 8], edx
movq xmm0, qword [eax]
movq qword [ecx], xmm0
jmp 0x42cad1
lea ecx, [esp + 0x10]
push 0
call fcn.00448530
mov ebx, eax
cmp dword [ebp + 0x20], 0
je 0x42cafe
test bl, bl
mov edi, dword [ebp + 0x10]
je 0x42cb30
mov esi, dword [ebp + 0x20]
mov eax, dword [esi]
mov ecx, esi
push 0x3f800000
call dword [eax + 4]
mov eax, dword [esi]
mov ecx, esi
push 2
push 0
call dword [eax + 0xc]
mov bl, 1
jmp 0x42cb30
push dword [esp + 0x34]
push dword [esp + 0x34]
call fcn.0046c420
jmp 0x42cad1
movzx edx, byte [esp + 0x3b]
test dl, dl
jns 0x42caca
mov edx, dword [esp + 0x34]
mov eax, dword [esp + 0x30]
push edx
push eax
call fcn.0046c320
cmp esi, edi
je 0x42cafc
add esi, 0x10
lea eax, [esp + 0x3c]
cmp byte [esi + 0xb], 0
mov edi, dword [ebp + 0x10]
js 0x42cb14
cmp byte [esp + 0x47], 0
js 0x42cb03
mov ecx, dword [eax + 8]
mov dword [esi + 8], ecx
movq xmm0, qword [eax]
movq qword [esi], xmm0
jmp 0x42cb2e
xor ebx, ebx
mov edi, dword [ebp + 0x10]
jmp 0x42cb30
mov ecx, esi
push dword [esp + 0x40]
push dword [esp + 0x40]
call fcn.0046c420
jmp 0x42cb2e
movzx edx, byte [esp + 0x47]
test dl, dl
jns 0x42cb25
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
mov ecx, esi
push edx
push eax
call fcn.0046c320
xor ebx, ebx
mov esi, dword [ebp + 0x14]
test edi, edi
je 0x42cb6f
lea eax, [esp + 0x20]
cmp eax, edi
je 0x42cb6f
cmp byte [edi + 0xb], 0
js 0x42cbd2
cmp byte [esp + 0x2b], 0
js 0x42cb60
mov ecx, dword [eax + 8]
mov dword [edi + 8], ecx
movq xmm0, qword [eax]
movq qword [edi], xmm0
jmp 0x42cb6f
mov ecx, edi
push dword [esp + 0x24]
push dword [esp + 0x24]
call fcn.0043f7a0
mov edi, dword [ebp + 0x18]
test esi, esi
je 0x42cbaa
lea eax, [esp + 0x48]
cmp eax, esi
je 0x42cbaa
cmp byte [esi + 0xb], 0
js 0x42cbee
cmp byte [esp + 0x53], 0
js 0x42cb9b
mov ecx, dword [eax + 8]
mov dword [esi + 8], ecx
movq xmm0, qword [eax]
movq qword [esi], xmm0
jmp 0x42cbaa
mov ecx, esi
push dword [esp + 0x4c]
push dword [esp + 0x4c]
call fcn.0043f7a0
test edi, edi
je 0x42cbb4
mov eax, dword [esp + 0x54]
mov dword [edi], eax
lea ecx, [esp + 0x10]
call fcn.004483a0
mov ecx, dword [esp + 0x78]
xor ecx, ebp
call fcn.0048a678
mov eax, ebx
lea esp, [ebp - 0xc]
pop esi
pop edi
pop ebx
pop ebp
ret
movzx edx, byte [esp + 0x2b]
test dl, dl
jns 0x42cbe3
mov edx, dword [esp + 0x24]
mov eax, dword [esp + 0x20]
mov ecx, edi
push edx
push eax
call fcn.0043f730
jmp 0x42cb6f
movzx edx, byte [esp + 0x53]
test dl, dl
jns 0x42cbff
mov edx, dword [esp + 0x4c]
mov eax, dword [esp + 0x48]
mov ecx, esi
push edx
push eax
call fcn.0043f730
jmp 0x42cbaa