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

Disassembly:
push ebp
mov ebp, esp
add esp, 0xffffff94
push ebx
push esi
push edi
xor ecx, ecx
mov dword [ebp - 0x64], ecx
mov dword [ebp - 0x68], ecx
mov ebx, edx
mov dword [ebp - 0x1c], eax
lea eax, [ebp - 0x18]
mov edx, dword [0x50ad94]
call fcn.00405e14
xor eax, eax
push ebp
push 0x56a7d1
push dword fs:[eax]
mov dword fs:[eax], esp
mov byte [ebp - 0x1d], 0
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 0x68], 0
jne 0x56944a
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov edx, dword [eax + 0xb4]
mov eax, 0x56a7ec
call fcn.00405784
test eax, eax
je 0x56a7a8
xor eax, eax
mov dword [ebp - 0x24], eax
mov eax, dword [0x586404]
mov eax, dword [eax]
cmp byte [eax + 0x5cd], 0
je 0x569466
mov dword [ebp - 0x24], 0x258
test bl, bl
je 0x569487
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov edx, 0x56a7f8
call fcn.00515890
mov esi, eax
test esi, esi
je 0x569487
mov eax, dword [ebp - 0x1c]
mov dword [eax + 0x68], esi
mov eax, dword [0x586a98]
mov eax, dword [eax]
cmp byte [eax + 0x20b], 0
je 0x56949f
mov eax, dword [ebp - 0x1c]
call fcn.0055d274
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov edx, dword [eax + 0xb4]
mov eax, 0x56a7ec
call fcn.00405784
test eax, eax
jne 0x56950c
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050fbe4
cmp ax, 0x1a
je 0x56950c
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 0x189], 0
je 0x5694f3
push 0
lea edx, [ebp - 0x20]
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov ecx, 1
call fcn.0051a07c
mov byte [ebp - 0x1d], al
jmp 0x56950c
push 1
lea edx, [ebp - 0x20]
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov ecx, 1
call fcn.0051a07c
mov byte [ebp - 0x1d], al
cmp byte [ebp - 0x1d], 0
jne 0x569621
mov eax, dword [ebp - 0x1c]
call fcn.0055d274
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 0xd], 0
jne 0x56a7a8
xor esi, esi
call fcn.004b9988
mov edi, eax
jmp 0x5695bc
push 0x64
call sub.kernel32.dll_Sleep_2
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 0x189], 0
je 0x569567
push 0
lea edx, [ebp - 0x20]
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov ecx, 1
call fcn.0051a07c
mov byte [ebp - 0x1d], al
jmp 0x569580
push 1
lea edx, [ebp - 0x20]
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov ecx, 1
call fcn.0051a07c
mov byte [ebp - 0x1d], al
cmp byte [ebp - 0x1d], 0
jne 0x5695c9
call fcn.004b9988
sub eax, edi
cmp eax, 0x7530
ja 0x5695c9
call fcn.004b9988
sub eax, edi
cmp eax, 0x7d0
jbe 0x5695bc
test esi, esi
jne 0x5695bc
mov eax, dword [ebp - 0x1c]
call fcn.0055d274
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 0xd], 0
jne 0x56a7a8
inc esi
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 0xd], 0
je 0x569539
cmp byte [ebp - 0x1d], 0
jne 0x569621
mov eax, dword [0x586a98]
mov eax, dword [eax]
movzx esi, word [eax + 0x1ec]
test si, si
jbe 0x569621
lea ecx, [ebp - 0x28]
mov eax, dword [0x586a98]
mov edx, esi
mov eax, dword [0x586a98]
mov eax, dword [eax]
call fcn.00517e24
test al, al
je 0x569621
mov eax, dword [ebp - 0x28]
call fcn.004041e0
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov word [eax + 0x1ec], 0
mov edx, ebx
mov eax, dword [ebp - 0x1c]
call fcn.005693ec
mov byte [ebp - 0x1d], al
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 0xd], 0
jne 0x56a7a8
cmp byte [ebp - 0x1d], 0
jne 0x569747
mov eax, dword [ebp - 0x1c]
cmp dword [eax + 0x148], 3
jle 0x5696fd
call fcn.004b9988
mov edi, eax
jmp 0x5696db
push 0x3e8
call sub.kernel32.dll_Sleep_2
push 0x56a808
call fcn.004b9988
sub eax, edi
mov ecx, 0x3e8
xor edx, edx
div ecx
push eax
mov eax, 0x3c
pop edx
sub eax, edx
xor edx, edx
push edx
push eax
lea eax, [ebp - 0x68]
call fcn.0040a0cc
push dword [ebp - 0x68]
push 0x56a854
lea eax, [ebp - 0x64]
mov edx, 3
call fcn.0040553c
mov edx, dword [ebp - 0x64]
mov eax, dword [0x586a98]
mov eax, dword [eax]
call fcn.00521e50
call fcn.004b9988
sub eax, edi
cmp eax, 0xea60
jbe 0x5696db
mov eax, dword [0x586404]
mov eax, dword [eax]
mov byte [eax + 0x379], 1
mov eax, dword [0x586404]
mov eax, dword [eax]
mov dword [eax + 0x374], 4
jmp 0x5696f4
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 0xd], 0
je 0x569654
jmp 0x5696f4
push 0x3e8
call sub.kernel32.dll_Sleep_2
mov eax, dword [ebp - 0x1c]
cmp byte [eax + 0xd], 0
je 0x5696ea
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov edx, 0x56a868
call fcn.00521e50
push 0xbb8
call sub.kernel32.dll_Sleep_2
lea edx, [ebp - 0x60]
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050ca68
test al, al
je 0x56a7a8
cmp dword [ebp - 0x54], 0x1e
jge 0x56a7a8
mov eax, dword [ebp - 0x1c]
inc dword [eax + 0x148]
jmp 0x56a7a8
mov eax, dword [ebp - 0x1c]
xor edx, edx
mov dword [eax + 0x148], edx
mov dl, 1
mov eax, dword [0x41b508]
call fcn.004041b0
mov dword [ebp - 0x2c], eax
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov eax, dword [eax + 0x230]
call fcn.0050ac0c
mov esi, eax
xor eax, eax
push ebp
push 0x56982f
push dword fs:[eax]
mov dword fs:[eax], esp
lea edx, [ebp - 0x2c]
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.0050c5bc
jmp 0x5697fe
xor edx, edx
mov eax, dword [ebp - 0x2c]
call fcn.0041dea4
mov ebx, eax
lea ecx, [ebp - 0x18]
mov edx, dword [ebx]
mov eax, dword [0x586a98]
mov eax, dword [eax]
call fcn.005170b8
movzx eax, byte [ebp - 0x16]
dec eax
sub al, 5
jb 0x5697e8
mov edx, dword [ebp - 0x14]
mov eax, esi
mov ecx, dword [eax]
call dword [ecx + 0x54]
test eax, eax
jl 0x5697e8
movzx eax, word [ebp - 0x20]
push eax
movzx ecx, word [ebx + 8]
movzx edx, word [ebx + 4]
mov eax, dword [0x5865d0]
mov eax, dword [eax]
call fcn.005105a0
push 0x64
call sub.kernel32.dll_Sleep_2
mov edx, 0x34
mov eax, ebx
call fcn.00402f6c
xor edx, edx
mov eax, dword [ebp - 0x2c]
call fcn.0041dd98
mov eax, dword [ebp - 0x2c]
cmp dword [eax + 8], 0
jg 0x569794
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x569836
mov eax, dword [0x586a98]
mov eax, dword [eax]
mov eax, dword [eax + 0x230]
call fcn.0050acf0
mov eax, dword [ebp - 0x2c]
call fcn.004041e0
ret
xor eax, eax
pop edx
pop ecx
pop ecx
mov dword fs:[eax], edx
push 0x56a7d8
lea eax, [ebp - 0x68]
mov edx, 2
call fcn.004051cc
lea eax, [ebp - 0x18]
mov edx, dword [0x50ad94]
call fcn.00405ee4
ret