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

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xfffffff8
mov dword [esp], ecx
mov esi, eax
xor ebx, ebx
mov eax, dword [esp]
mov byte [eax], 0
cmp dword [esi + 0x1d8], 0x14af
jne 0x5a472b
mov bl, 1
call sub.kernel32.dll_GetTickCount_1
sub eax, dword [esi + 0x30c]
movzx edx, word [0x68bd22]
cmp eax, edx
jb 0x5a4b95
call sub.kernel32.dll_GetTickCount_1
mov dword [esi + 0x30c], eax
mov byte [esp + 4], 0
mov byte [esp + 5], 0
mov eax, dword [esi + 0x1d8]
cmp eax, 0x138c
je 0x5a4749
cmp eax, 0x14eb
jne 0x5a474e
mov byte [esp + 4], 1
mov eax, dword [esi + 0x1d8]
cmp eax, 0x1389
je 0x5a4777
cmp eax, 0x14af
je 0x5a4777
cmp eax, 0x14ea
je 0x5a4777
cmp eax, 0x138a
je 0x5a4777
cmp eax, 0x14eb
jne 0x5a477c
mov byte [esp + 5], 1
mov eax, dword [0x68fdf8]
cmp esi, dword [eax]
jne 0x5a4844
cmp byte [esp + 4], 0
jne 0x5a4844
cmp byte [esp + 5], 0
jne 0x5a4844
mov eax, dword [0x68f808]
mov byte [eax], 0
mov eax, dword [0x68fdf0]
mov byte [eax], 0
mov eax, dword [0x690344]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x68f808]
cmp byte [eax], 0
je 0x5a47dc
mov eax, dword [0x690344]
mov eax, dword [eax]
cmp eax, dword [esi + 0x334]
jle 0x5a47dc
inc dword [esi + 0x334]
jmp 0x5a4b95
xor eax, eax
mov dword [esi + 0x334], eax
mov eax, dword [esi + 0x1d8]
cmp eax, 0x138e
je 0x5a481b
cmp eax, 0x138c
je 0x5a481b
cmp eax, 0x1390
je 0x5a481b
cmp eax, 0x14b0
je 0x5a481b
cmp eax, 0x1480
je 0x5a481b
cmp eax, 0x1389
je 0x5a481b
cmp eax, 0x138a
jne 0x5a4844
mov eax, dword [esi + 0x20]
sub eax, dword [esi + 0x24]
dec eax
je 0x5a482b
sub eax, 3
je 0x5a4838
jmp 0x5a4844
mov eax, dword [esi + 0x208]
call fcn.005b09a8
jmp 0x5a4844
mov eax, dword [esi + 0x208]
inc eax
call fcn.005b09a8
xor ebx, ebx
mov byte [esi + 0x31c], 0
mov eax, dword [0x68fdf8]
cmp esi, dword [eax]
je 0x5a4869
mov eax, dword [esi + 0x358]
cmp dword [eax + 8], 2
jl 0x5a4869
mov byte [esi + 0x31c], 1
mov edi, dword [esi + 0x20]
mov eax, dword [esi + 0x1d8]
cmp eax, 0x138e
je 0x5a48b5
cmp eax, 0x1390
je 0x5a48b5
cmp eax, 0x14b0
je 0x5a48b5
cmp eax, 0x1480
je 0x5a48b5
cmp eax, 0x1389
je 0x5a48b5
cmp eax, 0x14af
je 0x5a48b5
cmp eax, 0x14ea
je 0x5a48b5
cmp eax, 0x14eb
je 0x5a48b5
cmp eax, 0x138a
jne 0x5a4a3f
mov edx, dword [esi + 0x24]
mov eax, dword [esi + 0x20]
cmp edx, eax
jg 0x5a48c4
cmp eax, dword [esi + 0x28]
jle 0x5a48c8
dec edx
mov dword [esi + 0x20], edx
mov eax, dword [esi + 0x20]
cmp eax, dword [esi + 0x28]
jge 0x5a4910
inc dword [esi + 0x20]
cmp byte [esi + 0x31c], 0
je 0x5a48ee
cmp byte [esp + 5], 0
jne 0x5a48ee
mov eax, dword [esi + 0x20]
cmp eax, dword [esi + 0x28]
jge 0x5a48ee
inc dword [esi + 0x20]
mov ebx, dword [esi + 0x20]
mov eax, dword [esi + 0x24]
sub ebx, eax
inc ebx
mov ebp, dword [esi + 0x28]
sub ebp, eax
inc ebp
push ebx
push ebp
movzx edx, byte [esi + 0x14]
mov ecx, dword [esi + 0x318]
mov eax, esi
call fcn.005a1de0
mov eax, dword [esi + 0x20]
cmp eax, dword [esi + 0x28]
jl 0x5a4967
mov eax, dword [0x68fdf8]
cmp esi, dword [eax]
jne 0x5a494d
mov eax, dword [0x68fc2c]
mov eax, dword [eax]
call fcn.0050d890
test al, al
je 0x5a4967
xor eax, eax
mov dword [esi + 0x1d8], eax
mov byte [esi + 0x1f0], 1
call sub.kernel32.dll_GetTickCount_1
mov dword [esi + 0x338], eax
jmp 0x5a4967
xor eax, eax
mov dword [esi + 0x1d8], eax
mov byte [esi + 0x1f0], 1
call sub.kernel32.dll_GetTickCount_1
mov dword [esi + 0x338], eax
mov eax, dword [esi + 0x1d8]
cmp eax, 0x1389
je 0x5a497b
cmp eax, 0x14af
jne 0x5a499c
mov eax, dword [0x68fdf8]
cmp esi, dword [eax]
jne 0x5a499c
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x68f68c]
mov dword [edx], eax
mov eax, dword [0x68fb74]
mov dword [eax], 0x12c
cmp dword [esi + 0x1d8], 0x138a
jne 0x5a49e6
mov eax, dword [esi + 0x28]
sub eax, 3
cmp eax, dword [esi + 0x20]
jg 0x5a49e6
mov eax, dword [esi + 0x34c]
mov dword [esi + 0xc], eax
mov eax, dword [esi + 0x350]
mov dword [esi + 0x10], eax
mov eax, dword [esi + 0xc]
mov dword [esi + 0x11c], eax
mov eax, dword [esi + 0x10]
mov dword [esi + 0x120], eax
xor eax, eax
mov dword [esi + 0x1d8], eax
mov byte [esi + 0x1f0], 1
cmp dword [esi + 0x1d8], 0x14ea
jne 0x5a4a3d
mov eax, dword [esi + 0x28]
sub eax, 3
cmp eax, dword [esi + 0x20]
jne 0x5a4a3d
mov eax, dword [esi + 0x10]
push eax
mov eax, dword [0x68fd5c]
mov eax, dword [eax]
push eax
push 0xdc
push 0xa
movzx eax, word [0x68bcb4]
push eax
push 1
mov ecx, dword [esi + 0xc]
mov dl, 1
mov eax, dword [0x5b1a24]
call fcn.005b3fa0
mov edx, eax
mov eax, dword [0x68f6f8]
mov eax, dword [eax]
mov eax, dword [eax + 0x424]
call fcn.0041b0d8
mov bl, 1
mov eax, dword [esi + 0x1d8]
cmp eax, 0x138c
jne 0x5a4b12
mov edx, dword [esi + 0x28]
mov eax, dword [esi + 0x20]
cmp edx, eax
jl 0x5a4a5f
cmp eax, dword [esi + 0x24]
jge 0x5a4a63
inc edx
mov dword [esi + 0x20], edx
mov eax, dword [esi + 0x20]
cmp eax, dword [esi + 0x24]
jle 0x5a4aaf
dec dword [esi + 0x20]
movzx eax, byte [esi + 0x31c]
or al, byte [esp + 4]
je 0x5a4a86
mov eax, dword [esi + 0x20]
cmp eax, dword [esi + 0x24]
jle 0x5a4a86
dec dword [esi + 0x20]
mov eax, dword [esi + 0x28]
mov ebx, eax
sub ebx, dword [esi + 0x20]
inc ebx
mov ebp, eax
sub ebp, dword [esi + 0x24]
inc ebp
push ebx
push ebp
movzx eax, byte [esi + 0x14]
call fcn.005b5f74
mov edx, eax
mov ecx, dword [esi + 0x318]
mov eax, esi
call fcn.005a1de0
mov eax, dword [esi + 0x20]
cmp eax, dword [esi + 0x24]
jg 0x5a4b0e
mov eax, dword [0x68fdf8]
cmp esi, dword [eax]
jne 0x5a4af4
xor eax, eax
mov dword [esi + 0x1d8], eax
mov byte [esi + 0x1f0], 1
call sub.kernel32.dll_GetTickCount_1
mov dword [esi + 0x338], eax
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [0x68f68c]
mov dword [edx], eax
mov eax, dword [0x68fb74]
mov dword [eax], 0x3e8
jmp 0x5a4b0e
xor eax, eax
mov dword [esi + 0x1d8], eax
mov byte [esi + 0x1f0], 1
call sub.kernel32.dll_GetTickCount_1
mov dword [esi + 0x338], eax
mov bl, 1
jmp 0x5a4b74
cmp eax, 0x14eb
jne 0x5a4b74
mov edx, dword [esi + 0x28]
mov eax, dword [esi + 0x20]
cmp edx, eax
jl 0x5a4b28
cmp eax, dword [esi + 0x24]
jge 0x5a4b2c
inc edx
mov dword [esi + 0x20], edx
mov eax, dword [esi + 0x20]
cmp eax, dword [esi + 0x24]
jle 0x5a4b4f
dec dword [esi + 0x20]
movzx eax, byte [esi + 0x31c]
or al, byte [esp + 4]
je 0x5a4b4f
mov eax, dword [esi + 0x20]
cmp eax, dword [esi + 0x24]
jle 0x5a4b4f
dec dword [esi + 0x20]
mov eax, dword [esi + 0x20]
cmp eax, dword [esi + 0x24]
jg 0x5a4b72
mov eax, dword [0x68fdf8]
cmp esi, dword [eax]
jne 0x5a4b6a
xor eax, eax
mov dword [esi + 0x1d8], eax
jmp 0x5a4b72
xor eax, eax
mov dword [esi + 0x1d8], eax
mov bl, 1
cmp edi, dword [esi + 0x20]
je 0x5a4b95
call sub.kernel32.dll_GetTickCount_1
mov dword [esi + 0x258], eax
mov eax, esi
mov si, 0xfff0
call fcn.00404524
mov eax, dword [esp]
mov byte [eax], 1
mov eax, ebx
pop ecx
pop edx
pop ebp
pop edi
pop esi
pop ebx
ret