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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xfffffff0
push ebx
push esi
push edi
mov dword [ebp - 4], eax
lea edi, [ebp - 4]
mov byte [ebp - 5], 0
mov eax, dword [edi]
mov eax, dword [eax + 0x1d8]
cmp eax, 0x138e
je 0x5a46c9
cmp eax, 0x138c
je 0x5a46c9
cmp eax, 0x1390
je 0x5a46c9
cmp eax, 0x14b0
je 0x5a46c9
cmp eax, 0x1480
je 0x5a46c9
cmp eax, 0x1389
je 0x5a46c9
cmp eax, 0x14af
je 0x5a46c9
cmp eax, 0x14ea
je 0x5a46c9
cmp eax, 0x14eb
je 0x5a46c9
cmp eax, 0x138a
je 0x5a46c9
mov eax, dword [edi]
mov byte [eax + 0x31c], 0
mov eax, dword [0x68fdf8]
mov eax, dword [eax]
cmp eax, dword [edi]
je 0x5a4368
mov eax, dword [edi]
mov eax, dword [eax + 0x358]
cmp dword [eax + 8], 2
jl 0x5a4368
mov eax, dword [edi]
mov byte [eax + 0x31c], 1
mov eax, dword [edi]
mov edx, dword [eax + 0x20]
mov eax, dword [edi]
sub edx, dword [eax + 0x24]
mov eax, dword [edi]
mov si, 0xfff4
call fcn.00404524
mov eax, dword [edi]
mov edx, dword [eax + 0x20]
mov eax, dword [edi]
sub edx, dword [eax + 0x24]
mov eax, dword [edi]
mov si, 0xfff3
call fcn.00404524
mov eax, dword [edi]
mov ebx, dword [eax + 0x20]
mov eax, dword [edi]
cmp dword [eax + 0x1d8], 0
je 0x5a463f
mov edx, dword [edi]
mov edx, dword [edx + 0x24]
mov eax, dword [edi]
mov eax, dword [eax + 0x20]
cmp edx, eax
jg 0x5a43bb
mov ecx, dword [edi]
cmp eax, dword [ecx + 0x28]
jle 0x5a43c0
mov eax, dword [edi]
mov dword [eax + 0x20], edx
mov eax, dword [0x68fdf8]
mov eax, dword [eax]
cmp eax, dword [edi]
je 0x5a43fa
mov eax, dword [edi]
cmp byte [eax + 0x154], 0
je 0x5a43fa
mov eax, dword [edi]
mov eax, dword [eax + 0x308]
mov dword [ebp - 0x10], eax
xor eax, eax
mov dword [ebp - 0xc], eax
fild qword [ebp - 0x10]
fld xword [0x5a46d4]
fdivp st(1)
call fcn.004034f8
mov esi, eax
jmp 0x5a4431
mov eax, dword [edi]
cmp byte [eax + 0x31c], 0
je 0x5a4429
mov eax, dword [edi]
mov eax, dword [eax + 0x308]
add eax, eax
mov dword [ebp - 0x10], eax
xor eax, eax
mov dword [ebp - 0xc], eax
fild qword [ebp - 0x10]
fdiv dword [0x5a46e0]
call fcn.004034f8
mov esi, eax
jmp 0x5a4431
mov eax, dword [edi]
mov esi, dword [eax + 0x308]
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [edi]
sub eax, dword [edx + 0x30c]
cmp esi, eax
jae 0x5a4606
mov eax, dword [edi]
mov eax, dword [eax + 0x20]
mov edx, dword [edi]
cmp eax, dword [edx + 0x28]
jge 0x5a44ff
mov eax, dword [edi]
cmp byte [eax + 0x154], 0
je 0x5a44eb
mov eax, dword [edi]
mov eax, dword [eax + 0x17c]
mov edx, dword [edi]
mov edx, dword [edx + 0x184]
sub edx, 2
cmp eax, edx
je 0x5a4487
push ebp
call fcn.005a4258
pop ecx
test al, al
je 0x5a44c0
mov eax, dword [edi]
cmp dword [eax + 0x190], 0
jge 0x5a44a1
push ebp
call fcn.005a4258
pop ecx
test al, al
je 0x5a4566
mov eax, dword [edi]
inc dword [eax + 0x20]
mov eax, dword [edi]
inc dword [eax + 0x17c]
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [edi]
mov dword [edx + 0x30c], eax
jmp 0x5a4566
mov eax, dword [edi]
mov eax, dword [eax + 0x20]
mov edx, dword [edi]
mov edx, dword [edx + 0x28]
dec edx
cmp eax, edx
jge 0x5a44d4
mov eax, dword [edi]
inc dword [eax + 0x20]
mov eax, dword [edi]
inc dword [eax + 0x17c]
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [edi]
mov dword [edx + 0x30c], eax
jmp 0x5a4566
mov eax, dword [edi]
inc dword [eax + 0x20]
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [edi]
mov dword [edx + 0x30c], eax
jmp 0x5a4566
mov eax, dword [edi]
cmp byte [eax + 0x50], 0
je 0x5a450d
mov eax, dword [edi]
mov byte [eax + 0x4f], 1
mov eax, dword [0x68fdf8]
mov eax, dword [eax]
cmp eax, dword [edi]
jne 0x5a4548
mov eax, dword [0x68fc2c]
mov eax, dword [eax]
call fcn.0050d890
test al, al
je 0x5a4566
mov eax, dword [edi]
mov si, 0xfff2
call fcn.00404524
mov eax, dword [edi]
xor edx, edx
mov dword [eax + 0x1d8], edx
mov eax, dword [edi]
mov byte [eax + 0x154], 0
jmp 0x5a4566
mov eax, dword [edi]
mov si, 0xfff2
call fcn.00404524
mov eax, dword [edi]
xor edx, edx
mov dword [eax + 0x1d8], edx
mov eax, dword [edi]
mov byte [eax + 0x154], 0
mov eax, dword [edi]
cmp byte [eax + 0x154], 0
je 0x5a4606
mov eax, dword [edi]
mov eax, dword [eax + 0x17c]
mov edx, dword [edi]
mov edx, dword [edx + 0x184]
dec edx
cmp eax, edx
jne 0x5a4606
mov eax, dword [edi]
cmp dword [eax + 0x190], 0
jle 0x5a45fc
mov eax, dword [edi]
add eax, 0x190
mov edx, dword [eax + 0x10]
push edx
mov edx, dword [edi]
mov edx, dword [edx + 0xc]
push edx
mov edx, dword [edi]
mov edx, dword [edx + 0x10]
push edx
mov edx, dword [eax + 0x14]
push edx
mov edx, dword [eax + 0x18]
push edx
mov edx, dword [eax + 8]
push edx
movzx edx, byte [eax + 0xc]
push edx
movzx edx, byte [eax + 0x1c]
push edx
mov edx, dword [eax + 0x20]
push edx
lea edx, [ebp - 6]
push edx
mov ecx, dword [eax]
mov eax, dword [0x68f6f8]
mov eax, dword [eax]
mov edx, dword [edi]
call fcn.0052a2e4
cmp byte [ebp - 6], 0
je 0x5a45ef
mov eax, dword [edi]
mov eax, dword [eax + 0x24c]
call fcn.005b09a8
jmp 0x5a45fc
mov eax, dword [edi]
mov eax, dword [eax + 0x250]
call fcn.005b09a8
mov eax, dword [edi]
xor edx, edx
mov dword [eax + 0x190], edx
mov eax, dword [edi]
movzx eax, word [eax + 0x3a]
sub ax, 2
jb 0x5a4618
sub ax, 0x29
jne 0x5a4626
mov eax, dword [edi]
mov dword [eax + 0x324], 0xfffffff6
jmp 0x5a4630
mov eax, dword [edi]
xor edx, edx
mov dword [eax + 0x324], edx
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [edi]
mov dword [edx + 0x328], eax
jmp 0x5a46a6
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [edi]
sub eax, dword [edx + 0x338]
cmp eax, 0xc8
jbe 0x5a46a6
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [edi]
sub eax, dword [edx + 0x328]
mov edx, dword [edi]
cmp eax, dword [edx + 0x32c]
jbe 0x5a469b
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [edi]
mov dword [edx + 0x328], eax
mov eax, dword [edi]
inc dword [eax + 0x324]
mov eax, dword [edi]
mov eax, dword [eax + 0x324]
mov edx, dword [edi]
cmp eax, dword [edx + 0x330]
jl 0x5a469b
mov eax, dword [edi]
xor edx, edx
mov dword [eax + 0x324], edx
mov eax, dword [edi]
mov si, 0xfffe
call fcn.00404524
mov eax, dword [edi]
cmp ebx, dword [eax + 0x20]
je 0x5a46c9
call sub.kernel32.dll_GetTickCount_1
mov edx, dword [edi]
mov dword [edx + 0x258], eax
mov eax, dword [edi]
mov si, 0xfff0
call fcn.00404524
mov byte [ebp - 5], 1
movzx eax, byte [ebp - 5]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret