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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff4
push ebx
push esi
push edi
xor ebx, ebx
mov dword [ebp - 0xc], ebx
mov dword [ebp - 4], eax
xor eax, eax
push ebp
push 0x4a4b24
push dword fs:[eax]
mov dword fs:[eax], esp
xor edx, edx
push ebp
push 0x4a4ae9
push dword fs:[edx]
mov dword fs:[edx], esp
mov esi, dword [0x4ad8a0]
mov esi, dword [esi]
add esi, ecx
mov edi, dword [0x4ad860]
mov edi, dword [edi]
cmp esi, 0x14
jl 0x4a4a8d
mov ebx, edi
cmp dword [ebx], 0xaa55aa55
jne 0x4a4a82
mov eax, dword [ebx + 0x10]
cdq
xor eax, edx
sub eax, edx
add eax, 0x14
cmp esi, eax
jl 0x4a4a8d
mov eax, edi
add eax, 0x14
mov dword [ebp - 8], eax
movzx eax, word [ebx + 0xa]
add eax, 0xfffffffd
cmp eax, 5
ja case.0x4a4879.4
jmp dword [eax*4 + 0x4a4880]
mov eax, dword [0x4ad7cc]
mov byte [eax], 0
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x4ad5b4]
mov dword [edx], eax
jmp case.0x4a4879.4
cmp word [ebx + 8], 0x3e8
jae case.0x4a4879.4
movzx eax, word [ebx + 8]
imul eax, eax, 0x13
mov edx, dword [0x4ad8f8]
mov eax, dword [edx + eax*4 + 0x38]
cmp eax, dword [ebx + 4]
jne case.0x4a4879.4
movzx eax, word [ebx + 8]
imul eax, eax, 0x13
mov edx, dword [0x4ad8f8]
mov ecx, dword [ebx + 0xc]
mov dword [edx + eax*4 + 0xc], ecx
jmp case.0x4a4879.4
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x4ad624]
sub eax, dword [edx]
mov edx, dword [0x4ad7ac]
mov dword [edx], eax
mov eax, dword [0x4ad7ac]
mov eax, dword [eax]
mov edx, dword [0x4ad77c]
cmp eax, dword [edx]
jbe 0x4a4926
mov eax, dword [0x4ad7ac]
mov eax, dword [eax]
mov edx, dword [0x4ad77c]
mov dword [edx], eax
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x4ad624]
mov dword [edx], eax
push 0
push 0
push 0
push 0
xor ecx, ecx
mov edx, 7
mov eax, dword [ebp - 4]
call fcn.004a0f54
jmp case.0x4a4879.4
mov eax, dword [ebp - 8]
push eax
mov eax, dword [ebx + 0x10]
push eax
movzx ecx, word [ebx + 8]
mov edx, dword [ebx + 4]
mov eax, dword [ebp - 4]
call fcn.004a4b78
jmp case.0x4a4879.4
cmp word [ebx + 8], 0x3e8
jae case.0x4a4879.4
movzx eax, word [ebx + 8]
imul eax, eax, 0x13
mov edx, dword [0x4ad8f8]
mov eax, dword [edx + eax*4 + 0x38]
cmp eax, dword [ebx + 4]
jne case.0x4a4879.4
movzx eax, word [ebx + 8]
imul eax, eax, 0x13
mov edx, dword [0x4ad8f8]
mov ecx, dword [edx + eax*4 + 0x3c]
lea eax, [ebp - 0xc]
mov edx, 0x4a4b3c
call fcn.004050e8
mov eax, dword [ebp - 0xc]
mov edx, 1
call fcn.00499bb4
mov eax, dword [0x4ad928]
movzx eax, byte [eax]
sub al, 1
jb 0x4a49d3
je 0x4a49fd
dec al
je 0x4a4a31
jmp case.0x4a4879.4
movzx eax, word [ebx + 8]
imul eax, eax, 0x13
mov edx, dword [0x4ad8f8]
cmp dword [edx + eax*4], 0
je case.0x4a4879.4
movzx eax, word [ebx + 8]
imul eax, eax, 0x13
mov edx, dword [0x4ad8f8]
mov eax, dword [edx + eax*4]
call fcn.00473518
jmp case.0x4a4879.4
movzx eax, word [ebx + 8]
imul eax, eax, 0x13
mov edx, dword [0x4ad8f8]
mov edx, dword [edx + eax*4 + 0x3c]
mov eax, dword [ebp - 4]
call fcn.004a5260
movzx eax, word [ebx + 8]
imul eax, eax, 0x13
mov edx, dword [0x4ad8f8]
mov edx, dword [edx + eax*4 + 0x3c]
mov eax, dword [ebp - 4]
call fcn.004a5a70
jmp case.0x4a4879.4
movzx eax, word [ebx + 8]
imul eax, eax, 0x13
mov edx, dword [0x4ad8f8]
mov edx, dword [edx + eax*4 + 0x3c]
mov eax, dword [ebp - 4]
call fcn.004a5160
movzx eax, word [ebx + 8]
imul eax, eax, 0x13
mov edx, dword [0x4ad8f8]
mov edx, dword [edx + eax*4 + 0x3c]
mov eax, dword [ebp - 4]
call fcn.004a5a70
mov eax, dword [ebx + 0x10]
cdq
xor eax, edx
sub eax, edx
add eax, 0x14
lea eax, [edi + eax]
mov edi, eax
mov eax, dword [ebx + 0x10]
cdq
xor eax, edx
sub eax, edx
add eax, 0x14
sub esi, eax
jmp 0x4a4a84
inc edi
dec esi
cmp esi, 0x14
jge 0x4a4840
test esi, esi
jle 0x4a4ac1
mov eax, esi
call fcn.0040309c
mov ebx, eax
mov edx, ebx
mov eax, edi
mov ecx, esi
call fcn.004032fc
mov eax, dword [0x4ad860]
mov eax, dword [eax]
call fcn.004030b8
mov eax, dword [0x4ad860]
mov dword [eax], ebx
mov eax, dword [0x4ad8a0]
mov dword [eax], esi
jmp 0x4a4adf
mov eax, dword [0x4ad860]
mov eax, dword [eax]
call fcn.004030b8
mov eax, dword [0x4ad860]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x4ad8a0]
xor edx, edx
mov dword [eax], edx
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
jmp 0x4a4b0e
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x4a4b2b
lea eax, [ebp - 0xc]
call fcn.00404dd0
ret