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

Disassembly:
mov eax, 0x200a1b72
call fcn.2007d394
sub esp, 0x80
mov eax, dword [0x200cc84c]
push ebx
mov ebx, dword [ebp + 8]
push esi
mov esi, ecx
push edi
mov edi, dword [esi + 0x20038]
xor eax, ebp
test edi, edi
mov dword [ebp - 0x10], eax
mov dword [ebp - 0x84], ebx
je 0x2006591e
mov eax, dword [esi + 0x20044]
cmp dword [eax + 0x192e4], 1
jne 0x200658c7
cmp byte [edi + 0xc0], 0
je 0x200658c7
cmp byte [edi + 0xbf], 3
jne 0x2006591e
cmp dword [edi + 0x78], 0
je 0x20065925
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [edi + 0x220]
cmp eax, 0x7800
jbe 0x2006591e
mov eax, dword [esi + 0x20038]
and dword [eax + 0x78], 0
mov eax, dword [esi + 0x20038]
inc byte [eax + 0x80]
mov eax, dword [esi + 0x20038]
cmp byte [eax + 0x80], 3
jbe 0x20065925
push 1
mov ecx, ebx
mov byte [eax + 0xcd], 1
call fcn.2000133b
push 0x19
mov ecx, ebx
call fcn.20001294
xor eax, eax
jmp 0x20065ce7
mov eax, dword [esi + 0x20038]
and dword [ebp - 0x60], 0
cmp byte [eax + 0xcd], 0
jne 0x20065ce4
mov ecx, dword [esi + 0x20044]
mov ebx, 0x688
push 0
add ecx, ebx
call fcn.2001c76a
mov ecx, dword [esi + 0x20044]
push eax
add ecx, ebx
mov dword [ebp - 0x74], eax
call fcn.2001bb16
mov edi, eax
test edi, edi
mov dword [ebp - 0x5c], edi
je 0x20065ce4
mov eax, dword [ebp - 0x74]
mov ecx, dword [esi + 0x20044]
mov dword [ebp - 0x50], eax
call fcn.2003c635
cmp eax, 0x14
jle 0x20065989
push 0x14
pop eax
jmp 0x2006598e
cmp eax, 0xa
jl 0x20065998
cdq
sub eax, edx
sar eax, 1
mov dword [ebp - 0x64], eax
jmp 0x2006599f
mov dword [ebp - 0x64], 5
mov eax, dword [esi + 0x20044]
cmp dword [eax + 0x548], 0
je 0x200659b5
mov dword [ebp - 0x64], 0xf4240
lea ecx, [ebp - 0x48]
call fcn.2003ab13
and dword [ebp - 4], 0
push 0x80
lea ecx, [ebp - 0x48]
call fcn.2003ab2e
push 1
lea ecx, [ebp - 0x48]
call fcn.2003ac10
and dword [ebp - 0x54], 0
lea ecx, [edi + 0x40]
call fcn.2003acb4
fstp dword [ebp - 0x68]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [edi + 0x88]
xor edx, edx
mov ecx, 0x3e8
div ecx
mov dword [ebp - 0x70], 0x24
mov dword [ebp - 0x58], eax
mov eax, dword [esi + 0x20038]
mov ecx, dword [ebp - 0x50]
cmp ecx, dword [eax + 0x20]
jne 0x20065a22
add eax, 0x28
push eax
lea ecx, [ebp - 0x48]
call fcn.2003b6f4
jmp 0x20065a8f
mov eax, dword [esi + 0x20044]
jbe 0x20065a89
add eax, 0x10c18
push eax
lea ecx, [ebp - 0x78]
call fcn.200011c0
mov byte [ebp - 4], 1
mov edi, dword [esi + 0x20038]
lea eax, [ebp - 0x50]
push eax
lea eax, [ebp - 0x7c]
push eax
lea ecx, [edi + 0x23c]
call fcn.2003e64a
mov edi, dword [edi + 0x240]
mov eax, dword [ebp - 0x7c]
cmp eax, edi
je 0x20065c72
add eax, 0x10
push eax
lea ecx, [ebp - 0x48]
call fcn.2003b6f4
mov byte [ebp - 4], 0
mov edi, dword [ebp - 0x78]
test edi, edi
je 0x20065a8f
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
dec dword [edi + 0x18]
jmp 0x20065a8f
inc dword [eax + 0x194a8]
mov edi, dword [ebp - 0x5c]
lea ecx, [edi + 0x40]
call fcn.2003acb4
fst dword [ebp - 0x6c]
mov eax, dword [edi + 0x10]
cmp eax, 0x4b000
mov dword [ebp - 0x4c], 2
jae 0x20065ab5
mov dword [ebp - 0x4c], 3
cmp eax, 0x20800
jae 0x20065abf
inc dword [ebp - 0x4c]
cmp eax, 0x16800
jae 0x20065ac9
inc dword [ebp - 0x4c]
mov eax, dword [ebp - 0x74]
cmp eax, dword [ebp - 0x50]
jne 0x20065b58
mov edx, dword [esi + 0x20038]
xor edi, edi
cmp byte [edx + 0xc0], 0
je 0x20065aef
cmp byte [edx + 0xbf], 3
jne 0x20065af2
xor edi, edi
inc edi
mov ecx, dword [esi + 0x20044]
cmp dword [ecx + 0x548], 0
je 0x20065b20
fcomp dword [0x200aa738]
fnstsw ax
test ah, 5
jnp 0x20065b4d
test edi, edi
jne 0x20065b4d
mov eax, dword [ebp - 0x54]
cmp eax, dword [ebp - 0x4c]
jl 0x20065c36
jmp 0x20065b4d
test edi, edi
jne 0x20065b4b
fcomp dword [0x200aa734]
fnstsw ax
test ah, 5
jnp 0x20065b4d
movzx eax, word [edx + 0x1e8]
cmp eax, dword [ebp - 0x64]
jle 0x20065b4d
mov eax, dword [ebp - 0x4c]
cmp dword [ebp - 0x54], eax
jle 0x20065c3e
jmp 0x20065b4d
fstp st(0)
add ecx, 0x688
jmp 0x20065c25
fld dword [ebp - 0x68]
fcomp dword [0x200aa738]
fnstsw ax
test ah, 5
jp 0x20065b72
cmp dword [ebp - 0x58], 0x2d
jb 0x20065cb1
fld dword [ebp - 0x68]
fmul dword [0x200aa730]
call fcn.2007f3d0
cmp dword [ebp - 0x58], eax
jbe 0x20065b8f
cmp dword [ebp - 0x58], 0x2d
jb 0x20065cb1
fcom dword [0x200aa738]
fnstsw ax
test ah, 0x41
jne 0x20065bf1
fstp qword [ebp - 0x8c]
sub esp, 0x10
fld qword [0x200aa728]
fstp qword [esp + 8]
fld dword [ebp - 0x68]
fsub dword [0x200aa738]
fstp qword [esp]
call fcn.200805a0
mov ecx, dword [ebp - 0x54]
fmul qword [0x200aa720]
lea eax, [ecx + 1]
mov dword [ebp - 0x80], eax
fidiv dword [ebp - 0x80]
add esp, 0x10
fcomp qword [ebp - 0x8c]
fnstsw ax
test ah, 5
jp 0x20065bec
cmp dword [ebp - 0x58], 0x2d
jb 0x20065cb3
fld dword [ebp - 0x6c]
jmp 0x20065bf4
mov ecx, dword [ebp - 0x54]
push 0x50
pop eax
cdq
lea edi, [ecx + 1]
idiv edi
mov dword [ebp - 0x6c], eax
fild dword [ebp - 0x6c]
fld st(1)
fcompp
fnstsw ax
fstp st(0)
test ah, 5
jp 0x20065c15
cmp ecx, dword [ebp - 0x4c]
jl 0x20065c1d
mov eax, dword [ebp - 0x58]
cmp eax, dword [ebp - 0x70]
jbe 0x20065c36
mov ecx, dword [esi + 0x20044]
add ecx, ebx
push dword [ebp - 0x50]
lea eax, [ebp - 0x48]
push eax
call fcn.2001e3b4
cmp eax, 0xffffffff
jne 0x20065c95
mov eax, dword [ebp - 0x4c]
cmp dword [ebp - 0x54], eax
jg 0x20065cb3
mov ecx, dword [esi + 0x20044]
push dword [ebp - 0x50]
add ecx, ebx
call fcn.2001bf2f
test eax, eax
mov dword [ebp - 0x50], eax
je 0x20065cb3
mov ecx, dword [esi + 0x20044]
push eax
add ecx, ebx
call fcn.2001bb16
inc dword [ebp - 0x54]
add dword [ebp - 0x70], 0x12
mov dword [ebp - 0x5c], eax
jmp 0x20065a06
mov eax, dword [esi + 0x20044]
inc dword [eax + 0x194ac]
mov byte [ebp - 4], 0
mov edi, dword [ebp - 0x78]
test edi, edi
je 0x20065cb3
push edi
call dword [sym.imp.KERNEL32.dll_LeaveCriticalSection]
dec dword [edi + 0x18]
jmp 0x20065cb3
cmp dword [ebp - 0x5c], 0
je 0x20065cb3
push eax
push dword [ebp - 0x5c]
mov ecx, esi
push dword [ebp - 0x84]
call fcn.20064f5a
mov dword [ebp - 0x60], eax
jmp 0x20065cb3
fstp st(0)
or dword [ebp - 4], 0xffffffff
lea ecx, [ebp - 0x48]
call fcn.2003ab27
cmp dword [ebp - 0x60], 0
je 0x20065ce4
mov eax, dword [esi + 0x20038]
mov dword [eax + 0x78], 1
mov esi, dword [esi + 0x20038]
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [esi + 0x220], eax
mov eax, dword [ebp - 0x60]
mov ecx, dword [ebp - 0xc]
pop edi
mov dword fs:[0], ecx
mov ecx, dword [ebp - 0x10]
pop esi
xor ecx, ebp
pop ebx
call fcn.2007c9ae
leave
ret 4