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

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xfffffff0
mov dword [esp], ecx
mov esi, eax
mov byte [esp + 4], 0
mov eax, dword [esp]
mov byte [eax], 0
cmp dword [esi + 0x22c], 0x14af
jne 0x5a7a75
mov byte [esp + 4], 1
call sub.kernel32.dll_GetTickCount
sub eax, dword [esi + 0x378]
movzx edx, word [0x68aa66]
cmp eax, edx
jb 0x5a7f7f
call sub.kernel32.dll_GetTickCount
mov dword [esi + 0x378], eax
xor ebx, ebx
mov byte [esp + 0xc], 0
mov eax, dword [esi + 0x22c]
cmp eax, 0x138c
je 0x5a7a90
cmp eax, 0x14eb
jne 0x5a7a92
mov bl, 1
mov eax, dword [esi + 0x22c]
cmp eax, 0x1389
je 0x5a7abb
cmp eax, 0x14af
je 0x5a7abb
cmp eax, 0x14ea
je 0x5a7abb
cmp eax, 0x138a
je 0x5a7abb
cmp eax, 0x14eb
jne 0x5a7ac0
mov byte [esp + 0xc], 1
mov eax, dword [0x68eab8]
cmp esi, dword [eax]
jne 0x5a7b8b
test bl, bl
jne 0x5a7b8b
cmp byte [esp + 0xc], 0
jne 0x5a7b8b
mov eax, dword [0x68e494]
mov byte [eax], 0
mov eax, dword [0x68eab0]
mov byte [eax], 0
mov eax, dword [0x68f084]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x68e494]
cmp byte [eax], 0
je 0x5a7b1d
mov eax, dword [0x68f084]
mov eax, dword [eax]
cmp eax, dword [esi + 0x3a0]
jle 0x5a7b1d
inc dword [esi + 0x3a0]
jmp 0x5a7f7f
xor eax, eax
mov dword [esi + 0x3a0], eax
mov eax, dword [esi + 0x22c]
cmp eax, 0x138e
je 0x5a7b5c
cmp eax, 0x138c
je 0x5a7b5c
cmp eax, 0x1390
je 0x5a7b5c
cmp eax, 0x14b0
je 0x5a7b5c
cmp eax, 0x1480
je 0x5a7b5c
cmp eax, 0x1389
je 0x5a7b5c
cmp eax, 0x138a
jne 0x5a7b8b
mov eax, dword [esi + 0x35c]
sub eax, dword [esi + 0x354]
dec eax
je 0x5a7b72
sub eax, 3
je 0x5a7b7f
jmp 0x5a7b8b
mov eax, dword [esi + 0x260]
call fcn.005b2460
jmp 0x5a7b8b
mov eax, dword [esi + 0x260]
inc eax
call fcn.005b2460
mov byte [esp + 4], 0
mov byte [esi + 0x388], 0
mov eax, dword [0x68eab8]
cmp esi, dword [eax]
je 0x5a7bb3
mov eax, dword [esi + 0x3c4]
cmp dword [eax + 8], 2
jl 0x5a7bb3
mov byte [esi + 0x388], 1
mov edi, dword [esi + 0x35c]
mov eax, dword [esi + 0x22c]
cmp eax, 0x138e
je 0x5a7c02
cmp eax, 0x1390
je 0x5a7c02
cmp eax, 0x14b0
je 0x5a7c02
cmp eax, 0x1480
je 0x5a7c02
cmp eax, 0x1389
je 0x5a7c02
cmp eax, 0x14af
je 0x5a7c02
cmp eax, 0x14ea
je 0x5a7c02
cmp eax, 0x14eb
je 0x5a7c02
cmp eax, 0x138a
jne 0x5a7dd0
mov edx, dword [esi + 0x354]
mov eax, dword [esi + 0x35c]
cmp edx, eax
jg 0x5a7c1a
cmp eax, dword [esi + 0x358]
jle 0x5a7c21
dec edx
mov dword [esi + 0x35c], edx
mov eax, dword [esi + 0x35c]
cmp eax, dword [esi + 0x358]
jge 0x5a7c8c
inc dword [esi + 0x35c]
cmp byte [esi + 0x388], 0
je 0x5a7c59
cmp byte [esp + 0xc], 0
jne 0x5a7c59
mov eax, dword [esi + 0x35c]
cmp eax, dword [esi + 0x358]
jge 0x5a7c59
inc dword [esi + 0x35c]
mov ebp, dword [esi + 0x35c]
mov eax, dword [esi + 0x354]
sub ebp, eax
inc ebp
mov edx, dword [esi + 0x358]
sub edx, eax
inc edx
mov dword [esp + 8], edx
push ebp
mov eax, dword [esp + 0xc]
push eax
movzx edx, byte [esi + 0x14]
mov ecx, dword [esi + 0x384]
mov eax, esi
call fcn.005a4940
mov eax, dword [esi + 0x35c]
cmp eax, dword [esi + 0x358]
jl 0x5a7ce9
mov eax, dword [0x68eab8]
cmp esi, dword [eax]
jne 0x5a7ccf
mov eax, dword [0x68e8ec]
mov eax, dword [eax]
call fcn.0050e03c
test al, al
je 0x5a7ce9
xor eax, eax
mov dword [esi + 0x22c], eax
mov byte [esi + 0x248], 1
call sub.kernel32.dll_GetTickCount
mov dword [esi + 0x3a4], eax
jmp 0x5a7ce9
xor eax, eax
mov dword [esi + 0x22c], eax
mov byte [esi + 0x248], 1
call sub.kernel32.dll_GetTickCount
mov dword [esi + 0x3a4], eax
mov eax, dword [esi + 0x22c]
cmp eax, 0x1389
je 0x5a7cfd
cmp eax, 0x14af
jne 0x5a7d1e
mov eax, dword [0x68eab8]
cmp esi, dword [eax]
jne 0x5a7d1e
call sub.kernel32.dll_GetTickCount
mov edx, dword [0x68e300]
mov dword [edx], eax
mov eax, dword [0x68e828]
mov dword [eax], 0x12c
cmp dword [esi + 0x22c], 0x138a
jne 0x5a7d6e
mov eax, dword [esi + 0x358]
sub eax, 3
cmp eax, dword [esi + 0x35c]
jg 0x5a7d6e
mov eax, dword [esi + 0x3b8]
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x3bc]
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0xc]
mov dword [esi + 0x150], eax
mov eax, dword [esi + 0x10]
mov dword [esi + 0x154], eax
xor eax, eax
mov dword [esi + 0x22c], eax
mov byte [esi + 0x248], 1
cmp dword [esi + 0x22c], 0x14ea
jne 0x5a7dcb
mov eax, dword [esi + 0x358]
sub eax, 3
cmp eax, dword [esi + 0x35c]
jne 0x5a7dcb
mov eax, dword [esi + 0x10]
push eax
mov eax, dword [0x68ea14]
mov eax, dword [eax]
push eax
push 0xdc
push 0xa
movzx eax, word [0x68a9f8]
push eax
push 1
mov ecx, dword [esi + 0xc]
mov dl, 1
mov eax, dword [0x5b338c]
call fcn.005b5e04
mov edx, eax
mov eax, dword [0x68e36c]
mov eax, dword [eax]
mov eax, dword [eax + 0x428]
call fcn.0041a1b0
mov byte [esp + 4], 1
mov eax, dword [esi + 0x22c]
cmp eax, 0x138c
jne 0x5a7ed7
mov edx, dword [esi + 0x358]
mov eax, dword [esi + 0x35c]
cmp edx, eax
jl 0x5a7df9
cmp eax, dword [esi + 0x354]
jge 0x5a7e00
inc edx
mov dword [esi + 0x35c], edx
mov eax, dword [esi + 0x35c]
cmp eax, dword [esi + 0x354]
jle 0x5a7e68
dec dword [esi + 0x35c]
or bl, byte [esi + 0x388]
je 0x5a7e30
mov eax, dword [esi + 0x35c]
cmp eax, dword [esi + 0x354]
jle 0x5a7e30
dec dword [esi + 0x35c]
mov eax, dword [esi + 0x358]
mov ebp, eax
sub ebp, dword [esi + 0x35c]
inc ebp
sub eax, dword [esi + 0x354]
inc eax
mov dword [esp + 8], eax
push ebp
mov eax, dword [esp + 0xc]
push eax
movzx eax, byte [esi + 0x14]
call fcn.005b80ac
mov edx, eax
mov ecx, dword [esi + 0x384]
mov eax, esi
call fcn.005a4940
mov eax, dword [esi + 0x35c]
cmp eax, dword [esi + 0x354]
jg 0x5a7ecd
mov eax, dword [0x68eab8]
cmp esi, dword [eax]
jne 0x5a7eb3
xor eax, eax
mov dword [esi + 0x22c], eax
mov byte [esi + 0x248], 1
call sub.kernel32.dll_GetTickCount
mov dword [esi + 0x3a4], eax
call sub.kernel32.dll_GetTickCount
mov edx, dword [0x68e300]
mov dword [edx], eax
mov eax, dword [0x68e828]
mov dword [eax], 0x64
jmp 0x5a7ecd
xor eax, eax
mov dword [esi + 0x22c], eax
mov byte [esi + 0x248], 1
call sub.kernel32.dll_GetTickCount
mov dword [esi + 0x3a4], eax
mov byte [esp + 4], 1
jmp 0x5a7f5b
cmp eax, 0x14eb
jne 0x5a7f5b
mov edx, dword [esi + 0x358]
mov eax, dword [esi + 0x35c]
cmp edx, eax
jl 0x5a7ef6
cmp eax, dword [esi + 0x354]
jge 0x5a7efd
inc edx
mov dword [esi + 0x35c], edx
mov eax, dword [esi + 0x35c]
cmp eax, dword [esi + 0x354]
jle 0x5a7f2d
dec dword [esi + 0x35c]
or bl, byte [esi + 0x388]
je 0x5a7f2d
mov eax, dword [esi + 0x35c]
cmp eax, dword [esi + 0x354]
jle 0x5a7f2d
dec dword [esi + 0x35c]
mov eax, dword [esi + 0x35c]
cmp eax, dword [esi + 0x354]
jg 0x5a7f56
mov eax, dword [0x68eab8]
cmp esi, dword [eax]
jne 0x5a7f4e
xor eax, eax
mov dword [esi + 0x22c], eax
jmp 0x5a7f56
xor eax, eax
mov dword [esi + 0x22c], eax
mov byte [esp + 4], 1
cmp edi, dword [esi + 0x35c]
je 0x5a7f7f
call sub.kernel32.dll_GetTickCount
mov dword [esi + 0x2b0], eax
mov eax, esi
mov si, 0xfff0
call fcn.00404528
mov eax, dword [esp]
mov byte [eax], 1
movzx eax, byte [esp + 4]
add esp, 0x10
pop ebp
pop edi
pop esi
pop ebx
ret