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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0xc
push ebx
push esi
mov esi, ecx
push edi
mov ecx, dword [esi + 8]
test ecx, ecx
je 0x4aeb74
lea eax, [ecx + ecx*4]
cmp dword [esi + eax*4 + 0x58], 1
jne 0x4aeb74
add ecx, 4
lea eax, [ecx + ecx*4]
lea ecx, [esi + eax*4]
call fcn.004b14d0
test eax, eax
je 0x4aeb74
mov eax, dword [esi + 8]
xor edx, edx
cmp eax, 0x12
lea ecx, [eax + 1]
cmovne edx, ecx
mov ecx, esi
push edx
call fcn.004aefa0
mov eax, dword [esi + 0xc]
cmp eax, 0xffffffff
je 0x4aebc1
lea eax, [eax + eax*4]
cmp dword [esi + eax*4 + 0x18], 1
jne 0x4aebc1
cmp dword [esi + 0x1d8], 0
jne 0x4aebc1
cmp dword [esi + 8], 0x11
je 0x4aebc1
add eax, 4
lea ecx, [esi + eax*4]
call fcn.004b14d0
test eax, eax
je 0x4aebc1
push 0x11
mov ecx, esi
mov dword [esi + 0x1d4], 0
mov dword [esi + 0x1d8], 0
call fcn.004aefa0
mov eax, dword [esi + 8]
cmp eax, 2
je 0x4aebe7
cmp eax, 3
je 0x4aebe7
cmp eax, 4
je 0x4aebe7
cmp eax, 8
je 0x4aebe7
cmp eax, 9
je 0x4aebe7
cmp eax, 0xd
je 0x4aebe7
cmp eax, 0xe
jne 0x4aec0d
cmp dword [0x9f1c28], 0
jne 0x4aec0d
push 0x11
mov ecx, esi
mov dword [esi + 0x1d4], 0
mov dword [esi + 0x1d8], 0
call fcn.004aefa0
call fcn.004b07a0
mov eax, dword [esi + 8]
cmp eax, 0x12
ja case.0x4aec25.0
movzx eax, byte [eax + 0x4aee4c]
jmp dword [eax*4 + 0x4aee30]
cmp dword [0x9f309c], 0
jg 0x4aec4f
push 4
mov ecx, esi
mov dword [esi + 0x1d4], 1
call fcn.004aefa0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
push dword [esi + 0x228]
lea ecx, [esi + 0x1dc]
call fcn.004b0b60
movzx eax, byte [0x9f309c]
mov byte [ebp - 4], al
movzx eax, byte [0x9f1c28]
mov byte [ebp - 3], al
lea eax, [ebp - 8]
push 6
push eax
mov dword [ebp - 8], 0x7d106c1
call fcn.004b1bb0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x1f4]
mov eax, dword [eax*4 + 0x20a514c]
cmp byte [eax + 0x7a], 0
jne 0x4aecf9
cmp dword [esi + 0x1f0], 0
jne 0x4aecd2
mov dword [esi + 0x1d4], 1
mov dword [esi + 0x1d8], 1
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [esi + 0x1f0], eax
mov byte [ebp - 4], 0
jmp 0x4aed58
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esi + 0x1f0]
cmp eax, 0xbb8
jb case.0x4aec25.0
push 5
mov ecx, esi
call fcn.004aefa0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea ecx, [esi + 0x1dc]
call fcn.004b0c60
mov ebx, dword [esi + 0x218]
mov edi, dword [sym.imp.KERNEL32.dll_GetTickCount]
call edi
mov edx, dword [esi + 0x214]
sub eax, dword [esi + 0x210]
cmp eax, dword [esi + edx*4 + 0x1fc]
jb 0x4aed54
cmp edx, 3
lea eax, [edx + 1]
mov ecx, ebx
cmovne edx, eax
call fcn.004c3fd0
mov ecx, dword [esi + 0x214]
cmp ecx, 3
lea eax, [ecx + 1]
cmovne ecx, eax
mov dword [esi + 0x214], ecx
call edi
mov dword [esi + 0x210], eax
mov byte [ebp - 4], 1
mov al, byte [0x9f1c28]
mov byte [ebp - 3], al
lea eax, [ebp - 8]
push 6
push eax
mov dword [ebp - 8], 0x7d106c1
call fcn.004b1bb0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [0x9f309c], 0
jg 0x4aec4f
push 9
mov ecx, esi
mov dword [esi + 0x1d4], 1
call fcn.004aefa0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x1f8]
mov eax, dword [eax*4 + 0x20a514c]
cmp byte [eax + 0x7a], 0
jne 0x4aede3
cmp dword [esi + 0x1f0], 0
je 0x4aeca9
call dword [sym.imp.KERNEL32.dll_GetTickCount]
sub eax, dword [esi + 0x1f0]
cmp eax, 0xbb8
jb case.0x4aec25.0
push 0xa
mov ecx, esi
call fcn.004aefa0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
lea ecx, [esi + 0x1dc]
call fcn.004b0c60
mov ebx, dword [esi + 0x21c]
jmp 0x4aed0a
cmp dword [0x9f309c], 0
jg 0x4aec4f
push 0xe
mov ecx, esi
mov dword [esi + 0x1d4], 1
call fcn.004aefa0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, esi
call fcn.004aee60
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret