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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff4
push ebx
push esi
push edi
mov ebx, edx
mov dword [ebp - 4], eax
mov eax, dword [0x566dfc]
mov eax, dword [eax]
mov dword [eax + 4], ebx
mov eax, dword [ebx + 0x14]
push eax
mov eax, dword [0x5673b0]
mov eax, dword [eax]
mov edx, dword [eax + 0x14]
mov eax, dword [0x5673b0]
mov eax, dword [eax]
mov eax, dword [eax + 0x10]
mov ecx, dword [ebx + 0x10]
call fcn.0055a294
movzx esi, al
mov dx, 0xc
mov eax, dword [ebp - 4]
call fcn.004c8318
test eax, eax
je 0x4caeea
mov eax, dword [0x5672b0]
cmp byte [eax], 0
je 0x4caeea
mov eax, dword [0x566c0c]
cmp byte [eax + 0x6d], 0
je 0x4cae86
cmp byte [ebx + 0x3c], 0
jne 0x4cae86
push 3
mov ecx, ebx
mov edx, esi
mov eax, dword [ebp - 4]
call fcn.004c9c2c
test al, al
jne 0x4cae73
lea eax, [ebp - 0xc]
push eax
lea ecx, [ebp - 8]
mov edx, dword [ebx + 0x14]
mov eax, dword [ebx + 0x10]
call fcn.004ca8d0
test al, al
je 0x4cb0bd
mov eax, dword [0x5673b0]
mov eax, dword [eax]
mov eax, dword [eax + 0x10]
sub eax, dword [ebp - 8]
cdq
xor eax, edx
sub eax, edx
dec eax
jg 0x4cae52
mov eax, dword [0x5673b0]
mov eax, dword [eax]
mov eax, dword [eax + 0x14]
sub eax, dword [ebp - 0xc]
cdq
xor eax, edx
sub eax, edx
dec eax
jg 0x4cae52
mov eax, dword [0x567b3c]
mov byte [eax], 1
jmp 0x4cae5a
mov eax, dword [0x567b3c]
mov byte [eax], 2
mov eax, dword [0x567510]
mov edx, dword [ebp - 8]
mov dword [eax], edx
mov eax, dword [0x567398]
mov edx, dword [ebp - 0xc]
mov dword [eax], edx
jmp 0x4cb0bd
push ebp
mov edx, 0xbcb
mov eax, esi
call fcn.004cacc0
pop ecx
jmp 0x4cb0bd
mov eax, dword [0x566c0c]
cmp byte [eax + 0x6c], 0
je 0x4caeea
cmp byte [ebx + 0x3c], 0
jne 0x4caeea
mov eax, dword [0x5673b0]
mov eax, dword [eax]
mov eax, dword [eax + 0x10]
sub eax, dword [ebx + 0x10]
cdq
xor eax, edx
sub eax, edx
dec eax
jg 0x4caec1
mov eax, dword [0x5673b0]
mov eax, dword [eax]
mov eax, dword [eax + 0x14]
sub eax, dword [ebx + 0x14]
cdq
xor eax, edx
sub eax, edx
dec eax
jle 0x4caeea
push 2
mov ecx, ebx
mov edx, esi
mov eax, dword [ebp - 4]
call fcn.004c9c2c
test al, al
je 0x4cae04
push ebp
mov edx, 0xbcb
mov eax, esi
call fcn.004cacc0
pop ecx
jmp 0x4cb0bd
mov eax, edi
call fcn.004ca8b4
test al, al
je 0x4caf83
mov edx, 4
mov eax, ebx
call fcn.004ca7f0
test al, al
je 0x4caf83
mov eax, dword [ebp - 4]
call fcn.004d1f14
test al, al
je 0x4cb0bd
mov eax, dword [ebp - 4]
call fcn.004d1ee8
test al, al
je 0x4cb0bd
mov eax, dword [ebp - 4]
call fcn.004d1f50
test al, al
je 0x4cb0bd
mov edx, esi
mov eax, dword [ebp - 4]
call fcn.004ca23c
mov edi, eax
mov eax, dword [0x5673b0]
mov eax, dword [eax]
mov eax, dword [eax + 0x14]
push eax
push esi
push 0
push 0
push 0
push 0
mov eax, dword [0x5673b0]
mov eax, dword [eax]
mov ecx, dword [eax + 0x10]
mov eax, dword [0x5673b0]
mov eax, dword [eax]
mov edx, edi
call fcn.00541090
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x567b30]
mov dword [edx], eax
jmp 0x4cb0bd
cmp byte [ebx + 0x3c], 0
jne 0x4cb04e
push 1
mov ecx, ebx
mov edx, esi
mov eax, dword [ebp - 4]
call fcn.004c9c2c
test al, al
je 0x4cb04e
mov eax, dword [ebp - 4]
call fcn.004d1f14
test al, al
je 0x4cb0bd
mov eax, dword [ebp - 4]
call fcn.004d1ee8
test al, al
je 0x4cb0bd
mov eax, dword [ebp - 4]
call fcn.004d1f50
test al, al
je 0x4cb0bd
mov edx, esi
mov eax, dword [ebp - 4]
call fcn.004ca23c
mov edi, eax
mov eax, dword [0x5677a4]
cmp byte [eax], 0
je 0x4cb00a
cmp edi, 0xce5
jne 0x4cb00a
push 0
push 0x65
mov eax, dword [ebx + 0xc]
push eax
mov ecx, esi
mov edx, 0xbc9
mov eax, dword [ebp - 4]
call fcn.004cf954
jmp 0x4cb036
mov eax, dword [0x5673b0]
mov eax, dword [eax]
mov eax, dword [eax + 0x14]
push eax
push esi
push 0
push 0
push 0
push 0
mov eax, dword [0x5673b0]
mov eax, dword [eax]
mov ecx, dword [eax + 0x10]
mov eax, dword [0x5673b0]
mov eax, dword [eax]
mov edx, edi
call fcn.00541090
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x567b30]
mov dword [edx], eax
mov eax, dword [0x56738c]
xor edx, edx
mov dword [eax], edx
jmp 0x4cb0bd
mov eax, dword [0x5673b0]
mov eax, dword [eax]
mov eax, dword [eax + 0x10]
sub eax, dword [ebx + 0x10]
cdq
xor eax, edx
sub eax, edx
cmp eax, 2
jg 0x4cb08c
mov eax, dword [0x5673b0]
mov eax, dword [eax]
mov eax, dword [eax + 0x14]
sub eax, dword [ebx + 0x14]
cdq
xor eax, edx
sub eax, edx
cmp eax, 2
jg 0x4cb08c
cmp byte [ebx + 0x3c], 0
jne 0x4cb08c
mov eax, dword [0x567b3c]
mov byte [eax], 1
jmp 0x4cb094
mov eax, dword [0x567b3c]
mov byte [eax], 2
lea eax, [ebp - 8]
push eax
lea eax, [ebp - 0xc]
push eax
mov ecx, esi
mov edx, dword [ebx + 0x14]
mov eax, dword [ebx + 0x10]
call fcn.0055a3f4
mov eax, dword [0x567510]
mov edx, dword [ebp - 8]
mov dword [eax], edx
mov eax, dword [0x567398]
mov edx, dword [ebp - 0xc]
mov dword [eax], edx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret