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

Disassembly:
push ebx
push esi
mov ebx, eax
cmp byte [ebx + 0x16], 0
jne 0x529f6a
mov al, byte [ebx + 0x17]
dec eax
sub al, 8
jb 0x529955
add al, 0x41
sub al, 0xa
jb 0x5299d6
sub al, 5
jb 0x529b04
sub al, 5
jb 0x529bac
jmp 0x529c4c
call sub.kernel32.dll_GetTickCount_1
sub eax, dword [ebx + 0x3a0]
cmp eax, 0x64
jbe 0x5299a7
mov eax, dword [ebx + 0x398]
cmp eax, dword [ebx + 0x26c]
jg 0x52997b
inc dword [ebx + 0x398]
jmp 0x52999c
cmp byte [ebx + 0x3b4], 0
jne 0x52998d
mov byte [ebx + 0x3b4], 1
jmp 0x529994
mov byte [ebx + 0x3b4], 0
xor eax, eax
mov dword [ebx + 0x398], eax
call sub.kernel32.dll_GetTickCount_1
mov dword [ebx + 0x3a0], eax
lea eax, [ebx + 0xf4]
push eax
lea ecx, [ebx + 0xe0]
mov edx, dword [ebx + 0x13c]
add edx, dword [ebx + 0x398]
mov eax, dword [ebx + 0x274]
mov esi, dword [eax]
call dword [esi + 0x18]
mov dword [ebx + 0x36c], eax
jmp 0x529c4c
cmp dword [ebx + 0x288], 0x40
jge 0x529a99
call sub.kernel32.dll_GetTickCount_1
sub eax, dword [ebx + 0x3a0]
cmp eax, dword [ebx + 0x3a4]
jbe 0x529a1a
cmp dword [ebx + 0x398], 7
jge 0x529a07
inc dword [ebx + 0x398]
jmp 0x529a0f
xor eax, eax
mov dword [ebx + 0x398], eax
call sub.kernel32.dll_GetTickCount_1
mov dword [ebx + 0x3a0], eax
mov eax, ebx
call fcn.005298c0
test al, al
je 0x529a5f
lea eax, [ebx + 0xf4]
push eax
lea ecx, [ebx + 0xe0]
xor eax, eax
mov al, byte [ebx + 0x10]
mov edx, eax
shl edx, 3
add edx, dword [ebx + 0x13c]
add edx, dword [ebx + 0x398]
mov eax, dword [0x53e678]
mov eax, dword [eax]
mov esi, dword [eax]
call dword [esi + 0x18]
mov dword [ebx + 0x36c], eax
jmp 0x529c4c
lea eax, [ebx + 0xf4]
push eax
lea ecx, [ebx + 0xe0]
xor eax, eax
mov al, byte [ebx + 0x10]
mov edx, eax
shl edx, 3
add edx, dword [ebx + 0x13c]
add edx, dword [ebx + 0x398]
mov eax, dword [0x53efe8]
mov eax, dword [eax]
mov esi, dword [eax]
call dword [esi + 0x18]
mov dword [ebx + 0x36c], eax
jmp 0x529c4c
mov eax, ebx
call fcn.005298c0
test al, al
je 0x529ad4
lea eax, [ebx + 0xf4]
push eax
lea ecx, [ebx + 0xe0]
mov edx, dword [ebx + 0x13c]
add edx, dword [ebx + 0x288]
mov eax, dword [0x53e678]
mov eax, dword [eax]
mov esi, dword [eax]
call dword [esi + 0x18]
mov dword [ebx + 0x36c], eax
jmp 0x529c4c
lea eax, [ebx + 0xf4]
push eax
lea ecx, [ebx + 0xe0]
mov edx, dword [ebx + 0x13c]
add edx, dword [ebx + 0x288]
mov eax, dword [0x53efe8]
mov eax, dword [eax]
mov esi, dword [eax]
call dword [esi + 0x18]
mov dword [ebx + 0x36c], eax
jmp 0x529c4c
mov esi, dword [ebx + 0x288]
cmp esi, 0x40
jge 0x529b80
call sub.kernel32.dll_GetTickCount_1
sub eax, dword [ebx + 0x3a0]
cmp eax, dword [ebx + 0x3a4]
jbe 0x529b46
cmp dword [ebx + 0x398], 7
jge 0x529b33
inc dword [ebx + 0x398]
jmp 0x529b3b
xor eax, eax
mov dword [ebx + 0x398], eax
call sub.kernel32.dll_GetTickCount_1
mov dword [ebx + 0x3a0], eax
lea eax, [ebx + 0xf4]
push eax
lea ecx, [ebx + 0xe0]
xor eax, eax
mov al, byte [ebx + 0x10]
mov edx, eax
shl edx, 3
add edx, dword [ebx + 0x13c]
add edx, dword [ebx + 0x398]
mov eax, dword [0x53ed48]
mov eax, dword [eax]
mov esi, dword [eax]
call dword [esi + 0x18]
mov dword [ebx + 0x36c], eax
jmp 0x529c4c
lea eax, [ebx + 0xf4]
push eax
lea ecx, [ebx + 0xe0]
mov edx, dword [ebx + 0x13c]
add edx, esi
mov eax, dword [0x53ed48]
mov eax, dword [eax]
mov esi, dword [eax]
call dword [esi + 0x18]
mov dword [ebx + 0x36c], eax
jmp 0x529c4c
mov esi, dword [ebx + 0x288]
cmp esi, 0x40
jge 0x529c25
call sub.kernel32.dll_GetTickCount_1
sub eax, dword [ebx + 0x3a0]
cmp eax, dword [ebx + 0x3a4]
jbe 0x529bee
cmp dword [ebx + 0x398], 7
jge 0x529bdb
inc dword [ebx + 0x398]
jmp 0x529be3
xor eax, eax
mov dword [ebx + 0x398], eax
call sub.kernel32.dll_GetTickCount_1
mov dword [ebx + 0x3a0], eax
lea eax, [ebx + 0xf4]
push eax
lea ecx, [ebx + 0xe0]
xor eax, eax
mov al, byte [ebx + 0x10]
mov edx, eax
shl edx, 3
add edx, dword [ebx + 0x13c]
add edx, dword [ebx + 0x398]
mov eax, dword [0x53e850]
mov eax, dword [eax]
mov esi, dword [eax]
call dword [esi + 0x18]
mov dword [ebx + 0x36c], eax
jmp 0x529c4c
lea eax, [ebx + 0xf4]
push eax
lea ecx, [ebx + 0xe0]
mov edx, dword [ebx + 0x13c]
add edx, esi
mov eax, dword [0x53e850]
mov eax, dword [eax]
mov esi, dword [eax]
call dword [esi + 0x18]
mov dword [ebx + 0x36c], eax
mov al, byte [ebx + 0x19]
dec eax
sub al, 8
jb 0x529c73
add al, 0x41
sub al, 0xa
jb 0x529cf4
sub al, 5
jb 0x529e22
sub al, 5
jb 0x529eca
jmp 0x529f6a
call sub.kernel32.dll_GetTickCount_1
sub eax, dword [ebx + 0x3a8]
cmp eax, 0x64
jbe 0x529cc5
mov eax, dword [ebx + 0x39c]
cmp eax, dword [ebx + 0x270]
jg 0x529c99
inc dword [ebx + 0x39c]
jmp 0x529cba
cmp byte [ebx + 0x3b4], 0
jne 0x529cab
mov byte [ebx + 0x3b4], 1
jmp 0x529cb2
mov byte [ebx + 0x3b4], 0
xor eax, eax
mov dword [ebx + 0x39c], eax
call sub.kernel32.dll_GetTickCount_1
mov dword [ebx + 0x3a8], eax
lea eax, [ebx + 0xf8]
push eax
lea ecx, [ebx + 0xe4]
mov edx, dword [ebx + 0x140]
add edx, dword [ebx + 0x39c]
mov eax, dword [ebx + 0x278]
mov esi, dword [eax]
call dword [esi + 0x18]
mov dword [ebx + 0x370], eax
jmp 0x529f6a
cmp dword [ebx + 0x288], 0x40
jge 0x529db7
call sub.kernel32.dll_GetTickCount_1
sub eax, dword [ebx + 0x3a8]
cmp eax, dword [ebx + 0x3ac]
jbe 0x529d38
cmp dword [ebx + 0x39c], 7
jge 0x529d25
inc dword [ebx + 0x39c]
jmp 0x529d2d
xor eax, eax
mov dword [ebx + 0x39c], eax
call sub.kernel32.dll_GetTickCount_1
mov dword [ebx + 0x3a8], eax
mov eax, ebx
call fcn.005298c0
test al, al
je 0x529d7d
lea eax, [ebx + 0xf8]
push eax
lea ecx, [ebx + 0xe4]
xor eax, eax
mov al, byte [ebx + 0x10]
mov edx, eax
shl edx, 3
add edx, dword [ebx + 0x140]
add edx, dword [ebx + 0x39c]
mov eax, dword [0x53e678]
mov eax, dword [eax]
mov esi, dword [eax]
call dword [esi + 0x18]
mov dword [ebx + 0x370], eax
jmp 0x529f6a
lea eax, [ebx + 0xf8]
push eax
lea ecx, [ebx + 0xe4]
xor eax, eax
mov al, byte [ebx + 0x10]
mov edx, eax
shl edx, 3
add edx, dword [ebx + 0x140]
add edx, dword [ebx + 0x39c]
mov eax, dword [0x53efe8]
mov eax, dword [eax]
mov esi, dword [eax]
call dword [esi + 0x18]
mov dword [ebx + 0x370], eax
jmp 0x529f6a
mov eax, ebx
call fcn.005298c0
test al, al
je 0x529df2
lea eax, [ebx + 0xf8]
push eax
lea ecx, [ebx + 0xe4]
mov edx, dword [ebx + 0x140]
add edx, dword [ebx + 0x288]
mov eax, dword [0x53e678]
mov eax, dword [eax]
mov esi, dword [eax]
call dword [esi + 0x18]
mov dword [ebx + 0x370], eax
jmp 0x529f6a
lea eax, [ebx + 0xf8]
push eax
lea ecx, [ebx + 0xe4]
mov edx, dword [ebx + 0x140]
add edx, dword [ebx + 0x288]
mov eax, dword [0x53efe8]
mov eax, dword [eax]
mov esi, dword [eax]
call dword [esi + 0x18]
mov dword [ebx + 0x370], eax
jmp 0x529f6a
mov esi, dword [ebx + 0x288]
cmp esi, 0x40
jge 0x529e9e
call sub.kernel32.dll_GetTickCount_1
sub eax, dword [ebx + 0x3a8]
cmp eax, dword [ebx + 0x3ac]
jbe 0x529e64
cmp dword [ebx + 0x39c], 7
jge 0x529e51
inc dword [ebx + 0x39c]
jmp 0x529e59
xor eax, eax
mov dword [ebx + 0x39c], eax
call sub.kernel32.dll_GetTickCount_1
mov dword [ebx + 0x3a8], eax
lea eax, [ebx + 0xf8]
push eax
lea ecx, [ebx + 0xe4]
xor eax, eax
mov al, byte [ebx + 0x10]
mov edx, eax
shl edx, 3
add edx, dword [ebx + 0x140]
add edx, dword [ebx + 0x39c]
mov eax, dword [0x53ed48]
mov eax, dword [eax]
mov esi, dword [eax]
call dword [esi + 0x18]
mov dword [ebx + 0x370], eax
jmp 0x529f6a
lea eax, [ebx + 0xf8]
push eax
lea ecx, [ebx + 0xe4]
mov edx, dword [ebx + 0x140]
add edx, esi
mov eax, dword [0x53ed48]
mov eax, dword [eax]
mov esi, dword [eax]
call dword [esi + 0x18]
mov dword [ebx + 0x370], eax
jmp 0x529f6a
mov esi, dword [ebx + 0x288]
cmp esi, 0x40
jge 0x529f43
call sub.kernel32.dll_GetTickCount_1
sub eax, dword [ebx + 0x3a8]
cmp eax, dword [ebx + 0x3ac]
jbe 0x529f0c
cmp dword [ebx + 0x39c], 7
jge 0x529ef9
inc dword [ebx + 0x39c]
jmp 0x529f01
xor eax, eax
mov dword [ebx + 0x39c], eax
call sub.kernel32.dll_GetTickCount_1
mov dword [ebx + 0x3a8], eax
lea eax, [ebx + 0xf8]
push eax
lea ecx, [ebx + 0xe4]
xor eax, eax
mov al, byte [ebx + 0x10]
mov edx, eax
shl edx, 3
add edx, dword [ebx + 0x140]
add edx, dword [ebx + 0x39c]
mov eax, dword [0x53e850]
mov eax, dword [eax]
mov esi, dword [eax]
call dword [esi + 0x18]
mov dword [ebx + 0x370], eax
jmp 0x529f6a
lea eax, [ebx + 0xf8]
push eax
lea ecx, [ebx + 0xe4]
mov edx, dword [ebx + 0x140]
add edx, esi
mov eax, dword [0x53e850]
mov eax, dword [eax]
mov esi, dword [eax]
call dword [esi + 0x18]
mov dword [ebx + 0x370], eax
pop esi
pop ebx
ret