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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffe4
push esi
mov dword [ebp - 4], eax
mov eax, dword [ebp - 4]
cmp dword [eax + 0x148], 0xb
je 0x4cc59a
mov eax, dword [ebp - 4]
cmp dword [eax + 0x148], 9
je 0x4cc59a
mov eax, dword [ebp - 4]
cmp dword [eax + 0x148], 0xd
je 0x4cc59a
mov eax, dword [ebp - 4]
cmp dword [eax + 0x148], 6
je 0x4cc59a
mov eax, dword [ebp - 4]
cmp dword [eax + 0x148], 7
je 0x4cc59a
mov eax, dword [ebp - 4]
mov byte [eax + 0x1e4], 0
mov eax, dword [0x5685c0]
mov eax, dword [eax]
cmp eax, dword [ebp - 4]
je 0x4cc185
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x220]
cmp dword [eax + 8], 2
jl 0x4cc185
mov eax, dword [ebp - 4]
mov byte [eax + 0x1e4], 1
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x1b8]
mov eax, dword [ebp - 4]
sub edx, dword [eax + 0x1b0]
mov eax, dword [ebp - 4]
mov si, 0xfff8
call fcn.004043ac
mov eax, dword [ebp - 4]
mov edx, dword [eax + 0x1b8]
mov eax, dword [ebp - 4]
sub edx, dword [eax + 0x1b0]
mov eax, dword [ebp - 4]
mov si, 0xfff7
call fcn.004043ac
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x1b8]
mov dword [ebp - 8], eax
mov eax, dword [ebp - 4]
cmp dword [eax + 0x148], 0
je 0x4cc506
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x1b8]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x1b0]
jl 0x4cc205
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x1b8]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x1b4]
jle 0x4cc217
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x1b0]
mov edx, dword [ebp - 4]
mov dword [edx + 0x1b8], eax
mov eax, dword [0x5685c0]
mov eax, dword [eax]
cmp eax, dword [ebp - 4]
je 0x4cc255
mov eax, dword [ebp - 4]
cmp byte [eax + 0xec], 0
je 0x4cc255
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x1d0]
mov dword [ebp - 0x1c], eax
xor eax, eax
mov dword [ebp - 0x18], eax
fild qword [ebp - 0x1c]
fld xword [0x4cc5a0]
fdivp st(1)
call fcn.004033b0
mov dword [ebp - 0xc], eax
jmp 0x4cc293
mov eax, dword [ebp - 4]
cmp byte [eax + 0x1e4], 0
je 0x4cc287
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x1d0]
add eax, eax
mov dword [ebp - 0x1c], eax
xor eax, eax
mov dword [ebp - 0x18], eax
fild qword [ebp - 0x1c]
fdiv dword [0x4cc5ac]
call fcn.004033b0
mov dword [ebp - 0xc], eax
jmp 0x4cc293
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x1d0]
mov dword [ebp - 0xc], eax
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 4]
sub eax, dword [edx + 0x1d4]
cmp eax, dword [ebp - 0xc]
jbe 0x4cc4c9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x1b8]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x1b4]
jge 0x4cc38b
mov eax, dword [ebp - 4]
cmp byte [eax + 0xec], 0
je 0x4cc372
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x104]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x108]
sub edx, 2
cmp eax, edx
je 0x4cc2f6
push ebp
call fcn.004cc098
pop ecx
test al, al
je 0x4cc336
mov eax, dword [ebp - 4]
cmp dword [eax + 0x10c], 0
jge 0x4cc311
push ebp
call fcn.004cc098
pop ecx
test al, al
je 0x4cc3fb
mov eax, dword [ebp - 4]
inc dword [eax + 0x1b8]
mov eax, dword [ebp - 4]
inc dword [eax + 0x104]
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 4]
mov dword [edx + 0x1d4], eax
jmp 0x4cc3fb
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x1b8]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x1b4]
dec edx
cmp eax, edx
jge 0x4cc356
mov eax, dword [ebp - 4]
inc dword [eax + 0x1b8]
mov eax, dword [ebp - 4]
inc dword [eax + 0x104]
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 4]
mov dword [edx + 0x1d4], eax
jmp 0x4cc3fb
mov eax, dword [ebp - 4]
inc dword [eax + 0x1b8]
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 4]
mov dword [edx + 0x1d4], eax
jmp 0x4cc3fb
mov eax, dword [ebp - 4]
cmp byte [eax + 0x23], 0
je 0x4cc39b
mov eax, dword [ebp - 4]
mov byte [eax + 0x22], 1
mov eax, dword [0x5685c0]
mov eax, dword [eax]
cmp eax, dword [ebp - 4]
jne 0x4cc3da
mov eax, dword [0x568774]
mov eax, dword [eax]
call fcn.00494738
test al, al
je 0x4cc3fb
mov eax, dword [ebp - 4]
mov si, 0xfff6
call fcn.004043ac
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x148], edx
mov eax, dword [ebp - 4]
mov byte [eax + 0xec], 0
jmp 0x4cc3fb
mov eax, dword [ebp - 4]
mov si, 0xfff6
call fcn.004043ac
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x148], edx
mov eax, dword [ebp - 4]
mov byte [eax + 0xec], 0
mov eax, dword [ebp - 4]
cmp byte [eax + 0xec], 0
je 0x4cc4c9
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x104]
mov edx, dword [ebp - 4]
mov edx, dword [edx + 0x108]
dec edx
cmp eax, edx
jne 0x4cc4c9
mov eax, dword [ebp - 4]
cmp dword [eax + 0x10c], 0
jle 0x4cc4be
mov eax, dword [ebp - 4]
add eax, 0x10c
mov dword [ebp - 0x14], eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x10]
push eax
mov eax, dword [ebp - 4]
movzx eax, word [eax + 8]
push eax
mov eax, dword [ebp - 4]
movzx eax, word [eax + 0xa]
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x14]
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x18]
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 8]
push eax
mov eax, dword [ebp - 0x14]
mov al, byte [eax + 0xc]
push eax
mov eax, dword [ebp - 0x14]
mov al, byte [eax + 0x1c]
push eax
mov eax, dword [ebp - 0x14]
mov eax, dword [eax + 0x20]
push eax
lea eax, [ebp - 0xd]
push eax
mov eax, dword [ebp - 0x14]
mov ecx, dword [eax]
mov eax, dword [0x5684d4]
mov eax, dword [eax]
mov edx, dword [ebp - 4]
call fcn.0049ff24
cmp byte [ebp - 0xd], 0
je 0x4cc4b0
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x1a8]
call fcn.004c7f90
jmp 0x4cc4be
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x1ac]
call fcn.004c7f90
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x10c], edx
mov eax, dword [ebp - 4]
mov ax, word [eax + 0x14]
sub ax, 2
jb 0x4cc4dc
sub ax, 0x29
jne 0x4cc4eb
mov eax, dword [ebp - 4]
mov dword [eax + 0x1ec], 0xfffffff6
jmp 0x4cc4f6
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x1ec], edx
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 4]
mov dword [edx + 0x1f0], eax
jmp 0x4cc572
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 4]
sub eax, dword [edx + 0x1fc]
cmp eax, 0xc8
jbe 0x4cc572
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 4]
sub eax, dword [edx + 0x1f0]
cmp eax, 0x1f4
jbe 0x4cc566
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 4]
mov dword [edx + 0x1f0], eax
mov eax, dword [ebp - 4]
inc dword [eax + 0x1ec]
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x1ec]
mov edx, dword [ebp - 4]
cmp eax, dword [edx + 0x1f4]
jl 0x4cc566
mov eax, dword [ebp - 4]
xor edx, edx
mov dword [eax + 0x1ec], edx
mov eax, dword [ebp - 4]
mov si, 0xfffe
call fcn.004043ac
mov eax, dword [ebp - 4]
mov eax, dword [eax + 0x1b8]
cmp eax, dword [ebp - 8]
je 0x4cc59a
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [ebp - 4]
mov dword [edx + 0x204], eax
mov eax, dword [ebp - 4]
mov si, 0xfff3
call fcn.004043ac
pop esi
mov esp, ebp
pop ebp
ret