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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffffdc
push ebx
push esi
push edi
mov esi, edx
lea edi, [ebp - 0x20]
mov ecx, 8
rep movsd dword es:[edi], dword [esi]
mov ebx, eax
lea eax, [ebp - 0x20]
mov edx, dword [0x47fd84]
call fcn.004061c8
xor eax, eax
push ebp
push 0x5a16f8
push dword fs:[eax]
mov dword fs:[eax], esp
mov eax, dword [ebx + 0xc]
mov dword [ebx + 0x34c], eax
mov eax, dword [ebx + 0x10]
mov dword [ebx + 0x350], eax
cmp dword [ebp - 0x20], 0x139e
jne 0x5a1076
mov byte [ebx + 0x4d], 0
mov byte [ebx + 0x4e], 0
cmp byte [ebx + 0x4d], 0
jne 0x5a168f
mov eax, dword [ebp - 0x20]
cmp eax, 0x139e
jg 0x5a10a6
je 0x5a10bd
add eax, 0xffffec77
sub eax, 2
jb 0x5a10bd
dec eax
sub eax, 3
jb 0x5a10bd
dec eax
je 0x5a10bd
sub eax, 7
je 0x5a10bd
jmp 0x5a10dd
sub eax, 0x1480
je 0x5a10bd
add eax, 0xffffffd1
sub eax, 2
jb 0x5a10bd
add eax, 0xffffffc7
sub eax, 2
jae 0x5a10dd
mov eax, dword [ebp - 0xc]
mov dword [ebx + 0x40], eax
mov eax, dword [ebp - 0x10]
mov dword [ebx + 0x48], eax
test al, 1
je 0x5a10d6
mov byte [ebx + 0x1b8], 1
jmp 0x5a10dd
mov byte [ebx + 0x1b8], 0
mov eax, dword [0x68fdf8]
cmp ebx, dword [eax]
jne 0x5a158c
cmp dword [ebp - 0x20], 2
jne 0x5a110a
mov eax, dword [0x68f6f8]
mov eax, dword [eax]
mov ecx, dword [ebp - 0x18]
mov edx, dword [ebp - 0x1c]
call fcn.0052c684
test al, al
je 0x5a16dc
cmp dword [ebp - 0x20], 4
jne 0x5a1140
mov eax, dword [ebp - 0x1c]
push eax
mov eax, dword [ebp - 0x18]
push eax
mov eax, dword [0x68fdf8]
mov eax, dword [eax]
mov ecx, dword [eax + 0x10]
mov eax, dword [0x68fdf8]
mov eax, dword [eax]
mov edx, dword [eax + 0xc]
mov eax, dword [0x68f6f8]
mov eax, dword [eax]
call fcn.0052c39c
test al, al
je 0x5a16dc
cmp dword [ebp - 0x20], 5
jne 0x5a1176
mov eax, dword [ebp - 0x1c]
push eax
mov eax, dword [ebp - 0x18]
push eax
mov eax, dword [0x68fdf8]
mov eax, dword [eax]
mov ecx, dword [eax + 0x10]
mov eax, dword [0x68fdf8]
mov eax, dword [eax]
mov edx, dword [eax + 0xc]
mov eax, dword [0x68f6f8]
mov eax, dword [eax]
call fcn.0052c234
test al, al
je 0x5a16dc
mov eax, dword [ebp - 0x20]
cmp eax, 0xd
jg 0x5a11c8
je 0x5a1435
cmp eax, 0xc
ja case.0x5a11df.15
jmp dword [eax*4 + 0x5a1194]
cmp eax, 0x14
jg 0x5a11fe
je 0x5a14f2
add eax, 0xfffffff2
cmp eax, 5
ja case.0x5a11df.15
jmp dword [eax*4 + 0x5a11e6]
cmp eax, 0x18
jg 0x5a121e
je 0x5a1549
sub eax, 0x15
je 0x5a150f
dec eax
je 0x5a152c
jmp case.0x5a11df.15
sub eax, 0x48
je 0x5a13eb
sub eax, 0x3f
je 0x5a1395
jmp case.0x5a11df.15
lea eax, [ebx + 0x35c]
lea edx, [ebp - 0x20]
mov ecx, dword [0x47fd84]
call fcn.004062e8
mov dword [ebp - 0x20], 0x138d
jmp case.0x5a11df.15
lea eax, [ebx + 0x35c]
lea edx, [ebp - 0x20]
mov ecx, dword [0x47fd84]
call fcn.004062e8
mov dword [ebp - 0x20], 0x138e
jmp case.0x5a11df.15
lea eax, [ebx + 0x35c]
lea edx, [ebp - 0x20]
mov ecx, dword [0x47fd84]
call fcn.004062e8
mov dword [ebp - 0x20], 0x138f
jmp case.0x5a11df.15
lea eax, [ebx + 0x35c]
lea edx, [ebp - 0x20]
mov ecx, dword [0x47fd84]
call fcn.004062e8
mov dword [ebp - 0x20], 0x1390
jmp case.0x5a11df.15
lea eax, [ebx + 0x35c]
lea edx, [ebp - 0x20]
mov ecx, dword [0x47fd84]
call fcn.004062e8
mov dword [ebp - 0x20], 0x14b0
jmp case.0x5a11df.15
lea eax, [ebx + 0x35c]
lea edx, [ebp - 0x20]
mov ecx, dword [0x47fd84]
call fcn.004062e8
mov dword [ebp - 0x20], 0x1391
jmp case.0x5a11df.15
lea eax, [ebx + 0x35c]
lea edx, [ebp - 0x20]
mov ecx, dword [0x47fd84]
call fcn.004062e8
mov dword [ebp - 0x20], 0x1392
jmp case.0x5a11df.15
lea eax, [ebx + 0x35c]
lea edx, [ebp - 0x20]
mov ecx, dword [0x47fd84]
call fcn.004062e8
mov dword [ebp - 0x20], 0x1393
jmp case.0x5a11df.15
lea eax, [ebx + 0x35c]
lea edx, [ebp - 0x20]
mov ecx, dword [0x47fd84]
call fcn.004062e8
mov dword [ebp - 0x20], 0x1395
jmp case.0x5a11df.15
lea eax, [ebx + 0x35c]
lea edx, [ebp - 0x20]
mov ecx, dword [0x47fd84]
call fcn.004062e8
mov dword [ebp - 0x20], 0x1396
jmp case.0x5a11df.15
lea eax, [ebx + 0x35c]
lea edx, [ebp - 0x20]
mov ecx, dword [0x47fd84]
call fcn.004062e8
mov dword [ebp - 0x20], 0x139b
jmp case.0x5a11df.15
lea eax, [ebx + 0x35c]
lea edx, [ebp - 0x20]
mov ecx, dword [0x47fd84]
call fcn.004062e8
mov eax, dword [0x68f998]
cmp byte [eax], 0
je 0x5a13bf
mov dword [ebp - 0x20], 0x14e8
jmp case.0x5a11df.15
mov dword [ebp - 0x20], 0x14e9
jmp case.0x5a11df.15
lea eax, [ebx + 0x35c]
lea edx, [ebp - 0x20]
mov ecx, dword [0x47fd84]
call fcn.004062e8
mov dword [ebp - 0x20], 0x1480
jmp case.0x5a11df.15
cmp dword [ebx + 0x40], 0
je 0x5a1415
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0xc]
mov dword [ebx + 0x128], eax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 0x10]
mov dword [ebx + 0x12c], eax
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 4]
mov dword [ebx + 0x130], eax
lea eax, [ebx + 0x35c]
lea edx, [ebp - 0x20]
mov ecx, dword [0x47fd84]
call fcn.004062e8
mov dword [ebp - 0x20], 0x147b
jmp case.0x5a11df.15
lea eax, [ebx + 0x35c]
lea edx, [ebp - 0x20]
mov ecx, dword [0x47fd84]
call fcn.004062e8
mov dword [ebp - 0x20], 0x138b
jmp case.0x5a11df.15
lea eax, [ebx + 0x35c]
lea edx, [ebp - 0x20]
mov ecx, dword [0x47fd84]
call fcn.004062e8
mov dword [ebp - 0x20], 0x139c
jmp case.0x5a11df.15
lea eax, [ebx + 0x35c]
lea edx, [ebp - 0x20]
mov ecx, dword [0x47fd84]
call fcn.004062e8
mov dword [ebp - 0x20], 0x139d
jmp case.0x5a11df.15
lea eax, [ebx + 0x35c]
lea edx, [ebp - 0x20]
mov ecx, dword [0x47fd84]
call fcn.004062e8
mov dword [ebp - 0x20], 0x14a9
jmp case.0x5a11df.15
lea eax, [ebx + 0x35c]
lea edx, [ebp - 0x20]
mov ecx, dword [0x47fd84]
call fcn.004062e8
mov dword [ebp - 0x20], 0x14aa
jmp case.0x5a11df.15
lea eax, [ebx + 0x35c]
lea edx, [ebp - 0x20]
mov ecx, dword [0x47fd84]
call fcn.004062e8
mov dword [ebp - 0x20], 0x14ab
jmp case.0x5a11df.15
lea eax, [ebx + 0x35c]
lea edx, [ebp - 0x20]
mov ecx, dword [0x47fd84]
call fcn.004062e8
mov dword [ebp - 0x20], 0x14ac
jmp case.0x5a11df.15
lea eax, [ebx + 0x35c]
lea edx, [ebp - 0x20]
mov ecx, dword [0x47fd84]
call fcn.004062e8
mov dword [ebp - 0x20], 0x14ad
jmp case.0x5a11df.15
lea eax, [ebx + 0x35c]
lea edx, [ebp - 0x20]
mov ecx, dword [0x47fd84]
call fcn.004062e8
mov dword [ebp - 0x20], 0x14ae
jmp case.0x5a11df.15
lea eax, [ebx + 0x35c]
lea edx, [ebp - 0x20]
mov ecx, dword [0x47fd84]
call fcn.004062e8
mov eax, dword [ebp - 0xc]
mov eax, dword [eax + 4]
mov dword [ebx + 0x368], eax
mov dword [ebp - 0x20], 0x1394
mov eax, dword [ebx + 0xc]
mov dword [ebx + 0x340], eax
mov eax, dword [ebx + 0x10]
mov dword [ebx + 0x344], eax
movzx eax, byte [ebx + 0x14]
mov dword [ebx + 0x348], eax
mov eax, dword [ebp - 0x20]
sub eax, 0x1394
je 0x5a15e5
sub eax, 0xe
jne 0x5a162a
mov eax, dword [ebp - 0x1c]
mov dword [ebx + 0x200], eax
movzx eax, word [ebx + 0x71]
lea eax, [eax + eax*4]
mov edx, 0xc8
sub edx, eax
mov dword [ebp - 0x24], edx
fild dword [ebp - 0x24]
call fcn.004034f8
cmp eax, 0x50
jle 0x5a15ce
mov dword [ebx + 0x320], eax
jmp 0x5a15d8
mov dword [ebx + 0x320], 0x50
call sub.kernel32.dll_GetTickCount_1
mov dword [ebx + 0x1f4], eax
jmp 0x5a1657
movzx eax, byte [ebp - 0x14]
mov byte [ebx + 0x14], al
mov eax, dword [ebp - 0xc]
test eax, eax
je 0x5a1657
mov esi, eax
lea edi, [ebx + 0x190]
mov ecx, 9
rep movsd dword es:[edi], dword [esi]
mov dword [ebx + 0x190], 0xffffffff
mov edx, dword [ebp - 0x1c]
mov dword [ebx + 0x1a4], edx
mov edx, dword [ebp - 0x18]
mov dword [ebx + 0x1a8], edx
mov edx, 0x24
call fcn.00402f9c
jmp 0x5a1657
mov eax, dword [ebp - 0x1c]
test eax, eax
je 0x5a1657
cmp dword [ebp - 0x18], 0
je 0x5a1657
cmp eax, 0x3e8
jge 0x5a1657
cmp dword [ebp - 0x18], 0x3e8
jge 0x5a1657
mov dword [ebx + 0xc], eax
mov eax, dword [ebp - 0x18]
mov dword [ebx + 0x10], eax
movzx eax, byte [ebp - 0x14]
mov byte [ebx + 0x14], al
mov eax, dword [ebp - 0x20]
cmp eax, 0x14af
je 0x5a1668
cmp eax, 0x138c
jne 0x5a1679
movzx eax, byte [ebp - 0x14]
mov byte [ebx + 0x14], al
movzx eax, word [ebp - 0x14]
shr eax, 8
mov byte [ebx + 0x4c], al
mov eax, dword [ebp - 0x20]
mov dword [ebx + 0x1d8], eax
mov eax, ebx
mov si, 0xffff
call fcn.00404524
jmp 0x5a16ae
mov eax, dword [ebp - 0x20]
cmp eax, 0x13a4
jne 0x5a16ae
mov dword [ebx + 0x1d8], eax
mov eax, ebx
mov si, 0xffff
call fcn.00404524
mov byte [ebx + 0x4e], 1
mov eax, dword [ebp - 0x20]
cmp eax, 0x13a3
je 0x5a16bf
cmp eax, 0x13a5
jne 0x5a16d1
mov byte [ebx + 0x4d], 1
mov eax, dword [0x68f6f8]
mov eax, dword [eax]
mov edx, ebx
call fcn.0052d9f0
mov eax, ebx
mov si, 0xfff5
call fcn.00404524
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x5a16ff
lea eax, [ebp - 0x20]
mov edx, dword [0x47fd84]
call fcn.00406084
ret