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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff78
push ebx
push esi
push edi
xor ecx, ecx
mov dword [ebp - 0x88], ecx
mov dword [ebp - 0x84], ecx
mov dword [ebp - 0x80], ecx
mov dword [ebp - 0x7c], ecx
mov dword [ebp - 0x78], ecx
mov dword [ebp - 0x24], ecx
mov ebx, edx
mov esi, eax
xor eax, eax
push ebp
push 0x4c9a7d
push dword fs:[eax]
mov dword fs:[eax], esp
xor eax, eax
mov edx, dword [0x567948]
mov edx, dword [edx]
mov edx, dword [edx + 0x52c]
lea ecx, [ebp - 0x20]
mov ah, 0x20
call fcn.004040b8
mov eax, ebx
cmp eax, 0xff
ja 0x4c96cf
bt dword [ebp - 0x20], eax
jae 0x4c98c8
mov eax, dword [0x566b10]
cmp byte [eax], 0
je 0x4c96fb
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x567638]
sub eax, dword [edx]
cmp eax, 0x1388
jbe 0x4c96fb
mov eax, dword [0x566b10]
mov byte [eax], 0
mov eax, dword [0x566b10]
cmp byte [eax], 0
jne 0x4c9a52
imul eax, ebx, 0x2b
mov edx, dword [0x566e30]
cmp byte [edx + eax*4], 0
je 0x4c9a52
imul eax, ebx, 0x2b
mov edx, dword [0x566e30]
cmp byte [edx + eax*4 + 0x26], 3
ja 0x4c9a52
imul edi, ebx, 0x2b
mov eax, dword [0x566e30]
mov edx, dword [0x566b10]
push esi
push edi
lea esi, [eax + edi*4]
mov edi, edx
mov ecx, 0x2b
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov eax, dword [0x566e30]
mov byte [eax + edi*4], 0
mov eax, dword [0x566b10]
cmp byte [eax + 0x26], 4
jne 0x4c9884
mov eax, dword [0x566b10]
cmp word [eax + 0x27], 0x64
jae 0x4c9884
mov eax, dword [0x566b10]
cmp word [eax + 0x27], 0x32
jae 0x4c9807
mov edx, 0x4c9a8c
lea eax, [ebp - 0x4c]
call fcn.00403b8c
mov edx, dword [0x566b10]
lea eax, [ebp - 0x4c]
mov cl, 0x24
call fcn.00403b5c
lea edx, [ebp - 0x4c]
lea eax, [ebp - 0x74]
call fcn.00403b8c
mov edx, 0x4c9aa0
lea eax, [ebp - 0x74]
mov cl, 0x26
call fcn.00403b5c
lea edx, [ebp - 0x74]
lea eax, [ebp - 0x24]
call fcn.004057b8
mov edx, dword [ebp - 0x24]
mov eax, dword [0x567b0c]
mov eax, dword [eax]
movzx ecx, word [0x4c9aa4]
call fcn.004f9450
cmp eax, 6
je 0x4c9884
imul eax, ebx, 0x2b
mov edx, dword [0x566e30]
mov ecx, dword [0x566b10]
lea edi, [edx + eax*4]
mov esi, ecx
mov ecx, 0x2b
rep movsd dword es:[edi], dword [esi]
jmp 0x4c9a57
mov edx, 0x4c9a8c
lea eax, [ebp - 0x4c]
call fcn.00403b8c
mov edx, dword [0x566b10]
lea eax, [ebp - 0x4c]
mov cl, 0x24
call fcn.00403b5c
lea edx, [ebp - 0x4c]
lea eax, [ebp - 0x74]
call fcn.00403b8c
mov edx, 0x4c9aa0
lea eax, [ebp - 0x74]
mov cl, 0x26
call fcn.00403b5c
lea edx, [ebp - 0x74]
lea eax, [ebp - 0x78]
call fcn.004057b8
mov edx, dword [ebp - 0x78]
mov eax, dword [0x567b0c]
mov eax, dword [eax]
movzx ecx, word [0x4c9aa4]
call fcn.004f9450
cmp eax, 6
je 0x4c9884
imul eax, ebx, 0x2b
mov edx, dword [0x566e30]
mov ecx, dword [0x566b10]
lea edi, [edx + eax*4]
mov esi, ecx
mov ecx, 0x2b
rep movsd dword es:[edi], dword [esi]
jmp 0x4c9a57
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x567638]
mov dword [edx], eax
lea eax, [ebp - 0x7c]
mov edx, dword [0x566b10]
call fcn.004057b8
mov ecx, dword [ebp - 0x7c]
mov edx, dword [0x566b10]
mov edx, dword [edx + 0xa4]
mov eax, esi
call fcn.004d0440
mov eax, dword [0x566b10]
movzx eax, byte [eax + 0x26]
call fcn.0053d33c
jmp 0x4c9a52
inc ebx
jne 0x4c9a52
mov eax, dword [0x566b2c]
cmp byte [eax], 0
je 0x4c9a52
mov eax, dword [0x566b2c]
mov byte [eax], 0
mov eax, dword [0x567b20]
mov edx, dword [0x566b10]
push esi
lea esi, [eax + 8]
mov edi, edx
mov ecx, 0x2b
rep movsd dword es:[edi], dword [esi]
pop esi
mov eax, dword [0x567b20]
mov byte [eax + 8], 0
mov eax, dword [0x566b10]
cmp byte [eax + 0x26], 4
jne 0x4c9a0d
mov eax, dword [0x566b10]
cmp word [eax + 0x27], 0x64
jae 0x4c9a0d
mov eax, dword [0x566b10]
cmp word [eax + 0x27], 0x32
jae 0x4c999e
mov edx, 0x4c9a8c
lea eax, [ebp - 0x4c]
call fcn.00403b8c
mov edx, dword [0x566b10]
lea eax, [ebp - 0x4c]
mov cl, 0x24
call fcn.00403b5c
lea edx, [ebp - 0x4c]
lea eax, [ebp - 0x74]
call fcn.00403b8c
mov edx, 0x4c9aa0
lea eax, [ebp - 0x74]
mov cl, 0x26
call fcn.00403b5c
lea edx, [ebp - 0x74]
lea eax, [ebp - 0x80]
call fcn.004057b8
mov edx, dword [ebp - 0x80]
mov eax, dword [0x567b0c]
mov eax, dword [eax]
movzx ecx, word [0x4c9aa4]
call fcn.004f9450
cmp eax, 6
je 0x4c9a0d
mov eax, dword [0x566b10]
call fcn.0055922c
jmp 0x4c9a57
mov edx, 0x4c9a8c
lea eax, [ebp - 0x4c]
call fcn.00403b8c
mov edx, dword [0x566b10]
lea eax, [ebp - 0x4c]
mov cl, 0x24
call fcn.00403b5c
lea edx, [ebp - 0x4c]
lea eax, [ebp - 0x74]
call fcn.00403b8c
mov edx, 0x4c9aa0
lea eax, [ebp - 0x74]
mov cl, 0x26
call fcn.00403b5c
lea edx, [ebp - 0x74]
lea eax, [ebp - 0x84]
call fcn.004057b8
mov edx, dword [ebp - 0x84]
mov eax, dword [0x567b0c]
mov eax, dword [eax]
movzx ecx, word [0x4c9aa4]
call fcn.004f9450
cmp eax, 6
je 0x4c9a0d
mov eax, dword [0x566b10]
call fcn.0055922c
jmp 0x4c9a57
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x567638]
mov dword [edx], eax
lea eax, [ebp - 0x88]
mov edx, dword [0x566b10]
call fcn.004057b8
mov ecx, dword [ebp - 0x88]
mov edx, dword [0x566b10]
mov edx, dword [edx + 0xa4]
mov eax, esi
call fcn.004d0440
mov eax, dword [0x566b10]
movzx eax, byte [eax + 0x26]
call fcn.0053d33c
call fcn.005593f0
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4c9a84
lea eax, [ebp - 0x88]
mov edx, 5
call fcn.00405568
lea eax, [ebp - 0x24]
call fcn.00405544
ret