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

Disassembly:
push ebx
push esi
push edi
add esp, 0xfffffff0
mov ebx, eax
cmp byte [ebx + 0x18], 0
je 0x52a59d
mov eax, dword [0x5673b0]
cmp dword [eax], 0
jne 0x52a57f
mov eax, ebx
call fcn.00529a1c
mov eax, dword [0x5673b0]
cmp dword [eax], 0
je 0x52a59d
mov eax, dword [0x5673b0]
mov eax, dword [eax]
cmp byte [eax + 0x3c], 0
je 0x52a59d
mov eax, ebx
call fcn.00529a1c
mov eax, dword [0x566c0c]
cmp byte [eax + 0x13c], 0
je 0x52a9a5
cmp byte [ebx + 0x18], 0
je 0x52a9a5
call sub.kernel32.dll_GetTickCount_1
sub eax, dword [ebx + 0x1c]
cmp eax, 0xc8
jbe 0x52a9a5
call sub.kernel32.dll_GetTickCount_1
mov dword [ebx + 0x1c], eax
mov eax, dword [0x566ba4]
mov eax, dword [eax]
mov edx, dword [ebx + 4]
call fcn.00533234
test al, al
jne 0x52a5ec
xor eax, eax
mov dword [ebx + 4], eax
mov eax, dword [ebx + 4]
test eax, eax
je 0x52a5fe
cmp byte [eax + 0x3c], 0
je 0x52a5fe
xor eax, eax
mov dword [ebx + 4], eax
mov eax, dword [ebx + 4]
test eax, eax
je 0x52a610
cmp dword [eax + 0x70], 0
jne 0x52a610
xor eax, eax
mov dword [ebx + 4], eax
cmp dword [ebx + 4], 0
jne 0x52a61d
mov eax, ebx
call fcn.0052a0a8
mov eax, dword [ebx + 4]
test eax, eax
je 0x52a86b
xor esi, esi
mov edx, dword [0x5673b0]
mov edx, dword [edx]
cmp byte [edx + 0x24], 0
jbe 0x52a85e
push 4
mov edi, dword [ebx + 4]
mov ecx, dword [edi + 0x14]
mov edx, dword [edi + 0x10]
mov eax, ebx
call fcn.0052a090
dec eax
jle 0x52a6c3
mov eax, dword [0x567b0c]
mov eax, dword [eax]
mov eax, dword [eax + 0xb74]
call fcn.00486344
test eax, eax
jl 0x52a6c3
mov eax, dword [0x567b0c]
mov eax, dword [eax]
mov eax, dword [eax + 0xb74]
call fcn.00486214
mov edx, dword [eax]
call dword [edx + 0x14]
mov edi, eax
mov eax, dword [0x567b0c]
mov eax, dword [eax]
mov eax, dword [eax + 0xb74]
call fcn.00486344
cmp edi, eax
jle 0x52a6c3
mov eax, dword [0x567b0c]
mov eax, dword [eax]
mov eax, dword [eax + 0xb74]
call fcn.00486344
push eax
mov eax, dword [0x567b0c]
mov eax, dword [eax]
mov eax, dword [eax + 0xb74]
call fcn.00486214
pop edx
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov esi, eax
test esi, esi
jne 0x52a739
mov eax, dword [0x567b0c]
mov eax, dword [eax]
mov eax, dword [eax + 0xb7c]
call fcn.00486344
test eax, eax
jl 0x52a739
mov eax, dword [0x567b0c]
mov eax, dword [eax]
mov eax, dword [eax + 0xb7c]
call fcn.00486214
mov edx, dword [eax]
call dword [edx + 0x14]
mov edi, eax
mov eax, dword [0x567b0c]
mov eax, dword [eax]
mov eax, dword [eax + 0xb7c]
call fcn.00486344
cmp edi, eax
jle 0x52a739
mov eax, dword [0x567b0c]
mov eax, dword [eax]
mov eax, dword [eax + 0xb7c]
call fcn.00486344
push eax
mov eax, dword [0x567b0c]
mov eax, dword [eax]
mov eax, dword [eax + 0xb7c]
call fcn.00486214
pop edx
mov ecx, dword [eax]
call dword [ecx + 0x18]
mov esi, eax
test esi, esi
je 0x52a7ed
mov eax, dword [0x566e14]
xor edx, edx
mov dword [eax], edx
mov eax, dword [0x567520]
mov edx, dword [ebx + 4]
mov dword [eax], edx
mov edx, dword [0x567a00]
push edx
mov edx, dword [0x567880]
push edx
mov eax, dword [ebx + 4]
mov ecx, dword [eax + 0x14]
mov edx, dword [eax + 0x10]
mov eax, dword [0x566ba4]
mov eax, dword [eax]
call fcn.00532438
call sub.kernel32.dll_GetTickCount_1
sub eax, dword [ebx + 0x20]
cmp eax, 0x3e8
jbe 0x52a7bc
mov eax, dword [0x5671fc]
mov eax, dword [eax]
cmp word [eax + 0x56e], 0
jne 0x52a7bc
call sub.kernel32.dll_GetTickCount_1
mov dword [ebx + 0x20], eax
push esi
mov ecx, dword [0x567880]
mov ecx, dword [ecx]
mov edx, dword [0x567a00]
mov edx, dword [edx]
mov eax, dword [0x5671fc]
mov eax, dword [eax]
call fcn.004c8358
push 2
mov eax, dword [0x5673b0]
mov eax, dword [eax]
mov ecx, dword [eax + 0x14]
mov eax, dword [0x5673b0]
mov eax, dword [eax]
mov edx, dword [eax + 0x10]
mov eax, ebx
call fcn.0052a090
test eax, eax
jle 0x52a9a5
mov eax, ebx
call fcn.0052a250
jmp 0x52a9a5
mov esi, dword [ebx + 4]
mov eax, dword [esi + 0x14]
push eax
mov ecx, dword [esi + 0x10]
mov eax, dword [0x5673b0]
mov eax, dword [eax]
mov edx, dword [eax + 0x14]
mov eax, dword [0x5673b0]
mov eax, dword [eax]
mov eax, dword [eax + 0x10]
call fcn.0055a294
movzx eax, al
lea ecx, [esp + 8]
push ecx
lea ecx, [esp + 0x10]
push ecx
mov edx, dword [ebx + 4]
mov ecx, dword [edx + 0x10]
mov edx, dword [edx + 0x14]
xchg ecx, eax
call fcn.0055a3f4
push 1
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0xc]
mov eax, ebx
call fcn.00529d14
test al, al
je 0x52a850
mov eax, dword [0x566e14]
mov edx, dword [ebx + 4]
mov dword [eax], edx
jmp 0x52a9a5
mov eax, dword [0x566e14]
xor edx, edx
mov dword [eax], edx
jmp 0x52a9a5
mov edx, dword [0x566e14]
mov dword [edx], eax
jmp 0x52a9a5
mov eax, dword [0x567510]
cmp dword [eax], 0
jle 0x52a935
mov eax, dword [0x567398]
cmp dword [eax], 0
jle 0x52a935
mov eax, dword [0x5673b0]
mov eax, dword [eax]
mov eax, dword [eax + 0x10]
mov edx, dword [0x567510]
sub eax, dword [edx]
cdq
xor eax, edx
sub eax, edx
dec eax
jge 0x52a9a5
mov eax, dword [0x5673b0]
mov eax, dword [eax]
mov eax, dword [eax + 0x14]
mov edx, dword [0x567398]
sub eax, dword [edx]
cdq
xor eax, edx
sub eax, edx
dec eax
jge 0x52a9a5
lea ecx, [esp + 4]
mov edx, esp
mov eax, ebx
call fcn.00529fb8
mov eax, dword [0x5673b0]
mov eax, dword [eax]
mov eax, dword [eax + 0x10]
sub eax, dword [esp]
cdq
xor eax, edx
sub eax, edx
cmp eax, 2
jge 0x52a8ff
mov eax, dword [0x5673b0]
mov eax, dword [eax]
mov eax, dword [eax + 0x14]
sub eax, dword [esp + 4]
cdq
xor eax, edx
sub eax, edx
cmp eax, 2
jl 0x52a909
mov eax, dword [0x567b3c]
mov byte [eax], 2
jmp 0x52a911
mov eax, dword [0x567b3c]
mov byte [eax], 1
mov eax, dword [0x567510]
mov edx, dword [esp]
mov dword [eax], edx
mov eax, dword [0x567398]
mov edx, dword [esp + 4]
mov dword [eax], edx
mov eax, dword [esp]
mov dword [ebx + 8], eax
mov eax, dword [esp + 4]
mov dword [ebx + 0xc], eax
jmp 0x52a9a5
lea ecx, [esp + 4]
mov edx, esp
mov eax, ebx
call fcn.00529fb8
mov eax, dword [0x5673b0]
mov eax, dword [eax]
mov eax, dword [eax + 0x10]
sub eax, dword [esp]
cdq
xor eax, edx
sub eax, edx
cmp eax, 2
jge 0x52a971
mov eax, dword [0x5673b0]
mov eax, dword [eax]
mov eax, dword [eax + 0x14]
sub eax, dword [esp + 4]
cdq
xor eax, edx
sub eax, edx
cmp eax, 2
jl 0x52a97b
mov eax, dword [0x567b3c]
mov byte [eax], 2
jmp 0x52a983
mov eax, dword [0x567b3c]
mov byte [eax], 1
mov eax, dword [0x567510]
mov edx, dword [esp]
mov dword [eax], edx
mov eax, dword [0x567398]
mov edx, dword [esp + 4]
mov dword [eax], edx
mov eax, dword [esp]
mov dword [ebx + 8], eax
mov eax, dword [esp + 4]
mov dword [ebx + 0xc], eax
add esp, 0x10
pop edi
pop esi
pop ebx
ret