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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x18
mov eax, dword [ebp + 8]
push ebx
push esi
push edi
mov edi, ecx
lea eax, [eax + eax*4]
mov dword [ebp - 0x10], edi
cmp dword [edi + eax*4 + 0x58], 0
lea esi, [edi + eax*4]
jne 0x4aefc3
mov eax, dword [esi + 0x60]
jmp 0x4aefc9
call dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [esi + 0x60], eax
call fcn.004b1070
lea eax, [edi + 0x1f4]
mov dword [edi + 0x1e0], 0xffffffff
mov dword [edi + 0x1e8], 0
mov dword [edi + 0x1ec], 0
mov dword [ebp - 0xc], eax
mov eax, dword [eax]
test eax, eax
js 0x4af016
cmp eax, 0x1194
jge 0x4af016
mov eax, dword [eax*4 + 0x20a514c]
mov dword [eax + 0xfc], 0
mov eax, dword [edi + 0x1f8]
test eax, eax
js 0x4af038
cmp eax, 0x1194
jge 0x4af038
mov eax, dword [eax*4 + 0x20a514c]
mov dword [eax + 0xfc], 0
mov ecx, 4
add edi, 0x218
mov dword [ebp - 8], ecx
mov eax, dword [edi]
cmp eax, 0x31
ja 0x4af084
imul esi, eax, 0x1900
mov ebx, 0x64
add esi, 0x2026ba4
nop
cmp dword [esi - 0x34], 0xffffffff
je 0x4af079
mov ecx, dword [esi]
test ecx, ecx
js 0x4af079
cmp ecx, 0x1194
jge 0x4af079
call fcn.0051f250
add esi, 0x40
sub ebx, 1
jne 0x4af060
mov ecx, dword [ebp - 8]
add edi, 4
sub ecx, 1
mov dword [ebp - 8], ecx
jne 0x4af046
mov edi, dword [ebp - 0x10]
mov ebx, dword [ebp - 0xc]
mov eax, dword [ebp + 8]
mov dword [edi + 0x1f8], 0xffffffff
mov dword [ebx], 0xffffffff
mov dword [edi + 0x210], 0
mov dword [edi + 0x214], 0
cmp eax, 0x12
ja case.default.0x4af0c5
jmp dword [eax*4 + 0x4af798]
mov dword [edi + 8], 0
mov dword [edi + 0x1d0], 0
jmp case.default.0x4af0c5
mov dword [edi + 8], 1
mov dword [edi + 0x1d0], 1
jmp 0x4af76d
mov dword [edi + 8], 2
mov dword [edi + 0x1d0], 0
jmp case.default.0x4af0c5
mov eax, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [edi + 8], 3
mov dword [edi + 0xc], 0
mov dword [edi + 0x1d0], 0
mov dword [edi + 0x1d4], 0
mov dword [edi + 0x1d8], 0
call eax
mov dword [edi + 0x20], eax
mov eax, dword [edi + 0xc]
lea eax, [eax + eax*4]
cmp dword [edi + eax*4 + 0x18], 1
jne 0x4af16a
mov eax, dword [edi + eax*4 + 0x1c]
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x14]
push 8
push eax
mov dword [ebp - 0x14], 0x5d108c1
call fcn.004b1bb0
push 0
call fcn.004b1100
mov eax, dword [0x9f2408]
mov dword [edi + 0x1e0], eax
jmp case.default.0x4af0c5
push 3
mov dword [edi + 8], 4
mov dword [edi + 0x1d0], 0
mov dword [edi + 0x1d4], 0
mov dword [edi + 0x1d8], 0
mov dword [edi + 0x1f0], 0
call fcn.004b1100
mov eax, dword [0x9f2408]
mov dword [edi + 0x1e0], eax
mov esi, dword [edi + 0x218]
mov ecx, esi
call fcn.004c42e0
xor edx, edx
mov ecx, esi
call fcn.004c3fd0
mov eax, dword [sym.imp.KERNEL32.dll_GetTickCount]
call eax
mov dword [edi + 0x210], eax
mov eax, dword [edi + 0x218]
cmp eax, 0x31
ja 0x4af21b
xor ecx, ecx
imul eax, eax, 0x1900
nop dword [eax + eax]
cmp dword [eax + 0x2026b70], 0xffffffff
je 0x4af212
cmp dword [eax + 0x2026b78], 0
je 0x4af225
inc ecx
add eax, 0x40
cmp ecx, 0x64
jl 0x4af200
or eax, 0xffffffff
mov dword [ebx], eax
jmp case.default.0x4af0c5
mov eax, dword [eax + 0x2026ba4]
mov dword [ebx], eax
jmp case.default.0x4af0c5
mov dword [edi + 8], 5
mov dword [edi + 0xc], 0xffffffff
mov dword [edi + 0x1d0], 0
mov dword [edi + 0x1d8], 0
mov al, byte [edi + 0x1d4]
mov byte [ebp - 0x10], al
lea eax, [ebp - 0x14]
push 5
push eax
mov dword [ebp - 0x14], 0x4d105c1
call fcn.004b1bb0
jmp case.default.0x4af0c5
lea eax, [ebp + 8]
mov dword [edi + 8], 6
push eax
lea eax, [ebp - 0x18]
mov dword [edi + 0x1d0], 0
push eax
mov ecx, 0xa9b83c
mov dword [ebp + 8], 0x154
call fcn.00405650
mov eax, dword [ebp - 0x10]
mov ecx, dword [0xa9b83c]
cmp byte [eax + 0xd], 0
jne 0x4af2b6
cmp dword [eax + 0x10], 0x154
jle 0x4af2b8
mov eax, ecx
cmp eax, ecx
jne 0x4af2ec
push 0x154
push str.Could_not_find_message__d_
push 0xa9b7bc
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
mov eax, 0xa9b7bc
push eax
push 0x640234
call fcn.004b1b00
add esp, 8
jmp case.default.0x4af0c5
add eax, 0x18
push eax
push 0x640234
call fcn.004b1b00
add esp, 8
jmp case.default.0x4af0c5
mov dword [edi + 8], 7
mov dword [edi + 0x1d0], 1
jmp case.default.0x4af0c5
mov eax, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [edi + 8], 8
mov dword [edi + 0xc], 1
mov dword [edi + 0x1d0], 0
mov dword [edi + 0x1d4], 0
mov dword [edi + 0x1d8], 0
call eax
mov dword [edi + 0x34], eax
mov eax, dword [edi + 0xc]
lea eax, [eax + eax*4]
cmp dword [edi + eax*4 + 0x18], 1
jne 0x4af374
mov eax, dword [edi + eax*4 + 0x1c]
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x14]
push 8
push eax
mov dword [ebp - 0x14], 0x5d108c1
call fcn.004b1bb0
push 0
call fcn.004b1100
mov eax, dword [0x9f2408]
mov dword [edi + 0x1e0], eax
jmp case.default.0x4af0c5
push 4
mov dword [edi + 8], 9
mov dword [edi + 0x1d0], 0
mov dword [edi + 0x1d4], 0
mov dword [edi + 0x1d8], 0
mov dword [edi + 0x1f0], 0
call fcn.004b1100
mov eax, dword [0x9f2408]
mov dword [edi + 0x1e0], eax
mov esi, dword [edi + 0x21c]
mov ecx, esi
call fcn.004c42e0
xor edx, edx
mov ecx, esi
call fcn.004c3fd0
mov eax, dword [sym.imp.KERNEL32.dll_GetTickCount]
call eax
mov dword [edi + 0x210], eax
mov eax, dword [edi + 0x21c]
cmp eax, 0x31
ja 0x4af626
xor ecx, ecx
imul eax, eax, 0x1900
cmp dword [eax + 0x2026b70], 0xffffffff
je 0x4af41c
cmp dword [eax + 0x2026b78], 0
je 0x4af60f
inc ecx
add eax, 0x40
cmp ecx, 0x64
jl 0x4af406
or eax, 0xffffffff
mov dword [edi + 0x1f8], eax
jmp case.default.0x4af0c5
mov dword [edi + 8], 0xa
jmp 0x4af239
lea eax, [ebp + 8]
mov dword [edi + 8], 0xb
push eax
lea eax, [ebp - 0x18]
mov dword [edi + 0x1d0], 0
push eax
mov ecx, 0xa9b83c
mov dword [ebp + 8], 0x154
call fcn.00405650
mov eax, dword [ebp - 0x10]
mov ecx, dword [0xa9b83c]
cmp byte [eax + 0xd], 0
jne 0x4af481
cmp dword [eax + 0x10], 0x154
jle 0x4af483
mov eax, ecx
cmp eax, ecx
jne 0x4af2ec
push 0x154
push str.Could_not_find_message__d_
push 0xa9b7bc
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
mov eax, 0xa9b7bc
push eax
push 0x640234
call fcn.004b1b00
add esp, 8
jmp case.default.0x4af0c5
mov dword [edi + 8], 0xc
mov dword [edi + 0x1d0], 1
jmp case.default.0x4af0c5
mov eax, dword [sym.imp.KERNEL32.dll_GetTickCount]
mov dword [edi + 8], 0xd
mov dword [edi + 0xc], 2
mov dword [edi + 0x1d0], 0
mov dword [edi + 0x1d4], 0
mov dword [edi + 0x1d8], 0
call eax
mov dword [edi + 0x48], eax
mov eax, dword [edi + 0xc]
lea eax, [eax + eax*4]
cmp dword [edi + eax*4 + 0x18], 1
jne 0x4af52d
mov eax, dword [edi + eax*4 + 0x1c]
mov dword [ebp - 0x10], eax
lea eax, [ebp - 0x14]
push 8
push eax
mov dword [ebp - 0x14], 0x5d108c1
call fcn.004b1bb0
push 1
call fcn.004b1100
jmp case.default.0x4af0c5
push 5
mov dword [edi + 8], 0xe
mov dword [edi + 0x1d0], 0
mov dword [edi + 0x1d4], 0
mov dword [edi + 0x1d8], 0
mov dword [edi + 0x1f0], 0
call fcn.004b1100
mov eax, dword [0x9f2408]
mov dword [edi + 0x1e0], eax
mov esi, dword [edi + 0x220]
mov ecx, esi
call fcn.004c42e0
xor edx, edx
mov ecx, esi
call fcn.004c3fd0
mov eax, dword [sym.imp.KERNEL32.dll_GetTickCount]
call eax
mov dword [edi + 0x210], eax
mov edx, dword [edi + 0x220]
cmp edx, 0x31
ja 0x4af620
xor ecx, ecx
imul eax, edx, 0x1900
cmp dword [eax + 0x2026b70], 0xffffffff
je 0x4af5c2
cmp dword [eax + 0x2026b78], 0
je 0x4af607
inc ecx
add eax, 0x40
cmp ecx, 0x64
jl 0x4af5b0
or eax, 0xffffffff
mov dword [ebx], eax
xor ecx, ecx
imul eax, edx, 0x1900
nop dword [eax + eax]
mov edx, dword [eax + 0x2026b70]
cmp edx, 0xffffffff
je 0x4af5f0
cmp edx, 1
je 0x4af60f
inc ecx
add eax, 0x40
cmp ecx, 0x64
jl 0x4af5e0
or eax, 0xffffffff
mov dword [edi + 0x1f8], eax
jmp case.default.0x4af0c5
mov eax, dword [eax + 0x2026ba4]
jmp 0x4af5ce
mov eax, dword [eax + 0x2026ba4]
mov dword [edi + 0x1f8], eax
jmp case.default.0x4af0c5
mov dword [ebx], 0xffffffff
or eax, 0xffffffff
mov dword [edi + 0x1f8], eax
jmp case.default.0x4af0c5
mov dword [edi + 8], 0xf
jmp 0x4af239
mov dword [edi + 8], 0x10
mov dword [edi + 0x1d0], 0
jmp case.default.0x4af0c5
cmp dword [edi + 0x1d4], 0
lea eax, [ebp + 8]
push eax
lea eax, [ebp - 0x18]
mov dword [edi + 8], 0x11
mov dword [edi + 0xc], 0xffffffff
mov ecx, 0xa9b83c
mov dword [edi + 0x1d0], 0
mov dword [edi + 0x1d8], 0
push eax
jne 0x4af6bf
mov dword [ebp + 8], 0x157
call fcn.00405650
mov eax, dword [ebp - 0x10]
mov ecx, dword [0xa9b83c]
cmp byte [eax + 0xd], 0
jne 0x4af6b2
cmp dword [eax + 0x10], 0x157
jle 0x4af6b4
mov eax, ecx
cmp eax, ecx
jne 0x4af719
push 0x157
jmp 0x4af6ee
mov dword [ebp + 8], 0x155
call fcn.00405650
mov eax, dword [ebp - 0x10]
mov ecx, dword [0xa9b83c]
cmp byte [eax + 0xd], 0
jne 0x4af6e3
cmp dword [eax + 0x10], 0x155
jle 0x4af6e5
mov eax, ecx
cmp eax, ecx
jne 0x4af719
push 0x155
push str.Could_not_find_message__d_
push 0xa9b7bc
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0xc
mov eax, 0xa9b7bc
push eax
push 0x640234
call fcn.004b1b00
add esp, 8
jmp 0x4af254
add eax, 0x18
push eax
push 0x640234
call fcn.004b1b00
add esp, 8
jmp 0x4af254
cmp dword [edi + 0x1d4], 0
mov dword [edi + 8], 0x12
mov dword [edi + 0x1d0], 0
jne case.default.0x4af0c5
mov esi, 0x9f1b78
nop
cmp dword [esi + 4], 0
je 0x4af762
mov ecx, dword [esi]
mov edx, 0x89
call fcn.00522900
add esi, 0xc
cmp esi, 0x9f1c2c
jl 0x4af750
call fcn.004b0700
mov al, byte [edi + 8]
mov byte [ebp - 0xf], al
lea eax, [ebp - 0x14]
push 6
push eax
mov dword [ebp - 0x14], 0x3d106c1
mov byte [ebp - 0x10], 2
call fcn.004b1bb0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4