Function at 0x5a0f58
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 0x5a0fa5
mov byte [esp + 4], 1
call sub.kernel32.dll_GetTickCount
sub eax, dword [esi + 0x378]
movzx edx, word [0x684a4a]
cmp eax, edx
jb 0x5a14af
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 0x5a0fc0
cmp eax, 0x14eb
jne 0x5a0fc2
mov bl, 1
mov eax, dword [esi + 0x22c]
cmp eax, 0x1389
je 0x5a0feb
cmp eax, 0x14af
je 0x5a0feb
cmp eax, 0x14ea
je 0x5a0feb
cmp eax, 0x138a
je 0x5a0feb
cmp eax, 0x14eb
jne 0x5a0ff0
mov byte [esp + 0xc], 1
mov eax, dword [0x688a9c]
cmp esi, dword [eax]
jne 0x5a10bb
test bl, bl
jne 0x5a10bb
cmp byte [esp + 0xc], 0
jne 0x5a10bb
mov eax, dword [0x688478]
mov byte [eax], 0
mov eax, dword [0x688a94]
mov byte [eax], 0
mov eax, dword [0x689064]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x688478]
cmp byte [eax], 0
je 0x5a104d
mov eax, dword [0x689064]
mov eax, dword [eax]
cmp eax, dword [esi + 0x3a0]
jle 0x5a104d
inc dword [esi + 0x3a0]
jmp 0x5a14af
xor eax, eax
mov dword [esi + 0x3a0], eax
mov eax, dword [esi + 0x22c]
cmp eax, 0x138e
je 0x5a108c
cmp eax, 0x138c
je 0x5a108c
cmp eax, 0x1390
je 0x5a108c
cmp eax, 0x14b0
je 0x5a108c
cmp eax, 0x1480
je 0x5a108c
cmp eax, 0x1389
je 0x5a108c
cmp eax, 0x138a
jne 0x5a10bb
mov eax, dword [esi + 0x35c]
sub eax, dword [esi + 0x354]
dec eax
je 0x5a10a2
sub eax, 3
je 0x5a10af
jmp 0x5a10bb
mov eax, dword [esi + 0x260]
call fcn.005ac880
jmp 0x5a10bb
mov eax, dword [esi + 0x260]
inc eax
call fcn.005ac880
mov byte [esp + 4], 0
mov byte [esi + 0x388], 0
mov eax, dword [0x688a9c]
cmp esi, dword [eax]
je 0x5a10e3
mov eax, dword [esi + 0x3c4]
cmp dword [eax + 8], 2
jl 0x5a10e3
mov byte [esi + 0x388], 1
mov edi, dword [esi + 0x35c]
mov eax, dword [esi + 0x22c]
cmp eax, 0x138e
je 0x5a1132
cmp eax, 0x1390
je 0x5a1132
cmp eax, 0x14b0
je 0x5a1132
cmp eax, 0x1480
je 0x5a1132
cmp eax, 0x1389
je 0x5a1132
cmp eax, 0x14af
je 0x5a1132
cmp eax, 0x14ea
je 0x5a1132
cmp eax, 0x14eb
je 0x5a1132
cmp eax, 0x138a
jne 0x5a1300
mov edx, dword [esi + 0x354]
mov eax, dword [esi + 0x35c]
cmp edx, eax
jg 0x5a114a
cmp eax, dword [esi + 0x358]
jle 0x5a1151
dec edx
mov dword [esi + 0x35c], edx
mov eax, dword [esi + 0x35c]
cmp eax, dword [esi + 0x358]
jge 0x5a11bc
inc dword [esi + 0x35c]
cmp byte [esi + 0x388], 0
je 0x5a1189
cmp byte [esp + 0xc], 0
jne 0x5a1189
mov eax, dword [esi + 0x35c]
cmp eax, dword [esi + 0x358]
jge 0x5a1189
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.0059de70
mov eax, dword [esi + 0x35c]
cmp eax, dword [esi + 0x358]
jl 0x5a1219
mov eax, dword [0x688a9c]
cmp esi, dword [eax]
jne 0x5a11ff
mov eax, dword [0x6888d0]
mov eax, dword [eax]
call fcn.0050d734
test al, al
je 0x5a1219
xor eax, eax
mov dword [esi + 0x22c], eax
mov byte [esi + 0x248], 1
call sub.kernel32.dll_GetTickCount
mov dword [esi + 0x3a4], eax
jmp 0x5a1219
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 0x5a122d
cmp eax, 0x14af
jne 0x5a124e
mov eax, dword [0x688a9c]
cmp esi, dword [eax]
jne 0x5a124e
call sub.kernel32.dll_GetTickCount
mov edx, dword [0x6882e4]
mov dword [edx], eax
mov eax, dword [0x68880c]
mov dword [eax], 0x12c
cmp dword [esi + 0x22c], 0x138a
jne 0x5a129e
mov eax, dword [esi + 0x358]
sub eax, 3
cmp eax, dword [esi + 0x35c]
jg 0x5a129e
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 0x5a12fb
mov eax, dword [esi + 0x358]
sub eax, 3
cmp eax, dword [esi + 0x35c]
jne 0x5a12fb
mov eax, dword [esi + 0x10]
push eax
mov eax, dword [0x6889f8]
mov eax, dword [eax]
push eax
push 0xdc
push 0xa
movzx eax, word [0x6849dc]
push eax
push 1
mov ecx, dword [esi + 0xc]
mov dl, 1
mov eax, dword [0x5ad924]
call fcn.005b039c
mov edx, eax
mov eax, dword [0x688350]
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 0x5a1407
mov edx, dword [esi + 0x358]
mov eax, dword [esi + 0x35c]
cmp edx, eax
jl 0x5a1329
cmp eax, dword [esi + 0x354]
jge 0x5a1330
inc edx
mov dword [esi + 0x35c], edx
mov eax, dword [esi + 0x35c]
cmp eax, dword [esi + 0x354]
jle 0x5a1398
dec dword [esi + 0x35c]
or bl, byte [esi + 0x388]
je 0x5a1360
mov eax, dword [esi + 0x35c]
cmp eax, dword [esi + 0x354]
jle 0x5a1360
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.005b2644
mov edx, eax
mov ecx, dword [esi + 0x384]
mov eax, esi
call fcn.0059de70
mov eax, dword [esi + 0x35c]
cmp eax, dword [esi + 0x354]
jg 0x5a13fd
mov eax, dword [0x688a9c]
cmp esi, dword [eax]
jne 0x5a13e3
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 [0x6882e4]
mov dword [edx], eax
mov eax, dword [0x68880c]
mov dword [eax], 0x64
jmp 0x5a13fd
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 0x5a148b
cmp eax, 0x14eb
jne 0x5a148b
mov edx, dword [esi + 0x358]
mov eax, dword [esi + 0x35c]
cmp edx, eax
jl 0x5a1426
cmp eax, dword [esi + 0x354]
jge 0x5a142d
inc edx
mov dword [esi + 0x35c], edx
mov eax, dword [esi + 0x35c]
cmp eax, dword [esi + 0x354]
jle 0x5a145d
dec dword [esi + 0x35c]
or bl, byte [esi + 0x388]
je 0x5a145d
mov eax, dword [esi + 0x35c]
cmp eax, dword [esi + 0x354]
jle 0x5a145d
dec dword [esi + 0x35c]
mov eax, dword [esi + 0x35c]
cmp eax, dword [esi + 0x354]
jg 0x5a1486
mov eax, dword [0x688a9c]
cmp esi, dword [eax]
jne 0x5a147e
xor eax, eax
mov dword [esi + 0x22c], eax
jmp 0x5a1486
xor eax, eax
mov dword [esi + 0x22c], eax
mov byte [esp + 4], 1
cmp edi, dword [esi + 0x35c]
je 0x5a14af
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