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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffdc
push ebx
push esi
push edi
mov byte [ebp - 2], cl
mov byte [ebp - 1], dl
mov esi, eax
mov edi, dword [ebp + 0xc]
mov word [esi + 0x56e], 0
mov eax, dword [0x567a00]
mov dword [eax], edi
mov eax, dword [0x567880]
mov edx, dword [ebp + 8]
mov dword [eax], edx
mov eax, dword [0x567768]
mov byte [eax], 0
cmp byte [ebp - 1], 1
jne 0x4cb11b
mov eax, dword [0x566b2c]
cmp byte [eax], 0
je 0x4cb11b
mov eax, dword [0x567b0c]
mov eax, dword [eax]
call fcn.004f8efc
jmp 0x4cba91
mov eax, dword [0x56761c]
mov byte [eax], 0
mov eax, dword [0x5673b0]
cmp dword [eax], 0
je 0x4cba91
mov eax, dword [0x567128]
mov eax, dword [eax]
mov eax, dword [eax + 0x18]
mov edx, dword [0x566ba4]
cmp eax, dword [edx]
jne 0x4cba91
mov eax, dword [0x567690]
cmp byte [eax], 0
ja 0x4cba91
test byte [ebp - 2], 0x10
je 0x4cb325
movzx eax, byte [0x4cba9c]
cmp al, byte [ebp - 2]
jne 0x4cb174
mov eax, dword [0x566f40]
inc dword [eax]
mov eax, dword [0x566f40]
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x14]
push eax
push 0
mov eax, dword [0x566ba4]
mov eax, dword [eax]
mov ecx, dword [ebp + 8]
mov edx, edi
call fcn.0053293c
mov ebx, eax
mov eax, dword [0x566f40]
mov eax, dword [eax]
cmp eax, dword [ebp - 0x14]
je 0x4cb1aa
mov eax, dword [0x566f40]
xor edx, edx
mov dword [eax], edx
test ebx, ebx
je 0x4cb1f2
test byte [ebp - 2], 4
je 0x4cb1fb
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x56706c]
sub eax, dword [edx]
cmp eax, 0x3e8
jbe 0x4cb1fb
cmp byte [ebx + 0x1a], 0
jne 0x4cb1fb
cmp byte [ebx + 0x3c], 0
jne 0x4cb1fb
mov eax, dword [ebx + 0x10]
push eax
mov eax, dword [ebx + 0x14]
push eax
push 0
mov ecx, dword [ebx + 0xc]
mov edx, 0x52
mov eax, esi
call fcn.004ce440
jmp 0x4cba91
mov eax, dword [0x566f40]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x5673b0]
mov eax, dword [eax]
cmp byte [eax + 0x2b8], 0
jne 0x4cba91
mov eax, dword [0x5671c8]
push eax
mov eax, dword [0x56707c]
push eax
mov eax, dword [0x566ba4]
mov eax, dword [eax]
mov ecx, dword [ebp + 8]
mov edx, edi
call fcn.005325d8
mov eax, dword [0x5673b0]
mov eax, dword [eax]
mov ebx, dword [eax + 0x10]
mov eax, ebx
mov edx, dword [0x5671c8]
sub eax, dword [edx]
cdq
xor eax, edx
sub eax, edx
cmp eax, 2
jge 0x4cb2e3
mov eax, dword [0x5673b0]
mov eax, dword [eax]
mov eax, dword [eax + 0x14]
mov edx, dword [0x56707c]
sub eax, dword [edx]
cdq
xor eax, edx
sub eax, edx
cmp eax, 2
jge 0x4cb2e3
mov eax, dword [0x56707c]
mov eax, dword [eax]
push eax
mov ecx, dword [0x5671c8]
mov ecx, dword [ecx]
mov eax, dword [0x5673b0]
mov eax, dword [eax]
mov edx, dword [eax + 0x14]
mov eax, dword [0x5673b0]
mov eax, ebx
call fcn.0055a294
movzx eax, al
mov dword [ebp - 8], eax
mov eax, esi
call fcn.004d1f14
test al, al
je 0x4cb325
mov eax, esi
call fcn.004d1ee8
test al, al
je 0x4cb325
mov eax, dword [0x5673b0]
mov eax, dword [eax]
mov eax, dword [eax + 0x14]
push eax
mov eax, dword [ebp - 8]
push eax
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 dx, 0xbc2
call fcn.00541090
jmp 0x4cb325
mov eax, dword [0x5673b0]
mov eax, dword [eax]
cmp byte [eax + 0x20], 0
jne 0x4cb2fa
mov eax, dword [0x567b3c]
mov byte [eax], 2
jmp 0x4cb302
mov eax, dword [0x567b3c]
mov byte [eax], 3
mov eax, dword [0x5671c8]
mov eax, dword [eax]
mov edx, dword [0x567510]
mov dword [edx], eax
mov eax, dword [0x56707c]
mov eax, dword [eax]
mov edx, dword [0x567398]
mov dword [edx], eax
jmp 0x4cba91
test byte [ebp - 2], 8
je 0x4cba91
mov eax, dword [0x566f40]
mov eax, dword [eax]
push eax
lea eax, [ebp - 0x14]
push eax
push 1
mov eax, dword [0x566ba4]
mov eax, dword [eax]
mov ecx, dword [ebp + 8]
mov edx, edi
call fcn.0053293c
mov ebx, eax
test ebx, ebx
jne 0x4cb3ec
mov eax, dword [0x566ba4]
mov eax, dword [eax]
mov ecx, dword [ebp + 8]
mov edx, edi
call fcn.00532b38
test al, al
je 0x4cb3ec
mov eax, dword [0x5673b0]
cmp dword [eax], 0
je 0x4cb3ec
mov eax, dword [0x5673b0]
mov eax, dword [eax]
cmp byte [eax + 0x3c], 0
jne 0x4cb3ec
mov eax, dword [0x5673b0]
mov eax, dword [eax]
cmp byte [eax + 0x2b8], 0
je 0x4cb3ec
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x567aa0]
sub eax, dword [edx]
cmp eax, 0x3e8
jbe 0x4cba91
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x567aa0]
mov dword [edx], eax
mov eax, dword [0x5673b0]
mov eax, dword [eax]
mov eax, dword [eax + 0x10]
push eax
mov eax, dword [0x5673b0]
mov eax, dword [eax]
mov eax, dword [eax + 0x14]
push eax
push 0
mov eax, dword [0x5673b0]
mov eax, dword [eax]
mov ecx, dword [eax + 0xc]
mov edx, 0x13fd
mov eax, esi
call fcn.004ce440
jmp 0x4cba91
mov eax, dword [0x5671c8]
push eax
mov eax, dword [0x56707c]
push eax
mov eax, dword [0x566ba4]
mov eax, dword [eax]
mov ecx, dword [ebp + 8]
mov edx, edi
call fcn.005325d8
mov eax, dword [0x566e14]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x5670b0]
cmp byte [eax + 0xac], 0
je 0x4cb540
test ebx, ebx
jne 0x4cb540
mov eax, dword [0x5673b0]
mov eax, dword [eax]
cmp byte [eax + 0x20], 0
jne 0x4cb540
mov eax, dword [0x5673b0]
mov eax, dword [eax]
cmp byte [eax + 0x2b8], 0
jne 0x4cb540
mov eax, dword [0x567690]
cmp byte [eax], 0
jne 0x4cb540
mov eax, dword [0x5670b0]
cmp word [eax + 0xd3], 0x13
jne 0x4cb540
mov eax, dword [0x56707c]
mov eax, dword [eax]
push eax
mov ecx, dword [0x5671c8]
mov ecx, dword [ecx]
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]
call fcn.0055a294
movzx eax, al
mov dword [ebp - 8], eax
lea eax, [ebp - 0xc]
push eax
lea eax, [ebp - 0x10]
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 [ebp - 8]
call fcn.0055a464
mov eax, dword [0x567a5c]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x10]
mov edx, dword [ebp - 0xc]
call fcn.0052cb80
test al, al
je 0x4cb4e1
test byte [ebp - 2], 1
je 0x4cb540
mov eax, esi
call fcn.004d1f14
test al, al
je 0x4cb533
mov eax, esi
call fcn.004d1ee8
test al, al
je 0x4cb533
mov eax, esi
call fcn.004d1f50
test al, al
je 0x4cb533
mov eax, dword [0x5673b0]
mov eax, dword [eax]
mov eax, dword [eax + 0x14]
push eax
mov eax, dword [ebp - 8]
push eax
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 dx, 0xbc7
call fcn.00541090
mov eax, dword [0x567768]
mov byte [eax], 1
jmp 0x4cba91
test byte [ebp - 2], 2
je 0x4cb682
mov eax, dword [0x5673b0]
mov eax, dword [eax]
cmp byte [eax + 0x20], 0
jne 0x4cb682
mov eax, dword [0x5673b0]
mov eax, dword [eax]
cmp byte [eax + 0x2b8], 0
jne 0x4cb682
mov eax, dword [0x567690]
cmp byte [eax], 0
jne 0x4cb682
mov eax, dword [0x56707c]
mov eax, dword [eax]
push eax
mov ecx, dword [0x5671c8]
mov ecx, dword [ecx]
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]
call fcn.0055a294
movzx eax, al
mov dword [ebp - 8], eax
mov eax, esi
call fcn.004d1f14
test al, al
je 0x4cb672
mov eax, esi
call fcn.004d1ee8
test al, al
je 0x4cb672
mov ecx, dword [0x56707c]
mov ecx, dword [ecx]
mov edx, dword [0x5671c8]
mov edx, dword [edx]
mov eax, dword [0x566ba4]
mov eax, dword [eax]
call fcn.00533fdc
mov ebx, eax
test ebx, ebx
je 0x4cb641
mov eax, dword [ebp - 8]
push eax
mov eax, dword [ebx + 0xc]
push eax
mov ecx, dword [0x56707c]
mov ecx, dword [ecx]
mov edx, dword [0x5671c8]
mov edx, dword [edx]
mov eax, esi
call fcn.004d04e0
mov eax, dword [0x5673b0]
mov eax, dword [eax]
mov eax, dword [eax + 0x14]
push eax
mov eax, dword [ebp - 8]
push eax
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 dx, 0xbc4
call fcn.00541090
jmp 0x4cba91
mov eax, dword [0x5673b0]
mov eax, dword [eax]
mov eax, dword [eax + 0x14]
push eax
mov eax, dword [ebp - 8]
push eax
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 dx, 0xbc4
call fcn.00541090
mov eax, dword [0x567510]
mov dword [eax], 0xffffffff
jmp 0x4cba91
test ebx, ebx
jne 0x4cb690
test byte [ebp - 2], 1
je 0x4cb921
mov eax, dword [0x567510]
mov dword [eax], 0xffffffff
test ebx, ebx
je 0x4cb833
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x56706c]
sub eax, dword [edx]
cmp eax, 0x1f4
jbe 0x4cb6ff
cmp byte [ebx + 0x1a], 0x32
jne 0x4cb6ff
mov eax, dword [0x5673b0]
mov eax, dword [eax]
cmp byte [eax + 0x2b8], 0
jne 0x4cb6ff
push 0
push 0
mov eax, dword [0x567b0c]
mov eax, dword [eax]
mov eax, dword [eax + 0xb84]
movzx eax, byte [eax + 0x2f0]
call fcn.0047a1d4
push eax
mov ecx, dword [ebx + 0xc]
mov edx, 0x3f2
mov eax, esi
call fcn.004ce440
jmp 0x4cba91
cmp byte [ebx + 0x3c], 0
jne 0x4cb757
cmp byte [ebx + 0x1a], 0
jne 0x4cb757
cmp byte [ebx + 0x2b8], 0
je 0x4cb757
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x567aa0]
sub eax, dword [edx]
cmp eax, 0x3e8
jbe 0x4cba91
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x567aa0]
mov dword [edx], eax
mov eax, dword [ebx + 0x10]
push eax
mov eax, dword [ebx + 0x14]
push eax
push 0
mov ecx, dword [ebx + 0xc]
mov edx, 0x13fd
mov eax, esi
call fcn.004ce440
jmp 0x4cba91
cmp byte [ebx + 0x3c], 0
jne 0x4cba91
mov eax, dword [0x5673b0]
mov eax, dword [eax]
cmp byte [eax + 0x20], 0
jne 0x4cba91
mov eax, dword [0x5673b0]
mov eax, dword [eax]
cmp byte [eax + 0x2b8], 0
jne 0x4cba91
mov eax, dword [0x567690]
cmp byte [eax], 0
jne 0x4cba91
mov eax, dword [0x566e14]
mov dword [eax], ebx
mov edx, dword [ebp - 8]
mov eax, esi
call fcn.004ca4d4
mov edi, eax
mov eax, dword [0x567690]
cmp byte [eax], 0
jne 0x4cb7d4
cmp byte [ebx + 0x1a], 0
je 0x4cb7d4
cmp byte [ebx + 0x1a], 0xb
je 0x4cb7d4
cmp byte [ebx + 0x1a], 0x32
je 0x4cb7d4
mov edx, dword [ebx + 8]
mov eax, 0x4cbaa8
call fcn.00405b30
test eax, eax
je 0x4cb818
test byte [ebp - 2], 1
jne 0x4cb818
cmp byte [ebx + 0x1a], 0x32
je 0x4cb7eb
mov eax, dword [0x566c0c]
cmp byte [eax + 0x3a], 0
jne 0x4cb818
cmp dword [ebx + 0x40], 0x45
je 0x4cb818
mov eax, edi
call fcn.004ca8b4
test al, al
je 0x4cba91
mov ecx, 4
mov edx, dword [ebx + 0x14]
mov eax, dword [ebx + 0x10]
call fcn.004ca734
test al, al
je 0x4cba91
mov edx, ebx
mov eax, esi
call fcn.004cad7c
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x567b30]
mov dword [edx], eax
jmp 0x4cba91
mov eax, dword [0x5673b0]
mov eax, dword [eax]
cmp byte [eax + 0x20], 0
jne 0x4cba91
mov eax, dword [0x5673b0]
mov eax, dword [eax]
cmp byte [eax + 0x2b8], 0
jne 0x4cba91
mov eax, dword [0x567690]
cmp byte [eax], 0
jne 0x4cba91
mov eax, dword [0x56707c]
mov eax, dword [eax]
push eax
mov ecx, dword [0x5671c8]
mov ecx, dword [ecx]
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]
call fcn.0055a294
movzx eax, al
mov dword [ebp - 8], eax
mov eax, esi
call fcn.004d1f14
test al, al
je 0x4cb90f
mov eax, esi
call fcn.004d1ee8
test al, al
je 0x4cb90f
mov eax, esi
call fcn.004d1f50
test al, al
je 0x4cb90f
mov edi, 0xbcb
mov dx, 0xc
mov eax, esi
call fcn.004c8318
test eax, eax
je 0x4cb8d4
mov eax, dword [0x5672b0]
cmp byte [eax], 0
jne 0x4cb8e0
mov edx, dword [ebp - 8]
mov eax, esi
call fcn.004ca23c
mov edi, eax
mov eax, dword [0x5673b0]
mov eax, dword [eax]
mov eax, dword [eax + 0x14]
push eax
mov eax, dword [ebp - 8]
push eax
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 [0x567700]
mov dword [edx], eax
jmp 0x4cba91
mov eax, dword [0x5673b0]
mov eax, dword [eax]
cmp byte [eax + 0x2b8], 0
jne 0x4cba91
mov eax, dword [0x5673b0]
mov eax, dword [eax]
mov ebx, dword [eax + 0x10]
mov eax, dword [0x5671c8]
cmp ebx, dword [eax]
jne 0x4cb9ac
mov eax, dword [0x56707c]
mov eax, dword [eax]
mov edx, dword [0x5673b0]
mov edx, dword [edx]
cmp eax, dword [edx + 0x14]
jne 0x4cb9ac
mov eax, dword [0x56707c]
mov eax, dword [eax]
push eax
mov ecx, dword [0x5671c8]
mov ecx, dword [ecx]
mov eax, dword [0x5673b0]
mov eax, dword [eax]
mov edx, dword [eax + 0x14]
mov eax, dword [0x5673b0]
mov eax, ebx
call fcn.0055a294
mov eax, esi
call fcn.004d1f14
test al, al
je 0x4cba32
mov eax, esi
call fcn.004d1ee8
test al, al
je 0x4cba32
mov eax, esi
call fcn.004cfc18
jmp 0x4cba32
mov eax, dword [0x567764]
cmp byte [eax + 0xc], 0
je 0x4cba2b
mov eax, dword [0x5673b0]
mov eax, dword [eax]
movzx eax, byte [eax + 0xbe]
imul eax, eax, 0x3e8
mov dword [ebp - 0x1c], eax
fild dword [ebp - 0x1c]
fdiv dword [0x4cbaac]
call fcn.0040367c
mov edx, 0x3e8
sub edx, eax
mov dword [ebp - 0x18], edx
mov eax, dword [0x5673b0]
mov eax, dword [eax]
movsx eax, word [eax + 0x2c8]
cdq
push edx
push eax
mov eax, dword [ebp - 0x18]
xor edx, edx
call fcn.004067d8
mov dword [ebp - 0x24], eax
mov dword [ebp - 0x20], edx
fild qword [ebp - 0x24]
fdiv dword [0x4cbab0]
call fcn.00403670
push eax
mov eax, dword [ebp - 0x18]
pop edx
sub eax, edx
mov edx, 1
call fcn.0046ffe8
mov dword [ebp - 0x18], eax
jmp 0x4cba32
mov dword [ebp - 0x18], 0x3e8
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x567700]
sub eax, dword [edx]
cmp eax, dword [ebp - 0x18]
jbe 0x4cba91
test byte [ebp - 2], 4
je 0x4cba6b
mov eax, dword [0x5673b0]
mov eax, dword [eax]
cmp byte [eax + 0x20], 0
jne 0x4cba61
mov eax, dword [0x567b3c]
mov byte [eax], 2
jmp 0x4cba73
mov eax, dword [0x567b3c]
mov byte [eax], 3
jmp 0x4cba73
mov eax, dword [0x567b3c]
mov byte [eax], 1
mov eax, dword [0x5671c8]
mov eax, dword [eax]
mov edx, dword [0x567510]
mov dword [edx], eax
mov eax, dword [0x56707c]
mov eax, dword [eax]
mov edx, dword [0x567398]
mov dword [edx], eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8