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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x4d3fa0
mov eax, dword fs:[0]
push eax
sub esp, 0x1c
mov eax, dword [0x52600c]
xor eax, ebp
mov dword [ebp - 0x14], eax
push ebx
push esi
push edi
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov edi, ecx
cmp dword [0x565e28], 1
mov dword [ebp - 0x18], edi
jne 0x445a5c
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call esi
mov ebx, dword [sym.imp.WINMM.dll_timeGetTime]
jmp 0x445a6a
mov ebx, dword [sym.imp.WINMM.dll_timeGetTime]
call ebx
mov esi, dword [sym.imp.KERNEL32.dll_GetTickCount]
cmp dword [edi + 0x204], eax
ja 0x445b20
cmp dword [edi + 0x210], 1
jne 0x445b3c
cmp dword [0x565e28], 1
jne 0x445a90
call esi
jmp 0x445a92
call ebx
mov ecx, dword [0x568108]
add eax, 0x1f4
push 1
push 0
add ecx, 0x108
mov dword [edi + 0x204], eax
push 0x3c
push 0x1c9
push 0x1c0
mov eax, dword [ecx]
push 0
call dword [eax + 0xd0]
call fcn.00475d70
cmp dword [eax + 0x68], 0
je 0x445b16
mov eax, dword [vtable.CCriticalSection.0]
mov ecx, 0x565b7c
mov dword [ebp - 0x18], 0x565b7c
call dword [eax + 4]
mov dword [ebp - 4], 1
call fcn.00475d70
mov esi, eax
mov ecx, esi
call fcn.00477790
test eax, eax
jne 0x445b02
mov ecx, esi
call fcn.00477860
mov dword [ebp - 4], 2
mov ecx, 0x565b7c
mov eax, dword [vtable.CCriticalSection.0]
call dword [eax + 8]
mov dword [edi + 0x210], 0
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 0x14]
xor ecx, ebp
call fcn.004bcfcc
mov esp, ebp
pop ebp
ret
cmp dword [edi + 0x208], 0x3c
jne 0x445b6b
mov ecx, dword [0x568108]
push 1
push 0
add ecx, 0x108
push 0x3c
push 0x1c9
push 0x1c0
mov eax, dword [ecx]
push 0
call dword [eax + 0xd0]
mov dword [ebp - 4], 3
cmp dword [edi + 0xb8], 0xff
je 0x445c16
cmp dword [edi + 0xb4], 0
je 0x445c16
cmp dword [edi + 0x208], 0xbc
jl 0x445d6a
cmp dword [0x565e28], 1
jne 0x445bac
call esi
jmp 0x445bae
call ebx
add eax, 0x3e8
mov dword [edi + 0x208], 0x3c
mov dword [edi + 0x204], eax
mov dword [edi + 0x20c], 0x1d2
call fcn.00475d70
cmp dword [eax + 0x68], 0
je 0x445cd8
mov eax, dword [vtable.CCriticalSection.0]
mov ecx, 0x565b7c
mov dword [ebp - 0x1c], 0x565b7c
call dword [eax + 4]
mov byte [ebp - 4], 8
call fcn.00475d70
mov esi, eax
mov ecx, esi
call fcn.00477790
test eax, eax
jne 0x445c0d
mov ecx, esi
call fcn.00477860
mov byte [ebp - 4], 9
jmp 0x445ccb
mov eax, dword [edi]
mov ecx, edi
push 1
call dword [eax + 0xe0]
test eax, eax
je 0x445c2e
lea edx, [eax + 0x108]
jmp 0x445c30
xor edx, edx
mov ecx, dword [0x568108]
push 1
push 0x1c0
push 0
mov eax, dword [ecx + 0x108]
add ecx, 0x108
push edx
push 0x3c
push 0x1c9
push 0x1c0
push 0
call dword [eax + 0x48]
cmp dword [0x565e28], 1
jne 0x445c6a
call esi
jmp 0x445c6c
call ebx
add eax, 0x3e8
mov dword [edi + 0x208], 0x3c
mov dword [edi + 0x204], eax
mov dword [edi + 0x20c], 0x1d2
call fcn.00475d70
cmp dword [eax + 0x68], 0
je 0x445cd8
mov eax, dword [vtable.CCriticalSection.0]
mov ecx, 0x565b7c
mov dword [ebp - 0x1c], 0x565b7c
call dword [eax + 4]
mov byte [ebp - 4], 5
call fcn.00475d70
mov esi, eax
mov ecx, esi
call fcn.00477790
test eax, eax
jne 0x445cc7
mov ecx, esi
call fcn.00477860
mov byte [ebp - 4], 6
mov eax, dword [vtable.CCriticalSection.0]
mov ecx, 0x565b7c
call dword [eax + 8]
mov dword [edi + 0x210], 1
jmp 0x445b20
mov eax, dword [edi]
mov ecx, edi
push 1
call dword [eax + 0xe0]
test eax, eax
je 0x445d82
lea ebx, [eax + 0x108]
jmp 0x445d84
xor ebx, ebx
mov eax, dword [edi + 0x20c]
mov edx, dword [edi + 0x208]
mov ecx, dword [0x568108]
push 1
push eax
push edx
mov esi, dword [ecx + 0x108]
add ecx, 0x108
push ebx
push 0x1e
push 0x1c
push eax
push edx
call dword [esi + 0x48]
add dword [edi + 0x208], 0x1c
lea eax, [ebp - 0x20]
push 0x523540
push eax
mov dword [ebp - 0x20], 0
call fcn.004bf896
int3