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

Disassembly:
push ebx
push esi
push edi
push ebp
add esp, 0xffffff84
mov ebp, eax
mov edi, dword [0x531518]
cmp byte [edi + 0x16e], 0
je 0x527f3d
mov eax, dword [0x531548]
mov eax, dword [eax]
mov eax, dword [eax + 0x52]
movzx edx, word [edi + 0x17e]
cmp eax, edx
jae 0x527f3d
call fcn.00407464
sub eax, dword [edi + 0x186]
movzx edx, word [edi + 0x180]
cmp eax, edx
jb 0x527f3d
call fcn.00407464
mov dword [edi + 0x186], eax
mov eax, dword [0x531548]
mov eax, dword [eax]
mov eax, dword [eax + 0x52]
mov edx, dword [0x531548]
mov edx, dword [edx]
cmp eax, dword [edx + 0x5a]
jae 0x527f3d
mov ebx, 0x33
mov esi, dword [0x531eb4]
add esi, 0x18b4
push esi
push edi
lea edi, [esp + 8]
mov ecx, 0x1f
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov eax, esp
mov edx, 0x528198
xor ecx, ecx
mov cl, byte [eax]
inc ecx
call fcn.00403850
je 0x527f29
mov eax, esp
mov edx, 0x5281a4
xor ecx, ecx
mov cl, byte [eax]
inc ecx
call fcn.00403850
je 0x527f29
mov eax, esp
mov edx, 0x5281b4
xor ecx, ecx
mov cl, byte [eax]
inc ecx
call fcn.00403850
je 0x527f29
mov eax, esp
mov edx, 0x5281c4
xor ecx, ecx
mov cl, byte [eax]
inc ecx
call fcn.00403850
jne 0x527f34
mov edx, ebx
mov eax, ebp
call fcn.0051343c
jmp 0x527f3d
dec ebx
sub esi, 0x7c
cmp ebx, 0xffffffff
jne 0x527ece
cmp byte [edi + 0x1a6], 0
je 0x528023
mov eax, dword [0x531548]
mov eax, dword [eax]
mov eax, dword [eax + 0x56]
movzx edx, word [edi + 0x1b6]
cmp eax, edx
jae 0x528023
call fcn.00407464
sub eax, dword [edi + 0x1be]
movzx edx, word [edi + 0x1b8]
cmp eax, edx
jb 0x528023
call fcn.00407464
mov dword [edi + 0x1be], eax
mov eax, dword [0x531548]
mov eax, dword [eax]
mov eax, dword [eax + 0x56]
mov edx, dword [0x531548]
mov edx, dword [edx]
cmp eax, dword [edx + 0x5e]
jae 0x528023
mov ebx, 0x33
mov esi, dword [0x531eb4]
add esi, 0x18b4
push esi
push edi
lea edi, [esp + 8]
mov ecx, 0x1f
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov eax, esp
mov edx, 0x5281d0
xor ecx, ecx
mov cl, byte [eax]
inc ecx
call fcn.00403850
je 0x52800f
mov eax, esp
mov edx, 0x5281dc
xor ecx, ecx
mov cl, byte [eax]
inc ecx
call fcn.00403850
je 0x52800f
mov eax, esp
mov edx, 0x5281ec
xor ecx, ecx
mov cl, byte [eax]
inc ecx
call fcn.00403850
je 0x52800f
mov eax, esp
mov edx, 0x5281fc
xor ecx, ecx
mov cl, byte [eax]
inc ecx
call fcn.00403850
jne 0x52801a
mov edx, ebx
mov eax, ebp
call fcn.0051343c
jmp 0x528023
dec ebx
sub esi, 0x7c
cmp ebx, 0xffffffff
jne 0x527fb4
cmp byte [edi + 0x18a], 0
je 0x528109
mov eax, dword [0x531548]
mov eax, dword [eax]
mov eax, dword [eax + 0x52]
movzx edx, word [edi + 0x19a]
cmp eax, edx
jae 0x528109
call fcn.00407464
sub eax, dword [edi + 0x1a2]
movzx edx, word [edi + 0x19c]
cmp eax, edx
jb 0x528109
call fcn.00407464
mov dword [edi + 0x1a2], eax
mov eax, dword [0x531548]
mov eax, dword [eax]
mov eax, dword [eax + 0x52]
mov edx, dword [0x531548]
mov edx, dword [edx]
cmp eax, dword [edx + 0x5a]
jae 0x528109
mov ebx, 0x33
mov esi, dword [0x531eb4]
add esi, 0x18b4
push esi
push edi
lea edi, [esp + 8]
mov ecx, 0x1f
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov eax, esp
mov edx, 0x528208
xor ecx, ecx
mov cl, byte [eax]
inc ecx
call fcn.00403850
je 0x5280f5
mov eax, esp
mov edx, 0x528210
xor ecx, ecx
mov cl, byte [eax]
inc ecx
call fcn.00403850
je 0x5280f5
mov eax, esp
mov edx, 0x52821c
xor ecx, ecx
mov cl, byte [eax]
inc ecx
call fcn.00403850
je 0x5280f5
mov eax, esp
mov edx, 0x528228
xor ecx, ecx
mov cl, byte [eax]
inc ecx
call fcn.00403850
jne 0x528100
mov edx, ebx
mov eax, ebp
call fcn.0051343c
jmp 0x528109
dec ebx
sub esi, 0x7c
cmp ebx, 0xffffffff
jne 0x52809a
cmp byte [edi + 0x1de], 0
je 0x528190
mov eax, dword [0x531548]
mov eax, dword [eax]
mov eax, dword [eax + 0x52]
movzx edx, word [edi + 0x1ee]
cmp eax, edx
jae 0x528190
call fcn.00407464
sub eax, dword [edi + 0x1f6]
movzx edx, word [edi + 0x1f0]
cmp eax, edx
jb 0x528190
call fcn.00407464
mov dword [edi + 0x1f6], eax
mov ebx, 0x33
mov esi, dword [0x531eb4]
add esi, 0x18b4
push esi
push edi
lea edi, [esp + 8]
mov ecx, 0x1f
rep movsd dword es:[edi], dword [esi]
pop edi
pop esi
mov eax, esp
lea edx, [edi + 0x1df]
xor ecx, ecx
mov cl, byte [eax]
inc ecx
call fcn.00403850
jne 0x528187
mov edx, ebx
mov eax, ebp
call fcn.0051343c
jmp 0x528190
dec ebx
sub esi, 0x7c
cmp ebx, 0xffffffff
jne 0x528159
add esp, 0x7c
pop ebp
pop edi
pop esi
pop ebx
ret